From c069f9f7143ae954a8e1f909ef9c57366e8726fb Mon Sep 17 00:00:00 2001 From: xiaowei Date: Fri, 28 Aug 2020 13:29:11 +0800 Subject: [PATCH] refactor: unify the parser generator to antlr4 --- src/antlr4/flinksql/sqlLexer.js | 2187 - src/antlr4/flinksql/sqlListener.js | 1986 - src/antlr4/flinksql/sqlParser.js | 27462 ---- src/antlr4/flinksql/sqlVisitor.js | 1330 - src/core/comment.js | 662 - src/core/common/baseParser.ts | 63 + src/core/common/parserErrorListener.ts | 36 + src/core/index.ts | 2 + src/core/mysql.ts | 17 + .../generic/genericAutocompleteParser.js | 3578 - src/core/parse/generic/genericSyntaxParser.js | 3539 - src/core/parse/generic/sqlParseSupport.js | 2221 - src/core/parse/hive/hiveAutocompleteParser.js | 5883 - src/core/parse/hive/hiveSyntaxParser.js | 5812 - src/core/parse/hive/sqlParseSupport.js | 2471 - .../parse/impala/impalaAutocompleteParser.js | 5382 - src/core/parse/impala/impalaSyntaxParser.js | 5330 - src/core/parse/impala/sqlParseSupport.js | 2545 - src/core/parse/sqlFunctions.js | 4951 - src/core/parse/sqlParserRepository.js | 74 - src/core/parse/stringDistance.js | 77 - src/core/sqlAutoCompleteParser.d.ts | 32 - src/core/sqlSyntaxParser.d.ts | 29 - src/core/tsql.ts | 17 + src/grammar/hello/Hello.g4 | 4 + src/grammar/hive/README.md | 3 + src/grammar/impala/README.md | 3 + src/grammar/mysql/MySQLLexer.g4 | 1245 + src/grammar/mysql/MySQLParser.g4 | 2586 + src/grammar/mysql/README.md | 3 + src/grammar/tsql/.antlr/TSqlLexer.interp | 2543 + src/grammar/tsql/.antlr/TSqlParser.interp | 2178 + src/grammar/tsql/TSqlLexer.g4 | 902 + src/grammar/tsql/TSqlParser.g4 | 4072 + src/grammar/tsql/parser/TSqlLexer.js | 8175 + src/grammar/tsql/parser/TSqlLexer.tokens | 1657 + src/grammar/tsql/parser/TSqlParser.js | 126333 +++++++++++++++ src/grammar/tsql/parser/TSqlParser.tokens | 1657 + src/grammar/tsql/parser/TSqlParserListener.js | 4632 + src/grammar/tsql/parser/TSqlParserVisitor.js | 3094 + src/index.ts | 11 +- src/jison/autocomplete_footer.jison | 19 - src/jison/autocomplete_header.jison | 29 - src/jison/globalSearchParser.jison | 179 - src/jison/solrFormulaParser.jison | 265 - src/jison/solrQueryParser.jison | 292 - src/jison/sql.jisonlex | 754 - .../sql/calcite/autocomplete_footer.jison | 19 - .../sql/calcite/autocomplete_header.jison | 29 - src/jison/sql/calcite/sql.jisonlex | 226 - src/jison/sql/calcite/sql_alter.jison | 109 - src/jison/sql/calcite/sql_create.jison | 615 - src/jison/sql/calcite/sql_drop.jison | 184 - src/jison/sql/calcite/sql_error.jison | 132 - src/jison/sql/calcite/sql_insert.jison | 72 - src/jison/sql/calcite/sql_main.jison | 2762 - src/jison/sql/calcite/sql_set.jison | 46 - src/jison/sql/calcite/sql_update.jison | 122 - src/jison/sql/calcite/sql_use.jison | 39 - .../sql/calcite/sql_valueExpression.jison | 839 - src/jison/sql/calcite/syntax_footer.jison | 19 - src/jison/sql/calcite/syntax_header.jison | 28 - src/jison/sql/druid/autocomplete_footer.jison | 19 - src/jison/sql/druid/autocomplete_header.jison | 29 - src/jison/sql/druid/sql.jisonlex | 226 - src/jison/sql/druid/sql_alter.jison | 109 - src/jison/sql/druid/sql_create.jison | 615 - src/jison/sql/druid/sql_drop.jison | 184 - src/jison/sql/druid/sql_error.jison | 132 - src/jison/sql/druid/sql_insert.jison | 72 - src/jison/sql/druid/sql_main.jison | 2762 - src/jison/sql/druid/sql_set.jison | 46 - src/jison/sql/druid/sql_update.jison | 122 - src/jison/sql/druid/sql_use.jison | 39 - src/jison/sql/druid/sql_valueExpression.jison | 839 - src/jison/sql/druid/syntax_footer.jison | 19 - src/jison/sql/druid/syntax_header.jison | 28 - .../elasticsearch/autocomplete_footer.jison | 19 - .../elasticsearch/autocomplete_header.jison | 29 - src/jison/sql/elasticsearch/sql.jisonlex | 226 - src/jison/sql/elasticsearch/sql_alter.jison | 109 - src/jison/sql/elasticsearch/sql_create.jison | 615 - src/jison/sql/elasticsearch/sql_drop.jison | 184 - src/jison/sql/elasticsearch/sql_error.jison | 132 - src/jison/sql/elasticsearch/sql_insert.jison | 72 - src/jison/sql/elasticsearch/sql_main.jison | 2762 - src/jison/sql/elasticsearch/sql_set.jison | 46 - src/jison/sql/elasticsearch/sql_update.jison | 122 - src/jison/sql/elasticsearch/sql_use.jison | 39 - .../elasticsearch/sql_valueExpression.jison | 839 - .../sql/elasticsearch/syntax_footer.jison | 19 - .../sql/elasticsearch/syntax_header.jison | 28 - src/jison/sql/flink/autocomplete_footer.jison | 19 - src/jison/sql/flink/autocomplete_header.jison | 29 - src/jison/sql/flink/sql.jisonlex | 279 - src/jison/sql/flink/sql_create.jison | 615 - src/jison/sql/flink/sql_drop.jison | 184 - src/jison/sql/flink/sql_error.jison | 132 - src/jison/sql/flink/sql_insert.jison | 72 - src/jison/sql/flink/sql_list.jison | 37 - src/jison/sql/flink/sql_main.jison | 2762 - src/jison/sql/flink/sql_set.jison | 46 - src/jison/sql/flink/sql_show.jison | 39 - src/jison/sql/flink/sql_valueExpression.jison | 839 - src/jison/sql/flink/syntax_footer.jison | 19 - src/jison/sql/flink/syntax_header.jison | 28 - .../sql/generic/autocomplete_footer.jison | 19 - .../sql/generic/autocomplete_header.jison | 29 - src/jison/sql/generic/sql.jisonlex | 226 - src/jison/sql/generic/sql_alter.jison | 109 - src/jison/sql/generic/sql_create.jison | 615 - src/jison/sql/generic/sql_drop.jison | 184 - src/jison/sql/generic/sql_error.jison | 132 - src/jison/sql/generic/sql_insert.jison | 72 - src/jison/sql/generic/sql_main.jison | 2762 - src/jison/sql/generic/sql_set.jison | 46 - src/jison/sql/generic/sql_update.jison | 122 - src/jison/sql/generic/sql_use.jison | 39 - .../sql/generic/sql_valueExpression.jison | 839 - src/jison/sql/generic/syntax_footer.jison | 19 - src/jison/sql/generic/syntax_header.jison | 28 - src/jison/sql/hive/autocomplete_footer.jison | 19 - src/jison/sql/hive/autocomplete_header.jison | 29 - src/jison/sql/hive/sql.jisonlex | 419 - src/jison/sql/hive/sql_alter.jison | 867 - src/jison/sql/hive/sql_analyze.jison | 236 - src/jison/sql/hive/sql_create.jison | 1629 - src/jison/sql/hive/sql_drop.jison | 348 - src/jison/sql/hive/sql_error.jison | 169 - src/jison/sql/hive/sql_grant.jison | 378 - src/jison/sql/hive/sql_insert.jison | 536 - src/jison/sql/hive/sql_load.jison | 293 - src/jison/sql/hive/sql_main.jison | 3683 - src/jison/sql/hive/sql_set.jison | 62 - src/jison/sql/hive/sql_show.jison | 535 - src/jison/sql/hive/sql_update.jison | 124 - src/jison/sql/hive/sql_use.jison | 42 - src/jison/sql/hive/sql_valueExpression.jison | 839 - src/jison/sql/hive/syntax_footer.jison | 19 - src/jison/sql/hive/syntax_header.jison | 28 - .../sql/impala/autocomplete_footer.jison | 19 - .../sql/impala/autocomplete_header.jison | 29 - src/jison/sql/impala/sql.jisonlex | 535 - src/jison/sql/impala/sql_alter.jison | 573 - src/jison/sql/impala/sql_analyze.jison | 164 - src/jison/sql/impala/sql_create.jison | 1291 - src/jison/sql/impala/sql_drop.jison | 354 - src/jison/sql/impala/sql_error.jison | 142 - src/jison/sql/impala/sql_grant.jison | 194 - src/jison/sql/impala/sql_insert.jison | 242 - src/jison/sql/impala/sql_load.jison | 80 - src/jison/sql/impala/sql_main.jison | 3581 - src/jison/sql/impala/sql_set.jison | 47 - src/jison/sql/impala/sql_show.jison | 372 - src/jison/sql/impala/sql_update.jison | 138 - src/jison/sql/impala/sql_use.jison | 39 - .../sql/impala/sql_valueExpression.jison | 828 - src/jison/sql/impala/syntax_footer.jison | 19 - src/jison/sql/impala/syntax_header.jison | 28 - src/jison/sql/ksql/autocomplete_footer.jison | 19 - src/jison/sql/ksql/autocomplete_header.jison | 29 - src/jison/sql/ksql/sql.jisonlex | 228 - src/jison/sql/ksql/sql_create.jison | 615 - src/jison/sql/ksql/sql_drop.jison | 184 - src/jison/sql/ksql/sql_error.jison | 132 - src/jison/sql/ksql/sql_insert.jison | 72 - src/jison/sql/ksql/sql_list.jison | 37 - src/jison/sql/ksql/sql_main.jison | 2762 - src/jison/sql/ksql/sql_set.jison | 46 - src/jison/sql/ksql/sql_show.jison | 39 - src/jison/sql/ksql/sql_valueExpression.jison | 839 - src/jison/sql/ksql/syntax_footer.jison | 19 - src/jison/sql/ksql/syntax_header.jison | 28 - .../sql/phoenix/autocomplete_footer.jison | 19 - .../sql/phoenix/autocomplete_header.jison | 29 - src/jison/sql/phoenix/sql.jisonlex | 226 - src/jison/sql/phoenix/sql_alter.jison | 109 - src/jison/sql/phoenix/sql_create.jison | 615 - src/jison/sql/phoenix/sql_drop.jison | 184 - src/jison/sql/phoenix/sql_error.jison | 132 - src/jison/sql/phoenix/sql_insert.jison | 72 - src/jison/sql/phoenix/sql_main.jison | 2762 - src/jison/sql/phoenix/sql_set.jison | 46 - src/jison/sql/phoenix/sql_update.jison | 122 - src/jison/sql/phoenix/sql_use.jison | 39 - .../sql/phoenix/sql_valueExpression.jison | 839 - src/jison/sql/phoenix/syntax_footer.jison | 19 - src/jison/sql/phoenix/syntax_header.jison | 28 - .../sql/presto/autocomplete_footer.jison | 19 - .../sql/presto/autocomplete_header.jison | 29 - src/jison/sql/presto/sql.jisonlex | 406 - src/jison/sql/presto/sql_alter.jison | 795 - src/jison/sql/presto/sql_analyze.jison | 132 - src/jison/sql/presto/sql_create.jison | 1408 - src/jison/sql/presto/sql_drop.jison | 321 - src/jison/sql/presto/sql_error.jison | 169 - src/jison/sql/presto/sql_grant.jison | 378 - src/jison/sql/presto/sql_insert.jison | 536 - src/jison/sql/presto/sql_load.jison | 271 - src/jison/sql/presto/sql_main.jison | 3665 - src/jison/sql/presto/sql_set.jison | 62 - src/jison/sql/presto/sql_show.jison | 512 - src/jison/sql/presto/sql_update.jison | 124 - src/jison/sql/presto/sql_use.jison | 42 - .../sql/presto/sql_valueExpression.jison | 839 - src/jison/sql/presto/syntax_footer.jison | 19 - src/jison/sql/presto/syntax_header.jison | 28 - src/jison/sqlStatementsParser.jison | 197 - src/jison/sql_alter.jison | 1125 - src/jison/sql_analyze.jison | 275 - src/jison/sql_create.jison | 2075 - src/jison/sql_drop.jison | 504 - src/jison/sql_error.jison | 190 - src/jison/sql_grant.jison | 519 - src/jison/sql_insert.jison | 762 - src/jison/sql_load.jison | 291 - src/jison/sql_main.jison | 4565 - src/jison/sql_set.jison | 67 - src/jison/sql_show.jison | 741 - src/jison/sql_update.jison | 138 - src/jison/sql_use.jison | 47 - src/jison/sql_valueExpression.jison | 867 - src/jison/syntax_footer.jison | 19 - src/jison/syntax_header.jison | 28 - src/lib/filter.ts | 31 - src/lib/flinkParser.ts | 58 - src/lib/parser.ts | 81 - src/parser/MySQLLexer.js | 9949 ++ src/parser/MySQLLexer.tokens | 2074 + src/parser/MySQLParser.js | 87808 ++++++++++ src/parser/MySQLParser.tokens | 2074 + src/parser/MySQLParserListener.js | 4920 + src/parser/MySQLParserVisitor.js | 3286 + src/parser/TSqlLexer.js | 8175 + src/parser/TSqlLexer.tokens | 1657 + src/parser/TSqlParser.js | 126333 +++++++++++++++ src/parser/TSqlParser.tokens | 1657 + src/parser/TSqlParserListener.js | 4632 + src/parser/TSqlParserVisitor.js | 3094 + src/peg/build.js | 31 - src/peg/comment.pegjs | 91 - src/scripts/generateParsers.js | 571 - src/typing/base.d.ts | 1 - src/typings/index.d.ts | 1 + src/utils/index.ts | 57 +- 245 files changed, 414915 insertions(+), 155437 deletions(-) delete mode 100644 src/antlr4/flinksql/sqlLexer.js delete mode 100644 src/antlr4/flinksql/sqlListener.js delete mode 100644 src/antlr4/flinksql/sqlParser.js delete mode 100644 src/antlr4/flinksql/sqlVisitor.js delete mode 100644 src/core/comment.js create mode 100644 src/core/common/baseParser.ts create mode 100644 src/core/common/parserErrorListener.ts create mode 100644 src/core/index.ts create mode 100644 src/core/mysql.ts delete mode 100644 src/core/parse/generic/genericAutocompleteParser.js delete mode 100644 src/core/parse/generic/genericSyntaxParser.js delete mode 100644 src/core/parse/generic/sqlParseSupport.js delete mode 100644 src/core/parse/hive/hiveAutocompleteParser.js delete mode 100644 src/core/parse/hive/hiveSyntaxParser.js delete mode 100644 src/core/parse/hive/sqlParseSupport.js delete mode 100644 src/core/parse/impala/impalaAutocompleteParser.js delete mode 100644 src/core/parse/impala/impalaSyntaxParser.js delete mode 100644 src/core/parse/impala/sqlParseSupport.js delete mode 100644 src/core/parse/sqlFunctions.js delete mode 100644 src/core/parse/sqlParserRepository.js delete mode 100644 src/core/parse/stringDistance.js delete mode 100644 src/core/sqlAutoCompleteParser.d.ts delete mode 100644 src/core/sqlSyntaxParser.d.ts create mode 100644 src/core/tsql.ts create mode 100644 src/grammar/hello/Hello.g4 create mode 100644 src/grammar/hive/README.md create mode 100644 src/grammar/impala/README.md create mode 100644 src/grammar/mysql/MySQLLexer.g4 create mode 100644 src/grammar/mysql/MySQLParser.g4 create mode 100644 src/grammar/mysql/README.md create mode 100644 src/grammar/tsql/.antlr/TSqlLexer.interp create mode 100644 src/grammar/tsql/.antlr/TSqlParser.interp create mode 100644 src/grammar/tsql/TSqlLexer.g4 create mode 100644 src/grammar/tsql/TSqlParser.g4 create mode 100644 src/grammar/tsql/parser/TSqlLexer.js create mode 100644 src/grammar/tsql/parser/TSqlLexer.tokens create mode 100644 src/grammar/tsql/parser/TSqlParser.js create mode 100644 src/grammar/tsql/parser/TSqlParser.tokens create mode 100644 src/grammar/tsql/parser/TSqlParserListener.js create mode 100644 src/grammar/tsql/parser/TSqlParserVisitor.js delete mode 100644 src/jison/autocomplete_footer.jison delete mode 100644 src/jison/autocomplete_header.jison delete mode 100644 src/jison/globalSearchParser.jison delete mode 100644 src/jison/solrFormulaParser.jison delete mode 100644 src/jison/solrQueryParser.jison delete mode 100644 src/jison/sql.jisonlex delete mode 100644 src/jison/sql/calcite/autocomplete_footer.jison delete mode 100644 src/jison/sql/calcite/autocomplete_header.jison delete mode 100644 src/jison/sql/calcite/sql.jisonlex delete mode 100644 src/jison/sql/calcite/sql_alter.jison delete mode 100644 src/jison/sql/calcite/sql_create.jison delete mode 100644 src/jison/sql/calcite/sql_drop.jison delete mode 100644 src/jison/sql/calcite/sql_error.jison delete mode 100644 src/jison/sql/calcite/sql_insert.jison delete mode 100644 src/jison/sql/calcite/sql_main.jison delete mode 100644 src/jison/sql/calcite/sql_set.jison delete mode 100644 src/jison/sql/calcite/sql_update.jison delete mode 100644 src/jison/sql/calcite/sql_use.jison delete mode 100644 src/jison/sql/calcite/sql_valueExpression.jison delete mode 100644 src/jison/sql/calcite/syntax_footer.jison delete mode 100644 src/jison/sql/calcite/syntax_header.jison delete mode 100644 src/jison/sql/druid/autocomplete_footer.jison delete mode 100644 src/jison/sql/druid/autocomplete_header.jison delete mode 100644 src/jison/sql/druid/sql.jisonlex delete mode 100644 src/jison/sql/druid/sql_alter.jison delete mode 100644 src/jison/sql/druid/sql_create.jison delete mode 100644 src/jison/sql/druid/sql_drop.jison delete mode 100644 src/jison/sql/druid/sql_error.jison delete mode 100644 src/jison/sql/druid/sql_insert.jison delete mode 100644 src/jison/sql/druid/sql_main.jison delete mode 100644 src/jison/sql/druid/sql_set.jison delete mode 100644 src/jison/sql/druid/sql_update.jison delete mode 100644 src/jison/sql/druid/sql_use.jison delete mode 100644 src/jison/sql/druid/sql_valueExpression.jison delete mode 100644 src/jison/sql/druid/syntax_footer.jison delete mode 100644 src/jison/sql/druid/syntax_header.jison delete mode 100644 src/jison/sql/elasticsearch/autocomplete_footer.jison delete mode 100644 src/jison/sql/elasticsearch/autocomplete_header.jison delete mode 100644 src/jison/sql/elasticsearch/sql.jisonlex delete mode 100644 src/jison/sql/elasticsearch/sql_alter.jison delete mode 100644 src/jison/sql/elasticsearch/sql_create.jison delete mode 100644 src/jison/sql/elasticsearch/sql_drop.jison delete mode 100644 src/jison/sql/elasticsearch/sql_error.jison delete mode 100644 src/jison/sql/elasticsearch/sql_insert.jison delete mode 100644 src/jison/sql/elasticsearch/sql_main.jison delete mode 100644 src/jison/sql/elasticsearch/sql_set.jison delete mode 100644 src/jison/sql/elasticsearch/sql_update.jison delete mode 100644 src/jison/sql/elasticsearch/sql_use.jison delete mode 100644 src/jison/sql/elasticsearch/sql_valueExpression.jison delete mode 100644 src/jison/sql/elasticsearch/syntax_footer.jison delete mode 100644 src/jison/sql/elasticsearch/syntax_header.jison delete mode 100644 src/jison/sql/flink/autocomplete_footer.jison delete mode 100644 src/jison/sql/flink/autocomplete_header.jison delete mode 100644 src/jison/sql/flink/sql.jisonlex delete mode 100644 src/jison/sql/flink/sql_create.jison delete mode 100644 src/jison/sql/flink/sql_drop.jison delete mode 100644 src/jison/sql/flink/sql_error.jison delete mode 100644 src/jison/sql/flink/sql_insert.jison delete mode 100644 src/jison/sql/flink/sql_list.jison delete mode 100644 src/jison/sql/flink/sql_main.jison delete mode 100644 src/jison/sql/flink/sql_set.jison delete mode 100644 src/jison/sql/flink/sql_show.jison delete mode 100644 src/jison/sql/flink/sql_valueExpression.jison delete mode 100644 src/jison/sql/flink/syntax_footer.jison delete mode 100644 src/jison/sql/flink/syntax_header.jison delete mode 100644 src/jison/sql/generic/autocomplete_footer.jison delete mode 100644 src/jison/sql/generic/autocomplete_header.jison delete mode 100644 src/jison/sql/generic/sql.jisonlex delete mode 100644 src/jison/sql/generic/sql_alter.jison delete mode 100644 src/jison/sql/generic/sql_create.jison delete mode 100644 src/jison/sql/generic/sql_drop.jison delete mode 100644 src/jison/sql/generic/sql_error.jison delete mode 100644 src/jison/sql/generic/sql_insert.jison delete mode 100644 src/jison/sql/generic/sql_main.jison delete mode 100644 src/jison/sql/generic/sql_set.jison delete mode 100644 src/jison/sql/generic/sql_update.jison delete mode 100644 src/jison/sql/generic/sql_use.jison delete mode 100644 src/jison/sql/generic/sql_valueExpression.jison delete mode 100644 src/jison/sql/generic/syntax_footer.jison delete mode 100644 src/jison/sql/generic/syntax_header.jison delete mode 100644 src/jison/sql/hive/autocomplete_footer.jison delete mode 100644 src/jison/sql/hive/autocomplete_header.jison delete mode 100644 src/jison/sql/hive/sql.jisonlex delete mode 100644 src/jison/sql/hive/sql_alter.jison delete mode 100644 src/jison/sql/hive/sql_analyze.jison delete mode 100644 src/jison/sql/hive/sql_create.jison delete mode 100644 src/jison/sql/hive/sql_drop.jison delete mode 100644 src/jison/sql/hive/sql_error.jison delete mode 100644 src/jison/sql/hive/sql_grant.jison delete mode 100644 src/jison/sql/hive/sql_insert.jison delete mode 100644 src/jison/sql/hive/sql_load.jison delete mode 100644 src/jison/sql/hive/sql_main.jison delete mode 100644 src/jison/sql/hive/sql_set.jison delete mode 100644 src/jison/sql/hive/sql_show.jison delete mode 100644 src/jison/sql/hive/sql_update.jison delete mode 100644 src/jison/sql/hive/sql_use.jison delete mode 100644 src/jison/sql/hive/sql_valueExpression.jison delete mode 100644 src/jison/sql/hive/syntax_footer.jison delete mode 100644 src/jison/sql/hive/syntax_header.jison delete mode 100644 src/jison/sql/impala/autocomplete_footer.jison delete mode 100644 src/jison/sql/impala/autocomplete_header.jison delete mode 100644 src/jison/sql/impala/sql.jisonlex delete mode 100644 src/jison/sql/impala/sql_alter.jison delete mode 100644 src/jison/sql/impala/sql_analyze.jison delete mode 100644 src/jison/sql/impala/sql_create.jison delete mode 100644 src/jison/sql/impala/sql_drop.jison delete mode 100644 src/jison/sql/impala/sql_error.jison delete mode 100644 src/jison/sql/impala/sql_grant.jison delete mode 100644 src/jison/sql/impala/sql_insert.jison delete mode 100644 src/jison/sql/impala/sql_load.jison delete mode 100644 src/jison/sql/impala/sql_main.jison delete mode 100644 src/jison/sql/impala/sql_set.jison delete mode 100644 src/jison/sql/impala/sql_show.jison delete mode 100644 src/jison/sql/impala/sql_update.jison delete mode 100644 src/jison/sql/impala/sql_use.jison delete mode 100644 src/jison/sql/impala/sql_valueExpression.jison delete mode 100644 src/jison/sql/impala/syntax_footer.jison delete mode 100644 src/jison/sql/impala/syntax_header.jison delete mode 100644 src/jison/sql/ksql/autocomplete_footer.jison delete mode 100644 src/jison/sql/ksql/autocomplete_header.jison delete mode 100644 src/jison/sql/ksql/sql.jisonlex delete mode 100644 src/jison/sql/ksql/sql_create.jison delete mode 100644 src/jison/sql/ksql/sql_drop.jison delete mode 100644 src/jison/sql/ksql/sql_error.jison delete mode 100644 src/jison/sql/ksql/sql_insert.jison delete mode 100644 src/jison/sql/ksql/sql_list.jison delete mode 100644 src/jison/sql/ksql/sql_main.jison delete mode 100644 src/jison/sql/ksql/sql_set.jison delete mode 100644 src/jison/sql/ksql/sql_show.jison delete mode 100644 src/jison/sql/ksql/sql_valueExpression.jison delete mode 100644 src/jison/sql/ksql/syntax_footer.jison delete mode 100644 src/jison/sql/ksql/syntax_header.jison delete mode 100644 src/jison/sql/phoenix/autocomplete_footer.jison delete mode 100644 src/jison/sql/phoenix/autocomplete_header.jison delete mode 100644 src/jison/sql/phoenix/sql.jisonlex delete mode 100644 src/jison/sql/phoenix/sql_alter.jison delete mode 100644 src/jison/sql/phoenix/sql_create.jison delete mode 100644 src/jison/sql/phoenix/sql_drop.jison delete mode 100644 src/jison/sql/phoenix/sql_error.jison delete mode 100644 src/jison/sql/phoenix/sql_insert.jison delete mode 100644 src/jison/sql/phoenix/sql_main.jison delete mode 100644 src/jison/sql/phoenix/sql_set.jison delete mode 100644 src/jison/sql/phoenix/sql_update.jison delete mode 100644 src/jison/sql/phoenix/sql_use.jison delete mode 100644 src/jison/sql/phoenix/sql_valueExpression.jison delete mode 100644 src/jison/sql/phoenix/syntax_footer.jison delete mode 100644 src/jison/sql/phoenix/syntax_header.jison delete mode 100644 src/jison/sql/presto/autocomplete_footer.jison delete mode 100644 src/jison/sql/presto/autocomplete_header.jison delete mode 100644 src/jison/sql/presto/sql.jisonlex delete mode 100644 src/jison/sql/presto/sql_alter.jison delete mode 100644 src/jison/sql/presto/sql_analyze.jison delete mode 100644 src/jison/sql/presto/sql_create.jison delete mode 100644 src/jison/sql/presto/sql_drop.jison delete mode 100644 src/jison/sql/presto/sql_error.jison delete mode 100644 src/jison/sql/presto/sql_grant.jison delete mode 100644 src/jison/sql/presto/sql_insert.jison delete mode 100644 src/jison/sql/presto/sql_load.jison delete mode 100644 src/jison/sql/presto/sql_main.jison delete mode 100644 src/jison/sql/presto/sql_set.jison delete mode 100644 src/jison/sql/presto/sql_show.jison delete mode 100644 src/jison/sql/presto/sql_update.jison delete mode 100644 src/jison/sql/presto/sql_use.jison delete mode 100644 src/jison/sql/presto/sql_valueExpression.jison delete mode 100644 src/jison/sql/presto/syntax_footer.jison delete mode 100644 src/jison/sql/presto/syntax_header.jison delete mode 100644 src/jison/sqlStatementsParser.jison delete mode 100644 src/jison/sql_alter.jison delete mode 100644 src/jison/sql_analyze.jison delete mode 100644 src/jison/sql_create.jison delete mode 100644 src/jison/sql_drop.jison delete mode 100644 src/jison/sql_error.jison delete mode 100644 src/jison/sql_grant.jison delete mode 100644 src/jison/sql_insert.jison delete mode 100644 src/jison/sql_load.jison delete mode 100644 src/jison/sql_main.jison delete mode 100644 src/jison/sql_set.jison delete mode 100644 src/jison/sql_show.jison delete mode 100644 src/jison/sql_update.jison delete mode 100644 src/jison/sql_use.jison delete mode 100644 src/jison/sql_valueExpression.jison delete mode 100644 src/jison/syntax_footer.jison delete mode 100644 src/jison/syntax_header.jison delete mode 100644 src/lib/filter.ts delete mode 100644 src/lib/flinkParser.ts delete mode 100644 src/lib/parser.ts create mode 100644 src/parser/MySQLLexer.js create mode 100644 src/parser/MySQLLexer.tokens create mode 100644 src/parser/MySQLParser.js create mode 100644 src/parser/MySQLParser.tokens create mode 100644 src/parser/MySQLParserListener.js create mode 100644 src/parser/MySQLParserVisitor.js create mode 100644 src/parser/TSqlLexer.js create mode 100644 src/parser/TSqlLexer.tokens create mode 100644 src/parser/TSqlParser.js create mode 100644 src/parser/TSqlParser.tokens create mode 100644 src/parser/TSqlParserListener.js create mode 100644 src/parser/TSqlParserVisitor.js delete mode 100644 src/peg/build.js delete mode 100644 src/peg/comment.pegjs delete mode 100644 src/scripts/generateParsers.js delete mode 100644 src/typing/base.d.ts create mode 100644 src/typings/index.d.ts diff --git a/src/antlr4/flinksql/sqlLexer.js b/src/antlr4/flinksql/sqlLexer.js deleted file mode 100644 index 75571e1..0000000 --- a/src/antlr4/flinksql/sqlLexer.js +++ /dev/null @@ -1,2187 +0,0 @@ -// Generated from ./grammar/sql.g4 by ANTLR 4.7.1 -// jshint ignore: start -var antlr4 = require('antlr4/index'); - - -var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", - "\u0002\u0115\u09b4\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004", - "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t", - "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", - "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", - "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", - "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", - "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", - "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", - "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", - "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", - "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", - "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", - "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", - "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", - "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", - "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", - "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", - "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", - "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", - "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", - "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", - "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", - "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", - "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", - "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", - "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", - "\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", - "\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", - "\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", - "\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", - "\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", - "\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", - "\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", - "\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", - "\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", - "\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", - "\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", - "\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", - "\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", - "\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", - "\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", - "\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", - "\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", - "\u00c8\t\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t", - "\u00cb\u0004\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004", - "\u00cf\t\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t", - "\u00d2\u0004\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004", - "\u00d6\t\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t", - "\u00d9\u0004\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004", - "\u00dd\t\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t", - "\u00e0\u0004\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004", - "\u00e4\t\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t", - "\u00e7\u0004\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004", - "\u00eb\t\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t", - "\u00ee\u0004\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004", - "\u00f2\t\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t", - "\u00f5\u0004\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004", - "\u00f9\t\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t", - "\u00fc\u0004\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004", - "\u0100\t\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t", - "\u0103\u0004\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004", - "\u0107\t\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t", - "\u010a\u0004\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004", - "\u010e\t\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t", - "\u0111\u0004\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004", - "\u0115\t\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t", - "\u0118\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0004\u0003", - "\u0004\u0003\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003", - "\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\b\u0003\b\u0003\b\u0003", - "\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0003\u000b", - "\u0003\f\u0003\f\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000e", - "\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011", - "\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011", - "\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013", - "\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014", - "\u0003\u0014\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015", - "\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017", - "\u0003\u0017\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0019", - "\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001a", - "\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a", - "\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b", - "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c", - "\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001e\u0003\u001e\u0003\u001e", - "\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e", - "\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003 ", - "\u0003 \u0003 \u0003 \u0003 \u0003!\u0003!\u0003!\u0003!\u0003!\u0003", - "!\u0003!\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003#\u0003", - "#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003$\u0003$\u0003$\u0003$\u0003", - "$\u0003$\u0003%\u0003%\u0003%\u0003&\u0003&\u0003&\u0003\'\u0003\'\u0003", - "\'\u0003\'\u0003(\u0003(\u0003(\u0003)\u0003)\u0003)\u0003)\u0005)\u02d6", - "\n)\u0003*\u0003*\u0003*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003", - "+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003-\u0003", - "-\u0003-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003", - ".\u0003.\u0003.\u0003.\u0003.\u0005.\u02fa\n.\u0003/\u0003/\u0003/\u0003", - "0\u00030\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u00031\u0003", - "2\u00032\u00032\u00032\u00032\u00032\u00033\u00033\u00033\u00033\u0003", - "3\u00033\u00034\u00034\u00034\u00034\u00035\u00035\u00035\u00035\u0003", - "5\u00036\u00036\u00036\u00036\u00037\u00037\u00037\u00037\u00037\u0003", - "7\u00037\u00037\u00037\u00038\u00038\u00038\u00038\u00038\u00039\u0003", - "9\u00039\u00039\u00039\u0003:\u0003:\u0003:\u0003:\u0003:\u0003;\u0003", - ";\u0003;\u0003;\u0003;\u0003<\u0003<\u0003<\u0003<\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003?\u0003", - "?\u0003?\u0003?\u0003?\u0003?\u0003@\u0003@\u0003@\u0003@\u0003@\u0003", - "@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003B\u0003B\u0003B\u0003B\u0003", - "B\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003D\u0003", - "D\u0003D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", - "F\u0003F\u0003F\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003H\u0003", - "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003", - "I\u0003I\u0003I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003J\u0003K\u0003", - "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003L\u0003", - "L\u0003L\u0003L\u0003L\u0003L\u0003M\u0003M\u0003M\u0003M\u0003M\u0003", - "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003", - "O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003", - "P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003", - "Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003", - "R\u0003R\u0003R\u0003R\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003", - "T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003U\u0003V\u0003", - "V\u0003V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", - "W\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003Y\u0003Y\u0003", - "Y\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003", - "Z\u0003Z\u0003Z\u0003Z\u0003[\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003", - "\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003]\u0003]\u0003", - "]\u0003]\u0003]\u0003]\u0003]\u0003^\u0003^\u0003^\u0003^\u0003^\u0003", - "^\u0003^\u0003_\u0003_\u0003_\u0003_\u0003_\u0003`\u0003`\u0003`\u0003", - "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", - "b\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003d\u0003", - "d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003e\u0003", - "e\u0003e\u0003f\u0003f\u0003f\u0003f\u0003f\u0003g\u0003g\u0003g\u0003", - "g\u0003g\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003i\u0003", - "i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003j\u0003j\u0003j\u0003", - "j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003k\u0003k\u0003l\u0003l\u0003", - "l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003m\u0003", - "m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003", - "n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003", - "p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003", - "q\u0003q\u0003q\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003", - "r\u0003r\u0003r\u0003s\u0003s\u0003s\u0003t\u0003t\u0003t\u0003t\u0003", - "t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003u\u0003u\u0003", - "u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003v\u0003v\u0003v\u0003", - "v\u0003v\u0003v\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003", - "x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003y\u0003y\u0003y\u0003y\u0003", - "z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003", - "{\u0003{\u0003{\u0003{\u0003{\u0003|\u0003|\u0003|\u0003|\u0003}\u0003", - "}\u0003}\u0003}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003", - "\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003", - "\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003", - "\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003", - "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003", - "\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003", - "\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0083\u0003\u0083\u0003", - "\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003\u0084\u0003", - "\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003", - "\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0086\u0003\u0086\u0003", - "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", - "\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003", - "\u0087\u0003\u0087\u0003\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0003", - "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003", - "\u0089\u0003\u0089\u0003\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003", - "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003", - "\u008b\u0003\u008b\u0005\u008b\u0558\n\u008b\u0003\u008c\u0003\u008c", - "\u0003\u008c\u0003\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008e", - "\u0003\u008e\u0003\u008e\u0003\u008f\u0003\u008f\u0003\u0090\u0003\u0090", - "\u0003\u0090\u0003\u0090\u0005\u0090\u056a\n\u0090\u0003\u0091\u0003", - "\u0091\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0005\u0092\u0572", - "\n\u0092\u0003\u0093\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0095", - "\u0003\u0095\u0003\u0096\u0003\u0096\u0003\u0097\u0003\u0097\u0003\u0098", - "\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u009a", - "\u0003\u009a\u0003\u009b\u0003\u009b\u0003\u009c\u0003\u009c\u0003\u009c", - "\u0003\u009d\u0003\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e", - "\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009f\u0003\u009f", - "\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u00a0", - "\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a1", - "\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a3", - "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3", - "\u0003\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", - "\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", - "\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5", - "\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a6\u0003\u00a6", - "\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", - "\u0003\u00a6\u0003\u00a6\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7", - "\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8", - "\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a9\u0003\u00a9\u0003\u00a9", - "\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa", - "\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa", - "\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa", - "\u0003\u00aa\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab", - "\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab", - "\u0003\u00ab\u0003\u00ab\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac", - "\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac", - "\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad", - "\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad", - "\u0003\u00ad\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae", - "\u0003\u00ae\u0003\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af", - "\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af", - "\u0003\u00af\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0", - "\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0", - "\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1", - "\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b3", - "\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3", - "\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4", - "\u0003\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5", - "\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b6", - "\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6", - "\u0003\u00b6\u0003\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7", - "\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b8", - "\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8", - "\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", - "\u0003\u00b9\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba", - "\u0003\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", - "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc", - "\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd", - "\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd", - "\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be", - "\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", - "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", - "\u0003\u00bf\u0003\u00bf\u0005\u00bf\u06a7\n\u00bf\u0003\u00c0\u0003", - "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", - "\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", - "\u00c1\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003", - "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003", - "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", - "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", - "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003", - "\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", - "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", - "\u00c5\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003", - "\u00c6\u0003\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", - "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", - "\u00c7\u0003\u00c7\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003", - "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c9\u0003", - "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", - "\u00c9\u0003\u00c9\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", - "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003", - "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003", - "\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", - "\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", - "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", - "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", - "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003", - "\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003", - "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", - "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", - "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", - "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", - "\u00d3\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003", - "\u00d4\u0003\u00d4\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003", - "\u00d5\u0003\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", - "\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", - "\u00d6\u0003\u00d6\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", - "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", - "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", - "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", - "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8\u0793", - "\n\u00d8\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9", - "\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9", - "\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0005\u00d9", - "\u07a5\n\u00d9\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", - "\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003", - "\u00db\u0003\u00db\u0003\u00db\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", - "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0003", - "\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003", - "\u00dd\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", - "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003", - "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00e0\u0003", - "\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003", - "\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003", - "\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003", - "\u00e1\u0003\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", - "\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e3\u0003\u00e3\u0003", - "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e4\u0003", - "\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e5\u0003", - "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e6\u0003\u00e6\u0003", - "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7\u0003", - "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e8\u0003\u00e8\u0003", - "\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e9\u0003", - "\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003", - "\u00e9\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", - "\u00ea\u0003\u00ea\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003", - "\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003", - "\u00ec\u0003\u00ec\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003", - "\u00ed\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003", - "\u00ee\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003", - "\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003", - "\u00ef\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003", - "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003", - "\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003", - "\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003", - "\u00f1\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003", - "\u00f2\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003", - "\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003", - "\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", - "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f6\u0003\u00f6\u0003", - "\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003", - "\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003", - "\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f9\u0003\u00f9\u0003", - "\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003", - "\u00f9\u0003\u00f9\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003", - "\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003", - "\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003", - "\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003", - "\u00fb\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", - "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fd\u0003\u00fd\u0003", - "\u00fd\u0003\u00fd\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003", - "\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003", - "\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0101\u0003", - "\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0102\u0003\u0102\u0003", - "\u0102\u0003\u0102\u0003\u0102\u0003\u0103\u0003\u0103\u0003\u0103\u0003", - "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0104\u0003", - "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", - "\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003", - "\u0105\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0106\u0007\u0106\u08ee", - "\n\u0106\f\u0106\u000e\u0106\u08f1\u000b\u0106\u0003\u0106\u0003\u0106", - "\u0003\u0106\u0003\u0106\u0003\u0106\u0007\u0106\u08f8\n\u0106\f\u0106", - "\u000e\u0106\u08fb\u000b\u0106\u0003\u0106\u0005\u0106\u08fe\n\u0106", - "\u0003\u0107\u0006\u0107\u0901\n\u0107\r\u0107\u000e\u0107\u0902\u0003", - "\u0107\u0003\u0107\u0003\u0108\u0006\u0108\u0908\n\u0108\r\u0108\u000e", - "\u0108\u0909\u0003\u0108\u0003\u0108\u0003\u0109\u0006\u0109\u090f\n", - "\u0109\r\u0109\u000e\u0109\u0910\u0003\u0109\u0003\u0109\u0003\u010a", - "\u0006\u010a\u0916\n\u010a\r\u010a\u000e\u010a\u0917\u0003\u010b\u0006", - "\u010b\u091b\n\u010b\r\u010b\u000e\u010b\u091c\u0003\u010b\u0003\u010b", - "\u0003\u010b\u0003\u010b\u0005\u010b\u0923\n\u010b\u0003\u010b\u0003", - "\u010b\u0005\u010b\u0927\n\u010b\u0003\u010c\u0006\u010c\u092a\n\u010c", - "\r\u010c\u000e\u010c\u092b\u0003\u010c\u0005\u010c\u092f\n\u010c\u0003", - "\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0005\u010c\u0935\n\u010c", - "\u0003\u010c\u0003\u010c\u0003\u010c\u0005\u010c\u093a\n\u010c\u0003", - "\u010d\u0006\u010d\u093d\n\u010d\r\u010d\u000e\u010d\u093e\u0003\u010d", - "\u0005\u010d\u0942\n\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003", - "\u010d\u0003\u010d\u0005\u010d\u0949\n\u010d\u0003\u010d\u0003\u010d", - "\u0003\u010d\u0003\u010d\u0003\u010d\u0005\u010d\u0950\n\u010d\u0003", - "\u010e\u0003\u010e\u0003\u010e\u0006\u010e\u0955\n\u010e\r\u010e\u000e", - "\u010e\u0956\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0007\u010f", - "\u095d\n\u010f\f\u010f\u000e\u010f\u0960\u000b\u010f\u0003\u010f\u0003", - "\u010f\u0003\u0110\u0006\u0110\u0965\n\u0110\r\u0110\u000e\u0110\u0966", - "\u0003\u0110\u0003\u0110\u0007\u0110\u096b\n\u0110\f\u0110\u000e\u0110", - "\u096e\u000b\u0110\u0003\u0110\u0003\u0110\u0006\u0110\u0972\n\u0110", - "\r\u0110\u000e\u0110\u0973\u0005\u0110\u0976\n\u0110\u0003\u0111\u0003", - "\u0111\u0005\u0111\u097a\n\u0111\u0003\u0111\u0006\u0111\u097d\n\u0111", - "\r\u0111\u000e\u0111\u097e\u0003\u0112\u0003\u0112\u0003\u0113\u0003", - "\u0113\u0003\u0114\u0003\u0114\u0003\u0114\u0003\u0114\u0007\u0114\u0989", - "\n\u0114\f\u0114\u000e\u0114\u098c\u000b\u0114\u0003\u0114\u0005\u0114", - "\u098f\n\u0114\u0003\u0114\u0005\u0114\u0992\n\u0114\u0003\u0114\u0003", - "\u0114\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003", - "\u0115\u0003\u0115\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003", - "\u0116\u0007\u0116\u09a2\n\u0116\f\u0116\u000e\u0116\u09a5\u000b\u0116", - "\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0117", - "\u0006\u0117\u09ad\n\u0117\r\u0117\u000e\u0117\u09ae\u0003\u0117\u0003", - "\u0117\u0003\u0118\u0003\u0118\u0003\u09a3\u0002\u0119\u0003\u0003\u0005", - "\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f\t\u0011\n\u0013\u000b", - "\u0015\f\u0017\r\u0019\u000e\u001b\u000f\u001d\u0010\u001f\u0011!\u0012", - "#\u0013%\u0014\'\u0015)\u0016+\u0017-\u0018/\u00191\u001a3\u001b5\u001c", - "7\u001d9\u001e;\u001f= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5", - "i6k7m8o9q:s;u{?}@\u007fA\u0081B\u0083C\u0085D\u0087E\u0089F\u008b", - "G\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009f", - "Q\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3", - "[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7", - "e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00db", - "o\u00ddp\u00dfq\u00e1r\u00e3s\u00e5t\u00e7u\u00e9v\u00ebw\u00edx\u00ef", - "y\u00f1z\u00f3{\u00f5|\u00f7}\u00f9~\u00fb\u007f\u00fd\u0080\u00ff\u0081", - "\u0101\u0082\u0103\u0083\u0105\u0084\u0107\u0085\u0109\u0086\u010b\u0087", - "\u010d\u0088\u010f\u0089\u0111\u008a\u0113\u008b\u0115\u008c\u0117\u008d", - "\u0119\u008e\u011b\u008f\u011d\u0090\u011f\u0091\u0121\u0092\u0123\u0093", - "\u0125\u0094\u0127\u0095\u0129\u0096\u012b\u0097\u012d\u0098\u012f\u0099", - "\u0131\u009a\u0133\u009b\u0135\u009c\u0137\u009d\u0139\u009e\u013b\u009f", - "\u013d\u00a0\u013f\u00a1\u0141\u00a2\u0143\u00a3\u0145\u00a4\u0147\u00a5", - "\u0149\u00a6\u014b\u00a7\u014d\u00a8\u014f\u00a9\u0151\u00aa\u0153\u00ab", - "\u0155\u00ac\u0157\u00ad\u0159\u00ae\u015b\u00af\u015d\u00b0\u015f\u00b1", - "\u0161\u00b2\u0163\u00b3\u0165\u00b4\u0167\u00b5\u0169\u00b6\u016b\u00b7", - "\u016d\u00b8\u016f\u00b9\u0171\u00ba\u0173\u00bb\u0175\u00bc\u0177\u00bd", - "\u0179\u00be\u017b\u00bf\u017d\u00c0\u017f\u00c1\u0181\u00c2\u0183\u00c3", - "\u0185\u00c4\u0187\u00c5\u0189\u00c6\u018b\u00c7\u018d\u00c8\u018f\u00c9", - "\u0191\u00ca\u0193\u00cb\u0195\u00cc\u0197\u00cd\u0199\u00ce\u019b\u00cf", - "\u019d\u00d0\u019f\u00d1\u01a1\u00d2\u01a3\u00d3\u01a5\u00d4\u01a7\u00d5", - "\u01a9\u00d6\u01ab\u00d7\u01ad\u00d8\u01af\u00d9\u01b1\u00da\u01b3\u00db", - "\u01b5\u00dc\u01b7\u00dd\u01b9\u00de\u01bb\u00df\u01bd\u00e0\u01bf\u00e1", - "\u01c1\u00e2\u01c3\u00e3\u01c5\u00e4\u01c7\u00e5\u01c9\u00e6\u01cb\u00e7", - "\u01cd\u00e8\u01cf\u00e9\u01d1\u00ea\u01d3\u00eb\u01d5\u00ec\u01d7\u00ed", - "\u01d9\u00ee\u01db\u00ef\u01dd\u00f0\u01df\u00f1\u01e1\u00f2\u01e3\u00f3", - "\u01e5\u00f4\u01e7\u00f5\u01e9\u00f6\u01eb\u00f7\u01ed\u00f8\u01ef\u00f9", - "\u01f1\u00fa\u01f3\u00fb\u01f5\u00fc\u01f7\u00fd\u01f9\u00fe\u01fb\u00ff", - "\u01fd\u0100\u01ff\u0101\u0201\u0102\u0203\u0103\u0205\u0104\u0207\u0105", - "\u0209\u0106\u020b\u0107\u020d\u0108\u020f\u0109\u0211\u010a\u0213\u010b", - "\u0215\u010c\u0217\u010d\u0219\u010e\u021b\u010f\u021d\u0110\u021f\u0002", - "\u0221\u0002\u0223\u0002\u0225\u0002\u0227\u0111\u0229\u0112\u022b\u0113", - "\u022d\u0114\u022f\u0115\u0003\u0002\u000b\u0004\u0002))^^\u0004\u0002", - "$$^^\u0003\u0002bb\u0004\u0002--//\u0003\u00022;\u0003\u0002C\\\u0004", - "\u0002\f\f\u000f\u000f\u0003\u0002--\u0005\u0002\u000b\f\u000f\u000f", - "\"\"\u0002\u09db\u0002\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003", - "\u0002\u0002\u0002\u0002\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003", - "\u0002\u0002\u0002\u0002\u000b\u0003\u0002\u0002\u0002\u0002\r\u0003", - "\u0002\u0002\u0002\u0002\u000f\u0003\u0002\u0002\u0002\u0002\u0011\u0003", - "\u0002\u0002\u0002\u0002\u0013\u0003\u0002\u0002\u0002\u0002\u0015\u0003", - "\u0002\u0002\u0002\u0002\u0017\u0003\u0002\u0002\u0002\u0002\u0019\u0003", - "\u0002\u0002\u0002\u0002\u001b\u0003\u0002\u0002\u0002\u0002\u001d\u0003", - "\u0002\u0002\u0002\u0002\u001f\u0003\u0002\u0002\u0002\u0002!\u0003", - "\u0002\u0002\u0002\u0002#\u0003\u0002\u0002\u0002\u0002%\u0003\u0002", - "\u0002\u0002\u0002\'\u0003\u0002\u0002\u0002\u0002)\u0003\u0002\u0002", - "\u0002\u0002+\u0003\u0002\u0002\u0002\u0002-\u0003\u0002\u0002\u0002", - "\u0002/\u0003\u0002\u0002\u0002\u00021\u0003\u0002\u0002\u0002\u0002", - "3\u0003\u0002\u0002\u0002\u00025\u0003\u0002\u0002\u0002\u00027\u0003", - "\u0002\u0002\u0002\u00029\u0003\u0002\u0002\u0002\u0002;\u0003\u0002", - "\u0002\u0002\u0002=\u0003\u0002\u0002\u0002\u0002?\u0003\u0002\u0002", - "\u0002\u0002A\u0003\u0002\u0002\u0002\u0002C\u0003\u0002\u0002\u0002", - "\u0002E\u0003\u0002\u0002\u0002\u0002G\u0003\u0002\u0002\u0002\u0002", - "I\u0003\u0002\u0002\u0002\u0002K\u0003\u0002\u0002\u0002\u0002M\u0003", - "\u0002\u0002\u0002\u0002O\u0003\u0002\u0002\u0002\u0002Q\u0003\u0002", - "\u0002\u0002\u0002S\u0003\u0002\u0002\u0002\u0002U\u0003\u0002\u0002", - "\u0002\u0002W\u0003\u0002\u0002\u0002\u0002Y\u0003\u0002\u0002\u0002", - "\u0002[\u0003\u0002\u0002\u0002\u0002]\u0003\u0002\u0002\u0002\u0002", - "_\u0003\u0002\u0002\u0002\u0002a\u0003\u0002\u0002\u0002\u0002c\u0003", - "\u0002\u0002\u0002\u0002e\u0003\u0002\u0002\u0002\u0002g\u0003\u0002", - "\u0002\u0002\u0002i\u0003\u0002\u0002\u0002\u0002k\u0003\u0002\u0002", - "\u0002\u0002m\u0003\u0002\u0002\u0002\u0002o\u0003\u0002\u0002\u0002", - "\u0002q\u0003\u0002\u0002\u0002\u0002s\u0003\u0002\u0002\u0002\u0002", - "u\u0003\u0002\u0002\u0002\u0002w\u0003\u0002\u0002\u0002\u0002y\u0003", - "\u0002\u0002\u0002\u0002{\u0003\u0002\u0002\u0002\u0002}\u0003\u0002", - "\u0002\u0002\u0002\u007f\u0003\u0002\u0002\u0002\u0002\u0081\u0003\u0002", - "\u0002\u0002\u0002\u0083\u0003\u0002\u0002\u0002\u0002\u0085\u0003\u0002", - "\u0002\u0002\u0002\u0087\u0003\u0002\u0002\u0002\u0002\u0089\u0003\u0002", - "\u0002\u0002\u0002\u008b\u0003\u0002\u0002\u0002\u0002\u008d\u0003\u0002", - "\u0002\u0002\u0002\u008f\u0003\u0002\u0002\u0002\u0002\u0091\u0003\u0002", - "\u0002\u0002\u0002\u0093\u0003\u0002\u0002\u0002\u0002\u0095\u0003\u0002", - "\u0002\u0002\u0002\u0097\u0003\u0002\u0002\u0002\u0002\u0099\u0003\u0002", - "\u0002\u0002\u0002\u009b\u0003\u0002\u0002\u0002\u0002\u009d\u0003\u0002", - "\u0002\u0002\u0002\u009f\u0003\u0002\u0002\u0002\u0002\u00a1\u0003\u0002", - "\u0002\u0002\u0002\u00a3\u0003\u0002\u0002\u0002\u0002\u00a5\u0003\u0002", - "\u0002\u0002\u0002\u00a7\u0003\u0002\u0002\u0002\u0002\u00a9\u0003\u0002", - "\u0002\u0002\u0002\u00ab\u0003\u0002\u0002\u0002\u0002\u00ad\u0003\u0002", - "\u0002\u0002\u0002\u00af\u0003\u0002\u0002\u0002\u0002\u00b1\u0003\u0002", - "\u0002\u0002\u0002\u00b3\u0003\u0002\u0002\u0002\u0002\u00b5\u0003\u0002", - "\u0002\u0002\u0002\u00b7\u0003\u0002\u0002\u0002\u0002\u00b9\u0003\u0002", - "\u0002\u0002\u0002\u00bb\u0003\u0002\u0002\u0002\u0002\u00bd\u0003\u0002", - "\u0002\u0002\u0002\u00bf\u0003\u0002\u0002\u0002\u0002\u00c1\u0003\u0002", - "\u0002\u0002\u0002\u00c3\u0003\u0002\u0002\u0002\u0002\u00c5\u0003\u0002", - "\u0002\u0002\u0002\u00c7\u0003\u0002\u0002\u0002\u0002\u00c9\u0003\u0002", - "\u0002\u0002\u0002\u00cb\u0003\u0002\u0002\u0002\u0002\u00cd\u0003\u0002", - "\u0002\u0002\u0002\u00cf\u0003\u0002\u0002\u0002\u0002\u00d1\u0003\u0002", - "\u0002\u0002\u0002\u00d3\u0003\u0002\u0002\u0002\u0002\u00d5\u0003\u0002", - "\u0002\u0002\u0002\u00d7\u0003\u0002\u0002\u0002\u0002\u00d9\u0003\u0002", - "\u0002\u0002\u0002\u00db\u0003\u0002\u0002\u0002\u0002\u00dd\u0003\u0002", - "\u0002\u0002\u0002\u00df\u0003\u0002\u0002\u0002\u0002\u00e1\u0003\u0002", - "\u0002\u0002\u0002\u00e3\u0003\u0002\u0002\u0002\u0002\u00e5\u0003\u0002", - "\u0002\u0002\u0002\u00e7\u0003\u0002\u0002\u0002\u0002\u00e9\u0003\u0002", - "\u0002\u0002\u0002\u00eb\u0003\u0002\u0002\u0002\u0002\u00ed\u0003\u0002", - "\u0002\u0002\u0002\u00ef\u0003\u0002\u0002\u0002\u0002\u00f1\u0003\u0002", - "\u0002\u0002\u0002\u00f3\u0003\u0002\u0002\u0002\u0002\u00f5\u0003\u0002", - "\u0002\u0002\u0002\u00f7\u0003\u0002\u0002\u0002\u0002\u00f9\u0003\u0002", - "\u0002\u0002\u0002\u00fb\u0003\u0002\u0002\u0002\u0002\u00fd\u0003\u0002", - "\u0002\u0002\u0002\u00ff\u0003\u0002\u0002\u0002\u0002\u0101\u0003\u0002", - "\u0002\u0002\u0002\u0103\u0003\u0002\u0002\u0002\u0002\u0105\u0003\u0002", - "\u0002\u0002\u0002\u0107\u0003\u0002\u0002\u0002\u0002\u0109\u0003\u0002", - "\u0002\u0002\u0002\u010b\u0003\u0002\u0002\u0002\u0002\u010d\u0003\u0002", - "\u0002\u0002\u0002\u010f\u0003\u0002\u0002\u0002\u0002\u0111\u0003\u0002", - "\u0002\u0002\u0002\u0113\u0003\u0002\u0002\u0002\u0002\u0115\u0003\u0002", - "\u0002\u0002\u0002\u0117\u0003\u0002\u0002\u0002\u0002\u0119\u0003\u0002", - "\u0002\u0002\u0002\u011b\u0003\u0002\u0002\u0002\u0002\u011d\u0003\u0002", - "\u0002\u0002\u0002\u011f\u0003\u0002\u0002\u0002\u0002\u0121\u0003\u0002", - "\u0002\u0002\u0002\u0123\u0003\u0002\u0002\u0002\u0002\u0125\u0003\u0002", - "\u0002\u0002\u0002\u0127\u0003\u0002\u0002\u0002\u0002\u0129\u0003\u0002", - "\u0002\u0002\u0002\u012b\u0003\u0002\u0002\u0002\u0002\u012d\u0003\u0002", - "\u0002\u0002\u0002\u012f\u0003\u0002\u0002\u0002\u0002\u0131\u0003\u0002", - "\u0002\u0002\u0002\u0133\u0003\u0002\u0002\u0002\u0002\u0135\u0003\u0002", - "\u0002\u0002\u0002\u0137\u0003\u0002\u0002\u0002\u0002\u0139\u0003\u0002", - "\u0002\u0002\u0002\u013b\u0003\u0002\u0002\u0002\u0002\u013d\u0003\u0002", - "\u0002\u0002\u0002\u013f\u0003\u0002\u0002\u0002\u0002\u0141\u0003\u0002", - "\u0002\u0002\u0002\u0143\u0003\u0002\u0002\u0002\u0002\u0145\u0003\u0002", - "\u0002\u0002\u0002\u0147\u0003\u0002\u0002\u0002\u0002\u0149\u0003\u0002", - "\u0002\u0002\u0002\u014b\u0003\u0002\u0002\u0002\u0002\u014d\u0003\u0002", - "\u0002\u0002\u0002\u014f\u0003\u0002\u0002\u0002\u0002\u0151\u0003\u0002", - "\u0002\u0002\u0002\u0153\u0003\u0002\u0002\u0002\u0002\u0155\u0003\u0002", - "\u0002\u0002\u0002\u0157\u0003\u0002\u0002\u0002\u0002\u0159\u0003\u0002", - "\u0002\u0002\u0002\u015b\u0003\u0002\u0002\u0002\u0002\u015d\u0003\u0002", - "\u0002\u0002\u0002\u015f\u0003\u0002\u0002\u0002\u0002\u0161\u0003\u0002", - "\u0002\u0002\u0002\u0163\u0003\u0002\u0002\u0002\u0002\u0165\u0003\u0002", - "\u0002\u0002\u0002\u0167\u0003\u0002\u0002\u0002\u0002\u0169\u0003\u0002", - "\u0002\u0002\u0002\u016b\u0003\u0002\u0002\u0002\u0002\u016d\u0003\u0002", - "\u0002\u0002\u0002\u016f\u0003\u0002\u0002\u0002\u0002\u0171\u0003\u0002", - "\u0002\u0002\u0002\u0173\u0003\u0002\u0002\u0002\u0002\u0175\u0003\u0002", - "\u0002\u0002\u0002\u0177\u0003\u0002\u0002\u0002\u0002\u0179\u0003\u0002", - "\u0002\u0002\u0002\u017b\u0003\u0002\u0002\u0002\u0002\u017d\u0003\u0002", - "\u0002\u0002\u0002\u017f\u0003\u0002\u0002\u0002\u0002\u0181\u0003\u0002", - "\u0002\u0002\u0002\u0183\u0003\u0002\u0002\u0002\u0002\u0185\u0003\u0002", - "\u0002\u0002\u0002\u0187\u0003\u0002\u0002\u0002\u0002\u0189\u0003\u0002", - "\u0002\u0002\u0002\u018b\u0003\u0002\u0002\u0002\u0002\u018d\u0003\u0002", - "\u0002\u0002\u0002\u018f\u0003\u0002\u0002\u0002\u0002\u0191\u0003\u0002", - "\u0002\u0002\u0002\u0193\u0003\u0002\u0002\u0002\u0002\u0195\u0003\u0002", - "\u0002\u0002\u0002\u0197\u0003\u0002\u0002\u0002\u0002\u0199\u0003\u0002", - "\u0002\u0002\u0002\u019b\u0003\u0002\u0002\u0002\u0002\u019d\u0003\u0002", - "\u0002\u0002\u0002\u019f\u0003\u0002\u0002\u0002\u0002\u01a1\u0003\u0002", - "\u0002\u0002\u0002\u01a3\u0003\u0002\u0002\u0002\u0002\u01a5\u0003\u0002", - "\u0002\u0002\u0002\u01a7\u0003\u0002\u0002\u0002\u0002\u01a9\u0003\u0002", - "\u0002\u0002\u0002\u01ab\u0003\u0002\u0002\u0002\u0002\u01ad\u0003\u0002", - "\u0002\u0002\u0002\u01af\u0003\u0002\u0002\u0002\u0002\u01b1\u0003\u0002", - "\u0002\u0002\u0002\u01b3\u0003\u0002\u0002\u0002\u0002\u01b5\u0003\u0002", - "\u0002\u0002\u0002\u01b7\u0003\u0002\u0002\u0002\u0002\u01b9\u0003\u0002", - "\u0002\u0002\u0002\u01bb\u0003\u0002\u0002\u0002\u0002\u01bd\u0003\u0002", - "\u0002\u0002\u0002\u01bf\u0003\u0002\u0002\u0002\u0002\u01c1\u0003\u0002", - "\u0002\u0002\u0002\u01c3\u0003\u0002\u0002\u0002\u0002\u01c5\u0003\u0002", - "\u0002\u0002\u0002\u01c7\u0003\u0002\u0002\u0002\u0002\u01c9\u0003\u0002", - "\u0002\u0002\u0002\u01cb\u0003\u0002\u0002\u0002\u0002\u01cd\u0003\u0002", - "\u0002\u0002\u0002\u01cf\u0003\u0002\u0002\u0002\u0002\u01d1\u0003\u0002", - "\u0002\u0002\u0002\u01d3\u0003\u0002\u0002\u0002\u0002\u01d5\u0003\u0002", - "\u0002\u0002\u0002\u01d7\u0003\u0002\u0002\u0002\u0002\u01d9\u0003\u0002", - "\u0002\u0002\u0002\u01db\u0003\u0002\u0002\u0002\u0002\u01dd\u0003\u0002", - "\u0002\u0002\u0002\u01df\u0003\u0002\u0002\u0002\u0002\u01e1\u0003\u0002", - "\u0002\u0002\u0002\u01e3\u0003\u0002\u0002\u0002\u0002\u01e5\u0003\u0002", - "\u0002\u0002\u0002\u01e7\u0003\u0002\u0002\u0002\u0002\u01e9\u0003\u0002", - "\u0002\u0002\u0002\u01eb\u0003\u0002\u0002\u0002\u0002\u01ed\u0003\u0002", - "\u0002\u0002\u0002\u01ef\u0003\u0002\u0002\u0002\u0002\u01f1\u0003\u0002", - "\u0002\u0002\u0002\u01f3\u0003\u0002\u0002\u0002\u0002\u01f5\u0003\u0002", - "\u0002\u0002\u0002\u01f7\u0003\u0002\u0002\u0002\u0002\u01f9\u0003\u0002", - "\u0002\u0002\u0002\u01fb\u0003\u0002\u0002\u0002\u0002\u01fd\u0003\u0002", - "\u0002\u0002\u0002\u01ff\u0003\u0002\u0002\u0002\u0002\u0201\u0003\u0002", - "\u0002\u0002\u0002\u0203\u0003\u0002\u0002\u0002\u0002\u0205\u0003\u0002", - "\u0002\u0002\u0002\u0207\u0003\u0002\u0002\u0002\u0002\u0209\u0003\u0002", - "\u0002\u0002\u0002\u020b\u0003\u0002\u0002\u0002\u0002\u020d\u0003\u0002", - "\u0002\u0002\u0002\u020f\u0003\u0002\u0002\u0002\u0002\u0211\u0003\u0002", - "\u0002\u0002\u0002\u0213\u0003\u0002\u0002\u0002\u0002\u0215\u0003\u0002", - "\u0002\u0002\u0002\u0217\u0003\u0002\u0002\u0002\u0002\u0219\u0003\u0002", - "\u0002\u0002\u0002\u021b\u0003\u0002\u0002\u0002\u0002\u021d\u0003\u0002", - "\u0002\u0002\u0002\u0227\u0003\u0002\u0002\u0002\u0002\u0229\u0003\u0002", - "\u0002\u0002\u0002\u022b\u0003\u0002\u0002\u0002\u0002\u022d\u0003\u0002", - "\u0002\u0002\u0002\u022f\u0003\u0002\u0002\u0002\u0003\u0231\u0003\u0002", - "\u0002\u0002\u0005\u0233\u0003\u0002\u0002\u0002\u0007\u0235\u0003\u0002", - "\u0002\u0002\t\u0237\u0003\u0002\u0002\u0002\u000b\u0239\u0003\u0002", - "\u0002\u0002\r\u023d\u0003\u0002\u0002\u0002\u000f\u0240\u0003\u0002", - "\u0002\u0002\u0011\u0243\u0003\u0002\u0002\u0002\u0013\u0246\u0003\u0002", - "\u0002\u0002\u0015\u0248\u0003\u0002\u0002\u0002\u0017\u024b\u0003\u0002", - "\u0002\u0002\u0019\u024d\u0003\u0002\u0002\u0002\u001b\u024f\u0003\u0002", - "\u0002\u0002\u001d\u0252\u0003\u0002\u0002\u0002\u001f\u0254\u0003\u0002", - "\u0002\u0002!\u0256\u0003\u0002\u0002\u0002#\u025e\u0003\u0002\u0002", - "\u0002%\u0262\u0003\u0002\u0002\u0002\'\u0264\u0003\u0002\u0002\u0002", - ")\u026b\u0003\u0002\u0002\u0002+\u0270\u0003\u0002\u0002\u0002-\u0274", - "\u0003\u0002\u0002\u0002/\u0277\u0003\u0002\u0002\u00021\u027b\u0003", - "\u0002\u0002\u00023\u027f\u0003\u0002\u0002\u00025\u0288\u0003\u0002", - "\u0002\u00027\u028e\u0003\u0002\u0002\u00029\u0294\u0003\u0002\u0002", - "\u0002;\u0297\u0003\u0002\u0002\u0002=\u02a0\u0003\u0002\u0002\u0002", - "?\u02a5\u0003\u0002\u0002\u0002A\u02aa\u0003\u0002\u0002\u0002C\u02b1", - "\u0003\u0002\u0002\u0002E\u02b7\u0003\u0002\u0002\u0002G\u02be\u0003", - "\u0002\u0002\u0002I\u02c4\u0003\u0002\u0002\u0002K\u02c7\u0003\u0002", - "\u0002\u0002M\u02ca\u0003\u0002\u0002\u0002O\u02ce\u0003\u0002\u0002", - "\u0002Q\u02d5\u0003\u0002\u0002\u0002S\u02d7\u0003\u0002\u0002\u0002", - "U\u02da\u0003\u0002\u0002\u0002W\u02e1\u0003\u0002\u0002\u0002Y\u02e9", - "\u0003\u0002\u0002\u0002[\u02f9\u0003\u0002\u0002\u0002]\u02fb\u0003", - "\u0002\u0002\u0002_\u02fe\u0003\u0002\u0002\u0002a\u0303\u0003\u0002", - "\u0002\u0002c\u0308\u0003\u0002\u0002\u0002e\u030e\u0003\u0002\u0002", - "\u0002g\u0314\u0003\u0002\u0002\u0002i\u0318\u0003\u0002\u0002\u0002", - "k\u031d\u0003\u0002\u0002\u0002m\u0321\u0003\u0002\u0002\u0002o\u032a", - "\u0003\u0002\u0002\u0002q\u032f\u0003\u0002\u0002\u0002s\u0334\u0003", - "\u0002\u0002\u0002u\u0339\u0003\u0002\u0002\u0002w\u033e\u0003\u0002", - "\u0002\u0002y\u0342\u0003\u0002\u0002\u0002{\u0347\u0003\u0002\u0002", - "\u0002}\u034d\u0003\u0002\u0002\u0002\u007f\u0353\u0003\u0002\u0002", - "\u0002\u0081\u0359\u0003\u0002\u0002\u0002\u0083\u035e\u0003\u0002\u0002", - "\u0002\u0085\u0363\u0003\u0002\u0002\u0002\u0087\u0369\u0003\u0002\u0002", - "\u0002\u0089\u036e\u0003\u0002\u0002\u0002\u008b\u0376\u0003\u0002\u0002", - "\u0002\u008d\u0379\u0003\u0002\u0002\u0002\u008f\u037f\u0003\u0002\u0002", - "\u0002\u0091\u0387\u0003\u0002\u0002\u0002\u0093\u038e\u0003\u0002\u0002", - "\u0002\u0095\u0393\u0003\u0002\u0002\u0002\u0097\u039d\u0003\u0002\u0002", - "\u0002\u0099\u03a3\u0003\u0002\u0002\u0002\u009b\u03a8\u0003\u0002\u0002", - "\u0002\u009d\u03b2\u0003\u0002\u0002\u0002\u009f\u03bc\u0003\u0002\u0002", - "\u0002\u00a1\u03c6\u0003\u0002\u0002\u0002\u00a3\u03ce\u0003\u0002\u0002", - "\u0002\u00a5\u03d4\u0003\u0002\u0002\u0002\u00a7\u03da\u0003\u0002\u0002", - "\u0002\u00a9\u03df\u0003\u0002\u0002\u0002\u00ab\u03e3\u0003\u0002\u0002", - "\u0002\u00ad\u03e8\u0003\u0002\u0002\u0002\u00af\u03ef\u0003\u0002\u0002", - "\u0002\u00b1\u03f6\u0003\u0002\u0002\u0002\u00b3\u03fc\u0003\u0002\u0002", - "\u0002\u00b5\u0406\u0003\u0002\u0002\u0002\u00b7\u040b\u0003\u0002\u0002", - "\u0002\u00b9\u0413\u0003\u0002\u0002\u0002\u00bb\u041a\u0003\u0002\u0002", - "\u0002\u00bd\u0421\u0003\u0002\u0002\u0002\u00bf\u0426\u0003\u0002\u0002", - "\u0002\u00c1\u042f\u0003\u0002\u0002\u0002\u00c3\u0437\u0003\u0002\u0002", - "\u0002\u00c5\u043e\u0003\u0002\u0002\u0002\u00c7\u0446\u0003\u0002\u0002", - "\u0002\u00c9\u044e\u0003\u0002\u0002\u0002\u00cb\u0453\u0003\u0002\u0002", - "\u0002\u00cd\u0458\u0003\u0002\u0002\u0002\u00cf\u045d\u0003\u0002\u0002", - "\u0002\u00d1\u0464\u0003\u0002\u0002\u0002\u00d3\u046c\u0003\u0002\u0002", - "\u0002\u00d5\u0473\u0003\u0002\u0002\u0002\u00d7\u0477\u0003\u0002\u0002", - "\u0002\u00d9\u0482\u0003\u0002\u0002\u0002\u00db\u048c\u0003\u0002\u0002", - "\u0002\u00dd\u0491\u0003\u0002\u0002\u0002\u00df\u0497\u0003\u0002\u0002", - "\u0002\u00e1\u049e\u0003\u0002\u0002\u0002\u00e3\u04a4\u0003\u0002\u0002", - "\u0002\u00e5\u04ae\u0003\u0002\u0002\u0002\u00e7\u04b1\u0003\u0002\u0002", - "\u0002\u00e9\u04bd\u0003\u0002\u0002\u0002\u00eb\u04c6\u0003\u0002\u0002", - "\u0002\u00ed\u04cc\u0003\u0002\u0002\u0002\u00ef\u04d3\u0003\u0002\u0002", - "\u0002\u00f1\u04d9\u0003\u0002\u0002\u0002\u00f3\u04dd\u0003\u0002\u0002", - "\u0002\u00f5\u04e4\u0003\u0002\u0002\u0002\u00f7\u04ec\u0003\u0002\u0002", - "\u0002\u00f9\u04f0\u0003\u0002\u0002\u0002\u00fb\u04f6\u0003\u0002\u0002", - "\u0002\u00fd\u04fb\u0003\u0002\u0002\u0002\u00ff\u0501\u0003\u0002\u0002", - "\u0002\u0101\u050d\u0003\u0002\u0002\u0002\u0103\u0514\u0003\u0002\u0002", - "\u0002\u0105\u051d\u0003\u0002\u0002\u0002\u0107\u0523\u0003\u0002\u0002", - "\u0002\u0109\u052a\u0003\u0002\u0002\u0002\u010b\u052f\u0003\u0002\u0002", - "\u0002\u010d\u0537\u0003\u0002\u0002\u0002\u010f\u0540\u0003\u0002\u0002", - "\u0002\u0111\u0543\u0003\u0002\u0002\u0002\u0113\u054c\u0003\u0002\u0002", - "\u0002\u0115\u0557\u0003\u0002\u0002\u0002\u0117\u0559\u0003\u0002\u0002", - "\u0002\u0119\u055d\u0003\u0002\u0002\u0002\u011b\u0560\u0003\u0002\u0002", - "\u0002\u011d\u0563\u0003\u0002\u0002\u0002\u011f\u0569\u0003\u0002\u0002", - "\u0002\u0121\u056b\u0003\u0002\u0002\u0002\u0123\u0571\u0003\u0002\u0002", - "\u0002\u0125\u0573\u0003\u0002\u0002\u0002\u0127\u0575\u0003\u0002\u0002", - "\u0002\u0129\u0577\u0003\u0002\u0002\u0002\u012b\u0579\u0003\u0002\u0002", - "\u0002\u012d\u057b\u0003\u0002\u0002\u0002\u012f\u057d\u0003\u0002\u0002", - "\u0002\u0131\u0581\u0003\u0002\u0002\u0002\u0133\u0583\u0003\u0002\u0002", - "\u0002\u0135\u0585\u0003\u0002\u0002\u0002\u0137\u0587\u0003\u0002\u0002", - "\u0002\u0139\u058a\u0003\u0002\u0002\u0002\u013b\u058c\u0003\u0002\u0002", - "\u0002\u013d\u0594\u0003\u0002\u0002\u0002\u013f\u059b\u0003\u0002\u0002", - "\u0002\u0141\u059f\u0003\u0002\u0002\u0002\u0143\u05a2\u0003\u0002\u0002", - "\u0002\u0145\u05a7\u0003\u0002\u0002\u0002\u0147\u05af\u0003\u0002\u0002", - "\u0002\u0149\u05ba\u0003\u0002\u0002\u0002\u014b\u05c4\u0003\u0002\u0002", - "\u0002\u014d\u05ce\u0003\u0002\u0002\u0002\u014f\u05d5\u0003\u0002\u0002", - "\u0002\u0151\u05db\u0003\u0002\u0002\u0002\u0153\u05e1\u0003\u0002\u0002", - "\u0002\u0155\u05f1\u0003\u0002\u0002\u0002\u0157\u05fe\u0003\u0002\u0002", - "\u0002\u0159\u060b\u0003\u0002\u0002\u0002\u015b\u0615\u0003\u0002\u0002", - "\u0002\u015d\u061c\u0003\u0002\u0002\u0002\u015f\u0627\u0003\u0002\u0002", - "\u0002\u0161\u0632\u0003\u0002\u0002\u0002\u0163\u0638\u0003\u0002\u0002", - "\u0002\u0165\u063d\u0003\u0002\u0002\u0002\u0167\u0645\u0003\u0002\u0002", - "\u0002\u0169\u064b\u0003\u0002\u0002\u0002\u016b\u0655\u0003\u0002\u0002", - "\u0002\u016d\u065e\u0003\u0002\u0002\u0002\u016f\u0667\u0003\u0002\u0002", - "\u0002\u0171\u066f\u0003\u0002\u0002\u0002\u0173\u0675\u0003\u0002\u0002", - "\u0002\u0175\u067b\u0003\u0002\u0002\u0002\u0177\u0683\u0003\u0002\u0002", - "\u0002\u0179\u0688\u0003\u0002\u0002\u0002\u017b\u0692\u0003\u0002\u0002", - "\u0002\u017d\u06a6\u0003\u0002\u0002\u0002\u017f\u06a8\u0003\u0002\u0002", - "\u0002\u0181\u06b0\u0003\u0002\u0002\u0002\u0183\u06b6\u0003\u0002\u0002", - "\u0002\u0185\u06c4\u0003\u0002\u0002\u0002\u0187\u06d1\u0003\u0002\u0002", - "\u0002\u0189\u06d9\u0003\u0002\u0002\u0002\u018b\u06e0\u0003\u0002\u0002", - "\u0002\u018d\u06e7\u0003\u0002\u0002\u0002\u018f\u06f3\u0003\u0002\u0002", - "\u0002\u0191\u06fc\u0003\u0002\u0002\u0002\u0193\u0705\u0003\u0002\u0002", - "\u0002\u0195\u070d\u0003\u0002\u0002\u0002\u0197\u0717\u0003\u0002\u0002", - "\u0002\u0199\u0722\u0003\u0002\u0002\u0002\u019b\u0728\u0003\u0002\u0002", - "\u0002\u019d\u0730\u0003\u0002\u0002\u0002\u019f\u073c\u0003\u0002\u0002", - "\u0002\u01a1\u0743\u0003\u0002\u0002\u0002\u01a3\u074b\u0003\u0002\u0002", - "\u0002\u01a5\u0754\u0003\u0002\u0002\u0002\u01a7\u075e\u0003\u0002\u0002", - "\u0002\u01a9\u0765\u0003\u0002\u0002\u0002\u01ab\u076b\u0003\u0002\u0002", - "\u0002\u01ad\u0777\u0003\u0002\u0002\u0002\u01af\u0792\u0003\u0002\u0002", - "\u0002\u01b1\u07a4\u0003\u0002\u0002\u0002\u01b3\u07a6\u0003\u0002\u0002", - "\u0002\u01b5\u07aa\u0003\u0002\u0002\u0002\u01b7\u07b3\u0003\u0002\u0002", - "\u0002\u01b9\u07bb\u0003\u0002\u0002\u0002\u01bb\u07c3\u0003\u0002\u0002", - "\u0002\u01bd\u07c8\u0003\u0002\u0002\u0002\u01bf\u07d3\u0003\u0002\u0002", - "\u0002\u01c1\u07df\u0003\u0002\u0002\u0002\u01c3\u07e8\u0003\u0002\u0002", - "\u0002\u01c5\u07f0\u0003\u0002\u0002\u0002\u01c7\u07f7\u0003\u0002\u0002", - "\u0002\u01c9\u07fd\u0003\u0002\u0002\u0002\u01cb\u0802\u0003\u0002\u0002", - "\u0002\u01cd\u0809\u0003\u0002\u0002\u0002\u01cf\u080e\u0003\u0002\u0002", - "\u0002\u01d1\u0815\u0003\u0002\u0002\u0002\u01d3\u081d\u0003\u0002\u0002", - "\u0002\u01d5\u0824\u0003\u0002\u0002\u0002\u01d7\u082b\u0003\u0002\u0002", - "\u0002\u01d9\u0830\u0003\u0002\u0002\u0002\u01db\u0835\u0003\u0002\u0002", - "\u0002\u01dd\u083b\u0003\u0002\u0002\u0002\u01df\u0847\u0003\u0002\u0002", - "\u0002\u01e1\u0852\u0003\u0002\u0002\u0002\u01e3\u085f\u0003\u0002\u0002", - "\u0002\u01e5\u0865\u0003\u0002\u0002\u0002\u01e7\u086d\u0003\u0002\u0002", - "\u0002\u01e9\u0873\u0003\u0002\u0002\u0002\u01eb\u087a\u0003\u0002\u0002", - "\u0002\u01ed\u087f\u0003\u0002\u0002\u0002\u01ef\u0885\u0003\u0002\u0002", - "\u0002\u01f1\u088c\u0003\u0002\u0002\u0002\u01f3\u0896\u0003\u0002\u0002", - "\u0002\u01f5\u089d\u0003\u0002\u0002\u0002\u01f7\u08ad\u0003\u0002\u0002", - "\u0002\u01f9\u08b6\u0003\u0002\u0002\u0002\u01fb\u08ba\u0003\u0002\u0002", - "\u0002\u01fd\u08be\u0003\u0002\u0002\u0002\u01ff\u08c4\u0003\u0002\u0002", - "\u0002\u0201\u08c9\u0003\u0002\u0002\u0002\u0203\u08ce\u0003\u0002\u0002", - "\u0002\u0205\u08d3\u0003\u0002\u0002\u0002\u0207\u08db\u0003\u0002\u0002", - "\u0002\u0209\u08e2\u0003\u0002\u0002\u0002\u020b\u08fd\u0003\u0002\u0002", - "\u0002\u020d\u0900\u0003\u0002\u0002\u0002\u020f\u0907\u0003\u0002\u0002", - "\u0002\u0211\u090e\u0003\u0002\u0002\u0002\u0213\u0915\u0003\u0002\u0002", - "\u0002\u0215\u0926\u0003\u0002\u0002\u0002\u0217\u0939\u0003\u0002\u0002", - "\u0002\u0219\u094f\u0003\u0002\u0002\u0002\u021b\u0954\u0003\u0002\u0002", - "\u0002\u021d\u0958\u0003\u0002\u0002\u0002\u021f\u0975\u0003\u0002\u0002", - "\u0002\u0221\u0977\u0003\u0002\u0002\u0002\u0223\u0980\u0003\u0002\u0002", - "\u0002\u0225\u0982\u0003\u0002\u0002\u0002\u0227\u0984\u0003\u0002\u0002", - "\u0002\u0229\u0995\u0003\u0002\u0002\u0002\u022b\u099c\u0003\u0002\u0002", - "\u0002\u022d\u09ac\u0003\u0002\u0002\u0002\u022f\u09b2\u0003\u0002\u0002", - "\u0002\u0231\u0232\u0007*\u0002\u0002\u0232\u0004\u0003\u0002\u0002", - "\u0002\u0233\u0234\u0007+\u0002\u0002\u0234\u0006\u0003\u0002\u0002", - "\u0002\u0235\u0236\u00070\u0002\u0002\u0236\b\u0003\u0002\u0002\u0002", - "\u0237\u0238\u0007.\u0002\u0002\u0238\n\u0003\u0002\u0002\u0002\u0239", - "\u023a\u00071\u0002\u0002\u023a\u023b\u0007,\u0002\u0002\u023b\u023c", - "\u0007-\u0002\u0002\u023c\f\u0003\u0002\u0002\u0002\u023d\u023e\u0007", - ",\u0002\u0002\u023e\u023f\u00071\u0002\u0002\u023f\u000e\u0003\u0002", - "\u0002\u0002\u0240\u0241\u0007,\u0002\u0002\u0241\u0242\u0007A\u0002", - "\u0002\u0242\u0010\u0003\u0002\u0002\u0002\u0243\u0244\u0007-\u0002", - "\u0002\u0244\u0245\u0007A\u0002\u0002\u0245\u0012\u0003\u0002\u0002", - "\u0002\u0246\u0247\u0007A\u0002\u0002\u0247\u0014\u0003\u0002\u0002", - "\u0002\u0248\u0249\u0007A\u0002\u0002\u0249\u024a\u0007A\u0002\u0002", - "\u024a\u0016\u0003\u0002\u0002\u0002\u024b\u024c\u0007}\u0002\u0002", - "\u024c\u0018\u0003\u0002\u0002\u0002\u024d\u024e\u0007\u007f\u0002\u0002", - "\u024e\u001a\u0003\u0002\u0002\u0002\u024f\u0250\u0007/\u0002\u0002", - "\u0250\u0251\u0007@\u0002\u0002\u0251\u001c\u0003\u0002\u0002\u0002", - "\u0252\u0253\u0007]\u0002\u0002\u0253\u001e\u0003\u0002\u0002\u0002", - "\u0254\u0255\u0007_\u0002\u0002\u0255 \u0003\u0002\u0002\u0002\u0256", - "\u0257\u0007R\u0002\u0002\u0257\u0258\u0007T\u0002\u0002\u0258\u0259", - "\u0007K\u0002\u0002\u0259\u025a\u0007O\u0002\u0002\u025a\u025b\u0007", - "C\u0002\u0002\u025b\u025c\u0007T\u0002\u0002\u025c\u025d\u0007[\u0002", - "\u0002\u025d\"\u0003\u0002\u0002\u0002\u025e\u025f\u0007M\u0002\u0002", - "\u025f\u0260\u0007G\u0002\u0002\u0260\u0261\u0007[\u0002\u0002\u0261", - "$\u0003\u0002\u0002\u0002\u0262\u0263\u0007<\u0002\u0002\u0263&\u0003", - "\u0002\u0002\u0002\u0264\u0265\u0007U\u0002\u0002\u0265\u0266\u0007", - "G\u0002\u0002\u0266\u0267\u0007N\u0002\u0002\u0267\u0268\u0007G\u0002", - "\u0002\u0268\u0269\u0007E\u0002\u0002\u0269\u026a\u0007V\u0002\u0002", - "\u026a(\u0003\u0002\u0002\u0002\u026b\u026c\u0007H\u0002\u0002\u026c", - "\u026d\u0007T\u0002\u0002\u026d\u026e\u0007Q\u0002\u0002\u026e\u026f", - "\u0007O\u0002\u0002\u026f*\u0003\u0002\u0002\u0002\u0270\u0271\u0007", - "C\u0002\u0002\u0271\u0272\u0007F\u0002\u0002\u0272\u0273\u0007F\u0002", - "\u0002\u0273,\u0003\u0002\u0002\u0002\u0274\u0275\u0007C\u0002\u0002", - "\u0275\u0276\u0007U\u0002\u0002\u0276.\u0003\u0002\u0002\u0002\u0277", - "\u0278\u0007C\u0002\u0002\u0278\u0279\u0007N\u0002\u0002\u0279\u027a", - "\u0007N\u0002\u0002\u027a0\u0003\u0002\u0002\u0002\u027b\u027c\u0007", - "C\u0002\u0002\u027c\u027d\u0007P\u0002\u0002\u027d\u027e\u0007[\u0002", - "\u0002\u027e2\u0003\u0002\u0002\u0002\u027f\u0280\u0007F\u0002\u0002", - "\u0280\u0281\u0007K\u0002\u0002\u0281\u0282\u0007U\u0002\u0002\u0282", - "\u0283\u0007V\u0002\u0002\u0283\u0284\u0007K\u0002\u0002\u0284\u0285", - "\u0007P\u0002\u0002\u0285\u0286\u0007E\u0002\u0002\u0286\u0287\u0007", - "V\u0002\u0002\u02874\u0003\u0002\u0002\u0002\u0288\u0289\u0007Y\u0002", - "\u0002\u0289\u028a\u0007J\u0002\u0002\u028a\u028b\u0007G\u0002\u0002", - "\u028b\u028c\u0007T\u0002\u0002\u028c\u028d\u0007G\u0002\u0002\u028d", - "6\u0003\u0002\u0002\u0002\u028e\u028f\u0007I\u0002\u0002\u028f\u0290", - "\u0007T\u0002\u0002\u0290\u0291\u0007Q\u0002\u0002\u0291\u0292\u0007", - "W\u0002\u0002\u0292\u0293\u0007R\u0002\u0002\u02938\u0003\u0002\u0002", - "\u0002\u0294\u0295\u0007D\u0002\u0002\u0295\u0296\u0007[\u0002\u0002", - "\u0296:\u0003\u0002\u0002\u0002\u0297\u0298\u0007I\u0002\u0002\u0298", - "\u0299\u0007T\u0002\u0002\u0299\u029a\u0007Q\u0002\u0002\u029a\u029b", - "\u0007W\u0002\u0002\u029b\u029c\u0007R\u0002\u0002\u029c\u029d\u0007", - "K\u0002\u0002\u029d\u029e\u0007P\u0002\u0002\u029e\u029f\u0007I\u0002", - "\u0002\u029f<\u0003\u0002\u0002\u0002\u02a0\u02a1\u0007U\u0002\u0002", - "\u02a1\u02a2\u0007G\u0002\u0002\u02a2\u02a3\u0007V\u0002\u0002\u02a3", - "\u02a4\u0007U\u0002\u0002\u02a4>\u0003\u0002\u0002\u0002\u02a5\u02a6", - "\u0007E\u0002\u0002\u02a6\u02a7\u0007W\u0002\u0002\u02a7\u02a8\u0007", - "D\u0002\u0002\u02a8\u02a9\u0007G\u0002\u0002\u02a9@\u0003\u0002\u0002", - "\u0002\u02aa\u02ab\u0007T\u0002\u0002\u02ab\u02ac\u0007Q\u0002\u0002", - "\u02ac\u02ad\u0007N\u0002\u0002\u02ad\u02ae\u0007N\u0002\u0002\u02ae", - "\u02af\u0007W\u0002\u0002\u02af\u02b0\u0007R\u0002\u0002\u02b0B\u0003", - "\u0002\u0002\u0002\u02b1\u02b2\u0007Q\u0002\u0002\u02b2\u02b3\u0007", - "T\u0002\u0002\u02b3\u02b4\u0007F\u0002\u0002\u02b4\u02b5\u0007G\u0002", - "\u0002\u02b5\u02b6\u0007T\u0002\u0002\u02b6D\u0003\u0002\u0002\u0002", - "\u02b7\u02b8\u0007J\u0002\u0002\u02b8\u02b9\u0007C\u0002\u0002\u02b9", - "\u02ba\u0007X\u0002\u0002\u02ba\u02bb\u0007K\u0002\u0002\u02bb\u02bc", - "\u0007P\u0002\u0002\u02bc\u02bd\u0007I\u0002\u0002\u02bdF\u0003\u0002", - "\u0002\u0002\u02be\u02bf\u0007N\u0002\u0002\u02bf\u02c0\u0007K\u0002", - "\u0002\u02c0\u02c1\u0007O\u0002\u0002\u02c1\u02c2\u0007K\u0002\u0002", - "\u02c2\u02c3\u0007V\u0002\u0002\u02c3H\u0003\u0002\u0002\u0002\u02c4", - "\u02c5\u0007C\u0002\u0002\u02c5\u02c6\u0007V\u0002\u0002\u02c6J\u0003", - "\u0002\u0002\u0002\u02c7\u02c8\u0007Q\u0002\u0002\u02c8\u02c9\u0007", - "T\u0002\u0002\u02c9L\u0003\u0002\u0002\u0002\u02ca\u02cb\u0007C\u0002", - "\u0002\u02cb\u02cc\u0007P\u0002\u0002\u02cc\u02cd\u0007F\u0002\u0002", - "\u02cdN\u0003\u0002\u0002\u0002\u02ce\u02cf\u0007K\u0002\u0002\u02cf", - "\u02d0\u0007P\u0002\u0002\u02d0P\u0003\u0002\u0002\u0002\u02d1\u02d2", - "\u0007P\u0002\u0002\u02d2\u02d3\u0007Q\u0002\u0002\u02d3\u02d6\u0007", - "V\u0002\u0002\u02d4\u02d6\u0007#\u0002\u0002\u02d5\u02d1\u0003\u0002", - "\u0002\u0002\u02d5\u02d4\u0003\u0002\u0002\u0002\u02d6R\u0003\u0002", - "\u0002\u0002\u02d7\u02d8\u0007P\u0002\u0002\u02d8\u02d9\u0007Q\u0002", - "\u0002\u02d9T\u0003\u0002\u0002\u0002\u02da\u02db\u0007G\u0002\u0002", - "\u02db\u02dc\u0007Z\u0002\u0002\u02dc\u02dd\u0007K\u0002\u0002\u02dd", - "\u02de\u0007U\u0002\u0002\u02de\u02df\u0007V\u0002\u0002\u02df\u02e0", - "\u0007U\u0002\u0002\u02e0V\u0003\u0002\u0002\u0002\u02e1\u02e2\u0007", - "D\u0002\u0002\u02e2\u02e3\u0007G\u0002\u0002\u02e3\u02e4\u0007V\u0002", - "\u0002\u02e4\u02e5\u0007Y\u0002\u0002\u02e5\u02e6\u0007G\u0002\u0002", - "\u02e6\u02e7\u0007G\u0002\u0002\u02e7\u02e8\u0007P\u0002\u0002\u02e8", - "X\u0003\u0002\u0002\u0002\u02e9\u02ea\u0007N\u0002\u0002\u02ea\u02eb", - "\u0007K\u0002\u0002\u02eb\u02ec\u0007M\u0002\u0002\u02ec\u02ed\u0007", - "G\u0002\u0002\u02edZ\u0003\u0002\u0002\u0002\u02ee\u02ef\u0007T\u0002", - "\u0002\u02ef\u02f0\u0007N\u0002\u0002\u02f0\u02f1\u0007K\u0002\u0002", - "\u02f1\u02f2\u0007M\u0002\u0002\u02f2\u02fa\u0007G\u0002\u0002\u02f3", - "\u02f4\u0007T\u0002\u0002\u02f4\u02f5\u0007G\u0002\u0002\u02f5\u02f6", - "\u0007I\u0002\u0002\u02f6\u02f7\u0007G\u0002\u0002\u02f7\u02f8\u0007", - "Z\u0002\u0002\u02f8\u02fa\u0007R\u0002\u0002\u02f9\u02ee\u0003\u0002", - "\u0002\u0002\u02f9\u02f3\u0003\u0002\u0002\u0002\u02fa\\\u0003\u0002", - "\u0002\u0002\u02fb\u02fc\u0007K\u0002\u0002\u02fc\u02fd\u0007U\u0002", - "\u0002\u02fd^\u0003\u0002\u0002\u0002\u02fe\u02ff\u0007P\u0002\u0002", - "\u02ff\u0300\u0007W\u0002\u0002\u0300\u0301\u0007N\u0002\u0002\u0301", - "\u0302\u0007N\u0002\u0002\u0302`\u0003\u0002\u0002\u0002\u0303\u0304", - "\u0007V\u0002\u0002\u0304\u0305\u0007T\u0002\u0002\u0305\u0306\u0007", - "W\u0002\u0002\u0306\u0307\u0007G\u0002\u0002\u0307b\u0003\u0002\u0002", - "\u0002\u0308\u0309\u0007H\u0002\u0002\u0309\u030a\u0007C\u0002\u0002", - "\u030a\u030b\u0007N\u0002\u0002\u030b\u030c\u0007U\u0002\u0002\u030c", - "\u030d\u0007G\u0002\u0002\u030dd\u0003\u0002\u0002\u0002\u030e\u030f", - "\u0007P\u0002\u0002\u030f\u0310\u0007W\u0002\u0002\u0310\u0311\u0007", - "N\u0002\u0002\u0311\u0312\u0007N\u0002\u0002\u0312\u0313\u0007U\u0002", - "\u0002\u0313f\u0003\u0002\u0002\u0002\u0314\u0315\u0007C\u0002\u0002", - "\u0315\u0316\u0007U\u0002\u0002\u0316\u0317\u0007E\u0002\u0002\u0317", - "h\u0003\u0002\u0002\u0002\u0318\u0319\u0007F\u0002\u0002\u0319\u031a", - "\u0007G\u0002\u0002\u031a\u031b\u0007U\u0002\u0002\u031b\u031c\u0007", - "E\u0002\u0002\u031cj\u0003\u0002\u0002\u0002\u031d\u031e\u0007H\u0002", - "\u0002\u031e\u031f\u0007Q\u0002\u0002\u031f\u0320\u0007T\u0002\u0002", - "\u0320l\u0003\u0002\u0002\u0002\u0321\u0322\u0007K\u0002\u0002\u0322", - "\u0323\u0007P\u0002\u0002\u0323\u0324\u0007V\u0002\u0002\u0324\u0325", - "\u0007G\u0002\u0002\u0325\u0326\u0007T\u0002\u0002\u0326\u0327\u0007", - "X\u0002\u0002\u0327\u0328\u0007C\u0002\u0002\u0328\u0329\u0007N\u0002", - "\u0002\u0329n\u0003\u0002\u0002\u0002\u032a\u032b\u0007E\u0002\u0002", - "\u032b\u032c\u0007C\u0002\u0002\u032c\u032d\u0007U\u0002\u0002\u032d", - "\u032e\u0007G\u0002\u0002\u032ep\u0003\u0002\u0002\u0002\u032f\u0330", - "\u0007Y\u0002\u0002\u0330\u0331\u0007J\u0002\u0002\u0331\u0332\u0007", - "G\u0002\u0002\u0332\u0333\u0007P\u0002\u0002\u0333r\u0003\u0002\u0002", - "\u0002\u0334\u0335\u0007V\u0002\u0002\u0335\u0336\u0007J\u0002\u0002", - "\u0336\u0337\u0007G\u0002\u0002\u0337\u0338\u0007P\u0002\u0002\u0338", - "t\u0003\u0002\u0002\u0002\u0339\u033a\u0007G\u0002\u0002\u033a\u033b", - "\u0007N\u0002\u0002\u033b\u033c\u0007U\u0002\u0002\u033c\u033d\u0007", - "G\u0002\u0002\u033dv\u0003\u0002\u0002\u0002\u033e\u033f\u0007G\u0002", - "\u0002\u033f\u0340\u0007P\u0002\u0002\u0340\u0341\u0007F\u0002\u0002", - "\u0341x\u0003\u0002\u0002\u0002\u0342\u0343\u0007L\u0002\u0002\u0343", - "\u0344\u0007Q\u0002\u0002\u0344\u0345\u0007K\u0002\u0002\u0345\u0346", - "\u0007P\u0002\u0002\u0346z\u0003\u0002\u0002\u0002\u0347\u0348\u0007", - "E\u0002\u0002\u0348\u0349\u0007T\u0002\u0002\u0349\u034a\u0007Q\u0002", - "\u0002\u034a\u034b\u0007U\u0002\u0002\u034b\u034c\u0007U\u0002\u0002", - "\u034c|\u0003\u0002\u0002\u0002\u034d\u034e\u0007Q\u0002\u0002\u034e", - "\u034f\u0007W\u0002\u0002\u034f\u0350\u0007V\u0002\u0002\u0350\u0351", - "\u0007G\u0002\u0002\u0351\u0352\u0007T\u0002\u0002\u0352~\u0003\u0002", - "\u0002\u0002\u0353\u0354\u0007K\u0002\u0002\u0354\u0355\u0007P\u0002", - "\u0002\u0355\u0356\u0007P\u0002\u0002\u0356\u0357\u0007G\u0002\u0002", - "\u0357\u0358\u0007T\u0002\u0002\u0358\u0080\u0003\u0002\u0002\u0002", - "\u0359\u035a\u0007N\u0002\u0002\u035a\u035b\u0007G\u0002\u0002\u035b", - "\u035c\u0007H\u0002\u0002\u035c\u035d\u0007V\u0002\u0002\u035d\u0082", - "\u0003\u0002\u0002\u0002\u035e\u035f\u0007U\u0002\u0002\u035f\u0360", - "\u0007G\u0002\u0002\u0360\u0361\u0007O\u0002\u0002\u0361\u0362\u0007", - "K\u0002\u0002\u0362\u0084\u0003\u0002\u0002\u0002\u0363\u0364\u0007", - "T\u0002\u0002\u0364\u0365\u0007K\u0002\u0002\u0365\u0366\u0007I\u0002", - "\u0002\u0366\u0367\u0007J\u0002\u0002\u0367\u0368\u0007V\u0002\u0002", - "\u0368\u0086\u0003\u0002\u0002\u0002\u0369\u036a\u0007H\u0002\u0002", - "\u036a\u036b\u0007W\u0002\u0002\u036b\u036c\u0007N\u0002\u0002\u036c", - "\u036d\u0007N\u0002\u0002\u036d\u0088\u0003\u0002\u0002\u0002\u036e", - "\u036f\u0007P\u0002\u0002\u036f\u0370\u0007C\u0002\u0002\u0370\u0371", - "\u0007V\u0002\u0002\u0371\u0372\u0007W\u0002\u0002\u0372\u0373\u0007", - "T\u0002\u0002\u0373\u0374\u0007C\u0002\u0002\u0374\u0375\u0007N\u0002", - "\u0002\u0375\u008a\u0003\u0002\u0002\u0002\u0376\u0377\u0007Q\u0002", - "\u0002\u0377\u0378\u0007P\u0002\u0002\u0378\u008c\u0003\u0002\u0002", - "\u0002\u0379\u037a\u0007R\u0002\u0002\u037a\u037b\u0007K\u0002\u0002", - "\u037b\u037c\u0007X\u0002\u0002\u037c\u037d\u0007Q\u0002\u0002\u037d", - "\u037e\u0007V\u0002\u0002\u037e\u008e\u0003\u0002\u0002\u0002\u037f", - "\u0380\u0007N\u0002\u0002\u0380\u0381\u0007C\u0002\u0002\u0381\u0382", - "\u0007V\u0002\u0002\u0382\u0383\u0007G\u0002\u0002\u0383\u0384\u0007", - "T\u0002\u0002\u0384\u0385\u0007C\u0002\u0002\u0385\u0386\u0007N\u0002", - "\u0002\u0386\u0090\u0003\u0002\u0002\u0002\u0387\u0388\u0007Y\u0002", - "\u0002\u0388\u0389\u0007K\u0002\u0002\u0389\u038a\u0007P\u0002\u0002", - "\u038a\u038b\u0007F\u0002\u0002\u038b\u038c\u0007Q\u0002\u0002\u038c", - "\u038d\u0007Y\u0002\u0002\u038d\u0092\u0003\u0002\u0002\u0002\u038e", - "\u038f\u0007Q\u0002\u0002\u038f\u0390\u0007X\u0002\u0002\u0390\u0391", - "\u0007G\u0002\u0002\u0391\u0392\u0007T\u0002\u0002\u0392\u0094\u0003", - "\u0002\u0002\u0002\u0393\u0394\u0007R\u0002\u0002\u0394\u0395\u0007", - "C\u0002\u0002\u0395\u0396\u0007T\u0002\u0002\u0396\u0397\u0007V\u0002", - "\u0002\u0397\u0398\u0007K\u0002\u0002\u0398\u0399\u0007V\u0002\u0002", - "\u0399\u039a\u0007K\u0002\u0002\u039a\u039b\u0007Q\u0002\u0002\u039b", - "\u039c\u0007P\u0002\u0002\u039c\u0096\u0003\u0002\u0002\u0002\u039d", - "\u039e\u0007T\u0002\u0002\u039e\u039f\u0007C\u0002\u0002\u039f\u03a0", - "\u0007P\u0002\u0002\u03a0\u03a1\u0007I\u0002\u0002\u03a1\u03a2\u0007", - "G\u0002\u0002\u03a2\u0098\u0003\u0002\u0002\u0002\u03a3\u03a4\u0007", - "T\u0002\u0002\u03a4\u03a5\u0007Q\u0002\u0002\u03a5\u03a6\u0007Y\u0002", - "\u0002\u03a6\u03a7\u0007U\u0002\u0002\u03a7\u009a\u0003\u0002\u0002", - "\u0002\u03a8\u03a9\u0007W\u0002\u0002\u03a9\u03aa\u0007P\u0002\u0002", - "\u03aa\u03ab\u0007D\u0002\u0002\u03ab\u03ac\u0007Q\u0002\u0002\u03ac", - "\u03ad\u0007W\u0002\u0002\u03ad\u03ae\u0007P\u0002\u0002\u03ae\u03af", - "\u0007F\u0002\u0002\u03af\u03b0\u0007G\u0002\u0002\u03b0\u03b1\u0007", - "F\u0002\u0002\u03b1\u009c\u0003\u0002\u0002\u0002\u03b2\u03b3\u0007", - "R\u0002\u0002\u03b3\u03b4\u0007T\u0002\u0002\u03b4\u03b5\u0007G\u0002", - "\u0002\u03b5\u03b6\u0007E\u0002\u0002\u03b6\u03b7\u0007G\u0002\u0002", - "\u03b7\u03b8\u0007F\u0002\u0002\u03b8\u03b9\u0007K\u0002\u0002\u03b9", - "\u03ba\u0007P\u0002\u0002\u03ba\u03bb\u0007I\u0002\u0002\u03bb\u009e", - "\u0003\u0002\u0002\u0002\u03bc\u03bd\u0007H\u0002\u0002\u03bd\u03be", - "\u0007Q\u0002\u0002\u03be\u03bf\u0007N\u0002\u0002\u03bf\u03c0\u0007", - "N\u0002\u0002\u03c0\u03c1\u0007Q\u0002\u0002\u03c1\u03c2\u0007Y\u0002", - "\u0002\u03c2\u03c3\u0007K\u0002\u0002\u03c3\u03c4\u0007P\u0002\u0002", - "\u03c4\u03c5\u0007I\u0002\u0002\u03c5\u00a0\u0003\u0002\u0002\u0002", - "\u03c6\u03c7\u0007E\u0002\u0002\u03c7\u03c8\u0007W\u0002\u0002\u03c8", - "\u03c9\u0007T\u0002\u0002\u03c9\u03ca\u0007T\u0002\u0002\u03ca\u03cb", - "\u0007G\u0002\u0002\u03cb\u03cc\u0007P\u0002\u0002\u03cc\u03cd\u0007", - "V\u0002\u0002\u03cd\u00a2\u0003\u0002\u0002\u0002\u03ce\u03cf\u0007", - "H\u0002\u0002\u03cf\u03d0\u0007K\u0002\u0002\u03d0\u03d1\u0007T\u0002", - "\u0002\u03d1\u03d2\u0007U\u0002\u0002\u03d2\u03d3\u0007V\u0002\u0002", - "\u03d3\u00a4\u0003\u0002\u0002\u0002\u03d4\u03d5\u0007C\u0002\u0002", - "\u03d5\u03d6\u0007H\u0002\u0002\u03d6\u03d7\u0007V\u0002\u0002\u03d7", - "\u03d8\u0007G\u0002\u0002\u03d8\u03d9\u0007T\u0002\u0002\u03d9\u00a6", - "\u0003\u0002\u0002\u0002\u03da\u03db\u0007N\u0002\u0002\u03db\u03dc", - "\u0007C\u0002\u0002\u03dc\u03dd\u0007U\u0002\u0002\u03dd\u03de\u0007", - "V\u0002\u0002\u03de\u00a8\u0003\u0002\u0002\u0002\u03df\u03e0\u0007", - "T\u0002\u0002\u03e0\u03e1\u0007Q\u0002\u0002\u03e1\u03e2\u0007Y\u0002", - "\u0002\u03e2\u00aa\u0003\u0002\u0002\u0002\u03e3\u03e4\u0007Y\u0002", - "\u0002\u03e4\u03e5\u0007K\u0002\u0002\u03e5\u03e6\u0007V\u0002\u0002", - "\u03e6\u03e7\u0007J\u0002\u0002\u03e7\u00ac\u0003\u0002\u0002\u0002", - "\u03e8\u03e9\u0007X\u0002\u0002\u03e9\u03ea\u0007C\u0002\u0002\u03ea", - "\u03eb\u0007N\u0002\u0002\u03eb\u03ec\u0007W\u0002\u0002\u03ec\u03ed", - "\u0007G\u0002\u0002\u03ed\u03ee\u0007U\u0002\u0002\u03ee\u00ae\u0003", - "\u0002\u0002\u0002\u03ef\u03f0\u0007E\u0002\u0002\u03f0\u03f1\u0007", - "T\u0002\u0002\u03f1\u03f2\u0007G\u0002\u0002\u03f2\u03f3\u0007C\u0002", - "\u0002\u03f3\u03f4\u0007V\u0002\u0002\u03f4\u03f5\u0007G\u0002\u0002", - "\u03f5\u00b0\u0003\u0002\u0002\u0002\u03f6\u03f7\u0007V\u0002\u0002", - "\u03f7\u03f8\u0007C\u0002\u0002\u03f8\u03f9\u0007D\u0002\u0002\u03f9", - "\u03fa\u0007N\u0002\u0002\u03fa\u03fb\u0007G\u0002\u0002\u03fb\u00b2", - "\u0003\u0002\u0002\u0002\u03fc\u03fd\u0007F\u0002\u0002\u03fd\u03fe", - "\u0007K\u0002\u0002\u03fe\u03ff\u0007T\u0002\u0002\u03ff\u0400\u0007", - "G\u0002\u0002\u0400\u0401\u0007E\u0002\u0002\u0401\u0402\u0007V\u0002", - "\u0002\u0402\u0403\u0007Q\u0002\u0002\u0403\u0404\u0007T\u0002\u0002", - "\u0404\u0405\u0007[\u0002\u0002\u0405\u00b4\u0003\u0002\u0002\u0002", - "\u0406\u0407\u0007X\u0002\u0002\u0407\u0408\u0007K\u0002\u0002\u0408", - "\u0409\u0007G\u0002\u0002\u0409\u040a\u0007Y\u0002\u0002\u040a\u00b6", - "\u0003\u0002\u0002\u0002\u040b\u040c\u0007T\u0002\u0002\u040c\u040d", - "\u0007G\u0002\u0002\u040d\u040e\u0007R\u0002\u0002\u040e\u040f\u0007", - "N\u0002\u0002\u040f\u0410\u0007C\u0002\u0002\u0410\u0411\u0007E\u0002", - "\u0002\u0411\u0412\u0007G\u0002\u0002\u0412\u00b8\u0003\u0002\u0002", - "\u0002\u0413\u0414\u0007K\u0002\u0002\u0414\u0415\u0007P\u0002\u0002", - "\u0415\u0416\u0007U\u0002\u0002\u0416\u0417\u0007G\u0002\u0002\u0417", - "\u0418\u0007T\u0002\u0002\u0418\u0419\u0007V\u0002\u0002\u0419\u00ba", - "\u0003\u0002\u0002\u0002\u041a\u041b\u0007F\u0002\u0002\u041b\u041c", - "\u0007G\u0002\u0002\u041c\u041d\u0007N\u0002\u0002\u041d\u041e\u0007", - "G\u0002\u0002\u041e\u041f\u0007V\u0002\u0002\u041f\u0420\u0007G\u0002", - "\u0002\u0420\u00bc\u0003\u0002\u0002\u0002\u0421\u0422\u0007K\u0002", - "\u0002\u0422\u0423\u0007P\u0002\u0002\u0423\u0424\u0007V\u0002\u0002", - "\u0424\u0425\u0007Q\u0002\u0002\u0425\u00be\u0003\u0002\u0002\u0002", - "\u0426\u0427\u0007F\u0002\u0002\u0427\u0428\u0007G\u0002\u0002\u0428", - "\u0429\u0007U\u0002\u0002\u0429\u042a\u0007E\u0002\u0002\u042a\u042b", - "\u0007T\u0002\u0002\u042b\u042c\u0007K\u0002\u0002\u042c\u042d\u0007", - "D\u0002\u0002\u042d\u042e\u0007G\u0002\u0002\u042e\u00c0\u0003\u0002", - "\u0002\u0002\u042f\u0430\u0007G\u0002\u0002\u0430\u0431\u0007Z\u0002", - "\u0002\u0431\u0432\u0007R\u0002\u0002\u0432\u0433\u0007N\u0002\u0002", - "\u0433\u0434\u0007C\u0002\u0002\u0434\u0435\u0007K\u0002\u0002\u0435", - "\u0436\u0007P\u0002\u0002\u0436\u00c2\u0003\u0002\u0002\u0002\u0437", - "\u0438\u0007H\u0002\u0002\u0438\u0439\u0007Q\u0002\u0002\u0439\u043a", - "\u0007T\u0002\u0002\u043a\u043b\u0007O\u0002\u0002\u043b\u043c\u0007", - "C\u0002\u0002\u043c\u043d\u0007V\u0002\u0002\u043d\u00c4\u0003\u0002", - "\u0002\u0002\u043e\u043f\u0007N\u0002\u0002\u043f\u0440\u0007Q\u0002", - "\u0002\u0440\u0441\u0007I\u0002\u0002\u0441\u0442\u0007K\u0002\u0002", - "\u0442\u0443\u0007E\u0002\u0002\u0443\u0444\u0007C\u0002\u0002\u0444", - "\u0445\u0007N\u0002\u0002\u0445\u00c6\u0003\u0002\u0002\u0002\u0446", - "\u0447\u0007E\u0002\u0002\u0447\u0448\u0007Q\u0002\u0002\u0448\u0449", - "\u0007F\u0002\u0002\u0449\u044a\u0007G\u0002\u0002\u044a\u044b\u0007", - "I\u0002\u0002\u044b\u044c\u0007G\u0002\u0002\u044c\u044d\u0007P\u0002", - "\u0002\u044d\u00c8\u0003\u0002\u0002\u0002\u044e\u044f\u0007E\u0002", - "\u0002\u044f\u0450\u0007Q\u0002\u0002\u0450\u0451\u0007U\u0002\u0002", - "\u0451\u0452\u0007V\u0002\u0002\u0452\u00ca\u0003\u0002\u0002\u0002", - "\u0453\u0454\u0007E\u0002\u0002\u0454\u0455\u0007C\u0002\u0002\u0455", - "\u0456\u0007U\u0002\u0002\u0456\u0457\u0007V\u0002\u0002\u0457\u00cc", - "\u0003\u0002\u0002\u0002\u0458\u0459\u0007U\u0002\u0002\u0459\u045a", - "\u0007J\u0002\u0002\u045a\u045b\u0007Q\u0002\u0002\u045b\u045c\u0007", - "Y\u0002\u0002\u045c\u00ce\u0003\u0002\u0002\u0002\u045d\u045e\u0007", - "V\u0002\u0002\u045e\u045f\u0007C\u0002\u0002\u045f\u0460\u0007D\u0002", - "\u0002\u0460\u0461\u0007N\u0002\u0002\u0461\u0462\u0007G\u0002\u0002", - "\u0462\u0463\u0007U\u0002\u0002\u0463\u00d0\u0003\u0002\u0002\u0002", - "\u0464\u0465\u0007E\u0002\u0002\u0465\u0466\u0007Q\u0002\u0002\u0466", - "\u0467\u0007N\u0002\u0002\u0467\u0468\u0007W\u0002\u0002\u0468\u0469", - "\u0007O\u0002\u0002\u0469\u046a\u0007P\u0002\u0002\u046a\u046b\u0007", - "U\u0002\u0002\u046b\u00d2\u0003\u0002\u0002\u0002\u046c\u046d\u0007", - "E\u0002\u0002\u046d\u046e\u0007Q\u0002\u0002\u046e\u046f\u0007N\u0002", - "\u0002\u046f\u0470\u0007W\u0002\u0002\u0470\u0471\u0007O\u0002\u0002", - "\u0471\u0472\u0007P\u0002\u0002\u0472\u00d4\u0003\u0002\u0002\u0002", - "\u0473\u0474\u0007W\u0002\u0002\u0474\u0475\u0007U\u0002\u0002\u0475", - "\u0476\u0007G\u0002\u0002\u0476\u00d6\u0003\u0002\u0002\u0002\u0477", - "\u0478\u0007R\u0002\u0002\u0478\u0479\u0007C\u0002\u0002\u0479\u047a", - "\u0007T\u0002\u0002\u047a\u047b\u0007V\u0002\u0002\u047b\u047c\u0007", - "K\u0002\u0002\u047c\u047d\u0007V\u0002\u0002\u047d\u047e\u0007K\u0002", - "\u0002\u047e\u047f\u0007Q\u0002\u0002\u047f\u0480\u0007P\u0002\u0002", - "\u0480\u0481\u0007U\u0002\u0002\u0481\u00d8\u0003\u0002\u0002\u0002", - "\u0482\u0483\u0007H\u0002\u0002\u0483\u0484\u0007W\u0002\u0002\u0484", - "\u0485\u0007P\u0002\u0002\u0485\u0486\u0007E\u0002\u0002\u0486\u0487", - "\u0007V\u0002\u0002\u0487\u0488\u0007K\u0002\u0002\u0488\u0489\u0007", - "Q\u0002\u0002\u0489\u048a\u0007P\u0002\u0002\u048a\u048b\u0007U\u0002", - "\u0002\u048b\u00da\u0003\u0002\u0002\u0002\u048c\u048d\u0007F\u0002", - "\u0002\u048d\u048e\u0007T\u0002\u0002\u048e\u048f\u0007Q\u0002\u0002", - "\u048f\u0490\u0007R\u0002\u0002\u0490\u00dc\u0003\u0002\u0002\u0002", - "\u0491\u0492\u0007W\u0002\u0002\u0492\u0493\u0007P\u0002\u0002\u0493", - "\u0494\u0007K\u0002\u0002\u0494\u0495\u0007Q\u0002\u0002\u0495\u0496", - "\u0007P\u0002\u0002\u0496\u00de\u0003\u0002\u0002\u0002\u0497\u0498", - "\u0007G\u0002\u0002\u0498\u0499\u0007Z\u0002\u0002\u0499\u049a\u0007", - "E\u0002\u0002\u049a\u049b\u0007G\u0002\u0002\u049b\u049c\u0007R\u0002", - "\u0002\u049c\u049d\u0007V\u0002\u0002\u049d\u00e0\u0003\u0002\u0002", - "\u0002\u049e\u049f\u0007O\u0002\u0002\u049f\u04a0\u0007K\u0002\u0002", - "\u04a0\u04a1\u0007P\u0002\u0002\u04a1\u04a2\u0007W\u0002\u0002\u04a2", - "\u04a3\u0007U\u0002\u0002\u04a3\u00e2\u0003\u0002\u0002\u0002\u04a4", - "\u04a5\u0007K\u0002\u0002\u04a5\u04a6\u0007P\u0002\u0002\u04a6\u04a7", - "\u0007V\u0002\u0002\u04a7\u04a8\u0007G\u0002\u0002\u04a8\u04a9\u0007", - "T\u0002\u0002\u04a9\u04aa\u0007U\u0002\u0002\u04aa\u04ab\u0007G\u0002", - "\u0002\u04ab\u04ac\u0007E\u0002\u0002\u04ac\u04ad\u0007V\u0002\u0002", - "\u04ad\u00e4\u0003\u0002\u0002\u0002\u04ae\u04af\u0007V\u0002\u0002", - "\u04af\u04b0\u0007Q\u0002\u0002\u04b0\u00e6\u0003\u0002\u0002\u0002", - "\u04b1\u04b2\u0007V\u0002\u0002\u04b2\u04b3\u0007C\u0002\u0002\u04b3", - "\u04b4\u0007D\u0002\u0002\u04b4\u04b5\u0007N\u0002\u0002\u04b5\u04b6", - "\u0007G\u0002\u0002\u04b6\u04b7\u0007U\u0002\u0002\u04b7\u04b8\u0007", - "C\u0002\u0002\u04b8\u04b9\u0007O\u0002\u0002\u04b9\u04ba\u0007R\u0002", - "\u0002\u04ba\u04bb\u0007N\u0002\u0002\u04bb\u04bc\u0007G\u0002\u0002", - "\u04bc\u00e8\u0003\u0002\u0002\u0002\u04bd\u04be\u0007U\u0002\u0002", - "\u04be\u04bf\u0007V\u0002\u0002\u04bf\u04c0\u0007T\u0002\u0002\u04c0", - "\u04c1\u0007C\u0002\u0002\u04c1\u04c2\u0007V\u0002\u0002\u04c2\u04c3", - "\u0007K\u0002\u0002\u04c3\u04c4\u0007H\u0002\u0002\u04c4\u04c5\u0007", - "[\u0002\u0002\u04c5\u00ea\u0003\u0002\u0002\u0002\u04c6\u04c7\u0007", - "C\u0002\u0002\u04c7\u04c8\u0007N\u0002\u0002\u04c8\u04c9\u0007V\u0002", - "\u0002\u04c9\u04ca\u0007G\u0002\u0002\u04ca\u04cb\u0007T\u0002\u0002", - "\u04cb\u00ec\u0003\u0002\u0002\u0002\u04cc\u04cd\u0007T\u0002\u0002", - "\u04cd\u04ce\u0007G\u0002\u0002\u04ce\u04cf\u0007P\u0002\u0002\u04cf", - "\u04d0\u0007C\u0002\u0002\u04d0\u04d1\u0007O\u0002\u0002\u04d1\u04d2", - "\u0007G\u0002\u0002\u04d2\u00ee\u0003\u0002\u0002\u0002\u04d3\u04d4", - "\u0007C\u0002\u0002\u04d4\u04d5\u0007T\u0002\u0002\u04d5\u04d6\u0007", - "T\u0002\u0002\u04d6\u04d7\u0007C\u0002\u0002\u04d7\u04d8\u0007[\u0002", - "\u0002\u04d8\u00f0\u0003\u0002\u0002\u0002\u04d9\u04da\u0007O\u0002", - "\u0002\u04da\u04db\u0007C\u0002\u0002\u04db\u04dc\u0007R\u0002\u0002", - "\u04dc\u00f2\u0003\u0002\u0002\u0002\u04dd\u04de\u0007U\u0002\u0002", - "\u04de\u04df\u0007V\u0002\u0002\u04df\u04e0\u0007T\u0002\u0002\u04e0", - "\u04e1\u0007W\u0002\u0002\u04e1\u04e2\u0007E\u0002\u0002\u04e2\u04e3", - "\u0007V\u0002\u0002\u04e3\u00f4\u0003\u0002\u0002\u0002\u04e4\u04e5", - "\u0007E\u0002\u0002\u04e5\u04e6\u0007Q\u0002\u0002\u04e6\u04e7\u0007", - "O\u0002\u0002\u04e7\u04e8\u0007O\u0002\u0002\u04e8\u04e9\u0007G\u0002", - "\u0002\u04e9\u04ea\u0007P\u0002\u0002\u04ea\u04eb\u0007V\u0002\u0002", - "\u04eb\u00f6\u0003\u0002\u0002\u0002\u04ec\u04ed\u0007U\u0002\u0002", - "\u04ed\u04ee\u0007G\u0002\u0002\u04ee\u04ef\u0007V\u0002\u0002\u04ef", - "\u00f8\u0003\u0002\u0002\u0002\u04f0\u04f1\u0007T\u0002\u0002\u04f1", - "\u04f2\u0007G\u0002\u0002\u04f2\u04f3\u0007U\u0002\u0002\u04f3\u04f4", - "\u0007G\u0002\u0002\u04f4\u04f5\u0007V\u0002\u0002\u04f5\u00fa\u0003", - "\u0002\u0002\u0002\u04f6\u04f7\u0007F\u0002\u0002\u04f7\u04f8\u0007", - "C\u0002\u0002\u04f8\u04f9\u0007V\u0002\u0002\u04f9\u04fa\u0007C\u0002", - "\u0002\u04fa\u00fc\u0003\u0002\u0002\u0002\u04fb\u04fc\u0007U\u0002", - "\u0002\u04fc\u04fd\u0007V\u0002\u0002\u04fd\u04fe\u0007C\u0002\u0002", - "\u04fe\u04ff\u0007T\u0002\u0002\u04ff\u0500\u0007V\u0002\u0002\u0500", - "\u00fe\u0003\u0002\u0002\u0002\u0501\u0502\u0007V\u0002\u0002\u0502", - "\u0503\u0007T\u0002\u0002\u0503\u0504\u0007C\u0002\u0002\u0504\u0505", - "\u0007P\u0002\u0002\u0505\u0506\u0007U\u0002\u0002\u0506\u0507\u0007", - "C\u0002\u0002\u0507\u0508\u0007E\u0002\u0002\u0508\u0509\u0007V\u0002", - "\u0002\u0509\u050a\u0007K\u0002\u0002\u050a\u050b\u0007Q\u0002\u0002", - "\u050b\u050c\u0007P\u0002\u0002\u050c\u0100\u0003\u0002\u0002\u0002", - "\u050d\u050e\u0007E\u0002\u0002\u050e\u050f\u0007Q\u0002\u0002\u050f", - "\u0510\u0007O\u0002\u0002\u0510\u0511\u0007O\u0002\u0002\u0511\u0512", - "\u0007K\u0002\u0002\u0512\u0513\u0007V\u0002\u0002\u0513\u0102\u0003", - "\u0002\u0002\u0002\u0514\u0515\u0007T\u0002\u0002\u0515\u0516\u0007", - "Q\u0002\u0002\u0516\u0517\u0007N\u0002\u0002\u0517\u0518\u0007N\u0002", - "\u0002\u0518\u0519\u0007D\u0002\u0002\u0519\u051a\u0007C\u0002\u0002", - "\u051a\u051b\u0007E\u0002\u0002\u051b\u051c\u0007M\u0002\u0002\u051c", - "\u0104\u0003\u0002\u0002\u0002\u051d\u051e\u0007O\u0002\u0002\u051e", - "\u051f\u0007C\u0002\u0002\u051f\u0520\u0007E\u0002\u0002\u0520\u0521", - "\u0007T\u0002\u0002\u0521\u0522\u0007Q\u0002\u0002\u0522\u0106\u0003", - "\u0002\u0002\u0002\u0523\u0524\u0007K\u0002\u0002\u0524\u0525\u0007", - "I\u0002\u0002\u0525\u0526\u0007P\u0002\u0002\u0526\u0527\u0007Q\u0002", - "\u0002\u0527\u0528\u0007T\u0002\u0002\u0528\u0529\u0007G\u0002\u0002", - "\u0529\u0108\u0003\u0002\u0002\u0002\u052a\u052b\u0007D\u0002\u0002", - "\u052b\u052c\u0007Q\u0002\u0002\u052c\u052d\u0007V\u0002\u0002\u052d", - "\u052e\u0007J\u0002\u0002\u052e\u010a\u0003\u0002\u0002\u0002\u052f", - "\u0530\u0007N\u0002\u0002\u0530\u0531\u0007G\u0002\u0002\u0531\u0532", - "\u0007C\u0002\u0002\u0532\u0533\u0007F\u0002\u0002\u0533\u0534\u0007", - "K\u0002\u0002\u0534\u0535\u0007P\u0002\u0002\u0535\u0536\u0007I\u0002", - "\u0002\u0536\u010c\u0003\u0002\u0002\u0002\u0537\u0538\u0007V\u0002", - "\u0002\u0538\u0539\u0007T\u0002\u0002\u0539\u053a\u0007C\u0002\u0002", - "\u053a\u053b\u0007K\u0002\u0002\u053b\u053c\u0007N\u0002\u0002\u053c", - "\u053d\u0007K\u0002\u0002\u053d\u053e\u0007P\u0002\u0002\u053e\u053f", - "\u0007I\u0002\u0002\u053f\u010e\u0003\u0002\u0002\u0002\u0540\u0541", - "\u0007K\u0002\u0002\u0541\u0542\u0007H\u0002\u0002\u0542\u0110\u0003", - "\u0002\u0002\u0002\u0543\u0544\u0007R\u0002\u0002\u0544\u0545\u0007", - "Q\u0002\u0002\u0545\u0546\u0007U\u0002\u0002\u0546\u0547\u0007K\u0002", - "\u0002\u0547\u0548\u0007V\u0002\u0002\u0548\u0549\u0007K\u0002\u0002", - "\u0549\u054a\u0007Q\u0002\u0002\u054a\u054b\u0007P\u0002\u0002\u054b", - "\u0112\u0003\u0002\u0002\u0002\u054c\u054d\u0007G\u0002\u0002\u054d", - "\u054e\u0007Z\u0002\u0002\u054e\u054f\u0007V\u0002\u0002\u054f\u0550", - "\u0007T\u0002\u0002\u0550\u0551\u0007C\u0002\u0002\u0551\u0552\u0007", - "E\u0002\u0002\u0552\u0553\u0007V\u0002\u0002\u0553\u0114\u0003\u0002", - "\u0002\u0002\u0554\u0558\u0007?\u0002\u0002\u0555\u0556\u0007?\u0002", - "\u0002\u0556\u0558\u0007?\u0002\u0002\u0557\u0554\u0003\u0002\u0002", - "\u0002\u0557\u0555\u0003\u0002\u0002\u0002\u0558\u0116\u0003\u0002\u0002", - "\u0002\u0559\u055a\u0007>\u0002\u0002\u055a\u055b\u0007?\u0002\u0002", - "\u055b\u055c\u0007@\u0002\u0002\u055c\u0118\u0003\u0002\u0002\u0002", - "\u055d\u055e\u0007>\u0002\u0002\u055e\u055f\u0007@\u0002\u0002\u055f", - "\u011a\u0003\u0002\u0002\u0002\u0560\u0561\u0007#\u0002\u0002\u0561", - "\u0562\u0007?\u0002\u0002\u0562\u011c\u0003\u0002\u0002\u0002\u0563", - "\u0564\u0007>\u0002\u0002\u0564\u011e\u0003\u0002\u0002\u0002\u0565", - "\u0566\u0007>\u0002\u0002\u0566\u056a\u0007?\u0002\u0002\u0567\u0568", - "\u0007#\u0002\u0002\u0568\u056a\u0007@\u0002\u0002\u0569\u0565\u0003", - "\u0002\u0002\u0002\u0569\u0567\u0003\u0002\u0002\u0002\u056a\u0120\u0003", - "\u0002\u0002\u0002\u056b\u056c\u0007@\u0002\u0002\u056c\u0122\u0003", - "\u0002\u0002\u0002\u056d\u056e\u0007@\u0002\u0002\u056e\u0572\u0007", - "?\u0002\u0002\u056f\u0570\u0007#\u0002\u0002\u0570\u0572\u0007>\u0002", - "\u0002\u0571\u056d\u0003\u0002\u0002\u0002\u0571\u056f\u0003\u0002\u0002", - "\u0002\u0572\u0124\u0003\u0002\u0002\u0002\u0573\u0574\u0007-\u0002", - "\u0002\u0574\u0126\u0003\u0002\u0002\u0002\u0575\u0576\u0007/\u0002", - "\u0002\u0576\u0128\u0003\u0002\u0002\u0002\u0577\u0578\u0007,\u0002", - "\u0002\u0578\u012a\u0003\u0002\u0002\u0002\u0579\u057a\u00071\u0002", - "\u0002\u057a\u012c\u0003\u0002\u0002\u0002\u057b\u057c\u0007\'\u0002", - "\u0002\u057c\u012e\u0003\u0002\u0002\u0002\u057d\u057e\u0007F\u0002", - "\u0002\u057e\u057f\u0007K\u0002\u0002\u057f\u0580\u0007X\u0002\u0002", - "\u0580\u0130\u0003\u0002\u0002\u0002\u0581\u0582\u0007\u0080\u0002\u0002", - "\u0582\u0132\u0003\u0002\u0002\u0002\u0583\u0584\u0007(\u0002\u0002", - "\u0584\u0134\u0003\u0002\u0002\u0002\u0585\u0586\u0007~\u0002\u0002", - "\u0586\u0136\u0003\u0002\u0002\u0002\u0587\u0588\u0007~\u0002\u0002", - "\u0588\u0589\u0007~\u0002\u0002\u0589\u0138\u0003\u0002\u0002\u0002", - "\u058a\u058b\u0007`\u0002\u0002\u058b\u013a\u0003\u0002\u0002\u0002", - "\u058c\u058d\u0007R\u0002\u0002\u058d\u058e\u0007G\u0002\u0002\u058e", - "\u058f\u0007T\u0002\u0002\u058f\u0590\u0007E\u0002\u0002\u0590\u0591", - "\u0007G\u0002\u0002\u0591\u0592\u0007P\u0002\u0002\u0592\u0593\u0007", - "V\u0002\u0002\u0593\u013c\u0003\u0002\u0002\u0002\u0594\u0595\u0007", - "D\u0002\u0002\u0595\u0596\u0007W\u0002\u0002\u0596\u0597\u0007E\u0002", - "\u0002\u0597\u0598\u0007M\u0002\u0002\u0598\u0599\u0007G\u0002\u0002", - "\u0599\u059a\u0007V\u0002\u0002\u059a\u013e\u0003\u0002\u0002\u0002", - "\u059b\u059c\u0007Q\u0002\u0002\u059c\u059d\u0007W\u0002\u0002\u059d", - "\u059e\u0007V\u0002\u0002\u059e\u0140\u0003\u0002\u0002\u0002\u059f", - "\u05a0\u0007Q\u0002\u0002\u05a0\u05a1\u0007H\u0002\u0002\u05a1\u0142", - "\u0003\u0002\u0002\u0002\u05a2\u05a3\u0007U\u0002\u0002\u05a3\u05a4", - "\u0007Q\u0002\u0002\u05a4\u05a5\u0007T\u0002\u0002\u05a5\u05a6\u0007", - "V\u0002\u0002\u05a6\u0144\u0003\u0002\u0002\u0002\u05a7\u05a8\u0007", - "E\u0002\u0002\u05a8\u05a9\u0007N\u0002\u0002\u05a9\u05aa\u0007W\u0002", - "\u0002\u05aa\u05ab\u0007U\u0002\u0002\u05ab\u05ac\u0007V\u0002\u0002", - "\u05ac\u05ad\u0007G\u0002\u0002\u05ad\u05ae\u0007T\u0002\u0002\u05ae", - "\u0146\u0003\u0002\u0002\u0002\u05af\u05b0\u0007F\u0002\u0002\u05b0", - "\u05b1\u0007K\u0002\u0002\u05b1\u05b2\u0007U\u0002\u0002\u05b2\u05b3", - "\u0007V\u0002\u0002\u05b3\u05b4\u0007T\u0002\u0002\u05b4\u05b5\u0007", - "K\u0002\u0002\u05b5\u05b6\u0007D\u0002\u0002\u05b6\u05b7\u0007W\u0002", - "\u0002\u05b7\u05b8\u0007V\u0002\u0002\u05b8\u05b9\u0007G\u0002\u0002", - "\u05b9\u0148\u0003\u0002\u0002\u0002\u05ba\u05bb\u0007Q\u0002\u0002", - "\u05bb\u05bc\u0007X\u0002\u0002\u05bc\u05bd\u0007G\u0002\u0002\u05bd", - "\u05be\u0007T\u0002\u0002\u05be\u05bf\u0007Y\u0002\u0002\u05bf\u05c0", - "\u0007T\u0002\u0002\u05c0\u05c1\u0007K\u0002\u0002\u05c1\u05c2\u0007", - "V\u0002\u0002\u05c2\u05c3\u0007G\u0002\u0002\u05c3\u014a\u0003\u0002", - "\u0002\u0002\u05c4\u05c5\u0007V\u0002\u0002\u05c5\u05c6\u0007T\u0002", - "\u0002\u05c6\u05c7\u0007C\u0002\u0002\u05c7\u05c8\u0007P\u0002\u0002", - "\u05c8\u05c9\u0007U\u0002\u0002\u05c9\u05ca\u0007H\u0002\u0002\u05ca", - "\u05cb\u0007Q\u0002\u0002\u05cb\u05cc\u0007T\u0002\u0002\u05cc\u05cd", - "\u0007O\u0002\u0002\u05cd\u014c\u0003\u0002\u0002\u0002\u05ce\u05cf", - "\u0007T\u0002\u0002\u05cf\u05d0\u0007G\u0002\u0002\u05d0\u05d1\u0007", - "F\u0002\u0002\u05d1\u05d2\u0007W\u0002\u0002\u05d2\u05d3\u0007E\u0002", - "\u0002\u05d3\u05d4\u0007G\u0002\u0002\u05d4\u014e\u0003\u0002\u0002", - "\u0002\u05d5\u05d6\u0007W\u0002\u0002\u05d6\u05d7\u0007U\u0002\u0002", - "\u05d7\u05d8\u0007K\u0002\u0002\u05d8\u05d9\u0007P\u0002\u0002\u05d9", - "\u05da\u0007I\u0002\u0002\u05da\u0150\u0003\u0002\u0002\u0002\u05db", - "\u05dc\u0007U\u0002\u0002\u05dc\u05dd\u0007G\u0002\u0002\u05dd\u05de", - "\u0007T\u0002\u0002\u05de\u05df\u0007F\u0002\u0002\u05df\u05e0\u0007", - "G\u0002\u0002\u05e0\u0152\u0003\u0002\u0002\u0002\u05e1\u05e2\u0007", - "U\u0002\u0002\u05e2\u05e3\u0007G\u0002\u0002\u05e3\u05e4\u0007T\u0002", - "\u0002\u05e4\u05e5\u0007F\u0002\u0002\u05e5\u05e6\u0007G\u0002\u0002", - "\u05e6\u05e7\u0007R\u0002\u0002\u05e7\u05e8\u0007T\u0002\u0002\u05e8", - "\u05e9\u0007Q\u0002\u0002\u05e9\u05ea\u0007R\u0002\u0002\u05ea\u05eb", - "\u0007G\u0002\u0002\u05eb\u05ec\u0007T\u0002\u0002\u05ec\u05ed\u0007", - "V\u0002\u0002\u05ed\u05ee\u0007K\u0002\u0002\u05ee\u05ef\u0007G\u0002", - "\u0002\u05ef\u05f0\u0007U\u0002\u0002\u05f0\u0154\u0003\u0002\u0002", - "\u0002\u05f1\u05f2\u0007T\u0002\u0002\u05f2\u05f3\u0007G\u0002\u0002", - "\u05f3\u05f4\u0007E\u0002\u0002\u05f4\u05f5\u0007Q\u0002\u0002\u05f5", - "\u05f6\u0007T\u0002\u0002\u05f6\u05f7\u0007F\u0002\u0002\u05f7\u05f8", - "\u0007T\u0002\u0002\u05f8\u05f9\u0007G\u0002\u0002\u05f9\u05fa\u0007", - "C\u0002\u0002\u05fa\u05fb\u0007F\u0002\u0002\u05fb\u05fc\u0007G\u0002", - "\u0002\u05fc\u05fd\u0007T\u0002\u0002\u05fd\u0156\u0003\u0002\u0002", - "\u0002\u05fe\u05ff\u0007T\u0002\u0002\u05ff\u0600\u0007G\u0002\u0002", - "\u0600\u0601\u0007E\u0002\u0002\u0601\u0602\u0007Q\u0002\u0002\u0602", - "\u0603\u0007T\u0002\u0002\u0603\u0604\u0007F\u0002\u0002\u0604\u0605", - "\u0007Y\u0002\u0002\u0605\u0606\u0007T\u0002\u0002\u0606\u0607\u0007", - "K\u0002\u0002\u0607\u0608\u0007V\u0002\u0002\u0608\u0609\u0007G\u0002", - "\u0002\u0609\u060a\u0007T\u0002\u0002\u060a\u0158\u0003\u0002\u0002", - "\u0002\u060b\u060c\u0007F\u0002\u0002\u060c\u060d\u0007G\u0002\u0002", - "\u060d\u060e\u0007N\u0002\u0002\u060e\u060f\u0007K\u0002\u0002\u060f", - "\u0610\u0007O\u0002\u0002\u0610\u0611\u0007K\u0002\u0002\u0611\u0612", - "\u0007V\u0002\u0002\u0612\u0613\u0007G\u0002\u0002\u0613\u0614\u0007", - "F\u0002\u0002\u0614\u015a\u0003\u0002\u0002\u0002\u0615\u0616\u0007", - "H\u0002\u0002\u0616\u0617\u0007K\u0002\u0002\u0617\u0618\u0007G\u0002", - "\u0002\u0618\u0619\u0007N\u0002\u0002\u0619\u061a\u0007F\u0002\u0002", - "\u061a\u061b\u0007U\u0002\u0002\u061b\u015c\u0003\u0002\u0002\u0002", - "\u061c\u061d\u0007V\u0002\u0002\u061d\u061e\u0007G\u0002\u0002\u061e", - "\u061f\u0007T\u0002\u0002\u061f\u0620\u0007O\u0002\u0002\u0620\u0621", - "\u0007K\u0002\u0002\u0621\u0622\u0007P\u0002\u0002\u0622\u0623\u0007", - "C\u0002\u0002\u0623\u0624\u0007V\u0002\u0002\u0624\u0625\u0007G\u0002", - "\u0002\u0625\u0626\u0007F\u0002\u0002\u0626\u015e\u0003\u0002\u0002", - "\u0002\u0627\u0628\u0007E\u0002\u0002\u0628\u0629\u0007Q\u0002\u0002", - "\u0629\u062a\u0007N\u0002\u0002\u062a\u062b\u0007N\u0002\u0002\u062b", - "\u062c\u0007G\u0002\u0002\u062c\u062d\u0007E\u0002\u0002\u062d\u062e", - "\u0007V\u0002\u0002\u062e\u062f\u0007K\u0002\u0002\u062f\u0630\u0007", - "Q\u0002\u0002\u0630\u0631\u0007P\u0002\u0002\u0631\u0160\u0003\u0002", - "\u0002\u0002\u0632\u0633\u0007K\u0002\u0002\u0633\u0634\u0007V\u0002", - "\u0002\u0634\u0635\u0007G\u0002\u0002\u0635\u0636\u0007O\u0002\u0002", - "\u0636\u0637\u0007U\u0002\u0002\u0637\u0162\u0003\u0002\u0002\u0002", - "\u0638\u0639\u0007M\u0002\u0002\u0639\u063a\u0007G\u0002\u0002\u063a", - "\u063b\u0007[\u0002\u0002\u063b\u063c\u0007U\u0002\u0002\u063c\u0164", - "\u0003\u0002\u0002\u0002\u063d\u063e\u0007G\u0002\u0002\u063e\u063f", - "\u0007U\u0002\u0002\u063f\u0640\u0007E\u0002\u0002\u0640\u0641\u0007", - "C\u0002\u0002\u0641\u0642\u0007R\u0002\u0002\u0642\u0643\u0007G\u0002", - "\u0002\u0643\u0644\u0007F\u0002\u0002\u0644\u0166\u0003\u0002\u0002", - "\u0002\u0645\u0646\u0007N\u0002\u0002\u0646\u0647\u0007K\u0002\u0002", - "\u0647\u0648\u0007P\u0002\u0002\u0648\u0649\u0007G\u0002\u0002\u0649", - "\u064a\u0007U\u0002\u0002\u064a\u0168\u0003\u0002\u0002\u0002\u064b", - "\u064c\u0007U\u0002\u0002\u064c\u064d\u0007G\u0002\u0002\u064d\u064e", - "\u0007R\u0002\u0002\u064e\u064f\u0007C\u0002\u0002\u064f\u0650\u0007", - "T\u0002\u0002\u0650\u0651\u0007C\u0002\u0002\u0651\u0652\u0007V\u0002", - "\u0002\u0652\u0653\u0007G\u0002\u0002\u0653\u0654\u0007F\u0002\u0002", - "\u0654\u016a\u0003\u0002\u0002\u0002\u0655\u0656\u0007H\u0002\u0002", - "\u0656\u0657\u0007W\u0002\u0002\u0657\u0658\u0007P\u0002\u0002\u0658", - "\u0659\u0007E\u0002\u0002\u0659\u065a\u0007V\u0002\u0002\u065a\u065b", - "\u0007K\u0002\u0002\u065b\u065c\u0007Q\u0002\u0002\u065c\u065d\u0007", - "P\u0002\u0002\u065d\u016c\u0003\u0002\u0002\u0002\u065e\u065f\u0007", - "G\u0002\u0002\u065f\u0660\u0007Z\u0002\u0002\u0660\u0661\u0007V\u0002", - "\u0002\u0661\u0662\u0007G\u0002\u0002\u0662\u0663\u0007P\u0002\u0002", - "\u0663\u0664\u0007F\u0002\u0002\u0664\u0665\u0007G\u0002\u0002\u0665", - "\u0666\u0007F\u0002\u0002\u0666\u016e\u0003\u0002\u0002\u0002\u0667", - "\u0668\u0007T\u0002\u0002\u0668\u0669\u0007G\u0002\u0002\u0669\u066a", - "\u0007H\u0002\u0002\u066a\u066b\u0007T\u0002\u0002\u066b\u066c\u0007", - "G\u0002\u0002\u066c\u066d\u0007U\u0002\u0002\u066d\u066e\u0007J\u0002", - "\u0002\u066e\u0170\u0003\u0002\u0002\u0002\u066f\u0670\u0007E\u0002", - "\u0002\u0670\u0671\u0007N\u0002\u0002\u0671\u0672\u0007G\u0002\u0002", - "\u0672\u0673\u0007C\u0002\u0002\u0673\u0674\u0007T\u0002\u0002\u0674", - "\u0172\u0003\u0002\u0002\u0002\u0675\u0676\u0007E\u0002\u0002\u0676", - "\u0677\u0007C\u0002\u0002\u0677\u0678\u0007E\u0002\u0002\u0678\u0679", - "\u0007J\u0002\u0002\u0679\u067a\u0007G\u0002\u0002\u067a\u0174\u0003", - "\u0002\u0002\u0002\u067b\u067c\u0007W\u0002\u0002\u067c\u067d\u0007", - "P\u0002\u0002\u067d\u067e\u0007E\u0002\u0002\u067e\u067f\u0007C\u0002", - "\u0002\u067f\u0680\u0007E\u0002\u0002\u0680\u0681\u0007J\u0002\u0002", - "\u0681\u0682\u0007G\u0002\u0002\u0682\u0176\u0003\u0002\u0002\u0002", - "\u0683\u0684\u0007N\u0002\u0002\u0684\u0685\u0007C\u0002\u0002\u0685", - "\u0686\u0007\\\u0002\u0002\u0686\u0687\u0007[\u0002\u0002\u0687\u0178", - "\u0003\u0002\u0002\u0002\u0688\u0689\u0007H\u0002\u0002\u0689\u068a", - "\u0007Q\u0002\u0002\u068a\u068b\u0007T\u0002\u0002\u068b\u068c\u0007", - "O\u0002\u0002\u068c\u068d\u0007C\u0002\u0002\u068d\u068e\u0007V\u0002", - "\u0002\u068e\u068f\u0007V\u0002\u0002\u068f\u0690\u0007G\u0002\u0002", - "\u0690\u0691\u0007F\u0002\u0002\u0691\u017a\u0003\u0002\u0002\u0002", - "\u0692\u0693\u0007I\u0002\u0002\u0693\u0694\u0007N\u0002\u0002\u0694", - "\u0695\u0007Q\u0002\u0002\u0695\u0696\u0007D\u0002\u0002\u0696\u0697", - "\u0007C\u0002\u0002\u0697\u0698\u0007N\u0002\u0002\u0698\u017c\u0003", - "\u0002\u0002\u0002\u0699\u069a\u0007V\u0002\u0002\u069a\u069b\u0007", - "G\u0002\u0002\u069b\u069c\u0007O\u0002\u0002\u069c\u069d\u0007R\u0002", - "\u0002\u069d\u069e\u0007Q\u0002\u0002\u069e\u069f\u0007T\u0002\u0002", - "\u069f\u06a0\u0007C\u0002\u0002\u06a0\u06a1\u0007T\u0002\u0002\u06a1", - "\u06a7\u0007[\u0002\u0002\u06a2\u06a3\u0007V\u0002\u0002\u06a3\u06a4", - "\u0007G\u0002\u0002\u06a4\u06a5\u0007O\u0002\u0002\u06a5\u06a7\u0007", - "R\u0002\u0002\u06a6\u0699\u0003\u0002\u0002\u0002\u06a6\u06a2\u0003", - "\u0002\u0002\u0002\u06a7\u017e\u0003\u0002\u0002\u0002\u06a8\u06a9\u0007", - "Q\u0002\u0002\u06a9\u06aa\u0007R\u0002\u0002\u06aa\u06ab\u0007V\u0002", - "\u0002\u06ab\u06ac\u0007K\u0002\u0002\u06ac\u06ad\u0007Q\u0002\u0002", - "\u06ad\u06ae\u0007P\u0002\u0002\u06ae\u06af\u0007U\u0002\u0002\u06af", - "\u0180\u0003\u0002\u0002\u0002\u06b0\u06b1\u0007W\u0002\u0002\u06b1", - "\u06b2\u0007P\u0002\u0002\u06b2\u06b3\u0007U\u0002\u0002\u06b3\u06b4", - "\u0007G\u0002\u0002\u06b4\u06b5\u0007V\u0002\u0002\u06b5\u0182\u0003", - "\u0002\u0002\u0002\u06b6\u06b7\u0007V\u0002\u0002\u06b7\u06b8\u0007", - "D\u0002\u0002\u06b8\u06b9\u0007N\u0002\u0002\u06b9\u06ba\u0007R\u0002", - "\u0002\u06ba\u06bb\u0007T\u0002\u0002\u06bb\u06bc\u0007Q\u0002\u0002", - "\u06bc\u06bd\u0007R\u0002\u0002\u06bd\u06be\u0007G\u0002\u0002\u06be", - "\u06bf\u0007T\u0002\u0002\u06bf\u06c0\u0007V\u0002\u0002\u06c0\u06c1", - "\u0007K\u0002\u0002\u06c1\u06c2\u0007G\u0002\u0002\u06c2\u06c3\u0007", - "U\u0002\u0002\u06c3\u0184\u0003\u0002\u0002\u0002\u06c4\u06c5\u0007", - "F\u0002\u0002\u06c5\u06c6\u0007D\u0002\u0002\u06c6\u06c7\u0007R\u0002", - "\u0002\u06c7\u06c8\u0007T\u0002\u0002\u06c8\u06c9\u0007Q\u0002\u0002", - "\u06c9\u06ca\u0007R\u0002\u0002\u06ca\u06cb\u0007G\u0002\u0002\u06cb", - "\u06cc\u0007T\u0002\u0002\u06cc\u06cd\u0007V\u0002\u0002\u06cd\u06ce", - "\u0007K\u0002\u0002\u06ce\u06cf\u0007G\u0002\u0002\u06cf\u06d0\u0007", - "U\u0002\u0002\u06d0\u0186\u0003\u0002\u0002\u0002\u06d1\u06d2\u0007", - "D\u0002\u0002\u06d2\u06d3\u0007W\u0002\u0002\u06d3\u06d4\u0007E\u0002", - "\u0002\u06d4\u06d5\u0007M\u0002\u0002\u06d5\u06d6\u0007G\u0002\u0002", - "\u06d6\u06d7\u0007V\u0002\u0002\u06d7\u06d8\u0007U\u0002\u0002\u06d8", - "\u0188\u0003\u0002\u0002\u0002\u06d9\u06da\u0007U\u0002\u0002\u06da", - "\u06db\u0007M\u0002\u0002\u06db\u06dc\u0007G\u0002\u0002\u06dc\u06dd", - "\u0007Y\u0002\u0002\u06dd\u06de\u0007G\u0002\u0002\u06de\u06df\u0007", - "F\u0002\u0002\u06df\u018a\u0003\u0002\u0002\u0002\u06e0\u06e1\u0007", - "U\u0002\u0002\u06e1\u06e2\u0007V\u0002\u0002\u06e2\u06e3\u0007Q\u0002", - "\u0002\u06e3\u06e4\u0007T\u0002\u0002\u06e4\u06e5\u0007G\u0002\u0002", - "\u06e5\u06e6\u0007F\u0002\u0002\u06e6\u018c\u0003\u0002\u0002\u0002", - "\u06e7\u06e8\u0007F\u0002\u0002\u06e8\u06e9\u0007K\u0002\u0002\u06e9", - "\u06ea\u0007T\u0002\u0002\u06ea\u06eb\u0007G\u0002\u0002\u06eb\u06ec", - "\u0007E\u0002\u0002\u06ec\u06ed\u0007V\u0002\u0002\u06ed\u06ee\u0007", - "Q\u0002\u0002\u06ee\u06ef\u0007T\u0002\u0002\u06ef\u06f0\u0007K\u0002", - "\u0002\u06f0\u06f1\u0007G\u0002\u0002\u06f1\u06f2\u0007U\u0002\u0002", - "\u06f2\u018e\u0003\u0002\u0002\u0002\u06f3\u06f4\u0007N\u0002\u0002", - "\u06f4\u06f5\u0007Q\u0002\u0002\u06f5\u06f6\u0007E\u0002\u0002\u06f6", - "\u06f7\u0007C\u0002\u0002\u06f7\u06f8\u0007V\u0002\u0002\u06f8\u06f9", - "\u0007K\u0002\u0002\u06f9\u06fa\u0007Q\u0002\u0002\u06fa\u06fb\u0007", - "P\u0002\u0002\u06fb\u0190\u0003\u0002\u0002\u0002\u06fc\u06fd\u0007", - "G\u0002\u0002\u06fd\u06fe\u0007Z\u0002\u0002\u06fe\u06ff\u0007E\u0002", - "\u0002\u06ff\u0700\u0007J\u0002\u0002\u0700\u0701\u0007C\u0002\u0002", - "\u0701\u0702\u0007P\u0002\u0002\u0702\u0703\u0007I\u0002\u0002\u0703", - "\u0704\u0007G\u0002\u0002\u0704\u0192\u0003\u0002\u0002\u0002\u0705", - "\u0706\u0007C\u0002\u0002\u0706\u0707\u0007T\u0002\u0002\u0707\u0708", - "\u0007E\u0002\u0002\u0708\u0709\u0007J\u0002\u0002\u0709\u070a\u0007", - "K\u0002\u0002\u070a\u070b\u0007X\u0002\u0002\u070b\u070c\u0007G\u0002", - "\u0002\u070c\u0194\u0003\u0002\u0002\u0002\u070d\u070e\u0007W\u0002", - "\u0002\u070e\u070f\u0007P\u0002\u0002\u070f\u0710\u0007C\u0002\u0002", - "\u0710\u0711\u0007T\u0002\u0002\u0711\u0712\u0007E\u0002\u0002\u0712", - "\u0713\u0007J\u0002\u0002\u0713\u0714\u0007K\u0002\u0002\u0714\u0715", - "\u0007X\u0002\u0002\u0715\u0716\u0007G\u0002\u0002\u0716\u0196\u0003", - "\u0002\u0002\u0002\u0717\u0718\u0007H\u0002\u0002\u0718\u0719\u0007", - "K\u0002\u0002\u0719\u071a\u0007N\u0002\u0002\u071a\u071b\u0007G\u0002", - "\u0002\u071b\u071c\u0007H\u0002\u0002\u071c\u071d\u0007Q\u0002\u0002", - "\u071d\u071e\u0007T\u0002\u0002\u071e\u071f\u0007O\u0002\u0002\u071f", - "\u0720\u0007C\u0002\u0002\u0720\u0721\u0007V\u0002\u0002\u0721\u0198", - "\u0003\u0002\u0002\u0002\u0722\u0723\u0007V\u0002\u0002\u0723\u0724", - "\u0007Q\u0002\u0002\u0724\u0725\u0007W\u0002\u0002\u0725\u0726\u0007", - "E\u0002\u0002\u0726\u0727\u0007J\u0002\u0002\u0727\u019a\u0003\u0002", - "\u0002\u0002\u0728\u0729\u0007E\u0002\u0002\u0729\u072a\u0007Q\u0002", - "\u0002\u072a\u072b\u0007O\u0002\u0002\u072b\u072c\u0007R\u0002\u0002", - "\u072c\u072d\u0007C\u0002\u0002\u072d\u072e\u0007E\u0002\u0002\u072e", - "\u072f\u0007V\u0002\u0002\u072f\u019c\u0003\u0002\u0002\u0002\u0730", - "\u0731\u0007E\u0002\u0002\u0731\u0732\u0007Q\u0002\u0002\u0732\u0733", - "\u0007P\u0002\u0002\u0733\u0734\u0007E\u0002\u0002\u0734\u0735\u0007", - "C\u0002\u0002\u0735\u0736\u0007V\u0002\u0002\u0736\u0737\u0007G\u0002", - "\u0002\u0737\u0738\u0007P\u0002\u0002\u0738\u0739\u0007C\u0002\u0002", - "\u0739\u073a\u0007V\u0002\u0002\u073a\u073b\u0007G\u0002\u0002\u073b", - "\u019e\u0003\u0002\u0002\u0002\u073c\u073d\u0007E\u0002\u0002\u073d", - "\u073e\u0007J\u0002\u0002\u073e\u073f\u0007C\u0002\u0002\u073f\u0740", - "\u0007P\u0002\u0002\u0740\u0741\u0007I\u0002\u0002\u0741\u0742\u0007", - "G\u0002\u0002\u0742\u01a0\u0003\u0002\u0002\u0002\u0743\u0744\u0007", - "E\u0002\u0002\u0744\u0745\u0007C\u0002\u0002\u0745\u0746\u0007U\u0002", - "\u0002\u0746\u0747\u0007E\u0002\u0002\u0747\u0748\u0007C\u0002\u0002", - "\u0748\u0749\u0007F\u0002\u0002\u0749\u074a\u0007G\u0002\u0002\u074a", - "\u01a2\u0003\u0002\u0002\u0002\u074b\u074c\u0007T\u0002\u0002\u074c", - "\u074d\u0007G\u0002\u0002\u074d\u074e\u0007U\u0002\u0002\u074e\u074f", - "\u0007V\u0002\u0002\u074f\u0750\u0007T\u0002\u0002\u0750\u0751\u0007", - "K\u0002\u0002\u0751\u0752\u0007E\u0002\u0002\u0752\u0753\u0007V\u0002", - "\u0002\u0753\u01a4\u0003\u0002\u0002\u0002\u0754\u0755\u0007E\u0002", - "\u0002\u0755\u0756\u0007N\u0002\u0002\u0756\u0757\u0007W\u0002\u0002", - "\u0757\u0758\u0007U\u0002\u0002\u0758\u0759\u0007V\u0002\u0002\u0759", - "\u075a\u0007G\u0002\u0002\u075a\u075b\u0007T\u0002\u0002\u075b\u075c", - "\u0007G\u0002\u0002\u075c\u075d\u0007F\u0002\u0002\u075d\u01a6\u0003", - "\u0002\u0002\u0002\u075e\u075f\u0007U\u0002\u0002\u075f\u0760\u0007", - "Q\u0002\u0002\u0760\u0761\u0007T\u0002\u0002\u0761\u0762\u0007V\u0002", - "\u0002\u0762\u0763\u0007G\u0002\u0002\u0763\u0764\u0007F\u0002\u0002", - "\u0764\u01a8\u0003\u0002\u0002\u0002\u0765\u0766\u0007R\u0002\u0002", - "\u0766\u0767\u0007W\u0002\u0002\u0767\u0768\u0007T\u0002\u0002\u0768", - "\u0769\u0007I\u0002\u0002\u0769\u076a\u0007G\u0002\u0002\u076a\u01aa", - "\u0003\u0002\u0002\u0002\u076b\u076c\u0007K\u0002\u0002\u076c\u076d", - "\u0007P\u0002\u0002\u076d\u076e\u0007R\u0002\u0002\u076e\u076f\u0007", - "W\u0002\u0002\u076f\u0770\u0007V\u0002\u0002\u0770\u0771\u0007H\u0002", - "\u0002\u0771\u0772\u0007Q\u0002\u0002\u0772\u0773\u0007T\u0002\u0002", - "\u0773\u0774\u0007O\u0002\u0002\u0774\u0775\u0007C\u0002\u0002\u0775", - "\u0776\u0007V\u0002\u0002\u0776\u01ac\u0003\u0002\u0002\u0002\u0777", - "\u0778\u0007Q\u0002\u0002\u0778\u0779\u0007W\u0002\u0002\u0779\u077a", - "\u0007V\u0002\u0002\u077a\u077b\u0007R\u0002\u0002\u077b\u077c\u0007", - "W\u0002\u0002\u077c\u077d\u0007V\u0002\u0002\u077d\u077e\u0007H\u0002", - "\u0002\u077e\u077f\u0007Q\u0002\u0002\u077f\u0780\u0007T\u0002\u0002", - "\u0780\u0781\u0007O\u0002\u0002\u0781\u0782\u0007C\u0002\u0002\u0782", - "\u0783\u0007V\u0002\u0002\u0783\u01ae\u0003\u0002\u0002\u0002\u0784", - "\u0785\u0007F\u0002\u0002\u0785\u0786\u0007C\u0002\u0002\u0786\u0787", - "\u0007V\u0002\u0002\u0787\u0788\u0007C\u0002\u0002\u0788\u0789\u0007", - "D\u0002\u0002\u0789\u078a\u0007C\u0002\u0002\u078a\u078b\u0007U\u0002", - "\u0002\u078b\u0793\u0007G\u0002\u0002\u078c\u078d\u0007U\u0002\u0002", - "\u078d\u078e\u0007E\u0002\u0002\u078e\u078f\u0007J\u0002\u0002\u078f", - "\u0790\u0007G\u0002\u0002\u0790\u0791\u0007O\u0002\u0002\u0791\u0793", - "\u0007C\u0002\u0002\u0792\u0784\u0003\u0002\u0002\u0002\u0792\u078c", - "\u0003\u0002\u0002\u0002\u0793\u01b0\u0003\u0002\u0002\u0002\u0794\u0795", - "\u0007F\u0002\u0002\u0795\u0796\u0007C\u0002\u0002\u0796\u0797\u0007", - "V\u0002\u0002\u0797\u0798\u0007C\u0002\u0002\u0798\u0799\u0007D\u0002", - "\u0002\u0799\u079a\u0007C\u0002\u0002\u079a\u079b\u0007U\u0002\u0002", - "\u079b\u079c\u0007G\u0002\u0002\u079c\u07a5\u0007U\u0002\u0002\u079d", - "\u079e\u0007U\u0002\u0002\u079e\u079f\u0007E\u0002\u0002\u079f\u07a0", - "\u0007J\u0002\u0002\u07a0\u07a1\u0007G\u0002\u0002\u07a1\u07a2\u0007", - "O\u0002\u0002\u07a2\u07a3\u0007C\u0002\u0002\u07a3\u07a5\u0007U\u0002", - "\u0002\u07a4\u0794\u0003\u0002\u0002\u0002\u07a4\u079d\u0003\u0002\u0002", - "\u0002\u07a5\u01b2\u0003\u0002\u0002\u0002\u07a6\u07a7\u0007F\u0002", - "\u0002\u07a7\u07a8\u0007H\u0002\u0002\u07a8\u07a9\u0007U\u0002\u0002", - "\u07a9\u01b4\u0003\u0002\u0002\u0002\u07aa\u07ab\u0007V\u0002\u0002", - "\u07ab\u07ac\u0007T\u0002\u0002\u07ac\u07ad\u0007W\u0002\u0002\u07ad", - "\u07ae\u0007P\u0002\u0002\u07ae\u07af\u0007E\u0002\u0002\u07af\u07b0", - "\u0007C\u0002\u0002\u07b0\u07b1\u0007V\u0002\u0002\u07b1\u07b2\u0007", - "G\u0002\u0002\u07b2\u01b6\u0003\u0002\u0002\u0002\u07b3\u07b4\u0007", - "C\u0002\u0002\u07b4\u07b5\u0007P\u0002\u0002\u07b5\u07b6\u0007C\u0002", - "\u0002\u07b6\u07b7\u0007N\u0002\u0002\u07b7\u07b8\u0007[\u0002\u0002", - "\u07b8\u07b9\u0007\\\u0002\u0002\u07b9\u07ba\u0007G\u0002\u0002\u07ba", - "\u01b8\u0003\u0002\u0002\u0002\u07bb\u07bc\u0007E\u0002\u0002\u07bc", - "\u07bd\u0007Q\u0002\u0002\u07bd\u07be\u0007O\u0002\u0002\u07be\u07bf", - "\u0007R\u0002\u0002\u07bf\u07c0\u0007W\u0002\u0002\u07c0\u07c1\u0007", - "V\u0002\u0002\u07c1\u07c2\u0007G\u0002\u0002\u07c2\u01ba\u0003\u0002", - "\u0002\u0002\u07c3\u07c4\u0007N\u0002\u0002\u07c4\u07c5\u0007K\u0002", - "\u0002\u07c5\u07c6\u0007U\u0002\u0002\u07c6\u07c7\u0007V\u0002\u0002", - "\u07c7\u01bc\u0003\u0002\u0002\u0002\u07c8\u07c9\u0007U\u0002\u0002", - "\u07c9\u07ca\u0007V\u0002\u0002\u07ca\u07cb\u0007C\u0002\u0002\u07cb", - "\u07cc\u0007V\u0002\u0002\u07cc\u07cd\u0007K\u0002\u0002\u07cd\u07ce", - "\u0007U\u0002\u0002\u07ce\u07cf\u0007V\u0002\u0002\u07cf\u07d0\u0007", - "K\u0002\u0002\u07d0\u07d1\u0007E\u0002\u0002\u07d1\u07d2\u0007U\u0002", - "\u0002\u07d2\u01be\u0003\u0002\u0002\u0002\u07d3\u07d4\u0007R\u0002", - "\u0002\u07d4\u07d5\u0007C\u0002\u0002\u07d5\u07d6\u0007T\u0002\u0002", - "\u07d6\u07d7\u0007V\u0002\u0002\u07d7\u07d8\u0007K\u0002\u0002\u07d8", - "\u07d9\u0007V\u0002\u0002\u07d9\u07da\u0007K\u0002\u0002\u07da\u07db", - "\u0007Q\u0002\u0002\u07db\u07dc\u0007P\u0002\u0002\u07dc\u07dd\u0007", - "G\u0002\u0002\u07dd\u07de\u0007F\u0002\u0002\u07de\u01c0\u0003\u0002", - "\u0002\u0002\u07df\u07e0\u0007G\u0002\u0002\u07e0\u07e1\u0007Z\u0002", - "\u0002\u07e1\u07e2\u0007V\u0002\u0002\u07e2\u07e3\u0007G\u0002\u0002", - "\u07e3\u07e4\u0007T\u0002\u0002\u07e4\u07e5\u0007P\u0002\u0002\u07e5", - "\u07e6\u0007C\u0002\u0002\u07e6\u07e7\u0007N\u0002\u0002\u07e7\u01c2", - "\u0003\u0002\u0002\u0002\u07e8\u07e9\u0007F\u0002\u0002\u07e9\u07ea", - "\u0007G\u0002\u0002\u07ea\u07eb\u0007H\u0002\u0002\u07eb\u07ec\u0007", - "K\u0002\u0002\u07ec\u07ed\u0007P\u0002\u0002\u07ed\u07ee\u0007G\u0002", - "\u0002\u07ee\u07ef\u0007F\u0002\u0002\u07ef\u01c4\u0003\u0002\u0002", - "\u0002\u07f0\u07f1\u0007T\u0002\u0002\u07f1\u07f2\u0007G\u0002\u0002", - "\u07f2\u07f3\u0007X\u0002\u0002\u07f3\u07f4\u0007Q\u0002\u0002\u07f4", - "\u07f5\u0007M\u0002\u0002\u07f5\u07f6\u0007G\u0002\u0002\u07f6\u01c6", - "\u0003\u0002\u0002\u0002\u07f7\u07f8\u0007I\u0002\u0002\u07f8\u07f9", - "\u0007T\u0002\u0002\u07f9\u07fa\u0007C\u0002\u0002\u07fa\u07fb\u0007", - "P\u0002\u0002\u07fb\u07fc\u0007V\u0002\u0002\u07fc\u01c8\u0003\u0002", - "\u0002\u0002\u07fd\u07fe\u0007N\u0002\u0002\u07fe\u07ff\u0007Q\u0002", - "\u0002\u07ff\u0800\u0007E\u0002\u0002\u0800\u0801\u0007M\u0002\u0002", - "\u0801\u01ca\u0003\u0002\u0002\u0002\u0802\u0803\u0007W\u0002\u0002", - "\u0803\u0804\u0007P\u0002\u0002\u0804\u0805\u0007N\u0002\u0002\u0805", - "\u0806\u0007Q\u0002\u0002\u0806\u0807\u0007E\u0002\u0002\u0807\u0808", - "\u0007M\u0002\u0002\u0808\u01cc\u0003\u0002\u0002\u0002\u0809\u080a", - "\u0007O\u0002\u0002\u080a\u080b\u0007U\u0002\u0002\u080b\u080c\u0007", - "E\u0002\u0002\u080c\u080d\u0007M\u0002\u0002\u080d\u01ce\u0003\u0002", - "\u0002\u0002\u080e\u080f\u0007T\u0002\u0002\u080f\u0810\u0007G\u0002", - "\u0002\u0810\u0811\u0007R\u0002\u0002\u0811\u0812\u0007C\u0002\u0002", - "\u0812\u0813\u0007K\u0002\u0002\u0813\u0814\u0007T\u0002\u0002\u0814", - "\u01d0\u0003\u0002\u0002\u0002\u0815\u0816\u0007T\u0002\u0002\u0816", - "\u0817\u0007G\u0002\u0002\u0817\u0818\u0007E\u0002\u0002\u0818\u0819", - "\u0007Q\u0002\u0002\u0819\u081a\u0007X\u0002\u0002\u081a\u081b\u0007", - "G\u0002\u0002\u081b\u081c\u0007T\u0002\u0002\u081c\u01d2\u0003\u0002", - "\u0002\u0002\u081d\u081e\u0007G\u0002\u0002\u081e\u081f\u0007Z\u0002", - "\u0002\u081f\u0820\u0007R\u0002\u0002\u0820\u0821\u0007Q\u0002\u0002", - "\u0821\u0822\u0007T\u0002\u0002\u0822\u0823\u0007V\u0002\u0002\u0823", - "\u01d4\u0003\u0002\u0002\u0002\u0824\u0825\u0007K\u0002\u0002\u0825", - "\u0826\u0007O\u0002\u0002\u0826\u0827\u0007R\u0002\u0002\u0827\u0828", - "\u0007Q\u0002\u0002\u0828\u0829\u0007T\u0002\u0002\u0829\u082a\u0007", - "V\u0002\u0002\u082a\u01d6\u0003\u0002\u0002\u0002\u082b\u082c\u0007", - "N\u0002\u0002\u082c\u082d\u0007Q\u0002\u0002\u082d\u082e\u0007C\u0002", - "\u0002\u082e\u082f\u0007F\u0002\u0002\u082f\u01d8\u0003\u0002\u0002", - "\u0002\u0830\u0831\u0007T\u0002\u0002\u0831\u0832\u0007Q\u0002\u0002", - "\u0832\u0833\u0007N\u0002\u0002\u0833\u0834\u0007G\u0002\u0002\u0834", - "\u01da\u0003\u0002\u0002\u0002\u0835\u0836\u0007T\u0002\u0002\u0836", - "\u0837\u0007Q\u0002\u0002\u0837\u0838\u0007N\u0002\u0002\u0838\u0839", - "\u0007G\u0002\u0002\u0839\u083a\u0007U\u0002\u0002\u083a\u01dc\u0003", - "\u0002\u0002\u0002\u083b\u083c\u0007E\u0002\u0002\u083c\u083d\u0007", - "Q\u0002\u0002\u083d\u083e\u0007O\u0002\u0002\u083e\u083f\u0007R\u0002", - "\u0002\u083f\u0840\u0007C\u0002\u0002\u0840\u0841\u0007E\u0002\u0002", - "\u0841\u0842\u0007V\u0002\u0002\u0842\u0843\u0007K\u0002\u0002\u0843", - "\u0844\u0007Q\u0002\u0002\u0844\u0845\u0007P\u0002\u0002\u0845\u0846", - "\u0007U\u0002\u0002\u0846\u01de\u0003\u0002\u0002\u0002\u0847\u0848", - "\u0007R\u0002\u0002\u0848\u0849\u0007T\u0002\u0002\u0849\u084a\u0007", - "K\u0002\u0002\u084a\u084b\u0007P\u0002\u0002\u084b\u084c\u0007E\u0002", - "\u0002\u084c\u084d\u0007K\u0002\u0002\u084d\u084e\u0007R\u0002\u0002", - "\u084e\u084f\u0007C\u0002\u0002\u084f\u0850\u0007N\u0002\u0002\u0850", - "\u0851\u0007U\u0002\u0002\u0851\u01e0\u0003\u0002\u0002\u0002\u0852", - "\u0853\u0007V\u0002\u0002\u0853\u0854\u0007T\u0002\u0002\u0854\u0855", - "\u0007C\u0002\u0002\u0855\u0856\u0007P\u0002\u0002\u0856\u0857\u0007", - "U\u0002\u0002\u0857\u0858\u0007C\u0002\u0002\u0858\u0859\u0007E\u0002", - "\u0002\u0859\u085a\u0007V\u0002\u0002\u085a\u085b\u0007K\u0002\u0002", - "\u085b\u085c\u0007Q\u0002\u0002\u085c\u085d\u0007P\u0002\u0002\u085d", - "\u085e\u0007U\u0002\u0002\u085e\u01e2\u0003\u0002\u0002\u0002\u085f", - "\u0860\u0007K\u0002\u0002\u0860\u0861\u0007P\u0002\u0002\u0861\u0862", - "\u0007F\u0002\u0002\u0862\u0863\u0007G\u0002\u0002\u0863\u0864\u0007", - "Z\u0002\u0002\u0864\u01e4\u0003\u0002\u0002\u0002\u0865\u0866\u0007", - "K\u0002\u0002\u0866\u0867\u0007P\u0002\u0002\u0867\u0868\u0007F\u0002", - "\u0002\u0868\u0869\u0007G\u0002\u0002\u0869\u086a\u0007Z\u0002\u0002", - "\u086a\u086b\u0007G\u0002\u0002\u086b\u086c\u0007U\u0002\u0002\u086c", - "\u01e6\u0003\u0002\u0002\u0002\u086d\u086e\u0007N\u0002\u0002\u086e", - "\u086f\u0007Q\u0002\u0002\u086f\u0870\u0007E\u0002\u0002\u0870\u0871", - "\u0007M\u0002\u0002\u0871\u0872\u0007U\u0002\u0002\u0872\u01e8\u0003", - "\u0002\u0002\u0002\u0873\u0874\u0007Q\u0002\u0002\u0874\u0875\u0007", - "R\u0002\u0002\u0875\u0876\u0007V\u0002\u0002\u0876\u0877\u0007K\u0002", - "\u0002\u0877\u0878\u0007Q\u0002\u0002\u0878\u0879\u0007P\u0002\u0002", - "\u0879\u01ea\u0003\u0002\u0002\u0002\u087a\u087b\u0007C\u0002\u0002", - "\u087b\u087c\u0007P\u0002\u0002\u087c\u087d\u0007V\u0002\u0002\u087d", - "\u087e\u0007K\u0002\u0002\u087e\u01ec\u0003\u0002\u0002\u0002\u087f", - "\u0880\u0007N\u0002\u0002\u0880\u0881\u0007Q\u0002\u0002\u0881\u0882", - "\u0007E\u0002\u0002\u0882\u0883\u0007C\u0002\u0002\u0883\u0884\u0007", - "N\u0002\u0002\u0884\u01ee\u0003\u0002\u0002\u0002\u0885\u0886\u0007", - "K\u0002\u0002\u0886\u0887\u0007P\u0002\u0002\u0887\u0888\u0007R\u0002", - "\u0002\u0888\u0889\u0007C\u0002\u0002\u0889\u088a\u0007V\u0002\u0002", - "\u088a\u088b\u0007J\u0002\u0002\u088b\u01f0\u0003\u0002\u0002\u0002", - "\u088c\u088d\u0007Y\u0002\u0002\u088d\u088e\u0007C\u0002\u0002\u088e", - "\u088f\u0007V\u0002\u0002\u088f\u0890\u0007G\u0002\u0002\u0890\u0891", - "\u0007T\u0002\u0002\u0891\u0892\u0007O\u0002\u0002\u0892\u0893\u0007", - "C\u0002\u0002\u0893\u0894\u0007T\u0002\u0002\u0894\u0895\u0007M\u0002", - "\u0002\u0895\u01f2\u0003\u0002\u0002\u0002\u0896\u0897\u0007W\u0002", - "\u0002\u0897\u0898\u0007P\u0002\u0002\u0898\u0899\u0007P\u0002\u0002", - "\u0899\u089a\u0007G\u0002\u0002\u089a\u089b\u0007U\u0002\u0002\u089b", - "\u089c\u0007V\u0002\u0002\u089c\u01f4\u0003\u0002\u0002\u0002\u089d", - "\u089e\u0007O\u0002\u0002\u089e\u089f\u0007C\u0002\u0002\u089f\u08a0", - "\u0007V\u0002\u0002\u08a0\u08a1\u0007E\u0002\u0002\u08a1\u08a2\u0007", - "J\u0002\u0002\u08a2\u08a3\u0007a\u0002\u0002\u08a3\u08a4\u0007T\u0002", - "\u0002\u08a4\u08a5\u0007G\u0002\u0002\u08a5\u08a6\u0007E\u0002\u0002", - "\u08a6\u08a7\u0007Q\u0002\u0002\u08a7\u08a8\u0007I\u0002\u0002\u08a8", - "\u08a9\u0007P\u0002\u0002\u08a9\u08aa\u0007K\u0002\u0002\u08aa\u08ab", - "\u0007\\\u0002\u0002\u08ab\u08ac\u0007G\u0002\u0002\u08ac\u01f6\u0003", - "\u0002\u0002\u0002\u08ad\u08ae\u0007O\u0002\u0002\u08ae\u08af\u0007", - "G\u0002\u0002\u08af\u08b0\u0007C\u0002\u0002\u08b0\u08b1\u0007U\u0002", - "\u0002\u08b1\u08b2\u0007W\u0002\u0002\u08b2\u08b3\u0007T\u0002\u0002", - "\u08b3\u08b4\u0007G\u0002\u0002\u08b4\u08b5\u0007U\u0002\u0002\u08b5", - "\u01f8\u0003\u0002\u0002\u0002\u08b6\u08b7\u0007Q\u0002\u0002\u08b7", - "\u08b8\u0007P\u0002\u0002\u08b8\u08b9\u0007G\u0002\u0002\u08b9\u01fa", - "\u0003\u0002\u0002\u0002\u08ba\u08bb\u0007R\u0002\u0002\u08bb\u08bc", - "\u0007G\u0002\u0002\u08bc\u08bd\u0007T\u0002\u0002\u08bd\u01fc\u0003", - "\u0002\u0002\u0002\u08be\u08bf\u0007O\u0002\u0002\u08bf\u08c0\u0007", - "C\u0002\u0002\u08c0\u08c1\u0007V\u0002\u0002\u08c1\u08c2\u0007E\u0002", - "\u0002\u08c2\u08c3\u0007J\u0002\u0002\u08c3\u01fe\u0003\u0002\u0002", - "\u0002\u08c4\u08c5\u0007U\u0002\u0002\u08c5\u08c6\u0007M\u0002\u0002", - "\u08c6\u08c7\u0007K\u0002\u0002\u08c7\u08c8\u0007R\u0002\u0002\u08c8", - "\u0200\u0003\u0002\u0002\u0002\u08c9\u08ca\u0007P\u0002\u0002\u08ca", - "\u08cb\u0007G\u0002\u0002\u08cb\u08cc\u0007Z\u0002\u0002\u08cc\u08cd", - "\u0007V\u0002\u0002\u08cd\u0202\u0003\u0002\u0002\u0002\u08ce\u08cf", - "\u0007R\u0002\u0002\u08cf\u08d0\u0007C\u0002\u0002\u08d0\u08d1\u0007", - "U\u0002\u0002\u08d1\u08d2\u0007V\u0002\u0002\u08d2\u0204\u0003\u0002", - "\u0002\u0002\u08d3\u08d4\u0007R\u0002\u0002\u08d4\u08d5\u0007C\u0002", - "\u0002\u08d5\u08d6\u0007V\u0002\u0002\u08d6\u08d7\u0007V\u0002\u0002", - "\u08d7\u08d8\u0007G\u0002\u0002\u08d8\u08d9\u0007T\u0002\u0002\u08d9", - "\u08da\u0007P\u0002\u0002\u08da\u0206\u0003\u0002\u0002\u0002\u08db", - "\u08dc\u0007Y\u0002\u0002\u08dc\u08dd\u0007K\u0002\u0002\u08dd\u08de", - "\u0007V\u0002\u0002\u08de\u08df\u0007J\u0002\u0002\u08df\u08e0\u0007", - "K\u0002\u0002\u08e0\u08e1\u0007P\u0002\u0002\u08e1\u0208\u0003\u0002", - "\u0002\u0002\u08e2\u08e3\u0007F\u0002\u0002\u08e3\u08e4\u0007G\u0002", - "\u0002\u08e4\u08e5\u0007H\u0002\u0002\u08e5\u08e6\u0007K\u0002\u0002", - "\u08e6\u08e7\u0007P\u0002\u0002\u08e7\u08e8\u0007G\u0002\u0002\u08e8", - "\u020a\u0003\u0002\u0002\u0002\u08e9\u08ef\u0007)\u0002\u0002\u08ea", - "\u08ee\n\u0002\u0002\u0002\u08eb\u08ec\u0007^\u0002\u0002\u08ec\u08ee", - "\u000b\u0002\u0002\u0002\u08ed\u08ea\u0003\u0002\u0002\u0002\u08ed\u08eb", - "\u0003\u0002\u0002\u0002\u08ee\u08f1\u0003\u0002\u0002\u0002\u08ef\u08ed", - "\u0003\u0002\u0002\u0002\u08ef\u08f0\u0003\u0002\u0002\u0002\u08f0\u08f2", - "\u0003\u0002\u0002\u0002\u08f1\u08ef\u0003\u0002\u0002\u0002\u08f2\u08fe", - "\u0007)\u0002\u0002\u08f3\u08f9\u0007$\u0002\u0002\u08f4\u08f8\n\u0003", - "\u0002\u0002\u08f5\u08f6\u0007^\u0002\u0002\u08f6\u08f8\u000b\u0002", - "\u0002\u0002\u08f7\u08f4\u0003\u0002\u0002\u0002\u08f7\u08f5\u0003\u0002", - "\u0002\u0002\u08f8\u08fb\u0003\u0002\u0002\u0002\u08f9\u08f7\u0003\u0002", - "\u0002\u0002\u08f9\u08fa\u0003\u0002\u0002\u0002\u08fa\u08fc\u0003\u0002", - "\u0002\u0002\u08fb\u08f9\u0003\u0002\u0002\u0002\u08fc\u08fe\u0007$", - "\u0002\u0002\u08fd\u08e9\u0003\u0002\u0002\u0002\u08fd\u08f3\u0003\u0002", - "\u0002\u0002\u08fe\u020c\u0003\u0002\u0002\u0002\u08ff\u0901\u0005\u0223", - "\u0112\u0002\u0900\u08ff\u0003\u0002\u0002\u0002\u0901\u0902\u0003\u0002", - "\u0002\u0002\u0902\u0900\u0003\u0002\u0002\u0002\u0902\u0903\u0003\u0002", - "\u0002\u0002\u0903\u0904\u0003\u0002\u0002\u0002\u0904\u0905\u0007N", - "\u0002\u0002\u0905\u020e\u0003\u0002\u0002\u0002\u0906\u0908\u0005\u0223", - "\u0112\u0002\u0907\u0906\u0003\u0002\u0002\u0002\u0908\u0909\u0003\u0002", - "\u0002\u0002\u0909\u0907\u0003\u0002\u0002\u0002\u0909\u090a\u0003\u0002", - "\u0002\u0002\u090a\u090b\u0003\u0002\u0002\u0002\u090b\u090c\u0007U", - "\u0002\u0002\u090c\u0210\u0003\u0002\u0002\u0002\u090d\u090f\u0005\u0223", - "\u0112\u0002\u090e\u090d\u0003\u0002\u0002\u0002\u090f\u0910\u0003\u0002", - "\u0002\u0002\u0910\u090e\u0003\u0002\u0002\u0002\u0910\u0911\u0003\u0002", - "\u0002\u0002\u0911\u0912\u0003\u0002\u0002\u0002\u0912\u0913\u0007[", - "\u0002\u0002\u0913\u0212\u0003\u0002\u0002\u0002\u0914\u0916\u0005\u0223", - "\u0112\u0002\u0915\u0914\u0003\u0002\u0002\u0002\u0916\u0917\u0003\u0002", - "\u0002\u0002\u0917\u0915\u0003\u0002\u0002\u0002\u0917\u0918\u0003\u0002", - "\u0002\u0002\u0918\u0214\u0003\u0002\u0002\u0002\u0919\u091b\u0005\u0223", - "\u0112\u0002\u091a\u0919\u0003\u0002\u0002\u0002\u091b\u091c\u0003\u0002", - "\u0002\u0002\u091c\u091a\u0003\u0002\u0002\u0002\u091c\u091d\u0003\u0002", - "\u0002\u0002\u091d\u091e\u0003\u0002\u0002\u0002\u091e\u091f\u0005\u0221", - "\u0111\u0002\u091f\u0927\u0003\u0002\u0002\u0002\u0920\u0922\u0005\u021f", - "\u0110\u0002\u0921\u0923\u0005\u0221\u0111\u0002\u0922\u0921\u0003\u0002", - "\u0002\u0002\u0922\u0923\u0003\u0002\u0002\u0002\u0923\u0924\u0003\u0002", - "\u0002\u0002\u0924\u0925\u0006\u010b\u0002\u0002\u0925\u0927\u0003\u0002", - "\u0002\u0002\u0926\u091a\u0003\u0002\u0002\u0002\u0926\u0920\u0003\u0002", - "\u0002\u0002\u0927\u0216\u0003\u0002\u0002\u0002\u0928\u092a\u0005\u0223", - "\u0112\u0002\u0929\u0928\u0003\u0002\u0002\u0002\u092a\u092b\u0003\u0002", - "\u0002\u0002\u092b\u0929\u0003\u0002\u0002\u0002\u092b\u092c\u0003\u0002", - "\u0002\u0002\u092c\u092e\u0003\u0002\u0002\u0002\u092d\u092f\u0005\u0221", - "\u0111\u0002\u092e\u092d\u0003\u0002\u0002\u0002\u092e\u092f\u0003\u0002", - "\u0002\u0002\u092f\u0930\u0003\u0002\u0002\u0002\u0930\u0931\u0007F", - "\u0002\u0002\u0931\u093a\u0003\u0002\u0002\u0002\u0932\u0934\u0005\u021f", - "\u0110\u0002\u0933\u0935\u0005\u0221\u0111\u0002\u0934\u0933\u0003\u0002", - "\u0002\u0002\u0934\u0935\u0003\u0002\u0002\u0002\u0935\u0936\u0003\u0002", - "\u0002\u0002\u0936\u0937\u0007F\u0002\u0002\u0937\u0938\u0006\u010c", - "\u0003\u0002\u0938\u093a\u0003\u0002\u0002\u0002\u0939\u0929\u0003\u0002", - "\u0002\u0002\u0939\u0932\u0003\u0002\u0002\u0002\u093a\u0218\u0003\u0002", - "\u0002\u0002\u093b\u093d\u0005\u0223\u0112\u0002\u093c\u093b\u0003\u0002", - "\u0002\u0002\u093d\u093e\u0003\u0002\u0002\u0002\u093e\u093c\u0003\u0002", - "\u0002\u0002\u093e\u093f\u0003\u0002\u0002\u0002\u093f\u0941\u0003\u0002", - "\u0002\u0002\u0940\u0942\u0005\u0221\u0111\u0002\u0941\u0940\u0003\u0002", - "\u0002\u0002\u0941\u0942\u0003\u0002\u0002\u0002\u0942\u0943\u0003\u0002", - "\u0002\u0002\u0943\u0944\u0007D\u0002\u0002\u0944\u0945\u0007F\u0002", - "\u0002\u0945\u0950\u0003\u0002\u0002\u0002\u0946\u0948\u0005\u021f\u0110", - "\u0002\u0947\u0949\u0005\u0221\u0111\u0002\u0948\u0947\u0003\u0002\u0002", - "\u0002\u0948\u0949\u0003\u0002\u0002\u0002\u0949\u094a\u0003\u0002\u0002", - "\u0002\u094a\u094b\u0007D\u0002\u0002\u094b\u094c\u0007F\u0002\u0002", - "\u094c\u094d\u0003\u0002\u0002\u0002\u094d\u094e\u0006\u010d\u0004\u0002", - "\u094e\u0950\u0003\u0002\u0002\u0002\u094f\u093c\u0003\u0002\u0002\u0002", - "\u094f\u0946\u0003\u0002\u0002\u0002\u0950\u021a\u0003\u0002\u0002\u0002", - "\u0951\u0955\u0005\u0225\u0113\u0002\u0952\u0955\u0005\u0223\u0112\u0002", - "\u0953\u0955\u0007a\u0002\u0002\u0954\u0951\u0003\u0002\u0002\u0002", - "\u0954\u0952\u0003\u0002\u0002\u0002\u0954\u0953\u0003\u0002\u0002\u0002", - "\u0955\u0956\u0003\u0002\u0002\u0002\u0956\u0954\u0003\u0002\u0002\u0002", - "\u0956\u0957\u0003\u0002\u0002\u0002\u0957\u021c\u0003\u0002\u0002\u0002", - "\u0958\u095e\u0007b\u0002\u0002\u0959\u095d\n\u0004\u0002\u0002\u095a", - "\u095b\u0007b\u0002\u0002\u095b\u095d\u0007b\u0002\u0002\u095c\u0959", - "\u0003\u0002\u0002\u0002\u095c\u095a\u0003\u0002\u0002\u0002\u095d\u0960", - "\u0003\u0002\u0002\u0002\u095e\u095c\u0003\u0002\u0002\u0002\u095e\u095f", - "\u0003\u0002\u0002\u0002\u095f\u0961\u0003\u0002\u0002\u0002\u0960\u095e", - "\u0003\u0002\u0002\u0002\u0961\u0962\u0007b\u0002\u0002\u0962\u021e", - "\u0003\u0002\u0002\u0002\u0963\u0965\u0005\u0223\u0112\u0002\u0964\u0963", - "\u0003\u0002\u0002\u0002\u0965\u0966\u0003\u0002\u0002\u0002\u0966\u0964", - "\u0003\u0002\u0002\u0002\u0966\u0967\u0003\u0002\u0002\u0002\u0967\u0968", - "\u0003\u0002\u0002\u0002\u0968\u096c\u00070\u0002\u0002\u0969\u096b", - "\u0005\u0223\u0112\u0002\u096a\u0969\u0003\u0002\u0002\u0002\u096b\u096e", - "\u0003\u0002\u0002\u0002\u096c\u096a\u0003\u0002\u0002\u0002\u096c\u096d", - "\u0003\u0002\u0002\u0002\u096d\u0976\u0003\u0002\u0002\u0002\u096e\u096c", - "\u0003\u0002\u0002\u0002\u096f\u0971\u00070\u0002\u0002\u0970\u0972", - "\u0005\u0223\u0112\u0002\u0971\u0970\u0003\u0002\u0002\u0002\u0972\u0973", - "\u0003\u0002\u0002\u0002\u0973\u0971\u0003\u0002\u0002\u0002\u0973\u0974", - "\u0003\u0002\u0002\u0002\u0974\u0976\u0003\u0002\u0002\u0002\u0975\u0964", - "\u0003\u0002\u0002\u0002\u0975\u096f\u0003\u0002\u0002\u0002\u0976\u0220", - "\u0003\u0002\u0002\u0002\u0977\u0979\u0007G\u0002\u0002\u0978\u097a", - "\t\u0005\u0002\u0002\u0979\u0978\u0003\u0002\u0002\u0002\u0979\u097a", - "\u0003\u0002\u0002\u0002\u097a\u097c\u0003\u0002\u0002\u0002\u097b\u097d", - "\u0005\u0223\u0112\u0002\u097c\u097b\u0003\u0002\u0002\u0002\u097d\u097e", - "\u0003\u0002\u0002\u0002\u097e\u097c\u0003\u0002\u0002\u0002\u097e\u097f", - "\u0003\u0002\u0002\u0002\u097f\u0222\u0003\u0002\u0002\u0002\u0980\u0981", - "\t\u0006\u0002\u0002\u0981\u0224\u0003\u0002\u0002\u0002\u0982\u0983", - "\t\u0007\u0002\u0002\u0983\u0226\u0003\u0002\u0002\u0002\u0984\u0985", - "\u0007/\u0002\u0002\u0985\u0986\u0007/\u0002\u0002\u0986\u098a\u0003", - "\u0002\u0002\u0002\u0987\u0989\n\b\u0002\u0002\u0988\u0987\u0003\u0002", - "\u0002\u0002\u0989\u098c\u0003\u0002\u0002\u0002\u098a\u0988\u0003\u0002", - "\u0002\u0002\u098a\u098b\u0003\u0002\u0002\u0002\u098b\u098e\u0003\u0002", - "\u0002\u0002\u098c\u098a\u0003\u0002\u0002\u0002\u098d\u098f\u0007\u000f", - "\u0002\u0002\u098e\u098d\u0003\u0002\u0002\u0002\u098e\u098f\u0003\u0002", - "\u0002\u0002\u098f\u0991\u0003\u0002\u0002\u0002\u0990\u0992\u0007\f", - "\u0002\u0002\u0991\u0990\u0003\u0002\u0002\u0002\u0991\u0992\u0003\u0002", - "\u0002\u0002\u0992\u0993\u0003\u0002\u0002\u0002\u0993\u0994\b\u0114", - "\u0002\u0002\u0994\u0228\u0003\u0002\u0002\u0002\u0995\u0996\u00071", - "\u0002\u0002\u0996\u0997\u0007,\u0002\u0002\u0997\u0998\u0007,\u0002", - "\u0002\u0998\u0999\u00071\u0002\u0002\u0999\u099a\u0003\u0002\u0002", - "\u0002\u099a\u099b\b\u0115\u0002\u0002\u099b\u022a\u0003\u0002\u0002", - "\u0002\u099c\u099d\u00071\u0002\u0002\u099d\u099e\u0007,\u0002\u0002", - "\u099e\u099f\u0003\u0002\u0002\u0002\u099f\u09a3\n\t\u0002\u0002\u09a0", - "\u09a2\u000b\u0002\u0002\u0002\u09a1\u09a0\u0003\u0002\u0002\u0002\u09a2", - "\u09a5\u0003\u0002\u0002\u0002\u09a3\u09a4\u0003\u0002\u0002\u0002\u09a3", - "\u09a1\u0003\u0002\u0002\u0002\u09a4\u09a6\u0003\u0002\u0002\u0002\u09a5", - "\u09a3\u0003\u0002\u0002\u0002\u09a6\u09a7\u0007,\u0002\u0002\u09a7", - "\u09a8\u00071\u0002\u0002\u09a8\u09a9\u0003\u0002\u0002\u0002\u09a9", - "\u09aa\b\u0116\u0002\u0002\u09aa\u022c\u0003\u0002\u0002\u0002\u09ab", - "\u09ad\t\n\u0002\u0002\u09ac\u09ab\u0003\u0002\u0002\u0002\u09ad\u09ae", - "\u0003\u0002\u0002\u0002\u09ae\u09ac\u0003\u0002\u0002\u0002\u09ae\u09af", - "\u0003\u0002\u0002\u0002\u09af\u09b0\u0003\u0002\u0002\u0002\u09b0\u09b1", - "\b\u0117\u0002\u0002\u09b1\u022e\u0003\u0002\u0002\u0002\u09b2\u09b3", - "\u000b\u0002\u0002\u0002\u09b3\u0230\u0003\u0002\u0002\u0002.\u0002", - "\u02d5\u02f9\u0557\u0569\u0571\u06a6\u0792\u07a4\u08ed\u08ef\u08f7\u08f9", - "\u08fd\u0902\u0909\u0910\u0917\u091c\u0922\u0926\u092b\u092e\u0934\u0939", - "\u093e\u0941\u0948\u094f\u0954\u0956\u095c\u095e\u0966\u096c\u0973\u0975", - "\u0979\u097e\u098a\u098e\u0991\u09a3\u09ae\u0003\u0002\u0003\u0002"].join(""); - - -var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); - -var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); - -function sqlLexer(input) { - antlr4.Lexer.call(this, input); - this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); - return this; -} - -sqlLexer.prototype = Object.create(antlr4.Lexer.prototype); -sqlLexer.prototype.constructor = sqlLexer; - -Object.defineProperty(sqlLexer.prototype, "atn", { - get : function() { - return atn; - } -}); - -sqlLexer.EOF = antlr4.Token.EOF; -sqlLexer.T__0 = 1; -sqlLexer.T__1 = 2; -sqlLexer.T__2 = 3; -sqlLexer.T__3 = 4; -sqlLexer.T__4 = 5; -sqlLexer.T__5 = 6; -sqlLexer.T__6 = 7; -sqlLexer.T__7 = 8; -sqlLexer.T__8 = 9; -sqlLexer.T__9 = 10; -sqlLexer.T__10 = 11; -sqlLexer.T__11 = 12; -sqlLexer.T__12 = 13; -sqlLexer.T__13 = 14; -sqlLexer.T__14 = 15; -sqlLexer.T__15 = 16; -sqlLexer.T__16 = 17; -sqlLexer.T__17 = 18; -sqlLexer.SELECT = 19; -sqlLexer.FROM = 20; -sqlLexer.ADD = 21; -sqlLexer.AS = 22; -sqlLexer.ALL = 23; -sqlLexer.ANY = 24; -sqlLexer.DISTINCT = 25; -sqlLexer.WHERE = 26; -sqlLexer.GROUP = 27; -sqlLexer.BY = 28; -sqlLexer.GROUPING = 29; -sqlLexer.SETS = 30; -sqlLexer.CUBE = 31; -sqlLexer.ROLLUP = 32; -sqlLexer.ORDER = 33; -sqlLexer.HAVING = 34; -sqlLexer.LIMIT = 35; -sqlLexer.AT = 36; -sqlLexer.OR = 37; -sqlLexer.AND = 38; -sqlLexer.IN = 39; -sqlLexer.NOT = 40; -sqlLexer.NO = 41; -sqlLexer.EXISTS = 42; -sqlLexer.BETWEEN = 43; -sqlLexer.LIKE = 44; -sqlLexer.RLIKE = 45; -sqlLexer.IS = 46; -sqlLexer.NULL = 47; -sqlLexer.TRUE = 48; -sqlLexer.FALSE = 49; -sqlLexer.NULLS = 50; -sqlLexer.ASC = 51; -sqlLexer.DESC = 52; -sqlLexer.FOR = 53; -sqlLexer.INTERVAL = 54; -sqlLexer.CASE = 55; -sqlLexer.WHEN = 56; -sqlLexer.THEN = 57; -sqlLexer.ELSE = 58; -sqlLexer.END = 59; -sqlLexer.JOIN = 60; -sqlLexer.CROSS = 61; -sqlLexer.OUTER = 62; -sqlLexer.INNER = 63; -sqlLexer.LEFT = 64; -sqlLexer.SEMI = 65; -sqlLexer.RIGHT = 66; -sqlLexer.FULL = 67; -sqlLexer.NATURAL = 68; -sqlLexer.ON = 69; -sqlLexer.PIVOT = 70; -sqlLexer.LATERAL = 71; -sqlLexer.WINDOW = 72; -sqlLexer.OVER = 73; -sqlLexer.PARTITION = 74; -sqlLexer.RANGE = 75; -sqlLexer.ROWS = 76; -sqlLexer.UNBOUNDED = 77; -sqlLexer.PRECEDING = 78; -sqlLexer.FOLLOWING = 79; -sqlLexer.CURRENT = 80; -sqlLexer.FIRST = 81; -sqlLexer.AFTER = 82; -sqlLexer.LAST = 83; -sqlLexer.ROW = 84; -sqlLexer.WITH = 85; -sqlLexer.VALUES = 86; -sqlLexer.CREATE = 87; -sqlLexer.TABLE = 88; -sqlLexer.DIRECTORY = 89; -sqlLexer.VIEW = 90; -sqlLexer.REPLACE = 91; -sqlLexer.INSERT = 92; -sqlLexer.DELETE = 93; -sqlLexer.INTO = 94; -sqlLexer.DESCRIBE = 95; -sqlLexer.EXPLAIN = 96; -sqlLexer.FORMAT = 97; -sqlLexer.LOGICAL = 98; -sqlLexer.CODEGEN = 99; -sqlLexer.COST = 100; -sqlLexer.CAST = 101; -sqlLexer.SHOW = 102; -sqlLexer.TABLES = 103; -sqlLexer.COLUMNS = 104; -sqlLexer.COLUMN = 105; -sqlLexer.USE = 106; -sqlLexer.PARTITIONS = 107; -sqlLexer.FUNCTIONS = 108; -sqlLexer.DROP = 109; -sqlLexer.UNION = 110; -sqlLexer.EXCEPT = 111; -sqlLexer.SETMINUS = 112; -sqlLexer.INTERSECT = 113; -sqlLexer.TO = 114; -sqlLexer.TABLESAMPLE = 115; -sqlLexer.STRATIFY = 116; -sqlLexer.ALTER = 117; -sqlLexer.RENAME = 118; -sqlLexer.ARRAY = 119; -sqlLexer.MAP = 120; -sqlLexer.STRUCT = 121; -sqlLexer.COMMENT = 122; -sqlLexer.SET = 123; -sqlLexer.RESET = 124; -sqlLexer.DATA = 125; -sqlLexer.START = 126; -sqlLexer.TRANSACTION = 127; -sqlLexer.COMMIT = 128; -sqlLexer.ROLLBACK = 129; -sqlLexer.MACRO = 130; -sqlLexer.IGNORE = 131; -sqlLexer.BOTH = 132; -sqlLexer.LEADING = 133; -sqlLexer.TRAILING = 134; -sqlLexer.IF = 135; -sqlLexer.POSITION = 136; -sqlLexer.EXTRACT = 137; -sqlLexer.EQ = 138; -sqlLexer.NSEQ = 139; -sqlLexer.NEQ = 140; -sqlLexer.NEQJ = 141; -sqlLexer.LT = 142; -sqlLexer.LTE = 143; -sqlLexer.GT = 144; -sqlLexer.GTE = 145; -sqlLexer.PLUS = 146; -sqlLexer.MINUS = 147; -sqlLexer.ASTERISK = 148; -sqlLexer.SLASH = 149; -sqlLexer.PERCENT = 150; -sqlLexer.DIV = 151; -sqlLexer.TILDE = 152; -sqlLexer.AMPERSAND = 153; -sqlLexer.PIPE = 154; -sqlLexer.CONCAT_PIPE = 155; -sqlLexer.HAT = 156; -sqlLexer.PERCENTLIT = 157; -sqlLexer.BUCKET = 158; -sqlLexer.OUT = 159; -sqlLexer.OF = 160; -sqlLexer.SORT = 161; -sqlLexer.CLUSTER = 162; -sqlLexer.DISTRIBUTE = 163; -sqlLexer.OVERWRITE = 164; -sqlLexer.TRANSFORM = 165; -sqlLexer.REDUCE = 166; -sqlLexer.USING = 167; -sqlLexer.SERDE = 168; -sqlLexer.SERDEPROPERTIES = 169; -sqlLexer.RECORDREADER = 170; -sqlLexer.RECORDWRITER = 171; -sqlLexer.DELIMITED = 172; -sqlLexer.FIELDS = 173; -sqlLexer.TERMINATED = 174; -sqlLexer.COLLECTION = 175; -sqlLexer.ITEMS = 176; -sqlLexer.KEYS = 177; -sqlLexer.ESCAPED = 178; -sqlLexer.LINES = 179; -sqlLexer.SEPARATED = 180; -sqlLexer.FUNCTION = 181; -sqlLexer.EXTENDED = 182; -sqlLexer.REFRESH = 183; -sqlLexer.CLEAR = 184; -sqlLexer.CACHE = 185; -sqlLexer.UNCACHE = 186; -sqlLexer.LAZY = 187; -sqlLexer.FORMATTED = 188; -sqlLexer.GLOBAL = 189; -sqlLexer.TEMPORARY = 190; -sqlLexer.OPTIONS = 191; -sqlLexer.UNSET = 192; -sqlLexer.TBLPROPERTIES = 193; -sqlLexer.DBPROPERTIES = 194; -sqlLexer.BUCKETS = 195; -sqlLexer.SKEWED = 196; -sqlLexer.STORED = 197; -sqlLexer.DIRECTORIES = 198; -sqlLexer.LOCATION = 199; -sqlLexer.EXCHANGE = 200; -sqlLexer.ARCHIVE = 201; -sqlLexer.UNARCHIVE = 202; -sqlLexer.FILEFORMAT = 203; -sqlLexer.TOUCH = 204; -sqlLexer.COMPACT = 205; -sqlLexer.CONCATENATE = 206; -sqlLexer.CHANGE = 207; -sqlLexer.CASCADE = 208; -sqlLexer.RESTRICT = 209; -sqlLexer.CLUSTERED = 210; -sqlLexer.SORTED = 211; -sqlLexer.PURGE = 212; -sqlLexer.INPUTFORMAT = 213; -sqlLexer.OUTPUTFORMAT = 214; -sqlLexer.DATABASE = 215; -sqlLexer.DATABASES = 216; -sqlLexer.DFS = 217; -sqlLexer.TRUNCATE = 218; -sqlLexer.ANALYZE = 219; -sqlLexer.COMPUTE = 220; -sqlLexer.LIST = 221; -sqlLexer.STATISTICS = 222; -sqlLexer.PARTITIONED = 223; -sqlLexer.EXTERNAL = 224; -sqlLexer.DEFINED = 225; -sqlLexer.REVOKE = 226; -sqlLexer.GRANT = 227; -sqlLexer.LOCK = 228; -sqlLexer.UNLOCK = 229; -sqlLexer.MSCK = 230; -sqlLexer.REPAIR = 231; -sqlLexer.RECOVER = 232; -sqlLexer.EXPORT = 233; -sqlLexer.IMPORT = 234; -sqlLexer.LOAD = 235; -sqlLexer.ROLE = 236; -sqlLexer.ROLES = 237; -sqlLexer.COMPACTIONS = 238; -sqlLexer.PRINCIPALS = 239; -sqlLexer.TRANSACTIONS = 240; -sqlLexer.INDEX = 241; -sqlLexer.INDEXES = 242; -sqlLexer.LOCKS = 243; -sqlLexer.OPTION = 244; -sqlLexer.ANTI = 245; -sqlLexer.LOCAL = 246; -sqlLexer.INPATH = 247; -sqlLexer.WATERMARK = 248; -sqlLexer.UNNEST = 249; -sqlLexer.MATCH_RECOGNIZE = 250; -sqlLexer.MEASURES = 251; -sqlLexer.ONE = 252; -sqlLexer.PER = 253; -sqlLexer.MATCH = 254; -sqlLexer.SKIP1 = 255; -sqlLexer.NEXT = 256; -sqlLexer.PAST = 257; -sqlLexer.PATTERN = 258; -sqlLexer.WITHIN = 259; -sqlLexer.DEFINE = 260; -sqlLexer.STRING = 261; -sqlLexer.BIGINT_LITERAL = 262; -sqlLexer.SMALLINT_LITERAL = 263; -sqlLexer.TINYINT_LITERAL = 264; -sqlLexer.INTEGER_VALUE = 265; -sqlLexer.DECIMAL_VALUE = 266; -sqlLexer.DOUBLE_LITERAL = 267; -sqlLexer.BIGDECIMAL_LITERAL = 268; -sqlLexer.IDENTIFIER = 269; -sqlLexer.BACKQUOTED_IDENTIFIER = 270; -sqlLexer.SIMPLE_COMMENT = 271; -sqlLexer.BRACKETED_EMPTY_COMMENT = 272; -sqlLexer.BRACKETED_COMMENT = 273; -sqlLexer.WS = 274; -sqlLexer.UNRECOGNIZED = 275; - -sqlLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; - -sqlLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; - -sqlLexer.prototype.literalNames = [ null, "'('", "')'", "'.'", "','", "'/*+'", - "'*/'", "'*?'", "'+?'", "'?'", "'??'", - "'{'", "'}'", "'->'", "'['", "']'", - "'PRIMARY'", "'KEY'", "':'", "'SELECT'", - "'FROM'", "'ADD'", "'AS'", "'ALL'", - "'ANY'", "'DISTINCT'", "'WHERE'", "'GROUP'", - "'BY'", "'GROUPING'", "'SETS'", "'CUBE'", - "'ROLLUP'", "'ORDER'", "'HAVING'", "'LIMIT'", - "'AT'", "'OR'", "'AND'", "'IN'", null, - "'NO'", "'EXISTS'", "'BETWEEN'", "'LIKE'", - null, "'IS'", "'NULL'", "'TRUE'", "'FALSE'", - "'NULLS'", "'ASC'", "'DESC'", "'FOR'", - "'INTERVAL'", "'CASE'", "'WHEN'", "'THEN'", - "'ELSE'", "'END'", "'JOIN'", "'CROSS'", - "'OUTER'", "'INNER'", "'LEFT'", "'SEMI'", - "'RIGHT'", "'FULL'", "'NATURAL'", "'ON'", - "'PIVOT'", "'LATERAL'", "'WINDOW'", - "'OVER'", "'PARTITION'", "'RANGE'", - "'ROWS'", "'UNBOUNDED'", "'PRECEDING'", - "'FOLLOWING'", "'CURRENT'", "'FIRST'", - "'AFTER'", "'LAST'", "'ROW'", "'WITH'", - "'VALUES'", "'CREATE'", "'TABLE'", "'DIRECTORY'", - "'VIEW'", "'REPLACE'", "'INSERT'", "'DELETE'", - "'INTO'", "'DESCRIBE'", "'EXPLAIN'", - "'FORMAT'", "'LOGICAL'", "'CODEGEN'", - "'COST'", "'CAST'", "'SHOW'", "'TABLES'", - "'COLUMNS'", "'COLUMN'", "'USE'", "'PARTITIONS'", - "'FUNCTIONS'", "'DROP'", "'UNION'", - "'EXCEPT'", "'MINUS'", "'INTERSECT'", - "'TO'", "'TABLESAMPLE'", "'STRATIFY'", - "'ALTER'", "'RENAME'", "'ARRAY'", "'MAP'", - "'STRUCT'", "'COMMENT'", "'SET'", "'RESET'", - "'DATA'", "'START'", "'TRANSACTION'", - "'COMMIT'", "'ROLLBACK'", "'MACRO'", - "'IGNORE'", "'BOTH'", "'LEADING'", "'TRAILING'", - "'IF'", "'POSITION'", "'EXTRACT'", null, - "'<=>'", "'<>'", "'!='", "'<'", null, - "'>'", null, "'+'", "'-'", "'*'", "'/'", - "'%'", "'DIV'", "'~'", "'&'", "'|'", - "'||'", "'^'", "'PERCENT'", "'BUCKET'", - "'OUT'", "'OF'", "'SORT'", "'CLUSTER'", - "'DISTRIBUTE'", "'OVERWRITE'", "'TRANSFORM'", - "'REDUCE'", "'USING'", "'SERDE'", "'SERDEPROPERTIES'", - "'RECORDREADER'", "'RECORDWRITER'", - "'DELIMITED'", "'FIELDS'", "'TERMINATED'", - "'COLLECTION'", "'ITEMS'", "'KEYS'", - "'ESCAPED'", "'LINES'", "'SEPARATED'", - "'FUNCTION'", "'EXTENDED'", "'REFRESH'", - "'CLEAR'", "'CACHE'", "'UNCACHE'", "'LAZY'", - "'FORMATTED'", "'GLOBAL'", null, "'OPTIONS'", - "'UNSET'", "'TBLPROPERTIES'", "'DBPROPERTIES'", - "'BUCKETS'", "'SKEWED'", "'STORED'", - "'DIRECTORIES'", "'LOCATION'", "'EXCHANGE'", - "'ARCHIVE'", "'UNARCHIVE'", "'FILEFORMAT'", - "'TOUCH'", "'COMPACT'", "'CONCATENATE'", - "'CHANGE'", "'CASCADE'", "'RESTRICT'", - "'CLUSTERED'", "'SORTED'", "'PURGE'", - "'INPUTFORMAT'", "'OUTPUTFORMAT'", null, - null, "'DFS'", "'TRUNCATE'", "'ANALYZE'", - "'COMPUTE'", "'LIST'", "'STATISTICS'", - "'PARTITIONED'", "'EXTERNAL'", "'DEFINED'", - "'REVOKE'", "'GRANT'", "'LOCK'", "'UNLOCK'", - "'MSCK'", "'REPAIR'", "'RECOVER'", "'EXPORT'", - "'IMPORT'", "'LOAD'", "'ROLE'", "'ROLES'", - "'COMPACTIONS'", "'PRINCIPALS'", "'TRANSACTIONS'", - "'INDEX'", "'INDEXES'", "'LOCKS'", "'OPTION'", - "'ANTI'", "'LOCAL'", "'INPATH'", "'WATERMARK'", - "'UNNEST'", "'MATCH_RECOGNIZE'", "'MEASURES'", - "'ONE'", "'PER'", "'MATCH'", "'SKIP'", - "'NEXT'", "'PAST'", "'PATTERN'", "'WITHIN'", - "'DEFINE'", null, null, null, null, - null, null, null, null, null, null, - null, "'/**/'" ]; - -sqlLexer.prototype.symbolicNames = [ null, null, null, null, null, null, - null, null, null, null, null, null, - null, null, null, null, null, null, - null, "SELECT", "FROM", "ADD", "AS", - "ALL", "ANY", "DISTINCT", "WHERE", - "GROUP", "BY", "GROUPING", "SETS", - "CUBE", "ROLLUP", "ORDER", "HAVING", - "LIMIT", "AT", "OR", "AND", "IN", "NOT", - "NO", "EXISTS", "BETWEEN", "LIKE", - "RLIKE", "IS", "NULL", "TRUE", "FALSE", - "NULLS", "ASC", "DESC", "FOR", "INTERVAL", - "CASE", "WHEN", "THEN", "ELSE", "END", - "JOIN", "CROSS", "OUTER", "INNER", - "LEFT", "SEMI", "RIGHT", "FULL", "NATURAL", - "ON", "PIVOT", "LATERAL", "WINDOW", - "OVER", "PARTITION", "RANGE", "ROWS", - "UNBOUNDED", "PRECEDING", "FOLLOWING", - "CURRENT", "FIRST", "AFTER", "LAST", - "ROW", "WITH", "VALUES", "CREATE", - "TABLE", "DIRECTORY", "VIEW", "REPLACE", - "INSERT", "DELETE", "INTO", "DESCRIBE", - "EXPLAIN", "FORMAT", "LOGICAL", "CODEGEN", - "COST", "CAST", "SHOW", "TABLES", "COLUMNS", - "COLUMN", "USE", "PARTITIONS", "FUNCTIONS", - "DROP", "UNION", "EXCEPT", "SETMINUS", - "INTERSECT", "TO", "TABLESAMPLE", "STRATIFY", - "ALTER", "RENAME", "ARRAY", "MAP", - "STRUCT", "COMMENT", "SET", "RESET", - "DATA", "START", "TRANSACTION", "COMMIT", - "ROLLBACK", "MACRO", "IGNORE", "BOTH", - "LEADING", "TRAILING", "IF", "POSITION", - "EXTRACT", "EQ", "NSEQ", "NEQ", "NEQJ", - "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", - "ASTERISK", "SLASH", "PERCENT", "DIV", - "TILDE", "AMPERSAND", "PIPE", "CONCAT_PIPE", - "HAT", "PERCENTLIT", "BUCKET", "OUT", - "OF", "SORT", "CLUSTER", "DISTRIBUTE", - "OVERWRITE", "TRANSFORM", "REDUCE", - "USING", "SERDE", "SERDEPROPERTIES", - "RECORDREADER", "RECORDWRITER", "DELIMITED", - "FIELDS", "TERMINATED", "COLLECTION", - "ITEMS", "KEYS", "ESCAPED", "LINES", - "SEPARATED", "FUNCTION", "EXTENDED", - "REFRESH", "CLEAR", "CACHE", "UNCACHE", - "LAZY", "FORMATTED", "GLOBAL", "TEMPORARY", - "OPTIONS", "UNSET", "TBLPROPERTIES", - "DBPROPERTIES", "BUCKETS", "SKEWED", - "STORED", "DIRECTORIES", "LOCATION", - "EXCHANGE", "ARCHIVE", "UNARCHIVE", - "FILEFORMAT", "TOUCH", "COMPACT", "CONCATENATE", - "CHANGE", "CASCADE", "RESTRICT", "CLUSTERED", - "SORTED", "PURGE", "INPUTFORMAT", "OUTPUTFORMAT", - "DATABASE", "DATABASES", "DFS", "TRUNCATE", - "ANALYZE", "COMPUTE", "LIST", "STATISTICS", - "PARTITIONED", "EXTERNAL", "DEFINED", - "REVOKE", "GRANT", "LOCK", "UNLOCK", - "MSCK", "REPAIR", "RECOVER", "EXPORT", - "IMPORT", "LOAD", "ROLE", "ROLES", - "COMPACTIONS", "PRINCIPALS", "TRANSACTIONS", - "INDEX", "INDEXES", "LOCKS", "OPTION", - "ANTI", "LOCAL", "INPATH", "WATERMARK", - "UNNEST", "MATCH_RECOGNIZE", "MEASURES", - "ONE", "PER", "MATCH", "SKIP1", "NEXT", - "PAST", "PATTERN", "WITHIN", "DEFINE", - "STRING", "BIGINT_LITERAL", "SMALLINT_LITERAL", - "TINYINT_LITERAL", "INTEGER_VALUE", - "DECIMAL_VALUE", "DOUBLE_LITERAL", - "BIGDECIMAL_LITERAL", "IDENTIFIER", - "BACKQUOTED_IDENTIFIER", "SIMPLE_COMMENT", - "BRACKETED_EMPTY_COMMENT", "BRACKETED_COMMENT", - "WS", "UNRECOGNIZED" ]; - -sqlLexer.prototype.ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", - "T__5", "T__6", "T__7", "T__8", "T__9", - "T__10", "T__11", "T__12", "T__13", "T__14", - "T__15", "T__16", "T__17", "SELECT", "FROM", - "ADD", "AS", "ALL", "ANY", "DISTINCT", - "WHERE", "GROUP", "BY", "GROUPING", "SETS", - "CUBE", "ROLLUP", "ORDER", "HAVING", "LIMIT", - "AT", "OR", "AND", "IN", "NOT", "NO", "EXISTS", - "BETWEEN", "LIKE", "RLIKE", "IS", "NULL", - "TRUE", "FALSE", "NULLS", "ASC", "DESC", - "FOR", "INTERVAL", "CASE", "WHEN", "THEN", - "ELSE", "END", "JOIN", "CROSS", "OUTER", - "INNER", "LEFT", "SEMI", "RIGHT", "FULL", - "NATURAL", "ON", "PIVOT", "LATERAL", "WINDOW", - "OVER", "PARTITION", "RANGE", "ROWS", "UNBOUNDED", - "PRECEDING", "FOLLOWING", "CURRENT", "FIRST", - "AFTER", "LAST", "ROW", "WITH", "VALUES", - "CREATE", "TABLE", "DIRECTORY", "VIEW", - "REPLACE", "INSERT", "DELETE", "INTO", - "DESCRIBE", "EXPLAIN", "FORMAT", "LOGICAL", - "CODEGEN", "COST", "CAST", "SHOW", "TABLES", - "COLUMNS", "COLUMN", "USE", "PARTITIONS", - "FUNCTIONS", "DROP", "UNION", "EXCEPT", - "SETMINUS", "INTERSECT", "TO", "TABLESAMPLE", - "STRATIFY", "ALTER", "RENAME", "ARRAY", - "MAP", "STRUCT", "COMMENT", "SET", "RESET", - "DATA", "START", "TRANSACTION", "COMMIT", - "ROLLBACK", "MACRO", "IGNORE", "BOTH", - "LEADING", "TRAILING", "IF", "POSITION", - "EXTRACT", "EQ", "NSEQ", "NEQ", "NEQJ", - "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", - "ASTERISK", "SLASH", "PERCENT", "DIV", - "TILDE", "AMPERSAND", "PIPE", "CONCAT_PIPE", - "HAT", "PERCENTLIT", "BUCKET", "OUT", "OF", - "SORT", "CLUSTER", "DISTRIBUTE", "OVERWRITE", - "TRANSFORM", "REDUCE", "USING", "SERDE", - "SERDEPROPERTIES", "RECORDREADER", "RECORDWRITER", - "DELIMITED", "FIELDS", "TERMINATED", "COLLECTION", - "ITEMS", "KEYS", "ESCAPED", "LINES", "SEPARATED", - "FUNCTION", "EXTENDED", "REFRESH", "CLEAR", - "CACHE", "UNCACHE", "LAZY", "FORMATTED", - "GLOBAL", "TEMPORARY", "OPTIONS", "UNSET", - "TBLPROPERTIES", "DBPROPERTIES", "BUCKETS", - "SKEWED", "STORED", "DIRECTORIES", "LOCATION", - "EXCHANGE", "ARCHIVE", "UNARCHIVE", "FILEFORMAT", - "TOUCH", "COMPACT", "CONCATENATE", "CHANGE", - "CASCADE", "RESTRICT", "CLUSTERED", "SORTED", - "PURGE", "INPUTFORMAT", "OUTPUTFORMAT", - "DATABASE", "DATABASES", "DFS", "TRUNCATE", - "ANALYZE", "COMPUTE", "LIST", "STATISTICS", - "PARTITIONED", "EXTERNAL", "DEFINED", "REVOKE", - "GRANT", "LOCK", "UNLOCK", "MSCK", "REPAIR", - "RECOVER", "EXPORT", "IMPORT", "LOAD", - "ROLE", "ROLES", "COMPACTIONS", "PRINCIPALS", - "TRANSACTIONS", "INDEX", "INDEXES", "LOCKS", - "OPTION", "ANTI", "LOCAL", "INPATH", "WATERMARK", - "UNNEST", "MATCH_RECOGNIZE", "MEASURES", - "ONE", "PER", "MATCH", "SKIP1", "NEXT", - "PAST", "PATTERN", "WITHIN", "DEFINE", - "STRING", "BIGINT_LITERAL", "SMALLINT_LITERAL", - "TINYINT_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE", - "DOUBLE_LITERAL", "BIGDECIMAL_LITERAL", - "IDENTIFIER", "BACKQUOTED_IDENTIFIER", - "DECIMAL_DIGITS", "EXPONENT", "DIGIT", - "LETTER", "SIMPLE_COMMENT", "BRACKETED_EMPTY_COMMENT", - "BRACKETED_COMMENT", "WS", "UNRECOGNIZED" ]; - -sqlLexer.prototype.grammarFileName = "sql.g4"; - - - /** - * When false, INTERSECT is given the greater precedence over the other set - * operations (UNION, EXCEPT and MINUS) as per the SQL standard. - */ - sqlLexer.prototype.legacy_setops_precedence_enbled = false; - - /** - * Verify whether current token is a valid decimal token (which contains dot). - * Returns true if the character that follows the token is not a digit or letter or underscore. - * - * For example: - * For char stream "2.3", "2." is not a valid decimal token, because it is followed by digit '3'. - * For char stream "2.3_", "2.3" is not a valid decimal token, because it is followed by '_'. - * For char stream "2.3W", "2.3" is not a valid decimal token, because it is followed by 'W'. - * For char stream "12.0D 34.E2+0.12 " 12.0D is a valid decimal token because it is followed - * by a space. 34.E2 is a valid decimal token because it is followed by symbol '+' - * which is not a digit or letter or underscore. - */ - sqlLexer.prototype.isValidDecimal=function() { - var nextChar = this._input.LA(1); - if (nextChar >= 'A' && nextChar <= 'Z' || nextChar >= '0' && nextChar <= '9' || - nextChar == '_') { - return false; - } else { - return true; - } - } - - -sqlLexer.prototype.sempred = function(localctx, ruleIndex, predIndex) { - switch (ruleIndex) { - case 265: - return this.DECIMAL_VALUE_sempred(localctx, predIndex); - case 266: - return this.DOUBLE_LITERAL_sempred(localctx, predIndex); - case 267: - return this.BIGDECIMAL_LITERAL_sempred(localctx, predIndex); - default: - throw "No registered predicate for:" + ruleIndex; - } -}; - -sqlLexer.prototype.DECIMAL_VALUE_sempred = function(localctx, predIndex) { - switch(predIndex) { - case 0: - return this.isValidDecimal(); - default: - throw "No predicate with index:" + predIndex; - } -}; - -sqlLexer.prototype.DOUBLE_LITERAL_sempred = function(localctx, predIndex) { - switch(predIndex) { - case 1: - return this.isValidDecimal(); - default: - throw "No predicate with index:" + predIndex; - } -}; - -sqlLexer.prototype.BIGDECIMAL_LITERAL_sempred = function(localctx, predIndex) { - switch(predIndex) { - case 2: - return this.isValidDecimal(); - default: - throw "No predicate with index:" + predIndex; - } -}; - - - -exports.sqlLexer = sqlLexer; - diff --git a/src/antlr4/flinksql/sqlListener.js b/src/antlr4/flinksql/sqlListener.js deleted file mode 100644 index 5682d65..0000000 --- a/src/antlr4/flinksql/sqlListener.js +++ /dev/null @@ -1,1986 +0,0 @@ -// Generated from ./grammar/sql.g4 by ANTLR 4.7.1 -// jshint ignore: start -var antlr4 = require('antlr4/index'); - -// This class defines a complete listener for a parse tree produced by sqlParser. -function sqlListener() { - antlr4.tree.ParseTreeListener.call(this); - return this; -} - -sqlListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); -sqlListener.prototype.constructor = sqlListener; - -// Enter a parse tree produced by sqlParser#singleStatement. -sqlListener.prototype.enterSingleStatement = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#singleStatement. -sqlListener.prototype.exitSingleStatement = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#singleExpression. -sqlListener.prototype.enterSingleExpression = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#singleExpression. -sqlListener.prototype.exitSingleExpression = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#singleTableIdentifier. -sqlListener.prototype.enterSingleTableIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#singleTableIdentifier. -sqlListener.prototype.exitSingleTableIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#singleFunctionIdentifier. -sqlListener.prototype.enterSingleFunctionIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#singleFunctionIdentifier. -sqlListener.prototype.exitSingleFunctionIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#singleDataType. -sqlListener.prototype.enterSingleDataType = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#singleDataType. -sqlListener.prototype.exitSingleDataType = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#singleTableSchema. -sqlListener.prototype.enterSingleTableSchema = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#singleTableSchema. -sqlListener.prototype.exitSingleTableSchema = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#statementDefault. -sqlListener.prototype.enterStatementDefault = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#statementDefault. -sqlListener.prototype.exitStatementDefault = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#use. -sqlListener.prototype.enterUse = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#use. -sqlListener.prototype.exitUse = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createDatabase. -sqlListener.prototype.enterCreateDatabase = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createDatabase. -sqlListener.prototype.exitCreateDatabase = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#setDatabaseProperties. -sqlListener.prototype.enterSetDatabaseProperties = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#setDatabaseProperties. -sqlListener.prototype.exitSetDatabaseProperties = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#dropDatabase. -sqlListener.prototype.enterDropDatabase = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#dropDatabase. -sqlListener.prototype.exitDropDatabase = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createTable. -sqlListener.prototype.enterCreateTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createTable. -sqlListener.prototype.exitCreateTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createHiveTable. -sqlListener.prototype.enterCreateHiveTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createHiveTable. -sqlListener.prototype.exitCreateHiveTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createFlinkTable. -sqlListener.prototype.enterCreateFlinkTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createFlinkTable. -sqlListener.prototype.exitCreateFlinkTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createTableLike. -sqlListener.prototype.enterCreateTableLike = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createTableLike. -sqlListener.prototype.exitCreateTableLike = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#analyze. -sqlListener.prototype.enterAnalyze = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#analyze. -sqlListener.prototype.exitAnalyze = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#addTableColumns. -sqlListener.prototype.enterAddTableColumns = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#addTableColumns. -sqlListener.prototype.exitAddTableColumns = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#renameTable. -sqlListener.prototype.enterRenameTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#renameTable. -sqlListener.prototype.exitRenameTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#setTableProperties. -sqlListener.prototype.enterSetTableProperties = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#setTableProperties. -sqlListener.prototype.exitSetTableProperties = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#unsetTableProperties. -sqlListener.prototype.enterUnsetTableProperties = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#unsetTableProperties. -sqlListener.prototype.exitUnsetTableProperties = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#changeColumn. -sqlListener.prototype.enterChangeColumn = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#changeColumn. -sqlListener.prototype.exitChangeColumn = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#setTableSerDe. -sqlListener.prototype.enterSetTableSerDe = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#setTableSerDe. -sqlListener.prototype.exitSetTableSerDe = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#addTablePartition. -sqlListener.prototype.enterAddTablePartition = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#addTablePartition. -sqlListener.prototype.exitAddTablePartition = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#renameTablePartition. -sqlListener.prototype.enterRenameTablePartition = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#renameTablePartition. -sqlListener.prototype.exitRenameTablePartition = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#dropTablePartitions. -sqlListener.prototype.enterDropTablePartitions = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#dropTablePartitions. -sqlListener.prototype.exitDropTablePartitions = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#setTableLocation. -sqlListener.prototype.enterSetTableLocation = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#setTableLocation. -sqlListener.prototype.exitSetTableLocation = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#recoverPartitions. -sqlListener.prototype.enterRecoverPartitions = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#recoverPartitions. -sqlListener.prototype.exitRecoverPartitions = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#dropTable. -sqlListener.prototype.enterDropTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#dropTable. -sqlListener.prototype.exitDropTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createView. -sqlListener.prototype.enterCreateView = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createView. -sqlListener.prototype.exitCreateView = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createTempViewUsing. -sqlListener.prototype.enterCreateTempViewUsing = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createTempViewUsing. -sqlListener.prototype.exitCreateTempViewUsing = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#alterViewQuery. -sqlListener.prototype.enterAlterViewQuery = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#alterViewQuery. -sqlListener.prototype.exitAlterViewQuery = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createFunction. -sqlListener.prototype.enterCreateFunction = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createFunction. -sqlListener.prototype.exitCreateFunction = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#dropFunction. -sqlListener.prototype.enterDropFunction = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#dropFunction. -sqlListener.prototype.exitDropFunction = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#explain. -sqlListener.prototype.enterExplain = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#explain. -sqlListener.prototype.exitExplain = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#showTables. -sqlListener.prototype.enterShowTables = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#showTables. -sqlListener.prototype.exitShowTables = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#showTable. -sqlListener.prototype.enterShowTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#showTable. -sqlListener.prototype.exitShowTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#showDatabases. -sqlListener.prototype.enterShowDatabases = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#showDatabases. -sqlListener.prototype.exitShowDatabases = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#showTblProperties. -sqlListener.prototype.enterShowTblProperties = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#showTblProperties. -sqlListener.prototype.exitShowTblProperties = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#showColumns. -sqlListener.prototype.enterShowColumns = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#showColumns. -sqlListener.prototype.exitShowColumns = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#showPartitions. -sqlListener.prototype.enterShowPartitions = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#showPartitions. -sqlListener.prototype.exitShowPartitions = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#showFunctions. -sqlListener.prototype.enterShowFunctions = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#showFunctions. -sqlListener.prototype.exitShowFunctions = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#showCreateTable. -sqlListener.prototype.enterShowCreateTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#showCreateTable. -sqlListener.prototype.exitShowCreateTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#describeFunction. -sqlListener.prototype.enterDescribeFunction = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#describeFunction. -sqlListener.prototype.exitDescribeFunction = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#describeDatabase. -sqlListener.prototype.enterDescribeDatabase = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#describeDatabase. -sqlListener.prototype.exitDescribeDatabase = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#describeTable. -sqlListener.prototype.enterDescribeTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#describeTable. -sqlListener.prototype.exitDescribeTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#refreshTable. -sqlListener.prototype.enterRefreshTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#refreshTable. -sqlListener.prototype.exitRefreshTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#refreshResource. -sqlListener.prototype.enterRefreshResource = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#refreshResource. -sqlListener.prototype.exitRefreshResource = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#cacheTable. -sqlListener.prototype.enterCacheTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#cacheTable. -sqlListener.prototype.exitCacheTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#uncacheTable. -sqlListener.prototype.enterUncacheTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#uncacheTable. -sqlListener.prototype.exitUncacheTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#clearCache. -sqlListener.prototype.enterClearCache = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#clearCache. -sqlListener.prototype.exitClearCache = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#loadData. -sqlListener.prototype.enterLoadData = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#loadData. -sqlListener.prototype.exitLoadData = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#truncateTable. -sqlListener.prototype.enterTruncateTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#truncateTable. -sqlListener.prototype.exitTruncateTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#repairTable. -sqlListener.prototype.enterRepairTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#repairTable. -sqlListener.prototype.exitRepairTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#manageResource. -sqlListener.prototype.enterManageResource = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#manageResource. -sqlListener.prototype.exitManageResource = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#failNativeCommand. -sqlListener.prototype.enterFailNativeCommand = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#failNativeCommand. -sqlListener.prototype.exitFailNativeCommand = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#setConfiguration. -sqlListener.prototype.enterSetConfiguration = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#setConfiguration. -sqlListener.prototype.exitSetConfiguration = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#resetConfiguration. -sqlListener.prototype.enterResetConfiguration = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#resetConfiguration. -sqlListener.prototype.exitResetConfiguration = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#unsupportedHiveNativeCommands. -sqlListener.prototype.enterUnsupportedHiveNativeCommands = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#unsupportedHiveNativeCommands. -sqlListener.prototype.exitUnsupportedHiveNativeCommands = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createTableHeader. -sqlListener.prototype.enterCreateTableHeader = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createTableHeader. -sqlListener.prototype.exitCreateTableHeader = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#bucketSpec. -sqlListener.prototype.enterBucketSpec = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#bucketSpec. -sqlListener.prototype.exitBucketSpec = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#skewSpec. -sqlListener.prototype.enterSkewSpec = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#skewSpec. -sqlListener.prototype.exitSkewSpec = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#locationSpec. -sqlListener.prototype.enterLocationSpec = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#locationSpec. -sqlListener.prototype.exitLocationSpec = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#query. -sqlListener.prototype.enterQuery = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#query. -sqlListener.prototype.exitQuery = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#insertOverwriteTable. -sqlListener.prototype.enterInsertOverwriteTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#insertOverwriteTable. -sqlListener.prototype.exitInsertOverwriteTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#insertIntoTable. -sqlListener.prototype.enterInsertIntoTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#insertIntoTable. -sqlListener.prototype.exitInsertIntoTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#insertOverwriteHiveDir. -sqlListener.prototype.enterInsertOverwriteHiveDir = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#insertOverwriteHiveDir. -sqlListener.prototype.exitInsertOverwriteHiveDir = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#insertOverwriteDir. -sqlListener.prototype.enterInsertOverwriteDir = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#insertOverwriteDir. -sqlListener.prototype.exitInsertOverwriteDir = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#partitionSpecLocation. -sqlListener.prototype.enterPartitionSpecLocation = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#partitionSpecLocation. -sqlListener.prototype.exitPartitionSpecLocation = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#partitionSpec. -sqlListener.prototype.enterPartitionSpec = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#partitionSpec. -sqlListener.prototype.exitPartitionSpec = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#partitionVal. -sqlListener.prototype.enterPartitionVal = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#partitionVal. -sqlListener.prototype.exitPartitionVal = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#describeFuncName. -sqlListener.prototype.enterDescribeFuncName = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#describeFuncName. -sqlListener.prototype.exitDescribeFuncName = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#describeColName. -sqlListener.prototype.enterDescribeColName = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#describeColName. -sqlListener.prototype.exitDescribeColName = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#ctes. -sqlListener.prototype.enterCtes = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#ctes. -sqlListener.prototype.exitCtes = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#namedQuery. -sqlListener.prototype.enterNamedQuery = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#namedQuery. -sqlListener.prototype.exitNamedQuery = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tableProvider. -sqlListener.prototype.enterTableProvider = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tableProvider. -sqlListener.prototype.exitTableProvider = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tablePropertyList. -sqlListener.prototype.enterTablePropertyList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tablePropertyList. -sqlListener.prototype.exitTablePropertyList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tableProperty. -sqlListener.prototype.enterTableProperty = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tableProperty. -sqlListener.prototype.exitTableProperty = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tablePropertyKey. -sqlListener.prototype.enterTablePropertyKey = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tablePropertyKey. -sqlListener.prototype.exitTablePropertyKey = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tablePropertyValue. -sqlListener.prototype.enterTablePropertyValue = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tablePropertyValue. -sqlListener.prototype.exitTablePropertyValue = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#constantList. -sqlListener.prototype.enterConstantList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#constantList. -sqlListener.prototype.exitConstantList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#nestedConstantList. -sqlListener.prototype.enterNestedConstantList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#nestedConstantList. -sqlListener.prototype.exitNestedConstantList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#createFileFormat. -sqlListener.prototype.enterCreateFileFormat = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#createFileFormat. -sqlListener.prototype.exitCreateFileFormat = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tableFileFormat. -sqlListener.prototype.enterTableFileFormat = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tableFileFormat. -sqlListener.prototype.exitTableFileFormat = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#genericFileFormat. -sqlListener.prototype.enterGenericFileFormat = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#genericFileFormat. -sqlListener.prototype.exitGenericFileFormat = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#storageHandler. -sqlListener.prototype.enterStorageHandler = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#storageHandler. -sqlListener.prototype.exitStorageHandler = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#resource. -sqlListener.prototype.enterResource = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#resource. -sqlListener.prototype.exitResource = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#singleInsertQuery. -sqlListener.prototype.enterSingleInsertQuery = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#singleInsertQuery. -sqlListener.prototype.exitSingleInsertQuery = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#multiInsertQuery. -sqlListener.prototype.enterMultiInsertQuery = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#multiInsertQuery. -sqlListener.prototype.exitMultiInsertQuery = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#queryOrganization. -sqlListener.prototype.enterQueryOrganization = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#queryOrganization. -sqlListener.prototype.exitQueryOrganization = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#multiInsertQueryBody. -sqlListener.prototype.enterMultiInsertQueryBody = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#multiInsertQueryBody. -sqlListener.prototype.exitMultiInsertQueryBody = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#queryTermDefault. -sqlListener.prototype.enterQueryTermDefault = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#queryTermDefault. -sqlListener.prototype.exitQueryTermDefault = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#setOperation. -sqlListener.prototype.enterSetOperation = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#setOperation. -sqlListener.prototype.exitSetOperation = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#queryPrimaryDefault. -sqlListener.prototype.enterQueryPrimaryDefault = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#queryPrimaryDefault. -sqlListener.prototype.exitQueryPrimaryDefault = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#table. -sqlListener.prototype.enterTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#table. -sqlListener.prototype.exitTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#inlineTableDefault1. -sqlListener.prototype.enterInlineTableDefault1 = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#inlineTableDefault1. -sqlListener.prototype.exitInlineTableDefault1 = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#subquery. -sqlListener.prototype.enterSubquery = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#subquery. -sqlListener.prototype.exitSubquery = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#sortItem. -sqlListener.prototype.enterSortItem = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#sortItem. -sqlListener.prototype.exitSortItem = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#querySpecification. -sqlListener.prototype.enterQuerySpecification = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#querySpecification. -sqlListener.prototype.exitQuerySpecification = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#hint. -sqlListener.prototype.enterHint = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#hint. -sqlListener.prototype.exitHint = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#hintStatement. -sqlListener.prototype.enterHintStatement = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#hintStatement. -sqlListener.prototype.exitHintStatement = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#fromClause. -sqlListener.prototype.enterFromClause = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#fromClause. -sqlListener.prototype.exitFromClause = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#aggregation. -sqlListener.prototype.enterAggregation = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#aggregation. -sqlListener.prototype.exitAggregation = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#groupingSet. -sqlListener.prototype.enterGroupingSet = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#groupingSet. -sqlListener.prototype.exitGroupingSet = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#pivotClause. -sqlListener.prototype.enterPivotClause = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#pivotClause. -sqlListener.prototype.exitPivotClause = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#pivotColumn. -sqlListener.prototype.enterPivotColumn = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#pivotColumn. -sqlListener.prototype.exitPivotColumn = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#pivotValue. -sqlListener.prototype.enterPivotValue = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#pivotValue. -sqlListener.prototype.exitPivotValue = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#lateralView. -sqlListener.prototype.enterLateralView = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#lateralView. -sqlListener.prototype.exitLateralView = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#setQuantifier. -sqlListener.prototype.enterSetQuantifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#setQuantifier. -sqlListener.prototype.exitSetQuantifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#relation. -sqlListener.prototype.enterRelation = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#relation. -sqlListener.prototype.exitRelation = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#joinRelation. -sqlListener.prototype.enterJoinRelation = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#joinRelation. -sqlListener.prototype.exitJoinRelation = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#joinType. -sqlListener.prototype.enterJoinType = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#joinType. -sqlListener.prototype.exitJoinType = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#joinCriteria. -sqlListener.prototype.enterJoinCriteria = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#joinCriteria. -sqlListener.prototype.exitJoinCriteria = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#sample. -sqlListener.prototype.enterSample = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#sample. -sqlListener.prototype.exitSample = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#sampleByPercentile. -sqlListener.prototype.enterSampleByPercentile = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#sampleByPercentile. -sqlListener.prototype.exitSampleByPercentile = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#sampleByRows. -sqlListener.prototype.enterSampleByRows = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#sampleByRows. -sqlListener.prototype.exitSampleByRows = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#sampleByBucket. -sqlListener.prototype.enterSampleByBucket = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#sampleByBucket. -sqlListener.prototype.exitSampleByBucket = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#sampleByBytes. -sqlListener.prototype.enterSampleByBytes = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#sampleByBytes. -sqlListener.prototype.exitSampleByBytes = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#identifierList. -sqlListener.prototype.enterIdentifierList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#identifierList. -sqlListener.prototype.exitIdentifierList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#identifierSeq. -sqlListener.prototype.enterIdentifierSeq = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#identifierSeq. -sqlListener.prototype.exitIdentifierSeq = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#orderedIdentifierList. -sqlListener.prototype.enterOrderedIdentifierList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#orderedIdentifierList. -sqlListener.prototype.exitOrderedIdentifierList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#orderedIdentifier. -sqlListener.prototype.enterOrderedIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#orderedIdentifier. -sqlListener.prototype.exitOrderedIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#identifierCommentList. -sqlListener.prototype.enterIdentifierCommentList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#identifierCommentList. -sqlListener.prototype.exitIdentifierCommentList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#identifierComment. -sqlListener.prototype.enterIdentifierComment = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#identifierComment. -sqlListener.prototype.exitIdentifierComment = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tableName. -sqlListener.prototype.enterTableName = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tableName. -sqlListener.prototype.exitTableName = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#aliasedQuery. -sqlListener.prototype.enterAliasedQuery = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#aliasedQuery. -sqlListener.prototype.exitAliasedQuery = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#aliasedRelation. -sqlListener.prototype.enterAliasedRelation = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#aliasedRelation. -sqlListener.prototype.exitAliasedRelation = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#inlineTableDefault2. -sqlListener.prototype.enterInlineTableDefault2 = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#inlineTableDefault2. -sqlListener.prototype.exitInlineTableDefault2 = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tableValuedFunction. -sqlListener.prototype.enterTableValuedFunction = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tableValuedFunction. -sqlListener.prototype.exitTableValuedFunction = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#matchRecognize. -sqlListener.prototype.enterMatchRecognize = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#matchRecognize. -sqlListener.prototype.exitMatchRecognize = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#measureColumn. -sqlListener.prototype.enterMeasureColumn = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#measureColumn. -sqlListener.prototype.exitMeasureColumn = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#condition1. -sqlListener.prototype.enterCondition1 = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#condition1. -sqlListener.prototype.exitCondition1 = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#variable. -sqlListener.prototype.enterVariable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#variable. -sqlListener.prototype.exitVariable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#pattern1. -sqlListener.prototype.enterPattern1 = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#pattern1. -sqlListener.prototype.exitPattern1 = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#patternTerm. -sqlListener.prototype.enterPatternTerm = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#patternTerm. -sqlListener.prototype.exitPatternTerm = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#patternFactor. -sqlListener.prototype.enterPatternFactor = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#patternFactor. -sqlListener.prototype.exitPatternFactor = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#patternQuantifier. -sqlListener.prototype.enterPatternQuantifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#patternQuantifier. -sqlListener.prototype.exitPatternQuantifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#minRepeat. -sqlListener.prototype.enterMinRepeat = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#minRepeat. -sqlListener.prototype.exitMinRepeat = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#maxRepeat. -sqlListener.prototype.enterMaxRepeat = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#maxRepeat. -sqlListener.prototype.exitMaxRepeat = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#repeat. -sqlListener.prototype.enterRepeat = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#repeat. -sqlListener.prototype.exitRepeat = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#inlineTable. -sqlListener.prototype.enterInlineTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#inlineTable. -sqlListener.prototype.exitInlineTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#functionTable. -sqlListener.prototype.enterFunctionTable = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#functionTable. -sqlListener.prototype.exitFunctionTable = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tableAlias. -sqlListener.prototype.enterTableAlias = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tableAlias. -sqlListener.prototype.exitTableAlias = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#rowFormatSerde. -sqlListener.prototype.enterRowFormatSerde = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#rowFormatSerde. -sqlListener.prototype.exitRowFormatSerde = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#rowFormatDelimited. -sqlListener.prototype.enterRowFormatDelimited = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#rowFormatDelimited. -sqlListener.prototype.exitRowFormatDelimited = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tableIdentifier. -sqlListener.prototype.enterTableIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tableIdentifier. -sqlListener.prototype.exitTableIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#functionIdentifier. -sqlListener.prototype.enterFunctionIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#functionIdentifier. -sqlListener.prototype.exitFunctionIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#namedExpression. -sqlListener.prototype.enterNamedExpression = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#namedExpression. -sqlListener.prototype.exitNamedExpression = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#namedExpressionSeq. -sqlListener.prototype.enterNamedExpressionSeq = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#namedExpressionSeq. -sqlListener.prototype.exitNamedExpressionSeq = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#expression. -sqlListener.prototype.enterExpression = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#expression. -sqlListener.prototype.exitExpression = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#logicalNot. -sqlListener.prototype.enterLogicalNot = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#logicalNot. -sqlListener.prototype.exitLogicalNot = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#predicated. -sqlListener.prototype.enterPredicated = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#predicated. -sqlListener.prototype.exitPredicated = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#exists. -sqlListener.prototype.enterExists = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#exists. -sqlListener.prototype.exitExists = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#logicalBinary. -sqlListener.prototype.enterLogicalBinary = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#logicalBinary. -sqlListener.prototype.exitLogicalBinary = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#predicate. -sqlListener.prototype.enterPredicate = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#predicate. -sqlListener.prototype.exitPredicate = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#valueExpressionDefault. -sqlListener.prototype.enterValueExpressionDefault = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#valueExpressionDefault. -sqlListener.prototype.exitValueExpressionDefault = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#comparison. -sqlListener.prototype.enterComparison = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#comparison. -sqlListener.prototype.exitComparison = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#arithmeticBinary. -sqlListener.prototype.enterArithmeticBinary = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#arithmeticBinary. -sqlListener.prototype.exitArithmeticBinary = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#arithmeticUnary. -sqlListener.prototype.enterArithmeticUnary = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#arithmeticUnary. -sqlListener.prototype.exitArithmeticUnary = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#struct. -sqlListener.prototype.enterStruct = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#struct. -sqlListener.prototype.exitStruct = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#dereference. -sqlListener.prototype.enterDereference = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#dereference. -sqlListener.prototype.exitDereference = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#simpleCase. -sqlListener.prototype.enterSimpleCase = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#simpleCase. -sqlListener.prototype.exitSimpleCase = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#columnReference. -sqlListener.prototype.enterColumnReference = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#columnReference. -sqlListener.prototype.exitColumnReference = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#rowConstructor. -sqlListener.prototype.enterRowConstructor = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#rowConstructor. -sqlListener.prototype.exitRowConstructor = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#last. -sqlListener.prototype.enterLast = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#last. -sqlListener.prototype.exitLast = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#star. -sqlListener.prototype.enterStar = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#star. -sqlListener.prototype.exitStar = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#subscript. -sqlListener.prototype.enterSubscript = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#subscript. -sqlListener.prototype.exitSubscript = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#subqueryExpression. -sqlListener.prototype.enterSubqueryExpression = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#subqueryExpression. -sqlListener.prototype.exitSubqueryExpression = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#cast. -sqlListener.prototype.enterCast = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#cast. -sqlListener.prototype.exitCast = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#constantDefault. -sqlListener.prototype.enterConstantDefault = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#constantDefault. -sqlListener.prototype.exitConstantDefault = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#lambda. -sqlListener.prototype.enterLambda = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#lambda. -sqlListener.prototype.exitLambda = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#parenthesizedExpression. -sqlListener.prototype.enterParenthesizedExpression = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#parenthesizedExpression. -sqlListener.prototype.exitParenthesizedExpression = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#extract. -sqlListener.prototype.enterExtract = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#extract. -sqlListener.prototype.exitExtract = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#functionCall. -sqlListener.prototype.enterFunctionCall = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#functionCall. -sqlListener.prototype.exitFunctionCall = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#searchedCase. -sqlListener.prototype.enterSearchedCase = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#searchedCase. -sqlListener.prototype.exitSearchedCase = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#position. -sqlListener.prototype.enterPosition = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#position. -sqlListener.prototype.exitPosition = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#first. -sqlListener.prototype.enterFirst = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#first. -sqlListener.prototype.exitFirst = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#nullLiteral. -sqlListener.prototype.enterNullLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#nullLiteral. -sqlListener.prototype.exitNullLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#intervalLiteral. -sqlListener.prototype.enterIntervalLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#intervalLiteral. -sqlListener.prototype.exitIntervalLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#typeConstructor. -sqlListener.prototype.enterTypeConstructor = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#typeConstructor. -sqlListener.prototype.exitTypeConstructor = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#numericLiteral. -sqlListener.prototype.enterNumericLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#numericLiteral. -sqlListener.prototype.exitNumericLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#booleanLiteral. -sqlListener.prototype.enterBooleanLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#booleanLiteral. -sqlListener.prototype.exitBooleanLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#stringLiteral. -sqlListener.prototype.enterStringLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#stringLiteral. -sqlListener.prototype.exitStringLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#comparisonOperator. -sqlListener.prototype.enterComparisonOperator = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#comparisonOperator. -sqlListener.prototype.exitComparisonOperator = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#arithmeticOperator. -sqlListener.prototype.enterArithmeticOperator = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#arithmeticOperator. -sqlListener.prototype.exitArithmeticOperator = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#predicateOperator. -sqlListener.prototype.enterPredicateOperator = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#predicateOperator. -sqlListener.prototype.exitPredicateOperator = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#booleanValue. -sqlListener.prototype.enterBooleanValue = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#booleanValue. -sqlListener.prototype.exitBooleanValue = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#interval. -sqlListener.prototype.enterInterval = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#interval. -sqlListener.prototype.exitInterval = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#intervalField. -sqlListener.prototype.enterIntervalField = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#intervalField. -sqlListener.prototype.exitIntervalField = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#intervalValue. -sqlListener.prototype.enterIntervalValue = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#intervalValue. -sqlListener.prototype.exitIntervalValue = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#colPosition. -sqlListener.prototype.enterColPosition = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#colPosition. -sqlListener.prototype.exitColPosition = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#complexDataType. -sqlListener.prototype.enterComplexDataType = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#complexDataType. -sqlListener.prototype.exitComplexDataType = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#primitiveDataType. -sqlListener.prototype.enterPrimitiveDataType = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#primitiveDataType. -sqlListener.prototype.exitPrimitiveDataType = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#colTypeList. -sqlListener.prototype.enterColTypeList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#colTypeList. -sqlListener.prototype.exitColTypeList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#colType. -sqlListener.prototype.enterColType = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#colType. -sqlListener.prototype.exitColType = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#dtColTypeList. -sqlListener.prototype.enterDtColTypeList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#dtColTypeList. -sqlListener.prototype.exitDtColTypeList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#dtColType. -sqlListener.prototype.enterDtColType = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#dtColType. -sqlListener.prototype.exitDtColType = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#dtColIdentifier. -sqlListener.prototype.enterDtColIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#dtColIdentifier. -sqlListener.prototype.exitDtColIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#complexColTypeList. -sqlListener.prototype.enterComplexColTypeList = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#complexColTypeList. -sqlListener.prototype.exitComplexColTypeList = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#complexColType. -sqlListener.prototype.enterComplexColType = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#complexColType. -sqlListener.prototype.exitComplexColType = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#whenClause. -sqlListener.prototype.enterWhenClause = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#whenClause. -sqlListener.prototype.exitWhenClause = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#windows. -sqlListener.prototype.enterWindows = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#windows. -sqlListener.prototype.exitWindows = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#namedWindow. -sqlListener.prototype.enterNamedWindow = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#namedWindow. -sqlListener.prototype.exitNamedWindow = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#windowRef. -sqlListener.prototype.enterWindowRef = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#windowRef. -sqlListener.prototype.exitWindowRef = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#windowDef. -sqlListener.prototype.enterWindowDef = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#windowDef. -sqlListener.prototype.exitWindowDef = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#windowFrame. -sqlListener.prototype.enterWindowFrame = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#windowFrame. -sqlListener.prototype.exitWindowFrame = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#frameBound. -sqlListener.prototype.enterFrameBound = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#frameBound. -sqlListener.prototype.exitFrameBound = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#qualifiedName. -sqlListener.prototype.enterQualifiedName = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#qualifiedName. -sqlListener.prototype.exitQualifiedName = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#identifier. -sqlListener.prototype.enterIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#identifier. -sqlListener.prototype.exitIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#unquotedIdentifier. -sqlListener.prototype.enterUnquotedIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#unquotedIdentifier. -sqlListener.prototype.exitUnquotedIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#quotedIdentifierAlternative. -sqlListener.prototype.enterQuotedIdentifierAlternative = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#quotedIdentifierAlternative. -sqlListener.prototype.exitQuotedIdentifierAlternative = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#quotedIdentifier. -sqlListener.prototype.enterQuotedIdentifier = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#quotedIdentifier. -sqlListener.prototype.exitQuotedIdentifier = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#decimalLiteral. -sqlListener.prototype.enterDecimalLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#decimalLiteral. -sqlListener.prototype.exitDecimalLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#integerLiteral. -sqlListener.prototype.enterIntegerLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#integerLiteral. -sqlListener.prototype.exitIntegerLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#bigIntLiteral. -sqlListener.prototype.enterBigIntLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#bigIntLiteral. -sqlListener.prototype.exitBigIntLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#smallIntLiteral. -sqlListener.prototype.enterSmallIntLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#smallIntLiteral. -sqlListener.prototype.exitSmallIntLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#tinyIntLiteral. -sqlListener.prototype.enterTinyIntLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#tinyIntLiteral. -sqlListener.prototype.exitTinyIntLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#doubleLiteral. -sqlListener.prototype.enterDoubleLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#doubleLiteral. -sqlListener.prototype.exitDoubleLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#bigDecimalLiteral. -sqlListener.prototype.enterBigDecimalLiteral = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#bigDecimalLiteral. -sqlListener.prototype.exitBigDecimalLiteral = function(ctx) { -}; - - -// Enter a parse tree produced by sqlParser#nonReserved. -sqlListener.prototype.enterNonReserved = function(ctx) { -}; - -// Exit a parse tree produced by sqlParser#nonReserved. -sqlListener.prototype.exitNonReserved = function(ctx) { -}; - - - -exports.sqlListener = sqlListener; \ No newline at end of file diff --git a/src/antlr4/flinksql/sqlParser.js b/src/antlr4/flinksql/sqlParser.js deleted file mode 100644 index b0d0318..0000000 --- a/src/antlr4/flinksql/sqlParser.js +++ /dev/null @@ -1,27462 +0,0 @@ -// Generated from ./grammar/sql.g4 by ANTLR 4.7.1 -// jshint ignore: start -var antlr4 = require('antlr4/index'); -var sqlListener = require('./sqlListener').sqlListener; -var sqlVisitor = require('./sqlVisitor').sqlVisitor; - -var grammarFileName = "sql.g4"; - -var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", - "\u0003\u0115\u0aad\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", - "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", - "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", - "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", - "\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013\u0004\u0014", - "\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017\t\u0017", - "\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a\u0004\u001b", - "\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e\t\u001e", - "\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#\t#\u0004", - "$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004*\t*\u0004", - "+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u00041\t1\u0004", - "2\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u00048\t8\u0004", - "9\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004?\t?\u0004", - "@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004F\tF\u0004", - "G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004M\tM\u0004", - "N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004T\tT\u0004", - "U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004[\t[\u0004", - "\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004b\tb\u0004", - "c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004i\ti\u0004", - "j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004p\tp\u0004", - "q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0003\u0002\u0003\u0002\u0003\u0002", - "\u0003\u0002\u0005\u0002\u00ed\n\u0002\u0003\u0003\u0003\u0003\u0003", - "\u0003\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003", - "\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003", - "\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0005\b\u0106\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u010b\n\b\u0003", - "\b\u0005\b\u010e\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u0113\n\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b\u0120\n\b\u0003\b\u0003\b\u0005\b\u0124\n\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u012b\n\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0007\b\u0139\n\b\f\b\u000e\b\u013c\u000b\b\u0003\b\u0005", - "\b\u013f\n\b\u0003\b\u0005\b\u0142\n\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b\u0149\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0007\b\u015a\n\b\f\b\u000e\b\u015d\u000b\b\u0003\b\u0005", - "\b\u0160\n\b\u0003\b\u0005\b\u0163\n\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b\u016a\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b", - "\u0005\b\u0171\n\b\u0003\b\u0003\b\u0005\b\u0175\n\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u017d\n\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0187\n\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0005\b\u018d\n\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0005\b\u0193\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0005\b\u019e\n\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005", - "\b\u01be\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b", - "\u01c6\n\b\u0003\b\u0003\b\u0005\b\u01ca\n\b\u0003\b\u0003\b\u0003\b", - "\u0005\b\u01cf\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u01d5\n\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u01dd\n\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0005\b\u01e3\n\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005", - "\b\u01f0\n\b\u0003\b\u0006\b\u01f3\n\b\r\b\u000e\b\u01f4\u0003\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u01fe\n\b\u0003\b", - "\u0006\b\u0201\n\b\r\b\u000e\b\u0202\u0003\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b\u0213\n\b\u0003\b\u0003\b\u0003\b\u0007\b\u0218\n", - "\b\f\b\u000e\b\u021b\u000b\b\u0003\b\u0005\b\u021e\n\b\u0003\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0226\n\b\u0003\b\u0003\b", - "\u0003\b\u0007\b\u022b\n\b\f\b\u000e\b\u022e\u000b\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0005\b\u0234\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005", - "\b\u0243\n\b\u0003\b\u0003\b\u0005\b\u0247\n\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b\u024d\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b", - "\u0253\n\b\u0003\b\u0005\b\u0256\n\b\u0003\b\u0005\b\u0259\n\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0005\b\u025f\n\b\u0003\b\u0003\b\u0005\b", - "\u0263\n\b\u0003\b\u0003\b\u0005\b\u0267\n\b\u0003\b\u0003\b\u0003\b", - "\u0005\b\u026c\n\b\u0003\b\u0003\b\u0005\b\u0270\n\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0278\n\b\u0003\b\u0005\b\u027b", - "\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b", - "\u0284\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u0289\n\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0005\b\u028f\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0005\b\u0296\n\b\u0003\b\u0005\b\u0299\n\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b\u029f\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0007\b\u02a8\n\b\f\b\u000e\b\u02ab\u000b\b\u0005\b", - "\u02ad\n\b\u0003\b\u0003\b\u0005\b\u02b1\n\b\u0003\b\u0003\b\u0003\b", - "\u0005\b\u02b6\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u02bb\n\b\u0003\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02c2\n\b\u0003\b\u0005\b\u02c5", - "\n\b\u0003\b\u0005\b\u02c8\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", - "\b\u0005\b\u02cf\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u02d4\n\b\u0003", - "\b\u0003\b\u0003\b\u0005\b\u02d9\n\b\u0003\b\u0005\b\u02dc\n\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02e5\n\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u02ed\n\b\u0003", - "\b\u0003\b\u0003\b\u0003\b\u0005\b\u02f3\n\b\u0003\b\u0003\b\u0005\b", - "\u02f7\n\b\u0003\b\u0003\b\u0005\b\u02fb\n\b\u0003\b\u0003\b\u0005\b", - "\u02ff\n\b\u0005\b\u0301\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0005\b\u030a\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005", - "\b\u0310\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u0315\n\b\u0003\b\u0005", - "\b\u0318\n\b\u0003\b\u0003\b\u0005\b\u031c\n\b\u0003\b\u0005\b\u031f", - "\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0007\b\u0327\n", - "\b\f\b\u000e\b\u032a\u000b\b\u0005\b\u032c\n\b\u0003\b\u0003\b\u0005", - "\b\u0330\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0336\n\b\u0003", - "\b\u0005\b\u0339\n\b\u0003\b\u0005\b\u033c\n\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b\u0342\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0005\b\u034a\n\b\u0003\b\u0003\b\u0003\b\u0005\b\u034f\n\b", - "\u0003\b\u0003\b\u0003\b\u0003\b\u0005\b\u0355\n\b\u0003\b\u0003\b\u0003", - "\b\u0003\b\u0005\b\u035b\n\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b", - "\u0003\b\u0003\b\u0007\b\u0364\n\b\f\b\u000e\b\u0367\u000b\b\u0003\b", - "\u0003\b\u0003\b\u0007\b\u036c\n\b\f\b\u000e\b\u036f\u000b\b\u0003\b", - "\u0003\b\u0007\b\u0373\n\b\f\b\u000e\b\u0376\u000b\b\u0003\b\u0003\b", - "\u0003\b\u0007\b\u037b\n\b\f\b\u000e\b\u037e\u000b\b\u0005\b\u0380\n", - "\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u0388\n\t", - "\u0003\t\u0003\t\u0005\t\u038c\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0005\t\u0393\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t", - "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0005\t\u0407\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t", - "\u0005\t\u040f\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005", - "\t\u0417\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t", - "\u0005\t\u0420\n\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", - "\t\u0003\t\u0003\t\u0003\t\u0005\t\u042c\n\t\u0003\n\u0003\n\u0005\n", - "\u0430\n\n\u0003\n\u0005\n\u0433\n\n\u0003\n\u0003\n\u0003\n\u0003\n", - "\u0005\n\u0439\n\n\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0003\u000b", - "\u0003\u000b\u0003\u000b\u0003\u000b\u0005\u000b\u0443\n\u000b\u0003", - "\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\f\u0003\f\u0003\f\u0003", - "\f\u0003\f\u0003\f\u0005\f\u044f\n\f\u0003\f\u0003\f\u0003\f\u0005\f", - "\u0454\n\f\u0003\r\u0003\r\u0003\r\u0003\u000e\u0005\u000e\u045a\n\u000e", - "\u0003\u000e\u0003\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f", - "\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u0466\n", - "\u000f\u0005\u000f\u0468\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f", - "\u0005\u000f\u046d\n\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u0471", - "\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u0476\n\u000f", - "\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u047b\n\u000f\u0003", - "\u000f\u0005\u000f\u047e\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f", - "\u0005\u000f\u0483\n\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u0487", - "\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u048c\n\u000f", - "\u0005\u000f\u048e\n\u000f\u0003\u0010\u0003\u0010\u0005\u0010\u0492", - "\n\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011", - "\u0007\u0011\u0499\n\u0011\f\u0011\u000e\u0011\u049c\u000b\u0011\u0003", - "\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0005\u0012\u04a3", - "\n\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013", - "\u0005\u0013\u04aa\n\u0013\u0003\u0014\u0003\u0014\u0003\u0014\u0007", - "\u0014\u04af\n\u0014\f\u0014\u000e\u0014\u04b2\u000b\u0014\u0003\u0015", - "\u0003\u0015\u0003\u0015\u0003\u0015\u0007\u0015\u04b8\n\u0015\f\u0015", - "\u000e\u0015\u04bb\u000b\u0015\u0003\u0016\u0003\u0016\u0005\u0016\u04bf", - "\n\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017", - "\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018", - "\u0007\u0018\u04cc\n\u0018\f\u0018\u000e\u0018\u04cf\u000b\u0018\u0003", - "\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0005\u0019\u04d5\n\u0019", - "\u0003\u0019\u0005\u0019\u04d8\n\u0019\u0003\u001a\u0003\u001a\u0003", - "\u001a\u0007\u001a\u04dd\n\u001a\f\u001a\u000e\u001a\u04e0\u000b\u001a", - "\u0003\u001a\u0005\u001a\u04e3\n\u001a\u0003\u001b\u0003\u001b\u0003", - "\u001b\u0003\u001b\u0005\u001b\u04e9\n\u001b\u0003\u001c\u0003\u001c", - "\u0003\u001c\u0003\u001c\u0007\u001c\u04ef\n\u001c\f\u001c\u000e\u001c", - "\u04f2\u000b\u001c\u0003\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003", - "\u001d\u0003\u001d\u0007\u001d\u04fa\n\u001d\f\u001d\u000e\u001d\u04fd", - "\u000b\u001d\u0003\u001d\u0003\u001d\u0003\u001e\u0003\u001e\u0003\u001e", - "\u0003\u001e\u0003\u001e\u0003\u001e\u0005\u001e\u0507\n\u001e\u0003", - "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0005\u001f\u050e", - "\n\u001f\u0003 \u0003 \u0003 \u0003 \u0005 \u0514\n \u0003!\u0003!\u0003", - "!\u0003\"\u0005\"\u051a\n\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"", - "\u0006\"\u0521\n\"\r\"\u000e\"\u0522\u0005\"\u0525\n\"\u0003#\u0003", - "#\u0003#\u0003#\u0003#\u0007#\u052c\n#\f#\u000e#\u052f\u000b#\u0005", - "#\u0531\n#\u0003#\u0003#\u0003#\u0003#\u0003#\u0007#\u0538\n#\f#\u000e", - "#\u053b\u000b#\u0005#\u053d\n#\u0003#\u0003#\u0003#\u0003#\u0003#\u0007", - "#\u0544\n#\f#\u000e#\u0547\u000b#\u0005#\u0549\n#\u0003#\u0003#\u0003", - "#\u0003#\u0003#\u0007#\u0550\n#\f#\u000e#\u0553\u000b#\u0005#\u0555", - "\n#\u0003#\u0005#\u0558\n#\u0003#\u0003#\u0003#\u0005#\u055d\n#\u0005", - "#\u055f\n#\u0003$\u0005$\u0562\n$\u0003$\u0003$\u0003$\u0003%\u0003", - "%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u056e\n%\u0003%\u0003%\u0003", - "%\u0003%\u0003%\u0005%\u0575\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005", - "%\u057c\n%\u0003%\u0007%\u057f\n%\f%\u000e%\u0582\u000b%\u0003&\u0003", - "&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0005&\u058c\n&\u0003\'", - "\u0003\'\u0005\'\u0590\n\'\u0003\'\u0003\'\u0005\'\u0594\n\'\u0003(", - "\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0005", - "(\u05a0\n(\u0003(\u0005(\u05a3\n(\u0003(\u0003(\u0005(\u05a7\n(\u0003", - "(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0005(\u05b1\n(\u0003", - "(\u0003(\u0005(\u05b5\n(\u0005(\u05b7\n(\u0003(\u0005(\u05ba\n(\u0003", - "(\u0003(\u0005(\u05be\n(\u0003(\u0005(\u05c1\n(\u0003(\u0003(\u0005", - "(\u05c5\n(\u0003(\u0003(\u0007(\u05c9\n(\f(\u000e(\u05cc\u000b(\u0003", - "(\u0005(\u05cf\n(\u0003(\u0003(\u0005(\u05d3\n(\u0003(\u0003(\u0003", - "(\u0005(\u05d8\n(\u0003(\u0005(\u05db\n(\u0005(\u05dd\n(\u0003(\u0007", - "(\u05e0\n(\f(\u000e(\u05e3\u000b(\u0003(\u0003(\u0005(\u05e7\n(\u0003", - "(\u0005(\u05ea\n(\u0003(\u0003(\u0005(\u05ee\n(\u0003(\u0005(\u05f1", - "\n(\u0005(\u05f3\n(\u0003)\u0003)\u0003)\u0005)\u05f8\n)\u0003)\u0007", - ")\u05fb\n)\f)\u000e)\u05fe\u000b)\u0003)\u0003)\u0003*\u0003*\u0003", - "*\u0003*\u0003*\u0003*\u0007*\u0608\n*\f*\u000e*\u060b\u000b*\u0003", - "*\u0003*\u0005*\u060f\n*\u0003+\u0003+\u0003+\u0003+\u0007+\u0615\n", - "+\f+\u000e+\u0618\u000b+\u0003+\u0007+\u061b\n+\f+\u000e+\u061e\u000b", - "+\u0003+\u0005+\u0621\n+\u0003,\u0003,\u0003,\u0003,\u0003,\u0007,\u0628", - "\n,\f,\u000e,\u062b\u000b,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003", - ",\u0003,\u0003,\u0003,\u0003,\u0007,\u0637\n,\f,\u000e,\u063a\u000b", - ",\u0003,\u0003,\u0005,\u063e\n,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003", - ",\u0003,\u0003,\u0007,\u0648\n,\f,\u000e,\u064b\u000b,\u0003,\u0003", - ",\u0005,\u064f\n,\u0003-\u0003-\u0003-\u0003-\u0007-\u0655\n-\f-\u000e", - "-\u0658\u000b-\u0005-\u065a\n-\u0003-\u0003-\u0005-\u065e\n-\u0003.", - "\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0007", - ".\u066a\n.\f.\u000e.\u066d\u000b.\u0003.\u0003.\u0003.\u0003/\u0003", - "/\u0003/\u0003/\u0003/\u0007/\u0677\n/\f/\u000e/\u067a\u000b/\u0003", - "/\u0003/\u0005/\u067e\n/\u00030\u00030\u00050\u0682\n0\u00030\u0005", - "0\u0685\n0\u00031\u00031\u00031\u00051\u068a\n1\u00031\u00031\u0003", - "1\u00031\u00031\u00071\u0691\n1\f1\u000e1\u0694\u000b1\u00051\u0696", - "\n1\u00031\u00031\u00031\u00051\u069b\n1\u00031\u00031\u00031\u0007", - "1\u06a0\n1\f1\u000e1\u06a3\u000b1\u00051\u06a5\n1\u00032\u00032\u0003", - "3\u00033\u00073\u06ab\n3\f3\u000e3\u06ae\u000b3\u00034\u00034\u0003", - "4\u00034\u00054\u06b4\n4\u00034\u00034\u00034\u00034\u00034\u00054\u06bb", - "\n4\u00035\u00055\u06be\n5\u00035\u00035\u00035\u00055\u06c3\n5\u0003", - "5\u00035\u00035\u00035\u00055\u06c9\n5\u00035\u00035\u00055\u06cd\n", - "5\u00035\u00055\u06d0\n5\u00035\u00055\u06d3\n5\u00036\u00036\u0003", - "6\u00036\u00056\u06d9\n6\u00037\u00037\u00037\u00057\u06de\n7\u0003", - "7\u00037\u00038\u00058\u06e3\n8\u00038\u00038\u00038\u00038\u00038\u0003", - "8\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u0003", - "8\u00058\u06f5\n8\u00058\u06f7\n8\u00038\u00058\u06fa\n8\u00039\u0003", - "9\u00039\u00039\u0003:\u0003:\u0003:\u0007:\u0703\n:\f:\u000e:\u0706", - "\u000b:\u0003;\u0003;\u0003;\u0003;\u0007;\u070c\n;\f;\u000e;\u070f", - "\u000b;\u0003;\u0003;\u0003<\u0003<\u0005<\u0715\n<\u0003=\u0003=\u0003", - "=\u0003=\u0007=\u071b\n=\f=\u000e=\u071e\u000b=\u0003=\u0003=\u0003", - ">\u0003>\u0003>\u0005>\u0725\n>\u0003?\u0003?\u0003?\u0005?\u072a\n", - "?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0732\n?\u0003?\u0003", - "?\u0003?\u0003?\u0003?\u0003?\u0005?\u073a\n?\u0003?\u0003?\u0003?\u0003", - "?\u0005?\u0740\n?\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0007", - "@\u0749\n@\f@\u000e@\u074c\u000b@\u0005@\u074e\n@\u0003@\u0003@\u0003", - "@\u0003@\u0003@\u0007@\u0755\n@\f@\u000e@\u0758\u000b@\u0005@\u075a", - "\n@\u0003@\u0003@\u0003@\u0003@\u0007@\u0760\n@\f@\u000e@\u0763\u000b", - "@\u0005@\u0765\n@\u0003@\u0003@\u0003@\u0003@\u0005@\u076b\n@\u0003", - "@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003", - "@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003", - "@\u0005@\u0782\n@\u0005@\u0784\n@\u0003@\u0003@\u0003@\u0003@\u0003", - "@\u0003@\u0005@\u078c\n@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003", - "@\u0003@\u0003@\u0007@\u0797\n@\f@\u000e@\u079a\u000b@\u0003@\u0003", - "@\u0003A\u0003A\u0003A\u0003A\u0003B\u0003B\u0003C\u0003C\u0003D\u0003", - "D\u0003D\u0007D\u07a9\nD\fD\u000eD\u07ac\u000bD\u0003E\u0003E\u0007", - "E\u07b0\nE\fE\u000eE\u07b3\u000bE\u0003F\u0003F\u0005F\u07b7\nF\u0003", - "G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0005G\u07c1\nG\u0003", - "G\u0003G\u0005G\u07c5\nG\u0003G\u0003G\u0005G\u07c9\nG\u0003G\u0003", - "G\u0003G\u0003G\u0005G\u07cf\nG\u0003H\u0003H\u0003I\u0003I\u0003J\u0003", - "J\u0003K\u0003K\u0003K\u0003K\u0007K\u07db\nK\fK\u000eK\u07de\u000b", - "K\u0003K\u0003K\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u07e7\nL\f", - "L\u000eL\u07ea\u000bL\u0005L\u07ec\nL\u0003L\u0003L\u0003L\u0003M\u0005", - "M\u07f2\nM\u0003M\u0003M\u0005M\u07f6\nM\u0005M\u07f8\nM\u0003N\u0003", - "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0005N\u0801\nN\u0003N\u0003N\u0003", - "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0005N\u080d\nN\u0005", - "N\u080f\nN\u0003N\u0003N\u0003N\u0003N\u0003N\u0005N\u0816\nN\u0003", - "N\u0003N\u0003N\u0003N\u0003N\u0005N\u081d\nN\u0003N\u0003N\u0003N\u0003", - "N\u0005N\u0823\nN\u0003N\u0003N\u0003N\u0003N\u0005N\u0829\nN\u0005", - "N\u082b\nN\u0003O\u0003O\u0003O\u0005O\u0830\nO\u0003O\u0003O\u0003", - "O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0007O\u083b\nO\fO\u000e", - "O\u083e\u000bO\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003O\u0003", - "O\u0005O\u0848\nO\u0003P\u0003P\u0003P\u0005P\u084d\nP\u0003P\u0003", - "P\u0003Q\u0003Q\u0005Q\u0853\nQ\u0003Q\u0003Q\u0005Q\u0857\nQ\u0005", - "Q\u0859\nQ\u0003R\u0003R\u0003R\u0007R\u085e\nR\fR\u000eR\u0861\u000b", - "R\u0003S\u0003S\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003", - "T\u0003T\u0003T\u0005T\u086f\nT\u0005T\u0871\nT\u0003T\u0003T\u0003", - "T\u0003T\u0003T\u0003T\u0007T\u0879\nT\fT\u000eT\u087c\u000bT\u0003", - "U\u0005U\u087f\nU\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u0887", - "\nU\u0003U\u0003U\u0003U\u0003U\u0003U\u0007U\u088e\nU\fU\u000eU\u0891", - "\u000bU\u0003U\u0003U\u0003U\u0005U\u0896\nU\u0003U\u0003U\u0003U\u0003", - "U\u0003U\u0003U\u0005U\u089e\nU\u0003U\u0003U\u0003U\u0003U\u0005U\u08a4", - "\nU\u0003U\u0003U\u0003U\u0005U\u08a9\nU\u0003U\u0003U\u0003U\u0005", - "U\u08ae\nU\u0003V\u0003V\u0003V\u0003V\u0005V\u08b4\nV\u0003V\u0003", - "V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", - "V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0007V\u08c9\nV\f", - "V\u000eV\u08cc\u000bV\u0003W\u0003W\u0003W\u0006W\u08d1\nW\rW\u000e", - "W\u08d2\u0003W\u0003W\u0005W\u08d7\nW\u0003W\u0003W\u0003W\u0003W\u0003", - "W\u0006W\u08de\nW\rW\u000eW\u08df\u0003W\u0003W\u0005W\u08e4\nW\u0003", - "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", - "W\u0003W\u0003W\u0003W\u0007W\u08f4\nW\fW\u000eW\u08f7\u000bW\u0005", - "W\u08f9\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0005W\u0901\n", - "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0005W\u090a\nW\u0003", - "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", - "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0006W\u091f", - "\nW\rW\u000eW\u0920\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", - "W\u0003W\u0003W\u0005W\u092c\nW\u0003W\u0003W\u0003W\u0007W\u0931\n", - "W\fW\u000eW\u0934\u000bW\u0005W\u0936\nW\u0003W\u0003W\u0003W\u0005", - "W\u093b\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", - "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0006W\u094c\nW\rW\u000e", - "W\u094d\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", - "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0005W\u095f\nW\u0003W\u0003", - "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0007W\u0969\nW\fW\u000e", - "W\u096c\u000bW\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003", - "X\u0006X\u0976\nX\rX\u000eX\u0977\u0005X\u097a\nX\u0003Y\u0003Y\u0003", - "Z\u0003Z\u0003[\u0003[\u0003\\\u0003\\\u0003]\u0003]\u0007]\u0986\n", - "]\f]\u000e]\u0989\u000b]\u0003^\u0003^\u0003^\u0003^\u0005^\u098f\n", - "^\u0003_\u0005_\u0992\n_\u0003_\u0003_\u0005_\u0996\n_\u0003`\u0003", - "`\u0003`\u0005`\u099b\n`\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0005a\u09ac", - "\na\u0003a\u0003a\u0005a\u09b0\na\u0003a\u0003a\u0003a\u0003a\u0003", - "a\u0007a\u09b7\na\fa\u000ea\u09ba\u000ba\u0003a\u0005a\u09bd\na\u0005", - "a\u09bf\na\u0003b\u0003b\u0003b\u0007b\u09c4\nb\fb\u000eb\u09c7\u000b", - "b\u0003c\u0003c\u0003c\u0003c\u0005c\u09cd\nc\u0003d\u0003d\u0003d\u0007", - "d\u09d2\nd\fd\u000ed\u09d5\u000bd\u0003e\u0003e\u0003e\u0007e\u09da", - "\ne\fe\u000ee\u09dd\u000be\u0003e\u0003e\u0003e\u0005e\u09e2\ne\u0003", - "e\u0003e\u0005e\u09e6\ne\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003", - "e\u0003e\u0003e\u0003e\u0003e\u0003e\u0007e\u09f4\ne\fe\u000ee\u09f7", - "\u000be\u0003e\u0003e\u0005e\u09fb\ne\u0003f\u0003f\u0003f\u0003f\u0003", - "f\u0003f\u0005f\u0a03\nf\u0003g\u0003g\u0003g\u0007g\u0a08\ng\fg\u000e", - "g\u0a0b\u000bg\u0003h\u0003h\u0003h\u0003h\u0003h\u0005h\u0a12\nh\u0003", - "i\u0003i\u0003i\u0003i\u0003i\u0003j\u0003j\u0003j\u0003j\u0007j\u0a1d", - "\nj\fj\u000ej\u0a20\u000bj\u0003k\u0003k\u0003k\u0003k\u0003l\u0003", - "l\u0003l\u0003l\u0003l\u0003l\u0003l\u0007l\u0a2d\nl\fl\u000el\u0a30", - "\u000bl\u0003l\u0003l\u0003l\u0003l\u0003l\u0007l\u0a37\nl\fl\u000e", - "l\u0a3a\u000bl\u0005l\u0a3c\nl\u0003l\u0003l\u0003l\u0003l\u0003l\u0007", - "l\u0a43\nl\fl\u000el\u0a46\u000bl\u0005l\u0a48\nl\u0005l\u0a4a\nl\u0003", - "l\u0005l\u0a4d\nl\u0003l\u0005l\u0a50\nl\u0003m\u0003m\u0003m\u0003", - "m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003", - "m\u0003m\u0003m\u0005m\u0a62\nm\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", - "n\u0003n\u0005n\u0a6b\nn\u0003o\u0003o\u0003o\u0007o\u0a70\no\fo\u000e", - "o\u0a73\u000bo\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003", - "p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0005p\u0a84\np\u0003", - "q\u0003q\u0003q\u0005q\u0a89\nq\u0003r\u0003r\u0003s\u0005s\u0a8e\n", - "s\u0003s\u0003s\u0005s\u0a92\ns\u0003s\u0003s\u0005s\u0a96\ns\u0003", - "s\u0003s\u0005s\u0a9a\ns\u0003s\u0003s\u0005s\u0a9e\ns\u0003s\u0003", - "s\u0005s\u0aa2\ns\u0003s\u0003s\u0005s\u0aa6\ns\u0003s\u0005s\u0aa9", - "\ns\u0003t\u0003t\u0003t\u0007\u0328\u0365\u036d\u0374\u037c\u0006H", - "\u00a6\u00aa\u00acu\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014", - "\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bd", - "fhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090", - "\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8", - "\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0", - "\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8", - "\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u0002\u001d\u0003\u0002\u00d2", - "\u00d3\u0004\u0002ZZ\\\\\u0005\u0002df\u00b8\u00b8\u00be\u00be\u0004", - "\u0002\u0016\u0016))\u0004\u000266aa\u0004\u0002\u00b8\u00b8\u00be\u00be", - "\u0004\u0002\u0017\u0017\u00df\u00df\u0003\u0002ps\u0003\u0002pr\u0003", - "\u000256\u0004\u0002SSUU\u0004\u0002\u0019\u0019\u001b\u001b\u0003\u0002", - "\u010b\u010c\u0003\u0002./\u0004\u0002\u0094\u0095\u009a\u009a\u0003", - "\u0002\u0096\u0099\u0004\u0002\u0094\u0095\u009d\u009d\u0003\u0002\u0086", - "\u0088\u0003\u0002\u008c\u0093\u0003\u0002\u0094\u009e\u0003\u0002\'", - "*\u0003\u000223\u0003\u0002\u0094\u0095\u0004\u0002LL\u00a5\u00a5\u0004", - "\u0002##\u00a3\u00a3\u0003\u0002PQ\u000b\u0002\u0015=@@HWYot\u008b\u0099", - "\u0099\u009f\u00a8\u00aa\u00f6\u00f8\u00f9\u0002\u0c66\u0002\u00ec\u0003", - "\u0002\u0002\u0002\u0004\u00ee\u0003\u0002\u0002\u0002\u0006\u00f1\u0003", - "\u0002\u0002\u0002\b\u00f4\u0003\u0002\u0002\u0002\n\u00f7\u0003\u0002", - "\u0002\u0002\f\u00fa\u0003\u0002\u0002\u0002\u000e\u037f\u0003\u0002", - "\u0002\u0002\u0010\u042b\u0003\u0002\u0002\u0002\u0012\u042d\u0003\u0002", - "\u0002\u0002\u0014\u043c\u0003\u0002\u0002\u0002\u0016\u0448\u0003\u0002", - "\u0002\u0002\u0018\u0455\u0003\u0002\u0002\u0002\u001a\u0459\u0003\u0002", - "\u0002\u0002\u001c\u048d\u0003\u0002\u0002\u0002\u001e\u048f\u0003\u0002", - "\u0002\u0002 \u0493\u0003\u0002\u0002\u0002\"\u049f\u0003\u0002\u0002", - "\u0002$\u04a9\u0003\u0002\u0002\u0002&\u04ab\u0003\u0002\u0002\u0002", - "(\u04b3\u0003\u0002\u0002\u0002*\u04bc\u0003\u0002\u0002\u0002,\u04c4", - "\u0003\u0002\u0002\u0002.\u04c7\u0003\u0002\u0002\u00020\u04d2\u0003", - "\u0002\u0002\u00022\u04e2\u0003\u0002\u0002\u00024\u04e8\u0003\u0002", - "\u0002\u00026\u04ea\u0003\u0002\u0002\u00028\u04f5\u0003\u0002\u0002", - "\u0002:\u0506\u0003\u0002\u0002\u0002<\u050d\u0003\u0002\u0002\u0002", - ">\u050f\u0003\u0002\u0002\u0002@\u0515\u0003\u0002\u0002\u0002B\u0524", - "\u0003\u0002\u0002\u0002D\u0530\u0003\u0002\u0002\u0002F\u0561\u0003", - "\u0002\u0002\u0002H\u0566\u0003\u0002\u0002\u0002J\u058b\u0003\u0002", - "\u0002\u0002L\u058d\u0003\u0002\u0002\u0002N\u05f2\u0003\u0002\u0002", - "\u0002P\u05f4\u0003\u0002\u0002\u0002R\u060e\u0003\u0002\u0002\u0002", - "T\u0610\u0003\u0002\u0002\u0002V\u064e\u0003\u0002\u0002\u0002X\u065d", - "\u0003\u0002\u0002\u0002Z\u065f\u0003\u0002\u0002\u0002\\\u067d\u0003", - "\u0002\u0002\u0002^\u067f\u0003\u0002\u0002\u0002`\u0686\u0003\u0002", - "\u0002\u0002b\u06a6\u0003\u0002\u0002\u0002d\u06a8\u0003\u0002\u0002", - "\u0002f\u06ba\u0003\u0002\u0002\u0002h\u06d2\u0003\u0002\u0002\u0002", - "j\u06d8\u0003\u0002\u0002\u0002l\u06da\u0003\u0002\u0002\u0002n\u06f9", - "\u0003\u0002\u0002\u0002p\u06fb\u0003\u0002\u0002\u0002r\u06ff\u0003", - "\u0002\u0002\u0002t\u0707\u0003\u0002\u0002\u0002v\u0712\u0003\u0002", - "\u0002\u0002x\u0716\u0003\u0002\u0002\u0002z\u0721\u0003\u0002\u0002", - "\u0002|\u073f\u0003\u0002\u0002\u0002~\u0741\u0003\u0002\u0002\u0002", - "\u0080\u079d\u0003\u0002\u0002\u0002\u0082\u07a1\u0003\u0002\u0002\u0002", - "\u0084\u07a3\u0003\u0002\u0002\u0002\u0086\u07a5\u0003\u0002\u0002\u0002", - "\u0088\u07ad\u0003\u0002\u0002\u0002\u008a\u07b4\u0003\u0002\u0002\u0002", - "\u008c\u07ce\u0003\u0002\u0002\u0002\u008e\u07d0\u0003\u0002\u0002\u0002", - "\u0090\u07d2\u0003\u0002\u0002\u0002\u0092\u07d4\u0003\u0002\u0002\u0002", - "\u0094\u07d6\u0003\u0002\u0002\u0002\u0096\u07e1\u0003\u0002\u0002\u0002", - "\u0098\u07f7\u0003\u0002\u0002\u0002\u009a\u082a\u0003\u0002\u0002\u0002", - "\u009c\u0847\u0003\u0002\u0002\u0002\u009e\u084c\u0003\u0002\u0002\u0002", - "\u00a0\u0850\u0003\u0002\u0002\u0002\u00a2\u085a\u0003\u0002\u0002\u0002", - "\u00a4\u0862\u0003\u0002\u0002\u0002\u00a6\u0870\u0003\u0002\u0002\u0002", - "\u00a8\u08ad\u0003\u0002\u0002\u0002\u00aa\u08b3\u0003\u0002\u0002\u0002", - "\u00ac\u095e\u0003\u0002\u0002\u0002\u00ae\u0979\u0003\u0002\u0002\u0002", - "\u00b0\u097b\u0003\u0002\u0002\u0002\u00b2\u097d\u0003\u0002\u0002\u0002", - "\u00b4\u097f\u0003\u0002\u0002\u0002\u00b6\u0981\u0003\u0002\u0002\u0002", - "\u00b8\u0983\u0003\u0002\u0002\u0002\u00ba\u098a\u0003\u0002\u0002\u0002", - "\u00bc\u0995\u0003\u0002\u0002\u0002\u00be\u099a\u0003\u0002\u0002\u0002", - "\u00c0\u09be\u0003\u0002\u0002\u0002\u00c2\u09c0\u0003\u0002\u0002\u0002", - "\u00c4\u09c8\u0003\u0002\u0002\u0002\u00c6\u09ce\u0003\u0002\u0002\u0002", - "\u00c8\u09fa\u0003\u0002\u0002\u0002\u00ca\u0a02\u0003\u0002\u0002\u0002", - "\u00cc\u0a04\u0003\u0002\u0002\u0002\u00ce\u0a0c\u0003\u0002\u0002\u0002", - "\u00d0\u0a13\u0003\u0002\u0002\u0002\u00d2\u0a18\u0003\u0002\u0002\u0002", - "\u00d4\u0a21\u0003\u0002\u0002\u0002\u00d6\u0a4f\u0003\u0002\u0002\u0002", - "\u00d8\u0a61\u0003\u0002\u0002\u0002\u00da\u0a6a\u0003\u0002\u0002\u0002", - "\u00dc\u0a6c\u0003\u0002\u0002\u0002\u00de\u0a83\u0003\u0002\u0002\u0002", - "\u00e0\u0a88\u0003\u0002\u0002\u0002\u00e2\u0a8a\u0003\u0002\u0002\u0002", - "\u00e4\u0aa8\u0003\u0002\u0002\u0002\u00e6\u0aaa\u0003\u0002\u0002\u0002", - "\u00e8\u00e9\u0005\u000e\b\u0002\u00e9\u00ea\u0007\u0002\u0002\u0003", - "\u00ea\u00ed\u0003\u0002\u0002\u0002\u00eb\u00ed\u0007\u0002\u0002\u0003", - "\u00ec\u00e8\u0003\u0002\u0002\u0002\u00ec\u00eb\u0003\u0002\u0002\u0002", - "\u00ed\u0003\u0003\u0002\u0002\u0002\u00ee\u00ef\u0005\u00a0Q\u0002", - "\u00ef\u00f0\u0007\u0002\u0002\u0003\u00f0\u0005\u0003\u0002\u0002\u0002", - "\u00f1\u00f2\u0005\u009cO\u0002\u00f2\u00f3\u0007\u0002\u0002\u0003", - "\u00f3\u0007\u0003\u0002\u0002\u0002\u00f4\u00f5\u0005\u009eP\u0002", - "\u00f5\u00f6\u0007\u0002\u0002\u0003\u00f6\t\u0003\u0002\u0002\u0002", - "\u00f7\u00f8\u0005\u00c0a\u0002\u00f8\u00f9\u0007\u0002\u0002\u0003", - "\u00f9\u000b\u0003\u0002\u0002\u0002\u00fa\u00fb\u0005\u00c2b\u0002", - "\u00fb\u00fc\u0007\u0002\u0002\u0003\u00fc\r\u0003\u0002\u0002\u0002", - "\u00fd\u0380\u0005\u001a\u000e\u0002\u00fe\u00ff\u0007l\u0002\u0002", - "\u00ff\u0380\u0005\u00dep\u0002\u0100\u0101\u0007Y\u0002\u0002\u0101", - "\u0105\u0007\u00d9\u0002\u0002\u0102\u0103\u0007\u0089\u0002\u0002\u0103", - "\u0104\u0007*\u0002\u0002\u0104\u0106\u0007,\u0002\u0002\u0105\u0102", - "\u0003\u0002\u0002\u0002\u0105\u0106\u0003\u0002\u0002\u0002\u0106\u0107", - "\u0003\u0002\u0002\u0002\u0107\u010a\u0005\u00dep\u0002\u0108\u0109", - "\u0007|\u0002\u0002\u0109\u010b\u0007\u0107\u0002\u0002\u010a\u0108", - "\u0003\u0002\u0002\u0002\u010a\u010b\u0003\u0002\u0002\u0002\u010b\u010d", - "\u0003\u0002\u0002\u0002\u010c\u010e\u0005\u0018\r\u0002\u010d\u010c", - "\u0003\u0002\u0002\u0002\u010d\u010e\u0003\u0002\u0002\u0002\u010e\u0112", - "\u0003\u0002\u0002\u0002\u010f\u0110\u0007W\u0002\u0002\u0110\u0111", - "\u0007\u00c4\u0002\u0002\u0111\u0113\u0005.\u0018\u0002\u0112\u010f", - "\u0003\u0002\u0002\u0002\u0112\u0113\u0003\u0002\u0002\u0002\u0113\u0380", - "\u0003\u0002\u0002\u0002\u0114\u0115\u0007w\u0002\u0002\u0115\u0116", - "\u0007\u00d9\u0002\u0002\u0116\u0117\u0005\u00dep\u0002\u0117\u0118", - "\u0007}\u0002\u0002\u0118\u0119\u0007\u00c4\u0002\u0002\u0119\u011a", - "\u0005.\u0018\u0002\u011a\u0380\u0003\u0002\u0002\u0002\u011b\u011c", - "\u0007o\u0002\u0002\u011c\u011f\u0007\u00d9\u0002\u0002\u011d\u011e", - "\u0007\u0089\u0002\u0002\u011e\u0120\u0007,\u0002\u0002\u011f\u011d", - "\u0003\u0002\u0002\u0002\u011f\u0120\u0003\u0002\u0002\u0002\u0120\u0121", - "\u0003\u0002\u0002\u0002\u0121\u0123\u0005\u00dep\u0002\u0122\u0124", - "\t\u0002\u0002\u0002\u0123\u0122\u0003\u0002\u0002\u0002\u0123\u0124", - "\u0003\u0002\u0002\u0002\u0124\u0380\u0003\u0002\u0002\u0002\u0125\u012a", - "\u0005\u0012\n\u0002\u0126\u0127\u0007\u0003\u0002\u0002\u0127\u0128", - "\u0005\u00c2b\u0002\u0128\u0129\u0007\u0004\u0002\u0002\u0129\u012b", - "\u0003\u0002\u0002\u0002\u012a\u0126\u0003\u0002\u0002\u0002\u012a\u012b", - "\u0003\u0002\u0002\u0002\u012b\u012c\u0003\u0002\u0002\u0002\u012c\u013a", - "\u0005,\u0017\u0002\u012d\u012e\u0007\u00c1\u0002\u0002\u012e\u0139", - "\u0005.\u0018\u0002\u012f\u0130\u0007\u00e1\u0002\u0002\u0130\u0131", - "\u0007\u001e\u0002\u0002\u0131\u0139\u0005p9\u0002\u0132\u0139\u0005", - "\u0014\u000b\u0002\u0133\u0139\u0005\u0018\r\u0002\u0134\u0135\u0007", - "|\u0002\u0002\u0135\u0139\u0007\u0107\u0002\u0002\u0136\u0137\u0007", - "\u00c3\u0002\u0002\u0137\u0139\u0005.\u0018\u0002\u0138\u012d\u0003", - "\u0002\u0002\u0002\u0138\u012f\u0003\u0002\u0002\u0002\u0138\u0132\u0003", - "\u0002\u0002\u0002\u0138\u0133\u0003\u0002\u0002\u0002\u0138\u0134\u0003", - "\u0002\u0002\u0002\u0138\u0136\u0003\u0002\u0002\u0002\u0139\u013c\u0003", - "\u0002\u0002\u0002\u013a\u0138\u0003\u0002\u0002\u0002\u013a\u013b\u0003", - "\u0002\u0002\u0002\u013b\u0141\u0003\u0002\u0002\u0002\u013c\u013a\u0003", - "\u0002\u0002\u0002\u013d\u013f\u0007\u0018\u0002\u0002\u013e\u013d\u0003", - "\u0002\u0002\u0002\u013e\u013f\u0003\u0002\u0002\u0002\u013f\u0140\u0003", - "\u0002\u0002\u0002\u0140\u0142\u0005\u001a\u000e\u0002\u0141\u013e\u0003", - "\u0002\u0002\u0002\u0141\u0142\u0003\u0002\u0002\u0002\u0142\u0380\u0003", - "\u0002\u0002\u0002\u0143\u0148\u0005\u0012\n\u0002\u0144\u0145\u0007", - "\u0003\u0002\u0002\u0145\u0146\u0005\u00c2b\u0002\u0146\u0147\u0007", - "\u0004\u0002\u0002\u0147\u0149\u0003\u0002\u0002\u0002\u0148\u0144\u0003", - "\u0002\u0002\u0002\u0148\u0149\u0003\u0002\u0002\u0002\u0149\u015b\u0003", - "\u0002\u0002\u0002\u014a\u014b\u0007|\u0002\u0002\u014b\u015a\u0007", - "\u0107\u0002\u0002\u014c\u014d\u0007\u00e1\u0002\u0002\u014d\u014e\u0007", - "\u001e\u0002\u0002\u014e\u014f\u0007\u0003\u0002\u0002\u014f\u0150\u0005", - "\u00c2b\u0002\u0150\u0151\u0007\u0004\u0002\u0002\u0151\u015a\u0003", - "\u0002\u0002\u0002\u0152\u015a\u0005\u0014\u000b\u0002\u0153\u015a\u0005", - "\u0016\f\u0002\u0154\u015a\u0005\u009aN\u0002\u0155\u015a\u0005:\u001e", - "\u0002\u0156\u015a\u0005\u0018\r\u0002\u0157\u0158\u0007\u00c3\u0002", - "\u0002\u0158\u015a\u0005.\u0018\u0002\u0159\u014a\u0003\u0002\u0002", - "\u0002\u0159\u014c\u0003\u0002\u0002\u0002\u0159\u0152\u0003\u0002\u0002", - "\u0002\u0159\u0153\u0003\u0002\u0002\u0002\u0159\u0154\u0003\u0002\u0002", - "\u0002\u0159\u0155\u0003\u0002\u0002\u0002\u0159\u0156\u0003\u0002\u0002", - "\u0002\u0159\u0157\u0003\u0002\u0002\u0002\u015a\u015d\u0003\u0002\u0002", - "\u0002\u015b\u0159\u0003\u0002\u0002\u0002\u015b\u015c\u0003\u0002\u0002", - "\u0002\u015c\u0162\u0003\u0002\u0002\u0002\u015d\u015b\u0003\u0002\u0002", - "\u0002\u015e\u0160\u0007\u0018\u0002\u0002\u015f\u015e\u0003\u0002\u0002", - "\u0002\u015f\u0160\u0003\u0002\u0002\u0002\u0160\u0161\u0003\u0002\u0002", - "\u0002\u0161\u0163\u0005\u001a\u000e\u0002\u0162\u015f\u0003\u0002\u0002", - "\u0002\u0162\u0163\u0003\u0002\u0002\u0002\u0163\u0380\u0003\u0002\u0002", - "\u0002\u0164\u0165\u0007Y\u0002\u0002\u0165\u0169\u0007Z\u0002\u0002", - "\u0166\u0167\u0005\u00dep\u0002\u0167\u0168\u0007\u0005\u0002\u0002", - "\u0168\u016a\u0003\u0002\u0002\u0002\u0169\u0166\u0003\u0002\u0002\u0002", - "\u0169\u016a\u0003\u0002\u0002\u0002\u016a\u016b\u0003\u0002\u0002\u0002", - "\u016b\u0170\u0005\u009cO\u0002\u016c\u016d\u0007\u0003\u0002\u0002", - "\u016d\u016e\u0005\u00c6d\u0002\u016e\u016f\u0007\u0004\u0002\u0002", - "\u016f\u0171\u0003\u0002\u0002\u0002\u0170\u016c\u0003\u0002\u0002\u0002", - "\u0170\u0171\u0003\u0002\u0002\u0002\u0171\u0174\u0003\u0002\u0002\u0002", - "\u0172\u0173\u0007|\u0002\u0002\u0173\u0175\u0007\u0107\u0002\u0002", - "\u0174\u0172\u0003\u0002\u0002\u0002\u0174\u0175\u0003\u0002\u0002\u0002", - "\u0175\u017c\u0003\u0002\u0002\u0002\u0176\u0177\u0007\u00e1\u0002\u0002", - "\u0177\u0178\u0007\u001e\u0002\u0002\u0178\u0179\u0007\u0003\u0002\u0002", - "\u0179\u017a\u0005p9\u0002\u017a\u017b\u0007\u0004\u0002\u0002\u017b", - "\u017d\u0003\u0002\u0002\u0002\u017c\u0176\u0003\u0002\u0002\u0002\u017c", - "\u017d\u0003\u0002\u0002\u0002\u017d\u017e\u0003\u0002\u0002\u0002\u017e", - "\u017f\u0007W\u0002\u0002\u017f\u0180\u0005.\u0018\u0002\u0180\u0380", - "\u0003\u0002\u0002\u0002\u0181\u0182\u0007Y\u0002\u0002\u0182\u0186", - "\u0007Z\u0002\u0002\u0183\u0184\u0007\u0089\u0002\u0002\u0184\u0185", - "\u0007*\u0002\u0002\u0185\u0187\u0007,\u0002\u0002\u0186\u0183\u0003", - "\u0002\u0002\u0002\u0186\u0187\u0003\u0002\u0002\u0002\u0187\u0188\u0003", - "\u0002\u0002\u0002\u0188\u0189\u0005\u009cO\u0002\u0189\u018a\u0007", - ".\u0002\u0002\u018a\u018c\u0005\u009cO\u0002\u018b\u018d\u0005\u0018", - "\r\u0002\u018c\u018b\u0003\u0002\u0002\u0002\u018c\u018d\u0003\u0002", - "\u0002\u0002\u018d\u0380\u0003\u0002\u0002\u0002\u018e\u018f\u0007\u00dd", - "\u0002\u0002\u018f\u0190\u0007Z\u0002\u0002\u0190\u0192\u0005\u009c", - "O\u0002\u0191\u0193\u0005 \u0011\u0002\u0192\u0191\u0003\u0002\u0002", - "\u0002\u0192\u0193\u0003\u0002\u0002\u0002\u0193\u0194\u0003\u0002\u0002", - "\u0002\u0194\u0195\u0007\u00de\u0002\u0002\u0195\u019d\u0007\u00e0\u0002", - "\u0002\u0196\u019e\u0005\u00dep\u0002\u0197\u0198\u00077\u0002\u0002", - "\u0198\u0199\u0007j\u0002\u0002\u0199\u019e\u0005r:\u0002\u019a\u019b", - "\u00077\u0002\u0002\u019b\u019c\u0007\u0019\u0002\u0002\u019c\u019e", - "\u0007j\u0002\u0002\u019d\u0196\u0003\u0002\u0002\u0002\u019d\u0197", - "\u0003\u0002\u0002\u0002\u019d\u019a\u0003\u0002\u0002\u0002\u019d\u019e", - "\u0003\u0002\u0002\u0002\u019e\u0380\u0003\u0002\u0002\u0002\u019f\u01a0", - "\u0007w\u0002\u0002\u01a0\u01a1\u0007Z\u0002\u0002\u01a1\u01a2\u0005", - "\u009cO\u0002\u01a2\u01a3\u0007\u0017\u0002\u0002\u01a3\u01a4\u0007", - "j\u0002\u0002\u01a4\u01a5\u0007\u0003\u0002\u0002\u01a5\u01a6\u0005", - "\u00c2b\u0002\u01a6\u01a7\u0007\u0004\u0002\u0002\u01a7\u0380\u0003", - "\u0002\u0002\u0002\u01a8\u01a9\u0007w\u0002\u0002\u01a9\u01aa\t\u0003", - "\u0002\u0002\u01aa\u01ab\u0005\u009cO\u0002\u01ab\u01ac\u0007x\u0002", - "\u0002\u01ac\u01ad\u0007t\u0002\u0002\u01ad\u01ae\u0005\u009cO\u0002", - "\u01ae\u0380\u0003\u0002\u0002\u0002\u01af\u01b0\u0007w\u0002\u0002", - "\u01b0\u01b1\t\u0003\u0002\u0002\u01b1\u01b2\u0005\u009cO\u0002\u01b2", - "\u01b3\u0007}\u0002\u0002\u01b3\u01b4\u0007\u00c3\u0002\u0002\u01b4", - "\u01b5\u0005.\u0018\u0002\u01b5\u0380\u0003\u0002\u0002\u0002\u01b6", - "\u01b7\u0007w\u0002\u0002\u01b7\u01b8\t\u0003\u0002\u0002\u01b8\u01b9", - "\u0005\u009cO\u0002\u01b9\u01ba\u0007\u00c2\u0002\u0002\u01ba\u01bd", - "\u0007\u00c3\u0002\u0002\u01bb\u01bc\u0007\u0089\u0002\u0002\u01bc\u01be", - "\u0007,\u0002\u0002\u01bd\u01bb\u0003\u0002\u0002\u0002\u01bd\u01be", - "\u0003\u0002\u0002\u0002\u01be\u01bf\u0003\u0002\u0002\u0002\u01bf\u01c0", - "\u0005.\u0018\u0002\u01c0\u0380\u0003\u0002\u0002\u0002\u01c1\u01c2", - "\u0007w\u0002\u0002\u01c2\u01c3\u0007Z\u0002\u0002\u01c3\u01c5\u0005", - "\u009cO\u0002\u01c4\u01c6\u0005 \u0011\u0002\u01c5\u01c4\u0003\u0002", - "\u0002\u0002\u01c5\u01c6\u0003\u0002\u0002\u0002\u01c6\u01c7\u0003\u0002", - "\u0002\u0002\u01c7\u01c9\u0007\u00d1\u0002\u0002\u01c8\u01ca\u0007k", - "\u0002\u0002\u01c9\u01c8\u0003\u0002\u0002\u0002\u01c9\u01ca\u0003\u0002", - "\u0002\u0002\u01ca\u01cb\u0003\u0002\u0002\u0002\u01cb\u01cc\u0005\u00de", - "p\u0002\u01cc\u01ce\u0005\u00c4c\u0002\u01cd\u01cf\u0005\u00be`\u0002", - "\u01ce\u01cd\u0003\u0002\u0002\u0002\u01ce\u01cf\u0003\u0002\u0002\u0002", - "\u01cf\u0380\u0003\u0002\u0002\u0002\u01d0\u01d1\u0007w\u0002\u0002", - "\u01d1\u01d2\u0007Z\u0002\u0002\u01d2\u01d4\u0005\u009cO\u0002\u01d3", - "\u01d5\u0005 \u0011\u0002\u01d4\u01d3\u0003\u0002\u0002\u0002\u01d4", - "\u01d5\u0003\u0002\u0002\u0002\u01d5\u01d6\u0003\u0002\u0002\u0002\u01d6", - "\u01d7\u0007}\u0002\u0002\u01d7\u01d8\u0007\u00aa\u0002\u0002\u01d8", - "\u01dc\u0007\u0107\u0002\u0002\u01d9\u01da\u0007W\u0002\u0002\u01da", - "\u01db\u0007\u00ab\u0002\u0002\u01db\u01dd\u0005.\u0018\u0002\u01dc", - "\u01d9\u0003\u0002\u0002\u0002\u01dc\u01dd\u0003\u0002\u0002\u0002\u01dd", - "\u0380\u0003\u0002\u0002\u0002\u01de\u01df\u0007w\u0002\u0002\u01df", - "\u01e0\u0007Z\u0002\u0002\u01e0\u01e2\u0005\u009cO\u0002\u01e1\u01e3", - "\u0005 \u0011\u0002\u01e2\u01e1\u0003\u0002\u0002\u0002\u01e2\u01e3", - "\u0003\u0002\u0002\u0002\u01e3\u01e4\u0003\u0002\u0002\u0002\u01e4\u01e5", - "\u0007}\u0002\u0002\u01e5\u01e6\u0007\u00ab\u0002\u0002\u01e6\u01e7", - "\u0005.\u0018\u0002\u01e7\u0380\u0003\u0002\u0002\u0002\u01e8\u01e9", - "\u0007w\u0002\u0002\u01e9\u01ea\u0007Z\u0002\u0002\u01ea\u01eb\u0005", - "\u009cO\u0002\u01eb\u01ef\u0007\u0017\u0002\u0002\u01ec\u01ed\u0007", - "\u0089\u0002\u0002\u01ed\u01ee\u0007*\u0002\u0002\u01ee\u01f0\u0007", - ",\u0002\u0002\u01ef\u01ec\u0003\u0002\u0002\u0002\u01ef\u01f0\u0003", - "\u0002\u0002\u0002\u01f0\u01f2\u0003\u0002\u0002\u0002\u01f1\u01f3\u0005", - "\u001e\u0010\u0002\u01f2\u01f1\u0003\u0002\u0002\u0002\u01f3\u01f4\u0003", - "\u0002\u0002\u0002\u01f4\u01f2\u0003\u0002\u0002\u0002\u01f4\u01f5\u0003", - "\u0002\u0002\u0002\u01f5\u0380\u0003\u0002\u0002\u0002\u01f6\u01f7\u0007", - "w\u0002\u0002\u01f7\u01f8\u0007\\\u0002\u0002\u01f8\u01f9\u0005\u009c", - "O\u0002\u01f9\u01fd\u0007\u0017\u0002\u0002\u01fa\u01fb\u0007\u0089", - "\u0002\u0002\u01fb\u01fc\u0007*\u0002\u0002\u01fc\u01fe\u0007,\u0002", - "\u0002\u01fd\u01fa\u0003\u0002\u0002\u0002\u01fd\u01fe\u0003\u0002\u0002", - "\u0002\u01fe\u0200\u0003\u0002\u0002\u0002\u01ff\u0201\u0005 \u0011", - "\u0002\u0200\u01ff\u0003\u0002\u0002\u0002\u0201\u0202\u0003\u0002\u0002", - "\u0002\u0202\u0200\u0003\u0002\u0002\u0002\u0202\u0203\u0003\u0002\u0002", - "\u0002\u0203\u0380\u0003\u0002\u0002\u0002\u0204\u0205\u0007w\u0002", - "\u0002\u0205\u0206\u0007Z\u0002\u0002\u0206\u0207\u0005\u009cO\u0002", - "\u0207\u0208\u0005 \u0011\u0002\u0208\u0209\u0007x\u0002\u0002\u0209", - "\u020a\u0007t\u0002\u0002\u020a\u020b\u0005 \u0011\u0002\u020b\u0380", - "\u0003\u0002\u0002\u0002\u020c\u020d\u0007w\u0002\u0002\u020d\u020e", - "\u0007Z\u0002\u0002\u020e\u020f\u0005\u009cO\u0002\u020f\u0212\u0007", - "o\u0002\u0002\u0210\u0211\u0007\u0089\u0002\u0002\u0211\u0213\u0007", - ",\u0002\u0002\u0212\u0210\u0003\u0002\u0002\u0002\u0212\u0213\u0003", - "\u0002\u0002\u0002\u0213\u0214\u0003\u0002\u0002\u0002\u0214\u0219\u0005", - " \u0011\u0002\u0215\u0216\u0007\u0006\u0002\u0002\u0216\u0218\u0005", - " \u0011\u0002\u0217\u0215\u0003\u0002\u0002\u0002\u0218\u021b\u0003", - "\u0002\u0002\u0002\u0219\u0217\u0003\u0002\u0002\u0002\u0219\u021a\u0003", - "\u0002\u0002\u0002\u021a\u021d\u0003\u0002\u0002\u0002\u021b\u0219\u0003", - "\u0002\u0002\u0002\u021c\u021e\u0007\u00d6\u0002\u0002\u021d\u021c\u0003", - "\u0002\u0002\u0002\u021d\u021e\u0003\u0002\u0002\u0002\u021e\u0380\u0003", - "\u0002\u0002\u0002\u021f\u0220\u0007w\u0002\u0002\u0220\u0221\u0007", - "\\\u0002\u0002\u0221\u0222\u0005\u009cO\u0002\u0222\u0225\u0007o\u0002", - "\u0002\u0223\u0224\u0007\u0089\u0002\u0002\u0224\u0226\u0007,\u0002", - "\u0002\u0225\u0223\u0003\u0002\u0002\u0002\u0225\u0226\u0003\u0002\u0002", - "\u0002\u0226\u0227\u0003\u0002\u0002\u0002\u0227\u022c\u0005 \u0011", - "\u0002\u0228\u0229\u0007\u0006\u0002\u0002\u0229\u022b\u0005 \u0011", - "\u0002\u022a\u0228\u0003\u0002\u0002\u0002\u022b\u022e\u0003\u0002\u0002", - "\u0002\u022c\u022a\u0003\u0002\u0002\u0002\u022c\u022d\u0003\u0002\u0002", - "\u0002\u022d\u0380\u0003\u0002\u0002\u0002\u022e\u022c\u0003\u0002\u0002", - "\u0002\u022f\u0230\u0007w\u0002\u0002\u0230\u0231\u0007Z\u0002\u0002", - "\u0231\u0233\u0005\u009cO\u0002\u0232\u0234\u0005 \u0011\u0002\u0233", - "\u0232\u0003\u0002\u0002\u0002\u0233\u0234\u0003\u0002\u0002\u0002\u0234", - "\u0235\u0003\u0002\u0002\u0002\u0235\u0236\u0007}\u0002\u0002\u0236", - "\u0237\u0005\u0018\r\u0002\u0237\u0380\u0003\u0002\u0002\u0002\u0238", - "\u0239\u0007w\u0002\u0002\u0239\u023a\u0007Z\u0002\u0002\u023a\u023b", - "\u0005\u009cO\u0002\u023b\u023c\u0007\u00ea\u0002\u0002\u023c\u023d", - "\u0007m\u0002\u0002\u023d\u0380\u0003\u0002\u0002\u0002\u023e\u023f", - "\u0007o\u0002\u0002\u023f\u0242\u0007Z\u0002\u0002\u0240\u0241\u0007", - "\u0089\u0002\u0002\u0241\u0243\u0007,\u0002\u0002\u0242\u0240\u0003", - "\u0002\u0002\u0002\u0242\u0243\u0003\u0002\u0002\u0002\u0243\u0244\u0003", - "\u0002\u0002\u0002\u0244\u0246\u0005\u009cO\u0002\u0245\u0247\u0007", - "\u00d6\u0002\u0002\u0246\u0245\u0003\u0002\u0002\u0002\u0246\u0247\u0003", - "\u0002\u0002\u0002\u0247\u0380\u0003\u0002\u0002\u0002\u0248\u0249\u0007", - "o\u0002\u0002\u0249\u024c\u0007\\\u0002\u0002\u024a\u024b\u0007\u0089", - "\u0002\u0002\u024b\u024d\u0007,\u0002\u0002\u024c\u024a\u0003\u0002", - "\u0002\u0002\u024c\u024d\u0003\u0002\u0002\u0002\u024d\u024e\u0003\u0002", - "\u0002\u0002\u024e\u0380\u0005\u009cO\u0002\u024f\u0252\u0007Y\u0002", - "\u0002\u0250\u0251\u0007\'\u0002\u0002\u0251\u0253\u0007]\u0002\u0002", - "\u0252\u0250\u0003\u0002\u0002\u0002\u0252\u0253\u0003\u0002\u0002\u0002", - "\u0253\u0258\u0003\u0002\u0002\u0002\u0254\u0256\u0007\u00bf\u0002\u0002", - "\u0255\u0254\u0003\u0002\u0002\u0002\u0255\u0256\u0003\u0002\u0002\u0002", - "\u0256\u0257\u0003\u0002\u0002\u0002\u0257\u0259\u0007\u00c0\u0002\u0002", - "\u0258\u0255\u0003\u0002\u0002\u0002\u0258\u0259\u0003\u0002\u0002\u0002", - "\u0259\u025a\u0003\u0002\u0002\u0002\u025a\u025e\u0007\\\u0002\u0002", - "\u025b\u025c\u0007\u0089\u0002\u0002\u025c\u025d\u0007*\u0002\u0002", - "\u025d\u025f\u0007,\u0002\u0002\u025e\u025b\u0003\u0002\u0002\u0002", - "\u025e\u025f\u0003\u0002\u0002\u0002\u025f\u0260\u0003\u0002\u0002\u0002", - "\u0260\u0262\u0005\u009cO\u0002\u0261\u0263\u0005x=\u0002\u0262\u0261", - "\u0003\u0002\u0002\u0002\u0262\u0263\u0003\u0002\u0002\u0002\u0263\u0266", - "\u0003\u0002\u0002\u0002\u0264\u0265\u0007|\u0002\u0002\u0265\u0267", - "\u0007\u0107\u0002\u0002\u0266\u0264\u0003\u0002\u0002\u0002\u0266\u0267", - "\u0003\u0002\u0002\u0002\u0267\u026b\u0003\u0002\u0002\u0002\u0268\u0269", - "\u0007\u00e1\u0002\u0002\u0269\u026a\u0007G\u0002\u0002\u026a\u026c", - "\u0005p9\u0002\u026b\u0268\u0003\u0002\u0002\u0002\u026b\u026c\u0003", - "\u0002\u0002\u0002\u026c\u026f\u0003\u0002\u0002\u0002\u026d\u026e\u0007", - "\u00c3\u0002\u0002\u026e\u0270\u0005.\u0018\u0002\u026f\u026d\u0003", - "\u0002\u0002\u0002\u026f\u0270\u0003\u0002\u0002\u0002\u0270\u0271\u0003", - "\u0002\u0002\u0002\u0271\u0272\u0007\u0018\u0002\u0002\u0272\u0273\u0005", - "\u001a\u000e\u0002\u0273\u0380\u0003\u0002\u0002\u0002\u0274\u0277\u0007", - "Y\u0002\u0002\u0275\u0276\u0007\'\u0002\u0002\u0276\u0278\u0007]\u0002", - "\u0002\u0277\u0275\u0003\u0002\u0002\u0002\u0277\u0278\u0003\u0002\u0002", - "\u0002\u0278\u027a\u0003\u0002\u0002\u0002\u0279\u027b\u0007\u00bf\u0002", - "\u0002\u027a\u0279\u0003\u0002\u0002\u0002\u027a\u027b\u0003\u0002\u0002", - "\u0002\u027b\u027c\u0003\u0002\u0002\u0002\u027c\u027d\u0007\u00c0\u0002", - "\u0002\u027d\u027e\u0007\\\u0002\u0002\u027e\u0283\u0005\u009cO\u0002", - "\u027f\u0280\u0007\u0003\u0002\u0002\u0280\u0281\u0005\u00c2b\u0002", - "\u0281\u0282\u0007\u0004\u0002\u0002\u0282\u0284\u0003\u0002\u0002\u0002", - "\u0283\u027f\u0003\u0002\u0002\u0002\u0283\u0284\u0003\u0002\u0002\u0002", - "\u0284\u0285\u0003\u0002\u0002\u0002\u0285\u0288\u0005,\u0017\u0002", - "\u0286\u0287\u0007\u00c1\u0002\u0002\u0287\u0289\u0005.\u0018\u0002", - "\u0288\u0286\u0003\u0002\u0002\u0002\u0288\u0289\u0003\u0002\u0002\u0002", - "\u0289\u0380\u0003\u0002\u0002\u0002\u028a\u028b\u0007w\u0002\u0002", - "\u028b\u028c\u0007\\\u0002\u0002\u028c\u028e\u0005\u009cO\u0002\u028d", - "\u028f\u0007\u0018\u0002\u0002\u028e\u028d\u0003\u0002\u0002\u0002\u028e", - "\u028f\u0003\u0002\u0002\u0002\u028f\u0290\u0003\u0002\u0002\u0002\u0290", - "\u0291\u0005\u001a\u000e\u0002\u0291\u0380\u0003\u0002\u0002\u0002\u0292", - "\u0295\u0007Y\u0002\u0002\u0293\u0294\u0007\'\u0002\u0002\u0294\u0296", - "\u0007]\u0002\u0002\u0295\u0293\u0003\u0002\u0002\u0002\u0295\u0296", - "\u0003\u0002\u0002\u0002\u0296\u0298\u0003\u0002\u0002\u0002\u0297\u0299", - "\u0007\u00c0\u0002\u0002\u0298\u0297\u0003\u0002\u0002\u0002\u0298\u0299", - "\u0003\u0002\u0002\u0002\u0299\u029a\u0003\u0002\u0002\u0002\u029a\u029e", - "\u0007\u00b7\u0002\u0002\u029b\u029c\u0007\u0089\u0002\u0002\u029c\u029d", - "\u0007*\u0002\u0002\u029d\u029f\u0007,\u0002\u0002\u029e\u029b\u0003", - "\u0002\u0002\u0002\u029e\u029f\u0003\u0002\u0002\u0002\u029f\u02a0\u0003", - "\u0002\u0002\u0002\u02a0\u02a1\u0005\u00dco\u0002\u02a1\u02a2\u0007", - "\u0018\u0002\u0002\u02a2\u02ac\u0007\u0107\u0002\u0002\u02a3\u02a4\u0007", - "\u00a9\u0002\u0002\u02a4\u02a9\u0005@!\u0002\u02a5\u02a6\u0007\u0006", - "\u0002\u0002\u02a6\u02a8\u0005@!\u0002\u02a7\u02a5\u0003\u0002\u0002", - "\u0002\u02a8\u02ab\u0003\u0002\u0002\u0002\u02a9\u02a7\u0003\u0002\u0002", - "\u0002\u02a9\u02aa\u0003\u0002\u0002\u0002\u02aa\u02ad\u0003\u0002\u0002", - "\u0002\u02ab\u02a9\u0003\u0002\u0002\u0002\u02ac\u02a3\u0003\u0002\u0002", - "\u0002\u02ac\u02ad\u0003\u0002\u0002\u0002\u02ad\u0380\u0003\u0002\u0002", - "\u0002\u02ae\u02b0\u0007o\u0002\u0002\u02af\u02b1\u0007\u00c0\u0002", - "\u0002\u02b0\u02af\u0003\u0002\u0002\u0002\u02b0\u02b1\u0003\u0002\u0002", - "\u0002\u02b1\u02b2\u0003\u0002\u0002\u0002\u02b2\u02b5\u0007\u00b7\u0002", - "\u0002\u02b3\u02b4\u0007\u0089\u0002\u0002\u02b4\u02b6\u0007,\u0002", - "\u0002\u02b5\u02b3\u0003\u0002\u0002\u0002\u02b5\u02b6\u0003\u0002\u0002", - "\u0002\u02b6\u02b7\u0003\u0002\u0002\u0002\u02b7\u0380\u0005\u00dco", - "\u0002\u02b8\u02ba\u0007b\u0002\u0002\u02b9\u02bb\t\u0004\u0002\u0002", - "\u02ba\u02b9\u0003\u0002\u0002\u0002\u02ba\u02bb\u0003\u0002\u0002\u0002", - "\u02bb\u02bc\u0003\u0002\u0002\u0002\u02bc\u0380\u0005\u000e\b\u0002", - "\u02bd\u02be\u0007h\u0002\u0002\u02be\u02c1\u0007i\u0002\u0002\u02bf", - "\u02c0\t\u0005\u0002\u0002\u02c0\u02c2\u0005\u00dep\u0002\u02c1\u02bf", - "\u0003\u0002\u0002\u0002\u02c1\u02c2\u0003\u0002\u0002\u0002\u02c2\u02c7", - "\u0003\u0002\u0002\u0002\u02c3\u02c5\u0007.\u0002\u0002\u02c4\u02c3", - "\u0003\u0002\u0002\u0002\u02c4\u02c5\u0003\u0002\u0002\u0002\u02c5\u02c6", - "\u0003\u0002\u0002\u0002\u02c6\u02c8\u0007\u0107\u0002\u0002\u02c7\u02c4", - "\u0003\u0002\u0002\u0002\u02c7\u02c8\u0003\u0002\u0002\u0002\u02c8\u0380", - "\u0003\u0002\u0002\u0002\u02c9\u02ca\u0007h\u0002\u0002\u02ca\u02cb", - "\u0007Z\u0002\u0002\u02cb\u02ce\u0007\u00b8\u0002\u0002\u02cc\u02cd", - "\t\u0005\u0002\u0002\u02cd\u02cf\u0005\u00dep\u0002\u02ce\u02cc\u0003", - "\u0002\u0002\u0002\u02ce\u02cf\u0003\u0002\u0002\u0002\u02cf\u02d0\u0003", - "\u0002\u0002\u0002\u02d0\u02d1\u0007.\u0002\u0002\u02d1\u02d3\u0007", - "\u0107\u0002\u0002\u02d2\u02d4\u0005 \u0011\u0002\u02d3\u02d2\u0003", - "\u0002\u0002\u0002\u02d3\u02d4\u0003\u0002\u0002\u0002\u02d4\u0380\u0003", - "\u0002\u0002\u0002\u02d5\u02d6\u0007h\u0002\u0002\u02d6\u02db\u0007", - "\u00da\u0002\u0002\u02d7\u02d9\u0007.\u0002\u0002\u02d8\u02d7\u0003", - "\u0002\u0002\u0002\u02d8\u02d9\u0003\u0002\u0002\u0002\u02d9\u02da\u0003", - "\u0002\u0002\u0002\u02da\u02dc\u0007\u0107\u0002\u0002\u02db\u02d8\u0003", - "\u0002\u0002\u0002\u02db\u02dc\u0003\u0002\u0002\u0002\u02dc\u0380\u0003", - "\u0002\u0002\u0002\u02dd\u02de\u0007h\u0002\u0002\u02de\u02df\u0007", - "\u00c3\u0002\u0002\u02df\u02e4\u0005\u009cO\u0002\u02e0\u02e1\u0007", - "\u0003\u0002\u0002\u02e1\u02e2\u00052\u001a\u0002\u02e2\u02e3\u0007", - "\u0004\u0002\u0002\u02e3\u02e5\u0003\u0002\u0002\u0002\u02e4\u02e0\u0003", - "\u0002\u0002\u0002\u02e4\u02e5\u0003\u0002\u0002\u0002\u02e5\u0380\u0003", - "\u0002\u0002\u0002\u02e6\u02e7\u0007h\u0002\u0002\u02e7\u02e8\u0007", - "j\u0002\u0002\u02e8\u02e9\t\u0005\u0002\u0002\u02e9\u02ec\u0005\u009c", - "O\u0002\u02ea\u02eb\t\u0005\u0002\u0002\u02eb\u02ed\u0005\u00dep\u0002", - "\u02ec\u02ea\u0003\u0002\u0002\u0002\u02ec\u02ed\u0003\u0002\u0002\u0002", - "\u02ed\u0380\u0003\u0002\u0002\u0002\u02ee\u02ef\u0007h\u0002\u0002", - "\u02ef\u02f0\u0007m\u0002\u0002\u02f0\u02f2\u0005\u009cO\u0002\u02f1", - "\u02f3\u0005 \u0011\u0002\u02f2\u02f1\u0003\u0002\u0002\u0002\u02f2", - "\u02f3\u0003\u0002\u0002\u0002\u02f3\u0380\u0003\u0002\u0002\u0002\u02f4", - "\u02f6\u0007h\u0002\u0002\u02f5\u02f7\u0005\u00dep\u0002\u02f6\u02f5", - "\u0003\u0002\u0002\u0002\u02f6\u02f7\u0003\u0002\u0002\u0002\u02f7\u02f8", - "\u0003\u0002\u0002\u0002\u02f8\u0300\u0007n\u0002\u0002\u02f9\u02fb", - "\u0007.\u0002\u0002\u02fa\u02f9\u0003\u0002\u0002\u0002\u02fa\u02fb", - "\u0003\u0002\u0002\u0002\u02fb\u02fe\u0003\u0002\u0002\u0002\u02fc\u02ff", - "\u0005\u00dco\u0002\u02fd\u02ff\u0007\u0107\u0002\u0002\u02fe\u02fc", - "\u0003\u0002\u0002\u0002\u02fe\u02fd\u0003\u0002\u0002\u0002\u02ff\u0301", - "\u0003\u0002\u0002\u0002\u0300\u02fa\u0003\u0002\u0002\u0002\u0300\u0301", - "\u0003\u0002\u0002\u0002\u0301\u0380\u0003\u0002\u0002\u0002\u0302\u0303", - "\u0007h\u0002\u0002\u0303\u0304\u0007Y\u0002\u0002\u0304\u0305\u0007", - "Z\u0002\u0002\u0305\u0380\u0005\u009cO\u0002\u0306\u0307\t\u0006\u0002", - "\u0002\u0307\u0309\u0007\u00b7\u0002\u0002\u0308\u030a\u0007\u00b8\u0002", - "\u0002\u0309\u0308\u0003\u0002\u0002\u0002\u0309\u030a\u0003\u0002\u0002", - "\u0002\u030a\u030b\u0003\u0002\u0002\u0002\u030b\u0380\u0005$\u0013", - "\u0002\u030c\u030d\t\u0006\u0002\u0002\u030d\u030f\u0007\u00d9\u0002", - "\u0002\u030e\u0310\u0007\u00b8\u0002\u0002\u030f\u030e\u0003\u0002\u0002", - "\u0002\u030f\u0310\u0003\u0002\u0002\u0002\u0310\u0311\u0003\u0002\u0002", - "\u0002\u0311\u0380\u0005\u00dep\u0002\u0312\u0314\t\u0006\u0002\u0002", - "\u0313\u0315\u0007Z\u0002\u0002\u0314\u0313\u0003\u0002\u0002\u0002", - "\u0314\u0315\u0003\u0002\u0002\u0002\u0315\u0317\u0003\u0002\u0002\u0002", - "\u0316\u0318\t\u0007\u0002\u0002\u0317\u0316\u0003\u0002\u0002\u0002", - "\u0317\u0318\u0003\u0002\u0002\u0002\u0318\u0319\u0003\u0002\u0002\u0002", - "\u0319\u031b\u0005\u009cO\u0002\u031a\u031c\u0005 \u0011\u0002\u031b", - "\u031a\u0003\u0002\u0002\u0002\u031b\u031c\u0003\u0002\u0002\u0002\u031c", - "\u031e\u0003\u0002\u0002\u0002\u031d\u031f\u0005&\u0014\u0002\u031e", - "\u031d\u0003\u0002\u0002\u0002\u031e\u031f\u0003\u0002\u0002\u0002\u031f", - "\u0380\u0003\u0002\u0002\u0002\u0320\u0321\u0007\u00b9\u0002\u0002\u0321", - "\u0322\u0007Z\u0002\u0002\u0322\u0380\u0005\u009cO\u0002\u0323\u032b", - "\u0007\u00b9\u0002\u0002\u0324\u032c\u0007\u0107\u0002\u0002\u0325\u0327", - "\u000b\u0002\u0002\u0002\u0326\u0325\u0003\u0002\u0002\u0002\u0327\u032a", - "\u0003\u0002\u0002\u0002\u0328\u0329\u0003\u0002\u0002\u0002\u0328\u0326", - "\u0003\u0002\u0002\u0002\u0329\u032c\u0003\u0002\u0002\u0002\u032a\u0328", - "\u0003\u0002\u0002\u0002\u032b\u0324\u0003\u0002\u0002\u0002\u032b\u0328", - "\u0003\u0002\u0002\u0002\u032c\u0380\u0003\u0002\u0002\u0002\u032d\u032f", - "\u0007\u00bb\u0002\u0002\u032e\u0330\u0007\u00bd\u0002\u0002\u032f\u032e", - "\u0003\u0002\u0002\u0002\u032f\u0330\u0003\u0002\u0002\u0002\u0330\u0331", - "\u0003\u0002\u0002\u0002\u0331\u0332\u0007Z\u0002\u0002\u0332\u0335", - "\u0005\u009cO\u0002\u0333\u0334\u0007\u00c1\u0002\u0002\u0334\u0336", - "\u0005.\u0018\u0002\u0335\u0333\u0003\u0002\u0002\u0002\u0335\u0336", - "\u0003\u0002\u0002\u0002\u0336\u033b\u0003\u0002\u0002\u0002\u0337\u0339", - "\u0007\u0018\u0002\u0002\u0338\u0337\u0003\u0002\u0002\u0002\u0338\u0339", - "\u0003\u0002\u0002\u0002\u0339\u033a\u0003\u0002\u0002\u0002\u033a\u033c", - "\u0005\u001a\u000e\u0002\u033b\u0338\u0003\u0002\u0002\u0002\u033b\u033c", - "\u0003\u0002\u0002\u0002\u033c\u0380\u0003\u0002\u0002\u0002\u033d\u033e", - "\u0007\u00bc\u0002\u0002\u033e\u0341\u0007Z\u0002\u0002\u033f\u0340", - "\u0007\u0089\u0002\u0002\u0340\u0342\u0007,\u0002\u0002\u0341\u033f", - "\u0003\u0002\u0002\u0002\u0341\u0342\u0003\u0002\u0002\u0002\u0342\u0343", - "\u0003\u0002\u0002\u0002\u0343\u0380\u0005\u009cO\u0002\u0344\u0345", - "\u0007\u00ba\u0002\u0002\u0345\u0380\u0007\u00bb\u0002\u0002\u0346\u0347", - "\u0007\u00ed\u0002\u0002\u0347\u0349\u0007\u007f\u0002\u0002\u0348\u034a", - "\u0007\u00f8\u0002\u0002\u0349\u0348\u0003\u0002\u0002\u0002\u0349\u034a", - "\u0003\u0002\u0002\u0002\u034a\u034b\u0003\u0002\u0002\u0002\u034b\u034c", - "\u0007\u00f9\u0002\u0002\u034c\u034e\u0007\u0107\u0002\u0002\u034d\u034f", - "\u0007\u00a6\u0002\u0002\u034e\u034d\u0003\u0002\u0002\u0002\u034e\u034f", - "\u0003\u0002\u0002\u0002\u034f\u0350\u0003\u0002\u0002\u0002\u0350\u0351", - "\u0007`\u0002\u0002\u0351\u0352\u0007Z\u0002\u0002\u0352\u0354\u0005", - "\u009cO\u0002\u0353\u0355\u0005 \u0011\u0002\u0354\u0353\u0003\u0002", - "\u0002\u0002\u0354\u0355\u0003\u0002\u0002\u0002\u0355\u0380\u0003\u0002", - "\u0002\u0002\u0356\u0357\u0007\u00dc\u0002\u0002\u0357\u0358\u0007Z", - "\u0002\u0002\u0358\u035a\u0005\u009cO\u0002\u0359\u035b\u0005 \u0011", - "\u0002\u035a\u0359\u0003\u0002\u0002\u0002\u035a\u035b\u0003\u0002\u0002", - "\u0002\u035b\u0380\u0003\u0002\u0002\u0002\u035c\u035d\u0007\u00e8\u0002", - "\u0002\u035d\u035e\u0007\u00e9\u0002\u0002\u035e\u035f\u0007Z\u0002", - "\u0002\u035f\u0380\u0005\u009cO\u0002\u0360\u0361\t\b\u0002\u0002\u0361", - "\u0365\u0005\u00dep\u0002\u0362\u0364\u000b\u0002\u0002\u0002\u0363", - "\u0362\u0003\u0002\u0002\u0002\u0364\u0367\u0003\u0002\u0002\u0002\u0365", - "\u0366\u0003\u0002\u0002\u0002\u0365\u0363\u0003\u0002\u0002\u0002\u0366", - "\u0380\u0003\u0002\u0002\u0002\u0367\u0365\u0003\u0002\u0002\u0002\u0368", - "\u0369\u0007}\u0002\u0002\u0369\u036d\u0007\u00ee\u0002\u0002\u036a", - "\u036c\u000b\u0002\u0002\u0002\u036b\u036a\u0003\u0002\u0002\u0002\u036c", - "\u036f\u0003\u0002\u0002\u0002\u036d\u036e\u0003\u0002\u0002\u0002\u036d", - "\u036b\u0003\u0002\u0002\u0002\u036e\u0380\u0003\u0002\u0002\u0002\u036f", - "\u036d\u0003\u0002\u0002\u0002\u0370\u0374\u0007}\u0002\u0002\u0371", - "\u0373\u000b\u0002\u0002\u0002\u0372\u0371\u0003\u0002\u0002\u0002\u0373", - "\u0376\u0003\u0002\u0002\u0002\u0374\u0375\u0003\u0002\u0002\u0002\u0374", - "\u0372\u0003\u0002\u0002\u0002\u0375\u0380\u0003\u0002\u0002\u0002\u0376", - "\u0374\u0003\u0002\u0002\u0002\u0377\u0380\u0007~\u0002\u0002\u0378", - "\u037c\u0005\u0010\t\u0002\u0379\u037b\u000b\u0002\u0002\u0002\u037a", - "\u0379\u0003\u0002\u0002\u0002\u037b\u037e\u0003\u0002\u0002\u0002\u037c", - "\u037d\u0003\u0002\u0002\u0002\u037c\u037a\u0003\u0002\u0002\u0002\u037d", - "\u0380\u0003\u0002\u0002\u0002\u037e\u037c\u0003\u0002\u0002\u0002\u037f", - "\u00fd\u0003\u0002\u0002\u0002\u037f\u00fe\u0003\u0002\u0002\u0002\u037f", - "\u0100\u0003\u0002\u0002\u0002\u037f\u0114\u0003\u0002\u0002\u0002\u037f", - "\u011b\u0003\u0002\u0002\u0002\u037f\u0125\u0003\u0002\u0002\u0002\u037f", - "\u0143\u0003\u0002\u0002\u0002\u037f\u0164\u0003\u0002\u0002\u0002\u037f", - "\u0181\u0003\u0002\u0002\u0002\u037f\u018e\u0003\u0002\u0002\u0002\u037f", - "\u019f\u0003\u0002\u0002\u0002\u037f\u01a8\u0003\u0002\u0002\u0002\u037f", - "\u01af\u0003\u0002\u0002\u0002\u037f\u01b6\u0003\u0002\u0002\u0002\u037f", - "\u01c1\u0003\u0002\u0002\u0002\u037f\u01d0\u0003\u0002\u0002\u0002\u037f", - "\u01de\u0003\u0002\u0002\u0002\u037f\u01e8\u0003\u0002\u0002\u0002\u037f", - "\u01f6\u0003\u0002\u0002\u0002\u037f\u0204\u0003\u0002\u0002\u0002\u037f", - "\u020c\u0003\u0002\u0002\u0002\u037f\u021f\u0003\u0002\u0002\u0002\u037f", - "\u022f\u0003\u0002\u0002\u0002\u037f\u0238\u0003\u0002\u0002\u0002\u037f", - "\u023e\u0003\u0002\u0002\u0002\u037f\u0248\u0003\u0002\u0002\u0002\u037f", - "\u024f\u0003\u0002\u0002\u0002\u037f\u0274\u0003\u0002\u0002\u0002\u037f", - "\u028a\u0003\u0002\u0002\u0002\u037f\u0292\u0003\u0002\u0002\u0002\u037f", - "\u02ae\u0003\u0002\u0002\u0002\u037f\u02b8\u0003\u0002\u0002\u0002\u037f", - "\u02bd\u0003\u0002\u0002\u0002\u037f\u02c9\u0003\u0002\u0002\u0002\u037f", - "\u02d5\u0003\u0002\u0002\u0002\u037f\u02dd\u0003\u0002\u0002\u0002\u037f", - "\u02e6\u0003\u0002\u0002\u0002\u037f\u02ee\u0003\u0002\u0002\u0002\u037f", - "\u02f4\u0003\u0002\u0002\u0002\u037f\u0302\u0003\u0002\u0002\u0002\u037f", - "\u0306\u0003\u0002\u0002\u0002\u037f\u030c\u0003\u0002\u0002\u0002\u037f", - "\u0312\u0003\u0002\u0002\u0002\u037f\u0320\u0003\u0002\u0002\u0002\u037f", - "\u0323\u0003\u0002\u0002\u0002\u037f\u032d\u0003\u0002\u0002\u0002\u037f", - "\u033d\u0003\u0002\u0002\u0002\u037f\u0344\u0003\u0002\u0002\u0002\u037f", - "\u0346\u0003\u0002\u0002\u0002\u037f\u0356\u0003\u0002\u0002\u0002\u037f", - "\u035c\u0003\u0002\u0002\u0002\u037f\u0360\u0003\u0002\u0002\u0002\u037f", - "\u0368\u0003\u0002\u0002\u0002\u037f\u0370\u0003\u0002\u0002\u0002\u037f", - "\u0377\u0003\u0002\u0002\u0002\u037f\u0378\u0003\u0002\u0002\u0002\u0380", - "\u000f\u0003\u0002\u0002\u0002\u0381\u0382\u0007Y\u0002\u0002\u0382", - "\u042c\u0007\u00ee\u0002\u0002\u0383\u0384\u0007o\u0002\u0002\u0384", - "\u042c\u0007\u00ee\u0002\u0002\u0385\u0387\u0007\u00e5\u0002\u0002\u0386", - "\u0388\u0007\u00ee\u0002\u0002\u0387\u0386\u0003\u0002\u0002\u0002\u0387", - "\u0388\u0003\u0002\u0002\u0002\u0388\u042c\u0003\u0002\u0002\u0002\u0389", - "\u038b\u0007\u00e4\u0002\u0002\u038a\u038c\u0007\u00ee\u0002\u0002\u038b", - "\u038a\u0003\u0002\u0002\u0002\u038b\u038c\u0003\u0002\u0002\u0002\u038c", - "\u042c\u0003\u0002\u0002\u0002\u038d\u038e\u0007h\u0002\u0002\u038e", - "\u042c\u0007\u00e5\u0002\u0002\u038f\u0390\u0007h\u0002\u0002\u0390", - "\u0392\u0007\u00ee\u0002\u0002\u0391\u0393\u0007\u00e5\u0002\u0002\u0392", - "\u0391\u0003\u0002\u0002\u0002\u0392\u0393\u0003\u0002\u0002\u0002\u0393", - "\u042c\u0003\u0002\u0002\u0002\u0394\u0395\u0007h\u0002\u0002\u0395", - "\u042c\u0007\u00f1\u0002\u0002\u0396\u0397\u0007h\u0002\u0002\u0397", - "\u042c\u0007\u00ef\u0002\u0002\u0398\u0399\u0007h\u0002\u0002\u0399", - "\u039a\u0007R\u0002\u0002\u039a\u042c\u0007\u00ef\u0002\u0002\u039b", - "\u039c\u0007\u00eb\u0002\u0002\u039c\u042c\u0007Z\u0002\u0002\u039d", - "\u039e\u0007\u00ec\u0002\u0002\u039e\u042c\u0007Z\u0002\u0002\u039f", - "\u03a0\u0007h\u0002\u0002\u03a0\u042c\u0007\u00f0\u0002\u0002\u03a1", - "\u03a2\u0007h\u0002\u0002\u03a2\u03a3\u0007Y\u0002\u0002\u03a3\u042c", - "\u0007Z\u0002\u0002\u03a4\u03a5\u0007h\u0002\u0002\u03a5\u042c\u0007", - "\u00f2\u0002\u0002\u03a6\u03a7\u0007h\u0002\u0002\u03a7\u042c\u0007", - "\u00f4\u0002\u0002\u03a8\u03a9\u0007h\u0002\u0002\u03a9\u042c\u0007", - "\u00f5\u0002\u0002\u03aa\u03ab\u0007Y\u0002\u0002\u03ab\u042c\u0007", - "\u00f3\u0002\u0002\u03ac\u03ad\u0007o\u0002\u0002\u03ad\u042c\u0007", - "\u00f3\u0002\u0002\u03ae\u03af\u0007w\u0002\u0002\u03af\u042c\u0007", - "\u00f3\u0002\u0002\u03b0\u03b1\u0007\u00e6\u0002\u0002\u03b1\u042c\u0007", - "Z\u0002\u0002\u03b2\u03b3\u0007\u00e6\u0002\u0002\u03b3\u042c\u0007", - "\u00d9\u0002\u0002\u03b4\u03b5\u0007\u00e7\u0002\u0002\u03b5\u042c\u0007", - "Z\u0002\u0002\u03b6\u03b7\u0007\u00e7\u0002\u0002\u03b7\u042c\u0007", - "\u00d9\u0002\u0002\u03b8\u03b9\u0007Y\u0002\u0002\u03b9\u03ba\u0007", - "\u00c0\u0002\u0002\u03ba\u042c\u0007\u0084\u0002\u0002\u03bb\u03bc\u0007", - "o\u0002\u0002\u03bc\u03bd\u0007\u00c0\u0002\u0002\u03bd\u042c\u0007", - "\u0084\u0002\u0002\u03be\u03bf\u0007w\u0002\u0002\u03bf\u03c0\u0007", - "Z\u0002\u0002\u03c0\u03c1\u0005\u009cO\u0002\u03c1\u03c2\u0007*\u0002", - "\u0002\u03c2\u03c3\u0007\u00d4\u0002\u0002\u03c3\u042c\u0003\u0002\u0002", - "\u0002\u03c4\u03c5\u0007w\u0002\u0002\u03c5\u03c6\u0007Z\u0002\u0002", - "\u03c6\u03c7\u0005\u009cO\u0002\u03c7\u03c8\u0007\u00d4\u0002\u0002", - "\u03c8\u03c9\u0007\u001e\u0002\u0002\u03c9\u042c\u0003\u0002\u0002\u0002", - "\u03ca\u03cb\u0007w\u0002\u0002\u03cb\u03cc\u0007Z\u0002\u0002\u03cc", - "\u03cd\u0005\u009cO\u0002\u03cd\u03ce\u0007*\u0002\u0002\u03ce\u03cf", - "\u0007\u00d5\u0002\u0002\u03cf\u042c\u0003\u0002\u0002\u0002\u03d0\u03d1", - "\u0007w\u0002\u0002\u03d1\u03d2\u0007Z\u0002\u0002\u03d2\u03d3\u0005", - "\u009cO\u0002\u03d3\u03d4\u0007\u00c6\u0002\u0002\u03d4\u03d5\u0007", - "\u001e\u0002\u0002\u03d5\u042c\u0003\u0002\u0002\u0002\u03d6\u03d7\u0007", - "w\u0002\u0002\u03d7\u03d8\u0007Z\u0002\u0002\u03d8\u03d9\u0005\u009c", - "O\u0002\u03d9\u03da\u0007*\u0002\u0002\u03da\u03db\u0007\u00c6\u0002", - "\u0002\u03db\u042c\u0003\u0002\u0002\u0002\u03dc\u03dd\u0007w\u0002", - "\u0002\u03dd\u03de\u0007Z\u0002\u0002\u03de\u03df\u0005\u009cO\u0002", - "\u03df\u03e0\u0007*\u0002\u0002\u03e0\u03e1\u0007\u00c7\u0002\u0002", - "\u03e1\u03e2\u0007\u0018\u0002\u0002\u03e2\u03e3\u0007\u00c8\u0002\u0002", - "\u03e3\u042c\u0003\u0002\u0002\u0002\u03e4\u03e5\u0007w\u0002\u0002", - "\u03e5\u03e6\u0007Z\u0002\u0002\u03e6\u03e7\u0005\u009cO\u0002\u03e7", - "\u03e8\u0007}\u0002\u0002\u03e8\u03e9\u0007\u00c6\u0002\u0002\u03e9", - "\u03ea\u0007\u00c9\u0002\u0002\u03ea\u042c\u0003\u0002\u0002\u0002\u03eb", - "\u03ec\u0007w\u0002\u0002\u03ec\u03ed\u0007Z\u0002\u0002\u03ed\u03ee", - "\u0005\u009cO\u0002\u03ee\u03ef\u0007\u00ca\u0002\u0002\u03ef\u03f0", - "\u0007L\u0002\u0002\u03f0\u042c\u0003\u0002\u0002\u0002\u03f1\u03f2", - "\u0007w\u0002\u0002\u03f2\u03f3\u0007Z\u0002\u0002\u03f3\u03f4\u0005", - "\u009cO\u0002\u03f4\u03f5\u0007\u00cb\u0002\u0002\u03f5\u03f6\u0007", - "L\u0002\u0002\u03f6\u042c\u0003\u0002\u0002\u0002\u03f7\u03f8\u0007", - "w\u0002\u0002\u03f8\u03f9\u0007Z\u0002\u0002\u03f9\u03fa\u0005\u009c", - "O\u0002\u03fa\u03fb\u0007\u00cc\u0002\u0002\u03fb\u03fc\u0007L\u0002", - "\u0002\u03fc\u042c\u0003\u0002\u0002\u0002\u03fd\u03fe\u0007w\u0002", - "\u0002\u03fe\u03ff\u0007Z\u0002\u0002\u03ff\u0400\u0005\u009cO\u0002", - "\u0400\u0401\u0007\u00ce\u0002\u0002\u0401\u042c\u0003\u0002\u0002\u0002", - "\u0402\u0403\u0007w\u0002\u0002\u0403\u0404\u0007Z\u0002\u0002\u0404", - "\u0406\u0005\u009cO\u0002\u0405\u0407\u0005 \u0011\u0002\u0406\u0405", - "\u0003\u0002\u0002\u0002\u0406\u0407\u0003\u0002\u0002\u0002\u0407\u0408", - "\u0003\u0002\u0002\u0002\u0408\u0409\u0007\u00cf\u0002\u0002\u0409\u042c", - "\u0003\u0002\u0002\u0002\u040a\u040b\u0007w\u0002\u0002\u040b\u040c", - "\u0007Z\u0002\u0002\u040c\u040e\u0005\u009cO\u0002\u040d\u040f\u0005", - " \u0011\u0002\u040e\u040d\u0003\u0002\u0002\u0002\u040e\u040f\u0003", - "\u0002\u0002\u0002\u040f\u0410\u0003\u0002\u0002\u0002\u0410\u0411\u0007", - "\u00d0\u0002\u0002\u0411\u042c\u0003\u0002\u0002\u0002\u0412\u0413\u0007", - "w\u0002\u0002\u0413\u0414\u0007Z\u0002\u0002\u0414\u0416\u0005\u009c", - "O\u0002\u0415\u0417\u0005 \u0011\u0002\u0416\u0415\u0003\u0002\u0002", - "\u0002\u0416\u0417\u0003\u0002\u0002\u0002\u0417\u0418\u0003\u0002\u0002", - "\u0002\u0418\u0419\u0007}\u0002\u0002\u0419\u041a\u0007\u00cd\u0002", - "\u0002\u041a\u042c\u0003\u0002\u0002\u0002\u041b\u041c\u0007w\u0002", - "\u0002\u041c\u041d\u0007Z\u0002\u0002\u041d\u041f\u0005\u009cO\u0002", - "\u041e\u0420\u0005 \u0011\u0002\u041f\u041e\u0003\u0002\u0002\u0002", - "\u041f\u0420\u0003\u0002\u0002\u0002\u0420\u0421\u0003\u0002\u0002\u0002", - "\u0421\u0422\u0007]\u0002\u0002\u0422\u0423\u0007j\u0002\u0002\u0423", - "\u042c\u0003\u0002\u0002\u0002\u0424\u0425\u0007\u0080\u0002\u0002\u0425", - "\u042c\u0007\u0081\u0002\u0002\u0426\u042c\u0007\u0082\u0002\u0002\u0427", - "\u042c\u0007\u0083\u0002\u0002\u0428\u042c\u0007\u00db\u0002\u0002\u0429", - "\u042a\u0007_\u0002\u0002\u042a\u042c\u0007\u0016\u0002\u0002\u042b", - "\u0381\u0003\u0002\u0002\u0002\u042b\u0383\u0003\u0002\u0002\u0002\u042b", - "\u0385\u0003\u0002\u0002\u0002\u042b\u0389\u0003\u0002\u0002\u0002\u042b", - "\u038d\u0003\u0002\u0002\u0002\u042b\u038f\u0003\u0002\u0002\u0002\u042b", - "\u0394\u0003\u0002\u0002\u0002\u042b\u0396\u0003\u0002\u0002\u0002\u042b", - "\u0398\u0003\u0002\u0002\u0002\u042b\u039b\u0003\u0002\u0002\u0002\u042b", - "\u039d\u0003\u0002\u0002\u0002\u042b\u039f\u0003\u0002\u0002\u0002\u042b", - "\u03a1\u0003\u0002\u0002\u0002\u042b\u03a4\u0003\u0002\u0002\u0002\u042b", - "\u03a6\u0003\u0002\u0002\u0002\u042b\u03a8\u0003\u0002\u0002\u0002\u042b", - "\u03aa\u0003\u0002\u0002\u0002\u042b\u03ac\u0003\u0002\u0002\u0002\u042b", - "\u03ae\u0003\u0002\u0002\u0002\u042b\u03b0\u0003\u0002\u0002\u0002\u042b", - "\u03b2\u0003\u0002\u0002\u0002\u042b\u03b4\u0003\u0002\u0002\u0002\u042b", - "\u03b6\u0003\u0002\u0002\u0002\u042b\u03b8\u0003\u0002\u0002\u0002\u042b", - "\u03bb\u0003\u0002\u0002\u0002\u042b\u03be\u0003\u0002\u0002\u0002\u042b", - "\u03c4\u0003\u0002\u0002\u0002\u042b\u03ca\u0003\u0002\u0002\u0002\u042b", - "\u03d0\u0003\u0002\u0002\u0002\u042b\u03d6\u0003\u0002\u0002\u0002\u042b", - "\u03dc\u0003\u0002\u0002\u0002\u042b\u03e4\u0003\u0002\u0002\u0002\u042b", - "\u03eb\u0003\u0002\u0002\u0002\u042b\u03f1\u0003\u0002\u0002\u0002\u042b", - "\u03f7\u0003\u0002\u0002\u0002\u042b\u03fd\u0003\u0002\u0002\u0002\u042b", - "\u0402\u0003\u0002\u0002\u0002\u042b\u040a\u0003\u0002\u0002\u0002\u042b", - "\u0412\u0003\u0002\u0002\u0002\u042b\u041b\u0003\u0002\u0002\u0002\u042b", - "\u0424\u0003\u0002\u0002\u0002\u042b\u0426\u0003\u0002\u0002\u0002\u042b", - "\u0427\u0003\u0002\u0002\u0002\u042b\u0428\u0003\u0002\u0002\u0002\u042b", - "\u0429\u0003\u0002\u0002\u0002\u042c\u0011\u0003\u0002\u0002\u0002\u042d", - "\u042f\u0007Y\u0002\u0002\u042e\u0430\u0007\u00c0\u0002\u0002\u042f", - "\u042e\u0003\u0002\u0002\u0002\u042f\u0430\u0003\u0002\u0002\u0002\u0430", - "\u0432\u0003\u0002\u0002\u0002\u0431\u0433\u0007\u00e2\u0002\u0002\u0432", - "\u0431\u0003\u0002\u0002\u0002\u0432\u0433\u0003\u0002\u0002\u0002\u0433", - "\u0434\u0003\u0002\u0002\u0002\u0434\u0438\u0007Z\u0002\u0002\u0435", - "\u0436\u0007\u0089\u0002\u0002\u0436\u0437\u0007*\u0002\u0002\u0437", - "\u0439\u0007,\u0002\u0002\u0438\u0435\u0003\u0002\u0002\u0002\u0438", - "\u0439\u0003\u0002\u0002\u0002\u0439\u043a\u0003\u0002\u0002\u0002\u043a", - "\u043b\u0005\u009cO\u0002\u043b\u0013\u0003\u0002\u0002\u0002\u043c", - "\u043d\u0007\u00d4\u0002\u0002\u043d\u043e\u0007\u001e\u0002\u0002\u043e", - "\u0442\u0005p9\u0002\u043f\u0440\u0007\u00d5\u0002\u0002\u0440\u0441", - "\u0007\u001e\u0002\u0002\u0441\u0443\u0005t;\u0002\u0442\u043f\u0003", - "\u0002\u0002\u0002\u0442\u0443\u0003\u0002\u0002\u0002\u0443\u0444\u0003", - "\u0002\u0002\u0002\u0444\u0445\u0007`\u0002\u0002\u0445\u0446\u0007", - "\u010b\u0002\u0002\u0446\u0447\u0007\u00c5\u0002\u0002\u0447\u0015\u0003", - "\u0002\u0002\u0002\u0448\u0449\u0007\u00c6\u0002\u0002\u0449\u044a\u0007", - "\u001e\u0002\u0002\u044a\u044b\u0005p9\u0002\u044b\u044e\u0007G\u0002", - "\u0002\u044c\u044f\u00056\u001c\u0002\u044d\u044f\u00058\u001d\u0002", - "\u044e\u044c\u0003\u0002\u0002\u0002\u044e\u044d\u0003\u0002\u0002\u0002", - "\u044f\u0453\u0003\u0002\u0002\u0002\u0450\u0451\u0007\u00c7\u0002\u0002", - "\u0451\u0452\u0007\u0018\u0002\u0002\u0452\u0454\u0007\u00c8\u0002\u0002", - "\u0453\u0450\u0003\u0002\u0002\u0002\u0453\u0454\u0003\u0002\u0002\u0002", - "\u0454\u0017\u0003\u0002\u0002\u0002\u0455\u0456\u0007\u00c9\u0002\u0002", - "\u0456\u0457\u0007\u0107\u0002\u0002\u0457\u0019\u0003\u0002\u0002\u0002", - "\u0458\u045a\u0005(\u0015\u0002\u0459\u0458\u0003\u0002\u0002\u0002", - "\u0459\u045a\u0003\u0002\u0002\u0002\u045a\u045b\u0003\u0002\u0002\u0002", - "\u045b\u045c\u0005B\"\u0002\u045c\u001b\u0003\u0002\u0002\u0002\u045d", - "\u045e\u0007^\u0002\u0002\u045e\u045f\u0007\u00a6\u0002\u0002\u045f", - "\u0460\u0007Z\u0002\u0002\u0460\u0467\u0005\u009cO\u0002\u0461\u0465", - "\u0005 \u0011\u0002\u0462\u0463\u0007\u0089\u0002\u0002\u0463\u0464", - "\u0007*\u0002\u0002\u0464\u0466\u0007,\u0002\u0002\u0465\u0462\u0003", - "\u0002\u0002\u0002\u0465\u0466\u0003\u0002\u0002\u0002\u0466\u0468\u0003", - "\u0002\u0002\u0002\u0467\u0461\u0003\u0002\u0002\u0002\u0467\u0468\u0003", - "\u0002\u0002\u0002\u0468\u048e\u0003\u0002\u0002\u0002\u0469\u046a\u0007", - "^\u0002\u0002\u046a\u046c\u0007`\u0002\u0002\u046b\u046d\u0007Z\u0002", - "\u0002\u046c\u046b\u0003\u0002\u0002\u0002\u046c\u046d\u0003\u0002\u0002", - "\u0002\u046d\u046e\u0003\u0002\u0002\u0002\u046e\u0470\u0005\u009cO", - "\u0002\u046f\u0471\u0005 \u0011\u0002\u0470\u046f\u0003\u0002\u0002", - "\u0002\u0470\u0471\u0003\u0002\u0002\u0002\u0471\u048e\u0003\u0002\u0002", - "\u0002\u0472\u0473\u0007^\u0002\u0002\u0473\u0475\u0007\u00a6\u0002", - "\u0002\u0474\u0476\u0007\u00f8\u0002\u0002\u0475\u0474\u0003\u0002\u0002", - "\u0002\u0475\u0476\u0003\u0002\u0002\u0002\u0476\u0477\u0003\u0002\u0002", - "\u0002\u0477\u0478\u0007[\u0002\u0002\u0478\u047a\u0007\u0107\u0002", - "\u0002\u0479\u047b\u0005\u009aN\u0002\u047a\u0479\u0003\u0002\u0002", - "\u0002\u047a\u047b\u0003\u0002\u0002\u0002\u047b\u047d\u0003\u0002\u0002", - "\u0002\u047c\u047e\u0005:\u001e\u0002\u047d\u047c\u0003\u0002\u0002", - "\u0002\u047d\u047e\u0003\u0002\u0002\u0002\u047e\u048e\u0003\u0002\u0002", - "\u0002\u047f\u0480\u0007^\u0002\u0002\u0480\u0482\u0007\u00a6\u0002", - "\u0002\u0481\u0483\u0007\u00f8\u0002\u0002\u0482\u0481\u0003\u0002\u0002", - "\u0002\u0482\u0483\u0003\u0002\u0002\u0002\u0483\u0484\u0003\u0002\u0002", - "\u0002\u0484\u0486\u0007[\u0002\u0002\u0485\u0487\u0007\u0107\u0002", - "\u0002\u0486\u0485\u0003\u0002\u0002\u0002\u0486\u0487\u0003\u0002\u0002", - "\u0002\u0487\u0488\u0003\u0002\u0002\u0002\u0488\u048b\u0005,\u0017", - "\u0002\u0489\u048a\u0007\u00c1\u0002\u0002\u048a\u048c\u0005.\u0018", - "\u0002\u048b\u0489\u0003\u0002\u0002\u0002\u048b\u048c\u0003\u0002\u0002", - "\u0002\u048c\u048e\u0003\u0002\u0002\u0002\u048d\u045d\u0003\u0002\u0002", - "\u0002\u048d\u0469\u0003\u0002\u0002\u0002\u048d\u0472\u0003\u0002\u0002", - "\u0002\u048d\u047f\u0003\u0002\u0002\u0002\u048e\u001d\u0003\u0002\u0002", - "\u0002\u048f\u0491\u0005 \u0011\u0002\u0490\u0492\u0005\u0018\r\u0002", - "\u0491\u0490\u0003\u0002\u0002\u0002\u0491\u0492\u0003\u0002\u0002\u0002", - "\u0492\u001f\u0003\u0002\u0002\u0002\u0493\u0494\u0007L\u0002\u0002", - "\u0494\u0495\u0007\u0003\u0002\u0002\u0495\u049a\u0005\"\u0012\u0002", - "\u0496\u0497\u0007\u0006\u0002\u0002\u0497\u0499\u0005\"\u0012\u0002", - "\u0498\u0496\u0003\u0002\u0002\u0002\u0499\u049c\u0003\u0002\u0002\u0002", - "\u049a\u0498\u0003\u0002\u0002\u0002\u049a\u049b\u0003\u0002\u0002\u0002", - "\u049b\u049d\u0003\u0002\u0002\u0002\u049c\u049a\u0003\u0002\u0002\u0002", - "\u049d\u049e\u0007\u0004\u0002\u0002\u049e!\u0003\u0002\u0002\u0002", - "\u049f\u04a2\u0005\u00dep\u0002\u04a0\u04a1\u0007\u008c\u0002\u0002", - "\u04a1\u04a3\u0005\u00aeX\u0002\u04a2\u04a0\u0003\u0002\u0002\u0002", - "\u04a2\u04a3\u0003\u0002\u0002\u0002\u04a3#\u0003\u0002\u0002\u0002", - "\u04a4\u04aa\u0005\u00dco\u0002\u04a5\u04aa\u0007\u0107\u0002\u0002", - "\u04a6\u04aa\u0005\u00b0Y\u0002\u04a7\u04aa\u0005\u00b2Z\u0002\u04a8", - "\u04aa\u0005\u00b4[\u0002\u04a9\u04a4\u0003\u0002\u0002\u0002\u04a9", - "\u04a5\u0003\u0002\u0002\u0002\u04a9\u04a6\u0003\u0002\u0002\u0002\u04a9", - "\u04a7\u0003\u0002\u0002\u0002\u04a9\u04a8\u0003\u0002\u0002\u0002\u04aa", - "%\u0003\u0002\u0002\u0002\u04ab\u04b0\u0005\u00dep\u0002\u04ac\u04ad", - "\u0007\u0005\u0002\u0002\u04ad\u04af\u0005\u00dep\u0002\u04ae\u04ac", - "\u0003\u0002\u0002\u0002\u04af\u04b2\u0003\u0002\u0002\u0002\u04b0\u04ae", - "\u0003\u0002\u0002\u0002\u04b0\u04b1\u0003\u0002\u0002\u0002\u04b1\'", - "\u0003\u0002\u0002\u0002\u04b2\u04b0\u0003\u0002\u0002\u0002\u04b3\u04b4", - "\u0007W\u0002\u0002\u04b4\u04b9\u0005*\u0016\u0002\u04b5\u04b6\u0007", - "\u0006\u0002\u0002\u04b6\u04b8\u0005*\u0016\u0002\u04b7\u04b5\u0003", - "\u0002\u0002\u0002\u04b8\u04bb\u0003\u0002\u0002\u0002\u04b9\u04b7\u0003", - "\u0002\u0002\u0002\u04b9\u04ba\u0003\u0002\u0002\u0002\u04ba)\u0003", - "\u0002\u0002\u0002\u04bb\u04b9\u0003\u0002\u0002\u0002\u04bc\u04be\u0005", - "\u00dep\u0002\u04bd\u04bf\u0007\u0018\u0002\u0002\u04be\u04bd\u0003", - "\u0002\u0002\u0002\u04be\u04bf\u0003\u0002\u0002\u0002\u04bf\u04c0\u0003", - "\u0002\u0002\u0002\u04c0\u04c1\u0007\u0003\u0002\u0002\u04c1\u04c2\u0005", - "\u001a\u000e\u0002\u04c2\u04c3\u0007\u0004\u0002\u0002\u04c3+\u0003", - "\u0002\u0002\u0002\u04c4\u04c5\u0007\u00a9\u0002\u0002\u04c5\u04c6\u0005", - "\u00dco\u0002\u04c6-\u0003\u0002\u0002\u0002\u04c7\u04c8\u0007\u0003", - "\u0002\u0002\u04c8\u04cd\u00050\u0019\u0002\u04c9\u04ca\u0007\u0006", - "\u0002\u0002\u04ca\u04cc\u00050\u0019\u0002\u04cb\u04c9\u0003\u0002", - "\u0002\u0002\u04cc\u04cf\u0003\u0002\u0002\u0002\u04cd\u04cb\u0003\u0002", - "\u0002\u0002\u04cd\u04ce\u0003\u0002\u0002\u0002\u04ce\u04d0\u0003\u0002", - "\u0002\u0002\u04cf\u04cd\u0003\u0002\u0002\u0002\u04d0\u04d1\u0007\u0004", - "\u0002\u0002\u04d1/\u0003\u0002\u0002\u0002\u04d2\u04d7\u00052\u001a", - "\u0002\u04d3\u04d5\u0007\u008c\u0002\u0002\u04d4\u04d3\u0003\u0002\u0002", - "\u0002\u04d4\u04d5\u0003\u0002\u0002\u0002\u04d5\u04d6\u0003\u0002\u0002", - "\u0002\u04d6\u04d8\u00054\u001b\u0002\u04d7\u04d4\u0003\u0002\u0002", - "\u0002\u04d7\u04d8\u0003\u0002\u0002\u0002\u04d81\u0003\u0002\u0002", - "\u0002\u04d9\u04de\u0005\u00dep\u0002\u04da\u04db\u0007\u0005\u0002", - "\u0002\u04db\u04dd\u0005\u00dep\u0002\u04dc\u04da\u0003\u0002\u0002", - "\u0002\u04dd\u04e0\u0003\u0002\u0002\u0002\u04de\u04dc\u0003\u0002\u0002", - "\u0002\u04de\u04df\u0003\u0002\u0002\u0002\u04df\u04e3\u0003\u0002\u0002", - "\u0002\u04e0\u04de\u0003\u0002\u0002\u0002\u04e1\u04e3\u0007\u0107\u0002", - "\u0002\u04e2\u04d9\u0003\u0002\u0002\u0002\u04e2\u04e1\u0003\u0002\u0002", - "\u0002\u04e33\u0003\u0002\u0002\u0002\u04e4\u04e9\u0007\u010b\u0002", - "\u0002\u04e5\u04e9\u0007\u010c\u0002\u0002\u04e6\u04e9\u0005\u00b6\\", - "\u0002\u04e7\u04e9\u0007\u0107\u0002\u0002\u04e8\u04e4\u0003\u0002\u0002", - "\u0002\u04e8\u04e5\u0003\u0002\u0002\u0002\u04e8\u04e6\u0003\u0002\u0002", - "\u0002\u04e8\u04e7\u0003\u0002\u0002\u0002\u04e95\u0003\u0002\u0002", - "\u0002\u04ea\u04eb\u0007\u0003\u0002\u0002\u04eb\u04f0\u0005\u00aeX", - "\u0002\u04ec\u04ed\u0007\u0006\u0002\u0002\u04ed\u04ef\u0005\u00aeX", - "\u0002\u04ee\u04ec\u0003\u0002\u0002\u0002\u04ef\u04f2\u0003\u0002\u0002", - "\u0002\u04f0\u04ee\u0003\u0002\u0002\u0002\u04f0\u04f1\u0003\u0002\u0002", - "\u0002\u04f1\u04f3\u0003\u0002\u0002\u0002\u04f2\u04f0\u0003\u0002\u0002", - "\u0002\u04f3\u04f4\u0007\u0004\u0002\u0002\u04f47\u0003\u0002\u0002", - "\u0002\u04f5\u04f6\u0007\u0003\u0002\u0002\u04f6\u04fb\u00056\u001c", - "\u0002\u04f7\u04f8\u0007\u0006\u0002\u0002\u04f8\u04fa\u00056\u001c", - "\u0002\u04f9\u04f7\u0003\u0002\u0002\u0002\u04fa\u04fd\u0003\u0002\u0002", - "\u0002\u04fb\u04f9\u0003\u0002\u0002\u0002\u04fb\u04fc\u0003\u0002\u0002", - "\u0002\u04fc\u04fe\u0003\u0002\u0002\u0002\u04fd\u04fb\u0003\u0002\u0002", - "\u0002\u04fe\u04ff\u0007\u0004\u0002\u0002\u04ff9\u0003\u0002\u0002", - "\u0002\u0500\u0501\u0007\u00c7\u0002\u0002\u0501\u0502\u0007\u0018\u0002", - "\u0002\u0502\u0507\u0005<\u001f\u0002\u0503\u0504\u0007\u00c7\u0002", - "\u0002\u0504\u0505\u0007\u001e\u0002\u0002\u0505\u0507\u0005> \u0002", - "\u0506\u0500\u0003\u0002\u0002\u0002\u0506\u0503\u0003\u0002\u0002\u0002", - "\u0507;\u0003\u0002\u0002\u0002\u0508\u0509\u0007\u00d7\u0002\u0002", - "\u0509\u050a\u0007\u0107\u0002\u0002\u050a\u050b\u0007\u00d8\u0002\u0002", - "\u050b\u050e\u0007\u0107\u0002\u0002\u050c\u050e\u0005\u00dep\u0002", - "\u050d\u0508\u0003\u0002\u0002\u0002\u050d\u050c\u0003\u0002\u0002\u0002", - "\u050e=\u0003\u0002\u0002\u0002\u050f\u0513\u0007\u0107\u0002\u0002", - "\u0510\u0511\u0007W\u0002\u0002\u0511\u0512\u0007\u00ab\u0002\u0002", - "\u0512\u0514\u0005.\u0018\u0002\u0513\u0510\u0003\u0002\u0002\u0002", - "\u0513\u0514\u0003\u0002\u0002\u0002\u0514?\u0003\u0002\u0002\u0002", - "\u0515\u0516\u0005\u00dep\u0002\u0516\u0517\u0007\u0107\u0002\u0002", - "\u0517A\u0003\u0002\u0002\u0002\u0518\u051a\u0005\u001c\u000f\u0002", - "\u0519\u0518\u0003\u0002\u0002\u0002\u0519\u051a\u0003\u0002\u0002\u0002", - "\u051a\u051b\u0003\u0002\u0002\u0002\u051b\u051c\u0005H%\u0002\u051c", - "\u051d\u0005D#\u0002\u051d\u0525\u0003\u0002\u0002\u0002\u051e\u0520", - "\u0005T+\u0002\u051f\u0521\u0005F$\u0002\u0520\u051f\u0003\u0002\u0002", - "\u0002\u0521\u0522\u0003\u0002\u0002\u0002\u0522\u0520\u0003\u0002\u0002", - "\u0002\u0522\u0523\u0003\u0002\u0002\u0002\u0523\u0525\u0003\u0002\u0002", - "\u0002\u0524\u0519\u0003\u0002\u0002\u0002\u0524\u051e\u0003\u0002\u0002", - "\u0002\u0525C\u0003\u0002\u0002\u0002\u0526\u0527\u0007#\u0002\u0002", - "\u0527\u0528\u0007\u001e\u0002\u0002\u0528\u052d\u0005L\'\u0002\u0529", - "\u052a\u0007\u0006\u0002\u0002\u052a\u052c\u0005L\'\u0002\u052b\u0529", - "\u0003\u0002\u0002\u0002\u052c\u052f\u0003\u0002\u0002\u0002\u052d\u052b", - "\u0003\u0002\u0002\u0002\u052d\u052e\u0003\u0002\u0002\u0002\u052e\u0531", - "\u0003\u0002\u0002\u0002\u052f\u052d\u0003\u0002\u0002\u0002\u0530\u0526", - "\u0003\u0002\u0002\u0002\u0530\u0531\u0003\u0002\u0002\u0002\u0531\u053c", - "\u0003\u0002\u0002\u0002\u0532\u0533\u0007\u00a4\u0002\u0002\u0533\u0534", - "\u0007\u001e\u0002\u0002\u0534\u0539\u0005\u00a4S\u0002\u0535\u0536", - "\u0007\u0006\u0002\u0002\u0536\u0538\u0005\u00a4S\u0002\u0537\u0535", - "\u0003\u0002\u0002\u0002\u0538\u053b\u0003\u0002\u0002\u0002\u0539\u0537", - "\u0003\u0002\u0002\u0002\u0539\u053a\u0003\u0002\u0002\u0002\u053a\u053d", - "\u0003\u0002\u0002\u0002\u053b\u0539\u0003\u0002\u0002\u0002\u053c\u0532", - "\u0003\u0002\u0002\u0002\u053c\u053d\u0003\u0002\u0002\u0002\u053d\u0548", - "\u0003\u0002\u0002\u0002\u053e\u053f\u0007\u00a5\u0002\u0002\u053f\u0540", - "\u0007\u001e\u0002\u0002\u0540\u0545\u0005\u00a4S\u0002\u0541\u0542", - "\u0007\u0006\u0002\u0002\u0542\u0544\u0005\u00a4S\u0002\u0543\u0541", - "\u0003\u0002\u0002\u0002\u0544\u0547\u0003\u0002\u0002\u0002\u0545\u0543", - "\u0003\u0002\u0002\u0002\u0545\u0546\u0003\u0002\u0002\u0002\u0546\u0549", - "\u0003\u0002\u0002\u0002\u0547\u0545\u0003\u0002\u0002\u0002\u0548\u053e", - "\u0003\u0002\u0002\u0002\u0548\u0549\u0003\u0002\u0002\u0002\u0549\u0554", - "\u0003\u0002\u0002\u0002\u054a\u054b\u0007\u00a3\u0002\u0002\u054b\u054c", - "\u0007\u001e\u0002\u0002\u054c\u0551\u0005L\'\u0002\u054d\u054e\u0007", - "\u0006\u0002\u0002\u054e\u0550\u0005L\'\u0002\u054f\u054d\u0003\u0002", - "\u0002\u0002\u0550\u0553\u0003\u0002\u0002\u0002\u0551\u054f\u0003\u0002", - "\u0002\u0002\u0551\u0552\u0003\u0002\u0002\u0002\u0552\u0555\u0003\u0002", - "\u0002\u0002\u0553\u0551\u0003\u0002\u0002\u0002\u0554\u054a\u0003\u0002", - "\u0002\u0002\u0554\u0555\u0003\u0002\u0002\u0002\u0555\u0557\u0003\u0002", - "\u0002\u0002\u0556\u0558\u0005\u00d2j\u0002\u0557\u0556\u0003\u0002", - "\u0002\u0002\u0557\u0558\u0003\u0002\u0002\u0002\u0558\u055e\u0003\u0002", - "\u0002\u0002\u0559\u055c\u0007%\u0002\u0002\u055a\u055d\u0007\u0019", - "\u0002\u0002\u055b\u055d\u0005\u00a4S\u0002\u055c\u055a\u0003\u0002", - "\u0002\u0002\u055c\u055b\u0003\u0002\u0002\u0002\u055d\u055f\u0003\u0002", - "\u0002\u0002\u055e\u0559\u0003\u0002\u0002\u0002\u055e\u055f\u0003\u0002", - "\u0002\u0002\u055fE\u0003\u0002\u0002\u0002\u0560\u0562\u0005\u001c", - "\u000f\u0002\u0561\u0560\u0003\u0002\u0002\u0002\u0561\u0562\u0003\u0002", - "\u0002\u0002\u0562\u0563\u0003\u0002\u0002\u0002\u0563\u0564\u0005N", - "(\u0002\u0564\u0565\u0005D#\u0002\u0565G\u0003\u0002\u0002\u0002\u0566", - "\u0567\b%\u0001\u0002\u0567\u0568\u0005J&\u0002\u0568\u0580\u0003\u0002", - "\u0002\u0002\u0569\u056a\f\u0005\u0002\u0002\u056a\u056b\u0006%\u0003", - "\u0002\u056b\u056d\t\t\u0002\u0002\u056c\u056e\u0005b2\u0002\u056d\u056c", - "\u0003\u0002\u0002\u0002\u056d\u056e\u0003\u0002\u0002\u0002\u056e\u056f", - "\u0003\u0002\u0002\u0002\u056f\u057f\u0005H%\u0006\u0570\u0571\f\u0004", - "\u0002\u0002\u0571\u0572\u0006%\u0005\u0002\u0572\u0574\u0007s\u0002", - "\u0002\u0573\u0575\u0005b2\u0002\u0574\u0573\u0003\u0002\u0002\u0002", - "\u0574\u0575\u0003\u0002\u0002\u0002\u0575\u0576\u0003\u0002\u0002\u0002", - "\u0576\u057f\u0005H%\u0005\u0577\u0578\f\u0003\u0002\u0002\u0578\u0579", - "\u0006%\u0007\u0002\u0579\u057b\t\n\u0002\u0002\u057a\u057c\u0005b2", - "\u0002\u057b\u057a\u0003\u0002\u0002\u0002\u057b\u057c\u0003\u0002\u0002", - "\u0002\u057c\u057d\u0003\u0002\u0002\u0002\u057d\u057f\u0005H%\u0004", - "\u057e\u0569\u0003\u0002\u0002\u0002\u057e\u0570\u0003\u0002\u0002\u0002", - "\u057e\u0577\u0003\u0002\u0002\u0002\u057f\u0582\u0003\u0002\u0002\u0002", - "\u0580\u057e\u0003\u0002\u0002\u0002\u0580\u0581\u0003\u0002\u0002\u0002", - "\u0581I\u0003\u0002\u0002\u0002\u0582\u0580\u0003\u0002\u0002\u0002", - "\u0583\u058c\u0005N(\u0002\u0584\u0585\u0007Z\u0002\u0002\u0585\u058c", - "\u0005\u009cO\u0002\u0586\u058c\u0005\u0094K\u0002\u0587\u0588\u0007", - "\u0003\u0002\u0002\u0588\u0589\u0005B\"\u0002\u0589\u058a\u0007\u0004", - "\u0002\u0002\u058a\u058c\u0003\u0002\u0002\u0002\u058b\u0583\u0003\u0002", - "\u0002\u0002\u058b\u0584\u0003\u0002\u0002\u0002\u058b\u0586\u0003\u0002", - "\u0002\u0002\u058b\u0587\u0003\u0002\u0002\u0002\u058cK\u0003\u0002", - "\u0002\u0002\u058d\u058f\u0005\u00a4S\u0002\u058e\u0590\t\u000b\u0002", - "\u0002\u058f\u058e\u0003\u0002\u0002\u0002\u058f\u0590\u0003\u0002\u0002", - "\u0002\u0590\u0593\u0003\u0002\u0002\u0002\u0591\u0592\u00074\u0002", - "\u0002\u0592\u0594\t\f\u0002\u0002\u0593\u0591\u0003\u0002\u0002\u0002", - "\u0593\u0594\u0003\u0002\u0002\u0002\u0594M\u0003\u0002\u0002\u0002", - "\u0595\u0596\u0007\u0015\u0002\u0002\u0596\u0597\u0007\u00a7\u0002\u0002", - "\u0597\u0598\u0007\u0003\u0002\u0002\u0598\u0599\u0005\u00a2R\u0002", - "\u0599\u059a\u0007\u0004\u0002\u0002\u059a\u05a0\u0003\u0002\u0002\u0002", - "\u059b\u059c\u0007z\u0002\u0002\u059c\u05a0\u0005\u00a2R\u0002\u059d", - "\u059e\u0007\u00a8\u0002\u0002\u059e\u05a0\u0005\u00a2R\u0002\u059f", - "\u0595\u0003\u0002\u0002\u0002\u059f\u059b\u0003\u0002\u0002\u0002\u059f", - "\u059d\u0003\u0002\u0002\u0002\u05a0\u05a2\u0003\u0002\u0002\u0002\u05a1", - "\u05a3\u0005\u009aN\u0002\u05a2\u05a1\u0003\u0002\u0002\u0002\u05a2", - "\u05a3\u0003\u0002\u0002\u0002\u05a3\u05a6\u0003\u0002\u0002\u0002\u05a4", - "\u05a5\u0007\u00ad\u0002\u0002\u05a5\u05a7\u0007\u0107\u0002\u0002\u05a6", - "\u05a4\u0003\u0002\u0002\u0002\u05a6\u05a7\u0003\u0002\u0002\u0002\u05a7", - "\u05a8\u0003\u0002\u0002\u0002\u05a8\u05a9\u0007\u00a9\u0002\u0002\u05a9", - "\u05b6\u0007\u0107\u0002\u0002\u05aa\u05b4\u0007\u0018\u0002\u0002\u05ab", - "\u05b5\u0005r:\u0002\u05ac\u05b5\u0005\u00c2b\u0002\u05ad\u05b0\u0007", - "\u0003\u0002\u0002\u05ae\u05b1\u0005r:\u0002\u05af\u05b1\u0005\u00c2", - "b\u0002\u05b0\u05ae\u0003\u0002\u0002\u0002\u05b0\u05af\u0003\u0002", - "\u0002\u0002\u05b1\u05b2\u0003\u0002\u0002\u0002\u05b2\u05b3\u0007\u0004", - "\u0002\u0002\u05b3\u05b5\u0003\u0002\u0002\u0002\u05b4\u05ab\u0003\u0002", - "\u0002\u0002\u05b4\u05ac\u0003\u0002\u0002\u0002\u05b4\u05ad\u0003\u0002", - "\u0002\u0002\u05b5\u05b7\u0003\u0002\u0002\u0002\u05b6\u05aa\u0003\u0002", - "\u0002\u0002\u05b6\u05b7\u0003\u0002\u0002\u0002\u05b7\u05b9\u0003\u0002", - "\u0002\u0002\u05b8\u05ba\u0005\u009aN\u0002\u05b9\u05b8\u0003\u0002", - "\u0002\u0002\u05b9\u05ba\u0003\u0002\u0002\u0002\u05ba\u05bd\u0003\u0002", - "\u0002\u0002\u05bb\u05bc\u0007\u00ac\u0002\u0002\u05bc\u05be\u0007\u0107", - "\u0002\u0002\u05bd\u05bb\u0003\u0002\u0002\u0002\u05bd\u05be\u0003\u0002", - "\u0002\u0002\u05be\u05c0\u0003\u0002\u0002\u0002\u05bf\u05c1\u0005T", - "+\u0002\u05c0\u05bf\u0003\u0002\u0002\u0002\u05c0\u05c1\u0003\u0002", - "\u0002\u0002\u05c1\u05c4\u0003\u0002\u0002\u0002\u05c2\u05c3\u0007\u001c", - "\u0002\u0002\u05c3\u05c5\u0005\u00a6T\u0002\u05c4\u05c2\u0003\u0002", - "\u0002\u0002\u05c4\u05c5\u0003\u0002\u0002\u0002\u05c5\u05f3\u0003\u0002", - "\u0002\u0002\u05c6\u05ca\u0007\u0015\u0002\u0002\u05c7\u05c9\u0005P", - ")\u0002\u05c8\u05c7\u0003\u0002\u0002\u0002\u05c9\u05cc\u0003\u0002", - "\u0002\u0002\u05ca\u05c8\u0003\u0002\u0002\u0002\u05ca\u05cb\u0003\u0002", - "\u0002\u0002\u05cb\u05ce\u0003\u0002\u0002\u0002\u05cc\u05ca\u0003\u0002", - "\u0002\u0002\u05cd\u05cf\u0005b2\u0002\u05ce\u05cd\u0003\u0002\u0002", - "\u0002\u05ce\u05cf\u0003\u0002\u0002\u0002\u05cf\u05d0\u0003\u0002\u0002", - "\u0002\u05d0\u05d2\u0005\u00a2R\u0002\u05d1\u05d3\u0005T+\u0002\u05d2", - "\u05d1\u0003\u0002\u0002\u0002\u05d2\u05d3\u0003\u0002\u0002\u0002\u05d3", - "\u05dd\u0003\u0002\u0002\u0002\u05d4\u05da\u0005T+\u0002\u05d5\u05d7", - "\u0007\u0015\u0002\u0002\u05d6\u05d8\u0005b2\u0002\u05d7\u05d6\u0003", - "\u0002\u0002\u0002\u05d7\u05d8\u0003\u0002\u0002\u0002\u05d8\u05d9\u0003", - "\u0002\u0002\u0002\u05d9\u05db\u0005\u00a2R\u0002\u05da\u05d5\u0003", - "\u0002\u0002\u0002\u05da\u05db\u0003\u0002\u0002\u0002\u05db\u05dd\u0003", - "\u0002\u0002\u0002\u05dc\u05c6\u0003\u0002\u0002\u0002\u05dc\u05d4\u0003", - "\u0002\u0002\u0002\u05dd\u05e1\u0003\u0002\u0002\u0002\u05de\u05e0\u0005", - "`1\u0002\u05df\u05de\u0003\u0002\u0002\u0002\u05e0\u05e3\u0003\u0002", - "\u0002\u0002\u05e1\u05df\u0003\u0002\u0002\u0002\u05e1\u05e2\u0003\u0002", - "\u0002\u0002\u05e2\u05e6\u0003\u0002\u0002\u0002\u05e3\u05e1\u0003\u0002", - "\u0002\u0002\u05e4\u05e5\u0007\u001c\u0002\u0002\u05e5\u05e7\u0005\u00a6", - "T\u0002\u05e6\u05e4\u0003\u0002\u0002\u0002\u05e6\u05e7\u0003\u0002", - "\u0002\u0002\u05e7\u05e9\u0003\u0002\u0002\u0002\u05e8\u05ea\u0005V", - ",\u0002\u05e9\u05e8\u0003\u0002\u0002\u0002\u05e9\u05ea\u0003\u0002", - "\u0002\u0002\u05ea\u05ed\u0003\u0002\u0002\u0002\u05eb\u05ec\u0007$", - "\u0002\u0002\u05ec\u05ee\u0005\u00a6T\u0002\u05ed\u05eb\u0003\u0002", - "\u0002\u0002\u05ed\u05ee\u0003\u0002\u0002\u0002\u05ee\u05f0\u0003\u0002", - "\u0002\u0002\u05ef\u05f1\u0005\u00d2j\u0002\u05f0\u05ef\u0003\u0002", - "\u0002\u0002\u05f0\u05f1\u0003\u0002\u0002\u0002\u05f1\u05f3\u0003\u0002", - "\u0002\u0002\u05f2\u059f\u0003\u0002\u0002\u0002\u05f2\u05dc\u0003\u0002", - "\u0002\u0002\u05f3O\u0003\u0002\u0002\u0002\u05f4\u05f5\u0007\u0007", - "\u0002\u0002\u05f5\u05fc\u0005R*\u0002\u05f6\u05f8\u0007\u0006\u0002", - "\u0002\u05f7\u05f6\u0003\u0002\u0002\u0002\u05f7\u05f8\u0003\u0002\u0002", - "\u0002\u05f8\u05f9\u0003\u0002\u0002\u0002\u05f9\u05fb\u0005R*\u0002", - "\u05fa\u05f7\u0003\u0002\u0002\u0002\u05fb\u05fe\u0003\u0002\u0002\u0002", - "\u05fc\u05fa\u0003\u0002\u0002\u0002\u05fc\u05fd\u0003\u0002\u0002\u0002", - "\u05fd\u05ff\u0003\u0002\u0002\u0002\u05fe\u05fc\u0003\u0002\u0002\u0002", - "\u05ff\u0600\u0007\b\u0002\u0002\u0600Q\u0003\u0002\u0002\u0002\u0601", - "\u060f\u0005\u00dep\u0002\u0602\u0603\u0005\u00dep\u0002\u0603\u0604", - "\u0007\u0003\u0002\u0002\u0604\u0609\u0005\u00acW\u0002\u0605\u0606", - "\u0007\u0006\u0002\u0002\u0606\u0608\u0005\u00acW\u0002\u0607\u0605", - "\u0003\u0002\u0002\u0002\u0608\u060b\u0003\u0002\u0002\u0002\u0609\u0607", - "\u0003\u0002\u0002\u0002\u0609\u060a\u0003\u0002\u0002\u0002\u060a\u060c", - "\u0003\u0002\u0002\u0002\u060b\u0609\u0003\u0002\u0002\u0002\u060c\u060d", - "\u0007\u0004\u0002\u0002\u060d\u060f\u0003\u0002\u0002\u0002\u060e\u0601", - "\u0003\u0002\u0002\u0002\u060e\u0602\u0003\u0002\u0002\u0002\u060fS", - "\u0003\u0002\u0002\u0002\u0610\u0611\u0007\u0016\u0002\u0002\u0611\u0616", - "\u0005d3\u0002\u0612\u0613\u0007\u0006\u0002\u0002\u0613\u0615\u0005", - "d3\u0002\u0614\u0612\u0003\u0002\u0002\u0002\u0615\u0618\u0003\u0002", - "\u0002\u0002\u0616\u0614\u0003\u0002\u0002\u0002\u0616\u0617\u0003\u0002", - "\u0002\u0002\u0617\u061c\u0003\u0002\u0002\u0002\u0618\u0616\u0003\u0002", - "\u0002\u0002\u0619\u061b\u0005`1\u0002\u061a\u0619\u0003\u0002\u0002", - "\u0002\u061b\u061e\u0003\u0002\u0002\u0002\u061c\u061a\u0003\u0002\u0002", - "\u0002\u061c\u061d\u0003\u0002\u0002\u0002\u061d\u0620\u0003\u0002\u0002", - "\u0002\u061e\u061c\u0003\u0002\u0002\u0002\u061f\u0621\u0005Z.\u0002", - "\u0620\u061f\u0003\u0002\u0002\u0002\u0620\u0621\u0003\u0002\u0002\u0002", - "\u0621U\u0003\u0002\u0002\u0002\u0622\u0623\u0007\u001d\u0002\u0002", - "\u0623\u0624\u0007\u001e\u0002\u0002\u0624\u0629\u0005\u00a4S\u0002", - "\u0625\u0626\u0007\u0006\u0002\u0002\u0626\u0628\u0005\u00a4S\u0002", - "\u0627\u0625\u0003\u0002\u0002\u0002\u0628\u062b\u0003\u0002\u0002\u0002", - "\u0629\u0627\u0003\u0002\u0002\u0002\u0629\u062a\u0003\u0002\u0002\u0002", - "\u062a\u063d\u0003\u0002\u0002\u0002\u062b\u0629\u0003\u0002\u0002\u0002", - "\u062c\u062d\u0007W\u0002\u0002\u062d\u063e\u0007\"\u0002\u0002\u062e", - "\u062f\u0007W\u0002\u0002\u062f\u063e\u0007!\u0002\u0002\u0630\u0631", - "\u0007\u001f\u0002\u0002\u0631\u0632\u0007 \u0002\u0002\u0632\u0633", - "\u0007\u0003\u0002\u0002\u0633\u0638\u0005X-\u0002\u0634\u0635\u0007", - "\u0006\u0002\u0002\u0635\u0637\u0005X-\u0002\u0636\u0634\u0003\u0002", - "\u0002\u0002\u0637\u063a\u0003\u0002\u0002\u0002\u0638\u0636\u0003\u0002", - "\u0002\u0002\u0638\u0639\u0003\u0002\u0002\u0002\u0639\u063b\u0003\u0002", - "\u0002\u0002\u063a\u0638\u0003\u0002\u0002\u0002\u063b\u063c\u0007\u0004", - "\u0002\u0002\u063c\u063e\u0003\u0002\u0002\u0002\u063d\u062c\u0003\u0002", - "\u0002\u0002\u063d\u062e\u0003\u0002\u0002\u0002\u063d\u0630\u0003\u0002", - "\u0002\u0002\u063d\u063e\u0003\u0002\u0002\u0002\u063e\u064f\u0003\u0002", - "\u0002\u0002\u063f\u0640\u0007\u001d\u0002\u0002\u0640\u0641\u0007\u001e", - "\u0002\u0002\u0641\u0642\u0007\u001f\u0002\u0002\u0642\u0643\u0007 ", - "\u0002\u0002\u0643\u0644\u0007\u0003\u0002\u0002\u0644\u0649\u0005X", - "-\u0002\u0645\u0646\u0007\u0006\u0002\u0002\u0646\u0648\u0005X-\u0002", - "\u0647\u0645\u0003\u0002\u0002\u0002\u0648\u064b\u0003\u0002\u0002\u0002", - "\u0649\u0647\u0003\u0002\u0002\u0002\u0649\u064a\u0003\u0002\u0002\u0002", - "\u064a\u064c\u0003\u0002\u0002\u0002\u064b\u0649\u0003\u0002\u0002\u0002", - "\u064c\u064d\u0007\u0004\u0002\u0002\u064d\u064f\u0003\u0002\u0002\u0002", - "\u064e\u0622\u0003\u0002\u0002\u0002\u064e\u063f\u0003\u0002\u0002\u0002", - "\u064fW\u0003\u0002\u0002\u0002\u0650\u0659\u0007\u0003\u0002\u0002", - "\u0651\u0656\u0005\u00a4S\u0002\u0652\u0653\u0007\u0006\u0002\u0002", - "\u0653\u0655\u0005\u00a4S\u0002\u0654\u0652\u0003\u0002\u0002\u0002", - "\u0655\u0658\u0003\u0002\u0002\u0002\u0656\u0654\u0003\u0002\u0002\u0002", - "\u0656\u0657\u0003\u0002\u0002\u0002\u0657\u065a\u0003\u0002\u0002\u0002", - "\u0658\u0656\u0003\u0002\u0002\u0002\u0659\u0651\u0003\u0002\u0002\u0002", - "\u0659\u065a\u0003\u0002\u0002\u0002\u065a\u065b\u0003\u0002\u0002\u0002", - "\u065b\u065e\u0007\u0004\u0002\u0002\u065c\u065e\u0005\u00a4S\u0002", - "\u065d\u0650\u0003\u0002\u0002\u0002\u065d\u065c\u0003\u0002\u0002\u0002", - "\u065eY\u0003\u0002\u0002\u0002\u065f\u0660\u0007H\u0002\u0002\u0660", - "\u0661\u0007\u0003\u0002\u0002\u0661\u0662\u0005\u00a2R\u0002\u0662", - "\u0663\u00077\u0002\u0002\u0663\u0664\u0005\\/\u0002\u0664\u0665\u0007", - ")\u0002\u0002\u0665\u0666\u0007\u0003\u0002\u0002\u0666\u066b\u0005", - "^0\u0002\u0667\u0668\u0007\u0006\u0002\u0002\u0668\u066a\u0005^0\u0002", - "\u0669\u0667\u0003\u0002\u0002\u0002\u066a\u066d\u0003\u0002\u0002\u0002", - "\u066b\u0669\u0003\u0002\u0002\u0002\u066b\u066c\u0003\u0002\u0002\u0002", - "\u066c\u066e\u0003\u0002\u0002\u0002\u066d\u066b\u0003\u0002\u0002\u0002", - "\u066e\u066f\u0007\u0004\u0002\u0002\u066f\u0670\u0007\u0004\u0002\u0002", - "\u0670[\u0003\u0002\u0002\u0002\u0671\u067e\u0005\u00dep\u0002\u0672", - "\u0673\u0007\u0003\u0002\u0002\u0673\u0678\u0005\u00dep\u0002\u0674", - "\u0675\u0007\u0006\u0002\u0002\u0675\u0677\u0005\u00dep\u0002\u0676", - "\u0674\u0003\u0002\u0002\u0002\u0677\u067a\u0003\u0002\u0002\u0002\u0678", - "\u0676\u0003\u0002\u0002\u0002\u0678\u0679\u0003\u0002\u0002\u0002\u0679", - "\u067b\u0003\u0002\u0002\u0002\u067a\u0678\u0003\u0002\u0002\u0002\u067b", - "\u067c\u0007\u0004\u0002\u0002\u067c\u067e\u0003\u0002\u0002\u0002\u067d", - "\u0671\u0003\u0002\u0002\u0002\u067d\u0672\u0003\u0002\u0002\u0002\u067e", - "]\u0003\u0002\u0002\u0002\u067f\u0684\u0005\u00a4S\u0002\u0680\u0682", - "\u0007\u0018\u0002\u0002\u0681\u0680\u0003\u0002\u0002\u0002\u0681\u0682", - "\u0003\u0002\u0002\u0002\u0682\u0683\u0003\u0002\u0002\u0002\u0683\u0685", - "\u0005\u00dep\u0002\u0684\u0681\u0003\u0002\u0002\u0002\u0684\u0685", - "\u0003\u0002\u0002\u0002\u0685_\u0003\u0002\u0002\u0002\u0686\u0687", - "\u0007I\u0002\u0002\u0687\u0689\u0007\\\u0002\u0002\u0688\u068a\u0007", - "@\u0002\u0002\u0689\u0688\u0003\u0002\u0002\u0002\u0689\u068a\u0003", - "\u0002\u0002\u0002\u068a\u068b\u0003\u0002\u0002\u0002\u068b\u068c\u0005", - "\u00dco\u0002\u068c\u0695\u0007\u0003\u0002\u0002\u068d\u0692\u0005", - "\u00a4S\u0002\u068e\u068f\u0007\u0006\u0002\u0002\u068f\u0691\u0005", - "\u00a4S\u0002\u0690\u068e\u0003\u0002\u0002\u0002\u0691\u0694\u0003", - "\u0002\u0002\u0002\u0692\u0690\u0003\u0002\u0002\u0002\u0692\u0693\u0003", - "\u0002\u0002\u0002\u0693\u0696\u0003\u0002\u0002\u0002\u0694\u0692\u0003", - "\u0002\u0002\u0002\u0695\u068d\u0003\u0002\u0002\u0002\u0695\u0696\u0003", - "\u0002\u0002\u0002\u0696\u0697\u0003\u0002\u0002\u0002\u0697\u0698\u0007", - "\u0004\u0002\u0002\u0698\u06a4\u0005\u00dep\u0002\u0699\u069b\u0007", - "\u0018\u0002\u0002\u069a\u0699\u0003\u0002\u0002\u0002\u069a\u069b\u0003", - "\u0002\u0002\u0002\u069b\u069c\u0003\u0002\u0002\u0002\u069c\u06a1\u0005", - "\u00dep\u0002\u069d\u069e\u0007\u0006\u0002\u0002\u069e\u06a0\u0005", - "\u00dep\u0002\u069f\u069d\u0003\u0002\u0002\u0002\u06a0\u06a3\u0003", - "\u0002\u0002\u0002\u06a1\u069f\u0003\u0002\u0002\u0002\u06a1\u06a2\u0003", - "\u0002\u0002\u0002\u06a2\u06a5\u0003\u0002\u0002\u0002\u06a3\u06a1\u0003", - "\u0002\u0002\u0002\u06a4\u069a\u0003\u0002\u0002\u0002\u06a4\u06a5\u0003", - "\u0002\u0002\u0002\u06a5a\u0003\u0002\u0002\u0002\u06a6\u06a7\t\r\u0002", - "\u0002\u06a7c\u0003\u0002\u0002\u0002\u06a8\u06ac\u0005|?\u0002\u06a9", - "\u06ab\u0005f4\u0002\u06aa\u06a9\u0003\u0002\u0002\u0002\u06ab\u06ae", - "\u0003\u0002\u0002\u0002\u06ac\u06aa\u0003\u0002\u0002\u0002\u06ac\u06ad", - "\u0003\u0002\u0002\u0002\u06ade\u0003\u0002\u0002\u0002\u06ae\u06ac", - "\u0003\u0002\u0002\u0002\u06af\u06b0\u0005h5\u0002\u06b0\u06b1\u0007", - ">\u0002\u0002\u06b1\u06b3\u0005|?\u0002\u06b2\u06b4\u0005j6\u0002\u06b3", - "\u06b2\u0003\u0002\u0002\u0002\u06b3\u06b4\u0003\u0002\u0002\u0002\u06b4", - "\u06bb\u0003\u0002\u0002\u0002\u06b5\u06b6\u0007F\u0002\u0002\u06b6", - "\u06b7\u0005h5\u0002\u06b7\u06b8\u0007>\u0002\u0002\u06b8\u06b9\u0005", - "|?\u0002\u06b9\u06bb\u0003\u0002\u0002\u0002\u06ba\u06af\u0003\u0002", - "\u0002\u0002\u06ba\u06b5\u0003\u0002\u0002\u0002\u06bbg\u0003\u0002", - "\u0002\u0002\u06bc\u06be\u0007A\u0002\u0002\u06bd\u06bc\u0003\u0002", - "\u0002\u0002\u06bd\u06be\u0003\u0002\u0002\u0002\u06be\u06d3\u0003\u0002", - "\u0002\u0002\u06bf\u06d3\u0007?\u0002\u0002\u06c0\u06c2\u0007B\u0002", - "\u0002\u06c1\u06c3\u0007@\u0002\u0002\u06c2\u06c1\u0003\u0002\u0002", - "\u0002\u06c2\u06c3\u0003\u0002\u0002\u0002\u06c3\u06d3\u0003\u0002\u0002", - "\u0002\u06c4\u06c5\u0007B\u0002\u0002\u06c5\u06d3\u0007C\u0002\u0002", - "\u06c6\u06c8\u0007D\u0002\u0002\u06c7\u06c9\u0007@\u0002\u0002\u06c8", - "\u06c7\u0003\u0002\u0002\u0002\u06c8\u06c9\u0003\u0002\u0002\u0002\u06c9", - "\u06d3\u0003\u0002\u0002\u0002\u06ca\u06cc\u0007E\u0002\u0002\u06cb", - "\u06cd\u0007@\u0002\u0002\u06cc\u06cb\u0003\u0002\u0002\u0002\u06cc", - "\u06cd\u0003\u0002\u0002\u0002\u06cd\u06d3\u0003\u0002\u0002\u0002\u06ce", - "\u06d0\u0007B\u0002\u0002\u06cf\u06ce\u0003\u0002\u0002\u0002\u06cf", - "\u06d0\u0003\u0002\u0002\u0002\u06d0\u06d1\u0003\u0002\u0002\u0002\u06d1", - "\u06d3\u0007\u00f7\u0002\u0002\u06d2\u06bd\u0003\u0002\u0002\u0002\u06d2", - "\u06bf\u0003\u0002\u0002\u0002\u06d2\u06c0\u0003\u0002\u0002\u0002\u06d2", - "\u06c4\u0003\u0002\u0002\u0002\u06d2\u06c6\u0003\u0002\u0002\u0002\u06d2", - "\u06ca\u0003\u0002\u0002\u0002\u06d2\u06cf\u0003\u0002\u0002\u0002\u06d3", - "i\u0003\u0002\u0002\u0002\u06d4\u06d5\u0007G\u0002\u0002\u06d5\u06d9", - "\u0005\u00a6T\u0002\u06d6\u06d7\u0007\u00a9\u0002\u0002\u06d7\u06d9", - "\u0005p9\u0002\u06d8\u06d4\u0003\u0002\u0002\u0002\u06d8\u06d6\u0003", - "\u0002\u0002\u0002\u06d9k\u0003\u0002\u0002\u0002\u06da\u06db\u0007", - "u\u0002\u0002\u06db\u06dd\u0007\u0003\u0002\u0002\u06dc\u06de\u0005", - "n8\u0002\u06dd\u06dc\u0003\u0002\u0002\u0002\u06dd\u06de\u0003\u0002", - "\u0002\u0002\u06de\u06df\u0003\u0002\u0002\u0002\u06df\u06e0\u0007\u0004", - "\u0002\u0002\u06e0m\u0003\u0002\u0002\u0002\u06e1\u06e3\u0007\u0095", - "\u0002\u0002\u06e2\u06e1\u0003\u0002\u0002\u0002\u06e2\u06e3\u0003\u0002", - "\u0002\u0002\u06e3\u06e4\u0003\u0002\u0002\u0002\u06e4\u06e5\t\u000e", - "\u0002\u0002\u06e5\u06fa\u0007\u009f\u0002\u0002\u06e6\u06e7\u0005\u00a4", - "S\u0002\u06e7\u06e8\u0007N\u0002\u0002\u06e8\u06fa\u0003\u0002\u0002", - "\u0002\u06e9\u06ea\u0007\u00a0\u0002\u0002\u06ea\u06eb\u0007\u010b\u0002", - "\u0002\u06eb\u06ec\u0007\u00a1\u0002\u0002\u06ec\u06ed\u0007\u00a2\u0002", - "\u0002\u06ed\u06f6\u0007\u010b\u0002\u0002\u06ee\u06f4\u0007G\u0002", - "\u0002\u06ef\u06f5\u0005\u00dep\u0002\u06f0\u06f1\u0005\u00dco\u0002", - "\u06f1\u06f2\u0007\u0003\u0002\u0002\u06f2\u06f3\u0007\u0004\u0002\u0002", - "\u06f3\u06f5\u0003\u0002\u0002\u0002\u06f4\u06ef\u0003\u0002\u0002\u0002", - "\u06f4\u06f0\u0003\u0002\u0002\u0002\u06f5\u06f7\u0003\u0002\u0002\u0002", - "\u06f6\u06ee\u0003\u0002\u0002\u0002\u06f6\u06f7\u0003\u0002\u0002\u0002", - "\u06f7\u06fa\u0003\u0002\u0002\u0002\u06f8\u06fa\u0005\u00a4S\u0002", - "\u06f9\u06e2\u0003\u0002\u0002\u0002\u06f9\u06e6\u0003\u0002\u0002\u0002", - "\u06f9\u06e9\u0003\u0002\u0002\u0002\u06f9\u06f8\u0003\u0002\u0002\u0002", - "\u06fao\u0003\u0002\u0002\u0002\u06fb\u06fc\u0007\u0003\u0002\u0002", - "\u06fc\u06fd\u0005r:\u0002\u06fd\u06fe\u0007\u0004\u0002\u0002\u06fe", - "q\u0003\u0002\u0002\u0002\u06ff\u0704\u0005\u00dep\u0002\u0700\u0701", - "\u0007\u0006\u0002\u0002\u0701\u0703\u0005\u00dep\u0002\u0702\u0700", - "\u0003\u0002\u0002\u0002\u0703\u0706\u0003\u0002\u0002\u0002\u0704\u0702", - "\u0003\u0002\u0002\u0002\u0704\u0705\u0003\u0002\u0002\u0002\u0705s", - "\u0003\u0002\u0002\u0002\u0706\u0704\u0003\u0002\u0002\u0002\u0707\u0708", - "\u0007\u0003\u0002\u0002\u0708\u070d\u0005v<\u0002\u0709\u070a\u0007", - "\u0006\u0002\u0002\u070a\u070c\u0005v<\u0002\u070b\u0709\u0003\u0002", - "\u0002\u0002\u070c\u070f\u0003\u0002\u0002\u0002\u070d\u070b\u0003\u0002", - "\u0002\u0002\u070d\u070e\u0003\u0002\u0002\u0002\u070e\u0710\u0003\u0002", - "\u0002\u0002\u070f\u070d\u0003\u0002\u0002\u0002\u0710\u0711\u0007\u0004", - "\u0002\u0002\u0711u\u0003\u0002\u0002\u0002\u0712\u0714\u0005\u00de", - "p\u0002\u0713\u0715\t\u000b\u0002\u0002\u0714\u0713\u0003\u0002\u0002", - "\u0002\u0714\u0715\u0003\u0002\u0002\u0002\u0715w\u0003\u0002\u0002", - "\u0002\u0716\u0717\u0007\u0003\u0002\u0002\u0717\u071c\u0005z>\u0002", - "\u0718\u0719\u0007\u0006\u0002\u0002\u0719\u071b\u0005z>\u0002\u071a", - "\u0718\u0003\u0002\u0002\u0002\u071b\u071e\u0003\u0002\u0002\u0002\u071c", - "\u071a\u0003\u0002\u0002\u0002\u071c\u071d\u0003\u0002\u0002\u0002\u071d", - "\u071f\u0003\u0002\u0002\u0002\u071e\u071c\u0003\u0002\u0002\u0002\u071f", - "\u0720\u0007\u0004\u0002\u0002\u0720y\u0003\u0002\u0002\u0002\u0721", - "\u0724\u0005\u00dep\u0002\u0722\u0723\u0007|\u0002\u0002\u0723\u0725", - "\u0007\u0107\u0002\u0002\u0724\u0722\u0003\u0002\u0002\u0002\u0724\u0725", - "\u0003\u0002\u0002\u0002\u0725{\u0003\u0002\u0002\u0002\u0726\u0729", - "\u0005\u009cO\u0002\u0727\u072a\u0005l7\u0002\u0728\u072a\u0005~@\u0002", - "\u0729\u0727\u0003\u0002\u0002\u0002\u0729\u0728\u0003\u0002\u0002\u0002", - "\u0729\u072a\u0003\u0002\u0002\u0002\u072a\u072b\u0003\u0002\u0002\u0002", - "\u072b\u072c\u0005\u0098M\u0002\u072c\u0740\u0003\u0002\u0002\u0002", - "\u072d\u072e\u0007\u0003\u0002\u0002\u072e\u072f\u0005B\"\u0002\u072f", - "\u0731\u0007\u0004\u0002\u0002\u0730\u0732\u0005l7\u0002\u0731\u0730", - "\u0003\u0002\u0002\u0002\u0731\u0732\u0003\u0002\u0002\u0002\u0732\u0733", - "\u0003\u0002\u0002\u0002\u0733\u0734\u0005\u0098M\u0002\u0734\u0740", - "\u0003\u0002\u0002\u0002\u0735\u0736\u0007\u0003\u0002\u0002\u0736\u0737", - "\u0005d3\u0002\u0737\u0739\u0007\u0004\u0002\u0002\u0738\u073a\u0005", - "l7\u0002\u0739\u0738\u0003\u0002\u0002\u0002\u0739\u073a\u0003\u0002", - "\u0002\u0002\u073a\u073b\u0003\u0002\u0002\u0002\u073b\u073c\u0005\u0098", - "M\u0002\u073c\u0740\u0003\u0002\u0002\u0002\u073d\u0740\u0005\u0094", - "K\u0002\u073e\u0740\u0005\u0096L\u0002\u073f\u0726\u0003\u0002\u0002", - "\u0002\u073f\u072d\u0003\u0002\u0002\u0002\u073f\u0735\u0003\u0002\u0002", - "\u0002\u073f\u073d\u0003\u0002\u0002\u0002\u073f\u073e\u0003\u0002\u0002", - "\u0002\u0740}\u0003\u0002\u0002\u0002\u0741\u0742\u0007\u00fc\u0002", - "\u0002\u0742\u074d\u0007\u0003\u0002\u0002\u0743\u0744\u0007L\u0002", - "\u0002\u0744\u0745\u0007\u001e\u0002\u0002\u0745\u074a\u0005\u00a4S", - "\u0002\u0746\u0747\u0007\u0006\u0002\u0002\u0747\u0749\u0005\u00a4S", - "\u0002\u0748\u0746\u0003\u0002\u0002\u0002\u0749\u074c\u0003\u0002\u0002", - "\u0002\u074a\u0748\u0003\u0002\u0002\u0002\u074a\u074b\u0003\u0002\u0002", - "\u0002\u074b\u074e\u0003\u0002\u0002\u0002\u074c\u074a\u0003\u0002\u0002", - "\u0002\u074d\u0743\u0003\u0002\u0002\u0002\u074d\u074e\u0003\u0002\u0002", - "\u0002\u074e\u0759\u0003\u0002\u0002\u0002\u074f\u0750\u0007#\u0002", - "\u0002\u0750\u0751\u0007\u001e\u0002\u0002\u0751\u0756\u0005L\'\u0002", - "\u0752\u0753\u0007\u0006\u0002\u0002\u0753\u0755\u0005L\'\u0002\u0754", - "\u0752\u0003\u0002\u0002\u0002\u0755\u0758\u0003\u0002\u0002\u0002\u0756", - "\u0754\u0003\u0002\u0002\u0002\u0756\u0757\u0003\u0002\u0002\u0002\u0757", - "\u075a\u0003\u0002\u0002\u0002\u0758\u0756\u0003\u0002\u0002\u0002\u0759", - "\u074f\u0003\u0002\u0002\u0002\u0759\u075a\u0003\u0002\u0002\u0002\u075a", - "\u0764\u0003\u0002\u0002\u0002\u075b\u075c\u0007\u00fd\u0002\u0002\u075c", - "\u0761\u0005\u0080A\u0002\u075d\u075e\u0007\u0006\u0002\u0002\u075e", - "\u0760\u0005\u0080A\u0002\u075f\u075d\u0003\u0002\u0002\u0002\u0760", - "\u0763\u0003\u0002\u0002\u0002\u0761\u075f\u0003\u0002\u0002\u0002\u0761", - "\u0762\u0003\u0002\u0002\u0002\u0762\u0765\u0003\u0002\u0002\u0002\u0763", - "\u0761\u0003\u0002\u0002\u0002\u0764\u075b\u0003\u0002\u0002\u0002\u0764", - "\u0765\u0003\u0002\u0002\u0002\u0765\u076a\u0003\u0002\u0002\u0002\u0766", - "\u0767\u0007\u00fe\u0002\u0002\u0767\u0768\u0007V\u0002\u0002\u0768", - "\u0769\u0007\u00ff\u0002\u0002\u0769\u076b\u0007\u0100\u0002\u0002\u076a", - "\u0766\u0003\u0002\u0002\u0002\u076a\u076b\u0003\u0002\u0002\u0002\u076b", - "\u0783\u0003\u0002\u0002\u0002\u076c\u076d\u0007T\u0002\u0002\u076d", - "\u0781\u0007\u0100\u0002\u0002\u076e\u076f\u0007\u0101\u0002\u0002\u076f", - "\u0770\u0007t\u0002\u0002\u0770\u0771\u0007\u0102\u0002\u0002\u0771", - "\u0782\u0007V\u0002\u0002\u0772\u0773\u0007\u0101\u0002\u0002\u0773", - "\u0774\u0007\u0103\u0002\u0002\u0774\u0775\u0007U\u0002\u0002\u0775", - "\u0782\u0007V\u0002\u0002\u0776\u0777\u0007\u0101\u0002\u0002\u0777", - "\u0778\u0007t\u0002\u0002\u0778\u0779\u0007S\u0002\u0002\u0779\u0782", - "\u0005\u0084C\u0002\u077a\u077b\u0007\u0101\u0002\u0002\u077b\u077c", - "\u0007t\u0002\u0002\u077c\u077d\u0007U\u0002\u0002\u077d\u0782\u0005", - "\u0084C\u0002\u077e\u077f\u0007\u0101\u0002\u0002\u077f\u0780\u0007", - "t\u0002\u0002\u0780\u0782\u0005\u0084C\u0002\u0781\u076e\u0003\u0002", - "\u0002\u0002\u0781\u0772\u0003\u0002\u0002\u0002\u0781\u0776\u0003\u0002", - "\u0002\u0002\u0781\u077a\u0003\u0002\u0002\u0002\u0781\u077e\u0003\u0002", - "\u0002\u0002\u0782\u0784\u0003\u0002\u0002\u0002\u0783\u076c\u0003\u0002", - "\u0002\u0002\u0783\u0784\u0003\u0002\u0002\u0002\u0784\u0785\u0003\u0002", - "\u0002\u0002\u0785\u0786\u0007\u0104\u0002\u0002\u0786\u0787\u0007\u0003", - "\u0002\u0002\u0787\u0788\u0005\u0086D\u0002\u0788\u078b\u0007\u0004", - "\u0002\u0002\u0789\u078a\u0007\u0105\u0002\u0002\u078a\u078c\u0005\u00b8", - "]\u0002\u078b\u0789\u0003\u0002\u0002\u0002\u078b\u078c\u0003\u0002", - "\u0002\u0002\u078c\u078d\u0003\u0002\u0002\u0002\u078d\u078e\u0007\u0106", - "\u0002\u0002\u078e\u078f\u0005\u0084C\u0002\u078f\u0790\u0007\u0018", - "\u0002\u0002\u0790\u0798\u0005\u0082B\u0002\u0791\u0792\u0007\u0006", - "\u0002\u0002\u0792\u0793\u0005\u0084C\u0002\u0793\u0794\u0007\u0018", - "\u0002\u0002\u0794\u0795\u0005\u0082B\u0002\u0795\u0797\u0003\u0002", - "\u0002\u0002\u0796\u0791\u0003\u0002\u0002\u0002\u0797\u079a\u0003\u0002", - "\u0002\u0002\u0798\u0796\u0003\u0002\u0002\u0002\u0798\u0799\u0003\u0002", - "\u0002\u0002\u0799\u079b\u0003\u0002\u0002\u0002\u079a\u0798\u0003\u0002", - "\u0002\u0002\u079b\u079c\u0007\u0004\u0002\u0002\u079c\u007f\u0003\u0002", - "\u0002\u0002\u079d\u079e\u0005\u00a4S\u0002\u079e\u079f\u0007\u0018", - "\u0002\u0002\u079f\u07a0\u0005\u00e0q\u0002\u07a0\u0081\u0003\u0002", - "\u0002\u0002\u07a1\u07a2\u0005\u00a4S\u0002\u07a2\u0083\u0003\u0002", - "\u0002\u0002\u07a3\u07a4\u0005\u00dep\u0002\u07a4\u0085\u0003\u0002", - "\u0002\u0002\u07a5\u07aa\u0005\u0088E\u0002\u07a6\u07a7\u0007\u009c", - "\u0002\u0002\u07a7\u07a9\u0005\u0088E\u0002\u07a8\u07a6\u0003\u0002", - "\u0002\u0002\u07a9\u07ac\u0003\u0002\u0002\u0002\u07aa\u07a8\u0003\u0002", - "\u0002\u0002\u07aa\u07ab\u0003\u0002\u0002\u0002\u07ab\u0087\u0003\u0002", - "\u0002\u0002\u07ac\u07aa\u0003\u0002\u0002\u0002\u07ad\u07b1\u0005\u008a", - "F\u0002\u07ae\u07b0\u0005\u008aF\u0002\u07af\u07ae\u0003\u0002\u0002", - "\u0002\u07b0\u07b3\u0003\u0002\u0002\u0002\u07b1\u07af\u0003\u0002\u0002", - "\u0002\u07b1\u07b2\u0003\u0002\u0002\u0002\u07b2\u0089\u0003\u0002\u0002", - "\u0002\u07b3\u07b1\u0003\u0002\u0002\u0002\u07b4\u07b6\u0005\u0084C", - "\u0002\u07b5\u07b7\u0005\u008cG\u0002\u07b6\u07b5\u0003\u0002\u0002", - "\u0002\u07b6\u07b7\u0003\u0002\u0002\u0002\u07b7\u008b\u0003\u0002\u0002", - "\u0002\u07b8\u07cf\u0007\u0096\u0002\u0002\u07b9\u07cf\u0007\t\u0002", - "\u0002\u07ba\u07cf\u0007\u0094\u0002\u0002\u07bb\u07cf\u0007\n\u0002", - "\u0002\u07bc\u07cf\u0007\u000b\u0002\u0002\u07bd\u07cf\u0007\f\u0002", - "\u0002\u07be\u07c0\u0007\r\u0002\u0002\u07bf\u07c1\u0005\u008eH\u0002", - "\u07c0\u07bf\u0003\u0002\u0002\u0002\u07c0\u07c1\u0003\u0002\u0002\u0002", - "\u07c1\u07c2\u0003\u0002\u0002\u0002\u07c2\u07c4\u0007\u0006\u0002\u0002", - "\u07c3\u07c5\u0005\u0090I\u0002\u07c4\u07c3\u0003\u0002\u0002\u0002", - "\u07c4\u07c5\u0003\u0002\u0002\u0002\u07c5\u07c6\u0003\u0002\u0002\u0002", - "\u07c6\u07c8\u0007\u000e\u0002\u0002\u07c7\u07c9\u0007\u000b\u0002\u0002", - "\u07c8\u07c7\u0003\u0002\u0002\u0002\u07c8\u07c9\u0003\u0002\u0002\u0002", - "\u07c9\u07cf\u0003\u0002\u0002\u0002\u07ca\u07cb\u0007\r\u0002\u0002", - "\u07cb\u07cc\u0005\u0092J\u0002\u07cc\u07cd\u0007\u000e\u0002\u0002", - "\u07cd\u07cf\u0003\u0002\u0002\u0002\u07ce\u07b8\u0003\u0002\u0002\u0002", - "\u07ce\u07b9\u0003\u0002\u0002\u0002\u07ce\u07ba\u0003\u0002\u0002\u0002", - "\u07ce\u07bb\u0003\u0002\u0002\u0002\u07ce\u07bc\u0003\u0002\u0002\u0002", - "\u07ce\u07bd\u0003\u0002\u0002\u0002\u07ce\u07be\u0003\u0002\u0002\u0002", - "\u07ce\u07ca\u0003\u0002\u0002\u0002\u07cf\u008d\u0003\u0002\u0002\u0002", - "\u07d0\u07d1\u0007\u010b\u0002\u0002\u07d1\u008f\u0003\u0002\u0002\u0002", - "\u07d2\u07d3\u0007\u010b\u0002\u0002\u07d3\u0091\u0003\u0002\u0002\u0002", - "\u07d4\u07d5\u0007\u010b\u0002\u0002\u07d5\u0093\u0003\u0002\u0002\u0002", - "\u07d6\u07d7\u0007X\u0002\u0002\u07d7\u07dc\u0005\u00a4S\u0002\u07d8", - "\u07d9\u0007\u0006\u0002\u0002\u07d9\u07db\u0005\u00a4S\u0002\u07da", - "\u07d8\u0003\u0002\u0002\u0002\u07db\u07de\u0003\u0002\u0002\u0002\u07dc", - "\u07da\u0003\u0002\u0002\u0002\u07dc\u07dd\u0003\u0002\u0002\u0002\u07dd", - "\u07df\u0003\u0002\u0002\u0002\u07de\u07dc\u0003\u0002\u0002\u0002\u07df", - "\u07e0\u0005\u0098M\u0002\u07e0\u0095\u0003\u0002\u0002\u0002\u07e1", - "\u07e2\u0005\u00dep\u0002\u07e2\u07eb\u0007\u0003\u0002\u0002\u07e3", - "\u07e8\u0005\u00a4S\u0002\u07e4\u07e5\u0007\u0006\u0002\u0002\u07e5", - "\u07e7\u0005\u00a4S\u0002\u07e6\u07e4\u0003\u0002\u0002\u0002\u07e7", - "\u07ea\u0003\u0002\u0002\u0002\u07e8\u07e6\u0003\u0002\u0002\u0002\u07e8", - "\u07e9\u0003\u0002\u0002\u0002\u07e9\u07ec\u0003\u0002\u0002\u0002\u07ea", - "\u07e8\u0003\u0002\u0002\u0002\u07eb\u07e3\u0003\u0002\u0002\u0002\u07eb", - "\u07ec\u0003\u0002\u0002\u0002\u07ec\u07ed\u0003\u0002\u0002\u0002\u07ed", - "\u07ee\u0007\u0004\u0002\u0002\u07ee\u07ef\u0005\u0098M\u0002\u07ef", - "\u0097\u0003\u0002\u0002\u0002\u07f0\u07f2\u0007\u0018\u0002\u0002\u07f1", - "\u07f0\u0003\u0002\u0002\u0002\u07f1\u07f2\u0003\u0002\u0002\u0002\u07f2", - "\u07f3\u0003\u0002\u0002\u0002\u07f3\u07f5\u0005\u00e0q\u0002\u07f4", - "\u07f6\u0005p9\u0002\u07f5\u07f4\u0003\u0002\u0002\u0002\u07f5\u07f6", - "\u0003\u0002\u0002\u0002\u07f6\u07f8\u0003\u0002\u0002\u0002\u07f7\u07f1", - "\u0003\u0002\u0002\u0002\u07f7\u07f8\u0003\u0002\u0002\u0002\u07f8\u0099", - "\u0003\u0002\u0002\u0002\u07f9\u07fa\u0007V\u0002\u0002\u07fa\u07fb", - "\u0007c\u0002\u0002\u07fb\u07fc\u0007\u00aa\u0002\u0002\u07fc\u0800", - "\u0007\u0107\u0002\u0002\u07fd\u07fe\u0007W\u0002\u0002\u07fe\u07ff", - "\u0007\u00ab\u0002\u0002\u07ff\u0801\u0005.\u0018\u0002\u0800\u07fd", - "\u0003\u0002\u0002\u0002\u0800\u0801\u0003\u0002\u0002\u0002\u0801\u082b", - "\u0003\u0002\u0002\u0002\u0802\u0803\u0007V\u0002\u0002\u0803\u0804", - "\u0007c\u0002\u0002\u0804\u080e\u0007\u00ae\u0002\u0002\u0805\u0806", - "\u0007\u00af\u0002\u0002\u0806\u0807\u0007\u00b0\u0002\u0002\u0807\u0808", - "\u0007\u001e\u0002\u0002\u0808\u080c\u0007\u0107\u0002\u0002\u0809\u080a", - "\u0007\u00b4\u0002\u0002\u080a\u080b\u0007\u001e\u0002\u0002\u080b\u080d", - "\u0007\u0107\u0002\u0002\u080c\u0809\u0003\u0002\u0002\u0002\u080c\u080d", - "\u0003\u0002\u0002\u0002\u080d\u080f\u0003\u0002\u0002\u0002\u080e\u0805", - "\u0003\u0002\u0002\u0002\u080e\u080f\u0003\u0002\u0002\u0002\u080f\u0815", - "\u0003\u0002\u0002\u0002\u0810\u0811\u0007\u00b1\u0002\u0002\u0811\u0812", - "\u0007\u00b2\u0002\u0002\u0812\u0813\u0007\u00b0\u0002\u0002\u0813\u0814", - "\u0007\u001e\u0002\u0002\u0814\u0816\u0007\u0107\u0002\u0002\u0815\u0810", - "\u0003\u0002\u0002\u0002\u0815\u0816\u0003\u0002\u0002\u0002\u0816\u081c", - "\u0003\u0002\u0002\u0002\u0817\u0818\u0007z\u0002\u0002\u0818\u0819", - "\u0007\u00b3\u0002\u0002\u0819\u081a\u0007\u00b0\u0002\u0002\u081a\u081b", - "\u0007\u001e\u0002\u0002\u081b\u081d\u0007\u0107\u0002\u0002\u081c\u0817", - "\u0003\u0002\u0002\u0002\u081c\u081d\u0003\u0002\u0002\u0002\u081d\u0822", - "\u0003\u0002\u0002\u0002\u081e\u081f\u0007\u00b5\u0002\u0002\u081f\u0820", - "\u0007\u00b0\u0002\u0002\u0820\u0821\u0007\u001e\u0002\u0002\u0821\u0823", - "\u0007\u0107\u0002\u0002\u0822\u081e\u0003\u0002\u0002\u0002\u0822\u0823", - "\u0003\u0002\u0002\u0002\u0823\u0828\u0003\u0002\u0002\u0002\u0824\u0825", - "\u00071\u0002\u0002\u0825\u0826\u0007\u00e3\u0002\u0002\u0826\u0827", - "\u0007\u0018\u0002\u0002\u0827\u0829\u0007\u0107\u0002\u0002\u0828\u0824", - "\u0003\u0002\u0002\u0002\u0828\u0829\u0003\u0002\u0002\u0002\u0829\u082b", - "\u0003\u0002\u0002\u0002\u082a\u07f9\u0003\u0002\u0002\u0002\u082a\u0802", - "\u0003\u0002\u0002\u0002\u082b\u009b\u0003\u0002\u0002\u0002\u082c\u082d", - "\u0005\u00dep\u0002\u082d\u082e\u0007\u0005\u0002\u0002\u082e\u0830", - "\u0003\u0002\u0002\u0002\u082f\u082c\u0003\u0002\u0002\u0002\u082f\u0830", - "\u0003\u0002\u0002\u0002\u0830\u0831\u0003\u0002\u0002\u0002\u0831\u0848", - "\u0005\u00dep\u0002\u0832\u0833\u0007I\u0002\u0002\u0833\u0834\u0007", - "Z\u0002\u0002\u0834\u0835\u0007\u0003\u0002\u0002\u0835\u0836\u0005", - "\u009eP\u0002\u0836\u0837\u0007\u0003\u0002\u0002\u0837\u083c\u0005", - "\u00a4S\u0002\u0838\u0839\u0007\u0006\u0002\u0002\u0839\u083b\u0005", - "\u00a4S\u0002\u083a\u0838\u0003\u0002\u0002\u0002\u083b\u083e\u0003", - "\u0002\u0002\u0002\u083c\u083a\u0003\u0002\u0002\u0002\u083c\u083d\u0003", - "\u0002\u0002\u0002\u083d\u083f\u0003\u0002\u0002\u0002\u083e\u083c\u0003", - "\u0002\u0002\u0002\u083f\u0840\u0007\u0004\u0002\u0002\u0840\u0841\u0007", - "\u0004\u0002\u0002\u0841\u0848\u0003\u0002\u0002\u0002\u0842\u0843\u0007", - "\u00fb\u0002\u0002\u0843\u0844\u0007\u0003\u0002\u0002\u0844\u0845\u0005", - "\u00a4S\u0002\u0845\u0846\u0007\u0004\u0002\u0002\u0846\u0848\u0003", - "\u0002\u0002\u0002\u0847\u082f\u0003\u0002\u0002\u0002\u0847\u0832\u0003", - "\u0002\u0002\u0002\u0847\u0842\u0003\u0002\u0002\u0002\u0848\u009d\u0003", - "\u0002\u0002\u0002\u0849\u084a\u0005\u00dep\u0002\u084a\u084b\u0007", - "\u0005\u0002\u0002\u084b\u084d\u0003\u0002\u0002\u0002\u084c\u0849\u0003", - "\u0002\u0002\u0002\u084c\u084d\u0003\u0002\u0002\u0002\u084d\u084e\u0003", - "\u0002\u0002\u0002\u084e\u084f\u0005\u00dep\u0002\u084f\u009f\u0003", - "\u0002\u0002\u0002\u0850\u0858\u0005\u00a4S\u0002\u0851\u0853\u0007", - "\u0018\u0002\u0002\u0852\u0851\u0003\u0002\u0002\u0002\u0852\u0853\u0003", - "\u0002\u0002\u0002\u0853\u0856\u0003\u0002\u0002\u0002\u0854\u0857\u0005", - "\u00dep\u0002\u0855\u0857\u0005p9\u0002\u0856\u0854\u0003\u0002\u0002", - "\u0002\u0856\u0855\u0003\u0002\u0002\u0002\u0857\u0859\u0003\u0002\u0002", - "\u0002\u0858\u0852\u0003\u0002\u0002\u0002\u0858\u0859\u0003\u0002\u0002", - "\u0002\u0859\u00a1\u0003\u0002\u0002\u0002\u085a\u085f\u0005\u00a0Q", - "\u0002\u085b\u085c\u0007\u0006\u0002\u0002\u085c\u085e\u0005\u00a0Q", - "\u0002\u085d\u085b\u0003\u0002\u0002\u0002\u085e\u0861\u0003\u0002\u0002", - "\u0002\u085f\u085d\u0003\u0002\u0002\u0002\u085f\u0860\u0003\u0002\u0002", - "\u0002\u0860\u00a3\u0003\u0002\u0002\u0002\u0861\u085f\u0003\u0002\u0002", - "\u0002\u0862\u0863\u0005\u00a6T\u0002\u0863\u00a5\u0003\u0002\u0002", - "\u0002\u0864\u0865\bT\u0001\u0002\u0865\u0866\u0007*\u0002\u0002\u0866", - "\u0871\u0005\u00a6T\u0007\u0867\u0868\u0007,\u0002\u0002\u0868\u0869", - "\u0007\u0003\u0002\u0002\u0869\u086a\u0005\u001a\u000e\u0002\u086a\u086b", - "\u0007\u0004\u0002\u0002\u086b\u0871\u0003\u0002\u0002\u0002\u086c\u086e", - "\u0005\u00aaV\u0002\u086d\u086f\u0005\u00a8U\u0002\u086e\u086d\u0003", - "\u0002\u0002\u0002\u086e\u086f\u0003\u0002\u0002\u0002\u086f\u0871\u0003", - "\u0002\u0002\u0002\u0870\u0864\u0003\u0002\u0002\u0002\u0870\u0867\u0003", - "\u0002\u0002\u0002\u0870\u086c\u0003\u0002\u0002\u0002\u0871\u087a\u0003", - "\u0002\u0002\u0002\u0872\u0873\f\u0004\u0002\u0002\u0873\u0874\u0007", - "(\u0002\u0002\u0874\u0879\u0005\u00a6T\u0005\u0875\u0876\f\u0003\u0002", - "\u0002\u0876\u0877\u0007\'\u0002\u0002\u0877\u0879\u0005\u00a6T\u0004", - "\u0878\u0872\u0003\u0002\u0002\u0002\u0878\u0875\u0003\u0002\u0002\u0002", - "\u0879\u087c\u0003\u0002\u0002\u0002\u087a\u0878\u0003\u0002\u0002\u0002", - "\u087a\u087b\u0003\u0002\u0002\u0002\u087b\u00a7\u0003\u0002\u0002\u0002", - "\u087c\u087a\u0003\u0002\u0002\u0002\u087d\u087f\u0007*\u0002\u0002", - "\u087e\u087d\u0003\u0002\u0002\u0002\u087e\u087f\u0003\u0002\u0002\u0002", - "\u087f\u0880\u0003\u0002\u0002\u0002\u0880\u0881\u0007-\u0002\u0002", - "\u0881\u0882\u0005\u00aaV\u0002\u0882\u0883\u0007(\u0002\u0002\u0883", - "\u0884\u0005\u00aaV\u0002\u0884\u08ae\u0003\u0002\u0002\u0002\u0885", - "\u0887\u0007*\u0002\u0002\u0886\u0885\u0003\u0002\u0002\u0002\u0886", - "\u0887\u0003\u0002\u0002\u0002\u0887\u0888\u0003\u0002\u0002\u0002\u0888", - "\u0889\u0007)\u0002\u0002\u0889\u088a\u0007\u0003\u0002\u0002\u088a", - "\u088f\u0005\u00a4S\u0002\u088b\u088c\u0007\u0006\u0002\u0002\u088c", - "\u088e\u0005\u00a4S\u0002\u088d\u088b\u0003\u0002\u0002\u0002\u088e", - "\u0891\u0003\u0002\u0002\u0002\u088f\u088d\u0003\u0002\u0002\u0002\u088f", - "\u0890\u0003\u0002\u0002\u0002\u0890\u0892\u0003\u0002\u0002\u0002\u0891", - "\u088f\u0003\u0002\u0002\u0002\u0892\u0893\u0007\u0004\u0002\u0002\u0893", - "\u08ae\u0003\u0002\u0002\u0002\u0894\u0896\u0007*\u0002\u0002\u0895", - "\u0894\u0003\u0002\u0002\u0002\u0895\u0896\u0003\u0002\u0002\u0002\u0896", - "\u0897\u0003\u0002\u0002\u0002\u0897\u0898\u0007)\u0002\u0002\u0898", - "\u0899\u0007\u0003\u0002\u0002\u0899\u089a\u0005\u001a\u000e\u0002\u089a", - "\u089b\u0007\u0004\u0002\u0002\u089b\u08ae\u0003\u0002\u0002\u0002\u089c", - "\u089e\u0007*\u0002\u0002\u089d\u089c\u0003\u0002\u0002\u0002\u089d", - "\u089e\u0003\u0002\u0002\u0002\u089e\u089f\u0003\u0002\u0002\u0002\u089f", - "\u08a0\t\u000f\u0002\u0002\u08a0\u08ae\u0005\u00aaV\u0002\u08a1\u08a3", - "\u00070\u0002\u0002\u08a2\u08a4\u0007*\u0002\u0002\u08a3\u08a2\u0003", - "\u0002\u0002\u0002\u08a3\u08a4\u0003\u0002\u0002\u0002\u08a4\u08a5\u0003", - "\u0002\u0002\u0002\u08a5\u08ae\u00071\u0002\u0002\u08a6\u08a8\u0007", - "0\u0002\u0002\u08a7\u08a9\u0007*\u0002\u0002\u08a8\u08a7\u0003\u0002", - "\u0002\u0002\u08a8\u08a9\u0003\u0002\u0002\u0002\u08a9\u08aa\u0003\u0002", - "\u0002\u0002\u08aa\u08ab\u0007\u001b\u0002\u0002\u08ab\u08ac\u0007\u0016", - "\u0002\u0002\u08ac\u08ae\u0005\u00aaV\u0002\u08ad\u087e\u0003\u0002", - "\u0002\u0002\u08ad\u0886\u0003\u0002\u0002\u0002\u08ad\u0895\u0003\u0002", - "\u0002\u0002\u08ad\u089d\u0003\u0002\u0002\u0002\u08ad\u08a1\u0003\u0002", - "\u0002\u0002\u08ad\u08a6\u0003\u0002\u0002\u0002\u08ae\u00a9\u0003\u0002", - "\u0002\u0002\u08af\u08b0\bV\u0001\u0002\u08b0\u08b4\u0005\u00acW\u0002", - "\u08b1\u08b2\t\u0010\u0002\u0002\u08b2\u08b4\u0005\u00aaV\t\u08b3\u08af", - "\u0003\u0002\u0002\u0002\u08b3\u08b1\u0003\u0002\u0002\u0002\u08b4\u08ca", - "\u0003\u0002\u0002\u0002\u08b5\u08b6\f\b\u0002\u0002\u08b6\u08b7\t\u0011", - "\u0002\u0002\u08b7\u08c9\u0005\u00aaV\t\u08b8\u08b9\f\u0007\u0002\u0002", - "\u08b9\u08ba\t\u0012\u0002\u0002\u08ba\u08c9\u0005\u00aaV\b\u08bb\u08bc", - "\f\u0006\u0002\u0002\u08bc\u08bd\u0007\u009b\u0002\u0002\u08bd\u08c9", - "\u0005\u00aaV\u0007\u08be\u08bf\f\u0005\u0002\u0002\u08bf\u08c0\u0007", - "\u009e\u0002\u0002\u08c0\u08c9\u0005\u00aaV\u0006\u08c1\u08c2\f\u0004", - "\u0002\u0002\u08c2\u08c3\u0007\u009c\u0002\u0002\u08c3\u08c9\u0005\u00aa", - "V\u0005\u08c4\u08c5\f\u0003\u0002\u0002\u08c5\u08c6\u0005\u00b0Y\u0002", - "\u08c6\u08c7\u0005\u00aaV\u0004\u08c7\u08c9\u0003\u0002\u0002\u0002", - "\u08c8\u08b5\u0003\u0002\u0002\u0002\u08c8\u08b8\u0003\u0002\u0002\u0002", - "\u08c8\u08bb\u0003\u0002\u0002\u0002\u08c8\u08be\u0003\u0002\u0002\u0002", - "\u08c8\u08c1\u0003\u0002\u0002\u0002\u08c8\u08c4\u0003\u0002\u0002\u0002", - "\u08c9\u08cc\u0003\u0002\u0002\u0002\u08ca\u08c8\u0003\u0002\u0002\u0002", - "\u08ca\u08cb\u0003\u0002\u0002\u0002\u08cb\u00ab\u0003\u0002\u0002\u0002", - "\u08cc\u08ca\u0003\u0002\u0002\u0002\u08cd\u08ce\bW\u0001\u0002\u08ce", - "\u08d0\u00079\u0002\u0002\u08cf\u08d1\u0005\u00d0i\u0002\u08d0\u08cf", - "\u0003\u0002\u0002\u0002\u08d1\u08d2\u0003\u0002\u0002\u0002\u08d2\u08d0", - "\u0003\u0002\u0002\u0002\u08d2\u08d3\u0003\u0002\u0002\u0002\u08d3\u08d6", - "\u0003\u0002\u0002\u0002\u08d4\u08d5\u0007<\u0002\u0002\u08d5\u08d7", - "\u0005\u00a4S\u0002\u08d6\u08d4\u0003\u0002\u0002\u0002\u08d6\u08d7", - "\u0003\u0002\u0002\u0002\u08d7\u08d8\u0003\u0002\u0002\u0002\u08d8\u08d9", - "\u0007=\u0002\u0002\u08d9\u095f\u0003\u0002\u0002\u0002\u08da\u08db", - "\u00079\u0002\u0002\u08db\u08dd\u0005\u00a4S\u0002\u08dc\u08de\u0005", - "\u00d0i\u0002\u08dd\u08dc\u0003\u0002\u0002\u0002\u08de\u08df\u0003", - "\u0002\u0002\u0002\u08df\u08dd\u0003\u0002\u0002\u0002\u08df\u08e0\u0003", - "\u0002\u0002\u0002\u08e0\u08e3\u0003\u0002\u0002\u0002\u08e1\u08e2\u0007", - "<\u0002\u0002\u08e2\u08e4\u0005\u00a4S\u0002\u08e3\u08e1\u0003\u0002", - "\u0002\u0002\u08e3\u08e4\u0003\u0002\u0002\u0002\u08e4\u08e5\u0003\u0002", - "\u0002\u0002\u08e5\u08e6\u0007=\u0002\u0002\u08e6\u095f\u0003\u0002", - "\u0002\u0002\u08e7\u08e8\u0007g\u0002\u0002\u08e8\u08e9\u0007\u0003", - "\u0002\u0002\u08e9\u08ea\u0005\u00a4S\u0002\u08ea\u08eb\u0007\u0018", - "\u0002\u0002\u08eb\u08ec\u0005\u00c0a\u0002\u08ec\u08ed\u0007\u0004", - "\u0002\u0002\u08ed\u095f\u0003\u0002\u0002\u0002\u08ee\u08ef\u0007{", - "\u0002\u0002\u08ef\u08f8\u0007\u0003\u0002\u0002\u08f0\u08f5\u0005\u00a0", - "Q\u0002\u08f1\u08f2\u0007\u0006\u0002\u0002\u08f2\u08f4\u0005\u00a0", - "Q\u0002\u08f3\u08f1\u0003\u0002\u0002\u0002\u08f4\u08f7\u0003\u0002", - "\u0002\u0002\u08f5\u08f3\u0003\u0002\u0002\u0002\u08f5\u08f6\u0003\u0002", - "\u0002\u0002\u08f6\u08f9\u0003\u0002\u0002\u0002\u08f7\u08f5\u0003\u0002", - "\u0002\u0002\u08f8\u08f0\u0003\u0002\u0002\u0002\u08f8\u08f9\u0003\u0002", - "\u0002\u0002\u08f9\u08fa\u0003\u0002\u0002\u0002\u08fa\u095f\u0007\u0004", - "\u0002\u0002\u08fb\u08fc\u0007S\u0002\u0002\u08fc\u08fd\u0007\u0003", - "\u0002\u0002\u08fd\u0900\u0005\u00a4S\u0002\u08fe\u08ff\u0007\u0085", - "\u0002\u0002\u08ff\u0901\u00074\u0002\u0002\u0900\u08fe\u0003\u0002", - "\u0002\u0002\u0900\u0901\u0003\u0002\u0002\u0002\u0901\u0902\u0003\u0002", - "\u0002\u0002\u0902\u0903\u0007\u0004\u0002\u0002\u0903\u095f\u0003\u0002", - "\u0002\u0002\u0904\u0905\u0007U\u0002\u0002\u0905\u0906\u0007\u0003", - "\u0002\u0002\u0906\u0909\u0005\u00a4S\u0002\u0907\u0908\u0007\u0085", - "\u0002\u0002\u0908\u090a\u00074\u0002\u0002\u0909\u0907\u0003\u0002", - "\u0002\u0002\u0909\u090a\u0003\u0002\u0002\u0002\u090a\u090b\u0003\u0002", - "\u0002\u0002\u090b\u090c\u0007\u0004\u0002\u0002\u090c\u095f\u0003\u0002", - "\u0002\u0002\u090d\u090e\u0007\u008a\u0002\u0002\u090e\u090f\u0007\u0003", - "\u0002\u0002\u090f\u0910\u0005\u00aaV\u0002\u0910\u0911\u0007)\u0002", - "\u0002\u0911\u0912\u0005\u00aaV\u0002\u0912\u0913\u0007\u0004\u0002", - "\u0002\u0913\u095f\u0003\u0002\u0002\u0002\u0914\u095f\u0005\u00aeX", - "\u0002\u0915\u095f\u0007\u0096\u0002\u0002\u0916\u0917\u0005\u00dco", - "\u0002\u0917\u0918\u0007\u0005\u0002\u0002\u0918\u0919\u0007\u0096\u0002", - "\u0002\u0919\u095f\u0003\u0002\u0002\u0002\u091a\u091b\u0007\u0003\u0002", - "\u0002\u091b\u091e\u0005\u00a0Q\u0002\u091c\u091d\u0007\u0006\u0002", - "\u0002\u091d\u091f\u0005\u00a0Q\u0002\u091e\u091c\u0003\u0002\u0002", - "\u0002\u091f\u0920\u0003\u0002\u0002\u0002\u0920\u091e\u0003\u0002\u0002", - "\u0002\u0920\u0921\u0003\u0002\u0002\u0002\u0921\u0922\u0003\u0002\u0002", - "\u0002\u0922\u0923\u0007\u0004\u0002\u0002\u0923\u095f\u0003\u0002\u0002", - "\u0002\u0924\u0925\u0007\u0003\u0002\u0002\u0925\u0926\u0005\u001a\u000e", - "\u0002\u0926\u0927\u0007\u0004\u0002\u0002\u0927\u095f\u0003\u0002\u0002", - "\u0002\u0928\u0929\u0005\u00dco\u0002\u0929\u0935\u0007\u0003\u0002", - "\u0002\u092a\u092c\u0005b2\u0002\u092b\u092a\u0003\u0002\u0002\u0002", - "\u092b\u092c\u0003\u0002\u0002\u0002\u092c\u092d\u0003\u0002\u0002\u0002", - "\u092d\u0932\u0005\u00a4S\u0002\u092e\u092f\u0007\u0006\u0002\u0002", - "\u092f\u0931\u0005\u00a4S\u0002\u0930\u092e\u0003\u0002\u0002\u0002", - "\u0931\u0934\u0003\u0002\u0002\u0002\u0932\u0930\u0003\u0002\u0002\u0002", - "\u0932\u0933\u0003\u0002\u0002\u0002\u0933\u0936\u0003\u0002\u0002\u0002", - "\u0934\u0932\u0003\u0002\u0002\u0002\u0935\u092b\u0003\u0002\u0002\u0002", - "\u0935\u0936\u0003\u0002\u0002\u0002\u0936\u0937\u0003\u0002\u0002\u0002", - "\u0937\u093a\u0007\u0004\u0002\u0002\u0938\u0939\u0007K\u0002\u0002", - "\u0939\u093b\u0005\u00d6l\u0002\u093a\u0938\u0003\u0002\u0002\u0002", - "\u093a\u093b\u0003\u0002\u0002\u0002\u093b\u095f\u0003\u0002\u0002\u0002", - "\u093c\u093d\u0005\u00dco\u0002\u093d\u093e\u0007\u0003\u0002\u0002", - "\u093e\u093f\t\u0013\u0002\u0002\u093f\u0940\u0005\u00a4S\u0002\u0940", - "\u0941\u0007\u0016\u0002\u0002\u0941\u0942\u0005\u00a4S\u0002\u0942", - "\u0943\u0007\u0004\u0002\u0002\u0943\u095f\u0003\u0002\u0002\u0002\u0944", - "\u0945\u0007\u010f\u0002\u0002\u0945\u0946\u0007\u000f\u0002\u0002\u0946", - "\u095f\u0005\u00a4S\u0002\u0947\u0948\u0007\u0003\u0002\u0002\u0948", - "\u094b\u0007\u010f\u0002\u0002\u0949\u094a\u0007\u0006\u0002\u0002\u094a", - "\u094c\u0007\u010f\u0002\u0002\u094b\u0949\u0003\u0002\u0002\u0002\u094c", - "\u094d\u0003\u0002\u0002\u0002\u094d\u094b\u0003\u0002\u0002\u0002\u094d", - "\u094e\u0003\u0002\u0002\u0002\u094e\u094f\u0003\u0002\u0002\u0002\u094f", - "\u0950\u0007\u0004\u0002\u0002\u0950\u0951\u0007\u000f\u0002\u0002\u0951", - "\u095f\u0005\u00a4S\u0002\u0952\u095f\u0005\u00dep\u0002\u0953\u0954", - "\u0007\u0003\u0002\u0002\u0954\u0955\u0005\u00a4S\u0002\u0955\u0956", - "\u0007\u0004\u0002\u0002\u0956\u095f\u0003\u0002\u0002\u0002\u0957\u0958", - "\u0007\u008b\u0002\u0002\u0958\u0959\u0007\u0003\u0002\u0002\u0959\u095a", - "\u0005\u00dep\u0002\u095a\u095b\u0007\u0016\u0002\u0002\u095b\u095c", - "\u0005\u00aaV\u0002\u095c\u095d\u0007\u0004\u0002\u0002\u095d\u095f", - "\u0003\u0002\u0002\u0002\u095e\u08cd\u0003\u0002\u0002\u0002\u095e\u08da", - "\u0003\u0002\u0002\u0002\u095e\u08e7\u0003\u0002\u0002\u0002\u095e\u08ee", - "\u0003\u0002\u0002\u0002\u095e\u08fb\u0003\u0002\u0002\u0002\u095e\u0904", - "\u0003\u0002\u0002\u0002\u095e\u090d\u0003\u0002\u0002\u0002\u095e\u0914", - "\u0003\u0002\u0002\u0002\u095e\u0915\u0003\u0002\u0002\u0002\u095e\u0916", - "\u0003\u0002\u0002\u0002\u095e\u091a\u0003\u0002\u0002\u0002\u095e\u0924", - "\u0003\u0002\u0002\u0002\u095e\u0928\u0003\u0002\u0002\u0002\u095e\u093c", - "\u0003\u0002\u0002\u0002\u095e\u0944\u0003\u0002\u0002\u0002\u095e\u0947", - "\u0003\u0002\u0002\u0002\u095e\u0952\u0003\u0002\u0002\u0002\u095e\u0953", - "\u0003\u0002\u0002\u0002\u095e\u0957\u0003\u0002\u0002\u0002\u095f\u096a", - "\u0003\u0002\u0002\u0002\u0960\u0961\f\u0007\u0002\u0002\u0961\u0962", - "\u0007\u0010\u0002\u0002\u0962\u0963\u0005\u00aaV\u0002\u0963\u0964", - "\u0007\u0011\u0002\u0002\u0964\u0969\u0003\u0002\u0002\u0002\u0965\u0966", - "\f\u0005\u0002\u0002\u0966\u0967\u0007\u0005\u0002\u0002\u0967\u0969", - "\u0005\u00dep\u0002\u0968\u0960\u0003\u0002\u0002\u0002\u0968\u0965", - "\u0003\u0002\u0002\u0002\u0969\u096c\u0003\u0002\u0002\u0002\u096a\u0968", - "\u0003\u0002\u0002\u0002\u096a\u096b\u0003\u0002\u0002\u0002\u096b\u00ad", - "\u0003\u0002\u0002\u0002\u096c\u096a\u0003\u0002\u0002\u0002\u096d\u097a", - "\u00071\u0002\u0002\u096e\u097a\u0005\u00b8]\u0002\u096f\u0970\u0005", - "\u00dep\u0002\u0970\u0971\u0007\u0107\u0002\u0002\u0971\u097a\u0003", - "\u0002\u0002\u0002\u0972\u097a\u0005\u00e4s\u0002\u0973\u097a\u0005", - "\u00b6\\\u0002\u0974\u0976\u0007\u0107\u0002\u0002\u0975\u0974\u0003", - "\u0002\u0002\u0002\u0976\u0977\u0003\u0002\u0002\u0002\u0977\u0975\u0003", - "\u0002\u0002\u0002\u0977\u0978\u0003\u0002\u0002\u0002\u0978\u097a\u0003", - "\u0002\u0002\u0002\u0979\u096d\u0003\u0002\u0002\u0002\u0979\u096e\u0003", - "\u0002\u0002\u0002\u0979\u096f\u0003\u0002\u0002\u0002\u0979\u0972\u0003", - "\u0002\u0002\u0002\u0979\u0973\u0003\u0002\u0002\u0002\u0979\u0975\u0003", - "\u0002\u0002\u0002\u097a\u00af\u0003\u0002\u0002\u0002\u097b\u097c\t", - "\u0014\u0002\u0002\u097c\u00b1\u0003\u0002\u0002\u0002\u097d\u097e\t", - "\u0015\u0002\u0002\u097e\u00b3\u0003\u0002\u0002\u0002\u097f\u0980\t", - "\u0016\u0002\u0002\u0980\u00b5\u0003\u0002\u0002\u0002\u0981\u0982\t", - "\u0017\u0002\u0002\u0982\u00b7\u0003\u0002\u0002\u0002\u0983\u0987\u0007", - "8\u0002\u0002\u0984\u0986\u0005\u00ba^\u0002\u0985\u0984\u0003\u0002", - "\u0002\u0002\u0986\u0989\u0003\u0002\u0002\u0002\u0987\u0985\u0003\u0002", - "\u0002\u0002\u0987\u0988\u0003\u0002\u0002\u0002\u0988\u00b9\u0003\u0002", - "\u0002\u0002\u0989\u0987\u0003\u0002\u0002\u0002\u098a\u098b\u0005\u00bc", - "_\u0002\u098b\u098e\u0005\u00dep\u0002\u098c\u098d\u0007t\u0002\u0002", - "\u098d\u098f\u0005\u00dep\u0002\u098e\u098c\u0003\u0002\u0002\u0002", - "\u098e\u098f\u0003\u0002\u0002\u0002\u098f\u00bb\u0003\u0002\u0002\u0002", - "\u0990\u0992\t\u0018\u0002\u0002\u0991\u0990\u0003\u0002\u0002\u0002", - "\u0991\u0992\u0003\u0002\u0002\u0002\u0992\u0993\u0003\u0002\u0002\u0002", - "\u0993\u0996\t\u000e\u0002\u0002\u0994\u0996\u0007\u0107\u0002\u0002", - "\u0995\u0991\u0003\u0002\u0002\u0002\u0995\u0994\u0003\u0002\u0002\u0002", - "\u0996\u00bd\u0003\u0002\u0002\u0002\u0997\u099b\u0007S\u0002\u0002", - "\u0998\u0999\u0007T\u0002\u0002\u0999\u099b\u0005\u00dep\u0002\u099a", - "\u0997\u0003\u0002\u0002\u0002\u099a\u0998\u0003\u0002\u0002\u0002\u099b", - "\u00bf\u0003\u0002\u0002\u0002\u099c\u099d\u0007y\u0002\u0002\u099d", - "\u099e\u0007\u0090\u0002\u0002\u099e\u099f\u0005\u00c0a\u0002\u099f", - "\u09a0\u0007\u0092\u0002\u0002\u09a0\u09bf\u0003\u0002\u0002\u0002\u09a1", - "\u09a2\u0007z\u0002\u0002\u09a2\u09a3\u0007\u0090\u0002\u0002\u09a3", - "\u09a4\u0005\u00c0a\u0002\u09a4\u09a5\u0007\u0006\u0002\u0002\u09a5", - "\u09a6\u0005\u00c0a\u0002\u09a6\u09a7\u0007\u0092\u0002\u0002\u09a7", - "\u09bf\u0003\u0002\u0002\u0002\u09a8\u09af\u0007{\u0002\u0002\u09a9", - "\u09ab\u0007\u0090\u0002\u0002\u09aa\u09ac\u0005\u00ccg\u0002\u09ab", - "\u09aa\u0003\u0002\u0002\u0002\u09ab\u09ac\u0003\u0002\u0002\u0002\u09ac", - "\u09ad\u0003\u0002\u0002\u0002\u09ad\u09b0\u0007\u0092\u0002\u0002\u09ae", - "\u09b0\u0007\u008e\u0002\u0002\u09af\u09a9\u0003\u0002\u0002\u0002\u09af", - "\u09ae\u0003\u0002\u0002\u0002\u09b0\u09bf\u0003\u0002\u0002\u0002\u09b1", - "\u09bc\u0005\u00dep\u0002\u09b2\u09b3\u0007\u0003\u0002\u0002\u09b3", - "\u09b8\u0007\u010b\u0002\u0002\u09b4\u09b5\u0007\u0006\u0002\u0002\u09b5", - "\u09b7\u0007\u010b\u0002\u0002\u09b6\u09b4\u0003\u0002\u0002\u0002\u09b7", - "\u09ba\u0003\u0002\u0002\u0002\u09b8\u09b6\u0003\u0002\u0002\u0002\u09b8", - "\u09b9\u0003\u0002\u0002\u0002\u09b9\u09bb\u0003\u0002\u0002\u0002\u09ba", - "\u09b8\u0003\u0002\u0002\u0002\u09bb\u09bd\u0007\u0004\u0002\u0002\u09bc", - "\u09b2\u0003\u0002\u0002\u0002\u09bc\u09bd\u0003\u0002\u0002\u0002\u09bd", - "\u09bf\u0003\u0002\u0002\u0002\u09be\u099c\u0003\u0002\u0002\u0002\u09be", - "\u09a1\u0003\u0002\u0002\u0002\u09be\u09a8\u0003\u0002\u0002\u0002\u09be", - "\u09b1\u0003\u0002\u0002\u0002\u09bf\u00c1\u0003\u0002\u0002\u0002\u09c0", - "\u09c5\u0005\u00c4c\u0002\u09c1\u09c2\u0007\u0006\u0002\u0002\u09c2", - "\u09c4\u0005\u00c4c\u0002\u09c3\u09c1\u0003\u0002\u0002\u0002\u09c4", - "\u09c7\u0003\u0002\u0002\u0002\u09c5\u09c3\u0003\u0002\u0002\u0002\u09c5", - "\u09c6\u0003\u0002\u0002\u0002\u09c6\u00c3\u0003\u0002\u0002\u0002\u09c7", - "\u09c5\u0003\u0002\u0002\u0002\u09c8\u09c9\u0005\u00dep\u0002\u09c9", - "\u09cc\u0005\u00c0a\u0002\u09ca\u09cb\u0007|\u0002\u0002\u09cb\u09cd", - "\u0007\u0107\u0002\u0002\u09cc\u09ca\u0003\u0002\u0002\u0002\u09cc\u09cd", - "\u0003\u0002\u0002\u0002\u09cd\u00c5\u0003\u0002\u0002\u0002\u09ce\u09d3", - "\u0005\u00c8e\u0002\u09cf\u09d0\u0007\u0006\u0002\u0002\u09d0\u09d2", - "\u0005\u00c8e\u0002\u09d1\u09cf\u0003\u0002\u0002\u0002\u09d2\u09d5", - "\u0003\u0002\u0002\u0002\u09d3\u09d1\u0003\u0002\u0002\u0002\u09d3\u09d4", - "\u0003\u0002\u0002\u0002\u09d4\u00c7\u0003\u0002\u0002\u0002\u09d5\u09d3", - "\u0003\u0002\u0002\u0002\u09d6\u09db\u0005\u00caf\u0002\u09d7\u09d8", - "\u0007\u0005\u0002\u0002\u09d8\u09da\u0005\u00caf\u0002\u09d9\u09d7", - "\u0003\u0002\u0002\u0002\u09da\u09dd\u0003\u0002\u0002\u0002\u09db\u09d9", - "\u0003\u0002\u0002\u0002\u09db\u09dc\u0003\u0002\u0002\u0002\u09dc\u09de", - "\u0003\u0002\u0002\u0002\u09dd\u09db\u0003\u0002\u0002\u0002\u09de\u09e1", - "\u0005\u00c0a\u0002\u09df\u09e0\u0007\u0018\u0002\u0002\u09e0\u09e2", - "\u0005\u00dep\u0002\u09e1\u09df\u0003\u0002\u0002\u0002\u09e1\u09e2", - "\u0003\u0002\u0002\u0002\u09e2\u09e5\u0003\u0002\u0002\u0002\u09e3\u09e4", - "\u0007|\u0002\u0002\u09e4\u09e6\u0007\u0107\u0002\u0002\u09e5\u09e3", - "\u0003\u0002\u0002\u0002\u09e5\u09e6\u0003\u0002\u0002\u0002\u09e6\u09fb", - "\u0003\u0002\u0002\u0002\u09e7\u09e8\u0007\u00fa\u0002\u0002\u09e8\u09e9", - "\u00077\u0002\u0002\u09e9\u09ea\u0005\u00dep\u0002\u09ea\u09eb\u0007", - "\u0018\u0002\u0002\u09eb\u09ec\u0005\u00acW\u0002\u09ec\u09fb\u0003", - "\u0002\u0002\u0002\u09ed\u09ee\u0007\u0012\u0002\u0002\u09ee\u09ef\u0007", - "\u0013\u0002\u0002\u09ef\u09f0\u0007\u0003\u0002\u0002\u09f0\u09f5\u0005", - "\u00caf\u0002\u09f1\u09f2\u0007\u0006\u0002\u0002\u09f2\u09f4\u0005", - "\u00caf\u0002\u09f3\u09f1\u0003\u0002\u0002\u0002\u09f4\u09f7\u0003", - "\u0002\u0002\u0002\u09f5\u09f3\u0003\u0002\u0002\u0002\u09f5\u09f6\u0003", - "\u0002\u0002\u0002\u09f6\u09f8\u0003\u0002\u0002\u0002\u09f7\u09f5\u0003", - "\u0002\u0002\u0002\u09f8\u09f9\u0007\u0004\u0002\u0002\u09f9\u09fb\u0003", - "\u0002\u0002\u0002\u09fa\u09d6\u0003\u0002\u0002\u0002\u09fa\u09e7\u0003", - "\u0002\u0002\u0002\u09fa\u09ed\u0003\u0002\u0002\u0002\u09fb\u00c9\u0003", - "\u0002\u0002\u0002\u09fc\u0a03\u0005\u00dep\u0002\u09fd\u09fe\u0005", - "\u00dep\u0002\u09fe\u09ff\u0007\u0010\u0002\u0002\u09ff\u0a00\u0005", - "\u00aaV\u0002\u0a00\u0a01\u0007\u0011\u0002\u0002\u0a01\u0a03\u0003", - "\u0002\u0002\u0002\u0a02\u09fc\u0003\u0002\u0002\u0002\u0a02\u09fd\u0003", - "\u0002\u0002\u0002\u0a03\u00cb\u0003\u0002\u0002\u0002\u0a04\u0a09\u0005", - "\u00ceh\u0002\u0a05\u0a06\u0007\u0006\u0002\u0002\u0a06\u0a08\u0005", - "\u00ceh\u0002\u0a07\u0a05\u0003\u0002\u0002\u0002\u0a08\u0a0b\u0003", - "\u0002\u0002\u0002\u0a09\u0a07\u0003\u0002\u0002\u0002\u0a09\u0a0a\u0003", - "\u0002\u0002\u0002\u0a0a\u00cd\u0003\u0002\u0002\u0002\u0a0b\u0a09\u0003", - "\u0002\u0002\u0002\u0a0c\u0a0d\u0005\u00dep\u0002\u0a0d\u0a0e\u0007", - "\u0014\u0002\u0002\u0a0e\u0a11\u0005\u00c0a\u0002\u0a0f\u0a10\u0007", - "|\u0002\u0002\u0a10\u0a12\u0007\u0107\u0002\u0002\u0a11\u0a0f\u0003", - "\u0002\u0002\u0002\u0a11\u0a12\u0003\u0002\u0002\u0002\u0a12\u00cf\u0003", - "\u0002\u0002\u0002\u0a13\u0a14\u0007:\u0002\u0002\u0a14\u0a15\u0005", - "\u00a4S\u0002\u0a15\u0a16\u0007;\u0002\u0002\u0a16\u0a17\u0005\u00a4", - "S\u0002\u0a17\u00d1\u0003\u0002\u0002\u0002\u0a18\u0a19\u0007J\u0002", - "\u0002\u0a19\u0a1e\u0005\u00d4k\u0002\u0a1a\u0a1b\u0007\u0006\u0002", - "\u0002\u0a1b\u0a1d\u0005\u00d4k\u0002\u0a1c\u0a1a\u0003\u0002\u0002", - "\u0002\u0a1d\u0a20\u0003\u0002\u0002\u0002\u0a1e\u0a1c\u0003\u0002\u0002", - "\u0002\u0a1e\u0a1f\u0003\u0002\u0002\u0002\u0a1f\u00d3\u0003\u0002\u0002", - "\u0002\u0a20\u0a1e\u0003\u0002\u0002\u0002\u0a21\u0a22\u0005\u00dep", - "\u0002\u0a22\u0a23\u0007\u0018\u0002\u0002\u0a23\u0a24\u0005\u00d6l", - "\u0002\u0a24\u00d5\u0003\u0002\u0002\u0002\u0a25\u0a50\u0005\u00dep", - "\u0002\u0a26\u0a49\u0007\u0003\u0002\u0002\u0a27\u0a28\u0007\u00a4\u0002", - "\u0002\u0a28\u0a29\u0007\u001e\u0002\u0002\u0a29\u0a2e\u0005\u00a4S", - "\u0002\u0a2a\u0a2b\u0007\u0006\u0002\u0002\u0a2b\u0a2d\u0005\u00a4S", - "\u0002\u0a2c\u0a2a\u0003\u0002\u0002\u0002\u0a2d\u0a30\u0003\u0002\u0002", - "\u0002\u0a2e\u0a2c\u0003\u0002\u0002\u0002\u0a2e\u0a2f\u0003\u0002\u0002", - "\u0002\u0a2f\u0a4a\u0003\u0002\u0002\u0002\u0a30\u0a2e\u0003\u0002\u0002", - "\u0002\u0a31\u0a32\t\u0019\u0002\u0002\u0a32\u0a33\u0007\u001e\u0002", - "\u0002\u0a33\u0a38\u0005\u00a4S\u0002\u0a34\u0a35\u0007\u0006\u0002", - "\u0002\u0a35\u0a37\u0005\u00a4S\u0002\u0a36\u0a34\u0003\u0002\u0002", - "\u0002\u0a37\u0a3a\u0003\u0002\u0002\u0002\u0a38\u0a36\u0003\u0002\u0002", - "\u0002\u0a38\u0a39\u0003\u0002\u0002\u0002\u0a39\u0a3c\u0003\u0002\u0002", - "\u0002\u0a3a\u0a38\u0003\u0002\u0002\u0002\u0a3b\u0a31\u0003\u0002\u0002", - "\u0002\u0a3b\u0a3c\u0003\u0002\u0002\u0002\u0a3c\u0a47\u0003\u0002\u0002", - "\u0002\u0a3d\u0a3e\t\u001a\u0002\u0002\u0a3e\u0a3f\u0007\u001e\u0002", - "\u0002\u0a3f\u0a44\u0005L\'\u0002\u0a40\u0a41\u0007\u0006\u0002\u0002", - "\u0a41\u0a43\u0005L\'\u0002\u0a42\u0a40\u0003\u0002\u0002\u0002\u0a43", - "\u0a46\u0003\u0002\u0002\u0002\u0a44\u0a42\u0003\u0002\u0002\u0002\u0a44", - "\u0a45\u0003\u0002\u0002\u0002\u0a45\u0a48\u0003\u0002\u0002\u0002\u0a46", - "\u0a44\u0003\u0002\u0002\u0002\u0a47\u0a3d\u0003\u0002\u0002\u0002\u0a47", - "\u0a48\u0003\u0002\u0002\u0002\u0a48\u0a4a\u0003\u0002\u0002\u0002\u0a49", - "\u0a27\u0003\u0002\u0002\u0002\u0a49\u0a3b\u0003\u0002\u0002\u0002\u0a4a", - "\u0a4c\u0003\u0002\u0002\u0002\u0a4b\u0a4d\u0005\u00d8m\u0002\u0a4c", - "\u0a4b\u0003\u0002\u0002\u0002\u0a4c\u0a4d\u0003\u0002\u0002\u0002\u0a4d", - "\u0a4e\u0003\u0002\u0002\u0002\u0a4e\u0a50\u0007\u0004\u0002\u0002\u0a4f", - "\u0a25\u0003\u0002\u0002\u0002\u0a4f\u0a26\u0003\u0002\u0002\u0002\u0a50", - "\u00d7\u0003\u0002\u0002\u0002\u0a51\u0a52\u0007M\u0002\u0002\u0a52", - "\u0a62\u0005\u00dan\u0002\u0a53\u0a54\u0007N\u0002\u0002\u0a54\u0a62", - "\u0005\u00dan\u0002\u0a55\u0a56\u0007M\u0002\u0002\u0a56\u0a57\u0007", - "-\u0002\u0002\u0a57\u0a58\u0005\u00dan\u0002\u0a58\u0a59\u0007(\u0002", - "\u0002\u0a59\u0a5a\u0005\u00dan\u0002\u0a5a\u0a62\u0003\u0002\u0002", - "\u0002\u0a5b\u0a5c\u0007N\u0002\u0002\u0a5c\u0a5d\u0007-\u0002\u0002", - "\u0a5d\u0a5e\u0005\u00dan\u0002\u0a5e\u0a5f\u0007(\u0002\u0002\u0a5f", - "\u0a60\u0005\u00dan\u0002\u0a60\u0a62\u0003\u0002\u0002\u0002\u0a61", - "\u0a51\u0003\u0002\u0002\u0002\u0a61\u0a53\u0003\u0002\u0002\u0002\u0a61", - "\u0a55\u0003\u0002\u0002\u0002\u0a61\u0a5b\u0003\u0002\u0002\u0002\u0a62", - "\u00d9\u0003\u0002\u0002\u0002\u0a63\u0a64\u0007O\u0002\u0002\u0a64", - "\u0a6b\t\u001b\u0002\u0002\u0a65\u0a66\u0007R\u0002\u0002\u0a66\u0a6b", - "\u0007V\u0002\u0002\u0a67\u0a68\u0005\u00a4S\u0002\u0a68\u0a69\t\u001b", - "\u0002\u0002\u0a69\u0a6b\u0003\u0002\u0002\u0002\u0a6a\u0a63\u0003\u0002", - "\u0002\u0002\u0a6a\u0a65\u0003\u0002\u0002\u0002\u0a6a\u0a67\u0003\u0002", - "\u0002\u0002\u0a6b\u00db\u0003\u0002\u0002\u0002\u0a6c\u0a71\u0005\u00de", - "p\u0002\u0a6d\u0a6e\u0007\u0005\u0002\u0002\u0a6e\u0a70\u0005\u00de", - "p\u0002\u0a6f\u0a6d\u0003\u0002\u0002\u0002\u0a70\u0a73\u0003\u0002", - "\u0002\u0002\u0a71\u0a6f\u0003\u0002\u0002\u0002\u0a71\u0a72\u0003\u0002", - "\u0002\u0002\u0a72\u00dd\u0003\u0002\u0002\u0002\u0a73\u0a71\u0003\u0002", - "\u0002\u0002\u0a74\u0a84\u0005\u00e0q\u0002\u0a75\u0a84\u0007\u00f7", - "\u0002\u0002\u0a76\u0a84\u0007E\u0002\u0002\u0a77\u0a84\u0007A\u0002", - "\u0002\u0a78\u0a84\u0007B\u0002\u0002\u0a79\u0a84\u0007C\u0002\u0002", - "\u0a7a\u0a84\u0007D\u0002\u0002\u0a7b\u0a84\u0007F\u0002\u0002\u0a7c", - "\u0a84\u0007>\u0002\u0002\u0a7d\u0a84\u0007?\u0002\u0002\u0a7e\u0a84", - "\u0007G\u0002\u0002\u0a7f\u0a84\u0007p\u0002\u0002\u0a80\u0a84\u0007", - "s\u0002\u0002\u0a81\u0a84\u0007q\u0002\u0002\u0a82\u0a84\u0007r\u0002", - "\u0002\u0a83\u0a74\u0003\u0002\u0002\u0002\u0a83\u0a75\u0003\u0002\u0002", - "\u0002\u0a83\u0a76\u0003\u0002\u0002\u0002\u0a83\u0a77\u0003\u0002\u0002", - "\u0002\u0a83\u0a78\u0003\u0002\u0002\u0002\u0a83\u0a79\u0003\u0002\u0002", - "\u0002\u0a83\u0a7a\u0003\u0002\u0002\u0002\u0a83\u0a7b\u0003\u0002\u0002", - "\u0002\u0a83\u0a7c\u0003\u0002\u0002\u0002\u0a83\u0a7d\u0003\u0002\u0002", - "\u0002\u0a83\u0a7e\u0003\u0002\u0002\u0002\u0a83\u0a7f\u0003\u0002\u0002", - "\u0002\u0a83\u0a80\u0003\u0002\u0002\u0002\u0a83\u0a81\u0003\u0002\u0002", - "\u0002\u0a83\u0a82\u0003\u0002\u0002\u0002\u0a84\u00df\u0003\u0002\u0002", - "\u0002\u0a85\u0a89\u0007\u010f\u0002\u0002\u0a86\u0a89\u0005\u00e2r", - "\u0002\u0a87\u0a89\u0005\u00e6t\u0002\u0a88\u0a85\u0003\u0002\u0002", - "\u0002\u0a88\u0a86\u0003\u0002\u0002\u0002\u0a88\u0a87\u0003\u0002\u0002", - "\u0002\u0a89\u00e1\u0003\u0002\u0002\u0002\u0a8a\u0a8b\u0007\u0110\u0002", - "\u0002\u0a8b\u00e3\u0003\u0002\u0002\u0002\u0a8c\u0a8e\u0007\u0095\u0002", - "\u0002\u0a8d\u0a8c\u0003\u0002\u0002\u0002\u0a8d\u0a8e\u0003\u0002\u0002", - "\u0002\u0a8e\u0a8f\u0003\u0002\u0002\u0002\u0a8f\u0aa9\u0007\u010c\u0002", - "\u0002\u0a90\u0a92\u0007\u0095\u0002\u0002\u0a91\u0a90\u0003\u0002\u0002", - "\u0002\u0a91\u0a92\u0003\u0002\u0002\u0002\u0a92\u0a93\u0003\u0002\u0002", - "\u0002\u0a93\u0aa9\u0007\u010b\u0002\u0002\u0a94\u0a96\u0007\u0095\u0002", - "\u0002\u0a95\u0a94\u0003\u0002\u0002\u0002\u0a95\u0a96\u0003\u0002\u0002", - "\u0002\u0a96\u0a97\u0003\u0002\u0002\u0002\u0a97\u0aa9\u0007\u0108\u0002", - "\u0002\u0a98\u0a9a\u0007\u0095\u0002\u0002\u0a99\u0a98\u0003\u0002\u0002", - "\u0002\u0a99\u0a9a\u0003\u0002\u0002\u0002\u0a9a\u0a9b\u0003\u0002\u0002", - "\u0002\u0a9b\u0aa9\u0007\u0109\u0002\u0002\u0a9c\u0a9e\u0007\u0095\u0002", - "\u0002\u0a9d\u0a9c\u0003\u0002\u0002\u0002\u0a9d\u0a9e\u0003\u0002\u0002", - "\u0002\u0a9e\u0a9f\u0003\u0002\u0002\u0002\u0a9f\u0aa9\u0007\u010a\u0002", - "\u0002\u0aa0\u0aa2\u0007\u0095\u0002\u0002\u0aa1\u0aa0\u0003\u0002\u0002", - "\u0002\u0aa1\u0aa2\u0003\u0002\u0002\u0002\u0aa2\u0aa3\u0003\u0002\u0002", - "\u0002\u0aa3\u0aa9\u0007\u010d\u0002\u0002\u0aa4\u0aa6\u0007\u0095\u0002", - "\u0002\u0aa5\u0aa4\u0003\u0002\u0002\u0002\u0aa5\u0aa6\u0003\u0002\u0002", - "\u0002\u0aa6\u0aa7\u0003\u0002\u0002\u0002\u0aa7\u0aa9\u0007\u010e\u0002", - "\u0002\u0aa8\u0a8d\u0003\u0002\u0002\u0002\u0aa8\u0a91\u0003\u0002\u0002", - "\u0002\u0aa8\u0a95\u0003\u0002\u0002\u0002\u0aa8\u0a99\u0003\u0002\u0002", - "\u0002\u0aa8\u0a9d\u0003\u0002\u0002\u0002\u0aa8\u0aa1\u0003\u0002\u0002", - "\u0002\u0aa8\u0aa5\u0003\u0002\u0002\u0002\u0aa9\u00e5\u0003\u0002\u0002", - "\u0002\u0aaa\u0aab\t\u001c\u0002\u0002\u0aab\u00e7\u0003\u0002\u0002", - "\u0002\u0168\u00ec\u0105\u010a\u010d\u0112\u011f\u0123\u012a\u0138\u013a", - "\u013e\u0141\u0148\u0159\u015b\u015f\u0162\u0169\u0170\u0174\u017c\u0186", - "\u018c\u0192\u019d\u01bd\u01c5\u01c9\u01ce\u01d4\u01dc\u01e2\u01ef\u01f4", - "\u01fd\u0202\u0212\u0219\u021d\u0225\u022c\u0233\u0242\u0246\u024c\u0252", - "\u0255\u0258\u025e\u0262\u0266\u026b\u026f\u0277\u027a\u0283\u0288\u028e", - "\u0295\u0298\u029e\u02a9\u02ac\u02b0\u02b5\u02ba\u02c1\u02c4\u02c7\u02ce", - "\u02d3\u02d8\u02db\u02e4\u02ec\u02f2\u02f6\u02fa\u02fe\u0300\u0309\u030f", - "\u0314\u0317\u031b\u031e\u0328\u032b\u032f\u0335\u0338\u033b\u0341\u0349", - "\u034e\u0354\u035a\u0365\u036d\u0374\u037c\u037f\u0387\u038b\u0392\u0406", - "\u040e\u0416\u041f\u042b\u042f\u0432\u0438\u0442\u044e\u0453\u0459\u0465", - "\u0467\u046c\u0470\u0475\u047a\u047d\u0482\u0486\u048b\u048d\u0491\u049a", - "\u04a2\u04a9\u04b0\u04b9\u04be\u04cd\u04d4\u04d7\u04de\u04e2\u04e8\u04f0", - "\u04fb\u0506\u050d\u0513\u0519\u0522\u0524\u052d\u0530\u0539\u053c\u0545", - "\u0548\u0551\u0554\u0557\u055c\u055e\u0561\u056d\u0574\u057b\u057e\u0580", - "\u058b\u058f\u0593\u059f\u05a2\u05a6\u05b0\u05b4\u05b6\u05b9\u05bd\u05c0", - "\u05c4\u05ca\u05ce\u05d2\u05d7\u05da\u05dc\u05e1\u05e6\u05e9\u05ed\u05f0", - "\u05f2\u05f7\u05fc\u0609\u060e\u0616\u061c\u0620\u0629\u0638\u063d\u0649", - "\u064e\u0656\u0659\u065d\u066b\u0678\u067d\u0681\u0684\u0689\u0692\u0695", - "\u069a\u06a1\u06a4\u06ac\u06b3\u06ba\u06bd\u06c2\u06c8\u06cc\u06cf\u06d2", - "\u06d8\u06dd\u06e2\u06f4\u06f6\u06f9\u0704\u070d\u0714\u071c\u0724\u0729", - "\u0731\u0739\u073f\u074a\u074d\u0756\u0759\u0761\u0764\u076a\u0781\u0783", - "\u078b\u0798\u07aa\u07b1\u07b6\u07c0\u07c4\u07c8\u07ce\u07dc\u07e8\u07eb", - "\u07f1\u07f5\u07f7\u0800\u080c\u080e\u0815\u081c\u0822\u0828\u082a\u082f", - "\u083c\u0847\u084c\u0852\u0856\u0858\u085f\u086e\u0870\u0878\u087a\u087e", - "\u0886\u088f\u0895\u089d\u08a3\u08a8\u08ad\u08b3\u08c8\u08ca\u08d2\u08d6", - "\u08df\u08e3\u08f5\u08f8\u0900\u0909\u0920\u092b\u0932\u0935\u093a\u094d", - "\u095e\u0968\u096a\u0977\u0979\u0987\u098e\u0991\u0995\u099a\u09ab\u09af", - "\u09b8\u09bc\u09be\u09c5\u09cc\u09d3\u09db\u09e1\u09e5\u09f5\u09fa\u0a02", - "\u0a09\u0a11\u0a1e\u0a2e\u0a38\u0a3b\u0a44\u0a47\u0a49\u0a4c\u0a4f\u0a61", - "\u0a6a\u0a71\u0a83\u0a88\u0a8d\u0a91\u0a95\u0a99\u0a9d\u0aa1\u0aa5\u0aa8"].join(""); - - -var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); - -var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); - -var sharedContextCache = new antlr4.PredictionContextCache(); - -var literalNames = [ null, "'('", "')'", "'.'", "','", "'/*+'", "'*/'", - "'*?'", "'+?'", "'?'", "'??'", "'{'", "'}'", "'->'", - "'['", "']'", "'PRIMARY'", "'KEY'", "':'", "'SELECT'", - "'FROM'", "'ADD'", "'AS'", "'ALL'", "'ANY'", "'DISTINCT'", - "'WHERE'", "'GROUP'", "'BY'", "'GROUPING'", "'SETS'", - "'CUBE'", "'ROLLUP'", "'ORDER'", "'HAVING'", "'LIMIT'", - "'AT'", "'OR'", "'AND'", "'IN'", null, "'NO'", "'EXISTS'", - "'BETWEEN'", "'LIKE'", null, "'IS'", "'NULL'", "'TRUE'", - "'FALSE'", "'NULLS'", "'ASC'", "'DESC'", "'FOR'", "'INTERVAL'", - "'CASE'", "'WHEN'", "'THEN'", "'ELSE'", "'END'", "'JOIN'", - "'CROSS'", "'OUTER'", "'INNER'", "'LEFT'", "'SEMI'", - "'RIGHT'", "'FULL'", "'NATURAL'", "'ON'", "'PIVOT'", - "'LATERAL'", "'WINDOW'", "'OVER'", "'PARTITION'", "'RANGE'", - "'ROWS'", "'UNBOUNDED'", "'PRECEDING'", "'FOLLOWING'", - "'CURRENT'", "'FIRST'", "'AFTER'", "'LAST'", "'ROW'", - "'WITH'", "'VALUES'", "'CREATE'", "'TABLE'", "'DIRECTORY'", - "'VIEW'", "'REPLACE'", "'INSERT'", "'DELETE'", "'INTO'", - "'DESCRIBE'", "'EXPLAIN'", "'FORMAT'", "'LOGICAL'", - "'CODEGEN'", "'COST'", "'CAST'", "'SHOW'", "'TABLES'", - "'COLUMNS'", "'COLUMN'", "'USE'", "'PARTITIONS'", "'FUNCTIONS'", - "'DROP'", "'UNION'", "'EXCEPT'", "'MINUS'", "'INTERSECT'", - "'TO'", "'TABLESAMPLE'", "'STRATIFY'", "'ALTER'", "'RENAME'", - "'ARRAY'", "'MAP'", "'STRUCT'", "'COMMENT'", "'SET'", - "'RESET'", "'DATA'", "'START'", "'TRANSACTION'", "'COMMIT'", - "'ROLLBACK'", "'MACRO'", "'IGNORE'", "'BOTH'", "'LEADING'", - "'TRAILING'", "'IF'", "'POSITION'", "'EXTRACT'", null, - "'<=>'", "'<>'", "'!='", "'<'", null, "'>'", null, - "'+'", "'-'", "'*'", "'/'", "'%'", "'DIV'", "'~'", - "'&'", "'|'", "'||'", "'^'", "'PERCENT'", "'BUCKET'", - "'OUT'", "'OF'", "'SORT'", "'CLUSTER'", "'DISTRIBUTE'", - "'OVERWRITE'", "'TRANSFORM'", "'REDUCE'", "'USING'", - "'SERDE'", "'SERDEPROPERTIES'", "'RECORDREADER'", "'RECORDWRITER'", - "'DELIMITED'", "'FIELDS'", "'TERMINATED'", "'COLLECTION'", - "'ITEMS'", "'KEYS'", "'ESCAPED'", "'LINES'", "'SEPARATED'", - "'FUNCTION'", "'EXTENDED'", "'REFRESH'", "'CLEAR'", - "'CACHE'", "'UNCACHE'", "'LAZY'", "'FORMATTED'", "'GLOBAL'", - null, "'OPTIONS'", "'UNSET'", "'TBLPROPERTIES'", "'DBPROPERTIES'", - "'BUCKETS'", "'SKEWED'", "'STORED'", "'DIRECTORIES'", - "'LOCATION'", "'EXCHANGE'", "'ARCHIVE'", "'UNARCHIVE'", - "'FILEFORMAT'", "'TOUCH'", "'COMPACT'", "'CONCATENATE'", - "'CHANGE'", "'CASCADE'", "'RESTRICT'", "'CLUSTERED'", - "'SORTED'", "'PURGE'", "'INPUTFORMAT'", "'OUTPUTFORMAT'", - null, null, "'DFS'", "'TRUNCATE'", "'ANALYZE'", "'COMPUTE'", - "'LIST'", "'STATISTICS'", "'PARTITIONED'", "'EXTERNAL'", - "'DEFINED'", "'REVOKE'", "'GRANT'", "'LOCK'", "'UNLOCK'", - "'MSCK'", "'REPAIR'", "'RECOVER'", "'EXPORT'", "'IMPORT'", - "'LOAD'", "'ROLE'", "'ROLES'", "'COMPACTIONS'", "'PRINCIPALS'", - "'TRANSACTIONS'", "'INDEX'", "'INDEXES'", "'LOCKS'", - "'OPTION'", "'ANTI'", "'LOCAL'", "'INPATH'", "'WATERMARK'", - "'UNNEST'", "'MATCH_RECOGNIZE'", "'MEASURES'", "'ONE'", - "'PER'", "'MATCH'", "'SKIP'", "'NEXT'", "'PAST'", "'PATTERN'", - "'WITHIN'", "'DEFINE'", null, null, null, null, null, - null, null, null, null, null, null, "'/**/'" ]; - -var symbolicNames = [ null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, - null, "SELECT", "FROM", "ADD", "AS", "ALL", "ANY", - "DISTINCT", "WHERE", "GROUP", "BY", "GROUPING", "SETS", - "CUBE", "ROLLUP", "ORDER", "HAVING", "LIMIT", "AT", - "OR", "AND", "IN", "NOT", "NO", "EXISTS", "BETWEEN", - "LIKE", "RLIKE", "IS", "NULL", "TRUE", "FALSE", "NULLS", - "ASC", "DESC", "FOR", "INTERVAL", "CASE", "WHEN", - "THEN", "ELSE", "END", "JOIN", "CROSS", "OUTER", "INNER", - "LEFT", "SEMI", "RIGHT", "FULL", "NATURAL", "ON", - "PIVOT", "LATERAL", "WINDOW", "OVER", "PARTITION", - "RANGE", "ROWS", "UNBOUNDED", "PRECEDING", "FOLLOWING", - "CURRENT", "FIRST", "AFTER", "LAST", "ROW", "WITH", - "VALUES", "CREATE", "TABLE", "DIRECTORY", "VIEW", - "REPLACE", "INSERT", "DELETE", "INTO", "DESCRIBE", - "EXPLAIN", "FORMAT", "LOGICAL", "CODEGEN", "COST", - "CAST", "SHOW", "TABLES", "COLUMNS", "COLUMN", "USE", - "PARTITIONS", "FUNCTIONS", "DROP", "UNION", "EXCEPT", - "SETMINUS", "INTERSECT", "TO", "TABLESAMPLE", "STRATIFY", - "ALTER", "RENAME", "ARRAY", "MAP", "STRUCT", "COMMENT", - "SET", "RESET", "DATA", "START", "TRANSACTION", "COMMIT", - "ROLLBACK", "MACRO", "IGNORE", "BOTH", "LEADING", - "TRAILING", "IF", "POSITION", "EXTRACT", "EQ", "NSEQ", - "NEQ", "NEQJ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS", - "ASTERISK", "SLASH", "PERCENT", "DIV", "TILDE", "AMPERSAND", - "PIPE", "CONCAT_PIPE", "HAT", "PERCENTLIT", "BUCKET", - "OUT", "OF", "SORT", "CLUSTER", "DISTRIBUTE", "OVERWRITE", - "TRANSFORM", "REDUCE", "USING", "SERDE", "SERDEPROPERTIES", - "RECORDREADER", "RECORDWRITER", "DELIMITED", "FIELDS", - "TERMINATED", "COLLECTION", "ITEMS", "KEYS", "ESCAPED", - "LINES", "SEPARATED", "FUNCTION", "EXTENDED", "REFRESH", - "CLEAR", "CACHE", "UNCACHE", "LAZY", "FORMATTED", - "GLOBAL", "TEMPORARY", "OPTIONS", "UNSET", "TBLPROPERTIES", - "DBPROPERTIES", "BUCKETS", "SKEWED", "STORED", "DIRECTORIES", - "LOCATION", "EXCHANGE", "ARCHIVE", "UNARCHIVE", "FILEFORMAT", - "TOUCH", "COMPACT", "CONCATENATE", "CHANGE", "CASCADE", - "RESTRICT", "CLUSTERED", "SORTED", "PURGE", "INPUTFORMAT", - "OUTPUTFORMAT", "DATABASE", "DATABASES", "DFS", "TRUNCATE", - "ANALYZE", "COMPUTE", "LIST", "STATISTICS", "PARTITIONED", - "EXTERNAL", "DEFINED", "REVOKE", "GRANT", "LOCK", - "UNLOCK", "MSCK", "REPAIR", "RECOVER", "EXPORT", "IMPORT", - "LOAD", "ROLE", "ROLES", "COMPACTIONS", "PRINCIPALS", - "TRANSACTIONS", "INDEX", "INDEXES", "LOCKS", "OPTION", - "ANTI", "LOCAL", "INPATH", "WATERMARK", "UNNEST", - "MATCH_RECOGNIZE", "MEASURES", "ONE", "PER", "MATCH", - "SKIP1", "NEXT", "PAST", "PATTERN", "WITHIN", "DEFINE", - "STRING", "BIGINT_LITERAL", "SMALLINT_LITERAL", "TINYINT_LITERAL", - "INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_LITERAL", - "BIGDECIMAL_LITERAL", "IDENTIFIER", "BACKQUOTED_IDENTIFIER", - "SIMPLE_COMMENT", "BRACKETED_EMPTY_COMMENT", "BRACKETED_COMMENT", - "WS", "UNRECOGNIZED" ]; - -var ruleNames = [ "singleStatement", "singleExpression", "singleTableIdentifier", - "singleFunctionIdentifier", "singleDataType", "singleTableSchema", - "statement", "unsupportedHiveNativeCommands", "createTableHeader", - "bucketSpec", "skewSpec", "locationSpec", "query", "insertInto", - "partitionSpecLocation", "partitionSpec", "partitionVal", - "describeFuncName", "describeColName", "ctes", "namedQuery", - "tableProvider", "tablePropertyList", "tableProperty", - "tablePropertyKey", "tablePropertyValue", "constantList", - "nestedConstantList", "createFileFormat", "fileFormat", - "storageHandler", "resource", "queryNoWith", "queryOrganization", - "multiInsertQueryBody", "queryTerm", "queryPrimary", - "sortItem", "querySpecification", "hint", "hintStatement", - "fromClause", "aggregation", "groupingSet", "pivotClause", - "pivotColumn", "pivotValue", "lateralView", "setQuantifier", - "relation", "joinRelation", "joinType", "joinCriteria", - "sample", "sampleMethod", "identifierList", "identifierSeq", - "orderedIdentifierList", "orderedIdentifier", "identifierCommentList", - "identifierComment", "relationPrimary", "matchRecognize", - "measureColumn", "condition1", "variable", "pattern1", - "patternTerm", "patternFactor", "patternQuantifier", - "minRepeat", "maxRepeat", "repeat", "inlineTable", "functionTable", - "tableAlias", "rowFormat", "tableIdentifier", "functionIdentifier", - "namedExpression", "namedExpressionSeq", "expression", - "booleanExpression", "predicate", "valueExpression", - "primaryExpression", "constant", "comparisonOperator", - "arithmeticOperator", "predicateOperator", "booleanValue", - "interval", "intervalField", "intervalValue", "colPosition", - "dataType", "colTypeList", "colType", "dtColTypeList", - "dtColType", "dtColIdentifier", "complexColTypeList", - "complexColType", "whenClause", "windows", "namedWindow", - "windowSpec", "windowFrame", "frameBound", "qualifiedName", - "identifier", "strictIdentifier", "quotedIdentifier", - "number", "nonReserved" ]; - -function sqlParser (input) { - antlr4.Parser.call(this, input); - this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); - this.ruleNames = ruleNames; - this.literalNames = literalNames; - this.symbolicNames = symbolicNames; - return this; -} - -sqlParser.prototype = Object.create(antlr4.Parser.prototype); -sqlParser.prototype.constructor = sqlParser; - -Object.defineProperty(sqlParser.prototype, "atn", { - get : function() { - return atn; - } -}); - -sqlParser.EOF = antlr4.Token.EOF; -sqlParser.T__0 = 1; -sqlParser.T__1 = 2; -sqlParser.T__2 = 3; -sqlParser.T__3 = 4; -sqlParser.T__4 = 5; -sqlParser.T__5 = 6; -sqlParser.T__6 = 7; -sqlParser.T__7 = 8; -sqlParser.T__8 = 9; -sqlParser.T__9 = 10; -sqlParser.T__10 = 11; -sqlParser.T__11 = 12; -sqlParser.T__12 = 13; -sqlParser.T__13 = 14; -sqlParser.T__14 = 15; -sqlParser.T__15 = 16; -sqlParser.T__16 = 17; -sqlParser.T__17 = 18; -sqlParser.SELECT = 19; -sqlParser.FROM = 20; -sqlParser.ADD = 21; -sqlParser.AS = 22; -sqlParser.ALL = 23; -sqlParser.ANY = 24; -sqlParser.DISTINCT = 25; -sqlParser.WHERE = 26; -sqlParser.GROUP = 27; -sqlParser.BY = 28; -sqlParser.GROUPING = 29; -sqlParser.SETS = 30; -sqlParser.CUBE = 31; -sqlParser.ROLLUP = 32; -sqlParser.ORDER = 33; -sqlParser.HAVING = 34; -sqlParser.LIMIT = 35; -sqlParser.AT = 36; -sqlParser.OR = 37; -sqlParser.AND = 38; -sqlParser.IN = 39; -sqlParser.NOT = 40; -sqlParser.NO = 41; -sqlParser.EXISTS = 42; -sqlParser.BETWEEN = 43; -sqlParser.LIKE = 44; -sqlParser.RLIKE = 45; -sqlParser.IS = 46; -sqlParser.NULL = 47; -sqlParser.TRUE = 48; -sqlParser.FALSE = 49; -sqlParser.NULLS = 50; -sqlParser.ASC = 51; -sqlParser.DESC = 52; -sqlParser.FOR = 53; -sqlParser.INTERVAL = 54; -sqlParser.CASE = 55; -sqlParser.WHEN = 56; -sqlParser.THEN = 57; -sqlParser.ELSE = 58; -sqlParser.END = 59; -sqlParser.JOIN = 60; -sqlParser.CROSS = 61; -sqlParser.OUTER = 62; -sqlParser.INNER = 63; -sqlParser.LEFT = 64; -sqlParser.SEMI = 65; -sqlParser.RIGHT = 66; -sqlParser.FULL = 67; -sqlParser.NATURAL = 68; -sqlParser.ON = 69; -sqlParser.PIVOT = 70; -sqlParser.LATERAL = 71; -sqlParser.WINDOW = 72; -sqlParser.OVER = 73; -sqlParser.PARTITION = 74; -sqlParser.RANGE = 75; -sqlParser.ROWS = 76; -sqlParser.UNBOUNDED = 77; -sqlParser.PRECEDING = 78; -sqlParser.FOLLOWING = 79; -sqlParser.CURRENT = 80; -sqlParser.FIRST = 81; -sqlParser.AFTER = 82; -sqlParser.LAST = 83; -sqlParser.ROW = 84; -sqlParser.WITH = 85; -sqlParser.VALUES = 86; -sqlParser.CREATE = 87; -sqlParser.TABLE = 88; -sqlParser.DIRECTORY = 89; -sqlParser.VIEW = 90; -sqlParser.REPLACE = 91; -sqlParser.INSERT = 92; -sqlParser.DELETE = 93; -sqlParser.INTO = 94; -sqlParser.DESCRIBE = 95; -sqlParser.EXPLAIN = 96; -sqlParser.FORMAT = 97; -sqlParser.LOGICAL = 98; -sqlParser.CODEGEN = 99; -sqlParser.COST = 100; -sqlParser.CAST = 101; -sqlParser.SHOW = 102; -sqlParser.TABLES = 103; -sqlParser.COLUMNS = 104; -sqlParser.COLUMN = 105; -sqlParser.USE = 106; -sqlParser.PARTITIONS = 107; -sqlParser.FUNCTIONS = 108; -sqlParser.DROP = 109; -sqlParser.UNION = 110; -sqlParser.EXCEPT = 111; -sqlParser.SETMINUS = 112; -sqlParser.INTERSECT = 113; -sqlParser.TO = 114; -sqlParser.TABLESAMPLE = 115; -sqlParser.STRATIFY = 116; -sqlParser.ALTER = 117; -sqlParser.RENAME = 118; -sqlParser.ARRAY = 119; -sqlParser.MAP = 120; -sqlParser.STRUCT = 121; -sqlParser.COMMENT = 122; -sqlParser.SET = 123; -sqlParser.RESET = 124; -sqlParser.DATA = 125; -sqlParser.START = 126; -sqlParser.TRANSACTION = 127; -sqlParser.COMMIT = 128; -sqlParser.ROLLBACK = 129; -sqlParser.MACRO = 130; -sqlParser.IGNORE = 131; -sqlParser.BOTH = 132; -sqlParser.LEADING = 133; -sqlParser.TRAILING = 134; -sqlParser.IF = 135; -sqlParser.POSITION = 136; -sqlParser.EXTRACT = 137; -sqlParser.EQ = 138; -sqlParser.NSEQ = 139; -sqlParser.NEQ = 140; -sqlParser.NEQJ = 141; -sqlParser.LT = 142; -sqlParser.LTE = 143; -sqlParser.GT = 144; -sqlParser.GTE = 145; -sqlParser.PLUS = 146; -sqlParser.MINUS = 147; -sqlParser.ASTERISK = 148; -sqlParser.SLASH = 149; -sqlParser.PERCENT = 150; -sqlParser.DIV = 151; -sqlParser.TILDE = 152; -sqlParser.AMPERSAND = 153; -sqlParser.PIPE = 154; -sqlParser.CONCAT_PIPE = 155; -sqlParser.HAT = 156; -sqlParser.PERCENTLIT = 157; -sqlParser.BUCKET = 158; -sqlParser.OUT = 159; -sqlParser.OF = 160; -sqlParser.SORT = 161; -sqlParser.CLUSTER = 162; -sqlParser.DISTRIBUTE = 163; -sqlParser.OVERWRITE = 164; -sqlParser.TRANSFORM = 165; -sqlParser.REDUCE = 166; -sqlParser.USING = 167; -sqlParser.SERDE = 168; -sqlParser.SERDEPROPERTIES = 169; -sqlParser.RECORDREADER = 170; -sqlParser.RECORDWRITER = 171; -sqlParser.DELIMITED = 172; -sqlParser.FIELDS = 173; -sqlParser.TERMINATED = 174; -sqlParser.COLLECTION = 175; -sqlParser.ITEMS = 176; -sqlParser.KEYS = 177; -sqlParser.ESCAPED = 178; -sqlParser.LINES = 179; -sqlParser.SEPARATED = 180; -sqlParser.FUNCTION = 181; -sqlParser.EXTENDED = 182; -sqlParser.REFRESH = 183; -sqlParser.CLEAR = 184; -sqlParser.CACHE = 185; -sqlParser.UNCACHE = 186; -sqlParser.LAZY = 187; -sqlParser.FORMATTED = 188; -sqlParser.GLOBAL = 189; -sqlParser.TEMPORARY = 190; -sqlParser.OPTIONS = 191; -sqlParser.UNSET = 192; -sqlParser.TBLPROPERTIES = 193; -sqlParser.DBPROPERTIES = 194; -sqlParser.BUCKETS = 195; -sqlParser.SKEWED = 196; -sqlParser.STORED = 197; -sqlParser.DIRECTORIES = 198; -sqlParser.LOCATION = 199; -sqlParser.EXCHANGE = 200; -sqlParser.ARCHIVE = 201; -sqlParser.UNARCHIVE = 202; -sqlParser.FILEFORMAT = 203; -sqlParser.TOUCH = 204; -sqlParser.COMPACT = 205; -sqlParser.CONCATENATE = 206; -sqlParser.CHANGE = 207; -sqlParser.CASCADE = 208; -sqlParser.RESTRICT = 209; -sqlParser.CLUSTERED = 210; -sqlParser.SORTED = 211; -sqlParser.PURGE = 212; -sqlParser.INPUTFORMAT = 213; -sqlParser.OUTPUTFORMAT = 214; -sqlParser.DATABASE = 215; -sqlParser.DATABASES = 216; -sqlParser.DFS = 217; -sqlParser.TRUNCATE = 218; -sqlParser.ANALYZE = 219; -sqlParser.COMPUTE = 220; -sqlParser.LIST = 221; -sqlParser.STATISTICS = 222; -sqlParser.PARTITIONED = 223; -sqlParser.EXTERNAL = 224; -sqlParser.DEFINED = 225; -sqlParser.REVOKE = 226; -sqlParser.GRANT = 227; -sqlParser.LOCK = 228; -sqlParser.UNLOCK = 229; -sqlParser.MSCK = 230; -sqlParser.REPAIR = 231; -sqlParser.RECOVER = 232; -sqlParser.EXPORT = 233; -sqlParser.IMPORT = 234; -sqlParser.LOAD = 235; -sqlParser.ROLE = 236; -sqlParser.ROLES = 237; -sqlParser.COMPACTIONS = 238; -sqlParser.PRINCIPALS = 239; -sqlParser.TRANSACTIONS = 240; -sqlParser.INDEX = 241; -sqlParser.INDEXES = 242; -sqlParser.LOCKS = 243; -sqlParser.OPTION = 244; -sqlParser.ANTI = 245; -sqlParser.LOCAL = 246; -sqlParser.INPATH = 247; -sqlParser.WATERMARK = 248; -sqlParser.UNNEST = 249; -sqlParser.MATCH_RECOGNIZE = 250; -sqlParser.MEASURES = 251; -sqlParser.ONE = 252; -sqlParser.PER = 253; -sqlParser.MATCH = 254; -sqlParser.SKIP1 = 255; -sqlParser.NEXT = 256; -sqlParser.PAST = 257; -sqlParser.PATTERN = 258; -sqlParser.WITHIN = 259; -sqlParser.DEFINE = 260; -sqlParser.STRING = 261; -sqlParser.BIGINT_LITERAL = 262; -sqlParser.SMALLINT_LITERAL = 263; -sqlParser.TINYINT_LITERAL = 264; -sqlParser.INTEGER_VALUE = 265; -sqlParser.DECIMAL_VALUE = 266; -sqlParser.DOUBLE_LITERAL = 267; -sqlParser.BIGDECIMAL_LITERAL = 268; -sqlParser.IDENTIFIER = 269; -sqlParser.BACKQUOTED_IDENTIFIER = 270; -sqlParser.SIMPLE_COMMENT = 271; -sqlParser.BRACKETED_EMPTY_COMMENT = 272; -sqlParser.BRACKETED_COMMENT = 273; -sqlParser.WS = 274; -sqlParser.UNRECOGNIZED = 275; - -sqlParser.RULE_singleStatement = 0; -sqlParser.RULE_singleExpression = 1; -sqlParser.RULE_singleTableIdentifier = 2; -sqlParser.RULE_singleFunctionIdentifier = 3; -sqlParser.RULE_singleDataType = 4; -sqlParser.RULE_singleTableSchema = 5; -sqlParser.RULE_statement = 6; -sqlParser.RULE_unsupportedHiveNativeCommands = 7; -sqlParser.RULE_createTableHeader = 8; -sqlParser.RULE_bucketSpec = 9; -sqlParser.RULE_skewSpec = 10; -sqlParser.RULE_locationSpec = 11; -sqlParser.RULE_query = 12; -sqlParser.RULE_insertInto = 13; -sqlParser.RULE_partitionSpecLocation = 14; -sqlParser.RULE_partitionSpec = 15; -sqlParser.RULE_partitionVal = 16; -sqlParser.RULE_describeFuncName = 17; -sqlParser.RULE_describeColName = 18; -sqlParser.RULE_ctes = 19; -sqlParser.RULE_namedQuery = 20; -sqlParser.RULE_tableProvider = 21; -sqlParser.RULE_tablePropertyList = 22; -sqlParser.RULE_tableProperty = 23; -sqlParser.RULE_tablePropertyKey = 24; -sqlParser.RULE_tablePropertyValue = 25; -sqlParser.RULE_constantList = 26; -sqlParser.RULE_nestedConstantList = 27; -sqlParser.RULE_createFileFormat = 28; -sqlParser.RULE_fileFormat = 29; -sqlParser.RULE_storageHandler = 30; -sqlParser.RULE_resource = 31; -sqlParser.RULE_queryNoWith = 32; -sqlParser.RULE_queryOrganization = 33; -sqlParser.RULE_multiInsertQueryBody = 34; -sqlParser.RULE_queryTerm = 35; -sqlParser.RULE_queryPrimary = 36; -sqlParser.RULE_sortItem = 37; -sqlParser.RULE_querySpecification = 38; -sqlParser.RULE_hint = 39; -sqlParser.RULE_hintStatement = 40; -sqlParser.RULE_fromClause = 41; -sqlParser.RULE_aggregation = 42; -sqlParser.RULE_groupingSet = 43; -sqlParser.RULE_pivotClause = 44; -sqlParser.RULE_pivotColumn = 45; -sqlParser.RULE_pivotValue = 46; -sqlParser.RULE_lateralView = 47; -sqlParser.RULE_setQuantifier = 48; -sqlParser.RULE_relation = 49; -sqlParser.RULE_joinRelation = 50; -sqlParser.RULE_joinType = 51; -sqlParser.RULE_joinCriteria = 52; -sqlParser.RULE_sample = 53; -sqlParser.RULE_sampleMethod = 54; -sqlParser.RULE_identifierList = 55; -sqlParser.RULE_identifierSeq = 56; -sqlParser.RULE_orderedIdentifierList = 57; -sqlParser.RULE_orderedIdentifier = 58; -sqlParser.RULE_identifierCommentList = 59; -sqlParser.RULE_identifierComment = 60; -sqlParser.RULE_relationPrimary = 61; -sqlParser.RULE_matchRecognize = 62; -sqlParser.RULE_measureColumn = 63; -sqlParser.RULE_condition1 = 64; -sqlParser.RULE_variable = 65; -sqlParser.RULE_pattern1 = 66; -sqlParser.RULE_patternTerm = 67; -sqlParser.RULE_patternFactor = 68; -sqlParser.RULE_patternQuantifier = 69; -sqlParser.RULE_minRepeat = 70; -sqlParser.RULE_maxRepeat = 71; -sqlParser.RULE_repeat = 72; -sqlParser.RULE_inlineTable = 73; -sqlParser.RULE_functionTable = 74; -sqlParser.RULE_tableAlias = 75; -sqlParser.RULE_rowFormat = 76; -sqlParser.RULE_tableIdentifier = 77; -sqlParser.RULE_functionIdentifier = 78; -sqlParser.RULE_namedExpression = 79; -sqlParser.RULE_namedExpressionSeq = 80; -sqlParser.RULE_expression = 81; -sqlParser.RULE_booleanExpression = 82; -sqlParser.RULE_predicate = 83; -sqlParser.RULE_valueExpression = 84; -sqlParser.RULE_primaryExpression = 85; -sqlParser.RULE_constant = 86; -sqlParser.RULE_comparisonOperator = 87; -sqlParser.RULE_arithmeticOperator = 88; -sqlParser.RULE_predicateOperator = 89; -sqlParser.RULE_booleanValue = 90; -sqlParser.RULE_interval = 91; -sqlParser.RULE_intervalField = 92; -sqlParser.RULE_intervalValue = 93; -sqlParser.RULE_colPosition = 94; -sqlParser.RULE_dataType = 95; -sqlParser.RULE_colTypeList = 96; -sqlParser.RULE_colType = 97; -sqlParser.RULE_dtColTypeList = 98; -sqlParser.RULE_dtColType = 99; -sqlParser.RULE_dtColIdentifier = 100; -sqlParser.RULE_complexColTypeList = 101; -sqlParser.RULE_complexColType = 102; -sqlParser.RULE_whenClause = 103; -sqlParser.RULE_windows = 104; -sqlParser.RULE_namedWindow = 105; -sqlParser.RULE_windowSpec = 106; -sqlParser.RULE_windowFrame = 107; -sqlParser.RULE_frameBound = 108; -sqlParser.RULE_qualifiedName = 109; -sqlParser.RULE_identifier = 110; -sqlParser.RULE_strictIdentifier = 111; -sqlParser.RULE_quotedIdentifier = 112; -sqlParser.RULE_number = 113; -sqlParser.RULE_nonReserved = 114; - -function SingleStatementContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_singleStatement; - return this; -} - -SingleStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SingleStatementContext.prototype.constructor = SingleStatementContext; - -SingleStatementContext.prototype.statement = function() { - return this.getTypedRuleContext(StatementContext,0); -}; - -SingleStatementContext.prototype.EOF = function() { - return this.getToken(sqlParser.EOF, 0); -}; - -SingleStatementContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSingleStatement(this); - } -}; - -SingleStatementContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSingleStatement(this); - } -}; - -SingleStatementContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSingleStatement(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SingleStatementContext = SingleStatementContext; - -sqlParser.prototype.singleStatement = function() { - - var localctx = new SingleStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 0, sqlParser.RULE_singleStatement); - try { - this.state = 234; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.T__0: - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.DESC: - case sqlParser.WITH: - case sqlParser.VALUES: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.SHOW: - case sqlParser.USE: - case sqlParser.DROP: - case sqlParser.ALTER: - case sqlParser.MAP: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.START: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.REDUCE: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.LIST: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - this.enterOuterAlt(localctx, 1); - this.state = 230; - this.statement(); - this.state = 231; - this.match(sqlParser.EOF); - break; - case sqlParser.EOF: - this.enterOuterAlt(localctx, 2); - this.state = 233; - this.match(sqlParser.EOF); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SingleExpressionContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_singleExpression; - return this; -} - -SingleExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SingleExpressionContext.prototype.constructor = SingleExpressionContext; - -SingleExpressionContext.prototype.namedExpression = function() { - return this.getTypedRuleContext(NamedExpressionContext,0); -}; - -SingleExpressionContext.prototype.EOF = function() { - return this.getToken(sqlParser.EOF, 0); -}; - -SingleExpressionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSingleExpression(this); - } -}; - -SingleExpressionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSingleExpression(this); - } -}; - -SingleExpressionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSingleExpression(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SingleExpressionContext = SingleExpressionContext; - -sqlParser.prototype.singleExpression = function() { - - var localctx = new SingleExpressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 2, sqlParser.RULE_singleExpression); - try { - this.enterOuterAlt(localctx, 1); - this.state = 236; - this.namedExpression(); - this.state = 237; - this.match(sqlParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SingleTableIdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_singleTableIdentifier; - return this; -} - -SingleTableIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SingleTableIdentifierContext.prototype.constructor = SingleTableIdentifierContext; - -SingleTableIdentifierContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -SingleTableIdentifierContext.prototype.EOF = function() { - return this.getToken(sqlParser.EOF, 0); -}; - -SingleTableIdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSingleTableIdentifier(this); - } -}; - -SingleTableIdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSingleTableIdentifier(this); - } -}; - -SingleTableIdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSingleTableIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SingleTableIdentifierContext = SingleTableIdentifierContext; - -sqlParser.prototype.singleTableIdentifier = function() { - - var localctx = new SingleTableIdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 4, sqlParser.RULE_singleTableIdentifier); - try { - this.enterOuterAlt(localctx, 1); - this.state = 239; - this.tableIdentifier(); - this.state = 240; - this.match(sqlParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SingleFunctionIdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_singleFunctionIdentifier; - return this; -} - -SingleFunctionIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SingleFunctionIdentifierContext.prototype.constructor = SingleFunctionIdentifierContext; - -SingleFunctionIdentifierContext.prototype.functionIdentifier = function() { - return this.getTypedRuleContext(FunctionIdentifierContext,0); -}; - -SingleFunctionIdentifierContext.prototype.EOF = function() { - return this.getToken(sqlParser.EOF, 0); -}; - -SingleFunctionIdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSingleFunctionIdentifier(this); - } -}; - -SingleFunctionIdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSingleFunctionIdentifier(this); - } -}; - -SingleFunctionIdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSingleFunctionIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SingleFunctionIdentifierContext = SingleFunctionIdentifierContext; - -sqlParser.prototype.singleFunctionIdentifier = function() { - - var localctx = new SingleFunctionIdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 6, sqlParser.RULE_singleFunctionIdentifier); - try { - this.enterOuterAlt(localctx, 1); - this.state = 242; - this.functionIdentifier(); - this.state = 243; - this.match(sqlParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SingleDataTypeContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_singleDataType; - return this; -} - -SingleDataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SingleDataTypeContext.prototype.constructor = SingleDataTypeContext; - -SingleDataTypeContext.prototype.dataType = function() { - return this.getTypedRuleContext(DataTypeContext,0); -}; - -SingleDataTypeContext.prototype.EOF = function() { - return this.getToken(sqlParser.EOF, 0); -}; - -SingleDataTypeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSingleDataType(this); - } -}; - -SingleDataTypeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSingleDataType(this); - } -}; - -SingleDataTypeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSingleDataType(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SingleDataTypeContext = SingleDataTypeContext; - -sqlParser.prototype.singleDataType = function() { - - var localctx = new SingleDataTypeContext(this, this._ctx, this.state); - this.enterRule(localctx, 8, sqlParser.RULE_singleDataType); - try { - this.enterOuterAlt(localctx, 1); - this.state = 245; - this.dataType(); - this.state = 246; - this.match(sqlParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SingleTableSchemaContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_singleTableSchema; - return this; -} - -SingleTableSchemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SingleTableSchemaContext.prototype.constructor = SingleTableSchemaContext; - -SingleTableSchemaContext.prototype.colTypeList = function() { - return this.getTypedRuleContext(ColTypeListContext,0); -}; - -SingleTableSchemaContext.prototype.EOF = function() { - return this.getToken(sqlParser.EOF, 0); -}; - -SingleTableSchemaContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSingleTableSchema(this); - } -}; - -SingleTableSchemaContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSingleTableSchema(this); - } -}; - -SingleTableSchemaContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSingleTableSchema(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SingleTableSchemaContext = SingleTableSchemaContext; - -sqlParser.prototype.singleTableSchema = function() { - - var localctx = new SingleTableSchemaContext(this, this._ctx, this.state); - this.enterRule(localctx, 10, sqlParser.RULE_singleTableSchema); - try { - this.enterOuterAlt(localctx, 1); - this.state = 248; - this.colTypeList(); - this.state = 249; - this.match(sqlParser.EOF); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function StatementContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_statement; - return this; -} - -StatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -StatementContext.prototype.constructor = StatementContext; - - - -StatementContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function ExplainContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ExplainContext.prototype = Object.create(StatementContext.prototype); -ExplainContext.prototype.constructor = ExplainContext; - -sqlParser.ExplainContext = ExplainContext; - -ExplainContext.prototype.EXPLAIN = function() { - return this.getToken(sqlParser.EXPLAIN, 0); -}; - -ExplainContext.prototype.statement = function() { - return this.getTypedRuleContext(StatementContext,0); -}; - -ExplainContext.prototype.LOGICAL = function() { - return this.getToken(sqlParser.LOGICAL, 0); -}; - -ExplainContext.prototype.FORMATTED = function() { - return this.getToken(sqlParser.FORMATTED, 0); -}; - -ExplainContext.prototype.EXTENDED = function() { - return this.getToken(sqlParser.EXTENDED, 0); -}; - -ExplainContext.prototype.CODEGEN = function() { - return this.getToken(sqlParser.CODEGEN, 0); -}; - -ExplainContext.prototype.COST = function() { - return this.getToken(sqlParser.COST, 0); -}; -ExplainContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterExplain(this); - } -}; - -ExplainContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitExplain(this); - } -}; - -ExplainContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitExplain(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DropDatabaseContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DropDatabaseContext.prototype = Object.create(StatementContext.prototype); -DropDatabaseContext.prototype.constructor = DropDatabaseContext; - -sqlParser.DropDatabaseContext = DropDatabaseContext; - -DropDatabaseContext.prototype.DROP = function() { - return this.getToken(sqlParser.DROP, 0); -}; - -DropDatabaseContext.prototype.DATABASE = function() { - return this.getToken(sqlParser.DATABASE, 0); -}; - -DropDatabaseContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -DropDatabaseContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -DropDatabaseContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -DropDatabaseContext.prototype.RESTRICT = function() { - return this.getToken(sqlParser.RESTRICT, 0); -}; - -DropDatabaseContext.prototype.CASCADE = function() { - return this.getToken(sqlParser.CASCADE, 0); -}; -DropDatabaseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDropDatabase(this); - } -}; - -DropDatabaseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDropDatabase(this); - } -}; - -DropDatabaseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDropDatabase(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ResetConfigurationContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ResetConfigurationContext.prototype = Object.create(StatementContext.prototype); -ResetConfigurationContext.prototype.constructor = ResetConfigurationContext; - -sqlParser.ResetConfigurationContext = ResetConfigurationContext; - -ResetConfigurationContext.prototype.RESET = function() { - return this.getToken(sqlParser.RESET, 0); -}; -ResetConfigurationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterResetConfiguration(this); - } -}; - -ResetConfigurationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitResetConfiguration(this); - } -}; - -ResetConfigurationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitResetConfiguration(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DescribeDatabaseContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DescribeDatabaseContext.prototype = Object.create(StatementContext.prototype); -DescribeDatabaseContext.prototype.constructor = DescribeDatabaseContext; - -sqlParser.DescribeDatabaseContext = DescribeDatabaseContext; - -DescribeDatabaseContext.prototype.DATABASE = function() { - return this.getToken(sqlParser.DATABASE, 0); -}; - -DescribeDatabaseContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -DescribeDatabaseContext.prototype.DESC = function() { - return this.getToken(sqlParser.DESC, 0); -}; - -DescribeDatabaseContext.prototype.DESCRIBE = function() { - return this.getToken(sqlParser.DESCRIBE, 0); -}; - -DescribeDatabaseContext.prototype.EXTENDED = function() { - return this.getToken(sqlParser.EXTENDED, 0); -}; -DescribeDatabaseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDescribeDatabase(this); - } -}; - -DescribeDatabaseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDescribeDatabase(this); - } -}; - -DescribeDatabaseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDescribeDatabase(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function AlterViewQueryContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -AlterViewQueryContext.prototype = Object.create(StatementContext.prototype); -AlterViewQueryContext.prototype.constructor = AlterViewQueryContext; - -sqlParser.AlterViewQueryContext = AlterViewQueryContext; - -AlterViewQueryContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -AlterViewQueryContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; - -AlterViewQueryContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -AlterViewQueryContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; - -AlterViewQueryContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; -AlterViewQueryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterAlterViewQuery(this); - } -}; - -AlterViewQueryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitAlterViewQuery(this); - } -}; - -AlterViewQueryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitAlterViewQuery(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function UseContext(parser, ctx) { - StatementContext.call(this, parser); - this.db = null; // IdentifierContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -UseContext.prototype = Object.create(StatementContext.prototype); -UseContext.prototype.constructor = UseContext; - -sqlParser.UseContext = UseContext; - -UseContext.prototype.USE = function() { - return this.getToken(sqlParser.USE, 0); -}; - -UseContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; -UseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterUse(this); - } -}; - -UseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitUse(this); - } -}; - -UseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitUse(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CreateTempViewUsingContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CreateTempViewUsingContext.prototype = Object.create(StatementContext.prototype); -CreateTempViewUsingContext.prototype.constructor = CreateTempViewUsingContext; - -sqlParser.CreateTempViewUsingContext = CreateTempViewUsingContext; - -CreateTempViewUsingContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -CreateTempViewUsingContext.prototype.TEMPORARY = function() { - return this.getToken(sqlParser.TEMPORARY, 0); -}; - -CreateTempViewUsingContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; - -CreateTempViewUsingContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -CreateTempViewUsingContext.prototype.tableProvider = function() { - return this.getTypedRuleContext(TableProviderContext,0); -}; - -CreateTempViewUsingContext.prototype.OR = function() { - return this.getToken(sqlParser.OR, 0); -}; - -CreateTempViewUsingContext.prototype.REPLACE = function() { - return this.getToken(sqlParser.REPLACE, 0); -}; - -CreateTempViewUsingContext.prototype.GLOBAL = function() { - return this.getToken(sqlParser.GLOBAL, 0); -}; - -CreateTempViewUsingContext.prototype.colTypeList = function() { - return this.getTypedRuleContext(ColTypeListContext,0); -}; - -CreateTempViewUsingContext.prototype.OPTIONS = function() { - return this.getToken(sqlParser.OPTIONS, 0); -}; - -CreateTempViewUsingContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; -CreateTempViewUsingContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateTempViewUsing(this); - } -}; - -CreateTempViewUsingContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateTempViewUsing(this); - } -}; - -CreateTempViewUsingContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateTempViewUsing(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function RenameTableContext(parser, ctx) { - StatementContext.call(this, parser); - this.from = null; // TableIdentifierContext; - this.to = null; // TableIdentifierContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RenameTableContext.prototype = Object.create(StatementContext.prototype); -RenameTableContext.prototype.constructor = RenameTableContext; - -sqlParser.RenameTableContext = RenameTableContext; - -RenameTableContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -RenameTableContext.prototype.RENAME = function() { - return this.getToken(sqlParser.RENAME, 0); -}; - -RenameTableContext.prototype.TO = function() { - return this.getToken(sqlParser.TO, 0); -}; - -RenameTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -RenameTableContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; - -RenameTableContext.prototype.tableIdentifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(TableIdentifierContext); - } else { - return this.getTypedRuleContext(TableIdentifierContext,i); - } -}; -RenameTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRenameTable(this); - } -}; - -RenameTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRenameTable(this); - } -}; - -RenameTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRenameTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function FailNativeCommandContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -FailNativeCommandContext.prototype = Object.create(StatementContext.prototype); -FailNativeCommandContext.prototype.constructor = FailNativeCommandContext; - -sqlParser.FailNativeCommandContext = FailNativeCommandContext; - -FailNativeCommandContext.prototype.SET = function() { - return this.getToken(sqlParser.SET, 0); -}; - -FailNativeCommandContext.prototype.ROLE = function() { - return this.getToken(sqlParser.ROLE, 0); -}; - -FailNativeCommandContext.prototype.unsupportedHiveNativeCommands = function() { - return this.getTypedRuleContext(UnsupportedHiveNativeCommandsContext,0); -}; -FailNativeCommandContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterFailNativeCommand(this); - } -}; - -FailNativeCommandContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitFailNativeCommand(this); - } -}; - -FailNativeCommandContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitFailNativeCommand(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ClearCacheContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ClearCacheContext.prototype = Object.create(StatementContext.prototype); -ClearCacheContext.prototype.constructor = ClearCacheContext; - -sqlParser.ClearCacheContext = ClearCacheContext; - -ClearCacheContext.prototype.CLEAR = function() { - return this.getToken(sqlParser.CLEAR, 0); -}; - -ClearCacheContext.prototype.CACHE = function() { - return this.getToken(sqlParser.CACHE, 0); -}; -ClearCacheContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterClearCache(this); - } -}; - -ClearCacheContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitClearCache(this); - } -}; - -ClearCacheContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitClearCache(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ShowTablesContext(parser, ctx) { - StatementContext.call(this, parser); - this.db = null; // IdentifierContext; - this.pattern = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ShowTablesContext.prototype = Object.create(StatementContext.prototype); -ShowTablesContext.prototype.constructor = ShowTablesContext; - -sqlParser.ShowTablesContext = ShowTablesContext; - -ShowTablesContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -ShowTablesContext.prototype.TABLES = function() { - return this.getToken(sqlParser.TABLES, 0); -}; - -ShowTablesContext.prototype.FROM = function() { - return this.getToken(sqlParser.FROM, 0); -}; - -ShowTablesContext.prototype.IN = function() { - return this.getToken(sqlParser.IN, 0); -}; - -ShowTablesContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ShowTablesContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -ShowTablesContext.prototype.LIKE = function() { - return this.getToken(sqlParser.LIKE, 0); -}; -ShowTablesContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterShowTables(this); - } -}; - -ShowTablesContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitShowTables(this); - } -}; - -ShowTablesContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitShowTables(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function RecoverPartitionsContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RecoverPartitionsContext.prototype = Object.create(StatementContext.prototype); -RecoverPartitionsContext.prototype.constructor = RecoverPartitionsContext; - -sqlParser.RecoverPartitionsContext = RecoverPartitionsContext; - -RecoverPartitionsContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -RecoverPartitionsContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -RecoverPartitionsContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -RecoverPartitionsContext.prototype.RECOVER = function() { - return this.getToken(sqlParser.RECOVER, 0); -}; - -RecoverPartitionsContext.prototype.PARTITIONS = function() { - return this.getToken(sqlParser.PARTITIONS, 0); -}; -RecoverPartitionsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRecoverPartitions(this); - } -}; - -RecoverPartitionsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRecoverPartitions(this); - } -}; - -RecoverPartitionsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRecoverPartitions(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function RenameTablePartitionContext(parser, ctx) { - StatementContext.call(this, parser); - this.from = null; // PartitionSpecContext; - this.to = null; // PartitionSpecContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RenameTablePartitionContext.prototype = Object.create(StatementContext.prototype); -RenameTablePartitionContext.prototype.constructor = RenameTablePartitionContext; - -sqlParser.RenameTablePartitionContext = RenameTablePartitionContext; - -RenameTablePartitionContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -RenameTablePartitionContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -RenameTablePartitionContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -RenameTablePartitionContext.prototype.RENAME = function() { - return this.getToken(sqlParser.RENAME, 0); -}; - -RenameTablePartitionContext.prototype.TO = function() { - return this.getToken(sqlParser.TO, 0); -}; - -RenameTablePartitionContext.prototype.partitionSpec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PartitionSpecContext); - } else { - return this.getTypedRuleContext(PartitionSpecContext,i); - } -}; -RenameTablePartitionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRenameTablePartition(this); - } -}; - -RenameTablePartitionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRenameTablePartition(this); - } -}; - -RenameTablePartitionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRenameTablePartition(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function RepairTableContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RepairTableContext.prototype = Object.create(StatementContext.prototype); -RepairTableContext.prototype.constructor = RepairTableContext; - -sqlParser.RepairTableContext = RepairTableContext; - -RepairTableContext.prototype.MSCK = function() { - return this.getToken(sqlParser.MSCK, 0); -}; - -RepairTableContext.prototype.REPAIR = function() { - return this.getToken(sqlParser.REPAIR, 0); -}; - -RepairTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -RepairTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; -RepairTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRepairTable(this); - } -}; - -RepairTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRepairTable(this); - } -}; - -RepairTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRepairTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function RefreshResourceContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RefreshResourceContext.prototype = Object.create(StatementContext.prototype); -RefreshResourceContext.prototype.constructor = RefreshResourceContext; - -sqlParser.RefreshResourceContext = RefreshResourceContext; - -RefreshResourceContext.prototype.REFRESH = function() { - return this.getToken(sqlParser.REFRESH, 0); -}; - -RefreshResourceContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; -RefreshResourceContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRefreshResource(this); - } -}; - -RefreshResourceContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRefreshResource(this); - } -}; - -RefreshResourceContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRefreshResource(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ShowCreateTableContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ShowCreateTableContext.prototype = Object.create(StatementContext.prototype); -ShowCreateTableContext.prototype.constructor = ShowCreateTableContext; - -sqlParser.ShowCreateTableContext = ShowCreateTableContext; - -ShowCreateTableContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -ShowCreateTableContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -ShowCreateTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -ShowCreateTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; -ShowCreateTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterShowCreateTable(this); - } -}; - -ShowCreateTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitShowCreateTable(this); - } -}; - -ShowCreateTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitShowCreateTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ShowColumnsContext(parser, ctx) { - StatementContext.call(this, parser); - this.db = null; // IdentifierContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ShowColumnsContext.prototype = Object.create(StatementContext.prototype); -ShowColumnsContext.prototype.constructor = ShowColumnsContext; - -sqlParser.ShowColumnsContext = ShowColumnsContext; - -ShowColumnsContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -ShowColumnsContext.prototype.COLUMNS = function() { - return this.getToken(sqlParser.COLUMNS, 0); -}; - -ShowColumnsContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -ShowColumnsContext.prototype.FROM = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.FROM); - } else { - return this.getToken(sqlParser.FROM, i); - } -}; - - -ShowColumnsContext.prototype.IN = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.IN); - } else { - return this.getToken(sqlParser.IN, i); - } -}; - - -ShowColumnsContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; -ShowColumnsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterShowColumns(this); - } -}; - -ShowColumnsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitShowColumns(this); - } -}; - -ShowColumnsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitShowColumns(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function AddTablePartitionContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -AddTablePartitionContext.prototype = Object.create(StatementContext.prototype); -AddTablePartitionContext.prototype.constructor = AddTablePartitionContext; - -sqlParser.AddTablePartitionContext = AddTablePartitionContext; - -AddTablePartitionContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -AddTablePartitionContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -AddTablePartitionContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -AddTablePartitionContext.prototype.ADD = function() { - return this.getToken(sqlParser.ADD, 0); -}; - -AddTablePartitionContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -AddTablePartitionContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -AddTablePartitionContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -AddTablePartitionContext.prototype.partitionSpecLocation = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PartitionSpecLocationContext); - } else { - return this.getTypedRuleContext(PartitionSpecLocationContext,i); - } -}; - -AddTablePartitionContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; - -AddTablePartitionContext.prototype.partitionSpec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PartitionSpecContext); - } else { - return this.getTypedRuleContext(PartitionSpecContext,i); - } -}; -AddTablePartitionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterAddTablePartition(this); - } -}; - -AddTablePartitionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitAddTablePartition(this); - } -}; - -AddTablePartitionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitAddTablePartition(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function RefreshTableContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RefreshTableContext.prototype = Object.create(StatementContext.prototype); -RefreshTableContext.prototype.constructor = RefreshTableContext; - -sqlParser.RefreshTableContext = RefreshTableContext; - -RefreshTableContext.prototype.REFRESH = function() { - return this.getToken(sqlParser.REFRESH, 0); -}; - -RefreshTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -RefreshTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; -RefreshTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRefreshTable(this); - } -}; - -RefreshTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRefreshTable(this); - } -}; - -RefreshTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRefreshTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ManageResourceContext(parser, ctx) { - StatementContext.call(this, parser); - this.op = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ManageResourceContext.prototype = Object.create(StatementContext.prototype); -ManageResourceContext.prototype.constructor = ManageResourceContext; - -sqlParser.ManageResourceContext = ManageResourceContext; - -ManageResourceContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ManageResourceContext.prototype.ADD = function() { - return this.getToken(sqlParser.ADD, 0); -}; - -ManageResourceContext.prototype.LIST = function() { - return this.getToken(sqlParser.LIST, 0); -}; -ManageResourceContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterManageResource(this); - } -}; - -ManageResourceContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitManageResource(this); - } -}; - -ManageResourceContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitManageResource(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CreateDatabaseContext(parser, ctx) { - StatementContext.call(this, parser); - this.comment = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CreateDatabaseContext.prototype = Object.create(StatementContext.prototype); -CreateDatabaseContext.prototype.constructor = CreateDatabaseContext; - -sqlParser.CreateDatabaseContext = CreateDatabaseContext; - -CreateDatabaseContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -CreateDatabaseContext.prototype.DATABASE = function() { - return this.getToken(sqlParser.DATABASE, 0); -}; - -CreateDatabaseContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -CreateDatabaseContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -CreateDatabaseContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -CreateDatabaseContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -CreateDatabaseContext.prototype.COMMENT = function() { - return this.getToken(sqlParser.COMMENT, 0); -}; - -CreateDatabaseContext.prototype.locationSpec = function() { - return this.getTypedRuleContext(LocationSpecContext,0); -}; - -CreateDatabaseContext.prototype.WITH = function() { - return this.getToken(sqlParser.WITH, 0); -}; - -CreateDatabaseContext.prototype.DBPROPERTIES = function() { - return this.getToken(sqlParser.DBPROPERTIES, 0); -}; - -CreateDatabaseContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; - -CreateDatabaseContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; -CreateDatabaseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateDatabase(this); - } -}; - -CreateDatabaseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateDatabase(this); - } -}; - -CreateDatabaseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateDatabase(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function AnalyzeContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -AnalyzeContext.prototype = Object.create(StatementContext.prototype); -AnalyzeContext.prototype.constructor = AnalyzeContext; - -sqlParser.AnalyzeContext = AnalyzeContext; - -AnalyzeContext.prototype.ANALYZE = function() { - return this.getToken(sqlParser.ANALYZE, 0); -}; - -AnalyzeContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -AnalyzeContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -AnalyzeContext.prototype.COMPUTE = function() { - return this.getToken(sqlParser.COMPUTE, 0); -}; - -AnalyzeContext.prototype.STATISTICS = function() { - return this.getToken(sqlParser.STATISTICS, 0); -}; - -AnalyzeContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; - -AnalyzeContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -AnalyzeContext.prototype.FOR = function() { - return this.getToken(sqlParser.FOR, 0); -}; - -AnalyzeContext.prototype.COLUMNS = function() { - return this.getToken(sqlParser.COLUMNS, 0); -}; - -AnalyzeContext.prototype.identifierSeq = function() { - return this.getTypedRuleContext(IdentifierSeqContext,0); -}; - -AnalyzeContext.prototype.ALL = function() { - return this.getToken(sqlParser.ALL, 0); -}; -AnalyzeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterAnalyze(this); - } -}; - -AnalyzeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitAnalyze(this); - } -}; - -AnalyzeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitAnalyze(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CreateHiveTableContext(parser, ctx) { - StatementContext.call(this, parser); - this.columns = null; // ColTypeListContext; - this.comment = null; // Token; - this.partitionColumns = null; // ColTypeListContext; - this.tableProps = null; // TablePropertyListContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CreateHiveTableContext.prototype = Object.create(StatementContext.prototype); -CreateHiveTableContext.prototype.constructor = CreateHiveTableContext; - -sqlParser.CreateHiveTableContext = CreateHiveTableContext; - -CreateHiveTableContext.prototype.createTableHeader = function() { - return this.getTypedRuleContext(CreateTableHeaderContext,0); -}; - -CreateHiveTableContext.prototype.bucketSpec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(BucketSpecContext); - } else { - return this.getTypedRuleContext(BucketSpecContext,i); - } -}; - -CreateHiveTableContext.prototype.skewSpec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(SkewSpecContext); - } else { - return this.getTypedRuleContext(SkewSpecContext,i); - } -}; - -CreateHiveTableContext.prototype.rowFormat = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(RowFormatContext); - } else { - return this.getTypedRuleContext(RowFormatContext,i); - } -}; - -CreateHiveTableContext.prototype.createFileFormat = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(CreateFileFormatContext); - } else { - return this.getTypedRuleContext(CreateFileFormatContext,i); - } -}; - -CreateHiveTableContext.prototype.locationSpec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(LocationSpecContext); - } else { - return this.getTypedRuleContext(LocationSpecContext,i); - } -}; - -CreateHiveTableContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; - -CreateHiveTableContext.prototype.colTypeList = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ColTypeListContext); - } else { - return this.getTypedRuleContext(ColTypeListContext,i); - } -}; - -CreateHiveTableContext.prototype.COMMENT = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.COMMENT); - } else { - return this.getToken(sqlParser.COMMENT, i); - } -}; - - -CreateHiveTableContext.prototype.PARTITIONED = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.PARTITIONED); - } else { - return this.getToken(sqlParser.PARTITIONED, i); - } -}; - - -CreateHiveTableContext.prototype.BY = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.BY); - } else { - return this.getToken(sqlParser.BY, i); - } -}; - - -CreateHiveTableContext.prototype.TBLPROPERTIES = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.TBLPROPERTIES); - } else { - return this.getToken(sqlParser.TBLPROPERTIES, i); - } -}; - - -CreateHiveTableContext.prototype.STRING = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.STRING); - } else { - return this.getToken(sqlParser.STRING, i); - } -}; - - -CreateHiveTableContext.prototype.tablePropertyList = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(TablePropertyListContext); - } else { - return this.getTypedRuleContext(TablePropertyListContext,i); - } -}; - -CreateHiveTableContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; -CreateHiveTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateHiveTable(this); - } -}; - -CreateHiveTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateHiveTable(this); - } -}; - -CreateHiveTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateHiveTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CreateFunctionContext(parser, ctx) { - StatementContext.call(this, parser); - this.className = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CreateFunctionContext.prototype = Object.create(StatementContext.prototype); -CreateFunctionContext.prototype.constructor = CreateFunctionContext; - -sqlParser.CreateFunctionContext = CreateFunctionContext; - -CreateFunctionContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -CreateFunctionContext.prototype.FUNCTION = function() { - return this.getToken(sqlParser.FUNCTION, 0); -}; - -CreateFunctionContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; - -CreateFunctionContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -CreateFunctionContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -CreateFunctionContext.prototype.OR = function() { - return this.getToken(sqlParser.OR, 0); -}; - -CreateFunctionContext.prototype.REPLACE = function() { - return this.getToken(sqlParser.REPLACE, 0); -}; - -CreateFunctionContext.prototype.TEMPORARY = function() { - return this.getToken(sqlParser.TEMPORARY, 0); -}; - -CreateFunctionContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -CreateFunctionContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -CreateFunctionContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -CreateFunctionContext.prototype.USING = function() { - return this.getToken(sqlParser.USING, 0); -}; - -CreateFunctionContext.prototype.resource = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ResourceContext); - } else { - return this.getTypedRuleContext(ResourceContext,i); - } -}; -CreateFunctionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateFunction(this); - } -}; - -CreateFunctionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateFunction(this); - } -}; - -CreateFunctionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateFunction(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ShowTableContext(parser, ctx) { - StatementContext.call(this, parser); - this.db = null; // IdentifierContext; - this.pattern = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ShowTableContext.prototype = Object.create(StatementContext.prototype); -ShowTableContext.prototype.constructor = ShowTableContext; - -sqlParser.ShowTableContext = ShowTableContext; - -ShowTableContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -ShowTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -ShowTableContext.prototype.EXTENDED = function() { - return this.getToken(sqlParser.EXTENDED, 0); -}; - -ShowTableContext.prototype.LIKE = function() { - return this.getToken(sqlParser.LIKE, 0); -}; - -ShowTableContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -ShowTableContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; - -ShowTableContext.prototype.FROM = function() { - return this.getToken(sqlParser.FROM, 0); -}; - -ShowTableContext.prototype.IN = function() { - return this.getToken(sqlParser.IN, 0); -}; - -ShowTableContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; -ShowTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterShowTable(this); - } -}; - -ShowTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitShowTable(this); - } -}; - -ShowTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitShowTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SetDatabasePropertiesContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SetDatabasePropertiesContext.prototype = Object.create(StatementContext.prototype); -SetDatabasePropertiesContext.prototype.constructor = SetDatabasePropertiesContext; - -sqlParser.SetDatabasePropertiesContext = SetDatabasePropertiesContext; - -SetDatabasePropertiesContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -SetDatabasePropertiesContext.prototype.DATABASE = function() { - return this.getToken(sqlParser.DATABASE, 0); -}; - -SetDatabasePropertiesContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -SetDatabasePropertiesContext.prototype.SET = function() { - return this.getToken(sqlParser.SET, 0); -}; - -SetDatabasePropertiesContext.prototype.DBPROPERTIES = function() { - return this.getToken(sqlParser.DBPROPERTIES, 0); -}; - -SetDatabasePropertiesContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; -SetDatabasePropertiesContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSetDatabaseProperties(this); - } -}; - -SetDatabasePropertiesContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSetDatabaseProperties(this); - } -}; - -SetDatabasePropertiesContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSetDatabaseProperties(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CreateTableContext(parser, ctx) { - StatementContext.call(this, parser); - this.options = null; // TablePropertyListContext; - this.partitionColumnNames = null; // IdentifierListContext; - this.comment = null; // Token; - this.tableProps = null; // TablePropertyListContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CreateTableContext.prototype = Object.create(StatementContext.prototype); -CreateTableContext.prototype.constructor = CreateTableContext; - -sqlParser.CreateTableContext = CreateTableContext; - -CreateTableContext.prototype.createTableHeader = function() { - return this.getTypedRuleContext(CreateTableHeaderContext,0); -}; - -CreateTableContext.prototype.tableProvider = function() { - return this.getTypedRuleContext(TableProviderContext,0); -}; - -CreateTableContext.prototype.colTypeList = function() { - return this.getTypedRuleContext(ColTypeListContext,0); -}; - -CreateTableContext.prototype.bucketSpec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(BucketSpecContext); - } else { - return this.getTypedRuleContext(BucketSpecContext,i); - } -}; - -CreateTableContext.prototype.locationSpec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(LocationSpecContext); - } else { - return this.getTypedRuleContext(LocationSpecContext,i); - } -}; - -CreateTableContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; - -CreateTableContext.prototype.OPTIONS = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.OPTIONS); - } else { - return this.getToken(sqlParser.OPTIONS, i); - } -}; - - -CreateTableContext.prototype.PARTITIONED = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.PARTITIONED); - } else { - return this.getToken(sqlParser.PARTITIONED, i); - } -}; - - -CreateTableContext.prototype.BY = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.BY); - } else { - return this.getToken(sqlParser.BY, i); - } -}; - - -CreateTableContext.prototype.COMMENT = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.COMMENT); - } else { - return this.getToken(sqlParser.COMMENT, i); - } -}; - - -CreateTableContext.prototype.TBLPROPERTIES = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.TBLPROPERTIES); - } else { - return this.getToken(sqlParser.TBLPROPERTIES, i); - } -}; - - -CreateTableContext.prototype.tablePropertyList = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(TablePropertyListContext); - } else { - return this.getTypedRuleContext(TablePropertyListContext,i); - } -}; - -CreateTableContext.prototype.identifierList = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierListContext); - } else { - return this.getTypedRuleContext(IdentifierListContext,i); - } -}; - -CreateTableContext.prototype.STRING = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.STRING); - } else { - return this.getToken(sqlParser.STRING, i); - } -}; - - -CreateTableContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; -CreateTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateTable(this); - } -}; - -CreateTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateTable(this); - } -}; - -CreateTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DescribeTableContext(parser, ctx) { - StatementContext.call(this, parser); - this.option = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DescribeTableContext.prototype = Object.create(StatementContext.prototype); -DescribeTableContext.prototype.constructor = DescribeTableContext; - -sqlParser.DescribeTableContext = DescribeTableContext; - -DescribeTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -DescribeTableContext.prototype.DESC = function() { - return this.getToken(sqlParser.DESC, 0); -}; - -DescribeTableContext.prototype.DESCRIBE = function() { - return this.getToken(sqlParser.DESCRIBE, 0); -}; - -DescribeTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -DescribeTableContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; - -DescribeTableContext.prototype.describeColName = function() { - return this.getTypedRuleContext(DescribeColNameContext,0); -}; - -DescribeTableContext.prototype.EXTENDED = function() { - return this.getToken(sqlParser.EXTENDED, 0); -}; - -DescribeTableContext.prototype.FORMATTED = function() { - return this.getToken(sqlParser.FORMATTED, 0); -}; -DescribeTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDescribeTable(this); - } -}; - -DescribeTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDescribeTable(this); - } -}; - -DescribeTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDescribeTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CreateTableLikeContext(parser, ctx) { - StatementContext.call(this, parser); - this.target = null; // TableIdentifierContext; - this.source = null; // TableIdentifierContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CreateTableLikeContext.prototype = Object.create(StatementContext.prototype); -CreateTableLikeContext.prototype.constructor = CreateTableLikeContext; - -sqlParser.CreateTableLikeContext = CreateTableLikeContext; - -CreateTableLikeContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -CreateTableLikeContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -CreateTableLikeContext.prototype.LIKE = function() { - return this.getToken(sqlParser.LIKE, 0); -}; - -CreateTableLikeContext.prototype.tableIdentifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(TableIdentifierContext); - } else { - return this.getTypedRuleContext(TableIdentifierContext,i); - } -}; - -CreateTableLikeContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -CreateTableLikeContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -CreateTableLikeContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -CreateTableLikeContext.prototype.locationSpec = function() { - return this.getTypedRuleContext(LocationSpecContext,0); -}; -CreateTableLikeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateTableLike(this); - } -}; - -CreateTableLikeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateTableLike(this); - } -}; - -CreateTableLikeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateTableLike(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function UncacheTableContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -UncacheTableContext.prototype = Object.create(StatementContext.prototype); -UncacheTableContext.prototype.constructor = UncacheTableContext; - -sqlParser.UncacheTableContext = UncacheTableContext; - -UncacheTableContext.prototype.UNCACHE = function() { - return this.getToken(sqlParser.UNCACHE, 0); -}; - -UncacheTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -UncacheTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -UncacheTableContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -UncacheTableContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; -UncacheTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterUncacheTable(this); - } -}; - -UncacheTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitUncacheTable(this); - } -}; - -UncacheTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitUncacheTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DropFunctionContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DropFunctionContext.prototype = Object.create(StatementContext.prototype); -DropFunctionContext.prototype.constructor = DropFunctionContext; - -sqlParser.DropFunctionContext = DropFunctionContext; - -DropFunctionContext.prototype.DROP = function() { - return this.getToken(sqlParser.DROP, 0); -}; - -DropFunctionContext.prototype.FUNCTION = function() { - return this.getToken(sqlParser.FUNCTION, 0); -}; - -DropFunctionContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; - -DropFunctionContext.prototype.TEMPORARY = function() { - return this.getToken(sqlParser.TEMPORARY, 0); -}; - -DropFunctionContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -DropFunctionContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; -DropFunctionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDropFunction(this); - } -}; - -DropFunctionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDropFunction(this); - } -}; - -DropFunctionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDropFunction(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function LoadDataContext(parser, ctx) { - StatementContext.call(this, parser); - this.path = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -LoadDataContext.prototype = Object.create(StatementContext.prototype); -LoadDataContext.prototype.constructor = LoadDataContext; - -sqlParser.LoadDataContext = LoadDataContext; - -LoadDataContext.prototype.LOAD = function() { - return this.getToken(sqlParser.LOAD, 0); -}; - -LoadDataContext.prototype.DATA = function() { - return this.getToken(sqlParser.DATA, 0); -}; - -LoadDataContext.prototype.INPATH = function() { - return this.getToken(sqlParser.INPATH, 0); -}; - -LoadDataContext.prototype.INTO = function() { - return this.getToken(sqlParser.INTO, 0); -}; - -LoadDataContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -LoadDataContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -LoadDataContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -LoadDataContext.prototype.LOCAL = function() { - return this.getToken(sqlParser.LOCAL, 0); -}; - -LoadDataContext.prototype.OVERWRITE = function() { - return this.getToken(sqlParser.OVERWRITE, 0); -}; - -LoadDataContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; -LoadDataContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterLoadData(this); - } -}; - -LoadDataContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitLoadData(this); - } -}; - -LoadDataContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitLoadData(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ShowPartitionsContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ShowPartitionsContext.prototype = Object.create(StatementContext.prototype); -ShowPartitionsContext.prototype.constructor = ShowPartitionsContext; - -sqlParser.ShowPartitionsContext = ShowPartitionsContext; - -ShowPartitionsContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -ShowPartitionsContext.prototype.PARTITIONS = function() { - return this.getToken(sqlParser.PARTITIONS, 0); -}; - -ShowPartitionsContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -ShowPartitionsContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; -ShowPartitionsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterShowPartitions(this); - } -}; - -ShowPartitionsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitShowPartitions(this); - } -}; - -ShowPartitionsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitShowPartitions(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DescribeFunctionContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DescribeFunctionContext.prototype = Object.create(StatementContext.prototype); -DescribeFunctionContext.prototype.constructor = DescribeFunctionContext; - -sqlParser.DescribeFunctionContext = DescribeFunctionContext; - -DescribeFunctionContext.prototype.FUNCTION = function() { - return this.getToken(sqlParser.FUNCTION, 0); -}; - -DescribeFunctionContext.prototype.describeFuncName = function() { - return this.getTypedRuleContext(DescribeFuncNameContext,0); -}; - -DescribeFunctionContext.prototype.DESC = function() { - return this.getToken(sqlParser.DESC, 0); -}; - -DescribeFunctionContext.prototype.DESCRIBE = function() { - return this.getToken(sqlParser.DESCRIBE, 0); -}; - -DescribeFunctionContext.prototype.EXTENDED = function() { - return this.getToken(sqlParser.EXTENDED, 0); -}; -DescribeFunctionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDescribeFunction(this); - } -}; - -DescribeFunctionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDescribeFunction(this); - } -}; - -DescribeFunctionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDescribeFunction(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ChangeColumnContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ChangeColumnContext.prototype = Object.create(StatementContext.prototype); -ChangeColumnContext.prototype.constructor = ChangeColumnContext; - -sqlParser.ChangeColumnContext = ChangeColumnContext; - -ChangeColumnContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -ChangeColumnContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -ChangeColumnContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -ChangeColumnContext.prototype.CHANGE = function() { - return this.getToken(sqlParser.CHANGE, 0); -}; - -ChangeColumnContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ChangeColumnContext.prototype.colType = function() { - return this.getTypedRuleContext(ColTypeContext,0); -}; - -ChangeColumnContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; - -ChangeColumnContext.prototype.COLUMN = function() { - return this.getToken(sqlParser.COLUMN, 0); -}; - -ChangeColumnContext.prototype.colPosition = function() { - return this.getTypedRuleContext(ColPositionContext,0); -}; -ChangeColumnContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterChangeColumn(this); - } -}; - -ChangeColumnContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitChangeColumn(this); - } -}; - -ChangeColumnContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitChangeColumn(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function StatementDefaultContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -StatementDefaultContext.prototype = Object.create(StatementContext.prototype); -StatementDefaultContext.prototype.constructor = StatementDefaultContext; - -sqlParser.StatementDefaultContext = StatementDefaultContext; - -StatementDefaultContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; -StatementDefaultContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterStatementDefault(this); - } -}; - -StatementDefaultContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitStatementDefault(this); - } -}; - -StatementDefaultContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitStatementDefault(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function TruncateTableContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -TruncateTableContext.prototype = Object.create(StatementContext.prototype); -TruncateTableContext.prototype.constructor = TruncateTableContext; - -sqlParser.TruncateTableContext = TruncateTableContext; - -TruncateTableContext.prototype.TRUNCATE = function() { - return this.getToken(sqlParser.TRUNCATE, 0); -}; - -TruncateTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -TruncateTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -TruncateTableContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; -TruncateTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTruncateTable(this); - } -}; - -TruncateTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTruncateTable(this); - } -}; - -TruncateTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTruncateTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SetTableSerDeContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SetTableSerDeContext.prototype = Object.create(StatementContext.prototype); -SetTableSerDeContext.prototype.constructor = SetTableSerDeContext; - -sqlParser.SetTableSerDeContext = SetTableSerDeContext; - -SetTableSerDeContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -SetTableSerDeContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -SetTableSerDeContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -SetTableSerDeContext.prototype.SET = function() { - return this.getToken(sqlParser.SET, 0); -}; - -SetTableSerDeContext.prototype.SERDE = function() { - return this.getToken(sqlParser.SERDE, 0); -}; - -SetTableSerDeContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -SetTableSerDeContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; - -SetTableSerDeContext.prototype.WITH = function() { - return this.getToken(sqlParser.WITH, 0); -}; - -SetTableSerDeContext.prototype.SERDEPROPERTIES = function() { - return this.getToken(sqlParser.SERDEPROPERTIES, 0); -}; - -SetTableSerDeContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; -SetTableSerDeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSetTableSerDe(this); - } -}; - -SetTableSerDeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSetTableSerDe(this); - } -}; - -SetTableSerDeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSetTableSerDe(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CreateViewContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CreateViewContext.prototype = Object.create(StatementContext.prototype); -CreateViewContext.prototype.constructor = CreateViewContext; - -sqlParser.CreateViewContext = CreateViewContext; - -CreateViewContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -CreateViewContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; - -CreateViewContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -CreateViewContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -CreateViewContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; - -CreateViewContext.prototype.OR = function() { - return this.getToken(sqlParser.OR, 0); -}; - -CreateViewContext.prototype.REPLACE = function() { - return this.getToken(sqlParser.REPLACE, 0); -}; - -CreateViewContext.prototype.TEMPORARY = function() { - return this.getToken(sqlParser.TEMPORARY, 0); -}; - -CreateViewContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -CreateViewContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -CreateViewContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -CreateViewContext.prototype.identifierCommentList = function() { - return this.getTypedRuleContext(IdentifierCommentListContext,0); -}; - -CreateViewContext.prototype.COMMENT = function() { - return this.getToken(sqlParser.COMMENT, 0); -}; - -CreateViewContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -CreateViewContext.prototype.PARTITIONED = function() { - return this.getToken(sqlParser.PARTITIONED, 0); -}; - -CreateViewContext.prototype.ON = function() { - return this.getToken(sqlParser.ON, 0); -}; - -CreateViewContext.prototype.identifierList = function() { - return this.getTypedRuleContext(IdentifierListContext,0); -}; - -CreateViewContext.prototype.TBLPROPERTIES = function() { - return this.getToken(sqlParser.TBLPROPERTIES, 0); -}; - -CreateViewContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; - -CreateViewContext.prototype.GLOBAL = function() { - return this.getToken(sqlParser.GLOBAL, 0); -}; -CreateViewContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateView(this); - } -}; - -CreateViewContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateView(this); - } -}; - -CreateViewContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateView(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DropTablePartitionsContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DropTablePartitionsContext.prototype = Object.create(StatementContext.prototype); -DropTablePartitionsContext.prototype.constructor = DropTablePartitionsContext; - -sqlParser.DropTablePartitionsContext = DropTablePartitionsContext; - -DropTablePartitionsContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -DropTablePartitionsContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -DropTablePartitionsContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -DropTablePartitionsContext.prototype.DROP = function() { - return this.getToken(sqlParser.DROP, 0); -}; - -DropTablePartitionsContext.prototype.partitionSpec = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PartitionSpecContext); - } else { - return this.getTypedRuleContext(PartitionSpecContext,i); - } -}; - -DropTablePartitionsContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -DropTablePartitionsContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -DropTablePartitionsContext.prototype.PURGE = function() { - return this.getToken(sqlParser.PURGE, 0); -}; - -DropTablePartitionsContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; -DropTablePartitionsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDropTablePartitions(this); - } -}; - -DropTablePartitionsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDropTablePartitions(this); - } -}; - -DropTablePartitionsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDropTablePartitions(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SetConfigurationContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SetConfigurationContext.prototype = Object.create(StatementContext.prototype); -SetConfigurationContext.prototype.constructor = SetConfigurationContext; - -sqlParser.SetConfigurationContext = SetConfigurationContext; - -SetConfigurationContext.prototype.SET = function() { - return this.getToken(sqlParser.SET, 0); -}; -SetConfigurationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSetConfiguration(this); - } -}; - -SetConfigurationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSetConfiguration(this); - } -}; - -SetConfigurationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSetConfiguration(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DropTableContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DropTableContext.prototype = Object.create(StatementContext.prototype); -DropTableContext.prototype.constructor = DropTableContext; - -sqlParser.DropTableContext = DropTableContext; - -DropTableContext.prototype.DROP = function() { - return this.getToken(sqlParser.DROP, 0); -}; - -DropTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -DropTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -DropTableContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -DropTableContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -DropTableContext.prototype.PURGE = function() { - return this.getToken(sqlParser.PURGE, 0); -}; - -DropTableContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; -DropTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDropTable(this); - } -}; - -DropTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDropTable(this); - } -}; - -DropTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDropTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ShowDatabasesContext(parser, ctx) { - StatementContext.call(this, parser); - this.pattern = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ShowDatabasesContext.prototype = Object.create(StatementContext.prototype); -ShowDatabasesContext.prototype.constructor = ShowDatabasesContext; - -sqlParser.ShowDatabasesContext = ShowDatabasesContext; - -ShowDatabasesContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -ShowDatabasesContext.prototype.DATABASES = function() { - return this.getToken(sqlParser.DATABASES, 0); -}; - -ShowDatabasesContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -ShowDatabasesContext.prototype.LIKE = function() { - return this.getToken(sqlParser.LIKE, 0); -}; -ShowDatabasesContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterShowDatabases(this); - } -}; - -ShowDatabasesContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitShowDatabases(this); - } -}; - -ShowDatabasesContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitShowDatabases(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ShowTblPropertiesContext(parser, ctx) { - StatementContext.call(this, parser); - this.table = null; // TableIdentifierContext; - this.key = null; // TablePropertyKeyContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ShowTblPropertiesContext.prototype = Object.create(StatementContext.prototype); -ShowTblPropertiesContext.prototype.constructor = ShowTblPropertiesContext; - -sqlParser.ShowTblPropertiesContext = ShowTblPropertiesContext; - -ShowTblPropertiesContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -ShowTblPropertiesContext.prototype.TBLPROPERTIES = function() { - return this.getToken(sqlParser.TBLPROPERTIES, 0); -}; - -ShowTblPropertiesContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -ShowTblPropertiesContext.prototype.tablePropertyKey = function() { - return this.getTypedRuleContext(TablePropertyKeyContext,0); -}; -ShowTblPropertiesContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterShowTblProperties(this); - } -}; - -ShowTblPropertiesContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitShowTblProperties(this); - } -}; - -ShowTblPropertiesContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitShowTblProperties(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CreateFlinkTableContext(parser, ctx) { - StatementContext.call(this, parser); - this.catcatalogName = null; // IdentifierContext; - this.columns = null; // DtColTypeListContext; - this.comment = null; // Token; - this.partitionColumnNames = null; // IdentifierListContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CreateFlinkTableContext.prototype = Object.create(StatementContext.prototype); -CreateFlinkTableContext.prototype.constructor = CreateFlinkTableContext; - -sqlParser.CreateFlinkTableContext = CreateFlinkTableContext; - -CreateFlinkTableContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -CreateFlinkTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -CreateFlinkTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -CreateFlinkTableContext.prototype.WITH = function() { - return this.getToken(sqlParser.WITH, 0); -}; - -CreateFlinkTableContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; - -CreateFlinkTableContext.prototype.COMMENT = function() { - return this.getToken(sqlParser.COMMENT, 0); -}; - -CreateFlinkTableContext.prototype.PARTITIONED = function() { - return this.getToken(sqlParser.PARTITIONED, 0); -}; - -CreateFlinkTableContext.prototype.BY = function() { - return this.getToken(sqlParser.BY, 0); -}; - -CreateFlinkTableContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -CreateFlinkTableContext.prototype.dtColTypeList = function() { - return this.getTypedRuleContext(DtColTypeListContext,0); -}; - -CreateFlinkTableContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -CreateFlinkTableContext.prototype.identifierList = function() { - return this.getTypedRuleContext(IdentifierListContext,0); -}; -CreateFlinkTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateFlinkTable(this); - } -}; - -CreateFlinkTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateFlinkTable(this); - } -}; - -CreateFlinkTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateFlinkTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function UnsetTablePropertiesContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -UnsetTablePropertiesContext.prototype = Object.create(StatementContext.prototype); -UnsetTablePropertiesContext.prototype.constructor = UnsetTablePropertiesContext; - -sqlParser.UnsetTablePropertiesContext = UnsetTablePropertiesContext; - -UnsetTablePropertiesContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -UnsetTablePropertiesContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -UnsetTablePropertiesContext.prototype.UNSET = function() { - return this.getToken(sqlParser.UNSET, 0); -}; - -UnsetTablePropertiesContext.prototype.TBLPROPERTIES = function() { - return this.getToken(sqlParser.TBLPROPERTIES, 0); -}; - -UnsetTablePropertiesContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; - -UnsetTablePropertiesContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -UnsetTablePropertiesContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; - -UnsetTablePropertiesContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -UnsetTablePropertiesContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; -UnsetTablePropertiesContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterUnsetTableProperties(this); - } -}; - -UnsetTablePropertiesContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitUnsetTableProperties(this); - } -}; - -UnsetTablePropertiesContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitUnsetTableProperties(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SetTableLocationContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SetTableLocationContext.prototype = Object.create(StatementContext.prototype); -SetTableLocationContext.prototype.constructor = SetTableLocationContext; - -sqlParser.SetTableLocationContext = SetTableLocationContext; - -SetTableLocationContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -SetTableLocationContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -SetTableLocationContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -SetTableLocationContext.prototype.SET = function() { - return this.getToken(sqlParser.SET, 0); -}; - -SetTableLocationContext.prototype.locationSpec = function() { - return this.getTypedRuleContext(LocationSpecContext,0); -}; - -SetTableLocationContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; -SetTableLocationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSetTableLocation(this); - } -}; - -SetTableLocationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSetTableLocation(this); - } -}; - -SetTableLocationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSetTableLocation(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ShowFunctionsContext(parser, ctx) { - StatementContext.call(this, parser); - this.pattern = null; // Token; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ShowFunctionsContext.prototype = Object.create(StatementContext.prototype); -ShowFunctionsContext.prototype.constructor = ShowFunctionsContext; - -sqlParser.ShowFunctionsContext = ShowFunctionsContext; - -ShowFunctionsContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -ShowFunctionsContext.prototype.FUNCTIONS = function() { - return this.getToken(sqlParser.FUNCTIONS, 0); -}; - -ShowFunctionsContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ShowFunctionsContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; - -ShowFunctionsContext.prototype.LIKE = function() { - return this.getToken(sqlParser.LIKE, 0); -}; - -ShowFunctionsContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; -ShowFunctionsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterShowFunctions(this); - } -}; - -ShowFunctionsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitShowFunctions(this); - } -}; - -ShowFunctionsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitShowFunctions(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CacheTableContext(parser, ctx) { - StatementContext.call(this, parser); - this.options = null; // TablePropertyListContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CacheTableContext.prototype = Object.create(StatementContext.prototype); -CacheTableContext.prototype.constructor = CacheTableContext; - -sqlParser.CacheTableContext = CacheTableContext; - -CacheTableContext.prototype.CACHE = function() { - return this.getToken(sqlParser.CACHE, 0); -}; - -CacheTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -CacheTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -CacheTableContext.prototype.LAZY = function() { - return this.getToken(sqlParser.LAZY, 0); -}; - -CacheTableContext.prototype.OPTIONS = function() { - return this.getToken(sqlParser.OPTIONS, 0); -}; - -CacheTableContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; - -CacheTableContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; - -CacheTableContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; -CacheTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCacheTable(this); - } -}; - -CacheTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCacheTable(this); - } -}; - -CacheTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCacheTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function AddTableColumnsContext(parser, ctx) { - StatementContext.call(this, parser); - this.columns = null; // ColTypeListContext; - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -AddTableColumnsContext.prototype = Object.create(StatementContext.prototype); -AddTableColumnsContext.prototype.constructor = AddTableColumnsContext; - -sqlParser.AddTableColumnsContext = AddTableColumnsContext; - -AddTableColumnsContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -AddTableColumnsContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -AddTableColumnsContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -AddTableColumnsContext.prototype.ADD = function() { - return this.getToken(sqlParser.ADD, 0); -}; - -AddTableColumnsContext.prototype.COLUMNS = function() { - return this.getToken(sqlParser.COLUMNS, 0); -}; - -AddTableColumnsContext.prototype.colTypeList = function() { - return this.getTypedRuleContext(ColTypeListContext,0); -}; -AddTableColumnsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterAddTableColumns(this); - } -}; - -AddTableColumnsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitAddTableColumns(this); - } -}; - -AddTableColumnsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitAddTableColumns(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SetTablePropertiesContext(parser, ctx) { - StatementContext.call(this, parser); - StatementContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SetTablePropertiesContext.prototype = Object.create(StatementContext.prototype); -SetTablePropertiesContext.prototype.constructor = SetTablePropertiesContext; - -sqlParser.SetTablePropertiesContext = SetTablePropertiesContext; - -SetTablePropertiesContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -SetTablePropertiesContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -SetTablePropertiesContext.prototype.SET = function() { - return this.getToken(sqlParser.SET, 0); -}; - -SetTablePropertiesContext.prototype.TBLPROPERTIES = function() { - return this.getToken(sqlParser.TBLPROPERTIES, 0); -}; - -SetTablePropertiesContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; - -SetTablePropertiesContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -SetTablePropertiesContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; -SetTablePropertiesContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSetTableProperties(this); - } -}; - -SetTablePropertiesContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSetTableProperties(this); - } -}; - -SetTablePropertiesContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSetTableProperties(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.StatementContext = StatementContext; - -sqlParser.prototype.statement = function() { - - var localctx = new StatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 12, sqlParser.RULE_statement); - var _la = 0; // Token type - try { - this.state = 893; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,101,this._ctx); - switch(la_) { - case 1: - localctx = new StatementDefaultContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 251; - this.query(); - break; - - case 2: - localctx = new UseContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 252; - this.match(sqlParser.USE); - this.state = 253; - localctx.db = this.identifier(); - break; - - case 3: - localctx = new CreateDatabaseContext(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 254; - this.match(sqlParser.CREATE); - this.state = 255; - this.match(sqlParser.DATABASE); - this.state = 259; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,1,this._ctx); - if(la_===1) { - this.state = 256; - this.match(sqlParser.IF); - this.state = 257; - this.match(sqlParser.NOT); - this.state = 258; - this.match(sqlParser.EXISTS); - - } - this.state = 261; - this.identifier(); - this.state = 264; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.COMMENT) { - this.state = 262; - this.match(sqlParser.COMMENT); - this.state = 263; - localctx.comment = this.match(sqlParser.STRING); - } - - this.state = 267; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LOCATION) { - this.state = 266; - this.locationSpec(); - } - - this.state = 272; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.WITH) { - this.state = 269; - this.match(sqlParser.WITH); - this.state = 270; - this.match(sqlParser.DBPROPERTIES); - this.state = 271; - this.tablePropertyList(); - } - - break; - - case 4: - localctx = new SetDatabasePropertiesContext(this, localctx); - this.enterOuterAlt(localctx, 4); - this.state = 274; - this.match(sqlParser.ALTER); - this.state = 275; - this.match(sqlParser.DATABASE); - this.state = 276; - this.identifier(); - this.state = 277; - this.match(sqlParser.SET); - this.state = 278; - this.match(sqlParser.DBPROPERTIES); - this.state = 279; - this.tablePropertyList(); - break; - - case 5: - localctx = new DropDatabaseContext(this, localctx); - this.enterOuterAlt(localctx, 5); - this.state = 281; - this.match(sqlParser.DROP); - this.state = 282; - this.match(sqlParser.DATABASE); - this.state = 285; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,5,this._ctx); - if(la_===1) { - this.state = 283; - this.match(sqlParser.IF); - this.state = 284; - this.match(sqlParser.EXISTS); - - } - this.state = 287; - this.identifier(); - this.state = 289; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.CASCADE || _la===sqlParser.RESTRICT) { - this.state = 288; - _la = this._input.LA(1); - if(!(_la===sqlParser.CASCADE || _la===sqlParser.RESTRICT)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - - break; - - case 6: - localctx = new CreateTableContext(this, localctx); - this.enterOuterAlt(localctx, 6); - this.state = 291; - this.createTableHeader(); - this.state = 296; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.T__0) { - this.state = 292; - this.match(sqlParser.T__0); - this.state = 293; - this.colTypeList(); - this.state = 294; - this.match(sqlParser.T__1); - } - - this.state = 298; - this.tableProvider(); - this.state = 312; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.COMMENT || ((((_la - 191)) & ~0x1f) == 0 && ((1 << (_la - 191)) & ((1 << (sqlParser.OPTIONS - 191)) | (1 << (sqlParser.TBLPROPERTIES - 191)) | (1 << (sqlParser.LOCATION - 191)) | (1 << (sqlParser.CLUSTERED - 191)))) !== 0) || _la===sqlParser.PARTITIONED) { - this.state = 310; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.OPTIONS: - this.state = 299; - this.match(sqlParser.OPTIONS); - this.state = 300; - localctx.options = this.tablePropertyList(); - break; - case sqlParser.PARTITIONED: - this.state = 301; - this.match(sqlParser.PARTITIONED); - this.state = 302; - this.match(sqlParser.BY); - this.state = 303; - localctx.partitionColumnNames = this.identifierList(); - break; - case sqlParser.CLUSTERED: - this.state = 304; - this.bucketSpec(); - break; - case sqlParser.LOCATION: - this.state = 305; - this.locationSpec(); - break; - case sqlParser.COMMENT: - this.state = 306; - this.match(sqlParser.COMMENT); - this.state = 307; - localctx.comment = this.match(sqlParser.STRING); - break; - case sqlParser.TBLPROPERTIES: - this.state = 308; - this.match(sqlParser.TBLPROPERTIES); - this.state = 309; - localctx.tableProps = this.tablePropertyList(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 314; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 319; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 85)) & ~0x1f) == 0 && ((1 << (_la - 85)) & ((1 << (sqlParser.WITH - 85)) | (1 << (sqlParser.VALUES - 85)) | (1 << (sqlParser.TABLE - 85)) | (1 << (sqlParser.INSERT - 85)))) !== 0) || _la===sqlParser.MAP || _la===sqlParser.REDUCE) { - this.state = 316; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.AS) { - this.state = 315; - this.match(sqlParser.AS); - } - - this.state = 318; - this.query(); - } - - break; - - case 7: - localctx = new CreateHiveTableContext(this, localctx); - this.enterOuterAlt(localctx, 7); - this.state = 321; - this.createTableHeader(); - this.state = 326; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,12,this._ctx); - if(la_===1) { - this.state = 322; - this.match(sqlParser.T__0); - this.state = 323; - localctx.columns = this.colTypeList(); - this.state = 324; - this.match(sqlParser.T__1); - - } - this.state = 345; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.ROW || _la===sqlParser.COMMENT || ((((_la - 193)) & ~0x1f) == 0 && ((1 << (_la - 193)) & ((1 << (sqlParser.TBLPROPERTIES - 193)) | (1 << (sqlParser.SKEWED - 193)) | (1 << (sqlParser.STORED - 193)) | (1 << (sqlParser.LOCATION - 193)) | (1 << (sqlParser.CLUSTERED - 193)) | (1 << (sqlParser.PARTITIONED - 193)))) !== 0)) { - this.state = 343; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.COMMENT: - this.state = 328; - this.match(sqlParser.COMMENT); - this.state = 329; - localctx.comment = this.match(sqlParser.STRING); - break; - case sqlParser.PARTITIONED: - this.state = 330; - this.match(sqlParser.PARTITIONED); - this.state = 331; - this.match(sqlParser.BY); - this.state = 332; - this.match(sqlParser.T__0); - this.state = 333; - localctx.partitionColumns = this.colTypeList(); - this.state = 334; - this.match(sqlParser.T__1); - break; - case sqlParser.CLUSTERED: - this.state = 336; - this.bucketSpec(); - break; - case sqlParser.SKEWED: - this.state = 337; - this.skewSpec(); - break; - case sqlParser.ROW: - this.state = 338; - this.rowFormat(); - break; - case sqlParser.STORED: - this.state = 339; - this.createFileFormat(); - break; - case sqlParser.LOCATION: - this.state = 340; - this.locationSpec(); - break; - case sqlParser.TBLPROPERTIES: - this.state = 341; - this.match(sqlParser.TBLPROPERTIES); - this.state = 342; - localctx.tableProps = this.tablePropertyList(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 347; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 352; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 85)) & ~0x1f) == 0 && ((1 << (_la - 85)) & ((1 << (sqlParser.WITH - 85)) | (1 << (sqlParser.VALUES - 85)) | (1 << (sqlParser.TABLE - 85)) | (1 << (sqlParser.INSERT - 85)))) !== 0) || _la===sqlParser.MAP || _la===sqlParser.REDUCE) { - this.state = 349; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.AS) { - this.state = 348; - this.match(sqlParser.AS); - } - - this.state = 351; - this.query(); - } - - break; - - case 8: - localctx = new CreateFlinkTableContext(this, localctx); - this.enterOuterAlt(localctx, 8); - this.state = 354; - this.match(sqlParser.CREATE); - this.state = 355; - this.match(sqlParser.TABLE); - this.state = 359; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,17,this._ctx); - if(la_===1) { - this.state = 356; - localctx.catcatalogName = this.identifier(); - this.state = 357; - this.match(sqlParser.T__2); - - } - this.state = 361; - this.tableIdentifier(); - this.state = 366; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.T__0) { - this.state = 362; - this.match(sqlParser.T__0); - this.state = 363; - localctx.columns = this.dtColTypeList(); - this.state = 364; - this.match(sqlParser.T__1); - } - - this.state = 370; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.COMMENT) { - this.state = 368; - this.match(sqlParser.COMMENT); - this.state = 369; - localctx.comment = this.match(sqlParser.STRING); - } - - this.state = 378; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITIONED) { - this.state = 372; - this.match(sqlParser.PARTITIONED); - this.state = 373; - this.match(sqlParser.BY); - this.state = 374; - this.match(sqlParser.T__0); - this.state = 375; - localctx.partitionColumnNames = this.identifierList(); - this.state = 376; - this.match(sqlParser.T__1); - } - - this.state = 380; - this.match(sqlParser.WITH); - this.state = 381; - this.tablePropertyList(); - break; - - case 9: - localctx = new CreateTableLikeContext(this, localctx); - this.enterOuterAlt(localctx, 9); - this.state = 383; - this.match(sqlParser.CREATE); - this.state = 384; - this.match(sqlParser.TABLE); - this.state = 388; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,21,this._ctx); - if(la_===1) { - this.state = 385; - this.match(sqlParser.IF); - this.state = 386; - this.match(sqlParser.NOT); - this.state = 387; - this.match(sqlParser.EXISTS); - - } - this.state = 390; - localctx.target = this.tableIdentifier(); - this.state = 391; - this.match(sqlParser.LIKE); - this.state = 392; - localctx.source = this.tableIdentifier(); - this.state = 394; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LOCATION) { - this.state = 393; - this.locationSpec(); - } - - break; - - case 10: - localctx = new AnalyzeContext(this, localctx); - this.enterOuterAlt(localctx, 10); - this.state = 396; - this.match(sqlParser.ANALYZE); - this.state = 397; - this.match(sqlParser.TABLE); - this.state = 398; - this.tableIdentifier(); - this.state = 400; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 399; - this.partitionSpec(); - } - - this.state = 402; - this.match(sqlParser.COMPUTE); - this.state = 403; - this.match(sqlParser.STATISTICS); - this.state = 411; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,24,this._ctx); - if(la_===1) { - this.state = 404; - this.identifier(); - - } else if(la_===2) { - this.state = 405; - this.match(sqlParser.FOR); - this.state = 406; - this.match(sqlParser.COLUMNS); - this.state = 407; - this.identifierSeq(); - - } else if(la_===3) { - this.state = 408; - this.match(sqlParser.FOR); - this.state = 409; - this.match(sqlParser.ALL); - this.state = 410; - this.match(sqlParser.COLUMNS); - - } - break; - - case 11: - localctx = new AddTableColumnsContext(this, localctx); - this.enterOuterAlt(localctx, 11); - this.state = 413; - this.match(sqlParser.ALTER); - this.state = 414; - this.match(sqlParser.TABLE); - this.state = 415; - this.tableIdentifier(); - this.state = 416; - this.match(sqlParser.ADD); - this.state = 417; - this.match(sqlParser.COLUMNS); - this.state = 418; - this.match(sqlParser.T__0); - this.state = 419; - localctx.columns = this.colTypeList(); - this.state = 420; - this.match(sqlParser.T__1); - break; - - case 12: - localctx = new RenameTableContext(this, localctx); - this.enterOuterAlt(localctx, 12); - this.state = 422; - this.match(sqlParser.ALTER); - this.state = 423; - _la = this._input.LA(1); - if(!(_la===sqlParser.TABLE || _la===sqlParser.VIEW)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 424; - localctx.from = this.tableIdentifier(); - this.state = 425; - this.match(sqlParser.RENAME); - this.state = 426; - this.match(sqlParser.TO); - this.state = 427; - localctx.to = this.tableIdentifier(); - break; - - case 13: - localctx = new SetTablePropertiesContext(this, localctx); - this.enterOuterAlt(localctx, 13); - this.state = 429; - this.match(sqlParser.ALTER); - this.state = 430; - _la = this._input.LA(1); - if(!(_la===sqlParser.TABLE || _la===sqlParser.VIEW)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 431; - this.tableIdentifier(); - this.state = 432; - this.match(sqlParser.SET); - this.state = 433; - this.match(sqlParser.TBLPROPERTIES); - this.state = 434; - this.tablePropertyList(); - break; - - case 14: - localctx = new UnsetTablePropertiesContext(this, localctx); - this.enterOuterAlt(localctx, 14); - this.state = 436; - this.match(sqlParser.ALTER); - this.state = 437; - _la = this._input.LA(1); - if(!(_la===sqlParser.TABLE || _la===sqlParser.VIEW)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 438; - this.tableIdentifier(); - this.state = 439; - this.match(sqlParser.UNSET); - this.state = 440; - this.match(sqlParser.TBLPROPERTIES); - this.state = 443; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.IF) { - this.state = 441; - this.match(sqlParser.IF); - this.state = 442; - this.match(sqlParser.EXISTS); - } - - this.state = 445; - this.tablePropertyList(); - break; - - case 15: - localctx = new ChangeColumnContext(this, localctx); - this.enterOuterAlt(localctx, 15); - this.state = 447; - this.match(sqlParser.ALTER); - this.state = 448; - this.match(sqlParser.TABLE); - this.state = 449; - this.tableIdentifier(); - this.state = 451; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 450; - this.partitionSpec(); - } - - this.state = 453; - this.match(sqlParser.CHANGE); - this.state = 455; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,27,this._ctx); - if(la_===1) { - this.state = 454; - this.match(sqlParser.COLUMN); - - } - this.state = 457; - this.identifier(); - this.state = 458; - this.colType(); - this.state = 460; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.FIRST || _la===sqlParser.AFTER) { - this.state = 459; - this.colPosition(); - } - - break; - - case 16: - localctx = new SetTableSerDeContext(this, localctx); - this.enterOuterAlt(localctx, 16); - this.state = 462; - this.match(sqlParser.ALTER); - this.state = 463; - this.match(sqlParser.TABLE); - this.state = 464; - this.tableIdentifier(); - this.state = 466; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 465; - this.partitionSpec(); - } - - this.state = 468; - this.match(sqlParser.SET); - this.state = 469; - this.match(sqlParser.SERDE); - this.state = 470; - this.match(sqlParser.STRING); - this.state = 474; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.WITH) { - this.state = 471; - this.match(sqlParser.WITH); - this.state = 472; - this.match(sqlParser.SERDEPROPERTIES); - this.state = 473; - this.tablePropertyList(); - } - - break; - - case 17: - localctx = new SetTableSerDeContext(this, localctx); - this.enterOuterAlt(localctx, 17); - this.state = 476; - this.match(sqlParser.ALTER); - this.state = 477; - this.match(sqlParser.TABLE); - this.state = 478; - this.tableIdentifier(); - this.state = 480; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 479; - this.partitionSpec(); - } - - this.state = 482; - this.match(sqlParser.SET); - this.state = 483; - this.match(sqlParser.SERDEPROPERTIES); - this.state = 484; - this.tablePropertyList(); - break; - - case 18: - localctx = new AddTablePartitionContext(this, localctx); - this.enterOuterAlt(localctx, 18); - this.state = 486; - this.match(sqlParser.ALTER); - this.state = 487; - this.match(sqlParser.TABLE); - this.state = 488; - this.tableIdentifier(); - this.state = 489; - this.match(sqlParser.ADD); - this.state = 493; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.IF) { - this.state = 490; - this.match(sqlParser.IF); - this.state = 491; - this.match(sqlParser.NOT); - this.state = 492; - this.match(sqlParser.EXISTS); - } - - this.state = 496; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 495; - this.partitionSpecLocation(); - this.state = 498; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===sqlParser.PARTITION); - break; - - case 19: - localctx = new AddTablePartitionContext(this, localctx); - this.enterOuterAlt(localctx, 19); - this.state = 500; - this.match(sqlParser.ALTER); - this.state = 501; - this.match(sqlParser.VIEW); - this.state = 502; - this.tableIdentifier(); - this.state = 503; - this.match(sqlParser.ADD); - this.state = 507; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.IF) { - this.state = 504; - this.match(sqlParser.IF); - this.state = 505; - this.match(sqlParser.NOT); - this.state = 506; - this.match(sqlParser.EXISTS); - } - - this.state = 510; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 509; - this.partitionSpec(); - this.state = 512; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===sqlParser.PARTITION); - break; - - case 20: - localctx = new RenameTablePartitionContext(this, localctx); - this.enterOuterAlt(localctx, 20); - this.state = 514; - this.match(sqlParser.ALTER); - this.state = 515; - this.match(sqlParser.TABLE); - this.state = 516; - this.tableIdentifier(); - this.state = 517; - localctx.from = this.partitionSpec(); - this.state = 518; - this.match(sqlParser.RENAME); - this.state = 519; - this.match(sqlParser.TO); - this.state = 520; - localctx.to = this.partitionSpec(); - break; - - case 21: - localctx = new DropTablePartitionsContext(this, localctx); - this.enterOuterAlt(localctx, 21); - this.state = 522; - this.match(sqlParser.ALTER); - this.state = 523; - this.match(sqlParser.TABLE); - this.state = 524; - this.tableIdentifier(); - this.state = 525; - this.match(sqlParser.DROP); - this.state = 528; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.IF) { - this.state = 526; - this.match(sqlParser.IF); - this.state = 527; - this.match(sqlParser.EXISTS); - } - - this.state = 530; - this.partitionSpec(); - this.state = 535; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 531; - this.match(sqlParser.T__3); - this.state = 532; - this.partitionSpec(); - this.state = 537; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 539; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PURGE) { - this.state = 538; - this.match(sqlParser.PURGE); - } - - break; - - case 22: - localctx = new DropTablePartitionsContext(this, localctx); - this.enterOuterAlt(localctx, 22); - this.state = 541; - this.match(sqlParser.ALTER); - this.state = 542; - this.match(sqlParser.VIEW); - this.state = 543; - this.tableIdentifier(); - this.state = 544; - this.match(sqlParser.DROP); - this.state = 547; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.IF) { - this.state = 545; - this.match(sqlParser.IF); - this.state = 546; - this.match(sqlParser.EXISTS); - } - - this.state = 549; - this.partitionSpec(); - this.state = 554; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 550; - this.match(sqlParser.T__3); - this.state = 551; - this.partitionSpec(); - this.state = 556; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - break; - - case 23: - localctx = new SetTableLocationContext(this, localctx); - this.enterOuterAlt(localctx, 23); - this.state = 557; - this.match(sqlParser.ALTER); - this.state = 558; - this.match(sqlParser.TABLE); - this.state = 559; - this.tableIdentifier(); - this.state = 561; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 560; - this.partitionSpec(); - } - - this.state = 563; - this.match(sqlParser.SET); - this.state = 564; - this.locationSpec(); - break; - - case 24: - localctx = new RecoverPartitionsContext(this, localctx); - this.enterOuterAlt(localctx, 24); - this.state = 566; - this.match(sqlParser.ALTER); - this.state = 567; - this.match(sqlParser.TABLE); - this.state = 568; - this.tableIdentifier(); - this.state = 569; - this.match(sqlParser.RECOVER); - this.state = 570; - this.match(sqlParser.PARTITIONS); - break; - - case 25: - localctx = new DropTableContext(this, localctx); - this.enterOuterAlt(localctx, 25); - this.state = 572; - this.match(sqlParser.DROP); - this.state = 573; - this.match(sqlParser.TABLE); - this.state = 576; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,42,this._ctx); - if(la_===1) { - this.state = 574; - this.match(sqlParser.IF); - this.state = 575; - this.match(sqlParser.EXISTS); - - } - this.state = 578; - this.tableIdentifier(); - this.state = 580; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PURGE) { - this.state = 579; - this.match(sqlParser.PURGE); - } - - break; - - case 26: - localctx = new DropTableContext(this, localctx); - this.enterOuterAlt(localctx, 26); - this.state = 582; - this.match(sqlParser.DROP); - this.state = 583; - this.match(sqlParser.VIEW); - this.state = 586; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,44,this._ctx); - if(la_===1) { - this.state = 584; - this.match(sqlParser.IF); - this.state = 585; - this.match(sqlParser.EXISTS); - - } - this.state = 588; - this.tableIdentifier(); - break; - - case 27: - localctx = new CreateViewContext(this, localctx); - this.enterOuterAlt(localctx, 27); - this.state = 589; - this.match(sqlParser.CREATE); - this.state = 592; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OR) { - this.state = 590; - this.match(sqlParser.OR); - this.state = 591; - this.match(sqlParser.REPLACE); - } - - this.state = 598; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.GLOBAL || _la===sqlParser.TEMPORARY) { - this.state = 595; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.GLOBAL) { - this.state = 594; - this.match(sqlParser.GLOBAL); - } - - this.state = 597; - this.match(sqlParser.TEMPORARY); - } - - this.state = 600; - this.match(sqlParser.VIEW); - this.state = 604; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,48,this._ctx); - if(la_===1) { - this.state = 601; - this.match(sqlParser.IF); - this.state = 602; - this.match(sqlParser.NOT); - this.state = 603; - this.match(sqlParser.EXISTS); - - } - this.state = 606; - this.tableIdentifier(); - this.state = 608; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.T__0) { - this.state = 607; - this.identifierCommentList(); - } - - this.state = 612; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.COMMENT) { - this.state = 610; - this.match(sqlParser.COMMENT); - this.state = 611; - this.match(sqlParser.STRING); - } - - this.state = 617; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITIONED) { - this.state = 614; - this.match(sqlParser.PARTITIONED); - this.state = 615; - this.match(sqlParser.ON); - this.state = 616; - this.identifierList(); - } - - this.state = 621; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.TBLPROPERTIES) { - this.state = 619; - this.match(sqlParser.TBLPROPERTIES); - this.state = 620; - this.tablePropertyList(); - } - - this.state = 623; - this.match(sqlParser.AS); - this.state = 624; - this.query(); - break; - - case 28: - localctx = new CreateTempViewUsingContext(this, localctx); - this.enterOuterAlt(localctx, 28); - this.state = 626; - this.match(sqlParser.CREATE); - this.state = 629; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OR) { - this.state = 627; - this.match(sqlParser.OR); - this.state = 628; - this.match(sqlParser.REPLACE); - } - - this.state = 632; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.GLOBAL) { - this.state = 631; - this.match(sqlParser.GLOBAL); - } - - this.state = 634; - this.match(sqlParser.TEMPORARY); - this.state = 635; - this.match(sqlParser.VIEW); - this.state = 636; - this.tableIdentifier(); - this.state = 641; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.T__0) { - this.state = 637; - this.match(sqlParser.T__0); - this.state = 638; - this.colTypeList(); - this.state = 639; - this.match(sqlParser.T__1); - } - - this.state = 643; - this.tableProvider(); - this.state = 646; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OPTIONS) { - this.state = 644; - this.match(sqlParser.OPTIONS); - this.state = 645; - this.tablePropertyList(); - } - - break; - - case 29: - localctx = new AlterViewQueryContext(this, localctx); - this.enterOuterAlt(localctx, 29); - this.state = 648; - this.match(sqlParser.ALTER); - this.state = 649; - this.match(sqlParser.VIEW); - this.state = 650; - this.tableIdentifier(); - this.state = 652; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.AS) { - this.state = 651; - this.match(sqlParser.AS); - } - - this.state = 654; - this.query(); - break; - - case 30: - localctx = new CreateFunctionContext(this, localctx); - this.enterOuterAlt(localctx, 30); - this.state = 656; - this.match(sqlParser.CREATE); - this.state = 659; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OR) { - this.state = 657; - this.match(sqlParser.OR); - this.state = 658; - this.match(sqlParser.REPLACE); - } - - this.state = 662; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.TEMPORARY) { - this.state = 661; - this.match(sqlParser.TEMPORARY); - } - - this.state = 664; - this.match(sqlParser.FUNCTION); - this.state = 668; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,60,this._ctx); - if(la_===1) { - this.state = 665; - this.match(sqlParser.IF); - this.state = 666; - this.match(sqlParser.NOT); - this.state = 667; - this.match(sqlParser.EXISTS); - - } - this.state = 670; - this.qualifiedName(); - this.state = 671; - this.match(sqlParser.AS); - this.state = 672; - localctx.className = this.match(sqlParser.STRING); - this.state = 682; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.USING) { - this.state = 673; - this.match(sqlParser.USING); - this.state = 674; - this.resource(); - this.state = 679; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 675; - this.match(sqlParser.T__3); - this.state = 676; - this.resource(); - this.state = 681; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - break; - - case 31: - localctx = new DropFunctionContext(this, localctx); - this.enterOuterAlt(localctx, 31); - this.state = 684; - this.match(sqlParser.DROP); - this.state = 686; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.TEMPORARY) { - this.state = 685; - this.match(sqlParser.TEMPORARY); - } - - this.state = 688; - this.match(sqlParser.FUNCTION); - this.state = 691; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,64,this._ctx); - if(la_===1) { - this.state = 689; - this.match(sqlParser.IF); - this.state = 690; - this.match(sqlParser.EXISTS); - - } - this.state = 693; - this.qualifiedName(); - break; - - case 32: - localctx = new ExplainContext(this, localctx); - this.enterOuterAlt(localctx, 32); - this.state = 694; - this.match(sqlParser.EXPLAIN); - this.state = 696; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(((((_la - 98)) & ~0x1f) == 0 && ((1 << (_la - 98)) & ((1 << (sqlParser.LOGICAL - 98)) | (1 << (sqlParser.CODEGEN - 98)) | (1 << (sqlParser.COST - 98)))) !== 0) || _la===sqlParser.EXTENDED || _la===sqlParser.FORMATTED) { - this.state = 695; - _la = this._input.LA(1); - if(!(((((_la - 98)) & ~0x1f) == 0 && ((1 << (_la - 98)) & ((1 << (sqlParser.LOGICAL - 98)) | (1 << (sqlParser.CODEGEN - 98)) | (1 << (sqlParser.COST - 98)))) !== 0) || _la===sqlParser.EXTENDED || _la===sqlParser.FORMATTED)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - - this.state = 698; - this.statement(); - break; - - case 33: - localctx = new ShowTablesContext(this, localctx); - this.enterOuterAlt(localctx, 33); - this.state = 699; - this.match(sqlParser.SHOW); - this.state = 700; - this.match(sqlParser.TABLES); - this.state = 703; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.FROM || _la===sqlParser.IN) { - this.state = 701; - _la = this._input.LA(1); - if(!(_la===sqlParser.FROM || _la===sqlParser.IN)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 702; - localctx.db = this.identifier(); - } - - this.state = 709; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LIKE || _la===sqlParser.STRING) { - this.state = 706; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LIKE) { - this.state = 705; - this.match(sqlParser.LIKE); - } - - this.state = 708; - localctx.pattern = this.match(sqlParser.STRING); - } - - break; - - case 34: - localctx = new ShowTableContext(this, localctx); - this.enterOuterAlt(localctx, 34); - this.state = 711; - this.match(sqlParser.SHOW); - this.state = 712; - this.match(sqlParser.TABLE); - this.state = 713; - this.match(sqlParser.EXTENDED); - this.state = 716; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.FROM || _la===sqlParser.IN) { - this.state = 714; - _la = this._input.LA(1); - if(!(_la===sqlParser.FROM || _la===sqlParser.IN)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 715; - localctx.db = this.identifier(); - } - - this.state = 718; - this.match(sqlParser.LIKE); - this.state = 719; - localctx.pattern = this.match(sqlParser.STRING); - this.state = 721; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 720; - this.partitionSpec(); - } - - break; - - case 35: - localctx = new ShowDatabasesContext(this, localctx); - this.enterOuterAlt(localctx, 35); - this.state = 723; - this.match(sqlParser.SHOW); - this.state = 724; - this.match(sqlParser.DATABASES); - this.state = 729; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LIKE || _la===sqlParser.STRING) { - this.state = 726; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LIKE) { - this.state = 725; - this.match(sqlParser.LIKE); - } - - this.state = 728; - localctx.pattern = this.match(sqlParser.STRING); - } - - break; - - case 36: - localctx = new ShowTblPropertiesContext(this, localctx); - this.enterOuterAlt(localctx, 36); - this.state = 731; - this.match(sqlParser.SHOW); - this.state = 732; - this.match(sqlParser.TBLPROPERTIES); - this.state = 733; - localctx.table = this.tableIdentifier(); - this.state = 738; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.T__0) { - this.state = 734; - this.match(sqlParser.T__0); - this.state = 735; - localctx.key = this.tablePropertyKey(); - this.state = 736; - this.match(sqlParser.T__1); - } - - break; - - case 37: - localctx = new ShowColumnsContext(this, localctx); - this.enterOuterAlt(localctx, 37); - this.state = 740; - this.match(sqlParser.SHOW); - this.state = 741; - this.match(sqlParser.COLUMNS); - this.state = 742; - _la = this._input.LA(1); - if(!(_la===sqlParser.FROM || _la===sqlParser.IN)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 743; - this.tableIdentifier(); - this.state = 746; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.FROM || _la===sqlParser.IN) { - this.state = 744; - _la = this._input.LA(1); - if(!(_la===sqlParser.FROM || _la===sqlParser.IN)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 745; - localctx.db = this.identifier(); - } - - break; - - case 38: - localctx = new ShowPartitionsContext(this, localctx); - this.enterOuterAlt(localctx, 38); - this.state = 748; - this.match(sqlParser.SHOW); - this.state = 749; - this.match(sqlParser.PARTITIONS); - this.state = 750; - this.tableIdentifier(); - this.state = 752; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 751; - this.partitionSpec(); - } - - break; - - case 39: - localctx = new ShowFunctionsContext(this, localctx); - this.enterOuterAlt(localctx, 39); - this.state = 754; - this.match(sqlParser.SHOW); - this.state = 756; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,76,this._ctx); - if(la_===1) { - this.state = 755; - this.identifier(); - - } - this.state = 758; - this.match(sqlParser.FUNCTIONS); - this.state = 766; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(((((_la - 19)) & ~0x1f) == 0 && ((1 << (_la - 19)) & ((1 << (sqlParser.SELECT - 19)) | (1 << (sqlParser.FROM - 19)) | (1 << (sqlParser.ADD - 19)) | (1 << (sqlParser.AS - 19)) | (1 << (sqlParser.ALL - 19)) | (1 << (sqlParser.ANY - 19)) | (1 << (sqlParser.DISTINCT - 19)) | (1 << (sqlParser.WHERE - 19)) | (1 << (sqlParser.GROUP - 19)) | (1 << (sqlParser.BY - 19)) | (1 << (sqlParser.GROUPING - 19)) | (1 << (sqlParser.SETS - 19)) | (1 << (sqlParser.CUBE - 19)) | (1 << (sqlParser.ROLLUP - 19)) | (1 << (sqlParser.ORDER - 19)) | (1 << (sqlParser.HAVING - 19)) | (1 << (sqlParser.LIMIT - 19)) | (1 << (sqlParser.AT - 19)) | (1 << (sqlParser.OR - 19)) | (1 << (sqlParser.AND - 19)) | (1 << (sqlParser.IN - 19)) | (1 << (sqlParser.NOT - 19)) | (1 << (sqlParser.NO - 19)) | (1 << (sqlParser.EXISTS - 19)) | (1 << (sqlParser.BETWEEN - 19)) | (1 << (sqlParser.LIKE - 19)) | (1 << (sqlParser.RLIKE - 19)) | (1 << (sqlParser.IS - 19)) | (1 << (sqlParser.NULL - 19)) | (1 << (sqlParser.TRUE - 19)) | (1 << (sqlParser.FALSE - 19)) | (1 << (sqlParser.NULLS - 19)))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (sqlParser.ASC - 51)) | (1 << (sqlParser.DESC - 51)) | (1 << (sqlParser.FOR - 51)) | (1 << (sqlParser.INTERVAL - 51)) | (1 << (sqlParser.CASE - 51)) | (1 << (sqlParser.WHEN - 51)) | (1 << (sqlParser.THEN - 51)) | (1 << (sqlParser.ELSE - 51)) | (1 << (sqlParser.END - 51)) | (1 << (sqlParser.JOIN - 51)) | (1 << (sqlParser.CROSS - 51)) | (1 << (sqlParser.OUTER - 51)) | (1 << (sqlParser.INNER - 51)) | (1 << (sqlParser.LEFT - 51)) | (1 << (sqlParser.SEMI - 51)) | (1 << (sqlParser.RIGHT - 51)) | (1 << (sqlParser.FULL - 51)) | (1 << (sqlParser.NATURAL - 51)) | (1 << (sqlParser.ON - 51)) | (1 << (sqlParser.PIVOT - 51)) | (1 << (sqlParser.LATERAL - 51)) | (1 << (sqlParser.WINDOW - 51)) | (1 << (sqlParser.OVER - 51)) | (1 << (sqlParser.PARTITION - 51)) | (1 << (sqlParser.RANGE - 51)) | (1 << (sqlParser.ROWS - 51)) | (1 << (sqlParser.UNBOUNDED - 51)) | (1 << (sqlParser.PRECEDING - 51)) | (1 << (sqlParser.FOLLOWING - 51)) | (1 << (sqlParser.CURRENT - 51)) | (1 << (sqlParser.FIRST - 51)) | (1 << (sqlParser.AFTER - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (sqlParser.LAST - 83)) | (1 << (sqlParser.ROW - 83)) | (1 << (sqlParser.WITH - 83)) | (1 << (sqlParser.CREATE - 83)) | (1 << (sqlParser.TABLE - 83)) | (1 << (sqlParser.DIRECTORY - 83)) | (1 << (sqlParser.VIEW - 83)) | (1 << (sqlParser.REPLACE - 83)) | (1 << (sqlParser.INSERT - 83)) | (1 << (sqlParser.DELETE - 83)) | (1 << (sqlParser.INTO - 83)) | (1 << (sqlParser.DESCRIBE - 83)) | (1 << (sqlParser.EXPLAIN - 83)) | (1 << (sqlParser.FORMAT - 83)) | (1 << (sqlParser.LOGICAL - 83)) | (1 << (sqlParser.CODEGEN - 83)) | (1 << (sqlParser.COST - 83)) | (1 << (sqlParser.CAST - 83)) | (1 << (sqlParser.SHOW - 83)) | (1 << (sqlParser.TABLES - 83)) | (1 << (sqlParser.COLUMNS - 83)) | (1 << (sqlParser.COLUMN - 83)) | (1 << (sqlParser.USE - 83)) | (1 << (sqlParser.PARTITIONS - 83)) | (1 << (sqlParser.FUNCTIONS - 83)) | (1 << (sqlParser.DROP - 83)) | (1 << (sqlParser.UNION - 83)) | (1 << (sqlParser.EXCEPT - 83)) | (1 << (sqlParser.SETMINUS - 83)) | (1 << (sqlParser.INTERSECT - 83)) | (1 << (sqlParser.TO - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (sqlParser.TABLESAMPLE - 115)) | (1 << (sqlParser.STRATIFY - 115)) | (1 << (sqlParser.ALTER - 115)) | (1 << (sqlParser.RENAME - 115)) | (1 << (sqlParser.ARRAY - 115)) | (1 << (sqlParser.MAP - 115)) | (1 << (sqlParser.STRUCT - 115)) | (1 << (sqlParser.COMMENT - 115)) | (1 << (sqlParser.SET - 115)) | (1 << (sqlParser.RESET - 115)) | (1 << (sqlParser.DATA - 115)) | (1 << (sqlParser.START - 115)) | (1 << (sqlParser.TRANSACTION - 115)) | (1 << (sqlParser.COMMIT - 115)) | (1 << (sqlParser.ROLLBACK - 115)) | (1 << (sqlParser.MACRO - 115)) | (1 << (sqlParser.IGNORE - 115)) | (1 << (sqlParser.BOTH - 115)) | (1 << (sqlParser.LEADING - 115)) | (1 << (sqlParser.TRAILING - 115)) | (1 << (sqlParser.IF - 115)) | (1 << (sqlParser.POSITION - 115)) | (1 << (sqlParser.EXTRACT - 115)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (sqlParser.DIV - 151)) | (1 << (sqlParser.PERCENTLIT - 151)) | (1 << (sqlParser.BUCKET - 151)) | (1 << (sqlParser.OUT - 151)) | (1 << (sqlParser.OF - 151)) | (1 << (sqlParser.SORT - 151)) | (1 << (sqlParser.CLUSTER - 151)) | (1 << (sqlParser.DISTRIBUTE - 151)) | (1 << (sqlParser.OVERWRITE - 151)) | (1 << (sqlParser.TRANSFORM - 151)) | (1 << (sqlParser.REDUCE - 151)) | (1 << (sqlParser.SERDE - 151)) | (1 << (sqlParser.SERDEPROPERTIES - 151)) | (1 << (sqlParser.RECORDREADER - 151)) | (1 << (sqlParser.RECORDWRITER - 151)) | (1 << (sqlParser.DELIMITED - 151)) | (1 << (sqlParser.FIELDS - 151)) | (1 << (sqlParser.TERMINATED - 151)) | (1 << (sqlParser.COLLECTION - 151)) | (1 << (sqlParser.ITEMS - 151)) | (1 << (sqlParser.KEYS - 151)) | (1 << (sqlParser.ESCAPED - 151)) | (1 << (sqlParser.LINES - 151)) | (1 << (sqlParser.SEPARATED - 151)) | (1 << (sqlParser.FUNCTION - 151)) | (1 << (sqlParser.EXTENDED - 151)))) !== 0) || ((((_la - 183)) & ~0x1f) == 0 && ((1 << (_la - 183)) & ((1 << (sqlParser.REFRESH - 183)) | (1 << (sqlParser.CLEAR - 183)) | (1 << (sqlParser.CACHE - 183)) | (1 << (sqlParser.UNCACHE - 183)) | (1 << (sqlParser.LAZY - 183)) | (1 << (sqlParser.FORMATTED - 183)) | (1 << (sqlParser.GLOBAL - 183)) | (1 << (sqlParser.TEMPORARY - 183)) | (1 << (sqlParser.OPTIONS - 183)) | (1 << (sqlParser.UNSET - 183)) | (1 << (sqlParser.TBLPROPERTIES - 183)) | (1 << (sqlParser.DBPROPERTIES - 183)) | (1 << (sqlParser.BUCKETS - 183)) | (1 << (sqlParser.SKEWED - 183)) | (1 << (sqlParser.STORED - 183)) | (1 << (sqlParser.DIRECTORIES - 183)) | (1 << (sqlParser.LOCATION - 183)) | (1 << (sqlParser.EXCHANGE - 183)) | (1 << (sqlParser.ARCHIVE - 183)) | (1 << (sqlParser.UNARCHIVE - 183)) | (1 << (sqlParser.FILEFORMAT - 183)) | (1 << (sqlParser.TOUCH - 183)) | (1 << (sqlParser.COMPACT - 183)) | (1 << (sqlParser.CONCATENATE - 183)) | (1 << (sqlParser.CHANGE - 183)) | (1 << (sqlParser.CASCADE - 183)) | (1 << (sqlParser.RESTRICT - 183)) | (1 << (sqlParser.CLUSTERED - 183)) | (1 << (sqlParser.SORTED - 183)) | (1 << (sqlParser.PURGE - 183)) | (1 << (sqlParser.INPUTFORMAT - 183)) | (1 << (sqlParser.OUTPUTFORMAT - 183)))) !== 0) || ((((_la - 215)) & ~0x1f) == 0 && ((1 << (_la - 215)) & ((1 << (sqlParser.DATABASE - 215)) | (1 << (sqlParser.DATABASES - 215)) | (1 << (sqlParser.DFS - 215)) | (1 << (sqlParser.TRUNCATE - 215)) | (1 << (sqlParser.ANALYZE - 215)) | (1 << (sqlParser.COMPUTE - 215)) | (1 << (sqlParser.LIST - 215)) | (1 << (sqlParser.STATISTICS - 215)) | (1 << (sqlParser.PARTITIONED - 215)) | (1 << (sqlParser.EXTERNAL - 215)) | (1 << (sqlParser.DEFINED - 215)) | (1 << (sqlParser.REVOKE - 215)) | (1 << (sqlParser.GRANT - 215)) | (1 << (sqlParser.LOCK - 215)) | (1 << (sqlParser.UNLOCK - 215)) | (1 << (sqlParser.MSCK - 215)) | (1 << (sqlParser.REPAIR - 215)) | (1 << (sqlParser.RECOVER - 215)) | (1 << (sqlParser.EXPORT - 215)) | (1 << (sqlParser.IMPORT - 215)) | (1 << (sqlParser.LOAD - 215)) | (1 << (sqlParser.ROLE - 215)) | (1 << (sqlParser.ROLES - 215)) | (1 << (sqlParser.COMPACTIONS - 215)) | (1 << (sqlParser.PRINCIPALS - 215)) | (1 << (sqlParser.TRANSACTIONS - 215)) | (1 << (sqlParser.INDEX - 215)) | (1 << (sqlParser.INDEXES - 215)) | (1 << (sqlParser.LOCKS - 215)) | (1 << (sqlParser.OPTION - 215)) | (1 << (sqlParser.ANTI - 215)) | (1 << (sqlParser.LOCAL - 215)))) !== 0) || ((((_la - 247)) & ~0x1f) == 0 && ((1 << (_la - 247)) & ((1 << (sqlParser.INPATH - 247)) | (1 << (sqlParser.STRING - 247)) | (1 << (sqlParser.IDENTIFIER - 247)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 247)))) !== 0)) { - this.state = 760; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,77,this._ctx); - if(la_===1) { - this.state = 759; - this.match(sqlParser.LIKE); - - } - this.state = 764; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.AS: - case sqlParser.ALL: - case sqlParser.ANY: - case sqlParser.DISTINCT: - case sqlParser.WHERE: - case sqlParser.GROUP: - case sqlParser.BY: - case sqlParser.GROUPING: - case sqlParser.SETS: - case sqlParser.CUBE: - case sqlParser.ROLLUP: - case sqlParser.ORDER: - case sqlParser.HAVING: - case sqlParser.LIMIT: - case sqlParser.AT: - case sqlParser.OR: - case sqlParser.AND: - case sqlParser.IN: - case sqlParser.NOT: - case sqlParser.NO: - case sqlParser.EXISTS: - case sqlParser.BETWEEN: - case sqlParser.LIKE: - case sqlParser.RLIKE: - case sqlParser.IS: - case sqlParser.NULL: - case sqlParser.TRUE: - case sqlParser.FALSE: - case sqlParser.NULLS: - case sqlParser.ASC: - case sqlParser.DESC: - case sqlParser.FOR: - case sqlParser.INTERVAL: - case sqlParser.CASE: - case sqlParser.WHEN: - case sqlParser.THEN: - case sqlParser.ELSE: - case sqlParser.END: - case sqlParser.JOIN: - case sqlParser.CROSS: - case sqlParser.OUTER: - case sqlParser.INNER: - case sqlParser.LEFT: - case sqlParser.SEMI: - case sqlParser.RIGHT: - case sqlParser.FULL: - case sqlParser.NATURAL: - case sqlParser.ON: - case sqlParser.PIVOT: - case sqlParser.LATERAL: - case sqlParser.WINDOW: - case sqlParser.OVER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.UNBOUNDED: - case sqlParser.PRECEDING: - case sqlParser.FOLLOWING: - case sqlParser.CURRENT: - case sqlParser.FIRST: - case sqlParser.AFTER: - case sqlParser.LAST: - case sqlParser.ROW: - case sqlParser.WITH: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.DIRECTORY: - case sqlParser.VIEW: - case sqlParser.REPLACE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.INTO: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.FORMAT: - case sqlParser.LOGICAL: - case sqlParser.CODEGEN: - case sqlParser.COST: - case sqlParser.CAST: - case sqlParser.SHOW: - case sqlParser.TABLES: - case sqlParser.COLUMNS: - case sqlParser.COLUMN: - case sqlParser.USE: - case sqlParser.PARTITIONS: - case sqlParser.FUNCTIONS: - case sqlParser.DROP: - case sqlParser.UNION: - case sqlParser.EXCEPT: - case sqlParser.SETMINUS: - case sqlParser.INTERSECT: - case sqlParser.TO: - case sqlParser.TABLESAMPLE: - case sqlParser.STRATIFY: - case sqlParser.ALTER: - case sqlParser.RENAME: - case sqlParser.ARRAY: - case sqlParser.MAP: - case sqlParser.STRUCT: - case sqlParser.COMMENT: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.DATA: - case sqlParser.START: - case sqlParser.TRANSACTION: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.MACRO: - case sqlParser.IGNORE: - case sqlParser.BOTH: - case sqlParser.LEADING: - case sqlParser.TRAILING: - case sqlParser.IF: - case sqlParser.POSITION: - case sqlParser.EXTRACT: - case sqlParser.DIV: - case sqlParser.PERCENTLIT: - case sqlParser.BUCKET: - case sqlParser.OUT: - case sqlParser.OF: - case sqlParser.SORT: - case sqlParser.CLUSTER: - case sqlParser.DISTRIBUTE: - case sqlParser.OVERWRITE: - case sqlParser.TRANSFORM: - case sqlParser.REDUCE: - case sqlParser.SERDE: - case sqlParser.SERDEPROPERTIES: - case sqlParser.RECORDREADER: - case sqlParser.RECORDWRITER: - case sqlParser.DELIMITED: - case sqlParser.FIELDS: - case sqlParser.TERMINATED: - case sqlParser.COLLECTION: - case sqlParser.ITEMS: - case sqlParser.KEYS: - case sqlParser.ESCAPED: - case sqlParser.LINES: - case sqlParser.SEPARATED: - case sqlParser.FUNCTION: - case sqlParser.EXTENDED: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.LAZY: - case sqlParser.FORMATTED: - case sqlParser.GLOBAL: - case sqlParser.TEMPORARY: - case sqlParser.OPTIONS: - case sqlParser.UNSET: - case sqlParser.TBLPROPERTIES: - case sqlParser.DBPROPERTIES: - case sqlParser.BUCKETS: - case sqlParser.SKEWED: - case sqlParser.STORED: - case sqlParser.DIRECTORIES: - case sqlParser.LOCATION: - case sqlParser.EXCHANGE: - case sqlParser.ARCHIVE: - case sqlParser.UNARCHIVE: - case sqlParser.FILEFORMAT: - case sqlParser.TOUCH: - case sqlParser.COMPACT: - case sqlParser.CONCATENATE: - case sqlParser.CHANGE: - case sqlParser.CASCADE: - case sqlParser.RESTRICT: - case sqlParser.CLUSTERED: - case sqlParser.SORTED: - case sqlParser.PURGE: - case sqlParser.INPUTFORMAT: - case sqlParser.OUTPUTFORMAT: - case sqlParser.DATABASE: - case sqlParser.DATABASES: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.COMPUTE: - case sqlParser.LIST: - case sqlParser.STATISTICS: - case sqlParser.PARTITIONED: - case sqlParser.EXTERNAL: - case sqlParser.DEFINED: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.REPAIR: - case sqlParser.RECOVER: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - case sqlParser.ROLE: - case sqlParser.ROLES: - case sqlParser.COMPACTIONS: - case sqlParser.PRINCIPALS: - case sqlParser.TRANSACTIONS: - case sqlParser.INDEX: - case sqlParser.INDEXES: - case sqlParser.LOCKS: - case sqlParser.OPTION: - case sqlParser.ANTI: - case sqlParser.LOCAL: - case sqlParser.INPATH: - case sqlParser.IDENTIFIER: - case sqlParser.BACKQUOTED_IDENTIFIER: - this.state = 762; - this.qualifiedName(); - break; - case sqlParser.STRING: - this.state = 763; - localctx.pattern = this.match(sqlParser.STRING); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } - - break; - - case 40: - localctx = new ShowCreateTableContext(this, localctx); - this.enterOuterAlt(localctx, 40); - this.state = 768; - this.match(sqlParser.SHOW); - this.state = 769; - this.match(sqlParser.CREATE); - this.state = 770; - this.match(sqlParser.TABLE); - this.state = 771; - this.tableIdentifier(); - break; - - case 41: - localctx = new DescribeFunctionContext(this, localctx); - this.enterOuterAlt(localctx, 41); - this.state = 772; - _la = this._input.LA(1); - if(!(_la===sqlParser.DESC || _la===sqlParser.DESCRIBE)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 773; - this.match(sqlParser.FUNCTION); - this.state = 775; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,80,this._ctx); - if(la_===1) { - this.state = 774; - this.match(sqlParser.EXTENDED); - - } - this.state = 777; - this.describeFuncName(); - break; - - case 42: - localctx = new DescribeDatabaseContext(this, localctx); - this.enterOuterAlt(localctx, 42); - this.state = 778; - _la = this._input.LA(1); - if(!(_la===sqlParser.DESC || _la===sqlParser.DESCRIBE)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 779; - this.match(sqlParser.DATABASE); - this.state = 781; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,81,this._ctx); - if(la_===1) { - this.state = 780; - this.match(sqlParser.EXTENDED); - - } - this.state = 783; - this.identifier(); - break; - - case 43: - localctx = new DescribeTableContext(this, localctx); - this.enterOuterAlt(localctx, 43); - this.state = 784; - _la = this._input.LA(1); - if(!(_la===sqlParser.DESC || _la===sqlParser.DESCRIBE)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 786; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,82,this._ctx); - if(la_===1) { - this.state = 785; - this.match(sqlParser.TABLE); - - } - this.state = 789; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,83,this._ctx); - if(la_===1) { - this.state = 788; - localctx.option = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.EXTENDED || _la===sqlParser.FORMATTED)) { - localctx.option = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - - } - this.state = 791; - this.tableIdentifier(); - this.state = 793; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,84,this._ctx); - if(la_===1) { - this.state = 792; - this.partitionSpec(); - - } - this.state = 796; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(((((_la - 19)) & ~0x1f) == 0 && ((1 << (_la - 19)) & ((1 << (sqlParser.SELECT - 19)) | (1 << (sqlParser.FROM - 19)) | (1 << (sqlParser.ADD - 19)) | (1 << (sqlParser.AS - 19)) | (1 << (sqlParser.ALL - 19)) | (1 << (sqlParser.ANY - 19)) | (1 << (sqlParser.DISTINCT - 19)) | (1 << (sqlParser.WHERE - 19)) | (1 << (sqlParser.GROUP - 19)) | (1 << (sqlParser.BY - 19)) | (1 << (sqlParser.GROUPING - 19)) | (1 << (sqlParser.SETS - 19)) | (1 << (sqlParser.CUBE - 19)) | (1 << (sqlParser.ROLLUP - 19)) | (1 << (sqlParser.ORDER - 19)) | (1 << (sqlParser.HAVING - 19)) | (1 << (sqlParser.LIMIT - 19)) | (1 << (sqlParser.AT - 19)) | (1 << (sqlParser.OR - 19)) | (1 << (sqlParser.AND - 19)) | (1 << (sqlParser.IN - 19)) | (1 << (sqlParser.NOT - 19)) | (1 << (sqlParser.NO - 19)) | (1 << (sqlParser.EXISTS - 19)) | (1 << (sqlParser.BETWEEN - 19)) | (1 << (sqlParser.LIKE - 19)) | (1 << (sqlParser.RLIKE - 19)) | (1 << (sqlParser.IS - 19)) | (1 << (sqlParser.NULL - 19)) | (1 << (sqlParser.TRUE - 19)) | (1 << (sqlParser.FALSE - 19)) | (1 << (sqlParser.NULLS - 19)))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (sqlParser.ASC - 51)) | (1 << (sqlParser.DESC - 51)) | (1 << (sqlParser.FOR - 51)) | (1 << (sqlParser.INTERVAL - 51)) | (1 << (sqlParser.CASE - 51)) | (1 << (sqlParser.WHEN - 51)) | (1 << (sqlParser.THEN - 51)) | (1 << (sqlParser.ELSE - 51)) | (1 << (sqlParser.END - 51)) | (1 << (sqlParser.JOIN - 51)) | (1 << (sqlParser.CROSS - 51)) | (1 << (sqlParser.OUTER - 51)) | (1 << (sqlParser.INNER - 51)) | (1 << (sqlParser.LEFT - 51)) | (1 << (sqlParser.SEMI - 51)) | (1 << (sqlParser.RIGHT - 51)) | (1 << (sqlParser.FULL - 51)) | (1 << (sqlParser.NATURAL - 51)) | (1 << (sqlParser.ON - 51)) | (1 << (sqlParser.PIVOT - 51)) | (1 << (sqlParser.LATERAL - 51)) | (1 << (sqlParser.WINDOW - 51)) | (1 << (sqlParser.OVER - 51)) | (1 << (sqlParser.PARTITION - 51)) | (1 << (sqlParser.RANGE - 51)) | (1 << (sqlParser.ROWS - 51)) | (1 << (sqlParser.UNBOUNDED - 51)) | (1 << (sqlParser.PRECEDING - 51)) | (1 << (sqlParser.FOLLOWING - 51)) | (1 << (sqlParser.CURRENT - 51)) | (1 << (sqlParser.FIRST - 51)) | (1 << (sqlParser.AFTER - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (sqlParser.LAST - 83)) | (1 << (sqlParser.ROW - 83)) | (1 << (sqlParser.WITH - 83)) | (1 << (sqlParser.CREATE - 83)) | (1 << (sqlParser.TABLE - 83)) | (1 << (sqlParser.DIRECTORY - 83)) | (1 << (sqlParser.VIEW - 83)) | (1 << (sqlParser.REPLACE - 83)) | (1 << (sqlParser.INSERT - 83)) | (1 << (sqlParser.DELETE - 83)) | (1 << (sqlParser.INTO - 83)) | (1 << (sqlParser.DESCRIBE - 83)) | (1 << (sqlParser.EXPLAIN - 83)) | (1 << (sqlParser.FORMAT - 83)) | (1 << (sqlParser.LOGICAL - 83)) | (1 << (sqlParser.CODEGEN - 83)) | (1 << (sqlParser.COST - 83)) | (1 << (sqlParser.CAST - 83)) | (1 << (sqlParser.SHOW - 83)) | (1 << (sqlParser.TABLES - 83)) | (1 << (sqlParser.COLUMNS - 83)) | (1 << (sqlParser.COLUMN - 83)) | (1 << (sqlParser.USE - 83)) | (1 << (sqlParser.PARTITIONS - 83)) | (1 << (sqlParser.FUNCTIONS - 83)) | (1 << (sqlParser.DROP - 83)) | (1 << (sqlParser.UNION - 83)) | (1 << (sqlParser.EXCEPT - 83)) | (1 << (sqlParser.SETMINUS - 83)) | (1 << (sqlParser.INTERSECT - 83)) | (1 << (sqlParser.TO - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (sqlParser.TABLESAMPLE - 115)) | (1 << (sqlParser.STRATIFY - 115)) | (1 << (sqlParser.ALTER - 115)) | (1 << (sqlParser.RENAME - 115)) | (1 << (sqlParser.ARRAY - 115)) | (1 << (sqlParser.MAP - 115)) | (1 << (sqlParser.STRUCT - 115)) | (1 << (sqlParser.COMMENT - 115)) | (1 << (sqlParser.SET - 115)) | (1 << (sqlParser.RESET - 115)) | (1 << (sqlParser.DATA - 115)) | (1 << (sqlParser.START - 115)) | (1 << (sqlParser.TRANSACTION - 115)) | (1 << (sqlParser.COMMIT - 115)) | (1 << (sqlParser.ROLLBACK - 115)) | (1 << (sqlParser.MACRO - 115)) | (1 << (sqlParser.IGNORE - 115)) | (1 << (sqlParser.BOTH - 115)) | (1 << (sqlParser.LEADING - 115)) | (1 << (sqlParser.TRAILING - 115)) | (1 << (sqlParser.IF - 115)) | (1 << (sqlParser.POSITION - 115)) | (1 << (sqlParser.EXTRACT - 115)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (sqlParser.DIV - 151)) | (1 << (sqlParser.PERCENTLIT - 151)) | (1 << (sqlParser.BUCKET - 151)) | (1 << (sqlParser.OUT - 151)) | (1 << (sqlParser.OF - 151)) | (1 << (sqlParser.SORT - 151)) | (1 << (sqlParser.CLUSTER - 151)) | (1 << (sqlParser.DISTRIBUTE - 151)) | (1 << (sqlParser.OVERWRITE - 151)) | (1 << (sqlParser.TRANSFORM - 151)) | (1 << (sqlParser.REDUCE - 151)) | (1 << (sqlParser.SERDE - 151)) | (1 << (sqlParser.SERDEPROPERTIES - 151)) | (1 << (sqlParser.RECORDREADER - 151)) | (1 << (sqlParser.RECORDWRITER - 151)) | (1 << (sqlParser.DELIMITED - 151)) | (1 << (sqlParser.FIELDS - 151)) | (1 << (sqlParser.TERMINATED - 151)) | (1 << (sqlParser.COLLECTION - 151)) | (1 << (sqlParser.ITEMS - 151)) | (1 << (sqlParser.KEYS - 151)) | (1 << (sqlParser.ESCAPED - 151)) | (1 << (sqlParser.LINES - 151)) | (1 << (sqlParser.SEPARATED - 151)) | (1 << (sqlParser.FUNCTION - 151)) | (1 << (sqlParser.EXTENDED - 151)))) !== 0) || ((((_la - 183)) & ~0x1f) == 0 && ((1 << (_la - 183)) & ((1 << (sqlParser.REFRESH - 183)) | (1 << (sqlParser.CLEAR - 183)) | (1 << (sqlParser.CACHE - 183)) | (1 << (sqlParser.UNCACHE - 183)) | (1 << (sqlParser.LAZY - 183)) | (1 << (sqlParser.FORMATTED - 183)) | (1 << (sqlParser.GLOBAL - 183)) | (1 << (sqlParser.TEMPORARY - 183)) | (1 << (sqlParser.OPTIONS - 183)) | (1 << (sqlParser.UNSET - 183)) | (1 << (sqlParser.TBLPROPERTIES - 183)) | (1 << (sqlParser.DBPROPERTIES - 183)) | (1 << (sqlParser.BUCKETS - 183)) | (1 << (sqlParser.SKEWED - 183)) | (1 << (sqlParser.STORED - 183)) | (1 << (sqlParser.DIRECTORIES - 183)) | (1 << (sqlParser.LOCATION - 183)) | (1 << (sqlParser.EXCHANGE - 183)) | (1 << (sqlParser.ARCHIVE - 183)) | (1 << (sqlParser.UNARCHIVE - 183)) | (1 << (sqlParser.FILEFORMAT - 183)) | (1 << (sqlParser.TOUCH - 183)) | (1 << (sqlParser.COMPACT - 183)) | (1 << (sqlParser.CONCATENATE - 183)) | (1 << (sqlParser.CHANGE - 183)) | (1 << (sqlParser.CASCADE - 183)) | (1 << (sqlParser.RESTRICT - 183)) | (1 << (sqlParser.CLUSTERED - 183)) | (1 << (sqlParser.SORTED - 183)) | (1 << (sqlParser.PURGE - 183)) | (1 << (sqlParser.INPUTFORMAT - 183)) | (1 << (sqlParser.OUTPUTFORMAT - 183)))) !== 0) || ((((_la - 215)) & ~0x1f) == 0 && ((1 << (_la - 215)) & ((1 << (sqlParser.DATABASE - 215)) | (1 << (sqlParser.DATABASES - 215)) | (1 << (sqlParser.DFS - 215)) | (1 << (sqlParser.TRUNCATE - 215)) | (1 << (sqlParser.ANALYZE - 215)) | (1 << (sqlParser.COMPUTE - 215)) | (1 << (sqlParser.LIST - 215)) | (1 << (sqlParser.STATISTICS - 215)) | (1 << (sqlParser.PARTITIONED - 215)) | (1 << (sqlParser.EXTERNAL - 215)) | (1 << (sqlParser.DEFINED - 215)) | (1 << (sqlParser.REVOKE - 215)) | (1 << (sqlParser.GRANT - 215)) | (1 << (sqlParser.LOCK - 215)) | (1 << (sqlParser.UNLOCK - 215)) | (1 << (sqlParser.MSCK - 215)) | (1 << (sqlParser.REPAIR - 215)) | (1 << (sqlParser.RECOVER - 215)) | (1 << (sqlParser.EXPORT - 215)) | (1 << (sqlParser.IMPORT - 215)) | (1 << (sqlParser.LOAD - 215)) | (1 << (sqlParser.ROLE - 215)) | (1 << (sqlParser.ROLES - 215)) | (1 << (sqlParser.COMPACTIONS - 215)) | (1 << (sqlParser.PRINCIPALS - 215)) | (1 << (sqlParser.TRANSACTIONS - 215)) | (1 << (sqlParser.INDEX - 215)) | (1 << (sqlParser.INDEXES - 215)) | (1 << (sqlParser.LOCKS - 215)) | (1 << (sqlParser.OPTION - 215)) | (1 << (sqlParser.ANTI - 215)) | (1 << (sqlParser.LOCAL - 215)))) !== 0) || ((((_la - 247)) & ~0x1f) == 0 && ((1 << (_la - 247)) & ((1 << (sqlParser.INPATH - 247)) | (1 << (sqlParser.IDENTIFIER - 247)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 247)))) !== 0)) { - this.state = 795; - this.describeColName(); - } - - break; - - case 44: - localctx = new RefreshTableContext(this, localctx); - this.enterOuterAlt(localctx, 44); - this.state = 798; - this.match(sqlParser.REFRESH); - this.state = 799; - this.match(sqlParser.TABLE); - this.state = 800; - this.tableIdentifier(); - break; - - case 45: - localctx = new RefreshResourceContext(this, localctx); - this.enterOuterAlt(localctx, 45); - this.state = 801; - this.match(sqlParser.REFRESH); - this.state = 809; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,87,this._ctx); - switch(la_) { - case 1: - this.state = 802; - this.match(sqlParser.STRING); - break; - - case 2: - this.state = 806; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,86,this._ctx) - while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1+1) { - this.state = 803; - this.matchWildcard(); - } - this.state = 808; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,86,this._ctx); - } - - break; - - } - break; - - case 46: - localctx = new CacheTableContext(this, localctx); - this.enterOuterAlt(localctx, 46); - this.state = 811; - this.match(sqlParser.CACHE); - this.state = 813; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LAZY) { - this.state = 812; - this.match(sqlParser.LAZY); - } - - this.state = 815; - this.match(sqlParser.TABLE); - this.state = 816; - this.tableIdentifier(); - this.state = 819; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OPTIONS) { - this.state = 817; - this.match(sqlParser.OPTIONS); - this.state = 818; - localctx.options = this.tablePropertyList(); - } - - this.state = 825; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.AS))) !== 0) || ((((_la - 85)) & ~0x1f) == 0 && ((1 << (_la - 85)) & ((1 << (sqlParser.WITH - 85)) | (1 << (sqlParser.VALUES - 85)) | (1 << (sqlParser.TABLE - 85)) | (1 << (sqlParser.INSERT - 85)))) !== 0) || _la===sqlParser.MAP || _la===sqlParser.REDUCE) { - this.state = 822; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.AS) { - this.state = 821; - this.match(sqlParser.AS); - } - - this.state = 824; - this.query(); - } - - break; - - case 47: - localctx = new UncacheTableContext(this, localctx); - this.enterOuterAlt(localctx, 47); - this.state = 827; - this.match(sqlParser.UNCACHE); - this.state = 828; - this.match(sqlParser.TABLE); - this.state = 831; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,92,this._ctx); - if(la_===1) { - this.state = 829; - this.match(sqlParser.IF); - this.state = 830; - this.match(sqlParser.EXISTS); - - } - this.state = 833; - this.tableIdentifier(); - break; - - case 48: - localctx = new ClearCacheContext(this, localctx); - this.enterOuterAlt(localctx, 48); - this.state = 834; - this.match(sqlParser.CLEAR); - this.state = 835; - this.match(sqlParser.CACHE); - break; - - case 49: - localctx = new LoadDataContext(this, localctx); - this.enterOuterAlt(localctx, 49); - this.state = 836; - this.match(sqlParser.LOAD); - this.state = 837; - this.match(sqlParser.DATA); - this.state = 839; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LOCAL) { - this.state = 838; - this.match(sqlParser.LOCAL); - } - - this.state = 841; - this.match(sqlParser.INPATH); - this.state = 842; - localctx.path = this.match(sqlParser.STRING); - this.state = 844; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OVERWRITE) { - this.state = 843; - this.match(sqlParser.OVERWRITE); - } - - this.state = 846; - this.match(sqlParser.INTO); - this.state = 847; - this.match(sqlParser.TABLE); - this.state = 848; - this.tableIdentifier(); - this.state = 850; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 849; - this.partitionSpec(); - } - - break; - - case 50: - localctx = new TruncateTableContext(this, localctx); - this.enterOuterAlt(localctx, 50); - this.state = 852; - this.match(sqlParser.TRUNCATE); - this.state = 853; - this.match(sqlParser.TABLE); - this.state = 854; - this.tableIdentifier(); - this.state = 856; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 855; - this.partitionSpec(); - } - - break; - - case 51: - localctx = new RepairTableContext(this, localctx); - this.enterOuterAlt(localctx, 51); - this.state = 858; - this.match(sqlParser.MSCK); - this.state = 859; - this.match(sqlParser.REPAIR); - this.state = 860; - this.match(sqlParser.TABLE); - this.state = 861; - this.tableIdentifier(); - break; - - case 52: - localctx = new ManageResourceContext(this, localctx); - this.enterOuterAlt(localctx, 52); - this.state = 862; - localctx.op = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.ADD || _la===sqlParser.LIST)) { - localctx.op = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 863; - this.identifier(); - this.state = 867; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,97,this._ctx) - while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1+1) { - this.state = 864; - this.matchWildcard(); - } - this.state = 869; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,97,this._ctx); - } - - break; - - case 53: - localctx = new FailNativeCommandContext(this, localctx); - this.enterOuterAlt(localctx, 53); - this.state = 870; - this.match(sqlParser.SET); - this.state = 871; - this.match(sqlParser.ROLE); - this.state = 875; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,98,this._ctx) - while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1+1) { - this.state = 872; - this.matchWildcard(); - } - this.state = 877; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,98,this._ctx); - } - - break; - - case 54: - localctx = new SetConfigurationContext(this, localctx); - this.enterOuterAlt(localctx, 54); - this.state = 878; - this.match(sqlParser.SET); - this.state = 882; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,99,this._ctx) - while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1+1) { - this.state = 879; - this.matchWildcard(); - } - this.state = 884; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,99,this._ctx); - } - - break; - - case 55: - localctx = new ResetConfigurationContext(this, localctx); - this.enterOuterAlt(localctx, 55); - this.state = 885; - this.match(sqlParser.RESET); - break; - - case 56: - localctx = new FailNativeCommandContext(this, localctx); - this.enterOuterAlt(localctx, 56); - this.state = 886; - this.unsupportedHiveNativeCommands(); - this.state = 890; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,100,this._ctx) - while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1+1) { - this.state = 887; - this.matchWildcard(); - } - this.state = 892; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,100,this._ctx); - } - - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function UnsupportedHiveNativeCommandsContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_unsupportedHiveNativeCommands; - this.kw1 = null; // Token - this.kw2 = null; // Token - this.kw3 = null; // Token - this.kw4 = null; // Token - this.kw5 = null; // Token - this.kw6 = null; // Token - return this; -} - -UnsupportedHiveNativeCommandsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -UnsupportedHiveNativeCommandsContext.prototype.constructor = UnsupportedHiveNativeCommandsContext; - -UnsupportedHiveNativeCommandsContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.ROLE = function() { - return this.getToken(sqlParser.ROLE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.DROP = function() { - return this.getToken(sqlParser.DROP, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.GRANT = function() { - return this.getToken(sqlParser.GRANT, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.REVOKE = function() { - return this.getToken(sqlParser.REVOKE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.PRINCIPALS = function() { - return this.getToken(sqlParser.PRINCIPALS, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.ROLES = function() { - return this.getToken(sqlParser.ROLES, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.CURRENT = function() { - return this.getToken(sqlParser.CURRENT, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.EXPORT = function() { - return this.getToken(sqlParser.EXPORT, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.IMPORT = function() { - return this.getToken(sqlParser.IMPORT, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.COMPACTIONS = function() { - return this.getToken(sqlParser.COMPACTIONS, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.TRANSACTIONS = function() { - return this.getToken(sqlParser.TRANSACTIONS, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.INDEXES = function() { - return this.getToken(sqlParser.INDEXES, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.LOCKS = function() { - return this.getToken(sqlParser.LOCKS, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.INDEX = function() { - return this.getToken(sqlParser.INDEX, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.LOCK = function() { - return this.getToken(sqlParser.LOCK, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.DATABASE = function() { - return this.getToken(sqlParser.DATABASE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.UNLOCK = function() { - return this.getToken(sqlParser.UNLOCK, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.TEMPORARY = function() { - return this.getToken(sqlParser.TEMPORARY, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.MACRO = function() { - return this.getToken(sqlParser.MACRO, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.CLUSTERED = function() { - return this.getToken(sqlParser.CLUSTERED, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.BY = function() { - return this.getToken(sqlParser.BY, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.SORTED = function() { - return this.getToken(sqlParser.SORTED, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.SKEWED = function() { - return this.getToken(sqlParser.SKEWED, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.STORED = function() { - return this.getToken(sqlParser.STORED, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.DIRECTORIES = function() { - return this.getToken(sqlParser.DIRECTORIES, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.SET = function() { - return this.getToken(sqlParser.SET, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.LOCATION = function() { - return this.getToken(sqlParser.LOCATION, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.EXCHANGE = function() { - return this.getToken(sqlParser.EXCHANGE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.PARTITION = function() { - return this.getToken(sqlParser.PARTITION, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.ARCHIVE = function() { - return this.getToken(sqlParser.ARCHIVE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.UNARCHIVE = function() { - return this.getToken(sqlParser.UNARCHIVE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.TOUCH = function() { - return this.getToken(sqlParser.TOUCH, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.COMPACT = function() { - return this.getToken(sqlParser.COMPACT, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.CONCATENATE = function() { - return this.getToken(sqlParser.CONCATENATE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.FILEFORMAT = function() { - return this.getToken(sqlParser.FILEFORMAT, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.REPLACE = function() { - return this.getToken(sqlParser.REPLACE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.COLUMNS = function() { - return this.getToken(sqlParser.COLUMNS, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.START = function() { - return this.getToken(sqlParser.START, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.TRANSACTION = function() { - return this.getToken(sqlParser.TRANSACTION, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.COMMIT = function() { - return this.getToken(sqlParser.COMMIT, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.ROLLBACK = function() { - return this.getToken(sqlParser.ROLLBACK, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.DFS = function() { - return this.getToken(sqlParser.DFS, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.DELETE = function() { - return this.getToken(sqlParser.DELETE, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.FROM = function() { - return this.getToken(sqlParser.FROM, 0); -}; - -UnsupportedHiveNativeCommandsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterUnsupportedHiveNativeCommands(this); - } -}; - -UnsupportedHiveNativeCommandsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitUnsupportedHiveNativeCommands(this); - } -}; - -UnsupportedHiveNativeCommandsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitUnsupportedHiveNativeCommands(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.UnsupportedHiveNativeCommandsContext = UnsupportedHiveNativeCommandsContext; - -sqlParser.prototype.unsupportedHiveNativeCommands = function() { - - var localctx = new UnsupportedHiveNativeCommandsContext(this, this._ctx, this.state); - this.enterRule(localctx, 14, sqlParser.RULE_unsupportedHiveNativeCommands); - var _la = 0; // Token type - try { - this.state = 1065; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,109,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 895; - localctx.kw1 = this.match(sqlParser.CREATE); - this.state = 896; - localctx.kw2 = this.match(sqlParser.ROLE); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 897; - localctx.kw1 = this.match(sqlParser.DROP); - this.state = 898; - localctx.kw2 = this.match(sqlParser.ROLE); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 899; - localctx.kw1 = this.match(sqlParser.GRANT); - this.state = 901; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,102,this._ctx); - if(la_===1) { - this.state = 900; - localctx.kw2 = this.match(sqlParser.ROLE); - - } - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 903; - localctx.kw1 = this.match(sqlParser.REVOKE); - this.state = 905; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,103,this._ctx); - if(la_===1) { - this.state = 904; - localctx.kw2 = this.match(sqlParser.ROLE); - - } - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 907; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 908; - localctx.kw2 = this.match(sqlParser.GRANT); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 909; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 910; - localctx.kw2 = this.match(sqlParser.ROLE); - this.state = 912; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,104,this._ctx); - if(la_===1) { - this.state = 911; - localctx.kw3 = this.match(sqlParser.GRANT); - - } - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 914; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 915; - localctx.kw2 = this.match(sqlParser.PRINCIPALS); - break; - - case 8: - this.enterOuterAlt(localctx, 8); - this.state = 916; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 917; - localctx.kw2 = this.match(sqlParser.ROLES); - break; - - case 9: - this.enterOuterAlt(localctx, 9); - this.state = 918; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 919; - localctx.kw2 = this.match(sqlParser.CURRENT); - this.state = 920; - localctx.kw3 = this.match(sqlParser.ROLES); - break; - - case 10: - this.enterOuterAlt(localctx, 10); - this.state = 921; - localctx.kw1 = this.match(sqlParser.EXPORT); - this.state = 922; - localctx.kw2 = this.match(sqlParser.TABLE); - break; - - case 11: - this.enterOuterAlt(localctx, 11); - this.state = 923; - localctx.kw1 = this.match(sqlParser.IMPORT); - this.state = 924; - localctx.kw2 = this.match(sqlParser.TABLE); - break; - - case 12: - this.enterOuterAlt(localctx, 12); - this.state = 925; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 926; - localctx.kw2 = this.match(sqlParser.COMPACTIONS); - break; - - case 13: - this.enterOuterAlt(localctx, 13); - this.state = 927; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 928; - localctx.kw2 = this.match(sqlParser.CREATE); - this.state = 929; - localctx.kw3 = this.match(sqlParser.TABLE); - break; - - case 14: - this.enterOuterAlt(localctx, 14); - this.state = 930; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 931; - localctx.kw2 = this.match(sqlParser.TRANSACTIONS); - break; - - case 15: - this.enterOuterAlt(localctx, 15); - this.state = 932; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 933; - localctx.kw2 = this.match(sqlParser.INDEXES); - break; - - case 16: - this.enterOuterAlt(localctx, 16); - this.state = 934; - localctx.kw1 = this.match(sqlParser.SHOW); - this.state = 935; - localctx.kw2 = this.match(sqlParser.LOCKS); - break; - - case 17: - this.enterOuterAlt(localctx, 17); - this.state = 936; - localctx.kw1 = this.match(sqlParser.CREATE); - this.state = 937; - localctx.kw2 = this.match(sqlParser.INDEX); - break; - - case 18: - this.enterOuterAlt(localctx, 18); - this.state = 938; - localctx.kw1 = this.match(sqlParser.DROP); - this.state = 939; - localctx.kw2 = this.match(sqlParser.INDEX); - break; - - case 19: - this.enterOuterAlt(localctx, 19); - this.state = 940; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 941; - localctx.kw2 = this.match(sqlParser.INDEX); - break; - - case 20: - this.enterOuterAlt(localctx, 20); - this.state = 942; - localctx.kw1 = this.match(sqlParser.LOCK); - this.state = 943; - localctx.kw2 = this.match(sqlParser.TABLE); - break; - - case 21: - this.enterOuterAlt(localctx, 21); - this.state = 944; - localctx.kw1 = this.match(sqlParser.LOCK); - this.state = 945; - localctx.kw2 = this.match(sqlParser.DATABASE); - break; - - case 22: - this.enterOuterAlt(localctx, 22); - this.state = 946; - localctx.kw1 = this.match(sqlParser.UNLOCK); - this.state = 947; - localctx.kw2 = this.match(sqlParser.TABLE); - break; - - case 23: - this.enterOuterAlt(localctx, 23); - this.state = 948; - localctx.kw1 = this.match(sqlParser.UNLOCK); - this.state = 949; - localctx.kw2 = this.match(sqlParser.DATABASE); - break; - - case 24: - this.enterOuterAlt(localctx, 24); - this.state = 950; - localctx.kw1 = this.match(sqlParser.CREATE); - this.state = 951; - localctx.kw2 = this.match(sqlParser.TEMPORARY); - this.state = 952; - localctx.kw3 = this.match(sqlParser.MACRO); - break; - - case 25: - this.enterOuterAlt(localctx, 25); - this.state = 953; - localctx.kw1 = this.match(sqlParser.DROP); - this.state = 954; - localctx.kw2 = this.match(sqlParser.TEMPORARY); - this.state = 955; - localctx.kw3 = this.match(sqlParser.MACRO); - break; - - case 26: - this.enterOuterAlt(localctx, 26); - this.state = 956; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 957; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 958; - this.tableIdentifier(); - this.state = 959; - localctx.kw3 = this.match(sqlParser.NOT); - this.state = 960; - localctx.kw4 = this.match(sqlParser.CLUSTERED); - break; - - case 27: - this.enterOuterAlt(localctx, 27); - this.state = 962; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 963; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 964; - this.tableIdentifier(); - this.state = 965; - localctx.kw3 = this.match(sqlParser.CLUSTERED); - this.state = 966; - localctx.kw4 = this.match(sqlParser.BY); - break; - - case 28: - this.enterOuterAlt(localctx, 28); - this.state = 968; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 969; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 970; - this.tableIdentifier(); - this.state = 971; - localctx.kw3 = this.match(sqlParser.NOT); - this.state = 972; - localctx.kw4 = this.match(sqlParser.SORTED); - break; - - case 29: - this.enterOuterAlt(localctx, 29); - this.state = 974; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 975; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 976; - this.tableIdentifier(); - this.state = 977; - localctx.kw3 = this.match(sqlParser.SKEWED); - this.state = 978; - localctx.kw4 = this.match(sqlParser.BY); - break; - - case 30: - this.enterOuterAlt(localctx, 30); - this.state = 980; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 981; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 982; - this.tableIdentifier(); - this.state = 983; - localctx.kw3 = this.match(sqlParser.NOT); - this.state = 984; - localctx.kw4 = this.match(sqlParser.SKEWED); - break; - - case 31: - this.enterOuterAlt(localctx, 31); - this.state = 986; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 987; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 988; - this.tableIdentifier(); - this.state = 989; - localctx.kw3 = this.match(sqlParser.NOT); - this.state = 990; - localctx.kw4 = this.match(sqlParser.STORED); - this.state = 991; - localctx.kw5 = this.match(sqlParser.AS); - this.state = 992; - localctx.kw6 = this.match(sqlParser.DIRECTORIES); - break; - - case 32: - this.enterOuterAlt(localctx, 32); - this.state = 994; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 995; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 996; - this.tableIdentifier(); - this.state = 997; - localctx.kw3 = this.match(sqlParser.SET); - this.state = 998; - localctx.kw4 = this.match(sqlParser.SKEWED); - this.state = 999; - localctx.kw5 = this.match(sqlParser.LOCATION); - break; - - case 33: - this.enterOuterAlt(localctx, 33); - this.state = 1001; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 1002; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 1003; - this.tableIdentifier(); - this.state = 1004; - localctx.kw3 = this.match(sqlParser.EXCHANGE); - this.state = 1005; - localctx.kw4 = this.match(sqlParser.PARTITION); - break; - - case 34: - this.enterOuterAlt(localctx, 34); - this.state = 1007; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 1008; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 1009; - this.tableIdentifier(); - this.state = 1010; - localctx.kw3 = this.match(sqlParser.ARCHIVE); - this.state = 1011; - localctx.kw4 = this.match(sqlParser.PARTITION); - break; - - case 35: - this.enterOuterAlt(localctx, 35); - this.state = 1013; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 1014; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 1015; - this.tableIdentifier(); - this.state = 1016; - localctx.kw3 = this.match(sqlParser.UNARCHIVE); - this.state = 1017; - localctx.kw4 = this.match(sqlParser.PARTITION); - break; - - case 36: - this.enterOuterAlt(localctx, 36); - this.state = 1019; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 1020; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 1021; - this.tableIdentifier(); - this.state = 1022; - localctx.kw3 = this.match(sqlParser.TOUCH); - break; - - case 37: - this.enterOuterAlt(localctx, 37); - this.state = 1024; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 1025; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 1026; - this.tableIdentifier(); - this.state = 1028; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 1027; - this.partitionSpec(); - } - - this.state = 1030; - localctx.kw3 = this.match(sqlParser.COMPACT); - break; - - case 38: - this.enterOuterAlt(localctx, 38); - this.state = 1032; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 1033; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 1034; - this.tableIdentifier(); - this.state = 1036; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 1035; - this.partitionSpec(); - } - - this.state = 1038; - localctx.kw3 = this.match(sqlParser.CONCATENATE); - break; - - case 39: - this.enterOuterAlt(localctx, 39); - this.state = 1040; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 1041; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 1042; - this.tableIdentifier(); - this.state = 1044; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 1043; - this.partitionSpec(); - } - - this.state = 1046; - localctx.kw3 = this.match(sqlParser.SET); - this.state = 1047; - localctx.kw4 = this.match(sqlParser.FILEFORMAT); - break; - - case 40: - this.enterOuterAlt(localctx, 40); - this.state = 1049; - localctx.kw1 = this.match(sqlParser.ALTER); - this.state = 1050; - localctx.kw2 = this.match(sqlParser.TABLE); - this.state = 1051; - this.tableIdentifier(); - this.state = 1053; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 1052; - this.partitionSpec(); - } - - this.state = 1055; - localctx.kw3 = this.match(sqlParser.REPLACE); - this.state = 1056; - localctx.kw4 = this.match(sqlParser.COLUMNS); - break; - - case 41: - this.enterOuterAlt(localctx, 41); - this.state = 1058; - localctx.kw1 = this.match(sqlParser.START); - this.state = 1059; - localctx.kw2 = this.match(sqlParser.TRANSACTION); - break; - - case 42: - this.enterOuterAlt(localctx, 42); - this.state = 1060; - localctx.kw1 = this.match(sqlParser.COMMIT); - break; - - case 43: - this.enterOuterAlt(localctx, 43); - this.state = 1061; - localctx.kw1 = this.match(sqlParser.ROLLBACK); - break; - - case 44: - this.enterOuterAlt(localctx, 44); - this.state = 1062; - localctx.kw1 = this.match(sqlParser.DFS); - break; - - case 45: - this.enterOuterAlt(localctx, 45); - this.state = 1063; - localctx.kw1 = this.match(sqlParser.DELETE); - this.state = 1064; - localctx.kw2 = this.match(sqlParser.FROM); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function CreateTableHeaderContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_createTableHeader; - return this; -} - -CreateTableHeaderContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -CreateTableHeaderContext.prototype.constructor = CreateTableHeaderContext; - -CreateTableHeaderContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -CreateTableHeaderContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -CreateTableHeaderContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -CreateTableHeaderContext.prototype.TEMPORARY = function() { - return this.getToken(sqlParser.TEMPORARY, 0); -}; - -CreateTableHeaderContext.prototype.EXTERNAL = function() { - return this.getToken(sqlParser.EXTERNAL, 0); -}; - -CreateTableHeaderContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -CreateTableHeaderContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -CreateTableHeaderContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -CreateTableHeaderContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateTableHeader(this); - } -}; - -CreateTableHeaderContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateTableHeader(this); - } -}; - -CreateTableHeaderContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateTableHeader(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.CreateTableHeaderContext = CreateTableHeaderContext; - -sqlParser.prototype.createTableHeader = function() { - - var localctx = new CreateTableHeaderContext(this, this._ctx, this.state); - this.enterRule(localctx, 16, sqlParser.RULE_createTableHeader); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1067; - this.match(sqlParser.CREATE); - this.state = 1069; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.TEMPORARY) { - this.state = 1068; - this.match(sqlParser.TEMPORARY); - } - - this.state = 1072; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.EXTERNAL) { - this.state = 1071; - this.match(sqlParser.EXTERNAL); - } - - this.state = 1074; - this.match(sqlParser.TABLE); - this.state = 1078; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,112,this._ctx); - if(la_===1) { - this.state = 1075; - this.match(sqlParser.IF); - this.state = 1076; - this.match(sqlParser.NOT); - this.state = 1077; - this.match(sqlParser.EXISTS); - - } - this.state = 1080; - this.tableIdentifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function BucketSpecContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_bucketSpec; - return this; -} - -BucketSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -BucketSpecContext.prototype.constructor = BucketSpecContext; - -BucketSpecContext.prototype.CLUSTERED = function() { - return this.getToken(sqlParser.CLUSTERED, 0); -}; - -BucketSpecContext.prototype.BY = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.BY); - } else { - return this.getToken(sqlParser.BY, i); - } -}; - - -BucketSpecContext.prototype.identifierList = function() { - return this.getTypedRuleContext(IdentifierListContext,0); -}; - -BucketSpecContext.prototype.INTO = function() { - return this.getToken(sqlParser.INTO, 0); -}; - -BucketSpecContext.prototype.INTEGER_VALUE = function() { - return this.getToken(sqlParser.INTEGER_VALUE, 0); -}; - -BucketSpecContext.prototype.BUCKETS = function() { - return this.getToken(sqlParser.BUCKETS, 0); -}; - -BucketSpecContext.prototype.SORTED = function() { - return this.getToken(sqlParser.SORTED, 0); -}; - -BucketSpecContext.prototype.orderedIdentifierList = function() { - return this.getTypedRuleContext(OrderedIdentifierListContext,0); -}; - -BucketSpecContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterBucketSpec(this); - } -}; - -BucketSpecContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitBucketSpec(this); - } -}; - -BucketSpecContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitBucketSpec(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.BucketSpecContext = BucketSpecContext; - -sqlParser.prototype.bucketSpec = function() { - - var localctx = new BucketSpecContext(this, this._ctx, this.state); - this.enterRule(localctx, 18, sqlParser.RULE_bucketSpec); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1082; - this.match(sqlParser.CLUSTERED); - this.state = 1083; - this.match(sqlParser.BY); - this.state = 1084; - this.identifierList(); - this.state = 1088; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.SORTED) { - this.state = 1085; - this.match(sqlParser.SORTED); - this.state = 1086; - this.match(sqlParser.BY); - this.state = 1087; - this.orderedIdentifierList(); - } - - this.state = 1090; - this.match(sqlParser.INTO); - this.state = 1091; - this.match(sqlParser.INTEGER_VALUE); - this.state = 1092; - this.match(sqlParser.BUCKETS); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SkewSpecContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_skewSpec; - return this; -} - -SkewSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SkewSpecContext.prototype.constructor = SkewSpecContext; - -SkewSpecContext.prototype.SKEWED = function() { - return this.getToken(sqlParser.SKEWED, 0); -}; - -SkewSpecContext.prototype.BY = function() { - return this.getToken(sqlParser.BY, 0); -}; - -SkewSpecContext.prototype.identifierList = function() { - return this.getTypedRuleContext(IdentifierListContext,0); -}; - -SkewSpecContext.prototype.ON = function() { - return this.getToken(sqlParser.ON, 0); -}; - -SkewSpecContext.prototype.constantList = function() { - return this.getTypedRuleContext(ConstantListContext,0); -}; - -SkewSpecContext.prototype.nestedConstantList = function() { - return this.getTypedRuleContext(NestedConstantListContext,0); -}; - -SkewSpecContext.prototype.STORED = function() { - return this.getToken(sqlParser.STORED, 0); -}; - -SkewSpecContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -SkewSpecContext.prototype.DIRECTORIES = function() { - return this.getToken(sqlParser.DIRECTORIES, 0); -}; - -SkewSpecContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSkewSpec(this); - } -}; - -SkewSpecContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSkewSpec(this); - } -}; - -SkewSpecContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSkewSpec(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SkewSpecContext = SkewSpecContext; - -sqlParser.prototype.skewSpec = function() { - - var localctx = new SkewSpecContext(this, this._ctx, this.state); - this.enterRule(localctx, 20, sqlParser.RULE_skewSpec); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1094; - this.match(sqlParser.SKEWED); - this.state = 1095; - this.match(sqlParser.BY); - this.state = 1096; - this.identifierList(); - this.state = 1097; - this.match(sqlParser.ON); - this.state = 1100; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,114,this._ctx); - switch(la_) { - case 1: - this.state = 1098; - this.constantList(); - break; - - case 2: - this.state = 1099; - this.nestedConstantList(); - break; - - } - this.state = 1105; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,115,this._ctx); - if(la_===1) { - this.state = 1102; - this.match(sqlParser.STORED); - this.state = 1103; - this.match(sqlParser.AS); - this.state = 1104; - this.match(sqlParser.DIRECTORIES); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function LocationSpecContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_locationSpec; - return this; -} - -LocationSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -LocationSpecContext.prototype.constructor = LocationSpecContext; - -LocationSpecContext.prototype.LOCATION = function() { - return this.getToken(sqlParser.LOCATION, 0); -}; - -LocationSpecContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -LocationSpecContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterLocationSpec(this); - } -}; - -LocationSpecContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitLocationSpec(this); - } -}; - -LocationSpecContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitLocationSpec(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.LocationSpecContext = LocationSpecContext; - -sqlParser.prototype.locationSpec = function() { - - var localctx = new LocationSpecContext(this, this._ctx, this.state); - this.enterRule(localctx, 22, sqlParser.RULE_locationSpec); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1107; - this.match(sqlParser.LOCATION); - this.state = 1108; - this.match(sqlParser.STRING); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function QueryContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_query; - return this; -} - -QueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -QueryContext.prototype.constructor = QueryContext; - -QueryContext.prototype.queryNoWith = function() { - return this.getTypedRuleContext(QueryNoWithContext,0); -}; - -QueryContext.prototype.ctes = function() { - return this.getTypedRuleContext(CtesContext,0); -}; - -QueryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterQuery(this); - } -}; - -QueryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitQuery(this); - } -}; - -QueryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitQuery(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.QueryContext = QueryContext; - -sqlParser.prototype.query = function() { - - var localctx = new QueryContext(this, this._ctx, this.state); - this.enterRule(localctx, 24, sqlParser.RULE_query); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1111; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.WITH) { - this.state = 1110; - this.ctes(); - } - - this.state = 1113; - this.queryNoWith(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function InsertIntoContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_insertInto; - return this; -} - -InsertIntoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -InsertIntoContext.prototype.constructor = InsertIntoContext; - - - -InsertIntoContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function InsertOverwriteHiveDirContext(parser, ctx) { - InsertIntoContext.call(this, parser); - this.path = null; // Token; - InsertIntoContext.prototype.copyFrom.call(this, ctx); - return this; -} - -InsertOverwriteHiveDirContext.prototype = Object.create(InsertIntoContext.prototype); -InsertOverwriteHiveDirContext.prototype.constructor = InsertOverwriteHiveDirContext; - -sqlParser.InsertOverwriteHiveDirContext = InsertOverwriteHiveDirContext; - -InsertOverwriteHiveDirContext.prototype.INSERT = function() { - return this.getToken(sqlParser.INSERT, 0); -}; - -InsertOverwriteHiveDirContext.prototype.OVERWRITE = function() { - return this.getToken(sqlParser.OVERWRITE, 0); -}; - -InsertOverwriteHiveDirContext.prototype.DIRECTORY = function() { - return this.getToken(sqlParser.DIRECTORY, 0); -}; - -InsertOverwriteHiveDirContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -InsertOverwriteHiveDirContext.prototype.LOCAL = function() { - return this.getToken(sqlParser.LOCAL, 0); -}; - -InsertOverwriteHiveDirContext.prototype.rowFormat = function() { - return this.getTypedRuleContext(RowFormatContext,0); -}; - -InsertOverwriteHiveDirContext.prototype.createFileFormat = function() { - return this.getTypedRuleContext(CreateFileFormatContext,0); -}; -InsertOverwriteHiveDirContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterInsertOverwriteHiveDir(this); - } -}; - -InsertOverwriteHiveDirContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitInsertOverwriteHiveDir(this); - } -}; - -InsertOverwriteHiveDirContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitInsertOverwriteHiveDir(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function InsertOverwriteDirContext(parser, ctx) { - InsertIntoContext.call(this, parser); - this.path = null; // Token; - this.options = null; // TablePropertyListContext; - InsertIntoContext.prototype.copyFrom.call(this, ctx); - return this; -} - -InsertOverwriteDirContext.prototype = Object.create(InsertIntoContext.prototype); -InsertOverwriteDirContext.prototype.constructor = InsertOverwriteDirContext; - -sqlParser.InsertOverwriteDirContext = InsertOverwriteDirContext; - -InsertOverwriteDirContext.prototype.INSERT = function() { - return this.getToken(sqlParser.INSERT, 0); -}; - -InsertOverwriteDirContext.prototype.OVERWRITE = function() { - return this.getToken(sqlParser.OVERWRITE, 0); -}; - -InsertOverwriteDirContext.prototype.DIRECTORY = function() { - return this.getToken(sqlParser.DIRECTORY, 0); -}; - -InsertOverwriteDirContext.prototype.tableProvider = function() { - return this.getTypedRuleContext(TableProviderContext,0); -}; - -InsertOverwriteDirContext.prototype.LOCAL = function() { - return this.getToken(sqlParser.LOCAL, 0); -}; - -InsertOverwriteDirContext.prototype.OPTIONS = function() { - return this.getToken(sqlParser.OPTIONS, 0); -}; - -InsertOverwriteDirContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -InsertOverwriteDirContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; -InsertOverwriteDirContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterInsertOverwriteDir(this); - } -}; - -InsertOverwriteDirContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitInsertOverwriteDir(this); - } -}; - -InsertOverwriteDirContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitInsertOverwriteDir(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function InsertOverwriteTableContext(parser, ctx) { - InsertIntoContext.call(this, parser); - InsertIntoContext.prototype.copyFrom.call(this, ctx); - return this; -} - -InsertOverwriteTableContext.prototype = Object.create(InsertIntoContext.prototype); -InsertOverwriteTableContext.prototype.constructor = InsertOverwriteTableContext; - -sqlParser.InsertOverwriteTableContext = InsertOverwriteTableContext; - -InsertOverwriteTableContext.prototype.INSERT = function() { - return this.getToken(sqlParser.INSERT, 0); -}; - -InsertOverwriteTableContext.prototype.OVERWRITE = function() { - return this.getToken(sqlParser.OVERWRITE, 0); -}; - -InsertOverwriteTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -InsertOverwriteTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -InsertOverwriteTableContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; - -InsertOverwriteTableContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -InsertOverwriteTableContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -InsertOverwriteTableContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; -InsertOverwriteTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterInsertOverwriteTable(this); - } -}; - -InsertOverwriteTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitInsertOverwriteTable(this); - } -}; - -InsertOverwriteTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitInsertOverwriteTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function InsertIntoTableContext(parser, ctx) { - InsertIntoContext.call(this, parser); - InsertIntoContext.prototype.copyFrom.call(this, ctx); - return this; -} - -InsertIntoTableContext.prototype = Object.create(InsertIntoContext.prototype); -InsertIntoTableContext.prototype.constructor = InsertIntoTableContext; - -sqlParser.InsertIntoTableContext = InsertIntoTableContext; - -InsertIntoTableContext.prototype.INSERT = function() { - return this.getToken(sqlParser.INSERT, 0); -}; - -InsertIntoTableContext.prototype.INTO = function() { - return this.getToken(sqlParser.INTO, 0); -}; - -InsertIntoTableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -InsertIntoTableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -InsertIntoTableContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; -InsertIntoTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterInsertIntoTable(this); - } -}; - -InsertIntoTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitInsertIntoTable(this); - } -}; - -InsertIntoTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitInsertIntoTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.InsertIntoContext = InsertIntoContext; - -sqlParser.prototype.insertInto = function() { - - var localctx = new InsertIntoContext(this, this._ctx, this.state); - this.enterRule(localctx, 26, sqlParser.RULE_insertInto); - var _la = 0; // Token type - try { - this.state = 1163; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,127,this._ctx); - switch(la_) { - case 1: - localctx = new InsertOverwriteTableContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 1115; - this.match(sqlParser.INSERT); - this.state = 1116; - this.match(sqlParser.OVERWRITE); - this.state = 1117; - this.match(sqlParser.TABLE); - this.state = 1118; - this.tableIdentifier(); - this.state = 1125; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 1119; - this.partitionSpec(); - this.state = 1123; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.IF) { - this.state = 1120; - this.match(sqlParser.IF); - this.state = 1121; - this.match(sqlParser.NOT); - this.state = 1122; - this.match(sqlParser.EXISTS); - } - - } - - break; - - case 2: - localctx = new InsertIntoTableContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 1127; - this.match(sqlParser.INSERT); - this.state = 1128; - this.match(sqlParser.INTO); - this.state = 1130; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,119,this._ctx); - if(la_===1) { - this.state = 1129; - this.match(sqlParser.TABLE); - - } - this.state = 1132; - this.tableIdentifier(); - this.state = 1134; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 1133; - this.partitionSpec(); - } - - break; - - case 3: - localctx = new InsertOverwriteHiveDirContext(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 1136; - this.match(sqlParser.INSERT); - this.state = 1137; - this.match(sqlParser.OVERWRITE); - this.state = 1139; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LOCAL) { - this.state = 1138; - this.match(sqlParser.LOCAL); - } - - this.state = 1141; - this.match(sqlParser.DIRECTORY); - this.state = 1142; - localctx.path = this.match(sqlParser.STRING); - this.state = 1144; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ROW) { - this.state = 1143; - this.rowFormat(); - } - - this.state = 1147; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.STORED) { - this.state = 1146; - this.createFileFormat(); - } - - break; - - case 4: - localctx = new InsertOverwriteDirContext(this, localctx); - this.enterOuterAlt(localctx, 4); - this.state = 1149; - this.match(sqlParser.INSERT); - this.state = 1150; - this.match(sqlParser.OVERWRITE); - this.state = 1152; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LOCAL) { - this.state = 1151; - this.match(sqlParser.LOCAL); - } - - this.state = 1154; - this.match(sqlParser.DIRECTORY); - this.state = 1156; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.STRING) { - this.state = 1155; - localctx.path = this.match(sqlParser.STRING); - } - - this.state = 1158; - this.tableProvider(); - this.state = 1161; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OPTIONS) { - this.state = 1159; - this.match(sqlParser.OPTIONS); - this.state = 1160; - localctx.options = this.tablePropertyList(); - } - - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PartitionSpecLocationContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_partitionSpecLocation; - return this; -} - -PartitionSpecLocationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PartitionSpecLocationContext.prototype.constructor = PartitionSpecLocationContext; - -PartitionSpecLocationContext.prototype.partitionSpec = function() { - return this.getTypedRuleContext(PartitionSpecContext,0); -}; - -PartitionSpecLocationContext.prototype.locationSpec = function() { - return this.getTypedRuleContext(LocationSpecContext,0); -}; - -PartitionSpecLocationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPartitionSpecLocation(this); - } -}; - -PartitionSpecLocationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPartitionSpecLocation(this); - } -}; - -PartitionSpecLocationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPartitionSpecLocation(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PartitionSpecLocationContext = PartitionSpecLocationContext; - -sqlParser.prototype.partitionSpecLocation = function() { - - var localctx = new PartitionSpecLocationContext(this, this._ctx, this.state); - this.enterRule(localctx, 28, sqlParser.RULE_partitionSpecLocation); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1165; - this.partitionSpec(); - this.state = 1167; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LOCATION) { - this.state = 1166; - this.locationSpec(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PartitionSpecContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_partitionSpec; - return this; -} - -PartitionSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PartitionSpecContext.prototype.constructor = PartitionSpecContext; - -PartitionSpecContext.prototype.PARTITION = function() { - return this.getToken(sqlParser.PARTITION, 0); -}; - -PartitionSpecContext.prototype.partitionVal = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PartitionValContext); - } else { - return this.getTypedRuleContext(PartitionValContext,i); - } -}; - -PartitionSpecContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPartitionSpec(this); - } -}; - -PartitionSpecContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPartitionSpec(this); - } -}; - -PartitionSpecContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPartitionSpec(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PartitionSpecContext = PartitionSpecContext; - -sqlParser.prototype.partitionSpec = function() { - - var localctx = new PartitionSpecContext(this, this._ctx, this.state); - this.enterRule(localctx, 30, sqlParser.RULE_partitionSpec); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1169; - this.match(sqlParser.PARTITION); - this.state = 1170; - this.match(sqlParser.T__0); - this.state = 1171; - this.partitionVal(); - this.state = 1176; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1172; - this.match(sqlParser.T__3); - this.state = 1173; - this.partitionVal(); - this.state = 1178; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1179; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PartitionValContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_partitionVal; - return this; -} - -PartitionValContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PartitionValContext.prototype.constructor = PartitionValContext; - -PartitionValContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -PartitionValContext.prototype.EQ = function() { - return this.getToken(sqlParser.EQ, 0); -}; - -PartitionValContext.prototype.constant = function() { - return this.getTypedRuleContext(ConstantContext,0); -}; - -PartitionValContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPartitionVal(this); - } -}; - -PartitionValContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPartitionVal(this); - } -}; - -PartitionValContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPartitionVal(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PartitionValContext = PartitionValContext; - -sqlParser.prototype.partitionVal = function() { - - var localctx = new PartitionValContext(this, this._ctx, this.state); - this.enterRule(localctx, 32, sqlParser.RULE_partitionVal); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1181; - this.identifier(); - this.state = 1184; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.EQ) { - this.state = 1182; - this.match(sqlParser.EQ); - this.state = 1183; - this.constant(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function DescribeFuncNameContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_describeFuncName; - return this; -} - -DescribeFuncNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -DescribeFuncNameContext.prototype.constructor = DescribeFuncNameContext; - -DescribeFuncNameContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; - -DescribeFuncNameContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -DescribeFuncNameContext.prototype.comparisonOperator = function() { - return this.getTypedRuleContext(ComparisonOperatorContext,0); -}; - -DescribeFuncNameContext.prototype.arithmeticOperator = function() { - return this.getTypedRuleContext(ArithmeticOperatorContext,0); -}; - -DescribeFuncNameContext.prototype.predicateOperator = function() { - return this.getTypedRuleContext(PredicateOperatorContext,0); -}; - -DescribeFuncNameContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDescribeFuncName(this); - } -}; - -DescribeFuncNameContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDescribeFuncName(this); - } -}; - -DescribeFuncNameContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDescribeFuncName(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.DescribeFuncNameContext = DescribeFuncNameContext; - -sqlParser.prototype.describeFuncName = function() { - - var localctx = new DescribeFuncNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 34, sqlParser.RULE_describeFuncName); - try { - this.state = 1191; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,131,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1186; - this.qualifiedName(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1187; - this.match(sqlParser.STRING); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1188; - this.comparisonOperator(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 1189; - this.arithmeticOperator(); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 1190; - this.predicateOperator(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function DescribeColNameContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_describeColName; - this._identifier = null; // IdentifierContext - this.nameParts = []; // of IdentifierContexts - return this; -} - -DescribeColNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -DescribeColNameContext.prototype.constructor = DescribeColNameContext; - -DescribeColNameContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -DescribeColNameContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDescribeColName(this); - } -}; - -DescribeColNameContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDescribeColName(this); - } -}; - -DescribeColNameContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDescribeColName(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.DescribeColNameContext = DescribeColNameContext; - -sqlParser.prototype.describeColName = function() { - - var localctx = new DescribeColNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 36, sqlParser.RULE_describeColName); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1193; - localctx._identifier = this.identifier(); - localctx.nameParts.push(localctx._identifier); - this.state = 1198; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__2) { - this.state = 1194; - this.match(sqlParser.T__2); - this.state = 1195; - localctx._identifier = this.identifier(); - localctx.nameParts.push(localctx._identifier); - this.state = 1200; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function CtesContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_ctes; - return this; -} - -CtesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -CtesContext.prototype.constructor = CtesContext; - -CtesContext.prototype.WITH = function() { - return this.getToken(sqlParser.WITH, 0); -}; - -CtesContext.prototype.namedQuery = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(NamedQueryContext); - } else { - return this.getTypedRuleContext(NamedQueryContext,i); - } -}; - -CtesContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCtes(this); - } -}; - -CtesContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCtes(this); - } -}; - -CtesContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCtes(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.CtesContext = CtesContext; - -sqlParser.prototype.ctes = function() { - - var localctx = new CtesContext(this, this._ctx, this.state); - this.enterRule(localctx, 38, sqlParser.RULE_ctes); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1201; - this.match(sqlParser.WITH); - this.state = 1202; - this.namedQuery(); - this.state = 1207; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1203; - this.match(sqlParser.T__3); - this.state = 1204; - this.namedQuery(); - this.state = 1209; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function NamedQueryContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_namedQuery; - this.name = null; // IdentifierContext - return this; -} - -NamedQueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -NamedQueryContext.prototype.constructor = NamedQueryContext; - -NamedQueryContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; - -NamedQueryContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -NamedQueryContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -NamedQueryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterNamedQuery(this); - } -}; - -NamedQueryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitNamedQuery(this); - } -}; - -NamedQueryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitNamedQuery(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.NamedQueryContext = NamedQueryContext; - -sqlParser.prototype.namedQuery = function() { - - var localctx = new NamedQueryContext(this, this._ctx, this.state); - this.enterRule(localctx, 40, sqlParser.RULE_namedQuery); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1210; - localctx.name = this.identifier(); - this.state = 1212; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.AS) { - this.state = 1211; - this.match(sqlParser.AS); - } - - this.state = 1214; - this.match(sqlParser.T__0); - this.state = 1215; - this.query(); - this.state = 1216; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function TableProviderContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_tableProvider; - return this; -} - -TableProviderContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -TableProviderContext.prototype.constructor = TableProviderContext; - -TableProviderContext.prototype.USING = function() { - return this.getToken(sqlParser.USING, 0); -}; - -TableProviderContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; - -TableProviderContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTableProvider(this); - } -}; - -TableProviderContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTableProvider(this); - } -}; - -TableProviderContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTableProvider(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.TableProviderContext = TableProviderContext; - -sqlParser.prototype.tableProvider = function() { - - var localctx = new TableProviderContext(this, this._ctx, this.state); - this.enterRule(localctx, 42, sqlParser.RULE_tableProvider); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1218; - this.match(sqlParser.USING); - this.state = 1219; - this.qualifiedName(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function TablePropertyListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_tablePropertyList; - return this; -} - -TablePropertyListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -TablePropertyListContext.prototype.constructor = TablePropertyListContext; - -TablePropertyListContext.prototype.tableProperty = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(TablePropertyContext); - } else { - return this.getTypedRuleContext(TablePropertyContext,i); - } -}; - -TablePropertyListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTablePropertyList(this); - } -}; - -TablePropertyListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTablePropertyList(this); - } -}; - -TablePropertyListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTablePropertyList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.TablePropertyListContext = TablePropertyListContext; - -sqlParser.prototype.tablePropertyList = function() { - - var localctx = new TablePropertyListContext(this, this._ctx, this.state); - this.enterRule(localctx, 44, sqlParser.RULE_tablePropertyList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1221; - this.match(sqlParser.T__0); - this.state = 1222; - this.tableProperty(); - this.state = 1227; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1223; - this.match(sqlParser.T__3); - this.state = 1224; - this.tableProperty(); - this.state = 1229; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1230; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function TablePropertyContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_tableProperty; - this.key = null; // TablePropertyKeyContext - this.value = null; // TablePropertyValueContext - return this; -} - -TablePropertyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -TablePropertyContext.prototype.constructor = TablePropertyContext; - -TablePropertyContext.prototype.tablePropertyKey = function() { - return this.getTypedRuleContext(TablePropertyKeyContext,0); -}; - -TablePropertyContext.prototype.tablePropertyValue = function() { - return this.getTypedRuleContext(TablePropertyValueContext,0); -}; - -TablePropertyContext.prototype.EQ = function() { - return this.getToken(sqlParser.EQ, 0); -}; - -TablePropertyContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTableProperty(this); - } -}; - -TablePropertyContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTableProperty(this); - } -}; - -TablePropertyContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTableProperty(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.TablePropertyContext = TablePropertyContext; - -sqlParser.prototype.tableProperty = function() { - - var localctx = new TablePropertyContext(this, this._ctx, this.state); - this.enterRule(localctx, 46, sqlParser.RULE_tableProperty); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1232; - localctx.key = this.tablePropertyKey(); - this.state = 1237; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.TRUE || _la===sqlParser.FALSE || _la===sqlParser.EQ || ((((_la - 261)) & ~0x1f) == 0 && ((1 << (_la - 261)) & ((1 << (sqlParser.STRING - 261)) | (1 << (sqlParser.INTEGER_VALUE - 261)) | (1 << (sqlParser.DECIMAL_VALUE - 261)))) !== 0)) { - this.state = 1234; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.EQ) { - this.state = 1233; - this.match(sqlParser.EQ); - } - - this.state = 1236; - localctx.value = this.tablePropertyValue(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function TablePropertyKeyContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_tablePropertyKey; - return this; -} - -TablePropertyKeyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -TablePropertyKeyContext.prototype.constructor = TablePropertyKeyContext; - -TablePropertyKeyContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -TablePropertyKeyContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -TablePropertyKeyContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTablePropertyKey(this); - } -}; - -TablePropertyKeyContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTablePropertyKey(this); - } -}; - -TablePropertyKeyContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTablePropertyKey(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.TablePropertyKeyContext = TablePropertyKeyContext; - -sqlParser.prototype.tablePropertyKey = function() { - - var localctx = new TablePropertyKeyContext(this, this._ctx, this.state); - this.enterRule(localctx, 48, sqlParser.RULE_tablePropertyKey); - var _la = 0; // Token type - try { - this.state = 1248; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.AS: - case sqlParser.ALL: - case sqlParser.ANY: - case sqlParser.DISTINCT: - case sqlParser.WHERE: - case sqlParser.GROUP: - case sqlParser.BY: - case sqlParser.GROUPING: - case sqlParser.SETS: - case sqlParser.CUBE: - case sqlParser.ROLLUP: - case sqlParser.ORDER: - case sqlParser.HAVING: - case sqlParser.LIMIT: - case sqlParser.AT: - case sqlParser.OR: - case sqlParser.AND: - case sqlParser.IN: - case sqlParser.NOT: - case sqlParser.NO: - case sqlParser.EXISTS: - case sqlParser.BETWEEN: - case sqlParser.LIKE: - case sqlParser.RLIKE: - case sqlParser.IS: - case sqlParser.NULL: - case sqlParser.TRUE: - case sqlParser.FALSE: - case sqlParser.NULLS: - case sqlParser.ASC: - case sqlParser.DESC: - case sqlParser.FOR: - case sqlParser.INTERVAL: - case sqlParser.CASE: - case sqlParser.WHEN: - case sqlParser.THEN: - case sqlParser.ELSE: - case sqlParser.END: - case sqlParser.JOIN: - case sqlParser.CROSS: - case sqlParser.OUTER: - case sqlParser.INNER: - case sqlParser.LEFT: - case sqlParser.SEMI: - case sqlParser.RIGHT: - case sqlParser.FULL: - case sqlParser.NATURAL: - case sqlParser.ON: - case sqlParser.PIVOT: - case sqlParser.LATERAL: - case sqlParser.WINDOW: - case sqlParser.OVER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.UNBOUNDED: - case sqlParser.PRECEDING: - case sqlParser.FOLLOWING: - case sqlParser.CURRENT: - case sqlParser.FIRST: - case sqlParser.AFTER: - case sqlParser.LAST: - case sqlParser.ROW: - case sqlParser.WITH: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.DIRECTORY: - case sqlParser.VIEW: - case sqlParser.REPLACE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.INTO: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.FORMAT: - case sqlParser.LOGICAL: - case sqlParser.CODEGEN: - case sqlParser.COST: - case sqlParser.CAST: - case sqlParser.SHOW: - case sqlParser.TABLES: - case sqlParser.COLUMNS: - case sqlParser.COLUMN: - case sqlParser.USE: - case sqlParser.PARTITIONS: - case sqlParser.FUNCTIONS: - case sqlParser.DROP: - case sqlParser.UNION: - case sqlParser.EXCEPT: - case sqlParser.SETMINUS: - case sqlParser.INTERSECT: - case sqlParser.TO: - case sqlParser.TABLESAMPLE: - case sqlParser.STRATIFY: - case sqlParser.ALTER: - case sqlParser.RENAME: - case sqlParser.ARRAY: - case sqlParser.MAP: - case sqlParser.STRUCT: - case sqlParser.COMMENT: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.DATA: - case sqlParser.START: - case sqlParser.TRANSACTION: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.MACRO: - case sqlParser.IGNORE: - case sqlParser.BOTH: - case sqlParser.LEADING: - case sqlParser.TRAILING: - case sqlParser.IF: - case sqlParser.POSITION: - case sqlParser.EXTRACT: - case sqlParser.DIV: - case sqlParser.PERCENTLIT: - case sqlParser.BUCKET: - case sqlParser.OUT: - case sqlParser.OF: - case sqlParser.SORT: - case sqlParser.CLUSTER: - case sqlParser.DISTRIBUTE: - case sqlParser.OVERWRITE: - case sqlParser.TRANSFORM: - case sqlParser.REDUCE: - case sqlParser.SERDE: - case sqlParser.SERDEPROPERTIES: - case sqlParser.RECORDREADER: - case sqlParser.RECORDWRITER: - case sqlParser.DELIMITED: - case sqlParser.FIELDS: - case sqlParser.TERMINATED: - case sqlParser.COLLECTION: - case sqlParser.ITEMS: - case sqlParser.KEYS: - case sqlParser.ESCAPED: - case sqlParser.LINES: - case sqlParser.SEPARATED: - case sqlParser.FUNCTION: - case sqlParser.EXTENDED: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.LAZY: - case sqlParser.FORMATTED: - case sqlParser.GLOBAL: - case sqlParser.TEMPORARY: - case sqlParser.OPTIONS: - case sqlParser.UNSET: - case sqlParser.TBLPROPERTIES: - case sqlParser.DBPROPERTIES: - case sqlParser.BUCKETS: - case sqlParser.SKEWED: - case sqlParser.STORED: - case sqlParser.DIRECTORIES: - case sqlParser.LOCATION: - case sqlParser.EXCHANGE: - case sqlParser.ARCHIVE: - case sqlParser.UNARCHIVE: - case sqlParser.FILEFORMAT: - case sqlParser.TOUCH: - case sqlParser.COMPACT: - case sqlParser.CONCATENATE: - case sqlParser.CHANGE: - case sqlParser.CASCADE: - case sqlParser.RESTRICT: - case sqlParser.CLUSTERED: - case sqlParser.SORTED: - case sqlParser.PURGE: - case sqlParser.INPUTFORMAT: - case sqlParser.OUTPUTFORMAT: - case sqlParser.DATABASE: - case sqlParser.DATABASES: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.COMPUTE: - case sqlParser.LIST: - case sqlParser.STATISTICS: - case sqlParser.PARTITIONED: - case sqlParser.EXTERNAL: - case sqlParser.DEFINED: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.REPAIR: - case sqlParser.RECOVER: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - case sqlParser.ROLE: - case sqlParser.ROLES: - case sqlParser.COMPACTIONS: - case sqlParser.PRINCIPALS: - case sqlParser.TRANSACTIONS: - case sqlParser.INDEX: - case sqlParser.INDEXES: - case sqlParser.LOCKS: - case sqlParser.OPTION: - case sqlParser.ANTI: - case sqlParser.LOCAL: - case sqlParser.INPATH: - case sqlParser.IDENTIFIER: - case sqlParser.BACKQUOTED_IDENTIFIER: - this.enterOuterAlt(localctx, 1); - this.state = 1239; - this.identifier(); - this.state = 1244; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__2) { - this.state = 1240; - this.match(sqlParser.T__2); - this.state = 1241; - this.identifier(); - this.state = 1246; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - break; - case sqlParser.STRING: - this.enterOuterAlt(localctx, 2); - this.state = 1247; - this.match(sqlParser.STRING); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function TablePropertyValueContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_tablePropertyValue; - return this; -} - -TablePropertyValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -TablePropertyValueContext.prototype.constructor = TablePropertyValueContext; - -TablePropertyValueContext.prototype.INTEGER_VALUE = function() { - return this.getToken(sqlParser.INTEGER_VALUE, 0); -}; - -TablePropertyValueContext.prototype.DECIMAL_VALUE = function() { - return this.getToken(sqlParser.DECIMAL_VALUE, 0); -}; - -TablePropertyValueContext.prototype.booleanValue = function() { - return this.getTypedRuleContext(BooleanValueContext,0); -}; - -TablePropertyValueContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -TablePropertyValueContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTablePropertyValue(this); - } -}; - -TablePropertyValueContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTablePropertyValue(this); - } -}; - -TablePropertyValueContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTablePropertyValue(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.TablePropertyValueContext = TablePropertyValueContext; - -sqlParser.prototype.tablePropertyValue = function() { - - var localctx = new TablePropertyValueContext(this, this._ctx, this.state); - this.enterRule(localctx, 50, sqlParser.RULE_tablePropertyValue); - try { - this.state = 1254; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.INTEGER_VALUE: - this.enterOuterAlt(localctx, 1); - this.state = 1250; - this.match(sqlParser.INTEGER_VALUE); - break; - case sqlParser.DECIMAL_VALUE: - this.enterOuterAlt(localctx, 2); - this.state = 1251; - this.match(sqlParser.DECIMAL_VALUE); - break; - case sqlParser.TRUE: - case sqlParser.FALSE: - this.enterOuterAlt(localctx, 3); - this.state = 1252; - this.booleanValue(); - break; - case sqlParser.STRING: - this.enterOuterAlt(localctx, 4); - this.state = 1253; - this.match(sqlParser.STRING); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ConstantListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_constantList; - return this; -} - -ConstantListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ConstantListContext.prototype.constructor = ConstantListContext; - -ConstantListContext.prototype.constant = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ConstantContext); - } else { - return this.getTypedRuleContext(ConstantContext,i); - } -}; - -ConstantListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterConstantList(this); - } -}; - -ConstantListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitConstantList(this); - } -}; - -ConstantListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitConstantList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ConstantListContext = ConstantListContext; - -sqlParser.prototype.constantList = function() { - - var localctx = new ConstantListContext(this, this._ctx, this.state); - this.enterRule(localctx, 52, sqlParser.RULE_constantList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1256; - this.match(sqlParser.T__0); - this.state = 1257; - this.constant(); - this.state = 1262; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1258; - this.match(sqlParser.T__3); - this.state = 1259; - this.constant(); - this.state = 1264; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1265; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function NestedConstantListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_nestedConstantList; - return this; -} - -NestedConstantListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -NestedConstantListContext.prototype.constructor = NestedConstantListContext; - -NestedConstantListContext.prototype.constantList = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ConstantListContext); - } else { - return this.getTypedRuleContext(ConstantListContext,i); - } -}; - -NestedConstantListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterNestedConstantList(this); - } -}; - -NestedConstantListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitNestedConstantList(this); - } -}; - -NestedConstantListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitNestedConstantList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.NestedConstantListContext = NestedConstantListContext; - -sqlParser.prototype.nestedConstantList = function() { - - var localctx = new NestedConstantListContext(this, this._ctx, this.state); - this.enterRule(localctx, 54, sqlParser.RULE_nestedConstantList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1267; - this.match(sqlParser.T__0); - this.state = 1268; - this.constantList(); - this.state = 1273; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1269; - this.match(sqlParser.T__3); - this.state = 1270; - this.constantList(); - this.state = 1275; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1276; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function CreateFileFormatContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_createFileFormat; - return this; -} - -CreateFileFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -CreateFileFormatContext.prototype.constructor = CreateFileFormatContext; - -CreateFileFormatContext.prototype.STORED = function() { - return this.getToken(sqlParser.STORED, 0); -}; - -CreateFileFormatContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -CreateFileFormatContext.prototype.fileFormat = function() { - return this.getTypedRuleContext(FileFormatContext,0); -}; - -CreateFileFormatContext.prototype.BY = function() { - return this.getToken(sqlParser.BY, 0); -}; - -CreateFileFormatContext.prototype.storageHandler = function() { - return this.getTypedRuleContext(StorageHandlerContext,0); -}; - -CreateFileFormatContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCreateFileFormat(this); - } -}; - -CreateFileFormatContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCreateFileFormat(this); - } -}; - -CreateFileFormatContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCreateFileFormat(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.CreateFileFormatContext = CreateFileFormatContext; - -sqlParser.prototype.createFileFormat = function() { - - var localctx = new CreateFileFormatContext(this, this._ctx, this.state); - this.enterRule(localctx, 56, sqlParser.RULE_createFileFormat); - try { - this.state = 1284; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,143,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1278; - this.match(sqlParser.STORED); - this.state = 1279; - this.match(sqlParser.AS); - this.state = 1280; - this.fileFormat(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1281; - this.match(sqlParser.STORED); - this.state = 1282; - this.match(sqlParser.BY); - this.state = 1283; - this.storageHandler(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function FileFormatContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_fileFormat; - return this; -} - -FileFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -FileFormatContext.prototype.constructor = FileFormatContext; - - - -FileFormatContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function TableFileFormatContext(parser, ctx) { - FileFormatContext.call(this, parser); - this.inFmt = null; // Token; - this.outFmt = null; // Token; - FileFormatContext.prototype.copyFrom.call(this, ctx); - return this; -} - -TableFileFormatContext.prototype = Object.create(FileFormatContext.prototype); -TableFileFormatContext.prototype.constructor = TableFileFormatContext; - -sqlParser.TableFileFormatContext = TableFileFormatContext; - -TableFileFormatContext.prototype.INPUTFORMAT = function() { - return this.getToken(sqlParser.INPUTFORMAT, 0); -}; - -TableFileFormatContext.prototype.OUTPUTFORMAT = function() { - return this.getToken(sqlParser.OUTPUTFORMAT, 0); -}; - -TableFileFormatContext.prototype.STRING = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.STRING); - } else { - return this.getToken(sqlParser.STRING, i); - } -}; - -TableFileFormatContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTableFileFormat(this); - } -}; - -TableFileFormatContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTableFileFormat(this); - } -}; - -TableFileFormatContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTableFileFormat(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function GenericFileFormatContext(parser, ctx) { - FileFormatContext.call(this, parser); - FileFormatContext.prototype.copyFrom.call(this, ctx); - return this; -} - -GenericFileFormatContext.prototype = Object.create(FileFormatContext.prototype); -GenericFileFormatContext.prototype.constructor = GenericFileFormatContext; - -sqlParser.GenericFileFormatContext = GenericFileFormatContext; - -GenericFileFormatContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; -GenericFileFormatContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterGenericFileFormat(this); - } -}; - -GenericFileFormatContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitGenericFileFormat(this); - } -}; - -GenericFileFormatContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitGenericFileFormat(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.FileFormatContext = FileFormatContext; - -sqlParser.prototype.fileFormat = function() { - - var localctx = new FileFormatContext(this, this._ctx, this.state); - this.enterRule(localctx, 58, sqlParser.RULE_fileFormat); - try { - this.state = 1291; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,144,this._ctx); - switch(la_) { - case 1: - localctx = new TableFileFormatContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 1286; - this.match(sqlParser.INPUTFORMAT); - this.state = 1287; - localctx.inFmt = this.match(sqlParser.STRING); - this.state = 1288; - this.match(sqlParser.OUTPUTFORMAT); - this.state = 1289; - localctx.outFmt = this.match(sqlParser.STRING); - break; - - case 2: - localctx = new GenericFileFormatContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 1290; - this.identifier(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function StorageHandlerContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_storageHandler; - return this; -} - -StorageHandlerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -StorageHandlerContext.prototype.constructor = StorageHandlerContext; - -StorageHandlerContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -StorageHandlerContext.prototype.WITH = function() { - return this.getToken(sqlParser.WITH, 0); -}; - -StorageHandlerContext.prototype.SERDEPROPERTIES = function() { - return this.getToken(sqlParser.SERDEPROPERTIES, 0); -}; - -StorageHandlerContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; - -StorageHandlerContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterStorageHandler(this); - } -}; - -StorageHandlerContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitStorageHandler(this); - } -}; - -StorageHandlerContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitStorageHandler(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.StorageHandlerContext = StorageHandlerContext; - -sqlParser.prototype.storageHandler = function() { - - var localctx = new StorageHandlerContext(this, this._ctx, this.state); - this.enterRule(localctx, 60, sqlParser.RULE_storageHandler); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1293; - this.match(sqlParser.STRING); - this.state = 1297; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,145,this._ctx); - if(la_===1) { - this.state = 1294; - this.match(sqlParser.WITH); - this.state = 1295; - this.match(sqlParser.SERDEPROPERTIES); - this.state = 1296; - this.tablePropertyList(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ResourceContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_resource; - return this; -} - -ResourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ResourceContext.prototype.constructor = ResourceContext; - -ResourceContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ResourceContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -ResourceContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterResource(this); - } -}; - -ResourceContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitResource(this); - } -}; - -ResourceContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitResource(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ResourceContext = ResourceContext; - -sqlParser.prototype.resource = function() { - - var localctx = new ResourceContext(this, this._ctx, this.state); - this.enterRule(localctx, 62, sqlParser.RULE_resource); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1299; - this.identifier(); - this.state = 1300; - this.match(sqlParser.STRING); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function QueryNoWithContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_queryNoWith; - return this; -} - -QueryNoWithContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -QueryNoWithContext.prototype.constructor = QueryNoWithContext; - - - -QueryNoWithContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function SingleInsertQueryContext(parser, ctx) { - QueryNoWithContext.call(this, parser); - QueryNoWithContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SingleInsertQueryContext.prototype = Object.create(QueryNoWithContext.prototype); -SingleInsertQueryContext.prototype.constructor = SingleInsertQueryContext; - -sqlParser.SingleInsertQueryContext = SingleInsertQueryContext; - -SingleInsertQueryContext.prototype.queryTerm = function() { - return this.getTypedRuleContext(QueryTermContext,0); -}; - -SingleInsertQueryContext.prototype.queryOrganization = function() { - return this.getTypedRuleContext(QueryOrganizationContext,0); -}; - -SingleInsertQueryContext.prototype.insertInto = function() { - return this.getTypedRuleContext(InsertIntoContext,0); -}; -SingleInsertQueryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSingleInsertQuery(this); - } -}; - -SingleInsertQueryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSingleInsertQuery(this); - } -}; - -SingleInsertQueryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSingleInsertQuery(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function MultiInsertQueryContext(parser, ctx) { - QueryNoWithContext.call(this, parser); - QueryNoWithContext.prototype.copyFrom.call(this, ctx); - return this; -} - -MultiInsertQueryContext.prototype = Object.create(QueryNoWithContext.prototype); -MultiInsertQueryContext.prototype.constructor = MultiInsertQueryContext; - -sqlParser.MultiInsertQueryContext = MultiInsertQueryContext; - -MultiInsertQueryContext.prototype.fromClause = function() { - return this.getTypedRuleContext(FromClauseContext,0); -}; - -MultiInsertQueryContext.prototype.multiInsertQueryBody = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(MultiInsertQueryBodyContext); - } else { - return this.getTypedRuleContext(MultiInsertQueryBodyContext,i); - } -}; -MultiInsertQueryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterMultiInsertQuery(this); - } -}; - -MultiInsertQueryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitMultiInsertQuery(this); - } -}; - -MultiInsertQueryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitMultiInsertQuery(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.QueryNoWithContext = QueryNoWithContext; - -sqlParser.prototype.queryNoWith = function() { - - var localctx = new QueryNoWithContext(this, this._ctx, this.state); - this.enterRule(localctx, 64, sqlParser.RULE_queryNoWith); - var _la = 0; // Token type - try { - this.state = 1314; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,148,this._ctx); - switch(la_) { - case 1: - localctx = new SingleInsertQueryContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 1303; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.INSERT) { - this.state = 1302; - this.insertInto(); - } - - this.state = 1305; - this.queryTerm(0); - this.state = 1306; - this.queryOrganization(); - break; - - case 2: - localctx = new MultiInsertQueryContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 1308; - this.fromClause(); - this.state = 1310; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 1309; - this.multiInsertQueryBody(); - this.state = 1312; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===sqlParser.SELECT || _la===sqlParser.FROM || _la===sqlParser.INSERT || _la===sqlParser.MAP || _la===sqlParser.REDUCE); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function QueryOrganizationContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_queryOrganization; - this._sortItem = null; // SortItemContext - this.order = []; // of SortItemContexts - this._expression = null; // ExpressionContext - this.clusterBy = []; // of ExpressionContexts - this.distributeBy = []; // of ExpressionContexts - this.sort = []; // of SortItemContexts - this.limit = null; // ExpressionContext - return this; -} - -QueryOrganizationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -QueryOrganizationContext.prototype.constructor = QueryOrganizationContext; - -QueryOrganizationContext.prototype.ORDER = function() { - return this.getToken(sqlParser.ORDER, 0); -}; - -QueryOrganizationContext.prototype.BY = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.BY); - } else { - return this.getToken(sqlParser.BY, i); - } -}; - - -QueryOrganizationContext.prototype.CLUSTER = function() { - return this.getToken(sqlParser.CLUSTER, 0); -}; - -QueryOrganizationContext.prototype.DISTRIBUTE = function() { - return this.getToken(sqlParser.DISTRIBUTE, 0); -}; - -QueryOrganizationContext.prototype.SORT = function() { - return this.getToken(sqlParser.SORT, 0); -}; - -QueryOrganizationContext.prototype.windows = function() { - return this.getTypedRuleContext(WindowsContext,0); -}; - -QueryOrganizationContext.prototype.LIMIT = function() { - return this.getToken(sqlParser.LIMIT, 0); -}; - -QueryOrganizationContext.prototype.sortItem = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(SortItemContext); - } else { - return this.getTypedRuleContext(SortItemContext,i); - } -}; - -QueryOrganizationContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -QueryOrganizationContext.prototype.ALL = function() { - return this.getToken(sqlParser.ALL, 0); -}; - -QueryOrganizationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterQueryOrganization(this); - } -}; - -QueryOrganizationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitQueryOrganization(this); - } -}; - -QueryOrganizationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitQueryOrganization(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.QueryOrganizationContext = QueryOrganizationContext; - -sqlParser.prototype.queryOrganization = function() { - - var localctx = new QueryOrganizationContext(this, this._ctx, this.state); - this.enterRule(localctx, 66, sqlParser.RULE_queryOrganization); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1326; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ORDER) { - this.state = 1316; - this.match(sqlParser.ORDER); - this.state = 1317; - this.match(sqlParser.BY); - this.state = 1318; - localctx._sortItem = this.sortItem(); - localctx.order.push(localctx._sortItem); - this.state = 1323; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1319; - this.match(sqlParser.T__3); - this.state = 1320; - localctx._sortItem = this.sortItem(); - localctx.order.push(localctx._sortItem); - this.state = 1325; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1338; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.CLUSTER) { - this.state = 1328; - this.match(sqlParser.CLUSTER); - this.state = 1329; - this.match(sqlParser.BY); - this.state = 1330; - localctx._expression = this.expression(); - localctx.clusterBy.push(localctx._expression); - this.state = 1335; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1331; - this.match(sqlParser.T__3); - this.state = 1332; - localctx._expression = this.expression(); - localctx.clusterBy.push(localctx._expression); - this.state = 1337; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1350; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.DISTRIBUTE) { - this.state = 1340; - this.match(sqlParser.DISTRIBUTE); - this.state = 1341; - this.match(sqlParser.BY); - this.state = 1342; - localctx._expression = this.expression(); - localctx.distributeBy.push(localctx._expression); - this.state = 1347; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1343; - this.match(sqlParser.T__3); - this.state = 1344; - localctx._expression = this.expression(); - localctx.distributeBy.push(localctx._expression); - this.state = 1349; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1362; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.SORT) { - this.state = 1352; - this.match(sqlParser.SORT); - this.state = 1353; - this.match(sqlParser.BY); - this.state = 1354; - localctx._sortItem = this.sortItem(); - localctx.sort.push(localctx._sortItem); - this.state = 1359; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1355; - this.match(sqlParser.T__3); - this.state = 1356; - localctx._sortItem = this.sortItem(); - localctx.sort.push(localctx._sortItem); - this.state = 1361; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1365; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.WINDOW) { - this.state = 1364; - this.windows(); - } - - this.state = 1372; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LIMIT) { - this.state = 1367; - this.match(sqlParser.LIMIT); - this.state = 1370; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,158,this._ctx); - switch(la_) { - case 1: - this.state = 1368; - this.match(sqlParser.ALL); - break; - - case 2: - this.state = 1369; - localctx.limit = this.expression(); - break; - - } - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function MultiInsertQueryBodyContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_multiInsertQueryBody; - return this; -} - -MultiInsertQueryBodyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -MultiInsertQueryBodyContext.prototype.constructor = MultiInsertQueryBodyContext; - -MultiInsertQueryBodyContext.prototype.querySpecification = function() { - return this.getTypedRuleContext(QuerySpecificationContext,0); -}; - -MultiInsertQueryBodyContext.prototype.queryOrganization = function() { - return this.getTypedRuleContext(QueryOrganizationContext,0); -}; - -MultiInsertQueryBodyContext.prototype.insertInto = function() { - return this.getTypedRuleContext(InsertIntoContext,0); -}; - -MultiInsertQueryBodyContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterMultiInsertQueryBody(this); - } -}; - -MultiInsertQueryBodyContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitMultiInsertQueryBody(this); - } -}; - -MultiInsertQueryBodyContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitMultiInsertQueryBody(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.MultiInsertQueryBodyContext = MultiInsertQueryBodyContext; - -sqlParser.prototype.multiInsertQueryBody = function() { - - var localctx = new MultiInsertQueryBodyContext(this, this._ctx, this.state); - this.enterRule(localctx, 68, sqlParser.RULE_multiInsertQueryBody); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1375; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.INSERT) { - this.state = 1374; - this.insertInto(); - } - - this.state = 1377; - this.querySpecification(); - this.state = 1378; - this.queryOrganization(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function QueryTermContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_queryTerm; - return this; -} - -QueryTermContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -QueryTermContext.prototype.constructor = QueryTermContext; - - - -QueryTermContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - -function QueryTermDefaultContext(parser, ctx) { - QueryTermContext.call(this, parser); - QueryTermContext.prototype.copyFrom.call(this, ctx); - return this; -} - -QueryTermDefaultContext.prototype = Object.create(QueryTermContext.prototype); -QueryTermDefaultContext.prototype.constructor = QueryTermDefaultContext; - -sqlParser.QueryTermDefaultContext = QueryTermDefaultContext; - -QueryTermDefaultContext.prototype.queryPrimary = function() { - return this.getTypedRuleContext(QueryPrimaryContext,0); -}; -QueryTermDefaultContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterQueryTermDefault(this); - } -}; - -QueryTermDefaultContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitQueryTermDefault(this); - } -}; - -QueryTermDefaultContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitQueryTermDefault(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SetOperationContext(parser, ctx) { - QueryTermContext.call(this, parser); - this.left = null; // QueryTermContext; - this.operator = null; // Token; - this.right = null; // QueryTermContext; - QueryTermContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SetOperationContext.prototype = Object.create(QueryTermContext.prototype); -SetOperationContext.prototype.constructor = SetOperationContext; - -sqlParser.SetOperationContext = SetOperationContext; - -SetOperationContext.prototype.queryTerm = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(QueryTermContext); - } else { - return this.getTypedRuleContext(QueryTermContext,i); - } -}; - -SetOperationContext.prototype.INTERSECT = function() { - return this.getToken(sqlParser.INTERSECT, 0); -}; - -SetOperationContext.prototype.UNION = function() { - return this.getToken(sqlParser.UNION, 0); -}; - -SetOperationContext.prototype.EXCEPT = function() { - return this.getToken(sqlParser.EXCEPT, 0); -}; - -SetOperationContext.prototype.SETMINUS = function() { - return this.getToken(sqlParser.SETMINUS, 0); -}; - -SetOperationContext.prototype.setQuantifier = function() { - return this.getTypedRuleContext(SetQuantifierContext,0); -}; -SetOperationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSetOperation(this); - } -}; - -SetOperationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSetOperation(this); - } -}; - -SetOperationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSetOperation(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.prototype.queryTerm = function(_p) { - if(_p===undefined) { - _p = 0; - } - var _parentctx = this._ctx; - var _parentState = this.state; - var localctx = new QueryTermContext(this, this._ctx, _parentState); - var _prevctx = localctx; - var _startState = 70; - this.enterRecursionRule(localctx, 70, sqlParser.RULE_queryTerm, _p); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - localctx = new QueryTermDefaultContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - - this.state = 1381; - this.queryPrimary(); - this._ctx.stop = this._input.LT(-1); - this.state = 1406; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,165,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - this.state = 1404; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,164,this._ctx); - switch(la_) { - case 1: - localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm); - this.state = 1383; - if (!( this.precpred(this._ctx, 3))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); - } - this.state = 1384; - if (!( this.legacy_setops_precedence_enbled)) { - throw new antlr4.error.FailedPredicateException(this, "this.legacy_setops_precedence_enbled"); - } - this.state = 1385; - localctx.operator = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 110)) & ~0x1f) == 0 && ((1 << (_la - 110)) & ((1 << (sqlParser.UNION - 110)) | (1 << (sqlParser.EXCEPT - 110)) | (1 << (sqlParser.SETMINUS - 110)) | (1 << (sqlParser.INTERSECT - 110)))) !== 0))) { - localctx.operator = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1387; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ALL || _la===sqlParser.DISTINCT) { - this.state = 1386; - this.setQuantifier(); - } - - this.state = 1389; - localctx.right = this.queryTerm(4); - break; - - case 2: - localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm); - this.state = 1390; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 1391; - if (!( !this.legacy_setops_precedence_enbled)) { - throw new antlr4.error.FailedPredicateException(this, "!this.legacy_setops_precedence_enbled"); - } - this.state = 1392; - localctx.operator = this.match(sqlParser.INTERSECT); - this.state = 1394; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ALL || _la===sqlParser.DISTINCT) { - this.state = 1393; - this.setQuantifier(); - } - - this.state = 1396; - localctx.right = this.queryTerm(3); - break; - - case 3: - localctx = new SetOperationContext(this, new QueryTermContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_queryTerm); - this.state = 1397; - if (!( this.precpred(this._ctx, 1))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); - } - this.state = 1398; - if (!( !this.legacy_setops_precedence_enbled)) { - throw new antlr4.error.FailedPredicateException(this, "!this.legacy_setops_precedence_enbled"); - } - this.state = 1399; - localctx.operator = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 110)) & ~0x1f) == 0 && ((1 << (_la - 110)) & ((1 << (sqlParser.UNION - 110)) | (1 << (sqlParser.EXCEPT - 110)) | (1 << (sqlParser.SETMINUS - 110)))) !== 0))) { - localctx.operator = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1401; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ALL || _la===sqlParser.DISTINCT) { - this.state = 1400; - this.setQuantifier(); - } - - this.state = 1403; - localctx.right = this.queryTerm(2); - break; - - } - } - this.state = 1408; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,165,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; -}; - -function QueryPrimaryContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_queryPrimary; - return this; -} - -QueryPrimaryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -QueryPrimaryContext.prototype.constructor = QueryPrimaryContext; - - - -QueryPrimaryContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function SubqueryContext(parser, ctx) { - QueryPrimaryContext.call(this, parser); - QueryPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SubqueryContext.prototype = Object.create(QueryPrimaryContext.prototype); -SubqueryContext.prototype.constructor = SubqueryContext; - -sqlParser.SubqueryContext = SubqueryContext; - -SubqueryContext.prototype.queryNoWith = function() { - return this.getTypedRuleContext(QueryNoWithContext,0); -}; -SubqueryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSubquery(this); - } -}; - -SubqueryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSubquery(this); - } -}; - -SubqueryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSubquery(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function QueryPrimaryDefaultContext(parser, ctx) { - QueryPrimaryContext.call(this, parser); - QueryPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -QueryPrimaryDefaultContext.prototype = Object.create(QueryPrimaryContext.prototype); -QueryPrimaryDefaultContext.prototype.constructor = QueryPrimaryDefaultContext; - -sqlParser.QueryPrimaryDefaultContext = QueryPrimaryDefaultContext; - -QueryPrimaryDefaultContext.prototype.querySpecification = function() { - return this.getTypedRuleContext(QuerySpecificationContext,0); -}; -QueryPrimaryDefaultContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterQueryPrimaryDefault(this); - } -}; - -QueryPrimaryDefaultContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitQueryPrimaryDefault(this); - } -}; - -QueryPrimaryDefaultContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitQueryPrimaryDefault(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function InlineTableDefault1Context(parser, ctx) { - QueryPrimaryContext.call(this, parser); - QueryPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -InlineTableDefault1Context.prototype = Object.create(QueryPrimaryContext.prototype); -InlineTableDefault1Context.prototype.constructor = InlineTableDefault1Context; - -sqlParser.InlineTableDefault1Context = InlineTableDefault1Context; - -InlineTableDefault1Context.prototype.inlineTable = function() { - return this.getTypedRuleContext(InlineTableContext,0); -}; -InlineTableDefault1Context.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterInlineTableDefault1(this); - } -}; - -InlineTableDefault1Context.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitInlineTableDefault1(this); - } -}; - -InlineTableDefault1Context.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitInlineTableDefault1(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function TableContext(parser, ctx) { - QueryPrimaryContext.call(this, parser); - QueryPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -TableContext.prototype = Object.create(QueryPrimaryContext.prototype); -TableContext.prototype.constructor = TableContext; - -sqlParser.TableContext = TableContext; - -TableContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -TableContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; -TableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTable(this); - } -}; - -TableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTable(this); - } -}; - -TableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.QueryPrimaryContext = QueryPrimaryContext; - -sqlParser.prototype.queryPrimary = function() { - - var localctx = new QueryPrimaryContext(this, this._ctx, this.state); - this.enterRule(localctx, 72, sqlParser.RULE_queryPrimary); - try { - this.state = 1417; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.MAP: - case sqlParser.REDUCE: - localctx = new QueryPrimaryDefaultContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 1409; - this.querySpecification(); - break; - case sqlParser.TABLE: - localctx = new TableContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 1410; - this.match(sqlParser.TABLE); - this.state = 1411; - this.tableIdentifier(); - break; - case sqlParser.VALUES: - localctx = new InlineTableDefault1Context(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 1412; - this.inlineTable(); - break; - case sqlParser.T__0: - localctx = new SubqueryContext(this, localctx); - this.enterOuterAlt(localctx, 4); - this.state = 1413; - this.match(sqlParser.T__0); - this.state = 1414; - this.queryNoWith(); - this.state = 1415; - this.match(sqlParser.T__1); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SortItemContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_sortItem; - this.ordering = null; // Token - this.nullOrder = null; // Token - return this; -} - -SortItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SortItemContext.prototype.constructor = SortItemContext; - -SortItemContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -SortItemContext.prototype.NULLS = function() { - return this.getToken(sqlParser.NULLS, 0); -}; - -SortItemContext.prototype.ASC = function() { - return this.getToken(sqlParser.ASC, 0); -}; - -SortItemContext.prototype.DESC = function() { - return this.getToken(sqlParser.DESC, 0); -}; - -SortItemContext.prototype.LAST = function() { - return this.getToken(sqlParser.LAST, 0); -}; - -SortItemContext.prototype.FIRST = function() { - return this.getToken(sqlParser.FIRST, 0); -}; - -SortItemContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSortItem(this); - } -}; - -SortItemContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSortItem(this); - } -}; - -SortItemContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSortItem(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SortItemContext = SortItemContext; - -sqlParser.prototype.sortItem = function() { - - var localctx = new SortItemContext(this, this._ctx, this.state); - this.enterRule(localctx, 74, sqlParser.RULE_sortItem); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1419; - this.expression(); - this.state = 1421; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ASC || _la===sqlParser.DESC) { - this.state = 1420; - localctx.ordering = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.ASC || _la===sqlParser.DESC)) { - localctx.ordering = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - - this.state = 1425; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.NULLS) { - this.state = 1423; - this.match(sqlParser.NULLS); - this.state = 1424; - localctx.nullOrder = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.FIRST || _la===sqlParser.LAST)) { - localctx.nullOrder = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function QuerySpecificationContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_querySpecification; - this.kind = null; // Token - this.inRowFormat = null; // RowFormatContext - this.recordWriter = null; // Token - this.script = null; // Token - this.outRowFormat = null; // RowFormatContext - this.recordReader = null; // Token - this.where = null; // BooleanExpressionContext - this._hint = null; // HintContext - this.hints = []; // of HintContexts - this.having = null; // BooleanExpressionContext - return this; -} - -QuerySpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -QuerySpecificationContext.prototype.constructor = QuerySpecificationContext; - -QuerySpecificationContext.prototype.USING = function() { - return this.getToken(sqlParser.USING, 0); -}; - -QuerySpecificationContext.prototype.STRING = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.STRING); - } else { - return this.getToken(sqlParser.STRING, i); - } -}; - - -QuerySpecificationContext.prototype.RECORDWRITER = function() { - return this.getToken(sqlParser.RECORDWRITER, 0); -}; - -QuerySpecificationContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -QuerySpecificationContext.prototype.RECORDREADER = function() { - return this.getToken(sqlParser.RECORDREADER, 0); -}; - -QuerySpecificationContext.prototype.fromClause = function() { - return this.getTypedRuleContext(FromClauseContext,0); -}; - -QuerySpecificationContext.prototype.WHERE = function() { - return this.getToken(sqlParser.WHERE, 0); -}; - -QuerySpecificationContext.prototype.SELECT = function() { - return this.getToken(sqlParser.SELECT, 0); -}; - -QuerySpecificationContext.prototype.namedExpressionSeq = function() { - return this.getTypedRuleContext(NamedExpressionSeqContext,0); -}; - -QuerySpecificationContext.prototype.rowFormat = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(RowFormatContext); - } else { - return this.getTypedRuleContext(RowFormatContext,i); - } -}; - -QuerySpecificationContext.prototype.booleanExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(BooleanExpressionContext); - } else { - return this.getTypedRuleContext(BooleanExpressionContext,i); - } -}; - -QuerySpecificationContext.prototype.TRANSFORM = function() { - return this.getToken(sqlParser.TRANSFORM, 0); -}; - -QuerySpecificationContext.prototype.MAP = function() { - return this.getToken(sqlParser.MAP, 0); -}; - -QuerySpecificationContext.prototype.REDUCE = function() { - return this.getToken(sqlParser.REDUCE, 0); -}; - -QuerySpecificationContext.prototype.identifierSeq = function() { - return this.getTypedRuleContext(IdentifierSeqContext,0); -}; - -QuerySpecificationContext.prototype.colTypeList = function() { - return this.getTypedRuleContext(ColTypeListContext,0); -}; - -QuerySpecificationContext.prototype.lateralView = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(LateralViewContext); - } else { - return this.getTypedRuleContext(LateralViewContext,i); - } -}; - -QuerySpecificationContext.prototype.aggregation = function() { - return this.getTypedRuleContext(AggregationContext,0); -}; - -QuerySpecificationContext.prototype.HAVING = function() { - return this.getToken(sqlParser.HAVING, 0); -}; - -QuerySpecificationContext.prototype.windows = function() { - return this.getTypedRuleContext(WindowsContext,0); -}; - -QuerySpecificationContext.prototype.setQuantifier = function() { - return this.getTypedRuleContext(SetQuantifierContext,0); -}; - -QuerySpecificationContext.prototype.hint = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(HintContext); - } else { - return this.getTypedRuleContext(HintContext,i); - } -}; - -QuerySpecificationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterQuerySpecification(this); - } -}; - -QuerySpecificationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitQuerySpecification(this); - } -}; - -QuerySpecificationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitQuerySpecification(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.QuerySpecificationContext = QuerySpecificationContext; - -sqlParser.prototype.querySpecification = function() { - - var localctx = new QuerySpecificationContext(this, this._ctx, this.state); - this.enterRule(localctx, 76, sqlParser.RULE_querySpecification); - var _la = 0; // Token type - try { - this.state = 1520; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,190,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1437; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - this.state = 1427; - this.match(sqlParser.SELECT); - this.state = 1428; - localctx.kind = this.match(sqlParser.TRANSFORM); - this.state = 1429; - this.match(sqlParser.T__0); - this.state = 1430; - this.namedExpressionSeq(); - this.state = 1431; - this.match(sqlParser.T__1); - break; - case sqlParser.MAP: - this.state = 1433; - localctx.kind = this.match(sqlParser.MAP); - this.state = 1434; - this.namedExpressionSeq(); - break; - case sqlParser.REDUCE: - this.state = 1435; - localctx.kind = this.match(sqlParser.REDUCE); - this.state = 1436; - this.namedExpressionSeq(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1440; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ROW) { - this.state = 1439; - localctx.inRowFormat = this.rowFormat(); - } - - this.state = 1444; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.RECORDWRITER) { - this.state = 1442; - this.match(sqlParser.RECORDWRITER); - this.state = 1443; - localctx.recordWriter = this.match(sqlParser.STRING); - } - - this.state = 1446; - this.match(sqlParser.USING); - this.state = 1447; - localctx.script = this.match(sqlParser.STRING); - this.state = 1460; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,174,this._ctx); - if(la_===1) { - this.state = 1448; - this.match(sqlParser.AS); - this.state = 1458; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,173,this._ctx); - switch(la_) { - case 1: - this.state = 1449; - this.identifierSeq(); - break; - - case 2: - this.state = 1450; - this.colTypeList(); - break; - - case 3: - this.state = 1451; - this.match(sqlParser.T__0); - this.state = 1454; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,172,this._ctx); - switch(la_) { - case 1: - this.state = 1452; - this.identifierSeq(); - break; - - case 2: - this.state = 1453; - this.colTypeList(); - break; - - } - this.state = 1456; - this.match(sqlParser.T__1); - break; - - } - - } - this.state = 1463; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,175,this._ctx); - if(la_===1) { - this.state = 1462; - localctx.outRowFormat = this.rowFormat(); - - } - this.state = 1467; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,176,this._ctx); - if(la_===1) { - this.state = 1465; - this.match(sqlParser.RECORDREADER); - this.state = 1466; - localctx.recordReader = this.match(sqlParser.STRING); - - } - this.state = 1470; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,177,this._ctx); - if(la_===1) { - this.state = 1469; - this.fromClause(); - - } - this.state = 1474; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,178,this._ctx); - if(la_===1) { - this.state = 1472; - this.match(sqlParser.WHERE); - this.state = 1473; - localctx.where = this.booleanExpression(0); - - } - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1498; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - this.state = 1476; - localctx.kind = this.match(sqlParser.SELECT); - this.state = 1480; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__4) { - this.state = 1477; - localctx._hint = this.hint(); - localctx.hints.push(localctx._hint); - this.state = 1482; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1484; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,180,this._ctx); - if(la_===1) { - this.state = 1483; - this.setQuantifier(); - - } - this.state = 1486; - this.namedExpressionSeq(); - this.state = 1488; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,181,this._ctx); - if(la_===1) { - this.state = 1487; - this.fromClause(); - - } - break; - case sqlParser.FROM: - this.state = 1490; - this.fromClause(); - this.state = 1496; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,183,this._ctx); - if(la_===1) { - this.state = 1491; - localctx.kind = this.match(sqlParser.SELECT); - this.state = 1493; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,182,this._ctx); - if(la_===1) { - this.state = 1492; - this.setQuantifier(); - - } - this.state = 1495; - this.namedExpressionSeq(); - - } - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 1503; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,185,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1500; - this.lateralView(); - } - this.state = 1505; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,185,this._ctx); - } - - this.state = 1508; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,186,this._ctx); - if(la_===1) { - this.state = 1506; - this.match(sqlParser.WHERE); - this.state = 1507; - localctx.where = this.booleanExpression(0); - - } - this.state = 1511; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,187,this._ctx); - if(la_===1) { - this.state = 1510; - this.aggregation(); - - } - this.state = 1515; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,188,this._ctx); - if(la_===1) { - this.state = 1513; - this.match(sqlParser.HAVING); - this.state = 1514; - localctx.having = this.booleanExpression(0); - - } - this.state = 1518; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,189,this._ctx); - if(la_===1) { - this.state = 1517; - this.windows(); - - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function HintContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_hint; - this._hintStatement = null; // HintStatementContext - this.hintStatements = []; // of HintStatementContexts - return this; -} - -HintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -HintContext.prototype.constructor = HintContext; - -HintContext.prototype.hintStatement = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(HintStatementContext); - } else { - return this.getTypedRuleContext(HintStatementContext,i); - } -}; - -HintContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterHint(this); - } -}; - -HintContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitHint(this); - } -}; - -HintContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitHint(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.HintContext = HintContext; - -sqlParser.prototype.hint = function() { - - var localctx = new HintContext(this, this._ctx, this.state); - this.enterRule(localctx, 78, sqlParser.RULE_hint); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1522; - this.match(sqlParser.T__4); - this.state = 1523; - localctx._hintStatement = this.hintStatement(); - localctx.hintStatements.push(localctx._hintStatement); - this.state = 1530; - this._errHandler.sync(this); - _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__3) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.ROLLUP - 32)) | (1 << (sqlParser.ORDER - 32)) | (1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.LEFT - 64)) | (1 << (sqlParser.SEMI - 64)) | (1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.EXPLAIN - 96)) | (1 << (sqlParser.FORMAT - 96)) | (1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.COMMIT - 128)) | (1 << (sqlParser.ROLLBACK - 128)) | (1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.OF - 160)) | (1 << (sqlParser.SORT - 160)) | (1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.UNSET - 192)) | (1 << (sqlParser.TBLPROPERTIES - 192)) | (1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.EXTERNAL - 224)) | (1 << (sqlParser.DEFINED - 224)) | (1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || _la===sqlParser.IDENTIFIER || _la===sqlParser.BACKQUOTED_IDENTIFIER) { - this.state = 1525; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.T__3) { - this.state = 1524; - this.match(sqlParser.T__3); - } - - this.state = 1527; - localctx._hintStatement = this.hintStatement(); - localctx.hintStatements.push(localctx._hintStatement); - this.state = 1532; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1533; - this.match(sqlParser.T__5); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function HintStatementContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_hintStatement; - this.hintName = null; // IdentifierContext - this._primaryExpression = null; // PrimaryExpressionContext - this.parameters = []; // of PrimaryExpressionContexts - return this; -} - -HintStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -HintStatementContext.prototype.constructor = HintStatementContext; - -HintStatementContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -HintStatementContext.prototype.primaryExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PrimaryExpressionContext); - } else { - return this.getTypedRuleContext(PrimaryExpressionContext,i); - } -}; - -HintStatementContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterHintStatement(this); - } -}; - -HintStatementContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitHintStatement(this); - } -}; - -HintStatementContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitHintStatement(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.HintStatementContext = HintStatementContext; - -sqlParser.prototype.hintStatement = function() { - - var localctx = new HintStatementContext(this, this._ctx, this.state); - this.enterRule(localctx, 80, sqlParser.RULE_hintStatement); - var _la = 0; // Token type - try { - this.state = 1548; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,194,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1535; - localctx.hintName = this.identifier(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1536; - localctx.hintName = this.identifier(); - this.state = 1537; - this.match(sqlParser.T__0); - this.state = 1538; - localctx._primaryExpression = this.primaryExpression(0); - localctx.parameters.push(localctx._primaryExpression); - this.state = 1543; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1539; - this.match(sqlParser.T__3); - this.state = 1540; - localctx._primaryExpression = this.primaryExpression(0); - localctx.parameters.push(localctx._primaryExpression); - this.state = 1545; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1546; - this.match(sqlParser.T__1); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function FromClauseContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_fromClause; - return this; -} - -FromClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -FromClauseContext.prototype.constructor = FromClauseContext; - -FromClauseContext.prototype.FROM = function() { - return this.getToken(sqlParser.FROM, 0); -}; - -FromClauseContext.prototype.relation = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(RelationContext); - } else { - return this.getTypedRuleContext(RelationContext,i); - } -}; - -FromClauseContext.prototype.lateralView = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(LateralViewContext); - } else { - return this.getTypedRuleContext(LateralViewContext,i); - } -}; - -FromClauseContext.prototype.pivotClause = function() { - return this.getTypedRuleContext(PivotClauseContext,0); -}; - -FromClauseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterFromClause(this); - } -}; - -FromClauseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitFromClause(this); - } -}; - -FromClauseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitFromClause(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.FromClauseContext = FromClauseContext; - -sqlParser.prototype.fromClause = function() { - - var localctx = new FromClauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 82, sqlParser.RULE_fromClause); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1550; - this.match(sqlParser.FROM); - this.state = 1551; - this.relation(); - this.state = 1556; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,195,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1552; - this.match(sqlParser.T__3); - this.state = 1553; - this.relation(); - } - this.state = 1558; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,195,this._ctx); - } - - this.state = 1562; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,196,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1559; - this.lateralView(); - } - this.state = 1564; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,196,this._ctx); - } - - this.state = 1566; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,197,this._ctx); - if(la_===1) { - this.state = 1565; - this.pivotClause(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function AggregationContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_aggregation; - this._expression = null; // ExpressionContext - this.groupingExpressions = []; // of ExpressionContexts - this.kind = null; // Token - return this; -} - -AggregationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -AggregationContext.prototype.constructor = AggregationContext; - -AggregationContext.prototype.GROUP = function() { - return this.getToken(sqlParser.GROUP, 0); -}; - -AggregationContext.prototype.BY = function() { - return this.getToken(sqlParser.BY, 0); -}; - -AggregationContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -AggregationContext.prototype.WITH = function() { - return this.getToken(sqlParser.WITH, 0); -}; - -AggregationContext.prototype.SETS = function() { - return this.getToken(sqlParser.SETS, 0); -}; - -AggregationContext.prototype.groupingSet = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(GroupingSetContext); - } else { - return this.getTypedRuleContext(GroupingSetContext,i); - } -}; - -AggregationContext.prototype.ROLLUP = function() { - return this.getToken(sqlParser.ROLLUP, 0); -}; - -AggregationContext.prototype.CUBE = function() { - return this.getToken(sqlParser.CUBE, 0); -}; - -AggregationContext.prototype.GROUPING = function() { - return this.getToken(sqlParser.GROUPING, 0); -}; - -AggregationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterAggregation(this); - } -}; - -AggregationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitAggregation(this); - } -}; - -AggregationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitAggregation(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.AggregationContext = AggregationContext; - -sqlParser.prototype.aggregation = function() { - - var localctx = new AggregationContext(this, this._ctx, this.state); - this.enterRule(localctx, 84, sqlParser.RULE_aggregation); - var _la = 0; // Token type - try { - this.state = 1612; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,202,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1568; - this.match(sqlParser.GROUP); - this.state = 1569; - this.match(sqlParser.BY); - this.state = 1570; - localctx._expression = this.expression(); - localctx.groupingExpressions.push(localctx._expression); - this.state = 1575; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,198,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1571; - this.match(sqlParser.T__3); - this.state = 1572; - localctx._expression = this.expression(); - localctx.groupingExpressions.push(localctx._expression); - } - this.state = 1577; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,198,this._ctx); - } - - this.state = 1595; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,200,this._ctx); - if(la_===1) { - this.state = 1578; - this.match(sqlParser.WITH); - this.state = 1579; - localctx.kind = this.match(sqlParser.ROLLUP); - - } else if(la_===2) { - this.state = 1580; - this.match(sqlParser.WITH); - this.state = 1581; - localctx.kind = this.match(sqlParser.CUBE); - - } else if(la_===3) { - this.state = 1582; - localctx.kind = this.match(sqlParser.GROUPING); - this.state = 1583; - this.match(sqlParser.SETS); - this.state = 1584; - this.match(sqlParser.T__0); - this.state = 1585; - this.groupingSet(); - this.state = 1590; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1586; - this.match(sqlParser.T__3); - this.state = 1587; - this.groupingSet(); - this.state = 1592; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1593; - this.match(sqlParser.T__1); - - } - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1597; - this.match(sqlParser.GROUP); - this.state = 1598; - this.match(sqlParser.BY); - this.state = 1599; - localctx.kind = this.match(sqlParser.GROUPING); - this.state = 1600; - this.match(sqlParser.SETS); - this.state = 1601; - this.match(sqlParser.T__0); - this.state = 1602; - this.groupingSet(); - this.state = 1607; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1603; - this.match(sqlParser.T__3); - this.state = 1604; - this.groupingSet(); - this.state = 1609; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1610; - this.match(sqlParser.T__1); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function GroupingSetContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_groupingSet; - return this; -} - -GroupingSetContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -GroupingSetContext.prototype.constructor = GroupingSetContext; - -GroupingSetContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -GroupingSetContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterGroupingSet(this); - } -}; - -GroupingSetContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitGroupingSet(this); - } -}; - -GroupingSetContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitGroupingSet(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.GroupingSetContext = GroupingSetContext; - -sqlParser.prototype.groupingSet = function() { - - var localctx = new GroupingSetContext(this, this._ctx, this.state); - this.enterRule(localctx, 86, sqlParser.RULE_groupingSet); - var _la = 0; // Token type - try { - this.state = 1627; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,205,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1614; - this.match(sqlParser.T__0); - this.state = 1623; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.ROLLUP - 32)) | (1 << (sqlParser.ORDER - 32)) | (1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.LEFT - 64)) | (1 << (sqlParser.SEMI - 64)) | (1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.EXPLAIN - 96)) | (1 << (sqlParser.FORMAT - 96)) | (1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.COMMIT - 128)) | (1 << (sqlParser.ROLLBACK - 128)) | (1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.OF - 160)) | (1 << (sqlParser.SORT - 160)) | (1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.UNSET - 192)) | (1 << (sqlParser.TBLPROPERTIES - 192)) | (1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.EXTERNAL - 224)) | (1 << (sqlParser.DEFINED - 224)) | (1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 261)) & ~0x1f) == 0 && ((1 << (_la - 261)) & ((1 << (sqlParser.STRING - 261)) | (1 << (sqlParser.BIGINT_LITERAL - 261)) | (1 << (sqlParser.SMALLINT_LITERAL - 261)) | (1 << (sqlParser.TINYINT_LITERAL - 261)) | (1 << (sqlParser.INTEGER_VALUE - 261)) | (1 << (sqlParser.DECIMAL_VALUE - 261)) | (1 << (sqlParser.DOUBLE_LITERAL - 261)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 261)) | (1 << (sqlParser.IDENTIFIER - 261)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 261)))) !== 0)) { - this.state = 1615; - this.expression(); - this.state = 1620; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1616; - this.match(sqlParser.T__3); - this.state = 1617; - this.expression(); - this.state = 1622; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1625; - this.match(sqlParser.T__1); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1626; - this.expression(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PivotClauseContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_pivotClause; - this.aggregates = null; // NamedExpressionSeqContext - this._pivotValue = null; // PivotValueContext - this.pivotValues = []; // of PivotValueContexts - return this; -} - -PivotClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PivotClauseContext.prototype.constructor = PivotClauseContext; - -PivotClauseContext.prototype.PIVOT = function() { - return this.getToken(sqlParser.PIVOT, 0); -}; - -PivotClauseContext.prototype.FOR = function() { - return this.getToken(sqlParser.FOR, 0); -}; - -PivotClauseContext.prototype.pivotColumn = function() { - return this.getTypedRuleContext(PivotColumnContext,0); -}; - -PivotClauseContext.prototype.IN = function() { - return this.getToken(sqlParser.IN, 0); -}; - -PivotClauseContext.prototype.namedExpressionSeq = function() { - return this.getTypedRuleContext(NamedExpressionSeqContext,0); -}; - -PivotClauseContext.prototype.pivotValue = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PivotValueContext); - } else { - return this.getTypedRuleContext(PivotValueContext,i); - } -}; - -PivotClauseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPivotClause(this); - } -}; - -PivotClauseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPivotClause(this); - } -}; - -PivotClauseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPivotClause(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PivotClauseContext = PivotClauseContext; - -sqlParser.prototype.pivotClause = function() { - - var localctx = new PivotClauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 88, sqlParser.RULE_pivotClause); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1629; - this.match(sqlParser.PIVOT); - this.state = 1630; - this.match(sqlParser.T__0); - this.state = 1631; - localctx.aggregates = this.namedExpressionSeq(); - this.state = 1632; - this.match(sqlParser.FOR); - this.state = 1633; - this.pivotColumn(); - this.state = 1634; - this.match(sqlParser.IN); - this.state = 1635; - this.match(sqlParser.T__0); - this.state = 1636; - localctx._pivotValue = this.pivotValue(); - localctx.pivotValues.push(localctx._pivotValue); - this.state = 1641; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1637; - this.match(sqlParser.T__3); - this.state = 1638; - localctx._pivotValue = this.pivotValue(); - localctx.pivotValues.push(localctx._pivotValue); - this.state = 1643; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1644; - this.match(sqlParser.T__1); - this.state = 1645; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PivotColumnContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_pivotColumn; - this._identifier = null; // IdentifierContext - this.identifiers = []; // of IdentifierContexts - return this; -} - -PivotColumnContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PivotColumnContext.prototype.constructor = PivotColumnContext; - -PivotColumnContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -PivotColumnContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPivotColumn(this); - } -}; - -PivotColumnContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPivotColumn(this); - } -}; - -PivotColumnContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPivotColumn(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PivotColumnContext = PivotColumnContext; - -sqlParser.prototype.pivotColumn = function() { - - var localctx = new PivotColumnContext(this, this._ctx, this.state); - this.enterRule(localctx, 90, sqlParser.RULE_pivotColumn); - var _la = 0; // Token type - try { - this.state = 1659; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.AS: - case sqlParser.ALL: - case sqlParser.ANY: - case sqlParser.DISTINCT: - case sqlParser.WHERE: - case sqlParser.GROUP: - case sqlParser.BY: - case sqlParser.GROUPING: - case sqlParser.SETS: - case sqlParser.CUBE: - case sqlParser.ROLLUP: - case sqlParser.ORDER: - case sqlParser.HAVING: - case sqlParser.LIMIT: - case sqlParser.AT: - case sqlParser.OR: - case sqlParser.AND: - case sqlParser.IN: - case sqlParser.NOT: - case sqlParser.NO: - case sqlParser.EXISTS: - case sqlParser.BETWEEN: - case sqlParser.LIKE: - case sqlParser.RLIKE: - case sqlParser.IS: - case sqlParser.NULL: - case sqlParser.TRUE: - case sqlParser.FALSE: - case sqlParser.NULLS: - case sqlParser.ASC: - case sqlParser.DESC: - case sqlParser.FOR: - case sqlParser.INTERVAL: - case sqlParser.CASE: - case sqlParser.WHEN: - case sqlParser.THEN: - case sqlParser.ELSE: - case sqlParser.END: - case sqlParser.JOIN: - case sqlParser.CROSS: - case sqlParser.OUTER: - case sqlParser.INNER: - case sqlParser.LEFT: - case sqlParser.SEMI: - case sqlParser.RIGHT: - case sqlParser.FULL: - case sqlParser.NATURAL: - case sqlParser.ON: - case sqlParser.PIVOT: - case sqlParser.LATERAL: - case sqlParser.WINDOW: - case sqlParser.OVER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.UNBOUNDED: - case sqlParser.PRECEDING: - case sqlParser.FOLLOWING: - case sqlParser.CURRENT: - case sqlParser.FIRST: - case sqlParser.AFTER: - case sqlParser.LAST: - case sqlParser.ROW: - case sqlParser.WITH: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.DIRECTORY: - case sqlParser.VIEW: - case sqlParser.REPLACE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.INTO: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.FORMAT: - case sqlParser.LOGICAL: - case sqlParser.CODEGEN: - case sqlParser.COST: - case sqlParser.CAST: - case sqlParser.SHOW: - case sqlParser.TABLES: - case sqlParser.COLUMNS: - case sqlParser.COLUMN: - case sqlParser.USE: - case sqlParser.PARTITIONS: - case sqlParser.FUNCTIONS: - case sqlParser.DROP: - case sqlParser.UNION: - case sqlParser.EXCEPT: - case sqlParser.SETMINUS: - case sqlParser.INTERSECT: - case sqlParser.TO: - case sqlParser.TABLESAMPLE: - case sqlParser.STRATIFY: - case sqlParser.ALTER: - case sqlParser.RENAME: - case sqlParser.ARRAY: - case sqlParser.MAP: - case sqlParser.STRUCT: - case sqlParser.COMMENT: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.DATA: - case sqlParser.START: - case sqlParser.TRANSACTION: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.MACRO: - case sqlParser.IGNORE: - case sqlParser.BOTH: - case sqlParser.LEADING: - case sqlParser.TRAILING: - case sqlParser.IF: - case sqlParser.POSITION: - case sqlParser.EXTRACT: - case sqlParser.DIV: - case sqlParser.PERCENTLIT: - case sqlParser.BUCKET: - case sqlParser.OUT: - case sqlParser.OF: - case sqlParser.SORT: - case sqlParser.CLUSTER: - case sqlParser.DISTRIBUTE: - case sqlParser.OVERWRITE: - case sqlParser.TRANSFORM: - case sqlParser.REDUCE: - case sqlParser.SERDE: - case sqlParser.SERDEPROPERTIES: - case sqlParser.RECORDREADER: - case sqlParser.RECORDWRITER: - case sqlParser.DELIMITED: - case sqlParser.FIELDS: - case sqlParser.TERMINATED: - case sqlParser.COLLECTION: - case sqlParser.ITEMS: - case sqlParser.KEYS: - case sqlParser.ESCAPED: - case sqlParser.LINES: - case sqlParser.SEPARATED: - case sqlParser.FUNCTION: - case sqlParser.EXTENDED: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.LAZY: - case sqlParser.FORMATTED: - case sqlParser.GLOBAL: - case sqlParser.TEMPORARY: - case sqlParser.OPTIONS: - case sqlParser.UNSET: - case sqlParser.TBLPROPERTIES: - case sqlParser.DBPROPERTIES: - case sqlParser.BUCKETS: - case sqlParser.SKEWED: - case sqlParser.STORED: - case sqlParser.DIRECTORIES: - case sqlParser.LOCATION: - case sqlParser.EXCHANGE: - case sqlParser.ARCHIVE: - case sqlParser.UNARCHIVE: - case sqlParser.FILEFORMAT: - case sqlParser.TOUCH: - case sqlParser.COMPACT: - case sqlParser.CONCATENATE: - case sqlParser.CHANGE: - case sqlParser.CASCADE: - case sqlParser.RESTRICT: - case sqlParser.CLUSTERED: - case sqlParser.SORTED: - case sqlParser.PURGE: - case sqlParser.INPUTFORMAT: - case sqlParser.OUTPUTFORMAT: - case sqlParser.DATABASE: - case sqlParser.DATABASES: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.COMPUTE: - case sqlParser.LIST: - case sqlParser.STATISTICS: - case sqlParser.PARTITIONED: - case sqlParser.EXTERNAL: - case sqlParser.DEFINED: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.REPAIR: - case sqlParser.RECOVER: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - case sqlParser.ROLE: - case sqlParser.ROLES: - case sqlParser.COMPACTIONS: - case sqlParser.PRINCIPALS: - case sqlParser.TRANSACTIONS: - case sqlParser.INDEX: - case sqlParser.INDEXES: - case sqlParser.LOCKS: - case sqlParser.OPTION: - case sqlParser.ANTI: - case sqlParser.LOCAL: - case sqlParser.INPATH: - case sqlParser.IDENTIFIER: - case sqlParser.BACKQUOTED_IDENTIFIER: - this.enterOuterAlt(localctx, 1); - this.state = 1647; - localctx._identifier = this.identifier(); - localctx.identifiers.push(localctx._identifier); - break; - case sqlParser.T__0: - this.enterOuterAlt(localctx, 2); - this.state = 1648; - this.match(sqlParser.T__0); - this.state = 1649; - localctx._identifier = this.identifier(); - localctx.identifiers.push(localctx._identifier); - this.state = 1654; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1650; - this.match(sqlParser.T__3); - this.state = 1651; - localctx._identifier = this.identifier(); - localctx.identifiers.push(localctx._identifier); - this.state = 1656; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1657; - this.match(sqlParser.T__1); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PivotValueContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_pivotValue; - return this; -} - -PivotValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PivotValueContext.prototype.constructor = PivotValueContext; - -PivotValueContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -PivotValueContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -PivotValueContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -PivotValueContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPivotValue(this); - } -}; - -PivotValueContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPivotValue(this); - } -}; - -PivotValueContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPivotValue(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PivotValueContext = PivotValueContext; - -sqlParser.prototype.pivotValue = function() { - - var localctx = new PivotValueContext(this, this._ctx, this.state); - this.enterRule(localctx, 92, sqlParser.RULE_pivotValue); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1661; - this.expression(); - this.state = 1666; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(((((_la - 19)) & ~0x1f) == 0 && ((1 << (_la - 19)) & ((1 << (sqlParser.SELECT - 19)) | (1 << (sqlParser.FROM - 19)) | (1 << (sqlParser.ADD - 19)) | (1 << (sqlParser.AS - 19)) | (1 << (sqlParser.ALL - 19)) | (1 << (sqlParser.ANY - 19)) | (1 << (sqlParser.DISTINCT - 19)) | (1 << (sqlParser.WHERE - 19)) | (1 << (sqlParser.GROUP - 19)) | (1 << (sqlParser.BY - 19)) | (1 << (sqlParser.GROUPING - 19)) | (1 << (sqlParser.SETS - 19)) | (1 << (sqlParser.CUBE - 19)) | (1 << (sqlParser.ROLLUP - 19)) | (1 << (sqlParser.ORDER - 19)) | (1 << (sqlParser.HAVING - 19)) | (1 << (sqlParser.LIMIT - 19)) | (1 << (sqlParser.AT - 19)) | (1 << (sqlParser.OR - 19)) | (1 << (sqlParser.AND - 19)) | (1 << (sqlParser.IN - 19)) | (1 << (sqlParser.NOT - 19)) | (1 << (sqlParser.NO - 19)) | (1 << (sqlParser.EXISTS - 19)) | (1 << (sqlParser.BETWEEN - 19)) | (1 << (sqlParser.LIKE - 19)) | (1 << (sqlParser.RLIKE - 19)) | (1 << (sqlParser.IS - 19)) | (1 << (sqlParser.NULL - 19)) | (1 << (sqlParser.TRUE - 19)) | (1 << (sqlParser.FALSE - 19)) | (1 << (sqlParser.NULLS - 19)))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (sqlParser.ASC - 51)) | (1 << (sqlParser.DESC - 51)) | (1 << (sqlParser.FOR - 51)) | (1 << (sqlParser.INTERVAL - 51)) | (1 << (sqlParser.CASE - 51)) | (1 << (sqlParser.WHEN - 51)) | (1 << (sqlParser.THEN - 51)) | (1 << (sqlParser.ELSE - 51)) | (1 << (sqlParser.END - 51)) | (1 << (sqlParser.JOIN - 51)) | (1 << (sqlParser.CROSS - 51)) | (1 << (sqlParser.OUTER - 51)) | (1 << (sqlParser.INNER - 51)) | (1 << (sqlParser.LEFT - 51)) | (1 << (sqlParser.SEMI - 51)) | (1 << (sqlParser.RIGHT - 51)) | (1 << (sqlParser.FULL - 51)) | (1 << (sqlParser.NATURAL - 51)) | (1 << (sqlParser.ON - 51)) | (1 << (sqlParser.PIVOT - 51)) | (1 << (sqlParser.LATERAL - 51)) | (1 << (sqlParser.WINDOW - 51)) | (1 << (sqlParser.OVER - 51)) | (1 << (sqlParser.PARTITION - 51)) | (1 << (sqlParser.RANGE - 51)) | (1 << (sqlParser.ROWS - 51)) | (1 << (sqlParser.UNBOUNDED - 51)) | (1 << (sqlParser.PRECEDING - 51)) | (1 << (sqlParser.FOLLOWING - 51)) | (1 << (sqlParser.CURRENT - 51)) | (1 << (sqlParser.FIRST - 51)) | (1 << (sqlParser.AFTER - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (sqlParser.LAST - 83)) | (1 << (sqlParser.ROW - 83)) | (1 << (sqlParser.WITH - 83)) | (1 << (sqlParser.CREATE - 83)) | (1 << (sqlParser.TABLE - 83)) | (1 << (sqlParser.DIRECTORY - 83)) | (1 << (sqlParser.VIEW - 83)) | (1 << (sqlParser.REPLACE - 83)) | (1 << (sqlParser.INSERT - 83)) | (1 << (sqlParser.DELETE - 83)) | (1 << (sqlParser.INTO - 83)) | (1 << (sqlParser.DESCRIBE - 83)) | (1 << (sqlParser.EXPLAIN - 83)) | (1 << (sqlParser.FORMAT - 83)) | (1 << (sqlParser.LOGICAL - 83)) | (1 << (sqlParser.CODEGEN - 83)) | (1 << (sqlParser.COST - 83)) | (1 << (sqlParser.CAST - 83)) | (1 << (sqlParser.SHOW - 83)) | (1 << (sqlParser.TABLES - 83)) | (1 << (sqlParser.COLUMNS - 83)) | (1 << (sqlParser.COLUMN - 83)) | (1 << (sqlParser.USE - 83)) | (1 << (sqlParser.PARTITIONS - 83)) | (1 << (sqlParser.FUNCTIONS - 83)) | (1 << (sqlParser.DROP - 83)) | (1 << (sqlParser.UNION - 83)) | (1 << (sqlParser.EXCEPT - 83)) | (1 << (sqlParser.SETMINUS - 83)) | (1 << (sqlParser.INTERSECT - 83)) | (1 << (sqlParser.TO - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (sqlParser.TABLESAMPLE - 115)) | (1 << (sqlParser.STRATIFY - 115)) | (1 << (sqlParser.ALTER - 115)) | (1 << (sqlParser.RENAME - 115)) | (1 << (sqlParser.ARRAY - 115)) | (1 << (sqlParser.MAP - 115)) | (1 << (sqlParser.STRUCT - 115)) | (1 << (sqlParser.COMMENT - 115)) | (1 << (sqlParser.SET - 115)) | (1 << (sqlParser.RESET - 115)) | (1 << (sqlParser.DATA - 115)) | (1 << (sqlParser.START - 115)) | (1 << (sqlParser.TRANSACTION - 115)) | (1 << (sqlParser.COMMIT - 115)) | (1 << (sqlParser.ROLLBACK - 115)) | (1 << (sqlParser.MACRO - 115)) | (1 << (sqlParser.IGNORE - 115)) | (1 << (sqlParser.BOTH - 115)) | (1 << (sqlParser.LEADING - 115)) | (1 << (sqlParser.TRAILING - 115)) | (1 << (sqlParser.IF - 115)) | (1 << (sqlParser.POSITION - 115)) | (1 << (sqlParser.EXTRACT - 115)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (sqlParser.DIV - 151)) | (1 << (sqlParser.PERCENTLIT - 151)) | (1 << (sqlParser.BUCKET - 151)) | (1 << (sqlParser.OUT - 151)) | (1 << (sqlParser.OF - 151)) | (1 << (sqlParser.SORT - 151)) | (1 << (sqlParser.CLUSTER - 151)) | (1 << (sqlParser.DISTRIBUTE - 151)) | (1 << (sqlParser.OVERWRITE - 151)) | (1 << (sqlParser.TRANSFORM - 151)) | (1 << (sqlParser.REDUCE - 151)) | (1 << (sqlParser.SERDE - 151)) | (1 << (sqlParser.SERDEPROPERTIES - 151)) | (1 << (sqlParser.RECORDREADER - 151)) | (1 << (sqlParser.RECORDWRITER - 151)) | (1 << (sqlParser.DELIMITED - 151)) | (1 << (sqlParser.FIELDS - 151)) | (1 << (sqlParser.TERMINATED - 151)) | (1 << (sqlParser.COLLECTION - 151)) | (1 << (sqlParser.ITEMS - 151)) | (1 << (sqlParser.KEYS - 151)) | (1 << (sqlParser.ESCAPED - 151)) | (1 << (sqlParser.LINES - 151)) | (1 << (sqlParser.SEPARATED - 151)) | (1 << (sqlParser.FUNCTION - 151)) | (1 << (sqlParser.EXTENDED - 151)))) !== 0) || ((((_la - 183)) & ~0x1f) == 0 && ((1 << (_la - 183)) & ((1 << (sqlParser.REFRESH - 183)) | (1 << (sqlParser.CLEAR - 183)) | (1 << (sqlParser.CACHE - 183)) | (1 << (sqlParser.UNCACHE - 183)) | (1 << (sqlParser.LAZY - 183)) | (1 << (sqlParser.FORMATTED - 183)) | (1 << (sqlParser.GLOBAL - 183)) | (1 << (sqlParser.TEMPORARY - 183)) | (1 << (sqlParser.OPTIONS - 183)) | (1 << (sqlParser.UNSET - 183)) | (1 << (sqlParser.TBLPROPERTIES - 183)) | (1 << (sqlParser.DBPROPERTIES - 183)) | (1 << (sqlParser.BUCKETS - 183)) | (1 << (sqlParser.SKEWED - 183)) | (1 << (sqlParser.STORED - 183)) | (1 << (sqlParser.DIRECTORIES - 183)) | (1 << (sqlParser.LOCATION - 183)) | (1 << (sqlParser.EXCHANGE - 183)) | (1 << (sqlParser.ARCHIVE - 183)) | (1 << (sqlParser.UNARCHIVE - 183)) | (1 << (sqlParser.FILEFORMAT - 183)) | (1 << (sqlParser.TOUCH - 183)) | (1 << (sqlParser.COMPACT - 183)) | (1 << (sqlParser.CONCATENATE - 183)) | (1 << (sqlParser.CHANGE - 183)) | (1 << (sqlParser.CASCADE - 183)) | (1 << (sqlParser.RESTRICT - 183)) | (1 << (sqlParser.CLUSTERED - 183)) | (1 << (sqlParser.SORTED - 183)) | (1 << (sqlParser.PURGE - 183)) | (1 << (sqlParser.INPUTFORMAT - 183)) | (1 << (sqlParser.OUTPUTFORMAT - 183)))) !== 0) || ((((_la - 215)) & ~0x1f) == 0 && ((1 << (_la - 215)) & ((1 << (sqlParser.DATABASE - 215)) | (1 << (sqlParser.DATABASES - 215)) | (1 << (sqlParser.DFS - 215)) | (1 << (sqlParser.TRUNCATE - 215)) | (1 << (sqlParser.ANALYZE - 215)) | (1 << (sqlParser.COMPUTE - 215)) | (1 << (sqlParser.LIST - 215)) | (1 << (sqlParser.STATISTICS - 215)) | (1 << (sqlParser.PARTITIONED - 215)) | (1 << (sqlParser.EXTERNAL - 215)) | (1 << (sqlParser.DEFINED - 215)) | (1 << (sqlParser.REVOKE - 215)) | (1 << (sqlParser.GRANT - 215)) | (1 << (sqlParser.LOCK - 215)) | (1 << (sqlParser.UNLOCK - 215)) | (1 << (sqlParser.MSCK - 215)) | (1 << (sqlParser.REPAIR - 215)) | (1 << (sqlParser.RECOVER - 215)) | (1 << (sqlParser.EXPORT - 215)) | (1 << (sqlParser.IMPORT - 215)) | (1 << (sqlParser.LOAD - 215)) | (1 << (sqlParser.ROLE - 215)) | (1 << (sqlParser.ROLES - 215)) | (1 << (sqlParser.COMPACTIONS - 215)) | (1 << (sqlParser.PRINCIPALS - 215)) | (1 << (sqlParser.TRANSACTIONS - 215)) | (1 << (sqlParser.INDEX - 215)) | (1 << (sqlParser.INDEXES - 215)) | (1 << (sqlParser.LOCKS - 215)) | (1 << (sqlParser.OPTION - 215)) | (1 << (sqlParser.ANTI - 215)) | (1 << (sqlParser.LOCAL - 215)))) !== 0) || ((((_la - 247)) & ~0x1f) == 0 && ((1 << (_la - 247)) & ((1 << (sqlParser.INPATH - 247)) | (1 << (sqlParser.IDENTIFIER - 247)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 247)))) !== 0)) { - this.state = 1663; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,209,this._ctx); - if(la_===1) { - this.state = 1662; - this.match(sqlParser.AS); - - } - this.state = 1665; - this.identifier(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function LateralViewContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_lateralView; - this.tblName = null; // IdentifierContext - this._identifier = null; // IdentifierContext - this.colName = []; // of IdentifierContexts - return this; -} - -LateralViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -LateralViewContext.prototype.constructor = LateralViewContext; - -LateralViewContext.prototype.LATERAL = function() { - return this.getToken(sqlParser.LATERAL, 0); -}; - -LateralViewContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; - -LateralViewContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; - -LateralViewContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -LateralViewContext.prototype.OUTER = function() { - return this.getToken(sqlParser.OUTER, 0); -}; - -LateralViewContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -LateralViewContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -LateralViewContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterLateralView(this); - } -}; - -LateralViewContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitLateralView(this); - } -}; - -LateralViewContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitLateralView(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.LateralViewContext = LateralViewContext; - -sqlParser.prototype.lateralView = function() { - - var localctx = new LateralViewContext(this, this._ctx, this.state); - this.enterRule(localctx, 94, sqlParser.RULE_lateralView); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1668; - this.match(sqlParser.LATERAL); - this.state = 1669; - this.match(sqlParser.VIEW); - this.state = 1671; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,211,this._ctx); - if(la_===1) { - this.state = 1670; - this.match(sqlParser.OUTER); - - } - this.state = 1673; - this.qualifiedName(); - this.state = 1674; - this.match(sqlParser.T__0); - this.state = 1683; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.ROLLUP - 32)) | (1 << (sqlParser.ORDER - 32)) | (1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.LEFT - 64)) | (1 << (sqlParser.SEMI - 64)) | (1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.EXPLAIN - 96)) | (1 << (sqlParser.FORMAT - 96)) | (1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.COMMIT - 128)) | (1 << (sqlParser.ROLLBACK - 128)) | (1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.OF - 160)) | (1 << (sqlParser.SORT - 160)) | (1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.UNSET - 192)) | (1 << (sqlParser.TBLPROPERTIES - 192)) | (1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.EXTERNAL - 224)) | (1 << (sqlParser.DEFINED - 224)) | (1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 261)) & ~0x1f) == 0 && ((1 << (_la - 261)) & ((1 << (sqlParser.STRING - 261)) | (1 << (sqlParser.BIGINT_LITERAL - 261)) | (1 << (sqlParser.SMALLINT_LITERAL - 261)) | (1 << (sqlParser.TINYINT_LITERAL - 261)) | (1 << (sqlParser.INTEGER_VALUE - 261)) | (1 << (sqlParser.DECIMAL_VALUE - 261)) | (1 << (sqlParser.DOUBLE_LITERAL - 261)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 261)) | (1 << (sqlParser.IDENTIFIER - 261)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 261)))) !== 0)) { - this.state = 1675; - this.expression(); - this.state = 1680; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1676; - this.match(sqlParser.T__3); - this.state = 1677; - this.expression(); - this.state = 1682; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1685; - this.match(sqlParser.T__1); - this.state = 1686; - localctx.tblName = this.identifier(); - this.state = 1698; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,216,this._ctx); - if(la_===1) { - this.state = 1688; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,214,this._ctx); - if(la_===1) { - this.state = 1687; - this.match(sqlParser.AS); - - } - this.state = 1690; - localctx._identifier = this.identifier(); - localctx.colName.push(localctx._identifier); - this.state = 1695; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,215,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1691; - this.match(sqlParser.T__3); - this.state = 1692; - localctx._identifier = this.identifier(); - localctx.colName.push(localctx._identifier); - } - this.state = 1697; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,215,this._ctx); - } - - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SetQuantifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_setQuantifier; - return this; -} - -SetQuantifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SetQuantifierContext.prototype.constructor = SetQuantifierContext; - -SetQuantifierContext.prototype.DISTINCT = function() { - return this.getToken(sqlParser.DISTINCT, 0); -}; - -SetQuantifierContext.prototype.ALL = function() { - return this.getToken(sqlParser.ALL, 0); -}; - -SetQuantifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSetQuantifier(this); - } -}; - -SetQuantifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSetQuantifier(this); - } -}; - -SetQuantifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSetQuantifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SetQuantifierContext = SetQuantifierContext; - -sqlParser.prototype.setQuantifier = function() { - - var localctx = new SetQuantifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 96, sqlParser.RULE_setQuantifier); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1700; - _la = this._input.LA(1); - if(!(_la===sqlParser.ALL || _la===sqlParser.DISTINCT)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function RelationContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_relation; - return this; -} - -RelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -RelationContext.prototype.constructor = RelationContext; - -RelationContext.prototype.relationPrimary = function() { - return this.getTypedRuleContext(RelationPrimaryContext,0); -}; - -RelationContext.prototype.joinRelation = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(JoinRelationContext); - } else { - return this.getTypedRuleContext(JoinRelationContext,i); - } -}; - -RelationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRelation(this); - } -}; - -RelationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRelation(this); - } -}; - -RelationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRelation(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.RelationContext = RelationContext; - -sqlParser.prototype.relation = function() { - - var localctx = new RelationContext(this, this._ctx, this.state); - this.enterRule(localctx, 98, sqlParser.RULE_relation); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1702; - this.relationPrimary(); - this.state = 1706; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,217,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1703; - this.joinRelation(); - } - this.state = 1708; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,217,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function JoinRelationContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_joinRelation; - this.right = null; // RelationPrimaryContext - return this; -} - -JoinRelationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -JoinRelationContext.prototype.constructor = JoinRelationContext; - -JoinRelationContext.prototype.JOIN = function() { - return this.getToken(sqlParser.JOIN, 0); -}; - -JoinRelationContext.prototype.relationPrimary = function() { - return this.getTypedRuleContext(RelationPrimaryContext,0); -}; - -JoinRelationContext.prototype.joinType = function() { - return this.getTypedRuleContext(JoinTypeContext,0); -}; - -JoinRelationContext.prototype.joinCriteria = function() { - return this.getTypedRuleContext(JoinCriteriaContext,0); -}; - -JoinRelationContext.prototype.NATURAL = function() { - return this.getToken(sqlParser.NATURAL, 0); -}; - -JoinRelationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterJoinRelation(this); - } -}; - -JoinRelationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitJoinRelation(this); - } -}; - -JoinRelationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitJoinRelation(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.JoinRelationContext = JoinRelationContext; - -sqlParser.prototype.joinRelation = function() { - - var localctx = new JoinRelationContext(this, this._ctx, this.state); - this.enterRule(localctx, 100, sqlParser.RULE_joinRelation); - try { - this.state = 1720; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.JOIN: - case sqlParser.CROSS: - case sqlParser.INNER: - case sqlParser.LEFT: - case sqlParser.RIGHT: - case sqlParser.FULL: - case sqlParser.ANTI: - this.enterOuterAlt(localctx, 1); - this.state = 1709; - this.joinType(); - this.state = 1710; - this.match(sqlParser.JOIN); - this.state = 1711; - localctx.right = this.relationPrimary(); - this.state = 1713; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,218,this._ctx); - if(la_===1) { - this.state = 1712; - this.joinCriteria(); - - } - break; - case sqlParser.NATURAL: - this.enterOuterAlt(localctx, 2); - this.state = 1715; - this.match(sqlParser.NATURAL); - this.state = 1716; - this.joinType(); - this.state = 1717; - this.match(sqlParser.JOIN); - this.state = 1718; - localctx.right = this.relationPrimary(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function JoinTypeContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_joinType; - return this; -} - -JoinTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -JoinTypeContext.prototype.constructor = JoinTypeContext; - -JoinTypeContext.prototype.INNER = function() { - return this.getToken(sqlParser.INNER, 0); -}; - -JoinTypeContext.prototype.CROSS = function() { - return this.getToken(sqlParser.CROSS, 0); -}; - -JoinTypeContext.prototype.LEFT = function() { - return this.getToken(sqlParser.LEFT, 0); -}; - -JoinTypeContext.prototype.OUTER = function() { - return this.getToken(sqlParser.OUTER, 0); -}; - -JoinTypeContext.prototype.SEMI = function() { - return this.getToken(sqlParser.SEMI, 0); -}; - -JoinTypeContext.prototype.RIGHT = function() { - return this.getToken(sqlParser.RIGHT, 0); -}; - -JoinTypeContext.prototype.FULL = function() { - return this.getToken(sqlParser.FULL, 0); -}; - -JoinTypeContext.prototype.ANTI = function() { - return this.getToken(sqlParser.ANTI, 0); -}; - -JoinTypeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterJoinType(this); - } -}; - -JoinTypeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitJoinType(this); - } -}; - -JoinTypeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitJoinType(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.JoinTypeContext = JoinTypeContext; - -sqlParser.prototype.joinType = function() { - - var localctx = new JoinTypeContext(this, this._ctx, this.state); - this.enterRule(localctx, 102, sqlParser.RULE_joinType); - var _la = 0; // Token type - try { - this.state = 1744; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,225,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1723; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.INNER) { - this.state = 1722; - this.match(sqlParser.INNER); - } - - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1725; - this.match(sqlParser.CROSS); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1726; - this.match(sqlParser.LEFT); - this.state = 1728; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OUTER) { - this.state = 1727; - this.match(sqlParser.OUTER); - } - - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 1730; - this.match(sqlParser.LEFT); - this.state = 1731; - this.match(sqlParser.SEMI); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 1732; - this.match(sqlParser.RIGHT); - this.state = 1734; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OUTER) { - this.state = 1733; - this.match(sqlParser.OUTER); - } - - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 1736; - this.match(sqlParser.FULL); - this.state = 1738; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.OUTER) { - this.state = 1737; - this.match(sqlParser.OUTER); - } - - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 1741; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.LEFT) { - this.state = 1740; - this.match(sqlParser.LEFT); - } - - this.state = 1743; - this.match(sqlParser.ANTI); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function JoinCriteriaContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_joinCriteria; - return this; -} - -JoinCriteriaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -JoinCriteriaContext.prototype.constructor = JoinCriteriaContext; - -JoinCriteriaContext.prototype.ON = function() { - return this.getToken(sqlParser.ON, 0); -}; - -JoinCriteriaContext.prototype.booleanExpression = function() { - return this.getTypedRuleContext(BooleanExpressionContext,0); -}; - -JoinCriteriaContext.prototype.USING = function() { - return this.getToken(sqlParser.USING, 0); -}; - -JoinCriteriaContext.prototype.identifierList = function() { - return this.getTypedRuleContext(IdentifierListContext,0); -}; - -JoinCriteriaContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterJoinCriteria(this); - } -}; - -JoinCriteriaContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitJoinCriteria(this); - } -}; - -JoinCriteriaContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitJoinCriteria(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.JoinCriteriaContext = JoinCriteriaContext; - -sqlParser.prototype.joinCriteria = function() { - - var localctx = new JoinCriteriaContext(this, this._ctx, this.state); - this.enterRule(localctx, 104, sqlParser.RULE_joinCriteria); - try { - this.state = 1750; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.ON: - this.enterOuterAlt(localctx, 1); - this.state = 1746; - this.match(sqlParser.ON); - this.state = 1747; - this.booleanExpression(0); - break; - case sqlParser.USING: - this.enterOuterAlt(localctx, 2); - this.state = 1748; - this.match(sqlParser.USING); - this.state = 1749; - this.identifierList(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SampleContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_sample; - return this; -} - -SampleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SampleContext.prototype.constructor = SampleContext; - -SampleContext.prototype.TABLESAMPLE = function() { - return this.getToken(sqlParser.TABLESAMPLE, 0); -}; - -SampleContext.prototype.sampleMethod = function() { - return this.getTypedRuleContext(SampleMethodContext,0); -}; - -SampleContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSample(this); - } -}; - -SampleContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSample(this); - } -}; - -SampleContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSample(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.SampleContext = SampleContext; - -sqlParser.prototype.sample = function() { - - var localctx = new SampleContext(this, this._ctx, this.state); - this.enterRule(localctx, 106, sqlParser.RULE_sample); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1752; - this.match(sqlParser.TABLESAMPLE); - this.state = 1753; - this.match(sqlParser.T__0); - this.state = 1755; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.ROLLUP - 32)) | (1 << (sqlParser.ORDER - 32)) | (1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.LEFT - 64)) | (1 << (sqlParser.SEMI - 64)) | (1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.EXPLAIN - 96)) | (1 << (sqlParser.FORMAT - 96)) | (1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.COMMIT - 128)) | (1 << (sqlParser.ROLLBACK - 128)) | (1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.OF - 160)) | (1 << (sqlParser.SORT - 160)) | (1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.UNSET - 192)) | (1 << (sqlParser.TBLPROPERTIES - 192)) | (1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.EXTERNAL - 224)) | (1 << (sqlParser.DEFINED - 224)) | (1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 261)) & ~0x1f) == 0 && ((1 << (_la - 261)) & ((1 << (sqlParser.STRING - 261)) | (1 << (sqlParser.BIGINT_LITERAL - 261)) | (1 << (sqlParser.SMALLINT_LITERAL - 261)) | (1 << (sqlParser.TINYINT_LITERAL - 261)) | (1 << (sqlParser.INTEGER_VALUE - 261)) | (1 << (sqlParser.DECIMAL_VALUE - 261)) | (1 << (sqlParser.DOUBLE_LITERAL - 261)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 261)) | (1 << (sqlParser.IDENTIFIER - 261)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 261)))) !== 0)) { - this.state = 1754; - this.sampleMethod(); - } - - this.state = 1757; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function SampleMethodContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_sampleMethod; - return this; -} - -SampleMethodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -SampleMethodContext.prototype.constructor = SampleMethodContext; - - - -SampleMethodContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function SampleByRowsContext(parser, ctx) { - SampleMethodContext.call(this, parser); - SampleMethodContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SampleByRowsContext.prototype = Object.create(SampleMethodContext.prototype); -SampleByRowsContext.prototype.constructor = SampleByRowsContext; - -sqlParser.SampleByRowsContext = SampleByRowsContext; - -SampleByRowsContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -SampleByRowsContext.prototype.ROWS = function() { - return this.getToken(sqlParser.ROWS, 0); -}; -SampleByRowsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSampleByRows(this); - } -}; - -SampleByRowsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSampleByRows(this); - } -}; - -SampleByRowsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSampleByRows(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SampleByPercentileContext(parser, ctx) { - SampleMethodContext.call(this, parser); - this.negativeSign = null; // Token; - this.percentage = null; // Token; - SampleMethodContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SampleByPercentileContext.prototype = Object.create(SampleMethodContext.prototype); -SampleByPercentileContext.prototype.constructor = SampleByPercentileContext; - -sqlParser.SampleByPercentileContext = SampleByPercentileContext; - -SampleByPercentileContext.prototype.PERCENTLIT = function() { - return this.getToken(sqlParser.PERCENTLIT, 0); -}; - -SampleByPercentileContext.prototype.INTEGER_VALUE = function() { - return this.getToken(sqlParser.INTEGER_VALUE, 0); -}; - -SampleByPercentileContext.prototype.DECIMAL_VALUE = function() { - return this.getToken(sqlParser.DECIMAL_VALUE, 0); -}; - -SampleByPercentileContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; -SampleByPercentileContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSampleByPercentile(this); - } -}; - -SampleByPercentileContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSampleByPercentile(this); - } -}; - -SampleByPercentileContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSampleByPercentile(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SampleByBucketContext(parser, ctx) { - SampleMethodContext.call(this, parser); - this.sampleType = null; // Token; - this.numerator = null; // Token; - this.denominator = null; // Token; - SampleMethodContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SampleByBucketContext.prototype = Object.create(SampleMethodContext.prototype); -SampleByBucketContext.prototype.constructor = SampleByBucketContext; - -sqlParser.SampleByBucketContext = SampleByBucketContext; - -SampleByBucketContext.prototype.OUT = function() { - return this.getToken(sqlParser.OUT, 0); -}; - -SampleByBucketContext.prototype.OF = function() { - return this.getToken(sqlParser.OF, 0); -}; - -SampleByBucketContext.prototype.BUCKET = function() { - return this.getToken(sqlParser.BUCKET, 0); -}; - -SampleByBucketContext.prototype.INTEGER_VALUE = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.INTEGER_VALUE); - } else { - return this.getToken(sqlParser.INTEGER_VALUE, i); - } -}; - - -SampleByBucketContext.prototype.ON = function() { - return this.getToken(sqlParser.ON, 0); -}; - -SampleByBucketContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -SampleByBucketContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; -SampleByBucketContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSampleByBucket(this); - } -}; - -SampleByBucketContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSampleByBucket(this); - } -}; - -SampleByBucketContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSampleByBucket(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SampleByBytesContext(parser, ctx) { - SampleMethodContext.call(this, parser); - this.bytes = null; // ExpressionContext; - SampleMethodContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SampleByBytesContext.prototype = Object.create(SampleMethodContext.prototype); -SampleByBytesContext.prototype.constructor = SampleByBytesContext; - -sqlParser.SampleByBytesContext = SampleByBytesContext; - -SampleByBytesContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; -SampleByBytesContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSampleByBytes(this); - } -}; - -SampleByBytesContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSampleByBytes(this); - } -}; - -SampleByBytesContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSampleByBytes(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.SampleMethodContext = SampleMethodContext; - -sqlParser.prototype.sampleMethod = function() { - - var localctx = new SampleMethodContext(this, this._ctx, this.state); - this.enterRule(localctx, 108, sqlParser.RULE_sampleMethod); - var _la = 0; // Token type - try { - this.state = 1783; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,231,this._ctx); - switch(la_) { - case 1: - localctx = new SampleByPercentileContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 1760; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MINUS) { - this.state = 1759; - localctx.negativeSign = this.match(sqlParser.MINUS); - } - - this.state = 1762; - localctx.percentage = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.INTEGER_VALUE || _la===sqlParser.DECIMAL_VALUE)) { - localctx.percentage = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1763; - this.match(sqlParser.PERCENTLIT); - break; - - case 2: - localctx = new SampleByRowsContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 1764; - this.expression(); - this.state = 1765; - this.match(sqlParser.ROWS); - break; - - case 3: - localctx = new SampleByBucketContext(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 1767; - localctx.sampleType = this.match(sqlParser.BUCKET); - this.state = 1768; - localctx.numerator = this.match(sqlParser.INTEGER_VALUE); - this.state = 1769; - this.match(sqlParser.OUT); - this.state = 1770; - this.match(sqlParser.OF); - this.state = 1771; - localctx.denominator = this.match(sqlParser.INTEGER_VALUE); - this.state = 1780; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ON) { - this.state = 1772; - this.match(sqlParser.ON); - this.state = 1778; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,229,this._ctx); - switch(la_) { - case 1: - this.state = 1773; - this.identifier(); - break; - - case 2: - this.state = 1774; - this.qualifiedName(); - this.state = 1775; - this.match(sqlParser.T__0); - this.state = 1776; - this.match(sqlParser.T__1); - break; - - } - } - - break; - - case 4: - localctx = new SampleByBytesContext(this, localctx); - this.enterOuterAlt(localctx, 4); - this.state = 1782; - localctx.bytes = this.expression(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function IdentifierListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_identifierList; - return this; -} - -IdentifierListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -IdentifierListContext.prototype.constructor = IdentifierListContext; - -IdentifierListContext.prototype.identifierSeq = function() { - return this.getTypedRuleContext(IdentifierSeqContext,0); -}; - -IdentifierListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIdentifierList(this); - } -}; - -IdentifierListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIdentifierList(this); - } -}; - -IdentifierListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIdentifierList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.IdentifierListContext = IdentifierListContext; - -sqlParser.prototype.identifierList = function() { - - var localctx = new IdentifierListContext(this, this._ctx, this.state); - this.enterRule(localctx, 110, sqlParser.RULE_identifierList); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1785; - this.match(sqlParser.T__0); - this.state = 1786; - this.identifierSeq(); - this.state = 1787; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function IdentifierSeqContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_identifierSeq; - return this; -} - -IdentifierSeqContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -IdentifierSeqContext.prototype.constructor = IdentifierSeqContext; - -IdentifierSeqContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -IdentifierSeqContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIdentifierSeq(this); - } -}; - -IdentifierSeqContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIdentifierSeq(this); - } -}; - -IdentifierSeqContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIdentifierSeq(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.IdentifierSeqContext = IdentifierSeqContext; - -sqlParser.prototype.identifierSeq = function() { - - var localctx = new IdentifierSeqContext(this, this._ctx, this.state); - this.enterRule(localctx, 112, sqlParser.RULE_identifierSeq); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1789; - this.identifier(); - this.state = 1794; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,232,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 1790; - this.match(sqlParser.T__3); - this.state = 1791; - this.identifier(); - } - this.state = 1796; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,232,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function OrderedIdentifierListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_orderedIdentifierList; - return this; -} - -OrderedIdentifierListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -OrderedIdentifierListContext.prototype.constructor = OrderedIdentifierListContext; - -OrderedIdentifierListContext.prototype.orderedIdentifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(OrderedIdentifierContext); - } else { - return this.getTypedRuleContext(OrderedIdentifierContext,i); - } -}; - -OrderedIdentifierListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterOrderedIdentifierList(this); - } -}; - -OrderedIdentifierListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitOrderedIdentifierList(this); - } -}; - -OrderedIdentifierListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitOrderedIdentifierList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.OrderedIdentifierListContext = OrderedIdentifierListContext; - -sqlParser.prototype.orderedIdentifierList = function() { - - var localctx = new OrderedIdentifierListContext(this, this._ctx, this.state); - this.enterRule(localctx, 114, sqlParser.RULE_orderedIdentifierList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1797; - this.match(sqlParser.T__0); - this.state = 1798; - this.orderedIdentifier(); - this.state = 1803; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1799; - this.match(sqlParser.T__3); - this.state = 1800; - this.orderedIdentifier(); - this.state = 1805; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1806; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function OrderedIdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_orderedIdentifier; - this.ordering = null; // Token - return this; -} - -OrderedIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -OrderedIdentifierContext.prototype.constructor = OrderedIdentifierContext; - -OrderedIdentifierContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -OrderedIdentifierContext.prototype.ASC = function() { - return this.getToken(sqlParser.ASC, 0); -}; - -OrderedIdentifierContext.prototype.DESC = function() { - return this.getToken(sqlParser.DESC, 0); -}; - -OrderedIdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterOrderedIdentifier(this); - } -}; - -OrderedIdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitOrderedIdentifier(this); - } -}; - -OrderedIdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitOrderedIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.OrderedIdentifierContext = OrderedIdentifierContext; - -sqlParser.prototype.orderedIdentifier = function() { - - var localctx = new OrderedIdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 116, sqlParser.RULE_orderedIdentifier); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1808; - this.identifier(); - this.state = 1810; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ASC || _la===sqlParser.DESC) { - this.state = 1809; - localctx.ordering = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.ASC || _la===sqlParser.DESC)) { - localctx.ordering = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function IdentifierCommentListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_identifierCommentList; - return this; -} - -IdentifierCommentListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -IdentifierCommentListContext.prototype.constructor = IdentifierCommentListContext; - -IdentifierCommentListContext.prototype.identifierComment = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierCommentContext); - } else { - return this.getTypedRuleContext(IdentifierCommentContext,i); - } -}; - -IdentifierCommentListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIdentifierCommentList(this); - } -}; - -IdentifierCommentListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIdentifierCommentList(this); - } -}; - -IdentifierCommentListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIdentifierCommentList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.IdentifierCommentListContext = IdentifierCommentListContext; - -sqlParser.prototype.identifierCommentList = function() { - - var localctx = new IdentifierCommentListContext(this, this._ctx, this.state); - this.enterRule(localctx, 118, sqlParser.RULE_identifierCommentList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1812; - this.match(sqlParser.T__0); - this.state = 1813; - this.identifierComment(); - this.state = 1818; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1814; - this.match(sqlParser.T__3); - this.state = 1815; - this.identifierComment(); - this.state = 1820; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1821; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function IdentifierCommentContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_identifierComment; - return this; -} - -IdentifierCommentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -IdentifierCommentContext.prototype.constructor = IdentifierCommentContext; - -IdentifierCommentContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -IdentifierCommentContext.prototype.COMMENT = function() { - return this.getToken(sqlParser.COMMENT, 0); -}; - -IdentifierCommentContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -IdentifierCommentContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIdentifierComment(this); - } -}; - -IdentifierCommentContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIdentifierComment(this); - } -}; - -IdentifierCommentContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIdentifierComment(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.IdentifierCommentContext = IdentifierCommentContext; - -sqlParser.prototype.identifierComment = function() { - - var localctx = new IdentifierCommentContext(this, this._ctx, this.state); - this.enterRule(localctx, 120, sqlParser.RULE_identifierComment); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1823; - this.identifier(); - this.state = 1826; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.COMMENT) { - this.state = 1824; - this.match(sqlParser.COMMENT); - this.state = 1825; - this.match(sqlParser.STRING); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function RelationPrimaryContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_relationPrimary; - return this; -} - -RelationPrimaryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -RelationPrimaryContext.prototype.constructor = RelationPrimaryContext; - - - -RelationPrimaryContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function TableValuedFunctionContext(parser, ctx) { - RelationPrimaryContext.call(this, parser); - RelationPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -TableValuedFunctionContext.prototype = Object.create(RelationPrimaryContext.prototype); -TableValuedFunctionContext.prototype.constructor = TableValuedFunctionContext; - -sqlParser.TableValuedFunctionContext = TableValuedFunctionContext; - -TableValuedFunctionContext.prototype.functionTable = function() { - return this.getTypedRuleContext(FunctionTableContext,0); -}; -TableValuedFunctionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTableValuedFunction(this); - } -}; - -TableValuedFunctionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTableValuedFunction(this); - } -}; - -TableValuedFunctionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTableValuedFunction(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function InlineTableDefault2Context(parser, ctx) { - RelationPrimaryContext.call(this, parser); - RelationPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -InlineTableDefault2Context.prototype = Object.create(RelationPrimaryContext.prototype); -InlineTableDefault2Context.prototype.constructor = InlineTableDefault2Context; - -sqlParser.InlineTableDefault2Context = InlineTableDefault2Context; - -InlineTableDefault2Context.prototype.inlineTable = function() { - return this.getTypedRuleContext(InlineTableContext,0); -}; -InlineTableDefault2Context.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterInlineTableDefault2(this); - } -}; - -InlineTableDefault2Context.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitInlineTableDefault2(this); - } -}; - -InlineTableDefault2Context.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitInlineTableDefault2(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function AliasedRelationContext(parser, ctx) { - RelationPrimaryContext.call(this, parser); - RelationPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -AliasedRelationContext.prototype = Object.create(RelationPrimaryContext.prototype); -AliasedRelationContext.prototype.constructor = AliasedRelationContext; - -sqlParser.AliasedRelationContext = AliasedRelationContext; - -AliasedRelationContext.prototype.relation = function() { - return this.getTypedRuleContext(RelationContext,0); -}; - -AliasedRelationContext.prototype.tableAlias = function() { - return this.getTypedRuleContext(TableAliasContext,0); -}; - -AliasedRelationContext.prototype.sample = function() { - return this.getTypedRuleContext(SampleContext,0); -}; -AliasedRelationContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterAliasedRelation(this); - } -}; - -AliasedRelationContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitAliasedRelation(this); - } -}; - -AliasedRelationContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitAliasedRelation(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function AliasedQueryContext(parser, ctx) { - RelationPrimaryContext.call(this, parser); - RelationPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -AliasedQueryContext.prototype = Object.create(RelationPrimaryContext.prototype); -AliasedQueryContext.prototype.constructor = AliasedQueryContext; - -sqlParser.AliasedQueryContext = AliasedQueryContext; - -AliasedQueryContext.prototype.queryNoWith = function() { - return this.getTypedRuleContext(QueryNoWithContext,0); -}; - -AliasedQueryContext.prototype.tableAlias = function() { - return this.getTypedRuleContext(TableAliasContext,0); -}; - -AliasedQueryContext.prototype.sample = function() { - return this.getTypedRuleContext(SampleContext,0); -}; -AliasedQueryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterAliasedQuery(this); - } -}; - -AliasedQueryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitAliasedQuery(this); - } -}; - -AliasedQueryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitAliasedQuery(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function TableNameContext(parser, ctx) { - RelationPrimaryContext.call(this, parser); - RelationPrimaryContext.prototype.copyFrom.call(this, ctx); - return this; -} - -TableNameContext.prototype = Object.create(RelationPrimaryContext.prototype); -TableNameContext.prototype.constructor = TableNameContext; - -sqlParser.TableNameContext = TableNameContext; - -TableNameContext.prototype.tableIdentifier = function() { - return this.getTypedRuleContext(TableIdentifierContext,0); -}; - -TableNameContext.prototype.tableAlias = function() { - return this.getTypedRuleContext(TableAliasContext,0); -}; - -TableNameContext.prototype.sample = function() { - return this.getTypedRuleContext(SampleContext,0); -}; - -TableNameContext.prototype.matchRecognize = function() { - return this.getTypedRuleContext(MatchRecognizeContext,0); -}; -TableNameContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTableName(this); - } -}; - -TableNameContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTableName(this); - } -}; - -TableNameContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTableName(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.RelationPrimaryContext = RelationPrimaryContext; - -sqlParser.prototype.relationPrimary = function() { - - var localctx = new RelationPrimaryContext(this, this._ctx, this.state); - this.enterRule(localctx, 122, sqlParser.RULE_relationPrimary); - try { - this.state = 1853; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,240,this._ctx); - switch(la_) { - case 1: - localctx = new TableNameContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 1828; - this.tableIdentifier(); - this.state = 1831; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,237,this._ctx); - if(la_===1) { - this.state = 1829; - this.sample(); - - } else if(la_===2) { - this.state = 1830; - this.matchRecognize(); - - } - this.state = 1833; - this.tableAlias(); - break; - - case 2: - localctx = new AliasedQueryContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 1835; - this.match(sqlParser.T__0); - this.state = 1836; - this.queryNoWith(); - this.state = 1837; - this.match(sqlParser.T__1); - this.state = 1839; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,238,this._ctx); - if(la_===1) { - this.state = 1838; - this.sample(); - - } - this.state = 1841; - this.tableAlias(); - break; - - case 3: - localctx = new AliasedRelationContext(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 1843; - this.match(sqlParser.T__0); - this.state = 1844; - this.relation(); - this.state = 1845; - this.match(sqlParser.T__1); - this.state = 1847; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,239,this._ctx); - if(la_===1) { - this.state = 1846; - this.sample(); - - } - this.state = 1849; - this.tableAlias(); - break; - - case 4: - localctx = new InlineTableDefault2Context(this, localctx); - this.enterOuterAlt(localctx, 4); - this.state = 1851; - this.inlineTable(); - break; - - case 5: - localctx = new TableValuedFunctionContext(this, localctx); - this.enterOuterAlt(localctx, 5); - this.state = 1852; - this.functionTable(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function MatchRecognizeContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_matchRecognize; - return this; -} - -MatchRecognizeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -MatchRecognizeContext.prototype.constructor = MatchRecognizeContext; - -MatchRecognizeContext.prototype.MATCH_RECOGNIZE = function() { - return this.getToken(sqlParser.MATCH_RECOGNIZE, 0); -}; - -MatchRecognizeContext.prototype.PATTERN = function() { - return this.getToken(sqlParser.PATTERN, 0); -}; - -MatchRecognizeContext.prototype.pattern1 = function() { - return this.getTypedRuleContext(Pattern1Context,0); -}; - -MatchRecognizeContext.prototype.DEFINE = function() { - return this.getToken(sqlParser.DEFINE, 0); -}; - -MatchRecognizeContext.prototype.variable = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(VariableContext); - } else { - return this.getTypedRuleContext(VariableContext,i); - } -}; - -MatchRecognizeContext.prototype.AS = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.AS); - } else { - return this.getToken(sqlParser.AS, i); - } -}; - - -MatchRecognizeContext.prototype.condition1 = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(Condition1Context); - } else { - return this.getTypedRuleContext(Condition1Context,i); - } -}; - -MatchRecognizeContext.prototype.PARTITION = function() { - return this.getToken(sqlParser.PARTITION, 0); -}; - -MatchRecognizeContext.prototype.BY = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.BY); - } else { - return this.getToken(sqlParser.BY, i); - } -}; - - -MatchRecognizeContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -MatchRecognizeContext.prototype.ORDER = function() { - return this.getToken(sqlParser.ORDER, 0); -}; - -MatchRecognizeContext.prototype.sortItem = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(SortItemContext); - } else { - return this.getTypedRuleContext(SortItemContext,i); - } -}; - -MatchRecognizeContext.prototype.MEASURES = function() { - return this.getToken(sqlParser.MEASURES, 0); -}; - -MatchRecognizeContext.prototype.measureColumn = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(MeasureColumnContext); - } else { - return this.getTypedRuleContext(MeasureColumnContext,i); - } -}; - -MatchRecognizeContext.prototype.ONE = function() { - return this.getToken(sqlParser.ONE, 0); -}; - -MatchRecognizeContext.prototype.ROW = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.ROW); - } else { - return this.getToken(sqlParser.ROW, i); - } -}; - - -MatchRecognizeContext.prototype.PER = function() { - return this.getToken(sqlParser.PER, 0); -}; - -MatchRecognizeContext.prototype.MATCH = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.MATCH); - } else { - return this.getToken(sqlParser.MATCH, i); - } -}; - - -MatchRecognizeContext.prototype.AFTER = function() { - return this.getToken(sqlParser.AFTER, 0); -}; - -MatchRecognizeContext.prototype.WITHIN = function() { - return this.getToken(sqlParser.WITHIN, 0); -}; - -MatchRecognizeContext.prototype.interval = function() { - return this.getTypedRuleContext(IntervalContext,0); -}; - -MatchRecognizeContext.prototype.SKIP1 = function() { - return this.getToken(sqlParser.SKIP1, 0); -}; - -MatchRecognizeContext.prototype.TO = function() { - return this.getToken(sqlParser.TO, 0); -}; - -MatchRecognizeContext.prototype.NEXT = function() { - return this.getToken(sqlParser.NEXT, 0); -}; - -MatchRecognizeContext.prototype.PAST = function() { - return this.getToken(sqlParser.PAST, 0); -}; - -MatchRecognizeContext.prototype.LAST = function() { - return this.getToken(sqlParser.LAST, 0); -}; - -MatchRecognizeContext.prototype.FIRST = function() { - return this.getToken(sqlParser.FIRST, 0); -}; - -MatchRecognizeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterMatchRecognize(this); - } -}; - -MatchRecognizeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitMatchRecognize(this); - } -}; - -MatchRecognizeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitMatchRecognize(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.MatchRecognizeContext = MatchRecognizeContext; - -sqlParser.prototype.matchRecognize = function() { - - var localctx = new MatchRecognizeContext(this, this._ctx, this.state); - this.enterRule(localctx, 124, sqlParser.RULE_matchRecognize); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1855; - this.match(sqlParser.MATCH_RECOGNIZE); - this.state = 1856; - this.match(sqlParser.T__0); - this.state = 1867; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION) { - this.state = 1857; - this.match(sqlParser.PARTITION); - this.state = 1858; - this.match(sqlParser.BY); - this.state = 1859; - this.expression(); - this.state = 1864; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1860; - this.match(sqlParser.T__3); - this.state = 1861; - this.expression(); - this.state = 1866; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1879; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ORDER) { - this.state = 1869; - this.match(sqlParser.ORDER); - this.state = 1870; - this.match(sqlParser.BY); - this.state = 1871; - this.sortItem(); - this.state = 1876; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1872; - this.match(sqlParser.T__3); - this.state = 1873; - this.sortItem(); - this.state = 1878; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1890; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MEASURES) { - this.state = 1881; - this.match(sqlParser.MEASURES); - this.state = 1882; - this.measureColumn(); - this.state = 1887; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1883; - this.match(sqlParser.T__3); - this.state = 1884; - this.measureColumn(); - this.state = 1889; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 1896; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ONE) { - this.state = 1892; - this.match(sqlParser.ONE); - this.state = 1893; - this.match(sqlParser.ROW); - this.state = 1894; - this.match(sqlParser.PER); - this.state = 1895; - this.match(sqlParser.MATCH); - } - - this.state = 1921; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.AFTER) { - this.state = 1898; - this.match(sqlParser.AFTER); - this.state = 1899; - this.match(sqlParser.MATCH); - this.state = 1919; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,248,this._ctx); - switch(la_) { - case 1: - this.state = 1900; - this.match(sqlParser.SKIP1); - this.state = 1901; - this.match(sqlParser.TO); - this.state = 1902; - this.match(sqlParser.NEXT); - this.state = 1903; - this.match(sqlParser.ROW); - break; - - case 2: - this.state = 1904; - this.match(sqlParser.SKIP1); - this.state = 1905; - this.match(sqlParser.PAST); - this.state = 1906; - this.match(sqlParser.LAST); - this.state = 1907; - this.match(sqlParser.ROW); - break; - - case 3: - this.state = 1908; - this.match(sqlParser.SKIP1); - this.state = 1909; - this.match(sqlParser.TO); - this.state = 1910; - this.match(sqlParser.FIRST); - this.state = 1911; - this.variable(); - break; - - case 4: - this.state = 1912; - this.match(sqlParser.SKIP1); - this.state = 1913; - this.match(sqlParser.TO); - this.state = 1914; - this.match(sqlParser.LAST); - this.state = 1915; - this.variable(); - break; - - case 5: - this.state = 1916; - this.match(sqlParser.SKIP1); - this.state = 1917; - this.match(sqlParser.TO); - this.state = 1918; - this.variable(); - break; - - } - } - - this.state = 1923; - this.match(sqlParser.PATTERN); - this.state = 1924; - this.match(sqlParser.T__0); - this.state = 1925; - this.pattern1(); - this.state = 1926; - this.match(sqlParser.T__1); - this.state = 1929; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.WITHIN) { - this.state = 1927; - this.match(sqlParser.WITHIN); - this.state = 1928; - this.interval(); - } - - this.state = 1931; - this.match(sqlParser.DEFINE); - this.state = 1932; - this.variable(); - this.state = 1933; - this.match(sqlParser.AS); - this.state = 1934; - this.condition1(); - this.state = 1942; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 1935; - this.match(sqlParser.T__3); - this.state = 1936; - this.variable(); - this.state = 1937; - this.match(sqlParser.AS); - this.state = 1938; - this.condition1(); - this.state = 1944; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1945; - this.match(sqlParser.T__1); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function MeasureColumnContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_measureColumn; - return this; -} - -MeasureColumnContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -MeasureColumnContext.prototype.constructor = MeasureColumnContext; - -MeasureColumnContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -MeasureColumnContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -MeasureColumnContext.prototype.strictIdentifier = function() { - return this.getTypedRuleContext(StrictIdentifierContext,0); -}; - -MeasureColumnContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterMeasureColumn(this); - } -}; - -MeasureColumnContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitMeasureColumn(this); - } -}; - -MeasureColumnContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitMeasureColumn(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.MeasureColumnContext = MeasureColumnContext; - -sqlParser.prototype.measureColumn = function() { - - var localctx = new MeasureColumnContext(this, this._ctx, this.state); - this.enterRule(localctx, 126, sqlParser.RULE_measureColumn); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1947; - this.expression(); - this.state = 1948; - this.match(sqlParser.AS); - this.state = 1949; - this.strictIdentifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function Condition1Context(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_condition1; - return this; -} - -Condition1Context.prototype = Object.create(antlr4.ParserRuleContext.prototype); -Condition1Context.prototype.constructor = Condition1Context; - -Condition1Context.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -Condition1Context.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCondition1(this); - } -}; - -Condition1Context.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCondition1(this); - } -}; - -Condition1Context.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCondition1(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.Condition1Context = Condition1Context; - -sqlParser.prototype.condition1 = function() { - - var localctx = new Condition1Context(this, this._ctx, this.state); - this.enterRule(localctx, 128, sqlParser.RULE_condition1); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1951; - this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function VariableContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_variable; - return this; -} - -VariableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -VariableContext.prototype.constructor = VariableContext; - -VariableContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -VariableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterVariable(this); - } -}; - -VariableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitVariable(this); - } -}; - -VariableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitVariable(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.VariableContext = VariableContext; - -sqlParser.prototype.variable = function() { - - var localctx = new VariableContext(this, this._ctx, this.state); - this.enterRule(localctx, 130, sqlParser.RULE_variable); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1953; - this.identifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function Pattern1Context(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_pattern1; - return this; -} - -Pattern1Context.prototype = Object.create(antlr4.ParserRuleContext.prototype); -Pattern1Context.prototype.constructor = Pattern1Context; - -Pattern1Context.prototype.patternTerm = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PatternTermContext); - } else { - return this.getTypedRuleContext(PatternTermContext,i); - } -}; - -Pattern1Context.prototype.PIPE = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.PIPE); - } else { - return this.getToken(sqlParser.PIPE, i); - } -}; - - -Pattern1Context.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPattern1(this); - } -}; - -Pattern1Context.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPattern1(this); - } -}; - -Pattern1Context.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPattern1(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.Pattern1Context = Pattern1Context; - -sqlParser.prototype.pattern1 = function() { - - var localctx = new Pattern1Context(this, this._ctx, this.state); - this.enterRule(localctx, 132, sqlParser.RULE_pattern1); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1955; - this.patternTerm(); - this.state = 1960; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.PIPE) { - this.state = 1956; - this.match(sqlParser.PIPE); - this.state = 1957; - this.patternTerm(); - this.state = 1962; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PatternTermContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_patternTerm; - return this; -} - -PatternTermContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PatternTermContext.prototype.constructor = PatternTermContext; - -PatternTermContext.prototype.patternFactor = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(PatternFactorContext); - } else { - return this.getTypedRuleContext(PatternFactorContext,i); - } -}; - -PatternTermContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPatternTerm(this); - } -}; - -PatternTermContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPatternTerm(this); - } -}; - -PatternTermContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPatternTerm(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PatternTermContext = PatternTermContext; - -sqlParser.prototype.patternTerm = function() { - - var localctx = new PatternTermContext(this, this._ctx, this.state); - this.enterRule(localctx, 134, sqlParser.RULE_patternTerm); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1963; - this.patternFactor(); - this.state = 1967; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(((((_la - 19)) & ~0x1f) == 0 && ((1 << (_la - 19)) & ((1 << (sqlParser.SELECT - 19)) | (1 << (sqlParser.FROM - 19)) | (1 << (sqlParser.ADD - 19)) | (1 << (sqlParser.AS - 19)) | (1 << (sqlParser.ALL - 19)) | (1 << (sqlParser.ANY - 19)) | (1 << (sqlParser.DISTINCT - 19)) | (1 << (sqlParser.WHERE - 19)) | (1 << (sqlParser.GROUP - 19)) | (1 << (sqlParser.BY - 19)) | (1 << (sqlParser.GROUPING - 19)) | (1 << (sqlParser.SETS - 19)) | (1 << (sqlParser.CUBE - 19)) | (1 << (sqlParser.ROLLUP - 19)) | (1 << (sqlParser.ORDER - 19)) | (1 << (sqlParser.HAVING - 19)) | (1 << (sqlParser.LIMIT - 19)) | (1 << (sqlParser.AT - 19)) | (1 << (sqlParser.OR - 19)) | (1 << (sqlParser.AND - 19)) | (1 << (sqlParser.IN - 19)) | (1 << (sqlParser.NOT - 19)) | (1 << (sqlParser.NO - 19)) | (1 << (sqlParser.EXISTS - 19)) | (1 << (sqlParser.BETWEEN - 19)) | (1 << (sqlParser.LIKE - 19)) | (1 << (sqlParser.RLIKE - 19)) | (1 << (sqlParser.IS - 19)) | (1 << (sqlParser.NULL - 19)) | (1 << (sqlParser.TRUE - 19)) | (1 << (sqlParser.FALSE - 19)) | (1 << (sqlParser.NULLS - 19)))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (sqlParser.ASC - 51)) | (1 << (sqlParser.DESC - 51)) | (1 << (sqlParser.FOR - 51)) | (1 << (sqlParser.INTERVAL - 51)) | (1 << (sqlParser.CASE - 51)) | (1 << (sqlParser.WHEN - 51)) | (1 << (sqlParser.THEN - 51)) | (1 << (sqlParser.ELSE - 51)) | (1 << (sqlParser.END - 51)) | (1 << (sqlParser.JOIN - 51)) | (1 << (sqlParser.CROSS - 51)) | (1 << (sqlParser.OUTER - 51)) | (1 << (sqlParser.INNER - 51)) | (1 << (sqlParser.LEFT - 51)) | (1 << (sqlParser.SEMI - 51)) | (1 << (sqlParser.RIGHT - 51)) | (1 << (sqlParser.FULL - 51)) | (1 << (sqlParser.NATURAL - 51)) | (1 << (sqlParser.ON - 51)) | (1 << (sqlParser.PIVOT - 51)) | (1 << (sqlParser.LATERAL - 51)) | (1 << (sqlParser.WINDOW - 51)) | (1 << (sqlParser.OVER - 51)) | (1 << (sqlParser.PARTITION - 51)) | (1 << (sqlParser.RANGE - 51)) | (1 << (sqlParser.ROWS - 51)) | (1 << (sqlParser.UNBOUNDED - 51)) | (1 << (sqlParser.PRECEDING - 51)) | (1 << (sqlParser.FOLLOWING - 51)) | (1 << (sqlParser.CURRENT - 51)) | (1 << (sqlParser.FIRST - 51)) | (1 << (sqlParser.AFTER - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (sqlParser.LAST - 83)) | (1 << (sqlParser.ROW - 83)) | (1 << (sqlParser.WITH - 83)) | (1 << (sqlParser.CREATE - 83)) | (1 << (sqlParser.TABLE - 83)) | (1 << (sqlParser.DIRECTORY - 83)) | (1 << (sqlParser.VIEW - 83)) | (1 << (sqlParser.REPLACE - 83)) | (1 << (sqlParser.INSERT - 83)) | (1 << (sqlParser.DELETE - 83)) | (1 << (sqlParser.INTO - 83)) | (1 << (sqlParser.DESCRIBE - 83)) | (1 << (sqlParser.EXPLAIN - 83)) | (1 << (sqlParser.FORMAT - 83)) | (1 << (sqlParser.LOGICAL - 83)) | (1 << (sqlParser.CODEGEN - 83)) | (1 << (sqlParser.COST - 83)) | (1 << (sqlParser.CAST - 83)) | (1 << (sqlParser.SHOW - 83)) | (1 << (sqlParser.TABLES - 83)) | (1 << (sqlParser.COLUMNS - 83)) | (1 << (sqlParser.COLUMN - 83)) | (1 << (sqlParser.USE - 83)) | (1 << (sqlParser.PARTITIONS - 83)) | (1 << (sqlParser.FUNCTIONS - 83)) | (1 << (sqlParser.DROP - 83)) | (1 << (sqlParser.UNION - 83)) | (1 << (sqlParser.EXCEPT - 83)) | (1 << (sqlParser.SETMINUS - 83)) | (1 << (sqlParser.INTERSECT - 83)) | (1 << (sqlParser.TO - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (sqlParser.TABLESAMPLE - 115)) | (1 << (sqlParser.STRATIFY - 115)) | (1 << (sqlParser.ALTER - 115)) | (1 << (sqlParser.RENAME - 115)) | (1 << (sqlParser.ARRAY - 115)) | (1 << (sqlParser.MAP - 115)) | (1 << (sqlParser.STRUCT - 115)) | (1 << (sqlParser.COMMENT - 115)) | (1 << (sqlParser.SET - 115)) | (1 << (sqlParser.RESET - 115)) | (1 << (sqlParser.DATA - 115)) | (1 << (sqlParser.START - 115)) | (1 << (sqlParser.TRANSACTION - 115)) | (1 << (sqlParser.COMMIT - 115)) | (1 << (sqlParser.ROLLBACK - 115)) | (1 << (sqlParser.MACRO - 115)) | (1 << (sqlParser.IGNORE - 115)) | (1 << (sqlParser.BOTH - 115)) | (1 << (sqlParser.LEADING - 115)) | (1 << (sqlParser.TRAILING - 115)) | (1 << (sqlParser.IF - 115)) | (1 << (sqlParser.POSITION - 115)) | (1 << (sqlParser.EXTRACT - 115)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (sqlParser.DIV - 151)) | (1 << (sqlParser.PERCENTLIT - 151)) | (1 << (sqlParser.BUCKET - 151)) | (1 << (sqlParser.OUT - 151)) | (1 << (sqlParser.OF - 151)) | (1 << (sqlParser.SORT - 151)) | (1 << (sqlParser.CLUSTER - 151)) | (1 << (sqlParser.DISTRIBUTE - 151)) | (1 << (sqlParser.OVERWRITE - 151)) | (1 << (sqlParser.TRANSFORM - 151)) | (1 << (sqlParser.REDUCE - 151)) | (1 << (sqlParser.SERDE - 151)) | (1 << (sqlParser.SERDEPROPERTIES - 151)) | (1 << (sqlParser.RECORDREADER - 151)) | (1 << (sqlParser.RECORDWRITER - 151)) | (1 << (sqlParser.DELIMITED - 151)) | (1 << (sqlParser.FIELDS - 151)) | (1 << (sqlParser.TERMINATED - 151)) | (1 << (sqlParser.COLLECTION - 151)) | (1 << (sqlParser.ITEMS - 151)) | (1 << (sqlParser.KEYS - 151)) | (1 << (sqlParser.ESCAPED - 151)) | (1 << (sqlParser.LINES - 151)) | (1 << (sqlParser.SEPARATED - 151)) | (1 << (sqlParser.FUNCTION - 151)) | (1 << (sqlParser.EXTENDED - 151)))) !== 0) || ((((_la - 183)) & ~0x1f) == 0 && ((1 << (_la - 183)) & ((1 << (sqlParser.REFRESH - 183)) | (1 << (sqlParser.CLEAR - 183)) | (1 << (sqlParser.CACHE - 183)) | (1 << (sqlParser.UNCACHE - 183)) | (1 << (sqlParser.LAZY - 183)) | (1 << (sqlParser.FORMATTED - 183)) | (1 << (sqlParser.GLOBAL - 183)) | (1 << (sqlParser.TEMPORARY - 183)) | (1 << (sqlParser.OPTIONS - 183)) | (1 << (sqlParser.UNSET - 183)) | (1 << (sqlParser.TBLPROPERTIES - 183)) | (1 << (sqlParser.DBPROPERTIES - 183)) | (1 << (sqlParser.BUCKETS - 183)) | (1 << (sqlParser.SKEWED - 183)) | (1 << (sqlParser.STORED - 183)) | (1 << (sqlParser.DIRECTORIES - 183)) | (1 << (sqlParser.LOCATION - 183)) | (1 << (sqlParser.EXCHANGE - 183)) | (1 << (sqlParser.ARCHIVE - 183)) | (1 << (sqlParser.UNARCHIVE - 183)) | (1 << (sqlParser.FILEFORMAT - 183)) | (1 << (sqlParser.TOUCH - 183)) | (1 << (sqlParser.COMPACT - 183)) | (1 << (sqlParser.CONCATENATE - 183)) | (1 << (sqlParser.CHANGE - 183)) | (1 << (sqlParser.CASCADE - 183)) | (1 << (sqlParser.RESTRICT - 183)) | (1 << (sqlParser.CLUSTERED - 183)) | (1 << (sqlParser.SORTED - 183)) | (1 << (sqlParser.PURGE - 183)) | (1 << (sqlParser.INPUTFORMAT - 183)) | (1 << (sqlParser.OUTPUTFORMAT - 183)))) !== 0) || ((((_la - 215)) & ~0x1f) == 0 && ((1 << (_la - 215)) & ((1 << (sqlParser.DATABASE - 215)) | (1 << (sqlParser.DATABASES - 215)) | (1 << (sqlParser.DFS - 215)) | (1 << (sqlParser.TRUNCATE - 215)) | (1 << (sqlParser.ANALYZE - 215)) | (1 << (sqlParser.COMPUTE - 215)) | (1 << (sqlParser.LIST - 215)) | (1 << (sqlParser.STATISTICS - 215)) | (1 << (sqlParser.PARTITIONED - 215)) | (1 << (sqlParser.EXTERNAL - 215)) | (1 << (sqlParser.DEFINED - 215)) | (1 << (sqlParser.REVOKE - 215)) | (1 << (sqlParser.GRANT - 215)) | (1 << (sqlParser.LOCK - 215)) | (1 << (sqlParser.UNLOCK - 215)) | (1 << (sqlParser.MSCK - 215)) | (1 << (sqlParser.REPAIR - 215)) | (1 << (sqlParser.RECOVER - 215)) | (1 << (sqlParser.EXPORT - 215)) | (1 << (sqlParser.IMPORT - 215)) | (1 << (sqlParser.LOAD - 215)) | (1 << (sqlParser.ROLE - 215)) | (1 << (sqlParser.ROLES - 215)) | (1 << (sqlParser.COMPACTIONS - 215)) | (1 << (sqlParser.PRINCIPALS - 215)) | (1 << (sqlParser.TRANSACTIONS - 215)) | (1 << (sqlParser.INDEX - 215)) | (1 << (sqlParser.INDEXES - 215)) | (1 << (sqlParser.LOCKS - 215)) | (1 << (sqlParser.OPTION - 215)) | (1 << (sqlParser.ANTI - 215)) | (1 << (sqlParser.LOCAL - 215)))) !== 0) || ((((_la - 247)) & ~0x1f) == 0 && ((1 << (_la - 247)) & ((1 << (sqlParser.INPATH - 247)) | (1 << (sqlParser.IDENTIFIER - 247)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 247)))) !== 0)) { - this.state = 1964; - this.patternFactor(); - this.state = 1969; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PatternFactorContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_patternFactor; - return this; -} - -PatternFactorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PatternFactorContext.prototype.constructor = PatternFactorContext; - -PatternFactorContext.prototype.variable = function() { - return this.getTypedRuleContext(VariableContext,0); -}; - -PatternFactorContext.prototype.patternQuantifier = function() { - return this.getTypedRuleContext(PatternQuantifierContext,0); -}; - -PatternFactorContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPatternFactor(this); - } -}; - -PatternFactorContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPatternFactor(this); - } -}; - -PatternFactorContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPatternFactor(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PatternFactorContext = PatternFactorContext; - -sqlParser.prototype.patternFactor = function() { - - var localctx = new PatternFactorContext(this, this._ctx, this.state); - this.enterRule(localctx, 136, sqlParser.RULE_patternFactor); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 1970; - this.variable(); - this.state = 1972; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__6) | (1 << sqlParser.T__7) | (1 << sqlParser.T__8) | (1 << sqlParser.T__9) | (1 << sqlParser.T__10))) !== 0) || _la===sqlParser.PLUS || _la===sqlParser.ASTERISK) { - this.state = 1971; - this.patternQuantifier(); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PatternQuantifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_patternQuantifier; - return this; -} - -PatternQuantifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PatternQuantifierContext.prototype.constructor = PatternQuantifierContext; - -PatternQuantifierContext.prototype.ASTERISK = function() { - return this.getToken(sqlParser.ASTERISK, 0); -}; - -PatternQuantifierContext.prototype.PLUS = function() { - return this.getToken(sqlParser.PLUS, 0); -}; - -PatternQuantifierContext.prototype.minRepeat = function() { - return this.getTypedRuleContext(MinRepeatContext,0); -}; - -PatternQuantifierContext.prototype.maxRepeat = function() { - return this.getTypedRuleContext(MaxRepeatContext,0); -}; - -PatternQuantifierContext.prototype.repeat = function() { - return this.getTypedRuleContext(RepeatContext,0); -}; - -PatternQuantifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPatternQuantifier(this); - } -}; - -PatternQuantifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPatternQuantifier(this); - } -}; - -PatternQuantifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPatternQuantifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PatternQuantifierContext = PatternQuantifierContext; - -sqlParser.prototype.patternQuantifier = function() { - - var localctx = new PatternQuantifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 138, sqlParser.RULE_patternQuantifier); - var _la = 0; // Token type - try { - this.state = 1996; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,258,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 1974; - this.match(sqlParser.ASTERISK); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 1975; - this.match(sqlParser.T__6); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 1976; - this.match(sqlParser.PLUS); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 1977; - this.match(sqlParser.T__7); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 1978; - this.match(sqlParser.T__8); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 1979; - this.match(sqlParser.T__9); - break; - - case 7: - this.enterOuterAlt(localctx, 7); - this.state = 1980; - this.match(sqlParser.T__10); - - this.state = 1982; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.INTEGER_VALUE) { - this.state = 1981; - this.minRepeat(); - } - - this.state = 1984; - this.match(sqlParser.T__3); - this.state = 1986; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.INTEGER_VALUE) { - this.state = 1985; - this.maxRepeat(); - } - - this.state = 1988; - this.match(sqlParser.T__11); - this.state = 1990; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.T__8) { - this.state = 1989; - this.match(sqlParser.T__8); - } - - break; - - case 8: - this.enterOuterAlt(localctx, 8); - this.state = 1992; - this.match(sqlParser.T__10); - this.state = 1993; - this.repeat(); - this.state = 1994; - this.match(sqlParser.T__11); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function MinRepeatContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_minRepeat; - return this; -} - -MinRepeatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -MinRepeatContext.prototype.constructor = MinRepeatContext; - -MinRepeatContext.prototype.INTEGER_VALUE = function() { - return this.getToken(sqlParser.INTEGER_VALUE, 0); -}; - -MinRepeatContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterMinRepeat(this); - } -}; - -MinRepeatContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitMinRepeat(this); - } -}; - -MinRepeatContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitMinRepeat(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.MinRepeatContext = MinRepeatContext; - -sqlParser.prototype.minRepeat = function() { - - var localctx = new MinRepeatContext(this, this._ctx, this.state); - this.enterRule(localctx, 140, sqlParser.RULE_minRepeat); - try { - this.enterOuterAlt(localctx, 1); - this.state = 1998; - this.match(sqlParser.INTEGER_VALUE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function MaxRepeatContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_maxRepeat; - return this; -} - -MaxRepeatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -MaxRepeatContext.prototype.constructor = MaxRepeatContext; - -MaxRepeatContext.prototype.INTEGER_VALUE = function() { - return this.getToken(sqlParser.INTEGER_VALUE, 0); -}; - -MaxRepeatContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterMaxRepeat(this); - } -}; - -MaxRepeatContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitMaxRepeat(this); - } -}; - -MaxRepeatContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitMaxRepeat(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.MaxRepeatContext = MaxRepeatContext; - -sqlParser.prototype.maxRepeat = function() { - - var localctx = new MaxRepeatContext(this, this._ctx, this.state); - this.enterRule(localctx, 142, sqlParser.RULE_maxRepeat); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2000; - this.match(sqlParser.INTEGER_VALUE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function RepeatContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_repeat; - return this; -} - -RepeatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -RepeatContext.prototype.constructor = RepeatContext; - -RepeatContext.prototype.INTEGER_VALUE = function() { - return this.getToken(sqlParser.INTEGER_VALUE, 0); -}; - -RepeatContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRepeat(this); - } -}; - -RepeatContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRepeat(this); - } -}; - -RepeatContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRepeat(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.RepeatContext = RepeatContext; - -sqlParser.prototype.repeat = function() { - - var localctx = new RepeatContext(this, this._ctx, this.state); - this.enterRule(localctx, 144, sqlParser.RULE_repeat); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2002; - this.match(sqlParser.INTEGER_VALUE); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function InlineTableContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_inlineTable; - return this; -} - -InlineTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -InlineTableContext.prototype.constructor = InlineTableContext; - -InlineTableContext.prototype.VALUES = function() { - return this.getToken(sqlParser.VALUES, 0); -}; - -InlineTableContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -InlineTableContext.prototype.tableAlias = function() { - return this.getTypedRuleContext(TableAliasContext,0); -}; - -InlineTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterInlineTable(this); - } -}; - -InlineTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitInlineTable(this); - } -}; - -InlineTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitInlineTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.InlineTableContext = InlineTableContext; - -sqlParser.prototype.inlineTable = function() { - - var localctx = new InlineTableContext(this, this._ctx, this.state); - this.enterRule(localctx, 146, sqlParser.RULE_inlineTable); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2004; - this.match(sqlParser.VALUES); - this.state = 2005; - this.expression(); - this.state = 2010; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,259,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 2006; - this.match(sqlParser.T__3); - this.state = 2007; - this.expression(); - } - this.state = 2012; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,259,this._ctx); - } - - this.state = 2013; - this.tableAlias(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function FunctionTableContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_functionTable; - return this; -} - -FunctionTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -FunctionTableContext.prototype.constructor = FunctionTableContext; - -FunctionTableContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -FunctionTableContext.prototype.tableAlias = function() { - return this.getTypedRuleContext(TableAliasContext,0); -}; - -FunctionTableContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -FunctionTableContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterFunctionTable(this); - } -}; - -FunctionTableContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitFunctionTable(this); - } -}; - -FunctionTableContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitFunctionTable(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.FunctionTableContext = FunctionTableContext; - -sqlParser.prototype.functionTable = function() { - - var localctx = new FunctionTableContext(this, this._ctx, this.state); - this.enterRule(localctx, 148, sqlParser.RULE_functionTable); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2015; - this.identifier(); - this.state = 2016; - this.match(sqlParser.T__0); - this.state = 2025; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.ROLLUP - 32)) | (1 << (sqlParser.ORDER - 32)) | (1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.LEFT - 64)) | (1 << (sqlParser.SEMI - 64)) | (1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.EXPLAIN - 96)) | (1 << (sqlParser.FORMAT - 96)) | (1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.COMMIT - 128)) | (1 << (sqlParser.ROLLBACK - 128)) | (1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.OF - 160)) | (1 << (sqlParser.SORT - 160)) | (1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.UNSET - 192)) | (1 << (sqlParser.TBLPROPERTIES - 192)) | (1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.EXTERNAL - 224)) | (1 << (sqlParser.DEFINED - 224)) | (1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 261)) & ~0x1f) == 0 && ((1 << (_la - 261)) & ((1 << (sqlParser.STRING - 261)) | (1 << (sqlParser.BIGINT_LITERAL - 261)) | (1 << (sqlParser.SMALLINT_LITERAL - 261)) | (1 << (sqlParser.TINYINT_LITERAL - 261)) | (1 << (sqlParser.INTEGER_VALUE - 261)) | (1 << (sqlParser.DECIMAL_VALUE - 261)) | (1 << (sqlParser.DOUBLE_LITERAL - 261)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 261)) | (1 << (sqlParser.IDENTIFIER - 261)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 261)))) !== 0)) { - this.state = 2017; - this.expression(); - this.state = 2022; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2018; - this.match(sqlParser.T__3); - this.state = 2019; - this.expression(); - this.state = 2024; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 2027; - this.match(sqlParser.T__1); - this.state = 2028; - this.tableAlias(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function TableAliasContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_tableAlias; - return this; -} - -TableAliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -TableAliasContext.prototype.constructor = TableAliasContext; - -TableAliasContext.prototype.strictIdentifier = function() { - return this.getTypedRuleContext(StrictIdentifierContext,0); -}; - -TableAliasContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -TableAliasContext.prototype.identifierList = function() { - return this.getTypedRuleContext(IdentifierListContext,0); -}; - -TableAliasContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTableAlias(this); - } -}; - -TableAliasContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTableAlias(this); - } -}; - -TableAliasContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTableAlias(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.TableAliasContext = TableAliasContext; - -sqlParser.prototype.tableAlias = function() { - - var localctx = new TableAliasContext(this, this._ctx, this.state); - this.enterRule(localctx, 150, sqlParser.RULE_tableAlias); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2037; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,264,this._ctx); - if(la_===1) { - this.state = 2031; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,262,this._ctx); - if(la_===1) { - this.state = 2030; - this.match(sqlParser.AS); - - } - this.state = 2033; - this.strictIdentifier(); - this.state = 2035; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,263,this._ctx); - if(la_===1) { - this.state = 2034; - this.identifierList(); - - } - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function RowFormatContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_rowFormat; - return this; -} - -RowFormatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -RowFormatContext.prototype.constructor = RowFormatContext; - - - -RowFormatContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function RowFormatSerdeContext(parser, ctx) { - RowFormatContext.call(this, parser); - this.name = null; // Token; - this.props = null; // TablePropertyListContext; - RowFormatContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RowFormatSerdeContext.prototype = Object.create(RowFormatContext.prototype); -RowFormatSerdeContext.prototype.constructor = RowFormatSerdeContext; - -sqlParser.RowFormatSerdeContext = RowFormatSerdeContext; - -RowFormatSerdeContext.prototype.ROW = function() { - return this.getToken(sqlParser.ROW, 0); -}; - -RowFormatSerdeContext.prototype.FORMAT = function() { - return this.getToken(sqlParser.FORMAT, 0); -}; - -RowFormatSerdeContext.prototype.SERDE = function() { - return this.getToken(sqlParser.SERDE, 0); -}; - -RowFormatSerdeContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -RowFormatSerdeContext.prototype.WITH = function() { - return this.getToken(sqlParser.WITH, 0); -}; - -RowFormatSerdeContext.prototype.SERDEPROPERTIES = function() { - return this.getToken(sqlParser.SERDEPROPERTIES, 0); -}; - -RowFormatSerdeContext.prototype.tablePropertyList = function() { - return this.getTypedRuleContext(TablePropertyListContext,0); -}; -RowFormatSerdeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRowFormatSerde(this); - } -}; - -RowFormatSerdeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRowFormatSerde(this); - } -}; - -RowFormatSerdeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRowFormatSerde(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function RowFormatDelimitedContext(parser, ctx) { - RowFormatContext.call(this, parser); - this.fieldsTerminatedBy = null; // Token; - this.escapedBy = null; // Token; - this.collectionItemsTerminatedBy = null; // Token; - this.keysTerminatedBy = null; // Token; - this.linesSeparatedBy = null; // Token; - this.nullDefinedAs = null; // Token; - RowFormatContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RowFormatDelimitedContext.prototype = Object.create(RowFormatContext.prototype); -RowFormatDelimitedContext.prototype.constructor = RowFormatDelimitedContext; - -sqlParser.RowFormatDelimitedContext = RowFormatDelimitedContext; - -RowFormatDelimitedContext.prototype.ROW = function() { - return this.getToken(sqlParser.ROW, 0); -}; - -RowFormatDelimitedContext.prototype.FORMAT = function() { - return this.getToken(sqlParser.FORMAT, 0); -}; - -RowFormatDelimitedContext.prototype.DELIMITED = function() { - return this.getToken(sqlParser.DELIMITED, 0); -}; - -RowFormatDelimitedContext.prototype.FIELDS = function() { - return this.getToken(sqlParser.FIELDS, 0); -}; - -RowFormatDelimitedContext.prototype.TERMINATED = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.TERMINATED); - } else { - return this.getToken(sqlParser.TERMINATED, i); - } -}; - - -RowFormatDelimitedContext.prototype.BY = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.BY); - } else { - return this.getToken(sqlParser.BY, i); - } -}; - - -RowFormatDelimitedContext.prototype.COLLECTION = function() { - return this.getToken(sqlParser.COLLECTION, 0); -}; - -RowFormatDelimitedContext.prototype.ITEMS = function() { - return this.getToken(sqlParser.ITEMS, 0); -}; - -RowFormatDelimitedContext.prototype.MAP = function() { - return this.getToken(sqlParser.MAP, 0); -}; - -RowFormatDelimitedContext.prototype.KEYS = function() { - return this.getToken(sqlParser.KEYS, 0); -}; - -RowFormatDelimitedContext.prototype.LINES = function() { - return this.getToken(sqlParser.LINES, 0); -}; - -RowFormatDelimitedContext.prototype.NULL = function() { - return this.getToken(sqlParser.NULL, 0); -}; - -RowFormatDelimitedContext.prototype.DEFINED = function() { - return this.getToken(sqlParser.DEFINED, 0); -}; - -RowFormatDelimitedContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -RowFormatDelimitedContext.prototype.STRING = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.STRING); - } else { - return this.getToken(sqlParser.STRING, i); - } -}; - - -RowFormatDelimitedContext.prototype.ESCAPED = function() { - return this.getToken(sqlParser.ESCAPED, 0); -}; -RowFormatDelimitedContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRowFormatDelimited(this); - } -}; - -RowFormatDelimitedContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRowFormatDelimited(this); - } -}; - -RowFormatDelimitedContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRowFormatDelimited(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.RowFormatContext = RowFormatContext; - -sqlParser.prototype.rowFormat = function() { - - var localctx = new RowFormatContext(this, this._ctx, this.state); - this.enterRule(localctx, 152, sqlParser.RULE_rowFormat); - try { - this.state = 2088; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,272,this._ctx); - switch(la_) { - case 1: - localctx = new RowFormatSerdeContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 2039; - this.match(sqlParser.ROW); - this.state = 2040; - this.match(sqlParser.FORMAT); - this.state = 2041; - this.match(sqlParser.SERDE); - this.state = 2042; - localctx.name = this.match(sqlParser.STRING); - this.state = 2046; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,265,this._ctx); - if(la_===1) { - this.state = 2043; - this.match(sqlParser.WITH); - this.state = 2044; - this.match(sqlParser.SERDEPROPERTIES); - this.state = 2045; - localctx.props = this.tablePropertyList(); - - } - break; - - case 2: - localctx = new RowFormatDelimitedContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 2048; - this.match(sqlParser.ROW); - this.state = 2049; - this.match(sqlParser.FORMAT); - this.state = 2050; - this.match(sqlParser.DELIMITED); - this.state = 2060; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,267,this._ctx); - if(la_===1) { - this.state = 2051; - this.match(sqlParser.FIELDS); - this.state = 2052; - this.match(sqlParser.TERMINATED); - this.state = 2053; - this.match(sqlParser.BY); - this.state = 2054; - localctx.fieldsTerminatedBy = this.match(sqlParser.STRING); - this.state = 2058; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,266,this._ctx); - if(la_===1) { - this.state = 2055; - this.match(sqlParser.ESCAPED); - this.state = 2056; - this.match(sqlParser.BY); - this.state = 2057; - localctx.escapedBy = this.match(sqlParser.STRING); - - } - - } - this.state = 2067; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,268,this._ctx); - if(la_===1) { - this.state = 2062; - this.match(sqlParser.COLLECTION); - this.state = 2063; - this.match(sqlParser.ITEMS); - this.state = 2064; - this.match(sqlParser.TERMINATED); - this.state = 2065; - this.match(sqlParser.BY); - this.state = 2066; - localctx.collectionItemsTerminatedBy = this.match(sqlParser.STRING); - - } - this.state = 2074; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,269,this._ctx); - if(la_===1) { - this.state = 2069; - this.match(sqlParser.MAP); - this.state = 2070; - this.match(sqlParser.KEYS); - this.state = 2071; - this.match(sqlParser.TERMINATED); - this.state = 2072; - this.match(sqlParser.BY); - this.state = 2073; - localctx.keysTerminatedBy = this.match(sqlParser.STRING); - - } - this.state = 2080; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,270,this._ctx); - if(la_===1) { - this.state = 2076; - this.match(sqlParser.LINES); - this.state = 2077; - this.match(sqlParser.TERMINATED); - this.state = 2078; - this.match(sqlParser.BY); - this.state = 2079; - localctx.linesSeparatedBy = this.match(sqlParser.STRING); - - } - this.state = 2086; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,271,this._ctx); - if(la_===1) { - this.state = 2082; - this.match(sqlParser.NULL); - this.state = 2083; - this.match(sqlParser.DEFINED); - this.state = 2084; - this.match(sqlParser.AS); - this.state = 2085; - localctx.nullDefinedAs = this.match(sqlParser.STRING); - - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function TableIdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_tableIdentifier; - this.db = null; // IdentifierContext - this.table = null; // IdentifierContext - return this; -} - -TableIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -TableIdentifierContext.prototype.constructor = TableIdentifierContext; - -TableIdentifierContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -TableIdentifierContext.prototype.LATERAL = function() { - return this.getToken(sqlParser.LATERAL, 0); -}; - -TableIdentifierContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -TableIdentifierContext.prototype.functionIdentifier = function() { - return this.getTypedRuleContext(FunctionIdentifierContext,0); -}; - -TableIdentifierContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -TableIdentifierContext.prototype.UNNEST = function() { - return this.getToken(sqlParser.UNNEST, 0); -}; - -TableIdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTableIdentifier(this); - } -}; - -TableIdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTableIdentifier(this); - } -}; - -TableIdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTableIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.TableIdentifierContext = TableIdentifierContext; - -sqlParser.prototype.tableIdentifier = function() { - - var localctx = new TableIdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 154, sqlParser.RULE_tableIdentifier); - var _la = 0; // Token type - try { - this.state = 2117; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,275,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2093; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,273,this._ctx); - if(la_===1) { - this.state = 2090; - localctx.db = this.identifier(); - this.state = 2091; - this.match(sqlParser.T__2); - - } - this.state = 2095; - localctx.table = this.identifier(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2096; - this.match(sqlParser.LATERAL); - this.state = 2097; - this.match(sqlParser.TABLE); - this.state = 2098; - this.match(sqlParser.T__0); - this.state = 2099; - this.functionIdentifier(); - this.state = 2100; - this.match(sqlParser.T__0); - this.state = 2101; - this.expression(); - this.state = 2106; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2102; - this.match(sqlParser.T__3); - this.state = 2103; - this.expression(); - this.state = 2108; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2109; - this.match(sqlParser.T__1); - this.state = 2110; - this.match(sqlParser.T__1); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 2112; - this.match(sqlParser.UNNEST); - this.state = 2113; - this.match(sqlParser.T__0); - this.state = 2114; - this.expression(); - this.state = 2115; - this.match(sqlParser.T__1); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function FunctionIdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_functionIdentifier; - this.db = null; // IdentifierContext - this.j_function = null; // IdentifierContext - return this; -} - -FunctionIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -FunctionIdentifierContext.prototype.constructor = FunctionIdentifierContext; - -FunctionIdentifierContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -FunctionIdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterFunctionIdentifier(this); - } -}; - -FunctionIdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitFunctionIdentifier(this); - } -}; - -FunctionIdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitFunctionIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.FunctionIdentifierContext = FunctionIdentifierContext; - -sqlParser.prototype.functionIdentifier = function() { - - var localctx = new FunctionIdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 156, sqlParser.RULE_functionIdentifier); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2122; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,276,this._ctx); - if(la_===1) { - this.state = 2119; - localctx.db = this.identifier(); - this.state = 2120; - this.match(sqlParser.T__2); - - } - this.state = 2124; - localctx.j_function = this.identifier(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function NamedExpressionContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_namedExpression; - return this; -} - -NamedExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -NamedExpressionContext.prototype.constructor = NamedExpressionContext; - -NamedExpressionContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -NamedExpressionContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -NamedExpressionContext.prototype.identifierList = function() { - return this.getTypedRuleContext(IdentifierListContext,0); -}; - -NamedExpressionContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -NamedExpressionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterNamedExpression(this); - } -}; - -NamedExpressionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitNamedExpression(this); - } -}; - -NamedExpressionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitNamedExpression(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.NamedExpressionContext = NamedExpressionContext; - -sqlParser.prototype.namedExpression = function() { - - var localctx = new NamedExpressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 158, sqlParser.RULE_namedExpression); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2126; - this.expression(); - this.state = 2134; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,279,this._ctx); - if(la_===1) { - this.state = 2128; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,277,this._ctx); - if(la_===1) { - this.state = 2127; - this.match(sqlParser.AS); - - } - this.state = 2132; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.AS: - case sqlParser.ALL: - case sqlParser.ANY: - case sqlParser.DISTINCT: - case sqlParser.WHERE: - case sqlParser.GROUP: - case sqlParser.BY: - case sqlParser.GROUPING: - case sqlParser.SETS: - case sqlParser.CUBE: - case sqlParser.ROLLUP: - case sqlParser.ORDER: - case sqlParser.HAVING: - case sqlParser.LIMIT: - case sqlParser.AT: - case sqlParser.OR: - case sqlParser.AND: - case sqlParser.IN: - case sqlParser.NOT: - case sqlParser.NO: - case sqlParser.EXISTS: - case sqlParser.BETWEEN: - case sqlParser.LIKE: - case sqlParser.RLIKE: - case sqlParser.IS: - case sqlParser.NULL: - case sqlParser.TRUE: - case sqlParser.FALSE: - case sqlParser.NULLS: - case sqlParser.ASC: - case sqlParser.DESC: - case sqlParser.FOR: - case sqlParser.INTERVAL: - case sqlParser.CASE: - case sqlParser.WHEN: - case sqlParser.THEN: - case sqlParser.ELSE: - case sqlParser.END: - case sqlParser.JOIN: - case sqlParser.CROSS: - case sqlParser.OUTER: - case sqlParser.INNER: - case sqlParser.LEFT: - case sqlParser.SEMI: - case sqlParser.RIGHT: - case sqlParser.FULL: - case sqlParser.NATURAL: - case sqlParser.ON: - case sqlParser.PIVOT: - case sqlParser.LATERAL: - case sqlParser.WINDOW: - case sqlParser.OVER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.UNBOUNDED: - case sqlParser.PRECEDING: - case sqlParser.FOLLOWING: - case sqlParser.CURRENT: - case sqlParser.FIRST: - case sqlParser.AFTER: - case sqlParser.LAST: - case sqlParser.ROW: - case sqlParser.WITH: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.DIRECTORY: - case sqlParser.VIEW: - case sqlParser.REPLACE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.INTO: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.FORMAT: - case sqlParser.LOGICAL: - case sqlParser.CODEGEN: - case sqlParser.COST: - case sqlParser.CAST: - case sqlParser.SHOW: - case sqlParser.TABLES: - case sqlParser.COLUMNS: - case sqlParser.COLUMN: - case sqlParser.USE: - case sqlParser.PARTITIONS: - case sqlParser.FUNCTIONS: - case sqlParser.DROP: - case sqlParser.UNION: - case sqlParser.EXCEPT: - case sqlParser.SETMINUS: - case sqlParser.INTERSECT: - case sqlParser.TO: - case sqlParser.TABLESAMPLE: - case sqlParser.STRATIFY: - case sqlParser.ALTER: - case sqlParser.RENAME: - case sqlParser.ARRAY: - case sqlParser.MAP: - case sqlParser.STRUCT: - case sqlParser.COMMENT: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.DATA: - case sqlParser.START: - case sqlParser.TRANSACTION: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.MACRO: - case sqlParser.IGNORE: - case sqlParser.BOTH: - case sqlParser.LEADING: - case sqlParser.TRAILING: - case sqlParser.IF: - case sqlParser.POSITION: - case sqlParser.EXTRACT: - case sqlParser.DIV: - case sqlParser.PERCENTLIT: - case sqlParser.BUCKET: - case sqlParser.OUT: - case sqlParser.OF: - case sqlParser.SORT: - case sqlParser.CLUSTER: - case sqlParser.DISTRIBUTE: - case sqlParser.OVERWRITE: - case sqlParser.TRANSFORM: - case sqlParser.REDUCE: - case sqlParser.SERDE: - case sqlParser.SERDEPROPERTIES: - case sqlParser.RECORDREADER: - case sqlParser.RECORDWRITER: - case sqlParser.DELIMITED: - case sqlParser.FIELDS: - case sqlParser.TERMINATED: - case sqlParser.COLLECTION: - case sqlParser.ITEMS: - case sqlParser.KEYS: - case sqlParser.ESCAPED: - case sqlParser.LINES: - case sqlParser.SEPARATED: - case sqlParser.FUNCTION: - case sqlParser.EXTENDED: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.LAZY: - case sqlParser.FORMATTED: - case sqlParser.GLOBAL: - case sqlParser.TEMPORARY: - case sqlParser.OPTIONS: - case sqlParser.UNSET: - case sqlParser.TBLPROPERTIES: - case sqlParser.DBPROPERTIES: - case sqlParser.BUCKETS: - case sqlParser.SKEWED: - case sqlParser.STORED: - case sqlParser.DIRECTORIES: - case sqlParser.LOCATION: - case sqlParser.EXCHANGE: - case sqlParser.ARCHIVE: - case sqlParser.UNARCHIVE: - case sqlParser.FILEFORMAT: - case sqlParser.TOUCH: - case sqlParser.COMPACT: - case sqlParser.CONCATENATE: - case sqlParser.CHANGE: - case sqlParser.CASCADE: - case sqlParser.RESTRICT: - case sqlParser.CLUSTERED: - case sqlParser.SORTED: - case sqlParser.PURGE: - case sqlParser.INPUTFORMAT: - case sqlParser.OUTPUTFORMAT: - case sqlParser.DATABASE: - case sqlParser.DATABASES: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.COMPUTE: - case sqlParser.LIST: - case sqlParser.STATISTICS: - case sqlParser.PARTITIONED: - case sqlParser.EXTERNAL: - case sqlParser.DEFINED: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.REPAIR: - case sqlParser.RECOVER: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - case sqlParser.ROLE: - case sqlParser.ROLES: - case sqlParser.COMPACTIONS: - case sqlParser.PRINCIPALS: - case sqlParser.TRANSACTIONS: - case sqlParser.INDEX: - case sqlParser.INDEXES: - case sqlParser.LOCKS: - case sqlParser.OPTION: - case sqlParser.ANTI: - case sqlParser.LOCAL: - case sqlParser.INPATH: - case sqlParser.IDENTIFIER: - case sqlParser.BACKQUOTED_IDENTIFIER: - this.state = 2130; - this.identifier(); - break; - case sqlParser.T__0: - this.state = 2131; - this.identifierList(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function NamedExpressionSeqContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_namedExpressionSeq; - return this; -} - -NamedExpressionSeqContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -NamedExpressionSeqContext.prototype.constructor = NamedExpressionSeqContext; - -NamedExpressionSeqContext.prototype.namedExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(NamedExpressionContext); - } else { - return this.getTypedRuleContext(NamedExpressionContext,i); - } -}; - -NamedExpressionSeqContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterNamedExpressionSeq(this); - } -}; - -NamedExpressionSeqContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitNamedExpressionSeq(this); - } -}; - -NamedExpressionSeqContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitNamedExpressionSeq(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.NamedExpressionSeqContext = NamedExpressionSeqContext; - -sqlParser.prototype.namedExpressionSeq = function() { - - var localctx = new NamedExpressionSeqContext(this, this._ctx, this.state); - this.enterRule(localctx, 160, sqlParser.RULE_namedExpressionSeq); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2136; - this.namedExpression(); - this.state = 2141; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,280,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 2137; - this.match(sqlParser.T__3); - this.state = 2138; - this.namedExpression(); - } - this.state = 2143; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,280,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ExpressionContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_expression; - return this; -} - -ExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ExpressionContext.prototype.constructor = ExpressionContext; - -ExpressionContext.prototype.booleanExpression = function() { - return this.getTypedRuleContext(BooleanExpressionContext,0); -}; - -ExpressionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterExpression(this); - } -}; - -ExpressionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitExpression(this); - } -}; - -ExpressionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitExpression(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ExpressionContext = ExpressionContext; - -sqlParser.prototype.expression = function() { - - var localctx = new ExpressionContext(this, this._ctx, this.state); - this.enterRule(localctx, 162, sqlParser.RULE_expression); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2144; - this.booleanExpression(0); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function BooleanExpressionContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_booleanExpression; - return this; -} - -BooleanExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -BooleanExpressionContext.prototype.constructor = BooleanExpressionContext; - - - -BooleanExpressionContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - -function LogicalNotContext(parser, ctx) { - BooleanExpressionContext.call(this, parser); - BooleanExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -LogicalNotContext.prototype = Object.create(BooleanExpressionContext.prototype); -LogicalNotContext.prototype.constructor = LogicalNotContext; - -sqlParser.LogicalNotContext = LogicalNotContext; - -LogicalNotContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -LogicalNotContext.prototype.booleanExpression = function() { - return this.getTypedRuleContext(BooleanExpressionContext,0); -}; -LogicalNotContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterLogicalNot(this); - } -}; - -LogicalNotContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitLogicalNot(this); - } -}; - -LogicalNotContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitLogicalNot(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function PredicatedContext(parser, ctx) { - BooleanExpressionContext.call(this, parser); - BooleanExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -PredicatedContext.prototype = Object.create(BooleanExpressionContext.prototype); -PredicatedContext.prototype.constructor = PredicatedContext; - -sqlParser.PredicatedContext = PredicatedContext; - -PredicatedContext.prototype.valueExpression = function() { - return this.getTypedRuleContext(ValueExpressionContext,0); -}; - -PredicatedContext.prototype.predicate = function() { - return this.getTypedRuleContext(PredicateContext,0); -}; -PredicatedContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPredicated(this); - } -}; - -PredicatedContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPredicated(this); - } -}; - -PredicatedContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPredicated(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ExistsContext(parser, ctx) { - BooleanExpressionContext.call(this, parser); - BooleanExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ExistsContext.prototype = Object.create(BooleanExpressionContext.prototype); -ExistsContext.prototype.constructor = ExistsContext; - -sqlParser.ExistsContext = ExistsContext; - -ExistsContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -ExistsContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; -ExistsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterExists(this); - } -}; - -ExistsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitExists(this); - } -}; - -ExistsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitExists(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function LogicalBinaryContext(parser, ctx) { - BooleanExpressionContext.call(this, parser); - this.left = null; // BooleanExpressionContext; - this.operator = null; // Token; - this.right = null; // BooleanExpressionContext; - BooleanExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -LogicalBinaryContext.prototype = Object.create(BooleanExpressionContext.prototype); -LogicalBinaryContext.prototype.constructor = LogicalBinaryContext; - -sqlParser.LogicalBinaryContext = LogicalBinaryContext; - -LogicalBinaryContext.prototype.booleanExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(BooleanExpressionContext); - } else { - return this.getTypedRuleContext(BooleanExpressionContext,i); - } -}; - -LogicalBinaryContext.prototype.AND = function() { - return this.getToken(sqlParser.AND, 0); -}; - -LogicalBinaryContext.prototype.OR = function() { - return this.getToken(sqlParser.OR, 0); -}; -LogicalBinaryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterLogicalBinary(this); - } -}; - -LogicalBinaryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitLogicalBinary(this); - } -}; - -LogicalBinaryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitLogicalBinary(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.prototype.booleanExpression = function(_p) { - if(_p===undefined) { - _p = 0; - } - var _parentctx = this._ctx; - var _parentState = this.state; - var localctx = new BooleanExpressionContext(this, this._ctx, _parentState); - var _prevctx = localctx; - var _startState = 164; - this.enterRecursionRule(localctx, 164, sqlParser.RULE_booleanExpression, _p); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2158; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,282,this._ctx); - switch(la_) { - case 1: - localctx = new LogicalNotContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - - this.state = 2147; - this.match(sqlParser.NOT); - this.state = 2148; - this.booleanExpression(5); - break; - - case 2: - localctx = new ExistsContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2149; - this.match(sqlParser.EXISTS); - this.state = 2150; - this.match(sqlParser.T__0); - this.state = 2151; - this.query(); - this.state = 2152; - this.match(sqlParser.T__1); - break; - - case 3: - localctx = new PredicatedContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2154; - this.valueExpression(0); - this.state = 2156; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,281,this._ctx); - if(la_===1) { - this.state = 2155; - this.predicate(); - - } - break; - - } - this._ctx.stop = this._input.LT(-1); - this.state = 2168; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,284,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - this.state = 2166; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,283,this._ctx); - switch(la_) { - case 1: - localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_booleanExpression); - this.state = 2160; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 2161; - localctx.operator = this.match(sqlParser.AND); - this.state = 2162; - localctx.right = this.booleanExpression(3); - break; - - case 2: - localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_booleanExpression); - this.state = 2163; - if (!( this.precpred(this._ctx, 1))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); - } - this.state = 2164; - localctx.operator = this.match(sqlParser.OR); - this.state = 2165; - localctx.right = this.booleanExpression(2); - break; - - } - } - this.state = 2170; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,284,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; -}; - -function PredicateContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_predicate; - this.kind = null; // Token - this.lower = null; // ValueExpressionContext - this.upper = null; // ValueExpressionContext - this.pattern = null; // ValueExpressionContext - this.right = null; // ValueExpressionContext - return this; -} - -PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PredicateContext.prototype.constructor = PredicateContext; - -PredicateContext.prototype.AND = function() { - return this.getToken(sqlParser.AND, 0); -}; - -PredicateContext.prototype.BETWEEN = function() { - return this.getToken(sqlParser.BETWEEN, 0); -}; - -PredicateContext.prototype.valueExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ValueExpressionContext); - } else { - return this.getTypedRuleContext(ValueExpressionContext,i); - } -}; - -PredicateContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -PredicateContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -PredicateContext.prototype.IN = function() { - return this.getToken(sqlParser.IN, 0); -}; - -PredicateContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; - -PredicateContext.prototype.RLIKE = function() { - return this.getToken(sqlParser.RLIKE, 0); -}; - -PredicateContext.prototype.LIKE = function() { - return this.getToken(sqlParser.LIKE, 0); -}; - -PredicateContext.prototype.IS = function() { - return this.getToken(sqlParser.IS, 0); -}; - -PredicateContext.prototype.NULL = function() { - return this.getToken(sqlParser.NULL, 0); -}; - -PredicateContext.prototype.FROM = function() { - return this.getToken(sqlParser.FROM, 0); -}; - -PredicateContext.prototype.DISTINCT = function() { - return this.getToken(sqlParser.DISTINCT, 0); -}; - -PredicateContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPredicate(this); - } -}; - -PredicateContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPredicate(this); - } -}; - -PredicateContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPredicate(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PredicateContext = PredicateContext; - -sqlParser.prototype.predicate = function() { - - var localctx = new PredicateContext(this, this._ctx, this.state); - this.enterRule(localctx, 166, sqlParser.RULE_predicate); - var _la = 0; // Token type - try { - this.state = 2219; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,292,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2172; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.NOT) { - this.state = 2171; - this.match(sqlParser.NOT); - } - - this.state = 2174; - localctx.kind = this.match(sqlParser.BETWEEN); - this.state = 2175; - localctx.lower = this.valueExpression(0); - this.state = 2176; - this.match(sqlParser.AND); - this.state = 2177; - localctx.upper = this.valueExpression(0); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2180; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.NOT) { - this.state = 2179; - this.match(sqlParser.NOT); - } - - this.state = 2182; - localctx.kind = this.match(sqlParser.IN); - this.state = 2183; - this.match(sqlParser.T__0); - this.state = 2184; - this.expression(); - this.state = 2189; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2185; - this.match(sqlParser.T__3); - this.state = 2186; - this.expression(); - this.state = 2191; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2192; - this.match(sqlParser.T__1); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 2195; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.NOT) { - this.state = 2194; - this.match(sqlParser.NOT); - } - - this.state = 2197; - localctx.kind = this.match(sqlParser.IN); - this.state = 2198; - this.match(sqlParser.T__0); - this.state = 2199; - this.query(); - this.state = 2200; - this.match(sqlParser.T__1); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 2203; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.NOT) { - this.state = 2202; - this.match(sqlParser.NOT); - } - - this.state = 2205; - localctx.kind = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.LIKE || _la===sqlParser.RLIKE)) { - localctx.kind = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2206; - localctx.pattern = this.valueExpression(0); - break; - - case 5: - this.enterOuterAlt(localctx, 5); - this.state = 2207; - this.match(sqlParser.IS); - this.state = 2209; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.NOT) { - this.state = 2208; - this.match(sqlParser.NOT); - } - - this.state = 2211; - localctx.kind = this.match(sqlParser.NULL); - break; - - case 6: - this.enterOuterAlt(localctx, 6); - this.state = 2212; - this.match(sqlParser.IS); - this.state = 2214; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.NOT) { - this.state = 2213; - this.match(sqlParser.NOT); - } - - this.state = 2216; - localctx.kind = this.match(sqlParser.DISTINCT); - this.state = 2217; - this.match(sqlParser.FROM); - this.state = 2218; - localctx.right = this.valueExpression(0); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ValueExpressionContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_valueExpression; - return this; -} - -ValueExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ValueExpressionContext.prototype.constructor = ValueExpressionContext; - - - -ValueExpressionContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - -function ValueExpressionDefaultContext(parser, ctx) { - ValueExpressionContext.call(this, parser); - ValueExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ValueExpressionDefaultContext.prototype = Object.create(ValueExpressionContext.prototype); -ValueExpressionDefaultContext.prototype.constructor = ValueExpressionDefaultContext; - -sqlParser.ValueExpressionDefaultContext = ValueExpressionDefaultContext; - -ValueExpressionDefaultContext.prototype.primaryExpression = function() { - return this.getTypedRuleContext(PrimaryExpressionContext,0); -}; -ValueExpressionDefaultContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterValueExpressionDefault(this); - } -}; - -ValueExpressionDefaultContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitValueExpressionDefault(this); - } -}; - -ValueExpressionDefaultContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitValueExpressionDefault(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ComparisonContext(parser, ctx) { - ValueExpressionContext.call(this, parser); - this.left = null; // ValueExpressionContext; - this.right = null; // ValueExpressionContext; - ValueExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ComparisonContext.prototype = Object.create(ValueExpressionContext.prototype); -ComparisonContext.prototype.constructor = ComparisonContext; - -sqlParser.ComparisonContext = ComparisonContext; - -ComparisonContext.prototype.comparisonOperator = function() { - return this.getTypedRuleContext(ComparisonOperatorContext,0); -}; - -ComparisonContext.prototype.valueExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ValueExpressionContext); - } else { - return this.getTypedRuleContext(ValueExpressionContext,i); - } -}; -ComparisonContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterComparison(this); - } -}; - -ComparisonContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitComparison(this); - } -}; - -ComparisonContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitComparison(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ArithmeticBinaryContext(parser, ctx) { - ValueExpressionContext.call(this, parser); - this.left = null; // ValueExpressionContext; - this.operator = null; // Token; - this.right = null; // ValueExpressionContext; - ValueExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ArithmeticBinaryContext.prototype = Object.create(ValueExpressionContext.prototype); -ArithmeticBinaryContext.prototype.constructor = ArithmeticBinaryContext; - -sqlParser.ArithmeticBinaryContext = ArithmeticBinaryContext; - -ArithmeticBinaryContext.prototype.valueExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ValueExpressionContext); - } else { - return this.getTypedRuleContext(ValueExpressionContext,i); - } -}; - -ArithmeticBinaryContext.prototype.ASTERISK = function() { - return this.getToken(sqlParser.ASTERISK, 0); -}; - -ArithmeticBinaryContext.prototype.SLASH = function() { - return this.getToken(sqlParser.SLASH, 0); -}; - -ArithmeticBinaryContext.prototype.PERCENT = function() { - return this.getToken(sqlParser.PERCENT, 0); -}; - -ArithmeticBinaryContext.prototype.DIV = function() { - return this.getToken(sqlParser.DIV, 0); -}; - -ArithmeticBinaryContext.prototype.PLUS = function() { - return this.getToken(sqlParser.PLUS, 0); -}; - -ArithmeticBinaryContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; - -ArithmeticBinaryContext.prototype.CONCAT_PIPE = function() { - return this.getToken(sqlParser.CONCAT_PIPE, 0); -}; - -ArithmeticBinaryContext.prototype.AMPERSAND = function() { - return this.getToken(sqlParser.AMPERSAND, 0); -}; - -ArithmeticBinaryContext.prototype.HAT = function() { - return this.getToken(sqlParser.HAT, 0); -}; - -ArithmeticBinaryContext.prototype.PIPE = function() { - return this.getToken(sqlParser.PIPE, 0); -}; -ArithmeticBinaryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterArithmeticBinary(this); - } -}; - -ArithmeticBinaryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitArithmeticBinary(this); - } -}; - -ArithmeticBinaryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitArithmeticBinary(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ArithmeticUnaryContext(parser, ctx) { - ValueExpressionContext.call(this, parser); - this.operator = null; // Token; - ValueExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ArithmeticUnaryContext.prototype = Object.create(ValueExpressionContext.prototype); -ArithmeticUnaryContext.prototype.constructor = ArithmeticUnaryContext; - -sqlParser.ArithmeticUnaryContext = ArithmeticUnaryContext; - -ArithmeticUnaryContext.prototype.valueExpression = function() { - return this.getTypedRuleContext(ValueExpressionContext,0); -}; - -ArithmeticUnaryContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; - -ArithmeticUnaryContext.prototype.PLUS = function() { - return this.getToken(sqlParser.PLUS, 0); -}; - -ArithmeticUnaryContext.prototype.TILDE = function() { - return this.getToken(sqlParser.TILDE, 0); -}; -ArithmeticUnaryContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterArithmeticUnary(this); - } -}; - -ArithmeticUnaryContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitArithmeticUnary(this); - } -}; - -ArithmeticUnaryContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitArithmeticUnary(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.prototype.valueExpression = function(_p) { - if(_p===undefined) { - _p = 0; - } - var _parentctx = this._ctx; - var _parentState = this.state; - var localctx = new ValueExpressionContext(this, this._ctx, _parentState); - var _prevctx = localctx; - var _startState = 168; - this.enterRecursionRule(localctx, 168, sqlParser.RULE_valueExpression, _p); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2225; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,293,this._ctx); - switch(la_) { - case 1: - localctx = new ValueExpressionDefaultContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - - this.state = 2222; - this.primaryExpression(0); - break; - - case 2: - localctx = new ArithmeticUnaryContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2223; - localctx.operator = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 146)) & ~0x1f) == 0 && ((1 << (_la - 146)) & ((1 << (sqlParser.PLUS - 146)) | (1 << (sqlParser.MINUS - 146)) | (1 << (sqlParser.TILDE - 146)))) !== 0))) { - localctx.operator = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2224; - this.valueExpression(7); - break; - - } - this._ctx.stop = this._input.LT(-1); - this.state = 2248; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,295,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - this.state = 2246; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,294,this._ctx); - switch(la_) { - case 1: - localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression); - this.state = 2227; - if (!( this.precpred(this._ctx, 6))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 6)"); - } - this.state = 2228; - localctx.operator = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 148)) & ~0x1f) == 0 && ((1 << (_la - 148)) & ((1 << (sqlParser.ASTERISK - 148)) | (1 << (sqlParser.SLASH - 148)) | (1 << (sqlParser.PERCENT - 148)) | (1 << (sqlParser.DIV - 148)))) !== 0))) { - localctx.operator = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2229; - localctx.right = this.valueExpression(7); - break; - - case 2: - localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression); - this.state = 2230; - if (!( this.precpred(this._ctx, 5))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); - } - this.state = 2231; - localctx.operator = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 146)) & ~0x1f) == 0 && ((1 << (_la - 146)) & ((1 << (sqlParser.PLUS - 146)) | (1 << (sqlParser.MINUS - 146)) | (1 << (sqlParser.CONCAT_PIPE - 146)))) !== 0))) { - localctx.operator = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2232; - localctx.right = this.valueExpression(6); - break; - - case 3: - localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression); - this.state = 2233; - if (!( this.precpred(this._ctx, 4))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); - } - this.state = 2234; - localctx.operator = this.match(sqlParser.AMPERSAND); - this.state = 2235; - localctx.right = this.valueExpression(5); - break; - - case 4: - localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression); - this.state = 2236; - if (!( this.precpred(this._ctx, 3))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); - } - this.state = 2237; - localctx.operator = this.match(sqlParser.HAT); - this.state = 2238; - localctx.right = this.valueExpression(4); - break; - - case 5: - localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression); - this.state = 2239; - if (!( this.precpred(this._ctx, 2))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); - } - this.state = 2240; - localctx.operator = this.match(sqlParser.PIPE); - this.state = 2241; - localctx.right = this.valueExpression(3); - break; - - case 6: - localctx = new ComparisonContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); - localctx.left = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_valueExpression); - this.state = 2242; - if (!( this.precpred(this._ctx, 1))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); - } - this.state = 2243; - this.comparisonOperator(); - this.state = 2244; - localctx.right = this.valueExpression(2); - break; - - } - } - this.state = 2250; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,295,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; -}; - -function PrimaryExpressionContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_primaryExpression; - return this; -} - -PrimaryExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PrimaryExpressionContext.prototype.constructor = PrimaryExpressionContext; - - - -PrimaryExpressionContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - -function StructContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - this._namedExpression = null; // NamedExpressionContext; - this.argument = []; // of NamedExpressionContexts; - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -StructContext.prototype = Object.create(PrimaryExpressionContext.prototype); -StructContext.prototype.constructor = StructContext; - -sqlParser.StructContext = StructContext; - -StructContext.prototype.STRUCT = function() { - return this.getToken(sqlParser.STRUCT, 0); -}; - -StructContext.prototype.namedExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(NamedExpressionContext); - } else { - return this.getTypedRuleContext(NamedExpressionContext,i); - } -}; -StructContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterStruct(this); - } -}; - -StructContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitStruct(this); - } -}; - -StructContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitStruct(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DereferenceContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - this.base = null; // PrimaryExpressionContext; - this.fieldName = null; // IdentifierContext; - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DereferenceContext.prototype = Object.create(PrimaryExpressionContext.prototype); -DereferenceContext.prototype.constructor = DereferenceContext; - -sqlParser.DereferenceContext = DereferenceContext; - -DereferenceContext.prototype.primaryExpression = function() { - return this.getTypedRuleContext(PrimaryExpressionContext,0); -}; - -DereferenceContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; -DereferenceContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDereference(this); - } -}; - -DereferenceContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDereference(this); - } -}; - -DereferenceContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDereference(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SimpleCaseContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - this.value = null; // ExpressionContext; - this.elseExpression = null; // ExpressionContext; - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SimpleCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype); -SimpleCaseContext.prototype.constructor = SimpleCaseContext; - -sqlParser.SimpleCaseContext = SimpleCaseContext; - -SimpleCaseContext.prototype.CASE = function() { - return this.getToken(sqlParser.CASE, 0); -}; - -SimpleCaseContext.prototype.END = function() { - return this.getToken(sqlParser.END, 0); -}; - -SimpleCaseContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -SimpleCaseContext.prototype.whenClause = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(WhenClauseContext); - } else { - return this.getTypedRuleContext(WhenClauseContext,i); - } -}; - -SimpleCaseContext.prototype.ELSE = function() { - return this.getToken(sqlParser.ELSE, 0); -}; -SimpleCaseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSimpleCase(this); - } -}; - -SimpleCaseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSimpleCase(this); - } -}; - -SimpleCaseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSimpleCase(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ColumnReferenceContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ColumnReferenceContext.prototype = Object.create(PrimaryExpressionContext.prototype); -ColumnReferenceContext.prototype.constructor = ColumnReferenceContext; - -sqlParser.ColumnReferenceContext = ColumnReferenceContext; - -ColumnReferenceContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; -ColumnReferenceContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterColumnReference(this); - } -}; - -ColumnReferenceContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitColumnReference(this); - } -}; - -ColumnReferenceContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitColumnReference(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function RowConstructorContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -RowConstructorContext.prototype = Object.create(PrimaryExpressionContext.prototype); -RowConstructorContext.prototype.constructor = RowConstructorContext; - -sqlParser.RowConstructorContext = RowConstructorContext; - -RowConstructorContext.prototype.namedExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(NamedExpressionContext); - } else { - return this.getTypedRuleContext(NamedExpressionContext,i); - } -}; -RowConstructorContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterRowConstructor(this); - } -}; - -RowConstructorContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitRowConstructor(this); - } -}; - -RowConstructorContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitRowConstructor(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function LastContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -LastContext.prototype = Object.create(PrimaryExpressionContext.prototype); -LastContext.prototype.constructor = LastContext; - -sqlParser.LastContext = LastContext; - -LastContext.prototype.LAST = function() { - return this.getToken(sqlParser.LAST, 0); -}; - -LastContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -LastContext.prototype.IGNORE = function() { - return this.getToken(sqlParser.IGNORE, 0); -}; - -LastContext.prototype.NULLS = function() { - return this.getToken(sqlParser.NULLS, 0); -}; -LastContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterLast(this); - } -}; - -LastContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitLast(this); - } -}; - -LastContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitLast(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function StarContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -StarContext.prototype = Object.create(PrimaryExpressionContext.prototype); -StarContext.prototype.constructor = StarContext; - -sqlParser.StarContext = StarContext; - -StarContext.prototype.ASTERISK = function() { - return this.getToken(sqlParser.ASTERISK, 0); -}; - -StarContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; -StarContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterStar(this); - } -}; - -StarContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitStar(this); - } -}; - -StarContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitStar(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SubscriptContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - this.value = null; // PrimaryExpressionContext; - this.index = null; // ValueExpressionContext; - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SubscriptContext.prototype = Object.create(PrimaryExpressionContext.prototype); -SubscriptContext.prototype.constructor = SubscriptContext; - -sqlParser.SubscriptContext = SubscriptContext; - -SubscriptContext.prototype.primaryExpression = function() { - return this.getTypedRuleContext(PrimaryExpressionContext,0); -}; - -SubscriptContext.prototype.valueExpression = function() { - return this.getTypedRuleContext(ValueExpressionContext,0); -}; -SubscriptContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSubscript(this); - } -}; - -SubscriptContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSubscript(this); - } -}; - -SubscriptContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSubscript(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SubqueryExpressionContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SubqueryExpressionContext.prototype = Object.create(PrimaryExpressionContext.prototype); -SubqueryExpressionContext.prototype.constructor = SubqueryExpressionContext; - -sqlParser.SubqueryExpressionContext = SubqueryExpressionContext; - -SubqueryExpressionContext.prototype.query = function() { - return this.getTypedRuleContext(QueryContext,0); -}; -SubqueryExpressionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSubqueryExpression(this); - } -}; - -SubqueryExpressionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSubqueryExpression(this); - } -}; - -SubqueryExpressionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSubqueryExpression(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function CastContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -CastContext.prototype = Object.create(PrimaryExpressionContext.prototype); -CastContext.prototype.constructor = CastContext; - -sqlParser.CastContext = CastContext; - -CastContext.prototype.CAST = function() { - return this.getToken(sqlParser.CAST, 0); -}; - -CastContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -CastContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -CastContext.prototype.dataType = function() { - return this.getTypedRuleContext(DataTypeContext,0); -}; -CastContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterCast(this); - } -}; - -CastContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitCast(this); - } -}; - -CastContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitCast(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ConstantDefaultContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ConstantDefaultContext.prototype = Object.create(PrimaryExpressionContext.prototype); -ConstantDefaultContext.prototype.constructor = ConstantDefaultContext; - -sqlParser.ConstantDefaultContext = ConstantDefaultContext; - -ConstantDefaultContext.prototype.constant = function() { - return this.getTypedRuleContext(ConstantContext,0); -}; -ConstantDefaultContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterConstantDefault(this); - } -}; - -ConstantDefaultContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitConstantDefault(this); - } -}; - -ConstantDefaultContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitConstantDefault(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function LambdaContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -LambdaContext.prototype = Object.create(PrimaryExpressionContext.prototype); -LambdaContext.prototype.constructor = LambdaContext; - -sqlParser.LambdaContext = LambdaContext; - -LambdaContext.prototype.IDENTIFIER = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.IDENTIFIER); - } else { - return this.getToken(sqlParser.IDENTIFIER, i); - } -}; - - -LambdaContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; -LambdaContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterLambda(this); - } -}; - -LambdaContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitLambda(this); - } -}; - -LambdaContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitLambda(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ParenthesizedExpressionContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ParenthesizedExpressionContext.prototype = Object.create(PrimaryExpressionContext.prototype); -ParenthesizedExpressionContext.prototype.constructor = ParenthesizedExpressionContext; - -sqlParser.ParenthesizedExpressionContext = ParenthesizedExpressionContext; - -ParenthesizedExpressionContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; -ParenthesizedExpressionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterParenthesizedExpression(this); - } -}; - -ParenthesizedExpressionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitParenthesizedExpression(this); - } -}; - -ParenthesizedExpressionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitParenthesizedExpression(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function ExtractContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - this.field = null; // IdentifierContext; - this.source = null; // ValueExpressionContext; - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ExtractContext.prototype = Object.create(PrimaryExpressionContext.prototype); -ExtractContext.prototype.constructor = ExtractContext; - -sqlParser.ExtractContext = ExtractContext; - -ExtractContext.prototype.EXTRACT = function() { - return this.getToken(sqlParser.EXTRACT, 0); -}; - -ExtractContext.prototype.FROM = function() { - return this.getToken(sqlParser.FROM, 0); -}; - -ExtractContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ExtractContext.prototype.valueExpression = function() { - return this.getTypedRuleContext(ValueExpressionContext,0); -}; -ExtractContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterExtract(this); - } -}; - -ExtractContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitExtract(this); - } -}; - -ExtractContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitExtract(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function FunctionCallContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - this._expression = null; // ExpressionContext; - this.argument = []; // of ExpressionContexts; - this.trimOption = null; // Token; - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -FunctionCallContext.prototype = Object.create(PrimaryExpressionContext.prototype); -FunctionCallContext.prototype.constructor = FunctionCallContext; - -sqlParser.FunctionCallContext = FunctionCallContext; - -FunctionCallContext.prototype.qualifiedName = function() { - return this.getTypedRuleContext(QualifiedNameContext,0); -}; - -FunctionCallContext.prototype.OVER = function() { - return this.getToken(sqlParser.OVER, 0); -}; - -FunctionCallContext.prototype.windowSpec = function() { - return this.getTypedRuleContext(WindowSpecContext,0); -}; - -FunctionCallContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -FunctionCallContext.prototype.setQuantifier = function() { - return this.getTypedRuleContext(SetQuantifierContext,0); -}; - -FunctionCallContext.prototype.FROM = function() { - return this.getToken(sqlParser.FROM, 0); -}; - -FunctionCallContext.prototype.BOTH = function() { - return this.getToken(sqlParser.BOTH, 0); -}; - -FunctionCallContext.prototype.LEADING = function() { - return this.getToken(sqlParser.LEADING, 0); -}; - -FunctionCallContext.prototype.TRAILING = function() { - return this.getToken(sqlParser.TRAILING, 0); -}; -FunctionCallContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterFunctionCall(this); - } -}; - -FunctionCallContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitFunctionCall(this); - } -}; - -FunctionCallContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitFunctionCall(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SearchedCaseContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - this.elseExpression = null; // ExpressionContext; - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SearchedCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype); -SearchedCaseContext.prototype.constructor = SearchedCaseContext; - -sqlParser.SearchedCaseContext = SearchedCaseContext; - -SearchedCaseContext.prototype.CASE = function() { - return this.getToken(sqlParser.CASE, 0); -}; - -SearchedCaseContext.prototype.END = function() { - return this.getToken(sqlParser.END, 0); -}; - -SearchedCaseContext.prototype.whenClause = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(WhenClauseContext); - } else { - return this.getTypedRuleContext(WhenClauseContext,i); - } -}; - -SearchedCaseContext.prototype.ELSE = function() { - return this.getToken(sqlParser.ELSE, 0); -}; - -SearchedCaseContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; -SearchedCaseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSearchedCase(this); - } -}; - -SearchedCaseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSearchedCase(this); - } -}; - -SearchedCaseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSearchedCase(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function PositionContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - this.substr = null; // ValueExpressionContext; - this.str = null; // ValueExpressionContext; - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -PositionContext.prototype = Object.create(PrimaryExpressionContext.prototype); -PositionContext.prototype.constructor = PositionContext; - -sqlParser.PositionContext = PositionContext; - -PositionContext.prototype.POSITION = function() { - return this.getToken(sqlParser.POSITION, 0); -}; - -PositionContext.prototype.IN = function() { - return this.getToken(sqlParser.IN, 0); -}; - -PositionContext.prototype.valueExpression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ValueExpressionContext); - } else { - return this.getTypedRuleContext(ValueExpressionContext,i); - } -}; -PositionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPosition(this); - } -}; - -PositionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPosition(this); - } -}; - -PositionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPosition(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function FirstContext(parser, ctx) { - PrimaryExpressionContext.call(this, parser); - PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); - return this; -} - -FirstContext.prototype = Object.create(PrimaryExpressionContext.prototype); -FirstContext.prototype.constructor = FirstContext; - -sqlParser.FirstContext = FirstContext; - -FirstContext.prototype.FIRST = function() { - return this.getToken(sqlParser.FIRST, 0); -}; - -FirstContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -FirstContext.prototype.IGNORE = function() { - return this.getToken(sqlParser.IGNORE, 0); -}; - -FirstContext.prototype.NULLS = function() { - return this.getToken(sqlParser.NULLS, 0); -}; -FirstContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterFirst(this); - } -}; - -FirstContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitFirst(this); - } -}; - -FirstContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitFirst(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.prototype.primaryExpression = function(_p) { - if(_p===undefined) { - _p = 0; - } - var _parentctx = this._ctx; - var _parentState = this.state; - var localctx = new PrimaryExpressionContext(this, this._ctx, _parentState); - var _prevctx = localctx; - var _startState = 170; - this.enterRecursionRule(localctx, 170, sqlParser.RULE_primaryExpression, _p); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2396; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,310,this._ctx); - switch(la_) { - case 1: - localctx = new SearchedCaseContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - - this.state = 2252; - this.match(sqlParser.CASE); - this.state = 2254; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 2253; - this.whenClause(); - this.state = 2256; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===sqlParser.WHEN); - this.state = 2260; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ELSE) { - this.state = 2258; - this.match(sqlParser.ELSE); - this.state = 2259; - localctx.elseExpression = this.expression(); - } - - this.state = 2262; - this.match(sqlParser.END); - break; - - case 2: - localctx = new SimpleCaseContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2264; - this.match(sqlParser.CASE); - this.state = 2265; - localctx.value = this.expression(); - this.state = 2267; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 2266; - this.whenClause(); - this.state = 2269; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===sqlParser.WHEN); - this.state = 2273; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ELSE) { - this.state = 2271; - this.match(sqlParser.ELSE); - this.state = 2272; - localctx.elseExpression = this.expression(); - } - - this.state = 2275; - this.match(sqlParser.END); - break; - - case 3: - localctx = new CastContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2277; - this.match(sqlParser.CAST); - this.state = 2278; - this.match(sqlParser.T__0); - this.state = 2279; - this.expression(); - this.state = 2280; - this.match(sqlParser.AS); - this.state = 2281; - this.dataType(); - this.state = 2282; - this.match(sqlParser.T__1); - break; - - case 4: - localctx = new StructContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2284; - this.match(sqlParser.STRUCT); - this.state = 2285; - this.match(sqlParser.T__0); - this.state = 2294; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.ROLLUP - 32)) | (1 << (sqlParser.ORDER - 32)) | (1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.LEFT - 64)) | (1 << (sqlParser.SEMI - 64)) | (1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.EXPLAIN - 96)) | (1 << (sqlParser.FORMAT - 96)) | (1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.COMMIT - 128)) | (1 << (sqlParser.ROLLBACK - 128)) | (1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.OF - 160)) | (1 << (sqlParser.SORT - 160)) | (1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.UNSET - 192)) | (1 << (sqlParser.TBLPROPERTIES - 192)) | (1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.EXTERNAL - 224)) | (1 << (sqlParser.DEFINED - 224)) | (1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 261)) & ~0x1f) == 0 && ((1 << (_la - 261)) & ((1 << (sqlParser.STRING - 261)) | (1 << (sqlParser.BIGINT_LITERAL - 261)) | (1 << (sqlParser.SMALLINT_LITERAL - 261)) | (1 << (sqlParser.TINYINT_LITERAL - 261)) | (1 << (sqlParser.INTEGER_VALUE - 261)) | (1 << (sqlParser.DECIMAL_VALUE - 261)) | (1 << (sqlParser.DOUBLE_LITERAL - 261)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 261)) | (1 << (sqlParser.IDENTIFIER - 261)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 261)))) !== 0)) { - this.state = 2286; - localctx._namedExpression = this.namedExpression(); - localctx.argument.push(localctx._namedExpression); - this.state = 2291; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2287; - this.match(sqlParser.T__3); - this.state = 2288; - localctx._namedExpression = this.namedExpression(); - localctx.argument.push(localctx._namedExpression); - this.state = 2293; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 2296; - this.match(sqlParser.T__1); - break; - - case 5: - localctx = new FirstContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2297; - this.match(sqlParser.FIRST); - this.state = 2298; - this.match(sqlParser.T__0); - this.state = 2299; - this.expression(); - this.state = 2302; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.IGNORE) { - this.state = 2300; - this.match(sqlParser.IGNORE); - this.state = 2301; - this.match(sqlParser.NULLS); - } - - this.state = 2304; - this.match(sqlParser.T__1); - break; - - case 6: - localctx = new LastContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2306; - this.match(sqlParser.LAST); - this.state = 2307; - this.match(sqlParser.T__0); - this.state = 2308; - this.expression(); - this.state = 2311; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.IGNORE) { - this.state = 2309; - this.match(sqlParser.IGNORE); - this.state = 2310; - this.match(sqlParser.NULLS); - } - - this.state = 2313; - this.match(sqlParser.T__1); - break; - - case 7: - localctx = new PositionContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2315; - this.match(sqlParser.POSITION); - this.state = 2316; - this.match(sqlParser.T__0); - this.state = 2317; - localctx.substr = this.valueExpression(0); - this.state = 2318; - this.match(sqlParser.IN); - this.state = 2319; - localctx.str = this.valueExpression(0); - this.state = 2320; - this.match(sqlParser.T__1); - break; - - case 8: - localctx = new ConstantDefaultContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2322; - this.constant(); - break; - - case 9: - localctx = new StarContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2323; - this.match(sqlParser.ASTERISK); - break; - - case 10: - localctx = new StarContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2324; - this.qualifiedName(); - this.state = 2325; - this.match(sqlParser.T__2); - this.state = 2326; - this.match(sqlParser.ASTERISK); - break; - - case 11: - localctx = new RowConstructorContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2328; - this.match(sqlParser.T__0); - this.state = 2329; - this.namedExpression(); - this.state = 2332; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 2330; - this.match(sqlParser.T__3); - this.state = 2331; - this.namedExpression(); - this.state = 2334; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===sqlParser.T__3); - this.state = 2336; - this.match(sqlParser.T__1); - break; - - case 12: - localctx = new SubqueryExpressionContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2338; - this.match(sqlParser.T__0); - this.state = 2339; - this.query(); - this.state = 2340; - this.match(sqlParser.T__1); - break; - - case 13: - localctx = new FunctionCallContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2342; - this.qualifiedName(); - this.state = 2343; - this.match(sqlParser.T__0); - this.state = 2355; - this._errHandler.sync(this); - _la = this._input.LA(1); - if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.T__0) | (1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.ROLLUP - 32)) | (1 << (sqlParser.ORDER - 32)) | (1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.JOIN - 32)) | (1 << (sqlParser.CROSS - 32)) | (1 << (sqlParser.OUTER - 32)) | (1 << (sqlParser.INNER - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (sqlParser.LEFT - 64)) | (1 << (sqlParser.SEMI - 64)) | (1 << (sqlParser.RIGHT - 64)) | (1 << (sqlParser.FULL - 64)) | (1 << (sqlParser.NATURAL - 64)) | (1 << (sqlParser.ON - 64)) | (1 << (sqlParser.PIVOT - 64)) | (1 << (sqlParser.LATERAL - 64)) | (1 << (sqlParser.WINDOW - 64)) | (1 << (sqlParser.OVER - 64)) | (1 << (sqlParser.PARTITION - 64)) | (1 << (sqlParser.RANGE - 64)) | (1 << (sqlParser.ROWS - 64)) | (1 << (sqlParser.UNBOUNDED - 64)) | (1 << (sqlParser.PRECEDING - 64)) | (1 << (sqlParser.FOLLOWING - 64)) | (1 << (sqlParser.CURRENT - 64)) | (1 << (sqlParser.FIRST - 64)) | (1 << (sqlParser.AFTER - 64)) | (1 << (sqlParser.LAST - 64)) | (1 << (sqlParser.ROW - 64)) | (1 << (sqlParser.WITH - 64)) | (1 << (sqlParser.CREATE - 64)) | (1 << (sqlParser.TABLE - 64)) | (1 << (sqlParser.DIRECTORY - 64)) | (1 << (sqlParser.VIEW - 64)) | (1 << (sqlParser.REPLACE - 64)) | (1 << (sqlParser.INSERT - 64)) | (1 << (sqlParser.DELETE - 64)) | (1 << (sqlParser.INTO - 64)) | (1 << (sqlParser.DESCRIBE - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (sqlParser.EXPLAIN - 96)) | (1 << (sqlParser.FORMAT - 96)) | (1 << (sqlParser.LOGICAL - 96)) | (1 << (sqlParser.CODEGEN - 96)) | (1 << (sqlParser.COST - 96)) | (1 << (sqlParser.CAST - 96)) | (1 << (sqlParser.SHOW - 96)) | (1 << (sqlParser.TABLES - 96)) | (1 << (sqlParser.COLUMNS - 96)) | (1 << (sqlParser.COLUMN - 96)) | (1 << (sqlParser.USE - 96)) | (1 << (sqlParser.PARTITIONS - 96)) | (1 << (sqlParser.FUNCTIONS - 96)) | (1 << (sqlParser.DROP - 96)) | (1 << (sqlParser.UNION - 96)) | (1 << (sqlParser.EXCEPT - 96)) | (1 << (sqlParser.SETMINUS - 96)) | (1 << (sqlParser.INTERSECT - 96)) | (1 << (sqlParser.TO - 96)) | (1 << (sqlParser.TABLESAMPLE - 96)) | (1 << (sqlParser.STRATIFY - 96)) | (1 << (sqlParser.ALTER - 96)) | (1 << (sqlParser.RENAME - 96)) | (1 << (sqlParser.ARRAY - 96)) | (1 << (sqlParser.MAP - 96)) | (1 << (sqlParser.STRUCT - 96)) | (1 << (sqlParser.COMMENT - 96)) | (1 << (sqlParser.SET - 96)) | (1 << (sqlParser.RESET - 96)) | (1 << (sqlParser.DATA - 96)) | (1 << (sqlParser.START - 96)) | (1 << (sqlParser.TRANSACTION - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (sqlParser.COMMIT - 128)) | (1 << (sqlParser.ROLLBACK - 128)) | (1 << (sqlParser.MACRO - 128)) | (1 << (sqlParser.IGNORE - 128)) | (1 << (sqlParser.BOTH - 128)) | (1 << (sqlParser.LEADING - 128)) | (1 << (sqlParser.TRAILING - 128)) | (1 << (sqlParser.IF - 128)) | (1 << (sqlParser.POSITION - 128)) | (1 << (sqlParser.EXTRACT - 128)) | (1 << (sqlParser.PLUS - 128)) | (1 << (sqlParser.MINUS - 128)) | (1 << (sqlParser.ASTERISK - 128)) | (1 << (sqlParser.DIV - 128)) | (1 << (sqlParser.TILDE - 128)) | (1 << (sqlParser.PERCENTLIT - 128)) | (1 << (sqlParser.BUCKET - 128)) | (1 << (sqlParser.OUT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (sqlParser.OF - 160)) | (1 << (sqlParser.SORT - 160)) | (1 << (sqlParser.CLUSTER - 160)) | (1 << (sqlParser.DISTRIBUTE - 160)) | (1 << (sqlParser.OVERWRITE - 160)) | (1 << (sqlParser.TRANSFORM - 160)) | (1 << (sqlParser.REDUCE - 160)) | (1 << (sqlParser.SERDE - 160)) | (1 << (sqlParser.SERDEPROPERTIES - 160)) | (1 << (sqlParser.RECORDREADER - 160)) | (1 << (sqlParser.RECORDWRITER - 160)) | (1 << (sqlParser.DELIMITED - 160)) | (1 << (sqlParser.FIELDS - 160)) | (1 << (sqlParser.TERMINATED - 160)) | (1 << (sqlParser.COLLECTION - 160)) | (1 << (sqlParser.ITEMS - 160)) | (1 << (sqlParser.KEYS - 160)) | (1 << (sqlParser.ESCAPED - 160)) | (1 << (sqlParser.LINES - 160)) | (1 << (sqlParser.SEPARATED - 160)) | (1 << (sqlParser.FUNCTION - 160)) | (1 << (sqlParser.EXTENDED - 160)) | (1 << (sqlParser.REFRESH - 160)) | (1 << (sqlParser.CLEAR - 160)) | (1 << (sqlParser.CACHE - 160)) | (1 << (sqlParser.UNCACHE - 160)) | (1 << (sqlParser.LAZY - 160)) | (1 << (sqlParser.FORMATTED - 160)) | (1 << (sqlParser.GLOBAL - 160)) | (1 << (sqlParser.TEMPORARY - 160)) | (1 << (sqlParser.OPTIONS - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (sqlParser.UNSET - 192)) | (1 << (sqlParser.TBLPROPERTIES - 192)) | (1 << (sqlParser.DBPROPERTIES - 192)) | (1 << (sqlParser.BUCKETS - 192)) | (1 << (sqlParser.SKEWED - 192)) | (1 << (sqlParser.STORED - 192)) | (1 << (sqlParser.DIRECTORIES - 192)) | (1 << (sqlParser.LOCATION - 192)) | (1 << (sqlParser.EXCHANGE - 192)) | (1 << (sqlParser.ARCHIVE - 192)) | (1 << (sqlParser.UNARCHIVE - 192)) | (1 << (sqlParser.FILEFORMAT - 192)) | (1 << (sqlParser.TOUCH - 192)) | (1 << (sqlParser.COMPACT - 192)) | (1 << (sqlParser.CONCATENATE - 192)) | (1 << (sqlParser.CHANGE - 192)) | (1 << (sqlParser.CASCADE - 192)) | (1 << (sqlParser.RESTRICT - 192)) | (1 << (sqlParser.CLUSTERED - 192)) | (1 << (sqlParser.SORTED - 192)) | (1 << (sqlParser.PURGE - 192)) | (1 << (sqlParser.INPUTFORMAT - 192)) | (1 << (sqlParser.OUTPUTFORMAT - 192)) | (1 << (sqlParser.DATABASE - 192)) | (1 << (sqlParser.DATABASES - 192)) | (1 << (sqlParser.DFS - 192)) | (1 << (sqlParser.TRUNCATE - 192)) | (1 << (sqlParser.ANALYZE - 192)) | (1 << (sqlParser.COMPUTE - 192)) | (1 << (sqlParser.LIST - 192)) | (1 << (sqlParser.STATISTICS - 192)) | (1 << (sqlParser.PARTITIONED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (sqlParser.EXTERNAL - 224)) | (1 << (sqlParser.DEFINED - 224)) | (1 << (sqlParser.REVOKE - 224)) | (1 << (sqlParser.GRANT - 224)) | (1 << (sqlParser.LOCK - 224)) | (1 << (sqlParser.UNLOCK - 224)) | (1 << (sqlParser.MSCK - 224)) | (1 << (sqlParser.REPAIR - 224)) | (1 << (sqlParser.RECOVER - 224)) | (1 << (sqlParser.EXPORT - 224)) | (1 << (sqlParser.IMPORT - 224)) | (1 << (sqlParser.LOAD - 224)) | (1 << (sqlParser.ROLE - 224)) | (1 << (sqlParser.ROLES - 224)) | (1 << (sqlParser.COMPACTIONS - 224)) | (1 << (sqlParser.PRINCIPALS - 224)) | (1 << (sqlParser.TRANSACTIONS - 224)) | (1 << (sqlParser.INDEX - 224)) | (1 << (sqlParser.INDEXES - 224)) | (1 << (sqlParser.LOCKS - 224)) | (1 << (sqlParser.OPTION - 224)) | (1 << (sqlParser.ANTI - 224)) | (1 << (sqlParser.LOCAL - 224)) | (1 << (sqlParser.INPATH - 224)))) !== 0) || ((((_la - 261)) & ~0x1f) == 0 && ((1 << (_la - 261)) & ((1 << (sqlParser.STRING - 261)) | (1 << (sqlParser.BIGINT_LITERAL - 261)) | (1 << (sqlParser.SMALLINT_LITERAL - 261)) | (1 << (sqlParser.TINYINT_LITERAL - 261)) | (1 << (sqlParser.INTEGER_VALUE - 261)) | (1 << (sqlParser.DECIMAL_VALUE - 261)) | (1 << (sqlParser.DOUBLE_LITERAL - 261)) | (1 << (sqlParser.BIGDECIMAL_LITERAL - 261)) | (1 << (sqlParser.IDENTIFIER - 261)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 261)))) !== 0)) { - this.state = 2345; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,305,this._ctx); - if(la_===1) { - this.state = 2344; - this.setQuantifier(); - - } - this.state = 2347; - localctx._expression = this.expression(); - localctx.argument.push(localctx._expression); - this.state = 2352; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2348; - this.match(sqlParser.T__3); - this.state = 2349; - localctx._expression = this.expression(); - localctx.argument.push(localctx._expression); - this.state = 2354; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 2357; - this.match(sqlParser.T__1); - this.state = 2360; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,308,this._ctx); - if(la_===1) { - this.state = 2358; - this.match(sqlParser.OVER); - this.state = 2359; - this.windowSpec(); - - } - break; - - case 14: - localctx = new FunctionCallContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2362; - this.qualifiedName(); - this.state = 2363; - this.match(sqlParser.T__0); - this.state = 2364; - localctx.trimOption = this._input.LT(1); - _la = this._input.LA(1); - if(!(((((_la - 132)) & ~0x1f) == 0 && ((1 << (_la - 132)) & ((1 << (sqlParser.BOTH - 132)) | (1 << (sqlParser.LEADING - 132)) | (1 << (sqlParser.TRAILING - 132)))) !== 0))) { - localctx.trimOption = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2365; - localctx._expression = this.expression(); - localctx.argument.push(localctx._expression); - this.state = 2366; - this.match(sqlParser.FROM); - this.state = 2367; - localctx._expression = this.expression(); - localctx.argument.push(localctx._expression); - this.state = 2368; - this.match(sqlParser.T__1); - break; - - case 15: - localctx = new LambdaContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2370; - this.match(sqlParser.IDENTIFIER); - this.state = 2371; - this.match(sqlParser.T__12); - this.state = 2372; - this.expression(); - break; - - case 16: - localctx = new LambdaContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2373; - this.match(sqlParser.T__0); - this.state = 2374; - this.match(sqlParser.IDENTIFIER); - this.state = 2377; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - this.state = 2375; - this.match(sqlParser.T__3); - this.state = 2376; - this.match(sqlParser.IDENTIFIER); - this.state = 2379; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while(_la===sqlParser.T__3); - this.state = 2381; - this.match(sqlParser.T__1); - this.state = 2382; - this.match(sqlParser.T__12); - this.state = 2383; - this.expression(); - break; - - case 17: - localctx = new ColumnReferenceContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2384; - this.identifier(); - break; - - case 18: - localctx = new ParenthesizedExpressionContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2385; - this.match(sqlParser.T__0); - this.state = 2386; - this.expression(); - this.state = 2387; - this.match(sqlParser.T__1); - break; - - case 19: - localctx = new ExtractContext(this, localctx); - this._ctx = localctx; - _prevctx = localctx; - this.state = 2389; - this.match(sqlParser.EXTRACT); - this.state = 2390; - this.match(sqlParser.T__0); - this.state = 2391; - localctx.field = this.identifier(); - this.state = 2392; - this.match(sqlParser.FROM); - this.state = 2393; - localctx.source = this.valueExpression(0); - this.state = 2394; - this.match(sqlParser.T__1); - break; - - } - this._ctx.stop = this._input.LT(-1); - this.state = 2408; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,312,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - if(this._parseListeners!==null) { - this.triggerExitRuleEvent(); - } - _prevctx = localctx; - this.state = 2406; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,311,this._ctx); - switch(la_) { - case 1: - localctx = new SubscriptContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState)); - localctx.value = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_primaryExpression); - this.state = 2398; - if (!( this.precpred(this._ctx, 5))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); - } - this.state = 2399; - this.match(sqlParser.T__13); - this.state = 2400; - localctx.index = this.valueExpression(0); - this.state = 2401; - this.match(sqlParser.T__14); - break; - - case 2: - localctx = new DereferenceContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState)); - localctx.base = _prevctx; - this.pushNewRecursionContext(localctx, _startState, sqlParser.RULE_primaryExpression); - this.state = 2403; - if (!( this.precpred(this._ctx, 3))) { - throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); - } - this.state = 2404; - this.match(sqlParser.T__2); - this.state = 2405; - localctx.fieldName = this.identifier(); - break; - - } - } - this.state = 2410; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,312,this._ctx); - } - - } catch( error) { - if(error instanceof antlr4.error.RecognitionException) { - localctx.exception = error; - this._errHandler.reportError(this, error); - this._errHandler.recover(this, error); - } else { - throw error; - } - } finally { - this.unrollRecursionContexts(_parentctx) - } - return localctx; -}; - -function ConstantContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_constant; - return this; -} - -ConstantContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ConstantContext.prototype.constructor = ConstantContext; - - - -ConstantContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function NullLiteralContext(parser, ctx) { - ConstantContext.call(this, parser); - ConstantContext.prototype.copyFrom.call(this, ctx); - return this; -} - -NullLiteralContext.prototype = Object.create(ConstantContext.prototype); -NullLiteralContext.prototype.constructor = NullLiteralContext; - -sqlParser.NullLiteralContext = NullLiteralContext; - -NullLiteralContext.prototype.NULL = function() { - return this.getToken(sqlParser.NULL, 0); -}; -NullLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterNullLiteral(this); - } -}; - -NullLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitNullLiteral(this); - } -}; - -NullLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitNullLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function StringLiteralContext(parser, ctx) { - ConstantContext.call(this, parser); - ConstantContext.prototype.copyFrom.call(this, ctx); - return this; -} - -StringLiteralContext.prototype = Object.create(ConstantContext.prototype); -StringLiteralContext.prototype.constructor = StringLiteralContext; - -sqlParser.StringLiteralContext = StringLiteralContext; - -StringLiteralContext.prototype.STRING = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.STRING); - } else { - return this.getToken(sqlParser.STRING, i); - } -}; - -StringLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterStringLiteral(this); - } -}; - -StringLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitStringLiteral(this); - } -}; - -StringLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitStringLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function TypeConstructorContext(parser, ctx) { - ConstantContext.call(this, parser); - ConstantContext.prototype.copyFrom.call(this, ctx); - return this; -} - -TypeConstructorContext.prototype = Object.create(ConstantContext.prototype); -TypeConstructorContext.prototype.constructor = TypeConstructorContext; - -sqlParser.TypeConstructorContext = TypeConstructorContext; - -TypeConstructorContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -TypeConstructorContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; -TypeConstructorContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTypeConstructor(this); - } -}; - -TypeConstructorContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTypeConstructor(this); - } -}; - -TypeConstructorContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTypeConstructor(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function IntervalLiteralContext(parser, ctx) { - ConstantContext.call(this, parser); - ConstantContext.prototype.copyFrom.call(this, ctx); - return this; -} - -IntervalLiteralContext.prototype = Object.create(ConstantContext.prototype); -IntervalLiteralContext.prototype.constructor = IntervalLiteralContext; - -sqlParser.IntervalLiteralContext = IntervalLiteralContext; - -IntervalLiteralContext.prototype.interval = function() { - return this.getTypedRuleContext(IntervalContext,0); -}; -IntervalLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIntervalLiteral(this); - } -}; - -IntervalLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIntervalLiteral(this); - } -}; - -IntervalLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIntervalLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function NumericLiteralContext(parser, ctx) { - ConstantContext.call(this, parser); - ConstantContext.prototype.copyFrom.call(this, ctx); - return this; -} - -NumericLiteralContext.prototype = Object.create(ConstantContext.prototype); -NumericLiteralContext.prototype.constructor = NumericLiteralContext; - -sqlParser.NumericLiteralContext = NumericLiteralContext; - -NumericLiteralContext.prototype.number = function() { - return this.getTypedRuleContext(NumberContext,0); -}; -NumericLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterNumericLiteral(this); - } -}; - -NumericLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitNumericLiteral(this); - } -}; - -NumericLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitNumericLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function BooleanLiteralContext(parser, ctx) { - ConstantContext.call(this, parser); - ConstantContext.prototype.copyFrom.call(this, ctx); - return this; -} - -BooleanLiteralContext.prototype = Object.create(ConstantContext.prototype); -BooleanLiteralContext.prototype.constructor = BooleanLiteralContext; - -sqlParser.BooleanLiteralContext = BooleanLiteralContext; - -BooleanLiteralContext.prototype.booleanValue = function() { - return this.getTypedRuleContext(BooleanValueContext,0); -}; -BooleanLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterBooleanLiteral(this); - } -}; - -BooleanLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitBooleanLiteral(this); - } -}; - -BooleanLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitBooleanLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.ConstantContext = ConstantContext; - -sqlParser.prototype.constant = function() { - - var localctx = new ConstantContext(this, this._ctx, this.state); - this.enterRule(localctx, 172, sqlParser.RULE_constant); - try { - this.state = 2423; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,314,this._ctx); - switch(la_) { - case 1: - localctx = new NullLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 2411; - this.match(sqlParser.NULL); - break; - - case 2: - localctx = new IntervalLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 2412; - this.interval(); - break; - - case 3: - localctx = new TypeConstructorContext(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 2413; - this.identifier(); - this.state = 2414; - this.match(sqlParser.STRING); - break; - - case 4: - localctx = new NumericLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 4); - this.state = 2416; - this.number(); - break; - - case 5: - localctx = new BooleanLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 5); - this.state = 2417; - this.booleanValue(); - break; - - case 6: - localctx = new StringLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 6); - this.state = 2419; - this._errHandler.sync(this); - var _alt = 1; - do { - switch (_alt) { - case 1: - this.state = 2418; - this.match(sqlParser.STRING); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 2421; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,313, this._ctx); - } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ComparisonOperatorContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_comparisonOperator; - return this; -} - -ComparisonOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ComparisonOperatorContext.prototype.constructor = ComparisonOperatorContext; - -ComparisonOperatorContext.prototype.EQ = function() { - return this.getToken(sqlParser.EQ, 0); -}; - -ComparisonOperatorContext.prototype.NEQ = function() { - return this.getToken(sqlParser.NEQ, 0); -}; - -ComparisonOperatorContext.prototype.NEQJ = function() { - return this.getToken(sqlParser.NEQJ, 0); -}; - -ComparisonOperatorContext.prototype.LT = function() { - return this.getToken(sqlParser.LT, 0); -}; - -ComparisonOperatorContext.prototype.LTE = function() { - return this.getToken(sqlParser.LTE, 0); -}; - -ComparisonOperatorContext.prototype.GT = function() { - return this.getToken(sqlParser.GT, 0); -}; - -ComparisonOperatorContext.prototype.GTE = function() { - return this.getToken(sqlParser.GTE, 0); -}; - -ComparisonOperatorContext.prototype.NSEQ = function() { - return this.getToken(sqlParser.NSEQ, 0); -}; - -ComparisonOperatorContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterComparisonOperator(this); - } -}; - -ComparisonOperatorContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitComparisonOperator(this); - } -}; - -ComparisonOperatorContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitComparisonOperator(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ComparisonOperatorContext = ComparisonOperatorContext; - -sqlParser.prototype.comparisonOperator = function() { - - var localctx = new ComparisonOperatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 174, sqlParser.RULE_comparisonOperator); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2425; - _la = this._input.LA(1); - if(!(((((_la - 138)) & ~0x1f) == 0 && ((1 << (_la - 138)) & ((1 << (sqlParser.EQ - 138)) | (1 << (sqlParser.NSEQ - 138)) | (1 << (sqlParser.NEQ - 138)) | (1 << (sqlParser.NEQJ - 138)) | (1 << (sqlParser.LT - 138)) | (1 << (sqlParser.LTE - 138)) | (1 << (sqlParser.GT - 138)) | (1 << (sqlParser.GTE - 138)))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ArithmeticOperatorContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_arithmeticOperator; - return this; -} - -ArithmeticOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ArithmeticOperatorContext.prototype.constructor = ArithmeticOperatorContext; - -ArithmeticOperatorContext.prototype.PLUS = function() { - return this.getToken(sqlParser.PLUS, 0); -}; - -ArithmeticOperatorContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; - -ArithmeticOperatorContext.prototype.ASTERISK = function() { - return this.getToken(sqlParser.ASTERISK, 0); -}; - -ArithmeticOperatorContext.prototype.SLASH = function() { - return this.getToken(sqlParser.SLASH, 0); -}; - -ArithmeticOperatorContext.prototype.PERCENT = function() { - return this.getToken(sqlParser.PERCENT, 0); -}; - -ArithmeticOperatorContext.prototype.DIV = function() { - return this.getToken(sqlParser.DIV, 0); -}; - -ArithmeticOperatorContext.prototype.TILDE = function() { - return this.getToken(sqlParser.TILDE, 0); -}; - -ArithmeticOperatorContext.prototype.AMPERSAND = function() { - return this.getToken(sqlParser.AMPERSAND, 0); -}; - -ArithmeticOperatorContext.prototype.PIPE = function() { - return this.getToken(sqlParser.PIPE, 0); -}; - -ArithmeticOperatorContext.prototype.CONCAT_PIPE = function() { - return this.getToken(sqlParser.CONCAT_PIPE, 0); -}; - -ArithmeticOperatorContext.prototype.HAT = function() { - return this.getToken(sqlParser.HAT, 0); -}; - -ArithmeticOperatorContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterArithmeticOperator(this); - } -}; - -ArithmeticOperatorContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitArithmeticOperator(this); - } -}; - -ArithmeticOperatorContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitArithmeticOperator(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ArithmeticOperatorContext = ArithmeticOperatorContext; - -sqlParser.prototype.arithmeticOperator = function() { - - var localctx = new ArithmeticOperatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 176, sqlParser.RULE_arithmeticOperator); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2427; - _la = this._input.LA(1); - if(!(((((_la - 146)) & ~0x1f) == 0 && ((1 << (_la - 146)) & ((1 << (sqlParser.PLUS - 146)) | (1 << (sqlParser.MINUS - 146)) | (1 << (sqlParser.ASTERISK - 146)) | (1 << (sqlParser.SLASH - 146)) | (1 << (sqlParser.PERCENT - 146)) | (1 << (sqlParser.DIV - 146)) | (1 << (sqlParser.TILDE - 146)) | (1 << (sqlParser.AMPERSAND - 146)) | (1 << (sqlParser.PIPE - 146)) | (1 << (sqlParser.CONCAT_PIPE - 146)) | (1 << (sqlParser.HAT - 146)))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function PredicateOperatorContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_predicateOperator; - return this; -} - -PredicateOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -PredicateOperatorContext.prototype.constructor = PredicateOperatorContext; - -PredicateOperatorContext.prototype.OR = function() { - return this.getToken(sqlParser.OR, 0); -}; - -PredicateOperatorContext.prototype.AND = function() { - return this.getToken(sqlParser.AND, 0); -}; - -PredicateOperatorContext.prototype.IN = function() { - return this.getToken(sqlParser.IN, 0); -}; - -PredicateOperatorContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -PredicateOperatorContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPredicateOperator(this); - } -}; - -PredicateOperatorContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPredicateOperator(this); - } -}; - -PredicateOperatorContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPredicateOperator(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.PredicateOperatorContext = PredicateOperatorContext; - -sqlParser.prototype.predicateOperator = function() { - - var localctx = new PredicateOperatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 178, sqlParser.RULE_predicateOperator); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2429; - _la = this._input.LA(1); - if(!(((((_la - 37)) & ~0x1f) == 0 && ((1 << (_la - 37)) & ((1 << (sqlParser.OR - 37)) | (1 << (sqlParser.AND - 37)) | (1 << (sqlParser.IN - 37)) | (1 << (sqlParser.NOT - 37)))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function BooleanValueContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_booleanValue; - return this; -} - -BooleanValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -BooleanValueContext.prototype.constructor = BooleanValueContext; - -BooleanValueContext.prototype.TRUE = function() { - return this.getToken(sqlParser.TRUE, 0); -}; - -BooleanValueContext.prototype.FALSE = function() { - return this.getToken(sqlParser.FALSE, 0); -}; - -BooleanValueContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterBooleanValue(this); - } -}; - -BooleanValueContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitBooleanValue(this); - } -}; - -BooleanValueContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitBooleanValue(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.BooleanValueContext = BooleanValueContext; - -sqlParser.prototype.booleanValue = function() { - - var localctx = new BooleanValueContext(this, this._ctx, this.state); - this.enterRule(localctx, 180, sqlParser.RULE_booleanValue); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2431; - _la = this._input.LA(1); - if(!(_la===sqlParser.TRUE || _la===sqlParser.FALSE)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function IntervalContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_interval; - return this; -} - -IntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -IntervalContext.prototype.constructor = IntervalContext; - -IntervalContext.prototype.INTERVAL = function() { - return this.getToken(sqlParser.INTERVAL, 0); -}; - -IntervalContext.prototype.intervalField = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IntervalFieldContext); - } else { - return this.getTypedRuleContext(IntervalFieldContext,i); - } -}; - -IntervalContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterInterval(this); - } -}; - -IntervalContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitInterval(this); - } -}; - -IntervalContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitInterval(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.IntervalContext = IntervalContext; - -sqlParser.prototype.interval = function() { - - var localctx = new IntervalContext(this, this._ctx, this.state); - this.enterRule(localctx, 182, sqlParser.RULE_interval); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2433; - this.match(sqlParser.INTERVAL); - this.state = 2437; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,315,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 2434; - this.intervalField(); - } - this.state = 2439; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,315,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function IntervalFieldContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_intervalField; - this.value = null; // IntervalValueContext - this.unit = null; // IdentifierContext - this.to = null; // IdentifierContext - return this; -} - -IntervalFieldContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -IntervalFieldContext.prototype.constructor = IntervalFieldContext; - -IntervalFieldContext.prototype.intervalValue = function() { - return this.getTypedRuleContext(IntervalValueContext,0); -}; - -IntervalFieldContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -IntervalFieldContext.prototype.TO = function() { - return this.getToken(sqlParser.TO, 0); -}; - -IntervalFieldContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIntervalField(this); - } -}; - -IntervalFieldContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIntervalField(this); - } -}; - -IntervalFieldContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIntervalField(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.IntervalFieldContext = IntervalFieldContext; - -sqlParser.prototype.intervalField = function() { - - var localctx = new IntervalFieldContext(this, this._ctx, this.state); - this.enterRule(localctx, 184, sqlParser.RULE_intervalField); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2440; - localctx.value = this.intervalValue(); - this.state = 2441; - localctx.unit = this.identifier(); - this.state = 2444; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,316,this._ctx); - if(la_===1) { - this.state = 2442; - this.match(sqlParser.TO); - this.state = 2443; - localctx.to = this.identifier(); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function IntervalValueContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_intervalValue; - return this; -} - -IntervalValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -IntervalValueContext.prototype.constructor = IntervalValueContext; - -IntervalValueContext.prototype.INTEGER_VALUE = function() { - return this.getToken(sqlParser.INTEGER_VALUE, 0); -}; - -IntervalValueContext.prototype.DECIMAL_VALUE = function() { - return this.getToken(sqlParser.DECIMAL_VALUE, 0); -}; - -IntervalValueContext.prototype.PLUS = function() { - return this.getToken(sqlParser.PLUS, 0); -}; - -IntervalValueContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; - -IntervalValueContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -IntervalValueContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIntervalValue(this); - } -}; - -IntervalValueContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIntervalValue(this); - } -}; - -IntervalValueContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIntervalValue(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.IntervalValueContext = IntervalValueContext; - -sqlParser.prototype.intervalValue = function() { - - var localctx = new IntervalValueContext(this, this._ctx, this.state); - this.enterRule(localctx, 186, sqlParser.RULE_intervalValue); - var _la = 0; // Token type - try { - this.state = 2451; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.PLUS: - case sqlParser.MINUS: - case sqlParser.INTEGER_VALUE: - case sqlParser.DECIMAL_VALUE: - this.enterOuterAlt(localctx, 1); - this.state = 2447; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PLUS || _la===sqlParser.MINUS) { - this.state = 2446; - _la = this._input.LA(1); - if(!(_la===sqlParser.PLUS || _la===sqlParser.MINUS)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } - - this.state = 2449; - _la = this._input.LA(1); - if(!(_la===sqlParser.INTEGER_VALUE || _la===sqlParser.DECIMAL_VALUE)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - break; - case sqlParser.STRING: - this.enterOuterAlt(localctx, 2); - this.state = 2450; - this.match(sqlParser.STRING); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ColPositionContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_colPosition; - return this; -} - -ColPositionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ColPositionContext.prototype.constructor = ColPositionContext; - -ColPositionContext.prototype.FIRST = function() { - return this.getToken(sqlParser.FIRST, 0); -}; - -ColPositionContext.prototype.AFTER = function() { - return this.getToken(sqlParser.AFTER, 0); -}; - -ColPositionContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ColPositionContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterColPosition(this); - } -}; - -ColPositionContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitColPosition(this); - } -}; - -ColPositionContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitColPosition(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ColPositionContext = ColPositionContext; - -sqlParser.prototype.colPosition = function() { - - var localctx = new ColPositionContext(this, this._ctx, this.state); - this.enterRule(localctx, 188, sqlParser.RULE_colPosition); - try { - this.state = 2456; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.FIRST: - this.enterOuterAlt(localctx, 1); - this.state = 2453; - this.match(sqlParser.FIRST); - break; - case sqlParser.AFTER: - this.enterOuterAlt(localctx, 2); - this.state = 2454; - this.match(sqlParser.AFTER); - this.state = 2455; - this.identifier(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function DataTypeContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_dataType; - return this; -} - -DataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -DataTypeContext.prototype.constructor = DataTypeContext; - - - -DataTypeContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function ComplexDataTypeContext(parser, ctx) { - DataTypeContext.call(this, parser); - this.complex = null; // Token; - DataTypeContext.prototype.copyFrom.call(this, ctx); - return this; -} - -ComplexDataTypeContext.prototype = Object.create(DataTypeContext.prototype); -ComplexDataTypeContext.prototype.constructor = ComplexDataTypeContext; - -sqlParser.ComplexDataTypeContext = ComplexDataTypeContext; - -ComplexDataTypeContext.prototype.dataType = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(DataTypeContext); - } else { - return this.getTypedRuleContext(DataTypeContext,i); - } -}; - -ComplexDataTypeContext.prototype.ARRAY = function() { - return this.getToken(sqlParser.ARRAY, 0); -}; - -ComplexDataTypeContext.prototype.MAP = function() { - return this.getToken(sqlParser.MAP, 0); -}; - -ComplexDataTypeContext.prototype.STRUCT = function() { - return this.getToken(sqlParser.STRUCT, 0); -}; - -ComplexDataTypeContext.prototype.NEQ = function() { - return this.getToken(sqlParser.NEQ, 0); -}; - -ComplexDataTypeContext.prototype.complexColTypeList = function() { - return this.getTypedRuleContext(ComplexColTypeListContext,0); -}; -ComplexDataTypeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterComplexDataType(this); - } -}; - -ComplexDataTypeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitComplexDataType(this); - } -}; - -ComplexDataTypeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitComplexDataType(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function PrimitiveDataTypeContext(parser, ctx) { - DataTypeContext.call(this, parser); - DataTypeContext.prototype.copyFrom.call(this, ctx); - return this; -} - -PrimitiveDataTypeContext.prototype = Object.create(DataTypeContext.prototype); -PrimitiveDataTypeContext.prototype.constructor = PrimitiveDataTypeContext; - -sqlParser.PrimitiveDataTypeContext = PrimitiveDataTypeContext; - -PrimitiveDataTypeContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -PrimitiveDataTypeContext.prototype.INTEGER_VALUE = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.INTEGER_VALUE); - } else { - return this.getToken(sqlParser.INTEGER_VALUE, i); - } -}; - -PrimitiveDataTypeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterPrimitiveDataType(this); - } -}; - -PrimitiveDataTypeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitPrimitiveDataType(this); - } -}; - -PrimitiveDataTypeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitPrimitiveDataType(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.DataTypeContext = DataTypeContext; - -sqlParser.prototype.dataType = function() { - - var localctx = new DataTypeContext(this, this._ctx, this.state); - this.enterRule(localctx, 190, sqlParser.RULE_dataType); - var _la = 0; // Token type - try { - this.state = 2492; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,324,this._ctx); - switch(la_) { - case 1: - localctx = new ComplexDataTypeContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 2458; - localctx.complex = this.match(sqlParser.ARRAY); - this.state = 2459; - this.match(sqlParser.LT); - this.state = 2460; - this.dataType(); - this.state = 2461; - this.match(sqlParser.GT); - break; - - case 2: - localctx = new ComplexDataTypeContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 2463; - localctx.complex = this.match(sqlParser.MAP); - this.state = 2464; - this.match(sqlParser.LT); - this.state = 2465; - this.dataType(); - this.state = 2466; - this.match(sqlParser.T__3); - this.state = 2467; - this.dataType(); - this.state = 2468; - this.match(sqlParser.GT); - break; - - case 3: - localctx = new ComplexDataTypeContext(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 2470; - localctx.complex = this.match(sqlParser.STRUCT); - this.state = 2477; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.LT: - this.state = 2471; - this.match(sqlParser.LT); - this.state = 2473; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(((((_la - 19)) & ~0x1f) == 0 && ((1 << (_la - 19)) & ((1 << (sqlParser.SELECT - 19)) | (1 << (sqlParser.FROM - 19)) | (1 << (sqlParser.ADD - 19)) | (1 << (sqlParser.AS - 19)) | (1 << (sqlParser.ALL - 19)) | (1 << (sqlParser.ANY - 19)) | (1 << (sqlParser.DISTINCT - 19)) | (1 << (sqlParser.WHERE - 19)) | (1 << (sqlParser.GROUP - 19)) | (1 << (sqlParser.BY - 19)) | (1 << (sqlParser.GROUPING - 19)) | (1 << (sqlParser.SETS - 19)) | (1 << (sqlParser.CUBE - 19)) | (1 << (sqlParser.ROLLUP - 19)) | (1 << (sqlParser.ORDER - 19)) | (1 << (sqlParser.HAVING - 19)) | (1 << (sqlParser.LIMIT - 19)) | (1 << (sqlParser.AT - 19)) | (1 << (sqlParser.OR - 19)) | (1 << (sqlParser.AND - 19)) | (1 << (sqlParser.IN - 19)) | (1 << (sqlParser.NOT - 19)) | (1 << (sqlParser.NO - 19)) | (1 << (sqlParser.EXISTS - 19)) | (1 << (sqlParser.BETWEEN - 19)) | (1 << (sqlParser.LIKE - 19)) | (1 << (sqlParser.RLIKE - 19)) | (1 << (sqlParser.IS - 19)) | (1 << (sqlParser.NULL - 19)) | (1 << (sqlParser.TRUE - 19)) | (1 << (sqlParser.FALSE - 19)) | (1 << (sqlParser.NULLS - 19)))) !== 0) || ((((_la - 51)) & ~0x1f) == 0 && ((1 << (_la - 51)) & ((1 << (sqlParser.ASC - 51)) | (1 << (sqlParser.DESC - 51)) | (1 << (sqlParser.FOR - 51)) | (1 << (sqlParser.INTERVAL - 51)) | (1 << (sqlParser.CASE - 51)) | (1 << (sqlParser.WHEN - 51)) | (1 << (sqlParser.THEN - 51)) | (1 << (sqlParser.ELSE - 51)) | (1 << (sqlParser.END - 51)) | (1 << (sqlParser.JOIN - 51)) | (1 << (sqlParser.CROSS - 51)) | (1 << (sqlParser.OUTER - 51)) | (1 << (sqlParser.INNER - 51)) | (1 << (sqlParser.LEFT - 51)) | (1 << (sqlParser.SEMI - 51)) | (1 << (sqlParser.RIGHT - 51)) | (1 << (sqlParser.FULL - 51)) | (1 << (sqlParser.NATURAL - 51)) | (1 << (sqlParser.ON - 51)) | (1 << (sqlParser.PIVOT - 51)) | (1 << (sqlParser.LATERAL - 51)) | (1 << (sqlParser.WINDOW - 51)) | (1 << (sqlParser.OVER - 51)) | (1 << (sqlParser.PARTITION - 51)) | (1 << (sqlParser.RANGE - 51)) | (1 << (sqlParser.ROWS - 51)) | (1 << (sqlParser.UNBOUNDED - 51)) | (1 << (sqlParser.PRECEDING - 51)) | (1 << (sqlParser.FOLLOWING - 51)) | (1 << (sqlParser.CURRENT - 51)) | (1 << (sqlParser.FIRST - 51)) | (1 << (sqlParser.AFTER - 51)))) !== 0) || ((((_la - 83)) & ~0x1f) == 0 && ((1 << (_la - 83)) & ((1 << (sqlParser.LAST - 83)) | (1 << (sqlParser.ROW - 83)) | (1 << (sqlParser.WITH - 83)) | (1 << (sqlParser.CREATE - 83)) | (1 << (sqlParser.TABLE - 83)) | (1 << (sqlParser.DIRECTORY - 83)) | (1 << (sqlParser.VIEW - 83)) | (1 << (sqlParser.REPLACE - 83)) | (1 << (sqlParser.INSERT - 83)) | (1 << (sqlParser.DELETE - 83)) | (1 << (sqlParser.INTO - 83)) | (1 << (sqlParser.DESCRIBE - 83)) | (1 << (sqlParser.EXPLAIN - 83)) | (1 << (sqlParser.FORMAT - 83)) | (1 << (sqlParser.LOGICAL - 83)) | (1 << (sqlParser.CODEGEN - 83)) | (1 << (sqlParser.COST - 83)) | (1 << (sqlParser.CAST - 83)) | (1 << (sqlParser.SHOW - 83)) | (1 << (sqlParser.TABLES - 83)) | (1 << (sqlParser.COLUMNS - 83)) | (1 << (sqlParser.COLUMN - 83)) | (1 << (sqlParser.USE - 83)) | (1 << (sqlParser.PARTITIONS - 83)) | (1 << (sqlParser.FUNCTIONS - 83)) | (1 << (sqlParser.DROP - 83)) | (1 << (sqlParser.UNION - 83)) | (1 << (sqlParser.EXCEPT - 83)) | (1 << (sqlParser.SETMINUS - 83)) | (1 << (sqlParser.INTERSECT - 83)) | (1 << (sqlParser.TO - 83)))) !== 0) || ((((_la - 115)) & ~0x1f) == 0 && ((1 << (_la - 115)) & ((1 << (sqlParser.TABLESAMPLE - 115)) | (1 << (sqlParser.STRATIFY - 115)) | (1 << (sqlParser.ALTER - 115)) | (1 << (sqlParser.RENAME - 115)) | (1 << (sqlParser.ARRAY - 115)) | (1 << (sqlParser.MAP - 115)) | (1 << (sqlParser.STRUCT - 115)) | (1 << (sqlParser.COMMENT - 115)) | (1 << (sqlParser.SET - 115)) | (1 << (sqlParser.RESET - 115)) | (1 << (sqlParser.DATA - 115)) | (1 << (sqlParser.START - 115)) | (1 << (sqlParser.TRANSACTION - 115)) | (1 << (sqlParser.COMMIT - 115)) | (1 << (sqlParser.ROLLBACK - 115)) | (1 << (sqlParser.MACRO - 115)) | (1 << (sqlParser.IGNORE - 115)) | (1 << (sqlParser.BOTH - 115)) | (1 << (sqlParser.LEADING - 115)) | (1 << (sqlParser.TRAILING - 115)) | (1 << (sqlParser.IF - 115)) | (1 << (sqlParser.POSITION - 115)) | (1 << (sqlParser.EXTRACT - 115)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (sqlParser.DIV - 151)) | (1 << (sqlParser.PERCENTLIT - 151)) | (1 << (sqlParser.BUCKET - 151)) | (1 << (sqlParser.OUT - 151)) | (1 << (sqlParser.OF - 151)) | (1 << (sqlParser.SORT - 151)) | (1 << (sqlParser.CLUSTER - 151)) | (1 << (sqlParser.DISTRIBUTE - 151)) | (1 << (sqlParser.OVERWRITE - 151)) | (1 << (sqlParser.TRANSFORM - 151)) | (1 << (sqlParser.REDUCE - 151)) | (1 << (sqlParser.SERDE - 151)) | (1 << (sqlParser.SERDEPROPERTIES - 151)) | (1 << (sqlParser.RECORDREADER - 151)) | (1 << (sqlParser.RECORDWRITER - 151)) | (1 << (sqlParser.DELIMITED - 151)) | (1 << (sqlParser.FIELDS - 151)) | (1 << (sqlParser.TERMINATED - 151)) | (1 << (sqlParser.COLLECTION - 151)) | (1 << (sqlParser.ITEMS - 151)) | (1 << (sqlParser.KEYS - 151)) | (1 << (sqlParser.ESCAPED - 151)) | (1 << (sqlParser.LINES - 151)) | (1 << (sqlParser.SEPARATED - 151)) | (1 << (sqlParser.FUNCTION - 151)) | (1 << (sqlParser.EXTENDED - 151)))) !== 0) || ((((_la - 183)) & ~0x1f) == 0 && ((1 << (_la - 183)) & ((1 << (sqlParser.REFRESH - 183)) | (1 << (sqlParser.CLEAR - 183)) | (1 << (sqlParser.CACHE - 183)) | (1 << (sqlParser.UNCACHE - 183)) | (1 << (sqlParser.LAZY - 183)) | (1 << (sqlParser.FORMATTED - 183)) | (1 << (sqlParser.GLOBAL - 183)) | (1 << (sqlParser.TEMPORARY - 183)) | (1 << (sqlParser.OPTIONS - 183)) | (1 << (sqlParser.UNSET - 183)) | (1 << (sqlParser.TBLPROPERTIES - 183)) | (1 << (sqlParser.DBPROPERTIES - 183)) | (1 << (sqlParser.BUCKETS - 183)) | (1 << (sqlParser.SKEWED - 183)) | (1 << (sqlParser.STORED - 183)) | (1 << (sqlParser.DIRECTORIES - 183)) | (1 << (sqlParser.LOCATION - 183)) | (1 << (sqlParser.EXCHANGE - 183)) | (1 << (sqlParser.ARCHIVE - 183)) | (1 << (sqlParser.UNARCHIVE - 183)) | (1 << (sqlParser.FILEFORMAT - 183)) | (1 << (sqlParser.TOUCH - 183)) | (1 << (sqlParser.COMPACT - 183)) | (1 << (sqlParser.CONCATENATE - 183)) | (1 << (sqlParser.CHANGE - 183)) | (1 << (sqlParser.CASCADE - 183)) | (1 << (sqlParser.RESTRICT - 183)) | (1 << (sqlParser.CLUSTERED - 183)) | (1 << (sqlParser.SORTED - 183)) | (1 << (sqlParser.PURGE - 183)) | (1 << (sqlParser.INPUTFORMAT - 183)) | (1 << (sqlParser.OUTPUTFORMAT - 183)))) !== 0) || ((((_la - 215)) & ~0x1f) == 0 && ((1 << (_la - 215)) & ((1 << (sqlParser.DATABASE - 215)) | (1 << (sqlParser.DATABASES - 215)) | (1 << (sqlParser.DFS - 215)) | (1 << (sqlParser.TRUNCATE - 215)) | (1 << (sqlParser.ANALYZE - 215)) | (1 << (sqlParser.COMPUTE - 215)) | (1 << (sqlParser.LIST - 215)) | (1 << (sqlParser.STATISTICS - 215)) | (1 << (sqlParser.PARTITIONED - 215)) | (1 << (sqlParser.EXTERNAL - 215)) | (1 << (sqlParser.DEFINED - 215)) | (1 << (sqlParser.REVOKE - 215)) | (1 << (sqlParser.GRANT - 215)) | (1 << (sqlParser.LOCK - 215)) | (1 << (sqlParser.UNLOCK - 215)) | (1 << (sqlParser.MSCK - 215)) | (1 << (sqlParser.REPAIR - 215)) | (1 << (sqlParser.RECOVER - 215)) | (1 << (sqlParser.EXPORT - 215)) | (1 << (sqlParser.IMPORT - 215)) | (1 << (sqlParser.LOAD - 215)) | (1 << (sqlParser.ROLE - 215)) | (1 << (sqlParser.ROLES - 215)) | (1 << (sqlParser.COMPACTIONS - 215)) | (1 << (sqlParser.PRINCIPALS - 215)) | (1 << (sqlParser.TRANSACTIONS - 215)) | (1 << (sqlParser.INDEX - 215)) | (1 << (sqlParser.INDEXES - 215)) | (1 << (sqlParser.LOCKS - 215)) | (1 << (sqlParser.OPTION - 215)) | (1 << (sqlParser.ANTI - 215)) | (1 << (sqlParser.LOCAL - 215)))) !== 0) || ((((_la - 247)) & ~0x1f) == 0 && ((1 << (_la - 247)) & ((1 << (sqlParser.INPATH - 247)) | (1 << (sqlParser.IDENTIFIER - 247)) | (1 << (sqlParser.BACKQUOTED_IDENTIFIER - 247)))) !== 0)) { - this.state = 2472; - this.complexColTypeList(); - } - - this.state = 2475; - this.match(sqlParser.GT); - break; - case sqlParser.NEQ: - this.state = 2476; - this.match(sqlParser.NEQ); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - break; - - case 4: - localctx = new PrimitiveDataTypeContext(this, localctx); - this.enterOuterAlt(localctx, 4); - this.state = 2479; - this.identifier(); - this.state = 2490; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,323,this._ctx); - if(la_===1) { - this.state = 2480; - this.match(sqlParser.T__0); - this.state = 2481; - this.match(sqlParser.INTEGER_VALUE); - this.state = 2486; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2482; - this.match(sqlParser.T__3); - this.state = 2483; - this.match(sqlParser.INTEGER_VALUE); - this.state = 2488; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2489; - this.match(sqlParser.T__1); - - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ColTypeListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_colTypeList; - return this; -} - -ColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ColTypeListContext.prototype.constructor = ColTypeListContext; - -ColTypeListContext.prototype.colType = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ColTypeContext); - } else { - return this.getTypedRuleContext(ColTypeContext,i); - } -}; - -ColTypeListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterColTypeList(this); - } -}; - -ColTypeListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitColTypeList(this); - } -}; - -ColTypeListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitColTypeList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ColTypeListContext = ColTypeListContext; - -sqlParser.prototype.colTypeList = function() { - - var localctx = new ColTypeListContext(this, this._ctx, this.state); - this.enterRule(localctx, 192, sqlParser.RULE_colTypeList); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2494; - this.colType(); - this.state = 2499; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,325,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 2495; - this.match(sqlParser.T__3); - this.state = 2496; - this.colType(); - } - this.state = 2501; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,325,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ColTypeContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_colType; - return this; -} - -ColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ColTypeContext.prototype.constructor = ColTypeContext; - -ColTypeContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ColTypeContext.prototype.dataType = function() { - return this.getTypedRuleContext(DataTypeContext,0); -}; - -ColTypeContext.prototype.COMMENT = function() { - return this.getToken(sqlParser.COMMENT, 0); -}; - -ColTypeContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -ColTypeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterColType(this); - } -}; - -ColTypeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitColType(this); - } -}; - -ColTypeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitColType(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ColTypeContext = ColTypeContext; - -sqlParser.prototype.colType = function() { - - var localctx = new ColTypeContext(this, this._ctx, this.state); - this.enterRule(localctx, 194, sqlParser.RULE_colType); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2502; - this.identifier(); - this.state = 2503; - this.dataType(); - this.state = 2506; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,326,this._ctx); - if(la_===1) { - this.state = 2504; - this.match(sqlParser.COMMENT); - this.state = 2505; - this.match(sqlParser.STRING); - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function DtColTypeListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_dtColTypeList; - return this; -} - -DtColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -DtColTypeListContext.prototype.constructor = DtColTypeListContext; - -DtColTypeListContext.prototype.dtColType = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(DtColTypeContext); - } else { - return this.getTypedRuleContext(DtColTypeContext,i); - } -}; - -DtColTypeListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDtColTypeList(this); - } -}; - -DtColTypeListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDtColTypeList(this); - } -}; - -DtColTypeListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDtColTypeList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.DtColTypeListContext = DtColTypeListContext; - -sqlParser.prototype.dtColTypeList = function() { - - var localctx = new DtColTypeListContext(this, this._ctx, this.state); - this.enterRule(localctx, 196, sqlParser.RULE_dtColTypeList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2508; - this.dtColType(); - this.state = 2513; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2509; - this.match(sqlParser.T__3); - this.state = 2510; - this.dtColType(); - this.state = 2515; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function DtColTypeContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_dtColType; - return this; -} - -DtColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -DtColTypeContext.prototype.constructor = DtColTypeContext; - -DtColTypeContext.prototype.dtColIdentifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(DtColIdentifierContext); - } else { - return this.getTypedRuleContext(DtColIdentifierContext,i); - } -}; - -DtColTypeContext.prototype.dataType = function() { - return this.getTypedRuleContext(DataTypeContext,0); -}; - -DtColTypeContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -DtColTypeContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -DtColTypeContext.prototype.COMMENT = function() { - return this.getToken(sqlParser.COMMENT, 0); -}; - -DtColTypeContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -DtColTypeContext.prototype.WATERMARK = function() { - return this.getToken(sqlParser.WATERMARK, 0); -}; - -DtColTypeContext.prototype.FOR = function() { - return this.getToken(sqlParser.FOR, 0); -}; - -DtColTypeContext.prototype.primaryExpression = function() { - return this.getTypedRuleContext(PrimaryExpressionContext,0); -}; - -DtColTypeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDtColType(this); - } -}; - -DtColTypeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDtColType(this); - } -}; - -DtColTypeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDtColType(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.DtColTypeContext = DtColTypeContext; - -sqlParser.prototype.dtColType = function() { - - var localctx = new DtColTypeContext(this, this._ctx, this.state); - this.enterRule(localctx, 198, sqlParser.RULE_dtColType); - var _la = 0; // Token type - try { - this.state = 2552; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.AS: - case sqlParser.ALL: - case sqlParser.ANY: - case sqlParser.DISTINCT: - case sqlParser.WHERE: - case sqlParser.GROUP: - case sqlParser.BY: - case sqlParser.GROUPING: - case sqlParser.SETS: - case sqlParser.CUBE: - case sqlParser.ROLLUP: - case sqlParser.ORDER: - case sqlParser.HAVING: - case sqlParser.LIMIT: - case sqlParser.AT: - case sqlParser.OR: - case sqlParser.AND: - case sqlParser.IN: - case sqlParser.NOT: - case sqlParser.NO: - case sqlParser.EXISTS: - case sqlParser.BETWEEN: - case sqlParser.LIKE: - case sqlParser.RLIKE: - case sqlParser.IS: - case sqlParser.NULL: - case sqlParser.TRUE: - case sqlParser.FALSE: - case sqlParser.NULLS: - case sqlParser.ASC: - case sqlParser.DESC: - case sqlParser.FOR: - case sqlParser.INTERVAL: - case sqlParser.CASE: - case sqlParser.WHEN: - case sqlParser.THEN: - case sqlParser.ELSE: - case sqlParser.END: - case sqlParser.JOIN: - case sqlParser.CROSS: - case sqlParser.OUTER: - case sqlParser.INNER: - case sqlParser.LEFT: - case sqlParser.SEMI: - case sqlParser.RIGHT: - case sqlParser.FULL: - case sqlParser.NATURAL: - case sqlParser.ON: - case sqlParser.PIVOT: - case sqlParser.LATERAL: - case sqlParser.WINDOW: - case sqlParser.OVER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.UNBOUNDED: - case sqlParser.PRECEDING: - case sqlParser.FOLLOWING: - case sqlParser.CURRENT: - case sqlParser.FIRST: - case sqlParser.AFTER: - case sqlParser.LAST: - case sqlParser.ROW: - case sqlParser.WITH: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.DIRECTORY: - case sqlParser.VIEW: - case sqlParser.REPLACE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.INTO: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.FORMAT: - case sqlParser.LOGICAL: - case sqlParser.CODEGEN: - case sqlParser.COST: - case sqlParser.CAST: - case sqlParser.SHOW: - case sqlParser.TABLES: - case sqlParser.COLUMNS: - case sqlParser.COLUMN: - case sqlParser.USE: - case sqlParser.PARTITIONS: - case sqlParser.FUNCTIONS: - case sqlParser.DROP: - case sqlParser.UNION: - case sqlParser.EXCEPT: - case sqlParser.SETMINUS: - case sqlParser.INTERSECT: - case sqlParser.TO: - case sqlParser.TABLESAMPLE: - case sqlParser.STRATIFY: - case sqlParser.ALTER: - case sqlParser.RENAME: - case sqlParser.ARRAY: - case sqlParser.MAP: - case sqlParser.STRUCT: - case sqlParser.COMMENT: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.DATA: - case sqlParser.START: - case sqlParser.TRANSACTION: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.MACRO: - case sqlParser.IGNORE: - case sqlParser.BOTH: - case sqlParser.LEADING: - case sqlParser.TRAILING: - case sqlParser.IF: - case sqlParser.POSITION: - case sqlParser.EXTRACT: - case sqlParser.DIV: - case sqlParser.PERCENTLIT: - case sqlParser.BUCKET: - case sqlParser.OUT: - case sqlParser.OF: - case sqlParser.SORT: - case sqlParser.CLUSTER: - case sqlParser.DISTRIBUTE: - case sqlParser.OVERWRITE: - case sqlParser.TRANSFORM: - case sqlParser.REDUCE: - case sqlParser.SERDE: - case sqlParser.SERDEPROPERTIES: - case sqlParser.RECORDREADER: - case sqlParser.RECORDWRITER: - case sqlParser.DELIMITED: - case sqlParser.FIELDS: - case sqlParser.TERMINATED: - case sqlParser.COLLECTION: - case sqlParser.ITEMS: - case sqlParser.KEYS: - case sqlParser.ESCAPED: - case sqlParser.LINES: - case sqlParser.SEPARATED: - case sqlParser.FUNCTION: - case sqlParser.EXTENDED: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.LAZY: - case sqlParser.FORMATTED: - case sqlParser.GLOBAL: - case sqlParser.TEMPORARY: - case sqlParser.OPTIONS: - case sqlParser.UNSET: - case sqlParser.TBLPROPERTIES: - case sqlParser.DBPROPERTIES: - case sqlParser.BUCKETS: - case sqlParser.SKEWED: - case sqlParser.STORED: - case sqlParser.DIRECTORIES: - case sqlParser.LOCATION: - case sqlParser.EXCHANGE: - case sqlParser.ARCHIVE: - case sqlParser.UNARCHIVE: - case sqlParser.FILEFORMAT: - case sqlParser.TOUCH: - case sqlParser.COMPACT: - case sqlParser.CONCATENATE: - case sqlParser.CHANGE: - case sqlParser.CASCADE: - case sqlParser.RESTRICT: - case sqlParser.CLUSTERED: - case sqlParser.SORTED: - case sqlParser.PURGE: - case sqlParser.INPUTFORMAT: - case sqlParser.OUTPUTFORMAT: - case sqlParser.DATABASE: - case sqlParser.DATABASES: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.COMPUTE: - case sqlParser.LIST: - case sqlParser.STATISTICS: - case sqlParser.PARTITIONED: - case sqlParser.EXTERNAL: - case sqlParser.DEFINED: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.REPAIR: - case sqlParser.RECOVER: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - case sqlParser.ROLE: - case sqlParser.ROLES: - case sqlParser.COMPACTIONS: - case sqlParser.PRINCIPALS: - case sqlParser.TRANSACTIONS: - case sqlParser.INDEX: - case sqlParser.INDEXES: - case sqlParser.LOCKS: - case sqlParser.OPTION: - case sqlParser.ANTI: - case sqlParser.LOCAL: - case sqlParser.INPATH: - case sqlParser.IDENTIFIER: - case sqlParser.BACKQUOTED_IDENTIFIER: - this.enterOuterAlt(localctx, 1); - this.state = 2516; - this.dtColIdentifier(); - this.state = 2521; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__2) { - this.state = 2517; - this.match(sqlParser.T__2); - this.state = 2518; - this.dtColIdentifier(); - this.state = 2523; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2524; - this.dataType(); - this.state = 2527; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.AS) { - this.state = 2525; - this.match(sqlParser.AS); - this.state = 2526; - this.identifier(); - } - - this.state = 2531; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.COMMENT) { - this.state = 2529; - this.match(sqlParser.COMMENT); - this.state = 2530; - this.match(sqlParser.STRING); - } - - break; - case sqlParser.WATERMARK: - this.enterOuterAlt(localctx, 2); - this.state = 2533; - this.match(sqlParser.WATERMARK); - this.state = 2534; - this.match(sqlParser.FOR); - this.state = 2535; - this.identifier(); - this.state = 2536; - this.match(sqlParser.AS); - this.state = 2537; - this.primaryExpression(0); - break; - case sqlParser.T__15: - this.enterOuterAlt(localctx, 3); - this.state = 2539; - this.match(sqlParser.T__15); - this.state = 2540; - this.match(sqlParser.T__16); - this.state = 2541; - this.match(sqlParser.T__0); - this.state = 2542; - this.dtColIdentifier(); - this.state = 2547; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2543; - this.match(sqlParser.T__3); - this.state = 2544; - this.dtColIdentifier(); - this.state = 2549; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2550; - this.match(sqlParser.T__1); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function DtColIdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_dtColIdentifier; - return this; -} - -DtColIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -DtColIdentifierContext.prototype.constructor = DtColIdentifierContext; - -DtColIdentifierContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -DtColIdentifierContext.prototype.valueExpression = function() { - return this.getTypedRuleContext(ValueExpressionContext,0); -}; - -DtColIdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDtColIdentifier(this); - } -}; - -DtColIdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDtColIdentifier(this); - } -}; - -DtColIdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDtColIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.DtColIdentifierContext = DtColIdentifierContext; - -sqlParser.prototype.dtColIdentifier = function() { - - var localctx = new DtColIdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 200, sqlParser.RULE_dtColIdentifier); - try { - this.state = 2560; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,333,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2554; - this.identifier(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2555; - this.identifier(); - this.state = 2556; - this.match(sqlParser.T__13); - this.state = 2557; - this.valueExpression(0); - this.state = 2558; - this.match(sqlParser.T__14); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ComplexColTypeListContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_complexColTypeList; - return this; -} - -ComplexColTypeListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ComplexColTypeListContext.prototype.constructor = ComplexColTypeListContext; - -ComplexColTypeListContext.prototype.complexColType = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ComplexColTypeContext); - } else { - return this.getTypedRuleContext(ComplexColTypeContext,i); - } -}; - -ComplexColTypeListContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterComplexColTypeList(this); - } -}; - -ComplexColTypeListContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitComplexColTypeList(this); - } -}; - -ComplexColTypeListContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitComplexColTypeList(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ComplexColTypeListContext = ComplexColTypeListContext; - -sqlParser.prototype.complexColTypeList = function() { - - var localctx = new ComplexColTypeListContext(this, this._ctx, this.state); - this.enterRule(localctx, 202, sqlParser.RULE_complexColTypeList); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2562; - this.complexColType(); - this.state = 2567; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2563; - this.match(sqlParser.T__3); - this.state = 2564; - this.complexColType(); - this.state = 2569; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function ComplexColTypeContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_complexColType; - return this; -} - -ComplexColTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -ComplexColTypeContext.prototype.constructor = ComplexColTypeContext; - -ComplexColTypeContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -ComplexColTypeContext.prototype.dataType = function() { - return this.getTypedRuleContext(DataTypeContext,0); -}; - -ComplexColTypeContext.prototype.COMMENT = function() { - return this.getToken(sqlParser.COMMENT, 0); -}; - -ComplexColTypeContext.prototype.STRING = function() { - return this.getToken(sqlParser.STRING, 0); -}; - -ComplexColTypeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterComplexColType(this); - } -}; - -ComplexColTypeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitComplexColType(this); - } -}; - -ComplexColTypeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitComplexColType(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.ComplexColTypeContext = ComplexColTypeContext; - -sqlParser.prototype.complexColType = function() { - - var localctx = new ComplexColTypeContext(this, this._ctx, this.state); - this.enterRule(localctx, 204, sqlParser.RULE_complexColType); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2570; - this.identifier(); - this.state = 2571; - this.match(sqlParser.T__17); - this.state = 2572; - this.dataType(); - this.state = 2575; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.COMMENT) { - this.state = 2573; - this.match(sqlParser.COMMENT); - this.state = 2574; - this.match(sqlParser.STRING); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function WhenClauseContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_whenClause; - this.condition = null; // ExpressionContext - this.result = null; // ExpressionContext - return this; -} - -WhenClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -WhenClauseContext.prototype.constructor = WhenClauseContext; - -WhenClauseContext.prototype.WHEN = function() { - return this.getToken(sqlParser.WHEN, 0); -}; - -WhenClauseContext.prototype.THEN = function() { - return this.getToken(sqlParser.THEN, 0); -}; - -WhenClauseContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -WhenClauseContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterWhenClause(this); - } -}; - -WhenClauseContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitWhenClause(this); - } -}; - -WhenClauseContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitWhenClause(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.WhenClauseContext = WhenClauseContext; - -sqlParser.prototype.whenClause = function() { - - var localctx = new WhenClauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 206, sqlParser.RULE_whenClause); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2577; - this.match(sqlParser.WHEN); - this.state = 2578; - localctx.condition = this.expression(); - this.state = 2579; - this.match(sqlParser.THEN); - this.state = 2580; - localctx.result = this.expression(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function WindowsContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_windows; - return this; -} - -WindowsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -WindowsContext.prototype.constructor = WindowsContext; - -WindowsContext.prototype.WINDOW = function() { - return this.getToken(sqlParser.WINDOW, 0); -}; - -WindowsContext.prototype.namedWindow = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(NamedWindowContext); - } else { - return this.getTypedRuleContext(NamedWindowContext,i); - } -}; - -WindowsContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterWindows(this); - } -}; - -WindowsContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitWindows(this); - } -}; - -WindowsContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitWindows(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.WindowsContext = WindowsContext; - -sqlParser.prototype.windows = function() { - - var localctx = new WindowsContext(this, this._ctx, this.state); - this.enterRule(localctx, 208, sqlParser.RULE_windows); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2582; - this.match(sqlParser.WINDOW); - this.state = 2583; - this.namedWindow(); - this.state = 2588; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,336,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 2584; - this.match(sqlParser.T__3); - this.state = 2585; - this.namedWindow(); - } - this.state = 2590; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,336,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function NamedWindowContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_namedWindow; - return this; -} - -NamedWindowContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -NamedWindowContext.prototype.constructor = NamedWindowContext; - -NamedWindowContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; - -NamedWindowContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -NamedWindowContext.prototype.windowSpec = function() { - return this.getTypedRuleContext(WindowSpecContext,0); -}; - -NamedWindowContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterNamedWindow(this); - } -}; - -NamedWindowContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitNamedWindow(this); - } -}; - -NamedWindowContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitNamedWindow(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.NamedWindowContext = NamedWindowContext; - -sqlParser.prototype.namedWindow = function() { - - var localctx = new NamedWindowContext(this, this._ctx, this.state); - this.enterRule(localctx, 210, sqlParser.RULE_namedWindow); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2591; - this.identifier(); - this.state = 2592; - this.match(sqlParser.AS); - this.state = 2593; - this.windowSpec(); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function WindowSpecContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_windowSpec; - return this; -} - -WindowSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -WindowSpecContext.prototype.constructor = WindowSpecContext; - - - -WindowSpecContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function WindowRefContext(parser, ctx) { - WindowSpecContext.call(this, parser); - this.name = null; // IdentifierContext; - WindowSpecContext.prototype.copyFrom.call(this, ctx); - return this; -} - -WindowRefContext.prototype = Object.create(WindowSpecContext.prototype); -WindowRefContext.prototype.constructor = WindowRefContext; - -sqlParser.WindowRefContext = WindowRefContext; - -WindowRefContext.prototype.identifier = function() { - return this.getTypedRuleContext(IdentifierContext,0); -}; -WindowRefContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterWindowRef(this); - } -}; - -WindowRefContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitWindowRef(this); - } -}; - -WindowRefContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitWindowRef(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function WindowDefContext(parser, ctx) { - WindowSpecContext.call(this, parser); - this._expression = null; // ExpressionContext; - this.partition = []; // of ExpressionContexts; - WindowSpecContext.prototype.copyFrom.call(this, ctx); - return this; -} - -WindowDefContext.prototype = Object.create(WindowSpecContext.prototype); -WindowDefContext.prototype.constructor = WindowDefContext; - -sqlParser.WindowDefContext = WindowDefContext; - -WindowDefContext.prototype.CLUSTER = function() { - return this.getToken(sqlParser.CLUSTER, 0); -}; - -WindowDefContext.prototype.BY = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTokens(sqlParser.BY); - } else { - return this.getToken(sqlParser.BY, i); - } -}; - - -WindowDefContext.prototype.expression = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(ExpressionContext); - } else { - return this.getTypedRuleContext(ExpressionContext,i); - } -}; - -WindowDefContext.prototype.windowFrame = function() { - return this.getTypedRuleContext(WindowFrameContext,0); -}; - -WindowDefContext.prototype.sortItem = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(SortItemContext); - } else { - return this.getTypedRuleContext(SortItemContext,i); - } -}; - -WindowDefContext.prototype.PARTITION = function() { - return this.getToken(sqlParser.PARTITION, 0); -}; - -WindowDefContext.prototype.DISTRIBUTE = function() { - return this.getToken(sqlParser.DISTRIBUTE, 0); -}; - -WindowDefContext.prototype.ORDER = function() { - return this.getToken(sqlParser.ORDER, 0); -}; - -WindowDefContext.prototype.SORT = function() { - return this.getToken(sqlParser.SORT, 0); -}; -WindowDefContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterWindowDef(this); - } -}; - -WindowDefContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitWindowDef(this); - } -}; - -WindowDefContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitWindowDef(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.WindowSpecContext = WindowSpecContext; - -sqlParser.prototype.windowSpec = function() { - - var localctx = new WindowSpecContext(this, this._ctx, this.state); - this.enterRule(localctx, 212, sqlParser.RULE_windowSpec); - var _la = 0; // Token type - try { - this.state = 2637; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.AS: - case sqlParser.ALL: - case sqlParser.ANY: - case sqlParser.DISTINCT: - case sqlParser.WHERE: - case sqlParser.GROUP: - case sqlParser.BY: - case sqlParser.GROUPING: - case sqlParser.SETS: - case sqlParser.CUBE: - case sqlParser.ROLLUP: - case sqlParser.ORDER: - case sqlParser.HAVING: - case sqlParser.LIMIT: - case sqlParser.AT: - case sqlParser.OR: - case sqlParser.AND: - case sqlParser.IN: - case sqlParser.NOT: - case sqlParser.NO: - case sqlParser.EXISTS: - case sqlParser.BETWEEN: - case sqlParser.LIKE: - case sqlParser.RLIKE: - case sqlParser.IS: - case sqlParser.NULL: - case sqlParser.TRUE: - case sqlParser.FALSE: - case sqlParser.NULLS: - case sqlParser.ASC: - case sqlParser.DESC: - case sqlParser.FOR: - case sqlParser.INTERVAL: - case sqlParser.CASE: - case sqlParser.WHEN: - case sqlParser.THEN: - case sqlParser.ELSE: - case sqlParser.END: - case sqlParser.JOIN: - case sqlParser.CROSS: - case sqlParser.OUTER: - case sqlParser.INNER: - case sqlParser.LEFT: - case sqlParser.SEMI: - case sqlParser.RIGHT: - case sqlParser.FULL: - case sqlParser.NATURAL: - case sqlParser.ON: - case sqlParser.PIVOT: - case sqlParser.LATERAL: - case sqlParser.WINDOW: - case sqlParser.OVER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.UNBOUNDED: - case sqlParser.PRECEDING: - case sqlParser.FOLLOWING: - case sqlParser.CURRENT: - case sqlParser.FIRST: - case sqlParser.AFTER: - case sqlParser.LAST: - case sqlParser.ROW: - case sqlParser.WITH: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.DIRECTORY: - case sqlParser.VIEW: - case sqlParser.REPLACE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.INTO: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.FORMAT: - case sqlParser.LOGICAL: - case sqlParser.CODEGEN: - case sqlParser.COST: - case sqlParser.CAST: - case sqlParser.SHOW: - case sqlParser.TABLES: - case sqlParser.COLUMNS: - case sqlParser.COLUMN: - case sqlParser.USE: - case sqlParser.PARTITIONS: - case sqlParser.FUNCTIONS: - case sqlParser.DROP: - case sqlParser.UNION: - case sqlParser.EXCEPT: - case sqlParser.SETMINUS: - case sqlParser.INTERSECT: - case sqlParser.TO: - case sqlParser.TABLESAMPLE: - case sqlParser.STRATIFY: - case sqlParser.ALTER: - case sqlParser.RENAME: - case sqlParser.ARRAY: - case sqlParser.MAP: - case sqlParser.STRUCT: - case sqlParser.COMMENT: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.DATA: - case sqlParser.START: - case sqlParser.TRANSACTION: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.MACRO: - case sqlParser.IGNORE: - case sqlParser.BOTH: - case sqlParser.LEADING: - case sqlParser.TRAILING: - case sqlParser.IF: - case sqlParser.POSITION: - case sqlParser.EXTRACT: - case sqlParser.DIV: - case sqlParser.PERCENTLIT: - case sqlParser.BUCKET: - case sqlParser.OUT: - case sqlParser.OF: - case sqlParser.SORT: - case sqlParser.CLUSTER: - case sqlParser.DISTRIBUTE: - case sqlParser.OVERWRITE: - case sqlParser.TRANSFORM: - case sqlParser.REDUCE: - case sqlParser.SERDE: - case sqlParser.SERDEPROPERTIES: - case sqlParser.RECORDREADER: - case sqlParser.RECORDWRITER: - case sqlParser.DELIMITED: - case sqlParser.FIELDS: - case sqlParser.TERMINATED: - case sqlParser.COLLECTION: - case sqlParser.ITEMS: - case sqlParser.KEYS: - case sqlParser.ESCAPED: - case sqlParser.LINES: - case sqlParser.SEPARATED: - case sqlParser.FUNCTION: - case sqlParser.EXTENDED: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.LAZY: - case sqlParser.FORMATTED: - case sqlParser.GLOBAL: - case sqlParser.TEMPORARY: - case sqlParser.OPTIONS: - case sqlParser.UNSET: - case sqlParser.TBLPROPERTIES: - case sqlParser.DBPROPERTIES: - case sqlParser.BUCKETS: - case sqlParser.SKEWED: - case sqlParser.STORED: - case sqlParser.DIRECTORIES: - case sqlParser.LOCATION: - case sqlParser.EXCHANGE: - case sqlParser.ARCHIVE: - case sqlParser.UNARCHIVE: - case sqlParser.FILEFORMAT: - case sqlParser.TOUCH: - case sqlParser.COMPACT: - case sqlParser.CONCATENATE: - case sqlParser.CHANGE: - case sqlParser.CASCADE: - case sqlParser.RESTRICT: - case sqlParser.CLUSTERED: - case sqlParser.SORTED: - case sqlParser.PURGE: - case sqlParser.INPUTFORMAT: - case sqlParser.OUTPUTFORMAT: - case sqlParser.DATABASE: - case sqlParser.DATABASES: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.COMPUTE: - case sqlParser.LIST: - case sqlParser.STATISTICS: - case sqlParser.PARTITIONED: - case sqlParser.EXTERNAL: - case sqlParser.DEFINED: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.REPAIR: - case sqlParser.RECOVER: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - case sqlParser.ROLE: - case sqlParser.ROLES: - case sqlParser.COMPACTIONS: - case sqlParser.PRINCIPALS: - case sqlParser.TRANSACTIONS: - case sqlParser.INDEX: - case sqlParser.INDEXES: - case sqlParser.LOCKS: - case sqlParser.OPTION: - case sqlParser.ANTI: - case sqlParser.LOCAL: - case sqlParser.INPATH: - case sqlParser.IDENTIFIER: - case sqlParser.BACKQUOTED_IDENTIFIER: - localctx = new WindowRefContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 2595; - localctx.name = this.identifier(); - break; - case sqlParser.T__0: - localctx = new WindowDefContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 2596; - this.match(sqlParser.T__0); - this.state = 2631; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.CLUSTER: - this.state = 2597; - this.match(sqlParser.CLUSTER); - this.state = 2598; - this.match(sqlParser.BY); - this.state = 2599; - localctx._expression = this.expression(); - localctx.partition.push(localctx._expression); - this.state = 2604; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2600; - this.match(sqlParser.T__3); - this.state = 2601; - localctx._expression = this.expression(); - localctx.partition.push(localctx._expression); - this.state = 2606; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - break; - case sqlParser.T__1: - case sqlParser.ORDER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.SORT: - case sqlParser.DISTRIBUTE: - this.state = 2617; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.PARTITION || _la===sqlParser.DISTRIBUTE) { - this.state = 2607; - _la = this._input.LA(1); - if(!(_la===sqlParser.PARTITION || _la===sqlParser.DISTRIBUTE)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2608; - this.match(sqlParser.BY); - this.state = 2609; - localctx._expression = this.expression(); - localctx.partition.push(localctx._expression); - this.state = 2614; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2610; - this.match(sqlParser.T__3); - this.state = 2611; - localctx._expression = this.expression(); - localctx.partition.push(localctx._expression); - this.state = 2616; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - this.state = 2629; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.ORDER || _la===sqlParser.SORT) { - this.state = 2619; - _la = this._input.LA(1); - if(!(_la===sqlParser.ORDER || _la===sqlParser.SORT)) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2620; - this.match(sqlParser.BY); - this.state = 2621; - this.sortItem(); - this.state = 2626; - this._errHandler.sync(this); - _la = this._input.LA(1); - while(_la===sqlParser.T__3) { - this.state = 2622; - this.match(sqlParser.T__3); - this.state = 2623; - this.sortItem(); - this.state = 2628; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - this.state = 2634; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.RANGE || _la===sqlParser.ROWS) { - this.state = 2633; - this.windowFrame(); - } - - this.state = 2636; - this.match(sqlParser.T__1); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function WindowFrameContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_windowFrame; - this.frameType = null; // Token - this.start = null; // FrameBoundContext - this.end = null; // FrameBoundContext - return this; -} - -WindowFrameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -WindowFrameContext.prototype.constructor = WindowFrameContext; - -WindowFrameContext.prototype.RANGE = function() { - return this.getToken(sqlParser.RANGE, 0); -}; - -WindowFrameContext.prototype.frameBound = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(FrameBoundContext); - } else { - return this.getTypedRuleContext(FrameBoundContext,i); - } -}; - -WindowFrameContext.prototype.ROWS = function() { - return this.getToken(sqlParser.ROWS, 0); -}; - -WindowFrameContext.prototype.BETWEEN = function() { - return this.getToken(sqlParser.BETWEEN, 0); -}; - -WindowFrameContext.prototype.AND = function() { - return this.getToken(sqlParser.AND, 0); -}; - -WindowFrameContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterWindowFrame(this); - } -}; - -WindowFrameContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitWindowFrame(this); - } -}; - -WindowFrameContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitWindowFrame(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.WindowFrameContext = WindowFrameContext; - -sqlParser.prototype.windowFrame = function() { - - var localctx = new WindowFrameContext(this, this._ctx, this.state); - this.enterRule(localctx, 214, sqlParser.RULE_windowFrame); - try { - this.state = 2655; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,345,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2639; - localctx.frameType = this.match(sqlParser.RANGE); - this.state = 2640; - localctx.start = this.frameBound(); - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2641; - localctx.frameType = this.match(sqlParser.ROWS); - this.state = 2642; - localctx.start = this.frameBound(); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 2643; - localctx.frameType = this.match(sqlParser.RANGE); - this.state = 2644; - this.match(sqlParser.BETWEEN); - this.state = 2645; - localctx.start = this.frameBound(); - this.state = 2646; - this.match(sqlParser.AND); - this.state = 2647; - localctx.end = this.frameBound(); - break; - - case 4: - this.enterOuterAlt(localctx, 4); - this.state = 2649; - localctx.frameType = this.match(sqlParser.ROWS); - this.state = 2650; - this.match(sqlParser.BETWEEN); - this.state = 2651; - localctx.start = this.frameBound(); - this.state = 2652; - this.match(sqlParser.AND); - this.state = 2653; - localctx.end = this.frameBound(); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function FrameBoundContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_frameBound; - this.boundType = null; // Token - return this; -} - -FrameBoundContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -FrameBoundContext.prototype.constructor = FrameBoundContext; - -FrameBoundContext.prototype.UNBOUNDED = function() { - return this.getToken(sqlParser.UNBOUNDED, 0); -}; - -FrameBoundContext.prototype.PRECEDING = function() { - return this.getToken(sqlParser.PRECEDING, 0); -}; - -FrameBoundContext.prototype.FOLLOWING = function() { - return this.getToken(sqlParser.FOLLOWING, 0); -}; - -FrameBoundContext.prototype.ROW = function() { - return this.getToken(sqlParser.ROW, 0); -}; - -FrameBoundContext.prototype.CURRENT = function() { - return this.getToken(sqlParser.CURRENT, 0); -}; - -FrameBoundContext.prototype.expression = function() { - return this.getTypedRuleContext(ExpressionContext,0); -}; - -FrameBoundContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterFrameBound(this); - } -}; - -FrameBoundContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitFrameBound(this); - } -}; - -FrameBoundContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitFrameBound(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.FrameBoundContext = FrameBoundContext; - -sqlParser.prototype.frameBound = function() { - - var localctx = new FrameBoundContext(this, this._ctx, this.state); - this.enterRule(localctx, 216, sqlParser.RULE_frameBound); - var _la = 0; // Token type - try { - this.state = 2664; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,346,this._ctx); - switch(la_) { - case 1: - this.enterOuterAlt(localctx, 1); - this.state = 2657; - this.match(sqlParser.UNBOUNDED); - this.state = 2658; - localctx.boundType = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.PRECEDING || _la===sqlParser.FOLLOWING)) { - localctx.boundType = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - break; - - case 2: - this.enterOuterAlt(localctx, 2); - this.state = 2659; - localctx.boundType = this.match(sqlParser.CURRENT); - this.state = 2660; - this.match(sqlParser.ROW); - break; - - case 3: - this.enterOuterAlt(localctx, 3); - this.state = 2661; - this.expression(); - this.state = 2662; - localctx.boundType = this._input.LT(1); - _la = this._input.LA(1); - if(!(_la===sqlParser.PRECEDING || _la===sqlParser.FOLLOWING)) { - localctx.boundType = this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function QualifiedNameContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_qualifiedName; - return this; -} - -QualifiedNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -QualifiedNameContext.prototype.constructor = QualifiedNameContext; - -QualifiedNameContext.prototype.identifier = function(i) { - if(i===undefined) { - i = null; - } - if(i===null) { - return this.getTypedRuleContexts(IdentifierContext); - } else { - return this.getTypedRuleContext(IdentifierContext,i); - } -}; - -QualifiedNameContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterQualifiedName(this); - } -}; - -QualifiedNameContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitQualifiedName(this); - } -}; - -QualifiedNameContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitQualifiedName(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.QualifiedNameContext = QualifiedNameContext; - -sqlParser.prototype.qualifiedName = function() { - - var localctx = new QualifiedNameContext(this, this._ctx, this.state); - this.enterRule(localctx, 218, sqlParser.RULE_qualifiedName); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2666; - this.identifier(); - this.state = 2671; - this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,347,this._ctx) - while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { - if(_alt===1) { - this.state = 2667; - this.match(sqlParser.T__2); - this.state = 2668; - this.identifier(); - } - this.state = 2673; - this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,347,this._ctx); - } - - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function IdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_identifier; - return this; -} - -IdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -IdentifierContext.prototype.constructor = IdentifierContext; - -IdentifierContext.prototype.strictIdentifier = function() { - return this.getTypedRuleContext(StrictIdentifierContext,0); -}; - -IdentifierContext.prototype.ANTI = function() { - return this.getToken(sqlParser.ANTI, 0); -}; - -IdentifierContext.prototype.FULL = function() { - return this.getToken(sqlParser.FULL, 0); -}; - -IdentifierContext.prototype.INNER = function() { - return this.getToken(sqlParser.INNER, 0); -}; - -IdentifierContext.prototype.LEFT = function() { - return this.getToken(sqlParser.LEFT, 0); -}; - -IdentifierContext.prototype.SEMI = function() { - return this.getToken(sqlParser.SEMI, 0); -}; - -IdentifierContext.prototype.RIGHT = function() { - return this.getToken(sqlParser.RIGHT, 0); -}; - -IdentifierContext.prototype.NATURAL = function() { - return this.getToken(sqlParser.NATURAL, 0); -}; - -IdentifierContext.prototype.JOIN = function() { - return this.getToken(sqlParser.JOIN, 0); -}; - -IdentifierContext.prototype.CROSS = function() { - return this.getToken(sqlParser.CROSS, 0); -}; - -IdentifierContext.prototype.ON = function() { - return this.getToken(sqlParser.ON, 0); -}; - -IdentifierContext.prototype.UNION = function() { - return this.getToken(sqlParser.UNION, 0); -}; - -IdentifierContext.prototype.INTERSECT = function() { - return this.getToken(sqlParser.INTERSECT, 0); -}; - -IdentifierContext.prototype.EXCEPT = function() { - return this.getToken(sqlParser.EXCEPT, 0); -}; - -IdentifierContext.prototype.SETMINUS = function() { - return this.getToken(sqlParser.SETMINUS, 0); -}; - -IdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIdentifier(this); - } -}; - -IdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIdentifier(this); - } -}; - -IdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.IdentifierContext = IdentifierContext; - -sqlParser.prototype.identifier = function() { - - var localctx = new IdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 220, sqlParser.RULE_identifier); - try { - this.state = 2689; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.AS: - case sqlParser.ALL: - case sqlParser.ANY: - case sqlParser.DISTINCT: - case sqlParser.WHERE: - case sqlParser.GROUP: - case sqlParser.BY: - case sqlParser.GROUPING: - case sqlParser.SETS: - case sqlParser.CUBE: - case sqlParser.ROLLUP: - case sqlParser.ORDER: - case sqlParser.HAVING: - case sqlParser.LIMIT: - case sqlParser.AT: - case sqlParser.OR: - case sqlParser.AND: - case sqlParser.IN: - case sqlParser.NOT: - case sqlParser.NO: - case sqlParser.EXISTS: - case sqlParser.BETWEEN: - case sqlParser.LIKE: - case sqlParser.RLIKE: - case sqlParser.IS: - case sqlParser.NULL: - case sqlParser.TRUE: - case sqlParser.FALSE: - case sqlParser.NULLS: - case sqlParser.ASC: - case sqlParser.DESC: - case sqlParser.FOR: - case sqlParser.INTERVAL: - case sqlParser.CASE: - case sqlParser.WHEN: - case sqlParser.THEN: - case sqlParser.ELSE: - case sqlParser.END: - case sqlParser.OUTER: - case sqlParser.PIVOT: - case sqlParser.LATERAL: - case sqlParser.WINDOW: - case sqlParser.OVER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.UNBOUNDED: - case sqlParser.PRECEDING: - case sqlParser.FOLLOWING: - case sqlParser.CURRENT: - case sqlParser.FIRST: - case sqlParser.AFTER: - case sqlParser.LAST: - case sqlParser.ROW: - case sqlParser.WITH: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.DIRECTORY: - case sqlParser.VIEW: - case sqlParser.REPLACE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.INTO: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.FORMAT: - case sqlParser.LOGICAL: - case sqlParser.CODEGEN: - case sqlParser.COST: - case sqlParser.CAST: - case sqlParser.SHOW: - case sqlParser.TABLES: - case sqlParser.COLUMNS: - case sqlParser.COLUMN: - case sqlParser.USE: - case sqlParser.PARTITIONS: - case sqlParser.FUNCTIONS: - case sqlParser.DROP: - case sqlParser.TO: - case sqlParser.TABLESAMPLE: - case sqlParser.STRATIFY: - case sqlParser.ALTER: - case sqlParser.RENAME: - case sqlParser.ARRAY: - case sqlParser.MAP: - case sqlParser.STRUCT: - case sqlParser.COMMENT: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.DATA: - case sqlParser.START: - case sqlParser.TRANSACTION: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.MACRO: - case sqlParser.IGNORE: - case sqlParser.BOTH: - case sqlParser.LEADING: - case sqlParser.TRAILING: - case sqlParser.IF: - case sqlParser.POSITION: - case sqlParser.EXTRACT: - case sqlParser.DIV: - case sqlParser.PERCENTLIT: - case sqlParser.BUCKET: - case sqlParser.OUT: - case sqlParser.OF: - case sqlParser.SORT: - case sqlParser.CLUSTER: - case sqlParser.DISTRIBUTE: - case sqlParser.OVERWRITE: - case sqlParser.TRANSFORM: - case sqlParser.REDUCE: - case sqlParser.SERDE: - case sqlParser.SERDEPROPERTIES: - case sqlParser.RECORDREADER: - case sqlParser.RECORDWRITER: - case sqlParser.DELIMITED: - case sqlParser.FIELDS: - case sqlParser.TERMINATED: - case sqlParser.COLLECTION: - case sqlParser.ITEMS: - case sqlParser.KEYS: - case sqlParser.ESCAPED: - case sqlParser.LINES: - case sqlParser.SEPARATED: - case sqlParser.FUNCTION: - case sqlParser.EXTENDED: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.LAZY: - case sqlParser.FORMATTED: - case sqlParser.GLOBAL: - case sqlParser.TEMPORARY: - case sqlParser.OPTIONS: - case sqlParser.UNSET: - case sqlParser.TBLPROPERTIES: - case sqlParser.DBPROPERTIES: - case sqlParser.BUCKETS: - case sqlParser.SKEWED: - case sqlParser.STORED: - case sqlParser.DIRECTORIES: - case sqlParser.LOCATION: - case sqlParser.EXCHANGE: - case sqlParser.ARCHIVE: - case sqlParser.UNARCHIVE: - case sqlParser.FILEFORMAT: - case sqlParser.TOUCH: - case sqlParser.COMPACT: - case sqlParser.CONCATENATE: - case sqlParser.CHANGE: - case sqlParser.CASCADE: - case sqlParser.RESTRICT: - case sqlParser.CLUSTERED: - case sqlParser.SORTED: - case sqlParser.PURGE: - case sqlParser.INPUTFORMAT: - case sqlParser.OUTPUTFORMAT: - case sqlParser.DATABASE: - case sqlParser.DATABASES: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.COMPUTE: - case sqlParser.LIST: - case sqlParser.STATISTICS: - case sqlParser.PARTITIONED: - case sqlParser.EXTERNAL: - case sqlParser.DEFINED: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.REPAIR: - case sqlParser.RECOVER: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - case sqlParser.ROLE: - case sqlParser.ROLES: - case sqlParser.COMPACTIONS: - case sqlParser.PRINCIPALS: - case sqlParser.TRANSACTIONS: - case sqlParser.INDEX: - case sqlParser.INDEXES: - case sqlParser.LOCKS: - case sqlParser.OPTION: - case sqlParser.LOCAL: - case sqlParser.INPATH: - case sqlParser.IDENTIFIER: - case sqlParser.BACKQUOTED_IDENTIFIER: - this.enterOuterAlt(localctx, 1); - this.state = 2674; - this.strictIdentifier(); - break; - case sqlParser.ANTI: - this.enterOuterAlt(localctx, 2); - this.state = 2675; - this.match(sqlParser.ANTI); - break; - case sqlParser.FULL: - this.enterOuterAlt(localctx, 3); - this.state = 2676; - this.match(sqlParser.FULL); - break; - case sqlParser.INNER: - this.enterOuterAlt(localctx, 4); - this.state = 2677; - this.match(sqlParser.INNER); - break; - case sqlParser.LEFT: - this.enterOuterAlt(localctx, 5); - this.state = 2678; - this.match(sqlParser.LEFT); - break; - case sqlParser.SEMI: - this.enterOuterAlt(localctx, 6); - this.state = 2679; - this.match(sqlParser.SEMI); - break; - case sqlParser.RIGHT: - this.enterOuterAlt(localctx, 7); - this.state = 2680; - this.match(sqlParser.RIGHT); - break; - case sqlParser.NATURAL: - this.enterOuterAlt(localctx, 8); - this.state = 2681; - this.match(sqlParser.NATURAL); - break; - case sqlParser.JOIN: - this.enterOuterAlt(localctx, 9); - this.state = 2682; - this.match(sqlParser.JOIN); - break; - case sqlParser.CROSS: - this.enterOuterAlt(localctx, 10); - this.state = 2683; - this.match(sqlParser.CROSS); - break; - case sqlParser.ON: - this.enterOuterAlt(localctx, 11); - this.state = 2684; - this.match(sqlParser.ON); - break; - case sqlParser.UNION: - this.enterOuterAlt(localctx, 12); - this.state = 2685; - this.match(sqlParser.UNION); - break; - case sqlParser.INTERSECT: - this.enterOuterAlt(localctx, 13); - this.state = 2686; - this.match(sqlParser.INTERSECT); - break; - case sqlParser.EXCEPT: - this.enterOuterAlt(localctx, 14); - this.state = 2687; - this.match(sqlParser.EXCEPT); - break; - case sqlParser.SETMINUS: - this.enterOuterAlt(localctx, 15); - this.state = 2688; - this.match(sqlParser.SETMINUS); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function StrictIdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_strictIdentifier; - return this; -} - -StrictIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -StrictIdentifierContext.prototype.constructor = StrictIdentifierContext; - - - -StrictIdentifierContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function QuotedIdentifierAlternativeContext(parser, ctx) { - StrictIdentifierContext.call(this, parser); - StrictIdentifierContext.prototype.copyFrom.call(this, ctx); - return this; -} - -QuotedIdentifierAlternativeContext.prototype = Object.create(StrictIdentifierContext.prototype); -QuotedIdentifierAlternativeContext.prototype.constructor = QuotedIdentifierAlternativeContext; - -sqlParser.QuotedIdentifierAlternativeContext = QuotedIdentifierAlternativeContext; - -QuotedIdentifierAlternativeContext.prototype.quotedIdentifier = function() { - return this.getTypedRuleContext(QuotedIdentifierContext,0); -}; -QuotedIdentifierAlternativeContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterQuotedIdentifierAlternative(this); - } -}; - -QuotedIdentifierAlternativeContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitQuotedIdentifierAlternative(this); - } -}; - -QuotedIdentifierAlternativeContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitQuotedIdentifierAlternative(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function UnquotedIdentifierContext(parser, ctx) { - StrictIdentifierContext.call(this, parser); - StrictIdentifierContext.prototype.copyFrom.call(this, ctx); - return this; -} - -UnquotedIdentifierContext.prototype = Object.create(StrictIdentifierContext.prototype); -UnquotedIdentifierContext.prototype.constructor = UnquotedIdentifierContext; - -sqlParser.UnquotedIdentifierContext = UnquotedIdentifierContext; - -UnquotedIdentifierContext.prototype.IDENTIFIER = function() { - return this.getToken(sqlParser.IDENTIFIER, 0); -}; - -UnquotedIdentifierContext.prototype.nonReserved = function() { - return this.getTypedRuleContext(NonReservedContext,0); -}; -UnquotedIdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterUnquotedIdentifier(this); - } -}; - -UnquotedIdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitUnquotedIdentifier(this); - } -}; - -UnquotedIdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitUnquotedIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.StrictIdentifierContext = StrictIdentifierContext; - -sqlParser.prototype.strictIdentifier = function() { - - var localctx = new StrictIdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 222, sqlParser.RULE_strictIdentifier); - try { - this.state = 2694; - this._errHandler.sync(this); - switch(this._input.LA(1)) { - case sqlParser.IDENTIFIER: - localctx = new UnquotedIdentifierContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 2691; - this.match(sqlParser.IDENTIFIER); - break; - case sqlParser.BACKQUOTED_IDENTIFIER: - localctx = new QuotedIdentifierAlternativeContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 2692; - this.quotedIdentifier(); - break; - case sqlParser.SELECT: - case sqlParser.FROM: - case sqlParser.ADD: - case sqlParser.AS: - case sqlParser.ALL: - case sqlParser.ANY: - case sqlParser.DISTINCT: - case sqlParser.WHERE: - case sqlParser.GROUP: - case sqlParser.BY: - case sqlParser.GROUPING: - case sqlParser.SETS: - case sqlParser.CUBE: - case sqlParser.ROLLUP: - case sqlParser.ORDER: - case sqlParser.HAVING: - case sqlParser.LIMIT: - case sqlParser.AT: - case sqlParser.OR: - case sqlParser.AND: - case sqlParser.IN: - case sqlParser.NOT: - case sqlParser.NO: - case sqlParser.EXISTS: - case sqlParser.BETWEEN: - case sqlParser.LIKE: - case sqlParser.RLIKE: - case sqlParser.IS: - case sqlParser.NULL: - case sqlParser.TRUE: - case sqlParser.FALSE: - case sqlParser.NULLS: - case sqlParser.ASC: - case sqlParser.DESC: - case sqlParser.FOR: - case sqlParser.INTERVAL: - case sqlParser.CASE: - case sqlParser.WHEN: - case sqlParser.THEN: - case sqlParser.ELSE: - case sqlParser.END: - case sqlParser.OUTER: - case sqlParser.PIVOT: - case sqlParser.LATERAL: - case sqlParser.WINDOW: - case sqlParser.OVER: - case sqlParser.PARTITION: - case sqlParser.RANGE: - case sqlParser.ROWS: - case sqlParser.UNBOUNDED: - case sqlParser.PRECEDING: - case sqlParser.FOLLOWING: - case sqlParser.CURRENT: - case sqlParser.FIRST: - case sqlParser.AFTER: - case sqlParser.LAST: - case sqlParser.ROW: - case sqlParser.WITH: - case sqlParser.CREATE: - case sqlParser.TABLE: - case sqlParser.DIRECTORY: - case sqlParser.VIEW: - case sqlParser.REPLACE: - case sqlParser.INSERT: - case sqlParser.DELETE: - case sqlParser.INTO: - case sqlParser.DESCRIBE: - case sqlParser.EXPLAIN: - case sqlParser.FORMAT: - case sqlParser.LOGICAL: - case sqlParser.CODEGEN: - case sqlParser.COST: - case sqlParser.CAST: - case sqlParser.SHOW: - case sqlParser.TABLES: - case sqlParser.COLUMNS: - case sqlParser.COLUMN: - case sqlParser.USE: - case sqlParser.PARTITIONS: - case sqlParser.FUNCTIONS: - case sqlParser.DROP: - case sqlParser.TO: - case sqlParser.TABLESAMPLE: - case sqlParser.STRATIFY: - case sqlParser.ALTER: - case sqlParser.RENAME: - case sqlParser.ARRAY: - case sqlParser.MAP: - case sqlParser.STRUCT: - case sqlParser.COMMENT: - case sqlParser.SET: - case sqlParser.RESET: - case sqlParser.DATA: - case sqlParser.START: - case sqlParser.TRANSACTION: - case sqlParser.COMMIT: - case sqlParser.ROLLBACK: - case sqlParser.MACRO: - case sqlParser.IGNORE: - case sqlParser.BOTH: - case sqlParser.LEADING: - case sqlParser.TRAILING: - case sqlParser.IF: - case sqlParser.POSITION: - case sqlParser.EXTRACT: - case sqlParser.DIV: - case sqlParser.PERCENTLIT: - case sqlParser.BUCKET: - case sqlParser.OUT: - case sqlParser.OF: - case sqlParser.SORT: - case sqlParser.CLUSTER: - case sqlParser.DISTRIBUTE: - case sqlParser.OVERWRITE: - case sqlParser.TRANSFORM: - case sqlParser.REDUCE: - case sqlParser.SERDE: - case sqlParser.SERDEPROPERTIES: - case sqlParser.RECORDREADER: - case sqlParser.RECORDWRITER: - case sqlParser.DELIMITED: - case sqlParser.FIELDS: - case sqlParser.TERMINATED: - case sqlParser.COLLECTION: - case sqlParser.ITEMS: - case sqlParser.KEYS: - case sqlParser.ESCAPED: - case sqlParser.LINES: - case sqlParser.SEPARATED: - case sqlParser.FUNCTION: - case sqlParser.EXTENDED: - case sqlParser.REFRESH: - case sqlParser.CLEAR: - case sqlParser.CACHE: - case sqlParser.UNCACHE: - case sqlParser.LAZY: - case sqlParser.FORMATTED: - case sqlParser.GLOBAL: - case sqlParser.TEMPORARY: - case sqlParser.OPTIONS: - case sqlParser.UNSET: - case sqlParser.TBLPROPERTIES: - case sqlParser.DBPROPERTIES: - case sqlParser.BUCKETS: - case sqlParser.SKEWED: - case sqlParser.STORED: - case sqlParser.DIRECTORIES: - case sqlParser.LOCATION: - case sqlParser.EXCHANGE: - case sqlParser.ARCHIVE: - case sqlParser.UNARCHIVE: - case sqlParser.FILEFORMAT: - case sqlParser.TOUCH: - case sqlParser.COMPACT: - case sqlParser.CONCATENATE: - case sqlParser.CHANGE: - case sqlParser.CASCADE: - case sqlParser.RESTRICT: - case sqlParser.CLUSTERED: - case sqlParser.SORTED: - case sqlParser.PURGE: - case sqlParser.INPUTFORMAT: - case sqlParser.OUTPUTFORMAT: - case sqlParser.DATABASE: - case sqlParser.DATABASES: - case sqlParser.DFS: - case sqlParser.TRUNCATE: - case sqlParser.ANALYZE: - case sqlParser.COMPUTE: - case sqlParser.LIST: - case sqlParser.STATISTICS: - case sqlParser.PARTITIONED: - case sqlParser.EXTERNAL: - case sqlParser.DEFINED: - case sqlParser.REVOKE: - case sqlParser.GRANT: - case sqlParser.LOCK: - case sqlParser.UNLOCK: - case sqlParser.MSCK: - case sqlParser.REPAIR: - case sqlParser.RECOVER: - case sqlParser.EXPORT: - case sqlParser.IMPORT: - case sqlParser.LOAD: - case sqlParser.ROLE: - case sqlParser.ROLES: - case sqlParser.COMPACTIONS: - case sqlParser.PRINCIPALS: - case sqlParser.TRANSACTIONS: - case sqlParser.INDEX: - case sqlParser.INDEXES: - case sqlParser.LOCKS: - case sqlParser.OPTION: - case sqlParser.LOCAL: - case sqlParser.INPATH: - localctx = new UnquotedIdentifierContext(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 2693; - this.nonReserved(); - break; - default: - throw new antlr4.error.NoViableAltException(this); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function QuotedIdentifierContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_quotedIdentifier; - return this; -} - -QuotedIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -QuotedIdentifierContext.prototype.constructor = QuotedIdentifierContext; - -QuotedIdentifierContext.prototype.BACKQUOTED_IDENTIFIER = function() { - return this.getToken(sqlParser.BACKQUOTED_IDENTIFIER, 0); -}; - -QuotedIdentifierContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterQuotedIdentifier(this); - } -}; - -QuotedIdentifierContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitQuotedIdentifier(this); - } -}; - -QuotedIdentifierContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitQuotedIdentifier(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.QuotedIdentifierContext = QuotedIdentifierContext; - -sqlParser.prototype.quotedIdentifier = function() { - - var localctx = new QuotedIdentifierContext(this, this._ctx, this.state); - this.enterRule(localctx, 224, sqlParser.RULE_quotedIdentifier); - try { - this.enterOuterAlt(localctx, 1); - this.state = 2696; - this.match(sqlParser.BACKQUOTED_IDENTIFIER); - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function NumberContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_number; - return this; -} - -NumberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -NumberContext.prototype.constructor = NumberContext; - - - -NumberContext.prototype.copyFrom = function(ctx) { - antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); -}; - - -function DecimalLiteralContext(parser, ctx) { - NumberContext.call(this, parser); - NumberContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DecimalLiteralContext.prototype = Object.create(NumberContext.prototype); -DecimalLiteralContext.prototype.constructor = DecimalLiteralContext; - -sqlParser.DecimalLiteralContext = DecimalLiteralContext; - -DecimalLiteralContext.prototype.DECIMAL_VALUE = function() { - return this.getToken(sqlParser.DECIMAL_VALUE, 0); -}; - -DecimalLiteralContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; -DecimalLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDecimalLiteral(this); - } -}; - -DecimalLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDecimalLiteral(this); - } -}; - -DecimalLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDecimalLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function BigIntLiteralContext(parser, ctx) { - NumberContext.call(this, parser); - NumberContext.prototype.copyFrom.call(this, ctx); - return this; -} - -BigIntLiteralContext.prototype = Object.create(NumberContext.prototype); -BigIntLiteralContext.prototype.constructor = BigIntLiteralContext; - -sqlParser.BigIntLiteralContext = BigIntLiteralContext; - -BigIntLiteralContext.prototype.BIGINT_LITERAL = function() { - return this.getToken(sqlParser.BIGINT_LITERAL, 0); -}; - -BigIntLiteralContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; -BigIntLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterBigIntLiteral(this); - } -}; - -BigIntLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitBigIntLiteral(this); - } -}; - -BigIntLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitBigIntLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function TinyIntLiteralContext(parser, ctx) { - NumberContext.call(this, parser); - NumberContext.prototype.copyFrom.call(this, ctx); - return this; -} - -TinyIntLiteralContext.prototype = Object.create(NumberContext.prototype); -TinyIntLiteralContext.prototype.constructor = TinyIntLiteralContext; - -sqlParser.TinyIntLiteralContext = TinyIntLiteralContext; - -TinyIntLiteralContext.prototype.TINYINT_LITERAL = function() { - return this.getToken(sqlParser.TINYINT_LITERAL, 0); -}; - -TinyIntLiteralContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; -TinyIntLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterTinyIntLiteral(this); - } -}; - -TinyIntLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitTinyIntLiteral(this); - } -}; - -TinyIntLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitTinyIntLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function BigDecimalLiteralContext(parser, ctx) { - NumberContext.call(this, parser); - NumberContext.prototype.copyFrom.call(this, ctx); - return this; -} - -BigDecimalLiteralContext.prototype = Object.create(NumberContext.prototype); -BigDecimalLiteralContext.prototype.constructor = BigDecimalLiteralContext; - -sqlParser.BigDecimalLiteralContext = BigDecimalLiteralContext; - -BigDecimalLiteralContext.prototype.BIGDECIMAL_LITERAL = function() { - return this.getToken(sqlParser.BIGDECIMAL_LITERAL, 0); -}; - -BigDecimalLiteralContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; -BigDecimalLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterBigDecimalLiteral(this); - } -}; - -BigDecimalLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitBigDecimalLiteral(this); - } -}; - -BigDecimalLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitBigDecimalLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function DoubleLiteralContext(parser, ctx) { - NumberContext.call(this, parser); - NumberContext.prototype.copyFrom.call(this, ctx); - return this; -} - -DoubleLiteralContext.prototype = Object.create(NumberContext.prototype); -DoubleLiteralContext.prototype.constructor = DoubleLiteralContext; - -sqlParser.DoubleLiteralContext = DoubleLiteralContext; - -DoubleLiteralContext.prototype.DOUBLE_LITERAL = function() { - return this.getToken(sqlParser.DOUBLE_LITERAL, 0); -}; - -DoubleLiteralContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; -DoubleLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterDoubleLiteral(this); - } -}; - -DoubleLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitDoubleLiteral(this); - } -}; - -DoubleLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitDoubleLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function IntegerLiteralContext(parser, ctx) { - NumberContext.call(this, parser); - NumberContext.prototype.copyFrom.call(this, ctx); - return this; -} - -IntegerLiteralContext.prototype = Object.create(NumberContext.prototype); -IntegerLiteralContext.prototype.constructor = IntegerLiteralContext; - -sqlParser.IntegerLiteralContext = IntegerLiteralContext; - -IntegerLiteralContext.prototype.INTEGER_VALUE = function() { - return this.getToken(sqlParser.INTEGER_VALUE, 0); -}; - -IntegerLiteralContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; -IntegerLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterIntegerLiteral(this); - } -}; - -IntegerLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitIntegerLiteral(this); - } -}; - -IntegerLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitIntegerLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - -function SmallIntLiteralContext(parser, ctx) { - NumberContext.call(this, parser); - NumberContext.prototype.copyFrom.call(this, ctx); - return this; -} - -SmallIntLiteralContext.prototype = Object.create(NumberContext.prototype); -SmallIntLiteralContext.prototype.constructor = SmallIntLiteralContext; - -sqlParser.SmallIntLiteralContext = SmallIntLiteralContext; - -SmallIntLiteralContext.prototype.SMALLINT_LITERAL = function() { - return this.getToken(sqlParser.SMALLINT_LITERAL, 0); -}; - -SmallIntLiteralContext.prototype.MINUS = function() { - return this.getToken(sqlParser.MINUS, 0); -}; -SmallIntLiteralContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterSmallIntLiteral(this); - } -}; - -SmallIntLiteralContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitSmallIntLiteral(this); - } -}; - -SmallIntLiteralContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitSmallIntLiteral(this); - } else { - return visitor.visitChildren(this); - } -}; - - - -sqlParser.NumberContext = NumberContext; - -sqlParser.prototype.number = function() { - - var localctx = new NumberContext(this, this._ctx, this.state); - this.enterRule(localctx, 226, sqlParser.RULE_number); - var _la = 0; // Token type - try { - this.state = 2726; - this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,357,this._ctx); - switch(la_) { - case 1: - localctx = new DecimalLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 1); - this.state = 2699; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MINUS) { - this.state = 2698; - this.match(sqlParser.MINUS); - } - - this.state = 2701; - this.match(sqlParser.DECIMAL_VALUE); - break; - - case 2: - localctx = new IntegerLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 2); - this.state = 2703; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MINUS) { - this.state = 2702; - this.match(sqlParser.MINUS); - } - - this.state = 2705; - this.match(sqlParser.INTEGER_VALUE); - break; - - case 3: - localctx = new BigIntLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 3); - this.state = 2707; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MINUS) { - this.state = 2706; - this.match(sqlParser.MINUS); - } - - this.state = 2709; - this.match(sqlParser.BIGINT_LITERAL); - break; - - case 4: - localctx = new SmallIntLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 4); - this.state = 2711; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MINUS) { - this.state = 2710; - this.match(sqlParser.MINUS); - } - - this.state = 2713; - this.match(sqlParser.SMALLINT_LITERAL); - break; - - case 5: - localctx = new TinyIntLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 5); - this.state = 2715; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MINUS) { - this.state = 2714; - this.match(sqlParser.MINUS); - } - - this.state = 2717; - this.match(sqlParser.TINYINT_LITERAL); - break; - - case 6: - localctx = new DoubleLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 6); - this.state = 2719; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MINUS) { - this.state = 2718; - this.match(sqlParser.MINUS); - } - - this.state = 2721; - this.match(sqlParser.DOUBLE_LITERAL); - break; - - case 7: - localctx = new BigDecimalLiteralContext(this, localctx); - this.enterOuterAlt(localctx, 7); - this.state = 2723; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===sqlParser.MINUS) { - this.state = 2722; - this.match(sqlParser.MINUS); - } - - this.state = 2725; - this.match(sqlParser.BIGDECIMAL_LITERAL); - break; - - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - -function NonReservedContext(parser, parent, invokingState) { - if(parent===undefined) { - parent = null; - } - if(invokingState===undefined || invokingState===null) { - invokingState = -1; - } - antlr4.ParserRuleContext.call(this, parent, invokingState); - this.parser = parser; - this.ruleIndex = sqlParser.RULE_nonReserved; - return this; -} - -NonReservedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); -NonReservedContext.prototype.constructor = NonReservedContext; - -NonReservedContext.prototype.SHOW = function() { - return this.getToken(sqlParser.SHOW, 0); -}; - -NonReservedContext.prototype.TABLES = function() { - return this.getToken(sqlParser.TABLES, 0); -}; - -NonReservedContext.prototype.COLUMNS = function() { - return this.getToken(sqlParser.COLUMNS, 0); -}; - -NonReservedContext.prototype.COLUMN = function() { - return this.getToken(sqlParser.COLUMN, 0); -}; - -NonReservedContext.prototype.PARTITIONS = function() { - return this.getToken(sqlParser.PARTITIONS, 0); -}; - -NonReservedContext.prototype.FUNCTIONS = function() { - return this.getToken(sqlParser.FUNCTIONS, 0); -}; - -NonReservedContext.prototype.DATABASES = function() { - return this.getToken(sqlParser.DATABASES, 0); -}; - -NonReservedContext.prototype.ADD = function() { - return this.getToken(sqlParser.ADD, 0); -}; - -NonReservedContext.prototype.OVER = function() { - return this.getToken(sqlParser.OVER, 0); -}; - -NonReservedContext.prototype.PARTITION = function() { - return this.getToken(sqlParser.PARTITION, 0); -}; - -NonReservedContext.prototype.RANGE = function() { - return this.getToken(sqlParser.RANGE, 0); -}; - -NonReservedContext.prototype.ROWS = function() { - return this.getToken(sqlParser.ROWS, 0); -}; - -NonReservedContext.prototype.PRECEDING = function() { - return this.getToken(sqlParser.PRECEDING, 0); -}; - -NonReservedContext.prototype.FOLLOWING = function() { - return this.getToken(sqlParser.FOLLOWING, 0); -}; - -NonReservedContext.prototype.CURRENT = function() { - return this.getToken(sqlParser.CURRENT, 0); -}; - -NonReservedContext.prototype.ROW = function() { - return this.getToken(sqlParser.ROW, 0); -}; - -NonReservedContext.prototype.LAST = function() { - return this.getToken(sqlParser.LAST, 0); -}; - -NonReservedContext.prototype.FIRST = function() { - return this.getToken(sqlParser.FIRST, 0); -}; - -NonReservedContext.prototype.AFTER = function() { - return this.getToken(sqlParser.AFTER, 0); -}; - -NonReservedContext.prototype.MAP = function() { - return this.getToken(sqlParser.MAP, 0); -}; - -NonReservedContext.prototype.ARRAY = function() { - return this.getToken(sqlParser.ARRAY, 0); -}; - -NonReservedContext.prototype.STRUCT = function() { - return this.getToken(sqlParser.STRUCT, 0); -}; - -NonReservedContext.prototype.PIVOT = function() { - return this.getToken(sqlParser.PIVOT, 0); -}; - -NonReservedContext.prototype.LATERAL = function() { - return this.getToken(sqlParser.LATERAL, 0); -}; - -NonReservedContext.prototype.WINDOW = function() { - return this.getToken(sqlParser.WINDOW, 0); -}; - -NonReservedContext.prototype.REDUCE = function() { - return this.getToken(sqlParser.REDUCE, 0); -}; - -NonReservedContext.prototype.TRANSFORM = function() { - return this.getToken(sqlParser.TRANSFORM, 0); -}; - -NonReservedContext.prototype.SERDE = function() { - return this.getToken(sqlParser.SERDE, 0); -}; - -NonReservedContext.prototype.SERDEPROPERTIES = function() { - return this.getToken(sqlParser.SERDEPROPERTIES, 0); -}; - -NonReservedContext.prototype.RECORDREADER = function() { - return this.getToken(sqlParser.RECORDREADER, 0); -}; - -NonReservedContext.prototype.DELIMITED = function() { - return this.getToken(sqlParser.DELIMITED, 0); -}; - -NonReservedContext.prototype.FIELDS = function() { - return this.getToken(sqlParser.FIELDS, 0); -}; - -NonReservedContext.prototype.TERMINATED = function() { - return this.getToken(sqlParser.TERMINATED, 0); -}; - -NonReservedContext.prototype.COLLECTION = function() { - return this.getToken(sqlParser.COLLECTION, 0); -}; - -NonReservedContext.prototype.ITEMS = function() { - return this.getToken(sqlParser.ITEMS, 0); -}; - -NonReservedContext.prototype.KEYS = function() { - return this.getToken(sqlParser.KEYS, 0); -}; - -NonReservedContext.prototype.ESCAPED = function() { - return this.getToken(sqlParser.ESCAPED, 0); -}; - -NonReservedContext.prototype.LINES = function() { - return this.getToken(sqlParser.LINES, 0); -}; - -NonReservedContext.prototype.SEPARATED = function() { - return this.getToken(sqlParser.SEPARATED, 0); -}; - -NonReservedContext.prototype.EXTENDED = function() { - return this.getToken(sqlParser.EXTENDED, 0); -}; - -NonReservedContext.prototype.REFRESH = function() { - return this.getToken(sqlParser.REFRESH, 0); -}; - -NonReservedContext.prototype.CLEAR = function() { - return this.getToken(sqlParser.CLEAR, 0); -}; - -NonReservedContext.prototype.CACHE = function() { - return this.getToken(sqlParser.CACHE, 0); -}; - -NonReservedContext.prototype.UNCACHE = function() { - return this.getToken(sqlParser.UNCACHE, 0); -}; - -NonReservedContext.prototype.LAZY = function() { - return this.getToken(sqlParser.LAZY, 0); -}; - -NonReservedContext.prototype.GLOBAL = function() { - return this.getToken(sqlParser.GLOBAL, 0); -}; - -NonReservedContext.prototype.TEMPORARY = function() { - return this.getToken(sqlParser.TEMPORARY, 0); -}; - -NonReservedContext.prototype.OPTIONS = function() { - return this.getToken(sqlParser.OPTIONS, 0); -}; - -NonReservedContext.prototype.GROUPING = function() { - return this.getToken(sqlParser.GROUPING, 0); -}; - -NonReservedContext.prototype.CUBE = function() { - return this.getToken(sqlParser.CUBE, 0); -}; - -NonReservedContext.prototype.ROLLUP = function() { - return this.getToken(sqlParser.ROLLUP, 0); -}; - -NonReservedContext.prototype.EXPLAIN = function() { - return this.getToken(sqlParser.EXPLAIN, 0); -}; - -NonReservedContext.prototype.FORMAT = function() { - return this.getToken(sqlParser.FORMAT, 0); -}; - -NonReservedContext.prototype.LOGICAL = function() { - return this.getToken(sqlParser.LOGICAL, 0); -}; - -NonReservedContext.prototype.FORMATTED = function() { - return this.getToken(sqlParser.FORMATTED, 0); -}; - -NonReservedContext.prototype.CODEGEN = function() { - return this.getToken(sqlParser.CODEGEN, 0); -}; - -NonReservedContext.prototype.COST = function() { - return this.getToken(sqlParser.COST, 0); -}; - -NonReservedContext.prototype.TABLESAMPLE = function() { - return this.getToken(sqlParser.TABLESAMPLE, 0); -}; - -NonReservedContext.prototype.USE = function() { - return this.getToken(sqlParser.USE, 0); -}; - -NonReservedContext.prototype.TO = function() { - return this.getToken(sqlParser.TO, 0); -}; - -NonReservedContext.prototype.BUCKET = function() { - return this.getToken(sqlParser.BUCKET, 0); -}; - -NonReservedContext.prototype.PERCENTLIT = function() { - return this.getToken(sqlParser.PERCENTLIT, 0); -}; - -NonReservedContext.prototype.OUT = function() { - return this.getToken(sqlParser.OUT, 0); -}; - -NonReservedContext.prototype.OF = function() { - return this.getToken(sqlParser.OF, 0); -}; - -NonReservedContext.prototype.SET = function() { - return this.getToken(sqlParser.SET, 0); -}; - -NonReservedContext.prototype.RESET = function() { - return this.getToken(sqlParser.RESET, 0); -}; - -NonReservedContext.prototype.VIEW = function() { - return this.getToken(sqlParser.VIEW, 0); -}; - -NonReservedContext.prototype.REPLACE = function() { - return this.getToken(sqlParser.REPLACE, 0); -}; - -NonReservedContext.prototype.IF = function() { - return this.getToken(sqlParser.IF, 0); -}; - -NonReservedContext.prototype.POSITION = function() { - return this.getToken(sqlParser.POSITION, 0); -}; - -NonReservedContext.prototype.EXTRACT = function() { - return this.getToken(sqlParser.EXTRACT, 0); -}; - -NonReservedContext.prototype.NO = function() { - return this.getToken(sqlParser.NO, 0); -}; - -NonReservedContext.prototype.DATA = function() { - return this.getToken(sqlParser.DATA, 0); -}; - -NonReservedContext.prototype.START = function() { - return this.getToken(sqlParser.START, 0); -}; - -NonReservedContext.prototype.TRANSACTION = function() { - return this.getToken(sqlParser.TRANSACTION, 0); -}; - -NonReservedContext.prototype.COMMIT = function() { - return this.getToken(sqlParser.COMMIT, 0); -}; - -NonReservedContext.prototype.ROLLBACK = function() { - return this.getToken(sqlParser.ROLLBACK, 0); -}; - -NonReservedContext.prototype.IGNORE = function() { - return this.getToken(sqlParser.IGNORE, 0); -}; - -NonReservedContext.prototype.SORT = function() { - return this.getToken(sqlParser.SORT, 0); -}; - -NonReservedContext.prototype.CLUSTER = function() { - return this.getToken(sqlParser.CLUSTER, 0); -}; - -NonReservedContext.prototype.DISTRIBUTE = function() { - return this.getToken(sqlParser.DISTRIBUTE, 0); -}; - -NonReservedContext.prototype.UNSET = function() { - return this.getToken(sqlParser.UNSET, 0); -}; - -NonReservedContext.prototype.TBLPROPERTIES = function() { - return this.getToken(sqlParser.TBLPROPERTIES, 0); -}; - -NonReservedContext.prototype.SKEWED = function() { - return this.getToken(sqlParser.SKEWED, 0); -}; - -NonReservedContext.prototype.STORED = function() { - return this.getToken(sqlParser.STORED, 0); -}; - -NonReservedContext.prototype.DIRECTORIES = function() { - return this.getToken(sqlParser.DIRECTORIES, 0); -}; - -NonReservedContext.prototype.LOCATION = function() { - return this.getToken(sqlParser.LOCATION, 0); -}; - -NonReservedContext.prototype.EXCHANGE = function() { - return this.getToken(sqlParser.EXCHANGE, 0); -}; - -NonReservedContext.prototype.ARCHIVE = function() { - return this.getToken(sqlParser.ARCHIVE, 0); -}; - -NonReservedContext.prototype.UNARCHIVE = function() { - return this.getToken(sqlParser.UNARCHIVE, 0); -}; - -NonReservedContext.prototype.FILEFORMAT = function() { - return this.getToken(sqlParser.FILEFORMAT, 0); -}; - -NonReservedContext.prototype.TOUCH = function() { - return this.getToken(sqlParser.TOUCH, 0); -}; - -NonReservedContext.prototype.COMPACT = function() { - return this.getToken(sqlParser.COMPACT, 0); -}; - -NonReservedContext.prototype.CONCATENATE = function() { - return this.getToken(sqlParser.CONCATENATE, 0); -}; - -NonReservedContext.prototype.CHANGE = function() { - return this.getToken(sqlParser.CHANGE, 0); -}; - -NonReservedContext.prototype.CASCADE = function() { - return this.getToken(sqlParser.CASCADE, 0); -}; - -NonReservedContext.prototype.RESTRICT = function() { - return this.getToken(sqlParser.RESTRICT, 0); -}; - -NonReservedContext.prototype.BUCKETS = function() { - return this.getToken(sqlParser.BUCKETS, 0); -}; - -NonReservedContext.prototype.CLUSTERED = function() { - return this.getToken(sqlParser.CLUSTERED, 0); -}; - -NonReservedContext.prototype.SORTED = function() { - return this.getToken(sqlParser.SORTED, 0); -}; - -NonReservedContext.prototype.PURGE = function() { - return this.getToken(sqlParser.PURGE, 0); -}; - -NonReservedContext.prototype.INPUTFORMAT = function() { - return this.getToken(sqlParser.INPUTFORMAT, 0); -}; - -NonReservedContext.prototype.OUTPUTFORMAT = function() { - return this.getToken(sqlParser.OUTPUTFORMAT, 0); -}; - -NonReservedContext.prototype.DBPROPERTIES = function() { - return this.getToken(sqlParser.DBPROPERTIES, 0); -}; - -NonReservedContext.prototype.DFS = function() { - return this.getToken(sqlParser.DFS, 0); -}; - -NonReservedContext.prototype.TRUNCATE = function() { - return this.getToken(sqlParser.TRUNCATE, 0); -}; - -NonReservedContext.prototype.COMPUTE = function() { - return this.getToken(sqlParser.COMPUTE, 0); -}; - -NonReservedContext.prototype.LIST = function() { - return this.getToken(sqlParser.LIST, 0); -}; - -NonReservedContext.prototype.STATISTICS = function() { - return this.getToken(sqlParser.STATISTICS, 0); -}; - -NonReservedContext.prototype.ANALYZE = function() { - return this.getToken(sqlParser.ANALYZE, 0); -}; - -NonReservedContext.prototype.PARTITIONED = function() { - return this.getToken(sqlParser.PARTITIONED, 0); -}; - -NonReservedContext.prototype.EXTERNAL = function() { - return this.getToken(sqlParser.EXTERNAL, 0); -}; - -NonReservedContext.prototype.DEFINED = function() { - return this.getToken(sqlParser.DEFINED, 0); -}; - -NonReservedContext.prototype.RECORDWRITER = function() { - return this.getToken(sqlParser.RECORDWRITER, 0); -}; - -NonReservedContext.prototype.REVOKE = function() { - return this.getToken(sqlParser.REVOKE, 0); -}; - -NonReservedContext.prototype.GRANT = function() { - return this.getToken(sqlParser.GRANT, 0); -}; - -NonReservedContext.prototype.LOCK = function() { - return this.getToken(sqlParser.LOCK, 0); -}; - -NonReservedContext.prototype.UNLOCK = function() { - return this.getToken(sqlParser.UNLOCK, 0); -}; - -NonReservedContext.prototype.MSCK = function() { - return this.getToken(sqlParser.MSCK, 0); -}; - -NonReservedContext.prototype.REPAIR = function() { - return this.getToken(sqlParser.REPAIR, 0); -}; - -NonReservedContext.prototype.RECOVER = function() { - return this.getToken(sqlParser.RECOVER, 0); -}; - -NonReservedContext.prototype.EXPORT = function() { - return this.getToken(sqlParser.EXPORT, 0); -}; - -NonReservedContext.prototype.IMPORT = function() { - return this.getToken(sqlParser.IMPORT, 0); -}; - -NonReservedContext.prototype.LOAD = function() { - return this.getToken(sqlParser.LOAD, 0); -}; - -NonReservedContext.prototype.COMMENT = function() { - return this.getToken(sqlParser.COMMENT, 0); -}; - -NonReservedContext.prototype.ROLE = function() { - return this.getToken(sqlParser.ROLE, 0); -}; - -NonReservedContext.prototype.ROLES = function() { - return this.getToken(sqlParser.ROLES, 0); -}; - -NonReservedContext.prototype.COMPACTIONS = function() { - return this.getToken(sqlParser.COMPACTIONS, 0); -}; - -NonReservedContext.prototype.PRINCIPALS = function() { - return this.getToken(sqlParser.PRINCIPALS, 0); -}; - -NonReservedContext.prototype.TRANSACTIONS = function() { - return this.getToken(sqlParser.TRANSACTIONS, 0); -}; - -NonReservedContext.prototype.INDEX = function() { - return this.getToken(sqlParser.INDEX, 0); -}; - -NonReservedContext.prototype.INDEXES = function() { - return this.getToken(sqlParser.INDEXES, 0); -}; - -NonReservedContext.prototype.LOCKS = function() { - return this.getToken(sqlParser.LOCKS, 0); -}; - -NonReservedContext.prototype.OPTION = function() { - return this.getToken(sqlParser.OPTION, 0); -}; - -NonReservedContext.prototype.LOCAL = function() { - return this.getToken(sqlParser.LOCAL, 0); -}; - -NonReservedContext.prototype.INPATH = function() { - return this.getToken(sqlParser.INPATH, 0); -}; - -NonReservedContext.prototype.ASC = function() { - return this.getToken(sqlParser.ASC, 0); -}; - -NonReservedContext.prototype.DESC = function() { - return this.getToken(sqlParser.DESC, 0); -}; - -NonReservedContext.prototype.LIMIT = function() { - return this.getToken(sqlParser.LIMIT, 0); -}; - -NonReservedContext.prototype.RENAME = function() { - return this.getToken(sqlParser.RENAME, 0); -}; - -NonReservedContext.prototype.SETS = function() { - return this.getToken(sqlParser.SETS, 0); -}; - -NonReservedContext.prototype.AT = function() { - return this.getToken(sqlParser.AT, 0); -}; - -NonReservedContext.prototype.NULLS = function() { - return this.getToken(sqlParser.NULLS, 0); -}; - -NonReservedContext.prototype.OVERWRITE = function() { - return this.getToken(sqlParser.OVERWRITE, 0); -}; - -NonReservedContext.prototype.ALL = function() { - return this.getToken(sqlParser.ALL, 0); -}; - -NonReservedContext.prototype.ANY = function() { - return this.getToken(sqlParser.ANY, 0); -}; - -NonReservedContext.prototype.ALTER = function() { - return this.getToken(sqlParser.ALTER, 0); -}; - -NonReservedContext.prototype.AS = function() { - return this.getToken(sqlParser.AS, 0); -}; - -NonReservedContext.prototype.BETWEEN = function() { - return this.getToken(sqlParser.BETWEEN, 0); -}; - -NonReservedContext.prototype.BY = function() { - return this.getToken(sqlParser.BY, 0); -}; - -NonReservedContext.prototype.CREATE = function() { - return this.getToken(sqlParser.CREATE, 0); -}; - -NonReservedContext.prototype.DELETE = function() { - return this.getToken(sqlParser.DELETE, 0); -}; - -NonReservedContext.prototype.DESCRIBE = function() { - return this.getToken(sqlParser.DESCRIBE, 0); -}; - -NonReservedContext.prototype.DROP = function() { - return this.getToken(sqlParser.DROP, 0); -}; - -NonReservedContext.prototype.EXISTS = function() { - return this.getToken(sqlParser.EXISTS, 0); -}; - -NonReservedContext.prototype.FALSE = function() { - return this.getToken(sqlParser.FALSE, 0); -}; - -NonReservedContext.prototype.FOR = function() { - return this.getToken(sqlParser.FOR, 0); -}; - -NonReservedContext.prototype.GROUP = function() { - return this.getToken(sqlParser.GROUP, 0); -}; - -NonReservedContext.prototype.IN = function() { - return this.getToken(sqlParser.IN, 0); -}; - -NonReservedContext.prototype.INSERT = function() { - return this.getToken(sqlParser.INSERT, 0); -}; - -NonReservedContext.prototype.INTO = function() { - return this.getToken(sqlParser.INTO, 0); -}; - -NonReservedContext.prototype.IS = function() { - return this.getToken(sqlParser.IS, 0); -}; - -NonReservedContext.prototype.LIKE = function() { - return this.getToken(sqlParser.LIKE, 0); -}; - -NonReservedContext.prototype.NULL = function() { - return this.getToken(sqlParser.NULL, 0); -}; - -NonReservedContext.prototype.ORDER = function() { - return this.getToken(sqlParser.ORDER, 0); -}; - -NonReservedContext.prototype.OUTER = function() { - return this.getToken(sqlParser.OUTER, 0); -}; - -NonReservedContext.prototype.TABLE = function() { - return this.getToken(sqlParser.TABLE, 0); -}; - -NonReservedContext.prototype.TRUE = function() { - return this.getToken(sqlParser.TRUE, 0); -}; - -NonReservedContext.prototype.WITH = function() { - return this.getToken(sqlParser.WITH, 0); -}; - -NonReservedContext.prototype.RLIKE = function() { - return this.getToken(sqlParser.RLIKE, 0); -}; - -NonReservedContext.prototype.AND = function() { - return this.getToken(sqlParser.AND, 0); -}; - -NonReservedContext.prototype.CASE = function() { - return this.getToken(sqlParser.CASE, 0); -}; - -NonReservedContext.prototype.CAST = function() { - return this.getToken(sqlParser.CAST, 0); -}; - -NonReservedContext.prototype.DISTINCT = function() { - return this.getToken(sqlParser.DISTINCT, 0); -}; - -NonReservedContext.prototype.DIV = function() { - return this.getToken(sqlParser.DIV, 0); -}; - -NonReservedContext.prototype.ELSE = function() { - return this.getToken(sqlParser.ELSE, 0); -}; - -NonReservedContext.prototype.END = function() { - return this.getToken(sqlParser.END, 0); -}; - -NonReservedContext.prototype.FUNCTION = function() { - return this.getToken(sqlParser.FUNCTION, 0); -}; - -NonReservedContext.prototype.INTERVAL = function() { - return this.getToken(sqlParser.INTERVAL, 0); -}; - -NonReservedContext.prototype.MACRO = function() { - return this.getToken(sqlParser.MACRO, 0); -}; - -NonReservedContext.prototype.OR = function() { - return this.getToken(sqlParser.OR, 0); -}; - -NonReservedContext.prototype.STRATIFY = function() { - return this.getToken(sqlParser.STRATIFY, 0); -}; - -NonReservedContext.prototype.THEN = function() { - return this.getToken(sqlParser.THEN, 0); -}; - -NonReservedContext.prototype.UNBOUNDED = function() { - return this.getToken(sqlParser.UNBOUNDED, 0); -}; - -NonReservedContext.prototype.WHEN = function() { - return this.getToken(sqlParser.WHEN, 0); -}; - -NonReservedContext.prototype.DATABASE = function() { - return this.getToken(sqlParser.DATABASE, 0); -}; - -NonReservedContext.prototype.SELECT = function() { - return this.getToken(sqlParser.SELECT, 0); -}; - -NonReservedContext.prototype.FROM = function() { - return this.getToken(sqlParser.FROM, 0); -}; - -NonReservedContext.prototype.WHERE = function() { - return this.getToken(sqlParser.WHERE, 0); -}; - -NonReservedContext.prototype.HAVING = function() { - return this.getToken(sqlParser.HAVING, 0); -}; - -NonReservedContext.prototype.NOT = function() { - return this.getToken(sqlParser.NOT, 0); -}; - -NonReservedContext.prototype.DIRECTORY = function() { - return this.getToken(sqlParser.DIRECTORY, 0); -}; - -NonReservedContext.prototype.BOTH = function() { - return this.getToken(sqlParser.BOTH, 0); -}; - -NonReservedContext.prototype.LEADING = function() { - return this.getToken(sqlParser.LEADING, 0); -}; - -NonReservedContext.prototype.TRAILING = function() { - return this.getToken(sqlParser.TRAILING, 0); -}; - -NonReservedContext.prototype.enterRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.enterNonReserved(this); - } -}; - -NonReservedContext.prototype.exitRule = function(listener) { - if(listener instanceof sqlListener ) { - listener.exitNonReserved(this); - } -}; - -NonReservedContext.prototype.accept = function(visitor) { - if ( visitor instanceof sqlVisitor ) { - return visitor.visitNonReserved(this); - } else { - return visitor.visitChildren(this); - } -}; - - - - -sqlParser.NonReservedContext = NonReservedContext; - -sqlParser.prototype.nonReserved = function() { - - var localctx = new NonReservedContext(this, this._ctx, this.state); - this.enterRule(localctx, 228, sqlParser.RULE_nonReserved); - var _la = 0; // Token type - try { - this.enterOuterAlt(localctx, 1); - this.state = 2728; - _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << sqlParser.SELECT) | (1 << sqlParser.FROM) | (1 << sqlParser.ADD) | (1 << sqlParser.AS) | (1 << sqlParser.ALL) | (1 << sqlParser.ANY) | (1 << sqlParser.DISTINCT) | (1 << sqlParser.WHERE) | (1 << sqlParser.GROUP) | (1 << sqlParser.BY) | (1 << sqlParser.GROUPING) | (1 << sqlParser.SETS) | (1 << sqlParser.CUBE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (sqlParser.ROLLUP - 32)) | (1 << (sqlParser.ORDER - 32)) | (1 << (sqlParser.HAVING - 32)) | (1 << (sqlParser.LIMIT - 32)) | (1 << (sqlParser.AT - 32)) | (1 << (sqlParser.OR - 32)) | (1 << (sqlParser.AND - 32)) | (1 << (sqlParser.IN - 32)) | (1 << (sqlParser.NOT - 32)) | (1 << (sqlParser.NO - 32)) | (1 << (sqlParser.EXISTS - 32)) | (1 << (sqlParser.BETWEEN - 32)) | (1 << (sqlParser.LIKE - 32)) | (1 << (sqlParser.RLIKE - 32)) | (1 << (sqlParser.IS - 32)) | (1 << (sqlParser.NULL - 32)) | (1 << (sqlParser.TRUE - 32)) | (1 << (sqlParser.FALSE - 32)) | (1 << (sqlParser.NULLS - 32)) | (1 << (sqlParser.ASC - 32)) | (1 << (sqlParser.DESC - 32)) | (1 << (sqlParser.FOR - 32)) | (1 << (sqlParser.INTERVAL - 32)) | (1 << (sqlParser.CASE - 32)) | (1 << (sqlParser.WHEN - 32)) | (1 << (sqlParser.THEN - 32)) | (1 << (sqlParser.ELSE - 32)) | (1 << (sqlParser.END - 32)) | (1 << (sqlParser.OUTER - 32)))) !== 0) || ((((_la - 70)) & ~0x1f) == 0 && ((1 << (_la - 70)) & ((1 << (sqlParser.PIVOT - 70)) | (1 << (sqlParser.LATERAL - 70)) | (1 << (sqlParser.WINDOW - 70)) | (1 << (sqlParser.OVER - 70)) | (1 << (sqlParser.PARTITION - 70)) | (1 << (sqlParser.RANGE - 70)) | (1 << (sqlParser.ROWS - 70)) | (1 << (sqlParser.UNBOUNDED - 70)) | (1 << (sqlParser.PRECEDING - 70)) | (1 << (sqlParser.FOLLOWING - 70)) | (1 << (sqlParser.CURRENT - 70)) | (1 << (sqlParser.FIRST - 70)) | (1 << (sqlParser.AFTER - 70)) | (1 << (sqlParser.LAST - 70)) | (1 << (sqlParser.ROW - 70)) | (1 << (sqlParser.WITH - 70)) | (1 << (sqlParser.CREATE - 70)) | (1 << (sqlParser.TABLE - 70)) | (1 << (sqlParser.DIRECTORY - 70)) | (1 << (sqlParser.VIEW - 70)) | (1 << (sqlParser.REPLACE - 70)) | (1 << (sqlParser.INSERT - 70)) | (1 << (sqlParser.DELETE - 70)) | (1 << (sqlParser.INTO - 70)) | (1 << (sqlParser.DESCRIBE - 70)) | (1 << (sqlParser.EXPLAIN - 70)) | (1 << (sqlParser.FORMAT - 70)) | (1 << (sqlParser.LOGICAL - 70)) | (1 << (sqlParser.CODEGEN - 70)) | (1 << (sqlParser.COST - 70)) | (1 << (sqlParser.CAST - 70)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (sqlParser.SHOW - 102)) | (1 << (sqlParser.TABLES - 102)) | (1 << (sqlParser.COLUMNS - 102)) | (1 << (sqlParser.COLUMN - 102)) | (1 << (sqlParser.USE - 102)) | (1 << (sqlParser.PARTITIONS - 102)) | (1 << (sqlParser.FUNCTIONS - 102)) | (1 << (sqlParser.DROP - 102)) | (1 << (sqlParser.TO - 102)) | (1 << (sqlParser.TABLESAMPLE - 102)) | (1 << (sqlParser.STRATIFY - 102)) | (1 << (sqlParser.ALTER - 102)) | (1 << (sqlParser.RENAME - 102)) | (1 << (sqlParser.ARRAY - 102)) | (1 << (sqlParser.MAP - 102)) | (1 << (sqlParser.STRUCT - 102)) | (1 << (sqlParser.COMMENT - 102)) | (1 << (sqlParser.SET - 102)) | (1 << (sqlParser.RESET - 102)) | (1 << (sqlParser.DATA - 102)) | (1 << (sqlParser.START - 102)) | (1 << (sqlParser.TRANSACTION - 102)) | (1 << (sqlParser.COMMIT - 102)) | (1 << (sqlParser.ROLLBACK - 102)) | (1 << (sqlParser.MACRO - 102)) | (1 << (sqlParser.IGNORE - 102)) | (1 << (sqlParser.BOTH - 102)) | (1 << (sqlParser.LEADING - 102)))) !== 0) || ((((_la - 134)) & ~0x1f) == 0 && ((1 << (_la - 134)) & ((1 << (sqlParser.TRAILING - 134)) | (1 << (sqlParser.IF - 134)) | (1 << (sqlParser.POSITION - 134)) | (1 << (sqlParser.EXTRACT - 134)) | (1 << (sqlParser.DIV - 134)) | (1 << (sqlParser.PERCENTLIT - 134)) | (1 << (sqlParser.BUCKET - 134)) | (1 << (sqlParser.OUT - 134)) | (1 << (sqlParser.OF - 134)) | (1 << (sqlParser.SORT - 134)) | (1 << (sqlParser.CLUSTER - 134)) | (1 << (sqlParser.DISTRIBUTE - 134)) | (1 << (sqlParser.OVERWRITE - 134)) | (1 << (sqlParser.TRANSFORM - 134)))) !== 0) || ((((_la - 166)) & ~0x1f) == 0 && ((1 << (_la - 166)) & ((1 << (sqlParser.REDUCE - 166)) | (1 << (sqlParser.SERDE - 166)) | (1 << (sqlParser.SERDEPROPERTIES - 166)) | (1 << (sqlParser.RECORDREADER - 166)) | (1 << (sqlParser.RECORDWRITER - 166)) | (1 << (sqlParser.DELIMITED - 166)) | (1 << (sqlParser.FIELDS - 166)) | (1 << (sqlParser.TERMINATED - 166)) | (1 << (sqlParser.COLLECTION - 166)) | (1 << (sqlParser.ITEMS - 166)) | (1 << (sqlParser.KEYS - 166)) | (1 << (sqlParser.ESCAPED - 166)) | (1 << (sqlParser.LINES - 166)) | (1 << (sqlParser.SEPARATED - 166)) | (1 << (sqlParser.FUNCTION - 166)) | (1 << (sqlParser.EXTENDED - 166)) | (1 << (sqlParser.REFRESH - 166)) | (1 << (sqlParser.CLEAR - 166)) | (1 << (sqlParser.CACHE - 166)) | (1 << (sqlParser.UNCACHE - 166)) | (1 << (sqlParser.LAZY - 166)) | (1 << (sqlParser.FORMATTED - 166)) | (1 << (sqlParser.GLOBAL - 166)) | (1 << (sqlParser.TEMPORARY - 166)) | (1 << (sqlParser.OPTIONS - 166)) | (1 << (sqlParser.UNSET - 166)) | (1 << (sqlParser.TBLPROPERTIES - 166)) | (1 << (sqlParser.DBPROPERTIES - 166)) | (1 << (sqlParser.BUCKETS - 166)) | (1 << (sqlParser.SKEWED - 166)) | (1 << (sqlParser.STORED - 166)))) !== 0) || ((((_la - 198)) & ~0x1f) == 0 && ((1 << (_la - 198)) & ((1 << (sqlParser.DIRECTORIES - 198)) | (1 << (sqlParser.LOCATION - 198)) | (1 << (sqlParser.EXCHANGE - 198)) | (1 << (sqlParser.ARCHIVE - 198)) | (1 << (sqlParser.UNARCHIVE - 198)) | (1 << (sqlParser.FILEFORMAT - 198)) | (1 << (sqlParser.TOUCH - 198)) | (1 << (sqlParser.COMPACT - 198)) | (1 << (sqlParser.CONCATENATE - 198)) | (1 << (sqlParser.CHANGE - 198)) | (1 << (sqlParser.CASCADE - 198)) | (1 << (sqlParser.RESTRICT - 198)) | (1 << (sqlParser.CLUSTERED - 198)) | (1 << (sqlParser.SORTED - 198)) | (1 << (sqlParser.PURGE - 198)) | (1 << (sqlParser.INPUTFORMAT - 198)) | (1 << (sqlParser.OUTPUTFORMAT - 198)) | (1 << (sqlParser.DATABASE - 198)) | (1 << (sqlParser.DATABASES - 198)) | (1 << (sqlParser.DFS - 198)) | (1 << (sqlParser.TRUNCATE - 198)) | (1 << (sqlParser.ANALYZE - 198)) | (1 << (sqlParser.COMPUTE - 198)) | (1 << (sqlParser.LIST - 198)) | (1 << (sqlParser.STATISTICS - 198)) | (1 << (sqlParser.PARTITIONED - 198)) | (1 << (sqlParser.EXTERNAL - 198)) | (1 << (sqlParser.DEFINED - 198)) | (1 << (sqlParser.REVOKE - 198)) | (1 << (sqlParser.GRANT - 198)) | (1 << (sqlParser.LOCK - 198)) | (1 << (sqlParser.UNLOCK - 198)))) !== 0) || ((((_la - 230)) & ~0x1f) == 0 && ((1 << (_la - 230)) & ((1 << (sqlParser.MSCK - 230)) | (1 << (sqlParser.REPAIR - 230)) | (1 << (sqlParser.RECOVER - 230)) | (1 << (sqlParser.EXPORT - 230)) | (1 << (sqlParser.IMPORT - 230)) | (1 << (sqlParser.LOAD - 230)) | (1 << (sqlParser.ROLE - 230)) | (1 << (sqlParser.ROLES - 230)) | (1 << (sqlParser.COMPACTIONS - 230)) | (1 << (sqlParser.PRINCIPALS - 230)) | (1 << (sqlParser.TRANSACTIONS - 230)) | (1 << (sqlParser.INDEX - 230)) | (1 << (sqlParser.INDEXES - 230)) | (1 << (sqlParser.LOCKS - 230)) | (1 << (sqlParser.OPTION - 230)) | (1 << (sqlParser.LOCAL - 230)) | (1 << (sqlParser.INPATH - 230)))) !== 0))) { - this._errHandler.recoverInline(this); - } - else { - this._errHandler.reportMatch(this); - this.consume(); - } - } catch (re) { - if(re instanceof antlr4.error.RecognitionException) { - localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return localctx; -}; - - -sqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { - switch(ruleIndex) { - case 35: - return this.queryTerm_sempred(localctx, predIndex); - case 82: - return this.booleanExpression_sempred(localctx, predIndex); - case 84: - return this.valueExpression_sempred(localctx, predIndex); - case 85: - return this.primaryExpression_sempred(localctx, predIndex); - default: - throw "No predicate with index:" + ruleIndex; - } -}; - -sqlParser.prototype.queryTerm_sempred = function(localctx, predIndex) { - switch(predIndex) { - case 0: - return this.precpred(this._ctx, 3); - case 1: - return this.legacy_setops_precedence_enbled; - case 2: - return this.precpred(this._ctx, 2); - case 3: - return !this.legacy_setops_precedence_enbled; - case 4: - return this.precpred(this._ctx, 1); - case 5: - return !this.legacy_setops_precedence_enbled; - default: - throw "No predicate with index:" + predIndex; - } -}; - -sqlParser.prototype.booleanExpression_sempred = function(localctx, predIndex) { - switch(predIndex) { - case 6: - return this.precpred(this._ctx, 2); - case 7: - return this.precpred(this._ctx, 1); - default: - throw "No predicate with index:" + predIndex; - } -}; - -sqlParser.prototype.valueExpression_sempred = function(localctx, predIndex) { - switch(predIndex) { - case 8: - return this.precpred(this._ctx, 6); - case 9: - return this.precpred(this._ctx, 5); - case 10: - return this.precpred(this._ctx, 4); - case 11: - return this.precpred(this._ctx, 3); - case 12: - return this.precpred(this._ctx, 2); - case 13: - return this.precpred(this._ctx, 1); - default: - throw "No predicate with index:" + predIndex; - } -}; - -sqlParser.prototype.primaryExpression_sempred = function(localctx, predIndex) { - switch(predIndex) { - case 14: - return this.precpred(this._ctx, 5); - case 15: - return this.precpred(this._ctx, 3); - default: - throw "No predicate with index:" + predIndex; - } -}; - - -exports.sqlParser = sqlParser; diff --git a/src/antlr4/flinksql/sqlVisitor.js b/src/antlr4/flinksql/sqlVisitor.js deleted file mode 100644 index dfd42d8..0000000 --- a/src/antlr4/flinksql/sqlVisitor.js +++ /dev/null @@ -1,1330 +0,0 @@ -// Generated from ./grammar/sql.g4 by ANTLR 4.7.1 -// jshint ignore: start -var antlr4 = require('antlr4/index'); - -// This class defines a complete generic visitor for a parse tree produced by sqlParser. - -function sqlVisitor() { - antlr4.tree.ParseTreeVisitor.call(this); - return this; -} - -sqlVisitor.prototype = Object.create(antlr4.tree.ParseTreeVisitor.prototype); -sqlVisitor.prototype.constructor = sqlVisitor; - -// Visit a parse tree produced by sqlParser#singleStatement. -sqlVisitor.prototype.visitSingleStatement = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#singleExpression. -sqlVisitor.prototype.visitSingleExpression = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#singleTableIdentifier. -sqlVisitor.prototype.visitSingleTableIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#singleFunctionIdentifier. -sqlVisitor.prototype.visitSingleFunctionIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#singleDataType. -sqlVisitor.prototype.visitSingleDataType = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#singleTableSchema. -sqlVisitor.prototype.visitSingleTableSchema = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#statementDefault. -sqlVisitor.prototype.visitStatementDefault = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#use. -sqlVisitor.prototype.visitUse = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createDatabase. -sqlVisitor.prototype.visitCreateDatabase = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#setDatabaseProperties. -sqlVisitor.prototype.visitSetDatabaseProperties = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#dropDatabase. -sqlVisitor.prototype.visitDropDatabase = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createTable. -sqlVisitor.prototype.visitCreateTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createHiveTable. -sqlVisitor.prototype.visitCreateHiveTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createFlinkTable. -sqlVisitor.prototype.visitCreateFlinkTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createTableLike. -sqlVisitor.prototype.visitCreateTableLike = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#analyze. -sqlVisitor.prototype.visitAnalyze = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#addTableColumns. -sqlVisitor.prototype.visitAddTableColumns = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#renameTable. -sqlVisitor.prototype.visitRenameTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#setTableProperties. -sqlVisitor.prototype.visitSetTableProperties = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#unsetTableProperties. -sqlVisitor.prototype.visitUnsetTableProperties = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#changeColumn. -sqlVisitor.prototype.visitChangeColumn = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#setTableSerDe. -sqlVisitor.prototype.visitSetTableSerDe = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#addTablePartition. -sqlVisitor.prototype.visitAddTablePartition = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#renameTablePartition. -sqlVisitor.prototype.visitRenameTablePartition = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#dropTablePartitions. -sqlVisitor.prototype.visitDropTablePartitions = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#setTableLocation. -sqlVisitor.prototype.visitSetTableLocation = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#recoverPartitions. -sqlVisitor.prototype.visitRecoverPartitions = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#dropTable. -sqlVisitor.prototype.visitDropTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createView. -sqlVisitor.prototype.visitCreateView = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createTempViewUsing. -sqlVisitor.prototype.visitCreateTempViewUsing = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#alterViewQuery. -sqlVisitor.prototype.visitAlterViewQuery = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createFunction. -sqlVisitor.prototype.visitCreateFunction = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#dropFunction. -sqlVisitor.prototype.visitDropFunction = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#explain. -sqlVisitor.prototype.visitExplain = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#showTables. -sqlVisitor.prototype.visitShowTables = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#showTable. -sqlVisitor.prototype.visitShowTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#showDatabases. -sqlVisitor.prototype.visitShowDatabases = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#showTblProperties. -sqlVisitor.prototype.visitShowTblProperties = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#showColumns. -sqlVisitor.prototype.visitShowColumns = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#showPartitions. -sqlVisitor.prototype.visitShowPartitions = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#showFunctions. -sqlVisitor.prototype.visitShowFunctions = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#showCreateTable. -sqlVisitor.prototype.visitShowCreateTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#describeFunction. -sqlVisitor.prototype.visitDescribeFunction = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#describeDatabase. -sqlVisitor.prototype.visitDescribeDatabase = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#describeTable. -sqlVisitor.prototype.visitDescribeTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#refreshTable. -sqlVisitor.prototype.visitRefreshTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#refreshResource. -sqlVisitor.prototype.visitRefreshResource = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#cacheTable. -sqlVisitor.prototype.visitCacheTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#uncacheTable. -sqlVisitor.prototype.visitUncacheTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#clearCache. -sqlVisitor.prototype.visitClearCache = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#loadData. -sqlVisitor.prototype.visitLoadData = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#truncateTable. -sqlVisitor.prototype.visitTruncateTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#repairTable. -sqlVisitor.prototype.visitRepairTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#manageResource. -sqlVisitor.prototype.visitManageResource = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#failNativeCommand. -sqlVisitor.prototype.visitFailNativeCommand = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#setConfiguration. -sqlVisitor.prototype.visitSetConfiguration = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#resetConfiguration. -sqlVisitor.prototype.visitResetConfiguration = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#unsupportedHiveNativeCommands. -sqlVisitor.prototype.visitUnsupportedHiveNativeCommands = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createTableHeader. -sqlVisitor.prototype.visitCreateTableHeader = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#bucketSpec. -sqlVisitor.prototype.visitBucketSpec = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#skewSpec. -sqlVisitor.prototype.visitSkewSpec = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#locationSpec. -sqlVisitor.prototype.visitLocationSpec = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#query. -sqlVisitor.prototype.visitQuery = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#insertOverwriteTable. -sqlVisitor.prototype.visitInsertOverwriteTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#insertIntoTable. -sqlVisitor.prototype.visitInsertIntoTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#insertOverwriteHiveDir. -sqlVisitor.prototype.visitInsertOverwriteHiveDir = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#insertOverwriteDir. -sqlVisitor.prototype.visitInsertOverwriteDir = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#partitionSpecLocation. -sqlVisitor.prototype.visitPartitionSpecLocation = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#partitionSpec. -sqlVisitor.prototype.visitPartitionSpec = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#partitionVal. -sqlVisitor.prototype.visitPartitionVal = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#describeFuncName. -sqlVisitor.prototype.visitDescribeFuncName = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#describeColName. -sqlVisitor.prototype.visitDescribeColName = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#ctes. -sqlVisitor.prototype.visitCtes = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#namedQuery. -sqlVisitor.prototype.visitNamedQuery = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tableProvider. -sqlVisitor.prototype.visitTableProvider = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tablePropertyList. -sqlVisitor.prototype.visitTablePropertyList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tableProperty. -sqlVisitor.prototype.visitTableProperty = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tablePropertyKey. -sqlVisitor.prototype.visitTablePropertyKey = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tablePropertyValue. -sqlVisitor.prototype.visitTablePropertyValue = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#constantList. -sqlVisitor.prototype.visitConstantList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#nestedConstantList. -sqlVisitor.prototype.visitNestedConstantList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#createFileFormat. -sqlVisitor.prototype.visitCreateFileFormat = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tableFileFormat. -sqlVisitor.prototype.visitTableFileFormat = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#genericFileFormat. -sqlVisitor.prototype.visitGenericFileFormat = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#storageHandler. -sqlVisitor.prototype.visitStorageHandler = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#resource. -sqlVisitor.prototype.visitResource = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#singleInsertQuery. -sqlVisitor.prototype.visitSingleInsertQuery = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#multiInsertQuery. -sqlVisitor.prototype.visitMultiInsertQuery = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#queryOrganization. -sqlVisitor.prototype.visitQueryOrganization = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#multiInsertQueryBody. -sqlVisitor.prototype.visitMultiInsertQueryBody = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#queryTermDefault. -sqlVisitor.prototype.visitQueryTermDefault = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#setOperation. -sqlVisitor.prototype.visitSetOperation = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#queryPrimaryDefault. -sqlVisitor.prototype.visitQueryPrimaryDefault = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#table. -sqlVisitor.prototype.visitTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#inlineTableDefault1. -sqlVisitor.prototype.visitInlineTableDefault1 = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#subquery. -sqlVisitor.prototype.visitSubquery = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#sortItem. -sqlVisitor.prototype.visitSortItem = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#querySpecification. -sqlVisitor.prototype.visitQuerySpecification = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#hint. -sqlVisitor.prototype.visitHint = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#hintStatement. -sqlVisitor.prototype.visitHintStatement = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#fromClause. -sqlVisitor.prototype.visitFromClause = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#aggregation. -sqlVisitor.prototype.visitAggregation = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#groupingSet. -sqlVisitor.prototype.visitGroupingSet = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#pivotClause. -sqlVisitor.prototype.visitPivotClause = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#pivotColumn. -sqlVisitor.prototype.visitPivotColumn = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#pivotValue. -sqlVisitor.prototype.visitPivotValue = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#lateralView. -sqlVisitor.prototype.visitLateralView = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#setQuantifier. -sqlVisitor.prototype.visitSetQuantifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#relation. -sqlVisitor.prototype.visitRelation = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#joinRelation. -sqlVisitor.prototype.visitJoinRelation = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#joinType. -sqlVisitor.prototype.visitJoinType = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#joinCriteria. -sqlVisitor.prototype.visitJoinCriteria = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#sample. -sqlVisitor.prototype.visitSample = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#sampleByPercentile. -sqlVisitor.prototype.visitSampleByPercentile = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#sampleByRows. -sqlVisitor.prototype.visitSampleByRows = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#sampleByBucket. -sqlVisitor.prototype.visitSampleByBucket = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#sampleByBytes. -sqlVisitor.prototype.visitSampleByBytes = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#identifierList. -sqlVisitor.prototype.visitIdentifierList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#identifierSeq. -sqlVisitor.prototype.visitIdentifierSeq = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#orderedIdentifierList. -sqlVisitor.prototype.visitOrderedIdentifierList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#orderedIdentifier. -sqlVisitor.prototype.visitOrderedIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#identifierCommentList. -sqlVisitor.prototype.visitIdentifierCommentList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#identifierComment. -sqlVisitor.prototype.visitIdentifierComment = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tableName. -sqlVisitor.prototype.visitTableName = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#aliasedQuery. -sqlVisitor.prototype.visitAliasedQuery = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#aliasedRelation. -sqlVisitor.prototype.visitAliasedRelation = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#inlineTableDefault2. -sqlVisitor.prototype.visitInlineTableDefault2 = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tableValuedFunction. -sqlVisitor.prototype.visitTableValuedFunction = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#matchRecognize. -sqlVisitor.prototype.visitMatchRecognize = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#measureColumn. -sqlVisitor.prototype.visitMeasureColumn = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#condition1. -sqlVisitor.prototype.visitCondition1 = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#variable. -sqlVisitor.prototype.visitVariable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#pattern1. -sqlVisitor.prototype.visitPattern1 = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#patternTerm. -sqlVisitor.prototype.visitPatternTerm = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#patternFactor. -sqlVisitor.prototype.visitPatternFactor = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#patternQuantifier. -sqlVisitor.prototype.visitPatternQuantifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#minRepeat. -sqlVisitor.prototype.visitMinRepeat = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#maxRepeat. -sqlVisitor.prototype.visitMaxRepeat = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#repeat. -sqlVisitor.prototype.visitRepeat = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#inlineTable. -sqlVisitor.prototype.visitInlineTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#functionTable. -sqlVisitor.prototype.visitFunctionTable = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tableAlias. -sqlVisitor.prototype.visitTableAlias = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#rowFormatSerde. -sqlVisitor.prototype.visitRowFormatSerde = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#rowFormatDelimited. -sqlVisitor.prototype.visitRowFormatDelimited = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tableIdentifier. -sqlVisitor.prototype.visitTableIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#functionIdentifier. -sqlVisitor.prototype.visitFunctionIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#namedExpression. -sqlVisitor.prototype.visitNamedExpression = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#namedExpressionSeq. -sqlVisitor.prototype.visitNamedExpressionSeq = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#expression. -sqlVisitor.prototype.visitExpression = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#logicalNot. -sqlVisitor.prototype.visitLogicalNot = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#predicated. -sqlVisitor.prototype.visitPredicated = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#exists. -sqlVisitor.prototype.visitExists = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#logicalBinary. -sqlVisitor.prototype.visitLogicalBinary = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#predicate. -sqlVisitor.prototype.visitPredicate = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#valueExpressionDefault. -sqlVisitor.prototype.visitValueExpressionDefault = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#comparison. -sqlVisitor.prototype.visitComparison = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#arithmeticBinary. -sqlVisitor.prototype.visitArithmeticBinary = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#arithmeticUnary. -sqlVisitor.prototype.visitArithmeticUnary = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#struct. -sqlVisitor.prototype.visitStruct = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#dereference. -sqlVisitor.prototype.visitDereference = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#simpleCase. -sqlVisitor.prototype.visitSimpleCase = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#columnReference. -sqlVisitor.prototype.visitColumnReference = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#rowConstructor. -sqlVisitor.prototype.visitRowConstructor = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#last. -sqlVisitor.prototype.visitLast = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#star. -sqlVisitor.prototype.visitStar = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#subscript. -sqlVisitor.prototype.visitSubscript = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#subqueryExpression. -sqlVisitor.prototype.visitSubqueryExpression = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#cast. -sqlVisitor.prototype.visitCast = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#constantDefault. -sqlVisitor.prototype.visitConstantDefault = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#lambda. -sqlVisitor.prototype.visitLambda = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#parenthesizedExpression. -sqlVisitor.prototype.visitParenthesizedExpression = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#extract. -sqlVisitor.prototype.visitExtract = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#functionCall. -sqlVisitor.prototype.visitFunctionCall = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#searchedCase. -sqlVisitor.prototype.visitSearchedCase = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#position. -sqlVisitor.prototype.visitPosition = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#first. -sqlVisitor.prototype.visitFirst = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#nullLiteral. -sqlVisitor.prototype.visitNullLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#intervalLiteral. -sqlVisitor.prototype.visitIntervalLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#typeConstructor. -sqlVisitor.prototype.visitTypeConstructor = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#numericLiteral. -sqlVisitor.prototype.visitNumericLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#booleanLiteral. -sqlVisitor.prototype.visitBooleanLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#stringLiteral. -sqlVisitor.prototype.visitStringLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#comparisonOperator. -sqlVisitor.prototype.visitComparisonOperator = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#arithmeticOperator. -sqlVisitor.prototype.visitArithmeticOperator = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#predicateOperator. -sqlVisitor.prototype.visitPredicateOperator = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#booleanValue. -sqlVisitor.prototype.visitBooleanValue = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#interval. -sqlVisitor.prototype.visitInterval = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#intervalField. -sqlVisitor.prototype.visitIntervalField = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#intervalValue. -sqlVisitor.prototype.visitIntervalValue = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#colPosition. -sqlVisitor.prototype.visitColPosition = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#complexDataType. -sqlVisitor.prototype.visitComplexDataType = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#primitiveDataType. -sqlVisitor.prototype.visitPrimitiveDataType = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#colTypeList. -sqlVisitor.prototype.visitColTypeList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#colType. -sqlVisitor.prototype.visitColType = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#dtColTypeList. -sqlVisitor.prototype.visitDtColTypeList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#dtColType. -sqlVisitor.prototype.visitDtColType = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#dtColIdentifier. -sqlVisitor.prototype.visitDtColIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#complexColTypeList. -sqlVisitor.prototype.visitComplexColTypeList = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#complexColType. -sqlVisitor.prototype.visitComplexColType = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#whenClause. -sqlVisitor.prototype.visitWhenClause = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#windows. -sqlVisitor.prototype.visitWindows = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#namedWindow. -sqlVisitor.prototype.visitNamedWindow = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#windowRef. -sqlVisitor.prototype.visitWindowRef = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#windowDef. -sqlVisitor.prototype.visitWindowDef = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#windowFrame. -sqlVisitor.prototype.visitWindowFrame = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#frameBound. -sqlVisitor.prototype.visitFrameBound = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#qualifiedName. -sqlVisitor.prototype.visitQualifiedName = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#identifier. -sqlVisitor.prototype.visitIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#unquotedIdentifier. -sqlVisitor.prototype.visitUnquotedIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#quotedIdentifierAlternative. -sqlVisitor.prototype.visitQuotedIdentifierAlternative = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#quotedIdentifier. -sqlVisitor.prototype.visitQuotedIdentifier = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#decimalLiteral. -sqlVisitor.prototype.visitDecimalLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#integerLiteral. -sqlVisitor.prototype.visitIntegerLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#bigIntLiteral. -sqlVisitor.prototype.visitBigIntLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#smallIntLiteral. -sqlVisitor.prototype.visitSmallIntLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#tinyIntLiteral. -sqlVisitor.prototype.visitTinyIntLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#doubleLiteral. -sqlVisitor.prototype.visitDoubleLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#bigDecimalLiteral. -sqlVisitor.prototype.visitBigDecimalLiteral = function(ctx) { - return this.visitChildren(ctx); -}; - - -// Visit a parse tree produced by sqlParser#nonReserved. -sqlVisitor.prototype.visitNonReserved = function(ctx) { - return this.visitChildren(ctx); -}; - - - -exports.sqlVisitor = sqlVisitor; \ No newline at end of file diff --git a/src/core/comment.js b/src/core/comment.js deleted file mode 100644 index d650ea9..0000000 --- a/src/core/comment.js +++ /dev/null @@ -1,662 +0,0 @@ -/* - * Generated by PEG.js 0.10.0. - * - * http://pegjs.org/ - */ -(function(root, factory) { - if (typeof define === "function" && define.amd) { - define([], factory); - } else if (typeof module === "object" && module.exports) { - module.exports = factory(); - } -})(this, function() { - "use strict"; - - function peg$subclass(child, parent) { - function ctor() { this.constructor = child; } - ctor.prototype = parent.prototype; - child.prototype = new ctor(); - } - - function peg$SyntaxError(message, expected, found, location) { - this.message = message; - this.expected = expected; - this.found = found; - this.location = location; - this.name = "SyntaxError"; - - if (typeof Error.captureStackTrace === "function") { - Error.captureStackTrace(this, peg$SyntaxError); - } - } - - peg$subclass(peg$SyntaxError, Error); - - peg$SyntaxError.buildMessage = function(expected, found) { - var DESCRIBE_EXPECTATION_FNS = { - literal: function(expectation) { - return "\"" + literalEscape(expectation.text) + "\""; - }, - - "class": function(expectation) { - var escapedParts = "", - i; - - for (i = 0; i < expectation.parts.length; i++) { - escapedParts += expectation.parts[i] instanceof Array - ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) - : classEscape(expectation.parts[i]); - } - - return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; - }, - - any: function(expectation) { - return "any character"; - }, - - end: function(expectation) { - return "end of input"; - }, - - other: function(expectation) { - return expectation.description; - } - }; - - function hex(ch) { - return ch.charCodeAt(0).toString(16).toUpperCase(); - } - - function literalEscape(s) { - return s - .replace(/\\/g, '\\\\') - .replace(/"/g, '\\"') - .replace(/\0/g, '\\0') - .replace(/\t/g, '\\t') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) - .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); - } - - function classEscape(s) { - return s - .replace(/\\/g, '\\\\') - .replace(/\]/g, '\\]') - .replace(/\^/g, '\\^') - .replace(/-/g, '\\-') - .replace(/\0/g, '\\0') - .replace(/\t/g, '\\t') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) - .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); - } - - function describeExpectation(expectation) { - return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); - } - - function describeExpected(expected) { - var descriptions = new Array(expected.length), - i, j; - - for (i = 0; i < expected.length; i++) { - descriptions[i] = describeExpectation(expected[i]); - } - - descriptions.sort(); - - if (descriptions.length > 0) { - for (i = 1, j = 1; i < descriptions.length; i++) { - if (descriptions[i - 1] !== descriptions[i]) { - descriptions[j] = descriptions[i]; - j++; - } - } - descriptions.length = j; - } - - switch (descriptions.length) { - case 1: - return descriptions[0]; - - case 2: - return descriptions[0] + " or " + descriptions[1]; - - default: - return descriptions.slice(0, -1).join(", ") - + ", or " - + descriptions[descriptions.length - 1]; - } - } - - function describeFound(found) { - return found ? "\"" + literalEscape(found) + "\"" : "end of input"; - } - - return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; - }; - - function peg$parse(input, options) { - options = options !== void 0 ? options : {}; - - var peg$FAILED = {}, - - peg$startRuleIndices = { start: 0 }, - peg$startRuleIndex = 0, - - peg$consts = [ - function(union_stmt) { - return {lines,text:union_stmt}; - }, - peg$anyExpectation(), - function(word) {return word}, - function(words, comment) {return ''}, - function(words, quote) {return quote}, - ";", - peg$literalExpectation(";", false), - function(words) {isSplit=true;return ";"}, - function(words, stmt) { - const text=words.join("")+stmt; - let index=Math.max(lines.length-1,0); - lines[index]=(lines[index]||'')+text; - if(isSplit){ - isSplit=false; - lines.push(''); - } - return text; - }, - function(stmt, other) { - const text=stmt.join("")+other.join("") - let index=Math.max(lines.length-1,0); - lines[index]=lines[index]+other.join(""); - return text; - }, - function(comment) { - return comment; - }, - /^[^\r\n]/, - peg$classExpectation(["\r", "\n"], true, false), - function(start, words) { - return start+words.join("") - }, - "*/", - peg$literalExpectation("*/", false), - function(start, word) {return word }, - function(start, words, end) {return start+words.join("")+end }, - "\"", - peg$literalExpectation("\"", false), - /^[^"]/, - peg$classExpectation(["\""], true, false), - function(start, words, end) {return start+words.join("")+end;}, - "'", - peg$literalExpectation("'", false), - /^[^']/, - peg$classExpectation(["'"], true, false), - "--", - peg$literalExpectation("--", false), - /^[\r\n]/, - peg$classExpectation(["\r", "\n"], false, false), - "/*", - peg$literalExpectation("/*", false), - /^[ \t\r\n]/, - peg$classExpectation([" ", "\t", "\r", "\n"], false, false) - ], - - peg$bytecode = [ - peg$decode("%;!/' 8!: !! )"), - peg$decode("%$%$%%<;&=.##&&!&'#/6#1\"\"5!7!/($8\":\"\"! )(\"'#&'#0L*%%<;&=.##&&!&'#/6#1\"\"5!7!/($8\":\"\"! )(\"'#&'#&/j#%;\"/( 8!:#!\"\" ).H &%;%/( 8!:$!\"\" ).5 &%2%\"\"6%7&/' 8!:'!!\")/)$8\":(\"\"! )(\"'#&'#0\xCD*%$%%<;&=.##&&!&'#/6#1\"\"5!7!/($8\":\"\"! )(\"'#&'#0L*%%<;&=.##&&!&'#/6#1\"\"5!7!/($8\":\"\"! )(\"'#&'#&/j#%;\"/( 8!:#!\"\" ).H &%;%/( 8!:$!\"\" ).5 &%2%\"\"6%7&/' 8!:'!!\")/)$8\":(\"\"! )(\"'#&'#&/C#$1\"\"5!7!0(*1\"\"5!7!&/)$8\":)\"\"! )(\"'#&'#"), - peg$decode("%;$.# &;#/' 8!:*!! )"), - peg$decode("%;'/E#$4+\"\"5!7,0)*4+\"\"5!7,&/)$8\":-\"\"! )(\"'#&'#"), - peg$decode("%;)/\xA3#$%%<2.\"\"6.7/=.##&&!&'#/7#1\"\"5!7!/)$8\":0\"\"$ )(\"'#&'#0S*%%<2.\"\"6.7/=.##&&!&'#/7#1\"\"5!7!/)$8\":0\"\"$ )(\"'#&'#&/3$;*/*$8#:1##\"! )(#'#(\"'#&'#"), - peg$decode("%22\"\"6273/U#$44\"\"5!750)*44\"\"5!75&/9$22\"\"6273/*$8#:6##\"! )(#'#(\"'#&'#.e &%27\"\"6778/U#$49\"\"5!7:0)*49\"\"5!7:&/9$27\"\"6778/*$8#:6##\"! )(#'#(\"'#&'#"), - peg$decode(";'.G &;).A &22\"\"6273.5 &27\"\"6778.) &2%\"\"6%7&"), - peg$decode("2;\"\"6;7<"), - peg$decode("4=\"\"5!7>"), - peg$decode("2?\"\"6?7@"), - peg$decode("2.\"\"6.7/"), - peg$decode("$;,0#*;,&"), - peg$decode("4A\"\"5!7B") - ], - - peg$currPos = 0, - peg$savedPos = 0, - peg$posDetailsCache = [{ line: 1, column: 1 }], - peg$maxFailPos = 0, - peg$maxFailExpected = [], - peg$silentFails = 0, - - peg$result; - - if ("startRule" in options) { - if (!(options.startRule in peg$startRuleIndices)) { - throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); - } - - peg$startRuleIndex = peg$startRuleIndices[options.startRule]; - } - - function text() { - return input.substring(peg$savedPos, peg$currPos); - } - - function location() { - return peg$computeLocation(peg$savedPos, peg$currPos); - } - - function expected(description, location) { - location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos) - - throw peg$buildStructuredError( - [peg$otherExpectation(description)], - input.substring(peg$savedPos, peg$currPos), - location - ); - } - - function error(message, location) { - location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos) - - throw peg$buildSimpleError(message, location); - } - - function peg$literalExpectation(text, ignoreCase) { - return { type: "literal", text: text, ignoreCase: ignoreCase }; - } - - function peg$classExpectation(parts, inverted, ignoreCase) { - return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; - } - - function peg$anyExpectation() { - return { type: "any" }; - } - - function peg$endExpectation() { - return { type: "end" }; - } - - function peg$otherExpectation(description) { - return { type: "other", description: description }; - } - - function peg$computePosDetails(pos) { - var details = peg$posDetailsCache[pos], p; - - if (details) { - return details; - } else { - p = pos - 1; - while (!peg$posDetailsCache[p]) { - p--; - } - - details = peg$posDetailsCache[p]; - details = { - line: details.line, - column: details.column - }; - - while (p < pos) { - if (input.charCodeAt(p) === 10) { - details.line++; - details.column = 1; - } else { - details.column++; - } - - p++; - } - - peg$posDetailsCache[pos] = details; - return details; - } - } - - function peg$computeLocation(startPos, endPos) { - var startPosDetails = peg$computePosDetails(startPos), - endPosDetails = peg$computePosDetails(endPos); - - return { - start: { - offset: startPos, - line: startPosDetails.line, - column: startPosDetails.column - }, - end: { - offset: endPos, - line: endPosDetails.line, - column: endPosDetails.column - } - }; - } - - function peg$fail(expected) { - if (peg$currPos < peg$maxFailPos) { return; } - - if (peg$currPos > peg$maxFailPos) { - peg$maxFailPos = peg$currPos; - peg$maxFailExpected = []; - } - - peg$maxFailExpected.push(expected); - } - - function peg$buildSimpleError(message, location) { - return new peg$SyntaxError(message, null, null, location); - } - - function peg$buildStructuredError(expected, found, location) { - return new peg$SyntaxError( - peg$SyntaxError.buildMessage(expected, found), - expected, - found, - location - ); - } - - function peg$decode(s) { - var bc = new Array(s.length), i; - - for (i = 0; i < s.length; i++) { - bc[i] = s.charCodeAt(i) - 32; - } - - return bc; - } - - function peg$parseRule(index) { - var bc = peg$bytecode[index], - ip = 0, - ips = [], - end = bc.length, - ends = [], - stack = [], - params, i; - - while (true) { - while (ip < end) { - switch (bc[ip]) { - case 0: - stack.push(peg$consts[bc[ip + 1]]); - ip += 2; - break; - - case 1: - stack.push(void 0); - ip++; - break; - - case 2: - stack.push(null); - ip++; - break; - - case 3: - stack.push(peg$FAILED); - ip++; - break; - - case 4: - stack.push([]); - ip++; - break; - - case 5: - stack.push(peg$currPos); - ip++; - break; - - case 6: - stack.pop(); - ip++; - break; - - case 7: - peg$currPos = stack.pop(); - ip++; - break; - - case 8: - stack.length -= bc[ip + 1]; - ip += 2; - break; - - case 9: - stack.splice(-2, 1); - ip++; - break; - - case 10: - stack[stack.length - 2].push(stack.pop()); - ip++; - break; - - case 11: - stack.push(stack.splice(stack.length - bc[ip + 1], bc[ip + 1])); - ip += 2; - break; - - case 12: - stack.push(input.substring(stack.pop(), peg$currPos)); - ip++; - break; - - case 13: - ends.push(end); - ips.push(ip + 3 + bc[ip + 1] + bc[ip + 2]); - - if (stack[stack.length - 1]) { - end = ip + 3 + bc[ip + 1]; - ip += 3; - } else { - end = ip + 3 + bc[ip + 1] + bc[ip + 2]; - ip += 3 + bc[ip + 1]; - } - - break; - - case 14: - ends.push(end); - ips.push(ip + 3 + bc[ip + 1] + bc[ip + 2]); - - if (stack[stack.length - 1] === peg$FAILED) { - end = ip + 3 + bc[ip + 1]; - ip += 3; - } else { - end = ip + 3 + bc[ip + 1] + bc[ip + 2]; - ip += 3 + bc[ip + 1]; - } - - break; - - case 15: - ends.push(end); - ips.push(ip + 3 + bc[ip + 1] + bc[ip + 2]); - - if (stack[stack.length - 1] !== peg$FAILED) { - end = ip + 3 + bc[ip + 1]; - ip += 3; - } else { - end = ip + 3 + bc[ip + 1] + bc[ip + 2]; - ip += 3 + bc[ip + 1]; - } - - break; - - case 16: - if (stack[stack.length - 1] !== peg$FAILED) { - ends.push(end); - ips.push(ip); - - end = ip + 2 + bc[ip + 1]; - ip += 2; - } else { - ip += 2 + bc[ip + 1]; - } - - break; - - case 17: - ends.push(end); - ips.push(ip + 3 + bc[ip + 1] + bc[ip + 2]); - - if (input.length > peg$currPos) { - end = ip + 3 + bc[ip + 1]; - ip += 3; - } else { - end = ip + 3 + bc[ip + 1] + bc[ip + 2]; - ip += 3 + bc[ip + 1]; - } - - break; - - case 18: - ends.push(end); - ips.push(ip + 4 + bc[ip + 2] + bc[ip + 3]); - - if (input.substr(peg$currPos, peg$consts[bc[ip + 1]].length) === peg$consts[bc[ip + 1]]) { - end = ip + 4 + bc[ip + 2]; - ip += 4; - } else { - end = ip + 4 + bc[ip + 2] + bc[ip + 3]; - ip += 4 + bc[ip + 2]; - } - - break; - - case 19: - ends.push(end); - ips.push(ip + 4 + bc[ip + 2] + bc[ip + 3]); - - if (input.substr(peg$currPos, peg$consts[bc[ip + 1]].length).toLowerCase() === peg$consts[bc[ip + 1]]) { - end = ip + 4 + bc[ip + 2]; - ip += 4; - } else { - end = ip + 4 + bc[ip + 2] + bc[ip + 3]; - ip += 4 + bc[ip + 2]; - } - - break; - - case 20: - ends.push(end); - ips.push(ip + 4 + bc[ip + 2] + bc[ip + 3]); - - if (peg$consts[bc[ip + 1]].test(input.charAt(peg$currPos))) { - end = ip + 4 + bc[ip + 2]; - ip += 4; - } else { - end = ip + 4 + bc[ip + 2] + bc[ip + 3]; - ip += 4 + bc[ip + 2]; - } - - break; - - case 21: - stack.push(input.substr(peg$currPos, bc[ip + 1])); - peg$currPos += bc[ip + 1]; - ip += 2; - break; - - case 22: - stack.push(peg$consts[bc[ip + 1]]); - peg$currPos += peg$consts[bc[ip + 1]].length; - ip += 2; - break; - - case 23: - stack.push(peg$FAILED); - if (peg$silentFails === 0) { - peg$fail(peg$consts[bc[ip + 1]]); - } - ip += 2; - break; - - case 24: - peg$savedPos = stack[stack.length - 1 - bc[ip + 1]]; - ip += 2; - break; - - case 25: - peg$savedPos = peg$currPos; - ip++; - break; - - case 26: - params = bc.slice(ip + 4, ip + 4 + bc[ip + 3]); - for (i = 0; i < bc[ip + 3]; i++) { - params[i] = stack[stack.length - 1 - params[i]]; - } - - stack.splice( - stack.length - bc[ip + 2], - bc[ip + 2], - peg$consts[bc[ip + 1]].apply(null, params) - ); - - ip += 4 + bc[ip + 3]; - break; - - case 27: - stack.push(peg$parseRule(bc[ip + 1])); - ip += 2; - break; - - case 28: - peg$silentFails++; - ip++; - break; - - case 29: - peg$silentFails--; - ip++; - break; - - default: - throw new Error("Invalid opcode: " + bc[ip] + "."); - } - } - - if (ends.length > 0) { - end = ends.pop(); - ip = ips.pop(); - } else { - break; - } - } - - return stack[0]; - } - - - let lines=[]; - let isSplit=false; - - - peg$result = peg$parseRule(peg$startRuleIndex); - - if (peg$result !== peg$FAILED && peg$currPos === input.length) { - return peg$result; - } else { - if (peg$result !== peg$FAILED && peg$currPos < input.length) { - peg$fail(peg$endExpectation()); - } - - throw peg$buildStructuredError( - peg$maxFailExpected, - peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, - peg$maxFailPos < input.length - ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) - : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) - ); - } - } - - return { - SyntaxError: peg$SyntaxError, - parse: peg$parse - }; -}); diff --git a/src/core/common/baseParser.ts b/src/core/common/baseParser.ts new file mode 100644 index 0000000..5a05688 --- /dev/null +++ b/src/core/common/baseParser.ts @@ -0,0 +1,63 @@ +import { Token, Lexer } from 'antlr4'; + +import ParserErrorListener, { ParserError } from './parserErrorListener'; + +/** + * Custom Parser class, subclass needs extends it. + */ +export default abstract class BaseParser { + /** + * Create antrl4 Lexer object + * @param input source string + */ + public abstract createLexer(input: string): Lexer; + + /** + * Create Parser by lexer + * @param lexer Lexer + */ + public abstract createParserFromLexer(lexer: Lexer); + + public getAllTokens(input: string): Token[] { + return this.createLexer(input).getAllTokens(); + }; + + public createParser(input: string) { + const lexer = this.createLexer(input); + return this.createParserFromLexer(lexer); + } + + public parserTree(input: string) { + const lexer = this.createLexer(input); + const parser: any = this.createParserFromLexer(lexer); + parser.buildParseTrees = true; + return parser; + } + + /** + * It convert tree to string, it's convenient to use in unit test. + * @param string input + */ + public parserTreeToString(input: string): string { + const parser = this.parserTree(input); + const tree = parser.statement(); + return tree.toStringTree(parser.ruleNames); + } + + public validate(input: string): ParserError[] { + const lexerError = []; const syntaxErrors = []; + const lexer = this.createLexer(input); + lexer.removeErrorListeners(); + lexer.addErrorListener(new ParserErrorListener(lexerError)); + + const parser: any = this.createParserFromLexer(lexer); + parser.buildParseTrees = true; + + parser.removeErrorListeners(); + parser.addErrorListener(new ParserErrorListener(syntaxErrors)); + + parser.statement(); + + return lexerError.concat(syntaxErrors); + } +} diff --git a/src/core/common/parserErrorListener.ts b/src/core/common/parserErrorListener.ts new file mode 100644 index 0000000..a511092 --- /dev/null +++ b/src/core/common/parserErrorListener.ts @@ -0,0 +1,36 @@ +import { Token, Recognizer } from 'antlr4'; +import { ErrorListener } from 'antlr4/error'; + +export interface ParserError { + startLine: number; + endLine: number; + startCol: number; + endCol: number; + message: string; +} + +export default class ParserErrorListener extends ErrorListener { + private _errors: ParserError[] = []; + + constructor(errors: ParserError[]) { + super(); + this._errors = errors; + } + + syntaxError( + recognizer: Recognizer, offendingSymbol: Token, line: number, + charPositionInLine: number, msg: string, e: any, + ) { + let endCol = charPositionInLine + 1; + if (offendingSymbol.text !== null) { + endCol = charPositionInLine + offendingSymbol.text.length; + } + this._errors.push({ + startLine: line, + endLine: line, + startCol: charPositionInLine, + endCol: endCol, + message: msg, + }); + } +} diff --git a/src/core/index.ts b/src/core/index.ts new file mode 100644 index 0000000..2eb4d9c --- /dev/null +++ b/src/core/index.ts @@ -0,0 +1,2 @@ +export * as mySQLParser from './mysql'; +export * as tSQLParser from './tsql'; diff --git a/src/core/mysql.ts b/src/core/mysql.ts new file mode 100644 index 0000000..9a4ac09 --- /dev/null +++ b/src/core/mysql.ts @@ -0,0 +1,17 @@ +import { InputStream, CommonTokenStream, Lexer } from 'antlr4'; +import { MySQLLexer } from '../parser/MySQLLexer'; +import { MySQLParser } from '../parser/MySQLParser'; + +import BaseParser from './common/baseParser'; + +export default class MySQL extends BaseParser { + public createLexer(input: string): Lexer { + const chars = new InputStream(input.toUpperCase()); + const lexer = new MySQLLexer(chars) as Lexer; + return lexer; + } + public createParserFromLexer(lexer: Lexer) { + const tokenStream = new CommonTokenStream(lexer); + return new MySQLParser(tokenStream); + } +} diff --git a/src/core/parse/generic/genericAutocompleteParser.js b/src/core/parse/generic/genericAutocompleteParser.js deleted file mode 100644 index 85564db..0000000 --- a/src/core/parse/generic/genericAutocompleteParser.js +++ /dev/null @@ -1,3578 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -import SqlParseSupport from './sqlParseSupport'; - -var genericAutocompleteParser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13,14,20,24,28,40,53,54,69,71,73,77,87,88,99,100,101,104,105,117,118,121,132,134,142,152,157,158,163,168,170,183,185,187,188,189,190,191,192,193,194,217,218,225,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,357,500,514],$V1=[2,360],$V2=[163,225],$V3=[2,260],$V4=[1,5],$V5=[1,93],$V6=[1,134],$V7=[1,162],$V8=[1,101],$V9=[1,27],$Va=[1,166],$Vb=[1,94],$Vc=[1,47],$Vd=[1,67],$Ve=[1,10],$Vf=[1,11],$Vg=[1,13],$Vh=[1,72],$Vi=[1,73],$Vj=[1,26],$Vk=[1,16],$Vl=[1,18],$Vm=[1,69],$Vn=[1,99],$Vo=[1,80],$Vp=[1,34],$Vq=[1,83],$Vr=[1,109],$Vs=[1,38],$Vt=[1,88],$Vu=[1,171],$Vv=[1,82],$Vw=[1,175],$Vx=[1,125],$Vy=[1,159],$Vz=[1,17],$VA=[1,22],$VB=[1,55],$VC=[1,66],$VD=[1,86],$VE=[1,40],$VF=[1,65],$VG=[1,78],$VH=[1,61],$VI=[1,92],$VJ=[1,172],$VK=[1,63],$VL=[1,75],$VM=[1,85],$VN=[1,113],$VO=[1,9],$VP=[1,12],$VQ=[1,14],$VR=[1,15],$VS=[1,19],$VT=[1,20],$VU=[1,21],$VV=[1,23],$VW=[1,24],$VX=[1,25],$VY=[1,28],$VZ=[1,29],$V_=[1,30],$V$=[1,31],$V01=[1,32],$V11=[1,33],$V21=[1,35],$V31=[1,36],$V41=[1,37],$V51=[1,39],$V61=[1,41],$V71=[1,42],$V81=[1,43],$V91=[1,44],$Va1=[1,45],$Vb1=[1,46],$Vc1=[1,48],$Vd1=[1,49],$Ve1=[1,50],$Vf1=[1,51],$Vg1=[1,52],$Vh1=[1,53],$Vi1=[1,54],$Vj1=[1,56],$Vk1=[1,57],$Vl1=[1,58],$Vm1=[1,59],$Vn1=[1,60],$Vo1=[1,62],$Vp1=[1,64],$Vq1=[1,68],$Vr1=[1,70],$Vs1=[1,71],$Vt1=[1,74],$Vu1=[1,76],$Vv1=[1,77],$Vw1=[1,79],$Vx1=[1,81],$Vy1=[1,84],$Vz1=[1,87],$VA1=[1,89],$VB1=[1,90],$VC1=[1,91],$VD1=[1,95],$VE1=[1,96],$VF1=[1,97],$VG1=[1,98],$VH1=[1,100],$VI1=[1,102],$VJ1=[1,103],$VK1=[1,104],$VL1=[1,105],$VM1=[1,106],$VN1=[1,107],$VO1=[1,108],$VP1=[1,110],$VQ1=[1,111],$VR1=[1,112],$VS1=[1,114],$VT1=[1,115],$VU1=[1,116],$VV1=[1,135],$VW1=[1,136],$VX1=[1,158],$VY1=[1,156],$VZ1=[2,458],$V_1=[1,192],$V$1=[1,190],$V02=[1,185],$V12=[1,191],$V22=[1,187],$V32=[1,188],$V42=[1,196],$V52=[73,163,225],$V62=[2,633],$V72=[1,204],$V82=[2,484],$V92=[1,211],$Va2=[2,73,163,225],$Vb2=[1,214],$Vc2=[1,217],$Vd2=[1,231],$Ve2=[2,658],$Vf2=[1,233],$Vg2=[1,234],$Vh2=[1,242],$Vi2=[1,243],$Vj2=[1,244],$Vk2=[1,247],$Vl2=[1,254],$Vm2=[2,13,20,24,28,40,53,54,69,71,73,77,87,88,99,100,101,104,105,117,118,121,132,134,142,152,157,158,163,170,183,185,187,188,189,190,191,192,193,194,217,218,225,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,357,500,514],$Vn2=[183,235],$Vo2=[2,13,14,28,50,53,54,69,71,73,77,87,99,100,101,104,105,112,117,121,132,134,142,157,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,235,240,241,242,244,245,246,247,250,254,255,257,258,259,262,264,265,266,269,270,271,272,275,276,277,280,281,283,285,288,290,291,292,294,299,301,302,315,390],$Vp2=[2,634],$Vq2=[2,73,163,225,294],$Vr2=[2,646],$Vs2=[2,71,73,163,170,225],$Vt2=[2,14,71,73,77,163,170,225],$Vu2=[1,279],$Vv2=[1,280],$Vw2=[1,285],$Vx2=[13,14,163,225],$Vy2=[13,163,225],$Vz2=[13,14,105,142,163,225,229,230,231,244],$VA2=[2,581],$VB2=[13,105,142,163,225,229,230,231,244],$VC2=[1,303],$VD2=[1,366],$VE2=[1,367],$VF2=[1,315],$VG2=[1,310],$VH2=[1,322],$VI2=[1,328],$VJ2=[1,330],$VK2=[1,331],$VL2=[1,304],$VM2=[1,311],$VN2=[1,306],$VO2=[1,313],$VP2=[1,364],$VQ2=[1,312],$VR2=[1,346],$VS2=[1,370],$VT2=[1,316],$VU2=[1,347],$VV2=[1,358],$VW2=[1,314],$VX2=[1,369],$VY2=[1,329],$VZ2=[1,371],$V_2=[1,372],$V$2=[1,373],$V03=[1,374],$V13=[1,359],$V23=[1,368],$V33=[1,363],$V43=[1,365],$V53=[1,375],$V63=[1,376],$V73=[1,377],$V83=[2,14,53,54,71,73,77,87,88,99,104,105,142,158,170,181,229,230,231,232,233,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$V93=[2,508],$Va3=[1,388],$Vb3=[14,105,142,229,230,231,244],$Vc3=[14,105,142,163,225,229,230,231,244,268],$Vd3=[14,105,142,163,225,229,230,231,244],$Ve3=[2,505],$Vf3=[1,396],$Vg3=[2,355],$Vh3=[1,403],$Vi3=[2,16],$Vj3=[1,415],$Vk3=[1,424],$Vl3=[1,420],$Vm3=[1,421],$Vn3=[1,422],$Vo3=[1,423],$Vp3=[1,417],$Vq3=[1,416],$Vr3=[1,438],$Vs3=[1,439],$Vt3=[2,71,73,77,163,170,225],$Vu3=[1,466],$Vv3=[1,461],$Vw3=[1,462],$Vx3=[1,464],$Vy3=[1,463],$Vz3=[1,473],$VA3=[1,467],$VB3=[1,474],$VC3=[1,475],$VD3=[1,465],$VE3=[1,476],$VF3=[1,483],$VG3=[1,490],$VH3=[2,13,28,50,53,54,69,71,73,77,87,100,101,105,117,132,134,142,157,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,235,240,241,242,244,245,255,258,259,264,265,266,269,272,275,276,277,280,281,290,294,301,302,390],$VI3=[1,496],$VJ3=[73,163,225,294],$VK3=[2,272],$VL3=[1,497],$VM3=[1,504],$VN3=[1,519],$VO3=[1,508],$VP3=[1,518],$VQ3=[1,510],$VR3=[1,511],$VS3=[1,512],$VT3=[1,509],$VU3=[1,515],$VV3=[1,514],$VW3=[1,516],$VX3=[1,513],$VY3=[1,521],$VZ3=[1,520],$V_3=[2,284],$V$3=[2,14,73,77,163,175,225,264,294],$V04=[2,73,163,225,264,294],$V14=[77,264],$V24=[2,1010],$V34=[1,544],$V44=[1,547],$V54=[1,532],$V64=[1,529],$V74=[1,530],$V84=[1,531],$V94=[1,528],$Va4=[1,538],$Vb4=[1,537],$Vc4=[1,536],$Vd4=[1,539],$Ve4=[1,534],$Vf4=[1,533],$Vg4=[1,527],$Vh4=[1,535],$Vi4=[1,549],$Vj4=[1,548],$Vk4=[2,906],$Vl4=[2,73,77,163,225,264,294],$Vm4=[1,566],$Vn4=[1,557],$Vo4=[1,554],$Vp4=[1,555],$Vq4=[1,556],$Vr4=[1,553],$Vs4=[1,563],$Vt4=[1,562],$Vu4=[1,561],$Vv4=[1,564],$Vw4=[1,559],$Vx4=[1,558],$Vy4=[1,560],$Vz4=[1,567],$VA4=[2,14,28,53,54,69,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$VB4=[1,574],$VC4=[1,578],$VD4=[1,584],$VE4=[1,595],$VF4=[1,598],$VG4=[2,28,53,54,69,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,276,277,280,281,290,294,301,302,390],$VH4=[2,866],$VI4=[1,601],$VJ4=[2,14,28,53,54,69,71,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$VK4=[2,876],$VL4=[2,1054],$VM4=[1,609],$VN4=[1,614],$VO4=[2,14,28,50,53,54,69,71,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,235,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$VP4=[2,14,28,53,54,69,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,278,280,281,283,290,294,301,302,390],$VQ4=[1,625],$VR4=[1,624],$VS4=[1,628],$VT4=[1,627],$VU4=[117,163,225],$VV4=[2,555],$VW4=[2,28,53,54,73,77,105,117,132,142,157,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],$VX4=[2,41],$VY4=[1,652],$VZ4=[1,673],$V_4=[105,142,163,225,229,230,231],$V$4=[2,14,28,50,73,77,87,88,101,163,175,187,188,189,190,191,192,193,194,225,264,265,266,272,275,277,294,302],$V05=[1,697],$V15=[170,357],$V25=[2,988],$V35=[1,710],$V45=[1,707],$V55=[1,708],$V65=[1,709],$V75=[1,706],$V85=[1,716],$V95=[1,715],$Va5=[1,714],$Vb5=[1,717],$Vc5=[1,712],$Vd5=[1,711],$Ve5=[1,705],$Vf5=[1,713],$Vg5=[1,722],$Vh5=[1,726],$Vi5=[2,28,53,54,69,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$Vj5=[1,727],$Vk5=[14,163,225,302],$Vl5=[2,1188],$Vm5=[163,225,302],$Vn5=[1,739],$Vo5=[14,77,163,225,264,302],$Vp5=[163,225,264,302],$Vq5=[77,163,225,264,302],$Vr5=[2,14,50,73,77,183],$Vs5=[1,745],$Vt5=[73,163,225,265,266,272,277,294],$Vu5=[2,672],$Vv5=[1,753],$Vw5=[2,73,163,225,265,266,272,277,294],$Vx5=[1,757],$Vy5=[1,787],$Vz5=[1,804],$VA5=[1,806],$VB5=[88,256,261,293],$VC5=[2,903],$VD5=[2,14,73,77,163,175,187,188,189,190,191,192,193,194,225,264,265,266,272,275,277,294,302],$VE5=[2,73,77,163,187,188,189,190,191,192,193,194,225,264,265,266,272,275,277,294,302],$VF5=[1,857],$VG5=[2,14,28,53,54,73,77,87,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$VH5=[2,734],$VI5=[2,28,53,54,73,77,87,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$VJ5=[2,28,53,54,73,77,87,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,234,240,242,244,245,255,258,259,264,265,266,269,272,276,277,290,294,301,302,390],$VK5=[1,880],$VL5=[2,735],$VM5=[2,736],$VN5=[1,881],$VO5=[2,14,28,53,54,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$VP5=[2,737],$VQ5=[2,28,53,54,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$VR5=[1,886],$VS5=[1,889],$VT5=[1,888],$VU5=[1,900],$VV5=[1,896],$VW5=[1,899],$VX5=[1,898],$VY5=[1,903],$VZ5=[2,14,258,259,301],$V_5=[2,258,259],$V$5=[1,916],$V06=[1,922],$V16=[1,923],$V26=[1,931],$V36=[1,936],$V46=[1,941],$V56=[1,940],$V66=[1,944],$V76=[1,949],$V86=[2,14,28,50,53,54,69,73,77,87,88,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,275,276,277,280,281,283,290,294,301,302,390],$V96=[2,28,53,54,69,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,275,276,277,280,281,290,294,301,302,390],$Va6=[1,950],$Vb6=[14,163,225],$Vc6=[2,51],$Vd6=[1,962],$Ve6=[14,28,163,225],$Vf6=[2,155],$Vg6=[28,163,225],$Vh6=[1,969],$Vi6=[14,28,117,163,225],$Vj6=[2,71],$Vk6=[28,117,163,225],$Vl6=[1,977],$Vm6=[1,978],$Vn6=[14,28,50,69,71,117,163,225],$Vo6=[2,560],$Vp6=[28,50,69,71,117,163,225],$Vq6=[14,28,50],$Vr6=[2,207],$Vs6=[28,50],$Vt6=[1,988],$Vu6=[2,503],$Vv6=[1,991],$Vw6=[2,242],$Vx6=[1,995],$Vy6=[1,1002],$Vz6=[73,77],$VA6=[2,250],$VB6=[1,1015],$VC6=[105,142,229,230,231,244],$VD6=[1,1019],$VE6=[2,28,53,54,73,77,87,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$VF6=[2,28,53,54,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$VG6=[53,54,71,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300],$VH6=[2,73,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294],$VI6=[2,665],$VJ6=[1,1095],$VK6=[1,1098],$VL6=[1,1100],$VM6=[1,1094],$VN6=[1,1097],$VO6=[1,1099],$VP6=[1,1096],$VQ6=[1,1101],$VR6=[73,163,225,266,272,277,294],$VS6=[2,677],$VT6=[1,1105],$VU6=[2,673],$VV6=[2,73,163,187,188,189,190,191,192,193,194,225,266,272,277,294],$VW6=[1,1110],$VX6=[2,14,73,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294],$VY6=[2,668],$VZ6=[2,73,163,225,265,266,272,277,294,302],$V_6=[2,14,73,77,163,225,265,266,272,277,294,302],$V$6=[2,73,77,163,225,265,266,272,277,294,302],$V07=[14,73,77,163,225,265,266,272,277,294,302],$V17=[2,934],$V27=[1,1125],$V37=[1,1127],$V47=[1,1129],$V57=[1,1124],$V67=[1,1128],$V77=[1,1126],$V87=[1,1130],$V97=[2,14,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,275,277,294,302],$Va7=[2,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,275,277,294,302],$Vb7=[2,14,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],$Vc7=[2,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],$Vd7=[2,285],$Ve7=[1,1145],$Vf7=[2,1197],$Vg7=[2,1198],$Vh7=[2,1199],$Vi7=[1,1148],$Vj7=[2,287],$Vk7=[1,1149],$Vl7=[1,1151],$Vm7=[1,1150],$Vn7=[2,904],$Vo7=[2,14,28,53,54,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$Vp7=[2,744],$Vq7=[2,28,53,54,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$Vr7=[2,745],$Vs7=[2,746],$Vt7=[2,747],$Vu7=[2,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,234,240,242,244,245,255,258,259,264,265,266,269,272,276,277,290,294,301,302,390],$Vv7=[2,14,28,53,54,73,77,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$Vw7=[2,754],$Vx7=[2,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$Vy7=[2,755],$Vz7=[2,756],$VA7=[2,757],$VB7=[2,758],$VC7=[2,28,50,53,54,69,71,73,77,87,100,101,105,117,134,142,163,170,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,275,276,277,278,280,281,290,294,301,302,390],$VD7=[1,1182],$VE7=[2,258,259,301],$VF7=[1,1202],$VG7=[1,1204],$VH7=[1,1206],$VI7=[14,73,77,277],$VJ7=[2,850],$VK7=[2,73,277],$VL7=[73,277],$VM7=[2,1065],$VN7=[1,1217],$VO7=[14,278],$VP7=[1,1218],$VQ7=[1,1236],$VR7=[2,42],$VS7=[2,193],$VT7=[1,1251],$VU7=[1,1271],$VV7=[2,236],$VW7=[1,1286],$VX7=[1,1285],$VY7=[2,73],$VZ7=[2,28,53,54,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$V_7=[2,28,53,54,73,77,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$V$7=[1,1311],$V08=[2,73,77,277],$V18=[2,1161],$V28=[2,1186],$V38=[1,1322],$V48=[1,1323],$V58=[1,1325],$V68=[2,14,71,73,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,244,294],$V78=[1,1327],$V88=[1,1330],$V98=[1,1332],$Va8=[1,1335],$Vb8=[73,163,225,272,277,294],$Vc8=[2,1109],$Vd8=[1,1339],$Ve8=[2,678],$Vf8=[2,73,163,187,188,189,190,191,192,193,194,225,272,277,294],$Vg8=[1,1344],$Vh8=[2,731],$Vi8=[2,938],$Vj8=[1,1362],$Vk8=[2,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294,302],$Vl8=[1,1396],$Vm8=[1,1395],$Vn8=[2,14,28,53,54,69,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,275,276,277,280,281,283,290,294,301,302,390],$Vo8=[1,1413],$Vp8=[1,1427],$Vq8=[2,1071],$Vr8=[1,1439],$Vs8=[1,1442],$Vt8=[2,28,53,54,69,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,276,277,278,280,281,290,294,301,302,390],$Vu8=[1,1450],$Vv8=[1,1451],$Vw8=[1,1452],$Vx8=[1,1453],$Vy8=[1,1454],$Vz8=[1,1455],$VA8=[1,1456],$VB8=[1,1457],$VC8=[1,1458],$VD8=[1,1459],$VE8=[1,1460],$VF8=[1,1461],$VG8=[1,1469],$VH8=[1,1473],$VI8=[1,1477],$VJ8=[2,197],$VK8=[1,1490],$VL8=[2,79],$VM8=[1,1508],$VN8=[1,1509],$VO8=[1,1510],$VP8=[1,1511],$VQ8=[2,73,77],$VR8=[1,1513],$VS8=[1,1514],$VT8=[1,1515],$VU8=[1,1519],$VV8=[14,73,77],$VW8=[1,1524],$VX8=[2,969],$VY8=[1,1545],$VZ8=[1,1546],$V_8=[1,1547],$V$8=[1,1548],$V09=[1,1549],$V19=[1,1550],$V29=[1,1551],$V39=[1,1552],$V49=[73,163,225,272,294],$V59=[2,706],$V69=[2,1110],$V79=[2,73,163,187,188,189,190,191,192,193,194,225,272,294],$V89=[272,277],$V99=[14,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294,302],$Va9=[1,1586],$Vb9=[2,71,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,277,294,302],$Vc9=[1,1603],$Vd9=[2,288],$Ve9=[2,286],$Vf9=[1,1610],$Vg9=[2,753],$Vh9=[2,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$Vi9=[2,1228],$Vj9=[2,851],$Vk9=[2,1076],$Vl9=[1,1632],$Vm9=[1,1631],$Vn9=[2,14,50,73,77,87,88,101],$Vo9=[2,617],$Vp9=[1,1647],$Vq9=[2,93],$Vr9=[1,1675],$Vs9=[1,1676],$Vt9=[1,1680],$Vu9=[2,50,73,77,87,88,101],$Vv9=[2,211],$Vw9=[2,14,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294,302],$Vx9=[2,724],$Vy9=[2,707],$Vz9=[2,73,163,187,188,189,190,191,192,193,194,225,294],$VA9=[1,1714],$VB9=[2,1111],$VC9=[2,679],$VD9=[2,14,73,77,163,225,266,272,277,294],$VE9=[2,694],$VF9=[1,1736],$VG9=[2,73,77,163,187,188,189,190,191,192,193,194,225,266,272,277,294],$VH9=[2,741],$VI9=[2,752],$VJ9=[14,245,489],$VK9=[2,1067],$VL9=[1,1767],$VM9=[2,80],$VN9=[2,94],$VO9=[2,14,50,73,77,87,88],$VP9=[1,1784],$VQ9=[1,1786],$VR9=[1,1790],$VS9=[1,1800],$VT9=[1,1794],$VU9=[2,970],$VV9=[2,725],$VW9=[1,1814],$VX9=[1,1813],$VY9=[1,1817],$VZ9=[14,73,240,252,295,489],$V_9=[2,1086],$V$9=[2,708],$V0a=[2,14,73,77,121,163,187,188,189,190,191,192,193,194,225,272,283,294],$V1a=[2,721],$V2a=[1,1845],$V3a=[1,1846],$V4a=[2,73,77,163,187,188,189,190,191,192,193,194,225,272,294],$V5a=[2,73,240,252,295,489],$V6a=[1,1851],$V7a=[1,1858],$V8a=[1,1863],$V9a=[1,1866],$Vaa=[1,1868],$Vba=[2,101],$Vca=[1,1875],$Vda=[1,1874],$Vea=[1,1880],$Vfa=[2,77,101],$Vga=[1,1886],$Vha=[2,77,101,105,142,229,230,231,244],$Via=[1,1888],$Vja=[2,212],$Vka=[2,14,73,163,187,188,189,190,191,192,193,194,225,294],$Vla=[2,695],$Vma=[14,73,240],$Vna=[2,1096],$Voa=[1,1903],$Vpa=[1,1904],$Vqa=[1,1905],$Vra=[2,73,240],$Vsa=[1,1912],$Vta=[1,1916],$Vua=[1,1917],$Vva=[28,71,163,225],$Vwa=[2,1101],$Vxa=[1,1950],$Vya=[1,1951],$Vza=[1,1953],$VAa=[14,263,279],$VBa=[1,1965],$VCa=[1,1966],$VDa=[2,1078],$VEa=[2,14,73,240],$VFa=[2,191],$VGa=[2,192],$VHa=[14,53,54,71,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300],$VIa=[1,2009],$VJa=[1,2011],$VKa=[2,179],$VLa=[2,178],$VMa=[2,14,73],$VNa=[2,177]; -var parser = {trace: function trace () { }, -yy: {}, -symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"CreateStatement":5,"DropStatement":6,"SetSpecification":7,"UseStatement":8,"DataDefinition_EDIT":9,"AlterStatement_EDIT":10,"CreateStatement_EDIT":11,"DropStatement_EDIT":12,"SET":13,"CURSOR":14,"UseStatement_EDIT":15,"AlterTable":16,"AlterView":17,"AlterTable_EDIT":18,"AlterView_EDIT":19,"ALTER":20,"AlterTableLeftSide":21,"PartitionSpec":22,"AlterTableLeftSide_EDIT":23,"TABLE":24,"SchemaQualifiedTableIdentifier":25,"SchemaQualifiedTableIdentifier_EDIT":26,"AlterViewLeftSide":27,"AS":28,"QuerySpecification":29,"AlterViewLeftSide_EDIT":30,"QuerySpecification_EDIT":31,"VIEW":32,"DatabaseDefinition":33,"TableDefinition":34,"ViewDefinition":35,"RoleDefinition":36,"DatabaseDefinition_EDIT":37,"TableDefinition_EDIT":38,"ViewDefinition_EDIT":39,"CREATE":40,"DatabaseOrSchema":41,"OptionalIfNotExists":42,"RegularIdentifier":43,"DatabaseDefinitionOptionals":44,"OptionalIfNotExists_EDIT":45,"DatabaseDefinitionOptionals_EDIT":46,"OptionalComment":47,"OptionalComment_INVALID":48,"Comment":49,"COMMENT":50,"QuotedValue":51,"Comment_INVALID":52,"SINGLE_QUOTE":53,"DOUBLE_QUOTE":54,"VALUE":55,"TableDefinitionRightPart":56,"TableDefinitionRightPart_EDIT":57,"TableIdentifierAndOptionalColumnSpecification":58,"OptionalPartitionedBy":59,"OptionalAsSelectStatement":60,"TableIdentifierAndOptionalColumnSpecification_EDIT":61,"PartitionedBy_EDIT":62,"OptionalAsSelectStatement_EDIT":63,"SchemaQualifiedIdentifier":64,"OptionalColumnSpecificationsOrLike":65,"OptionalColumnSpecificationsOrLike_EDIT":66,"SchemaQualifiedIdentifier_EDIT":67,"ParenthesizedColumnSpecificationList":68,"LIKE":69,"ParenthesizedColumnSpecificationList_EDIT":70,"(":71,"ColumnSpecificationList":72,")":73,"ColumnSpecificationList_EDIT":74,"RightParenthesisOrError":75,"ColumnSpecification":76,",":77,"ColumnSpecification_EDIT":78,"ColumnIdentifier":79,"ColumnDataType":80,"OptionalColumnOptions":81,"ColumnDataType_EDIT":82,"ColumnOptions_EDIT":83,"ColumnOptions":84,"ColumnOption":85,"ColumnOption_EDIT":86,"NOT":87,"NULL":88,"PrimitiveType":89,"ArrayType":90,"MapType":91,"StructType":92,"ArrayType_INVALID":93,"MapType_INVALID":94,"StructType_INVALID":95,"ArrayType_EDIT":96,"MapType_EDIT":97,"StructType_EDIT":98,"ARRAY":99,"<":100,">":101,"AnyCursor":102,"GreaterThanOrError":103,"MAP":104,"STRUCT":105,"StructDefinitionList":106,"StructDefinitionList_EDIT":107,"StructDefinition":108,"StructDefinition_EDIT":109,"Commas":110,"RegularOrBacktickedIdentifier":111,":":112,"ColumnDataTypeList":113,"ColumnDataTypeList_EDIT":114,"ColumnDataTypeListInner_EDIT":115,"PartitionedBy":116,"PARTITION":117,"BY":118,"RangeClause":119,"RangeClause_EDIT":120,"RANGE":121,"ParenthesizedColumnList":122,"ParenthesizedPartitionValuesList":123,"ParenthesizedColumnList_EDIT":124,"ParenthesizedPartitionValuesList_EDIT":125,"PartitionValueList":126,"PartitionValueList_EDIT":127,"PartitionValue":128,"PartitionValue_EDIT":129,"ValueExpression":130,"LessThanOrEqualTo":131,"VALUES":132,"ValueExpression_EDIT":133,"COMPARISON_OPERATOR":134,"CommitLocations":135,"OptionalParenthesizedViewColumnList":136,"ParenthesizedViewColumnList_EDIT":137,"ParenthesizedViewColumnList":138,"ViewColumnList":139,"ViewColumnList_EDIT":140,"ColumnReference":141,"ROLE":142,"DropDatabaseStatement":143,"DropRoleStatement":144,"DropTableStatement":145,"DropViewStatement":146,"TruncateTableStatement":147,"DropDatabaseStatement_EDIT":148,"DropTableStatement_EDIT":149,"DropViewStatement_EDIT":150,"TruncateTableStatement_EDIT":151,"DROP":152,"OptionalIfExists":153,"OptionalCascade":154,"OptionalIfExists_EDIT":155,"OptionalPurge":156,"PURGE":157,"TRUNCATE":158,"OptionalPartitionSpec":159,"SqlStatements":160,"NonStartingToken":161,"SqlStatement":162,";":163,"NewStatement":164,"SqlStatement_EDIT":165,"CommonTableExpression":166,"DataManipulation_EDIT":167,"SetSpecification_EDIT":168,"SelectStatement":169,"SELECT":170,"OptionalAllOrDistinct":171,"SelectList_ERROR":172,"TableExpression":173,"SelectList":174,"TableExpression_ERROR":175,"SelectStatement_EDIT":176,"SelectList_ERROR_EDIT":177,"TableExpression_EDIT":178,"SelectList_EDIT":179,"ErrorList":180,"Errors":181,"SetOption":182,"=":183,"SetValue":184,"ALL":185,"JoinType_EDIT":186,"FULL":187,"LEFT":188,"RIGHT":189,"CROSS":190,"JOIN":191,"OUTER":192,"INNER":193,"SEMI":194,"OptionalSelectConditions_EDIT":195,"WhereClause":196,"OptionalGroupByClause":197,"OptionalHavingClause":198,"OptionalOrderByClause":199,"OptionalLimitClause":200,"OptionalWhereClause":201,"HavingClause":202,"OrderByClause":203,"LimitClause":204,"GroupByClause_EDIT":205,"HavingClause_EDIT":206,"OrderByClause_EDIT":207,"LimitClause_EDIT":208,"GroupByClause":209,"WhereClause_EDIT":210,"DataManipulation":211,"InsertStatement":212,"UpdateStatement":213,"InsertValuesStatement":214,"InsertValuesStatement_EDIT":215,"UpdateStatement_EDIT":216,"INSERT":217,"INTO":218,"OptionalTable":219,"InsertValuesList":220,"ParenthesizedRowValuesList":221,"RowValuesList":222,"InValueList":223,"SqlSyntax":224,"EOF":225,"SqlAutocomplete":226,"SqlStatements_EDIT":227,"NonReservedKeyword":228,"OPTION":229,"REGULAR_IDENTIFIER":230,"VARIABLE_REFERENCE":231,"!":232,"*":233,"-":234,".":235,"[":236,"]":237,"~":238,"ANALYTIC":239,"AND":240,"ARITHMETIC_OPERATOR":241,"ASC":242,"AVG":243,"BACKTICK":244,"BETWEEN":245,"BIGINT":246,"BOOLEAN":247,"CASE":248,"CAST":249,"CHAR":250,"COUNT":251,"CURRENT":252,"DATABASE":253,"DECIMAL":254,"DESC":255,"DISTINCT":256,"DOUBLE":257,"ELSE":258,"END":259,"EXISTS":260,"FALSE":261,"FLOAT":262,"FOLLOWING":263,"FROM":264,"GROUP":265,"HAVING":266,"HDFS_START_QUOTE":267,"IF":268,"IN":269,"INT":270,"IS":271,"LIMIT":272,"MAX":273,"MIN":274,"ON":275,"OR":276,"ORDER":277,"OVER":278,"PRECEDING":279,"REGEXP":280,"RLIKE":281,"ROW":282,"ROWS":283,"SCHEMA":284,"SMALLINT":285,"STDDEV_POP":286,"STDDEV_SAMP":287,"STRING":288,"SUM":289,"THEN":290,"TIMESTAMP":291,"TINYINT":292,"TRUE":293,"UNION":294,"UNSIGNED_INTEGER":295,"UNSIGNED_INTEGER_E":296,"VAR_POP":297,"VAR_SAMP":298,"VARCHAR":299,"VARIANCE":300,"WHEN":301,"WHERE":302,"PARTIAL_CURSOR":303,"FromOrIn":304,"SingleQuotedValue":305,"SingleQuotedValue_EDIT":306,"PARTIAL_VALUE":307,"DoubleQuotedValue":308,"DoubleQuotedValue_EDIT":309,"QuotedValue_EDIT":310,"OptionalFromDatabase":311,"DatabaseIdentifier":312,"OptionalFromDatabase_EDIT":313,"DatabaseIdentifier_EDIT":314,"CASCADE":315,"OptionalInDatabase":316,"OptionalPartitionSpec_EDIT":317,"PartitionSpec_EDIT":318,"PartitionSpecList":319,"PartitionSpecList_EDIT":320,"RangePartitionSpec":321,"UnsignedValueSpecification":322,"RangePartitionComparisonOperator":323,"RangePartitionSpec_EDIT":324,"ConfigurationName":325,"PartialBacktickedOrAnyCursor":326,"PartialBacktickedIdentifier":327,"PartialBacktickedOrCursor":328,"PartialBacktickedOrPartialCursor":329,"OptionalParenthesizedColumnList":330,"OptionalParenthesizedColumnList_EDIT":331,"ColumnList":332,"ColumnList_EDIT":333,"ParenthesizedSimpleValueList":334,"SimpleValueList":335,"PartitionExpression":336,"PartitionExpression_EDIT":337,"RegularOrBackTickedSchemaQualifiedName":338,"RegularOrBackTickedSchemaQualifiedName_EDIT":339,"LocalOrSchemaQualifiedName":340,"LocalOrSchemaQualifiedName_EDIT":341,"BasicIdentifierChain":342,"ColumnReference_EDIT":343,"BasicIdentifierChain_EDIT":344,"DerivedColumnChain":345,"DerivedColumnChain_EDIT":346,"PartialBacktickedIdentifierOrPartialCursor":347,"OptionalTypeLength":348,"OptionalTypePrecision":349,"OptionalUnions":350,"OptionalUnions_EDIT":351,"CommonTableExpression_EDIT":352,"Unions":353,"Unions_EDIT":354,"UnionClause":355,"UnionClause_EDIT":356,"WITH":357,"WithQueries":358,"WithQueries_EDIT":359,"WithQuery":360,"WithQuery_EDIT":361,"TableSubQueryInner":362,"TableSubQueryInner_EDIT":363,"FromClause":364,"OptionalSelectConditions":365,"FromClause_EDIT":366,"OptionalJoins":367,"Joins":368,"Joins_INVALID":369,"TableReferenceList":370,"TableReferenceList_EDIT":371,"SearchCondition":372,"SearchCondition_EDIT":373,"GroupByColumnList":374,"GroupByColumnList_EDIT":375,"ColumnGroupingSets":376,"ColumnGroupingSets_EDIT":377,"ColumnGroupingSet_EDIT":378,"GroupByColumnListPartTwo_EDIT":379,"OrderByColumnList":380,"OrderByColumnList_EDIT":381,"OrderByIdentifier":382,"OrderByIdentifier_EDIT":383,"OptionalAscOrDesc":384,"UnsignedNumericLiteral":385,"NonParenthesizedValueExpressionPrimary":386,"OptionalNot":387,"TableSubQuery":388,"ValueExpressionList":389,"BETWEEN_AND":390,"LikeRightPart":391,"CaseRightPart":392,"NonParenthesizedValueExpressionPrimary_EDIT":393,"TableSubQuery_EDIT":394,"ValueExpressionInSecondPart_EDIT":395,"LikeRightPart_EDIT":396,"CaseRightPart_EDIT":397,"EndOrError":398,"ValueExpressionList_EDIT":399,"ColumnOrArbitraryFunctionRef":400,"ArbitraryFunctionRightPart":401,"ArbitraryFunctionName":402,"UserDefinedFunction":403,"UnsignedValueSpecification_EDIT":404,"ColumnOrArbitraryFunctionRef_EDIT":405,"ArbitraryFunctionRightPart_EDIT":406,"UserDefinedFunction_EDIT":407,"SignedInteger":408,"+":409,"UnsignedLiteral":410,"UnsignedLiteral_EDIT":411,"GeneralLiteral":412,"GeneralLiteral_EDIT":413,"ExactNumericLiteral":414,"ApproximateNumericLiteral":415,"TruthValue":416,"SelectSpecification":417,"OptionalCorrelationName":418,"SelectSpecification_EDIT":419,"OptionalCorrelationName_EDIT":420,"TableReference":421,"TableReference_EDIT":422,"TablePrimaryOrJoinedTable":423,"TablePrimaryOrJoinedTable_EDIT":424,"TablePrimary":425,"JoinedTable":426,"TablePrimary_EDIT":427,"JoinedTable_EDIT":428,"Joins_EDIT":429,"JoinType":430,"OptionalJoinCondition":431,"Join_EDIT":432,"JoinCondition_EDIT":433,"UsingColList":434,"TableOrQueryName":435,"DerivedTable":436,"TableOrQueryName_EDIT":437,"DerivedTable_EDIT":438,"OptionalOnColumn":439,"OptionalOnColumn_EDIT":440,"PushQueryState":441,"PopQueryState":442,"SubQuery":443,"SubQuery_EDIT":444,"QueryExpression":445,"QueryExpression_EDIT":446,"QueryExpressionBody":447,"QueryExpressionBody_EDIT":448,"NonJoinQueryExpression":449,"NonJoinQueryExpression_EDIT":450,"NonJoinQueryTerm":451,"NonJoinQueryTerm_EDIT":452,"NonJoinQueryPrimary":453,"NonJoinQueryPrimary_EDIT":454,"SimpleTable":455,"SimpleTable_EDIT":456,"AggregateFunction":457,"OptionalOverClause":458,"AnalyticFunction":459,"OverClause":460,"CastFunction":461,"AggregateFunction_EDIT":462,"OptionalOverClause_EDIT":463,"AnalyticFunction_EDIT":464,"OverClause_EDIT":465,"CastFunction_EDIT":466,"ArbitraryFunction":467,"ArbitraryFunction_EDIT":468,"CountFunction":469,"SumFunction":470,"OtherAggregateFunction":471,"CountFunction_EDIT":472,"SumFunction_EDIT":473,"OtherAggregateFunction_EDIT":474,"WindowExpression":475,"WindowExpression_EDIT":476,"OptionalPartitionBy":477,"OptionalOrderByAndWindow":478,"PartitionBy_EDIT":479,"OptionalOrderByAndWindow_EDIT":480,"PartitionBy":481,"OptionalWindowSpec":482,"WindowSpec_EDIT":483,"WindowSpec":484,"RowsOrRange":485,"PopLexerState":486,"OptionalCurrentOrPreceding":487,"OptionalAndFollowing":488,"UNBOUNDED":489,"OptionalCurrentOrPreceding_EDIT":490,"OptionalAndFollowing_EDIT":491,"PushHdfsLexerState":492,"HdfsPath":493,"HDFS_PATH":494,"HDFS_END_QUOTE":495,"HdfsPath_EDIT":496,"IntegerOrUnbounded":497,"OtherAggregateFunction_Type":498,"FromOrComma":499,"UPDATE":500,"TargetTable":501,"SetClauseList":502,"OptionalFromJoinedTable":503,"TargetTable_EDIT":504,"SetClauseList_EDIT":505,"FromJoinedTable_EDIT":506,"TableName":507,"TableName_EDIT":508,"SetClause":509,"SetClause_EDIT":510,"SetTarget":511,"UpdateSource":512,"UpdateSource_EDIT":513,"USE":514,"CaseWhenThenList":515,"CaseWhenThenList_EDIT":516,"CaseWhenThenListPartTwo":517,"CaseWhenThenListPartTwo_EDIT":518,"$accept":0,"$end":1}, -terminals_: {2:"error",13:"SET",14:"CURSOR",20:"ALTER",24:"TABLE",28:"AS",32:"VIEW",40:"CREATE",50:"COMMENT",53:"SINGLE_QUOTE",54:"DOUBLE_QUOTE",55:"VALUE",69:"LIKE",71:"(",73:")",77:",",87:"NOT",88:"NULL",99:"ARRAY",100:"<",101:">",104:"MAP",105:"STRUCT",112:":",117:"PARTITION",118:"BY",121:"RANGE",132:"VALUES",134:"COMPARISON_OPERATOR",142:"ROLE",152:"DROP",157:"PURGE",158:"TRUNCATE",163:";",168:"SetSpecification_EDIT",170:"SELECT",175:"TableExpression_ERROR",181:"Errors",183:"=",185:"ALL",187:"FULL",188:"LEFT",189:"RIGHT",190:"CROSS",191:"JOIN",192:"OUTER",193:"INNER",194:"SEMI",217:"INSERT",218:"INTO",222:"RowValuesList",225:"EOF",229:"OPTION",230:"REGULAR_IDENTIFIER",231:"VARIABLE_REFERENCE",232:"!",233:"*",234:"-",235:".",236:"[",237:"]",238:"~",239:"ANALYTIC",240:"AND",241:"ARITHMETIC_OPERATOR",242:"ASC",243:"AVG",244:"BACKTICK",245:"BETWEEN",246:"BIGINT",247:"BOOLEAN",248:"CASE",249:"CAST",250:"CHAR",251:"COUNT",252:"CURRENT",253:"DATABASE",254:"DECIMAL",255:"DESC",256:"DISTINCT",257:"DOUBLE",258:"ELSE",259:"END",260:"EXISTS",261:"FALSE",262:"FLOAT",263:"FOLLOWING",264:"FROM",265:"GROUP",266:"HAVING",267:"HDFS_START_QUOTE",268:"IF",269:"IN",270:"INT",271:"IS",272:"LIMIT",273:"MAX",274:"MIN",275:"ON",276:"OR",277:"ORDER",278:"OVER",279:"PRECEDING",280:"REGEXP",281:"RLIKE",282:"ROW",283:"ROWS",284:"SCHEMA",285:"SMALLINT",286:"STDDEV_POP",287:"STDDEV_SAMP",288:"STRING",289:"SUM",290:"THEN",291:"TIMESTAMP",292:"TINYINT",293:"TRUE",294:"UNION",295:"UNSIGNED_INTEGER",296:"UNSIGNED_INTEGER_E",297:"VAR_POP",298:"VAR_SAMP",299:"VARCHAR",300:"VARIANCE",301:"WHEN",302:"WHERE",303:"PARTIAL_CURSOR",307:"PARTIAL_VALUE",315:"CASCADE",357:"WITH",390:"BETWEEN_AND",409:"+",489:"UNBOUNDED",494:"HDFS_PATH",495:"HDFS_END_QUOTE",500:"UPDATE",514:"USE"}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[9,1],[9,1],[9,1],[9,2],[9,1],[4,1],[4,1],[10,1],[10,1],[10,2],[16,2],[18,1],[18,2],[18,2],[18,3],[21,3],[23,3],[23,3],[17,3],[19,1],[19,2],[19,3],[19,3],[19,3],[27,3],[30,3],[30,3],[5,1],[5,1],[5,1],[5,1],[11,1],[11,1],[11,1],[11,2],[33,3],[33,5],[37,4],[37,3],[37,5],[37,4],[37,6],[37,6],[44,1],[46,1],[47,0],[47,1],[49,2],[48,1],[52,2],[52,2],[52,3],[52,3],[34,4],[38,4],[38,4],[38,3],[56,3],[57,3],[57,3],[57,3],[57,3],[58,2],[61,2],[61,2],[65,0],[65,1],[65,2],[66,1],[66,2],[66,2],[68,3],[70,3],[72,1],[72,3],[74,1],[74,3],[74,3],[74,5],[74,2],[74,4],[74,4],[74,6],[76,3],[78,3],[78,3],[78,3],[81,0],[81,1],[84,1],[84,2],[83,1],[83,2],[83,2],[83,3],[85,2],[85,1],[85,1],[86,2],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[82,1],[82,1],[82,1],[90,4],[93,3],[96,4],[96,4],[91,6],[94,3],[97,6],[97,4],[97,6],[97,5],[92,4],[95,3],[98,4],[106,1],[106,3],[107,1],[107,2],[107,3],[107,3],[107,5],[108,4],[109,5],[109,4],[109,4],[109,4],[109,3],[109,3],[113,1],[113,3],[114,1],[114,2],[114,3],[114,3],[114,5],[115,2],[115,2],[115,1],[115,1],[103,1],[103,1],[59,0],[59,1],[116,3],[62,2],[62,3],[62,3],[119,3],[120,2],[120,2],[120,3],[120,3],[120,3],[123,3],[125,3],[125,3],[126,1],[126,3],[127,1],[127,3],[127,5],[127,3],[127,5],[128,6],[128,4],[128,4],[129,2],[129,2],[129,3],[129,4],[129,4],[129,5],[129,6],[129,6],[129,3],[129,4],[129,4],[131,1],[131,1],[60,0],[60,3],[63,3],[63,3],[135,0],[35,8],[39,4],[39,9],[39,3],[39,6],[39,7],[39,8],[39,8],[39,8],[136,0],[136,1],[138,3],[137,3],[139,2],[139,4],[140,3],[140,5],[140,5],[140,7],[36,3],[6,1],[6,1],[6,1],[6,1],[6,1],[12,1],[12,1],[12,1],[12,1],[12,2],[143,5],[148,3],[148,3],[148,4],[148,5],[148,5],[148,6],[144,3],[145,5],[149,3],[149,4],[149,5],[149,5],[149,6],[156,0],[156,1],[146,4],[150,4],[150,5],[150,3],[150,4],[150,4],[147,4],[151,2],[151,4],[151,3],[151,4],[151,5],[151,5],[151,5],[160,1],[160,2],[160,0],[160,1],[160,4],[165,2],[165,1],[165,2],[165,1],[165,1],[165,1],[165,1],[169,4],[169,4],[169,3],[169,4],[176,4],[176,4],[176,3],[176,3],[176,4],[176,4],[176,4],[176,5],[176,6],[176,4],[172,1],[172,3],[172,5],[172,3],[172,5],[177,3],[177,5],[177,7],[177,3],[177,5],[177,7],[7,4],[7,4],[7,2],[180,1],[180,3],[186,3],[186,3],[186,3],[186,2],[186,3],[186,3],[186,2],[186,3],[186,3],[186,3],[186,3],[186,2],[186,3],[186,3],[186,3],[186,3],[186,2],[195,7],[195,7],[195,7],[195,7],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,5],[195,5],[195,5],[195,5],[195,5],[195,6],[195,6],[195,6],[195,6],[195,6],[211,1],[211,1],[212,1],[167,1],[167,1],[214,6],[215,2],[215,4],[215,4],[215,5],[215,6],[220,1],[220,3],[221,3],[219,0],[219,1],[224,3],[226,3],[226,3],[164,0],[227,1],[227,4],[227,4],[227,7],[162,1],[162,1],[162,1],[228,1],[228,1],[228,1],[43,1],[43,1],[43,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[110,1],[110,2],[102,1],[102,1],[304,1],[304,1],[41,1],[41,1],[305,3],[305,2],[306,2],[308,3],[308,2],[309,2],[51,1],[51,1],[310,1],[310,1],[311,0],[311,2],[313,2],[154,0],[154,1],[153,0],[153,2],[155,2],[42,0],[42,3],[45,2],[45,3],[316,0],[316,2],[316,2],[159,0],[159,1],[317,1],[22,4],[318,4],[321,5],[324,2],[324,3],[324,4],[324,5],[324,5],[324,5],[323,1],[323,1],[323,1],[323,1],[325,1],[325,1],[326,1],[326,1],[328,1],[328,1],[329,1],[329,1],[327,2],[75,1],[75,1],[330,0],[330,1],[331,1],[122,3],[124,3],[124,3],[332,1],[332,3],[333,3],[333,5],[334,3],[335,1],[335,3],[25,1],[25,3],[26,1],[26,3],[26,3],[64,1],[64,3],[67,1],[67,3],[67,3],[312,1],[314,1],[319,1],[319,3],[320,1],[320,3],[320,3],[320,5],[336,3],[337,3],[337,3],[337,3],[337,1],[111,1],[111,3],[111,2],[338,1],[338,3],[339,1],[339,3],[340,1],[340,2],[341,1],[341,2],[141,1],[141,3],[343,1],[342,1],[342,3],[344,3],[344,5],[345,1],[345,3],[346,1],[346,3],[346,5],[346,3],[79,1],[347,1],[347,1],[89,1],[89,1],[89,2],[89,2],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,2],[348,0],[348,3],[349,0],[349,3],[349,5],[29,2],[29,3],[29,5],[31,2],[31,2],[31,4],[31,3],[31,3],[31,1],[31,4],[31,3],[350,0],[350,1],[351,1],[353,1],[353,2],[354,1],[354,2],[354,2],[354,3],[355,4],[356,3],[356,4],[356,4],[166,2],[352,2],[358,1],[358,3],[359,1],[359,3],[359,3],[359,5],[360,5],[361,2],[361,5],[361,5],[171,0],[171,1],[171,1],[173,2],[178,2],[178,4],[178,3],[367,0],[367,1],[367,1],[364,2],[366,2],[366,2],[365,5],[201,0],[201,1],[196,2],[210,2],[210,2],[197,0],[197,1],[209,3],[205,3],[205,3],[205,2],[376,0],[376,1],[376,3],[376,3],[377,1],[377,3],[377,3],[377,5],[377,3],[378,1],[378,1],[374,1],[374,3],[375,1],[375,2],[375,3],[375,3],[375,3],[375,4],[375,5],[379,1],[379,2],[379,1],[199,0],[199,1],[203,3],[207,3],[207,2],[380,1],[380,3],[381,1],[381,2],[381,3],[381,4],[381,5],[382,2],[383,2],[383,2],[384,0],[384,1],[384,1],[200,0],[200,1],[204,2],[204,4],[204,2],[204,4],[208,2],[372,1],[373,1],[130,1],[130,2],[130,2],[130,2],[130,2],[130,4],[130,4],[130,4],[130,6],[130,2],[130,3],[130,3],[130,3],[130,3],[130,3],[130,6],[130,6],[130,5],[130,5],[130,6],[130,5],[130,3],[130,3],[130,3],[130,3],[130,3],[130,2],[130,3],[130,2],[130,3],[133,1],[133,3],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,3],[133,4],[133,5],[133,4],[133,4],[133,4],[133,6],[133,6],[133,2],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,4],[133,3],[133,6],[133,6],[133,5],[133,5],[133,6],[133,6],[133,6],[133,6],[133,5],[133,4],[133,5],[133,5],[133,5],[133,5],[133,4],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,2],[133,3],[133,2],[133,3],[133,2],[133,3],[133,2],[133,3],[133,3],[133,4],[133,3],[133,3],[133,3],[389,1],[389,3],[399,1],[399,3],[399,3],[399,5],[399,3],[399,5],[399,4],[399,3],[399,2],[399,2],[399,4],[223,1],[223,3],[386,1],[386,1],[386,2],[386,2],[386,1],[386,1],[393,1],[393,1],[393,2],[393,2],[393,1],[400,1],[400,3],[405,1],[408,1],[408,2],[408,2],[322,1],[404,1],[410,1],[410,1],[411,1],[385,1],[385,1],[414,1],[414,2],[414,3],[414,2],[415,2],[415,3],[415,4],[412,1],[412,1],[412,1],[413,1],[413,1],[416,1],[416,1],[387,0],[387,1],[417,2],[417,1],[419,2],[419,3],[419,2],[174,1],[174,3],[179,1],[179,2],[179,3],[179,3],[179,3],[179,4],[179,3],[179,3],[179,4],[179,4],[179,4],[179,5],[179,5],[370,1],[370,3],[371,1],[371,3],[371,3],[371,5],[371,3],[421,1],[422,1],[423,1],[423,1],[424,1],[424,1],[426,2],[428,2],[428,2],[368,3],[368,4],[369,1],[369,2],[432,3],[432,1],[432,3],[432,3],[432,3],[429,1],[429,2],[429,2],[429,3],[430,2],[430,2],[430,3],[430,2],[430,1],[430,3],[430,2],[430,3],[430,3],[430,2],[430,3],[430,2],[430,3],[430,3],[430,2],[431,0],[431,2],[434,1],[434,3],[433,2],[433,2],[425,2],[425,2],[427,2],[427,2],[427,2],[435,1],[437,1],[436,1],[438,1],[439,0],[439,2],[440,2],[440,2],[441,0],[442,0],[388,3],[388,4],[394,3],[394,3],[362,2],[363,3],[443,1],[444,1],[445,1],[446,1],[447,1],[448,1],[449,1],[450,1],[451,1],[452,1],[453,1],[454,1],[455,1],[456,1],[418,0],[418,1],[418,1],[418,2],[418,2],[420,1],[420,1],[420,2],[420,2],[420,2],[403,2],[403,2],[403,1],[407,1],[407,2],[407,1],[407,2],[407,2],[407,2],[407,1],[467,2],[467,2],[468,2],[468,2],[402,1],[402,1],[402,1],[402,1],[401,2],[401,3],[406,3],[406,4],[406,3],[457,1],[457,1],[457,1],[462,1],[462,1],[462,1],[459,3],[459,4],[464,4],[464,5],[464,4],[458,0],[458,1],[463,1],[460,2],[460,2],[465,2],[475,4],[476,4],[476,4],[476,5],[476,7],[477,0],[477,1],[481,3],[479,2],[479,3],[479,3],[478,0],[478,2],[480,1],[480,3],[480,2],[482,0],[482,1],[484,5],[484,5],[483,2],[483,6],[483,5],[483,5],[483,5],[483,4],[486,0],[492,0],[493,3],[496,5],[496,4],[496,3],[496,3],[496,2],[485,1],[485,1],[487,0],[487,2],[487,2],[490,2],[490,2],[488,0],[488,3],[488,3],[491,2],[491,3],[491,3],[497,1],[497,1],[198,0],[198,1],[202,2],[206,2],[206,2],[461,6],[461,3],[466,6],[466,5],[466,4],[466,6],[466,5],[466,4],[466,6],[466,5],[466,6],[466,5],[469,4],[469,3],[469,5],[472,5],[472,6],[472,5],[471,4],[471,5],[474,5],[474,6],[474,5],[498,1],[498,1],[498,1],[498,1],[498,1],[498,1],[498,1],[498,1],[499,1],[499,1],[470,5],[470,3],[473,5],[473,6],[473,5],[182,1],[182,3],[184,1],[184,1],[184,2],[184,1],[184,1],[184,1],[184,1],[213,6],[216,6],[216,6],[216,6],[216,6],[216,7],[216,3],[216,2],[216,2],[216,2],[501,1],[504,1],[507,1],[508,1],[502,1],[502,3],[505,1],[505,3],[505,3],[505,5],[509,3],[510,3],[510,2],[510,1],[511,1],[512,1],[513,1],[503,0],[503,2],[506,2],[506,2],[8,2],[15,2],[395,3],[395,3],[395,3],[391,2],[391,2],[391,2],[396,2],[396,2],[396,2],[396,2],[396,2],[396,2],[392,2],[392,4],[397,2],[397,4],[397,4],[397,3],[397,4],[397,3],[397,4],[397,4],[397,3],[397,4],[397,3],[398,1],[398,1],[515,1],[515,2],[516,1],[516,2],[516,3],[516,3],[516,2],[517,4],[518,2],[518,3],[518,4],[518,4],[518,3],[518,3],[518,4],[518,2],[518,3],[518,2],[518,3],[518,3],[518,4],[518,3],[518,4],[518,4],[518,5],[518,4],[518,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 9: - - parser.suggestSetOptions(); - -break; -case 15: - - parser.suggestKeywords(['TABLE', 'VIEW']); - -break; -case 21: case 30: case 244: case 248: case 250: case 1173: - - parser.addTablePrimary($$[$0]); - -break; -case 22: case 239: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - -break; -case 23: - - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 26: case 655: - - parser.suggestKeywords(['AS']); - -break; -case 28: case 195: case 204: case 265: case 656: case 993: - - parser.suggestKeywords(['SELECT']); - -break; -case 31: case 249: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 32: - - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 40: case 227: - - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - -break; -case 42: - - parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); - -break; -case 43: case 61: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 45: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 46: - - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 47: - - parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); - -break; -case 49: - - if (!$$[$0]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 67: - - var keywords = []; - if (!$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$$[$0-1]) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 68: - - parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); - this.$ = $$[$0]; - -break; -case 73: -this.$ = []; -break; -case 75: case 557: case 1170: case 1190: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 77: case 213: case 215: case 490: case 493: case 579: case 622: case 743: case 922: case 990: case 1042: -this.$ = $$[$0-1]; -break; -case 79: case 648: -this.$ = [$$[$0]]; -break; -case 80: -this.$ = $$[$0-2].concat($$[$0]); -break; -case 85: case 87: - - parser.checkForKeywords($$[$0-1]); - -break; -case 86: case 88: - - parser.checkForKeywords($$[$0-3]); - -break; -case 89: - - this.$ = $$[$0-2]; - this.$.type = $$[$0-1]; - var keywords = []; - if (!$$[$0]['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 90: case 117: case 123: case 124: case 137: case 140: case 149: case 151: - - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - -break; -case 93: -this.$ = {}; -break; -case 95: - - this.$ = {}; - this.$[$$[$0]] = true; - -break; -case 96: - - $$[$0-1][$$[$0]] = true; - -break; -case 101: case 102: -this.$ = 'null'; -break; -case 103: -this.$ = 'comment'; -break; -case 104: - - parser.suggestKeywords(['NULL']); - -break; -case 122: - - parser.suggestKeywords(parser.getTypeKeywords()); - -break; -case 136: case 139: - - parser.suggestKeywords(['COMMENT']); - -break; -case 158: case 1068: - - parser.suggestKeywords(['BY']); - -break; -case 159: - - parser.suggestKeywords(['RANGE']); - -break; -case 168: case 173: case 174: - - parser.suggestKeywords(['PARTITION']); - -break; -case 180: - - parser.suggestKeywords(['VALUE', 'VALUES']); - -break; -case 181: - - if ($$[$0].endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - -break; -case 182: case 185: case 188: - - parser.suggestKeywords(['<', '<=']); - -break; -case 183: case 522: case 525: - - parser.suggestKeywords(['VALUES']); - -break; -case 186: case 189: - - parser.suggestFunctions(); - -break; -case 197: - - parser.commitLocations(); - -break; -case 199: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 200: - - if (!$$[$0-6]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 203: - - var keywords = [{value: 'AS', weight: 1 }]; - if (!$$[$0-1]) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - -break; -case 210: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 214: case 216: -this.$ = $$[$0-3]; -break; -case 231: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - -break; -case 232: - - parser.suggestKeywords(['CASCADE']); - -break; -case 234: - - if (!$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 236: case 255: - - parser.addTablePrimary($$[$0-1]); - -break; -case 238: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 241: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 245: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 246: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 251: - - parser.suggestKeywords(['TABLE']); - -break; -case 252: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 256: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 261: case 361: case 363: - - parser.addStatementLocation(_$[$0]); - -break; -case 263: case 264: - - parser.suggestDdlAndDmlKeywords(); - -break; -case 272: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); - this.$ = { selectList: $$[$0] }; - -break; -case 273: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } - -break; -case 274: - - parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); - -break; -case 276: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); - if ($$[$0].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($$[$01]); - } - if ($$[$0].suggestFunctions) { - parser.suggestFunctions(); - } - if ($$[$0].suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($$[$0].suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($$[$0].suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($$[$0].suggestAggregateFunctions && (!$$[$0-1] || $$[$0-1] === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - -break; -case 277: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] || $$[$0-1] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 278: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - -break; -case 279: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - -break; -case 280: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 281: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-2]); - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 282: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-3]); - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 283: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - -break; -case 289: case 290: case 291: case 646: case 674: case 695: case 708: case 712: case 736: case 761: case 762: case 843: case 845: case 909: case 919: case 926: case 938: case 1067: case 1189: case 1227: case 1228: -this.$ = $$[$0]; -break; -case 292: case 293: - - this.$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 294: case 913: case 914: - - this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 300: case 301: case 302: - - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - -break; -case 303: case 305: case 306: case 308: case 309: case 310: case 311: case 313: case 314: case 315: case 316: -this.$ = { suggestKeywords: ['JOIN'] }; -break; -case 304: case 307: case 312: -this.$ = { suggestKeywords: ['OUTER'] }; -break; -case 317: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] - }; - -break; -case 318: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$$[$0-1] && !$$[$0] - } - -break; -case 319: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$$[$0] - } - -break; -case 331: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - -break; -case 332: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - -break; -case 334: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - -break; -case 336: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($$[$0-5].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 1)); - } - this.$ = parser.getValueExpressionKeywords($$[$0-5], keywords); - this.$.cursorAtEnd = !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if ($$[$0-5].columnReference) { - this.$.columnReference = $$[$0-5].columnReference; - } - if (!$$[$0-3]) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 337: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($$[$0-4].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 8)); - } - if ($$[$0-4].valueExpression) { - this.$ = parser.getValueExpressionKeywords($$[$0-4].valueExpression, keywords); - if ($$[$0-4].valueExpression.columnReference) { - this.$.columnReference = $$[$0-4].valueExpression.columnReference; - } - } else { - this.$ = { suggestKeywords: keywords }; - } - this.$.cursorAtEnd = !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 338: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-1], $$[$0]], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; - if (!$$[$0-1]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-3], _$[$0-3]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 339: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0]], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 4)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 340: - - this.$ = { suggestKeywords: [], cursorAtEnd: true }; - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = _$[$0-1]; - -break; -case 346: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 347: - - parser.suggestKeywords(['INTO']); - -break; -case 348: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 350: - - $$[$0-1].owner = 'insert'; - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['VALUES']); - -break; -case 358: case 359: - - return parser.yy.result; - -break; -case 360: - - parser.prepareNewStatement(); - -break; -case 362: case 364: - - parser.addStatementLocation(_$[$0-3]); - -break; -case 491: case 494: case 580: -this.$ = ''; -break; -case 506: case 509: - - parser.yy.correlatedSubQuery = false; - -break; -case 507: case 511: - - parser.suggestKeywords(['EXISTS']); - -break; -case 510: - - parser.suggestKeywords(['NOT EXISTS']); - -break; -case 521: case 523: case 524: case 526: - - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - -break; -case 547: case 550: case 551: case 576: case 577: case 598: case 601: case 692: case 1184: - - parser.suggestColumns(); - -break; -case 555: case 581: - - parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0] } ] }; - -break; -case 556: case 582: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; - -break; -case 558: case 563: - - parser.suggestDatabases(); - this.$ = { identifierChain: [{ name: $$[$0-2] }] }; - -break; -case 559: case 584: - - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 560: -this.$ = [{ name: $$[$0] }]; -break; -case 561: -this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; -break; -case 562: - - parser.suggestDatabases({ appendDot: true }); - -break; -case 566: case 1193: - - parser.suggestDatabases(); - -break; -case 575: case 697: case 698: case 704: case 705: case 986: case 1069: - - parser.valueExpressionSuggest(); - -break; -case 583: - - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - -break; -case 586: -this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; -break; -case 589: - - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - -break; -case 590: case 877: - - parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); - -break; -case 592: - - this.$ = [ $$[$0].identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 593: - - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $$[$0-2].push($$[$0].identifier); - parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); - -break; -case 594: - - parser.suggestColumns({ - identifierChain: $$[$0-2] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 595: - - parser.suggestColumns({ - identifierChain: $$[$0-4] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 596: -this.$ = [ $$[$0].identifier ]; -break; -case 597: - - $$[$0-2].push($$[$0].identifier); - -break; -case 599: - - parser.suggestColumns({ identifierChain: $$[$0-2] }); - -break; -case 600: - - parser.suggestColumns({ identifierChain: $$[$0-4] }); - -break; -case 602: -this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; -break; -case 624: case 924: -this.$ = $$[$0-2]; -break; -case 627: - - parser.addCommonTableExpressions($$[$0-3]); - -break; -case 628: case 629: case 651: - - parser.addCommonTableExpressions($$[$0-2]); - -break; -case 643: - - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - -break; -case 644: - - parser.suggestKeywords(['ALL', 'DISTINCT']); - -break; -case 649: -this.$ = $$[$0-2].concat([$$[$0]]); -break; -case 653: - - parser.addCommonTableExpressions($$[$0-4]); - -break; -case 654: - - parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); - $$[$0-1].alias = $$[$0-4]; - this.$ = $$[$0-1]; - -break; -case 661: case 662: - - parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); - -break; -case 663: - - var keywords = []; - - parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); - - if ($$[$0-3]) { - if (typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($$[$0-3].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - } - if ($$[$0-3].tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); - } - if ($$[$0-3].tableReferenceList.suggestJoins) { - parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); - } - if ($$[$0-3].tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($$[$0-3].tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($$[$0-3].tableReferenceList); - } - } - } - - if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($$[$0-1].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].suggestFilters) { - parser.suggestFilters($$[$0-1].suggestFilters); - } - if ($$[$0-1].suggestGroupBys) { - parser.suggestGroupBys($$[$0-1].suggestGroupBys); - } - if ($$[$0-1].suggestOrderBys) { - parser.suggestOrderBys($$[$0-1].suggestOrderBys); - } - - if ($$[$0-1].empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - -break; -case 664: - - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$$[$0-1]) { - parser.addClauseLocation('whereClause', _$[$0-2]); - parser.addClauseLocation('limitClause', _$[$0-2]); - return; - } - parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); - var keywords = []; - - if ($$[$0-1].suggestColRefKeywords) { - parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); - parser.addColRefIfExists($$[$0-1]); - } - - if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - -break; -case 668: - - this.$ = { tableReferenceList : $$[$0] } - -break; -case 669: case 931: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 671: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - this.$ = { suggestKeywords: keywords, empty: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - } else { - this.$ = {}; - } - - this.$.whereClauseLocation = $$[$0-4] ? _$[$0-4] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-1] && !$$[$0]) { - this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - -break; -case 675: - - if ($$[$0].suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 676: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 679: - - this.$ = { valueExpression: $$[$0] }; - -break; -case 680: case 719: - - parser.suggestSelectListAliases(); - -break; -case 681: - - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 682: - - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 709: - - if ($$[$0].emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 710: - - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 714: - - this.$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 715: case 716: case 717: -this.$ = { emptyOrderBy: false }; -break; -case 718: -this.$ = parser.mergeSuggestKeywords($$[$0]); -break; -case 720: - - this.$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 721: - - this.$ = { suggestKeywords: ['ASC', 'DESC'] }; - -break; -case 734: case 735: - - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 737: - - // verifyType($$[$0], 'NUMBER'); - this.$ = $$[$0]; - $$[$0].types = ['NUMBER']; - -break; -case 738: case 739: case 740: case 741: case 748: case 749: case 750: case 751: case 752: case 753: case 759: case 760: case 781: case 839: case 840: case 898: -this.$ = { types: [ 'BOOLEAN' ] }; -break; -case 742: - - this.$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - -break; -case 744: case 745: case 746: case 747: - - parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 754: case 755: - - // verifyType($$[$0-2], 'BOOLEAN'); - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 756: case 757: case 758: - - // verifyType($$[$0-2], 'NUMBER'); - // verifyType($$[$0], 'NUMBER'); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 764: - - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 765: case 767: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 766: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 768: - - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 769: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 770: - - parser.suggestFunctions(); - parser.suggestColumns(); - this.$ = { types: [ 'T' ] }; - -break; -case 771: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 772: - - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 773: - - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 774: - - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 775: - - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 776: case 777: case 778: - - parser.suggestKeywords(['NOT']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 779: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 780: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 782: - - this.$ = $$[$0-1]; - -break; -case 783: - - parser.valueExpressionSuggest(); - this.$ = { types: ['T'], typeSet: true }; - -break; -case 784: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 785: case 786: case 787: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 788: case 789: case 790: case 791: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0].types); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 792: case 794: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 793: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - -break; -case 795: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; - -break; -case 796: case 797: case 798: case 799: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 800: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-3].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 801: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 802: case 803: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; -break; -case 804: case 805: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; -break; -case 806: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; - -break; -case 807: - - if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 808: - - if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 809: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 810: case 816: - - parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 811: - - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 812: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; - -break; -case 813: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 814: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 815: - - parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-4].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 817: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 818: case 820: case 822: case 824: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - -break; -case 819: case 823: - - parser.addColRefIfExists($$[$0]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 821: case 825: - - parser.addColRefIfExists($$[$0-2]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 826: case 827: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 828: case 829: case 830: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 831: case 832: case 833: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions(['NUMBER']); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 834: case 835: case 836: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 837: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 838: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 841: - - parser.valueExpressionSuggest(undefined, $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 842: - - parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 844: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 846: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 847: - - this.$ = $$[$0]; - this.$.suggestFilters = $$[$0-1].suggestFilters; - -break; -case 848: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 849: case 1115: case 1120: case 1121: -this.$ = { types: [ 'T' ] }; -break; -case 850: case 852: - - $$[$0].position = 1; - -break; -case 851: - - $$[$0].position = $$[$0-2].position + 1; - this.$ = $$[$0]; - -break; -case 853: - - $$[$0-2].position += 1; - -break; -case 854: - - $$[$0-2].position = 1; - -break; -case 855: - - $$[$0-4].position += 1; - -break; -case 856: - - parser.valueExpressionSuggest(); - $$[$0-2].position += 1; - -break; -case 857: - - parser.valueExpressionSuggest(); - $$[$0-4].position += 1; - -break; -case 858: - - parser.suggestValueExpressionKeywords($$[$0-3]); - -break; -case 859: case 860: - - parser.valueExpressionSuggest(); - this.$ = { cursorAtStart : true, position: 1 }; - -break; -case 861: case 862: - - parser.valueExpressionSuggest(); - this.$ = { position: 2 }; - -break; -case 866: -this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; -break; -case 867: - - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].expression) { - this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } - } else { - this.$ = { function: fn, types: parser.findReturnTypes(fn) } - } - -break; -case 868: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 870: -this.$ = { types: [ 'NULL' ] }; -break; -case 872: - - if ($$[$0].suggestKeywords) { - this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; - } else { - this.$ = { types: ['COLREF'], columnReference: $$[$0] }; - } - -break; -case 873: - - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); - } - this.$ = { types: parser.findReturnTypes(fn) }; - -break; -case 874: case 1032: case 1033: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-1]) }; - -break; -case 876: - - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; - this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } - -break; -case 883: - - parser.suggestValues($$[$0]); - -break; -case 884: -this.$ = { types: [ 'NUMBER' ] }; -break; -case 890: case 892: -this.$ = $$[$0-1] + $$[$0]; -break; -case 891: -this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; -break; -case 896: case 897: - - if (/\$\{[^}]*\}/.test($$[$0])) { - parser.addVariableLocation(_$[$0], $$[$0]); - this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } - } else { - this.$ = { types: [ 'STRING' ] } - } - -break; -case 899: - - this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 900: - - this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 905: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); - } else { - this.$ = { valueExpression: $$[$0-1] } - } - -break; -case 906: - - parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); - this.$ = { asterisk: true } - -break; -case 907: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - } - -break; -case 908: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); - this.$ = { suggestAggregateFunctions: true }; - -break; -case 910: -this.$ = [ $$[$0] ]; -break; -case 911: - - $$[$0-2].push($$[$0]); - -break; -case 916: - - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 917: - - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 918: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 920: case 921: case 923: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - -break; -case 934: - - this.$ = $$[$0]; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - this.$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - -break; -case 941: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-2]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 942: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-3]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 943: -this.$ = { joinType: $$[$0] }; -break; -case 944: -this.$ = { joinType: $$[$0-1] }; -break; -case 945: - - if ($$[$0-2].suggestKeywords) { - parser.suggestKeywords($$[$0-2].suggestKeywords); - } - -break; -case 946: - - if ($$[$0].suggestKeywords) { - parser.suggestKeywords($$[$0].suggestKeywords); - } - -break; -case 949: - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $$[$0-2], - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 954: -this.$ = 'CROSS JOIN'; -break; -case 955: -this.$ = 'FULL JOIN'; -break; -case 956: -this.$ = 'FULL OUTER JOIN'; -break; -case 957: -this.$ = 'INNER JOIN'; -break; -case 958: -this.$ = 'JOIN'; -break; -case 959: -this.$ = 'LEFT INNER JOIN'; -break; -case 960: -this.$ = 'LEFT JOIN'; -break; -case 961: -this.$ = 'LEFT OUTER JOIN'; -break; -case 962: -this.$ = 'LEFT SEMI JOIN'; -break; -case 963: -this.$ = 'OUTER JOIN'; -break; -case 964: case 966: -this.$ = 'RIGHT OUTER JOIN'; -break; -case 965: -this.$ = 'RIGHT JOIN'; -break; -case 967: -this.$ = 'RIGHT SEMI JOIN'; -break; -case 968: -this.$ = 'SEMI JOIN'; -break; -case 969: -this.$ = { noJoinCondition: true, suggestKeywords: ['ON'] }; -break; -case 970: -this.$ = { valueExpression: $$[$0] }; -break; -case 974: - - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - -break; -case 975: - - this.$ = { - primary: $$[$0-1] - } - if ($$[$0-1].identifierChain) { - if ($$[$0]) { - $$[$0-1].alias = $$[$0].alias - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); - } - parser.addTablePrimary($$[$0-1]); - } - - var keywords = []; - if (!$$[$0]) { - keywords = ['AS']; - } else if ($$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 976: - - this.$ = { - primary: $$[$0-1] - }; - - if ($$[$0]) { - this.$.primary.alias = $$[$0].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); - parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); - } - - var keywords = []; - if (!$$[$0]) { - keywords = ['AS']; - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 977: - - if ($$[$0]) { - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); - } - -break; -case 978: - - if ($$[$0]) { - parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); - parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias); - } - -break; -case 988: - - parser.pushQueryState(); - -break; -case 989: - - parser.popQueryState(); - -break; -case 991: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - this.$ = $$[$0-2]; - -break; -case 994: - - var subQuery = parser.getSubQuery($$[$0]); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - this.$ = subQuery; - -break; -case 1011: case 1012: case 1013: case 1014: -this.$ = { alias: $$[$0], location: _$[$0] }; -break; -case 1020: - - if (!$$[$0]) { - $$[$0-1].suggestKeywords = ['OVER']; - } - -break; -case 1027: - - parser.suggestKeywords(['OVER']); - -break; -case 1030: case 1031: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1039: -this.$ = { expression: $$[$0-1] }; -break; -case 1040: - - parser.valueExpressionSuggest(); - this.$ = { position: 1 } - -break; -case 1041: - - parser.suggestValueExpressionKeywords($$[$0-1]); - -break; -case 1049: case 1127: case 1148: -this.$ = { types: parser.findReturnTypes($$[$0-2]) }; -break; -case 1050: -this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1051: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-3], 1); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1052: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1053: - - parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1061: case 1062: - - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - -break; -case 1063: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$$[$0-2]) { - parser.suggestKeywords(['PARTITION BY']); - } - -break; -case 1064: - - if (!$$[$0-1]) { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - -break; -case 1073: - - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - -break; -case 1074: - - var keywords = []; - if ($$[$0-2].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - } - if (!$$[$0]) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - -break; -case 1080: - - parser.suggestKeywords(['BETWEEN']); - -break; -case 1081: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['AND']); - } - -break; -case 1086: - - lexer.popState(); - -break; -case 1087: - - lexer.begin('hdfs'); - -break; -case 1089: - - parser.suggestHdfs({ path: $$[$0-3] }); - -break; -case 1090: - - parser.suggestHdfs({ path: $$[$0-2] }); - -break; -case 1091: - - parser.suggestHdfs({ path: $$[$0-1] }); - -break; -case 1092: - - parser.suggestHdfs({ path: '' }); - -break; -case 1093: - - parser.suggestHdfs({ path: '' }); - -break; -case 1099: - - parser.suggestKeywords(['PRECEDING']); - -break; -case 1100: case 1105: - - parser.suggestKeywords(['ROW']); - -break; -case 1104: - - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - -break; -case 1106: - - parser.suggestKeywords(['FOLLOWING']); - -break; -case 1112: - - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 1113: - - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 1114: case 1119: -this.$ = { types: [ $$[$0-1].toUpperCase() ] }; -break; -case 1116: - - parser.valueExpressionSuggest(); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 1117: case 1118: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ] }; - -break; -case 1122: - - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 1123: - - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ 'T' ] }; - -break; -case 1124: case 1125: - - parser.suggestKeywords(parser.getTypeKeywords()); - this.$ = { types: [ 'T' ] }; - -break; -case 1126: case 1132: -this.$ = { types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1128: case 1133: case 1147: -this.$ = { types: parser.findReturnTypes($$[$0-4]) }; -break; -case 1129: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1130: case 1135: case 1150: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1131: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1134: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1136: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1149: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1151: - - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1166: - - parser.suggestKeywords([ 'WHERE' ]); - -break; -case 1167: - - parser.suggestKeywords([ 'SET' ]); - -break; -case 1183: - - parser.suggestKeywords([ '=' ]); - -break; -case 1192: - - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $$[$0]; - } - -break; -case 1195: -this.$ = { inValueEdit: true }; -break; -case 1196: -this.$ = { inValueEdit: true, cursorAtStart: true }; -break; -case 1197: case 1198: case 1199: -this.$ = { suggestKeywords: ['NOT'] }; -break; -case 1203: case 1204: case 1205: - - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - this.$ = { types: ['BOOLEAN'] } - -break; -case 1206: case 1208: -this.$ = parser.findCaseType($$[$0-1]); -break; -case 1207: case 1210: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1209: - - parser.suggestValueExpressionKeywords($$[$0-1], ['END']); - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1211: -this.$ = parser.findCaseType($$[$0-2]); -break; -case 1212: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1213: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-2]); - -break; -case 1214: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - this.$.suggestFilters = $$[$0-1].suggestFilters - -break; -case 1215: - - parser.valueExpressionSuggest(); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1216: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1217: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = $$[$0-1]; - -break; -case 1218: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ] }; - -break; -case 1221: -this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; -break; -case 1222: - - $$[$0-1].caseTypes.push($$[$0]); - this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; - -break; -case 1226: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - -break; -case 1229: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; -break; -case 1230: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1231: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 1232: case 1233: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; -break; -case 1234: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1235: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [$$[$0]] }; - -break; -case 1236: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1237: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1238: case 1240: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 1239: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 1241: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; - -break; -case 1242: - - parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1243: - - parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1244: case 1245: case 1246: case 1247: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -} -}, -table: [o($V0,$V1,{226:1,164:2}),{1:[3]},o($V2,$V3,{160:3,227:4,161:6,162:7,165:8,3:117,211:118,29:119,102:120,166:121,9:122,167:123,31:124,4:126,5:127,6:128,7:129,8:130,212:131,213:132,169:133,10:137,11:138,12:139,15:140,215:141,216:142,176:143,352:144,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,18:160,19:161,37:163,38:164,39:165,148:167,149:168,150:169,151:170,21:173,27:174,23:176,30:177,2:$V4,13:$V5,14:$V6,20:$V7,24:$V8,28:$V9,40:$Va,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vu,157:$Vv,158:$Vw,168:$Vx,170:$Vy,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$VJ,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,303:$VV1,357:$VW1,500:$VX1,514:$VY1}),{163:[1,179],225:[1,178]},{225:[1,180]},o($V2,[2,258]),{2:[1,181]},o($V2,[2,261]),{163:[1,182],225:[2,361]},{2:[2,374]},{2:[2,375]},{2:[2,376]},{2:[2,377]},{2:[2,378]},{2:[2,379]},{2:[2,380]},{2:[2,381]},{2:[2,382]},{2:[2,383]},{2:[2,384]},{2:[2,385]},{2:[2,386]},{2:[2,387]},{2:[2,388]},{2:[2,389]},{2:[2,390]},{2:[2,391]},{2:[2,392]},{2:[2,393]},{2:[2,394]},{2:[2,395]},{2:[2,396]},{2:[2,397]},{2:[2,398]},{2:[2,399]},{2:[2,400]},{2:[2,401]},{2:[2,402]},{2:[2,403]},{2:[2,404]},{2:[2,405]},{2:[2,406]},{2:[2,407]},{2:[2,408]},{2:[2,409]},{2:[2,410]},{2:[2,411]},{2:[2,412]},{2:[2,413]},{2:[2,414]},{2:[2,415]},{2:[2,416]},{2:[2,417]},{2:[2,418]},{2:[2,419]},{2:[2,420]},{2:[2,421]},{2:[2,422]},{2:[2,423]},{2:[2,424]},{2:[2,425]},{2:[2,426]},{2:[2,427]},{2:[2,428]},{2:[2,429]},{2:[2,430]},{2:[2,431]},{2:[2,432]},{2:[2,433]},{2:[2,434]},{2:[2,435]},{2:[2,436]},{2:[2,437]},{2:[2,438]},{2:[2,439]},{2:[2,440]},{2:[2,441]},{2:[2,442]},{2:[2,443]},{2:[2,444]},{2:[2,445]},{2:[2,446]},{2:[2,447]},{2:[2,448]},{2:[2,449]},{2:[2,450]},{2:[2,451]},{2:[2,452]},{2:[2,453]},{2:[2,454]},{2:[2,455]},{2:[2,456]},{2:[2,457]},{2:$VZ1,14:[1,183],43:186,105:$V_1,142:$V$1,182:184,185:$V02,228:189,229:$V12,230:$V22,231:$V32},{2:[2,459]},{2:[2,460]},{2:[2,461]},{2:[2,462]},{2:[2,463]},{2:[2,464]},{2:[2,465]},{2:[2,466]},{2:[2,467]},{2:[2,468]},{2:[2,469]},{2:[2,470]},{2:[2,471]},{2:[2,472]},{2:[2,473]},{2:[2,474]},{2:[2,475]},{2:[2,476]},{2:[2,477]},{2:[2,478]},{2:[2,479]},{2:[2,480]},{2:[2,481]},o($V2,[2,365]),o($V2,[2,366]),o($V2,[2,367]),o($V2,[2,264],{2:[1,193]}),{14:[1,194],71:$V42,169:195,170:$Vy,176:197},o($V2,[2,266]),o($V2,[2,267]),o($V2,[2,268]),o($V2,[2,269]),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,341]),o($V2,[2,342]),o($V52,$V62,{350:198,351:199,353:200,354:201,355:202,356:203,294:$V72}),o([2,73,77,101,117,163,225,264,265,266,272,277,294,302],$V82),o([2,28,53,54,69,71,73,77,87,88,99,100,101,104,105,117,134,142,158,163,183,187,188,189,190,191,192,193,194,225,229,230,231,232,233,234,235,238,239,240,241,242,243,244,245,248,249,251,255,258,259,260,261,264,265,266,268,269,272,273,274,276,277,280,281,286,287,289,290,293,294,295,296,297,298,300,301,302,390],[2,485]),{43:210,105:$V_1,111:209,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,358:205,359:206,360:207,361:208},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,10]),o($V2,[2,344]),o($V2,[2,345]),o($Va2,$V62,{355:202,350:212,353:213,294:$Vb2}),o($Va2,[2,630],{169:216,71:[1,215],170:$Vc2}),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,33]),o($V2,[2,34]),o($V2,[2,35]),o($V2,[2,36]),o($V2,[2,218]),o($V2,[2,219]),o($V2,[2,220]),o($V2,[2,221]),o($V2,[2,222]),{14:[1,219],43:218,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},o($V2,[2,343]),{14:[1,222],43:210,105:$V_1,111:229,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:230,338:227,339:228,340:225,341:226,501:220,504:221,507:223,508:224},o([2,14,53,54,71,87,88,99,104,105,142,158,181,229,230,231,232,233,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$Ve2,{171:232,185:$Vf2,256:$Vg2}),o($V2,[2,13]),o($V2,[2,14]),{14:[1,235],24:[1,236],32:[1,237]},o($V2,[2,37]),o($V2,[2,38]),o($V2,[2,39]),{14:[1,238],24:[1,240],32:[1,241],41:239,142:$Vh2,253:$Vi2,284:$Vj2},o($V2,[2,223]),o($V2,[2,224]),o($V2,[2,225]),o($V2,[2,226]),{14:[1,245],24:[1,248],32:[1,249],41:246,142:$Vk2,253:$Vi2,284:$Vj2},{14:[1,250],218:[1,251]},{14:[1,253],22:252,117:$Vl2},{13:[1,257],14:[1,256],28:[1,255]},{14:[1,259],24:[1,258]},o($V2,[2,17],{22:260,117:$Vl2}),o($V2,[2,25]),{1:[2,358]},o($V0,$V1,{164:261}),{1:[2,359]},o($V2,[2,259]),o($Vm2,$V1,{164:262}),o($V2,[2,9]),{183:[1,263],235:[1,264]},o($V2,[2,297]),o($Vn2,[2,1152]),o($Vo2,[2,371]),o($Vo2,[2,372]),o($Vo2,[2,373]),o($Vo2,[2,368]),o($Vo2,[2,369]),o($Vo2,[2,370]),o($V2,[2,263]),o($V2,[2,265]),o($V52,$V62,{353:200,354:201,355:202,356:203,350:265,351:266,294:$V72}),{29:267,31:268,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1},o($Va2,$V62,{355:202,353:213,350:270,294:$Vb2}),o($Va2,[2,622]),o($Va2,[2,626]),o($V52,$Vp2,{355:271,356:272,294:$V72}),o($Va2,[2,635]),o($Vq2,[2,636]),o($Va2,[2,638],{355:202,353:273,294:$Vb2}),o([14,170,185,256],$V1,{164:274}),o([14,71,170],$Vr2,{77:[1,275]}),o($Vs2,[2,647]),o($Vt2,[2,648]),o($Vs2,[2,650],{77:[1,276]}),{14:[1,278],28:[1,277]},o($Vo2,[2,578]),{55:$Vu2,244:$Vv2},o($Va2,[2,625]),o($Va2,$Vp2,{355:271,294:$Vb2}),o([170,185,256],$V1,{164:281}),{29:282,166:284,169:283,170:$Vc2,357:$Vw2},o($Va2,$V62,{355:202,353:213,350:286,294:$Vb2}),o([2,53,54,71,87,88,99,104,105,142,158,181,229,230,231,232,233,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300],$Ve2,{171:287,185:$Vf2,256:$Vg2}),o($V2,[2,1192]),o($V2,[2,1193]),o($V2,[2,1169],{13:[1,288],14:[1,289]}),o($V2,[2,1168],{13:[1,290]}),o($V2,[2,1170]),o($Vx2,[2,1171]),o($Vy2,[2,1172]),o($Vx2,[2,1173]),o($Vy2,[2,1174]),o($Vx2,[2,585],{228:189,43:210,111:291,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Vy2,[2,587],{228:189,43:210,111:292,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Vz2,$VA2,{235:[1,293]}),o($VB2,[2,583]),{55:$Vu2,244:$Vv2,307:[1,294]},{2:$VC2,14:[1,299],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:308,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,172:295,174:296,177:297,179:298,180:300,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:301,419:302,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V83,[2,659]),o($V83,[2,660]),o($V2,[2,15]),{14:[1,380],25:378,26:379,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},{14:[1,385],25:383,26:384,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($V2,[2,40]),o([14,105,142,163,225,229,230,231],$V93,{42:386,45:387,268:$Va3}),o($Vb3,$V93,{42:389,45:390,268:$Va3}),o($Vb3,$V93,{42:391,45:392,268:$Va3}),{43:393,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},o($Vc3,[2,488]),o($Vc3,[2,489]),o($V2,[2,227]),o($Vd3,$Ve3,{153:394,155:395,268:$Vf3}),{43:397,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},o($Vb3,$Ve3,{153:398,155:399,268:$Vf3}),o($Vb3,$Ve3,{153:400,155:401,268:$Vf3}),o($V2,[2,347]),o($Vb3,$Vg3,{219:402,24:$Vh3}),o($V2,$Vi3,{14:[1,404]}),o($V2,[2,19]),{71:[1,405]},{14:[1,407],29:406,31:408,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1},o($V2,[2,26]),{14:[1,409]},o($Vb3,$Ve3,{153:410,155:411,268:$Vf3}),o($V2,[2,251]),o($V2,[2,18]),o($V2,$V3,{161:6,162:7,3:117,211:118,29:119,102:120,166:121,9:122,167:123,31:124,4:126,5:127,6:128,7:129,8:130,212:131,213:132,169:133,10:137,11:138,12:139,15:140,215:141,216:142,176:143,352:144,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,18:160,19:161,37:163,38:164,39:165,148:167,149:168,150:169,151:170,21:173,27:174,23:176,30:177,160:412,165:413,2:$V4,13:$V5,14:$V6,20:$V7,24:$V8,28:$V9,40:$Va,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vu,157:$Vv,158:$Vw,168:$Vx,170:$Vy,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$VJ,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,303:$VV1,357:$VW1,500:$VX1,514:$VY1}),o($V2,$V3,{161:6,162:7,3:117,211:118,29:119,4:126,5:127,6:128,7:129,8:130,212:131,213:132,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,169:283,166:284,160:414,21:418,27:419,2:$V4,13:$Vj3,20:$Vk3,24:$V8,28:$V9,40:$Vl3,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vm3,157:$Vv,158:$Vn3,170:$Vc2,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$Vo3,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,357:$Vw2,500:$Vp3,514:$Vq3}),{2:[1,425],43:427,51:429,53:$Vr3,54:$Vs3,88:[1,432],105:$V_1,142:$V$1,184:426,228:189,229:$V12,230:$V22,231:$V32,234:[1,434],235:$VP2,261:[1,431],293:[1,430],295:$V33,296:$V43,305:436,308:437,385:433,408:428,409:[1,435],414:352,415:353},{43:440,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},o($Va2,[2,623]),o($Va2,[2,629]),{73:[1,441]},{73:[1,442]},{71:$V42,169:195,170:$Vy,176:197},o($Va2,[2,628]),o($Vq2,[2,637]),o($Va2,[2,639],{355:202,353:443,294:$Vb2}),o($Va2,[2,640],{355:271,294:$Vb2}),{14:[1,445],170:$Ve2,171:444,185:$Vf2,256:$Vg2},{43:210,105:$V_1,111:209,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,360:446,361:447},{43:210,105:$V_1,111:449,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,358:448,360:207},{71:[1,450]},o($Vt3,[2,655]),{244:[1,451]},o($Vo2,[2,580]),{170:$Ve2,171:452,185:$Vf2,256:$Vg2},{73:[1,453]},o($Va2,$V62,{350:198,355:202,353:213,294:$Vb2}),{71:[1,455],169:454,170:$Vc2},{43:210,105:$V_1,111:449,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,358:456,360:207},o($Va2,[2,632]),{2:$VC2,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,172:457,174:458,180:459,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{14:$VF3,43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:478,505:479,509:480,510:481,511:482},o($V2,[2,1167]),{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:486,509:480,511:487},o($Vx2,[2,586]),o($Vy2,[2,588]),{43:210,105:$V_1,111:488,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,303:$VG3,327:491,329:489},o($VH3,[2,539]),{173:492,178:493,264:$VI3,364:494,366:495},o($VJ3,$VK3,{364:494,366:495,173:498,178:499,14:[1,500],77:[1,501],175:$VL3,264:$VI3}),{173:502,264:$VM3,364:503},o($Vq2,[2,276],{364:503,173:505,264:$VM3}),o($Vq2,[2,277],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,364:503,173:506,174:507,391:517,28:$V82,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,77:$VO3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VU3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,264:$VM3,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{77:[1,522],264:$V_3},o($V$3,[2,910]),o($V04,[2,912],{77:[1,523]}),o($V14,[2,298]),{77:[1,524]},o([14,73,77,163,175,225,264,294],$V24,{228:189,43:210,305:436,308:437,418:525,420:526,391:540,396:541,111:542,51:543,327:545,310:546,306:550,309:551,28:$V34,53:$VD2,54:$VE2,69:$V44,87:$V54,100:$V64,101:$V74,105:$V_1,134:$V84,142:$V$1,183:$V94,229:$V12,230:$V22,231:$V32,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,244:$Vd2,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($V$3,$Vk4),o($Vl4,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:552,391:565,28:$Vm4,53:$Vr3,54:$Vs3,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,105:$V_1,134:$Vq4,142:$V$1,183:$Vr4,229:$V12,230:$V22,231:$V32,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,244:$V92,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),{28:$Vz4},o($VA4,[2,733]),{14:[1,570],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:568,133:569,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:573,104:$VJ2,105:$V_1,111:357,130:571,133:572,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VC4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:575,133:576,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:[1,577],305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VC4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:579,133:580,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:[1,581],305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{71:$VD4,388:582,394:583},{14:[1,587],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:585,133:586,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:[1,591],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:589,133:592,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,258:$VE4,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,301:$VF4,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,392:588,393:317,397:590,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360,515:593,516:594,517:596,518:597},o($VG4,[2,763]),o($VA4,[2,865]),o($VA4,$VH4,{401:599,406:600,71:$VI4}),{71:$VI4,401:602,406:603},o($VA4,[2,869]),o($VA4,[2,870]),o($VG4,[2,871]),o($VG4,[2,872]),o($VG4,[2,875]),o($VA4,[2,882]),o($VJ4,$VK4,{235:[1,604]}),{71:[2,1034]},{71:[2,1035]},{71:[2,1036]},{71:[2,1037]},o($VA4,$VL4,{458:605,463:606,460:607,465:608,278:$VM4}),{14:[1,611],278:$VM4,460:610,465:612},o($VA4,[2,1022]),o($VG4,[2,883]),o($VG4,[2,878]),o($VG4,[2,1023]),o($VG4,[2,1025],{460:613,278:$VN4}),o($VG4,[2,1029]),o($VA4,[2,884]),o($VA4,[2,885]),o($VO4,[2,592]),o($VP4,[2,1043]),o($VP4,[2,1044]),o($VP4,[2,1045]),{71:[1,615]},{71:[1,616]},o($VG4,[2,886]),o($VG4,[2,1046]),o($VG4,[2,1047]),o($VG4,[2,1048]),o($VA4,[2,887]),o($VA4,[2,888]),o($VA4,[2,896]),o($VA4,[2,897]),o($VA4,[2,898]),o([2,14,28,50,53,54,69,71,73,77,87,99,100,101,104,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,235,240,241,242,244,245,246,247,250,254,255,257,258,259,262,264,265,266,269,270,271,272,276,277,280,281,283,285,288,290,291,292,294,299,301,302,390],[2,602]),{71:[1,617]},{71:[1,618]},{71:[1,619]},o($VG4,[2,899]),o($VG4,[2,900]),o($VA4,[2,889],{235:[1,620]}),{295:[1,621],296:[1,622]},{295:[1,623]},{53:$VQ4,55:$VR4,307:[1,626]},{54:$VS4,55:$VT4,307:[1,629]},o($VA4,[2,901]),o($VA4,[2,902]),{71:[2,1137]},{71:[2,1138]},{71:[2,1139]},{71:[2,1140]},{71:[2,1141]},{71:[2,1142]},{71:[2,1143]},{71:[2,1144]},o([14,117],[2,21]),o($VU4,[2,22]),o($VU4,[2,23]),o([13,14,28,53,54,73,77,105,117,132,142,157,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],$VV4,{235:[1,630]}),o($VW4,[2,557],{235:[1,631]}),o([13,14,28],[2,30]),o($V2,[2,31]),o($V2,[2,32]),o($V2,$VX4,{228:189,43:632,14:[1,633],105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),o($V2,[2,44],{228:189,43:634,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),{14:[1,636],87:[1,635]},{14:[1,639],43:210,56:637,57:638,58:640,61:641,64:642,67:643,105:$V_1,111:644,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:645},o($V2,[2,62]),{14:[1,647],43:210,64:646,67:648,105:$V_1,111:644,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:645},o($V2,[2,201]),o($V2,[2,217]),o($V2,[2,229],{228:189,43:210,111:649,14:[1,650],105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,[2,230],{228:189,43:210,111:651,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{14:[1,653],260:$VY4},o($V2,[2,235]),{14:[1,655],25:654,26:656,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($V2,[2,237],{228:189,43:210,25:657,111:658,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{14:[1,660],25:659,26:661,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($V2,[2,247],{228:189,43:210,111:658,25:662,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{14:[1,663],25:665,26:664,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($Vb3,[2,356]),o($V2,[2,20]),{43:210,79:668,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,319:666,336:667},o($V2,[2,24]),o($V2,[2,28]),o($V2,[2,29]),o($V2,[2,27]),{14:[1,670],25:669,26:671,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($V2,[2,253],{228:189,43:210,111:658,25:672,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,[2,262]),{163:[1,674],225:[2,363]},{163:$VZ4,225:[2,362]},{2:$VZ1,43:186,105:$V_1,142:$V$1,182:184,185:$V02,228:189,229:$V12,230:$V22,231:$V32},{43:218,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},{43:210,105:$V_1,111:676,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,338:227,340:225,501:675,507:223},{22:677,117:$Vl2},{28:[1,678]},{24:[1,680],32:[1,681],41:679,142:$Vh2,253:$Vi2,284:$Vj2},{24:[1,683],32:[1,684],41:682,142:$Vk2,253:$Vi2,284:$Vj2},{24:[1,685]},{218:[1,686]},{24:[1,687],32:[1,688]},o($V2,[2,295]),o($V2,[2,296]),o($V2,[2,1154]),o($V2,[2,1155],{228:189,43:689,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),o($V2,[2,1157]),o($V2,[2,1158]),o($V2,[2,1159]),o($V2,[2,1160]),o($V_4,[2,879]),{235:$VP2,295:$V33,296:$V43,385:690,414:352,415:353},{235:$VP2,295:$V33,296:$V43,385:691,414:352,415:353},o($V$4,[2,496]),o($V$4,[2,497]),{53:$VQ4,55:$VR4},{54:$VS4,55:$VT4},o($Vn2,[2,1153]),o($Va2,$V62,{355:202,353:213,350:692,294:$Vb2}),o($Va2,[2,627]),o($Va2,[2,641],{355:271,294:$Vb2}),{169:693,170:$Vy,176:694},o($Vq2,[2,643],{169:695,170:$Vc2}),o($Vt2,[2,649]),o($Vs2,[2,651],{77:[1,696]}),o($Vs2,[2,652],{77:$V05}),{28:[1,698]},o($V15,$V25,{362:699,102:700,363:701,441:702,14:$V6,303:$VV1}),o($Vo2,[2,579]),{169:693,170:$Vc2},o($Va2,[2,631]),o($Va2,$V62,{355:202,353:213,350:265,294:$Vb2}),{29:267,166:284,169:283,170:$Vc2,357:$Vw2},o([71,170],$Vr2,{77:$V05}),{173:492,264:$VM3,364:503},o($Vq2,$VK3,{173:498,364:503,77:[1,703],175:$VL3,264:$VM3}),{77:[1,704],264:$V_3},o([2,73,77,163,175,225,264,294],$V24,{228:189,43:210,305:436,308:437,418:525,391:540,111:542,51:543,28:$Vm4,53:$Vr3,54:$Vs3,69:$VN3,87:$V35,100:$V45,101:$V55,105:$V_1,134:$V65,142:$V$1,183:$V75,229:$V12,230:$V22,231:$V32,233:$V85,234:$V95,240:$Va5,241:$Vb5,244:$V92,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:718,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:719,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:720,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:721,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{71:$Vg5,388:582},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:723,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:724,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,301:$Vh5,305:354,308:355,322:318,342:470,385:340,386:309,392:588,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477,515:725,517:596},o($Vi5,$VH4,{401:599,71:$Vj5}),{71:$Vj5,401:602},o([2,28,53,54,69,71,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$VK4,{235:[1,728]}),o($Vi5,$VL4,{458:605,460:607,278:$VN4}),{278:$VN4,460:610},{71:[1,729]},{71:[1,730]},{71:[1,731]},{71:[1,732]},{71:[1,733]},o($Vk5,$Vl5,{503:734,506:735,77:[1,736],264:[1,737]}),o($Vm5,$Vl5,{503:738,264:$Vn5}),o($Vo5,[2,1175]),o($Vp5,[2,1177],{77:[1,740]}),{14:[1,742],183:[1,741]},o($Vq5,[2,1184]),o([14,183],[2,1185]),o($Vr5,[2,589],{235:[1,743]}),o($Vm5,$Vl5,{503:744,77:$Vs5,264:$Vn5}),{183:[1,746]},o($Vz2,[2,582]),o($VB2,[2,584]),o($VH3,[2,537]),o($VH3,[2,538]),o($Vq2,[2,270]),o($Vq2,[2,275]),o($Vt5,$Vu5,{365:747,195:749,201:750,196:751,210:752,14:[1,748],302:$Vv5}),o($Vw5,$Vu5,{365:754,201:755,196:756,302:$Vx5}),{14:[1,759],25:773,26:775,43:210,71:$VD4,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382,370:758,371:760,388:774,394:776,421:761,422:762,423:763,424:764,425:765,426:766,427:767,428:768,435:769,436:770,437:771,438:772},o($Vq2,[2,271]),o($Vq2,[2,273]),o($Vq2,[2,278]),o($Vq2,[2,283],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,364:503,173:777,174:779,53:$Vr3,54:$Vs3,71:$Vu3,77:[1,778],87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,264:$VM3,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{2:$VC2,14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:782,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,180:780,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:781,419:783,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($Vq2,[2,274]),o($Vw5,$Vu5,{365:747,201:755,196:756,302:$Vx5}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,370:784,388:774,421:761,423:763,425:785,426:766,435:769,436:786},o($Vq2,[2,279]),o($Vq2,[2,280]),o($V04,[2,913],{77:$Vy5}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:788,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:789,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:790,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:791,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:792,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:793,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:794,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($Vl4,$Vk4,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:795,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:796,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,841]),{43:210,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:718,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,391:797,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:798,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:799,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:800,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{14:$Vz5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:803,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,174:801,179:802,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:301,419:302,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:805,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VA5},o($V$3,[2,905]),o($Vl4,[2,909]),o($VB5,$VC5,{387:807,14:[1,808],87:[1,809]}),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:810,133:812,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:811,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:815,133:817,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:816,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:818,133:820,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:819,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:821,133:823,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:822,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:[1,827],69:$V44,245:[1,825],269:[1,824],280:$Vi4,281:$Vj4,391:826,396:828},{71:[1,829],395:830},{14:[1,833],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:831,133:832,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:834,133:836,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:835,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:837,133:839,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:838,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:840,133:842,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:841,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:843,133:845,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:844,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:846,133:848,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:847,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,759]),o($VG4,[2,839]),o($VD5,[2,1011]),o($VD5,[2,1012]),{14:[1,853],43:210,51:850,53:$VD2,54:$VE2,105:$V_1,111:849,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,305:436,306:550,308:437,309:551,310:852,327:851},o($VE5,[2,1015]),o($VE5,[2,1016]),{14:$VF5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:854,133:855,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,327:858,328:856,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VF5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:859,133:860,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,327:858,328:861,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VF5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:862,133:863,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,327:858,328:864,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VE5,[2,498]),o($VE5,[2,499]),o($Vl4,[2,907]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:865,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:866,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:867,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:868,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,245:[1,870],269:[1,869],280:$VY3,281:$VZ3,391:871},{71:[1,872]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:873,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:874,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:875,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:876,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:877,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:878,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,837]),{43:210,51:850,53:$Vr3,54:$Vs3,105:$V_1,111:849,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,305:436,308:437},{43:210,105:$V_1,111:879,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VG5,$VH5,{391:540,396:541,69:$V44,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VI5,[2,765],{391:565,69:$VN3,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VJ5,[2,766],{391:517,69:$VN3,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),o($VG5,$VL5,{391:540,396:541,69:$V44,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VI5,[2,767],{391:565,69:$VN3,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VG4,[2,768]),o([2,28,53,54,71,73,77,87,88,99,100,101,104,105,134,142,158,163,183,187,188,189,190,191,192,193,194,225,229,230,231,232,233,234,235,238,239,240,241,242,243,244,245,248,249,251,255,258,259,260,261,264,265,266,268,269,272,273,274,276,277,286,287,289,290,293,294,295,296,297,298,300,301,302,390],$V82,{391:517,69:$VN3,280:$VY3,281:$VZ3}),o($VG5,$VM5,{391:540,396:541,69:$V44,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VI5,[2,769],{391:565,69:$VN3,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VG4,[2,770]),{69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3,391:517},o($VO5,$VP5,{391:540,396:541}),o($VQ5,[2,771],{391:565}),o($VG4,[2,772]),o($VA4,[2,742]),o($VG4,[2,781]),o($V15,$V25,{441:702,388:774,362:882,436:883,363:884,102:885,14:$V6,71:$Vg5,303:$VV1}),{69:$V44,73:$VR5,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},{2:$VS5,69:$VN3,73:$VT5,75:887,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,391:565},{2:$VS5,69:$VN3,73:$VT5,75:890,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3,391:517},o($VA4,[2,761]),{14:[1,893],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,258:$VE4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,301:$VF4,391:540,392:891,396:541,397:892,515:593,516:594,517:596,518:597},o($VG4,[2,843]),{2:$VU5,43:210,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,79:342,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,111:357,130:897,134:$VS3,142:$V$1,158:$VK2,183:$VT3,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,258:$VV5,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,290:$VX5,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,301:$Vh5,305:354,308:355,322:318,342:470,385:340,386:309,391:517,392:895,398:894,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477,515:725,517:596},{2:$VU5,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,259:$VW5,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,301:$Vh5,391:565,392:901,398:902,515:725,517:596},{14:[1,905],258:[1,904],259:$VY5,301:$VF4,517:906,518:907},{2:$VU5,258:[1,909],259:$VW5,398:908},{14:[1,910]},o($VZ5,[2,1221]),o($V_5,[2,1223],{517:596,515:911,301:$Vh5}),{14:[1,915],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:912,133:913,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,290:[1,914],293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,867]),o($VG4,[2,873]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,73:$V$5,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:918,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:917,393:317,399:919,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,868]),o($VG4,[2,874]),{43:210,79:924,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,233:$V16,244:$Vd2,303:$VG3,327:491,329:925},o($VA4,[2,1020]),o($VG4,[2,1024]),o($VA4,[2,1055]),o($VG4,[2,1056]),{43:210,71:[1,929],105:$V_1,111:926,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,475:927,476:928},o($VA4,[2,1021]),o($VG4,[2,1027]),o($VG4,[2,1028]),o($VG4,[2,1026]),{43:210,71:[1,930],105:$V_1,111:926,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,475:927},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,73:$V26,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:933,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:932,393:317,399:934,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,28:[1,939],43:210,53:$VD2,54:$VE2,71:$VF2,73:$V36,79:342,87:$VG2,88:$VH2,99:$VI2,102:937,104:$VJ2,105:$V_1,111:357,130:935,133:938,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o([14,53,54,71,77,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$Ve2,{171:942,73:$V46,185:$Vf2,233:$V56,256:$Vg2}),o([14,53,54,71,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$Ve2,{171:943,73:$V66,185:$Vf2,256:$Vg2}),o([14,53,54,71,73,77,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$Ve2,{171:945,185:$Vf2,256:$Vg2}),o($VA4,[2,890],{295:[1,946],296:[1,947]}),o($VA4,[2,892]),{295:[1,948]},o($VA4,[2,893]),{53:$V76},o($V86,[2,491]),o($V96,[2,492]),{54:$Va6},o($V86,[2,494]),o($V96,[2,495]),{43:210,105:$V_1,111:951,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,303:$VG3,327:491,329:952},{43:210,105:$V_1,111:953,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vb6,$Vc6,{44:954,46:955,47:956,48:957,49:958,52:959,50:[1,960]}),o($V2,[2,43],{228:189,43:961,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),o($V2,[2,46]),{14:[1,963],260:$Vd6},o($V_4,[2,510]),o($V2,[2,59]),o($V2,[2,60]),o($V2,[2,61]),o($Ve6,$Vf6,{59:964,62:965,116:966,117:[1,967]}),o($Vg6,$Vf6,{116:966,59:968,117:$Vh6}),o($Vi6,$Vj6,{65:970,66:971,68:972,70:974,69:[1,973],71:[1,975]}),o($Vk6,$Vj6,{68:972,65:976,69:$Vl6,71:$Vm6}),o($Vn6,$Vo6,{235:[1,979]}),o($Vp6,[2,562],{235:[1,980]}),o($Vq6,$Vr6,{136:981,137:982,138:983,71:[1,984]}),o($V2,[2,199],{228:189,43:210,64:985,111:986,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Vs6,$Vr6,{138:983,136:987,71:$Vt6}),o($V2,$Vu6,{154:989,14:[1,990],315:$Vv6}),o($V2,[2,231],{228:189,43:210,111:992,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,$Vu6,{154:993,315:$Vv6}),o($Vd3,[2,506]),o([105,142,163,225,229,230,231,244],[2,507]),o($Vb6,$Vw6,{156:994,157:$Vx6}),o($V2,[2,238]),o($V2,$Vw6,{156:996,157:$Vx6}),o($V2,$Vw6,{156:997,157:$Vx6}),o($VW4,$VV4,{235:[1,998]}),o($V2,[2,244]),o($V2,[2,245],{228:189,43:210,111:658,25:999,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,[2,249]),o($V2,[2,248]),o($V2,[2,348]),o($V2,[2,349],{132:[1,1000]}),{14:[1,1001],132:$Vy6},{73:[1,1003],77:[1,1004]},o($Vz6,[2,567]),{183:[1,1005]},o($V2,$VA6,{14:[1,1006]}),o($V2,[2,252],{228:189,43:210,111:658,25:1007,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,[2,254]),o($V2,[2,515],{159:1008,22:1009,117:$Vl2}),o($Vm2,$V1,{164:1010}),o($Vm2,$V1,{164:1011}),{13:[1,1012]},o([13,105,142,229,230,231,244],$VA2,{235:[1,1013]}),o($V2,$Vi3),{29:406,166:284,169:283,170:$Vc2,357:$Vw2},o($V_4,$V93,{42:1014,268:$VB6}),o($VC6,$V93,{42:1016,268:$VB6}),o($VC6,$V93,{42:1017,268:$VB6}),o($VC6,$Ve3,{153:1018,268:$VD6}),o($VC6,$Ve3,{153:1020,268:$VD6}),o($VC6,$Ve3,{153:1021,268:$VD6}),o($VC6,$Ve3,{153:1022,268:$VD6}),o($VC6,$Vg3,{219:1023,24:$Vh3}),{25:378,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{25:383,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($V2,[2,1156]),o($V_4,[2,880]),o($V_4,[2,881]),o($Va2,[2,624]),o($Vq2,[2,642]),o($Vq2,[2,645]),o($Vq2,[2,644]),{43:210,105:$V_1,111:449,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,358:1024,360:207},{43:210,105:$V_1,111:449,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,360:446},{71:[1,1025]},{73:[1,1026]},{2:$VS5,73:$VT5,75:1027},{2:$VS5,73:$VT5,75:1028},{29:1043,31:1044,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1,443:1029,444:1030,445:1031,446:1032,447:1033,448:1034,449:1035,450:1036,451:1037,452:1038,453:1039,454:1040,455:1041,456:1042},{2:$VC2,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,180:1045,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:781,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:1046,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VB5,$VC5,{387:1047,87:[1,1048]}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1049,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1050,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1051,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1052,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,245:[1,1054],269:[1,1053],280:$VY3,281:$VZ3,391:826},{71:[1,1055]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1056,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1057,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1058,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1059,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1060,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1061,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VE6,$VH5,{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VE6,$VL5,{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VE6,$VM5,{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VF6,$VP5,{391:540}),o($V15,$V25,{388:774,362:882,436:883,441:1062,71:$Vg5}),{69:$VN3,73:$VR5,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,301:$Vh5,391:540,392:891,515:725,517:596},{258:[1,1063],259:$VY5,301:$Vh5,517:906},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1064,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,73:$V$5,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1065,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,79:924,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,233:$V16,244:$V92},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,73:$V26,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1067,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,73:$V36,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1068,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG6,$Ve2,{171:1069,73:$V46,185:$Vf2,233:$V56,256:$Vg2}),o($VG6,$Ve2,{171:1070,73:$V66,185:$Vf2,256:$Vg2}),o([53,54,71,73,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300],$Ve2,{171:1071,185:$Vf2,256:$Vg2}),o($Vb6,$Vu5,{196:756,201:1072,210:1073,302:$Vv5}),o($V2,$Vu5,{196:756,201:1074,302:$Vx5}),{14:$VF3,43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,509:1075,510:1076,511:482},{14:[1,1078],25:773,26:775,43:210,71:$VD4,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382,388:774,394:776,421:1077,422:1079,423:763,424:764,425:765,426:766,427:767,428:768,435:769,436:770,437:771,438:772},o($V2,$Vu5,{196:756,201:1080,302:$Vx5}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,421:1077,423:763,425:785,426:766,435:769,436:786},{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:1081,509:480,511:487},{14:$VC4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1084,133:1085,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360,512:1082,513:1083},o($Vq5,[2,1183]),{43:210,79:924,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,233:[1,1086],244:$V92},o($V2,$Vu5,{196:756,201:1087,302:$Vx5}),{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,509:1075,511:487},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1088,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477,512:1082},o($Vq2,[2,661]),o($VH6,$Vu5,{201:755,196:756,365:1089,302:$Vx5}),o($Vq2,$VI6,{367:1090,368:1091,369:1092,430:1093,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($VR6,$VS6,{197:1102,209:1103,205:1104,265:$VT6}),o($Vt5,$VU6,{2:[1,1106],14:[1,1107]}),o($VV6,$VS6,{197:1108,209:1109,265:$VW6}),{14:[1,1113],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1114,133:1115,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,372:1111,373:1112,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($Vq2,[2,662]),o($VV6,$VS6,{209:1109,197:1116,265:$VW6}),o($VX6,$VU6),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1117,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,372:1111,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o([14,73,163,225,265,266,272,277,294,302],$VY6,{77:[1,1118]}),o($VZ6,[2,669]),o($VZ6,[2,670]),o($V_6,[2,925]),o($VZ6,[2,927],{77:[1,1119]}),o($V_6,[2,932]),o($V$6,[2,933]),o($V07,$V17,{368:1120,429:1121,430:1122,432:1123,186:1131,187:$V27,188:$V37,189:$V47,190:$V57,191:$VN6,192:$V67,193:$V77,194:$V87}),o($V_6,[2,935]),o($V$6,[2,936],{368:1132,430:1133,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($V$6,[2,937]),o($V97,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:1134,28:$Vm4,53:$Vr3,54:$Vs3,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o([14,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,275,277,294,302],$V24,{228:189,43:210,305:436,308:437,111:542,51:543,327:545,310:546,306:550,309:551,418:1135,420:1136,28:$V34,53:$VD2,54:$VE2,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$Vd2}),o($Va7,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:1137,28:$Vm4,53:$Vr3,54:$Vs3,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Va7,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:1138,28:$Vm4,53:$Vr3,54:$Vs3,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Vb7,[2,980]),o($Vb7,[2,982]),o($Vc7,[2,981]),o($Vc7,[2,983]),o($Vq2,[2,281]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,173:1139,174:1140,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,264:$VM3,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,364:503,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V04,[2,916],{77:$Vy5}),{77:[1,1141],264:$Vd7},o($V$3,[2,911]),o($V04,[2,918],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,174:1142,28:$Vz4,53:$Vr3,54:$Vs3,71:$Vu3,77:[1,1143],87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($V04,[2,919],{77:[1,1144]}),o($VZ6,$VY6,{77:$Ve7}),o($V$6,$V17,{430:1133,368:1146,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Va7,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:1135,28:$Vm4,53:$Vr3,54:$Vs3,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:781,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V04,[2,914],{77:$Vy5}),o($VQ5,[2,784],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,785],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,786],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,787],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,818],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,822],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,826],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,827],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VG4,[2,842]),o($VF6,$Vf7,{391:540}),o($VF6,$Vg7,{391:540}),o($VF6,$Vh7,{391:540}),{14:$Vi7,77:[1,1147],264:$Vj7},{264:[2,289]},{28:$Vz4,264:[2,292]},o([28,264],$V82,{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,174:507,391:517,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,77:$VO3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VU3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($V04,[2,915],{77:$Vy5}),o($V14,[2,299]),{88:$Vk7,256:[1,1152],261:$Vl7,293:$Vm7},o($VG4,[2,773],{88:[1,1153],261:[1,1154],293:[1,1155]}),o($VB5,$Vn7,{14:[1,1156]}),o($Vo7,$Vp7,{391:540,396:541,69:$V44,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,792]),o($Vq7,[2,796],{391:565,69:$VN3,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VG4,[2,533]),o($VG4,[2,534]),o($Vo7,$Vr7,{391:540,396:541,69:$V44,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,793]),o($Vq7,[2,797],{391:565,69:$VN3,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($Vo7,$Vs7,{391:540,396:541,69:$V44,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,794]),o($Vq7,[2,798],{391:565,69:$VN3,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($Vo7,$Vt7,{391:540,396:541,69:$V44,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,795]),o($Vq7,[2,799],{391:565,69:$VN3,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),{71:[1,1157],395:1158},{14:[1,1161],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1159,133:1160,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,760]),o($VG4,[2,764]),o($VG4,[2,840]),o($V15,$V25,{228:189,43:210,386:309,393:317,322:318,400:319,402:320,403:321,404:323,405:324,407:325,410:326,342:327,457:332,459:333,461:334,411:335,344:336,462:337,464:338,466:339,385:340,412:341,79:342,469:343,470:344,471:345,413:348,472:349,473:350,474:351,414:352,415:353,305:354,308:355,416:356,111:357,498:360,306:361,309:362,441:702,130:920,133:921,362:1162,389:1163,363:1164,399:1165,102:1166,14:$VB4,53:$VD2,54:$VE2,71:$VF2,77:$V06,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1}),o($VG4,[2,801]),{14:[1,1168],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,390:[1,1167],391:540,396:541},{69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,390:[1,1169],391:565},o($Vu7,[2,817],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),o($Vv7,$Vw7,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,820]),o($Vx7,[2,821],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,245:$Vw4,269:$Vx4,280:$VY3,281:$VZ3}),o($Vv7,$Vy7,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,824]),o($Vx7,[2,825],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,245:$Vw4,269:$Vx4,280:$VY3,281:$VZ3}),o($VO5,$Vz7,{391:540,396:541,69:$V44,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,831]),o($VQ5,[2,834],{391:565,69:$VN3,269:$Vx4,280:$VY3,281:$VZ3}),o($VO5,$VA7,{391:540,396:541,69:$V44,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,832]),o($VQ5,[2,835],{391:565,69:$VN3,269:$Vx4,280:$VY3,281:$VZ3}),o($VO5,$VB7,{391:540,396:541,69:$V44,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,833]),o($VQ5,[2,836],{391:565,69:$VN3,269:$Vx4,280:$VY3,281:$VZ3}),o($VD5,[2,1013]),o($VD5,[2,1014]),o($VE5,[2,1017]),o($VE5,[2,1018]),o($VE5,[2,1019]),o($VO5,$Vf7,{391:540,396:541}),o($VQ5,[2,1200],{391:565}),o($VG4,[2,1203]),o([2,28,53,54,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,276,277,290,294,301,302,390],[2,535],{391:517,69:$VN3,280:$VY3,281:$VZ3}),o($VG4,[2,536]),o($VO5,$Vg7,{391:540,396:541}),o($VQ5,[2,1201],{391:565}),o($VG4,[2,1204]),o($VO5,$Vh7,{391:540,396:541}),o($VQ5,[2,1202],{391:565}),o($VG4,[2,1205]),o($Vq7,[2,788],{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vq7,[2,789],{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vq7,[2,790],{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vq7,[2,791],{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),{71:[1,1170]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1171,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,838]),o($V15,$V25,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,441:1062,130:1066,389:1172,362:1173,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,390:[1,1174],391:540},o($Vx7,[2,819],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vx7,[2,823],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,828],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,829],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,830],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vl4,[2,908]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:795,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,280:$VY3,281:$VZ3,391:797},{73:[1,1175]},{28:$Vm4,43:210,51:543,53:$Vr3,54:$Vs3,73:$V24,105:$V_1,111:542,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,305:436,308:437,418:1176},{2:$VS5,73:$VT5,75:1177},{2:$VS5,73:$VT5,75:1178},o($VA4,[2,743]),o($VG4,[2,782]),o($VC7,[2,540]),o($VC7,[2,541]),o($VG4,[2,783]),o($VA4,[2,762]),o($VG4,[2,845]),{2:$VU5,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:897,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,258:$VV5,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,290:$VX5,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,398:1179,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,844]),o($VG4,[2,849]),{2:$VU5,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1180,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,398:1181,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,290:$VD7,391:540},o($VE7,[2,1236],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1183,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VG4,[2,1219]),o($VG4,[2,1220]),o($VG4,[2,847]),o($VG4,[2,848]),o($VA4,[2,1206]),{14:[1,1186],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1184,133:1185,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{2:$VU5,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1187,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,290:$VX5,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,301:$Vh5,305:354,308:355,322:318,342:470,385:340,386:309,398:1188,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477,515:1189,517:596},o($VZ5,[2,1222]),o($V_5,[2,1224],{517:596,515:1190,301:$Vh5}),o($VG4,[2,1208]),{2:$VU5,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1191,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,398:1192,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VU5,259:$VW5,398:1193},o($V_5,[2,1227],{517:906,301:$Vh5}),{14:[1,1195],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,290:[1,1194],391:540,396:541},o($VE7,[2,1229],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,290:[1,1196]}),{14:[1,1198],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1199,133:1197,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VE7,[2,1238],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1200,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,290:[1,1201],293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VA4,[2,1038]),{14:[1,1203],73:$VF7,77:$VG7},{2:$VS5,73:$VT5,75:1205,77:$VH7},{2:$VS5,73:$VT5,75:1207},o($VI7,$VJ7,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VK7,[2,852],{391:565,69:$VN3,77:[1,1208],87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),{14:$V6,102:1209,303:$VV1},o($VJ4,[2,877]),o($VO4,[2,593]),o($VG4,[2,594],{235:[1,1210]}),o($VA4,[2,1057]),o($VA4,[2,1058]),o($VG4,[2,1059]),o($VL7,$VM7,{477:1211,479:1212,102:1213,481:1215,14:$V6,117:[1,1214],303:$VV1}),o($VL7,$VM7,{481:1215,477:1216,117:$VN7}),o($VO7,[2,1049]),{14:[1,1219],73:$VP7,77:$VG7},{2:$VS5,73:$VT5,75:1220,77:$VH7},{2:$VS5,73:$VT5,75:1221},{14:[1,1223],28:[1,1222],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},o($VA4,[2,1115]),{2:$VS5,28:[1,1224],73:$VT5,75:1225},{2:$VS5,28:[1,1226],69:$VN3,73:$VT5,75:1227,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,391:565},{14:[1,1228]},{73:[1,1229]},o($VP4,[2,1127]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:1231,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:1230,393:317,399:1232,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1234,104:$VJ2,105:$V_1,111:357,130:1233,133:1235,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VP4,[2,1148]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,73:$VQ7,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:1238,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:1237,393:317,399:1239,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,891]),{295:[1,1240]},o($VA4,[2,894]),o($V86,[2,490]),o($V86,[2,493]),o([2,13,14,28,53,54,73,77,105,117,132,142,157,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],[2,556]),o($VW4,[2,559]),o($VW4,[2,558]),o($V2,$VR7,{14:[1,1241]}),{2:[1,1242]},o($Vb6,[2,49]),{2:[2,50]},o([2,14,28,73,77,101,163,225],[2,52]),{2:[2,54]},{51:1243,53:[1,1244],54:[1,1245],305:436,308:437},o($V2,[2,45]),o($Vd3,[2,509]),o($V_4,[2,511]),o($V2,$VS7,{60:1246,63:1247,14:[1,1248],28:[1,1249]}),o($V2,$VS7,{60:1250,28:$VT7}),o($Ve6,[2,156]),{14:[1,1252],118:[1,1253]},o($V2,$VS7,{60:1254,28:$VT7}),{118:[1,1255]},o($Vi6,[2,68]),o($Vk6,[2,69]),o($Vi6,[2,72]),{14:[1,1257],25:1256,26:1258,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($Vk6,[2,74]),{43:210,72:1259,74:1260,76:1261,78:1262,79:1263,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vk6,[2,70]),{25:1256,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,72:1264,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,105:$V_1,111:1267,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,303:$VG3,327:491,329:1268},{43:210,105:$V_1,111:1269,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o([14,28],$Vc6,{49:958,47:1270,50:$VU7}),o($V2,$Vc6,{49:958,47:1272,50:$VU7}),o($Vq6,[2,208]),{43:210,79:342,105:$V_1,111:357,139:1274,140:1273,141:1275,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($Vs6,$Vr6,{138:983,136:1276,71:$Vt6}),o($Vp6,$Vo6,{235:[1,1277]}),{28:$Vc6,47:1278,49:958,50:$VU7},{43:210,79:342,105:$V_1,111:357,139:1279,141:1280,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($V2,[2,228]),o($V2,[2,232]),o($V2,[2,504]),o($V2,$Vu6,{154:1281,315:$Vv6}),o($V2,[2,233]),o($V2,$VV7,{14:[1,1282]}),o($Vb6,[2,243]),o($V2,[2,239]),o($V2,[2,240]),{43:210,105:$V_1,111:951,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($V2,[2,246]),{71:$VW7,220:1283,221:1284,222:$VX7},o($V2,[2,350]),{71:$VW7,220:1287,221:1284,222:$VX7},o($Vb6,[2,518]),{43:210,79:668,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,336:1288},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1289,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V2,[2,255]),o($V2,[2,256]),o($V2,[2,257]),o($V2,[2,516]),o($V2,$V3,{161:6,162:7,3:117,211:118,29:119,4:126,5:127,6:128,7:129,8:130,212:131,213:132,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,169:283,166:284,160:412,21:418,27:419,2:$V4,13:$Vj3,20:$Vk3,24:$V8,28:$V9,40:$Vl3,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vm3,157:$Vv,158:$Vn3,170:$Vc2,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$Vo3,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,357:$Vw2,500:$Vp3,514:$Vq3}),o($V2,$V3,{161:6,162:7,3:117,211:118,29:119,4:126,5:127,6:128,7:129,8:130,212:131,213:132,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,169:283,166:284,21:418,27:419,160:1290,2:$V4,13:$Vj3,20:$Vk3,24:$V8,28:$V9,40:$Vl3,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vm3,157:$Vv,158:$Vn3,170:$Vc2,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$Vo3,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,357:$Vw2,500:$Vp3,514:$Vq3}),{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:1291,509:480,511:487},{43:210,105:$V_1,111:488,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($V2,$VX4,{228:189,43:1292,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),{87:[1,1293]},{43:210,56:637,58:1294,64:1295,105:$V_1,111:986,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,64:1296,105:$V_1,111:986,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,105:$V_1,111:1297,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{260:$VY4},{25:1298,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{25:659,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{25:1299,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{25:1300,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vs2,[2,653],{77:$V05}),o($V15,$V25,{362:699,441:1062}),o($Vt2,[2,654]),o($Vt3,[2,656]),o($Vt3,[2,657]),o($VY7,[2,994]),o($VY7,[2,989],{442:1301}),o($VY7,[2,996]),o($VY7,[2,997]),o($VY7,[2,998]),o($VY7,[2,999]),o($VY7,[2,1000]),o($VY7,[2,1001]),o($VY7,[2,1002]),o($VY7,[2,1003]),o($VY7,[2,1004]),o($VY7,[2,1005]),o($VY7,[2,1006]),o($VY7,[2,1007]),o($VY7,[2,1008]),o($VY7,[2,1009]),{77:[1,1302],264:$Vd7},{77:[1,1303],264:$Vj7},{88:$Vk7,256:[1,1304],261:$Vl7,293:$Vm7},o($VB5,$Vn7),o($VZ7,$Vp7,{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VZ7,$Vr7,{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VZ7,$Vs7,{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VZ7,$Vt7,{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),{71:[1,1305]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1306,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V15,$V25,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,441:1062,130:1066,362:1162,389:1307,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,390:[1,1308],391:540},o($V_7,$Vw7,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($V_7,$Vy7,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VF6,$Vz7,{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VF6,$VA7,{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VF6,$VB7,{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),{29:1043,166:284,169:283,170:$Vc2,357:$Vw2,443:1029,445:1031,447:1033,449:1035,451:1037,453:1039,455:1041},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1309,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,290:[1,1310],391:540},{73:$VF7,77:$V$7},o($V08,$VJ7,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{73:$VP7,77:$V$7},{28:[1,1312],69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1313,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1314,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,73:$VQ7,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1315,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V2,$V18,{14:[1,1316]}),o($V2,[2,1165]),o($V2,[2,1164]),o($Vo5,[2,1176]),o($Vp5,[2,1178],{77:[1,1317]}),o($Vk5,[2,1189]),o($Vm5,[2,1190]),o($Vm5,[2,1191]),o($V2,[2,1163]),o($Vp5,[2,1179],{77:$Vs5}),o($Vo5,[2,1181]),o($Vq5,[2,1182]),o($Vo5,$V28,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($Vq5,[2,1187],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vr5,[2,590]),o($V2,[2,1162]),o($Vq5,$V28,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vq2,$VI6,{368:1091,369:1092,430:1093,367:1318,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Vq2,[2,664]),o($Vq2,[2,666],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Vq2,[2,667]),o($Vq2,[2,943],{228:189,43:210,111:658,435:769,25:773,388:774,436:786,430:1133,425:1320,368:1321,71:$Vg5,105:$V_1,142:$V$1,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6,229:$V12,230:$V22,231:$V32,244:$V92}),{191:$V38},{191:$V48,192:[1,1324]},{191:$V58},o($V68,[2,958]),{191:$V78,192:[1,1328],193:[1,1326],194:[1,1329]},{191:$V88},{191:$V98,192:[1,1333],193:[1,1331],194:[1,1334]},{191:$Va8},o($Vb8,$Vc8,{198:1336,202:1337,206:1338,266:$Vd8}),o($VR6,$Ve8,{2:[1,1340],14:[1,1341]}),o($Vf8,$Vc8,{198:1342,202:1343,266:$Vg8}),{14:[1,1346],118:[1,1345]},o([266,272,277],$VS6,{209:1109,205:1348,197:1349,14:[1,1347],265:$VT6}),o($VV6,$VS6,{209:1109,197:1350,265:$VW6}),o($Vf8,$Vc8,{202:1343,198:1351,266:$Vg8}),o($VV6,$Ve8),{118:[1,1352]},o($VX6,[2,674]),o($VH6,[2,675]),o($VH6,[2,676],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o([2,14,73,163,225,265,266,272,277,294],$Vh8,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VH6,[2,732],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vf8,$Vc8,{202:1343,198:1353,266:$Vg8}),o($VH6,$Vh8,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{14:$V6,25:773,26:775,43:210,71:$VD4,102:1356,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,303:$VV1,327:382,388:774,394:776,421:1354,422:1355,423:763,424:764,425:765,426:766,427:767,428:768,435:769,436:770,437:771,438:772},{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,421:1357,423:763,425:785,426:766,435:769,436:786},o($V07,$Vi8,{186:1131,430:1358,432:1359,187:$V27,188:$V37,189:$V47,190:$V57,191:$VN6,192:$V67,193:$V77,194:$V87}),o($V$6,[2,939]),{14:$Vj8,25:773,26:775,43:210,71:$VD4,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382,388:774,394:776,425:1360,427:1361,435:769,436:770,437:771,438:772},o($V$6,[2,950],{430:1133,368:1363,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),{14:[1,1364],191:$V38},{14:[1,1366],191:$V48,192:[1,1365]},{14:[1,1367],191:$V58},{14:[1,1371],191:$V78,192:[1,1369],193:[1,1368],194:[1,1370]},{14:[1,1372],191:$V88},{14:[1,1376],191:$V98,192:[1,1374],193:[1,1373],194:[1,1375]},{14:[1,1377],191:$Va8},o($Vk8,[2,946],{228:189,43:210,111:658,435:769,25:773,388:774,436:786,425:1378,71:$Vg5,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V$6,[2,940],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,425:1320,435:769,436:786},o($V97,[2,975]),o($V97,[2,976]),o($Va7,[2,979]),o($Va7,[2,977]),o($Va7,[2,978]),o($Vq2,[2,282]),o($V04,[2,917],{77:$Vy5}),{14:$Vz5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1381,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,174:1379,179:1380,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:301,419:302,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V04,[2,920],{77:$Vy5}),o($V04,[2,921],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,174:1382,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($V04,[2,922],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,174:1383,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,421:1354,423:763,425:785,426:766,435:769,436:786},o($V$6,$Vi8,{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),{2:$VC2,14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:782,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,180:1384,181:[1,1385],228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:781,419:783,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,77:[1,1386],79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:779,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VA4,[2,738]),o($VA4,[2,739]),o($VA4,[2,740]),{14:[1,1388],264:[1,1387]},o($VG4,[2,776]),o($VG4,[2,777]),o($VG4,[2,778]),o($VG4,[2,774]),o($V15,$V25,{228:189,43:210,386:309,393:317,322:318,400:319,402:320,403:321,404:323,405:324,407:325,410:326,342:327,457:332,459:333,461:334,411:335,344:336,462:337,464:338,466:339,385:340,412:341,79:342,469:343,470:344,471:345,413:348,472:349,473:350,474:351,414:352,415:353,305:354,308:355,416:356,111:357,498:360,306:361,309:362,441:702,130:920,133:921,363:1164,399:1165,102:1166,362:1389,389:1390,14:$VB4,53:$VD2,54:$VE2,71:$VF2,77:$V06,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1}),o($VG4,[2,800]),{14:[1,1392],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,390:[1,1391],391:540,396:541},{69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,390:[1,1393],391:565},o($VJ5,[2,811],{391:517,69:$VN3,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),{73:[1,1394]},{14:$Vl8,73:$Vm8,77:$VG7},{2:$VS5,73:$VT5,75:1397},{2:$VS5,73:$VT5,75:1398},{2:$VS5,73:$VT5,75:1399,77:$VH7},{14:[1,1402],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1400,133:1401,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VG4,[2,816]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1403,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V15,$V25,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,441:1062,130:1066,389:1404,362:1405,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,390:[1,1406],391:540},{2:$VS5,73:$VT5,75:1407,77:$V$7},{2:$VS5,73:$VT5,75:1408},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1409,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($Vn8,[2,990]),{73:[1,1410]},o($V96,[2,992]),o($V96,[2,993]),o($VG4,[2,846]),{2:$VU5,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,259:$VW5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540,398:1411},o($VG4,[2,1218]),o($VE7,[2,1234],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1412,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VE7,[2,1237],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{14:[1,1414],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,259:$Vo8,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},{2:$VU5,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,259:$VW5,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,391:565,398:1415},{2:$VU5,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,259:$VW5,276:$VX3,280:$VY3,281:$VZ3,391:517,398:1416},{2:$VU5,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,259:$VW5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,290:$VD7,391:540,398:1417},o($VG4,[2,1213]),o($V_5,[2,1226],{517:906,301:$Vh5}),o($V_5,[2,1225],{517:906,301:$Vh5}),{2:$VU5,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,259:$VW5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540,398:1418},o($VG4,[2,1211]),o($VG4,[2,1216]),{14:[1,1421],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1419,133:1420,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VE7,[2,1242],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1422,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VE7,[2,1230],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1423,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VE7,[2,1233],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($VE7,[2,1247],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1424,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},o($VE7,[2,1239],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VE7,[2,1240],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1425,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VA4,[2,1039]),{2:$VS5,73:$VT5,75:1426,77:$Vp8},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1430,104:$VJ2,105:$V_1,111:357,130:1428,133:1429,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VG4,[2,1040]),o($VK7,[2,860],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1066,389:1431,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VG4,[2,1042]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1432,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VK7,[2,861],{77:[1,1433]}),{43:210,79:342,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:1434},{73:$Vq8,203:1437,207:1438,277:$Vr8,478:1435,480:1436},o($VY7,$Vq8,{478:1440,203:1441,277:$Vs8}),o($VK7,$VM7,{481:1215,477:1443,117:$VN7}),{14:[1,1445],118:[1,1444]},o($VK7,[2,1066]),{73:$Vq8,203:1441,277:$Vs8,478:1435},{118:[1,1446]},o($VO7,[2,1050]),{2:$VS5,73:$VT5,75:1447,77:$Vp8},o($Vt8,[2,1051]),o($Vt8,[2,1053]),{14:[1,1449],89:1448,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{2:$VS5,73:$VT5,75:1463,89:1462,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{2:$VS5,73:$VT5,75:1465,89:1464,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},o($VG4,[2,1118]),{2:$VS5,73:$VT5,75:1467,89:1466,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},o($VG4,[2,1121]),{2:$VS5,73:$VT5,75:1468},o($VP4,[2,1126]),{14:[1,1470],73:$VG8,77:$VG7},{2:$VS5,73:$VT5,75:1471,77:$VH7},{2:$VS5,73:$VT5,75:1472},{14:[1,1474],69:$V44,73:$VH8,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},{2:$VS5,73:$VT5,75:1475},{2:$VS5,69:$VN3,73:$VT5,75:1476,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,391:565},o($VP4,[2,1132]),{14:[1,1478],73:$VI8,77:$VG7},{2:$VS5,73:$VT5,75:1479,77:$VH7},{2:$VS5,73:$VT5,75:1480},o($VA4,[2,895]),o($V2,[2,47]),o($V2,[2,48]),o([2,14,28,50,73,77,87,88,101,163,225],[2,53]),{2:[2,55],53:$VQ4,55:[1,1481]},{2:[2,56],54:$VS4,55:[1,1482]},o($V2,[2,63]),o($V2,[2,66]),o($V2,[2,67]),o([14,170,357],$VJ8,{135:1483}),o($V2,[2,65]),o($V15,$VJ8,{135:1484}),o($Vg6,[2,158]),{14:[1,1485],119:1487,120:1486,121:[1,1488]},o($V2,[2,64]),{119:1487,121:[1,1489]},o($Vi6,$VY7),o($Vk6,[2,75]),o($Vk6,[2,76]),{73:$VK8,77:[1,1491]},{2:$VS5,73:$VT5,75:1492},o($Vz6,$VL8,{14:[1,1493]}),o($VY7,[2,81],{77:[1,1494]}),{14:[1,1496],80:1495,82:1497,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{73:$VK8,77:$VP8},o($VQ8,$VL8),{80:1512,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,99:$VR8,104:$VS8,105:$VT8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},o($Vn6,[2,561]),o($Vp6,[2,564]),o($Vp6,[2,563]),{14:[1,1517],28:[1,1516]},{51:1243,53:$Vr3,54:$Vs3,305:436,308:437},o($V2,[2,202]),{2:$VS5,73:$VT5,75:1518},{73:$VU8,77:[1,1520]},o($VV8,$Vc6,{49:958,47:1521,50:$VU7}),{28:$Vc6,47:1522,49:958,50:$VU7},{43:210,105:$V_1,111:1267,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{28:[1,1523]},{73:$VU8,77:$VW8},o($VQ8,$Vc6,{49:958,47:1525,50:$VU7}),o($V2,[2,234]),o($V2,[2,241]),o($V2,[2,351]),o($V2,[2,352]),{77:[1,1526]},{43:210,53:$Vr3,54:$Vs3,79:342,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,142:$V$1,158:$VK2,223:1527,228:189,229:$V12,230:$V22,231:$V32,235:$VP2,239:$Vz3,243:$VS2,244:$V92,249:$VB3,251:$VC3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:1528,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V2,[2,346]),o($Vz6,[2,568]),o($Vz6,[2,573],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{163:$VZ4,225:[2,364]},o($Vm5,$Vl5,{503:1529,77:$Vs5,264:$Vn5}),o($V2,$Vc6,{47:956,49:958,44:1530,50:$VU7}),{260:$Vd6},o($Vg6,$Vf6,{116:966,59:1531,117:$Vh6}),o($Vk6,$Vj6,{65:970,68:972,69:$Vl6,71:$Vm6}),o($Vs6,$Vr6,{138:983,136:1532,71:$Vt6}),o($V2,$Vu6,{154:989,315:$Vv6}),o($V2,$Vw6,{156:1533,157:$Vx6}),o($V2,$VA6),{132:$Vy6},o($VY7,[2,995]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:1534,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VC2,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,180:1535,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:781,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{264:[1,1536]},o($V15,$V25,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,441:1062,130:1066,362:1389,389:1537,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,390:[1,1538],391:540},{73:$Vm8,77:$V$7},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1539,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,259:$Vo8,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1540,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1541,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{89:1448,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{73:$VG8,77:$V$7},{69:$VN3,73:$VH8,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{73:$VI8,77:$V$7},o($V2,[2,1166]),{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:1542,509:480,511:487},o($Vq2,[2,663]),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,425:1543,435:769,436:786},o($Vk8,$VX8,{431:1544,275:$VY8}),o($Vq2,[2,944],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($V68,[2,954]),o($V68,[2,955]),{191:$VZ8},o($V68,[2,957]),{191:$V_8},o($V68,[2,960]),{191:$V$8},{191:$V09},o($V68,[2,963]),{191:$V19},o($V68,[2,965]),{191:$V29},{191:$V39},o($V68,[2,968]),o($V49,$V59,{199:1553,203:1554,207:1555,277:$Vr8}),o($Vb8,$V69,{2:[1,1556],14:[1,1557]}),o($V79,$V59,{199:1558,203:1559,277:$Vs8}),{14:[1,1561],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1560,133:1562,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V89,$Vc8,{202:1343,206:1563,198:1564,266:$Vd8}),o($Vf8,$Vc8,{202:1343,198:1565,266:$Vg8}),o($V79,$V59,{203:1559,199:1566,277:$Vs8}),o($Vf8,$V69),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1567,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{14:[1,1570],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1571,133:1572,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,374:1568,375:1569,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VV6,[2,682]),o($VV6,$VS6,{209:1109,197:1573,265:$VW6}),o($Vf8,$Vc8,{202:1343,198:1574,266:$Vg8}),o($V89,$Vc8,{202:1343,206:1575,198:1576,266:$Vd8}),o($Vf8,$Vc8,{202:1343,198:1577,266:$Vg8}),o($V79,$V59,{203:1559,199:1578,277:$Vs8}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1580,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,374:1579,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V79,$V59,{203:1559,199:1581,277:$Vs8}),o($V_6,[2,926]),o($VZ6,[2,929],{77:[1,1582]}),o($VZ6,[2,931]),o($VZ6,[2,928]),{14:$Vj8,25:773,26:775,43:210,71:$VD4,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382,388:774,394:776,425:1583,427:1361,435:769,436:770,437:771,438:772},o($V$6,[2,952],{430:1133,368:1584,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($V99,$VX8,{431:1544,433:1585,275:$Va9}),o($Vk8,$VX8,{431:1587,275:$VY8}),o($Vk8,$VX8,{431:1588,275:$VY8}),o($V$6,[2,951],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Vb9,[2,303]),{14:[1,1589],191:$VZ8},{2:[1,1590],191:[1,1591]},o($Vb9,[2,306]),{14:[1,1592],191:$V_8},{14:[1,1593],191:$V$8},{14:[1,1594],191:$V09},{2:[1,1595],191:[1,1596]},o($Vb9,[2,311]),{14:[1,1597],191:$V19},{14:[1,1598],191:$V29},{14:[1,1599],191:$V39},{2:[1,1600],191:[1,1601]},o($Vb9,[2,316]),o($Vk8,$VX8,{431:1602,275:$VY8}),{14:$Vi7,77:$Vc9,264:$Vd9},{264:[2,290]},{28:$Vz4,264:[2,293]},o($V04,[2,923],{77:$Vy5}),o($V04,[2,924],{77:$Vy5}),{77:[1,1604],264:$Ve9},{77:[1,1605]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:1140,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:1606,133:1608,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:1607,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VG4,[2,775]),{73:[1,1609]},{14:$Vl8,73:$Vf9,77:$VG7},{14:[1,1613],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1611,133:1612,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VG4,[2,810]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1614,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VA4,[2,750]),o($VA4,[2,751]),{77:$Vp8},o($VG4,[2,1194]),o($VG4,[2,1195]),o($VG4,[2,1196]),o([2,14,28,53,54,73,77,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$Vg9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($Vh9,[2,814],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($Vu7,[2,815],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),o($Vh9,[2,813],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),{2:$VS5,73:$VT5,75:1615,77:$V$7},{2:$VS5,73:$VT5,75:1616},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1617,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,804]),o($VG4,[2,805]),o($Vh9,[2,812],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vn8,[2,991]),o($VG4,[2,1217]),o($VE7,[2,1235],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VA4,[2,1207]),o($VG4,[2,1209]),o($VG4,[2,1214]),o($VG4,[2,1215]),o($VG4,[2,1212]),o($VG4,[2,1210]),o([14,258,259,301],$Vi9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VE7,[2,1232],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($VE7,[2,1244],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1618,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VE7,[2,1243],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VE7,[2,1231],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VE7,[2,1246],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VE7,[2,1241],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VG4,[2,1041]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1619,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VI7,$Vj9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VK7,[2,853],{391:565,69:$VN3,77:[1,1620],87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($VK7,[2,856],{77:[1,1621]}),o($VK7,[2,859],{77:$V$7}),o($VK7,[2,854],{77:$V$7}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1622,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,595],{235:[1,1623]}),{73:[1,1624]},{2:$VS5,73:$VT5,75:1625},{14:[1,1627],73:$Vk9,121:$Vl9,283:$Vm9,482:1626,483:1628,484:1629,485:1630},o($VY7,[2,1073]),{14:[1,1634],118:[1,1633]},{2:$VS5,73:$VT5,75:1635},o($VY7,$Vk9,{482:1626,484:1629,485:1636,121:$Vl9,283:$Vm9}),{118:[1,1637]},o($VY7,$Vq8,{203:1441,478:1638,277:$Vs8}),{14:[1,1640],43:210,53:$VD2,54:$VE2,71:$VF2,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:1642,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:1639,393:317,399:1641,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VK7,[2,1068]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1643,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($Vt8,[2,1052]),{73:[1,1644]},{2:$VS5,73:$VT5,75:1645},o($Vn9,[2,605]),o($Vn9,[2,606]),o($Vn9,$Vo9,{348:1646,71:$Vp9}),o($Vn9,[2,619],{349:1648,71:[1,1649]}),o($Vn9,[2,609]),o($Vn9,[2,610]),o($Vn9,[2,611]),o($Vn9,[2,612]),o($Vn9,[2,613]),o($Vn9,[2,614]),o($Vn9,[2,615]),o($Vn9,$Vo9,{348:1650,71:$Vp9}),{2:$VS5,73:$VT5,75:1651},o($VG4,[2,1123]),{2:$VS5,73:$VT5,75:1652},o($VG4,[2,1117]),{2:$VS5,73:$VT5,75:1653},o($VG4,[2,1120]),o($VG4,[2,1125]),o($VP4,[2,1128]),{2:$VS5,73:$VT5,75:1654,77:$Vp8},o($VG4,[2,1129]),o($VG4,[2,1131]),o($VP4,[2,1147]),{2:$VS5,73:$VT5,75:1655},o($VG4,[2,1149]),o($VG4,[2,1151]),o($VP4,[2,1133]),{2:$VS5,73:$VT5,75:1656,77:$Vp8},o($VG4,[2,1134]),o($VG4,[2,1136]),{2:[2,57],53:$V76},{2:[2,58],54:$Va6},{14:[1,1658],29:1657,31:1659,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1},{29:1657,166:284,169:283,170:$Vc2,357:$Vw2},o($Vg6,[2,159]),o($Vg6,[2,160]),o($Ve6,[2,157]),{14:[1,1660],71:[1,1663],122:1662,124:1661},{71:[1,1665],122:1664},o($Vi6,[2,77]),{43:210,76:1666,78:1667,79:1263,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vk6,[2,78]),o($VY7,[2,85],{77:[1,1668]}),{43:210,72:1669,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VV8,$Vq9,{81:1670,83:1671,84:1672,86:1673,85:1674,49:1677,50:$VU7,87:$Vr9,88:$Vs9}),o($VQ8,$Vq9,{85:1674,49:1677,81:1678,84:1679,50:$VU7,87:$Vt9,88:$Vs9}),o($VQ8,$Vq9,{85:1674,49:1677,84:1679,81:1681,50:$VU7,87:$Vt9,88:$Vs9}),o($Vn9,[2,105]),o($Vn9,[2,106]),o($Vn9,[2,107]),o($Vn9,[2,108]),o($Vn9,[2,109]),o($Vn9,[2,110]),o($Vn9,[2,111]),o($Vu9,[2,112]),o($Vu9,[2,113]),o($Vu9,[2,114]),{100:[1,1682]},{100:[1,1683]},{100:[1,1684]},{43:210,76:1685,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VQ8,$Vq9,{81:1670,85:1674,49:1677,84:1679,50:$VU7,87:$Vt9,88:$Vs9}),{100:[1,1686]},{100:[1,1687]},{100:[1,1688]},{14:[1,1690],29:1689,31:1691,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1},o($V2,[2,203]),o([50,163,225],[2,210]),o($Vq6,[2,209]),{43:210,79:342,105:$V_1,111:357,141:1692,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($Vz6,$Vv9,{14:[1,1693]}),{28:[1,1694]},{29:1695,166:284,169:283,170:$Vc2,357:$Vw2},{43:210,79:342,105:$V_1,111:357,141:1696,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($VQ8,$Vv9),{71:$VW7,221:1697},{73:[1,1698],77:[1,1699]},o($Vz6,[2,863]),o($V2,$Vu5,{196:756,201:1700,302:$Vx5}),o($V2,$VR7),o($V2,$VS7,{60:1246,28:$VT7}),{28:$Vc6,47:1701,49:958,50:$VU7},o($V2,$VV7),{77:$Vy5,264:$Vd9},{264:$Ve9},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1702,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{73:$Vf9,77:$V$7},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1703,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o([2,28,53,54,73,77,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$Vg9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VE7,$Vi9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($V08,$Vj9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vp5,[2,1180],{77:$Vs5}),o($Vk8,$VX8,{431:1704,275:$VY8}),o($Vw9,[2,941]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1705,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V68,[2,956]),o($V68,[2,959]),o($V68,[2,961]),o($V68,[2,962]),o($V68,[2,964]),o($V68,[2,966]),o($V68,[2,967]),o($VJ3,$Vx9,{200:1706,204:1707,208:1708,272:[1,1709]}),o($V49,$Vy9,{2:[1,1710],14:[1,1711]}),o($Vz9,$Vx9,{200:1712,204:1713,272:$VA9}),{14:[1,1715],199:1717,203:1559,207:1716,272:$V59,277:$Vr8},o($V79,$V59,{203:1559,199:1718,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1719,272:$VA9}),o($V79,$Vy9),o([2,14,73,163,225,272,277,294],$VB9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($Vf8,[2,1112],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($Vf8,[2,1113],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($V79,$V59,{203:1559,199:1720,277:$Vs8}),{199:1722,203:1559,207:1721,272:$V59,277:$Vr8},o($V79,$V59,{203:1559,199:1723,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1724,272:$VA9}),o($Vf8,$VB9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o([2,14,73,163,225,266,272,277,294],$VC9,{77:[1,1725]}),o($VV6,[2,680]),o($VV6,[2,681],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1726,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,77:[1,1727],87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VD9,$VE9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VV6,[2,696],{391:565,69:$VN3,77:[1,1728],87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vf8,$Vc8,{202:1343,198:1729,266:$Vg8}),o($V79,$V59,{203:1559,199:1730,277:$Vs8}),o($V79,$V59,{203:1559,199:1731,277:$Vs8}),{199:1733,203:1559,207:1732,272:$V59,277:$Vr8},o($V79,$V59,{203:1559,199:1734,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1735,272:$VA9}),o($VV6,$VC9,{77:$VF9}),o($VG9,$VE9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vz9,$Vx9,{200:1706,204:1713,272:$VA9}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,370:1737,388:774,421:761,423:763,425:785,426:766,435:769,436:786},o($V99,$VX8,{433:1585,431:1704,275:$Va9}),o($V$6,[2,953],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Vk8,[2,948]),{14:[1,1740],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1738,133:1739,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($Vk8,[2,947]),o($Vk8,[2,949]),o($Vb9,[2,305]),o($Vb9,[2,300]),o($Vb9,[2,304]),o($Vb9,[2,308]),o($Vb9,[2,309]),o($Vb9,[2,310]),o($Vb9,[2,301]),o($Vb9,[2,307]),o($Vb9,[2,313]),o($Vb9,[2,314]),o($Vb9,[2,315]),o($Vb9,[2,302]),o($Vb9,[2,312]),o($Vk8,[2,945]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:782,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:781,419:783,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$Vz5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:308,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,174:1742,179:1741,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:301,419:302,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{2:$VA5,14:$V6,102:1743,303:$VV1},o($VO5,$VH9,{391:540,396:541}),o($VG4,[2,779]),o($VQ5,[2,780],{391:565}),o($VA4,[2,748]),o($VA4,[2,749]),o($VG5,$VI9,{391:540,396:541,69:$V44,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VI5,[2,808],{391:565,69:$VN3,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VJ5,[2,809],{391:517,69:$VN3,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),o($VI5,[2,807],{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VG4,[2,802]),o($VG4,[2,803]),o($VI5,[2,806],{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VE7,[2,1245],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VK7,[2,858],{77:$V$7}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1744,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1745,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VK7,[2,862],{77:$V$7}),{43:210,79:924,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VA4,[2,1060]),o($VG4,[2,1062]),o($VY7,[2,1072]),o($VY7,$Vk9,{484:1629,485:1636,482:1746,121:$Vl9,283:$Vm9}),o($VY7,[2,1075]),o($VY7,[2,1077]),{14:[1,1747],245:[1,1748],489:[1,1749]},o($VJ9,[2,1094]),o($VJ9,[2,1095]),{14:[1,1754],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1757,104:$VJ2,105:$V_1,111:357,130:1755,133:1756,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,380:1750,381:1751,382:1752,383:1753,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V79,[2,710]),o($VG4,[2,1061]),{245:[1,1758],489:[1,1759]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1761,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,380:1760,382:1752,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VS5,73:$VT5,75:1762},o($VL7,$VK9,{14:[1,1763],77:$VG7}),o($VK7,[2,1069],{391:517,69:$VN3,77:$V82,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($VK7,[2,1070]),{77:$VH7},o($VK7,$VK9,{77:$V$7}),o($VA4,[2,1114]),o($VG4,[2,1124]),o($Vn9,[2,607]),{295:[1,1764]},o($Vn9,[2,608]),{295:[1,1765]},o($Vn9,[2,616]),o($VG4,[2,1122]),o($VG4,[2,1116]),o($VG4,[2,1119]),o($VG4,[2,1130]),o($VG4,[2,1150]),o($VG4,[2,1135]),o($V2,[2,194]),o($V2,[2,195]),o($V2,[2,196]),o($Vg6,[2,162]),o($Vg6,[2,163],{123:1766,71:$VL9}),{14:[1,1768],71:[1,1771],123:1770,125:1769},{14:$V6,43:210,79:1775,102:1773,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,303:$VV1,332:1774,333:1772},{71:$VL9,123:1770},{43:210,79:1775,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,332:1776},o($Vz6,$VM9,{14:[1,1777]}),o($VY7,[2,83],{77:[1,1778]}),{43:210,72:1779,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VY7,[2,82],{77:$VP8}),o([2,14,73,77],[2,89]),o($VQ8,[2,92]),o($VV8,$VN9,{49:1677,86:1780,85:1781,50:$VU7,87:$Vr9,88:$Vs9}),o($VQ8,[2,97],{85:1674,49:1677,84:1782,50:$VU7,87:$Vt9,88:$Vs9}),o($VO9,[2,95]),{14:[1,1783],88:$VP9},o($VO9,[2,102]),o($VO9,[2,103]),o($VQ8,[2,90]),o($VQ8,$VN9,{49:1677,85:1781,50:$VU7,87:$Vt9,88:$Vs9}),{88:$VP9},o($VQ8,[2,91]),{14:$V6,80:1785,82:1788,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,101:$VQ9,102:1787,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},{14:$V6,77:[1,1792],89:1789,101:$VR9,102:1791,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},{43:210,77:$VS9,101:$VT9,105:$V_1,106:1793,107:1795,108:1796,109:1797,110:1799,111:1798,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VQ8,$VM9),{80:1785,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,99:$VR8,101:$VQ9,104:$VS8,105:$VT8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{89:1801,101:$VR9,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{43:210,101:$VT9,105:$V_1,106:1802,108:1796,111:1803,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($V2,[2,198]),o($V2,[2,204]),o($V2,[2,205]),o($VV8,$Vc6,{49:958,47:1804,50:$VU7}),o($VY7,[2,213],{77:[1,1805]}),{29:1806,166:284,169:283,170:$Vc2,357:$Vw2},o($V2,[2,206]),o($VQ8,$Vc6,{49:958,47:1807,50:$VU7}),o($V2,[2,353]),o($V2,[2,354]),{43:210,53:$Vr3,54:$Vs3,79:342,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,235:$VP2,239:$Vz3,243:$VS2,244:$V92,249:$VB3,251:$VC3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:1808,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V2,$V18),{28:[1,1809]},o($VF6,$VH9,{391:540}),o($VE6,$VI9,{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vw9,[2,942]),o($Vk8,$VU9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vz9,[2,671]),o($VJ3,$VV9,{2:[1,1810],14:[1,1811]}),o($Vz9,[2,335]),{14:$VW9,231:$VX9,235:$VP2,295:$V33,296:$V43,385:1812,414:352,415:353},{14:[1,1815],208:1816,272:$VY9},o($Vz9,$Vx9,{204:1713,200:1818,272:$VA9}),o($Vz9,[2,334]),o($Vz9,$VV9),{231:$VX9,235:$VP2,295:$V33,296:$V43,385:1812,414:352,415:353},o($V79,$V59,{203:1559,199:1819,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1820,272:$VA9}),{208:1821,272:$VY9},o($Vz9,$Vx9,{204:1713,200:1822,272:$VA9}),o($Vz9,[2,333]),o($Vz9,$Vx9,{204:1713,200:1823,272:$VA9}),o($Vz9,$Vx9,{204:1713,200:1824,272:$VA9}),{208:1825,272:$VY9},o($Vz9,$Vx9,{204:1713,200:1826,272:$VA9}),o($Vz9,[2,332]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1830,104:$VJ2,105:$V_1,111:357,130:1827,133:1829,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,379:1828,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VV6,[2,697],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1580,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,374:1831,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1580,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,374:1832,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V79,$V59,{203:1559,199:1833,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1834,272:$VA9}),o($Vz9,$Vx9,{204:1713,200:1835,272:$VA9}),o($Vz9,$Vx9,{204:1713,200:1836,272:$VA9}),{208:1837,272:$VY9},o($Vz9,$Vx9,{204:1713,200:1838,272:$VA9}),o($Vz9,[2,331]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1839,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VZ6,[2,930],{77:$Ve7}),o($V99,$VU9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($Vk8,[2,973],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vk8,[2,974],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),{264:[2,291]},{14:$Vi7,77:$Vc9},{264:[2,294]},o($VK7,[2,855],{77:$V$7}),o($VK7,[2,857],{77:$V$7}),o($VY7,[2,1074]),o($VY7,[2,1080]),o($VZ9,$V_9,{486:1840}),o($VZ9,$V_9,{486:1841}),o([2,14,73,121,163,225,272,283,294],$V$9,{77:[1,1842]}),o($V79,[2,709]),o($V0a,[2,711]),o($V79,[2,713]),o([2,73,163,187,188,189,190,191,192,193,194,225,242,255,272,294],$V82,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1761,382:1843,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o([2,14,73,77,121,163,225,272,283,294],$V1a,{391:540,396:541,384:1844,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,242:$V2a,245:$Ve4,255:$V3a,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($V4a,$V1a,{391:565,384:1847,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,242:$V2a,245:$Vw4,255:$V3a,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($V4a,$V1a,{384:1848,242:$V2a,255:$V3a}),o($V5a,$V_9,{486:1849}),o($V5a,$V_9,{486:1850}),o([2,73,121,163,187,188,189,190,191,192,193,194,225,272,283,294],$V$9,{77:$V6a}),o([2,73,77,121,163,187,188,189,190,191,192,193,194,225,272,283,294],$V1a,{391:540,384:1844,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,242:$V2a,245:$Vc5,255:$V3a,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VG4,[2,1063]),o($VY7,$Vq8,{203:1441,478:1852,77:$Vp8,277:$Vs8}),{73:[1,1853]},{73:[1,1854],77:[1,1855]},o($Vg6,[2,166]),{117:$V7a,126:1856,128:1857},o($Vg6,[2,164]),o($Vg6,[2,165]),o($Ve6,[2,161]),{14:[1,1859],117:$V8a,126:1861,127:1860,128:1857,129:1862},{2:$VS5,73:$VT5,75:1864},{2:$VS5,73:$VT5,75:1865},{73:$V9a,77:[1,1867]},o($VQ8,[2,548]),{73:$V9a,77:$Vaa},o($VY7,[2,87],{77:[1,1869]}),{43:210,72:1870,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VY7,[2,86],{77:$VP8}),o($VQ8,[2,99],{85:1674,49:1677,84:1871,50:$VU7,87:$Vt9,88:$Vs9}),o($VO9,[2,96]),o($VQ8,[2,98],{49:1677,85:1781,50:$VU7,87:$Vt9,88:$Vs9}),o([2,50,73,77,87,88],[2,104]),o($VO9,$Vba),{101:[1,1872]},o($Vn9,[2,116]),{2:$Vca,101:$Vda,103:1873},{2:$Vca,101:$Vda,103:1876},{77:[1,1877]},o($Vn9,[2,120]),{2:$Vca,101:$Vda,103:1878},{14:$V6,102:1879,303:$VV1},{77:[1,1881],101:$Vea},o($Vn9,[2,126]),{2:$Vca,101:$Vda,103:1882},o($Vfa,[2,128]),o($Vba,[2,130],{110:1883,77:$VS9}),{112:[1,1884]},{43:210,77:$Vga,105:$V_1,111:1885,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vha,[2,482]),{77:[1,1887]},{77:$Via,101:$Vea},{112:[1,1889]},o($Vz6,$Vja,{14:[1,1890]}),{43:210,79:342,105:$V_1,111:357,139:1891,141:1280,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($V2,[2,200]),o($VQ8,$Vja),o($Vz6,[2,864]),{29:1689,166:284,169:283,170:$Vc2,357:$Vw2},{14:[1,1892]},o($Vz9,[2,340]),o($Vka,[2,726],{77:[1,1893]}),o($Vka,[2,728],{77:[1,1894]}),o($Vz9,[2,730]),o($Vz9,$Vx9,{204:1713,200:1895,272:$VA9}),o($Vz9,[2,330]),{14:$VW9},o($Vz9,[2,339]),o($Vz9,$Vx9,{204:1713,200:1896,272:$VA9}),o($Vz9,[2,328]),o($Vz9,[2,329]),o($Vz9,[2,338]),o($Vz9,[2,325]),o($Vz9,[2,326]),o($Vz9,[2,327]),o($Vz9,[2,337]),o($VD9,$Vla,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VV6,[2,700],{77:[1,1897]}),o($VG9,[2,703],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($VG9,[2,705],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1898,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VV6,[2,698],{77:$VF9}),o($VV6,[2,699],{77:$VF9}),o($Vz9,$Vx9,{204:1713,200:1899,272:$VA9}),o($Vz9,[2,321]),o($Vz9,[2,322]),o($Vz9,[2,323]),o($Vz9,[2,324]),o($Vz9,[2,336]),o($VG9,$Vla,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vma,$Vna,{487:1900,490:1901,497:1902,252:$Voa,295:$Vpa,489:$Vqa}),o($Vma,$Vna,{497:1902,487:1906,490:1907,252:$Voa,295:$Vpa,489:$Vqa}),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1757,104:$VJ2,105:$V_1,111:357,130:1755,133:1756,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,382:1908,383:1909,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V79,[2,714]),o($V0a,[2,718]),o($V0a,[2,722]),o($V0a,[2,723]),o($V4a,[2,719]),o($V4a,[2,720]),o($Vra,$Vna,{487:1910,497:1911,252:$Vsa,295:$Vpa,489:$Vqa}),o($Vra,$Vna,{497:1911,487:1913,252:$Vsa,295:$Vpa,489:$Vqa}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1761,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,382:1908,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VS5,73:$VT5,75:1914},o($Vn9,[2,618]),o($Vn9,[2,620]),{295:[1,1915]},{73:$Vta,77:$Vua},o($VQ8,[2,170]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1918,132:[1,1919],142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VS5,73:$VT5,75:1920},{2:$VS5,73:$VT5,75:1921},{73:$Vta,77:[1,1922]},o($VY7,[2,172]),{14:[1,1923],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1925,132:[1,1926],133:1924,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($Vva,[2,546]),o($Vva,[2,547]),o([14,71],[2,545]),{14:$V6,43:210,79:1928,102:1927,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,303:$VV1},{43:210,79:1928,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,72:1929,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VY7,[2,84],{77:$VP8}),o($VQ8,[2,100],{49:1677,85:1781,50:$VU7,87:$Vt9,88:$Vs9}),o($Vn9,[2,115]),o($Vu9,[2,117]),o($Vu9,[2,153]),o($Vu9,[2,154]),o($Vu9,[2,118]),{14:$V6,80:1930,82:1931,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,102:1932,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},o($Vu9,[2,122]),{2:$Vca,101:$Vda,103:1933},o($Vn9,[2,125]),{43:210,77:$VS9,105:$V_1,108:1934,109:1935,110:1799,111:1798,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vu9,[2,127]),o($Vba,[2,131],{228:189,43:210,108:1796,111:1803,106:1936,77:$Vga,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{14:$V6,80:1937,82:1939,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,102:1938,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},{112:[1,1940]},o($Vha,[2,483]),{80:1930,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,99:$VR8,104:$VS8,105:$VT8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{43:210,105:$V_1,108:1934,111:1803,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{80:1941,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,99:$VR8,104:$VS8,105:$VT8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},o($VY7,[2,215],{77:[1,1942]}),o($VY7,[2,214],{77:$VW8}),o($Vz9,[2,320]),{235:$VP2,295:$V33,296:$V43,385:1943,414:352,415:353},{231:[1,1944]},o($Vz9,[2,319]),o($Vz9,[2,318]),o($VV6,[2,701],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1580,374:1945,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VG9,[2,704],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vz9,[2,317]),o([14,73],$Vwa,{488:1946,491:1947,240:[1,1948]}),o($VY7,$Vwa,{488:1949,240:$Vxa}),{14:[1,1952],279:$Vya},{14:[1,1954],282:$Vza},o($VAa,[2,1107]),o($VAa,[2,1108]),{14:[1,1955],73:$Vwa,240:$Vxa,488:1956},o($VY7,[2,1085]),o($V0a,[2,712]),o($V79,[2,715],{77:[1,1957]}),o($VY7,$Vwa,{488:1958,240:$Vxa}),{279:$Vya},{282:$Vza},o($VY7,$Vwa,{488:1956,240:$Vxa}),o($VG4,[2,1064]),{73:[1,1959]},o($Ve6,[2,167]),{117:$V7a,128:1960},{69:$VN3,87:$V35,100:[1,1962],101:$V55,131:1961,134:[1,1963],183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{100:$VBa,131:1964,134:$VCa},o($Vg6,[2,168]),o($Vg6,[2,169]),{14:[1,1967],117:$V8a,128:1960,129:1968},o($VQ8,[2,180],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($VQ8,[2,181],{391:565,131:1969,69:$VN3,87:$Vn4,100:[1,1970],101:$Vp4,134:[1,1971],183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),{14:[1,1972],69:$V44,87:$V54,100:[1,1974],101:$V74,131:1973,134:[1,1975],183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},{14:[1,1976],100:$VBa,131:1977,134:$VCa},o($VY7,[2,550],{77:[1,1978]}),o($VQ8,[2,549]),o($VY7,[2,88],{77:$VP8}),{101:[1,1979]},{2:$Vca,101:$Vda,103:1980},{2:$Vca,101:$Vda,103:1981},o($Vu9,[2,124]),o($Vfa,[2,129]),o($Vba,[2,133],{110:1982,77:$VS9}),o($Vba,[2,132],{77:$Via}),o([77,101],$Vc6,{49:958,47:1983,14:[1,1984],50:$VU7}),o($Vfa,[2,140]),o($Vfa,[2,141]),{14:$V6,80:1985,82:1987,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,102:1986,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},o($Vfa,$Vc6,{49:958,47:1983,50:$VU7}),{43:210,79:342,105:$V_1,111:357,139:1988,141:1280,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($Vka,[2,727]),o($Vka,[2,729]),o($VV6,[2,702],{77:$VF9}),{14:[1,1989],73:$VDa},o($VY7,[2,1083]),{14:[1,1992],252:[1,1990],295:$Vpa,489:$Vqa,497:1991},o($VY7,[2,1082]),{252:[1,1993],295:$Vpa,489:$Vqa,497:1994},o($VEa,[2,1097]),o($Vra,[2,1099]),o($VEa,[2,1098]),o($Vra,[2,1100]),o($VY7,[2,1084]),o($VY7,[2,1079]),o($V79,[2,716],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,382:1752,130:1761,380:1995,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VY7,$VDa),o($Vn9,[2,621]),o($VQ8,[2,171]),{132:[1,1996]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1050,132:$VFa,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1052,132:$VGa,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1997,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VHa,$VFa),o($VHa,$VGa),o($VY7,[2,173],{77:[1,1998]}),o($VY7,[2,175],{77:[1,1999]}),{132:[1,2000]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:866,132:$VFa,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:868,132:$VGa,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VQ8,[2,182]),{14:[1,2001],132:[1,2002]},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:815,132:$VFa,133:817,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:816,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:821,132:$VGa,133:823,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:822,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VQ8,[2,188]),{14:[1,2003],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:2005,133:2004,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{43:210,79:1775,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,332:2006},o($Vn9,[2,119]),o($Vu9,[2,121]),o($Vu9,[2,123]),{43:210,77:$Vga,105:$V_1,106:2007,108:1796,111:1803,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vfa,[2,135]),o($Vfa,[2,139]),{14:[1,2008]},o($Vfa,[2,137]),o($Vfa,[2,138]),o($VY7,[2,216],{77:$VW8}),o($VY7,[2,1081]),{14:[1,2010],282:$VIa},{14:[1,2012],263:$VJa},o($VY7,[2,1104]),{282:$VIa},{263:$VJa},o($V79,[2,717],{77:$V6a}),o($VQ8,$VKa,{131:2013,100:$VBa,134:$VCa}),o($VQ8,$VLa,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{117:$V7a,126:2014,128:1857},{117:$V7a,126:2015,128:1857},o($VQ8,[2,184]),o($VQ8,[2,183]),o($Vz6,$VKa,{131:2017,14:[1,2016],100:$VBa,134:$VCa}),o($VQ8,[2,189],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($VQ8,[2,190],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vz6,$VLa,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VY7,[2,551],{77:$Vaa}),o($Vba,[2,134],{77:$Via}),o($Vfa,[2,136]),o($VMa,[2,1102]),o($VY7,[2,1105]),o($VMa,[2,1103]),o($VY7,[2,1106]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:2018,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VY7,[2,174],{77:$Vua}),o($VY7,[2,176],{77:$Vua}),o($VQ8,[2,185]),{14:[1,2019],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:2021,133:2020,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VQ8,$VNa,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VQ8,[2,186],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($VQ8,[2,187],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vz6,$VNa,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4})], -defaultActions: {9:[2,374],10:[2,375],11:[2,376],12:[2,377],13:[2,378],14:[2,379],15:[2,380],16:[2,381],17:[2,382],18:[2,383],19:[2,384],20:[2,385],21:[2,386],22:[2,387],23:[2,388],24:[2,389],25:[2,390],26:[2,391],27:[2,392],28:[2,393],29:[2,394],30:[2,395],31:[2,396],32:[2,397],33:[2,398],34:[2,399],35:[2,400],36:[2,401],37:[2,402],38:[2,403],39:[2,404],40:[2,405],41:[2,406],42:[2,407],43:[2,408],44:[2,409],45:[2,410],46:[2,411],47:[2,412],48:[2,413],49:[2,414],50:[2,415],51:[2,416],52:[2,417],53:[2,418],54:[2,419],55:[2,420],56:[2,421],57:[2,422],58:[2,423],59:[2,424],60:[2,425],61:[2,426],62:[2,427],63:[2,428],64:[2,429],65:[2,430],66:[2,431],67:[2,432],68:[2,433],69:[2,434],70:[2,435],71:[2,436],72:[2,437],73:[2,438],74:[2,439],75:[2,440],76:[2,441],77:[2,442],78:[2,443],79:[2,444],80:[2,445],81:[2,446],82:[2,447],83:[2,448],84:[2,449],85:[2,450],86:[2,451],87:[2,452],88:[2,453],89:[2,454],90:[2,455],91:[2,456],92:[2,457],94:[2,459],95:[2,460],96:[2,461],97:[2,462],98:[2,463],99:[2,464],100:[2,465],101:[2,466],102:[2,467],103:[2,468],104:[2,469],105:[2,470],106:[2,471],107:[2,472],108:[2,473],109:[2,474],110:[2,475],111:[2,476],112:[2,477],113:[2,478],114:[2,479],115:[2,480],116:[2,481],178:[2,358],180:[2,359],328:[2,1034],329:[2,1035],330:[2,1036],331:[2,1037],370:[2,1137],371:[2,1138],372:[2,1139],373:[2,1140],374:[2,1141],375:[2,1142],376:[2,1143],377:[2,1144],802:[2,289],957:[2,50],959:[2,54],1380:[2,290],1535:[2,286],1741:[2,291],1743:[2,294]}, -parseError: function parseError (str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse (input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - - -SqlParseSupport.initSqlParser(parser);/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex () { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState () { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState (condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true,"flex":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0: /* skip whitespace */ -break; -case 1: /* skip comments */ -break; -case 2: /* skip comments */ -break; -case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 14; -break; -case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 303; -break; -case 5: this.popState(); return 390; -break; -case 6: return 185; -break; -case 7: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 20; -break; -case 8: return 240; -break; -case 9: return 28; -break; -case 10: return 242; -break; -case 11: this.begin('between'); return 245; -break; -case 12: return 246; -break; -case 13: return 247; -break; -case 14: return 118; -break; -case 15: return 315; -break; -case 16: return 248; -break; -case 17: return 250; -break; -case 18: return 50; -break; -case 19: parser.determineCase(yy_.yytext); return 40; -break; -case 20: return 190; -break; -case 21: return 252; -break; -case 22: return 253; -break; -case 23: return 254; -break; -case 24: return 255; -break; -case 25: return 256; -break; -case 26: return 241; -break; -case 27: return 257; -break; -case 28: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 152; -break; -case 29: return 258; -break; -case 30: return 259; -break; -case 31: parser.yy.correlatedSubQuery = true; return 260; -break; -case 32: return 261; -break; -case 33: return 262; -break; -case 34: return 263; -break; -case 35: parser.determineCase(yy_.yytext); return 264; -break; -case 36: return 187; -break; -case 37: return 265; -break; -case 38: return 266; -break; -case 39: return 268; -break; -case 40: return 269; -break; -case 41: return 193; -break; -case 42: return 217; -break; -case 43: return 270; -break; -case 44: return 218; -break; -case 45: return 271; -break; -case 46: return 191; -break; -case 47: return 188; -break; -case 48: return 69; -break; -case 49: return 272; -break; -case 50: return 87; -break; -case 51: return 88; -break; -case 52: return 275; -break; -case 53: return 229; -break; -case 54: return 276; -break; -case 55: return 277; -break; -case 56: return 192; -break; -case 57: return 117; -break; -case 58: return 279; -break; -case 59: return 157; -break; -case 60: return 121; -break; -case 61: return 280; -break; -case 62: return 189; -break; -case 63: return 281; -break; -case 64: return 282; -break; -case 65: return 142; -break; -case 66: return 283; -break; -case 67: return 284; -break; -case 68: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 170; -break; -case 69: return 194; -break; -case 70: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 13; -break; -case 71: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 'SHOW'; -break; -case 72: return 285; -break; -case 73: return 288; -break; -case 74: return 24; -break; -case 75: return 290; -break; -case 76: return 291; -break; -case 77: return 292; -break; -case 78: return 'TO'; -break; -case 79: return 293; -break; -case 80: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 158; -break; -case 81: return 489; -break; -case 82: return 294; -break; -case 83: parser.determineCase(yy_.yytext); return 500; -break; -case 84: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 514; -break; -case 85: return 132; -break; -case 86: return 299; -break; -case 87: return 32; -break; -case 88: return 301; -break; -case 89: return 302; -break; -case 90: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 357; -break; -case 91: return 278; -break; -case 92: return 142; -break; -case 93: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 243; -break; -case 94: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 249; -break; -case 95: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 251; -break; -case 96: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 273; -break; -case 97: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 274; -break; -case 98: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 286; -break; -case 99: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 287; -break; -case 100: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 289; -break; -case 101: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 297; -break; -case 102: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 298; -break; -case 103: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 300; -break; -case 104: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 105: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 106: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 107: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 108: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 109: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 110: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 111: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 112: return 295; -break; -case 113: return 295; -break; -case 114: return 296; -break; -case 115: return 230; -break; -case 116: parser.yy.cursorFound = true; return 14; -break; -case 117: parser.yy.cursorFound = true; return 303; -break; -case 118: return 267; -break; -case 119: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 494; -break; -case 120: this.popState(); return 495; -break; -case 121: return 225; -break; -case 122: return 240; -break; -case 123: return 276; -break; -case 124: return 183; -break; -case 125: return 100; -break; -case 126: return 101; -break; -case 127: return 134; -break; -case 128: return 134; -break; -case 129: return 134; -break; -case 130: return 134; -break; -case 131: return 134; -break; -case 132: return 234; -break; -case 133: return 233; -break; -case 134: return 241; -break; -case 135: return 241; -break; -case 136: return 241; -break; -case 137: return 241; -break; -case 138: return 241; -break; -case 139: return 241; -break; -case 140: return 77; -break; -case 141: return 235; -break; -case 142: return 112; -break; -case 143: return 163; -break; -case 144: return 238; -break; -case 145: return 232; -break; -case 146: return 71; -break; -case 147: return 73; -break; -case 148: return 236; -break; -case 149: return 237; -break; -case 150: return 231; -break; -case 151: this.begin('backtickedValue'); return 244; -break; -case 152: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { - return 307; - } - return 55; - -break; -case 153: this.popState(); return 244; -break; -case 154: this.begin('singleQuotedValue'); return 53; -break; -case 155: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { - return 307; - } - return 55; - -break; -case 156: this.popState(); return 53; -break; -case 157: this.begin('doubleQuotedValue'); return 54; -break; -case 158: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { - return 307; - } - return 55; - -break; -case 159: this.popState(); return 54; -break; -case 160: return 225; -break; -case 161: /* To prevent console logging of unknown chars */ -break; -case 162: -break; -case 163: -break; -case 164: -break; -case 165: -break; -case 166: -break; -case 167:console.log(yy_.yytext); -break; -} -}, -rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:AND)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CASCADE)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:COMMENT)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DECIMAL)/i,/^(?:DESC)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:GROUP)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:ON)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:REGEXP)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROW)/i,/^(?:ROLE)/i,/^(?:ROWS)/i,/^(?:SCHEMA)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SMALLINT)/i,/^(?:STRING)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UNION)/i,/^(?:UPDATE)/i,/^(?:USE)/i,/^(?:VALUES)/i,/^(?:VARCHAR)/i,/^(?:VIEW)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], -conditions: {"hdfs":{"rules":[116,117,118,119,120,121,163],"inclusive":false},"doubleQuotedValue":{"rules":[158,159,166],"inclusive":false},"singleQuotedValue":{"rules":[155,156,165],"inclusive":false},"backtickedValue":{"rules":[152,153,164],"inclusive":false},"between":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,157,160,161,162,167],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,157,160,161,167],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); -export default genericAutocompleteParser; diff --git a/src/core/parse/generic/genericSyntaxParser.js b/src/core/parse/generic/genericSyntaxParser.js deleted file mode 100644 index 3fbab72..0000000 --- a/src/core/parse/generic/genericSyntaxParser.js +++ /dev/null @@ -1,3539 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -import SqlParseSupport from './sqlParseSupport'; - -var genericSyntaxParser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[13,20,40,152,158,167,177,181,323,333,495,509],$V1=[2,276],$V2=[177,181],$V3=[2,277],$V4=[1,28],$V5=[1,40],$V6=[1,36],$V7=[1,37],$V8=[1,38],$V9=[1,39],$Va=[1,32],$Vb=[1,33],$Vc=[1,31],$Vd=[1,29],$Ve=[73,177,181],$Vf=[2,560],$Vg=[1,46],$Vh=[1,57],$Vi=[1,55],$Vj=[1,56],$Vk=[1,52],$Vl=[1,53],$Vm=[1,65],$Vn=[2,593],$Vo=[1,67],$Vp=[1,68],$Vq=[1,79],$Vr=[1,80],$Vs=[73,177,181,262],$Vt=[193,194],$Vu=[13,28,50,53,54,69,71,73,77,87,99,100,101,104,105,112,117,121,132,134,142,157,177,181,186,187,188,191,192,193,194,200,201,202,204,205,206,207,210,212,215,216,218,219,220,223,225,226,227,228,231,232,233,234,235,236,237,240,241,242,243,246,247,248,250,252,253,256,258,259,260,262,267,269,270,283,382],$Vv=[13,105,142,186,187,188,204],$Vw=[1,147],$Vx=[1,148],$Vy=[1,111],$Vz=[1,106],$VA=[1,117],$VB=[1,120],$VC=[1,122],$VD=[1,123],$VE=[1,107],$VF=[1,104],$VG=[1,109],$VH=[1,145],$VI=[1,108],$VJ=[1,133],$VK=[1,151],$VL=[1,112],$VM=[1,134],$VN=[1,141],$VO=[1,110],$VP=[1,150],$VQ=[1,121],$VR=[1,152],$VS=[1,153],$VT=[1,154],$VU=[1,155],$VV=[1,142],$VW=[1,149],$VX=[1,144],$VY=[1,146],$VZ=[1,156],$V_=[1,157],$V$=[1,158],$V01=[53,54,71,73,87,88,99,104,105,142,158,186,187,188,190,191,192,193,197,199,203,204,208,209,211,221,222,230,238,239,254,255,257,261,263,264,265,266,268,323],$V11=[71,77,323],$V21=[105,142,177,181,186,187,188],$V31=[2,433],$V41=[1,164],$V51=[105,142,186,187,188,204],$V61=[105,142,177,181,186,187,188,204,230],$V71=[2,430],$V81=[1,169],$V91=[73,77,177,181,225,262],$Va1=[2,969],$Vb1=[1,223],$Vc1=[1,224],$Vd1=[1,212],$Ve1=[1,209],$Vf1=[1,210],$Vg1=[1,211],$Vh1=[1,218],$Vi1=[1,217],$Vj1=[1,208],$Vk1=[1,216],$Vl1=[1,219],$Vm1=[1,214],$Vn1=[1,213],$Vo1=[1,207],$Vp1=[1,215],$Vq1=[1,226],$Vr1=[1,225],$Vs1=[28,53,54,69,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,241,242,243,246,247,248,250,252,258,262,269,270,382],$Vt1=[1,232],$Vu1=[1,238],$Vv1=[1,240],$Vw1=[28,53,54,69,71,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,241,242,243,246,247,248,250,252,258,262,269,270,382],$Vx1=[1,245],$Vy1=[28,50,53,54,69,71,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,193,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,241,242,243,246,247,248,250,252,258,262,269,270,382],$Vz1=[28,53,54,69,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,241,242,243,244,246,247,248,250,252,258,262,269,270,382],$VA1=[28,53,54,73,77,105,117,132,142,157,177,181,186,187,188,204,212,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$VB1=[28,50,73,77,87,88,101,177,181,212,225,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$VC1=[177,181,270],$VD1=[77,177,181,225,270],$VE1=[50,73,77,194],$VF1=[73,177,181,227,228,237,242,262],$VG1=[2,617],$VH1=[1,293],$VI1=[88,217,222,261],$VJ1=[73,77,177,181,212,225,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$VK1=[28,53,54,73,77,87,105,121,142,177,181,186,187,188,200,202,204,205,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],$VL1=[28,53,54,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],$VM1=[323,333],$VN1=[2,947],$VO1=[219,220,269],$VP1=[53,54,71,87,88,99,104,105,142,158,186,187,188,190,192,193,197,199,203,204,208,209,211,221,222,230,238,239,254,255,257,261,263,264,265,266,268],$VQ1=[28,50,53,54,69,73,77,87,88,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,240,241,242,243,246,247,248,250,252,258,262,269,270,382],$VR1=[73,77],$VS1=[2,50],$VT1=[1,363],$VU1=[28,177,181],$VV1=[28,117,177,181],$VW1=[28,50,69,71,117,177,181],$VX1=[28,50],$VY1=[73,177,181,228,237,242,262],$VZ1=[73,77,177,181,227,228,237,242,262,270],$V_1=[1,396],$V$1=[1,397],$V02=[1,398],$V12=[1,399],$V22=[1,400],$V32=[1,401],$V42=[1,402],$V52=[1,403],$V62=[73,77,177,181,212,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$V72=[28,53,54,73,77,105,142,177,181,186,187,188,204,212,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$V82=[28,53,54,73,77,87,100,101,105,121,134,142,177,181,186,187,188,194,200,202,204,205,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],$V92=[28,53,54,73,77,105,121,142,177,181,186,187,188,200,202,204,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],$Va2=[1,428],$Vb2=[73,77,242],$Vc2=[73,242],$Vd2=[1,458],$Ve2=[73,177,181,237,242,262],$Vf2=[71,105,142,186,187,188,204],$Vg2=[28,53,54,69,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,240,241,242,243,246,247,248,250,252,258,262,269,270,382],$Vh2=[1,493],$Vi2=[1,496],$Vj2=[1,497],$Vk2=[1,498],$Vl2=[1,499],$Vm2=[1,500],$Vn2=[1,501],$Vo2=[1,502],$Vp2=[1,503],$Vq2=[1,504],$Vr2=[1,505],$Vs2=[1,506],$Vt2=[1,507],$Vu2=[1,524],$Vv2=[1,525],$Vw2=[1,526],$Vx2=[73,177,181,237,262],$Vy2=[73,77,177,181,212,226,227,228,232,235,236,237,242,243,247,252,262,270],$Vz2=[2,928],$VA2=[1,541],$VB2=[50,73,77,87,88,101],$VC2=[2,542],$VD2=[1,563],$VE2=[1,574],$VF2=[1,575],$VG2=[73,77,177,181,228,237,242,262],$VH2=[205,482],$VI2=[50,73,77,87,88],$VJ2=[73,200,213,263,482],$VK2=[2,1045],$VL2=[73,77,121,177,181,237,250,262],$VM2=[1,628],$VN2=[77,101],$VO2=[73,200],$VP2=[2,1055],$VQ2=[1,640],$VR2=[1,641],$VS2=[1,642],$VT2=[2,1060],$VU2=[1,657],$VV2=[224,245],$VW2=[1,667],$VX2=[1,668],$VY2=[2,190],$VZ2=[2,191]; -var parser = {trace: function trace () { }, -yy: {}, -symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"CreateStatement":5,"DropStatement":6,"SetSpecification":7,"UseStatement":8,"DataDefinition_EDIT":9,"AlterStatement_EDIT":10,"CreateStatement_EDIT":11,"DropStatement_EDIT":12,"SET":13,"CURSOR":14,"UseStatement_EDIT":15,"AlterTable":16,"AlterView":17,"AlterTable_EDIT":18,"AlterView_EDIT":19,"ALTER":20,"AlterTableLeftSide":21,"PartitionSpec":22,"AlterTableLeftSide_EDIT":23,"TABLE":24,"SchemaQualifiedTableIdentifier":25,"SchemaQualifiedTableIdentifier_EDIT":26,"AlterViewLeftSide":27,"AS":28,"QuerySpecification":29,"AlterViewLeftSide_EDIT":30,"QuerySpecification_EDIT":31,"VIEW":32,"DatabaseDefinition":33,"TableDefinition":34,"ViewDefinition":35,"RoleDefinition":36,"DatabaseDefinition_EDIT":37,"TableDefinition_EDIT":38,"ViewDefinition_EDIT":39,"CREATE":40,"DatabaseOrSchema":41,"OptionalIfNotExists":42,"RegularIdentifier":43,"DatabaseDefinitionOptionals":44,"OptionalIfNotExists_EDIT":45,"OptionalComment":46,"DatabaseDefinitionOptionals_EDIT":47,"OptionalComment_INVALID":48,"Comment":49,"COMMENT":50,"QuotedValue":51,"Comment_INVALID":52,"SINGLE_QUOTE":53,"DOUBLE_QUOTE":54,"VALUE":55,"TableDefinitionRightPart":56,"TableDefinitionRightPart_EDIT":57,"TableIdentifierAndOptionalColumnSpecification":58,"OptionalPartitionedBy":59,"OptionalAsSelectStatement":60,"TableIdentifierAndOptionalColumnSpecification_EDIT":61,"PartitionedBy_EDIT":62,"OptionalAsSelectStatement_EDIT":63,"SchemaQualifiedIdentifier":64,"OptionalColumnSpecificationsOrLike":65,"OptionalColumnSpecificationsOrLike_EDIT":66,"SchemaQualifiedIdentifier_EDIT":67,"ParenthesizedColumnSpecificationList":68,"LIKE":69,"ParenthesizedColumnSpecificationList_EDIT":70,"(":71,"ColumnSpecificationList":72,")":73,"ColumnSpecificationList_EDIT":74,"RightParenthesisOrError":75,"ColumnSpecification":76,",":77,"ColumnSpecification_EDIT":78,"ColumnIdentifier":79,"ColumnDataType":80,"OptionalColumnOptions":81,"ColumnDataType_EDIT":82,"ColumnOptions_EDIT":83,"ColumnOptions":84,"ColumnOption":85,"ColumnOption_EDIT":86,"NOT":87,"NULL":88,"PrimitiveType":89,"ArrayType":90,"MapType":91,"StructType":92,"ArrayType_INVALID":93,"MapType_INVALID":94,"StructType_INVALID":95,"ArrayType_EDIT":96,"MapType_EDIT":97,"StructType_EDIT":98,"ARRAY":99,"<":100,">":101,"AnyCursor":102,"GreaterThanOrError":103,"MAP":104,"STRUCT":105,"StructDefinitionList":106,"StructDefinitionList_EDIT":107,"StructDefinition":108,"StructDefinition_EDIT":109,"Commas":110,"RegularOrBacktickedIdentifier":111,":":112,"ColumnDataTypeList":113,"ColumnDataTypeList_EDIT":114,"ColumnDataTypeListInner_EDIT":115,"PartitionedBy":116,"PARTITION":117,"BY":118,"RangeClause":119,"RangeClause_EDIT":120,"RANGE":121,"ParenthesizedColumnList":122,"ParenthesizedPartitionValuesList":123,"ParenthesizedColumnList_EDIT":124,"ParenthesizedPartitionValuesList_EDIT":125,"PartitionValueList":126,"PartitionValueList_EDIT":127,"PartitionValue":128,"PartitionValue_EDIT":129,"ValueExpression":130,"LessThanOrEqualTo":131,"VALUES":132,"ValueExpression_EDIT":133,"COMPARISON_OPERATOR":134,"CommitLocations":135,"OptionalParenthesizedViewColumnList":136,"ParenthesizedViewColumnList_EDIT":137,"ParenthesizedViewColumnList":138,"ViewColumnList":139,"ViewColumnList_EDIT":140,"ColumnReference":141,"ROLE":142,"DropDatabaseStatement":143,"DropRoleStatement":144,"DropTableStatement":145,"DropViewStatement":146,"TruncateTableStatement":147,"DropDatabaseStatement_EDIT":148,"DropTableStatement_EDIT":149,"DropViewStatement_EDIT":150,"TruncateTableStatement_EDIT":151,"DROP":152,"OptionalIfExists":153,"OptionalCascade":154,"OptionalIfExists_EDIT":155,"OptionalPurge":156,"PURGE":157,"TRUNCATE":158,"OptionalPartitionSpec":159,"DataManipulation":160,"InsertStatement":161,"UpdateStatement":162,"InsertValuesStatement":163,"DataManipulation_EDIT":164,"InsertValuesStatement_EDIT":165,"UpdateStatement_EDIT":166,"INSERT":167,"INTO":168,"OptionalTable":169,"InsertValuesList":170,"ParenthesizedRowValuesList":171,"RowValuesList":172,"InValueList":173,"SqlSyntax":174,"NewStatement":175,"SqlStatements":176,"EOF":177,"SqlAutocomplete":178,"SqlStatements_EDIT":179,"SqlStatement":180,";":181,"SqlStatement_EDIT":182,"CommonTableExpression":183,"SetSpecification_EDIT":184,"NonReservedKeyword":185,"OPTION":186,"REGULAR_IDENTIFIER":187,"VARIABLE_REFERENCE":188,"NonStartingToken":189,"!":190,"*":191,"-":192,".":193,"=":194,"[":195,"]":196,"~":197,"ALL":198,"ANALYTIC":199,"AND":200,"ARITHMETIC_OPERATOR":201,"ASC":202,"AVG":203,"BACKTICK":204,"BETWEEN":205,"BIGINT":206,"BOOLEAN":207,"CASE":208,"CAST":209,"CHAR":210,"COUNT":211,"CROSS":212,"CURRENT":213,"DATABASE":214,"DECIMAL":215,"DESC":216,"DISTINCT":217,"DOUBLE":218,"ELSE":219,"END":220,"EXISTS":221,"FALSE":222,"FLOAT":223,"FOLLOWING":224,"FROM":225,"FULL":226,"GROUP":227,"HAVING":228,"HDFS_START_QUOTE":229,"IF":230,"IN":231,"INNER":232,"INT":233,"IS":234,"JOIN":235,"LEFT":236,"LIMIT":237,"MAX":238,"MIN":239,"ON":240,"OR":241,"ORDER":242,"OUTER":243,"OVER":244,"PRECEDING":245,"REGEXP":246,"RIGHT":247,"RLIKE":248,"ROW":249,"ROWS":250,"SCHEMA":251,"SEMI":252,"SMALLINT":253,"STDDEV_POP":254,"STDDEV_SAMP":255,"STRING":256,"SUM":257,"THEN":258,"TIMESTAMP":259,"TINYINT":260,"TRUE":261,"UNION":262,"UNSIGNED_INTEGER":263,"UNSIGNED_INTEGER_E":264,"VAR_POP":265,"VAR_SAMP":266,"VARCHAR":267,"VARIANCE":268,"WHEN":269,"WHERE":270,"PARTIAL_CURSOR":271,"FromOrIn":272,"SingleQuotedValue":273,"SingleQuotedValue_EDIT":274,"PARTIAL_VALUE":275,"DoubleQuotedValue":276,"DoubleQuotedValue_EDIT":277,"QuotedValue_EDIT":278,"OptionalFromDatabase":279,"DatabaseIdentifier":280,"OptionalFromDatabase_EDIT":281,"DatabaseIdentifier_EDIT":282,"CASCADE":283,"OptionalInDatabase":284,"OptionalPartitionSpec_EDIT":285,"PartitionSpec_EDIT":286,"PartitionSpecList":287,"PartitionSpecList_EDIT":288,"RangePartitionSpec":289,"UnsignedValueSpecification":290,"RangePartitionComparisonOperator":291,"RangePartitionSpec_EDIT":292,"ConfigurationName":293,"PartialBacktickedOrAnyCursor":294,"PartialBacktickedIdentifier":295,"PartialBacktickedOrCursor":296,"PartialBacktickedOrPartialCursor":297,"OptionalParenthesizedColumnList":298,"OptionalParenthesizedColumnList_EDIT":299,"ColumnList":300,"ColumnList_EDIT":301,"ParenthesizedSimpleValueList":302,"SimpleValueList":303,"PartitionExpression":304,"PartitionExpression_EDIT":305,"RegularOrBackTickedSchemaQualifiedName":306,"RegularOrBackTickedSchemaQualifiedName_EDIT":307,"LocalOrSchemaQualifiedName":308,"LocalOrSchemaQualifiedName_EDIT":309,"BasicIdentifierChain":310,"ColumnReference_EDIT":311,"BasicIdentifierChain_EDIT":312,"DerivedColumnChain":313,"DerivedColumnChain_EDIT":314,"PartialBacktickedIdentifierOrPartialCursor":315,"OptionalTypeLength":316,"OptionalTypePrecision":317,"SelectStatement":318,"OptionalUnions":319,"SelectStatement_EDIT":320,"OptionalUnions_EDIT":321,"CommonTableExpression_EDIT":322,"SELECT":323,"OptionalAllOrDistinct":324,"SelectList":325,"TableExpression":326,"Unions":327,"Unions_EDIT":328,"UnionClause":329,"UnionClause_EDIT":330,"SelectList_EDIT":331,"TableExpression_EDIT":332,"WITH":333,"WithQueries":334,"WithQueries_EDIT":335,"WithQuery":336,"WithQuery_EDIT":337,"TableSubQueryInner":338,"TableSubQueryInner_EDIT":339,"FromClause":340,"OptionalSelectConditions":341,"FromClause_EDIT":342,"OptionalJoins":343,"OptionalSelectConditions_EDIT":344,"Joins":345,"Joins_INVALID":346,"TableReferenceList":347,"TableReferenceList_EDIT":348,"OptionalWhereClause":349,"OptionalGroupByClause":350,"OptionalHavingClause":351,"OptionalOrderByClause":352,"OptionalLimitClause":353,"WhereClause_EDIT":354,"GroupByClause_EDIT":355,"HavingClause_EDIT":356,"OrderByClause_EDIT":357,"LimitClause_EDIT":358,"WhereClause":359,"GroupByClause":360,"HavingClause":361,"OrderByClause":362,"LimitClause":363,"SearchCondition":364,"SearchCondition_EDIT":365,"GroupByColumnList":366,"GroupByColumnList_EDIT":367,"ColumnGroupingSets":368,"ColumnGroupingSets_EDIT":369,"ColumnGroupingSet_EDIT":370,"GroupByColumnListPartTwo_EDIT":371,"OrderByColumnList":372,"OrderByColumnList_EDIT":373,"OrderByIdentifier":374,"OrderByIdentifier_EDIT":375,"OptionalAscOrDesc":376,"UnsignedNumericLiteral":377,"NonParenthesizedValueExpressionPrimary":378,"OptionalNot":379,"TableSubQuery":380,"ValueExpressionList":381,"BETWEEN_AND":382,"LikeRightPart":383,"CaseRightPart":384,"NonParenthesizedValueExpressionPrimary_EDIT":385,"TableSubQuery_EDIT":386,"ValueExpressionInSecondPart_EDIT":387,"LikeRightPart_EDIT":388,"CaseRightPart_EDIT":389,"EndOrError":390,"ValueExpressionList_EDIT":391,"ColumnOrArbitraryFunctionRef":392,"ArbitraryFunctionRightPart":393,"ArbitraryFunctionName":394,"UserDefinedFunction":395,"UnsignedValueSpecification_EDIT":396,"ColumnOrArbitraryFunctionRef_EDIT":397,"ArbitraryFunctionRightPart_EDIT":398,"UserDefinedFunction_EDIT":399,"SignedInteger":400,"+":401,"UnsignedLiteral":402,"UnsignedLiteral_EDIT":403,"GeneralLiteral":404,"GeneralLiteral_EDIT":405,"ExactNumericLiteral":406,"ApproximateNumericLiteral":407,"TruthValue":408,"SelectSpecification":409,"OptionalCorrelationName":410,"SelectSpecification_EDIT":411,"OptionalCorrelationName_EDIT":412,"TableReference":413,"TableReference_EDIT":414,"TablePrimaryOrJoinedTable":415,"TablePrimaryOrJoinedTable_EDIT":416,"TablePrimary":417,"JoinedTable":418,"TablePrimary_EDIT":419,"JoinedTable_EDIT":420,"Joins_EDIT":421,"JoinType":422,"OptionalJoinCondition":423,"Join_EDIT":424,"JoinType_EDIT":425,"JoinCondition_EDIT":426,"UsingColList":427,"TableOrQueryName":428,"DerivedTable":429,"TableOrQueryName_EDIT":430,"DerivedTable_EDIT":431,"OptionalOnColumn":432,"OptionalOnColumn_EDIT":433,"PushQueryState":434,"PopQueryState":435,"SubQuery":436,"SubQuery_EDIT":437,"QueryExpression":438,"QueryExpression_EDIT":439,"QueryExpressionBody":440,"QueryExpressionBody_EDIT":441,"NonJoinQueryExpression":442,"NonJoinQueryExpression_EDIT":443,"NonJoinQueryTerm":444,"NonJoinQueryTerm_EDIT":445,"NonJoinQueryPrimary":446,"NonJoinQueryPrimary_EDIT":447,"SimpleTable":448,"SimpleTable_EDIT":449,"AggregateFunction":450,"OptionalOverClause":451,"AnalyticFunction":452,"OverClause":453,"CastFunction":454,"AggregateFunction_EDIT":455,"OptionalOverClause_EDIT":456,"AnalyticFunction_EDIT":457,"OverClause_EDIT":458,"CastFunction_EDIT":459,"ArbitraryFunction":460,"ArbitraryFunction_EDIT":461,"CountFunction":462,"SumFunction":463,"OtherAggregateFunction":464,"CountFunction_EDIT":465,"SumFunction_EDIT":466,"OtherAggregateFunction_EDIT":467,"WindowExpression":468,"WindowExpression_EDIT":469,"OptionalPartitionBy":470,"OptionalOrderByAndWindow":471,"PartitionBy_EDIT":472,"OptionalOrderByAndWindow_EDIT":473,"PartitionBy":474,"OptionalWindowSpec":475,"WindowSpec_EDIT":476,"WindowSpec":477,"RowsOrRange":478,"PopLexerState":479,"OptionalCurrentOrPreceding":480,"OptionalAndFollowing":481,"UNBOUNDED":482,"OptionalCurrentOrPreceding_EDIT":483,"OptionalAndFollowing_EDIT":484,"PushHdfsLexerState":485,"HdfsPath":486,"HDFS_PATH":487,"HDFS_END_QUOTE":488,"HdfsPath_EDIT":489,"IntegerOrUnbounded":490,"OtherAggregateFunction_Type":491,"FromOrComma":492,"SetOption":493,"SetValue":494,"UPDATE":495,"TargetTable":496,"SetClauseList":497,"OptionalFromJoinedTable":498,"TargetTable_EDIT":499,"SetClauseList_EDIT":500,"FromJoinedTable_EDIT":501,"TableName":502,"TableName_EDIT":503,"SetClause":504,"SetClause_EDIT":505,"SetTarget":506,"UpdateSource":507,"UpdateSource_EDIT":508,"USE":509,"CaseWhenThenList":510,"CaseWhenThenList_EDIT":511,"CaseWhenThenListPartTwo":512,"CaseWhenThenListPartTwo_EDIT":513,"$accept":0,"$end":1}, -terminals_: {2:"error",13:"SET",14:"CURSOR",20:"ALTER",24:"TABLE",28:"AS",32:"VIEW",40:"CREATE",50:"COMMENT",53:"SINGLE_QUOTE",54:"DOUBLE_QUOTE",55:"VALUE",69:"LIKE",71:"(",73:")",77:",",87:"NOT",88:"NULL",99:"ARRAY",100:"<",101:">",104:"MAP",105:"STRUCT",112:":",117:"PARTITION",118:"BY",121:"RANGE",132:"VALUES",134:"COMPARISON_OPERATOR",142:"ROLE",152:"DROP",157:"PURGE",158:"TRUNCATE",167:"INSERT",168:"INTO",172:"RowValuesList",177:"EOF",181:";",184:"SetSpecification_EDIT",186:"OPTION",187:"REGULAR_IDENTIFIER",188:"VARIABLE_REFERENCE",190:"!",191:"*",192:"-",193:".",194:"=",195:"[",196:"]",197:"~",198:"ALL",199:"ANALYTIC",200:"AND",201:"ARITHMETIC_OPERATOR",202:"ASC",203:"AVG",204:"BACKTICK",205:"BETWEEN",206:"BIGINT",207:"BOOLEAN",208:"CASE",209:"CAST",210:"CHAR",211:"COUNT",212:"CROSS",213:"CURRENT",214:"DATABASE",215:"DECIMAL",216:"DESC",217:"DISTINCT",218:"DOUBLE",219:"ELSE",220:"END",221:"EXISTS",222:"FALSE",223:"FLOAT",224:"FOLLOWING",225:"FROM",226:"FULL",227:"GROUP",228:"HAVING",229:"HDFS_START_QUOTE",230:"IF",231:"IN",232:"INNER",233:"INT",234:"IS",235:"JOIN",236:"LEFT",237:"LIMIT",238:"MAX",239:"MIN",240:"ON",241:"OR",242:"ORDER",243:"OUTER",244:"OVER",245:"PRECEDING",246:"REGEXP",247:"RIGHT",248:"RLIKE",249:"ROW",250:"ROWS",251:"SCHEMA",252:"SEMI",253:"SMALLINT",254:"STDDEV_POP",255:"STDDEV_SAMP",256:"STRING",257:"SUM",258:"THEN",259:"TIMESTAMP",260:"TINYINT",261:"TRUE",262:"UNION",263:"UNSIGNED_INTEGER",264:"UNSIGNED_INTEGER_E",265:"VAR_POP",266:"VAR_SAMP",267:"VARCHAR",268:"VARIANCE",269:"WHEN",270:"WHERE",271:"PARTIAL_CURSOR",275:"PARTIAL_VALUE",283:"CASCADE",323:"SELECT",333:"WITH",382:"BETWEEN_AND",401:"+",482:"UNBOUNDED",487:"HDFS_PATH",488:"HDFS_END_QUOTE",495:"UPDATE",509:"USE"}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[9,1],[9,1],[9,1],[9,2],[9,1],[4,1],[4,1],[10,1],[10,1],[10,2],[16,2],[18,1],[18,2],[18,2],[18,3],[21,3],[23,3],[23,3],[17,3],[19,1],[19,2],[19,3],[19,3],[19,3],[27,3],[30,3],[30,3],[5,1],[5,1],[5,1],[5,1],[11,1],[11,1],[11,1],[11,2],[33,3],[33,5],[37,4],[37,3],[37,5],[37,4],[37,6],[44,1],[47,1],[46,0],[46,1],[49,2],[48,1],[52,2],[52,2],[52,3],[52,3],[34,4],[38,4],[38,4],[38,3],[56,3],[57,3],[57,3],[57,3],[57,3],[58,2],[61,2],[61,2],[65,0],[65,1],[65,2],[66,1],[66,2],[66,2],[68,3],[70,3],[72,1],[72,3],[74,1],[74,3],[74,3],[74,5],[74,2],[74,4],[74,4],[74,6],[76,3],[78,3],[78,3],[78,3],[81,0],[81,1],[84,1],[84,2],[83,1],[83,2],[83,2],[83,3],[85,2],[85,1],[85,1],[86,2],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[82,1],[82,1],[82,1],[90,4],[93,3],[96,4],[96,4],[91,6],[94,3],[97,6],[97,4],[97,6],[97,5],[92,4],[95,3],[98,4],[106,1],[106,3],[107,1],[107,2],[107,3],[107,3],[107,5],[108,4],[109,5],[109,4],[109,4],[109,4],[109,3],[109,3],[113,1],[113,3],[114,1],[114,2],[114,3],[114,3],[114,5],[115,2],[115,2],[115,1],[115,1],[103,1],[103,1],[59,0],[59,1],[116,3],[62,2],[62,3],[62,3],[119,3],[120,2],[120,2],[120,3],[120,3],[120,3],[123,3],[125,3],[125,3],[126,1],[126,3],[127,1],[127,3],[127,5],[127,3],[127,5],[128,6],[128,4],[128,4],[129,2],[129,2],[129,3],[129,4],[129,4],[129,5],[129,6],[129,6],[129,3],[129,4],[129,4],[131,1],[131,1],[60,0],[60,3],[63,3],[63,3],[135,0],[35,8],[39,4],[39,9],[39,3],[39,6],[39,7],[39,8],[39,8],[39,8],[136,0],[136,1],[138,3],[137,3],[139,2],[139,4],[140,3],[140,5],[140,5],[140,7],[36,3],[6,1],[6,1],[6,1],[6,1],[6,1],[12,1],[12,1],[12,1],[12,1],[12,2],[143,5],[148,3],[148,3],[148,4],[148,5],[148,5],[148,6],[144,3],[145,5],[149,3],[149,4],[149,5],[149,5],[149,6],[156,0],[156,1],[146,4],[150,4],[150,5],[150,3],[150,4],[150,4],[147,4],[151,2],[151,4],[151,3],[151,4],[151,5],[151,5],[151,5],[160,1],[160,1],[161,1],[164,1],[164,1],[163,6],[165,2],[165,4],[165,4],[165,5],[165,6],[170,1],[170,3],[171,3],[169,0],[169,1],[174,3],[178,3],[178,3],[175,0],[176,0],[176,1],[176,4],[179,1],[179,4],[179,4],[179,7],[180,1],[180,1],[180,1],[182,1],[182,2],[182,1],[182,1],[182,1],[182,1],[185,1],[185,1],[185,1],[43,1],[43,1],[43,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[110,1],[110,2],[102,1],[102,1],[272,1],[272,1],[41,1],[41,1],[273,3],[273,2],[274,2],[276,3],[276,2],[277,2],[51,1],[51,1],[278,1],[278,1],[279,0],[279,2],[281,2],[154,0],[154,1],[153,0],[153,2],[155,2],[42,0],[42,3],[45,2],[45,3],[284,0],[284,2],[284,2],[159,0],[159,1],[285,1],[22,4],[286,4],[289,5],[292,2],[292,3],[292,4],[292,5],[292,5],[292,5],[291,1],[291,1],[291,1],[291,1],[293,1],[293,1],[294,1],[294,1],[296,1],[296,1],[297,1],[297,1],[295,2],[75,1],[75,1],[298,0],[298,1],[299,1],[122,3],[124,3],[124,3],[300,1],[300,3],[301,3],[301,5],[302,3],[303,1],[303,3],[25,1],[25,3],[26,1],[26,3],[26,3],[64,1],[64,3],[67,1],[67,3],[67,3],[280,1],[282,1],[287,1],[287,3],[288,1],[288,3],[288,3],[288,5],[304,3],[305,3],[305,3],[305,3],[305,1],[111,1],[111,3],[111,2],[306,1],[306,3],[307,1],[307,3],[308,1],[308,2],[309,1],[309,2],[141,1],[141,3],[311,1],[310,1],[310,3],[312,3],[312,5],[313,1],[313,3],[314,1],[314,3],[314,5],[314,3],[79,1],[315,1],[315,1],[89,1],[89,1],[89,2],[89,2],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,2],[316,0],[316,3],[317,0],[317,3],[317,5],[29,2],[29,3],[29,5],[31,2],[31,2],[31,4],[31,3],[31,3],[31,1],[31,4],[31,3],[318,3],[318,4],[319,0],[319,1],[321,1],[327,1],[327,2],[328,1],[328,2],[328,2],[328,3],[329,4],[330,3],[330,4],[330,4],[320,3],[320,3],[320,4],[320,4],[320,4],[320,5],[320,6],[320,4],[183,2],[322,2],[334,1],[334,3],[335,1],[335,3],[335,3],[335,5],[336,5],[337,2],[337,5],[337,5],[324,0],[324,1],[324,1],[326,2],[332,2],[332,4],[332,3],[343,0],[343,1],[343,1],[340,2],[342,2],[342,2],[341,5],[344,5],[344,5],[344,5],[344,5],[344,5],[344,6],[344,6],[344,6],[344,6],[344,6],[349,0],[349,1],[359,2],[354,2],[354,2],[350,0],[350,1],[360,3],[355,3],[355,3],[355,2],[368,0],[368,1],[368,3],[368,3],[369,1],[369,3],[369,3],[369,5],[369,3],[370,1],[370,1],[366,1],[366,3],[367,1],[367,2],[367,3],[367,3],[367,3],[367,4],[367,5],[371,1],[371,2],[371,1],[352,0],[352,1],[362,3],[357,3],[357,2],[372,1],[372,3],[373,1],[373,2],[373,3],[373,4],[373,5],[374,2],[375,2],[375,2],[376,0],[376,1],[376,1],[353,0],[353,1],[363,2],[363,4],[363,2],[363,4],[358,2],[364,1],[365,1],[130,1],[130,2],[130,2],[130,2],[130,2],[130,4],[130,4],[130,4],[130,6],[130,2],[130,3],[130,3],[130,3],[130,3],[130,3],[130,6],[130,6],[130,5],[130,5],[130,6],[130,5],[130,3],[130,3],[130,3],[130,3],[130,3],[130,2],[130,3],[130,2],[130,3],[133,1],[133,3],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,3],[133,4],[133,5],[133,4],[133,4],[133,4],[133,6],[133,6],[133,2],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,4],[133,3],[133,6],[133,6],[133,5],[133,5],[133,6],[133,6],[133,6],[133,6],[133,5],[133,4],[133,5],[133,5],[133,5],[133,5],[133,4],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,2],[133,3],[133,2],[133,3],[133,2],[133,3],[133,2],[133,3],[133,3],[133,4],[133,3],[133,3],[133,3],[381,1],[381,3],[391,1],[391,3],[391,3],[391,5],[391,3],[391,5],[391,4],[391,3],[391,2],[391,2],[391,4],[173,1],[173,3],[378,1],[378,1],[378,2],[378,2],[378,1],[378,1],[385,1],[385,1],[385,2],[385,2],[385,1],[392,1],[392,3],[397,1],[400,1],[400,2],[400,2],[290,1],[396,1],[402,1],[402,1],[403,1],[377,1],[377,1],[406,1],[406,2],[406,3],[406,2],[407,2],[407,3],[407,4],[404,1],[404,1],[404,1],[405,1],[405,1],[408,1],[408,1],[379,0],[379,1],[409,2],[409,1],[411,2],[411,3],[411,2],[325,1],[325,3],[331,1],[331,2],[331,3],[331,3],[331,3],[331,4],[331,3],[331,3],[331,4],[331,4],[331,4],[331,5],[331,5],[347,1],[347,3],[348,1],[348,3],[348,3],[348,5],[348,3],[413,1],[414,1],[415,1],[415,1],[416,1],[416,1],[418,2],[420,2],[420,2],[345,3],[345,4],[346,1],[346,2],[424,3],[424,1],[424,3],[424,3],[424,3],[421,1],[421,2],[421,2],[421,3],[422,2],[422,2],[422,3],[422,2],[422,1],[422,3],[422,2],[422,3],[422,3],[422,2],[422,3],[422,2],[422,3],[422,3],[422,2],[425,2],[425,3],[425,3],[425,2],[425,3],[425,3],[425,3],[425,3],[425,2],[425,3],[425,3],[425,3],[425,3],[425,2],[423,0],[423,2],[427,1],[427,3],[426,2],[426,2],[417,2],[417,2],[419,2],[419,2],[419,2],[428,1],[430,1],[429,1],[431,1],[432,0],[432,2],[433,2],[433,2],[434,0],[435,0],[380,3],[380,4],[386,3],[386,3],[338,2],[339,3],[436,1],[437,1],[438,1],[439,1],[440,1],[441,1],[442,1],[443,1],[444,1],[445,1],[446,1],[447,1],[448,1],[449,1],[410,0],[410,1],[410,1],[410,2],[410,2],[412,1],[412,1],[412,2],[412,2],[412,2],[395,2],[395,2],[395,1],[399,1],[399,2],[399,1],[399,2],[399,2],[399,2],[399,1],[460,2],[460,2],[461,2],[461,2],[394,1],[394,1],[394,1],[394,1],[393,2],[393,3],[398,3],[398,4],[398,3],[450,1],[450,1],[450,1],[455,1],[455,1],[455,1],[452,3],[452,4],[457,4],[457,5],[457,4],[451,0],[451,1],[456,1],[453,2],[453,2],[458,2],[468,4],[469,4],[469,4],[469,5],[469,7],[470,0],[470,1],[474,3],[472,2],[472,3],[472,3],[471,0],[471,2],[473,1],[473,3],[473,2],[475,0],[475,1],[477,5],[477,5],[476,2],[476,6],[476,5],[476,5],[476,5],[476,4],[479,0],[485,0],[486,3],[489,5],[489,4],[489,3],[489,3],[489,2],[478,1],[478,1],[480,0],[480,2],[480,2],[483,2],[483,2],[481,0],[481,3],[481,3],[484,2],[484,3],[484,3],[490,1],[490,1],[351,0],[351,1],[361,2],[356,2],[356,2],[454,6],[454,3],[459,6],[459,5],[459,4],[459,6],[459,5],[459,4],[459,6],[459,5],[459,6],[459,5],[462,4],[462,3],[462,5],[465,5],[465,6],[465,5],[464,4],[464,5],[467,5],[467,6],[467,5],[491,1],[491,1],[491,1],[491,1],[491,1],[491,1],[491,1],[491,1],[492,1],[492,1],[463,5],[463,3],[466,5],[466,6],[466,5],[7,4],[7,2],[493,1],[493,3],[494,1],[494,1],[494,2],[494,1],[494,1],[494,1],[494,1],[162,6],[166,6],[166,6],[166,6],[166,6],[166,7],[166,3],[166,2],[166,2],[166,2],[496,1],[499,1],[502,1],[503,1],[497,1],[497,3],[500,1],[500,3],[500,3],[500,5],[504,3],[505,3],[505,2],[505,1],[506,1],[507,1],[508,1],[498,0],[498,2],[501,2],[501,2],[8,2],[15,2],[387,3],[387,3],[387,3],[383,2],[383,2],[383,2],[388,2],[388,2],[388,2],[388,2],[388,2],[388,2],[384,2],[384,4],[389,2],[389,4],[389,4],[389,3],[389,4],[389,3],[389,4],[389,4],[389,3],[389,4],[389,3],[390,1],[390,1],[510,1],[510,2],[511,1],[511,2],[511,3],[511,3],[511,2],[512,4],[513,2],[513,3],[513,4],[513,4],[513,3],[513,3],[513,4],[513,2],[513,3],[513,2],[513,3],[513,3],[513,4],[513,3],[513,4],[513,4],[513,5],[513,4],[513,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 9: - - parser.suggestSetOptions(); - -break; -case 15: - - parser.suggestKeywords(['TABLE', 'VIEW']); - -break; -case 21: case 30: case 243: case 247: case 249: case 1134: - - parser.addTablePrimary($$[$0]); - -break; -case 22: case 238: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - -break; -case 23: - - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 26: case 590: - - parser.suggestKeywords(['AS']); - -break; -case 28: case 194: case 203: case 288: case 591: case 952: - - parser.suggestKeywords(['SELECT']); - -break; -case 31: case 248: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 32: - - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 40: case 226: - - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - -break; -case 42: - - parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); - -break; -case 43: case 60: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 45: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 46: - - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 47: - - parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); - -break; -case 48: - - if (!$$[$0]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 66: - - var keywords = []; - if (!$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$$[$0-1]) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 67: - - parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); - this.$ = $$[$0]; - -break; -case 72: -this.$ = []; -break; -case 74: case 482: case 1131: case 1151: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 76: case 212: case 214: case 415: case 418: case 504: case 547: case 688: case 867: case 949: case 1001: -this.$ = $$[$0-1]; -break; -case 78: case 583: -this.$ = [$$[$0]]; -break; -case 79: -this.$ = $$[$0-2].concat($$[$0]); -break; -case 84: case 86: - - parser.checkForKeywords($$[$0-1]); - -break; -case 85: case 87: - - parser.checkForKeywords($$[$0-3]); - -break; -case 88: - - this.$ = $$[$0-2]; - this.$.type = $$[$0-1]; - var keywords = []; - if (!$$[$0]['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 89: case 116: case 122: case 123: case 136: case 139: case 148: case 150: - - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - -break; -case 92: -this.$ = {}; -break; -case 94: - - this.$ = {}; - this.$[$$[$0]] = true; - -break; -case 95: - - $$[$0-1][$$[$0]] = true; - -break; -case 100: case 101: -this.$ = 'null'; -break; -case 102: -this.$ = 'comment'; -break; -case 103: - - parser.suggestKeywords(['NULL']); - -break; -case 121: - - parser.suggestKeywords(parser.getTypeKeywords()); - -break; -case 135: case 138: - - parser.suggestKeywords(['COMMENT']); - -break; -case 157: case 1027: - - parser.suggestKeywords(['BY']); - -break; -case 158: - - parser.suggestKeywords(['RANGE']); - -break; -case 167: case 172: case 173: - - parser.suggestKeywords(['PARTITION']); - -break; -case 179: - - parser.suggestKeywords(['VALUE', 'VALUES']); - -break; -case 180: - - if ($$[$0].endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - -break; -case 181: case 184: case 187: - - parser.suggestKeywords(['<', '<=']); - -break; -case 182: case 447: case 450: - - parser.suggestKeywords(['VALUES']); - -break; -case 185: case 188: - - parser.suggestFunctions(); - -break; -case 196: - - parser.commitLocations(); - -break; -case 198: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 199: - - if (!$$[$0-6]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 202: - - var keywords = [{value: 'AS', weight: 1 }]; - if (!$$[$0-1]) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - -break; -case 209: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 213: case 215: -this.$ = $$[$0-3]; -break; -case 230: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - -break; -case 231: - - parser.suggestKeywords(['CASCADE']); - -break; -case 233: - - if (!$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 235: case 254: - - parser.addTablePrimary($$[$0-1]); - -break; -case 237: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 240: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 244: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 245: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 250: - - parser.suggestKeywords(['TABLE']); - -break; -case 251: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 255: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 262: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 263: - - parser.suggestKeywords(['INTO']); - -break; -case 264: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 266: - - $$[$0-1].owner = 'insert'; - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['VALUES']); - -break; -case 274: case 275: - - return parser.yy.result; - -break; -case 276: - - parser.prepareNewStatement(); - -break; -case 278: case 280: case 282: - - parser.addStatementLocation(_$[$0]); - -break; -case 281: case 283: - - parser.addStatementLocation(_$[$0-3]); - -break; -case 287: - - parser.suggestDdlAndDmlKeywords(); - -break; -case 416: case 419: case 505: -this.$ = ''; -break; -case 431: case 434: - - parser.yy.correlatedSubQuery = false; - -break; -case 432: case 436: - - parser.suggestKeywords(['EXISTS']); - -break; -case 435: - - parser.suggestKeywords(['NOT EXISTS']); - -break; -case 446: case 448: case 449: case 451: - - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - -break; -case 472: case 475: case 476: case 501: case 502: case 523: case 526: case 637: case 1145: - - parser.suggestColumns(); - -break; -case 480: case 506: - - parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0] } ] }; - -break; -case 481: case 507: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; - -break; -case 483: case 488: - - parser.suggestDatabases(); - this.$ = { identifierChain: [{ name: $$[$0-2] }] }; - -break; -case 484: case 509: - - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 485: -this.$ = [{ name: $$[$0] }]; -break; -case 486: -this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; -break; -case 487: - - parser.suggestDatabases({ appendDot: true }); - -break; -case 491: case 1154: - - parser.suggestDatabases(); - -break; -case 500: case 642: case 643: case 649: case 650: case 945: case 1028: - - parser.valueExpressionSuggest(); - -break; -case 508: - - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - -break; -case 511: -this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; -break; -case 514: - - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - -break; -case 515: case 822: - - parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); - -break; -case 517: - - this.$ = [ $$[$0].identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 518: - - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $$[$0-2].push($$[$0].identifier); - parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); - -break; -case 519: - - parser.suggestColumns({ - identifierChain: $$[$0-2] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 520: - - parser.suggestColumns({ - identifierChain: $$[$0-4] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 521: -this.$ = [ $$[$0].identifier ]; -break; -case 522: - - $$[$0-2].push($$[$0].identifier); - -break; -case 524: - - parser.suggestColumns({ identifierChain: $$[$0-2] }); - -break; -case 525: - - parser.suggestColumns({ identifierChain: $$[$0-4] }); - -break; -case 527: -this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; -break; -case 549: case 869: -this.$ = $$[$0-2]; -break; -case 552: - - parser.addCommonTableExpressions($$[$0-3]); - -break; -case 553: case 554: case 586: - - parser.addCommonTableExpressions($$[$0-2]); - -break; -case 558: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); - this.$ = { selectList: $$[$0] }; - -break; -case 559: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } - -break; -case 570: - - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - -break; -case 571: - - parser.suggestKeywords(['ALL', 'DISTINCT']); - -break; -case 573: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); - if ($$[$0].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($$[$01]); - } - if ($$[$0].suggestFunctions) { - parser.suggestFunctions(); - } - if ($$[$0].suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($$[$0].suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($$[$0].suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($$[$0].suggestAggregateFunctions && (!$$[$0-1] || $$[$0-1] === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - -break; -case 574: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] || $$[$0-1] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 575: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - -break; -case 576: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - -break; -case 577: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 578: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-2]); - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 579: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-3]); - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 580: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - -break; -case 581: case 619: case 640: case 653: case 657: case 681: case 706: case 707: case 788: case 790: case 854: case 864: case 871: case 883: case 1026: case 1150: case 1188: case 1189: -this.$ = $$[$0]; -break; -case 584: -this.$ = $$[$0-2].concat([$$[$0]]); -break; -case 588: - - parser.addCommonTableExpressions($$[$0-4]); - -break; -case 589: - - parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); - $$[$0-1].alias = $$[$0-4]; - this.$ = $$[$0-1]; - -break; -case 596: case 597: - - parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); - -break; -case 598: - - var keywords = []; - - parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); - - if ($$[$0-3]) { - if (typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($$[$0-3].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - } - if ($$[$0-3].tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); - } - if ($$[$0-3].tableReferenceList.suggestJoins) { - parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); - } - if ($$[$0-3].tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($$[$0-3].tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($$[$0-3].tableReferenceList); - } - } - } - - if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($$[$0-1].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].suggestFilters) { - parser.suggestFilters($$[$0-1].suggestFilters); - } - if ($$[$0-1].suggestGroupBys) { - parser.suggestGroupBys($$[$0-1].suggestGroupBys); - } - if ($$[$0-1].suggestOrderBys) { - parser.suggestOrderBys($$[$0-1].suggestOrderBys); - } - - if ($$[$0-1].empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - -break; -case 599: - - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$$[$0-1]) { - parser.addClauseLocation('whereClause', _$[$0-2]); - parser.addClauseLocation('limitClause', _$[$0-2]); - return; - } - parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); - var keywords = []; - - if ($$[$0-1].suggestColRefKeywords) { - parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); - parser.addColRefIfExists($$[$0-1]); - } - - if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - -break; -case 603: - - this.$ = { tableReferenceList : $$[$0] } - -break; -case 604: case 876: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 606: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - this.$ = { suggestKeywords: keywords, empty: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - } else { - this.$ = {}; - } - - this.$.whereClauseLocation = $$[$0-4] ? _$[$0-4] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-1] && !$$[$0]) { - this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - -break; -case 607: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - -break; -case 608: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - -break; -case 610: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - -break; -case 612: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($$[$0-5].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 1)); - } - this.$ = parser.getValueExpressionKeywords($$[$0-5], keywords); - this.$.cursorAtEnd = !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if ($$[$0-5].columnReference) { - this.$.columnReference = $$[$0-5].columnReference; - } - if (!$$[$0-3]) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 613: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($$[$0-4].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 8)); - } - if ($$[$0-4].valueExpression) { - this.$ = parser.getValueExpressionKeywords($$[$0-4].valueExpression, keywords); - if ($$[$0-4].valueExpression.columnReference) { - this.$.columnReference = $$[$0-4].valueExpression.columnReference; - } - } else { - this.$ = { suggestKeywords: keywords }; - } - this.$.cursorAtEnd = !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 614: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-1], $$[$0]], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; - if (!$$[$0-1]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-3], _$[$0-3]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 615: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0]], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 4)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 616: - - this.$ = { suggestKeywords: [], cursorAtEnd: true }; - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = _$[$0-1]; - -break; -case 620: - - if ($$[$0].suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 621: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 624: - - this.$ = { valueExpression: $$[$0] }; - -break; -case 625: case 664: - - parser.suggestSelectListAliases(); - -break; -case 626: - - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 627: - - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 654: - - if ($$[$0].emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 655: - - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 659: - - this.$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 660: case 661: case 662: -this.$ = { emptyOrderBy: false }; -break; -case 663: -this.$ = parser.mergeSuggestKeywords($$[$0]); -break; -case 665: - - this.$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 666: - - this.$ = { suggestKeywords: ['ASC', 'DESC'] }; - -break; -case 679: case 680: - - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 682: - - // verifyType($$[$0], 'NUMBER'); - this.$ = $$[$0]; - $$[$0].types = ['NUMBER']; - -break; -case 683: case 684: case 685: case 686: case 693: case 694: case 695: case 696: case 697: case 698: case 704: case 705: case 726: case 784: case 785: case 843: -this.$ = { types: [ 'BOOLEAN' ] }; -break; -case 687: - - this.$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - -break; -case 689: case 690: case 691: case 692: - - parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 699: case 700: - - // verifyType($$[$0-2], 'BOOLEAN'); - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 701: case 702: case 703: - - // verifyType($$[$0-2], 'NUMBER'); - // verifyType($$[$0], 'NUMBER'); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 709: - - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 710: case 712: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 711: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 713: - - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 714: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 715: - - parser.suggestFunctions(); - parser.suggestColumns(); - this.$ = { types: [ 'T' ] }; - -break; -case 716: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 717: - - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 718: - - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 719: - - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 720: - - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 721: case 722: case 723: - - parser.suggestKeywords(['NOT']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 724: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 725: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 727: - - this.$ = $$[$0-1]; - -break; -case 728: - - parser.valueExpressionSuggest(); - this.$ = { types: ['T'], typeSet: true }; - -break; -case 729: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 730: case 731: case 732: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 733: case 734: case 735: case 736: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0].types); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 737: case 739: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 738: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - -break; -case 740: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; - -break; -case 741: case 742: case 743: case 744: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 745: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-3].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 746: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 747: case 748: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; -break; -case 749: case 750: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; -break; -case 751: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; - -break; -case 752: - - if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 753: - - if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 754: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 755: case 761: - - parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 756: - - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 757: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; - -break; -case 758: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 759: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 760: - - parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-4].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 762: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 763: case 765: case 767: case 769: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - -break; -case 764: case 768: - - parser.addColRefIfExists($$[$0]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 766: case 770: - - parser.addColRefIfExists($$[$0-2]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 771: case 772: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 773: case 774: case 775: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 776: case 777: case 778: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions(['NUMBER']); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 779: case 780: case 781: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 782: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 783: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 786: - - parser.valueExpressionSuggest(undefined, $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 787: - - parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 789: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 791: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 792: - - this.$ = $$[$0]; - this.$.suggestFilters = $$[$0-1].suggestFilters; - -break; -case 793: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 794: case 1074: case 1079: case 1080: -this.$ = { types: [ 'T' ] }; -break; -case 795: case 797: - - $$[$0].position = 1; - -break; -case 796: - - $$[$0].position = $$[$0-2].position + 1; - this.$ = $$[$0]; - -break; -case 798: - - $$[$0-2].position += 1; - -break; -case 799: - - $$[$0-2].position = 1; - -break; -case 800: - - $$[$0-4].position += 1; - -break; -case 801: - - parser.valueExpressionSuggest(); - $$[$0-2].position += 1; - -break; -case 802: - - parser.valueExpressionSuggest(); - $$[$0-4].position += 1; - -break; -case 803: - - parser.suggestValueExpressionKeywords($$[$0-3]); - -break; -case 804: case 805: - - parser.valueExpressionSuggest(); - this.$ = { cursorAtStart : true, position: 1 }; - -break; -case 806: case 807: - - parser.valueExpressionSuggest(); - this.$ = { position: 2 }; - -break; -case 811: -this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; -break; -case 812: - - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].expression) { - this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } - } else { - this.$ = { function: fn, types: parser.findReturnTypes(fn) } - } - -break; -case 813: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 815: -this.$ = { types: [ 'NULL' ] }; -break; -case 817: - - if ($$[$0].suggestKeywords) { - this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; - } else { - this.$ = { types: ['COLREF'], columnReference: $$[$0] }; - } - -break; -case 818: - - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); - } - this.$ = { types: parser.findReturnTypes(fn) }; - -break; -case 819: case 991: case 992: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-1]) }; - -break; -case 821: - - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; - this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } - -break; -case 828: - - parser.suggestValues($$[$0]); - -break; -case 829: -this.$ = { types: [ 'NUMBER' ] }; -break; -case 835: case 837: -this.$ = $$[$0-1] + $$[$0]; -break; -case 836: -this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; -break; -case 841: case 842: - - if (/\$\{[^}]*\}/.test($$[$0])) { - parser.addVariableLocation(_$[$0], $$[$0]); - this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } - } else { - this.$ = { types: [ 'STRING' ] } - } - -break; -case 844: - - this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 845: - - this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 850: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); - } else { - this.$ = { valueExpression: $$[$0-1] } - } - -break; -case 851: - - parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); - this.$ = { asterisk: true } - -break; -case 852: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - } - -break; -case 853: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); - this.$ = { suggestAggregateFunctions: true }; - -break; -case 855: -this.$ = [ $$[$0] ]; -break; -case 856: - - $$[$0-2].push($$[$0]); - -break; -case 858: case 859: - - this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 861: - - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 862: - - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 863: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 865: case 866: case 868: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - -break; -case 879: - - this.$ = $$[$0]; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - this.$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - -break; -case 886: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-2]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 887: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-3]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 888: -this.$ = { joinType: $$[$0] }; -break; -case 889: -this.$ = { joinType: $$[$0-1] }; -break; -case 890: - - if ($$[$0-2].suggestKeywords) { - parser.suggestKeywords($$[$0-2].suggestKeywords); - } - -break; -case 891: - - if ($$[$0].suggestKeywords) { - parser.suggestKeywords($$[$0].suggestKeywords); - } - -break; -case 894: - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $$[$0-2], - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 899: -this.$ = 'CROSS JOIN'; -break; -case 900: -this.$ = 'FULL JOIN'; -break; -case 901: -this.$ = 'FULL OUTER JOIN'; -break; -case 902: -this.$ = 'INNER JOIN'; -break; -case 903: -this.$ = 'JOIN'; -break; -case 904: -this.$ = 'LEFT INNER JOIN'; -break; -case 905: -this.$ = 'LEFT JOIN'; -break; -case 906: -this.$ = 'LEFT OUTER JOIN'; -break; -case 907: -this.$ = 'LEFT SEMI JOIN'; -break; -case 908: -this.$ = 'OUTER JOIN'; -break; -case 909: case 911: -this.$ = 'RIGHT OUTER JOIN'; -break; -case 910: -this.$ = 'RIGHT JOIN'; -break; -case 912: -this.$ = 'RIGHT SEMI JOIN'; -break; -case 913: -this.$ = 'SEMI JOIN'; -break; -case 914: case 916: case 917: case 919: case 920: case 921: case 922: case 924: case 925: case 926: case 927: -this.$ = { suggestKeywords: ['JOIN'] }; -break; -case 915: case 918: case 923: -this.$ = { suggestKeywords: ['OUTER'] }; -break; -case 928: -this.$ = { noJoinCondition: true, suggestKeywords: ['ON'] }; -break; -case 929: -this.$ = { valueExpression: $$[$0] }; -break; -case 933: - - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - -break; -case 934: - - this.$ = { - primary: $$[$0-1] - } - if ($$[$0-1].identifierChain) { - if ($$[$0]) { - $$[$0-1].alias = $$[$0].alias - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); - } - parser.addTablePrimary($$[$0-1]); - } - - var keywords = []; - if (!$$[$0]) { - keywords = ['AS']; - } else if ($$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 935: - - this.$ = { - primary: $$[$0-1] - }; - - if ($$[$0]) { - this.$.primary.alias = $$[$0].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); - parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); - } - - var keywords = []; - if (!$$[$0]) { - keywords = ['AS']; - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 936: - - if ($$[$0]) { - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); - } - -break; -case 937: - - if ($$[$0]) { - parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); - parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias); - } - -break; -case 947: - - parser.pushQueryState(); - -break; -case 948: - - parser.popQueryState(); - -break; -case 950: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - this.$ = $$[$0-2]; - -break; -case 953: - - var subQuery = parser.getSubQuery($$[$0]); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - this.$ = subQuery; - -break; -case 970: case 971: case 972: case 973: -this.$ = { alias: $$[$0], location: _$[$0] }; -break; -case 979: - - if (!$$[$0]) { - $$[$0-1].suggestKeywords = ['OVER']; - } - -break; -case 986: - - parser.suggestKeywords(['OVER']); - -break; -case 989: case 990: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 998: -this.$ = { expression: $$[$0-1] }; -break; -case 999: - - parser.valueExpressionSuggest(); - this.$ = { position: 1 } - -break; -case 1000: - - parser.suggestValueExpressionKeywords($$[$0-1]); - -break; -case 1008: case 1086: case 1107: -this.$ = { types: parser.findReturnTypes($$[$0-2]) }; -break; -case 1009: -this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1010: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-3], 1); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1011: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1012: - - parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1020: case 1021: - - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - -break; -case 1022: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$$[$0-2]) { - parser.suggestKeywords(['PARTITION BY']); - } - -break; -case 1023: - - if (!$$[$0-1]) { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - -break; -case 1032: - - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - -break; -case 1033: - - var keywords = []; - if ($$[$0-2].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - } - if (!$$[$0]) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - -break; -case 1039: - - parser.suggestKeywords(['BETWEEN']); - -break; -case 1040: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['AND']); - } - -break; -case 1045: - - lexer.popState(); - -break; -case 1046: - - lexer.begin('hdfs'); - -break; -case 1048: - - parser.suggestHdfs({ path: $$[$0-3] }); - -break; -case 1049: - - parser.suggestHdfs({ path: $$[$0-2] }); - -break; -case 1050: - - parser.suggestHdfs({ path: $$[$0-1] }); - -break; -case 1051: - - parser.suggestHdfs({ path: '' }); - -break; -case 1052: - - parser.suggestHdfs({ path: '' }); - -break; -case 1058: - - parser.suggestKeywords(['PRECEDING']); - -break; -case 1059: case 1064: - - parser.suggestKeywords(['ROW']); - -break; -case 1063: - - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - -break; -case 1065: - - parser.suggestKeywords(['FOLLOWING']); - -break; -case 1071: - - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 1072: - - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 1073: case 1078: -this.$ = { types: [ $$[$0-1].toUpperCase() ] }; -break; -case 1075: - - parser.valueExpressionSuggest(); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 1076: case 1077: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ] }; - -break; -case 1081: - - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 1082: - - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ 'T' ] }; - -break; -case 1083: case 1084: - - parser.suggestKeywords(parser.getTypeKeywords()); - this.$ = { types: [ 'T' ] }; - -break; -case 1085: case 1091: -this.$ = { types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1087: case 1092: case 1106: -this.$ = { types: parser.findReturnTypes($$[$0-4]) }; -break; -case 1088: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1089: case 1094: case 1109: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1090: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1093: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1095: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1108: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1110: - - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1127: - - parser.suggestKeywords([ 'WHERE' ]); - -break; -case 1128: - - parser.suggestKeywords([ 'SET' ]); - -break; -case 1144: - - parser.suggestKeywords([ '=' ]); - -break; -case 1153: - - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $$[$0]; - } - -break; -case 1156: -this.$ = { inValueEdit: true }; -break; -case 1157: -this.$ = { inValueEdit: true, cursorAtStart: true }; -break; -case 1158: case 1159: case 1160: -this.$ = { suggestKeywords: ['NOT'] }; -break; -case 1164: case 1165: case 1166: - - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - this.$ = { types: ['BOOLEAN'] } - -break; -case 1167: case 1169: -this.$ = parser.findCaseType($$[$0-1]); -break; -case 1168: case 1171: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1170: - - parser.suggestValueExpressionKeywords($$[$0-1], ['END']); - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1172: -this.$ = parser.findCaseType($$[$0-2]); -break; -case 1173: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1174: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-2]); - -break; -case 1175: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - this.$.suggestFilters = $$[$0-1].suggestFilters - -break; -case 1176: - - parser.valueExpressionSuggest(); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1177: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1178: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = $$[$0-1]; - -break; -case 1179: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ] }; - -break; -case 1182: -this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; -break; -case 1183: - - $$[$0-1].caseTypes.push($$[$0]); - this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; - -break; -case 1187: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - -break; -case 1190: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; -break; -case 1191: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1192: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 1193: case 1194: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; -break; -case 1195: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1196: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [$$[$0]] }; - -break; -case 1197: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1198: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1199: case 1201: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 1200: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 1202: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; - -break; -case 1203: - - parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1204: - - parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1205: case 1206: case 1207: case 1208: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -} -}, -table: [o($V0,$V1,{174:1,175:2}),{1:[3]},o($V2,$V3,{176:3,180:4,3:5,160:6,29:7,4:8,5:9,6:10,7:11,8:12,161:13,162:14,318:15,183:16,16:17,17:18,33:19,34:20,35:21,36:22,143:23,144:24,145:25,146:26,147:27,163:30,21:34,27:35,13:$V4,20:$V5,40:$V6,152:$V7,158:$V8,167:$V9,323:$Va,333:$Vb,495:$Vc,509:$Vd}),{177:[1,41],181:[1,42]},o($V2,[2,278]),o($V2,[2,284]),o($V2,[2,285]),o($V2,[2,286]),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,257]),o($V2,[2,258]),o($Ve,$Vf,{319:43,327:44,329:45,262:$Vg}),{71:[1,48],318:47,323:$Va},o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,33]),o($V2,[2,34]),o($V2,[2,35]),o($V2,[2,36]),o($V2,[2,217]),o($V2,[2,218]),o($V2,[2,219]),o($V2,[2,220]),o($V2,[2,221]),{43:51,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,198:[1,50],493:49},{43:58,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl},o($V2,[2,259]),{43:64,105:$Vh,111:63,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,306:62,308:61,496:59,502:60},o([53,54,71,87,88,99,104,105,142,158,186,187,188,190,191,192,193,197,199,203,204,208,209,211,221,222,230,238,239,254,255,257,261,263,264,265,266,268],$Vn,{324:66,198:$Vo,217:$Vp}),{43:64,105:$Vh,111:71,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,334:69,336:70},{22:72,117:[1,73]},{28:[1,74]},{24:[1,76],32:[1,77],41:75,142:[1,78],214:$Vq,251:$Vr},{24:[1,83],32:[1,84],41:81,142:[1,82],214:$Vq,251:$Vr},{24:[1,85]},{168:[1,86]},{24:[1,87],32:[1,88]},{1:[2,273]},o($V0,$V1,{175:89}),o($Ve,[2,547]),o($Ve,[2,561],{329:90,262:$Vg}),o($Vs,[2,563]),o([198,217,323],$V1,{175:91}),o($Ve,$Vf,{327:44,329:45,319:92,262:$Vg}),{29:93,183:16,318:15,323:$Va,333:$Vb},{193:[1,95],194:[1,94]},o($V2,[2,1112]),o($Vt,[2,1113]),o($Vu,[2,296]),o($Vu,[2,297]),o($Vu,[2,298]),o($Vu,[2,293]),o($Vu,[2,294]),o($Vu,[2,295]),o($V2,[2,1153]),{13:[1,96]},{13:[2,1132]},{13:[2,1134]},{13:[2,510],43:64,105:$Vh,111:97,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($Vv,[2,506],{193:[1,98]}),o($Vu,[2,503]),{55:[1,99],204:[1,100]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:103,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,191:$VF,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,325:101,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,409:102,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($V01,[2,594]),o($V01,[2,595]),o([71,323],[2,581],{77:[1,159]}),o($V11,[2,583]),{28:[1,160]},o($V2,[2,16]),{71:[1,161]},{29:162,183:16,318:15,323:$Va,333:$Vb},o($V21,$V31,{42:163,230:$V41}),o($V51,$V31,{42:165,230:$V41}),o($V51,$V31,{42:166,230:$V41}),{43:167,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl},o($V61,[2,413]),o($V61,[2,414]),o($V51,$V71,{153:168,230:$V81}),{43:170,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl},o($V51,$V71,{153:171,230:$V81}),o($V51,$V71,{153:172,230:$V81}),o($V51,$V71,{153:173,230:$V81}),o($V51,[2,271],{169:174,24:[1,175]}),{25:176,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{25:178,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($V2,$V3,{180:4,3:5,160:6,29:7,4:8,5:9,6:10,7:11,8:12,161:13,162:14,318:15,183:16,16:17,17:18,33:19,34:20,35:21,36:22,143:23,144:24,145:25,146:26,147:27,163:30,21:34,27:35,176:179,13:$V4,20:$V5,40:$V6,152:$V7,158:$V8,167:$V9,323:$Va,333:$Vb,495:$Vc,509:$Vd}),o($Vs,[2,564]),{198:$Vo,217:$Vp,323:$Vn,324:180},o($Ve,[2,548]),{73:[1,181]},{43:183,51:185,53:$Vw,54:$Vx,88:[1,188],105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,192:[1,190],193:$VH,222:[1,187],261:[1,186],263:$VX,264:$VY,273:192,276:193,377:189,400:184,401:[1,191],406:135,407:136,494:182},{43:194,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl},{43:64,79:129,105:$Vh,111:140,141:198,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,310:199,497:195,504:196,506:197},{13:[2,511]},{43:64,105:$Vh,111:200,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{204:[1,201]},o($Vu,[2,505]),o($Vs,[2,558],{326:202,340:204,77:[1,203],225:[1,205]}),o($V91,[2,855]),o($V91,$Va1,{185:54,43:64,273:192,276:193,410:206,383:220,111:221,51:222,28:$Vb1,53:$Vw,54:$Vx,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,105:$Vh,134:$Vg1,142:$Vi,186:$Vj,187:$Vk,188:$Vl,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,204:$Vm,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($V91,[2,851]),o($Vs1,[2,678]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:227,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:228,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:229,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:230,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{71:$Vt1,380:231},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:233,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:235,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,269:$Vu1,273:137,276:138,290:113,310:119,377:127,378:105,384:234,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143,510:236,512:237},o($Vs1,[2,810]),o($Vs1,[2,811],{393:239,71:$Vv1}),{71:$Vv1,393:241},o($Vs1,[2,814]),o($Vs1,[2,815]),o($Vs1,[2,827]),o($Vw1,[2,821],{193:[1,242]}),{71:[2,993]},{71:[2,994]},{71:[2,995]},{71:[2,996]},o($Vs1,[2,1013],{451:243,453:244,244:$Vx1}),{244:$Vx1,453:246},o($Vs1,[2,981]),o($Vs1,[2,829]),o($Vs1,[2,830]),o($Vy1,[2,517]),o($Vz1,[2,1002]),o($Vz1,[2,1003]),o($Vz1,[2,1004]),{71:[1,247]},{71:[1,248]},o($Vs1,[2,832]),o($Vs1,[2,833]),o($Vs1,[2,841]),o($Vs1,[2,842]),o($Vs1,[2,843]),o([28,50,53,54,69,71,73,77,87,99,100,101,104,105,121,134,142,177,181,186,187,188,191,192,193,194,200,201,202,204,205,206,207,210,212,215,216,218,219,220,223,225,226,227,228,231,232,233,234,235,236,237,241,242,243,246,247,248,250,252,253,256,258,259,260,262,267,269,270,382],[2,527]),{71:[1,249]},{71:[1,250]},{71:[1,251]},o($Vs1,[2,834],{193:[1,252]}),{263:[1,253],264:[1,254]},{263:[1,255]},{53:[1,257],55:[1,256]},{54:[1,259],55:[1,258]},o($Vs1,[2,846]),o($Vs1,[2,847]),{71:[2,1096]},{71:[2,1097]},{71:[2,1098]},{71:[2,1099]},{71:[2,1100]},{71:[2,1101]},{71:[2,1102]},{71:[2,1103]},{43:64,105:$Vh,111:71,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,336:260},{71:[1,261]},{43:64,79:264,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,287:262,304:263},o($V2,[2,24]),o($V2,[2,41],{185:54,43:265,105:$Vh,142:$Vi,186:$Vj,187:$Vk,188:$Vl}),{87:[1,266]},{43:64,56:267,58:268,64:269,105:$Vh,111:270,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{43:64,64:271,105:$Vh,111:270,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($V2,[2,216]),{43:64,105:$Vh,111:272,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{221:[1,273]},o($V2,[2,234]),{25:274,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{25:275,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{25:276,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{25:277,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($V51,[2,272]),{117:[2,21]},o($VA1,[2,480],{193:[1,278]}),{28:[2,30]},o($V2,[2,279]),{318:279,323:$Va},o($Ve,$Vf,{327:44,329:45,319:280,262:$Vg}),o($V2,[2,1111]),o($V2,[2,1115]),o($V2,[2,1116],{185:54,43:281,105:$Vh,142:$Vi,186:$Vj,187:$Vk,188:$Vl}),o($V2,[2,1118]),o($V2,[2,1119]),o($V2,[2,1120]),o($V2,[2,1121]),o($V21,[2,824]),{193:$VH,263:$VX,264:$VY,377:282,406:135,407:136},{193:$VH,263:$VX,264:$VY,377:283,406:135,407:136},o($VB1,[2,421]),o($VB1,[2,422]),o($Vt,[2,1114]),o($VC1,[2,1149],{498:284,77:[1,285],225:[1,286]}),o($VD1,[2,1136]),{194:[1,287]},{194:[2,1146]},o($VE1,[2,514],{193:[1,288]}),o($Vv,[2,507]),o($Vu,[2,504]),o($Vs,[2,559]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:103,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,191:$VF,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,409:289,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VF1,$VG1,{341:290,349:291,359:292,270:$VH1}),{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,347:294,380:302,413:295,415:296,417:297,418:298,428:299,429:300},o($V91,[2,850]),o($VI1,[2,848],{379:303,87:[1,304]}),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:305,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:306,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:307,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:308,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{69:$Vc1,205:[1,310],231:[1,309],246:$Vq1,248:$Vr1,383:311},{71:[1,312]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:313,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:314,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:315,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:316,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:317,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:318,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,704]),o($VJ1,[2,970]),o($VJ1,[2,971]),{43:64,51:320,53:$Vw,54:$Vx,105:$Vh,111:319,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,273:192,276:193},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:321,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:322,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:323,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VK1,[2,679],{383:220,69:$Vc1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VK1,[2,680],{383:220,69:$Vc1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VK1,[2,681],{383:220,69:$Vc1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VL1,[2,682],{383:220}),o($Vs1,[2,687]),o($VM1,$VN1,{380:302,338:324,429:325,434:326,71:$Vt1}),{69:$Vc1,73:[1,327],87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},o($Vs1,[2,706]),{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,269:$Vu1,383:220,384:328,510:236,512:237},{219:[1,330],220:[1,329],269:$Vu1,512:331},o($VO1,[2,1182]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:332,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,812]),{43:64,53:$Vw,54:$Vx,71:$Vy,73:[1,333],79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:334,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,813]),{43:64,79:337,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,191:[1,336],204:$Vm},o($Vs1,[2,979]),o($Vs1,[2,1014]),{43:64,71:[1,340],105:$Vh,111:338,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,468:339},o($Vs1,[2,980]),{43:64,53:$Vw,54:$Vx,71:$Vy,73:[1,341],79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:342,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,73:[1,344],79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:343,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VP1,$Vn,{324:347,73:[1,346],191:[1,345],198:$Vo,217:$Vp}),o($VP1,$Vn,{324:348,73:[1,349],198:$Vo,217:$Vp}),o([53,54,71,73,87,88,99,104,105,142,158,186,187,188,190,192,193,197,199,203,204,208,209,211,221,222,230,238,239,254,255,257,261,263,264,265,266,268],$Vn,{324:350,198:$Vo,217:$Vp}),o($Vs1,[2,835],{263:[1,351],264:[1,352]}),o($Vs1,[2,837]),{263:[1,353]},o($Vs1,[2,838]),{53:[1,354]},o($VQ1,[2,416]),{54:[1,355]},o($VQ1,[2,419]),o($V11,[2,584]),o($VM1,$VN1,{434:326,338:356}),{73:[1,357],77:[1,358]},o($VR1,[2,492]),{194:[1,359]},o($V2,$VS1,{44:360,46:361,49:362,50:$VT1}),{221:[1,364]},o($V2,[2,58]),o($VU1,[2,154],{59:365,116:366,117:[1,367]}),o($VV1,[2,70],{65:368,68:369,69:[1,370],71:[1,371]}),o($VW1,[2,485],{193:[1,372]}),o($VX1,[2,206],{136:373,138:374,71:[1,375]}),o($V2,[2,428],{154:376,283:[1,377]}),o($V51,[2,431]),o($V2,[2,241],{156:378,157:[1,379]}),o($V2,[2,243]),o($V2,[2,249]),{132:[1,380]},{43:64,105:$Vh,111:381,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($Vs,[2,569]),o($Ve,[2,549]),o($V2,[2,1117]),o($V21,[2,825]),o($V21,[2,826]),o($V2,$VG1,{359:292,349:382,270:$VH1}),{43:64,79:129,105:$Vh,111:140,141:198,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,310:199,504:383,506:197},{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,380:302,413:384,415:296,417:297,418:298,428:299,429:300},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:386,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143,507:385},{43:64,79:337,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,191:[1,387],204:$Vm},o($V91,[2,856]),o($Vs,[2,596]),o($VY1,[2,622],{350:388,360:389,227:[1,390]}),o($VF1,[2,618]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:392,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,364:391,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o([73,177,181,227,228,237,242,262,270],[2,603],{77:[1,393]}),o($VZ1,[2,870]),o($VZ1,[2,877]),o($VZ1,[2,879],{345:394,422:395,212:$V_1,226:$V$1,232:$V02,235:$V12,236:$V22,243:$V32,247:$V42,252:$V52}),o($VZ1,[2,880]),o($V62,$Va1,{185:54,43:64,273:192,276:193,111:221,51:222,410:404,28:$Vb1,53:$Vw,54:$Vx,105:$Vh,142:$Vi,186:$Vj,187:$Vk,188:$Vl,204:$Vm}),o($V62,$Va1,{185:54,43:64,273:192,276:193,111:221,51:222,410:405,28:$Vb1,53:$Vw,54:$Vx,105:$Vh,142:$Vi,186:$Vj,187:$Vk,188:$Vl,204:$Vm}),o($V72,[2,939]),o($V72,[2,941]),{88:[1,406],217:[1,409],222:[1,408],261:[1,407]},o($VI1,[2,849]),o($V82,[2,689],{383:220,69:$Vc1,191:$Vh1,192:$Vi1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($V82,[2,690],{383:220,69:$Vc1,191:$Vh1,192:$Vi1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($V82,[2,691],{383:220,69:$Vc1,191:$Vh1,192:$Vi1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($V82,[2,692],{383:220,69:$Vc1,191:$Vh1,192:$Vi1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),{71:[1,410]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:411,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,705]),o($VM1,$VN1,{185:54,43:64,378:105,290:113,392:114,394:115,395:116,402:118,310:119,450:124,452:125,454:126,377:127,404:128,79:129,462:130,463:131,464:132,406:135,407:136,273:137,276:138,408:139,111:140,491:143,434:326,130:335,338:412,381:413,53:$Vw,54:$Vx,71:$Vy,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,142:$Vi,158:$VD,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$}),{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,382:[1,414],383:220},o($V92,[2,699],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($V92,[2,700],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VL1,[2,701],{383:220,69:$Vc1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VL1,[2,702],{383:220,69:$Vc1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VL1,[2,703],{383:220,69:$Vc1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VJ1,[2,972]),o($VJ1,[2,973]),o($VL1,[2,1158],{383:220}),o($VL1,[2,1159],{383:220}),o($VL1,[2,1160],{383:220}),{73:[1,415]},{28:$Vb1,43:64,51:222,53:$Vw,54:$Vx,73:$Va1,105:$Vh,111:221,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,273:192,276:193,410:416},{29:424,183:16,318:15,323:$Va,333:$Vb,436:417,438:418,440:419,442:420,444:421,446:422,448:423},o($Vs1,[2,688]),o($Vs1,[2,707]),o($Vs1,[2,1167]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:425,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VO1,[2,1183]),{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,258:[1,426],383:220},o($Vs1,[2,997]),{73:[1,427],77:$Va2},o($Vb2,[2,795],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($Vw1,[2,822]),o($Vy1,[2,518]),o($Vs1,[2,1016]),o($Vs1,[2,1017]),o($Vc2,[2,1024],{470:429,474:430,117:[1,431]}),{244:[2,1008]},{73:[1,432],77:$Va2},{28:[1,433],69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},o($Vs1,[2,1074]),{73:[1,434]},o($Vz1,[2,1086]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:435,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:436,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vz1,[2,1107]),{43:64,53:$Vw,54:$Vx,71:$Vy,73:[1,437],79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:438,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,836]),{263:[1,439]},o($Vs1,[2,839]),o($VQ1,[2,415]),o($VQ1,[2,418]),{73:[1,440]},o($V2,[2,443]),{43:64,79:264,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,304:441},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:442,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($V2,[2,42]),o($V2,[2,48]),o([28,73,77,101,177,181],[2,51]),{51:443,53:$Vw,54:$Vx,273:192,276:193},o([105,142,177,181,186,187,188,204],[2,434]),o($V2,[2,192],{60:444,28:[1,445]}),o($VU1,[2,155]),{118:[1,446]},o($VV1,[2,67]),o($VV1,[2,71]),{25:447,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{43:64,72:448,76:449,79:450,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{43:64,105:$Vh,111:451,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{28:$VS1,46:452,49:362,50:$VT1},o($VX1,[2,207]),{43:64,79:129,105:$Vh,111:140,139:453,141:454,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,310:199},o($V2,[2,227]),o($V2,[2,429]),o($V2,[2,235]),o($V2,[2,242]),{71:$Vd2,170:455,171:456,172:[1,457]},o($VA1,[2,481]),o($V2,[2,1122]),o($VD1,[2,1137]),o($VC1,[2,1150]),o($VD1,[2,1142]),o($VD1,[2,1147],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($VE1,[2,515]),o($Ve2,[2,1068],{351:459,361:460,228:[1,461]}),o($VY1,[2,623]),{118:[1,462]},o($VF1,[2,619]),o($VF1,[2,676],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,380:302,413:463,415:296,417:297,418:298,428:299,429:300},o($VZ1,[2,883],{422:464,212:$V_1,226:$V$1,232:$V02,235:$V12,236:$V22,243:$V32,247:$V42,252:$V52}),{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,380:302,417:465,428:299,429:300},{235:[1,466]},{235:[1,467],243:[1,468]},{235:[1,469]},o($Vf2,[2,903]),{232:[1,470],235:[1,471],243:[1,472],252:[1,473]},{235:[1,474]},{232:[1,475],235:[1,476],243:[1,477],252:[1,478]},{235:[1,479]},o($V62,[2,934]),o($V62,[2,935]),o($Vs1,[2,683]),o($Vs1,[2,684]),o($Vs1,[2,685]),{225:[1,480]},o($VM1,$VN1,{185:54,43:64,378:105,290:113,392:114,394:115,395:116,402:118,310:119,450:124,452:125,454:126,377:127,404:128,79:129,462:130,463:131,464:132,406:135,407:136,273:137,276:138,408:139,111:140,491:143,434:326,130:335,338:481,381:482,53:$Vw,54:$Vx,71:$Vy,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,142:$Vi,158:$VD,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$}),{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,382:[1,483],383:220},{73:[1,484]},{73:[1,485],77:$Va2},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:486,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vg2,[2,949]),{73:[1,487]},{73:[2,953]},{73:[2,955]},{73:[2,957]},{73:[2,959]},{73:[2,961]},{73:[2,963]},{73:[2,965]},{73:[2,967]},{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,220:[1,488],231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:489,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,998]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:490,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{73:[2,1030],242:$Vh2,362:492,471:491},o($Vc2,[2,1025]),{118:[1,494]},{244:[2,1009]},{89:495,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},o($Vz1,[2,1085]),{73:[1,508],77:$Va2},{69:$Vc1,73:[1,509],87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},o($Vz1,[2,1091]),{73:[1,510],77:$Va2},o($Vs1,[2,840]),o($V11,[2,589]),o($VR1,[2,493]),o($VR1,[2,498],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o([28,50,73,77,87,88,101,177,181],[2,52]),o($V2,[2,62]),o($VM1,[2,196],{135:511}),{119:512,121:[1,513]},o($VV1,[2,72]),{73:[1,514],77:[1,515]},o($VR1,[2,78]),{80:516,89:517,90:518,91:519,92:520,93:521,94:522,95:523,99:$Vu2,104:$Vv2,105:$Vw2,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},o($VW1,[2,486]),{28:[1,527]},{73:[1,528],77:[1,529]},o($VR1,$VS1,{49:362,46:530,50:$VT1}),o($V2,[2,262]),o($V2,[2,268]),{77:[1,531]},{43:64,53:$Vw,54:$Vx,79:129,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,142:$Vi,158:$VD,173:532,185:54,186:$Vj,187:$Vk,188:$Vl,193:$VH,199:$VJ,203:$VK,204:$Vm,209:$VM,211:$VN,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:533,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vx2,[2,651],{352:534,362:535,242:$Vh2}),o($Ve2,[2,1069]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:536,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:538,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,366:537,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VZ1,[2,871]),{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,380:302,417:539,428:299,429:300},o($Vy2,$Vz2,{423:540,240:$VA2}),o($Vf2,[2,899]),o($Vf2,[2,900]),{235:[1,542]},o($Vf2,[2,902]),{235:[1,543]},o($Vf2,[2,905]),{235:[1,544]},{235:[1,545]},o($Vf2,[2,908]),{235:[1,546]},o($Vf2,[2,910]),{235:[1,547]},{235:[1,548]},o($Vf2,[2,913]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:549,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{73:[1,550]},{73:[1,551],77:$Va2},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:552,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,695]),o($Vs1,[2,696]),o([28,53,54,73,77,105,121,142,177,181,186,187,188,200,202,204,205,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],[2,698],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($Vg2,[2,950]),o($Vs1,[2,1168]),o($VO1,[2,1189],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($Vb2,[2,796],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),{73:[1,553]},{73:[2,1035],121:[1,558],250:[1,557],475:554,477:555,478:556},{118:[1,559]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:560,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{73:[1,561]},o($VB2,[2,530]),o($VB2,[2,531]),o($VB2,$VC2,{316:562,71:$VD2}),o($VB2,[2,544],{317:564,71:[1,565]}),o($VB2,[2,534]),o($VB2,[2,535]),o($VB2,[2,536]),o($VB2,[2,537]),o($VB2,[2,538]),o($VB2,[2,539]),o($VB2,[2,540]),o($VB2,$VC2,{316:566,71:$VD2}),o($Vz1,[2,1087]),o($Vz1,[2,1106]),o($Vz1,[2,1092]),{29:567,183:16,318:15,323:$Va,333:$Vb},o($VU1,[2,156]),{71:[1,569],122:568},o($VV1,[2,76]),{43:64,76:570,79:450,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($VR1,[2,92],{81:571,84:572,85:573,49:576,50:$VT1,87:$VE2,88:$VF2}),o($VB2,[2,104]),o($VB2,[2,105]),o($VB2,[2,106]),o($VB2,[2,107]),o($VB2,[2,108]),o($VB2,[2,109]),o($VB2,[2,110]),{100:[1,577]},{100:[1,578]},{100:[1,579]},{29:580,183:16,318:15,323:$Va,333:$Vb},o($VX1,[2,208]),{43:64,79:129,105:$Vh,111:140,141:581,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,310:199},o($VR1,[2,210]),{71:$Vd2,171:582},{73:[1,583],77:[1,584]},o($VR1,[2,808]),o($Vs,[2,669],{353:585,363:586,237:[1,587]}),o($Vx2,[2,652]),o($Ve2,[2,1070],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($VY1,[2,624],{77:[1,588]}),o($VG2,[2,639],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($Vy2,$Vz2,{423:589,240:$VA2}),o($Vy2,[2,886]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:590,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vf2,[2,901]),o($Vf2,[2,904]),o($Vf2,[2,906]),o($Vf2,[2,907]),o($Vf2,[2,909]),o($Vf2,[2,911]),o($Vf2,[2,912]),o($VL1,[2,686],{383:220}),o($Vs1,[2,693]),o($Vs1,[2,694]),o($VK1,[2,697],{383:220,69:$Vc1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($Vs1,[2,1019]),{73:[2,1031]},{73:[2,1036]},{205:[1,591],482:[1,592]},o($VH2,[2,1053]),o($VH2,[2,1054]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:595,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,372:593,374:594,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vc2,[2,1026],{77:$Va2}),o($Vs1,[2,1073]),o($VB2,[2,532]),{263:[1,596]},o($VB2,[2,533]),{263:[1,597]},o($VB2,[2,541]),o($V2,[2,193]),{71:[1,599],123:598},{43:64,79:601,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,300:600},o($VR1,[2,79]),o($VR1,[2,88]),o($VR1,[2,93],{49:576,85:602,50:$VT1,87:$VE2,88:$VF2}),o($VI2,[2,94]),{88:[1,603]},o($VI2,[2,101]),o($VI2,[2,102]),{80:604,89:517,90:518,91:519,92:520,93:521,94:522,95:523,99:$Vu2,101:[1,605],104:$Vv2,105:$Vw2,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},{89:606,101:[1,607],206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},{43:64,101:[1,609],105:$Vh,106:608,108:610,111:611,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($V2,[2,197]),o($VR1,$VS1,{49:362,46:612,50:$VT1}),o($V2,[2,269]),o($V2,[2,270]),{43:64,53:$Vw,54:$Vx,79:129,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,193:$VH,199:$VJ,203:$VK,204:$Vm,209:$VM,211:$VN,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:613,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs,[2,606]),o($Vs,[2,670]),{188:[1,615],193:$VH,263:$VX,264:$VY,377:614,406:135,407:136},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:616,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vy2,[2,887]),o($Vy2,[2,929],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($VJ2,$VK2,{479:617}),o($VJ2,$VK2,{479:618}),o([73,121,177,181,237,250,262],[2,653],{77:[1,619]}),o($VL2,[2,656]),o($VL2,[2,666],{383:220,376:620,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,202:[1,621],205:$Vm1,216:[1,622],231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),{73:[1,623]},{73:[1,624],77:[1,625]},o($VU1,[2,160]),{117:$VM2,126:626,128:627},{73:[1,629],77:[1,630]},o($VR1,[2,473]),o($VI2,[2,95]),o($VI2,[2,100]),{101:[1,631]},o($VB2,[2,115]),{77:[1,632]},o($VB2,[2,119]),{77:[1,634],101:[1,633]},o($VB2,[2,125]),o($VN2,[2,127]),{112:[1,635]},o($VR1,[2,211]),o($VR1,[2,809]),o($Vs,[2,671],{77:[1,636]}),o($Vs,[2,673],{77:[1,637]}),o($VG2,[2,640],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($VO2,$VP2,{480:638,490:639,213:$VQ2,263:$VR2,482:$VS2}),o($VO2,$VP2,{490:639,480:643,213:$VQ2,263:$VR2,482:$VS2}),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:595,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,374:644,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VL2,[2,663]),o($VL2,[2,667]),o($VL2,[2,668]),o($VB2,[2,543]),o($VB2,[2,545]),{263:[1,645]},{73:[1,646],77:[1,647]},o($VR1,[2,169]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:648,132:[1,649],142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{71:[2,470]},{43:64,79:650,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($VB2,[2,114]),{80:651,89:517,90:518,91:519,92:520,93:521,94:522,95:523,99:$Vu2,104:$Vv2,105:$Vw2,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},o($VB2,[2,124]),{43:64,105:$Vh,108:652,111:611,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{80:653,89:517,90:518,91:519,92:520,93:521,94:522,95:523,99:$Vu2,104:$Vv2,105:$Vw2,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},{193:$VH,263:$VX,264:$VY,377:654,406:135,407:136},{188:[1,655]},{73:$VT2,200:$VU2,481:656},{245:[1,658]},{249:[1,659]},o($VV2,[2,1066]),o($VV2,[2,1067]),{73:$VT2,200:$VU2,481:660},o($VL2,[2,657]),{73:[1,661]},o($VU1,[2,166]),{117:$VM2,128:662},{69:$Vc1,87:$Vd1,100:[1,664],101:$Vf1,131:663,134:[1,665],191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},{100:$VW2,131:666,134:$VX2},o($VR1,[2,474]),{101:[1,669]},o($VN2,[2,128]),o($VN2,$VS1,{49:362,46:670,50:$VT1}),o($Vs,[2,672]),o($Vs,[2,674]),{73:[2,1037]},{213:[1,671],263:$VR2,482:$VS2,490:672},o($VO2,[2,1056]),o($VO2,[2,1057]),{73:[2,1038]},o($VB2,[2,546]),o($VR1,[2,170]),{132:[1,673]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:306,132:$VY2,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:308,132:$VZ2,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:674,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VP1,$VY2),o($VP1,$VZ2),o($VB2,[2,118]),o($VN2,[2,134]),{249:[1,675]},{224:[1,676]},o($VR1,[2,178],{131:677,100:$VW2,134:$VX2}),o($VR1,[2,177],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),{73:[2,1061]},{73:[2,1062]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:678,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VR1,[2,176],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1})], -defaultActions: {41:[2,273],60:[2,1132],61:[2,1134],97:[2,511],120:[2,993],121:[2,994],122:[2,995],123:[2,996],151:[2,1096],152:[2,1097],153:[2,1098],154:[2,1099],155:[2,1100],156:[2,1101],157:[2,1102],158:[2,1103],176:[2,21],178:[2,30],198:[2,1146],341:[2,1008],417:[2,953],418:[2,955],419:[2,957],420:[2,959],421:[2,961],422:[2,963],423:[2,965],424:[2,967],432:[2,1009],554:[2,1031],555:[2,1036],629:[2,470],656:[2,1037],660:[2,1038],675:[2,1061],676:[2,1062]}, -parseError: function parseError (str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse (input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - - -SqlParseSupport.initSyntaxParser(parser);/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex () { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState () { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState (condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true,"flex":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0: /* skip whitespace */ -break; -case 1: /* skip comments */ -break; -case 2: /* skip comments */ -break; -case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 14; -break; -case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 271; -break; -case 5: this.popState(); return 382; -break; -case 6: return 198; -break; -case 7: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 20; -break; -case 8: return 200; -break; -case 9: return 28; -break; -case 10: return 202; -break; -case 11: this.begin('between'); return 205; -break; -case 12: return 206; -break; -case 13: return 207; -break; -case 14: return 118; -break; -case 15: return 283; -break; -case 16: return 208; -break; -case 17: return 210; -break; -case 18: return 50; -break; -case 19: parser.determineCase(yy_.yytext); return 40; -break; -case 20: return 212; -break; -case 21: return 213; -break; -case 22: return 214; -break; -case 23: return 215; -break; -case 24: return 216; -break; -case 25: return 217; -break; -case 26: return 201; -break; -case 27: return 218; -break; -case 28: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 152; -break; -case 29: return 219; -break; -case 30: return 220; -break; -case 31: parser.yy.correlatedSubQuery = true; return 221; -break; -case 32: return 222; -break; -case 33: return 223; -break; -case 34: return 224; -break; -case 35: parser.determineCase(yy_.yytext); return 225; -break; -case 36: return 226; -break; -case 37: return 227; -break; -case 38: return 228; -break; -case 39: return 230; -break; -case 40: return 231; -break; -case 41: return 232; -break; -case 42: return 167; -break; -case 43: return 233; -break; -case 44: return 168; -break; -case 45: return 234; -break; -case 46: return 235; -break; -case 47: return 236; -break; -case 48: return 69; -break; -case 49: return 237; -break; -case 50: return 87; -break; -case 51: return 88; -break; -case 52: return 240; -break; -case 53: return 186; -break; -case 54: return 241; -break; -case 55: return 242; -break; -case 56: return 243; -break; -case 57: return 117; -break; -case 58: return 245; -break; -case 59: return 157; -break; -case 60: return 121; -break; -case 61: return 246; -break; -case 62: return 247; -break; -case 63: return 248; -break; -case 64: return 249; -break; -case 65: return 142; -break; -case 66: return 250; -break; -case 67: return 251; -break; -case 68: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 323; -break; -case 69: return 252; -break; -case 70: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 13; -break; -case 71: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 'SHOW'; -break; -case 72: return 253; -break; -case 73: return 256; -break; -case 74: return 24; -break; -case 75: return 258; -break; -case 76: return 259; -break; -case 77: return 260; -break; -case 78: return 'TO'; -break; -case 79: return 261; -break; -case 80: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 158; -break; -case 81: return 482; -break; -case 82: return 262; -break; -case 83: parser.determineCase(yy_.yytext); return 495; -break; -case 84: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 509; -break; -case 85: return 132; -break; -case 86: return 267; -break; -case 87: return 32; -break; -case 88: return 269; -break; -case 89: return 270; -break; -case 90: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 333; -break; -case 91: return 244; -break; -case 92: return 142; -break; -case 93: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 203; -break; -case 94: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 209; -break; -case 95: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 211; -break; -case 96: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 238; -break; -case 97: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; -break; -case 98: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 254; -break; -case 99: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 255; -break; -case 100: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 257; -break; -case 101: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 265; -break; -case 102: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 266; -break; -case 103: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 268; -break; -case 104: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; -break; -case 105: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; -break; -case 106: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; -break; -case 107: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; -break; -case 108: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; -break; -case 109: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; -break; -case 110: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; -break; -case 111: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; -break; -case 112: return 263; -break; -case 113: return 263; -break; -case 114: return 264; -break; -case 115: return 187; -break; -case 116: parser.yy.cursorFound = true; return 14; -break; -case 117: parser.yy.cursorFound = true; return 271; -break; -case 118: return 229; -break; -case 119: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 487; -break; -case 120: this.popState(); return 488; -break; -case 121: return 177; -break; -case 122: return 200; -break; -case 123: return 241; -break; -case 124: return 194; -break; -case 125: return 100; -break; -case 126: return 101; -break; -case 127: return 134; -break; -case 128: return 134; -break; -case 129: return 134; -break; -case 130: return 134; -break; -case 131: return 134; -break; -case 132: return 192; -break; -case 133: return 191; -break; -case 134: return 201; -break; -case 135: return 201; -break; -case 136: return 201; -break; -case 137: return 201; -break; -case 138: return 201; -break; -case 139: return 201; -break; -case 140: return 77; -break; -case 141: return 193; -break; -case 142: return 112; -break; -case 143: return 181; -break; -case 144: return 197; -break; -case 145: return 190; -break; -case 146: return 71; -break; -case 147: return 73; -break; -case 148: return 195; -break; -case 149: return 196; -break; -case 150: return 188; -break; -case 151: this.begin('backtickedValue'); return 204; -break; -case 152: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { - return 275; - } - return 55; - -break; -case 153: this.popState(); return 204; -break; -case 154: this.begin('singleQuotedValue'); return 53; -break; -case 155: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { - return 275; - } - return 55; - -break; -case 156: this.popState(); return 53; -break; -case 157: this.begin('doubleQuotedValue'); return 54; -break; -case 158: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { - return 275; - } - return 55; - -break; -case 159: this.popState(); return 54; -break; -case 160: return 177; -break; -case 161: /* To prevent console logging of unknown chars */ -break; -case 162: -break; -case 163: -break; -case 164: -break; -case 165: -break; -case 166: -break; -case 167:console.log(yy_.yytext); -break; -} -}, -rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:AND)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CASCADE)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:COMMENT)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DECIMAL)/i,/^(?:DESC)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:GROUP)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:ON)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:REGEXP)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROW)/i,/^(?:ROLE)/i,/^(?:ROWS)/i,/^(?:SCHEMA)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SMALLINT)/i,/^(?:STRING)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UNION)/i,/^(?:UPDATE)/i,/^(?:USE)/i,/^(?:VALUES)/i,/^(?:VARCHAR)/i,/^(?:VIEW)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], -conditions: {"hdfs":{"rules":[116,117,118,119,120,121,163],"inclusive":false},"doubleQuotedValue":{"rules":[158,159,166],"inclusive":false},"singleQuotedValue":{"rules":[155,156,165],"inclusive":false},"backtickedValue":{"rules":[152,153,164],"inclusive":false},"between":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,157,160,161,162,167],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,157,160,161,167],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); -export default genericSyntaxParser; diff --git a/src/core/parse/generic/sqlParseSupport.js b/src/core/parse/generic/sqlParseSupport.js deleted file mode 100644 index 7fba8c6..0000000 --- a/src/core/parse/generic/sqlParseSupport.js +++ /dev/null @@ -1,2221 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import { SqlFunctions } from '../sqlFunctions'; -import stringDistance from '../stringDistance'; - -const identifierEquals = (a, b) => - a && - b && - a - .replace(/^\s*`/, '') - .replace(/`\s*$/, '') - .toLowerCase() === - b - .replace(/^\s*`/, '') - .replace(/`\s*$/, '') - .toLowerCase(); - -// endsWith polyfill from hue_utils.js, needed as workers live in their own js environment -if (!String.prototype.endsWith) { - String.prototype.endsWith = function(searchString, position) { - const subjectString = this.toString(); - if ( - typeof position !== 'number' || - !isFinite(position) || - Math.floor(position) !== position || - position > subjectString.length - ) { - position = subjectString.length; - } - position -= searchString.length; - const lastIndex = subjectString.lastIndexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; -} - -const equalIgnoreCase = (a, b) => a && b && a.toLowerCase() === b.toLowerCase(); - -const SIMPLE_TABLE_REF_SUGGESTIONS = [ - 'suggestJoinConditions', - 'suggestAggregateFunctions', - 'suggestFilters', - 'suggestGroupBys', - 'suggestOrderBys' -]; - -const initSqlParser = function(parser) { - parser.prepareNewStatement = function() { - linkTablePrimaries(); - parser.commitLocations(); - - delete parser.yy.latestCommonTableExpressions; - delete parser.yy.correlatedSubQuery; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - prioritizeSuggestions(); - }; - - parser.yy.parseError = function(message, error) { - parser.yy.errors.push(error); - return message; - }; - - parser.addCommonTableExpressions = function(identifiers) { - parser.yy.result.commonTableExpressions = identifiers; - parser.yy.latestCommonTableExpressions = identifiers; - }; - - parser.isInSubquery = function() { - return !!parser.yy.primariesStack.length; - }; - - parser.pushQueryState = function() { - parser.yy.resultStack.push(parser.yy.result); - parser.yy.locationsStack.push(parser.yy.locations); - parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); - parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); - parser.yy.subQueriesStack.push(parser.yy.subQueries); - - parser.yy.result = {}; - parser.yy.locations = []; - parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries - - if (parser.yy.correlatedSubQuery) { - parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); - parser.yy.subQueries = parser.yy.subQueries.concat(); - } else { - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - } - }; - - parser.popQueryState = function(subQuery) { - linkTablePrimaries(); - parser.commitLocations(); - - if (Object.keys(parser.yy.result).length === 0) { - parser.yy.result = parser.yy.resultStack.pop(); - } else { - parser.yy.resultStack.pop(); - } - const oldSubQueries = parser.yy.subQueries; - parser.yy.subQueries = parser.yy.subQueriesStack.pop(); - if (subQuery) { - if (oldSubQueries.length > 0) { - subQuery.subQueries = oldSubQueries; - } - parser.yy.subQueries.push(subQuery); - } - - parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); - parser.yy.locations = parser.yy.locationsStack.pop(); - parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); - }; - - parser.suggestSelectListAliases = function() { - if ( - parser.yy.selectListAliases && - parser.yy.selectListAliases.length > 0 && - parser.yy.result.suggestColumns && - (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || - parser.yy.result.suggestColumns.identifierChain.length === 0) - ) { - parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; - } - }; - - parser.mergeSuggestKeywords = function() { - let result = []; - Array.prototype.slice.call(arguments).forEach(suggestion => { - if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { - result = result.concat(suggestion.suggestKeywords); - } - }); - if (result.length > 0) { - return { suggestKeywords: result }; - } - return {}; - }; - - parser.suggestValueExpressionKeywords = function(valueExpression, extras) { - const expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); - parser.suggestKeywords(expressionKeywords.suggestKeywords); - if (expressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); - } - if (valueExpression.lastType) { - parser.addColRefIfExists(valueExpression.lastType); - } else { - parser.addColRefIfExists(valueExpression); - } - }; - - parser.getSelectListKeywords = function(excludeAsterisk) { - const keywords = [{ value: 'CASE', weight: 450 }, 'FALSE', 'TRUE', 'NULL']; - if (!excludeAsterisk) { - keywords.push({ value: '*', weight: 10000 }); - } - return keywords; - }; - - parser.getValueExpressionKeywords = function(valueExpression, extras) { - const types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; - // We could have valueExpression.columnReference to suggest based on column type - let keywords = [ - '<', - '<=', - '<=>', - '<>', - '=', - '>', - '>=', - 'BETWEEN', - 'IN', - 'IS NOT NULL', - 'IS NULL', - 'IS NOT TRUE', - 'IS TRUE', - 'IS NOT FALSE', - 'IS FALSE', - 'NOT BETWEEN', - 'NOT IN' - ]; - if (extras) { - keywords = keywords.concat(extras); - } - if (valueExpression.suggestKeywords) { - keywords = keywords.concat(valueExpression.suggestKeywords); - } - if (types.length === 1 && types[0] === 'COLREF') { - return { - suggestKeywords: keywords, - suggestColRefKeywords: { - BOOLEAN: ['AND', 'OR'], - NUMBER: ['+', '-', '*', '/', '%', 'DIV'], - STRING: ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] - } - }; - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types) - ) { - keywords = keywords.concat(['AND', 'OR']); - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types) - ) { - keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types) - ) { - keywords = keywords.concat(['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); - } - return { suggestKeywords: keywords }; - }; - - parser.getTypeKeywords = function() { - return [ - 'BIGINT', - 'BOOLEAN', - 'CHAR', - 'DECIMAL', - 'DOUBLE', - 'FLOAT', - 'INT', - 'SMALLINT', - 'TIMESTAMP', - 'STRING', - 'TINYINT', - 'VARCHAR' - ]; - }; - - parser.getColumnDataTypeKeywords = function() { - return parser.getTypeKeywords(); - }; - - parser.addColRefIfExists = function(valueExpression) { - if (valueExpression.columnReference) { - parser.yy.result.colRef = { identifierChain: valueExpression.columnReference }; - } - }; - - parser.selectListNoTableSuggest = function(selectListEdit, hasDistinctOrAll) { - if (selectListEdit.cursorAtStart) { - let keywords = parser.getSelectListKeywords(); - if (!hasDistinctOrAll) { - keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForKeywords(selectListEdit); - } - if (selectListEdit.suggestFunctions) { - parser.suggestFunctions(); - } - if (selectListEdit.suggestColumns) { - parser.suggestColumns(); - } - if ( - selectListEdit.suggestAggregateFunctions && - (!hasDistinctOrAll || hasDistinctOrAll === 'ALL') - ) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - }; - - parser.suggestJoinConditions = function(details) { - parser.yy.result.suggestJoinConditions = details || {}; - if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { - parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); - } - }; - - parser.suggestJoins = function(details) { - parser.yy.result.suggestJoins = details || {}; - }; - - parser.valueExpressionSuggest = function(oppositeValueExpression, operator) { - if (oppositeValueExpression && oppositeValueExpression.columnReference) { - parser.suggestValues(); - parser.yy.result.colRef = { identifierChain: oppositeValueExpression.columnReference }; - } - parser.suggestColumns(); - parser.suggestFunctions(); - let keywords = [ - { value: 'CASE', weight: 450 }, - { value: 'FALSE', weight: 450 }, - { value: 'NULL', weight: 450 }, - { value: 'TRUE', weight: 450 } - ]; - if (typeof oppositeValueExpression === 'undefined' || typeof operator === 'undefined') { - keywords = keywords.concat(['EXISTS', 'NOT']); - } - if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { - parser.applyTypeToSuggestions(['NUMBER']); - } - parser.suggestKeywords(keywords); - }; - - parser.applyTypeToSuggestions = function(types) { - if (types[0] === 'BOOLEAN') { - return; - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.yy.result.suggestFunctions.types = types; - } - if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { - parser.yy.result.suggestColumns.types = types; - } - }; - - parser.findCaseType = function(whenThenList) { - const types = {}; - whenThenList.caseTypes.forEach(valueExpression => { - valueExpression.types.forEach(type => { - types[type] = true; - }); - }); - if (Object.keys(types).length === 1) { - return { types: [Object.keys(types)[0]] }; - } - return { types: ['T'] }; - }; - - parser.findReturnTypes = function(functionName) { - return typeof SqlFunctions === 'undefined' - ? ['T'] - : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); - }; - - parser.applyArgumentTypesToSuggestions = function(functionName, position) { - const foundArguments = - typeof SqlFunctions === 'undefined' - ? ['T'] - : SqlFunctions.getArgumentTypes( - parser.yy.activeDialect, - functionName.toLowerCase(), - position - ); - if (foundArguments.length === 0 && parser.yy.result.suggestColumns) { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeyValues; - delete parser.yy.result.suggestValues; - delete parser.yy.result.suggestFunctions; - delete parser.yy.result.suggestIdentifiers; - delete parser.yy.result.suggestKeywords; - } else { - parser.applyTypeToSuggestions(foundArguments); - } - }; - - parser.commitLocations = function() { - if (parser.yy.locations.length === 0) { - return; - } - - const tablePrimaries = parser.yy.latestTablePrimaries; - - let i = parser.yy.locations.length; - - while (i--) { - const location = parser.yy.locations[i]; - if (location.type === 'variable' && location.colRef) { - parser.expandIdentifierChain({ - wrapper: location.colRef, - tablePrimaries: tablePrimaries, - isColumnWrapper: true - }); - delete location.colRef.linked; - } - - if (location.type === 'unknown') { - if ( - typeof location.identifierChain !== 'undefined' && - location.identifierChain.length > 0 && - location.identifierChain.length <= 2 && - tablePrimaries - ) { - let found = tablePrimaries.filter(primary => { - return ( - equalIgnoreCase(primary.alias, location.identifierChain[0].name) || - (primary.identifierChain && - equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)) - ); - }); - if (!found.length && location.firstInChain) { - found = tablePrimaries.filter(primary => { - return ( - !primary.alias && - primary.identifierChain && - equalIgnoreCase( - primary.identifierChain[primary.identifierChain.length - 1].name, - location.identifierChain[0].name - ) - ); - }); - } - - if (found.length) { - if ( - found[0].identifierChain.length > 1 && - location.identifierChain.length === 1 && - equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name) - ) { - location.type = 'database'; - } else if ( - found[0].alias && - equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && - location.identifierChain.length > 1 - ) { - location.type = 'column'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } else if ( - !found[0].alias && - found[0].identifierChain && - equalIgnoreCase( - location.identifierChain[0].name, - found[0].identifierChain[found[0].identifierChain.length - 1].name - ) && - location.identifierChain.length > 1 - ) { - location.type = 'column'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } else { - location.type = 'table'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } - } else if (parser.yy.subQueries) { - found = parser.yy.subQueries.filter(subQuery => { - return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'subQuery'; - location.identifierChain = [{ subQuery: found[0].alias }]; - } - } - } - } - - if (location.type === 'asterisk' && !location.linked) { - if (tablePrimaries && tablePrimaries.length > 0) { - location.tables = []; - location.linked = false; - if (!location.identifierChain) { - location.identifierChain = [{ asterisk: true }]; - } - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: false - }); - if (location.tables.length === 0) { - parser.yy.locations.splice(i, 1); - } - } else { - parser.yy.locations.splice(i, 1); - } - } - - if ( - location.type === 'table' && - typeof location.identifierChain !== 'undefined' && - location.identifierChain.length === 1 && - location.identifierChain[0].name - ) { - // Could be a cte reference - parser.yy.locations.some(otherLocation => { - if ( - otherLocation.type === 'alias' && - otherLocation.source === 'cte' && - identifierEquals(otherLocation.alias, location.identifierChain[0].name) - ) { - // TODO: Possibly add the other location if we want to show the link in the future. - // i.e. highlight select definition on hover over alias, also for subquery references. - location.type = 'alias'; - location.target = 'cte'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - return true; - } - }); - } - - if ( - location.type === 'table' && - (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0) - ) { - parser.yy.locations.splice(i, 1); - } - - if (location.type === 'unknown') { - location.type = 'column'; - } - - // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" - if (location.type === 'column') { - for (let j = i - 1; j >= 0; j--) { - const otherLocation = parser.yy.locations[j]; - if ( - otherLocation.type === 'alias' && - otherLocation.source === 'column' && - location.identifierChain && - location.identifierChain.length === 1 && - location.identifierChain[0].name && - otherLocation.alias && - location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase() - ) { - location.type = 'alias'; - location.source = 'column'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - location.parentLocation = otherLocation.parentLocation; - break; - } - } - } - - if (location.type === 'column') { - const initialIdentifierChain = location.identifierChain - ? location.identifierChain.concat() - : undefined; - - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true, - isColumnWrapper: true, - isColumnLocation: true - }); - - if (typeof location.identifierChain === 'undefined') { - parser.yy.locations.splice(i, 1); - } else if ( - location.identifierChain.length === 0 && - initialIdentifierChain && - initialIdentifierChain.length === 1 - ) { - // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; - location.identifierChain = initialIdentifierChain; - } - } - if (location.type === 'column' && location.identifierChain) { - if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { - location.type = 'complex'; - } - } - delete location.firstInChain; - if (location.type !== 'column' && location.type !== 'complex') { - delete location.qualified; - } else if (typeof location.qualified === 'undefined') { - location.qualified = false; - } - } - - if (parser.yy.locations.length > 0) { - parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); - parser.yy.locations = []; - } - }; - - const prioritizeSuggestions = function() { - parser.yy.result.lowerCase = parser.yy.lowerCase || false; - - const cteIndex = {}; - - if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - parser.yy.latestCommonTableExpressions.forEach(cte => { - cteIndex[cte.alias.toLowerCase()] = cte; - }); - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if ( - suggestionType !== 'suggestAggregateFunctions' && - typeof parser.yy.result[suggestionType] !== 'undefined' && - parser.yy.result[suggestionType].tables.length === 0 - ) { - delete parser.yy.result[suggestionType]; - } else if ( - typeof parser.yy.result[suggestionType] !== 'undefined' && - typeof parser.yy.result[suggestionType].tables !== 'undefined' - ) { - for (let i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { - const table = parser.yy.result[suggestionType].tables[i]; - if ( - table.identifierChain.length === 1 && - typeof table.identifierChain[0].name !== 'undefined' && - typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined' - ) { - parser.yy.result[suggestionType].tables.splice(i, 1); - } - } - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - if ( - !parser.yy.result.colRef.linked || - typeof parser.yy.result.colRef.identifierChain === 'undefined' || - parser.yy.result.colRef.identifierChain.length === 0 - ) { - delete parser.yy.result.colRef; - if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { - Object.keys(parser.yy.result.suggestColRefKeywords).forEach(type => { - parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat( - parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1) - ); - }); - delete parser.yy.result.suggestColRefKeywords; - } - if ( - parser.yy.result.suggestColumns && - parser.yy.result.suggestColumns.types.length === 1 && - parser.yy.result.suggestColumns.types[0] === 'COLREF' - ) { - parser.yy.result.suggestColumns.types = ['T']; - } - delete parser.yy.result.suggestValues; - } - } - - if (typeof parser.yy.result.colRef !== 'undefined') { - if ( - !parser.yy.result.suggestValues && - !parser.yy.result.suggestColRefKeywords && - (!parser.yy.result.suggestColumns || parser.yy.result.suggestColumns.types[0] !== 'COLREF') - ) { - delete parser.yy.result.colRef; - } - } - if ( - typeof parser.yy.result.suggestIdentifiers !== 'undefined' && - parser.yy.result.suggestIdentifiers.length > 0 - ) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - const suggestColumns = parser.yy.result.suggestColumns; - if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.subQueries; - } else { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - - suggestColumns.tables.forEach(table => { - if ( - typeof table.identifierChain !== 'undefined' && - table.identifierChain.length === 1 && - typeof table.identifierChain[0].name !== 'undefined' - ) { - const cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; - if (typeof cte !== 'undefined') { - delete table.identifierChain[0].name; - table.identifierChain[0].cte = cte.alias; - } - } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { - table.identifierChain = [{ subQuery: table.subQuery }]; - delete table.subQuery; - } - }); - - if ( - typeof suggestColumns.identifierChain !== 'undefined' && - suggestColumns.identifierChain.length === 0 - ) { - delete suggestColumns.identifierChain; - } - } - } else { - delete parser.yy.result.subQueries; - } - - if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { - if ( - typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || - parser.yy.result.suggestJoinConditions.tables.length === 0 - ) { - delete parser.yy.result.suggestJoinConditions; - } - } - - if ( - typeof parser.yy.result.suggestTables !== 'undefined' && - typeof parser.yy.result.commonTableExpressions !== 'undefined' - ) { - const ctes = []; - parser.yy.result.commonTableExpressions.forEach(cte => { - const suggestion = { name: cte.alias }; - if (parser.yy.result.suggestTables.prependFrom) { - suggestion.prependFrom = true; - } - if (parser.yy.result.suggestTables.prependQuestionMark) { - suggestion.prependQuestionMark = true; - } - ctes.push(suggestion); - }); - if (ctes.length > 0) { - parser.yy.result.suggestCommonTableExpressions = ctes; - } - } - }; - - parser.identifyPartials = function(beforeCursor, afterCursor) { - const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return { - left: beforeMatch ? beforeMatch[0].length : 0, - right: afterMatch ? afterMatch[0].length : 0 - }; - }; - - const addCleanTablePrimary = function(tables, tablePrimary) { - if (tablePrimary.alias) { - tables.push({ alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain }); - } else { - tables.push({ identifierChain: tablePrimary.identifierChain }); - } - }; - - parser.expandIdentifierChain = function(options) { - const wrapper = options.wrapper; - const anyOwner = options.anyOwner; - const isColumnWrapper = options.isColumnWrapper; - const isColumnLocation = options.isColumnLocation; - let tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; - - if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { - return; - } - let identifierChain = wrapper.identifierChain.concat(); - - if (tablePrimaries.length === 0) { - delete wrapper.identifierChain; - return; - } - - if (!anyOwner) { - tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); - } - - if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { - const tables = []; - tablePrimaries.forEach(tablePrimary => { - if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { - if ( - identifierChain.length === 2 && - equalIgnoreCase(tablePrimary.alias, identifierChain[0].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } else if ( - identifierChain.length === 2 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } else if ( - identifierChain.length === 3 && - tablePrimary.identifierChain.length > 1 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } - } else if (tablePrimary.subQueryAlias) { - tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); - } else { - addCleanTablePrimary(tables, tablePrimary); - } - }); - // Possible Joins - if (tables.length > 0) { - wrapper.tables = tables; - delete wrapper.identifierChain; - return; - } - } - - // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] - // Reduce the tablePrimaries to the one that matches the first identifier if found - let foundPrimary; - let doubleMatch = false; - let aliasMatch = false; - if (identifierChain.length > 0) { - for (let i = 0; i < tablePrimaries.length; i++) { - if (tablePrimaries[i].subQueryAlias) { - if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - } - } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - aliasMatch = true; - break; - } else if ( - tablePrimaries[i].identifierChain.length > 1 && - identifierChain.length > 1 && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name) - ) { - foundPrimary = tablePrimaries[i]; - doubleMatch = true; - break; - } else if ( - !foundPrimary && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - identifierChain.length > (isColumnLocation ? 1 : 0) - ) { - foundPrimary = tablePrimaries[i]; - // No break as first two can still match. - } else if ( - !foundPrimary && - tablePrimaries[i].identifierChain.length > 1 && - !tablePrimaries[i].alias && - equalIgnoreCase( - tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, - identifierChain[0].name - ) - ) { - // This is for the case SELECT baa. FROM bla.baa, blo.boo; - foundPrimary = tablePrimaries[i]; - break; - } - } - } - - if (foundPrimary) { - identifierChain.shift(); - if (doubleMatch) { - identifierChain.shift(); - } - } else if (tablePrimaries.length === 1 && !isColumnWrapper) { - foundPrimary = tablePrimaries[0]; - } - - if (foundPrimary) { - if (isColumnWrapper) { - wrapper.identifierChain = identifierChain; - if (foundPrimary.subQueryAlias) { - wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; - } else if (foundPrimary.alias) { - if (!isColumnLocation && isColumnWrapper && aliasMatch) { - // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) - // the case is: SELECT cu.| FROM customers cu; - // This prevents alias from being added automatically in sqlAutocompleter.js - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } else { - wrapper.tables = [ - { identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias } - ]; - } - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } - } else { - if (foundPrimary.subQueryAlias) { - identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); - } else { - identifierChain = foundPrimary.identifierChain.concat(identifierChain); - } - if (wrapper.tables) { - wrapper.tables.push({ identifierChain: identifierChain }); - delete wrapper.identifierChain; - } else { - wrapper.identifierChain = identifierChain; - } - } - } else { - if (isColumnWrapper) { - wrapper.tables = []; - } - tablePrimaries.forEach(tablePrimary => { - const targetTable = tablePrimary.subQueryAlias - ? { subQuery: tablePrimary.subQueryAlias } - : { identifierChain: tablePrimary.identifierChain }; - if (tablePrimary.alias) { - targetTable.alias = tablePrimary.alias; - } - if (wrapper.tables) { - wrapper.tables.push(targetTable); - } - }); - } - delete wrapper.owner; - wrapper.linked = true; - }; - - const filterTablePrimariesForOwner = function(tablePrimaries, owner) { - const result = []; - tablePrimaries.forEach(primary => { - if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { - result.push(primary); - } else if (owner === primary.owner) { - result.push(primary); - } - }); - return result; - }; - - const convertTablePrimariesToSuggestions = function(tablePrimaries) { - const tables = []; - const identifiers = []; - tablePrimaries.forEach(tablePrimary => { - if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - const table = { identifierChain: tablePrimary.identifierChain }; - if (tablePrimary.alias) { - table.alias = tablePrimary.alias; - identifiers.push({ name: table.alias + '.', type: 'alias' }); - } else { - const lastIdentifier = - tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; - if (typeof lastIdentifier.name !== 'undefined') { - identifiers.push({ name: lastIdentifier.name + '.', type: 'table' }); - } else if (typeof lastIdentifier.subQuery !== 'undefined') { - identifiers.push({ name: lastIdentifier.subQuery + '.', type: 'sub-query' }); - } - } - tables.push(table); - } else if (tablePrimary.subQueryAlias) { - identifiers.push({ name: tablePrimary.subQueryAlias + '.', type: 'sub-query' }); - tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); - } - }); - if (identifiers.length > 0) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = identifiers; - } else { - parser.yy.result.suggestIdentifiers = identifiers.concat( - parser.yy.result.suggestIdentifiers - ); - } - } - parser.yy.result.suggestColumns.tables = tables; - if ( - parser.yy.result.suggestColumns.identifierChain && - parser.yy.result.suggestColumns.identifierChain.length === 0 - ) { - delete parser.yy.result.suggestColumns.identifierChain; - } - parser.yy.result.suggestColumns.linked = true; - }; - - const linkTablePrimaries = function() { - if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { - return; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if ( - typeof parser.yy.result[suggestionType] !== 'undefined' && - parser.yy.result[suggestionType].tablePrimaries && - !parser.yy.result[suggestionType].linked - ) { - parser.yy.result[suggestionType].tables = []; - parser.yy.result[suggestionType].tablePrimaries.forEach(tablePrimary => { - if (!tablePrimary.subQueryAlias) { - parser.yy.result[suggestionType].tables.push( - tablePrimary.alias - ? { - identifierChain: tablePrimary.identifierChain.concat(), - alias: tablePrimary.alias - } - : { identifierChain: tablePrimary.identifierChain.concat() } - ); - } - }); - delete parser.yy.result[suggestionType].tablePrimaries; - parser.yy.result[suggestionType].linked = true; - } - }); - - if ( - typeof parser.yy.result.suggestColumns !== 'undefined' && - !parser.yy.result.suggestColumns.linked - ) { - const tablePrimaries = filterTablePrimariesForOwner( - parser.yy.latestTablePrimaries, - parser.yy.result.suggestColumns.owner - ); - if (!parser.yy.result.suggestColumns.tables) { - parser.yy.result.suggestColumns.tables = []; - } - if (parser.yy.subQueries.length > 0) { - parser.yy.result.subQueries = parser.yy.subQueries; - } - if ( - typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || - parser.yy.result.suggestColumns.identifierChain.length === 0 - ) { - if (tablePrimaries.length > 1) { - convertTablePrimariesToSuggestions(tablePrimaries); - } else { - if ( - tablePrimaries.length === 1 && - (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias) - ) { - convertTablePrimariesToSuggestions(tablePrimaries); - } - parser.expandIdentifierChain({ - wrapper: parser.yy.result.suggestColumns, - anyOwner: false, - isColumnWrapper: true - }); - } - } else { - parser.expandIdentifierChain({ - wrapper: parser.yy.result.suggestColumns, - anyOwner: false, - isColumnWrapper: true - }); - } - } - - if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); - - const primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); - if ( - primaries.length === 0 || - (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1) - ) { - parser.yy.result.colRef.identifierChain = []; - } - } - if ( - typeof parser.yy.result.suggestKeyValues !== 'undefined' && - !parser.yy.result.suggestKeyValues.linked - ) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); - } - }; - - parser.getSubQuery = function(cols) { - const columns = []; - cols.selectList.forEach(col => { - const result = {}; - if (col.alias) { - result.alias = col.alias; - } - if (col.valueExpression && col.valueExpression.columnReference) { - result.identifierChain = col.valueExpression.columnReference; - } else if (col.asterisk) { - result.identifierChain = [{ asterisk: true }]; - } - if ( - col.valueExpression && - col.valueExpression.types && - col.valueExpression.types.length === 1 - ) { - result.type = col.valueExpression.types[0]; - } - - columns.push(result); - }); - - return { - columns: columns - }; - }; - - parser.addTablePrimary = function(ref) { - if (typeof parser.yy.latestTablePrimaries === 'undefined') { - parser.yy.latestTablePrimaries = []; - } - parser.yy.latestTablePrimaries.push(ref); - }; - - parser.suggestFileFormats = function() { - parser.suggestKeywords([ - 'AVRO', - 'KUDU', - 'ORC', - 'PARQUET', - 'RCFILE', - 'SEQUENCEFILE', - 'TEXTFILE' - ]); - }; - - parser.getKeywordsForOptionalsLR = function(optionals, keywords, override) { - let result = []; - - for (let i = 0; i < optionals.length; i++) { - if (!optionals[i] && (typeof override === 'undefined' || override[i])) { - if (keywords[i] instanceof Array) { - result = result.concat(keywords[i]); - } else { - result.push(keywords[i]); - } - } else if (optionals[i]) { - break; - } - } - return result; - }; - - parser.suggestDdlAndDmlKeywords = function(extraKeywords) { - let keywords = [ - 'ALTER', - 'CREATE', - 'DESCRIBE', - 'DROP', - 'GRANT', - 'INSERT', - 'REVOKE', - 'SELECT', - 'SET', - 'SHOW', - 'TRUNCATE', - 'UPDATE', - 'USE', - 'WITH' - ]; - - if (extraKeywords) { - keywords = keywords.concat(extraKeywords); - } - - parser.suggestKeywords(keywords); - }; - - parser.checkForSelectListKeywords = function(selectList) { - if (selectList.length === 0) { - return; - } - const last = selectList[selectList.length - 1]; - if (!last || !last.valueExpression) { - return; - } - const valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); - let keywords = []; - if (last.suggestKeywords) { - keywords = keywords.concat(last.suggestKeywords); - } - if (valueExpressionKeywords.suggestKeywords) { - keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); - } - if (valueExpressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); - parser.addColRefIfExists(last.valueExpression); - } - if (!last.alias) { - keywords.push('AS'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - }; - - parser.checkForKeywords = function(expression) { - if (expression) { - if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { - parser.suggestKeywords(expression.suggestKeywords); - } - if (expression.suggestColRefKeywords) { - parser.suggestColRefKeywords(expression.suggestColRefKeywords); - parser.addColRefIfExists(expression); - } - } - }; - - parser.createWeightedKeywords = function(keywords, weight) { - const result = []; - keywords.forEach(keyword => { - if (typeof keyword.weight !== 'undefined') { - keyword.weight = weight + keyword.weight / 10; - result.push(keyword); - } else { - result.push({ value: keyword, weight: weight }); - } - }); - return result; - }; - - parser.suggestKeywords = function(keywords) { - const weightedKeywords = []; - if (keywords.length === 0) { - return; - } - keywords.forEach(keyword => { - if (typeof keyword.weight !== 'undefined') { - weightedKeywords.push(keyword); - } else { - weightedKeywords.push({ value: keyword, weight: -1 }); - } - }); - weightedKeywords.sort((a, b) => { - if (a.weight !== b.weight) { - return b.weight - a.weight; - } - return a.value.localeCompare(b.value); - }); - parser.yy.result.suggestKeywords = weightedKeywords; - }; - - parser.suggestColRefKeywords = function(colRefKeywords) { - parser.yy.result.suggestColRefKeywords = colRefKeywords; - }; - - parser.suggestTablesOrColumns = function(identifier) { - if (typeof parser.yy.latestTablePrimaries == 'undefined') { - parser.suggestTables({ identifierChain: [{ name: identifier }] }); - return; - } - const tableRef = parser.yy.latestTablePrimaries.filter(tablePrimary => { - return equalIgnoreCase(tablePrimary.alias, identifier); - }); - if (tableRef.length > 0) { - parser.suggestColumns({ identifierChain: [{ name: identifier }] }); - } else { - parser.suggestTables({ identifierChain: [{ name: identifier }] }); - } - }; - - parser.suggestFunctions = function(details) { - parser.yy.result.suggestFunctions = details || {}; - }; - - parser.suggestAggregateFunctions = function() { - const primaries = []; - const aliases = {}; - parser.yy.latestTablePrimaries.forEach(primary => { - if (typeof primary.alias !== 'undefined') { - aliases[primary.alias] = true; - } - // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) - if ( - typeof primary.identifierChain !== 'undefined' && - !aliases[primary.identifierChain[0].name] && - typeof primary.owner === 'undefined' - ) { - primaries.push(primary); - } - }); - parser.yy.result.suggestAggregateFunctions = { tablePrimaries: primaries }; - }; - - parser.suggestAnalyticFunctions = function() { - parser.yy.result.suggestAnalyticFunctions = true; - }; - - parser.suggestSetOptions = function() { - parser.yy.result.suggestSetOptions = true; - }; - - parser.suggestIdentifiers = function(identifiers) { - parser.yy.result.suggestIdentifiers = identifiers; - }; - - parser.suggestColumns = function(details) { - if (typeof details === 'undefined') { - details = { identifierChain: [] }; - } else if (typeof details.identifierChain === 'undefined') { - details.identifierChain = []; - } - parser.yy.result.suggestColumns = details; - }; - - parser.suggestGroupBys = function(details) { - parser.yy.result.suggestGroupBys = details || {}; - }; - - parser.suggestOrderBys = function(details) { - parser.yy.result.suggestOrderBys = details || {}; - }; - - parser.suggestFilters = function(details) { - parser.yy.result.suggestFilters = details || {}; - }; - - parser.suggestKeyValues = function(details) { - parser.yy.result.suggestKeyValues = details || {}; - }; - - parser.suggestTables = function(details) { - parser.yy.result.suggestTables = details || {}; - }; - - const adjustLocationForCursor = function(location) { - // columns are 0-based and lines not, so add 1 to cols - const newLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - if (parser.yy.cursorFound) { - if ( - parser.yy.cursorFound.first_line === newLocation.first_line && - parser.yy.cursorFound.last_column <= newLocation.first_column - ) { - let additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. - newLocation.first_column = newLocation.first_column + additionalSpace; - newLocation.last_column = newLocation.last_column + additionalSpace; - } - } - return newLocation; - }; - - parser.addFunctionLocation = function(location, functionName) { - // Remove trailing '(' from location - const adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column, - last_column: location.last_column - 1 - }; - parser.yy.locations.push({ - type: 'function', - location: adjustLocationForCursor(adjustedLocation), - function: functionName.toLowerCase() - }); - }; - - parser.addStatementLocation = function(location) { - // Don't report lonely cursor as a statement - if ( - location.first_line === location.last_line && - Math.abs(location.last_column - location.first_column) === 1 - ) { - return; - } - let adjustedLocation; - if ( - parser.yy.cursorFound && - parser.yy.cursorFound.last_line === location.last_line && - parser.yy.cursorFound.first_column >= location.first_column && - parser.yy.cursorFound.last_column <= location.last_column - ) { - const additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) - }; - } else { - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - } - - parser.yy.locations.push({ - type: 'statement', - location: adjustedLocation - }); - }; - - parser.firstDefined = function() { - for (let i = 0; i + 1 < arguments.length; i += 2) { - if (arguments[i]) { - return arguments[i + 1]; - } - } - }; - - parser.addClauseLocation = function(type, precedingLocation, locationIfPresent, isCursor) { - let location; - if (isCursor) { - if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { - location = { - type: type, - missing: true, - location: adjustLocationForCursor({ - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - }; - } else { - location = { - type: type, - missing: false, - location: { - first_line: locationIfPresent.last_line, - first_column: locationIfPresent.last_column - 1, - last_line: locationIfPresent.last_line, - last_column: - locationIfPresent.last_column - - 1 + - parser.yy.partialLengths.right + - parser.yy.partialLengths.left - } - }; - } - } else { - location = { - type: type, - missing: !locationIfPresent, - location: adjustLocationForCursor( - locationIfPresent || { - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - } - ) - }; - } - if (parser.isInSubquery()) { - location.subquery = true; - } - parser.yy.locations.push(location); - }; - - parser.addStatementTypeLocation = function(identifier, location, additionalText) { - // Don't add if already there except for SELECT - if (identifier !== 'SELECT' && parser.yy.allLocations) { - for (let i = parser.yy.allLocations.length - 1; i >= 0; i--) { - if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statement') { - break; - } - if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statementType') { - return; - } - } - } - const loc = { - type: 'statementType', - location: adjustLocationForCursor(location), - identifier: identifier - }; - if (typeof additionalText !== 'undefined') { - switch (identifier) { - case 'ALTER': - if (/ALTER\s+VIEW/i.test(additionalText)) { - loc.identifier = 'ALTER VIEW'; - } else { - loc.identifier = 'ALTER TABLE'; - } - break; - case 'COMPUTE': - loc.identifier = 'COMPUTE STATS'; - break; - case 'CREATE': - if (/CREATE\s+VIEW/i.test(additionalText)) { - loc.identifier = 'CREATE VIEW'; - } else if (/CREATE\s+TABLE/i.test(additionalText)) { - loc.identifier = 'CREATE TABLE'; - } else if (/CREATE\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'CREATE DATABASE'; - } else if (/CREATE\s+ROLE/i.test(additionalText)) { - loc.identifier = 'CREATE ROLE'; - } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'CREATE FUNCTION'; - } else { - loc.identifier = 'CREATE TABLE'; - } - break; - case 'DROP': - if (/DROP\s+VIEW/i.test(additionalText)) { - loc.identifier = 'DROP VIEW'; - } else if (/DROP\s+TABLE/i.test(additionalText)) { - loc.identifier = 'DROP TABLE'; - } else if (/DROP\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'DROP DATABASE'; - } else if (/DROP\s+ROLE/i.test(additionalText)) { - loc.identifier = 'DROP ROLE'; - } else if (/DROP\s+STATS/i.test(additionalText)) { - loc.identifier = 'DROP STATS'; - } else if (/DROP\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'DROP FUNCTION'; - } else { - loc.identifier = 'DROP TABLE'; - } - break; - case 'INVALIDATE': - loc.identifier = 'INVALIDATE METADATA'; - break; - case 'LOAD': - loc.identifier = 'LOAD DATA'; - break; - case 'TRUNCATE': - loc.identifier = 'TRUNCATE TABLE'; - break; - default: - } - } - parser.yy.locations.push(loc); - }; - - parser.addFileLocation = function(location, path) { - parser.yy.locations.push({ - type: 'file', - location: adjustLocationForCursor(location), - path: path - }); - }; - - parser.addDatabaseLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addTableLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addColumnAliasLocation = function(location, alias, parentLocation) { - const aliasLocation = { - type: 'alias', - source: 'column', - alias: alias, - location: adjustLocationForCursor(location), - parentLocation: adjustLocationForCursor(parentLocation) - }; - if ( - parser.yy.locations.length && - parser.yy.locations[parser.yy.locations.length - 1].type === 'column' - ) { - const closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; - if ( - closestColumn.location.first_line === aliasLocation.parentLocation.first_line && - closestColumn.location.last_line === aliasLocation.parentLocation.last_line && - closestColumn.location.first_column === aliasLocation.parentLocation.first_column && - closestColumn.location.last_column === aliasLocation.parentLocation.last_column - ) { - parser.yy.locations[parser.yy.locations.length - 1].alias = alias; - } - } - parser.yy.locations.push(aliasLocation); - }; - - parser.addTableAliasLocation = function(location, alias, identifierChain) { - parser.yy.locations.push({ - type: 'alias', - source: 'table', - alias: alias, - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addSubqueryAliasLocation = function(location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'subquery', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addAsteriskLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'asterisk', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addVariableLocation = function(location, value) { - if (/\${[^}]*}/.test(value)) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: value - }); - } - }; - - parser.addColumnLocation = function(location, identifierChain) { - const isVariable = - identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); - if (isVariable) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }); - } else { - parser.yy.locations.push({ - type: 'column', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }); - } - }; - - parser.addCteAliasLocation = function(location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'cte', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addUnknownLocation = function(location, identifierChain) { - const isVariable = - identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); - let loc; - if (isVariable) { - loc = { - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }; - } else { - loc = { - type: 'unknown', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }; - } - parser.yy.locations.push(loc); - return loc; - }; - - parser.addNewDatabaseLocation = function(location, identifierChain) { - parser.yy.definitions.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addNewTableLocation = function(location, identifierChain, colSpec) { - const columns = []; - if (colSpec) { - colSpec.forEach(col => { - columns.push({ - identifierChain: [col.identifier], // TODO: Complex - type: col.type, - location: adjustLocationForCursor(col.location) - }); - }); - } - parser.yy.definitions.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - columns: columns - }); - }; - - parser.addColRefToVariableIfExists = function(left, right) { - if ( - left && - left.columnReference && - left.columnReference.length && - right && - right.columnReference && - right.columnReference.length && - parser.yy.locations.length > 1 - ) { - const addColRefToVariableLocation = function(variableValue, colRef) { - // See if colref is actually an alias - if (colRef.length === 1 && colRef[0].name) { - parser.yy.locations.some(location => { - if (location.type === 'column' && location.alias === colRef[0].name) { - colRef = location.identifierChain; - return true; - } - }); - } - - for (let i = parser.yy.locations.length - 1; i > 0; i--) { - const location = parser.yy.locations[i]; - if (location.type === 'variable' && location.value === variableValue) { - location.colRef = { identifierChain: colRef }; - break; - } - } - }; - - if (/\${[^}]*}/.test(left.columnReference[0].name)) { - // left is variable - addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); - } else if (/\${[^}]*}/.test(right.columnReference[0].name)) { - // right is variable - addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); - } - } - }; - - parser.suggestDatabases = function(details) { - parser.yy.result.suggestDatabases = details || {}; - }; - - parser.suggestHdfs = function(details) { - parser.yy.result.suggestHdfs = details || {}; - }; - - parser.suggestValues = function(details) { - parser.yy.result.suggestValues = details || {}; - }; - - parser.determineCase = function(text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - const cursorIndex = parser.yy.partialCursor - ? yytext.indexOf('\u2021') - : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - const remainder = yytext.substring(cursorIndex + 1); - const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) - .length; - if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - let lexerModified = false; - - /** - * Main parser function - */ - parser.parseSql = function(beforeCursor, afterCursor, debug) { - // Jison counts CRLF as two lines in the locations - beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); - afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); - parser.yy.result = { locations: [] }; - parser.yy.lowerCase = false; - parser.yy.locations = []; - parser.yy.definitions = []; - parser.yy.allLocations = []; - parser.yy.subQueries = []; - parser.yy.errors = []; - parser.yy.selectListAliases = []; - parser.yy.activeDialect = 'generic'; - - parser.yy.locationsStack = []; - parser.yy.primariesStack = []; - parser.yy.subQueriesStack = []; - parser.yy.resultStack = []; - parser.yy.selectListAliasesStack = []; - - delete parser.yy.caseDetermined; - delete parser.yy.cursorFound; - delete parser.yy.partialCursor; - - // Fix for parser bug when switching lexer states - if (!lexerModified) { - const originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function(input, yy) { - return originalSetInput.bind(parser.lexer)(input, yy); - }; - lexerModified = true; - } - - parser.prepareNewStatement(); - - const REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after - - if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if (beforeCursor.length - beforeCursor.lastIndexOf(';') > REASONABLE_SURROUNDING_LENGTH) { - // Bail out if the last complete statement is more than 150000 chars before - return {}; - } - // Cut it at the first statement found within 150000 chars before - const lastReasonableChunk = beforeCursor.substring( - beforeCursor.length - REASONABLE_SURROUNDING_LENGTH - ); - beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); - } - - if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if (afterCursor.length - afterCursor.indexOf(';') > REASONABLE_SURROUNDING_LENGTH) { - // No need to bail out for what's comes after, we can still get keyword completion - afterCursor = ''; - } else { - // Cut it at the last statement found within 150000 chars after - const firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); - afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); - } - } - - parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); - - if (parser.yy.partialLengths.left > 0) { - beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); - } - - if (parser.yy.partialLengths.right > 0) { - afterCursor = afterCursor.substring(parser.yy.partialLengths.right); - } - - let result; - try { - // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer - result = parser.parse( - beforeCursor + - (beforeCursor.length === 0 || /[\s(]$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + - afterCursor - ); - } catch (err) { - // On any error try to at least return any existing result - if (typeof parser.yy.result === 'undefined') { - throw err; - } - if (debug) { - console.warn(err); - console.warn(err.stack); - } - result = parser.yy.result; - } - if (parser.yy.errors.length > 0) { - parser.yy.result.errors = parser.yy.errors; - if (debug) { - console.warn(parser.yy.errors); - } - } - try { - linkTablePrimaries(); - parser.commitLocations(); - // Clean up and prioritize - prioritizeSuggestions(); - } catch (err) { - if (debug) { - console.warn(err); - console.warn(err.stack); - } - } - - parser.yy.allLocations.sort((a, b) => { - if (a.location.first_line !== b.location.first_line) { - return a.location.first_line - b.location.first_line; - } - if (a.location.first_column !== b.location.first_column) { - return a.location.first_column - b.location.first_column; - } - if (a.location.last_column !== b.location.last_column) { - return b.location.last_column - a.location.last_column; - } - return b.type.localeCompare(a.type); - }); - parser.yy.result.locations = parser.yy.allLocations; - parser.yy.result.definitions = parser.yy.definitions; - - parser.yy.result.locations.forEach(location => { - delete location.linked; - }); - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - delete parser.yy.result.suggestColumns.linked; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if (typeof parser.yy.result[suggestionType] !== 'undefined') { - delete parser.yy.result[suggestionType].linked; - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - delete parser.yy.result.colRef.linked; - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { - delete parser.yy.result.suggestKeyValues.linked; - } - - if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { - // Remove the cursor from expected tokens - result.error.expected = result.error.expected.filter(token => token.indexOf('CURSOR') === -1); - } - - if (typeof result.error !== 'undefined' && result.error.recoverable) { - delete result.error; - } - - // Adjust all the statement locations to include white space surrounding them - let lastStatementLocation = null; - result.locations.forEach(location => { - if (location.type === 'statement') { - if (lastStatementLocation === null) { - location.location.first_line = 1; - location.location.first_column = 1; - } else { - location.location.first_line = lastStatementLocation.location.last_line; - location.location.first_column = lastStatementLocation.location.last_column + 1; - } - lastStatementLocation = location; - } - }); - - return result; - }; -}; - -const SYNTAX_PARSER_NOOP_FUNCTIONS = [ - 'addAsteriskLocation', - 'addClauseLocation', - 'addColRefIfExists', - 'addColRefToVariableIfExists', - 'addColumnAliasLocation', - 'addColumnLocation', - 'addCommonTableExpressions', - 'addCteAliasLocation', - 'addDatabaseLocation', - 'addFileLocation', - 'addFunctionLocation', - 'addNewDatabaseLocation', - 'addNewTableLocation', - 'addStatementLocation', - 'addStatementTypeLocation', - 'addSubqueryAliasLocation', - 'addTableAliasLocation', - 'addTableLocation', - 'addTablePrimary', - 'addUnknownLocation', - 'addVariableLocation', - 'applyArgumentTypesToSuggestions', - 'applyTypeToSuggestions', - 'checkForKeywords', - 'checkForSelectListKeywords', - 'commitLocations', - 'firstDefined', - 'getSelectListKeywords', - 'getSubQuery', - 'getValueExpressionKeywords', - 'identifyPartials', - 'popQueryState', - 'prepareNewStatement', - 'pushQueryState', - 'selectListNoTableSuggest', - 'suggestAggregateFunctions', - 'suggestAnalyticFunctions', - 'suggestColRefKeywords', - 'suggestColumns', - 'suggestDatabases', - 'suggestDdlAndDmlKeywords', - 'suggestFileFormats', - 'suggestFilters', - 'suggestFunctions', - 'suggestGroupBys', - 'suggestHdfs', - 'suggestIdentifiers', - 'suggestJoinConditions', - 'suggestJoins', - 'suggestKeyValues', - 'suggestKeywords', - 'suggestOrderBys', - 'suggestSelectListAliases', - 'suggestTables', - 'suggestTablesOrColumns', - 'suggestValueExpressionKeywords', - 'suggestValues', - 'valueExpressionSuggest' -]; - -const SYNTAX_PARSER_NOOP = function() {}; - -const initSyntaxParser = function(parser) { - // Noop functions for compatibility with the autocomplete parser as the grammar is shared - SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(noopFn => { - parser[noopFn] = SYNTAX_PARSER_NOOP; - }); - - parser.yy.locations = [{}]; - - parser.determineCase = function(text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.getKeywordsForOptionalsLR = function() { - return []; - }; - - parser.mergeSuggestKeywords = function() { - return {}; - }; - - parser.getTypeKeywords = function() { - return []; - }; - - parser.getColumnDataTypeKeywords = function() { - return []; - }; - - parser.findCaseType = function() { - return { types: ['T'] }; - }; - - parser.findReturnTypes = function() { - return ['T']; - }; - - parser.expandIdentifierChain = function() { - return []; - }; - - parser.createWeightedKeywords = function() { - return []; - }; - - parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - const cursorIndex = parser.yy.partialCursor - ? yytext.indexOf('\u2021') - : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - const remainder = yytext.substring(cursorIndex + 1); - const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) - .length; - if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - parser.yy.parseError = function(str, hash) { - parser.yy.error = hash; - }; - - const IGNORED_EXPECTED = { - ';': true, - '.': true, - EOF: true, - UNSIGNED_INTEGER: true, - UNSIGNED_INTEGER_E: true, - REGULAR_IDENTIFIER: true, - CURSOR: true, - PARTIAL_CURSOR: true, - HDFS_START_QUOTE: true, - HDFS_PATH: true, - HDFS_END_QUOTE: true, - COMPARISON_OPERATOR: true, // TODO: Expand in results when found - ARITHMETIC_OPERATOR: true, // TODO: Expand in results when found - VARIABLE_REFERENCE: true, - BACKTICK: true, - VALUE: true, - PARTIAL_VALUE: true, - SINGLE_QUOTE: true, - DOUBLE_QUOTE: true - }; - - const CLEAN_EXPECTED = { - BETWEEN_AND: 'AND', - OVERWRITE_DIRECTORY: 'OVERWRITE', - STORED_AS_DIRECTORIES: 'STORED', - LIKE_PARQUET: 'LIKE', - PARTITION_VALUE: 'PARTITION' - }; - - parser.parseSyntax = function(beforeCursor, afterCursor, debug) { - parser.yy.caseDetermined = false; - parser.yy.error = undefined; - - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - parser.yy.activeDialect = 'generic'; - - // TODO: Find a way around throwing an exception when the parser finds a syntax error - try { - parser.yy.error = false; - parser.parse(beforeCursor + afterCursor); - } catch (err) { - if (debug) { - console.warn(err); - console.warn(err.stack); - console.warn(parser.yy.error); - } - } - - if ( - parser.yy.error && - (parser.yy.error.loc.last_column < beforeCursor.length || - !beforeCursor.endsWith(parser.yy.error.text)) - ) { - const weightedExpected = []; - - const addedExpected = {}; - - const isLowerCase = - (parser.yy.caseDetermined && parser.yy.lowerCase) || - parser.yy.error.text.toLowerCase() === parser.yy.error.text; - - if ( - parser.yy.error.expected.length === 2 && - parser.yy.error.expected.indexOf("';'") !== -1 && - parser.yy.error.expected.indexOf("'EOF'") !== -1 - ) { - parser.yy.error.expected = []; - parser.yy.error.expectedStatementEnd = true; - return parser.yy.error; - } - for (let i = 0; i < parser.yy.error.expected.length; i++) { - let expected = parser.yy.error.expected[i]; - // Strip away the surrounding ' chars - expected = expected.substring(1, expected.length - 1); - // TODO: Only suggest alphanumeric? - if (expected === 'REGULAR_IDENTIFIER') { - parser.yy.error.expectedIdentifier = true; - if (/^<[a-z]+>/.test(parser.yy.error.token)) { - const text = '`' + parser.yy.error.text + '`'; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - parser.yy.error.possibleReserved = true; - } - } else if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { - if (/^<[a-z]+>/.test(expected)) { - continue; - } - expected = CLEAN_EXPECTED[expected] || expected; - if (expected === parser.yy.error.text.toUpperCase()) { - // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' - return false; - } - const text = isLowerCase ? expected.toLowerCase() : expected; - if (text && !addedExpected[text]) { - addedExpected[text] = true; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - } - } - } - if (weightedExpected.length === 0) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - weightedExpected.sort((a, b) => { - if (a.distance === b.distance) { - return a.text.localeCompare(b.text); - } - return a.distance - b.distance; - }); - parser.yy.error.expected = weightedExpected; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } else if (parser.yy.error) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - return false; - }; -}; - -export default { - initSqlParser: initSqlParser, - initSyntaxParser: initSyntaxParser -}; diff --git a/src/core/parse/hive/hiveAutocompleteParser.js b/src/core/parse/hive/hiveAutocompleteParser.js deleted file mode 100644 index 034895d..0000000 --- a/src/core/parse/hive/hiveAutocompleteParser.js +++ /dev/null @@ -1,5883 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -import SqlParseSupport from './sqlParseSupport'; - -var hiveAutocompleteParser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,26,27,44,47,50,54,55,58,62,71,78,79,85,88,89,107,108,116,118,123,126,129,130,132,150,151,152,153,154,158,161,166,198,202,205,206,208,216,217,218,219,227,228,229,230,231,233,235,238,239,240,266,277,279,280,307,317,318,333,347,348,349,351,352,359,371,372,373,374,376,381,382,384,385,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,491,532,533,534,535,538,539,544,547,561,563,568,569,570,571,572,573,574,575,596,610,615,616,617,618,619,620,621,622,623,626,637,639,640,656,663,665,667,673,674,676,681,686,687,688,690,694,696,697,698,699,700,701,702,703,704,705,706,707,708,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,850],$V1=[2,1295],$V2=[544,690],$V3=[2,915],$V4=[1,5],$V5=[1,200],$V6=[1,281],$V7=[1,368],$V8=[1,69],$V9=[1,164],$Va=[1,112],$Vb=[1,154],$Vc=[1,179],$Vd=[1,240],$Ve=[1,55],$Vf=[1,204],$Vg=[1,39],$Vh=[1,168],$Vi=[1,148],$Vj=[1,211],$Vk=[1,210],$Vl=[1,27],$Vm=[1,10],$Vn=[1,11],$Vo=[1,13],$Vp=[1,17],$Vq=[1,218],$Vr=[1,198],$Vs=[1,199],$Vt=[1,24],$Vu=[1,242],$Vv=[1,283],$Vw=[1,163],$Vx=[1,49],$Vy=[1,215],$Vz=[1,166],$VA=[1,385],$VB=[1,406],$VC=[1,184],$VD=[1,407],$VE=[1,100],$VF=[1,151],$VG=[1,259],$VH=[1,311],$VI=[1,53],$VJ=[1,207],$VK=[1,94],$VL=[1,40],$VM=[1,141],$VN=[1,147],$VO=[1,260],$VP=[1,97],$VQ=[1,29],$VR=[1,74],$VS=[1,87],$VT=[1,136],$VU=[1,376],$VV=[1,50],$VW=[1,203],$VX=[1,82],$VY=[1,130],$VZ=[1,173],$V_=[1,125],$V$=[1,149],$V01=[1,26],$V11=[1,16],$V21=[1,18],$V31=[1,138],$V41=[1,213],$V51=[1,229],$V61=[1,95],$V71=[1,180],$V81=[1,183],$V91=[1,146],$Va1=[1,167],$Vb1=[1,52],$Vc1=[1,45],$Vd1=[1,119],$Ve1=[1,230],$Vf1=[1,38],$Vg1=[1,79],$Vh1=[1,206],$Vi1=[1,191],$Vj1=[1,96],$Vk1=[1,31],$Vl1=[1,116],$Vm1=[1,161],$Vn1=[1,124],$Vo1=[1,157],$Vp1=[1,165],$Vq1=[1,178],$Vr1=[1,197],$Vs1=[1,221],$Vt1=[1,73],$Vu1=[1,90],$Vv1=[1,220],$Vw1=[1,85],$Vx1=[1,48],$Vy1=[1,121],$Vz1=[1,126],$VA1=[1,132],$VB1=[1,72],$VC1=[1,219],$VD1=[1,233],$VE1=[1,91],$VF1=[1,122],$VG1=[1,188],$VH1=[1,71],$VI1=[1,109],$VJ1=[1,111],$VK1=[1,137],$VL1=[1,175],$VM1=[1,409],$VN1=[1,352],$VO1=[1,98],$VP1=[1,329],$VQ1=[1,226],$VR1=[1,360],$VS1=[1,22],$VT1=[1,128],$VU1=[1,99],$VV1=[1,129],$VW1=[1,186],$VX1=[1,60],$VY1=[1,123],$VZ1=[1,160],$V_1=[1,114],$V$1=[1,196],$V02=[1,102],$V12=[1,64],$V22=[1,410],$V32=[1,135],$V42=[1,202],$V52=[1,359],$V62=[1,232],$V72=[1,103],$V82=[1,155],$V92=[1,21],$Va2=[1,330],$Vb2=[1,174],$Vc2=[1,234],$Vd2=[1,133],$Ve2=[1,76],$Vf2=[1,411],$Vg2=[1,244],$Vh2=[1,139],$Vi2=[1,222],$Vj2=[1,356],$Vk2=[1,63],$Vl2=[1,115],$Vm2=[1,357],$Vn2=[1,88],$Vo2=[1,358],$Vp2=[1,185],$Vq2=[1,37],$Vr2=[1,51],$Vs2=[1,65],$Vt2=[1,67],$Vu2=[1,68],$Vv2=[1,81],$Vw2=[1,101],$Vx2=[1,108],$Vy2=[1,127],$Vz2=[1,134],$VA2=[1,143],$VB2=[1,144],$VC2=[1,169],$VD2=[1,176],$VE2=[1,189],$VF2=[1,194],$VG2=[1,195],$VH2=[1,201],$VI2=[1,386],$VJ2=[1,212],$VK2=[1,216],$VL2=[1,224],$VM2=[1,225],$VN2=[1,351],$VO2=[1,243],$VP2=[1,247],$VQ2=[1,182],$VR2=[1,238],$VS2=[1,9],$VT2=[1,12],$VU2=[1,14],$VV2=[1,15],$VW2=[1,19],$VX2=[1,20],$VY2=[1,23],$VZ2=[1,25],$V_2=[1,28],$V$2=[1,30],$V03=[1,32],$V13=[1,33],$V23=[1,34],$V33=[1,35],$V43=[1,36],$V53=[1,41],$V63=[1,42],$V73=[1,43],$V83=[1,44],$V93=[1,46],$Va3=[1,47],$Vb3=[1,54],$Vc3=[1,56],$Vd3=[1,57],$Ve3=[1,58],$Vf3=[1,59],$Vg3=[1,61],$Vh3=[1,62],$Vi3=[1,66],$Vj3=[1,70],$Vk3=[1,75],$Vl3=[1,77],$Vm3=[1,78],$Vn3=[1,80],$Vo3=[1,83],$Vp3=[1,84],$Vq3=[1,86],$Vr3=[1,89],$Vs3=[1,92],$Vt3=[1,93],$Vu3=[1,104],$Vv3=[1,105],$Vw3=[1,106],$Vx3=[1,107],$Vy3=[1,110],$Vz3=[1,113],$VA3=[1,117],$VB3=[1,118],$VC3=[1,120],$VD3=[1,131],$VE3=[1,140],$VF3=[1,142],$VG3=[1,145],$VH3=[1,150],$VI3=[1,152],$VJ3=[1,153],$VK3=[1,156],$VL3=[1,158],$VM3=[1,159],$VN3=[1,162],$VO3=[1,170],$VP3=[1,171],$VQ3=[1,172],$VR3=[1,177],$VS3=[1,181],$VT3=[1,187],$VU3=[1,190],$VV3=[1,192],$VW3=[1,193],$VX3=[1,205],$VY3=[1,208],$VZ3=[1,209],$V_3=[1,214],$V$3=[1,217],$V04=[1,223],$V14=[1,227],$V24=[1,228],$V34=[1,231],$V44=[1,235],$V54=[1,236],$V64=[1,237],$V74=[1,239],$V84=[1,241],$V94=[1,245],$Va4=[1,246],$Vb4=[1,248],$Vc4=[1,282],$Vd4=[1,331],$Ve4=[2,1535],$Vf4=[1,421],$Vg4=[1,477],$Vh4=[1,535],$Vi4=[1,544],$Vj4=[1,517],$Vk4=[1,586],$Vl4=[1,553],$Vm4=[1,448],$Vn4=[1,548],$Vo4=[1,564],$Vp4=[1,545],$Vq4=[1,538],$Vr4=[1,578],$Vs4=[1,568],$Vt4=[1,563],$Vu4=[1,459],$Vv4=[1,550],$Vw4=[1,567],$Vx4=[1,440],$Vy4=[1,496],$Vz4=[1,573],$VA4=[1,559],$VB4=[1,560],$VC4=[1,468],$VD4=[1,465],$VE4=[1,587],$VF4=[1,533],$VG4=[1,463],$VH4=[1,490],$VI4=[1,450],$VJ4=[1,497],$VK4=[1,488],$VL4=[1,485],$VM4=[1,523],$VN4=[1,527],$VO4=[1,452],$VP4=[1,581],$VQ4=[1,522],$VR4=[1,549],$VS4=[1,546],$VT4=[1,451],$VU4=[1,467],$VV4=[1,566],$VW4=[1,519],$VX4=[1,525],$VY4=[1,491],$VZ4=[1,453],$V_4=[1,458],$V$4=[1,482],$V05=[1,515],$V15=[1,585],$V25=[1,469],$V35=[1,506],$V45=[1,528],$V55=[1,483],$V65=[1,493],$V75=[1,529],$V85=[1,571],$V95=[1,464],$Va5=[1,508],$Vb5=[1,583],$Vc5=[1,478],$Vd5=[1,460],$Ve5=[1,512],$Vf5=[1,472],$Vg5=[1,470],$Vh5=[1,471],$Vi5=[1,526],$Vj5=[1,570],$Vk5=[1,582],$Vl5=[1,547],$Vm5=[1,524],$Vn5=[1,537],$Vo5=[1,461],$Vp5=[1,456],$Vq5=[1,486],$Vr5=[1,565],$Vs5=[1,498],$Vt5=[1,454],$Vu5=[1,503],$Vv5=[1,532],$Vw5=[1,507],$Vx5=[1,531],$Vy5=[1,536],$Vz5=[1,543],$VA5=[1,558],$VB5=[1,576],$VC5=[1,481],$VD5=[1,494],$VE5=[1,575],$VF5=[1,489],$VG5=[1,462],$VH5=[1,504],$VI5=[1,509],$VJ5=[1,511],$VK5=[1,480],$VL5=[1,574],$VM5=[1,495],$VN5=[1,505],$VO5=[1,554],$VP5=[1,479],$VQ5=[1,501],$VR5=[1,541],$VS5=[1,447],$VT5=[1,580],$VU5=[1,530],$VV5=[1,449],$VW5=[1,540],$VX5=[1,484],$VY5=[1,534],$VZ5=[1,518],$V_5=[1,516],$V$5=[1,513],$V06=[1,473],$V16=[1,502],$V26=[1,492],$V36=[1,551],$V46=[1,455],$V56=[1,457],$V66=[1,466],$V76=[1,474],$V86=[1,475],$V96=[1,476],$Va6=[1,487],$Vb6=[1,499],$Vc6=[1,500],$Vd6=[1,510],$Ve6=[1,514],$Vf6=[1,520],$Vg6=[1,521],$Vh6=[1,539],$Vi6=[1,542],$Vj6=[1,552],$Vk6=[1,555],$Vl6=[1,556],$Vm6=[1,557],$Vn6=[1,561],$Vo6=[1,562],$Vp6=[1,569],$Vq6=[1,572],$Vr6=[1,577],$Vs6=[1,579],$Vt6=[1,584],$Vu6=[1,588],$Vv6=[1,589],$Vw6=[1,444],$Vx6=[1,445],$Vy6=[1,443],$Vz6=[2,1539],$VA6=[1,593],$VB6=[1,601],$VC6=[1,605],$VD6=[1,604],$VE6=[1,602],$VF6=[1,592],$VG6=[1,603],$VH6=[1,608],$VI6=[1,600],$VJ6=[1,606],$VK6=[1,607],$VL6=[1,609],$VM6=[1,610],$VN6=[1,599],$VO6=[2,1637],$VP6=[1,611],$VQ6=[1,612],$VR6=[1,614],$VS6=[1,625],$VT6=[1,636],$VU6=[1,648],$VV6=[1,641],$VW6=[1,654],$VX6=[1,651],$VY6=[1,652],$VZ6=[1,631],$V_6=[1,653],$V$6=[1,655],$V07=[1,638],$V17=[1,658],$V27=[1,632],$V37=[1,647],$V47=[1,633],$V57=[1,657],$V67=[1,646],$V77=[1,634],$V87=[1,659],$V97=[1,643],$Va7=[1,644],$Vb7=[1,645],$Vc7=[1,656],$Vd7=[1,637],$Ve7=[1,635],$Vf7=[1,664],$Vg7=[26,27,44,152,166,198,205,217,266,533,534,535,538,547,596,615,618,623,656,673,681,687,714,719,850],$Vh7=[2,345],$Vi7=[1,669],$Vj7=[1,670],$Vk7=[1,671],$Vl7=[1,672],$Vm7=[1,673],$Vn7=[1,674],$Vo7=[1,675],$Vp7=[118,499,544,690],$Vq7=[2,1907],$Vr7=[1,682],$Vs7=[2,1688],$Vt7=[2,1904],$Vu7=[1,689],$Vv7=[2,118,544,690],$Vw7=[1,693],$Vx7=[1,696],$Vy7=[27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],$Vz7=[2,1712],$VA7=[1,710],$VB7=[1,709],$VC7=[1,711],$VD7=[1,712],$VE7=[2,1126],$VF7=[1,728],$VG7=[2,1264],$VH7=[2,1932],$VI7=[1,756],$VJ7=[1,757],$VK7=[27,158,686,718],$VL7=[2,1729],$VM7=[1,768],$VN7=[1,776],$VO7=[1,806],$VP7=[1,799],$VQ7=[1,783],$VR7=[1,802],$VS7=[1,788],$VT7=[1,794],$VU7=[1,803],$VV7=[1,784],$VW7=[1,807],$VX7=[1,812],$VY7=[1,840],$VZ7=[1,841],$V_7=[1,837],$V$7=[1,846],$V08=[1,847],$V18=[1,835],$V28=[1,836],$V38=[1,833],$V48=[27,158],$V58=[2,284],$V68=[1,852],$V78=[1,853],$V88=[1,884],$V98=[1,883],$Va8=[1,886],$Vb8=[1,881],$Vc8=[1,879],$Vd8=[1,880],$Ve8=[1,878],$Vf8=[2,26,44,47,50,54,55,58,62,71,78,79,85,88,89,107,108,116,118,123,126,129,130,132,150,151,152,153,154,158,161,166,198,202,205,206,208,217,218,219,227,228,229,230,231,233,235,238,239,240,266,277,279,280,307,317,318,333,347,348,349,351,352,359,371,372,373,374,376,381,382,384,385,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,491,532,533,534,535,538,539,544,547,561,563,568,569,570,571,572,573,574,575,596,610,615,616,617,618,619,620,621,622,623,626,637,639,640,656,663,665,667,673,674,676,681,686,687,688,690,694,696,697,698,699,700,701,702,703,704,705,706,707,708,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,850],$Vg8=[27,118,499,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$Vh8=[2,2354],$Vi8=[2,118,544,547,615,620,690,742,756,765,773,781,800,807,808,893],$Vj8=[2,118,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$Vk8=[2,27,118,123,499,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$Vl8=[2,118,123,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$Vm8=[27,118,123,499,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$Vn8=[2,2256],$Vo8=[1,899],$Vp8=[1,902],$Vq8=[1,904],$Vr8=[1,898],$Vs8=[1,901],$Vt8=[1,903],$Vu8=[1,900],$Vv8=[1,905],$Vw8=[1,910],$Vx8=[1,912],$Vy8=[1,914],$Vz8=[1,909],$VA8=[1,913],$VB8=[1,911],$VC8=[1,915],$VD8=[2,2307],$VE8=[2,2344],$VF8=[1,923],$VG8=[1,930],$VH8=[1,931],$VI8=[2,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,800,807,808,893],$VJ8=[1,933],$VK8=[2,55,118,123,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VL8=[1,935],$VM8=[1,936],$VN8=[1,937],$VO8=[2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,800,807,808,893],$VP8=[2,1789],$VQ8=[152,547],$VR8=[2,2322],$VS8=[1,944],$VT8=[2,26,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,797,800,807,808,893],$VU8=[2,26,27,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,317,318,320,321,323,328,329,330,331,333,347,348,349,351,352,358,359,371,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,728,729,731,732,734,735,736,737,738,741,742,752,753,754,756,757,758,759,762,764,765,768,770,771,772,773,778,780,781,787,788,789,791,793,797,798,800,804,807,808,810,893,901],$VV8=[1,946],$VW8=[1,947],$VX8=[2,26,27,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,317,318,320,321,323,328,329,330,331,333,347,348,349,351,352,358,359,371,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,728,729,731,732,734,735,736,737,738,741,742,752,753,754,756,757,758,759,762,764,765,768,770,771,772,773,778,780,781,787,788,789,791,793,797,798,800,804,807,808,810,893,901],$VY8=[2,1302],$VZ8=[2,1407],$V_8=[27,75],$V$8=[2,1032],$V09=[1,952],$V19=[1,951],$V29=[1,955],$V39=[1,957],$V49=[1,959],$V59=[27,55,75,123,535,544,690],$V69=[27,75,123,535,544,690],$V79=[55,544,690],$V89=[2,1772],$V99=[1,964],$Va9=[27,55,75,116,123,535,544,690],$Vb9=[2,1054],$Vc9=[126,727],$Vd9=[1,966],$Ve9=[1,967],$Vf9=[1,972],$Vg9=[2,118,499,544,690],$Vh9=[1,976],$Vi9=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],$Vj9=[1,987],$Vk9=[1,998],$Vl9=[1,997],$Vm9=[158,686,718],$Vn9=[26,44,152,166,198,205,217,266,533,534,535,538,547,596,615,618,623,656,673,681,687,714,719,850],$Vo9=[2,342],$Vp9=[1,1066],$Vq9=[2,354],$Vr9=[1,1068],$Vs9=[1,1069],$Vt9=[26,27,44,152,166,198,205,217,247,248,249,250,266,533,534,535,538,547,596,615,618,623,656,673,681,687,714,719,850],$Vu9=[2,1908],$Vv9=[2,118,499,544,690,800],$Vw9=[2,1920],$Vx9=[2,116,118,535,544,547,615,690],$Vy9=[2,27,116,118,123,535,544,547,615,690],$Vz9=[1,1091],$VA9=[1,1092],$VB9=[1,1093],$VC9=[27,535],$VD9=[27,123,535],$VE9=[1,1104],$VF9=[2,1710],$VG9=[1,1110],$VH9=[27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723],$VI9=[27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,768],$VJ9=[2,1128],$VK9=[544,620,690,742,756,765,773,781,808,893],$VL9=[2,1947],$VM9=[1,1122],$VN9=[1,1126],$VO9=[544,615,690],$VP9=[1,1137],$VQ9=[1,1142],$VR9=[1,1149],$VS9=[1,1155],$VT9=[1,1158],$VU9=[1,1159],$VV9=[1,1138],$VW9=[1,1140],$VX9=[1,1176],$VY9=[1,1195],$VZ9=[1,1156],$V_9=[1,1143],$V$9=[1,1177],$V0a=[1,1196],$V1a=[1,1197],$V2a=[1,1198],$V3a=[1,1188],$V4a=[1,1199],$V5a=[1,1200],$V6a=[1,1141],$V7a=[1,1194],$V8a=[1,1201],$V9a=[1,1157],$Vaa=[1,1202],$Vba=[1,1203],$Vca=[1,1204],$Vda=[1,1205],$Vea=[1,1206],$Vfa=[1,1207],$Vga=[1,1208],$Vha=[1,1189],$Via=[1,1193],$Vja=[1,1209],$Vka=[1,1210],$Vla=[1,1211],$Vma=[1,1139],$Vna=[1,1178],$Voa=[27,676],$Vpa=[2,1248],$Vqa=[1,1213],$Vra=[2,2427],$Vsa=[535,544,690],$Vta=[2,1265],$Vua=[26,27,544,690],$Vva=[26,544,690],$Vwa=[26,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],$Vxa=[2,1820],$Vya=[26,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],$Vza=[1,1240],$VAa=[1,1241],$VBa=[1,1243],$VCa=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,547,558,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,810,1010],$VDa=[27,158,686],$VEa=[2,1731],$VFa=[1,1258],$VGa=[2,1736],$VHa=[1,1261],$VIa=[2,1730],$VJa=[27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],$VKa=[2,1733],$VLa=[1,1274],$VMa=[1,1295],$VNa=[1,1294],$VOa=[1,1302],$VPa=[1,1301],$VQa=[1,1303],$VRa=[1,1305],$VSa=[2,2621],$VTa=[27,279,307,544,690],$VUa=[2,1740],$VVa=[1,1326],$VWa=[27,307,544,690],$VXa=[2,2695],$VYa=[1,1334],$VZa=[1,1335],$V_a=[27,307],$V$a=[27,55,544,690],$V0b=[27,161],$V1b=[2,213],$V2b=[1,1350],$V3b=[2,1743],$V4b=[1,1357],$V5b=[1,1361],$V6b=[1,1362],$V7b=[1,1369],$V8b=[1,1371],$V9b=[1,1372],$Vab=[1,1373],$Vbb=[1,1375],$Vcb=[1,1383],$Vdb=[2,214],$Veb=[1,1402],$Vfb=[2,221],$Vgb=[1,1404],$Vhb=[1,1405],$Vib=[27,64,178,180],$Vjb=[1,1406],$Vkb=[2,1177],$Vlb=[1,1417],$Vmb=[1,1422],$Vnb=[152,544,547,615,690],$Vob=[1,1427],$Vpb=[1,1437],$Vqb=[1,1438],$Vrb=[1,1439],$Vsb=[1,1443],$Vtb=[2,470],$Vub=[1,1445],$Vvb=[1,1451],$Vwb=[27,154],$Vxb=[1,1462],$Vyb=[1,1464],$Vzb=[1,1460],$VAb=[1,1461],$VBb=[2,1942],$VCb=[1,1471],$VDb=[2,2260],$VEb=[1,1477],$VFb=[1,1479],$VGb=[1,1481],$VHb=[1,1484],$VIb=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,568,569,570,571,572,573,574,575,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,800],$VJb=[1,1487],$VKb=[1,1491],$VLb=[1,1494],$VMb=[1,1498],$VNb=[2,118,123,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VOb=[2,27,55,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VPb=[2,27,55,118,123,499,535,544,547,552,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VQb=[2,55,118,123,535,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VRb=[2,27,55,78,107,108,118,123,126,129,130,150,152,161,174,175,277,349,376,382,396,409,419,487,488,499,535,544,547,552,563,568,569,570,571,572,573,574,575,615,620,690,695,704,709,742,756,765,773,781,800,807,808,893],$VSb=[2,55,107,118,123,129,152,277,409,487,488,535,544,547,563,568,569,570,571,572,573,574,575,615,620,690,704,742,756,765,773,781,800,807,808,893],$VTb=[1,1519],$VUb=[1,1518],$VVb=[1,1522],$VWb=[1,1521],$VXb=[1,1528],$VYb=[1,1534],$VZb=[1,1533],$V_b=[1,1573],$V$b=[1,1571],$V0c=[1,1572],$V1c=[1,1599],$V2c=[1,1602],$V3c=[123,535],$V4c=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723],$V5c=[1,1614],$V6c=[1,1617],$V7c=[1,1622],$V8c=[1,1618],$V9c=[1,1620],$Vac=[1,1629],$Vbc=[1,1623],$Vcc=[1,1630],$Vdc=[1,1633],$Vec=[1,1621],$Vfc=[1,1634],$Vgc=[1,1619],$Vhc=[1,1631],$Vic=[307,544,690],$Vjc=[1,1689],$Vkc=[1,1690],$Vlc=[1,1695],$Vmc=[2,118,499,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$Vnc=[1,1697],$Voc=[2,118,123,499,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$Vpc=[26,44,152,166,198,205,217,266,533,534,535,538,544,547,596,615,618,623,656,673,681,687,690,714,719,850],$Vqc=[2,349],$Vrc=[2,116,118,123,535,544,547,615,690],$Vsc=[218,544,690],$Vtc=[123,544,690],$Vuc=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,772,773,778,780,781,787,788,789,791,800,807,808,893,901],$Vvc=[2,2211],$Vwc=[1,1724],$Vxc=[1,1738],$Vyc=[1,1740],$Vzc=[1,1751],$VAc=[118,499,544,615,690,742,756,765,773,781,800,808,893],$VBc=[2,1952],$VCc=[1,1770],$VDc=[2,1948],$VEc=[2,118,544,568,569,570,571,572,573,574,575,615,690,742,756,765,773,781,800,808,893],$VFc=[1,1775],$VGc=[2,118,499,544,568,569,570,571,572,573,574,575,615,690,742,756,765,773,781,800,808,893],$VHc=[2,27,118,499,544,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,808,893],$VIc=[544,615,620,690,742,756,765,773,781,808,893],$VJc=[1,1798],$VKc=[1,1794],$VLc=[1,1802],$VMc=[1,1810],$VNc=[1,1795],$VOc=[1,1796],$VPc=[1,1797],$VQc=[1,1799],$VRc=[1,1813],$VSc=[1,1804],$VTc=[1,1803],$VUc=[1,1805],$VVc=[1,1800],$VWc=[1,1793],$VXc=[1,1801],$VYc=[1,1812],$VZc=[1,1811],$V_c=[1,1823],$V$c=[1,1814],$V0d=[1,1819],$V1d=[1,1824],$V2d=[1,1815],$V3d=[1,1816],$V4d=[1,1817],$V5d=[1,1820],$V6d=[1,1821],$V7d=[1,1818],$V8d=[1,1826],$V9d=[1,1825],$Vad=[1,1831],$Vbd=[1,1827],$Vcd=[1,1835],$Vdd=[1,1828],$Ved=[1,1829],$Vfd=[1,1830],$Vgd=[1,1832],$Vhd=[1,1837],$Vid=[1,1836],$Vjd=[1,1838],$Vkd=[1,1833],$Vld=[1,1834],$Vmd=[1,1846],$Vnd=[1,1850],$Vod=[1,1869],$Vpd=[1,1866],$Vqd=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,788,789,800,807,808,893,901],$Vrd=[2,2188],$Vsd=[1,1872],$Vtd=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,772,773,778,780,781,787,788,789,791,800,807,808,893,901],$Vud=[2,2198],$Vvd=[2,2394],$Vwd=[1,1880],$Vxd=[1,1885],$Vyd=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,729,731,732,734,735,742,754,756,758,759,764,765,772,773,778,780,781,787,788,789,791,800,807,808,893,901],$Vzd=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,772,773,778,780,781,783,787,788,789,791,800,807,808,893,901],$VAd=[2,1849],$VBd=[1,1914],$VCd=[2,920],$VDd=[1,1925],$VEd=[2,118,544,690,800],$VFd=[1,1937],$VGd=[1,1935],$VHd=[1,1936],$VId=[2,932],$VJd=[2,27,118,123,499,535,544,552,615,620,690,742,756,765,773,781,800,807,808,893],$VKd=[2,118,535,544,615,620,690,742,756,765,773,781,800,807,808,893],$VLd=[2,2228],$VMd=[2,118,123,535,544,615,620,690,742,756,765,773,781,800,807,808,893],$VNd=[1,1944],$VOd=[26,66,71,74,78,84,86,88,92,99,134,135,156,161,166,176,177,181,182,382,544,690],$VPd=[2,1715],$VQd=[1,1953],$VRd=[2,1794],$VSd=[1,1975],$VTd=[544,690,727],$VUd=[2,2610],$VVd=[2,2622],$VWd=[2,2643],$VXd=[1,2014],$VYd=[2,2656],$VZd=[1,2028],$V_d=[1,2029],$V$d=[2,2682],$V0e=[1,2032],$V1e=[1,2036],$V2e=[2,1721],$V3e=[27,544,690],$V4e=[2,2700],$V5e=[1,2045],$V6e=[1,2047],$V7e=[1,2074],$V8e=[1,2072],$V9e=[1,2073],$Vae=[1,2078],$Vbe=[1,2079],$Vce=[1,2080],$Vde=[1,2081],$Vee=[1,2082],$Vfe=[1,2083],$Vge=[1,2084],$Vhe=[1,2085],$Vie=[1,2087],$Vje=[1,2094],$Vke=[78,107,108,129,152,409,544,690,704],$Vle=[27,152,544,690],$Vme=[2,176],$Vne=[2,1724],$Voe=[1,2119],$Vpe=[2,222],$Vqe=[1,2124],$Vre=[27,107,152,544,547,646,690],$Vse=[2,1179],$Vte=[1,2144],$Vue=[107,152,544,547,615,690],$Vve=[1,2146],$Vwe=[1,2156],$Vxe=[2,472],$Vye=[1,2162],$Vze=[152,544,690],$VAe=[1,2173],$VBe=[1,2172],$VCe=[1,2174],$VDe=[1,2176],$VEe=[1,2177],$VFe=[2,27,118,499,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$VGe=[1,2183],$VHe=[27,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VIe=[2,2291],$VJe=[1,2191],$VKe=[1,2193],$VLe=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,800,807,808,893],$VMe=[1,2195],$VNe=[1,2199],$VOe=[1,2201],$VPe=[1,2203],$VQe=[1,2207],$VRe=[1,2209],$VSe=[1,2211],$VTe=[2,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VUe=[1,2221],$VVe=[1,2219],$VWe=[1,2222],$VXe=[1,2223],$VYe=[2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,351,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,646,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,772,773,778,780,781,787,788,789,791,800,807,808,893,901],$VZe=[2,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,788,789,800,807,808,893,901],$V_e=[1,2224],$V$e=[2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,772,773,778,780,781,787,788,789,791,800,807,808,893,901],$V0f=[2,26,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,788,789,797,800,807,808,893,901],$V1f=[2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,772,773,778,780,781,787,788,789,791,800,807,808,893,901],$V2f=[2,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,788,789,800,807,808,893,901],$V3f=[2,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,384,385,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,533,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,729,730,731,732,733,734,735,737,739,740,742,743,744,746,747,748,749,754,756,758,759,760,761,764,765,767,768,773,774,775,777,778,780,781,783,784,785,788,789,794,795,796,799,800,801,802,803,805,807,808,809,893,901,1010],$V4f=[2,118],$V5f=[27,75,535,544,690],$V6f=[2,1082],$V7f=[1,2241],$V8f=[1,2242],$V9f=[1,2243],$Vaf=[27,123,152,544,690],$Vbf=[1,2252],$Vcf=[1,2253],$Vdf=[2,118,544,568,569,570,571,572,573,574,575,615,690,773,800,893],$Vef=[2,27,118,123,499,544,568,569,570,571,572,573,574,575,615,690,773,800,893],$Vff=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723],$Vgf=[1,2275],$Vhf=[1,2271],$Vif=[1,2279],$Vjf=[1,2272],$Vkf=[1,2273],$Vlf=[1,2274],$Vmf=[1,2276],$Vnf=[1,2284],$Vof=[1,2281],$Vpf=[1,2280],$Vqf=[1,2282],$Vrf=[1,2277],$Vsf=[1,2270],$Vtf=[1,2278],$Vuf=[1,2292],$Vvf=[1,2293],$Vwf=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,729,731,732,734,735,736,737,738,741,742,752,753,754,756,757,758,759,762,764,765,770,771,772,773,778,780,781,787,788,789,791,793,798,800,804,807,808,893,901],$Vxf=[107,152,544,547,690],$Vyf=[2,2212],$Vzf=[1,2358],$VAf=[2,1088],$VBf=[27,161,544,690,727],$VCf=[161,544,690],$VDf=[161,544,690,727],$VEf=[2,1765],$VFf=[118,499,544,615,690,742,756,773,781,800,808,893],$VGf=[2,2449],$VHf=[1,2390],$VIf=[2,1953],$VJf=[2,118,544,568,569,570,571,572,573,574,575,615,690,742,756,773,781,800,808,893],$VKf=[1,2395],$VLf=[2,118,544,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,808,893],$VMf=[2,2053],$VNf=[2,118,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,781,800,808,893],$VOf=[544,615,620,690,742,756,765,773,781,807,808,893],$VPf=[2,1184],$VQf=[1,2406],$VRf=[208,755,761,799],$VSf=[2,2225],$VTf=[2,1211],$VUf=[1,2455],$VVf=[1,2463],$VWf=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,729,732,734,735,742,754,756,758,759,764,765,773,778,780,781,787,791,800,807,808,893,901],$VXf=[2,2056],$VYf=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,729,732,734,735,742,754,756,758,759,764,765,773,778,780,781,800,807,808,893,901],$VZf=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,726,729,732,734,735,742,754,756,758,759,764,765,773,778,780,781,800,807,808,893,901],$V_f=[2,2057],$V$f=[2,2058],$V0g=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,787,791,800,807,808,893,901],$V1g=[2,2059],$V2g=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,800,807,808,893,901],$V3g=[1,2490],$V4g=[1,2502],$V5g=[1,2500],$V6g=[1,2498],$V7g=[1,2501],$V8g=[1,2505],$V9g=[2,27,663,758,759],$Vag=[2,758,759],$Vbg=[1,2518],$Vcg=[1,2524],$Vdg=[1,2525],$Veg=[1,2532],$Vfg=[1,2533],$Vgg=[1,2534],$Vhg=[1,2539],$Vig=[1,2545],$Vjg=[1,2546],$Vkg=[1,2547],$Vlg=[1,2548],$Vmg=[1,2549],$Vng=[1,2550],$Vog=[1,2551],$Vpg=[1,2552],$Vqg=[1,2553],$Vrg=[1,2556],$Vsg=[1,2560],$Vtg=[1,2559],$Vug=[1,2563],$Vvg=[27,535,544,690],$Vwg=[27,544,690,807],$Vxg=[2,2730],$Vyg=[1,2581],$Vzg=[544,690,807],$VAg=[1,2584],$VBg=[27,123,535,544,663,690,807],$VCg=[535,544,690,807],$VDg=[123,535,544,690,807],$VEg=[2,27,118,123,126,277],$VFg=[2,1828],$VGg=[1,2590],$VHg=[1,2603],$VIg=[1,2608],$VJg=[1,2610],$VKg=[1,2612],$VLg=[2,390],$VMg=[1,2632],$VNg=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,615,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723],$VOg=[27,108,129,277],$VPg=[2,746],$VQg=[108,129,277],$VRg=[1,2640],$VSg=[78,107,108,116,129,152,277,307,376,382,409,544,690,704],$VTg=[1,2652],$VUg=[2,1726],$VVg=[1,2656],$VWg=[1,2657],$VXg=[2,874],$VYg=[1,2666],$VZg=[2,2585],$V_g=[1,2677],$V$g=[2,2625],$V0h=[2,2645],$V1h=[1,2686],$V2h=[2,2691],$V3h=[27,161,544,690],$V4h=[2,1813],$V5h=[1,2718],$V6h=[1,2717],$V7h=[1,2736],$V8h=[2,152],$V9h=[27,108,129,152,277,499,544,547,615,690,704],$Vah=[2,690],$Vbh=[1,2749],$Vch=[2,27,108,129,152,161,277,499,544,690],$Vdh=[27,384],$Veh=[2,608],$Vfh=[78,107,108,129,152,384,409,544,690,704],$Vgh=[1,2757],$Vhh=[1,2766],$Vih=[1,2767],$Vjh=[2,118,123,544,690],$Vkh=[2,1808],$Vlh=[27,123,532,544,690],$Vmh=[532,544,690],$Vnh=[2,179],$Voh=[1,2779],$Vph=[1,2780],$Vqh=[2,225],$Vrh=[2,286],$Vsh=[1,2795],$Vth=[1,2796],$Vuh=[1,2797],$Vvh=[2,896],$Vwh=[116,152,544,547,615,690],$Vxh=[27,152,544,547,690],$Vyh=[2,645],$Vzh=[1,2811],$VAh=[1,2817],$VBh=[2,107,108,129,152,153,161,227,277,384,409,544,547,615,690,704],$VCh=[1,2826],$VDh=[2,561],$VEh=[1,2830],$VFh=[1,2831],$VGh=[2,27,88,118,123,174,175,277,317,320,321,323,373,374,544,690,695,709],$VHh=[1,2838],$VIh=[2,27,118,123,177,333,373,374,544,690],$VJh=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,737,768],$VKh=[2,2530],$VLh=[1,2851],$VMh=[2,27,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VNh=[1,2860],$VOh=[1,2861],$VPh=[27,707,791],$VQh=[2,1078],$VRh=[2,1013],$VSh=[2,55,78,107,108,118,123,129,152,177,333,373,374,382,384,396,397,409,544,547,615,690,704],$VTh=[1,2887],$VUh=[1,2888],$VVh=[1,2890],$VWh=[1,2896],$VXh=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,1010],$VYh=[1,2935],$VZh=[1,2941],$V_h=[152,544,547,690],$V$h=[2,1086],$V0i=[2,1089],$V1i=[118,499,544,615,690,742,756,773,781,800,893],$V2i=[2,2454],$V3i=[1,2985],$V4i=[2,2450],$V5i=[2,118,544,568,569,570,571,572,573,574,575,615,690,742,756,773,781,800,893],$V6i=[1,2990],$V7i=[742,756,773,781,808,893],$V8i=[2,118,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,781,800,893],$V9i=[1,3013],$Vai=[1,3014],$Vbi=[1,3016],$Vci=[1,3015],$Vdi=[2,2226],$Vei=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,729,732,734,735,742,754,756,758,759,764,765,773,778,780,781,787,791,800,807,808,893,901],$Vfi=[2,2066],$Vgi=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,729,732,734,735,742,754,756,758,759,764,765,773,778,780,781,800,807,808,893,901],$Vhi=[2,2067],$Vii=[2,2068],$Vji=[2,2069],$Vki=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,726,729,732,734,735,742,754,756,758,759,764,765,773,778,780,781,800,807,808,893,901],$Vli=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,729,732,734,742,754,756,758,759,764,765,773,778,780,781,787,791,800,807,808,893,901],$Vmi=[2,2076],$Vni=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,729,732,734,742,754,756,758,759,764,765,773,778,780,781,800,807,808,893,901],$Voi=[2,2077],$Vpi=[2,2078],$Vqi=[2,2079],$Vri=[2,2080],$Vsi=[2,1212],$Vti=[2,2739],$Vui=[2,2740],$Vvi=[2,2741],$Vwi=[1,3048],$Vxi=[2,663,758,759],$Vyi=[1,3067],$Vzi=[1,3069],$VAi=[1,3071],$VBi=[27,118,123,781],$VCi=[2,2172],$VDi=[2,118,781],$VEi=[118,781],$VFi=[2,2405],$VGi=[1,3083],$VHi=[27,783],$VIi=[1,3084],$VJi=[1,3099],$VKi=[1,3100],$VLi=[1,3103],$VMi=[1,3102],$VNi=[1,3112],$VOi=[2,1246],$VPi=[1,3117],$VQi=[1,3143],$VRi=[2,1939],$VSi=[2,933],$VTi=[1,3158],$VUi=[2,935],$VVi=[1,3165],$VWi=[2,380],$VXi=[2,27,78,107,108,118,123,129,152,161,174,175,349,376,382,396,409,499,544,690,695,704,709],$VYi=[2,152,704],$VZi=[27,108,129],$V_i=[129,544,690],$V$i=[108,129],$V0j=[27,107,108,129,277,376,382,396,409,704],$V1j=[2,715],$V2j=[2,737],$V3j=[1,3203],$V4j=[2,868],$V5j=[2,2638],$V6j=[2,239],$V7j=[1,3249],$V8j=[1,3252],$V9j=[1,3254],$Vaj=[118,123],$Vbj=[2,118,123],$Vcj=[1,3259],$Vdj=[2,155],$Vej=[27,108,129,499,544,690,704],$Vfj=[1,3274],$Vgj=[1,3287],$Vhj=[1,3289],$Vij=[2,202],$Vjj=[2,159],$Vkj=[27,544,690,695,709],$Vlj=[2,215],$Vmj=[1,3309],$Vnj=[1,3310],$Voj=[544,690,695,709],$Vpj=[1,3345],$Vqj=[1,3346],$Vrj=[1,3347],$Vsj=[1,3348],$Vtj=[1,3336],$Vuj=[1,3341],$Vvj=[1,3343],$Vwj=[1,3329],$Vxj=[1,3330],$Vyj=[1,3331],$Vzj=[1,3332],$VAj=[1,3333],$VBj=[1,3334],$VCj=[1,3335],$VDj=[1,3337],$VEj=[1,3338],$VFj=[1,3339],$VGj=[1,3340],$VHj=[1,3342],$VIj=[1,3344],$VJj=[2,183],$VKj=[1,3350],$VLj=[2,436],$VMj=[2,278],$VNj=[1,3356],$VOj=[27,85],$VPj=[1,3358],$VQj=[1,3371],$VRj=[1,3375],$VSj=[1,3376],$VTj=[1,3383],$VUj=[2,542],$VVj=[2,27,88,118,123,174,175,277,317,320,321,323,544,690,695,709],$VWj=[1,3389],$VXj=[1,3390],$VYj=[1,3391],$VZj=[1,3392],$V_j=[1,3398],$V$j=[2,2292],$V0k=[2,1012],$V1k=[1,3416],$V2k=[2,1014],$V3k=[1,3437],$V4k=[2,118,123,781],$V5k=[228,230,544,690],$V6k=[2,332],$V7k=[1,3473],$V8k=[118,499,544,615,690,742,756,773,800,893],$V9k=[2,1991],$Vak=[1,3488],$Vbk=[2,2455],$Vck=[2,118,544,568,569,570,571,572,573,574,575,615,690,742,756,773,800,893],$Vdk=[1,3493],$Vek=[742,756,773,781,893],$Vfk=[2,2451],$Vgk=[2,1959],$Vhk=[1,3514],$Vik=[1,3515],$Vjk=[2,27,118,123,152,499,544,615,690,742,756,764,765,773,781,800,808,893],$Vkk=[2,1979],$Vlk=[2,118,152,544,568,569,570,571,572,573,574,575,615,690,742,756,764,765,773,781,800,808,893],$Vmk=[1,3527],$Vnk=[2,118,123,152,499,544,568,569,570,571,572,573,574,575,615,690,742,756,764,765,773,781,800,808,893],$Vok=[2,118,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,800,893],$Vpk=[1,3538],$Vqk=[1,3537],$Vrk=[27,667],$Vsk=[2,1225],$Vtk=[1,3557],$Vuk=[1,3571],$Vvk=[2,2411],$Vwk=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,783,788,789,800,807,808,893,901],$Vxk=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,788,789,800,807,808,893,901],$Vyk=[1,3606],$Vzk=[1,3610],$VAk=[1,3614],$VBk=[2,1254],$VCk=[2,2703],$VDk=[2,2728],$VEk=[1,3640],$VFk=[2,398],$VGk=[1,3651],$VHk=[27,108],$VIk=[2,695],$VJk=[1,3658],$VKk=[1,3661],$VLk=[27,118,123],$VMk=[1,3666],$VNk=[1,3670],$VOk=[2,728],$VPk=[1,3677],$VQk=[1,3678],$VRk=[1,3679],$VSk=[1,3684],$VTk=[2,797],$VUk=[27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,1010],$VVk=[1,3685],$VWk=[2,2668],$VXk=[2,61],$VYk=[2,240],$VZk=[2,118,177,333,373,374,544,690],$V_k=[2,264],$V$k=[1,3709],$V0l=[1,3713],$V1l=[108,129,544,690,704],$V2l=[27,152],$V3l=[1,3741],$V4l=[2,1807],$V5l=[1,3745],$V6l=[2,27,118,123,174,175,277,544,690,695,709],$V7l=[2,449],$V8l=[1,3758],$V9l=[1,3756],$Val=[1,3757],$Vbl=[1,3759],$Vcl=[1,3760],$Vdl=[2,118,123,174,175,277,544,690,695,709],$Vel=[2,27,88,118,123,174,175,277,317,320,321,323,349,544,690,695,709],$Vfl=[2,88,118,123,174,175,277,317,320,321,323,349,544,690,695,709],$Vgl=[2,1874],$Vhl=[1,3764],$Vil=[27,78,107,108,129,152,161,277,376,382,409,499,544,690,695,704,709],$Vjl=[1,3774],$Vkl=[1,3785],$Vll=[78,107,108,129,152,277,376,382,409,544,690,695,704,709],$Vml=[1,3790],$Vnl=[27,107,108,129,152,208,277,351,443,446,499,544,547,646,690,704],$Vol=[2,666],$Vpl=[107,108,129,152,208,277,351,443,446,499,544,547,615,690,704],$Vql=[1,3822],$Vrl=[1,3825],$Vsl=[1,3836],$Vtl=[1,3866],$Vul=[230,544,690],$Vvl=[2,336],$Vwl=[2,333],$Vxl=[1,3877],$Vyl=[1,3878],$Vzl=[2,1090],$VAl=[118,499,544,615,690,773,800],$VBl=[2,2015],$VCl=[1,3900],$VDl=[1,3901],$VEl=[1,3902],$VFl=[2,1992],$VGl=[2,118,544,568,569,570,571,572,573,574,575,615,690,773,800],$VHl=[1,3908],$VIl=[1,3909],$VJl=[1,3910],$VKl=[742,756,773,893],$VLl=[2,27,118,499,544,568,569,570,571,572,573,574,575,615,690,742,756,765,773,781,800,808,893],$VMl=[1,3938],$VNl=[1,3939],$VOl=[2,118,499,544,568,569,570,571,572,573,574,575,615,690,773,800],$VPl=[1,3960],$VQl=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,729,732,734,735,742,754,756,758,759,764,765,773,778,780,781,787,791,800,807,808,893,901],$VRl=[2,2075],$VSl=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,729,732,734,735,742,754,756,758,759,764,765,773,778,780,781,800,807,808,893,901],$VTl=[2,2770],$VUl=[2,2173],$VVl=[2,2416],$VWl=[1,3985],$VXl=[1,3984],$VYl=[1,3999],$VZl=[2,1275],$V_l=[2,936],$V$l=[2,934],$V0m=[27,78,107,108,129,152,161,277,376,382,409,499,544,690,704],$V1m=[2,425],$V2m=[78,107,108,129,152,277,376,382,409,544,690,704],$V3m=[1,4029],$V4m=[2,27,544,690],$V5m=[27,108,277,499,544,690],$V6m=[129,277,544,690],$V7m=[2,750],$V8m=[2,575],$V9m=[107,129,382,396,409,544,690,704],$Vam=[1,4045],$Vbm=[27,123,544,690],$Vcm=[2,66],$Vdm=[1,4074],$Vem=[27,78,107,108,129,152,384,409,544,690,704],$Vfm=[2,161],$Vgm=[2,27,118,123,174,175,544,690,695,709],$Vhm=[2,27,88,118,123,174,175,277,317,320,321,323,333,373,374,544,690,695,709],$Vim=[2,467],$Vjm=[1,4098],$Vkm=[1,4099],$Vlm=[2,118,123,174,175,544,690,695,709],$Vmm=[1,4113],$Vnm=[1,4119],$Vom=[1,4117],$Vpm=[1,4127],$Vqm=[1,4121],$Vrm=[1,4129],$Vsm=[2,437],$Vtm=[2,530],$Vum=[2,531],$Vvm=[1,4142],$Vwm=[1,4148],$Vxm=[1,4149],$Vym=[27,123,152,544,547,663,690],$Vzm=[2,672],$VAm=[107,108,129,152,208,277,351,446,544,547,615,690,704],$VBm=[1,4156],$VCm=[1,4173],$VDm=[2,953],$VEm=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],$VFm=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,563,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,800,807,808,893],$VGm=[2,340],$VHm=[1,4198],$VIm=[2,337],$VJm=[1,4201],$VKm=[2,1087],$VLm=[2,1091],$VMm=[118,499,544,615,690,800],$VNm=[2,2046],$VOm=[2,2016],$VPm=[2,118,544,568,569,570,571,572,573,574,575,615,690,800],$VQm=[1,4217],$VRm=[2,27,118,499,544,568,569,570,571,572,573,574,575,615,690,773,800],$VSm=[2,27,118,499,544,615,690,773,800],$VTm=[2,2018],$VUm=[2,1980],$VVm=[2,118,123,152,544,568,569,570,571,572,573,574,575,615,690,742,756,764,765,773,781,800,808,893],$VWm=[2,118,499,544,568,569,570,571,572,573,574,575,615,690,800],$VXm=[2,2063],$VYm=[2,2074],$VZm=[1,4284],$V_m=[27,735,1004],$V$m=[2,2407],$V0n=[1,4300],$V1n=[27,78,107,108,129,152,382,409,499,544,690,704],$V2n=[2,566],$V3n=[78,107,108,129,152,382,409,544,690,704],$V4n=[1,4316],$V5n=[2,592],$V6n=[107,129,409,544,690,704],$V7n=[1,4339],$V8n=[1,4340],$V9n=[27,107,108,129,382,396,409,544,690,704],$Van=[1,4352],$Vbn=[1,4357],$Vcn=[27,78,107,108,129,152,409,499,544,690,704],$Vdn=[1,4369],$Ven=[2,2007],$Vfn=[1,4374],$Vgn=[1,4375],$Vhn=[1,4378],$Vin=[1,4380],$Vjn=[2,27,88,118,123,174,175,176,177,277,317,320,321,323,333,373,374,544,690,695,709],$Vkn=[1,4396],$Vln=[1,4395],$Vmn=[1,4402],$Vnn=[1,4401],$Von=[2,123,349],$Vpn=[1,4407],$Vqn=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,347,349,351,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,736,737,738,741,752,753,757,762,770,771,793,798,804,810],$Vrn=[1,4409],$Vsn=[1,4408],$Vtn=[1,4414],$Vun=[1,4415],$Vvn=[1,4416],$Vwn=[1,4417],$Vxn=[1,4421],$Vyn=[2,677],$Vzn=[107,108,129,152,208,277,446,544,547,615,690,704],$VAn=[1,4437],$VBn=[107,108,129,152,208,277,351,443,446,544,547,615,690,704],$VCn=[1,4452],$VDn=[1,4454],$VEn=[1,4457],$VFn=[2,2532],$VGn=[27,118],$VHn=[2,2318],$VIn=[118,123,544,690],$VJn=[2,2047],$VKn=[1,4480],$VLn=[1,4479],$VMn=[1,4499],$VNn=[2,1993],$VOn=[2,27,118,123,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,787,791,800,893],$VPn=[2,118,123,544,568,569,570,571,572,573,574,575,615,690,742,756,773,778,800,893],$VQn=[1,4514],$VRn=[2,1968],$VSn=[1,4532],$VTn=[1,4537],$VUn=[27,544,663,690],$VVn=[1,4548],$VWn=[27,118,150,385,751,1004],$VXn=[2,2426],$VYn=[2,118,150,385,751,1004],$VZn=[418,544,690],$V_n=[2,582],$V$n=[2,751],$V0o=[2,633],$V1o=[1,4582],$V2o=[107,129,544,690,704],$V3o=[1,4584],$V4o=[27,107,108,129,409,544,690,704],$V5o=[27,107,129,277,409,487,488,544,690,704],$V6o=[2,778],$V7o=[107,129,277,409,487,488,544,690,704],$V8o=[1,4604],$V9o=[108,544,690],$Vao=[2,550],$Vbo=[2,620],$Vco=[2,27,118,123,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,778,787,791,800,893],$Vdo=[2,532],$Veo=[2,118,177,333,373,374],$Vfo=[2,682],$Vgo=[107,108,129,152,208,277,544,547,615,690,704],$Vho=[1,4650],$Vio=[1,4665],$Vjo=[2,27,118,499,544,568,569,570,571,572,573,574,575,615,690,800],$Vko=[2,2026],$Vlo=[2,2030],$Vmo=[2,2034],$Vno=[2,27,118,123,499,544,568,569,570,571,572,573,574,575,615,690,773,800],$Voo=[2,118,123,544,568,569,570,571,572,573,574,575,615,690,773,800],$Vpo=[1,4687],$Vqo=[2,2010],$Vro=[2,118,123,544,568,569,570,571,572,573,574,575,615,690,742,756,773,800,893],$Vso=[1,4695],$Vto=[1,4699],$Vuo=[1,4700],$Vvo=[1,4705],$Vwo=[27,118,150],$Vxo=[2,2436],$Vyo=[1,4715],$Vzo=[1,4714],$VAo=[1,4716],$VBo=[2,118,150],$VCo=[1,4721],$VDo=[2,1250],$VEo=[1,4729],$VFo=[27,107,108,129,152,409,499,544,690,704],$VGo=[2,624],$VHo=[107,108,129,152,409,544,690,704],$VIo=[1,4742],$VJo=[2,639],$VKo=[1,4754],$VLo=[129,544,690,704],$VMo=[1,4758],$VNo=[27,107,108,129,152,277,499,544,690,704],$VOo=[27,107,129,277,409,488,544,690,704],$VPo=[2,782],$VQo=[1,4773],$VRo=[107,129,277,409,488,544,690,704],$VSo=[2,686],$VTo=[107,108,129,152,277,544,547,615,690,704],$VUo=[1,4803],$VVo=[1,4812],$VWo=[2,667],$VXo=[2,2319],$VYo=[1,4831],$VZo=[1,4832],$V_o=[1,4835],$V$o=[2,1228],$V0p=[2,2441],$V1p=[1,4842],$V2p=[1,4843],$V3p=[1,4845],$V4p=[27,763,786],$V5p=[2,1234],$V6p=[107,108,129,152,544,690,704],$V7p=[27,108,129,152,277,499,544,690,704],$V8p=[1,4873],$V9p=[108,129,152,277,544,690,704],$Vap=[107,108,129,152,277,544,690,704],$Vbp=[1,4881],$Vcp=[27,107,129,277,409,544,690,704],$Vdp=[2,784],$Vep=[107,129,277,409,544,690,704],$Vfp=[1,4892],$Vgp=[1,4893],$Vhp=[27,107,108,129,152,277,499,544,547,615,646,690,704],$Vip=[1,4907],$Vjp=[1,4909],$Vkp=[1,4912],$Vlp=[2,2418],$Vmp=[2,27,118,150],$Vnp=[1,4927],$Vop=[108,129,152,544,690,704],$Vpp=[107,129,277,544,690,704],$Vqp=[1,4960],$Vrp=[1,4970],$Vsp=[1,4972],$Vtp=[1,4981],$Vup=[1,4989],$Vvp=[129,277,544,690,704],$Vwp=[1,5003],$Vxp=[2,27,118],$Vyp=[108,129,544,690],$Vzp=[2,703],$VAp=[277,544,690],$VBp=[499,544,690],$VCp=[2,698],$VDp=[2,757]; -var parser = {trace: function trace () { }, -yy: {}, -symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"AnalyzeStatement":5,"CreateStatement":6,"DropStatement":7,"AbortStatement":8,"GrantStatement":9,"RevokeStatement":10,"DescribeStatement":11,"SetRoleStatement":12,"SetSpecification":13,"ShowStatement":14,"UseStatement":15,"DataDefinition_EDIT":16,"AlterStatement_EDIT":17,"AnalyzeStatement_EDIT":18,"CreateStatement_EDIT":19,"DropStatement_EDIT":20,"AbortStatement_EDIT":21,"GrantStatement_EDIT":22,"RevokeStatement_EDIT":23,"DescribeStatement_EDIT":24,"SetRoleStatement_EDIT":25,"SET":26,"CURSOR":27,"ShowStatement_EDIT":28,"UseStatement_EDIT":29,"AlterDatabase":30,"AlterIndex":31,"AlterMaterializedView":32,"AlterTable":33,"AlterView":34,"Msck":35,"ReloadFunction":36,"AlterDatabase_EDIT":37,"AlterIndex_EDIT":38,"AlterMaterializedView_EDIT":39,"AlterTable_EDIT":40,"AlterView_EDIT":41,"Msck_EDIT":42,"ReloadFunction_EDIT":43,"ALTER":44,"DatabaseOrSchema":45,"RegularOrBacktickedIdentifier":46,"DBPROPERTIES":47,"ParenthesizedPropertyAssignmentList":48,"HdfsLocation":49,"OWNER":50,"PrincipalSpecification":51,"HdfsLocation_EDIT":52,"PrincipalSpecification_EDIT":53,"INDEX":54,"ON":55,"SchemaQualifiedTableIdentifier":56,"OptionalPartitionSpec":57,"REBUILD":58,"SchemaQualifiedTableIdentifier_EDIT":59,"OptionalPartitionSpec_EDIT":60,"MATERIALIZED":61,"VIEW":62,"EnableOrDisable":63,"REWRITE":64,"AlterTableLeftSide":65,"ADD":66,"OptionalIfNotExists":67,"PartitionSpec":68,"OptionalHdfsLocation":69,"OptionalPartitionSpecs":70,"CONSTRAINT":71,"PrimaryKeySpecification":72,"TableConstraint":73,"RENAME":74,"TO":75,"RegularOrBackTickedSchemaQualifiedName":76,"ClusteredBy":77,"SKEWED":78,"BY":79,"ParenthesizedColumnList":80,"ParenthesizedSkewedValueList":81,"OptionalStoredAsDirectories":82,"ExchangeSpecification":83,"RECOVER":84,"PARTITIONS":85,"TOUCH":86,"ArchiveOrUnArchive":87,"NOT":88,"STORED_AS_DIRECTORIES":89,"SKEWED_LOCATION":90,"ParenthesizedSkewedLocationList":91,"CHANGE":92,"COLUMN":93,"ParenthesizedColumnSpecificationList":94,"OptionalCascadeOrRestrict":95,"DropOperations":96,"OptionalPartitionOperations":97,"AlterTableLeftSide_EDIT":98,"REPLACE":99,"OptionalIfNotExists_EDIT":100,"OptionalPartitionSpecs_EDIT":101,"PartitionSpec_EDIT":102,"PrimaryKeySpecification_EDIT":103,"ForeignKeySpecification_EDIT":104,"ClusteredBy_EDIT":105,"ExchangeSpecification_EDIT":106,"STORED":107,"AS":108,"ParenthesizedSkewedLocationList_EDIT":109,"ParenthesizedColumnList_EDIT":110,"OptionalStoredAsDirectories_EDIT":111,"OptionalPartitionOperations_EDIT":112,"DropOperations_EDIT":113,"AddOrReplace":114,"ParenthesizedStatsList":115,"(":116,"StatsList":117,")":118,"ParenthesizedStatsList_EDIT":119,"StatsList_EDIT":120,"RightParenthesisOrError":121,"StatsAssignment":122,",":123,"StatsAssignment_EDIT":124,"QuotedValue":125,"=":126,"FILEFORMAT":127,"FileFormat":128,"TBLPROPERTIES":129,"SERDE":130,"OptionalWithSerdeproperties":131,"SERDEPROPERTIES":132,"AddReplaceColumns":133,"CONCATENATE":134,"COMPACT":135,"OptionalAndWait":136,"OptionalWithOverwriteTblProperties":137,"NoDropOrOffline":138,"OptionalColumn":139,"ColumnIdentifier":140,"ColumnSpecification":141,"OptionalAfterOrFirst":142,"AddReplaceColumns_EDIT":143,"ColumnSpecification_EDIT":144,"OptionalAfterOrFirst_EDIT":145,"AndWait_EDIT":146,"WithOverwriteTblProperties_EDIT":147,"NoDropOrOffline_EDIT":148,"WithSerdeproperties_EDIT":149,"AND":150,"WAIT":151,"WITH":152,"OVERWRITE":153,"COLUMNS":154,"ParenthesizedColumnSpecificationList_EDIT":155,"EXCHANGE":156,"ExchangePartitionSpec":157,"TABLE":158,"RegularOrBackTickedSchemaQualifiedName_EDIT":159,"ExchangePartitionSpec_EDIT":160,"PARTITION":161,"OneOrMorePartitionSpecLists":162,"PartitionSpecList":163,"OneOrMorePartitionSpecLists_EDIT":164,"PartitionSpecList_EDIT":165,"DROP":166,"OptionalIfExists":167,"OneOrMorePartitionSpecs":168,"OptionalPurge":169,"OneOrMorePartitionSpecs_EDIT":170,"OptionalIfExists_EDIT":171,"ColumnIdentifier_EDIT":172,"AfterOrFirst":173,"AFTER":174,"FIRST":175,"ENABLE":176,"DISABLE":177,"NO_DROP":178,"OptionalCascade":179,"OFFLINE":180,"ARCHIVE":181,"UNARCHIVE":182,"AnyCursor":183,"PartitionSpecWithLocationList":184,"PartitionSpecWithLocation":185,"PartitionSpecWithLocation_EDIT":186,"SkewedLocationList":187,"SkewedLocationList_EDIT":188,"SkewedLocation":189,"SkewedLocation_EDIT":190,"ColumnReference":191,"ColumnReference_EDIT":192,"ColumnReferences":193,"AlterViewLeftSide":194,"QuerySpecification":195,"AlterViewLeftSide_EDIT":196,"QuerySpecification_EDIT":197,"MSCK":198,"OptionalRepair":199,"OptionalAddDropSyncPartitions":200,"AddDropSyncPartitions_EDIT":201,"REPAIR":202,"AddDropOrSync":203,"SYNC":204,"RELOAD":205,"FUNCTION":206,"NullableComment":207,"NULL":208,"SqlStatement":209,"ExplainClause":210,"DataManipulation":211,"SqlStatement_EDIT":212,"ExplainClause_EDIT":213,"DataManipulation_EDIT":214,"CommonTableExpression":215,"SetSpecification_EDIT":216,"ANALYZE":217,"COMPUTE":218,"STATISTICS":219,"OptionalForColumns":220,"OptionalCacheMetadata":221,"OptionalNoscan":222,"ForColumns":223,"CacheMetadata":224,"ForColumns_EDIT":225,"CacheMetadata_EDIT":226,"FOR":227,"CACHE":228,"METADATA":229,"NOSCAN":230,"EXPLAIN":231,"OptionalExplainTypes":232,"FORMATTED":233,"AST":234,"AUTHORIZATION":235,"CBO":236,"OptionalCostOrJoincost":237,"DEPENDENCY":238,"EXTENDED":239,"LOCKS":240,"VECTORIZATION":241,"OptionalOnly":242,"OptionalVectorizationTypes":243,"COST":244,"JOINCOST":245,"ONLY":246,"DETAIL":247,"EXPRESSION":248,"OPERATOR":249,"SUMMARY":250,"DatabaseDefinition":251,"TableDefinition":252,"ViewDefinition":253,"MaterializedViewDefinition":254,"RoleDefinition":255,"FunctionDefinition":256,"IndexDefinition":257,"MacroDefinition":258,"DatabaseDefinition_EDIT":259,"TableDefinition_EDIT":260,"ViewDefinition_EDIT":261,"MaterializedViewDefinition_EDIT":262,"FunctionDefinition_EDIT":263,"IndexDefinition_EDIT":264,"MacroDefinition_EDIT":265,"CREATE":266,"OptionalTemporary":267,"OptionalTransactional":268,"OptionalExternal":269,"RegularIdentifier":270,"DatabaseDefinitionOptionals":271,"DatabaseDefinitionOptionals_EDIT":272,"OptionalComment":273,"OptionalDbProperties":274,"OptionalComment_INVALID":275,"Comment":276,"COMMENT":277,"Comment_INVALID":278,"SINGLE_QUOTE":279,"DOUBLE_QUOTE":280,"VALUE":281,"DbProperties":282,"PropertyAssignmentList":283,"PropertyAssignment":284,"UnsignedValueSpecification":285,"TableDefinitionRightPart":286,"LifeCyclePart":287,"TableDefinitionRightPart_EDIT":288,"TableIdentifierAndOptionalColumnSpecification":289,"OptionalPartitionedBy":290,"OptionalClusteredBy":291,"OptionalSkewedBy":292,"OptionalRowFormat":293,"OptionalStoredAsOrBy":294,"OptionalTblproperties":295,"OptionalAsSelectStatement":296,"TableIdentifierAndOptionalColumnSpecification_EDIT":297,"PartitionedBy_EDIT":298,"SkewedBy_EDIT":299,"RowFormat_EDIT":300,"StoredAsOrBy_EDIT":301,"AsSelectStatement_EDIT":302,"SchemaQualifiedIdentifier":303,"OptionalColumnSpecificationsOrLike":304,"OptionalColumnSpecificationsOrLike_EDIT":305,"SchemaQualifiedIdentifier_EDIT":306,"LIKE":307,"ColumnSpecificationList":308,"TableConstraints":309,"ColumnSpecificationList_EDIT":310,"TableConstraints_EDIT":311,"ColumnDataType":312,"OptionalColumnOptions":313,"ColumnDataType_EDIT":314,"ColumnOptions":315,"ColumnOption":316,"PRIMARY":317,"KEY":318,"ColumnOptionOptionals":319,"UNIQUE":320,"DEFAULT":321,"DefaultValue":322,"CHECK":323,"ValueExpression":324,"OptionalEnableOrDisable":325,"OptionalNovalidate":326,"OptionalRelyOrNorely":327,"LITERAL":328,"CURRENT_USER":329,"CURRENT_DATE":330,"CURRENT_TIMESTAMP":331,"OptionalDisable":332,"NOVALIDATE":333,"PrimitiveType":334,"ArrayType":335,"MapType":336,"StructType":337,"UnionType":338,"ArrayType_INVALID":339,"MapType_INVALID":340,"StructType_INVALID":341,"UnionType_INVALID":342,"ArrayType_EDIT":343,"MapType_EDIT":344,"StructType_EDIT":345,"UnionType_EDIT":346,"ARRAY":347,"<":348,">":349,"GreaterThanOrError":350,"MAP":351,"STRUCT":352,"StructDefinitionList":353,"StructDefinitionList_EDIT":354,"StructDefinition":355,"StructDefinition_EDIT":356,"Commas":357,":":358,"UNIONTYPE":359,"ColumnDataTypeList":360,"ColumnDataTypeList_EDIT":361,"ColumnDataTypeListInner_EDIT":362,"ConstraintList":363,"ConstraintList_EDIT":364,"TableConstraint_EDIT":365,"TableConstraintLeftPart":366,"TableConstraintLeftPart_EDIT":367,"ForeignKeySpecification":368,"PrimaryKey":369,"PrimaryKey_EDIT":370,"FOREIGN":371,"REFERENCES":372,"RELY":373,"NORELY":374,"PartitionedBy":375,"PARTITIONED":376,"OptionalPartitionedOn":377,"PartitionedOn":378,"PartitionedOn_EDIT":379,"LessThanOrEqualTo":380,"COMPARISON_OPERATOR":381,"CLUSTERED":382,"OptionalSortedBy":383,"INTO":384,"UNSIGNED_INTEGER":385,"BUCKETS":386,"OptionalSortedBy_EDIT":387,"OptionalClusteredOrDistributedOn":388,"ClusteredOn":389,"DistributedOn":390,"SortedOn":391,"ClusteredOrDistributedOn_EDIT":392,"ClusteredOn_EDIT":393,"DistributedOn_EDIT":394,"SortedOn_EDIT":395,"DISTRIBUTED":396,"SORTED":397,"ParenthesizedSortList":398,"ParenthesizedSortList_EDIT":399,"SortList":400,"SortList_EDIT":401,"SortIdentifier":402,"SortIdentifier_EDIT":403,"OptionalAscOrDesc":404,"SkewedBy":405,"SkewedValueList":406,"ParenthesizedSimpleValueList":407,"RowFormat":408,"ROW":409,"FORMAT":410,"RowFormatSpec":411,"RowFormatSpec_EDIT":412,"StoredAsOrBy":413,"StoredAs":414,"StoredAs_EDIT":415,"OptionalStoredAs":416,"AVRO":417,"INPUTFORMAT":418,"OUTPUTFORMAT":419,"JSONFILE":420,"ORC":421,"PARQUET":422,"RCFILE":423,"SEQUENCEFILE":424,"TEXTFILE":425,"DelimitedRowFormat":426,"DelimitedRowFormat_EDIT":427,"DELIMITED":428,"OptionalFieldsTerminatedBy":429,"OptionalCollectionItemsTerminatedBy":430,"OptionalMapKeysTerminatedBy":431,"OptionalLinesTerminatedBy":432,"OptionalNullDefinedAs":433,"OptionalFieldsTerminatedBy_EDIT":434,"OptionalCollectionItemsTerminatedBy_EDIT":435,"OptionalMapKeysTerminatedBy_EDIT":436,"OptionalLinesTerminatedBy_EDIT":437,"OptionalNullDefinedAs_EDIT":438,"FIELDS":439,"TERMINATED":440,"SingleQuotedValue":441,"ESCAPED":442,"COLLECTION":443,"ITEMS":444,"KEYS":445,"LINES":446,"DEFINED":447,"WithSerdeproperties":448,"TblProperties":449,"AsSelectStatement":450,"CommitLocations":451,"OptionalDisableRewrite":452,"DisableRewrite_EDIT":453,"OptionalParenthesizedViewColumnList":454,"ParenthesizedViewColumnList_EDIT":455,"TemporaryFunction":456,"OptionalUsing":457,"TemporaryFunction_EDIT":458,"OptionalUsing_EDIT":459,"TEMPORARY":460,"FunctionReference":461,"FunctionReference_EDIT":462,"SingleQuotedValue_EDIT":463,"USING":464,"OneOrMoreFunctionResources":465,"FunctionResource":466,"FunctionResourceType":467,"FILE":468,"JAR":469,"ParenthesizedViewColumnList":470,"ViewColumnList":471,"ViewColumnList_EDIT":472,"ROLE":473,"ExistingTable":474,"ParenthesizedIndexColumnList":475,"IndexType":476,"OptionalWithDeferredRebuild":477,"OptionalIdxProperties":478,"OptionalInTable":479,"ExistingTable_EDIT":480,"ParenthesizedIndexColumnList_EDIT":481,"IndexType_EDIT":482,"OptionalWithDeferredRebuild_EDIT":483,"OptionalInTable_EDIT":484,"QuotedValue_EDIT":485,"DEFERRED":486,"IDXPROPERTIES":487,"IN":488,"IndexColumnList":489,"IndexColumnList_EDIT":490,"MACRO":491,"MacroArguments":492,"MacroArguments_EDIT":493,"ValueExpression_EDIT":494,"MacroArgumentList":495,"MacroArgumentList_EDIT":496,"MacroArgument":497,"MacroArgument_EDIT":498,"LIFECYCLE":499,"DeleteStatement":500,"InsertStatement":501,"MergeStatement":502,"LoadStatement":503,"ImportStatement":504,"ExportStatement":505,"UpdateStatement":506,"DeleteStatement_EDIT":507,"InsertStatement_EDIT":508,"CommonTableExpression_EDIT":509,"MergeStatement_EDIT":510,"LoadStatement_EDIT":511,"ImportStatement_EDIT":512,"ExportStatement_EDIT":513,"UpdateStatement_EDIT":514,"DropDatabaseStatement":515,"DropFunctionStatement":516,"DropRoleStatement":517,"DropTableStatement":518,"DropIndexStatement":519,"DropMacroStatement":520,"DropMaterializedViewStatement":521,"DropViewStatement":522,"TruncateTableStatement":523,"DropDatabaseStatement_EDIT":524,"DropFunctionStatement_EDIT":525,"DropTableStatement_EDIT":526,"DropIndexStatement_EDIT":527,"DropMacroStatement_EDIT":528,"DropMaterializedViewStatement_EDIT":529,"DropViewStatement_EDIT":530,"TruncateTableStatement_EDIT":531,"PURGE":532,"TRUNCATE":533,"DELETE":534,"FROM":535,"OptionalWhereClause":536,"WhereClause_EDIT":537,"ABORT":538,"TRANSACTIONS":539,"TransactionIdList":540,"UnsignedNumericLiteral":541,"SqlStatements":542,"NonStartingToken":543,";":544,"NewStatement":545,"SelectStatement":546,"SELECT":547,"OptionalAllOrDistinct":548,"SelectList_ERROR":549,"TableExpression":550,"SelectList":551,"TableExpression_ERROR":552,"SelectStatement_EDIT":553,"SelectList_ERROR_EDIT":554,"TableExpression_EDIT":555,"SelectList_EDIT":556,"ErrorList":557,"Errors":558,"SetOption":559,"SetValue":560,"ALL":561,"LateralView":562,"LATERAL":563,"OptionalOuter":564,"ArbitraryFunction":565,"LateralViewColumnAliases":566,"JoinType_EDIT":567,"FULL":568,"LEFT":569,"RIGHT":570,"CROSS":571,"JOIN":572,"OUTER":573,"INNER":574,"SEMI":575,"OptionalSelectConditions_EDIT":576,"WhereClause":577,"OptionalGroupByClause":578,"OptionalHavingClause":579,"OptionalWindowClause":580,"OptionalOrderByClause":581,"OptionalClusterOrDistributeBy":582,"OptionalLimitClause":583,"HavingClause":584,"WindowClause":585,"OrderByClause":586,"ClusterOrDistributeBy":587,"LimitClause":588,"GroupByClause_EDIT":589,"HavingClause_EDIT":590,"WindowClause_EDIT":591,"OrderByClause_EDIT":592,"ClusterOrDistributeBy_EDIT":593,"LimitClause_EDIT":594,"GroupByClause":595,"GRANT":596,"PrivilegeTypeList":597,"OptionalOnSpecification":598,"PrincipalSpecificationList":599,"OptionalWithGrantOption":600,"UserOrRoleList":601,"OptionalWithAdminOption":602,"PrivilegeTypeList_EDIT":603,"OnSpecification_EDIT":604,"PrincipalSpecificationList_EDIT":605,"WithGrantOption_EDIT":606,"WithAdminOption_EDIT":607,"ObjectSpecification":608,"ObjectSpecification_EDIT":609,"DATABASE":610,"PrivilegeTypeWithOptionalColumn":611,"PrivilegeTypeWithOptionalColumn_EDIT":612,"PrivilegeType":613,"OptionalParenthesizedColumnList":614,"INSERT":615,"LOCK":616,"SHOW_DATABASE":617,"UPDATE":618,"USER":619,"GROUP":620,"OPTION":621,"ADMIN":622,"REVOKE":623,"PrivilegesOrGrantOption":624,"PrivilegesOrGrantOption_EDIT":625,"PRIVILEGES":626,"InsertWithoutQuery":627,"FromClause":628,"Inserts":629,"SelectWithoutTableExpression":630,"OptionalSelectConditions":631,"InsertWithoutQuery_EDIT":632,"Inserts_EDIT":633,"FromClause_EDIT":634,"SelectWithoutTableExpression_EDIT":635,"OptionalTable":636,"VALUES":637,"InsertValuesList":638,"LOCAL":639,"DIRECTORY":640,"HdfsPath":641,"OptionalInsertRowFormat":642,"OVERWRITE_DIRECTORY":643,"HdfsPath_EDIT":644,"OptionalInsertRowFormat_EDIT":645,"OptionalStoredAs_EDIT":646,"OptionalParenthesizedColumnList_EDIT":647,"GenericInsert":648,"GenericInsert_EDIT":649,"ParenthesizedRowValuesList":650,"InValueList":651,"MergeStatementLeftPart":652,"WhenList":653,"MergeStatementLeftPart_EDIT":654,"WhenList_EDIT":655,"MERGE":656,"MergeSource":657,"MergeSource_EDIT":658,"TableSubQueryInner":659,"TableSubQueryInner_EDIT":660,"WhenClause":661,"WhenClause_EDIT":662,"WHEN":663,"OptionalNot":664,"MATCHED":665,"OptionalMatchCondition":666,"THEN":667,"UpdateDeleteOrInsert":668,"MatchCondition_EDIT":669,"UpdateDeleteOrInsert_EDIT":670,"SetClauseList":671,"SetClauseList_EDIT":672,"LOAD":673,"DATA":674,"OptionalLocal":675,"INPATH":676,"OptionalOverwrite":677,"OptionalInputFormat":678,"InputFormat_EDIT":679,"InputFormat":680,"IMPORT":681,"OptionalTableWithPartition":682,"PushHdfsLexerState":683,"TableWithPartition":684,"TableWithPartition_EDIT":685,"EXTERNAL":686,"EXPORT":687,"REPLICATION":688,"SqlSyntax":689,"EOF":690,"SqlAutocomplete":691,"SqlStatements_EDIT":692,"NonReservedKeyword":693,"BUCKET":694,"CASCADE":695,"COMPACTIONS":696,"DATABASES":697,"DAY":698,"DAYOFWEEK":699,"DOUBLE_PRECISION":700,"FUNCTIONS":701,"HOUR":702,"LAST":703,"LOCATION":704,"MINUTE":705,"MONTH":706,"PERCENT":707,"QUARTER":708,"RESTRICT":709,"ROLES":710,"SCHEMAS":711,"SECOND":712,"SETS":713,"SHOW":714,"STRING":715,"TABLES":716,"TINYINT":717,"TRANSACTIONAL":718,"USE":719,"WEEK":720,"YEAR":721,"REGULAR_IDENTIFIER":722,"VARIABLE_REFERENCE":723,"!":724,"*":725,"-":726,".":727,"[":728,"]":729,"ANALYTIC":730,"ARITHMETIC_OPERATOR":731,"ASC":732,"AVG":733,"BACKTICK":734,"BETWEEN":735,"BIGINT":736,"BINARY":737,"BOOLEAN":738,"CASE":739,"CAST":740,"CHAR":741,"CLUSTER":742,"COLLECT_LIST":743,"COLLECT_SET":744,"CONF":745,"CORR":746,"COUNT":747,"COVAR_POP":748,"COVAR_SAMP":749,"CUBE":750,"CURRENT":751,"DATE":752,"DECIMAL":753,"DESC":754,"DISTINCT":755,"DISTRIBUTE":756,"DOUBLE":757,"ELSE":758,"END":759,"EXISTS":760,"FALSE":761,"FLOAT":762,"FOLLOWING":763,"GROUPING":764,"HAVING":765,"HDFS_START_QUOTE":766,"HISTOGRAM_NUMERIC":767,"IF":768,"INDEXES":769,"INT":770,"INTEGER":771,"IS":772,"LIMIT":773,"MAX":774,"MIN":775,"NONE":776,"NTILE":777,"NULLS":778,"OF":779,"OR":780,"ORDER":781,"OUT":782,"OVER":783,"PERCENTILE":784,"PERCENTILE_APPROX":785,"PRECEDING":786,"RANGE":787,"REGEXP":788,"RLIKE":789,"ROLLUP":790,"ROWS":791,"SCHEMA":792,"SMALLINT":793,"STDDEV_POP":794,"STDDEV_SAMP":795,"SUM":796,"TABLESAMPLE":797,"TIMESTAMP":798,"TRUE":799,"UNION":800,"UNSIGNED_INTEGER_E":801,"VAR_POP":802,"VAR_SAMP":803,"VARCHAR":804,"VARIANCE":805,"VIEWS":806,"WHERE":807,"WINDOW":808,"~":809,"PARTIAL_CURSOR":810,"FromOrIn":811,"IndexOrIndexes":812,"DatabasesOrSchemas":813,"RoleOrUser":814,"PARTIAL_VALUE":815,"DoubleQuotedValue":816,"DoubleQuotedValue_EDIT":817,"OptionalExtended":818,"OptionalExtendedOrFormatted":819,"OptionallyFormattedIndex":820,"OptionallyFormattedIndex_EDIT":821,"OptionalFromDatabase":822,"DatabaseIdentifier":823,"OptionalFromDatabase_EDIT":824,"DatabaseIdentifier_EDIT":825,"OptionalInDatabase":826,"RangePartitionSpec":827,"RangePartitionComparisonOperator":828,"RangePartitionSpec_EDIT":829,"ConfigurationName":830,"PartialBacktickedOrAnyCursor":831,"PartialBacktickedIdentifier":832,"PartialBacktickedOrCursor":833,"PartialBacktickedOrPartialCursor":834,"ColumnList":835,"ColumnList_EDIT":836,"SimpleValueList":837,"PartitionExpression":838,"PartitionExpression_EDIT":839,"LocalOrSchemaQualifiedName":840,"LocalOrSchemaQualifiedName_EDIT":841,"BasicIdentifierChain":842,"BasicIdentifierChain_EDIT":843,"DerivedColumnChain":844,"DerivedColumnChain_EDIT":845,"PartialBacktickedIdentifierOrPartialCursor":846,"RightSquareBracketOrError":847,"OptionalTypeLength":848,"OptionalTypePrecision":849,"DESCRIBE":850,"OptionalUnions":851,"OptionalUnions_EDIT":852,"Unions":853,"Unions_EDIT":854,"UnionClause":855,"UnionClause_EDIT":856,"WithQueries":857,"WithQueries_EDIT":858,"WithQuery":859,"WithQuery_EDIT":860,"OptionalJoins":861,"Joins":862,"Joins_INVALID":863,"TableReferenceList":864,"OptionalLateralViews":865,"TableReferenceList_EDIT":866,"OptionalLateralViews_EDIT":867,"SearchCondition":868,"SearchCondition_EDIT":869,"GroupByColumnList":870,"OptionalGroupingSetsCubeOrRollup":871,"GroupByColumnList_EDIT":872,"OptionalGroupingSetsCubeOrRollup_EDIT":873,"GroupingSets":874,"GroupingSets_EDIT":875,"ColumnGroupingSets":876,"ColumnGroupingSets_EDIT":877,"ColumnGroupingSet_EDIT":878,"GroupByColumnListPartTwo_EDIT":879,"OrderByColumnList":880,"OrderByColumnList_EDIT":881,"OrderByIdentifier":882,"OrderByIdentifier_EDIT":883,"OptionalNullsFirstOrLast":884,"NullsFirstOrLast_EDIT":885,"NullsFirstOrLast":886,"ClusterByClause":887,"DistributeByClause":888,"SortByClause":889,"ClusterByClause_EDIT":890,"DistributeByClause_EDIT":891,"SortByClause_EDIT":892,"SORT":893,"SortByList":894,"SortByList_EDIT":895,"SortByIdentifier":896,"SortByIdentifier_EDIT":897,"NonParenthesizedValueExpressionPrimary":898,"TableSubQuery":899,"ValueExpressionList":900,"BETWEEN_AND":901,"LikeRightPart":902,"CaseRightPart":903,"NonParenthesizedValueExpressionPrimary_EDIT":904,"TableSubQuery_EDIT":905,"ValueExpressionInSecondPart_EDIT":906,"LikeRightPart_EDIT":907,"CaseRightPart_EDIT":908,"EndOrError":909,"ValueExpressionList_EDIT":910,"ColumnOrArbitraryFunctionRef":911,"ArbitraryFunctionRightPart":912,"ArbitraryFunctionName":913,"UserDefinedFunction":914,"UnsignedValueSpecification_EDIT":915,"ColumnOrArbitraryFunctionRef_EDIT":916,"ArbitraryFunctionRightPart_EDIT":917,"UserDefinedFunction_EDIT":918,"SignedInteger":919,"+":920,"UnsignedLiteral":921,"UnsignedLiteral_EDIT":922,"GeneralLiteral":923,"GeneralLiteral_EDIT":924,"ExactNumericLiteral":925,"ApproximateNumericLiteral":926,"TruthValue":927,"SelectSpecification":928,"OptionalCorrelationName":929,"SelectSpecification_EDIT":930,"OptionalCorrelationName_EDIT":931,"TableReference":932,"TableReference_EDIT":933,"TablePrimaryOrJoinedTable":934,"TablePrimaryOrJoinedTable_EDIT":935,"TablePrimary":936,"JoinedTable":937,"TablePrimary_EDIT":938,"JoinedTable_EDIT":939,"Joins_EDIT":940,"JoinType":941,"OptionalJoinCondition":942,"Join_EDIT":943,"JoinCondition_EDIT":944,"UsingColList":945,"TableOrQueryName":946,"OptionalTableSample":947,"DerivedTable":948,"TableOrQueryName_EDIT":949,"OptionalTableSample_EDIT":950,"DerivedTable_EDIT":951,"OptionalOnColumn":952,"OptionalOnColumn_EDIT":953,"PushQueryState":954,"PopQueryState":955,"SubQuery":956,"SubQuery_EDIT":957,"QueryExpression":958,"QueryExpression_EDIT":959,"QueryExpressionBody":960,"QueryExpressionBody_EDIT":961,"NonJoinQueryExpression":962,"NonJoinQueryExpression_EDIT":963,"NonJoinQueryTerm":964,"NonJoinQueryTerm_EDIT":965,"NonJoinQueryPrimary":966,"NonJoinQueryPrimary_EDIT":967,"SimpleTable":968,"SimpleTable_EDIT":969,"LateralView_EDIT":970,"AggregateFunction":971,"OptionalOverClause":972,"AnalyticFunction":973,"OverClause":974,"CastFunction":975,"ExtractFunction":976,"AggregateFunction_EDIT":977,"OptionalOverClause_EDIT":978,"AnalyticFunction_EDIT":979,"OverClause_EDIT":980,"CastFunction_EDIT":981,"ExtractFunction_EDIT":982,"ArbitraryFunction_EDIT":983,"CountFunction":984,"SumFunction":985,"OtherAggregateFunction":986,"CountFunction_EDIT":987,"SumFunction_EDIT":988,"OtherAggregateFunction_EDIT":989,"WindowExpression":990,"WindowExpression_EDIT":991,"OptionalPartitionBy":992,"OptionalOrderByAndWindow":993,"PartitionBy_EDIT":994,"OptionalOrderByAndWindow_EDIT":995,"PartitionBy":996,"OptionalWindowSpec":997,"WindowSpec_EDIT":998,"WindowSpec":999,"RowsOrRange":1000,"PopLexerState":1001,"OptionalCurrentOrPreceding":1002,"OptionalAndFollowing":1003,"UNBOUNDED":1004,"OptionalCurrentOrPreceding_EDIT":1005,"OptionalAndFollowing_EDIT":1006,"HDFS_PATH":1007,"HDFS_END_QUOTE":1008,"IntegerOrUnbounded":1009,"EXTRACT":1010,"DateField":1011,"OtherAggregateFunction_Type":1012,"FromOrComma":1013,"LateralViewColumnAliases_EDIT":1014,"ShowColumnsStatement":1015,"ShowCompactionsStatement":1016,"ShowConfStatement":1017,"ShowCreateTableStatement":1018,"ShowCurrentRolesStatement":1019,"ShowDatabasesStatement":1020,"ShowFunctionsStatement":1021,"ShowGrantStatement":1022,"ShowIndexStatement":1023,"ShowLocksStatement":1024,"ShowMaterializedViewsStatement":1025,"ShowPartitionsStatement":1026,"ShowRolesStatement":1027,"ShowRoleStatement":1028,"ShowTablesStatement":1029,"ShowTableStatement":1030,"ShowTblPropertiesStatement":1031,"ShowTransactionsStatement":1032,"ShowViewsStatement":1033,"ShowColumnsStatement_EDIT":1034,"ShowCreateTableStatement_EDIT":1035,"ShowCurrentRolesStatement_EDIT":1036,"ShowDatabasesStatement_EDIT":1037,"ShowGrantStatement_EDIT":1038,"ShowIndexStatement_EDIT":1039,"ShowLocksStatement_EDIT":1040,"ShowMaterializedViewsStatement_EDIT":1041,"ShowPartitionsStatement_EDIT":1042,"ShowRoleStatement_EDIT":1043,"ShowTablesStatement_EDIT":1044,"ShowTableStatement_EDIT":1045,"ShowTblPropertiesStatement_EDIT":1046,"ShowViewsStatement_EDIT":1047,"TableOrView":1048,"OptionalPrincipalName":1049,"OptionalPrincipalName_EDIT":1050,"OptionalInOrFromDatabase":1051,"OptionalLike":1052,"InOrFromDatabase_EDIT":1053,"Like_EDIT":1054,"TargetTable":1055,"OptionalFromJoinedTable":1056,"TargetTable_EDIT":1057,"FromJoinedTable_EDIT":1058,"TableName":1059,"TableName_EDIT":1060,"SetClause":1061,"SetClause_EDIT":1062,"SetTarget":1063,"UpdateSource":1064,"UpdateSource_EDIT":1065,"CaseWhenThenList":1066,"CaseWhenThenList_EDIT":1067,"CaseWhenThenListPartTwo":1068,"CaseWhenThenListPartTwo_EDIT":1069,"$accept":0,"$end":1}, -terminals_: {2:"error",26:"SET",27:"CURSOR",44:"ALTER",47:"DBPROPERTIES",50:"OWNER",54:"INDEX",55:"ON",58:"REBUILD",61:"MATERIALIZED",62:"VIEW",64:"REWRITE",66:"ADD",71:"CONSTRAINT",74:"RENAME",75:"TO",78:"SKEWED",79:"BY",84:"RECOVER",85:"PARTITIONS",86:"TOUCH",88:"NOT",89:"STORED_AS_DIRECTORIES",90:"SKEWED_LOCATION",92:"CHANGE",93:"COLUMN",99:"REPLACE",107:"STORED",108:"AS",116:"(",118:")",123:",",126:"=",127:"FILEFORMAT",129:"TBLPROPERTIES",130:"SERDE",132:"SERDEPROPERTIES",134:"CONCATENATE",135:"COMPACT",150:"AND",151:"WAIT",152:"WITH",153:"OVERWRITE",154:"COLUMNS",156:"EXCHANGE",158:"TABLE",161:"PARTITION",166:"DROP",174:"AFTER",175:"FIRST",176:"ENABLE",177:"DISABLE",178:"NO_DROP",180:"OFFLINE",181:"ARCHIVE",182:"UNARCHIVE",193:"ColumnReferences",198:"MSCK",202:"REPAIR",204:"SYNC",205:"RELOAD",206:"FUNCTION",208:"NULL",216:"SetSpecification_EDIT",217:"ANALYZE",218:"COMPUTE",219:"STATISTICS",227:"FOR",228:"CACHE",229:"METADATA",230:"NOSCAN",231:"EXPLAIN",233:"FORMATTED",234:"AST",235:"AUTHORIZATION",236:"CBO",238:"DEPENDENCY",239:"EXTENDED",240:"LOCKS",241:"VECTORIZATION",244:"COST",245:"JOINCOST",246:"ONLY",247:"DETAIL",248:"EXPRESSION",249:"OPERATOR",250:"SUMMARY",266:"CREATE",277:"COMMENT",279:"SINGLE_QUOTE",280:"DOUBLE_QUOTE",281:"VALUE",307:"LIKE",317:"PRIMARY",318:"KEY",320:"UNIQUE",321:"DEFAULT",323:"CHECK",328:"LITERAL",329:"CURRENT_USER",330:"CURRENT_DATE",331:"CURRENT_TIMESTAMP",333:"NOVALIDATE",347:"ARRAY",348:"<",349:">",351:"MAP",352:"STRUCT",358:":",359:"UNIONTYPE",371:"FOREIGN",372:"REFERENCES",373:"RELY",374:"NORELY",376:"PARTITIONED",381:"COMPARISON_OPERATOR",382:"CLUSTERED",384:"INTO",385:"UNSIGNED_INTEGER",386:"BUCKETS",396:"DISTRIBUTED",397:"SORTED",409:"ROW",410:"FORMAT",417:"AVRO",418:"INPUTFORMAT",419:"OUTPUTFORMAT",420:"JSONFILE",421:"ORC",422:"PARQUET",423:"RCFILE",424:"SEQUENCEFILE",425:"TEXTFILE",428:"DELIMITED",439:"FIELDS",440:"TERMINATED",442:"ESCAPED",443:"COLLECTION",444:"ITEMS",445:"KEYS",446:"LINES",447:"DEFINED",460:"TEMPORARY",464:"USING",468:"FILE",469:"JAR",473:"ROLE",486:"DEFERRED",487:"IDXPROPERTIES",488:"IN",491:"MACRO",499:"LIFECYCLE",532:"PURGE",533:"TRUNCATE",534:"DELETE",535:"FROM",538:"ABORT",539:"TRANSACTIONS",544:";",547:"SELECT",552:"TableExpression_ERROR",558:"Errors",561:"ALL",563:"LATERAL",568:"FULL",569:"LEFT",570:"RIGHT",571:"CROSS",572:"JOIN",573:"OUTER",574:"INNER",575:"SEMI",596:"GRANT",610:"DATABASE",615:"INSERT",616:"LOCK",617:"SHOW_DATABASE",618:"UPDATE",619:"USER",620:"GROUP",621:"OPTION",622:"ADMIN",623:"REVOKE",626:"PRIVILEGES",637:"VALUES",639:"LOCAL",640:"DIRECTORY",643:"OVERWRITE_DIRECTORY",646:"OptionalStoredAs_EDIT",656:"MERGE",663:"WHEN",665:"MATCHED",667:"THEN",673:"LOAD",674:"DATA",676:"INPATH",681:"IMPORT",686:"EXTERNAL",687:"EXPORT",688:"REPLICATION",690:"EOF",694:"BUCKET",695:"CASCADE",696:"COMPACTIONS",697:"DATABASES",698:"DAY",699:"DAYOFWEEK",700:"DOUBLE_PRECISION",701:"FUNCTIONS",702:"HOUR",703:"LAST",704:"LOCATION",705:"MINUTE",706:"MONTH",707:"PERCENT",708:"QUARTER",709:"RESTRICT",710:"ROLES",711:"SCHEMAS",712:"SECOND",713:"SETS",714:"SHOW",715:"STRING",716:"TABLES",717:"TINYINT",718:"TRANSACTIONAL",719:"USE",720:"WEEK",721:"YEAR",722:"REGULAR_IDENTIFIER",723:"VARIABLE_REFERENCE",724:"!",725:"*",726:"-",727:".",728:"[",729:"]",730:"ANALYTIC",731:"ARITHMETIC_OPERATOR",732:"ASC",733:"AVG",734:"BACKTICK",735:"BETWEEN",736:"BIGINT",737:"BINARY",738:"BOOLEAN",739:"CASE",740:"CAST",741:"CHAR",742:"CLUSTER",743:"COLLECT_LIST",744:"COLLECT_SET",745:"CONF",746:"CORR",747:"COUNT",748:"COVAR_POP",749:"COVAR_SAMP",750:"CUBE",751:"CURRENT",752:"DATE",753:"DECIMAL",754:"DESC",755:"DISTINCT",756:"DISTRIBUTE",757:"DOUBLE",758:"ELSE",759:"END",760:"EXISTS",761:"FALSE",762:"FLOAT",763:"FOLLOWING",764:"GROUPING",765:"HAVING",766:"HDFS_START_QUOTE",767:"HISTOGRAM_NUMERIC",768:"IF",769:"INDEXES",770:"INT",771:"INTEGER",772:"IS",773:"LIMIT",774:"MAX",775:"MIN",776:"NONE",777:"NTILE",778:"NULLS",779:"OF",780:"OR",781:"ORDER",782:"OUT",783:"OVER",784:"PERCENTILE",785:"PERCENTILE_APPROX",786:"PRECEDING",787:"RANGE",788:"REGEXP",789:"RLIKE",790:"ROLLUP",791:"ROWS",792:"SCHEMA",793:"SMALLINT",794:"STDDEV_POP",795:"STDDEV_SAMP",796:"SUM",797:"TABLESAMPLE",798:"TIMESTAMP",799:"TRUE",800:"UNION",801:"UNSIGNED_INTEGER_E",802:"VAR_POP",803:"VAR_SAMP",804:"VARCHAR",805:"VARIANCE",806:"VIEWS",807:"WHERE",808:"WINDOW",809:"~",810:"PARTIAL_CURSOR",815:"PARTIAL_VALUE",850:"DESCRIBE",893:"SORT",901:"BETWEEN_AND",920:"+",1004:"UNBOUNDED",1007:"HDFS_PATH",1008:"HDFS_END_QUOTE",1010:"EXTRACT"}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,2],[16,1],[16,1],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,2],[30,6],[30,5],[30,6],[37,3],[37,4],[37,5],[37,5],[37,6],[37,6],[31,7],[38,4],[38,5],[38,5],[38,6],[38,7],[32,6],[39,3],[39,4],[39,4],[39,5],[39,6],[33,6],[33,5],[33,3],[33,4],[33,2],[33,7],[33,2],[33,3],[33,3],[33,3],[33,3],[33,3],[33,4],[33,4],[33,5],[33,6],[33,2],[33,2],[33,3],[40,1],[40,6],[40,2],[40,4],[40,2],[40,7],[40,2],[40,3],[40,3],[40,3],[40,3],[40,3],[40,4],[40,4],[40,5],[40,6],[40,2],[40,2],[40,3],[40,4],[40,3],[40,3],[40,6],[40,6],[40,7],[40,6],[40,4],[40,5],[40,5],[40,5],[40,3],[40,3],[40,2],[40,2],[40,3],[40,4],[40,5],[40,4],[40,5],[40,3],[40,4],[40,4],[40,3],[40,4],[40,4],[40,4],[40,7],[40,5],[40,8],[40,7],[40,3],[40,3],[40,2],[40,2],[40,2],[40,3],[40,4],[40,4],[40,3],[40,3],[40,3],[40,4],[115,3],[119,3],[117,1],[117,3],[120,1],[120,3],[120,5],[120,3],[122,3],[124,1],[97,3],[97,2],[97,3],[97,4],[97,3],[97,1],[97,1],[97,4],[97,2],[97,6],[112,1],[112,3],[112,6],[112,7],[112,6],[112,5],[112,4],[112,4],[112,2],[112,2],[112,3],[112,2],[112,5],[112,4],[136,0],[136,2],[146,2],[137,0],[137,4],[147,2],[147,3],[133,4],[143,4],[143,5],[83,5],[106,2],[106,3],[106,4],[106,5],[106,5],[106,2],[106,5],[157,4],[157,4],[160,4],[160,4],[162,3],[162,5],[164,3],[164,5],[96,4],[96,3],[113,3],[113,4],[113,5],[113,3],[113,2],[113,2],[65,3],[98,3],[98,3],[114,1],[114,1],[142,0],[142,2],[173,1],[173,1],[145,2],[145,2],[139,0],[139,1],[63,1],[63,1],[138,2],[138,1],[148,3],[87,1],[87,1],[168,1],[168,3],[170,1],[170,3],[170,5],[170,3],[170,3],[170,3],[170,5],[70,0],[70,1],[184,1],[184,2],[101,1],[101,2],[101,2],[101,3],[186,2],[186,2],[185,2],[91,3],[109,3],[187,1],[187,3],[188,1],[188,3],[188,5],[188,3],[189,3],[190,1],[190,1],[190,3],[190,3],[190,3],[82,0],[82,1],[111,2],[111,3],[34,4],[34,3],[41,1],[41,2],[41,3],[41,3],[41,3],[194,3],[196,3],[196,3],[35,5],[42,3],[42,4],[42,4],[42,5],[42,6],[199,0],[199,1],[200,0],[200,2],[201,2],[203,1],[203,1],[203,1],[36,2],[43,2],[207,1],[207,1],[209,2],[209,2],[209,2],[209,1],[209,1],[209,1],[212,1],[212,2],[212,2],[212,2],[212,2],[212,2],[212,2],[212,2],[212,1],[212,2],[212,1],[212,1],[212,1],[212,1],[5,9],[18,2],[18,3],[18,4],[18,4],[18,5],[18,6],[18,10],[18,10],[18,10],[18,4],[18,9],[18,9],[18,9],[18,9],[18,9],[220,0],[220,1],[223,2],[225,2],[221,0],[221,1],[224,2],[226,2],[222,0],[222,1],[210,2],[213,3],[213,3],[232,0],[232,1],[232,1],[232,3],[232,2],[232,1],[232,1],[232,1],[232,3],[237,0],[237,1],[237,1],[242,0],[242,1],[243,0],[243,1],[243,1],[243,1],[243,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,5],[251,5],[259,4],[259,3],[259,5],[259,4],[259,6],[259,6],[271,3],[272,3],[272,3],[273,0],[273,1],[276,2],[275,1],[278,2],[278,2],[278,3],[278,3],[274,0],[274,1],[282,3],[282,2],[282,2],[48,3],[283,1],[283,3],[284,3],[252,8],[260,7],[260,7],[260,6],[286,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[289,2],[297,2],[297,2],[304,0],[304,1],[304,2],[305,1],[305,2],[305,2],[94,3],[94,5],[155,3],[155,5],[155,5],[308,1],[308,3],[310,1],[310,3],[310,3],[310,5],[310,2],[310,4],[310,4],[310,6],[141,4],[144,4],[144,4],[313,0],[313,1],[315,1],[315,2],[316,3],[316,1],[316,2],[316,3],[316,1],[316,3],[316,5],[316,1],[319,3],[322,1],[322,3],[322,3],[322,3],[322,1],[325,0],[325,1],[325,1],[332,0],[332,1],[326,0],[326,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[314,1],[314,1],[314,1],[314,1],[335,4],[339,3],[343,4],[343,4],[336,6],[340,3],[344,6],[344,4],[344,6],[344,5],[337,4],[341,3],[345,4],[353,1],[353,3],[354,1],[354,2],[354,3],[354,3],[354,5],[355,4],[356,5],[356,4],[356,4],[356,4],[356,3],[356,3],[338,4],[342,3],[346,4],[360,1],[360,3],[361,1],[361,2],[361,3],[361,3],[361,5],[362,2],[362,2],[362,1],[362,1],[350,1],[350,1],[309,1],[309,1],[309,3],[311,1],[311,3],[311,1],[311,3],[311,3],[363,1],[363,3],[364,1],[364,3],[73,4],[365,4],[365,5],[366,3],[366,6],[366,4],[367,3],[367,3],[72,5],[103,1],[103,2],[103,6],[368,6],[104,2],[104,3],[104,4],[104,5],[104,5],[104,6],[327,0],[327,1],[327,1],[369,2],[370,2],[290,0],[290,1],[375,3],[298,2],[298,3],[298,3],[298,2],[298,2],[298,3],[377,0],[377,1],[378,3],[379,2],[379,3],[380,1],[380,1],[291,0],[291,1],[77,7],[105,2],[105,4],[105,7],[105,5],[105,7],[105,7],[105,4],[388,0],[388,1],[388,2],[392,1],[392,1],[392,2],[392,2],[389,3],[393,2],[393,3],[390,3],[394,2],[394,3],[391,3],[395,2],[395,3],[383,0],[383,3],[387,2],[387,3],[398,3],[399,3],[400,1],[400,3],[401,1],[401,3],[401,3],[401,5],[402,2],[403,3],[403,2],[403,2],[292,0],[292,1],[405,5],[405,6],[299,2],[299,4],[81,3],[406,1],[406,3],[293,0],[293,1],[408,3],[300,2],[300,3],[300,3],[294,0],[294,1],[413,1],[413,3],[301,2],[301,1],[416,0],[416,1],[414,3],[415,3],[128,1],[128,4],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[411,1],[411,2],[412,1],[426,6],[427,6],[427,6],[427,6],[427,6],[427,6],[429,0],[429,4],[429,7],[434,2],[434,3],[434,6],[430,0],[430,5],[435,2],[435,3],[435,4],[431,0],[431,5],[436,2],[436,3],[436,4],[432,0],[432,4],[437,2],[437,3],[433,0],[433,4],[438,2],[438,3],[131,0],[131,1],[448,3],[149,2],[149,3],[295,0],[295,1],[449,2],[296,0],[296,1],[450,3],[302,3],[302,3],[451,0],[254,14],[262,3],[262,5],[262,14],[262,13],[262,13],[262,13],[262,13],[262,13],[262,13],[262,14],[452,0],[452,2],[453,2],[253,9],[261,4],[261,10],[261,3],[261,7],[261,8],[261,9],[261,9],[261,9],[256,1],[256,6],[263,1],[263,4],[263,6],[263,7],[456,6],[458,5],[461,1],[462,1],[457,0],[457,2],[459,2],[465,1],[465,3],[466,2],[467,1],[467,1],[467,1],[454,0],[454,1],[470,3],[455,3],[471,2],[471,4],[472,3],[472,5],[472,5],[472,7],[255,3],[257,17],[264,4],[264,5],[264,6],[264,6],[264,7],[264,8],[264,9],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,18],[474,1],[480,1],[476,1],[482,1],[477,0],[477,3],[483,2],[483,3],[478,0],[478,2],[479,0],[479,3],[484,2],[484,3],[484,3],[475,3],[481,3],[489,1],[489,3],[490,1],[490,3],[490,3],[490,5],[258,6],[265,5],[265,6],[265,6],[265,6],[492,2],[492,3],[493,3],[495,1],[495,3],[496,1],[496,3],[496,3],[496,5],[497,2],[498,2],[498,2],[287,0],[287,2],[211,1],[211,1],[211,2],[211,1],[211,1],[211,1],[211,1],[211,1],[214,1],[214,1],[214,2],[214,2],[214,1],[214,1],[214,1],[214,1],[214,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,2],[515,5],[524,3],[524,3],[524,4],[524,5],[524,5],[524,6],[516,4],[516,5],[525,4],[525,5],[525,3],[525,4],[525,4],[525,5],[525,4],[517,3],[518,5],[526,3],[526,4],[526,5],[526,5],[526,6],[169,0],[169,1],[519,6],[527,4],[527,3],[527,5],[527,6],[527,6],[520,5],[528,3],[528,5],[528,4],[521,4],[529,3],[529,4],[529,4],[522,4],[530,4],[530,5],[530,3],[530,4],[530,4],[523,4],[531,2],[531,4],[531,4],[531,5],[531,4],[531,5],[500,4],[507,2],[507,3],[507,5],[507,4],[507,4],[8,3],[21,2],[540,1],[540,3],[542,1],[542,2],[542,0],[542,1],[542,4],[546,4],[546,4],[546,3],[546,4],[553,4],[553,4],[553,3],[553,3],[553,4],[553,4],[553,4],[553,5],[553,6],[553,4],[549,1],[549,3],[549,5],[549,3],[549,5],[554,3],[554,5],[554,7],[554,3],[554,5],[554,7],[13,4],[13,4],[13,2],[557,1],[557,3],[562,7],[562,5],[562,4],[562,2],[562,6],[562,5],[562,5],[567,3],[567,3],[567,3],[567,2],[567,3],[567,3],[567,2],[567,3],[567,3],[567,3],[567,3],[567,2],[567,3],[567,3],[567,3],[567,3],[567,2],[576,9],[576,9],[576,9],[576,9],[576,9],[576,9],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,7],[576,7],[576,7],[576,7],[576,7],[576,7],[576,7],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[9,6],[9,5],[9,6],[22,2],[22,3],[22,3],[22,4],[22,5],[22,5],[22,7],[22,6],[22,3],[22,4],[22,4],[22,6],[22,5],[22,5],[22,5],[22,7],[22,6],[598,0],[598,2],[604,2],[604,2],[608,2],[608,2],[608,1],[609,2],[609,2],[609,2],[609,1],[597,1],[597,3],[603,1],[603,3],[603,3],[603,5],[603,3],[603,3],[603,5],[611,2],[612,2],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[599,1],[599,3],[605,3],[605,3],[605,5],[51,2],[51,2],[51,2],[53,2],[53,2],[53,2],[601,1],[601,3],[600,0],[600,3],[606,2],[606,3],[602,0],[602,3],[607,2],[607,3],[10,5],[10,8],[10,4],[10,5],[10,7],[10,8],[10,5],[23,2],[23,2],[23,3],[23,4],[23,5],[23,5],[23,3],[23,4],[23,5],[23,5],[23,6],[23,7],[23,8],[23,8],[23,3],[23,4],[23,4],[23,4],[23,5],[23,5],[23,4],[23,5],[23,6],[23,7],[23,7],[23,7],[23,8],[23,8],[23,3],[23,4],[624,1],[624,2],[625,2],[501,1],[501,2],[501,2],[501,3],[508,1],[508,2],[508,2],[508,2],[508,2],[508,1],[508,2],[508,3],[508,2],[508,3],[508,3],[627,7],[627,6],[627,7],[627,5],[627,6],[632,2],[632,4],[632,6],[632,6],[632,6],[632,4],[632,7],[632,7],[632,7],[632,5],[632,5],[632,5],[632,4],[632,6],[632,6],[632,6],[629,1],[629,2],[633,1],[633,2],[633,2],[633,3],[648,3],[649,1],[649,3],[649,2],[649,3],[649,3],[638,1],[638,3],[650,3],[636,0],[636,1],[642,0],[642,3],[645,2],[645,3],[645,3],[630,3],[635,4],[635,3],[635,3],[502,4],[510,1],[510,2],[510,3],[510,3],[510,4],[510,4],[652,9],[654,2],[654,3],[654,3],[654,4],[654,5],[654,6],[654,7],[654,7],[654,8],[654,9],[657,3],[657,1],[658,3],[658,3],[658,1],[653,1],[653,2],[653,3],[655,1],[655,2],[655,2],[655,3],[655,3],[661,6],[662,3],[662,5],[662,4],[662,6],[662,6],[666,0],[666,2],[669,2],[668,3],[668,1],[668,3],[670,2],[670,3],[670,2],[503,11],[511,2],[511,4],[511,6],[511,7],[511,8],[511,9],[511,11],[511,12],[511,11],[511,11],[511,11],[677,0],[677,1],[675,0],[675,1],[678,0],[678,1],[680,4],[679,3],[504,6],[512,3],[512,3],[512,2],[512,6],[512,6],[512,7],[512,7],[512,6],[512,7],[682,0],[682,1],[684,4],[684,3],[685,2],[685,3],[685,4],[685,4],[685,2],[685,3],[685,3],[505,7],[505,12],[513,2],[513,3],[513,3],[513,5],[513,4],[513,7],[513,8],[513,9],[513,7],[513,12],[513,8],[513,13],[513,7],[513,12],[513,12],[689,3],[691,3],[691,3],[545,0],[692,1],[692,4],[692,4],[692,7],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[693,1],[270,1],[270,1],[270,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[357,1],[357,2],[183,1],[183,1],[811,1],[811,1],[45,1],[45,1],[812,1],[812,1],[813,1],[813,1],[814,1],[814,1],[441,3],[441,2],[463,2],[816,3],[816,2],[817,2],[125,1],[125,1],[485,1],[485,1],[818,0],[818,1],[819,0],[819,1],[819,1],[269,0],[269,1],[820,2],[820,1],[821,2],[821,2],[822,0],[822,2],[824,2],[179,0],[179,1],[95,0],[95,1],[95,1],[267,0],[267,1],[268,0],[268,1],[167,0],[167,2],[171,2],[67,0],[67,3],[100,2],[100,3],[826,0],[826,2],[826,2],[57,0],[57,1],[60,1],[68,4],[102,4],[827,5],[829,2],[829,3],[829,4],[829,5],[829,5],[829,5],[828,1],[828,1],[828,1],[828,1],[830,1],[830,1],[830,3],[830,3],[831,1],[831,1],[833,1],[833,1],[834,1],[834,1],[832,2],[121,1],[121,1],[614,0],[614,1],[647,1],[80,3],[110,3],[110,3],[835,1],[835,3],[836,1],[836,3],[836,3],[836,3],[836,5],[836,5],[407,3],[837,1],[837,3],[56,1],[56,3],[59,1],[59,3],[59,3],[303,1],[303,3],[306,1],[306,3],[306,3],[823,1],[825,1],[163,1],[163,3],[165,1],[165,3],[165,3],[165,5],[838,3],[838,1],[839,3],[839,3],[839,3],[839,1],[69,0],[69,1],[49,2],[52,2],[46,1],[46,3],[46,2],[76,1],[76,3],[159,1],[159,3],[840,1],[840,2],[841,1],[841,2],[191,1],[191,3],[192,1],[842,1],[842,3],[843,1],[843,3],[843,5],[843,3],[843,3],[843,5],[844,1],[844,3],[845,1],[845,3],[845,5],[845,3],[845,1],[845,3],[845,5],[845,3],[140,1],[140,4],[140,3],[172,4],[172,4],[846,1],[846,1],[847,1],[847,1],[334,1],[334,1],[334,1],[334,2],[334,1],[334,2],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,2],[848,0],[848,3],[849,0],[849,3],[849,5],[11,5],[11,4],[11,4],[11,4],[24,4],[24,5],[24,6],[24,5],[24,5],[24,6],[24,5],[24,4],[24,3],[24,4],[24,5],[24,4],[24,5],[195,2],[195,3],[195,5],[197,2],[197,2],[197,4],[197,3],[197,3],[197,1],[197,4],[197,3],[851,0],[851,1],[852,1],[853,1],[853,2],[854,1],[854,2],[854,2],[854,3],[855,4],[856,3],[856,4],[856,4],[215,2],[509,2],[857,1],[857,3],[858,1],[858,3],[858,3],[858,5],[859,5],[860,2],[860,5],[860,5],[548,0],[548,1],[548,1],[550,2],[555,2],[555,4],[555,3],[861,0],[861,1],[861,1],[628,3],[634,2],[634,3],[634,3],[631,7],[536,0],[536,1],[577,2],[537,2],[537,2],[578,0],[578,1],[595,4],[589,4],[589,4],[589,2],[589,4],[871,0],[871,1],[871,2],[871,2],[873,1],[873,2],[874,5],[875,2],[875,5],[876,0],[876,1],[876,3],[876,3],[877,1],[877,3],[877,3],[877,5],[877,3],[878,1],[878,1],[870,1],[870,3],[872,1],[872,2],[872,3],[872,3],[872,3],[872,4],[872,5],[879,1],[879,2],[879,1],[581,0],[581,1],[586,3],[592,3],[592,2],[880,1],[880,3],[881,1],[881,2],[881,3],[881,4],[881,5],[882,3],[883,3],[883,3],[883,3],[404,0],[404,1],[404,1],[884,0],[884,1],[886,2],[886,2],[885,2],[582,0],[582,1],[587,1],[587,1],[587,2],[587,1],[593,1],[593,1],[593,2],[593,2],[593,1],[887,3],[890,2],[890,3],[890,3],[888,3],[891,2],[891,3],[891,3],[889,3],[892,2],[892,3],[894,1],[894,3],[895,1],[895,3],[895,3],[895,5],[896,2],[897,2],[897,2],[583,0],[583,1],[588,2],[588,4],[588,2],[588,4],[594,2],[868,1],[869,1],[324,1],[324,2],[324,2],[324,2],[324,2],[324,4],[324,4],[324,4],[324,6],[324,2],[324,3],[324,3],[324,3],[324,3],[324,3],[324,6],[324,6],[324,5],[324,5],[324,6],[324,5],[324,3],[324,3],[324,3],[324,3],[324,3],[324,2],[324,3],[324,2],[324,3],[494,1],[494,3],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,3],[494,4],[494,5],[494,4],[494,4],[494,4],[494,6],[494,6],[494,2],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,4],[494,3],[494,6],[494,6],[494,5],[494,5],[494,6],[494,6],[494,6],[494,6],[494,5],[494,4],[494,5],[494,5],[494,5],[494,5],[494,4],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,2],[494,3],[494,2],[494,3],[494,2],[494,3],[494,2],[494,3],[494,3],[494,4],[494,3],[494,3],[494,3],[900,1],[900,3],[910,1],[910,3],[910,3],[910,5],[910,3],[910,5],[910,4],[910,3],[910,2],[910,2],[910,4],[651,1],[651,3],[898,1],[898,1],[898,2],[898,2],[898,1],[898,1],[904,1],[904,1],[904,2],[904,2],[904,1],[911,1],[911,3],[916,1],[919,1],[919,2],[919,2],[285,1],[915,1],[921,1],[921,1],[922,1],[541,1],[541,1],[925,1],[925,2],[925,3],[925,2],[926,2],[926,3],[926,4],[923,1],[923,1],[923,1],[924,1],[924,1],[927,1],[927,1],[664,0],[664,1],[928,2],[928,1],[930,2],[930,3],[930,2],[551,1],[551,3],[556,1],[556,2],[556,3],[556,3],[556,3],[556,4],[556,3],[556,3],[556,4],[556,4],[556,4],[556,5],[556,5],[864,1],[864,3],[866,1],[866,3],[866,3],[866,5],[866,3],[932,1],[933,1],[934,1],[934,1],[935,1],[935,1],[937,2],[939,2],[939,2],[862,3],[862,4],[863,1],[863,2],[943,3],[943,1],[943,3],[943,3],[943,3],[940,1],[940,2],[940,2],[940,3],[941,2],[941,2],[941,3],[941,2],[941,1],[941,3],[941,2],[941,3],[941,3],[941,2],[941,3],[941,2],[941,3],[941,3],[941,2],[942,0],[942,2],[945,1],[945,3],[944,2],[944,2],[936,3],[936,2],[938,3],[938,3],[938,2],[938,2],[946,1],[949,1],[948,1],[951,1],[947,0],[947,9],[947,5],[947,5],[947,4],[950,4],[950,6],[950,7],[950,10],[950,9],[950,5],[952,0],[952,2],[953,2],[953,2],[954,0],[955,0],[899,3],[899,4],[905,3],[905,3],[659,2],[660,3],[956,1],[957,1],[958,1],[959,1],[960,1],[961,1],[962,1],[963,1],[964,1],[965,1],[966,1],[967,1],[968,1],[969,1],[929,0],[929,1],[929,1],[929,2],[929,2],[931,1],[931,1],[931,2],[931,2],[931,2],[865,0],[865,2],[867,3],[914,2],[914,2],[914,1],[914,1],[918,1],[918,2],[918,1],[918,2],[918,2],[918,2],[918,1],[918,1],[565,2],[565,2],[983,2],[983,2],[913,1],[913,1],[913,1],[913,1],[913,1],[912,2],[912,3],[917,3],[917,4],[917,3],[971,1],[971,1],[971,1],[977,1],[977,1],[977,1],[973,3],[973,4],[979,4],[979,5],[979,4],[972,0],[972,1],[978,1],[974,2],[974,2],[980,2],[990,4],[991,4],[991,4],[991,5],[991,7],[992,0],[992,1],[996,3],[994,2],[994,3],[994,3],[993,0],[993,2],[995,1],[995,3],[995,2],[997,0],[997,1],[999,5],[999,5],[998,2],[998,6],[998,5],[998,5],[998,5],[998,4],[1001,0],[683,0],[641,3],[644,5],[644,4],[644,3],[644,3],[644,2],[1000,1],[1000,1],[1002,0],[1002,2],[1002,2],[1005,2],[1005,2],[1003,0],[1003,3],[1003,3],[1006,2],[1006,3],[1006,3],[1009,1],[1009,1],[579,0],[579,1],[584,2],[590,2],[590,2],[580,0],[580,1],[585,4],[591,3],[591,4],[975,6],[975,3],[981,6],[981,5],[981,4],[981,6],[981,5],[981,4],[981,6],[981,5],[981,6],[981,5],[984,4],[984,3],[984,5],[987,5],[987,6],[987,5],[976,6],[982,4],[982,5],[982,6],[982,6],[982,6],[982,6],[1011,1],[1011,1],[1011,1],[1011,1],[1011,1],[1011,1],[1011,1],[1011,1],[1011,1],[986,4],[986,5],[989,5],[989,6],[989,5],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1013,1],[1013,1],[985,5],[985,3],[988,5],[988,6],[988,5],[970,4],[970,5],[970,6],[970,6],[970,5],[970,6],[970,4],[970,2],[564,0],[564,1],[566,2],[566,4],[1014,2],[1014,4],[559,1],[559,3],[560,1],[560,1],[560,2],[560,1],[560,1],[560,1],[560,1],[12,3],[12,3],[12,3],[25,3],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[28,2],[28,3],[28,4],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[1015,4],[1015,6],[1034,3],[1034,4],[1034,4],[1034,5],[1034,6],[1034,5],[1034,6],[1034,6],[1016,2],[1017,3],[1018,4],[1035,3],[1035,4],[1035,4],[1035,4],[1048,1],[1048,1],[1019,3],[1036,3],[1020,4],[1037,3],[1021,2],[1021,3],[1022,3],[1022,5],[1022,5],[1022,6],[1038,3],[1038,5],[1038,5],[1038,5],[1038,6],[1038,6],[1038,6],[1049,0],[1049,1],[1050,1],[1050,2],[1023,4],[1023,6],[1039,2],[1039,2],[1039,4],[1039,6],[1039,3],[1039,4],[1039,4],[1039,5],[1039,6],[1039,6],[1039,6],[1025,5],[1041,3],[1041,6],[1041,5],[1041,5],[1024,3],[1024,4],[1024,4],[1024,5],[1024,4],[1040,3],[1040,3],[1040,4],[1040,4],[1040,4],[1040,5],[1040,5],[1040,4],[1026,3],[1026,4],[1042,3],[1042,3],[1042,4],[1042,4],[1028,5],[1043,3],[1043,5],[1043,4],[1043,5],[1027,2],[1030,6],[1030,7],[1045,3],[1045,4],[1045,4],[1045,5],[1045,6],[1045,6],[1045,6],[1045,7],[1045,7],[1045,7],[1045,7],[1045,8],[1029,3],[1029,4],[1029,5],[1044,4],[1031,3],[1031,6],[1046,3],[1046,3],[1032,2],[1033,4],[1047,5],[1047,4],[1047,4],[1051,0],[1051,2],[1051,2],[1053,2],[1053,2],[1052,0],[1052,2],[1054,2],[506,6],[514,6],[514,6],[514,6],[514,6],[514,7],[514,3],[514,2],[514,2],[514,2],[1055,1],[1057,1],[1059,1],[1060,1],[671,1],[671,3],[672,1],[672,3],[672,3],[672,5],[1061,3],[1062,3],[1062,2],[1062,1],[1063,1],[1064,1],[1065,1],[1056,0],[1056,2],[1058,2],[1058,2],[15,2],[29,2],[906,3],[906,3],[906,3],[902,2],[902,2],[902,2],[907,2],[907,2],[907,2],[907,2],[907,2],[907,2],[903,2],[903,4],[908,2],[908,4],[908,4],[908,3],[908,4],[908,3],[908,4],[908,4],[908,3],[908,4],[908,3],[909,1],[909,1],[1066,1],[1066,2],[1067,1],[1067,2],[1067,3],[1067,3],[1067,2],[1068,4],[1069,2],[1069,3],[1069,4],[1069,4],[1069,3],[1069,3],[1069,4],[1069,2],[1069,3],[1069,2],[1069,3],[1069,3],[1069,4],[1069,3],[1069,4],[1069,4],[1069,5],[1069,4],[1069,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 22: - - parser.suggestSetOptions(); - parser.suggestKeywords(['ROLE']); - -break; -case 39: - - parser.suggestKeywords(['DATABASE', 'INDEX', 'MATERIALIZED VIEW', 'SCHEMA', 'TABLE', 'VIEW']); - -break; -case 40: case 42: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - -break; -case 41: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 43: case 1039: case 1800: case 2594: case 2636: case 2655: case 2698: case 2699: case 2735: - - parser.suggestDatabases(); - -break; -case 44: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); - -break; -case 45: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); - -break; -case 46: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 47: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 48: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - -break; -case 49: case 55: case 1234: case 1243: case 1244: case 1245: case 1884: case 2646: - - parser.addTablePrimary($$[$0-2]); - -break; -case 50: case 127: case 578: case 600: case 603: case 606: case 629: case 879: case 1190: case 2614: case 2631: case 2633: - - parser.suggestKeywords(['ON']); - -break; -case 51: case 190: case 429: case 558: case 760: case 787: case 880: case 898: case 905: case 1040: case 1240: case 1269: case 1272: case 1278: case 1791: case 2712: case 2732: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 53: case 278: case 282: case 320: case 554: case 560: case 868: case 896: case 901: case 902: case 903: case 908: case 1271: case 1281: case 1880: case 2644: case 2645: case 2657: - - parser.addTablePrimary($$[$0-1]); - -break; -case 54: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION', 'REBUILD']); - } else { - parser.suggestKeywords(['REBUILD']); - } - -break; -case 56: case 705: case 887: case 2529: - - parser.suggestKeywords(['VIEW']); - -break; -case 57: case 277: case 888: - - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 58: case 276: case 281: case 889: case 895: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 59: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['DISABLE REWRITE', 'ENABLE REWRITE']); - -break; -case 60: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['REWRITE']); - -break; -case 99: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); - } else { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 100: case 136: case 335: - - parser.suggestKeywords(['COLUMNS']); - -break; -case 104: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['LOCATION', 'PARTITION']); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - var keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2); - keywords.push({ value: 'PARTITION', weight: 1 }); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 107: - - parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'PRIMARY KEY', 'UNIQUE']); - -break; -case 110: case 118: case 130: case 187: case 233: case 234: case 235: case 2681: - - parser.suggestKeywords(['PARTITION']); - -break; -case 114: - - parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); - -break; -case 115: case 266: - - parser.suggestKeywords(['AS DIRECTORIES']); - -break; -case 116: case 267: - - parser.suggestKeywords(['DIRECTORIES']); - -break; -case 117: - - parser.suggestKeywords(['TO PARTITION']); - -break; -case 119: case 288: - - parser.suggestKeywords(['PARTITIONS']); - -break; -case 120: - - parser.suggestKeywords(['LOCATION']); - -break; -case 122: case 569: case 570: case 573: case 585: case 610: case 628: case 670: case 671: case 676: case 681: case 685: case 2408: - - parser.suggestKeywords(['BY']); - -break; -case 123: case 1019: case 1024: case 1028: case 1067: case 1068: case 1069: case 1097: case 1105: case 1108: case 1111: case 1116: case 1119: - - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 128: - - if (!$$[$0-1]) { - parser.suggestKeywords(['STORED AS DIRECTORIES']); - } - -break; -case 134: - - parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', - 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', - 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', - 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', - 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); - -break; -case 135: - - parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', - 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', - 'SET SERDE', 'SET SERDEPROPERTIES']); - -break; -case 137: - - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); - -break; -case 138: - - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); - -break; -case 140: case 1023: - - parser.suggestKeywords(['TO']); - -break; -case 141: case 1796: - - parser.suggestDatabases({ appendDot: true }); - -break; -case 151: - - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - -break; -case 161: case 164: case 166: - - parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); - -break; -case 163: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - -break; -case 165: - - if (!$$[$0-2] && !$$[$0-1]) { - if ($$[$0-3].suggestKeywords) { - var keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - } - } else if ($$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - parser.addColumnLocation($$[$0-4].location, [ $$[$0-4].identifier ]); - -break; -case 167: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); - } - -break; -case 170: - - parser.suggestKeywords(['NO_DROP', 'OFFLINE']); - -break; -case 172: case 648: - - parser.suggestFileFormats(); - -break; -case 174: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH SERDEPROPERTIES']); - } - -break; -case 178: - - parser.suggestKeywords(['WAIT']); - -break; -case 181: - - parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); - -break; -case 182: case 272: - - parser.suggestKeywords(['TBLPROPERTIES']); - -break; -case 185: - - if (!$$[$0-1]) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - -break; -case 188: - - parser.suggestKeywords(['WITH TABLE']); - -break; -case 189: case 317: case 759: case 786: case 897: case 1268: case 1277: case 2598: case 2619: - - parser.suggestKeywords(['TABLE']); - -break; -case 204: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); - } else { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 206: - - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 210: case 275: case 774: case 876: case 886: case 890: case 894: case 1037: case 1038: case 1207: case 1274: case 2597: case 2643: case 2656: case 2686: case 2715: - - parser.addTablePrimary($$[$0]); - -break; -case 211: case 319: case 871: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - -break; -case 212: case 280: case 318: - - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 219: case 259: case 261: case 623: case 790: case 1777: case 1781: case 1785: case 1811: case 1812: case 1845: case 1848: case 1977: case 2045: case 2726: - - parser.suggestColumns(); - -break; -case 227: - - if (!$$[$0-1]) { - parser.suggestKeywords(['CASCADE']); - } - -break; -case 242: case 453: case 455: case 456: case 458: case 459: case 937: case 938: case 939: case 1226: case 1920: case 1949: case 1980: case 1993: case 1997: case 2034: case 2038: case 2058: case 2083: case 2084: case 2165: case 2167: case 2231: case 2241: case 2248: case 2260: case 2407: case 2731: case 2769: case 2770: -this.$ = $$[$0]; -break; -case 249: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['LOCATION'] }; - } - -break; -case 271: - - parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); - -break; -case 273: case 701: case 724: case 1208: case 1930: case 2327: - - parser.suggestKeywords(['SELECT']); - -break; -case 279: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE', 'REPAIR TABLE']); - } else { - parser.suggestKeywords(['TABLE']); - } - -break; -case 283: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['ADD PARTITIONS', 'DROP PARTITIONS', 'SYNC PARTITIONS']); - } - -break; -case 293: - - parser.suggestKeywords(['FUNCTION']); - -break; -case 309: case 310: - - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - -break; -case 311: - - parser.suggestKeywords(['INSERT', 'SELECT']); - -break; -case 316: - - parser.addTablePrimary($$[$0-6]); - -break; -case 321: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); - } else { - parser.suggestKeywords(['COMPUTE STATISTICS']); - } - -break; -case 322: - - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['STATISTICS']); - -break; -case 323: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - -break; -case 324: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - -break; -case 325: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'NOSCAN', weight: 1 }])); - -break; -case 326: - - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($$[$0-1]); - -break; -case 327: - - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($$[$0-6]); - -break; -case 339: - - parser.suggestKeywords(['METADATA']); - -break; -case 343: - - if (!$$[$0-1]) { - parser.suggestDdlAndDmlKeywords([ - { value: 'AST', weight: 2 }, - { value: 'AUTHORIZATION', weight: 2 }, - { value: 'CBO', weight: 2 }, - { value: 'DEPENDENCY', weight: 2 }, - { value: 'EXTENDED', weight: 2 }, - { value: 'FORMATTED CBO', weight: 2 }, - { value: 'LOCKS', weight: 2 }, - { value: 'VECTORIZATION', weight: 2 } - ]); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - parser.suggestDdlAndDmlKeywords($$[$0-1].suggestKeywords); - } else { - parser.suggestDdlAndDmlKeywords(); - } - -break; -case 344: - - parser.suggestKeywords(['CBO']); - -break; -case 348: case 349: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['COST', 'JOINCOST'] }; - } - -break; -case 353: - - var keywords = []; - if (!$$[$0]) { - keywords = keywords.concat([ - { weight: 1, value: 'DETAIL' }, - { weight: 1, value: 'EXPRESSION' }, - { weight: 1, value: 'OPERATOR' }, - { weight: 1, value: 'SUMMARY' } - ]); - } - if (!$$[$0-1]) { - keywords.push({ weight: 2, value: 'ONLY' }); - } - if (keywords.length) { - this.$ = { suggestKeywords: keywords }; - } - -break; -case 379: - - if ($$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } else { - if ($$[$0-3] && !$$[$0-2]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); - } else if (!$$[$0-3] && !$$[$0-2]) { - parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); - } else if ($$[$0-2]) { - parser.suggestKeywords(['TABLE']); - } - } - -break; -case 380: - - parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); - -break; -case 381: case 409: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 383: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 384: - - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 385: - - parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); - -break; -case 387: - - var keywords = []; - if (!$$[$0]) { - keywords.push('WITH DBPROPERTIES'); - } - if (!$$[$0-1] && !$$[$0]) { - keywords.push('LOCATION'); - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 402: - - parser.suggestKeywords(['DBPROPERTIES']); - -break; -case 421: - - var keywords = []; - if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'COMMENT', weight: 10 }); - } - if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'PARTITIONED BY', weight: 9 }); - } - if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'CLUSTERED BY', weight: 8 }); - } - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'SKEWED BY', weight: 7 }); - } else if ($$[$0-6] && $$[$0-6].suggestKeywords && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 7)); // Get the last optional from SKEWED BY - } - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'ROW FORMAT', weight: 6 }); - } else if ($$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 6)); - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'STORED AS', weight: 5 }); - keywords.push({ value: 'STORED BY', weight: 5 }); - } else if ($$[$0-4] && $$[$0-4].storedBy && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 4 }); - } - if (!$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LOCATION', weight: 3 }); - } - if (!$$[$0-1]) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - parser.suggestKeywords(keywords); - -break; -case 422: - - parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); - this.$ = $$[$0]; - -break; -case 427: -this.$ = []; -break; -case 431: case 752: case 754: case 1206: case 1700: case 1703: case 1818: case 1896: case 2065: case 2244: case 2324: case 2382: -this.$ = $$[$0-1]; -break; -case 432: case 753: case 755: -this.$ = $$[$0-3]; -break; -case 435: - - parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); - -break; -case 436: case 1922: -this.$ = [$$[$0]]; -break; -case 437: -this.$ = $$[$0-2].concat($$[$0]); -break; -case 442: case 444: case 621: - - parser.checkForKeywords($$[$0-1]); - -break; -case 443: case 445: - - parser.checkForKeywords($$[$0-3]); - -break; -case 446: - - this.$ = $$[$0-3]; - this.$.type = $$[$0-2]; - var keywords = []; - if (!$$[$0]) { - keywords = keywords.concat([ - { value: 'COMMENT', weight: 1 }, - { value: 'CHECK', weight: 2 }, - { value: 'PRIMARY KEY', weight: 2 }, - { value: 'UNIQUE', weight: 2 }, - { value: 'NOT NULL', weight: 2 }, - { value: 'DEFAULT', weight: 2 } - ]); - if (!$$[$0-1] && $$[$0-2].toLowerCase() === 'double') { - keywords.push({ value: 'PRECISION', weight: 3 }); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - keywords = keywords.concat($$[$0-1].suggestKeywords) - } - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 447: case 489: case 495: case 496: case 509: case 512: case 524: case 526: case 812: - - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - -break; -case 454: -this.$ = { suggestKeywords: [{ value: 'KEY', weight: 3 }] }; -break; -case 457: -this.$ = { suggestKeywords: [{ value: 'NULL', weight: 3 }] }; -break; -case 460: - - this.$ = { - suggestKeywords: [ - { value: 'LITERAL', weight: 3 }, - { value: 'CURRENT_USER()', weight: 3 }, - { value: 'CURRENT_DATE()', weight: 3 }, - { value: 'CURRENT_TIMESTAMP()', weight: 3 }, - { value: 'NULL', weight: 3 } - ] - } - -break; -case 461: - - var keywords = []; - if (!$$[$0]) { - keywords.push({ value: 'RELY', weight: 3 }); - keywords.push({ value: 'NORELY', weight: 3 }); - if (!$$[$0-1]) { - keywords.push({ value: 'NOVALIDATE', weight: 3 }); - if (!$$[$0-2]) { - keywords.push({ value: 'RELY', weight: 3 }); - keywords.push({ value: 'NORELY', weight: 3 }); - } - } - } - if (keywords.length) { - this.$ = { suggestKeywords: keywords }; - } - -break; -case 494: - - parser.suggestKeywords(parser.getTypeKeywords()); - -break; -case 508: case 511: - - parser.suggestKeywords(['COMMENT']); - -break; -case 534: - - parser.suggestKeywords(['CONSTRAINT']); - -break; -case 544: - - parser.suggestKeywordsForOptionalsLR([$$[$0-1], $$[$0-2], $$[$0-3]], [ - [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], - { value: 'NOVALIDATE', weight: 2 }, - { value: 'DISABLE', weight: 3 } - ]); - -break; -case 548: - - parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'UNIQUE']); - -break; -case 553: - - parser.suggestKeywordsForOptionalsLR([$$[$0-1], $$[$0-2], $$[$0-3]], [ - [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], - { value: 'NOVALIDATE', weight: 2 }, - { value: 'DISABLE', weight: 1 }]); - -break; -case 555: case 565: - - parser.suggestKeywords(['KEY']); - -break; -case 557: - - parser.suggestKeywords(['REFERENCES']); - -break; -case 574: - - parser.suggestKeywords(['HASH', 'RANGE']); - -break; -case 588: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); - } else { - parser.suggestKeywords(['INTO']); - } - -break; -case 589: - - parser.suggestKeywords(['BUCKETS']); - -break; -case 597: - - parser.suggestKeywords(['SORTED ON']); - -break; -case 626: -this.$ = { suggestKeywords: ['STORED AS DIRECTORIES'] }; -break; -case 635: - - this.$ = $$[$0] - -break; -case 636: - - parser.suggestKeywords(['FORMAT']); - -break; -case 637: - - parser.suggestKeywords(['DELIMITED', 'SERDE']); - -break; -case 642: - - this.$ = { storedBy: true } - -break; -case 643: - - parser.suggestKeywords(['AS', 'BY']); - -break; -case 645: -this.$ = { suggestKeywords: ['STORED AS'] }; -break; -case 660: - - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; - } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-4].suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; - } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; - } - -break; -case 667: -this.$ = { suggestKeywords: ['ESCAPED BY'] }; -break; -case 669: case 675: case 680: case 684: - - parser.suggestKeywords(['TERMINATED BY']); - -break; -case 674: - - parser.suggestKeywords(['ITEMS TERMINATED BY']); - -break; -case 679: - - parser.suggestKeywords(['KEYS TERMINATED BY']); - -break; -case 688: - - parser.suggestKeywords(['DEFINED AS']); - -break; -case 689: case 730: case 734: case 763: case 1929: case 2457: - - parser.suggestKeywords(['AS']); - -break; -case 693: case 694: - - parser.suggestKeywords(['SERDEPROPERTIES']); - -break; -case 703: - - parser.commitLocations(); - -break; -case 706: case 719: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 707: - - parser.suggestKeywordsForOptionalsLR([undefined, $$[$0-2], $$[$0-3], $$[$0-4], $$[$0-5], $$[$0-6], $$[$0-7], $$[$0-8], $$[$0-9]], [ - { value: 'AS SELECT', weight: 1 }, - { value: 'TBLPROPERTIES', weight: 2 }, - { value: 'LOCATION', weight: 3 }, - [{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }], - [{ value: 'CLUSTERED ON', weight: 5 }, { value: 'DISTRIBUTED ON', weight: 5 }], - { value: 'PARTITIONED ON', weight: 6 }, - { value: 'COMMENT', weight: 7 }, - { value: 'DISABLE REWRITE', weight: 8 } - ]); - -break; -case 717: - - parser.suggestKeywords(['REWRITE']); - -break; -case 720: - - if (!$$[$0-7]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 723: - - var keywords = [{value: 'AS', weight: 1 }]; - if (!$$[$0-1]) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - if (!$$[$0-2]) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - } - parser.suggestKeywords(keywords); - -break; -case 732: - - if (!$$[$0-1]) { - parser.suggestKeywords(['USING']); - } else { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - -break; -case 736: - - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - -break; -case 739: - - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - -break; -case 749: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 758: - - parser.suggestKeywords(['ON TABLE']); - -break; -case 764: case 777: - - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - -break; -case 771: - - if ($$[$0-4] && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { - parser.suggestKeywords(['AS']); - } - -break; -case 773: - - if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if ($$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); - } else if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); - } - -break; -case 780: - - parser.suggestKeywords(['DEFERRED REBUILD']); - -break; -case 781: - - parser.suggestKeywords(['REBUILD']); - -break; -case 800: - - parser.suggestFunctions(); - -break; -case 826: - - parser.addCommonTableExpressions($$[$0-1]); - -break; -case 850: - - parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); - -break; -case 854: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - -break; -case 855: - - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - -break; -case 857: - - if (!$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 860: case 865: case 884: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 861: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 870: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 873: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 877: - - parser.suggestKeywords(['IF EXISTS']); - -break; -case 883: - - parser.suggestKeywords(['FUNCTION', 'MACRO']); - -break; -case 891: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 892: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 900: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 904: case 1110: case 1115: case 1118: case 1122: - - parser.suggestKeywords(['FROM']); - -break; -case 906: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - parser.suggestKeywords(['WHERE']); - } - -break; -case 910: - - parser.suggestKeywords(['TRANSACTIONS']); - -break; -case 916: case 1296: case 1298: - - parser.addStatementLocation(_$[$0]); - -break; -case 920: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); - this.$ = { selectList: $$[$0] }; - -break; -case 921: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } - -break; -case 922: - - parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); - -break; -case 924: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); - if ($$[$0].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($$[$0]); - } - if ($$[$0].suggestFunctions) { - parser.suggestFunctions(); - } - if ($$[$0].suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($$[$0].suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($$[$0].suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($$[$0].suggestAggregateFunctions && (!$$[$0-1] || $$[$0-1] === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - -break; -case 925: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] || $$[$0-1] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 926: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - -break; -case 927: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - -break; -case 928: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 929: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-2]); - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 930: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-3]); - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 931: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - -break; -case 940: case 941: - - this.$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 942: case 2235: case 2236: - - this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 948: case 949: case 950: case 951: -this.$ = { }; -break; -case 952: -this.$ = { lateralView: { udtf: $$[$0-2], tableAlias: $$[$0-1], columnAliases: $$[$0] }}; -break; -case 953: - - if ($$[$0-1].function.toLowerCase() === 'explode') { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; - } else if ($$[$0-1].function.toLowerCase() === 'posexplode') { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; - } else { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: [] }, suggestKeywords: ['AS'] }; - } - -break; -case 954: -this.$ = { lateralView: { udtf: $$[$0-1], columnAliases: $$[$0] }}; -break; -case 955: case 957: - - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - -break; -case 956: - - parser.suggestKeywords(['JOIN', 'OUTER JOIN', 'SEMI JOIN']); - -break; -case 958: case 960: case 961: case 963: case 964: case 965: case 966: case 968: case 969: case 970: case 971: -this.$ = { suggestKeywords: ['JOIN'] }; -break; -case 959: case 967: -this.$ = { suggestKeywords: ['OUTER'] }; -break; -case 962: -this.$ = { suggestKeywords: ['OUTER', 'SEMI'] }; -break; -case 972: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true, true, true]), - cursorAtEnd: !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] - }; - -break; -case 973: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] - } - -break; -case 974: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true]), - cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] - } - -break; -case 975: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$$[$0-1] && !$$[$0] - } - -break; -case 976: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$$[$0] - } - -break; -case 977: - - this.$ = { - suggestKeywords: [], - cursorAtEnd: true - } - -break; -case 998: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - -break; -case 999: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - -break; -case 1002: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - -break; -case 1005: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true, !$$[$0-2], true]); - if ($$[$0-7].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-7].suggestKeywords, 1)); - } - this.$ = parser.getValueExpressionKeywords($$[$0-7], keywords); - this.$.cursorAtEnd = !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if ($$[$0-7].columnReference) { - this.$.columnReference = $$[$0-7].columnReference; - } - if (!$$[$0-5]) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-7], _$[$0-7]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1006: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], - [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, !$$[$0-2], true]); - if ($$[$0-6].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 8)); - } - if ($$[$0-6].valueExpression) { - this.$ = parser.getValueExpressionKeywords($$[$0-6].valueExpression, keywords); - if ($$[$0-6].valueExpression.columnReference) { - this.$.columnReference = $$[$0-6].valueExpression.columnReference; - } - } else { - this.$ = { suggestKeywords: keywords }; - } - this.$.cursorAtEnd = !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1007: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], - [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, !$$[$0-2], true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1008: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], - [true, true, true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1009: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-1], $$[$0]], - [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], - [true, true]); - if ($$[$0-3].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 5)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-3], _$[$0-3]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1010: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'LIMIT', weight: 3 }], [true]); - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 4)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = _$[$0-2]; - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1011: - - this.$ = { suggestKeywords: [], cursorAtEnd: true }; - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-7], _$[$0-7]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 1015: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - -break; -case 1018: - - if (!$$[$0-1]) { - parser.suggestKeywords(['ON', 'TO']); - } else { - parser.suggestKeywords(['TO']); - } - -break; -case 1021: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - -break; -case 1026: case 1030: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - -break; -case 1034: - - parser.suggestKeywords(['DATABASE', 'TABLE']); - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1043: - - if ($$[$0].toUpperCase() === 'ALL') { - this.$ = { singleAll: true }; - } - -break; -case 1049: case 1050: case 1051: case 1101: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - -break; -case 1080: - - parser.suggestKeywords(['GRANT OPTION']); - -break; -case 1081: case 1085: case 1125: - - parser.suggestKeywords(['OPTION']); - -break; -case 1084: - - parser.suggestKeywords(['ADMIN OPTION']); - -break; -case 1093: - - parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - -break; -case 1096: - - if (!$$[$0-1]) { - if ($$[$0-2].singleAll) { - parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); - } else { - parser.suggestKeywords(['FROM', 'ON']); - } - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 1099: - - parser.suggestKeywords(['OPTION FOR']); - -break; -case 1100: case 1113: - - parser.suggestKeywords(['FOR']); - -break; -case 1104: - - if (!$$[$0-1]) { - parser.suggestKeywords(['FROM', 'ON']); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 1107: - - if ($$[$0-1].toUpperCase() === 'ADMIN') { - parser.suggestKeywords(['FROM', 'OPTION FOR']); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 1114: - - parser.suggestKeywords(['ROLE']); - -break; -case 1131: - - var keywords = []; - if ($$[$0-1].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); - } else { - keywords = ['SELECT']; - } - if ($$[$0-1].addValues) { - keywords.push({ weight: 1.1, value: 'VALUES' }); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 1134: - - if (!$$[$0].keepTables) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - -break; -case 1138: - - parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); - -break; -case 1139: - - if ($$[$0-1].cursorAtEnd) { - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = parser.yy.result.suggestKeywords || []; - if ($$[$0].suggestKeywords) { - keywords = keywords.concat($$[$0].suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - -break; -case 1140: - - if ($$[$0].cursorAtStart) { - parser.checkForSelectListKeywords($$[$0-1].tableExpression); - } - -break; -case 1141: - - $$[$0-3].owner = 'insert'; - parser.addTablePrimary($$[$0-3]); - -break; -case 1142: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] } - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['IF NOT EXISTS'] } - } - -break; -case 1143: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['STORED AS'] }; - } - -break; -case 1144: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['STORED AS'] }; - } - -break; -case 1145: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'], addValues: true }; - } else if (!$$[$0]) { - this.$ = { addValues: true }; - } - -break; -case 1146: - - parser.suggestKeywords(['OVERWRITE', 'INTO']); - -break; -case 1147: - - if (!$$[$0-1]) { - parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - this.$ = { keepTables: true } - -break; -case 1148: case 1159: - - this.$ = { keepTables: true } - -break; -case 1149: case 1160: case 1161: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - -break; -case 1150: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 1151: - - parser.suggestKeywords(['DIRECTORY']); - -break; -case 1158: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - this.$ = { keepTables: true } - -break; -case 1171: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); - } else { - parser.suggestKeywords(['SELECT']); - } - -break; -case 1172: - - if ($$[$0-1].cursorAtEnd) { - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = parser.yy.result.suggestKeywords || []; - if ($$[$0].suggestKeywords) { - keywords = keywords.concat($$[$0].suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - -break; -case 1181: - - parser.suggestKeywords(['FORMAT DELIMITED']); - -break; -case 1182: - - parser.suggestKeywords(['DELIMITED']); - -break; -case 1184: -this.$ = { selectList: $$[$0] }; -break; -case 1185: - - this.$ = $$[$0-1]; - this.$.cursorAtEnd = true; - -break; -case 1186: - - parser.selectListNoTableSuggest($$[$0], $$[$0-1]); - -break; -case 1187: - - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] || $$[$0-1] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - -break; -case 1191: case 1227: case 1810: case 1982: case 1983: case 1989: case 1990: case 2320: case 2409: - - parser.valueExpressionSuggest(); - -break; -case 1193: - - parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'WHEN', weight: 2 }]); - -break; -case 1195: - - $$[$0-6].alias = $$[$0-4]; - parser.addTablePrimary($$[$0-6]); - if ($$[$0-2].subQuery) { - parser.addTablePrimary({ subQueryAlias: $$[$0] }); - } else { - $$[$0-2].alias = $$[$0]; - } - -break; -case 1196: - - parser.suggestKeywords(['INTO']); - -break; -case 1197: - - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - -break; -case 1199: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['AS T USING']); - -break; -case 1200: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['T USING']); - -break; -case 1201: - - $$[$0-3].alias = $$[$0-1]; - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['USING']); - -break; -case 1202: - - $$[$0-4].alias = $$[$0-2]; - parser.addTablePrimary($$[$0-4]); - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - -break; -case 1203: - - $$[$0-4].alias = $$[$0-2]; - parser.addTablePrimary($$[$0-4]); - -break; -case 1204: - - $$[$0-5].alias = $$[$0-3]; - parser.addTablePrimary($$[$0-5]); - parser.suggestKeywords(['AS S ON']); - -break; -case 1205: - - $$[$0-6].alias = $$[$0-4]; - parser.addTablePrimary($$[$0-6]); - parser.suggestKeywords(['S ON']); - -break; -case 1214: - - if ($$[$0].suggestThenKeywords) { - parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); - } - -break; -case 1215: case 1217: - - if (!$$[$0-1].notPresent) { - parser.suggestKeywords(['WHEN']); - } - -break; -case 1216: - - if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { - var keywords = []; - if (!$$[$0-1].isDelete) { - keywords.push('DELETE'); - } - if (!$$[$0-1].isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$$[$0-1].isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - -break; -case 1218: - - if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { - var keywords = []; - if (!$$[$0-2].isDelete && !$$[$0-1].isDelete) { - keywords.push('DELETE'); - } - if (!$$[$0-2].isInsert && !$$[$0-1].isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$$[$0-2].isUpdate && !$$[$0-1].isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - -break; -case 1219: -this.$ = { notPresent: !!$$[$0-4], isDelete: $$[$0].isDelete, isInsert: $$[$0].isInsert, isUpdate: $$[$0].isUpdate }; -break; -case 1220: - - if (!$$[$0-1]) { - parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); - } else { - parser.suggestKeywords(['MATCHED']); - } - -break; -case 1221: - - if (!$$[$0-1]) { - parser.suggestKeywords(['AND', 'THEN']); - } else { - parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'THEN', weight: 2 }]); - } - -break; -case 1223: -this.$ = { suggestThenKeywords: true }; -break; -case 1228: -this.$ = { isUpdate: true }; -break; -case 1229: -this.$ = { isDelete: true }; -break; -case 1230: -this.$ = { isInsert: true }; -break; -case 1231: - - parser.suggestKeywords(['SET']); - -break; -case 1233: case 1750: case 1753: - - parser.suggestKeywords(['VALUES']); - -break; -case 1235: - - parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); - -break; -case 1236: - - if (!$$[$0-1]) { - parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); - } else { - parser.suggestKeywords(['INPATH']); - } - -break; -case 1238: - - if (!$$[$0-1]) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - -break; -case 1239: - - parser.suggestKeywords([ 'TABLE' ]); - -break; -case 1242: - - parser.addTablePrimary($$[$0-3]); - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['INPUTFORMAT', 'PARTITION']); - } else if ($$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['INPUTFORMAT']); - } - -break; -case 1253: - - parser.suggestKeywords(['SERDE']); - -break; -case 1255: - - if (!$$[$0]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); - } else if (!$$[$0].hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - -break; -case 1256: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['FROM'])); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 1260: - - if (!$$[$0-1]) { - parser.suggestKeywords(['LOCATION']); - } - -break; -case 1261: - - if (!$$[$0-4]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); - } else if (!$$[$0-4].hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - -break; -case 1263: - - if ($$[$0-5].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 2).concat(['FROM'])); - } - -break; -case 1266: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0]) { - this.$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; - } else { - this.$ = { hasExternal: true } - } - -break; -case 1267: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] }; - } - -break; -case 1275: case 1282: case 1289: - - parser.addTablePrimary($$[$0-4]); - -break; -case 1276: case 1290: case 1291: - - parser.addTablePrimary($$[$0-9]); - -break; -case 1280: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); - } else { - parser.suggestKeywords([ 'TO' ]); - } - -break; -case 1283: - - parser.addTablePrimary($$[$0-5]); - parser.suggestKeywords(['FOR replication()']); - -break; -case 1284: - - parser.addTablePrimary($$[$0-6]); - parser.suggestKeywords(['replication()']); - -break; -case 1287: - - parser.addTablePrimary($$[$0-5]); - if (!$$[$0-4]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1288: - - parser.addTablePrimary($$[$0-10]); - if (!$$[$0-9]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1293: case 1294: - - return parser.yy.result; - -break; -case 1295: - - parser.prepareNewStatement(); - -break; -case 1297: case 1299: - - parser.addStatementLocation(_$[$0-3]); - -break; -case 1701: case 1704: case 1819: -this.$ = ''; -break; -case 1719: - - parser.suggestKeywords(['INDEX', 'INDEXES']); - -break; -case 1720: - - parser.suggestKeywords(['FORMATTED']); - -break; -case 1734: case 1737: - - parser.yy.correlatedSubQuery = false; - -break; -case 1735: case 1739: - - parser.suggestKeywords(['EXISTS']); - -break; -case 1738: - - parser.suggestKeywords(['NOT EXISTS']); - -break; -case 1749: case 1751: case 1752: case 1754: - - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - -break; -case 1789: case 1820: - - parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0] } ] }; - -break; -case 1790: case 1821: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; - -break; -case 1792: case 1797: - - parser.suggestDatabases(); - this.$ = { identifierChain: [{ name: $$[$0-2] }] }; - -break; -case 1793: case 1823: - - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 1794: -this.$ = [{ name: $$[$0] }]; -break; -case 1795: -this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; -break; -case 1822: case 2689: - - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - -break; -case 1825: -this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; -break; -case 1828: - - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - -break; -case 1829: case 2199: - - parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); - -break; -case 1831: - - this.$ = [ $$[$0].identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 1832: - - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $$[$0-2].push($$[$0].identifier); - parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); - -break; -case 1833: case 1841: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1834: case 1842: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1837: - - parser.suggestColumns({ - identifierChain: $$[$0-2] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 1838: - - parser.suggestColumns({ - identifierChain: $$[$0-4] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 1839: -this.$ = [ $$[$0].identifier ]; -break; -case 1840: - - $$[$0-2].push($$[$0].identifier); - -break; -case 1843: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1844: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1846: - - parser.suggestColumns({ identifierChain: $$[$0-2] }); - -break; -case 1847: - - parser.suggestColumns({ identifierChain: $$[$0-4] }); - -break; -case 1849: -this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; -break; -case 1850: -this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; -break; -case 1851: -this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; -break; -case 1852: -this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; -break; -case 1853: -this.$ = { identifier: { name: $$[$0-3] }}; -break; -case 1879: - - parser.addTablePrimary($$[$0-2]); - parser.addColumnLocation(_$[$0-1], $$[$0-1]); - -break; -case 1881: - - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 1885: - - if (!$$[$0-4]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - -break; -case 1886: - - if (!$$[$0-3]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - -break; -case 1887: - - parser.addTablePrimary($$[$0-2]); - parser.suggestColumns(); - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1888: - - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1891: - - if (!$$[$0-1]) { - parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1892: case 1894: - - if (!$$[$0-1]) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 1893: case 1895: - - if (!$$[$0-2]) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 1898: case 2246: -this.$ = $$[$0-2]; -break; -case 1901: - - parser.addCommonTableExpressions($$[$0-3]); - -break; -case 1902: case 1903: case 1925: - - parser.addCommonTableExpressions($$[$0-2]); - -break; -case 1917: - - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - -break; -case 1918: - - parser.suggestKeywords(['ALL', 'DISTINCT']); - -break; -case 1923: -this.$ = $$[$0-2].concat([$$[$0]]); -break; -case 1927: - - parser.addCommonTableExpressions($$[$0-4]); - -break; -case 1928: - - parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); - $$[$0-1].alias = $$[$0-4]; - this.$ = $$[$0-1]; - -break; -case 1935: case 1936: - - parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); - -break; -case 1937: - - var keywords = []; - - parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); - - if ($$[$0-3]) { - if (!$$[$0-3].hasLateralViews && typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($$[$0-3].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - } - if ($$[$0-3].tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); - } - if ($$[$0-3].tableReferenceList.suggestJoins) { - parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); - } - if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($$[$0-3].tableReferenceList); - } - } - } - - if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['CROSS', 'FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'LEFT SEMI', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($$[$0-1].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].suggestFilters) { - parser.suggestFilters($$[$0-1].suggestFilters); - } - if ($$[$0-1].suggestGroupBys) { - parser.suggestGroupBys($$[$0-1].suggestGroupBys); - } - if ($$[$0-1].suggestOrderBys) { - parser.suggestOrderBys($$[$0-1].suggestOrderBys); - } - - if ($$[$0-1].empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'CROSS JOIN', weight: 1 }, - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - -break; -case 1938: - - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$$[$0-1]) { - parser.addClauseLocation('whereClause', _$[$0-2]); - parser.addClauseLocation('limitClause', _$[$0-2]); - return; - } - parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); - var keywords = []; - - if ($$[$0-1].suggestColRefKeywords) { - parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); - parser.addColRefIfExists($$[$0-1]); - } - - if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - -break; -case 1942: - - this.$ = { tableReferenceList : $$[$0-1], suggestKeywords: ['LATERAL VIEW'] } - if ($$[$0]) { - parser.yy.lateralViews = $$[$0].lateralViews; - this.$.hasLateralViews = true; - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = this.$.suggestKeywords.concat($$[$0].suggestKeywords); - } - } - -break; -case 1943: case 2253: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1944: - - if ($$[$0]) { - parser.yy.lateralViews = $$[$0].lateralViews; - } - -break; -case 1946: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], - [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true, true, !$$[$0-2], true]); - - if (keywords.length > 0) { - this.$ = { suggestKeywords: keywords, empty: !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - } else { - this.$ = {}; - } - - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - -break; -case 1950: - - if ($$[$0].suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1951: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1954: - - this.$ = { valueExpression: $$[$0] ? false : $$[$0-1] }; - if (!$$[$0]) { - this.$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; - } - -break; -case 1955: case 2004: case 2029: case 2033: case 2036: - - parser.suggestSelectListAliases(); - -break; -case 1956: - - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1957: - - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1964: - - parser.suggestKeywords(['CUBE', 'ROLLUP']); - -break; -case 1966: - - parser.suggestKeywords(['SETS']); - -break; -case 1994: - - if ($$[$0].emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1995: - - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1999: - - this.$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 2000: case 2001: case 2002: -this.$ = { emptyOrderBy: false }; -break; -case 2003: - - if ($$[$0-1].suggestKeywords && $$[$0].suggestKeywords) { - this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); - } else { - this.$ = parser.mergeSuggestKeywords($$[$0]); - } - -break; -case 2005: - - this.$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 2007: -this.$ = { suggestKeywords: ['ASC', 'DESC'] };; -break; -case 2010: -this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; -break; -case 2014: - - parser.suggestKeywords(['FIRST', 'LAST']); - -break; -case 2018: -this.$ = { suggestKeywords: ['SORT BY'] }; -break; -case 2027: case 2031: case 2035: - - suggestKeywords: ['BY']; - -break; -case 2028: case 2032: - - parser.suggestColumns(); - parser.suggestSelectListAliases(); - -break; -case 2043: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - this.$ = $$[$0]; - -break; -case 2056: case 2057: - - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2059: - - // verifyType($$[$0], 'NUMBER'); - this.$ = $$[$0]; - $$[$0].types = ['NUMBER']; - -break; -case 2060: case 2061: case 2062: case 2063: case 2070: case 2071: case 2072: case 2073: case 2074: case 2075: case 2081: case 2082: case 2103: case 2161: case 2162: case 2220: -this.$ = { types: [ 'BOOLEAN' ] }; -break; -case 2064: - - this.$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - -break; -case 2066: case 2067: case 2068: case 2069: - - parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2076: case 2077: - - // verifyType($$[$0-2], 'BOOLEAN'); - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2078: case 2079: case 2080: - - // verifyType($$[$0-2], 'NUMBER'); - // verifyType($$[$0], 'NUMBER'); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 2086: - - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2087: case 2089: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 2088: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2090: - - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2091: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 2092: - - parser.suggestFunctions(); - parser.suggestColumns(); - this.$ = { types: [ 'T' ] }; - -break; -case 2093: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 2094: - - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 2095: - - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2096: - - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2097: - - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2098: case 2099: case 2100: - - parser.suggestKeywords(['NOT']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2101: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2102: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 2104: - - this.$ = $$[$0-1]; - -break; -case 2105: - - parser.valueExpressionSuggest(); - this.$ = { types: ['T'], typeSet: true }; - -break; -case 2106: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2107: case 2108: case 2109: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2110: case 2111: case 2112: case 2113: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0].types); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 2114: case 2116: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2115: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - -break; -case 2117: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; - -break; -case 2118: case 2119: case 2120: case 2121: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 2122: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-3].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2123: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2124: case 2125: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; -break; -case 2126: case 2127: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; -break; -case 2128: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; - -break; -case 2129: - - if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 2130: - - if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 2131: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2132: case 2138: - - parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2133: - - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2134: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; - -break; -case 2135: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 2136: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 2137: - - parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-4].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2139: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2140: case 2142: case 2144: case 2146: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - -break; -case 2141: case 2145: - - parser.addColRefIfExists($$[$0]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 2143: case 2147: - - parser.addColRefIfExists($$[$0-2]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 2148: case 2149: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 2150: case 2151: case 2152: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 2153: case 2154: case 2155: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions(['NUMBER']); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 2156: case 2157: case 2158: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 2159: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 2160: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 2163: - - parser.valueExpressionSuggest(undefined, $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2164: - - parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2166: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 2168: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 2169: - - this.$ = $$[$0]; - this.$.suggestFilters = $$[$0-1].suggestFilters; - -break; -case 2170: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 2171: case 2460: case 2465: case 2466: -this.$ = { types: [ 'T' ] }; -break; -case 2172: case 2174: - - $$[$0].position = 1; - -break; -case 2173: - - $$[$0].position = $$[$0-2].position + 1; - this.$ = $$[$0]; - -break; -case 2175: - - $$[$0-2].position += 1; - -break; -case 2176: - - $$[$0-2].position = 1; - -break; -case 2177: - - $$[$0-4].position += 1; - -break; -case 2178: - - parser.valueExpressionSuggest(); - $$[$0-2].position += 1; - -break; -case 2179: - - parser.valueExpressionSuggest(); - $$[$0-4].position += 1; - -break; -case 2180: - - parser.suggestValueExpressionKeywords($$[$0-3]); - -break; -case 2181: case 2182: - - parser.valueExpressionSuggest(); - this.$ = { cursorAtStart : true, position: 1 }; - -break; -case 2183: case 2184: - - parser.valueExpressionSuggest(); - this.$ = { position: 2 }; - -break; -case 2188: -this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; -break; -case 2189: - - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].expression) { - this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } - } else { - this.$ = { function: fn, types: parser.findReturnTypes(fn) } - } - -break; -case 2190: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 2192: -this.$ = { types: [ 'NULL' ] }; -break; -case 2194: - - if ($$[$0].suggestKeywords) { - this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; - } else { - this.$ = { types: ['COLREF'], columnReference: $$[$0] }; - } - -break; -case 2195: - - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); - } - this.$ = { types: parser.findReturnTypes(fn) }; - -break; -case 2196: case 2371: case 2372: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-1]) }; - -break; -case 2198: - - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; - this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } - -break; -case 2205: - - parser.suggestValues($$[$0]); - -break; -case 2206: -this.$ = { types: [ 'NUMBER' ] }; -break; -case 2212: case 2214: -this.$ = $$[$0-1] + $$[$0]; -break; -case 2213: -this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; -break; -case 2218: case 2219: - - if (/\$\{[^}]*\}/.test($$[$0])) { - parser.addVariableLocation(_$[$0], $$[$0]); - this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } - } else { - this.$ = { types: [ 'STRING' ] } - } - -break; -case 2221: - - this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 2222: - - this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 2227: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); - } else { - this.$ = { valueExpression: $$[$0-1] } - } - -break; -case 2228: - - parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); - this.$ = { asterisk: true } - -break; -case 2229: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - } - -break; -case 2230: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); - this.$ = { suggestAggregateFunctions: true }; - -break; -case 2232: case 2532: -this.$ = [ $$[$0] ]; -break; -case 2233: - - $$[$0-2].push($$[$0]); - -break; -case 2238: - - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 2239: - - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 2240: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 2242: case 2243: case 2245: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - -break; -case 2256: - - this.$ = $$[$0]; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - this.$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - -break; -case 2263: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-2]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 2264: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-3]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 2265: -this.$ = { joinType: $$[$0] }; -break; -case 2266: -this.$ = { joinType: $$[$0-1] }; -break; -case 2267: - - if ($$[$0-2].suggestKeywords) { - parser.suggestKeywords($$[$0-2].suggestKeywords); - } - -break; -case 2268: - - if ($$[$0].suggestKeywords) { - parser.suggestKeywords($$[$0].suggestKeywords); - } - -break; -case 2271: - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $$[$0-2], - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2276: -this.$ = 'CROSS JOIN'; -break; -case 2277: -this.$ = 'FULL JOIN'; -break; -case 2278: -this.$ = 'FULL OUTER JOIN'; -break; -case 2279: -this.$ = 'INNER JOIN'; -break; -case 2280: -this.$ = 'JOIN'; -break; -case 2281: -this.$ = 'LEFT INNER JOIN'; -break; -case 2282: -this.$ = 'LEFT JOIN'; -break; -case 2283: -this.$ = 'LEFT OUTER JOIN'; -break; -case 2284: -this.$ = 'LEFT SEMI JOIN'; -break; -case 2285: -this.$ = 'OUTER JOIN'; -break; -case 2286: case 2288: -this.$ = 'RIGHT OUTER JOIN'; -break; -case 2287: -this.$ = 'RIGHT JOIN'; -break; -case 2289: -this.$ = 'RIGHT SEMI JOIN'; -break; -case 2290: -this.$ = 'SEMI JOIN'; -break; -case 2291: -this.$ = { noJoinCondition: true, suggestKeywords: ['ON'] }; -break; -case 2292: -this.$ = { valueExpression: $$[$0] }; -break; -case 2296: - - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - -break; -case 2297: - - this.$ = { - primary: $$[$0-2] - } - if ($$[$0-2].identifierChain) { - if ($$[$0]) { - $$[$0-2].alias = $$[$0].alias - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); - } - parser.addTablePrimary($$[$0-2]); - } - var keywords = []; - // Right-to-left for cursor after TablePrimary - keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [true, true]); - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 2298: - - this.$ = { - primary: $$[$0-1] - }; - - if ($$[$0]) { - this.$.primary.alias = $$[$0].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); - parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); - } - - var keywords = []; - keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'AS', weight: 2 }], [true]); - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 2299: - - if ($$[$0]) { - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); - } - -break; -case 2300: - - if ($$[$0]) { - $$[$0-2].alias = $$[$0].alias; - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); - } - parser.addTablePrimary($$[$0-2]); - -break; -case 2301: - - if ($$[$0]) { - parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); - parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias); - } - -break; -case 2312: - - parser.suggestKeywords(['BUCKET']); - -break; -case 2313: - - parser.suggestKeywords(['OUT OF']); - -break; -case 2314: - - parser.suggestKeywords(['OF']); - -break; -case 2315: - - if (!$$[$0-2]) { - parser.suggestKeywords(['ON']); - } - -break; -case 2317: - - if ($$[$0-2].indexOf('.') === -1 ) { - parser.suggestKeywords(['PERCENT', 'ROWS']); - } else { - parser.suggestKeywords(['PERCENT']); - } - -break; -case 2322: - - parser.pushQueryState(); - -break; -case 2323: - - parser.popQueryState(); - -break; -case 2325: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - this.$ = $$[$0-2]; - -break; -case 2328: - - var subQuery = parser.getSubQuery($$[$0]); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - this.$ = subQuery; - -break; -case 2345: case 2346: case 2347: case 2348: -this.$ = { alias: $$[$0], location: _$[$0] }; -break; -case 2355: - - if ($$[$0-1] && $$[$0].lateralView) { - $$[$0-1].lateralViews.push($$[$0].lateralView); - this.$ = $$[$0-1]; - } else if ($$[$0].lateralView) { - this.$ = { lateralViews: [ $$[$0].lateralView ] }; - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords - } - -break; -case 2357: - - if (!$$[$0]) { - $$[$0-1].suggestKeywords = ['OVER']; - } - -break; -case 2365: - - parser.suggestKeywords(['OVER']); - -break; -case 2369: case 2370: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 2379: -this.$ = { expression: $$[$0-1] }; -break; -case 2380: - - parser.valueExpressionSuggest(); - this.$ = { position: 1 } - -break; -case 2381: - - parser.suggestValueExpressionKeywords($$[$0-1]); - -break; -case 2389: case 2472: case 2518: -this.$ = { types: parser.findReturnTypes($$[$0-2]) }; -break; -case 2390: -this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; -break; -case 2391: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-3], 1); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2392: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2393: - - parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2401: case 2402: - - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - -break; -case 2403: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$$[$0-2]) { - parser.suggestKeywords(['PARTITION BY']); - } - -break; -case 2404: - - if (!$$[$0-1]) { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - -break; -case 2413: - - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - -break; -case 2414: - - var keywords = []; - if ($$[$0-2].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - } - if (!$$[$0]) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - -break; -case 2420: - - parser.suggestKeywords(['BETWEEN', 'UNBOUNDED']); - -break; -case 2421: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['AND']); - } - -break; -case 2424: - - if (!$$[$0-1]) { - parser.suggestKeywords(['PRECEDING']); - } - -break; -case 2426: - - lexer.popState(); - -break; -case 2427: - - lexer.begin('hdfs'); - -break; -case 2429: - - parser.suggestHdfs({ path: $$[$0-3] }); - -break; -case 2430: - - parser.suggestHdfs({ path: $$[$0-2] }); - -break; -case 2431: - - parser.suggestHdfs({ path: $$[$0-1] }); - -break; -case 2432: - - parser.suggestHdfs({ path: '' }); - -break; -case 2433: - - parser.suggestHdfs({ path: '' }); - -break; -case 2439: - - parser.suggestKeywords(['PRECEDING']); - -break; -case 2440: case 2445: - - parser.suggestKeywords(['ROW']); - -break; -case 2444: - - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - -break; -case 2446: - - parser.suggestKeywords(['FOLLOWING']); - -break; -case 2452: - - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 2453: - - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 2459: case 2464: -this.$ = { types: [ $$[$0-1].toUpperCase() ] }; -break; -case 2461: - - parser.valueExpressionSuggest(); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 2462: case 2463: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ] }; - -break; -case 2467: - - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 2468: - - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ 'T' ] }; - -break; -case 2469: case 2470: - - parser.suggestKeywords(parser.getTypeKeywords()); - this.$ = { types: [ 'T' ] }; - -break; -case 2471: case 2493: -this.$ = { types: parser.findReturnTypes($$[$0-3]) }; -break; -case 2473: case 2494: case 2517: -this.$ = { types: parser.findReturnTypes($$[$0-4]) }; -break; -case 2474: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2475: case 2496: case 2520: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2476: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2477: case 2481: -this.$ = { types: ['INT', 'INTEGER'] }; -break; -case 2478: - - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - this.$ = { types: ['INT', 'INTEGER'] } - -break; -case 2479: case 2483: - - parser.suggestKeywords(['FROM']); - this.$ = { types: ['INT', 'INTEGER'] } - -break; -case 2480: - - parser.valueExpressionSuggest(); - this.$ = { types: ['INT', 'INTEGER'] } - -break; -case 2482: - - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - this.$ = { types: ['INT', 'INTEGER'] } - -break; -case 2495: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2497: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2519: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2521: - - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2528: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); - } else { - parser.suggestKeywords(['explode', 'posexplode']); - } - -break; -case 2533: -this.$ = [ $$[$0-2], $$[$0] ]; -break; -case 2548: - - parser.suggestKeywords(['ALL', 'NONE']); - -break; -case 2568: - - parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'MATERIALIZED VIEWS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); - -break; -case 2569: - - // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT - if ($$[$0].identifierChain && $$[$0].identifierChain.length === 1 && $$[$0].identifierChain[0].name.toLowerCase() === 'roles') { - parser.suggestKeywords(['CURRENT']); - parser.yy.locations.pop(); - } else { - parser.addTablePrimary($$[$0]); - } - -break; -case 2570: - - parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); - -break; -case 2587: case 2588: case 2592: case 2593: case 2634: case 2635: - - parser.suggestKeywords(['FROM', 'IN']); - -break; -case 2589: case 2590: case 2591: case 2618: case 2632: - - parser.suggestTables(); - -break; -case 2599: case 2658: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2600: - - if (parser.yy.result.suggestTables && $$[$0-1].isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 2601: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['TABLE']); - -break; -case 2603: -this.$ = { isView: true }; -break; -case 2605: - - parser.suggestKeywords([ 'ROLES' ]); - -break; -case 2607: case 2680: - - parser.suggestKeywords(['LIKE']); - -break; -case 2616: - - parser.suggestKeywords(['ALL', 'TABLE']); - parser.suggestTables(); - -break; -case 2637: - - parser.suggestTables({identifierChain: [{name: $$[$0]}]}); - -break; -case 2639: - - parser.suggestKeywords(['VIEWS']); - -break; -case 2640: case 2692: - - if (!$$[$0-1] && !$$[$0-2]) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['LIKE']); - } - -break; -case 2648: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestKeywords(['DATABASE', 'SCHEMA']); - -break; -case 2650: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['EXTENDED', 'PARTITION']); - -break; -case 2653: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['EXTENDED']); - -break; -case 2660: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['PARTITION']); - -break; -case 2663: case 2664: - - parser.suggestKeywords(['GRANT']); - -break; -case 2665: case 2666: - - parser.suggestKeywords(['ROLE', 'USER']); - -break; -case 2670: case 2679: - - parser.suggestKeywords(['EXTENDED']); - -break; -case 2673: - - if ($$[$0-1]) { - parser.suggestKeywords(['LIKE']); - } else { - parser.suggestKeywords(['FROM', 'IN', 'LIKE']); - } - -break; -case 2675: - - parser.suggestKeywords(['EXTENDED']); - -break; -case 2676: - - parser.suggestKeywords(['LIKE']); - -break; -case 2677: - - parser.suggestKeywords(['PARTITION']); - -break; -case 2685: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 2687: - - parser.addTablePrimary($$[$0-3]); - -break; -case 2696: case 2697: - - parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); - -break; -case 2708: - - if (!$$[$0-1]) { - parser.suggestKeywords([ 'WHERE' ]); - } - -break; -case 2709: - - parser.suggestKeywords([ 'SET' ]); - -break; -case 2725: - - parser.suggestKeywords([ '=' ]); - -break; -case 2734: - - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $$[$0]; - } - -break; -case 2737: -this.$ = { inValueEdit: true }; -break; -case 2738: -this.$ = { inValueEdit: true, cursorAtStart: true }; -break; -case 2739: case 2740: case 2741: -this.$ = { suggestKeywords: ['NOT'] }; -break; -case 2745: case 2746: case 2747: - - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - this.$ = { types: ['BOOLEAN'] } - -break; -case 2748: case 2750: -this.$ = parser.findCaseType($$[$0-1]); -break; -case 2749: case 2752: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2751: - - parser.suggestValueExpressionKeywords($$[$0-1], ['END']); - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2753: -this.$ = parser.findCaseType($$[$0-2]); -break; -case 2754: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2755: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-2]); - -break; -case 2756: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - this.$.suggestFilters = $$[$0-1].suggestFilters - -break; -case 2757: - - parser.valueExpressionSuggest(); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2758: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 2759: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = $$[$0-1]; - -break; -case 2760: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ] }; - -break; -case 2763: -this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; -break; -case 2764: - - $$[$0-1].caseTypes.push($$[$0]); - this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; - -break; -case 2768: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - -break; -case 2771: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; -break; -case 2772: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 2773: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 2774: case 2775: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; -break; -case 2776: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2777: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [$$[$0]] }; - -break; -case 2778: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2779: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2780: case 2782: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 2781: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 2783: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; - -break; -case 2784: - - parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2785: - - parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2786: case 2787: case 2788: case 2789: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -} -}, -table: [o($V0,$V1,{691:1,545:2}),{1:[3]},o($V2,$V3,{542:3,692:4,543:6,209:7,212:8,210:249,3:250,211:251,195:252,213:253,183:254,215:255,16:256,214:257,197:258,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,546:280,17:284,18:285,19:286,20:287,21:288,22:289,23:290,24:291,25:292,28:293,29:294,507:295,508:296,509:297,510:298,511:299,512:300,513:301,514:302,553:303,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1015:332,1016:333,1017:334,1018:335,1019:336,1020:337,1021:338,1022:339,1023:340,1024:341,1025:342,1026:343,1027:344,1028:345,1029:346,1030:347,1031:348,1032:349,1033:350,627:353,628:354,652:355,37:361,38:362,39:363,40:364,41:365,42:366,43:367,259:369,260:370,261:371,262:372,263:373,264:374,265:375,524:377,525:378,526:379,527:380,528:381,529:382,530:383,531:384,1034:387,1035:388,1036:389,1037:390,1038:391,1039:392,1040:393,1041:394,1042:395,1043:396,1044:397,1045:398,1046:399,1047:400,632:401,634:402,654:403,65:404,194:405,456:408,98:412,196:413,458:414,2:$V4,26:$V5,27:$V6,44:$V7,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$Vv,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VA,198:$VB,202:$VC,205:$VD,206:$VE,208:$VF,216:$VG,217:$VH,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$VO,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$VU,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$VM1,534:$VN1,535:$VO1,538:$VP1,539:$VQ1,547:$VR1,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$V02,610:$V12,615:$V22,616:$V32,617:$V42,618:$V52,619:$V62,620:$V72,621:$V82,622:$V92,623:$Va2,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,656:$Vf2,663:$Vg2,665:$Vh2,667:$Vi2,673:$Vj2,674:$Vk2,676:$Vl2,681:$Vm2,686:$Vn2,687:$Vo2,688:$Vp2,694:$Vq2,696:$Vr2,697:$Vs2,698:$Vt2,699:$Vu2,700:$Vv2,701:$Vw2,702:$Vx2,703:$Vy2,704:$Vz2,705:$VA2,706:$VB2,707:$VC2,708:$VD2,710:$VE2,711:$VF2,712:$VG2,713:$VH2,714:$VI2,715:$VJ2,716:$VK2,717:$VL2,718:$VM2,719:$VN2,720:$VO2,721:$VP2,722:$VQ2,723:$VR2,724:$VS2,725:$VT2,726:$VU2,727:$VV2,728:$VW2,729:$VX2,730:$VY2,731:$VZ2,732:$V_2,733:$V$2,734:$V03,735:$V13,736:$V23,737:$V33,738:$V43,739:$V53,740:$V63,741:$V73,742:$V83,743:$V93,744:$Va3,745:$Vb3,746:$Vc3,747:$Vd3,748:$Ve3,749:$Vf3,750:$Vg3,751:$Vh3,752:$Vi3,753:$Vj3,754:$Vk3,755:$Vl3,756:$Vm3,757:$Vn3,758:$Vo3,759:$Vp3,760:$Vq3,761:$Vr3,762:$Vs3,763:$Vt3,764:$Vu3,765:$Vv3,766:$Vw3,767:$Vx3,768:$Vy3,769:$Vz3,770:$VA3,771:$VB3,772:$VC3,773:$VD3,774:$VE3,775:$VF3,776:$VG3,777:$VH3,778:$VI3,779:$VJ3,780:$VK3,781:$VL3,782:$VM3,783:$VN3,784:$VO3,785:$VP3,786:$VQ3,787:$VR3,788:$VS3,789:$VT3,790:$VU3,791:$VV3,792:$VW3,793:$VX3,794:$VY3,795:$VZ3,796:$V_3,797:$V$3,798:$V04,799:$V14,800:$V24,801:$V34,802:$V44,803:$V54,804:$V64,805:$V74,806:$V84,807:$V94,808:$Va4,809:$Vb4,810:$Vc4,850:$Vd4}),{544:[1,416],690:[1,415]},{690:[1,417]},o($V2,[2,913]),{2:[1,418]},o($V2,[2,916]),{544:[1,419],690:[2,1296]},{2:[2,1446]},{2:[2,1447]},{2:[2,1448]},{2:[2,1449]},{2:[2,1450]},{2:[2,1451]},{2:[2,1452]},{2:[2,1453]},{2:[2,1454]},{2:[2,1455]},{2:[2,1456]},{2:[2,1457]},{2:[2,1458]},{2:[2,1459]},{2:[2,1460]},{2:[2,1461]},{2:[2,1462]},{2:[2,1463]},{2:[2,1464]},{2:[2,1465]},{2:[2,1466]},{2:[2,1467]},{2:[2,1468]},{2:[2,1469]},{2:[2,1470]},{2:[2,1471]},{2:[2,1472]},{2:[2,1473]},{2:[2,1474]},{2:[2,1475]},{2:[2,1476]},{2:[2,1477]},{2:[2,1478]},{2:[2,1479]},{2:[2,1480]},{2:[2,1481]},{2:[2,1482]},{2:[2,1483]},{2:[2,1484]},{2:[2,1485]},{2:[2,1486]},{2:[2,1487]},{2:[2,1488]},{2:[2,1489]},{2:[2,1490]},{2:[2,1491]},{2:[2,1492]},{2:[2,1493]},{2:[2,1494]},{2:[2,1495]},{2:[2,1496]},{2:[2,1497]},{2:[2,1498]},{2:[2,1499]},{2:[2,1500]},{2:[2,1501]},{2:[2,1502]},{2:[2,1503]},{2:[2,1504]},{2:[2,1505]},{2:[2,1506]},{2:[2,1507]},{2:[2,1508]},{2:[2,1509]},{2:[2,1510]},{2:[2,1511]},{2:[2,1512]},{2:[2,1513]},{2:[2,1514]},{2:[2,1515]},{2:[2,1516]},{2:[2,1517]},{2:[2,1518]},{2:[2,1519]},{2:[2,1520]},{2:[2,1521]},{2:[2,1522]},{2:[2,1523]},{2:[2,1524]},{2:[2,1525]},{2:[2,1526]},{2:[2,1527]},{2:[2,1528]},{2:[2,1529]},{2:[2,1530]},{2:[2,1531]},{2:[2,1532]},{2:[2,1533]},{2:[2,1534]},{2:$Ve4,27:$Vf4,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441,864:420,866:422,899:436,905:438,932:423,933:424,934:425,935:426,936:427,937:428,938:429,939:430,946:431,948:432,949:433,951:434},{2:[2,1536]},{2:[2,1537]},{2:[2,1538]},{2:$Vz6,27:$VA6,44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VF6,486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:$VI6,597:590,601:591,603:594,611:595,612:597,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{2:[2,1540]},{2:[2,1541]},{2:[2,1542]},{2:[2,1543]},{2:[2,1544]},{2:[2,1545]},{2:[2,1546]},{2:[2,1547]},{2:[2,1548]},{2:[2,1549]},{2:[2,1550]},{2:[2,1551]},{2:[2,1552]},{2:[2,1553]},{2:[2,1554]},{2:[2,1555]},{2:[2,1556]},{2:[2,1557]},{2:[2,1558]},{2:[2,1559]},{2:[2,1560]},{2:[2,1561]},{2:[2,1562]},{2:[2,1563]},{2:[2,1564]},{2:[2,1565]},{2:[2,1566]},{2:[2,1567]},{2:[2,1568]},{2:[2,1569]},{2:[2,1570]},{2:[2,1571]},{2:[2,1572]},{2:[2,1573]},{2:[2,1574]},{2:[2,1575]},{2:[2,1576]},{2:[2,1577]},{2:[2,1578]},{2:[2,1579]},{2:[2,1580]},{2:[2,1581]},{2:[2,1582]},{2:[2,1583]},{2:[2,1584]},{2:[2,1585]},{2:[2,1586]},{2:[2,1587]},{2:[2,1588]},{2:[2,1589]},{2:[2,1590]},{2:[2,1591]},{2:[2,1592]},{2:[2,1593]},{2:[2,1594]},{2:[2,1595]},{2:[2,1596]},{2:[2,1597]},{2:[2,1598]},{2:[2,1599]},{2:[2,1600]},{2:[2,1601]},{2:[2,1602]},{2:[2,1603]},{2:[2,1604]},{2:[2,1605]},{2:[2,1606]},{2:[2,1607]},{2:[2,1608]},{2:[2,1609]},{2:[2,1610]},{2:[2,1611]},{2:[2,1612]},{2:[2,1613]},{2:[2,1614]},{2:[2,1615]},{2:[2,1616]},{2:[2,1617]},{2:[2,1618]},{2:[2,1619]},{2:[2,1620]},{2:[2,1621]},{2:[2,1622]},{2:[2,1623]},{2:[2,1624]},{2:[2,1625]},{2:[2,1626]},{2:[2,1627]},{2:[2,1628]},{2:[2,1629]},{2:[2,1630]},{2:[2,1631]},{2:[2,1632]},{2:[2,1633]},{2:[2,1634]},{2:[2,1635]},{2:[2,1636]},{2:$VO6,27:$VP6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:615,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VQ6,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,559:613,561:$VR6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{2:[2,1638]},{2:[2,1639]},{2:[2,1640]},{2:[2,1641]},{2:[2,1642]},{2:[2,1643]},{2:[2,1644]},{2:[2,1645]},{2:[2,1646]},{2:[2,1647]},{2:[2,1648]},{2:[2,1649]},{2:[2,1650]},{2:[2,1651]},{2:[2,1652]},{2:[2,1653]},{2:[2,1654]},{2:[2,1655]},{2:[2,1656]},{2:[2,1657]},{2:[2,1658]},{2:[2,1659]},{2:[2,1660]},{2:[2,1661]},{2:[2,1662]},{2:[2,1663]},{2:[2,1664]},{2:[2,1665]},{2:[2,1666]},{2:[2,1667]},{2:[2,1668]},{2:[2,1669]},{2:[2,1670]},{2:[2,1671]},{2:[2,1672]},{2:[2,1673]},{2:[2,1674]},{2:[2,1675]},{2:[2,1676]},{2:[2,1677]},{2:[2,1678]},{2:[2,1679]},{2:[2,1680]},{2:[2,1681]},{2:[2,1682]},{2:[2,1683]},{2:[2,1684]},{2:[2,1685]},{3:616,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,16:619,17:284,18:285,19:286,20:287,21:288,22:289,23:290,24:291,25:292,26:[1,623],28:293,29:294,30:304,31:305,32:306,33:307,34:308,35:309,36:310,37:361,38:362,39:363,40:364,41:365,42:366,43:367,44:$V7,65:404,98:412,152:$Vv,166:$VA,194:405,195:618,196:413,197:621,198:$VB,205:$VD,211:617,214:620,215:622,217:$VH,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,259:369,260:370,261:371,262:372,263:373,264:374,265:375,266:$VU,456:408,458:414,500:273,501:274,502:275,503:276,504:277,505:278,506:279,507:295,508:296,509:297,510:298,511:299,512:300,513:301,514:302,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,524:377,525:378,526:379,527:380,528:381,529:382,530:383,531:384,533:$VM1,534:$VN1,535:$VS6,538:$VP1,546:280,547:$VR1,553:303,596:[1,624],615:$V22,618:$V52,623:$Va2,627:353,628:354,632:401,634:402,652:355,654:403,656:$Vf2,673:$Vj2,681:$Vm2,687:$Vo2,714:$VI2,719:$VN2,850:$Vd4,1015:332,1016:333,1017:334,1018:335,1019:336,1020:337,1021:338,1022:339,1023:340,1024:341,1025:342,1026:343,1027:344,1028:345,1029:346,1030:347,1031:348,1032:349,1033:350,1034:387,1035:388,1036:389,1037:390,1038:391,1039:392,1040:393,1041:394,1042:395,1043:396,1044:397,1045:398,1046:399,1047:400},o($V2,[2,299]),o($V2,[2,300]),o($V2,[2,301]),o($V2,[2,302],{4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1015:332,1016:333,1017:334,1018:335,1019:336,1020:337,1021:338,1022:339,1023:340,1024:341,1025:342,1026:343,1027:344,1028:345,1029:346,1030:347,1031:348,1032:349,1033:350,456:408,3:626,211:627,195:628,215:629,546:630,627:639,628:640,652:642,65:649,194:650,26:$VT6,44:$VU6,152:$VV6,166:$VW6,198:$VX6,205:$VY6,217:$VZ6,266:$V_6,533:$V$6,534:$V07,535:$V17,538:$V27,547:$V37,596:$V47,615:$V57,618:$V67,623:$V77,656:$V87,673:$V97,681:$Va7,687:$Vb7,714:$Vc7,719:$Vd7,850:$Ve7}),o($V2,[2,310],{2:[1,660]}),{27:[1,661],116:$Vf7,501:662,508:665,535:$VS6,546:663,547:$VR1,553:666,615:$V22,627:353,628:354,632:401,634:402},o($V2,[2,312]),o($V2,[2,313]),o($V2,[2,314]),o($V2,[2,315]),o($Vg7,$Vh7,{232:667,233:[1,668],234:$Vi7,235:$Vj7,236:$Vk7,238:$Vl7,239:$Vm7,240:$Vn7,241:$Vo7}),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,816]),o($V2,[2,817]),o($V2,[2,819]),o($V2,[2,820]),o($V2,[2,821]),o($V2,[2,822]),o($V2,[2,823]),o($Vp7,$Vq7,{851:676,852:677,853:678,854:679,855:680,856:681,800:$Vr7}),o([2,118,123,126,161,349,532,535,544,547,563,568,569,570,571,572,573,574,575,615,620,690,732,742,754,756,765,773,781,800,807,808,893],$Vs7),o([2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,533,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,729,730,731,732,733,734,735,737,739,740,742,743,744,746,747,748,749,754,756,758,759,760,761,764,765,767,768,773,774,775,777,778,780,781,784,785,788,789,794,795,796,799,800,801,802,803,805,807,808,809,893,901,1010],[2,1689]),{46:687,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,857:683,858:684,859:685,860:686},o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),o($V2,[2,19]),o($V2,[2,20]),o($V2,[2,21]),o($V2,[2,23]),o($V2,[2,24]),o($V2,[2,824]),o($V2,[2,825]),o($V2,$Vt7,{627:639,628:640,501:688,546:690,116:$Vu7,535:$V17,547:$V37,615:$V57}),o($V2,[2,828]),o($V2,[2,829]),o($V2,[2,830]),o($V2,[2,831]),o($V2,[2,832]),o($Vv7,$Vq7,{855:680,851:691,853:692,800:$Vw7}),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,27]),o($V2,[2,28]),o($V2,[2,29]),o($V2,[2,30]),o($V2,[2,31]),{27:[1,695],158:[1,694]},o($V2,[2,364]),o($V2,[2,365]),o($V2,[2,366]),o($V2,[2,367]),o($V2,[2,368]),o($V2,[2,369]),o($V2,[2,370]),o($V2,[2,371]),o($V2,[2,833]),o($V2,[2,834]),o($V2,[2,835]),o($V2,[2,836]),o($V2,[2,837]),o($V2,[2,838]),o($V2,[2,839]),o($V2,[2,840]),o($V2,[2,841]),{27:[1,697],539:$Vx7},{27:[1,704],44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:[1,701],486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:[1,703],596:[1,699],597:698,601:700,603:705,611:595,612:597,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:[1,702],626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vy7,$Vz7,{819:706,45:707,206:[1,708],233:$VA7,239:$VB7,610:$VC7,792:$VD7}),o($V2,[2,2549]),o($V2,[2,2550]),o($V2,[2,2551]),o($V2,[2,2552]),o($V2,[2,2553]),o($V2,[2,2554]),o($V2,[2,2555]),o($V2,[2,2556]),o($V2,[2,2557]),o($V2,[2,2558]),o($V2,[2,2559]),o($V2,[2,2560]),o($V2,[2,2561]),o($V2,[2,2562]),o($V2,[2,2563]),o($V2,[2,2564]),o($V2,[2,2565]),o($V2,[2,2566]),o($V2,[2,2567]),{27:[1,714],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:713,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{27:[1,716],535:[1,715]},o($V2,$VE7,{546:280,553:303,195:717,197:719,215:720,509:721,27:[1,718],152:$Vv,547:$VR1}),{27:[1,725],547:$VF7,615:$V22,627:730,629:722,630:723,632:731,633:724,635:726,648:727,649:729},{27:[1,733],55:[1,732]},{27:[1,735],674:[1,734]},{27:[1,737],158:[1,741],535:$VG7,682:736,684:738,685:739,686:[1,740]},{27:[1,743],158:[1,742]},{27:[1,746],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:751,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:752,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:754,840:749,841:750,1055:744,1057:745,1059:747,1060:748},o([2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,558,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,810,1010],$VH7,{548:755,561:$VI7,755:$VJ7}),o($V2,[2,32]),o($V2,[2,33]),o($V2,[2,34]),o($V2,[2,35]),o($V2,[2,36]),o($V2,[2,37]),o($V2,[2,38]),{27:[1,758],45:759,54:[1,760],61:[1,761],62:[1,763],158:[1,762],610:$VC7,792:$VD7},o($V2,[2,372]),o($V2,[2,373]),o($V2,[2,374]),o($V2,[2,375]),o($V2,[2,376]),o($V2,[2,377]),o($V2,[2,378]),o($VK7,$VL7,{267:764,45:765,54:[1,770],61:[1,767],62:[1,766],206:[1,769],460:[1,771],473:$VM7,610:$VC7,792:$VD7}),o($V2,[2,842]),o($V2,[2,843]),o($V2,[2,844]),o($V2,[2,845]),o($V2,[2,846]),o($V2,[2,847]),o($V2,[2,848]),o($V2,[2,849]),{27:[1,772],45:773,54:[1,778],61:[1,779],62:[1,780],158:[1,777],206:[1,774],460:[1,775],473:$VN7,610:$VC7,792:$VD7},{27:[1,781],54:$VO7,61:[1,792],85:[1,793],129:[1,798],154:[1,782],158:[1,797],233:[1,804],240:[1,791],266:[1,785],473:[1,795],539:$VP7,596:[1,789],696:$VQ7,697:$VR7,701:$VS7,710:$VT7,711:$VU7,716:[1,796],745:$VV7,751:[1,786],769:$VW7,806:[1,800],812:805,813:787,820:790,821:801},o($V2,[2,2571]),o($V2,[2,2572]),o($V2,[2,2573]),o($V2,[2,2574]),o($V2,[2,2575]),o($V2,[2,2576]),o($V2,[2,2577]),o($V2,[2,2578]),o($V2,[2,2579]),o($V2,[2,2580]),o($V2,[2,2581]),o($V2,[2,2582]),o($V2,[2,2583]),o($V2,[2,2584]),o($V2,[2,1130],{546:630,195:808,215:809,152:$VV6,547:$V37}),o($V2,[2,1135],{648:727,629:810,630:811,627:813,547:$VX7,615:$V57}),o($V2,[2,1189]),{26:[1,823],27:[1,832],63:842,66:[1,814],68:824,74:[1,815],77:816,78:[1,817],83:818,84:[1,819],86:[1,820],87:821,88:[1,822],92:[1,843],96:825,97:826,99:[1,827],105:828,106:829,112:830,113:831,114:845,133:839,134:$VY7,135:$VZ7,143:844,156:[1,834],161:$V_7,166:[1,838],176:$V$7,177:$V08,181:$V18,182:$V28,382:$V38},{26:[1,848],27:[1,850],108:[1,849]},o($V48,$V58,{199:851,202:$V68}),{27:[1,854],206:$V78},o($V2,[2,727]),{27:[1,856],158:[1,855]},{27:[1,860],153:[1,858],384:[1,857],643:[1,859]},{27:[1,862],384:[1,861]},o($V2,[2,80],{133:839,73:864,77:866,83:868,87:871,68:874,96:875,97:876,366:877,63:882,114:885,26:[1,873],66:[1,863],71:$V88,74:[1,865],78:[1,867],84:[1,869],86:[1,870],88:[1,872],92:$V98,99:$Va8,134:$VY7,135:$Vb8,156:$Vc8,161:$V_7,166:$Vd8,176:$V$7,177:$V08,181:$V18,182:$V28,382:$Ve8}),o($V2,[2,270]),o($V2,[2,729]),{1:[2,1293]},o($V0,$V1,{545:887}),{1:[2,1294]},o($V2,[2,914]),o($Vf8,$V1,{545:888}),o($Vg8,$Vh8,{865:889,867:890,123:[1,891]}),o($Vi8,[2,1943]),o($Vj8,$Vh8,{865:892}),o($Vk8,[2,2247]),o($Vj8,[2,2249],{123:[1,893]}),o($Vk8,[2,2254]),o($Vl8,[2,2255]),o($Vm8,$Vn8,{862:894,940:895,941:896,943:897,567:906,568:$Vo8,569:$Vp8,570:$Vq8,571:$Vr8,572:$Vs8,573:$Vt8,574:$Vu8,575:$Vv8}),o($Vk8,[2,2257]),o($Vl8,[2,2258],{862:907,941:908,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($Vl8,[2,2259]),o([27,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,800,807,808,893],$VD8,{947:916,950:917,797:[1,918]}),o([27,55,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VE8,{270:442,693:446,929:919,931:920,46:921,125:922,832:924,485:925,441:926,816:927,463:928,817:929,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VF8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VG8,280:$VH8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6}),o($VI8,$VD8,{947:932,797:$VJ8}),o($VK8,$VE8,{270:442,693:446,46:921,125:922,441:926,816:927,929:934,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o([2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,797,800,807,808,893],[2,2303]),o($VO8,[2,2305]),o([2,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,797,800,807,808,893],[2,2304]),o($VI8,[2,2306]),o([26,27,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,768,773,781,797,800,807,808,810,893],$VP8,{727:[1,938]}),o($VQ8,$VR8,{899:436,659:939,948:940,660:941,183:942,954:943,27:$V6,116:$VS8,810:$Vc4}),o($VT8,[2,1791],{727:[1,945]}),o($VU8,[2,1817]),{281:$VV8,734:$VW8,815:[1,948]},o($VX8,[2,1443]),o($VX8,[2,1444]),o($VX8,[2,1445]),o($VX8,[2,1300]),o($VX8,[2,1301]),o($VX8,$VY8),o($VX8,[2,1303]),o($VX8,[2,1304]),o($VX8,[2,1305]),o($VX8,[2,1306]),o($VX8,[2,1307]),o($VX8,[2,1308]),o($VX8,[2,1309]),o($VX8,[2,1310]),o($VX8,[2,1311]),o($VX8,[2,1312]),o($VX8,[2,1313]),o($VX8,[2,1314]),o($VX8,[2,1315]),o($VX8,[2,1316]),o($VX8,[2,1317]),o($VX8,[2,1318]),o($VX8,[2,1319]),o($VX8,[2,1320]),o($VX8,[2,1321]),o($VX8,[2,1322]),o($VX8,[2,1323]),o($VX8,[2,1324]),o($VX8,[2,1325]),o($VX8,[2,1326]),o($VX8,[2,1327]),o($VX8,[2,1328]),o($VX8,[2,1329]),o($VX8,[2,1330]),o($VX8,[2,1331]),o($VX8,[2,1332]),o($VX8,[2,1333]),o($VX8,[2,1334]),o($VX8,[2,1335]),o($VX8,[2,1336]),o($VX8,[2,1337]),o($VX8,[2,1338]),o($VX8,[2,1339]),o($VX8,[2,1340]),o($VX8,[2,1341]),o($VX8,[2,1342]),o($VX8,[2,1343]),o($VX8,[2,1344]),o($VX8,[2,1345]),o($VX8,[2,1346]),o($VX8,[2,1347]),o($VX8,[2,1348]),o($VX8,[2,1349]),o($VX8,[2,1350]),o($VX8,[2,1351]),o($VX8,[2,1352]),o($VX8,[2,1353]),o($VX8,[2,1354]),o($VX8,[2,1355]),o($VX8,[2,1356]),o($VX8,[2,1357]),o($VX8,[2,1358]),o($VX8,[2,1359]),o($VX8,[2,1360]),o($VX8,[2,1361]),o($VX8,[2,1362]),o($VX8,[2,1363]),o($VX8,[2,1364]),o($VX8,[2,1365]),o($VX8,[2,1366]),o($VX8,[2,1367]),o($VX8,[2,1368]),o($VX8,[2,1369]),o($VX8,[2,1370]),o($VX8,[2,1371]),o($VX8,[2,1372]),o($VX8,[2,1373]),o($VX8,[2,1374]),o($VX8,[2,1375]),o($VX8,[2,1376]),o($VX8,[2,1377]),o($VX8,[2,1378]),o($VX8,[2,1379]),o($VX8,[2,1380]),o($VX8,[2,1381]),o($VX8,[2,1382]),o($VX8,[2,1383]),o($VX8,[2,1384]),o($VX8,[2,1385]),o($VX8,[2,1386]),o($VX8,[2,1387]),o($VX8,[2,1388]),o($VX8,[2,1389]),o($VX8,[2,1390]),o($VX8,[2,1391]),o($VX8,[2,1392]),o($VX8,[2,1393]),o($VX8,[2,1394]),o($VX8,[2,1395]),o($VX8,[2,1396]),o($VX8,[2,1397]),o($VX8,[2,1398]),o($VX8,[2,1399]),o($VX8,[2,1400]),o($VX8,[2,1401]),o($VX8,[2,1402]),o($VX8,[2,1403]),o($VX8,[2,1404]),o($VX8,[2,1405]),o($VX8,[2,1406]),o($VX8,$VZ8),o($VX8,[2,1408]),o($VX8,[2,1409]),o($VX8,[2,1410]),o($VX8,[2,1411]),o($VX8,[2,1412]),o($VX8,[2,1413]),o($VX8,[2,1414]),o($VX8,[2,1415]),o($VX8,[2,1416]),o($VX8,[2,1417]),o($VX8,[2,1418]),o($VX8,[2,1419]),o($VX8,[2,1420]),o($VX8,[2,1421]),o($VX8,[2,1422]),o($VX8,[2,1423]),o($VX8,[2,1424]),o($VX8,[2,1425]),o($VX8,[2,1426]),o($VX8,[2,1427]),o($VX8,[2,1428]),o($VX8,[2,1429]),o($VX8,[2,1430]),o($VX8,[2,1431]),o($VX8,[2,1432]),o($VX8,[2,1433]),o($VX8,[2,1434]),o($VX8,[2,1435]),o($VX8,[2,1436]),o($VX8,[2,1437]),o($VX8,[2,1438]),o($VX8,[2,1439]),o($VX8,[2,1440]),o($VX8,[2,1441]),o($VX8,[2,1442]),o($V_8,$V$8,{598:949,604:950,55:$V09,123:$V19}),{27:[1,954],75:[1,953],123:$V29},o([27,75,123],$VZ8,{270:442,693:446,46:596,601:956,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,1015],{123:$V39}),o($V2,$V$8,{598:958,55:$V49}),o($V59,[2,1043]),o($V69,[2,1076]),o($V79,[2,1045],{123:[1,960]}),o([27,55,75,123,535],$V89,{614:961,110:962,80:963,116:$V99}),{281:$VV8,734:$VW8},o($Va9,$Vb9),o($Va9,[2,1055]),o($Va9,[2,1056]),o($Va9,[2,1057]),o($Va9,[2,1058]),o($Va9,[2,1059]),o($Va9,[2,1060]),o($Va9,[2,1061]),o($Va9,[2,1062]),o($Va9,[2,1063]),o($Va9,[2,1064]),o($V2,[2,22]),o($Vc9,$VZ8,{693:446,270:965,27:[1,968],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,561:$Vd9,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,776:$Ve9}),{126:[1,969],727:[1,970]},o($V2,[2,945]),o($Vc9,[2,2536]),o($V2,[2,296]),o($V2,[2,297]),o($V2,[2,298]),o($V2,[2,303]),o($V2,[2,304]),o($V2,[2,305]),{116:$Vf7,501:662,508:665,535:$VS6,546:663,547:$VR1,553:666,615:$V22,627:353,628:354,632:401,634:402},{27:$VP6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:615,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VQ6,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,559:613,561:$VR6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{27:$VA6,44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VF6,486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:$VI6,597:590,601:591,603:594,611:595,612:597,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:$Vf4,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441,864:420,866:422,899:436,905:438,932:423,933:424,934:425,935:426,936:427,937:428,938:429,939:430,946:431,948:432,949:433,951:434},o($V2,[2,306]),o($V2,[2,307]),o($V2,[2,308]),{116:$Vf9,501:662,535:$V17,546:971,547:$V37,615:$V57,627:639,628:640},o($Vg9,$Vq7,{851:676,855:680,853:692,800:$Vw7}),{158:[1,973]},{539:$Vx7},{44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$Vh9,486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:$VI6,597:974,601:975,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:[1,981],486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:[1,983],596:[1,979],597:978,601:980,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:[1,982],626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vi9,$Vz7,{819:984,45:985,206:[1,986],233:$VA7,239:$VB7,610:$VC7,792:$VD7}),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:615,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$Vj9,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,559:613,561:$VR6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:713,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{535:[1,988]},o($V2,$VE7,{546:630,195:717,215:809,152:$VV6,547:$V37}),{547:$VX7,615:$V57,627:813,629:989,630:990,648:727},{46:992,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,857:991,859:685},{55:[1,993]},{674:[1,994]},{158:$Vk9,535:$VG7,682:995,684:996,686:$Vl9},{158:[1,999]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:751,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,840:749,1055:1000,1059:747},o([2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,558,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,1010],$VH7,{548:1002,561:$VI7,755:$VJ7}),{45:1003,54:[1,1004],61:[1,1005],62:[1,1007],158:[1,1006],610:$VC7,792:$VD7},{26:[1,1015],63:882,66:[1,1008],68:1016,74:[1,1009],77:816,78:[1,1010],83:818,84:[1,1011],86:[1,1012],87:1013,88:[1,1014],92:$V98,96:825,97:826,99:$Va8,114:885,133:839,134:$VY7,135:$Vb8,156:$Vc8,161:$V_7,166:$Vd8,176:$V$7,177:$V08,181:$V18,182:$V28,382:$Ve8},{26:[1,1017],108:[1,1018]},{158:$V58,199:1019,202:$V68},{206:$V78},o($Vm9,$VL7,{45:1020,267:1021,54:[1,1025],61:[1,1023],62:[1,1022],206:[1,1024],460:[1,1026],473:$VM7,610:$VC7,792:$VD7}),{45:1027,54:[1,1031],61:[1,1032],62:[1,1033],158:[1,1030],206:[1,1028],460:[1,1029],473:$VN7,610:$VC7,792:$VD7},{158:[1,1034]},{54:$VO7,61:[1,1042],85:[1,1043],129:[1,1047],154:[1,1035],158:[1,1046],233:[1,1049],240:[1,1041],266:[1,1036],473:[1,1044],539:$VP7,596:[1,1039],696:$VQ7,697:$VR7,701:$VS7,710:$VT7,711:$VU7,716:[1,1045],745:$VV7,751:[1,1037],769:$VW7,806:[1,1048],812:805,813:1038,820:1040},{153:[1,1051],384:[1,1050],643:[1,1052]},{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,864:1053,899:436,932:423,934:425,936:1054,937:428,946:1055,948:1056},{384:[1,1058]},o($V2,[2,309]),o($V2,[2,311]),o($V2,[2,818]),o($Vp7,$Vq7,{853:678,854:679,855:680,856:681,851:1059,852:1060,800:$Vr7}),{152:$Vv,195:1061,197:1062,215:720,509:721,546:280,547:$VR1,553:303},o($V2,[2,826]),o($Vv7,$Vq7,{855:680,853:692,851:1063,800:$Vw7}),o($Vn9,$Vo9,{27:[1,1064]}),{27:[1,1065],236:$Vp9},o($Vg7,[2,346]),o($Vg7,[2,347]),o($Vg7,$Vq9,{237:1067,244:$Vr9,245:$Vs9}),o($Vg7,[2,350]),o($Vg7,[2,351]),o($Vg7,[2,352]),o($Vt9,[2,357],{242:1070,246:[1,1071]}),o($Vg9,[2,1896]),o($Vv7,[2,1900]),o($Vp7,$Vu9,{855:1072,856:1073,800:$Vr7}),o($Vv7,[2,1909]),o($Vv9,[2,1910]),o($Vv7,[2,1912],{855:680,853:1074,800:$Vw7}),o([27,547,561,755],$V1,{545:1075}),o([27,116,535,547,615],$Vw9,{123:[1,1076]}),o($Vx9,[2,1921]),o($Vy9,[2,1922]),o($Vx9,[2,1924],{123:[1,1077]}),{27:[1,1079],108:[1,1078]},o($V2,[2,827]),{152:$VV6,195:1080,215:809,546:630,547:$V37},o($Vv7,$Vq7,{855:680,853:692,851:1081,800:$Vw7}),o($Vv7,[2,1899]),o($Vg9,$Vu9,{855:1072,800:$Vw7}),o([547,561,755],$V1,{545:1082}),{27:[1,1084],46:439,47:$Vg4,50:$Vh4,56:1083,58:$Vi4,59:1085,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,317],{270:442,693:446,46:1057,56:1086,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{385:$Vz9,540:1087,541:1088,727:$VA9,801:$VB9,925:1089,926:1090},o($V2,[2,910]),o($VC9,$V$8,{598:1094,604:1095,55:$V09,123:$V19}),{27:[1,1097],621:[1,1096]},{27:[1,1099],123:$V29,535:[1,1098]},o($VD9,$VZ8,{270:442,693:446,46:596,601:1100,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VD9,$VY8,{621:[1,1101]}),o([27,55,116,123,535],$Vb9,{624:1102,625:1103,596:[1,1105],626:$VE9}),o($V2,[2,1093],{123:$V39}),o($V2,[2,1094]),{27:[1,1108],46:439,47:$Vg4,50:$Vh4,56:1106,58:$Vi4,59:1107,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($Vy7,$VF9,{818:1109,239:$VG9}),o($VH9,$VF9,{818:1111,239:$VG9}),o($Vy7,[2,1713]),o($Vy7,[2,1714]),o($VI9,[2,1692]),o($VI9,[2,1693]),o($V2,[2,2734]),o($V2,[2,2735]),{27:[1,1113],46:439,47:$Vg4,50:$Vh4,56:1112,58:$Vi4,59:1114,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,904]),o($V2,[2,1127]),o($V2,[2,1131]),o($V2,[2,1133]),{116:$Vf7,546:663,547:$VR1,553:666},o($Vv7,$Vt7,{546:690,116:$Vu7,547:$V37}),o($V2,$VJ9,{627:730,632:731,648:1115,649:1116,615:$V22}),o($VK9,$VL9,{631:1117,576:1118,536:1119,577:1120,537:1121,807:$VM9}),o($V2,[2,1134]),o($V2,[2,1138]),o($VK9,$VL9,{631:1123,536:1124,577:1125,807:$VN9}),o($VO9,[2,1162]),o([27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,810,1010],$VH7,{548:1127,561:$VI7,755:$VJ7}),o($V2,[2,1164],{648:727,627:813,629:1128,615:$V57}),{27:[1,1130],547:$VF7,630:1129,635:1131},o($VO9,[2,1169],{630:1132,547:$VX7}),{27:[1,1134],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1133,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1135,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($V2,[2,1190]),o($Voa,$Vpa,{675:1212,639:$Vqa}),o($V2,[2,1235]),{535:$Vra,683:1214},o($Vsa,$VG7,{684:996,682:1215,158:$Vk9,686:$Vl9}),{27:[1,1216],535:$Vta},o($V2,[2,1257],{683:1217,535:$Vra}),{27:[1,1219],158:[1,1218]},{27:[1,1221],46:439,47:$Vg4,50:$Vh4,56:1220,58:$Vi4,59:1222,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},{27:[1,1224],46:439,47:$Vg4,50:$Vh4,56:1223,58:$Vi4,59:1225,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,1277]),o($V2,[2,2711],{26:[1,1226],27:[1,1227]}),o($V2,[2,2710],{26:[1,1228]}),o($V2,[2,2712]),o($Vua,[2,2713]),o($Vva,[2,2714]),o($Vua,[2,2715]),o($Vva,[2,2716]),o($Vua,[2,1824],{270:442,693:446,46:1229,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($Vva,[2,1826],{270:442,693:446,46:1230,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($Vwa,$Vxa,{727:[1,1231]}),o($Vya,[2,1822]),{2:$Vza,27:[1,1236],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1245,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,549:1232,551:1233,554:1234,556:1235,557:1237,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,725:$VBa,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,928:1238,930:1239,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($VCa,[2,1933]),o($VCa,[2,1934]),o($V2,[2,39]),{27:[1,1247],46:1246,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1248,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,1250],62:[1,1249]},{27:[1,1253],46:439,47:$Vg4,50:$Vh4,56:1251,58:$Vi4,59:1252,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},{27:[1,1256],46:439,47:$Vg4,50:$Vh4,56:1254,58:$Vi4,59:1255,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($VDa,$VEa,{268:1257,718:$VFa}),o($VH9,$VGa,{67:1259,100:1260,768:$VHa}),o($Vy7,$VGa,{67:1262,100:1263,768:$VHa}),{27:[1,1265],62:[1,1264]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1266,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1267,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1269,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($VK7,$VIa,{206:[1,1271],491:[1,1270]}),o($V2,[2,850]),o($VJa,$VKa,{167:1272,171:1273,768:$VLa}),o($Vy7,$VKa,{167:1275,171:1276,768:$VLa}),{27:[1,1279],206:[1,1277],491:[1,1278]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1280,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($Vy7,$VKa,{167:1281,171:1282,768:$VLa}),o($Vy7,$VKa,{167:1283,171:1284,768:$VLa}),{27:[1,1286],62:[1,1285]},o($Vy7,$VKa,{167:1287,171:1288,768:$VLa}),o($V2,[2,2568],{270:442,693:446,46:1001,76:1289,812:1291,47:$Vg4,50:$Vh4,54:$VO7,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,307:[1,1290],318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,769:$VW7}),{27:[1,1293],488:$VMa,535:$VNa,811:1292},o($V2,[2,2595]),{27:[1,1298],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1297,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,830:1296},{27:[1,1300],62:$VOa,158:$VPa,1048:1299},{27:[1,1304],710:$VQa},{27:[1,1306],307:$VRa},o($V2,[2,2608],{816:1307,280:$VN8}),o($V79,$VSa,{693:446,1049:1308,1050:1309,270:1310,27:[1,1311],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6}),o($V2,[2,2627],{27:[1,1313],55:[1,1312]}),{27:[1,1316],45:1315,46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1314,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:1317,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,610:$VC7,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,792:$VD7,832:754},{27:[1,1319],806:[1,1318]},{27:[1,1321],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1320,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:1322,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:754},o($V2,[2,2667]),{27:[1,1324],596:[1,1323]},o($VTa,$VUa,{826:1325,488:$VVa}),{27:[1,1328],239:[1,1327]},{27:[1,1331],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1329,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:1330,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:754},o($V2,[2,2690]),o($VWa,$VXa,{1051:1332,1053:1333,488:$VYa,535:$VZa}),o($V2,[2,2628],{55:[1,1336]}),o($V_a,[2,1696]),o($V_a,[2,1697]),{27:[1,1338],54:$VO7,769:$VW7,812:1337},o($V$a,[2,1718]),o($V$a,[2,1694]),o($V$a,[2,1695]),o($V2,[2,1132]),{116:$Vf9,546:971,547:$V37},o($V2,[2,1136],{627:813,648:1115,615:$V57}),o($VK9,$VL9,{536:1124,577:1125,631:1339,807:$VN9}),o([47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,1010],$VH7,{548:1340,561:$VI7,755:$VJ7}),{547:$VX7,630:1341},o($V0b,$VGa,{366:877,67:1342,73:1344,100:1345,71:[1,1343],154:$V1b,768:$VHa}),{27:[1,1347],75:[1,1346]},o($V2,[2,65]),{27:[1,1349],79:[1,1348]},o($V2,[2,67]),{27:[1,1351],85:$V2b},o($V2,$V3b,{57:1352,60:1354,68:1355,102:1356,27:[1,1353],161:$V4b}),{27:[1,1359],68:1358,102:1360,161:$V4b},{27:[1,1363],78:$V5b,89:$V6b,107:[1,1364]},{27:[1,1368],49:1370,50:[1,1366],52:1374,78:[1,1367],90:[1,1365],127:$V7b,129:$V8b,130:$V9b,132:$Vab,704:$Vbb},{26:[1,1381],27:[1,1379],63:842,66:$Vcb,74:[1,1376],92:[1,1377],97:1378,99:$Va8,112:1382,114:1380,133:839,134:$VY7,135:$VZ7,143:844,176:$V$7,177:$V08},o($V2,[2,77]),o($V2,[2,78]),{27:[1,1384],154:$Vdb},o($V2,[2,112]),o($V2,[2,113]),o($V2,[2,132]),o($V2,[2,133]),o($V2,[2,134]),{27:[1,1386],79:[1,1385]},{27:[1,1388],157:1387,160:1389,161:[1,1390]},o($V0b,[2,228]),o($V0b,[2,229]),{116:[1,1391]},o([27,161,810],$VKa,{270:442,693:446,167:1392,171:1394,172:1395,46:1396,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,71:[1,1393],74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,768:$VLa}),o($V2,[2,157]),o($V2,[2,158]),{125:1397,279:$VM8,280:$VN8,441:926,816:927},{27:[1,1399],138:1398,148:1400,178:[1,1401],180:$Veb},o($Vy7,$Vfb,{139:1403,93:$Vgb}),o($V2,[2,162]),{154:$Vhb},o($Vib,[2,223]),o($Vib,[2,224]),{27:[1,1407],129:$Vjb},{27:[1,1409],152:$Vv,195:1408,197:1410,215:720,509:721,546:280,547:$VR1,553:303},o($V2,[2,271]),{27:[1,1412],158:[1,1411]},o($V48,[2,285]),o($V2,[2,292]),o($V2,[2,293]),{27:[1,1414],46:439,47:$Vg4,50:$Vh4,56:1413,58:$Vi4,59:1415,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,897]),o($Vy7,$Vkb,{636:1416,158:$Vlb}),o($Vy7,$Vkb,{636:1418,158:$Vlb,639:[1,1419]}),{641:1420,644:1421,766:$Vmb},o($Vnb,[2,1146]),{27:[1,1424],46:439,47:$Vg4,50:$Vh4,56:1423,58:$Vi4,59:1425,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,1196]),{67:1426,154:$V1b,161:$VGa,768:$Vob},o($V2,[2,82]),{75:[1,1428]},o($V2,[2,84]),{79:[1,1429]},o($V2,[2,86]),{85:[1,1430]},o($V2,$V3b,{68:1355,57:1431,161:$V_7}),{68:1432,161:$V_7},{78:[1,1433],89:[1,1434]},{49:1370,50:[1,1436],90:[1,1435],127:$Vpb,129:$V8b,130:$Vqb,132:$Vab,704:$Vrb},{26:$Vsb,63:882,66:$Vcb,74:[1,1440],92:[1,1441],97:1442,99:$Va8,114:885,133:839,134:$VY7,135:$Vb8,176:$V$7,177:$V08},o($V2,[2,96]),o($V2,[2,97]),o([2,118,123,333,373,374,544,690],$Vtb,{332:1444,177:$Vub}),{79:[1,1446]},{157:1447,161:[1,1448]},{71:[1,1450],161:$VKa,167:1449,768:$Vvb},{125:1452,279:$VM8,280:$VN8,441:926,816:927},{138:1398,178:[1,1453],180:$Veb},o($Vi9,$Vfb,{139:1454,93:$Vgb}),{46:1455,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{154:[1,1456]},o($Vwb,$Vdb),o($V2,$V3,{543:6,209:7,210:249,3:250,211:251,195:252,213:253,183:254,215:255,16:256,214:257,197:258,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,546:280,17:284,18:285,19:286,20:287,21:288,22:289,23:290,24:291,25:292,28:293,29:294,507:295,508:296,509:297,510:298,511:299,512:300,513:301,514:302,553:303,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1015:332,1016:333,1017:334,1018:335,1019:336,1020:337,1021:338,1022:339,1023:340,1024:341,1025:342,1026:343,1027:344,1028:345,1029:346,1030:347,1031:348,1032:349,1033:350,627:353,628:354,652:355,37:361,38:362,39:363,40:364,41:365,42:366,43:367,259:369,260:370,261:371,262:372,263:373,264:374,265:375,524:377,525:378,526:379,527:380,528:381,529:382,530:383,531:384,1034:387,1035:388,1036:389,1037:390,1038:391,1039:392,1040:393,1041:394,1042:395,1043:396,1044:397,1045:398,1046:399,1047:400,632:401,634:402,654:403,65:404,194:405,456:408,98:412,196:413,458:414,542:1457,212:1458,2:$V4,26:$V5,27:$V6,44:$V7,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$Vv,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VA,198:$VB,202:$VC,205:$VD,206:$VE,208:$VF,216:$VG,217:$VH,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$VO,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$VU,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$VM1,534:$VN1,535:$VO1,538:$VP1,539:$VQ1,547:$VR1,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$V02,610:$V12,615:$V22,616:$V32,617:$V42,618:$V52,619:$V62,620:$V72,621:$V82,622:$V92,623:$Va2,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,656:$Vf2,663:$Vg2,665:$Vh2,667:$Vi2,673:$Vj2,674:$Vk2,676:$Vl2,681:$Vm2,686:$Vn2,687:$Vo2,688:$Vp2,694:$Vq2,696:$Vr2,697:$Vs2,698:$Vt2,699:$Vu2,700:$Vv2,701:$Vw2,702:$Vx2,703:$Vy2,704:$Vz2,705:$VA2,706:$VB2,707:$VC2,708:$VD2,710:$VE2,711:$VF2,712:$VG2,713:$VH2,714:$VI2,715:$VJ2,716:$VK2,717:$VL2,718:$VM2,719:$VN2,720:$VO2,721:$VP2,722:$VQ2,723:$VR2,724:$VS2,725:$VT2,726:$VU2,727:$VV2,728:$VW2,729:$VX2,730:$VY2,731:$VZ2,732:$V_2,733:$V$2,734:$V03,735:$V13,736:$V23,737:$V33,738:$V43,739:$V53,740:$V63,741:$V73,742:$V83,743:$V93,744:$Va3,745:$Vb3,746:$Vc3,747:$Vd3,748:$Ve3,749:$Vf3,750:$Vg3,751:$Vh3,752:$Vi3,753:$Vj3,754:$Vk3,755:$Vl3,756:$Vm3,757:$Vn3,758:$Vo3,759:$Vp3,760:$Vq3,761:$Vr3,762:$Vs3,763:$Vt3,764:$Vu3,765:$Vv3,766:$Vw3,767:$Vx3,768:$Vy3,769:$Vz3,770:$VA3,771:$VB3,772:$VC3,773:$VD3,774:$VE3,775:$VF3,776:$VG3,777:$VH3,778:$VI3,779:$VJ3,780:$VK3,781:$VL3,782:$VM3,783:$VN3,784:$VO3,785:$VP3,786:$VQ3,787:$VR3,788:$VS3,789:$VT3,790:$VU3,791:$VV3,792:$VW3,793:$VX3,794:$VY3,795:$VZ3,796:$V_3,797:$V$3,798:$V04,799:$V14,800:$V24,801:$V34,802:$V44,803:$V54,804:$V64,805:$V74,806:$V84,807:$V94,808:$Va4,809:$Vb4,810:$Vc4,850:$Vd4}),o($V2,$V3,{543:6,209:7,3:250,211:251,195:252,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1015:332,1016:333,1017:334,1018:335,1019:336,1020:337,1021:338,1022:339,1023:340,1024:341,1025:342,1026:343,1027:344,1028:345,1029:346,1030:347,1031:348,1032:349,1033:350,456:408,215:629,546:630,627:639,628:640,652:642,65:649,194:650,542:1459,210:1463,2:$V4,26:$Vxb,44:$VU6,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$VV6,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VW6,198:$VX6,202:$VC,205:$VY6,206:$VE,208:$VF,217:$VZ6,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$Vyb,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$V_6,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$V$6,534:$V07,535:$Vzb,538:$V27,539:$VQ1,547:$V37,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$VAb,610:$V12,615:$V57,616:$V32,617:$V42,618:$V67,619:$V62,620:$V72,621:$V82,622:$V92,623:$V77,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,656:$V87,663:$Vg2,665:$Vh2,667:$Vi2,673:$V97,674:$Vk2,676:$Vl2,681:$Va7,686:$Vn2,687:$Vb7,688:$Vp2,694:$Vq2,696:$Vr2,697:$Vs2,698:$Vt2,699:$Vu2,700:$Vv2,701:$Vw2,702:$Vx2,703:$Vy2,704:$Vz2,705:$VA2,706:$VB2,707:$VC2,708:$VD2,710:$VE2,711:$VF2,712:$VG2,713:$VH2,714:$Vc7,715:$VJ2,716:$VK2,717:$VL2,718:$VM2,719:$Vd7,720:$VO2,721:$VP2,722:$VQ2,723:$VR2,724:$VS2,725:$VT2,726:$VU2,727:$VV2,728:$VW2,729:$VX2,730:$VY2,731:$VZ2,732:$V_2,733:$V$2,734:$V03,735:$V13,736:$V23,737:$V33,738:$V43,739:$V53,740:$V63,741:$V73,742:$V83,743:$V93,744:$Va3,745:$Vb3,746:$Vc3,747:$Vd3,748:$Ve3,749:$Vf3,750:$Vg3,751:$Vh3,752:$Vi3,753:$Vj3,754:$Vk3,755:$Vl3,756:$Vm3,757:$Vn3,758:$Vo3,759:$Vp3,760:$Vq3,761:$Vr3,762:$Vs3,763:$Vt3,764:$Vu3,765:$Vv3,766:$Vw3,767:$Vx3,768:$Vy3,769:$Vz3,770:$VA3,771:$VB3,772:$VC3,773:$VD3,774:$VE3,775:$VF3,776:$VG3,777:$VH3,778:$VI3,779:$VJ3,780:$VK3,781:$VL3,782:$VM3,783:$VN3,784:$VO3,785:$VP3,786:$VQ3,787:$VR3,788:$VS3,789:$VT3,790:$VU3,791:$VV3,792:$VW3,793:$VX3,794:$VY3,795:$VZ3,796:$V_3,797:$V$3,798:$V04,799:$V14,800:$V24,801:$V34,802:$V44,803:$V54,804:$V64,805:$V74,806:$V84,807:$V94,808:$Va4,809:$Vb4,850:$Ve7}),o([27,118,499,544,547,615,620,690,742,756,765,773,781,800,807,808,893],$VBb,{562:1465,970:1466,563:[1,1467]}),o($Vi8,[2,1945]),{27:$V6,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1470,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vc4,832:441,899:436,905:438,932:1468,933:1469,934:425,935:426,936:427,937:428,938:429,939:430,946:431,948:432,949:433,951:434},o($Vi8,[2,1944],{562:1465,563:$VCb}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,899:436,932:1472,934:425,936:1054,937:428,946:1055,948:1056},o($Vm8,$VDb,{567:906,941:1473,943:1474,568:$Vo8,569:$Vp8,570:$Vq8,571:$Vr8,572:$Vs8,573:$Vt8,574:$Vu8,575:$Vv8}),o($Vl8,[2,2261]),{27:$VEb,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441,899:436,905:438,936:1475,938:1476,946:431,948:432,949:433,951:434},o($Vl8,[2,2272],{941:908,862:1478,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),{27:[1,1480],572:$VFb},{27:[1,1483],572:$VGb,573:[1,1482]},{27:[1,1485],572:$VHb},o($VIb,[2,2280]),{27:[1,1490],572:$VJb,573:[1,1488],574:[1,1486],575:[1,1489]},{27:[1,1492],572:$VKb},{27:[1,1497],572:$VLb,573:[1,1495],574:[1,1493],575:[1,1496]},{27:[1,1499],572:$VMb},o($VNb,[2,2268],{56:435,899:436,270:442,693:446,946:1055,948:1056,46:1057,936:1500,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($Vl8,[2,2262],{941:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,899:436,936:1502,946:1055,948:1056},{572:$VFb},{572:$VGb,573:[1,1503]},{572:$VHb},{572:$VJb,573:[1,1505],574:[1,1504],575:[1,1506]},{572:$VKb},{572:$VLb,573:[1,1508],574:[1,1507],575:[1,1509]},{572:$VMb},o($VOb,$VE8,{270:442,693:446,46:921,125:922,441:926,816:927,929:1510,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VK8,$VE8,{270:442,693:446,46:921,125:922,441:926,816:927,929:1511,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{116:[1,1512]},o($VOb,[2,2298]),o($VK8,[2,2302]),o($VPb,[2,2345]),o($VPb,[2,2346]),{27:[1,1517],46:1513,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,125:1514,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:926,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:928,468:$VM5,469:$VN5,473:$VO5,485:1516,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,816:927,817:929,832:1515},o($VQb,[2,2349]),o($VQb,[2,2350]),o($VRb,[2,1706]),o($VRb,[2,1707]),o($VSb,[2,1708]),o($VSb,[2,1709]),{279:$VTb,281:$VUb,815:[1,1520]},{280:$VVb,281:$VWb,815:[1,1523]},o($VK8,$VE8,{270:442,693:446,46:921,125:922,441:926,816:927,929:1524,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{116:[1,1525]},o($VK8,[2,2301]),{46:1513,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,125:1514,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:926,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,816:927},{279:$VTb,281:$VUb},{280:$VVb,281:$VWb},{46:1526,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$VXb,832:1529,834:1527},{118:[1,1530]},{46:921,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,118:$VE8,125:922,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:926,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,816:927,929:1531},{2:$VYb,118:$VZb,121:1532},{2:$VYb,118:$VZb,121:1535},{152:$Vv,195:1550,197:1551,215:720,509:721,546:280,547:$VR1,553:303,956:1536,957:1537,958:1538,959:1539,960:1540,961:1541,962:1542,963:1543,964:1544,965:1545,966:1546,967:1547,968:1548,969:1549},o($VQ8,$VR8,{899:436,659:939,948:940,954:1552,116:$VS8}),{46:1553,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{734:[1,1554]},o($VU8,[2,1819]),o([2,26,27,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,788,789,797,800,807,808,893,901],[2,1769]),{27:[1,1556],75:[1,1555]},o($V2,[2,1017]),{27:[1,1559],44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,611:1557,612:1558,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},{27:[1,1561],46:439,47:$Vg4,50:$Vh4,56:1565,58:$Vi4,59:1566,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,158:[1,1564],174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,608:1560,609:1562,610:[1,1563],621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},{27:[1,1568],51:1570,473:$V_b,599:1567,605:1569,619:$V$b,620:$V0c},o($V2,[2,1023]),{46:1574,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{75:[1,1575],123:$V29},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:1576,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V2,[2,1016]),{46:1057,47:$Vg4,50:$Vh4,56:1565,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,158:[1,1578],174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,608:1560,610:[1,1577],621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:1579,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V59,[2,1052]),o([55,123,544,690],[2,1053]),o([27,55,75,123,152,535,544,547,615,690],[2,1773]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1583,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1581,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4,835:1582,836:1580},o($V2,[2,2545]),o($V2,[2,2546]),o($V2,[2,2547]),o($V2,[2,2548]),{2:[1,1585],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,125:1589,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:[1,1592],217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1587,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:926,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,541:1593,560:1586,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,726:[1,1594],727:$VA9,761:[1,1591],799:[1,1590],801:$VB9,816:927,919:1588,920:[1,1595],925:1089,926:1090},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1596,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($Vg9,$Vq7,{855:680,853:692,851:1059,800:$Vw7}),{152:$VV6,195:1061,215:809,546:630,547:$V37},{46:1057,47:$Vg4,50:$Vh4,56:1597,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{55:$V49,75:$V$8,123:$V1c,598:1598},{75:[1,1600],123:$V29},o([75,123],$VZ8,{270:442,693:446,46:596,601:1601,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o([55,75,123,535,544,690],$V89,{614:961,80:963,116:$V2c}),{55:$V49,123:$V1c,535:$V$8,598:1603},{621:[1,1604]},{123:$V29,535:[1,1605]},o($V3c,$VZ8,{270:442,693:446,46:596,601:1606,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V3c,$VY8,{621:[1,1607]}),o([55,116,123,535],$Vb9,{624:1608,596:[1,1609],626:$VE9}),{46:1057,47:$Vg4,50:$Vh4,56:1610,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vi9,$VF9,{818:1611,239:$VG9}),o($V4c,$VF9,{818:1612,239:$VG9}),o($Vc9,$VZ8,{693:446,270:965,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,561:$Vd9,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,776:$Ve9}),{46:1057,47:$Vg4,50:$Vh4,56:1613,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,$VJ9,{627:813,648:1115,615:$V57}),o($VK9,$VL9,{631:1117,536:1124,577:1125,807:$VN9}),o([116,535,547,615],$Vw9,{123:$V5c}),{108:[1,1615]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1616,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{639:$Vqa,675:1636,676:$Vpa},{535:$Vra,683:1637},o($Vsa,$Vta),{158:[1,1638]},{46:1057,47:$Vg4,50:$Vh4,56:1639,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:1640,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{26:[1,1641]},o([26,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],$Vxa,{727:[1,1642]}),{2:$Vza,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,549:1643,551:1644,557:1645,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1647,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1648,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{62:[1,1649]},{46:1057,47:$Vg4,50:$Vh4,56:1251,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:1254,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{67:1650,71:[1,1651],73:1344,154:$V1b,161:$VGa,366:877,768:$Vob},{75:[1,1652]},{79:[1,1653]},{85:$V2b},o($V2,$V3b,{57:1352,68:1355,161:$V_7}),{68:1358,161:$V_7},{78:$V5b,89:$V6b},{49:1370,50:[1,1655],90:[1,1654],127:$Vpb,129:$V8b,130:$Vqb,132:$Vab,704:$Vrb},{26:$Vsb,63:882,66:$Vcb,74:[1,1656],92:[1,1657],97:1378,99:$Va8,114:885,133:839,134:$VY7,135:$Vb8,176:$V$7,177:$V08},{129:$Vjb},{152:$VV6,195:1408,215:809,546:630,547:$V37},{158:[1,1658]},o($V4c,$VGa,{67:1659,768:$Vob}),o([158,686],$VEa,{268:1660,718:$VFa}),o($Vi9,$VGa,{67:1661,768:$Vob}),{62:[1,1662]},{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1663,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1664,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vm9,$VIa,{206:[1,1666],491:[1,1665]}),o($Vi9,$VKa,{167:1667,768:$Vvb}),o($Vi9,$VKa,{167:1668,768:$Vvb}),{206:[1,1669],491:[1,1670]},o($Vi9,$VKa,{167:1671,768:$Vvb}),o($Vi9,$VKa,{167:1672,768:$Vvb}),{62:[1,1673]},o($Vi9,$VKa,{167:1674,768:$Vvb}),{46:1057,47:$Vg4,50:$Vh4,56:1675,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{488:$VMa,535:$VNa,811:1676},{62:$VOa,158:$VPa,1048:1677},{710:$VQa},{307:$VRa},o($V79,$VSa,{693:446,1049:1678,270:1679,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6}),{55:[1,1680]},{45:1682,46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1681,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,610:$VC7,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,792:$VD7},{806:[1,1683]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1684,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{596:[1,1685]},o([279,307,544,690],$VUa,{826:1686,488:$VVa}),{239:[1,1687]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1329,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vic,$VXa,{1051:1688,488:$Vjc,535:$Vkc}),{54:$VO7,769:$VW7,812:1337},o($Vi9,$Vkb,{636:1691,158:$Vlb}),o($Vi9,$Vkb,{636:1692,158:$Vlb,639:[1,1693]}),{641:1694,766:$Vlc},o($Vmc,$Vh8,{865:1696,123:$Vnc}),o($Voc,$Vn8,{941:908,862:1698,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o([2,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,773,781,800,807,808,893],$VD8,{947:916,797:$VJ8}),o([2,55,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,807,808,893],$VE8,{270:442,693:446,929:919,46:921,125:922,441:926,816:927,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o([2,26,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,768,773,781,797,800,807,808,893],$VP8,{727:[1,1699]}),{46:1057,47:$Vg4,50:$Vh4,56:1700,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vg9,[2,1897]),o($Vv7,[2,1903]),{118:[1,1701]},{118:[1,1702]},o($Vv7,[2,1902]),o($Vpc,[2,343]),o($Vpc,[2,344]),o($Vg7,$Vq9,{237:1703,244:$Vr9,245:$Vs9}),o($Vg7,$Vqc),o($Vg7,[2,355]),o($Vg7,[2,356]),o($Vg7,[2,359],{243:1704,247:[1,1705],248:[1,1706],249:[1,1707],250:[1,1708]}),o($Vt9,[2,358]),o($Vv9,[2,1911]),o($Vv7,[2,1913],{855:680,853:1709,800:$Vw7}),o($Vv7,[2,1914],{855:1072,800:$Vw7}),{27:[1,1711],547:$VH7,548:1710,561:$VI7,755:$VJ7},{46:687,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,859:1712,860:1713},{46:992,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,857:1714,859:685},{116:[1,1715]},o($Vrc,[2,1929]),{118:[1,1716]},o($Vv7,[2,1906]),{547:$VH7,548:1717,561:$VI7,755:$VJ7},o([27,218],$V3b,{68:1355,102:1356,57:1718,60:1719,161:$V4b}),o($V2,[2,318]),o($Vsc,$V3b,{68:1355,57:1720,161:$V_7}),o($Vsc,$V3b,{68:1355,57:1721,161:$V_7}),o($V2,[2,909],{123:[1,1722]}),o($Vtc,[2,911]),o($Vuc,[2,2209]),o($Vuc,[2,2210]),o($Vuc,$Vvc,{727:[1,1723]}),{385:$Vwc,801:[1,1725]},{385:[1,1726]},{27:[1,1728],535:[1,1727]},o($V2,[2,1095]),{27:[1,1730],227:[1,1729]},o($V2,[2,1099]),{27:[1,1732],51:1570,473:$V_b,599:1731,605:1733,619:$V$b,620:$V0c},o($V2,[2,1107]),{27:[1,1735],123:$V29,535:[1,1734]},{27:[1,1737],227:[1,1736]},{27:[1,1739],535:$Vxc},o($V2,[2,1121]),o($VC9,[2,1123]),{27:[1,1741],621:$Vyc},o($V2,$V3b,{270:442,693:446,46:1187,68:1355,102:1356,844:1742,57:1743,845:1744,60:1746,140:1747,172:1748,846:1749,832:1750,27:[1,1745],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,161:$V4b,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vzc}),o($V2,$V3b,{68:1355,57:1752,161:$V_7}),o($V2,[2,1891],{270:442,693:446,46:1057,56:1753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{27:[1,1756],46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,823:1754,825:1755,832:1759,833:1758},o($Vy7,[2,1711]),{27:[1,1761],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1760,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,$VL9,{577:1125,536:1762,537:1764,27:[1,1763],807:$VM9}),o($V2,[2,905]),o($V2,$VL9,{577:1125,536:1765,807:$VN9}),o($VO9,[2,1163]),o($V2,[2,1165],{648:727,627:813,629:1766,615:$V57}),o($V2,[2,1129]),o($V2,[2,1140]),o($VAc,$VBc,{578:1767,595:1768,589:1769,620:$VCc}),o([118,499,544,615,620,690,742,756,765,773,781,800,808,893],$VDc,{2:[1,1771],27:[1,1772]}),o($VEc,$VBc,{578:1773,595:1774,620:$VFc}),{27:[1,1778],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1779,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1780,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,868:1776,869:1777,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($V2,[2,1139]),o($VGc,$VBc,{595:1774,578:1781,620:$VFc}),o($VHc,$VDc),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1782,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,868:1776,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{27:[1,1785],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1245,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:1783,556:1784,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,725:$VBa,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,928:1238,930:1239,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($V2,[2,1166],{627:813,648:1115,615:$V57}),o($VIc,$VL9,{536:1119,577:1120,537:1121,631:1786,576:1787,807:$VM9}),o($VO9,[2,1171]),o($VIc,$VL9,{536:1124,577:1125,631:1788,807:$VN9}),o($VIc,$VL9,{536:1124,577:1125,631:1789,807:$VN9}),{27:[1,1791],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,653:1790,655:1792,661:1808,662:1809,663:$VRc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},o($V2,[2,1191],{902:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d}),o($V2,[2,1192],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($Vuc,[2,2055]),{27:[1,1842],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1840,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1841,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1845,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1843,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1844,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vnd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1847,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1848,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:[1,1849],816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vnd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1851,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1852,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:[1,1853],816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{116:$Vx4,899:1854,905:1855},{27:[1,1858],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1856,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1857,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:[1,1862],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1860,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1863,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,663:$Vod,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,758:$Vpd,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,903:1859,904:1144,908:1861,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190,1066:1864,1067:1865,1068:1867,1069:1868},o($Vqd,[2,2085]),o($Vuc,[2,2187]),o($Vuc,$Vrd,{912:1870,917:1871,116:$Vsd}),{116:$Vsd,912:1873,917:1874},o($Vuc,[2,2191]),o($Vuc,[2,2192]),o($Vqd,[2,2193]),o($Vqd,[2,2194]),o($Vqd,[2,2197]),o($Vuc,[2,2204]),o($Vtd,$Vud,{727:[1,1875]}),{116:[2,2373]},{116:[2,2374]},{116:[2,2375]},{116:[2,2376]},{116:[2,2377]},o($Vuc,$Vvd,{972:1876,978:1877,974:1878,980:1879,783:$Vwd}),{27:[1,1882],783:$Vwd,974:1881,980:1883},o($Vuc,[2,2359]),o($Vuc,[2,2360]),o($Vqd,[2,2205]),o($Vqd,[2,2200]),o($Vqd,[2,2361]),o($Vqd,[2,2363],{974:1884,783:$Vxd}),o($Vqd,[2,2367]),o($Vqd,[2,2368]),o($Vuc,[2,2206]),o($Vuc,[2,2207]),o($Vyd,[2,1831]),o($Vzd,[2,2383]),o($Vzd,[2,2384]),o($Vzd,[2,2385]),{116:[1,1886]},{116:[1,1887]},{116:[1,1888]},o($Vqd,[2,2208]),o($Vqd,[2,1833],{727:[1,1889]}),o($Vqd,[2,2386]),o($Vqd,[2,2387]),o($Vqd,[2,2388]),o($Vuc,[2,2218]),o($Vuc,[2,2219]),o($Vuc,[2,2220]),o([2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,729,731,732,734,735,742,754,756,758,759,764,765,772,773,778,780,781,787,788,789,791,800,807,808,893,901],$VAd,{728:[1,1890]}),{116:[1,1891]},{116:[1,1892]},{116:[1,1893]},o($Vqd,[2,2221]),o($Vqd,[2,2222]),o($Vuc,[2,2223]),o($Vuc,[2,2224]),{116:[2,2498]},{116:[2,2499]},{116:[2,2500]},{116:[2,2501]},{116:[2,2502]},{116:[2,2503]},{116:[2,2504]},{116:[2,2505]},{116:[2,2506]},{116:[2,2507]},{116:[2,2508]},{116:[2,2509]},{116:[2,2510]},{116:[2,2511]},{116:[2,2512]},{116:[2,2513]},{116:[2,2514]},{27:[1,1895],676:[1,1894]},o($Voa,[2,1249]),{535:[1,1896]},o($V2,[2,1255],{683:1897,535:$Vra}),o($V2,[2,1256],{683:1898,535:$Vra}),{535:[1,1899]},{27:[1,1901],46:439,47:$Vg4,50:$Vh4,56:1900,58:$Vi4,59:1902,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($Vsa,[2,1268]),o($VC9,$V3b,{68:1355,57:1903,102:1904,161:$V4b}),o($Vsa,[2,1272]),o($Vsa,$V3b,{68:1355,57:1905,161:$V_7}),o($V_8,$V3b,{68:1355,57:1906,102:1907,161:$V4b}),o($V2,[2,1278]),o($V2,[2,1279],{68:1355,57:1908,75:$V3b,161:$V_7}),{27:$VBd,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,671:1909,672:1910,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:1911,1062:1912,1063:1913},o($V2,[2,2709]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,671:1917,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:1911,1063:1918},o($Vua,[2,1825]),o($Vva,[2,1827]),{46:1919,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$VXb,832:1529,834:1920},{535:$VS6,550:1921,555:1922,628:1923,634:1924},o([118,499,544,690,800],$VCd,{628:1923,634:1924,550:1926,555:1927,27:[1,1928],123:[1,1929],535:$VS6,552:$VDd}),{535:$V17,550:1930,628:1931},o($VEd,[2,924],{628:1931,550:1932,535:$V17}),o($VEd,[2,925],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,928:1238,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:1646,902:1822,628:1931,550:1933,551:1934,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$Vs7,116:$V7c,123:$VGd,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,535:$V17,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VHd,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{123:[1,1938],535:$VId},o($VJd,[2,2232]),o($VKd,[2,2234],{123:[1,1939]}),o($V3c,[2,946]),{123:[1,1940]},o([27,118,123,499,535,544,552,615,620,690,742,756,765,773,781,800,807,808,893],$VE8,{270:442,693:446,46:921,125:922,832:924,485:925,441:926,816:927,463:928,817:929,902:1806,907:1807,929:1941,931:1942,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VJc,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VF8,126:$VKc,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$VLc,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VG8,280:$VH8,307:$VMc,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,348:$VNc,349:$VOc,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$VPc,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,488:$VQc,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,725:$VSc,726:$VTc,731:$VUc,734:$Vy6,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($VJd,$VLd),o($VMd,$VE8,{270:442,693:446,46:921,125:922,441:926,816:927,902:1839,929:1943,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$Vad,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,126:$Vbd,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$Vcd,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,348:$Vdd,349:$Ved,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$Vfd,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,488:$Vgd,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,725:$Vhd,726:$Vid,731:$Vjd,734:$VN6,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),{108:$VNd},{26:[1,1945],27:[1,1946]},o($V2,[2,43]),{27:[1,1948],55:[1,1947]},{27:[1,1950],46:439,47:$Vg4,50:$Vh4,56:1949,58:$Vi4,59:1951,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,56]),o([26,27,66,74,78,84,86,88,92,99,134,135,156,161,166,176,177,181,182,382],[2,210]),o($VOd,[2,211]),o($VOd,[2,212]),o([26,27,108],[2,275]),o($V2,[2,276]),o($V2,[2,277]),o($V48,$VPd,{269:1952,686:$VQd}),o($VDa,[2,1732]),{27:[1,1955],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1954,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,382],{693:446,270:1956,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6}),{27:[1,1958],88:[1,1957]},{27:[1,1960],46:1962,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1959,306:1961,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:1963},o($V2,[2,721]),o($Vy7,$VGa,{67:1964,768:$Vob}),o($V2,[2,705]),o($V2,[2,756]),{27:[1,1966],108:[1,1965]},o([27,78,107,108,116,129,152,177,277,307,376,382,396,409,499,544,690,704],$VRd,{727:[1,1967]}),{27:[1,1969],55:[1,1968]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1970,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1971,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,852],{270:442,693:446,46:1972,27:[1,1973],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,853],{270:442,693:446,46:1974,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{27:[1,1976],760:$VSd},{27:[1,1978],46:1962,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1977,306:1979,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:1963},o($V2,[2,862],{270:442,693:446,46:1268,303:1980,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VH9,$VKa,{167:1981,171:1982,768:$VLa}),o($VH9,$VKa,{167:1983,171:1984,768:$VLa}),o($V2,[2,883]),o($V2,[2,867]),{27:[1,1986],46:439,47:$Vg4,50:$Vh4,56:1985,58:$Vi4,59:1987,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,869],{270:442,693:446,46:1057,56:1988,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{27:[1,1990],46:1989,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,878]),{27:[1,1992],46:439,47:$Vg4,50:$Vh4,56:1991,58:$Vi4,59:1993,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,887]),{27:[1,1995],46:439,47:$Vg4,50:$Vh4,56:1994,58:$Vi4,59:1996,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,893],{270:442,693:446,46:1057,56:1997,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,2569]),{279:$VM8,441:1998},o($V79,[2,1720]),{27:[1,2000],46:1999,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,2587],{270:442,693:446,46:2001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VJa,[2,1690]),o($VJa,[2,1691]),o($V2,[2,2596],{727:[1,2002]}),o($VTd,[2,1759]),o($VTd,[2,1760]),{27:[1,2004],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2003,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:2005,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:754},o($V2,[2,2598],{270:442,693:446,46:1001,76:2006,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($Vy7,[2,2602]),o($Vy7,[2,2603]),o($V2,[2,2604]),o($V2,[2,2605]),{279:$VM8,441:2007},o($V2,[2,2607]),o($V2,[2,2609]),o($V2,$VUd,{55:[1,2008]}),o($V2,[2,2614],{55:[1,2009]}),o($V79,$VVd,{27:[1,2010]}),o($V79,[2,2623]),{27:[1,2012],46:2011,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,2631],{270:442,693:446,46:2013,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,$VWd,{68:2015,27:[1,2016],161:$V_7,239:$VXd}),{27:[1,2018],46:2017,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,2648]),o($V2,[2,2649],{68:2020,161:$V_7,239:[1,2019]}),o($VWa,$VXa,{1051:2021,1053:2022,488:$VYa,535:$VZa}),o($V2,[2,2639]),o($V2,$VYd,{68:2023,27:[1,2024],161:$V_7}),o($V2,[2,2658]),o($V2,[2,2659],{68:2025,161:$V_7}),{27:[1,2027],473:$VZd,619:$V_d,814:2026},o($V2,[2,2663],{814:2030,473:$VZd,619:$V_d}),o($V2,$V$d,{441:2031,27:[1,2033],279:$VM8,307:$V0e}),{27:$V1e,46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,823:2034,825:2035,832:1759,833:1758},o($VWa,$V2e,{822:2037,824:2038,811:2039,488:$VMa,535:$VNa}),o($V2,[2,2670],{822:2040,811:2041,307:$V2e,488:$VMa,535:$VNa}),o($V2,[2,2686],{116:[1,2042]}),o($V2,[2,2688]),o($V2,[2,2689]),o($V3e,$V4e,{1052:2043,1054:2044,307:$V5e}),o($V2,$V4e,{1052:2046,307:$V6e}),{27:[1,2049],46:2048,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,2051],46:2050,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:2052,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V$a,[2,1717]),o($V79,[2,1719]),o($V2,[2,1137]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2053,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VIc,$VL9,{536:1124,577:1125,631:1786,807:$VN9}),{27:[1,2055],68:2054,102:2056,161:$V4b},{27:[1,2058],46:2057,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,63]),o($V2,[2,101]),{27:[1,2060],46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2059,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,140]),{80:2061,110:2062,116:$V99},o($V2,[2,122]),o($V2,[2,68]),o($V2,[2,119]),o($V2,[2,69]),o($V2,[2,130]),o($V2,[2,131]),o([27,58,75,116,152,218,418,535,544,547,615,637,690,768],[2,1744]),o([116,152,218,418,544,547,615,690,768],[2,1745]),{116:[1,2063]},o($V2,[2,70]),o($V2,[2,110]),o($V2,[2,111]),o($V2,[2,71]),o($V2,[2,72]),o($V2,[2,114]),{27:[1,2064],108:[1,2065]},{91:2066,109:2067,116:[1,2068]},{27:[1,2070],51:2069,53:2071,473:$V7e,619:$V8e,620:$V9e},{27:[1,2075]},o($V2,[2,138]),{27:[1,2077],128:2076,417:$Vae,418:$Vbe,420:$Vce,421:$Vde,422:$Vee,423:$Vfe,424:$Vge,425:$Vhe},o($V2,[2,153]),{48:2086,116:$Vie},{125:2088,279:$VM8,280:$VN8,441:926,816:927},{48:2089,116:$Vie},o($V2,[2,173]),{641:2090,644:2091,766:$Vmb},{27:[1,2093],75:[1,2092]},o($Vy7,$Vfb,{139:1403,93:$Vje}),o($V2,[2,79]),o($V2,[2,135]),{27:[1,2095],154:$Vhb},{27:[1,2096],49:1370,52:1374,127:$V7b,129:$V8b,130:$V9b,132:$Vab,704:$Vbb},o($V2,[2,139]),o($Vwb,$V1b),o($V2,[2,100]),{80:2097,110:2098,116:$V99},o($Vke,[2,585]),{27:[1,2100],152:[1,2099]},o($V2,[2,187]),o($V2,[2,192],{152:[1,2101]}),{116:[1,2102]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:2103,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,838:2104},{27:[1,2107],68:2109,102:2110,161:$V4b,168:2106,170:2108,183:2111,810:$Vc4},{27:[1,2113],46:2112,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,208]),o($V2,[2,209]),{728:[1,2114]},o($Vle,$Vme,{136:2115,146:2116,150:[1,2117]}),o($V2,[2,160]),o($V2,[2,170]),o($V2,[2,171]),o($V3e,$Vne,{179:2118,695:$Voe}),o($V2,[2,226]),{27:[1,2121],46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2120,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vy7,$Vpe),{94:2122,116:$Vqe,155:2123},{48:2125,116:$Vie},o($V2,[2,272]),o($V2,[2,269]),o($V2,[2,273]),o($V2,[2,274]),{27:[1,2127],46:439,47:$Vg4,50:$Vh4,56:2126,58:$Vi4,59:2128,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,279]),o($V3e,$V3b,{68:1355,102:1356,57:2129,60:2130,161:$V4b}),o($V2,$V3b,{270:442,693:446,46:1057,68:1355,57:2131,56:2132,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,161:$V_7,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,$V3b,{68:1355,57:2133,161:$V_7}),{27:[1,2135],46:439,47:$Vg4,50:$Vh4,56:2134,58:$Vi4,59:2136,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($Vy7,[2,1178]),{27:[1,2138],46:439,47:$Vg4,50:$Vh4,56:2137,58:$Vi4,59:2139,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},{27:[1,2141],640:[1,2140]},o($Vre,$Vse,{642:2142,645:2143,409:$Vte}),o($Vue,$Vse,{642:2145,409:$Vve}),{810:[1,2148],1007:[1,2147]},{27:[1,2150],108:[1,2149]},o($V2,[2,1197]),o($V2,[2,1198]),{68:2151,161:$V_7},{88:[1,2152]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2153,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{80:2154,116:$V2c},o($V2,[2,87]),o($V2,[2,88]),o($V2,[2,89]),o($V2,[2,90]),o($V2,[2,91]),{91:2155,116:$Vwe},{51:2157,473:$V_b,619:$V$b,620:$V0c},{128:2076,417:$Vae,418:$Vbe,420:$Vce,421:$Vde,422:$Vee,423:$Vfe,424:$Vge,425:$Vhe},{125:2158,279:$VM8,280:$VN8,441:926,816:927},{641:2090,766:$Vlc},{75:[1,2159]},o($Vi9,$Vfb,{139:1454,93:[1,2160]}),o($V2,[2,98]),{49:1370,127:$Vpb,129:$V8b,130:$Vqb,132:$Vab,704:$Vrb},o([2,118,123,373,374,544,690],$Vxe,{326:2161,333:$Vye}),o([2,27,118,123,333,373,374,544,690],[2,471]),{80:2163,116:$V2c},{152:[1,2164]},{116:[1,2165]},{68:2109,161:$V_7,168:2166},{46:2112,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{760:$VSd},o($Vze,$Vme,{136:2167,150:[1,2168]}),o($V2,$Vne,{179:2169,695:$Voe}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2170,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{320:$VAe,323:$VBe,368:2171,371:$VCe},{94:2175,116:$VDe},o($V2,[2,917]),{544:[1,2178],690:[2,1298]},{544:$VEe,690:[2,1297]},{2:$Ve4,46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,864:1053,899:436,932:423,934:425,936:1054,937:428,946:1055,948:1056},{2:$Vz6,44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$Vh9,486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:$VI6,597:974,601:975,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{2:$VO6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:615,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$Vj9,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,559:613,561:$VR6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{3:616,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,26:$VT6,30:304,31:305,32:306,33:307,34:308,35:309,36:310,44:$VU6,65:649,152:$VV6,166:$VW6,194:650,195:618,198:$VX6,205:$VY6,211:617,215:629,217:$VZ6,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,266:$V_6,456:408,500:273,501:274,502:275,503:276,504:277,505:278,506:279,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,533:$V$6,534:$V07,535:$V17,538:$V27,546:630,547:$V37,596:$V47,615:$V57,618:$V67,623:$V77,627:639,628:640,652:642,656:$V87,673:$V97,681:$Va7,687:$Vb7,714:$Vc7,719:$Vd7,850:$Ve7,1015:332,1016:333,1017:334,1018:335,1019:336,1020:337,1021:338,1022:339,1023:340,1024:341,1025:342,1026:343,1027:344,1028:345,1029:346,1030:347,1031:348,1032:349,1033:350},o($Vn9,$Vh7,{232:2179,233:[1,2180],234:$Vi7,235:$Vj7,236:$Vk7,238:$Vl7,239:$Vm7,240:$Vn7,241:$Vo7}),o($VFe,[2,2355]),o($Vj8,$Vh8,{865:2181}),{2:$VGe,27:[1,2184],62:[1,2182]},o($Vk8,[2,2248]),o($Vj8,[2,2251],{123:[1,2185]}),o($Vj8,[2,2253]),{2:$VGe,62:[1,2186]},o($Vj8,[2,2250]),{27:$VEb,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441,899:436,905:438,936:2187,938:1476,946:431,948:432,949:433,951:434},o($Vl8,[2,2274],{941:908,862:2188,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VHe,$VIe,{942:2189,944:2190,55:$VJe}),o($VNb,$VIe,{942:2192,55:$VKe}),o($VNb,$VIe,{942:2194,55:$VKe}),o($Vl8,[2,2273],{941:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VIb,[2,2276]),o($VLe,[2,958]),o($VIb,[2,2277]),{27:[1,2196],572:$VMe},{2:[1,2197],572:[1,2198]},o($VIb,[2,2279]),o($VLe,[2,961]),{27:[1,2200],572:$VNe},o($VIb,[2,2282]),{27:[1,2202],572:$VOe},{27:[1,2204],572:$VPe},{2:[1,2205],572:[1,2206]},o($VIb,[2,2285]),o($VLe,[2,966]),{27:[1,2208],572:$VQe},o($VIb,[2,2287]),{27:[1,2210],572:$VRe},{27:[1,2212],572:$VSe},{2:[1,2213],572:[1,2214]},o($VIb,[2,2290]),o($VLe,[2,971]),o($VNb,$VIe,{942:2215,55:$VKe}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,899:436,936:2216,946:1055,948:1056},o($VTe,$VIe,{942:2189,55:$VKe}),{572:$VMe},{572:$VNe},{572:$VOe},{572:$VPe},{572:$VQe},{572:$VRe},{572:$VSe},o($VOb,[2,2297]),o($VK8,[2,2300]),{27:$V6,183:2220,385:$VUe,694:[1,2217],722:$VVe,727:$VWe,810:$Vc4,925:2218},o($VPb,[2,2347]),o($VPb,[2,2348]),o($VQb,[2,2351]),o($VQb,[2,2352]),o($VQb,[2,2353]),{279:$VXe},o($VYe,[2,1701]),o($VZe,[2,1702]),{280:$V_e},o($V$e,[2,1704]),o($VZe,[2,1705]),o($VK8,[2,2299]),{385:$VUe,694:[1,2225],722:$VVe,727:$VWe,925:2226},o([2,26,27,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,742,756,765,768,773,781,797,800,807,808,810,893],[2,1790]),o($VT8,[2,1793]),o($V0f,[2,1767]),o($V0f,[2,1768]),o($V1f,[2,2324]),{118:[1,2227]},o($V2f,[2,2326]),o($V3f,[2,1770]),o($V3f,[2,1771]),o($V2f,[2,2327]),o($V4f,[2,2328]),o($V4f,[2,2323],{955:2228}),o($V4f,[2,2330]),o($V4f,[2,2331]),o($V4f,[2,2332]),o($V4f,[2,2333]),o($V4f,[2,2334]),o($V4f,[2,2335]),o($V4f,[2,2336]),o($V4f,[2,2337]),o($V4f,[2,2338]),o($V4f,[2,2339]),o($V4f,[2,2340]),o($V4f,[2,2341]),o($V4f,[2,2342]),o($V4f,[2,2343]),{152:$VV6,195:1550,215:809,546:630,547:$V37,956:1536,958:1538,960:1540,962:1542,964:1544,966:1546,968:1548},o($VT8,[2,1792]),o($VU8,[2,1818]),{27:[1,2230],51:1570,473:$V_b,599:2229,605:2231,619:$V$b,620:$V0c},o($V2,[2,1018]),o($V59,[2,1044]),o($V79,[2,1046],{123:[1,2232]}),o($V79,[2,1050],{123:[1,2233]}),o($V5f,[2,1033]),o($V2,[2,1034]),o($V2,[2,1035]),{27:[1,2235],46:2234,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,2237],46:439,47:$Vg4,50:$Vh4,56:2236,58:$Vi4,59:2238,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V5f,[2,1038]),o($V2,[2,1042]),o($V3e,$V6f,{602:2239,607:2240,123:$V7f,152:$V8f}),o($V2,[2,1024],{123:$V9f}),o($V2,[2,1025]),o($Vaf,[2,1065]),{46:2244,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:2245,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:2246,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V69,[2,1077]),{27:[1,2248],51:1570,473:$V_b,599:2247,605:2249,619:$V$b,620:$V0c},o($V79,[2,1049],{123:$V1c}),{46:2234,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:2236,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V79,[2,1047],{123:$V1c}),{2:$VYb,118:$VZb,121:2250},{2:$VYb,118:$VZb,121:2251},{118:$Vbf,123:$Vcf},o($Vdf,[2,1780],{123:[1,2254]}),o($Vef,[2,1778]),o($V2,[2,943]),o($V2,[2,944]),o($V2,[2,2538]),o($V2,[2,2539],{693:446,270:2255,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6}),o($V2,[2,2541]),o($V2,[2,2542]),o($V2,[2,2543]),o($V2,[2,2544]),o($Vff,[2,2201]),{385:$Vz9,541:2256,727:$VA9,801:$VB9,925:1089,926:1090},{385:$Vz9,541:2257,727:$VA9,801:$VB9,925:1089,926:1090},o($Vc9,[2,2537]),{57:2258,68:1355,161:$V_7,218:$V3b},{75:[1,2259]},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,611:1557,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},{51:1570,473:$V_b,599:2260,619:$V$b,620:$V0c},{75:[1,2261],123:$V29},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,835:2262},{535:[1,2263]},{227:[1,2264]},{51:1570,473:$V_b,599:2265,619:$V$b,620:$V0c},{123:$V29,535:[1,2266]},{227:[1,2267]},{535:$Vxc},{621:$Vyc},o($V2,$V3b,{270:442,693:446,68:1355,46:1632,57:1743,140:1747,844:2268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,161:$V_7,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,823:1754},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1760,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,$VL9,{577:1125,536:1762,807:$VN9}),{46:992,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,859:1712},{116:[1,2269]},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,653:1790,661:2283,663:$Vnf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2285,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2286,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2287,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2288,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{116:$VS8,899:1854},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2289,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2290,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,663:$Vuf,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,903:1859,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635,1066:2291,1068:1867},o($Vuc,$Vrd,{912:1870,116:$Vvf}),{116:$Vvf,912:1873},o($Vtd,$Vud,{727:[1,2294]}),o($Vuc,$Vvd,{972:1876,974:1878,783:$Vxd}),{783:$Vxd,974:1881},{116:[1,2295]},{116:[1,2296]},{116:[1,2297]},o($Vwf,$VAd,{728:[1,2298]}),{116:[1,2299]},{116:[1,2300]},{116:[1,2301]},{676:[1,2302]},{535:[1,2303]},{46:1057,47:$Vg4,50:$Vh4,56:2304,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vsa,$V3b,{68:1355,57:1903,161:$V_7}),{57:2305,68:1355,75:$V3b,161:$V_7},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,671:2306,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:1911,1063:1918},{46:1919,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{535:$V17,550:1921,628:1931},o($Vv9,$VCd,{550:1926,628:1931,123:[1,2307],535:$V17,552:$VDd}),{123:[1,2308],535:$VId},o([2,118,123,499,535,544,552,615,620,690,742,756,765,773,781,800,807,808,893],$VE8,{270:442,693:446,46:921,125:922,441:926,816:927,902:1806,929:1941,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$Vgf,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,126:$Vhf,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$Vif,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,348:$Vjf,349:$Vkf,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$Vlf,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,488:$Vmf,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,725:$Vof,726:$Vpf,731:$Vqf,734:$VN6,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),{26:[1,2309]},{55:[1,2310]},{46:1057,47:$Vg4,50:$Vh4,56:2311,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{68:2312,161:$V_7},{46:2313,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2059,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{80:2314,116:$V2c},{91:2066,116:$Vwe},{51:2069,473:$V_b,619:$V$b,620:$V0c},{75:[1,2315]},o($Vi9,$Vfb,{139:1454,93:$Vje}),{46:1057,47:$Vg4,50:$Vh4,56:2316,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2317,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{158:$VPd,269:2318,686:$VQd},{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:2319,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vi9,$VGa,{67:2320,768:$Vob}),{108:[1,2321]},{55:[1,2322]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2323,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2324,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{46:2325,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1977,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V4c,$VKa,{167:2326,768:$Vvb}),o($V4c,$VKa,{167:2327,768:$Vvb}),{46:1057,47:$Vg4,50:$Vh4,56:2328,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:2329,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:1991,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:1994,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,$V3b,{68:1355,57:2330,161:$V_7}),{46:2331,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2003,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,$VUd,{55:[1,2332]}),o($V79,$VVd),{46:2333,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,$VWd,{68:2334,161:$V_7,239:$VXd}),{46:2017,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vic,$VXa,{1051:2335,488:$Vjc,535:$Vkc}),o($V2,$VYd,{68:2023,161:$V_7}),{473:$VZd,619:$V_d,814:2026},o($V2,$V$d,{441:2031,279:$VM8,307:$V0e}),{307:$V2e,488:$VMa,535:$VNa,811:2041,822:2336},o($V2,$V4e,{1052:2337,307:$V6e}),{46:2048,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:2050,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:2338,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:2339,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{640:[1,2340]},o($Vxf,$Vse,{642:2341,409:$Vve}),{1007:[1,2342]},o([2,118,499,544,547,615,620,690,742,756,765,773,781,800,807,808,893],$VBb,{562:1465,563:$VCb}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,899:436,932:1468,934:425,936:1054,937:428,946:1055,948:1056},o($Voc,$VDb,{941:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),{46:1526,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{108:[1,2343]},o($Vg9,$Vq7,{855:680,853:692,851:2344,800:$Vw7}),o($Vv7,[2,1901]),o($Vg7,[2,348]),o($Vg7,[2,353]),o($Vg7,[2,360]),o($Vg7,[2,361]),o($Vg7,[2,362]),o($Vg7,[2,363]),o($Vv7,[2,1915],{855:1072,800:$Vw7}),{546:2345,547:$VR1,553:2346},o($VEd,[2,1917],{546:2347,547:$V37}),o($Vy9,[2,1923]),o($Vx9,[2,1925],{123:[1,2348]}),o($Vx9,[2,1926],{123:$V5c}),o($VQ8,$VR8,{954:943,659:2349,183:2350,660:2351,27:$V6,810:$Vc4}),o($Vv7,[2,1905]),{546:2345,547:$V37},{27:[1,2353],218:[1,2352]},o($V2,[2,320],{218:[1,2354]}),o($V2,[2,319],{218:[1,2355]}),o($V2,[2,326],{218:[1,2356]}),{385:$Vz9,541:2357,727:$VA9,801:$VB9,925:1089,926:1090},o($Vuc,$Vyf,{385:$Vzf,801:[1,2359]}),o($Vuc,[2,2214]),{385:[1,2360]},o($Vuc,[2,2215]),{27:[1,2362],51:1570,473:$V_b,599:2361,605:2363,619:$V$b,620:$V0c},o($V2,[2,1096]),{27:[1,2365],44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:2364,603:2366,611:595,612:597,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V2,[2,1100]),o($V2,$VAf,{123:$V7f}),o($V2,[2,1108],{123:$V9f}),o($V2,[2,1109]),{27:[1,2368],51:1570,473:$V_b,599:2367,605:2369,619:$V$b,620:$V0c},o($V2,[2,1110]),{27:[1,2372],46:596,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:[1,2371],486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,601:2370,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,1113]),{46:596,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,601:2373,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,1122]),o($VC9,[2,1124]),o($V2,[2,1125]),o($V2,$V3b,{68:1355,102:1356,57:2374,60:2376,27:[1,2375],161:$V4b,727:[1,2377]}),o($V2,[2,1880]),o($V2,$V3b,{68:1355,57:2378,161:$V_7}),o($V2,$V3b,{68:1355,57:2379,161:$V_7}),o($V2,[2,1890]),o($VBf,[2,1839]),o($VCf,[2,1841],{727:[1,2380]}),o($VCf,[2,1845],{727:[1,2381]}),o($VDf,[2,1854]),o($VDf,[2,1855]),o($V2,[2,1883]),o($V2,$V3b,{270:442,693:446,68:1355,46:1632,140:1747,844:2382,57:2383,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,161:$V_7,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,1881]),o($V2,[2,1892]),o($V2,$VEf,{270:442,693:446,46:1757,823:2384,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VTa,[2,1799]),o($VTa,[2,1800]),o([2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,788,789,800,807,808,893,901],[2,1766]),o($V2,[2,1882]),o($V2,[2,1894],{693:446,270:2385,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6}),o($V2,[2,903]),o($V2,$VL9,{577:1125,536:2386,807:$VN9}),o($V2,[2,908]),o($V2,[2,907]),o($V2,[2,1167],{627:813,648:1115,615:$V57}),o($VFf,$VGf,{579:2387,584:2388,590:2389,765:$VHf}),o($VAc,$VIf,{2:[1,2391],27:[1,2392]}),o($VJf,$VGf,{579:2393,584:2394,765:$VKf}),{27:[1,2397],79:[1,2396]},o([742,756,765,773,781,808,893],$VBc,{595:1774,589:2399,578:2400,27:[1,2398],620:$VCc}),o($VEc,$VBc,{595:1774,578:2401,620:$VFc}),o($VJf,$VGf,{584:2394,579:2402,765:$VKf}),o($VGc,$VIf),{79:[1,2403]},o($VHc,[2,1949]),o($VLf,[2,1950]),o($VLf,[2,1951],{902:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d}),o([2,27,118,499,544,615,620,690,742,756,765,773,781,800,808,893],$VMf,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($VLf,[2,2054],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($VNf,$VGf,{584:2394,579:2404,765:$VKf}),o([2,118,499,544,568,569,570,571,572,573,574,575,615,620,690,742,756,765,773,781,800,808,893],$VMf,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($VOf,$VPf,{27:[1,2405],123:$VQf}),o($VOf,[2,1186]),o($VOf,[2,1187],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,928:1238,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:1646,902:1822,551:1934,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$Vs7,116:$V7c,123:$VGd,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VHd,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($VO9,[2,1168]),o($VO9,[2,1173]),o($VO9,[2,1172]),o($VO9,[2,1170]),o($V2,[2,1188]),o($V2,[2,1193]),o($V2,[2,1194]),o($VRf,$VSf,{664:2407,27:[1,2408],88:[1,2409]}),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2410,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2412,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2411,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2415,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2417,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2416,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2418,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2420,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2419,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2421,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2423,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2422,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:[1,2427],307:$VMc,488:[1,2424],735:[1,2425],788:$VYc,789:$VZc,902:2426,907:2428},{116:[1,2429],906:2430},{27:[1,2433],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2431,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2432,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2434,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2436,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2435,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2437,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2439,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2438,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2440,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2442,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2441,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2443,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2445,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2444,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2446,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2448,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:2447,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vuc,[2,2081]),o($Vqd,[2,2161]),o($V2,$VTf,{661:2449,662:2451,27:[1,2450],663:$VRc}),o($V2,[2,1214]),{27:$VUf,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2452,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2453,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,832:1759,833:2454,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$VUf,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2456,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2457,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,832:1759,833:2458,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$VUf,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2459,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2460,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,832:1759,833:2461,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o([27,665],$VSf,{664:2462,88:$VVf}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2464,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2465,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2466,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2467,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2468,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2469,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2470,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2471,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vqd,[2,2163]),{307:$V1d,788:$V8d,789:$V9d,902:2472},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2473,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2474,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2475,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2476,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2477,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2478,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2479,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{307:$V1d,488:[1,2480],735:[1,2481],788:$V8d,789:$V9d,902:2482},{116:[1,2483]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2484,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2485,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2486,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2487,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2488,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2489,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vqd,[2,2159]),o($VWf,$VXf,{902:1806,907:1807,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($VYf,[2,2087],{902:1839,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),o($VZf,[2,2088],{902:1822,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,788:$V8d,789:$V9d}),o($VWf,$V_f,{902:1806,907:1807,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($VYf,[2,2089],{902:1839,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),o($Vqd,[2,2090]),o([2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,533,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,729,730,731,732,733,734,735,737,739,740,742,743,744,746,747,748,749,754,756,758,759,760,761,764,765,767,768,773,774,775,777,778,780,781,784,785,794,795,796,799,800,801,802,803,805,807,808,809,893,901,1010],$Vs7,{902:1822,307:$V1d,788:$V8d,789:$V9d}),o($VWf,$V$f,{902:1806,907:1807,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($VYf,[2,2091],{902:1839,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),o($Vqd,[2,2092]),{88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d,902:1822},o($V0g,$V1g,{902:1806,907:1807}),o($V2g,[2,2093],{902:1839}),o($Vqd,[2,2094]),o($Vuc,[2,2064]),o($Vqd,[2,2103]),{88:$VJc,118:$V3g,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},{2:$VYb,88:$Vad,118:$VZb,121:2491,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d,902:1839},{2:$VYb,88:$V_c,118:$VZb,121:2492,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d,902:1822},o($Vuc,[2,2083]),{27:[1,2495],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,663:$Vod,725:$VSc,726:$VTc,731:$VUc,735:$VVc,758:$Vpd,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,903:2493,907:1807,908:2494,1066:1864,1067:1865,1068:1867,1069:1868},o($Vqd,[2,2165]),{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2499,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,663:$Vuf,665:$V_5,667:$V5g,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$V5d,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,758:$V6g,759:$V7g,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,902:1822,903:2497,909:2496,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635,1066:2291,1068:1867},{2:$V4g,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,663:$Vuf,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,759:$V7g,780:$Vld,788:$V8d,789:$V9d,902:1839,903:2503,909:2504,1066:2291,1068:1867},{27:[1,2507],663:$Vod,758:[1,2506],759:$V8g,1068:2508,1069:2509},{2:$V4g,758:[1,2511],759:$V7g,909:2510},{27:[1,2512]},o($V9g,[2,2763]),o($Vag,[2,2765],{1068:1867,1066:2513,663:$Vuf}),{27:[1,2517],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2514,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2515,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,667:[1,2516],673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vuc,[2,2189]),o($Vqd,[2,2195]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,118:$Vbg,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2520,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,900:2519,904:1144,910:2521,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vuc,[2,2190]),o($Vqd,[2,2196]),{46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:2527,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,725:$Vdg,734:$Vy6,810:$VXb,832:1529,834:2528},o($Vuc,[2,2357]),o($Vqd,[2,2362]),o($Vuc,[2,2395]),o($Vqd,[2,2396]),{46:2529,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Veg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,990:2530,991:2531},o($Vuc,[2,2358]),o($Vqd,[2,2365]),o($Vqd,[2,2366]),o($Vqd,[2,2364]),{46:2529,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vfg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,990:2530},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,118:$Vgg,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2536,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,900:2535,904:1144,910:2537,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:[1,2542],116:$VQ9,118:$Vhg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2540,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2538,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2541,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$V6,183:2544,698:$Vig,699:$Vjg,702:$Vkg,705:$Vlg,706:$Vmg,708:$Vng,712:$Vog,720:$Vpg,721:$Vqg,810:$Vc4,1011:2543},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:2554},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2557,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2555,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2558,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,729:$Vrg,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o([27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,810,1010],$VH7,{548:2561,118:$Vsg,561:$VI7,725:$Vtg,755:$VJ7}),o([27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,810,1010],$VH7,{548:2562,118:$Vug,561:$VI7,755:$VJ7}),o([27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,810,1010],$VH7,{548:2564,561:$VI7,755:$VJ7}),{641:2565,644:2566,766:$Vmb},o($V2,[2,1236]),{641:2567,644:2568,766:$Vmb},{535:[1,2569]},{535:[1,2570]},{641:2571,766:$Vlc},o($VC9,$V3b,{68:1355,57:2572,102:2573,161:$V4b}),o($Vsa,[2,1269]),o($Vsa,$V3b,{68:1355,57:2574,161:$V_7}),o($Vvg,[2,1267]),o($Vsa,[2,1274]),o($Vsa,[2,1273]),{27:[1,2576],75:$Vra,683:2575},o($V2,[2,1281],{683:2577,75:$Vra}),{75:$Vra,683:2578},o($Vwg,$Vxg,{1056:2579,1058:2580,123:$Vyg,535:[1,2582]}),o($Vzg,$Vxg,{1056:2583,535:$VAg}),o($VBg,[2,2717]),o($VCg,[2,2719],{123:[1,2585]}),{27:[1,2587],126:[1,2586]},o($VDg,[2,2726]),o([27,126],[2,2727]),o($VEg,$VFg,{727:[1,2588]}),o($Vzg,$Vxg,{1056:2589,123:$VGg,535:$VAg}),{126:[1,2591]},o($Vwa,[2,1821]),o($Vya,[2,1823]),o($Vv9,[2,918]),o($VEd,[2,923]),o([118,499,544,620,690,742,756,765,773,781,800,808,893],$VL9,{536:1119,577:1120,537:1121,631:2592,576:2594,27:[1,2593],807:$VM9}),o([2,118,544,620,690,742,756,765,773,781,800,808,893],$VL9,{536:1124,577:1125,631:2595,807:$VN9}),o($Vv9,[2,919]),o($Vv9,[2,921]),o($VEd,[2,926]),o($VEd,[2,931],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,928:1238,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:1646,628:1931,550:2596,551:2598,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:[1,2597],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,535:$V17,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{2:$Vza,27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2601,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,557:2599,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,725:$VBa,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,928:2600,930:2602,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($VEd,[2,922]),o([2,118,499,544,620,690,742,756,765,773,781,800,808,893],$VL9,{536:1124,577:1125,631:2592,807:$VN9}),o($VEd,[2,927]),o($VEd,[2,928]),o($VKd,[2,2235],{123:$VHg}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2604,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VMd,$VLd,{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:2470,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2285,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,902:2472,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{27:$VIg,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2607,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2605,556:2606,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,725:$VBa,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,928:1238,930:1239,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2609,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{2:$VJg},o($VJd,[2,2227]),o($VMd,[2,2231]),o($VMd,[2,2229]),{46:2611,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,2615],47:$VKg,49:2613,50:[1,2614],52:2616,704:$Vbb},o($V2,[2,44]),{27:[1,2618],46:439,47:$Vg4,50:$Vh4,56:2617,58:$Vi4,59:2619,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,50]),{27:[1,2621],63:2620,176:$V$7,177:$V08},o($V2,[2,57]),o($V2,[2,58]),{27:[1,2622],158:[1,2623]},o($V48,[2,1716]),o([27,152,544,690,704],$VLg,{271:2624,272:2625,273:2626,275:2627,276:2628,278:2629,277:[1,2630]}),o($V2,[2,381],{693:446,270:2631,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6}),o($V2,[2,384]),{27:[1,2633],760:$VMg},o($VNg,[2,1738]),o($VOg,$VPg,{454:2634,455:2635,470:2636,116:[1,2637]}),o($V2,[2,719],{270:442,693:446,46:1268,303:2638,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VQg,$VPg,{470:2636,454:2639,116:$VRg}),o([27,78,107,108,116,129,152,161,277,307,376,382,409,499,544,690,704],$VRd,{727:[1,2641]}),o($VSg,[2,1796],{727:[1,2642]}),{27:[1,2644],46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:2643,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{279:$VM8,441:2645},o($V2,[2,730]),{46:2646,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,2648],158:[1,2647]},o($V2,[2,758]),{116:[1,2651],492:2649,493:2650},{27:[1,2653],108:$VTg},o($V2,$VUg,{95:2654,27:[1,2655],695:$VVg,709:$VWg}),o($V2,[2,854],{270:442,693:446,46:2658,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,$VUg,{95:2659,695:$VVg,709:$VWg}),o([27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734,810],[2,1734]),o([47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],[2,1735]),o($V2,[2,858]),o($V2,[2,860],{270:442,693:446,46:1268,303:2660,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,864]),o($V2,[2,863]),{27:[1,2662],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2661,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,866]),{27:[1,2664],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2663,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,885]),o($V3e,$VXg,{169:2665,532:$VYg}),o($V2,[2,870]),o($V2,$VXg,{169:2667,532:$VYg}),o($V2,$VXg,{169:2668,532:$VYg}),{27:[1,2670],55:[1,2669]},o($V2,[2,877]),o($V2,[2,886]),o($V2,[2,888]),o($V2,[2,889]),o($V2,[2,890]),o($V2,[2,891],{270:442,693:446,46:1057,56:2671,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,895]),o($V2,[2,894]),o($V2,[2,2570]),o($V2,$VZg,{811:2672,27:[1,2673],488:$VMa,535:$VNa}),o($V2,[2,2589],{811:2674,488:$VMa,535:$VNa}),o($V2,[2,2588]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2675,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,810:[1,2676]},o($V2,[2,2597]),o($V2,[2,2599]),o($V2,[2,2600]),o($V2,[2,2601]),o($V2,[2,2606]),{27:[1,2680],46:439,47:$Vg4,50:$Vh4,56:2678,58:$Vi4,59:2681,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,158:[1,2679],174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,561:$V_g,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},{561:[1,2682]},o($V79,[2,2624]),o($V2,$V$g,{811:2683,27:[1,2684],488:$VMa,535:$VNa}),o($V2,[2,2632],{811:2685,488:$VMa,535:$VNa}),o($V2,[2,2633]),o($V2,[2,2644]),o($V2,$V0h,{27:[1,2687],239:$V1h}),o($V2,[2,2650]),o($V2,[2,2647]),o($V2,[2,2655]),o($V2,[2,2651]),o($V2,[2,2652],{239:[1,2688]}),o($V3e,$V4e,{1052:2689,1054:2690,307:$V5e}),o($V2,$V4e,{1052:2691,307:$V6e}),o($V2,[2,2657]),o($V2,[2,2660]),o($V2,[2,2661]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2692,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,2665],{693:446,270:2693,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6}),o($V4c,[2,1698]),o($V4c,[2,1699]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2694,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,2683]),{279:$VM8,441:2695},o($V2,[2,2685]),o($VTa,[2,1741]),o($VTa,[2,1742]),o([2,27,108,118,279,307,544,547,563,615,620,690,742,756,765,773,781,800,807,808,893],$VEf),o($V2,[2,2671],{27:[1,2697],307:[1,2696]}),o($V2,[2,2672],{307:[1,2698]}),{27:$V1e,46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,823:2699,825:2700,832:1759,833:1758},{307:[1,2701]},{46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,823:2699},{125:2702,279:$VM8,280:$VN8,441:926,816:927},o($V2,$V2h,{27:[1,2703]}),o($V2,[2,2694]),{27:[1,2705],279:$VM8,441:2704},o($V2,[2,2693]),{279:$VM8,441:2704},o($VWa,[2,2696]),o($Vic,[2,2698]),o($VWa,[2,2697]),o($Vic,[2,2699]),o($V2,[2,2629],{811:2706,488:$VMa,535:$VNa}),o($VOf,$VPf,{123:$VHg}),o($V3h,$V4h,{69:2707,52:2708,49:2709,704:$Vbb}),o($V2,[2,99]),o($VCf,$V4h,{49:2709,69:2710,704:$Vrb}),{27:[1,2712],72:2711,103:2713,104:2714,317:$V5h,320:$VAe,323:$VBe,368:2171,369:2715,370:2716,371:$V6h},o($V2,[2,106]),o($V2,[2,64]),o($V2,[2,141]),{27:[1,2720],55:[1,2719]},o($V2,[2,125],{55:[1,2721]}),{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:2722,165:2723,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vc4,832:2726,838:2104,839:2724},o($V2,[2,115]),{27:[1,2728]},o($V2,[2,73]),o($V2,[2,121]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2734,187:2729,188:2730,189:2731,190:2732,191:2733,192:2735,193:$V7h,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4,842:2737,843:2738},o($V2,[2,74]),o($V2,[2,123]),o($V2,[2,124]),{27:[1,2739],46:2244,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,2740],46:2245,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,2741],46:2246,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,120]),o($V2,$V8h),o($V2,[2,172]),o($V9h,[2,649]),{125:2742,279:$VM8,280:$VN8,441:926,816:927},o($V9h,[2,651]),o($V9h,[2,652]),o($V9h,[2,653]),o($V9h,[2,654]),o($V9h,[2,655]),o($V9h,[2,656]),o($V2,[2,154]),{125:2745,279:$VM8,280:$VN8,283:2743,284:2744,441:926,816:927},o($V3e,$Vah,{131:2746,149:2747,448:2748,152:$Vbh}),o($V2,[2,156]),o($Vch,[2,1815]),o([2,108,129,152,161,277,544,690],[2,1816]),{27:[1,2751],68:2750,161:$V_7},o($V2,[2,117]),o($Vy7,$Vpe,{94:2752,116:$VDe}),o($V2,[2,136]),o($V2,[2,137]),o($Vdh,$Veh,{383:2753,387:2754,397:[1,2755]}),o($Vfh,$Veh,{383:2756,397:$Vgh}),{27:[1,2759],158:[1,2758]},o($V2,[2,188]),{158:[1,2760]},{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:[1,2765],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,162:2761,163:2762,164:2763,165:2764,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vc4,832:2726,838:2104,839:2724},{118:$Vhh,123:$Vih},o($Vjh,[2,1801]),o($Vjh,$Vkh,{126:[1,2768]}),o($V3e,$VXg,{169:2769,123:[1,2770],532:$VYg}),o($V2,[2,204],{123:$Vs7}),o($V2,$VXg,{169:2771,532:$VYg}),o($Vlh,[2,230]),o($Vmh,[2,232],{123:[1,2772]}),{123:[1,2773]},o($V2,[2,203]),o($V2,[2,207]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2557,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2774,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2558,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($V3e,$Vnh,{137:2775,147:2776,152:[1,2777]}),o($V2,$Vnh,{137:2778,152:$Voh}),{27:[1,2781],151:$Vph},o($V2,$Vqh,{27:[1,2782]}),o($V3e,[2,1725]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:2783,144:2784,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,163]),o($V3e,$VUg,{95:2786,695:$VVg,709:$VWg}),o($V2,$VUg,{95:2787,695:$VVg,709:$VWg}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:2790,144:2791,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:2788,310:2789,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,268]),o($V3e,$Vrh,{200:2792,201:2793,203:2794,66:$Vsh,166:$Vth,204:$Vuh}),o($V2,[2,280]),o($V2,[2,281]),o($V2,$Vvh,{27:[1,2798]}),o($V2,[2,901]),o($V2,[2,898]),o($V2,$V3b,{68:1355,57:2799,161:$V_7}),o($V2,[2,899]),o([27,116,152,544,547,637,690],$V3b,{68:1355,102:1356,57:2800,60:2801,161:$V4b}),o($Vnb,[2,1158]),o($Vwh,$V3b,{68:1355,57:2802,161:$V_7}),o([27,152,544,547,690,768],$V3b,{68:1355,102:1356,57:2803,60:2804,161:$V4b}),o($Vnb,[2,1147]),o($Vwh,$V3b,{68:1355,57:2805,161:$V_7}),{641:2806,644:2807,766:$Vmb},o($Vnb,[2,1151]),o($Vxh,$Vyh,{416:2808,414:2810,107:$Vzh,646:[1,2809]}),o($Vnb,$Vyh,{414:2810,416:2812,107:$Vzh}),{27:[1,2814],410:[1,2813]},o($Vnb,$Vyh,{414:2810,416:2815,107:$Vzh}),{410:[1,2816]},{810:[1,2818],1008:$VAh},o($VBh,[2,2433],{1008:[1,2819]}),{27:[1,2821],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2820,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,1199]),o($VCf,$V4h,{49:2709,69:2822,704:$Vrb}),{760:$VMg},o($V2,[2,83]),{55:[1,2823]},o($V2,[2,92]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,187:2824,189:2731,191:2733,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($V2,[2,93]),o($V2,$Vah,{448:2748,131:2825,152:$VCh}),{68:2827,161:$V_7},o($Vi9,$Vpe,{94:2828,116:$VDe}),o($Vjh,$VDh,{327:2829,373:$VEh,374:$VFh}),o($VGh,[2,473]),{383:2832,384:$Veh,397:$Vgh},{158:[1,2833]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:[1,2836],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,162:2834,163:2835,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,838:2104},o($V2,$VXg,{169:2837,123:$VHh,532:$VYg}),o($V2,$Vnh,{137:2839,152:$Voh}),{151:$Vph},o($V2,$Vqh),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2840,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($VIh,[2,545]),{116:[1,2842]},{80:2843,116:$V2c},{318:[1,2844]},o($V2,$VUg,{95:2845,695:$VVg,709:$VWg}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:2846,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vf8,$V1,{545:2848}),o($Vf8,$V1,{545:2849}),o($Vn9,$Vo9),{236:$Vp9},o($Vi8,[2,2356],{562:1465,563:$VCb}),o($VJh,$VKh,{564:2850,573:$VLh}),o($VFe,[2,951]),o($Vj8,[2,2529]),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,864:2852,899:436,932:423,934:425,936:1054,937:428,946:1055,948:1056},o([2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,737,768],$VKh,{564:2853,573:$VLh}),o($VHe,$VIe,{944:2190,942:2854,55:$VJe}),o($Vl8,[2,2275],{941:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VMh,[2,2263]),o($VNb,[2,2270]),{27:[1,2857],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2855,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2856,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($VNb,[2,2269]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2858,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VNb,[2,2271]),o($VIb,[2,2278]),o($VLe,[2,960]),o($VLe,[2,955]),o($VLe,[2,959]),o($VIb,[2,2281]),o($VLe,[2,963]),o($VIb,[2,2283]),o($VLe,[2,964]),o($VIb,[2,2284]),o($VLe,[2,965]),o($VLe,[2,956]),o($VLe,[2,962]),o($VIb,[2,2286]),o($VLe,[2,968]),o($VIb,[2,2288]),o($VLe,[2,969]),o($VIb,[2,2289]),o($VLe,[2,970]),o($VLe,[2,957]),o($VLe,[2,967]),o($VNb,[2,2267]),o($VTe,$VIe,{942:2854,55:$VKe}),{385:[1,2859]},{27:[1,2862],707:$VNh,791:$VOh},{118:[1,2863]},{2:$VYb,118:$VZb,121:2864},o($VPh,$Vvc,{727:[1,2865]}),{385:$Vwc},o($VYe,[2,1700]),o($V$e,[2,1703]),{385:[1,2866]},{707:$VNh,791:$VOh},o($V1f,[2,2325]),o($V4f,[2,2329]),o($V3e,$VQh,{600:2867,606:2868,123:$V7f,152:[1,2869]}),o($V2,[2,1019],{123:$V9f}),o($V2,[2,1020]),{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:2870,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:2871,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V5f,[2,1036]),o($V2,[2,1039]),o($V5f,[2,1037]),o($V2,[2,1040]),o($V2,[2,1041]),o($V2,$VRh,{27:[1,2872]}),o($V2,[2,1027]),{27:[1,2874],51:2873,473:$V_b,619:$V$b,620:$V0c},{27:[1,2876],622:[1,2875]},{51:1570,473:$V_b,599:2877,619:$V$b,620:$V0c},o($Vaf,[2,1070]),o($Vaf,[2,1071]),o($Vaf,[2,1072]),o($V3e,$V6f,{602:2878,607:2879,123:$V7f,152:$V8f}),o($V2,[2,1028],{123:$V9f}),o($V2,[2,1029]),o($VSh,[2,1776]),o($VSh,[2,1777]),o([2,27,55,75,107,108,118,123,129,152,177,333,372,373,374,382,384,396,397,409,535,544,547,615,690,704],[2,1775]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2882,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:2881,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2880,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,835:2883},o($V2,[2,2540]),o($Vff,[2,2202]),o($Vff,[2,2203]),{218:[1,2884]},{51:1570,473:$V_b,599:2885,619:$V$b,620:$V0c},o($V2,$V6f,{602:2886,123:$VTh,152:$VUh}),{51:1570,473:$V_b,599:2889,619:$V$b,620:$V0c},{118:$Vbf,123:$VVh},{51:1570,473:$V_b,599:2891,619:$V$b,620:$V0c},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:2892,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V2,$VAf,{123:$VTh}),{51:1570,473:$V_b,599:2893,619:$V$b,620:$V0c},{46:596,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:[1,2895],486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,601:2894,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,$V3b,{68:1355,57:2374,161:$V_7,727:$VWh}),o($VQ8,$VR8,{954:1552,659:2349}),o($VRf,$VSf,{664:2897,88:$VVf}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2898,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2899,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2900,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2901,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{307:$V1d,488:[1,2902],735:[1,2903],788:$V8d,789:$V9d,902:2426},{116:[1,2904]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2905,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2906,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2907,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2908,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2909,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2910,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($V2,$VTf,{661:2911,663:$Vnf}),{88:$VVf,664:2912,665:$VSf},o($VWf,$VXf,{902:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($VWf,$V_f,{902:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($VWf,$V$f,{902:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($V0g,$V1g,{902:1806}),{88:$Vgf,118:$V3g,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,663:$Vuf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806,903:2493,1066:2291,1068:1867},{663:$Vuf,758:[1,2913],759:$V8g,1068:2508},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2914,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$Vbg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:2915,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,725:$Vdg,734:$VN6},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$Vgg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:2917,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$Vhg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2918,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{698:$Vig,699:$Vjg,702:$Vkg,705:$Vlg,706:$Vmg,708:$Vng,712:$Vog,720:$Vpg,721:$Vqg,1011:2919},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2920,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,729:$Vrg,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VXh,$VH7,{548:2921,118:$Vsg,561:$VI7,725:$Vtg,755:$VJ7}),o($VXh,$VH7,{548:2922,118:$Vug,561:$VI7,755:$VJ7}),o([47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,656,665,673,674,676,687,688,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,1010],$VH7,{548:2923,561:$VI7,755:$VJ7}),{641:2924,766:$Vlc},{641:2925,766:$Vlc},o($Vsa,$V3b,{68:1355,57:2572,161:$V_7}),{75:$Vra,683:2926},o($Vzg,$Vxg,{1056:2927,123:$VGg,535:$VAg}),{2:$Vza,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,557:2928,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:2600,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2929,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{47:$VKg,49:2613,50:[1,2930],704:$Vrb},{46:1057,47:$Vg4,50:$Vh4,56:2931,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{63:2932,176:$V$7,177:$V08},o($VCf,$V4h,{49:2709,69:2933,704:$Vrb}),{72:2711,317:$VYh,320:$VAe,323:$VBe,368:2171,369:2934,371:$VCe},{55:[1,2936]},{68:2750,161:$V_7},o($V2,$Vrh,{200:2937,203:2938,66:$Vsh,166:$Vth,204:$Vuh}),o([152,544,690,704],$VLg,{276:2628,271:2939,273:2940,277:$VZh}),{158:[1,2942]},o($VQg,$VPg,{470:2636,454:2943,116:$VRg}),{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:2944,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{279:$VM8,441:2945},{158:[1,2946]},{116:[1,2948],492:2947},{108:$VTg},o($V2,$VUg,{95:2654,695:$VVg,709:$VWg}),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2661,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2663,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,$VXg,{169:2949,532:$VYg}),{55:[1,2950]},o($V2,$Vvh),o($V2,$VZg,{811:2951,488:$VMa,535:$VNa}),{46:1057,47:$Vg4,50:$Vh4,56:2678,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,158:[1,2952],174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,561:$V_g,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,$V$g,{811:2953,488:$VMa,535:$VNa}),o($V2,$V0h,{239:$V1h}),o($V2,$V4e,{1052:2954,307:$V6e}),{307:[1,2955]},o($V2,$V2h),o([116,152,544,547,637,690],$V3b,{68:1355,57:2956,161:$V_7}),o([152,544,547,690,768],$V3b,{68:1355,57:2957,161:$V_7}),{641:2958,766:$Vlc},o($V_h,$Vyh,{416:2808,414:2810,107:$Vzh}),{1008:$VAh},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2959,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($Vg9,[2,1898]),o($Vv9,[2,1916]),o($VEd,[2,1919]),o($VEd,[2,1918]),{46:992,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,857:2960,859:685},{118:[1,2961]},{2:$VYb,118:$VZb,121:2962},{2:$VYb,118:$VZb,121:2963},{27:[1,2965],219:[1,2964]},o($V2,[2,321]),{219:[1,2966]},{219:[1,2967]},{219:[1,2968]},o($Vtc,[2,912]),o($Vuc,[2,2213]),{385:[1,2969]},o($Vuc,[2,2216]),o($V2,$V$h,{123:$V7f}),o($V2,[2,1097],{123:$V9f}),o($V2,[2,1098]),o($VC9,$V$8,{598:2970,604:2971,55:$V09,123:$V19}),o($V2,[2,1101],{123:$V39}),o($V2,[2,1102]),o($V2,$V0i,{123:$V7f}),o($V2,[2,1111],{123:$V9f}),o($V2,[2,1112]),{27:[1,2973],123:$V29,535:[1,2972]},o($VD9,$VZ8,{270:442,693:446,46:596,601:2974,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,1114]),o($V2,[2,1092],{123:$V29}),o($V2,[2,1879]),o($V2,$V3b,{68:1355,57:2975,161:$V_7}),o($V2,[2,1889]),{46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2976,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:2977,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vzc,832:1750,846:2978},o($V2,[2,1884]),o($V2,[2,1887]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1747,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,844:2979},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1747,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,844:2980},o($V2,$V3b,{68:1355,57:2981,161:$V_7,727:$VWh}),o($V2,[2,1886]),o($V2,[2,1893]),o($V2,[2,1895]),o($V2,[2,906]),o($V1i,$V2i,{580:2982,585:2983,591:2984,808:$V3i}),o($VFf,$V4i,{2:[1,2986],27:[1,2987]}),o($V5i,$V2i,{580:2988,585:2989,808:$V6i}),{27:[1,2992],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2991,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2993,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($V7i,$VGf,{584:2394,590:2994,579:2995,765:$VHf}),o($VJf,$VGf,{584:2394,579:2996,765:$VKf}),o($V5i,$V2i,{585:2989,580:2997,808:$V6i}),o($VNf,$V4i),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2998,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{27:[1,3001],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3002,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3003,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,870:2999,872:3000,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($VEc,[2,1957]),o($VEc,$VBc,{595:1774,578:3004,620:$VFc}),o($VJf,$VGf,{584:2394,579:3005,765:$VKf}),o($V7i,$VGf,{584:2394,590:3006,579:3007,765:$VHf}),o($VJf,$VGf,{584:2394,579:3008,765:$VKf}),o($V5i,$V2i,{585:2989,580:3009,808:$V6i}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3011,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,870:3010,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($V8i,$V2i,{585:2989,580:3012,808:$V6i}),o($VOf,[2,1185],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,928:1238,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:1646,551:2598,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:$V9i,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2601,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,725:$VBa,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,928:2600,930:2602,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{208:$Vai,755:[1,3017],761:$Vbi,799:$Vci},o($Vqd,[2,2095],{208:[1,3018],761:[1,3019],799:[1,3020]}),o($VRf,$Vdi,{27:[1,3021]}),o($Vei,$Vfi,{902:1806,907:1807,307:$VMc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2114]),o($Vgi,[2,2118],{902:1839,307:$V1d,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),o($Vqd,[2,1763]),o($Vqd,[2,1764]),o($Vei,$Vhi,{902:1806,907:1807,307:$VMc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2115]),o($Vgi,[2,2119],{902:1839,307:$V1d,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),o($Vei,$Vii,{902:1806,907:1807,307:$VMc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2116]),o($Vgi,[2,2120],{902:1839,307:$V1d,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),o($Vei,$Vji,{902:1806,907:1807,307:$VMc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2117]),o($Vgi,[2,2121],{902:1839,307:$V1d,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),{116:[1,3022],906:3023},{27:[1,3026],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3024,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3025,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vuc,[2,2082]),o($Vqd,[2,2086]),o($Vqd,[2,2162]),o($VQ8,$VR8,{270:442,693:446,954:943,925:1089,926:1090,898:1136,904:1144,285:1145,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,842:1154,971:1160,973:1161,975:1162,976:1163,922:1164,843:1165,977:1166,979:1167,981:1168,982:1169,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,924:1179,172:1180,987:1181,988:1182,989:1183,441:1184,816:1185,927:1186,46:1187,1012:1190,463:1191,817:1192,324:2522,494:2523,659:3027,900:3028,660:3029,910:3030,183:3031,27:$Vmd,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VG8,280:$VH8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,1010:$Vna}),o($Vqd,[2,2123]),{27:[1,3033],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,901:[1,3032],902:1806,907:1807},{88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d,901:[1,3034],902:1839},o($Vki,[2,2139],{902:1822,88:$V_c,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,788:$V8d,789:$V9d}),o($Vli,$Vmi,{902:1806,907:1807,88:$VJc,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2142]),o($Vni,[2,2143],{902:1839,88:$Vad,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,788:$V8d,789:$V9d}),o($Vli,$Voi,{902:1806,907:1807,88:$VJc,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2146]),o($Vni,[2,2147],{902:1839,88:$Vad,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,788:$V8d,789:$V9d}),o($V0g,$Vpi,{902:1806,907:1807,307:$VMc,488:$VQc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2153]),o($V2g,[2,2156],{902:1839,307:$V1d,488:$Vgd,788:$V8d,789:$V9d}),o($V0g,$Vqi,{902:1806,907:1807,307:$VMc,488:$VQc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2154]),o($V2g,[2,2157],{902:1839,307:$V1d,488:$Vgd,788:$V8d,789:$V9d}),o($V0g,$Vri,{902:1806,907:1807,307:$VMc,488:$VQc,772:$VWc,788:$VYc,789:$VZc}),o($Vqd,[2,2155]),o($V2g,[2,2158],{902:1839,307:$V1d,488:$Vgd,788:$V8d,789:$V9d}),o($V2,$Vsi,{661:3035,662:3037,27:[1,3036],663:$VRc}),o($V2,[2,1215]),o($V2,[2,1216]),o($V0g,$Vti,{902:1806,907:1807}),o($V2g,[2,2742],{902:1839}),o($Vqd,[2,2745]),o([2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,656,663,665,667,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,729,731,732,734,735,742,754,756,758,759,764,765,773,778,780,781,800,807,808,893,901],$VEf,{902:1822,307:$V1d,788:$V8d,789:$V9d}),o($V0g,$Vui,{902:1806,907:1807}),o($V2g,[2,2743],{902:1839}),o($Vqd,[2,2746]),o($V0g,$Vvi,{902:1806,907:1807}),o($V2g,[2,2744],{902:1839}),o($Vqd,[2,2747]),{27:[1,3039],665:[1,3038]},o([27,208,665,755,761,799],$Vdi),o($V2g,[2,2106],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2107],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2108],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2109],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2140],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2144],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2148],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2149],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($Vqd,[2,2164]),o($V0g,$Vti,{902:1806}),o($V0g,$Vui,{902:1806}),o($V0g,$Vvi,{902:1806}),o($Vgi,[2,2110],{902:1806,307:$V1d,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($Vgi,[2,2111],{902:1806,307:$V1d,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($Vgi,[2,2112],{902:1806,307:$V1d,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($Vgi,[2,2113],{902:1806,307:$V1d,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),{116:[1,3040]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3041,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vqd,[2,2160]),o($VQ8,$VR8,{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,954:1552,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:2916,900:3042,659:3043,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,901:[1,3044],902:1806},o($Vni,[2,2141],{902:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,788:$V8d,789:$V9d}),o($Vni,[2,2145],{902:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2150],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2151],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2g,[2,2152],{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($Vuc,[2,2065]),o($Vqd,[2,2104]),o($Vqd,[2,2105]),o($Vuc,[2,2084]),o($Vqd,[2,2167]),{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2499,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,667:$V5g,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,758:$V6g,759:$V7g,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,909:3045,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vqd,[2,2166]),o($Vqd,[2,2171]),{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3046,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,759:$V7g,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,909:3047,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,667:$Vwi,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},o($Vxi,[2,2778],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:3049,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vqd,[2,2761]),o($Vqd,[2,2762]),o($Vqd,[2,2169]),o($Vqd,[2,2170]),o($Vuc,[2,2748]),{27:[1,3052],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3050,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3051,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3053,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,663:$Vuf,665:$V_5,667:$V5g,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,759:$V7g,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,909:3054,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635,1066:3055,1068:1867},o($V9g,[2,2764]),o($Vag,[2,2766],{1068:1867,1066:3056,663:$Vuf}),o($Vqd,[2,2750]),{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3057,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,759:$V7g,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,909:3058,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{2:$V4g,759:$V7g,909:3059},o($Vag,[2,2769],{1068:2508,663:$Vuf}),{27:[1,3061],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,667:[1,3060],725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},o($Vxi,[2,2771],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,667:[1,3062],725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),{27:[1,3064],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2774,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3063,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vxi,[2,2780],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,902:1822,324:3065,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,667:[1,3066],673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$V5d,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vuc,[2,2378]),{27:[1,3068],118:$Vyi,123:$Vzi},{2:$VYb,118:$VZb,121:3070,123:$VAi},{2:$VYb,118:$VZb,121:3072},o($VBi,$VCi,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($VDi,[2,2174],{902:1839,88:$Vad,123:[1,3073],126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),{27:$V6,183:3074,810:$Vc4},o($Vtd,[2,2199]),o($Vyd,[2,1832]),o($Vqd,[2,1834],{727:[1,3075]}),o($Vqd,[2,1837],{727:[1,3076]}),o($Vuc,[2,2397]),o($Vuc,[2,2398]),o($Vqd,[2,2399]),o($VEi,$VFi,{992:3077,994:3078,183:3079,996:3081,27:$V6,161:[1,3080],810:$Vc4}),o($VEi,$VFi,{996:3081,992:3082,161:$VGi}),o($VHi,[2,2389]),{27:[1,3085],118:$VIi,123:$Vzi},{2:$VYb,118:$VZb,121:3086,123:$VAi},{2:$VYb,118:$VZb,121:3087},{27:[1,3089],88:$VJc,108:[1,3088],126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},o($Vuc,[2,2460]),{2:$VYb,108:[1,3090],118:$VZb,121:3091},{2:$VYb,88:$Vad,108:[1,3092],118:$VZb,121:3093,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d,902:1839},{27:[1,3094]},{27:[1,3096],535:[1,3095]},{2:$VYb,118:$VZb,121:3097,535:[1,3098]},o($VC9,[2,2484]),o($VC9,[2,2485]),o($VC9,[2,2486]),o($VC9,[2,2487]),o($VC9,[2,2488]),o($VC9,[2,2489]),o($VC9,[2,2490]),o($VC9,[2,2491]),o($VC9,[2,2492]),o($Vqd,[2,1836],{727:$VJi}),{88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,729:$VKi,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},o($Vwf,[2,1851]),{2:$VLi,729:$VMi,847:3101},{2:$VLi,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,729:$VMi,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d,847:3104,902:1839},{118:[1,3105]},o($Vzd,[2,2472]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3107,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,900:3106,904:1144,910:3108,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3110,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3109,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3111,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vzd,[2,2518]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,118:$VNi,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3114,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,900:3113,904:1144,910:3115,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vdh,$VOi,{677:3116,153:$VPi}),o([384,544,690],$VOi,{677:3118,153:$VPi}),o($V3e,$V4h,{49:2709,69:3119,52:3120,704:$Vbb}),o($V2,$V4h,{49:2709,69:3121,704:$Vrb}),{641:3122,766:$Vlc},{641:3123,766:$Vlc},o($V2,$V4h,{49:2709,69:3124,704:$Vrb}),o($Vvg,[2,1266]),o($Vsa,[2,1271]),o($Vsa,[2,1270]),{75:[1,3125]},o($V2,[2,1280],{683:3126,75:$Vra}),{75:[1,3127]},{75:[1,3128]},o($V3e,$VL9,{577:1125,536:3129,537:3130,807:$VM9}),o($V2,$VL9,{577:1125,536:3131,807:$VN9}),{27:$VBd,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:3132,1062:3133,1063:1913},{27:[1,3135],46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441,899:436,905:438,932:3134,933:3136,934:425,935:426,936:427,937:428,938:429,939:430,946:431,948:432,949:433,951:434},o($V2,$VL9,{577:1125,536:3137,807:$VN9}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,899:436,932:3134,934:425,936:1054,937:428,946:1055,948:1056},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,671:3138,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:1911,1063:1918},{27:$Vnd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3141,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3142,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190,1064:3139,1065:3140},o($VDg,[2,2725]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,725:$VQi,734:$VN6},o($V2,$VL9,{577:1125,536:3144,807:$VN9}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:3132,1063:1918},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3145,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635,1064:3139},o($Vv9,[2,1935]),o([2,118,544,568,569,570,571,572,573,574,575,620,690,742,756,765,773,781,800,808,893],$VL9,{536:1124,577:1125,631:3146,807:$VN9}),o($VEd,$VRi,{861:3147,862:3148,863:3149,941:3150,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VEd,[2,1936]),o($VEd,[2,929]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,535:$V17,538:$VS5,539:$VT5,541:1170,550:3151,551:3152,621:$VU5,622:$VV5,626:$VW5,628:1931,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VKd,[2,2238],{123:$VHg}),{123:[1,3153],535:$VSi},o($VJd,[2,2233]),o($VKd,[2,2240],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,928:1238,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:1646,551:3154,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VNd,116:$V7c,123:[1,3155],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($VKd,[2,2241],{123:[1,3156]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:2600,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VKd,[2,2236],{123:$VHg}),{27:$VTi,123:[1,3157],535:$VUi},{535:[2,937]},{108:$VNd,535:[2,940]},o([108,535],$Vs7,{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,928:1238,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:1646,902:1822,551:1934,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:$VGd,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VHd,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($VKd,[2,2237],{123:$VHg}),o($V3c,[2,947]),o($VMd,[2,2230]),{48:3159,116:$Vie},o($V2,[2,41]),{27:[1,3161],51:3160,53:3162,473:$V7e,619:$V8e,620:$V9e},o($V2,[2,45]),o($V2,[2,46]),o([27,58],$V3b,{68:1355,102:1356,57:3163,60:3164,161:$V4b}),o($V2,[2,51]),o($V2,[2,52]),{27:[1,3166],64:$VVi},o($V2,[2,59]),o($V2,[2,379]),o($Vy7,$VGa,{67:3167,100:3168,768:$VHa}),o($V2,$VWi,{27:[1,3169]}),{2:[1,3170]},o($Vle,$V4h,{49:2709,69:3171,52:3172,704:$Vbb}),o($V8h,$V4h,{49:2709,69:3173,704:$Vrb}),o($VXi,[2,391]),o($VYi,[2,393]),{125:3174,279:[1,3175],280:[1,3176],441:926,816:927},o($V2,[2,383]),o([27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,615,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,734],[2,1737]),o($VNg,[2,1739]),o($VZi,$VLg,{276:2628,273:3177,277:$VZh}),o($V_i,$VLg,{276:2628,273:3178,277:$VZh}),o($VOg,[2,747]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:3181,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,471:3180,472:3179,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($VQg,$VPg,{470:2636,454:3182,116:$VRg}),o($V$i,$VLg,{276:2628,273:3183,277:$VZh}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:3185,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,471:3184,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},{46:2646,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$VXb,832:1529,834:3186},{46:3187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V0j,$V1j,{452:3188,453:3189,177:[1,3190]}),o($V2,[2,706]),o($V3e,$V2j,{457:3191,459:3192,464:[1,3193]}),o([27,78,107,108,116,129,152,161,177,277,307,376,382,396,409,499,544,690,704],[2,1795]),{27:[1,3195],46:439,47:$Vg4,50:$Vh4,56:3197,58:$Vi4,59:3198,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,474:3194,480:3196,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,759]),{27:[1,3200],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3199,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3201,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($V2,[2,798],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:3202,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,118:$V3j,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3208,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,495:3204,496:3205,497:3206,498:3207,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{279:$VM8,441:3209},o($V2,[2,734]),o($V2,[2,851]),o($V2,[2,855]),o($V3e,[2,1727]),o($V3e,[2,1728]),o($V2,$VUg,{95:3210,695:$VVg,709:$VWg}),o($V2,[2,856]),o($V2,[2,861]),o($V2,[2,859]),o($V2,[2,865]),o($V2,[2,882]),o($V2,[2,884]),o($V2,$V4j,{27:[1,3211]}),o($V3e,[2,875]),o($V2,[2,871]),o($V2,[2,872]),{27:[1,3213],46:439,47:$Vg4,50:$Vh4,56:3212,58:$Vi4,59:3214,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,879]),o($V2,[2,892]),{27:[1,3216],46:3215,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,2592],{270:442,693:446,46:3217,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,2590],{270:442,693:446,46:3218,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VTd,[2,1761]),o($VTd,[2,1762]),o($V2,[2,2611]),o($V2,[2,2612]),{27:[1,3220],46:1057,47:$Vg4,50:$Vh4,56:3219,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,2616],{46:439,832:441,270:442,693:446,56:3221,59:3222,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6}),o($V2,[2,2617]),o($V2,[2,2615]),{27:[1,3224],46:3223,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,2634],{270:442,693:446,46:3225,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{46:3226,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,2646]),o($V2,[2,2653]),o($V2,[2,2654]),o($V2,$V5j,{27:[1,3227]}),o($V2,[2,2642]),o($V2,[2,2641]),o($V2,[2,2662]),o($V2,[2,2666]),o($V2,[2,2664]),o($V2,[2,2684]),{279:$VM8,441:3228},o($V2,[2,2673],{441:3229,279:$VM8}),{279:$VM8,441:3230},o($VWa,[2,1722]),o($Vic,[2,1723]),{279:$VM8,441:3231},{118:[1,3232]},o($V2,[2,2692]),o($V3e,[2,2701]),o($V2,[2,2702]),{46:3233,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V3e,$V6j,{70:3234,101:3235,184:3236,186:3237,185:3238,68:3239,102:3240,161:$V4b}),o($V2,$V6j,{185:3238,70:3241,184:3242,68:3243,161:$V_7}),o($Vch,[2,1814]),o($V2,$V6j,{185:3238,184:3242,68:3243,70:3244,161:$V_7}),o($V2,[2,62]),o($V2,[2,107]),o($V2,[2,108]),o($V2,[2,109]),{80:3245,110:3246,116:$V99},o($Vjh,[2,551]),{27:[1,3247],318:[1,3248]},{27:[1,3250],318:$V7j},{81:3251,116:$V8j},o($V2,[2,127]),{81:3253,116:$V8j},{118:$Vhh,123:$V9j},{2:$VYb,118:$VZb,121:3255},o($V4f,[2,1803],{123:[1,3256]}),o($Vaj,$Vkh,{126:[1,3257]}),{126:[1,3258]},o($Vbj,[2,1812]),o($V2,[2,116]),{118:$Vcj,123:[1,3260]},{2:$VYb,118:$VZb,121:3261},o($Vbj,[2,252]),o($V4f,[2,254],{123:[1,3262]}),{126:[1,3263]},o($Vbj,[2,259],{126:[1,3264]}),o($Vbj,[2,260],{126:[1,3265]}),{126:[1,3266]},o([118,123,126],$VFg,{727:[1,3267]}),o([2,118,123,126],[2,1830]),o($V2,[2,1073]),o($V2,[2,1074]),o($V2,[2,1075]),{419:[1,3268]},{118:[1,3269],123:[1,3270]},o($Vaj,[2,404]),{126:[1,3271]},o($V2,$Vdj,{27:[1,3272]}),o($V2,[2,175]),o($Vej,[2,691]),{27:[1,3273],132:$Vfj},o($V2,[2,75]),o($V2,$V4f),o($V2,$VUg,{95:3275,695:$VVg,709:$VWg}),{27:[1,3277],384:[1,3276]},o($Vke,[2,591],{384:[1,3278]}),{27:[1,3280],79:[1,3279]},o($Vke,[2,586],{384:[1,3281]}),{79:[1,3282]},{27:[1,3284],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:3283,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:3285,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:754},o($V2,[2,189]),{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:3286,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{118:$Vgj,123:[1,3288]},{118:$Vhj,123:$V9j},{2:$VYb,118:$VZb,121:3290},{2:$VYb,118:$VZb,121:3291},{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:3292,165:3293,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vc4,832:2726,838:2104,839:2724},o([26,27,58,66,74,75,92,99,116,123,134,135,152,161,176,177,218,239,418,532,535,544,547,615,637,690,704,768],[2,1746]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,838:3294},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3295,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($V2,$Vij,{27:[1,3296]}),{27:$V6,68:3297,102:3299,161:$V4b,183:3298,810:$Vc4},o($V2,[2,205]),{68:2109,161:$V_7,168:3300},{68:2109,161:$V_7,168:3301},{88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},o($V2,$Vjj,{27:[1,3302]}),o($V2,[2,169]),{27:[1,3304],153:[1,3303]},o($V2,[2,168]),{153:[1,3305]},o($Vle,[2,177]),o($Vze,[2,178]),o($V2,[2,227]),o($Vkj,$Vlj,{142:3306,145:3307,173:3308,174:$Vmj,175:$Vnj}),o($Voj,$Vlj,{142:3311,173:3312,174:$Vmj,175:$Vnj}),{27:[1,3314],312:3313,314:3315,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},o($V2,$VJj,{27:[1,3349]}),o($V2,[2,184]),{118:$VKj,123:[1,3351]},{2:$VYb,118:$VZb,121:3352},o($Vaj,$VLj,{27:[1,3353]}),o($V4f,[2,438],{123:[1,3354]}),o($V2,$VMj,{27:[1,3355]}),o($V2,[2,282]),{27:[1,3357],85:$VNj},o($VOj,[2,289]),o($VOj,[2,290]),o($VOj,[2,291]),o($V2,[2,900]),o($V2,[2,902]),o($Vxh,$V89,{80:963,614:3359,647:3360,110:3361,116:$V99,637:$VPj}),o($Vnb,$V89,{80:963,614:3362,116:$V2c}),o($Vnb,$V89,{80:963,614:3363,116:$V2c}),o($Vxh,$VGa,{67:3364,100:3365,768:$VHa}),o($Vnb,$VGa,{67:3366,768:$Vob}),o($Vnb,$V89,{80:963,614:3367,116:$V2c}),o($Vre,$Vse,{642:3368,645:3369,409:$Vte}),o($Vue,$Vse,{642:3370,409:$Vve}),o($Vxh,[2,1144]),o($Vnb,[2,1157]),o([27,152,544,547,615,690],[2,646]),{108:$VQj},o($Vnb,[2,1156]),{27:[1,3373],426:3372,427:3374,428:$VRj},o($Vue,[2,1181]),o($Vnb,[2,1155]),{426:3372,428:$VSj},o([2,27,107,108,129,152,153,161,227,277,384,409,499,544,547,646,690,704],[2,2428]),o($VBh,[2,2431],{1007:[1,3377],1008:[1,3378]}),o($VBh,[2,2432]),{27:[1,3380],464:[1,3379]},o($V2,[2,1200]),o($V2,$V6j,{185:3238,184:3242,68:3243,70:3381,161:$V_7}),{81:3382,116:$V8j},{118:$Vcj,123:$VTj},o($V2,$Vdj),{132:$Vfj},o($V2,[2,94]),o($V2,$VUg,{95:3384,695:$VVg,709:$VWg}),o($Vjh,$VUj),o($VVj,[2,562]),o($VVj,[2,563]),{384:[1,3385]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:3283,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{118:$Vgj,123:[1,3386]},{118:$Vhj,123:$Vih},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:3387,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,838:2104},o($V2,$Vij),{68:3297,161:$V_7},o($V2,$Vjj),o($Voj,$Vlj,{173:3312,142:3388,174:$Vmj,175:$Vnj}),{312:3313,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3393,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VIh,[2,547]),{80:3394,116:$V2c},o($V2,$VJj),{118:$VKj,123:[1,3395]},o($Vbj,$VLj),o($V2,$V3,{543:6,209:7,3:250,211:251,195:252,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1015:332,1016:333,1017:334,1018:335,1019:336,1020:337,1021:338,1022:339,1023:340,1024:341,1025:342,1026:343,1027:344,1028:345,1029:346,1030:347,1031:348,1032:349,1033:350,456:408,215:629,546:630,627:639,628:640,652:642,65:649,194:650,542:1457,210:1463,2:$V4,26:$Vxb,44:$VU6,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$VV6,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VW6,198:$VX6,202:$VC,205:$VY6,206:$VE,208:$VF,217:$VZ6,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$Vyb,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$V_6,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$V$6,534:$V07,535:$Vzb,538:$V27,539:$VQ1,547:$V37,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$VAb,610:$V12,615:$V57,616:$V32,617:$V42,618:$V67,619:$V62,620:$V72,621:$V82,622:$V92,623:$V77,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,656:$V87,663:$Vg2,665:$Vh2,667:$Vi2,673:$V97,674:$Vk2,676:$Vl2,681:$Va7,686:$Vn2,687:$Vb7,688:$Vp2,694:$Vq2,696:$Vr2,697:$Vs2,698:$Vt2,699:$Vu2,700:$Vv2,701:$Vw2,702:$Vx2,703:$Vy2,704:$Vz2,705:$VA2,706:$VB2,707:$VC2,708:$VD2,710:$VE2,711:$VF2,712:$VG2,713:$VH2,714:$Vc7,715:$VJ2,716:$VK2,717:$VL2,718:$VM2,719:$Vd7,720:$VO2,721:$VP2,722:$VQ2,723:$VR2,724:$VS2,725:$VT2,726:$VU2,727:$VV2,728:$VW2,729:$VX2,730:$VY2,731:$VZ2,732:$V_2,733:$V$2,734:$V03,735:$V13,736:$V23,737:$V33,738:$V43,739:$V53,740:$V63,741:$V73,742:$V83,743:$V93,744:$Va3,745:$Vb3,746:$Vc3,747:$Vd3,748:$Ve3,749:$Vf3,750:$Vg3,751:$Vh3,752:$Vi3,753:$Vj3,754:$Vk3,755:$Vl3,756:$Vm3,757:$Vn3,758:$Vo3,759:$Vp3,760:$Vq3,761:$Vr3,762:$Vs3,763:$Vt3,764:$Vu3,765:$Vv3,766:$Vw3,767:$Vx3,768:$Vy3,769:$Vz3,770:$VA3,771:$VB3,772:$VC3,773:$VD3,774:$VE3,775:$VF3,776:$VG3,777:$VH3,778:$VI3,779:$VJ3,780:$VK3,781:$VL3,782:$VM3,783:$VN3,784:$VO3,785:$VP3,786:$VQ3,787:$VR3,788:$VS3,789:$VT3,790:$VU3,791:$VV3,792:$VW3,793:$VX3,794:$VY3,795:$VZ3,796:$V_3,797:$V$3,798:$V04,799:$V14,800:$V24,801:$V34,802:$V44,803:$V54,804:$V64,805:$V74,806:$V84,807:$V94,808:$Va4,809:$Vb4,850:$Ve7}),o($V2,$V3,{543:6,209:7,3:250,211:251,195:252,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1015:332,1016:333,1017:334,1018:335,1019:336,1020:337,1021:338,1022:339,1023:340,1024:341,1025:342,1026:343,1027:344,1028:345,1029:346,1030:347,1031:348,1032:349,1033:350,456:408,215:629,546:630,627:639,628:640,652:642,65:649,194:650,210:1463,542:3396,2:$V4,26:$Vxb,44:$VU6,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$VV6,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VW6,198:$VX6,202:$VC,205:$VY6,206:$VE,208:$VF,217:$VZ6,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$Vyb,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$V_6,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$V$6,534:$V07,535:$Vzb,538:$V27,539:$VQ1,547:$V37,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$VAb,610:$V12,615:$V57,616:$V32,617:$V42,618:$V67,619:$V62,620:$V72,621:$V82,622:$V92,623:$V77,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,656:$V87,663:$Vg2,665:$Vh2,667:$Vi2,673:$V97,674:$Vk2,676:$Vl2,681:$Va7,686:$Vn2,687:$Vb7,688:$Vp2,694:$Vq2,696:$Vr2,697:$Vs2,698:$Vt2,699:$Vu2,700:$Vv2,701:$Vw2,702:$Vx2,703:$Vy2,704:$Vz2,705:$VA2,706:$VB2,707:$VC2,708:$VD2,710:$VE2,711:$VF2,712:$VG2,713:$VH2,714:$Vc7,715:$VJ2,716:$VK2,717:$VL2,718:$VM2,719:$Vd7,720:$VO2,721:$VP2,722:$VQ2,723:$VR2,724:$VS2,725:$VT2,726:$VU2,727:$VV2,728:$VW2,729:$VX2,730:$VY2,731:$VZ2,732:$V_2,733:$V$2,734:$V03,735:$V13,736:$V23,737:$V33,738:$V43,739:$V53,740:$V63,741:$V73,742:$V83,743:$V93,744:$Va3,745:$Vb3,746:$Vc3,747:$Vd3,748:$Ve3,749:$Vf3,750:$Vg3,751:$Vh3,752:$Vi3,753:$Vj3,754:$Vk3,755:$Vl3,756:$Vm3,757:$Vn3,758:$Vo3,759:$Vp3,760:$Vq3,761:$Vr3,762:$Vs3,763:$Vt3,764:$Vu3,765:$Vv3,766:$Vw3,767:$Vx3,768:$Vy3,769:$Vz3,770:$VA3,771:$VB3,772:$VC3,773:$VD3,774:$VE3,775:$VF3,776:$VG3,777:$VH3,778:$VI3,779:$VJ3,780:$VK3,781:$VL3,782:$VM3,783:$VN3,784:$VO3,785:$VP3,786:$VQ3,787:$VR3,788:$VS3,789:$VT3,790:$VU3,791:$VV3,792:$VW3,793:$VX3,794:$VY3,795:$VZ3,796:$V_3,797:$V$3,798:$V04,799:$V14,800:$V24,801:$V34,802:$V44,803:$V54,804:$V64,805:$V74,806:$V84,807:$V94,808:$Va4,809:$Vb4,850:$Ve7}),{2:$V_j,27:[1,3400],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3401,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,565:3397,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,737:$VZ9,768:$V9a,913:3402,983:3399},o($VJh,[2,2531]),o($Vj8,[2,2252],{123:$Vnc}),{2:$V_j,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3404,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,565:3403,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,737:$VZ9,768:$V9a,913:3405},o($VMh,[2,2264]),o($VHe,$V$j,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($VNb,[2,2295],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($VNb,[2,2296],{902:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d}),o($VTe,$V$j,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),{27:[1,3407],782:[1,3406]},{118:[1,3408]},{118:[1,3409]},{2:$VYb,118:$VZb,121:3410},o($VO8,[2,2311]),o($VI8,[2,2312]),o($VPh,$Vyf,{385:$Vzf}),{782:[1,3411]},o($V2,$V0k,{27:[1,3412]}),o($V2,[2,1022]),{27:[1,3414],596:[1,3413]},o($V79,[2,1048],{123:$V1c}),o($V79,[2,1051],{123:$V1c}),o($V2,[2,1026]),o($Vaf,[2,1066]),o($V2,[2,1067],{123:[1,3415]}),{27:[1,3417],621:$V1k},o($V2,[2,1084]),o($V2,[2,1068],{123:$VTh}),o($V2,$V2k,{27:[1,3418]}),o($V2,[2,1031]),o($Vdf,[2,1781],{123:[1,3419]}),o($Vdf,[2,1782],{123:[1,3420]}),o($Vef,[2,1779]),o($Vdf,[2,1783],{123:$VVh}),{219:[1,3421]},o($V2,$VQh,{600:3422,123:$VTh,152:[1,3423]}),o($V2,$VRh),{51:2873,473:$V_b,619:$V$b,620:$V0c},{622:[1,3424]},o($V2,$V6f,{602:3425,123:$VTh,152:$VUh}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2882,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,$V$h,{123:$VTh}),{55:$V49,123:$V1c,535:$V$8,598:3426},o($V2,$V0i,{123:$VTh}),{123:$V29,535:[1,3427]},o($V3c,$VZ8,{270:442,693:446,46:596,601:3428,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2976,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{208:$Vai,755:[1,3429],761:$Vbi,799:$Vci},o($Vei,$Vfi,{902:1806,307:$V1d,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($Vei,$Vhi,{902:1806,307:$V1d,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($Vei,$Vii,{902:1806,307:$V1d,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($Vei,$Vji,{902:1806,307:$V1d,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),{116:[1,3430]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3431,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VQ8,$VR8,{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,954:1552,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:2916,659:3027,900:3432,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,901:[1,3433],902:1806},o($Vli,$Vmi,{902:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,788:$V8d,789:$V9d}),o($Vli,$Voi,{902:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,788:$V8d,789:$V9d}),o($V0g,$Vpi,{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V0g,$Vqi,{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V0g,$Vri,{902:1806,307:$V1d,488:$Vmf,772:$Vsf,788:$V8d,789:$V9d}),o($V2,$Vsi,{661:3035,663:$Vnf}),{665:[1,3434]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3435,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,667:[1,3436],725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{118:$Vyi,123:$V3k},o($V4k,$VCi,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),{118:$VIi,123:$V3k},{88:$Vgf,108:[1,3438],126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{535:[1,3439]},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,729:$VKi,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:3440,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3441,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$VNi,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:3442,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{153:$VPi,384:$VOi,677:3443},o($V2,$V4h,{49:2709,69:3444,704:$Vrb}),{75:[1,3445]},o($V2,$VL9,{577:1125,536:3446,807:$VN9}),{123:[1,3447],535:$VSi},{123:[1,3448],535:$VUi},{51:3160,473:$V_b,619:$V$b,620:$V0c},{57:3449,58:$V3b,68:1355,161:$V_7},{64:$VVi},o($V2,$V6j,{185:3238,184:3242,68:3243,70:3450,161:$V_7}),{80:3451,116:$V2c},{318:$V7j},{81:3452,116:$V8j},o($V2,$VMj),{85:$VNj},o($V2,$VWi),o($Vze,$V4h,{49:2709,69:3171,704:$Vrb}),{125:3174,279:$VM8,280:$VN8,441:926,816:927},o($Vi9,$VGa,{67:3453,768:$Vob}),o($V$i,$VLg,{276:2628,273:3454,277:$VZh}),o([107,108,129,277,376,382,396,409,704],$V1j,{452:3455,177:[1,3456]}),o($V2,$V2j,{457:3457,464:[1,3458]}),{46:1057,47:$Vg4,50:$Vh4,56:3197,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,474:3459,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3460,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,118:$V3j,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3462,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,495:3461,497:3206,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,$V4j),{46:1057,47:$Vg4,50:$Vh4,56:3212,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:3215,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:3219,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:3223,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,$V5j),{279:$VM8,441:3463},o($V_h,$V89,{80:963,614:3359,116:$V2c,637:$VPj}),o($V_h,$VGa,{67:3364,768:$Vob}),o($Vxf,$Vse,{642:3464,409:$Vve}),{464:[1,3465]},o($Vx9,[2,1927],{123:$V5c}),o($Vy9,[2,1928]),o($Vrc,[2,1930]),o($Vrc,[2,1931]),o($V5k,$V6k,{220:3466,223:3468,225:3469,27:[1,3467],227:[1,3470]}),o($V2,[2,322]),o($V5k,$V6k,{220:3471,223:3472,227:$V7k}),o($V5k,$V6k,{223:3472,220:3474,227:$V7k}),o($V5k,$V6k,{223:3472,220:3475,227:$V7k}),o($Vuc,[2,2217]),{27:[1,3477],535:[1,3476]},o($V2,[2,1103]),{27:[1,3479],51:1570,473:$V_b,599:3478,605:3480,619:$V$b,620:$V0c},o($V2,[2,1115]),{27:[1,3482],123:$V29,535:[1,3481]},o($V2,[2,1888]),o($VBf,[2,1840]),o($VCf,[2,1842],{727:[1,3483]}),o($VCf,[2,1846],{727:[1,3484]}),o($VCf,[2,1844],{727:$VWh}),o($VCf,[2,1848],{727:$VWh}),o($V2,[2,1885]),o($V8k,$V9k,{581:3485,586:3486,592:3487,781:$Vak}),o($V1i,$Vbk,{2:[1,3489],27:[1,3490]}),o($Vck,$V9k,{581:3491,586:3492,781:$Vdk}),{46:3494,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vek,$V2i,{585:2989,591:3496,580:3497,27:[1,3495],808:$V3i}),o($V5i,$V2i,{585:2989,580:3498,808:$V6i}),o($Vck,$V9k,{586:3492,581:3499,781:$Vdk}),o($V8i,$Vbk),{46:3500,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o([2,27,118,499,544,615,690,742,756,773,781,800,808,893],$Vfk,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($VJf,[2,2452],{902:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d}),o($VJf,[2,2453],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($V5i,$V2i,{585:2989,580:3501,808:$V6i}),o($Vek,$V2i,{585:2989,591:3502,580:3503,808:$V3i}),o($V5i,$V2i,{585:2989,580:3504,808:$V6i}),o($Vck,$V9k,{586:3492,581:3505,781:$Vdk}),o($VNf,$Vfk,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o([2,27,118,499,544,615,690,742,756,765,773,781,800,808,893],$Vgk,{871:3506,873:3507,874:3509,875:3511,123:[1,3508],152:[1,3510],764:[1,3512]}),o($VEc,$Vgk,{874:3509,871:3513,152:$Vhk,764:$Vik}),o($VEc,$Vgk,{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,902:1822,874:3509,871:3516,324:3517,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:[1,3518],126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,152:$Vhk,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$V5d,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,764:$Vik,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vjk,$Vkk,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($Vlk,[2,1981],{902:1839,88:$Vad,123:[1,3519],126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($VJf,$VGf,{584:2394,579:3520,765:$VKf}),o($V5i,$V2i,{585:2989,580:3521,808:$V6i}),o($V5i,$V2i,{585:2989,580:3522,808:$V6i}),o($Vek,$V2i,{585:2989,591:3523,580:3524,808:$V3i}),o($V5i,$V2i,{585:2989,580:3525,808:$V6i}),o($Vck,$V9k,{586:3492,581:3526,781:$Vdk}),o($VGc,$Vgk,{871:3506,874:3509,123:$Vmk,152:$Vhk,764:$Vik}),o($Vnk,$Vkk,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vok,$V9k,{586:3492,581:3528,781:$Vdk}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:3152,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vuc,[2,2060]),o($Vuc,[2,2061]),o($Vuc,[2,2062]),{27:[1,3530],535:[1,3529]},o($Vqd,[2,2098]),o($Vqd,[2,2099]),o($Vqd,[2,2100]),o($Vqd,[2,2096]),o($VQ8,$VR8,{270:442,693:446,954:943,925:1089,926:1090,898:1136,904:1144,285:1145,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,842:1154,971:1160,973:1161,975:1162,976:1163,922:1164,843:1165,977:1166,979:1167,981:1168,982:1169,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,924:1179,172:1180,987:1181,988:1182,989:1183,441:1184,816:1185,927:1186,46:1187,1012:1190,463:1191,817:1192,324:2522,494:2523,660:3029,910:3030,183:3031,659:3531,900:3532,27:$Vmd,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VG8,280:$VH8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,1010:$Vna}),o($Vqd,[2,2122]),{27:[1,3534],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,901:[1,3533],902:1806,907:1807},{88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d,901:[1,3535],902:1839},o($VZf,[2,2133],{902:1822,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,788:$V8d,789:$V9d}),{118:[1,3536]},{27:$Vpk,118:$Vqk,123:$Vzi},{2:$VYb,118:$VZb,121:3539},{2:$VYb,118:$VZb,121:3540},{2:$VYb,118:$VZb,121:3541,123:$VAi},{27:[1,3544],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3542,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3543,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vqd,[2,2138]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3545,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($V2,[2,1213]),o($V2,[2,1217]),o($V2,[2,1218]),o($Vrk,$Vsk,{666:3546,669:3547,150:[1,3548]}),o($V2,[2,1220]),o($VQ8,$VR8,{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,954:1552,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:2916,900:3549,659:3550,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,901:[1,3551],902:1806},{2:$VYb,118:$VZb,121:3552,123:$V3k},{2:$VYb,118:$VZb,121:3553},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3554,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vqd,[2,2168]),{2:$V4g,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,759:$V7g,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806,909:3555},o($Vqd,[2,2760]),o($Vxi,[2,2776],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:3556,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vxi,[2,2779],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),{27:[1,3558],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,759:$Vtk,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},{2:$V4g,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,759:$V7g,780:$Vld,788:$V8d,789:$V9d,902:1839,909:3559},{2:$V4g,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,759:$V7g,780:$V7d,788:$V8d,789:$V9d,902:1822,909:3560},{2:$V4g,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,667:$Vwi,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,759:$V7g,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806,909:3561},o($Vqd,[2,2755]),o($Vag,[2,2768],{1068:2508,663:$Vuf}),o($Vag,[2,2767],{1068:2508,663:$Vuf}),{2:$V4g,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,759:$V7g,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806,909:3562},o($Vqd,[2,2753]),o($Vqd,[2,2758]),{27:[1,3565],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3563,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3564,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vxi,[2,2784],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:3566,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vxi,[2,2772],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:3567,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vxi,[2,2775],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($Vxi,[2,2789],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,902:1822,324:3568,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$V5d,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vxi,[2,2781],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vxi,[2,2782],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:3569,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vuc,[2,2379]),{2:$VYb,118:$VZb,121:3570,123:$Vuk},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3574,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3572,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3573,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vqd,[2,2380]),o($VDi,[2,2182],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:2916,900:3575,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vqd,[2,2382]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:3576,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VDi,[2,2183],{123:[1,3577]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:3578},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:3579},{118:$Vvk,586:3582,592:3583,781:$Vak,993:3580,995:3581},o($V4f,$Vvk,{993:3584,586:3585,781:$Vdk}),o($VDi,$VFi,{996:3081,992:3586,161:$VGi}),{27:[1,3588],79:[1,3587]},o($VDi,[2,2406]),{118:$Vvk,586:3585,781:$Vdk,993:3580},{79:[1,3589]},o($VHi,[2,2390]),{2:$VYb,118:$VZb,121:3590,123:$Vuk},o($Vwk,[2,2391]),o($Vwk,[2,2393]),{27:[1,3592],334:3591,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{2:$VYb,118:$VZb,121:3594,334:3593,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{2:$VYb,118:$VZb,121:3596,334:3595,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},o($Vqd,[2,2463]),{2:$VYb,118:$VZb,121:3598,334:3597,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},o($Vqd,[2,2466]),{2:$VYb,118:$VZb,121:3599},{27:[1,3601],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3600,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3602,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{2:$VYb,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$VZb,121:3603,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3604,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vqd,[2,2478]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3605,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vwf,[2,1850]),o($Vxk,[2,1852]),o($Vxk,[2,1856]),o($Vxk,[2,1857]),o($Vxk,[2,1853]),o($Vzd,[2,2471]),{27:[1,3607],118:$Vyk,123:$Vzi},{2:$VYb,118:$VZb,121:3608,123:$VAi},{2:$VYb,118:$VZb,121:3609},{27:[1,3611],88:$VJc,118:$Vzk,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},{2:$VYb,118:$VZb,121:3612},{2:$VYb,88:$Vad,118:$VZb,121:3613,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d,902:1839},o($Vzd,[2,2493]),{27:[1,3615],118:$VAk,123:$Vzi},{2:$VYb,118:$VZb,121:3616,123:$VAi},{2:$VYb,118:$VZb,121:3617},{27:[1,3619],384:[1,3618]},o([27,384,544,690],[2,1247]),o($V2,[2,1237],{384:[1,3620]}),o($V2,$VBk,{27:[1,3621]}),o($V2,[2,1259]),o($V2,[2,1258]),o($V2,$V4h,{49:2709,69:3622,704:$Vrb}),o($V2,$V4h,{49:2709,69:3623,704:$Vrb}),o($V2,[2,1262]),{641:3624,644:3625,766:$Vmb},{75:[1,3626]},{641:3627,766:$Vlc},{641:3628,766:$Vlc},o($V2,$VCk,{27:[1,3629]}),o($V2,[2,2707]),o($V2,[2,2706]),o($VBg,[2,2718]),o($VCg,[2,2720],{123:[1,3630]}),o($Vwg,[2,2731]),o($Vzg,[2,2732]),o($Vzg,[2,2733]),o($V2,[2,2705]),o($VCg,[2,2721],{123:$VGg}),o($VBg,[2,2723]),o($VDg,[2,2724]),o($VBg,$VDk,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($VDg,[2,2729],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($VEg,[2,1829]),o($V2,[2,2704]),o([123,535,544,663,690,807],$VDk,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($VEd,$VRi,{862:3148,863:3149,941:3150,861:3631,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VEd,[2,1938]),o($VEd,[2,1940],{941:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VEd,[2,1941]),o($VEd,[2,2265],{56:435,899:436,270:442,693:446,941:908,946:1055,948:1056,46:1057,936:1502,862:3632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VEd,[2,930]),o($VKd,[2,2239],{123:$VHg}),{27:$VIg,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3635,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:3633,556:3634,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,725:$VBa,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,928:1238,930:1239,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($VKd,[2,2242],{123:$VHg}),o($VKd,[2,2243],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,928:1238,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:1646,551:3636,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($VKd,[2,2244],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,928:1238,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:1646,551:3637,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{2:$Vza,27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2601,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,557:3638,558:[1,3639],621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,725:$VBa,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,928:2600,930:2602,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:$V9i,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2598,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($V2,[2,40]),o($V2,[2,42]),o($V2,[2,47]),o($V2,[2,48]),{27:[1,3641],58:$VEk},o($V2,[2,53]),o($V2,[2,55]),o($V2,[2,60]),{27:[1,3644],46:1962,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,286:3642,288:3643,289:3645,297:3646,303:3647,306:3648,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:1963},o($V2,[2,410]),o($V2,[2,385]),o($V2,[2,386]),o($V3e,$VFk,{274:3649,282:3650,152:$VGk}),{2:$VFk,152:$VGk,274:3652,282:3650},{2:$VFk,152:$VGk,274:3653,282:3650},o($VXi,[2,392]),o($VYi,[2,394],{279:$VTb,281:[1,3654]}),o($VYi,[2,395],{280:$VVb,281:[1,3655]}),o($VHk,$VIk,{295:3656,449:3657,129:$VJk}),o($V2,$VIk,{449:3657,295:3659,129:$VJk}),{2:$VYb,118:$VZb,121:3660},{118:$VKk,123:[1,3662]},o($VLk,$VLg,{276:2628,273:3663,277:$VZh}),o($V$i,$VLg,{276:2628,273:3664,277:$VZh}),{108:$VIk,129:$VJk,295:3665,449:3657},{118:$VKk,123:$VMk},o($Vbj,$VLg,{276:2628,273:3667,277:$VZh}),o($VSg,[2,1798]),o($VSg,[2,1797]),o([27,107,108,129,376,382,396,409,704],$VLg,{276:2628,273:3668,277:$VZh}),o([107,129,376,382,396,409,544,690,704],$VLg,{276:2628,273:3669,277:$VZh}),{27:[1,3671],64:$VNk},o($V2,$VOk,{27:[1,3672]}),o($V2,[2,731]),{27:[1,3674],181:$VPk,465:3673,466:3675,467:3676,468:$VQk,469:$VRk},{116:[1,3682],475:3680,481:3681},o($V2,[2,760]),o($V2,[2,761],{475:3683,116:$VSk}),{116:[2,774]},o([116,544,690],[2,775]),o($V2,$VTk,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($V2,[2,800],{902:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d}),o($V2,[2,801],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($V2,[2,799],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($VUk,[2,802]),{118:$VVk,123:[1,3686]},{2:$VYb,118:$VZb,121:3687},o($Vbj,[2,805]),o($V4f,[2,807],{123:[1,3688]}),{27:[1,3690],312:3689,314:3691,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},o($V2,[2,733]),o($V2,[2,857]),o($V2,[2,873]),o($V2,[2,876]),o($V2,[2,880]),o($V2,[2,881]),o($V2,[2,2586]),o($V2,[2,2594]),o($V2,[2,2593]),o($V2,[2,2591]),o($V2,[2,2613]),o($V2,[2,2618]),o($V2,[2,2619]),o($V2,[2,2620]),o($V2,[2,2626]),o($V2,[2,2636]),o($V2,[2,2635]),o($V2,[2,2637]),o($V2,[2,2640]),o($V2,$VWk,{68:3692,27:[1,3693],161:$V_7}),o($V2,[2,2676],{68:3694,161:$V_7}),o($V2,[2,2674],{68:3695,161:$V_7}),o($V2,[2,2675],{68:3696,161:$V_7}),o($V2,[2,2687]),o($V2,[2,2630]),o($V2,$VXk,{27:[1,3697]}),o($V2,[2,103]),o($V3e,$VYk,{68:3239,102:3240,186:3698,185:3699,161:$V4b}),o($V2,[2,243],{185:3238,68:3243,184:3700,161:$V_7}),o($V3h,[2,241]),o($V3h,$V4h,{49:2709,52:3701,69:3702,704:$Vbb}),o($VCf,$V4h,{49:2709,69:3703,704:$Vrb}),o($V2,[2,102]),o($V2,$VYk,{68:3243,185:3699,161:$V_7}),o($VCf,$V4h,{49:2709,69:3702,704:$Vrb}),o($V2,[2,105]),o([27,118,123,333,373,374,544,690],$Vtb,{332:3704,177:$Vub}),o($Vjh,[2,552]),o($VZk,[2,555]),{80:3706,110:3705,116:$V99},{116:[2,564]},o($Vjh,[2,565]),o($V3e,$V_k,{82:3707,111:3708,89:$V$k,107:[1,3710]}),{116:$V0l,406:3711,407:3712},o($V2,$V_k,{82:3714,89:$V$k}),{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vc4,832:2726,838:3294,839:3715},o([75,116,123,152,161,218,418,532,535,544,547,615,690,704,768],[2,1747]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:3716,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,838:2104},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3719,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3717,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3718,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3720,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($V2,[2,250]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2734,189:3721,190:3722,191:2733,192:2735,193:$V7h,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4,842:2737,843:2738},o($V2,[2,251]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,187:3723,189:2731,191:2733,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},{125:3724,279:$VM8,280:$VN8,441:926,816:927},{125:3725,279:$VM8,280:$VN8,441:926,816:927},{125:3726,279:$VM8,280:$VN8,441:926,816:927},{125:3727,279:$VM8,280:$VN8,441:926,816:927},{46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:2527,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,725:$VQi,734:$Vy6,810:$VXb,832:1529,834:2528},{125:3728,279:$VM8,280:$VN8,441:926,816:927},o([2,27,107,108,129,277,409,488,499,544,690,704],[2,403]),{125:2745,279:$VM8,280:$VN8,284:3729,441:926,816:927},{279:$VM8,280:$VN8,285:3730,385:$Vz9,441:1184,541:1170,727:$VA9,761:$V7a,799:$Via,801:$VB9,816:1185,921:1153,923:1171,925:1089,926:1090,927:1186},o($V2,[2,174]),o($V1l,[2,693],{48:3731,116:$Vie}),{48:3732,116:$Vie},o($V2,[2,76]),{385:[1,3733]},o($Vke,[2,588]),{385:[1,3734]},{116:[1,3737],398:3735,399:3736},o($Vfh,[2,610]),{385:[1,3738]},{116:[1,3739],398:3735},o($V2,[2,186]),o($V2,[2,190]),o($V2,[2,191]),o($V2,[2,193]),o($V2l,[2,194]),{116:[1,3740]},o($V2l,[2,195]),o($Vze,[2,196]),o($Vze,[2,197]),{118:$V3l,123:$V9j},{2:$VYb,118:$VZb,121:3742},o($Vjh,[2,1802]),o($Vjh,$V4l,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($V2,[2,206]),o($Vlh,[2,231]),o($Vmh,[2,233],{123:[1,3743]}),o($Vmh,[2,236],{123:[1,3744]}),o($Vmh,[2,237],{123:$VHh}),o($Vmh,[2,235],{123:$VHh}),o($V2,[2,167]),{27:[1,3746],129:$V5l},o($V2,[2,181]),{129:$V5l},o($V3e,$VUg,{95:3747,695:$VVg,709:$VWg}),o($V2,$VUg,{95:3748,695:$VVg,709:$VWg}),{27:[1,3750],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:3749,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:3751,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vy7,[2,217]),o($Vy7,[2,218]),o($V2,$VUg,{95:3752,695:$VVg,709:$VWg}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:3749,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V6l,$V7l,{313:3753,315:3754,316:3755,88:$V8l,317:$V9l,320:$Val,321:$Vbl,323:$Vcl}),o($Vdl,$V7l,{315:3754,316:3755,313:3761,88:$V8l,317:$V9l,320:$Val,321:$Vbl,323:$Vcl}),o($Vdl,$V7l,{315:3754,316:3755,313:3762,88:$V8l,317:$V9l,320:$Val,321:$Vbl,323:$Vcl}),o($Vel,[2,474]),o($Vel,[2,475]),o($Vel,[2,476]),o($Vel,[2,477]),o($Vel,[2,478]),o($Vel,[2,479]),o($Vel,[2,480]),o($Vel,[2,481]),o($Vel,[2,482]),o($Vfl,[2,483]),o($Vfl,[2,484]),o($Vfl,[2,485]),o($Vfl,[2,486]),o($Vel,[2,1858]),o($Vel,[2,1859]),o($Vel,[2,1860]),o($Vel,$Vgl,{848:3763,116:$Vhl}),o($Vel,[2,1862]),o($Vel,[2,1876],{849:3765,116:[1,3766]}),o($Vel,[2,1864]),o($Vel,[2,1865]),o($Vel,[2,1866]),o($Vel,[2,1867]),o($Vel,[2,1868]),o($Vel,[2,1869]),o($Vel,[2,1870]),o($Vel,[2,1871]),o($Vel,[2,1872]),o($Vel,$Vgl,{848:3767,116:$Vhl}),{348:[1,3768]},{348:[1,3769]},{348:[1,3770]},{348:[1,3771]},o($V2,[2,185]),o($Vil,[2,431]),{27:$Vjl,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,71:$Vkl,72:3777,73:3781,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,103:3779,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:3775,144:3776,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,309:3772,311:3773,317:$V5h,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,363:3778,364:3780,365:3782,366:3783,367:3784,369:2715,370:2716,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vll,[2,433]),o($V4f,[2,442],{123:[1,3786]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:3787,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V2,[2,283]),o($V3e,[2,287]),o($V2,[2,288]),{116:$Vml,638:3788,650:3789},o($Vxh,[2,1145]),o($Vnb,[2,1161]),o($Vnb,[2,1774]),o($Vnb,[2,1160]),o($Vnb,[2,1159]),o($Vxh,[2,1142]),o($Vnb,[2,1150]),o($Vnb,[2,1149]),o($Vnb,[2,1148]),o($Vxh,$Vyh,{414:2810,416:3791,107:$Vzh,646:[1,3792]}),o($Vnb,$Vyh,{414:2810,416:3793,107:$Vzh}),o($Vnb,$Vyh,{414:2810,416:3794,107:$Vzh}),{128:3795,417:$Vae,418:$Vbe,420:$Vce,421:$Vde,422:$Vee,423:$Vfe,424:$Vge,425:$Vhe},o([27,107,152,544,547,615,646,690],[2,1180]),o($Vue,[2,1182]),o($Vue,[2,1183]),o($Vnl,$Vol,{429:3796,434:3797,439:[1,3798]}),o($Vpl,$Vol,{429:3799,439:[1,3800]}),{1008:[1,3801]},o($VBh,[2,2430]),{27:[1,3803],46:439,47:$Vg4,50:$Vh4,56:3806,58:$Vi4,59:3807,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:[1,3805],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,657:3802,658:3804,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,1201]),o($V2,[2,81]),o($V2,$V_k,{82:3808,89:$V$k}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,189:3721,191:2733,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($V2,[2,95]),{385:[1,3809]},{116:[1,3810]},{118:$V3l,123:$Vih},o($V2,$VUg,{95:3811,695:$VVg,709:$VWg}),{348:[1,3812]},{348:[1,3813]},{348:[1,3814]},{348:[1,3815]},{88:$Vgf,118:[1,3816],126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{372:[1,3817]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,71:$V88,72:3819,73:3781,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:3818,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,309:3772,317:$VYh,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,363:3820,366:877,369:2934,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{544:$VEe,690:[2,1299]},{2:$Vql,27:$V1e,46:3821,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$Vrl,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,566:3823,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:1759,833:3824},o($VFe,[2,950]),o($Vj8,[2,2522],{270:442,693:446,46:3826,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($Vj8,[2,2528]),{116:$Vsd,912:3827,917:3828},{116:$Vsd,912:3829,917:3830},{2:$Vql,46:3831,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$Vrl,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,566:3823,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{116:$Vvf,912:3827},{116:$Vvf,912:3829},{27:[1,3833],779:[1,3832]},{2:$VYb,118:$VZb,121:3834},o($VO8,[2,2309]),o($VO8,[2,2310]),o($VI8,[2,2317]),{779:[1,3835]},o($V2,[2,1021]),{27:[1,3837],621:$Vsl},o($V2,[2,1080]),{51:1570,473:$V_b,599:3838,619:$V$b,620:$V0c},o($V3e,[2,1083]),o($V2,[2,1085]),o($V2,[2,1030]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,835:3839},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,835:3840},o($V5k,$V6k,{223:3472,220:3841,227:$V7k}),o($V2,$V0k),{596:[1,3842]},{621:$V1k},o($V2,$V2k),{535:[1,3843]},{51:1570,473:$V_b,599:3844,619:$V$b,620:$V0c},{123:$V29,535:[1,3845]},{535:[1,3846]},o($VQ8,$VR8,{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,954:1552,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:2916,659:3531,900:3847,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,901:[1,3848],902:1806},{118:$Vqk,123:$V3k},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3849,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{150:[1,3851],666:3850,667:$Vsk},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,759:$Vtk,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3852,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3853,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{334:3591,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3854,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{118:$Vyk,123:$V3k},{88:$Vgf,118:$Vzk,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{118:$VAk,123:$V3k},{384:[1,3855]},o($V2,$VBk),{641:3856,766:$Vlc},o($V2,$VCk),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:3857,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:1238,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{2:$Vza,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,557:3858,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$VBa,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,928:2600,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{58:$VEk},o($V2,$VXk),o([118,123,333,373,374,544,690],$Vtb,{332:3859,177:$Vub}),o($V2,$V_k,{82:3860,89:$V$k}),{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,286:3642,289:3861,303:3862,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{108:$VIk,129:$VJk,295:3863,449:3657},o([107,108,129,376,382,396,409,704],$VLg,{276:2628,273:3864,277:$VZh}),{64:$VNk},o($V2,$VOk),{181:$VPk,465:3673,466:3675,467:3676,468:$VQk,469:$VRk},{116:$VSk,475:3865},o($V2,$VTk,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),{118:$VVk,123:$Vtl},{312:3689,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},o($V2,$VWk,{68:3692,161:$V_7}),o($V_h,$Vyh,{414:2810,416:3791,107:$Vzh}),{46:1057,47:$Vg4,50:$Vh4,56:3806,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:[1,3868],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,657:3867,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vul,$Vvl,{221:3869,224:3870,226:3871,228:[1,3872]}),o($V5k,$V6k,{223:3472,220:3873,227:$V7k}),o($V5k,$Vwl,{27:[1,3874]}),o($Vul,$Vvl,{221:3875,224:3876,228:$Vxl}),{27:[1,3879],154:$Vyl},o($Vul,$Vvl,{224:3876,221:3880,228:$Vxl}),o($V5k,$Vwl),{154:$Vyl},o($Vul,$Vvl,{224:3876,221:3881,228:$Vxl}),o($Vul,$Vvl,{224:3876,221:3882,228:$Vxl}),{27:[1,3884],51:1570,473:$V_b,599:3883,605:3885,619:$V$b,620:$V0c},o($V2,[2,1104]),o($V2,$Vzl,{123:$V7f}),o($V2,[2,1116],{123:$V9f}),o($V2,[2,1117]),{27:[1,3887],51:1570,473:$V_b,599:3886,605:3888,619:$V$b,620:$V0c},o($V2,[2,1118]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1747,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,844:3889},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1747,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,844:3890},o($VAl,$VBl,{582:3891,587:3892,593:3893,887:3894,888:3895,889:3896,890:3897,891:3898,892:3899,742:$VCl,756:$VDl,893:$VEl}),o($V8k,$VFl,{2:[1,3903],27:[1,3904]}),o($VGl,$VBl,{887:3894,889:3896,582:3905,587:3906,888:3907,742:$VHl,756:$VIl,893:$VJl}),{27:[1,3912],79:[1,3911]},o($VKl,$V9k,{586:3492,592:3914,581:3915,27:[1,3913],781:$Vak}),o($Vck,$V9k,{586:3492,581:3916,781:$Vdk}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:3917,742:$VHl,756:$VIl,893:$VJl}),o($Vok,$VFl),{79:[1,3918]},{27:[1,3920],108:[1,3919]},o($V5i,$V2i,{585:2989,580:3921,808:$V6i}),o($Vck,$V9k,{586:3492,581:3922,781:$Vdk}),o($VKl,$V9k,{586:3492,592:3923,581:3924,781:$Vak}),o($Vck,$V9k,{586:3492,581:3925,781:$Vdk}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:3926,742:$VHl,756:$VIl,893:$VJl}),{108:[1,3927]},o($Vck,$V9k,{586:3492,581:3928,781:$Vdk}),o($Vck,$V9k,{586:3492,581:3929,781:$Vdk}),o($VKl,$V9k,{586:3492,592:3930,581:3931,781:$Vak}),o($Vck,$V9k,{586:3492,581:3932,781:$Vdk}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:3933,742:$VHl,756:$VIl,893:$VJl}),o($VLl,[2,1954]),o($VEc,[2,1958]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3937,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3934,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3936,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,879:3935,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($VLl,[2,1960]),{27:[1,3940],750:$VMl,790:$VNl},o($VEc,[2,1963]),{27:[1,3942],713:[1,3941]},o($VEc,[2,1955]),{750:$VMl,790:$VNl},{713:[1,3943]},o($VEc,[2,1956]),o($Vlk,[2,1982],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3011,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,870:3944,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3011,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,870:3945,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($V5i,$V2i,{585:2989,580:3946,808:$V6i}),o($Vck,$V9k,{586:3492,581:3947,781:$Vdk}),o($Vck,$V9k,{586:3492,581:3948,781:$Vdk}),o($Vck,$V9k,{586:3492,581:3949,781:$Vdk}),o($VKl,$V9k,{586:3492,592:3950,581:3951,781:$Vak}),o($Vck,$V9k,{586:3492,581:3952,781:$Vdk}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:3953,742:$VHl,756:$VIl,893:$VJl}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3954,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VOl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:3955,742:$VHl,756:$VIl,893:$VJl}),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3956,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3958,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$Vy6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,831:3957,832:2414,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vqd,[2,2097]),{118:[1,3959]},{27:$Vpk,118:$VPl,123:$Vzi},{27:[1,3963],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3961,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3962,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vqd,[2,2132]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3964,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vuc,[2,2072]),o($Vuc,[2,2073]),{123:$Vuk},o($Vqd,[2,2736]),o($Vqd,[2,2737]),o($Vqd,[2,2738]),o($VQl,$VRl,{902:1806,907:1807,88:$VJc,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($VSl,[2,2136],{902:1839,88:$Vad,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),o($Vki,[2,2137],{902:1822,88:$V_c,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,788:$V8d,789:$V9d}),o($VSl,[2,2135],{902:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),{27:[1,3966],667:[1,3965]},o($V2,[2,1222]),{27:[1,3968],46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3967,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{2:$VYb,118:$VZb,121:3969,123:$V3k},{2:$VYb,118:$VZb,121:3970},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3971,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vqd,[2,2126]),o($Vqd,[2,2127]),o($VSl,[2,2134],{902:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($Vqd,[2,2759]),o($Vxi,[2,2777],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vuc,[2,2749]),o($Vqd,[2,2751]),o($Vqd,[2,2756]),o($Vqd,[2,2757]),o($Vqd,[2,2754]),o($Vqd,[2,2752]),o([27,663,758,759],$VTl,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($Vxi,[2,2774],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($Vxi,[2,2786],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,902:1822,324:3972,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$V5d,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vxi,[2,2785],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vxi,[2,2773],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vxi,[2,2788],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vxi,[2,2783],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vqd,[2,2381]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:3973,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VBi,$VUl,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($VDi,[2,2175],{902:1839,88:$Vad,123:[1,3974],126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($VDi,[2,2178],{123:[1,3975]}),o($VDi,[2,2181],{123:$V3k}),o($VDi,[2,2176],{123:$V3k}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:3976,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vqd,[2,1835],{727:$VJi}),o($Vqd,[2,1838],{727:$VJi}),{118:[1,3977]},{2:$VYb,118:$VZb,121:3978},{27:[1,3980],118:$VVl,787:$VWl,791:$VXl,997:3979,998:3981,999:3982,1000:3983},o($V4f,[2,2413]),{2:$VYb,118:$VZb,121:3986},o($V4f,$VVl,{997:3979,999:3982,1000:3987,787:$VWl,791:$VXl}),o($V4f,$Vvk,{586:3585,993:3988,781:$Vdk}),{27:[1,3990],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3992,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,900:3989,904:1144,910:3991,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($VDi,[2,2408]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:3993,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vwk,[2,2392]),{118:[1,3994]},{2:$VYb,118:$VZb,121:3995},{2:$VYb,118:$VZb,121:3996},o($Vqd,[2,2468]),{2:$VYb,118:$VZb,121:3997},o($Vqd,[2,2462]),{2:$VYb,118:$VZb,121:3998},o($Vqd,[2,2465]),o($Vqd,[2,2470]),{88:$VJc,118:$VYl,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc,902:1806,907:1807},{2:$VYb,88:$V_c,118:$VZb,121:4000,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d,902:1822},{2:$VYb,88:$Vad,118:$VZb,121:4001,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d,902:1839},o($Vqd,[2,2479]),{2:$VYb,88:$Vgf,118:$VZb,121:4002,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{2:$VYb,88:$Vgf,118:$VZb,121:4003,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},o($Vzd,[2,2473]),{2:$VYb,118:$VZb,121:4004,123:$Vuk},o($Vqd,[2,2474]),o($Vqd,[2,2476]),o($Vzd,[2,2517]),{2:$VYb,118:$VZb,121:4005},o($Vqd,[2,2519]),o($Vqd,[2,2521]),o($Vzd,[2,2494]),{2:$VYb,118:$VZb,121:4006,123:$Vuk},o($Vqd,[2,2495]),o($Vqd,[2,2497]),{27:[1,4008],158:[1,4007]},o($V2,[2,1238]),{158:[1,4009]},o($V2,[2,1260]),o($V2,[2,1261]),o($V2,[2,1263]),o($V2,$VZl,{27:[1,4011],227:[1,4010]}),o($V2,[2,1282],{227:[1,4012]}),{641:4013,766:$Vlc},o($V2,[2,1289],{227:[1,4014]}),o($V2,[2,1285],{227:[1,4015]}),o($V2,[2,2708]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,671:4016,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:1911,1063:1918},o($VEd,[2,1937]),o($VEd,[2,2266],{941:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),{27:$VTi,123:$VQf,535:$V_l},{535:[2,938]},{108:$VNd,535:[2,941]},o($VKd,[2,2245],{123:$VHg}),o($VKd,[2,2246],{123:$VHg}),{123:[1,4017],535:$V$l},{123:[1,4018]},o($V2,[2,49]),o($V2,[2,54]),o($V2,[2,814],{287:4019,499:[1,4020]}),o($V2,[2,408]),o($V2,[2,409]),o([27,78,107,108,129,152,161,376,382,409,499,544,690,704],$VLg,{276:2628,273:4021,277:$VZh}),o([78,107,108,129,152,376,382,409,544,690,704],$VLg,{276:2628,273:4022,277:$VZh}),o($V0m,$V1m,{304:4023,305:4024,94:4025,155:4027,116:$Vqe,307:[1,4026]}),o($V2m,$V1m,{94:4025,304:4028,116:$VDe,307:$V3m}),o($V3e,[2,387]),o($V4m,[2,399]),{27:[1,4031],47:[1,4030]},{2:[2,389]},{2:[2,388]},o($VYi,[2,396],{279:$VXe}),o($VYi,[2,397],{280:$V_e}),{27:[1,4033],108:[1,4032]},o($V5m,[2,696]),{48:4034,116:$Vie},o($V2,[2,722]),o($V6m,[2,749]),o($VOg,[2,748]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4035,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($Vaj,$V7m,{27:[1,4036]}),{108:$VIk,129:$VJk,295:4037,449:3657},{108:[1,4038]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4039,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($Vbj,$V7m),o([27,107,108,129,382,396,409,704],$V8m,{377:4040,379:4041,378:4042,376:[1,4043]}),o($V9m,$V8m,{378:4042,377:4044,376:$Vam}),o($V0j,[2,716]),o([107,129,277,376,382,396,409,544,690,704],[2,717]),o($V2,[2,732]),o($V3e,[2,738],{123:[1,4046]}),o($V2,[2,739]),o($Vbm,[2,740]),{279:$VM8,441:4047},{279:[2,743]},{279:[2,744]},{279:[2,745]},{27:[1,4049],108:[1,4048]},o($V2,[2,762],{108:[1,4050]}),{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4054,191:4053,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,489:4051,490:4052,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4,842:1916},{108:[1,4055]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4053,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,489:4056,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($VUk,[2,803]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3208,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,497:4057,498:4058,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o([47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,544,621,622,626,640,643,656,665,673,674,676,687,688,690,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,733,734,737,739,740,743,744,746,747,748,749,760,761,767,768,774,775,777,784,785,794,795,796,799,801,802,803,805,809,1010],[2,804]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3462,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,495:4059,497:3206,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($Vbj,[2,811]),o($Vbj,[2,812]),o($Vbj,[2,813]),o($V2,[2,2669]),o($V2,[2,2677],{270:442,693:446,46:1632,838:2104,140:2105,163:4060,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V2,[2,2680]),o($V2,[2,2678]),o($V2,[2,2679]),o($V2,[2,104]),o($V2,[2,245],{185:3238,68:3243,184:4061,161:$V_7}),o($V3h,[2,242]),o($V2,[2,244],{68:3243,185:3699,161:$V_7}),o($VCf,[2,247]),o($V3h,[2,249]),o($VCf,[2,248]),o([27,118,123,373,374,544,690],$Vxe,{326:4062,333:$Vye}),o($VZk,[2,556]),{27:[1,4063],372:[1,4064]},o($V2,$Vcm,{27:[1,4065]}),o($V2,[2,129]),o($V3e,[2,265]),{27:[1,4066],108:[1,4067]},{118:[1,4068],123:[1,4069]},o($Vaj,[2,631]),{279:$VM8,280:$VN8,285:4071,385:$Vz9,441:1184,541:1170,727:$VA9,761:$V7a,799:$Via,801:$VB9,816:1185,837:4070,921:1153,923:1171,925:1089,926:1090,927:1186},o($V2,[2,126]),o($V4f,[2,1804],{123:[1,4072]}),o($V4f,[2,1805],{123:$Vih}),o($Vaj,$V4l,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($Vbj,[2,1809],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($Vbj,[2,1810]),o($Vbj,[2,1811],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vbj,[2,253]),o($V4f,[2,255],{123:[1,4073]}),o($V4f,[2,257],{123:$VTj}),o($Vbj,[2,258]),o($Vbj,[2,261]),o($Vbj,[2,262]),o($Vbj,[2,263]),o($V9h,[2,650]),o($Vaj,[2,405]),o($Vaj,[2,406]),o($V1l,[2,694]),o($Vej,[2,692]),{27:[1,4075],386:$Vdm},{386:[1,4076]},o($Vem,[2,609]),o($Vfh,[2,611]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4081,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:4082,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4083,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,400:4077,401:4078,402:4079,403:4080,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4},{386:[1,4084]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4086,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,400:4085,402:4079,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:4087,165:4088,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vc4,832:2726,838:2104,839:2724},o($Vaj,[2,198]),o($V4f,[2,200]),{68:2109,161:$V_7,168:4089},{68:2109,161:$V_7,168:4090},{48:4091,116:$Vie},o($V2,[2,182]),o($V2,$Vfm,{27:[1,4092]}),o($V2,[2,166]),o($Vkj,[2,216]),o($Voj,[2,219]),o($Voj,[2,220]),o($V2,[2,164]),o($Vgm,$VLg,{276:2628,273:4093,277:$VZh}),o($V6l,[2,450],{316:4094,88:$V8l,317:$V9l,320:$Val,321:$Vbl,323:$Vcl}),o($VVj,[2,451]),o($VVj,[2,454],{318:[1,4095]}),o($Vhm,$Vim,{319:4096,325:4097,176:$Vjm,177:$Vkm}),o($VVj,[2,457],{208:[1,4100]}),o($VVj,[2,460],{322:4101,208:[1,4106],328:[1,4102],329:[1,4103],330:[1,4104],331:[1,4105]}),{116:[1,4107]},o($Vlm,$VLg,{276:2628,273:4108,277:$VZh}),o($Vlm,$VLg,{276:2628,273:4109,277:$VZh}),o($Vel,[2,1861]),{385:[1,4110]},o($Vel,[2,1863]),{385:[1,4111]},o($Vel,[2,1873]),{27:$V6,183:4114,312:4112,314:4115,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,349:$Vmm,351:$Vqj,352:$Vrj,359:$Vsj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},{27:$V6,123:$Vnm,183:4118,334:4116,349:$Vom,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},{46:4125,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpm,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,349:$Vqm,352:$Vj5,353:4120,354:4122,355:4123,356:4124,357:4126,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:$V6,123:$Vpm,183:4134,312:4131,314:4135,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,349:$Vrm,351:$Vqj,352:$Vrj,357:4133,359:$Vsj,360:4128,361:4130,362:4132,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},{118:[1,4136]},{2:$VYb,118:$VZb,121:4137},{2:$VYb,118:$VZb,121:4138},o($Vaj,$Vsm,{27:[1,4139]}),o($V4f,[2,440],{123:[1,4140]}),{118:$Vtm,123:[1,4141]},{118:$Vum,123:$Vvm},o($V4f,[2,533],{123:[1,4143]}),o($V4f,[2,535]),o($Vbj,[2,538]),o($V4f,[2,540]),o([27,118,123,333,373,374],$Vtb,{332:4144,177:$Vub}),o([2,118,333,373,374],$Vtb,{332:4145,177:$Vub}),{46:4146,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:4147,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V4f,[2,439],{123:$Vwm}),o($Vxh,[2,1141],{123:$Vxm}),o($Vym,[2,1174]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,651:4150,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,816:1185,842:1626,898:4151,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vxh,[2,1143]),o($Vnb,[2,1154]),o($Vnb,[2,1153]),o($Vnb,[2,1152]),o($V9h,[2,647]),o([27,107,108,129,152,208,277,351,446,499,544,547,646,690,704],$Vzm,{430:4152,435:4153,443:[1,4154]}),o($VAm,$Vzm,{430:4155,443:$VBm}),{27:[1,4158],440:[1,4157]},o([107,108,129,152,208,277,351,446,499,544,547,615,690,704],$Vzm,{430:4159,443:$VBm}),{440:[1,4160]},o($VBh,[2,2429]),{27:[1,4162],108:[1,4161]},o($V2,[2,1202]),o($V2,[2,1203]),o($VQ8,$VR8,{954:943,659:4163,660:4165,27:[1,4164]}),o($VHk,[2,1207]),o($V2,[2,1210]),o($V2,[2,85]),{386:$Vdm},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:4166,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,838:2104},o($V2,$Vfm),{312:4112,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,349:$Vmm,351:$VXj,352:$VYj,359:$VZj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{334:4167,349:$Vom,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{46:4169,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,349:$Vqm,352:$Vj5,353:4168,355:4123,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{312:4131,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,349:$Vrm,351:$VXj,352:$VYj,359:$VZj,360:4170,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},o($VIh,[2,546]),{46:1057,47:$Vg4,50:$Vh4,56:4171,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vbj,$Vsm),{118:$Vtm,123:[1,4172]},{118:$Vum,123:$VCm},o($Vg8,$VDm,{566:4175,1014:4176,108:[1,4174]}),o($VFe,[2,949]),o($VFe,[2,954]),o($Vj8,[2,2526],{566:4177,108:$Vrl}),{46:4178,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vj8,[2,2523],{566:4179,108:$Vrl}),o($VEm,[2,2369]),o($VFm,[2,2371]),o($VEm,[2,2370]),o($VFm,[2,2372]),o($Vmc,$VDm,{566:4175,108:[1,4180]}),{385:[1,4181]},{2:$VYb,118:$VZb,121:4182},o($VI8,[2,2313]),{385:[1,4183]},o($V3e,[2,1079]),o($V2,[2,1081]),o($V2,[2,1069],{123:$VTh}),o($Vdf,[2,1785],{123:$VVh}),o($Vdf,[2,1784],{123:$VVh}),o($Vul,$Vvl,{221:3869,224:3876,228:$Vxl}),{621:$Vsl},{51:1570,473:$V_b,599:4184,619:$V$b,620:$V0c},o($V2,$Vzl,{123:$VTh}),{51:1570,473:$V_b,599:4185,619:$V$b,620:$V0c},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4186,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{118:$VPl,123:$V3k},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4187,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VQl,$VRl,{902:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),{667:[1,4188]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3967,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vxi,$VTl,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($V4k,$VUl,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),{88:$Vgf,118:$VYl,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{158:[1,4189]},o($V2,$VZl,{227:[1,4190]}),{123:$VHg,535:$V_l},{535:$V$l},o([118,123,373,374,544,690],$Vxe,{326:4191,333:$Vye}),o($V2,$Vcm),o([78,107,108,129,152,376,382,409,499,544,690,704],$VLg,{276:2628,273:4192,277:$VZh}),o([78,107,108,129,152,277,376,382,409,499,544,690,704],$V1m,{304:4023,94:4025,116:$VDe,307:$V3m}),{108:[1,4193]},o([107,108,129,382,396,409,704],$V8m,{378:4042,377:4194,376:$Vam}),{108:[1,4195]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3462,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,497:4057,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},{108:[1,4196]},o($VQ8,$VR8,{954:1552,659:4163}),o($V2,$VGm,{222:4197,230:$VHm}),o($Vul,$VIm,{27:[1,4199]}),o($V2,$VGm,{222:4200,230:$VHm}),{27:[1,4202],229:$VJm},o($Vul,$Vvl,{224:3876,221:4203,228:$Vxl}),o($Vul,$Vvl,{224:3876,221:4204,228:$Vxl}),o($V2,$VGm,{222:4205,230:$VHm}),o($Vul,$VIm),{229:$VJm},o([27,228,230,544,690],[2,334]),o($V5k,[2,335]),o($V2,$VGm,{222:4206,230:$VHm}),o($V2,$VGm,{222:4207,230:$VHm}),o($V2,$VGm,{222:4208,230:$VHm}),o($V2,$VKm,{123:$V7f}),o($V2,[2,1105],{123:$V9f}),o($V2,[2,1106]),o($V2,$VLm,{123:$V7f}),o($V2,[2,1119],{123:$V9f}),o($V2,[2,1120]),o($VCf,[2,1843],{727:$VWh}),o($VCf,[2,1847],{727:$VWh}),o($VMm,$VNm,{583:4209,588:4210,594:4211,773:[1,4212]}),o($VAl,$VOm,{2:[1,4213],27:[1,4214]}),o($VPm,$VNm,{583:4215,588:4216,773:$VQm}),o($VRm,[2,2017]),o($VSm,$VTm,{889:4218,892:4219,893:$VEl}),o($VRm,[2,2020]),o($VGl,[2,2021]),o($VGl,[2,2022],{889:4220,893:$VJl}),o($VGl,[2,2025]),{27:[1,4222],79:[1,4221]},{27:[1,4224],79:[1,4223]},{27:[1,4226],79:[1,4225]},{27:[1,4227],582:4229,587:3906,593:4228,742:$VCl,756:$VDl,773:$VBl,887:3894,888:3895,889:3896,890:3897,891:3898,892:3899,893:$VEl},o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4230,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4231,773:$VQm}),o($VOl,$VOm),o($VOl,$VTm,{889:4218,893:$VJl}),{79:[1,4232]},{79:[1,4233]},{79:[1,4234]},{27:[1,4239],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4242,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4240,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:4241,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,880:4235,881:4236,882:4237,883:4238,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vck,[2,1995]),o($Vck,$V9k,{586:3492,581:4243,781:$Vdk}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4244,742:$VHl,756:$VIl,893:$VJl}),{582:4246,587:3906,593:4245,742:$VCl,756:$VDl,773:$VBl,887:3894,888:3895,889:3896,890:3897,891:3898,892:3899,893:$VEl},o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4247,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4248,773:$VQm}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4250,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,880:4249,882:4237,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{116:$Veg,990:4251,991:4252},o($V5i,[2,2457]),o($Vck,$V9k,{586:3492,581:4253,781:$Vdk}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4254,742:$VHl,756:$VIl,893:$VJl}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4255,742:$VHl,756:$VIl,893:$VJl}),{582:4257,587:3906,593:4256,742:$VCl,756:$VDl,773:$VBl,887:3894,888:3895,889:3896,890:3897,891:3898,892:3899,893:$VEl},o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4258,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4259,773:$VQm}),{116:$Vfg,990:4251},o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4260,742:$VHl,756:$VIl,893:$VJl}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4261,742:$VHl,756:$VIl,893:$VJl}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4262,742:$VHl,756:$VIl,893:$VJl}),{582:4264,587:3906,593:4263,742:$VCl,756:$VDl,773:$VBl,887:3894,888:3895,889:3896,890:3897,891:3898,892:3899,893:$VEl},o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4265,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4266,773:$VQm}),o($Vjk,$VUm,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($Vlk,[2,1985],{123:[1,4267]}),o($VVm,[2,1988],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),o($VVm,[2,1990],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:4268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($VLl,[2,1961]),o($VLl,[2,1962]),o($VEc,[2,1964]),{116:[1,4269]},o($VEc,[2,1966]),{116:[1,4270]},o($Vlk,[2,1983],{123:$Vmk}),o($Vlk,[2,1984],{123:$Vmk}),o($Vck,$V9k,{586:3492,581:4271,781:$Vdk}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4272,742:$VHl,756:$VIl,893:$VJl}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4273,742:$VHl,756:$VIl,893:$VJl}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4274,742:$VHl,756:$VIl,893:$VJl}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4275,742:$VHl,756:$VIl,893:$VJl}),{582:4277,587:3906,593:4276,742:$VCl,756:$VDl,773:$VBl,887:3894,888:3895,889:3896,890:3897,891:3898,892:3899,893:$VEl},o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4278,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4279,773:$VQm}),o($Vnk,$VUm,{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($VWm,$VNm,{583:4209,588:4216,773:$VQm}),o($V0g,$VXm,{902:1806,907:1807}),o($Vqd,[2,2101]),o($V2g,[2,2102],{902:1839}),o($Vuc,[2,2070]),o($Vuc,[2,2071]),o($VWf,$VYm,{902:1806,907:1807,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,772:$VWc,788:$VYc,789:$VZc}),o($VYf,[2,2130],{902:1839,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,788:$V8d,789:$V9d}),o($VZf,[2,2131],{902:1822,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,788:$V8d,789:$V9d}),o($VYf,[2,2129],{902:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),{27:[1,4281],534:$VZm,615:[1,4285],618:[1,4283],668:4280,670:4282},o($V2,[2,1221]),o($Vrk,[2,1226],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($V2,[2,1227]),o($Vqd,[2,2124]),o($Vqd,[2,2125]),o($VYf,[2,2128],{902:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),o($Vxi,[2,2787],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($VDi,[2,2180],{123:$V3k}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:4286,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,900:4287,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($VDi,[2,2184],{123:$V3k}),o($Vuc,[2,2400]),o($Vqd,[2,2402]),o($V4f,[2,2412]),o($V4f,$VVl,{999:3982,1000:3987,997:4288,787:$VWl,791:$VXl}),o($V4f,[2,2415]),o($V4f,[2,2417]),{27:[1,4289],735:[1,4290],1004:[1,4291]},o($V_m,[2,2434]),o($V_m,[2,2435]),o($Vqd,[2,2401]),{735:[1,4292],1004:[1,4293]},{2:$VYb,118:$VZb,121:4294},o($VEi,$V$m,{27:[1,4295],123:$Vzi}),o($VDi,[2,2409],{902:1822,88:$V_c,123:$Vs7,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d}),o($VDi,[2,2410]),{123:$VAi},o($VDi,$V$m,{123:$V3k}),o($Vuc,[2,2459]),o($Vqd,[2,2469]),o($Vqd,[2,2467]),o($Vqd,[2,2461]),o($Vqd,[2,2464]),o($Vuc,[2,2477]),o($Vqd,[2,2480]),o($Vqd,[2,2481]),o($Vqd,[2,2483]),o($Vqd,[2,2482]),o($Vqd,[2,2475]),o($Vqd,[2,2520]),o($Vqd,[2,2496]),{27:[1,4297],46:439,47:$Vg4,50:$Vh4,56:4296,58:$Vi4,59:4298,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,1239]),{46:1057,47:$Vg4,50:$Vh4,56:4299,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,4301],688:$V0n},o($V2,[2,1283]),{688:[1,4302]},o($V2,[2,1287],{227:[1,4303]}),{688:[1,4304]},{688:[1,4305]},o($VCg,[2,2722],{123:$VGg}),{27:$VIg,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1245,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:4307,556:4306,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,725:$VBa,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,928:1238,930:1239,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{2:$VJg,27:$V6,183:4308,810:$Vc4},o($V2,[2,407]),{385:[1,4309]},o($V1n,$V2n,{290:4310,298:4311,375:4312,161:[1,4314],376:[1,4313]}),o($V3n,$V2n,{375:4312,290:4315,376:$V4n}),o($V0m,[2,422]),o($V2m,[2,423]),o($V0m,[2,426]),{27:[1,4318],46:439,47:$Vg4,50:$Vh4,56:4317,58:$Vi4,59:4319,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2m,[2,428]),o($V2m,[2,424]),{46:1057,47:$Vg4,50:$Vh4,56:4317,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V4m,[2,401],{48:4320,116:$Vie}),o($V4m,[2,402]),{27:[1,4322],152:$Vv,195:4321,197:4323,215:720,509:721,546:280,547:$VR1,553:303},o($V2,[2,723]),o($V5m,[2,697]),o($VLk,$VLg,{276:2628,273:4324,277:$VZh}),o($V4f,[2,752],{123:[1,4325]}),{108:[1,4326]},{152:$VV6,195:4327,215:809,546:630,547:$V37},o($Vbj,$VLg,{276:2628,273:4328,277:$VZh}),o([27,107,108,129,409,704],$V5n,{388:4329,392:4330,389:4331,390:4332,393:4333,394:4334,382:[1,4335],396:[1,4336]}),o($V6n,$V5n,{389:4331,388:4337,390:4338,382:$V7n,396:$V8n}),o($V9n,[2,576]),{27:[1,4341],55:[1,4342]},o($V6n,$V5n,{389:4331,390:4338,388:4343,382:$V7n,396:$V8n}),{55:[1,4344]},{181:$VPk,466:4345,467:3676,468:$VQk,469:$VRk},o($Vbm,[2,742]),{27:[1,4347],125:4349,279:$VG8,280:$VH8,441:926,463:928,476:4346,482:4348,485:4350,816:927,817:929},o($V2,[2,763]),{125:4349,279:$VM8,280:$VN8,441:926,476:4351,816:927},{118:$Van,123:[1,4353]},{2:$VYb,118:$VZb,121:4354},o($Vbj,[2,791]),o($V4f,[2,793],{123:[1,4355]}),{125:4349,279:$VM8,280:$VN8,441:926,476:4356,816:927},{118:$Van,123:$Vbn},o($Vbj,[2,806]),o($V4f,[2,808],{123:[1,4358]}),o($V4f,[2,809],{123:$Vtl}),o($V2,[2,2681],{123:$Vih}),o($V2,[2,246],{68:3243,185:3699,161:$V_7}),o([27,118,123,544,690],$VDh,{327:4359,373:$VEh,374:$VFh}),o($VZk,[2,557]),{27:[1,4360],46:439,47:$Vg4,50:$Vh4,56:4362,58:$Vi4,59:4361,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($V2,[2,128]),o($V2,[2,266]),{27:[1,4363]},o([27,89,107,108,129,152,409,499,544,690,704],[2,630]),{116:$V0l,407:4364},{118:[1,4365],123:[1,4366]},o($Vaj,[2,1787]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:4367,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,838:2104},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,187:4368,189:2731,191:2733,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($Vcn,[2,584]),o($Vke,[2,589]),o($Vke,[2,590]),{118:$Vdn,123:[1,4370]},{2:$VYb,118:$VZb,121:4371},o($Vbj,[2,614]),o($V4f,[2,616],{123:[1,4372]}),o($VLk,$Ven,{404:4373,732:$Vfn,754:$Vgn}),o($Vbj,$Ven,{404:4376,732:$Vfn,754:$Vgn}),o($Vbj,$Ven,{404:4377,732:$Vfn,754:$Vgn}),o($Vke,[2,587]),{118:$Vdn,123:$Vhn},o($Vbj,$Ven,{404:4379,732:$Vfn,754:$Vgn}),{118:$Vin,123:$V9j},{2:$VYb,118:$VZb,121:4381},o($Vmh,[2,234],{123:$VHh}),o($Vmh,[2,238],{123:$VHh}),o($V3e,[2,180]),o($V2,[2,165]),o($Vgm,[2,446]),o($VVj,[2,452]),o($Vhm,$Vim,{325:4097,319:4382,176:$Vjm,177:$Vkm}),o($VVj,[2,455]),o($VGh,$Vxe,{326:4383,333:$Vye}),o($Vhm,[2,468]),o($Vhm,[2,469]),o($Vhm,$Vim,{325:4097,319:4384,176:$Vjm,177:$Vkm}),o($Vhm,$Vim,{325:4097,319:4385,176:$Vjm,177:$Vkm}),o($Vjn,[2,462]),{116:[1,4386]},{116:[1,4387]},{116:[1,4388]},o($Vjn,[2,466]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4389,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o($Vlm,[2,447]),o($Vlm,[2,448]),{118:[1,4390]},{118:[1,4391],123:[1,4392]},{349:[1,4393]},o($Vel,[2,488]),{2:$Vkn,349:$Vln,350:4394},{2:$Vkn,349:$Vln,350:4397},{123:[1,4398]},o($Vel,[2,492]),{2:$Vkn,349:$Vln,350:4399},{27:$V6,183:4400,810:$Vc4},{123:$Vmn,349:$Vnn},o($Vel,[2,498]),{2:$Vkn,349:$Vln,350:4403},o($Von,[2,500]),o($Vqc,[2,502],{357:4404,123:$Vpm}),{358:[1,4405]},{46:4406,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vqn,[2,1686]),{123:$Vrn,349:$Vsn},o($Vel,[2,515]),{2:$Vkn,349:$Vln,350:4410},o($Von,[2,517]),o($Vqc,[2,519],{357:4411,123:$Vpm}),{27:$V6,123:$Vpn,183:4412,314:4413,343:3325,344:3326,345:3327,346:3328,347:$Vtn,351:$Vun,352:$Vvn,359:$Vwn,810:$Vc4},o($Von,[2,526]),o($Von,[2,527]),o($Vil,[2,432]),o($Vll,[2,434]),o($Vll,[2,435]),o($V4f,[2,444],{123:[1,4418]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:4419,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:$Vxn,71:$Vkl,73:3781,363:4420,364:4422,365:3782,366:3783,367:3784},{71:$Vkl,73:4423,365:4424,366:3783,367:3784},{71:$V88,73:3781,363:4425,366:877},o([27,118,123,373,374],$Vxe,{326:4426,333:$Vye}),o([2,118,373,374],$Vxe,{326:4427,333:$Vye}),{27:[1,4428],104:4429,320:$VAe,323:$VBe,368:2171,371:$V6h},o($V4f,[2,443],{123:$Vwm}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:3818,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{116:$Vml,650:4430},{118:[1,4431],123:[1,4432]},o($Vaj,[2,2185]),o([27,107,108,129,152,208,277,446,499,544,547,646,690,704],$Vyn,{431:4433,436:4434,351:[1,4435]}),o($Vzn,$Vyn,{431:4436,351:$VAn}),{27:[1,4439],444:[1,4438]},o($Vzn,$Vyn,{431:4440,351:$VAn}),{444:[1,4441]},{27:[1,4443],79:[1,4442]},o($VBn,[2,669]),o([107,108,129,152,208,277,446,499,544,547,615,690,704],$Vyn,{431:4444,351:$VAn}),{79:[1,4445]},{27:[1,4447],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:4446,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,1204]),{118:[1,4448]},{2:$VYb,118:$VZb,121:4449},{2:$VYb,118:$VZb,121:4450},{118:$Vin,123:$Vih},{123:[1,4451]},{123:$VCn,349:$Vnn},{358:[1,4453]},{123:$VDn,349:$Vsn},{80:4455,116:$V2c},{71:$V88,73:3781,363:4456,366:877},{71:$V88,73:4423,366:877},{2:$VEn,27:$V1e,46:4458,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:1759,833:4459},o($VFe,[2,952]),o($Vj8,[2,2525]),o($Vj8,[2,2527]),o($VFe,$VFn,{123:[1,4460]}),o($Vj8,[2,2524]),{2:$VEn,46:4178,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($VGn,$VHn,{952:4461,953:4462,55:[1,4463]}),o($VI8,[2,2314]),{55:[1,4465],118:$VHn,952:4464},o($V2,$VKm,{123:$VTh}),o($V2,$VLm,{123:$VTh}),o($V0g,$VXm,{902:1806}),o($VWf,$VYm,{902:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,772:$Vsf,788:$V8d,789:$V9d}),{534:$VZm,615:[1,4467],618:[1,4466],668:4280},{46:1057,47:$Vg4,50:$Vh4,56:4468,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{688:$V0n},o($VIn,$VDh,{327:4469,373:$VEh,374:$VFh}),o([78,107,108,129,152,382,409,499,544,690,704],$V2n,{375:4312,290:4470,376:$V4n}),{152:$VV6,195:4321,215:809,546:630,547:$V37},o([107,108,129,409,704],$V5n,{389:4331,390:4338,388:4471,382:$V7n,396:$V8n}),{125:4349,279:$VM8,280:$VN8,441:926,476:4472,816:927},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:4446,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($V2,[2,316]),o($V2,[2,341]),o($V2,$VGm,{222:4473,230:$VHm}),o($V2,[2,331]),o([27,230,544,690],[2,338]),o($Vul,[2,339]),o($V2,$VGm,{222:4474,230:$VHm}),o($V2,$VGm,{222:4475,230:$VHm}),o($V2,[2,330]),o($V2,[2,329]),o($V2,[2,328]),o($V2,[2,327]),o($VWm,[2,1946]),o($VMm,$VJn,{2:[1,4476],27:[1,4477]}),o($VPm,[2,1004]),{27:$VKn,385:$Vz9,541:4478,723:$VLn,727:$VA9,801:$VB9,925:1089,926:1090},{27:[1,4481]},o($VPm,$VNm,{588:4216,583:4482,773:$VQm}),o($VPm,[2,1003]),o($VWm,$VJn),{385:$Vz9,541:4478,723:$VLn,727:$VA9,801:$VB9,925:1089,926:1090},o($VRm,[2,2019]),o($VGl,[2,2023]),o($VGl,[2,2024]),{27:[1,4484],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1583,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,835:4483,836:4485},o($VGl,[2,2027]),{27:[1,4487],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1583,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,835:4486,836:4488},o($Vdf,[2,2031]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4493,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:4494,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4495,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4,894:4489,895:4490,896:4491,897:4492},o($VGl,[2,2035]),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4496,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4497,773:$VQm}),{594:4498,773:$VMn},o($VPm,$VNm,{588:4216,583:4500,773:$VQm}),o($VPm,[2,1002]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,835:4501},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,835:4502},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4493,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,894:4503,896:4491},o([2,27,118,499,544,615,690,742,756,773,787,791,800,893],$VNn,{123:[1,4504]}),o($Vck,[2,1994]),o($VOn,[2,1996]),o($Vck,[2,1998]),o([2,118,544,568,569,570,571,572,573,574,575,615,690,732,742,754,756,773,778,800,893],$Vs7,{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,902:1822,324:4250,882:4505,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,725:$V5d,726:$V9c,727:$VA9,730:$Vac,731:$V6d,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,780:$V7d,784:$Vda,785:$Vea,788:$V8d,789:$V9d,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o([2,27,118,123,499,544,615,690,742,756,773,778,787,791,800,893],$Ven,{902:1806,907:1807,404:4506,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,732:$Vfn,735:$VVc,754:$Vgn,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($VPn,$Ven,{902:1839,404:4507,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,732:$Vfn,735:$Vkd,754:$Vgn,780:$Vld,788:$V8d,789:$V9d}),o($VPn,$Ven,{404:4508,732:$Vfn,754:$Vgn}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4509,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4510,773:$VQm}),o($VPm,$VNm,{588:4216,583:4511,773:$VQm}),{594:4512,773:$VMn},o($VPm,$VNm,{588:4216,583:4513,773:$VQm}),o($VPm,[2,1001]),o([2,118,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,787,791,800,893],$VNn,{123:$VQn}),o([2,118,123,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,778,787,791,800,893],$Ven,{902:1806,404:4515,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,732:$Vfn,735:$Vrf,754:$Vgn,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o([2,27,118,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,781,800,893],[2,2456]),o($V5i,[2,2458]),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4516,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4517,773:$VQm}),o($VPm,$VNm,{588:4216,583:4518,773:$VQm}),o($VPm,$VNm,{588:4216,583:4519,773:$VQm}),{594:4520,773:$VMn},o($VPm,$VNm,{588:4216,583:4521,773:$VQm}),o($VPm,[2,1000]),o($VPm,$VNm,{588:4216,583:4522,773:$VQm}),o($VPm,$VNm,{588:4216,583:4523,773:$VQm}),o($VPm,$VNm,{588:4216,583:4524,773:$VQm}),o($VPm,$VNm,{588:4216,583:4525,773:$VQm}),{594:4526,773:$VMn},o($VPm,$VNm,{588:4216,583:4527,773:$VQm}),o($VPm,[2,999]),o($Vlk,[2,1986],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,324:3011,870:4528,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($VVm,[2,1989],{902:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d}),o($Vaj,$VRn,{270:442,693:446,140:1172,172:1180,46:1187,842:2737,843:2738,876:4529,877:4530,191:4531,878:4533,183:4534,192:4535,27:$V6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VSn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4}),o($Vaj,$VRn,{270:442,693:446,140:1172,46:1632,842:1916,191:4531,876:4536,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VGl,$VBl,{887:3894,889:3896,587:3906,888:3907,582:4538,742:$VHl,756:$VIl,893:$VJl}),o($VPm,$VNm,{588:4216,583:4539,773:$VQm}),o($VPm,$VNm,{588:4216,583:4540,773:$VQm}),o($VPm,$VNm,{588:4216,583:4541,773:$VQm}),o($VPm,$VNm,{588:4216,583:4542,773:$VQm}),o($VPm,$VNm,{588:4216,583:4543,773:$VQm}),{594:4544,773:$VMn},o($VPm,$VNm,{588:4216,583:4545,773:$VQm}),o($VPm,[2,998]),o($VUn,[2,1219]),o($V2,[2,1223]),o($V2,[2,1224]),{26:[1,4546],27:[1,4547]},o($VUn,[2,1229]),{27:[1,4549],637:$VVn},o($VDi,[2,2177],{123:$V3k}),o($VDi,[2,2179],{123:$V3k}),o($V4f,[2,2414]),o($V4f,[2,2420]),o($VWn,$VXn,{1001:4550}),o($VWn,$VXn,{1001:4551}),o($VYn,$VXn,{1001:4552}),o($VYn,$VXn,{1001:4553}),o($Vqd,[2,2403]),o($V4f,$Vvk,{586:3585,993:4554,123:$Vuk,781:$Vdk}),o([27,418,544,690],$V3b,{68:1355,102:1356,57:4555,60:4556,161:$V4b}),o($V2,[2,1240]),o($VZn,$V3b,{68:1355,57:4557,161:$V_7}),o($VZn,$V3b,{68:1355,57:4558,161:$V_7}),{116:[1,4559]},o($V2,[2,1284]),{116:[1,4560]},{688:[1,4561]},{116:[1,4562]},{116:[1,4563]},{535:[2,939]},{27:$VTi,123:$VQf},{535:[2,942]},o($V2,[2,815]),o($Vcn,$V_n,{291:4564,105:4565,77:4566,382:$V38}),o($Vke,$V_n,{77:4566,291:4567,382:$Ve8}),o($V1n,[2,567]),{27:[1,4568],79:[1,4569],116:[1,4571],155:4570},{27:[1,4572],79:[1,4573]},o($Vke,$V_n,{77:4566,291:4574,382:$Ve8}),{79:[1,4575]},o($V0m,[2,427]),o($V2m,[2,429]),o($V2m,[2,430]),o($V4m,[2,400]),o($V2,[2,718]),o($V2,[2,724]),o($V2,[2,725]),o($Vaj,$V$n,{27:[1,4576]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:3185,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,471:4577,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},{152:$VV6,195:4578,215:809,546:630,547:$V37},o($V2,[2,726]),o($Vbj,$V$n),o([27,107,108,129,704],$V0o,{293:4579,300:4580,408:4581,409:$V1o}),o($V2o,$V0o,{408:4581,293:4583,409:$V3o}),o($V4o,[2,593]),{27:[1,4586],391:4585,395:4587,397:[1,4588]},o($V6n,[2,595]),o($V6n,[2,596]),{27:[1,4590],55:[1,4589]},{27:[1,4592],55:[1,4591]},o($V2o,$V0o,{408:4581,293:4593,409:$V3o}),{391:4585,397:[1,4594]},{55:[1,4595]},{55:[1,4596]},o($V9m,[2,578]),{80:4598,110:4597,116:$V99},o($V2o,$V0o,{408:4581,293:4599,409:$V3o}),{80:4598,116:$V2c},o($Vbm,[2,741]),o($V5o,$V6o,{477:4600,483:4601,152:[1,4602]}),o($V2,[2,764]),o($V7o,$V6o,{477:4603,152:$V8o}),o([27,107,129,152,277,409,487,488,544,690,704],[2,776]),o([107,129,152,277,409,487,488,544,690,704],[2,777]),o($V7o,$V6o,{477:4605,152:$V8o}),o($VHk,[2,789]),{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4607,191:4606,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4,842:1916},o($V9o,[2,790]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4053,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,489:4608,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($V7o,$V6o,{477:4609,152:$V8o}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4606,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3462,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,495:4610,497:3206,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6},o($VIn,$Vao,{27:[1,4611]}),o($VZk,[2,558]),o($VZk,[2,559]),{80:4455,110:4612,116:$V99},o($V2,[2,267]),o($Vaj,[2,632]),o($Vaj,[2,1786]),{279:$VM8,280:$VN8,285:4613,385:$Vz9,441:1184,541:1170,727:$VA9,761:$V7a,799:$Via,801:$VB9,816:1185,921:1153,923:1171,925:1089,926:1090,927:1186},o($V4f,[2,1806],{123:$Vih}),o($V4f,[2,256],{123:$VTj}),o($Vem,[2,612]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4081,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:4082,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4083,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,402:4614,403:4615,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4},o($Vfh,[2,613]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4086,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,400:4616,402:4079,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vaj,$Vbo,{27:[1,4617]}),o($Vco,[2,2008]),o($Vco,[2,2009]),o($Vbj,[2,622]),o($Vbj,[2,623]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4086,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,402:4614,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vbj,$Vbo),o($Vaj,[2,199]),o($V4f,[2,201]),o($VVj,[2,453]),o($VVj,$VDh,{327:4618,373:$VEh,374:$VFh}),o($VVj,[2,456]),o($VVj,[2,458]),{118:[1,4619]},{118:[1,4620]},{118:[1,4621]},{88:$Vgf,118:[1,4622],126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},o($Vel,[2,1875]),o($Vel,[2,1877]),{385:[1,4623]},o($Vel,[2,487]),o($Vfl,[2,489]),o($Vfl,[2,528]),o($Vfl,[2,529]),o($Vfl,[2,490]),{27:$V6,183:4626,312:4624,314:4625,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},o($Vfl,[2,494]),{2:$Vkn,349:$Vln,350:4627},o($Vel,[2,497]),{46:4125,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpm,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,355:4628,356:4629,357:4126,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vfl,[2,499]),o($Vqc,[2,503],{270:442,693:446,355:4123,46:4169,353:4630,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{27:$V6,183:4632,312:4631,314:4633,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},{358:[1,4634]},o($Vqn,[2,1687]),o($Vel,[2,514]),{27:$V6,123:$Vpm,183:4134,312:4635,314:4135,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,357:4133,359:$Vsj,362:4636,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},o($Vfl,[2,516]),o($Vqc,[2,520],{334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,312:4131,360:4637,123:$Vpn,347:$VWj,351:$VXj,352:$VYj,359:$VZj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj}),o($Von,[2,524]),o($Von,[2,525]),{348:[1,4638]},{348:[1,4639]},{348:[1,4640]},{348:[1,4641]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:4642,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V4f,[2,441],{123:$Vwm}),{118:$Vdo,123:$Vvm},o($V4f,[2,534]),o($V4f,[2,536]),o($Vbj,[2,539]),o($V4f,[2,541]),o($V4f,[2,537],{123:$VCm}),o($VLk,$VDh,{327:4643,373:$VEh,374:$VFh}),o($V4f,$VDh,{327:4644,373:$VEh,374:$VFh}),o($Veo,[2,548]),o($Veo,[2,549]),o($Vym,[2,1175]),o($Vym,[2,1176]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,816:1185,842:1626,898:4645,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o([27,107,108,129,152,208,277,499,544,547,646,690,704],$Vfo,{432:4646,437:4647,446:[1,4648]}),o($Vgo,$Vfo,{432:4649,446:$Vho}),{27:[1,4652],445:[1,4651]},o($Vgo,$Vfo,{432:4653,446:$Vho}),{445:[1,4654]},{27:[1,4656],440:[1,4655]},o($VAm,[2,674]),o($Vgo,$Vfo,{432:4657,446:$Vho}),{440:[1,4658]},{279:$VM8,441:4659},o($VBn,[2,670]),o([107,108,129,152,208,277,499,544,547,615,690,704],$Vfo,{432:4660,446:$Vho}),{279:$VM8,441:4661},o([27,55],[2,1195]),o($V2,[2,1205]),o($VHk,[2,1206]),o($V2,[2,1208]),o($V2,[2,1209]),{312:4624,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{46:4169,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,355:4628,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{312:4662,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{312:4635,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},o($VIh,[2,554]),{118:$Vdo,123:$VCm},o($VFe,[2,948]),o($Vg8,$VFn,{123:[1,4663]}),o($Vj8,[2,2534]),{46:4664,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:[1,4666],118:$Vio},{2:$VYb,118:$VZb,121:4667},{27:[1,4669],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4668,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:4670,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,816:1185,817:1192,842:1154,843:1165,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},{118:$Vio},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4671,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},{26:[1,4672]},{637:$VVn},o($VZn,$V3b,{68:1355,57:4673,161:$V_7}),o($VIn,$Vao),o([78,107,108,129,152,409,499,544,690,704],$V_n,{77:4566,291:4674,382:$Ve8}),o([107,108,129,704],$V0o,{408:4581,293:4675,409:$V3o}),o($V7o,$V6o,{477:4676,152:$V8o}),o($V2,[2,325]),o($V2,[2,323]),o($V2,[2,324]),{27:[1,4677]},o($VPm,[2,1011]),o($Vjo,[2,2048],{123:[1,4678]}),o($Vjo,[2,2050],{123:[1,4679]}),o($VPm,[2,2052]),o($VPm,$VNm,{588:4216,583:4680,773:$VQm}),o($VPm,[2,1010]),o($VSm,$Vko,{123:$Vcf}),o($VGl,[2,2028]),o($VGl,[2,2029]),o([2,27,118,499,544,615,690,773,800,893],$Vlo,{123:$Vcf}),o($Vdf,[2,2032]),o($Vdf,[2,2033]),o($VSm,$Vmo,{123:[1,4681]}),o($VGl,[2,2036]),o($Vno,[2,2037]),o($VGl,[2,2039],{123:[1,4682]}),o($Vno,$Ven,{404:4683,732:$Vfn,754:$Vgn}),o($Voo,$Ven,{404:4684,732:$Vfn,754:$Vgn}),o($Voo,$Ven,{404:4685,732:$Vfn,754:$Vgn}),o($VPm,$VNm,{588:4216,583:4686,773:$VQm}),o($VPm,[2,996]),o($VPm,[2,997]),{27:$VKn},o($VPm,[2,1009]),o($VOl,$Vko,{123:$VVh}),o([2,118,499,544,568,569,570,571,572,573,574,575,615,690,773,800,893],$Vlo,{123:$VVh}),o($VOl,$Vmo,{123:$Vpo}),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4242,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4240,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:4241,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$VV9,726:$VW9,727:$VA9,730:$VX9,733:$VY9,734:$VN6,737:$VZ9,739:$V_9,740:$V$9,743:$V0a,744:$V1a,746:$V2a,747:$V3a,748:$V4a,749:$V5a,760:$V6a,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vha,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vma,810:$Vc4,816:1185,817:1192,842:1154,843:1165,882:4688,883:4689,898:1136,904:1144,911:1146,913:1147,914:1148,915:1150,916:1151,918:1152,921:1153,922:1164,923:1171,924:1179,925:1089,926:1090,927:1186,971:1160,973:1161,975:1162,976:1163,977:1166,979:1167,981:1168,982:1169,984:1173,985:1174,986:1175,987:1181,988:1182,989:1183,1010:$Vna,1012:1190},o($Vck,[2,1999]),o([2,27,118,123,499,544,615,690,742,756,773,787,791,800,893],$Vqo,{884:4690,885:4691,886:4692,778:[1,4693]}),o($Vro,$Vqo,{886:4692,884:4694,778:$Vso}),o($Vro,$Vqo,{886:4692,884:4696,778:$Vso}),o($VPm,$VNm,{588:4216,583:4697,773:$VQm}),o($VPm,[2,993]),o($VPm,[2,994]),o($VPm,[2,995]),o($VPm,[2,1008]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4250,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,816:1185,842:1626,882:4688,898:1136,911:1624,913:1625,914:1148,921:1153,923:1171,925:1089,926:1090,927:1186,971:1627,973:1628,975:1162,976:1163,984:1173,985:1174,986:1175,1010:$Vhc,1012:1635},o([2,118,123,499,544,568,569,570,571,572,573,574,575,615,690,742,756,773,787,791,800,893],$Vqo,{884:4690,886:4692,778:$Vso}),o($VPm,$VNm,{588:4216,583:4698,773:$VQm}),o($VPm,[2,989]),o($VPm,[2,990]),o($VPm,[2,991]),o($VPm,[2,992]),o($VPm,[2,1007]),o($VPm,[2,984]),o($VPm,[2,985]),o($VPm,[2,986]),o($VPm,[2,987]),o($VPm,[2,988]),o($VPm,[2,1006]),o($Vlk,[2,1987],{123:$Vmk}),{118:$Vto,123:$Vuo},{2:$VYb,118:$VZb,121:4701},o($Vbj,[2,1969]),o($Vaj,$VRn,{270:442,693:446,140:1172,172:1180,46:1187,842:2737,843:2738,191:4531,878:4533,183:4534,192:4535,876:4702,877:4703,27:$V6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VSn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4}),o($V4f,[2,1972],{123:[1,4704]}),o($Vbj,[2,1977]),o($Vbj,[2,1978]),{118:$Vto,123:$Vvo},o($Vaj,$VRn,{270:442,693:446,140:1172,46:1632,842:1916,191:4531,876:4706,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($VPm,$VNm,{588:4216,583:4707,773:$VQm}),o($VPm,[2,978]),o($VPm,[2,979]),o($VPm,[2,980]),o($VPm,[2,981]),o($VPm,[2,982]),o($VPm,[2,983]),o($VPm,[2,1005]),{27:$VBd,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,671:4708,672:4709,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:1911,1062:1912,1063:1913},o($V2,[2,1231]),{116:$Vml,638:4710,650:3789},o($V2,[2,1233]),o($Vwo,$Vxo,{1002:4711,1005:4712,1009:4713,385:$Vyo,751:$Vzo,1004:$VAo}),o($Vwo,$Vxo,{1009:4713,1002:4717,1005:4718,385:$Vyo,751:$Vzo,1004:$VAo}),o($VBo,$Vxo,{1002:4719,1009:4720,385:$Vyo,751:$VCo,1004:$VAo}),o($VBo,$Vxo,{1009:4720,1002:4722,385:$Vyo,751:$VCo,1004:$VAo}),{2:$VYb,118:$VZb,121:4723},o($V3e,$VDo,{678:4724,679:4725,680:4726,418:[1,4727]}),o($V2,$VDo,{680:4726,678:4728,418:$VEo}),o($V2,$VDo,{680:4726,678:4730,418:$VEo}),o($V2,$VDo,{680:4726,678:4731,418:$VEo}),{125:4732,279:$VM8,280:$VN8,441:926,816:927},{125:4733,279:$VM8,280:$VN8,441:926,816:927},{116:[1,4734]},{125:4735,279:$VM8,280:$VN8,441:926,816:927},{125:4736,279:$VM8,280:$VN8,441:926,816:927},o($VFo,$VGo,{292:4737,299:4738,405:4739,78:[1,4740]}),o($VHo,$VGo,{405:4739,292:4741,78:$VIo}),o($Vcn,[2,583]),o($VHo,$VGo,{405:4739,292:4743,78:$VIo}),o($V3n,[2,569],{94:4744,116:$VDe}),{94:4746,116:$Vqe,155:4745},o($V3n,[2,572]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:2790,144:2791,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:4747,310:2789,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($V3n,[2,573]),{27:[1,4748]},o($VHo,$VGo,{405:4739,292:4749,78:$VIo}),{94:4746,116:$VDe},o($V4f,[2,754],{123:[1,4750]}),o($V4f,[2,753],{123:$VMk}),o($V2,[2,720]),o([27,108,129,704],$VJo,{294:4751,301:4752,413:4753,415:4755,414:4756,107:$VKo}),o($VLo,$VJo,{413:4753,414:4756,294:4757,107:$VMo}),o($VNo,[2,634]),{27:[1,4759],410:[1,4760]},o($VLo,$VJo,{413:4753,414:4756,294:4761,107:$VMo}),{410:[1,4762]},o($V4o,[2,594]),o($V6n,[2,597]),o($V6n,[2,598]),{27:[1,4764],55:[1,4763]},{80:4765,110:4766,116:$V99},o($V6n,[2,600]),{80:4767,110:4768,116:$V99},o($V6n,[2,603]),o($VLo,$VJo,{413:4753,414:4756,294:4769,107:$VMo}),{55:[1,4770]},{80:4765,116:$V2c},{80:4767,116:$V2c},o($V9m,[2,579]),o($V9n,[2,577]),o($VLo,$VJo,{413:4753,414:4756,294:4771,107:$VMo}),o($VOo,$VPo,{478:4772,487:$VQo}),o($VRo,$VPo,{478:4774,487:$VQo}),{27:[1,4776],486:[1,4775]},o($VRo,$VPo,{478:4777,487:$VQo}),{486:[1,4778]},o($VRo,$VPo,{478:4779,487:$VQo}),o($Vbj,[2,792]),o($V4f,[2,794],{123:[1,4780]}),o($V4f,[2,795],{123:$Vbn}),o($VRo,$VPo,{478:4781,487:$VQo}),o($V4f,[2,810],{123:$Vtl}),o($Vjh,[2,553]),o($VZk,[2,560]),o($Vaj,[2,1788]),o($Vbj,[2,615]),o($V4f,[2,618],{123:[1,4782]}),o($V4f,[2,617],{123:$Vhn}),o($Vbj,[2,621]),o($VVj,[2,461]),o($Vjn,[2,463]),o($Vjn,[2,464]),o($Vjn,[2,465]),o($Vhm,$Vim,{325:4097,319:4783,176:$Vjm,177:$Vkm}),{118:[1,4784]},{349:[1,4785]},{2:$Vkn,349:$Vln,350:4786},{2:$Vkn,349:$Vln,350:4787},o($Vfl,[2,496]),o($Von,[2,501]),o($Vqc,[2,505],{357:4788,123:$Vpm}),o($Vqc,[2,504],{123:$VCn}),o([123,349],$VLg,{276:2628,273:4789,27:[1,4790],277:$VZh}),o($Von,[2,512]),o($Von,[2,513]),{27:$V6,183:4792,312:4791,314:4793,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},o($Von,[2,518]),o($Vqc,[2,521],{357:4794,123:$Vpm}),o($Vqc,[2,522],{123:$VDn}),{27:$V6,183:4114,314:4115,343:3325,344:3326,345:3327,346:3328,347:$Vtn,351:$Vun,352:$Vvn,359:$Vwn,810:$Vc4},{27:$V6,123:$Vnm,183:4118,334:4795,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},{46:4125,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpm,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,353:4796,354:4122,355:4123,356:4124,357:4126,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},{27:$V6,123:$Vpm,183:4134,312:4131,314:4135,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,357:4133,359:$Vsj,360:4797,361:4130,362:4132,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj,810:$Vc4},o($V4f,[2,445],{123:$Vwm}),o($Vaj,$VUj,{27:[1,4798]}),o($V4f,[2,543]),o($Vaj,[2,2186]),o([27,107,108,129,152,277,499,544,547,646,690,704],$VSo,{433:4799,438:4800,208:[1,4801]}),o($VTo,$VSo,{433:4802,208:$VUo}),{27:[1,4805],440:[1,4804]},o($VTo,$VSo,{433:4806,208:$VUo}),{440:[1,4807]},{27:[1,4809],440:[1,4808]},o($Vzn,[2,679]),o($VTo,$VSo,{433:4810,208:$VUo}),{440:[1,4811]},{27:[1,4813],79:$VVo},o($VAm,[2,675]),o($VTo,$VSo,{433:4814,208:$VUo}),{79:$VVo},o($Vnl,$VWo,{442:[1,4815]}),o([107,108,129,152,277,499,544,547,615,690,704],$VSo,{433:4799,208:$VUo}),o($Vpl,$VWo,{442:[1,4816]}),o($Von,$VLg,{276:2628,273:4789,277:$VZh}),{27:$V6,46:4664,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,810:$Vc4,831:4817,832:2414},o($VFe,[2,2533]),o($VO8,[2,2308]),{2:$VYb,118:$VZb,121:4818},o($VI8,[2,2316]),o($VGn,$VXo,{902:1806,907:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,725:$VSc,726:$VTc,731:$VUc,735:$VVc,772:$VWc,780:$VXc,788:$VYc,789:$VZc}),o($V4f,[2,2320],{902:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,725:$V5d,731:$V6d,780:$V7d,788:$V8d,789:$V9d}),o($V4f,[2,2321],{902:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,725:$Vhd,726:$Vid,731:$Vjd,735:$Vkd,780:$Vld,788:$V8d,789:$V9d}),{88:$Vgf,118:$VXo,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,725:$Vof,726:$Vpf,731:$Vqf,735:$Vrf,772:$Vsf,780:$Vtf,788:$V8d,789:$V9d,902:1806},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,671:4819,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916,1061:1911,1063:1918},o($V2,$VDo,{680:4726,678:4820,418:$VEo}),o([107,108,129,152,409,499,544,690,704],$VGo,{405:4739,292:4821,78:$VIo}),o([108,129,704],$VJo,{413:4753,414:4756,294:4822,107:$VMo}),o($VRo,$VPo,{478:4823,487:$VQo}),o($VPm,[2,977]),{385:$Vz9,541:4824,727:$VA9,801:$VB9,925:1089,926:1090},{723:[1,4825]},o($VPm,[2,976]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4493,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:4494,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4495,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4,896:4826,897:4827},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4493,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,894:4828,896:4491},o($Vno,[2,2043]),o($Voo,[2,2044]),o($Voo,[2,2045]),o($VPm,[2,975]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4493,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,896:4826},o($VOn,[2,1997]),o($Vck,[2,2000],{123:[1,4829]}),o($VOn,[2,2003]),o($Vro,[2,2006]),o($VOn,[2,2011]),{27:[1,4830],175:$VYo,703:$VZo},o($Vro,[2,2004]),{175:$VYo,703:$VZo},o($Vro,[2,2005]),o($VPm,[2,974]),o($VPm,[2,973]),o($VLl,[2,1965]),o($Vaj,$VRn,{270:442,693:446,140:1172,172:1180,46:1187,842:2737,843:2738,191:4531,183:4534,192:4535,876:4833,878:4834,27:$V6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,810:$Vc4}),o($VEc,[2,1967]),{118:$V_o,123:$Vuo},{2:$VYb,118:$VZb,121:4836},o($Vbj,$VRn,{270:442,693:446,140:1172,46:1632,842:1916,191:4531,876:4837,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($Vbj,$VRn,{270:442,693:446,140:1172,46:1632,842:1916,191:4531,876:4833,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),{118:$V_o,123:$Vvo},o($VPm,[2,972]),o($VUn,$V$o,{123:$Vyg}),o($V2,[2,1232]),o($VUn,[2,1230],{123:$Vxm}),o($VGn,$V0p,{1003:4838,1006:4839,150:[1,4840]}),o($V4f,$V0p,{1003:4841,150:$V1p}),{27:[1,4844],786:$V2p},{27:[1,4846],409:$V3p},o($V4p,[2,2447]),o($V4p,[2,2448]),{27:[1,4847],118:$V0p,150:$V1p,1003:4848},o($V4f,[2,2425]),o($V4f,$V0p,{1003:4849,150:$V1p}),{786:$V2p},{409:$V3p},o($V4f,$V0p,{1003:4848,150:$V1p}),o($Vqd,[2,2404]),o($V2,$V5p,{27:[1,4850]}),o($V2,[2,1244]),o($V3e,[2,1251]),{125:4851,279:$VM8,280:$VN8,441:926,816:927},o($V2,[2,1243]),{125:4852,279:$VM8,280:$VN8,441:926,816:927},o($V2,[2,1241]),o($V2,[2,1245]),{118:[1,4853]},{118:[1,4854]},{125:4855,279:$VM8,280:$VN8,441:926,816:927},{118:[1,4856]},{118:[1,4857]},o([27,107,108,129,152,499,544,690,704],$V0o,{408:4581,293:4858,300:4859,409:$V1o}),o($V6p,$V0o,{408:4581,293:4860,409:$V3o}),o($VFo,[2,625]),{27:[1,4861],79:[1,4862]},o($V6p,$V0o,{408:4581,293:4863,409:$V3o}),{79:[1,4864]},o($V6p,$V0o,{408:4581,293:4865,409:$V3o}),o($V3n,[2,570]),o($V3n,[2,571]),o($V1n,[2,568]),{123:[1,4866]},o($V3n,[2,574]),o($V6p,$V0o,{408:4581,293:4867,409:$V3o}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:3185,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,471:4868,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($VZi,$V4h,{49:2709,69:4869,52:4870,704:$Vbb}),o($V_i,$V4h,{49:2709,69:4871,704:$Vrb}),o($V7p,[2,640]),{27:[1,4872],79:$V8p,108:[1,4874]},o($V9p,[2,644]),o($V7p,[2,641]),o($V_i,$V4h,{49:2709,69:4875,704:$Vrb}),{79:$V8p,108:$VQj},o($Vap,[2,636]),{27:[1,4876],130:$Vbp,411:4878,412:4877,426:4880,427:4879,428:$VRj},o($V_i,$V4h,{49:2709,69:4882,704:$Vrb}),{130:$Vbp,411:4878,426:4880,428:$VSj},{80:4883,110:4884,116:$V99},o($V6n,[2,606]),o($V4o,[2,599]),o($V6n,[2,601]),o([27,397],[2,602]),o($V6n,[2,604]),o($V_i,$V4h,{49:2709,69:4885,704:$Vrb}),{80:4883,116:$V2c},o($V_i,$V4h,{49:2709,69:4886,704:$Vrb}),o($Vcp,$Vdp,{479:4887,484:4888,488:[1,4889]}),{48:4890,116:$Vie},o($Vep,$Vdp,{479:4891,488:$Vfp}),{27:[1,4894],58:$Vgp},o($V7o,[2,780]),o($Vep,$Vdp,{479:4895,488:$Vfp}),{58:$Vgp},o($Vep,$Vdp,{479:4896,488:$Vfp}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4053,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,489:4897,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,842:1916},o($Vep,$Vdp,{479:4898,488:$Vfp}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4086,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,400:4899,402:4079,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($VVj,[2,459]),o($Vel,[2,1878]),o($Vel,[2,491]),o($Vfl,[2,493]),o($Vfl,[2,495]),{46:4169,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,353:4900,355:4123,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Von,[2,507]),o($Von,[2,511]),{27:[1,4901]},o($Von,[2,509]),o($Von,[2,510]),{123:$Vpn,312:4131,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,360:4902,700:$Vtj,715:$Vuj,717:$Vvj,736:$Vwj,737:$Vxj,738:$Vyj,741:$Vzj,752:$VAj,753:$VBj,757:$VCj,762:$VDj,770:$VEj,771:$VFj,793:$VGj,798:$VHj,804:$VIj},{123:[1,4903]},{123:$Vmn},{123:$Vrn},o($V4f,[2,544]),o($Vhp,[2,660]),o($VTo,[2,665]),{27:[1,4905],447:[1,4904]},o($VTo,[2,664]),{447:[1,4906]},{27:[1,4908],79:$Vip},o($Vgo,[2,684]),o($VTo,[2,663]),{79:$Vip},{27:[1,4910],79:$Vjp},o($Vzn,[2,680]),o($VTo,[2,662]),{79:$Vjp},{279:$VM8,441:4911},o($VAm,[2,676]),o($VTo,[2,661]),{27:[1,4913],79:$Vkp},{79:$Vkp},o($Vj8,[2,2535]),o($VI8,[2,2315]),o([544,663,690],$V$o,{123:$VGg}),o($V2,$V5p),o([107,108,129,152,499,544,690,704],$V0o,{408:4581,293:4914,409:$V3o}),o($V$i,$V4h,{49:2709,69:4915,704:$Vrb}),o($Vep,$Vdp,{479:4916,488:$Vfp}),o($Vjo,[2,2049]),o($Vjo,[2,2051]),o($Vno,[2,2038]),o($VGl,[2,2041],{123:[1,4917]}),o($VGl,[2,2040],{123:$Vpo}),o($Vck,[2,2001],{270:442,693:446,925:1089,926:1090,898:1136,285:1145,914:1148,921:1153,975:1162,976:1163,541:1170,923:1171,140:1172,984:1173,985:1174,986:1175,441:1184,816:1185,927:1186,911:1624,913:1625,842:1626,971:1627,973:1628,46:1632,1012:1635,882:4237,324:4250,880:4918,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,724:$V8c,726:$V9c,727:$VA9,730:$Vac,733:$VY9,734:$VN6,737:$VZ9,739:$Vbc,740:$Vcc,743:$V0a,744:$V1a,746:$V2a,747:$Vdc,748:$V4a,749:$V5a,760:$Vec,761:$V7a,767:$V8a,768:$V9a,774:$Vaa,775:$Vba,777:$Vca,784:$Vda,785:$Vea,794:$Vfa,795:$Vga,796:$Vfc,799:$Via,801:$VB9,802:$Vja,803:$Vka,805:$Vla,809:$Vgc,1010:$Vhc}),o($Vro,[2,2014]),o($VOn,[2,2012]),o($VOn,[2,2013]),o($Vbj,[2,1970]),o($V4f,[2,1974],{123:[1,4919]}),o($Vbj,[2,1971]),o($V4f,[2,1976]),o($V4f,[2,1973],{123:$Vvo}),{27:[1,4920],118:$Vlp},o($V4f,[2,2423]),{27:[1,4923],385:$Vyo,751:[1,4921],1004:$VAo,1009:4922},o($V4f,[2,2422]),{385:$Vyo,751:[1,4924],1004:$VAo,1009:4925},o($Vmp,[2,2437]),o($VBo,[2,2439]),o($Vmp,[2,2438]),o($VBo,[2,2440]),o($V4f,[2,2424]),o($V4f,[2,2419]),o($V4f,$Vlp),o($V2,[2,1242]),{27:[1,4926],130:$Vnp},{130:$Vnp},o($V2,[2,1276]),o($V2,[2,1291]),{118:[1,4928]},o($V2,[2,1290]),o($V2,[2,1286]),o([27,108,129,152,499,544,690,704],$VJo,{413:4753,415:4755,414:4756,294:4929,301:4930,107:$VKo}),o($Vop,$VJo,{413:4753,414:4756,294:4931,107:$VMo}),o($Vop,$VJo,{413:4753,414:4756,294:4932,107:$VMo}),o($VHo,[2,628]),{80:4933,116:$V2c},o($Vop,$VJo,{413:4753,414:4756,294:4934,107:$VMo}),{80:4935,116:$V2c},o($Vop,$VJo,{413:4753,414:4756,294:4936,107:$VMo}),{27:$Vjl,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,71:$Vkl,72:4937,73:3781,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,103:3779,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:3775,144:3776,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,311:3773,317:$V5h,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,363:4938,364:3780,365:3782,366:3783,367:3784,369:2715,370:2716,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vop,$VJo,{413:4753,414:4756,294:4939,107:$VMo}),o($V4f,[2,755],{123:$VMk}),o($VHk,$VIk,{449:3657,295:4940,129:$VJk}),o($V2,$VIk,{449:3657,295:4941,129:$VJk}),o($V2,$VIk,{449:3657,295:4942,129:$VJk}),o($V9p,[2,643]),{125:4943,279:$VM8,280:$VN8,441:926,816:927},{27:[1,4944],128:3795,417:$Vae,418:$Vbe,420:$Vce,421:$Vde,422:$Vee,423:$Vfe,424:$Vge,425:$Vhe},o($V2,$VIk,{449:3657,295:4945,129:$VJk}),o($Vap,[2,637]),o($Vap,[2,638]),o($VNo,[2,635]),o($Vap,[2,659]),o($VNo,[2,657]),{125:4946,279:$VM8,280:$VN8,441:926,816:927},o($V2,$VIk,{449:3657,295:4947,129:$VJk}),o($V4o,[2,605]),o($V6n,[2,607]),o($V2,$VIk,{449:3657,295:4948,129:$VJk}),o($V2,$VIk,{449:3657,295:4949,129:$VJk}),o([27,107,129,277,544,690,704],$V0o,{408:4581,293:4950,300:4951,409:$V1o}),o($Vpp,$V0o,{408:4581,293:4952,409:$V3o}),{27:[1,4954],158:[1,4953]},o($VOo,[2,783]),o($Vpp,$V0o,{408:4581,293:4955,409:$V3o}),{158:[1,4956]},o($V5o,[2,779]),o($V7o,[2,781]),o($Vpp,$V0o,{408:4581,293:4957,409:$V3o}),o($Vpp,$V0o,{408:4581,293:4958,409:$V3o}),o($V4f,[2,796],{123:$Vbn}),o($Vpp,$V0o,{408:4581,293:4959,409:$V3o}),o($V4f,[2,619],{123:$Vhn}),o($Vqc,[2,506],{123:$VCn}),o($Von,[2,508]),o($Vqc,[2,523],{123:$VDn}),{27:$V6,183:4626,314:4625,343:3325,344:3326,345:3327,346:3328,347:$Vtn,351:$Vun,352:$Vvn,359:$Vwn,810:$Vc4},{27:[1,4961],108:$Vqp},o($VTo,[2,688]),{108:$Vqp},{279:$VM8,441:4962},o($Vgo,[2,685]),{279:$VM8,441:4963},o($Vzn,[2,681]),o([27,107,108,129,152,208,277,351,446,499,544,547,615,646,690,704],[2,673]),{279:$VM8,441:4964},o($VBn,[2,671]),o([108,129,152,499,544,690,704],$VJo,{413:4753,414:4756,294:4965,107:$VMo}),{108:$VIk,129:$VJk,295:4966,449:3657},o($Vpp,$V0o,{408:4581,293:4967,409:$V3o}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4493,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6,894:4968,896:4491},o($Vck,[2,2002],{123:$VQn}),o($Vbj,$VRn,{270:442,693:446,140:1172,46:1632,842:1916,191:4531,876:4969,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6}),o($V4f,[2,2421]),{27:[1,4971],409:$Vrp},{27:[1,4973],763:$Vsp},o($V4f,[2,2444]),{409:$Vrp},{763:$Vsp},o($V2,[2,1253]),{125:4974,279:$VM8,280:$VN8,441:926,816:927},o($V2,[2,1288]),o($Vej,$Vah,{448:2748,131:4975,149:4976,152:$Vbh}),o($V1l,$Vah,{448:2748,131:4977,152:$VCh}),o($V1l,$Vah,{448:2748,131:4978,152:$VCh}),o($V1l,$Vah,{448:2748,131:4979,152:$VCh}),{27:[1,4980],55:$Vtp},o($V1l,$Vah,{448:2748,131:4982,152:$VCh}),{55:$Vtp},o($V1l,$Vah,{448:2748,131:4983,152:$VCh}),{123:[1,4984]},{123:$Vvm},o($V1l,$Vah,{448:2748,131:4985,152:$VCh}),{27:[1,4987],108:$Vup,302:4988,450:4986},o($V2,[2,713]),o($V2,[2,712]),o($V7p,[2,642]),o($V9p,[2,648]),o($V2,[2,711]),o($VNo,[2,658]),o($V2,[2,710]),o($V2,[2,709]),o($V2,[2,708]),o([27,129,277,544,690,704],$VJo,{413:4753,415:4755,414:4756,294:4990,301:4991,107:$VKo}),o($Vvp,$VJo,{413:4753,414:4756,294:4992,107:$VMo}),o($Vvp,$VJo,{413:4753,414:4756,294:4993,107:$VMo}),{27:[1,4995],46:439,47:$Vg4,50:$Vh4,56:4994,58:$Vi4,59:4996,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$Vy6,832:441},o($Vep,[2,786]),o($Vvp,$VJo,{413:4753,414:4756,294:4997,107:$VMo}),{46:1057,47:$Vg4,50:$Vh4,56:4994,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,656:$VZ5,665:$V_5,673:$V$5,674:$V06,676:$V16,687:$V26,688:$V36,693:446,694:$V46,695:$V56,696:$V66,697:$V76,698:$V86,699:$V96,700:$Va6,701:$Vb6,702:$Vc6,703:$Vd6,704:$Ve6,705:$Vf6,706:$Vg6,707:$Vh6,708:$Vi6,709:$Vj6,710:$Vk6,711:$Vl6,712:$Vm6,713:$Vn6,714:$Vo6,715:$Vp6,716:$Vq6,717:$Vr6,718:$Vs6,719:$Vt6,720:$Vu6,721:$Vv6,722:$Vw6,723:$Vx6,734:$VN6},o($Vvp,$VJo,{413:4753,414:4756,294:4998,107:$VMo}),o($Vvp,$VJo,{413:4753,414:4756,294:4999,107:$VMo}),o($Vvp,$VJo,{413:4753,414:4756,294:5000,107:$VMo}),{279:$VM8,441:5001},o($VTo,[2,689]),o([27,107,108,129,152,208,277,499,544,547,615,646,690,704],[2,683]),o([27,107,108,129,152,208,277,446,499,544,547,615,646,690,704],[2,678]),o([27,107,108,129,152,208,277,351,443,446,499,544,547,615,646,690,704],[2,668]),o([108,129,499,544,690,704],$Vah,{448:2748,131:5002,152:$VCh}),{108:$Vwp,450:4986},o($Vvp,$VJo,{413:4753,414:4756,294:5004,107:$VMo}),o($VGl,[2,2042],{123:$Vpo}),o($V4f,[2,1975],{123:$Vvo}),o($Vxp,[2,2442]),o($V4f,[2,2445]),o($Vxp,[2,2443]),o($V4f,[2,2446]),o($V3e,[2,1252]),o([27,108,129,499,544,690],$V4h,{49:2709,69:5005,52:5006,704:$Vbb}),o($Vyp,$V4h,{49:2709,69:5007,704:$Vrb}),o($Vyp,$V4h,{49:2709,69:5008,704:$Vrb}),o($Vyp,$V4h,{49:2709,69:5009,704:$Vrb}),o($Vyp,$V4h,{49:2709,69:5010,704:$Vrb}),o($VHo,[2,629]),{81:5011,116:$V8j},o($Vyp,$V4h,{49:2709,69:5012,704:$Vrb}),o($Vyp,$V4h,{49:2709,69:5013,704:$Vrb}),{27:$Vxn,71:$Vkl,73:3781,363:4938,364:4422,365:3782,366:3783,367:3784},o($Vyp,$V4h,{49:2709,69:5014,704:$Vrb}),o($V2,[2,704]),o($V2,[2,707]),o($V2,[2,714]),o([27,152,547],$Vzp,{451:5015}),o([27,129,277,544,690],$V4h,{49:2709,69:5016,52:5017,704:$Vbb}),o($V6m,$V4h,{49:2709,69:5018,704:$Vrb}),o($V6m,$V4h,{49:2709,69:5019,704:$Vrb}),o($V6m,$V4h,{49:2709,69:5020,704:$Vrb}),o($Vcp,[2,785]),o($Vep,[2,787]),o($Vep,[2,788]),o($V6m,$V4h,{49:2709,69:5021,704:$Vrb}),o($V6m,$V4h,{49:2709,69:5022,704:$Vrb}),o($V6m,$V4h,{49:2709,69:5023,704:$Vrb}),o($V6m,$V4h,{49:2709,69:5024,704:$Vrb}),o($Vhp,[2,687]),o([108,129,499,544,690],$V4h,{49:2709,69:5025,704:$Vrb}),o($VQ8,$Vzp,{451:5026}),o($V6m,$V4h,{49:2709,69:5027,704:$Vrb}),o([27,108,499,544,690],$VIk,{449:3657,295:5028,129:$VJk}),o($V9o,$VIk,{449:3657,295:5029,129:$VJk}),o($V9o,$VIk,{449:3657,295:5030,129:$VJk}),o($V9o,$VIk,{449:3657,295:5031,129:$VJk}),o($V9o,$VIk,{449:3657,295:5032,129:$VJk}),o($V9o,$VIk,{449:3657,295:5033,129:$VJk}),o($VFo,[2,626],{89:[1,5034]}),o($V9o,$VIk,{449:3657,295:5035,129:$VJk}),o($V9o,$VIk,{449:3657,295:5036,129:$VJk}),o($V9o,$VIk,{449:3657,295:5037,129:$VJk}),{27:[1,5039],152:$Vv,195:5038,197:5040,215:720,509:721,546:280,547:$VR1,553:303},o([27,277,544,690],$VIk,{449:3657,295:5041,129:$VJk}),o($VAp,$VIk,{449:3657,295:5042,129:$VJk}),o($VAp,$VIk,{449:3657,295:5043,129:$VJk}),o($VAp,$VIk,{449:3657,295:5044,129:$VJk}),o($VAp,$VIk,{449:3657,295:5045,129:$VJk}),o($VAp,$VIk,{449:3657,295:5046,129:$VJk}),o($VAp,$VIk,{449:3657,295:5047,129:$VJk}),o($VAp,$VIk,{449:3657,295:5048,129:$VJk}),o($VAp,$VIk,{449:3657,295:5049,129:$VJk}),o([108,499,544,690],$VIk,{449:3657,295:5050,129:$VJk}),{152:$VV6,195:5038,215:809,546:630,547:$V37},o($VAp,$VIk,{449:3657,295:5051,129:$VJk}),o($VBp,$VCp,{296:5052,302:5053,450:5055,27:[1,5054],108:$Vup}),o($V2,$VCp,{450:5055,296:5056,108:$Vwp}),o($V2,$VCp,{450:5055,296:5057,108:$Vwp}),o($V2,$VCp,{450:5055,296:5058,108:$Vwp}),o($V2,$VCp,{450:5055,296:5059,108:$Vwp}),o($V2,$VCp,{450:5055,296:5060,108:$Vwp}),o($VFo,[2,627]),o($V2,$VCp,{450:5055,296:5061,108:$Vwp}),o($V2,$VCp,{450:5055,296:5062,108:$Vwp}),o($V2,$VCp,{450:5055,296:5063,108:$Vwp}),o($VBp,[2,700]),o($V2,[2,701]),o($V2,[2,702]),o($V3e,$VLg,{276:2628,273:5064,277:$VZh}),o($V2,$VLg,{276:2628,273:5065,277:$VZh}),o($V2,$VLg,{276:2628,273:5066,277:$VZh}),o($V2,$VLg,{276:2628,273:5067,277:$VZh}),o($V2,$VLg,{276:2628,273:5068,277:$VZh}),o($V2,$VLg,{276:2628,273:5069,277:$VZh}),o($V2,$VLg,{276:2628,273:5070,277:$VZh}),o($V2,$VLg,{276:2628,273:5071,277:$VZh}),o($V2,$VLg,{276:2628,273:5072,277:$VZh}),o($VBp,$VCp,{296:5052,450:5055,108:$Vwp}),o($V2,$VLg,{276:2628,273:5073,277:$VZh}),o($VBp,[2,411]),o($V2,[2,420]),o($V2,[2,421]),o($VBp,[2,699]),o($V2,[2,419]),o($V2,[2,418]),o($V2,[2,417]),o($V2,[2,416]),o($V2,[2,415]),o($V2,[2,414]),o($V2,[2,413]),o($V2,[2,412]),o($V2,$VDp,{27:[1,5074]}),o($V2,[2,772]),o($V2,[2,771]),o($V2,[2,770]),o($V2,[2,769]),o($V2,[2,768]),o($V2,[2,765]),o($V2,[2,767]),o($V2,[2,766]),o($V2,$VDp),o($V2,[2,773])], -defaultActions: {9:[2,1446],10:[2,1447],11:[2,1448],12:[2,1449],13:[2,1450],14:[2,1451],15:[2,1452],16:[2,1453],17:[2,1454],18:[2,1455],19:[2,1456],20:[2,1457],21:[2,1458],22:[2,1459],23:[2,1460],24:[2,1461],25:[2,1462],26:[2,1463],27:[2,1464],28:[2,1465],29:[2,1466],30:[2,1467],31:[2,1468],32:[2,1469],33:[2,1470],34:[2,1471],35:[2,1472],36:[2,1473],37:[2,1474],38:[2,1475],39:[2,1476],40:[2,1477],41:[2,1478],42:[2,1479],43:[2,1480],44:[2,1481],45:[2,1482],46:[2,1483],47:[2,1484],48:[2,1485],49:[2,1486],50:[2,1487],51:[2,1488],52:[2,1489],53:[2,1490],54:[2,1491],55:[2,1492],56:[2,1493],57:[2,1494],58:[2,1495],59:[2,1496],60:[2,1497],61:[2,1498],62:[2,1499],63:[2,1500],64:[2,1501],65:[2,1502],66:[2,1503],67:[2,1504],68:[2,1505],69:[2,1506],70:[2,1507],71:[2,1508],72:[2,1509],73:[2,1510],74:[2,1511],75:[2,1512],76:[2,1513],77:[2,1514],78:[2,1515],79:[2,1516],80:[2,1517],81:[2,1518],82:[2,1519],83:[2,1520],84:[2,1521],85:[2,1522],86:[2,1523],87:[2,1524],88:[2,1525],89:[2,1526],90:[2,1527],91:[2,1528],92:[2,1529],93:[2,1530],94:[2,1531],95:[2,1532],96:[2,1533],97:[2,1534],99:[2,1536],100:[2,1537],101:[2,1538],103:[2,1540],104:[2,1541],105:[2,1542],106:[2,1543],107:[2,1544],108:[2,1545],109:[2,1546],110:[2,1547],111:[2,1548],112:[2,1549],113:[2,1550],114:[2,1551],115:[2,1552],116:[2,1553],117:[2,1554],118:[2,1555],119:[2,1556],120:[2,1557],121:[2,1558],122:[2,1559],123:[2,1560],124:[2,1561],125:[2,1562],126:[2,1563],127:[2,1564],128:[2,1565],129:[2,1566],130:[2,1567],131:[2,1568],132:[2,1569],133:[2,1570],134:[2,1571],135:[2,1572],136:[2,1573],137:[2,1574],138:[2,1575],139:[2,1576],140:[2,1577],141:[2,1578],142:[2,1579],143:[2,1580],144:[2,1581],145:[2,1582],146:[2,1583],147:[2,1584],148:[2,1585],149:[2,1586],150:[2,1587],151:[2,1588],152:[2,1589],153:[2,1590],154:[2,1591],155:[2,1592],156:[2,1593],157:[2,1594],158:[2,1595],159:[2,1596],160:[2,1597],161:[2,1598],162:[2,1599],163:[2,1600],164:[2,1601],165:[2,1602],166:[2,1603],167:[2,1604],168:[2,1605],169:[2,1606],170:[2,1607],171:[2,1608],172:[2,1609],173:[2,1610],174:[2,1611],175:[2,1612],176:[2,1613],177:[2,1614],178:[2,1615],179:[2,1616],180:[2,1617],181:[2,1618],182:[2,1619],183:[2,1620],184:[2,1621],185:[2,1622],186:[2,1623],187:[2,1624],188:[2,1625],189:[2,1626],190:[2,1627],191:[2,1628],192:[2,1629],193:[2,1630],194:[2,1631],195:[2,1632],196:[2,1633],197:[2,1634],198:[2,1635],199:[2,1636],201:[2,1638],202:[2,1639],203:[2,1640],204:[2,1641],205:[2,1642],206:[2,1643],207:[2,1644],208:[2,1645],209:[2,1646],210:[2,1647],211:[2,1648],212:[2,1649],213:[2,1650],214:[2,1651],215:[2,1652],216:[2,1653],217:[2,1654],218:[2,1655],219:[2,1656],220:[2,1657],221:[2,1658],222:[2,1659],223:[2,1660],224:[2,1661],225:[2,1662],226:[2,1663],227:[2,1664],228:[2,1665],229:[2,1666],230:[2,1667],231:[2,1668],232:[2,1669],233:[2,1670],234:[2,1671],235:[2,1672],236:[2,1673],237:[2,1674],238:[2,1675],239:[2,1676],240:[2,1677],241:[2,1678],242:[2,1679],243:[2,1680],244:[2,1681],245:[2,1682],246:[2,1683],247:[2,1684],248:[2,1685],415:[2,1293],417:[2,1294],1155:[2,2373],1156:[2,2374],1157:[2,2375],1158:[2,2376],1159:[2,2377],1195:[2,2498],1196:[2,2499],1197:[2,2500],1198:[2,2501],1199:[2,2502],1200:[2,2503],1201:[2,2504],1202:[2,2505],1203:[2,2506],1204:[2,2507],1205:[2,2508],1206:[2,2509],1207:[2,2510],1208:[2,2511],1209:[2,2512],1210:[2,2513],1211:[2,2514],2606:[2,937],3197:[2,774],3249:[2,564],3634:[2,938],3652:[2,389],3653:[2,388],3677:[2,743],3678:[2,744],3679:[2,745],3858:[2,934],4306:[2,939],4308:[2,942]}, -parseError: function parseError (str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse (input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - - -SqlParseSupport.initSqlParser(parser);/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex () { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState () { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState (condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true,"flex":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0: /* skip whitespace */ -break; -case 1: /* skip comments */ -break; -case 2: /* skip comments */ -break; -case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 27; -break; -case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 810; -break; -case 5: return 561; -break; -case 6: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 44; -break; -case 7: return 150; -break; -case 8: return 347; -break; -case 9: return 108; -break; -case 10: return 235; -break; -case 11: this.begin('between'); return 735; -break; -case 12: return 736; -break; -case 13: return 737; -break; -case 14: return 738; -break; -case 15: return 79; -break; -case 16: return 228; -break; -case 17: return 739; -break; -case 18: return 741; -break; -case 19: return 93; -break; -case 20: return 745; -break; -case 21: return 71; -break; -case 22: parser.determineCase(yy_.yytext); return 266; -break; -case 23: return 571; -break; -case 24: return 750; -break; -case 25: return 751; -break; -case 26: return 610; -break; -case 27: return 752; -break; -case 28: return 753; -break; -case 29: parser.determineCase(yy_.yytext); return 534; -break; -case 30: parser.determineCase(yy_.yytext); return 850; -break; -case 31: return 755; -break; -case 32: return 731; -break; -case 33: return 757; -break; -case 34: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 166; -break; -case 35: return 758; -break; -case 36: return 759; -break; -case 37: parser.yy.correlatedSubQuery = true; return 760; -break; -case 38: return 239; -break; -case 39: return 686; -break; -case 40: return 761; -break; -case 41: return 762; -break; -case 42: return 763; -break; -case 43: return 227; -break; -case 44: return 371; -break; -case 45: parser.determineCase(yy_.yytext); return 535; -break; -case 46: return 568; -break; -case 47: return 206; -break; -case 48: return 596; -break; -case 49: return 620; -break; -case 50: return 764; -break; -case 51: return 765; -break; -case 52: return 768; -break; -case 53: parser.determineCase(yy_.yytext); return 681; -break; -case 54: return 488; -break; -case 55: return 574; -break; -case 56: parser.determineCase(yy_.yytext); return 615; -break; -case 57: return 770; -break; -case 58: return 771; -break; -case 59: return 384; -break; -case 60: return 772; -break; -case 61: return 572; -break; -case 62: return 563; -break; -case 63: return 569; -break; -case 64: return 307; -break; -case 65: return 773; -break; -case 66: return 639; -break; -case 67: return 499; -break; -case 68: return 491; -break; -case 69: return 351; -break; -case 70: return 776; -break; -case 71: return 88; -break; -case 72: return 208; -break; -case 73: return 778; -break; -case 74: return 779; -break; -case 75: return 55; -break; -case 76: return 780; -break; -case 77: return 781; -break; -case 78: return 782; -break; -case 79: return 573; -break; -case 80: return 161; -break; -case 81: return 786; -break; -case 82: return 'PRECISION'; -break; -case 83: return 317; -break; -case 84: return 787; -break; -case 85: return 372; -break; -case 86: return 788; -break; -case 87: return 623; -break; -case 88: return 570; -break; -case 89: return 789; -break; -case 90: return 790; -break; -case 91: return 409; -break; -case 92: return 791; -break; -case 93: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 547; -break; -case 94: return 575; -break; -case 95: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 26; -break; -case 96: return 793; -break; -case 97: return 204; -break; -case 98: return 158; -break; -case 99: return 667; -break; -case 100: return 798; -break; -case 101: return 75; -break; -case 102: return 799; -break; -case 103: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 533; -break; -case 104: return 1004; -break; -case 105: return 800; -break; -case 106: parser.determineCase(yy_.yytext); return 618; -break; -case 107: return 619; -break; -case 108: return 464; -break; -case 109: return 'UTC_TIMESTAMP'; -break; -case 110: return 637; -break; -case 111: return 804; -break; -case 112: return 806; -break; -case 113: return 663; -break; -case 114: return 807; -break; -case 115: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 152; -break; -case 116: parser.determineCase(yy_.yytext); return 538; -break; -case 117: return 66; -break; -case 118: return 622; -break; -case 119: return 174; -break; -case 120: parser.determineCase(yy_.yytext); return 217; -break; -case 121: return 181; -break; -case 122: return 732; -break; -case 123: return 234; -break; -case 124: return 417; -break; -case 125: return 694; -break; -case 126: return 386; -break; -case 127: return 695; -break; -case 128: return 236; -break; -case 129: return 92; -break; -case 130: return 323; -break; -case 131: return 742; -break; -case 132: return 382; -break; -case 133: return 443; -break; -case 134: return 154; -break; -case 135: return 277; -break; -case 136: return 135; -break; -case 137: return 696; -break; -case 138: return 218; -break; -case 139: return 134; -break; -case 140: return 244; -break; -case 141: return 330; -break; -case 142: return 331; -break; -case 143: return 329; -break; -case 144: return 674; -break; -case 145: return 697; -break; -case 146: return 698; -break; -case 147: return 699; -break; -case 148: return 47; -break; -case 149: return 321; -break; -case 150: return 486; -break; -case 151: return 447; -break; -case 152: return 428; -break; -case 153: return 238; -break; -case 154: return 754; -break; -case 155: return 247; -break; -case 156: this.begin('hdfs'); return 640; -break; -case 157: return 177; -break; -case 158: return 756; -break; -case 159: return 396; -break; -case 160: return 700; -break; -case 161: return 176; -break; -case 162: return 442; -break; -case 163: return 156; -break; -case 164: parser.determineCase(yy_.yytext); return 231; -break; -case 165: parser.determineCase(yy_.yytext); return 687; -break; -case 166: return 248; -break; -case 167: return 439; -break; -case 168: return 468; -break; -case 169: return 127; -break; -case 170: return 175; -break; -case 171: return 410; -break; -case 172: return 233; -break; -case 173: return 701; -break; -case 174: return 702; -break; -case 175: return 487; -break; -case 176: return 54; -break; -case 177: return 769; -break; -case 178: this.begin('hdfs'); return 676; -break; -case 179: return 418; -break; -case 180: return 444; -break; -case 181: return 469; -break; -case 182: return 245; -break; -case 183: return 420; -break; -case 184: return 318; -break; -case 185: return 445; -break; -case 186: return 703; -break; -case 187: return 446; -break; -case 188: return 328; -break; -case 189: parser.determineCase(yy_.yytext); return 673; -break; -case 190: this.begin('hdfs'); return 704; -break; -case 191: return 616; -break; -case 192: return 240; -break; -case 193: return 665; -break; -case 194: return 61; -break; -case 195: return 656; -break; -case 196: return 229; -break; -case 197: return 705; -break; -case 198: return 706; -break; -case 199: return 198; -break; -case 200: return 178; -break; -case 201: return 374; -break; -case 202: return 230; -break; -case 203: return 333; -break; -case 204: return 180; -break; -case 205: return 246; -break; -case 206: return 249; -break; -case 207: return 621; -break; -case 208: return 421; -break; -case 209: return 419; -break; -case 210: return 783; -break; -case 211: return 153; -break; -case 212: this.begin('hdfs'); return 643; -break; -case 213: return 50; -break; -case 214: return 422; -break; -case 215: return 376; -break; -case 216: return 85; -break; -case 217: return 707; -break; -case 218: return 626; -break; -case 219: return 532; -break; -case 220: return 708; -break; -case 221: return 423; -break; -case 222: return 58; -break; -case 223: return 84; -break; -case 224: parser.determineCase(yy_.yytext); return 205; -break; -case 225: return 373; -break; -case 226: return 74; -break; -case 227: return 202; -break; -case 228: return 99; -break; -case 229: return 688; -break; -case 230: return 709; -break; -case 231: return 64; -break; -case 232: return 473; -break; -case 233: return 710; -break; -case 234: return 792; -break; -case 235: return 711; -break; -case 236: return 712; -break; -case 237: return 424; -break; -case 238: return 130; -break; -case 239: return 132; -break; -case 240: return 713; -break; -case 241: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 714; -break; -case 242: return 617; -break; -case 243: return 90; -break; -case 244: return 78; -break; -case 245: return 893; -break; -case 246: return 397; -break; -case 247: return 219; -break; -case 248: return 107; -break; -case 249: return 89; -break; -case 250: return 715; -break; -case 251: return 352; -break; -case 252: return 250; -break; -case 253: return 716; -break; -case 254: return 797; -break; -case 255: return 129; -break; -case 256: return 460; -break; -case 257: return 440; -break; -case 258: return 425; -break; -case 259: return 717; -break; -case 260: return 86; -break; -case 261: return 718; -break; -case 262: return 539; -break; -case 263: return 182; -break; -case 264: return 359; -break; -case 265: return 320; -break; -case 266: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 719; -break; -case 267: return 241; -break; -case 268: return 62; -break; -case 269: return 151; -break; -case 270: return 720; -break; -case 271: return 808; -break; -case 272: return 721; -break; -case 273: return 727; -break; -case 274: return 728; -break; -case 275: return 729; -break; -case 276: this.popState(); return 901; -break; -case 277: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 733; -break; -case 278: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 740; -break; -case 279: yy.lexer.unput('('); yy_.yytext = 'collect_list'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 743; -break; -case 280: yy.lexer.unput('('); yy_.yytext = 'collect_set'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 744; -break; -case 281: yy.lexer.unput('('); yy_.yytext = 'corr'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 746; -break; -case 282: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 747; -break; -case 283: yy.lexer.unput('('); yy_.yytext = 'covar_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 748; -break; -case 284: yy.lexer.unput('('); yy_.yytext = 'covar_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 749; -break; -case 285: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 1010; -break; -case 286: yy.lexer.unput('('); yy_.yytext = 'histogram_numeric'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 767; -break; -case 287: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 774; -break; -case 288: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 775; -break; -case 289: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 777; -break; -case 290: yy.lexer.unput('('); yy_.yytext = 'percentile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 784; -break; -case 291: yy.lexer.unput('('); yy_.yytext = 'percentile_approx'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 785; -break; -case 292: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 794; -break; -case 293: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 795; -break; -case 294: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 796; -break; -case 295: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 802; -break; -case 296: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 803; -break; -case 297: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 805; -break; -case 298: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 299: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 300: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 301: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 302: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 303: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 304: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 305: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 306: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 307: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 730; -break; -case 308: return 385; -break; -case 309: return 385; -break; -case 310: return 801; -break; -case 311: return 722; -break; -case 312: parser.yy.cursorFound = true; return 27; -break; -case 313: parser.yy.cursorFound = true; return 810; -break; -case 314: return 766; -break; -case 315: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 1007; -break; -case 316: this.popState(); return 1008; -break; -case 317: return 690; -break; -case 318: return 150; -break; -case 319: return 780; -break; -case 320: return 126; -break; -case 321: return 348; -break; -case 322: return 349; -break; -case 323: return 381; -break; -case 324: return 381; -break; -case 325: return 381; -break; -case 326: return 381; -break; -case 327: return 381; -break; -case 328: return 726; -break; -case 329: return 725; -break; -case 330: return 731; -break; -case 331: return 731; -break; -case 332: return 731; -break; -case 333: return 731; -break; -case 334: return 731; -break; -case 335: return 731; -break; -case 336: return 123; -break; -case 337: return 727; -break; -case 338: return 358; -break; -case 339: return 544; -break; -case 340: return 809; -break; -case 341: return 724; -break; -case 342: return 116; -break; -case 343: return 118; -break; -case 344: return 728; -break; -case 345: return 729; -break; -case 346: return 723; -break; -case 347: this.begin('backtickedValue'); return 734; -break; -case 348: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { - return 815; - } - return 281; - -break; -case 349: this.popState(); return 734; -break; -case 350: this.begin('singleQuotedValue'); return 279; -break; -case 351: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { - return 815; - } - return 281; - -break; -case 352: this.popState(); return 279; -break; -case 353: this.begin('doubleQuotedValue'); return 280; -break; -case 354: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { - return 815; - } - return 281; - -break; -case 355: this.popState(); return 280; -break; -case 356: return 690; -break; -case 357: /* To prevent console logging of unknown chars */ -break; -case 358: -break; -case 359: -break; -case 360: -break; -case 361: -break; -case 362: -break; -case 363:console.log(yy_.yytext); -break; -} -}, -rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:ARRAY)/i,/^(?:AS)/i,/^(?:AUTHORIZATION)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BINARY)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CACHE)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:COLUMN)/i,/^(?:CONF)/i,/^(?:CONSTRAINT)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DATE)/i,/^(?:DECIMAL)/i,/^(?:DELETE)/i,/^(?:DESCRIBE)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:FUNCTION)/i,/^(?:GRANT)/i,/^(?:GROUP)/i,/^(?:GROUPING)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IMPORT)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTEGER)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LATERAL)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:LOCAL)/i,/^(?:LIFECYCLE)/i,/^(?:MACRO)/i,/^(?:MAP)/i,/^(?:NONE)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:NULLS)/i,/^(?:OF)/i,/^(?:ON)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUT)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PRECISION)/i,/^(?:PRIMARY)/i,/^(?:RANGE)/i,/^(?:REFERENCES)/i,/^(?:REGEXP)/i,/^(?:REVOKE)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROLLUP)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SMALLINT)/i,/^(?:SYNC)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UNION)/i,/^(?:UPDATE)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:UTC_TIMESTAMP)/i,/^(?:VALUES)/i,/^(?:VARCHAR)/i,/^(?:VIEWS)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:ABORT)/i,/^(?:ADD)/i,/^(?:ADMIN)/i,/^(?:AFTER)/i,/^(?:ANALYZE)/i,/^(?:ARCHIVE)/i,/^(?:ASC)/i,/^(?:AST)/i,/^(?:AVRO)/i,/^(?:BUCKET)/i,/^(?:BUCKETS)/i,/^(?:CASCADE)/i,/^(?:CBO)/i,/^(?:CHANGE)/i,/^(?:CHECK)/i,/^(?:CLUSTER)/i,/^(?:CLUSTERED)/i,/^(?:COLLECTION)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMPACT)/i,/^(?:COMPACTIONS)/i,/^(?:COMPUTE)/i,/^(?:CONCATENATE)/i,/^(?:COST)/i,/^(?:CURRENT_DATE)/i,/^(?:CURRENT_TIMESTAMP)/i,/^(?:CURRENT_USER)/i,/^(?:DATA)/i,/^(?:DATABASES)/i,/^(?:DAY)/i,/^(?:DAYOFWEEK)/i,/^(?:DBPROPERTIES)/i,/^(?:DEFAULT)/i,/^(?:DEFERRED)/i,/^(?:DEFINED)/i,/^(?:DELIMITED)/i,/^(?:DEPENDENCY)/i,/^(?:DESC)/i,/^(?:DETAIL)/i,/^(?:DIRECTORY)/i,/^(?:DISABLE)/i,/^(?:DISTRIBUTE)/i,/^(?:DISTRIBUTED)/i,/^(?:DOUBLE\s+PRECISION)/i,/^(?:ENABLE)/i,/^(?:ESCAPED)/i,/^(?:EXCHANGE)/i,/^(?:EXPLAIN)/i,/^(?:EXPORT)/i,/^(?:EXPRESSION)/i,/^(?:FIELDS)/i,/^(?:FILE)/i,/^(?:FILEFORMAT)/i,/^(?:FIRST)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FUNCTIONS)/i,/^(?:HOUR)/i,/^(?:IDXPROPERTIES)/i,/^(?:INDEX)/i,/^(?:INDEXES)/i,/^(?:INPATH)/i,/^(?:INPUTFORMAT)/i,/^(?:ITEMS)/i,/^(?:JAR)/i,/^(?:JOINCOST)/i,/^(?:JSONFILE)/i,/^(?:KEY)/i,/^(?:KEYS)/i,/^(?:LAST)/i,/^(?:LINES)/i,/^(?:LITERAL)/i,/^(?:LOAD)/i,/^(?:LOCATION)/i,/^(?:LOCK)/i,/^(?:LOCKS)/i,/^(?:MATCHED)/i,/^(?:MATERIALIZED)/i,/^(?:MERGE)/i,/^(?:METADATA)/i,/^(?:MINUTE)/i,/^(?:MONTH)/i,/^(?:MSCK)/i,/^(?:NO_DROP)/i,/^(?:NORELY)/i,/^(?:NOSCAN)/i,/^(?:NOVALIDATE)/i,/^(?:OFFLINE)/i,/^(?:ONLY)/i,/^(?:OPERATOR)/i,/^(?:OPTION)/i,/^(?:ORC)/i,/^(?:OUTPUTFORMAT)/i,/^(?:OVER)/i,/^(?:OVERWRITE)/i,/^(?:OVERWRITE\s+DIRECTORY)/i,/^(?:OWNER)/i,/^(?:PARQUET)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PERCENT)/i,/^(?:PRIVILEGES)/i,/^(?:PURGE)/i,/^(?:QUARTER)/i,/^(?:RCFILE)/i,/^(?:REBUILD)/i,/^(?:RECOVER)/i,/^(?:RELOAD)/i,/^(?:RELY)/i,/^(?:RENAME)/i,/^(?:REPAIR)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:REWRITE)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SECOND)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SETS)/i,/^(?:SHOW)/i,/^(?:SHOW_DATABASE)/i,/^(?:SKEWED LOCATION)/i,/^(?:SKEWED)/i,/^(?:SORT)/i,/^(?:SORTED)/i,/^(?:STATISTICS)/i,/^(?:STORED)/i,/^(?:STORED\s+AS\s+DIRECTORIES)/i,/^(?:STRING)/i,/^(?:STRUCT)/i,/^(?:SUMMARY)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TEMPORARY)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:TINYINT)/i,/^(?:TOUCH)/i,/^(?:TRANSACTIONAL)/i,/^(?:TRANSACTIONS)/i,/^(?:UNARCHIVE)/i,/^(?:UNIONTYPE)/i,/^(?:UNIQUE)/i,/^(?:USE)/i,/^(?:VECTORIZATION)/i,/^(?:VIEW)/i,/^(?:WAIT)/i,/^(?:WEEK)/i,/^(?:WINDOW)/i,/^(?:YEAR)/i,/^(?:\.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:AND)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COLLECT_LIST\s*\()/i,/^(?:COLLECT_SET\s*\()/i,/^(?:CORR\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:COVAR_POP\s*\()/i,/^(?:COVAR_SAMP\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:HISTOGRAM_NUMERIC\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENTILE\s*\()/i,/^(?:PERCENTILE_APPROX\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], -conditions: {"hdfs":{"rules":[312,313,314,315,316,317,359],"inclusive":false},"doubleQuotedValue":{"rules":[354,355,362],"inclusive":false},"singleQuotedValue":{"rules":[351,352,361],"inclusive":false},"backtickedValue":{"rules":[348,349,360],"inclusive":false},"between":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,350,353,356,357,358,363],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,350,353,356,357,363],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); -export default hiveAutocompleteParser; diff --git a/src/core/parse/hive/hiveSyntaxParser.js b/src/core/parse/hive/hiveSyntaxParser.js deleted file mode 100644 index 5f56d66..0000000 --- a/src/core/parse/hive/hiveSyntaxParser.js +++ /dev/null @@ -1,5812 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -import SqlParseSupport from './sqlParseSupport'; - -var hiveSyntaxParser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[26,44,152,166,198,205,217,231,266,533,534,535,538,542,562,564,566,571,608,625,633,639,644,647,669,674,815],$V1=[2,1194],$V2=[644,647],$V3=[2,1195],$V4=[1,60],$V5=[1,91],$V6=[1,84],$V7=[1,98],$V8=[1,94],$V9=[1,95],$Va=[1,38],$Vb=[1,9],$Vc=[1,96],$Vd=[1,99],$Ve=[1,81],$Vf=[1,102],$Vg=[1,56],$Vh=[1,57],$Vi=[1,101],$Vj=[1,90],$Vk=[1,89],$Vl=[1,58],$Vm=[1,103],$Vn=[1,86],$Vo=[1,87],$Vp=[1,88],$Vq=[1,100],$Vr=[1,80],$Vs=[1,59],$Vt=[26,44,152,166,198,205,217,266,533,534,535,538,542,562,564,566,571,608,625,633,639,669,674,815],$Vu=[1,120],$Vv=[118,499,644,647],$Vw=[2,1811],$Vx=[1,124],$Vy=[1,136],$Vz=[1,179],$VA=[1,237],$VB=[1,140],$VC=[1,246],$VD=[1,219],$VE=[1,287],$VF=[1,255],$VG=[1,150],$VH=[1,250],$VI=[1,265],$VJ=[1,247],$VK=[1,240],$VL=[1,279],$VM=[1,269],$VN=[1,264],$VO=[1,161],$VP=[1,252],$VQ=[1,268],$VR=[1,198],$VS=[1,274],$VT=[1,260],$VU=[1,261],$VV=[1,170],$VW=[1,167],$VX=[1,288],$VY=[1,235],$VZ=[1,165],$V_=[1,192],$V$=[1,139],$V01=[1,152],$V11=[1,199],$V21=[1,190],$V31=[1,187],$V41=[1,225],$V51=[1,229],$V61=[1,154],$V71=[1,282],$V81=[1,224],$V91=[1,251],$Va1=[1,248],$Vb1=[1,153],$Vc1=[1,169],$Vd1=[1,267],$Ve1=[1,221],$Vf1=[1,227],$Vg1=[1,193],$Vh1=[1,155],$Vi1=[1,160],$Vj1=[1,184],$Vk1=[1,217],$Vl1=[1,286],$Vm1=[1,171],$Vn1=[1,208],$Vo1=[1,230],$Vp1=[1,185],$Vq1=[1,195],$Vr1=[1,231],$Vs1=[1,272],$Vt1=[1,137],$Vu1=[1,166],$Vv1=[1,210],$Vw1=[1,284],$Vx1=[1,180],$Vy1=[1,162],$Vz1=[1,214],$VA1=[1,174],$VB1=[1,172],$VC1=[1,173],$VD1=[1,228],$VE1=[1,271],$VF1=[1,283],$VG1=[1,249],$VH1=[1,226],$VI1=[1,239],$VJ1=[1,163],$VK1=[1,158],$VL1=[1,188],$VM1=[1,266],$VN1=[1,200],$VO1=[1,156],$VP1=[1,205],$VQ1=[1,234],$VR1=[1,209],$VS1=[1,233],$VT1=[1,238],$VU1=[1,245],$VV1=[1,259],$VW1=[1,277],$VX1=[1,183],$VY1=[1,196],$VZ1=[1,276],$V_1=[1,191],$V$1=[1,164],$V02=[1,206],$V12=[1,211],$V22=[1,213],$V32=[1,182],$V42=[1,275],$V52=[1,197],$V62=[1,207],$V72=[1,181],$V82=[1,203],$V92=[1,243],$Va2=[1,138],$Vb2=[1,149],$Vc2=[1,281],$Vd2=[1,135],$Ve2=[1,141],$Vf2=[1,142],$Vg2=[1,143],$Vh2=[1,144],$Vi2=[1,145],$Vj2=[1,232],$Vk2=[1,151],$Vl2=[1,242],$Vm2=[1,186],$Vn2=[1,236],$Vo2=[1,220],$Vp2=[1,218],$Vq2=[1,215],$Vr2=[1,175],$Vs2=[1,204],$Vt2=[1,194],$Vu2=[1,253],$Vv2=[1,157],$Vw2=[1,159],$Vx2=[1,168],$Vy2=[1,176],$Vz2=[1,177],$VA2=[1,178],$VB2=[1,189],$VC2=[1,201],$VD2=[1,202],$VE2=[1,212],$VF2=[1,216],$VG2=[1,222],$VH2=[1,223],$VI2=[1,241],$VJ2=[1,244],$VK2=[1,254],$VL2=[1,256],$VM2=[1,257],$VN2=[1,258],$VO2=[1,262],$VP2=[1,263],$VQ2=[1,270],$VR2=[1,273],$VS2=[1,278],$VT2=[1,280],$VU2=[1,285],$VV2=[1,289],$VW2=[1,290],$VX2=[1,146],$VY2=[1,147],$VZ2=[1,134],$V_2=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690],$V$2=[1,302],$V03=[1,303],$V13=[1,309],$V23=[1,316],$V33=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,680,681,682,683,686,689,690,693,695,696,699,700,702,703,704,705,717,718,725,726,736,737,739,747,748,759,760,761,764,766,767,768,770,774,1001],$V43=[2,1844],$V53=[1,334],$V63=[1,335],$V73=[1,368],$V83=[1,361],$V93=[1,362],$Va3=[1,358],$Vb3=[1,366],$Vc3=[1,367],$Vd3=[1,354],$Ve3=[158,638,673],$Vf3=[1,414],$Vg3=[1,415],$Vh3=[1,429],$Vi3=[2,353],$Vj3=[1,434],$Vk3=[1,435],$Vl3=[26,44,152,166,198,205,217,247,248,249,250,266,533,534,535,538,542,562,564,566,571,608,625,633,639,669,674,815],$Vm3=[118,499,644,647,765],$Vn3=[1,447],$Vo3=[1,448],$Vp3=[1,449],$Vq3=[1,452],$Vr3=[2,931],$Vs3=[1,451],$Vt3=[1,454],$Vu3=[2,1309],$Vv3=[55,75,123,535],$Vw3=[75,123,535,644,647],$Vx3=[2,1674],$Vy3=[1,458],$Vz3=[26,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,317,318,320,321,323,328,329,330,331,333,347,348,349,351,352,358,359,371,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,586,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,683,684,685,687,688,690,691,692,693,694,697,698,706,709,710,711,713,714,715,716,719,721,722,723,726,728,729,730,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,758,762,763,765,769,772,773,881,889],$VA3=[1,459],$VB3=[1,460],$VC3=[55,75,116,123,535],$VD3=[2,953],$VE3=[26,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,317,318,320,321,323,328,329,330,331,333,347,348,349,351,352,358,359,371,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,586,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,683,684,685,687,688,690,691,692,693,694,697,698,706,709,710,711,713,714,715,716,719,721,722,723,726,728,729,730,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,758,762,763,765,769,772,773,881,889],$VF3=[2,1204],$VG3=[123,535],$VH3=[2,1612],$VI3=[1,471],$VJ3=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678],$VK3=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690,726],$VL3=[126,683],$VM3=[2,1873],$VN3=[1,483],$VO3=[562,644,647],$VP3=[116,123,535,562,564],$VQ3=[1,490],$VR3=[1,495],$VS3=[1,501],$VT3=[1,529],$VU3=[1,530],$VV3=[1,504],$VW3=[1,507],$VX3=[1,508],$VY3=[1,491],$VZ3=[1,493],$V_3=[1,519],$V$3=[1,533],$V04=[1,505],$V14=[1,496],$V24=[1,520],$V34=[1,534],$V44=[1,535],$V54=[1,536],$V64=[1,526],$V74=[1,537],$V84=[1,538],$V94=[1,494],$Va4=[1,532],$Vb4=[1,539],$Vc4=[1,506],$Vd4=[1,540],$Ve4=[1,541],$Vf4=[1,542],$Vg4=[1,543],$Vh4=[1,544],$Vi4=[1,545],$Vj4=[1,546],$Vk4=[1,527],$Vl4=[1,531],$Vm4=[1,547],$Vn4=[1,548],$Vo4=[1,549],$Vp4=[1,492],$Vq4=[1,521],$Vr4=[2,2367],$Vs4=[26,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,608,617,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690],$Vt4=[1,562],$Vu4=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,564,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,680,681,682,683,686,689,690,693,695,696,699,700,702,703,704,705,717,718,725,726,736,737,739,747,748,759,760,761,764,766,767,768,770,774,1001],$Vv4=[2,213],$Vw4=[2,1638],$Vx4=[1,571],$Vy4=[2,1645],$Vz4=[1,583],$VA4=[1,585],$VB4=[1,586],$VC4=[1,587],$VD4=[1,588],$VE4=[2,1635],$VF4=[1,600],$VG4=[2,221],$VH4=[64,178,180],$VI4=[158,638],$VJ4=[1,636],$VK4=[1,635],$VL4=[55,644,647],$VM4=[279,307,644,647],$VN4=[307,644,647],$VO4=[2,2640],$VP4=[1,659],$VQ4=[1,660],$VR4=[2,1076],$VS4=[1,663],$VT4=[1,667],$VU4=[118,499,562,564,568,644,647,698,713,723,733,735,743,765,772,773,881],$VV4=[118,123,499,562,564,568,644,647,698,713,723,733,735,743,765,772,773,881],$VW4=[1,672],$VX4=[1,673],$VY4=[1,674],$VZ4=[1,675],$V_4=[1,676],$V$4=[1,677],$V05=[1,678],$V15=[1,679],$V25=[47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,562,564,568,569,570,574,589,592,608,617,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690,698,706,713,721,723,728,732,733,734,735,743,745,752,757,765,772,773,881],$V35=[55,118,123,499,562,564,568,644,647,698,706,713,721,723,728,732,733,734,735,743,745,752,757,765,772,773,881],$V45=[2,2284],$V55=[1,685],$V65=[26,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,586,589,592,608,617,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690,698,706,713,721,723,726,728,732,733,734,735,743,745,752,757,762,765,772,773,881],$V75=[152,564],$V85=[2,2262],$V95=[123,644,647],$Va5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,685,687,688,690,691,698,706,711,713,715,716,721,722,723,728,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,765,772,773,881,889],$Vb5=[2,2137],$Vc5=[1,703],$Vd5=[1,716],$Ve5=[1,714],$Vf5=[1,715],$Vg5=[118,499,562,644,647,698,713,723,735,743,765,773,881],$Vh5=[118,499,562,568,644,647,698,713,723,735,743,765,773,881],$Vi5=[1,762],$Vj5=[1,758],$Vk5=[1,766],$Vl5=[1,772],$Vm5=[1,759],$Vn5=[1,760],$Vo5=[1,761],$Vp5=[1,763],$Vq5=[1,775],$Vr5=[1,768],$Vs5=[1,767],$Vt5=[1,769],$Vu5=[1,764],$Vv5=[1,757],$Vw5=[1,765],$Vx5=[1,774],$Vy5=[1,773],$Vz5=[1,786],$VA5=[1,788],$VB5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,685,687,688,690,691,698,706,711,713,715,716,721,722,723,728,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,765,772,773,881,889],$VC5=[1,793],$VD5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,683,685,687,688,690,691,698,706,711,713,715,716,721,722,723,728,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,765,772,773,881,889],$VE5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,685,687,688,690,691,698,706,711,713,715,716,721,722,723,728,731,732,733,734,735,740,742,743,745,746,750,751,752,753,755,757,765,772,773,881,889],$VF5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,683,685,687,688,690,691,692,693,694,697,698,706,709,710,711,713,714,715,716,719,721,722,723,728,729,730,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,758,763,765,769,772,773,881,889],$VG5=[1,818],$VH5=[118,123,499,535,562,568,644,647,698,713,723,735,743,765,772,773,881],$VI5=[118,123,333,373,374,644,647],$VJ5=[2,468],$VK5=[1,828],$VL5=[1,835],$VM5=[1,836],$VN5=[1,837],$VO5=[1,838],$VP5=[1,839],$VQ5=[1,840],$VR5=[1,841],$VS5=[1,842],$VT5=[1,844],$VU5=[152,644,647],$VV5=[55,78,107,108,118,123,126,129,130,150,152,174,175,277,349,376,382,396,409,419,487,488,499,535,562,564,568,644,647,650,659,664,698,706,713,721,723,728,732,733,734,735,743,745,752,757,765,772,773,881],$VW5=[2,222],$VX5=[1,866],$VY5=[78,107,108,116,129,152,177,277,307,376,382,396,409,499,644,647,659],$VZ5=[644,647,683],$V_5=[2,2645],$V$5=[1,914],$V06=[107,152,564,644,647],$V16=[2,1078],$V26=[1,921],$V36=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690],$V46=[55,118,123,499,535,562,564,568,644,647,698,706,713,721,723,728,732,733,734,735,743,745,752,757,765,772,773,881],$V56=[2,2138],$V66=[1,962],$V76=[75,535],$V86=[2,981],$V96=[1,969],$Va6=[1,970],$Vb6=[123,152,644,647],$Vc6=[1,976],$Vd6=[118,123,499,562,644,647,735,765,881],$Ve6=[161,644,647,683],$Vf6=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,608,617,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678],$Vg6=[118,499,562,644,647,698,713,735,743,765,773,881],$Vh6=[2,2151],$Vi6=[1,994],$Vj6=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,685,688,690,691,698,706,711,713,715,716,721,722,723,728,732,733,734,735,740,742,743,745,750,752,755,757,765,772,773,881,889],$Vk6=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,685,687,688,690,691,698,706,711,713,715,716,721,722,723,728,732,733,734,735,740,742,743,745,750,752,755,757,765,772,773,881,889],$Vl6=[615,715,716],$Vm6=[1,1027],$Vn6=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,680,682,683,686,689,690,693,695,696,699,700,702,703,704,705,717,718,725,726,736,737,739,747,748,759,760,761,764,766,767,768,770,774,1001],$Vo6=[47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,351,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,685,687,688,690,691,698,706,711,713,715,716,721,722,723,728,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,765,772,773,881,889],$Vp6=[47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,685,687,688,690,691,698,706,711,713,715,716,721,722,723,728,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,765,772,773,881,889],$Vq6=[644,647,772],$Vr6=[1,1057],$Vs6=[123,535,615,644,647,772],$Vt6=[118,123,126,277],$Vu6=[161,644,647],$Vv6=[2,1715],$Vw6=[1,1076],$Vx6=[1,1073],$Vy6=[1,1072],$Vz6=[1,1075],$VA6=[118,123,373,374,644,647],$VB6=[2,470],$VC6=[1,1079],$VD6=[108,129,152,277,499,564,644,647,659],$VE6=[2,688],$VF6=[1,1090],$VG6=[108,129,152,161,277,499,644,647],$VH6=[1,1100],$VI6=[118,123],$VJ6=[2,872],$VK6=[1,1104],$VL6=[123,532,644,647],$VM6=[2,1628],$VN6=[1,1111],$VO6=[1,1112],$VP6=[2,388],$VQ6=[1,1123],$VR6=[108,129,277],$VS6=[152,564,644,647],$VT6=[2,643],$VU6=[1,1161],$VV6=[118,123,499,562,564,568,644,647,698,706,713,721,723,728,732,733,734,735,743,745,752,757,765,772,773,881],$VW6=[2,2231],$VX6=[1,1167],$VY6=[47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,681,682,685,687,688,690,691,698,706,711,713,715,716,721,722,723,728,731,732,733,734,735,740,742,743,745,750,751,752,753,755,757,765,772,773,881,889],$VZ6=[118,499,562,644,647,698,713,735,743,765,881],$V_6=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,685,688,690,691,698,706,711,713,715,716,721,722,723,728,732,733,734,735,740,742,743,745,750,752,755,757,765,772,773,881,889],$V$6=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,685,688,690,698,706,711,713,715,716,721,722,723,728,732,733,734,735,740,742,743,745,750,752,755,757,765,772,773,881,889],$V07=[1,1215],$V17=[118,123,743],$V27=[118,743],$V37=[118,123,177,333,373,374,644,647],$V47=[118,123,644,647],$V57=[2,559],$V67=[1,1252],$V77=[1,1253],$V87=[88,118,123,174,175,277,317,320,321,323,373,374,644,647,650,664],$V97=[1,1255],$Va7=[108,129,499,644,647,659],$Vb7=[644,647,650,664],$Vc7=[1,1306],$Vd7=[1,1307],$Ve7=[1,1308],$Vf7=[1,1309],$Vg7=[1,1297],$Vh7=[1,1302],$Vi7=[1,1304],$Vj7=[1,1290],$Vk7=[1,1291],$Vl7=[1,1292],$Vm7=[1,1293],$Vn7=[1,1294],$Vo7=[1,1295],$Vp7=[1,1296],$Vq7=[1,1298],$Vr7=[1,1299],$Vs7=[1,1300],$Vt7=[1,1301],$Vu7=[1,1303],$Vv7=[1,1305],$Vw7=[78,107,108,118,123,129,152,174,175,349,376,382,396,409,499,644,647,650,659,664],$Vx7=[108,129],$Vy7=[107,108,129,277,376,382,396,409,659],$Vz7=[1,1341],$VA7=[1,1343],$VB7=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,693,726],$VC7=[662,755],$VD7=[228,230,644,647],$VE7=[118,499,562,644,647,698,713,735,765,881],$VF7=[1,1364],$VG7=[118,123,152,499,562,644,647,698,713,722,723,735,743,765,773,881],$VH7=[88,118,123,174,175,277,317,320,321,323,644,647,650,664],$VI7=[1,1403],$VJ7=[118,123,174,175,277,644,647,650,664],$VK7=[1,1423],$VL7=[1,1421],$VM7=[1,1422],$VN7=[1,1424],$VO7=[1,1425],$VP7=[88,118,123,174,175,277,317,320,321,323,349,644,647,650,664],$VQ7=[2,1776],$VR7=[1,1427],$VS7=[78,107,108,129,152,277,376,382,409,499,644,647,650,659,664],$VT7=[1,1440],$VU7=[2,693],$VV7=[1,1449],$VW7=[1,1458],$VX7=[1,1459],$VY7=[1,1460],$VZ7=[1,1469],$V_7=[107,108,129,152,208,277,351,443,446,499,564,644,647,659],$V$7=[230,644,647],$V08=[118,499,562,644,647,735,765],$V18=[1,1497],$V28=[118,123,174,175,644,647,650,664],$V38=[88,118,123,174,175,277,317,320,321,323,333,373,374,644,647,650,664],$V48=[2,465],$V58=[1,1539],$V68=[1,1540],$V78=[1,1564],$V88=[78,107,108,129,152,277,376,382,409,499,644,647,659],$V98=[108,277,499,644,647],$Va8=[107,108,129,382,396,409,659],$Vb8=[1,1586],$Vc8=[123,152,564,615,644,647],$Vd8=[107,108,129,152,208,277,351,446,499,564,644,647,659],$Ve8=[1,1594],$Vf8=[118,499,562,644,647,765],$Vg8=[691,995],$Vh8=[78,107,108,129,152,409,499,644,647,659],$Vi8=[2,1933],$Vj8=[1,1631],$Vk8=[1,1632],$Vl8=[88,118,123,174,175,176,177,277,317,320,321,323,333,373,374,644,647,650,664],$Vm8=[123,349],$Vn8=[78,107,108,129,152,382,409,499,644,647,659],$Vo8=[107,108,129,409,659],$Vp8=[107,108,129,152,208,277,446,499,564,644,647,659],$Vq8=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690],$Vr8=[118,123,499,562,644,647,698,713,735,750,755,765,881],$Vs8=[118,123,499,562,644,647,698,713,735,740,750,755,765,881],$Vt8=[2,1894],$Vu8=[1,1696],$Vv8=[615,644,647],$Vw8=[118,150,385,708,995],$Vx8=[2,2366],$Vy8=[2,631],$Vz8=[1,1721],$VA8=[107,129,277,409,487,488,644,647,659],$VB8=[107,108,129,152,208,277,499,564,644,647,659],$VC8=[118,123,499,562,644,647,735,765],$VD8=[1,1748],$VE8=[118,150],$VF8=[2,2376],$VG8=[1,1755],$VH8=[1,1754],$VI8=[1,1756],$VJ8=[107,108,129,152,409,499,644,647,659],$VK8=[2,637],$VL8=[1,1773],$VM8=[107,108,129,152,277,499,644,647,659],$VN8=[107,129,277,409,488,644,647,659],$VO8=[107,108,129,152,277,499,564,644,647,659],$VP8=[2,2381],$VQ8=[1,1798],$VR8=[720,749],$VS8=[108,129,152,277,499,644,647,659],$VT8=[107,129,277,409,644,647,659],$VU8=[1,1841],$VV8=[499,644,647]; -var parser = {trace: function trace () { }, -yy: {}, -symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"AnalyzeStatement":5,"CreateStatement":6,"DropStatement":7,"AbortStatement":8,"GrantStatement":9,"RevokeStatement":10,"DescribeStatement":11,"SetRoleStatement":12,"SetSpecification":13,"ShowStatement":14,"UseStatement":15,"DataDefinition_EDIT":16,"AlterStatement_EDIT":17,"AnalyzeStatement_EDIT":18,"CreateStatement_EDIT":19,"DropStatement_EDIT":20,"AbortStatement_EDIT":21,"GrantStatement_EDIT":22,"RevokeStatement_EDIT":23,"DescribeStatement_EDIT":24,"SetRoleStatement_EDIT":25,"SET":26,"CURSOR":27,"ShowStatement_EDIT":28,"UseStatement_EDIT":29,"AlterDatabase":30,"AlterIndex":31,"AlterMaterializedView":32,"AlterTable":33,"AlterView":34,"Msck":35,"ReloadFunction":36,"AlterDatabase_EDIT":37,"AlterIndex_EDIT":38,"AlterMaterializedView_EDIT":39,"AlterTable_EDIT":40,"AlterView_EDIT":41,"Msck_EDIT":42,"ReloadFunction_EDIT":43,"ALTER":44,"DatabaseOrSchema":45,"RegularOrBacktickedIdentifier":46,"DBPROPERTIES":47,"ParenthesizedPropertyAssignmentList":48,"HdfsLocation":49,"OWNER":50,"PrincipalSpecification":51,"HdfsLocation_EDIT":52,"PrincipalSpecification_EDIT":53,"INDEX":54,"ON":55,"SchemaQualifiedTableIdentifier":56,"OptionalPartitionSpec":57,"REBUILD":58,"SchemaQualifiedTableIdentifier_EDIT":59,"OptionalPartitionSpec_EDIT":60,"MATERIALIZED":61,"VIEW":62,"EnableOrDisable":63,"REWRITE":64,"AlterTableLeftSide":65,"ADD":66,"OptionalIfNotExists":67,"PartitionSpec":68,"OptionalHdfsLocation":69,"OptionalPartitionSpecs":70,"CONSTRAINT":71,"PrimaryKeySpecification":72,"TableConstraint":73,"RENAME":74,"TO":75,"RegularOrBackTickedSchemaQualifiedName":76,"ClusteredBy":77,"SKEWED":78,"BY":79,"ParenthesizedColumnList":80,"ParenthesizedSkewedValueList":81,"OptionalStoredAsDirectories":82,"ExchangeSpecification":83,"RECOVER":84,"PARTITIONS":85,"TOUCH":86,"ArchiveOrUnArchive":87,"NOT":88,"STORED_AS_DIRECTORIES":89,"SKEWED_LOCATION":90,"ParenthesizedSkewedLocationList":91,"CHANGE":92,"COLUMN":93,"ParenthesizedColumnSpecificationList":94,"OptionalCascadeOrRestrict":95,"DropOperations":96,"OptionalPartitionOperations":97,"AlterTableLeftSide_EDIT":98,"REPLACE":99,"OptionalIfNotExists_EDIT":100,"OptionalPartitionSpecs_EDIT":101,"PartitionSpec_EDIT":102,"PrimaryKeySpecification_EDIT":103,"ForeignKeySpecification_EDIT":104,"ClusteredBy_EDIT":105,"ExchangeSpecification_EDIT":106,"STORED":107,"AS":108,"ParenthesizedSkewedLocationList_EDIT":109,"ParenthesizedColumnList_EDIT":110,"OptionalStoredAsDirectories_EDIT":111,"OptionalPartitionOperations_EDIT":112,"DropOperations_EDIT":113,"AddOrReplace":114,"ParenthesizedStatsList":115,"(":116,"StatsList":117,")":118,"ParenthesizedStatsList_EDIT":119,"StatsList_EDIT":120,"RightParenthesisOrError":121,"StatsAssignment":122,",":123,"StatsAssignment_EDIT":124,"QuotedValue":125,"=":126,"FILEFORMAT":127,"FileFormat":128,"TBLPROPERTIES":129,"SERDE":130,"OptionalWithSerdeproperties":131,"SERDEPROPERTIES":132,"AddReplaceColumns":133,"CONCATENATE":134,"COMPACT":135,"OptionalAndWait":136,"OptionalWithOverwriteTblProperties":137,"NoDropOrOffline":138,"OptionalColumn":139,"ColumnIdentifier":140,"ColumnSpecification":141,"OptionalAfterOrFirst":142,"AddReplaceColumns_EDIT":143,"ColumnSpecification_EDIT":144,"OptionalAfterOrFirst_EDIT":145,"AndWait_EDIT":146,"WithOverwriteTblProperties_EDIT":147,"NoDropOrOffline_EDIT":148,"WithSerdeproperties_EDIT":149,"AND":150,"WAIT":151,"WITH":152,"OVERWRITE":153,"COLUMNS":154,"ParenthesizedColumnSpecificationList_EDIT":155,"EXCHANGE":156,"ExchangePartitionSpec":157,"TABLE":158,"RegularOrBackTickedSchemaQualifiedName_EDIT":159,"ExchangePartitionSpec_EDIT":160,"PARTITION":161,"OneOrMorePartitionSpecLists":162,"PartitionSpecList":163,"OneOrMorePartitionSpecLists_EDIT":164,"PartitionSpecList_EDIT":165,"DROP":166,"OptionalIfExists":167,"OneOrMorePartitionSpecs":168,"OptionalPurge":169,"OneOrMorePartitionSpecs_EDIT":170,"OptionalIfExists_EDIT":171,"ColumnIdentifier_EDIT":172,"AfterOrFirst":173,"AFTER":174,"FIRST":175,"ENABLE":176,"DISABLE":177,"NO_DROP":178,"OptionalCascade":179,"OFFLINE":180,"ARCHIVE":181,"UNARCHIVE":182,"AnyCursor":183,"PartitionSpecWithLocationList":184,"PartitionSpecWithLocation":185,"PartitionSpecWithLocation_EDIT":186,"SkewedLocationList":187,"SkewedLocationList_EDIT":188,"SkewedLocation":189,"SkewedLocation_EDIT":190,"ColumnReference":191,"ColumnReference_EDIT":192,"ColumnReferences":193,"AlterViewLeftSide":194,"QuerySpecification":195,"AlterViewLeftSide_EDIT":196,"QuerySpecification_EDIT":197,"MSCK":198,"OptionalRepair":199,"OptionalAddDropSyncPartitions":200,"AddDropSyncPartitions_EDIT":201,"REPAIR":202,"AddDropOrSync":203,"SYNC":204,"RELOAD":205,"FUNCTION":206,"NullableComment":207,"NULL":208,"SqlStatement":209,"ExplainClause":210,"DataManipulation":211,"SqlStatement_EDIT":212,"ExplainClause_EDIT":213,"DataManipulation_EDIT":214,"CommonTableExpression":215,"SetSpecification_EDIT":216,"ANALYZE":217,"COMPUTE":218,"STATISTICS":219,"OptionalForColumns":220,"OptionalCacheMetadata":221,"OptionalNoscan":222,"ForColumns":223,"CacheMetadata":224,"ForColumns_EDIT":225,"CacheMetadata_EDIT":226,"FOR":227,"CACHE":228,"METADATA":229,"NOSCAN":230,"EXPLAIN":231,"OptionalExplainTypes":232,"FORMATTED":233,"AST":234,"AUTHORIZATION":235,"CBO":236,"OptionalCostOrJoincost":237,"DEPENDENCY":238,"EXTENDED":239,"LOCKS":240,"VECTORIZATION":241,"OptionalOnly":242,"OptionalVectorizationTypes":243,"COST":244,"JOINCOST":245,"ONLY":246,"DETAIL":247,"EXPRESSION":248,"OPERATOR":249,"SUMMARY":250,"DatabaseDefinition":251,"TableDefinition":252,"ViewDefinition":253,"MaterializedViewDefinition":254,"RoleDefinition":255,"FunctionDefinition":256,"IndexDefinition":257,"MacroDefinition":258,"DatabaseDefinition_EDIT":259,"TableDefinition_EDIT":260,"ViewDefinition_EDIT":261,"MaterializedViewDefinition_EDIT":262,"FunctionDefinition_EDIT":263,"IndexDefinition_EDIT":264,"MacroDefinition_EDIT":265,"CREATE":266,"OptionalTemporary":267,"OptionalTransactional":268,"OptionalExternal":269,"RegularIdentifier":270,"DatabaseDefinitionOptionals":271,"OptionalComment":272,"OptionalDbProperties":273,"DatabaseDefinitionOptionals_EDIT":274,"OptionalComment_INVALID":275,"Comment":276,"COMMENT":277,"Comment_INVALID":278,"SINGLE_QUOTE":279,"DOUBLE_QUOTE":280,"VALUE":281,"DbProperties":282,"PropertyAssignmentList":283,"PropertyAssignment":284,"UnsignedValueSpecification":285,"TableDefinitionRightPart":286,"LifeCyclePart":287,"TableDefinitionRightPart_EDIT":288,"TableIdentifierAndOptionalColumnSpecification":289,"OptionalPartitionedBy":290,"OptionalClusteredBy":291,"OptionalSkewedBy":292,"OptionalRowFormat":293,"OptionalStoredAsOrBy":294,"OptionalTblproperties":295,"OptionalAsSelectStatement":296,"TableIdentifierAndOptionalColumnSpecification_EDIT":297,"PartitionedBy_EDIT":298,"SkewedBy_EDIT":299,"RowFormat_EDIT":300,"StoredAsOrBy_EDIT":301,"AsSelectStatement_EDIT":302,"SchemaQualifiedIdentifier":303,"OptionalColumnSpecificationsOrLike":304,"OptionalColumnSpecificationsOrLike_EDIT":305,"SchemaQualifiedIdentifier_EDIT":306,"LIKE":307,"ColumnSpecificationList":308,"TableConstraints":309,"ColumnSpecificationList_EDIT":310,"TableConstraints_EDIT":311,"ColumnDataType":312,"OptionalColumnOptions":313,"ColumnDataType_EDIT":314,"ColumnOptions":315,"ColumnOption":316,"PRIMARY":317,"KEY":318,"ColumnOptionOptionals":319,"UNIQUE":320,"DEFAULT":321,"DefaultValue":322,"CHECK":323,"ValueExpression":324,"OptionalEnableOrDisable":325,"OptionalNovalidate":326,"OptionalRelyOrNorely":327,"LITERAL":328,"CURRENT_USER":329,"CURRENT_DATE":330,"CURRENT_TIMESTAMP":331,"OptionalDisable":332,"NOVALIDATE":333,"PrimitiveType":334,"ArrayType":335,"MapType":336,"StructType":337,"UnionType":338,"ArrayType_INVALID":339,"MapType_INVALID":340,"StructType_INVALID":341,"UnionType_INVALID":342,"ArrayType_EDIT":343,"MapType_EDIT":344,"StructType_EDIT":345,"UnionType_EDIT":346,"ARRAY":347,"<":348,">":349,"GreaterThanOrError":350,"MAP":351,"STRUCT":352,"StructDefinitionList":353,"StructDefinitionList_EDIT":354,"StructDefinition":355,"StructDefinition_EDIT":356,"Commas":357,":":358,"UNIONTYPE":359,"ColumnDataTypeList":360,"ColumnDataTypeList_EDIT":361,"ColumnDataTypeListInner_EDIT":362,"ConstraintList":363,"ConstraintList_EDIT":364,"TableConstraint_EDIT":365,"TableConstraintLeftPart":366,"TableConstraintLeftPart_EDIT":367,"ForeignKeySpecification":368,"PrimaryKey":369,"PrimaryKey_EDIT":370,"FOREIGN":371,"REFERENCES":372,"RELY":373,"NORELY":374,"PartitionedBy":375,"PARTITIONED":376,"OptionalPartitionedOn":377,"PartitionedOn":378,"PartitionedOn_EDIT":379,"LessThanOrEqualTo":380,"COMPARISON_OPERATOR":381,"CLUSTERED":382,"OptionalSortedBy":383,"INTO":384,"UNSIGNED_INTEGER":385,"BUCKETS":386,"OptionalSortedBy_EDIT":387,"OptionalClusteredOrDistributedOn":388,"ClusteredOn":389,"DistributedOn":390,"SortedOn":391,"ClusteredOrDistributedOn_EDIT":392,"ClusteredOn_EDIT":393,"DistributedOn_EDIT":394,"SortedOn_EDIT":395,"DISTRIBUTED":396,"SORTED":397,"ParenthesizedSortList":398,"ParenthesizedSortList_EDIT":399,"SortList":400,"SortList_EDIT":401,"SortIdentifier":402,"SortIdentifier_EDIT":403,"OptionalAscOrDesc":404,"SkewedBy":405,"SkewedValueList":406,"ParenthesizedSimpleValueList":407,"RowFormat":408,"ROW":409,"FORMAT":410,"RowFormatSpec":411,"RowFormatSpec_EDIT":412,"StoredAsOrBy":413,"StoredAs":414,"StoredAs_EDIT":415,"OptionalStoredAs":416,"AVRO":417,"INPUTFORMAT":418,"OUTPUTFORMAT":419,"JSONFILE":420,"ORC":421,"PARQUET":422,"RCFILE":423,"SEQUENCEFILE":424,"TEXTFILE":425,"DelimitedRowFormat":426,"DelimitedRowFormat_EDIT":427,"DELIMITED":428,"OptionalFieldsTerminatedBy":429,"OptionalCollectionItemsTerminatedBy":430,"OptionalMapKeysTerminatedBy":431,"OptionalLinesTerminatedBy":432,"OptionalNullDefinedAs":433,"OptionalFieldsTerminatedBy_EDIT":434,"OptionalCollectionItemsTerminatedBy_EDIT":435,"OptionalMapKeysTerminatedBy_EDIT":436,"OptionalLinesTerminatedBy_EDIT":437,"OptionalNullDefinedAs_EDIT":438,"FIELDS":439,"TERMINATED":440,"SingleQuotedValue":441,"ESCAPED":442,"COLLECTION":443,"ITEMS":444,"KEYS":445,"LINES":446,"DEFINED":447,"WithSerdeproperties":448,"TblProperties":449,"AsSelectStatement":450,"CommitLocations":451,"OptionalDisableRewrite":452,"DisableRewrite_EDIT":453,"OptionalParenthesizedViewColumnList":454,"ParenthesizedViewColumnList_EDIT":455,"TemporaryFunction":456,"OptionalUsing":457,"TemporaryFunction_EDIT":458,"OptionalUsing_EDIT":459,"TEMPORARY":460,"FunctionReference":461,"FunctionReference_EDIT":462,"SingleQuotedValue_EDIT":463,"USING":464,"OneOrMoreFunctionResources":465,"FunctionResource":466,"FunctionResourceType":467,"FILE":468,"JAR":469,"ParenthesizedViewColumnList":470,"ViewColumnList":471,"ViewColumnList_EDIT":472,"ROLE":473,"ExistingTable":474,"ParenthesizedIndexColumnList":475,"IndexType":476,"OptionalWithDeferredRebuild":477,"OptionalIdxProperties":478,"OptionalInTable":479,"ExistingTable_EDIT":480,"ParenthesizedIndexColumnList_EDIT":481,"IndexType_EDIT":482,"OptionalWithDeferredRebuild_EDIT":483,"OptionalInTable_EDIT":484,"QuotedValue_EDIT":485,"DEFERRED":486,"IDXPROPERTIES":487,"IN":488,"IndexColumnList":489,"IndexColumnList_EDIT":490,"MACRO":491,"MacroArguments":492,"MacroArguments_EDIT":493,"ValueExpression_EDIT":494,"MacroArgumentList":495,"MacroArgumentList_EDIT":496,"MacroArgument":497,"MacroArgument_EDIT":498,"LIFECYCLE":499,"DeleteStatement":500,"InsertStatement":501,"MergeStatement":502,"LoadStatement":503,"ImportStatement":504,"ExportStatement":505,"UpdateStatement":506,"DeleteStatement_EDIT":507,"InsertStatement_EDIT":508,"CommonTableExpression_EDIT":509,"MergeStatement_EDIT":510,"LoadStatement_EDIT":511,"ImportStatement_EDIT":512,"ExportStatement_EDIT":513,"UpdateStatement_EDIT":514,"DropDatabaseStatement":515,"DropFunctionStatement":516,"DropRoleStatement":517,"DropTableStatement":518,"DropIndexStatement":519,"DropMacroStatement":520,"DropMaterializedViewStatement":521,"DropViewStatement":522,"TruncateTableStatement":523,"DropDatabaseStatement_EDIT":524,"DropFunctionStatement_EDIT":525,"DropTableStatement_EDIT":526,"DropIndexStatement_EDIT":527,"DropMacroStatement_EDIT":528,"DropMaterializedViewStatement_EDIT":529,"DropViewStatement_EDIT":530,"TruncateTableStatement_EDIT":531,"PURGE":532,"TRUNCATE":533,"DELETE":534,"FROM":535,"OptionalWhereClause":536,"WhereClause_EDIT":537,"ABORT":538,"TRANSACTIONS":539,"TransactionIdList":540,"UnsignedNumericLiteral":541,"GRANT":542,"PrivilegeTypeList":543,"OptionalOnSpecification":544,"PrincipalSpecificationList":545,"OptionalWithGrantOption":546,"UserOrRoleList":547,"OptionalWithAdminOption":548,"PrivilegeTypeList_EDIT":549,"OnSpecification_EDIT":550,"PrincipalSpecificationList_EDIT":551,"WithGrantOption_EDIT":552,"WithAdminOption_EDIT":553,"ObjectSpecification":554,"ObjectSpecification_EDIT":555,"DATABASE":556,"PrivilegeTypeWithOptionalColumn":557,"PrivilegeTypeWithOptionalColumn_EDIT":558,"PrivilegeType":559,"OptionalParenthesizedColumnList":560,"ALL":561,"INSERT":562,"LOCK":563,"SELECT":564,"SHOW_DATABASE":565,"UPDATE":566,"USER":567,"GROUP":568,"OPTION":569,"ADMIN":570,"REVOKE":571,"PrivilegesOrGrantOption":572,"PrivilegesOrGrantOption_EDIT":573,"PRIVILEGES":574,"InsertWithoutQuery":575,"FromClause":576,"Inserts":577,"SelectWithoutTableExpression":578,"OptionalSelectConditions":579,"InsertWithoutQuery_EDIT":580,"Inserts_EDIT":581,"FromClause_EDIT":582,"SelectWithoutTableExpression_EDIT":583,"OptionalSelectConditions_EDIT":584,"OptionalTable":585,"VALUES":586,"InsertValuesList":587,"LOCAL":588,"DIRECTORY":589,"HdfsPath":590,"OptionalInsertRowFormat":591,"OVERWRITE_DIRECTORY":592,"HdfsPath_EDIT":593,"OptionalInsertRowFormat_EDIT":594,"OptionalStoredAs_EDIT":595,"OptionalParenthesizedColumnList_EDIT":596,"GenericInsert":597,"GenericInsert_EDIT":598,"ParenthesizedRowValuesList":599,"InValueList":600,"OptionalAllOrDistinct":601,"SelectList":602,"SelectList_EDIT":603,"MergeStatementLeftPart":604,"WhenList":605,"MergeStatementLeftPart_EDIT":606,"WhenList_EDIT":607,"MERGE":608,"MergeSource":609,"MergeSource_EDIT":610,"TableSubQueryInner":611,"TableSubQueryInner_EDIT":612,"WhenClause":613,"WhenClause_EDIT":614,"WHEN":615,"OptionalNot":616,"MATCHED":617,"OptionalMatchCondition":618,"THEN":619,"UpdateDeleteOrInsert":620,"MatchCondition_EDIT":621,"UpdateDeleteOrInsert_EDIT":622,"SetClauseList":623,"SetClauseList_EDIT":624,"LOAD":625,"DATA":626,"OptionalLocal":627,"INPATH":628,"OptionalOverwrite":629,"OptionalInputFormat":630,"InputFormat_EDIT":631,"InputFormat":632,"IMPORT":633,"OptionalTableWithPartition":634,"PushHdfsLexerState":635,"TableWithPartition":636,"TableWithPartition_EDIT":637,"EXTERNAL":638,"EXPORT":639,"REPLICATION":640,"SqlSyntax":641,"NewStatement":642,"SqlStatements":643,"EOF":644,"SqlAutocomplete":645,"SqlStatements_EDIT":646,";":647,"NonReservedKeyword":648,"BUCKET":649,"CASCADE":650,"COMPACTIONS":651,"DATABASES":652,"DAY":653,"DAYOFWEEK":654,"DOUBLE_PRECISION":655,"FUNCTIONS":656,"HOUR":657,"LAST":658,"LOCATION":659,"MINUTE":660,"MONTH":661,"PERCENT":662,"QUARTER":663,"RESTRICT":664,"ROLES":665,"SCHEMAS":666,"SECOND":667,"SETS":668,"SHOW":669,"STRING":670,"TABLES":671,"TINYINT":672,"TRANSACTIONAL":673,"USE":674,"WEEK":675,"YEAR":676,"REGULAR_IDENTIFIER":677,"VARIABLE_REFERENCE":678,"NonStartingToken":679,"!":680,"*":681,"-":682,".":683,"[":684,"]":685,"ANALYTIC":686,"ARITHMETIC_OPERATOR":687,"ASC":688,"AVG":689,"BACKTICK":690,"BETWEEN":691,"BIGINT":692,"BINARY":693,"BOOLEAN":694,"CASE":695,"CAST":696,"CHAR":697,"CLUSTER":698,"COLLECT_LIST":699,"COLLECT_SET":700,"CONF":701,"CORR":702,"COUNT":703,"COVAR_POP":704,"COVAR_SAMP":705,"CROSS":706,"CUBE":707,"CURRENT":708,"DATE":709,"DECIMAL":710,"DESC":711,"DISTINCT":712,"DISTRIBUTE":713,"DOUBLE":714,"ELSE":715,"END":716,"EXISTS":717,"FALSE":718,"FLOAT":719,"FOLLOWING":720,"FULL":721,"GROUPING":722,"HAVING":723,"HDFS_START_QUOTE":724,"HISTOGRAM_NUMERIC":725,"IF":726,"INDEXES":727,"INNER":728,"INT":729,"INTEGER":730,"IS":731,"JOIN":732,"LATERAL":733,"LEFT":734,"LIMIT":735,"MAX":736,"MIN":737,"NONE":738,"NTILE":739,"NULLS":740,"OF":741,"OR":742,"ORDER":743,"OUT":744,"OUTER":745,"OVER":746,"PERCENTILE":747,"PERCENTILE_APPROX":748,"PRECEDING":749,"RANGE":750,"REGEXP":751,"RIGHT":752,"RLIKE":753,"ROLLUP":754,"ROWS":755,"SCHEMA":756,"SEMI":757,"SMALLINT":758,"STDDEV_POP":759,"STDDEV_SAMP":760,"SUM":761,"TABLESAMPLE":762,"TIMESTAMP":763,"TRUE":764,"UNION":765,"UNSIGNED_INTEGER_E":766,"VAR_POP":767,"VAR_SAMP":768,"VARCHAR":769,"VARIANCE":770,"VIEWS":771,"WHERE":772,"WINDOW":773,"~":774,"PARTIAL_CURSOR":775,"FromOrIn":776,"IndexOrIndexes":777,"DatabasesOrSchemas":778,"RoleOrUser":779,"PARTIAL_VALUE":780,"DoubleQuotedValue":781,"DoubleQuotedValue_EDIT":782,"OptionalExtended":783,"OptionalExtendedOrFormatted":784,"OptionallyFormattedIndex":785,"OptionallyFormattedIndex_EDIT":786,"OptionalFromDatabase":787,"DatabaseIdentifier":788,"OptionalFromDatabase_EDIT":789,"DatabaseIdentifier_EDIT":790,"OptionalInDatabase":791,"RangePartitionSpec":792,"RangePartitionComparisonOperator":793,"RangePartitionSpec_EDIT":794,"ConfigurationName":795,"PartialBacktickedOrAnyCursor":796,"PartialBacktickedIdentifier":797,"PartialBacktickedOrCursor":798,"PartialBacktickedOrPartialCursor":799,"ColumnList":800,"ColumnList_EDIT":801,"SimpleValueList":802,"PartitionExpression":803,"PartitionExpression_EDIT":804,"LocalOrSchemaQualifiedName":805,"LocalOrSchemaQualifiedName_EDIT":806,"BasicIdentifierChain":807,"BasicIdentifierChain_EDIT":808,"DerivedColumnChain":809,"DerivedColumnChain_EDIT":810,"PartialBacktickedIdentifierOrPartialCursor":811,"RightSquareBracketOrError":812,"OptionalTypeLength":813,"OptionalTypePrecision":814,"DESCRIBE":815,"SelectStatement":816,"OptionalUnions":817,"SelectStatement_EDIT":818,"OptionalUnions_EDIT":819,"TableExpression":820,"Unions":821,"Unions_EDIT":822,"UnionClause":823,"UnionClause_EDIT":824,"TableExpression_EDIT":825,"WithQueries":826,"WithQueries_EDIT":827,"WithQuery":828,"WithQuery_EDIT":829,"OptionalJoins":830,"Joins":831,"Joins_INVALID":832,"TableReferenceList":833,"OptionalLateralViews":834,"TableReferenceList_EDIT":835,"OptionalLateralViews_EDIT":836,"OptionalGroupByClause":837,"OptionalHavingClause":838,"OptionalWindowClause":839,"OptionalOrderByClause":840,"OptionalClusterOrDistributeBy":841,"OptionalLimitClause":842,"GroupByClause_EDIT":843,"HavingClause_EDIT":844,"WindowClause_EDIT":845,"OrderByClause_EDIT":846,"ClusterOrDistributeBy_EDIT":847,"LimitClause_EDIT":848,"WhereClause":849,"GroupByClause":850,"HavingClause":851,"WindowClause":852,"OrderByClause":853,"ClusterOrDistributeBy":854,"LimitClause":855,"SearchCondition":856,"SearchCondition_EDIT":857,"GroupByColumnList":858,"OptionalGroupingSetsCubeOrRollup":859,"GroupByColumnList_EDIT":860,"OptionalGroupingSetsCubeOrRollup_EDIT":861,"GroupingSets":862,"GroupingSets_EDIT":863,"ColumnGroupingSets":864,"ColumnGroupingSets_EDIT":865,"ColumnGroupingSet_EDIT":866,"GroupByColumnListPartTwo_EDIT":867,"OrderByColumnList":868,"OrderByColumnList_EDIT":869,"OrderByIdentifier":870,"OrderByIdentifier_EDIT":871,"OptionalNullsFirstOrLast":872,"NullsFirstOrLast_EDIT":873,"NullsFirstOrLast":874,"ClusterByClause":875,"DistributeByClause":876,"SortByClause":877,"ClusterByClause_EDIT":878,"DistributeByClause_EDIT":879,"SortByClause_EDIT":880,"SORT":881,"SortByList":882,"SortByList_EDIT":883,"SortByIdentifier":884,"SortByIdentifier_EDIT":885,"NonParenthesizedValueExpressionPrimary":886,"TableSubQuery":887,"ValueExpressionList":888,"BETWEEN_AND":889,"LikeRightPart":890,"CaseRightPart":891,"NonParenthesizedValueExpressionPrimary_EDIT":892,"TableSubQuery_EDIT":893,"ValueExpressionInSecondPart_EDIT":894,"LikeRightPart_EDIT":895,"CaseRightPart_EDIT":896,"EndOrError":897,"ValueExpressionList_EDIT":898,"ColumnOrArbitraryFunctionRef":899,"ArbitraryFunctionRightPart":900,"ArbitraryFunctionName":901,"UserDefinedFunction":902,"UnsignedValueSpecification_EDIT":903,"ColumnOrArbitraryFunctionRef_EDIT":904,"ArbitraryFunctionRightPart_EDIT":905,"UserDefinedFunction_EDIT":906,"SignedInteger":907,"+":908,"UnsignedLiteral":909,"UnsignedLiteral_EDIT":910,"GeneralLiteral":911,"GeneralLiteral_EDIT":912,"ExactNumericLiteral":913,"ApproximateNumericLiteral":914,"TruthValue":915,"SelectSpecification":916,"OptionalCorrelationName":917,"SelectSpecification_EDIT":918,"OptionalCorrelationName_EDIT":919,"TableReference":920,"TableReference_EDIT":921,"TablePrimaryOrJoinedTable":922,"TablePrimaryOrJoinedTable_EDIT":923,"TablePrimary":924,"JoinedTable":925,"TablePrimary_EDIT":926,"JoinedTable_EDIT":927,"Joins_EDIT":928,"JoinType":929,"OptionalJoinCondition":930,"Join_EDIT":931,"JoinType_EDIT":932,"JoinCondition_EDIT":933,"UsingColList":934,"TableOrQueryName":935,"OptionalTableSample":936,"DerivedTable":937,"TableOrQueryName_EDIT":938,"OptionalTableSample_EDIT":939,"DerivedTable_EDIT":940,"OptionalOnColumn":941,"OptionalOnColumn_EDIT":942,"PushQueryState":943,"PopQueryState":944,"SubQuery":945,"SubQuery_EDIT":946,"QueryExpression":947,"QueryExpression_EDIT":948,"QueryExpressionBody":949,"QueryExpressionBody_EDIT":950,"NonJoinQueryExpression":951,"NonJoinQueryExpression_EDIT":952,"NonJoinQueryTerm":953,"NonJoinQueryTerm_EDIT":954,"NonJoinQueryPrimary":955,"NonJoinQueryPrimary_EDIT":956,"SimpleTable":957,"SimpleTable_EDIT":958,"LateralView":959,"LateralView_EDIT":960,"AggregateFunction":961,"OptionalOverClause":962,"AnalyticFunction":963,"OverClause":964,"CastFunction":965,"ExtractFunction":966,"AggregateFunction_EDIT":967,"OptionalOverClause_EDIT":968,"AnalyticFunction_EDIT":969,"OverClause_EDIT":970,"CastFunction_EDIT":971,"ExtractFunction_EDIT":972,"ArbitraryFunction":973,"ArbitraryFunction_EDIT":974,"CountFunction":975,"SumFunction":976,"OtherAggregateFunction":977,"CountFunction_EDIT":978,"SumFunction_EDIT":979,"OtherAggregateFunction_EDIT":980,"WindowExpression":981,"WindowExpression_EDIT":982,"OptionalPartitionBy":983,"OptionalOrderByAndWindow":984,"PartitionBy_EDIT":985,"OptionalOrderByAndWindow_EDIT":986,"PartitionBy":987,"OptionalWindowSpec":988,"WindowSpec_EDIT":989,"WindowSpec":990,"RowsOrRange":991,"PopLexerState":992,"OptionalCurrentOrPreceding":993,"OptionalAndFollowing":994,"UNBOUNDED":995,"OptionalCurrentOrPreceding_EDIT":996,"OptionalAndFollowing_EDIT":997,"HDFS_PATH":998,"HDFS_END_QUOTE":999,"IntegerOrUnbounded":1000,"EXTRACT":1001,"DateField":1002,"OtherAggregateFunction_Type":1003,"FromOrComma":1004,"OptionalOuter":1005,"LateralViewColumnAliases":1006,"LateralViewColumnAliases_EDIT":1007,"SetOption":1008,"SetValue":1009,"ShowColumnsStatement":1010,"ShowCompactionsStatement":1011,"ShowConfStatement":1012,"ShowCreateTableStatement":1013,"ShowCurrentRolesStatement":1014,"ShowDatabasesStatement":1015,"ShowFunctionsStatement":1016,"ShowGrantStatement":1017,"ShowIndexStatement":1018,"ShowLocksStatement":1019,"ShowMaterializedViewsStatement":1020,"ShowPartitionsStatement":1021,"ShowRolesStatement":1022,"ShowRoleStatement":1023,"ShowTablesStatement":1024,"ShowTableStatement":1025,"ShowTblPropertiesStatement":1026,"ShowTransactionsStatement":1027,"ShowViewsStatement":1028,"ShowColumnsStatement_EDIT":1029,"ShowCreateTableStatement_EDIT":1030,"ShowCurrentRolesStatement_EDIT":1031,"ShowDatabasesStatement_EDIT":1032,"ShowGrantStatement_EDIT":1033,"ShowIndexStatement_EDIT":1034,"ShowLocksStatement_EDIT":1035,"ShowMaterializedViewsStatement_EDIT":1036,"ShowPartitionsStatement_EDIT":1037,"ShowRoleStatement_EDIT":1038,"ShowTablesStatement_EDIT":1039,"ShowTableStatement_EDIT":1040,"ShowTblPropertiesStatement_EDIT":1041,"ShowViewsStatement_EDIT":1042,"TableOrView":1043,"OptionalPrincipalName":1044,"OptionalPrincipalName_EDIT":1045,"OptionalInOrFromDatabase":1046,"OptionalLike":1047,"InOrFromDatabase_EDIT":1048,"Like_EDIT":1049,"TargetTable":1050,"OptionalFromJoinedTable":1051,"TargetTable_EDIT":1052,"FromJoinedTable_EDIT":1053,"TableName":1054,"TableName_EDIT":1055,"SetClause":1056,"SetClause_EDIT":1057,"SetTarget":1058,"UpdateSource":1059,"UpdateSource_EDIT":1060,"CaseWhenThenList":1061,"CaseWhenThenList_EDIT":1062,"CaseWhenThenListPartTwo":1063,"CaseWhenThenListPartTwo_EDIT":1064,"$accept":0,"$end":1}, -terminals_: {2:"error",26:"SET",27:"CURSOR",44:"ALTER",47:"DBPROPERTIES",50:"OWNER",54:"INDEX",55:"ON",58:"REBUILD",61:"MATERIALIZED",62:"VIEW",64:"REWRITE",66:"ADD",71:"CONSTRAINT",74:"RENAME",75:"TO",78:"SKEWED",79:"BY",84:"RECOVER",85:"PARTITIONS",86:"TOUCH",88:"NOT",89:"STORED_AS_DIRECTORIES",90:"SKEWED_LOCATION",92:"CHANGE",93:"COLUMN",99:"REPLACE",107:"STORED",108:"AS",116:"(",118:")",123:",",126:"=",127:"FILEFORMAT",129:"TBLPROPERTIES",130:"SERDE",132:"SERDEPROPERTIES",134:"CONCATENATE",135:"COMPACT",150:"AND",151:"WAIT",152:"WITH",153:"OVERWRITE",154:"COLUMNS",156:"EXCHANGE",158:"TABLE",161:"PARTITION",166:"DROP",174:"AFTER",175:"FIRST",176:"ENABLE",177:"DISABLE",178:"NO_DROP",180:"OFFLINE",181:"ARCHIVE",182:"UNARCHIVE",193:"ColumnReferences",198:"MSCK",202:"REPAIR",204:"SYNC",205:"RELOAD",206:"FUNCTION",208:"NULL",216:"SetSpecification_EDIT",217:"ANALYZE",218:"COMPUTE",219:"STATISTICS",227:"FOR",228:"CACHE",229:"METADATA",230:"NOSCAN",231:"EXPLAIN",233:"FORMATTED",234:"AST",235:"AUTHORIZATION",236:"CBO",238:"DEPENDENCY",239:"EXTENDED",240:"LOCKS",241:"VECTORIZATION",244:"COST",245:"JOINCOST",246:"ONLY",247:"DETAIL",248:"EXPRESSION",249:"OPERATOR",250:"SUMMARY",266:"CREATE",277:"COMMENT",279:"SINGLE_QUOTE",280:"DOUBLE_QUOTE",281:"VALUE",307:"LIKE",317:"PRIMARY",318:"KEY",320:"UNIQUE",321:"DEFAULT",323:"CHECK",328:"LITERAL",329:"CURRENT_USER",330:"CURRENT_DATE",331:"CURRENT_TIMESTAMP",333:"NOVALIDATE",347:"ARRAY",348:"<",349:">",351:"MAP",352:"STRUCT",358:":",359:"UNIONTYPE",371:"FOREIGN",372:"REFERENCES",373:"RELY",374:"NORELY",376:"PARTITIONED",381:"COMPARISON_OPERATOR",382:"CLUSTERED",384:"INTO",385:"UNSIGNED_INTEGER",386:"BUCKETS",396:"DISTRIBUTED",397:"SORTED",409:"ROW",410:"FORMAT",417:"AVRO",418:"INPUTFORMAT",419:"OUTPUTFORMAT",420:"JSONFILE",421:"ORC",422:"PARQUET",423:"RCFILE",424:"SEQUENCEFILE",425:"TEXTFILE",428:"DELIMITED",439:"FIELDS",440:"TERMINATED",442:"ESCAPED",443:"COLLECTION",444:"ITEMS",445:"KEYS",446:"LINES",447:"DEFINED",460:"TEMPORARY",464:"USING",468:"FILE",469:"JAR",473:"ROLE",486:"DEFERRED",487:"IDXPROPERTIES",488:"IN",491:"MACRO",499:"LIFECYCLE",532:"PURGE",533:"TRUNCATE",534:"DELETE",535:"FROM",538:"ABORT",539:"TRANSACTIONS",542:"GRANT",556:"DATABASE",561:"ALL",562:"INSERT",563:"LOCK",564:"SELECT",565:"SHOW_DATABASE",566:"UPDATE",567:"USER",568:"GROUP",569:"OPTION",570:"ADMIN",571:"REVOKE",574:"PRIVILEGES",586:"VALUES",588:"LOCAL",589:"DIRECTORY",592:"OVERWRITE_DIRECTORY",595:"OptionalStoredAs_EDIT",608:"MERGE",615:"WHEN",617:"MATCHED",619:"THEN",625:"LOAD",626:"DATA",628:"INPATH",633:"IMPORT",638:"EXTERNAL",639:"EXPORT",640:"REPLICATION",644:"EOF",647:";",649:"BUCKET",650:"CASCADE",651:"COMPACTIONS",652:"DATABASES",653:"DAY",654:"DAYOFWEEK",655:"DOUBLE_PRECISION",656:"FUNCTIONS",657:"HOUR",658:"LAST",659:"LOCATION",660:"MINUTE",661:"MONTH",662:"PERCENT",663:"QUARTER",664:"RESTRICT",665:"ROLES",666:"SCHEMAS",667:"SECOND",668:"SETS",669:"SHOW",670:"STRING",671:"TABLES",672:"TINYINT",673:"TRANSACTIONAL",674:"USE",675:"WEEK",676:"YEAR",677:"REGULAR_IDENTIFIER",678:"VARIABLE_REFERENCE",680:"!",681:"*",682:"-",683:".",684:"[",685:"]",686:"ANALYTIC",687:"ARITHMETIC_OPERATOR",688:"ASC",689:"AVG",690:"BACKTICK",691:"BETWEEN",692:"BIGINT",693:"BINARY",694:"BOOLEAN",695:"CASE",696:"CAST",697:"CHAR",698:"CLUSTER",699:"COLLECT_LIST",700:"COLLECT_SET",701:"CONF",702:"CORR",703:"COUNT",704:"COVAR_POP",705:"COVAR_SAMP",706:"CROSS",707:"CUBE",708:"CURRENT",709:"DATE",710:"DECIMAL",711:"DESC",712:"DISTINCT",713:"DISTRIBUTE",714:"DOUBLE",715:"ELSE",716:"END",717:"EXISTS",718:"FALSE",719:"FLOAT",720:"FOLLOWING",721:"FULL",722:"GROUPING",723:"HAVING",724:"HDFS_START_QUOTE",725:"HISTOGRAM_NUMERIC",726:"IF",727:"INDEXES",728:"INNER",729:"INT",730:"INTEGER",731:"IS",732:"JOIN",733:"LATERAL",734:"LEFT",735:"LIMIT",736:"MAX",737:"MIN",738:"NONE",739:"NTILE",740:"NULLS",741:"OF",742:"OR",743:"ORDER",744:"OUT",745:"OUTER",746:"OVER",747:"PERCENTILE",748:"PERCENTILE_APPROX",749:"PRECEDING",750:"RANGE",751:"REGEXP",752:"RIGHT",753:"RLIKE",754:"ROLLUP",755:"ROWS",756:"SCHEMA",757:"SEMI",758:"SMALLINT",759:"STDDEV_POP",760:"STDDEV_SAMP",761:"SUM",762:"TABLESAMPLE",763:"TIMESTAMP",764:"TRUE",765:"UNION",766:"UNSIGNED_INTEGER_E",767:"VAR_POP",768:"VAR_SAMP",769:"VARCHAR",770:"VARIANCE",771:"VIEWS",772:"WHERE",773:"WINDOW",774:"~",775:"PARTIAL_CURSOR",780:"PARTIAL_VALUE",815:"DESCRIBE",881:"SORT",889:"BETWEEN_AND",908:"+",995:"UNBOUNDED",998:"HDFS_PATH",999:"HDFS_END_QUOTE",1001:"EXTRACT"}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,2],[16,1],[16,1],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,2],[30,6],[30,5],[30,6],[37,3],[37,4],[37,5],[37,5],[37,6],[37,6],[31,7],[38,4],[38,5],[38,5],[38,6],[38,7],[32,6],[39,3],[39,4],[39,4],[39,5],[39,6],[33,6],[33,5],[33,3],[33,4],[33,2],[33,7],[33,2],[33,3],[33,3],[33,3],[33,3],[33,3],[33,4],[33,4],[33,5],[33,6],[33,2],[33,2],[33,3],[40,1],[40,6],[40,2],[40,4],[40,2],[40,7],[40,2],[40,3],[40,3],[40,3],[40,3],[40,3],[40,4],[40,4],[40,5],[40,6],[40,2],[40,2],[40,3],[40,4],[40,3],[40,3],[40,6],[40,6],[40,7],[40,6],[40,4],[40,5],[40,5],[40,5],[40,3],[40,3],[40,2],[40,2],[40,3],[40,4],[40,5],[40,4],[40,5],[40,3],[40,4],[40,4],[40,3],[40,4],[40,4],[40,4],[40,7],[40,5],[40,8],[40,7],[40,3],[40,3],[40,2],[40,2],[40,2],[40,3],[40,4],[40,4],[40,3],[40,3],[40,3],[40,4],[115,3],[119,3],[117,1],[117,3],[120,1],[120,3],[120,5],[120,3],[122,3],[124,1],[97,3],[97,2],[97,3],[97,4],[97,3],[97,1],[97,1],[97,4],[97,2],[97,6],[112,1],[112,3],[112,6],[112,7],[112,6],[112,5],[112,4],[112,4],[112,2],[112,2],[112,3],[112,2],[112,5],[112,4],[136,0],[136,2],[146,2],[137,0],[137,4],[147,2],[147,3],[133,4],[143,4],[143,5],[83,5],[106,2],[106,3],[106,4],[106,5],[106,5],[106,2],[106,5],[157,4],[157,4],[160,4],[160,4],[162,3],[162,5],[164,3],[164,5],[96,4],[96,3],[113,3],[113,4],[113,5],[113,3],[113,2],[113,2],[65,3],[98,3],[98,3],[114,1],[114,1],[142,0],[142,2],[173,1],[173,1],[145,2],[145,2],[139,0],[139,1],[63,1],[63,1],[138,2],[138,1],[148,3],[87,1],[87,1],[168,1],[168,3],[170,1],[170,3],[170,5],[170,3],[170,3],[170,3],[170,5],[70,0],[70,1],[184,1],[184,2],[101,1],[101,2],[101,2],[101,3],[186,2],[186,2],[185,2],[91,3],[109,3],[187,1],[187,3],[188,1],[188,3],[188,5],[188,3],[189,3],[190,1],[190,1],[190,3],[190,3],[190,3],[82,0],[82,1],[111,2],[111,3],[34,4],[34,3],[41,1],[41,2],[41,3],[41,3],[41,3],[194,3],[196,3],[196,3],[35,5],[42,3],[42,4],[42,4],[42,5],[42,6],[199,0],[199,1],[200,0],[200,2],[201,2],[203,1],[203,1],[203,1],[36,2],[43,2],[207,1],[207,1],[209,2],[209,2],[209,2],[209,1],[209,1],[209,1],[212,1],[212,2],[212,2],[212,2],[212,2],[212,2],[212,2],[212,1],[212,2],[212,1],[212,1],[212,1],[212,1],[5,9],[18,2],[18,3],[18,4],[18,4],[18,5],[18,6],[18,10],[18,10],[18,10],[18,4],[18,9],[18,9],[18,9],[18,9],[18,9],[220,0],[220,1],[223,2],[225,2],[221,0],[221,1],[224,2],[226,2],[222,0],[222,1],[210,2],[213,3],[213,3],[232,0],[232,1],[232,1],[232,3],[232,2],[232,1],[232,1],[232,1],[232,3],[237,0],[237,1],[237,1],[242,0],[242,1],[243,0],[243,1],[243,1],[243,1],[243,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,5],[251,5],[259,4],[259,3],[259,5],[259,4],[259,6],[271,3],[274,3],[274,3],[272,0],[272,1],[276,2],[275,1],[278,2],[278,2],[278,3],[278,3],[273,0],[273,1],[282,3],[282,2],[282,2],[48,3],[283,1],[283,3],[284,3],[252,8],[260,7],[260,7],[260,6],[286,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[289,2],[297,2],[297,2],[304,0],[304,1],[304,2],[305,1],[305,2],[305,2],[94,3],[94,5],[155,3],[155,5],[155,5],[308,1],[308,3],[310,1],[310,3],[310,3],[310,5],[310,2],[310,4],[310,4],[310,6],[141,4],[144,4],[144,4],[313,0],[313,1],[315,1],[315,2],[316,3],[316,1],[316,2],[316,3],[316,1],[316,3],[316,5],[316,1],[319,3],[322,1],[322,3],[322,3],[322,3],[322,1],[325,0],[325,1],[325,1],[332,0],[332,1],[326,0],[326,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[314,1],[314,1],[314,1],[314,1],[335,4],[339,3],[343,4],[343,4],[336,6],[340,3],[344,6],[344,4],[344,6],[344,5],[337,4],[341,3],[345,4],[353,1],[353,3],[354,1],[354,2],[354,3],[354,3],[354,5],[355,4],[356,5],[356,4],[356,4],[356,4],[356,3],[356,3],[338,4],[342,3],[346,4],[360,1],[360,3],[361,1],[361,2],[361,3],[361,3],[361,5],[362,2],[362,2],[362,1],[362,1],[350,1],[350,1],[309,1],[309,1],[309,3],[311,1],[311,3],[311,1],[311,3],[311,3],[363,1],[363,3],[364,1],[364,3],[73,4],[365,4],[365,5],[366,3],[366,6],[366,4],[367,3],[367,3],[72,5],[103,1],[103,2],[103,6],[368,6],[104,2],[104,3],[104,4],[104,5],[104,5],[104,6],[327,0],[327,1],[327,1],[369,2],[370,2],[290,0],[290,1],[375,3],[298,2],[298,3],[298,3],[298,2],[298,2],[298,3],[377,0],[377,1],[378,3],[379,2],[379,3],[380,1],[380,1],[291,0],[291,1],[77,7],[105,2],[105,4],[105,7],[105,5],[105,7],[105,7],[105,4],[388,0],[388,1],[388,2],[392,1],[392,1],[392,2],[392,2],[389,3],[393,2],[393,3],[390,3],[394,2],[394,3],[391,3],[395,2],[395,3],[383,0],[383,3],[387,2],[387,3],[398,3],[399,3],[400,1],[400,3],[401,1],[401,3],[401,3],[401,5],[402,2],[403,3],[403,2],[403,2],[292,0],[292,1],[405,5],[405,6],[299,2],[299,4],[81,3],[406,1],[406,3],[293,0],[293,1],[408,3],[300,2],[300,3],[300,3],[294,0],[294,1],[413,1],[413,3],[301,2],[301,1],[416,0],[416,1],[414,3],[415,3],[128,1],[128,4],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[411,1],[411,2],[412,1],[426,6],[427,6],[427,6],[427,6],[427,6],[427,6],[429,0],[429,4],[429,7],[434,2],[434,3],[434,6],[430,0],[430,5],[435,2],[435,3],[435,4],[431,0],[431,5],[436,2],[436,3],[436,4],[432,0],[432,4],[437,2],[437,3],[433,0],[433,4],[438,2],[438,3],[131,0],[131,1],[448,3],[149,2],[149,3],[295,0],[295,1],[449,2],[296,0],[296,1],[450,3],[302,3],[302,3],[451,0],[254,14],[262,3],[262,5],[262,14],[262,13],[262,13],[262,13],[262,13],[262,13],[262,13],[262,14],[452,0],[452,2],[453,2],[253,9],[261,4],[261,10],[261,3],[261,7],[261,8],[261,9],[261,9],[261,9],[256,1],[256,6],[263,1],[263,4],[263,6],[263,7],[456,6],[458,5],[461,1],[462,1],[457,0],[457,2],[459,2],[465,1],[465,3],[466,2],[467,1],[467,1],[467,1],[454,0],[454,1],[470,3],[455,3],[471,2],[471,4],[472,3],[472,5],[472,5],[472,7],[255,3],[257,17],[264,4],[264,5],[264,6],[264,6],[264,7],[264,8],[264,9],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,18],[474,1],[480,1],[476,1],[482,1],[477,0],[477,3],[483,2],[483,3],[478,0],[478,2],[479,0],[479,3],[484,2],[484,3],[484,3],[475,3],[481,3],[489,1],[489,3],[490,1],[490,3],[490,3],[490,5],[258,6],[265,5],[265,6],[265,6],[265,6],[492,2],[492,3],[493,3],[495,1],[495,3],[496,1],[496,3],[496,3],[496,5],[497,2],[498,2],[498,2],[287,0],[287,2],[211,1],[211,1],[211,2],[211,1],[211,1],[211,1],[211,1],[211,1],[214,1],[214,1],[214,2],[214,2],[214,1],[214,1],[214,1],[214,1],[214,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,2],[515,5],[524,3],[524,3],[524,4],[524,5],[524,5],[524,6],[516,4],[516,5],[525,4],[525,5],[525,3],[525,4],[525,4],[525,5],[525,4],[517,3],[518,5],[526,3],[526,4],[526,5],[526,5],[526,6],[169,0],[169,1],[519,6],[527,4],[527,3],[527,5],[527,6],[527,6],[520,5],[528,3],[528,5],[528,4],[521,4],[529,3],[529,4],[529,4],[522,4],[530,4],[530,5],[530,3],[530,4],[530,4],[523,4],[531,2],[531,4],[531,4],[531,5],[531,4],[531,5],[500,4],[507,2],[507,3],[507,5],[507,4],[507,4],[8,3],[21,2],[540,1],[540,3],[9,6],[9,5],[9,6],[22,2],[22,3],[22,3],[22,4],[22,5],[22,5],[22,7],[22,6],[22,3],[22,4],[22,4],[22,6],[22,5],[22,5],[22,5],[22,7],[22,6],[544,0],[544,2],[550,2],[550,2],[554,2],[554,2],[554,1],[555,2],[555,2],[555,2],[555,1],[543,1],[543,3],[549,1],[549,3],[549,3],[549,5],[549,3],[549,3],[549,5],[557,2],[558,2],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[545,1],[545,3],[551,3],[551,3],[551,5],[51,2],[51,2],[51,2],[53,2],[53,2],[53,2],[547,1],[547,3],[546,0],[546,3],[552,2],[552,3],[548,0],[548,3],[553,2],[553,3],[10,5],[10,8],[10,4],[10,5],[10,7],[10,8],[10,5],[23,2],[23,2],[23,3],[23,4],[23,5],[23,5],[23,3],[23,4],[23,5],[23,5],[23,6],[23,7],[23,8],[23,8],[23,3],[23,4],[23,4],[23,4],[23,5],[23,5],[23,4],[23,5],[23,6],[23,7],[23,7],[23,7],[23,8],[23,8],[23,3],[23,4],[572,1],[572,2],[573,2],[501,1],[501,2],[501,2],[501,3],[508,1],[508,2],[508,2],[508,2],[508,2],[508,1],[508,2],[508,3],[508,2],[508,3],[508,3],[575,7],[575,6],[575,7],[575,5],[575,6],[580,2],[580,4],[580,6],[580,6],[580,6],[580,4],[580,7],[580,7],[580,7],[580,5],[580,5],[580,5],[580,4],[580,6],[580,6],[580,6],[577,1],[577,2],[581,1],[581,2],[581,2],[581,3],[597,3],[598,1],[598,3],[598,2],[598,3],[598,3],[587,1],[587,3],[599,3],[585,0],[585,1],[591,0],[591,3],[594,2],[594,3],[594,3],[578,3],[583,4],[583,3],[583,3],[502,4],[510,1],[510,2],[510,3],[510,3],[510,4],[510,4],[604,9],[606,2],[606,3],[606,3],[606,4],[606,5],[606,6],[606,7],[606,7],[606,8],[606,9],[609,3],[609,1],[610,3],[610,3],[610,1],[605,1],[605,2],[605,3],[607,1],[607,2],[607,2],[607,3],[607,3],[613,6],[614,3],[614,5],[614,4],[614,6],[614,6],[618,0],[618,2],[621,2],[620,3],[620,1],[620,3],[622,2],[622,3],[622,2],[503,11],[511,2],[511,4],[511,6],[511,7],[511,8],[511,9],[511,11],[511,12],[511,11],[511,11],[511,11],[629,0],[629,1],[627,0],[627,1],[630,0],[630,1],[632,4],[631,3],[504,6],[512,3],[512,3],[512,2],[512,6],[512,6],[512,7],[512,7],[512,6],[512,7],[634,0],[634,1],[636,4],[636,3],[637,2],[637,3],[637,4],[637,4],[637,2],[637,3],[637,3],[505,7],[505,12],[513,2],[513,3],[513,3],[513,5],[513,4],[513,7],[513,8],[513,9],[513,7],[513,12],[513,8],[513,13],[513,7],[513,12],[513,12],[641,3],[645,3],[645,3],[642,0],[643,0],[643,1],[643,4],[646,1],[646,4],[646,4],[646,7],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[648,1],[270,1],[270,1],[270,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[679,1],[357,1],[357,2],[183,1],[183,1],[776,1],[776,1],[45,1],[45,1],[777,1],[777,1],[778,1],[778,1],[779,1],[779,1],[441,3],[441,2],[463,2],[781,3],[781,2],[782,2],[125,1],[125,1],[485,1],[485,1],[783,0],[783,1],[784,0],[784,1],[784,1],[269,0],[269,1],[785,2],[785,1],[786,2],[786,2],[787,0],[787,2],[789,2],[179,0],[179,1],[95,0],[95,1],[95,1],[267,0],[267,1],[268,0],[268,1],[167,0],[167,2],[171,2],[67,0],[67,3],[100,2],[100,3],[791,0],[791,2],[791,2],[57,0],[57,1],[60,1],[68,4],[102,4],[792,5],[794,2],[794,3],[794,4],[794,5],[794,5],[794,5],[793,1],[793,1],[793,1],[793,1],[795,1],[795,1],[795,3],[795,3],[796,1],[796,1],[798,1],[798,1],[799,1],[799,1],[797,2],[121,1],[121,1],[560,0],[560,1],[596,1],[80,3],[110,3],[110,3],[800,1],[800,3],[801,1],[801,3],[801,3],[801,3],[801,5],[801,5],[407,3],[802,1],[802,3],[56,1],[56,3],[59,1],[59,3],[59,3],[303,1],[303,3],[306,1],[306,3],[306,3],[788,1],[790,1],[163,1],[163,3],[165,1],[165,3],[165,3],[165,5],[803,3],[803,1],[804,3],[804,3],[804,3],[804,1],[69,0],[69,1],[49,2],[52,2],[46,1],[46,3],[46,2],[76,1],[76,3],[159,1],[159,3],[805,1],[805,2],[806,1],[806,2],[191,1],[191,3],[192,1],[807,1],[807,3],[808,1],[808,3],[808,5],[808,3],[808,3],[808,5],[809,1],[809,3],[810,1],[810,3],[810,5],[810,3],[810,1],[810,3],[810,5],[810,3],[140,1],[140,4],[140,3],[172,4],[172,4],[811,1],[811,1],[812,1],[812,1],[334,1],[334,1],[334,1],[334,2],[334,1],[334,2],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,2],[813,0],[813,3],[814,0],[814,3],[814,5],[11,5],[11,4],[11,4],[11,4],[24,4],[24,5],[24,6],[24,5],[24,5],[24,6],[24,5],[24,4],[24,3],[24,4],[24,5],[24,4],[24,5],[195,2],[195,3],[195,5],[197,2],[197,2],[197,4],[197,3],[197,3],[197,1],[197,4],[197,3],[816,3],[816,4],[817,0],[817,1],[819,1],[821,1],[821,2],[822,1],[822,2],[822,2],[822,3],[823,4],[824,3],[824,4],[824,4],[818,3],[818,3],[818,4],[818,4],[818,4],[818,5],[818,6],[818,4],[215,2],[509,2],[826,1],[826,3],[827,1],[827,3],[827,3],[827,5],[828,5],[829,2],[829,5],[829,5],[601,0],[601,1],[601,1],[820,2],[825,2],[825,4],[825,3],[830,0],[830,1],[830,1],[576,3],[582,2],[582,3],[582,3],[579,7],[584,7],[584,7],[584,7],[584,7],[584,7],[584,7],[584,7],[584,8],[584,8],[584,8],[584,8],[584,8],[584,8],[584,8],[536,0],[536,1],[849,2],[537,2],[537,2],[837,0],[837,1],[850,4],[843,4],[843,4],[843,2],[843,4],[859,0],[859,1],[859,2],[859,2],[861,1],[861,2],[862,5],[863,2],[863,5],[864,0],[864,1],[864,3],[864,3],[865,1],[865,3],[865,3],[865,5],[865,3],[866,1],[866,1],[858,1],[858,3],[860,1],[860,2],[860,3],[860,3],[860,3],[860,4],[860,5],[867,1],[867,2],[867,1],[840,0],[840,1],[853,3],[846,3],[846,2],[868,1],[868,3],[869,1],[869,2],[869,3],[869,4],[869,5],[870,3],[871,3],[871,3],[871,3],[404,0],[404,1],[404,1],[872,0],[872,1],[874,2],[874,2],[873,2],[841,0],[841,1],[854,1],[854,1],[854,2],[854,1],[847,1],[847,1],[847,2],[847,2],[847,1],[875,3],[878,2],[878,3],[878,3],[876,3],[879,2],[879,3],[879,3],[877,3],[880,2],[880,3],[882,1],[882,3],[883,1],[883,3],[883,3],[883,5],[884,2],[885,2],[885,2],[842,0],[842,1],[855,2],[855,4],[855,2],[855,4],[848,2],[856,1],[857,1],[324,1],[324,2],[324,2],[324,2],[324,2],[324,4],[324,4],[324,4],[324,6],[324,2],[324,3],[324,3],[324,3],[324,3],[324,3],[324,6],[324,6],[324,5],[324,5],[324,6],[324,5],[324,3],[324,3],[324,3],[324,3],[324,3],[324,2],[324,3],[324,2],[324,3],[494,1],[494,3],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,3],[494,4],[494,5],[494,4],[494,4],[494,4],[494,6],[494,6],[494,2],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,4],[494,3],[494,6],[494,6],[494,5],[494,5],[494,6],[494,6],[494,6],[494,6],[494,5],[494,4],[494,5],[494,5],[494,5],[494,5],[494,4],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,2],[494,3],[494,2],[494,3],[494,2],[494,3],[494,2],[494,3],[494,3],[494,4],[494,3],[494,3],[494,3],[888,1],[888,3],[898,1],[898,3],[898,3],[898,5],[898,3],[898,5],[898,4],[898,3],[898,2],[898,2],[898,4],[600,1],[600,3],[886,1],[886,1],[886,2],[886,2],[886,1],[886,1],[892,1],[892,1],[892,2],[892,2],[892,1],[899,1],[899,3],[904,1],[907,1],[907,2],[907,2],[285,1],[903,1],[909,1],[909,1],[910,1],[541,1],[541,1],[913,1],[913,2],[913,3],[913,2],[914,2],[914,3],[914,4],[911,1],[911,1],[911,1],[912,1],[912,1],[915,1],[915,1],[616,0],[616,1],[916,2],[916,1],[918,2],[918,3],[918,2],[602,1],[602,3],[603,1],[603,2],[603,3],[603,3],[603,3],[603,4],[603,3],[603,3],[603,4],[603,4],[603,4],[603,5],[603,5],[833,1],[833,3],[835,1],[835,3],[835,3],[835,5],[835,3],[920,1],[921,1],[922,1],[922,1],[923,1],[923,1],[925,2],[927,2],[927,2],[831,3],[831,4],[832,1],[832,2],[931,3],[931,1],[931,3],[931,3],[931,3],[928,1],[928,2],[928,2],[928,3],[929,2],[929,2],[929,3],[929,2],[929,1],[929,3],[929,2],[929,3],[929,3],[929,2],[929,3],[929,2],[929,3],[929,3],[929,2],[932,2],[932,3],[932,3],[932,2],[932,3],[932,3],[932,3],[932,3],[932,2],[932,3],[932,3],[932,3],[932,3],[932,2],[930,0],[930,2],[934,1],[934,3],[933,2],[933,2],[924,3],[924,2],[926,3],[926,3],[926,2],[926,2],[935,1],[938,1],[937,1],[940,1],[936,0],[936,9],[936,5],[936,5],[936,4],[939,4],[939,6],[939,7],[939,10],[939,9],[939,5],[941,0],[941,2],[942,2],[942,2],[943,0],[944,0],[887,3],[887,4],[893,3],[893,3],[611,2],[612,3],[945,1],[946,1],[947,1],[948,1],[949,1],[950,1],[951,1],[952,1],[953,1],[954,1],[955,1],[956,1],[957,1],[958,1],[917,0],[917,1],[917,1],[917,2],[917,2],[919,1],[919,1],[919,2],[919,2],[919,2],[834,0],[834,2],[836,3],[902,2],[902,2],[902,1],[902,1],[906,1],[906,2],[906,1],[906,2],[906,2],[906,2],[906,1],[906,1],[973,2],[973,2],[974,2],[974,2],[901,1],[901,1],[901,1],[901,1],[901,1],[900,2],[900,3],[905,3],[905,4],[905,3],[961,1],[961,1],[961,1],[967,1],[967,1],[967,1],[963,3],[963,4],[969,4],[969,5],[969,4],[962,0],[962,1],[968,1],[964,2],[964,2],[970,2],[981,4],[982,4],[982,4],[982,5],[982,7],[983,0],[983,1],[987,3],[985,2],[985,3],[985,3],[984,0],[984,2],[986,1],[986,3],[986,2],[988,0],[988,1],[990,5],[990,5],[989,2],[989,6],[989,5],[989,5],[989,5],[989,4],[992,0],[635,0],[590,3],[593,5],[593,4],[593,3],[593,3],[593,2],[991,1],[991,1],[993,0],[993,2],[993,2],[996,2],[996,2],[994,0],[994,3],[994,3],[997,2],[997,3],[997,3],[1000,1],[1000,1],[838,0],[838,1],[851,2],[844,2],[844,2],[839,0],[839,1],[852,4],[845,3],[845,4],[965,6],[965,3],[971,6],[971,5],[971,4],[971,6],[971,5],[971,4],[971,6],[971,5],[971,6],[971,5],[975,4],[975,3],[975,5],[978,5],[978,6],[978,5],[966,6],[972,4],[972,5],[972,6],[972,6],[972,6],[972,6],[1002,1],[1002,1],[1002,1],[1002,1],[1002,1],[1002,1],[1002,1],[1002,1],[1002,1],[977,4],[977,5],[980,5],[980,6],[980,5],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1004,1],[1004,1],[976,5],[976,3],[979,5],[979,6],[979,5],[959,6],[959,5],[959,5],[960,4],[960,5],[960,6],[960,6],[960,5],[960,6],[960,4],[960,2],[1005,0],[1005,1],[1006,2],[1006,4],[1007,2],[1007,4],[13,4],[13,2],[1008,1],[1008,3],[1009,1],[1009,1],[1009,2],[1009,1],[1009,1],[1009,1],[1009,1],[12,3],[12,3],[12,3],[25,3],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[28,2],[28,3],[28,4],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[1010,4],[1010,6],[1029,3],[1029,4],[1029,4],[1029,5],[1029,6],[1029,5],[1029,6],[1029,6],[1011,2],[1012,3],[1013,4],[1030,3],[1030,4],[1030,4],[1030,4],[1043,1],[1043,1],[1014,3],[1031,3],[1015,4],[1032,3],[1016,2],[1016,3],[1017,3],[1017,5],[1017,5],[1017,6],[1033,3],[1033,5],[1033,5],[1033,5],[1033,6],[1033,6],[1033,6],[1044,0],[1044,1],[1045,1],[1045,2],[1018,4],[1018,6],[1034,2],[1034,2],[1034,4],[1034,6],[1034,3],[1034,4],[1034,4],[1034,5],[1034,6],[1034,6],[1034,6],[1020,5],[1036,3],[1036,6],[1036,5],[1036,5],[1019,3],[1019,4],[1019,4],[1019,5],[1019,4],[1035,3],[1035,3],[1035,4],[1035,4],[1035,4],[1035,5],[1035,5],[1035,4],[1021,3],[1021,4],[1037,3],[1037,3],[1037,4],[1037,4],[1023,5],[1038,3],[1038,5],[1038,4],[1038,5],[1022,2],[1025,6],[1025,7],[1040,3],[1040,4],[1040,4],[1040,5],[1040,6],[1040,6],[1040,6],[1040,7],[1040,7],[1040,7],[1040,7],[1040,8],[1024,3],[1024,4],[1024,5],[1039,4],[1026,3],[1026,6],[1041,3],[1041,3],[1027,2],[1028,4],[1042,5],[1042,4],[1042,4],[1046,0],[1046,2],[1046,2],[1048,2],[1048,2],[1047,0],[1047,2],[1049,2],[506,6],[514,6],[514,6],[514,6],[514,6],[514,7],[514,3],[514,2],[514,2],[514,2],[1050,1],[1052,1],[1054,1],[1055,1],[623,1],[623,3],[624,1],[624,3],[624,3],[624,5],[1056,3],[1057,3],[1057,2],[1057,1],[1058,1],[1059,1],[1060,1],[1051,0],[1051,2],[1053,2],[1053,2],[15,2],[29,2],[894,3],[894,3],[894,3],[890,2],[890,2],[890,2],[895,2],[895,2],[895,2],[895,2],[895,2],[895,2],[891,2],[891,4],[896,2],[896,4],[896,4],[896,3],[896,4],[896,3],[896,4],[896,4],[896,3],[896,4],[896,3],[897,1],[897,1],[1061,1],[1061,2],[1062,1],[1062,2],[1062,3],[1062,3],[1062,2],[1063,4],[1064,2],[1064,3],[1064,4],[1064,4],[1064,3],[1064,3],[1064,4],[1064,2],[1064,3],[1064,2],[1064,3],[1064,3],[1064,4],[1064,3],[1064,4],[1064,4],[1064,5],[1064,4],[1064,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 22: - - parser.suggestSetOptions(); - parser.suggestKeywords(['ROLE']); - -break; -case 39: - - parser.suggestKeywords(['DATABASE', 'INDEX', 'MATERIALIZED VIEW', 'SCHEMA', 'TABLE', 'VIEW']); - -break; -case 40: case 42: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - -break; -case 41: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 43: case 938: case 1702: case 2539: case 2581: case 2600: case 2643: case 2644: case 2680: - - parser.suggestDatabases(); - -break; -case 44: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); - -break; -case 45: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); - -break; -case 46: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 47: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 48: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - -break; -case 49: case 55: case 1133: case 1142: case 1143: case 1144: case 1786: case 2591: - - parser.addTablePrimary($$[$0-2]); - -break; -case 50: case 127: case 576: case 598: case 601: case 604: case 627: case 877: case 1089: case 2559: case 2576: case 2578: - - parser.suggestKeywords(['ON']); - -break; -case 51: case 190: case 427: case 556: case 758: case 785: case 878: case 896: case 903: case 939: case 1139: case 1168: case 1171: case 1177: case 1693: case 2657: case 2677: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 53: case 278: case 282: case 319: case 552: case 558: case 866: case 894: case 899: case 900: case 901: case 906: case 1170: case 1180: case 1782: case 2589: case 2590: case 2602: - - parser.addTablePrimary($$[$0-1]); - -break; -case 54: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION', 'REBUILD']); - } else { - parser.suggestKeywords(['REBUILD']); - } - -break; -case 56: case 703: case 885: case 2472: - - parser.suggestKeywords(['VIEW']); - -break; -case 57: case 277: case 886: - - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 58: case 276: case 281: case 887: case 893: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 59: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['DISABLE REWRITE', 'ENABLE REWRITE']); - -break; -case 60: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['REWRITE']); - -break; -case 99: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); - } else { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 100: case 136: case 334: - - parser.suggestKeywords(['COLUMNS']); - -break; -case 104: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['LOCATION', 'PARTITION']); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - var keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2); - keywords.push({ value: 'PARTITION', weight: 1 }); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 107: - - parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'PRIMARY KEY', 'UNIQUE']); - -break; -case 110: case 118: case 130: case 187: case 233: case 234: case 235: case 2626: - - parser.suggestKeywords(['PARTITION']); - -break; -case 114: - - parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); - -break; -case 115: case 266: - - parser.suggestKeywords(['AS DIRECTORIES']); - -break; -case 116: case 267: - - parser.suggestKeywords(['DIRECTORIES']); - -break; -case 117: - - parser.suggestKeywords(['TO PARTITION']); - -break; -case 119: case 288: - - parser.suggestKeywords(['PARTITIONS']); - -break; -case 120: - - parser.suggestKeywords(['LOCATION']); - -break; -case 122: case 567: case 568: case 571: case 583: case 608: case 626: case 668: case 669: case 674: case 679: case 683: case 2348: - - parser.suggestKeywords(['BY']); - -break; -case 123: case 918: case 923: case 927: case 966: case 967: case 968: case 996: case 1004: case 1007: case 1010: case 1015: case 1018: - - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 128: - - if (!$$[$0-1]) { - parser.suggestKeywords(['STORED AS DIRECTORIES']); - } - -break; -case 134: - - parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', - 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', - 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', - 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', - 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); - -break; -case 135: - - parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', - 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', - 'SET SERDE', 'SET SERDEPROPERTIES']); - -break; -case 137: - - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); - -break; -case 138: - - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); - -break; -case 140: case 922: - - parser.suggestKeywords(['TO']); - -break; -case 141: case 1698: - - parser.suggestDatabases({ appendDot: true }); - -break; -case 151: - - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - -break; -case 161: case 164: case 166: - - parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); - -break; -case 163: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - -break; -case 165: - - if (!$$[$0-2] && !$$[$0-1]) { - if ($$[$0-3].suggestKeywords) { - var keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - } - } else if ($$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - parser.addColumnLocation($$[$0-4].location, [ $$[$0-4].identifier ]); - -break; -case 167: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); - } - -break; -case 170: - - parser.suggestKeywords(['NO_DROP', 'OFFLINE']); - -break; -case 172: case 646: - - parser.suggestFileFormats(); - -break; -case 174: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH SERDEPROPERTIES']); - } - -break; -case 178: - - parser.suggestKeywords(['WAIT']); - -break; -case 181: - - parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); - -break; -case 182: case 272: - - parser.suggestKeywords(['TBLPROPERTIES']); - -break; -case 185: - - if (!$$[$0-1]) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - -break; -case 188: - - parser.suggestKeywords(['WITH TABLE']); - -break; -case 189: case 316: case 757: case 784: case 895: case 1167: case 1176: case 2543: case 2564: - - parser.suggestKeywords(['TABLE']); - -break; -case 204: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); - } else { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 206: - - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 210: case 275: case 772: case 874: case 884: case 888: case 892: case 936: case 937: case 1106: case 1173: case 2542: case 2588: case 2601: case 2631: case 2660: - - parser.addTablePrimary($$[$0]); - -break; -case 211: case 318: case 869: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - -break; -case 212: case 280: case 317: - - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 219: case 259: case 261: case 621: case 788: case 1679: case 1683: case 1687: case 1713: case 1714: case 1747: case 1750: case 1903: case 1971: case 2671: - - parser.suggestColumns(); - -break; -case 227: - - if (!$$[$0-1]) { - parser.suggestKeywords(['CASCADE']); - } - -break; -case 242: case 451: case 453: case 454: case 456: case 457: case 1125: case 1832: case 1875: case 1906: case 1919: case 1923: case 1960: case 1964: case 1984: case 2009: case 2010: case 2091: case 2093: case 2157: case 2167: case 2174: case 2186: case 2347: case 2676: case 2714: case 2715: -this.$ = $$[$0]; -break; -case 249: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['LOCATION'] }; - } - -break; -case 271: - - parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); - -break; -case 273: case 699: case 722: case 1107: case 1842: case 2267: - - parser.suggestKeywords(['SELECT']); - -break; -case 279: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE', 'REPAIR TABLE']); - } else { - parser.suggestKeywords(['TABLE']); - } - -break; -case 283: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['ADD PARTITIONS', 'DROP PARTITIONS', 'SYNC PARTITIONS']); - } - -break; -case 293: - - parser.suggestKeywords(['FUNCTION']); - -break; -case 309: - - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - -break; -case 310: - - parser.suggestKeywords(['INSERT', 'SELECT']); - -break; -case 315: - - parser.addTablePrimary($$[$0-6]); - -break; -case 320: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); - } else { - parser.suggestKeywords(['COMPUTE STATISTICS']); - } - -break; -case 321: - - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['STATISTICS']); - -break; -case 322: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - -break; -case 323: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - -break; -case 324: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'NOSCAN', weight: 1 }])); - -break; -case 325: - - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($$[$0-1]); - -break; -case 326: - - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($$[$0-6]); - -break; -case 338: - - parser.suggestKeywords(['METADATA']); - -break; -case 342: - - if (!$$[$0-1]) { - parser.suggestDdlAndDmlKeywords([ - { value: 'AST', weight: 2 }, - { value: 'AUTHORIZATION', weight: 2 }, - { value: 'CBO', weight: 2 }, - { value: 'DEPENDENCY', weight: 2 }, - { value: 'EXTENDED', weight: 2 }, - { value: 'FORMATTED CBO', weight: 2 }, - { value: 'LOCKS', weight: 2 }, - { value: 'VECTORIZATION', weight: 2 } - ]); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - parser.suggestDdlAndDmlKeywords($$[$0-1].suggestKeywords); - } else { - parser.suggestDdlAndDmlKeywords(); - } - -break; -case 343: - - parser.suggestKeywords(['CBO']); - -break; -case 347: case 348: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['COST', 'JOINCOST'] }; - } - -break; -case 352: - - var keywords = []; - if (!$$[$0]) { - keywords = keywords.concat([ - { weight: 1, value: 'DETAIL' }, - { weight: 1, value: 'EXPRESSION' }, - { weight: 1, value: 'OPERATOR' }, - { weight: 1, value: 'SUMMARY' } - ]); - } - if (!$$[$0-1]) { - keywords.push({ weight: 2, value: 'ONLY' }); - } - if (keywords.length) { - this.$ = { suggestKeywords: keywords }; - } - -break; -case 378: - - if ($$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } else { - if ($$[$0-3] && !$$[$0-2]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); - } else if (!$$[$0-3] && !$$[$0-2]) { - parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); - } else if ($$[$0-2]) { - parser.suggestKeywords(['TABLE']); - } - } - -break; -case 379: - - parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); - -break; -case 380: case 407: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 382: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 383: - - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 384: - - parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); - -break; -case 385: - - var keywords = []; - if (!$$[$0]) { - keywords.push('WITH DBPROPERTIES'); - } - if (!$$[$0-1] && !$$[$0]) { - keywords.push('LOCATION'); - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 400: - - parser.suggestKeywords(['DBPROPERTIES']); - -break; -case 419: - - var keywords = []; - if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'COMMENT', weight: 10 }); - } - if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'PARTITIONED BY', weight: 9 }); - } - if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'CLUSTERED BY', weight: 8 }); - } - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'SKEWED BY', weight: 7 }); - } else if ($$[$0-6] && $$[$0-6].suggestKeywords && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 7)); // Get the last optional from SKEWED BY - } - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'ROW FORMAT', weight: 6 }); - } else if ($$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 6)); - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'STORED AS', weight: 5 }); - keywords.push({ value: 'STORED BY', weight: 5 }); - } else if ($$[$0-4] && $$[$0-4].storedBy && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 4 }); - } - if (!$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LOCATION', weight: 3 }); - } - if (!$$[$0-1]) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - parser.suggestKeywords(keywords); - -break; -case 420: - - parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); - this.$ = $$[$0]; - -break; -case 425: -this.$ = []; -break; -case 429: case 750: case 752: case 1105: case 1602: case 1605: case 1720: case 1798: case 1991: case 2170: case 2264: case 2322: -this.$ = $$[$0-1]; -break; -case 430: case 751: case 753: -this.$ = $$[$0-3]; -break; -case 433: - - parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); - -break; -case 434: case 1834: -this.$ = [$$[$0]]; -break; -case 435: -this.$ = $$[$0-2].concat($$[$0]); -break; -case 440: case 442: case 619: - - parser.checkForKeywords($$[$0-1]); - -break; -case 441: case 443: - - parser.checkForKeywords($$[$0-3]); - -break; -case 444: - - this.$ = $$[$0-3]; - this.$.type = $$[$0-2]; - var keywords = []; - if (!$$[$0]) { - keywords = keywords.concat([ - { value: 'COMMENT', weight: 1 }, - { value: 'CHECK', weight: 2 }, - { value: 'PRIMARY KEY', weight: 2 }, - { value: 'UNIQUE', weight: 2 }, - { value: 'NOT NULL', weight: 2 }, - { value: 'DEFAULT', weight: 2 } - ]); - if (!$$[$0-1] && $$[$0-2].toLowerCase() === 'double') { - keywords.push({ value: 'PRECISION', weight: 3 }); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - keywords = keywords.concat($$[$0-1].suggestKeywords) - } - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 445: case 487: case 493: case 494: case 507: case 510: case 522: case 524: case 810: - - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - -break; -case 452: -this.$ = { suggestKeywords: [{ value: 'KEY', weight: 3 }] }; -break; -case 455: -this.$ = { suggestKeywords: [{ value: 'NULL', weight: 3 }] }; -break; -case 458: - - this.$ = { - suggestKeywords: [ - { value: 'LITERAL', weight: 3 }, - { value: 'CURRENT_USER()', weight: 3 }, - { value: 'CURRENT_DATE()', weight: 3 }, - { value: 'CURRENT_TIMESTAMP()', weight: 3 }, - { value: 'NULL', weight: 3 } - ] - } - -break; -case 459: - - var keywords = []; - if (!$$[$0]) { - keywords.push({ value: 'RELY', weight: 3 }); - keywords.push({ value: 'NORELY', weight: 3 }); - if (!$$[$0-1]) { - keywords.push({ value: 'NOVALIDATE', weight: 3 }); - if (!$$[$0-2]) { - keywords.push({ value: 'RELY', weight: 3 }); - keywords.push({ value: 'NORELY', weight: 3 }); - } - } - } - if (keywords.length) { - this.$ = { suggestKeywords: keywords }; - } - -break; -case 492: - - parser.suggestKeywords(parser.getTypeKeywords()); - -break; -case 506: case 509: - - parser.suggestKeywords(['COMMENT']); - -break; -case 532: - - parser.suggestKeywords(['CONSTRAINT']); - -break; -case 542: - - parser.suggestKeywordsForOptionalsLR([$$[$0-1], $$[$0-2], $$[$0-3]], [ - [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], - { value: 'NOVALIDATE', weight: 2 }, - { value: 'DISABLE', weight: 3 } - ]); - -break; -case 546: - - parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'UNIQUE']); - -break; -case 551: - - parser.suggestKeywordsForOptionalsLR([$$[$0-1], $$[$0-2], $$[$0-3]], [ - [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], - { value: 'NOVALIDATE', weight: 2 }, - { value: 'DISABLE', weight: 1 }]); - -break; -case 553: case 563: - - parser.suggestKeywords(['KEY']); - -break; -case 555: - - parser.suggestKeywords(['REFERENCES']); - -break; -case 572: - - parser.suggestKeywords(['HASH', 'RANGE']); - -break; -case 586: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); - } else { - parser.suggestKeywords(['INTO']); - } - -break; -case 587: - - parser.suggestKeywords(['BUCKETS']); - -break; -case 595: - - parser.suggestKeywords(['SORTED ON']); - -break; -case 624: -this.$ = { suggestKeywords: ['STORED AS DIRECTORIES'] }; -break; -case 633: - - this.$ = $$[$0] - -break; -case 634: - - parser.suggestKeywords(['FORMAT']); - -break; -case 635: - - parser.suggestKeywords(['DELIMITED', 'SERDE']); - -break; -case 640: - - this.$ = { storedBy: true } - -break; -case 641: - - parser.suggestKeywords(['AS', 'BY']); - -break; -case 643: -this.$ = { suggestKeywords: ['STORED AS'] }; -break; -case 658: - - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; - } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-4].suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; - } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; - } - -break; -case 665: -this.$ = { suggestKeywords: ['ESCAPED BY'] }; -break; -case 667: case 673: case 678: case 682: - - parser.suggestKeywords(['TERMINATED BY']); - -break; -case 672: - - parser.suggestKeywords(['ITEMS TERMINATED BY']); - -break; -case 677: - - parser.suggestKeywords(['KEYS TERMINATED BY']); - -break; -case 686: - - parser.suggestKeywords(['DEFINED AS']); - -break; -case 687: case 728: case 732: case 761: case 1841: case 2397: - - parser.suggestKeywords(['AS']); - -break; -case 691: case 692: - - parser.suggestKeywords(['SERDEPROPERTIES']); - -break; -case 701: - - parser.commitLocations(); - -break; -case 704: case 717: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 705: - - parser.suggestKeywordsForOptionalsLR([undefined, $$[$0-2], $$[$0-3], $$[$0-4], $$[$0-5], $$[$0-6], $$[$0-7], $$[$0-8], $$[$0-9]], [ - { value: 'AS SELECT', weight: 1 }, - { value: 'TBLPROPERTIES', weight: 2 }, - { value: 'LOCATION', weight: 3 }, - [{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }], - [{ value: 'CLUSTERED ON', weight: 5 }, { value: 'DISTRIBUTED ON', weight: 5 }], - { value: 'PARTITIONED ON', weight: 6 }, - { value: 'COMMENT', weight: 7 }, - { value: 'DISABLE REWRITE', weight: 8 } - ]); - -break; -case 715: - - parser.suggestKeywords(['REWRITE']); - -break; -case 718: - - if (!$$[$0-7]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 721: - - var keywords = [{value: 'AS', weight: 1 }]; - if (!$$[$0-1]) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - if (!$$[$0-2]) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - } - parser.suggestKeywords(keywords); - -break; -case 730: - - if (!$$[$0-1]) { - parser.suggestKeywords(['USING']); - } else { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - -break; -case 734: - - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - -break; -case 737: - - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - -break; -case 747: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 756: - - parser.suggestKeywords(['ON TABLE']); - -break; -case 762: case 775: - - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - -break; -case 769: - - if ($$[$0-4] && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { - parser.suggestKeywords(['AS']); - } - -break; -case 771: - - if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if ($$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); - } else if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); - } - -break; -case 778: - - parser.suggestKeywords(['DEFERRED REBUILD']); - -break; -case 779: - - parser.suggestKeywords(['REBUILD']); - -break; -case 798: - - parser.suggestFunctions(); - -break; -case 824: - - parser.addCommonTableExpressions($$[$0-1]); - -break; -case 848: - - parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); - -break; -case 852: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - -break; -case 853: - - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - -break; -case 855: - - if (!$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 858: case 863: case 882: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 859: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 868: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 871: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 875: - - parser.suggestKeywords(['IF EXISTS']); - -break; -case 881: - - parser.suggestKeywords(['FUNCTION', 'MACRO']); - -break; -case 889: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 890: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 898: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 902: case 1009: case 1014: case 1017: case 1021: - - parser.suggestKeywords(['FROM']); - -break; -case 904: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - parser.suggestKeywords(['WHERE']); - } - -break; -case 908: - - parser.suggestKeywords(['TRANSACTIONS']); - -break; -case 914: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - -break; -case 917: - - if (!$$[$0-1]) { - parser.suggestKeywords(['ON', 'TO']); - } else { - parser.suggestKeywords(['TO']); - } - -break; -case 920: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - -break; -case 925: case 929: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - -break; -case 933: - - parser.suggestKeywords(['DATABASE', 'TABLE']); - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 942: - - if ($$[$0].toUpperCase() === 'ALL') { - this.$ = { singleAll: true }; - } - -break; -case 948: case 949: case 950: case 1000: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - -break; -case 979: - - parser.suggestKeywords(['GRANT OPTION']); - -break; -case 980: case 984: case 1024: - - parser.suggestKeywords(['OPTION']); - -break; -case 983: - - parser.suggestKeywords(['ADMIN OPTION']); - -break; -case 992: - - parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - -break; -case 995: - - if (!$$[$0-1]) { - if ($$[$0-2].singleAll) { - parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); - } else { - parser.suggestKeywords(['FROM', 'ON']); - } - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 998: - - parser.suggestKeywords(['OPTION FOR']); - -break; -case 999: case 1012: - - parser.suggestKeywords(['FOR']); - -break; -case 1003: - - if (!$$[$0-1]) { - parser.suggestKeywords(['FROM', 'ON']); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 1006: - - if ($$[$0-1].toUpperCase() === 'ADMIN') { - parser.suggestKeywords(['FROM', 'OPTION FOR']); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 1013: - - parser.suggestKeywords(['ROLE']); - -break; -case 1030: - - var keywords = []; - if ($$[$0-1].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); - } else { - keywords = ['SELECT']; - } - if ($$[$0-1].addValues) { - keywords.push({ weight: 1.1, value: 'VALUES' }); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 1033: - - if (!$$[$0].keepTables) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - -break; -case 1037: - - parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); - -break; -case 1038: - - if ($$[$0-1].cursorAtEnd) { - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = parser.yy.result.suggestKeywords || []; - if ($$[$0].suggestKeywords) { - keywords = keywords.concat($$[$0].suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - -break; -case 1039: - - if ($$[$0].cursorAtStart) { - parser.checkForSelectListKeywords($$[$0-1].tableExpression); - } - -break; -case 1040: - - $$[$0-3].owner = 'insert'; - parser.addTablePrimary($$[$0-3]); - -break; -case 1041: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] } - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['IF NOT EXISTS'] } - } - -break; -case 1042: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['STORED AS'] }; - } - -break; -case 1043: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['STORED AS'] }; - } - -break; -case 1044: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'], addValues: true }; - } else if (!$$[$0]) { - this.$ = { addValues: true }; - } - -break; -case 1045: - - parser.suggestKeywords(['OVERWRITE', 'INTO']); - -break; -case 1046: - - if (!$$[$0-1]) { - parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - this.$ = { keepTables: true } - -break; -case 1047: case 1058: - - this.$ = { keepTables: true } - -break; -case 1048: case 1059: case 1060: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - -break; -case 1049: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 1050: - - parser.suggestKeywords(['DIRECTORY']); - -break; -case 1057: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - this.$ = { keepTables: true } - -break; -case 1070: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); - } else { - parser.suggestKeywords(['SELECT']); - } - -break; -case 1071: - - if ($$[$0-1].cursorAtEnd) { - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = parser.yy.result.suggestKeywords || []; - if ($$[$0].suggestKeywords) { - keywords = keywords.concat($$[$0].suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - -break; -case 1080: - - parser.suggestKeywords(['FORMAT DELIMITED']); - -break; -case 1081: - - parser.suggestKeywords(['DELIMITED']); - -break; -case 1083: -this.$ = { selectList: $$[$0] }; -break; -case 1084: - - this.$ = $$[$0-1]; - this.$.cursorAtEnd = true; - -break; -case 1085: - - parser.selectListNoTableSuggest($$[$0], $$[$0-1]); - -break; -case 1086: - - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] || $$[$0-1] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - -break; -case 1090: case 1126: case 1712: case 1908: case 1909: case 1915: case 1916: case 2260: case 2349: - - parser.valueExpressionSuggest(); - -break; -case 1092: - - parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'WHEN', weight: 2 }]); - -break; -case 1094: - - $$[$0-6].alias = $$[$0-4]; - parser.addTablePrimary($$[$0-6]); - if ($$[$0-2].subQuery) { - parser.addTablePrimary({ subQueryAlias: $$[$0] }); - } else { - $$[$0-2].alias = $$[$0]; - } - -break; -case 1095: - - parser.suggestKeywords(['INTO']); - -break; -case 1096: - - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - -break; -case 1098: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['AS T USING']); - -break; -case 1099: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['T USING']); - -break; -case 1100: - - $$[$0-3].alias = $$[$0-1]; - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['USING']); - -break; -case 1101: - - $$[$0-4].alias = $$[$0-2]; - parser.addTablePrimary($$[$0-4]); - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - -break; -case 1102: - - $$[$0-4].alias = $$[$0-2]; - parser.addTablePrimary($$[$0-4]); - -break; -case 1103: - - $$[$0-5].alias = $$[$0-3]; - parser.addTablePrimary($$[$0-5]); - parser.suggestKeywords(['AS S ON']); - -break; -case 1104: - - $$[$0-6].alias = $$[$0-4]; - parser.addTablePrimary($$[$0-6]); - parser.suggestKeywords(['S ON']); - -break; -case 1113: - - if ($$[$0].suggestThenKeywords) { - parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); - } - -break; -case 1114: case 1116: - - if (!$$[$0-1].notPresent) { - parser.suggestKeywords(['WHEN']); - } - -break; -case 1115: - - if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { - var keywords = []; - if (!$$[$0-1].isDelete) { - keywords.push('DELETE'); - } - if (!$$[$0-1].isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$$[$0-1].isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - -break; -case 1117: - - if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { - var keywords = []; - if (!$$[$0-2].isDelete && !$$[$0-1].isDelete) { - keywords.push('DELETE'); - } - if (!$$[$0-2].isInsert && !$$[$0-1].isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$$[$0-2].isUpdate && !$$[$0-1].isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - -break; -case 1118: -this.$ = { notPresent: !!$$[$0-4], isDelete: $$[$0].isDelete, isInsert: $$[$0].isInsert, isUpdate: $$[$0].isUpdate }; -break; -case 1119: - - if (!$$[$0-1]) { - parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); - } else { - parser.suggestKeywords(['MATCHED']); - } - -break; -case 1120: - - if (!$$[$0-1]) { - parser.suggestKeywords(['AND', 'THEN']); - } else { - parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'THEN', weight: 2 }]); - } - -break; -case 1122: -this.$ = { suggestThenKeywords: true }; -break; -case 1127: -this.$ = { isUpdate: true }; -break; -case 1128: -this.$ = { isDelete: true }; -break; -case 1129: -this.$ = { isInsert: true }; -break; -case 1130: - - parser.suggestKeywords(['SET']); - -break; -case 1132: case 1652: case 1655: - - parser.suggestKeywords(['VALUES']); - -break; -case 1134: - - parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); - -break; -case 1135: - - if (!$$[$0-1]) { - parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); - } else { - parser.suggestKeywords(['INPATH']); - } - -break; -case 1137: - - if (!$$[$0-1]) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - -break; -case 1138: - - parser.suggestKeywords([ 'TABLE' ]); - -break; -case 1141: - - parser.addTablePrimary($$[$0-3]); - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['INPUTFORMAT', 'PARTITION']); - } else if ($$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['INPUTFORMAT']); - } - -break; -case 1152: - - parser.suggestKeywords(['SERDE']); - -break; -case 1154: - - if (!$$[$0]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); - } else if (!$$[$0].hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - -break; -case 1155: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['FROM'])); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 1159: - - if (!$$[$0-1]) { - parser.suggestKeywords(['LOCATION']); - } - -break; -case 1160: - - if (!$$[$0-4]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); - } else if (!$$[$0-4].hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - -break; -case 1162: - - if ($$[$0-5].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 2).concat(['FROM'])); - } - -break; -case 1165: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0]) { - this.$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; - } else { - this.$ = { hasExternal: true } - } - -break; -case 1166: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] }; - } - -break; -case 1174: case 1181: case 1188: - - parser.addTablePrimary($$[$0-4]); - -break; -case 1175: case 1189: case 1190: - - parser.addTablePrimary($$[$0-9]); - -break; -case 1179: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); - } else { - parser.suggestKeywords([ 'TO' ]); - } - -break; -case 1182: - - parser.addTablePrimary($$[$0-5]); - parser.suggestKeywords(['FOR replication()']); - -break; -case 1183: - - parser.addTablePrimary($$[$0-6]); - parser.suggestKeywords(['replication()']); - -break; -case 1186: - - parser.addTablePrimary($$[$0-5]); - if (!$$[$0-4]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1187: - - parser.addTablePrimary($$[$0-10]); - if (!$$[$0-9]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1192: case 1193: - - return parser.yy.result; - -break; -case 1194: - - parser.prepareNewStatement(); - -break; -case 1196: case 1198: case 1200: - - parser.addStatementLocation(_$[$0]); - -break; -case 1199: case 1201: - - parser.addStatementLocation(_$[$0-3]); - -break; -case 1603: case 1606: case 1721: -this.$ = ''; -break; -case 1621: - - parser.suggestKeywords(['INDEX', 'INDEXES']); - -break; -case 1622: - - parser.suggestKeywords(['FORMATTED']); - -break; -case 1636: case 1639: - - parser.yy.correlatedSubQuery = false; - -break; -case 1637: case 1641: - - parser.suggestKeywords(['EXISTS']); - -break; -case 1640: - - parser.suggestKeywords(['NOT EXISTS']); - -break; -case 1651: case 1653: case 1654: case 1656: - - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - -break; -case 1691: case 1722: - - parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0] } ] }; - -break; -case 1692: case 1723: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; - -break; -case 1694: case 1699: - - parser.suggestDatabases(); - this.$ = { identifierChain: [{ name: $$[$0-2] }] }; - -break; -case 1695: case 1725: - - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 1696: -this.$ = [{ name: $$[$0] }]; -break; -case 1697: -this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; -break; -case 1724: case 2634: - - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - -break; -case 1727: -this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; -break; -case 1730: - - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - -break; -case 1731: case 2125: - - parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); - -break; -case 1733: - - this.$ = [ $$[$0].identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 1734: - - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $$[$0-2].push($$[$0].identifier); - parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); - -break; -case 1735: case 1743: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1736: case 1744: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1739: - - parser.suggestColumns({ - identifierChain: $$[$0-2] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 1740: - - parser.suggestColumns({ - identifierChain: $$[$0-4] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 1741: -this.$ = [ $$[$0].identifier ]; -break; -case 1742: - - $$[$0-2].push($$[$0].identifier); - -break; -case 1745: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1746: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1748: - - parser.suggestColumns({ identifierChain: $$[$0-2] }); - -break; -case 1749: - - parser.suggestColumns({ identifierChain: $$[$0-4] }); - -break; -case 1751: -this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; -break; -case 1752: -this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; -break; -case 1753: -this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; -break; -case 1754: -this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; -break; -case 1755: -this.$ = { identifier: { name: $$[$0-3] }}; -break; -case 1781: - - parser.addTablePrimary($$[$0-2]); - parser.addColumnLocation(_$[$0-1], $$[$0-1]); - -break; -case 1783: - - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 1787: - - if (!$$[$0-4]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - -break; -case 1788: - - if (!$$[$0-3]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - -break; -case 1789: - - parser.addTablePrimary($$[$0-2]); - parser.suggestColumns(); - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1790: - - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1793: - - if (!$$[$0-1]) { - parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1794: case 1796: - - if (!$$[$0-1]) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 1795: case 1797: - - if (!$$[$0-2]) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 1800: case 2172: -this.$ = $$[$0-2]; -break; -case 1803: - - parser.addCommonTableExpressions($$[$0-3]); - -break; -case 1804: case 1805: case 1837: - - parser.addCommonTableExpressions($$[$0-2]); - -break; -case 1809: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); - this.$ = { selectList: $$[$0] }; - -break; -case 1810: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } - -break; -case 1821: - - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - -break; -case 1822: - - parser.suggestKeywords(['ALL', 'DISTINCT']); - -break; -case 1824: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); - if ($$[$0].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($$[$0]); - } - if ($$[$0].suggestFunctions) { - parser.suggestFunctions(); - } - if ($$[$0].suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($$[$0].suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($$[$0].suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($$[$0].suggestAggregateFunctions && (!$$[$0-1] || $$[$0-1] === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - -break; -case 1825: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] || $$[$0-1] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 1826: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - -break; -case 1827: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - -break; -case 1828: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 1829: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-2]); - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 1830: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-3]); - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 1831: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - -break; -case 1835: -this.$ = $$[$0-2].concat([$$[$0]]); -break; -case 1839: - - parser.addCommonTableExpressions($$[$0-4]); - -break; -case 1840: - - parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); - $$[$0-1].alias = $$[$0-4]; - this.$ = $$[$0-1]; - -break; -case 1847: case 1848: - - parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); - -break; -case 1849: - - var keywords = []; - - parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); - - if ($$[$0-3]) { - if (!$$[$0-3].hasLateralViews && typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($$[$0-3].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - } - if ($$[$0-3].tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); - } - if ($$[$0-3].tableReferenceList.suggestJoins) { - parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); - } - if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($$[$0-3].tableReferenceList); - } - } - } - - if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['CROSS', 'FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'LEFT SEMI', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($$[$0-1].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].suggestFilters) { - parser.suggestFilters($$[$0-1].suggestFilters); - } - if ($$[$0-1].suggestGroupBys) { - parser.suggestGroupBys($$[$0-1].suggestGroupBys); - } - if ($$[$0-1].suggestOrderBys) { - parser.suggestOrderBys($$[$0-1].suggestOrderBys); - } - - if ($$[$0-1].empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'CROSS JOIN', weight: 1 }, - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - -break; -case 1850: - - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$$[$0-1]) { - parser.addClauseLocation('whereClause', _$[$0-2]); - parser.addClauseLocation('limitClause', _$[$0-2]); - return; - } - parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); - var keywords = []; - - if ($$[$0-1].suggestColRefKeywords) { - parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); - parser.addColRefIfExists($$[$0-1]); - } - - if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - -break; -case 1854: - - this.$ = { tableReferenceList : $$[$0-1], suggestKeywords: ['LATERAL VIEW'] } - if ($$[$0]) { - parser.yy.lateralViews = $$[$0].lateralViews; - this.$.hasLateralViews = true; - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = this.$.suggestKeywords.concat($$[$0].suggestKeywords); - } - } - -break; -case 1855: case 2179: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1856: - - if ($$[$0]) { - parser.yy.lateralViews = $$[$0].lateralViews; - } - -break; -case 1858: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], - [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true, true, !$$[$0-2], true]); - - if (keywords.length > 0) { - this.$ = { suggestKeywords: keywords, empty: !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - } else { - this.$ = {}; - } - - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - -break; -case 1859: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - -break; -case 1860: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - -break; -case 1863: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - -break; -case 1866: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true, !$$[$0-2], true]); - if ($$[$0-7].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-7].suggestKeywords, 1)); - } - this.$ = parser.getValueExpressionKeywords($$[$0-7], keywords); - this.$.cursorAtEnd = !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if ($$[$0-7].columnReference) { - this.$.columnReference = $$[$0-7].columnReference; - } - if (!$$[$0-5]) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-7], _$[$0-7]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1867: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], - [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, !$$[$0-2], true]); - if ($$[$0-6].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 8)); - } - if ($$[$0-6].valueExpression) { - this.$ = parser.getValueExpressionKeywords($$[$0-6].valueExpression, keywords); - if ($$[$0-6].valueExpression.columnReference) { - this.$.columnReference = $$[$0-6].valueExpression.columnReference; - } - } else { - this.$ = { suggestKeywords: keywords }; - } - this.$.cursorAtEnd = !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1868: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], - [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, !$$[$0-2], true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1869: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], - [true, true, true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1870: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-1], $$[$0]], - [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], - [true, true]); - if ($$[$0-3].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 5)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-3], _$[$0-3]); - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1871: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'LIMIT', weight: 3 }], [true]); - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 4)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = _$[$0-2]; - this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; - -break; -case 1872: - - this.$ = { suggestKeywords: [], cursorAtEnd: true }; - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-7], _$[$0-7]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 1876: - - if ($$[$0].suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1877: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1880: - - this.$ = { valueExpression: $$[$0] ? false : $$[$0-1] }; - if (!$$[$0]) { - this.$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; - } - -break; -case 1881: case 1930: case 1955: case 1959: case 1962: - - parser.suggestSelectListAliases(); - -break; -case 1882: - - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1883: - - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1890: - - parser.suggestKeywords(['CUBE', 'ROLLUP']); - -break; -case 1892: - - parser.suggestKeywords(['SETS']); - -break; -case 1920: - - if ($$[$0].emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1921: - - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1925: - - this.$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 1926: case 1927: case 1928: -this.$ = { emptyOrderBy: false }; -break; -case 1929: - - if ($$[$0-1].suggestKeywords && $$[$0].suggestKeywords) { - this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); - } else { - this.$ = parser.mergeSuggestKeywords($$[$0]); - } - -break; -case 1931: - - this.$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 1933: -this.$ = { suggestKeywords: ['ASC', 'DESC'] };; -break; -case 1936: -this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; -break; -case 1940: - - parser.suggestKeywords(['FIRST', 'LAST']); - -break; -case 1944: -this.$ = { suggestKeywords: ['SORT BY'] }; -break; -case 1953: case 1957: case 1961: - - suggestKeywords: ['BY']; - -break; -case 1954: case 1958: - - parser.suggestColumns(); - parser.suggestSelectListAliases(); - -break; -case 1969: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - this.$ = $$[$0]; - -break; -case 1982: case 1983: - - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1985: - - // verifyType($$[$0], 'NUMBER'); - this.$ = $$[$0]; - $$[$0].types = ['NUMBER']; - -break; -case 1986: case 1987: case 1988: case 1989: case 1996: case 1997: case 1998: case 1999: case 2000: case 2001: case 2007: case 2008: case 2029: case 2087: case 2088: case 2146: -this.$ = { types: [ 'BOOLEAN' ] }; -break; -case 1990: - - this.$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - -break; -case 1992: case 1993: case 1994: case 1995: - - parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2002: case 2003: - - // verifyType($$[$0-2], 'BOOLEAN'); - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2004: case 2005: case 2006: - - // verifyType($$[$0-2], 'NUMBER'); - // verifyType($$[$0], 'NUMBER'); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 2012: - - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2013: case 2015: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 2014: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2016: - - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2017: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 2018: - - parser.suggestFunctions(); - parser.suggestColumns(); - this.$ = { types: [ 'T' ] }; - -break; -case 2019: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 2020: - - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 2021: - - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2022: - - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2023: - - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2024: case 2025: case 2026: - - parser.suggestKeywords(['NOT']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2027: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2028: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 2030: - - this.$ = $$[$0-1]; - -break; -case 2031: - - parser.valueExpressionSuggest(); - this.$ = { types: ['T'], typeSet: true }; - -break; -case 2032: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2033: case 2034: case 2035: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2036: case 2037: case 2038: case 2039: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0].types); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 2040: case 2042: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2041: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - -break; -case 2043: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; - -break; -case 2044: case 2045: case 2046: case 2047: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 2048: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-3].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2049: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2050: case 2051: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; -break; -case 2052: case 2053: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; -break; -case 2054: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; - -break; -case 2055: - - if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 2056: - - if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 2057: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2058: case 2064: - - parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 2059: - - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2060: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; - -break; -case 2061: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 2062: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 2063: - - parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-4].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2065: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2066: case 2068: case 2070: case 2072: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - -break; -case 2067: case 2071: - - parser.addColRefIfExists($$[$0]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 2069: case 2073: - - parser.addColRefIfExists($$[$0-2]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 2074: case 2075: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 2076: case 2077: case 2078: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 2079: case 2080: case 2081: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions(['NUMBER']); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 2082: case 2083: case 2084: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 2085: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 2086: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 2089: - - parser.valueExpressionSuggest(undefined, $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2090: - - parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 2092: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 2094: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 2095: - - this.$ = $$[$0]; - this.$.suggestFilters = $$[$0-1].suggestFilters; - -break; -case 2096: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 2097: case 2400: case 2405: case 2406: -this.$ = { types: [ 'T' ] }; -break; -case 2098: case 2100: - - $$[$0].position = 1; - -break; -case 2099: - - $$[$0].position = $$[$0-2].position + 1; - this.$ = $$[$0]; - -break; -case 2101: - - $$[$0-2].position += 1; - -break; -case 2102: - - $$[$0-2].position = 1; - -break; -case 2103: - - $$[$0-4].position += 1; - -break; -case 2104: - - parser.valueExpressionSuggest(); - $$[$0-2].position += 1; - -break; -case 2105: - - parser.valueExpressionSuggest(); - $$[$0-4].position += 1; - -break; -case 2106: - - parser.suggestValueExpressionKeywords($$[$0-3]); - -break; -case 2107: case 2108: - - parser.valueExpressionSuggest(); - this.$ = { cursorAtStart : true, position: 1 }; - -break; -case 2109: case 2110: - - parser.valueExpressionSuggest(); - this.$ = { position: 2 }; - -break; -case 2114: -this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; -break; -case 2115: - - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].expression) { - this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } - } else { - this.$ = { function: fn, types: parser.findReturnTypes(fn) } - } - -break; -case 2116: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 2118: -this.$ = { types: [ 'NULL' ] }; -break; -case 2120: - - if ($$[$0].suggestKeywords) { - this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; - } else { - this.$ = { types: ['COLREF'], columnReference: $$[$0] }; - } - -break; -case 2121: - - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); - } - this.$ = { types: parser.findReturnTypes(fn) }; - -break; -case 2122: case 2311: case 2312: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-1]) }; - -break; -case 2124: - - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; - this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } - -break; -case 2131: - - parser.suggestValues($$[$0]); - -break; -case 2132: -this.$ = { types: [ 'NUMBER' ] }; -break; -case 2138: case 2140: -this.$ = $$[$0-1] + $$[$0]; -break; -case 2139: -this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; -break; -case 2144: case 2145: - - if (/\$\{[^}]*\}/.test($$[$0])) { - parser.addVariableLocation(_$[$0], $$[$0]); - this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } - } else { - this.$ = { types: [ 'STRING' ] } - } - -break; -case 2147: - - this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 2148: - - this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 2153: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); - } else { - this.$ = { valueExpression: $$[$0-1] } - } - -break; -case 2154: - - parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); - this.$ = { asterisk: true } - -break; -case 2155: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - } - -break; -case 2156: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); - this.$ = { suggestAggregateFunctions: true }; - -break; -case 2158: case 2475: -this.$ = [ $$[$0] ]; -break; -case 2159: - - $$[$0-2].push($$[$0]); - -break; -case 2161: case 2162: - - this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 2164: - - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 2165: - - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 2166: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 2168: case 2169: case 2171: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - -break; -case 2182: - - this.$ = $$[$0]; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - this.$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - -break; -case 2189: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-2]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 2190: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-3]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 2191: -this.$ = { joinType: $$[$0] }; -break; -case 2192: -this.$ = { joinType: $$[$0-1] }; -break; -case 2193: - - if ($$[$0-2].suggestKeywords) { - parser.suggestKeywords($$[$0-2].suggestKeywords); - } - -break; -case 2194: - - if ($$[$0].suggestKeywords) { - parser.suggestKeywords($$[$0].suggestKeywords); - } - -break; -case 2197: - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $$[$0-2], - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2202: -this.$ = 'CROSS JOIN'; -break; -case 2203: -this.$ = 'FULL JOIN'; -break; -case 2204: -this.$ = 'FULL OUTER JOIN'; -break; -case 2205: -this.$ = 'INNER JOIN'; -break; -case 2206: -this.$ = 'JOIN'; -break; -case 2207: -this.$ = 'LEFT INNER JOIN'; -break; -case 2208: -this.$ = 'LEFT JOIN'; -break; -case 2209: -this.$ = 'LEFT OUTER JOIN'; -break; -case 2210: -this.$ = 'LEFT SEMI JOIN'; -break; -case 2211: -this.$ = 'OUTER JOIN'; -break; -case 2212: case 2214: -this.$ = 'RIGHT OUTER JOIN'; -break; -case 2213: -this.$ = 'RIGHT JOIN'; -break; -case 2215: -this.$ = 'RIGHT SEMI JOIN'; -break; -case 2216: -this.$ = 'SEMI JOIN'; -break; -case 2217: case 2219: case 2220: case 2222: case 2223: case 2224: case 2225: case 2227: case 2228: case 2229: case 2230: -this.$ = { suggestKeywords: ['JOIN'] }; -break; -case 2218: case 2226: -this.$ = { suggestKeywords: ['OUTER'] }; -break; -case 2221: -this.$ = { suggestKeywords: ['OUTER', 'SEMI'] }; -break; -case 2231: -this.$ = { noJoinCondition: true, suggestKeywords: ['ON'] }; -break; -case 2232: -this.$ = { valueExpression: $$[$0] }; -break; -case 2236: - - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - -break; -case 2237: - - this.$ = { - primary: $$[$0-2] - } - if ($$[$0-2].identifierChain) { - if ($$[$0]) { - $$[$0-2].alias = $$[$0].alias - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); - } - parser.addTablePrimary($$[$0-2]); - } - var keywords = []; - // Right-to-left for cursor after TablePrimary - keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [true, true]); - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 2238: - - this.$ = { - primary: $$[$0-1] - }; - - if ($$[$0]) { - this.$.primary.alias = $$[$0].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); - parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); - } - - var keywords = []; - keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'AS', weight: 2 }], [true]); - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 2239: - - if ($$[$0]) { - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); - } - -break; -case 2240: - - if ($$[$0]) { - $$[$0-2].alias = $$[$0].alias; - parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); - } - parser.addTablePrimary($$[$0-2]); - -break; -case 2241: - - if ($$[$0]) { - parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); - parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias); - } - -break; -case 2252: - - parser.suggestKeywords(['BUCKET']); - -break; -case 2253: - - parser.suggestKeywords(['OUT OF']); - -break; -case 2254: - - parser.suggestKeywords(['OF']); - -break; -case 2255: - - if (!$$[$0-2]) { - parser.suggestKeywords(['ON']); - } - -break; -case 2257: - - if ($$[$0-2].indexOf('.') === -1 ) { - parser.suggestKeywords(['PERCENT', 'ROWS']); - } else { - parser.suggestKeywords(['PERCENT']); - } - -break; -case 2262: - - parser.pushQueryState(); - -break; -case 2263: - - parser.popQueryState(); - -break; -case 2265: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - this.$ = $$[$0-2]; - -break; -case 2268: - - var subQuery = parser.getSubQuery($$[$0]); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - this.$ = subQuery; - -break; -case 2285: case 2286: case 2287: case 2288: -this.$ = { alias: $$[$0], location: _$[$0] }; -break; -case 2295: - - if ($$[$0-1] && $$[$0].lateralView) { - $$[$0-1].lateralViews.push($$[$0].lateralView); - this.$ = $$[$0-1]; - } else if ($$[$0].lateralView) { - this.$ = { lateralViews: [ $$[$0].lateralView ] }; - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords - } - -break; -case 2297: - - if (!$$[$0]) { - $$[$0-1].suggestKeywords = ['OVER']; - } - -break; -case 2305: - - parser.suggestKeywords(['OVER']); - -break; -case 2309: case 2310: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 2319: -this.$ = { expression: $$[$0-1] }; -break; -case 2320: - - parser.valueExpressionSuggest(); - this.$ = { position: 1 } - -break; -case 2321: - - parser.suggestValueExpressionKeywords($$[$0-1]); - -break; -case 2329: case 2412: case 2458: -this.$ = { types: parser.findReturnTypes($$[$0-2]) }; -break; -case 2330: -this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; -break; -case 2331: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-3], 1); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2332: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2333: - - parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2341: case 2342: - - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - -break; -case 2343: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$$[$0-2]) { - parser.suggestKeywords(['PARTITION BY']); - } - -break; -case 2344: - - if (!$$[$0-1]) { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - -break; -case 2353: - - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - -break; -case 2354: - - var keywords = []; - if ($$[$0-2].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - } - if (!$$[$0]) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - -break; -case 2360: - - parser.suggestKeywords(['BETWEEN', 'UNBOUNDED']); - -break; -case 2361: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['AND']); - } - -break; -case 2364: - - if (!$$[$0-1]) { - parser.suggestKeywords(['PRECEDING']); - } - -break; -case 2366: - - lexer.popState(); - -break; -case 2367: - - lexer.begin('hdfs'); - -break; -case 2369: - - parser.suggestHdfs({ path: $$[$0-3] }); - -break; -case 2370: - - parser.suggestHdfs({ path: $$[$0-2] }); - -break; -case 2371: - - parser.suggestHdfs({ path: $$[$0-1] }); - -break; -case 2372: - - parser.suggestHdfs({ path: '' }); - -break; -case 2373: - - parser.suggestHdfs({ path: '' }); - -break; -case 2379: - - parser.suggestKeywords(['PRECEDING']); - -break; -case 2380: case 2385: - - parser.suggestKeywords(['ROW']); - -break; -case 2384: - - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - -break; -case 2386: - - parser.suggestKeywords(['FOLLOWING']); - -break; -case 2392: - - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 2393: - - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 2399: case 2404: -this.$ = { types: [ $$[$0-1].toUpperCase() ] }; -break; -case 2401: - - parser.valueExpressionSuggest(); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 2402: case 2403: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ] }; - -break; -case 2407: - - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 2408: - - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ 'T' ] }; - -break; -case 2409: case 2410: - - parser.suggestKeywords(parser.getTypeKeywords()); - this.$ = { types: [ 'T' ] }; - -break; -case 2411: case 2433: -this.$ = { types: parser.findReturnTypes($$[$0-3]) }; -break; -case 2413: case 2434: case 2457: -this.$ = { types: parser.findReturnTypes($$[$0-4]) }; -break; -case 2414: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2415: case 2436: case 2460: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2416: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2417: case 2421: -this.$ = { types: ['INT', 'INTEGER'] }; -break; -case 2418: - - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - this.$ = { types: ['INT', 'INTEGER'] } - -break; -case 2419: case 2423: - - parser.suggestKeywords(['FROM']); - this.$ = { types: ['INT', 'INTEGER'] } - -break; -case 2420: - - parser.valueExpressionSuggest(); - this.$ = { types: ['INT', 'INTEGER'] } - -break; -case 2422: - - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - this.$ = { types: ['INT', 'INTEGER'] } - -break; -case 2435: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2437: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2459: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2461: - - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2462: -this.$ = { lateralView: { udtf: $$[$0-2], tableAlias: $$[$0-1], columnAliases: $$[$0] }}; -break; -case 2463: - - if ($$[$0-1].function.toLowerCase() === 'explode') { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; - } else if ($$[$0-1].function.toLowerCase() === 'posexplode') { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; - } else { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: [] }, suggestKeywords: ['AS'] }; - } - -break; -case 2464: -this.$ = { lateralView: { udtf: $$[$0-1], columnAliases: $$[$0] }}; -break; -case 2471: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); - } else { - parser.suggestKeywords(['explode', 'posexplode']); - } - -break; -case 2476: -this.$ = [ $$[$0-2], $$[$0] ]; -break; -case 2493: - - parser.suggestKeywords(['ALL', 'NONE']); - -break; -case 2513: - - parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'MATERIALIZED VIEWS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); - -break; -case 2514: - - // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT - if ($$[$0].identifierChain && $$[$0].identifierChain.length === 1 && $$[$0].identifierChain[0].name.toLowerCase() === 'roles') { - parser.suggestKeywords(['CURRENT']); - parser.yy.locations.pop(); - } else { - parser.addTablePrimary($$[$0]); - } - -break; -case 2515: - - parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); - -break; -case 2532: case 2533: case 2537: case 2538: case 2579: case 2580: - - parser.suggestKeywords(['FROM', 'IN']); - -break; -case 2534: case 2535: case 2536: case 2563: case 2577: - - parser.suggestTables(); - -break; -case 2544: case 2603: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2545: - - if (parser.yy.result.suggestTables && $$[$0-1].isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 2546: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['TABLE']); - -break; -case 2548: -this.$ = { isView: true }; -break; -case 2550: - - parser.suggestKeywords([ 'ROLES' ]); - -break; -case 2552: case 2625: - - parser.suggestKeywords(['LIKE']); - -break; -case 2561: - - parser.suggestKeywords(['ALL', 'TABLE']); - parser.suggestTables(); - -break; -case 2582: - - parser.suggestTables({identifierChain: [{name: $$[$0]}]}); - -break; -case 2584: - - parser.suggestKeywords(['VIEWS']); - -break; -case 2585: case 2637: - - if (!$$[$0-1] && !$$[$0-2]) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['LIKE']); - } - -break; -case 2593: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestKeywords(['DATABASE', 'SCHEMA']); - -break; -case 2595: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['EXTENDED', 'PARTITION']); - -break; -case 2598: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['EXTENDED']); - -break; -case 2605: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['PARTITION']); - -break; -case 2608: case 2609: - - parser.suggestKeywords(['GRANT']); - -break; -case 2610: case 2611: - - parser.suggestKeywords(['ROLE', 'USER']); - -break; -case 2615: case 2624: - - parser.suggestKeywords(['EXTENDED']); - -break; -case 2618: - - if ($$[$0-1]) { - parser.suggestKeywords(['LIKE']); - } else { - parser.suggestKeywords(['FROM', 'IN', 'LIKE']); - } - -break; -case 2620: - - parser.suggestKeywords(['EXTENDED']); - -break; -case 2621: - - parser.suggestKeywords(['LIKE']); - -break; -case 2622: - - parser.suggestKeywords(['PARTITION']); - -break; -case 2630: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 2632: - - parser.addTablePrimary($$[$0-3]); - -break; -case 2641: case 2642: - - parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); - -break; -case 2653: - - if (!$$[$0-1]) { - parser.suggestKeywords([ 'WHERE' ]); - } - -break; -case 2654: - - parser.suggestKeywords([ 'SET' ]); - -break; -case 2670: - - parser.suggestKeywords([ '=' ]); - -break; -case 2679: - - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $$[$0]; - } - -break; -case 2682: -this.$ = { inValueEdit: true }; -break; -case 2683: -this.$ = { inValueEdit: true, cursorAtStart: true }; -break; -case 2684: case 2685: case 2686: -this.$ = { suggestKeywords: ['NOT'] }; -break; -case 2690: case 2691: case 2692: - - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - this.$ = { types: ['BOOLEAN'] } - -break; -case 2693: case 2695: -this.$ = parser.findCaseType($$[$0-1]); -break; -case 2694: case 2697: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2696: - - parser.suggestValueExpressionKeywords($$[$0-1], ['END']); - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2698: -this.$ = parser.findCaseType($$[$0-2]); -break; -case 2699: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2700: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-2]); - -break; -case 2701: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - this.$.suggestFilters = $$[$0-1].suggestFilters - -break; -case 2702: - - parser.valueExpressionSuggest(); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2703: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 2704: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = $$[$0-1]; - -break; -case 2705: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ] }; - -break; -case 2708: -this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; -break; -case 2709: - - $$[$0-1].caseTypes.push($$[$0]); - this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; - -break; -case 2713: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - -break; -case 2716: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; -break; -case 2717: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 2718: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 2719: case 2720: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; -break; -case 2721: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2722: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [$$[$0]] }; - -break; -case 2723: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2724: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2725: case 2727: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 2726: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 2728: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; - -break; -case 2729: - - parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2730: - - parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2731: case 2732: case 2733: case 2734: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -} -}, -table: [o($V0,$V1,{641:1,642:2}),{1:[3]},o($V2,$V3,{643:3,209:4,210:5,3:6,211:7,195:8,4:10,5:11,6:12,7:13,8:14,9:15,10:16,11:17,12:18,13:19,14:20,15:21,500:22,501:23,215:24,502:25,503:26,504:27,505:28,506:29,816:30,30:31,31:32,32:33,33:34,34:35,35:36,36:37,251:39,252:40,253:41,254:42,255:43,256:44,257:45,258:46,515:47,516:48,517:49,518:50,519:51,520:52,521:53,522:54,523:55,1010:61,1011:62,1012:63,1013:64,1014:65,1015:66,1016:67,1017:68,1018:69,1019:70,1020:71,1021:72,1022:73,1023:74,1024:75,1025:76,1026:77,1027:78,1028:79,575:82,576:83,604:85,65:92,194:93,456:97,26:$V4,44:$V5,152:$V6,166:$V7,198:$V8,205:$V9,217:$Va,231:$Vb,266:$Vc,533:$Vd,534:$Ve,535:$Vf,538:$Vg,542:$Vh,562:$Vi,564:$Vj,566:$Vk,571:$Vl,608:$Vm,625:$Vn,633:$Vo,639:$Vp,669:$Vq,674:$Vr,815:$Vs}),{644:[1,104],647:[1,105]},o($V2,[2,1196]),{3:106,4:10,5:11,6:12,7:13,8:14,9:15,10:16,11:17,12:18,13:19,14:20,15:21,26:$V4,30:31,31:32,32:33,33:34,34:35,35:36,36:37,44:$V5,65:92,152:$V6,166:$V7,194:93,195:108,198:$V8,205:$V9,211:107,215:24,217:$Va,251:39,252:40,253:41,254:42,255:43,256:44,257:45,258:46,266:$Vc,456:97,500:22,501:23,502:25,503:26,504:27,505:28,506:29,515:47,516:48,517:49,518:50,519:51,520:52,521:53,522:54,523:55,533:$Vd,534:$Ve,535:$Vf,538:$Vg,542:$Vh,562:$Vi,564:$Vj,566:$Vk,571:$Vl,575:82,576:83,604:85,608:$Vm,625:$Vn,633:$Vo,639:$Vp,669:$Vq,674:$Vr,815:$Vs,816:30,1010:61,1011:62,1012:63,1013:64,1014:65,1015:66,1016:67,1017:68,1018:69,1019:70,1020:71,1021:72,1022:73,1023:74,1024:75,1025:76,1026:77,1027:78,1028:79},o($V2,[2,299]),o($V2,[2,300]),o($V2,[2,301]),o($Vt,[2,344],{232:109,233:[1,112],234:[1,110],235:[1,111],236:[1,113],238:[1,114],239:[1,115],240:[1,116],241:[1,117]}),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,814]),o($V2,[2,815]),{116:$Vu,501:118,535:$Vf,562:$Vi,564:$Vj,575:82,576:83,816:119},o($V2,[2,817]),o($V2,[2,818]),o($V2,[2,819]),o($V2,[2,820]),o($V2,[2,821]),o($Vv,$Vw,{817:121,821:122,823:123,765:$Vx}),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,27]),o($V2,[2,28]),o($V2,[2,29]),o($V2,[2,30]),o($V2,[2,31]),{158:[1,125]},o($V2,[2,363]),o($V2,[2,364]),o($V2,[2,365]),o($V2,[2,366]),o($V2,[2,367]),o($V2,[2,368]),o($V2,[2,369]),o($V2,[2,370]),o($V2,[2,831]),o($V2,[2,832]),o($V2,[2,833]),o($V2,[2,834]),o($V2,[2,835]),o($V2,[2,836]),o($V2,[2,837]),o($V2,[2,838]),o($V2,[2,839]),{539:[1,126]},{44:$Vy,46:131,47:$Vz,50:$VA,54:$VB,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,166:$V$,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,266:$Vt1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:[1,129],486:$V72,487:$V82,532:$V92,534:$Va2,538:$Vb2,539:$Vc2,543:127,547:128,557:130,559:132,561:$Vd2,562:$Ve2,563:$Vf2,564:$Vg2,565:$Vh2,566:$Vi2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{44:$Vy,46:131,47:$Vz,50:$VA,54:$VB,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,166:$V$,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,266:$Vt1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:[1,294],486:$V72,487:$V82,532:$V92,534:$Va2,538:$Vb2,539:$Vc2,542:[1,292],543:291,547:293,557:130,559:132,561:[1,296],562:$Ve2,563:$Vf2,564:$Vg2,565:$Vh2,566:$Vi2,569:$Vj2,570:[1,295],574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V_2,[2,1614],{784:297,45:298,206:[1,299],233:[1,301],239:[1,300],556:$V$2,756:$V03}),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:307,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:[1,304],486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,561:[1,306],569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,1008:305},o($V2,[2,2494]),o($V2,[2,2495]),o($V2,[2,2496]),o($V2,[2,2497]),o($V2,[2,2498]),o($V2,[2,2499]),o($V2,[2,2500]),o($V2,[2,2501]),o($V2,[2,2502]),o($V2,[2,2503]),o($V2,[2,2504]),o($V2,[2,2505]),o($V2,[2,2506]),o($V2,[2,2507]),o($V2,[2,2508]),o($V2,[2,2509]),o($V2,[2,2510]),o($V2,[2,2511]),o($V2,[2,2512]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:308,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},{535:[1,310]},o($V2,[2,1025],{816:30,195:311,215:312,152:$V6,564:$Vj}),{562:$Vi,564:$V23,575:317,577:313,578:314,597:315},{46:320,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,826:318,828:319},{55:[1,321]},{626:[1,322]},{158:[1,326],535:[2,1163],634:323,636:324,638:[1,325]},{158:[1,327]},{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:331,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,805:330,1050:328,1054:329},o($V33,$V43,{601:333,561:$V53,712:$V63}),{45:336,54:[1,337],61:[1,338],62:[1,340],158:[1,339],556:$V$2,756:$V03},{26:[1,350],63:363,66:[1,341],68:351,74:[1,342],77:343,78:[1,344],83:345,84:[1,346],86:[1,347],87:348,88:[1,349],92:[1,364],96:352,97:353,99:$V73,114:365,133:360,134:$V83,135:$V93,156:[1,355],161:$Va3,166:[1,359],176:$Vb3,177:$Vc3,181:[1,356],182:[1,357],382:$Vd3},{26:[1,369],108:[1,370]},{158:[2,284],199:371,202:[1,372]},{206:[1,373]},o($Ve3,[2,1631],{45:374,267:375,54:[1,380],61:[1,377],62:[1,376],206:[1,379],460:[1,381],473:[1,378],556:$V$2,756:$V03}),o($V2,[2,725]),{45:382,54:[1,387],61:[1,388],62:[1,389],158:[1,386],206:[1,383],460:[1,384],473:[1,385],556:$V$2,756:$V03},{158:[1,390]},{54:$Vf3,61:[1,401],85:[1,402],129:[1,407],154:[1,391],158:[1,406],233:[1,412],240:[1,400],266:[1,394],473:[1,404],539:[1,408],542:[1,398],651:[1,392],652:[1,410],656:[1,397],665:[1,403],666:[1,411],671:[1,405],701:[1,393],708:[1,395],727:$Vg3,771:[1,409],777:413,778:396,785:399},{153:[1,417],384:[1,416],592:[1,418]},{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,833:419,887:427,920:420,922:421,924:422,925:423,935:424,937:425},{384:[1,430]},{1:[2,1191]},o($V0,$V1,{642:431}),o($V2,[2,296]),o($V2,[2,297]),o($V2,[2,298]),o($Vt,[2,341]),o($Vt,[2,345]),o($Vt,[2,346]),{236:[1,432]},o($Vt,$Vi3,{237:433,244:$Vj3,245:$Vk3}),o($Vt,[2,349]),o($Vt,[2,350]),o($Vt,[2,351]),o($Vl3,[2,356],{242:436,246:[1,437]}),o($V2,[2,816]),o($Vv,$Vw,{821:122,823:123,817:438,765:$Vx}),{152:$V6,195:439,215:312,564:$Vj,816:30},o($Vv,[2,1798]),o($Vv,[2,1812],{823:440,765:$Vx}),o($Vm3,[2,1814]),o([561,564,712],$V1,{642:441}),{46:428,47:$Vz,50:$VA,56:442,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{385:$Vn3,540:443,541:444,683:$Vo3,766:$Vp3,913:445,914:446},{55:$Vq3,75:$Vr3,123:$Vs3,544:450},{75:[1,453],123:$Vt3},o([75,123],$Vu3,{46:131,270:133,648:148,547:455,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),o($Vv3,[2,942]),o($Vw3,[2,975]),o($Vv3,$Vx3,{560:456,80:457,116:$Vy3}),o($Vz3,[2,1719]),{281:$VA3,690:$VB3},o($VC3,$VD3),o($VC3,[2,954]),o($VC3,[2,955]),o($VC3,[2,956]),o($VC3,[2,957]),o($VC3,[2,958]),o($VC3,[2,959]),o($VC3,[2,960]),o($VC3,[2,961]),o($VC3,[2,962]),o($VC3,[2,963]),o($VE3,[2,1345]),o($VE3,[2,1346]),o($VE3,[2,1347]),o($VE3,[2,1202]),o($VE3,[2,1203]),o($VE3,$VF3),o($VE3,[2,1205]),o($VE3,[2,1206]),o($VE3,[2,1207]),o($VE3,[2,1208]),o($VE3,[2,1209]),o($VE3,[2,1210]),o($VE3,[2,1211]),o($VE3,[2,1212]),o($VE3,[2,1213]),o($VE3,[2,1214]),o($VE3,[2,1215]),o($VE3,[2,1216]),o($VE3,[2,1217]),o($VE3,[2,1218]),o($VE3,[2,1219]),o($VE3,[2,1220]),o($VE3,[2,1221]),o($VE3,[2,1222]),o($VE3,[2,1223]),o($VE3,[2,1224]),o($VE3,[2,1225]),o($VE3,[2,1226]),o($VE3,[2,1227]),o($VE3,[2,1228]),o($VE3,[2,1229]),o($VE3,[2,1230]),o($VE3,[2,1231]),o($VE3,[2,1232]),o($VE3,[2,1233]),o($VE3,[2,1234]),o($VE3,[2,1235]),o($VE3,[2,1236]),o($VE3,[2,1237]),o($VE3,[2,1238]),o($VE3,[2,1239]),o($VE3,[2,1240]),o($VE3,[2,1241]),o($VE3,[2,1242]),o($VE3,[2,1243]),o($VE3,[2,1244]),o($VE3,[2,1245]),o($VE3,[2,1246]),o($VE3,[2,1247]),o($VE3,[2,1248]),o($VE3,[2,1249]),o($VE3,[2,1250]),o($VE3,[2,1251]),o($VE3,[2,1252]),o($VE3,[2,1253]),o($VE3,[2,1254]),o($VE3,[2,1255]),o($VE3,[2,1256]),o($VE3,[2,1257]),o($VE3,[2,1258]),o($VE3,[2,1259]),o($VE3,[2,1260]),o($VE3,[2,1261]),o($VE3,[2,1262]),o($VE3,[2,1263]),o($VE3,[2,1264]),o($VE3,[2,1265]),o($VE3,[2,1266]),o($VE3,[2,1267]),o($VE3,[2,1268]),o($VE3,[2,1269]),o($VE3,[2,1270]),o($VE3,[2,1271]),o($VE3,[2,1272]),o($VE3,[2,1273]),o($VE3,[2,1274]),o($VE3,[2,1275]),o($VE3,[2,1276]),o($VE3,[2,1277]),o($VE3,[2,1278]),o($VE3,[2,1279]),o($VE3,[2,1280]),o($VE3,[2,1281]),o($VE3,[2,1282]),o($VE3,[2,1283]),o($VE3,[2,1284]),o($VE3,[2,1285]),o($VE3,[2,1286]),o($VE3,[2,1287]),o($VE3,[2,1288]),o($VE3,[2,1289]),o($VE3,[2,1290]),o($VE3,[2,1291]),o($VE3,[2,1292]),o($VE3,[2,1293]),o($VE3,[2,1294]),o($VE3,[2,1295]),o($VE3,[2,1296]),o($VE3,[2,1297]),o($VE3,[2,1298]),o($VE3,[2,1299]),o($VE3,[2,1300]),o($VE3,[2,1301]),o($VE3,[2,1302]),o($VE3,[2,1303]),o($VE3,[2,1304]),o($VE3,[2,1305]),o($VE3,[2,1306]),o($VE3,[2,1307]),o($VE3,[2,1308]),o($VE3,[2,1310]),o($VE3,[2,1311]),o($VE3,[2,1312]),o($VE3,[2,1313]),o($VE3,[2,1314]),o($VE3,[2,1315]),o($VE3,[2,1316]),o($VE3,[2,1317]),o($VE3,[2,1318]),o($VE3,[2,1319]),o($VE3,[2,1320]),o($VE3,[2,1321]),o($VE3,[2,1322]),o($VE3,[2,1323]),o($VE3,[2,1324]),o($VE3,[2,1325]),o($VE3,[2,1326]),o($VE3,[2,1327]),o($VE3,[2,1328]),o($VE3,[2,1329]),o($VE3,[2,1330]),o($VE3,[2,1331]),o($VE3,[2,1332]),o($VE3,[2,1333]),o($VE3,[2,1334]),o($VE3,[2,1335]),o($VE3,[2,1336]),o($VE3,[2,1337]),o($VE3,[2,1338]),o($VE3,[2,1339]),o($VE3,[2,1340]),o($VE3,[2,1341]),o($VE3,[2,1342]),o($VE3,[2,1343]),o($VE3,[2,1344]),{55:$Vq3,123:$Vs3,535:$Vr3,544:461},{569:[1,462]},{123:$Vt3,535:[1,463]},o($VG3,$Vu3,{46:131,270:133,648:148,547:464,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),o($VG3,$VF3,{569:[1,465]}),o([55,116,123,535],$VD3,{572:466,542:[1,468],574:[1,467]}),{46:428,47:$Vz,50:$VA,56:469,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V_2,$VH3,{783:470,239:$VI3}),o($VJ3,$VH3,{783:472,239:$VI3}),o($V_2,[2,1615]),o($V_2,[2,1616]),o($VK3,[2,1594]),o($VK3,[2,1595]),o($VL3,$Vu3,{648:148,270:473,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,561:[1,474],569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,738:[1,475]}),{126:[1,476],683:[1,477]},o($V2,[2,2480]),o($VL3,[2,2481]),o($V2,[2,2679]),o($VE3,$Vu3),{46:428,47:$Vz,50:$VA,56:478,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,1026]),{116:$Vu,564:$Vj,816:119},o($V2,[2,1027],{575:317,597:479,562:$Vi}),o([568,644,647,698,713,723,735,743,773,881],$VM3,{579:480,536:481,849:482,772:$VN3}),o($VO3,[2,1061]),o($V33,$V43,{601:484,561:$V53,712:$V63}),{564:$V23,578:485},o([116,535,562,564],[2,1832],{123:[1,486]}),o($VP3,[2,1834]),{108:[1,487]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:488,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{588:[1,551],627:550,628:[2,1147]},{535:$Vr4,635:552},{535:[2,1164]},{158:[1,553]},{46:428,47:$Vz,50:$VA,56:554,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:428,47:$Vz,50:$VA,56:555,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{26:[1,556]},{26:[2,2658]},{26:[2,2660]},{26:[2,1726],46:557,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($Vs4,[2,1722],{683:[1,558]}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:561,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,602:559,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,681:$Vt4,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,916:560,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Vu4,[2,1845]),o($Vu4,[2,1846]),{46:563,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:564,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{62:[1,565]},{46:428,47:$Vz,50:$VA,56:566,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:428,47:$Vz,50:$VA,56:567,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{67:568,71:[1,569],73:570,154:$Vv4,161:$Vw4,366:572,726:$Vx4},{75:[1,573]},o($V2,[2,65]),{79:[1,574]},o($V2,[2,67]),{85:[1,575]},o($V2,$Vy4,{57:576,68:577,161:$Va3}),{68:578,161:$Va3},{78:[1,579],89:[1,580]},{49:584,50:[1,582],90:[1,581],127:$Vz4,129:$VA4,130:$VB4,132:$VC4,659:$VD4},{26:[1,592],63:363,66:[1,593],74:[1,589],92:[1,590],97:591,99:$V73,114:365,133:360,134:$V83,135:$V93,176:$Vb3,177:$Vc3},o($V2,[2,77]),o($V2,[2,78]),{79:[1,594]},{157:595,161:[1,596]},{161:[2,228]},{161:[2,229]},{116:[1,597]},{71:[1,599],161:$VE4,167:598,726:$VF4},o($V2,[2,157]),o($V2,[2,158]),{125:601,279:$VT3,280:$VU3,441:602,781:603},{138:604,178:[1,605],180:[1,606]},o($V_2,$VG4,{139:607,93:[1,608]}),{154:[1,609]},o($VH4,[2,223]),o($VH4,[2,224]),{154:[2,214]},{129:[1,610]},{152:$V6,195:611,215:312,564:$Vj,816:30},{158:[1,612]},{158:[2,285]},o($V2,[2,292]),o($VJ3,$Vw4,{67:613,726:$Vx4}),o($VI4,[2,1633],{268:614,673:[1,615]}),o($V_2,$Vw4,{67:616,726:$Vx4}),{62:[1,617]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:618,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,303:619,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:621,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($Ve3,[2,1632],{206:[1,623],491:[1,622]}),o($V_2,$VE4,{167:624,726:$VF4}),o($V_2,$VE4,{167:625,726:$VF4}),{206:[1,626],491:[1,627]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:628,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},o($V_2,$VE4,{167:629,726:$VF4}),o($V_2,$VE4,{167:630,726:$VF4}),{62:[1,631]},o($V_2,$VE4,{167:632,726:$VF4}),{46:428,47:$Vz,50:$VA,56:633,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{488:$VJ4,535:$VK4,776:634},o($V2,[2,2540]),{27:[1,639],47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:638,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,795:637},{62:[1,642],158:[1,641],1043:640},{665:[1,643]},{307:[1,644]},o($V2,[2,2553],{781:645,280:$VU3}),o($VL4,[2,2566],{648:148,1044:646,270:647,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2}),{55:[1,648]},{45:650,46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:649,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,556:$V$2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,756:$V03},{771:[1,651]},{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:652,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,2612]),{542:[1,653]},o($VM4,[2,1642],{791:654,488:[1,655]}),{239:[1,656]},{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:657,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,2635]),o($VN4,$VO4,{1046:658,488:$VP4,535:$VQ4}),{307:[2,1598]},{307:[2,1599]},{54:$Vf3,727:$Vg3,777:661},{55:[2,1620]},{55:[2,1596]},{55:[2,1597]},o($V_2,$VR4,{585:662,158:$VS4}),o($V_2,$VR4,{585:664,158:$VS4,588:[1,665]}),{590:666,724:$VT4},o($VU4,[2,2294],{834:668,123:[1,669]}),o($VV4,[2,2173]),o($VV4,[2,2180]),o($VV4,[2,2182],{831:670,929:671,706:$VW4,721:$VX4,728:$VY4,732:$VZ4,734:$V_4,745:$V$4,752:$V05,757:$V15}),o($VV4,[2,2183]),o($V25,[2,2247],{936:680,762:[1,681]}),o($V35,$V45,{270:133,648:148,441:602,781:603,917:682,46:683,125:684,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$V55,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),o([47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,562,564,568,569,570,574,589,592,608,617,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690,698,706,713,721,723,728,732,733,734,735,743,745,752,757,762,765,772,773,881],[2,2243]),o($V25,[2,2245]),o($V65,[2,1691],{683:[1,686]}),o($V75,$V85,{887:427,611:687,937:688,943:689,116:$Vh3}),{46:428,47:$Vz,50:$VA,56:690,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,$V3,{209:4,210:5,3:6,211:7,195:8,4:10,5:11,6:12,7:13,8:14,9:15,10:16,11:17,12:18,13:19,14:20,15:21,500:22,501:23,215:24,502:25,503:26,504:27,505:28,506:29,816:30,30:31,31:32,32:33,33:34,34:35,35:36,36:37,251:39,252:40,253:41,254:42,255:43,256:44,257:45,258:46,515:47,516:48,517:49,518:50,519:51,520:52,521:53,522:54,523:55,1010:61,1011:62,1012:63,1013:64,1014:65,1015:66,1016:67,1017:68,1018:69,1019:70,1020:71,1021:72,1022:73,1023:74,1024:75,1025:76,1026:77,1027:78,1028:79,575:82,576:83,604:85,65:92,194:93,456:97,643:691,26:$V4,44:$V5,152:$V6,166:$V7,198:$V8,205:$V9,217:$Va,231:$Vb,266:$Vc,533:$Vd,534:$Ve,535:$Vf,538:$Vg,542:$Vh,562:$Vi,564:$Vj,566:$Vk,571:$Vl,608:$Vm,625:$Vn,633:$Vo,639:$Vp,669:$Vq,674:$Vr,815:$Vs}),o($Vt,$Vi3,{237:692,244:$Vj3,245:$Vk3}),o($Vt,[2,348]),o($Vt,[2,354]),o($Vt,[2,355]),o($Vt,[2,358],{243:693,247:[1,694],248:[1,695],249:[1,696],250:[1,697]}),o($Vl3,[2,357]),o($Vv,[2,1799]),{118:[1,698]},o($Vm3,[2,1815]),{561:$V53,564:$V43,601:699,712:$V63},{57:700,68:577,161:$Va3,218:$Vy4},o($V2,[2,907],{123:[1,701]}),o($V95,[2,909]),o($Va5,[2,2135]),o($Va5,[2,2136]),o($Va5,$Vb5,{683:[1,702]}),{385:$Vc5,766:[1,704]},{385:[1,705]},{75:[1,706]},{44:$Vy,54:$VB,166:$V$,266:$Vt1,534:$Va2,557:707,559:132,561:$Vd2,562:$Ve2,563:$Vf2,564:$Vg2,565:$Vh2,566:$Vi2},{46:428,47:$Vz,50:$VA,56:711,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,158:[1,710],174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,554:708,556:[1,709],569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{51:713,473:$Vd5,545:712,567:$Ve5,568:$Vf5},{46:717,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{75:[1,718],123:$Vt3},o($Vv3,[2,951]),o([55,75,123,152,535,564,644,647],[2,1675]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:720,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,800:719},{690:[1,721]},o($Vz3,[2,1721]),{535:[1,722]},{227:[1,723]},{51:713,473:$Vd5,545:724,567:$Ve5,568:$Vf5},{123:$Vt3,535:[1,725]},{227:[1,726]},{535:[1,727]},{535:[2,1022]},{569:[1,728]},o($V2,$Vy4,{270:133,648:148,46:525,68:577,809:729,57:730,140:731,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,161:$Va3,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),{46:733,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,788:732},o($V_2,[2,1613]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:734,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},o($V2,[2,2490]),o($V2,[2,2491]),o($V2,[2,2492]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,125:738,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:[1,741],217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:736,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:602,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,541:742,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,682:[1,743],683:$Vo3,718:[1,740],764:[1,739],766:$Vp3,781:603,907:737,908:[1,744],913:445,914:446,1009:735},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:745,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},o($V2,$VM3,{849:482,536:746,772:$VN3}),o($VO3,[2,1062]),o($V2,[2,1028]),o($Vg5,[2,1878],{837:747,850:748,568:[1,749]}),o($Vh5,[2,1874]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:751,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,856:750,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:561,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,602:752,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,681:$Vt4,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,916:560,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o([562,568,644,647,698,713,723,735,743,773,881],$VM3,{536:481,849:482,579:753,772:$VN3}),{46:320,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,828:754},{116:[1,755]},{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,605:756,613:771,615:$Vq5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($Va5,[2,1981]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:776,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:777,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:778,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:779,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{116:$Vh3,887:780},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:781,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:783,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,615:$Vz5,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,891:782,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528,1061:784,1063:785},o($Va5,[2,2113]),o($Va5,[2,2114],{900:787,116:$VA5}),{116:$VA5,900:789},o($Va5,[2,2117]),o($Va5,[2,2118]),o($Va5,[2,2130]),o($VB5,[2,2124],{683:[1,790]}),{116:[2,2313]},{116:[2,2314]},{116:[2,2315]},{116:[2,2316]},{116:[2,2317]},o($Va5,[2,2334],{962:791,964:792,746:$VC5}),{746:$VC5,964:794},o($Va5,[2,2299]),o($Va5,[2,2300]),o($Va5,[2,2132]),o($Va5,[2,2133]),o($VD5,[2,1733]),o($VE5,[2,2323]),o($VE5,[2,2324]),o($VE5,[2,2325]),{116:[1,795]},{116:[1,796]},{116:[1,797]},o($Va5,[2,2144]),o($Va5,[2,2145]),o($Va5,[2,2146]),o($VF5,[2,1751],{684:[1,798]}),{116:[1,799]},{116:[1,800]},{116:[1,801]},{279:[1,803],281:[1,802]},{280:[1,805],281:[1,804]},o($Va5,[2,2149]),o($Va5,[2,2150]),{116:[2,2438]},{116:[2,2439]},{116:[2,2440]},{116:[2,2441]},{116:[2,2442]},{116:[2,2443]},{116:[2,2444]},{116:[2,2445]},{116:[2,2446]},{116:[2,2447]},{116:[2,2448]},{116:[2,2449]},{116:[2,2450]},{116:[2,2451]},{116:[2,2452]},{116:[2,2453]},{116:[2,2454]},{628:[1,806]},{628:[2,1148]},{535:[1,807]},{46:428,47:$Vz,50:$VA,56:808,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{57:809,68:577,161:$Va3,535:$Vy4},{57:810,68:577,75:$Vy4,161:$Va3},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:814,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,623:811,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815,1056:812,1058:813},{26:[2,1727]},{46:816,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($Vm3,[2,1809],{820:817,576:819,123:$VG5,535:$Vf}),o($VH5,[2,2158]),o($VH5,$V45,{270:133,648:148,441:602,781:603,46:683,125:684,890:770,917:820,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$Vi5,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$V55,126:$Vj5,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,150:$Vk5,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,307:$Vl5,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,348:$Vm5,349:$Vn5,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,381:$Vo5,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,488:$Vp5,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,681:$Vr5,682:$Vs5,687:$Vt5,690:$VZ2,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($VH5,[2,2154]),{26:[1,821]},{55:[1,822]},{46:428,47:$Vz,50:$VA,56:823,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o([26,66,74,78,84,86,88,92,99,134,135,156,161,166,176,177,181,182,382],[2,210]),o([26,108],[2,275]),{68:824,161:$Va3},{46:825,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,63]),{88:[1,826]},o($VI5,$VJ5,{332:827,177:$VK5}),{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:829,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{80:830,116:$Vy3},o($V2,[2,68]),o($V2,[2,69]),o([58,75,116,152,218,418,535,564,586,644,647,726],[2,1646]),o($V2,[2,70]),o($V2,[2,71]),o($V2,[2,72]),{91:831,116:[1,832]},{51:833,473:$Vd5,567:$Ve5,568:$Vf5},{128:834,417:$VL5,418:$VM5,420:$VN5,421:$VO5,422:$VP5,423:$VQ5,424:$VR5,425:$VS5},o($V2,[2,153]),{48:843,116:$VT5},{125:845,279:$VT3,280:$VU3,441:602,781:603},{48:846,116:$VT5},{590:847,724:$VT4},{75:[1,848]},o($V_2,$VG4,{139:607,93:[1,849]}),o($V2,[2,79]),{49:584,127:$Vz4,129:$VA4,130:$VB4,132:$VC4,659:$VD4},{154:$Vv4},{80:850,116:$Vy3},{152:[1,851]},{116:[1,852]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,163:853,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,803:854},{68:857,161:$Va3,168:856},{46:858,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{717:[1,859]},o($VU5,[2,176],{136:860,150:[1,861]}),o($VV5,[2,1608]),o($VV5,[2,1609]),o($V2,[2,160]),o($V2,[2,1626],{179:862,650:[1,863]}),o($V2,[2,226]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:864,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V_2,$VW5),{94:865,116:$VX5},{48:867,116:$VT5},o($V2,[2,269]),{46:428,47:$Vz,50:$VA,56:868,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:869,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},{158:[2,1617],269:870,638:[1,871]},o($VI4,[2,1634]),{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,303:872,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V_2,$Vw4,{67:873,726:$Vx4}),o($V2,[2,754]),{108:[1,874]},o($VY5,[2,1696],{683:[1,875]}),{55:[1,876]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:877,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:878,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},{46:879,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,303:880,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($VJ3,$VE4,{167:881,726:$VF4}),o($VJ3,$VE4,{167:882,726:$VF4}),o($V2,[2,865]),{46:428,47:$Vz,50:$VA,56:883,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:884,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:428,47:$Vz,50:$VA,56:885,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:428,47:$Vz,50:$VA,56:886,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,$Vy4,{68:577,57:887,161:$Va3}),{46:888,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V_2,[2,1592]),o($V_2,[2,1593]),o($V2,[2,2541],{683:[1,889]}),o($VZ5,[2,1661]),o($VZ5,[2,1662]),{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:890,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V_2,[2,2547]),o($V_2,[2,2548]),o($V2,[2,2549]),{279:$VT3,441:891},o($V2,[2,2554]),o($V2,[2,2555],{55:[1,892]}),o($VL4,[2,2567]),{46:893,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,2588],{68:895,161:$Va3,239:[1,894]}),{46:896,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($VN4,$VO4,{1046:897,488:$VP4,535:$VQ4}),o($V2,[2,2601],{68:898,161:$Va3}),{473:[1,900],567:[1,901],779:899},o($V2,[2,2627],{441:902,279:$VT3,307:[1,903]}),{27:[1,908],46:733,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:[1,907],788:904,790:905,797:909,798:906},{307:[2,1623],488:$VJ4,535:$VK4,776:911,787:910},o($V2,[2,2631],{116:[1,912]}),o($V2,$V_5,{1047:913,307:$V$5}),{46:915,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:916,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{55:[2,1619]},{46:428,47:$Vz,50:$VA,56:917,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V_2,[2,1077]),{46:428,47:$Vz,50:$VA,56:918,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{589:[1,919]},o($V06,$V16,{591:920,409:$V26}),{998:[1,922]},o([118,499,562,564,568,644,647,698,713,723,735,743,765,772,773,881],[2,1854],{959:923,733:[1,924]}),{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,887:427,920:925,922:421,924:422,925:423,935:424,937:425},o($VV4,[2,2186],{929:926,706:$VW4,721:$VX4,728:$VY4,732:$VZ4,734:$V_4,745:$V$4,752:$V05,757:$V15}),{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,887:427,924:927,935:424,937:425},{732:[1,928]},{732:[1,929],745:[1,930]},{732:[1,931]},o($V36,[2,2206]),{728:[1,932],732:[1,933],745:[1,934],757:[1,935]},{732:[1,936]},{728:[1,937],732:[1,938],745:[1,939],757:[1,940]},{732:[1,941]},o($V35,$V45,{270:133,648:148,441:602,781:603,46:683,125:684,917:942,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$V55,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),{116:[1,943]},o($V35,[2,2238]),o($V46,[2,2285]),o($V46,[2,2286]),{46:944,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,125:945,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:602,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,781:603},{46:946,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{118:[1,947]},{46:683,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$V55,118:$V45,125:684,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:602,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,781:603,917:948},{152:$V6,195:956,215:312,564:$Vj,816:30,945:949,947:950,949:951,951:952,953:953,955:954,957:955},{108:[1,957]},o($V2,[2,1197]),o($Vt,[2,347]),o($Vt,[2,352]),o($Vt,[2,359]),o($Vt,[2,360]),o($Vt,[2,361]),o($Vt,[2,362]),o($Vv,$Vw,{821:122,823:123,817:958,765:$Vx}),{564:$Vj,816:959},{218:[1,960]},{385:$Vn3,541:961,683:$Vo3,766:$Vp3,913:445,914:446},o($Va5,$V56,{385:$V66,766:[1,963]}),o($Va5,[2,2140]),{385:[1,964]},o($Va5,[2,2141]),{51:713,473:$Vd5,545:965,567:$Ve5,568:$Vf5},o($Vv3,[2,943]),o($V76,[2,932]),{46:966,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:428,47:$Vz,50:$VA,56:967,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V76,[2,937]),o($V2,$V86,{548:968,123:$V96,152:$Va6}),o($Vb6,[2,964]),{46:971,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:972,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:973,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($Vw3,[2,976]),{51:713,473:$Vd5,545:974,567:$Ve5,568:$Vf5},{118:[1,975],123:$Vc6},o($Vd6,[2,1680]),o($Vz3,[2,1720]),{51:713,473:$Vd5,545:977,567:$Ve5,568:$Vf5},{44:$Vy,54:$VB,166:$V$,266:$Vt1,534:$Va2,543:978,557:130,559:132,561:$Vd2,562:$Ve2,563:$Vf2,564:$Vg2,565:$Vh2,566:$Vi2},o($V2,[2,987],{123:$V96}),{51:713,473:$Vd5,545:979,567:$Ve5,568:$Vf5},{46:131,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:[1,981],486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,547:980,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:131,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,547:982,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{535:[2,1023]},o($V2,$Vy4,{68:577,57:983,161:$Va3,683:[1,984]}),o($V2,[2,1782]),o($Ve6,[2,1741]),o($V2,[2,1783]),o($VM4,[2,1701]),o($V2,[2,1784]),o($V2,[2,2479]),o($V2,[2,2483]),o($V2,[2,2484],{648:148,270:985,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2}),o($V2,[2,2486]),o($V2,[2,2487]),o($V2,[2,2488]),o($V2,[2,2489]),o($Vf6,[2,2127]),{385:$Vn3,541:986,683:$Vo3,766:$Vp3,913:445,914:446},{385:$Vn3,541:987,683:$Vo3,766:$Vp3,913:445,914:446},o($VL3,[2,2482]),o($V2,[2,901]),o($Vg6,[2,2389],{838:988,851:989,723:[1,990]}),o($Vg5,[2,1879]),{79:[1,991]},o($Vh5,[2,1875]),o($Vh5,[2,1979],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o([562,568,644,647,698,713,723,735,743,772,773,881],[2,1083],{123:$VG5}),o($VO3,[2,1067]),o($VP3,[2,1835]),o($V75,$V85,{943:689,611:992}),o($V2,[2,1087]),o([208,712,718,764],$Vh6,{616:993,88:$Vi6}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:995,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:996,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:997,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:998,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{307:$Vl5,488:[1,999],691:[1,1000],751:$Vx5,753:$Vy5,890:1001},{116:[1,1002]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1003,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1004,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1005,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1006,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1007,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1008,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Va5,[2,2007]),o($V2,[2,1110],{613:1009,615:$Vq5}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1010,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1011,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1012,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{88:$Vi6,616:1013,617:$Vh6},o($Vj6,[2,1982],{890:770,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),o($Vj6,[2,1983],{890:770,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),o($Vj6,[2,1984],{890:770,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),o($Vk6,[2,1985],{890:770}),o($Va5,[2,1990]),{88:$Vi5,118:[1,1014],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($Va5,[2,2009]),{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,615:$Vz5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770,891:1015,1061:784,1063:785},{615:$Vz5,715:[1,1017],716:[1,1016],1063:1018},o($Vl6,[2,2708]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1019,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Va5,[2,2115]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,118:[1,1020],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,888:1021,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Va5,[2,2116]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1024,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,681:[1,1023],690:$VZ2},o($Va5,[2,2297]),o($Va5,[2,2335]),{46:1025,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vm6,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,981:1026},o($Va5,[2,2298]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,118:[1,1028],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,888:1029,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,118:[1,1031],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1030,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{653:[1,1033],654:[1,1034],657:[1,1035],660:[1,1036],661:[1,1037],663:[1,1038],667:[1,1039],675:[1,1040],676:[1,1041],1002:1032},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1042,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,685:[1,1043],686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Vn6,$V43,{601:1046,118:[1,1045],561:$V53,681:[1,1044],712:$V63}),o($Vn6,$V43,{601:1047,118:[1,1048],561:$V53,712:$V63}),o([47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,680,682,683,686,689,690,693,695,696,699,700,702,703,704,705,717,718,725,726,736,737,739,747,748,759,760,761,764,766,767,768,770,774,1001],$V43,{601:1049,561:$V53,712:$V63}),{279:[1,1050]},o($Vo6,[2,1603]),{280:[1,1051]},o($Vp6,[2,1606]),{590:1052,724:$VT4},{590:1053,724:$VT4},{57:1054,68:577,161:$Va3,535:$Vy4},{535:[2,1166]},{75:$Vr4,635:1055},o($Vq6,[2,2675],{1051:1056,123:$Vr6,535:[1,1058]}),o($Vs6,[2,2662]),{126:[1,1059]},{126:[2,2672]},o($Vt6,[2,1730],{683:[1,1060]}),o($Vs4,[2,1723]),o($Vm3,[2,1810]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:561,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,681:$Vt4,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,916:1061,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o([118,499,568,644,647,698,713,723,735,743,765,773,881],$VM3,{536:481,849:482,579:1062,772:$VN3}),o($VH5,[2,2153]),{47:[1,1063],49:1064,50:[1,1065],659:$VD4},{46:428,47:$Vz,50:$VA,56:1066,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{63:1067,176:$Vb3,177:$Vc3},o($Vu6,$Vv6,{69:1068,49:1069,659:$VD4}),{72:1070,317:$Vw6,320:$Vx6,323:$Vy6,368:1071,369:1074,371:$Vz6},{717:[1,1077]},o($VA6,$VB6,{326:1078,333:$VC6}),o($VI5,[2,469]),o($V2,[2,64]),{55:[1,1080]},o($V2,[2,73]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,187:1081,189:1082,191:1083,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815},o($V2,[2,74]),o($V2,[2,152]),o($VD6,[2,647]),{125:1084,279:$VT3,280:$VU3,441:602,781:603},o($VD6,[2,649]),o($VD6,[2,650]),o($VD6,[2,651]),o($VD6,[2,652]),o($VD6,[2,653]),o($VD6,[2,654]),o($V2,[2,154]),{125:1087,279:$VT3,280:$VU3,283:1085,284:1086,441:602,781:603},o($V2,$VE6,{131:1088,448:1089,152:$VF6}),o($V2,[2,156]),o($VG6,[2,1717]),{68:1091,161:$Va3},o($V_2,$VW5,{94:1092,116:$VX5}),{383:1093,384:[2,606],397:[1,1094]},{158:[1,1095]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:[1,1098],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,162:1096,163:1097,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,803:854},{118:[1,1099],123:$VH6},o($VI6,[2,1703]),o($VI6,[2,1710],{126:[1,1101]}),o($V2,$VJ6,{169:1102,123:[1,1103],532:$VK6}),o($VL6,[2,230]),o($V2,[2,203]),o([47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,608,617,625,626,628,639,640,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690],[2,1636]),o($V2,[2,179],{137:1105,152:[1,1106]}),{151:[1,1107]},o($V2,[2,225]),o($V2,[2,1627]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1109,141:1108,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,$VM6,{95:1110,650:$VN6,664:$VO6}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1109,141:1114,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,308:1113,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,268]),o($V2,[2,286],{200:1115,203:1116,66:[1,1117],166:[1,1118],204:[1,1119]}),o([152,644,647,659],$VP6,{271:1120,272:1121,276:1122,277:$VQ6}),{158:[1,1124]},{158:[2,1618]},o($VR6,[2,744],{454:1125,470:1126,116:[1,1127]}),{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,303:1128,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{279:$VT3,441:1129},{46:1130,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{158:[1,1131]},{116:[1,1133],492:1132},{108:[1,1134]},o($V2,$VM6,{95:1135,650:$VN6,664:$VO6}),o($V2,[2,856]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1136,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1137,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},o($V2,$VJ6,{169:1138,532:$VK6}),{55:[1,1139]},o($V2,[2,884]),o($V2,[2,888]),o($V2,[2,894]),o($V2,[2,2530],{776:1140,488:$VJ4,535:$VK4}),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1141,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,775:[1,1142]},o($V2,[2,2542]),o($V2,[2,2551]),{46:428,47:$Vz,50:$VA,56:1144,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,158:[1,1145],174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,561:[1,1143],569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,2570],{776:1146,488:$VJ4,535:$VK4}),o($V2,[2,2589]),o($V2,[2,2590],{239:[1,1147]}),o($V2,[2,2592]),o($V2,$V_5,{1047:1148,307:$V$5}),o($V2,[2,2602]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1149,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},o($VJ3,[2,1600]),o($VJ3,[2,1601]),o($V2,[2,2628]),{279:$VT3,441:1150},o($VM4,[2,1643]),o($VM4,[2,1644]),o($VM4,[2,1702]),{281:$VA3,690:$VB3,780:[1,1151]},o($VM4,[2,1667]),o($VM4,[2,1668]),{307:[1,1152]},{46:733,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,788:1153},{125:1154,279:$VT3,280:$VU3,441:602,781:603},o($V2,[2,2636]),{279:$VT3,441:1155},o($VN4,[2,2641]),o($VN4,[2,2642]),o([116,152,564,586,644,647],$Vy4,{68:577,57:1156,161:$Va3}),o([152,564,644,647,726],$Vy4,{68:577,57:1157,161:$Va3}),{590:1158,724:$VT4},o($VS6,$VT6,{416:1159,414:1160,107:$VU6}),{410:[1,1162]},{999:[1,1163]},o($VU4,[2,2295]),{62:[1,1164]},o($VV4,[2,2174]),{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,887:427,924:1165,935:424,937:425},o($VV6,$VW6,{930:1166,55:$VX6}),o($V36,[2,2202]),o($V36,[2,2203]),{732:[1,1168]},o($V36,[2,2205]),{732:[1,1169]},o($V36,[2,2208]),{732:[1,1170]},{732:[1,1171]},o($V36,[2,2211]),{732:[1,1172]},o($V36,[2,2213]),{732:[1,1173]},{732:[1,1174]},o($V36,[2,2216]),o($V35,[2,2237]),{385:[1,1178],649:[1,1175],677:[1,1177],683:[1,1179],913:1176},o($V46,[2,2287]),o($V46,[2,2288]),o($V65,[2,1692]),o($VY6,[2,2264]),{118:[1,1180]},{118:[2,2268]},{118:[2,2270]},{118:[2,2272]},{118:[2,2274]},{118:[2,2276]},{118:[2,2278]},{118:[2,2280]},{118:[2,2282]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1181,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},o($Vv,[2,1800]),o($Vm3,[2,1820]),{219:[1,1182]},o($V95,[2,910]),o($Va5,[2,2139]),{385:[1,1183]},o($Va5,[2,2142]),o($V2,[2,977],{546:1184,123:$V96,152:[1,1185]}),o($V76,[2,935]),o($V76,[2,936]),o($V2,[2,912]),{51:1186,473:$Vd5,567:$Ve5,568:$Vf5},{570:[1,1187]},o($Vb6,[2,969]),o($Vb6,[2,970]),o($Vb6,[2,971]),o($V2,$V86,{548:1188,123:$V96,152:$Va6}),o([55,75,107,108,118,123,129,152,177,333,372,373,374,382,384,396,397,409,535,564,644,647,659],[2,1677]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1189,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,985],{123:$V96}),{55:$Vq3,123:$Vs3,535:$Vr3,544:1190},o($V2,[2,988],{123:$V96}),{123:$Vt3,535:[1,1191]},o($VG3,$Vu3,{46:131,270:133,648:148,547:1192,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),o($V2,[2,991],{123:$Vt3}),o($V2,[2,1781]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1193,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,2485]),o($Vf6,[2,2128]),o($Vf6,[2,2129]),o($VZ6,[2,2394],{839:1194,852:1195,773:[1,1196]}),o($Vg6,[2,2390]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1197,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1199,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,858:1198,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{118:[1,1200]},{208:[1,1201],712:[1,1204],718:[1,1203],764:[1,1202]},o([208,617,712,718,764],[2,2152]),o($V_6,[2,1992],{890:770,307:$Vl5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),o($V_6,[2,1993],{890:770,307:$Vl5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),o($V_6,[2,1994],{890:770,307:$Vl5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),o($V_6,[2,1995],{890:770,307:$Vl5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),{116:[1,1205]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1206,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Va5,[2,2008]),o($V75,$V85,{270:133,648:148,913:445,914:446,886:489,285:497,899:498,901:499,902:500,909:502,807:503,961:509,963:510,965:511,966:512,541:513,911:514,140:515,975:516,976:517,977:518,441:522,781:523,915:524,46:525,1003:528,943:689,324:1022,611:1207,888:1208,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,1001:$Vq4}),{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,889:[1,1209],890:770},o($V$6,[2,2002],{890:770,88:$Vi5,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,751:$Vx5,753:$Vy5}),o($V$6,[2,2003],{890:770,88:$Vi5,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,751:$Vx5,753:$Vy5}),o($Vk6,[2,2004],{890:770,307:$Vl5,488:$Vp5,731:$Vv5,751:$Vx5,753:$Vy5}),o($Vk6,[2,2005],{890:770,307:$Vl5,488:$Vp5,731:$Vv5,751:$Vx5,753:$Vy5}),o($Vk6,[2,2006],{890:770,307:$Vl5,488:$Vp5,731:$Vv5,751:$Vx5,753:$Vy5}),o($V2,[2,1111],{613:1210,615:$Vq5}),o($Vk6,[2,2684],{890:770}),o($Vk6,[2,2685],{890:770}),o($Vk6,[2,2686],{890:770}),{617:[1,1211]},o($Va5,[2,1991]),o($Va5,[2,2010]),o($Va5,[2,2693]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1212,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Vl6,[2,2709]),{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,619:[1,1213],681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($Va5,[2,2318]),{118:[1,1214],123:$V07},o($V17,[2,2098],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($VB5,[2,2125]),o($VD5,[2,1734]),o($Va5,[2,2337]),o($Va5,[2,2338]),o($V27,[2,2345],{983:1216,987:1217,161:[1,1218]}),{746:[2,2329]},{118:[1,1219],123:$V07},{88:$Vi5,108:[1,1220],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($Va5,[2,2400]),{535:[1,1221]},{535:[2,2424]},{535:[2,2425]},{535:[2,2426]},{535:[2,2427]},{535:[2,2428]},{535:[2,2429]},{535:[2,2430]},{535:[2,2431]},{535:[2,2432]},{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,685:[1,1222],687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($VF5,[2,1753]),{118:[1,1223]},o($VE5,[2,2412]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,888:1224,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1225,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($VE5,[2,2458]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,118:[1,1226],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,888:1227,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Vo6,[2,1602]),o($Vp6,[2,1605]),{153:[1,1229],384:[2,1145],629:1228},o($V2,$Vv6,{49:1069,69:1230,659:$VD4}),{535:[2,1165]},{75:[1,1231]},o($V2,$VM3,{849:482,536:1232,772:$VN3}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:814,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815,1056:1233,1058:813},{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,887:427,920:1234,922:421,924:422,925:423,935:424,937:425},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1236,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528,1059:1235},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1024,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,681:[1,1237],690:$VZ2},o($VH5,[2,2159]),o($Vm3,[2,1847]),{48:1238,116:$VT5},o($V2,[2,41]),{51:1239,473:$Vd5,567:$Ve5,568:$Vf5},{57:1240,58:$Vy4,68:577,161:$Va3},{64:[1,1241]},o($V2,[2,239],{70:1242,184:1243,185:1244,68:1245,161:$Va3}),o($VG6,[2,1716]),o($V2,[2,62]),o($V37,[2,543]),{116:[1,1246]},{80:1247,116:$Vy3},{80:1248,116:$Vy3},{318:[1,1249]},{318:[1,1250]},o([47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,564,569,570,574,589,592,608,617,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,690],[2,1639]),o($V47,$V57,{327:1251,373:$V67,374:$V77}),o($V87,[2,471]),{81:1254,116:$V97},{118:[1,1256],123:[1,1257]},o($VI6,[2,252]),{126:[1,1258]},{419:[1,1259]},{118:[1,1260],123:[1,1261]},o($VI6,[2,402]),{126:[1,1262]},o($V2,[2,155]),o($Va7,[2,689]),{132:[1,1263]},o($V2,[2,75]),o($V2,$VM6,{95:1264,650:$VN6,664:$VO6}),{384:[1,1265]},{79:[1,1266]},{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:1267,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{118:[1,1268],123:[1,1269]},{118:[1,1270],123:$VH6},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,163:1271,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,803:854},o([26,58,66,74,75,92,99,116,123,134,135,152,161,176,177,218,239,418,532,535,564,586,644,647,659,726],[2,1648]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,803:1272},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1273,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($V2,[2,202]),{68:1274,161:$Va3},o($V2,[2,873]),o($V2,[2,159]),{153:[1,1275]},o($VU5,[2,177]),o($Vb7,[2,215],{142:1276,173:1277,174:[1,1278],175:[1,1279]}),{312:1280,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},o($V2,[2,183]),o($V2,[2,1629]),o($V2,[2,1630]),{118:[1,1310],123:[1,1311]},o($VI6,[2,434]),o($V2,[2,278]),{85:[1,1312]},{85:[2,289]},{85:[2,290]},{85:[2,291]},o($V2,[2,379]),o($VU5,$Vv6,{49:1069,69:1313,659:$VD4}),o($Vw7,[2,389]),{125:1314,279:$VT3,280:$VU3,441:602,781:603},o($V_2,$Vw4,{67:1315,726:$Vx4}),o($Vx7,$VP6,{276:1122,272:1316,277:$VQ6}),o($VR6,[2,745]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:1318,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,471:1317,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815},o($Vy7,[2,713],{452:1319,177:[1,1320]}),o($V2,[2,735],{457:1321,464:[1,1322]}),o($VY5,[2,1697]),{46:428,47:$Vz,50:$VA,56:1324,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,474:1323,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1325,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,118:[1,1326],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1329,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,495:1327,497:1328,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},{279:$VT3,441:1330},o($V2,[2,849]),o($V2,[2,857]),o($V2,[2,880]),o($V2,[2,866]),{46:428,47:$Vz,50:$VA,56:1331,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:1332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($VZ5,[2,1663]),o($VZ5,[2,1664]),o($V2,[2,2556]),o($V2,[2,2557]),{46:428,47:$Vz,50:$VA,56:1333,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:1334,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,2591]),o($V2,[2,2583]),o($V2,[2,2607]),o($V2,[2,2629]),o($VM4,[2,1671]),{279:$VT3,441:1335},{307:[2,1624]},{118:[1,1336]},o($V2,[2,2646]),o($VS6,$Vx3,{80:457,560:1338,116:$Vy3,586:[1,1337]}),o($VS6,$Vw4,{67:1339,726:$Vx4}),o($V06,$V16,{591:1340,409:$V26}),o($VS6,[2,1043]),o($VS6,[2,644]),{108:$Vz7},{426:1342,428:$VA7},o([107,108,129,152,153,161,227,277,384,409,499,564,644,647,659],[2,2368]),o($VB7,[2,2473],{1005:1344,745:[1,1345]}),o($VV6,$VW6,{930:1346,55:$VX6}),o($VV6,[2,2189]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1347,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($V36,[2,2204]),o($V36,[2,2207]),o($V36,[2,2209]),o($V36,[2,2210]),o($V36,[2,2212]),o($V36,[2,2214]),o($V36,[2,2215]),{385:[1,1348]},{662:[1,1349],755:[1,1350]},{118:[1,1351]},o($VC7,$Vb5,{683:[1,1352]}),{385:$Vc5},o($VY6,[2,2265]),{464:[1,1353]},o($VD7,[2,331],{220:1354,223:1355,227:[1,1356]}),o($Va5,[2,2143]),o($V2,[2,911]),{542:[1,1357]},o($Vb6,[2,965]),{569:[1,1358]},o($V2,[2,913]),o($Vd6,[2,1681]),{535:[1,1359]},{51:713,473:$Vd5,545:1360,567:$Ve5,568:$Vf5},{123:$Vt3,535:[1,1361]},o($Ve6,[2,1742]),o($VE7,[2,1917],{840:1362,853:1363,743:$VF7}),o($VZ6,[2,2395]),{46:1365,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($Vg6,[2,2391],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($Vg5,[2,1885],{859:1366,862:1368,123:[1,1367],152:[1,1369],722:[1,1370]}),o($VG7,[2,1905],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($VP3,[2,1840]),o($Va5,[2,1986]),o($Va5,[2,1987]),o($Va5,[2,1988]),{535:[1,1371]},o($V75,$V85,{270:133,648:148,913:445,914:446,886:489,285:497,899:498,901:499,902:500,909:502,807:503,961:509,963:510,965:511,966:512,541:513,911:514,140:515,975:516,976:517,977:518,441:522,781:523,915:524,46:525,1003:528,943:689,324:1022,611:1372,888:1373,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,1001:$Vq4}),{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,889:[1,1374],890:770},{118:[1,1375]},{118:[1,1376],123:$V07},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1377,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($V2,[2,1112]),{150:[1,1379],618:1378,619:[2,1124]},{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,716:[1,1380],731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1381,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Va5,[2,2319]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1382,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{118:[2,2351],743:$VF7,853:1384,984:1383},o($V27,[2,2346]),{79:[1,1385]},{746:[2,2330]},{334:1386,655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1387,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($VF5,[2,1752]),o($VE5,[2,2411]),{118:[1,1388],123:$V07},{88:$Vi5,118:[1,1389],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($VE5,[2,2433]),{118:[1,1390],123:$V07},{384:[1,1391]},{384:[2,1146]},o($V2,[2,1153]),{590:1392,724:$VT4},o($V2,[2,2648]),o($Vs6,[2,2663]),o($Vq6,[2,2676]),o($Vs6,[2,2668]),o($Vs6,[2,2673],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($Vt6,[2,1731]),o($V2,[2,40]),o($V2,[2,42]),{58:[1,1393]},o($V2,[2,55]),o($V2,[2,61]),o($V2,[2,240],{68:1245,185:1394,161:$Va3}),o($Vu6,[2,241]),o($Vu6,$Vv6,{49:1069,69:1395,659:$VD4}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1396,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($V37,[2,545]),o($VI5,$VJ5,{332:1397,177:$VK5}),{80:1398,116:$Vy3},{116:[2,562]},o($V47,[2,540]),o($VH7,[2,560]),o($VH7,[2,561]),o($V2,[2,264],{82:1399,89:[1,1400]}),{116:$VI7,406:1401,407:1402},o($V2,[2,250]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,189:1404,191:1083,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815},{125:1405,279:$VT3,280:$VU3,441:602,781:603},{125:1406,279:$VT3,280:$VU3,441:602,781:603},o([107,108,129,277,409,488,499,644,647,659],[2,401]),{125:1087,279:$VT3,280:$VU3,284:1407,441:602,781:603},{279:$VT3,280:$VU3,285:1408,385:$Vn3,441:522,541:513,683:$Vo3,718:$Va4,764:$Vl4,766:$Vp3,781:523,909:502,911:514,913:445,914:446,915:524},{48:1409,116:$VT5},o($V2,[2,76]),{385:[1,1410]},{116:[1,1412],398:1411},o($V2,[2,186]),{152:[2,194]},{116:[1,1413]},{152:[2,195]},{118:[1,1414],123:$VH6},o($VI6,[2,1704]),o($VI6,[2,1709],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($VL6,[2,231]),{129:[1,1415]},o($V2,$VM6,{95:1416,650:$VN6,664:$VO6}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1417,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V_2,[2,217]),o($V_2,[2,218]),o($VJ7,[2,447],{313:1418,315:1419,316:1420,88:$VK7,317:$VL7,320:$VM7,321:$VN7,323:$VO7}),o($VP7,[2,472]),o($VP7,[2,473]),o($VP7,[2,474]),o($VP7,[2,475]),o($VP7,[2,476]),o($VP7,[2,477]),o($VP7,[2,478]),o($VP7,[2,479]),o($VP7,[2,480]),o($VP7,[2,1760]),o($VP7,[2,1761]),o($VP7,[2,1762]),o($VP7,$VQ7,{813:1426,116:$VR7}),o($VP7,[2,1764]),o($VP7,[2,1778],{814:1428,116:[1,1429]}),o($VP7,[2,1766]),o($VP7,[2,1767]),o($VP7,[2,1768]),o($VP7,[2,1769]),o($VP7,[2,1770]),o($VP7,[2,1771]),o($VP7,[2,1772]),o($VP7,[2,1773]),o($VP7,[2,1774]),o($VP7,$VQ7,{813:1430,116:$VR7}),{348:[1,1431]},{348:[1,1432]},{348:[1,1433]},{348:[1,1434]},o($VS7,[2,429]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,71:$VT7,72:1437,73:1439,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1109,141:1436,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,309:1435,317:$Vw6,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,363:1438,366:572,369:1074,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,287]),o($V2,[2,396],{273:1441,282:1442,152:[1,1443]}),o($Vw7,[2,390]),{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,286:1444,289:1445,303:1446,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{108:$VU7,129:$VV7,295:1447,449:1448},{118:[1,1450],123:[1,1451]},o($VI6,$VP6,{276:1122,272:1452,277:$VQ6}),o([107,108,129,376,382,396,409,659],$VP6,{276:1122,272:1453,277:$VQ6}),{64:[1,1454]},o($V2,[2,726]),{181:$VW7,465:1455,466:1456,467:1457,468:$VX7,469:$VY7},{116:[1,1462],475:1461},{116:[2,772]},o($V2,[2,795],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($Vn6,[2,800]),{118:[1,1463],123:[1,1464]},o($VI6,[2,803]),{312:1465,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},o($V2,[2,731]),o($V2,[2,874]),o($V2,[2,2531]),o($V2,[2,2558]),o($V2,[2,2571]),o($V2,[2,2613],{68:1466,161:$Va3}),o($V2,[2,2632]),{116:$VZ7,587:1467,599:1468},o($VS6,[2,1044]),o($VS6,[2,1041]),o($VS6,$VT6,{414:1160,416:1470,107:$VU6}),{128:1471,417:$VL5,418:$VM5,420:$VN5,421:$VO5,422:$VP5,423:$VQ5,424:$VR5,425:$VS5},o($V06,[2,1079]),o($V_7,[2,664],{429:1472,439:[1,1473]}),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1475,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,693:$V04,726:$Vc4,901:1476,973:1474},o($VB7,[2,2474]),o($VV6,[2,2190]),o($VV6,[2,2232],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),{744:[1,1477]},{118:[1,1478]},{118:[1,1479]},o($V25,[2,2251]),o($VC7,$V56,{385:$V66}),{46:428,47:$Vz,50:$VA,56:1482,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:[1,1481],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,609:1480,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V$7,[2,335],{221:1483,224:1484,228:[1,1485]}),o($VD7,[2,332]),{154:[1,1486]},{569:[1,1487]},o($V2,[2,982]),{51:713,473:$Vd5,545:1488,567:$Ve5,568:$Vf5},o($V2,[2,989],{123:$V96}),{51:713,473:$Vd5,545:1489,567:$Ve5,568:$Vf5},o($V08,[2,1941],{841:1490,854:1491,875:1492,876:1493,877:1494,698:[1,1495],713:[1,1496],881:$V18}),o($VE7,[2,1918]),{79:[1,1498]},{108:[1,1499]},o($Vg5,[2,1880]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1500,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Vg5,[2,1886]),{707:[1,1501],754:[1,1502]},{668:[1,1503]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1504,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{118:[1,1505]},{118:[1,1506],123:$V07},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1507,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Va5,[2,1998]),o($Va5,[2,1999]),o([47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,608,615,617,619,625,626,628,639,640,644,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,685,688,690,691,698,706,711,713,715,716,721,722,723,728,732,733,734,735,740,742,743,745,750,752,755,757,765,772,773,881,889],[2,2001],{890:770,88:$Vi5,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),{619:[1,1508]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1509,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Va5,[2,2694]),o($Vl6,[2,2715],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($V17,[2,2099],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),{118:[1,1510]},{118:[2,2356],750:[1,1515],755:[1,1514],988:1511,990:1512,991:1513},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,888:1516,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{118:[1,1517]},{88:$Vi5,118:[1,1518],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($VE5,[2,2413]),o($VE5,[2,2457]),o($VE5,[2,2434]),{158:[1,1519]},o($V2,[2,1174],{227:[1,1520]}),o($V2,[2,49]),o($Vu6,[2,242]),o($Vu6,[2,249]),{88:$Vi5,118:[1,1521],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($VA6,$VB6,{326:1522,333:$VC6}),{372:[1,1523]},o($V2,[2,66]),o($V2,[2,265]),{118:[1,1524],123:[1,1525]},o($VI6,[2,629]),{279:$VT3,280:$VU3,285:1527,385:$Vn3,441:522,541:513,683:$Vo3,718:$Va4,764:$Vl4,766:$Vp3,781:523,802:1526,909:502,911:514,913:445,914:446,915:524},o($VI6,[2,253]),o($VI6,[2,258]),o($VD6,[2,648]),o($VI6,[2,403]),o($VI6,[2,404]),o($Va7,[2,690]),{386:[1,1528]},{384:[2,607]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1531,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,400:1529,402:1530,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,163:1532,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,803:854},o($VI6,[2,198]),{48:1533,116:$VT5},o($V2,[2,161]),o($Vb7,[2,216]),o($V28,$VP6,{276:1122,272:1534,277:$VQ6}),o($VJ7,[2,448],{316:1535,88:$VK7,317:$VL7,320:$VM7,321:$VN7,323:$VO7}),o($VH7,[2,449]),o($VH7,[2,452],{318:[1,1536]}),o($V38,$V48,{319:1537,325:1538,176:$V58,177:$V68}),o($VH7,[2,455],{208:[1,1541]}),o($VH7,[2,458],{322:1542,208:[1,1547],328:[1,1543],329:[1,1544],330:[1,1545],331:[1,1546]}),{116:[1,1548]},o($VP7,[2,1763]),{385:[1,1549]},o($VP7,[2,1765]),{385:[1,1550]},o($VP7,[2,1775]),{312:1551,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,349:[1,1552],351:$Vd7,352:$Ve7,359:$Vf7,655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},{334:1553,349:[1,1554],655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},{46:1558,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,349:[1,1556],352:$VE1,353:1555,355:1557,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{312:1561,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,349:[1,1560],351:$Vd7,352:$Ve7,359:$Vf7,360:1559,655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},{118:[1,1562]},o($VI6,[2,435]),{118:[2,528],123:[1,1563]},{118:[2,529],123:$V78},o($VI6,[2,536]),{46:1565,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($V2,[2,385]),o($V2,[2,397]),{27:[1,1567],47:[1,1566]},o($V2,[2,812],{287:1568,499:[1,1569]}),o([78,107,108,129,152,376,382,409,499,644,647,659],$VP6,{276:1122,272:1570,277:$VQ6}),o($V88,[2,423],{304:1571,94:1572,116:$VX5,307:[1,1573]}),{108:[1,1574]},o($V98,[2,694]),{48:1575,116:$VT5},o($VR6,[2,746]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:1576,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815},o($VI6,[2,748]),o($Va8,[2,573],{377:1577,378:1578,376:[1,1579]}),o($Vy7,[2,714]),o($V2,[2,736],{123:[1,1580]}),o($V95,[2,738]),{279:$VT3,441:1581},{279:[2,741]},{279:[2,742]},{279:[2,743]},{108:[1,1582]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:1584,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,489:1583,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815},o($Vn6,[2,801]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1329,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,497:1585,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},o($VI6,[2,809]),o($V2,[2,2614]),o($VS6,[2,1040],{123:$Vb8}),o($Vc8,[2,1073]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,600:1587,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,781:523,807:503,886:1588,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($VS6,[2,1042]),o($VD6,[2,645]),o($Vd8,[2,670],{430:1589,443:[1,1590]}),{440:[1,1591]},{46:1592,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$Ve8,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,1006:1593},{116:$VA5,900:1595},{116:$VA5,900:1596},{741:[1,1597]},o($V25,[2,2249]),o($V25,[2,2250]),{108:[1,1598]},o($V75,$V85,{943:689,611:1599}),{108:[2,1106]},o($V2,[2,339],{222:1600,230:[1,1601]}),o($V$7,[2,336]),{229:[1,1602]},o($VD7,[2,333]),o($V2,[2,978]),o($V2,[2,986],{123:$V96}),o($V2,[2,990],{123:$V96}),o($Vf8,[2,1972],{842:1603,855:1604,735:[1,1605]}),o($V08,[2,1942]),o($V08,[2,1943]),o($V08,[2,1944],{877:1606,881:$V18}),o($V08,[2,1946]),{79:[1,1607]},{79:[1,1608]},{79:[1,1609]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1612,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,868:1610,870:1611,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{116:$Vm6,981:1613},o($VG7,[2,1906],{890:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($Vg5,[2,1887]),o($Vg5,[2,1888]),{116:[1,1614]},o($Vk6,[2,1989],{890:770}),o($Va5,[2,1996]),o($Va5,[2,1997]),o($Vj6,[2,2000],{890:770,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,731:$Vv5,751:$Vx5,753:$Vy5}),{534:[1,1617],562:[1,1618],566:[1,1616],620:1615},{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,619:[2,1125],681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($Va5,[2,2340]),{118:[2,2352]},{118:[2,2357]},{691:[1,1619],995:[1,1620]},o($Vg8,[2,2374]),o($Vg8,[2,2375]),o($V27,[2,2347],{123:$V07}),o($Va5,[2,2399]),o($Va5,[2,2417]),{46:428,47:$Vz,50:$VA,56:1621,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{640:[1,1622]},o($V37,[2,544]),o($V47,$V57,{327:1623,373:$V67,374:$V77}),{46:428,47:$Vz,50:$VA,56:1624,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o([89,107,108,129,152,409,499,644,647,659],[2,628]),{116:$VI7,407:1625},{118:[1,1626],123:[1,1627]},o($VI6,[2,1689]),o($Vh8,[2,582]),{118:[1,1628],123:[1,1629]},o($VI6,[2,612]),o($VI6,$Vi8,{404:1630,688:$Vj8,711:$Vk8}),{118:[1,1633],123:$VH6},o($V2,[2,180]),o($V28,[2,444]),o($VH7,[2,450]),o($V38,$V48,{325:1538,319:1634,176:$V58,177:$V68}),o($VH7,[2,453]),o($V87,$VB6,{326:1635,333:$VC6}),o($V38,[2,466]),o($V38,[2,467]),o($V38,$V48,{325:1538,319:1636,176:$V58,177:$V68}),o($V38,$V48,{325:1538,319:1637,176:$V58,177:$V68}),o($Vl8,[2,460]),{116:[1,1638]},{116:[1,1639]},{116:[1,1640]},o($Vl8,[2,464]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1641,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{118:[1,1642]},{118:[1,1643],123:[1,1644]},{349:[1,1645]},o($VP7,[2,486]),{123:[1,1646]},o($VP7,[2,490]),{123:[1,1648],349:[1,1647]},o($VP7,[2,496]),o($Vm8,[2,498]),{358:[1,1649]},{123:[1,1651],349:[1,1650]},o($VP7,[2,513]),o($Vm8,[2,515]),o($VS7,[2,430]),{71:$VT7,73:1439,363:1652,366:572},{71:$VT7,73:1653,366:572},{320:$Vx6,323:$Vy6,368:1071,371:$Vz6},o($V2,[2,399],{48:1654,116:$VT5}),o($V2,[2,400]),o($V2,[2,405]),{385:[1,1655]},o($Vn8,[2,564],{290:1656,375:1657,376:[1,1658]}),o($V88,[2,420]),o($V88,[2,424]),{46:428,47:$Vz,50:$VA,56:1659,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{152:$V6,195:1660,215:312,564:$Vj,816:30},o($V98,[2,695]),o($VI6,$VP6,{276:1122,272:1661,277:$VQ6}),o($Vo8,[2,590],{388:1662,389:1663,390:1664,382:[1,1665],396:[1,1666]}),o($Va8,[2,574]),{55:[1,1667]},{181:$VW7,466:1668,467:1457,468:$VX7,469:$VY7},o($V95,[2,740]),{125:1670,279:$VT3,280:$VU3,441:602,476:1669,781:603},{118:[1,1671],123:[1,1672]},o($VI6,[2,789]),o($VI6,[2,804]),{116:$VZ7,599:1673},{118:[1,1674],123:[1,1675]},o($VI6,[2,2111]),o($Vp8,[2,675],{431:1676,351:[1,1677]}),{444:[1,1678]},{79:[1,1679]},o($VU4,[2,2463],{1006:1680,108:$Ve8}),o($VU4,[2,2464]),{46:1681,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($Vq8,[2,2309]),o($Vq8,[2,2310]),{385:[1,1682]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1683,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2},{118:[1,1684]},o($V2,[2,315]),o($V2,[2,340]),o($V$7,[2,337]),o($Vf8,[2,1858]),o($Vf8,[2,1973]),{385:$Vn3,541:1685,678:[1,1686],683:$Vo3,766:$Vp3,913:445,914:446},o($V08,[2,1945]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:720,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,800:1687},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:720,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,800:1688},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1691,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,882:1689,884:1690},o([118,499,562,644,647,698,713,735,750,755,765,881],[2,1919],{123:[1,1692]}),o($Vr8,[2,1922]),o($Vs8,$Vi8,{890:770,404:1693,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,688:$Vj8,691:$Vu5,711:$Vk8,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5}),o($VZ6,[2,2396]),o($VI6,$Vt8,{270:133,648:148,140:515,46:525,807:815,864:1694,191:1695,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vu8,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),o($Vv8,[2,1118]),{26:[1,1697]},o($Vv8,[2,1128]),{586:[1,1698]},o($Vw8,$Vx8,{992:1699}),o($Vw8,$Vx8,{992:1700}),o([418,644,647],$Vy4,{68:577,57:1701,161:$Va3}),{116:[1,1702]},o($V47,[2,548]),{80:1703,116:$Vy3},o($VI6,[2,630]),o($VI6,[2,1688]),{279:$VT3,280:$VU3,285:1704,385:$Vn3,441:522,541:513,683:$Vo3,718:$Va4,764:$Vl4,766:$Vp3,781:523,909:502,911:514,913:445,914:446,915:524},{384:[2,610]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1531,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,402:1705,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},o($VI6,[2,618]),o($Vs8,[2,1934]),o($Vs8,[2,1935]),o($VI6,[2,199]),o($VH7,[2,451]),o($VH7,$V57,{327:1706,373:$V67,374:$V77}),o($VH7,[2,454]),o($VH7,[2,456]),{118:[1,1707]},{118:[1,1708]},{118:[1,1709]},{88:$Vi5,118:[1,1710],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($VP7,[2,1777]),o($VP7,[2,1779]),{385:[1,1711]},o($VP7,[2,485]),{312:1712,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},o($VP7,[2,495]),{46:1558,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,355:1713,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{312:1714,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},o($VP7,[2,512]),{312:1715,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,655:$Vg7,670:$Vh7,672:$Vi7,692:$Vj7,693:$Vk7,694:$Vl7,697:$Vm7,709:$Vn7,710:$Vo7,714:$Vp7,719:$Vq7,729:$Vr7,730:$Vs7,758:$Vt7,763:$Vu7,769:$Vv7},{118:[2,530],123:$V78},o($VI6,[2,537]),o($V2,[2,398]),o($V2,[2,813]),o($Vh8,[2,580],{291:1716,77:1717,382:$Vd3}),o($Vn8,[2,565]),{79:[1,1718]},o($V88,[2,425]),o($V2,[2,716]),o($VI6,[2,749]),o([107,108,129,659],$Vy8,{293:1719,408:1720,409:$Vz8}),o($Vo8,[2,591]),{391:1722,397:[1,1723]},{55:[1,1724]},{55:[1,1725]},{80:1726,116:$Vy3},o($V95,[2,739]),o($VA8,[2,776],{477:1727,152:[1,1728]}),o([107,129,152,277,409,487,488,644,647,659],[2,774]),{108:[2,787]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:1729,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815},o($Vc8,[2,1074]),o($Vc8,[2,1075]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,781:523,807:503,886:1730,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($VB8,[2,680],{432:1731,446:[1,1732]}),{445:[1,1733]},{440:[1,1734]},{279:$VT3,441:1735},o($VU4,[2,2462]),o($VU4,[2,2475],{123:[1,1736]}),{55:[1,1738],118:[2,2258],941:1737},{55:[2,1094]},{108:[2,1105]},o($Vf8,[2,1974],{123:[1,1739]}),o($Vf8,[2,1976],{123:[1,1740]}),o($V08,[2,1952],{123:$Vc6}),o([118,499,562,644,647,735,765,881],[2,1956],{123:$Vc6}),o($V08,[2,1960],{123:[1,1741]}),o($VC8,[2,1963]),o($VC8,$Vi8,{404:1742,688:$Vj8,711:$Vk8}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1612,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,870:1743,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},o($Vr8,[2,1936],{872:1744,874:1745,740:[1,1746]}),{118:[1,1747],123:$VD8},o($VI6,[2,1895]),o($VI6,$Vt8,{270:133,648:148,140:515,46:525,807:815,191:1695,864:1749,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vu8,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:814,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,623:1750,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,807:815,1056:812,1058:813},{116:$VZ7,587:1751,599:1468},o($VE8,$VF8,{993:1752,1000:1753,385:$VG8,708:$VH8,995:$VI8}),o($VE8,$VF8,{1000:1753,993:1757,385:$VG8,708:$VH8,995:$VI8}),o($V2,[2,1149],{630:1758,632:1759,418:[1,1760]}),{125:1761,279:$VT3,280:$VU3,441:602,781:603},o($V37,[2,552]),o($VI6,[2,1690]),o($VI6,[2,613]),o($VH7,[2,459]),o($Vl8,[2,461]),o($Vl8,[2,462]),o($Vl8,[2,463]),o($V38,$V48,{325:1538,319:1762,176:$V58,177:$V68}),{118:[1,1763]},{349:[1,1764]},o($Vm8,[2,499]),o($Vm8,$VP6,{276:1122,272:1765,277:$VQ6}),o($Vm8,[2,516]),o($VJ8,[2,622],{292:1766,405:1767,78:[1,1768]}),o($Vh8,[2,581]),{94:1769,116:$VX5},o([108,129,659],$VK8,{294:1770,413:1771,414:1772,107:$VL8}),o($VM8,[2,632]),{410:[1,1774]},o($Vo8,[2,592]),{55:[1,1775]},{80:1776,116:$Vy3},{80:1777,116:$Vy3},o($Va8,[2,575]),o($VN8,[2,780],{478:1778,487:[1,1779]}),{486:[1,1780]},o($VI6,[2,790]),o($VI6,[2,2112]),o($VO8,[2,684],{433:1781,208:[1,1782]}),{440:[1,1783]},{440:[1,1784]},{79:[1,1785]},o($V_7,[2,665],{442:[1,1786]}),{46:1787,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{118:[1,1788]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1789,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,680:$VY3,682:$VZ3,683:$Vo3,686:$V_3,689:$V$3,690:$VZ2,693:$V04,695:$V14,696:$V24,699:$V34,700:$V44,702:$V54,703:$V64,704:$V74,705:$V84,717:$V94,718:$Va4,725:$Vb4,726:$Vc4,736:$Vd4,737:$Ve4,739:$Vf4,747:$Vg4,748:$Vh4,759:$Vi4,760:$Vj4,761:$Vk4,764:$Vl4,766:$Vp3,767:$Vm4,768:$Vn4,770:$Vo4,774:$Vp4,781:523,807:503,886:489,899:498,901:499,902:500,909:502,911:514,913:445,914:446,915:524,961:509,963:510,965:511,966:512,975:516,976:517,977:518,1001:$Vq4,1003:528},{385:$Vn3,541:1790,683:$Vo3,766:$Vp3,913:445,914:446},{678:[1,1791]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1691,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2,884:1792},o($VC8,[2,1969]),o($Vr8,[2,1923]),o($Vr8,[2,1929]),o($Vr8,[2,1937]),{175:[1,1793],658:[1,1794]},o($Vg5,[2,1891]),o($VI6,$Vt8,{270:133,648:148,140:515,46:525,807:815,191:1695,864:1795,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vu8,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2}),{118:[1,1796],123:$VD8},o($Vv8,[2,1127],{123:$Vr6}),o($Vv8,[2,1129],{123:$Vb8}),{118:$VP8,150:$VQ8,994:1797},{749:[1,1799]},{409:[1,1800]},o($VR8,[2,2387]),o($VR8,[2,2388]),{118:$VP8,150:$VQ8,994:1801},o($V2,[2,1133]),o($V2,[2,1150]),{125:1802,279:$VT3,280:$VU3,441:602,781:603},{118:[1,1803]},o($VH7,[2,457]),o($VP7,[2,1780]),o($VP7,[2,489]),o($Vm8,[2,505]),o([107,108,129,152,499,644,647,659],$Vy8,{408:1720,293:1804,409:$Vz8}),o($VJ8,[2,623]),{79:[1,1805]},o($Vn8,[2,566]),o($Vx7,$Vv6,{49:1069,69:1806,659:$VD4}),o($VS8,[2,638]),o($VS8,[2,639]),{79:[1,1807],108:$Vz7},{130:[1,1810],411:1808,426:1809,428:$VA7},{80:1811,116:$Vy3},o($Vo8,[2,597]),{397:[2,600]},o($VT8,[2,782],{479:1812,488:[1,1813]}),{48:1814,116:$VT5},{58:[1,1815]},o($VO8,[2,658]),{447:[1,1816]},{79:[1,1817]},{79:[1,1818]},{279:$VT3,441:1819},{79:[1,1820]},o($VU4,[2,2476]),o($V25,[2,2248]),{88:$Vi5,118:[2,2259],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,681:$Vr5,682:$Vs5,687:$Vt5,691:$Vu5,731:$Vv5,742:$Vw5,751:$Vx5,753:$Vy5,890:770},o($Vf8,[2,1975]),o($Vf8,[2,1977]),o($VC8,[2,1964]),o($Vr8,[2,1938]),o($Vr8,[2,1939]),o($VI6,[2,1896]),o($VI6,[2,1897]),{118:[2,2358]},{385:$VG8,708:[1,1821],995:$VI8,1000:1822},o($VE8,[2,2377]),o($VE8,[2,2378]),{118:[2,2359]},{130:[1,1823]},o($V2,[2,1175]),o([108,129,152,499,644,647,659],$VK8,{413:1771,414:1772,294:1824,107:$VL8}),{80:1825,116:$Vy3},{108:$VU7,129:$VV7,295:1826,449:1448},{125:1827,279:$VT3,280:$VU3,441:602,781:603},o($VM8,[2,633]),o($VM8,[2,655]),{125:1828,279:$VT3,280:$VU3,441:602,781:603},o($Vo8,[2,603]),o([107,129,277,644,647,659],$Vy8,{408:1720,293:1829,409:$Vz8}),{158:[1,1830]},o($VN8,[2,781]),o($VA8,[2,777]),{108:[1,1831]},{279:$VT3,441:1832},{279:$VT3,441:1833},o($Vd8,[2,671]),{279:$VT3,441:1834},{409:[1,1835]},{720:[1,1836]},{125:1837,279:$VT3,280:$VU3,441:602,781:603},o($Va7,$VE6,{448:1089,131:1838,152:$VF6}),{55:[1,1839]},{108:$VU8,450:1840},o($VS8,[2,640]),o($VM8,[2,656]),o([129,277,644,647,659],$VK8,{413:1771,414:1772,294:1842,107:$VL8}),{46:428,47:$Vz,50:$VA,56:1843,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,608:$Vo2,617:$Vp2,625:$Vq2,626:$Vr2,628:$Vs2,639:$Vt2,640:$Vu2,648:148,649:$Vv2,650:$Vw2,651:$Vx2,652:$Vy2,653:$Vz2,654:$VA2,655:$VB2,656:$VC2,657:$VD2,658:$VE2,659:$VF2,660:$VG2,661:$VH2,662:$VI2,663:$VJ2,664:$VK2,665:$VL2,666:$VM2,667:$VN2,668:$VO2,669:$VP2,670:$VQ2,671:$VR2,672:$VS2,673:$VT2,674:$VU2,675:$VV2,676:$VW2,677:$VX2,678:$VY2,690:$VZ2},{279:$VT3,441:1844},o($VB8,[2,681]),o($Vp8,[2,676]),o($V_7,[2,666]),{118:[2,2382]},{118:[2,2383]},o($V2,[2,1151]),o([108,129,499,644,647],$Vv6,{49:1069,69:1845,659:$VD4}),{81:1846,116:$V97},o($V2,[2,702]),o($V75,[2,701],{451:1847}),o([129,277,644,647],$Vv6,{49:1069,69:1848,659:$VD4}),o($VT8,[2,783]),o($VO8,[2,685]),o([108,499,644,647],$VU7,{449:1448,295:1849,129:$VV7}),o($VJ8,[2,624],{89:[1,1850]}),{152:$V6,195:1851,215:312,564:$Vj,816:30},o([277,644,647],$VU7,{449:1448,295:1852,129:$VV7}),o($VV8,[2,696],{296:1853,450:1854,108:$VU8}),o($VJ8,[2,625]),o($VV8,[2,698]),o($V2,$VP6,{276:1122,272:1855,277:$VQ6}),o($VV8,[2,409]),o($VV8,[2,697]),o($V2,[2,755])], -defaultActions: {104:[2,1191],324:[2,1164],329:[2,2658],330:[2,2660],356:[2,228],357:[2,229],368:[2,214],372:[2,285],410:[2,1598],411:[2,1599],413:[2,1620],414:[2,1596],415:[2,1597],467:[2,1022],504:[2,2313],505:[2,2314],506:[2,2315],507:[2,2316],508:[2,2317],533:[2,2438],534:[2,2439],535:[2,2440],536:[2,2441],537:[2,2442],538:[2,2443],539:[2,2444],540:[2,2445],541:[2,2446],542:[2,2447],543:[2,2448],544:[2,2449],545:[2,2450],546:[2,2451],547:[2,2452],548:[2,2453],549:[2,2454],551:[2,1148],557:[2,1727],593:[2,213],661:[2,1619],728:[2,1023],809:[2,1166],814:[2,2672],871:[2,1618],949:[2,2268],950:[2,2270],951:[2,2272],952:[2,2274],953:[2,2276],954:[2,2278],955:[2,2280],956:[2,2282],1028:[2,2329],1033:[2,2424],1034:[2,2425],1035:[2,2426],1036:[2,2427],1037:[2,2428],1038:[2,2429],1039:[2,2430],1040:[2,2431],1041:[2,2432],1054:[2,1165],1117:[2,289],1118:[2,290],1119:[2,291],1153:[2,1624],1219:[2,2330],1229:[2,1146],1250:[2,562],1268:[2,194],1270:[2,195],1324:[2,772],1411:[2,607],1458:[2,741],1459:[2,742],1460:[2,743],1482:[2,1106],1511:[2,2352],1512:[2,2357],1628:[2,610],1671:[2,787],1683:[2,1094],1684:[2,1105],1777:[2,600],1797:[2,2358],1801:[2,2359],1835:[2,2382],1836:[2,2383]}, -parseError: function parseError (str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse (input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - - -SqlParseSupport.initSyntaxParser(parser);/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex () { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState () { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState (condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true,"flex":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0: /* skip whitespace */ -break; -case 1: /* skip comments */ -break; -case 2: /* skip comments */ -break; -case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 27; -break; -case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 775; -break; -case 5: return 561; -break; -case 6: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 44; -break; -case 7: return 150; -break; -case 8: return 347; -break; -case 9: return 108; -break; -case 10: return 235; -break; -case 11: this.begin('between'); return 691; -break; -case 12: return 692; -break; -case 13: return 693; -break; -case 14: return 694; -break; -case 15: return 79; -break; -case 16: return 228; -break; -case 17: return 695; -break; -case 18: return 697; -break; -case 19: return 93; -break; -case 20: return 701; -break; -case 21: return 71; -break; -case 22: parser.determineCase(yy_.yytext); return 266; -break; -case 23: return 706; -break; -case 24: return 707; -break; -case 25: return 708; -break; -case 26: return 556; -break; -case 27: return 709; -break; -case 28: return 710; -break; -case 29: parser.determineCase(yy_.yytext); return 534; -break; -case 30: parser.determineCase(yy_.yytext); return 815; -break; -case 31: return 712; -break; -case 32: return 687; -break; -case 33: return 714; -break; -case 34: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 166; -break; -case 35: return 715; -break; -case 36: return 716; -break; -case 37: parser.yy.correlatedSubQuery = true; return 717; -break; -case 38: return 239; -break; -case 39: return 638; -break; -case 40: return 718; -break; -case 41: return 719; -break; -case 42: return 720; -break; -case 43: return 227; -break; -case 44: return 371; -break; -case 45: parser.determineCase(yy_.yytext); return 535; -break; -case 46: return 721; -break; -case 47: return 206; -break; -case 48: return 542; -break; -case 49: return 568; -break; -case 50: return 722; -break; -case 51: return 723; -break; -case 52: return 726; -break; -case 53: parser.determineCase(yy_.yytext); return 633; -break; -case 54: return 488; -break; -case 55: return 728; -break; -case 56: parser.determineCase(yy_.yytext); return 562; -break; -case 57: return 729; -break; -case 58: return 730; -break; -case 59: return 384; -break; -case 60: return 731; -break; -case 61: return 732; -break; -case 62: return 733; -break; -case 63: return 734; -break; -case 64: return 307; -break; -case 65: return 735; -break; -case 66: return 588; -break; -case 67: return 499; -break; -case 68: return 491; -break; -case 69: return 351; -break; -case 70: return 738; -break; -case 71: return 88; -break; -case 72: return 208; -break; -case 73: return 740; -break; -case 74: return 741; -break; -case 75: return 55; -break; -case 76: return 742; -break; -case 77: return 743; -break; -case 78: return 744; -break; -case 79: return 745; -break; -case 80: return 161; -break; -case 81: return 749; -break; -case 82: return 'PRECISION'; -break; -case 83: return 317; -break; -case 84: return 750; -break; -case 85: return 372; -break; -case 86: return 751; -break; -case 87: return 571; -break; -case 88: return 752; -break; -case 89: return 753; -break; -case 90: return 754; -break; -case 91: return 409; -break; -case 92: return 755; -break; -case 93: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 564; -break; -case 94: return 757; -break; -case 95: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 26; -break; -case 96: return 758; -break; -case 97: return 204; -break; -case 98: return 158; -break; -case 99: return 619; -break; -case 100: return 763; -break; -case 101: return 75; -break; -case 102: return 764; -break; -case 103: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 533; -break; -case 104: return 995; -break; -case 105: return 765; -break; -case 106: parser.determineCase(yy_.yytext); return 566; -break; -case 107: return 567; -break; -case 108: return 464; -break; -case 109: return 'UTC_TIMESTAMP'; -break; -case 110: return 586; -break; -case 111: return 769; -break; -case 112: return 771; -break; -case 113: return 615; -break; -case 114: return 772; -break; -case 115: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 152; -break; -case 116: parser.determineCase(yy_.yytext); return 538; -break; -case 117: return 66; -break; -case 118: return 570; -break; -case 119: return 174; -break; -case 120: parser.determineCase(yy_.yytext); return 217; -break; -case 121: return 181; -break; -case 122: return 688; -break; -case 123: return 234; -break; -case 124: return 417; -break; -case 125: return 649; -break; -case 126: return 386; -break; -case 127: return 650; -break; -case 128: return 236; -break; -case 129: return 92; -break; -case 130: return 323; -break; -case 131: return 698; -break; -case 132: return 382; -break; -case 133: return 443; -break; -case 134: return 154; -break; -case 135: return 277; -break; -case 136: return 135; -break; -case 137: return 651; -break; -case 138: return 218; -break; -case 139: return 134; -break; -case 140: return 244; -break; -case 141: return 330; -break; -case 142: return 331; -break; -case 143: return 329; -break; -case 144: return 626; -break; -case 145: return 652; -break; -case 146: return 653; -break; -case 147: return 654; -break; -case 148: return 47; -break; -case 149: return 321; -break; -case 150: return 486; -break; -case 151: return 447; -break; -case 152: return 428; -break; -case 153: return 238; -break; -case 154: return 711; -break; -case 155: return 247; -break; -case 156: this.begin('hdfs'); return 589; -break; -case 157: return 177; -break; -case 158: return 713; -break; -case 159: return 396; -break; -case 160: return 655; -break; -case 161: return 176; -break; -case 162: return 442; -break; -case 163: return 156; -break; -case 164: parser.determineCase(yy_.yytext); return 231; -break; -case 165: parser.determineCase(yy_.yytext); return 639; -break; -case 166: return 248; -break; -case 167: return 439; -break; -case 168: return 468; -break; -case 169: return 127; -break; -case 170: return 175; -break; -case 171: return 410; -break; -case 172: return 233; -break; -case 173: return 656; -break; -case 174: return 657; -break; -case 175: return 487; -break; -case 176: return 54; -break; -case 177: return 727; -break; -case 178: this.begin('hdfs'); return 628; -break; -case 179: return 418; -break; -case 180: return 444; -break; -case 181: return 469; -break; -case 182: return 245; -break; -case 183: return 420; -break; -case 184: return 318; -break; -case 185: return 445; -break; -case 186: return 658; -break; -case 187: return 446; -break; -case 188: return 328; -break; -case 189: parser.determineCase(yy_.yytext); return 625; -break; -case 190: this.begin('hdfs'); return 659; -break; -case 191: return 563; -break; -case 192: return 240; -break; -case 193: return 617; -break; -case 194: return 61; -break; -case 195: return 608; -break; -case 196: return 229; -break; -case 197: return 660; -break; -case 198: return 661; -break; -case 199: return 198; -break; -case 200: return 178; -break; -case 201: return 374; -break; -case 202: return 230; -break; -case 203: return 333; -break; -case 204: return 180; -break; -case 205: return 246; -break; -case 206: return 249; -break; -case 207: return 569; -break; -case 208: return 421; -break; -case 209: return 419; -break; -case 210: return 746; -break; -case 211: return 153; -break; -case 212: this.begin('hdfs'); return 592; -break; -case 213: return 50; -break; -case 214: return 422; -break; -case 215: return 376; -break; -case 216: return 85; -break; -case 217: return 662; -break; -case 218: return 574; -break; -case 219: return 532; -break; -case 220: return 663; -break; -case 221: return 423; -break; -case 222: return 58; -break; -case 223: return 84; -break; -case 224: parser.determineCase(yy_.yytext); return 205; -break; -case 225: return 373; -break; -case 226: return 74; -break; -case 227: return 202; -break; -case 228: return 99; -break; -case 229: return 640; -break; -case 230: return 664; -break; -case 231: return 64; -break; -case 232: return 473; -break; -case 233: return 665; -break; -case 234: return 756; -break; -case 235: return 666; -break; -case 236: return 667; -break; -case 237: return 424; -break; -case 238: return 130; -break; -case 239: return 132; -break; -case 240: return 668; -break; -case 241: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 669; -break; -case 242: return 565; -break; -case 243: return 90; -break; -case 244: return 78; -break; -case 245: return 881; -break; -case 246: return 397; -break; -case 247: return 219; -break; -case 248: return 107; -break; -case 249: return 89; -break; -case 250: return 670; -break; -case 251: return 352; -break; -case 252: return 250; -break; -case 253: return 671; -break; -case 254: return 762; -break; -case 255: return 129; -break; -case 256: return 460; -break; -case 257: return 440; -break; -case 258: return 425; -break; -case 259: return 672; -break; -case 260: return 86; -break; -case 261: return 673; -break; -case 262: return 539; -break; -case 263: return 182; -break; -case 264: return 359; -break; -case 265: return 320; -break; -case 266: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 674; -break; -case 267: return 241; -break; -case 268: return 62; -break; -case 269: return 151; -break; -case 270: return 675; -break; -case 271: return 773; -break; -case 272: return 676; -break; -case 273: return 683; -break; -case 274: return 684; -break; -case 275: return 685; -break; -case 276: this.popState(); return 889; -break; -case 277: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 689; -break; -case 278: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 696; -break; -case 279: yy.lexer.unput('('); yy_.yytext = 'collect_list'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 699; -break; -case 280: yy.lexer.unput('('); yy_.yytext = 'collect_set'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 700; -break; -case 281: yy.lexer.unput('('); yy_.yytext = 'corr'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 702; -break; -case 282: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 703; -break; -case 283: yy.lexer.unput('('); yy_.yytext = 'covar_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 704; -break; -case 284: yy.lexer.unput('('); yy_.yytext = 'covar_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 705; -break; -case 285: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 1001; -break; -case 286: yy.lexer.unput('('); yy_.yytext = 'histogram_numeric'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 725; -break; -case 287: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 736; -break; -case 288: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 737; -break; -case 289: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 739; -break; -case 290: yy.lexer.unput('('); yy_.yytext = 'percentile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 747; -break; -case 291: yy.lexer.unput('('); yy_.yytext = 'percentile_approx'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 748; -break; -case 292: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 759; -break; -case 293: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 760; -break; -case 294: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 761; -break; -case 295: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 767; -break; -case 296: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 768; -break; -case 297: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 770; -break; -case 298: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 299: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 300: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 301: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 302: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 303: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 304: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 305: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 306: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 307: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 686; -break; -case 308: return 385; -break; -case 309: return 385; -break; -case 310: return 766; -break; -case 311: return 677; -break; -case 312: parser.yy.cursorFound = true; return 27; -break; -case 313: parser.yy.cursorFound = true; return 775; -break; -case 314: return 724; -break; -case 315: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 998; -break; -case 316: this.popState(); return 999; -break; -case 317: return 644; -break; -case 318: return 150; -break; -case 319: return 742; -break; -case 320: return 126; -break; -case 321: return 348; -break; -case 322: return 349; -break; -case 323: return 381; -break; -case 324: return 381; -break; -case 325: return 381; -break; -case 326: return 381; -break; -case 327: return 381; -break; -case 328: return 682; -break; -case 329: return 681; -break; -case 330: return 687; -break; -case 331: return 687; -break; -case 332: return 687; -break; -case 333: return 687; -break; -case 334: return 687; -break; -case 335: return 687; -break; -case 336: return 123; -break; -case 337: return 683; -break; -case 338: return 358; -break; -case 339: return 647; -break; -case 340: return 774; -break; -case 341: return 680; -break; -case 342: return 116; -break; -case 343: return 118; -break; -case 344: return 684; -break; -case 345: return 685; -break; -case 346: return 678; -break; -case 347: this.begin('backtickedValue'); return 690; -break; -case 348: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { - return 780; - } - return 281; - -break; -case 349: this.popState(); return 690; -break; -case 350: this.begin('singleQuotedValue'); return 279; -break; -case 351: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { - return 780; - } - return 281; - -break; -case 352: this.popState(); return 279; -break; -case 353: this.begin('doubleQuotedValue'); return 280; -break; -case 354: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { - return 780; - } - return 281; - -break; -case 355: this.popState(); return 280; -break; -case 356: return 644; -break; -case 357: /* To prevent console logging of unknown chars */ -break; -case 358: -break; -case 359: -break; -case 360: -break; -case 361: -break; -case 362: -break; -case 363:console.log(yy_.yytext); -break; -} -}, -rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:ARRAY)/i,/^(?:AS)/i,/^(?:AUTHORIZATION)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BINARY)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CACHE)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:COLUMN)/i,/^(?:CONF)/i,/^(?:CONSTRAINT)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DATE)/i,/^(?:DECIMAL)/i,/^(?:DELETE)/i,/^(?:DESCRIBE)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:FUNCTION)/i,/^(?:GRANT)/i,/^(?:GROUP)/i,/^(?:GROUPING)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IMPORT)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTEGER)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LATERAL)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:LOCAL)/i,/^(?:LIFECYCLE)/i,/^(?:MACRO)/i,/^(?:MAP)/i,/^(?:NONE)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:NULLS)/i,/^(?:OF)/i,/^(?:ON)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUT)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PRECISION)/i,/^(?:PRIMARY)/i,/^(?:RANGE)/i,/^(?:REFERENCES)/i,/^(?:REGEXP)/i,/^(?:REVOKE)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROLLUP)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SMALLINT)/i,/^(?:SYNC)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UNION)/i,/^(?:UPDATE)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:UTC_TIMESTAMP)/i,/^(?:VALUES)/i,/^(?:VARCHAR)/i,/^(?:VIEWS)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:ABORT)/i,/^(?:ADD)/i,/^(?:ADMIN)/i,/^(?:AFTER)/i,/^(?:ANALYZE)/i,/^(?:ARCHIVE)/i,/^(?:ASC)/i,/^(?:AST)/i,/^(?:AVRO)/i,/^(?:BUCKET)/i,/^(?:BUCKETS)/i,/^(?:CASCADE)/i,/^(?:CBO)/i,/^(?:CHANGE)/i,/^(?:CHECK)/i,/^(?:CLUSTER)/i,/^(?:CLUSTERED)/i,/^(?:COLLECTION)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMPACT)/i,/^(?:COMPACTIONS)/i,/^(?:COMPUTE)/i,/^(?:CONCATENATE)/i,/^(?:COST)/i,/^(?:CURRENT_DATE)/i,/^(?:CURRENT_TIMESTAMP)/i,/^(?:CURRENT_USER)/i,/^(?:DATA)/i,/^(?:DATABASES)/i,/^(?:DAY)/i,/^(?:DAYOFWEEK)/i,/^(?:DBPROPERTIES)/i,/^(?:DEFAULT)/i,/^(?:DEFERRED)/i,/^(?:DEFINED)/i,/^(?:DELIMITED)/i,/^(?:DEPENDENCY)/i,/^(?:DESC)/i,/^(?:DETAIL)/i,/^(?:DIRECTORY)/i,/^(?:DISABLE)/i,/^(?:DISTRIBUTE)/i,/^(?:DISTRIBUTED)/i,/^(?:DOUBLE\s+PRECISION)/i,/^(?:ENABLE)/i,/^(?:ESCAPED)/i,/^(?:EXCHANGE)/i,/^(?:EXPLAIN)/i,/^(?:EXPORT)/i,/^(?:EXPRESSION)/i,/^(?:FIELDS)/i,/^(?:FILE)/i,/^(?:FILEFORMAT)/i,/^(?:FIRST)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FUNCTIONS)/i,/^(?:HOUR)/i,/^(?:IDXPROPERTIES)/i,/^(?:INDEX)/i,/^(?:INDEXES)/i,/^(?:INPATH)/i,/^(?:INPUTFORMAT)/i,/^(?:ITEMS)/i,/^(?:JAR)/i,/^(?:JOINCOST)/i,/^(?:JSONFILE)/i,/^(?:KEY)/i,/^(?:KEYS)/i,/^(?:LAST)/i,/^(?:LINES)/i,/^(?:LITERAL)/i,/^(?:LOAD)/i,/^(?:LOCATION)/i,/^(?:LOCK)/i,/^(?:LOCKS)/i,/^(?:MATCHED)/i,/^(?:MATERIALIZED)/i,/^(?:MERGE)/i,/^(?:METADATA)/i,/^(?:MINUTE)/i,/^(?:MONTH)/i,/^(?:MSCK)/i,/^(?:NO_DROP)/i,/^(?:NORELY)/i,/^(?:NOSCAN)/i,/^(?:NOVALIDATE)/i,/^(?:OFFLINE)/i,/^(?:ONLY)/i,/^(?:OPERATOR)/i,/^(?:OPTION)/i,/^(?:ORC)/i,/^(?:OUTPUTFORMAT)/i,/^(?:OVER)/i,/^(?:OVERWRITE)/i,/^(?:OVERWRITE\s+DIRECTORY)/i,/^(?:OWNER)/i,/^(?:PARQUET)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PERCENT)/i,/^(?:PRIVILEGES)/i,/^(?:PURGE)/i,/^(?:QUARTER)/i,/^(?:RCFILE)/i,/^(?:REBUILD)/i,/^(?:RECOVER)/i,/^(?:RELOAD)/i,/^(?:RELY)/i,/^(?:RENAME)/i,/^(?:REPAIR)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:REWRITE)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SECOND)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SETS)/i,/^(?:SHOW)/i,/^(?:SHOW_DATABASE)/i,/^(?:SKEWED LOCATION)/i,/^(?:SKEWED)/i,/^(?:SORT)/i,/^(?:SORTED)/i,/^(?:STATISTICS)/i,/^(?:STORED)/i,/^(?:STORED\s+AS\s+DIRECTORIES)/i,/^(?:STRING)/i,/^(?:STRUCT)/i,/^(?:SUMMARY)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TEMPORARY)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:TINYINT)/i,/^(?:TOUCH)/i,/^(?:TRANSACTIONAL)/i,/^(?:TRANSACTIONS)/i,/^(?:UNARCHIVE)/i,/^(?:UNIONTYPE)/i,/^(?:UNIQUE)/i,/^(?:USE)/i,/^(?:VECTORIZATION)/i,/^(?:VIEW)/i,/^(?:WAIT)/i,/^(?:WEEK)/i,/^(?:WINDOW)/i,/^(?:YEAR)/i,/^(?:\.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:AND)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COLLECT_LIST\s*\()/i,/^(?:COLLECT_SET\s*\()/i,/^(?:CORR\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:COVAR_POP\s*\()/i,/^(?:COVAR_SAMP\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:HISTOGRAM_NUMERIC\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENTILE\s*\()/i,/^(?:PERCENTILE_APPROX\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], -conditions: {"hdfs":{"rules":[312,313,314,315,316,317,359],"inclusive":false},"doubleQuotedValue":{"rules":[354,355,362],"inclusive":false},"singleQuotedValue":{"rules":[351,352,361],"inclusive":false},"backtickedValue":{"rules":[348,349,360],"inclusive":false},"between":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,350,353,356,357,358,363],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,350,353,356,357,363],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); -export default hiveSyntaxParser; diff --git a/src/core/parse/hive/sqlParseSupport.js b/src/core/parse/hive/sqlParseSupport.js deleted file mode 100644 index 417c636..0000000 --- a/src/core/parse/hive/sqlParseSupport.js +++ /dev/null @@ -1,2471 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import { SqlFunctions } from '../sqlFunctions'; -import stringDistance from '../stringDistance'; - -const identifierEquals = (a, b) => - a && - b && - a - .replace(/^\s*`/, '') - .replace(/`\s*$/, '') - .toLowerCase() === - b - .replace(/^\s*`/, '') - .replace(/`\s*$/, '') - .toLowerCase(); - -// endsWith polyfill from hue_utils.js, needed as workers live in their own js environment -if (!String.prototype.endsWith) { - String.prototype.endsWith = function(searchString, position) { - const subjectString = this.toString(); - if ( - typeof position !== 'number' || - !isFinite(position) || - Math.floor(position) !== position || - position > subjectString.length - ) { - position = subjectString.length; - } - position -= searchString.length; - const lastIndex = subjectString.lastIndexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; -} - -const equalIgnoreCase = (a, b) => a && b && a.toLowerCase() === b.toLowerCase(); - -const SIMPLE_TABLE_REF_SUGGESTIONS = [ - 'suggestJoinConditions', - 'suggestAggregateFunctions', - 'suggestFilters', - 'suggestGroupBys', - 'suggestOrderBys' -]; - -const initSqlParser = function(parser) { - parser.prepareNewStatement = function() { - linkTablePrimaries(); - parser.commitLocations(); - - delete parser.yy.lateralViews; - delete parser.yy.latestCommonTableExpressions; - delete parser.yy.correlatedSubQuery; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - prioritizeSuggestions(); - }; - - parser.yy.parseError = function(message, error) { - parser.yy.errors.push(error); - return message; - }; - - parser.addCommonTableExpressions = function(identifiers) { - parser.yy.result.commonTableExpressions = identifiers; - parser.yy.latestCommonTableExpressions = identifiers; - }; - - parser.isInSubquery = function() { - return !!parser.yy.primariesStack.length; - }; - - parser.pushQueryState = function() { - parser.yy.resultStack.push(parser.yy.result); - parser.yy.locationsStack.push(parser.yy.locations); - parser.yy.lateralViewsStack.push(parser.yy.lateralViews); - parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); - parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); - parser.yy.subQueriesStack.push(parser.yy.subQueries); - - parser.yy.result = {}; - parser.yy.locations = []; - parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries - parser.yy.lateralViews = []; // Not allowed in correlated sub-queries - - if (parser.yy.correlatedSubQuery) { - parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); - parser.yy.subQueries = parser.yy.subQueries.concat(); - } else { - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - } - }; - - parser.popQueryState = function(subQuery) { - linkTablePrimaries(); - parser.commitLocations(); - - if (Object.keys(parser.yy.result).length === 0) { - parser.yy.result = parser.yy.resultStack.pop(); - } else { - parser.yy.resultStack.pop(); - } - const oldSubQueries = parser.yy.subQueries; - parser.yy.subQueries = parser.yy.subQueriesStack.pop(); - if (subQuery) { - if (oldSubQueries.length > 0) { - subQuery.subQueries = oldSubQueries; - } - parser.yy.subQueries.push(subQuery); - } - - parser.yy.lateralViews = parser.yy.lateralViewsStack.pop(); - parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); - parser.yy.locations = parser.yy.locationsStack.pop(); - parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); - }; - - parser.suggestSelectListAliases = function() { - if ( - parser.yy.selectListAliases && - parser.yy.selectListAliases.length > 0 && - parser.yy.result.suggestColumns && - (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || - parser.yy.result.suggestColumns.identifierChain.length === 0) - ) { - parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; - } - }; - - parser.mergeSuggestKeywords = function() { - let result = []; - Array.prototype.slice.call(arguments).forEach(suggestion => { - if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { - result = result.concat(suggestion.suggestKeywords); - } - }); - if (result.length > 0) { - return { suggestKeywords: result }; - } - return {}; - }; - - parser.suggestValueExpressionKeywords = function(valueExpression, extras) { - const expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); - parser.suggestKeywords(expressionKeywords.suggestKeywords); - if (expressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); - } - if (valueExpression.lastType) { - parser.addColRefIfExists(valueExpression.lastType); - } else { - parser.addColRefIfExists(valueExpression); - } - }; - - parser.getSelectListKeywords = function(excludeAsterisk) { - const keywords = [{ value: 'CASE', weight: 450 }, 'EXISTS', 'FALSE', 'TRUE', 'NULL', 'NOT']; - if (!excludeAsterisk) { - keywords.push({ value: '*', weight: 10000 }); - } - return keywords; - }; - - parser.getValueExpressionKeywords = function(valueExpression, extras) { - const types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; - // We could have valueExpression.columnReference to suggest based on column type - let keywords = [ - '<', - '<=', - '<=>', - '<>', - '=', - '>', - '>=', - 'BETWEEN', - 'IN', - 'IS NOT NULL', - 'IS NULL', - 'IS NOT TRUE', - 'IS TRUE', - 'IS NOT FALSE', - 'IS FALSE', - 'NOT BETWEEN', - 'NOT IN' - ]; - if (extras) { - keywords = keywords.concat(extras); - } - if (valueExpression.suggestKeywords) { - keywords = keywords.concat(valueExpression.suggestKeywords); - } - if (types.length === 1 && types[0] === 'COLREF') { - return { - suggestKeywords: keywords, - suggestColRefKeywords: { - BOOLEAN: ['AND', 'OR'], - NUMBER: ['+', '-', '*', '/', '%', 'DIV'], - STRING: ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] - } - }; - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types) - ) { - keywords = keywords.concat(['AND', 'OR']); - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types) - ) { - keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types) - ) { - keywords = keywords.concat(['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); - } - return { suggestKeywords: keywords }; - }; - - parser.getTypeKeywords = function() { - return [ - 'BIGINT', - 'BINARY', - 'BOOLEAN', - 'CHAR', - 'DATE', - 'DECIMAL', - 'DOUBLE', - 'DOUBLE PRECISION', - 'FLOAT', - 'INT', - 'INTEGER', - 'SMALLINT', - 'TIMESTAMP', - 'STRING', - 'TINYINT', - 'VARCHAR' - ]; - }; - - parser.getColumnDataTypeKeywords = function() { - return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>', 'UNIONTYPE<>']); - }; - - parser.addColRefIfExists = function(valueExpression) { - if (valueExpression.columnReference) { - parser.yy.result.colRef = { identifierChain: valueExpression.columnReference }; - } - }; - - parser.selectListNoTableSuggest = function(selectListEdit, hasDistinctOrAll) { - if (selectListEdit.cursorAtStart) { - let keywords = parser.getSelectListKeywords(); - if (!hasDistinctOrAll) { - keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForKeywords(selectListEdit); - } - if (selectListEdit.suggestFunctions) { - parser.suggestFunctions(); - } - if (selectListEdit.suggestColumns) { - parser.suggestColumns(); - } - if ( - selectListEdit.suggestAggregateFunctions && - (!hasDistinctOrAll || hasDistinctOrAll === 'ALL') - ) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - }; - - parser.suggestJoinConditions = function(details) { - parser.yy.result.suggestJoinConditions = details || {}; - if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { - parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); - } - }; - - parser.suggestJoins = function(details) { - parser.yy.result.suggestJoins = details || {}; - }; - - parser.valueExpressionSuggest = function(oppositeValueExpression, operator) { - if (oppositeValueExpression && oppositeValueExpression.columnReference) { - parser.suggestValues(); - parser.yy.result.colRef = { identifierChain: oppositeValueExpression.columnReference }; - } - parser.suggestColumns(); - parser.suggestFunctions(); - let keywords = [ - { value: 'CASE', weight: 450 }, - { value: 'FALSE', weight: 450 }, - { value: 'NULL', weight: 450 }, - { value: 'TRUE', weight: 450 } - ]; - keywords = keywords.concat(['EXISTS', 'NOT']); - if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { - parser.applyTypeToSuggestions(['NUMBER']); - } - parser.suggestKeywords(keywords); - }; - - parser.applyTypeToSuggestions = function(types) { - if (types[0] === 'BOOLEAN') { - return; - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.yy.result.suggestFunctions.types = types; - } - if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { - parser.yy.result.suggestColumns.types = types; - } - }; - - parser.findCaseType = function(whenThenList) { - const types = {}; - whenThenList.caseTypes.forEach(valueExpression => { - valueExpression.types.forEach(type => { - types[type] = true; - }); - }); - if (Object.keys(types).length === 1) { - return { types: [Object.keys(types)[0]] }; - } - return { types: ['T'] }; - }; - - parser.findReturnTypes = function(functionName) { - return typeof SqlFunctions === 'undefined' - ? ['T'] - : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); - }; - - parser.applyArgumentTypesToSuggestions = function(functionName, position) { - const foundArguments = - typeof SqlFunctions === 'undefined' - ? ['T'] - : SqlFunctions.getArgumentTypes( - parser.yy.activeDialect, - functionName.toLowerCase(), - position - ); - if (foundArguments.length === 0 && parser.yy.result.suggestColumns) { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeyValues; - delete parser.yy.result.suggestValues; - delete parser.yy.result.suggestFunctions; - delete parser.yy.result.suggestIdentifiers; - delete parser.yy.result.suggestKeywords; - } else { - parser.applyTypeToSuggestions(foundArguments); - } - }; - - parser.commitLocations = function() { - if (parser.yy.locations.length === 0) { - return; - } - - const tablePrimaries = parser.yy.latestTablePrimaries; - - let i = parser.yy.locations.length; - - while (i--) { - const location = parser.yy.locations[i]; - if (location.type === 'variable' && location.colRef) { - parser.expandIdentifierChain({ - wrapper: location.colRef, - tablePrimaries: tablePrimaries, - isColumnWrapper: true - }); - delete location.colRef.linked; - } - - if (location.type === 'unknown') { - if ( - typeof location.identifierChain !== 'undefined' && - location.identifierChain.length > 0 && - location.identifierChain.length <= 2 && - tablePrimaries - ) { - let found = tablePrimaries.filter(primary => { - return ( - equalIgnoreCase(primary.alias, location.identifierChain[0].name) || - (primary.identifierChain && - equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)) - ); - }); - if (!found.length && location.firstInChain) { - found = tablePrimaries.filter(primary => { - return ( - !primary.alias && - primary.identifierChain && - equalIgnoreCase( - primary.identifierChain[primary.identifierChain.length - 1].name, - location.identifierChain[0].name - ) - ); - }); - } - - if (found.length) { - if ( - found[0].identifierChain.length > 1 && - location.identifierChain.length === 1 && - equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name) - ) { - location.type = 'database'; - } else if ( - found[0].alias && - equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && - location.identifierChain.length > 1 - ) { - location.type = 'column'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } else if ( - !found[0].alias && - found[0].identifierChain && - equalIgnoreCase( - location.identifierChain[0].name, - found[0].identifierChain[found[0].identifierChain.length - 1].name - ) && - location.identifierChain.length > 1 - ) { - location.type = 'column'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } else { - location.type = 'table'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } - } else if (parser.yy.subQueries) { - found = parser.yy.subQueries.filter(subQuery => { - return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'subQuery'; - location.identifierChain = [{ subQuery: found[0].alias }]; - } - } - } - } - - if (location.type === 'asterisk' && !location.linked) { - if (tablePrimaries && tablePrimaries.length > 0) { - location.tables = []; - location.linked = false; - if (!location.identifierChain) { - location.identifierChain = [{ asterisk: true }]; - } - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: false - }); - if (location.tables.length === 0) { - parser.yy.locations.splice(i, 1); - } - } else { - parser.yy.locations.splice(i, 1); - } - } - - if ( - location.type === 'table' && - typeof location.identifierChain !== 'undefined' && - location.identifierChain.length === 1 && - location.identifierChain[0].name - ) { - // Could be a cte reference - parser.yy.locations.some(otherLocation => { - if ( - otherLocation.type === 'alias' && - otherLocation.source === 'cte' && - identifierEquals(otherLocation.alias, location.identifierChain[0].name) - ) { - // TODO: Possibly add the other location if we want to show the link in the future. - // i.e. highlight select definition on hover over alias, also for subquery references. - location.type = 'alias'; - location.target = 'cte'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - return true; - } - }); - } - - if ( - location.type === 'table' && - (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0) - ) { - parser.yy.locations.splice(i, 1); - } - - if (location.type === 'unknown') { - location.type = 'column'; - } - - // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" - if (location.type === 'column') { - for (let j = i - 1; j >= 0; j--) { - const otherLocation = parser.yy.locations[j]; - if ( - otherLocation.type === 'alias' && - otherLocation.source === 'column' && - location.identifierChain && - location.identifierChain.length === 1 && - location.identifierChain[0].name && - otherLocation.alias && - location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase() - ) { - location.type = 'alias'; - location.source = 'column'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - location.parentLocation = otherLocation.parentLocation; - break; - } - } - } - - if (location.type === 'column') { - if (!location.linked) { - location.identifierChain = parser.expandLateralViews( - parser.yy.lateralViews, - location.identifierChain - ); - } - - const initialIdentifierChain = location.identifierChain - ? location.identifierChain.concat() - : undefined; - - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true, - isColumnWrapper: true, - isColumnLocation: true - }); - - if (typeof location.identifierChain === 'undefined') { - parser.yy.locations.splice(i, 1); - } else if ( - location.identifierChain.length === 0 && - initialIdentifierChain && - initialIdentifierChain.length === 1 - ) { - // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; - location.identifierChain = initialIdentifierChain; - } - } - if (location.type === 'column' && location.identifierChain) { - if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { - location.type = 'complex'; - } - } - delete location.firstInChain; - if (location.type !== 'column' && location.type !== 'complex') { - delete location.qualified; - } else if (typeof location.qualified === 'undefined') { - location.qualified = false; - } - } - - if (parser.yy.locations.length > 0) { - parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); - parser.yy.locations = []; - } - }; - - const prioritizeSuggestions = function() { - parser.yy.result.lowerCase = parser.yy.lowerCase || false; - - const cteIndex = {}; - - if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - parser.yy.latestCommonTableExpressions.forEach(cte => { - cteIndex[cte.alias.toLowerCase()] = cte; - }); - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if ( - suggestionType !== 'suggestAggregateFunctions' && - typeof parser.yy.result[suggestionType] !== 'undefined' && - parser.yy.result[suggestionType].tables.length === 0 - ) { - delete parser.yy.result[suggestionType]; - } else if ( - typeof parser.yy.result[suggestionType] !== 'undefined' && - typeof parser.yy.result[suggestionType].tables !== 'undefined' - ) { - for (let i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { - const table = parser.yy.result[suggestionType].tables[i]; - if ( - table.identifierChain.length === 1 && - typeof table.identifierChain[0].name !== 'undefined' && - typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined' - ) { - parser.yy.result[suggestionType].tables.splice(i, 1); - } - } - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - if ( - !parser.yy.result.colRef.linked || - typeof parser.yy.result.colRef.identifierChain === 'undefined' || - parser.yy.result.colRef.identifierChain.length === 0 - ) { - delete parser.yy.result.colRef; - if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { - Object.keys(parser.yy.result.suggestColRefKeywords).forEach(type => { - parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat( - parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1) - ); - }); - delete parser.yy.result.suggestColRefKeywords; - } - if ( - parser.yy.result.suggestColumns && - parser.yy.result.suggestColumns.types.length === 1 && - parser.yy.result.suggestColumns.types[0] === 'COLREF' - ) { - parser.yy.result.suggestColumns.types = ['T']; - } - delete parser.yy.result.suggestValues; - } - } - - if (typeof parser.yy.result.colRef !== 'undefined') { - if ( - !parser.yy.result.suggestValues && - !parser.yy.result.suggestColRefKeywords && - (!parser.yy.result.suggestColumns || parser.yy.result.suggestColumns.types[0] !== 'COLREF') - ) { - delete parser.yy.result.colRef; - } - } - if ( - typeof parser.yy.result.suggestIdentifiers !== 'undefined' && - parser.yy.result.suggestIdentifiers.length > 0 - ) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - const suggestColumns = parser.yy.result.suggestColumns; - if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.subQueries; - } else { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - - suggestColumns.tables.forEach(table => { - if ( - typeof table.identifierChain !== 'undefined' && - table.identifierChain.length === 1 && - typeof table.identifierChain[0].name !== 'undefined' - ) { - const cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; - if (typeof cte !== 'undefined') { - delete table.identifierChain[0].name; - table.identifierChain[0].cte = cte.alias; - } - } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { - table.identifierChain = [{ subQuery: table.subQuery }]; - delete table.subQuery; - } - }); - - if ( - typeof suggestColumns.identifierChain !== 'undefined' && - suggestColumns.identifierChain.length === 0 - ) { - delete suggestColumns.identifierChain; - } - } - } else { - delete parser.yy.result.subQueries; - } - - if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { - if ( - typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || - parser.yy.result.suggestJoinConditions.tables.length === 0 - ) { - delete parser.yy.result.suggestJoinConditions; - } - } - - if ( - typeof parser.yy.result.suggestTables !== 'undefined' && - typeof parser.yy.result.commonTableExpressions !== 'undefined' - ) { - const ctes = []; - parser.yy.result.commonTableExpressions.forEach(cte => { - const suggestion = { name: cte.alias }; - if (parser.yy.result.suggestTables.prependFrom) { - suggestion.prependFrom = true; - } - if (parser.yy.result.suggestTables.prependQuestionMark) { - suggestion.prependQuestionMark = true; - } - ctes.push(suggestion); - }); - if (ctes.length > 0) { - parser.yy.result.suggestCommonTableExpressions = ctes; - } - } - }; - - parser.identifyPartials = function(beforeCursor, afterCursor) { - const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return { - left: beforeMatch ? beforeMatch[0].length : 0, - right: afterMatch ? afterMatch[0].length : 0 - }; - }; - - parser.expandLateralViews = function(lateralViews, originalIdentifierChain, columnSuggestion) { - let identifierChain = originalIdentifierChain.concat(); // Clone in case it's re-used - let firstIdentifier = identifierChain[0]; - if (typeof lateralViews !== 'undefined') { - lateralViews - .concat() - .reverse() - .forEach(lateralView => { - if (!lateralView.udtf.expression.columnReference) { - return; - } - if ( - equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && - identifierChain.length > 1 - ) { - identifierChain.shift(); - firstIdentifier = identifierChain[0]; - if (columnSuggestion) { - delete parser.yy.result.suggestKeywords; - } - } else if ( - equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && - identifierChain.length === 1 && - typeof parser.yy.result.suggestColumns !== 'undefined' - ) { - if (columnSuggestion) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = []; - } - lateralView.columnAliases.forEach(columnAlias => { - parser.yy.result.suggestIdentifiers.push({ name: columnAlias, type: 'alias' }); - }); - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeywords; - } - return identifierChain; - } - if (lateralView.columnAliases.indexOf(firstIdentifier.name) !== -1) { - if ( - lateralView.columnAliases.length === 2 && - lateralView.udtf.function.toLowerCase() === 'explode' && - equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[0]) - ) { - identifierChain[0] = { name: 'key' }; - } else if ( - lateralView.columnAliases.length === 2 && - lateralView.udtf.function.toLowerCase() === 'explode' && - equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[1]) - ) { - identifierChain[0] = { name: 'value' }; - } else { - identifierChain[0] = { name: 'item' }; - } - identifierChain = lateralView.udtf.expression.columnReference.concat(identifierChain); - firstIdentifier = identifierChain[0]; - } - }); - } - return identifierChain; - }; - - const addCleanTablePrimary = function(tables, tablePrimary) { - if (tablePrimary.alias) { - tables.push({ alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain }); - } else { - tables.push({ identifierChain: tablePrimary.identifierChain }); - } - }; - - parser.expandIdentifierChain = function(options) { - const wrapper = options.wrapper; - const anyOwner = options.anyOwner; - const isColumnWrapper = options.isColumnWrapper; - const isColumnLocation = options.isColumnLocation; - let tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; - - if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { - return; - } - let identifierChain = wrapper.identifierChain.concat(); - - if (tablePrimaries.length === 0) { - delete wrapper.identifierChain; - return; - } - - if (!anyOwner) { - tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); - } - - if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { - const tables = []; - tablePrimaries.forEach(tablePrimary => { - if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { - if ( - identifierChain.length === 2 && - equalIgnoreCase(tablePrimary.alias, identifierChain[0].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } else if ( - identifierChain.length === 2 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } else if ( - identifierChain.length === 3 && - tablePrimary.identifierChain.length > 1 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } - } else if (tablePrimary.subQueryAlias) { - tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); - } else { - addCleanTablePrimary(tables, tablePrimary); - } - }); - // Possible Joins - if (tables.length > 0) { - wrapper.tables = tables; - delete wrapper.identifierChain; - return; - } - } - - // Expand exploded views in the identifier chain - if (identifierChain.length > 0) { - identifierChain = parser.expandLateralViews(parser.yy.lateralViews, identifierChain); - wrapper.identifierChain = identifierChain; - } - - // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] - // Reduce the tablePrimaries to the one that matches the first identifier if found - let foundPrimary; - let doubleMatch = false; - let aliasMatch = false; - if (identifierChain.length > 0) { - for (let i = 0; i < tablePrimaries.length; i++) { - if (tablePrimaries[i].subQueryAlias) { - if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - } - } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - aliasMatch = true; - break; - } else if ( - tablePrimaries[i].identifierChain.length > 1 && - identifierChain.length > 1 && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name) - ) { - foundPrimary = tablePrimaries[i]; - doubleMatch = true; - break; - } else if ( - !foundPrimary && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - identifierChain.length > (isColumnLocation ? 1 : 0) - ) { - foundPrimary = tablePrimaries[i]; - // No break as first two can still match. - } else if ( - !foundPrimary && - tablePrimaries[i].identifierChain.length > 1 && - !tablePrimaries[i].alias && - equalIgnoreCase( - tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, - identifierChain[0].name - ) - ) { - // This is for the case SELECT baa. FROM bla.baa, blo.boo; - foundPrimary = tablePrimaries[i]; - break; - } - } - } - - if (foundPrimary) { - identifierChain.shift(); - if (doubleMatch) { - identifierChain.shift(); - } - } else if (tablePrimaries.length === 1 && !isColumnWrapper) { - foundPrimary = tablePrimaries[0]; - } - - if (foundPrimary) { - if (isColumnWrapper) { - wrapper.identifierChain = identifierChain; - if (foundPrimary.subQueryAlias) { - wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; - } else if (foundPrimary.alias) { - if (!isColumnLocation && isColumnWrapper && aliasMatch) { - // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) - // the case is: SELECT cu.| FROM customers cu; - // This prevents alias from being added automatically in sqlAutocompleter.js - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } else { - wrapper.tables = [ - { identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias } - ]; - } - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } - } else { - if (foundPrimary.subQueryAlias) { - identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); - } else { - identifierChain = foundPrimary.identifierChain.concat(identifierChain); - } - if (wrapper.tables) { - wrapper.tables.push({ identifierChain: identifierChain }); - delete wrapper.identifierChain; - } else { - wrapper.identifierChain = identifierChain; - } - } - } else { - if (isColumnWrapper) { - wrapper.tables = []; - } - tablePrimaries.forEach(tablePrimary => { - const targetTable = tablePrimary.subQueryAlias - ? { subQuery: tablePrimary.subQueryAlias } - : { identifierChain: tablePrimary.identifierChain }; - if (tablePrimary.alias) { - targetTable.alias = tablePrimary.alias; - } - if (wrapper.tables) { - wrapper.tables.push(targetTable); - } - }); - } - delete wrapper.owner; - wrapper.linked = true; - }; - - const suggestLateralViewAliasesAsIdentifiers = function() { - if (typeof parser.yy.lateralViews === 'undefined' || parser.yy.lateralViews.length === 0) { - return; - } - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = []; - } - parser.yy.lateralViews.forEach(lateralView => { - if (typeof lateralView.tableAlias !== 'undefined') { - parser.yy.result.suggestIdentifiers.push({ - name: lateralView.tableAlias + '.', - type: 'alias' - }); - } - lateralView.columnAliases.forEach(columnAlias => { - parser.yy.result.suggestIdentifiers.push({ name: columnAlias, type: 'alias' }); - }); - }); - if (parser.yy.result.suggestIdentifiers.length === 0) { - delete parser.yy.result.suggestIdentifiers; - } - }; - - const filterTablePrimariesForOwner = function(tablePrimaries, owner) { - const result = []; - tablePrimaries.forEach(primary => { - if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { - result.push(primary); - } else if (owner === primary.owner) { - result.push(primary); - } - }); - return result; - }; - - const convertTablePrimariesToSuggestions = function(tablePrimaries) { - const tables = []; - const identifiers = []; - tablePrimaries.forEach(tablePrimary => { - if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - const table = { identifierChain: tablePrimary.identifierChain }; - if (tablePrimary.alias) { - table.alias = tablePrimary.alias; - identifiers.push({ name: table.alias + '.', type: 'alias' }); - } else { - const lastIdentifier = - tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; - if (typeof lastIdentifier.name !== 'undefined') { - identifiers.push({ name: lastIdentifier.name + '.', type: 'table' }); - } else if (typeof lastIdentifier.subQuery !== 'undefined') { - identifiers.push({ name: lastIdentifier.subQuery + '.', type: 'sub-query' }); - } - } - tables.push(table); - } else if (tablePrimary.subQueryAlias) { - identifiers.push({ name: tablePrimary.subQueryAlias + '.', type: 'sub-query' }); - tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); - } - }); - if (identifiers.length > 0) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = identifiers; - } else { - parser.yy.result.suggestIdentifiers = identifiers.concat( - parser.yy.result.suggestIdentifiers - ); - } - } - parser.yy.result.suggestColumns.tables = tables; - if ( - parser.yy.result.suggestColumns.identifierChain && - parser.yy.result.suggestColumns.identifierChain.length === 0 - ) { - delete parser.yy.result.suggestColumns.identifierChain; - } - parser.yy.result.suggestColumns.linked = true; - }; - - const linkTablePrimaries = function() { - if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { - return; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if ( - typeof parser.yy.result[suggestionType] !== 'undefined' && - parser.yy.result[suggestionType].tablePrimaries && - !parser.yy.result[suggestionType].linked - ) { - parser.yy.result[suggestionType].tables = []; - parser.yy.result[suggestionType].tablePrimaries.forEach(tablePrimary => { - if (!tablePrimary.subQueryAlias) { - parser.yy.result[suggestionType].tables.push( - tablePrimary.alias - ? { - identifierChain: tablePrimary.identifierChain.concat(), - alias: tablePrimary.alias - } - : { identifierChain: tablePrimary.identifierChain.concat() } - ); - } - }); - delete parser.yy.result[suggestionType].tablePrimaries; - parser.yy.result[suggestionType].linked = true; - } - }); - - if ( - typeof parser.yy.result.suggestColumns !== 'undefined' && - !parser.yy.result.suggestColumns.linked - ) { - const tablePrimaries = filterTablePrimariesForOwner( - parser.yy.latestTablePrimaries, - parser.yy.result.suggestColumns.owner - ); - if (!parser.yy.result.suggestColumns.tables) { - parser.yy.result.suggestColumns.tables = []; - } - if (parser.yy.subQueries.length > 0) { - parser.yy.result.subQueries = parser.yy.subQueries; - } - if ( - typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || - parser.yy.result.suggestColumns.identifierChain.length === 0 - ) { - if (tablePrimaries.length > 1) { - convertTablePrimariesToSuggestions(tablePrimaries); - } else { - suggestLateralViewAliasesAsIdentifiers(); - if ( - tablePrimaries.length === 1 && - (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias) - ) { - convertTablePrimariesToSuggestions(tablePrimaries); - } - parser.expandIdentifierChain({ - wrapper: parser.yy.result.suggestColumns, - anyOwner: false, - isColumnWrapper: true - }); - } - } else if (!parser.yy.result.suggestColumns.linked) { - // Expand exploded views in the identifier chain - const originalLength = parser.yy.result.suggestColumns.identifierChain.length; - parser.yy.result.suggestColumns.identifierChain = parser.expandLateralViews( - parser.yy.lateralViews, - parser.yy.result.suggestColumns.identifierChain, - true - ); - // Drop '*' keyword for lateral views - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - if ( - parser.yy.result.suggestColumns.identifierChain.length > originalLength && - typeof parser.yy.result.suggestKeywords !== 'undefined' && - parser.yy.result.suggestKeywords.length === 1 && - parser.yy.result.suggestKeywords[0].value === '*' - ) { - delete parser.yy.result.suggestKeywords; - } - parser.expandIdentifierChain({ - wrapper: parser.yy.result.suggestColumns, - anyOwner: false, - isColumnWrapper: true - }); - } - } else { - parser.expandIdentifierChain({ - wrapper: parser.yy.result.suggestColumns, - anyOwner: false, - isColumnWrapper: true - }); - } - } - - if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); - - const primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); - if ( - primaries.length === 0 || - (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1) - ) { - parser.yy.result.colRef.identifierChain = []; - } - } - if ( - typeof parser.yy.result.suggestKeyValues !== 'undefined' && - !parser.yy.result.suggestKeyValues.linked - ) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); - } - }; - - parser.getSubQuery = function(cols) { - const columns = []; - cols.selectList.forEach(col => { - const result = {}; - if (col.alias) { - result.alias = col.alias; - } - if (col.valueExpression && col.valueExpression.columnReference) { - result.identifierChain = col.valueExpression.columnReference; - } else if (col.asterisk) { - result.identifierChain = [{ asterisk: true }]; - } - if ( - col.valueExpression && - col.valueExpression.types && - col.valueExpression.types.length === 1 - ) { - result.type = col.valueExpression.types[0]; - } - - columns.push(result); - }); - - return { - columns: columns - }; - }; - - parser.addTablePrimary = function(ref) { - if (typeof parser.yy.latestTablePrimaries === 'undefined') { - parser.yy.latestTablePrimaries = []; - } - parser.yy.latestTablePrimaries.push(ref); - }; - - parser.suggestFileFormats = function() { - parser.suggestKeywords([ - 'AVRO', - 'INPUTFORMAT', - 'JSONFILE', - 'ORC', - 'PARQUET', - 'RCFILE', - 'SEQUENCEFILE', - 'TEXTFILE' - ]); - }; - - parser.suggestKeywordsForOptionalsLR = function(optionals, keywords, override) { - const result = parser.getKeywordsForOptionalsLR(optionals, keywords, override); - if (result.length) { - parser.suggestKeywords(result); - } - }; - - parser.getKeywordsForOptionalsLR = function(optionals, keywords, override) { - let result = []; - - for (let i = 0; i < optionals.length; i++) { - if (!optionals[i] && (typeof override === 'undefined' || override[i])) { - if (keywords[i] instanceof Array) { - result = result.concat(keywords[i]); - } else { - result.push(keywords[i]); - } - } else if (optionals[i]) { - break; - } - } - return result; - }; - - parser.suggestDdlAndDmlKeywords = function(extraKeywords) { - let keywords = [ - 'ALTER', - 'CREATE', - 'DESCRIBE', - 'DROP', - 'GRANT', - 'INSERT', - 'REVOKE', - 'SELECT', - 'SET', - 'SHOW', - 'TRUNCATE', - 'UPDATE', - 'USE', - 'WITH' - ]; - - if (extraKeywords) { - keywords = keywords.concat(extraKeywords); - } - - keywords = keywords.concat([ - 'ABORT', - 'ANALYZE TABLE', - 'DELETE', - 'EXPORT', - 'IMPORT', - 'LOAD', - 'MERGE', - 'MSCK', - 'RELOAD FUNCTION', - 'RESET' - ]); - - parser.suggestKeywords(keywords); - }; - - parser.checkForSelectListKeywords = function(selectList) { - if (selectList.length === 0) { - return; - } - const last = selectList[selectList.length - 1]; - if (!last || !last.valueExpression) { - return; - } - const valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); - let keywords = []; - if (last.suggestKeywords) { - keywords = keywords.concat(last.suggestKeywords); - } - if (valueExpressionKeywords.suggestKeywords) { - keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); - } - if (valueExpressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); - parser.addColRefIfExists(last.valueExpression); - } - if (!last.alias) { - keywords.push('AS'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - }; - - parser.checkForKeywords = function(expression) { - if (expression) { - if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { - parser.suggestKeywords(expression.suggestKeywords); - } - if (expression.suggestColRefKeywords) { - parser.suggestColRefKeywords(expression.suggestColRefKeywords); - parser.addColRefIfExists(expression); - } - } - }; - - parser.createWeightedKeywords = function(keywords, weight) { - const result = []; - keywords.forEach(keyword => { - if (typeof keyword.weight !== 'undefined') { - keyword.weight = weight + keyword.weight / 10; - result.push(keyword); - } else { - result.push({ value: keyword, weight: weight }); - } - }); - return result; - }; - - parser.suggestKeywords = function(keywords) { - const weightedKeywords = []; - if (keywords.length === 0) { - return; - } - keywords.forEach(keyword => { - if (typeof keyword.weight !== 'undefined') { - weightedKeywords.push(keyword); - } else { - weightedKeywords.push({ value: keyword, weight: -1 }); - } - }); - weightedKeywords.sort((a, b) => { - if (a.weight !== b.weight) { - return b.weight - a.weight; - } - return a.value.localeCompare(b.value); - }); - parser.yy.result.suggestKeywords = weightedKeywords; - }; - - parser.suggestColRefKeywords = function(colRefKeywords) { - parser.yy.result.suggestColRefKeywords = colRefKeywords; - }; - - parser.suggestTablesOrColumns = function(identifier) { - if (typeof parser.yy.latestTablePrimaries == 'undefined') { - parser.suggestTables({ identifierChain: [{ name: identifier }] }); - return; - } - const tableRef = parser.yy.latestTablePrimaries.filter(tablePrimary => { - return equalIgnoreCase(tablePrimary.alias, identifier); - }); - if (tableRef.length > 0) { - parser.suggestColumns({ identifierChain: [{ name: identifier }] }); - } else { - parser.suggestTables({ identifierChain: [{ name: identifier }] }); - } - }; - - parser.suggestFunctions = function(details) { - parser.yy.result.suggestFunctions = details || {}; - }; - - parser.suggestAggregateFunctions = function() { - const primaries = []; - const aliases = {}; - parser.yy.latestTablePrimaries.forEach(primary => { - if (typeof primary.alias !== 'undefined') { - aliases[primary.alias] = true; - } - // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) - if ( - typeof primary.identifierChain !== 'undefined' && - !aliases[primary.identifierChain[0].name] && - typeof primary.owner === 'undefined' - ) { - primaries.push(primary); - } - }); - parser.yy.result.suggestAggregateFunctions = { tablePrimaries: primaries }; - }; - - parser.suggestAnalyticFunctions = function() { - parser.yy.result.suggestAnalyticFunctions = true; - }; - - parser.suggestSetOptions = function() { - parser.yy.result.suggestSetOptions = true; - }; - - parser.suggestIdentifiers = function(identifiers) { - parser.yy.result.suggestIdentifiers = identifiers; - }; - - parser.suggestColumns = function(details) { - if (typeof details === 'undefined') { - details = { identifierChain: [] }; - } else if (typeof details.identifierChain === 'undefined') { - details.identifierChain = []; - } - parser.yy.result.suggestColumns = details; - }; - - parser.suggestGroupBys = function(details) { - parser.yy.result.suggestGroupBys = details || {}; - }; - - parser.suggestOrderBys = function(details) { - parser.yy.result.suggestOrderBys = details || {}; - }; - - parser.suggestFilters = function(details) { - parser.yy.result.suggestFilters = details || {}; - }; - - parser.suggestKeyValues = function(details) { - parser.yy.result.suggestKeyValues = details || {}; - }; - - parser.suggestTables = function(details) { - parser.yy.result.suggestTables = details || {}; - }; - - const adjustLocationForCursor = function(location) { - // columns are 0-based and lines not, so add 1 to cols - const newLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - if (parser.yy.cursorFound) { - if ( - parser.yy.cursorFound.first_line === newLocation.first_line && - parser.yy.cursorFound.last_column <= newLocation.first_column - ) { - let additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. - newLocation.first_column = newLocation.first_column + additionalSpace; - newLocation.last_column = newLocation.last_column + additionalSpace; - } - } - return newLocation; - }; - - parser.addFunctionLocation = function(location, functionName) { - // Remove trailing '(' from location - const adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column, - last_column: location.last_column - 1 - }; - parser.yy.locations.push({ - type: 'function', - location: adjustLocationForCursor(adjustedLocation), - function: functionName.toLowerCase() - }); - }; - - parser.addStatementLocation = function(location) { - // Don't report lonely cursor as a statement - if ( - location.first_line === location.last_line && - Math.abs(location.last_column - location.first_column) === 1 - ) { - return; - } - let adjustedLocation; - if ( - parser.yy.cursorFound && - parser.yy.cursorFound.last_line === location.last_line && - parser.yy.cursorFound.first_column >= location.first_column && - parser.yy.cursorFound.last_column <= location.last_column - ) { - const additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) - }; - } else { - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - } - - parser.yy.locations.push({ - type: 'statement', - location: adjustedLocation - }); - }; - - parser.firstDefined = function() { - for (let i = 0; i + 1 < arguments.length; i += 2) { - if (arguments[i]) { - return arguments[i + 1]; - } - } - }; - - parser.addClauseLocation = function(type, precedingLocation, locationIfPresent, isCursor) { - let location; - if (isCursor) { - if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { - location = { - type: type, - missing: true, - location: adjustLocationForCursor({ - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - }; - } else { - location = { - type: type, - missing: false, - location: { - first_line: locationIfPresent.last_line, - first_column: locationIfPresent.last_column - 1, - last_line: locationIfPresent.last_line, - last_column: - locationIfPresent.last_column - - 1 + - parser.yy.partialLengths.right + - parser.yy.partialLengths.left - } - }; - } - } else { - location = { - type: type, - missing: !locationIfPresent, - location: adjustLocationForCursor( - locationIfPresent || { - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - } - ) - }; - } - if (parser.isInSubquery()) { - location.subquery = true; - } - parser.yy.locations.push(location); - }; - - parser.addStatementTypeLocation = function(identifier, location, additionalText) { - // Don't add if already there except for SELECT - if (identifier !== 'SELECT' && parser.yy.allLocations) { - for (let i = parser.yy.allLocations.length - 1; i >= 0; i--) { - if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statement') { - break; - } - if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statementType') { - return; - } - } - } - const loc = { - type: 'statementType', - location: adjustLocationForCursor(location), - identifier: identifier - }; - if (typeof additionalText !== 'undefined') { - switch (identifier) { - case 'ALTER': - if (/ALTER\s+VIEW/i.test(additionalText)) { - loc.identifier = 'ALTER VIEW'; - } else { - loc.identifier = 'ALTER TABLE'; - } - break; - case 'COMPUTE': - loc.identifier = 'COMPUTE STATS'; - break; - case 'CREATE': - if (/CREATE\s+VIEW/i.test(additionalText)) { - loc.identifier = 'CREATE VIEW'; - } else if (/CREATE\s+TABLE/i.test(additionalText)) { - loc.identifier = 'CREATE TABLE'; - } else if (/CREATE\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'CREATE DATABASE'; - } else if (/CREATE\s+ROLE/i.test(additionalText)) { - loc.identifier = 'CREATE ROLE'; - } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'CREATE FUNCTION'; - } else { - loc.identifier = 'CREATE TABLE'; - } - break; - case 'DROP': - if (/DROP\s+VIEW/i.test(additionalText)) { - loc.identifier = 'DROP VIEW'; - } else if (/DROP\s+TABLE/i.test(additionalText)) { - loc.identifier = 'DROP TABLE'; - } else if (/DROP\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'DROP DATABASE'; - } else if (/DROP\s+ROLE/i.test(additionalText)) { - loc.identifier = 'DROP ROLE'; - } else if (/DROP\s+STATS/i.test(additionalText)) { - loc.identifier = 'DROP STATS'; - } else if (/DROP\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'DROP FUNCTION'; - } else { - loc.identifier = 'DROP TABLE'; - } - break; - case 'INVALIDATE': - loc.identifier = 'INVALIDATE METADATA'; - break; - case 'LOAD': - loc.identifier = 'LOAD DATA'; - break; - case 'TRUNCATE': - loc.identifier = 'TRUNCATE TABLE'; - break; - default: - } - } - parser.yy.locations.push(loc); - }; - - parser.addFileLocation = function(location, path) { - parser.yy.locations.push({ - type: 'file', - location: adjustLocationForCursor(location), - path: path - }); - }; - - parser.addDatabaseLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addTableLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addColumnAliasLocation = function(location, alias, parentLocation) { - const aliasLocation = { - type: 'alias', - source: 'column', - alias: alias, - location: adjustLocationForCursor(location), - parentLocation: adjustLocationForCursor(parentLocation) - }; - if ( - parser.yy.locations.length && - parser.yy.locations[parser.yy.locations.length - 1].type === 'column' - ) { - const closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; - if ( - closestColumn.location.first_line === aliasLocation.parentLocation.first_line && - closestColumn.location.last_line === aliasLocation.parentLocation.last_line && - closestColumn.location.first_column === aliasLocation.parentLocation.first_column && - closestColumn.location.last_column === aliasLocation.parentLocation.last_column - ) { - parser.yy.locations[parser.yy.locations.length - 1].alias = alias; - } - } - parser.yy.locations.push(aliasLocation); - }; - - parser.addTableAliasLocation = function(location, alias, identifierChain) { - parser.yy.locations.push({ - type: 'alias', - source: 'table', - alias: alias, - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addSubqueryAliasLocation = function(location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'subquery', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addAsteriskLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'asterisk', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addVariableLocation = function(location, value) { - if (/\${[^}]*}/.test(value)) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: value - }); - } - }; - - parser.addColumnLocation = function(location, identifierChain) { - const isVariable = - identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); - if (isVariable) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }); - } else { - parser.yy.locations.push({ - type: 'column', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }); - } - }; - - parser.addCteAliasLocation = function(location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'cte', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addUnknownLocation = function(location, identifierChain) { - const isVariable = - identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); - let loc; - if (isVariable) { - loc = { - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }; - } else { - loc = { - type: 'unknown', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }; - } - parser.yy.locations.push(loc); - return loc; - }; - - parser.addNewDatabaseLocation = function(location, identifierChain) { - parser.yy.definitions.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addNewTableLocation = function(location, identifierChain, colSpec) { - const columns = []; - if (colSpec) { - colSpec.forEach(col => { - columns.push({ - identifierChain: [col.identifier], // TODO: Complex - type: col.type, - location: adjustLocationForCursor(col.location) - }); - }); - } - parser.yy.definitions.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - columns: columns - }); - }; - - parser.addColRefToVariableIfExists = function(left, right) { - if ( - left && - left.columnReference && - left.columnReference.length && - right && - right.columnReference && - right.columnReference.length && - parser.yy.locations.length > 1 - ) { - const addColRefToVariableLocation = function(variableValue, colRef) { - // See if colref is actually an alias - if (colRef.length === 1 && colRef[0].name) { - parser.yy.locations.some(location => { - if (location.type === 'column' && location.alias === colRef[0].name) { - colRef = location.identifierChain; - return true; - } - }); - } - - for (let i = parser.yy.locations.length - 1; i > 0; i--) { - const location = parser.yy.locations[i]; - if (location.type === 'variable' && location.value === variableValue) { - location.colRef = { identifierChain: colRef }; - break; - } - } - }; - - if (/\${[^}]*}/.test(left.columnReference[0].name)) { - // left is variable - addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); - } else if (/\${[^}]*}/.test(right.columnReference[0].name)) { - // right is variable - addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); - } - } - }; - - parser.suggestDatabases = function(details) { - parser.yy.result.suggestDatabases = details || {}; - }; - - parser.suggestHdfs = function(details) { - parser.yy.result.suggestHdfs = details || {}; - }; - - parser.suggestValues = function(details) { - parser.yy.result.suggestValues = details || {}; - }; - - parser.determineCase = function(text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - const cursorIndex = parser.yy.partialCursor - ? yytext.indexOf('\u2021') - : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - const remainder = yytext.substring(cursorIndex + 1); - const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) - .length; - if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - let lexerModified = false; - - /** - * Main parser function - */ - parser.parseSql = function(beforeCursor, afterCursor, debug) { - // Jison counts CRLF as two lines in the locations - beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); - afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); - parser.yy.result = { locations: [] }; - parser.yy.lowerCase = false; - parser.yy.locations = []; - parser.yy.definitions = []; - parser.yy.allLocations = []; - parser.yy.subQueries = []; - parser.yy.errors = []; - parser.yy.selectListAliases = []; - - parser.yy.locationsStack = []; - parser.yy.primariesStack = []; - parser.yy.lateralViewsStack = []; - parser.yy.subQueriesStack = []; - parser.yy.resultStack = []; - parser.yy.selectListAliasesStack = []; - parser.yy.activeDialect = 'hive'; - - delete parser.yy.caseDetermined; - delete parser.yy.cursorFound; - delete parser.yy.partialCursor; - - // Fix for parser bug when switching lexer states - if (!lexerModified) { - const originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function(input, yy) { - return originalSetInput.bind(parser.lexer)(input, yy); - }; - lexerModified = true; - } - - parser.prepareNewStatement(); - - const REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after - - if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if (beforeCursor.length - beforeCursor.lastIndexOf(';') > REASONABLE_SURROUNDING_LENGTH) { - // Bail out if the last complete statement is more than 150000 chars before - return {}; - } - // Cut it at the first statement found within 150000 chars before - const lastReasonableChunk = beforeCursor.substring( - beforeCursor.length - REASONABLE_SURROUNDING_LENGTH - ); - beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); - } - - if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if (afterCursor.length - afterCursor.indexOf(';') > REASONABLE_SURROUNDING_LENGTH) { - // No need to bail out for what's comes after, we can still get keyword completion - afterCursor = ''; - } else { - // Cut it at the last statement found within 150000 chars after - const firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); - afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); - } - } - - parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); - - if (parser.yy.partialLengths.left > 0) { - beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); - } - - if (parser.yy.partialLengths.right > 0) { - afterCursor = afterCursor.substring(parser.yy.partialLengths.right); - } - - let result; - try { - // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer - result = parser.parse( - beforeCursor + - (beforeCursor.length === 0 || /[\s(]$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + - afterCursor - ); - } catch (err) { - // On any error try to at least return any existing result - if (typeof parser.yy.result === 'undefined') { - throw err; - } - if (debug) { - console.warn(err); - console.warn(err.stack); - } - result = parser.yy.result; - } - if (parser.yy.errors.length > 0) { - parser.yy.result.errors = parser.yy.errors; - if (debug) { - console.warn(parser.yy.errors); - } - } - try { - linkTablePrimaries(); - parser.commitLocations(); - // Clean up and prioritize - prioritizeSuggestions(); - } catch (err) { - if (debug) { - console.warn(err); - console.warn(err.stack); - } - } - - parser.yy.allLocations.sort((a, b) => { - if (a.location.first_line !== b.location.first_line) { - return a.location.first_line - b.location.first_line; - } - if (a.location.first_column !== b.location.first_column) { - return a.location.first_column - b.location.first_column; - } - if (a.location.last_column !== b.location.last_column) { - return b.location.last_column - a.location.last_column; - } - return b.type.localeCompare(a.type); - }); - parser.yy.result.locations = parser.yy.allLocations; - parser.yy.result.definitions = parser.yy.definitions; - - parser.yy.result.locations.forEach(location => { - delete location.linked; - }); - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - delete parser.yy.result.suggestColumns.linked; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if (typeof parser.yy.result[suggestionType] !== 'undefined') { - delete parser.yy.result[suggestionType].linked; - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - delete parser.yy.result.colRef.linked; - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { - delete parser.yy.result.suggestKeyValues.linked; - } - - if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { - // Remove the cursor from expected tokens - result.error.expected = result.error.expected.filter(token => token.indexOf('CURSOR') === -1); - } - - if (typeof result.error !== 'undefined' && result.error.recoverable) { - delete result.error; - } - - // Adjust all the statement locations to include white space surrounding them - let lastStatementLocation = null; - result.locations.forEach(location => { - if (location.type === 'statement') { - if (lastStatementLocation === null) { - location.location.first_line = 1; - location.location.first_column = 1; - } else { - location.location.first_line = lastStatementLocation.location.last_line; - location.location.first_column = lastStatementLocation.location.last_column + 1; - } - lastStatementLocation = location; - } - }); - - return result; - }; -}; - -const SYNTAX_PARSER_NOOP_FUNCTIONS = [ - 'addAsteriskLocation', - 'addClauseLocation', - 'addColRefIfExists', - 'addColRefToVariableIfExists', - 'addColumnAliasLocation', - 'addColumnLocation', - 'addCommonTableExpressions', - 'addCteAliasLocation', - 'addDatabaseLocation', - 'addFileLocation', - 'addFunctionLocation', - 'addNewDatabaseLocation', - 'addNewTableLocation', - 'addStatementLocation', - 'addStatementTypeLocation', - 'addSubqueryAliasLocation', - 'addTableAliasLocation', - 'addTableLocation', - 'addTablePrimary', - 'addUnknownLocation', - 'addVariableLocation', - 'applyArgumentTypesToSuggestions', - 'applyTypeToSuggestions', - 'checkForKeywords', - 'checkForSelectListKeywords', - 'commitLocations', - 'firstDefined', - 'getSelectListKeywords', - 'getSubQuery', - 'getValueExpressionKeywords', - 'identifyPartials', - 'popQueryState', - 'prepareNewStatement', - 'pushQueryState', - 'selectListNoTableSuggest', - 'suggestAggregateFunctions', - 'suggestAnalyticFunctions', - 'suggestColRefKeywords', - 'suggestColumns', - 'suggestDatabases', - 'suggestDdlAndDmlKeywords', - 'suggestFileFormats', - 'suggestFilters', - 'suggestFunctions', - 'suggestGroupBys', - 'suggestHdfs', - 'suggestIdentifiers', - 'suggestJoinConditions', - 'suggestJoins', - 'suggestKeyValues', - 'suggestKeywords', - 'suggestOrderBys', - 'suggestSelectListAliases', - 'suggestTables', - 'suggestTablesOrColumns', - 'suggestValueExpressionKeywords', - 'suggestValues', - 'valueExpressionSuggest' -]; - -const SYNTAX_PARSER_NOOP = function() {}; - -const initSyntaxParser = function(parser) { - // Noop functions for compatibility with the autocomplete parser as the grammar is shared - SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(noopFn => { - parser[noopFn] = SYNTAX_PARSER_NOOP; - }); - - parser.yy.locations = [{}]; - - parser.determineCase = function(text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.getKeywordsForOptionalsLR = function() { - return []; - }; - - parser.mergeSuggestKeywords = function() { - return {}; - }; - - parser.getTypeKeywords = function() { - return []; - }; - - parser.getColumnDataTypeKeywords = function() { - return []; - }; - - parser.findCaseType = function() { - return { types: ['T'] }; - }; - - parser.findReturnTypes = function() { - return ['T']; - }; - - parser.expandIdentifierChain = function() { - return []; - }; - - parser.expandLateralViews = function() { - return []; - }; - - parser.createWeightedKeywords = function() { - return []; - }; - - parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - const cursorIndex = parser.yy.partialCursor - ? yytext.indexOf('\u2021') - : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - const remainder = yytext.substring(cursorIndex + 1); - const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) - .length; - if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - let lexerModified = false; - - parser.yy.parseError = function(str, hash) { - parser.yy.error = hash; - }; - - const IGNORED_EXPECTED = { - ';': true, - '.': true, - EOF: true, - UNSIGNED_INTEGER: true, - UNSIGNED_INTEGER_E: true, - REGULAR_IDENTIFIER: true, - CURSOR: true, - PARTIAL_CURSOR: true, - HDFS_START_QUOTE: true, - HDFS_PATH: true, - HDFS_END_QUOTE: true, - COMPARISON_OPERATOR: true, // TODO: Expand in results when found - ARITHMETIC_OPERATOR: true, // TODO: Expand in results when found - VARIABLE_REFERENCE: true, - BACKTICK: true, - VALUE: true, - PARTIAL_VALUE: true, - SINGLE_QUOTE: true, - DOUBLE_QUOTE: true - }; - - const CLEAN_EXPECTED = { - BETWEEN_AND: 'AND', - OVERWRITE_DIRECTORY: 'OVERWRITE', - STORED_AS_DIRECTORIES: 'STORED', - LIKE_PARQUET: 'LIKE', - PARTITION_VALUE: 'PARTITION' - }; - - parser.parseSyntax = function(beforeCursor, afterCursor, debug) { - parser.yy.caseDetermined = false; - parser.yy.error = undefined; - - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - parser.yy.activeDialect = 'hive'; - - // Fix for parser bug when switching lexer states - if (!lexerModified) { - const originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function(input, yy) { - return originalSetInput.bind(parser.lexer)(input, yy); - }; - lexerModified = true; - } - - // TODO: Find a way around throwing an exception when the parser finds a syntax error - try { - parser.yy.error = false; - parser.parse(beforeCursor + afterCursor); - } catch (err) { - if (debug) { - console.warn(err); - console.warn(err.stack); - console.warn(parser.yy.error); - } - } - - if ( - parser.yy.error && - (parser.yy.error.loc.last_column < beforeCursor.length || - !beforeCursor.endsWith(parser.yy.error.text)) - ) { - const weightedExpected = []; - - const addedExpected = {}; - - const isLowerCase = - (parser.yy.caseDetermined && parser.yy.lowerCase) || - parser.yy.error.text.toLowerCase() === parser.yy.error.text; - - if ( - parser.yy.error.expected.length === 2 && - parser.yy.error.expected.indexOf("';'") !== -1 && - parser.yy.error.expected.indexOf("'EOF'") !== -1 - ) { - parser.yy.error.expected = []; - parser.yy.error.expectedStatementEnd = true; - return parser.yy.error; - } - for (let i = 0; i < parser.yy.error.expected.length; i++) { - let expected = parser.yy.error.expected[i]; - // Strip away the surrounding ' chars - expected = expected.substring(1, expected.length - 1); - // TODO: Only suggest alphanumeric? - if (expected === 'REGULAR_IDENTIFIER') { - parser.yy.error.expectedIdentifier = true; - if (/^<[a-z]+>/.test(parser.yy.error.token)) { - const text = '`' + parser.yy.error.text + '`'; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - parser.yy.error.possibleReserved = true; - } - } else if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { - if (/^<[a-z]+>/.test(expected)) { - continue; - } - expected = CLEAN_EXPECTED[expected] || expected; - if (expected === parser.yy.error.text.toUpperCase()) { - // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' - return false; - } - const text = isLowerCase ? expected.toLowerCase() : expected; - if (text && !addedExpected[text]) { - addedExpected[text] = true; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - } - } - } - if (weightedExpected.length === 0) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - weightedExpected.sort((a, b) => { - if (a.distance === b.distance) { - return a.text.localeCompare(b.text); - } - return a.distance - b.distance; - }); - parser.yy.error.expected = weightedExpected; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } else if (parser.yy.error) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - return false; - }; -}; - -const initGlobalSearchParser = function(parser) { - parser.identifyPartials = function(beforeCursor, afterCursor) { - const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return { - left: beforeMatch ? beforeMatch[0].length : 0, - right: afterMatch ? afterMatch[0].length : 0 - }; - }; - - parser.mergeFacets = function(a, b) { - if (!a.facets) { - a.facets = {}; - } - if (!b.facets) { - return; - } - Object.keys(b.facets).forEach(key => { - if (a.facets[key]) { - Object.keys(b.facets[key]).forEach(val => { - a.facets[key][val.toLowerCase()] = true; - }); - } else { - a.facets[key] = b.facets[key]; - } - }); - }; - - parser.mergeText = function(a, b) { - if (!a.text) { - a.text = []; - } - if (!b.text) { - return; - } - a.text = a.text.concat(b.text); - }; - - parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - const cursorIndex = yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - const remainder = yytext.substring(cursorIndex + 1); - const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) - .length; - if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - parser.parseGlobalSearch = function(beforeCursor, afterCursor, debug) { - delete parser.yy.cursorFound; - - let result; - try { - result = parser.parse(beforeCursor + '\u2020' + afterCursor); - } catch (err) { - if (debug) { - console.warn(err); - console.warn(err.stack); - console.warn(parser.yy.error); - } - return { - facets: {}, - text: [] - }; - } - return result; - }; -}; - -export default { - initSqlParser: initSqlParser, - initSyntaxParser: initSyntaxParser, - initGlobalSearchParser: initGlobalSearchParser -}; diff --git a/src/core/parse/impala/impalaAutocompleteParser.js b/src/core/parse/impala/impalaAutocompleteParser.js deleted file mode 100644 index 4f6dffb..0000000 --- a/src/core/parse/impala/impalaAutocompleteParser.js +++ /dev/null @@ -1,5382 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -import SqlParseSupport from './sqlParseSupport'; - -var impalaAutocompleteParser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,26,27,38,41,50,51,54,63,65,66,70,71,85,86,89,91,95,101,103,106,107,129,136,138,142,143,144,146,147,149,151,153,155,158,170,179,180,208,224,236,237,238,241,242,253,254,256,257,265,269,276,278,288,289,290,292,293,294,295,296,301,302,304,305,307,316,322,342,343,344,345,348,349,350,351,352,353,354,360,362,391,392,393,395,405,409,412,426,428,429,430,431,432,433,434,435,436,453,454,462,463,464,466,467,484,485,489,490,495,496,497,500,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,797,840,1006,1021,1035],$V1=[2,924],$V2=[405,500],$V3=[2,713],$V4=[1,5],$V5=[1,315],$V6=[1,423],$V7=[1,485],$V8=[1,248],$V9=[1,269],$Va=[1,250],$Vb=[1,18],$Vc=[1,497],$Vd=[1,68],$Ve=[1,329],$Vf=[1,273],$Vg=[1,252],$Vh=[1,50],$Vi=[1,513],$Vj=[1,10],$Vk=[1,11],$Vl=[1,13],$Vm=[1,349],$Vn=[1,312],$Vo=[1,299],$Vp=[1,142],$Vq=[1,346],$Vr=[1,35],$Vs=[1,15],$Vt=[1,237],$Vu=[1,95],$Vv=[1,181],$Vw=[1,230],$Vx=[1,447],$Vy=[1,149],$Vz=[1,41],$VA=[1,448],$VB=[1,449],$VC=[1,166],$VD=[1,490],$VE=[1,318],$VF=[1,111],$VG=[1,199],$VH=[1,228],$VI=[1,32],$VJ=[1,17],$VK=[1,19],$VL=[1,207],$VM=[1,336],$VN=[1,265],$VO=[1,192],$VP=[1,251],$VQ=[1,54],$VR=[1,158],$VS=[1,322],$VT=[1,375],$VU=[1,70],$VV=[1,333],$VW=[1,43],$VX=[1,193],$VY=[1,249],$VZ=[1,270],$V_=[1,311],$V$=[1,351],$V01=[1,104],$V11=[1,133],$V21=[1,350],$V31=[1,122],$V41=[1,202],$V51=[1,425],$V61=[1,148],$V71=[1,22],$V81=[1,16],$V91=[1,292],$Va1=[1,342],$Vb1=[1,168],$Vc1=[1,370],$Vd1=[1,214],$Ve1=[1,264],$Vf1=[1,65],$Vg1=[1,313],$Vh1=[1,136],$Vi1=[1,175],$Vj1=[1,295],$Vk1=[1,368],$Vl1=[1,268],$Vm1=[1,516],$Vn1=[1,103],$Vo1=[1,146],$Vp1=[1,404],$Vq1=[1,480],$Vr1=[1,23],$Vs1=[1,147],$Vt1=[1,198],$Vu1=[1,293],$Vv1=[1,27],$Vw1=[1,82],$Vx1=[1,170],$Vy1=[1,244],$Vz1=[1,309],$VA1=[1,182],$VB1=[1,153],$VC1=[1,154],$VD1=[1,314],$VE1=[1,371],$VF1=[1,529],$VG1=[1,240],$VH1=[1,462],$VI1=[1,528],$VJ1=[1,179],$VK1=[1,316],$VL1=[1,227],$VM1=[1,478],$VN1=[1,94],$VO1=[1,172],$VP1=[1,287],$VQ1=[1,380],$VR1=[1,422],$VS1=[1,9],$VT1=[1,12],$VU1=[1,14],$VV1=[1,20],$VW1=[1,21],$VX1=[1,24],$VY1=[1,25],$VZ1=[1,26],$V_1=[1,28],$V$1=[1,29],$V02=[1,30],$V12=[1,31],$V22=[1,33],$V32=[1,34],$V42=[1,36],$V52=[1,37],$V62=[1,38],$V72=[1,39],$V82=[1,40],$V92=[1,42],$Va2=[1,44],$Vb2=[1,45],$Vc2=[1,46],$Vd2=[1,47],$Ve2=[1,48],$Vf2=[1,49],$Vg2=[1,51],$Vh2=[1,52],$Vi2=[1,53],$Vj2=[1,55],$Vk2=[1,56],$Vl2=[1,57],$Vm2=[1,58],$Vn2=[1,59],$Vo2=[1,60],$Vp2=[1,61],$Vq2=[1,62],$Vr2=[1,63],$Vs2=[1,64],$Vt2=[1,66],$Vu2=[1,67],$Vv2=[1,69],$Vw2=[1,71],$Vx2=[1,72],$Vy2=[1,73],$Vz2=[1,74],$VA2=[1,75],$VB2=[1,76],$VC2=[1,77],$VD2=[1,78],$VE2=[1,79],$VF2=[1,80],$VG2=[1,81],$VH2=[1,83],$VI2=[1,84],$VJ2=[1,85],$VK2=[1,86],$VL2=[1,87],$VM2=[1,88],$VN2=[1,89],$VO2=[1,90],$VP2=[1,91],$VQ2=[1,92],$VR2=[1,93],$VS2=[1,96],$VT2=[1,97],$VU2=[1,98],$VV2=[1,99],$VW2=[1,100],$VX2=[1,101],$VY2=[1,102],$VZ2=[1,105],$V_2=[1,106],$V$2=[1,107],$V03=[1,108],$V13=[1,109],$V23=[1,110],$V33=[1,112],$V43=[1,113],$V53=[1,114],$V63=[1,115],$V73=[1,116],$V83=[1,117],$V93=[1,118],$Va3=[1,119],$Vb3=[1,120],$Vc3=[1,121],$Vd3=[1,123],$Ve3=[1,124],$Vf3=[1,125],$Vg3=[1,126],$Vh3=[1,127],$Vi3=[1,128],$Vj3=[1,129],$Vk3=[1,130],$Vl3=[1,131],$Vm3=[1,132],$Vn3=[1,134],$Vo3=[1,135],$Vp3=[1,137],$Vq3=[1,138],$Vr3=[1,139],$Vs3=[1,140],$Vt3=[1,141],$Vu3=[1,143],$Vv3=[1,144],$Vw3=[1,145],$Vx3=[1,150],$Vy3=[1,151],$Vz3=[1,152],$VA3=[1,155],$VB3=[1,156],$VC3=[1,157],$VD3=[1,159],$VE3=[1,160],$VF3=[1,161],$VG3=[1,162],$VH3=[1,163],$VI3=[1,164],$VJ3=[1,165],$VK3=[1,167],$VL3=[1,169],$VM3=[1,171],$VN3=[1,173],$VO3=[1,174],$VP3=[1,176],$VQ3=[1,177],$VR3=[1,178],$VS3=[1,180],$VT3=[1,183],$VU3=[1,184],$VV3=[1,185],$VW3=[1,186],$VX3=[1,187],$VY3=[1,188],$VZ3=[1,189],$V_3=[1,190],$V$3=[1,191],$V04=[1,194],$V14=[1,195],$V24=[1,196],$V34=[1,197],$V44=[1,200],$V54=[1,201],$V64=[1,203],$V74=[1,204],$V84=[1,205],$V94=[1,206],$Va4=[1,208],$Vb4=[1,209],$Vc4=[1,210],$Vd4=[1,211],$Ve4=[1,212],$Vf4=[1,213],$Vg4=[1,215],$Vh4=[1,216],$Vi4=[1,217],$Vj4=[1,218],$Vk4=[1,219],$Vl4=[1,220],$Vm4=[1,221],$Vn4=[1,222],$Vo4=[1,223],$Vp4=[1,224],$Vq4=[1,225],$Vr4=[1,226],$Vs4=[1,229],$Vt4=[1,231],$Vu4=[1,232],$Vv4=[1,233],$Vw4=[1,234],$Vx4=[1,235],$Vy4=[1,236],$Vz4=[1,238],$VA4=[1,239],$VB4=[1,241],$VC4=[1,242],$VD4=[1,243],$VE4=[1,245],$VF4=[1,246],$VG4=[1,247],$VH4=[1,253],$VI4=[1,254],$VJ4=[1,255],$VK4=[1,256],$VL4=[1,257],$VM4=[1,258],$VN4=[1,259],$VO4=[1,260],$VP4=[1,261],$VQ4=[1,262],$VR4=[1,263],$VS4=[1,266],$VT4=[1,267],$VU4=[1,271],$VV4=[1,272],$VW4=[1,274],$VX4=[1,275],$VY4=[1,276],$VZ4=[1,277],$V_4=[1,278],$V$4=[1,279],$V05=[1,280],$V15=[1,281],$V25=[1,282],$V35=[1,283],$V45=[1,284],$V55=[1,285],$V65=[1,286],$V75=[1,288],$V85=[1,289],$V95=[1,290],$Va5=[1,291],$Vb5=[1,294],$Vc5=[1,296],$Vd5=[1,297],$Ve5=[1,298],$Vf5=[1,300],$Vg5=[1,301],$Vh5=[1,302],$Vi5=[1,303],$Vj5=[1,304],$Vk5=[1,305],$Vl5=[1,306],$Vm5=[1,307],$Vn5=[1,308],$Vo5=[1,310],$Vp5=[1,317],$Vq5=[1,319],$Vr5=[1,320],$Vs5=[1,321],$Vt5=[1,323],$Vu5=[1,324],$Vv5=[1,325],$Vw5=[1,326],$Vx5=[1,327],$Vy5=[1,328],$Vz5=[1,330],$VA5=[1,331],$VB5=[1,332],$VC5=[1,334],$VD5=[1,335],$VE5=[1,337],$VF5=[1,338],$VG5=[1,339],$VH5=[1,340],$VI5=[1,341],$VJ5=[1,343],$VK5=[1,344],$VL5=[1,345],$VM5=[1,347],$VN5=[1,348],$VO5=[1,352],$VP5=[1,353],$VQ5=[1,354],$VR5=[1,355],$VS5=[1,356],$VT5=[1,357],$VU5=[1,358],$VV5=[1,359],$VW5=[1,360],$VX5=[1,361],$VY5=[1,362],$VZ5=[1,363],$V_5=[1,364],$V$5=[1,365],$V06=[1,366],$V16=[1,367],$V26=[1,369],$V36=[1,372],$V46=[1,373],$V56=[1,374],$V66=[1,376],$V76=[1,377],$V86=[1,378],$V96=[1,379],$Va6=[1,381],$Vb6=[1,382],$Vc6=[1,383],$Vd6=[1,384],$Ve6=[1,385],$Vf6=[1,386],$Vg6=[1,387],$Vh6=[1,388],$Vi6=[1,389],$Vj6=[1,390],$Vk6=[1,391],$Vl6=[1,392],$Vm6=[1,393],$Vn6=[1,424],$Vo6=[1,463],$Vp6=[1,498],$Vq6=[1,479],$Vr6=[1,476],$Vs6=[27,395],$Vt6=[2,706],$Vu6=[2,1041],$Vv6=[1,564],$Vw6=[1,561],$Vx6=[1,554],$Vy6=[1,566],$Vz6=[1,562],$VA6=[1,565],$VB6=[1,567],$VC6=[1,563],$VD6=[1,558],$VE6=[1,559],$VF6=[1,557],$VG6=[2,1091],$VH6=[1,570],$VI6=[1,573],$VJ6=[1,575],$VK6=[1,577],$VL6=[1,574],$VM6=[1,568],$VN6=[1,578],$VO6=[1,572],$VP6=[1,576],$VQ6=[2,1253],$VR6=[1,579],$VS6=[1,581],$VT6=[1,596],$VU6=[1,611],$VV6=[1,618],$VW6=[1,623],$VX6=[1,621],$VY6=[1,605],$VZ6=[1,606],$V_6=[1,607],$V$6=[1,622],$V07=[1,617],$V17=[1,624],$V27=[1,613],$V37=[1,616],$V47=[1,608],$V57=[1,628],$V67=[1,609],$V77=[1,627],$V87=[1,614],$V97=[1,610],$Va7=[1,625],$Vb7=[1,615],$Vc7=[1,612],$Vd7=[91,361,405,500],$Ve7=[2,1552],$Vf7=[1,635],$Vg7=[26,38,63,86,147,153,155,170,307,392,393,412,453,464,467,484,495,840,1006,1021,1035],$Vh7=[2,945],$Vi7=[2,1336],$Vj7=[1,642],$Vk7=[2,1549],$Vl7=[1,644],$Vm7=[2,91,405,500],$Vn7=[1,648],$Vo7=[1,651],$Vp7=[27,41,64,242,254,462,463,466,504,505,527],$Vq7=[2,1363],$Vr7=[1,665],$Vs7=[1,666],$Vt7=[2,1579],$Vu7=[1,683],$Vv7=[1,684],$Vw7=[1,689],$Vx7=[1,690],$Vy7=[2,238],$Vz7=[27,129],$VA7=[2,1361],$VB7=[1,694],$VC7=[1,697],$VD7=[1,702],$VE7=[2,1359],$VF7=[1,724],$VG7=[1,725],$VH7=[1,712],$VI7=[1,719],$VJ7=[1,723],$VK7=[1,741],$VL7=[1,740],$VM7=[1,759],$VN7=[1,762],$VO7=[1,760],$VP7=[2,896],$VQ7=[1,765],$VR7=[1,766],$VS7=[27,412],$VT7=[276,405,412,489,490,500],$VU7=[27,276,412,489,490],$VV7=[1,773],$VW7=[1,774],$VX7=[2,26,38,41,50,51,54,63,65,66,70,71,85,86,89,91,95,101,103,106,107,129,136,138,142,143,144,146,147,149,151,153,155,158,170,179,180,208,224,236,237,238,241,242,253,254,256,257,265,269,276,278,288,289,290,292,293,294,295,296,301,302,304,305,307,316,322,342,343,344,345,348,349,350,351,352,353,354,360,362,391,392,393,395,405,412,426,428,429,430,431,432,433,434,435,436,453,454,462,463,464,466,467,484,485,489,490,495,496,497,500,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,840,1006,1021,1035],$VY7=[2,27,91,95,361,395,405,454,500,620,650,683,772,790,878],$VZ7=[2,91,95,395,405,454,500,620,650,683,772,790,878],$V_7=[27,91,95,361,395,405,454,500,620,650,683,772,790,878],$V$7=[2,1873],$V08=[1,790],$V18=[1,791],$V28=[1,792],$V38=[1,785],$V48=[1,786],$V58=[1,787],$V68=[1,788],$V78=[1,789],$V88=[1,784],$V98=[1,801],$Va8=[1,802],$Vb8=[1,803],$Vc8=[1,796],$Vd8=[1,797],$Ve8=[1,798],$Vf8=[1,799],$Vg8=[1,800],$Vh8=[27,91,95,142,361,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,758,772,777,790,878],$Vi8=[2,1961],$Vj8=[1,807],$Vk8=[1,810],$Vl8=[1,811],$Vm8=[1,814],$Vn8=[1,819],$Vo8=[1,820],$Vp8=[2,91,95,142,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,758,772,777,790,878],$Vq8=[2,27,41,64,91,95,136,142,179,180,242,254,361,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,527,620,650,683,758,772,777,790,878],$Vr8=[2,41,64,91,95,136,142,179,180,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,527,620,650,683,758,772,777,790,878],$Vs8=[26,27,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,142,179,180,242,254,256,269,276,288,307,361,391,395,405,412,428,429,430,431,432,433,434,435,436,454,462,463,466,489,490,500,504,505,527,536,620,650,654,683,758,772,777,790,878],$Vt8=[2,1426],$Vu8=[307,412],$Vv8=[2,1939],$Vw8=[1,829],$Vx8=[2,26,38,41,44,51,56,63,64,73,86,89,91,95,101,106,109,111,136,142,179,180,242,254,256,269,276,288,307,391,395,405,412,428,429,430,431,432,433,434,435,436,454,462,463,466,489,490,500,504,505,527,536,620,650,654,683,758,772,777,790,878],$Vy8=[2,26,27,38,41,44,50,51,54,56,57,63,64,70,73,85,86,87,88,89,91,95,101,106,109,111,136,138,142,144,146,179,180,206,208,224,236,237,238,241,242,248,253,254,256,269,276,278,288,307,361,391,395,405,412,418,428,429,430,431,432,433,434,435,436,454,462,463,466,489,490,500,504,505,508,509,510,511,514,518,521,527,530,531,533,536,539,543,575,579,583,587,589,607,620,625,626,631,635,650,654,674,682,683,702,707,719,720,724,736,748,758,759,760,763,772,777,782,788,790,878],$Vz8=[1,831],$VA8=[1,832],$VB8=[27,142],$VC8=[2,1409],$VD8=[1,840],$VE8=[54,138],$VF8=[2,91,361,405,500],$VG8=[1,851],$VH8=[1,858],$VI8=[1,860],$VJ8=[41,64,242,254,462,463,466,504,505,527],$VK8=[2,1553],$VL8=[2,91,361,405,500,772],$VM8=[2,1567],$VN8=[2,89,91,405,412,464,484,500],$VO8=[2,27,89,91,95,405,412,464,484,500],$VP8=[27,405,500],$VQ8=[2,1382],$VR8=[1,934],$VS8=[2,209],$VT8=[26,27,405,500],$VU8=[26,405,500],$VV8=[26,27,41,51,64,242,254,405,462,463,466,500,504,505,527],$VW8=[2,1478],$VX8=[26,41,51,64,242,254,405,462,463,466,500,504,505,527],$VY8=[2,27,41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,424,462,463,466,504,505,507,508,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,797,963],$VZ8=[2,1565],$V_8=[1,966],$V$8=[2,27,41,64,73,89,91,95,138,146,179,180,224,236,241,242,254,362,392,412,424,462,463,466,504,505,507,508,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,747,753,770,775,776,779,780,783,784,785,795,797,963],$V09=[27,41,64,242,254,405,462,463,466,500,504,505,527,623],$V19=[2,1375],$V29=[1,979],$V39=[2,1372],$V49=[1,991],$V59=[1,1014],$V69=[1,1015],$V79=[1,1016],$V89=[1,1018],$V99=[27,208],$Va9=[1,1027],$Vb9=[1,1026],$Vc9=[1,1028],$Vd9=[27,179,208,405,500],$Ve9=[2,1379],$Vf9=[1,1038],$Vg9=[2,1360],$Vh9=[27,149],$Vi9=[27,50,51],$Vj9=[2,164],$Vk9=[2,100],$Vl9=[1,1045],$Vm9=[1,1049],$Vn9=[1,1051],$Vo9=[1,1052],$Vp9=[1,1054],$Vq9=[1,1055],$Vr9=[1,1059],$Vs9=[1,1058],$Vt9=[1,1065],$Vu9=[1,1066],$Vv9=[2,165],$Vw9=[1,1078],$Vx9=[1,1091],$Vy9=[1,1096],$Vz9=[1,1098],$VA9=[1,1100],$VB9=[1,1099],$VC9=[1,1102],$VD9=[50,51],$VE9=[1,1105],$VF9=[27,117],$VG9=[1,1111],$VH9=[1,1118],$VI9=[2,860],$VJ9=[1,1120],$VK9=[27,41,64,129,242,254,462,463,466,504,505,527],$VL9=[1,1127],$VM9=[1,1125],$VN9=[1,1126],$VO9=[1,1129],$VP9=[2,1877],$VQ9=[27,41,64,89,242,254,462,463,466,504,505,527],$VR9=[2,1884],$VS9=[1,1138],$VT9=[1,1137],$VU9=[2,27,41,64,89,91,242,254,405,428,429,430,431,432,433,434,435,436,462,463,466,489,500,504,505,527,535,772],$VV9=[1,1140],$VW9=[1,1142],$VX9=[1,1144],$VY9=[1,1146],$VZ9=[1,1148],$V_9=[1,1150],$V$9=[1,1153],$V0a=[1,1159],$V1a=[41,64,89,242,254,462,463,466,504,505,527],$V2a=[2,1931],$V3a=[1,1179],$V4a=[2,27,91,95,142,361,395,405,418,428,429,430,431,432,433,434,435,436,454,500,620,650,683,758,772,777,790,878],$V5a=[2,27,54,64,85,86,87,88,91,95,101,106,109,136,142,146,224,238,253,288,307,361,395,405,418,428,429,430,431,432,433,434,435,436,454,500,536,620,650,654,683,758,772,777,790,878],$V6a=[1,1183],$V7a=[1,1182],$V8a=[1,1185],$V9a=[1,1184],$Vaa=[2,27,91,95,142,361,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,777,790,878],$Vba=[1,1187],$Vca=[2,91,95,142,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,777,790,878],$Vda=[1,1198],$Vea=[1,1204],$Vfa=[1,1203],$Vga=[1,1231],$Vha=[1,1230],$Via=[1,1232],$Vja=[1,1233],$Vka=[1,1254],$Vla=[1,1247],$Vma=[1,1253],$Vna=[1,1249],$Voa=[1,1246],$Vpa=[1,1245],$Vqa=[1,1255],$Vra=[1,1250],$Vsa=[2,26,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,142,179,180,242,254,256,269,276,288,307,361,391,395,405,412,428,429,430,431,432,433,434,435,436,454,462,463,466,489,490,500,504,505,527,536,620,650,654,683,758,772,777,790,878],$Vta=[1,1265],$Vua=[2,91,95,361,395,405,454,500,620,650,683,772,790,878],$Vva=[2,91,95,142,361,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,758,772,777,790,878],$Vwa=[1,1276],$Vxa=[2,89,91,95,405,412,464,484,500],$Vya=[2,201],$Vza=[1,1341],$VAa=[1,1347],$VBa=[1,1363],$VCa=[1,1393],$VDa=[1,1375],$VEa=[1,1382],$VFa=[1,1370],$VGa=[1,1391],$VHa=[1,1392],$VIa=[1,1394],$VJa=[1,1364],$VKa=[1,1371],$VLa=[1,1366],$VMa=[1,1373],$VNa=[1,1413],$VOa=[1,1431],$VPa=[1,1432],$VQa=[1,1376],$VRa=[1,1414],$VSa=[1,1424],$VTa=[1,1374],$VUa=[1,1415],$VVa=[1,1430],$VWa=[1,1433],$VXa=[1,1390],$VYa=[1,1401],$VZa=[1,1437],$V_a=[1,1438],$V$a=[1,1439],$V0b=[1,1434],$V1b=[1,1435],$V2b=[1,1436],$V3b=[1,1425],$V4b=[1,1429],$V5b=[1,1395],$V6b=[1,1443],$V7b=[1,1444],$V8b=[1,1440],$V9b=[1,1441],$Vab=[1,1442],$Vbb=[1,1372],$Vcb=[1,1396],$Vdb=[26,38,44,51,56,63,73,111,405,500],$Veb=[2,241],$Vfb=[1,1470],$Vgb=[208,405,500],$Vhb=[1,1508],$Vib=[2,2229],$Vjb=[1,1514],$Vkb=[1,1534],$Vlb=[1,1535],$Vmb=[1,1538],$Vnb=[1,1539],$Vob=[1,1540],$Vpb=[1,1541],$Vqb=[1,1542],$Vrb=[1,1543],$Vsb=[1,1544],$Vtb=[1,1546],$Vub=[2,1470],$Vvb=[1,1551],$Vwb=[1,1556],$Vxb=[2,91],$Vyb=[2,26,27,41,50,54,63,64,85,86,87,88,89,91,95,136,138,144,146,179,180,208,224,236,237,238,241,242,253,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,531,533,543,575,579,583,587,589,607,620,625,626,631,635,650,674,682,683,702,707,720,724,736,748,759,760,763,772,782,788,790,878],$Vzb=[2,1507],$VAb=[1,1577],$VBb=[1,1595],$VCb=[1,1597],$VDb=[1,1603],$VEb=[1,1605],$VFb=[95,405,500],$VGb=[1,1613],$VHb=[1,1608],$VIb=[1,1609],$VJb=[1,1611],$VKb=[1,1621],$VLb=[1,1614],$VMb=[1,1622],$VNb=[1,1624],$VOb=[1,1612],$VPb=[1,1623],$VQb=[1,1620],$VRb=[1,1625],$VSb=[1,1610],$VTb=[2,869],$VUb=[1,1635],$VVb=[1,1637],$VWb=[1,1645],$VXb=[2,1593],$VYb=[1,1651],$VZb=[1,1653],$V_b=[1,1659],$V$b=[2,27,41,64,89,91,95,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,527,620,650,683,772,790,878],$V0c=[2,41,64,89,91,95,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,489,500,504,505,527,535,620,650,683,772,790,878],$V1c=[1,1660],$V2c=[1,1664],$V3c=[1,1666],$V4c=[1,1668],$V5c=[1,1670],$V6c=[1,1674],$V7c=[1,1676],$V8c=[1,1678],$V9c=[1,1680],$Vac=[2,91,95,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,790,878],$Vbc=[1,1687],$Vcc=[1,1689],$Vdc=[2,27,41,50,54,64,85,86,87,88,91,95,101,106,109,136,142,144,146,179,180,208,224,237,238,242,253,254,278,288,304,305,307,348,349,350,351,352,353,354,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,536,579,587,589,620,625,626,635,650,654,674,682,683,707,720,724,758,759,772,777,788,790,878],$Vec=[1,1690],$Vfc=[2,27,41,50,54,64,85,86,87,88,91,95,101,106,109,136,142,144,146,179,180,208,224,237,238,242,253,254,278,288,307,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,536,579,587,589,620,625,626,635,650,654,674,682,683,707,720,724,758,759,772,777,788,790,878],$Vgc=[2,41,54,64,91,95,136,142,179,180,208,224,237,238,242,254,278,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,758,759,772,777,788,790,878],$Vhc=[2,1427],$Vic=[1,1695],$Vjc=[2,26,38,41,44,51,54,56,63,64,73,86,89,91,95,101,106,109,111,136,138,142,179,180,206,208,224,237,238,242,254,256,269,276,278,288,307,391,395,405,412,428,429,430,431,432,433,434,435,436,454,462,463,466,489,490,500,504,505,508,509,511,514,518,521,527,530,536,579,587,589,620,625,626,635,650,654,674,682,683,707,720,758,759,772,777,788,790,878],$Vkc=[2,27,41,50,54,64,91,95,136,142,144,179,180,208,224,237,238,242,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,724,758,759,772,777,788,790,878],$Vlc=[2,41,51,54,64,71,86,89,91,95,101,106,109,136,142,179,180,208,224,237,238,242,254,256,269,276,278,288,307,343,395,405,412,428,429,430,431,432,433,434,435,436,454,462,463,464,466,484,489,490,500,504,505,508,509,511,514,518,521,527,530,536,579,587,589,620,625,626,635,650,654,674,682,683,685,707,720,758,759,772,777,788,790,878],$Vmc=[1,1698],$Vnc=[1,1711],$Voc=[1,1712],$Vpc=[2,91,95],$Vqc=[27,41,64,101,136,242,254,361,405,462,463,466,500,504,505],$Vrc=[2,27,41,50,54,64,85,86,87,88,91,95,101,106,109,136,144,146,179,180,208,224,237,238,242,253,254,269,278,288,307,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,536,579,587,589,620,625,626,635,650,654,674,682,683,707,720,724,759,772,788,790,878],$Vsc=[1,1729],$Vtc=[1,1728],$Vuc=[2,91,405,500,772],$Vvc=[1,1787],$Vwc=[2,919],$Vxc=[1,1793],$Vyc=[27,405,500,790],$Vzc=[2,2260],$VAc=[405,500,790],$VBc=[1,1802],$VCc=[27,95,395,405,500,790],$VDc=[395,405,500,790],$VEc=[95,395,405,500,790],$VFc=[2,27,54,86,91,95],$VGc=[2,27,41,50,54,64,85,86,87,88,89,91,95,136,138,144,146,179,180,208,224,237,238,242,253,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,724,759,772,788,790,878],$VHc=[1,1808],$VIc=[1,1814],$VJc=[91,361,405,500,772],$VKc=[2,732],$VLc=[1,1815],$VMc=[1,1822],$VNc=[1,1827],$VOc=[1,1826],$VPc=[1,1837],$VQc=[1,1836],$VRc=[1,1828],$VSc=[1,1829],$VTc=[1,1830],$VUc=[1,1833],$VVc=[1,1832],$VWc=[1,1834],$VXc=[1,1838],$VYc=[1,1839],$VZc=[1,1831],$V_c=[1,1841],$V$c=[1,1840],$V0d=[2,744],$V1d=[2,27,91,95,361,395,405,418,500,772],$V2d=[2,91,395,405,500,772],$V3d=[95,395],$V4d=[1,1848],$V5d=[1,1847],$V6d=[1,1862],$V7d=[1,1852],$V8d=[1,1849],$V9d=[1,1850],$Vad=[1,1851],$Vbd=[1,1858],$Vcd=[1,1857],$Vdd=[1,1856],$Ved=[1,1859],$Vfd=[1,1854],$Vgd=[1,1863],$Vhd=[1,1853],$Vid=[1,1864],$Vjd=[1,1855],$Vkd=[1,1866],$Vld=[1,1865],$Vmd=[2,1845],$Vnd=[2,91,95,395,405,500,772],$Vod=[1,1868],$Vpd=[1,1872],$Vqd=[1,1869],$Vrd=[1,1870],$Vsd=[1,1871],$Vtd=[1,1878],$Vud=[1,1877],$Vvd=[1,1876],$Vwd=[1,1879],$Vxd=[1,1874],$Vyd=[1,1873],$Vzd=[1,1875],$VAd=[1,1881],$VBd=[2,27,41,50,54,64,91,95,136,144,179,180,208,224,237,238,242,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,724,759,772,788,790,878],$VCd=[1,1891],$VDd=[1,1907],$VEd=[1,1910],$VFd=[2,41,54,64,91,95,136,179,180,208,224,237,238,242,254,278,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,759,772,788,790,878],$VGd=[2,27,41,50,54,64,85,86,87,88,91,95,136,144,146,179,180,208,224,237,238,242,253,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,724,759,772,788,790,878],$VHd=[2,1801],$VId=[1,1913],$VJd=[2,1813],$VKd=[2,2010],$VLd=[1,1921],$VMd=[1,1927],$VNd=[2,27,41,50,54,64,85,86,87,88,91,95,136,144,146,179,180,208,224,237,238,242,253,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,685,707,720,724,759,772,788,790,878],$VOd=[2,252],$VPd=[1,1952],$VQd=[41,64,242,254,405,462,463,466,500,504,505,527],$VRd=[27,86,136],$VSd=[2,604],$VTd=[86,136],$VUd=[1,1960],$VVd=[27,51,86,89,101,106,109,136,206,208,256,269,288,307,361,405,500,536,654],$VWd=[2,1441],$VXd=[51,86,89,101,106,109,136,206,208,256,269,288,307,405,500,536,654],$VYd=[1,1965],$VZd=[1,1969],$V_d=[2,1369],$V$d=[1,1977],$V0e=[1,1978],$V1e=[27,41,50,51,64,242,254,405,462,463,466,500,504,505,527],$V2e=[2,681],$V3e=[1,1993],$V4e=[2,2189],$V5e=[1,2002],$V6e=[2,2197],$V7e=[2,1402],$V8e=[27,51,109,405,500,536],$V9e=[2,1459],$Vae=[27,101,109,136,361,405,500,536,654],$Vbe=[2,116],$Vce=[27,101,136,361,405,500],$Vde=[1,2033],$Vee=[101,136,405,500],$Vfe=[2,145],$Vge=[2,146],$Vhe=[2,120],$Vie=[1,2044],$Vje=[1,2069],$Vke=[1,2070],$Vle=[1,2071],$Vme=[1,2059],$Vne=[1,2060],$Voe=[1,2066],$Vpe=[1,2065],$Vqe=[1,2062],$Vre=[1,2061],$Vse=[1,2058],$Vte=[1,2063],$Vue=[1,2057],$Vve=[1,2064],$Vwe=[1,2068],$Vxe=[1,2056],$Vye=[1,2067],$Vze=[1,2073],$VAe=[1,2074],$VBe=[1,2075],$VCe=[2,134],$VDe=[2,689],$VEe=[51,109,405,500,536],$VFe=[1,2096],$VGe=[1,2101],$VHe=[1,2102],$VIe=[1,2103],$VJe=[1,2107],$VKe=[1,2108],$VLe=[2,91,95,683],$VMe=[2,1785],$VNe=[1,2110],$VOe=[1,2109],$VPe=[1,2114],$VQe=[1,2111],$VRe=[1,2112],$VSe=[1,2113],$VTe=[1,2120],$VUe=[1,2119],$VVe=[1,2118],$VWe=[1,2121],$VXe=[1,2116],$VYe=[1,2115],$VZe=[1,2117],$V_e=[1,2129],$V$e=[1,2130],$V0f=[2,27,41,50,54,64,85,86,87,88,89,91,95,136,144,146,179,180,208,224,237,238,242,253,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,724,759,772,788,790,878],$V1f=[1,2142],$V2f=[1,2145],$V3f=[1,2144],$V4f=[2,91,683],$V5f=[27,91,95,683],$V6f=[51,276,405,412,489,490,500],$V7f=[2,27,91,361,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,878],$V8f=[2,1594],$V9f=[27,91,95,361,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,790,878],$Vaf=[2,1914],$Vbf=[1,2171],$Vcf=[1,2172],$Vdf=[1,2174],$Vef=[2,91,95,361,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,790,878],$Vff=[2,1428],$Vgf=[2,26,27,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,138,142,179,180,242,254,256,269,276,288,307,361,391,395,405,412,428,429,430,431,432,433,434,435,436,454,462,463,466,489,490,500,504,505,527,536,620,650,654,683,758,772,777,790,878],$Vhf=[1,2182],$Vif=[27,57,395],$Vjf=[2,51,71,86,89,91,95,101,106,109,136,269,276,288,307,405,412,489,490,500,536,654,758],$Vkf=[1,2200],$Vlf=[405,500,654],$Vmf=[1,2216],$Vnf=[276,412,489,490],$Vof=[2,215],$Vpf=[1,2245],$Vqf=[2,51,86,101,106,109,136,256,269,288,307,344,345,348,405,485,488,500,536,654],$Vrf=[91,361,405,454,500,620,650,683,772,878],$Vsf=[1,2287],$Vtf=[1,2306],$Vuf=[1,2308],$Vvf=[146,582,602,770,880],$Vwf=[2,1842],$Vxf=[1,2354],$Vyf=[2,27,41,50,64,91,95,136,179,180,224,242,254,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,530,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$Vzf=[2,1672],$VAf=[2,41,64,91,95,136,179,180,224,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,530,579,587,589,620,650,674,682,683,759,772,788,790,878],$VBf=[2,41,64,91,95,136,179,180,224,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,509,511,514,521,527,530,579,587,589,620,626,650,674,682,683,759,772,788,790,878],$VCf=[1,2146],$VDf=[2,1673],$VEf=[2,1674],$VFf=[1,2147],$VGf=[2,27,41,50,54,64,91,95,136,179,180,224,237,238,242,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$VHf=[2,1675],$VIf=[2,41,54,64,91,95,136,179,180,224,237,238,242,254,278,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,650,674,682,683,759,772,788,790,878],$VJf=[1,2382],$VKf=[1,2394],$VLf=[1,2390],$VMf=[1,2393],$VNf=[1,2392],$VOf=[1,2397],$VPf=[2,27,587,589,788],$VQf=[2,587,589],$VRf=[1,2410],$VSf=[1,2414],$VTf=[1,2424],$VUf=[1,2429],$VVf=[1,2434],$VWf=[1,2439],$VXf=[1,2438],$VYf=[1,2442],$VZf=[1,2441],$V_f=[1,2445],$V$f=[27,86,101,106,109,136,269,288,307,361,405,500,536,654],$V0g=[2,384],$V1g=[86,101,106,109,136,269,288,307,405,500,536,654],$V2g=[1,2458],$V3g=[1,2457],$V4g=[27,51,86,101,106,109,136,256,269,288,307,361,405,500,536,654],$V5g=[2,283],$V6g=[51,86,101,106,109,136,256,269,288,307,405,500,536,654],$V7g=[1,2466],$V8g=[1,2467],$V9g=[2,242],$Vag=[2,654],$Vbg=[1,2491],$Vcg=[1,2493],$Vdg=[1,2494],$Veg=[2,675],$Vfg=[2,2182],$Vgg=[1,2519],$Vhg=[27,109,405,500,536],$Vig=[2,166],$Vjg=[109,405,500,536],$Vkg=[1,2538],$Vlg=[1,2546],$Vmg=[1,2543],$Vng=[1,2544],$Vog=[1,2545],$Vpg=[1,2547],$Vqg=[1,2548],$Vrg=[91,95],$Vsg=[1,2558],$Vtg=[2,117],$Vug=[27,101,109,136,288,305,307,361,405,500,536,654],$Vvg=[2,487],$Vwg=[1,2566],$Vxg=[1,2570],$Vyg=[1,2569],$Vzg=[27,91,95,405,500],$VAg=[2,310],$VBg=[1,2582],$VCg=[1,2583],$VDg=[1,2581],$VEg=[1,2580],$VFg=[1,2584],$VGg=[1,2578],$VHg=[1,2586],$VIg=[2,91,95,405,500],$VJg=[1,2589],$VKg=[1,2590],$VLg=[2,27,64,85,86,87,88,91,95,146,224,238,253,405,500],$VMg=[2,64,85,86,87,88,91,95,146,224,238,253,405,500],$VNg=[2,27,64,85,86,87,88,91,95,146,224,238,253,342,405,500,654],$VOg=[2,1529],$VPg=[1,2595],$VQg=[1,2600],$VRg=[1,2603],$VSg=[2,296],$VTg=[1,2612],$VUg=[1,2617],$VVg=[101,109,136,288,305,307,361,405,500,536,654],$VWg=[2,41,50,64,91,95,136,179,180,224,242,254,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,530,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$VXg=[2,41,50,54,64,91,95,136,179,180,224,237,238,242,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$VYg=[41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,462,463,466,504,505,507,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,963],$VZg=[1,2655],$V_g=[2,91,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,878],$V$g=[2,1669],$V0h=[2,27,91,95,361,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,790,878],$V1h=[2,842],$V2h=[1,2675],$V3h=[86,101,106,109,136,269,288,307,361,405,500,536,654],$V4h=[2,2233],$V5h=[2,2258],$V6h=[2,1586],$V7h=[91,361,405,500,620,650,683,772,878],$V8h=[2,1598],$V9h=[1,2717],$Vah=[2,91,405,428,429,430,431,432,433,434,435,436,500,620,650,683,772,878],$Vbh=[1,2722],$Vch=[2,91,361,405,428,429,430,431,432,433,434,435,436,500,620,650,683,772,878],$Vdh=[2,1589],$Veh=[2,91,405,454,500,620,650,683,772,790,878],$Vfh=[2,27,91,95,361,405,454,500,620,650,683,772,790,878],$Vgh=[2,745],$Vhh=[1,2732],$Vih=[2,2269],$Vjh=[2,2270],$Vkh=[2,2271],$Vlh=[2,2272],$Vmh=[2,2273],$Vnh=[1,2734],$Voh=[2,747],$Vph=[1,2735],$Vqh=[1,2737],$Vrh=[1,2736],$Vsh=[1,2738],$Vth=[2,1843],$Vuh=[2,27,41,50,54,64,91,95,136,179,180,224,237,238,242,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,530,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$Vvh=[2,1683],$Vwh=[2,41,54,64,91,95,136,179,180,224,237,238,242,254,278,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,530,579,587,589,620,650,674,682,683,759,772,788,790,878],$Vxh=[2,1684],$Vyh=[2,1685],$Vzh=[2,1686],$VAh=[2,41,50,64,91,95,136,179,180,242,254,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,530,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$VBh=[2,1692],$VCh=[2,41,64,91,95,136,179,180,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,530,579,587,589,620,650,674,682,683,759,772,788,790,878],$VDh=[2,27,41,50,64,91,95,136,179,180,242,254,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$VEh=[2,1693],$VFh=[2,41,64,91,95,136,179,180,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,579,587,589,620,650,674,682,683,759,772,788,790,878],$VGh=[2,1694],$VHh=[2,1695],$VIh=[2,1696],$VJh=[2,1697],$VKh=[1,2762],$VLh=[2,587,589,788],$VMh=[1,2781],$VNh=[91,683],$VOh=[2,2021],$VPh=[1,2793],$VQh=[27,685],$VRh=[1,2794],$VSh=[2,27,41,64,73,89,91,138,146,179,180,224,236,241,242,254,362,392,462,463,466,504,505,507,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,797,963],$VTh=[1,2813],$VUh=[1,2821],$VVh=[27,86,101,106,109,136,288,307,361,405,500,536,654],$VWh=[2,420],$VXh=[86,101,106,109,136,288,307,405,500,536,654],$VYh=[1,2832],$VZh=[1,2852],$V_h=[27,91,95],$V$h=[1,2857],$V0i=[27,343,405,500],$V1i=[2,575],$V2i=[1,2869],$V3i=[2,27,91,95,342],$V4i=[1,2874],$V5i=[2,1463],$V6i=[1,2892],$V7i=[2,167],$V8i=[1,2904],$V9i=[1,2905],$Vai=[1,2906],$Vbi=[1,2903],$Vci=[27,41,64,138,146,179,180,242,254,362,462,463,466,504,505,509,602,770,775,901],$Vdi=[1,2917],$Vei=[27,101,109,136,288,361,405,500,536,654],$Vfi=[27,101,109,136,288,307,361,405,500,536,654],$Vgi=[2,493],$Vhi=[101,109,136,288,307,405,500,536,654],$Vii=[1,2925],$Vji=[2,41,54,64,91,95,136,138,179,180,208,224,237,238,242,254,278,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,759,772,788,790,878],$Vki=[2,311],$Vli=[2,27,64,85,86,87,88,91,95,146,224,253,405,500],$Vmi=[2,64,85,86,87,88,91,95,146,224,253,405,500],$Vni=[1,2933],$Voi=[1,2939],$Vpi=[1,2943],$Vqi=[1,2947],$Vri=[1,2957],$Vsi=[1,2951],$Vti=[2,1454],$Vui=[1,2960],$Vvi=[101,109,136,288,307,361,405,500,536,654],$Vwi=[2,1786],$Vxi=[2,41,50,54,64,91,95,136,179,180,224,237,238,242,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,530,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$Vyi=[2,41,50,64,91,95,136,179,180,242,254,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,511,514,521,527,579,587,589,620,650,674,682,683,724,759,772,788,790,878],$Vzi=[2,1915],$VAi=[2,810],$VBi=[1,3005],$VCi=[91,361,405,500,650,683,772,878],$VDi=[2,2065],$VEi=[1,3027],$VFi=[2,1599],$VGi=[2,91,405,428,429,430,431,432,433,434,435,436,500,650,683,772,878],$VHi=[1,3032],$VIi=[2,91,361,405,428,429,430,431,432,433,434,435,436,500,650,683,772,878],$VJi=[2,1691],$VKi=[1,3060],$VLi=[1,3070],$VMi=[2,2027],$VNi=[1,3090],$VOi=[1,3093],$VPi=[2,41,54,64,91,95,136,179,180,208,224,237,238,242,254,278,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,685,707,720,759,772,788,790,878],$VQi=[1,3119],$VRi=[1,3123],$VSi=[1,3127],$VTi=[101,106,109,136,288,307,405,500,536,654],$VUi=[1,3148],$VVi=[1,3150],$VWi=[1,3154],$VXi=[1,3155],$VYi=[2,608],$VZi=[1,3166],$V_i=[343,405,500],$V$i=[2,39],$V0j=[27,138,179,180,276,362,602,770,775],$V1j=[1,3191],$V2j=[101,109,136,288,305,307,405,500,536,654],$V3j=[1,3208],$V4j=[1,3207],$V5j=[1,3213],$V6j=[2,95,238],$V7j=[1,3219],$V8j=[2,41,64,95,238,242,254,462,463,466,504,505,527],$V9j=[2,297],$Vaj=[1,3229],$Vbj=[1,3230],$Vcj=[1,3234],$Vdj=[1,3245],$Vej=[2,811],$Vfj=[91,361,405,500,650,772,878],$Vgj=[2,1627],$Vhj=[2,2066],$Vij=[2,91,405,428,429,430,431,432,433,434,435,436,500,650,772,878],$Vjj=[650,683,878],$Vkj=[2,91,361,405,428,429,430,431,432,433,434,435,436,500,650,772,878],$Vlj=[1,3291],$Vmj=[2,748],$Vnj=[2,746],$Voj=[1,3298],$Vpj=[2,2306],$Vqj=[1,3310],$Vrj=[2,2032],$Vsj=[1,3309],$Vtj=[1,3327],$Vuj=[2,466],$Vvj=[1,3341],$Vwj=[2,387],$Vxj=[86,95,101,106,109,136,269,288,307,405,500,536,654],$Vyj=[27,86,95,101,106,109,136,269,288,307,361,405,500,536,654],$Vzj=[2,580],$VAj=[348,405,500],$VBj=[1,3371],$VCj=[1,3384],$VDj=[2,908],$VEj=[91,361,405,500,772,878],$VFj=[2,1659],$VGj=[1,3413],$VHj=[2,1628],$VIj=[2,91,405,428,429,430,431,432,433,434,435,436,500,772,878],$VJj=[1,3418],$VKj=[650,878],$VLj=[2,2067],$VMj=[2,1600],$VNj=[2,27,91,95,361,405,500,620,650,683,772,878],$VOj=[2,1615],$VPj=[1,3440],$VQj=[2,91,95,361,405,428,429,430,431,432,433,434,435,436,500,620,650,683,772,878],$VRj=[2,91,361,405,428,429,430,431,432,433,434,435,436,500,772,878],$VSj=[2,1680],$VTj=[27,530,983],$VUj=[2,2023],$VVj=[2,497],$VWj=[101,109,136,288,405,500,536,654],$VXj=[1,3469],$VYj=[2,392],$VZj=[1,3476],$V_j=[1,3485],$V$j=[2,609],$V0k=[1,3504],$V1k=[2,488],$V2k=[2,1664],$V3k=[2,1660],$V4k=[2,91,405,428,429,430,431,432,433,434,435,436,500,772],$V5k=[1,3541],$V6k=[2,91,361,405,428,429,430,431,432,433,434,435,436,500,772],$V7k=[27,91,514],$V8k=[2,2052],$V9k=[1,3582],$Vak=[1,3581],$Vbk=[1,3583],$Vck=[2,1629],$Vdk=[2,27,50,91,95,361,405,428,429,430,431,432,433,434,435,436,500,650,724,772,878],$Vek=[2,1643],$Vfk=[1,3589],$Vgk=[1,3590],$Vhk=[2,91,95,405,428,429,430,431,432,433,434,435,436,500,650,674,772,878],$Vik=[2,91,514],$Vjk=[1,3595],$Vkk=[1,3597],$Vlk=[2,472],$Vmk=[101,109,136,405,500,536,654],$Vnk=[1,3605],$Vok=[1,3607],$Vpk=[1,3620],$Vqk=[1,3621],$Vrk=[1,3626],$Vsk=[1,3627],$Vtk=[1,3638],$Vuk=[1,3652],$Vvk=[1,3659],$Vwk=[2,1661],$Vxk=[1,3668],$Vyk=[2,1616],$Vzk=[2,91,95,405,428,429,430,431,432,433,434,435,436,500,620,650,683,772,878],$VAk=[2,2057],$VBk=[1,3693],$VCk=[1,3694],$VDk=[1,3696],$VEk=[27,608,697],$VFk=[2,1646],$VGk=[2,27,50,91,95,361,405,428,429,430,431,432,433,434,435,436,500,650,674,724,772,878],$VHk=[2,91,95,405,428,429,430,431,432,433,434,435,436,500,650,772,878],$VIk=[1,3706],$VJk=[101,109,136,405,500,536],$VKk=[1,3724],$VLk=[1,3725],$VMk=[27,351,352,353,354,405,500],$VNk=[2,587],$VOk=[351,352,353,354,405,500],$VPk=[1,3744],$VQk=[2,1666],$VRk=[2,2034],$VSk=[2,27,91,514],$VTk=[1,3771],$VUk=[1,3772],$VVk=[1,3791],$VWk=[1,3792],$VXk=[27,352,353,354,405,500],$VYk=[2,590],$VZk=[352,353,354,405,500],$V_k=[1,3811],$V$k=[1,3826],$V0l=[1,3828],$V1l=[27,136,361,405,500],$V2l=[2,502],$V3l=[1,3833],$V4l=[136,405,500],$V5l=[2,452],$V6l=[2,453],$V7l=[27,41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,462,463,466,504,505,507,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,963],$V8l=[27,353,354,405,500],$V9l=[2,593],$Val=[353,354,405,500],$Vbl=[1,3857],$Vcl=[2,27,91],$Vdl=[361,405,500],$Vel=[2,505],$Vfl=[1,3879],$Vgl=[2,437],$Vhl=[2,436],$Vil=[27,354,405,500],$Vjl=[2,596],$Vkl=[354,405,500],$Vll=[1,3897],$Vml=[2,509],$Vnl=[2,599],$Vol=[1,3924],$Vpl=[2,435],$Vql=[2,537]; -var parser = {trace: function trace () { }, -yy: {}, -symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"RefreshStatement":5,"InvalidateStatement":6,"ComputeStatsStatement":7,"CreateStatement":8,"DropStatement":9,"GrantStatement":10,"RevokeStatement":11,"DescribeStatement":12,"SetSpecification":13,"ShowStatement":14,"UseStatement":15,"DataDefinition_EDIT":16,"AlterStatement_EDIT":17,"RefreshStatement_EDIT":18,"InvalidateStatement_EDIT":19,"ComputeStatsStatement_EDIT":20,"CreateStatement_EDIT":21,"DropStatement_EDIT":22,"GrantStatement_EDIT":23,"RevokeStatement_EDIT":24,"DescribeStatement_EDIT":25,"SET":26,"CURSOR":27,"ShowStatement_EDIT":28,"UseStatement_EDIT":29,"AlterDatabase":30,"AlterTable":31,"AlterView":32,"CommentOn":33,"AlterDatabase_EDIT":34,"AlterTable_EDIT":35,"AlterView_EDIT":36,"CommentOn_EDIT":37,"ALTER":38,"DatabaseOrSchema":39,"RegularOrBacktickedIdentifier":40,"OWNER":41,"RoleOrUser":42,"AlterTableLeftSide":43,"ADD":44,"OptionalIfNotExists":45,"PartitionSpec":46,"OptionalHdfsLocation":47,"OptionalPartitionSpecs":48,"OptionalCachedInOrUncached":49,"RANGE":50,"PARTITION":51,"RangePartitionSpec":52,"PARTITION_VALUE":53,"=":54,"UnsignedValueSpecification":55,"RENAME":56,"TO":57,"RegularOrBackTickedSchemaQualifiedName":58,"OptionalColumn":59,"ColumnIdentifier":60,"KuduStorageAttribute":61,"SetValue":62,"DROP":63,"DEFAULT":64,"COLUMN":65,"STATS":66,"ParenthesizedStatsList":67,"DropOperations":68,"OptionalPartitionOperations":69,"RECOVER":70,"PARTITIONS":71,"AlterTableLeftSide_EDIT":72,"REPLACE":73,"OptionalIfNotExists_EDIT":74,"HdfsLocation_EDIT":75,"OptionalPartitionSpecs_EDIT":76,"CachedIn_EDIT":77,"PartitionSpec_EDIT":78,"OptionalCachedIn":79,"RangePartitionSpec_EDIT":80,"ParenthesizedStatsList_EDIT":81,"OptionalPartitionOperations_EDIT":82,"DropOperations_EDIT":83,"AddOrReplace":84,"BLOCK_SIZE":85,"COMMENT":86,"COMPRESSION":87,"ENCODING":88,"(":89,"StatsList":90,")":91,"StatsList_EDIT":92,"RightParenthesisOrError":93,"StatsAssignment":94,",":95,"StatsAssignment_EDIT":96,"QuotedValue":97,"FILEFORMAT":98,"FileFormat":99,"HdfsLocation":100,"TBLPROPERTIES":101,"ParenthesizedPropertyAssignmentList":102,"SERDEPROPERTIES":103,"CachedIn":104,"OptionalWithReplication":105,"ROW":106,"FORMAT":107,"DelimitedRowFormat":108,"UNCACHED":109,"AddReplaceColumns":110,"CHANGE":111,"ColumnSpecification":112,"AddReplaceColumns_EDIT":113,"ColumnSpecification_EDIT":114,"WithReplication_EDIT":115,"DelimitedRowFormat_EDIT":116,"COLUMNS":117,"ParenthesizedColumnSpecificationList":118,"ParenthesizedColumnSpecificationList_EDIT":119,"ExchangePartitionSpec":120,"OneOrMorePartitionSpecLists":121,"PartitionSpecList":122,"ExchangePartitionSpec_EDIT":123,"OneOrMorePartitionSpecLists_EDIT":124,"PartitionSpecList_EDIT":125,"OptionalIfExists":126,"OptionalIfExists_EDIT":127,"ColumnIdentifier_EDIT":128,"TABLE":129,"SchemaQualifiedTableIdentifier":130,"SchemaQualifiedTableIdentifier_EDIT":131,"PartitionSpecWithLocationList":132,"PartitionSpecWithLocation":133,"PartitionSpecWithLocation_EDIT":134,"AlterViewLeftSide":135,"AS":136,"QuerySpecification":137,".":138,"AlterViewLeftSide_EDIT":139,"QuerySpecification_EDIT":140,"VIEW":141,"ON":142,"DATABASE":143,"IS":144,"NullableComment":145,"NULL":146,"REFRESH":147,"OptionalPartitionSpec":148,"FUNCTIONS":149,"DatabaseIdentifier":150,"AUTHORIZATION":151,"OptionalPartitionSpec_EDIT":152,"INVALIDATE":153,"METADATA":154,"COMPUTE":155,"OptionalParenthesizedColumnList":156,"OptionalTableSample":157,"INCREMENTAL":158,"ParenthesizedColumnList_EDIT":159,"TableSample_EDIT":160,"DatabaseDefinition":161,"TableDefinition":162,"ViewDefinition":163,"RoleDefinition":164,"FunctionDefinition":165,"DatabaseDefinition_EDIT":166,"TableDefinition_EDIT":167,"ViewDefinition_EDIT":168,"FunctionDefinition_EDIT":169,"CREATE":170,"OptionalExternal":171,"RegularIdentifier":172,"DatabaseDefinitionOptionals":173,"DatabaseDefinitionOptionals_EDIT":174,"OptionalComment":175,"OptionalComment_INVALID":176,"Comment":177,"Comment_INVALID":178,"SINGLE_QUOTE":179,"DOUBLE_QUOTE":180,"VALUE":181,"PropertyAssignmentList":182,"PropertyAssignment":183,"TableDefinitionRightPart":184,"LifeCyclePart":185,"TableDefinitionRightPart_EDIT":186,"TableIdentifierAndOptionalColumnSpecification":187,"OptionalPartitionedBy":188,"OptionalSortBy":189,"OptionalRowFormat":190,"OptionalWithSerdeproperties":191,"OptionalStoredAs":192,"OptionalTblproperties":193,"OptionalAsSelectStatement":194,"TableIdentifierAndOptionalColumnSpecification_EDIT":195,"PartitionedBy_EDIT":196,"SortBy_EDIT":197,"RowFormat_EDIT":198,"WithSerdeproperties_EDIT":199,"StoredAs_EDIT":200,"OptionalAsSelectStatement_EDIT":201,"SchemaQualifiedIdentifier":202,"OptionalColumnSpecificationsOrLike":203,"OptionalColumnSpecificationsOrLike_EDIT":204,"SchemaQualifiedIdentifier_EDIT":205,"LIKE_PARQUET":206,"HdfsPath":207,"LIKE":208,"HdfsPath_EDIT":209,"ColumnSpecificationList":210,"PrimaryKeySpecification":211,"ColumnSpecificationList_EDIT":212,"PrimaryKeySpecification_EDIT":213,"ColumnDataType":214,"OptionalColumnOptions":215,"ColumnDataType_EDIT":216,"ColumnOptions_EDIT":217,"ColumnOptions":218,"ColumnOption":219,"ColumnOption_EDIT":220,"PrimaryKey":221,"NonParenthesizedValueExpressionPrimary":222,"UnsignedNumericLiteral":223,"NOT":224,"PrimaryKey_EDIT":225,"PrimitiveType":226,"ArrayType":227,"MapType":228,"StructType":229,"ArrayType_INVALID":230,"MapType_INVALID":231,"StructType_INVALID":232,"ArrayType_EDIT":233,"MapType_EDIT":234,"StructType_EDIT":235,"ARRAY":236,"<":237,">":238,"AnyCursor":239,"GreaterThanOrError":240,"MAP":241,"STRUCT":242,"StructDefinitionList":243,"StructDefinitionList_EDIT":244,"StructDefinition":245,"StructDefinition_EDIT":246,"Commas":247,":":248,"ColumnDataTypeList":249,"ColumnDataTypeList_EDIT":250,"ColumnDataTypeListInner_EDIT":251,"ParenthesizedColumnList":252,"PRIMARY":253,"KEY":254,"PartitionedBy":255,"PARTITIONED":256,"BY":257,"HashClauses":258,"RangeClause":259,"ColumnIdentifierList":260,"HashClauses_EDIT":261,"RangeClause_EDIT":262,"HashClause":263,"HashClause_EDIT":264,"HASH":265,"ParenthesizedPartitionValuesList":266,"ParenthesizedPartitionValuesList_EDIT":267,"SortBy":268,"SORT":269,"PartitionValueList":270,"PartitionValueList_EDIT":271,"PartitionValue":272,"PartitionValue_EDIT":273,"ValueExpression":274,"LessThanOrEqualTo":275,"VALUES":276,"ValueExpression_EDIT":277,"COMPARISON_OPERATOR":278,"ParenthesizedSortList":279,"SortList":280,"ParenthesizedSortList_EDIT":281,"SortList_EDIT":282,"SortIdentifier":283,"SortIdentifier_EDIT":284,"OptionalAscOrDesc":285,"RowFormat":286,"StoredAs":287,"STORED":288,"AVRO":289,"KUDU":290,"ORC":291,"PARQUET":292,"RCFILE":293,"SEQUENCEFILE":294,"TEXTFILE":295,"DELIMITED":296,"OptionalFieldsTerminatedBy":297,"OptionalLinesTerminatedBy":298,"OptionalFieldsTerminatedBy_EDIT":299,"OptionalLinesTerminatedBy_EDIT":300,"FIELDS":301,"TERMINATED":302,"SingleQuotedValue":303,"ESCAPED":304,"LINES":305,"WithSerdeproperties":306,"WITH":307,"TblProperties":308,"CommitLocations":309,"OptionalParenthesizedViewColumnList":310,"ParenthesizedViewColumnList_EDIT":311,"GenericFunctionDefinition":312,"AggregateFunctionDefinition":313,"GenericFunctionDefinition_EDIT":314,"AggregateFunctionDefinition_EDIT":315,"FUNCTION":316,"ParenthesizedArgumentList":317,"ReturnType":318,"SymbolDefinition":319,"ParenthesizedArgumentList_EDIT":320,"ReturnType_EDIT":321,"AGGREGATE":322,"OptionalInitFn":323,"UpdateFn":324,"MergeFn":325,"OptionalPrepareFn":326,"OptionalCloseFn":327,"OptionalSerializeFn":328,"OptionalFinalizeFn":329,"OptionalIntermediate":330,"OptionalInitFn_EDIT":331,"UpdateFn_EDIT":332,"MergeFn_EDIT":333,"OptionalPrepareFn_EDIT":334,"OptionalCloseFn_EDIT":335,"OptionalSerializeFn_EDIT":336,"OptionalFinalizeFn_EDIT":337,"Intermediate_EDIT":338,"ArgumentList":339,"OptionalVariableArguments":340,"ArgumentList_EDIT":341,"...":342,"RETURNS":343,"SYMBOL":344,"INIT_FN":345,"FunctionReference":346,"FunctionReference_EDIT":347,"UPDATE_FN":348,"MERGE_FN":349,"PREPARE_FN":350,"CLOSE_FN":351,"SERIALIZE_FN":352,"FINALIZE_FN":353,"INTERMEDIATE":354,"SingleQuotedValue_EDIT":355,"ParenthesizedViewColumnList":356,"ViewColumnList":357,"ViewColumnList_EDIT":358,"ColumnReference":359,"ROLE":360,"LIFECYCLE":361,"UNSIGNED_INTEGER":362,"DataManipulation":363,"DeleteStatement":364,"InsertStatement":365,"LoadStatement":366,"UpdateStatement":367,"DataManipulation_EDIT":368,"DeleteStatement_EDIT":369,"InsertOrUpsertStatement_EDIT":370,"CommonTableExpression":371,"CommonTableExpression_EDIT":372,"InsertOrUpsertStatement":373,"LoadStatement_EDIT":374,"UpdateStatement_EDIT":375,"DropDatabaseStatement":376,"DropFunctionStatement":377,"DropRoleStatement":378,"DropStatsStatement":379,"DropTableStatement":380,"DropViewStatement":381,"TruncateTableStatement":382,"DropDatabaseStatement_EDIT":383,"DropFunctionStatement_EDIT":384,"DropStatsStatement_EDIT":385,"DropTableStatement_EDIT":386,"DropViewStatement_EDIT":387,"TruncateTableStatement_EDIT":388,"OptionalCascadeOrRestrict":389,"OptionalPurge":390,"PURGE":391,"TRUNCATE":392,"DELETE":393,"OptionalDeleteTableRef":394,"FROM":395,"TableReference":396,"OptionalWhereClause":397,"DeleteTableRef_EDIT":398,"TableReference_EDIT":399,"WhereClause_EDIT":400,"TransactionIdList":401,"SqlStatements":402,"NonStartingToken":403,"SqlStatement":404,";":405,"NewStatement":406,"SqlStatement_EDIT":407,"ExplainClause_EDIT":408,"SetSpecification_EDIT":409,"ExplainClause":410,"SelectStatement":411,"SELECT":412,"OptionalAllOrDistinct":413,"OptionalStraightJoin":414,"SelectList_ERROR":415,"TableExpression":416,"SelectList":417,"TableExpression_ERROR":418,"SelectStatement_EDIT":419,"SelectList_ERROR_EDIT":420,"TableExpression_EDIT":421,"SelectList_EDIT":422,"ErrorList":423,"Errors":424,"SetOption":425,"ALL":426,"JoinType_EDIT":427,"FULL":428,"LEFT":429,"RIGHT":430,"ANTI":431,"CROSS":432,"INNER":433,"OUTER":434,"SEMI":435,"JOIN":436,"OptionalSelectConditions_EDIT":437,"WhereClause":438,"OptionalGroupByClause":439,"OptionalHavingClause":440,"OptionalOrderByClause":441,"OptionalLimitClause":442,"OptionalOffsetClause":443,"HavingClause":444,"OrderByClause":445,"LimitClause":446,"GroupByClause_EDIT":447,"HavingClause_EDIT":448,"OrderByClause_EDIT":449,"LimitClause_EDIT":450,"OffsetClause_EDIT":451,"GroupByClause":452,"GRANT":453,"GROUP":454,"PrivilegeType":455,"ObjectSpecification":456,"OptionalWithGrantOption":457,"GroupRoleOrUser":458,"PrivilegeType_EDIT":459,"ObjectSpecification_EDIT":460,"WithGrantOption_EDIT":461,"SERVER":462,"URI":463,"INSERT":464,"UserOrRoleList":465,"OPTION":466,"REVOKE":467,"OptionalTable":468,"SelectWithoutTableExpression":469,"SelectWithoutTableExpression_EDIT":470,"InsertOrUpsertStatementWithoutCTE":471,"InsertOrUpsertStatementWithoutCTE_EDIT":472,"InsertOrUpsertLeftPart":473,"OptionalShuffleOrNoShuffle":474,"OptionalUnions":475,"RowValuesLists":476,"InsertOrUpsertLeftPart_EDIT":477,"OptionalUnions_EDIT":478,"RowValuesLists_EDIT":479,"UpsertStatementLeftPart":480,"InsertLeftPart":481,"UpsertStatementLeftPart_EDIT":482,"InsertLeftPart_EDIT":483,"UPSERT":484,"INTO":485,"OptionalParenthesizedColumnList_EDIT":486,"IntoOrOverwrite":487,"OVERWRITE":488,"SHUFFLE":489,"NOSHUFFLE":490,"ParenthesizedValueExpressionList":491,"ParenthesizedValueExpressionList_EDIT":492,"ValueExpressionList":493,"ValueExpressionList_EDIT":494,"LOAD":495,"DATA":496,"INPATH":497,"OptionalOverwrite":498,"SqlSyntax":499,"EOF":500,"SqlAutocomplete":501,"SqlStatements_EDIT":502,"NonReservedKeyword":503,"REGULAR_IDENTIFIER":504,"VARIABLE_REFERENCE":505,"EXPLAIN":506,"!":507,"*":508,"-":509,"[":510,"]":511,"ALLOCATE":512,"ANALYTIC":513,"AND":514,"ANY":515,"APPX_MEDIAN":516,"ARE":517,"ARITHMETIC_OPERATOR":518,"ARRAY_AGG":519,"ARRAY_MAX_CARDINALITY":520,"ASC":521,"ASENSITIVE":522,"ASYMMETRIC":523,"AT":524,"ATOMIC":525,"AVG":526,"BACKTICK":527,"BEGIN_FRAME":528,"BEGIN_PARTITION":529,"BETWEEN":530,"BIGINT":531,"BLOB":532,"BOOLEAN":533,"BOTH":534,"BROADCAST":535,"CACHED":536,"CALLED":537,"CARDINALITY":538,"CASCADE":539,"CASCADED":540,"CASE":541,"CAST":542,"CHAR":543,"CHARACTER":544,"CLOB":545,"COLLATE":546,"COLLECT":547,"COMMIT":548,"CONDITION":549,"CONNECT":550,"CONSTRAINT":551,"CONTAINS":552,"CONVERT":553,"COPY":554,"CORR":555,"CORRESPONDING":556,"COUNT":557,"COVAR_POP":558,"COVAR_SAMP":559,"CUBE":560,"CURRENT":561,"CURRENT_DATE":562,"CURRENT_DEFAULT_TRANSFORM_GROUP":563,"CURRENT_PATH":564,"CURRENT_ROLE":565,"CURRENT_ROW":566,"CURRENT_SCHEMA":567,"CURRENT_TIME":568,"CURRENT_TRANSFORM_GROUP_FOR_TYPE":569,"CYCLE":570,"DATABASES":571,"DEALLOCATE":572,"DEC":573,"DECFLOAT":574,"DECIMAL":575,"DECLARE":576,"DEFINE":577,"DEREF":578,"DESC":579,"DETERMINISTIC":580,"DISCONNECT":581,"DISTINCT":582,"DOUBLE":583,"DYNAMIC":584,"EACH":585,"ELEMENT":586,"ELSE":587,"EMPTY":588,"END":589,"END_FRAME":590,"END_PARTITION":591,"EQUALS":592,"ESCAPE":593,"EVERY":594,"EXCEPT":595,"EXEC":596,"EXECUTE":597,"EXISTS":598,"EXTENDED":599,"EXTERNAL":600,"EXTRACT":601,"FALSE":602,"FETCH":603,"FILES":604,"FILTER":605,"FIRST":606,"FLOAT":607,"FOLLOWING":608,"FOR":609,"FOREIGN":610,"FORMATTED":611,"FRAME_ROW":612,"FREE":613,"FUSION":614,"GET":615,"GLOBAL":616,"GROUP_CONCAT":617,"GROUPING":618,"GROUPS":619,"HAVING":620,"HDFS_START_QUOTE":621,"HOLD":622,"IF":623,"IGNORE":624,"ILIKE":625,"IN":626,"INDICATOR":627,"INITIAL":628,"INOUT":629,"INSENSITIVE":630,"INT":631,"INTERSECT":632,"INTERSECTION":633,"INTERVAL":634,"IREGEXP":635,"JSON_ARRAY":636,"JSON_ARRAYAGG":637,"JSON_EXISTS":638,"JSON_OBJECT":639,"JSON_OBJECTAGG":640,"JSON_QUERY":641,"JSON_TABLE":642,"JSON_TABLE_PRIMITIVE":643,"JSON_VALUE":644,"LARGE":645,"LAST":646,"LATERAL":647,"LEADING":648,"LIKE_REGEX":649,"LIMIT":650,"LISTAGG":651,"LOCAL":652,"LOCALTIMESTAMP":653,"LOCATION":654,"MATCH":655,"MATCH_NUMBER":656,"MATCH_RECOGNIZE":657,"MATCHES":658,"MAX":659,"MERGE":660,"METHOD":661,"MIN":662,"MODIFIES":663,"MULTISET":664,"NATIONAL":665,"NATURAL":666,"NCHAR":667,"NCLOB":668,"NDV":669,"NO":670,"NONE":671,"NORMALIZE":672,"NTH_VALUE":673,"NULLS":674,"NUMERIC":675,"OCCURRENCES_REGEX":676,"OCTET_LENGTH":677,"OF":678,"OMIT":679,"ONE":680,"ONLY":681,"OR":682,"ORDER":683,"OUT":684,"OVER":685,"OVERLAPS":686,"OVERLAY":687,"PATTERN":688,"PER":689,"PERCENT":690,"PERCENTILE_CONT":691,"PERCENTILE_DISC":692,"PORTION":693,"POSITION":694,"POSITION_REGEX":695,"PRECEDES":696,"PRECEDING":697,"PREPARE":698,"PROCEDURE":699,"PTF":700,"READS":701,"REAL":702,"RECURSIVE":703,"REF":704,"REFERENCES":705,"REFERENCING":706,"REGEXP":707,"REGR_AVGX":708,"REGR_AVGY":709,"REGR_COUNT":710,"REGR_INTERCEPT":711,"REGR_R2REGR_SLOPE":712,"REGR_SXX":713,"REGR_SXY":714,"REGR_SYY":715,"RELEASE":716,"REPEATABLE":717,"REPLICATION":718,"RESTRICT":719,"RLIKE":720,"ROLES":721,"ROLLBACK":722,"ROLLUP":723,"ROWS":724,"RUNNING":725,"SAVEPOINT":726,"SCHEMA":727,"SCHEMAS":728,"SCOPE":729,"SCROLL":730,"SEARCH":731,"SEEK":732,"SENSITIVE":733,"SIMILAR":734,"SKIP":735,"SMALLINT":736,"SOME":737,"SPECIFIC":738,"SPECIFICTYPE":739,"SQLEXCEPTION":740,"SQLSTATE":741,"SQLWARNING":742,"STATIC":743,"STDDEV":744,"STDDEV_POP":745,"STDDEV_SAMP":746,"STRAIGHT_JOIN":747,"STRING":748,"SUBMULTISET":749,"SUBSET":750,"SUBSTRING_REGEX":751,"SUCCEEDS":752,"SUM":753,"SYMMETRIC":754,"SYSTEM_TIME":755,"SYSTEM_USER":756,"TABLES":757,"TABLESAMPLE":758,"THEN":759,"TIMESTAMP":760,"TIMEZONE_HOUR":761,"TIMEZONE_MINUTE":762,"TINYINT":763,"TRAILING":764,"TRANSLATE_REGEX":765,"TRANSLATION":766,"TREAT":767,"TRIGGER":768,"TRIM_ARRAY":769,"TRUE":770,"UESCAPE":771,"UNION":772,"UNIQUE":773,"UNNEST":774,"UNSIGNED_INTEGER_E":775,"USER":776,"USING":777,"VALUE_OF":778,"VAR_POP":779,"VAR_SAMP":780,"VARBINARY":781,"VARCHAR":782,"VARIANCE":783,"VARIANCE_POP":784,"VARIANCE_SAMP":785,"VARYING":786,"VERSIONING":787,"WHEN":788,"WHENEVER":789,"WHERE":790,"WIDTH_BUCKET":791,"WINDOW":792,"WITHIN":793,"WITHOUT":794,"~":795,"AggregateOrAnalytic":796,"PARTIAL_CURSOR":797,"FromOrIn":798,"DatabasesOrSchemas":799,"PARTIAL_VALUE":800,"DoubleQuotedValue":801,"DoubleQuotedValue_EDIT":802,"QuotedValue_EDIT":803,"OptionalAggregateOrAnalytic":804,"OptionalExtendedOrFormatted":805,"OptionalFromDatabase":806,"OptionalFromDatabase_EDIT":807,"DatabaseIdentifier_EDIT":808,"OptionalInDatabase":809,"RangePartitionComparisonOperator":810,"ConfigurationName":811,"PartialBacktickedOrAnyCursor":812,"PartialBacktickedIdentifier":813,"PartialBacktickedOrCursor":814,"PartialBacktickedOrPartialCursor":815,"ColumnList":816,"ColumnList_EDIT":817,"ParenthesizedSimpleValueList":818,"SimpleValueList":819,"FieldsList":820,"FieldsList_EDIT":821,"Field":822,"Field_EDIT":823,"PartitionExpression":824,"PartitionExpression_EDIT":825,"WithReplication":826,"SignedInteger":827,"RegularOrBackTickedSchemaQualifiedName_EDIT":828,"LocalOrSchemaQualifiedName":829,"LocalOrSchemaQualifiedName_EDIT":830,"BasicIdentifierChain":831,"ColumnReference_EDIT":832,"BasicIdentifierChain_EDIT":833,"DerivedColumnChain":834,"DerivedColumnChain_EDIT":835,"PartialBacktickedIdentifierOrPartialCursor":836,"RightSquareBracketOrError":837,"OptionalTypePrecision":838,"OptionalTypeLength":839,"DESCRIBE":840,"Unions":841,"Unions_EDIT":842,"UnionClause":843,"UnionClause_EDIT":844,"WithQueries":845,"WithQueries_EDIT":846,"WithQuery":847,"WithQuery_EDIT":848,"TableSubQueryInner":849,"TableSubQueryInner_EDIT":850,"FromClause":851,"OptionalSelectConditions":852,"FromClause_EDIT":853,"OptionalJoins":854,"Joins":855,"Joins_INVALID":856,"TableReferenceList":857,"TableReferenceList_EDIT":858,"SearchCondition":859,"SearchCondition_EDIT":860,"GroupByColumnList":861,"GroupByColumnList_EDIT":862,"ColumnGroupingSets":863,"ColumnGroupingSets_EDIT":864,"ColumnGroupingSet_EDIT":865,"GroupByColumnListPartTwo_EDIT":866,"OrderByColumnList":867,"OrderByColumnList_EDIT":868,"OrderByIdentifier":869,"OrderByIdentifier_EDIT":870,"OptionalNullsFirstOrLast":871,"NullsFirstOrLast_EDIT":872,"SortByList":873,"SortByIdentifier":874,"SortByList_EDIT":875,"SortByIdentifier_EDIT":876,"OffsetClause":877,"OFFSET":878,"OptionalNot":879,"UNKNOWN":880,"TableSubQuery":881,"LikeRightPart":882,"CaseRightPart":883,"NonParenthesizedValueExpressionPrimary_EDIT":884,"TableSubQuery_EDIT":885,"ValueExpressionInSecondPart_EDIT":886,"LikeRightPart_EDIT":887,"CaseRightPart_EDIT":888,"EndOrError":889,"InValueList":890,"ColumnOrArbitraryFunctionRef":891,"ArbitraryFunctionRightPart":892,"ArbitraryFunctionName":893,"UserDefinedFunction":894,"IntervalSpecification":895,"UnsignedValueSpecification_EDIT":896,"ColumnOrArbitraryFunctionRef_EDIT":897,"ArbitraryFunctionRightPart_EDIT":898,"UserDefinedFunction_EDIT":899,"IntervalSpecification_EDIT":900,"+":901,"UnsignedLiteral":902,"UnsignedLiteral_EDIT":903,"GeneralLiteral":904,"GeneralLiteral_EDIT":905,"ExactNumericLiteral":906,"ApproximateNumericLiteral":907,"TruthValue":908,"SelectSpecification":909,"OptionalCorrelationName":910,"SelectSpecification_EDIT":911,"OptionalCorrelationName_EDIT":912,"TablePrimaryOrJoinedTable":913,"TablePrimaryOrJoinedTable_EDIT":914,"TablePrimary":915,"JoinedTable":916,"TablePrimary_EDIT":917,"JoinedTable_EDIT":918,"Joins_EDIT":919,"JoinType":920,"OptionalBroadcastOrShuffle":921,"OptionalJoinCondition":922,"Join_EDIT":923,"JoinCondition_EDIT":924,"UsingColList":925,"TableOrQueryName":926,"DerivedTable":927,"TableOrQueryName_EDIT":928,"DerivedTable_EDIT":929,"SYSTEM":930,"OptionalOnColumn":931,"OptionalOnColumn_EDIT":932,"PushQueryState":933,"PopQueryState":934,"SubQuery":935,"SubQuery_EDIT":936,"QueryExpression":937,"QueryExpression_EDIT":938,"QueryExpressionBody":939,"QueryExpressionBody_EDIT":940,"NonJoinQueryExpression":941,"NonJoinQueryExpression_EDIT":942,"NonJoinQueryTerm":943,"NonJoinQueryTerm_EDIT":944,"NonJoinQueryPrimary":945,"NonJoinQueryPrimary_EDIT":946,"SimpleTable":947,"SimpleTable_EDIT":948,"AggregateFunction":949,"OptionalOverClause":950,"AnalyticFunction":951,"OverClause":952,"CastFunction":953,"ExtractFunction":954,"AggregateFunction_EDIT":955,"OptionalOverClause_EDIT":956,"AnalyticFunction_EDIT":957,"OverClause_EDIT":958,"CastFunction_EDIT":959,"ExtractFunction_EDIT":960,"ArbitraryFunction":961,"ArbitraryFunction_EDIT":962,"LEFT_F":963,"CountFunction":964,"SumFunction":965,"OtherAggregateFunction":966,"CountFunction_EDIT":967,"SumFunction_EDIT":968,"OtherAggregateFunction_EDIT":969,"WindowExpression":970,"WindowExpression_EDIT":971,"OptionalPartitionBy":972,"OptionalOrderByAndWindow":973,"PartitionBy_EDIT":974,"OptionalOrderByAndWindow_EDIT":975,"PartitionBy":976,"OptionalWindowSpec":977,"WindowSpec_EDIT":978,"WindowSpec":979,"RowsOrRange":980,"OptionalCurrentOrPreceding":981,"OptionalAndFollowing":982,"UNBOUNDED":983,"OptionalCurrentOrPreceding_EDIT":984,"OptionalAndFollowing_EDIT":985,"PopLexerState":986,"PushHdfsLexerState":987,"HDFS_PATH":988,"HDFS_END_QUOTE":989,"IntegerOrUnbounded":990,"OtherAggregateFunction_Type":991,"FromOrComma":992,"OptionalOuter":993,"ShowColumnStatsStatement":994,"ShowCreateTableStatement":995,"ShowCurrentRolesStatement":996,"ShowDatabasesStatement":997,"ShowFilesStatement":998,"ShowFunctionsStatement":999,"ShowGrantStatement":1000,"ShowPartitionsStatement":1001,"ShowRoleStatement":1002,"ShowRolesStatement":1003,"ShowTableStatsStatement":1004,"ShowTablesStatement":1005,"SHOW":1006,"ShowColumnStatsStatement_EDIT":1007,"ShowCreateTableStatement_EDIT":1008,"ShowCurrentRolesStatement_EDIT":1009,"ShowDatabasesStatement_EDIT":1010,"ShowFilesStatement_EDIT":1011,"ShowFunctionsStatement_EDIT":1012,"ShowGrantStatement_EDIT":1013,"ShowPartitionsStatement_EDIT":1014,"ShowRoleStatement_EDIT":1015,"ShowTableStatsStatement_EDIT":1016,"ShowTablesStatement_EDIT":1017,"TableOrView":1018,"OptionalPrincipalName":1019,"OptionalPrincipalName_EDIT":1020,"UPDATE":1021,"TargetTable":1022,"SetClauseList":1023,"OptionalFromJoinedTable":1024,"TargetTable_EDIT":1025,"SetClauseList_EDIT":1026,"FromJoinedTable_EDIT":1027,"TableName":1028,"TableName_EDIT":1029,"SetClause":1030,"SetClause_EDIT":1031,"SetTarget":1032,"UpdateSource":1033,"UpdateSource_EDIT":1034,"USE":1035,"CaseWhenThenList":1036,"CaseWhenThenList_EDIT":1037,"CaseWhenThenListPartTwo":1038,"CaseWhenThenListPartTwo_EDIT":1039,"$accept":0,"$end":1}, -terminals_: {2:"error",26:"SET",27:"CURSOR",38:"ALTER",41:"OWNER",44:"ADD",50:"RANGE",51:"PARTITION",53:"PARTITION_VALUE",54:"=",56:"RENAME",57:"TO",63:"DROP",64:"DEFAULT",65:"COLUMN",66:"STATS",70:"RECOVER",71:"PARTITIONS",73:"REPLACE",85:"BLOCK_SIZE",86:"COMMENT",87:"COMPRESSION",88:"ENCODING",89:"(",91:")",95:",",98:"FILEFORMAT",101:"TBLPROPERTIES",103:"SERDEPROPERTIES",106:"ROW",107:"FORMAT",109:"UNCACHED",111:"CHANGE",117:"COLUMNS",129:"TABLE",136:"AS",138:".",141:"VIEW",142:"ON",143:"DATABASE",144:"IS",146:"NULL",147:"REFRESH",149:"FUNCTIONS",151:"AUTHORIZATION",153:"INVALIDATE",154:"METADATA",155:"COMPUTE",158:"INCREMENTAL",170:"CREATE",179:"SINGLE_QUOTE",180:"DOUBLE_QUOTE",181:"VALUE",206:"LIKE_PARQUET",208:"LIKE",224:"NOT",236:"ARRAY",237:"<",238:">",241:"MAP",242:"STRUCT",248:":",253:"PRIMARY",254:"KEY",256:"PARTITIONED",257:"BY",265:"HASH",269:"SORT",276:"VALUES",278:"COMPARISON_OPERATOR",288:"STORED",289:"AVRO",290:"KUDU",291:"ORC",292:"PARQUET",293:"RCFILE",294:"SEQUENCEFILE",295:"TEXTFILE",296:"DELIMITED",301:"FIELDS",302:"TERMINATED",304:"ESCAPED",305:"LINES",307:"WITH",316:"FUNCTION",322:"AGGREGATE",342:"...",343:"RETURNS",344:"SYMBOL",345:"INIT_FN",348:"UPDATE_FN",349:"MERGE_FN",350:"PREPARE_FN",351:"CLOSE_FN",352:"SERIALIZE_FN",353:"FINALIZE_FN",354:"INTERMEDIATE",360:"ROLE",361:"LIFECYCLE",362:"UNSIGNED_INTEGER",391:"PURGE",392:"TRUNCATE",393:"DELETE",395:"FROM",405:";",409:"SetSpecification_EDIT",412:"SELECT",418:"TableExpression_ERROR",424:"Errors",426:"ALL",428:"FULL",429:"LEFT",430:"RIGHT",431:"ANTI",432:"CROSS",433:"INNER",434:"OUTER",435:"SEMI",436:"JOIN",453:"GRANT",454:"GROUP",462:"SERVER",463:"URI",464:"INSERT",466:"OPTION",467:"REVOKE",484:"UPSERT",485:"INTO",488:"OVERWRITE",489:"SHUFFLE",490:"NOSHUFFLE",495:"LOAD",496:"DATA",497:"INPATH",500:"EOF",504:"REGULAR_IDENTIFIER",505:"VARIABLE_REFERENCE",506:"EXPLAIN",507:"!",508:"*",509:"-",510:"[",511:"]",512:"ALLOCATE",513:"ANALYTIC",514:"AND",515:"ANY",516:"APPX_MEDIAN",517:"ARE",518:"ARITHMETIC_OPERATOR",519:"ARRAY_AGG",520:"ARRAY_MAX_CARDINALITY",521:"ASC",522:"ASENSITIVE",523:"ASYMMETRIC",524:"AT",525:"ATOMIC",526:"AVG",527:"BACKTICK",528:"BEGIN_FRAME",529:"BEGIN_PARTITION",530:"BETWEEN",531:"BIGINT",532:"BLOB",533:"BOOLEAN",534:"BOTH",535:"BROADCAST",536:"CACHED",537:"CALLED",538:"CARDINALITY",539:"CASCADE",540:"CASCADED",541:"CASE",542:"CAST",543:"CHAR",544:"CHARACTER",545:"CLOB",546:"COLLATE",547:"COLLECT",548:"COMMIT",549:"CONDITION",550:"CONNECT",551:"CONSTRAINT",552:"CONTAINS",553:"CONVERT",554:"COPY",555:"CORR",556:"CORRESPONDING",557:"COUNT",558:"COVAR_POP",559:"COVAR_SAMP",560:"CUBE",561:"CURRENT",562:"CURRENT_DATE",563:"CURRENT_DEFAULT_TRANSFORM_GROUP",564:"CURRENT_PATH",565:"CURRENT_ROLE",566:"CURRENT_ROW",567:"CURRENT_SCHEMA",568:"CURRENT_TIME",569:"CURRENT_TRANSFORM_GROUP_FOR_TYPE",570:"CYCLE",571:"DATABASES",572:"DEALLOCATE",573:"DEC",574:"DECFLOAT",575:"DECIMAL",576:"DECLARE",577:"DEFINE",578:"DEREF",579:"DESC",580:"DETERMINISTIC",581:"DISCONNECT",582:"DISTINCT",583:"DOUBLE",584:"DYNAMIC",585:"EACH",586:"ELEMENT",587:"ELSE",588:"EMPTY",589:"END",590:"END_FRAME",591:"END_PARTITION",592:"EQUALS",593:"ESCAPE",594:"EVERY",595:"EXCEPT",596:"EXEC",597:"EXECUTE",598:"EXISTS",599:"EXTENDED",600:"EXTERNAL",601:"EXTRACT",602:"FALSE",603:"FETCH",604:"FILES",605:"FILTER",606:"FIRST",607:"FLOAT",608:"FOLLOWING",609:"FOR",610:"FOREIGN",611:"FORMATTED",612:"FRAME_ROW",613:"FREE",614:"FUSION",615:"GET",616:"GLOBAL",617:"GROUP_CONCAT",618:"GROUPING",619:"GROUPS",620:"HAVING",621:"HDFS_START_QUOTE",622:"HOLD",623:"IF",624:"IGNORE",625:"ILIKE",626:"IN",627:"INDICATOR",628:"INITIAL",629:"INOUT",630:"INSENSITIVE",631:"INT",632:"INTERSECT",633:"INTERSECTION",634:"INTERVAL",635:"IREGEXP",636:"JSON_ARRAY",637:"JSON_ARRAYAGG",638:"JSON_EXISTS",639:"JSON_OBJECT",640:"JSON_OBJECTAGG",641:"JSON_QUERY",642:"JSON_TABLE",643:"JSON_TABLE_PRIMITIVE",644:"JSON_VALUE",645:"LARGE",646:"LAST",647:"LATERAL",648:"LEADING",649:"LIKE_REGEX",650:"LIMIT",651:"LISTAGG",652:"LOCAL",653:"LOCALTIMESTAMP",654:"LOCATION",655:"MATCH",656:"MATCH_NUMBER",657:"MATCH_RECOGNIZE",658:"MATCHES",659:"MAX",660:"MERGE",661:"METHOD",662:"MIN",663:"MODIFIES",664:"MULTISET",665:"NATIONAL",666:"NATURAL",667:"NCHAR",668:"NCLOB",669:"NDV",670:"NO",671:"NONE",672:"NORMALIZE",673:"NTH_VALUE",674:"NULLS",675:"NUMERIC",676:"OCCURRENCES_REGEX",677:"OCTET_LENGTH",678:"OF",679:"OMIT",680:"ONE",681:"ONLY",682:"OR",683:"ORDER",684:"OUT",685:"OVER",686:"OVERLAPS",687:"OVERLAY",688:"PATTERN",689:"PER",690:"PERCENT",691:"PERCENTILE_CONT",692:"PERCENTILE_DISC",693:"PORTION",694:"POSITION",695:"POSITION_REGEX",696:"PRECEDES",697:"PRECEDING",698:"PREPARE",699:"PROCEDURE",700:"PTF",701:"READS",702:"REAL",703:"RECURSIVE",704:"REF",705:"REFERENCES",706:"REFERENCING",707:"REGEXP",708:"REGR_AVGX",709:"REGR_AVGY",710:"REGR_COUNT",711:"REGR_INTERCEPT",712:"REGR_R2REGR_SLOPE",713:"REGR_SXX",714:"REGR_SXY",715:"REGR_SYY",716:"RELEASE",717:"REPEATABLE",718:"REPLICATION",719:"RESTRICT",720:"RLIKE",721:"ROLES",722:"ROLLBACK",723:"ROLLUP",724:"ROWS",725:"RUNNING",726:"SAVEPOINT",727:"SCHEMA",728:"SCHEMAS",729:"SCOPE",730:"SCROLL",731:"SEARCH",732:"SEEK",733:"SENSITIVE",734:"SIMILAR",735:"SKIP",736:"SMALLINT",737:"SOME",738:"SPECIFIC",739:"SPECIFICTYPE",740:"SQLEXCEPTION",741:"SQLSTATE",742:"SQLWARNING",743:"STATIC",744:"STDDEV",745:"STDDEV_POP",746:"STDDEV_SAMP",747:"STRAIGHT_JOIN",748:"STRING",749:"SUBMULTISET",750:"SUBSET",751:"SUBSTRING_REGEX",752:"SUCCEEDS",753:"SUM",754:"SYMMETRIC",755:"SYSTEM_TIME",756:"SYSTEM_USER",757:"TABLES",758:"TABLESAMPLE",759:"THEN",760:"TIMESTAMP",761:"TIMEZONE_HOUR",762:"TIMEZONE_MINUTE",763:"TINYINT",764:"TRAILING",765:"TRANSLATE_REGEX",766:"TRANSLATION",767:"TREAT",768:"TRIGGER",769:"TRIM_ARRAY",770:"TRUE",771:"UESCAPE",772:"UNION",773:"UNIQUE",774:"UNNEST",775:"UNSIGNED_INTEGER_E",776:"USER",777:"USING",778:"VALUE_OF",779:"VAR_POP",780:"VAR_SAMP",781:"VARBINARY",782:"VARCHAR",783:"VARIANCE",784:"VARIANCE_POP",785:"VARIANCE_SAMP",786:"VARYING",787:"VERSIONING",788:"WHEN",789:"WHENEVER",790:"WHERE",791:"WIDTH_BUCKET",792:"WINDOW",793:"WITHIN",794:"WITHOUT",795:"~",797:"PARTIAL_CURSOR",800:"PARTIAL_VALUE",840:"DESCRIBE",878:"OFFSET",880:"UNKNOWN",901:"+",930:"SYSTEM",963:"LEFT_F",983:"UNBOUNDED",988:"HDFS_PATH",989:"HDFS_END_QUOTE",1006:"SHOW",1021:"UPDATE",1035:"USE"}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,2],[16,1],[16,1],[4,1],[4,1],[4,1],[4,1],[17,1],[17,1],[17,1],[17,1],[17,2],[30,7],[34,3],[34,4],[34,5],[34,6],[31,7],[31,6],[31,7],[31,4],[31,7],[31,6],[31,6],[31,5],[31,2],[31,2],[31,3],[31,3],[35,1],[35,7],[35,4],[35,7],[35,6],[35,6],[35,5],[35,2],[35,2],[35,3],[35,4],[35,3],[35,3],[35,7],[35,7],[35,7],[35,8],[35,7],[35,5],[35,6],[35,6],[35,6],[35,4],[35,5],[35,6],[35,6],[35,7],[35,4],[35,5],[35,6],[35,6],[35,4],[35,5],[35,2],[35,2],[35,2],[35,3],[35,4],[35,4],[35,3],[35,3],[35,3],[35,4],[35,3],[61,1],[61,1],[61,1],[61,1],[61,1],[59,0],[59,1],[67,3],[81,3],[90,1],[90,3],[92,1],[92,3],[92,5],[92,3],[94,3],[96,1],[69,3],[69,2],[69,3],[69,3],[69,3],[69,4],[69,2],[69,1],[69,3],[82,1],[82,2],[82,3],[82,4],[82,3],[82,2],[82,2],[82,4],[82,3],[82,3],[82,4],[82,5],[82,4],[110,3],[113,3],[113,4],[120,4],[120,4],[123,4],[123,4],[121,3],[121,5],[124,3],[124,5],[68,3],[68,3],[68,5],[68,6],[68,3],[83,3],[83,3],[83,4],[83,2],[83,4],[83,5],[83,5],[83,5],[83,2],[83,3],[83,3],[43,3],[72,3],[72,3],[84,1],[84,1],[48,0],[48,1],[132,1],[132,2],[76,1],[76,2],[76,2],[76,3],[134,2],[134,2],[133,2],[32,5],[32,3],[32,4],[32,6],[36,1],[36,2],[36,3],[36,4],[36,5],[36,3],[36,3],[36,3],[36,4],[135,3],[139,3],[139,3],[33,6],[37,2],[37,3],[37,4],[37,5],[37,6],[145,1],[145,1],[5,3],[5,3],[5,2],[18,2],[18,3],[18,4],[18,3],[18,3],[6,2],[6,3],[19,2],[19,3],[19,3],[19,3],[7,5],[7,5],[20,2],[20,3],[20,3],[20,4],[20,6],[20,5],[20,5],[20,5],[20,3],[20,5],[20,4],[20,5],[20,6],[20,5],[8,1],[8,1],[8,1],[8,1],[8,1],[21,1],[21,1],[21,1],[21,1],[21,3],[161,3],[161,5],[166,4],[166,3],[166,5],[166,4],[166,6],[166,6],[173,2],[174,2],[174,2],[175,0],[175,1],[177,2],[176,1],[178,2],[178,2],[178,3],[178,3],[102,3],[182,1],[182,3],[183,3],[162,6],[167,5],[167,5],[167,4],[184,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,12],[186,11],[186,11],[187,2],[195,2],[195,2],[203,0],[203,1],[203,2],[203,2],[204,1],[204,2],[204,2],[204,2],[118,3],[118,5],[119,3],[119,5],[119,5],[210,1],[210,3],[212,1],[212,3],[212,3],[212,5],[212,2],[212,4],[212,4],[212,6],[112,3],[114,3],[114,3],[114,3],[215,0],[215,1],[218,1],[218,2],[217,1],[217,2],[217,2],[217,3],[219,1],[219,2],[219,2],[219,2],[219,2],[219,2],[219,1],[219,1],[220,1],[220,2],[214,1],[214,1],[214,1],[214,1],[214,1],[214,1],[214,1],[216,1],[216,1],[216,1],[227,4],[230,3],[233,4],[233,4],[228,6],[231,3],[234,6],[234,4],[234,6],[234,5],[229,4],[232,3],[235,4],[243,1],[243,3],[244,1],[244,2],[244,3],[244,3],[244,5],[245,4],[246,5],[246,4],[246,4],[246,4],[246,3],[246,3],[249,1],[249,3],[250,1],[250,2],[250,3],[250,3],[250,5],[251,2],[251,2],[251,1],[251,1],[240,1],[240,1],[211,2],[213,1],[213,2],[213,2],[221,2],[225,2],[188,0],[188,1],[255,3],[255,3],[255,5],[255,3],[255,5],[260,3],[260,1],[196,2],[196,3],[196,3],[196,2],[196,2],[196,3],[196,3],[196,3],[196,5],[196,5],[196,5],[258,1],[258,3],[261,1],[261,3],[261,5],[263,4],[264,3],[264,2],[264,4],[264,4],[259,3],[262,2],[262,2],[262,3],[262,3],[262,3],[189,0],[189,1],[268,3],[197,2],[197,3],[266,3],[267,3],[267,3],[270,1],[270,3],[271,1],[271,3],[271,5],[271,3],[271,5],[272,6],[272,4],[272,4],[272,3],[273,2],[273,2],[273,3],[273,2],[273,3],[273,4],[273,4],[273,5],[273,6],[273,6],[273,3],[273,4],[273,4],[275,1],[275,1],[279,3],[281,3],[280,1],[280,3],[282,1],[282,3],[282,3],[282,5],[283,2],[284,3],[284,2],[284,2],[190,0],[190,1],[286,3],[198,2],[198,3],[198,3],[192,0],[192,1],[287,3],[200,2],[200,3],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[108,3],[116,3],[116,3],[297,0],[297,4],[297,7],[299,2],[299,3],[299,6],[298,0],[298,4],[300,2],[300,3],[191,0],[191,1],[306,3],[199,2],[199,3],[193,0],[193,1],[308,2],[194,0],[194,3],[201,3],[201,3],[309,0],[163,8],[168,4],[168,9],[168,3],[168,6],[168,7],[168,8],[168,8],[168,8],[165,1],[165,1],[169,1],[169,1],[312,8],[314,4],[314,9],[314,6],[314,7],[314,8],[314,3],[314,5],[314,6],[314,7],[314,8],[314,8],[314,8],[314,8],[313,16],[315,3],[315,17],[315,5],[315,4],[315,16],[315,6],[315,16],[315,7],[315,8],[315,10],[315,11],[315,17],[315,7],[315,9],[315,9],[315,10],[315,10],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[317,2],[317,4],[320,3],[320,4],[339,1],[339,3],[341,1],[341,3],[341,3],[341,5],[340,0],[340,1],[318,2],[321,2],[319,3],[323,0],[323,3],[331,3],[324,3],[332,3],[325,3],[333,3],[326,0],[326,3],[334,3],[327,0],[327,3],[335,3],[328,0],[328,3],[336,3],[329,0],[329,3],[337,3],[330,0],[330,2],[338,2],[346,1],[347,1],[310,0],[310,1],[356,3],[311,3],[357,2],[357,4],[358,3],[358,5],[358,5],[358,7],[164,3],[185,0],[185,2],[363,1],[363,1],[363,1],[363,1],[368,1],[368,1],[368,2],[368,2],[368,1],[368,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,2],[376,5],[383,3],[383,3],[383,4],[383,5],[383,5],[383,6],[377,5],[377,6],[384,4],[384,5],[384,6],[384,3],[384,6],[384,5],[384,3],[384,7],[384,4],[384,6],[384,5],[384,6],[378,3],[379,3],[379,5],[385,3],[385,3],[385,4],[385,5],[385,3],[385,4],[385,4],[385,5],[385,5],[385,5],[380,5],[386,3],[386,4],[386,5],[386,5],[386,6],[390,0],[390,1],[381,4],[387,4],[387,5],[387,3],[387,4],[387,4],[382,4],[388,2],[388,4],[388,3],[388,4],[388,5],[388,5],[388,4],[364,5],[369,3],[369,2],[369,4],[369,6],[369,3],[369,5],[369,5],[369,5],[394,0],[394,1],[398,1],[401,1],[401,3],[402,1],[402,2],[402,0],[402,1],[402,4],[407,2],[407,1],[407,2],[407,1],[407,1],[407,1],[407,1],[407,1],[407,2],[407,2],[407,2],[407,2],[407,2],[407,2],[411,5],[411,5],[411,4],[411,5],[419,5],[419,5],[419,4],[419,4],[419,5],[419,5],[419,5],[419,6],[419,7],[419,5],[415,1],[415,3],[415,5],[415,3],[415,5],[420,3],[420,5],[420,7],[420,3],[420,5],[420,7],[13,4],[13,4],[13,2],[423,1],[423,3],[427,3],[427,3],[427,3],[427,2],[427,2],[427,2],[427,2],[427,2],[427,3],[427,3],[427,3],[427,3],[427,3],[427,3],[427,3],[427,3],[427,3],[427,3],[427,3],[427,3],[437,8],[437,8],[437,8],[437,8],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,7],[437,6],[437,6],[437,6],[437,6],[437,6],[437,6],[437,7],[437,7],[437,7],[437,7],[437,7],[10,6],[10,7],[10,8],[23,2],[23,4],[23,5],[23,2],[23,3],[23,4],[23,4],[23,5],[23,6],[23,8],[23,7],[23,9],[23,8],[456,2],[456,2],[456,2],[456,2],[460,2],[460,2],[460,2],[455,1],[455,1],[455,1],[455,1],[455,1],[455,1],[455,2],[459,2],[465,1],[465,3],[457,0],[457,3],[461,2],[461,3],[11,6],[11,6],[11,7],[24,2],[24,4],[24,5],[24,2],[24,3],[24,4],[24,4],[24,5],[24,6],[365,1],[365,2],[468,0],[468,1],[469,4],[470,5],[470,4],[470,4],[373,1],[370,1],[471,4],[471,3],[472,1],[472,3],[472,4],[472,4],[472,4],[472,3],[472,3],[473,1],[473,1],[477,1],[477,1],[480,5],[482,2],[482,4],[482,6],[482,5],[482,5],[481,6],[483,2],[483,4],[483,7],[483,6],[483,6],[483,6],[487,1],[487,1],[474,0],[474,1],[474,1],[476,1],[476,3],[479,1],[479,3],[479,5],[479,3],[491,3],[492,3],[492,3],[366,9],[374,2],[374,3],[374,5],[374,6],[374,7],[374,8],[374,9],[374,10],[374,9],[374,9],[498,0],[498,1],[499,3],[501,3],[501,3],[406,0],[502,1],[502,4],[502,4],[502,7],[404,1],[404,1],[404,1],[404,2],[404,2],[404,2],[503,1],[503,1],[503,1],[503,1],[503,1],[503,1],[503,1],[172,1],[172,1],[172,1],[410,1],[408,2],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[796,1],[796,1],[247,1],[247,2],[239,1],[239,1],[39,1],[39,1],[798,1],[798,1],[799,1],[799,1],[458,1],[458,1],[458,1],[42,1],[42,1],[303,3],[303,2],[355,2],[801,3],[801,2],[802,2],[97,1],[97,1],[803,1],[803,1],[804,0],[804,1],[171,0],[171,1],[805,0],[805,1],[805,1],[806,0],[806,2],[807,2],[389,0],[389,1],[389,1],[126,0],[126,2],[127,2],[45,0],[45,3],[74,2],[74,3],[809,0],[809,2],[809,2],[148,0],[148,1],[152,1],[46,4],[78,4],[52,5],[80,2],[80,3],[80,4],[80,5],[80,5],[80,5],[810,1],[810,1],[810,1],[810,1],[811,1],[811,1],[812,1],[812,1],[814,1],[814,1],[815,1],[815,1],[813,2],[93,1],[93,1],[156,0],[156,1],[486,1],[252,3],[159,3],[159,3],[816,1],[816,3],[817,1],[817,3],[817,3],[817,3],[817,5],[817,5],[818,3],[819,1],[819,3],[130,1],[130,3],[130,4],[131,1],[131,3],[131,3],[131,4],[820,1],[820,2],[821,1],[821,2],[821,3],[821,2],[822,2],[823,2],[202,1],[202,3],[205,1],[205,3],[205,3],[150,1],[808,1],[122,1],[122,3],[125,1],[125,3],[125,3],[125,5],[824,3],[825,3],[825,3],[825,3],[825,1],[47,0],[47,1],[100,2],[75,2],[49,0],[49,2],[49,1],[79,0],[79,2],[104,3],[77,2],[105,0],[105,1],[826,4],[115,2],[115,3],[40,1],[40,3],[40,2],[58,1],[58,3],[828,1],[828,3],[829,1],[829,2],[830,1],[830,2],[359,1],[359,3],[832,1],[831,1],[831,3],[833,1],[833,3],[833,5],[833,3],[833,3],[833,5],[834,1],[834,3],[835,1],[835,3],[835,5],[835,3],[835,1],[835,3],[835,5],[835,3],[60,1],[60,4],[60,3],[128,4],[128,4],[836,1],[836,1],[837,1],[837,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,2],[226,2],[226,2],[226,1],[839,0],[839,3],[838,0],[838,3],[838,5],[12,3],[12,4],[25,3],[25,3],[25,4],[25,4],[25,5],[137,2],[137,3],[137,5],[140,2],[140,2],[140,4],[140,3],[140,3],[140,1],[140,4],[140,3],[475,0],[475,1],[478,1],[841,1],[841,2],[842,1],[842,2],[842,2],[842,3],[843,4],[844,3],[844,4],[844,4],[414,0],[414,1],[371,2],[372,2],[845,1],[845,3],[846,1],[846,3],[846,3],[846,5],[847,5],[848,2],[848,5],[848,5],[413,0],[413,1],[413,1],[416,2],[421,2],[421,4],[421,3],[854,0],[854,1],[854,1],[851,2],[853,2],[853,2],[852,6],[397,0],[397,1],[438,2],[400,2],[400,2],[439,0],[439,1],[452,3],[447,3],[447,3],[447,2],[863,0],[863,1],[863,3],[863,3],[864,1],[864,3],[864,3],[864,5],[864,3],[865,1],[865,1],[861,1],[861,3],[862,1],[862,2],[862,3],[862,3],[862,3],[862,4],[862,5],[866,1],[866,2],[866,1],[441,0],[441,1],[445,3],[449,3],[449,2],[867,1],[867,3],[868,1],[868,2],[868,3],[868,4],[868,5],[869,3],[870,3],[870,3],[870,3],[285,0],[285,1],[285,1],[871,0],[871,2],[871,2],[872,2],[873,1],[873,3],[875,1],[875,3],[875,3],[875,5],[874,2],[876,2],[876,2],[442,0],[442,1],[446,2],[450,2],[450,2],[443,0],[443,1],[877,2],[451,2],[451,2],[859,1],[860,1],[274,1],[274,2],[274,2],[274,2],[274,2],[274,4],[274,4],[274,4],[274,4],[274,6],[274,2],[274,3],[274,3],[274,3],[274,3],[274,3],[274,6],[274,6],[274,5],[274,5],[274,4],[274,3],[274,3],[274,3],[274,3],[274,3],[274,3],[274,2],[274,3],[274,2],[274,3],[277,1],[277,3],[277,2],[277,2],[277,2],[277,2],[277,2],[277,2],[277,2],[277,2],[277,3],[277,4],[277,5],[277,4],[277,4],[277,4],[277,6],[277,6],[277,2],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,4],[277,3],[277,6],[277,6],[277,5],[277,5],[277,4],[277,4],[277,5],[277,4],[277,3],[277,3],[277,4],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,2],[277,3],[277,2],[277,3],[277,2],[277,3],[277,2],[277,3],[277,3],[277,4],[277,3],[277,3],[277,3],[493,1],[493,3],[494,1],[494,3],[494,3],[494,5],[494,3],[494,5],[494,4],[494,3],[494,2],[494,2],[494,4],[890,1],[890,3],[222,1],[222,1],[222,2],[222,2],[222,1],[222,1],[222,1],[884,1],[884,1],[884,2],[884,2],[884,1],[884,1],[891,1],[891,3],[897,1],[895,3],[900,3],[827,1],[827,2],[827,2],[55,1],[896,1],[902,1],[902,1],[903,1],[223,1],[223,1],[906,1],[906,2],[906,3],[906,2],[907,2],[907,3],[907,4],[904,1],[904,1],[904,1],[905,1],[905,1],[908,1],[908,1],[879,0],[879,1],[909,2],[909,1],[911,2],[911,3],[911,2],[417,1],[417,3],[422,1],[422,2],[422,3],[422,3],[422,3],[422,4],[422,3],[422,3],[422,4],[422,4],[422,4],[422,5],[422,5],[857,1],[857,3],[858,1],[858,3],[858,3],[858,5],[858,3],[396,1],[399,1],[913,1],[913,1],[914,1],[914,1],[916,2],[918,2],[918,2],[855,4],[855,5],[856,2],[856,3],[921,0],[921,1],[921,1],[923,4],[923,2],[923,4],[923,4],[923,4],[919,1],[919,2],[919,2],[919,3],[920,1],[920,2],[920,2],[920,2],[920,2],[920,2],[920,2],[920,3],[920,2],[920,3],[920,3],[920,3],[920,3],[920,2],[920,3],[920,3],[920,3],[920,3],[922,0],[922,2],[922,4],[925,1],[925,3],[924,2],[924,2],[915,3],[915,3],[917,3],[917,3],[917,3],[917,3],[926,1],[928,1],[927,1],[929,1],[157,0],[157,5],[157,9],[160,2],[931,0],[931,2],[932,2],[932,2],[933,0],[934,0],[881,3],[881,4],[885,3],[885,3],[849,2],[850,3],[935,1],[936,1],[937,1],[938,1],[939,1],[940,1],[941,1],[942,1],[943,1],[944,1],[945,1],[946,1],[947,1],[948,1],[910,0],[910,1],[910,1],[910,2],[910,2],[912,1],[912,1],[912,2],[912,2],[912,2],[894,2],[894,2],[894,1],[894,1],[899,1],[899,2],[899,1],[899,2],[899,2],[899,2],[899,1],[899,1],[961,2],[961,2],[962,2],[962,2],[893,1],[893,1],[893,1],[893,1],[893,1],[893,1],[893,1],[892,2],[892,3],[898,3],[898,4],[898,3],[949,1],[949,1],[949,1],[955,1],[955,1],[955,1],[951,3],[951,4],[957,4],[957,5],[957,4],[950,0],[950,1],[956,1],[952,2],[952,2],[958,2],[970,4],[971,4],[971,4],[971,5],[971,7],[972,0],[972,1],[976,3],[974,2],[974,3],[974,3],[973,0],[973,2],[975,1],[975,3],[975,2],[977,0],[977,1],[979,4],[979,4],[978,2],[978,5],[978,4],[978,4],[978,4],[978,3],[986,0],[987,0],[207,3],[209,5],[209,4],[209,3],[209,3],[209,2],[980,1],[980,1],[981,0],[981,2],[981,2],[984,2],[984,2],[982,0],[982,3],[982,3],[985,2],[985,3],[985,3],[990,1],[990,1],[440,0],[440,1],[444,2],[448,2],[448,2],[953,6],[953,3],[959,6],[959,5],[959,4],[959,6],[959,5],[959,4],[959,6],[959,5],[959,6],[959,5],[964,4],[964,3],[964,5],[967,5],[967,6],[967,5],[966,4],[966,5],[969,5],[969,6],[969,5],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[991,1],[954,6],[954,3],[960,6],[960,5],[960,4],[960,6],[960,5],[960,4],[960,6],[960,5],[960,6],[960,5],[960,6],[960,5],[992,1],[992,1],[965,5],[965,3],[968,5],[968,6],[968,5],[993,0],[993,1],[425,1],[425,3],[62,1],[62,1],[62,2],[62,1],[62,1],[62,1],[62,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[28,2],[28,3],[28,4],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[994,4],[1007,3],[1007,4],[1007,4],[995,4],[1008,3],[1008,4],[1008,4],[1008,4],[1018,1],[1018,1],[996,3],[1009,3],[1009,3],[997,4],[997,3],[1010,3],[998,5],[1011,3],[1011,4],[1011,5],[1011,6],[1011,5],[1011,5],[999,4],[999,6],[1012,3],[1012,4],[1012,5],[1012,6],[1012,6],[1012,6],[1000,4],[1000,7],[1000,6],[1000,7],[1000,7],[1013,3],[1013,4],[1013,5],[1013,6],[1013,7],[1013,7],[1013,7],[1013,7],[1019,0],[1019,1],[1020,1],[1020,2],[1001,3],[1001,4],[1014,3],[1014,3],[1014,4],[1014,4],[1002,5],[1015,3],[1015,4],[1015,5],[1003,2],[1004,4],[1016,3],[1016,4],[1016,4],[1005,3],[1005,4],[1005,5],[1017,4],[367,6],[375,6],[375,6],[375,6],[375,6],[375,7],[375,3],[375,2],[375,2],[375,2],[1022,1],[1025,1],[1028,1],[1029,1],[1023,1],[1023,3],[1026,1],[1026,3],[1026,3],[1026,5],[1030,3],[1031,3],[1031,2],[1031,1],[1032,1],[1033,1],[1034,1],[1024,0],[1024,2],[1027,2],[1027,2],[15,2],[29,2],[886,3],[886,3],[886,3],[882,2],[882,2],[882,2],[882,2],[882,2],[887,2],[887,2],[887,2],[887,2],[887,2],[887,2],[887,2],[887,2],[887,2],[887,2],[883,2],[883,4],[888,2],[888,4],[888,4],[888,3],[888,4],[888,3],[888,4],[888,4],[888,3],[888,4],[888,3],[889,1],[889,1],[1036,1],[1036,2],[1037,1],[1037,2],[1037,3],[1037,3],[1037,2],[1038,4],[1039,2],[1039,3],[1039,4],[1039,4],[1039,3],[1039,3],[1039,4],[1039,2],[1039,3],[1039,2],[1039,3],[1039,3],[1039,4],[1039,3],[1039,4],[1039,4],[1039,5],[1039,4],[1039,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 22: - - parser.suggestSetOptions(); - parser.suggestKeywords(['ALL']); - -break; -case 33: case 2170: - - parser.suggestKeywords(['TABLE', 'VIEW']); - -break; -case 34: - - parser.addDatabaseLocation(_$[$0-4], [ { name: $$[$0-4] } ]); - -break; -case 35: case 196: case 208: case 829: case 1447: case 2206: case 2265: - - parser.suggestDatabases(); - -break; -case 36: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - parser.suggestKeywords(['SET OWNER']); - -break; -case 37: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.suggestKeywords(['OWNER']); - -break; -case 38: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - parser.suggestKeywords(['ROLE', 'USER']); - -break; -case 43: case 54: case 77: - - parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); - -break; -case 44: case 55: case 124: - - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - -break; -case 45: case 56: case 80: case 81: case 120: case 123: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - -break; -case 61: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } - -break; -case 62: case 88: - - parser.suggestKeywords(['COLUMNS']); - -break; -case 67: - - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['CACHED IN', 'UNCACHED']); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 69: case 154: case 426: case 431: case 432: - - parser.suggestKeywords(['PARTITION']); - -break; -case 70: case 155: - - parser.suggestKeywords(['VALUE']); - -break; -case 71: case 156: case 440: case 1474: - - parser.suggestKeywords(['=']); - -break; -case 73: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - -break; -case 74: - - parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', - 'SET ENCODING']); - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - -break; -case 75: - - parser.suggestKeywords(['DEFAULT']); - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - -break; -case 76: - - parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - -break; -case 78: case 225: case 669: case 2166: case 2226: - - parser.suggestKeywords(['STATS']); - -break; -case 79: case 122: case 159: case 465: case 1414: case 1418: case 1422: case 1457: case 1458: case 1503: case 1506: case 1613: case 1658: case 2256: - - parser.suggestColumns(); - -break; -case 82: case 184: - - parser.suggestKeywords(['ROLE', 'USER']); - -break; -case 86: - - parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', - 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', - 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', - 'SET ROW FORMAT', 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - -break; -case 87: - - parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - -break; -case 89: - - parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); - -break; -case 90: - - parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'OWNER ROLE', 'OWNER USER', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); - -break; -case 92: case 188: case 819: - - parser.suggestKeywords(['TO']); - -break; -case 93: case 189: case 1443: - - parser.suggestDatabases({ appendDot: true }); - -break; -case 94: case 410: - - parser.suggestKeywords(['PARTITIONS']); - -break; -case 111: - - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - -break; -case 125: case 476: - - parser.suggestFileFormats(); - -break; -case 128: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH REPLICATION =']); - } - -break; -case 130: case 469: - - parser.suggestKeywords(['FORMAT']); - -break; -case 131: case 470: - - parser.suggestKeywords(['DELIMITED']); - -break; -case 132: case 1888: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 149: - - parser.addColumnLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 150: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); - parser.suggestColumns(); - } else { - parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); - } - -break; -case 161: case 190: case 210: case 663: case 683: case 687: case 689: case 826: case 1534: case 2165: case 2169: case 2214: case 2225: case 2245: - - parser.addTablePrimary($$[$0]); - -break; -case 162: case 678: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - -break; -case 163: - - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 169: case 468: case 749: case 750: case 751: case 1567: case 1595: case 1616: case 1629: case 1633: case 1651: case 1674: case 1700: case 1701: case 1778: case 1780: case 1848: case 1858: case 1865: case 1877: case 2023: case 2261: case 2305: case 2306: -this.$ = $$[$0]; -break; -case 176: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['LOCATION'] }; - } - -break; -case 182: - - parser.suggestKeywords(['AS', 'RENAME TO', 'SET OWNER']); - -break; -case 183: - - parser.suggestKeywords(['OWNER ROLE', 'OWNER USER']); - -break; -case 186: case 507: case 516: case 1577: case 1944: - - parser.suggestKeywords(['SELECT']); - -break; -case 191: case 688: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 192: - - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 193: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 194: - - parser.suggestKeywords(['ON DATABASE']); - -break; -case 195: - - parser.suggestKeywords(['DATABASE']); - -break; -case 197: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - parser.suggestKeywords(['IS']); - -break; -case 198: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.suggestKeywords(['NULL']); - -break; -case 201: case 216: case 230: case 664: case 674: case 675: case 694: case 908: case 917: case 918: case 2182: case 2215: - - parser.addTablePrimary($$[$0-1]); - -break; -case 202: case 1535: - - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 204: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['AUTHORIZATION', 'FUNCTIONS']); - -break; -case 206: case 916: case 2186: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 211: - - parser.suggestKeywords(['METADATA']); - -break; -case 212: case 218: case 227: case 665: case 670: case 700: case 830: case 914: case 1429: case 2242: case 2262: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 214: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['METADATA']); - -break; -case 215: case 222: case 223: - - parser.addTablePrimary($$[$0-2]); - -break; -case 217: - - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - -break; -case 220: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - -break; -case 221: - - parser.addTablePrimary($$[$0-3]); - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLESAMPLE']); - } else if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 224: case 668: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['INCREMENTAL']); - -break; -case 226: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['STATS']); - -break; -case 229: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 240: - - if ($$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } else { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - -break; -case 242: - - parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); - -break; -case 243: case 266: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 245: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 246: - - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 247: - - parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); - -break; -case 249: - - var keywords = []; - if (!$$[$0]) { - keywords.push('LOCATION'); - } - if (!$$[$0-1] && !$$[$0]) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 279: - - var keywords = []; - if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LIKE', weight: 1 }); - keywords.push({ value: 'LIKE PARQUET', weight: 1 }); - } else { - if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - keywords.push({ value: 'PARTITION BY', weight: 12 }); - } - if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'SORT BY', weight: 11 }); - } - if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'COMMENT', weight: 10 }); - } - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'ROW FORMAT', weight: 7 }); - } else if ($$[$0-6] && $$[$0-6].suggestKeywords && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 7)); - } - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'STORED AS', weight: 5 }); - } - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LOCATION', weight: 4 }); - } - if (!$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'CACHED IN', weight: 3 }, { value: 'UNCACHED', weight: 3 }); - } else if ($$[$0-2] && $$[$0-2].suggestKeywords && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); - } - if (!$$[$0-1]) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - parser.suggestKeywords(keywords); - -break; -case 280: - - parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); - this.$ = $$[$0]; - -break; -case 285: case 286: case 1435: case 1438: -this.$ = []; -break; -case 289: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['PARQUET']); - -break; -case 291: case 610: case 612: case 1349: case 1352: case 1436: case 1476: case 1541: case 1682: case 1861: case 1941: case 1998: -this.$ = $$[$0-1]; -break; -case 292: case 611: case 613: -this.$ = $$[$0-3]; -break; -case 295: - - parser.suggestKeywords(['PRIMARY KEY']); - -break; -case 296: case 1433: case 1569: -this.$ = [$$[$0]]; -break; -case 297: -this.$ = $$[$0-2].concat($$[$0]); -break; -case 302: case 304: case 463: - - parser.checkForKeywords($$[$0-1]); - -break; -case 303: case 305: - - parser.checkForKeywords($$[$0-3]); - -break; -case 306: - - this.$ = $$[$0-2]; - this.$.type = $$[$0-1]; - var keywords = []; - if (!$$[$0]['primary']) { - keywords.push('PRIMARY KEY'); - } - if (!$$[$0]['encoding']) { - keywords.push('ENCODING'); - } - if (!$$[$0]['compression']) { - keywords.push('COMPRESSION'); - } - if (!$$[$0]['default']) { - keywords.push('DEFAULT'); - } - if (!$$[$0]['block_size']) { - keywords.push('BLOCK_SIZE'); - } - if (!$$[$0]['null']) { - keywords.push('NOT NULL'); - keywords.push('NULL'); - } - if (!$$[$0]['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 307: case 340: case 346: case 347: case 360: case 363: case 372: case 374: - - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - -break; -case 310: case 1916: -this.$ = {}; -break; -case 312: - - this.$ = {}; - this.$[$$[$0]] = true; - -break; -case 313: - - $$[$0-1][$$[$0]] = true; - -break; -case 318: -this.$ = 'primary'; -break; -case 319: -this.$ = 'encoding'; -break; -case 320: -this.$ = 'compression'; -break; -case 321: -this.$ = 'default'; -break; -case 322: -this.$ = 'block_size'; -break; -case 323: case 324: -this.$ = 'null'; -break; -case 325: -this.$ = 'comment'; -break; -case 327: - - parser.suggestKeywords(['NULL']); - -break; -case 345: case 567: case 578: case 601: - - parser.suggestKeywords(parser.getTypeKeywords()); - -break; -case 359: case 362: - - parser.suggestKeywords(['COMMENT']); - -break; -case 383: - - parser.suggestKeywords(['KEY']); - -break; -case 393: case 394: case 397: case 423: case 491: case 492: case 496: case 2024: - - parser.suggestKeywords(['BY']); - -break; -case 398: case 401: - - parser.suggestKeywords(['HASH', 'RANGE']); - -break; -case 439: - - parser.suggestKeywords(['VALUE', 'VALUES']); - -break; -case 441: case 447: case 450: case 906: - - parser.suggestFunctions(); - -break; -case 442: - - if ($$[$0].endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - -break; -case 443: case 446: case 449: - - parser.suggestKeywords(['<', '<=']); - -break; -case 444: case 1389: case 1392: - - parser.suggestKeywords(['VALUES']); - -break; -case 475: case 1576: - - parser.suggestKeywords(['AS']); - -break; -case 484: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; - } else if ($$[$0-1] && $$[$0-1].suggestKeywords && !$$[$0]) { - this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; - } - -break; -case 488: -this.$ = { suggestKeywords: ['ESCAPED BY'] }; -break; -case 490: case 495: - - parser.suggestKeywords(['TERMINATED BY']); - -break; -case 500: case 501: - - parser.suggestKeywords(['SERDEPROPERTIES']); - -break; -case 509: - - parser.commitLocations(); - -break; -case 511: case 524: case 540: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 512: case 525: - - if (!$$[$0-6]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 515: - - var keywords = [{value: 'AS', weight: 1 }]; - if (!$$[$0-1]) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - -break; -case 526: case 545: - - parser.suggestKeywords(['RETURNS']); - -break; -case 527: case 546: - - parser.suggestKeywords(['LOCATION']); - -break; -case 528: - - parser.suggestKeywords(['SYMBOL']); - -break; -case 538: case 656: - - parser.suggestKeywords(['FUNCTION']); - -break; -case 539: - - if (!$$[$0-13]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 547: - - if (!$$[$0-1]) { - parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); - } else { - parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); - } - -break; -case 548: - - parser.suggestKeywords(['MERGE_FN']); - -break; -case 549: - - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); - } - -break; -case 568: - - parser.suggestKeywords(['...']); - -break; -case 603: - - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - -break; -case 607: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 623: - - parser.addCommonTableExpressions($$[$0-1]); - -break; -case 640: - - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); - -break; -case 644: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - -break; -case 645: - - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - -break; -case 647: case 652: case 657: - - if (!$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 650: case 651: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 654: - - parser.suggestKeywords(['AGGREGATE']); - -break; -case 667: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['INCREMENTAL']); - -break; -case 673: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['PARTITION']); - -break; -case 677: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 680: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 684: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 685: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 690: - - parser.suggestKeywords(['TABLE']); - -break; -case 691: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 695: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 698: - - parser.suggestKeywords(['FROM']); - if (!$$[$0-1]) { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - -break; -case 701: - - var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; - if (!$$[$0]) { - keywords.push({ value: 'WHERE', weight: 3 }); - } - if ($$[$0-2].suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); - } - if ($$[$0-2].suggestJoins) { - parser.suggestJoins($$[$0-2].suggestJoins); - } - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2)); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 714: case 925: case 927: - - parser.addStatementLocation(_$[$0]); - -break; -case 716: case 717: - - parser.suggestDdlAndDmlKeywords(['EXPLAIN']); - -break; -case 718: - - parser.suggestKeywords(['INSERT', 'SELECT']); - -break; -case 732: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); - this.$ = { selectList: $$[$0] }; - -break; -case 733: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } - -break; -case 734: - - parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); - -break; -case 736: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); - if ($$[$0].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($$[$0]); - } - if ($$[$0].suggestFunctions) { - parser.suggestFunctions(); - } - if ($$[$0].suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($$[$0].suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($$[$0].suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($$[$0].suggestAggregateFunctions && (!$$[$0-2] || $$[$0-2] === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - -break; -case 737: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 738: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - -break; -case 739: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - -break; -case 740: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-3] || $$[$0-3] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-2] && !$$[$0-3]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$$[$0-2]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 741: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-2]); - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 742: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]), _$[$0-3]); - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 743: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - -break; -case 752: case 753: - - this.$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 754: case 1852: case 1853: - - this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 760: - - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - -break; -case 761: case 762: - - parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); - -break; -case 763: case 764: case 765: case 766: case 767: case 768: case 770: case 771: case 772: case 773: case 775: case 776: case 777: case 778: -this.$ = { suggestKeywords: ['JOIN'] }; -break; -case 769: -this.$ = { suggestKeywords: ['OUTER'] }; -break; -case 774: case 779: -this.$ = { suggestKeywords: ['ANTI', 'INNER', 'OUTER', 'SEMI'] }; -break; -case 780: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, true, true, true]), - cursorAtEnd: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] - }; - -break; -case 781: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, true]), - cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] - } - -break; -case 782: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]), - cursorAtEnd: !$$[$0-1] && !$$[$0] - } - -break; -case 783: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [true]), - cursorAtEnd: !$$[$0] - } - -break; -case 798: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - -break; -case 799: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - -break; -case 801: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - -break; -case 804: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, true, true]); - if ($$[$0-6].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 1)); - } - this.$ = parser.getValueExpressionKeywords($$[$0-6], keywords); - this.$.cursorAtEnd = !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if ($$[$0-6].columnReference) { - this.$.columnReference = $$[$0-6].columnReference; - } - if (!$$[$0-4]) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 805: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, true]); - if ($$[$0-5].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 6)); - } - if ($$[$0-5].valueExpression) { - this.$ = parser.getValueExpressionKeywords($$[$0-5].valueExpression, keywords); - if ($$[$0-5].valueExpression.columnReference) { - this.$.columnReference = $$[$0-5].valueExpression.columnReference; - } - } else { - this.$ = { suggestKeywords: keywords }; - } - this.$.cursorAtEnd = !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if (!$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 806: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 807: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]); - if ($$[$0-3].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 4)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 808: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = _$[$0-2]; - -break; -case 812: case 849: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); - -break; -case 813: - - parser.suggestKeywords(['TO GROUP']); - -break; -case 814: case 851: case 2222: case 2223: - - parser.suggestKeywords(['GROUP']); - -break; -case 816: case 853: - - if ($$[$0-1].isCreate) { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); - } else { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - -break; -case 817: - - if ($$[$0-2].isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - -break; -case 820: case 857: case 2202: - - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 821: case 823: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - -break; -case 825: case 2198: - - parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); - -break; -case 834: -this.$ = { isCreate: true }; -break; -case 844: - - parser.suggestKeywords(['GRANT OPTION']); - -break; -case 845: - - parser.suggestKeywords(['OPTION']); - -break; -case 850: - - parser.suggestKeywords(['FROM GROUP']); - -break; -case 854: - - if ($$[$0-2].isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - -break; -case 856: - - parser.suggestKeywords(['FROM']); - -break; -case 862: -this.$ = { selectList: $$[$0] }; -break; -case 863: - - this.$ = $$[$0-1]; - this.$.cursorAtEnd = true; - -break; -case 864: - - parser.selectListNoTableSuggest($$[$0], $$[$0-2]); - -break; -case 865: - - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - -break; -case 871: - - var keywords = $$[$0-2].suggestKeywords && !$$[$0-1] ? parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2) : []; - if (!$$[$0-1]) { - keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) - } else { - keywords = keywords.concat(['SELECT']) - } - parser.suggestKeywords(keywords); - -break; -case 881: - - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - -break; -case 882: - - parser.suggestKeywords(['INTO']); - -break; -case 883: case 889: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 884: - - if (!$$[$0-3]) { - parser.suggestKeywords(['TABLE']); - } - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - -break; -case 886: - - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'upsert'; - } - -break; -case 887: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] }; - } - -break; -case 888: - - parser.suggestKeywords(['INTO', 'OVERWRITE']); - -break; -case 890: - - if (!$$[$0-4]) { - parser.suggestKeywords(['TABLE']); - } - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 892: case 893: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - -break; -case 909: - - parser.suggestKeywords(['DATA INPATH']); - -break; -case 910: - - parser.suggestKeywords(['INPATH']); - -break; -case 912: - - if (!$$[$0-1]) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - -break; -case 913: - - parser.suggestKeywords([ 'TABLE' ]); - -break; -case 922: case 923: - - return parser.yy.result; - -break; -case 924: - - parser.prepareNewStatement(); - -break; -case 926: case 928: - - parser.addStatementLocation(_$[$0-3]); - -break; -case 946: - - parser.suggestDdlAndDmlKeywords(); - -break; -case 1350: case 1353: case 1477: -this.$ = ''; -break; -case 1373: case 1376: - - parser.yy.correlatedSubQuery = false; - -break; -case 1374: case 1378: - - parser.suggestKeywords(['EXISTS']); - -break; -case 1377: - - parser.suggestKeywords(['NOT EXISTS']); - -break; -case 1388: case 1390: case 1391: case 1393: - - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - -break; -case 1426: case 1478: - - parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0] } ] }; - -break; -case 1427: case 1479: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; - -break; -case 1428: - - // This is a special case for expression like "SELECT | FROM db.table.col" - this.$ = { identifierChain: [ { name: $$[$0-3] }, { name: $$[$0-1] } ].concat($$[$0]) }; - -break; -case 1430: case 1444: - - parser.suggestDatabases(); - this.$ = { identifierChain: [{ name: $$[$0-2] }] }; - -break; -case 1431: - - // You can have statements like 'SELECT ... FROM testTable t, t.|' - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 1432: - - // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js - // Issue is that suggestColumns is deleted if no tables are defined and this is - // only cases like "SELECT | FROM db.table.col" - parser.suggestTables({ identifierChain: [{ name: $$[$0-3] }, { name: $$[$0-1] }].concat($$[$0]) }); - -break; -case 1434: - - $$[$0-1].push($$[$0]); - -break; -case 1437: case 1543: case 1863: -this.$ = $$[$0-2]; -break; -case 1439: -this.$ = { name: $$[$0] }; -break; -case 1441: -this.$ = [{ name: $$[$0] }]; -break; -case 1442: -this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; -break; -case 1456: case 1618: case 1619: case 1625: case 1626: case 1937: case 2025: - - parser.valueExpressionSuggest(); - -break; -case 1464: case 1467: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['WITH REPLICATION ='] }; - } - -break; -case 1469: case 2183: - - parser.suggestKeywords(['IN']); - -break; -case 1473: - - parser.suggestKeywords(['REPLICATION =']); - -break; -case 1480: - - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - -break; -case 1481: - - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 1483: -this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; -break; -case 1486: - - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - -break; -case 1487: case 1814: - - parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); - -break; -case 1489: - - this.$ = [ $$[$0].identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 1490: - - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $$[$0-2].push($$[$0].identifier); - parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); - -break; -case 1491: case 1499: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1492: case 1500: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1495: - - parser.suggestColumns({ - identifierChain: $$[$0-2] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 1496: - - parser.suggestColumns({ - identifierChain: $$[$0-4] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 1497: -this.$ = [ $$[$0].identifier ]; -break; -case 1498: - - $$[$0-2].push($$[$0].identifier); - -break; -case 1501: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1502: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1504: - - parser.suggestColumns({ identifierChain: $$[$0-2] }); - -break; -case 1505: - - parser.suggestColumns({ identifierChain: $$[$0-4] }); - -break; -case 1507: -this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; -break; -case 1508: -this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; -break; -case 1509: -this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; -break; -case 1510: -this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; -break; -case 1511: -this.$ = { identifier: { name: $$[$0-3] }}; -break; -case 1536: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1538: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - -break; -case 1539: - - if (!$$[$0-1]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.suggestDatabases(); - -break; -case 1540: - - if (!$$[$0-2]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 1546: - - parser.addCommonTableExpressions($$[$0-3]); - -break; -case 1547: case 1548: case 1572: - - parser.addCommonTableExpressions($$[$0-2]); - -break; -case 1562: - - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - -break; -case 1563: - - parser.suggestKeywords(['ALL', 'DISTINCT']); - -break; -case 1570: -this.$ = $$[$0-2].concat([$$[$0]]); -break; -case 1574: - - parser.addCommonTableExpressions($$[$0-4]); - -break; -case 1575: - - parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); - $$[$0-1].alias = $$[$0-4]; - this.$ = $$[$0-1]; - -break; -case 1582: case 1583: - - parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); - -break; -case 1584: - - var keywords = []; - - parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); - - if ($$[$0-3]) { - if (typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - keywords.push({ value: 'USING', weight: 3 }); - } - if ($$[$0-3].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - } - if ($$[$0-3].tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); - } - if ($$[$0-3].tableReferenceList.suggestJoins) { - parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); - } - if ($$[$0-3].tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if ($$[$0-3].tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($$[$0-3].tableReferenceList); - } - } - } - - if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); - parser.suggestKeywords(keywords); - return; - } - - if ($$[$0-1].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].suggestFilters) { - parser.suggestFilters($$[$0-1].suggestFilters); - } - if ($$[$0-1].suggestGroupBys) { - parser.suggestGroupBys($$[$0-1].suggestGroupBys); - } - if ($$[$0-1].suggestOrderBys) { - parser.suggestOrderBys($$[$0-1].suggestOrderBys); - } - - if ($$[$0-1].empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'ANTI JOIN', weight: 1 }, - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT ANTI JOIN', weight: 1 }, - { value: 'LEFT INNER JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'OUTER JOIN', weight: 1 }, - { value: 'RIGHT ANTI JOIN', weight: 1 }, - { value: 'RIGHT INNER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 }, - { value: 'RIGHT SEMI JOIN', weight: 1 }, - { value: 'SEMI JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - -break; -case 1585: - - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$$[$0-1]) { - parser.addClauseLocation('whereClause', _$[$0-2]); - parser.addClauseLocation('limitClause', _$[$0-2]); - return; - } - parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); - var keywords = []; - - if ($$[$0-1].suggestColRefKeywords) { - parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); - parser.addColRefIfExists($$[$0-1]); - } - - if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - -break; -case 1589: - - this.$ = { tableReferenceList : $$[$0] } - -break; -case 1590: case 1870: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1592: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'WHERE', weight: 9 }, - { value: 'GROUP BY', weight: 8 }, - { value: 'HAVING', weight: 7 }, - { value: 'ORDER BY', weight: 5 }, - { value: 'LIMIT', weight: 3 }, - { value: 'OFFSET', weight: 2 }], - [true, true, true, true, true, true]); - - if (keywords.length > 0) { - this.$ = { suggestKeywords: keywords, empty: !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - } else { - this.$ = {}; - } - - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - -break; -case 1596: - - if ($$[$0].suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1597: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1600: - - this.$ = { valueExpression: $$[$0] }; - -break; -case 1601: case 1640: - - parser.suggestSelectListAliases(); - -break; -case 1602: - - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1603: - - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1630: - - if ($$[$0].emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1631: - - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1635: - - this.$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 1636: case 1637: case 1638: -this.$ = { emptyOrderBy: false }; -break; -case 1639: -this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); -break; -case 1642: - - this.$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 1643: - - this.$ = { suggestKeywords: ['ASC', 'DESC'] }; - -break; -case 1646: - - this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; - -break; -case 1649: - - parser.suggestKeywords(['FIRST', 'LAST']); - -break; -case 1656: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - this.$ = $$[$0]; - -break; -case 1662: case 1667: - - parser.suggestFunctions({ types: ['BIGINT'] }); - -break; -case 1663: case 1668: - - delete parser.yy.result.suggestColumns; - -break; -case 1672: case 1673: - - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1675: - - // verifyType($$[$0], 'NUMBER'); - this.$ = $$[$0]; - $$[$0].types = ['NUMBER']; - -break; -case 1676: case 1677: case 1678: case 1679: case 1680: case 1687: case 1688: case 1689: case 1690: case 1691: case 1692: case 1698: case 1699: case 1720: case 1774: case 1775: case 1837: -this.$ = { types: [ 'BOOLEAN' ] }; -break; -case 1681: - - this.$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - -break; -case 1683: case 1684: case 1685: case 1686: - - parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1693: case 1694: - - // verifyType($$[$0-2], 'BOOLEAN'); - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1695: case 1696: case 1697: - - // verifyType($$[$0-2], 'NUMBER'); - // verifyType($$[$0], 'NUMBER'); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 1703: - - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1704: case 1706: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 1705: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1707: - - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1708: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 1709: - - parser.suggestFunctions(); - parser.suggestColumns(); - this.$ = { types: [ 'T' ] }; - -break; -case 1710: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1711: - - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 1712: - - var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']; - parser.suggestKeywords(keywords); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1713: - - var keywords = ['FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'UNKNOWN']; - parser.suggestKeywords(keywords); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1714: - - parser.suggestKeywords(['FROM']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1715: case 1716: case 1717: - - parser.suggestKeywords(['NOT']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1718: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1719: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1721: - - this.$ = $$[$0-1]; - -break; -case 1722: - - parser.valueExpressionSuggest(); - this.$ = { types: ['T'], typeSet: true }; - -break; -case 1723: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1724: case 1725: case 1726: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1727: case 1728: case 1729: case 1730: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0].types); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1731: case 1733: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1732: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - -break; -case 1734: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; - -break; -case 1735: case 1736: case 1737: case 1738: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1739: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-3].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1740: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1741: case 1742: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; -break; -case 1743: case 1744: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; -break; -case 1745: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-3].suggestFilters }; - -break; -case 1746: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1747: case 1751: - - parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1748: - - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1749: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 1750: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1752: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1753: case 1755: case 1757: case 1759: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - -break; -case 1754: case 1758: - - parser.addColRefIfExists($$[$0]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1756: case 1760: - - parser.addColRefIfExists($$[$0-2]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1761: case 1762: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 1763: case 1764: case 1765: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1766: case 1767: case 1768: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions(['NUMBER']); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 1769: case 1770: case 1771: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1772: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1773: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 1776: - - parser.valueExpressionSuggest(undefined, $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1777: - - parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1779: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1781: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1782: - - this.$ = $$[$0]; - this.$.suggestFilters = $$[$0-1].suggestFilters; - -break; -case 1783: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1784: case 2071: case 2076: case 2077: -this.$ = { types: [ 'T' ] }; -break; -case 1785: case 1787: - - $$[$0].position = 1; - -break; -case 1786: - - $$[$0].position = $$[$0-2].position + 1; - this.$ = $$[$0]; - -break; -case 1788: - - $$[$0-2].position += 1; - -break; -case 1789: - - $$[$0-2].position = 1; - -break; -case 1790: - - $$[$0-4].position += 1; - -break; -case 1791: - - parser.valueExpressionSuggest(); - $$[$0-2].position += 1; - -break; -case 1792: - - parser.valueExpressionSuggest(); - $$[$0-4].position += 1; - -break; -case 1793: - - parser.suggestValueExpressionKeywords($$[$0-3]); - -break; -case 1794: case 1795: - - parser.valueExpressionSuggest(); - this.$ = { cursorAtStart : true, position: 1 }; - -break; -case 1796: case 1797: - - parser.valueExpressionSuggest(); - this.$ = { position: 2 }; - -break; -case 1801: -this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; -break; -case 1802: - - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].expression) { - this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } - } else { - this.$ = { function: fn, types: parser.findReturnTypes(fn) } - } - -break; -case 1803: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1805: -this.$ = { types: [ 'NULL' ] }; -break; -case 1806: -this.$ = { types: [ 'TIMESTAMP' ] }; -break; -case 1808: - - if ($$[$0].suggestKeywords) { - this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; - } else { - this.$ = { types: ['COLREF'], columnReference: $$[$0] }; - } - -break; -case 1809: - - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); - } - this.$ = { types: parser.findReturnTypes(fn) }; - -break; -case 1810: case 1985: case 1986: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-1]) }; - -break; -case 1813: - - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; - this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } - -break; -case 1817: - - parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); - -break; -case 1822: - - parser.suggestValues($$[$0]); - -break; -case 1823: -this.$ = { types: [ 'NUMBER' ] }; -break; -case 1829: case 1831: -this.$ = $$[$0-1] + $$[$0]; -break; -case 1830: -this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; -break; -case 1835: case 1836: - - if (/\$\{[^}]*\}/.test($$[$0])) { - parser.addVariableLocation(_$[$0], $$[$0]); - this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } - } else { - this.$ = { types: [ 'STRING' ] } - } - -break; -case 1838: - - this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 1839: - - this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 1844: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); - } else { - this.$ = { valueExpression: $$[$0-1] } - } - -break; -case 1845: - - parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); - this.$ = { asterisk: true } - -break; -case 1846: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - } - -break; -case 1847: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); - this.$ = { suggestAggregateFunctions: true }; - -break; -case 1849: -this.$ = [ $$[$0] ]; -break; -case 1850: - - $$[$0-2].push($$[$0]); - -break; -case 1855: - - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 1856: - - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 1857: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 1859: case 1860: case 1862: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - -break; -case 1873: - - this.$ = $$[$0]; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - this.$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - -break; -case 1880: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-3]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 1881: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-4]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 1882: -this.$ = { joinType: $$[$0-1] }; -break; -case 1883: -this.$ = { joinType: $$[$0-2] }; -break; -case 1887: - - if ($$[$0-3].suggestKeywords) { - parser.suggestKeywords($$[$0-3].suggestKeywords); - } - -break; -case 1891: - - if (!$$[$0-2]) { - parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); - } - if (!$$[$0-2] && parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $$[$0-3], - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 1896: -this.$ = 'JOIN'; -break; -case 1897: -this.$ = 'ANTI JOIN'; -break; -case 1898: -this.$ = 'CROSS JOIN'; -break; -case 1899: -this.$ = 'INNER JOIN'; -break; -case 1900: -this.$ = 'OUTER JOIN'; -break; -case 1901: -this.$ = 'SEMI JOIN'; -break; -case 1902: -this.$ = 'FULL JOIN'; -break; -case 1903: -this.$ = 'FULL OUTER JOIN'; -break; -case 1904: -this.$ = 'LEFT JOIN'; -break; -case 1905: -this.$ = 'LEFT ANTI JOIN'; -break; -case 1906: -this.$ = 'LEFT INNER JOIN'; -break; -case 1907: -this.$ = 'LEFT OUTER JOIN'; -break; -case 1908: -this.$ = 'LEFT SEMI JOIN'; -break; -case 1909: -this.$ = 'RIGHT JOIN'; -break; -case 1910: -this.$ = 'RIGHT ANTI JOIN'; -break; -case 1911: case 1912: -this.$ = 'RIGHT OUTER JOIN'; -break; -case 1913: -this.$ = 'RIGHT SEMI JOIN'; -break; -case 1914: -this.$ = { noJoinCondition: true, suggestKeywords: ['ON', 'USING'] }; -break; -case 1915: -this.$ = { valueExpression: $$[$0] }; -break; -case 1920: - - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - -break; -case 1921: - - this.$ = { - primary: $$[$0-2] - } - if ($$[$0-2].identifierChain) { - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - parser.addTablePrimary($$[$0-2]); - } - var keywords = []; - if ($$[$0] && $$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } else if (!$$[$0-1] && !$$[$0]) { - keywords = [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }]; - } else if (!$$[$0]) { - keywords = [{ value: 'TABLESAMPLE', weight: 3 }]; - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 1922: - - this.$ = { - primary: $$[$0-2] - }; - - if ($$[$0-1]) { - this.$.primary.alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - - var keywords = []; - if ($$[$0] && $$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } else { - keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [true, true]); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 1923: - - if ($$[$0-1]) { - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - -break; -case 1924: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - parser.addTablePrimary($$[$0-2]); - -break; -case 1925: - - if ($$[$0-1]) { - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias); - } - -break; -case 1932: -this.$ = { suggestKeywords: ['REPEATABLE()'] }; -break; -case 1934: - - parser.suggestKeywords(['SYSTEM()']); - -break; -case 1939: - - parser.pushQueryState(); - -break; -case 1940: - - parser.popQueryState(); - -break; -case 1942: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - this.$ = $$[$0-2]; - -break; -case 1945: - - var subQuery = parser.getSubQuery($$[$0]); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - this.$ = subQuery; - -break; -case 1962: case 1963: case 1964: case 1965: -this.$ = { alias: $$[$0], location: _$[$0] }; -break; -case 1971: - - if (!$$[$0]) { - $$[$0-1].suggestKeywords = ['OVER']; - } - -break; -case 1979: - - parser.suggestKeywords(['OVER']); - -break; -case 1983: case 1984: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1995: -this.$ = { expression: $$[$0-1] }; -break; -case 1996: - - parser.valueExpressionSuggest(); - this.$ = { position: 1 } - -break; -case 1997: - - parser.suggestValueExpressionKeywords($$[$0-1]); - -break; -case 2005: case 2083: case 2124: -this.$ = { types: parser.findReturnTypes($$[$0-2]) }; -break; -case 2006: -this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; -break; -case 2007: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-3], 1); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2008: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2009: - - parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2017: case 2018: - - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - -break; -case 2019: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$$[$0-2]) { - parser.suggestKeywords(['PARTITION BY']); - } - -break; -case 2020: - - if (!$$[$0-1]) { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - -break; -case 2029: - - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - -break; -case 2030: - - var keywords = []; - if ($$[$0-2].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - } - if (!$$[$0]) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - -break; -case 2036: - - parser.suggestKeywords(['BETWEEN']); - -break; -case 2037: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['AND']); - } - -break; -case 2042: - - lexer.popState(); - -break; -case 2043: - - lexer.begin('hdfs'); - -break; -case 2045: - - parser.suggestHdfs({ path: $$[$0-3] }); - -break; -case 2046: - - parser.suggestHdfs({ path: $$[$0-2] }); - -break; -case 2047: - - parser.suggestHdfs({ path: $$[$0-1] }); - -break; -case 2048: - - parser.suggestHdfs({ path: '' }); - -break; -case 2049: - - parser.suggestHdfs({ path: '' }); - -break; -case 2055: - - parser.suggestKeywords(['PRECEDING']); - -break; -case 2056: case 2061: - - parser.suggestKeywords(['ROW']); - -break; -case 2060: - - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - -break; -case 2062: - - parser.suggestKeywords(['FOLLOWING']); - -break; -case 2068: - - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 2069: - - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 2070: case 2075: -this.$ = { types: [ $$[$0-1].toUpperCase() ] }; -break; -case 2072: - - parser.valueExpressionSuggest(); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 2073: case 2074: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ] }; - -break; -case 2078: - - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 2079: - - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ 'T' ] }; - -break; -case 2080: case 2081: - - parser.suggestKeywords(parser.getTypeKeywords()); - this.$ = { types: [ 'T' ] }; - -break; -case 2082: case 2088: -this.$ = { types: parser.findReturnTypes($$[$0-3]) }; -break; -case 2084: case 2089: case 2123: -this.$ = { types: parser.findReturnTypes($$[$0-4]) }; -break; -case 2085: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2086: case 2091: case 2126: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2087: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - } - parser.suggestKeywords(keywords); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2090: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2092: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2109: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2110: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2111: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2112: - - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2113: - - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2114: - - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2115: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2116: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2117: - - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2118: - - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2119: - - if ($$[$0-3].types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($$[$0-3], ['FROM']); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2120: - - if ($$[$0-2].types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($$[$0-2], ['FROM']); - } else { - parser.suggestValueExpressionKeywords($$[$0-2]); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2125: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2127: - - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2151: - - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'CREATE VIEW', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'GRANT USER', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); - -break; -case 2152: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'CREATE VIEW', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); - -break; -case 2153: - - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); - -break; -case 2167: case 2184: case 2216: case 2218: case 2227: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2171: - - if ($$[$0-1].isView) { - parser.suggestTables({ onlyViews: true }); - } else { - parser.suggestTables(); - } - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2172: - - if (parser.yy.result.suggestTables && $$[$0-1].isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 2173: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['TABLE', 'VIEW']); - -break; -case 2175: -this.$ = { isView: true }; -break; -case 2177: - - parser.suggestKeywords([ 'ROLES' ]); - -break; -case 2178: - - parser.suggestKeywords([ 'CURRENT' ]); - -break; -case 2181: - - parser.suggestKeywords(['LIKE']); - -break; -case 2188: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['IN']); - -break; -case 2191: case 2194: - - parser.suggestKeywords(['FUNCTIONS']); - -break; -case 2192: case 2195: - - parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); - -break; -case 2193: case 2232: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 2196: - - if (!$$[$0-2]) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 2204: - - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - -break; -case 2205: - - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - -break; -case 2207: - - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestTables(); - -break; -case 2221: - - parser.suggestKeywords(['GRANT']); - -break; -case 2238: - - if (!$$[$0-1] && !$$[$0-2]) { - parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); - } else if (!$$[$0-1] && $$[$0-2]) { - var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; - if ($$[$0-2].suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); - } - if ($$[$0-2].suggestJoins) { - parser.suggestJoins($$[$0-2].suggestJoins); - } - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); - } - parser.suggestKeywords(keywords); - } else if (!$$[$0-1]) { - parser.suggestKeywords([ 'WHERE' ]); - } - -break; -case 2239: - - parser.suggestKeywords([ 'SET' ]); - -break; -case 2255: - - parser.suggestKeywords([ '=' ]); - -break; -case 2264: - - if (!parser.yy.cursorFound) { - parser.yy.result.useDatabase = $$[$0]; - } - -break; -case 2267: -this.$ = { inValueEdit: true }; -break; -case 2268: -this.$ = { inValueEdit: true, cursorAtStart: true }; -break; -case 2269: case 2270: case 2271: case 2272: case 2273: -this.$ = { suggestKeywords: ['NOT'] }; -break; -case 2279: case 2280: case 2281: case 2282: case 2283: - - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - this.$ = { types: ['BOOLEAN'] } - -break; -case 2284: case 2286: -this.$ = parser.findCaseType($$[$0-1]); -break; -case 2285: case 2288: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2287: - - parser.suggestValueExpressionKeywords($$[$0-1], ['END']); - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2289: -this.$ = parser.findCaseType($$[$0-2]); -break; -case 2290: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2291: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-2]); - -break; -case 2292: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - this.$.suggestFilters = $$[$0-1].suggestFilters - -break; -case 2293: - - parser.valueExpressionSuggest(); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2294: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 2295: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = $$[$0-1]; - -break; -case 2296: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ] }; - -break; -case 2299: -this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; -break; -case 2300: - - $$[$0-1].caseTypes.push($$[$0]); - this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; - -break; -case 2304: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - -break; -case 2307: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; -break; -case 2308: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 2309: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 2310: case 2311: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; -break; -case 2312: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2313: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [$$[$0]] }; - -break; -case 2314: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2315: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2316: case 2318: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 2317: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 2319: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; - -break; -case 2320: - - parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2321: - - parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2322: case 2323: case 2324: case 2325: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -} -}, -table: [o($V0,$V1,{501:1,406:2}),{1:[3]},o($V2,$V3,{402:3,502:4,403:6,404:7,407:8,3:394,363:395,137:396,410:397,239:398,371:399,408:400,16:401,368:402,140:403,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,364:417,365:418,366:419,367:420,411:421,17:426,18:427,19:428,20:429,21:430,22:431,23:432,24:433,25:434,28:435,29:436,369:437,370:438,372:439,374:440,375:441,419:442,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,376:455,377:456,378:457,379:458,380:459,381:460,382:461,994:464,995:465,996:466,997:467,998:468,999:469,1000:470,1001:471,1002:472,1003:473,1004:474,1005:475,373:477,34:481,35:482,36:483,37:484,166:486,167:487,168:488,169:489,383:491,384:492,385:493,386:494,387:495,388:496,1007:499,1008:500,1009:501,1010:502,1011:503,1012:504,1013:505,1014:506,1015:507,1016:508,1017:509,472:510,43:511,135:512,312:514,313:515,471:517,72:518,139:519,314:520,315:521,477:522,473:523,482:524,483:525,480:526,481:527,2:$V4,26:$V5,27:$V6,38:$V7,41:$V8,50:$V9,51:$Va,54:$Vb,63:$Vc,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$Vi,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$Vx,149:$Vy,151:$Vz,153:$VA,155:$VB,158:$VC,170:$VD,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,265:$VR,269:$VS,276:$VT,278:$VU,288:$VV,289:$VW,290:$VX,292:$VY,293:$VZ,294:$V_,295:$V$,296:$V01,301:$V11,302:$V21,304:$V31,305:$V41,307:$V51,316:$V61,322:$V71,342:$V81,343:$V91,344:$Va1,345:$Vb1,348:$Vc1,349:$Vd1,350:$Ve1,351:$Vf1,352:$Vg1,353:$Vh1,354:$Vi1,360:$Vj1,362:$Vk1,391:$Vl1,392:$Vm1,393:$Vn1,395:$Vo1,409:$Vp1,412:$Vq1,426:$Vr1,428:$Vs1,429:$Vt1,430:$Vu1,431:$Vv1,432:$Vw1,433:$Vx1,434:$Vy1,435:$Vz1,436:$VA1,453:$VB1,454:$VC1,462:$VD1,463:$VE1,464:$VF1,466:$VG1,467:$VH1,484:$VI1,485:$VJ1,489:$VK1,490:$VL1,495:$VM1,496:$VN1,497:$VO1,504:$VP1,505:$VQ1,506:$VR1,507:$VS1,508:$VT1,509:$VU1,510:$VV1,511:$VW1,512:$VX1,513:$VY1,514:$VZ1,515:$V_1,516:$V$1,517:$V02,518:$V12,519:$V22,520:$V32,521:$V42,522:$V52,523:$V62,524:$V72,525:$V82,526:$V92,527:$Va2,528:$Vb2,529:$Vc2,530:$Vd2,531:$Ve2,532:$Vf2,533:$Vg2,534:$Vh2,535:$Vi2,536:$Vj2,537:$Vk2,538:$Vl2,539:$Vm2,540:$Vn2,541:$Vo2,542:$Vp2,543:$Vq2,544:$Vr2,545:$Vs2,546:$Vt2,547:$Vu2,548:$Vv2,549:$Vw2,550:$Vx2,551:$Vy2,552:$Vz2,553:$VA2,554:$VB2,555:$VC2,556:$VD2,557:$VE2,558:$VF2,559:$VG2,560:$VH2,561:$VI2,562:$VJ2,563:$VK2,564:$VL2,565:$VM2,566:$VN2,567:$VO2,568:$VP2,569:$VQ2,570:$VR2,571:$VS2,572:$VT2,573:$VU2,574:$VV2,575:$VW2,576:$VX2,577:$VY2,578:$VZ2,579:$V_2,580:$V$2,581:$V03,582:$V13,583:$V23,584:$V33,585:$V43,586:$V53,587:$V63,588:$V73,589:$V83,590:$V93,591:$Va3,592:$Vb3,593:$Vc3,594:$Vd3,595:$Ve3,596:$Vf3,597:$Vg3,598:$Vh3,599:$Vi3,600:$Vj3,601:$Vk3,602:$Vl3,603:$Vm3,604:$Vn3,605:$Vo3,606:$Vp3,607:$Vq3,608:$Vr3,609:$Vs3,610:$Vt3,611:$Vu3,612:$Vv3,613:$Vw3,614:$Vx3,615:$Vy3,616:$Vz3,617:$VA3,618:$VB3,619:$VC3,620:$VD3,621:$VE3,622:$VF3,623:$VG3,624:$VH3,625:$VI3,626:$VJ3,627:$VK3,628:$VL3,629:$VM3,630:$VN3,631:$VO3,632:$VP3,633:$VQ3,634:$VR3,635:$VS3,636:$VT3,637:$VU3,638:$VV3,639:$VW3,640:$VX3,641:$VY3,642:$VZ3,643:$V_3,644:$V$3,645:$V04,646:$V14,647:$V24,648:$V34,649:$V44,650:$V54,651:$V64,652:$V74,653:$V84,654:$V94,655:$Va4,656:$Vb4,657:$Vc4,658:$Vd4,659:$Ve4,660:$Vf4,661:$Vg4,662:$Vh4,663:$Vi4,664:$Vj4,665:$Vk4,666:$Vl4,667:$Vm4,668:$Vn4,669:$Vo4,670:$Vp4,671:$Vq4,672:$Vr4,673:$Vs4,674:$Vt4,675:$Vu4,676:$Vv4,677:$Vw4,678:$Vx4,679:$Vy4,680:$Vz4,681:$VA4,682:$VB4,683:$VC4,684:$VD4,685:$VE4,686:$VF4,687:$VG4,688:$VH4,689:$VI4,690:$VJ4,691:$VK4,692:$VL4,693:$VM4,694:$VN4,695:$VO4,696:$VP4,697:$VQ4,698:$VR4,699:$VS4,700:$VT4,701:$VU4,702:$VV4,703:$VW4,704:$VX4,705:$VY4,706:$VZ4,707:$V_4,708:$V$4,709:$V05,710:$V15,711:$V25,712:$V35,713:$V45,714:$V55,715:$V65,716:$V75,717:$V85,718:$V95,719:$Va5,720:$Vb5,721:$Vc5,722:$Vd5,723:$Ve5,724:$Vf5,725:$Vg5,726:$Vh5,727:$Vi5,728:$Vj5,729:$Vk5,730:$Vl5,731:$Vm5,732:$Vn5,733:$Vo5,734:$Vp5,735:$Vq5,736:$Vr5,737:$Vs5,738:$Vt5,739:$Vu5,740:$Vv5,741:$Vw5,742:$Vx5,743:$Vy5,744:$Vz5,745:$VA5,746:$VB5,747:$VC5,748:$VD5,749:$VE5,750:$VF5,751:$VG5,752:$VH5,753:$VI5,754:$VJ5,755:$VK5,756:$VL5,757:$VM5,758:$VN5,759:$VO5,760:$VP5,761:$VQ5,762:$VR5,763:$VS5,764:$VT5,765:$VU5,766:$VV5,767:$VW5,768:$VX5,769:$VY5,770:$VZ5,771:$V_5,772:$V$5,773:$V06,774:$V16,775:$V26,776:$V36,777:$V46,778:$V56,779:$V66,780:$V76,781:$V86,782:$V96,783:$Va6,784:$Vb6,785:$Vc6,786:$Vd6,787:$Ve6,788:$Vf6,789:$Vg6,790:$Vh6,791:$Vi6,792:$Vj6,793:$Vk6,794:$Vl6,795:$Vm6,797:$Vn6,840:$Vo6,1006:$Vp6,1021:$Vq6,1035:$Vr6}),{405:[1,531],500:[1,530]},{500:[1,532]},o($V2,[2,711]),{2:[1,533]},o($V2,[2,714]),{405:[1,534],500:[2,925]},{2:[2,947]},{2:[2,948]},{2:[2,949]},{2:[2,950]},{2:[2,951]},{2:[2,952]},{2:[2,953]},{2:[2,954]},{2:[2,955]},{2:[2,956]},{2:[2,957]},{2:[2,958]},{2:[2,959]},{2:[2,960]},{2:[2,961]},{2:[2,962]},{2:[2,963]},{2:[2,964]},{2:[2,965]},{2:[2,966]},{2:[2,967]},{2:[2,968]},{2:[2,969]},{2:[2,970]},{2:[2,971]},{2:[2,972]},{2:[2,973]},{2:[2,974]},{2:[2,975]},{2:[2,976]},{2:[2,977]},{2:[2,978]},{2:[2,979]},{2:[2,980]},{2:[2,981]},{2:[2,982]},{2:[2,983]},{2:[2,984]},{2:[2,985]},{2:[2,986]},{2:[2,987]},{2:[2,988]},{2:[2,989]},{2:[2,990]},{2:[2,991]},{2:[2,992]},{2:[2,993]},{2:[2,994]},{2:[2,995]},{2:[2,996]},{2:[2,997]},{2:[2,998]},{2:[2,999]},{2:[2,1000]},{2:[2,1001]},{2:[2,1002]},{2:[2,1003]},{2:[2,1004]},{2:[2,1005]},{2:[2,1006]},{2:[2,1007]},{2:[2,1008]},{2:[2,1009]},{2:[2,1010]},{2:[2,1011]},{2:[2,1012]},{2:[2,1013]},{2:[2,1014]},{2:[2,1015]},{2:[2,1016]},{2:[2,1017]},{2:[2,1018]},{2:[2,1019]},{2:[2,1020]},{2:[2,1021]},{2:[2,1022]},{2:[2,1023]},{2:[2,1024]},{2:[2,1025]},{2:[2,1026]},{2:[2,1027]},{2:[2,1028]},{2:[2,1029]},{2:[2,1030]},{2:[2,1031]},{2:[2,1032]},{2:[2,1033]},{2:[2,1034]},{2:[2,1035]},{2:[2,1036]},{2:[2,1037]},{2:[2,1038]},{2:[2,1039]},{2:[2,1040]},o($Vs6,$Vt6,{394:535,398:536,396:537,399:538,913:539,914:540,915:541,916:542,917:543,918:544,926:545,927:546,928:547,929:548,130:549,881:550,131:551,885:552,40:553,813:555,172:556,503:560,2:$Vu6,41:$Vv6,64:$Vw6,89:$Vx6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$VF6}),{2:[2,1042]},{2:[2,1043]},{2:[2,1044]},{2:[2,1045]},{2:[2,1046]},{2:[2,1047]},{2:[2,1048]},{2:[2,1049]},{2:[2,1050]},{2:[2,1051]},{2:[2,1052]},{2:[2,1053]},{2:[2,1054]},{2:[2,1055]},{2:[2,1056]},{2:[2,1057]},{2:[2,1058]},{2:[2,1059]},{2:[2,1060]},{2:[2,1061]},{2:[2,1062]},{2:[2,1063]},{2:[2,1064]},{2:[2,1065]},{2:[2,1066]},{2:[2,1067]},{2:[2,1068]},{2:[2,1069]},{2:[2,1070]},{2:[2,1071]},{2:[2,1072]},{2:[2,1073]},{2:[2,1074]},{2:[2,1075]},{2:[2,1076]},{2:[2,1077]},{2:[2,1078]},{2:[2,1079]},{2:[2,1080]},{2:[2,1081]},{2:[2,1082]},{2:[2,1083]},{2:[2,1084]},{2:[2,1085]},{2:[2,1086]},{2:[2,1087]},{2:[2,1088]},{2:[2,1089]},{2:[2,1090]},{2:$VG6,27:$VH6,38:$VI6,63:$VJ6,147:$VK6,170:$VL6,360:$VM6,412:$VN6,426:$VO6,455:569,459:571,464:$VP6},{2:[2,1092]},{2:[2,1093]},{2:[2,1094]},{2:[2,1095]},{2:[2,1096]},{2:[2,1097]},{2:[2,1098]},{2:[2,1099]},{2:[2,1100]},{2:[2,1101]},{2:[2,1102]},{2:[2,1103]},{2:[2,1104]},{2:[2,1105]},{2:[2,1106]},{2:[2,1107]},{2:[2,1108]},{2:[2,1109]},{2:[2,1110]},{2:[2,1111]},{2:[2,1112]},{2:[2,1113]},{2:[2,1114]},{2:[2,1115]},{2:[2,1116]},{2:[2,1117]},{2:[2,1118]},{2:[2,1119]},{2:[2,1120]},{2:[2,1121]},{2:[2,1122]},{2:[2,1123]},{2:[2,1124]},{2:[2,1125]},{2:[2,1126]},{2:[2,1127]},{2:[2,1128]},{2:[2,1129]},{2:[2,1130]},{2:[2,1131]},{2:[2,1132]},{2:[2,1133]},{2:[2,1134]},{2:[2,1135]},{2:[2,1136]},{2:[2,1137]},{2:[2,1138]},{2:[2,1139]},{2:[2,1140]},{2:[2,1141]},{2:[2,1142]},{2:[2,1143]},{2:[2,1144]},{2:[2,1145]},{2:[2,1146]},{2:[2,1147]},{2:[2,1148]},{2:[2,1149]},{2:[2,1150]},{2:[2,1151]},{2:[2,1152]},{2:[2,1153]},{2:[2,1154]},{2:[2,1155]},{2:[2,1156]},{2:[2,1157]},{2:[2,1158]},{2:[2,1159]},{2:[2,1160]},{2:[2,1161]},{2:[2,1162]},{2:[2,1163]},{2:[2,1164]},{2:[2,1165]},{2:[2,1166]},{2:[2,1167]},{2:[2,1168]},{2:[2,1169]},{2:[2,1170]},{2:[2,1171]},{2:[2,1172]},{2:[2,1173]},{2:[2,1174]},{2:[2,1175]},{2:[2,1176]},{2:[2,1177]},{2:[2,1178]},{2:[2,1179]},{2:[2,1180]},{2:[2,1181]},{2:[2,1182]},{2:[2,1183]},{2:[2,1184]},{2:[2,1185]},{2:[2,1186]},{2:[2,1187]},{2:[2,1188]},{2:[2,1189]},{2:[2,1190]},{2:[2,1191]},{2:[2,1192]},{2:[2,1193]},{2:[2,1194]},{2:[2,1195]},{2:[2,1196]},{2:[2,1197]},{2:[2,1198]},{2:[2,1199]},{2:[2,1200]},{2:[2,1201]},{2:[2,1202]},{2:[2,1203]},{2:[2,1204]},{2:[2,1205]},{2:[2,1206]},{2:[2,1207]},{2:[2,1208]},{2:[2,1209]},{2:[2,1210]},{2:[2,1211]},{2:[2,1212]},{2:[2,1213]},{2:[2,1214]},{2:[2,1215]},{2:[2,1216]},{2:[2,1217]},{2:[2,1218]},{2:[2,1219]},{2:[2,1220]},{2:[2,1221]},{2:[2,1222]},{2:[2,1223]},{2:[2,1224]},{2:[2,1225]},{2:[2,1226]},{2:[2,1227]},{2:[2,1228]},{2:[2,1229]},{2:[2,1230]},{2:[2,1231]},{2:[2,1232]},{2:[2,1233]},{2:[2,1234]},{2:[2,1235]},{2:[2,1236]},{2:[2,1237]},{2:[2,1238]},{2:[2,1239]},{2:[2,1240]},{2:[2,1241]},{2:[2,1242]},{2:[2,1243]},{2:[2,1244]},{2:[2,1245]},{2:[2,1246]},{2:[2,1247]},{2:[2,1248]},{2:[2,1249]},{2:[2,1250]},{2:[2,1251]},{2:[2,1252]},{2:$VQ6,27:$VR6,41:$Vv6,64:$Vw6,172:582,242:$Vy6,254:$Vz6,425:580,426:$VS6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{2:[2,1254]},{2:[2,1255]},{2:[2,1256]},{2:[2,1257]},{2:[2,1258]},{2:[2,1259]},{2:[2,1260]},{2:[2,1261]},{2:[2,1262]},{2:[2,1263]},{2:[2,1264]},{2:[2,1265]},{2:[2,1266]},{2:[2,1267]},{2:[2,1268]},{2:[2,1269]},{2:[2,1270]},{2:[2,1271]},{2:[2,1272]},{2:[2,1273]},{2:[2,1274]},{2:[2,1275]},{2:[2,1276]},{2:[2,1277]},{2:[2,1278]},{2:[2,1279]},{2:[2,1280]},{2:[2,1281]},{2:[2,1282]},{2:[2,1283]},{2:[2,1284]},{2:[2,1285]},{2:[2,1286]},{2:[2,1287]},{2:[2,1288]},{2:[2,1289]},{2:[2,1290]},{2:[2,1291]},{2:[2,1292]},{2:[2,1293]},{2:[2,1294]},{2:[2,1295]},{2:[2,1296]},{2:[2,1297]},{2:[2,1298]},{2:[2,1299]},{2:[2,1300]},{2:[2,1301]},{2:[2,1302]},{2:[2,1303]},{2:[2,1304]},{2:[2,1305]},{2:[2,1306]},{2:[2,1307]},{2:[2,1308]},{2:[2,1309]},{2:[2,1310]},{2:[2,1311]},{2:[2,1312]},{2:[2,1313]},{2:[2,1314]},{2:[2,1315]},{2:[2,1316]},{2:[2,1317]},{2:[2,1318]},{2:[2,1319]},{2:[2,1320]},{2:[2,1321]},{2:[2,1322]},{2:[2,1323]},{2:[2,1324]},{2:[2,1325]},{2:[2,1326]},{2:[2,1327]},{2:[2,1328]},{2:[2,1329]},{2:[2,1330]},{2:[2,1331]},o($V2,[2,929]),o($V2,[2,930]),o($V2,[2,931]),{3:583,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,16:586,17:426,18:427,19:428,20:429,21:430,22:431,23:432,24:433,25:434,26:[1,590],28:435,29:436,30:443,31:444,32:445,33:446,34:481,35:482,36:483,37:484,38:$V7,43:511,63:$Vc,72:518,86:$Vi,135:512,137:585,139:519,140:588,147:$Vx,153:$VA,155:$VB,161:450,162:451,163:452,164:453,165:454,166:486,167:487,168:488,169:489,170:$VD,307:$V51,312:514,313:515,314:520,315:521,363:584,364:417,365:418,366:419,367:420,368:587,369:437,370:438,371:589,372:439,373:477,374:440,375:441,376:455,377:456,378:457,379:458,380:459,381:460,382:461,383:491,384:492,385:493,386:494,387:495,388:496,392:$Vm1,393:[1,592],411:421,412:$Vq1,419:442,453:[1,591],464:$VF1,467:$VH1,471:517,472:510,473:523,477:522,480:526,481:527,482:524,483:525,484:$VI1,495:$VM1,840:$Vo6,994:464,995:465,996:466,997:467,998:468,999:469,1000:470,1001:471,1002:472,1003:473,1004:474,1005:475,1006:$Vp6,1007:499,1008:500,1009:501,1010:502,1011:503,1012:504,1013:505,1014:506,1015:507,1016:508,1017:509,1021:$Vq6,1035:$Vr6},o($V2,[2,717],{2:[1,593]}),{27:[1,594],89:$VT6,370:597,373:599,411:595,412:$Vq1,419:598,464:$VF1,471:517,472:510,473:523,477:522,480:526,481:527,482:524,483:525,484:$VI1},o($V2,[2,719],{4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,364:417,365:418,366:419,367:420,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,376:455,377:456,378:457,379:458,380:459,381:460,382:461,994:464,995:465,996:466,997:467,998:468,999:469,1000:470,1001:471,1002:472,1003:473,1004:474,1005:475,373:477,312:514,313:515,471:517,480:526,481:527,3:600,363:601,137:602,411:603,371:604,43:619,135:620,473:626,26:$VU6,38:$VV6,63:$VW6,86:$VX6,147:$VY6,153:$VZ6,155:$V_6,170:$V$6,307:$V07,392:$V17,393:$V27,412:$V37,453:$V47,464:$V57,467:$V67,484:$V77,495:$V87,840:$V97,1006:$Va7,1021:$Vb7,1035:$Vc7}),o($V2,[2,720]),o($V2,[2,721]),o($V2,[2,722]),o($V2,[2,723]),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,617]),o($V2,[2,618]),o($V2,[2,619]),o($V2,[2,620]),o($Vd7,$Ve7,{475:629,478:630,841:631,842:632,843:633,844:634,772:$Vf7}),o($Vg7,$Vh7,{27:[1,636]}),o([2,51,91,95,238,395,405,454,500,620,650,683,772,790,878],$Vi7),o([2,41,51,54,64,73,89,91,95,136,138,146,179,180,208,224,236,237,238,241,242,254,278,362,392,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,507,508,509,511,513,514,516,518,521,526,527,530,541,542,557,579,587,589,598,601,602,617,620,623,625,626,634,635,650,659,662,669,674,682,683,707,720,744,745,746,753,759,770,772,775,776,779,780,783,784,785,788,790,795,878,963],[2,1337]),{40:641,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,845:637,846:638,847:639,848:640},o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),o($V2,[2,19]),o($V2,[2,20]),o($V2,[2,21]),o($V2,[2,23]),o($V2,[2,24]),o($V2,[2,621]),o($V2,[2,622]),o($V2,$Vk7,{471:517,480:526,481:527,473:626,373:643,411:645,89:$Vl7,412:$V37,464:$V57,484:$V77}),o($V2,[2,625]),o($V2,[2,626]),o($Vm7,$Ve7,{843:633,475:646,841:647,772:$Vn7}),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,27]),o($V2,[2,28]),{27:[1,652],40:553,41:$Vv6,64:$Vw6,130:649,131:653,149:[1,650],151:$Vo7,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},{27:[1,655],154:[1,654]},{27:[1,658],66:[1,656],158:[1,657]},o($V2,[2,231]),o($V2,[2,232]),o($V2,[2,233]),o($V2,[2,234]),o($V2,[2,235]),o($V2,[2,627]),o($V2,[2,628]),o($V2,[2,629]),o($V2,[2,630]),o($V2,[2,631]),o($V2,[2,632]),o($V2,[2,633]),{27:[1,661],38:$VI6,63:$VJ6,147:$VK6,170:$VL6,360:[1,659],412:$VN6,426:$VO6,455:660,459:662,464:$VP6},o($Vp7,$Vq7,{805:663,143:[1,664],599:$Vr7,611:$Vs7}),o($V2,[2,2139]),o($V2,[2,2140]),o($V2,[2,2141]),o($V2,[2,2142]),o($V2,[2,2143]),o($V2,[2,2144]),o($V2,[2,2145]),o($V2,[2,2146]),o($V2,[2,2147]),o($V2,[2,2148]),o($V2,[2,2149]),o($V2,[2,2150]),{27:[1,668],41:$Vv6,64:$Vw6,172:667,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},o($V2,[2,858]),{27:[1,670],496:[1,669]},{27:[1,673],40:680,41:$Vv6,58:678,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:681,828:679,829:676,830:677,1022:671,1025:672,1028:674,1029:675},o([2,27,41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,424,462,463,466,504,505,507,508,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,747,753,770,775,776,779,780,783,784,785,795,797,963],$Vt7,{413:682,426:$Vu7,582:$Vv7}),o($V2,[2,29]),o($V2,[2,30]),o($V2,[2,31]),o($V2,[2,32]),{27:[1,685],39:686,129:[1,687],141:[1,688],143:$Vw7,727:$Vx7},o($V2,[2,236]),o($V2,[2,237]),o($V2,$Vy7),o($V2,[2,239]),o($Vz7,$VA7,{171:691,39:692,141:[1,693],143:$Vw7,316:[1,695],322:[1,696],360:$VB7,600:$VC7,727:$Vx7}),o($V2,[2,634]),o($V2,[2,635]),o($V2,[2,636]),o($V2,[2,637]),o($V2,[2,638]),o($V2,[2,639]),{27:[1,698],39:699,66:[1,703],129:[1,705],141:[1,706],143:$Vw7,158:[1,704],316:[1,700],322:[1,701],360:$VD7,727:$Vx7},{27:[1,707],50:[1,717],65:[1,708],71:[1,716],129:[1,720],149:$VE7,170:[1,709],322:$VF7,360:[1,718],453:[1,715],513:$VG7,561:[1,710],571:$VH7,604:[1,713],721:$VI7,728:$VJ7,757:[1,721],796:722,799:711,804:714},o($V2,[2,2154]),o($V2,[2,2155]),o($V2,[2,2156]),o($V2,[2,2157]),o($V2,[2,2158]),o($V2,[2,2159]),o($V2,[2,2160]),o($V2,[2,2161]),o($V2,[2,2162]),o($V2,[2,2163]),o($V2,[2,2164]),o($V2,[2,867]),{26:[1,729],27:[1,737],38:[1,728],44:[1,726],46:732,51:$VK7,56:[1,727],63:[1,738],68:730,69:731,70:[1,733],73:[1,734],82:735,83:736,84:743,110:739,111:$VL7,113:742},{26:[1,744],27:[1,747],56:[1,746],136:[1,745]},{27:[1,749],142:[1,748]},o($V2,[2,519]),o($V2,[2,520]),{27:[1,751],129:[1,750]},o($V2,[2,866]),o($V2,[2,51],{110:739,68:756,69:757,46:758,84:761,26:[1,755],38:[1,754],44:[1,752],51:$VK7,56:[1,753],63:$VM7,73:$VN7,111:$VO7}),o($V2,[2,181]),o($V2,[2,521]),o($V2,[2,522]),o($V2,[2,870],{474:763,276:[1,764],412:$VP7,489:$VQ7,490:$VR7}),o($VS7,$VP7,{474:767,276:[1,768],489:$VQ7,490:$VR7}),o($VT7,[2,879]),o($VT7,[2,880]),o($VU7,[2,877]),o($VU7,[2,878]),{27:[1,769],485:[1,770]},{27:[1,771],485:$VV7,487:772,488:$VW7},{1:[2,922]},o($V0,$V1,{406:775}),{1:[2,923]},o($V2,[2,712]),o($VX7,$V1,{406:776}),{27:[1,778],395:[1,777]},o($V2,[2,699],{395:[1,779]}),o($Vs6,[2,707]),o([395,405,500],[2,708]),o($VY7,[2,1871]),o($VZ7,[2,1872]),o($V_7,$V$7,{855:780,919:781,920:782,923:783,427:793,428:$V08,429:$V18,430:$V28,431:$V38,432:$V48,433:$V58,434:$V68,435:$V78,436:$V88}),o($VY7,[2,1874]),o($VZ7,[2,1875],{855:794,920:795,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($VZ7,[2,1876]),o($Vh8,$Vi8,{172:556,503:560,910:804,40:805,97:806,303:808,801:809,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($Vh8,$Vi8,{172:556,503:560,40:805,97:806,303:808,801:809,910:812,912:813,813:815,803:816,355:817,802:818,41:$Vv6,64:$Vw6,136:$Vm8,179:$Vn8,180:$Vo8,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$VF6}),o($Vp8,$Vi8,{172:556,503:560,40:805,97:806,303:808,801:809,910:821,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($Vp8,$Vi8,{172:556,503:560,40:805,97:806,303:808,801:809,910:822,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($Vq8,[2,1927]),o($Vq8,[2,1929]),o($Vr8,[2,1928]),o($Vr8,[2,1930]),o($Vs8,$Vt8,{138:[1,823]}),o($Vu8,$Vv8,{881:550,849:824,927:825,850:826,239:827,933:828,27:$V6,89:$Vw8,797:$Vn6}),o($Vx8,[2,1429],{138:[1,830]}),o($Vy8,[2,1475]),{181:$Vz8,527:$VA8,800:[1,833]},o($Vy8,[2,942]),o($Vy8,[2,943]),o($Vy8,[2,944]),o($Vy8,[2,935]),o($Vy8,[2,936]),o($Vy8,[2,937]),o($Vy8,[2,938]),o($Vy8,[2,939]),o($Vy8,[2,940]),o($Vy8,[2,941]),{40:834,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{27:[1,836],142:[1,835]},o($V2,[2,812]),o($V2,[2,815]),o($VB8,[2,832]),o($VB8,[2,833]),o($VB8,[2,834]),o($VB8,[2,835]),o($VB8,[2,836]),o($VB8,[2,837]),o($VB8,$VC8,{156:837,159:838,252:839,89:$VD8}),o($V2,[2,22]),{54:[1,841],138:[1,842]},o($V2,[2,757]),o($VE8,[2,2130]),o($V2,[2,932]),o($V2,[2,933]),o($V2,[2,934]),o($V2,[2,724]),o($V2,[2,725]),o($V2,[2,726]),{89:$VT6,370:597,373:599,411:595,412:$Vq1,419:598,464:$VF1,471:517,472:510,473:523,477:522,480:526,481:527,482:524,483:525,484:$VI1},{27:$VR6,41:$Vv6,64:$Vw6,172:582,242:$Vy6,254:$Vz6,425:580,426:$VS6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{27:$VH6,38:$VI6,63:$VJ6,147:$VK6,170:$VL6,360:$VM6,412:$VN6,426:$VO6,455:569,459:571,464:$VP6},o($Vs6,$Vt6,{394:535,398:536,396:537,399:538,913:539,914:540,915:541,916:542,917:543,918:544,926:545,927:546,928:547,929:548,130:549,881:550,131:551,885:552,40:553,813:555,172:556,503:560,41:$Vv6,64:$Vw6,89:$Vx6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$VF6}),o($V2,[2,716]),o($V2,[2,718]),o($Vd7,$Ve7,{841:631,842:632,843:633,844:634,475:843,478:844,772:$Vf7}),{137:845,140:846,307:$V51,371:847,372:848,411:421,412:$Vq1,419:442},o($V2,[2,623]),o($Vm7,$Ve7,{843:633,841:647,475:849,772:$Vn7}),o($V2,[2,859]),o($V2,[2,727]),o($V2,[2,728]),o($V2,[2,729]),o($VF8,$Ve7,{475:629,843:633,841:647,772:$Vn7}),{89:$VG8,373:599,411:850,412:$V37,464:$V57,471:517,473:626,480:526,481:527,484:$V77},{40:854,41:$Vv6,64:$Vw6,130:852,149:[1,853],151:$Vo7,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{154:[1,855]},{66:[1,856],158:[1,857]},{38:$VI6,63:$VJ6,147:$VK6,170:$VL6,360:$VH8,412:$VI8,426:$VO6,455:859,464:$VP6},{38:$VI6,63:$VJ6,147:$VK6,170:$VL6,360:[1,861],412:$VI8,426:$VO6,455:862,464:$VP6},o($VJ8,$Vq7,{805:863,143:[1,864],599:$Vr7,611:$Vs7}),{41:$Vv6,64:$Vw6,172:582,242:$Vy6,254:$Vz6,425:580,426:$VS6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{41:$Vv6,64:$Vw6,172:667,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,394:865,395:$Vt6,396:537,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,881:550,913:539,915:866,916:542,926:867,927:868},{496:[1,869]},{40:871,41:$Vv6,58:678,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,829:676,1022:870,1028:674},o([2,41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,424,462,463,466,504,505,507,508,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,747,753,770,775,776,779,780,783,784,785,795,963],$Vt7,{413:872,426:$Vu7,582:$Vv7}),{40:874,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,845:873,847:639},{39:875,129:[1,876],141:[1,877],143:$Vw7,727:$Vx7},{26:[1,881],38:[1,880],44:[1,878],46:882,51:$VK7,56:[1,879],63:$VM7,68:730,69:731,70:[1,883],73:$VN7,84:761,110:739,111:$VO7},{26:[1,884],56:[1,886],136:[1,885]},{142:[1,887]},{39:888,129:$VA7,141:[1,890],143:$Vw7,171:889,316:[1,891],322:[1,892],360:$VB7,600:$VC7,727:$Vx7},{39:893,66:[1,896],129:[1,898],141:[1,899],143:$Vw7,158:[1,897],316:[1,894],322:[1,895],360:$VD7,727:$Vx7},{129:[1,900]},{50:[1,909],65:[1,901],71:[1,908],129:[1,911],149:$VE7,170:[1,902],322:$VF7,360:[1,910],453:[1,907],513:$VG7,561:[1,903],571:$VH7,604:[1,905],721:$VI7,728:$VJ7,757:[1,912],796:913,799:904,804:906},{276:[1,915],412:$VP7,474:914,489:$VQ7,490:$VR7},{485:[1,916]},{485:$VV7,487:917,488:$VW7},o($VF8,[2,1541]),o($Vm7,[2,1545]),o($Vd7,$VK8,{843:918,844:919,772:$Vf7}),o($Vm7,[2,1554]),o($VL8,[2,1555]),o($Vm7,[2,1557],{843:633,841:920,772:$Vn7}),o([27,412,426,582],$V1,{406:921}),o([26,38,63,86,147,153,155,170,307,392,393,405,412,453,464,467,484,495,500,840,1006,1021,1035],[2,946]),o([27,89,412,464,484],$VM8,{95:[1,922]}),o($VN8,[2,1568]),o($VO8,[2,1569]),o($VN8,[2,1571],{95:[1,923]}),{27:[1,925],136:[1,924]},{181:$Vz8,527:$VA8},o($V2,[2,624]),{137:926,307:$V07,371:927,411:603,412:$V37},o($Vm7,$Ve7,{843:633,841:647,475:928,772:$Vn7}),o($Vm7,[2,1544]),o($VF8,$VK8,{843:918,772:$Vn7}),o([412,426,582],$V1,{406:929}),o($VP8,$VQ8,{148:930,152:931,46:932,78:933,51:$VR8}),{27:[1,936],40:937,41:$Vv6,64:$Vw6,150:935,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,203]),o($V2,[2,204]),o($V2,$VQ8,{46:932,148:938,51:$VK7}),o($V2,$VS8,{40:553,813:555,172:556,503:560,130:939,131:941,27:[1,940],41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$VF6}),o($V2,[2,211],{172:556,503:560,40:854,130:942,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{27:[1,944],40:553,41:$Vv6,64:$Vw6,130:943,131:945,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},{27:[1,947],66:[1,946]},o($V2,[2,217],{172:556,503:560,40:854,130:948,41:$Vv6,64:$Vw6,66:[1,949],242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{40:950,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{27:[1,952],142:[1,951]},o($V2,[2,849]),o($V2,[2,852]),{27:[1,954],40:553,41:$Vv6,64:$Vw6,130:953,131:955,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($Vp7,$Vq7,{805:956,599:$Vr7,611:$Vs7}),o($Vp7,[2,1364]),o($Vp7,[2,1365]),o($V2,[2,2264]),o($V2,[2,2265]),{27:[1,958],497:[1,957]},o($V2,[2,909]),o($V2,[2,2241],{26:[1,959],27:[1,960]}),o($V2,[2,2240],{26:[1,961]}),o($V2,[2,2242]),o($VT8,[2,2243]),o($VU8,[2,2244]),o($VT8,[2,2245]),o($VU8,[2,2246]),o($VT8,[2,1482],{172:556,503:560,40:962,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($VU8,[2,1484],{172:556,503:560,40:963,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($VV8,$VW8,{138:[1,964]}),o($VX8,[2,1480]),o($VY8,$VZ8,{414:965,747:$V_8}),o($V$8,[2,1580]),o($V$8,[2,1581]),o($V2,[2,33]),{27:[1,968],40:967,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{27:[1,971],40:553,41:$Vv6,64:$Vw6,130:969,131:970,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},{27:[1,974],40:553,41:$Vv6,64:$Vw6,130:972,131:973,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V09,[2,1338]),o($V09,[2,1339]),{27:[1,975],129:[1,976]},o([27,41,64,242,254,405,462,463,466,500,504,505],$V19,{45:977,74:978,623:$V29}),o($Vp7,$V19,{45:980,74:981,623:$V29}),{41:$Vv6,64:$Vw6,172:982,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},o($Vp7,$V19,{45:983,74:984,623:$V29}),{27:[1,986],316:[1,985]},o($Vz7,[2,1362]),o($V2,[2,640],{66:[1,988],316:[1,987]}),o([27,41,64,242,254,405,462,463,466,500,504,505,527],$V39,{126:989,127:990,623:$V49}),o($Vp7,$V39,{126:992,127:993,623:$V49}),{27:[1,995],316:[1,994]},{41:$Vv6,64:$Vw6,172:996,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{27:[1,998],40:553,41:$Vv6,64:$Vw6,130:997,131:999,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},{27:[1,1001],66:[1,1000]},o($Vp7,$V39,{126:1002,127:1003,623:$V49}),o($Vp7,$V39,{126:1004,127:1005,623:$V49}),o($V2,[2,2151],{172:556,503:560,40:871,58:1006,41:$Vv6,64:$Vw6,149:[1,1009],208:[1,1007],242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7,721:[1,1008]}),{27:[1,1011],66:[1,1010]},{27:[1,1013],129:$V59,141:$V69,1018:1012},{27:[1,1017],721:$V79},{27:[1,1019],208:$V89},o($V99,[2,1342],{303:1020,179:$Vk8}),{27:[1,1022],626:[1,1021]},{149:[1,1023]},{27:[1,1025],360:$Va9,454:$Vb9,458:1024,776:$Vc9},{27:[1,1030],40:680,41:$Vv6,58:1029,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:681,828:1031},{71:[1,1032]},{27:[1,1034],453:[1,1033]},o($V2,[2,2224]),{27:[1,1036],66:[1,1035]},o($Vd9,$Ve9,{809:1037,626:$Vf9}),{27:[1,1039],149:$Vg9},o($V99,[2,1343]),o($Vh9,[2,1332]),o($Vh9,[2,1333]),o($Vi9,$V19,{45:1040,74:1041,117:$Vj9,623:$V29}),{27:[1,1043],57:[1,1042]},o($Vp7,$Vk9,{59:1044,65:$Vl9}),{27:[1,1048],41:[1,1047],65:[1,1046],75:1056,77:1057,98:$Vm9,100:1050,101:$Vn9,103:$Vo9,104:1053,106:$Vp9,109:$Vq9,536:$Vr9,654:$Vs9},o($V2,[2,47]),o($V2,[2,48]),{26:[1,1063],27:[1,1061],44:$Vt9,69:1060,73:$VN7,82:1064,84:1062,110:739,111:$VL7,113:742},{27:[1,1067],71:$Vu9},{27:[1,1068],117:$Vv9},o($V2,[2,84]),o($V2,[2,85]),o($V2,[2,86]),o($Vi9,$V39,{172:556,503:560,126:1069,127:1071,128:1072,40:1073,41:$Vv6,64:$Vw6,65:[1,1070],242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7,623:$V49}),o($V2,[2,119]),{27:[1,1075],40:1076,41:$Vv6,60:1074,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{89:[1,1077]},o($V2,[2,121]),{117:$Vw9},{27:[1,1080],41:[1,1079]},{27:[1,1082],137:1081,140:1083,307:$V51,371:847,372:848,411:421,412:$Vq1,419:442},{27:[1,1085],57:[1,1084]},o($V2,[2,182]),{27:[1,1087],143:[1,1086]},o($V2,[2,194]),o($Vp7,$V39,{126:1088,127:1089,623:$V49}),o($V2,[2,690]),{45:1090,51:$V19,117:$Vj9,623:$Vx9},{57:[1,1092]},o($VJ8,$Vk9,{59:1093,65:$Vl9}),{41:[1,1095],65:[1,1094],98:$Vy9,100:1050,101:$Vn9,103:$Vo9,104:1097,106:$Vz9,109:$Vq9,536:$VA9,654:$VB9},o($V2,[2,58]),o($V2,[2,59]),{26:$VC9,44:$Vt9,69:1101,73:$VN7,84:761,110:739,111:$VO7},o($VD9,$V39,{126:1103,65:[1,1104],623:$VE9}),{40:1076,41:$Vv6,60:1106,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{117:[1,1107]},o($VF9,$Vv9),{411:1108,412:$V37},{89:$VG9,476:1109,491:1110},o($VS7,[2,897]),o($VS7,[2,898]),{27:[1,1112],411:1114,412:$Vq1,419:1113},{89:$VH9,476:1116,479:1115,491:1110,492:1117},o($VT7,[2,882]),o($Vp7,$VI9,{468:1119,129:$VJ9}),o($VT7,[2,888]),o($Vp7,$VI9,{468:1121,129:$VJ9}),o($VK9,[2,894]),o($VK9,[2,895]),o($V2,$V3,{403:6,404:7,3:394,363:395,137:396,410:397,239:398,371:399,408:400,16:401,368:402,140:403,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,364:417,365:418,366:419,367:420,411:421,17:426,18:427,19:428,20:429,21:430,22:431,23:432,24:433,25:434,28:435,29:436,369:437,370:438,372:439,374:440,375:441,419:442,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,376:455,377:456,378:457,379:458,380:459,381:460,382:461,994:464,995:465,996:466,997:467,998:468,999:469,1000:470,1001:471,1002:472,1003:473,1004:474,1005:475,373:477,34:481,35:482,36:483,37:484,166:486,167:487,168:488,169:489,383:491,384:492,385:493,386:494,387:495,388:496,1007:499,1008:500,1009:501,1010:502,1011:503,1012:504,1013:505,1014:506,1015:507,1016:508,1017:509,472:510,43:511,135:512,312:514,313:515,471:517,72:518,139:519,314:520,315:521,477:522,473:523,482:524,483:525,480:526,481:527,402:1122,407:1123,2:$V4,26:$V5,27:$V6,38:$V7,41:$V8,50:$V9,51:$Va,54:$Vb,63:$Vc,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$Vi,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$Vx,149:$Vy,151:$Vz,153:$VA,155:$VB,158:$VC,170:$VD,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,265:$VR,269:$VS,276:$VT,278:$VU,288:$VV,289:$VW,290:$VX,292:$VY,293:$VZ,294:$V_,295:$V$,296:$V01,301:$V11,302:$V21,304:$V31,305:$V41,307:$V51,316:$V61,322:$V71,342:$V81,343:$V91,344:$Va1,345:$Vb1,348:$Vc1,349:$Vd1,350:$Ve1,351:$Vf1,352:$Vg1,353:$Vh1,354:$Vi1,360:$Vj1,362:$Vk1,391:$Vl1,392:$Vm1,393:$Vn1,395:$Vo1,409:$Vp1,412:$Vq1,426:$Vr1,428:$Vs1,429:$Vt1,430:$Vu1,431:$Vv1,432:$Vw1,433:$Vx1,434:$Vy1,435:$Vz1,436:$VA1,453:$VB1,454:$VC1,462:$VD1,463:$VE1,464:$VF1,466:$VG1,467:$VH1,484:$VI1,485:$VJ1,489:$VK1,490:$VL1,495:$VM1,496:$VN1,497:$VO1,504:$VP1,505:$VQ1,506:$VR1,507:$VS1,508:$VT1,509:$VU1,510:$VV1,511:$VW1,512:$VX1,513:$VY1,514:$VZ1,515:$V_1,516:$V$1,517:$V02,518:$V12,519:$V22,520:$V32,521:$V42,522:$V52,523:$V62,524:$V72,525:$V82,526:$V92,527:$Va2,528:$Vb2,529:$Vc2,530:$Vd2,531:$Ve2,532:$Vf2,533:$Vg2,534:$Vh2,535:$Vi2,536:$Vj2,537:$Vk2,538:$Vl2,539:$Vm2,540:$Vn2,541:$Vo2,542:$Vp2,543:$Vq2,544:$Vr2,545:$Vs2,546:$Vt2,547:$Vu2,548:$Vv2,549:$Vw2,550:$Vx2,551:$Vy2,552:$Vz2,553:$VA2,554:$VB2,555:$VC2,556:$VD2,557:$VE2,558:$VF2,559:$VG2,560:$VH2,561:$VI2,562:$VJ2,563:$VK2,564:$VL2,565:$VM2,566:$VN2,567:$VO2,568:$VP2,569:$VQ2,570:$VR2,571:$VS2,572:$VT2,573:$VU2,574:$VV2,575:$VW2,576:$VX2,577:$VY2,578:$VZ2,579:$V_2,580:$V$2,581:$V03,582:$V13,583:$V23,584:$V33,585:$V43,586:$V53,587:$V63,588:$V73,589:$V83,590:$V93,591:$Va3,592:$Vb3,593:$Vc3,594:$Vd3,595:$Ve3,596:$Vf3,597:$Vg3,598:$Vh3,599:$Vi3,600:$Vj3,601:$Vk3,602:$Vl3,603:$Vm3,604:$Vn3,605:$Vo3,606:$Vp3,607:$Vq3,608:$Vr3,609:$Vs3,610:$Vt3,611:$Vu3,612:$Vv3,613:$Vw3,614:$Vx3,615:$Vy3,616:$Vz3,617:$VA3,618:$VB3,619:$VC3,620:$VD3,621:$VE3,622:$VF3,623:$VG3,624:$VH3,625:$VI3,626:$VJ3,627:$VK3,628:$VL3,629:$VM3,630:$VN3,631:$VO3,632:$VP3,633:$VQ3,634:$VR3,635:$VS3,636:$VT3,637:$VU3,638:$VV3,639:$VW3,640:$VX3,641:$VY3,642:$VZ3,643:$V_3,644:$V$3,645:$V04,646:$V14,647:$V24,648:$V34,649:$V44,650:$V54,651:$V64,652:$V74,653:$V84,654:$V94,655:$Va4,656:$Vb4,657:$Vc4,658:$Vd4,659:$Ve4,660:$Vf4,661:$Vg4,662:$Vh4,663:$Vi4,664:$Vj4,665:$Vk4,666:$Vl4,667:$Vm4,668:$Vn4,669:$Vo4,670:$Vp4,671:$Vq4,672:$Vr4,673:$Vs4,674:$Vt4,675:$Vu4,676:$Vv4,677:$Vw4,678:$Vx4,679:$Vy4,680:$Vz4,681:$VA4,682:$VB4,683:$VC4,684:$VD4,685:$VE4,686:$VF4,687:$VG4,688:$VH4,689:$VI4,690:$VJ4,691:$VK4,692:$VL4,693:$VM4,694:$VN4,695:$VO4,696:$VP4,697:$VQ4,698:$VR4,699:$VS4,700:$VT4,701:$VU4,702:$VV4,703:$VW4,704:$VX4,705:$VY4,706:$VZ4,707:$V_4,708:$V$4,709:$V05,710:$V15,711:$V25,712:$V35,713:$V45,714:$V55,715:$V65,716:$V75,717:$V85,718:$V95,719:$Va5,720:$Vb5,721:$Vc5,722:$Vd5,723:$Ve5,724:$Vf5,725:$Vg5,726:$Vh5,727:$Vi5,728:$Vj5,729:$Vk5,730:$Vl5,731:$Vm5,732:$Vn5,733:$Vo5,734:$Vp5,735:$Vq5,736:$Vr5,737:$Vs5,738:$Vt5,739:$Vu5,740:$Vv5,741:$Vw5,742:$Vx5,743:$Vy5,744:$Vz5,745:$VA5,746:$VB5,747:$VC5,748:$VD5,749:$VE5,750:$VF5,751:$VG5,752:$VH5,753:$VI5,754:$VJ5,755:$VK5,756:$VL5,757:$VM5,758:$VN5,759:$VO5,760:$VP5,761:$VQ5,762:$VR5,763:$VS5,764:$VT5,765:$VU5,766:$VV5,767:$VW5,768:$VX5,769:$VY5,770:$VZ5,771:$V_5,772:$V$5,773:$V06,774:$V16,775:$V26,776:$V36,777:$V46,778:$V56,779:$V66,780:$V76,781:$V86,782:$V96,783:$Va6,784:$Vb6,785:$Vc6,786:$Vd6,787:$Ve6,788:$Vf6,789:$Vg6,790:$Vh6,791:$Vi6,792:$Vj6,793:$Vk6,794:$Vl6,795:$Vm6,797:$Vn6,840:$Vo6,1006:$Vp6,1021:$Vq6,1035:$Vr6}),o($V2,$V3,{403:6,404:7,3:394,363:395,137:396,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,364:417,365:418,366:419,367:420,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,376:455,377:456,378:457,379:458,380:459,381:460,382:461,994:464,995:465,996:466,997:467,998:468,999:469,1000:470,1001:471,1002:472,1003:473,1004:474,1005:475,373:477,312:514,313:515,471:517,480:526,481:527,411:603,371:604,43:619,135:620,473:626,402:1124,410:1128,2:$V4,26:$VL9,38:$VV6,41:$V8,50:$V9,51:$Va,54:$Vb,63:$VW6,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$VX6,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$VY6,149:$Vy,151:$Vz,153:$VZ6,155:$V_6,158:$VC,170:$V$6,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,265:$VR,269:$VS,276:$VT,278:$VU,288:$VV,289:$VW,290:$VX,292:$VY,293:$VZ,294:$V_,295:$V$,296:$V01,301:$V11,302:$V21,304:$V31,305:$V41,307:$V07,316:$V61,322:$V71,342:$V81,343:$V91,344:$Va1,345:$Vb1,348:$Vc1,349:$Vd1,350:$Ve1,351:$Vf1,352:$Vg1,353:$Vh1,354:$Vi1,360:$Vj1,362:$Vk1,391:$Vl1,392:$V17,393:$VM9,395:$Vo1,412:$V37,426:$Vr1,428:$Vs1,429:$Vt1,430:$Vu1,431:$Vv1,432:$Vw1,433:$Vx1,434:$Vy1,435:$Vz1,436:$VA1,453:$VN9,454:$VC1,462:$VD1,463:$VE1,464:$V57,466:$VG1,467:$V67,484:$V77,485:$VJ1,489:$VK1,490:$VL1,495:$V87,496:$VN1,497:$VO1,504:$VP1,505:$VQ1,506:$VO9,507:$VS1,508:$VT1,509:$VU1,510:$VV1,511:$VW1,512:$VX1,513:$VY1,514:$VZ1,515:$V_1,516:$V$1,517:$V02,518:$V12,519:$V22,520:$V32,521:$V42,522:$V52,523:$V62,524:$V72,525:$V82,526:$V92,527:$Va2,528:$Vb2,529:$Vc2,530:$Vd2,531:$Ve2,532:$Vf2,533:$Vg2,534:$Vh2,535:$Vi2,536:$Vj2,537:$Vk2,538:$Vl2,539:$Vm2,540:$Vn2,541:$Vo2,542:$Vp2,543:$Vq2,544:$Vr2,545:$Vs2,546:$Vt2,547:$Vu2,548:$Vv2,549:$Vw2,550:$Vx2,551:$Vy2,552:$Vz2,553:$VA2,554:$VB2,555:$VC2,556:$VD2,557:$VE2,558:$VF2,559:$VG2,560:$VH2,561:$VI2,562:$VJ2,563:$VK2,564:$VL2,565:$VM2,566:$VN2,567:$VO2,568:$VP2,569:$VQ2,570:$VR2,571:$VS2,572:$VT2,573:$VU2,574:$VV2,575:$VW2,576:$VX2,577:$VY2,578:$VZ2,579:$V_2,580:$V$2,581:$V03,582:$V13,583:$V23,584:$V33,585:$V43,586:$V53,587:$V63,588:$V73,589:$V83,590:$V93,591:$Va3,592:$Vb3,593:$Vc3,594:$Vd3,595:$Ve3,596:$Vf3,597:$Vg3,598:$Vh3,599:$Vi3,600:$Vj3,601:$Vk3,602:$Vl3,603:$Vm3,604:$Vn3,605:$Vo3,606:$Vp3,607:$Vq3,608:$Vr3,609:$Vs3,610:$Vt3,611:$Vu3,612:$Vv3,613:$Vw3,614:$Vx3,615:$Vy3,616:$Vz3,617:$VA3,618:$VB3,619:$VC3,620:$VD3,621:$VE3,622:$VF3,623:$VG3,624:$VH3,625:$VI3,626:$VJ3,627:$VK3,628:$VL3,629:$VM3,630:$VN3,631:$VO3,632:$VP3,633:$VQ3,634:$VR3,635:$VS3,636:$VT3,637:$VU3,638:$VV3,639:$VW3,640:$VX3,641:$VY3,642:$VZ3,643:$V_3,644:$V$3,645:$V04,646:$V14,647:$V24,648:$V34,649:$V44,650:$V54,651:$V64,652:$V74,653:$V84,654:$V94,655:$Va4,656:$Vb4,657:$Vc4,658:$Vd4,659:$Ve4,660:$Vf4,661:$Vg4,662:$Vh4,663:$Vi4,664:$Vj4,665:$Vk4,666:$Vl4,667:$Vm4,668:$Vn4,669:$Vo4,670:$Vp4,671:$Vq4,672:$Vr4,673:$Vs4,674:$Vt4,675:$Vu4,676:$Vv4,677:$Vw4,678:$Vx4,679:$Vy4,680:$Vz4,681:$VA4,682:$VB4,683:$VC4,684:$VD4,685:$VE4,686:$VF4,687:$VG4,688:$VH4,689:$VI4,690:$VJ4,691:$VK4,692:$VL4,693:$VM4,694:$VN4,695:$VO4,696:$VP4,697:$VQ4,698:$VR4,699:$VS4,700:$VT4,701:$VU4,702:$VV4,703:$VW4,704:$VX4,705:$VY4,706:$VZ4,707:$V_4,708:$V$4,709:$V05,710:$V15,711:$V25,712:$V35,713:$V45,714:$V55,715:$V65,716:$V75,717:$V85,718:$V95,719:$Va5,720:$Vb5,721:$Vc5,722:$Vd5,723:$Ve5,724:$Vf5,725:$Vg5,726:$Vh5,727:$Vi5,728:$Vj5,729:$Vk5,730:$Vl5,731:$Vm5,732:$Vn5,733:$Vo5,734:$Vp5,735:$Vq5,736:$Vr5,737:$Vs5,738:$Vt5,739:$Vu5,740:$Vv5,741:$Vw5,742:$Vx5,743:$Vy5,744:$Vz5,745:$VA5,746:$VB5,747:$VC5,748:$VD5,749:$VE5,750:$VF5,751:$VG5,752:$VH5,753:$VI5,754:$VJ5,755:$VK5,756:$VL5,757:$VM5,758:$VN5,759:$VO5,760:$VP5,761:$VQ5,762:$VR5,763:$VS5,764:$VT5,765:$VU5,766:$VV5,767:$VW5,768:$VX5,769:$VY5,770:$VZ5,771:$V_5,772:$V$5,773:$V06,774:$V16,775:$V26,776:$V36,777:$V46,778:$V56,779:$V66,780:$V76,781:$V86,782:$V96,783:$Va6,784:$Vb6,785:$Vc6,786:$Vd6,787:$Ve6,788:$Vf6,789:$Vg6,790:$Vh6,791:$Vi6,792:$Vj6,793:$Vk6,794:$Vl6,795:$Vm6,840:$V97,1006:$Va7,1021:$Vb7,1035:$Vc7}),{27:[1,1131],40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,396:1130,399:1132,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555,881:550,885:552,913:539,914:540,915:541,916:542,917:543,918:544,926:545,927:546,928:547,929:548},o($V2,[2,698]),o($V2,[2,702],{913:539,916:542,130:549,881:550,172:556,503:560,40:854,915:866,926:867,927:868,396:1133,41:$Vv6,64:$Vw6,89:$Vw8,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V_7,$VP9,{427:793,920:1134,923:1135,428:$V08,429:$V18,430:$V28,431:$V38,432:$V48,433:$V58,434:$V68,435:$V78,436:$V88}),o($VZ7,[2,1878]),o($VQ9,$VR9,{921:1136,489:$VS9,535:$VT9}),o($VZ7,[2,1892],{920:795,855:1139,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($VU9,[2,1896]),{27:[1,1141],436:$VV9},{27:[1,1143],436:$VW9},{27:[1,1145],436:$VX9},{27:[1,1147],436:$VY9},{27:[1,1149],436:$VZ9},{27:[1,1152],434:[1,1151],436:$V_9},{27:[1,1158],431:[1,1154],433:[1,1155],434:[1,1156],435:[1,1157],436:$V$9},{27:[1,1164],431:[1,1160],433:[1,1161],434:[1,1162],435:[1,1163],436:$V0a},o([2,41,64,89,91,95,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,527,620,650,683,772,790,878],$VR9,{921:1165,489:$VS9,535:$VT9}),o($VZ7,[2,1879],{920:1166,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($V1a,$VR9,{921:1167,489:$VS9,535:$VT9}),{436:$VV9},{436:$VW9},{436:$VX9},{436:$VY9},{436:$VZ9},{434:[1,1168],436:$V_9},{431:[1,1169],433:[1,1170],434:[1,1171],435:[1,1172],436:$V$9},{431:[1,1173],433:[1,1174],434:[1,1175],435:[1,1176],436:$V0a},o([27,91,95,142,361,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,777,790,878],$V2a,{157:1177,160:1178,758:$V3a}),o($V4a,[2,1962]),o($V4a,[2,1963]),{40:1180,41:$Vv6,64:$Vw6,97:1181,172:556,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,303:808,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,801:809},o($V5a,[2,1355]),o($V5a,[2,1356]),{179:$V6a,181:$V7a},{180:$V8a,181:$V9a},o($Vaa,$V2a,{157:1186,758:$Vba}),o($Vca,$V2a,{157:1188,758:$Vba}),{27:[1,1191],40:1180,41:$Vv6,64:$Vw6,97:1181,172:556,179:$Vn8,180:$Vo8,242:$Vy6,254:$Vz6,303:808,355:817,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,801:809,802:818,803:1190,813:1189},o($Vp8,[2,1966]),o($Vp8,[2,1967]),o($Vp8,[2,1357]),o($Vp8,[2,1358]),{179:$V6a,181:$V7a,800:[1,1192]},{180:$V8a,181:$V9a,800:[1,1193]},o($Vca,$V2a,{157:1194,758:$Vba}),o($Vca,$V2a,{157:1195,758:$Vba}),{40:1196,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,797:$Vda,813:1199,815:1197},{91:[1,1200]},{40:805,41:$Vv6,64:$Vw6,91:$Vi8,97:806,136:$Vj8,172:556,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,303:808,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,801:809,910:1201},{2:$Vea,91:$Vfa,93:1202},{2:$Vea,91:$Vfa,93:1205},{137:1220,140:1221,307:$V51,371:847,372:848,411:421,412:$Vq1,419:442,935:1206,936:1207,937:1208,938:1209,939:1210,940:1211,941:1212,942:1213,943:1214,944:1215,945:1216,946:1217,947:1218,948:1219},o($Vu8,$Vv8,{881:550,849:824,927:825,933:1222,89:$Vw8}),{40:1223,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{527:[1,1224]},o($Vy8,[2,1477]),o([2,26,27,38,41,44,51,54,56,63,64,73,86,89,91,95,101,106,109,111,136,138,142,179,180,206,208,224,237,238,242,254,256,269,276,278,288,307,391,395,405,412,428,429,430,431,432,433,434,435,436,454,462,463,466,489,490,500,504,505,508,509,511,514,518,521,527,530,536,579,587,589,620,625,626,635,650,654,674,682,683,707,720,758,759,772,777,788,790,878],[2,1406]),{27:[1,1226],57:[1,1225]},{27:[1,1228],129:$Vga,143:$Vha,456:1227,460:1229,462:$Via,463:$Vja},o($V2,[2,816]),o($VB8,[2,838]),o($V2,[2,839]),o([27,51,71,142,276,405,412,489,490,500,758],[2,1410]),{27:$V6,40:1239,41:$Vv6,60:1238,64:$Vw6,128:1237,172:556,239:1235,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,797:$Vn6,816:1236,817:1234},{2:[1,1240],41:$Vv6,62:1241,64:$Vw6,97:1244,138:$Vka,146:$Vla,172:1242,179:$Vk8,180:$Vl8,223:1248,242:$Vy6,254:$Vz6,303:808,362:$Vma,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,509:$Vna,602:$Voa,770:$Vpa,775:$Vqa,801:809,827:1243,901:$Vra,906:1251,907:1252},{41:$Vv6,64:$Vw6,172:1256,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},o($VF8,[2,1542]),o($Vm7,[2,1548]),{91:[1,1257]},{91:[1,1258]},{89:$VT6,411:595,412:$Vq1,419:598},o($Vm7,$Vk7,{411:645,89:$Vl7,412:$V37}),o($Vm7,[2,1547]),o($VF8,$Ve7,{843:633,841:647,475:843,772:$Vn7}),{137:845,307:$V07,371:927,411:603,412:$V37},o($V2,$VQ8,{46:932,148:1259,51:$VK7}),{40:937,41:$Vv6,64:$Vw6,150:935,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vsa,$Vt8,{138:[1,1260]}),o($V2,$VS8,{172:556,503:560,40:854,130:939,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{40:854,41:$Vv6,64:$Vw6,130:1261,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{66:[1,1262]},{40:1263,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{142:[1,1264]},{89:$Vta,142:$VC8,156:837,252:839},{40:1266,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{142:[1,1267]},{40:854,41:$Vv6,64:$Vw6,130:953,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($VJ8,$Vq7,{805:1268,599:$Vr7,611:$Vs7}),{395:[1,1269]},o($Vua,$V$7,{920:795,855:1270,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($Vva,$Vi8,{172:556,503:560,40:805,97:806,303:808,801:809,910:1271,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($Vva,$Vi8,{172:556,503:560,40:805,97:806,303:808,801:809,910:812,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{497:[1,1272]},{26:[1,1273]},o($VX8,$VW8,{138:[1,1274]}),o([2,41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,424,462,463,466,504,505,507,508,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,963],$VZ8,{414:1275,747:$V_8}),o([89,412,464,484],$VM8,{95:$Vwa}),{136:[1,1277]},{40:1278,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:969,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:972,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($VD9,$V19,{45:1279,117:$Vj9,623:$Vx9}),{57:[1,1280]},o($VJ8,$Vk9,{59:1281,65:$Vl9}),{41:[1,1283],65:[1,1282],98:$Vy9,100:1050,101:$Vn9,103:$Vo9,104:1097,106:$Vz9,109:$Vq9,536:$VA9,654:$VB9},{26:$VC9,44:$Vt9,69:1060,73:$VN7,84:761,110:739,111:$VO7},{71:$Vu9},{41:[1,1284]},{137:1081,307:$V07,371:927,411:603,412:$V37},{57:[1,1285]},{143:[1,1286]},o([41,64,242,254,405,462,463,466,500,504,505],$V19,{45:1287,623:$Vx9}),{129:[1,1288]},o($VJ8,$V19,{45:1289,623:$Vx9}),o($VJ8,$V19,{45:1290,623:$Vx9}),{316:[1,1291]},o($VJ8,$V39,{126:1292,623:$VE9}),o($VJ8,$V39,{126:1293,623:$VE9}),{316:[1,1294]},{40:854,41:$Vv6,64:$Vw6,130:997,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{66:[1,1295]},o($VJ8,$V39,{126:1296,623:$VE9}),o($VJ8,$V39,{126:1297,623:$VE9}),o($VJ8,$V39,{126:1298,623:$VE9}),{66:[1,1299]},{129:$V59,141:$V69,1018:1300},{721:$V79},{208:$V89},{626:[1,1301]},{149:[1,1302]},{360:$Va9,454:$Vb9,458:1303,776:$Vc9},{40:871,41:$Vv6,58:1029,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{71:[1,1304]},{453:[1,1305]},{66:[1,1306]},o([179,208,405,500],$Ve9,{809:1307,626:$Vf9}),{149:$Vg9},{411:1308,412:$V37},{89:$VG9,476:1309,491:1110},o($VJ8,$VI9,{468:1310,129:$VJ9}),o($VJ8,$VI9,{468:1311,129:$VJ9}),o($VL8,[2,1556]),o($Vm7,[2,1558],{843:633,841:1312,772:$Vn7}),o($Vm7,[2,1559],{843:918,772:$Vn7}),{27:[1,1314],412:$Vt7,413:1313,426:$Vu7,582:$Vv7},{40:641,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,847:1315,848:1316},{40:874,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,845:1317,847:639},{89:[1,1318]},o($Vxa,[2,1576]),{91:[1,1319]},{89:$VG8,411:850,412:$V37},o($Vm7,[2,1551]),{412:$Vt7,413:1320,426:$Vu7,582:$Vv7},o($V2,$Vya,{27:[1,1321]}),o($V2,[2,207]),o([27,276,405,412,489,490,500],[2,1383]),o($VT7,[2,1384]),{89:[1,1322]},o($V2,[2,202]),o($V2,[2,208]),o($Vd9,[2,1446]),o($V2,[2,205]),o($V2,[2,210]),o($V2,[2,212]),o($V2,[2,213]),o($V2,[2,214]),o([27,405,500,758],$VC8,{252:839,156:1323,159:1324,89:$VD8}),o($V2,[2,218]),o($V2,[2,219]),{27:[1,1326],40:553,41:$Vv6,64:$Vw6,130:1325,131:1327,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V2,[2,225],{172:556,503:560,40:854,130:1328,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V2,$VQ8,{46:932,148:1329,51:$VK7}),{40:854,41:$Vv6,64:$Vw6,130:1330,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{27:[1,1332],395:[1,1331]},{27:[1,1334],129:$Vga,143:$Vha,456:1333,460:1335,462:$Via,463:$Vja},o($V2,[2,853]),o($V2,[2,1534]),o($V2,[2,1536],{172:556,503:560,40:854,130:1336,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V2,[2,1537]),{27:[1,1338],40:937,41:$Vv6,64:$Vw6,150:1337,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{207:1339,209:1340,621:$Vza},o($V2,[2,910]),{27:$VAa,40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:1348,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349,1023:1342,1026:1343,1030:1344,1031:1345,1032:1346},o($V2,[2,2239]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:1348,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349,1023:1351,1030:1344,1032:1352},o($VT8,[2,1483]),o($VU8,[2,1485]),{40:1353,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,797:$Vda,813:1199,815:1354},{2:$VBa,27:[1,1359],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:1368,241:$VHa,242:$Vy6,254:$Vz6,274:1365,277:1367,303:1421,355:1427,362:$Vma,392:$VIa,415:1355,417:1356,420:1357,422:1358,423:1360,424:$VJa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,508:$VLa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,909:1361,911:1362,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VY8,[2,1566]),{26:[1,1445],27:[1,1446]},o($V2,[2,35]),o([26,27,38,44,51,56,63,70,73,111],[2,161]),o($Vdb,[2,162]),o($Vdb,[2,163]),o([26,27,56,136],[2,190]),o($V2,[2,191]),o($V2,[2,192]),o($V2,[2,240]),o($Vp7,$V19,{45:1447,74:1448,623:$V29}),o($V2,$Veb,{503:560,172:1449,27:[1,1450],41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6}),o($V2,[2,244],{503:560,172:1451,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6}),{27:[1,1453],224:[1,1452]},{27:[1,1455],40:1457,41:$Vv6,64:$Vw6,172:556,202:1454,205:1456,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:1458},o($V2,[2,513]),o($V2,[2,614]),{27:[1,1460],40:1461,41:$Vv6,64:$Vw6,172:556,202:1459,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,529],{172:556,503:560,40:1461,202:1462,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($Vp7,$V19,{45:1463,74:1464,623:$V29}),o($V2,[2,538]),o($VJ8,$V39,{126:1465,623:$VE9}),{40:854,41:$Vv6,64:$Vw6,130:1466,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,642],{172:556,503:560,40:1467,27:[1,1468],41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V2,[2,643],{172:556,503:560,40:1469,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{27:[1,1471],598:$Vfb},{27:[1,1473],40:1457,41:$Vv6,64:$Vw6,172:556,202:1472,205:1474,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:1458},o($V2,[2,653]),o($Vp7,$V39,{126:1475,127:1476,623:$V49}),o($V2,[2,656]),o($V2,[2,662]),o($V2,[2,663]),o($V2,[2,665]),o($V2,[2,666]),{27:[1,1478],40:553,41:$Vv6,64:$Vw6,130:1477,131:1479,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V2,[2,669]),{27:[1,1481],40:553,41:$Vv6,64:$Vw6,130:1480,131:1482,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V2,[2,676],{172:556,503:560,40:854,130:1483,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{27:[1,1485],40:553,41:$Vv6,64:$Vw6,130:1484,131:1486,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V2,[2,686],{172:556,503:560,40:854,130:1487,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V2,[2,2152]),{179:$Vk8,303:1488},o($V2,[2,2178]),o($Vgb,$Ve9,{809:1489,626:$Vf9}),{27:[1,1491],40:680,41:$Vv6,58:1490,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:681,828:1492},o($V2,[2,2166]),{27:[1,1494],40:680,41:$Vv6,58:1493,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:681,828:1495},o($V2,[2,2170],{172:556,503:560,40:871,58:1496,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($Vp7,[2,2174]),o($Vp7,[2,2175]),o($V2,[2,2176]),o($V2,[2,2177]),{179:$Vk8,303:1497},o($V2,[2,2181]),o($V2,[2,2180]),{27:[1,1499],40:680,41:$Vv6,58:1498,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:681,828:1500},o($V2,[2,2183],{172:556,503:560,40:871,58:1501,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o([27,208,405,500],$Ve9,{809:1502,626:$Vf9}),{27:[1,1504],40:1503,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,2202]),o($Vp7,[2,1344]),o($Vp7,[2,1345]),o($Vp7,[2,1346]),o($V2,[2,2214]),o($V2,[2,2216]),o($V2,[2,2217]),{27:[1,1506],40:680,41:$Vv6,58:1505,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:681,828:1507},{27:[1,1509],454:$Vhb},o($V2,[2,2221]),{27:[1,1511],40:680,41:$Vv6,58:1510,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:681,828:1512},o($V2,[2,2226]),o($V2,$Vib,{303:1513,27:[1,1515],179:$Vk8,208:$Vjb}),{27:[1,1519],40:937,41:$Vv6,64:$Vw6,150:1516,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,808:1517,813:1520,814:1518},o($V2,[2,2191],{809:1521,208:$Ve9,626:$Vf9}),{27:[1,1524],46:1522,50:[1,1523],51:$VR8,78:1525},o($V2,[2,63]),{27:[1,1527],40:871,41:$Vv6,58:1526,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,92]),{27:[1,1529],40:1076,41:$Vv6,60:1528,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vp7,[2,101]),{27:[1,1531],66:[1,1530]},{27:[1,1533],42:1532,360:$Vkb,776:$Vlb},o($V2,[2,90]),{27:[1,1537],99:1536,289:$Vmb,290:$Vnb,291:$Vob,292:$Vpb,293:$Vqb,294:$Vrb,295:$Vsb},o($V2,[2,113]),{89:$Vtb,102:1545},{89:$Vtb,102:1547},o($VP8,$Vub,{105:1548,115:1549,826:1550,307:$Vvb}),{27:[1,1553],107:[1,1552]},o($V2,[2,118]),o($V2,[2,126]),o($V2,[2,127]),{207:1554,209:1555,621:$Vza},{27:[1,1557],626:$Vwb},o($V2,[2,49]),o($V2,[2,87]),{27:[1,1558],117:$Vw9},{27:[1,1559],75:1056,77:1057,98:$Vm9,100:1050,101:$Vn9,103:$Vo9,104:1053,106:$Vp9,109:$Vq9,536:$Vr9,654:$Vs9},o($V2,$Vxb),o($VF9,$Vj9),o($V2,[2,50]),o($V2,[2,94]),o($V2,[2,62]),{27:[1,1562],46:1560,50:[1,1561],51:$VR8,78:1563},{27:[1,1565],40:1239,41:$Vv6,60:1564,64:$Vw6,128:1566,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,153]),o($V2,[2,158]),{510:[1,1567]},{40:1076,41:$Vv6,60:1570,64:$Vw6,112:1568,114:1569,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,122]),o($Vyb,$Vzb,{510:[1,1571]}),{40:1076,41:$Vv6,60:1574,64:$Vw6,122:1572,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,824:1573},{89:$VAb,118:1575,119:1576},{27:[1,1579],42:1578,360:$Vkb,776:$Vlb},o($V2,[2,183]),o($V2,[2,178]),o($V2,[2,186]),o($V2,[2,187]),{27:[1,1581],40:1580,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,188]),{27:[1,1583],40:1582,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,195]),{27:[1,1585],40:553,41:$Vv6,64:$Vw6,130:1584,131:1586,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V2,[2,692],{172:556,503:560,40:854,130:1587,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{46:1588,51:$VK7},{224:[1,1589]},{40:871,41:$Vv6,58:1590,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:1076,41:$Vv6,60:1591,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{66:[1,1592]},{42:1593,360:$Vkb,776:$Vlb},{99:1536,289:$Vmb,290:$Vnb,291:$Vob,292:$Vpb,293:$Vqb,294:$Vrb,295:$Vsb},o($V2,$Vub,{826:1550,105:1594,307:$VBb}),{107:[1,1596]},{207:1554,621:$VCb},{626:$Vwb},o($V2,[2,60]),{98:$Vy9,100:1050,101:$Vn9,103:$Vo9,104:1097,106:$Vz9,109:$Vq9,536:$VA9,654:$VB9},{46:1598,50:[1,1599],51:$VK7},{40:1076,41:$Vv6,60:1564,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{598:$Vfb},{40:1076,41:$Vv6,60:1601,64:$Vw6,112:1600,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{89:$VDb,118:1602},o($V2,$Ve7,{843:633,841:647,475:1604,772:$Vn7}),o($V2,[2,875],{95:$VEb}),o($VFb,[2,899]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:1606,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V2,[2,871]),o($V2,$Ve7,{843:633,841:647,475:1627,772:$Vn7}),o($V2,$Ve7,{841:631,842:632,843:633,844:634,478:1628,475:1629,772:$Vf7}),o($V2,[2,876]),o($V2,$VTb,{95:[1,1630]}),o($V2,[2,901],{95:[1,1631]}),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,95:$VVb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:1632,241:$VHa,242:$Vy6,254:$Vz6,274:1638,277:1636,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:1634,494:1633,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:[1,1639],40:553,41:$Vv6,64:$Vw6,130:1641,131:1640,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($Vp7,[2,861]),{27:[1,1642],40:553,41:$Vv6,64:$Vw6,130:1644,131:1643,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V2,[2,715]),{405:[1,1646],500:[2,927]},{405:$VWb,500:[2,926]},{2:$Vu6,40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,394:865,395:$Vt6,396:537,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,881:550,913:539,915:866,916:542,926:867,927:868},{2:$VG6,38:$VI6,63:$VJ6,147:$VK6,170:$VL6,360:$VH8,412:$VI8,426:$VO6,455:859,464:$VP6},{2:$VQ6,41:$Vv6,64:$Vw6,172:582,242:$Vy6,254:$Vz6,425:580,426:$VS6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{3:583,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,26:$VU6,30:443,31:444,32:445,33:446,38:$VV6,43:619,63:$VW6,86:$VX6,135:620,137:585,147:$VY6,153:$VZ6,155:$V_6,161:450,162:451,163:452,164:453,165:454,170:$V$6,307:$V07,312:514,313:515,363:584,364:417,365:418,366:419,367:420,371:604,373:477,376:455,377:456,378:457,379:458,380:459,381:460,382:461,392:$V17,393:$V27,411:603,412:$V37,453:$V47,464:$V57,467:$V67,471:517,473:626,480:526,481:527,484:$V77,495:$V87,840:$V97,994:464,995:465,996:466,997:467,998:468,999:469,1000:470,1001:471,1002:472,1003:473,1004:474,1005:475,1006:$Va7,1021:$Vb7,1035:$Vc7},o($Vg7,$Vh7),o($V2,$VXb,{397:1647,400:1649,438:1650,27:[1,1648],790:$VYb}),o($V2,[2,700]),o($V2,$VXb,{438:1650,397:1652,790:$VZb}),o($V2,$VXb,{438:1650,397:1654,790:$VZb}),o($VQ9,$VR9,{921:1655,489:$VS9,535:$VT9}),o($VZ7,[2,1894],{920:795,855:1656,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),{27:$V_b,40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555,881:550,885:552,915:1657,917:1658,926:545,927:546,928:547,929:548},o($V$b,[2,1885]),o($V$b,[2,1886]),o($VZ7,[2,1893],{920:1166,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($VU9,[2,1897]),o($V0c,[2,763]),o($VU9,[2,1898]),o($V0c,[2,764]),o($VU9,[2,1899]),o($V0c,[2,765]),o($VU9,[2,1900]),o($V0c,[2,766]),o($VU9,[2,1901]),o($V0c,[2,767]),o($VU9,[2,1902]),{27:[1,1661],436:$V1c},{2:[1,1662],436:[1,1663]},o($VU9,[2,1904]),{27:[1,1665],436:$V2c},{27:[1,1667],436:$V3c},{27:[1,1669],436:$V4c},{27:[1,1671],436:$V5c},{2:[1,1672],436:[1,1673]},o($VU9,[2,1909]),{27:[1,1675],436:$V6c},{27:[1,1677],436:$V7c},{27:[1,1679],436:$V8c},{27:[1,1681],436:$V9c},{2:[1,1682],436:[1,1683]},o($Vac,[2,1888],{130:549,881:550,172:556,503:560,40:854,926:867,927:868,915:1684,41:$Vv6,64:$Vw6,89:$Vw8,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V1a,$VR9,{921:1685,489:$VS9,535:$VT9}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,881:550,915:1686,926:867,927:868},{436:$V1c},{436:$V2c},{436:$V3c},{436:$V4c},{436:$V5c},{436:$V6c},{436:$V7c},{436:$V8c},{436:$V9c},o($Vaa,[2,1921]),o($Vca,[2,1924]),{27:[1,1688],930:$Vbc},o($V4a,[2,1964]),o($V4a,[2,1965]),{179:$Vcc},o($Vdc,[2,1350]),{180:$Vec},o($Vfc,[2,1353]),o($Vaa,[2,1922]),{930:$Vbc},o($Vca,[2,1926]),o($Vp8,[2,1968]),o($Vp8,[2,1969]),o($Vp8,[2,1970]),o([2,41,54,64,91,95,136,142,179,180,208,224,237,238,242,254,278,348,349,350,351,352,353,354,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,758,759,772,777,788,790,878],[2,1351]),o($Vgc,[2,1354]),o($Vca,[2,1923]),o($Vca,[2,1925]),o($Vs8,$Vhc,{820:1691,821:1692,822:1693,823:1694,138:$Vic}),o($Vx8,[2,1431]),o($Vjc,[2,1404]),o($Vjc,[2,1405]),o($Vkc,[2,1941]),{91:[1,1696]},o($Vgc,[2,1943]),o($Vlc,[2,1407]),o($Vlc,[2,1408]),o($Vgc,[2,1944]),o($Vxb,[2,1945]),o($Vxb,[2,1940],{934:1697}),o($Vxb,[2,1947]),o($Vxb,[2,1948]),o($Vxb,[2,1949]),o($Vxb,[2,1950]),o($Vxb,[2,1951]),o($Vxb,[2,1952]),o($Vxb,[2,1953]),o($Vxb,[2,1954]),o($Vxb,[2,1955]),o($Vxb,[2,1956]),o($Vxb,[2,1957]),o($Vxb,[2,1958]),o($Vxb,[2,1959]),o($Vxb,[2,1960]),{137:1220,307:$V07,371:927,411:603,412:$V37,935:1206,937:1208,939:1210,941:1212,943:1214,945:1216,947:1218},o($Vx8,[2,1430]),o($Vy8,[2,1476]),{27:[1,1699],454:$Vmc},o($V2,[2,813]),{27:[1,1701],57:[1,1700]},o($V2,[2,817]),o($V2,[2,818]),{27:[1,1703],40:1702,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{27:[1,1705],40:553,41:$Vv6,64:$Vw6,130:1704,131:1706,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},{40:1707,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:1708,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{2:$Vea,91:$Vfa,93:1709},{2:$Vea,91:$Vfa,93:1710},{91:$Vnc,95:$Voc},o($Vxb,[2,1417],{95:[1,1713]}),o($Vpc,[2,1415]),o([2,27,41,50,54,64,89,91,95,136,138,144,179,180,208,224,237,238,242,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,724,759,772,788,790,878],$Vzb,{510:[1,1714]}),o($V2,[2,755]),o($V2,[2,756]),o($V2,[2,2132]),o($V2,[2,2133],{503:560,172:1715,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6}),o($V2,[2,2135]),o($V2,[2,2136]),o($V2,[2,2137]),o($V2,[2,2138]),o($Vqc,[2,1818]),{138:$Vka,223:1716,362:$Vma,775:$Vqa,906:1251,907:1252},{138:$Vka,223:1717,362:$Vma,775:$Vqa,906:1251,907:1252},o($Vrc,[2,1826]),o($Vrc,[2,1827]),o($Vrc,[2,1828],{138:[1,1718]}),{362:[1,1719],775:[1,1720]},{362:[1,1721]},o($VE8,[2,2131]),o($VF8,$Ve7,{843:633,841:647,475:1722,772:$Vn7}),o($Vm7,[2,1546]),o($V2,$Vya),{40:1723,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o([405,500,758],$VC8,{252:839,156:1724,89:$Vta}),{40:854,41:$Vv6,64:$Vw6,130:1725,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{57:[1,1726]},{129:$Vsc,143:$Vtc,456:1727,462:$Via,463:$Vja},{40:1076,41:$Vv6,60:1238,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,816:1730},{395:[1,1731]},{129:$Vsc,143:$Vtc,456:1732,462:$Via,463:$Vja},{40:937,41:$Vv6,64:$Vw6,150:1337,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,396:1733,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,881:550,913:539,915:866,916:542,926:867,927:868},o($Vua,$VP9,{920:1166,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o([2,91,95,142,361,395,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,777,790,878],$V2a,{157:1177,758:$Vba}),{207:1734,621:$VCb},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:1348,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349,1023:1735,1030:1344,1032:1352},{40:1353,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{2:$VBa,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,415:1736,417:1737,423:1738,424:$VJa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:1361,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:874,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,847:1315},{89:[1,1740]},{26:[1,1741]},{46:1742,50:[1,1743],51:$VK7},{40:871,41:$Vv6,58:1526,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:1076,41:$Vv6,60:1744,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{66:[1,1745]},{42:1746,360:$Vkb,776:$Vlb},{42:1747,360:$Vkb,776:$Vlb},{40:1580,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:1748,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,$Veb,{503:560,172:1749,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6}),o($VJ8,$V19,{45:1750,623:$Vx9}),{40:1461,41:$Vv6,64:$Vw6,172:556,202:1751,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:1461,41:$Vv6,64:$Vw6,172:556,202:1752,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($VJ8,$V19,{45:1753,623:$Vx9}),{40:1754,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:1461,41:$Vv6,64:$Vw6,172:556,202:1755,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($VJ8,$V39,{126:1756,623:$VE9}),{40:854,41:$Vv6,64:$Vw6,130:1757,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1758,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1484,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1759,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:871,41:$Vv6,58:1490,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:871,41:$Vv6,58:1493,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:871,41:$Vv6,58:1760,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vgb,$Ve9,{809:1761,626:$Vf9}),{40:1762,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:871,41:$Vv6,58:1505,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{454:$Vhb},{40:871,41:$Vv6,58:1510,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,$Vib,{303:1513,179:$Vk8,208:$Vjb}),o($V2,$Ve7,{843:633,841:647,475:1629,772:$Vn7}),o($V2,$VTb,{95:$VEb}),{40:854,41:$Vv6,64:$Vw6,130:1763,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1764,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vm7,[2,1560],{843:918,772:$Vn7}),{411:1765,412:$Vq1,419:1766},o($Vuc,[2,1562],{411:1767,412:$V37}),o($VO8,[2,1570]),o($VN8,[2,1572],{95:[1,1768]}),o($VN8,[2,1573],{95:$Vwa}),o($Vu8,$Vv8,{933:828,849:1769,239:1770,850:1771,27:$V6,797:$Vn6}),o($Vm7,[2,1550]),{411:1765,412:$V37},o($V2,[2,206]),{27:$V6,40:1076,41:$Vv6,60:1775,64:$Vw6,122:1772,125:1773,172:556,239:1777,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,797:$Vn6,813:1776,824:1573,825:1774},o($VP8,$V2a,{157:1778,160:1779,758:$V3a}),o($V2,$V2a,{157:1780,758:$Vba}),o($V2,$VQ8,{46:932,148:1781,78:1783,27:[1,1782],51:$VR8}),o($V2,[2,227]),o($V2,$VQ8,{46:932,148:1784,51:$VK7}),o($V2,$VQ8,{46:932,148:1785,51:$VK7}),o($V2,[2,220]),o($V2,$VQ8,{46:932,148:1786,51:$VK7}),{27:[1,1788],454:$Vvc},o($V2,[2,850]),{27:[1,1790],395:[1,1789]},o($V2,[2,854]),o($V2,[2,855]),o($V2,[2,1538]),o($V2,[2,1535]),o($V2,[2,1539],{172:556,503:560,40:937,150:1791,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o([27,485],$Vwc,{498:1792,488:$Vxc}),o([405,485,500],$Vwc,{498:1794,488:$Vxc}),{797:[1,1796],988:[1,1795]},o($Vyc,$Vzc,{1024:1797,1027:1798,95:[1,1799],395:[1,1800]}),o($VAc,$Vzc,{1024:1801,395:$VBc}),o($VCc,[2,2247]),o($VDc,[2,2249],{95:[1,1803]}),{27:[1,1805],54:[1,1804]},o($VEc,[2,2256]),o([27,54],[2,2257]),o($VFc,[2,1486],{138:[1,1806]}),o($VGc,[2,1489]),o($VAc,$Vzc,{1024:1807,95:$VHc,395:$VBc}),{54:[1,1809]},o($VV8,[2,1479]),o($VX8,[2,1481]),{395:$VIc,416:1810,421:1811,851:1812,853:1813},o($VJc,$VKc,{851:1812,853:1813,416:1816,421:1817,27:[1,1818],95:[1,1819],395:$VIc,418:$VLc}),{395:$VMc,416:1820,851:1821},o($Vuc,[2,736],{851:1821,416:1823,395:$VMc}),o($Vuc,[2,737],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,909:1361,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:1739,851:1821,416:1824,417:1825,882:1835,41:$Vv6,54:$VNc,64:$Vw6,73:$VCa,89:$VGb,95:$VOc,136:$Vi7,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VPc,224:$VQc,236:$VGa,237:$VRc,238:$VSc,241:$VHa,242:$Vy6,254:$Vz6,278:$VTc,362:$Vma,392:$VIa,395:$VMc,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VUc,509:$VJb,513:$VKb,514:$VVc,516:$VOa,518:$VWc,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,682:$VZc,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),{95:[1,1842],395:$V0d},o($V1d,[2,1849]),o($V2d,[2,1851],{95:[1,1843]}),o($V3d,[2,758]),{95:[1,1844]},o([27,91,95,361,395,405,418,500,772],$Vi8,{172:556,503:560,40:805,97:806,303:808,801:809,813:815,803:816,355:817,802:818,910:1845,912:1846,882:1860,887:1861,41:$Vv6,54:$V4d,64:$Vw6,136:$Vm8,144:$V5d,179:$Vn8,180:$Vo8,208:$V6d,224:$V7d,237:$V8d,238:$V9d,242:$Vy6,254:$Vz6,278:$Vad,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,527:$VF6,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($V1d,$Vmd),o($Vnd,$Vi8,{172:556,503:560,40:805,97:806,303:808,801:809,910:1867,882:1880,41:$Vv6,54:$Vod,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,242:$Vy6,254:$Vz6,278:$Vsd,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,527:$Vj7,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),{136:$VAd},o($VBd,[2,1671]),{27:[1,1884],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1882,277:1883,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:1887,241:$VHa,242:$Vy6,254:$Vz6,274:1885,277:1886,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VCd,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1888,277:1889,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:[1,1890],801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VCd,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1892,277:1893,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:[1,1894],801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{89:$Vx6,881:1895,885:1896},{27:[1,1899],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1897,277:1898,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:[1,1903],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1901,277:1904,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,587:$VDd,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,788:$VEd,795:$Vbb,801:1422,802:1428,831:1389,833:1403,883:1900,884:1377,888:1902,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426,1036:1905,1037:1906,1038:1908,1039:1909},o($VFd,[2,1702]),o($VGd,[2,1800]),o($VBd,$VHd,{892:1911,898:1912,89:$VId}),{89:$VId,892:1914,898:1915},o($VGd,[2,1804]),o($VGd,[2,1805]),o($VGd,[2,1806]),o($VFd,[2,1807]),o($VFd,[2,1808]),o($VFd,[2,1811]),o($VFd,[2,1812]),o($VGd,[2,1821]),o([2,27,41,50,54,64,89,91,95,136,144,179,180,208,224,237,238,242,254,278,361,395,405,418,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,724,759,772,788,790,878],$VJd,{138:[1,1916]}),{89:[2,1987]},{89:[2,1988]},{89:[2,1989]},{89:[2,1990]},{89:[2,1991]},{89:[2,1992]},{89:[2,1993]},o($VBd,$VKd,{950:1917,956:1918,952:1919,958:1920,685:$VLd}),{27:[1,1923],685:$VLd,952:1922,958:1924},o($VGd,[2,1973]),o($VGd,[2,1974]),{138:$Vka,223:1248,362:$Vma,509:$Vna,775:$Vqa,827:1925,901:$Vra,906:1251,907:1252},o($VFd,[2,1822]),o($VFd,[2,1815]),o($VFd,[2,1975]),o($VFd,[2,1977],{952:1926,685:$VMd}),o($VFd,[2,1981]),o($VFd,[2,1982]),o($VGd,[2,1823]),o($VGd,[2,1824]),o($VNd,[2,1999]),o($VNd,[2,2000]),o($VNd,[2,2001]),{89:[1,1928]},{89:[1,1929]},{89:[1,1930]},o($VFd,[2,1825]),o($VFd,[2,1491],{138:[1,1931]}),o($VFd,[2,2002]),o($VFd,[2,2003]),o($VFd,[2,2004]),o($VGd,[2,1835]),o($VGd,[2,1836]),o($VGd,[2,1837]),{89:[1,1932]},{89:[1,1933]},{89:[1,1934]},o($VFd,[2,1838]),o($VFd,[2,1839]),o($VGd,[2,1840]),o($VGd,[2,1841]),{89:[2,2093]},{89:[2,2094]},{89:[2,2095]},{89:[2,2096]},{89:[2,2097]},{89:[2,2098]},{89:[2,2099]},{89:[2,2100]},{89:[2,2101]},{89:[2,2102]},{89:[2,2103]},{89:[2,2104]},{89:[2,2105]},{89:[2,2106]},{27:[1,1936],41:[1,1935]},o($V2,[2,36]),{27:[1,1939],40:1457,41:$Vv6,64:$Vw6,172:556,184:1937,186:1938,187:1940,195:1941,202:1942,205:1943,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:1458},o($V2,[2,267]),o([27,405,500,654],$VOd,{173:1944,174:1945,175:1946,176:1947,177:1948,178:1949,86:[1,1950]}),o($V2,[2,243],{503:560,172:1951,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6}),o($V2,[2,246]),{27:[1,1953],598:$VPd},o($VQd,[2,1377]),o($VRd,$VSd,{310:1954,311:1955,356:1956,89:[1,1957]}),o($V2,[2,511],{172:556,503:560,40:1461,202:1958,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($VTd,$VSd,{356:1956,310:1959,89:$VUd}),o($VVd,$VWd,{138:[1,1961]}),o($VXd,[2,1443],{138:[1,1962]}),{89:$VYd,317:1963,320:1964},o($V2,[2,524],{172:556,503:560,40:1461,202:1966,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o([51,86,89,101,106,109,136,206,208,256,269,288,307,361,405,500,536,654],$VWd,{138:[1,1967]}),{89:$VZd,317:1968},{27:[1,1971],40:1461,41:$Vv6,64:$Vw6,172:556,202:1970,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,541],{172:556,503:560,40:1461,202:1972,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{40:1461,41:$Vv6,64:$Vw6,172:556,202:1973,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,667],{46:1974,51:$VK7}),o($V2,$V_d,{389:1975,27:[1,1976],539:$V$d,719:$V0e}),o($V2,[2,644],{172:556,503:560,40:1979,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V2,$V_d,{389:1980,539:$V$d,719:$V0e}),o($V1e,[2,1373]),o($VQd,[2,1374]),{89:$VYd,317:1981,320:1982},o($V2,[2,650],{172:556,503:560,40:1461,202:1983,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{89:$VZd,317:1984},{27:[1,1986],40:1457,41:$Vv6,64:$Vw6,172:556,202:1985,205:1987,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:1458},o($V2,[2,658]),{27:[1,1989],46:1988,51:$VR8,78:1990},o($V2,[2,670]),o($V2,[2,671],{46:1991,51:$VK7}),o($VP8,$V2e,{390:1992,391:$V3e}),o($V2,[2,677]),o($V2,$V2e,{390:1994,391:$V3e}),o($V2,$V2e,{390:1995,391:$V3e}),o($V2,[2,683]),o($V2,[2,684],{172:556,503:560,40:854,130:1996,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V2,[2,688]),o($V2,[2,687]),o($V2,[2,2153]),o($V2,[2,2192],{208:[1,1997]}),o($V2,[2,2165]),o($V2,[2,2167]),o($V2,[2,2168]),o($V2,[2,2169]),o($V2,[2,2171]),o($V2,[2,2172]),o($V2,[2,2173]),o($V2,[2,2179]),o($VP8,$VQ8,{46:932,78:933,148:1998,152:1999,51:$VR8}),o($V2,[2,2184]),o($V2,$VQ8,{46:932,148:2000,51:$VK7}),o($V2,$VQ8,{46:932,148:2001,51:$VK7}),o($V2,$V4e,{27:[1,2003],208:$V5e}),o($V2,$V6e,{27:[1,2005],142:[1,2004]}),o($V2,[2,2203]),o($V2,[2,2215]),o($V2,[2,2218]),o($V2,[2,2219]),{41:$Vv6,64:$Vw6,172:2006,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},o($V2,[2,2222],{503:560,172:2007,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6}),o($V2,[2,2225]),o($V2,[2,2227]),o($V2,[2,2228]),o($V2,[2,2230]),{179:$Vk8,303:2008},o($V2,[2,2232]),o($Vd9,[2,1380]),o($Vd9,[2,1381]),o($Vd9,[2,1447]),o($Vd9,$V7e),o([2,27,41,54,64,91,95,136,179,180,208,224,237,238,242,254,278,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,625,626,635,650,674,682,683,707,720,759,772,788,790,878],[2,1403]),{208:[1,2009]},o($V8e,$V9e,{47:2010,75:2011,100:2012,654:$Vs9}),{27:[1,2015],51:[1,2013],53:[1,2014]},o($V2,[2,61]),o([51,405,500,536],$V9e,{100:2012,47:2016,654:$VB9}),o($V2,[2,42]),o($V2,[2,93]),{26:[1,2017],27:[1,2019],63:[1,2018]},o($V2,[2,73]),{27:[1,2021],40:1076,41:$Vv6,60:2020,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,78]),{27:[1,2023],40:2022,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,82]),o($Vp7,[2,1347]),o($Vp7,[2,1348]),o($V2,[2,112]),o($V2,[2,125]),o($Vae,[2,477]),o($Vae,[2,478]),o($Vae,[2,479]),o($Vae,[2,480]),o($Vae,[2,481]),o($Vae,[2,482]),o($Vae,[2,483]),o($V2,[2,114]),{97:2026,179:$Vk8,180:$Vl8,182:2024,183:2025,303:808,801:809},o($V2,[2,115]),o($V2,$Vbe,{27:[1,2027]}),o($V2,[2,129]),o($Vce,[2,1471]),{27:[1,2028],718:[1,2029]},{27:[1,2031],108:2030,116:2032,296:$Vde},o($V2,[2,130]),o([2,27,51,101,109,136,344,345,348,361,405,500,536],[2,1461]),o([2,51,101,109,136,344,345,348,405,500,536],[2,1462]),{97:2034,179:$Vk8,180:$Vl8,303:808,801:809},o($Vee,[2,1469]),o($V2,[2,88]),o($V2,[2,89]),o($V2,$Vfe,{27:[1,2035]}),o($V2,$Vge,{27:[1,2038],51:[1,2036],53:[1,2037]}),o($V2,[2,150]),o($V2,[2,151]),o($V2,[2,149]),o($V2,[2,159]),o($V2,[2,160]),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2039,241:$VHa,242:$Vy6,254:$Vz6,274:2041,277:2040,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($V2,$Vhe,{27:[1,2042]}),o($V2,[2,123]),{27:$Vie,214:2043,216:2045,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,241:$Vke,242:$Vle,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2072,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,511:$Vze,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{91:$VAe,95:$VBe},o($Vpc,[2,1448]),{54:[1,2076]},o($V2,$VCe,{27:[1,2077]}),o($V2,[2,135]),{40:1076,41:$Vv6,60:1570,64:$Vw6,112:2080,114:2081,172:556,210:2078,212:2079,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{27:[1,2083],40:2082,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,184]),o($V2,[2,179],{138:[1,2084]}),o($V2,[2,189]),{27:[1,2086],144:[1,2085]},o($V2,[2,196]),o($V2,$VDe,{27:[1,2087]}),o($V2,[2,691],{172:556,503:560,40:854,130:2088,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V2,[2,693]),o($V2,[2,696]),o($VEe,$V9e,{100:2012,47:2089,654:$VB9}),{598:$VPd},o($V2,[2,53]),{26:[1,2090],63:[1,2091]},{40:1076,41:$Vv6,60:2092,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:2093,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,$Vbe),{718:[1,2094]},{108:2095,296:$VFe},{988:[1,2097]},o($V2,$Vfe),o($V2,$Vge,{51:[1,2098],53:[1,2099]}),o($V2,$Vhe),{214:2100,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,241:$VHe,242:$VIe,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},o($V2,$VCe),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:2104,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,872]),{89:$VG9,491:2106},{91:$VJe,95:$VKe},o($VLe,$VMe,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2122,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2123,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2124,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2125,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{89:$Vw8,881:1895},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2126,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2127,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,788:$V_e,795:$VSb,801:1422,831:1617,883:1900,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626,1036:2128,1038:1908},o($VGd,$VHd,{892:1911,89:$V$e}),{89:$V$e,892:1914},o($V0f,$VJd,{138:[1,2131]}),o($VGd,$VKd,{950:1917,952:1919,685:$VMd}),{685:$VMd,952:1922},{138:$Vka,223:1248,362:$Vma,509:$Vna,775:$Vqa,827:2132,901:$Vra,906:1251,907:1252},{89:[1,2133]},{89:[1,2134]},{89:[1,2135]},{89:[1,2136]},{89:[1,2137]},{89:[1,2138]},o($V2,[2,873]),o($V2,[2,874]),o($V2,[2,868]),{89:$VH9,491:2106,492:2139},{89:$VG9,476:2140,491:1110},{2:$Vea,91:$Vfa,93:2141,95:$V1f},{2:$Vea,91:$Vfa,93:2143},{27:$V2f,91:$VJe,95:$V3f},o([2,41,54,64,73,89,91,95,136,138,146,179,180,224,236,237,238,241,242,254,278,362,392,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,507,508,509,511,513,514,516,518,521,526,527,530,541,542,557,579,587,589,598,601,602,617,620,623,626,634,650,659,662,669,674,682,683,744,745,746,753,759,770,772,775,776,779,780,783,784,785,788,790,795,878,963],$Vi7,{882:1835,208:$VPc,625:$VXc,635:$VYc,707:$V_c,720:$V$c}),o($V4f,[2,1787],{882:1880,54:$Vod,95:[1,2148],208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),{27:$V6,239:2149,797:$Vn6},o($V5f,$VMe,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($VT7,[2,883],{172:556,503:560,40:854,130:2150,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($VT7,$VC8,{252:839,156:2151,89:$Vta}),o($VU7,$VC8,{252:839,486:2152,156:2153,159:2154,89:$VD8}),o($VT7,[2,889],{172:556,503:560,40:854,130:2155,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($V6f,$VC8,{252:839,156:2156,89:$Vta}),o([27,51,276,412,489,490],$VC8,{252:839,159:2154,486:2157,156:2158,89:$VD8}),o($VX7,$V1,{406:2159}),o($VX7,$V1,{406:2160}),o($V2,[2,697]),o($V2,$VXb,{438:1650,397:2161,790:$VZb}),o($V2,[2,705]),o($V7f,$V8f),{27:[1,2163],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2166,277:2165,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,859:2164,860:2162,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($V2,[2,704]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2167,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,859:2164,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V2,[2,703]),{27:$V_b,40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555,881:550,885:552,915:2168,917:1658,926:545,927:546,928:547,929:548},o($VZ7,[2,1895],{920:1166,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($V9f,$Vaf,{922:2169,924:2170,142:$Vbf,777:$Vcf}),o($Vac,$Vaf,{922:2173,142:$Vdf,777:$Vcf}),o($Vac,$Vaf,{922:2175,142:$Vdf,777:$Vcf}),o($VU9,[2,1903]),o($V0c,[2,768]),o($V0c,[2,760]),o($V0c,[2,769]),o($VU9,[2,1905]),o($V0c,[2,770]),o($VU9,[2,1906]),o($V0c,[2,771]),o($VU9,[2,1907]),o($V0c,[2,772]),o($VU9,[2,1908]),o($V0c,[2,773]),o($V0c,[2,761]),o($V0c,[2,774]),o($VU9,[2,1910]),o($V0c,[2,775]),o($VU9,[2,1911]),o($V0c,[2,776]),o($VU9,[2,1912]),o($V0c,[2,777]),o($VU9,[2,1913]),o($V0c,[2,778]),o($V0c,[2,762]),o($V0c,[2,779]),o($Vac,$Vaf,{922:2176,142:$Vdf,777:$Vcf}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,881:550,915:2177,926:867,927:868},o($Vef,$Vaf,{922:2169,142:$Vdf,777:$Vcf}),{89:[1,2178]},o($Vca,[2,1934]),o($Vdc,[2,1349]),o($Vfc,[2,1352]),o($Vs8,$Vff,{822:2179,823:2180,138:$Vic}),o($Vx8,[2,1432]),o($Vgf,[2,1433]),o($Vx8,[2,1435],{822:1693,820:2181,138:$Vhf}),{40:2183,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,797:$Vda,813:1199,815:2184},o($Vkc,[2,1942]),o($Vxb,[2,1946]),{40:2185,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,814]),{27:[1,2188],40:2186,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,360:$Va9,454:$Vb9,458:2187,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,776:$Vc9},o($V2,[2,819]),o($Vif,[2,825]),o($V2,[2,829]),o($Vif,[2,826]),o($V2,[2,830]),o($V2,[2,831]),o($Vif,[2,827]),o($Vif,[2,828]),o($Vjf,[2,1413]),o($Vjf,[2,1414]),o([2,27,51,71,86,89,91,101,106,109,136,142,276,288,307,361,405,412,489,490,500,536,654,758],[2,1412]),{27:$V6,40:1239,41:$Vv6,60:2191,64:$Vw6,128:2190,172:556,239:2189,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,797:$Vn6},{40:1076,41:$Vv6,60:1238,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,816:2192},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2039,241:$VHa,242:$Vy6,254:$Vz6,274:2193,277:2040,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,511:$Vze,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($V2,[2,2134]),o($Vqc,[2,1819]),o($Vqc,[2,1820]),o($Vrc,[2,1829],{362:[1,2194],775:[1,2195]}),o($Vrc,[2,1831]),{362:[1,2196]},o($Vrc,[2,1832]),o($VF8,[2,1543]),o($Vsa,$Vhc,{822:1693,820:2197,138:$Vhf}),o($V2,$V2a,{157:2198,758:$Vba}),o($V2,$VQ8,{46:932,148:1781,51:$VK7}),{454:$Vmc},{57:[1,2199]},{40:1702,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1704,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{91:$Vnc,95:$Vkf},{454:$Vvc},{395:[1,2201]},o($V2,$VXb,{397:1647,438:1650,790:$VZb}),{485:$Vwc,488:$Vxc,498:2202},o($VAc,$Vzc,{1024:2203,95:$VHc,395:$VBc}),{395:$VMc,416:1810,851:1821},o($VL8,$VKc,{416:1816,851:1821,95:[1,2204],395:$VMc,418:$VLc}),{95:[1,2205],395:$V0d},o([2,91,95,361,395,405,418,500,772],$Vi8,{172:556,503:560,40:805,97:806,303:808,801:809,910:1845,882:1860,41:$Vv6,54:$VNe,64:$Vw6,136:$Vj8,144:$VOe,179:$Vk8,180:$Vl8,208:$VPc,224:$VPe,237:$VQe,238:$VRe,242:$Vy6,254:$Vz6,278:$VSe,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,508:$VTe,509:$VUe,514:$VVe,518:$VWe,527:$Vj7,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($Vu8,$Vv8,{933:1222,849:1769}),{41:[1,2206]},o($VEe,$V9e,{100:2012,47:2207,654:$VB9}),{51:[1,2208],53:[1,2209]},{26:[1,2210],63:[1,2211]},{40:1076,41:$Vv6,60:2212,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:2022,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:2082,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{144:[1,2213]},o($Vlf,$VOd,{177:1948,173:2214,175:2215,86:$Vmf}),{40:1461,41:$Vv6,64:$Vw6,172:556,184:1937,187:2217,202:2218,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($VTd,$VSd,{356:1956,310:2219,89:$VUd}),{89:$VZd,317:2220},{40:1461,41:$Vv6,64:$Vw6,172:556,202:2221,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,$V_d,{389:1975,539:$V$d,719:$V0e}),{89:$VZd,317:1981},{40:1461,41:$Vv6,64:$Vw6,172:556,202:2222,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{46:1988,51:$VK7},o($V2,$V2e,{390:2223,391:$V3e}),o($V2,$VDe),o($V2,$VQ8,{46:932,148:2224,51:$VK7}),o($V2,$V4e,{208:$V5e}),o($V2,$V6e,{142:[1,2225]}),o($Vnf,$VC8,{252:839,156:2153,89:$Vta}),o([51,276,412,489,490],$VC8,{252:839,156:2226,89:$Vta}),o($VL8,[2,1561]),o($Vuc,[2,1564]),o($Vuc,[2,1563]),{40:874,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,845:2227,847:639},{91:[1,2228]},{2:$Vea,91:$Vfa,93:2229},{2:$Vea,91:$Vfa,93:2230},{91:$VAe,95:[1,2231]},{2:$Vea,91:$Vfa,93:2232},o($Vxb,[2,1450],{95:[1,2233]}),{54:[1,2234]},{54:[1,2235]},o($Vpc,[2,1458]),o($V2,$Vof,{27:[1,2236]}),o($V2,[2,223]),o($V2,[2,222]),o($V2,[2,216]),o($V2,$VQ8,{46:932,148:2237,51:$VK7}),o($V2,[2,230]),o($V2,[2,228]),o($V2,[2,226]),o($V2,[2,224]),{40:2238,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,851]),{27:[1,2241],40:2239,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,360:$Va9,454:$Vb9,458:2240,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,776:$Vc9},o($V2,[2,856]),o($V2,[2,1540]),{27:[1,2243],485:[1,2242]},o([27,405,485,500],[2,920]),o($V2,[2,911],{485:[1,2244]}),{797:[1,2246],989:$Vpf},o($Vqf,[2,2049],{989:[1,2247]}),o($VP8,$VXb,{438:1650,397:2248,400:2249,790:$VYb}),o($V2,$VXb,{438:1650,397:2250,790:$VZb}),{27:$VAa,40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:1348,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349,1030:2251,1031:2252,1032:1346},{27:[1,2254],40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,396:2253,399:2255,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555,881:550,885:552,913:539,914:540,915:541,916:542,917:543,918:544,926:545,927:546,928:547,929:548},o($V2,$VXb,{438:1650,397:2256,790:$VZb}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,396:2253,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,881:550,913:539,915:866,916:542,926:867,927:868},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:1348,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349,1023:2257,1030:1344,1032:1352},{27:$VCd,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2260,277:2261,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426,1033:2258,1034:2259},o($VEc,[2,2255]),{40:1076,41:$Vv6,60:2263,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,508:[1,2262],527:$Vj7},o($V2,$VXb,{438:1650,397:2264,790:$VZb}),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:1348,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349,1030:2251,1032:1352},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2265,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626,1033:2258},o($VL8,[2,730]),o($Vuc,[2,735]),o($Vrf,$VXb,{852:2266,437:2268,397:2269,438:2270,400:2271,27:[1,2267],790:$VYb}),o([2,91,405,454,500,620,650,683,772,878],$VXb,{438:1650,852:2272,397:2273,790:$VZb}),{27:[1,2275],40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,396:2277,399:2278,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555,857:2274,858:2276,881:550,885:552,913:539,914:540,915:541,916:542,917:543,918:544,926:545,927:546,928:547,929:548},o($VL8,[2,731]),o($VL8,[2,733]),o($Vuc,[2,738]),o($Vuc,[2,743],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,909:1361,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:1739,851:1821,416:2279,417:2281,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,95:[1,2280],138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,395:$VMc,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),{2:$VBa,27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2284,241:$VHa,242:$Vy6,254:$Vz6,274:1365,277:1367,303:1421,355:1427,362:$Vma,392:$VIa,423:2282,424:$VJa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,508:$VLa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,909:2283,911:2285,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vuc,[2,734]),o([2,91,361,405,454,500,620,650,683,772,878],$VXb,{438:1650,852:2266,397:2273,790:$VZb}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,396:2277,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,857:2286,881:550,913:539,915:866,916:542,926:867,927:868},o($Vuc,[2,739]),o($Vuc,[2,740]),o($V2d,[2,1852],{95:$Vsf}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,417:2288,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:1361,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2289,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2290,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2291,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2292,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2293,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2294,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vnd,$Vmd,{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:2295,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2296,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VFd,[2,1776]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,208:$VPc,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2122,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,882:2297,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2298,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2299,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2300,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2301,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2302,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{27:$Vtf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2305,241:$VHa,242:$Vy6,254:$Vz6,274:1365,277:1367,303:1421,355:1427,362:$Vma,392:$VIa,417:2303,422:2304,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,508:$VLa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,909:1361,911:1362,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,417:2307,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:1361,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{2:$Vuf},o($V1d,[2,1844]),o($Vnd,[2,1848]),o($Vvf,$Vwf,{879:2309,27:[1,2310],224:[1,2311]}),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2312,277:2314,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2313,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2317,277:2319,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2318,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2320,277:2322,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2321,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2323,277:2325,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2324,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:[1,2329],208:$V6d,530:[1,2327],625:$Vgd,626:[1,2326],635:$Vid,707:$Vkd,720:$Vld,882:2328,887:2330},{89:[1,2331],886:2332},{27:[1,2335],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2333,277:2334,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2336,277:2338,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2337,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2339,277:2341,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2340,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2342,277:2344,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2343,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2345,277:2347,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2346,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2348,277:2350,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2349,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VBd,[2,1698]),o($VFd,[2,1774]),{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2351,277:2352,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,813:1520,814:2353,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2355,277:2356,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,813:1520,814:2357,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2358,277:2359,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,813:1520,814:2360,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2361,277:2362,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,813:1520,814:2363,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2364,277:2365,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,813:1520,814:2366,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vnd,[2,1846]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2367,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2368,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2369,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2370,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{208:$VPc,530:[1,2372],625:$VXc,626:[1,2371],635:$VYc,707:$V_c,720:$V$c,882:2373},{89:[1,2374]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2375,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2376,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2377,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2378,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2379,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2380,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VFd,[2,1772]),{40:2381,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vyf,$Vzf,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VAf,[2,1704],{882:1880,54:$Vod,208:$VPc,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VBf,[2,1705],{882:1835,54:$VNc,208:$VPc,237:$VRc,238:$VSc,278:$VTc,508:$VCf,518:$VWc,625:$VXc,635:$VYc,707:$V_c,720:$V$c}),o($Vyf,$VDf,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VAf,[2,1706],{882:1880,54:$Vod,208:$VPc,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VFd,[2,1707]),o($Vyf,$VEf,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VAf,[2,1708],{882:1880,54:$Vod,208:$VPc,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VFd,[2,1709]),{54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c,882:1835},o($VGf,$VHf,{882:1860,887:1861}),o($VIf,[2,1710],{882:1880}),o($VFd,[2,1711]),o($VBd,[2,1681]),o($VFd,[2,1720]),{54:$V4d,91:$VJf,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861},{2:$Vea,54:$Vod,91:$Vfa,93:2383,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,882:1880},{2:$Vea,54:$VNc,91:$Vfa,93:2384,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c,882:1835},o($VBd,[2,1700]),{27:[1,2387],54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,587:$VDd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,788:$VEd,882:1860,883:2385,887:1861,888:2386,1036:1905,1037:1906,1038:1908,1039:1909},o($VFd,[2,1778]),{2:$VKf,40:1076,41:$Vv6,54:$VNc,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,208:$VPc,222:1369,223:1408,224:$VQc,236:$VGa,237:$VRc,238:$VSc,241:$VHa,242:$Vy6,254:$Vz6,274:2391,278:$VTc,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VCf,509:$VJb,513:$VKb,514:$VVc,516:$VOa,518:$VWc,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,587:$VLf,589:$VMf,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,682:$VZc,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,759:$VNf,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,788:$V_e,795:$VSb,801:1422,831:1617,882:1835,883:2389,889:2388,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626,1036:2128,1038:1908},{2:$VKf,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,589:$VMf,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,788:$V_e,882:1880,883:2395,889:2396,1036:2128,1038:1908},{27:[1,2399],587:[1,2398],589:$VOf,788:$VEd,1038:2400,1039:2401},{2:$VKf,587:[1,2403],589:$VMf,889:2402},{27:[1,2404]},o($VPf,[2,2299]),o($VQf,[2,2301],{1038:1908,1036:2405,788:$V_e}),{27:[1,2409],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2406,277:2407,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,759:[1,2408],770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VGd,[2,1802]),o($VFd,[2,1809]),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VRf,95:$VVb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2412,241:$VHa,242:$Vy6,254:$Vz6,274:1638,277:1636,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2411,494:2413,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VGd,[2,1803]),o($VFd,[2,1810]),{40:1239,41:$Vv6,60:2263,64:$Vw6,128:2415,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,508:$VSf,527:$VF6,797:$Vda,813:1199,815:2416},o($VGd,[2,1971]),o($VFd,[2,1976]),o($VGd,[2,2011]),o($VFd,[2,2012]),{40:2417,41:$Vv6,64:$Vw6,89:[1,2420],172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,970:2418,971:2419},o($VGd,[2,1972]),o($VFd,[2,1979]),o($VFd,[2,1980]),{27:[1,2422],41:$Vv6,64:$Vw6,172:2421,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},o($VFd,[2,1978]),{40:2417,41:$Vv6,64:$Vw6,89:[1,2423],172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,970:2418},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VTf,95:$VVb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2426,241:$VHa,242:$Vy6,254:$Vz6,274:1638,277:1636,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2425,494:2427,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VUf,128:1417,136:[1,2432],138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2430,241:$VHa,242:$Vy6,254:$Vz6,274:2428,277:2431,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VVf,95:$VWf,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2435,241:$VHa,242:$Vy6,254:$Vz6,274:2433,277:2436,303:1421,355:1427,362:$Vma,392:$VIa,395:$VXf,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426,992:2437},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:2440},o([27,41,64,73,89,95,138,146,179,180,224,236,241,242,254,362,392,462,463,466,504,505,507,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,797,963],$Vt7,{413:2443,91:$VYf,426:$Vu7,508:$VZf,582:$Vv7}),o([27,41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,462,463,466,504,505,507,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,797,963],$Vt7,{413:2444,91:$V_f,426:$Vu7,582:$Vv7}),o([27,41,64,73,89,91,95,138,146,179,180,224,236,241,242,254,362,392,462,463,466,504,505,507,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,797,963],$Vt7,{413:2446,426:$Vu7,582:$Vv7}),{27:[1,2448],42:2447,360:$Vkb,776:$Vlb},o($V2,[2,37]),o($V2,[2,615],{185:2449,361:[1,2450]}),o($V2,[2,265]),o($V2,[2,266]),o($V$f,$V0g,{188:2451,196:2452,255:2453,51:[1,2455],256:[1,2454]}),o($V1g,$V0g,{255:2453,188:2456,51:$V2g,256:$V3g}),o($V4g,$V5g,{203:2459,204:2460,118:2461,119:2464,89:$VAb,206:[1,2462],208:[1,2463]}),o($V6g,$V5g,{118:2461,203:2465,89:$VDb,206:$V7g,208:$V8g}),o($V2,$V9g,{27:[1,2468]}),{2:[1,2469]},o($VP8,$V9e,{100:2012,47:2470,75:2471,654:$Vs9}),{2:$V9e,47:2472,100:2012,654:$VB9},o([2,27,91,95,101,106,109,136,238,288,307,361,405,500,536,654],[2,253]),o($Vag,[2,255]),{97:2473,179:[1,2474],180:[1,2475],303:808,801:809},o($V2,[2,245]),o($V1e,[2,1376]),o($VQd,[2,1378]),o([27,136],$VOd,{177:1948,175:2476,86:$Vmf}),o($V2,$VOd,{177:1948,175:2477,86:$Vmf}),o($VRd,[2,605]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,357:2479,358:2478,359:2480,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349},o($VTd,$VSd,{356:1956,310:2481,89:$VUd}),{86:$Vmf,136:$VOd,175:2482,177:1948},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,357:2483,359:2484,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349},{40:2485,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,797:$Vda,813:1199,815:2486},{40:2487,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{27:[1,2489],318:2488,321:2490,343:$Vbg},o($V2,[2,530],{318:2492,343:$Vcg}),{27:$V6,91:$Vdg,226:2497,239:2498,339:2495,341:2496,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye,797:$Vn6},{89:$VZd,317:2499},{40:2485,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{318:2500,343:$Vcg},{91:$Vdg,226:2497,339:2501,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{89:$VYd,317:2502,320:2503},o($V2,[2,540],{172:556,503:560,40:1461,202:2504,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{89:$VZd,317:2505},{89:$VZd,317:2506},o($V2,[2,668]),o($V2,[2,641]),o($V2,[2,645]),o($V2,[2,1370]),o($V2,[2,1371]),o($V2,$V_d,{389:2507,539:$V$d,719:$V0e}),o($V2,[2,646]),o($V2,[2,648]),o($V2,[2,655]),{89:$VZd,317:2508},o($V2,[2,660]),{89:$VYd,317:2509,320:2510},o($V2,[2,651],{172:556,503:560,40:1461,202:2511,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{89:$VZd,317:2512},o($V2,[2,664]),o($V2,[2,673]),o($V2,[2,674]),o($V2,[2,672]),o($V2,$Veg,{27:[1,2513]}),o($VP8,[2,682]),o($V2,[2,678]),o($V2,[2,679]),o($V2,[2,685]),{97:2514,179:$Vk8,180:$Vl8,303:808,801:809},o($V2,$Vfg,{27:[1,2515]}),o($V2,[2,2187]),o($V2,[2,2185]),o($V2,[2,2188]),{97:2516,179:$Vk8,180:$Vl8,303:808,801:809},o($V2,[2,2193],{303:808,801:809,97:2517,179:$Vk8,180:$Vl8}),{27:[1,2522],129:[1,2520],143:[1,2518],462:$Vgg,463:[1,2521]},o($V2,[2,2204]),o($V2,[2,2220]),o($V2,[2,2223]),o($V2,[2,2231]),{97:2523,179:$Vk8,180:$Vl8,303:808,801:809},o($Vhg,$Vig,{48:2524,76:2525,132:2526,134:2527,133:2528,46:2529,78:2530,51:$VR8}),o($Vjg,$Vig,{133:2528,48:2531,132:2532,46:2533,51:$VK7}),o([2,27,51,101,109,136,361,405,500,536],[2,1460]),{27:[1,2535],52:2534,55:2537,80:2536,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},{27:[1,2539],54:$Vkg},o($V2,[2,69]),o([405,500,536],$Vig,{133:2528,132:2532,46:2533,48:2540,51:$VK7}),{27:[1,2542],61:2541,64:$Vlg,85:$Vmg,86:$Vng,87:$Vog,88:$Vpg},{27:[1,2549],64:$Vqg},o($V2,[2,74]),{27:[1,2551],67:2550,81:2552,89:[1,2553]},o($V2,[2,79]),o($V2,[2,46]),o($V2,[2,83]),{91:[1,2554],95:[1,2555]},o($Vrg,[2,261]),{54:[1,2556]},o($V2,[2,128]),o($Vee,[2,1473]),{27:[1,2557],54:$Vsg},o($V2,$Vtg,{27:[1,2559]}),o($V2,[2,131]),o($V2,[2,133]),o($Vug,$Vvg,{297:2560,299:2561,301:[1,2562]}),o([27,101,136,307,361,405,500],[2,1468]),o($V2,[2,152]),{27:[1,2564],52:2563,55:2537,80:2565,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},{27:[1,2567],54:$Vwg},o($V2,[2,154]),{2:$Vxg,511:$Vyg,837:2568},{2:$Vxg,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,511:$Vyg,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,837:2571,882:1880},{54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861},o($V2,[2,124]),o($Vzg,$VAg,{215:2572,217:2573,218:2574,220:2575,219:2576,225:2577,221:2579,177:2585,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VGg,253:$VHg}),o($VIg,$VAg,{219:2576,221:2579,177:2585,215:2587,218:2588,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VJg,253:$VKg}),o($VIg,$VAg,{219:2576,221:2579,177:2585,218:2588,215:2591,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VJg,253:$VKg}),o($VLg,[2,328]),o($VLg,[2,329]),o($VLg,[2,330]),o($VLg,[2,331]),o($VLg,[2,332]),o($VLg,[2,333]),o($VLg,[2,334]),o($VMg,[2,335]),o($VMg,[2,336]),o($VMg,[2,337]),o($VNg,[2,1516]),o($VNg,[2,1517]),o($VNg,[2,1518]),o($VNg,[2,1519]),o($VNg,[2,1520]),o($VNg,[2,1521]),o($VNg,[2,1522]),o($VNg,[2,1523]),o($VNg,[2,1524]),o($VNg,[2,1531],{838:2592,89:[1,2593]}),o($VNg,$VOg,{839:2594,89:$VPg}),o($VNg,$VOg,{839:2596,89:$VPg}),o($VNg,[2,1528]),{237:[1,2597]},{237:[1,2598]},{237:[1,2599]},{54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,511:$VQg,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},o($Vyb,[2,1509]),o([26,27,44,51,73,109,111,276,405,412,489,490,500,536,654],[2,1385]),{40:1076,41:$Vv6,60:1574,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,824:2601},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2602,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V2,[2,136]),{91:$VRg,95:[1,2604]},{2:$Vea,91:$Vfa,93:2605},o($Vrg,$VSg,{27:[1,2606]}),o($Vxb,[2,298],{95:[1,2607]}),o($V2,[2,177]),o($V2,[2,185]),{40:2608,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{27:[1,2610],97:2611,145:2609,146:$VTg,179:$Vk8,180:$Vl8,303:808,801:809},o($V2,[2,197]),o($V2,[2,694]),o($V2,[2,695]),o($Vjg,$Vig,{133:2528,132:2532,46:2533,48:2613,51:$VK7}),{61:2614,64:$Vlg,85:$Vmg,86:$Vng,87:$Vog,88:$Vpg},{64:[1,2615]},{67:2616,89:$VUg},o($V2,[2,57]),{54:$Vsg},o($V2,$Vtg),o($VVg,$Vvg,{297:2618,301:[1,2619]}),{989:$Vpf},{52:2563,55:2620,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},{54:$Vwg},o($VIg,$VAg,{215:2572,219:2576,221:2579,177:2585,218:2588,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VJg,253:$VKg}),{237:[1,2621]},{237:[1,2622]},{237:[1,2623]},{91:$VRg,95:[1,2624]},o($Vpc,$VSg),o($VFb,[2,900]),o($VFb,[2,905]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2625,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vvf,$Vwf,{879:2626,224:[1,2627]}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2628,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2629,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2630,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2631,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{208:$VPc,530:[1,2633],625:$VXc,626:[1,2632],635:$VYc,707:$V_c,720:$V$c,882:2328},{89:[1,2634]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2635,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2636,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2637,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2638,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2639,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2640,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VWg,$Vzf,{882:1860,54:$VNe,144:$VOe,208:$VPc,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VWg,$VDf,{882:1860,54:$VNe,144:$VOe,208:$VPc,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VWg,$VEf,{882:1860,54:$VNe,144:$VOe,208:$VPc,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VXg,$VHf,{882:1860}),{54:$VNe,91:$VJf,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},{54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,788:$V_e,882:1860,883:2385,1036:2128,1038:1908},{587:[1,2641],589:$VOf,788:$V_e,1038:2400},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2642,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,91:$VRf,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2643,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,60:2263,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,508:$VSf,527:$Vj7},{41:$Vv6,64:$Vw6,172:2421,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,91:$VTf,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2644,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,91:$VUf,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2645,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,91:$VVf,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2646,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VYg,$Vt7,{413:2647,91:$VYf,426:$Vu7,508:$VZf,582:$Vv7}),o($VYg,$Vt7,{413:2648,91:$V_f,426:$Vu7,582:$Vv7}),o([41,64,73,89,91,138,146,179,180,224,236,241,242,254,362,392,462,463,466,504,505,507,509,513,516,526,527,541,542,557,598,601,602,617,623,634,659,662,669,744,745,746,753,770,775,776,779,780,783,784,785,795,963],$Vt7,{413:2649,426:$Vu7,582:$Vv7}),o($V2,[2,902],{95:[1,2650]}),o($V2,[2,904],{95:$VEb}),o($VFb,[2,906]),o($V4f,[2,1795],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,274:1607,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,493:2651,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VFb,[2,907]),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2653,241:$VHa,242:$Vy6,254:$Vz6,274:2654,277:2652,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{95:$VZg},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2295,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{208:$VPc,625:$VXc,635:$VYc,707:$V_c,720:$V$c,882:2297},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2656,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V4f,[2,1796],{95:[1,2657]}),o($VT7,$VC8,{252:839,156:2658,89:$Vta}),o($VT7,[2,885]),o($VT7,[2,886]),o($VU7,[2,881]),o($V6f,[2,1411]),o($V6f,$VC8,{252:839,156:2659,89:$Vta}),o($VT7,$VQ8,{46:932,148:2660,51:$VK7}),o($VT7,$VQ8,{46:932,148:2661,51:$VK7}),o($VU7,$VQ8,{46:932,78:933,152:2662,148:2663,51:$VR8}),o($V2,$V3,{403:6,404:7,3:394,363:395,137:396,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,364:417,365:418,366:419,367:420,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,376:455,377:456,378:457,379:458,380:459,381:460,382:461,994:464,995:465,996:466,997:467,998:468,999:469,1000:470,1001:471,1002:472,1003:473,1004:474,1005:475,373:477,312:514,313:515,471:517,480:526,481:527,411:603,371:604,43:619,135:620,473:626,402:1122,410:1128,2:$V4,26:$VL9,38:$VV6,41:$V8,50:$V9,51:$Va,54:$Vb,63:$VW6,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$VX6,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$VY6,149:$Vy,151:$Vz,153:$VZ6,155:$V_6,158:$VC,170:$V$6,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,265:$VR,269:$VS,276:$VT,278:$VU,288:$VV,289:$VW,290:$VX,292:$VY,293:$VZ,294:$V_,295:$V$,296:$V01,301:$V11,302:$V21,304:$V31,305:$V41,307:$V07,316:$V61,322:$V71,342:$V81,343:$V91,344:$Va1,345:$Vb1,348:$Vc1,349:$Vd1,350:$Ve1,351:$Vf1,352:$Vg1,353:$Vh1,354:$Vi1,360:$Vj1,362:$Vk1,391:$Vl1,392:$V17,393:$VM9,395:$Vo1,412:$V37,426:$Vr1,428:$Vs1,429:$Vt1,430:$Vu1,431:$Vv1,432:$Vw1,433:$Vx1,434:$Vy1,435:$Vz1,436:$VA1,453:$VN9,454:$VC1,462:$VD1,463:$VE1,464:$V57,466:$VG1,467:$V67,484:$V77,485:$VJ1,489:$VK1,490:$VL1,495:$V87,496:$VN1,497:$VO1,504:$VP1,505:$VQ1,506:$VO9,507:$VS1,508:$VT1,509:$VU1,510:$VV1,511:$VW1,512:$VX1,513:$VY1,514:$VZ1,515:$V_1,516:$V$1,517:$V02,518:$V12,519:$V22,520:$V32,521:$V42,522:$V52,523:$V62,524:$V72,525:$V82,526:$V92,527:$Va2,528:$Vb2,529:$Vc2,530:$Vd2,531:$Ve2,532:$Vf2,533:$Vg2,534:$Vh2,535:$Vi2,536:$Vj2,537:$Vk2,538:$Vl2,539:$Vm2,540:$Vn2,541:$Vo2,542:$Vp2,543:$Vq2,544:$Vr2,545:$Vs2,546:$Vt2,547:$Vu2,548:$Vv2,549:$Vw2,550:$Vx2,551:$Vy2,552:$Vz2,553:$VA2,554:$VB2,555:$VC2,556:$VD2,557:$VE2,558:$VF2,559:$VG2,560:$VH2,561:$VI2,562:$VJ2,563:$VK2,564:$VL2,565:$VM2,566:$VN2,567:$VO2,568:$VP2,569:$VQ2,570:$VR2,571:$VS2,572:$VT2,573:$VU2,574:$VV2,575:$VW2,576:$VX2,577:$VY2,578:$VZ2,579:$V_2,580:$V$2,581:$V03,582:$V13,583:$V23,584:$V33,585:$V43,586:$V53,587:$V63,588:$V73,589:$V83,590:$V93,591:$Va3,592:$Vb3,593:$Vc3,594:$Vd3,595:$Ve3,596:$Vf3,597:$Vg3,598:$Vh3,599:$Vi3,600:$Vj3,601:$Vk3,602:$Vl3,603:$Vm3,604:$Vn3,605:$Vo3,606:$Vp3,607:$Vq3,608:$Vr3,609:$Vs3,610:$Vt3,611:$Vu3,612:$Vv3,613:$Vw3,614:$Vx3,615:$Vy3,616:$Vz3,617:$VA3,618:$VB3,619:$VC3,620:$VD3,621:$VE3,622:$VF3,623:$VG3,624:$VH3,625:$VI3,626:$VJ3,627:$VK3,628:$VL3,629:$VM3,630:$VN3,631:$VO3,632:$VP3,633:$VQ3,634:$VR3,635:$VS3,636:$VT3,637:$VU3,638:$VV3,639:$VW3,640:$VX3,641:$VY3,642:$VZ3,643:$V_3,644:$V$3,645:$V04,646:$V14,647:$V24,648:$V34,649:$V44,650:$V54,651:$V64,652:$V74,653:$V84,654:$V94,655:$Va4,656:$Vb4,657:$Vc4,658:$Vd4,659:$Ve4,660:$Vf4,661:$Vg4,662:$Vh4,663:$Vi4,664:$Vj4,665:$Vk4,666:$Vl4,667:$Vm4,668:$Vn4,669:$Vo4,670:$Vp4,671:$Vq4,672:$Vr4,673:$Vs4,674:$Vt4,675:$Vu4,676:$Vv4,677:$Vw4,678:$Vx4,679:$Vy4,680:$Vz4,681:$VA4,682:$VB4,683:$VC4,684:$VD4,685:$VE4,686:$VF4,687:$VG4,688:$VH4,689:$VI4,690:$VJ4,691:$VK4,692:$VL4,693:$VM4,694:$VN4,695:$VO4,696:$VP4,697:$VQ4,698:$VR4,699:$VS4,700:$VT4,701:$VU4,702:$VV4,703:$VW4,704:$VX4,705:$VY4,706:$VZ4,707:$V_4,708:$V$4,709:$V05,710:$V15,711:$V25,712:$V35,713:$V45,714:$V55,715:$V65,716:$V75,717:$V85,718:$V95,719:$Va5,720:$Vb5,721:$Vc5,722:$Vd5,723:$Ve5,724:$Vf5,725:$Vg5,726:$Vh5,727:$Vi5,728:$Vj5,729:$Vk5,730:$Vl5,731:$Vm5,732:$Vn5,733:$Vo5,734:$Vp5,735:$Vq5,736:$Vr5,737:$Vs5,738:$Vt5,739:$Vu5,740:$Vv5,741:$Vw5,742:$Vx5,743:$Vy5,744:$Vz5,745:$VA5,746:$VB5,747:$VC5,748:$VD5,749:$VE5,750:$VF5,751:$VG5,752:$VH5,753:$VI5,754:$VJ5,755:$VK5,756:$VL5,757:$VM5,758:$VN5,759:$VO5,760:$VP5,761:$VQ5,762:$VR5,763:$VS5,764:$VT5,765:$VU5,766:$VV5,767:$VW5,768:$VX5,769:$VY5,770:$VZ5,771:$V_5,772:$V$5,773:$V06,774:$V16,775:$V26,776:$V36,777:$V46,778:$V56,779:$V66,780:$V76,781:$V86,782:$V96,783:$Va6,784:$Vb6,785:$Vc6,786:$Vd6,787:$Ve6,788:$Vf6,789:$Vg6,790:$Vh6,791:$Vi6,792:$Vj6,793:$Vk6,794:$Vl6,795:$Vm6,840:$V97,1006:$Va7,1021:$Vb7,1035:$Vc7}),o($V2,$V3,{403:6,404:7,3:394,363:395,137:396,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,364:417,365:418,366:419,367:420,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,376:455,377:456,378:457,379:458,380:459,381:460,382:461,994:464,995:465,996:466,997:467,998:468,999:469,1000:470,1001:471,1002:472,1003:473,1004:474,1005:475,373:477,312:514,313:515,471:517,480:526,481:527,411:603,371:604,43:619,135:620,473:626,410:1128,402:2664,2:$V4,26:$VL9,38:$VV6,41:$V8,50:$V9,51:$Va,54:$Vb,63:$VW6,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$VX6,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$VY6,149:$Vy,151:$Vz,153:$VZ6,155:$V_6,158:$VC,170:$V$6,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,265:$VR,269:$VS,276:$VT,278:$VU,288:$VV,289:$VW,290:$VX,292:$VY,293:$VZ,294:$V_,295:$V$,296:$V01,301:$V11,302:$V21,304:$V31,305:$V41,307:$V07,316:$V61,322:$V71,342:$V81,343:$V91,344:$Va1,345:$Vb1,348:$Vc1,349:$Vd1,350:$Ve1,351:$Vf1,352:$Vg1,353:$Vh1,354:$Vi1,360:$Vj1,362:$Vk1,391:$Vl1,392:$V17,393:$VM9,395:$Vo1,412:$V37,426:$Vr1,428:$Vs1,429:$Vt1,430:$Vu1,431:$Vv1,432:$Vw1,433:$Vx1,434:$Vy1,435:$Vz1,436:$VA1,453:$VN9,454:$VC1,462:$VD1,463:$VE1,464:$V57,466:$VG1,467:$V67,484:$V77,485:$VJ1,489:$VK1,490:$VL1,495:$V87,496:$VN1,497:$VO1,504:$VP1,505:$VQ1,506:$VO9,507:$VS1,508:$VT1,509:$VU1,510:$VV1,511:$VW1,512:$VX1,513:$VY1,514:$VZ1,515:$V_1,516:$V$1,517:$V02,518:$V12,519:$V22,520:$V32,521:$V42,522:$V52,523:$V62,524:$V72,525:$V82,526:$V92,527:$Va2,528:$Vb2,529:$Vc2,530:$Vd2,531:$Ve2,532:$Vf2,533:$Vg2,534:$Vh2,535:$Vi2,536:$Vj2,537:$Vk2,538:$Vl2,539:$Vm2,540:$Vn2,541:$Vo2,542:$Vp2,543:$Vq2,544:$Vr2,545:$Vs2,546:$Vt2,547:$Vu2,548:$Vv2,549:$Vw2,550:$Vx2,551:$Vy2,552:$Vz2,553:$VA2,554:$VB2,555:$VC2,556:$VD2,557:$VE2,558:$VF2,559:$VG2,560:$VH2,561:$VI2,562:$VJ2,563:$VK2,564:$VL2,565:$VM2,566:$VN2,567:$VO2,568:$VP2,569:$VQ2,570:$VR2,571:$VS2,572:$VT2,573:$VU2,574:$VV2,575:$VW2,576:$VX2,577:$VY2,578:$VZ2,579:$V_2,580:$V$2,581:$V03,582:$V13,583:$V23,584:$V33,585:$V43,586:$V53,587:$V63,588:$V73,589:$V83,590:$V93,591:$Va3,592:$Vb3,593:$Vc3,594:$Vd3,595:$Ve3,596:$Vf3,597:$Vg3,598:$Vh3,599:$Vi3,600:$Vj3,601:$Vk3,602:$Vl3,603:$Vm3,604:$Vn3,605:$Vo3,606:$Vp3,607:$Vq3,608:$Vr3,609:$Vs3,610:$Vt3,611:$Vu3,612:$Vv3,613:$Vw3,614:$Vx3,615:$Vy3,616:$Vz3,617:$VA3,618:$VB3,619:$VC3,620:$VD3,621:$VE3,622:$VF3,623:$VG3,624:$VH3,625:$VI3,626:$VJ3,627:$VK3,628:$VL3,629:$VM3,630:$VN3,631:$VO3,632:$VP3,633:$VQ3,634:$VR3,635:$VS3,636:$VT3,637:$VU3,638:$VV3,639:$VW3,640:$VX3,641:$VY3,642:$VZ3,643:$V_3,644:$V$3,645:$V04,646:$V14,647:$V24,648:$V34,649:$V44,650:$V54,651:$V64,652:$V74,653:$V84,654:$V94,655:$Va4,656:$Vb4,657:$Vc4,658:$Vd4,659:$Ve4,660:$Vf4,661:$Vg4,662:$Vh4,663:$Vi4,664:$Vj4,665:$Vk4,666:$Vl4,667:$Vm4,668:$Vn4,669:$Vo4,670:$Vp4,671:$Vq4,672:$Vr4,673:$Vs4,674:$Vt4,675:$Vu4,676:$Vv4,677:$Vw4,678:$Vx4,679:$Vy4,680:$Vz4,681:$VA4,682:$VB4,683:$VC4,684:$VD4,685:$VE4,686:$VF4,687:$VG4,688:$VH4,689:$VI4,690:$VJ4,691:$VK4,692:$VL4,693:$VM4,694:$VN4,695:$VO4,696:$VP4,697:$VQ4,698:$VR4,699:$VS4,700:$VT4,701:$VU4,702:$VV4,703:$VW4,704:$VX4,705:$VY4,706:$VZ4,707:$V_4,708:$V$4,709:$V05,710:$V15,711:$V25,712:$V35,713:$V45,714:$V55,715:$V65,716:$V75,717:$V85,718:$V95,719:$Va5,720:$Vb5,721:$Vc5,722:$Vd5,723:$Ve5,724:$Vf5,725:$Vg5,726:$Vh5,727:$Vi5,728:$Vj5,729:$Vk5,730:$Vl5,731:$Vm5,732:$Vn5,733:$Vo5,734:$Vp5,735:$Vq5,736:$Vr5,737:$Vs5,738:$Vt5,739:$Vu5,740:$Vv5,741:$Vw5,742:$Vx5,743:$Vy5,744:$Vz5,745:$VA5,746:$VB5,747:$VC5,748:$VD5,749:$VE5,750:$VF5,751:$VG5,752:$VH5,753:$VI5,754:$VJ5,755:$VK5,756:$VL5,757:$VM5,758:$VN5,759:$VO5,760:$VP5,761:$VQ5,762:$VR5,763:$VS5,764:$VT5,765:$VU5,766:$VV5,767:$VW5,768:$VX5,769:$VY5,770:$VZ5,771:$V_5,772:$V$5,773:$V06,774:$V16,775:$V26,776:$V36,777:$V46,778:$V56,779:$V66,780:$V76,781:$V86,782:$V96,783:$Va6,784:$Vb6,785:$Vc6,786:$Vd6,787:$Ve6,788:$Vf6,789:$Vg6,790:$Vh6,791:$Vi6,792:$Vj6,793:$Vk6,794:$Vl6,795:$Vm6,840:$V97,1006:$Va7,1021:$Vb7,1035:$Vc7}),o($V2,[2,701]),o($V_g,[2,1596]),o($V_g,[2,1597],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),o($V7f,[2,1595]),o($V_g,[2,1670],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o([2,27,91,361,405,454,500,620,650,683,772,878],$V$g,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o([2,91,361,405,428,429,430,431,432,433,434,435,436,454,500,620,650,683,772,878],$V$g,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($V9f,$Vaf,{924:2170,922:2665,142:$Vbf,777:$Vcf}),o($V0h,[2,1880]),o($Vac,[2,1890]),{27:[1,2668],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2666,277:2667,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{89:[1,2669]},o($Vac,[2,1889]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2670,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vac,[2,1891]),o($Vac,[2,1887]),o($Vef,$Vaf,{922:2665,142:$Vdf,777:$Vcf}),{362:[1,2671]},o($Vgf,[2,1434]),o($Vx8,[2,1436],{822:1693,820:2672,138:$Vhf}),o($Vx8,[2,1438],{822:2179,138:$Vhf}),{40:2183,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vgf,[2,1439]),o([2,26,38,41,44,51,56,63,64,73,86,89,91,95,101,106,109,111,136,138,142,179,180,242,254,256,269,276,288,307,391,395,405,412,428,429,430,431,432,433,434,435,436,454,462,463,466,489,490,500,504,505,527,536,620,650,654,683,758,772,777,790,878],[2,1440]),o($V2,[2,809]),o($VP8,$V1h,{457:2673,461:2674,307:$V2h}),{40:2676,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,820]),o($Vxb,[2,1418],{95:[1,2677]}),o($Vxb,[2,1419],{95:[1,2678]}),o($Vpc,[2,1416]),o($Vxb,[2,1420],{95:$Vkf}),{54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,511:$VQg,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861},o($Vrc,[2,1830]),{362:[1,2679]},o($Vrc,[2,1833]),o($Vsa,$Vff,{822:2179,138:$Vhf}),o($V2,$Vof),{40:2680,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,360:$Va9,454:$Vb9,458:2681,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,776:$Vc9},{40:1076,41:$Vv6,60:2191,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:2239,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,360:$Va9,454:$Vb9,458:2240,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,776:$Vc9},{485:[1,2682]},o($V2,$VXb,{438:1650,397:2683,790:$VZb}),{2:$VBa,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,423:2684,424:$VJa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:2283,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,417:2685,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:1361,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{42:2447,360:$Vkb,776:$Vlb},o($Vjg,$Vig,{133:2528,132:2532,46:2533,48:2686,51:$VK7}),{52:2534,55:2620,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},{54:$Vkg},{61:2687,64:$Vlg,85:$Vmg,86:$Vng,87:$Vog,88:$Vpg},{64:$Vqg},{67:2550,89:$VUg},{97:2611,145:2609,146:$VTg,179:$Vk8,180:$Vl8,303:808,801:809},o($V2,$V9g),o($V2,$V9e,{100:2012,47:2470,654:$VB9}),{97:2473,179:$Vk8,180:$Vl8,303:808,801:809},o($V3h,$V0g,{255:2453,188:2688,51:$V2g,256:$V3g}),o([51,86,101,106,109,136,256,269,288,307,361,405,500,536,654],$V5g,{203:2459,118:2461,89:$VDb,206:$V7g,208:$V8g}),{86:$Vmf,136:$VOd,175:2689,177:1948},{318:2690,343:$Vcg},{89:$VZd,317:2691},{89:$VZd,317:2509},o($V2,$Veg),o($V2,$Vfg),{129:[1,2693],143:[1,2692],462:$Vgg,463:[1,2694]},o($Vnf,$VQ8,{46:932,148:2663,51:$VK7}),o($VN8,[2,1574],{95:$Vwa}),o($VO8,[2,1575]),o($Vxa,[2,1577]),o($Vxa,[2,1578]),{27:$V6,40:1076,41:$Vv6,60:1775,64:$Vw6,172:556,239:1777,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,797:$Vn6,813:1776,824:2601,825:2695},o([51,109,276,405,412,489,490,500,536,654],[2,1386]),{40:1076,41:$Vv6,60:1574,64:$Vw6,122:2696,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,824:1573},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2699,241:$VHa,242:$Vy6,254:$Vz6,274:2697,277:2698,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2700,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V2,[2,221]),o($V2,[2,229]),o($V2,[2,846]),o($V2,[2,847]),{40:2701,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,857]),{27:[1,2703],129:[1,2702]},o($V2,[2,912]),{129:[1,2704]},o([2,27,51,86,101,106,109,136,256,269,288,307,344,345,348,361,405,485,488,500,536,654],[2,2044]),o($Vqf,[2,2047],{988:[1,2705],989:[1,2706]}),o($Vqf,[2,2048]),o($V2,$V4h,{27:[1,2707]}),o($V2,[2,2237]),o($V2,[2,2236]),o($VCc,[2,2248]),o($VDc,[2,2250],{95:[1,2708]}),o($Vyc,[2,2261]),o($VAc,[2,2262]),o($VAc,[2,2263]),o($V2,[2,2235]),o($VDc,[2,2251],{95:$VHc}),o($VCc,[2,2253]),o($VEc,[2,2254]),o($VCc,$V5h,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($VEc,[2,2259],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($VFc,[2,1487]),o($VGc,[2,1490]),o($V2,[2,2234]),o($VEc,$V5h,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VL8,[2,1582]),o($V_g,$VXb,{438:1650,397:2273,852:2709,790:$VZb}),o($Vuc,$V6h,{854:2710,855:2711,856:2712,920:2713,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($V7h,$V8h,{439:2714,452:2715,447:2716,454:$V9h}),o($Vrf,$V8f,{2:[1,2718],27:[1,2719]}),o($Vah,$V8h,{439:2720,452:2721,454:$Vbh}),o($Vuc,[2,1583]),o($Vch,$V8h,{452:2721,439:2723,454:$Vbh}),o([27,91,361,405,454,500,620,650,683,772,790,878],$Vdh,{95:[1,2724]}),o($Veh,[2,1590]),o($Veh,[2,1591]),o($Vfh,[2,1864]),o($Veh,[2,1866],{95:[1,2725]}),o($Vuc,[2,741]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,395:$VMc,416:2726,417:2727,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,851:1821,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:1361,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V2d,[2,1855],{95:$Vsf}),{95:[1,2728],395:$Vgh},o($V1d,[2,1850]),o($V2d,[2,1857],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,909:1361,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:1739,417:2729,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,95:[1,2730],136:$VAd,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($V2d,[2,1858],{95:[1,2731]}),o([2,91,361,405,454,500,620,650,683,772,790,878],$Vdh,{95:$Vhh}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:2283,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V2d,[2,1853],{95:$Vsf}),o($VIf,[2,1723],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1724],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1725],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1726],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1753],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1757],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1761],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1762],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VFd,[2,1777]),o($VXg,$Vih,{882:1860}),o($VXg,$Vjh,{882:1860}),o($VXg,$Vkh,{882:1860}),o($VXg,$Vlh,{882:1860}),o($VXg,$Vmh,{882:1860}),{27:$Vnh,95:[1,2733],395:$Voh},{395:[2,749]},{136:$VAd,395:[2,752]},o([136,395],$Vi7,{172:556,503:560,40:1076,906:1251,907:1252,60:1350,909:1361,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:1739,417:1825,882:1835,41:$Vv6,54:$VNc,64:$Vw6,73:$VCa,89:$VGb,95:$VOc,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VPc,224:$VQc,236:$VGa,237:$VRc,238:$VSc,241:$VHa,242:$Vy6,254:$Vz6,278:$VTc,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VUc,509:$VJb,513:$VKb,514:$VVc,516:$VOa,518:$VWc,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,682:$VZc,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($V2d,[2,1854],{95:$Vsf}),o($V3d,[2,759]),{146:$Vph,582:[1,2739],602:$Vqh,770:$Vrh,880:$Vsh},o($VFd,[2,1712],{146:[1,2740],602:[1,2741],770:[1,2742]}),o($Vvf,$Vth,{27:[1,2743]}),o($Vuh,$Vvh,{882:1860,887:1861,144:$V5d,208:$V6d,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1731]),o($Vwh,[2,1735],{882:1880,208:$VPc,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VFd,[2,1400]),o($VFd,[2,1401]),o($Vuh,$Vxh,{882:1860,887:1861,144:$V5d,208:$V6d,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1732]),o($Vwh,[2,1736],{882:1880,208:$VPc,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($Vuh,$Vyh,{882:1860,887:1861,144:$V5d,208:$V6d,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1733]),o($Vwh,[2,1737],{882:1880,208:$VPc,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($Vuh,$Vzh,{882:1860,887:1861,144:$V5d,208:$V6d,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1734]),o($Vwh,[2,1738],{882:1880,208:$VPc,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),{89:[1,2744],886:2745},{27:[1,2748],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2746,277:2747,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VBd,[2,1699]),o($VFd,[2,1703]),o($VFd,[2,1775]),o($Vu8,$Vv8,{172:556,503:560,933:828,40:1239,906:1251,907:1252,60:1350,222:1369,884:1377,55:1378,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,831:1389,949:1397,951:1398,953:1399,954:1400,903:1402,833:1403,955:1404,957:1405,959:1406,960:1407,223:1408,904:1409,964:1410,965:1411,966:1412,905:1416,128:1417,967:1418,968:1419,969:1420,303:1421,801:1422,908:1423,991:1426,355:1427,802:1428,277:1636,274:1638,849:2749,493:2750,850:2751,494:2752,239:2753,27:$VUb,41:$Vv6,64:$Vw6,73:$VCa,89:$VDa,95:$VVb,138:$Vka,146:$VEa,179:$Vn8,180:$Vo8,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,963:$Vcb}),o($VFd,[2,1740]),o($VAh,$VBh,{882:1860,887:1861,27:[1,2754],54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VCh,[2,1750],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o([2,41,64,91,95,136,179,180,242,254,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,509,511,514,521,527,530,579,587,589,620,626,650,674,682,683,759,772,788,790,878],[2,1752],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,518:$VWc,625:$VXc,635:$VYc,707:$V_c,720:$V$c}),o($VDh,$VEh,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1755]),o($VFh,[2,1756],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VDh,$VGh,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1759]),o($VFh,[2,1760],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VGf,$VHh,{882:1860,887:1861,144:$V5d,208:$V6d,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1766]),o($VIf,[2,1769],{882:1880,208:$VPc,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VGf,$VIh,{882:1860,887:1861,144:$V5d,208:$V6d,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1767]),o($VIf,[2,1770],{882:1880,208:$VPc,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VGf,$VJh,{882:1860,887:1861,144:$V5d,208:$V6d,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VFd,[2,1768]),o($VIf,[2,1771],{882:1880,208:$VPc,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VGf,$Vih,{882:1860,887:1861}),o($VIf,[2,2274],{882:1880}),o($VFd,[2,2279]),o([2,41,54,64,91,95,136,179,180,224,237,238,242,254,278,395,405,428,429,430,431,432,433,434,435,436,454,462,463,466,500,504,505,508,509,511,514,518,521,527,530,579,587,589,620,626,650,674,682,683,759,772,788,790,878],$V7e,{882:1835,208:$VPc,625:$VXc,635:$VYc,707:$V_c,720:$V$c}),o($VGf,$Vjh,{882:1860,887:1861}),o($VIf,[2,2275],{882:1880}),o($VFd,[2,2280]),o($VGf,$Vkh,{882:1860,887:1861}),o($VIf,[2,2276],{882:1880}),o($VFd,[2,2281]),o($VGf,$Vlh,{882:1860,887:1861}),o($VIf,[2,2277],{882:1880}),o($VFd,[2,2282]),o($VGf,$Vmh,{882:1860,887:1861}),o($VIf,[2,2278],{882:1880}),o($VFd,[2,2283]),o($Vwh,[2,1727],{882:1860,144:$VOe,208:$VPc,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vwh,[2,1728],{882:1860,144:$VOe,208:$VPc,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vwh,[2,1729],{882:1860,144:$VOe,208:$VPc,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vwh,[2,1730],{882:1860,144:$VOe,208:$VPc,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),{89:[1,2755]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2756,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VFd,[2,1773]),o($Vu8,$Vv8,{172:556,503:560,40:1076,933:1222,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,274:1607,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,493:2757,849:2758,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VCh,[2,1749],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VFh,[2,1754],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VFh,[2,1758],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1763],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1764],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VIf,[2,1765],{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vnd,[2,1847]),o($VBd,[2,1682]),o($VFd,[2,1721]),o($VFd,[2,1722]),o($VBd,[2,1701]),o($VFd,[2,1780]),{2:$VKf,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2391,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,587:$VLf,589:$VMf,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,759:$VNf,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,889:2759,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VFd,[2,1779]),o($VFd,[2,1784]),{2:$VKf,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2760,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,589:$VMf,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,889:2761,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,759:$VKh,882:1860},o($VLh,[2,2314],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:2763,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VFd,[2,2297]),o($VFd,[2,2298]),o($VFd,[2,1782]),o($VFd,[2,1783]),o($VBd,[2,2284]),{27:[1,2766],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2764,277:2765,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{2:$VKf,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2767,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,589:$VMf,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,759:$VNf,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,788:$V_e,795:$VSb,801:1422,831:1617,889:2768,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626,1036:2769,1038:1908},o($VPf,[2,2300]),o($VQf,[2,2302],{1038:1908,1036:2770,788:$V_e}),o($VFd,[2,2286]),{2:$VKf,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2771,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,589:$VMf,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,889:2772,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{2:$VKf,589:$VMf,889:2773},o($VQf,[2,2305],{1038:2400,788:$V_e}),{27:[1,2775],54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,759:[1,2774],882:1860,887:1861},o($VLh,[2,2307],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,759:[1,2776]}),{27:[1,2778],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2041,277:2777,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VLh,[2,2316],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,882:1835,274:2779,41:$Vv6,54:$VNc,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VPc,224:$VQc,236:$VGa,237:$VRc,238:$VSc,241:$VHa,242:$Vy6,254:$Vz6,278:$VTc,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VCf,509:$VJb,513:$VKb,514:$VVc,516:$VOa,518:$VWc,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,682:$VZc,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,759:[1,2780],770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VGd,[2,1994]),{27:[1,2782],91:$VMh,95:$V3f},{2:$Vea,91:$Vfa,93:2783,95:$V1f},{2:$Vea,91:$Vfa,93:2784},o($V0f,[2,1814]),o($VFd,[2,1492],{138:[1,2785]}),o($VFd,[2,1495],{138:[1,2786]}),o($VGd,[2,2013]),o($VGd,[2,2014]),o($VFd,[2,2015]),o($VNh,$VOh,{972:2787,974:2788,239:2789,976:2791,27:$V6,51:[1,2790],797:$Vn6}),o($VGd,[2,1816]),o($VFd,[2,1817]),o($VNh,$VOh,{976:2791,972:2792,51:$VPh}),o($VQh,[2,2005]),{27:[1,2795],91:$VRh,95:$V3f},{2:$Vea,91:$Vfa,93:2796,95:$V1f},{2:$Vea,91:$Vfa,93:2797},{27:[1,2799],54:$V4d,136:[1,2798],144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861},o($VGd,[2,2071]),{2:$Vea,91:$Vfa,93:2801,136:[1,2800]},{2:$Vea,54:$Vod,91:$Vfa,93:2803,136:[1,2802],208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,882:1880},{27:[1,2804]},{27:[1,2806],54:$V4d,95:$VWf,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,395:$VXf,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861,992:2805},o($VGd,[2,2108]),{2:$Vea,91:$Vfa,93:2808,95:$VWf,395:$VXf,992:2807},{2:$Vea,54:$Vod,91:$Vfa,93:2810,95:$VWf,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,395:$VXf,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,882:1880,992:2809},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2811,241:$VHa,242:$Vy6,254:$Vz6,274:2041,277:2812,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VSh,[2,2121]),o($VSh,[2,2122]),o($VFd,[2,1494],{138:$VTh}),{91:[1,2814]},o($VNd,[2,2083]),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,95:$VVb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2816,241:$VHa,242:$Vy6,254:$Vz6,274:1638,277:1636,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2815,494:2817,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2819,241:$VHa,242:$Vy6,254:$Vz6,274:2818,277:2820,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VNd,[2,2124]),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VUh,95:$VVb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2823,241:$VHa,242:$Vy6,254:$Vz6,274:1638,277:1636,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2822,494:2824,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{40:2825,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,38]),o($V2,[2,264]),{362:[1,2826]},o($VVh,$VWh,{189:2827,197:2828,268:2829,269:[1,2830]}),o($VXh,$VWh,{268:2829,189:2831,269:$VYh}),o($V$f,[2,385]),{27:[1,2833],89:[1,2836],119:2835,257:[1,2834]},{27:[1,2837],257:[1,2838]},o($VXh,$VWh,{268:2829,189:2839,269:$VYh}),{257:[1,2840]},{257:[1,2841]},o($V4g,[2,280]),o($V6g,[2,281]),o($V4g,[2,284]),{207:2842,209:2843,621:$Vza},{27:[1,2845],40:553,41:$Vv6,64:$Vw6,130:2844,131:2846,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V6g,[2,287]),o($V6g,[2,282]),{207:2842,621:$VCb},{40:854,41:$Vv6,64:$Vw6,130:2844,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,247]),o($V2,[2,248]),o($VP8,[2,249]),{2:[2,251]},{2:[2,250]},o([2,27,64,85,86,87,88,91,95,101,106,109,136,146,224,238,253,288,307,361,405,500,536,654],[2,254]),o($Vag,[2,256],{179:$V6a,181:[1,2847]}),o($Vag,[2,257],{180:$V8a,181:[1,2848]}),{27:[1,2850],136:[1,2849]},o($V2,[2,514]),{2:$Vea,91:$Vfa,93:2851},{91:$VZh,95:[1,2853]},o($V_h,$VOd,{177:1948,175:2854,86:$Vmf}),{86:$Vmf,136:$VOd,175:2855,177:1948},{136:[1,2856]},{91:$VZh,95:$V$h},o($Vpc,$VOd,{177:1948,175:2858,86:$Vmf}),o($VVd,[2,1442]),o($VXd,[2,1445]),o($VXd,[2,1444]),{27:[1,2860],75:2861,100:2859,654:$Vs9},o($V2,[2,526]),o($V2,[2,531],{100:2862,654:$VB9}),{27:[1,2864],226:2863,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{100:2865,654:$VB9},{226:2863,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},o($V0i,[2,565]),{27:[1,2867],91:$V1i,95:[1,2868],340:2866,342:$V2i},{2:$Vea,91:$Vfa,93:2870},o($V3i,[2,569]),o($Vxb,[2,571],{95:[1,2871]}),{318:2872,343:$Vcg},{100:2873,654:$VB9},{91:$V1i,95:$V4i,340:2866,342:$V2i},{27:[1,2876],318:2875,321:2877,343:$Vbg},o($V2,[2,543],{318:2878,343:$Vcg}),{89:$VZd,317:2879},{318:2880,343:$Vcg},o($V2,$Vag),o($V2,[2,647]),o($V2,[2,652]),o($V2,[2,649]),o($V2,[2,659]),{89:$VZd,317:2881},o($V2,[2,661]),o($V2,[2,680]),o($V2,[2,2195]),o($V2,[2,2186]),o($V2,[2,2190]),o($V2,[2,2196]),{27:[1,2883],40:2882,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,2199]),{27:[1,2885],40:553,41:$Vv6,64:$Vw6,130:2884,131:2886,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},{27:[1,2888],40:2887,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,2205]),o($V2,[2,2194]),o($VP8,$V5i,{49:2889,77:2890,104:2891,109:$V6i,536:$Vr9}),o($V2,$V5i,{104:2891,49:2893,109:$V6i,536:$VA9}),o($Vhg,$V7i,{46:2529,78:2530,134:2894,133:2895,51:$VR8}),o($Vjg,[2,170],{133:2528,46:2533,132:2896,51:$VK7}),o($V8e,[2,168]),o($V8e,$V9e,{100:2012,75:2897,47:2898,654:$Vs9}),o($VEe,$V9e,{100:2012,47:2899,654:$VB9}),o($V2,$V5i,{104:2891,49:2900,109:$V6i,536:$VA9}),o($Vjg,$V7i,{46:2533,133:2895,51:$VK7}),o($VEe,$V9e,{100:2012,47:2898,654:$VB9}),o($V2,[2,40]),o($V2,[2,70]),o($V2,[2,72]),{27:[1,2902],54:$V8i,237:$V9i,238:$Vai,278:$Vbi,810:2901},{55:2907,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},o($V2,[2,71]),o($V2,[2,1466],{79:2908,104:2909,536:$VA9}),{27:[1,2911],41:$Vv6,62:2910,64:$Vw6,97:1244,138:$Vka,146:$Vla,172:1242,179:$Vk8,180:$Vl8,223:1248,242:$Vy6,254:$Vz6,303:808,362:$Vma,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,509:$Vna,602:$Voa,770:$Vpa,775:$Vqa,801:809,827:1243,901:$Vra,906:1251,907:1252},o($V2,[2,76]),o($Vci,[2,95]),o($Vci,[2,96]),o($Vci,[2,97]),o($Vci,[2,98]),o($Vci,[2,99]),o($V2,[2,44]),o($V2,[2,75]),o($V2,[2,45]),o($V2,[2,80]),o($V2,[2,81]),{27:$Vdi,90:2912,92:2913,94:2914,96:2915,97:2916,179:$Vk8,180:$Vl8,303:808,801:809},o($Vei,[2,260]),{97:2026,179:$Vk8,180:$Vl8,183:2918,303:808,801:809},{55:2919,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},o($Vee,[2,1474]),{138:$Vka,223:1248,362:$Vma,509:$Vna,775:$Vqa,827:2920,901:$Vra,906:1251,907:1252},o($V2,[2,132]),o($Vfi,$Vgi,{298:2921,300:2922,305:[1,2923]}),o($Vhi,$Vgi,{298:2924,305:$Vii}),{27:[1,2927],302:[1,2926]},o($V2,[2,147]),o($V2,[2,155]),o($V2,[2,157]),{55:2928,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},o($V2,[2,156]),o($Vji,[2,1510]),o($Vji,[2,1514]),o($Vji,[2,1515]),o($Vji,[2,1511]),o([2,27,91,95,405,500],[2,306]),o($VIg,[2,309]),o($Vzg,$Vki,{225:2577,221:2579,177:2585,220:2929,219:2930,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VGg,253:$VHg}),o($VIg,[2,314],{219:2576,221:2579,177:2585,218:2931,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VJg,253:$VKg}),o($Vli,[2,312]),o($Vmi,[2,326]),{27:[1,2932],146:$Vni},o($Vli,[2,318]),{41:$Vv6,64:$Vw6,172:2934,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{41:$Vv6,64:$Vw6,172:2935,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:2936,223:1408,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,542:$VMb,557:$VNb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{138:$Vka,223:2937,362:$Vma,775:$Vqa,906:1251,907:1252},o($Vli,[2,324]),o($Vli,[2,325]),{27:[1,2938],254:$Voi},o($VIg,[2,307]),o($VIg,$Vki,{221:2579,177:2585,219:2930,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VJg,253:$VKg}),{146:$Vni},{254:$Voi},o($VIg,[2,308]),o($VNg,[2,1525]),{362:[1,2940]},o($VNg,[2,1526]),{362:[1,2941]},o($VNg,[2,1527]),{27:$V6,214:2942,216:2945,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,238:$Vpi,239:2944,241:$Vke,242:$Vle,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye,797:$Vn6},{27:$V6,95:[1,2949],226:2946,238:$Vqi,239:2948,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye,797:$Vn6},{40:2955,41:$Vv6,64:$Vw6,95:$Vri,172:556,238:$Vsi,242:$Vy6,243:2950,244:2952,245:2953,246:2954,247:2956,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vyb,[2,1508]),o($Vpc,[2,1449]),o($Vpc,$Vti,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($V4g,[2,291]),{27:$Vui,40:1076,41:$Vv6,60:1570,64:$Vw6,112:2961,114:2962,172:556,211:2958,213:2959,221:2963,225:2964,242:$Vy6,253:$VHg,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V6g,[2,293]),o($Vxb,[2,302],{95:[1,2965]}),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:2966,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V2,[2,180]),o($V2,[2,193]),o($V2,[2,198]),o($V2,[2,199]),o($V2,[2,200]),o($V2,$V5i,{104:2891,49:2967,109:$V6i,536:$VA9}),{41:$Vv6,62:2968,64:$Vw6,97:1244,138:$Vka,146:$Vla,172:1242,179:$Vk8,180:$Vl8,223:1248,242:$Vy6,254:$Vz6,303:808,362:$Vma,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,509:$Vna,602:$Voa,770:$Vpa,775:$Vqa,801:809,827:1243,901:$Vra,906:1251,907:1252},o($V2,[2,55]),o($V2,[2,56]),{90:2969,94:2914,97:2916,179:$Vk8,180:$Vl8,303:808,801:809},o($Vvi,$Vgi,{298:2921,305:$Vii}),{302:[1,2970]},{54:$V8i,237:$V9i,238:$Vai,278:$Vbi,810:2971},{214:2942,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,238:$Vpi,241:$VHe,242:$VIe,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{226:2972,238:$Vqi,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{40:2974,41:$Vv6,64:$Vw6,172:556,238:$Vsi,242:$Vy6,243:2973,245:2953,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2975,172:556,211:2958,221:2976,242:$Vy6,253:$VKg,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($VLe,$Vwi,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),{146:$Vph,582:[1,2977],602:$Vqh,770:$Vrh,880:$Vsh},o($Vvf,$Vth),o($Vxi,$Vvh,{882:1860,144:$VOe,208:$VPc,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vxi,$Vxh,{882:1860,144:$VOe,208:$VPc,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vxi,$Vyh,{882:1860,144:$VOe,208:$VPc,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vxi,$Vzh,{882:1860,144:$VOe,208:$VPc,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),{89:[1,2978]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2979,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vu8,$Vv8,{172:556,503:560,40:1076,933:1222,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,274:1607,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,849:2749,493:2980,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VAh,$VBh,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vyi,$VEh,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($Vyi,$VGh,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VXg,$VHh,{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VXg,$VIh,{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),o($VXg,$VJh,{882:1860,144:$VOe,208:$VPc,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2981,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,759:[1,2982],882:1860},{91:$VMh,95:$VKe},{91:$VRh,95:$VKe},{54:$VNe,136:[1,2983],144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},{54:$VNe,95:$VWf,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,395:$VXf,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860,992:2984},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2985,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2986,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,91:$VUh,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2987,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{89:$VG9,476:2988,491:1110},o($V4f,[2,1794],{95:$VKe}),o($V4f,[2,1788],{882:1880,54:$Vod,95:[1,2989],208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($V4f,[2,1791],{95:[1,2990]}),o($V5f,$Vwi,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2991,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V4f,[2,1789],{95:$VKe}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:2992,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VT7,[2,884]),o($VT7,$VQ8,{46:932,148:2993,51:$VK7}),o($VT7,[2,891]),o($VT7,[2,892]),o($VT7,[2,893]),o($VU7,[2,887]),{405:$VWb,500:[2,928]},o($V0h,[2,1881]),o($V9f,$Vzi,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($Vac,[2,1919],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($Vac,[2,1920],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),{40:2995,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,925:2994},o($Vef,$Vzi,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),{91:[1,2996]},o($Vx8,[2,1437],{822:2179,138:$Vhf}),o($V2,$VAi,{27:[1,2997]}),o($V2,[2,822]),{27:[1,2999],453:[1,2998]},o($VP8,$V1h,{457:3000,461:3001,307:$V2h}),{40:1076,41:$Vv6,60:1238,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,816:3002},{40:1076,41:$Vv6,60:1238,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,816:3003},o($Vrc,[2,1834]),o($V2,$V1h,{457:3004,307:$VBi}),{40:3006,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{129:[1,3007]},o($V2,$V4h),{95:[1,3008],395:$Vgh},{95:[1,3009],395:$Voh},o($V2,$V5i,{104:2891,49:3010,109:$V6i,536:$VA9}),{41:$Vv6,62:2910,64:$Vw6,97:1244,138:$Vka,146:$Vla,172:1242,179:$Vk8,180:$Vl8,223:1248,242:$Vy6,254:$Vz6,303:808,362:$Vma,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,509:$Vna,602:$Voa,770:$Vpa,775:$Vqa,801:809,827:1243,901:$Vra,906:1251,907:1252},o([86,101,106,109,136,288,307,361,405,500,536,654],$VWh,{268:2829,189:3011,269:$VYh}),{136:[1,3012]},{100:3013,654:$VB9},{318:3014,343:$Vcg},{40:2882,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:2884,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:2887,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vxb,[2,1451],{95:[1,3015]}),o($Vxb,[2,1452],{95:$VBe}),o($Vrg,$Vti,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($Vpc,[2,1455],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($Vpc,[2,1456]),o($Vpc,[2,1457],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($V2,[2,848]),{27:[1,3017],40:553,41:$Vv6,64:$Vw6,130:3016,131:3018,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,813:555},o($V2,[2,913]),{40:854,41:$Vv6,64:$Vw6,130:3019,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{989:[1,3020]},o($Vqf,[2,2046]),o($V2,[2,2238]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:1348,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349,1023:3021,1030:1344,1032:1352},o($Vuc,$V6h,{855:2711,856:2712,920:2713,854:3022,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($Vuc,[2,1585]),o($Vuc,[2,1587],{920:1166,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($Vuc,[2,1588]),o([2,41,64,89,91,242,254,405,428,429,430,431,432,433,434,435,436,462,463,466,500,504,505,527,772],$VR9,{921:3023,489:$VS9,535:$VT9}),o($VCi,$VDi,{440:3024,444:3025,448:3026,620:$VEi}),o($V7h,$VFi,{2:[1,3028],27:[1,3029]}),o($VGi,$VDi,{440:3030,444:3031,620:$VHi}),{27:[1,3034],257:[1,3033]},o([620,650,683,878],$V8h,{452:2721,447:3036,439:3037,27:[1,3035],454:$V9h}),o($Vah,$V8h,{452:2721,439:3038,454:$Vbh}),o($VGi,$VDi,{444:3031,440:3039,620:$VHi}),o($Vch,$VFi),{257:[1,3040]},o($VIi,$VDi,{444:3031,440:3041,620:$VHi}),{27:$V6,40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,239:3044,242:$Vy6,254:$Vz6,396:3042,399:3043,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$VF6,797:$Vn6,813:555,881:550,885:552,913:539,914:540,915:541,916:542,917:543,918:544,926:545,927:546,928:547,929:548},{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,396:3045,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,881:550,913:539,915:866,916:542,926:867,927:868},o($Vuc,[2,742]),o($V2d,[2,1856],{95:$Vsf}),{27:$Vtf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3048,241:$VHa,242:$Vy6,254:$Vz6,274:1365,277:1367,303:1421,355:1427,362:$Vma,392:$VIa,417:3046,422:3047,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,508:$VLa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,909:1361,911:1362,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($V2d,[2,1859],{95:$Vsf}),o($V2d,[2,1860],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,909:1361,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:1739,417:3049,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($V2d,[2,1861],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,909:1361,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:1739,417:3050,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,396:3042,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,881:550,913:539,915:866,916:542,926:867,927:868},{2:$VBa,27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2284,241:$VHa,242:$Vy6,254:$Vz6,274:1365,277:1367,303:1421,355:1427,362:$Vma,392:$VIa,423:3051,424:[1,3052],462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,508:$VLa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,909:2283,911:2285,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,95:[1,3053],138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,417:2281,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:1361,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VBd,[2,1676]),o($VBd,[2,1677]),o($VBd,[2,1678]),o($VBd,[2,1679]),{27:[1,3055],395:[1,3054]},o($VFd,[2,1715]),o($VFd,[2,1716]),o($VFd,[2,1717]),o($VFd,[2,1713]),o($Vu8,$Vv8,{172:556,503:560,933:828,40:1239,906:1251,907:1252,60:1350,222:1369,884:1377,55:1378,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,831:1389,949:1397,951:1398,953:1399,954:1400,903:1402,833:1403,955:1404,957:1405,959:1406,960:1407,223:1408,904:1409,964:1410,965:1411,966:1412,905:1416,128:1417,967:1418,968:1419,969:1420,303:1421,801:1422,908:1423,991:1426,355:1427,802:1428,277:1636,274:1638,850:2751,494:2752,239:2753,849:3056,493:3057,27:$VUb,41:$Vv6,64:$Vw6,73:$VCa,89:$VDa,95:$VVb,138:$Vka,146:$VEa,179:$Vn8,180:$Vo8,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,963:$Vcb}),o($VFd,[2,1739]),o($VWg,$VJi,{882:1860,887:1861,27:[1,3058],54:$V4d,144:$V5d,208:$V6d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,518:$Ved,625:$Vgd,626:$Vhd,635:$Vid,707:$Vkd,720:$Vld}),o($VAf,[2,1746],{882:1880,54:$Vod,208:$VPc,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,518:$Vwd,625:$VXc,626:$Vyd,635:$VYc,707:$V_c,720:$V$c}),o($VBf,[2,1748],{882:1835,54:$VNc,208:$VPc,237:$VRc,238:$VSc,278:$VTc,508:$VCf,518:$VWc,625:$VXc,635:$VYc,707:$V_c,720:$V$c}),{91:[1,3059]},{27:$V2f,91:$VKi,95:$V3f},{2:$Vea,91:$Vfa,93:3061},{2:$Vea,91:$Vfa,93:3062},{2:$Vea,91:$Vfa,93:3063,95:$V1f},o($VFd,[2,1751]),o($Vu8,$Vv8,{172:556,503:560,40:1076,933:1222,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,274:1607,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,493:3064,849:3065,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VAf,[2,1745],{882:1860,54:$VNe,144:$VOe,208:$VPc,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),{2:$Vea,91:$Vfa,93:3066,95:$VKe},{2:$Vea,91:$Vfa,93:3067},o($VFd,[2,1781]),{2:$VKf,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,589:$VMf,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860,889:3068},o($VFd,[2,2296]),o($VLh,[2,2312],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:3069,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VLh,[2,2315],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),{27:[1,3071],54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,589:$VLi,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861},{2:$VKf,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,589:$VMf,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,882:1880,889:3072},{2:$VKf,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,589:$VMf,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c,882:1835,889:3073},{2:$VKf,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,589:$VMf,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,759:$VKh,882:1860,889:3074},o($VFd,[2,2291]),o($VQf,[2,2304],{1038:2400,788:$V_e}),o($VQf,[2,2303],{1038:2400,788:$V_e}),{2:$VKf,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,589:$VMf,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860,889:3075},o($VFd,[2,2289]),o($VFd,[2,2294]),{27:[1,3078],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3076,277:3077,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VLh,[2,2320],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:3079,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VLh,[2,2308],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:3080,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VLh,[2,2311],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($VLh,[2,2325],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,882:1835,274:3081,41:$Vv6,54:$VNc,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VPc,224:$VQc,236:$VGa,237:$VRc,238:$VSc,241:$VHa,242:$Vy6,254:$Vz6,278:$VTc,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VCf,509:$VJb,513:$VKb,514:$VVc,516:$VOa,518:$VWc,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,682:$VZc,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VLh,[2,2317],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VLh,[2,2318],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:3082,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VGd,[2,1995]),{2:$Vea,91:$Vfa,93:3083,95:$VZg},o($VFd,[2,1996]),o($VFd,[2,1998]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:3084},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:3085},{91:$VMi,445:3088,449:3089,683:$VNi,973:3086,975:3087},o($Vxb,$VMi,{973:3091,445:3092,683:$VOi}),o($V4f,$VOh,{976:2791,972:3094,51:$VPh}),{27:[1,3096],257:[1,3095]},o($V4f,[2,2022]),{91:$VMi,445:3092,683:$VOi,973:3086},{257:[1,3097]},o($VQh,[2,2006]),{2:$Vea,91:$Vfa,93:3098,95:$VZg},o($VPi,[2,2007]),o($VPi,[2,2009]),{27:[1,3100],226:3099,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{2:$Vea,91:$Vfa,93:3102,226:3101,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{2:$Vea,91:$Vfa,93:3104,226:3103,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},o($VFd,[2,2074]),{2:$Vea,91:$Vfa,93:3106,226:3105,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},o($VFd,[2,2077]),{2:$Vea,91:$Vfa,93:3107},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3109,241:$VHa,242:$Vy6,254:$Vz6,274:3108,277:3110,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{2:$Vea,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,91:$Vfa,93:3112,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3111,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{2:$Vea,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,91:$Vfa,93:3114,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3113,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VFd,[2,2111]),{2:$Vea,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,91:$Vfa,93:3116,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3115,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VFd,[2,2114]),{2:$Vea,91:$Vfa,93:3117},{2:$Vea,54:$Vod,91:$Vfa,93:3118,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,882:1880},{40:1076,41:$Vv6,60:2263,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($VNd,[2,2082]),{27:[1,3120],91:$VQi,95:$V3f},{2:$Vea,91:$Vfa,93:3121,95:$V1f},{2:$Vea,91:$Vfa,93:3122},{27:[1,3124],54:$V4d,91:$VRi,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861},{2:$Vea,91:$Vfa,93:3125},{2:$Vea,54:$Vod,91:$Vfa,93:3126,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,882:1880},o($VNd,[2,2088]),{27:[1,3128],91:$VSi,95:$V3f},{2:$Vea,91:$Vfa,93:3129,95:$V1f},{2:$Vea,91:$Vfa,93:3130},o($V2,[2,34]),o($V2,[2,616]),o([27,101,106,109,136,288,307,361,405,500,536,654],$VOd,{177:1948,175:3131,86:$Vmf}),o($VTi,$VOd,{177:1948,175:3132,86:$Vmf}),o($VVh,[2,421]),{27:[1,3133],257:[1,3134]},o($VTi,$VOd,{177:1948,175:3135,86:$Vmf}),{257:[1,3136]},o($V1g,[2,393],{118:3137,89:$VDb}),{89:[1,3140],118:3139,119:3138},o($V1g,[2,396]),{40:1076,41:$Vv6,60:1570,64:$Vw6,112:2080,114:2081,172:556,210:3141,212:2079,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V1g,[2,397]),{27:[1,3142],50:$VUi,258:3145,259:3146,261:3143,262:3144,263:3149,264:3147,265:$VVi},o($VTi,$VOd,{177:1948,175:3151,86:$Vmf}),{89:[1,3152],118:3139},{50:$VWi,258:3153,259:3146,263:3149,265:$VXi},o($V4g,[2,285]),o($V6g,[2,288]),o($V4g,[2,286]),o($V6g,[2,289]),o($V6g,[2,290]),o($Vag,[2,258],{179:$Vcc}),o($Vag,[2,259],{180:$Vec}),{27:[1,3157],137:3156,140:3158,307:$V51,371:847,372:848,411:421,412:$Vq1,419:442},o($V2,[2,515]),o([86,405,500],[2,607]),o($VRd,[2,606]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:3159,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349},o($Vrg,$VYi,{27:[1,3160]}),{136:[1,3161]},{137:3162,307:$V07,371:927,411:603,412:$V37},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:3163,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349},o($Vpc,$VYi),{27:[1,3165],319:3164,344:$VZi},o($V2,[2,527]),o($V2,[2,532],{319:3167,344:$VZi}),{319:3168,344:$VZi},o([27,654],[2,577]),o($Vlf,[2,578]),{319:3169,344:$VZi},{91:[1,3170]},{2:$Vea,91:$Vfa,93:3171},{27:$V6,226:3172,239:3173,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye,797:$Vn6},{91:[2,576]},o($V_i,[2,567]),{226:2497,339:3174,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{100:3175,654:$VB9},{319:3176,344:$VZi},{226:3172,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{27:[1,3178],75:3179,100:3177,654:$Vs9},o($V2,[2,545]),o($V2,[2,550],{100:3180,654:$VB9}),{100:3181,654:$VB9},{318:3182,343:$Vcg},{100:3183,654:$VB9},o($V2,[2,657]),o($V2,[2,2198]),o($V2,[2,2206]),o($V2,[2,2200]),o($V2,[2,2207]),o($V2,[2,2208]),o($V2,[2,2201]),o($V2,[2,2209]),o($V2,$V$i,{27:[1,3184]}),o($V2,[2,66]),o($Vce,$Vub,{826:1550,105:3185,307:$VBb}),o($Vce,[2,1465]),o($V2,[2,65]),o($Vjg,[2,172],{133:2528,46:2533,132:3186,51:$VK7}),o($V8e,[2,169]),o($Vjg,[2,171],{46:2533,133:2895,51:$VK7}),o($VEe,[2,174]),o($V8e,[2,176]),o($VEe,[2,175]),o($V2,[2,64]),{27:[1,3188],276:[1,3187]},o($V2,[2,1388],{276:[1,3189]}),o($V0j,[2,1394]),o($V0j,[2,1395]),o($V0j,[2,1396]),o($V0j,[2,1397]),o($V2,[2,41]),o($V2,[2,68]),o($V2,$Vub,{826:1550,105:3190,307:$VBb}),o($V2,[2,43]),o($V2,[2,77]),{91:$V1j,95:[1,3192]},{2:$Vea,91:$Vfa,93:3193},o($Vpc,[2,104]),o($Vxb,[2,106],{95:[1,3194]}),{54:[1,3195]},o($Vpc,[2,111]),o($Vrg,[2,262]),o($Vrg,[2,263]),o($Vce,[2,1472]),o($Vfi,[2,484]),o($Vhi,[2,486]),{27:[1,3197],302:[1,3196]},o($Vhi,[2,485]),{302:[1,3198]},{27:[1,3200],257:[1,3199]},o($V2j,[2,490]),o($V2,[2,148]),o($VIg,[2,316],{219:2576,221:2579,177:2585,218:3201,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VJg,253:$VKg}),o($Vli,[2,313]),o($VIg,[2,315],{221:2579,177:2585,219:2930,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VJg,253:$VKg}),o($Vmi,[2,327]),o($Vli,[2,323]),o($Vli,[2,319]),o($Vli,[2,320]),o($Vli,[2,321]),o($Vli,[2,322]),o([2,64,85,86,87,88,89,91,95,146,224,253,405,500],[2,383]),o([2,27,64,85,86,87,88,89,91,95,146,224,253,405,500],[2,382]),{91:[1,3202],95:[1,3203]},{91:[1,3204]},{238:[1,3205]},o($VLg,[2,339]),{2:$V3j,238:$V4j,240:3206},{2:$V3j,238:$V4j,240:3209},{95:[1,3210]},o($VLg,[2,343]),{2:$V3j,238:$V4j,240:3211},{27:$V6,239:3212,797:$Vn6},{95:[1,3214],238:$V5j},o($VLg,[2,349]),{2:$V3j,238:$V4j,240:3215},o($V6j,[2,351]),o($Vy7,[2,353],{247:3216,95:$Vri}),{248:[1,3217]},{40:3218,41:$Vv6,64:$Vw6,95:$V7j,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V8j,[2,1334]),{91:[1,3220]},{2:$Vea,91:$Vfa,93:3221},{2:$Vea,91:$Vfa,93:3222},o($Vrg,$V9j,{27:[1,3223]}),o($Vxb,[2,300],{95:[1,3224]}),{89:$VD8,159:3226,252:3225},o($Vxb,[2,379],{252:3227,89:$Vta}),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:3228,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vxb,[2,299],{95:$Vaj}),o($V2,[2,52]),o($V2,[2,54]),{91:$V1j,95:$Vbj},{257:[1,3231]},{276:[1,3232]},{95:[1,3233]},{95:$Vcj,238:$V5j},{248:[1,3235]},o($Vpc,$V9j),{89:$Vta,252:3225},{395:[1,3236]},o($Vu8,$Vv8,{172:556,503:560,40:1076,933:1222,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,274:1607,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,849:3056,493:3237,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VWg,$VJi,{882:1860,54:$VNe,144:$VOe,208:$VPc,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,518:$VWe,625:$VXc,626:$VYe,635:$VYc,707:$V_c,720:$V$c}),{91:$VKi,95:$VKe},{54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,589:$VLi,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3238,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{226:3099,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3239,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{91:$VQi,95:$VKe},{54:$VNe,91:$VRi,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},{91:$VSi,95:$VKe},o($V2,[2,903],{95:$VEb}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:3240,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:3241,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V4f,[2,1793],{95:$VKe}),o($V4f,[2,1797],{95:$VKe}),o($VT7,[2,890]),{91:[1,3242],95:[1,3243]},o($Vrg,[2,1917]),o($Vaa,[2,1932],{717:[1,3244]}),o($V2,[2,821]),{27:[1,3246],466:$Vdj},o($V2,[2,844]),o($V2,$Vej,{27:[1,3247]}),o($V2,[2,824]),o($Vxb,[2,1422],{95:$Vkf}),o($Vxb,[2,1421],{95:$Vkf}),o($V2,$VAi),{453:[1,3248]},o($V2,$V1h,{457:3249,307:$VBi}),{40:854,41:$Vv6,64:$Vw6,130:3250,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,417:3251,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:1361,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{2:$VBa,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,423:3252,424:$VJa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:2283,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V2,$V$i),o([101,106,109,136,288,307,361,405,500,536,654],$VOd,{177:1948,175:3253,86:$Vmf}),{137:3156,307:$V07,371:927,411:603,412:$V37},{319:3164,344:$VZi},{100:3254,654:$VB9},{40:1076,41:$Vv6,60:1574,64:$Vw6,122:3255,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,824:1573},o($VP8,$VQ8,{46:932,78:933,148:3256,152:3257,51:$VR8}),o($V2,[2,914]),o($V2,$VQ8,{46:932,148:3258,51:$VK7}),o($V2,$VQ8,{46:932,148:3259,51:$VK7}),o($Vqf,[2,2045]),o($VDc,[2,2252],{95:$VHc}),o($Vuc,[2,1584]),o($Vuc,[2,1882],{130:549,881:550,172:556,503:560,920:795,40:854,926:867,927:868,915:1686,855:3260,41:$Vv6,64:$Vw6,89:$Vw8,242:$Vy6,254:$Vz6,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),o($Vfj,$Vgj,{441:3261,445:3262,449:3263,683:$VNi}),o($VCi,$Vhj,{2:[1,3264],27:[1,3265]}),o($Vij,$Vgj,{441:3266,445:3267,683:$VOi}),{27:[1,3269],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3268,277:3270,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vjj,$VDi,{444:3031,448:3271,440:3272,620:$VEi}),o($VGi,$VDi,{444:3031,440:3273,620:$VHi}),o($Vij,$Vgj,{445:3267,441:3274,683:$VOi}),o($VIi,$Vhj),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3275,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{27:[1,3278],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3279,277:3280,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,861:3276,862:3277,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vah,[2,1603]),o($Vah,$V8h,{452:2721,439:3281,454:$Vbh}),o($VGi,$VDi,{444:3031,440:3282,620:$VHi}),o($Vjj,$VDi,{444:3031,448:3283,440:3284,620:$VEi}),o($VGi,$VDi,{444:3031,440:3285,620:$VHi}),o($Vij,$Vgj,{445:3267,441:3286,683:$VOi}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3288,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,861:3287,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vkj,$Vgj,{445:3267,441:3289,683:$VOi}),o($Vfh,[2,1865]),o($Veh,[2,1868],{95:[1,3290]}),o($Veh,[2,1870]),o($Veh,[2,1867]),{27:$Vnh,95:$Vlj,395:$Vmj},{395:[2,750]},{136:$VAd,395:[2,753]},o($V2d,[2,1862],{95:$Vsf}),o($V2d,[2,1863],{95:$Vsf}),{95:[1,3292],395:$Vnj},{95:[1,3293]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1739,303:1421,362:$Vma,392:$VIa,417:2727,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,508:$VLa,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,909:1361,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:3294,277:3296,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:3295,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($VFd,[2,1714]),{91:[1,3297]},{27:$V2f,91:$Voj,95:$V3f},o($VFd,[2,1747]),o($VBd,[2,1689]),o($VBd,[2,1690]),o($VFd,[2,2266]),o($VFd,[2,2267]),o($VFd,[2,2268]),{2:$Vea,91:$Vfa,93:3299,95:$VKe},{2:$Vea,91:$Vfa,93:3300},o($VFd,[2,1743]),o($VFd,[2,1744]),o($VFd,[2,2295]),o($VLh,[2,2313],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VBd,[2,2285]),o($VFd,[2,2287]),o($VFd,[2,2292]),o($VFd,[2,2293]),o($VFd,[2,2290]),o($VFd,[2,2288]),o([27,587,589,788],$Vpj,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($VLh,[2,2310],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($VLh,[2,2322],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,882:1835,274:3301,41:$Vv6,54:$VNc,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VPc,224:$VQc,236:$VGa,237:$VRc,238:$VSc,241:$VHa,242:$Vy6,254:$Vz6,278:$VTc,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VCf,509:$VJb,513:$VKb,514:$VVc,516:$VOa,518:$VWc,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,682:$VZc,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VLh,[2,2321],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VLh,[2,2309],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VLh,[2,2324],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VLh,[2,2319],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VFd,[2,1997]),o($VFd,[2,1493],{138:$VTh}),o($VFd,[2,1496],{138:$VTh}),{91:[1,3302]},{2:$Vea,91:$Vfa,93:3303},{27:[1,3305],50:$Vqj,91:$Vrj,724:$Vsj,977:3304,978:3306,979:3307,980:3308},o($Vxb,[2,2029]),{27:[1,3312],257:[1,3311]},{2:$Vea,91:$Vfa,93:3313},o($Vxb,$Vrj,{977:3304,979:3307,980:3314,50:$Vqj,724:$Vsj}),{257:[1,3315]},o($Vxb,$VMi,{445:3092,973:3316,683:$VOi}),{27:[1,3318],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,95:$VVb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3320,241:$VHa,242:$Vy6,254:$Vz6,274:1638,277:1636,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:3317,494:3319,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($V4f,[2,2024]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:1607,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,493:3321,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($VPi,[2,2008]),{91:[1,3322]},{2:$Vea,91:$Vfa,93:3323},{2:$Vea,91:$Vfa,93:3324},o($VFd,[2,2079]),{2:$Vea,91:$Vfa,93:3325},o($VFd,[2,2073]),{2:$Vea,91:$Vfa,93:3326},o($VFd,[2,2076]),o($VFd,[2,2081]),{54:$V4d,91:$Vtj,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861},{2:$Vea,91:$Vfa,93:3328},{2:$Vea,54:$Vod,91:$Vfa,93:3329,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c,882:1880},{2:$Vea,54:$VNe,91:$Vfa,93:3330,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},o($VFd,[2,2120]),{2:$Vea,54:$VNe,91:$Vfa,93:3331,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},o($VFd,[2,2110]),{2:$Vea,54:$VNe,91:$Vfa,93:3332,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},o($VFd,[2,2113]),o($VFd,[2,2116]),o($VFd,[2,2118]),o($VNd,[2,2084]),{2:$Vea,91:$Vfa,93:3333,95:$VZg},o($VFd,[2,2085]),o($VFd,[2,2087]),o($VNd,[2,2123]),{2:$Vea,91:$Vfa,93:3334},o($VFd,[2,2125]),o($VFd,[2,2127]),o($VNd,[2,2089]),{2:$Vea,91:$Vfa,93:3335,95:$VZg},o($VFd,[2,2090]),o($VFd,[2,2092]),o($Vfi,$Vuj,{190:3336,198:3337,286:3338,106:[1,3339]}),o($Vhi,$Vuj,{286:3338,190:3340,106:$Vvj}),o($VXh,[2,423]),{89:$VD8,159:3342,252:3343},o($Vhi,$Vuj,{286:3338,190:3344,106:$Vvj}),{89:$Vta,252:3343},o($V1g,[2,394]),o($V1g,[2,395]),o($V$f,[2,386]),{40:1076,41:$Vv6,60:3346,64:$Vw6,112:2080,114:2081,172:556,210:2078,212:2079,242:$Vy6,254:$Vz6,260:3345,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{95:[1,3347]},o($V1g,[2,398]),o($V1g,[2,399],{95:[1,3348]}),o($V1g,[2,400]),o($V$f,$Vwj,{95:[1,3349]}),o($V$f,[2,389]),o($Vxj,[2,406]),{27:[1,3350],89:$VD8,159:3351,252:3352},o($Vyj,[2,404]),o([27,71],$VC8,{252:839,156:3353,159:3354,89:$VD8}),o($Vhi,$Vuj,{286:3338,190:3355,106:$Vvj}),{40:1076,41:$Vv6,60:3356,64:$Vw6,112:2105,172:556,210:2104,242:$Vy6,254:$Vz6,260:3345,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V3h,$Vwj,{95:[1,3357]}),{89:$Vta,252:3358},{71:$VC8,89:$Vta,156:3359,252:839},o($V2,[2,510]),o($V2,[2,516]),o($V2,[2,517]),o($V_h,$VOd,{177:1948,175:3360,86:$Vmf}),o($Vxb,[2,610],{95:[1,3361]}),{137:3362,307:$V07,371:927,411:603,412:$V37},o($V2,[2,518]),o($Vpc,$VOd,{177:1948,175:3363,86:$Vmf}),o($V2,[2,523]),o($V2,[2,528]),{54:[1,3364]},o($V2,[2,536]),o($V2,[2,535]),o($V2,[2,534]),o($V0i,[2,566]),o($V_i,[2,568]),o($V3i,[2,570]),o($Vxb,[2,572],{95:[1,3365]}),o($Vxb,[2,573],{95:$V4i}),{319:3366,344:$VZi},o($V2,[2,533]),o([27,348],$Vzj,{323:3367,331:3368,345:[1,3369]}),o($V2,[2,546]),o($VAj,$Vzj,{323:3370,345:$VBj}),{323:3372,345:$VBj,348:$Vzj},{323:3373,345:$VBj,348:$Vzj},{100:3374,654:$VB9},{323:3375,345:$VBj,348:$Vzj},o($V2,[2,67]),o($Vce,[2,1464]),o($Vjg,[2,173],{46:2533,133:2895,51:$VK7}),{27:[1,3377],54:$V8i,237:$V9i,238:$Vai,278:$Vbi,810:3376},o($V2,[2,1389],{810:3378,54:$V8i,237:$V9i,238:$Vai,278:$Vbi}),{54:$V8i,237:$V9i,238:$Vai,278:$Vbi,810:3379},o($V2,[2,1467]),o($V2,[2,102]),{27:$Vdi,94:3380,96:3381,97:2916,179:$Vk8,180:$Vl8,303:808,801:809},o($V2,[2,103]),{90:3382,94:2914,97:2916,179:$Vk8,180:$Vl8,303:808,801:809},{97:3383,179:$Vk8,180:$Vl8,303:808,801:809},{27:[1,3385],257:$VCj},o($Vhi,[2,495]),{257:$VCj},{179:$Vk8,303:3386},o($V2j,[2,491]),o($VIg,[2,317],{221:2579,177:2585,219:2930,64:$VBg,85:$VCg,86:$Vmf,87:$VDg,88:$VEg,146:$VFg,224:$VJg,253:$VKg}),o($VNg,[2,1532]),{362:[1,3387]},o($VNg,[2,1530]),o($VLg,[2,338]),o($VMg,[2,340]),o($VMg,[2,376]),o($VMg,[2,377]),o($VMg,[2,341]),{27:$V6,214:3388,216:3389,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,239:3390,241:$Vke,242:$Vle,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye,797:$Vn6},o($VMg,[2,345]),{2:$V3j,238:$V4j,240:3391},o($VLg,[2,348]),{40:2955,41:$Vv6,64:$Vw6,95:$Vri,172:556,242:$Vy6,245:3392,246:3393,247:2956,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($VMg,[2,350]),o($Vy7,[2,354],{172:556,503:560,245:2953,40:2974,243:3394,41:$Vv6,64:$Vw6,95:$V7j,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,527:$Vj7}),{27:$V6,214:3395,216:3397,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,239:3396,241:$Vke,242:$Vle,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye,797:$Vn6},{248:[1,3398]},o($V8j,[2,1335]),o($V4g,[2,292]),o($V6g,[2,294]),o($V6g,[2,295]),o($Vxb,[2,304],{95:[1,3399]}),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:3400,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{91:[2,378]},o($Vxb,[2,381]),o($Vxb,[2,380]),o($Vxb,[2,303],{95:$Vaj}),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2975,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{94:3380,97:2916,179:$Vk8,180:$Vl8,303:808,801:809},{179:$Vk8,303:3401},{54:$V8i,237:$V9i,238:$Vai,278:$Vbi,810:3376},{214:3388,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,241:$VHe,242:$VIe,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{40:2974,41:$Vv6,64:$Vw6,172:556,242:$Vy6,245:3392,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{214:3402,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,241:$VHe,242:$VIe,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3403,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{91:$Voj,95:$VKe},o($VLh,$Vpj,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),{54:$VNe,91:$Vtj,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},o($V4f,[2,1790],{95:$VKe}),o($V4f,[2,1792],{95:$VKe}),o($V0h,[2,1916]),{40:3404,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{89:[1,3405]},o($VP8,[2,843]),o($V2,[2,845]),o($V2,[2,823]),{466:$Vdj},o($V2,$Vej),o($V2,$VQ8,{46:932,148:3406,51:$VK7}),{95:$Vsf,395:$Vmj},{395:$Vnj},o($Vvi,$Vuj,{286:3338,190:3407,106:$Vvj}),{323:3408,345:$VBj,348:$Vzj},o($Vxb,[2,1453],{95:$VBe}),o($V2,$VDj,{27:[1,3409]}),o($V2,[2,917]),o($V2,[2,915]),o($V2,[2,918]),o($Vuc,[2,1883],{920:1166,428:$V98,429:$Va8,430:$Vb8,431:$Vc8,432:$Vd8,433:$Ve8,434:$Vf8,435:$Vg8,436:$V88}),o($VEj,$VFj,{442:3410,446:3411,450:3412,650:$VGj}),o($Vfj,$VHj,{2:[1,3414],27:[1,3415]}),o($VIj,$VFj,{442:3416,446:3417,650:$VJj}),o($VKj,$Vgj,{445:3267,449:3420,441:3421,27:[1,3419],683:$VNi}),o($Vij,$Vgj,{445:3267,441:3422,683:$VOi}),o($VIj,$VFj,{446:3417,442:3423,650:$VJj}),o($Vkj,$VHj),o([2,27,91,361,405,500,650,683,772,878],$VLj,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($VGi,[2,2068],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),o($VGi,[2,2069],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($Vij,$Vgj,{445:3267,441:3424,683:$VOi}),o($VKj,$Vgj,{445:3267,449:3425,441:3426,683:$VNi}),o($Vij,$Vgj,{445:3267,441:3427,683:$VOi}),o($VIj,$VFj,{446:3417,442:3428,650:$VJj}),o($VIi,$VLj,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o([2,27,91,361,405,500,620,650,683,772,878],$VMj,{95:[1,3429]}),o($Vah,[2,1601]),o($Vah,[2,1602],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,882:1835,274:3430,41:$Vv6,54:$VNc,64:$Vw6,73:$VCa,89:$VGb,95:[1,3431],138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VPc,224:$VQc,236:$VGa,237:$VRc,238:$VSc,241:$VHa,242:$Vy6,254:$Vz6,278:$VTc,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VCf,509:$VJb,513:$VKb,514:$VVc,516:$VOa,518:$VWc,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,682:$VZc,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($VNj,$VOj,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($Vah,[2,1617],{882:1880,54:$Vod,95:[1,3432],208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($VGi,$VDi,{444:3031,440:3433,620:$VHi}),o($Vij,$Vgj,{445:3267,441:3434,683:$VOi}),o($Vij,$Vgj,{445:3267,441:3435,683:$VOi}),o($VKj,$Vgj,{445:3267,449:3436,441:3437,683:$VNi}),o($Vij,$Vgj,{445:3267,441:3438,683:$VOi}),o($VIj,$VFj,{446:3417,442:3439,650:$VJj}),o($Vch,$VMj,{95:$VPj}),o($VQj,$VOj,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VRj,$VFj,{446:3417,442:3441,650:$VJj}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,396:2277,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,857:3442,881:550,913:539,915:866,916:542,926:867,927:868},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2284,241:$VHa,242:$Vy6,254:$Vz6,274:1365,277:1367,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,508:$VLa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,909:2283,911:2285,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$Vtf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:1368,241:$VHa,242:$Vy6,254:$Vz6,274:1365,277:1367,303:1421,355:1427,362:$Vma,392:$VIa,417:3444,422:3443,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,508:$VLa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,909:1361,911:1362,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{2:$Vuf,27:$V6,239:3445,797:$Vn6},o($VGf,$VSj,{882:1860,887:1861}),o($VFd,[2,1718]),o($VIf,[2,1719],{882:1880}),o($VBd,[2,1687]),o($VBd,[2,1688]),o($VFd,[2,1741]),o($VFd,[2,1742]),o($VLh,[2,2323],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VGd,[2,2016]),o($VFd,[2,2018]),o($Vxb,[2,2028]),o($Vxb,$Vrj,{979:3307,980:3314,977:3446,50:$Vqj,724:$Vsj}),o($Vxb,[2,2031]),o($Vxb,[2,2033]),{27:[1,3447],530:[1,3448],983:[1,3449]},o($VTj,[2,2050]),o($VTj,[2,2051]),{27:[1,3454],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3457,241:$VHa,242:$Vy6,254:$Vz6,274:3455,277:3456,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,867:3450,868:3451,869:3452,870:3453,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vij,[2,1631]),o($VFd,[2,2017]),{530:[1,3458],983:[1,3459]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3461,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,867:3460,869:3452,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{2:$Vea,91:$Vfa,93:3462},o($VNh,$VUj,{27:[1,3463],95:$V3f}),o($V4f,[2,2025],{882:1835,54:$VNc,95:$Vi7,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),o($V4f,[2,2026]),{95:$V1f},o($V4f,$VUj,{95:$VKe}),o($VGd,[2,2070]),o($VFd,[2,2080]),o($VFd,[2,2078]),o($VFd,[2,2072]),o($VFd,[2,2075]),o($VGd,[2,2107]),o($VFd,[2,2115]),o($VFd,[2,2117]),o($VFd,[2,2119]),o($VFd,[2,2109]),o($VFd,[2,2112]),o($VFd,[2,2086]),o($VFd,[2,2126]),o($VFd,[2,2091]),o($Vei,$VVj,{191:3464,199:3465,306:3466,307:[1,3467]}),o($VWj,$VVj,{306:3466,191:3468,307:$VXj}),o($Vfi,[2,467]),{27:[1,3470],107:[1,3471]},o($VWj,$VVj,{306:3466,191:3472,307:$VXj}),{107:[1,3473]},o($VXh,[2,424]),o($VVh,[2,422]),o($VWj,$VVj,{306:3466,191:3474,307:$VXj}),{91:[1,3475]},{27:$Vie,91:$VYj,95:$VZj,214:2043,216:2045,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,241:$Vke,242:$Vle,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{27:$Vui,40:1076,41:$Vv6,60:1570,64:$Vw6,112:2961,114:2962,172:556,213:2959,221:3477,225:2964,242:$Vy6,253:$VHg,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{50:$VWi,259:3478},{27:[1,3479],50:$VUi,259:3481,262:3480,263:3483,264:3482,265:$VVi},o($V1g,[2,415]),o($V1g,[2,416],{266:3484,89:$V_j}),{27:[1,3486],89:[1,3489],266:3488,267:3487},{27:[1,3490],71:[1,3491]},o($Vxj,[2,411],{71:[1,3492]}),o($VWj,$VVj,{306:3466,191:3493,307:$VXj}),{91:$VYj,95:$VZj,214:2100,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,241:$VHe,242:$VIe,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{50:$VWi,259:3481,263:3483,265:$VXi},{89:$V_j,266:3488},{71:[1,3494]},o($Vrg,$V$j,{27:[1,3495]}),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,357:3496,359:2484,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349},o($V2,[2,512]),o($Vpc,$V$j),{179:$Vk8,303:3497},{226:2497,339:3498,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},o($V2,[2,525]),{27:[1,3500],324:3499,332:3501,348:[1,3502]},o($V2,[2,552],{324:3503,348:$V0k}),{54:[1,3505]},o($V2,[2,551],{324:3506,348:$V0k}),{54:[1,3507]},{324:3508,348:$V0k},{324:3509,348:$V0k},{323:3510,345:$VBj,348:$Vzj},{324:3511,348:$V0k},{55:3512,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},o($V2,[2,1390],{906:1251,907:1252,902:1388,223:1408,904:1409,303:1421,801:1422,908:1423,55:3513,138:$Vka,179:$Vk8,180:$Vl8,362:$Vma,602:$VVa,770:$V4b,775:$Vqa}),{55:3514,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},{55:3515,138:$Vka,179:$Vk8,180:$Vl8,223:1408,303:1421,362:$Vma,602:$VVa,770:$V4b,775:$Vqa,801:1422,902:1388,904:1409,906:1251,907:1252,908:1423},o($Vpc,[2,105]),o($Vxb,[2,107],{95:[1,3516]}),o($Vxb,[2,109],{95:$Vbj}),o($Vpc,[2,110]),{179:$Vk8,303:3517},o($Vhi,[2,496]),o($Vug,$V1k,{304:[1,3518]}),{91:[1,3519]},{238:[1,3520]},{2:$V3j,238:$V4j,240:3521},{2:$V3j,238:$V4j,240:3522},o($VMg,[2,347]),o($V6j,[2,352]),o($Vy7,[2,356],{247:3523,95:$Vri}),o($Vy7,[2,355],{95:$Vcj}),o([95,238],$VOd,{177:1948,175:3524,27:[1,3525],86:$Vmf}),o($V6j,[2,363]),o($V6j,[2,364]),{27:$V6,214:3526,216:3528,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,239:3527,241:$Vke,242:$Vle,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye,797:$Vn6},{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:3529,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($Vxb,[2,301],{95:$Vaj}),o($VVg,$V1k,{304:[1,3530]}),o($V6j,$VOd,{177:1948,175:3524,86:$Vmf}),o($VXg,$VSj,{882:1860}),o($Vrg,[2,1918]),{362:[1,3531]},o($V2,$VDj),o([101,109,136,288,361,405,500,536,654],$VVj,{306:3466,191:3532,307:$VXj}),{324:3533,348:$V0k},o($V2,[2,916]),o($VJc,$V2k,{443:3534,451:3535,877:3536,878:[1,3537]}),o($VEj,$V3k,{2:[1,3538],27:[1,3539]}),o($V4k,$V2k,{877:3536,443:3540,878:$V5k}),{27:[1,3543],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3542,277:3544,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:[1,3545],442:3547,446:3417,450:3546,650:$VGj,878:$VFj},o($VIj,$VFj,{446:3417,442:3548,650:$VJj}),o($V4k,$V2k,{877:3536,443:3549,878:$V5k}),o($VRj,$V3k),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3550,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vij,$Vgj,{445:3267,441:3551,683:$VOi}),o($VIj,$VFj,{446:3417,442:3552,650:$VJj}),{442:3554,446:3417,450:3553,650:$VGj,878:$VFj},o($VIj,$VFj,{446:3417,442:3555,650:$VJj}),o($V4k,$V2k,{877:3536,443:3556,878:$V5k}),o($VIj,$VFj,{446:3417,442:3557,650:$VJj}),o($VIj,$VFj,{446:3417,442:3558,650:$VJj}),{442:3560,446:3417,450:3559,650:$VGj,878:$VFj},o($VIj,$VFj,{446:3417,442:3561,650:$VJj}),o($V4k,$V2k,{877:3536,443:3562,878:$V5k}),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3566,241:$VHa,242:$Vy6,254:$Vz6,274:3563,277:3565,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,866:3564,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vah,[2,1618],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3288,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,861:3567,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3288,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,861:3568,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vij,$Vgj,{445:3267,441:3569,683:$VOi}),o($VIj,$VFj,{446:3417,442:3570,650:$VJj}),o($VIj,$VFj,{446:3417,442:3571,650:$VJj}),o($VIj,$VFj,{446:3417,442:3572,650:$VJj}),{442:3574,446:3417,450:3573,650:$VGj,878:$VFj},o($VIj,$VFj,{446:3417,442:3575,650:$VJj}),o($V4k,$V2k,{877:3536,443:3576,878:$V5k}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3577,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V6k,$V2k,{443:3534,877:3536,878:$V5k}),o($Veh,[2,1869],{95:$Vhh}),{395:[2,751]},{27:$Vnh,95:$Vlj},{395:[2,754]},o($Vxb,[2,2030]),o($Vxb,[2,2036]),o($V7k,$V8k,{981:3578,984:3579,990:3580,362:$V9k,561:$Vak,983:$Vbk}),o($V7k,$V8k,{990:3580,981:3584,984:3585,362:$V9k,561:$Vak,983:$Vbk}),o([2,27,50,91,361,405,500,650,724,772,878],$Vck,{95:[1,3586]}),o($Vij,[2,1630]),o($Vdk,[2,1632]),o($Vij,[2,1634]),o([2,91,405,428,429,430,431,432,433,434,435,436,500,521,579,650,674,772,878],$Vi7,{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,882:1835,274:3461,869:3587,41:$Vv6,54:$VNc,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VPc,224:$VQc,236:$VGa,237:$VRc,238:$VSc,241:$VHa,242:$Vy6,254:$Vz6,278:$VTc,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,508:$VCf,509:$VJb,513:$VKb,514:$VVc,516:$VOa,518:$VWc,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,625:$VXc,634:$VQb,635:$VYc,659:$VZa,662:$V_a,669:$V$a,682:$VZc,707:$V_c,720:$V$c,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o([2,27,50,91,95,361,405,500,650,674,724,772,878],$Vek,{882:1860,887:1861,285:3588,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,521:$Vfk,530:$Vfd,579:$Vgk,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($Vhk,$Vek,{882:1880,285:3591,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,521:$Vfk,530:$Vxd,579:$Vgk,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($Vhk,$Vek,{285:3592,521:$Vfk,579:$Vgk}),o($Vik,$V8k,{981:3593,990:3594,362:$V9k,561:$Vjk,983:$Vbk}),o($Vik,$V8k,{990:3594,981:3596,362:$V9k,561:$Vjk,983:$Vbk}),o([2,50,91,361,405,428,429,430,431,432,433,434,435,436,500,650,724,772,878],$Vck,{95:$Vkk}),o([2,50,91,95,361,405,428,429,430,431,432,433,434,435,436,500,650,674,724,772,878],$Vek,{882:1860,285:3598,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,521:$Vfk,530:$VXe,579:$Vgk,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VFd,[2,2019]),o($Vxb,$VMi,{445:3092,973:3599,95:$VZg,683:$VOi}),o($Vae,$Vlk,{192:3600,200:3601,287:3602,288:[1,3603]}),o($Vmk,$Vlk,{287:3602,192:3604,288:$Vnk}),o($Vei,[2,498]),{27:[1,3606],103:$Vok},o($Vmk,$Vlk,{287:3602,192:3608,288:$Vnk}),{103:$Vok},o($Vhi,[2,469]),{27:[1,3609],108:3611,116:3610,296:$Vde},o($Vmk,$Vlk,{287:3602,192:3612,288:$Vnk}),{108:3611,296:$VFe},o($Vmk,$Vlk,{287:3602,192:3613,288:$Vnk}),o($V$f,[2,390]),{40:1076,41:$Vv6,60:3615,64:$Vw6,172:556,242:$Vy6,254:$Vz6,260:3614,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},{89:[1,3616],159:3226},o($V1g,[2,403]),o($V1g,[2,401]),o($V1g,[2,402]),o($V$f,[2,388]),o($Vxj,[2,407]),o($Vyj,[2,405]),o($V1g,[2,419]),{51:$Vpk,53:$Vqk,270:3618,272:3619},o($V1g,[2,417]),o($V1g,[2,418]),o($V$f,[2,414]),{27:[1,3622],51:$Vrk,53:$Vsk,270:3624,271:3623,272:3619,273:3625},o($Vxj,[2,410]),{27:[1,3628],138:$Vka,223:3629,362:$Vma,775:$Vqa,906:1251,907:1252},{138:$Vka,223:3630,362:$Vma,775:$Vqa,906:1251,907:1252},o($Vmk,$Vlk,{287:3602,192:3631,288:$Vnk}),{138:$Vka,223:3629,362:$Vma,775:$Vqa,906:1251,907:1252},o($Vxb,[2,612],{95:[1,3632]}),o($Vxb,[2,611],{95:$V$h}),o($V2,[2,579]),o($Vxb,[2,574],{95:$V4i}),o($V2,[2,554],{325:3633,333:3635,27:[1,3634],349:[1,3636]}),o($V2,[2,547]),o($V2,[2,553],{325:3637,349:$Vtk}),{54:[1,3639]},{325:3640,349:$Vtk},{54:[1,3641]},{179:$Vn8,303:3644,346:3642,347:3643,355:3645},{325:3646,349:$Vtk},{179:$Vk8,303:3644,346:3642},{325:3647,349:$Vtk},{325:3648,349:$Vtk},{324:3649,348:$V0k},{325:3650,349:$Vtk},o($V2,[2,1387]),o($V2,[2,1393]),o($V2,[2,1392]),o($V2,[2,1391]),{90:3651,94:2914,97:2916,179:$Vk8,180:$Vl8,303:808,801:809},o($Vfi,[2,494]),{27:[1,3653],257:$Vuk},o($VNg,[2,1533]),o($VLg,[2,342]),o($VMg,[2,344]),o($VMg,[2,346]),{40:2974,41:$Vv6,64:$Vw6,95:$V7j,172:556,242:$Vy6,243:3654,245:2953,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7},o($V6j,[2,358]),o($V6j,[2,362]),{27:[1,3655]},o($V6j,[2,360]),o($V6j,[2,361]),o($Vxb,[2,305],{95:$Vaj}),{257:$Vuk},{91:[1,3656]},o([101,109,136,361,405,500,536,654],$Vlk,{287:3602,192:3657,288:$Vnk}),{325:3658,349:$Vtk},o($V6k,[2,1592]),o($V4k,[2,803]),o($V6k,[2,1665]),{27:$Vvk,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3661,277:3660,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:[1,3662]},o($V4k,$V2k,{877:3536,443:3663,878:$V5k}),o($V4k,[2,802]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3664,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o([2,27,91,361,405,500,772,878],$Vwk,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($VIj,[2,1662],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),o($VIj,[2,1663],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($VIj,$VFj,{446:3417,442:3665,650:$VJj}),o($V4k,$V2k,{877:3536,443:3666,878:$V5k}),{451:3667,878:$Vxk},o($V4k,$V2k,{877:3536,443:3669,878:$V5k}),o($V4k,[2,801]),o($VRj,$Vwk,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($VIj,$VFj,{446:3417,442:3670,650:$VJj}),o($V4k,$V2k,{877:3536,443:3671,878:$V5k}),o($V4k,$V2k,{877:3536,443:3672,878:$V5k}),{451:3673,878:$Vxk},o($V4k,$V2k,{877:3536,443:3674,878:$V5k}),o($V4k,[2,800]),o($V4k,$V2k,{877:3536,443:3675,878:$V5k}),o($V4k,$V2k,{877:3536,443:3676,878:$V5k}),o($V4k,$V2k,{877:3536,443:3677,878:$V5k}),{451:3678,878:$Vxk},o($V4k,$V2k,{877:3536,443:3679,878:$V5k}),o($V4k,[2,799]),o($VNj,$Vyk,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($Vah,[2,1621],{95:[1,3680]}),o($Vzk,[2,1624],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($Vzk,[2,1626],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:3681,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($Vah,[2,1619],{95:$VPj}),o($Vah,[2,1620],{95:$VPj}),o($VIj,$VFj,{446:3417,442:3682,650:$VJj}),o($V4k,$V2k,{877:3536,443:3683,878:$V5k}),o($V4k,$V2k,{877:3536,443:3684,878:$V5k}),o($V4k,$V2k,{877:3536,443:3685,878:$V5k}),o($V4k,$V2k,{877:3536,443:3686,878:$V5k}),{451:3687,878:$Vxk},o($V4k,$V2k,{877:3536,443:3688,878:$V5k}),o($V4k,[2,798]),o($VQj,$Vyk,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o([27,91],$VAk,{982:3689,985:3690,514:[1,3691]}),o($Vxb,$VAk,{982:3692,514:$VBk}),{27:[1,3695],697:$VCk},{27:[1,3697],106:$VDk},o($VEk,[2,2063]),o($VEk,[2,2064]),{27:[1,3698],91:$VAk,514:$VBk,982:3699},o($Vxb,[2,2041]),{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3457,241:$VHa,242:$Vy6,254:$Vz6,274:3455,277:3456,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,831:1389,833:1403,869:3700,870:3701,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vij,[2,1635]),o([2,27,50,91,95,361,405,500,650,724,772,878],$VFk,{871:3702,872:3703,674:[1,3704]}),o($VGk,[2,1644]),o($VGk,[2,1645]),o($VHk,$VFk,{871:3705,674:$VIk}),o($VHk,$VFk,{871:3707,674:$VIk}),o($Vxb,$VAk,{982:3708,514:$VBk}),{697:$VCk},{106:$VDk},o($Vxb,$VAk,{982:3699,514:$VBk}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3461,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,869:3700,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o([2,50,91,95,361,405,428,429,430,431,432,433,434,435,436,500,650,724,772,878],$VFk,{871:3702,674:$VIk}),{2:$Vea,91:$Vfa,93:3709},o([27,101,109,136,361,405,500,536],$V9e,{100:2012,47:3710,75:3711,654:$Vs9}),o($VJk,$V9e,{100:2012,47:3712,654:$VB9}),o($Vae,[2,473]),{27:[1,3713],136:[1,3714]},o($VJk,$V9e,{100:2012,47:3715,654:$VB9}),{136:[1,3716]},o($VWj,[2,500],{102:3717,89:$Vtb}),{89:$Vtb,102:3718},o($VJk,$V9e,{100:2012,47:3719,654:$VB9}),o($Vhi,[2,470]),o($Vhi,[2,471]),o($Vfi,[2,468]),o($VJk,$V9e,{100:2012,47:3720,654:$VB9}),o($VJk,$V9e,{100:2012,47:3721,654:$VB9}),{91:[2,391]},{91:$VYj,95:$VZj},{27:$V6,40:1239,41:$Vv6,60:1238,64:$Vw6,128:1237,172:556,239:1235,242:$Vy6,254:$Vz6,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,797:$Vn6,816:3722,817:1234},{258:3723,263:3149,265:$VXi},{91:$VKk,95:$VLk},o($Vpc,[2,428]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3726,276:[1,3727],303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{54:[1,3728]},{2:$Vea,91:$Vfa,93:3729},{2:$Vea,91:$Vfa,93:3730},{91:$VKk,95:[1,3731]},o($Vxb,[2,430]),{27:[1,3732],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3734,276:[1,3735],277:3733,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:[1,3736],54:[1,3737]},o($Vxj,[2,412]),o($Vyj,[2,409]),o($Vxj,[2,413]),o($VJk,$V9e,{100:2012,47:3738,654:$VB9}),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,357:3739,359:2484,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,527:$Vj7,831:1349},o($VMk,$VNk,{326:3740,334:3741,350:[1,3742]}),o($V2,[2,548]),o($VOk,$VNk,{326:3743,350:$VPk}),{54:[1,3745]},o($VOk,$VNk,{326:3746,350:$VPk}),{54:[1,3747]},{179:$Vn8,303:3644,346:3748,347:3749,355:3645},o($VOk,$VNk,{326:3750,350:$VPk}),{179:$Vk8,303:3644,346:3748},o([27,348,405,500],[2,581]),o($VAj,[2,582]),o([27,348,349,350,351,352,353,354,405,500],[2,602]),o([348,349,350,351,352,353,354,405,500],[2,603]),o($VOk,$VNk,{326:3751,350:$VPk}),o($VOk,$VNk,{326:3752,350:$VPk}),o($VOk,$VNk,{326:3753,350:$VPk}),{325:3754,349:$Vtk},o($VOk,$VNk,{326:3755,350:$VPk}),o($Vxb,[2,108],{95:$Vbj}),{179:$Vk8,303:3756},o($V2j,[2,492]),o($Vy7,[2,357],{95:$Vcj}),o($V6j,[2,359]),o($Vaa,[2,1933]),o([101,109,136,361,405,500,536],$V9e,{100:2012,47:3757,654:$VB9}),o($VOk,$VNk,{326:3758,350:$VPk}),o($V4k,[2,1667],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),o($V4k,[2,1668],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($VJc,$VQk,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($V4k,$V2k,{877:3536,443:3759,878:$V5k}),o($V4k,[2,808]),o($V6k,$VQk,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($V4k,$V2k,{877:3536,443:3760,878:$V5k}),o($V4k,[2,796]),o($V4k,[2,797]),{27:$Vvk,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2041,277:3660,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($V4k,[2,807]),o($V4k,$V2k,{877:3536,443:3761,878:$V5k}),o($V4k,[2,793]),o($V4k,[2,794]),o($V4k,[2,795]),o($V4k,[2,806]),o($V4k,[2,789]),o($V4k,[2,790]),o($V4k,[2,791]),o($V4k,[2,792]),o($V4k,[2,805]),o($Vah,[2,1622],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,274:3288,861:3762,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($Vzk,[2,1625],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($V4k,$V2k,{877:3536,443:3763,878:$V5k}),o($V4k,[2,784]),o($V4k,[2,785]),o($V4k,[2,786]),o($V4k,[2,787]),o($V4k,[2,788]),o($V4k,[2,804]),{27:[1,3764],91:$VRk},o($Vxb,[2,2039]),{27:[1,3767],362:$V9k,561:[1,3765],983:$Vbk,990:3766},o($Vxb,[2,2038]),{362:$V9k,561:[1,3768],983:$Vbk,990:3769},o($VSk,[2,2053]),o($Vik,[2,2055]),o($VSk,[2,2054]),o($Vik,[2,2056]),o($Vxb,[2,2040]),o($Vxb,[2,2035]),o($Vdk,[2,1633]),o($Vij,[2,1636],{95:[1,3770]}),o($Vdk,[2,1639]),o($VHk,[2,1641]),{27:[1,3773],606:$VTk,646:$VUk},o($VHk,[2,1640]),{606:$VTk,646:$VUk},o($VHk,[2,1642]),o($Vxb,$VRk),o($VFd,[2,2020]),o($Vce,$V5i,{49:3774,77:3775,104:3776,109:$V6i,536:$Vr9}),o($Vee,$V5i,{104:2891,49:3777,109:$V6i,536:$VA9}),o($Vee,$V5i,{104:2891,49:3778,109:$V6i,536:$VA9}),o($Vmk,[2,475]),{27:[1,3779],99:3780,289:$Vmb,290:$Vnb,291:$Vob,292:$Vpb,293:$Vqb,294:$Vrb,295:$Vsb},o($Vee,$V5i,{104:2891,49:3781,109:$V6i,536:$VA9}),{99:3780,289:$Vmb,290:$Vnb,291:$Vob,292:$Vpb,293:$Vqb,294:$Vrb,295:$Vsb},o($VWj,[2,501]),o($Vei,[2,499]),o($Vee,$V5i,{104:2891,49:3782,109:$V6i,536:$VA9}),o($Vee,$V5i,{104:2891,49:3783,109:$V6i,536:$VA9}),o($Vee,$V5i,{104:2891,49:3784,109:$V6i,536:$VA9}),{95:$Voc},o($Vxj,[2,408]),o($V$f,[2,425]),{51:$Vpk,53:$Vqk,272:3786},{54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:[1,3788],238:$VRe,275:3787,278:[1,3789],508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c,882:1860},{237:$VVk,275:3790,278:$VWk},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3793,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V1g,[2,426]),o($V1g,[2,427]),{27:[1,3794],51:$Vrk,53:$Vsk,272:3786,273:3795},o($Vpc,[2,439],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),o($Vpc,[2,442],{882:1880,275:3796,54:$Vod,208:$VPc,224:$Vpd,237:[1,3797],238:$Vrd,278:[1,3798],508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),{27:[1,3799],54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:[1,3801],238:$V9d,275:3800,278:[1,3802],508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld,882:1860,887:1861},{27:[1,3803],237:$VVk,275:3804,278:$VWk},o($Vpc,[2,440]),{27:[1,3805],40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3793,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vee,$V5i,{104:2891,49:3806,109:$V6i,536:$VA9}),o($Vxb,[2,613],{95:$V$h}),o($VXk,$VYk,{327:3807,335:3808,351:[1,3809]}),o($VZk,$VYk,{327:3810,351:$V_k}),{54:[1,3812]},o($VZk,$VYk,{327:3813,351:$V_k}),{54:[1,3814]},{179:$Vn8,303:3644,346:3815,347:3816,355:3645},o($VZk,$VYk,{327:3817,351:$V_k}),{179:$Vk8,303:3644,346:3815},o([27,349,405,500],[2,583]),o([349,405,500],[2,584]),o($VZk,$VYk,{327:3818,351:$V_k}),o($VZk,$VYk,{327:3819,351:$V_k}),o($VZk,$VYk,{327:3820,351:$V_k}),o($VZk,$VYk,{327:3821,351:$V_k}),o($VOk,$VNk,{326:3822,350:$VPk}),o($VZk,$VYk,{327:3823,351:$V_k}),o($Vug,[2,489]),o([101,136,361,405,500],$V5i,{104:2891,49:3824,109:$V6i,536:$VA9}),o($VZk,$VYk,{327:3825,351:$V_k}),o($V4k,[2,783]),o($V4k,[2,782]),o($V4k,[2,781]),o($Vah,[2,1623],{95:$VPj}),o($V4k,[2,780]),o($Vxb,[2,2037]),{27:[1,3827],106:$V$k},{27:[1,3829],608:$V0l},o($Vxb,[2,2060]),{106:$V$k},{608:$V0l},o($Vij,[2,1637],{172:556,503:560,40:1076,906:1251,907:1252,60:1350,222:1369,55:1378,894:1381,895:1383,902:1388,953:1399,954:1400,223:1408,904:1409,964:1410,965:1411,966:1412,303:1421,801:1422,908:1423,891:1615,893:1616,831:1617,949:1618,951:1619,991:1626,869:3452,274:3461,867:3830,41:$Vv6,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,963:$Vcb}),o($Vdk,[2,1647]),o($Vdk,[2,1648]),o($VHk,[2,1649]),o($V1l,$V2l,{193:3831,308:3832,101:$V3l}),o($V4l,$V2l,{308:3832,193:3834,101:$V3l}),o($Vce,$Vub,{826:1550,105:3185,115:3835,307:$Vvb}),o($V4l,$V2l,{308:3832,193:3836,101:$V3l}),o($V4l,$V2l,{308:3832,193:3837,101:$V3l}),o($Vmk,[2,476]),o($Vae,[2,474]),o($V4l,$V2l,{308:3832,193:3838,101:$V3l}),o($V4l,$V2l,{308:3832,193:3839,101:$V3l}),o($V4l,$V2l,{308:3832,193:3840,101:$V3l}),o($V4l,$V2l,{308:3832,193:3841,101:$V3l}),{263:3483,265:$VXi},o($Vpc,[2,429]),{276:[1,3842]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2629,276:$V5l,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2631,276:$V6l,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3843,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($V7l,$V5l),o($V7l,$V6l),o($Vpc,[2,438],{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($Vxb,[2,431],{95:[1,3844]}),o($Vxb,[2,433],{95:[1,3845]}),{276:[1,3846]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2368,276:$V5l,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:2370,276:$V6l,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vpc,[2,443]),{27:[1,3847],276:[1,3848]},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2317,276:$V5l,277:2319,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2318,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},{27:$VUb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,274:2323,276:$V6l,277:2325,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$VF6,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,797:$Vn6,801:1422,802:1428,812:2324,813:2316,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vpc,[2,449]),{27:[1,3849],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3851,277:3850,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($Vpc,[2,441]),o($V4l,$V2l,{308:3832,193:3852,101:$V3l}),o($V8l,$V9l,{328:3853,336:3854,352:[1,3855]}),o($Val,$V9l,{328:3856,352:$Vbl}),{54:[1,3858]},o($Val,$V9l,{328:3859,352:$Vbl}),{54:[1,3860]},{179:$Vn8,303:3644,346:3861,347:3862,355:3645},o($Val,$V9l,{328:3863,352:$Vbl}),{179:$Vk8,303:3644,346:3861},o([27,350,351,352,353,354,405,500],[2,585]),o([350,351,352,353,354,405,500],[2,586]),o($Val,$V9l,{328:3864,352:$Vbl}),o($Val,$V9l,{328:3865,352:$Vbl}),o($Val,$V9l,{328:3866,352:$Vbl}),o($Val,$V9l,{328:3867,352:$Vbl}),o($Val,$V9l,{328:3868,352:$Vbl}),o($VZk,$VYk,{327:3869,351:$V_k}),o($Val,$V9l,{328:3870,352:$Vbl}),o([136,361,405,500],$V2l,{308:3832,193:3871,101:$V3l}),o($Val,$V9l,{328:3872,352:$Vbl}),o($Vcl,[2,2058]),o($Vxb,[2,2061]),o($Vcl,[2,2059]),o($Vxb,[2,2062]),o($Vij,[2,1638],{95:$Vkk}),o($Vdl,$Vel,{194:3873,201:3874,27:[1,3875],136:[1,3876]}),o($V1l,[2,503]),{89:$Vtb,102:3877},o($V2,$Vel,{194:3878,136:$Vfl}),o($V4l,$V2l,{308:3832,193:3880,101:$V3l}),o($V2,$Vel,{194:3881,136:$Vfl}),o($V2,$Vel,{194:3882,136:$Vfl}),o($V2,$Vel,{194:3883,136:$Vfl}),o($V2,$Vel,{194:3884,136:$Vfl}),o($V2,$Vel,{194:3885,136:$Vfl}),o($V2,$Vel,{194:3886,136:$Vfl}),o($Vpc,$Vgl,{275:3887,237:$VVk,278:$VWk}),o($Vpc,$Vhl,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),{51:$Vpk,53:$Vqk,270:3888,272:3619},{51:$Vpk,53:$Vqk,270:3889,272:3619},o($Vpc,[2,445]),o($Vpc,[2,444]),o($Vrg,$Vgl,{275:3891,27:[1,3890],237:$VVk,278:$VWk}),o($Vpc,[2,450],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),o($Vpc,[2,451],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($Vrg,$Vhl,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($V2,$Vel,{194:3892,136:$Vfl}),o($Vil,$Vjl,{329:3893,337:3894,353:[1,3895]}),o($Vkl,$Vjl,{329:3896,353:$Vll}),{54:[1,3898]},o($Vkl,$Vjl,{329:3899,353:$Vll}),{54:[1,3900]},{179:$Vn8,303:3644,346:3901,347:3902,355:3645},o($Vkl,$Vjl,{329:3903,353:$Vll}),{179:$Vk8,303:3644,346:3901},o($VMk,[2,588]),o($VOk,[2,589]),o($Vkl,$Vjl,{329:3904,353:$Vll}),o($Vkl,$Vjl,{329:3905,353:$Vll}),o($Vkl,$Vjl,{329:3906,353:$Vll}),o($Vkl,$Vjl,{329:3907,353:$Vll}),o($Vkl,$Vjl,{329:3908,353:$Vll}),o($Vkl,$Vjl,{329:3909,353:$Vll}),o($Val,$V9l,{328:3910,352:$Vbl}),o($Vkl,$Vjl,{329:3911,353:$Vll}),o($Vdl,$Vel,{194:3873,136:$Vfl}),o($Vkl,$Vjl,{329:3912,353:$Vll}),o($Vdl,[2,268]),o($V2,[2,278]),o($V2,[2,279]),o([27,307,412],$Vml,{309:3913}),o($V1l,[2,504]),o($V2,[2,276]),o($Vu8,$Vml,{309:3914}),o($V2,$Vel,{194:3915,136:$Vfl}),o($V2,[2,275]),o($V2,[2,274]),o($V2,[2,273]),o($V2,[2,272]),o($V2,[2,271]),o($V2,[2,270]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VGb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VHb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3916,303:1421,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VIb,509:$VJb,513:$VKb,516:$VOa,526:$VPa,527:$Vj7,541:$VLb,542:$VMb,557:$VNb,598:$VOb,601:$VPb,602:$VVa,617:$VWa,623:$VXa,634:$VQb,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$VRb,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$VSb,801:1422,831:1617,891:1615,893:1616,894:1381,895:1383,902:1388,904:1409,906:1251,907:1252,908:1423,949:1618,951:1619,953:1399,954:1400,963:$Vcb,964:1410,965:1411,966:1412,991:1626},o($Vxb,[2,432],{95:$VLk}),o($Vxb,[2,434],{95:$VLk}),o($Vpc,[2,446]),{27:[1,3917],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,274:3919,277:3918,303:1421,355:1427,362:$Vma,392:$VIa,462:$VA6,463:$VB6,466:$VC6,503:560,504:$VD6,505:$VE6,507:$VKa,509:$VMa,513:$VNa,516:$VOa,526:$VPa,527:$Vj7,541:$VQa,542:$VRa,557:$VSa,598:$VTa,601:$VUa,602:$VVa,617:$VWa,623:$VXa,634:$VYa,659:$VZa,662:$V_a,669:$V$a,744:$V0b,745:$V1b,746:$V2b,753:$V3b,770:$V4b,775:$Vqa,776:$V5b,779:$V6b,780:$V7b,783:$V8b,784:$V9b,785:$Vab,795:$Vbb,801:1422,802:1428,831:1389,833:1403,884:1377,891:1379,893:1380,894:1381,895:1383,896:1384,897:1385,899:1386,900:1387,902:1388,903:1402,904:1409,905:1416,906:1251,907:1252,908:1423,949:1397,951:1398,953:1399,954:1400,955:1404,957:1405,959:1406,960:1407,963:$Vcb,964:1410,965:1411,966:1412,967:1418,968:1419,969:1420,991:1426},o($V2,[2,269]),o($VP8,$Vnl,{330:3920,338:3921,354:[1,3922]}),o($V2,$Vnl,{330:3923,354:$Vol}),{54:[1,3925]},o($V2,$Vnl,{330:3926,354:$Vol}),{54:[1,3927]},{179:$Vn8,303:3644,346:3928,347:3929,355:3645},o($V2,$Vnl,{330:3930,354:$Vol}),{179:$Vk8,303:3644,346:3928},o($VXk,[2,591]),o($VZk,[2,592]),o($V2,$Vnl,{330:3931,354:$Vol}),o($V2,$Vnl,{330:3932,354:$Vol}),o($V2,$Vnl,{330:3933,354:$Vol}),o($V2,$Vnl,{330:3934,354:$Vol}),o($V2,$Vnl,{330:3935,354:$Vol}),o($V2,$Vnl,{330:3936,354:$Vol}),o($V2,$Vnl,{330:3937,354:$Vol}),o($Vkl,$Vjl,{329:3938,353:$Vll}),o($V2,$Vnl,{330:3939,354:$Vol}),o($V2,$Vnl,{330:3940,354:$Vol}),{27:[1,3942],137:3941,140:3943,307:$V51,371:847,372:848,411:421,412:$Vq1,419:442},{137:3941,307:$V07,371:927,411:603,412:$V37},o($V2,[2,277]),o($Vpc,$Vpl,{882:1860,54:$VNe,144:$VOe,208:$VPc,224:$VPe,237:$VQe,238:$VRe,278:$VSe,508:$VTe,509:$VUe,514:$VVe,518:$VWe,530:$VXe,625:$VXc,626:$VYe,635:$VYc,682:$VZe,707:$V_c,720:$V$c}),o($Vpc,[2,447],{882:1835,54:$VNc,208:$VPc,224:$VFf,237:$VRc,238:$VSc,278:$VTc,508:$VCf,514:$VVc,518:$VWc,625:$VXc,635:$VYc,682:$VZc,707:$V_c,720:$V$c}),o($Vpc,[2,448],{882:1880,54:$Vod,208:$VPc,224:$Vpd,237:$Vqd,238:$Vrd,278:$Vsd,508:$Vtd,509:$Vud,514:$Vvd,518:$Vwd,530:$Vxd,625:$VXc,626:$Vyd,635:$VYc,682:$Vzd,707:$V_c,720:$V$c}),o($Vrg,$Vpl,{882:1860,887:1861,54:$V4d,144:$V5d,208:$V6d,224:$V7d,237:$V8d,238:$V9d,278:$Vad,508:$Vbd,509:$Vcd,514:$Vdd,518:$Ved,530:$Vfd,625:$Vgd,626:$Vhd,635:$Vid,682:$Vjd,707:$Vkd,720:$Vld}),o($V2,$Vql,{27:[1,3944]}),o($V2,[2,560]),{27:[1,3946],226:3945,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},o($V2,[2,559]),{226:3945,531:$Vme,533:$Vne,543:$Voe,575:$Vpe,583:$Vqe,607:$Vre,631:$Vse,702:$Vte,736:$Vue,748:$Vve,760:$Vwe,763:$Vxe,782:$Vye},{179:$Vn8,303:3644,346:3947,347:3948,355:3645},o($V2,[2,558]),{179:$Vk8,303:3644,346:3947},o($V8l,[2,594]),o($Val,[2,595]),o($V2,[2,557]),o($V2,[2,556]),o($V2,[2,555]),o($V2,[2,564]),o($V2,[2,563]),o($V2,[2,562]),o($V2,[2,561]),o($V2,[2,544]),o($V2,$Vnl,{330:3949,354:$Vol}),o($V2,[2,542]),o($V2,$Vql),o($Vdl,[2,506]),o($V2,[2,507]),o($V2,[2,508]),o($V2,[2,549]),o($VP8,[2,600]),o($V2,[2,601]),o($Vil,[2,597]),o($Vkl,[2,598]),o($V2,[2,539])], -defaultActions: {9:[2,947],10:[2,948],11:[2,949],12:[2,950],13:[2,951],14:[2,952],15:[2,953],16:[2,954],17:[2,955],18:[2,956],19:[2,957],20:[2,958],21:[2,959],22:[2,960],23:[2,961],24:[2,962],25:[2,963],26:[2,964],27:[2,965],28:[2,966],29:[2,967],30:[2,968],31:[2,969],32:[2,970],33:[2,971],34:[2,972],35:[2,973],36:[2,974],37:[2,975],38:[2,976],39:[2,977],40:[2,978],41:[2,979],42:[2,980],43:[2,981],44:[2,982],45:[2,983],46:[2,984],47:[2,985],48:[2,986],49:[2,987],50:[2,988],51:[2,989],52:[2,990],53:[2,991],54:[2,992],55:[2,993],56:[2,994],57:[2,995],58:[2,996],59:[2,997],60:[2,998],61:[2,999],62:[2,1000],63:[2,1001],64:[2,1002],65:[2,1003],66:[2,1004],67:[2,1005],68:[2,1006],69:[2,1007],70:[2,1008],71:[2,1009],72:[2,1010],73:[2,1011],74:[2,1012],75:[2,1013],76:[2,1014],77:[2,1015],78:[2,1016],79:[2,1017],80:[2,1018],81:[2,1019],82:[2,1020],83:[2,1021],84:[2,1022],85:[2,1023],86:[2,1024],87:[2,1025],88:[2,1026],89:[2,1027],90:[2,1028],91:[2,1029],92:[2,1030],93:[2,1031],94:[2,1032],95:[2,1033],96:[2,1034],97:[2,1035],98:[2,1036],99:[2,1037],100:[2,1038],101:[2,1039],102:[2,1040],104:[2,1042],105:[2,1043],106:[2,1044],107:[2,1045],108:[2,1046],109:[2,1047],110:[2,1048],111:[2,1049],112:[2,1050],113:[2,1051],114:[2,1052],115:[2,1053],116:[2,1054],117:[2,1055],118:[2,1056],119:[2,1057],120:[2,1058],121:[2,1059],122:[2,1060],123:[2,1061],124:[2,1062],125:[2,1063],126:[2,1064],127:[2,1065],128:[2,1066],129:[2,1067],130:[2,1068],131:[2,1069],132:[2,1070],133:[2,1071],134:[2,1072],135:[2,1073],136:[2,1074],137:[2,1075],138:[2,1076],139:[2,1077],140:[2,1078],141:[2,1079],142:[2,1080],143:[2,1081],144:[2,1082],145:[2,1083],146:[2,1084],147:[2,1085],148:[2,1086],149:[2,1087],150:[2,1088],151:[2,1089],152:[2,1090],154:[2,1092],155:[2,1093],156:[2,1094],157:[2,1095],158:[2,1096],159:[2,1097],160:[2,1098],161:[2,1099],162:[2,1100],163:[2,1101],164:[2,1102],165:[2,1103],166:[2,1104],167:[2,1105],168:[2,1106],169:[2,1107],170:[2,1108],171:[2,1109],172:[2,1110],173:[2,1111],174:[2,1112],175:[2,1113],176:[2,1114],177:[2,1115],178:[2,1116],179:[2,1117],180:[2,1118],181:[2,1119],182:[2,1120],183:[2,1121],184:[2,1122],185:[2,1123],186:[2,1124],187:[2,1125],188:[2,1126],189:[2,1127],190:[2,1128],191:[2,1129],192:[2,1130],193:[2,1131],194:[2,1132],195:[2,1133],196:[2,1134],197:[2,1135],198:[2,1136],199:[2,1137],200:[2,1138],201:[2,1139],202:[2,1140],203:[2,1141],204:[2,1142],205:[2,1143],206:[2,1144],207:[2,1145],208:[2,1146],209:[2,1147],210:[2,1148],211:[2,1149],212:[2,1150],213:[2,1151],214:[2,1152],215:[2,1153],216:[2,1154],217:[2,1155],218:[2,1156],219:[2,1157],220:[2,1158],221:[2,1159],222:[2,1160],223:[2,1161],224:[2,1162],225:[2,1163],226:[2,1164],227:[2,1165],228:[2,1166],229:[2,1167],230:[2,1168],231:[2,1169],232:[2,1170],233:[2,1171],234:[2,1172],235:[2,1173],236:[2,1174],237:[2,1175],238:[2,1176],239:[2,1177],240:[2,1178],241:[2,1179],242:[2,1180],243:[2,1181],244:[2,1182],245:[2,1183],246:[2,1184],247:[2,1185],248:[2,1186],249:[2,1187],250:[2,1188],251:[2,1189],252:[2,1190],253:[2,1191],254:[2,1192],255:[2,1193],256:[2,1194],257:[2,1195],258:[2,1196],259:[2,1197],260:[2,1198],261:[2,1199],262:[2,1200],263:[2,1201],264:[2,1202],265:[2,1203],266:[2,1204],267:[2,1205],268:[2,1206],269:[2,1207],270:[2,1208],271:[2,1209],272:[2,1210],273:[2,1211],274:[2,1212],275:[2,1213],276:[2,1214],277:[2,1215],278:[2,1216],279:[2,1217],280:[2,1218],281:[2,1219],282:[2,1220],283:[2,1221],284:[2,1222],285:[2,1223],286:[2,1224],287:[2,1225],288:[2,1226],289:[2,1227],290:[2,1228],291:[2,1229],292:[2,1230],293:[2,1231],294:[2,1232],295:[2,1233],296:[2,1234],297:[2,1235],298:[2,1236],299:[2,1237],300:[2,1238],301:[2,1239],302:[2,1240],303:[2,1241],304:[2,1242],305:[2,1243],306:[2,1244],307:[2,1245],308:[2,1246],309:[2,1247],310:[2,1248],311:[2,1249],312:[2,1250],313:[2,1251],314:[2,1252],316:[2,1254],317:[2,1255],318:[2,1256],319:[2,1257],320:[2,1258],321:[2,1259],322:[2,1260],323:[2,1261],324:[2,1262],325:[2,1263],326:[2,1264],327:[2,1265],328:[2,1266],329:[2,1267],330:[2,1268],331:[2,1269],332:[2,1270],333:[2,1271],334:[2,1272],335:[2,1273],336:[2,1274],337:[2,1275],338:[2,1276],339:[2,1277],340:[2,1278],341:[2,1279],342:[2,1280],343:[2,1281],344:[2,1282],345:[2,1283],346:[2,1284],347:[2,1285],348:[2,1286],349:[2,1287],350:[2,1288],351:[2,1289],352:[2,1290],353:[2,1291],354:[2,1292],355:[2,1293],356:[2,1294],357:[2,1295],358:[2,1296],359:[2,1297],360:[2,1298],361:[2,1299],362:[2,1300],363:[2,1301],364:[2,1302],365:[2,1303],366:[2,1304],367:[2,1305],368:[2,1306],369:[2,1307],370:[2,1308],371:[2,1309],372:[2,1310],373:[2,1311],374:[2,1312],375:[2,1313],376:[2,1314],377:[2,1315],378:[2,1316],379:[2,1317],380:[2,1318],381:[2,1319],382:[2,1320],383:[2,1321],384:[2,1322],385:[2,1323],386:[2,1324],387:[2,1325],388:[2,1326],389:[2,1327],390:[2,1328],391:[2,1329],392:[2,1330],393:[2,1331],530:[2,922],532:[2,923],913:[2,1360],1390:[2,1987],1391:[2,1988],1392:[2,1989],1393:[2,1990],1394:[2,1991],1395:[2,1992],1396:[2,1993],1431:[2,2093],1432:[2,2094],1433:[2,2095],1434:[2,2096],1435:[2,2097],1436:[2,2098],1437:[2,2099],1438:[2,2100],1439:[2,2101],1440:[2,2102],1441:[2,2103],1442:[2,2104],1443:[2,2105],1444:[2,2106],2304:[2,749],2471:[2,251],2472:[2,250],2869:[2,576],3047:[2,750],3225:[2,378],3252:[2,746],3443:[2,751],3445:[2,754],3614:[2,391]}, -parseError: function parseError (str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse (input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - - -SqlParseSupport.initSqlParser(parser);/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex () { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState () { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState (condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true,"flex":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0: /* skip whitespace */ -break; -case 1: /* skip comments */ -break; -case 2: /* skip comments */ -break; -case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 27; -break; -case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 797; -break; -case 5: return 44; -break; -case 6: return 322; -break; -case 7: return 426; -break; -case 8: return 512; -break; -case 9: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 38; -break; -case 10: return 513; -break; -case 11: return 514; -break; -case 12: return 431; -break; -case 13: return 515; -break; -case 14: return 517; -break; -case 15: return 519; -break; -case 16: return 520; -break; -case 17: return 136; -break; -case 18: return 521; -break; -case 19: return 522; -break; -case 20: return 523; -break; -case 21: return 524; -break; -case 22: return 525; -break; -case 23: return 151; -break; -case 24: return 289; -break; -case 25: return 528; -break; -case 26: return 529; -break; -case 27: return 530; -break; -case 28: return 531; -break; -case 29: return 532; -break; -case 30: return 85; -break; -case 31: return 533; -break; -case 32: return 534; -break; -case 33: return 257; -break; -case 34: return 536; -break; -case 35: return 537; -break; -case 36: return 538; -break; -case 37: return 539; -break; -case 38: return 540; -break; -case 39: return 541; -break; -case 40: return 111; -break; -case 41: return 543; -break; -case 42: return 544; -break; -case 43: return 545; -break; -case 44: return 351; -break; -case 45: return 546; -break; -case 46: return 547; -break; -case 47: return 65; -break; -case 48: return 117; -break; -case 49: parser.determineCase(yy_.yytext); return 86; -break; -case 50: return 548; -break; -case 51: return 87; -break; -case 52: parser.determineCase(yy_.yytext); return 155; -break; -case 53: return 549; -break; -case 54: return 550; -break; -case 55: return 551; -break; -case 56: return 552; -break; -case 57: return 553; -break; -case 58: return 554; -break; -case 59: return 555; -break; -case 60: return 556; -break; -case 61: return 558; -break; -case 62: return 559; -break; -case 63: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('CREATE', yy_.yylloc, yy.lexer.upcomingInput()); return 170; -break; -case 64: return 432; -break; -case 65: return 560; -break; -case 66: return 561; -break; -case 67: return 562; -break; -case 68: return 563; -break; -case 69: return 564; -break; -case 70: return 565; -break; -case 71: return 566; -break; -case 72: return 567; -break; -case 73: return 568; -break; -case 74: return 569; -break; -case 75: return 570; -break; -case 76: return 496; -break; -case 77: return 143; -break; -case 78: return 571; -break; -case 79: return 572; -break; -case 80: return 573; -break; -case 81: return 574; -break; -case 82: return 575; -break; -case 83: return 576; -break; -case 84: return 577; -break; -case 85: return 393; -break; -case 86: return 296; -break; -case 87: return 578; -break; -case 88: return 579; -break; -case 89: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DESCRIBE', yy_.yylloc); return 840; -break; -case 90: return 580; -break; -case 91: return 581; -break; -case 92: return 582; -break; -case 93: return 518; -break; -case 94: return 583; -break; -case 95: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 63; -break; -case 96: return 584; -break; -case 97: return 585; -break; -case 98: return 586; -break; -case 99: return 587; -break; -case 100: return 588; -break; -case 101: return 88; -break; -case 102: return 589; -break; -case 103: return 590; -break; -case 104: return 591; -break; -case 105: return 592; -break; -case 106: return 593; -break; -case 107: return 304; -break; -case 108: return 594; -break; -case 109: return 595; -break; -case 110: return 596; -break; -case 111: return 597; -break; -case 112: parser.yy.correlatedSubQuery = true; return 598; -break; -case 113: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('EXPLAIN', yy_.yylloc); return 506; -break; -case 114: return 599; -break; -case 115: return 600; -break; -case 116: return 602; -break; -case 117: return 603; -break; -case 118: return 301; -break; -case 119: return 98; -break; -case 120: return 604; -break; -case 121: return 605; -break; -case 122: return 353; -break; -case 123: return 606; -break; -case 124: return 607; -break; -case 125: return 608; -break; -case 126: return 609; -break; -case 127: return 610; -break; -case 128: return 107; -break; -case 129: return 611; -break; -case 130: return 612; -break; -case 131: return 613; -break; -case 132: parser.determineCase(yy_.yytext); return 395; -break; -case 133: return 428; -break; -case 134: return 316; -break; -case 135: return 149; -break; -case 136: return 614; -break; -case 137: return 615; -break; -case 138: return 616; -break; -case 139: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('GRANT', yy_.yylloc); return 453; -break; -case 140: return 454; -break; -case 141: return 618; -break; -case 142: return 619; -break; -case 143: return 265; -break; -case 144: return 620; -break; -case 145: return 622; -break; -case 146: return 623; -break; -case 147: return 624; -break; -case 148: return 625; -break; -case 149: return 626; -break; -case 150: return 158; -break; -case 151: return 627; -break; -case 152: return 345; -break; -case 153: return 628; -break; -case 154: return 433; -break; -case 155: return 629; -break; -case 156: this.begin('hdfs'); return 497; -break; -case 157: return 630; -break; -case 158: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INSERT', yy_.yylloc); return 464; -break; -case 159: return 631; -break; -case 160: return 354; -break; -case 161: return 632; -break; -case 162: return 633; -break; -case 163: return 634; -break; -case 164: return 485; -break; -case 165: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INVALIDATE', yy_.yylloc, yy.lexer.upcomingInput()); return 153; -break; -case 166: return 635; -break; -case 167: return 144; -break; -case 168: return 436; -break; -case 169: return 636; -break; -case 170: return 637; -break; -case 171: return 638; -break; -case 172: return 639; -break; -case 173: return 640; -break; -case 174: return 641; -break; -case 175: return 642; -break; -case 176: return 643; -break; -case 177: return 644; -break; -case 178: return 254; -break; -case 179: return 290; -break; -case 180: return 645; -break; -case 181: return 646; -break; -case 182: return 647; -break; -case 183: return 648; -break; -case 184: return 429; -break; -case 185: return 208; -break; -case 186: return 649; -break; -case 187: return 650; -break; -case 188: return 361; -break; -case 189: return 305; -break; -case 190: return 651; -break; -case 191: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('LOAD', yy_.yylloc, yy.lexer.upcomingInput()); return 495; -break; -case 192: return 652; -break; -case 193: return 653; -break; -case 194: this.begin('hdfs'); return 654; -break; -case 195: return 655; -break; -case 196: return 656; -break; -case 197: return 657; -break; -case 198: return 658; -break; -case 199: return 660; -break; -case 200: return 349; -break; -case 201: return 154; -break; -case 202: return 661; -break; -case 203: return 663; -break; -case 204: return 664; -break; -case 205: return 665; -break; -case 206: return 666; -break; -case 207: return 667; -break; -case 208: return 668; -break; -case 209: return 670; -break; -case 210: return 671; -break; -case 211: return 672; -break; -case 212: return 224; -break; -case 213: return 673; -break; -case 214: return 146; -break; -case 215: return 674; -break; -case 216: return 675; -break; -case 217: return 676; -break; -case 218: return 677; -break; -case 219: return 678; -break; -case 220: return 878; -break; -case 221: return 679; -break; -case 222: return 142; -break; -case 223: return 680; -break; -case 224: return 681; -break; -case 225: return 466; -break; -case 226: return 682; -break; -case 227: return 291; -break; -case 228: return 683; -break; -case 229: return 684; -break; -case 230: return 434; -break; -case 231: return 685; -break; -case 232: return 686; -break; -case 233: return 687; -break; -case 234: return 488; -break; -case 235: return 292; -break; -case 236: return 51; -break; -case 237: return 256; -break; -case 238: return 71; -break; -case 239: return 688; -break; -case 240: return 689; -break; -case 241: return 690; -break; -case 242: return 691; -break; -case 243: return 692; -break; -case 244: return 693; -break; -case 245: return 694; -break; -case 246: return 695; -break; -case 247: return 696; -break; -case 248: return 697; -break; -case 249: return 698; -break; -case 250: return 350; -break; -case 251: return 253; -break; -case 252: return 699; -break; -case 253: return 700; -break; -case 254: return 391; -break; -case 255: return 50; -break; -case 256: return 293; -break; -case 257: return 701; -break; -case 258: return 702; -break; -case 259: return 70; -break; -case 260: return 703; -break; -case 261: return 704; -break; -case 262: return 705; -break; -case 263: return 706; -break; -case 264: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REFRESH', yy_.yylloc); return 147; -break; -case 265: return 707; -break; -case 266: return 708; -break; -case 267: return 709; -break; -case 268: return 710; -break; -case 269: return 711; -break; -case 270: return 712; -break; -case 271: return 713; -break; -case 272: return 714; -break; -case 273: return 715; -break; -case 274: return 716; -break; -case 275: return 56; -break; -case 276: return 717; -break; -case 277: return 73; -break; -case 278: return 718; -break; -case 279: return 719; -break; -case 280: return 343; -break; -case 281: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REVOKE', yy_.yylloc); return 467; -break; -case 282: return 430; -break; -case 283: return 720; -break; -case 284: return 360; -break; -case 285: return 721; -break; -case 286: return 722; -break; -case 287: return 723; -break; -case 288: return 106; -break; -case 289: return 724; -break; -case 290: return 725; -break; -case 291: return 726; -break; -case 292: return 727; -break; -case 293: return 728; -break; -case 294: return 729; -break; -case 295: return 730; -break; -case 296: return 731; -break; -case 297: return 732; -break; -case 298: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 412; -break; -case 299: return 435; -break; -case 300: return 733; -break; -case 301: return 294; -break; -case 302: return 103; -break; -case 303: return 352; -break; -case 304: return 462; -break; -case 305: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 26; -break; -case 306: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 1006; -break; -case 307: return 734; -break; -case 308: return 735; -break; -case 309: return 736; -break; -case 310: return 737; -break; -case 311: return 269; -break; -case 312: return 738; -break; -case 313: return 739; -break; -case 314: return 740; -break; -case 315: return 741; -break; -case 316: return 742; -break; -case 317: return 743; -break; -case 318: return 66; -break; -case 319: return 288; -break; -case 320: return 747; -break; -case 321: return 748; -break; -case 322: return 749; -break; -case 323: return 750; -break; -case 324: return 751; -break; -case 325: return 752; -break; -case 326: return 344; -break; -case 327: return 754; -break; -case 328: return 755; -break; -case 329: return 756; -break; -case 330: return 129; -break; -case 331: return 757; -break; -case 332: return 758; -break; -case 333: return 101; -break; -case 334: return 302; -break; -case 335: return 295; -break; -case 336: return 759; -break; -case 337: return 760; -break; -case 338: return 761; -break; -case 339: return 762; -break; -case 340: return 763; -break; -case 341: return 57; -break; -case 342: return 764; -break; -case 343: return 765; -break; -case 344: return 766; -break; -case 345: return 767; -break; -case 346: return 768; -break; -case 347: return 769; -break; -case 348: return 770; -break; -case 349: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 392; -break; -case 350: return 771; -break; -case 351: return 983; -break; -case 352: return 109; -break; -case 353: return 772; -break; -case 354: return 773; -break; -case 355: return 880; -break; -case 356: return 774; -break; -case 357: parser.determineCase(yy_.yytext); return 1021; -break; -case 358: return 348; -break; -case 359: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('UPSERT', yy_.yylloc); return 484; -break; -case 360: return 463; -break; -case 361: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 1035; -break; -case 362: return 776; -break; -case 363: return 777; -break; -case 364: return 778; -break; -case 365: return 276; -break; -case 366: return 781; -break; -case 367: return 782; -break; -case 368: return 786; -break; -case 369: return 787; -break; -case 370: return 141; -break; -case 371: return 788; -break; -case 372: return 789; -break; -case 373: return 790; -break; -case 374: return 791; -break; -case 375: return 792; -break; -case 376: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 307; -break; -case 377: return 793; -break; -case 378: return 794; -break; -case 379: this.begin('hdfs'); return 206; -break; -case 380: return 53; -break; -case 381: return 685; -break; -case 382: return 360; -break; -case 383: return 236; -break; -case 384: return 64; -break; -case 385: return 241; -break; -case 386: return 41; -break; -case 387: return 242; -break; -case 388: return 535; -break; -case 389: return 490; -break; -case 390: return 489; -break; -case 391: yy.lexer.unput('('); yy_.yytext = 'appx_median'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 516; -break; -case 392: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 526; -break; -case 393: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 542; -break; -case 394: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 557; -break; -case 395: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 601; -break; -case 396: yy.lexer.unput('('); yy_.yytext = 'group_concat'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 617; -break; -case 397: yy.lexer.unput('('); yy_.yytext = 'left'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 963; -break; -case 398: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 659; -break; -case 399: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 662; -break; -case 400: yy.lexer.unput('('); yy_.yytext = 'ndv'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 669; -break; -case 401: yy.lexer.unput('('); yy_.yytext = 'stddev'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 744; -break; -case 402: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 745; -break; -case 403: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 746; -break; -case 404: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 753; -break; -case 405: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 779; -break; -case 406: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 780; -break; -case 407: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 783; -break; -case 408: yy.lexer.unput('('); yy_.yytext = 'variance_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 784; -break; -case 409: yy.lexer.unput('('); yy_.yytext = 'variance_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 785; -break; -case 410: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 411: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 412: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 413: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 414: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 415: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 416: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 417: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 418: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 419: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 513; -break; -case 420: yy.lexer.unput('('); yy_.yytext = 'system'; return 930; -break; -case 421: return 362; -break; -case 422: return 362; -break; -case 423: return 775; -break; -case 424: return 504; -break; -case 425: parser.yy.cursorFound = true; return 27; -break; -case 426: parser.yy.cursorFound = true; return 797; -break; -case 427: return 621; -break; -case 428: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 988; -break; -case 429: this.popState(); return 989; -break; -case 430: return 500; -break; -case 431: return 514; -break; -case 432: return 682; -break; -case 433: return 54; -break; -case 434: return 237; -break; -case 435: return 238; -break; -case 436: return 278; -break; -case 437: return 278; -break; -case 438: return 278; -break; -case 439: return 278; -break; -case 440: return 278; -break; -case 441: return 509; -break; -case 442: return 508; -break; -case 443: return 518; -break; -case 444: return 518; -break; -case 445: return 518; -break; -case 446: return 518; -break; -case 447: return 518; -break; -case 448: return 518; -break; -case 449: return 95; -break; -case 450: return 138; -break; -case 451: return 342; -break; -case 452: return 248; -break; -case 453: return 405; -break; -case 454: return 795; -break; -case 455: return 507; -break; -case 456: return 89; -break; -case 457: return 91; -break; -case 458: return 510; -break; -case 459: return 511; -break; -case 460: return 505; -break; -case 461: this.begin('backtickedValue'); return 527; -break; -case 462: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { - return 800; - } - return 181; - -break; -case 463: this.popState(); return 527; -break; -case 464: this.begin('singleQuotedValue'); return 179; -break; -case 465: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { - return 800; - } - return 181; - -break; -case 466: this.popState(); return 179; -break; -case 467: this.begin('doubleQuotedValue'); return 180; -break; -case 468: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { - return 800; - } - return 181; - -break; -case 469: this.popState(); return 180; -break; -case 470: return 500; -break; -case 471: /* To prevent console logging of unknown chars */ -break; -case 472: -break; -case 473: -break; -case 474: -break; -case 475: -break; -case 476:console.log(yy_.yytext); -break; -} -}, -rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ADD)/i,/^(?:AGGREGATE)/i,/^(?:ALL)/i,/^(?:ALLOCATE)/i,/^(?:ALTER)/i,/^(?:ANALYTIC)/i,/^(?:AND)/i,/^(?:ANTI)/i,/^(?:ANY)/i,/^(?:ARE)/i,/^(?:ARRAY_AGG)/i,/^(?:ARRAY_MAX_CARDINALITY)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:ASENSITIVE)/i,/^(?:ASYMMETRIC)/i,/^(?:AT)/i,/^(?:ATOMIC)/i,/^(?:AUTHORIZATION)/i,/^(?:AVRO)/i,/^(?:BEGIN_FRAME)/i,/^(?:BEGIN_PARTITION)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BLOB)/i,/^(?:BLOCK_SIZE)/i,/^(?:BOOLEAN)/i,/^(?:BOTH)/i,/^(?:BY)/i,/^(?:CACHED)/i,/^(?:CALLED)/i,/^(?:CARDINALITY)/i,/^(?:CASCADE)/i,/^(?:CASCADED)/i,/^(?:CASE)/i,/^(?:CHANGE)/i,/^(?:CHAR)/i,/^(?:CHARACTER)/i,/^(?:CLOB)/i,/^(?:CLOSE_FN)/i,/^(?:COLLATE)/i,/^(?:COLLECT)/i,/^(?:COLUMN)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMMIT)/i,/^(?:COMPRESSION)/i,/^(?:COMPUTE)/i,/^(?:CONDITION)/i,/^(?:CONNECT)/i,/^(?:CONSTRAINT)/i,/^(?:CONTAINS)/i,/^(?:CONVERT)/i,/^(?:COPY)/i,/^(?:CORR)/i,/^(?:CORRESPONDING)/i,/^(?:COVAR_POP)/i,/^(?:COVAR_SAMP)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:CURRENT_DATE)/i,/^(?:CURRENT_DEFAULT_TRANSFORM_GROUP)/i,/^(?:CURRENT_PATH)/i,/^(?:CURRENT_ROLE)/i,/^(?:CURRENT_ROW)/i,/^(?:CURRENT_SCHEMA)/i,/^(?:CURRENT_TIME)/i,/^(?:CURRENT_TRANSFORM_GROUP_FOR_TYPE)/i,/^(?:CYCLE)/i,/^(?:DATA)/i,/^(?:DATABASE)/i,/^(?:DATABASES)/i,/^(?:DEALLOCATE)/i,/^(?:DEC)/i,/^(?:DECFLOAT)/i,/^(?:DECIMAL)/i,/^(?:DECLARE)/i,/^(?:DEFINE)/i,/^(?:DELETE)/i,/^(?:DELIMITED)/i,/^(?:DEREF)/i,/^(?:DESC)/i,/^(?:DESCRIBE)/i,/^(?:DETERMINISTIC)/i,/^(?:DISCONNECT)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:DYNAMIC)/i,/^(?:EACH)/i,/^(?:ELEMENT)/i,/^(?:ELSE)/i,/^(?:EMPTY)/i,/^(?:ENCODING)/i,/^(?:END)/i,/^(?:END_FRAME)/i,/^(?:END_PARTITION)/i,/^(?:EQUALS)/i,/^(?:ESCAPE)/i,/^(?:ESCAPED)/i,/^(?:EVERY)/i,/^(?:EXCEPT)/i,/^(?:EXEC)/i,/^(?:EXECUTE)/i,/^(?:EXISTS)/i,/^(?:EXPLAIN)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FALSE)/i,/^(?:FETCH)/i,/^(?:FIELDS)/i,/^(?:FILEFORMAT)/i,/^(?:FILES)/i,/^(?:FILTER)/i,/^(?:FINALIZE_FN)/i,/^(?:FIRST)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FRAME_ROW)/i,/^(?:FREE)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:FUNCTION)/i,/^(?:FUNCTIONS)/i,/^(?:FUSION)/i,/^(?:GET)/i,/^(?:GLOBAL)/i,/^(?:GRANT)/i,/^(?:GROUP)/i,/^(?:GROUPING)/i,/^(?:GROUPS)/i,/^(?:HASH)/i,/^(?:HAVING)/i,/^(?:HOLD)/i,/^(?:IF)/i,/^(?:IGNORE)/i,/^(?:ILIKE)/i,/^(?:IN)/i,/^(?:INCREMENTAL)/i,/^(?:INDICATOR)/i,/^(?:INIT_FN)/i,/^(?:INITIAL)/i,/^(?:INNER)/i,/^(?:INOUT)/i,/^(?:INPATH)/i,/^(?:INSENSITIVE)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTERMEDIATE)/i,/^(?:INTERSECT)/i,/^(?:INTERSECTION)/i,/^(?:INTERVAL)/i,/^(?:INTO)/i,/^(?:INVALIDATE)/i,/^(?:IREGEXP)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:JSON_ARRAY)/i,/^(?:JSON_ARRAYAGG)/i,/^(?:JSON_EXISTS)/i,/^(?:JSON_OBJECT)/i,/^(?:JSON_OBJECTAGG)/i,/^(?:JSON_QUERY)/i,/^(?:JSON_TABLE)/i,/^(?:JSON_TABLE_PRIMITIVE)/i,/^(?:JSON_VALUE)/i,/^(?:KEY)/i,/^(?:KUDU)/i,/^(?:LARGE)/i,/^(?:LAST)/i,/^(?:LATERAL)/i,/^(?:LEADING)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIKE_REGEX)/i,/^(?:LIMIT)/i,/^(?:LIFECYCLE)/i,/^(?:LINES)/i,/^(?:LISTAGG)/i,/^(?:LOAD)/i,/^(?:LOCAL)/i,/^(?:LOCALTIMESTAMP)/i,/^(?:LOCATION)/i,/^(?:MATCH)/i,/^(?:MATCH_NUMBER)/i,/^(?:MATCH_RECOGNIZE)/i,/^(?:MATCHES)/i,/^(?:MERGE)/i,/^(?:MERGE_FN)/i,/^(?:METADATA)/i,/^(?:METHOD)/i,/^(?:MODIFIES)/i,/^(?:MULTISET)/i,/^(?:NATIONAL)/i,/^(?:NATURAL)/i,/^(?:NCHAR)/i,/^(?:NCLOB)/i,/^(?:NO)/i,/^(?:NONE)/i,/^(?:NORMALIZE)/i,/^(?:NOT)/i,/^(?:NTH_VALUE)/i,/^(?:NULL)/i,/^(?:NULLS)/i,/^(?:NUMERIC)/i,/^(?:OCCURRENCES_REGEX)/i,/^(?:OCTET_LENGTH)/i,/^(?:OF)/i,/^(?:OFFSET)/i,/^(?:OMIT)/i,/^(?:ON)/i,/^(?:ONE)/i,/^(?:ONLY)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORC)/i,/^(?:ORDER)/i,/^(?:OUT)/i,/^(?:OUTER)/i,/^(?:OVER)/i,/^(?:OVERLAPS)/i,/^(?:OVERLAY)/i,/^(?:OVERWRITE)/i,/^(?:PARQUET)/i,/^(?:PARTITION)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PATTERN)/i,/^(?:PER)/i,/^(?:PERCENT)/i,/^(?:PERCENTILE_CONT)/i,/^(?:PERCENTILE_DISC)/i,/^(?:PORTION)/i,/^(?:POSITION)/i,/^(?:POSITION_REGEX)/i,/^(?:PRECEDES)/i,/^(?:PRECEDING)/i,/^(?:PREPARE)/i,/^(?:PREPARE_FN)/i,/^(?:PRIMARY)/i,/^(?:PROCEDURE)/i,/^(?:PTF)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:RCFILE)/i,/^(?:READS)/i,/^(?:REAL)/i,/^(?:RECOVER)/i,/^(?:RECURSIVE)/i,/^(?:REF)/i,/^(?:REFERENCES)/i,/^(?:REFERENCING)/i,/^(?:REFRESH)/i,/^(?:REGEXP)/i,/^(?:REGR_AVGX)/i,/^(?:REGR_AVGY)/i,/^(?:REGR_COUNT)/i,/^(?:REGR_INTERCEPT)/i,/^(?:REGR_R2REGR_SLOPE)/i,/^(?:REGR_SXX)/i,/^(?:REGR_SXY)/i,/^(?:REGR_SYY)/i,/^(?:RELEASE)/i,/^(?:RENAME)/i,/^(?:REPEATABLE)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:RETURNS)/i,/^(?:REVOKE)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:ROLLBACK)/i,/^(?:ROLLUP)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:RUNNING)/i,/^(?:SAVEPOINT)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SCOPE)/i,/^(?:SCROLL)/i,/^(?:SEARCH)/i,/^(?:SEEK)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SENSITIVE)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SERIALIZE_FN)/i,/^(?:SERVER)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SIMILAR)/i,/^(?:SKIP)/i,/^(?:SMALLINT)/i,/^(?:SOME)/i,/^(?:SORT)/i,/^(?:SPECIFIC)/i,/^(?:SPECIFICTYPE)/i,/^(?:SQLEXCEPTION)/i,/^(?:SQLSTATE)/i,/^(?:SQLWARNING)/i,/^(?:STATIC)/i,/^(?:STATS)/i,/^(?:STORED)/i,/^(?:STRAIGHT_JOIN)/i,/^(?:STRING)/i,/^(?:SUBMULTISET)/i,/^(?:SUBSET)/i,/^(?:SUBSTRING_REGEX)/i,/^(?:SUCCEEDS)/i,/^(?:SYMBOL)/i,/^(?:SYMMETRIC)/i,/^(?:SYSTEM_TIME)/i,/^(?:SYSTEM_USER)/i,/^(?:TABLE)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TIMEZONE_HOUR)/i,/^(?:TIMEZONE_MINUTE)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRAILING)/i,/^(?:TRANSLATE_REGEX)/i,/^(?:TRANSLATION)/i,/^(?:TREAT)/i,/^(?:TRIGGER)/i,/^(?:TRIM_ARRAY)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UESCAPE)/i,/^(?:UNBOUNDED)/i,/^(?:UNCACHED)/i,/^(?:UNION)/i,/^(?:UNIQUE)/i,/^(?:UNKNOWN)/i,/^(?:UNNEST)/i,/^(?:UPDATE)/i,/^(?:UPDATE_FN)/i,/^(?:UPSERT)/i,/^(?:URI)/i,/^(?:USE)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:VALUE_OF)/i,/^(?:VALUES)/i,/^(?:VARBINARY)/i,/^(?:VARCHAR)/i,/^(?:VARYING)/i,/^(?:VERSIONING)/i,/^(?:VIEW)/i,/^(?:WHEN)/i,/^(?:WHENEVER)/i,/^(?:WHERE)/i,/^(?:WIDTH_BUCKET)/i,/^(?:WINDOW)/i,/^(?:WITH)/i,/^(?:WITHIN)/i,/^(?:WITHOUT)/i,/^(?:LIKE\s+PARQUET)/i,/^(?:PARTITION\s+VALUE\s)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:ARRAY)/i,/^(?:DEFAULT)/i,/^(?:MAP)/i,/^(?:OWNER)/i,/^(?:STRUCT)/i,/^(?:\[BROADCAST\])/i,/^(?:\[NOSHUFFLE\])/i,/^(?:\[SHUFFLE\])/i,/^(?:APPX_MEDIAN\s*\()/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:GROUP_CONCAT\s*\()/i,/^(?:LEFT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:NDV\s*\()/i,/^(?:STDDEV\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:VARIANCE_POP\s*\()/i,/^(?:VARIANCE_SAMP\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:SYSTEM\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?:\.\.\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], -conditions: {"hdfs":{"rules":[425,426,427,428,429,430,472],"inclusive":false},"doubleQuotedValue":{"rules":[468,469,475],"inclusive":false},"singleQuotedValue":{"rules":[465,466,474],"inclusive":false},"backtickedValue":{"rules":[462,463,473],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,464,467,470,471,476],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); -export default impalaAutocompleteParser; diff --git a/src/core/parse/impala/impalaSyntaxParser.js b/src/core/parse/impala/impalaSyntaxParser.js deleted file mode 100644 index 7fd6535..0000000 --- a/src/core/parse/impala/impalaSyntaxParser.js +++ /dev/null @@ -1,5330 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -import SqlParseSupport from './sqlParseSupport'; - -var impalaSyntaxParser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[26,38,63,86,147,153,155,170,307,392,393,402,414,415,418,441,452,459,463,471,815,1001,1016,1030],$V1=[2,825],$V2=[459,463],$V3=[2,826],$V4=[1,50],$V5=[1,70],$V6=[1,77],$V7=[1,73],$V8=[1,32],$V9=[1,33],$Va=[1,34],$Vb=[1,74],$Vc=[1,69],$Vd=[1,78],$Ve=[1,64],$Vf=[1,47],$Vg=[1,85],$Vh=[1,68],$Vi=[1,48],$Vj=[1,84],$Vk=[1,66],$Vl=[1,27],$Vm=[1,49],$Vn=[1,79],$Vo=[1,67],$Vp=[1,63],$Vq=[91,361,459,463],$Vr=[2,1471],$Vs=[1,94],$Vt=[1,96],$Vu=[1,110],$Vv=[1,107],$Vw=[1,112],$Vx=[1,108],$Vy=[1,111],$Vz=[1,113],$VA=[1,109],$VB=[1,104],$VC=[1,105],$VD=[1,103],$VE=[1,120],$VF=[1,122],$VG=[1,124],$VH=[1,121],$VI=[1,119],$VJ=[1,123],$VK=[1,125],$VL=[41,64,242,254,411,412,417,469,470,494],$VM=[2,1280],$VN=[1,130],$VO=[1,131],$VP=[1,145],$VQ=[2,1506],$VR=[1,153],$VS=[1,154],$VT=[1,161],$VU=[1,162],$VV=[1,174],$VW=[1,176],$VX=[1,173],$VY=[276,415,446,447],$VZ=[91,361,459,463,747],$V_=[2,1299],$V$=[26,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,142,179,180,242,254,256,269,276,288,307,361,391,395,403,411,412,415,417,446,447,459,463,469,470,481,494,503,527,582,589,598,606,620,622,626,655,657,693,707,733,747,752,765,871],$V01=[26,38,41,44,50,51,54,56,57,63,64,70,73,85,86,87,88,89,91,95,101,106,109,111,136,138,142,144,146,179,180,206,208,224,236,237,238,241,242,248,253,254,256,269,276,278,288,307,361,391,395,403,411,412,415,417,446,447,459,463,469,470,474,475,476,477,480,481,485,488,494,497,498,500,503,506,510,527,543,547,551,555,557,575,582,589,594,595,598,601,605,606,620,622,626,646,654,655,657,675,680,692,693,694,698,707,711,723,733,734,735,738,747,752,757,763,765,871],$V11=[1,234],$V21=[1,235],$V31=[1,243],$V41=[2,1326],$V51=[54,138],$V61=[91,95,361,395,403,459,463,589,622,655,747,765,871],$V71=[1,254],$V81=[1,255],$V91=[1,259],$Va1=[1,256],$Vb1=[1,253],$Vc1=[1,260],$Vd1=[1,257],$Ve1=[1,261],$Vf1=[1,258],$Vg1=[91,95,142,361,395,403,459,463,481,527,582,589,598,606,620,622,655,657,693,707,733,747,752,765,871],$Vh1=[2,1916],$Vi1=[1,265],$Vj1=[1,268],$Vk1=[1,269],$Vl1=[41,64,91,95,136,142,179,180,242,254,361,395,403,411,412,417,459,463,469,470,481,494,527,582,589,598,606,620,622,655,657,693,707,733,747,752,765,871],$Vm1=[307,415],$Vn1=[2,1894],$Vo1=[26,41,51,64,242,254,411,412,417,459,463,469,470,494],$Vp1=[41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,411,412,417,469,470,473,474,475,479,483,493,494,508,509,524,566,569,570,586,592,604,631,634,641,719,720,721,728,745,750,751,754,755,758,759,760,770,957],$Vq1=[41,64,73,89,91,138,146,179,180,224,236,241,242,254,362,392,411,412,415,417,469,470,473,474,475,479,483,493,494,508,509,524,566,569,570,586,592,604,631,634,641,719,720,721,722,728,745,750,751,754,755,758,759,760,770,957],$Vr1=[89,95,414,415,441],$Vs1=[41,64,242,254,411,412,417,459,463,469,470,494,592],$Vt1=[50,51],$Vu1=[2,1292],$Vv1=[2,164],$Vw1=[1,286],$Vx1=[1,292],$Vy1=[1,294],$Vz1=[1,295],$VA1=[1,297],$VB1=[1,298],$VC1=[1,300],$VD1=[1,299],$VE1=[2,1289],$VF1=[1,307],$VG1=[1,342],$VH1=[1,341],$VI1=[1,343],$VJ1=[179,208,459,463],$VK1=[2,1296],$VL1=[1,349],$VM1=[1,353],$VN1=[2,761],$VO1=[1,355],$VP1=[41,64,129,242,254,411,412,417,469,470,494],$VQ1=[1,367],$VR1=[1,366],$VS1=[1,368],$VT1=[1,369],$VU1=[1,388],$VV1=[1,381],$VW1=[1,387],$VX1=[1,383],$VY1=[1,380],$VZ1=[1,379],$V_1=[1,389],$V$1=[1,384],$V02=[41,64,89,242,254,411,412,417,469,470,494],$V12=[2,1822],$V22=[1,395],$V32=[1,394],$V42=[41,64,89,242,254,411,412,417,446,469,470,494,502],$V52=[91,95,142,361,395,403,459,463,481,527,582,589,598,606,620,622,655,657,693,707,747,752,765,871],$V62=[2,1886],$V72=[1,414],$V82=[54,64,85,86,87,88,91,95,101,106,109,136,142,146,224,238,253,288,307,361,395,403,459,463,481,503,527,582,589,598,606,620,622,626,655,657,693,707,733,747,752,765,871],$V92=[1,433],$Va2=[1,464],$Vb2=[1,451],$Vc2=[1,457],$Vd2=[1,446],$Ve2=[1,462],$Vf2=[1,463],$Vg2=[1,465],$Vh2=[1,447],$Vi2=[1,444],$Vj2=[1,449],$Vk2=[1,478],$Vl2=[1,489],$Vm2=[1,490],$Vn2=[1,452],$Vo2=[1,479],$Vp2=[1,484],$Vq2=[1,450],$Vr2=[1,480],$Vs2=[1,488],$Vt2=[1,491],$Vu2=[1,461],$Vv2=[1,472],$Vw2=[1,495],$Vx2=[1,496],$Vy2=[1,497],$Vz2=[1,492],$VA2=[1,493],$VB2=[1,494],$VC2=[1,485],$VD2=[1,487],$VE2=[1,466],$VF2=[1,501],$VG2=[1,502],$VH2=[1,498],$VI2=[1,499],$VJ2=[1,500],$VK2=[1,448],$VL2=[1,467],$VM2=[1,513],$VN2=[1,514],$VO2=[1,516],$VP2=[1,517],$VQ2=[1,518],$VR2=[1,519],$VS2=[1,520],$VT2=[1,521],$VU2=[1,522],$VV2=[1,524],$VW2=[2,1387],$VX2=[1,528],$VY2=[26,41,50,54,63,64,85,86,87,88,89,91,95,136,138,144,146,179,180,208,224,236,237,238,241,242,253,254,278,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,498,500,510,527,543,547,551,555,557,575,582,589,594,595,598,601,605,606,620,622,646,654,655,657,675,680,693,694,698,707,711,723,734,735,738,747,757,763,765,871],$VZ2=[1,543],$V_2=[95,459,463],$V$2=[1,587],$V03=[91,95],$V13=[41,64,101,136,242,254,361,411,412,417,459,463,469,470],$V23=[41,50,54,64,85,86,87,88,91,95,101,106,109,136,144,146,179,180,208,224,237,238,242,253,254,269,278,288,307,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,503,527,547,555,557,582,589,594,595,598,605,606,620,622,626,646,654,655,657,680,693,694,698,707,734,747,763,765,871],$V33=[2,1531],$V43=[1,609],$V53=[41,50,54,64,85,86,87,88,91,95,101,106,109,136,142,144,146,179,180,208,224,237,238,242,253,254,278,288,304,305,307,348,349,350,351,352,353,354,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,503,527,547,555,557,582,589,594,595,598,605,606,620,622,626,646,654,655,657,680,693,694,698,707,733,734,747,752,763,765,871],$V63=[41,50,54,64,85,86,87,88,91,95,101,106,109,136,142,144,146,179,180,208,224,237,238,242,253,254,278,288,307,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,503,527,547,555,557,582,589,594,595,598,605,606,620,622,626,646,654,655,657,680,693,694,698,707,733,734,747,752,763,765,871],$V73=[41,50,54,64,91,95,136,142,144,179,180,208,224,237,238,242,254,278,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,527,547,555,557,582,589,594,595,598,605,606,620,622,646,654,655,657,680,693,694,698,707,733,734,747,752,763,765,871],$V83=[459,463,765],$V93=[95,395,459,463,765],$Va3=[54,86,91,95],$Vb3=[41,50,54,64,85,86,87,88,89,91,95,136,138,144,146,179,180,208,224,237,238,242,253,254,278,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,527,547,555,557,582,589,594,595,598,605,606,620,622,646,654,655,657,680,693,694,698,707,734,747,763,765,871],$Vc3=[91,95,361,395,459,463,747],$Vd3=[1,639],$Ve3=[1,638],$Vf3=[1,652],$Vg3=[1,643],$Vh3=[1,640],$Vi3=[1,641],$Vj3=[1,642],$Vk3=[1,649],$Vl3=[1,648],$Vm3=[1,647],$Vn3=[1,650],$Vo3=[1,645],$Vp3=[1,653],$Vq3=[1,644],$Vr3=[1,654],$Vs3=[1,646],$Vt3=[1,656],$Vu3=[1,655],$Vv3=[41,50,54,64,91,95,136,144,179,180,208,224,237,238,242,254,278,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,527,547,555,557,582,589,594,595,598,605,606,620,622,646,654,655,657,680,693,694,698,707,734,747,763,765,871],$Vw3=[1,667],$Vx3=[41,50,54,64,85,86,87,88,91,95,136,144,146,179,180,208,224,237,238,242,253,254,278,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,527,547,555,557,582,589,594,595,598,605,606,620,622,646,654,655,657,680,693,694,698,707,734,747,763,765,871],$Vy3=[1,669],$Vz3=[41,50,54,64,85,86,87,88,89,91,95,136,144,146,179,180,208,224,237,238,242,253,254,278,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,527,547,555,557,582,589,594,595,598,605,606,620,622,646,654,655,657,680,693,694,698,707,734,747,763,765,871],$VA3=[1,674],$VB3=[41,50,54,64,85,86,87,88,91,95,136,144,146,179,180,208,224,237,238,242,253,254,278,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,527,547,555,557,582,589,594,595,598,605,606,620,622,646,654,655,657,658,680,693,694,698,707,734,747,763,765,871],$VC3=[51,109,459,463,503],$VD3=[2,1376],$VE3=[101,109,136,361,459,463,503,626],$VF3=[101,136,361,459,463],$VG3=[1,699],$VH3=[1,724],$VI3=[1,725],$VJ3=[1,726],$VK3=[1,714],$VL3=[1,715],$VM3=[1,721],$VN3=[1,720],$VO3=[1,717],$VP3=[1,716],$VQ3=[1,713],$VR3=[1,718],$VS3=[1,712],$VT3=[1,719],$VU3=[1,723],$VV3=[1,711],$VW3=[1,722],$VX3=[2,251],$VY3=[1,740],$VZ3=[86,136],$V_3=[51,86,89,101,106,109,136,206,208,256,269,288,307,361,459,463,503,626],$V$3=[1,749],$V04=[1,767],$V14=[91,95,655],$V24=[26,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,138,142,179,180,242,254,256,269,276,288,307,361,391,395,403,411,412,415,417,446,447,459,463,469,470,481,494,503,527,582,589,598,606,620,622,626,655,657,693,707,733,747,752,765,871],$V34=[57,395],$V44=[91,361,403,459,463,589,622,655,747,871],$V54=[91,95,361,395,403,459,463,481,527,582,589,598,606,620,622,655,657,693,707,747,765,871],$V64=[2,1869],$V74=[1,786],$V84=[1,787],$V94=[146,550,570,745,873],$Va4=[41,50,64,91,95,136,179,180,224,242,254,361,395,403,411,412,417,459,463,469,470,477,480,481,488,494,497,527,547,555,557,582,589,598,606,620,622,646,654,655,657,693,698,707,734,747,763,765,871],$Vb4=[41,50,54,64,91,95,136,179,180,224,237,238,242,254,278,361,395,403,411,412,417,459,463,469,470,474,475,477,480,481,485,488,494,497,527,547,555,557,582,589,598,606,620,622,646,654,655,657,693,698,707,734,747,763,765,871],$Vc4=[555,557,763],$Vd4=[41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,411,412,417,469,470,473,475,479,483,493,494,508,509,524,566,569,570,586,592,604,631,634,641,719,720,721,728,745,750,751,754,755,758,759,760,770,957],$Ve4=[109,459,463,503],$Vf4=[101,109,136,288,305,307,361,459,463,503,626],$Vg4=[91,95,459,463],$Vh4=[1,881],$Vi4=[1,882],$Vj4=[1,880],$Vk4=[1,879],$Vl4=[1,884],$Vm4=[1,883],$Vn4=[1,886],$Vo4=[64,85,86,87,88,91,95,146,224,238,253,459,463],$Vp4=[64,85,86,87,88,91,95,146,224,238,253,342,459,463,626],$Vq4=[2,1446],$Vr4=[1,890],$Vs4=[86,101,106,109,136,269,288,307,361,459,463,503,626],$Vt4=[51,86,101,106,109,136,256,269,288,307,361,459,463,503,626],$Vu4=[1,921],$Vv4=[2,743],$Vw4=[1,935],$Vx4=[91,361,459,463,589,622,655,747,871],$Vy4=[91,95,361,403,459,463,589,622,655,747,765,871],$Vz4=[41,50,54,64,91,95,136,179,180,224,237,238,242,254,278,361,395,403,411,412,417,459,463,469,470,477,480,481,488,494,497,527,547,555,557,582,589,598,606,620,622,646,654,655,657,693,698,707,734,747,763,765,871],$VA4=[41,50,64,91,95,136,179,180,242,254,361,395,403,411,412,417,459,463,469,470,477,480,481,488,494,527,547,555,557,582,589,598,606,620,622,646,654,655,657,693,698,707,734,747,763,765,871],$VB4=[91,655],$VC4=[2,1380],$VD4=[1,976],$VE4=[1,981],$VF4=[1,982],$VG4=[1,983],$VH4=[1,980],$VI4=[41,64,138,146,179,180,242,254,362,411,412,417,469,470,475,570,745,750,894],$VJ4=[101,109,136,288,361,459,463,503,626],$VK4=[101,109,136,288,307,361,459,463,503,626],$VL4=[64,85,86,87,88,91,95,146,224,253,459,463],$VM4=[86,101,106,109,136,288,307,361,459,463,503,626],$VN4=[343,459,463],$VO4=[91,95,342],$VP4=[91,361,459,463,622,655,747,871],$VQ4=[1,1057],$VR4=[138,179,180,276,362,570,745,750],$VS4=[95,238],$VT4=[1,1088],$VU4=[1,1089],$VV4=[91,361,459,463,622,747,871],$VW4=[86,95,101,106,109,136,269,288,307,361,459,463,503,626],$VX4=[91,361,459,463,747,871],$VY4=[91,95,361,459,463,589,622,655,747,871],$VZ4=[497,977],$V_4=[2,391],$V$4=[1,1164],$V05=[91,480],$V15=[2,2007],$V25=[1,1183],$V35=[1,1182],$V45=[1,1184],$V55=[50,91,95,361,459,463,622,698,747,871],$V65=[50,91,95,361,459,463,622,646,698,747,871],$V75=[1,1200],$V85=[1,1201],$V95=[2,2012],$Va5=[1,1211],$Vb5=[576,670],$Vc5=[351,352,353,354,459,463],$Vd5=[1,1242],$Ve5=[1,1243],$Vf5=[352,353,354,459,463],$Vg5=[136,361,459,463],$Vh5=[2,451],$Vi5=[2,452],$Vj5=[353,354,459,463],$Vk5=[361,459,463],$Vl5=[354,459,463]; -var parser = {trace: function trace () { }, -yy: {}, -symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"RefreshStatement":5,"InvalidateStatement":6,"ComputeStatsStatement":7,"CreateStatement":8,"DropStatement":9,"GrantStatement":10,"RevokeStatement":11,"DescribeStatement":12,"SetSpecification":13,"ShowStatement":14,"UseStatement":15,"DataDefinition_EDIT":16,"AlterStatement_EDIT":17,"RefreshStatement_EDIT":18,"InvalidateStatement_EDIT":19,"ComputeStatsStatement_EDIT":20,"CreateStatement_EDIT":21,"DropStatement_EDIT":22,"GrantStatement_EDIT":23,"RevokeStatement_EDIT":24,"DescribeStatement_EDIT":25,"SET":26,"CURSOR":27,"ShowStatement_EDIT":28,"UseStatement_EDIT":29,"AlterDatabase":30,"AlterTable":31,"AlterView":32,"CommentOn":33,"AlterDatabase_EDIT":34,"AlterTable_EDIT":35,"AlterView_EDIT":36,"CommentOn_EDIT":37,"ALTER":38,"DatabaseOrSchema":39,"RegularOrBacktickedIdentifier":40,"OWNER":41,"RoleOrUser":42,"AlterTableLeftSide":43,"ADD":44,"OptionalIfNotExists":45,"PartitionSpec":46,"OptionalHdfsLocation":47,"OptionalPartitionSpecs":48,"OptionalCachedInOrUncached":49,"RANGE":50,"PARTITION":51,"RangePartitionSpec":52,"PARTITION_VALUE":53,"=":54,"UnsignedValueSpecification":55,"RENAME":56,"TO":57,"RegularOrBackTickedSchemaQualifiedName":58,"OptionalColumn":59,"ColumnIdentifier":60,"KuduStorageAttribute":61,"SetValue":62,"DROP":63,"DEFAULT":64,"COLUMN":65,"STATS":66,"ParenthesizedStatsList":67,"DropOperations":68,"OptionalPartitionOperations":69,"RECOVER":70,"PARTITIONS":71,"AlterTableLeftSide_EDIT":72,"REPLACE":73,"OptionalIfNotExists_EDIT":74,"HdfsLocation_EDIT":75,"OptionalPartitionSpecs_EDIT":76,"CachedIn_EDIT":77,"PartitionSpec_EDIT":78,"OptionalCachedIn":79,"RangePartitionSpec_EDIT":80,"ParenthesizedStatsList_EDIT":81,"OptionalPartitionOperations_EDIT":82,"DropOperations_EDIT":83,"AddOrReplace":84,"BLOCK_SIZE":85,"COMMENT":86,"COMPRESSION":87,"ENCODING":88,"(":89,"StatsList":90,")":91,"StatsList_EDIT":92,"RightParenthesisOrError":93,"StatsAssignment":94,",":95,"StatsAssignment_EDIT":96,"QuotedValue":97,"FILEFORMAT":98,"FileFormat":99,"HdfsLocation":100,"TBLPROPERTIES":101,"ParenthesizedPropertyAssignmentList":102,"SERDEPROPERTIES":103,"CachedIn":104,"OptionalWithReplication":105,"ROW":106,"FORMAT":107,"DelimitedRowFormat":108,"UNCACHED":109,"AddReplaceColumns":110,"CHANGE":111,"ColumnSpecification":112,"AddReplaceColumns_EDIT":113,"ColumnSpecification_EDIT":114,"WithReplication_EDIT":115,"DelimitedRowFormat_EDIT":116,"COLUMNS":117,"ParenthesizedColumnSpecificationList":118,"ParenthesizedColumnSpecificationList_EDIT":119,"ExchangePartitionSpec":120,"OneOrMorePartitionSpecLists":121,"PartitionSpecList":122,"ExchangePartitionSpec_EDIT":123,"OneOrMorePartitionSpecLists_EDIT":124,"PartitionSpecList_EDIT":125,"OptionalIfExists":126,"OptionalIfExists_EDIT":127,"ColumnIdentifier_EDIT":128,"TABLE":129,"SchemaQualifiedTableIdentifier":130,"SchemaQualifiedTableIdentifier_EDIT":131,"PartitionSpecWithLocationList":132,"PartitionSpecWithLocation":133,"PartitionSpecWithLocation_EDIT":134,"AlterViewLeftSide":135,"AS":136,"QuerySpecification":137,".":138,"AlterViewLeftSide_EDIT":139,"QuerySpecification_EDIT":140,"VIEW":141,"ON":142,"DATABASE":143,"IS":144,"NullableComment":145,"NULL":146,"REFRESH":147,"OptionalPartitionSpec":148,"FUNCTIONS":149,"DatabaseIdentifier":150,"AUTHORIZATION":151,"OptionalPartitionSpec_EDIT":152,"INVALIDATE":153,"METADATA":154,"COMPUTE":155,"OptionalParenthesizedColumnList":156,"OptionalTableSample":157,"INCREMENTAL":158,"ParenthesizedColumnList_EDIT":159,"TableSample_EDIT":160,"DatabaseDefinition":161,"TableDefinition":162,"ViewDefinition":163,"RoleDefinition":164,"FunctionDefinition":165,"DatabaseDefinition_EDIT":166,"TableDefinition_EDIT":167,"ViewDefinition_EDIT":168,"FunctionDefinition_EDIT":169,"CREATE":170,"OptionalExternal":171,"RegularIdentifier":172,"DatabaseDefinitionOptionals":173,"OptionalComment":174,"DatabaseDefinitionOptionals_EDIT":175,"OptionalComment_INVALID":176,"Comment":177,"Comment_INVALID":178,"SINGLE_QUOTE":179,"DOUBLE_QUOTE":180,"VALUE":181,"PropertyAssignmentList":182,"PropertyAssignment":183,"TableDefinitionRightPart":184,"LifeCyclePart":185,"TableDefinitionRightPart_EDIT":186,"TableIdentifierAndOptionalColumnSpecification":187,"OptionalPartitionedBy":188,"OptionalSortBy":189,"OptionalRowFormat":190,"OptionalWithSerdeproperties":191,"OptionalStoredAs":192,"OptionalTblproperties":193,"OptionalAsSelectStatement":194,"TableIdentifierAndOptionalColumnSpecification_EDIT":195,"PartitionedBy_EDIT":196,"SortBy_EDIT":197,"RowFormat_EDIT":198,"WithSerdeproperties_EDIT":199,"StoredAs_EDIT":200,"OptionalAsSelectStatement_EDIT":201,"SchemaQualifiedIdentifier":202,"OptionalColumnSpecificationsOrLike":203,"OptionalColumnSpecificationsOrLike_EDIT":204,"SchemaQualifiedIdentifier_EDIT":205,"LIKE_PARQUET":206,"HdfsPath":207,"LIKE":208,"HdfsPath_EDIT":209,"ColumnSpecificationList":210,"PrimaryKeySpecification":211,"ColumnSpecificationList_EDIT":212,"PrimaryKeySpecification_EDIT":213,"ColumnDataType":214,"OptionalColumnOptions":215,"ColumnDataType_EDIT":216,"ColumnOptions_EDIT":217,"ColumnOptions":218,"ColumnOption":219,"ColumnOption_EDIT":220,"PrimaryKey":221,"NonParenthesizedValueExpressionPrimary":222,"UnsignedNumericLiteral":223,"NOT":224,"PrimaryKey_EDIT":225,"PrimitiveType":226,"ArrayType":227,"MapType":228,"StructType":229,"ArrayType_INVALID":230,"MapType_INVALID":231,"StructType_INVALID":232,"ArrayType_EDIT":233,"MapType_EDIT":234,"StructType_EDIT":235,"ARRAY":236,"<":237,">":238,"AnyCursor":239,"GreaterThanOrError":240,"MAP":241,"STRUCT":242,"StructDefinitionList":243,"StructDefinitionList_EDIT":244,"StructDefinition":245,"StructDefinition_EDIT":246,"Commas":247,":":248,"ColumnDataTypeList":249,"ColumnDataTypeList_EDIT":250,"ColumnDataTypeListInner_EDIT":251,"ParenthesizedColumnList":252,"PRIMARY":253,"KEY":254,"PartitionedBy":255,"PARTITIONED":256,"BY":257,"HashClauses":258,"RangeClause":259,"ColumnIdentifierList":260,"HashClauses_EDIT":261,"RangeClause_EDIT":262,"HashClause":263,"HashClause_EDIT":264,"HASH":265,"ParenthesizedPartitionValuesList":266,"ParenthesizedPartitionValuesList_EDIT":267,"SortBy":268,"SORT":269,"PartitionValueList":270,"PartitionValueList_EDIT":271,"PartitionValue":272,"PartitionValue_EDIT":273,"ValueExpression":274,"LessThanOrEqualTo":275,"VALUES":276,"ValueExpression_EDIT":277,"COMPARISON_OPERATOR":278,"ParenthesizedSortList":279,"SortList":280,"ParenthesizedSortList_EDIT":281,"SortList_EDIT":282,"SortIdentifier":283,"SortIdentifier_EDIT":284,"OptionalAscOrDesc":285,"RowFormat":286,"StoredAs":287,"STORED":288,"AVRO":289,"KUDU":290,"ORC":291,"PARQUET":292,"RCFILE":293,"SEQUENCEFILE":294,"TEXTFILE":295,"DELIMITED":296,"OptionalFieldsTerminatedBy":297,"OptionalLinesTerminatedBy":298,"OptionalFieldsTerminatedBy_EDIT":299,"OptionalLinesTerminatedBy_EDIT":300,"FIELDS":301,"TERMINATED":302,"SingleQuotedValue":303,"ESCAPED":304,"LINES":305,"WithSerdeproperties":306,"WITH":307,"TblProperties":308,"CommitLocations":309,"OptionalParenthesizedViewColumnList":310,"ParenthesizedViewColumnList_EDIT":311,"GenericFunctionDefinition":312,"AggregateFunctionDefinition":313,"GenericFunctionDefinition_EDIT":314,"AggregateFunctionDefinition_EDIT":315,"FUNCTION":316,"ParenthesizedArgumentList":317,"ReturnType":318,"SymbolDefinition":319,"ParenthesizedArgumentList_EDIT":320,"ReturnType_EDIT":321,"AGGREGATE":322,"OptionalInitFn":323,"UpdateFn":324,"MergeFn":325,"OptionalPrepareFn":326,"OptionalCloseFn":327,"OptionalSerializeFn":328,"OptionalFinalizeFn":329,"OptionalIntermediate":330,"OptionalInitFn_EDIT":331,"UpdateFn_EDIT":332,"MergeFn_EDIT":333,"OptionalPrepareFn_EDIT":334,"OptionalCloseFn_EDIT":335,"OptionalSerializeFn_EDIT":336,"OptionalFinalizeFn_EDIT":337,"Intermediate_EDIT":338,"ArgumentList":339,"OptionalVariableArguments":340,"ArgumentList_EDIT":341,"...":342,"RETURNS":343,"SYMBOL":344,"INIT_FN":345,"FunctionReference":346,"FunctionReference_EDIT":347,"UPDATE_FN":348,"MERGE_FN":349,"PREPARE_FN":350,"CLOSE_FN":351,"SERIALIZE_FN":352,"FINALIZE_FN":353,"INTERMEDIATE":354,"SingleQuotedValue_EDIT":355,"ParenthesizedViewColumnList":356,"ViewColumnList":357,"ViewColumnList_EDIT":358,"ColumnReference":359,"ROLE":360,"LIFECYCLE":361,"UNSIGNED_INTEGER":362,"DataManipulation":363,"DeleteStatement":364,"InsertStatement":365,"LoadStatement":366,"UpdateStatement":367,"DataManipulation_EDIT":368,"DeleteStatement_EDIT":369,"InsertOrUpsertStatement_EDIT":370,"CommonTableExpression":371,"CommonTableExpression_EDIT":372,"InsertOrUpsertStatement":373,"LoadStatement_EDIT":374,"UpdateStatement_EDIT":375,"DropDatabaseStatement":376,"DropFunctionStatement":377,"DropRoleStatement":378,"DropStatsStatement":379,"DropTableStatement":380,"DropViewStatement":381,"TruncateTableStatement":382,"DropDatabaseStatement_EDIT":383,"DropFunctionStatement_EDIT":384,"DropStatsStatement_EDIT":385,"DropTableStatement_EDIT":386,"DropViewStatement_EDIT":387,"TruncateTableStatement_EDIT":388,"OptionalCascadeOrRestrict":389,"OptionalPurge":390,"PURGE":391,"TRUNCATE":392,"DELETE":393,"OptionalDeleteTableRef":394,"FROM":395,"TableReference":396,"OptionalWhereClause":397,"DeleteTableRef_EDIT":398,"TableReference_EDIT":399,"WhereClause_EDIT":400,"TransactionIdList":401,"GRANT":402,"GROUP":403,"PrivilegeType":404,"ObjectSpecification":405,"OptionalWithGrantOption":406,"GroupRoleOrUser":407,"PrivilegeType_EDIT":408,"ObjectSpecification_EDIT":409,"WithGrantOption_EDIT":410,"SERVER":411,"URI":412,"ALL":413,"INSERT":414,"SELECT":415,"UserOrRoleList":416,"OPTION":417,"REVOKE":418,"OptionalTable":419,"SelectWithoutTableExpression":420,"OptionalAllOrDistinct":421,"OptionalStraightJoin":422,"SelectList":423,"SelectWithoutTableExpression_EDIT":424,"SelectList_EDIT":425,"InsertOrUpsertStatementWithoutCTE":426,"InsertOrUpsertStatementWithoutCTE_EDIT":427,"InsertOrUpsertLeftPart":428,"OptionalShuffleOrNoShuffle":429,"SelectStatement":430,"OptionalUnions":431,"RowValuesLists":432,"InsertOrUpsertLeftPart_EDIT":433,"SelectStatement_EDIT":434,"OptionalUnions_EDIT":435,"RowValuesLists_EDIT":436,"UpsertStatementLeftPart":437,"InsertLeftPart":438,"UpsertStatementLeftPart_EDIT":439,"InsertLeftPart_EDIT":440,"UPSERT":441,"INTO":442,"OptionalParenthesizedColumnList_EDIT":443,"IntoOrOverwrite":444,"OVERWRITE":445,"SHUFFLE":446,"NOSHUFFLE":447,"ParenthesizedValueExpressionList":448,"ParenthesizedValueExpressionList_EDIT":449,"ValueExpressionList":450,"ValueExpressionList_EDIT":451,"LOAD":452,"DATA":453,"INPATH":454,"OptionalOverwrite":455,"SqlSyntax":456,"NewStatement":457,"SqlStatements":458,"EOF":459,"SqlAutocomplete":460,"SqlStatements_EDIT":461,"SqlStatement":462,";":463,"SqlStatement_EDIT":464,"ExplainClause":465,"ExplainClause_EDIT":466,"SetSpecification_EDIT":467,"NonReservedKeyword":468,"REGULAR_IDENTIFIER":469,"VARIABLE_REFERENCE":470,"EXPLAIN":471,"NonStartingToken":472,"!":473,"*":474,"-":475,"[":476,"]":477,"ALLOCATE":478,"ANALYTIC":479,"AND":480,"ANTI":481,"ANY":482,"APPX_MEDIAN":483,"ARE":484,"ARITHMETIC_OPERATOR":485,"ARRAY_AGG":486,"ARRAY_MAX_CARDINALITY":487,"ASC":488,"ASENSITIVE":489,"ASYMMETRIC":490,"AT":491,"ATOMIC":492,"AVG":493,"BACKTICK":494,"BEGIN_FRAME":495,"BEGIN_PARTITION":496,"BETWEEN":497,"BIGINT":498,"BLOB":499,"BOOLEAN":500,"BOTH":501,"BROADCAST":502,"CACHED":503,"CALLED":504,"CARDINALITY":505,"CASCADE":506,"CASCADED":507,"CASE":508,"CAST":509,"CHAR":510,"CHARACTER":511,"CLOB":512,"COLLATE":513,"COLLECT":514,"COMMIT":515,"CONDITION":516,"CONNECT":517,"CONSTRAINT":518,"CONTAINS":519,"CONVERT":520,"COPY":521,"CORR":522,"CORRESPONDING":523,"COUNT":524,"COVAR_POP":525,"COVAR_SAMP":526,"CROSS":527,"CUBE":528,"CURRENT":529,"CURRENT_DATE":530,"CURRENT_DEFAULT_TRANSFORM_GROUP":531,"CURRENT_PATH":532,"CURRENT_ROLE":533,"CURRENT_ROW":534,"CURRENT_SCHEMA":535,"CURRENT_TIME":536,"CURRENT_TRANSFORM_GROUP_FOR_TYPE":537,"CYCLE":538,"DATABASES":539,"DEALLOCATE":540,"DEC":541,"DECFLOAT":542,"DECIMAL":543,"DECLARE":544,"DEFINE":545,"DEREF":546,"DESC":547,"DETERMINISTIC":548,"DISCONNECT":549,"DISTINCT":550,"DOUBLE":551,"DYNAMIC":552,"EACH":553,"ELEMENT":554,"ELSE":555,"EMPTY":556,"END":557,"END_FRAME":558,"END_PARTITION":559,"EQUALS":560,"ESCAPE":561,"EVERY":562,"EXCEPT":563,"EXEC":564,"EXECUTE":565,"EXISTS":566,"EXTENDED":567,"EXTERNAL":568,"EXTRACT":569,"FALSE":570,"FETCH":571,"FILES":572,"FILTER":573,"FIRST":574,"FLOAT":575,"FOLLOWING":576,"FOR":577,"FOREIGN":578,"FORMATTED":579,"FRAME_ROW":580,"FREE":581,"FULL":582,"FUSION":583,"GET":584,"GLOBAL":585,"GROUP_CONCAT":586,"GROUPING":587,"GROUPS":588,"HAVING":589,"HDFS_START_QUOTE":590,"HOLD":591,"IF":592,"IGNORE":593,"ILIKE":594,"IN":595,"INDICATOR":596,"INITIAL":597,"INNER":598,"INOUT":599,"INSENSITIVE":600,"INT":601,"INTERSECT":602,"INTERSECTION":603,"INTERVAL":604,"IREGEXP":605,"JOIN":606,"JSON_ARRAY":607,"JSON_ARRAYAGG":608,"JSON_EXISTS":609,"JSON_OBJECT":610,"JSON_OBJECTAGG":611,"JSON_QUERY":612,"JSON_TABLE":613,"JSON_TABLE_PRIMITIVE":614,"JSON_VALUE":615,"LARGE":616,"LAST":617,"LATERAL":618,"LEADING":619,"LEFT":620,"LIKE_REGEX":621,"LIMIT":622,"LISTAGG":623,"LOCAL":624,"LOCALTIMESTAMP":625,"LOCATION":626,"MATCH":627,"MATCH_NUMBER":628,"MATCH_RECOGNIZE":629,"MATCHES":630,"MAX":631,"MERGE":632,"METHOD":633,"MIN":634,"MODIFIES":635,"MULTISET":636,"NATIONAL":637,"NATURAL":638,"NCHAR":639,"NCLOB":640,"NDV":641,"NO":642,"NONE":643,"NORMALIZE":644,"NTH_VALUE":645,"NULLS":646,"NUMERIC":647,"OCCURRENCES_REGEX":648,"OCTET_LENGTH":649,"OF":650,"OMIT":651,"ONE":652,"ONLY":653,"OR":654,"ORDER":655,"OUT":656,"OUTER":657,"OVER":658,"OVERLAPS":659,"OVERLAY":660,"PATTERN":661,"PER":662,"PERCENT":663,"PERCENTILE_CONT":664,"PERCENTILE_DISC":665,"PORTION":666,"POSITION":667,"POSITION_REGEX":668,"PRECEDES":669,"PRECEDING":670,"PREPARE":671,"PROCEDURE":672,"PTF":673,"READS":674,"REAL":675,"RECURSIVE":676,"REF":677,"REFERENCES":678,"REFERENCING":679,"REGEXP":680,"REGR_AVGX":681,"REGR_AVGY":682,"REGR_COUNT":683,"REGR_INTERCEPT":684,"REGR_R2REGR_SLOPE":685,"REGR_SXX":686,"REGR_SXY":687,"REGR_SYY":688,"RELEASE":689,"REPEATABLE":690,"REPLICATION":691,"RESTRICT":692,"RIGHT":693,"RLIKE":694,"ROLES":695,"ROLLBACK":696,"ROLLUP":697,"ROWS":698,"RUNNING":699,"SAVEPOINT":700,"SCHEMA":701,"SCHEMAS":702,"SCOPE":703,"SCROLL":704,"SEARCH":705,"SEEK":706,"SEMI":707,"SENSITIVE":708,"SIMILAR":709,"SKIP":710,"SMALLINT":711,"SOME":712,"SPECIFIC":713,"SPECIFICTYPE":714,"SQLEXCEPTION":715,"SQLSTATE":716,"SQLWARNING":717,"STATIC":718,"STDDEV":719,"STDDEV_POP":720,"STDDEV_SAMP":721,"STRAIGHT_JOIN":722,"STRING":723,"SUBMULTISET":724,"SUBSET":725,"SUBSTRING_REGEX":726,"SUCCEEDS":727,"SUM":728,"SYMMETRIC":729,"SYSTEM_TIME":730,"SYSTEM_USER":731,"TABLES":732,"TABLESAMPLE":733,"THEN":734,"TIMESTAMP":735,"TIMEZONE_HOUR":736,"TIMEZONE_MINUTE":737,"TINYINT":738,"TRAILING":739,"TRANSLATE_REGEX":740,"TRANSLATION":741,"TREAT":742,"TRIGGER":743,"TRIM_ARRAY":744,"TRUE":745,"UESCAPE":746,"UNION":747,"UNIQUE":748,"UNNEST":749,"UNSIGNED_INTEGER_E":750,"USER":751,"USING":752,"VALUE_OF":753,"VAR_POP":754,"VAR_SAMP":755,"VARBINARY":756,"VARCHAR":757,"VARIANCE":758,"VARIANCE_POP":759,"VARIANCE_SAMP":760,"VARYING":761,"VERSIONING":762,"WHEN":763,"WHENEVER":764,"WHERE":765,"WIDTH_BUCKET":766,"WINDOW":767,"WITHIN":768,"WITHOUT":769,"~":770,"AggregateOrAnalytic":771,"PARTIAL_CURSOR":772,"FromOrIn":773,"DatabasesOrSchemas":774,"PARTIAL_VALUE":775,"DoubleQuotedValue":776,"DoubleQuotedValue_EDIT":777,"QuotedValue_EDIT":778,"OptionalAggregateOrAnalytic":779,"OptionalExtendedOrFormatted":780,"OptionalFromDatabase":781,"OptionalFromDatabase_EDIT":782,"DatabaseIdentifier_EDIT":783,"OptionalInDatabase":784,"RangePartitionComparisonOperator":785,"ConfigurationName":786,"PartialBacktickedOrAnyCursor":787,"PartialBacktickedIdentifier":788,"PartialBacktickedOrCursor":789,"PartialBacktickedOrPartialCursor":790,"ColumnList":791,"ColumnList_EDIT":792,"ParenthesizedSimpleValueList":793,"SimpleValueList":794,"FieldsList":795,"FieldsList_EDIT":796,"Field":797,"Field_EDIT":798,"PartitionExpression":799,"PartitionExpression_EDIT":800,"WithReplication":801,"SignedInteger":802,"RegularOrBackTickedSchemaQualifiedName_EDIT":803,"LocalOrSchemaQualifiedName":804,"LocalOrSchemaQualifiedName_EDIT":805,"BasicIdentifierChain":806,"ColumnReference_EDIT":807,"BasicIdentifierChain_EDIT":808,"DerivedColumnChain":809,"DerivedColumnChain_EDIT":810,"PartialBacktickedIdentifierOrPartialCursor":811,"RightSquareBracketOrError":812,"OptionalTypePrecision":813,"OptionalTypeLength":814,"DESCRIBE":815,"TableExpression":816,"Unions":817,"Unions_EDIT":818,"UnionClause":819,"UnionClause_EDIT":820,"TableExpression_EDIT":821,"WithQueries":822,"WithQueries_EDIT":823,"WithQuery":824,"WithQuery_EDIT":825,"TableSubQueryInner":826,"TableSubQueryInner_EDIT":827,"FromClause":828,"OptionalSelectConditions":829,"FromClause_EDIT":830,"OptionalJoins":831,"OptionalSelectConditions_EDIT":832,"Joins":833,"Joins_INVALID":834,"TableReferenceList":835,"TableReferenceList_EDIT":836,"OptionalGroupByClause":837,"OptionalHavingClause":838,"OptionalOrderByClause":839,"OptionalLimitClause":840,"OptionalOffsetClause":841,"GroupByClause_EDIT":842,"HavingClause_EDIT":843,"OrderByClause_EDIT":844,"LimitClause_EDIT":845,"OffsetClause_EDIT":846,"WhereClause":847,"GroupByClause":848,"HavingClause":849,"OrderByClause":850,"LimitClause":851,"SearchCondition":852,"SearchCondition_EDIT":853,"GroupByColumnList":854,"GroupByColumnList_EDIT":855,"ColumnGroupingSets":856,"ColumnGroupingSets_EDIT":857,"ColumnGroupingSet_EDIT":858,"GroupByColumnListPartTwo_EDIT":859,"OrderByColumnList":860,"OrderByColumnList_EDIT":861,"OrderByIdentifier":862,"OrderByIdentifier_EDIT":863,"OptionalNullsFirstOrLast":864,"NullsFirstOrLast_EDIT":865,"SortByList":866,"SortByIdentifier":867,"SortByList_EDIT":868,"SortByIdentifier_EDIT":869,"OffsetClause":870,"OFFSET":871,"OptionalNot":872,"UNKNOWN":873,"TableSubQuery":874,"LikeRightPart":875,"CaseRightPart":876,"NonParenthesizedValueExpressionPrimary_EDIT":877,"TableSubQuery_EDIT":878,"ValueExpressionInSecondPart_EDIT":879,"LikeRightPart_EDIT":880,"CaseRightPart_EDIT":881,"EndOrError":882,"InValueList":883,"ColumnOrArbitraryFunctionRef":884,"ArbitraryFunctionRightPart":885,"ArbitraryFunctionName":886,"UserDefinedFunction":887,"IntervalSpecification":888,"UnsignedValueSpecification_EDIT":889,"ColumnOrArbitraryFunctionRef_EDIT":890,"ArbitraryFunctionRightPart_EDIT":891,"UserDefinedFunction_EDIT":892,"IntervalSpecification_EDIT":893,"+":894,"UnsignedLiteral":895,"UnsignedLiteral_EDIT":896,"GeneralLiteral":897,"GeneralLiteral_EDIT":898,"ExactNumericLiteral":899,"ApproximateNumericLiteral":900,"TruthValue":901,"SelectSpecification":902,"OptionalCorrelationName":903,"SelectSpecification_EDIT":904,"OptionalCorrelationName_EDIT":905,"TablePrimaryOrJoinedTable":906,"TablePrimaryOrJoinedTable_EDIT":907,"TablePrimary":908,"JoinedTable":909,"TablePrimary_EDIT":910,"JoinedTable_EDIT":911,"Joins_EDIT":912,"JoinType":913,"OptionalBroadcastOrShuffle":914,"OptionalJoinCondition":915,"Join_EDIT":916,"JoinType_EDIT":917,"JoinCondition_EDIT":918,"UsingColList":919,"TableOrQueryName":920,"DerivedTable":921,"TableOrQueryName_EDIT":922,"DerivedTable_EDIT":923,"SYSTEM":924,"OptionalOnColumn":925,"OptionalOnColumn_EDIT":926,"PushQueryState":927,"PopQueryState":928,"SubQuery":929,"SubQuery_EDIT":930,"QueryExpression":931,"QueryExpression_EDIT":932,"QueryExpressionBody":933,"QueryExpressionBody_EDIT":934,"NonJoinQueryExpression":935,"NonJoinQueryExpression_EDIT":936,"NonJoinQueryTerm":937,"NonJoinQueryTerm_EDIT":938,"NonJoinQueryPrimary":939,"NonJoinQueryPrimary_EDIT":940,"SimpleTable":941,"SimpleTable_EDIT":942,"AggregateFunction":943,"OptionalOverClause":944,"AnalyticFunction":945,"OverClause":946,"CastFunction":947,"ExtractFunction":948,"AggregateFunction_EDIT":949,"OptionalOverClause_EDIT":950,"AnalyticFunction_EDIT":951,"OverClause_EDIT":952,"CastFunction_EDIT":953,"ExtractFunction_EDIT":954,"ArbitraryFunction":955,"ArbitraryFunction_EDIT":956,"LEFT_F":957,"CountFunction":958,"SumFunction":959,"OtherAggregateFunction":960,"CountFunction_EDIT":961,"SumFunction_EDIT":962,"OtherAggregateFunction_EDIT":963,"WindowExpression":964,"WindowExpression_EDIT":965,"OptionalPartitionBy":966,"OptionalOrderByAndWindow":967,"PartitionBy_EDIT":968,"OptionalOrderByAndWindow_EDIT":969,"PartitionBy":970,"OptionalWindowSpec":971,"WindowSpec_EDIT":972,"WindowSpec":973,"RowsOrRange":974,"OptionalCurrentOrPreceding":975,"OptionalAndFollowing":976,"UNBOUNDED":977,"OptionalCurrentOrPreceding_EDIT":978,"OptionalAndFollowing_EDIT":979,"PopLexerState":980,"PushHdfsLexerState":981,"HDFS_PATH":982,"HDFS_END_QUOTE":983,"IntegerOrUnbounded":984,"OtherAggregateFunction_Type":985,"FromOrComma":986,"OptionalOuter":987,"SetOption":988,"ShowColumnStatsStatement":989,"ShowCreateTableStatement":990,"ShowCurrentRolesStatement":991,"ShowDatabasesStatement":992,"ShowFilesStatement":993,"ShowFunctionsStatement":994,"ShowGrantStatement":995,"ShowPartitionsStatement":996,"ShowRoleStatement":997,"ShowRolesStatement":998,"ShowTableStatsStatement":999,"ShowTablesStatement":1000,"SHOW":1001,"ShowColumnStatsStatement_EDIT":1002,"ShowCreateTableStatement_EDIT":1003,"ShowCurrentRolesStatement_EDIT":1004,"ShowDatabasesStatement_EDIT":1005,"ShowFilesStatement_EDIT":1006,"ShowFunctionsStatement_EDIT":1007,"ShowGrantStatement_EDIT":1008,"ShowPartitionsStatement_EDIT":1009,"ShowRoleStatement_EDIT":1010,"ShowTableStatsStatement_EDIT":1011,"ShowTablesStatement_EDIT":1012,"TableOrView":1013,"OptionalPrincipalName":1014,"OptionalPrincipalName_EDIT":1015,"UPDATE":1016,"TargetTable":1017,"SetClauseList":1018,"OptionalFromJoinedTable":1019,"TargetTable_EDIT":1020,"SetClauseList_EDIT":1021,"FromJoinedTable_EDIT":1022,"TableName":1023,"TableName_EDIT":1024,"SetClause":1025,"SetClause_EDIT":1026,"SetTarget":1027,"UpdateSource":1028,"UpdateSource_EDIT":1029,"USE":1030,"CaseWhenThenList":1031,"CaseWhenThenList_EDIT":1032,"CaseWhenThenListPartTwo":1033,"CaseWhenThenListPartTwo_EDIT":1034,"$accept":0,"$end":1}, -terminals_: {2:"error",26:"SET",27:"CURSOR",38:"ALTER",41:"OWNER",44:"ADD",50:"RANGE",51:"PARTITION",53:"PARTITION_VALUE",54:"=",56:"RENAME",57:"TO",63:"DROP",64:"DEFAULT",65:"COLUMN",66:"STATS",70:"RECOVER",71:"PARTITIONS",73:"REPLACE",85:"BLOCK_SIZE",86:"COMMENT",87:"COMPRESSION",88:"ENCODING",89:"(",91:")",95:",",98:"FILEFORMAT",101:"TBLPROPERTIES",103:"SERDEPROPERTIES",106:"ROW",107:"FORMAT",109:"UNCACHED",111:"CHANGE",117:"COLUMNS",129:"TABLE",136:"AS",138:".",141:"VIEW",142:"ON",143:"DATABASE",144:"IS",146:"NULL",147:"REFRESH",149:"FUNCTIONS",151:"AUTHORIZATION",153:"INVALIDATE",154:"METADATA",155:"COMPUTE",158:"INCREMENTAL",170:"CREATE",179:"SINGLE_QUOTE",180:"DOUBLE_QUOTE",181:"VALUE",206:"LIKE_PARQUET",208:"LIKE",224:"NOT",236:"ARRAY",237:"<",238:">",241:"MAP",242:"STRUCT",248:":",253:"PRIMARY",254:"KEY",256:"PARTITIONED",257:"BY",265:"HASH",269:"SORT",276:"VALUES",278:"COMPARISON_OPERATOR",288:"STORED",289:"AVRO",290:"KUDU",291:"ORC",292:"PARQUET",293:"RCFILE",294:"SEQUENCEFILE",295:"TEXTFILE",296:"DELIMITED",301:"FIELDS",302:"TERMINATED",304:"ESCAPED",305:"LINES",307:"WITH",316:"FUNCTION",322:"AGGREGATE",342:"...",343:"RETURNS",344:"SYMBOL",345:"INIT_FN",348:"UPDATE_FN",349:"MERGE_FN",350:"PREPARE_FN",351:"CLOSE_FN",352:"SERIALIZE_FN",353:"FINALIZE_FN",354:"INTERMEDIATE",360:"ROLE",361:"LIFECYCLE",362:"UNSIGNED_INTEGER",391:"PURGE",392:"TRUNCATE",393:"DELETE",395:"FROM",402:"GRANT",403:"GROUP",411:"SERVER",412:"URI",413:"ALL",414:"INSERT",415:"SELECT",417:"OPTION",418:"REVOKE",441:"UPSERT",442:"INTO",445:"OVERWRITE",446:"SHUFFLE",447:"NOSHUFFLE",452:"LOAD",453:"DATA",454:"INPATH",459:"EOF",463:";",467:"SetSpecification_EDIT",469:"REGULAR_IDENTIFIER",470:"VARIABLE_REFERENCE",471:"EXPLAIN",473:"!",474:"*",475:"-",476:"[",477:"]",478:"ALLOCATE",479:"ANALYTIC",480:"AND",481:"ANTI",482:"ANY",483:"APPX_MEDIAN",484:"ARE",485:"ARITHMETIC_OPERATOR",486:"ARRAY_AGG",487:"ARRAY_MAX_CARDINALITY",488:"ASC",489:"ASENSITIVE",490:"ASYMMETRIC",491:"AT",492:"ATOMIC",493:"AVG",494:"BACKTICK",495:"BEGIN_FRAME",496:"BEGIN_PARTITION",497:"BETWEEN",498:"BIGINT",499:"BLOB",500:"BOOLEAN",501:"BOTH",502:"BROADCAST",503:"CACHED",504:"CALLED",505:"CARDINALITY",506:"CASCADE",507:"CASCADED",508:"CASE",509:"CAST",510:"CHAR",511:"CHARACTER",512:"CLOB",513:"COLLATE",514:"COLLECT",515:"COMMIT",516:"CONDITION",517:"CONNECT",518:"CONSTRAINT",519:"CONTAINS",520:"CONVERT",521:"COPY",522:"CORR",523:"CORRESPONDING",524:"COUNT",525:"COVAR_POP",526:"COVAR_SAMP",527:"CROSS",528:"CUBE",529:"CURRENT",530:"CURRENT_DATE",531:"CURRENT_DEFAULT_TRANSFORM_GROUP",532:"CURRENT_PATH",533:"CURRENT_ROLE",534:"CURRENT_ROW",535:"CURRENT_SCHEMA",536:"CURRENT_TIME",537:"CURRENT_TRANSFORM_GROUP_FOR_TYPE",538:"CYCLE",539:"DATABASES",540:"DEALLOCATE",541:"DEC",542:"DECFLOAT",543:"DECIMAL",544:"DECLARE",545:"DEFINE",546:"DEREF",547:"DESC",548:"DETERMINISTIC",549:"DISCONNECT",550:"DISTINCT",551:"DOUBLE",552:"DYNAMIC",553:"EACH",554:"ELEMENT",555:"ELSE",556:"EMPTY",557:"END",558:"END_FRAME",559:"END_PARTITION",560:"EQUALS",561:"ESCAPE",562:"EVERY",563:"EXCEPT",564:"EXEC",565:"EXECUTE",566:"EXISTS",567:"EXTENDED",568:"EXTERNAL",569:"EXTRACT",570:"FALSE",571:"FETCH",572:"FILES",573:"FILTER",574:"FIRST",575:"FLOAT",576:"FOLLOWING",577:"FOR",578:"FOREIGN",579:"FORMATTED",580:"FRAME_ROW",581:"FREE",582:"FULL",583:"FUSION",584:"GET",585:"GLOBAL",586:"GROUP_CONCAT",587:"GROUPING",588:"GROUPS",589:"HAVING",590:"HDFS_START_QUOTE",591:"HOLD",592:"IF",593:"IGNORE",594:"ILIKE",595:"IN",596:"INDICATOR",597:"INITIAL",598:"INNER",599:"INOUT",600:"INSENSITIVE",601:"INT",602:"INTERSECT",603:"INTERSECTION",604:"INTERVAL",605:"IREGEXP",606:"JOIN",607:"JSON_ARRAY",608:"JSON_ARRAYAGG",609:"JSON_EXISTS",610:"JSON_OBJECT",611:"JSON_OBJECTAGG",612:"JSON_QUERY",613:"JSON_TABLE",614:"JSON_TABLE_PRIMITIVE",615:"JSON_VALUE",616:"LARGE",617:"LAST",618:"LATERAL",619:"LEADING",620:"LEFT",621:"LIKE_REGEX",622:"LIMIT",623:"LISTAGG",624:"LOCAL",625:"LOCALTIMESTAMP",626:"LOCATION",627:"MATCH",628:"MATCH_NUMBER",629:"MATCH_RECOGNIZE",630:"MATCHES",631:"MAX",632:"MERGE",633:"METHOD",634:"MIN",635:"MODIFIES",636:"MULTISET",637:"NATIONAL",638:"NATURAL",639:"NCHAR",640:"NCLOB",641:"NDV",642:"NO",643:"NONE",644:"NORMALIZE",645:"NTH_VALUE",646:"NULLS",647:"NUMERIC",648:"OCCURRENCES_REGEX",649:"OCTET_LENGTH",650:"OF",651:"OMIT",652:"ONE",653:"ONLY",654:"OR",655:"ORDER",656:"OUT",657:"OUTER",658:"OVER",659:"OVERLAPS",660:"OVERLAY",661:"PATTERN",662:"PER",663:"PERCENT",664:"PERCENTILE_CONT",665:"PERCENTILE_DISC",666:"PORTION",667:"POSITION",668:"POSITION_REGEX",669:"PRECEDES",670:"PRECEDING",671:"PREPARE",672:"PROCEDURE",673:"PTF",674:"READS",675:"REAL",676:"RECURSIVE",677:"REF",678:"REFERENCES",679:"REFERENCING",680:"REGEXP",681:"REGR_AVGX",682:"REGR_AVGY",683:"REGR_COUNT",684:"REGR_INTERCEPT",685:"REGR_R2REGR_SLOPE",686:"REGR_SXX",687:"REGR_SXY",688:"REGR_SYY",689:"RELEASE",690:"REPEATABLE",691:"REPLICATION",692:"RESTRICT",693:"RIGHT",694:"RLIKE",695:"ROLES",696:"ROLLBACK",697:"ROLLUP",698:"ROWS",699:"RUNNING",700:"SAVEPOINT",701:"SCHEMA",702:"SCHEMAS",703:"SCOPE",704:"SCROLL",705:"SEARCH",706:"SEEK",707:"SEMI",708:"SENSITIVE",709:"SIMILAR",710:"SKIP",711:"SMALLINT",712:"SOME",713:"SPECIFIC",714:"SPECIFICTYPE",715:"SQLEXCEPTION",716:"SQLSTATE",717:"SQLWARNING",718:"STATIC",719:"STDDEV",720:"STDDEV_POP",721:"STDDEV_SAMP",722:"STRAIGHT_JOIN",723:"STRING",724:"SUBMULTISET",725:"SUBSET",726:"SUBSTRING_REGEX",727:"SUCCEEDS",728:"SUM",729:"SYMMETRIC",730:"SYSTEM_TIME",731:"SYSTEM_USER",732:"TABLES",733:"TABLESAMPLE",734:"THEN",735:"TIMESTAMP",736:"TIMEZONE_HOUR",737:"TIMEZONE_MINUTE",738:"TINYINT",739:"TRAILING",740:"TRANSLATE_REGEX",741:"TRANSLATION",742:"TREAT",743:"TRIGGER",744:"TRIM_ARRAY",745:"TRUE",746:"UESCAPE",747:"UNION",748:"UNIQUE",749:"UNNEST",750:"UNSIGNED_INTEGER_E",751:"USER",752:"USING",753:"VALUE_OF",754:"VAR_POP",755:"VAR_SAMP",756:"VARBINARY",757:"VARCHAR",758:"VARIANCE",759:"VARIANCE_POP",760:"VARIANCE_SAMP",761:"VARYING",762:"VERSIONING",763:"WHEN",764:"WHENEVER",765:"WHERE",766:"WIDTH_BUCKET",767:"WINDOW",768:"WITHIN",769:"WITHOUT",770:"~",772:"PARTIAL_CURSOR",775:"PARTIAL_VALUE",815:"DESCRIBE",871:"OFFSET",873:"UNKNOWN",894:"+",924:"SYSTEM",957:"LEFT_F",977:"UNBOUNDED",982:"HDFS_PATH",983:"HDFS_END_QUOTE",1001:"SHOW",1016:"UPDATE",1030:"USE"}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,2],[16,1],[16,1],[4,1],[4,1],[4,1],[4,1],[17,1],[17,1],[17,1],[17,1],[17,2],[30,7],[34,3],[34,4],[34,5],[34,6],[31,7],[31,6],[31,7],[31,4],[31,7],[31,6],[31,6],[31,5],[31,2],[31,2],[31,3],[31,3],[35,1],[35,7],[35,4],[35,7],[35,6],[35,6],[35,5],[35,2],[35,2],[35,3],[35,4],[35,3],[35,3],[35,7],[35,7],[35,7],[35,8],[35,7],[35,5],[35,6],[35,6],[35,6],[35,4],[35,5],[35,6],[35,6],[35,7],[35,4],[35,5],[35,6],[35,6],[35,4],[35,5],[35,2],[35,2],[35,2],[35,3],[35,4],[35,4],[35,3],[35,3],[35,3],[35,4],[35,3],[61,1],[61,1],[61,1],[61,1],[61,1],[59,0],[59,1],[67,3],[81,3],[90,1],[90,3],[92,1],[92,3],[92,5],[92,3],[94,3],[96,1],[69,3],[69,2],[69,3],[69,3],[69,3],[69,4],[69,2],[69,1],[69,3],[82,1],[82,2],[82,3],[82,4],[82,3],[82,2],[82,2],[82,4],[82,3],[82,3],[82,4],[82,5],[82,4],[110,3],[113,3],[113,4],[120,4],[120,4],[123,4],[123,4],[121,3],[121,5],[124,3],[124,5],[68,3],[68,3],[68,5],[68,6],[68,3],[83,3],[83,3],[83,4],[83,2],[83,4],[83,5],[83,5],[83,5],[83,2],[83,3],[83,3],[43,3],[72,3],[72,3],[84,1],[84,1],[48,0],[48,1],[132,1],[132,2],[76,1],[76,2],[76,2],[76,3],[134,2],[134,2],[133,2],[32,5],[32,3],[32,4],[32,6],[36,1],[36,2],[36,3],[36,4],[36,5],[36,3],[36,3],[36,3],[36,4],[135,3],[139,3],[139,3],[33,6],[37,2],[37,3],[37,4],[37,5],[37,6],[145,1],[145,1],[5,3],[5,3],[5,2],[18,2],[18,3],[18,4],[18,3],[18,3],[6,2],[6,3],[19,2],[19,3],[19,3],[19,3],[7,5],[7,5],[20,2],[20,3],[20,3],[20,4],[20,6],[20,5],[20,5],[20,5],[20,3],[20,5],[20,4],[20,5],[20,6],[20,5],[8,1],[8,1],[8,1],[8,1],[8,1],[21,1],[21,1],[21,1],[21,1],[21,3],[161,3],[161,5],[166,4],[166,3],[166,5],[166,4],[166,6],[173,2],[175,2],[175,2],[174,0],[174,1],[177,2],[176,1],[178,2],[178,2],[178,3],[178,3],[102,3],[182,1],[182,3],[183,3],[162,6],[167,5],[167,5],[167,4],[184,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,12],[186,11],[186,11],[187,2],[195,2],[195,2],[203,0],[203,1],[203,2],[203,2],[204,1],[204,2],[204,2],[204,2],[118,3],[118,5],[119,3],[119,5],[119,5],[210,1],[210,3],[212,1],[212,3],[212,3],[212,5],[212,2],[212,4],[212,4],[212,6],[112,3],[114,3],[114,3],[114,3],[215,0],[215,1],[218,1],[218,2],[217,1],[217,2],[217,2],[217,3],[219,1],[219,2],[219,2],[219,2],[219,2],[219,2],[219,1],[219,1],[220,1],[220,2],[214,1],[214,1],[214,1],[214,1],[214,1],[214,1],[214,1],[216,1],[216,1],[216,1],[227,4],[230,3],[233,4],[233,4],[228,6],[231,3],[234,6],[234,4],[234,6],[234,5],[229,4],[232,3],[235,4],[243,1],[243,3],[244,1],[244,2],[244,3],[244,3],[244,5],[245,4],[246,5],[246,4],[246,4],[246,4],[246,3],[246,3],[249,1],[249,3],[250,1],[250,2],[250,3],[250,3],[250,5],[251,2],[251,2],[251,1],[251,1],[240,1],[240,1],[211,2],[213,1],[213,2],[213,2],[221,2],[225,2],[188,0],[188,1],[255,3],[255,3],[255,5],[255,3],[255,5],[260,3],[260,1],[196,2],[196,3],[196,3],[196,2],[196,2],[196,3],[196,3],[196,3],[196,5],[196,5],[196,5],[258,1],[258,3],[261,1],[261,3],[261,5],[263,4],[264,3],[264,2],[264,4],[264,4],[259,3],[262,2],[262,2],[262,3],[262,3],[262,3],[189,0],[189,1],[268,3],[197,2],[197,3],[266,3],[267,3],[267,3],[270,1],[270,3],[271,1],[271,3],[271,5],[271,3],[271,5],[272,6],[272,4],[272,4],[272,3],[273,2],[273,2],[273,3],[273,2],[273,3],[273,4],[273,4],[273,5],[273,6],[273,6],[273,3],[273,4],[273,4],[275,1],[275,1],[279,3],[281,3],[280,1],[280,3],[282,1],[282,3],[282,3],[282,5],[283,2],[284,3],[284,2],[284,2],[190,0],[190,1],[286,3],[198,2],[198,3],[198,3],[192,0],[192,1],[287,3],[200,2],[200,3],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[108,3],[116,3],[116,3],[297,0],[297,4],[297,7],[299,2],[299,3],[299,6],[298,0],[298,4],[300,2],[300,3],[191,0],[191,1],[306,3],[199,2],[199,3],[193,0],[193,1],[308,2],[194,0],[194,3],[201,3],[201,3],[309,0],[163,8],[168,4],[168,9],[168,3],[168,6],[168,7],[168,8],[168,8],[168,8],[165,1],[165,1],[169,1],[169,1],[312,8],[314,4],[314,9],[314,6],[314,7],[314,8],[314,3],[314,5],[314,6],[314,7],[314,8],[314,8],[314,8],[314,8],[313,16],[315,3],[315,17],[315,5],[315,4],[315,16],[315,6],[315,16],[315,7],[315,8],[315,10],[315,11],[315,17],[315,7],[315,9],[315,9],[315,10],[315,10],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[315,16],[317,2],[317,4],[320,3],[320,4],[339,1],[339,3],[341,1],[341,3],[341,3],[341,5],[340,0],[340,1],[318,2],[321,2],[319,3],[323,0],[323,3],[331,3],[324,3],[332,3],[325,3],[333,3],[326,0],[326,3],[334,3],[327,0],[327,3],[335,3],[328,0],[328,3],[336,3],[329,0],[329,3],[337,3],[330,0],[330,2],[338,2],[346,1],[347,1],[310,0],[310,1],[356,3],[311,3],[357,2],[357,4],[358,3],[358,5],[358,5],[358,7],[164,3],[185,0],[185,2],[363,1],[363,1],[363,1],[363,1],[368,1],[368,1],[368,2],[368,2],[368,1],[368,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,2],[376,5],[383,3],[383,3],[383,4],[383,5],[383,5],[383,6],[377,5],[377,6],[384,4],[384,5],[384,6],[384,3],[384,6],[384,5],[384,3],[384,7],[384,4],[384,6],[384,5],[384,6],[378,3],[379,3],[379,5],[385,3],[385,3],[385,4],[385,5],[385,3],[385,4],[385,4],[385,5],[385,5],[385,5],[380,5],[386,3],[386,4],[386,5],[386,5],[386,6],[390,0],[390,1],[381,4],[387,4],[387,5],[387,3],[387,4],[387,4],[382,4],[388,2],[388,4],[388,3],[388,4],[388,5],[388,5],[388,4],[364,5],[369,3],[369,2],[369,4],[369,6],[369,3],[369,5],[369,5],[369,5],[394,0],[394,1],[398,1],[401,1],[401,3],[10,6],[10,7],[10,8],[23,2],[23,4],[23,5],[23,2],[23,3],[23,4],[23,4],[23,5],[23,6],[23,8],[23,7],[23,9],[23,8],[405,2],[405,2],[405,2],[405,2],[409,2],[409,2],[409,2],[404,1],[404,1],[404,1],[404,1],[404,1],[404,1],[404,2],[408,2],[416,1],[416,3],[406,0],[406,3],[410,2],[410,3],[11,6],[11,6],[11,7],[24,2],[24,4],[24,5],[24,2],[24,3],[24,4],[24,4],[24,5],[24,6],[365,1],[365,2],[419,0],[419,1],[420,4],[424,5],[424,4],[424,4],[373,1],[370,1],[426,4],[426,3],[427,1],[427,3],[427,4],[427,4],[427,4],[427,3],[427,3],[428,1],[428,1],[433,1],[433,1],[437,5],[439,2],[439,4],[439,6],[439,5],[439,5],[438,6],[440,2],[440,4],[440,7],[440,6],[440,6],[440,6],[444,1],[444,1],[429,0],[429,1],[429,1],[432,1],[432,3],[436,1],[436,3],[436,5],[436,3],[448,3],[449,3],[449,3],[366,9],[374,2],[374,3],[374,5],[374,6],[374,7],[374,8],[374,9],[374,10],[374,9],[374,9],[455,0],[455,1],[456,3],[460,3],[460,3],[457,0],[458,0],[458,1],[458,4],[461,1],[461,4],[461,4],[461,7],[462,1],[462,1],[462,1],[462,2],[462,2],[462,2],[464,1],[464,2],[464,1],[464,1],[464,1],[464,1],[464,1],[464,2],[464,2],[464,2],[464,2],[464,2],[464,2],[468,1],[468,1],[468,1],[468,1],[468,1],[468,1],[468,1],[172,1],[172,1],[172,1],[465,1],[466,2],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[472,1],[771,1],[771,1],[247,1],[247,2],[239,1],[239,1],[39,1],[39,1],[773,1],[773,1],[774,1],[774,1],[407,1],[407,1],[407,1],[42,1],[42,1],[303,3],[303,2],[355,2],[776,3],[776,2],[777,2],[97,1],[97,1],[778,1],[778,1],[779,0],[779,1],[171,0],[171,1],[780,0],[780,1],[780,1],[781,0],[781,2],[782,2],[389,0],[389,1],[389,1],[126,0],[126,2],[127,2],[45,0],[45,3],[74,2],[74,3],[784,0],[784,2],[784,2],[148,0],[148,1],[152,1],[46,4],[78,4],[52,5],[80,2],[80,3],[80,4],[80,5],[80,5],[80,5],[785,1],[785,1],[785,1],[785,1],[786,1],[786,1],[787,1],[787,1],[789,1],[789,1],[790,1],[790,1],[788,2],[93,1],[93,1],[156,0],[156,1],[443,1],[252,3],[159,3],[159,3],[791,1],[791,3],[792,1],[792,3],[792,3],[792,3],[792,5],[792,5],[793,3],[794,1],[794,3],[130,1],[130,3],[130,4],[131,1],[131,3],[131,3],[131,4],[795,1],[795,2],[796,1],[796,2],[796,3],[796,2],[797,2],[798,2],[202,1],[202,3],[205,1],[205,3],[205,3],[150,1],[783,1],[122,1],[122,3],[125,1],[125,3],[125,3],[125,5],[799,3],[800,3],[800,3],[800,3],[800,1],[47,0],[47,1],[100,2],[75,2],[49,0],[49,2],[49,1],[79,0],[79,2],[104,3],[77,2],[105,0],[105,1],[801,4],[115,2],[115,3],[40,1],[40,3],[40,2],[58,1],[58,3],[803,1],[803,3],[804,1],[804,2],[805,1],[805,2],[359,1],[359,3],[807,1],[806,1],[806,3],[808,1],[808,3],[808,5],[808,3],[808,3],[808,5],[809,1],[809,3],[810,1],[810,3],[810,5],[810,3],[810,1],[810,3],[810,5],[810,3],[60,1],[60,4],[60,3],[128,4],[128,4],[811,1],[811,1],[812,1],[812,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,2],[226,2],[226,2],[226,1],[814,0],[814,3],[813,0],[813,3],[813,5],[12,3],[12,4],[25,3],[25,3],[25,4],[25,4],[25,5],[137,2],[137,3],[137,5],[140,2],[140,2],[140,4],[140,3],[140,3],[140,1],[140,4],[140,3],[430,4],[430,5],[431,0],[431,1],[435,1],[817,1],[817,2],[818,1],[818,2],[818,2],[818,3],[819,4],[820,3],[820,4],[820,4],[434,4],[434,4],[434,5],[434,5],[434,5],[434,6],[434,7],[434,5],[422,0],[422,1],[371,2],[372,2],[822,1],[822,3],[823,1],[823,3],[823,3],[823,5],[824,5],[825,2],[825,5],[825,5],[421,0],[421,1],[421,1],[816,2],[821,2],[821,4],[821,3],[831,0],[831,1],[831,1],[828,2],[830,2],[830,2],[829,6],[832,6],[832,6],[832,6],[832,6],[832,6],[832,6],[832,7],[832,7],[832,7],[832,7],[832,7],[397,0],[397,1],[847,2],[400,2],[400,2],[837,0],[837,1],[848,3],[842,3],[842,3],[842,2],[856,0],[856,1],[856,3],[856,3],[857,1],[857,3],[857,3],[857,5],[857,3],[858,1],[858,1],[854,1],[854,3],[855,1],[855,2],[855,3],[855,3],[855,3],[855,4],[855,5],[859,1],[859,2],[859,1],[839,0],[839,1],[850,3],[844,3],[844,2],[860,1],[860,3],[861,1],[861,2],[861,3],[861,4],[861,5],[862,3],[863,3],[863,3],[863,3],[285,0],[285,1],[285,1],[864,0],[864,2],[864,2],[865,2],[866,1],[866,3],[868,1],[868,3],[868,3],[868,5],[867,2],[869,2],[869,2],[840,0],[840,1],[851,2],[845,2],[845,2],[841,0],[841,1],[870,2],[846,2],[846,2],[852,1],[853,1],[274,1],[274,2],[274,2],[274,2],[274,2],[274,4],[274,4],[274,4],[274,4],[274,6],[274,2],[274,3],[274,3],[274,3],[274,3],[274,3],[274,6],[274,6],[274,5],[274,5],[274,4],[274,3],[274,3],[274,3],[274,3],[274,3],[274,3],[274,2],[274,3],[274,2],[274,3],[277,1],[277,3],[277,2],[277,2],[277,2],[277,2],[277,2],[277,2],[277,2],[277,2],[277,3],[277,4],[277,5],[277,4],[277,4],[277,4],[277,6],[277,6],[277,2],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,4],[277,3],[277,6],[277,6],[277,5],[277,5],[277,4],[277,4],[277,5],[277,4],[277,3],[277,3],[277,4],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,3],[277,2],[277,3],[277,2],[277,3],[277,2],[277,3],[277,2],[277,3],[277,3],[277,4],[277,3],[277,3],[277,3],[450,1],[450,3],[451,1],[451,3],[451,3],[451,5],[451,3],[451,5],[451,4],[451,3],[451,2],[451,2],[451,4],[883,1],[883,3],[222,1],[222,1],[222,2],[222,2],[222,1],[222,1],[222,1],[877,1],[877,1],[877,2],[877,2],[877,1],[877,1],[884,1],[884,3],[890,1],[888,3],[893,3],[802,1],[802,2],[802,2],[55,1],[889,1],[895,1],[895,1],[896,1],[223,1],[223,1],[899,1],[899,2],[899,3],[899,2],[900,2],[900,3],[900,4],[897,1],[897,1],[897,1],[898,1],[898,1],[901,1],[901,1],[872,0],[872,1],[902,2],[902,1],[904,2],[904,3],[904,2],[423,1],[423,3],[425,1],[425,2],[425,3],[425,3],[425,3],[425,4],[425,3],[425,3],[425,4],[425,4],[425,4],[425,5],[425,5],[835,1],[835,3],[836,1],[836,3],[836,3],[836,5],[836,3],[396,1],[399,1],[906,1],[906,1],[907,1],[907,1],[909,2],[911,2],[911,2],[833,4],[833,5],[834,2],[834,3],[914,0],[914,1],[914,1],[916,4],[916,2],[916,4],[916,4],[916,4],[912,1],[912,2],[912,2],[912,3],[913,1],[913,2],[913,2],[913,2],[913,2],[913,2],[913,2],[913,3],[913,2],[913,3],[913,3],[913,3],[913,3],[913,2],[913,3],[913,3],[913,3],[913,3],[917,2],[917,2],[917,2],[917,2],[917,2],[917,3],[917,3],[917,3],[917,3],[917,3],[917,3],[917,3],[917,3],[917,3],[917,3],[917,3],[917,3],[915,0],[915,2],[915,4],[919,1],[919,3],[918,2],[918,2],[908,3],[908,3],[910,3],[910,3],[910,3],[910,3],[920,1],[922,1],[921,1],[923,1],[157,0],[157,5],[157,9],[160,2],[925,0],[925,2],[926,2],[926,2],[927,0],[928,0],[874,3],[874,4],[878,3],[878,3],[826,2],[827,3],[929,1],[930,1],[931,1],[932,1],[933,1],[934,1],[935,1],[936,1],[937,1],[938,1],[939,1],[940,1],[941,1],[942,1],[903,0],[903,1],[903,1],[903,2],[903,2],[905,1],[905,1],[905,2],[905,2],[905,2],[887,2],[887,2],[887,1],[887,1],[892,1],[892,2],[892,1],[892,2],[892,2],[892,2],[892,1],[892,1],[955,2],[955,2],[956,2],[956,2],[886,1],[886,1],[886,1],[886,1],[886,1],[886,1],[886,1],[885,2],[885,3],[891,3],[891,4],[891,3],[943,1],[943,1],[943,1],[949,1],[949,1],[949,1],[945,3],[945,4],[951,4],[951,5],[951,4],[944,0],[944,1],[950,1],[946,2],[946,2],[952,2],[964,4],[965,4],[965,4],[965,5],[965,7],[966,0],[966,1],[970,3],[968,2],[968,3],[968,3],[967,0],[967,2],[969,1],[969,3],[969,2],[971,0],[971,1],[973,4],[973,4],[972,2],[972,5],[972,4],[972,4],[972,4],[972,3],[980,0],[981,0],[207,3],[209,5],[209,4],[209,3],[209,3],[209,2],[974,1],[974,1],[975,0],[975,2],[975,2],[978,2],[978,2],[976,0],[976,3],[976,3],[979,2],[979,3],[979,3],[984,1],[984,1],[838,0],[838,1],[849,2],[843,2],[843,2],[947,6],[947,3],[953,6],[953,5],[953,4],[953,6],[953,5],[953,4],[953,6],[953,5],[953,6],[953,5],[958,4],[958,3],[958,5],[961,5],[961,6],[961,5],[960,4],[960,5],[963,5],[963,6],[963,5],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[985,1],[948,6],[948,3],[954,6],[954,5],[954,4],[954,6],[954,5],[954,4],[954,6],[954,5],[954,6],[954,5],[954,6],[954,5],[986,1],[986,1],[959,5],[959,3],[962,5],[962,6],[962,5],[987,0],[987,1],[13,4],[13,2],[988,1],[988,3],[62,1],[62,1],[62,2],[62,1],[62,1],[62,1],[62,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[28,2],[28,3],[28,4],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[989,4],[1002,3],[1002,4],[1002,4],[990,4],[1003,3],[1003,4],[1003,4],[1003,4],[1013,1],[1013,1],[991,3],[1004,3],[1004,3],[992,4],[992,3],[1005,3],[993,5],[1006,3],[1006,4],[1006,5],[1006,6],[1006,5],[1006,5],[994,4],[994,6],[1007,3],[1007,4],[1007,5],[1007,6],[1007,6],[1007,6],[995,4],[995,7],[995,6],[995,7],[995,7],[1008,3],[1008,4],[1008,5],[1008,6],[1008,7],[1008,7],[1008,7],[1008,7],[1014,0],[1014,1],[1015,1],[1015,2],[996,3],[996,4],[1009,3],[1009,3],[1009,4],[1009,4],[997,5],[1010,3],[1010,4],[1010,5],[998,2],[999,4],[1011,3],[1011,4],[1011,4],[1000,3],[1000,4],[1000,5],[1012,4],[367,6],[375,6],[375,6],[375,6],[375,6],[375,7],[375,3],[375,2],[375,2],[375,2],[1017,1],[1020,1],[1023,1],[1024,1],[1018,1],[1018,3],[1021,1],[1021,3],[1021,3],[1021,5],[1025,3],[1026,3],[1026,2],[1026,1],[1027,1],[1028,1],[1029,1],[1019,0],[1019,2],[1022,2],[1022,2],[15,2],[29,2],[879,3],[879,3],[879,3],[875,2],[875,2],[875,2],[875,2],[875,2],[880,2],[880,2],[880,2],[880,2],[880,2],[880,2],[880,2],[880,2],[880,2],[880,2],[876,2],[876,4],[881,2],[881,4],[881,4],[881,3],[881,4],[881,3],[881,4],[881,4],[881,3],[881,4],[881,3],[882,1],[882,1],[1031,1],[1031,2],[1032,1],[1032,2],[1032,3],[1032,3],[1032,2],[1033,4],[1034,2],[1034,3],[1034,4],[1034,4],[1034,3],[1034,3],[1034,4],[1034,2],[1034,3],[1034,2],[1034,3],[1034,3],[1034,4],[1034,3],[1034,4],[1034,4],[1034,5],[1034,4],[1034,3]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 22: - - parser.suggestSetOptions(); - parser.suggestKeywords(['ALL']); - -break; -case 33: case 2127: - - parser.suggestKeywords(['TABLE', 'VIEW']); - -break; -case 34: - - parser.addDatabaseLocation(_$[$0-4], [ { name: $$[$0-4] } ]); - -break; -case 35: case 196: case 208: case 730: case 1364: case 2163: case 2222: - - parser.suggestDatabases(); - -break; -case 36: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - parser.suggestKeywords(['SET OWNER']); - -break; -case 37: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.suggestKeywords(['OWNER']); - -break; -case 38: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - parser.suggestKeywords(['ROLE', 'USER']); - -break; -case 43: case 54: case 77: - - parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); - -break; -case 44: case 55: case 124: - - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - -break; -case 45: case 56: case 80: case 81: case 120: case 123: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - -break; -case 61: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } - -break; -case 62: case 88: - - parser.suggestKeywords(['COLUMNS']); - -break; -case 67: - - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['CACHED IN', 'UNCACHED']); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 69: case 154: case 425: case 430: case 431: - - parser.suggestKeywords(['PARTITION']); - -break; -case 70: case 155: - - parser.suggestKeywords(['VALUE']); - -break; -case 71: case 156: case 439: case 1391: - - parser.suggestKeywords(['=']); - -break; -case 73: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - -break; -case 74: - - parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', - 'SET ENCODING']); - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - -break; -case 75: - - parser.suggestKeywords(['DEFAULT']); - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - -break; -case 76: - - parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - -break; -case 78: case 225: case 668: case 2123: case 2183: - - parser.suggestKeywords(['STATS']); - -break; -case 79: case 122: case 159: case 464: case 1331: case 1335: case 1339: case 1374: case 1375: case 1420: case 1423: case 1551: case 1596: case 2213: - - parser.suggestColumns(); - -break; -case 82: case 184: - - parser.suggestKeywords(['ROLE', 'USER']); - -break; -case 86: - - parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', - 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', - 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', - 'SET ROW FORMAT', 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - -break; -case 87: - - parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - -break; -case 89: - - parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); - -break; -case 90: - - parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'OWNER ROLE', 'OWNER USER', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); - -break; -case 92: case 188: case 720: - - parser.suggestKeywords(['TO']); - -break; -case 93: case 189: case 1360: - - parser.suggestDatabases({ appendDot: true }); - -break; -case 94: case 409: - - parser.suggestKeywords(['PARTITIONS']); - -break; -case 111: - - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - -break; -case 125: case 475: - - parser.suggestFileFormats(); - -break; -case 128: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH REPLICATION =']); - } - -break; -case 130: case 468: - - parser.suggestKeywords(['FORMAT']); - -break; -case 131: case 469: - - parser.suggestKeywords(['DELIMITED']); - -break; -case 132: case 1826: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 149: - - parser.addColumnLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 150: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); - parser.suggestColumns(); - } else { - parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); - } - -break; -case 161: case 190: case 210: case 662: case 682: case 686: case 688: case 727: case 1451: case 2122: case 2126: case 2171: case 2182: case 2202: - - parser.addTablePrimary($$[$0]); - -break; -case 162: case 677: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - -break; -case 163: - - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 169: case 467: case 1494: case 1533: case 1554: case 1567: case 1571: case 1589: case 1612: case 1638: case 1639: case 1716: case 1718: case 1786: case 1796: case 1803: case 1815: case 1978: case 2218: case 2262: case 2263: -this.$ = $$[$0]; -break; -case 176: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['LOCATION'] }; - } - -break; -case 182: - - parser.suggestKeywords(['AS', 'RENAME TO', 'SET OWNER']); - -break; -case 183: - - parser.suggestKeywords(['OWNER ROLE', 'OWNER USER']); - -break; -case 186: case 506: case 515: case 1504: case 1899: - - parser.suggestKeywords(['SELECT']); - -break; -case 191: case 687: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 192: - - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 193: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 194: - - parser.suggestKeywords(['ON DATABASE']); - -break; -case 195: - - parser.suggestKeywords(['DATABASE']); - -break; -case 197: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - parser.suggestKeywords(['IS']); - -break; -case 198: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.suggestKeywords(['NULL']); - -break; -case 201: case 216: case 230: case 663: case 673: case 674: case 693: case 809: case 818: case 819: case 2139: case 2172: - - parser.addTablePrimary($$[$0-1]); - -break; -case 202: case 1452: - - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 204: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['AUTHORIZATION', 'FUNCTIONS']); - -break; -case 206: case 817: case 2143: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 211: - - parser.suggestKeywords(['METADATA']); - -break; -case 212: case 218: case 227: case 664: case 669: case 699: case 731: case 815: case 1346: case 2199: case 2219: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 214: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['METADATA']); - -break; -case 215: case 222: case 223: - - parser.addTablePrimary($$[$0-2]); - -break; -case 217: - - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - -break; -case 220: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - -break; -case 221: - - parser.addTablePrimary($$[$0-3]); - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLESAMPLE']); - } else if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 224: case 667: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['INCREMENTAL']); - -break; -case 226: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['STATS']); - -break; -case 229: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 240: - - if ($$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } else { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - -break; -case 242: - - parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); - -break; -case 243: case 265: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 245: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 246: - - parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 247: - - parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); - -break; -case 248: - - var keywords = []; - if (!$$[$0]) { - keywords.push('LOCATION'); - } - if (!$$[$0-1] && !$$[$0]) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 278: - - var keywords = []; - if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LIKE', weight: 1 }); - keywords.push({ value: 'LIKE PARQUET', weight: 1 }); - } else { - if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - keywords.push({ value: 'PARTITION BY', weight: 12 }); - } - if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'SORT BY', weight: 11 }); - } - if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'COMMENT', weight: 10 }); - } - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'ROW FORMAT', weight: 7 }); - } else if ($$[$0-6] && $$[$0-6].suggestKeywords && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 7)); - } - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'STORED AS', weight: 5 }); - } - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'LOCATION', weight: 4 }); - } - if (!$$[$0-2] && !$$[$0-1]) { - keywords.push({ value: 'CACHED IN', weight: 3 }, { value: 'UNCACHED', weight: 3 }); - } else if ($$[$0-2] && $$[$0-2].suggestKeywords && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); - } - if (!$$[$0-1]) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - parser.suggestKeywords(keywords); - -break; -case 279: - - parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); - this.$ = $$[$0]; - -break; -case 284: case 285: case 1352: case 1355: -this.$ = []; -break; -case 288: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['PARQUET']); - -break; -case 290: case 609: case 611: case 1266: case 1269: case 1353: case 1393: case 1458: case 1620: case 1799: case 1896: case 1953: -this.$ = $$[$0-1]; -break; -case 291: case 610: case 612: -this.$ = $$[$0-3]; -break; -case 294: - - parser.suggestKeywords(['PRIMARY KEY']); - -break; -case 295: case 1350: case 1496: -this.$ = [$$[$0]]; -break; -case 296: -this.$ = $$[$0-2].concat($$[$0]); -break; -case 301: case 303: case 462: - - parser.checkForKeywords($$[$0-1]); - -break; -case 302: case 304: - - parser.checkForKeywords($$[$0-3]); - -break; -case 305: - - this.$ = $$[$0-2]; - this.$.type = $$[$0-1]; - var keywords = []; - if (!$$[$0]['primary']) { - keywords.push('PRIMARY KEY'); - } - if (!$$[$0]['encoding']) { - keywords.push('ENCODING'); - } - if (!$$[$0]['compression']) { - keywords.push('COMPRESSION'); - } - if (!$$[$0]['default']) { - keywords.push('DEFAULT'); - } - if (!$$[$0]['block_size']) { - keywords.push('BLOCK_SIZE'); - } - if (!$$[$0]['null']) { - keywords.push('NOT NULL'); - keywords.push('NULL'); - } - if (!$$[$0]['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 306: case 339: case 345: case 346: case 359: case 362: case 371: case 373: - - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - -break; -case 309: case 1871: -this.$ = {}; -break; -case 311: - - this.$ = {}; - this.$[$$[$0]] = true; - -break; -case 312: - - $$[$0-1][$$[$0]] = true; - -break; -case 317: -this.$ = 'primary'; -break; -case 318: -this.$ = 'encoding'; -break; -case 319: -this.$ = 'compression'; -break; -case 320: -this.$ = 'default'; -break; -case 321: -this.$ = 'block_size'; -break; -case 322: case 323: -this.$ = 'null'; -break; -case 324: -this.$ = 'comment'; -break; -case 326: - - parser.suggestKeywords(['NULL']); - -break; -case 344: case 566: case 577: case 600: - - parser.suggestKeywords(parser.getTypeKeywords()); - -break; -case 358: case 361: - - parser.suggestKeywords(['COMMENT']); - -break; -case 382: - - parser.suggestKeywords(['KEY']); - -break; -case 392: case 393: case 396: case 422: case 490: case 491: case 495: case 1979: - - parser.suggestKeywords(['BY']); - -break; -case 397: case 400: - - parser.suggestKeywords(['HASH', 'RANGE']); - -break; -case 438: - - parser.suggestKeywords(['VALUE', 'VALUES']); - -break; -case 440: case 446: case 449: case 807: - - parser.suggestFunctions(); - -break; -case 441: - - if ($$[$0].endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - -break; -case 442: case 445: case 448: - - parser.suggestKeywords(['<', '<=']); - -break; -case 443: case 1306: case 1309: - - parser.suggestKeywords(['VALUES']); - -break; -case 474: case 1503: - - parser.suggestKeywords(['AS']); - -break; -case 483: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; - } else if ($$[$0-1] && $$[$0-1].suggestKeywords && !$$[$0]) { - this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; - } - -break; -case 487: -this.$ = { suggestKeywords: ['ESCAPED BY'] }; -break; -case 489: case 494: - - parser.suggestKeywords(['TERMINATED BY']); - -break; -case 499: case 500: - - parser.suggestKeywords(['SERDEPROPERTIES']); - -break; -case 508: - - parser.commitLocations(); - -break; -case 510: case 523: case 539: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 511: case 524: - - if (!$$[$0-6]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 514: - - var keywords = [{value: 'AS', weight: 1 }]; - if (!$$[$0-1]) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - -break; -case 525: case 544: - - parser.suggestKeywords(['RETURNS']); - -break; -case 526: case 545: - - parser.suggestKeywords(['LOCATION']); - -break; -case 527: - - parser.suggestKeywords(['SYMBOL']); - -break; -case 537: case 655: - - parser.suggestKeywords(['FUNCTION']); - -break; -case 538: - - if (!$$[$0-13]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 546: - - if (!$$[$0-1]) { - parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); - } else { - parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); - } - -break; -case 547: - - parser.suggestKeywords(['MERGE_FN']); - -break; -case 548: - - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); - } - -break; -case 567: - - parser.suggestKeywords(['...']); - -break; -case 602: - - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - -break; -case 606: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 622: - - parser.addCommonTableExpressions($$[$0-1]); - -break; -case 639: - - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); - -break; -case 643: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - -break; -case 644: - - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - -break; -case 646: case 651: case 656: - - if (!$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 649: case 650: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 653: - - parser.suggestKeywords(['AGGREGATE']); - -break; -case 666: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['INCREMENTAL']); - -break; -case 672: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['PARTITION']); - -break; -case 676: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 679: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 683: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 684: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 689: - - parser.suggestKeywords(['TABLE']); - -break; -case 690: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 694: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 697: - - parser.suggestKeywords(['FROM']); - if (!$$[$0-1]) { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - -break; -case 700: - - var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; - if (!$$[$0]) { - keywords.push({ value: 'WHERE', weight: 3 }); - } - if ($$[$0-2].suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); - } - if ($$[$0-2].suggestJoins) { - parser.suggestJoins($$[$0-2].suggestJoins); - } - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2)); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 713: case 750: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); - -break; -case 714: - - parser.suggestKeywords(['TO GROUP']); - -break; -case 715: case 752: case 2179: case 2180: - - parser.suggestKeywords(['GROUP']); - -break; -case 717: case 754: - - if ($$[$0-1].isCreate) { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); - } else { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - -break; -case 718: - - if ($$[$0-2].isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - -break; -case 721: case 758: case 2159: - - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 722: case 724: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - -break; -case 726: case 2155: - - parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); - -break; -case 735: -this.$ = { isCreate: true }; -break; -case 745: - - parser.suggestKeywords(['GRANT OPTION']); - -break; -case 746: - - parser.suggestKeywords(['OPTION']); - -break; -case 751: - - parser.suggestKeywords(['FROM GROUP']); - -break; -case 755: - - if ($$[$0-2].isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - -break; -case 757: - - parser.suggestKeywords(['FROM']); - -break; -case 763: -this.$ = { selectList: $$[$0] }; -break; -case 764: - - this.$ = $$[$0-1]; - this.$.cursorAtEnd = true; - -break; -case 765: - - parser.selectListNoTableSuggest($$[$0], $$[$0-2]); - -break; -case 766: - - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - -break; -case 772: - - var keywords = $$[$0-2].suggestKeywords && !$$[$0-1] ? parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2) : []; - if (!$$[$0-1]) { - keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) - } else { - keywords = keywords.concat(['SELECT']) - } - parser.suggestKeywords(keywords); - -break; -case 782: - - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - -break; -case 783: - - parser.suggestKeywords(['INTO']); - -break; -case 784: case 790: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 785: - - if (!$$[$0-3]) { - parser.suggestKeywords(['TABLE']); - } - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - -break; -case 787: - - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'upsert'; - } - -break; -case 788: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] }; - } - -break; -case 789: - - parser.suggestKeywords(['INTO', 'OVERWRITE']); - -break; -case 791: - - if (!$$[$0-4]) { - parser.suggestKeywords(['TABLE']); - } - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 793: case 794: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - -break; -case 810: - - parser.suggestKeywords(['DATA INPATH']); - -break; -case 811: - - parser.suggestKeywords(['INPATH']); - -break; -case 813: - - if (!$$[$0-1]) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - -break; -case 814: - - parser.suggestKeywords([ 'TABLE' ]); - -break; -case 823: case 824: - - return parser.yy.result; - -break; -case 825: - - parser.prepareNewStatement(); - -break; -case 827: case 829: case 831: - - parser.addStatementLocation(_$[$0]); - -break; -case 830: case 832: - - parser.addStatementLocation(_$[$0-3]); - -break; -case 839: - - parser.suggestDdlAndDmlKeywords(['EXPLAIN']); - -break; -case 840: - - parser.suggestKeywords(['INSERT', 'SELECT']); - -break; -case 863: - - parser.suggestDdlAndDmlKeywords(); - -break; -case 1267: case 1270: case 1394: -this.$ = ''; -break; -case 1290: case 1293: - - parser.yy.correlatedSubQuery = false; - -break; -case 1291: case 1295: - - parser.suggestKeywords(['EXISTS']); - -break; -case 1294: - - parser.suggestKeywords(['NOT EXISTS']); - -break; -case 1305: case 1307: case 1308: case 1310: - - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - -break; -case 1343: case 1395: - - parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0] } ] }; - -break; -case 1344: case 1396: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; - -break; -case 1345: - - // This is a special case for expression like "SELECT | FROM db.table.col" - this.$ = { identifierChain: [ { name: $$[$0-3] }, { name: $$[$0-1] } ].concat($$[$0]) }; - -break; -case 1347: case 1361: - - parser.suggestDatabases(); - this.$ = { identifierChain: [{ name: $$[$0-2] }] }; - -break; -case 1348: - - // You can have statements like 'SELECT ... FROM testTable t, t.|' - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 1349: - - // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js - // Issue is that suggestColumns is deleted if no tables are defined and this is - // only cases like "SELECT | FROM db.table.col" - parser.suggestTables({ identifierChain: [{ name: $$[$0-3] }, { name: $$[$0-1] }].concat($$[$0]) }); - -break; -case 1351: - - $$[$0-1].push($$[$0]); - -break; -case 1354: case 1460: case 1801: -this.$ = $$[$0-2]; -break; -case 1356: -this.$ = { name: $$[$0] }; -break; -case 1358: -this.$ = [{ name: $$[$0] }]; -break; -case 1359: -this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; -break; -case 1373: case 1556: case 1557: case 1563: case 1564: case 1892: case 1980: - - parser.valueExpressionSuggest(); - -break; -case 1381: case 1384: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['WITH REPLICATION ='] }; - } - -break; -case 1386: case 2140: - - parser.suggestKeywords(['IN']); - -break; -case 1390: - - parser.suggestKeywords(['REPLICATION =']); - -break; -case 1397: - - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - -break; -case 1398: - - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 1400: -this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; -break; -case 1403: - - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - -break; -case 1404: case 1752: - - parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); - -break; -case 1406: - - this.$ = [ $$[$0].identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 1407: - - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $$[$0-2].push($$[$0].identifier); - parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); - -break; -case 1408: case 1416: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1409: case 1417: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1412: - - parser.suggestColumns({ - identifierChain: $$[$0-2] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 1413: - - parser.suggestColumns({ - identifierChain: $$[$0-4] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 1414: -this.$ = [ $$[$0].identifier ]; -break; -case 1415: - - $$[$0-2].push($$[$0].identifier); - -break; -case 1418: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1419: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 1421: - - parser.suggestColumns({ identifierChain: $$[$0-2] }); - -break; -case 1422: - - parser.suggestColumns({ identifierChain: $$[$0-4] }); - -break; -case 1424: -this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; -break; -case 1425: -this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; -break; -case 1426: -this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; -break; -case 1427: -this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; -break; -case 1428: -this.$ = { identifier: { name: $$[$0-3] }}; -break; -case 1453: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1455: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - -break; -case 1456: - - if (!$$[$0-1]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.suggestDatabases(); - -break; -case 1457: - - if (!$$[$0-2]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 1463: - - parser.addCommonTableExpressions($$[$0-3]); - -break; -case 1464: case 1465: case 1499: - - parser.addCommonTableExpressions($$[$0-2]); - -break; -case 1469: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); - this.$ = { selectList: $$[$0] }; - -break; -case 1470: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } - -break; -case 1481: - - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - -break; -case 1482: - - parser.suggestKeywords(['ALL', 'DISTINCT']); - -break; -case 1484: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); - if ($$[$0].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($$[$0]); - } - if ($$[$0].suggestFunctions) { - parser.suggestFunctions(); - } - if ($$[$0].suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($$[$0].suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($$[$0].suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($$[$0].suggestAggregateFunctions && (!$$[$0-2] || $$[$0-2] === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - -break; -case 1485: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 1486: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - -break; -case 1487: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - -break; -case 1488: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-3] || $$[$0-3] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-2] && !$$[$0-3]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$$[$0-2]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 1489: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-2]); - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 1490: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]), _$[$0-3]); - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 1491: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - -break; -case 1497: -this.$ = $$[$0-2].concat([$$[$0]]); -break; -case 1501: - - parser.addCommonTableExpressions($$[$0-4]); - -break; -case 1502: - - parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); - $$[$0-1].alias = $$[$0-4]; - this.$ = $$[$0-1]; - -break; -case 1509: case 1510: - - parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); - -break; -case 1511: - - var keywords = []; - - parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); - - if ($$[$0-3]) { - if (typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - keywords.push({ value: 'USING', weight: 3 }); - } - if ($$[$0-3].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - } - if ($$[$0-3].tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); - } - if ($$[$0-3].tableReferenceList.suggestJoins) { - parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); - } - if ($$[$0-3].tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if ($$[$0-3].tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($$[$0-3].tableReferenceList); - } - } - } - - if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); - parser.suggestKeywords(keywords); - return; - } - - if ($$[$0-1].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].suggestFilters) { - parser.suggestFilters($$[$0-1].suggestFilters); - } - if ($$[$0-1].suggestGroupBys) { - parser.suggestGroupBys($$[$0-1].suggestGroupBys); - } - if ($$[$0-1].suggestOrderBys) { - parser.suggestOrderBys($$[$0-1].suggestOrderBys); - } - - if ($$[$0-1].empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'ANTI JOIN', weight: 1 }, - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT ANTI JOIN', weight: 1 }, - { value: 'LEFT INNER JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'OUTER JOIN', weight: 1 }, - { value: 'RIGHT ANTI JOIN', weight: 1 }, - { value: 'RIGHT INNER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 }, - { value: 'RIGHT SEMI JOIN', weight: 1 }, - { value: 'SEMI JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - -break; -case 1512: - - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$$[$0-1]) { - parser.addClauseLocation('whereClause', _$[$0-2]); - parser.addClauseLocation('limitClause', _$[$0-2]); - return; - } - parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); - var keywords = []; - - if ($$[$0-1].suggestColRefKeywords) { - parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); - parser.addColRefIfExists($$[$0-1]); - } - - if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - -break; -case 1516: - - this.$ = { tableReferenceList : $$[$0] } - -break; -case 1517: case 1808: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1519: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'WHERE', weight: 9 }, - { value: 'GROUP BY', weight: 8 }, - { value: 'HAVING', weight: 7 }, - { value: 'ORDER BY', weight: 5 }, - { value: 'LIMIT', weight: 3 }, - { value: 'OFFSET', weight: 2 }], - [true, true, true, true, true, true]); - - if (keywords.length > 0) { - this.$ = { suggestKeywords: keywords, empty: !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - } else { - this.$ = {}; - } - - this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - -break; -case 1520: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - -break; -case 1521: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - -break; -case 1523: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - -break; -case 1526: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, true, true]); - if ($$[$0-6].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 1)); - } - this.$ = parser.getValueExpressionKeywords($$[$0-6], keywords); - this.$.cursorAtEnd = !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if ($$[$0-6].columnReference) { - this.$.columnReference = $$[$0-6].columnReference; - } - if (!$$[$0-4]) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 1527: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, true]); - if ($$[$0-5].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 6)); - } - if ($$[$0-5].valueExpression) { - this.$ = parser.getValueExpressionKeywords($$[$0-5].valueExpression, keywords); - if ($$[$0-5].valueExpression.columnReference) { - this.$.columnReference = $$[$0-5].valueExpression.columnReference; - } - } else { - this.$ = { suggestKeywords: keywords }; - } - this.$.cursorAtEnd = !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if (!$$[$0-3] && !$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 1528: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-2]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 1529: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]); - if ($$[$0-3].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 4)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 1530: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [true]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; - this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = _$[$0-2]; - -break; -case 1534: - - if ($$[$0].suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1535: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1538: - - this.$ = { valueExpression: $$[$0] }; - -break; -case 1539: case 1578: - - parser.suggestSelectListAliases(); - -break; -case 1540: - - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1541: - - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1568: - - if ($$[$0].emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1569: - - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1573: - - this.$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 1574: case 1575: case 1576: -this.$ = { emptyOrderBy: false }; -break; -case 1577: -this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); -break; -case 1580: - - this.$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 1581: - - this.$ = { suggestKeywords: ['ASC', 'DESC'] }; - -break; -case 1584: - - this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; - -break; -case 1587: - - parser.suggestKeywords(['FIRST', 'LAST']); - -break; -case 1594: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - this.$ = $$[$0]; - -break; -case 1600: case 1605: - - parser.suggestFunctions({ types: ['BIGINT'] }); - -break; -case 1601: case 1606: - - delete parser.yy.result.suggestColumns; - -break; -case 1610: case 1611: - - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1613: - - // verifyType($$[$0], 'NUMBER'); - this.$ = $$[$0]; - $$[$0].types = ['NUMBER']; - -break; -case 1614: case 1615: case 1616: case 1617: case 1618: case 1625: case 1626: case 1627: case 1628: case 1629: case 1630: case 1636: case 1637: case 1658: case 1712: case 1713: case 1775: -this.$ = { types: [ 'BOOLEAN' ] }; -break; -case 1619: - - this.$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - -break; -case 1621: case 1622: case 1623: case 1624: - - parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1631: case 1632: - - // verifyType($$[$0-2], 'BOOLEAN'); - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1633: case 1634: case 1635: - - // verifyType($$[$0-2], 'NUMBER'); - // verifyType($$[$0], 'NUMBER'); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 1641: - - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1642: case 1644: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 1643: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1645: - - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1646: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 1647: - - parser.suggestFunctions(); - parser.suggestColumns(); - this.$ = { types: [ 'T' ] }; - -break; -case 1648: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1649: - - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 1650: - - var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']; - parser.suggestKeywords(keywords); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1651: - - var keywords = ['FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'UNKNOWN']; - parser.suggestKeywords(keywords); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1652: - - parser.suggestKeywords(['FROM']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1653: case 1654: case 1655: - - parser.suggestKeywords(['NOT']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1656: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1657: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1659: - - this.$ = $$[$0-1]; - -break; -case 1660: - - parser.valueExpressionSuggest(); - this.$ = { types: ['T'], typeSet: true }; - -break; -case 1661: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1662: case 1663: case 1664: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1665: case 1666: case 1667: case 1668: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0].types); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1669: case 1671: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1670: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - -break; -case 1672: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; - -break; -case 1673: case 1674: case 1675: case 1676: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1677: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-3].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1678: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1679: case 1680: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; -break; -case 1681: case 1682: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; -break; -case 1683: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-3].suggestFilters }; - -break; -case 1684: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1685: case 1689: - - parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1686: - - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1687: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 1688: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1690: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1691: case 1693: case 1695: case 1697: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - -break; -case 1692: case 1696: - - parser.addColRefIfExists($$[$0]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1694: case 1698: - - parser.addColRefIfExists($$[$0-2]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1699: case 1700: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 1701: case 1702: case 1703: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1704: case 1705: case 1706: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions(['NUMBER']); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 1707: case 1708: case 1709: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1710: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1711: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 1714: - - parser.valueExpressionSuggest(undefined, $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1715: - - parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1717: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1719: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1720: - - this.$ = $$[$0]; - this.$.suggestFilters = $$[$0-1].suggestFilters; - -break; -case 1721: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1722: case 2026: case 2031: case 2032: -this.$ = { types: [ 'T' ] }; -break; -case 1723: case 1725: - - $$[$0].position = 1; - -break; -case 1724: - - $$[$0].position = $$[$0-2].position + 1; - this.$ = $$[$0]; - -break; -case 1726: - - $$[$0-2].position += 1; - -break; -case 1727: - - $$[$0-2].position = 1; - -break; -case 1728: - - $$[$0-4].position += 1; - -break; -case 1729: - - parser.valueExpressionSuggest(); - $$[$0-2].position += 1; - -break; -case 1730: - - parser.valueExpressionSuggest(); - $$[$0-4].position += 1; - -break; -case 1731: - - parser.suggestValueExpressionKeywords($$[$0-3]); - -break; -case 1732: case 1733: - - parser.valueExpressionSuggest(); - this.$ = { cursorAtStart : true, position: 1 }; - -break; -case 1734: case 1735: - - parser.valueExpressionSuggest(); - this.$ = { position: 2 }; - -break; -case 1739: -this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; -break; -case 1740: - - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].expression) { - this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } - } else { - this.$ = { function: fn, types: parser.findReturnTypes(fn) } - } - -break; -case 1741: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1743: -this.$ = { types: [ 'NULL' ] }; -break; -case 1744: -this.$ = { types: [ 'TIMESTAMP' ] }; -break; -case 1746: - - if ($$[$0].suggestKeywords) { - this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; - } else { - this.$ = { types: ['COLREF'], columnReference: $$[$0] }; - } - -break; -case 1747: - - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); - } - this.$ = { types: parser.findReturnTypes(fn) }; - -break; -case 1748: case 1940: case 1941: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-1]) }; - -break; -case 1751: - - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; - this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } - -break; -case 1755: - - parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); - -break; -case 1760: - - parser.suggestValues($$[$0]); - -break; -case 1761: -this.$ = { types: [ 'NUMBER' ] }; -break; -case 1767: case 1769: -this.$ = $$[$0-1] + $$[$0]; -break; -case 1768: -this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; -break; -case 1773: case 1774: - - if (/\$\{[^}]*\}/.test($$[$0])) { - parser.addVariableLocation(_$[$0], $$[$0]); - this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } - } else { - this.$ = { types: [ 'STRING' ] } - } - -break; -case 1776: - - this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 1777: - - this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 1782: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); - } else { - this.$ = { valueExpression: $$[$0-1] } - } - -break; -case 1783: - - parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); - this.$ = { asterisk: true } - -break; -case 1784: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - } - -break; -case 1785: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); - this.$ = { suggestAggregateFunctions: true }; - -break; -case 1787: -this.$ = [ $$[$0] ]; -break; -case 1788: - - $$[$0-2].push($$[$0]); - -break; -case 1790: case 1791: - - this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 1793: - - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 1794: - - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 1795: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 1797: case 1798: case 1800: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - -break; -case 1811: - - this.$ = $$[$0]; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - this.$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - -break; -case 1818: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-3]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 1819: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-4]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 1820: -this.$ = { joinType: $$[$0-1] }; -break; -case 1821: -this.$ = { joinType: $$[$0-2] }; -break; -case 1825: - - if ($$[$0-3].suggestKeywords) { - parser.suggestKeywords($$[$0-3].suggestKeywords); - } - -break; -case 1829: - - if (!$$[$0-2]) { - parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); - } - if (!$$[$0-2] && parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $$[$0-3], - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 1834: -this.$ = 'JOIN'; -break; -case 1835: -this.$ = 'ANTI JOIN'; -break; -case 1836: -this.$ = 'CROSS JOIN'; -break; -case 1837: -this.$ = 'INNER JOIN'; -break; -case 1838: -this.$ = 'OUTER JOIN'; -break; -case 1839: -this.$ = 'SEMI JOIN'; -break; -case 1840: -this.$ = 'FULL JOIN'; -break; -case 1841: -this.$ = 'FULL OUTER JOIN'; -break; -case 1842: -this.$ = 'LEFT JOIN'; -break; -case 1843: -this.$ = 'LEFT ANTI JOIN'; -break; -case 1844: -this.$ = 'LEFT INNER JOIN'; -break; -case 1845: -this.$ = 'LEFT OUTER JOIN'; -break; -case 1846: -this.$ = 'LEFT SEMI JOIN'; -break; -case 1847: -this.$ = 'RIGHT JOIN'; -break; -case 1848: -this.$ = 'RIGHT ANTI JOIN'; -break; -case 1849: case 1850: -this.$ = 'RIGHT OUTER JOIN'; -break; -case 1851: -this.$ = 'RIGHT SEMI JOIN'; -break; -case 1852: case 1853: case 1854: case 1855: case 1856: case 1857: case 1859: case 1860: case 1861: case 1862: case 1864: case 1865: case 1866: case 1867: -this.$ = { suggestKeywords: ['JOIN'] }; -break; -case 1858: -this.$ = { suggestKeywords: ['OUTER'] }; -break; -case 1863: case 1868: -this.$ = { suggestKeywords: ['ANTI', 'INNER', 'OUTER', 'SEMI'] }; -break; -case 1869: -this.$ = { noJoinCondition: true, suggestKeywords: ['ON', 'USING'] }; -break; -case 1870: -this.$ = { valueExpression: $$[$0] }; -break; -case 1875: - - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - -break; -case 1876: - - this.$ = { - primary: $$[$0-2] - } - if ($$[$0-2].identifierChain) { - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - parser.addTablePrimary($$[$0-2]); - } - var keywords = []; - if ($$[$0] && $$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } else if (!$$[$0-1] && !$$[$0]) { - keywords = [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }]; - } else if (!$$[$0]) { - keywords = [{ value: 'TABLESAMPLE', weight: 3 }]; - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 1877: - - this.$ = { - primary: $$[$0-2] - }; - - if ($$[$0-1]) { - this.$.primary.alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - - var keywords = []; - if ($$[$0] && $$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } else { - keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [true, true]); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 1878: - - if ($$[$0-1]) { - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - -break; -case 1879: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - parser.addTablePrimary($$[$0-2]); - -break; -case 1880: - - if ($$[$0-1]) { - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias); - } - -break; -case 1887: -this.$ = { suggestKeywords: ['REPEATABLE()'] }; -break; -case 1889: - - parser.suggestKeywords(['SYSTEM()']); - -break; -case 1894: - - parser.pushQueryState(); - -break; -case 1895: - - parser.popQueryState(); - -break; -case 1897: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - this.$ = $$[$0-2]; - -break; -case 1900: - - var subQuery = parser.getSubQuery($$[$0]); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - this.$ = subQuery; - -break; -case 1917: case 1918: case 1919: case 1920: -this.$ = { alias: $$[$0], location: _$[$0] }; -break; -case 1926: - - if (!$$[$0]) { - $$[$0-1].suggestKeywords = ['OVER']; - } - -break; -case 1934: - - parser.suggestKeywords(['OVER']); - -break; -case 1938: case 1939: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1950: -this.$ = { expression: $$[$0-1] }; -break; -case 1951: - - parser.valueExpressionSuggest(); - this.$ = { position: 1 } - -break; -case 1952: - - parser.suggestValueExpressionKeywords($$[$0-1]); - -break; -case 1960: case 2038: case 2079: -this.$ = { types: parser.findReturnTypes($$[$0-2]) }; -break; -case 1961: -this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1962: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-3], 1); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1963: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1964: - - parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1972: case 1973: - - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - -break; -case 1974: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$$[$0-2]) { - parser.suggestKeywords(['PARTITION BY']); - } - -break; -case 1975: - - if (!$$[$0-1]) { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - -break; -case 1984: - - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - -break; -case 1985: - - var keywords = []; - if ($$[$0-2].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - } - if (!$$[$0]) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - -break; -case 1991: - - parser.suggestKeywords(['BETWEEN']); - -break; -case 1992: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['AND']); - } - -break; -case 1997: - - lexer.popState(); - -break; -case 1998: - - lexer.begin('hdfs'); - -break; -case 2000: - - parser.suggestHdfs({ path: $$[$0-3] }); - -break; -case 2001: - - parser.suggestHdfs({ path: $$[$0-2] }); - -break; -case 2002: - - parser.suggestHdfs({ path: $$[$0-1] }); - -break; -case 2003: - - parser.suggestHdfs({ path: '' }); - -break; -case 2004: - - parser.suggestHdfs({ path: '' }); - -break; -case 2010: - - parser.suggestKeywords(['PRECEDING']); - -break; -case 2011: case 2016: - - parser.suggestKeywords(['ROW']); - -break; -case 2015: - - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - -break; -case 2017: - - parser.suggestKeywords(['FOLLOWING']); - -break; -case 2023: - - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 2024: - - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 2025: case 2030: -this.$ = { types: [ $$[$0-1].toUpperCase() ] }; -break; -case 2027: - - parser.valueExpressionSuggest(); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 2028: case 2029: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ] }; - -break; -case 2033: - - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 2034: - - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ 'T' ] }; - -break; -case 2035: case 2036: - - parser.suggestKeywords(parser.getTypeKeywords()); - this.$ = { types: [ 'T' ] }; - -break; -case 2037: case 2043: -this.$ = { types: parser.findReturnTypes($$[$0-3]) }; -break; -case 2039: case 2044: case 2078: -this.$ = { types: parser.findReturnTypes($$[$0-4]) }; -break; -case 2040: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2041: case 2046: case 2081: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2042: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - } - parser.suggestKeywords(keywords); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2045: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2047: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2064: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2065: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2066: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2067: - - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2068: - - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2069: - - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 2070: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2071: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2072: - - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2073: - - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2074: - - if ($$[$0-3].types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($$[$0-3], ['FROM']); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 2075: - - if ($$[$0-2].types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($$[$0-2], ['FROM']); - } else { - parser.suggestValueExpressionKeywords($$[$0-2]); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2080: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2082: - - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 2108: - - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'CREATE VIEW', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'GRANT USER', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); - -break; -case 2109: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'CREATE VIEW', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); - -break; -case 2110: - - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); - -break; -case 2124: case 2141: case 2173: case 2175: case 2184: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2128: - - if ($$[$0-1].isView) { - parser.suggestTables({ onlyViews: true }); - } else { - parser.suggestTables(); - } - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2129: - - if (parser.yy.result.suggestTables && $$[$0-1].isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 2130: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['TABLE', 'VIEW']); - -break; -case 2132: -this.$ = { isView: true }; -break; -case 2134: - - parser.suggestKeywords([ 'ROLES' ]); - -break; -case 2135: - - parser.suggestKeywords([ 'CURRENT' ]); - -break; -case 2138: - - parser.suggestKeywords(['LIKE']); - -break; -case 2145: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['IN']); - -break; -case 2148: case 2151: - - parser.suggestKeywords(['FUNCTIONS']); - -break; -case 2149: case 2152: - - parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); - -break; -case 2150: case 2189: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 2153: - - if (!$$[$0-2]) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 2161: - - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - -break; -case 2162: - - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - -break; -case 2164: - - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestTables(); - -break; -case 2178: - - parser.suggestKeywords(['GRANT']); - -break; -case 2195: - - if (!$$[$0-1] && !$$[$0-2]) { - parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); - } else if (!$$[$0-1] && $$[$0-2]) { - var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; - if ($$[$0-2].suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); - } - if ($$[$0-2].suggestJoins) { - parser.suggestJoins($$[$0-2].suggestJoins); - } - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); - } - parser.suggestKeywords(keywords); - } else if (!$$[$0-1]) { - parser.suggestKeywords([ 'WHERE' ]); - } - -break; -case 2196: - - parser.suggestKeywords([ 'SET' ]); - -break; -case 2212: - - parser.suggestKeywords([ '=' ]); - -break; -case 2221: - - if (!parser.yy.cursorFound) { - parser.yy.result.useDatabase = $$[$0]; - } - -break; -case 2224: -this.$ = { inValueEdit: true }; -break; -case 2225: -this.$ = { inValueEdit: true, cursorAtStart: true }; -break; -case 2226: case 2227: case 2228: case 2229: case 2230: -this.$ = { suggestKeywords: ['NOT'] }; -break; -case 2236: case 2237: case 2238: case 2239: case 2240: - - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - this.$ = { types: ['BOOLEAN'] } - -break; -case 2241: case 2243: -this.$ = parser.findCaseType($$[$0-1]); -break; -case 2242: case 2245: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2244: - - parser.suggestValueExpressionKeywords($$[$0-1], ['END']); - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2246: -this.$ = parser.findCaseType($$[$0-2]); -break; -case 2247: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2248: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-2]); - -break; -case 2249: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - this.$.suggestFilters = $$[$0-1].suggestFilters - -break; -case 2250: - - parser.valueExpressionSuggest(); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 2251: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 2252: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = $$[$0-1]; - -break; -case 2253: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ] }; - -break; -case 2256: -this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; -break; -case 2257: - - $$[$0-1].caseTypes.push($$[$0]); - this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; - -break; -case 2261: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - -break; -case 2264: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; -break; -case 2265: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 2266: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 2267: case 2268: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; -break; -case 2269: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2270: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [$$[$0]] }; - -break; -case 2271: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2272: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2273: case 2275: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 2274: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 2276: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; - -break; -case 2277: - - parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2278: - - parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 2279: case 2280: case 2281: case 2282: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -} -}, -table: [o($V0,$V1,{456:1,457:2}),{1:[3]},o($V2,$V3,{458:3,462:4,3:5,363:6,137:7,465:8,4:9,5:10,6:11,7:12,8:13,9:14,10:15,11:16,12:17,13:18,14:19,15:20,364:21,365:22,366:23,367:24,430:25,371:26,30:28,31:29,32:30,33:31,161:35,162:36,163:37,164:38,165:39,376:40,377:41,378:42,379:43,380:44,381:45,382:46,989:51,990:52,991:53,992:54,993:55,994:56,995:57,996:58,997:59,998:60,999:61,1000:62,373:65,43:71,135:72,312:75,313:76,426:80,428:81,437:82,438:83,26:$V4,38:$V5,63:$V6,86:$V7,147:$V8,153:$V9,155:$Va,170:$Vb,307:$Vc,392:$Vd,393:$Ve,402:$Vf,414:$Vg,415:$Vh,418:$Vi,441:$Vj,452:$Vk,471:$Vl,815:$Vm,1001:$Vn,1016:$Vo,1030:$Vp}),{459:[1,86],463:[1,87]},o($V2,[2,827]),o($V2,[2,833]),o($V2,[2,834]),o($V2,[2,835]),{3:88,4:9,5:10,6:11,7:12,8:13,9:14,10:15,11:16,12:17,13:18,14:19,15:20,26:$V4,30:28,31:29,32:30,33:31,38:$V5,43:71,63:$V6,86:$V7,135:72,137:90,147:$V8,153:$V9,155:$Va,161:35,162:36,163:37,164:38,165:39,170:$Vb,307:$Vc,312:75,313:76,363:89,364:21,365:22,366:23,367:24,371:26,373:65,376:40,377:41,378:42,379:43,380:44,381:45,382:46,392:$Vd,393:$Ve,402:$Vf,414:$Vg,415:$Vh,418:$Vi,426:80,428:81,430:25,437:82,438:83,441:$Vj,452:$Vk,815:$Vm,989:51,990:52,991:53,992:54,993:55,994:56,995:57,996:58,997:59,998:60,999:61,1000:62,1001:$Vn,1016:$Vo,1030:$Vp},o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,616]),o($V2,[2,617]),o($V2,[2,618]),o($V2,[2,619]),o($Vq,$Vr,{431:91,817:92,819:93,747:$Vs}),{89:$Vt,373:97,414:$Vg,415:$Vh,426:80,428:81,430:95,437:82,438:83,441:$Vj},o([26,38,63,86,147,153,155,170,307,392,393,402,414,415,418,441,452,815,1001,1016,1030],[2,862]),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,27]),o($V2,[2,28]),{40:101,41:$Vu,64:$Vv,130:98,149:[1,99],151:[1,100],172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{154:[1,114]},{66:[1,115],158:[1,116]},o($V2,[2,231]),o($V2,[2,232]),o($V2,[2,233]),o($V2,[2,234]),o($V2,[2,235]),o($V2,[2,626]),o($V2,[2,627]),o($V2,[2,628]),o($V2,[2,629]),o($V2,[2,630]),o($V2,[2,631]),o($V2,[2,632]),{38:$VE,63:$VF,147:$VG,170:$VH,360:[1,117],404:118,413:$VI,414:$VJ,415:$VK},{38:$VE,63:$VF,147:$VG,170:$VH,360:[1,126],404:127,413:$VI,414:$VJ,415:$VK},o($VL,$VM,{780:128,143:[1,129],567:$VN,579:$VO}),{41:$Vu,64:$Vv,172:134,242:$Vw,254:$Vx,411:$Vy,412:$Vz,413:[1,133],417:$VA,468:106,469:$VB,470:$VC,988:132},o($V2,[2,2096]),o($V2,[2,2097]),o($V2,[2,2098]),o($V2,[2,2099]),o($V2,[2,2100]),o($V2,[2,2101]),o($V2,[2,2102]),o($V2,[2,2103]),o($V2,[2,2104]),o($V2,[2,2105]),o($V2,[2,2106]),o($V2,[2,2107]),{41:$Vu,64:$Vv,172:135,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,394:136,395:[2,705],396:137,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,874:144,906:138,908:139,909:140,920:141,921:142},o($V2,[2,759]),{453:[1,146]},{40:151,41:$Vu,58:150,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,804:149,1017:147,1023:148},o([41,64,73,89,138,146,179,180,224,236,241,242,254,362,392,411,412,417,469,470,473,474,475,479,483,493,494,508,509,524,566,569,570,586,592,604,631,634,641,719,720,721,722,728,745,750,751,754,755,758,759,760,770,957],$VQ,{421:152,413:$VR,550:$VS}),{40:157,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,822:155,824:156},{39:158,129:[1,159],141:[1,160],143:$VT,701:$VU},{26:[1,166],38:[1,165],44:[1,163],46:169,51:$VV,56:[1,164],63:[1,171],68:167,69:168,70:[1,170],73:$VW,84:175,110:172,111:$VX},{26:[1,177],56:[1,179],136:[1,178]},{142:[1,180]},{39:181,129:[2,1278],141:[1,183],143:$VT,171:182,316:[1,185],322:[1,186],360:[1,184],568:[1,187],701:$VU},o($V2,[2,518]),o($V2,[2,519]),{39:188,66:[1,192],129:[1,194],141:[1,195],143:$VT,158:[1,193],316:[1,189],322:[1,190],360:[1,191],701:$VU},{129:[1,196]},{50:[1,206],65:[1,197],71:[1,205],129:[1,209],149:[2,1276],170:[1,198],322:[1,213],360:[1,207],402:[1,204],479:[1,214],529:[1,199],539:[1,201],572:[1,202],695:[1,208],702:[1,211],732:[1,210],771:212,774:200,779:203},o($V2,[2,767]),{276:[1,216],415:[2,797],429:215,446:[1,217],447:[1,218]},o($VY,[2,778]),o($VY,[2,779]),{442:[1,219]},{442:[1,221],444:220,445:[1,222]},{1:[2,822]},o($V0,$V1,{457:223}),o($V2,[2,836]),o($V2,[2,837]),o($V2,[2,838]),o($Vq,[2,1458]),o($Vq,[2,1472],{819:224,747:$Vs}),o($VZ,[2,1474]),o([413,415,550],$V1,{457:225}),o($Vq,$Vr,{817:92,819:93,431:226,747:$Vs}),{137:227,307:$Vc,371:228,415:$Vh,430:25},o($V2,[2,760]),o($V2,$V_,{148:229,46:230,51:$VV}),{40:232,41:$Vu,64:$Vv,150:231,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,203]),o($V$,[2,1343],{138:[1,233]}),o($V01,[2,1392]),{181:$V11,494:$V21},o($V01,[2,859]),o($V01,[2,860]),o($V01,[2,861]),o($V01,[2,852]),o($V01,[2,853]),o($V01,[2,854]),o($V01,[2,855]),o($V01,[2,856]),o($V01,[2,857]),o($V01,[2,858]),o($V2,[2,209],{40:101,172:102,468:106,130:236,41:$Vu,64:$Vv,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,469:$VB,470:$VC,494:$VD}),{40:101,41:$Vu,64:$Vv,130:237,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{66:[1,238]},{40:239,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{142:[1,240]},{142:[2,733]},{142:[2,734]},{142:[2,735]},{142:[2,736]},{142:[2,737]},{142:[2,738]},{89:$V31,142:$V41,156:241,252:242},{40:244,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{142:[1,245]},{40:101,41:$Vu,64:$Vv,130:246,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VL,$VM,{780:247,567:$VN,579:$VO}),o($VL,[2,1281]),o($VL,[2,1282]),{54:[1,248],138:[1,249]},o($V2,[2,2086]),o($V51,[2,2087]),o($V2,[2,2221]),{395:[1,250]},{395:[2,706]},o($V61,[2,1809]),o($V61,[2,1811],{833:251,913:252,481:$V71,527:$V81,582:$V91,598:$Va1,606:$Vb1,620:$Vc1,657:$Vd1,693:$Ve1,707:$Vf1}),o($V61,[2,1812]),o($Vg1,$Vh1,{172:102,468:106,903:262,40:263,97:264,303:266,776:267,41:$Vu,64:$Vv,136:$Vi1,179:$Vj1,180:$Vk1,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,469:$VB,470:$VC,494:$VD}),o($Vg1,$Vh1,{172:102,468:106,40:263,97:264,303:266,776:267,903:270,41:$Vu,64:$Vv,136:$Vi1,179:$Vj1,180:$Vk1,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,469:$VB,470:$VC,494:$VD}),o($Vl1,[2,1882]),o($Vl1,[2,1884]),o($Vm1,$Vn1,{874:144,826:271,921:272,927:273,89:$VP}),{454:[1,274]},{26:[1,275]},{26:[2,2200]},{26:[2,2202]},{26:[2,1399],40:276,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($Vo1,[2,1395],{138:[1,277]}),o($Vp1,[2,1492],{422:278,722:[1,279]}),o($Vq1,[2,1507]),o($Vq1,[2,1508]),o([89,414,415,441],[2,1494],{95:[1,280]}),o($Vr1,[2,1496]),{136:[1,281]},{40:282,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:101,41:$Vu,64:$Vv,130:283,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:101,41:$Vu,64:$Vv,130:284,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($Vs1,[2,1255]),o($Vs1,[2,1256]),o($Vt1,$Vu1,{45:285,117:$Vv1,592:$Vw1}),{57:[1,287]},o($VL,[2,100],{59:288,65:[1,289]}),{41:[1,291],65:[1,290],98:$Vx1,100:293,101:$Vy1,103:$Vz1,104:296,106:$VA1,109:$VB1,503:$VC1,626:$VD1},o($V2,[2,47]),o($V2,[2,48]),{26:[1,302],44:[1,303],69:301,73:$VW,84:175,110:172,111:$VX},{71:[1,304]},o($Vt1,$VE1,{126:305,65:[1,306],592:$VF1}),o($V2,[2,119]),{40:309,41:$Vu,60:308,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{89:[1,310]},{117:[1,311]},{117:[2,165]},{41:[1,312]},{137:313,307:$Vc,371:228,415:$Vh,430:25},{57:[1,314]},{143:[1,315]},o([41,64,242,254,411,412,417,459,463,469,470],$Vu1,{45:316,592:$Vw1}),{129:[1,317]},o($VL,$Vu1,{45:318,592:$Vw1}),{41:$Vu,64:$Vv,172:319,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC},o($VL,$Vu1,{45:320,592:$Vw1}),{316:[1,321]},{129:[2,1279]},o($VL,$VE1,{126:322,592:$VF1}),o($VL,$VE1,{126:323,592:$VF1}),{316:[1,324]},{41:$Vu,64:$Vv,172:325,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC},{40:101,41:$Vu,64:$Vv,130:326,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{66:[1,327]},o($VL,$VE1,{126:328,592:$VF1}),o($VL,$VE1,{126:329,592:$VF1}),o($VL,$VE1,{126:330,592:$VF1}),{66:[1,331]},{129:[1,333],141:[1,334],1013:332},{695:[1,335]},{208:[1,336]},{179:$Vj1,208:[2,1259],303:337},{595:[1,338]},{149:[1,339]},{360:$VG1,403:$VH1,407:340,751:$VI1},{40:151,41:$Vu,58:344,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{71:[1,345]},{402:[1,346]},o($V2,[2,2181]),{66:[1,347]},o($VJ1,$VK1,{784:348,595:$VL1}),{208:[2,1260]},{149:[2,1277]},{149:[2,1249]},{149:[2,1250]},{415:$Vh,430:350},{89:$VM1,432:351,448:352},{415:[2,798]},{415:[2,799]},o($VL,$VN1,{419:354,129:$VO1}),o($VL,$VN1,{419:356,129:$VO1}),o($VP1,[2,795]),o($VP1,[2,796]),o($V2,$V3,{462:4,3:5,363:6,137:7,465:8,4:9,5:10,6:11,7:12,8:13,9:14,10:15,11:16,12:17,13:18,14:19,15:20,364:21,365:22,366:23,367:24,430:25,371:26,30:28,31:29,32:30,33:31,161:35,162:36,163:37,164:38,165:39,376:40,377:41,378:42,379:43,380:44,381:45,382:46,989:51,990:52,991:53,992:54,993:55,994:56,995:57,996:58,997:59,998:60,999:61,1000:62,373:65,43:71,135:72,312:75,313:76,426:80,428:81,437:82,438:83,458:357,26:$V4,38:$V5,63:$V6,86:$V7,147:$V8,153:$V9,155:$Va,170:$Vb,307:$Vc,392:$Vd,393:$Ve,402:$Vf,414:$Vg,415:$Vh,418:$Vi,441:$Vj,452:$Vk,471:$Vl,815:$Vm,1001:$Vn,1016:$Vo,1030:$Vp}),o($VZ,[2,1475]),{413:$VR,415:$VQ,421:358,550:$VS},o($Vq,[2,1459]),{91:[1,359]},{89:$Vt,415:$Vh,430:95},o($V2,[2,201]),o([276,415,446,447,459,463],[2,1300]),o($V2,[2,202]),o($VJ1,[2,1363]),{40:360,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{494:[1,361]},o($V01,[2,1394]),o($V2,[2,210]),o([459,463,733],$V41,{252:242,156:362,89:$V31}),{40:101,41:$Vu,64:$Vv,130:363,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{57:[1,364]},{129:$VQ1,143:$VR1,405:365,411:$VS1,412:$VT1},{142:[2,739]},o([51,71,142,276,415,446,447,459,463,733],[2,1327]),{40:309,41:$Vu,60:371,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,791:370},{395:[1,372]},{129:$VQ1,143:$VR1,405:373,411:$VS1,412:$VT1},o($V2,[2,1451]),{40:232,41:$Vu,64:$Vv,150:374,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{41:$Vu,62:375,64:$Vv,97:378,138:$VU1,146:$VV1,172:376,179:$Vj1,180:$Vk1,223:382,242:$Vw,254:$Vx,303:266,362:$VW1,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,475:$VX1,570:$VY1,745:$VZ1,750:$V_1,776:267,802:377,894:$V$1,899:385,900:386},{41:$Vu,64:$Vv,172:390,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,396:391,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,874:144,906:138,908:139,909:140,920:141,921:142},o($V61,[2,1815],{913:392,481:$V71,527:$V81,582:$V91,598:$Va1,606:$Vb1,620:$Vc1,657:$Vd1,693:$Ve1,707:$Vf1}),o($V02,$V12,{914:393,446:$V22,502:$V32}),o($V42,[2,1834]),{606:[1,396]},{606:[1,397]},{606:[1,398]},{606:[1,399]},{606:[1,400]},{606:[1,401],657:[1,402]},{481:[1,404],598:[1,405],606:[1,403],657:[1,406],707:[1,407]},{481:[1,409],598:[1,410],606:[1,408],657:[1,411],707:[1,412]},o($V52,$V62,{157:413,733:$V72}),o($Vg1,[2,1917]),o($Vg1,[2,1918]),{40:415,41:$Vu,64:$Vv,97:416,172:102,179:$Vj1,180:$Vk1,242:$Vw,254:$Vx,303:266,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,776:267},o($V82,[2,1272]),o($V82,[2,1273]),{179:[1,418],181:[1,417]},{180:[1,420],181:[1,419]},o($V52,$V62,{157:421,733:$V72}),{91:[1,422]},{40:263,41:$Vu,64:$Vv,91:$Vh1,97:264,136:$Vi1,172:102,179:$Vj1,180:$Vk1,242:$Vw,254:$Vx,303:266,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,776:267,903:423},{137:431,307:$Vc,371:228,415:$Vh,430:25,929:424,931:425,933:426,935:427,937:428,939:429,941:430},{207:432,590:$V92},{40:309,41:$Vu,60:439,64:$Vv,172:102,242:$Vw,254:$Vx,359:437,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,806:438,1018:434,1025:435,1027:436},{26:[2,1400]},{40:440,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:443,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,423:441,468:106,469:$VB,470:$VC,473:$Vh2,474:$Vi2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,902:442,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vp1,[2,1493]),{40:157,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,824:503},{89:[1,504]},{26:[1,505]},o([26,38,44,51,56,63,70,73,111],[2,161]),o([26,56,136],[2,190]),{46:506,50:[1,507],51:$VV},{224:[1,508]},{40:151,41:$Vu,58:509,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:309,41:$Vu,60:510,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VL,[2,101]),{66:[1,511]},{42:512,360:$VM2,751:$VN2},{99:515,289:$VO2,290:$VP2,291:$VQ2,292:$VR2,293:$VS2,294:$VT2,295:$VU2},o($V2,[2,113]),{89:$VV2,102:523},{89:$VV2,102:525},o($V2,$VW2,{105:526,801:527,307:$VX2}),{107:[1,529]},o($V2,[2,118]),{207:530,590:$V92},{595:[1,531]},o($V2,[2,49]),{98:$Vx1,100:293,101:$Vy1,103:$Vz1,104:296,106:$VA1,109:$VB1,503:$VC1,626:$VD1},{117:$Vv1},o($V2,[2,50]),{46:532,50:[1,533],51:$VV},{40:309,41:$Vu,60:534,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{566:[1,535]},{40:309,41:$Vu,60:537,64:$Vv,112:536,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VY2,[2,1424],{476:[1,538]}),{40:309,41:$Vu,60:541,64:$Vv,122:539,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,799:540},{89:$VZ2,118:542},{42:544,360:$VM2,751:$VN2},o($V2,[2,178]),{40:545,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:546,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,241],{468:106,172:547,41:$Vu,64:$Vv,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,469:$VB,470:$VC}),o($VL,$Vu1,{45:548,592:$Vw1}),{40:550,41:$Vu,64:$Vv,172:102,202:549,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,613]),{40:550,41:$Vu,64:$Vv,172:102,202:551,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VL,$Vu1,{45:552,592:$Vw1}),{40:553,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:550,41:$Vu,64:$Vv,172:102,202:554,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VL,$VE1,{126:555,592:$VF1}),o($V2,[2,661]),o($V2,[2,662]),{40:101,41:$Vu,64:$Vv,130:556,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:101,41:$Vu,64:$Vv,130:557,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:101,41:$Vu,64:$Vv,130:558,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:101,41:$Vu,64:$Vv,130:559,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:151,41:$Vu,58:560,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:151,41:$Vu,58:561,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VL,[2,2131]),o($VL,[2,2132]),o($V2,[2,2133]),{179:$Vj1,303:562},o($V2,[2,2137]),{40:151,41:$Vu,58:563,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o([208,459,463],$VK1,{784:564,595:$VL1}),{40:565,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VL,[2,1261]),o($VL,[2,1262]),o($VL,[2,1263]),o($V2,[2,2171]),{40:151,41:$Vu,58:566,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{403:[1,567]},{40:151,41:$Vu,58:568,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,2186],{303:569,179:$Vj1,208:[1,570]}),{27:[1,575],40:232,41:$Vu,64:$Vv,150:571,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:[1,574],783:572,788:576,789:573},o($V2,$Vr,{817:92,819:93,431:577,747:$Vs}),o($V2,[2,770],{95:[1,578]}),o($V_2,[2,800]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:580,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,450:579,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:101,41:$Vu,64:$Vv,130:581,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VL,[2,762]),{40:101,41:$Vu,64:$Vv,130:582,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,828]),{415:$Vh,430:583},o($Vq,$Vr,{817:92,819:93,431:584,747:$Vs}),o($V$,[2,1344],{795:585,797:586,138:$V$2}),o($V01,[2,1393]),o($V2,$V62,{157:588,733:$V72}),o($V2,$V_,{46:230,148:589,51:$VV}),{403:[1,590]},{57:[1,591]},{40:592,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:101,41:$Vu,64:$Vv,130:593,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:594,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:595,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{91:[1,596],95:[1,597]},o($V03,[2,1332]),{403:[1,598]},{395:[1,599]},o($V2,[2,1452]),o($V2,[2,2085]),o($V2,[2,2089]),o($V2,[2,2090],{468:106,172:600,41:$Vu,64:$Vv,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,469:$VB,470:$VC}),o($V2,[2,2092]),o($V2,[2,2093]),o($V2,[2,2094]),o($V2,[2,2095]),o($V13,[2,1756]),{138:$VU1,223:601,362:$VW1,750:$V_1,899:385,900:386},{138:$VU1,223:602,362:$VW1,750:$V_1,899:385,900:386},o($V23,[2,1764]),o($V23,[2,1765]),o($V23,[2,1766],{138:[1,603]}),{362:[1,604],750:[1,605]},{362:[1,606]},o($V51,[2,2088]),o($V2,$V33,{397:607,847:608,765:$V43}),o($V02,$V12,{914:610,446:$V22,502:$V32}),{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,874:144,908:611,920:141,921:142},o($V02,[2,1823]),o($V02,[2,1824]),o($V42,[2,1835]),o($V42,[2,1836]),o($V42,[2,1837]),o($V42,[2,1838]),o($V42,[2,1839]),o($V42,[2,1840]),{606:[1,612]},o($V42,[2,1842]),{606:[1,613]},{606:[1,614]},{606:[1,615]},{606:[1,616]},o($V42,[2,1847]),{606:[1,617]},{606:[1,618]},{606:[1,619]},{606:[1,620]},o($V52,[2,1876]),{924:[1,621]},o($Vg1,[2,1919]),o($Vg1,[2,1920]),{179:[1,622]},o($V53,[2,1267]),{180:[1,623]},o($V63,[2,1270]),o($V52,[2,1877]),o($V73,[2,1896]),{91:[1,624]},{91:[2,1900]},{91:[2,1902]},{91:[2,1904]},{91:[2,1906]},{91:[2,1908]},{91:[2,1910]},{91:[2,1912]},{91:[2,1914]},{442:[2,820],445:[1,626],455:625},{982:[1,627]},o($V83,[2,2217],{1019:628,95:[1,629],395:[1,630]}),o($V93,[2,2204]),{54:[1,631]},{54:[2,2214]},o($Va3,[2,1403],{138:[1,632]}),o($Vb3,[2,1406]),o($Vo1,[2,1396]),o($VZ,[2,1469],{816:633,828:635,95:[1,634],395:[1,636]}),o($Vc3,[2,1787]),o($Vc3,$Vh1,{172:102,468:106,40:263,97:264,303:266,776:267,903:637,875:651,41:$Vu,54:$Vd3,64:$Vv,136:$Vi1,144:$Ve3,179:$Vj1,180:$Vk1,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,242:$Vw,254:$Vx,278:$Vj3,411:$Vy,412:$Vz,417:$VA,469:$VB,470:$VC,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,494:$VD,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($Vc3,[2,1783]),o($Vv3,[2,1609]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:657,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:658,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:659,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:660,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{89:$VP,874:661},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:662,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:664,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,763:$Vw3,770:$VK2,776:482,806:460,876:663,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486,1031:665,1033:666},o($Vx3,[2,1738]),o($Vx3,[2,1739],{885:668,89:$Vy3}),{89:$Vy3,885:670},o($Vx3,[2,1742]),o($Vx3,[2,1743]),o($Vx3,[2,1744]),o($Vx3,[2,1759]),o($Vz3,[2,1751],{138:[1,671]}),{89:[2,1942]},{89:[2,1943]},{89:[2,1944]},{89:[2,1945]},{89:[2,1946]},{89:[2,1947]},{89:[2,1948]},o($Vx3,[2,1965],{944:672,946:673,658:$VA3}),{658:$VA3,946:675},o($Vx3,[2,1928]),o($Vx3,[2,1929]),{138:$VU1,223:382,362:$VW1,475:$VX1,750:$V_1,802:676,894:$V$1,899:385,900:386},o($Vx3,[2,1761]),o($Vx3,[2,1762]),o($VB3,[2,1954]),o($VB3,[2,1955]),o($VB3,[2,1956]),{89:[1,677]},{89:[1,678]},{89:[1,679]},o($Vx3,[2,1773]),o($Vx3,[2,1774]),o($Vx3,[2,1775]),{89:[1,680]},{89:[1,681]},{89:[1,682]},o($Vx3,[2,1778]),o($Vx3,[2,1779]),{89:[2,2048]},{89:[2,2049]},{89:[2,2050]},{89:[2,2051]},{89:[2,2052]},{89:[2,2053]},{89:[2,2054]},{89:[2,2055]},{89:[2,2056]},{89:[2,2057]},{89:[2,2058]},{89:[2,2059]},{89:[2,2060]},{89:[2,2061]},o($Vr1,[2,1497]),o($Vm1,$Vn1,{927:273,826:683}),{41:[1,684]},o($VC3,$VD3,{47:685,100:686,626:$VD1}),{51:[1,687],53:[1,688]},{566:[1,689]},o($V2,[2,42]),{26:[1,690],63:[1,691]},{40:309,41:$Vu,60:692,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:693,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VL,[2,1264]),o($VL,[2,1265]),o($V2,[2,112]),o($VE3,[2,476]),o($VE3,[2,477]),o($VE3,[2,478]),o($VE3,[2,479]),o($VE3,[2,480]),o($VE3,[2,481]),o($VE3,[2,482]),o($V2,[2,114]),{97:696,179:$Vj1,180:$Vk1,182:694,183:695,303:266,776:267},o($V2,[2,115]),o($V2,[2,116]),o($VF3,[2,1388]),{691:[1,697]},{108:698,296:$VG3},o([51,101,109,136,344,345,348,361,459,463,503],[2,1378]),{97:700,179:$Vj1,180:$Vk1,303:266,776:267},o($V2,[2,145]),o($V2,[2,146],{51:[1,701],53:[1,702]}),o($V2,[2,149]),o([41,50,51,64,242,254,411,412,417,469,470,494],[2,1290]),o($V2,[2,120]),{214:703,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,241:$VI3,242:$VJ3,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:727,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,477:[1,728],479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{91:[1,729],95:[1,730]},o($V03,[2,1365]),{54:[1,731]},o($V2,[2,134]),{40:309,41:$Vu,60:537,64:$Vv,112:733,172:102,210:732,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:734,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,179],{138:[1,735]}),{144:[1,736]},o([459,463,626],$VX3,{173:737,174:738,177:739,86:$VY3}),{40:550,41:$Vu,64:$Vv,172:102,184:741,187:742,202:743,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VZ3,[2,603],{310:744,356:745,89:[1,746]}),o($V_3,[2,1358],{138:[1,747]}),{89:$V$3,317:748},{40:550,41:$Vu,64:$Vv,172:102,202:750,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,1286],{389:751,506:[1,752],692:[1,753]}),{89:$V$3,317:754},{40:550,41:$Vu,64:$Vv,172:102,202:755,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{46:756,51:$VV},o($V2,[2,680],{390:757,391:[1,758]}),o($V2,[2,682]),o($V2,[2,688]),o($V2,[2,2122]),o($V2,[2,2126]),o($V2,[2,2136]),o($V2,$V_,{46:230,148:759,51:$VV}),o($V2,[2,2146],{208:[1,760]}),o($V2,[2,2154],{142:[1,761]}),o($V2,[2,2172]),{41:$Vu,64:$Vv,172:762,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC},o($V2,[2,2182]),o($V2,[2,2187]),{179:$Vj1,303:763},o($VJ1,[2,1297]),o($VJ1,[2,1298]),o($VJ1,[2,1364]),{181:$V11,494:$V21,775:[1,764]},o($VJ1,[2,1319]),o($VJ1,[2,1320]),o($V2,[2,769]),{89:$VM1,448:765},{91:[1,766],95:$V04},o($V14,[2,1723],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($VY,$V41,{252:242,156:768,89:$V31}),o([51,276,415,446,447],$V41,{252:242,156:769,89:$V31}),o($VZ,[2,1480]),o($Vq,[2,1460]),o($V$,[2,1345],{797:770,138:$V$2}),o($V24,[2,1350]),{40:771,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,215]),o($V2,[2,216]),{40:772,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:773,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,360:$VG1,403:$VH1,407:774,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,751:$VI1},o($V34,[2,726]),o($V34,[2,727]),o($V34,[2,728]),o($V34,[2,729]),o([51,71,86,89,91,101,106,109,136,142,276,288,307,361,415,446,447,459,463,503,626,733],[2,1329]),{40:309,41:$Vu,60:775,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:776,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:777,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,360:$VG1,403:$VH1,407:778,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,751:$VI1},o($V2,[2,2091]),o($V13,[2,1757]),o($V13,[2,1758]),o($V23,[2,1767],{362:[1,779],750:[1,780]}),o($V23,[2,1769]),{362:[1,781]},o($V23,[2,1770]),o($V2,[2,696]),o($V44,[2,1532]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:783,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,852:782,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,874:144,908:784,920:141,921:142},o($V54,$V64,{915:785,142:$V74,752:$V84}),o($V42,[2,1841]),o($V42,[2,1843]),o($V42,[2,1844]),o($V42,[2,1845]),o($V42,[2,1846]),o($V42,[2,1848]),o($V42,[2,1849]),o($V42,[2,1850]),o($V42,[2,1851]),{89:[1,788]},o($V53,[2,1266]),o($V63,[2,1269]),o($V73,[2,1897]),{442:[1,789]},{442:[2,821]},{983:[1,790]},o($V2,$V33,{847:608,397:791,765:$V43}),{40:309,41:$Vu,60:439,64:$Vv,172:102,242:$Vw,254:$Vx,359:437,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,806:438,1025:792,1027:436},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,396:793,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,874:144,906:138,908:139,909:140,920:141,921:142},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:795,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486,1028:794},{40:309,41:$Vu,60:797,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,474:[1,796],494:$VD},o($VZ,[2,1470]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:443,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,474:$Vi2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,902:798,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($V44,$V33,{847:608,829:799,397:800,765:$V43}),{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,396:802,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,835:801,874:144,906:138,908:139,909:140,920:141,921:142},o($Vc3,[2,1782]),o($V94,[2,1780],{872:803,224:[1,804]}),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:805,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:806,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:807,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:808,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{208:$Vf3,497:[1,810],594:$Vp3,595:[1,809],605:$Vr3,680:$Vt3,694:$Vu3,875:811},{89:[1,812]},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:813,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:814,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:815,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:816,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:817,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:818,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vv3,[2,1636]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:819,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:820,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:821,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:822,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:823,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Va4,[2,1610],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Va4,[2,1611],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Va4,[2,1612],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Vb4,[2,1613],{875:651}),o($Vv3,[2,1619]),{54:$Vd3,91:[1,824],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,875:651},o($Vv3,[2,1638]),{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,763:$Vw3,875:651,876:825,1031:665,1033:666},{555:[1,827],557:[1,826],763:$Vw3,1033:828},o($Vc4,[2,2256]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:829,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vx3,[2,1740]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,830],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:580,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,450:831,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vx3,[2,1741]),{40:309,41:$Vu,60:797,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,474:[1,832],494:$VD},o($Vx3,[2,1926]),o($Vx3,[2,1966]),{40:833,41:$Vu,64:$Vv,89:[1,835],172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,964:834},o($Vx3,[2,1927]),{41:$Vu,64:$Vv,172:836,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,837],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:580,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,450:838,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,840],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:839,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,842],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:841,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vd4,$VQ,{421:845,91:[1,844],413:$VR,474:[1,843],550:$VS}),o($Vd4,$VQ,{421:846,91:[1,847],413:$VR,550:$VS}),o([41,64,73,89,91,138,146,179,180,224,236,241,242,254,362,392,411,412,417,469,470,473,475,479,483,493,494,508,509,524,566,569,570,586,592,604,631,634,641,719,720,721,728,745,750,751,754,755,758,759,760,770,957],$VQ,{421:848,413:$VR,550:$VS}),{91:[1,849]},{42:850,360:$VM2,751:$VN2},o($Ve4,[2,166],{48:851,132:852,133:853,46:854,51:$VV}),o([51,101,109,136,361,459,463,503],[2,1377]),{52:855,55:856,138:$VU1,179:$Vj1,180:$Vk1,223:473,303:481,362:$VW1,570:$Vs2,745:$VD2,750:$V_1,776:482,895:459,897:474,899:385,900:386,901:483},{54:[1,857]},o([41,50,51,64,242,254,411,412,417,459,463,469,470,494],[2,1293]),{61:858,64:[1,862],85:[1,859],86:[1,860],87:[1,861],88:[1,863]},{64:[1,864]},{67:865,89:[1,866]},o($V2,[2,46]),{91:[1,867],95:[1,868]},o($V03,[2,260]),{54:[1,869]},{54:[1,870]},o($V2,[2,117]),o($Vf4,[2,486],{297:871,301:[1,872]}),o([101,136,307,361,459,463],[2,1385]),{52:873,55:856,138:$VU1,179:$Vj1,180:$Vk1,223:473,303:481,362:$VW1,570:$Vs2,745:$VD2,750:$V_1,776:482,895:459,897:474,899:385,900:386,901:483},{54:[1,874]},o($Vg4,[2,309],{215:875,218:876,219:877,221:878,177:885,64:$Vh4,85:$Vi4,86:$VY3,87:$Vj4,88:$Vk4,146:$Vl4,224:$Vm4,253:$Vn4}),o($Vo4,[2,327]),o($Vo4,[2,328]),o($Vo4,[2,329]),o($Vo4,[2,330]),o($Vo4,[2,331]),o($Vo4,[2,332]),o($Vo4,[2,333]),o($Vp4,[2,1433]),o($Vp4,[2,1434]),o($Vp4,[2,1435]),o($Vp4,[2,1436]),o($Vp4,[2,1437]),o($Vp4,[2,1438]),o($Vp4,[2,1439]),o($Vp4,[2,1440]),o($Vp4,[2,1441]),o($Vp4,[2,1448],{813:887,89:[1,888]}),o($Vp4,$Vq4,{814:889,89:$Vr4}),o($Vp4,$Vq4,{814:891,89:$Vr4}),o($Vp4,[2,1445]),{237:[1,892]},{237:[1,893]},{237:[1,894]},{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,477:[1,895],480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,875:651},o($VY2,[2,1426]),o([26,44,51,73,109,111,276,415,446,447,459,463,503,626],[2,1302]),{40:309,41:$Vu,60:541,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,799:896},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:897,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{91:[1,898],95:[1,899]},o($V03,[2,295]),o($V2,[2,177]),{40:900,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{97:902,145:901,146:[1,903],179:$Vj1,180:$Vk1,303:266,776:267},o($V2,[2,242]),o($V2,$VD3,{100:686,47:904,626:$VD1}),o([91,95,101,106,109,136,238,288,307,361,459,463,503,626],[2,252]),{97:905,179:$Vj1,180:$Vk1,303:266,776:267},o($V2,[2,614],{185:906,361:[1,907]}),o($Vs4,[2,383],{188:908,255:909,51:[1,911],256:[1,910]}),o($Vt4,[2,282],{203:912,118:913,89:$VZ2,206:[1,914],208:[1,915]}),{86:$VY3,136:$VX3,174:916,177:739},o($VZ3,[2,604]),{40:309,41:$Vu,60:439,64:$Vv,172:102,242:$Vw,254:$Vx,357:917,359:918,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,806:438},{40:919,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{318:920,343:$Vu4},{91:[1,922],226:924,339:923,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},{89:$V$3,317:925},o($V2,[2,640]),o($V2,[2,1287]),o($V2,[2,1288]),o($V2,[2,647]),{89:$V$3,317:926},o($V2,[2,663]),o($V2,[2,674]),o($V2,[2,681]),o($V2,[2,2139]),{97:927,179:$Vj1,180:$Vk1,303:266,776:267},{129:[1,930],143:[1,928],411:[1,929],412:[1,931]},o($V2,[2,2177]),o($V2,[2,2188]),o($VJ1,[2,1323]),o($V_2,[2,801]),o($V_2,[2,806]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:932,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($VY,[2,782]),o($VY,$V_,{46:230,148:933,51:$VV}),o($V24,[2,1351]),o($V24,[2,1356]),o($V2,[2,710]),o($V2,$Vv4,{406:934,307:$Vw4}),{40:936,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V03,[2,1333]),o($V2,[2,747]),o($V2,[2,748]),{40:937,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V23,[2,1768]),{362:[1,938]},o($V23,[2,1771]),o($V44,[2,1533]),o($V44,[2,1607],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($V54,$V64,{915:939,142:$V74,752:$V84}),o($V54,[2,1818]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:940,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{89:[1,941]},{362:[1,942]},{129:[1,943]},o([51,86,101,106,109,136,256,269,288,307,344,345,348,361,442,445,459,463,503,626],[2,1999]),o($V2,[2,2190]),o($V93,[2,2205]),o($V83,[2,2218]),o($V93,[2,2210]),o($V93,[2,2215],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($Va3,[2,1404]),o($Vb3,[2,1407]),o($Vc3,[2,1788]),o($VZ,[2,1509]),o($Vx4,[2,1536],{837:944,848:945,403:[1,946]}),o([91,361,403,459,463,589,622,655,747,765,871],[2,1516],{95:[1,947]}),o($Vy4,[2,1802]),{146:[1,948],550:[1,952],570:[1,950],745:[1,949],873:[1,951]},o($V94,[2,1781]),o($Vz4,[2,1621],{875:651,144:$Ve3,208:$Vf3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Vz4,[2,1622],{875:651,144:$Ve3,208:$Vf3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Vz4,[2,1623],{875:651,144:$Ve3,208:$Vf3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Vz4,[2,1624],{875:651,144:$Ve3,208:$Vf3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),{89:[1,953]},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:954,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vv3,[2,1637]),o($Vm1,$Vn1,{172:102,468:106,927:273,40:309,899:385,900:386,60:439,222:445,55:453,884:454,886:455,887:456,888:458,895:459,806:460,943:468,945:469,947:470,948:471,223:473,897:474,958:475,959:476,960:477,303:481,776:482,901:483,985:486,274:580,826:955,450:956,41:$Vu,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,179:$Vj1,180:$Vk1,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,957:$VL2}),o([41,50,64,91,95,136,179,180,242,254,361,395,403,411,412,417,459,463,469,470,477,480,481,488,494,497,527,547,555,557,582,589,598,606,620,622,646,654,655,657,693,698,707,734,747,763,765,871],[2,1630],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($VA4,[2,1631],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($VA4,[2,1632],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Vb4,[2,1633],{875:651,144:$Ve3,208:$Vf3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Vb4,[2,1634],{875:651,144:$Ve3,208:$Vf3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Vb4,[2,1635],{875:651,144:$Ve3,208:$Vf3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),o($Vb4,[2,2226],{875:651}),o($Vb4,[2,2227],{875:651}),o($Vb4,[2,2228],{875:651}),o($Vb4,[2,2229],{875:651}),o($Vb4,[2,2230],{875:651}),o($Vv3,[2,1620]),o($Vv3,[2,1639]),o($Vv3,[2,2241]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:957,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vc4,[2,2257]),{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,734:[1,958],875:651},o($Vx3,[2,1949]),{91:[1,959],95:$V04},o($Vz3,[2,1752]),o($Vx3,[2,1968]),o($Vx3,[2,1969]),o($VB4,[2,1976],{966:960,970:961,51:[1,962]}),o($Vx3,[2,1754]),{658:[2,1960]},{91:[1,963],95:$V04},{54:$Vd3,136:[1,964],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,875:651},o($Vx3,[2,2026]),{54:$Vd3,95:[1,967],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,395:[1,966],474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,875:651,986:965},o($Vx3,[2,2063]),{91:[1,968]},o($VB3,[2,2038]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:580,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,450:969,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:970,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($VB3,[2,2079]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,971],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:580,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,450:972,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vr1,[2,1502]),{40:973,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,$VC4,{49:974,104:975,109:$VD4,503:$VC1}),o($Ve4,[2,167],{46:854,133:977,51:$VV}),o($VC3,[2,168]),o($VC3,$VD3,{100:686,47:978,626:$VD1}),o($V2,[2,40]),{54:$VE4,237:$VF4,238:$VG4,278:$VH4,785:979},{55:984,138:$VU1,179:$Vj1,180:$Vk1,223:473,303:481,362:$VW1,570:$Vs2,745:$VD2,750:$V_1,776:482,895:459,897:474,899:385,900:386,901:483},{41:$Vu,62:985,64:$Vv,97:378,138:$VU1,146:$VV1,172:376,179:$Vj1,180:$Vk1,223:382,242:$Vw,254:$Vx,303:266,362:$VW1,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,475:$VX1,570:$VY1,745:$VZ1,750:$V_1,776:267,802:377,894:$V$1,899:385,900:386},o($VI4,[2,95]),o($VI4,[2,96]),o($VI4,[2,97]),o($VI4,[2,98]),o($VI4,[2,99]),o($V2,[2,44]),o($V2,[2,45]),{90:986,94:987,97:988,179:$Vj1,180:$Vk1,303:266,776:267},o($VJ4,[2,259]),{97:696,179:$Vj1,180:$Vk1,183:989,303:266,776:267},{55:990,138:$VU1,179:$Vj1,180:$Vk1,223:473,303:481,362:$VW1,570:$Vs2,745:$VD2,750:$V_1,776:482,895:459,897:474,899:385,900:386,901:483},{138:$VU1,223:382,362:$VW1,475:$VX1,750:$V_1,802:991,894:$V$1,899:385,900:386},o($VK4,[2,492],{298:992,305:[1,993]}),{302:[1,994]},o($V2,[2,147]),{55:995,138:$VU1,179:$Vj1,180:$Vk1,223:473,303:481,362:$VW1,570:$Vs2,745:$VD2,750:$V_1,776:482,895:459,897:474,899:385,900:386,901:483},o($Vg4,[2,305]),o($Vg4,[2,310],{221:878,177:885,219:996,64:$Vh4,85:$Vi4,86:$VY3,87:$Vj4,88:$Vk4,146:$Vl4,224:$Vm4,253:$Vn4}),o($VL4,[2,311]),o($VL4,[2,317]),{41:$Vu,64:$Vv,172:997,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC},{41:$Vu,64:$Vv,172:998,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:999,223:473,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,509:$Vo2,524:$Vp2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{138:$VU1,223:1000,362:$VW1,750:$V_1,899:385,900:386},{146:[1,1001]},o($VL4,[2,323]),o($VL4,[2,324]),{254:[1,1002]},o($Vp4,[2,1442]),{362:[1,1003]},o($Vp4,[2,1443]),{362:[1,1004]},o($Vp4,[2,1444]),{214:1005,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,238:[1,1006],241:$VI3,242:$VJ3,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},{226:1007,238:[1,1008],498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},{40:1012,41:$Vu,64:$Vv,172:102,238:[1,1010],242:$Vw,243:1009,245:1011,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VY2,[2,1425]),o($V03,[2,1366]),o($V03,[2,1371],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($Vt4,[2,290]),{40:309,41:$Vu,60:537,64:$Vv,112:1014,172:102,211:1013,221:1015,242:$Vw,253:$Vn4,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,180]),o($V2,[2,193]),o($V2,[2,199]),o($V2,[2,200]),o($V2,[2,248]),o([64,85,86,87,88,91,95,101,106,109,136,146,224,238,253,288,307,361,459,463,503,626],[2,253]),o($V2,[2,263]),{362:[1,1016]},o($VM4,[2,419],{189:1017,268:1018,269:[1,1019]}),o($Vs4,[2,384]),{257:[1,1020]},{257:[1,1021]},o($Vt4,[2,279]),o($Vt4,[2,283]),{207:1022,590:$V92},{40:101,41:$Vu,64:$Vv,130:1023,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{136:[1,1024]},{91:[1,1025],95:[1,1026]},o($V03,$VX3,{177:739,174:1027,86:$VY3}),o($V_3,[2,1359]),{100:1028,626:$VD1},{226:1029,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},o($VN4,[2,564]),{91:[2,574],95:[1,1031],340:1030,342:[1,1032]},o($VO4,[2,568]),{318:1033,343:$Vu4},o($V2,[2,648]),o($V2,[2,2147]),{40:1034,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V2,[2,2156]),{40:101,41:$Vu,64:$Vv,130:1035,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{40:1036,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($V14,[2,1724],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($VY,[2,788]),o($V2,[2,711]),{402:[1,1037]},o($V2,$Vv4,{406:1038,307:$Vw4}),o($V2,[2,749]),o($V23,[2,1772]),o($V54,[2,1819]),o($V54,[2,1870],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),{40:1040,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,919:1039},{91:[1,1041]},{40:101,41:$Vu,64:$Vv,130:1042,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($VP4,[2,2020],{838:1043,849:1044,589:[1,1045]}),o($Vx4,[2,1537]),{257:[1,1046]},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,396:1047,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,874:144,906:138,908:139,909:140,920:141,921:142},o($Vv3,[2,1614]),o($Vv3,[2,1615]),o($Vv3,[2,1616]),o($Vv3,[2,1617]),{395:[1,1048]},o($Vm1,$Vn1,{172:102,468:106,927:273,40:309,899:385,900:386,60:439,222:445,55:453,884:454,886:455,887:456,888:458,895:459,806:460,943:468,945:469,947:470,948:471,223:473,897:474,958:475,959:476,960:477,303:481,776:482,901:483,985:486,274:580,826:1049,450:1050,41:$Vu,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,179:$Vj1,180:$Vk1,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,957:$VL2}),o($Va4,[2,1629],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,485:$Vn3,594:$Vp3,595:$Vq3,605:$Vr3,680:$Vt3,694:$Vu3}),{91:[1,1051]},{91:[1,1052],95:$V04},{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,557:[1,1053],594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,875:651},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1054,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vx3,[2,1950]),{91:[2,1982],655:$VQ4,850:1056,967:1055},o($VB4,[2,1977]),{257:[1,1058]},{658:[2,1961]},{226:1059,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1060,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vd4,[2,2076]),o($Vd4,[2,2077]),o($VB3,[2,2037]),{91:[1,1061],95:$V04},{54:$Vd3,91:[1,1062],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,875:651},o($VB3,[2,2043]),{91:[1,1063],95:$V04},o($V2,[2,34]),o($V2,[2,39]),o($VF3,$VW2,{801:527,105:1064,307:$VX2}),o($VF3,[2,1382]),o($VC3,[2,169]),o($VC3,[2,176]),{276:[1,1065]},o($VR4,[2,1311]),o($VR4,[2,1312]),o($VR4,[2,1313]),o($VR4,[2,1314]),o($V2,[2,41]),o($V2,[2,43]),{91:[1,1066],95:[1,1067]},o($V03,[2,104]),{54:[1,1068]},o($V03,[2,261]),o($V03,[2,262]),o($VF3,[2,1389]),o($VK4,[2,483]),{302:[1,1069]},{257:[1,1070]},o($V2,[2,148]),o($VL4,[2,312]),o($VL4,[2,318]),o($VL4,[2,319]),o($VL4,[2,320]),o($VL4,[2,321]),o($VL4,[2,322]),o([64,85,86,87,88,89,91,95,146,224,253,459,463],[2,381]),{91:[1,1071],95:[1,1072]},{91:[1,1073]},{238:[1,1074]},o($Vo4,[2,338]),{95:[1,1075]},o($Vo4,[2,342]),{95:[1,1077],238:[1,1076]},o($Vo4,[2,348]),o($VS4,[2,350]),{248:[1,1078]},{91:[1,1079]},o($V03,[2,296]),{89:$V31,252:1080},o($V2,[2,615]),o([101,106,109,136,288,307,361,459,463,503,626],$VX3,{177:739,174:1081,86:$VY3}),o($VM4,[2,420]),{257:[1,1082]},{89:[1,1084],118:1083},{50:$VT4,258:1085,259:1086,263:1087,265:$VU4},o($Vt4,[2,284]),o($Vt4,[2,285]),{137:1090,307:$Vc,371:228,415:$Vh,430:25},o($VZ3,[2,605]),{40:309,41:$Vu,60:439,64:$Vv,172:102,242:$Vw,254:$Vx,359:1091,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD,806:438},o($V03,[2,607]),{319:1092,344:[1,1093]},{626:[2,576]},{91:[1,1094]},{226:1095,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},{91:[2,575]},{100:1096,626:$VD1},o($V2,[2,2155]),o($V2,[2,2157]),o($V2,[2,2158]),{417:[1,1097]},o($V2,[2,712]),{91:[1,1098],95:[1,1099]},o($V03,[2,1872]),o($V52,[2,1887],{690:[1,1100]}),o($V2,$V_,{46:230,148:1101,51:$VV}),o($VV4,[2,1565],{839:1102,850:1103,655:$VQ4}),o($VP4,[2,2021]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1104,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1106,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,854:1105,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vy4,[2,1803]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1107,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{91:[1,1108]},{91:[1,1109],95:$V04},o($Vv3,[2,1627]),o($Vv3,[2,1628]),o($Vv3,[2,2242]),o($Vc4,[2,2263],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),{91:[1,1110]},{50:[1,1115],91:[2,1987],698:[1,1114],971:1111,973:1112,974:1113},{257:[1,1116]},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:580,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,450:1117,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{91:[1,1118]},{54:$Vd3,91:[1,1119],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,875:651},o($VB3,[2,2039]),o($VB3,[2,2078]),o($VB3,[2,2044]),o($VF3,[2,1381]),{54:$VE4,237:$VF4,238:$VG4,278:$VH4,785:1120},o($V2,[2,102]),{94:1121,97:988,179:$Vj1,180:$Vk1,303:266,776:267},{97:1122,179:$Vj1,180:$Vk1,303:266,776:267},{257:[1,1123]},{179:$Vj1,303:1124},o($Vp4,[2,1449]),{362:[1,1125]},o($Vp4,[2,1447]),o($Vo4,[2,337]),{214:1126,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,241:$VI3,242:$VJ3,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},o($Vo4,[2,347]),{40:1012,41:$Vu,64:$Vv,172:102,242:$Vw,245:1127,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{214:1128,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,241:$VI3,242:$VJ3,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},o($Vt4,[2,291]),{91:[2,377]},o($VK4,[2,465],{190:1129,286:1130,106:[1,1131]}),{89:$V31,252:1132},o($Vs4,[2,385]),{40:309,41:$Vu,60:1134,64:$Vv,112:733,172:102,210:732,242:$Vw,254:$Vx,260:1133,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($Vs4,[2,386],{95:[1,1135]}),o($Vs4,[2,388]),o($VW4,[2,403]),{89:$V31,252:1136},{71:$V41,89:$V31,156:1137,252:242},o($V2,[2,509]),o($V03,$VX3,{177:739,174:1138,86:$VY3}),o($V2,[2,522]),{54:[1,1139]},o($VN4,[2,565]),o($VO4,[2,569]),{323:1140,345:[1,1141],348:[2,579]},o($V2,[2,744]),o($V54,[2,1871]),{40:1142,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},{89:[1,1143]},o($V2,[2,809]),o($VX4,[2,1597],{840:1144,851:1145,622:[1,1146]}),o($VV4,[2,1566]),o($VP4,[2,2022],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($Vx4,[2,1538],{95:[1,1147]}),o($VY4,[2,1553],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($Vb4,[2,1618],{875:651}),o($Vv3,[2,1625]),o($Vv3,[2,1626]),o($Vx3,[2,1971]),{91:[2,1983]},{91:[2,1988]},{497:[1,1148],977:[1,1149]},o($VZ4,[2,2005]),o($VZ4,[2,2006]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1152,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,860:1150,862:1151,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($VB4,[2,1978],{95:$V04}),o($Vx3,[2,2025]),o($Vx3,[2,2062]),{55:1153,138:$VU1,179:$Vj1,180:$Vk1,223:473,303:481,362:$VW1,570:$Vs2,745:$VD2,750:$V_1,776:482,895:459,897:474,899:385,900:386,901:483},o($V03,[2,105]),o($V03,[2,110]),{179:$Vj1,303:1154},o($Vf4,[2,487],{304:[1,1155]}),{91:[1,1156]},{238:[1,1157]},o($VS4,[2,351]),o($VS4,$VX3,{177:739,174:1158,86:$VY3}),o($VJ4,[2,496],{191:1159,306:1160,307:[1,1161]}),o($VK4,[2,466]),{107:[1,1162]},o($VM4,[2,421]),{91:[1,1163]},{91:$V_4,95:$V$4,214:703,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,241:$VI3,242:$VJ3,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},{50:$VT4,259:1165,263:1166,265:$VU4},{89:[1,1168],266:1167},{71:[1,1169]},o($V03,[2,608]),{179:$Vj1,303:1170},{324:1171,348:[1,1172]},{54:[1,1173]},o($V03,[2,1873]),{362:[1,1174]},o($VZ,[2,1602],{841:1175,870:1176,871:[1,1177]}),o($VX4,[2,1598]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1178,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1179,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($V05,$V15,{975:1180,984:1181,362:$V25,529:$V35,977:$V45}),o($V05,$V15,{984:1181,975:1185,362:$V25,529:$V35,977:$V45}),o([50,91,361,459,463,622,698,747,871],[2,1567],{95:[1,1186]}),o($V55,[2,1570]),o($V65,[2,1581],{875:651,285:1187,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,488:[1,1188],497:$Vo3,547:[1,1189],594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($V2,[2,1304]),o($VK4,[2,493]),{257:[1,1190]},o($Vp4,[2,1450]),o($Vo4,[2,341]),o($VS4,[2,357]),o($VE3,[2,471],{192:1191,287:1192,288:[1,1193]}),o($VJ4,[2,497]),{103:[1,1194]},{108:1195,296:$VG3},o($Vs4,[2,389]),{40:309,41:$Vu,60:1197,64:$Vv,172:102,242:$Vw,254:$Vx,260:1196,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,494:$VD},o($Vs4,[2,387]),o($VW4,[2,404]),o($Vs4,[2,413]),{51:$V75,53:$V85,270:1198,272:1199},{138:$VU1,223:1202,362:$VW1,750:$V_1,899:385,900:386},o($V2,[2,578]),{325:1203,349:[1,1204]},{54:[1,1205]},{179:$Vj1,303:1207,346:1206},{91:[1,1208]},o($VZ,[2,1519]),o($VZ,[2,1603]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1209,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($VX4,[2,1599],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($VY4,[2,1554],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),{91:$V95,480:$Va5,976:1210},{670:[1,1212]},{106:[1,1213]},o($Vb5,[2,2018]),o($Vb5,[2,2019]),{91:$V95,480:$Va5,976:1214},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1152,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,862:1215,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($V55,[2,1584],{864:1216,646:[1,1217]}),o($V65,[2,1582]),o($V65,[2,1583]),{179:$Vj1,303:1218},o([101,109,136,361,459,463,503],$VD3,{100:686,47:1219,626:$VD1}),o($VE3,[2,472]),{136:[1,1220]},{89:$VV2,102:1221},o($VK4,[2,467]),{91:[2,390]},{91:$V_4,95:$V$4},{91:[1,1222],95:[1,1223]},o($V03,[2,427]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1224,276:[1,1225],303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{54:[1,1226]},o($VW4,[2,408]),o($Vc5,[2,586],{326:1227,350:[1,1228]}),{54:[1,1229]},{179:$Vj1,303:1207,346:1230},{348:[2,580]},o([348,349,350,351,352,353,354,459,463],[2,601]),o($V52,[2,1888]),o($VZ,[2,1604],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),{91:[2,1989]},{362:$V25,529:[1,1231],977:$V45,984:1232},o($V05,[2,2008]),o($V05,[2,2009]),{91:[2,1990]},o($V55,[2,1571]),o($V55,[2,1577]),{574:[1,1233],617:[1,1234]},o($Vf4,[2,488]),o($VF3,$VC4,{104:975,49:1235,109:$VD4,503:$VC1}),{99:1236,289:$VO2,290:$VP2,291:$VQ2,292:$VR2,293:$VS2,294:$VT2,295:$VU2},o($VJ4,[2,498]),o($Vs4,[2,424]),{51:$V75,53:$V85,272:1237},{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:[1,1239],238:$Vi3,275:1238,278:[1,1240],474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3,875:651},{237:$Vd5,275:1241,278:$Ve5},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1244,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vf5,[2,589],{327:1245,351:[1,1246]}),{54:[1,1247]},{179:$Vj1,303:1207,346:1248},{349:[2,582]},{106:[1,1249]},{576:[1,1250]},o($V55,[2,1585]),o($V55,[2,1586]),o($Vg5,[2,501],{193:1251,308:1252,101:[1,1253]}),o($VE3,[2,473]),o($V03,[2,428]),{276:[1,1254]},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:806,276:$Vh5,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:808,276:$Vi5,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1255,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($Vd4,$Vh5),o($Vd4,$Vi5),o($V03,[2,437],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($Vj5,[2,592],{328:1256,352:[1,1257]}),{54:[1,1258]},{179:$Vj1,303:1207,346:1259},o([350,351,352,353,354,459,463],[2,584]),{91:[2,2013]},{91:[2,2014]},o($Vk5,[2,504],{194:1260,136:[1,1261]}),o($Vg5,[2,502]),{89:$VV2,102:1262},o($V03,[2,436],{275:1263,237:$Vd5,278:$Ve5}),o($V03,[2,435],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($Vl5,[2,595],{329:1264,353:[1,1265]}),{54:[1,1266]},{179:$Vj1,303:1207,346:1267},o($Vc5,[2,587]),o($Vk5,[2,267]),o($Vm1,[2,508],{309:1268}),o($Vg5,[2,503]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,274:1269,303:481,362:$VW1,392:$Vg2,411:$Vy,412:$Vz,417:$VA,468:106,469:$VB,470:$VC,473:$Vh2,475:$Vj2,479:$Vk2,483:$Vl2,493:$Vm2,494:$VD,508:$Vn2,509:$Vo2,524:$Vp2,566:$Vq2,569:$Vr2,570:$Vs2,586:$Vt2,592:$Vu2,604:$Vv2,631:$Vw2,634:$Vx2,641:$Vy2,719:$Vz2,720:$VA2,721:$VB2,728:$VC2,745:$VD2,750:$V_1,751:$VE2,754:$VF2,755:$VG2,758:$VH2,759:$VI2,760:$VJ2,770:$VK2,776:482,806:460,884:454,886:455,887:456,888:458,895:459,897:474,899:385,900:386,901:483,943:468,945:469,947:470,948:471,957:$VL2,958:475,959:476,960:477,985:486},o($V2,[2,598],{330:1270,354:[1,1271]}),{54:[1,1272]},{179:$Vj1,303:1207,346:1273},o($Vf5,[2,590]),{137:1274,307:$Vc,371:228,415:$Vh,430:25},o($V03,[2,434],{875:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,278:$Vj3,474:$Vk3,475:$Vl3,480:$Vm3,485:$Vn3,497:$Vo3,594:$Vp3,595:$Vq3,605:$Vr3,654:$Vs3,680:$Vt3,694:$Vu3}),o($V2,[2,536]),{226:1275,498:$VK3,500:$VL3,510:$VM3,543:$VN3,551:$VO3,575:$VP3,601:$VQ3,675:$VR3,711:$VS3,723:$VT3,735:$VU3,738:$VV3,757:$VW3},{179:$Vj1,303:1207,346:1276},o($Vj5,[2,593]),o($Vk5,[2,505]),o($V2,[2,599]),o($Vl5,[2,596])], -defaultActions: {86:[2,822],119:[2,733],120:[2,734],121:[2,735],122:[2,736],123:[2,737],124:[2,738],137:[2,706],148:[2,2200],149:[2,2202],176:[2,165],187:[2,1279],211:[2,1260],212:[2,1277],213:[2,1249],214:[2,1250],217:[2,798],218:[2,799],241:[2,739],276:[2,1400],303:[2,164],424:[2,1900],425:[2,1902],426:[2,1904],427:[2,1906],428:[2,1908],429:[2,1910],430:[2,1912],431:[2,1914],437:[2,2214],461:[2,1942],462:[2,1943],463:[2,1944],464:[2,1945],465:[2,1946],466:[2,1947],467:[2,1948],489:[2,2048],490:[2,2049],491:[2,2050],492:[2,2051],493:[2,2052],494:[2,2053],495:[2,2054],496:[2,2055],497:[2,2056],498:[2,2057],499:[2,2058],500:[2,2059],501:[2,2060],502:[2,2061],626:[2,821],837:[2,1960],963:[2,1961],1029:[2,576],1032:[2,575],1080:[2,377],1111:[2,1983],1112:[2,1988],1196:[2,390],1206:[2,580],1210:[2,1989],1214:[2,1990],1230:[2,582],1249:[2,2013],1250:[2,2014]}, -parseError: function parseError (str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse (input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - - -SqlParseSupport.initSyntaxParser(parser);/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex () { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState () { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState (condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true,"flex":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0: /* skip whitespace */ -break; -case 1: /* skip comments */ -break; -case 2: /* skip comments */ -break; -case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 27; -break; -case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 772; -break; -case 5: return 44; -break; -case 6: return 322; -break; -case 7: return 413; -break; -case 8: return 478; -break; -case 9: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 38; -break; -case 10: return 479; -break; -case 11: return 480; -break; -case 12: return 481; -break; -case 13: return 482; -break; -case 14: return 484; -break; -case 15: return 486; -break; -case 16: return 487; -break; -case 17: return 136; -break; -case 18: return 488; -break; -case 19: return 489; -break; -case 20: return 490; -break; -case 21: return 491; -break; -case 22: return 492; -break; -case 23: return 151; -break; -case 24: return 289; -break; -case 25: return 495; -break; -case 26: return 496; -break; -case 27: return 497; -break; -case 28: return 498; -break; -case 29: return 499; -break; -case 30: return 85; -break; -case 31: return 500; -break; -case 32: return 501; -break; -case 33: return 257; -break; -case 34: return 503; -break; -case 35: return 504; -break; -case 36: return 505; -break; -case 37: return 506; -break; -case 38: return 507; -break; -case 39: return 508; -break; -case 40: return 111; -break; -case 41: return 510; -break; -case 42: return 511; -break; -case 43: return 512; -break; -case 44: return 351; -break; -case 45: return 513; -break; -case 46: return 514; -break; -case 47: return 65; -break; -case 48: return 117; -break; -case 49: parser.determineCase(yy_.yytext); return 86; -break; -case 50: return 515; -break; -case 51: return 87; -break; -case 52: parser.determineCase(yy_.yytext); return 155; -break; -case 53: return 516; -break; -case 54: return 517; -break; -case 55: return 518; -break; -case 56: return 519; -break; -case 57: return 520; -break; -case 58: return 521; -break; -case 59: return 522; -break; -case 60: return 523; -break; -case 61: return 525; -break; -case 62: return 526; -break; -case 63: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('CREATE', yy_.yylloc, yy.lexer.upcomingInput()); return 170; -break; -case 64: return 527; -break; -case 65: return 528; -break; -case 66: return 529; -break; -case 67: return 530; -break; -case 68: return 531; -break; -case 69: return 532; -break; -case 70: return 533; -break; -case 71: return 534; -break; -case 72: return 535; -break; -case 73: return 536; -break; -case 74: return 537; -break; -case 75: return 538; -break; -case 76: return 453; -break; -case 77: return 143; -break; -case 78: return 539; -break; -case 79: return 540; -break; -case 80: return 541; -break; -case 81: return 542; -break; -case 82: return 543; -break; -case 83: return 544; -break; -case 84: return 545; -break; -case 85: return 393; -break; -case 86: return 296; -break; -case 87: return 546; -break; -case 88: return 547; -break; -case 89: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DESCRIBE', yy_.yylloc); return 815; -break; -case 90: return 548; -break; -case 91: return 549; -break; -case 92: return 550; -break; -case 93: return 485; -break; -case 94: return 551; -break; -case 95: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 63; -break; -case 96: return 552; -break; -case 97: return 553; -break; -case 98: return 554; -break; -case 99: return 555; -break; -case 100: return 556; -break; -case 101: return 88; -break; -case 102: return 557; -break; -case 103: return 558; -break; -case 104: return 559; -break; -case 105: return 560; -break; -case 106: return 561; -break; -case 107: return 304; -break; -case 108: return 562; -break; -case 109: return 563; -break; -case 110: return 564; -break; -case 111: return 565; -break; -case 112: parser.yy.correlatedSubQuery = true; return 566; -break; -case 113: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('EXPLAIN', yy_.yylloc); return 471; -break; -case 114: return 567; -break; -case 115: return 568; -break; -case 116: return 570; -break; -case 117: return 571; -break; -case 118: return 301; -break; -case 119: return 98; -break; -case 120: return 572; -break; -case 121: return 573; -break; -case 122: return 353; -break; -case 123: return 574; -break; -case 124: return 575; -break; -case 125: return 576; -break; -case 126: return 577; -break; -case 127: return 578; -break; -case 128: return 107; -break; -case 129: return 579; -break; -case 130: return 580; -break; -case 131: return 581; -break; -case 132: parser.determineCase(yy_.yytext); return 395; -break; -case 133: return 582; -break; -case 134: return 316; -break; -case 135: return 149; -break; -case 136: return 583; -break; -case 137: return 584; -break; -case 138: return 585; -break; -case 139: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('GRANT', yy_.yylloc); return 402; -break; -case 140: return 403; -break; -case 141: return 587; -break; -case 142: return 588; -break; -case 143: return 265; -break; -case 144: return 589; -break; -case 145: return 591; -break; -case 146: return 592; -break; -case 147: return 593; -break; -case 148: return 594; -break; -case 149: return 595; -break; -case 150: return 158; -break; -case 151: return 596; -break; -case 152: return 345; -break; -case 153: return 597; -break; -case 154: return 598; -break; -case 155: return 599; -break; -case 156: this.begin('hdfs'); return 454; -break; -case 157: return 600; -break; -case 158: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INSERT', yy_.yylloc); return 414; -break; -case 159: return 601; -break; -case 160: return 354; -break; -case 161: return 602; -break; -case 162: return 603; -break; -case 163: return 604; -break; -case 164: return 442; -break; -case 165: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INVALIDATE', yy_.yylloc, yy.lexer.upcomingInput()); return 153; -break; -case 166: return 605; -break; -case 167: return 144; -break; -case 168: return 606; -break; -case 169: return 607; -break; -case 170: return 608; -break; -case 171: return 609; -break; -case 172: return 610; -break; -case 173: return 611; -break; -case 174: return 612; -break; -case 175: return 613; -break; -case 176: return 614; -break; -case 177: return 615; -break; -case 178: return 254; -break; -case 179: return 290; -break; -case 180: return 616; -break; -case 181: return 617; -break; -case 182: return 618; -break; -case 183: return 619; -break; -case 184: return 620; -break; -case 185: return 208; -break; -case 186: return 621; -break; -case 187: return 622; -break; -case 188: return 361; -break; -case 189: return 305; -break; -case 190: return 623; -break; -case 191: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('LOAD', yy_.yylloc, yy.lexer.upcomingInput()); return 452; -break; -case 192: return 624; -break; -case 193: return 625; -break; -case 194: this.begin('hdfs'); return 626; -break; -case 195: return 627; -break; -case 196: return 628; -break; -case 197: return 629; -break; -case 198: return 630; -break; -case 199: return 632; -break; -case 200: return 349; -break; -case 201: return 154; -break; -case 202: return 633; -break; -case 203: return 635; -break; -case 204: return 636; -break; -case 205: return 637; -break; -case 206: return 638; -break; -case 207: return 639; -break; -case 208: return 640; -break; -case 209: return 642; -break; -case 210: return 643; -break; -case 211: return 644; -break; -case 212: return 224; -break; -case 213: return 645; -break; -case 214: return 146; -break; -case 215: return 646; -break; -case 216: return 647; -break; -case 217: return 648; -break; -case 218: return 649; -break; -case 219: return 650; -break; -case 220: return 871; -break; -case 221: return 651; -break; -case 222: return 142; -break; -case 223: return 652; -break; -case 224: return 653; -break; -case 225: return 417; -break; -case 226: return 654; -break; -case 227: return 291; -break; -case 228: return 655; -break; -case 229: return 656; -break; -case 230: return 657; -break; -case 231: return 658; -break; -case 232: return 659; -break; -case 233: return 660; -break; -case 234: return 445; -break; -case 235: return 292; -break; -case 236: return 51; -break; -case 237: return 256; -break; -case 238: return 71; -break; -case 239: return 661; -break; -case 240: return 662; -break; -case 241: return 663; -break; -case 242: return 664; -break; -case 243: return 665; -break; -case 244: return 666; -break; -case 245: return 667; -break; -case 246: return 668; -break; -case 247: return 669; -break; -case 248: return 670; -break; -case 249: return 671; -break; -case 250: return 350; -break; -case 251: return 253; -break; -case 252: return 672; -break; -case 253: return 673; -break; -case 254: return 391; -break; -case 255: return 50; -break; -case 256: return 293; -break; -case 257: return 674; -break; -case 258: return 675; -break; -case 259: return 70; -break; -case 260: return 676; -break; -case 261: return 677; -break; -case 262: return 678; -break; -case 263: return 679; -break; -case 264: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REFRESH', yy_.yylloc); return 147; -break; -case 265: return 680; -break; -case 266: return 681; -break; -case 267: return 682; -break; -case 268: return 683; -break; -case 269: return 684; -break; -case 270: return 685; -break; -case 271: return 686; -break; -case 272: return 687; -break; -case 273: return 688; -break; -case 274: return 689; -break; -case 275: return 56; -break; -case 276: return 690; -break; -case 277: return 73; -break; -case 278: return 691; -break; -case 279: return 692; -break; -case 280: return 343; -break; -case 281: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REVOKE', yy_.yylloc); return 418; -break; -case 282: return 693; -break; -case 283: return 694; -break; -case 284: return 360; -break; -case 285: return 695; -break; -case 286: return 696; -break; -case 287: return 697; -break; -case 288: return 106; -break; -case 289: return 698; -break; -case 290: return 699; -break; -case 291: return 700; -break; -case 292: return 701; -break; -case 293: return 702; -break; -case 294: return 703; -break; -case 295: return 704; -break; -case 296: return 705; -break; -case 297: return 706; -break; -case 298: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 415; -break; -case 299: return 707; -break; -case 300: return 708; -break; -case 301: return 294; -break; -case 302: return 103; -break; -case 303: return 352; -break; -case 304: return 411; -break; -case 305: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 26; -break; -case 306: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 1001; -break; -case 307: return 709; -break; -case 308: return 710; -break; -case 309: return 711; -break; -case 310: return 712; -break; -case 311: return 269; -break; -case 312: return 713; -break; -case 313: return 714; -break; -case 314: return 715; -break; -case 315: return 716; -break; -case 316: return 717; -break; -case 317: return 718; -break; -case 318: return 66; -break; -case 319: return 288; -break; -case 320: return 722; -break; -case 321: return 723; -break; -case 322: return 724; -break; -case 323: return 725; -break; -case 324: return 726; -break; -case 325: return 727; -break; -case 326: return 344; -break; -case 327: return 729; -break; -case 328: return 730; -break; -case 329: return 731; -break; -case 330: return 129; -break; -case 331: return 732; -break; -case 332: return 733; -break; -case 333: return 101; -break; -case 334: return 302; -break; -case 335: return 295; -break; -case 336: return 734; -break; -case 337: return 735; -break; -case 338: return 736; -break; -case 339: return 737; -break; -case 340: return 738; -break; -case 341: return 57; -break; -case 342: return 739; -break; -case 343: return 740; -break; -case 344: return 741; -break; -case 345: return 742; -break; -case 346: return 743; -break; -case 347: return 744; -break; -case 348: return 745; -break; -case 349: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 392; -break; -case 350: return 746; -break; -case 351: return 977; -break; -case 352: return 109; -break; -case 353: return 747; -break; -case 354: return 748; -break; -case 355: return 873; -break; -case 356: return 749; -break; -case 357: parser.determineCase(yy_.yytext); return 1016; -break; -case 358: return 348; -break; -case 359: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('UPSERT', yy_.yylloc); return 441; -break; -case 360: return 412; -break; -case 361: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 1030; -break; -case 362: return 751; -break; -case 363: return 752; -break; -case 364: return 753; -break; -case 365: return 276; -break; -case 366: return 756; -break; -case 367: return 757; -break; -case 368: return 761; -break; -case 369: return 762; -break; -case 370: return 141; -break; -case 371: return 763; -break; -case 372: return 764; -break; -case 373: return 765; -break; -case 374: return 766; -break; -case 375: return 767; -break; -case 376: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 307; -break; -case 377: return 768; -break; -case 378: return 769; -break; -case 379: this.begin('hdfs'); return 206; -break; -case 380: return 53; -break; -case 381: return 658; -break; -case 382: return 360; -break; -case 383: return 236; -break; -case 384: return 64; -break; -case 385: return 241; -break; -case 386: return 41; -break; -case 387: return 242; -break; -case 388: return 502; -break; -case 389: return 447; -break; -case 390: return 446; -break; -case 391: yy.lexer.unput('('); yy_.yytext = 'appx_median'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 483; -break; -case 392: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 493; -break; -case 393: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 509; -break; -case 394: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 524; -break; -case 395: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 569; -break; -case 396: yy.lexer.unput('('); yy_.yytext = 'group_concat'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 586; -break; -case 397: yy.lexer.unput('('); yy_.yytext = 'left'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 957; -break; -case 398: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 631; -break; -case 399: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 634; -break; -case 400: yy.lexer.unput('('); yy_.yytext = 'ndv'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 641; -break; -case 401: yy.lexer.unput('('); yy_.yytext = 'stddev'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 719; -break; -case 402: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 720; -break; -case 403: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 721; -break; -case 404: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 728; -break; -case 405: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 754; -break; -case 406: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 755; -break; -case 407: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 758; -break; -case 408: yy.lexer.unput('('); yy_.yytext = 'variance_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 759; -break; -case 409: yy.lexer.unput('('); yy_.yytext = 'variance_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 760; -break; -case 410: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 411: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 412: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 413: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 414: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 415: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 416: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 417: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 418: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 419: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 479; -break; -case 420: yy.lexer.unput('('); yy_.yytext = 'system'; return 924; -break; -case 421: return 362; -break; -case 422: return 362; -break; -case 423: return 750; -break; -case 424: return 469; -break; -case 425: parser.yy.cursorFound = true; return 27; -break; -case 426: parser.yy.cursorFound = true; return 772; -break; -case 427: return 590; -break; -case 428: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 982; -break; -case 429: this.popState(); return 983; -break; -case 430: return 459; -break; -case 431: return 480; -break; -case 432: return 654; -break; -case 433: return 54; -break; -case 434: return 237; -break; -case 435: return 238; -break; -case 436: return 278; -break; -case 437: return 278; -break; -case 438: return 278; -break; -case 439: return 278; -break; -case 440: return 278; -break; -case 441: return 475; -break; -case 442: return 474; -break; -case 443: return 485; -break; -case 444: return 485; -break; -case 445: return 485; -break; -case 446: return 485; -break; -case 447: return 485; -break; -case 448: return 485; -break; -case 449: return 95; -break; -case 450: return 138; -break; -case 451: return 342; -break; -case 452: return 248; -break; -case 453: return 463; -break; -case 454: return 770; -break; -case 455: return 473; -break; -case 456: return 89; -break; -case 457: return 91; -break; -case 458: return 476; -break; -case 459: return 477; -break; -case 460: return 470; -break; -case 461: this.begin('backtickedValue'); return 494; -break; -case 462: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { - return 775; - } - return 181; - -break; -case 463: this.popState(); return 494; -break; -case 464: this.begin('singleQuotedValue'); return 179; -break; -case 465: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { - return 775; - } - return 181; - -break; -case 466: this.popState(); return 179; -break; -case 467: this.begin('doubleQuotedValue'); return 180; -break; -case 468: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { - return 775; - } - return 181; - -break; -case 469: this.popState(); return 180; -break; -case 470: return 459; -break; -case 471: /* To prevent console logging of unknown chars */ -break; -case 472: -break; -case 473: -break; -case 474: -break; -case 475: -break; -case 476:console.log(yy_.yytext); -break; -} -}, -rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ADD)/i,/^(?:AGGREGATE)/i,/^(?:ALL)/i,/^(?:ALLOCATE)/i,/^(?:ALTER)/i,/^(?:ANALYTIC)/i,/^(?:AND)/i,/^(?:ANTI)/i,/^(?:ANY)/i,/^(?:ARE)/i,/^(?:ARRAY_AGG)/i,/^(?:ARRAY_MAX_CARDINALITY)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:ASENSITIVE)/i,/^(?:ASYMMETRIC)/i,/^(?:AT)/i,/^(?:ATOMIC)/i,/^(?:AUTHORIZATION)/i,/^(?:AVRO)/i,/^(?:BEGIN_FRAME)/i,/^(?:BEGIN_PARTITION)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BLOB)/i,/^(?:BLOCK_SIZE)/i,/^(?:BOOLEAN)/i,/^(?:BOTH)/i,/^(?:BY)/i,/^(?:CACHED)/i,/^(?:CALLED)/i,/^(?:CARDINALITY)/i,/^(?:CASCADE)/i,/^(?:CASCADED)/i,/^(?:CASE)/i,/^(?:CHANGE)/i,/^(?:CHAR)/i,/^(?:CHARACTER)/i,/^(?:CLOB)/i,/^(?:CLOSE_FN)/i,/^(?:COLLATE)/i,/^(?:COLLECT)/i,/^(?:COLUMN)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMMIT)/i,/^(?:COMPRESSION)/i,/^(?:COMPUTE)/i,/^(?:CONDITION)/i,/^(?:CONNECT)/i,/^(?:CONSTRAINT)/i,/^(?:CONTAINS)/i,/^(?:CONVERT)/i,/^(?:COPY)/i,/^(?:CORR)/i,/^(?:CORRESPONDING)/i,/^(?:COVAR_POP)/i,/^(?:COVAR_SAMP)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:CURRENT_DATE)/i,/^(?:CURRENT_DEFAULT_TRANSFORM_GROUP)/i,/^(?:CURRENT_PATH)/i,/^(?:CURRENT_ROLE)/i,/^(?:CURRENT_ROW)/i,/^(?:CURRENT_SCHEMA)/i,/^(?:CURRENT_TIME)/i,/^(?:CURRENT_TRANSFORM_GROUP_FOR_TYPE)/i,/^(?:CYCLE)/i,/^(?:DATA)/i,/^(?:DATABASE)/i,/^(?:DATABASES)/i,/^(?:DEALLOCATE)/i,/^(?:DEC)/i,/^(?:DECFLOAT)/i,/^(?:DECIMAL)/i,/^(?:DECLARE)/i,/^(?:DEFINE)/i,/^(?:DELETE)/i,/^(?:DELIMITED)/i,/^(?:DEREF)/i,/^(?:DESC)/i,/^(?:DESCRIBE)/i,/^(?:DETERMINISTIC)/i,/^(?:DISCONNECT)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:DYNAMIC)/i,/^(?:EACH)/i,/^(?:ELEMENT)/i,/^(?:ELSE)/i,/^(?:EMPTY)/i,/^(?:ENCODING)/i,/^(?:END)/i,/^(?:END_FRAME)/i,/^(?:END_PARTITION)/i,/^(?:EQUALS)/i,/^(?:ESCAPE)/i,/^(?:ESCAPED)/i,/^(?:EVERY)/i,/^(?:EXCEPT)/i,/^(?:EXEC)/i,/^(?:EXECUTE)/i,/^(?:EXISTS)/i,/^(?:EXPLAIN)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FALSE)/i,/^(?:FETCH)/i,/^(?:FIELDS)/i,/^(?:FILEFORMAT)/i,/^(?:FILES)/i,/^(?:FILTER)/i,/^(?:FINALIZE_FN)/i,/^(?:FIRST)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FRAME_ROW)/i,/^(?:FREE)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:FUNCTION)/i,/^(?:FUNCTIONS)/i,/^(?:FUSION)/i,/^(?:GET)/i,/^(?:GLOBAL)/i,/^(?:GRANT)/i,/^(?:GROUP)/i,/^(?:GROUPING)/i,/^(?:GROUPS)/i,/^(?:HASH)/i,/^(?:HAVING)/i,/^(?:HOLD)/i,/^(?:IF)/i,/^(?:IGNORE)/i,/^(?:ILIKE)/i,/^(?:IN)/i,/^(?:INCREMENTAL)/i,/^(?:INDICATOR)/i,/^(?:INIT_FN)/i,/^(?:INITIAL)/i,/^(?:INNER)/i,/^(?:INOUT)/i,/^(?:INPATH)/i,/^(?:INSENSITIVE)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTERMEDIATE)/i,/^(?:INTERSECT)/i,/^(?:INTERSECTION)/i,/^(?:INTERVAL)/i,/^(?:INTO)/i,/^(?:INVALIDATE)/i,/^(?:IREGEXP)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:JSON_ARRAY)/i,/^(?:JSON_ARRAYAGG)/i,/^(?:JSON_EXISTS)/i,/^(?:JSON_OBJECT)/i,/^(?:JSON_OBJECTAGG)/i,/^(?:JSON_QUERY)/i,/^(?:JSON_TABLE)/i,/^(?:JSON_TABLE_PRIMITIVE)/i,/^(?:JSON_VALUE)/i,/^(?:KEY)/i,/^(?:KUDU)/i,/^(?:LARGE)/i,/^(?:LAST)/i,/^(?:LATERAL)/i,/^(?:LEADING)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIKE_REGEX)/i,/^(?:LIMIT)/i,/^(?:LIFECYCLE)/i,/^(?:LINES)/i,/^(?:LISTAGG)/i,/^(?:LOAD)/i,/^(?:LOCAL)/i,/^(?:LOCALTIMESTAMP)/i,/^(?:LOCATION)/i,/^(?:MATCH)/i,/^(?:MATCH_NUMBER)/i,/^(?:MATCH_RECOGNIZE)/i,/^(?:MATCHES)/i,/^(?:MERGE)/i,/^(?:MERGE_FN)/i,/^(?:METADATA)/i,/^(?:METHOD)/i,/^(?:MODIFIES)/i,/^(?:MULTISET)/i,/^(?:NATIONAL)/i,/^(?:NATURAL)/i,/^(?:NCHAR)/i,/^(?:NCLOB)/i,/^(?:NO)/i,/^(?:NONE)/i,/^(?:NORMALIZE)/i,/^(?:NOT)/i,/^(?:NTH_VALUE)/i,/^(?:NULL)/i,/^(?:NULLS)/i,/^(?:NUMERIC)/i,/^(?:OCCURRENCES_REGEX)/i,/^(?:OCTET_LENGTH)/i,/^(?:OF)/i,/^(?:OFFSET)/i,/^(?:OMIT)/i,/^(?:ON)/i,/^(?:ONE)/i,/^(?:ONLY)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORC)/i,/^(?:ORDER)/i,/^(?:OUT)/i,/^(?:OUTER)/i,/^(?:OVER)/i,/^(?:OVERLAPS)/i,/^(?:OVERLAY)/i,/^(?:OVERWRITE)/i,/^(?:PARQUET)/i,/^(?:PARTITION)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PATTERN)/i,/^(?:PER)/i,/^(?:PERCENT)/i,/^(?:PERCENTILE_CONT)/i,/^(?:PERCENTILE_DISC)/i,/^(?:PORTION)/i,/^(?:POSITION)/i,/^(?:POSITION_REGEX)/i,/^(?:PRECEDES)/i,/^(?:PRECEDING)/i,/^(?:PREPARE)/i,/^(?:PREPARE_FN)/i,/^(?:PRIMARY)/i,/^(?:PROCEDURE)/i,/^(?:PTF)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:RCFILE)/i,/^(?:READS)/i,/^(?:REAL)/i,/^(?:RECOVER)/i,/^(?:RECURSIVE)/i,/^(?:REF)/i,/^(?:REFERENCES)/i,/^(?:REFERENCING)/i,/^(?:REFRESH)/i,/^(?:REGEXP)/i,/^(?:REGR_AVGX)/i,/^(?:REGR_AVGY)/i,/^(?:REGR_COUNT)/i,/^(?:REGR_INTERCEPT)/i,/^(?:REGR_R2REGR_SLOPE)/i,/^(?:REGR_SXX)/i,/^(?:REGR_SXY)/i,/^(?:REGR_SYY)/i,/^(?:RELEASE)/i,/^(?:RENAME)/i,/^(?:REPEATABLE)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:RETURNS)/i,/^(?:REVOKE)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:ROLLBACK)/i,/^(?:ROLLUP)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:RUNNING)/i,/^(?:SAVEPOINT)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SCOPE)/i,/^(?:SCROLL)/i,/^(?:SEARCH)/i,/^(?:SEEK)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SENSITIVE)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SERIALIZE_FN)/i,/^(?:SERVER)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SIMILAR)/i,/^(?:SKIP)/i,/^(?:SMALLINT)/i,/^(?:SOME)/i,/^(?:SORT)/i,/^(?:SPECIFIC)/i,/^(?:SPECIFICTYPE)/i,/^(?:SQLEXCEPTION)/i,/^(?:SQLSTATE)/i,/^(?:SQLWARNING)/i,/^(?:STATIC)/i,/^(?:STATS)/i,/^(?:STORED)/i,/^(?:STRAIGHT_JOIN)/i,/^(?:STRING)/i,/^(?:SUBMULTISET)/i,/^(?:SUBSET)/i,/^(?:SUBSTRING_REGEX)/i,/^(?:SUCCEEDS)/i,/^(?:SYMBOL)/i,/^(?:SYMMETRIC)/i,/^(?:SYSTEM_TIME)/i,/^(?:SYSTEM_USER)/i,/^(?:TABLE)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TIMEZONE_HOUR)/i,/^(?:TIMEZONE_MINUTE)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRAILING)/i,/^(?:TRANSLATE_REGEX)/i,/^(?:TRANSLATION)/i,/^(?:TREAT)/i,/^(?:TRIGGER)/i,/^(?:TRIM_ARRAY)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UESCAPE)/i,/^(?:UNBOUNDED)/i,/^(?:UNCACHED)/i,/^(?:UNION)/i,/^(?:UNIQUE)/i,/^(?:UNKNOWN)/i,/^(?:UNNEST)/i,/^(?:UPDATE)/i,/^(?:UPDATE_FN)/i,/^(?:UPSERT)/i,/^(?:URI)/i,/^(?:USE)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:VALUE_OF)/i,/^(?:VALUES)/i,/^(?:VARBINARY)/i,/^(?:VARCHAR)/i,/^(?:VARYING)/i,/^(?:VERSIONING)/i,/^(?:VIEW)/i,/^(?:WHEN)/i,/^(?:WHENEVER)/i,/^(?:WHERE)/i,/^(?:WIDTH_BUCKET)/i,/^(?:WINDOW)/i,/^(?:WITH)/i,/^(?:WITHIN)/i,/^(?:WITHOUT)/i,/^(?:LIKE\s+PARQUET)/i,/^(?:PARTITION\s+VALUE\s)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:ARRAY)/i,/^(?:DEFAULT)/i,/^(?:MAP)/i,/^(?:OWNER)/i,/^(?:STRUCT)/i,/^(?:\[BROADCAST\])/i,/^(?:\[NOSHUFFLE\])/i,/^(?:\[SHUFFLE\])/i,/^(?:APPX_MEDIAN\s*\()/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:GROUP_CONCAT\s*\()/i,/^(?:LEFT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:NDV\s*\()/i,/^(?:STDDEV\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:VARIANCE_POP\s*\()/i,/^(?:VARIANCE_SAMP\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:SYSTEM\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?:\.\.\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], -conditions: {"hdfs":{"rules":[425,426,427,428,429,430,472],"inclusive":false},"doubleQuotedValue":{"rules":[468,469,475],"inclusive":false},"singleQuotedValue":{"rules":[465,466,474],"inclusive":false},"backtickedValue":{"rules":[462,463,473],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,464,467,470,471,476],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); -export default impalaSyntaxParser; diff --git a/src/core/parse/impala/sqlParseSupport.js b/src/core/parse/impala/sqlParseSupport.js deleted file mode 100644 index 40524ba..0000000 --- a/src/core/parse/impala/sqlParseSupport.js +++ /dev/null @@ -1,2545 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import { SqlFunctions } from '../sqlFunctions'; -import stringDistance from '../stringDistance'; - -const identifierEquals = (a, b) => - a && - b && - a - .replace(/^\s*`/, '') - .replace(/`\s*$/, '') - .toLowerCase() === - b - .replace(/^\s*`/, '') - .replace(/`\s*$/, '') - .toLowerCase(); - -// endsWith polyfill from hue_utils.js, needed as workers live in their own js environment -if (!String.prototype.endsWith) { - String.prototype.endsWith = function(searchString, position) { - const subjectString = this.toString(); - if ( - typeof position !== 'number' || - !isFinite(position) || - Math.floor(position) !== position || - position > subjectString.length - ) { - position = subjectString.length; - } - position -= searchString.length; - const lastIndex = subjectString.lastIndexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; -} - -const equalIgnoreCase = (a, b) => a && b && a.toLowerCase() === b.toLowerCase(); - -const SIMPLE_TABLE_REF_SUGGESTIONS = [ - 'suggestJoinConditions', - 'suggestAggregateFunctions', - 'suggestFilters', - 'suggestGroupBys', - 'suggestOrderBys' -]; - -const initSqlParser = function(parser) { - parser.prepareNewStatement = function() { - linkTablePrimaries(); - parser.commitLocations(); - - delete parser.yy.latestCommonTableExpressions; - delete parser.yy.correlatedSubQuery; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - prioritizeSuggestions(); - }; - - parser.yy.parseError = function(message, error) { - parser.yy.errors.push(error); - return message; - }; - - parser.addCommonTableExpressions = function(identifiers) { - parser.yy.result.commonTableExpressions = identifiers; - parser.yy.latestCommonTableExpressions = identifiers; - }; - - parser.isInSubquery = function() { - return !!parser.yy.primariesStack.length; - }; - - parser.pushQueryState = function() { - parser.yy.resultStack.push(parser.yy.result); - parser.yy.locationsStack.push(parser.yy.locations); - parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); - parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); - parser.yy.subQueriesStack.push(parser.yy.subQueries); - - parser.yy.result = {}; - parser.yy.locations = []; - parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries - - if (parser.yy.correlatedSubQuery) { - parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); - parser.yy.subQueries = parser.yy.subQueries.concat(); - } else { - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - } - }; - - parser.popQueryState = function(subQuery) { - linkTablePrimaries(); - parser.commitLocations(); - - if (Object.keys(parser.yy.result).length === 0) { - parser.yy.result = parser.yy.resultStack.pop(); - } else { - parser.yy.resultStack.pop(); - } - const oldSubQueries = parser.yy.subQueries; - parser.yy.subQueries = parser.yy.subQueriesStack.pop(); - if (subQuery) { - if (oldSubQueries.length > 0) { - subQuery.subQueries = oldSubQueries; - } - parser.yy.subQueries.push(subQuery); - } - - parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); - parser.yy.locations = parser.yy.locationsStack.pop(); - parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); - }; - - parser.suggestSelectListAliases = function() { - if ( - parser.yy.selectListAliases && - parser.yy.selectListAliases.length > 0 && - parser.yy.result.suggestColumns && - (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || - parser.yy.result.suggestColumns.identifierChain.length === 0) - ) { - parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; - } - }; - - parser.mergeSuggestKeywords = function() { - let result = []; - Array.prototype.slice.call(arguments).forEach(suggestion => { - if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { - result = result.concat(suggestion.suggestKeywords); - } - }); - if (result.length > 0) { - return { suggestKeywords: result }; - } - return {}; - }; - - parser.suggestValueExpressionKeywords = function(valueExpression, extras) { - const expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); - parser.suggestKeywords(expressionKeywords.suggestKeywords); - if (expressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); - } - if (valueExpression.lastType) { - parser.addColRefIfExists(valueExpression.lastType); - } else { - parser.addColRefIfExists(valueExpression); - } - }; - - parser.getSelectListKeywords = function(excludeAsterisk) { - const keywords = [{ value: 'CASE', weight: 450 }, 'FALSE', 'TRUE', 'NULL']; - if (!excludeAsterisk) { - keywords.push({ value: '*', weight: 10000 }); - } - return keywords; - }; - - parser.getValueExpressionKeywords = function(valueExpression, extras) { - const types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; - // We could have valueExpression.columnReference to suggest based on column type - let keywords = [ - '<', - '<=', - '<=>', - '<>', - '=', - '>', - '>=', - 'BETWEEN', - 'IN', - 'IS NOT NULL', - 'IS NULL', - 'IS NOT TRUE', - 'IS TRUE', - 'IS NOT FALSE', - 'IS FALSE', - 'NOT BETWEEN', - 'NOT IN' - ]; - keywords = keywords.concat([ - 'IS DISTINCT FROM', - 'IS NOT DISTINCT FROM', - 'IS NOT UNKNOWN', - 'IS UNKNOWN' - ]); - if (extras) { - keywords = keywords.concat(extras); - } - if (valueExpression.suggestKeywords) { - keywords = keywords.concat(valueExpression.suggestKeywords); - } - if (types.length === 1 && types[0] === 'COLREF') { - return { - suggestKeywords: keywords, - suggestColRefKeywords: { - BOOLEAN: ['AND', 'OR'], - NUMBER: ['+', '-', '*', '/', '%', 'DIV'], - STRING: ['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] - } - }; - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types) - ) { - keywords = keywords.concat(['AND', 'OR']); - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types) - ) { - keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); - } - if ( - typeof SqlFunctions === 'undefined' || - SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types) - ) { - keywords = keywords.concat(['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); - } - return { suggestKeywords: keywords }; - }; - - parser.getTypeKeywords = function() { - return [ - 'BIGINT', - 'BOOLEAN', - 'CHAR', - 'DECIMAL', - 'DOUBLE', - 'FLOAT', - 'INT', - 'REAL', - 'SMALLINT', - 'TIMESTAMP', - 'STRING', - 'TINYINT', - 'VARCHAR' - ]; - }; - - parser.getColumnDataTypeKeywords = function() { - return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>']); - }; - - parser.addColRefIfExists = function(valueExpression) { - if (valueExpression.columnReference) { - parser.yy.result.colRef = { identifierChain: valueExpression.columnReference }; - } - }; - - parser.selectListNoTableSuggest = function(selectListEdit, hasDistinctOrAll) { - if (selectListEdit.cursorAtStart) { - let keywords = parser.getSelectListKeywords(); - if (!hasDistinctOrAll) { - keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); - } - keywords.push('STRAIGHT_JOIN'); - parser.suggestKeywords(keywords); - } else { - parser.checkForKeywords(selectListEdit); - } - if (selectListEdit.suggestFunctions) { - parser.suggestFunctions(); - } - if (selectListEdit.suggestColumns) { - parser.suggestColumns(); - } - if ( - selectListEdit.suggestAggregateFunctions && - (!hasDistinctOrAll || hasDistinctOrAll === 'ALL') - ) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - }; - - parser.suggestJoinConditions = function(details) { - parser.yy.result.suggestJoinConditions = details || {}; - if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { - parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); - } - }; - - parser.suggestJoins = function(details) { - parser.yy.result.suggestJoins = details || {}; - }; - - parser.valueExpressionSuggest = function(oppositeValueExpression, operator) { - if (oppositeValueExpression && oppositeValueExpression.columnReference) { - parser.suggestValues(); - parser.yy.result.colRef = { identifierChain: oppositeValueExpression.columnReference }; - } - parser.suggestColumns(); - parser.suggestFunctions(); - let keywords = [ - { value: 'CASE', weight: 450 }, - { value: 'FALSE', weight: 450 }, - { value: 'NULL', weight: 450 }, - { value: 'TRUE', weight: 450 } - ]; - if (typeof oppositeValueExpression === 'undefined' || typeof operator === 'undefined') { - keywords = keywords.concat(['EXISTS', 'NOT']); - } - if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { - parser.applyTypeToSuggestions(['NUMBER']); - } else if (typeof operator === 'undefined' || operator === '-' || operator === '+') { - keywords.push('INTERVAL'); - } - parser.suggestKeywords(keywords); - }; - - parser.applyTypeToSuggestions = function(types) { - if (types[0] === 'BOOLEAN') { - return; - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.yy.result.suggestFunctions.types = types; - } - if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { - parser.yy.result.suggestColumns.types = types; - } - }; - - parser.findCaseType = function(whenThenList) { - const types = {}; - whenThenList.caseTypes.forEach(valueExpression => { - valueExpression.types.forEach(type => { - types[type] = true; - }); - }); - if (Object.keys(types).length === 1) { - return { types: [Object.keys(types)[0]] }; - } - return { types: ['T'] }; - }; - - parser.findReturnTypes = function(functionName) { - return typeof SqlFunctions === 'undefined' - ? ['T'] - : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); - }; - - parser.applyArgumentTypesToSuggestions = function(functionName, position) { - const foundArguments = - typeof SqlFunctions === 'undefined' - ? ['T'] - : SqlFunctions.getArgumentTypes( - parser.yy.activeDialect, - functionName.toLowerCase(), - position - ); - if (foundArguments.length === 0 && parser.yy.result.suggestColumns) { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeyValues; - delete parser.yy.result.suggestValues; - delete parser.yy.result.suggestFunctions; - delete parser.yy.result.suggestIdentifiers; - delete parser.yy.result.suggestKeywords; - } else { - parser.applyTypeToSuggestions(foundArguments); - } - }; - - const getCleanImpalaPrimaries = function(primaries) { - const cleanPrimaries = []; - for (let i = primaries.length - 1; i >= 0; i--) { - let cleanPrimary = primaries[i]; - if (cleanPrimary.identifierChain && cleanPrimary.identifierChain.length > 0) { - for (let j = i - 1; j >= 0; j--) { - const parentPrimary = primaries[j]; - if (parentPrimary.alias && cleanPrimary.identifierChain[0].name === parentPrimary.alias) { - const restOfChain = cleanPrimary.identifierChain.concat(); - restOfChain.shift(); - if (cleanPrimary.alias) { - cleanPrimary = { - identifierChain: parentPrimary.identifierChain.concat(restOfChain), - alias: cleanPrimary.alias, - impalaComplex: true - }; - } else { - cleanPrimary = { - identifierChain: parentPrimary.identifierChain.concat(restOfChain), - impalaComplex: true - }; - } - } - } - } - cleanPrimaries.push(cleanPrimary); - } - return cleanPrimaries; - }; - - parser.commitLocations = function() { - if (parser.yy.locations.length === 0) { - return; - } - - const tablePrimaries = []; - getCleanImpalaPrimaries(parser.yy.latestTablePrimaries).forEach(primary => { - let cleanPrimary = primary; - if (primary.identifierChain && primary.identifierChain.length > 0) { - for (let j = parser.yy.primariesStack.length - 1; j >= 0; j--) { - getCleanImpalaPrimaries(parser.yy.primariesStack[j]).every(parentPrimary => { - if (parentPrimary.alias && parentPrimary.alias === primary.identifierChain[0].name) { - const identifierChain = primary.identifierChain.concat(); - identifierChain.shift(); - cleanPrimary = { - identifierChain: parentPrimary.identifierChain.concat(identifierChain) - }; - if (primary.alias) { - cleanPrimary.alias = primary.alias; - } - return false; - } - return true; - }); - } - } - tablePrimaries.unshift(cleanPrimary); - }); - let i = parser.yy.locations.length; - - while (i--) { - const location = parser.yy.locations[i]; - if (location.type === 'variable' && location.colRef) { - parser.expandIdentifierChain({ - wrapper: location.colRef, - tablePrimaries: tablePrimaries, - isColumnWrapper: true - }); - delete location.colRef.linked; - } - - // Impala can have references to previous tables after FROM, i.e. FROM testTable t, t.testArray - // In this testArray would be marked a type table so we need to switch it to column. - if ( - location.type === 'table' && - typeof location.identifierChain !== 'undefined' && - location.identifierChain.length > 1 && - tablePrimaries - ) { - let allPrimaries = tablePrimaries; - parser.yy.primariesStack.forEach(parentPrimaries => { - allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); - }); - const found = allPrimaries.filter(primary => { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'column'; - } - } - - if ( - location.type === 'database' && - typeof location.identifierChain !== 'undefined' && - location.identifierChain.length > 0 && - tablePrimaries - ) { - let allPrimaries = tablePrimaries; - parser.yy.primariesStack.forEach(parentPrimaries => { - allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); - }); - const foundAlias = allPrimaries.filter(primary => { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name); - }); - if (foundAlias.length > 0) { - // Impala complex reference in FROM clause, i.e. FROM testTable t, t.testMap tm - location.type = 'table'; - parser.expandIdentifierChain({ - tablePrimaries: allPrimaries, - wrapper: location, - anyOwner: true - }); - location.type = location.identifierChain.length === 1 ? 'table' : 'complex'; - continue; - } - } - - if (location.type === 'unknown') { - if ( - typeof location.identifierChain !== 'undefined' && - location.identifierChain.length > 0 && - location.identifierChain.length <= 2 && - tablePrimaries - ) { - let found = tablePrimaries.filter(primary => { - return ( - equalIgnoreCase(primary.alias, location.identifierChain[0].name) || - (primary.identifierChain && - equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)) - ); - }); - if (!found.length && location.firstInChain) { - found = tablePrimaries.filter(primary => { - return ( - !primary.alias && - primary.identifierChain && - equalIgnoreCase( - primary.identifierChain[primary.identifierChain.length - 1].name, - location.identifierChain[0].name - ) - ); - }); - } - - if (found.length) { - if ( - found[0].identifierChain.length > 1 && - location.identifierChain.length === 1 && - equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name) - ) { - location.type = 'database'; - } else if ( - found[0].alias && - equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && - location.identifierChain.length > 1 - ) { - location.type = 'column'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } else if ( - !found[0].alias && - found[0].identifierChain && - equalIgnoreCase( - location.identifierChain[0].name, - found[0].identifierChain[found[0].identifierChain.length - 1].name - ) && - location.identifierChain.length > 1 - ) { - location.type = 'column'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } else { - location.type = found[0].impalaComplex ? 'column' : 'table'; - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true - }); - } - } else if (parser.yy.subQueries) { - found = parser.yy.subQueries.filter(subQuery => { - return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'subQuery'; - location.identifierChain = [{ subQuery: found[0].alias }]; - } - } - } - } - - if (location.type === 'asterisk' && !location.linked) { - if (tablePrimaries && tablePrimaries.length > 0) { - location.tables = []; - location.linked = false; - if (!location.identifierChain) { - location.identifierChain = [{ asterisk: true }]; - } - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: false - }); - if (location.tables.length === 0) { - parser.yy.locations.splice(i, 1); - } - } else { - parser.yy.locations.splice(i, 1); - } - } - - if ( - location.type === 'table' && - typeof location.identifierChain !== 'undefined' && - location.identifierChain.length === 1 && - location.identifierChain[0].name - ) { - // Could be a cte reference - parser.yy.locations.some(otherLocation => { - if ( - otherLocation.type === 'alias' && - otherLocation.source === 'cte' && - identifierEquals(otherLocation.alias, location.identifierChain[0].name) - ) { - // TODO: Possibly add the other location if we want to show the link in the future. - // i.e. highlight select definition on hover over alias, also for subquery references. - location.type = 'alias'; - location.target = 'cte'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - return true; - } - }); - } - - if ( - location.type === 'table' && - (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0) - ) { - parser.yy.locations.splice(i, 1); - } - - if (location.type === 'unknown') { - location.type = 'column'; - } - - // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" - if (location.type === 'column') { - for (let j = i - 1; j >= 0; j--) { - const otherLocation = parser.yy.locations[j]; - if ( - otherLocation.type === 'alias' && - otherLocation.source === 'column' && - location.identifierChain && - location.identifierChain.length === 1 && - location.identifierChain[0].name && - otherLocation.alias && - location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase() - ) { - location.type = 'alias'; - location.source = 'column'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - location.parentLocation = otherLocation.parentLocation; - break; - } - } - } - - if (location.type === 'column') { - const initialIdentifierChain = location.identifierChain - ? location.identifierChain.concat() - : undefined; - - parser.expandIdentifierChain({ - tablePrimaries: tablePrimaries, - wrapper: location, - anyOwner: true, - isColumnWrapper: true, - isColumnLocation: true - }); - - if (typeof location.identifierChain === 'undefined') { - parser.yy.locations.splice(i, 1); - } else if ( - location.identifierChain.length === 0 && - initialIdentifierChain && - initialIdentifierChain.length === 1 - ) { - // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; - location.identifierChain = initialIdentifierChain; - } - } - if (location.type === 'column' && location.identifierChain) { - if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { - location.type = 'complex'; - } - } - delete location.firstInChain; - if (location.type !== 'column' && location.type !== 'complex') { - delete location.qualified; - } else if (typeof location.qualified === 'undefined') { - location.qualified = false; - } - } - - if (parser.yy.locations.length > 0) { - parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); - parser.yy.locations = []; - } - }; - - const prioritizeSuggestions = function() { - parser.yy.result.lowerCase = parser.yy.lowerCase || false; - - const cteIndex = {}; - - if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - parser.yy.latestCommonTableExpressions.forEach(cte => { - cteIndex[cte.alias.toLowerCase()] = cte; - }); - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if ( - suggestionType !== 'suggestAggregateFunctions' && - typeof parser.yy.result[suggestionType] !== 'undefined' && - parser.yy.result[suggestionType].tables.length === 0 - ) { - delete parser.yy.result[suggestionType]; - } else if ( - typeof parser.yy.result[suggestionType] !== 'undefined' && - typeof parser.yy.result[suggestionType].tables !== 'undefined' - ) { - for (let i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { - const table = parser.yy.result[suggestionType].tables[i]; - if ( - table.identifierChain.length === 1 && - typeof table.identifierChain[0].name !== 'undefined' && - typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined' - ) { - parser.yy.result[suggestionType].tables.splice(i, 1); - } - } - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - if ( - !parser.yy.result.colRef.linked || - typeof parser.yy.result.colRef.identifierChain === 'undefined' || - parser.yy.result.colRef.identifierChain.length === 0 - ) { - delete parser.yy.result.colRef; - if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { - Object.keys(parser.yy.result.suggestColRefKeywords).forEach(type => { - parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat( - parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1) - ); - }); - delete parser.yy.result.suggestColRefKeywords; - } - if ( - parser.yy.result.suggestColumns && - parser.yy.result.suggestColumns.types.length === 1 && - parser.yy.result.suggestColumns.types[0] === 'COLREF' - ) { - parser.yy.result.suggestColumns.types = ['T']; - } - delete parser.yy.result.suggestValues; - } - } - - if (typeof parser.yy.result.colRef !== 'undefined') { - if ( - !parser.yy.result.suggestValues && - !parser.yy.result.suggestColRefKeywords && - (!parser.yy.result.suggestColumns || parser.yy.result.suggestColumns.types[0] !== 'COLREF') - ) { - delete parser.yy.result.colRef; - } - } - if ( - typeof parser.yy.result.suggestIdentifiers !== 'undefined' && - parser.yy.result.suggestIdentifiers.length > 0 - ) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - const suggestColumns = parser.yy.result.suggestColumns; - if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { - // Impala supports statements like SELECT * FROM tbl1, tbl2 WHERE db.tbl1.col = tbl2.bla - if ( - parser.yy.result.suggestColumns.linked && - typeof suggestColumns.identifierChain !== 'undefined' && - suggestColumns.identifierChain.length > 0 - ) { - if (suggestColumns.identifierChain.length === 1) { - parser.yy.result.suggestTables = suggestColumns; - delete parser.yy.result.suggestColumns; - } else { - suggestColumns.tables = [{ identifierChain: suggestColumns.identifierChain }]; - delete suggestColumns.identifierChain; - } - } else { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.subQueries; - } - } else { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - - suggestColumns.tables.forEach(table => { - if ( - typeof table.identifierChain !== 'undefined' && - table.identifierChain.length === 1 && - typeof table.identifierChain[0].name !== 'undefined' - ) { - const cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; - if (typeof cte !== 'undefined') { - delete table.identifierChain[0].name; - table.identifierChain[0].cte = cte.alias; - } - } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { - table.identifierChain = [{ subQuery: table.subQuery }]; - delete table.subQuery; - } - }); - - if ( - typeof suggestColumns.identifierChain !== 'undefined' && - suggestColumns.identifierChain.length === 0 - ) { - delete suggestColumns.identifierChain; - } - } - } else { - delete parser.yy.result.subQueries; - } - - if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { - if ( - typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || - parser.yy.result.suggestJoinConditions.tables.length === 0 - ) { - delete parser.yy.result.suggestJoinConditions; - } - } - - if ( - typeof parser.yy.result.suggestTables !== 'undefined' && - typeof parser.yy.result.commonTableExpressions !== 'undefined' - ) { - const ctes = []; - parser.yy.result.commonTableExpressions.forEach(cte => { - const suggestion = { name: cte.alias }; - if (parser.yy.result.suggestTables.prependFrom) { - suggestion.prependFrom = true; - } - if (parser.yy.result.suggestTables.prependQuestionMark) { - suggestion.prependQuestionMark = true; - } - ctes.push(suggestion); - }); - if (ctes.length > 0) { - parser.yy.result.suggestCommonTableExpressions = ctes; - } - } - }; - - /** - * Impala supports referencing maps and arrays in the the table reference list i.e. - * - * SELECT m['foo'].bar.| FROM someDb.someTable t, t.someMap m; - * - * From this the tablePrimaries would look like: - * - * [ { alias: 't', identifierChain: [ { name: 'someDb' }, { name: 'someTable' } ] }, - * { alias: 'm', identifierChain: [ { name: 't' }, { name: 'someMap' } ] } ] - * - * with an identifierChain from the select list: - * - * [ { name: 'm', keySet: true }, { name: 'bar' } ] - * - * Calling this would return an expanded identifierChain, given the above it would be: - * - * [ { name: 't' }, { name: 'someMap', keySet: true }, { name: 'bar' } ] - */ - parser.expandImpalaIdentifierChain = function(tablePrimaries, identifierChain) { - const expandedChain = identifierChain.concat(); // Clone in case it's called multiple times. - if (typeof expandedChain === 'undefined' || expandedChain.length === 0) { - return identifierChain; - } - const expand = function(identifier, expandedChain) { - const foundPrimary = tablePrimaries.filter(tablePrimary => { - let primaryIdentifier = tablePrimary.alias; - if ( - !primaryIdentifier && - tablePrimary.identifierChain && - tablePrimary.identifierChain.length > 0 - ) { - primaryIdentifier = - tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1].name; - } - return equalIgnoreCase(primaryIdentifier, identifier); - }); - - if (foundPrimary.length === 1 && foundPrimary[0].identifierChain) { - const parentPrimary = tablePrimaries.filter(tablePrimary => { - return equalIgnoreCase(tablePrimary.alias, foundPrimary[0].identifierChain[0].name); - }); - if (parentPrimary.length === 1) { - const keySet = expandedChain[0].keySet; - const secondPart = expandedChain.slice(1); - const firstPart = []; - // Clone to make sure we don't add keySet to the primaries - foundPrimary[0].identifierChain.forEach(identifier => { - firstPart.push({ name: identifier.name }); - }); - if (keySet && firstPart.length > 0) { - firstPart[firstPart.length - 1].keySet = true; - } - - if ( - firstPart.length === 0 || - typeof secondPart === 'undefined' || - secondPart.length === 0 - ) { - return firstPart; - } - const result = firstPart.concat(secondPart); - if (result.length > 0) { - return expand(firstPart[0].name, result); - } else { - return result; - } - } - } - return expandedChain; - }; - return expand(expandedChain[0].name, expandedChain); - }; - - parser.identifyPartials = function(beforeCursor, afterCursor) { - const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return { - left: beforeMatch ? beforeMatch[0].length : 0, - right: afterMatch ? afterMatch[0].length : 0 - }; - }; - - const addCleanTablePrimary = function(tables, tablePrimary) { - if (tablePrimary.alias) { - tables.push({ alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain }); - } else { - tables.push({ identifierChain: tablePrimary.identifierChain }); - } - }; - - parser.expandIdentifierChain = function(options) { - const wrapper = options.wrapper; - const anyOwner = options.anyOwner; - const isColumnWrapper = options.isColumnWrapper; - const isColumnLocation = options.isColumnLocation; - let tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; - - if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { - return; - } - let identifierChain = wrapper.identifierChain.concat(); - - if (tablePrimaries.length === 0) { - delete wrapper.identifierChain; - return; - } - - if (!anyOwner) { - tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); - } - - if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { - const tables = []; - tablePrimaries.forEach(tablePrimary => { - if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { - if ( - identifierChain.length === 2 && - equalIgnoreCase(tablePrimary.alias, identifierChain[0].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } else if ( - identifierChain.length === 2 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } else if ( - identifierChain.length === 3 && - tablePrimary.identifierChain.length > 1 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name) - ) { - addCleanTablePrimary(tables, tablePrimary); - } - } else if (tablePrimary.subQueryAlias) { - tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); - } else { - addCleanTablePrimary(tables, tablePrimary); - } - }); - // Possible Joins - if (tables.length > 0) { - wrapper.tables = tables; - delete wrapper.identifierChain; - return; - } - } - - // Impala can have references to maps or array, i.e. FROM table t, t.map m - // We need to replace those in the identifierChain - const lengthBefore = identifierChain.length; - identifierChain = parser.expandImpalaIdentifierChain(tablePrimaries, identifierChain); - // Change type of any locations marked as table - if (wrapper.type === 'table' && identifierChain.length > lengthBefore) { - wrapper.type = 'column'; - } - wrapper.identifierChain = identifierChain; - - // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] - // Reduce the tablePrimaries to the one that matches the first identifier if found - let foundPrimary; - let doubleMatch = false; - let aliasMatch = false; - if (identifierChain.length > 0) { - for (let i = 0; i < tablePrimaries.length; i++) { - if (tablePrimaries[i].subQueryAlias) { - if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - } - } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - aliasMatch = true; - break; - } else if ( - tablePrimaries[i].identifierChain.length > 1 && - identifierChain.length > 1 && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name) - ) { - foundPrimary = tablePrimaries[i]; - doubleMatch = true; - break; - } else if ( - !foundPrimary && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - identifierChain.length > (isColumnLocation ? 1 : 0) - ) { - foundPrimary = tablePrimaries[i]; - // No break as first two can still match. - } else if ( - !foundPrimary && - tablePrimaries[i].identifierChain.length > 1 && - !tablePrimaries[i].alias && - equalIgnoreCase( - tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, - identifierChain[0].name - ) - ) { - // This is for the case SELECT baa. FROM bla.baa, blo.boo; - foundPrimary = tablePrimaries[i]; - break; - } - } - } - - if (foundPrimary) { - if (foundPrimary.impalaComplex && wrapper.type === 'column') { - wrapper.type = 'complex'; - } - identifierChain.shift(); - if (doubleMatch) { - identifierChain.shift(); - } - } else if (tablePrimaries.length === 1 && !isColumnWrapper) { - foundPrimary = tablePrimaries[0]; - } - - if (foundPrimary) { - if (isColumnWrapper) { - wrapper.identifierChain = identifierChain; - if (foundPrimary.subQueryAlias) { - wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; - } else if (foundPrimary.alias) { - if (!isColumnLocation && isColumnWrapper && aliasMatch) { - // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) - // the case is: SELECT cu.| FROM customers cu; - // This prevents alias from being added automatically in sqlAutocompleter.js - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } else { - wrapper.tables = [ - { identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias } - ]; - } - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } - } else { - if (foundPrimary.subQueryAlias) { - identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); - } else { - identifierChain = foundPrimary.identifierChain.concat(identifierChain); - } - if (wrapper.tables) { - wrapper.tables.push({ identifierChain: identifierChain }); - delete wrapper.identifierChain; - } else { - wrapper.identifierChain = identifierChain; - } - } - } else { - if (isColumnWrapper) { - wrapper.tables = []; - } - tablePrimaries.forEach(tablePrimary => { - const targetTable = tablePrimary.subQueryAlias - ? { subQuery: tablePrimary.subQueryAlias } - : { identifierChain: tablePrimary.identifierChain }; - if (tablePrimary.alias) { - targetTable.alias = tablePrimary.alias; - } - if (wrapper.tables) { - wrapper.tables.push(targetTable); - } - }); - } - delete wrapper.owner; - wrapper.linked = true; - }; - - const filterTablePrimariesForOwner = function(tablePrimaries, owner) { - const result = []; - tablePrimaries.forEach(primary => { - if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { - result.push(primary); - } else if (owner === primary.owner) { - result.push(primary); - } - }); - return result; - }; - - const convertTablePrimariesToSuggestions = function(tablePrimaries) { - const tables = []; - const identifiers = []; - tablePrimaries.forEach(tablePrimary => { - if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - const table = { identifierChain: tablePrimary.identifierChain }; - if (tablePrimary.alias) { - table.alias = tablePrimary.alias; - identifiers.push({ name: table.alias + '.', type: 'alias' }); - const testForImpalaAlias = [{ name: table.alias }]; - const result = parser.expandImpalaIdentifierChain(tablePrimaries, testForImpalaAlias); - if (result.length > 1) { - // Continue if it's a reference to a complex type - return; - } - } else { - const lastIdentifier = - tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; - if (typeof lastIdentifier.name !== 'undefined') { - identifiers.push({ name: lastIdentifier.name + '.', type: 'table' }); - } else if (typeof lastIdentifier.subQuery !== 'undefined') { - identifiers.push({ name: lastIdentifier.subQuery + '.', type: 'sub-query' }); - } - } - tables.push(table); - } else if (tablePrimary.subQueryAlias) { - identifiers.push({ name: tablePrimary.subQueryAlias + '.', type: 'sub-query' }); - tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); - } - }); - if (identifiers.length > 0) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = identifiers; - } else { - parser.yy.result.suggestIdentifiers = identifiers.concat( - parser.yy.result.suggestIdentifiers - ); - } - } - parser.yy.result.suggestColumns.tables = tables; - if ( - parser.yy.result.suggestColumns.identifierChain && - parser.yy.result.suggestColumns.identifierChain.length === 0 - ) { - delete parser.yy.result.suggestColumns.identifierChain; - } - parser.yy.result.suggestColumns.linked = true; - }; - - const linkTablePrimaries = function() { - if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { - return; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if ( - typeof parser.yy.result[suggestionType] !== 'undefined' && - parser.yy.result[suggestionType].tablePrimaries && - !parser.yy.result[suggestionType].linked - ) { - parser.yy.result[suggestionType].tables = []; - parser.yy.result[suggestionType].tablePrimaries.forEach(tablePrimary => { - if (!tablePrimary.subQueryAlias) { - parser.yy.result[suggestionType].tables.push( - tablePrimary.alias - ? { - identifierChain: tablePrimary.identifierChain.concat(), - alias: tablePrimary.alias - } - : { identifierChain: tablePrimary.identifierChain.concat() } - ); - } - }); - delete parser.yy.result[suggestionType].tablePrimaries; - parser.yy.result[suggestionType].linked = true; - } - }); - - if ( - typeof parser.yy.result.suggestColumns !== 'undefined' && - !parser.yy.result.suggestColumns.linked - ) { - const tablePrimaries = filterTablePrimariesForOwner( - parser.yy.latestTablePrimaries, - parser.yy.result.suggestColumns.owner - ); - if (!parser.yy.result.suggestColumns.tables) { - parser.yy.result.suggestColumns.tables = []; - } - if (parser.yy.subQueries.length > 0) { - parser.yy.result.subQueries = parser.yy.subQueries; - } - if ( - typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || - parser.yy.result.suggestColumns.identifierChain.length === 0 - ) { - if (tablePrimaries.length > 1) { - convertTablePrimariesToSuggestions(tablePrimaries); - } else { - if ( - tablePrimaries.length === 1 && - (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias) - ) { - convertTablePrimariesToSuggestions(tablePrimaries); - } - parser.expandIdentifierChain({ - wrapper: parser.yy.result.suggestColumns, - anyOwner: false, - isColumnWrapper: true - }); - } - } else { - parser.expandIdentifierChain({ - wrapper: parser.yy.result.suggestColumns, - anyOwner: false, - isColumnWrapper: true - }); - } - } - - if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); - - const primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); - if ( - primaries.length === 0 || - (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1) - ) { - parser.yy.result.colRef.identifierChain = []; - } - } - if ( - typeof parser.yy.result.suggestKeyValues !== 'undefined' && - !parser.yy.result.suggestKeyValues.linked - ) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); - } - }; - - parser.getSubQuery = function(cols) { - const columns = []; - cols.selectList.forEach(col => { - const result = {}; - if (col.alias) { - result.alias = col.alias; - } - if (col.valueExpression && col.valueExpression.columnReference) { - result.identifierChain = col.valueExpression.columnReference; - } else if (col.asterisk) { - result.identifierChain = [{ asterisk: true }]; - } - if ( - col.valueExpression && - col.valueExpression.types && - col.valueExpression.types.length === 1 - ) { - result.type = col.valueExpression.types[0]; - } - - columns.push(result); - }); - - return { - columns: columns - }; - }; - - parser.addTablePrimary = function(ref) { - if (typeof parser.yy.latestTablePrimaries === 'undefined') { - parser.yy.latestTablePrimaries = []; - } - parser.yy.latestTablePrimaries.push(ref); - }; - - parser.suggestFileFormats = function() { - parser.suggestKeywords([ - 'AVRO', - 'KUDU', - 'ORC', - 'PARQUET', - 'RCFILE', - 'SEQUENCEFILE', - 'TEXTFILE' - ]); - }; - - parser.getKeywordsForOptionalsLR = function(optionals, keywords, override) { - let result = []; - - for (let i = 0; i < optionals.length; i++) { - if (!optionals[i] && (typeof override === 'undefined' || override[i])) { - if (keywords[i] instanceof Array) { - result = result.concat(keywords[i]); - } else { - result.push(keywords[i]); - } - } else if (optionals[i]) { - break; - } - } - return result; - }; - - parser.suggestDdlAndDmlKeywords = function(extraKeywords) { - let keywords = [ - 'ALTER', - 'CREATE', - 'DESCRIBE', - 'DROP', - 'GRANT', - 'INSERT', - 'REVOKE', - 'SELECT', - 'SET', - 'SHOW', - 'TRUNCATE', - 'UPDATE', - 'USE', - 'WITH' - ]; - - if (extraKeywords) { - keywords = keywords.concat(extraKeywords); - } - - keywords = keywords.concat([ - 'COMMENT ON', - 'COMPUTE', - 'DELETE', - 'INVALIDATE METADATA', - 'LOAD', - 'REFRESH', - 'UPSERT' - ]); - - parser.suggestKeywords(keywords); - }; - - parser.checkForSelectListKeywords = function(selectList) { - if (selectList.length === 0) { - return; - } - const last = selectList[selectList.length - 1]; - if (!last || !last.valueExpression) { - return; - } - const valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); - let keywords = []; - if (last.suggestKeywords) { - keywords = keywords.concat(last.suggestKeywords); - } - if (valueExpressionKeywords.suggestKeywords) { - keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); - } - if (valueExpressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); - parser.addColRefIfExists(last.valueExpression); - } - if (!last.alias) { - keywords.push('AS'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - }; - - parser.checkForKeywords = function(expression) { - if (expression) { - if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { - parser.suggestKeywords(expression.suggestKeywords); - } - if (expression.suggestColRefKeywords) { - parser.suggestColRefKeywords(expression.suggestColRefKeywords); - parser.addColRefIfExists(expression); - } - } - }; - - parser.createWeightedKeywords = function(keywords, weight) { - const result = []; - keywords.forEach(keyword => { - if (typeof keyword.weight !== 'undefined') { - keyword.weight = weight + keyword.weight / 10; - result.push(keyword); - } else { - result.push({ value: keyword, weight: weight }); - } - }); - return result; - }; - - parser.suggestKeywords = function(keywords) { - const weightedKeywords = []; - if (keywords.length === 0) { - return; - } - keywords.forEach(keyword => { - if (typeof keyword.weight !== 'undefined') { - weightedKeywords.push(keyword); - } else { - weightedKeywords.push({ value: keyword, weight: -1 }); - } - }); - weightedKeywords.sort((a, b) => { - if (a.weight !== b.weight) { - return b.weight - a.weight; - } - return a.value.localeCompare(b.value); - }); - parser.yy.result.suggestKeywords = weightedKeywords; - }; - - parser.suggestColRefKeywords = function(colRefKeywords) { - parser.yy.result.suggestColRefKeywords = colRefKeywords; - }; - - parser.suggestTablesOrColumns = function(identifier) { - if (typeof parser.yy.latestTablePrimaries == 'undefined') { - parser.suggestTables({ identifierChain: [{ name: identifier }] }); - return; - } - const tableRef = parser.yy.latestTablePrimaries.filter(tablePrimary => { - return equalIgnoreCase(tablePrimary.alias, identifier); - }); - if (tableRef.length > 0) { - parser.suggestColumns({ identifierChain: [{ name: identifier }] }); - } else { - parser.suggestTables({ identifierChain: [{ name: identifier }] }); - } - }; - - parser.suggestFunctions = function(details) { - parser.yy.result.suggestFunctions = details || {}; - }; - - parser.suggestAggregateFunctions = function() { - const primaries = []; - const aliases = {}; - parser.yy.latestTablePrimaries.forEach(primary => { - if (typeof primary.alias !== 'undefined') { - aliases[primary.alias] = true; - } - // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) - if ( - typeof primary.identifierChain !== 'undefined' && - !aliases[primary.identifierChain[0].name] && - typeof primary.owner === 'undefined' - ) { - primaries.push(primary); - } - }); - parser.yy.result.suggestAggregateFunctions = { tablePrimaries: primaries }; - }; - - parser.suggestAnalyticFunctions = function() { - parser.yy.result.suggestAnalyticFunctions = true; - }; - - parser.suggestSetOptions = function() { - parser.yy.result.suggestSetOptions = true; - }; - - parser.suggestIdentifiers = function(identifiers) { - parser.yy.result.suggestIdentifiers = identifiers; - }; - - parser.suggestColumns = function(details) { - if (typeof details === 'undefined') { - details = { identifierChain: [] }; - } else if (typeof details.identifierChain === 'undefined') { - details.identifierChain = []; - } - parser.yy.result.suggestColumns = details; - }; - - parser.suggestGroupBys = function(details) { - parser.yy.result.suggestGroupBys = details || {}; - }; - - parser.suggestOrderBys = function(details) { - parser.yy.result.suggestOrderBys = details || {}; - }; - - parser.suggestFilters = function(details) { - parser.yy.result.suggestFilters = details || {}; - }; - - parser.suggestKeyValues = function(details) { - parser.yy.result.suggestKeyValues = details || {}; - }; - - parser.suggestTables = function(details) { - parser.yy.result.suggestTables = details || {}; - }; - - const adjustLocationForCursor = function(location) { - // columns are 0-based and lines not, so add 1 to cols - const newLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - if (parser.yy.cursorFound) { - if ( - parser.yy.cursorFound.first_line === newLocation.first_line && - parser.yy.cursorFound.last_column <= newLocation.first_column - ) { - let additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. - newLocation.first_column = newLocation.first_column + additionalSpace; - newLocation.last_column = newLocation.last_column + additionalSpace; - } - } - return newLocation; - }; - - parser.addFunctionLocation = function(location, functionName) { - // Remove trailing '(' from location - const adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column, - last_column: location.last_column - 1 - }; - parser.yy.locations.push({ - type: 'function', - location: adjustLocationForCursor(adjustedLocation), - function: functionName.toLowerCase() - }); - }; - - parser.addStatementLocation = function(location) { - // Don't report lonely cursor as a statement - if ( - location.first_line === location.last_line && - Math.abs(location.last_column - location.first_column) === 1 - ) { - return; - } - let adjustedLocation; - if ( - parser.yy.cursorFound && - parser.yy.cursorFound.last_line === location.last_line && - parser.yy.cursorFound.first_column >= location.first_column && - parser.yy.cursorFound.last_column <= location.last_column - ) { - const additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) - }; - } else { - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - } - - parser.yy.locations.push({ - type: 'statement', - location: adjustedLocation - }); - }; - - parser.firstDefined = function() { - for (let i = 0; i + 1 < arguments.length; i += 2) { - if (arguments[i]) { - return arguments[i + 1]; - } - } - }; - - parser.addClauseLocation = function(type, precedingLocation, locationIfPresent, isCursor) { - let location; - if (isCursor) { - if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { - location = { - type: type, - missing: true, - location: adjustLocationForCursor({ - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - }; - } else { - location = { - type: type, - missing: false, - location: { - first_line: locationIfPresent.last_line, - first_column: locationIfPresent.last_column - 1, - last_line: locationIfPresent.last_line, - last_column: - locationIfPresent.last_column - - 1 + - parser.yy.partialLengths.right + - parser.yy.partialLengths.left - } - }; - } - } else { - location = { - type: type, - missing: !locationIfPresent, - location: adjustLocationForCursor( - locationIfPresent || { - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - } - ) - }; - } - if (parser.isInSubquery()) { - location.subquery = true; - } - parser.yy.locations.push(location); - }; - - parser.addStatementTypeLocation = function(identifier, location, additionalText) { - // Don't add if already there except for SELECT - if (identifier !== 'SELECT' && parser.yy.allLocations) { - for (let i = parser.yy.allLocations.length - 1; i >= 0; i--) { - if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statement') { - break; - } - if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statementType') { - return; - } - } - } - const loc = { - type: 'statementType', - location: adjustLocationForCursor(location), - identifier: identifier - }; - if (typeof additionalText !== 'undefined') { - switch (identifier) { - case 'ALTER': - if (/ALTER\s+VIEW/i.test(additionalText)) { - loc.identifier = 'ALTER VIEW'; - } else { - loc.identifier = 'ALTER TABLE'; - } - break; - case 'COMPUTE': - loc.identifier = 'COMPUTE STATS'; - break; - case 'CREATE': - if (/CREATE\s+VIEW/i.test(additionalText)) { - loc.identifier = 'CREATE VIEW'; - } else if (/CREATE\s+TABLE/i.test(additionalText)) { - loc.identifier = 'CREATE TABLE'; - } else if (/CREATE\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'CREATE DATABASE'; - } else if (/CREATE\s+ROLE/i.test(additionalText)) { - loc.identifier = 'CREATE ROLE'; - } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'CREATE FUNCTION'; - } else { - loc.identifier = 'CREATE TABLE'; - } - break; - case 'DROP': - if (/DROP\s+VIEW/i.test(additionalText)) { - loc.identifier = 'DROP VIEW'; - } else if (/DROP\s+TABLE/i.test(additionalText)) { - loc.identifier = 'DROP TABLE'; - } else if (/DROP\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'DROP DATABASE'; - } else if (/DROP\s+ROLE/i.test(additionalText)) { - loc.identifier = 'DROP ROLE'; - } else if (/DROP\s+STATS/i.test(additionalText)) { - loc.identifier = 'DROP STATS'; - } else if (/DROP\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'DROP FUNCTION'; - } else { - loc.identifier = 'DROP TABLE'; - } - break; - case 'INVALIDATE': - loc.identifier = 'INVALIDATE METADATA'; - break; - case 'LOAD': - loc.identifier = 'LOAD DATA'; - break; - case 'TRUNCATE': - loc.identifier = 'TRUNCATE TABLE'; - break; - default: - } - } - parser.yy.locations.push(loc); - }; - - parser.addFileLocation = function(location, path) { - parser.yy.locations.push({ - type: 'file', - location: adjustLocationForCursor(location), - path: path - }); - }; - - parser.addDatabaseLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addTableLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addColumnAliasLocation = function(location, alias, parentLocation) { - const aliasLocation = { - type: 'alias', - source: 'column', - alias: alias, - location: adjustLocationForCursor(location), - parentLocation: adjustLocationForCursor(parentLocation) - }; - if ( - parser.yy.locations.length && - parser.yy.locations[parser.yy.locations.length - 1].type === 'column' - ) { - const closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; - if ( - closestColumn.location.first_line === aliasLocation.parentLocation.first_line && - closestColumn.location.last_line === aliasLocation.parentLocation.last_line && - closestColumn.location.first_column === aliasLocation.parentLocation.first_column && - closestColumn.location.last_column === aliasLocation.parentLocation.last_column - ) { - parser.yy.locations[parser.yy.locations.length - 1].alias = alias; - } - } - parser.yy.locations.push(aliasLocation); - }; - - parser.addTableAliasLocation = function(location, alias, identifierChain) { - parser.yy.locations.push({ - type: 'alias', - source: 'table', - alias: alias, - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addSubqueryAliasLocation = function(location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'subquery', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addAsteriskLocation = function(location, identifierChain) { - parser.yy.locations.push({ - type: 'asterisk', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addVariableLocation = function(location, value) { - if (/\${[^}]*}/.test(value)) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: value - }); - } - }; - - parser.addColumnLocation = function(location, identifierChain) { - const isVariable = - identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); - if (isVariable) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }); - } else { - parser.yy.locations.push({ - type: 'column', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }); - } - }; - - parser.addCteAliasLocation = function(location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'cte', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addUnknownLocation = function(location, identifierChain) { - const isVariable = - identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); - let loc; - if (isVariable) { - loc = { - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }; - } else { - loc = { - type: 'unknown', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }; - } - parser.yy.locations.push(loc); - return loc; - }; - - parser.addNewDatabaseLocation = function(location, identifierChain) { - parser.yy.definitions.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addNewTableLocation = function(location, identifierChain, colSpec) { - const columns = []; - if (colSpec) { - colSpec.forEach(col => { - columns.push({ - identifierChain: [col.identifier], // TODO: Complex - type: col.type, - location: adjustLocationForCursor(col.location) - }); - }); - } - parser.yy.definitions.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - columns: columns - }); - }; - - parser.addColRefToVariableIfExists = function(left, right) { - if ( - left && - left.columnReference && - left.columnReference.length && - right && - right.columnReference && - right.columnReference.length && - parser.yy.locations.length > 1 - ) { - const addColRefToVariableLocation = function(variableValue, colRef) { - // See if colref is actually an alias - if (colRef.length === 1 && colRef[0].name) { - parser.yy.locations.some(location => { - if (location.type === 'column' && location.alias === colRef[0].name) { - colRef = location.identifierChain; - return true; - } - }); - } - - for (let i = parser.yy.locations.length - 1; i > 0; i--) { - const location = parser.yy.locations[i]; - if (location.type === 'variable' && location.value === variableValue) { - location.colRef = { identifierChain: colRef }; - break; - } - } - }; - - if (/\${[^}]*}/.test(left.columnReference[0].name)) { - // left is variable - addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); - } else if (/\${[^}]*}/.test(right.columnReference[0].name)) { - // right is variable - addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); - } - } - }; - - parser.suggestDatabases = function(details) { - parser.yy.result.suggestDatabases = details || {}; - }; - - parser.suggestHdfs = function(details) { - parser.yy.result.suggestHdfs = details || {}; - }; - - parser.suggestValues = function(details) { - parser.yy.result.suggestValues = details || {}; - }; - - parser.determineCase = function(text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - const cursorIndex = parser.yy.partialCursor - ? yytext.indexOf('\u2021') - : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - const remainder = yytext.substring(cursorIndex + 1); - const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) - .length; - if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - let lexerModified = false; - - /** - * Main parser function - */ - parser.parseSql = function(beforeCursor, afterCursor, debug) { - // Jison counts CRLF as two lines in the locations - beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); - afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); - parser.yy.result = { locations: [] }; - parser.yy.lowerCase = false; - parser.yy.locations = []; - parser.yy.definitions = []; - parser.yy.allLocations = []; - parser.yy.subQueries = []; - parser.yy.errors = []; - parser.yy.selectListAliases = []; - - parser.yy.locationsStack = []; - parser.yy.primariesStack = []; - parser.yy.subQueriesStack = []; - parser.yy.resultStack = []; - parser.yy.selectListAliasesStack = []; - parser.yy.activeDialect = 'impala'; - - delete parser.yy.caseDetermined; - delete parser.yy.cursorFound; - delete parser.yy.partialCursor; - - // Fix for parser bug when switching lexer states - if (!lexerModified) { - const originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function(input, yy) { - return originalSetInput.bind(parser.lexer)(input, yy); - }; - lexerModified = true; - } - - parser.prepareNewStatement(); - - const REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after - - if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if (beforeCursor.length - beforeCursor.lastIndexOf(';') > REASONABLE_SURROUNDING_LENGTH) { - // Bail out if the last complete statement is more than 150000 chars before - return {}; - } - // Cut it at the first statement found within 150000 chars before - const lastReasonableChunk = beforeCursor.substring( - beforeCursor.length - REASONABLE_SURROUNDING_LENGTH - ); - beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); - } - - if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if (afterCursor.length - afterCursor.indexOf(';') > REASONABLE_SURROUNDING_LENGTH) { - // No need to bail out for what's comes after, we can still get keyword completion - afterCursor = ''; - } else { - // Cut it at the last statement found within 150000 chars after - const firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); - afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); - } - } - - parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); - - if (parser.yy.partialLengths.left > 0) { - beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); - } - - if (parser.yy.partialLengths.right > 0) { - afterCursor = afterCursor.substring(parser.yy.partialLengths.right); - } - - let result; - try { - // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer - result = parser.parse( - beforeCursor + - (beforeCursor.length === 0 || /[\s(]$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + - afterCursor - ); - } catch (err) { - // On any error try to at least return any existing result - if (typeof parser.yy.result === 'undefined') { - throw err; - } - if (debug) { - console.warn(err); - console.warn(err.stack); - } - result = parser.yy.result; - } - if (parser.yy.errors.length > 0) { - parser.yy.result.errors = parser.yy.errors; - if (debug) { - console.warn(parser.yy.errors); - } - } - try { - linkTablePrimaries(); - parser.commitLocations(); - // Clean up and prioritize - prioritizeSuggestions(); - } catch (err) { - if (debug) { - console.warn(err); - console.warn(err.stack); - } - } - - parser.yy.allLocations.sort((a, b) => { - if (a.location.first_line !== b.location.first_line) { - return a.location.first_line - b.location.first_line; - } - if (a.location.first_column !== b.location.first_column) { - return a.location.first_column - b.location.first_column; - } - if (a.location.last_column !== b.location.last_column) { - return b.location.last_column - a.location.last_column; - } - return b.type.localeCompare(a.type); - }); - parser.yy.result.locations = parser.yy.allLocations; - parser.yy.result.definitions = parser.yy.definitions; - - parser.yy.result.locations.forEach(location => { - delete location.linked; - }); - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - delete parser.yy.result.suggestColumns.linked; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { - if (typeof parser.yy.result[suggestionType] !== 'undefined') { - delete parser.yy.result[suggestionType].linked; - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - delete parser.yy.result.colRef.linked; - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { - delete parser.yy.result.suggestKeyValues.linked; - } - - if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { - // Remove the cursor from expected tokens - result.error.expected = result.error.expected.filter(token => token.indexOf('CURSOR') === -1); - } - - if (typeof result.error !== 'undefined' && result.error.recoverable) { - delete result.error; - } - - // Adjust all the statement locations to include white space surrounding them - let lastStatementLocation = null; - result.locations.forEach(location => { - if (location.type === 'statement') { - if (lastStatementLocation === null) { - location.location.first_line = 1; - location.location.first_column = 1; - } else { - location.location.first_line = lastStatementLocation.location.last_line; - location.location.first_column = lastStatementLocation.location.last_column + 1; - } - lastStatementLocation = location; - } - }); - - return result; - }; -}; - -const SYNTAX_PARSER_NOOP_FUNCTIONS = [ - 'addAsteriskLocation', - 'addClauseLocation', - 'addColRefIfExists', - 'addColRefToVariableIfExists', - 'addColumnAliasLocation', - 'addColumnLocation', - 'addCommonTableExpressions', - 'addCteAliasLocation', - 'addDatabaseLocation', - 'addFileLocation', - 'addFunctionLocation', - 'addNewDatabaseLocation', - 'addNewTableLocation', - 'addStatementLocation', - 'addStatementTypeLocation', - 'addSubqueryAliasLocation', - 'addTableAliasLocation', - 'addTableLocation', - 'addTablePrimary', - 'addUnknownLocation', - 'addVariableLocation', - 'applyArgumentTypesToSuggestions', - 'applyTypeToSuggestions', - 'checkForKeywords', - 'checkForSelectListKeywords', - 'commitLocations', - 'firstDefined', - 'getSelectListKeywords', - 'getSubQuery', - 'getValueExpressionKeywords', - 'identifyPartials', - 'popQueryState', - 'prepareNewStatement', - 'pushQueryState', - 'selectListNoTableSuggest', - 'suggestAggregateFunctions', - 'suggestAnalyticFunctions', - 'suggestColRefKeywords', - 'suggestColumns', - 'suggestDatabases', - 'suggestDdlAndDmlKeywords', - 'suggestFileFormats', - 'suggestFilters', - 'suggestFunctions', - 'suggestGroupBys', - 'suggestHdfs', - 'suggestIdentifiers', - 'suggestJoinConditions', - 'suggestJoins', - 'suggestKeyValues', - 'suggestKeywords', - 'suggestOrderBys', - 'suggestSelectListAliases', - 'suggestTables', - 'suggestTablesOrColumns', - 'suggestValueExpressionKeywords', - 'suggestValues', - 'valueExpressionSuggest' -]; - -const SYNTAX_PARSER_NOOP = function() {}; - -const initSyntaxParser = function(parser) { - // Noop functions for compatibility with the autocomplete parser as the grammar is shared - SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(noopFn => { - parser[noopFn] = SYNTAX_PARSER_NOOP; - }); - - parser.yy.locations = [{}]; - - parser.determineCase = function(text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.getKeywordsForOptionalsLR = function() { - return []; - }; - - parser.mergeSuggestKeywords = function() { - return {}; - }; - - parser.getTypeKeywords = function() { - return []; - }; - - parser.getColumnDataTypeKeywords = function() { - return []; - }; - - parser.findCaseType = function() { - return { types: ['T'] }; - }; - - parser.findReturnTypes = function() { - return ['T']; - }; - - parser.expandImpalaIdentifierChain = function() { - return []; - }; - - parser.expandIdentifierChain = function() { - return []; - }; - - parser.createWeightedKeywords = function() { - return []; - }; - - parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - const cursorIndex = parser.yy.partialCursor - ? yytext.indexOf('\u2021') - : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - const remainder = yytext.substring(cursorIndex + 1); - const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) - .length; - if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - let lexerModified = false; - - parser.yy.parseError = function(str, hash) { - parser.yy.error = hash; - }; - - const IGNORED_EXPECTED = { - ';': true, - '.': true, - EOF: true, - UNSIGNED_INTEGER: true, - UNSIGNED_INTEGER_E: true, - REGULAR_IDENTIFIER: true, - CURSOR: true, - PARTIAL_CURSOR: true, - HDFS_START_QUOTE: true, - HDFS_PATH: true, - HDFS_END_QUOTE: true, - COMPARISON_OPERATOR: true, // TODO: Expand in results when found - ARITHMETIC_OPERATOR: true, // TODO: Expand in results when found - VARIABLE_REFERENCE: true, - BACKTICK: true, - VALUE: true, - PARTIAL_VALUE: true, - SINGLE_QUOTE: true, - DOUBLE_QUOTE: true - }; - - const CLEAN_EXPECTED = { - BETWEEN_AND: 'AND', - OVERWRITE_DIRECTORY: 'OVERWRITE', - STORED_AS_DIRECTORIES: 'STORED', - LIKE_PARQUET: 'LIKE', - PARTITION_VALUE: 'PARTITION' - }; - - parser.parseSyntax = function(beforeCursor, afterCursor, debug) { - parser.yy.caseDetermined = false; - parser.yy.error = undefined; - - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - parser.yy.activeDialect = 'impala'; - - // Fix for parser bug when switching lexer states - if (!lexerModified) { - const originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function(input, yy) { - return originalSetInput.bind(parser.lexer)(input, yy); - }; - lexerModified = true; - } - - // TODO: Find a way around throwing an exception when the parser finds a syntax error - try { - parser.yy.error = false; - parser.parse(beforeCursor + afterCursor); - } catch (err) { - if (debug) { - console.warn(err); - console.warn(err.stack); - console.warn(parser.yy.error); - } - } - - if ( - parser.yy.error && - (parser.yy.error.loc.last_column < beforeCursor.length || - !beforeCursor.endsWith(parser.yy.error.text)) - ) { - const weightedExpected = []; - - const addedExpected = {}; - - const isLowerCase = - (parser.yy.caseDetermined && parser.yy.lowerCase) || - parser.yy.error.text.toLowerCase() === parser.yy.error.text; - - if ( - parser.yy.error.expected.length === 2 && - parser.yy.error.expected.indexOf("';'") !== -1 && - parser.yy.error.expected.indexOf("'EOF'") !== -1 - ) { - parser.yy.error.expected = []; - parser.yy.error.expectedStatementEnd = true; - return parser.yy.error; - } - for (let i = 0; i < parser.yy.error.expected.length; i++) { - let expected = parser.yy.error.expected[i]; - // Strip away the surrounding ' chars - expected = expected.substring(1, expected.length - 1); - // TODO: Only suggest alphanumeric? - if (expected === 'REGULAR_IDENTIFIER') { - parser.yy.error.expectedIdentifier = true; - if (/^<[a-z]+>/.test(parser.yy.error.token)) { - const text = '`' + parser.yy.error.text + '`'; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - parser.yy.error.possibleReserved = true; - } - } else if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { - if (/^<[a-z]+>/.test(expected)) { - continue; - } - expected = CLEAN_EXPECTED[expected] || expected; - if (expected === parser.yy.error.text.toUpperCase()) { - // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' - return false; - } - const text = isLowerCase ? expected.toLowerCase() : expected; - if (text && !addedExpected[text]) { - addedExpected[text] = true; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - } - } - } - if (weightedExpected.length === 0) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - weightedExpected.sort((a, b) => { - if (a.distance === b.distance) { - return a.text.localeCompare(b.text); - } - return a.distance - b.distance; - }); - parser.yy.error.expected = weightedExpected; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } else if (parser.yy.error) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - return false; - }; -}; - -const initGlobalSearchParser = function(parser) { - parser.identifyPartials = function(beforeCursor, afterCursor) { - const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return { - left: beforeMatch ? beforeMatch[0].length : 0, - right: afterMatch ? afterMatch[0].length : 0 - }; - }; - - parser.mergeFacets = function(a, b) { - if (!a.facets) { - a.facets = {}; - } - if (!b.facets) { - return; - } - Object.keys(b.facets).forEach(key => { - if (a.facets[key]) { - Object.keys(b.facets[key]).forEach(val => { - a.facets[key][val.toLowerCase()] = true; - }); - } else { - a.facets[key] = b.facets[key]; - } - }); - }; - - parser.mergeText = function(a, b) { - if (!a.text) { - a.text = []; - } - if (!b.text) { - return; - } - a.text = a.text.concat(b.text); - }; - - parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - const cursorIndex = yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - const remainder = yytext.substring(cursorIndex + 1); - const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) - .length; - if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - parser.parseGlobalSearch = function(beforeCursor, afterCursor, debug) { - delete parser.yy.cursorFound; - - let result; - try { - result = parser.parse(beforeCursor + '\u2020' + afterCursor); - } catch (err) { - if (debug) { - console.warn(err); - console.warn(err.stack); - console.warn(parser.yy.error); - } - return { - facets: {}, - text: [] - }; - } - return result; - }; -}; - -export default { - initSqlParser: initSqlParser, - initSyntaxParser: initSyntaxParser, - initGlobalSearchParser: initGlobalSearchParser -}; diff --git a/src/core/parse/sqlFunctions.js b/src/core/parse/sqlFunctions.js deleted file mode 100644 index b6a533c..0000000 --- a/src/core/parse/sqlFunctions.js +++ /dev/null @@ -1,4951 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -const PigFunctions = (function() { - const EVAL_FUNCTIONS = { - avg: { signature: 'AVG(%VAR%)', draggable: 'AVG()' }, - concat: { signature: 'CONCAT(%VAR1%, %VAR2%)', draggable: 'CONCAT()' }, - count: { signature: 'COUNT(%VAR%)', draggable: 'COUNT()' }, - count_start: { signature: 'COUNT_START(%VAR%)', draggable: 'COUNT_START()' }, - is_empty: { signature: 'IsEmpty(%VAR%)', draggable: 'IsEmpty()' }, - diff: { signature: 'DIFF(%VAR1%, %VAR2%)', draggable: 'DIFF()' }, - max: { signature: 'MAX(%VAR%)', draggable: 'MAX()' }, - min: { signature: 'MIN(%VAR%)', draggable: 'MIN()' }, - size: { signature: 'SIZE(%VAR%)', draggable: 'SIZE()' }, - sum: { signature: 'SUM(%VAR%)', draggable: 'SUM()' }, - tokenize: { signature: 'TOKENIZE(%VAR%, %DELIM%)', draggable: 'TOKENIZE()' } - }; - - const RELATIONAL_OPERATORS = { - cogroup: { signature: 'COGROUP %VAR% BY %VAR%', draggable: 'COGROUP %VAR% BY %VAR%' }, - cross: { signature: 'CROSS %VAR1%, %VAR2%;', draggable: 'CROSS %VAR1%, %VAR2%;' }, - distinct: { signature: 'DISTINCT %VAR%;', draggable: 'DISTINCT %VAR%;' }, - filter: { signature: 'FILTER %VAR% BY %COND%', draggable: 'FILTER %VAR% BY %COND%' }, - flatten: { signature: 'FLATTEN(%VAR%)', draggable: 'FLATTEN()' }, - foreach_generate: { - signature: 'FOREACH %DATA% GENERATE %NEW_DATA%;', - draggable: 'FOREACH %DATA% GENERATE %NEW_DATA%;' - }, - foreach: { - signature: 'FOREACH %DATA% {%NESTED_BLOCK%};', - draggable: 'FOREACH %DATA% {%NESTED_BLOCK%};' - }, - group_by: { signature: 'GROUP %VAR% BY %VAR%', draggable: 'GROUP %VAR% BY %VAR%' }, - group_all: { signature: 'GROUP %VAR% ALL', draggable: 'GROUP %VAR% ALL' }, - join: { signature: 'JOIN %VAR% BY ', draggable: 'JOIN %VAR% BY ' }, - limit: { signature: 'LIMIT %VAR% %N%', draggable: 'LIMIT %VAR% %N%' }, - order: { signature: 'ORDER %VAR% BY %FIELD%', draggable: 'ORDER %VAR% BY %FIELD%' }, - sample: { signature: 'SAMPLE %VAR% %SIZE%', draggable: 'SAMPLE %VAR% %SIZE%' }, - split: { - signature: 'SPLIT %VAR1% INTO %VAR2% IF %EXPRESSIONS%', - draggable: 'SPLIT %VAR1% INTO %VAR2% IF %EXPRESSIONS%' - }, - union: { signature: 'UNION %VAR1%, %VAR2%', draggable: 'UNION %VAR1%, %VAR2%' } - }; - - const INPUT_OUTPUT = { - load: { signature: "LOAD '%FILE%';", draggable: "LOAD '%FILE%';" }, - dump: { signature: 'DUMP %VAR%;', draggable: 'DUMP %VAR%;' }, - store: { signature: 'STORE %VAR% INTO %PATH%;', draggable: 'STORE %VAR% INTO %PATH%;' } - }; - - const DEBUG = { - explain: { signature: 'EXPLAIN %VAR%;', draggable: 'EXPLAIN %VAR%;' }, - illustrate: { signature: 'ILLUSTRATE %VAR%;', draggable: 'ILLUSTRATE %VAR%;' }, - describe: { signature: 'DESCRIBE %VAR%;', draggable: 'DESCRIBE %VAR%;' } - }; - - const HCATALOG = { - LOAD: { - signature: "LOAD '%TABLE%' USING org.apache.hcatalog.pig.HCatLoader();", - draggable: "LOAD '%TABLE%' USING org.apache.hcatalog.pig.HCatLoader();" - } - }; - - const MATH_FUNCTIONS = { - abs: { signature: 'ABS(%VAR%)', draggable: 'ABS()' }, - acos: { signature: 'ACOS(%VAR%)', draggable: 'ACOS()' }, - asin: { signature: 'ASIN(%VAR%)', draggable: 'ASIN()' }, - atan: { signature: 'ATAN(%VAR%)', draggable: 'ATAN()' }, - cbrt: { signature: 'CBRT(%VAR%)', draggable: 'CBRT()' }, - ceil: { signature: 'CEIL(%VAR%)', draggable: 'CEIL()' }, - cos: { signature: 'COS(%VAR%)', draggable: 'COS()' }, - cosh: { signature: 'COSH(%VAR%)', draggable: 'COSH()' }, - exp: { signature: 'EXP(%VAR%)', draggable: 'EXP()' }, - floor: { signature: 'FLOOR(%VAR%)', draggable: 'FLOOR()' }, - log: { signature: 'LOG(%VAR%)', draggable: 'LOG()' }, - log10: { signature: 'LOG10(%VAR%)', draggable: 'LOG10()' }, - random: { signature: 'RANDOM(%VAR%)', draggable: 'RANDOM()' }, - round: { signature: 'ROUND(%VAR%)', draggable: 'ROUND()' }, - sin: { signature: 'SIN(%VAR%)', draggable: 'SIN()' }, - sinh: { signature: 'SINH(%VAR%)', draggable: 'SINH()' }, - sqrt: { signature: 'SQRT(%VAR%)', draggable: 'SQRT()' }, - tan: { signature: 'TAN(%VAR%)', draggable: 'TAN()' }, - tanh: { signature: 'TANH(%VAR%)', draggable: 'TANH()' } - }; - - const TUPLE_BAG_MAP = { - totuple: { signature: 'TOTUPLE(%VAR%)', draggable: 'TOTUPLE()' }, - tobag: { signature: 'TOBAG(%VAR%)', draggable: 'TOBAG()' }, - tomap: { signature: 'TOMAP(%KEY%, %VALUE%)', draggable: 'TOMAP()' }, - top: { signature: 'TOP(%topN%, %COLUMN%, %RELATION%)', draggable: 'TOP()' } - }; - - const STRING_FUNCTIONS = { - indexof: { - signature: "INDEXOF(%STRING%, '%CHARACTER%', %STARTINDEX%)", - draggable: 'INDEXOF()' - }, - last_index_of: { - signature: "LAST_INDEX_OF(%STRING%, '%CHARACTER%', %STARTINDEX%)", - draggable: 'LAST_INDEX_OF()' - }, - lower: { signature: 'LOWER(%STRING%)', draggable: 'LOWER()' }, - regex_extract: { - signature: 'REGEX_EXTRACT(%STRING%, %REGEX%, %INDEX%)', - draggable: 'REGEX_EXTRACT()' - }, - regex_extract_all: { - signature: 'REGEX_EXTRACT_ALL(%STRING%, %REGEX%)', - draggable: 'REGEX_EXTRACT_ALL()' - }, - replace: { signature: "REPLACE(%STRING%, '%oldChar%', '%newChar%')", draggable: 'REPLACE()' }, - strsplit: { signature: 'STRSPLIT(%STRING%, %REGEX%, %LIMIT%)', draggable: 'STRSPLIT()' }, - substring: { - signature: 'SUBSTRING(%STRING%, %STARTINDEX%, %STOPINDEX%)', - draggable: 'SUBSTRING()' - }, - trim: { signature: 'TRIM(%STRING%)', draggable: 'TRIM()' }, - ucfirst: { signature: 'UCFIRST(%STRING%)', draggable: 'UCFIRST()' }, - upper: { signature: 'UPPER(%STRING%)', draggable: 'UPPER()' } - }; - - const MACROS = { - import: { signature: "IMPORT '%PATH_TO_MACRO%';", draggable: "IMPORT '%PATH_TO_MACRO%';" } - }; - - const HBASE = { - load: { - signature: - "LOAD 'hbase://%TABLE%' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('%columnList%')", - draggable: - "LOAD 'hbase://%TABLE%' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('%columnList%')" - }, - store: { - signature: - "STORE %VAR% INTO 'hbase://%TABLE%' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('%columnList%')", - draggable: - "STORE %VAR% INTO 'hbase://%TABLE%' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('%columnList%')" - } - }; - - const PYTHON_UDF = { - register: { - signature: "REGISTER 'python_udf.py' USING jython AS myfuncs;", - draggable: "REGISTER 'python_udf.py' USING jython AS myfuncs;" - } - }; - - const CATEGORIZED_FUNCTIONS = [ - { name: 'Eval', functions: EVAL_FUNCTIONS }, - { name: 'Relational Operators', functions: RELATIONAL_OPERATORS }, - { name: 'Input and Output', functions: INPUT_OUTPUT }, - { name: 'Debug', functions: DEBUG }, - { name: 'HCatalog', functions: HCATALOG }, - { name: 'Math', functions: MATH_FUNCTIONS }, - { name: 'Tuple, Bag and Map', functions: TUPLE_BAG_MAP }, - { name: 'String', functions: STRING_FUNCTIONS }, - { name: 'Macros', functions: MACROS }, - { name: 'HBase', functions: HBASE }, - { name: 'Python UDF', functions: PYTHON_UDF } - ]; - - return { - CATEGORIZED_FUNCTIONS: CATEGORIZED_FUNCTIONS - }; -})(); - -const SqlSetOptions = (function() { - const SET_OPTIONS = { - hive: {}, - impala: { - ALLOW_ERASURE_CODED_FILES: { - description: - 'Use the ALLOW_ERASURE_CODED_FILES query option to enable or disable the support of erasure coded files in Impala. Until Impala is fully tested and certified with erasure coded files, this query option is set to FALSE by default.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - APPX_COUNT_DISTINCT: { - description: - 'Allows multiple COUNT(DISTINCT) operations within a single query, by internally rewriting each COUNT(DISTINCT) to use the NDV() function. The resulting count is approximate rather than precise.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - BATCH_SIZE: { - description: - 'Number of rows evaluated at a time by SQL operators. Unspecified or a size of 0 uses a predefined default size. Using a large number improves responsiveness, especially for scan operations, at the cost of a higher memory footprint.', - type: 'Numeric', - default: '0 (meaning the predefined default of 1024)' - }, - BUFFER_POOL_LIMIT: { - description: - 'Defines a limit on the amount of memory that a query can allocate from the internal buffer pool. The value for this limit applies to the memory on each host, not the aggregate memory across the cluster. Typically not changed by users, except during diagnosis of out-of-memory errors during queries.', - type: 'Integer', - default: - 'The default setting for this option is the lower of 80% of the MEM_LIMIT setting, or the MEM_LIMIT setting minus 100 MB.' - }, - COMPRESSION_CODEC: { - description: - 'When Impala writes Parquet data files using the INSERT statement, the underlying compression is controlled by the COMPRESSION_CODEC query option.', - type: 'String; SNAPPY, GZIP or NONE', - default: 'SNAPPY' - }, - COMPUTE_STATS_MIN_SAMPLE_SIZE: { - description: - 'The COMPUTE_STATS_MIN_SAMPLE_SIZE query option specifies the minimum number of bytes that will be scanned in COMPUTE STATS TABLESAMPLE, regardless of the user-supplied sampling percent. This query option prevents sampling for very small tables where accurate stats can be obtained cheaply without sampling because the minimum sample size is required to get meaningful stats.', - type: 'Integer', - default: '1073741824 (1GB)' - }, - DEFAULT_JOIN_DISTRIBUTION_MODE: { - description: - 'This option determines the join distribution that Impala uses when any of the tables involved in a join query is missing statistics.\n\nThe setting DEFAULT_JOIN_DISTRIBUTION_MODE=SHUFFLE is recommended when setting up and deploying new clusters, because it is less likely to result in serious consequences such as spilling or out-of-memory errors if the query plan is based on incomplete information.', - type: - 'Integer; The allowed values are BROADCAST (equivalent to 0) or SHUFFLE (equivalent to 1).', - default: '0' - }, - DEFAULT_SPILLABLE_BUFFER_SIZE: { - description: - 'Specifies the default size for a memory buffer used when the spill-to-disk mechanism is activated, for example for queries against a large table with no statistics, or large join operations.\n\nAccepts a numeric value that represents a size in bytes; you can also use a suffix of m or mb for megabytes, or g or gb for gigabytes. If you specify a value with unrecognized formats, subsequent queries fail with an error.', - type: 'Integer', - default: '2097152 (2 MB)' - }, - DISABLE_CODEGEN: { - description: - 'This is a debug option, intended for diagnosing and working around issues that cause crashes. If a query fails with an "illegal instruction" or other hardware-specific message, try setting DISABLE_CODEGEN=true and running the query again. If the query succeeds only when the DISABLE_CODEGEN option is turned on, submit the problem to Cloudera Support and include that detail in the problem report. Do not otherwise run with this setting turned on, because it results in lower overall performance.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - DISABLE_ROW_RUNTIME_FILTERING: { - description: - 'The DISABLE_ROW_RUNTIME_FILTERING query option reduces the scope of the runtime filtering feature. Queries still dynamically prune partitions, but do not apply the filtering logic to individual rows within partitions.\n\nOnly applies to queries against Parquet tables. For other file formats, Impala only prunes at the level of partitions, not individual rows.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - DISABLE_STREAMING_PREAGGREGATIONS: { - description: - 'Turns off the "streaming preaggregation" optimization that is available in CDH 5.7 / Impala 2.5 and higher. This optimization reduces unnecessary work performed by queries that perform aggregation operations on columns with few or no duplicate values, for example DISTINCT id_column or GROUP BY unique_column. If the optimization causes regressions in existing queries that use aggregation functions, you can turn it off as needed by setting this query option.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - DISABLE_UNSAFE_SPILLS: { - description: - 'Enable this option if you prefer to have queries fail when they exceed the Impala memory limit, rather than write temporary data to disk.\n\nQueries that "spill" to disk typically complete successfully, when in earlier Impala releases they would have failed. However, queries with exorbitant memory requirements due to missing statistics or inefficient join clauses could become so slow as a result that you would rather have them cancelled automatically and reduce the memory usage through standard Impala tuning techniques.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - EXEC_SINGLE_NODE_ROWS_THRESHOLD: { - description: - 'This setting controls the cutoff point (in terms of number of rows scanned) below which Impala treats a query as a "small" query, turning off optimizations such as parallel execution and native code generation. The overhead for these optimizations is applicable for queries involving substantial amounts of data, but it makes sense to skip them for queries involving tiny amounts of data. Reducing the overhead for small queries allows Impala to complete them more quickly, keeping YARN resources, admission control slots, and so on available for data-intensive queries.', - type: 'Numeric', - default: '100' - }, - EXEC_TIME_LIMIT_S: { - description: - 'The EXEC_TIME_LIMIT_S query option sets a time limit on query execution. If a query is still executing when time limit expires, it is automatically canceled. The option is intended to prevent runaway queries that execute for much longer than intended.', - type: 'Numeric', - default: '0 (no time limit)' - }, - EXPLAIN_LEVEL: { - description: - 'Controls the amount of detail provided in the output of the EXPLAIN statement. The basic output can help you identify high-level performance issues such as scanning a higher volume of data or more partitions than you expect. The higher levels of detail show how intermediate results flow between nodes and how different SQL operations such as ORDER BY, GROUP BY, joins, and WHERE clauses are implemented within a distributed query.', - type: 'String or Int; 0 - MINIMAL, 1 - STANDARD, 2 - EXTENDED or 3 - VERBOSE', - default: '1' - }, - HBASE_CACHE_BLOCKS: { - description: - 'Setting this option is equivalent to calling the setCacheBlocks method of the class org.apache.hadoop.hbase.client.Scan, in an HBase Java application. Helps to control the memory pressure on the HBase RegionServer, in conjunction with the HBASE_CACHING query option.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - HBASE_CACHING: { - description: - 'Setting this option is equivalent to calling the setCaching method of the class org.apache.hadoop.hbase.client.Scan, in an HBase Java application. Helps to control the memory pressure on the HBase RegionServer, in conjunction with the HBASE_CACHE_BLOCKS query option.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - MAX_ERRORS: { - description: - 'Maximum number of non-fatal errors for any particular query that are recorded in the Impala log file. For example, if a billion-row table had a non-fatal data error in every row, you could diagnose the problem without all billion errors being logged. Unspecified or 0 indicates the built-in default value of 1000.\n\nThis option only controls how many errors are reported. To specify whether Impala continues or halts when it encounters such errors, use the ABORT_ON_ERROR option.', - type: 'Numeric', - default: '0 (meaning 1000 errors)' - }, - MAX_MEM_ESTIMATE_FOR_ADMISSION: { - description: - 'Use the MAX_MEM_ESTIMATE_FOR_ADMISSION query option to set an upper limit on the memory estimates of a query as a workaround for over-estimates precluding a query from being admitted.', - type: 'Numeric', - default: '' - }, - MAX_NUM_RUNTIME_FILTERS: { - description: - 'The MAX_NUM_RUNTIME_FILTERS query option sets an upper limit on the number of runtime filters that can be produced for each query.', - type: 'Integer', - default: '10' - }, - MAX_ROW_SIZE: { - description: - 'Ensures that Impala can process rows of at least the specified size. (Larger rows might be successfully processed, but that is not guaranteed.) Applies when constructing intermediate or final rows in the result set. This setting prevents out-of-control memory use when accessing columns containing huge strings.\n\nAccepts a numeric value that represents a size in bytes; you can also use a suffix of m or mb for megabytes, or g or gb for gigabytes. If you specify a value with unrecognized formats, subsequent queries fail with an error.', - type: 'Integer', - default: '524288 (512 KB)' - }, - MAX_SCAN_RANGE_LENGTH: { - description: - 'Maximum length of the scan range. Interacts with the number of HDFS blocks in the table to determine how many CPU cores across the cluster are involved with the processing for a query. (Each core processes one scan range.)\n\nLowering the value can sometimes increase parallelism if you have unused CPU capacity, but a too-small value can limit query performance because each scan range involves extra overhead.\n\nOnly applicable to HDFS tables. Has no effect on Parquet tables. Unspecified or 0 indicates backend default, which is the same as the HDFS block size for each table.', - type: 'Numeric', - default: '0' - }, - MEM_LIMIT: { - description: - 'When resource management is not enabled, defines the maximum amount of memory a query can allocate on each node. Therefore, the total memory that can be used by a query is the MEM_LIMIT times the number of nodes.\n\nAccepts a numeric value that represents a size in bytes; you can also use a suffix of m or mb for megabytes, or g or gb for gigabytes. If you specify a value with unrecognized formats, subsequent queries fail with an error.', - type: 'Numeric', - default: '0 (unlimited)' - }, - MIN_SPILLABLE_BUFFER_SIZE: { - description: - 'Specifies the minimum size for a memory buffer used when the spill-to-disk mechanism is activated, for example for queries against a large table with no statistics, or large join operations.\n\nAccepts a numeric value that represents a size in bytes; you can also use a suffix of m or mb for megabytes, or g or gb for gigabytes. If you specify a value with unrecognized formats, subsequent queries fail with an error.', - type: 'Integer', - default: '65536 (64 KB)' - }, - MT_DOP: { - description: - 'Sets the degree of parallelism used for certain operations that can benefit from multithreaded execution. You can specify values higher than zero to find the ideal balance of response time, memory usage, and CPU usage during statement processing.', - type: 'Integer; Range from 0 to 64', - default: '0' - }, - NUM_NODES: { - description: 'Limit the number of nodes that process a query, typically during debugging.', - type: - 'Numeric; Only accepts the values 0 (meaning all nodes) or 1 (meaning all work is done on the coordinator node).', - default: '0' - }, - NUM_SCANNER_THREADS: { - description: - 'Maximum number of scanner threads (on each node) used for each query. By default, Impala uses as many cores as are available (one thread per core). You might lower this value if queries are using excessive resources on a busy cluster. Impala imposes a maximum value automatically, so a high value has no practical', - type: 'Numeric', - default: '0' - }, - OPTIMIZE_PARTITION_KEY_SCANS: { - description: - 'Enables a fast code path for queries that apply simple aggregate functions to partition key columns: MIN(key_column), MAX(key_column), or COUNT(DISTINCT key_column).', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - PARQUET_ANNOTATE_STRINGS_UTF8: { - description: - 'Causes Impala INSERT and CREATE TABLE AS SELECT statements to write Parquet files that use the UTF-8 annotation for STRING columns.\n\nBy default, Impala represents a STRING column in Parquet as an unannotated binary field.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - PARQUET_FALLBACK_SCHEMA_RESOLUTION: { - description: - 'Allows Impala to look up columns within Parquet files by column name, rather than column order, when necessary.', - type: 'integer or string. Allowed values are 0 for POSITION and 1 for NAME.', - default: '0' - }, - PARQUET_FILE_SIZE: { - description: - 'Specifies the maximum size of each Parquet data file produced by Impala INSERT statements.', - type: 'Numeric, with optional unit specifier.', - default: - '0 (produces files with a target size of 256 MB; files might be larger for very wide tables)' - }, - PREFETCH_MODE: { - description: - 'Determines whether the prefetching optimization is applied during join query processing.', - type: 'Numeric (0, 1) or corresponding mnemonic strings (NONE, HT_BUCKET).', - default: '1 (equivalent to HT_BUCKET)' - }, - QUERY_TIMEOUT_S: { - description: - 'Sets the idle query timeout value for the session, in seconds. Queries that sit idle for longer than the timeout value are automatically cancelled. If the system administrator specified the --idle_query_timeout startup option, QUERY_TIMEOUT_S must be smaller than or equal to the --idle_query_timeout value.', - type: 'Numeric', - default: - '0 (no timeout if --idle_query_timeout not in effect; otherwise, use --idle_query_timeout value)' - }, - REQUEST_POOL: { - description: - 'The pool or queue name that queries should be submitted to. Only applies when you enable the Impala admission control feature. Specifies the name of the pool used by requests from Impala to the resource manager.', - type: 'String', - default: - 'empty (use the user-to-pool mapping defined by an impalad startup option in the Impala configuration file)' - }, - REPLICA_PREFERENCE: { - description: - 'The REPLICA_PREFERENCE query option lets you distribute the work more evenly if hotspots and bottlenecks persist. It causes the access cost of all replicas of a data block to be considered equal to or worse than the configured value. This allows Impala to schedule reads to suboptimal replicas (e.g. local in the presence of cached ones) in order to distribute the work across more executor nodes.', - type: - 'Numeric (0, 2, 4) or corresponding mnemonic strings (CACHE_LOCAL, DISK_LOCAL, REMOTE). The gaps in the numeric sequence are to accomodate other intermediate values that might be added in the future.', - default: '0 (equivalent to CACHE_LOCAL)' - }, - RUNTIME_BLOOM_FILTER_SIZE: { - description: - 'Size (in bytes) of Bloom filter data structure used by the runtime filtering feature.', - type: 'Integer; Maximum 16 MB.', - default: '1048576 (1 MB)' - }, - RUNTIME_FILTER_MAX_SIZE: { - description: - 'The RUNTIME_FILTER_MAX_SIZE query option adjusts the settings for the runtime filtering feature. This option defines the maximum size for a filter, no matter what the estimates produced by the planner are. This value also overrides any lower number specified for the RUNTIME_BLOOM_FILTER_SIZE query option. Filter sizes are rounded up to the nearest power of two.', - type: 'Integer', - default: '0 (meaning use the value from the corresponding impalad startup option)' - }, - RUNTIME_FILTER_MIN_SIZE: { - description: - 'The RUNTIME_FILTER_MIN_SIZE query option adjusts the settings for the runtime filtering feature. This option defines the minimum size for a filter, no matter what the estimates produced by the planner are. This value also overrides any lower number specified for the RUNTIME_BLOOM_FILTER_SIZE query option. Filter sizes are rounded up to the nearest power of two.', - type: 'Integer', - default: '0 (meaning use the value from the corresponding impalad startup option)' - }, - RUNTIME_FILTER_MODE: { - description: - 'The RUNTIME_FILTER_MODE query option adjusts the settings for the runtime filtering feature. It turns this feature on and off, and controls how extensively the filters are transmitted between hosts.', - type: 'Numeric (0, 1, 2) or corresponding mnemonic strings (OFF, LOCAL, GLOBAL).', - default: '2 (equivalent to GLOBAL); formerly was 1 / LOCAL, in CDH 5.7 / Impala 2.5' - }, - RUNTIME_FILTER_WAIT_TIME_MS: { - description: - 'The RUNTIME_FILTER_WAIT_TIME_MS query option adjusts the settings for the runtime filtering feature. It specifies a time in milliseconds that each scan node waits for runtime filters to be produced by other plan fragments.', - type: 'Integer', - default: '0 (meaning use the value from the corresponding impalad startup option)' - }, - S3_SKIP_INSERT_STAGING: { - description: - 'Speeds up INSERT operations on tables or partitions residing on the Amazon S3 filesystem. The tradeoff is the possibility of inconsistent data left behind if an error occurs partway through the operation.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'true (shown as 1 in output of SET statement)' - }, - SCHEDULE_RANDOM_REPLICA: { - description: - 'The SCHEDULE_RANDOM_REPLICA query option fine-tunes the algorithm for deciding which host processes each HDFS data block. It only applies to tables and partitions that are not enabled for the HDFS caching feature.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - SCRATCH_LIMIT: { - description: - 'Specifies the maximum amount of disk storage, in bytes, that any Impala query can consume on any host using the "spill to disk" mechanism that handles queries that exceed the memory limit.', - type: 'Numeric, with optional unit specifier', - default: '-1 (amount of spill space is unlimited)' - }, - SHUFFLE_DISTINCT_EXPRS: { - description: - 'The SHUFFLE_DISTINCT_EXPRS query option controls the shuffling behavior when a query has both grouping and distinct expressions. Impala can optionally include the distinct expressions in the hash exchange to spread the data among more nodes. However, this plan requires one more hash exchange phase. It is recommended that you turn off this option if the NDVs of the grouping expressions are high.', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - SYNC_DDL: { - description: - 'When enabled, causes any DDL operation such as CREATE TABLE or ALTER TABLE to return only when the changes have been propagated to all other Impala nodes in the cluster by the Impala catalog service. That way, if you issue a subsequent CONNECT statement in impala-shell to connect to a different node in the cluster, you can be sure that other node will already recognize any added or changed tables. (The catalog service automatically broadcasts the DDL changes to all nodes automatically, but without this option there could be a period of inconsistency if you quickly switched to another node, such as by issuing a subsequent query through a load-balancing proxy.)', - type: - 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', - default: 'false (shown as 0 in output of SET statement)' - }, - TIMEZONE: { - description: - 'The TIMEZONE query option defines the timezone used for conversions between UTC and the local time. If not set, Impala uses the system time zone where the Coordinator Impalad runs. As query options are not sent to the Coordinator immediately, the timezones are validated only when the query runs.', - type: - 'String, can be a canonical code or a time zone name defined in the IANA Time Zone Database. The value is case-sensitive.', - default: 'Coordinator Impalad system time zone.' - }, - TOPN_BYTES_LIMIT: { - description: - 'The TOPN_BYTES_LIMIT query option places a limit on the amount of estimated memory that Impala can process for top-N queries.', - type: 'Numeric', - default: '536870912 (512 MB)' - } - } - }; - - const suggestOptions = function(dialect, completions, category) { - if (dialect === 'hive' || dialect === 'impala') { - Object.keys(SET_OPTIONS[dialect]).forEach(name => { - completions.push({ - category: category, - value: name, - meta: '', - weightAdjust: 0, - details: SET_OPTIONS[dialect][name] - }); - }); - } - }; - - return { - suggestOptions: suggestOptions - }; -})(); - -const SqlFunctions = (function() { - const MATHEMATICAL_FUNCTIONS = { - hive: { - abs: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'abs(DOUBLE a)', - draggable: 'abs()', - description: 'Returns the absolute value.' - }, - acos: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'acos(DECIMAL|DOUBLE a)', - draggable: 'acos()', - description: 'Returns the arccosine of a if -1<=a<=1 or NULL otherwise.' - }, - asin: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'asin(DECIMAL|DOUBLE a)', - draggable: 'asin()', - description: 'Returns the arc sin of a if -1<=a<=1 or NULL otherwise.' - }, - atan: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'atan(DECIMAL|DOUBLE a)', - draggable: 'atan()', - description: 'Returns the arctangent of a.' - }, - bin: { - returnTypes: ['STRING'], - arguments: [[{ type: 'BIGINT' }]], - signature: 'bin(BIGINT a)', - draggable: 'bin()', - description: 'Returns the number in binary format' - }, - bround: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'INT', optional: true }]], - signature: 'bround(DOUBLE a [, INT decimals])', - draggable: 'bround()', - description: - 'Returns the rounded BIGINT value of a using HALF_EVEN rounding mode with optional decimal places d.' - }, - cbrt: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'cbft(DOUBLE a)', - draggable: 'cbft()', - description: 'Returns the cube root of a double value.' - }, - ceil: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'ceil(DOUBLE a)', - draggable: 'ceil()', - description: 'Returns the minimum BIGINT value that is equal to or greater than a.' - }, - ceiling: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'ceiling(DOUBLE a)', - draggable: 'ceiling()', - description: 'Returns the minimum BIGINT value that is equal to or greater than a.' - }, - conv: { - returnTypes: ['T'], - arguments: [[{ type: 'BIGINT' }, { type: 'STRING' }], [{ type: 'INT' }], [{ type: 'INT' }]], - signature: 'conv(BIGINT|STRING a, INT from_base, INT to_base)', - draggable: 'conv()', - description: 'Converts a number from a given base to another' - }, - cos: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'cos(DECIMAL|DOUBLE a)', - draggable: 'cos()', - description: 'Returns the cosine of a (a is in radians).' - }, - degrees: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'degrees(DECIMAL|DOUBLE a)', - draggable: 'degrees()', - description: 'Converts value of a from radians to degrees.' - }, - e: { - returnTypes: ['DOUBLE'], - arguments: [[]], - signature: 'e()', - draggable: 'e()', - description: 'Returns the value of e.' - }, - exp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'exp(DECIMAL|DOUBLE a)', - draggable: 'exp()', - description: 'Returns e^a where e is the base of the natural logarithm.' - }, - factorial: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'INT' }]], - signature: 'factorial(INT a)', - draggable: 'factorial()', - description: 'Returns the factorial of a. Valid a is [0..20].' - }, - floor: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'floor(DOUBLE a)', - draggable: 'floor()', - description: 'Returns the maximum BIGINT value that is equal to or less than a.' - }, - greatest: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'greatest(T a1, T a2, ...)', - draggable: 'greatest()', - description: - 'Returns the greatest value of the list of values. Fixed to return NULL when one or more arguments are NULL, and strict type restriction relaxed, consistent with ">" operator.' - }, - hex: { - returnTypes: ['STRING'], - arguments: [[{ type: 'BIGINT' }, { type: 'BINARY' }, { type: 'STRING' }]], - signature: 'hex(BIGINT|BINARY|STRING a)', - draggable: 'hex()', - description: - 'If the argument is an INT or binary, hex returns the number as a STRING in hexadecimal format. Otherwise if the number is a STRING, it converts each character into its hexadecimal representation and returns the resulting STRING.' - }, - least: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'least(T a1, T a2, ...)', - draggable: 'least()', - description: - 'Returns the least value of the list of values. Fixed to return NULL when one or more arguments are NULL, and strict type restriction relaxed, consistent with "<" operator.' - }, - ln: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'ln(DECIMAL|DOUBLE a)', - draggable: 'ln()', - description: 'Returns the natural logarithm of the argument a' - }, - log: { - returnTypes: ['DOUBLE'], - arguments: [ - [{ type: 'DECIMAL' }, { type: 'DOUBLE' }], - [{ type: 'DECIMAL' }, { type: 'DOUBLE' }] - ], - signature: 'log(DECIMAL|DOUBLE base, DECIMAL|DOUBLE a)', - draggable: 'log()', - description: 'Returns the base-base logarithm of the argument a.' - }, - log10: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'log10(DECIMAL|DOUBLE a)', - draggable: 'log10()', - description: 'Returns the base-10 logarithm of the argument a.' - }, - log2: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'log2(DECIMAL|DOUBLE a)', - draggable: 'log2()', - description: 'Returns the base-2 logarithm of the argument a.' - }, - negative: { - returnTypes: ['T'], - arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }]], - signature: 'negative(T a)', - draggable: 'negative()', - description: 'Returns -a.' - }, - pi: { - returnTypes: ['DOUBLE'], - arguments: [], - signature: 'pi()', - draggable: 'pi()', - description: 'Returns the value of pi.' - }, - pmod: { - returnTypes: ['T'], - arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }], [{ type: 'T' }]], - signature: 'pmod(T a, T b)', - draggable: 'pmod()', - description: 'Returns the positive value of a mod b' - }, - positive: { - returnTypes: ['T'], - arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }]], - signature: 'positive(T a)', - draggable: 'positive()', - description: 'Returns a.' - }, - pow: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], - signature: 'pow(DOUBLE a, DOUBLE p)', - draggable: 'pow()', - description: 'Returns a^p' - }, - power: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], - signature: 'power(DOUBLE a, DOUBLE p)', - draggable: 'power()', - description: 'Returns a^p' - }, - radians: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'radians(DECIMAL|DOUBLE a)', - draggable: 'radians()', - description: 'Converts value of a from degrees to radians.' - }, - rand: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'INT', optional: true }]], - signature: 'rand([INT seed])', - draggable: 'rand()', - description: - 'Returns a random number (that changes from row to row) that is distributed uniformly from 0 to 1. Specifying the seed will make sure the generated random number sequence is deterministic.' - }, - round: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'INT', optional: true }]], - signature: 'round(DOUBLE a [, INT d])', - draggable: 'round()', - description: 'Returns the rounded BIGINT value of a or a rounded to d decimal places.' - }, - shiftleft: { - returnTypes: ['T'], - arguments: [ - [{ type: 'BIGINT' }, { type: 'INT' }, { type: 'SMALLINT' }, { type: 'TINYINT' }], - [{ type: 'INT' }] - ], - signature: 'shiftleft(T a, INT b)', - draggable: 'shiftleft()', - description: - 'Bitwise left shift. Shifts a b positions to the left. Returns int for tinyint, smallint and int a. Returns bigint for bigint a.' - }, - shiftright: { - returnTypes: ['T'], - arguments: [ - [{ type: 'BIGINT' }, { type: 'INT' }, { type: 'SMALLINT' }, { type: 'TINYINT' }], - [{ type: 'INT' }] - ], - signature: 'shiftright(T a, INT b)', - draggable: 'shiftright()', - description: - 'Bitwise right shift. Shifts a b positions to the right. Returns int for tinyint, smallint and int a. Returns bigint for bigint a.' - }, - shiftrightunsigned: { - returnTypes: ['T'], - arguments: [ - [{ type: 'BIGINT' }, { type: 'INT' }, { type: 'SMALLINT' }, { type: 'TINYINT' }], - [{ type: 'INT' }] - ], - signature: 'shiftrightunsigned(T a, INT b)', - draggable: 'shiftrightunsigned()', - description: - 'Bitwise unsigned right shift. Shifts a b positions to the right. Returns int for tinyint, smallint and int a. Returns bigint for bigint a.' - }, - sign: { - returnTypes: ['T'], - arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }]], - signature: 'sign(T a)', - draggable: 'sign()', - description: - "Returns the sign of a as '1.0' (if a is positive) or '-1.0' (if a is negative), '0.0' otherwise. The decimal version returns INT instead of DOUBLE." - }, - sin: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'sin(DECIMAL|DOUBLE a)', - draggable: 'sin()', - description: 'Returns the sine of a (a is in radians).' - }, - sqrt: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'sqrt(DECIMAL|DOUBLE a)', - draggable: 'sqrt()', - description: 'Returns the square root of a' - }, - tan: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], - signature: 'tan(DECIMAL|DOUBLE a)', - draggable: 'tan()', - description: 'Returns the tangent of a (a is in radians).' - }, - unhex: { - returnTypes: ['BINARY'], - arguments: [[{ type: 'STRING' }]], - signature: 'unhex(STRING a)', - draggable: 'unhex()', - description: - 'Inverse of hex. Interprets each pair of characters as a hexadecimal number and converts to the byte representation of the number.' - }, - width_bucket: { - returnTypes: ['INT'], - arguments: [[{ type: 'NUMBER' }, { type: 'NUMBER' }, { type: 'NUMBER' }, { type: 'INT' }]], - signature: 'width_bucket(NUMBER expr, NUMBER min_value, NUMBER max_value, INT num_buckets)', - draggable: 'width_bucket()', - description: - 'Returns an integer between 0 and num_buckets+1 by mapping expr into the ith equally sized bucket. Buckets are made by dividing [min_value, max_value] into equally sized regions. If expr < min_value, return 1, if expr > max_value return num_buckets+1. (as of Hive 3.0.0)' - } - }, - impala: { - abs: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'abs(T a)', - draggable: 'abs()', - description: - 'Returns the absolute value of the argument. Use this function to ensure all return values are positive. This is different than the positive() function, which returns its argument unchanged (even if the argument was negative).' - }, - acos: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'acos(DOUBLE a)', - draggable: 'acos()', - description: 'Returns the arccosine of the argument.' - }, - asin: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'asin(DOUBLE a)', - draggable: 'asin()', - description: 'Returns the arcsine of the argument.' - }, - atan: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'atan(DOUBLE a)', - draggable: 'atan()', - description: 'Returns the arctangent of the argument.' - }, - atan2: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], - signature: 'atan2(DOUBLE a, DOUBLE b)', - draggable: 'atan2()', - description: - 'Returns the arctangent of the two arguments, with the signs of the arguments used to determine the quadrant of the result.' - }, - bin: { - returnTypes: ['STRING'], - arguments: [[{ type: 'BIGINT' }]], - signature: 'bin(BIGINT a)', - draggable: 'bin()', - description: - 'Returns the binary representation of an integer value, that is, a string of 0 and 1 digits.' - }, - ceil: { - returnTypes: ['T'], - arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], - signature: 'ceil(T a)', - draggable: 'ceil()', - description: 'Returns the smallest integer that is greater than or equal to the argument.' - }, - ceiling: { - returnTypes: ['T'], - arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], - signature: 'ceiling(T a)', - draggable: 'ceiling()', - description: 'Returns the smallest integer that is greater than or equal to the argument.' - }, - conv: { - returnTypes: ['T'], - arguments: [[{ type: 'BIGINT' }, { type: 'STRING' }], [{ type: 'INT' }], [{ type: 'INT' }]], - signature: 'conv(T a, INT from_base, INT to_base)', - draggable: 'conv()', - description: - 'Returns a string representation of an integer value in a particular base. The input value can be a string, for example to convert a hexadecimal number such as fce2 to decimal. To use the return value as a number (for example, when converting to base 10), use CAST() to convert to the appropriate type.' - }, - cos: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'cos(DOUBLE a)', - draggable: 'cos()', - description: 'Returns the cosine of the argument.' - }, - cosh: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'cosh(DOUBLE a)', - draggable: 'cosh()', - description: 'Returns the hyperbolic cosine of the argument.' - }, - cot: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'cot(DOUBLE a)', - draggable: 'cot()', - description: 'Returns the cotangent of the argument.' - }, - dceil: { - returnTypes: ['T'], - arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], - signature: 'dceil(T a)', - draggable: 'dceil()', - description: 'Returns the smallest integer that is greater than or equal to the argument.' - }, - degrees: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'degrees(DOUBLE a)', - draggable: 'degrees()', - description: 'Converts argument value from radians to degrees.' - }, - dexp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'dexp(DOUBLE a)', - draggable: 'dexp()', - description: 'Returns the mathematical constant e raised to the power of the argument.' - }, - dfloor: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], - signature: 'dfloor(T a)', - draggable: 'dfloor()', - description: 'Returns the largest integer that is less than or equal to the argument.' - }, - dlog1: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'dlog1(DOUBLE a)', - draggable: 'dlog1()', - description: 'Returns the natural logarithm of the argument.' - }, - dpow: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], - signature: 'dpow(DOUBLE a, DOUBLE p)', - draggable: 'dpow()', - description: 'Returns the first argument raised to the power of the second argument.' - }, - dround: { - returnTypes: ['T'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }], [{ type: 'INT', optional: true }]], - signature: 'dround(DOUBLE a [, INT d]), round(DECIMAL val, INT d)', - draggable: 'dround()', - description: - 'Rounds a floating-point value. By default (with a single argument), rounds to the nearest integer. Values ending in .5 are rounded up for positive numbers, down for negative numbers (that is, away from zero). The optional second argument specifies how many digits to leave after the decimal point; values greater than zero produce a floating-point return value rounded to the requested number of digits to the right of the decimal point.' - }, - dsqrt: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'dsqrt(DOUBLE a)', - draggable: 'dsqrt()', - description: 'Returns the square root of the argument.' - }, - dtrunc: { - returnTypes: ['T'], - arguments: [ - [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], - [{ type: 'NUMBER', optional: true }] - ], - signature: 'dtrunc(T a, [NUMBER b])', - draggable: 'dtrunc()', - description: - 'Removes some or all fractional digits from a numeric value. With no argument, removes all fractional digits, leaving an integer value. The optional argument specifies the number of fractional digits to include in the return value, and only applies with the argument type is DECIMAL. truncate(), trunc() and dtrunc() are aliases for the same function.' - }, - e: { - returnTypes: ['DOUBLE'], - arguments: [], - signature: 'e()', - draggable: 'e()', - description: 'Returns the mathematical constant e.' - }, - exp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'exp(DOUBLE a)', - draggable: 'exp()', - description: 'Returns the mathematical constant e raised to the power of the argument.' - }, - factorial: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'T' }]], - signature: 'factorial(T a)', - draggable: 'factorial()', - description: - 'Computes the factorial of an integer value. It works with any integer type. You can use either the factorial() function or the ! operator. The factorial of 0 is 1. Likewise, the factorial() function returns 1 for any negative value. The maximum positive value for the input argument is 20; a value of 21 or greater overflows the range for a BIGINT and causes an error.' - }, - floor: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], - signature: 'floor(T a)', - draggable: 'floor()', - description: 'Returns the largest integer that is less than or equal to the argument.' - }, - fmod: { - returnTypes: ['T'], - arguments: [ - [{ type: 'DOUBLE' }, { type: 'DOUBLE' }], - [{ type: 'FLOAT' }, { type: 'FLOAT' }] - ], - signature: 'fmod(DOUBLE a, DOUBLE b), fmod(FLOAT a, FLOAT b)', - draggable: 'fmod()', - description: 'Returns the modulus of a floating-point number' - }, - fpow: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], - signature: 'fpow(DOUBLE a, DOUBLE p)', - draggable: 'fpow()', - description: 'Returns the first argument raised to the power of the second argument.' - }, - fnv_hash: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'T' }]], - signature: 'fnv_hash(T a)', - draggable: 'fnv_hash()', - description: - 'Returns a consistent 64-bit value derived from the input argument, for convenience of implementing hashing logic in an application.' - }, - greatest: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'greatest(T a1, T a2, ...)', - draggable: 'greatest()', - description: 'Returns the largest value from a list of expressions.' - }, - hex: { - returnTypes: ['STRING'], - arguments: [[{ type: 'BIGINT' }, { type: 'STRING' }]], - signature: 'hex(T a)', - draggable: 'hex()', - description: - 'Returns the hexadecimal representation of an integer value, or of the characters in a string.' - }, - is_inf: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'is_inf(DOUBLE a)', - draggable: 'is_inf()', - description: - 'Tests whether a value is equal to the special value "inf", signifying infinity.' - }, - is_nan: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'is_nan(DOUBLE A)', - draggable: 'is_nan()', - description: - 'Tests whether a value is equal to the special value "NaN", signifying "not a number".' - }, - least: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'least(T a1, T a2, ...)', - draggable: 'least()', - description: 'Returns the smallest value from a list of expressions.' - }, - ln: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'ln(DOUBLE a)', - draggable: 'ln()', - description: 'Returns the natural logarithm of the argument.' - }, - log: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], - signature: 'log(DOUBLE base, DOUBLE a)', - draggable: 'log()', - description: 'Returns the logarithm of the second argument to the specified base.' - }, - log10: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'log10(DOUBLE a)', - draggable: 'log10()', - description: 'Returns the logarithm of the argument to the base 10.' - }, - log2: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'log2(DOUBLE a)', - draggable: 'log2()', - description: 'Returns the logarithm of the argument to the base 2.' - }, - max_bigint: { - returnTypes: ['BIGINT'], - arguments: [], - signature: 'max_bigint()', - draggable: 'max_bigint()', - description: 'Returns the largest value of the associated integral type.' - }, - max_int: { - returnTypes: ['INT'], - arguments: [], - signature: 'max_int()', - draggable: 'max_int()', - description: 'Returns the largest value of the associated integral type.' - }, - max_smallint: { - returnTypes: ['SMALLINT'], - arguments: [], - signature: 'max_smallint()', - draggable: 'max_smallint()', - description: 'Returns the largest value of the associated integral type.' - }, - max_tinyint: { - returnTypes: ['TINYINT'], - arguments: [], - signature: 'max_tinyint()', - draggable: 'max_tinyint()', - description: 'Returns the largest value of the associated integral type.' - }, - min_bigint: { - returnTypes: ['BIGINT'], - arguments: [], - signature: 'min_bigint()', - draggable: 'min_bigint()', - description: - 'Returns the smallest value of the associated integral type (a negative number).' - }, - min_int: { - returnTypes: ['INT'], - arguments: [], - signature: 'min_int()', - draggable: 'min_int()', - description: - 'Returns the smallest value of the associated integral type (a negative number).' - }, - min_smallint: { - returnTypes: ['SMALLINT'], - arguments: [], - signature: 'min_smallint()', - draggable: 'min_smallint()', - description: - 'Returns the smallest value of the associated integral type (a negative number).' - }, - min_tinyint: { - returnTypes: ['TINYINT'], - arguments: [], - signature: 'min_tinyint()', - draggable: 'min_tinyint()', - description: - 'Returns the smallest value of the associated integral type (a negative number).' - }, - mod: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'mod(T a, T b)', - draggable: 'mod()', - description: - 'Returns the modulus of a number. Equivalent to the % arithmetic operator. Works with any size integer type, any size floating-point type, and DECIMAL with any precision and scale.' - }, - murmur_hash: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'T' }]], - signature: 'murmur_hash(T a)', - draggable: 'murmur_hash()', - description: - 'Returns a consistent 64-bit value derived from the input argument, for convenience of implementing MurmurHash2 non-cryptographic hash function.' - }, - negative: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'negative(T a)', - draggable: 'negative()', - description: - 'Returns the argument with the sign reversed; returns a positive value if the argument was already negative.' - }, - pi: { - returnTypes: ['DOUBLE'], - arguments: [], - signature: 'pi()', - draggable: 'pi()', - description: 'Returns the constant pi.' - }, - pmod: { - returnTypes: ['T'], - arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }], [{ type: 'T' }]], - signature: 'pmod(T a, T b)', - draggable: 'pmod()', - description: 'Returns the positive modulus of a number.' - }, - positive: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'positive(T a)', - draggable: 'positive()', - description: 'Returns the original argument unchanged (even if the argument is negative).' - }, - pow: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], - signature: 'pow(DOUBLE a, DOUBLE p)', - draggable: 'pow()', - description: 'Returns the first argument raised to the power of the second argument.' - }, - power: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], - signature: 'power(DOUBLE a, DOUBLE p)', - draggable: 'power()', - description: 'Returns the first argument raised to the power of the second argument.' - }, - precision: { - returnTypes: ['INT'], - arguments: [[{ type: 'NUMBER' }]], - signature: 'precision(numeric_expression)', - draggable: 'precision()', - description: - 'Computes the precision (number of decimal digits) needed to represent the type of the argument expression as a DECIMAL value.' - }, - quotient: { - returnTypes: ['INT'], - arguments: [ - [{ type: 'BIGINT' }, { type: 'DOUBLE' }], - [{ type: 'BIGINT' }, { type: 'DOUBLE' }] - ], - signature: - 'quotient(BIGINT numerator, BIGINT denominator), quotient(DOUBLE numerator, DOUBLE denominator)', - draggable: 'quotient()', - description: - 'Returns the first argument divided by the second argument, discarding any fractional part. Avoids promoting arguments to DOUBLE as happens with the / SQL operator.' - }, - radians: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'radians(DOUBLE a)', - draggable: 'radians()', - description: 'Converts argument value from degrees to radians.' - }, - rand: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'INT', optional: true }]], - signature: 'rand([INT seed])', - draggable: 'rand()', - description: - 'Returns a random value between 0 and 1. After rand() is called with a seed argument, it produces a consistent random sequence based on the seed value.' - }, - random: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'INT', optional: true }]], - signature: 'random([INT seed])', - draggable: 'random()', - description: - 'Returns a random value between 0 and 1. After rand() is called with a seed argument, it produces a consistent random sequence based on the seed value.' - }, - round: { - returnTypes: ['T'], - arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }], [{ type: 'INT', optional: true }]], - signature: 'round(DOUBLE a [, INT d]), round(DECIMAL val, INT d)', - draggable: 'round()', - description: - 'Rounds a floating-point value. By default (with a single argument), rounds to the nearest integer. Values ending in .5 are rounded up for positive numbers, down for negative numbers (that is, away from zero). The optional second argument specifies how many digits to leave after the decimal point; values greater than zero produce a floating-point return value rounded to the requested number of digits to the right of the decimal point.' - }, - scale: { - returnTypes: ['INT'], - arguments: [[{ type: 'NUMBER' }]], - signature: 'scale(numeric_expression)', - draggable: 'scale()', - description: - 'Computes the scale (number of decimal digits to the right of the decimal point) needed to represent the type of the argument expression as a DECIMAL value.' - }, - sign: { - returnTypes: ['INT'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'sign(DOUBLE a)', - draggable: 'sign()', - description: 'Returns -1, 0, or 1 to indicate the signedness of the argument value.' - }, - sin: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'sin(DOUBLE a)', - draggable: 'sin()', - description: 'Returns the sine of the argument.' - }, - sinh: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'sinh(DOUBLE a)', - draggable: 'sinh()', - description: 'Returns the hyperbolic sine of the argument.' - }, - sqrt: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'sqrt(DOUBLE a)', - draggable: 'sqrt()', - description: 'Returns the square root of the argument.' - }, - tan: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'tan(DOUBLE a)', - draggable: 'tan()', - description: 'Returns the tangent of the argument.' - }, - tanh: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'DOUBLE' }]], - signature: 'tanh(DOUBLE a)', - draggable: 'tanh()', - description: 'Returns the tangent of the argument.' - }, - trunc: { - returnTypes: ['T'], - arguments: [ - [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], - [{ type: 'NUMBER', optional: true }] - ], - signature: 'trunc(T a, [NUMBER b])', - draggable: 'trunc()', - description: - 'Removes some or all fractional digits from a numeric value. With no argument, removes all fractional digits, leaving an integer value. The optional argument specifies the number of fractional digits to include in the return value, and only applies with the argument type is DECIMAL. truncate(), trunc() and dtrunc() are aliases for the same function.' - }, - truncate: { - returnTypes: ['T'], - arguments: [ - [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], - [{ type: 'NUMBER', optional: true }] - ], - signature: 'truncate(T a, [NUMBER b])', - draggable: 'truncate()', - description: - 'Removes some or all fractional digits from a numeric value. With no argument, removes all fractional digits, leaving an integer value. The optional argument specifies the number of fractional digits to include in the return value, and only applies with the argument type is DECIMAL. truncate(), trunc() and dtrunc() are aliases for the same function.' - }, - unhex: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'unhex(STRING a)', - draggable: 'unhex()', - description: - 'Returns a string of characters with ASCII values corresponding to pairs of hexadecimal digits in the argument.' - }, - width_bucket: { - returnTypes: ['T'], - arguments: [ - [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], - [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], - [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], - [{ type: 'INT' }] - ], - signature: - 'width_bucket(DECIMAL expr, DECIMAL min_value, DECIMAL max_value, INT num_buckets)', - draggable: 'width_bucket()', - description: - 'Returns the bucket number in which the expr value would fall in the histogram where its range between min_value and max_value is divided into num_buckets buckets of identical sizes.' - } - } - }; - - const COMPLEX_TYPE_CONSTRUCTS = { - hive: { - array: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'array(val1, val2, ...)', - draggable: 'array()', - description: 'Creates an array with the given elements.' - }, - create_union: { - returnTypes: ['UNION'], - arguments: [[{ type: 'T' }], [{ type: 'T', multiple: true }]], - signature: 'create_union(tag, val1, val2, ...)', - draggable: 'create_union()', - description: - 'Creates a union type with the value that is being pointed to by the tag parameter.' - }, - map: { - returnTypes: ['MAP'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'map(key1, value1, ...)', - draggable: 'map()', - description: 'Creates a map with the given key/value pairs.' - }, - named_struct: { - returnTypes: ['STRUCT'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'named_struct(name1, val1, ...)', - draggable: 'named_struct()', - description: 'Creates a struct with the given field names and values.' - }, - struct: { - returnTypes: ['STRUCT'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'struct(val1, val2, ...)', - draggable: 'struct()', - description: - 'Creates a struct with the given field values. Struct field names will be col1, col2, ....' - } - }, - impala: {} - }; - - const AGGREGATE_FUNCTIONS = { - generic: { - count: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'T' }]], - signature: 'count(col)', - draggable: 'count()', - description: - 'count(*) - Returns the total number of retrieved rows, including rows containing NULL values. count(expr) - Returns the number of rows for which the supplied expression is non-NULL.' - }, - sum: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'sum(col)', - draggable: 'sum()', - description: - 'Returns the sum of the elements in the group or the sum of the distinct values of the column in the group.' - }, - max: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'max(col)', - draggable: 'max()', - description: 'Returns the maximum value of the column in the group.' - }, - min: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'min(col)', - draggable: 'min()', - description: 'Returns the minimum of the column in the group.' - } - }, - hive: { - avg: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'avg(col)', - draggable: 'avg()', - description: - 'Returns the average of the elements in the group or the average of the distinct values of the column in the group.' - }, - collect_set: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'T' }]], - signature: 'collect_set(col)', - draggable: 'collect_set()', - description: 'Returns a set of objects with duplicate elements eliminated.' - }, - collect_list: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'T' }]], - signature: 'collect_list(col)', - draggable: 'collect_list()', - description: 'Returns a list of objects with duplicates. (As of Hive 0.13.0.)' - }, - corr: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'corr(col1, col2)', - draggable: 'corr()', - description: - 'Returns the Pearson coefficient of correlation of a pair of a numeric columns in the group.' - }, - count: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'T' }]], - signature: 'count([DISTINCT] col)', - draggable: 'count()', - description: - 'count(*) - Returns the total number of retrieved rows, including rows containing NULL values. count(expr) - Returns the number of rows for which the supplied expression is non-NULL. count(DISTINCT expr[, expr]) - Returns the number of rows for which the supplied expression(s) are unique and non-NULL. Execution of this can be optimized with hive.optimize.distinct.rewrite.' - }, - covar_pop: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'covar_pop(col1, col2)', - draggable: 'covar_pop()', - description: 'Returns the population covariance of a pair of numeric columns in the group.' - }, - covar_samp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'covar_samp(col1, col2)', - draggable: 'covar_samp()', - description: 'Returns the sample covariance of a pair of a numeric columns in the group.' - }, - histogram_numeric: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'T' }], [{ type: 'INT' }]], - signature: 'histogram_numeric(col, b)', - draggable: 'histogram_numeric()', - description: - 'Computes a histogram of a numeric column in the group using b non-uniformly spaced bins. The output is an array of size b of double-valued (x,y) coordinates that represent the bin centers and heights.' - }, - max: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'max(col)', - draggable: 'max()', - description: 'Returns the maximum value of the column in the group.' - }, - min: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'min(col)', - draggable: 'min()', - description: 'Returns the minimum of the column in the group.' - }, - ntile: { - returnTypes: ['INT'], - arguments: [[{ type: 'INT' }]], - signature: 'ntile(INT x)', - draggable: 'ntile()', - description: - 'Divides an ordered partition into x groups called buckets and assigns a bucket number to each row in the partition. This allows easy calculation of tertiles, quartiles, deciles, percentiles and other common summary statistics. (As of Hive 0.11.0.)' - }, - percentile: { - returnTypes: ['DOUBLE', 'ARRAY'], - arguments: [[{ type: 'BIGINT' }], [{ type: 'ARRAY' }, { type: 'DOUBLE' }]], - signature: - 'percentile(BIGINT col, p), array percentile(BIGINT col, array(p1 [, p2]...))', - draggable: 'percentile()', - description: - 'Returns the exact pth percentile (or percentiles p1, p2, ..) of a column in the group (does not work with floating point types). p must be between 0 and 1. NOTE: A true percentile can only be computed for integer values. Use PERCENTILE_APPROX if your input is non-integral.' - }, - percentile_approx: { - returnTypes: ['DOUBLE', 'ARRAY'], - arguments: [ - [{ type: 'DOUBLE' }], - [{ type: 'DOUBLE' }, { type: 'ARRAY' }], - [{ type: 'BIGINT', optional: true }] - ], - signature: - 'percentile_approx(DOUBLE col, p, [, B]), array percentile_approx(DOUBLE col, array(p1 [, p2]...), [, B])', - draggable: 'percentile_approx()', - description: - 'Returns an approximate pth percentile (or percentiles p1, p2, ..) of a numeric column (including floating point types) in the group. The B parameter controls approximation accuracy at the cost of memory. Higher values yield better approximations, and the default is 10,000. When the number of distinct values in col is smaller than B, this gives an exact percentile value.' - }, - regr_avgx: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_avgx(T independent, T dependent)', - draggable: 'regr_avgx()', - description: 'Equivalent to avg(dependent). As of Hive 2.2.0.' - }, - regr_avgy: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_avgy(T independent, T dependent)', - draggable: 'regr_avgy()', - description: 'Equivalent to avg(dependent). As of Hive 2.2.0.' - }, - regr_count: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_count(T independent, T dependent)', - draggable: 'regr_count()', - description: - 'Returns the number of non-null pairs used to fit the linear regression line. As of Hive 2.2.0.' - }, - regr_intercept: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_intercept(T independent, T dependent)', - draggable: 'regr_intercept()', - description: - 'Returns the y-intercept of the linear regression line, i.e. the value of b in the equation dependent = a * independent + b. As of Hive 2.2.0.' - }, - regr_r2: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_r2(T independent, T dependent)', - draggable: 'regr_r2()', - description: - 'Returns the coefficient of determination for the regression. As of Hive 2.2.0.' - }, - regr_slope: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_slope(T independent, T dependent)', - draggable: 'regr_slope()', - description: - 'Returns the slope of the linear regression line, i.e. the value of a in the equation dependent = a * independent + b. As of Hive 2.2.0.' - }, - regr_sxx: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_sxx(T independent, T dependent)', - draggable: 'regr_sxx()', - description: - 'Equivalent to regr_count(independent, dependent) * var_pop(dependent). As of Hive 2.2.0.' - }, - regr_sxy: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_sxy(T independent, T dependent)', - draggable: 'regr_sxy()', - description: - 'Equivalent to regr_count(independent, dependent) * covar_pop(independent, dependent). As of Hive 2.2.0.' - }, - regr_syy: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'regr_syy(T independent, T dependent)', - draggable: 'regr_syy()', - description: - 'Equivalent to regr_count(independent, dependent) * var_pop(independent). As of Hive 2.2.0.' - }, - stddev_pop: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'stddev_pop(col)', - draggable: 'stddev_pop()', - description: 'Returns the standard deviation of a numeric column in the group.' - }, - stddev_samp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'stddev_samp(col)', - draggable: 'stddev_samp()', - description: - 'Returns the unbiased sample standard deviation of a numeric column in the group.' - }, - sum: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'sum(col)', - draggable: 'sum()', - description: - 'Returns the sum of the elements in the group or the sum of the distinct values of the column in the group.' - }, - variance: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'variance(col)', - draggable: 'variance()', - description: 'Returns the variance of a numeric column in the group.' - }, - var_pop: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'var_pop(col)', - draggable: 'var_pop()', - description: 'Returns the variance of a numeric column in the group.' - }, - var_samp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'var_samp(col)', - draggable: 'var_samp()', - description: 'Returns the unbiased sample variance of a numeric column in the group.' - } - }, - impala: { - appx_median: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'appx_median([DISTINCT|ALL] T col)', - draggable: 'appx_median()', - description: - 'An aggregate function that returns a value that is approximately the median (midpoint) of values in the set of input values.' - }, - avg: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'NUMBER' }]], - signature: 'avg([DISTINCT|ALL] col)', - draggable: 'avg()', - description: - 'An aggregate function that returns the average value from a set of numbers. Its single argument can be numeric column, or the numeric result of a function or expression applied to the column value. Rows with a NULL value for the specified column are ignored. If the table is empty, or all the values supplied to AVG are NULL, AVG returns NULL.' - }, - count: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'T' }]], - signature: 'count([DISTINCT|ALL] col)', - draggable: 'count()', - description: - 'An aggregate function that returns the number of rows, or the number of non-NULL rows.' - }, - group_concat: { - returnTypes: ['STRING'], - arguments: [[{ type: 'T' }], [{ type: 'STRING', optional: true }]], - signature: 'group_concat([ALL] col [, separator])', - draggable: 'group_concat()', - description: - 'An aggregate function that returns a single string representing the argument value concatenated together for each row of the result set. If the optional separator string is specified, the separator is added between each pair of concatenated values. The default separator is a comma followed by a space.' - }, - max: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'max([DISTINCT | ALL] T col)', - draggable: 'max()', - description: - 'An aggregate function that returns the maximum value from a set of numbers. Opposite of the MIN function. Its single argument can be numeric column, or the numeric result of a function or expression applied to the column value. Rows with a NULL value for the specified column are ignored. If the table is empty, or all the values supplied to MAX are NULL, MAX returns NULL.' - }, - min: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'min([DISTINCT | ALL] T col)', - draggable: 'min()', - description: - 'An aggregate function that returns the minimum value from a set of numbers. Opposite of the MAX function. Its single argument can be numeric column, or the numeric result of a function or expression applied to the column value. Rows with a NULL value for the specified column are ignored. If the table is empty, or all the values supplied to MIN are NULL, MIN returns NULL.' - }, - ndv: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'ndv([DISTINCT | ALL] col)', - draggable: 'ndv()', - description: - 'An aggregate function that returns an approximate value similar to the result of COUNT(DISTINCT col), the "number of distinct values". It is much faster than the combination of COUNT and DISTINCT, and uses a constant amount of memory and thus is less memory-intensive for columns with high cardinality.' - }, - stddev: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'stddev([DISTINCT | ALL] col)', - draggable: 'stddev()', - description: 'Returns the standard deviation of a numeric column in the group.' - }, - stddev_pop: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'stddev_pop([DISTINCT | ALL] col)', - draggable: 'stddev_pop()', - description: 'Returns the population standard deviation of a numeric column in the group.' - }, - stddev_samp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'stddev_samp([DISTINCT | ALL] col)', - draggable: 'stddev_samp()', - description: - 'Returns the unbiased sample standard deviation of a numeric column in the group.' - }, - sum: { - returnTypes: ['BIGINT', 'DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'sum([DISTINCT | ALL] col)', - draggable: 'sum()', - description: - 'An aggregate function that returns the sum of a set of numbers. Its single argument can be numeric column, or the numeric result of a function or expression applied to the column value. Rows with a NULL value for the specified column are ignored. If the table is empty, or all the values supplied to MIN are NULL, SUM returns NULL.' - }, - variance: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'variance([DISTINCT | ALL] col)', - draggable: 'variance()', - description: - 'An aggregate function that returns the variance of a set of numbers. This is a mathematical property that signifies how far the values spread apart from the mean. The return value can be zero (if the input is a single value, or a set of identical values), or a positive number otherwise.' - }, - variance_pop: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'variance_pop([DISTINCT | ALL] col)', - draggable: 'variance_pop()', - description: - 'An aggregate function that returns the population variance of a set of numbers. This is a mathematical property that signifies how far the values spread apart from the mean. The return value can be zero (if the input is a single value, or a set of identical values), or a positive number otherwise.' - }, - variance_samp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'variance_samp([DISTINCT | ALL] col)', - draggable: 'variance_samp()', - description: - 'An aggregate function that returns the sample variance of a set of numbers. This is a mathematical property that signifies how far the values spread apart from the mean. The return value can be zero (if the input is a single value, or a set of identical values), or a positive number otherwise.' - }, - var_pop: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'var_pop(col)', - draggable: 'var_pop()', - description: 'Returns the variance of a numeric column in the group.' - }, - var_samp: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'T' }]], - signature: 'var_samp(col)', - draggable: 'var_samp()', - description: 'Returns the unbiased sample variance of a numeric column in the group.' - } - } - }; - - const COLLECTION_FUNCTIONS = { - hive: { - array_contains: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'ARRAY' }], [{ type: 'T' }]], - signature: 'array_contains(Array a, val)', - draggable: 'array_contains()', - description: 'Returns TRUE if the array contains value.' - }, - map_keys: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'MAP' }]], - signature: 'array map_keys(Map a)', - draggable: 'array map_keys()', - description: 'Returns an unordered array containing the keys of the input map.' - }, - map_values: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'MAP' }]], - signature: 'array map_values(Map a)', - draggable: 'array map_values()', - description: 'Returns an unordered array containing the values of the input map.' - }, - size: { - returnTypes: ['INT'], - arguments: [[{ type: 'ARRAY' }, { type: 'MAP' }]], - signature: 'size(Map|Array a)', - draggable: 'size()', - description: 'Returns the number of elements in the map or array type.' - }, - sort_array: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'ARRAY' }]], - signature: 'sort_array(Array a)', - draggable: 'sort_array()', - description: - 'Sorts the input array in ascending order according to the natural ordering of the array elements and returns it.' - } - }, - impala: {} - }; - - const TYPE_CONVERSION_FUNCTIONS = { - hive: { - binary: { - returnTypes: ['BINARY'], - arguments: [[{ type: 'BINARY' }, { type: 'STRING' }]], - signature: 'binary(BINARY|STRING a)', - draggable: 'binary()', - description: 'Casts the parameter into a binary.' - }, - cast: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'cast(a as T)', - draggable: 'cast()', - description: - "Converts the results of the expression expr to type T. For example, cast('1' as BIGINT) will convert the string '1' to its integral representation. A null is returned if the conversion does not succeed. If cast(expr as boolean) Hive returns true for a non-empty string." - } - }, - impala: { - cast: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'cast(a as T)', - draggable: 'cast()', - description: - "Converts the results of the expression expr to type T. For example, cast('1' as BIGINT) will convert the string '1' to its integral representation. A null is returned if the conversion does not succeed. If cast(expr as boolean) Hive returns true for a non-empty string." - }, - typeof: { - returnTypes: ['STRING'], - arguments: [[{ type: 'T' }]], - signature: 'typeof(T a)', - draggable: 'typeof()', - description: - 'Returns the name of the data type corresponding to an expression. For types with extra attributes, such as length for CHAR and VARCHAR, or precision and scale for DECIMAL, includes the full specification of the type.' - } - } - }; - - const DATE_FUNCTIONS = { - hive: { - add_months: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }], - [{ type: 'INT' }] - ], - signature: 'add_months(DATE|STRING|TIMESTAMP start_date, INT num_months)', - draggable: 'add_months()', - description: - 'Returns the date that is num_months after start_date (as of Hive 1.1.0). start_date is a string, date or timestamp. num_months is an integer. The time part of start_date is ignored. If start_date is the last day of the month or if the resulting month has fewer days than the day component of start_date, then the result is the last day of the resulting month. Otherwise, the result has the same day component as start_date.' - }, - current_date: { - returnTypes: ['DATE'], - arguments: [], - signature: 'current_date', - draggable: 'current_date', - description: - 'Returns the current date at the start of query evaluation (as of Hive 1.2.0). All calls of current_date within the same query return the same value.' - }, - current_timestamp: { - returnTypes: ['TIMESTAMP'], - arguments: [], - signature: 'current_timestamp()', - draggable: 'current_timestamp()', - description: - 'Returns the current timestamp at the start of query evaluation (as of Hive 1.2.0). All calls of current_timestamp within the same query return the same value.' - }, - datediff: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'datediff(STRING enddate, STRING startdate)', - draggable: 'datediff()', - description: - "Returns the number of days from startdate to enddate: datediff('2009-03-01', '2009-02-27') = 2." - }, - date_add: { - returnTypes: ['T'], - arguments: [[{ type: 'DATE' }, { type: 'STRING' }], [{ type: 'INT' }]], - signature: 'date_add(DATE startdate, INT days)', - draggable: 'date_add()', - description: - "Adds a number of days to startdate: date_add('2008-12-31', 1) = '2009-01-01'. T = pre 2.1.0: STRING, 2.1.0 on: DATE" - }, - date_format: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }], - [{ type: 'STRING' }] - ], - signature: 'date_format(DATE|TIMESTAMP|STRING ts, STRING fmt)', - draggable: 'date_format()', - description: - "Converts a date/timestamp/string to a value of string in the format specified by the date format fmt (as of Hive 1.2.0). Supported formats are Java SimpleDateFormat formats - https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html. The second argument fmt should be constant. Example: date_format('2015-04-08', 'y') = '2015'." - }, - date_sub: { - returnTypes: ['T'], - arguments: [[{ type: 'DATE' }, { type: 'STRING' }], [{ type: 'INT' }]], - signature: 'date_sub(DATE startdate, INT days)', - draggable: 'date_sub()', - description: - "Subtracts a number of days to startdate: date_sub('2008-12-31', 1) = '2008-12-30'. T = pre 2.1.0: STRING, 2.1.0 on: DATE" - }, - day: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'day(STRING date)', - draggable: 'day()', - description: - "Returns the day part of a date or a timestamp string: day('1970-11-01 00:00:00') = 1, day('1970-11-01') = 1." - }, - dayofmonth: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'dayofmonth(STRING date)', - draggable: 'dayofmonth()', - description: - "Returns the day part of a date or a timestamp string: dayofmonth('1970-11-01 00:00:00') = 1, dayofmonth('1970-11-01') = 1." - }, - extract: { - returnTypes: ['INT'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'extract(field FROM source)', - draggable: 'extract()', - description: - 'Retrieve fields such as days or hours from source (as of Hive 2.2.0). Source must be a date, timestamp, interval or a string that can be converted into either a date or timestamp. Supported fields include: day, dayofweek, hour, minute, month, quarter, second, week and year.' - }, - from_unixtime: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'BIGINT' }], [{ type: 'STRING', optional: true }]], - signature: 'from_unixtime(BIGINT unixtime [, STRING format])', - draggable: 'from_unixtime()', - description: - "Converts the number of seconds from unix epoch (1970-01-01 00:00:00 UTC) to a string representing the timestamp of that moment in the current system time zone in the format of '1970-01-01 00:00:00'" - }, - from_utc_timestamp: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'T' }], [{ type: 'STRING' }]], - signature: 'from_utc_timestamp(T a, STRING timezone)', - draggable: 'from_utc_timestamp()', - description: - "Assumes given timestamp is UTC and converts to given timezone (as of Hive 0.8.0). For example, from_utc_timestamp('1970-01-01 08:00:00','PST') returns 1970-01-01 00:00:00" - }, - hour: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'hour(STRING date)', - draggable: 'hour()', - description: - "Returns the hour of the timestamp: hour('2009-07-30 12:58:59') = 12, hour('12:58:59') = 12." - }, - last_day: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'last_day(STRING date)', - draggable: 'last_day()', - description: - "Returns the last day of the month which the date belongs to (as of Hive 1.1.0). date is a string in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. The time part of date is ignored." - }, - minute: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'minute(STRING date)', - draggable: 'minute()', - description: 'Returns the minute of the timestamp.' - }, - month: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'month(STRING date)', - draggable: 'month()', - description: - "Returns the month part of a date or a timestamp string: month('1970-11-01 00:00:00') = 11, month('1970-11-01') = 11." - }, - months_between: { - returnTypes: ['DOUBLE'], - arguments: [ - [{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }], - [{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }] - ], - signature: 'months_between(DATE|TIMESTAMP|STRING date1, DATE|TIMESTAMP|STRING date2)', - draggable: 'months_between()', - description: - "Returns number of months between dates date1 and date2 (as of Hive 1.2.0). If date1 is later than date2, then the result is positive. If date1 is earlier than date2, then the result is negative. If date1 and date2 are either the same days of the month or both last days of months, then the result is always an integer. Otherwise the UDF calculates the fractional portion of the result based on a 31-day month and considers the difference in time components date1 and date2. date1 and date2 type can be date, timestamp or string in the format 'yyyy-MM-dd' or 'yyyy-MM-dd HH:mm:ss'. The result is rounded to 8 decimal places. Example: months_between('1997-02-28 10:30:00', '1996-10-30') = 3.94959677" - }, - next_day: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'next_day(STRING start_date, STRING day_of_week)', - draggable: 'next_day()', - description: - "Returns the first date which is later than start_date and named as day_of_week (as of Hive 1.2.0). start_date is a string/date/timestamp. day_of_week is 2 letters, 3 letters or full name of the day of the week (e.g. Mo, tue, FRIDAY). The time part of start_date is ignored. Example: next_day('2015-01-14', 'TU') = 2015-01-20." - }, - quarter: { - returnTypes: ['INT'], - arguments: [[{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }]], - signature: 'quarter(DATE|TIMESTAMP|STRING a)', - draggable: 'quarter()', - description: - "Returns the quarter of the year for a date, timestamp, or string in the range 1 to 4. Example: quarter('2015-04-08') = 2." - }, - second: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'second(STRING date)', - draggable: 'second()', - description: 'Returns the second of the timestamp.' - }, - to_date: { - returnTypes: ['T'], - arguments: [[{ type: 'STRING' }]], - signature: 'to_date(STRING timestamp)', - draggable: 'to_date()', - description: - "Returns the date part of a timestamp string, example to_date('1970-01-01 00:00:00'). T = pre 2.1.0: STRING 2.1.0 on: DATE" - }, - to_utc_timestamp: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'T' }], [{ type: 'STRING' }]], - signature: 'to_utc_timestamp(T a, STRING timezone)', - draggable: 'to_utc_timestamp()', - description: - "Assumes given timestamp is in given timezone and converts to UTC (as of Hive 0.8.0). For example, to_utc_timestamp('1970-01-01 00:00:00','PST') returns 1970-01-01 08:00:00." - }, - trunc: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'trunc(STRING date, STRING format)', - draggable: 'trunc()', - description: - "Returns date truncated to the unit specified by the format (as of Hive 1.2.0). Supported formats: MONTH/MON/MM, YEAR/YYYY/YY. Example: trunc('2015-03-17', 'MM') = 2015-03-01." - }, - unix_timestamp: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'STRING', optional: true }], [{ type: 'STRING', optional: true }]], - signature: 'unix_timestamp([STRING date [, STRING pattern]])', - draggable: 'unix_timestamp()', - description: - "Convert time string with given pattern to Unix time stamp (in seconds), return 0 if fail: unix_timestamp('2009-03-20', 'yyyy-MM-dd') = 1237532400." - }, - weekofyear: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'weekofyear(STRING date)', - draggable: 'weekofyear()', - description: - "Returns the week number of a timestamp string: weekofyear('1970-11-01 00:00:00') = 44, weekofyear('1970-11-01') = 44." - }, - year: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'year(STRING date)', - draggable: 'year()', - description: - "Returns the year part of a date or a timestamp string: year('1970-01-01 00:00:00') = 1970, year('1970-01-01') = 1970" - } - }, - impala: { - add_months: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'add_months(TIMESTAMP date, BIGINT|INT months)', - draggable: 'add_months()', - description: 'Returns the specified date and time plus some number of months.' - }, - adddate: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'adddate(TIMESTAMP startdate, BIGINT|INT days)', - draggable: 'adddate()', - description: - 'Adds a specified number of days to a TIMESTAMP value. Similar to date_add(), but starts with an actual TIMESTAMP value instead of a string that is converted to a TIMESTAMP.' - }, - current_timestamp: { - returnTypes: ['TIMESTAMP'], - arguments: [], - signature: 'current_timestamp()', - draggable: 'current_timestamp()', - description: 'Alias for the now() function.' - }, - date_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'INT' }]], - signature: - 'date_add(TIMESTAMP startdate, INT days), date_add(TIMESTAMP startdate, interval_expression)', - draggable: 'date_add()', - description: - 'Adds a specified number of days to a TIMESTAMP value. The first argument can be a string, which is automatically cast to TIMESTAMP if it uses the recognized format. With an INTERVAL expression as the second argument, you can calculate a delta value using other units such as weeks, years, hours, seconds, and so on.' - }, - date_part: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'STRING' }], [{ type: 'TIMESTAMP' }]], - signature: 'date_part(STRING unit, TIMESTAMP timestamp)', - draggable: 'date_part()', - description: - 'Similar to EXTRACT(), with the argument order reversed. Supports the same date and time units as EXTRACT(). For compatibility with SQL code containing vendor extensions.' - }, - date_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'INT' }]], - signature: - 'date_sub(TIMESTAMP startdate, INT days), date_sub(TIMESTAMP startdate, interval_expression)', - draggable: 'date_sub()', - description: - 'Subtracts a specified number of days from a TIMESTAMP value. The first argument can be a string, which is automatically cast to TIMESTAMP if it uses the recognized format. With an INTERVAL expression as the second argument, you can calculate a delta value using other units such as weeks, years, hours, seconds, and so on.' - }, - date_trunc: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'STRING' }], [{ type: 'TIMESTAMP' }]], - signature: 'date_trunc(STRING unit, TIMESTAMP timestamp)', - draggable: 'date_trunc()', - description: - "Truncates a TIMESTAMP value to the specified precision. The unit argument value for truncating TIMESTAMP values is not case-sensitive. This argument string can be one of: 'microseconds', 'milliseconds', 'second', 'minute', 'hour', 'day', 'week', 'month', 'year', 'decade', 'century' or 'millennium'." - }, - datediff: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'TIMESTAMP' }]], - signature: 'datediff(TIMESTAMP enddate, TIMESTAMP startdate)', - draggable: 'datediff()', - description: 'Returns the number of days between two TIMESTAMP values.' - }, - day: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'day(TIMESTAMP date)', - draggable: 'day()', - description: - 'Returns the day field from the date portion of a TIMESTAMP. The value represents the day of the month, therefore is in the range 1-31, or less for months without 31 days.' - }, - dayname: { - returnTypes: ['STRING'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'dayname(TIMESTAMP date)', - draggable: 'dayname()', - description: - "Returns the day field from a TIMESTAMP value, converted to the string corresponding to that day name. The range of return values is 'Sunday' to 'Saturday'. Used in report-generating queries, as an alternative to calling dayofweek() and turning that numeric return value into a string using a CASE expression." - }, - dayofmonth: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'dayofmonth(TIMESTAMP date)', - draggable: 'dayofmonth()', - description: - 'Returns the day field from the date portion of a TIMESTAMP. The value represents the day of the month, therefore is in the range 1-31, or less for months without 31 days.' - }, - dayofweek: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'dayofweek(TIMESTAMP date)', - draggable: 'dayofweek()', - description: - 'Returns the day field from the date portion of a TIMESTAMP, corresponding to the day of the week. The range of return values is 1 (Sunday) to 7 (Saturday).' - }, - dayofyear: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'dayofyear(TIMESTAMP date)', - draggable: 'dayofyear()', - description: - 'Returns the day field from a TIMESTAMP value, corresponding to the day of the year. The range of return values is 1 (January 1) to 366 (December 31 of a leap year).' - }, - days_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'days_add(TIMESTAMP startdate, BIGINT|INT days)', - draggable: 'days_add()', - description: - 'Adds a specified number of days to a TIMESTAMP value. Similar to date_add(), but starts with an actual TIMESTAMP value instead of a string that is converted to a TIMESTAMP.' - }, - days_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'days_sub(TIMESTAMP startdate, BIGINT|INT days)', - draggable: 'days_sub()', - description: - 'Subtracts a specified number of days from a TIMESTAMP value. Similar to date_sub(), but starts with an actual TIMESTAMP value instead of a string that is converted to a TIMESTAMP.' - }, - extract: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], - signature: 'extract(TIMESTAMP date, STRING unit), extract(STRING unit FROM TIMESTAMP date)', - draggable: 'extract()', - description: 'Returns one of the numeric date or time fields from a TIMESTAMP value.' - }, - from_timestamp: { - returnTypes: ['STRING'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], - signature: 'from_timestamp(TIMESTAMP val, STRING format)', - draggable: 'from_timestamp()', - description: - "Converts a specified timestamp to a string with the given format. Example: from_timestamp(cast('1999-01-01 10:10:10' as timestamp), 'yyyy-MM-dd')\" results in \"1999-01-01\"" - }, - from_unixtime: { - returnTypes: ['STRING'], - arguments: [[{ type: 'BIGINT' }], [{ type: 'STRING', optional: true }]], - signature: 'from_unixtime(BIGINT unixtime [, STRING format])', - draggable: 'from_unixtime()', - description: - 'Converts the number of seconds from the Unix epoch to the specified time into a string in the local time zone.' - }, - from_utc_timestamp: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], - signature: 'from_utc_timestamp(TIMESTAMP date, STRING timezone)', - draggable: 'from_utc_timestamp()', - description: - 'Converts a specified UTC timestamp value into the appropriate value for a specified time zone.' - }, - hour: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'hour(TIMESTAMP date)', - draggable: 'hour()', - description: 'Returns the hour field from a TIMESTAMP field.' - }, - hours_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'hours_add(TIMESTAMP date, BIGINT|INT hours)', - draggable: 'hours_add()', - description: 'Returns the specified date and time plus some number of hours.' - }, - hours_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'hours_sub(TIMESTAMP date, BIGINT|INT hours)', - draggable: 'hours_sub()', - description: 'Returns the specified date and time minus some number of hours.' - }, - int_months_between: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'TIMESTAMP' }]], - signature: 'int_months_between(TIMESTAMP newer, TIMESTAMP older)', - draggable: 'int_months_between()', - description: - 'Returns the number of months between the date portions of two TIMESTAMP values, as an INT representing only the full months that passed.' - }, - last_day: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'last_day(TIMESTAMP t)', - draggable: 'last_day()', - description: - 'Returns a TIMESTAMP corresponding to the beginning of the last calendar day in the same month as the TIMESTAMP argument.' - }, - microseconds_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'microseconds_add(TIMESTAMP date, BIGINT|INT microseconds)', - draggable: 'microseconds_add()', - description: 'Returns the specified date and time plus some number of microseconds.' - }, - microseconds_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'microseconds_sub(TIMESTAMP date, BIGINT|INT microseconds)', - draggable: 'microseconds_sub()', - description: 'Returns the specified date and time minus some number of microseconds.' - }, - millisecond: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'millisecond(TIMESTAMP date)', - draggable: 'millisecond()', - description: 'Returns the millisecond portion of a TIMESTAMP value.' - }, - milliseconds_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'milliseconds_add(TIMESTAMP date, BIGINT|INT milliseconds)', - draggable: 'milliseconds_add()', - description: 'Returns the specified date and time plus some number of milliseconds.' - }, - milliseconds_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'milliseconds_sub(TIMESTAMP date, BIGINT|INT milliseconds)', - draggable: 'milliseconds_sub()', - description: 'Returns the specified date and time minus some number of milliseconds.' - }, - minute: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'minute(TIMESTAMP date)', - draggable: 'minute()', - description: 'Returns the minute field from a TIMESTAMP value.' - }, - minutes_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'minutes_add(TIMESTAMP date, BIGINT|INT minutes)', - draggable: 'minutes_add()', - description: 'Returns the specified date and time plus some number of minutes.' - }, - minutes_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'minutes_sub(TIMESTAMP date, BIGINT|INT minutes)', - draggable: 'minutes_sub()', - description: 'Returns the specified date and time minus some number of minutes.' - }, - month: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'month(TIMESTAMP date)', - draggable: 'month()', - description: - 'Returns the month field, represented as an integer, from the date portion of a TIMESTAMP.' - }, - monthname: { - returnTypes: ['STRING'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'monthname(TIMESTAMP date)', - draggable: 'monthname()', - description: - 'Returns the month field from TIMESTAMP value, converted to the string corresponding to that month name.' - }, - months_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'months_add(TIMESTAMP date, BIGINT|INT months)', - draggable: 'months_add()', - description: 'Returns the specified date and time plus some number of months.' - }, - months_between: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'TIMESTAMP' }]], - signature: 'months_between(TIMESTAMP newer, TIMESTAMP older)', - draggable: 'months_between()', - description: - 'Returns the number of months between the date portions of two TIMESTAMP values. Can include a fractional part representing extra days in addition to the full months between the dates. The fractional component is computed by dividing the difference in days by 31 (regardless of the month).' - }, - months_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'months_sub(TIMESTAMP date, BIGINT|INT months)', - draggable: 'months_sub()', - description: 'Returns the specified date and time minus some number of months.' - }, - nanoseconds_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'nanoseconds_add(TIMESTAMP date, BIGINT|INT nanoseconds)', - draggable: 'nanoseconds_add()', - description: 'Returns the specified date and time plus some number of nanoseconds.' - }, - nanoseconds_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'nanoseconds_sub(TIMESTAMP date, BIGINT|INT nanoseconds)', - draggable: 'nanoseconds_sub()', - description: 'Returns the specified date and time minus some number of nanoseconds.' - }, - next_day: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], - signature: 'next_day(TIMESTAMP date, STRING weekday)', - draggable: 'next_day()', - description: - 'Returns the date of the weekday that follows the specified date. The weekday parameter is case-insensitive. The following values are accepted for weekday: "Sunday"/"Sun", "Monday"/"Mon", "Tuesday"/"Tue", "Wednesday"/"Wed", "Thursday"/"Thu", "Friday"/"Fri", "Saturday"/"Sat".' - }, - now: { - returnTypes: ['TIMESTAMP'], - arguments: [], - signature: 'now()', - draggable: 'now()', - description: - 'Returns the current date and time (in the local time zone) as a timestamp value.' - }, - quarter: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'quarter(TIMESTAMP date)', - draggable: 'quarter()', - description: - 'Returns the quarter in the input TIMESTAMP expression as an integer value, 1, 2, 3, or 4, where 1 represents January 1 through March 31.' - }, - second: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'second(TIMESTAMP date)', - draggable: 'second()', - description: 'Returns the second field from a TIMESTAMP value.' - }, - seconds_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'seconds_add(TIMESTAMP date, BIGINT|INT seconds)', - draggable: 'seconds_add()', - description: 'Returns the specified date and time plus some number of seconds.' - }, - seconds_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'seconds_sub(TIMESTAMP date, BIGINT|INT seconds)', - draggable: 'seconds_sub()', - description: 'Returns the specified date and time minus some number of seconds.' - }, - subdate: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'subdate(TIMESTAMP startdate, BIGINT|INT days)', - draggable: 'subdate()', - description: - 'Subtracts a specified number of days from a TIMESTAMP value. Similar to date_sub(), but starts with an actual TIMESTAMP value instead of a string that is converted to a TIMESTAMP.' - }, - timeofday: { - returnTypes: ['STRING'], - arguments: [], - signature: 'timeofday()', - draggable: 'timeofday()', - description: - 'Returns a string representation of the current date and time, according to the time of the local system, including any time zone designation.' - }, - timestamp_cmp: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'TIMESTAMP' }]], - signature: 'timestamp_cmp(TIMESTAMP t1, TIMESTAMP t2)', - draggable: 'timestamp_cmp()', - description: - 'Tests if one TIMESTAMP value is newer than, older than, or identical to another TIMESTAMP. Returns either -1, 0, 1 or NULL.' - }, - to_date: { - returnTypes: ['STRING'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'to_date(TIMESTAMP date)', - draggable: 'to_date()', - description: 'Returns a string representation of the date field from a timestamp value.' - }, - to_timestamp: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - altArguments: [[{ type: 'BIGINT' }]], - signature: 'to_timestamp([STRING val, STRING format]|[BIGINT val])', - draggable: 'to_timestamp()', - description: - "Converts a bigint (delta from the Unix epoch) or a string with the specified format to a timestamp. Example: to_timestamp('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss')." - }, - to_utc_timestamp: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], - signature: 'to_utc_timestamp(TIMESTAMP date, STRING timezone)', - draggable: 'to_utc_timestamp()', - description: - 'Converts a specified timestamp value in a specified time zone into the corresponding value for the UTC time zone.' - }, - trunc: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], - signature: 'trunc(TIMESTAMP date, STRING unit)', - draggable: 'trunc()', - description: - 'Strips off fields and optionally rounds a TIMESTAMP value. The unit argument value is case-sensitive. This argument string can be one of: SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y: Year. Q: Quarter. MONTH, MON, MM, RM: Month. WW, W: Same day of the week as the first day of the month. DDD, DD, J: Day. DAY, DY, D: Starting day of the week. (Not necessarily the current day.) HH, HH12, HH24: Hour. A TIMESTAMP value truncated to the hour is always represented in 24-hour notation, even for the HH12 argument string. MI: Minute.' - }, - unix_timestamp: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING', optional: true }], [{ type: 'STRING', optional: true }]], - altArguments: [[{ type: 'TIMESTAMP' }]], - signature: 'unix_timestamp([STRING datetime [, STRING format]]|[TIMESTAMP datetime])', - draggable: 'unix_timestamp()', - description: - 'Returns an integer value representing the current date and time as a delta from the Unix epoch, or converts from a specified date and time value represented as a TIMESTAMP or STRING.' - }, - utc_timestamp: { - returnTypes: ['TIMESTAMP'], - arguments: [], - signature: 'utc_timestamp()', - draggable: 'utc_timestamp()', - description: - 'Returns a TIMESTAMP corresponding to the current date and time in the UTC time zone.' - }, - weekofyear: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'weekofyear(TIMESTAMP date)', - draggable: 'weekofyear()', - description: 'Returns the corresponding week (1-53) from the date portion of a TIMESTAMP.' - }, - weeks_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'weeks_add(TIMESTAMP date, BIGINT|INT weeks)', - draggable: 'weeks_add()', - description: 'Returns the specified date and time plus some number of weeks.' - }, - weeks_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'weeks_sub(TIMESTAMP date, BIGINT|INT weeks)', - draggable: 'weeks_sub()', - description: 'Returns the specified date and time minus some number of weeks.' - }, - year: { - returnTypes: ['INT'], - arguments: [[{ type: 'TIMESTAMP' }]], - signature: 'year(TIMESTAMP date)', - draggable: 'year()', - description: 'Returns the year field from the date portion of a TIMESTAMP.' - }, - years_add: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'years_add(TIMESTAMP date, BIGINT|INT years)', - draggable: 'years_add()', - description: 'Returns the specified date and time plus some number of years.' - }, - years_sub: { - returnTypes: ['TIMESTAMP'], - arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], - signature: 'years_sub(TIMESTAMP date, BIGINT|INT years)', - draggable: 'years_sub()', - description: 'Returns the specified date and time minus some number of years.' - } - } - }; - - const CONDITIONAL_FUNCTIONS = { - hive: { - assert_true: { - returnTypes: ['T'], - arguments: [[{ type: 'BOOLEAN' }]], - signature: 'assert_true(BOOLEAN condition)', - draggable: 'assert_true()', - description: - "Throw an exception if 'condition' is not true, otherwise return null (as of Hive 0.8.0). For example, select assert_true (2<1)." - }, - coalesce: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'coalesce(T v1, T v2, ...)', - draggable: 'coalesce()', - description: "Returns the first v that is not NULL, or NULL if all v's are NULL." - }, - if: { - returnTypes: ['T'], - arguments: [[{ type: 'BOOLEAN' }], [{ type: 'T' }], [{ type: 'T' }]], - signature: 'if(BOOLEAN testCondition, T valueTrue, T valueFalseOrNull)', - draggable: 'if()', - description: - 'Returns valueTrue when testCondition is true, returns valueFalseOrNull otherwise.' - }, - isnotnull: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'T' }]], - signature: 'isnotnull(a)', - draggable: 'isnotnull()', - description: 'Returns true if a is not NULL and false otherwise.' - }, - isnull: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'T' }]], - signature: 'isnull(a)', - draggable: 'isnull()', - description: 'Returns true if a is NULL and false otherwise.' - }, - nullif: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'nullif(a, b)', - draggable: 'nullif()', - description: 'Returns NULL if a=b; otherwise returns a (as of Hive 2.2.0).' - }, - nvl: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'nvl(T value, T default_value)', - draggable: 'nvl()', - description: 'Returns default value if value is null else returns value (as of Hive 0.11).' - } - }, - impala: { - coalesce: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'coalesce(T v1, T v2, ...)', - draggable: 'coalesce()', - description: - 'Returns the first specified argument that is not NULL, or NULL if all arguments are NULL.' - }, - decode: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }], [{ type: 'T', multiple: true }]], - signature: - 'decode(T expression, T search1, T result1 [, T search2, T result2 ...] [, T default] )', - draggable: 'decode()', - description: - 'Compares an expression to one or more possible values, and returns a corresponding result when a match is found.' - }, - if: { - returnTypes: ['T'], - arguments: [[{ type: 'BOOLEAN' }], [{ type: 'T' }], [{ type: 'T' }]], - signature: 'if(BOOLEAN condition, T ifTrue, T ifFalseOrNull)', - draggable: 'if()', - description: - 'Tests an expression and returns a corresponding result depending on whether the result is true, false, or NULL.' - }, - ifnull: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'ifnull(T a, T ifNotNull)', - draggable: 'ifnull()', - description: - 'Alias for the isnull() function, with the same behavior. To simplify porting SQL with vendor extensions to Impala.' - }, - isfalse: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'BOOLEAN' }]], - signature: 'isfalse(BOOLEAN condition)', - draggable: 'isfalse()', - description: - 'Tests if a Boolean expression is false or not. Returns true if so. If the argument is NULL, returns false. Identical to isnottrue(), except it returns the opposite value for a NULL argument.' - }, - isnotfalse: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'BOOLEAN' }]], - signature: 'isnotfalse(BOOLEAN condition)', - draggable: 'isnotfalse()', - description: - 'Tests if a Boolean expression is not false (that is, either true or NULL). Returns true if so. If the argument is NULL, returns true. Identical to istrue(), except it returns the opposite value for a NULL argument.' - }, - isnottrue: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'BOOLEAN' }]], - signature: 'isnottrue(BOOLEAN condition)', - draggable: 'isnottrue()', - description: - 'Tests if a Boolean expression is not true (that is, either false or NULL). Returns true if so. If the argument is NULL, returns true. Identical to isfalse(), except it returns the opposite value for a NULL argument.' - }, - isnull: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'isnull(T a, T ifNotNull)', - draggable: 'isnull()', - description: - 'Tests if an expression is NULL, and returns the expression result value if not. If the first argument is NULL, returns the second argument.' - }, - istrue: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'BOOLEAN' }]], - signature: 'istrue(BOOLEAN condition)', - draggable: 'istrue()', - description: - 'Tests if a Boolean expression is true or not. Returns true if so. If the argument is NULL, returns false. Identical to isnotfalse(), except it returns the opposite value for a NULL argument.' - }, - nonnullvalue: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'T' }]], - signature: 'nonnullvalue(T expression)', - draggable: 'nonnullvalue()', - description: - 'Tests if an expression (of any type) is NULL or not. Returns false if so. The converse of nullvalue().' - }, - nullif: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'nullif(T expr1, T expr2)', - draggable: 'nullif()', - description: - 'Returns NULL if the two specified arguments are equal. If the specified arguments are not equal, returns the value of expr1. The data types of the expressions must be compatible. You cannot use an expression that evaluates to NULL for expr1; that way, you can distinguish a return value of NULL from an argument value of NULL, which would never match expr2.' - }, - nullifzero: { - returnTypes: ['T'], - arguments: [[{ type: 'NUMBER' }]], - signature: 'nullifzero(T numeric_expr)', - draggable: 'nullifzero()', - description: - 'Returns NULL if the numeric expression evaluates to 0, otherwise returns the result of the expression.' - }, - nullvalue: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'T' }]], - signature: 'nullvalue(T expression)', - draggable: 'nullvalue()', - description: - 'Tests if an expression (of any type) is NULL or not. Returns true if so. The converse of nonnullvalue().' - }, - nvl: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'nvl(T a, T ifNotNull)', - draggable: 'nvl()', - description: - 'Alias for the isnull() function. Tests if an expression is NULL, and returns the expression result value if not. If the first argument is NULL, returns the second argument. Equivalent to the nvl() function from Oracle Database or ifnull() from MySQL.' - }, - nvl2: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }], [{ type: 'T' }]], - signature: 'nvl2(T a, T ifNull, T ifNotNull)', - draggable: 'nvl2()', - description: - 'Enhanced variant of the nvl() function. Tests an expression and returns different result values depending on whether it is NULL or not. If the first argument is NULL, returns the second argument. If the first argument is not NULL, returns the third argument. Equivalent to the nvl2() function from Oracle.' - }, - zeroifnull: { - returnTypes: ['T'], - arguments: [[{ type: 'NUMBER' }]], - signature: 'zeroifnull(T numeric_expr)', - draggable: 'zeroifnull()', - description: - 'Returns 0 if the numeric expression evaluates to NULL, otherwise returns the result of the expression.' - } - } - }; - - const STRING_FUNCTIONS = { - hive: { - ascii: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'ascii(STRING str)', - draggable: 'ascii()', - description: 'Returns the numeric value of the first character of str.' - }, - base64: { - returnTypes: ['STRING'], - arguments: [[{ type: 'BINARY' }]], - signature: 'base64(BINARY bin)', - draggable: 'base64()', - description: 'Converts the argument from binary to a base 64 string (as of Hive 0.12.0).' - }, - chr: { - returnTypes: ['STRING'], - arguments: [[{ type: 'BIGINT' }, { type: 'DOUBLE' }]], - signature: 'chr(BIGINT|DOUBLE a)', - draggable: 'chr()', - description: - 'Returns the ASCII character having the binary equivalent to a (as of Hive 1.3.0 and 2.1.0). If a is larger than 256 the result is equivalent to chr(a % 256). Example: select chr(88); returns "X".' - }, - char_length: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'char_length(STRING a)', - draggable: 'char_length()', - description: - 'Returns the number of UTF-8 characters contained in str (as of Hive 2.2.0). This is shorthand for character_length.' - }, - character_length: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'character_length(STRING a)', - draggable: 'character_length()', - description: - 'Returns the number of UTF-8 characters contained in str (as of Hive 2.2.0). The function char_length is shorthand for this function.' - }, - concat: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING', multiple: true }, { type: 'BINARY', multiple: true }]], - signature: 'concat(STRING|BINARY a, STRING|BINARY b...)', - draggable: 'concat()', - description: - "Returns the string or bytes resulting from concatenating the strings or bytes passed in as parameters in order. For example, concat('foo', 'bar') results in 'foobar'. Note that this function can take any number of input strings." - }, - concat_ws: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING' }], - [{ type: 'STRING', multiple: true }] - ], - altArguments: [[{ type: 'STRING' }], [{ type: 'ARRAY' }]], - signature: - 'concat_ws(STRING sep, STRING a, STRING b...), concat_ws(STRING sep, Array)', - draggable: 'concat_ws()', - description: 'Like concat(), but with custom separator SEP.' - }, - context_ngrams: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'ARRAY' }], [{ type: 'ARRAY' }], [{ type: 'INT' }], [{ type: 'INT' }]], - signature: - 'array> context_ngrams(Array>, Array, INT k, INT pf)', - draggable: 'array> context_ngrams()', - description: - 'Returns the top-k contextual N-grams from a set of tokenized sentences, given a string of "context".' - }, - decode: { - returnTypes: ['STRING'], - arguments: [[{ type: 'BINARY' }], [{ type: 'STRING' }]], - signature: 'decode(BINARY bin, STRING charset)', - draggable: 'decode()', - description: - "Decodes the first argument into a String using the provided character set (one of 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16'). If either argument is null, the result will also be null. (As of Hive 0.12.0.)" - }, - elt: { - returnTypes: ['STRING'], - arguments: [[{ type: 'INT' }], [{ type: 'STRING', multiple: true }]], - signature: 'elt(INT n, STRING str, STRING str1, ...])', - draggable: 'elt()', - description: - "Return string at index number. For example elt(2,'hello','world') returns 'world'. Returns NULL if N is less than 1 or greater than the number of arguments." - }, - encode: { - returnTypes: ['BINARY'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'encode(STRING src, STRING charset)', - draggable: 'encode()', - description: - "Encodes the first argument into a BINARY using the provided character set (one of 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16'). If either argument is null, the result will also be null. (As of Hive 0.12.0.)" - }, - field: { - returnTypes: ['INT'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'field(T val, T val1, ...])', - draggable: 'field()', - description: - "Returns the index of val in the val1,val2,val3,... list or 0 if not found. For example field('world','say','hello','world') returns 3. All primitive types are supported, arguments are compared using str.equals(x). If val is NULL, the return value is 0." - }, - find_in_set: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'find_in_set(STRING str, STRING strList)', - draggable: 'find_in_set()', - description: - "Returns the first occurance of str in strList where strList is a comma-delimited string. Returns null if either argument is null. Returns 0 if the first argument contains any commas. For example, find_in_set('ab', 'abc,b,ab,c,def') returns 3." - }, - format_number: { - returnTypes: ['STRING'], - arguments: [[{ type: 'NUMBER' }], [{ type: 'INT' }]], - signature: 'format_number(NUMBER x, INT d)', - draggable: 'format_number()', - description: - "Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string. If D is 0, the result has no decimal point or fractional part. (As of Hive 0.10.0; bug with float types fixed in Hive 0.14.0, decimal type support added in Hive 0.14.0)" - }, - get_json_object: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'get_json_object(STRING json_string, STRING path)', - draggable: 'get_json_object()', - description: - 'Extracts json object from a json string based on json path specified, and returns json string of the extracted json object. It will return null if the input json string is invalid. NOTE: The json path can only have the characters [0-9a-z_], i.e., no upper-case or special characters. Also, the keys *cannot start with numbers.* This is due to restrictions on Hive column names.' - }, - initcap: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'initcap(STRING a)', - draggable: 'initcap()', - description: - 'Returns string, with the first letter of each word in uppercase, all other letters in lowercase. Words are delimited by whitespace. (As of Hive 1.1.0.)' - }, - instr: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'instr(STRING str, STRING substr)', - draggable: 'instr()', - description: - 'Returns the position of the first occurrence of substr in str. Returns null if either of the arguments are null and returns 0 if substr could not be found in str. Be aware that this is not zero based. The first character in str has index 1.' - }, - in_file: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'in_file(STRING str, STRING filename)', - draggable: 'in_file()', - description: 'Returns true if the string str appears as an entire line in filename.' - }, - length: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'length(STRING a)', - draggable: 'length()', - description: 'Returns the length of the string.' - }, - levenshtein: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'levenshtein(STRING a, STRING b)', - draggable: 'levenshtein()', - description: - "Returns the Levenshtein distance between two strings (as of Hive 1.2.0). For example, levenshtein('kitten', 'sitting') results in 3." - }, - lcase: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'lcase(STRING a)', - draggable: 'lcase()', - description: - "Returns the string resulting from converting all characters of B to lower case. For example, lcase('fOoBaR') results in 'foobar'." - }, - locate: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT', optional: true }]], - signature: 'locate(STRING substr, STRING str [, INT pos])', - draggable: 'locate()', - description: - 'Returns the position of the first occurrence of substr in str after position pos.' - }, - lower: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'lower(STRING a)', - draggable: 'lower()', - description: - "Returns the string resulting from converting all characters of B to lower case. For example, lower('fOoBaR') results in 'foobar'." - }, - lpad: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'STRING' }]], - signature: 'lpad(STRING str, INT len, STRING pad)', - draggable: 'lpad()', - description: 'Returns str, left-padded with pad to a length of len.' - }, - ltrim: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'ltrim(STRING a)', - draggable: 'ltrim()', - description: - "Returns the string resulting from trimming spaces from the beginning(left hand side) of A. For example, ltrim(' foobar ') results in 'foobar '." - }, - ngrams: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'ARRAY' }], [{ type: 'INT' }], [{ type: 'INT' }], [{ type: 'INT' }]], - signature: - 'array> ngrams(Array> a, INT n, INT k, INT pf)', - draggable: 'array> ngrams()', - description: - 'Returns the top-k N-grams from a set of tokenized sentences, such as those returned by the sentences() UDAF.' - }, - octet_length: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'octet_length(STRING a)', - draggable: 'octet_length()', - description: - 'Returns the number of octets required to hold the string str in UTF-8 encoding (since Hive 2.2.0). Note that octet_length(str) can be larger than character_length(str).' - }, - parse_url: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING' }], - [{ type: 'STRING', optional: true }] - ], - signature: 'parse_url(STRING urlString, STRING partToExtract [, STRING keyToExtract])', - draggable: 'parse_url()', - description: - "Returns the specified part from the URL. Valid values for partToExtract include HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO. For example, parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST') returns 'facebook.com'. Also a value of a particular key in QUERY can be extracted by providing the key as the third argument, for example, parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1') returns 'v1'." - }, - printf: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'T', multiple: true }]], - signature: 'printf(STRING format, Obj... args)', - draggable: 'printf()', - description: - 'Returns the input formatted according do printf-style format strings (as of Hive 0.9.0).' - }, - regexp_extract: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'regexp_extract(STRING subject, STRING pattern, INT index)', - draggable: 'regexp_extract()', - description: - "Returns the string extracted using the pattern. For example, regexp_extract('foothebar', 'foo(.*?)(bar)', 2) returns 'bar.' Note that some care is necessary in using predefined character classes: using '\\s' as the second argument will match the letter s; '\\\\s' is necessary to match whitespace, etc. The 'index' parameter is the Java regex Matcher group() method index." - }, - regexp_replace: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'regexp_replace(STRING initial_string, STRING pattern, STRING replacement)', - draggable: 'regexp_replace()', - description: - 'Returns the string resulting from replacing all substrings in INITIAL_STRING that match the java regular expression syntax defined in PATTERN with instances of REPLACEMENT. For example, regexp_replace("foobar", "oo|ar", "") returns \'fb.\' Note that some care is necessary in using predefined character classes: using \'\\s\' as the second argument will match the letter s; \'\\\\s\' is necessary to match whitespace, etc.' - }, - repeat: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'repeat(STRING str, INT n)', - draggable: 'repeat()', - description: 'Repeats str n times.' - }, - replace: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'replace(STRING a, STRING old, STRING new)', - draggable: 'replace()', - description: - 'Returns the string a with all non-overlapping occurrences of old replaced with new (as of Hive 1.3.0 and 2.1.0). Example: select replace("ababab", "abab", "Z"); returns "Zab".' - }, - reverse: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'reverse(STRING a)', - draggable: 'reverse()', - description: 'Returns the reversed string.' - }, - rpad: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'STRING' }]], - signature: 'rpad(STRING str, INT len, STRING pad)', - draggable: 'rpad()', - description: 'Returns str, right-padded with pad to a length of len.' - }, - rtrim: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'rtrim(STRING a)', - draggable: 'rtrim()', - description: - "Returns the string resulting from trimming spaces from the end(right hand side) of A. For example, rtrim(' foobar ') results in ' foobar'." - }, - sentences: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'array> sentences(STRING str, STRING lang, STRING locale)', - draggable: 'array> sentences()', - description: - 'Tokenizes a string of natural language text into words and sentences, where each sentence is broken at the appropriate sentence boundary and returned as an array of words. The \'lang\' and \'locale\' are optional arguments. For example, sentences(\'Hello there! How are you?\') returns ( ("Hello", "there"), ("How", "are", "you") ).' - }, - soundex: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'soundex(STRING a)', - draggable: 'soundex()', - description: - "Returns soundex code of the string (as of Hive 1.2.0). For example, soundex('Miller') results in M460." - }, - space: { - returnTypes: ['STRING'], - arguments: [[{ type: 'INT' }]], - signature: 'space(INT n)', - draggable: 'space()', - description: 'Returns a string of n spaces.' - }, - split: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'array split(STRING str, STRING pat)', - draggable: 'array split()', - description: 'Splits str around pat (pat is a regular expression).' - }, - str_to_map: { - returnTypes: ['MAP'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING', optional: true }], - [{ type: 'STRING', optional: true }] - ], - signature: 'map str_to_map(STRING [, STRING delimiter1, STRING delimiter2])', - draggable: 'map str_to_map()', - description: - "Splits text into key-value pairs using two delimiters. Delimiter1 separates text into K-V pairs, and Delimiter2 splits each K-V pair. Default delimiters are ',' for delimiter1 and '=' for delimiter2." - }, - substr: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'STRING' }, { type: 'BINARY' }], - [{ type: 'INT' }], - [{ type: 'INT', optional: true }] - ], - signature: 'substr(STRING|BINARY A, INT start [, INT len]) ', - draggable: 'substr()', - description: - "Returns the substring or slice of the byte array of A starting from start position till the end of string A or with optional length len. For example, substr('foobar', 4) results in 'bar'" - }, - substring: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'STRING' }, { type: 'BINARY' }], - [{ type: 'INT' }], - [{ type: 'INT', optional: true }] - ], - signature: 'substring(STRING|BINARY a, INT start [, INT len])', - draggable: 'substring()', - description: - "Returns the substring or slice of the byte array of A starting from start position till the end of string A or with optional length len. For example, substr('foobar', 4) results in 'bar'" - }, - substring_index: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'substring_index(STRING a, STRING delim, INT count)', - draggable: 'substring_index()', - description: - "Returns the substring from string A before count occurrences of the delimiter delim (as of Hive 1.3.0). If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. Substring_index performs a case-sensitive match when searching for delim. Example: substring_index('www.apache.org', '.', 2) = 'www.apache'." - }, - translate: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'STRING' }, { type: 'CHAR' }, { type: 'VARCHAR' }], - [{ type: 'STRING' }, { type: 'CHAR' }, { type: 'VARCHAR' }], - [{ type: 'STRING' }, { type: 'CHAR' }, { type: 'VARCHAR' }] - ], - signature: - 'translate(STRING|CHAR|VARCHAR input, STRING|CHAR|VARCHAR from, STRING|CHAR|VARCHAR to)', - draggable: 'translate()', - description: - 'Translates the input string by replacing the characters present in the from string with the corresponding characters in the to string. This is similar to the translate function in PostgreSQL. If any of the parameters to this UDF are NULL, the result is NULL as well. (Available as of Hive 0.10.0, for string types) Char/varchar support added as of Hive 0.14.0.' - }, - trim: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'trim(STRING a)', - draggable: 'trim()', - description: - "Returns the string resulting from trimming spaces from both ends of A. For example, trim(' foobar ') results in 'foobar'" - }, - ucase: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'ucase(STRING a)', - draggable: 'ucase()', - description: - "Returns the string resulting from converting all characters of A to upper case. For example, ucase('fOoBaR') results in 'FOOBAR'." - }, - unbase64: { - returnTypes: ['BINARY'], - arguments: [[{ type: 'STRING' }]], - signature: 'unbase64(STRING a)', - draggable: 'unbase64()', - description: 'Converts the argument from a base 64 string to BINARY. (As of Hive 0.12.0.)' - }, - upper: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'upper(STRING a)', - draggable: 'upper()', - description: - "Returns the string resulting from converting all characters of A to upper case. For example, upper('fOoBaR') results in 'FOOBAR'." - } - }, - impala: { - ascii: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'ascii(STRING str)', - draggable: 'ascii()', - description: 'Returns the numeric ASCII code of the first character of the argument.' - }, - base64decode: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'base64decode(STRING str)', - draggable: 'base64decode()', - description: - "Decodes the given string from Base64, an ACSII string format. It's typically used in combination with base64encode(), to store data in an Impala table string that is problematic to store or transmit" - }, - base64encode: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'base64encode(STRING str)', - draggable: 'base64encode()', - description: - "Encodes the given string to Base64, an ACSII string format. It's typically used in combination with base64decode(), to store data in an Impala table string that is problematic to store or transmit" - }, - btrim: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING', optional: true }]], - signature: 'btrim(STRING str [, STRING chars_to_trim])', - draggable: 'btrim()', - description: - 'Removes all instances of one or more characters from the start and end of a STRING value. By default, removes only spaces. If a non-NULL optional second argument is specified, the function removes all occurrences of characters in that second argument from the beginning and end of the string.' - }, - char_length: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'char_length(STRING a)', - draggable: 'char_length()', - description: - 'Returns the length in characters of the argument string. Aliases for the length() function.' - }, - character_length: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'character_length(STRING a)', - draggable: 'character_length()', - description: - 'Returns the length in characters of the argument string. Aliases for the length() function.' - }, - chr: { - returnTypes: ['STRING'], - arguments: [[{ type: 'INT' }]], - signature: 'chr(INT character_code)', - draggable: 'chr()', - description: - 'Returns a character specified by a decimal code point value. The interpretation and display of the resulting character depends on your system locale. Because consistent processing of Impala string values is only guaranteed for values within the ASCII range, only use this function for values corresponding to ASCII characters. In particular, parameter values greater than 255 return an empty string.' - }, - concat: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING', multiple: true }]], - signature: 'concat(STRING a, STRING b...)', - draggable: 'concat()', - description: 'Returns a single string representing all the argument values joined together.' - }, - concat_ws: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING' }], - [{ type: 'STRING', multiple: true }] - ], - signature: 'concat_ws(STRING sep, STRING a, STRING b...)', - draggable: 'concat_ws()', - description: - 'Returns a single string representing the second and following argument values joined together, delimited by a specified separator.' - }, - find_in_set: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'find_in_set(STRING str, STRING strList)', - draggable: 'find_in_set()', - description: - 'Returns the position (starting from 1) of the first occurrence of a specified string within a comma-separated string. Returns NULL if either argument is NULL, 0 if the search string is not found, or 0 if the search string contains a comma.' - }, - group_concat: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING', optional: true }]], - signature: 'group_concat(STRING s [, STRING sep])', - draggable: 'group_concat()', - description: - 'Returns a single string representing the argument value concatenated together for each row of the result set. If the optional separator string is specified, the separator is added between each pair of concatenated values.' - }, - initcap: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'initcap(STRING str)', - draggable: 'initcap()', - description: 'Returns the input string with the first letter capitalized.' - }, - instr: { - returnTypes: ['INT'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING' }], - [{ type: 'BIGINT', optional: true }], - [{ type: 'BIGINT', optional: true }] - ], - signature: 'instr(STRING str, STRING substr [, BIGINT position [, BIGINT occurrence]])', - draggable: 'instr()', - description: - 'Returns the position (starting from 1) of the first occurrence of a substring within a longer string. The optional third and fourth arguments let you find instances of the substring other than the first instance starting from the left.' - }, - left: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'left(STRING a, INT num_chars)', - draggable: 'left()', - description: 'Returns the leftmost characters of the string. Same as strleft().' - }, - length: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }]], - signature: 'length(STRING a)', - draggable: 'length()', - description: 'Returns the length in characters of the argument string.' - }, - levenshtein: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'levenshtein(STRING a, STRING b)', - draggable: 'levenshtein()', - description: - "Returns the Levenshtein distance between two strings. For example, levenshtein('kitten', 'sitting') results in 3." - }, - locate: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT', optional: true }]], - signature: 'locate(STRING substr, STRING str[, INT pos])', - draggable: 'locate()', - description: - 'Returns the position (starting from 1) of the first occurrence of a substring within a longer string, optionally after a particular position.' - }, - lower: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'lower(STRING a)', - draggable: 'lower()', - description: 'Returns the argument string converted to all-lowercase.' - }, - lcase: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'lcase(STRING a)', - draggable: 'lcase()', - description: 'Returns the argument string converted to all-lowercase.' - }, - lpad: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'STRING' }]], - signature: 'lpad(STRING str, INT len, STRING pad)', - draggable: 'lpad()', - description: - 'Returns a string of a specified length, based on the first argument string. If the specified string is too short, it is padded on the left with a repeating sequence of the characters from the pad string. If the specified string is too long, it is truncated on the right.' - }, - ltrim: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING', optional: true }]], - signature: 'ltrim(STRING a [, STRING charsToTrim])', - draggable: 'ltrim()', - description: - 'Returns the argument string with all occurrences of characters specified by the second argument removed from the left side. Removes spaces if the second argument is not specified.' - }, - parse_url: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING' }], - [{ type: 'STRING', optional: true }] - ], - signature: 'parse_url(STRING urlString, STRING partToExtract [, STRING keyToExtract])', - draggable: 'parse_url()', - description: - "Returns the portion of a URL corresponding to a specified part. The part argument can be 'PROTOCOL', 'HOST', 'PATH', 'REF', 'AUTHORITY', 'FILE', 'USERINFO', or 'QUERY'. Uppercase is required for these literal values. When requesting the QUERY portion of the URL, you can optionally specify a key to retrieve just the associated value from the key-value pairs in the query string." - }, - regexp_escape: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'regexp_escape(STRING source)', - draggable: 'regexp_escape()', - description: - 'The regexp_escape function returns a string escaped for the special character in RE2 library so that the special characters are interpreted literally rather than as special characters. The following special characters are escaped by the function: .\\+*?[^]$(){}=!<>|:-' - }, - regexp_extract: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'regexp_extract(STRING subject, STRING pattern, INT index)', - draggable: 'regexp_extract()', - description: - 'Returns the specified () group from a string based on a regular expression pattern. Group 0 refers to the entire extracted string, while group 1, 2, and so on refers to the first, second, and so on (...) portion.' - }, - regexp_like: { - returnTypes: ['BOOLEAN'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING' }], - [{ type: 'STRING', optional: true }] - ], - signature: 'regexp_like(STRING source, STRING pattern [, STRING options])', - draggable: 'regexp_like()', - description: - 'Returns true or false to indicate whether the source string contains anywhere inside it the regular expression given by the pattern. The optional third argument consists of letter flags that change how the match is performed, such as i for case-insensitive matching.' - }, - regexp_replace: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'regexp_replace(STRING initial, STRING pattern, STRING replacement)', - draggable: 'regexp_replace()', - description: - 'Returns the initial argument with the regular expression pattern replaced by the final argument string.' - }, - repeat: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'repeat(STRING str, INT n)', - draggable: 'repeat()', - description: 'Returns the argument string repeated a specified number of times.' - }, - replace: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'replace(STRING initial, STRING target, STRING replacement)', - draggable: 'replace()', - description: - 'Returns the initial argument with all occurrences of the target string replaced by the replacement string.' - }, - reverse: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'reverse(STRING a)', - draggable: 'reverse()', - description: 'Returns the argument string with characters in reversed order.' - }, - right: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'right(STRING a, INT num_chars)', - draggable: 'right()', - description: 'Returns the rightmost characters of the string. Same as strright().' - }, - rpad: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'STRING' }]], - signature: 'rpad(STRING str, INT len, STRING pad)', - draggable: 'rpad()', - description: - 'Returns a string of a specified length, based on the first argument string. If the specified string is too short, it is padded on the right with a repeating sequence of the characters from the pad string. If the specified string is too long, it is truncated on the right.' - }, - rtrim: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING', optional: true }]], - signature: 'rtrim(STRING a [, STRING charsToTrim])', - draggable: 'rtrim()', - description: - 'Returns the argument string with all occurrences of characters specified by the second argument removed from the right side. Removes spaces if the second argument is not specified.' - }, - space: { - returnTypes: ['STRING'], - arguments: [[{ type: 'INT' }]], - signature: 'space(INT n)', - draggable: 'space()', - description: - "Returns a concatenated string of the specified number of spaces. Shorthand for repeat(' ', n)." - }, - split_part: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'BIGINT' }]], - signature: 'split_part(STRING source, STRING delimiter, BIGINT n)', - draggable: 'split_part()', - description: - 'Returns the nth field within a delimited string. The fields are numbered starting from 1. The delimiter can consist of multiple characters, not just a single character. All matching of the delimiter is done exactly, not using any regular expression patterns.' - }, - strleft: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'strleft(STRING a, INT num_chars)', - draggable: 'strleft()', - description: - 'Returns the leftmost characters of the string. Shorthand for a call to substr() with 2 arguments.' - }, - strright: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], - signature: 'strright(STRING a, INT num_chars)', - draggable: 'strright()', - description: - 'Returns the rightmost characters of the string. Shorthand for a call to substr() with 2 arguments.' - }, - substr: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'INT', optional: true }]], - signature: 'substr(STRING a, INT start [, INT len])', - draggable: 'substr()', - description: - 'Returns the portion of the string starting at a specified point, optionally with a specified maximum length. The characters in the string are indexed starting at 1.' - }, - substring: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'INT', optional: true }]], - signature: 'substring(STRING a, INT start [, INT len])', - draggable: 'substring()', - description: - 'Returns the portion of the string starting at a specified point, optionally with a specified maximum length. The characters in the string are indexed starting at 1.' - }, - translate: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'translate(STRING input, STRING from, STRING to)', - draggable: 'translate()', - description: - 'Returns the input string with a set of characters replaced by another set of characters.' - }, - trim: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'trim(STRING a)', - draggable: 'trim()', - description: - 'Returns the input string with both leading and trailing spaces removed. The same as passing the string through both ltrim() and rtrim().' - }, - upper: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'upper(STRING a)', - draggable: 'upper()', - description: 'Returns the argument string converted to all-uppercase.' - }, - ucase: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }]], - signature: 'ucase(STRING a)', - draggable: 'ucase()', - description: 'Returns the argument string converted to all-uppercase.' - } - } - }; - - const DATA_MASKING_FUNCTIONS = { - hive: { - mask: { - returnTypes: ['STRING'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING', optional: true }], - [{ type: 'STRING', optional: true }], - [{ type: 'STRING', optional: true }] - ], - signature: 'mask(STRING str [, STRING upper [, STRING lower [, STRING number]]])', - draggable: 'mask()', - description: - 'Returns a masked version of str (as of Hive 2.1.0). By default, upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example mask("abcd-EFGH-8765-4321") results in xxxx-XXXX-nnnn-nnnn. You can override the characters used in the mask by supplying additional arguments: the second argument controls the mask character for upper case letters, the third argument for lower case letters and the fourth argument for numbers. For example, mask("abcd-EFGH-8765-4321", "U", "l", "#") results in llll-UUUU-####-####.' - }, - mask_first_n: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT', optional: true }]], - signature: 'mask_first_n(STRING str [, INT n])', - draggable: 'mask_first_n()', - description: - 'Returns a masked version of str with the first n values masked (as of Hive 2.1.0). Upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example, mask_first_n("1234-5678-8765-4321", 4) results in nnnn-5678-8765-4321.' - }, - mask_last_n: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT', optional: true }]], - signature: 'mask_last_n(STRING str [, INT n])', - draggable: 'mask_last_n()', - description: - 'Returns a masked version of str with the last n values masked (as of Hive 2.1.0). Upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example, mask_last_n("1234-5678-8765-4321", 4) results in 1234-5678-8765-nnnn.' - }, - mask_show_first_n: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT', optional: true }]], - signature: 'mask_show_first_n(STRING str [, INT n])', - draggable: 'mask_show_first_n()', - description: - 'Returns a masked version of str, showing the first n characters unmasked (as of Hive 2.1.0). Upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example, mask_show_first_n("1234-5678-8765-4321", 4) results in 1234-nnnn-nnnn-nnnn.' - }, - mask_show_last_n: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'INT', optional: true }]], - signature: 'mask_show_last_n(STRING str [, INT n])', - draggable: 'mask_show_last_n()', - description: - 'Returns a masked version of str, showing the last n characters unmasked (as of Hive 2.1.0). Upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example, mask_show_last_n("1234-5678-8765-4321", 4) results in nnnn-nnnn-nnnn-4321.' - }, - mask_hash: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }, { type: 'CHAR' }, { type: 'VARCHAR' }]], - signature: 'mask_hash(STRING|CHAR|VARCHAR str)', - draggable: 'mask_hash()', - description: - 'Returns a hashed value based on str (as of Hive 2.1.0). The hash is consistent and can be used to join masked values together across tables. This function returns null for non-string types.' - } - }, - impala: {} - }; - - const TABLE_GENERATING_FUNCTIONS = { - hive: { - explode: { - returnTypes: ['table'], - arguments: [[{ type: 'ARRAY' }, { type: 'MAP' }]], - signature: 'explode(Array|Array|Map a)', - draggable: 'explode()', - description: '' - }, - inline: { - returnTypes: ['table'], - arguments: [[{ type: 'ARRAY' }]], - signature: 'inline(Array a)', - draggable: 'inline()', - description: 'Explodes an array of structs into a table. (As of Hive 0.10.)' - }, - json_tuple: { - returnTypes: ['table'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING', multiple: true }]], - signature: 'json_tuple(STRING jsonStr, STRING k1, STRING k2, ...)', - draggable: 'json_tuple()', - description: - 'A new json_tuple() UDTF is introduced in Hive 0.7. It takes a set of names (keys) and a JSON string, and returns a tuple of values using one function. This is much more efficient than calling GET_JSON_OBJECT to retrieve more than one key from a single JSON string.' - }, - parse_url_tuple: { - returnTypes: ['table'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING', multiple: true }]], - signature: 'parse_url_tuple(STRING url, STRING p1, STRING p2, ...)', - draggable: 'parse_url_tuple()', - description: - 'The parse_url_tuple() UDTF is similar to parse_url(), but can extract multiple parts of a given URL, returning the data in a tuple. Values for a particular key in QUERY can be extracted by appending a colon and the key to the partToExtract argument.' - }, - posexplode: { - returnTypes: ['table'], - arguments: [[{ type: 'ARRAY' }]], - signature: 'posexplode(ARRAY)', - draggable: 'posexplode()', - description: - 'posexplode() is similar to explode but instead of just returning the elements of the array it returns the element as well as its position in the original array.' - }, - stack: { - returnTypes: ['table'], - arguments: [[{ type: 'INT' }], [{ type: 'T', multiple: true }]], - signature: 'stack(INT n, v1, v2, ..., vk)', - draggable: 'stack()', - description: - 'Breaks up v1, v2, ..., vk into n rows. Each row will have k/n columns. n must be constant.' - } - }, - impala: {} - }; - - const MISC_FUNCTIONS = { - hive: { - crc32: { - returnTypes: ['BIGINT'], - arguments: [[{ type: 'STRING' }, { type: 'BINARY' }]], - signature: 'crc32(STRING|BINARY a)', - draggable: 'crc32()', - description: - "Computes a cyclic redundancy check value for string or binary argument and returns bigint value (as of Hive 1.3.0). Example: crc32('ABC') = 2743272264." - }, - current_database: { - returnTypes: ['STRING'], - arguments: [], - signature: 'current_database()', - draggable: 'current_database()', - description: 'Returns current database name (as of Hive 0.13.0).' - }, - current_user: { - returnTypes: ['STRING'], - arguments: [], - signature: 'current_user()', - draggable: 'current_user()', - description: 'Returns current user name (as of Hive 1.2.0).' - }, - get_json_object: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'get_json_object(STRING json, STRING jsonPath)', - draggable: 'get_json_object()', - description: - 'A limited version of JSONPath is supported ($ : Root object, . : Child operator, [] : Subscript operator for array, * : Wildcard for []' - }, - hash: { - returnTypes: ['INT'], - arguments: [[{ type: 'T', multiple: true }]], - signature: 'hash(a1[, a2...])', - draggable: 'hash()', - description: 'Returns a hash value of the arguments. (As of Hive 0.4.)' - }, - java_method: { - returnTypes: ['T'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING' }], - [{ type: 'T', multiple: true, optional: true }] - ], - signature: 'java_method(class, method[, arg1[, arg2..]])', - draggable: 'java_method()', - description: - 'Calls a Java method by matching the argument signature, using reflection. (As of Hive 0.9.0.)' - }, - logged_in_user: { - returnTypes: ['STRING'], - arguments: [], - signature: 'logged_in_user()', - draggable: 'logged_in_user()', - description: - 'Returns current user name from the session state (as of Hive 2.2.0). This is the username provided when connecting to Hive.' - }, - md5: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }, { type: 'BINARY' }]], - signature: 'md5(STRING|BINARY a)', - draggable: 'md5()', - description: - "Calculates an MD5 128-bit checksum for the string or binary (as of Hive 1.3.0). The value is returned as a string of 32 hex digits, or NULL if the argument was NULL. Example: md5('ABC') = '902fbdd2b1df0c4f70b4a5d23525e932'." - }, - reflect: { - returnTypes: ['T'], - arguments: [ - [{ type: 'STRING' }], - [{ type: 'STRING' }], - [{ type: 'T', multiple: true, optional: true }] - ], - signature: 'reflect(class, method[, arg1[, arg2..]])', - draggable: 'reflect()', - description: - 'Calls a Java method by matching the argument signature, using reflection. (As of Hive 0.7.0.)' - }, - sha: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }, { type: 'BINARY' }]], - signature: 'sha(STRING|BINARY a)', - draggable: 'sha()', - description: - "Calculates the SHA-1 digest for string or binary and returns the value as a hex string (as of Hive 1.3.0). Example: sha1('ABC') = '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8'." - }, - sha1: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }, { type: 'BINARY' }]], - signature: 'sha1(STRING|BINARY a)', - draggable: 'sha1()', - description: - "Calculates the SHA-1 digest for string or binary and returns the value as a hex string (as of Hive 1.3.0). Example: sha1('ABC') = '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8'." - }, - sha2: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }, { type: 'BINARY' }], [{ type: 'INT' }]], - signature: 'sha2(STRING|BINARY a, INT b)', - draggable: 'sha2()', - description: - "Calculates the SHA-2 family of hash functions (SHA-224, SHA-256, SHA-384, and SHA-512) (as of Hive 1.3.0). The first argument is the string or binary to be hashed. The second argument indicates the desired bit length of the result, which must have a value of 224, 256, 384, 512, or 0 (which is equivalent to 256). SHA-224 is supported starting from Java 8. If either argument is NULL or the hash length is not one of the permitted values, the return value is NULL. Example: sha2('ABC', 256) = 'b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78'." - }, - version: { - returnTypes: ['STRING'], - arguments: [], - signature: 'version()', - draggable: 'version()', - description: - 'Returns the Hive version (as of Hive 2.1.0). The string contains 2 fields, the first being a build number and the second being a build hash. Example: "select version();" might return "2.1.0.2.5.0.0-1245 r027527b9c5ce1a3d7d0b6d2e6de2378fb0c39232". Actual results will depend on your build.' - }, - xpath: { - returnTypes: ['ARRAY'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'array xpath(STRING xml, STRING xpath)', - draggable: 'array xpath()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - }, - xpath_boolean: { - returnTypes: ['BOOLEAN'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'xpath_boolean(STRING xml, STRING xpath)', - draggable: 'xpath_boolean()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - }, - xpath_double: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'xpath_double(STRING xml, STRING xpath)', - draggable: 'xpath_double()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - }, - xpath_float: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'xpath_float(STRING xml, STRING xpath)', - draggable: 'xpath_float()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - }, - xpath_int: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'xpath_int(STRING xml, STRING xpath)', - draggable: 'xpath_int()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - }, - xpath_long: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'xpath_long(STRING xml, STRING xpath)', - draggable: 'xpath_long()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - }, - xpath_number: { - returnTypes: ['DOUBLE'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'xpath_number(STRING xml, STRING xpath)', - draggable: 'xpath_number()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - }, - xpath_short: { - returnTypes: ['INT'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'xpath_short(STRING xml, STRING xpath)', - draggable: 'xpath_short()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - }, - xpath_string: { - returnTypes: ['STRING'], - arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], - signature: 'xpath_string(STRING xml, STRING xpath)', - draggable: 'xpath_string()', - description: - 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' - } - }, - impala: { - coordinator: { - returnTypes: ['STRING'], - arguments: [], - signature: 'coordinator()', - draggable: 'coordinator()', - description: - 'Returns the name of the host which is running the impalad daemon that is acting as the coordinator for the current query.' - }, - current_database: { - returnTypes: ['STRING'], - arguments: [], - signature: 'current_database()', - draggable: 'current_database()', - description: - 'Returns the database that the session is currently using, either default if no database has been selected, or whatever database the session switched to through a USE statement or the impalad - d option' - }, - effective_user: { - returnTypes: ['STRING'], - arguments: [], - signature: 'effective_user()', - draggable: 'effective_user()', - description: - 'Typically returns the same value as user(), except if delegation is enabled, in which case it returns the ID of the delegated user.' - }, - logged_in_user: { - returnTypes: ['STRING'], - arguments: [], - signature: 'logged_in_user()', - draggable: 'logged_in_user()', - description: - 'Purpose: Typically returns the same value as USER(). If delegation is enabled, it returns the ID of the delegated user. LOGGED_IN_USER() is an alias of EFFECTIVE_USER().' - }, - pid: { - returnTypes: ['INT'], - arguments: [], - signature: 'pid()', - draggable: 'pid()', - description: - 'Returns the process ID of the impalad daemon that the session is connected to.You can use it during low - level debugging, to issue Linux commands that trace, show the arguments, and so on the impalad process.' - }, - sleep: { - returnTypes: ['STRING'], - arguments: [[{ type: 'INT' }]], - signature: 'sleep(INT ms)', - draggable: 'sleep()', - description: - 'Pauses the query for a specified number of milliseconds. For slowing down queries with small result sets enough to monitor runtime execution, memory usage, or other factors that otherwise would be difficult to capture during the brief interval of query execution.' - }, - user: { - returnTypes: ['STRING'], - arguments: [], - signature: 'user()', - draggable: 'user()', - description: - 'Returns the username of the Linux user who is connected to the impalad daemon.Typically called a single time, in a query without any FROM clause, to understand how authorization settings apply in a security context; once you know the logged - in user name, you can check which groups that user belongs to, and from the list of groups you can check which roles are available to those groups through the authorization policy file.In Impala 2.0 and later, user() returns the the full Kerberos principal string, such as user@example.com, in a Kerberized environment.' - }, - uuid: { - returnTypes: ['STRING'], - arguments: [], - signature: 'uuid()', - draggable: 'uuid()', - description: - 'Returns a universal unique identifier, a 128-bit value encoded as a string with groups of hexadecimal digits separated by dashes.' - }, - version: { - returnTypes: ['STRING'], - arguments: [], - signature: 'version()', - draggable: 'version()', - description: - 'Returns information such as the precise version number and build date for the impalad daemon that you are currently connected to.Typically used to confirm that you are connected to the expected level of Impala to use a particular feature, or to connect to several nodes and confirm they are all running the same level of impalad.' - } - } - }; - - const ANALYTIC_FUNCTIONS = { - hive: { - cume_dist: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true, optional: true }]], - signature: 'cume_dist()', - draggable: 'cume_dist()', - description: '' - }, - dense_rank: { - returnTypes: ['INT'], - arguments: [], - signature: 'dense_rank() OVER([partition_by_clause] order_by_clause)', - draggable: 'dense_rank() OVER()', - description: - 'Returns an ascending sequence of integers, starting with 1. The output sequence produces duplicate integers for duplicate values of the ORDER BY expressions.' - }, - first_value: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'first_value(expr) OVER([partition_by_clause] order_by_clause [window_clause])', - draggable: 'first_value() OVER()', - description: - 'Returns the expression value from the first row in the window. The return value is NULL if the input expression is NULL.' - }, - lag: { - returnTypes: ['T'], - arguments: [ - [{ type: 'T' }], - [{ type: 'INT', optional: true }], - [{ type: 'T', optional: true }] - ], - signature: 'lag(expr [, offset] [, default]) OVER ([partition_by_clause] order_by_clause)', - draggable: 'lag() OVER()', - description: - 'This function returns the value of an expression using column values from a preceding row. You specify an integer offset, which designates a row position some number of rows previous to the current row. Any column references in the expression argument refer to column values from that prior row.' - }, - last_value: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'last_value(expr) OVER([partition_by_clause] order_by_clause [window_clause])', - draggable: 'last_value() OVER()', - description: - 'Returns the expression value from the last row in the window. The return value is NULL if the input expression is NULL.' - }, - lead: { - returnTypes: ['T'], - arguments: [ - [{ type: 'T' }], - [{ type: 'INT', optional: true }], - [{ type: 'T', optional: true }] - ], - signature: 'lead(expr [, offset] [, default]) OVER([partition_by_clause] order_by_clause)', - draggable: 'lead() OVER()', - description: - 'This function returns the value of an expression using column values from a following row. You specify an integer offset, which designates a row position some number of rows after to the current row. Any column references in the expression argument refer to column values from that later row.' - }, - ntile: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true, optional: true }]], - signature: 'ntile()', - draggable: 'ntile()', - description: '' - }, - percent_rank: { - returnTypes: ['T'], - arguments: [[{ type: 'T', multiple: true, optional: true }]], - signature: 'percent_rank()', - draggable: 'percent_rank()', - description: '' - }, - rank: { - returnTypes: ['INT'], - arguments: [], - signature: 'rank() OVER([partition_by_clause] order_by_clause)', - draggable: 'rank() OVER()', - description: - 'Returns an ascending sequence of integers, starting with 1. The output sequence produces duplicate integers for duplicate values of the ORDER BY expressions. After generating duplicate output values for the "tied" input values, the function increments the sequence by the number of tied values.' - }, - row_number: { - returnTypes: ['INT'], - arguments: [], - signature: 'row_number() OVER([partition_by_clause] order_by_clause)', - draggable: 'row_number() OVER()', - description: - 'Returns an ascending sequence of integers, starting with 1. Starts the sequence over for each group produced by the PARTITIONED BY clause. The output sequence includes different values for duplicate input values. Therefore, the sequence never contains any duplicates or gaps, regardless of duplicate input values.' - } - }, - impala: { - cume_dist: { - returnTypes: ['T'], - arguments: [{ type: 'T' }], - signature: 'cume_dist(T expr) OVER([partition_by_clause] order_by_clause)', - draggable: 'cume_dist() OVER()', - description: - 'Returns the cumulative distribution of a value. The value for each row in the result set is greater than 0 and less than or equal to 1.' - }, - dense_rank: { - returnTypes: ['INT'], - arguments: [], - signature: 'dense_rank() OVER([partition_by_clause] order_by_clause)', - draggable: 'dense_rank() OVER()', - description: - 'Returns an ascending sequence of integers, starting with 1. The output sequence produces duplicate integers for duplicate values of the ORDER BY expressions.' - }, - first_value: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'first_value(expr) OVER([partition_by_clause] order_by_clause [window_clause])', - draggable: 'first_value() OVER()', - description: - 'Returns the expression value from the first row in the window. The return value is NULL if the input expression is NULL.' - }, - lag: { - returnTypes: ['T'], - arguments: [ - [{ type: 'T' }], - [{ type: 'INT', optional: true }], - [{ type: 'T', optional: true }] - ], - signature: 'lag(expr [, offset] [, default]) OVER ([partition_by_clause] order_by_clause)', - draggable: 'lag() OVER()', - description: - 'This function returns the value of an expression using column values from a preceding row. You specify an integer offset, which designates a row position some number of rows previous to the current row. Any column references in the expression argument refer to column values from that prior row.' - }, - last_value: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'last_value(expr) OVER([partition_by_clause] order_by_clause [window_clause])', - draggable: 'last_value() OVER()', - description: - 'Returns the expression value from the last row in the window. The return value is NULL if the input expression is NULL.' - }, - lead: { - returnTypes: ['T'], - arguments: [ - [{ type: 'T' }], - [{ type: 'INT', optional: true }], - [{ type: 'T', optional: true }] - ], - signature: 'lead(expr [, offset] [, default]) OVER ([partition_by_clause] order_by_clause)', - draggable: 'lead() OVER()', - description: - 'This function returns the value of an expression using column values from a following row. You specify an integer offset, which designates a row position some number of rows after to the current row. Any column references in the expression argument refer to column values from that later row.' - }, - ntile: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T', multiple: true, optional: true }]], - signature: 'ntile(T expr [, T offset ...])', - draggable: 'ntile()', - description: - 'Returns the "bucket number" associated with each row, between 1 and the value of an expression. For example, creating 100 buckets puts the lowest 1% of values in the first bucket, while creating 10 buckets puts the lowest 10% of values in the first bucket. Each partition can have a different number of buckets.' - }, - percent_rank: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'percent_rank(T expr) OVER ([partition_by_clause] order_by_clause)', - draggable: 'percent_rank() OVER()', - description: - 'Calculates the rank, expressed as a percentage, of each row within a group of rows. If rank is the value for that same row from the RANK() function (from 1 to the total number of rows in the partition group), then the PERCENT_RANK() value is calculated as (rank - 1) / (rows_in_group - 1) . If there is only a single item in the partition group, its PERCENT_RANK() value is 0. The ORDER BY clause is required. The PARTITION BY clause is optional. The window clause is not allowed.' - }, - rank: { - returnTypes: ['INT'], - arguments: [], - signature: 'rank() OVER([partition_by_clause] order_by_clause)', - draggable: 'rank() OVER()', - description: - 'Returns an ascending sequence of integers, starting with 1. The output sequence produces duplicate integers for duplicate values of the ORDER BY expressions. After generating duplicate output values for the "tied" input values, the function increments the sequence by the number of tied values.' - }, - row_number: { - returnTypes: ['INT'], - arguments: [], - signature: 'row_number() OVER([partition_by_clause] order_by_clause)', - draggable: 'row_number() OVER()', - description: - 'Returns an ascending sequence of integers, starting with 1. Starts the sequence over for each group produced by the PARTITIONED BY clause. The output sequence includes different values for duplicate input values. Therefore, the sequence never contains any duplicates or gaps, regardless of duplicate input values.' - } - } - }; - - const BIT_FUNCTIONS = { - hive: {}, - impala: { - bitand: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'bitand(T a, T b)', - draggable: 'bitand()', - description: - 'Returns an integer value representing the bits that are set to 1 in both of the arguments. If the arguments are of different sizes, the smaller is promoted to the type of the larger.' - }, - bitnot: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }]], - signature: 'bitnot(T a)', - draggable: 'bitnot()', - description: 'Inverts all the bits of the input argument.' - }, - bitor: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'bitor(T a, T b)', - draggable: 'bitor()', - description: - 'Returns an integer value representing the bits that are set to 1 in either of the arguments. If the arguments are of different sizes, the smaller is promoted to the type of the larger.' - }, - bitxor: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'T' }]], - signature: 'bitxor(T a, T b)', - draggable: 'bitxor()', - description: - 'Returns an integer value representing the bits that are set to 1 in one but not both of the arguments. If the arguments are of different sizes, the smaller is promoted to the type of the larger.' - }, - countset: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'INT', optional: true }]], - signature: 'countset(T a [, INT b])', - draggable: 'countset()', - description: - 'By default, returns the number of 1 bits in the specified integer value. If the optional second argument is set to zero, it returns the number of 0 bits instead.' - }, - getbit: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'INT' }]], - signature: 'getbit(T a, INT b)', - draggable: 'getbit()', - description: - 'Returns a 0 or 1 representing the bit at a specified position. The positions are numbered right to left, starting at zero. The position argument (b) cannot be negative.' - }, - rotateleft: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'INT' }]], - signature: 'rotateleft(T a, INT b)', - draggable: 'rotateleft()', - description: - 'Rotates an integer value left by a specified number of bits. As the most significant bit is taken out of the original value, if it is a 1 bit, it is "rotated" back to the least significant bit. Therefore, the final value has the same number of 1 bits as the original value, just in different positions. In computer science terms, this operation is a "circular shift".' - }, - rotateright: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'INT' }]], - signature: 'rotateright(T a, INT b)', - draggable: 'rotateright()', - description: - 'Rotates an integer value right by a specified number of bits. As the least significant bit is taken out of the original value, if it is a 1 bit, it is "rotated" back to the most significant bit. Therefore, the final value has the same number of 1 bits as the original value, just in different positions. In computer science terms, this operation is a "circular shift".' - }, - setbit: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'INT' }], [{ type: 'INT', optional: true }]], - signature: 'setbit(T a, INT b [, INT c])', - draggable: 'setbit()', - description: - 'By default, changes a bit at a specified position (b) to a 1, if it is not already. If the optional third argument is set to zero, the specified bit is set to 0 instead.' - }, - shiftleft: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'INT' }]], - signature: 'shiftleft(T a, INT b)', - draggable: 'shiftleft()', - description: - 'Shifts an integer value left by a specified number of bits. As the most significant bit is taken out of the original value, it is discarded and the least significant bit becomes 0. In computer science terms, this operation is a "logical shift".' - }, - shiftright: { - returnTypes: ['T'], - arguments: [[{ type: 'T' }], [{ type: 'INT' }]], - signature: 'shiftright(T a, INT b)', - draggable: 'shiftright()', - description: - 'Shifts an integer value right by a specified number of bits. As the least significant bit is taken out of the original value, it is discarded and the most significant bit becomes 0. In computer science terms, this operation is a "logical shift".' - } - } - }; - - const CATEGORIZED_FUNCTIONS = { - hive: [ - { name: 'Aggregate', functions: AGGREGATE_FUNCTIONS['hive'] }, - { name: 'Analytic', functions: ANALYTIC_FUNCTIONS['hive'] }, - { name: 'Collection', functions: COLLECTION_FUNCTIONS['hive'] }, - { name: 'Complex Type', functions: COMPLEX_TYPE_CONSTRUCTS['hive'] }, - { name: 'Conditional', functions: CONDITIONAL_FUNCTIONS['hive'] }, - { name: 'Date', functions: DATE_FUNCTIONS['hive'] }, - { name: 'Mathematical', functions: MATHEMATICAL_FUNCTIONS['hive'] }, - { name: 'Misc', functions: MISC_FUNCTIONS['hive'] }, - { name: 'String', functions: STRING_FUNCTIONS['hive'] }, - { name: 'Data Masking', functions: DATA_MASKING_FUNCTIONS['hive'] }, - { name: 'Table Generating', functions: TABLE_GENERATING_FUNCTIONS['hive'] }, - { name: 'Type Conversion', functions: TYPE_CONVERSION_FUNCTIONS['hive'] } - ], - impala: [ - { name: 'Aggregate', functions: AGGREGATE_FUNCTIONS['impala'] }, - { name: 'Analytic', functions: ANALYTIC_FUNCTIONS['impala'] }, - { name: 'Bit', functions: BIT_FUNCTIONS['impala'] }, - { name: 'Conditional', functions: CONDITIONAL_FUNCTIONS['impala'] }, - { name: 'Date', functions: DATE_FUNCTIONS['impala'] }, - { name: 'Mathematical', functions: MATHEMATICAL_FUNCTIONS['impala'] }, - { name: 'Misc', functions: MISC_FUNCTIONS['impala'] }, - { name: 'String', functions: STRING_FUNCTIONS['impala'] }, - { name: 'Type Conversion', functions: TYPE_CONVERSION_FUNCTIONS['impala'] } - ] - }; - - const typeImplicitConversion = { - hive: { - BOOLEAN: { - BOOLEAN: true, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: false, - SMALLINT: false, - INT: false, - INTEGER: false, - BIGINT: false, - FLOAT: false, - DOUBLE: false, - DECIMAL: false, - NUMBER: false, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - TIMESTAMP: { - BOOLEAN: false, - TIMESTAMP: true, - DATE: false, - BINARY: false, - TINYINT: false, - SMALLINT: false, - INT: false, - INTEGER: false, - BIGINT: false, - FLOAT: false, - DOUBLE: false, - DECIMAL: false, - NUMBER: false, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - DATE: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: true, - BINARY: false, - TINYINT: false, - SMALLINT: false, - INT: false, - INTEGER: false, - BIGINT: false, - FLOAT: false, - DOUBLE: false, - DECIMAL: false, - NUMBER: false, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - BINARY: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: true, - TINYINT: false, - SMALLINT: false, - INT: false, - INTEGER: false, - BIGINT: false, - FLOAT: false, - DOUBLE: false, - DECIMAL: false, - NUMBER: false, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - TINYINT: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: true, - SMALLINT: false, - INT: false, - INTEGER: false, - BIGINT: false, - FLOAT: false, - DOUBLE: false, - DECIMAL: false, - NUMBER: true, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - SMALLINT: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: false, - INTEGER: false, - BIGINT: false, - FLOAT: false, - DOUBLE: false, - DECIMAL: false, - NUMBER: true, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - INT: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: false, - FLOAT: false, - DOUBLE: false, - DECIMAL: false, - NUMBER: true, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - BIGINT: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: false, - DOUBLE: false, - DECIMAL: false, - NUMBER: true, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - FLOAT: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: true, - DOUBLE: false, - DECIMAL: false, - NUMBER: true, - STRING: false, - CHAR: false, - VARCHAR: false, - T: true - }, - DOUBLE: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: true, - DOUBLE: true, - DECIMAL: false, - NUMBER: true, - STRING: true, - CHAR: true, - VARCHAR: true, - T: true - }, - DECIMAL: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: true, - DOUBLE: true, - DECIMAL: true, - NUMBER: true, - STRING: true, - CHAR: true, - VARCHAR: true, - T: true - }, - NUMBER: { - BOOLEAN: false, - TIMESTAMP: false, - DATE: false, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: true, - DOUBLE: true, - DECIMAL: true, - NUMBER: true, - STRING: true, - CHAR: true, - VARCHAR: true, - T: true - }, - STRING: { - BOOLEAN: false, - TIMESTAMP: true, - DATE: true, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: true, - DOUBLE: true, - DECIMAL: true, - NUMBER: true, - STRING: true, - CHAR: true, - VARCHAR: true, - T: true - }, - CHAR: { - BOOLEAN: false, - TIMESTAMP: true, - DATE: true, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: true, - DOUBLE: true, - DECIMAL: true, - NUMBER: true, - STRING: true, - CHAR: true, - VARCHAR: true, - T: true - }, - VARCHAR: { - BOOLEAN: false, - TIMESTAMP: true, - DATE: true, - BINARY: false, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: true, - DOUBLE: true, - DECIMAL: true, - NUMBER: true, - STRING: true, - CHAR: true, - VARCHAR: true, - T: true - }, - T: { - BOOLEAN: true, - TIMESTAMP: true, - DATE: true, - BINARY: true, - TINYINT: true, - SMALLINT: true, - INT: true, - INTEGER: true, - BIGINT: true, - FLOAT: true, - DOUBLE: true, - DECIMAL: true, - NUMBER: true, - STRING: true, - CHAR: true, - VARCHAR: true, - T: true - } - }, - impala: { - BOOLEAN: { - BOOLEAN: true, - TIMESTAMP: false, - TINYINT: false, - SMALLINT: false, - INT: false, - BIGINT: false, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: false, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - TIMESTAMP: { - BOOLEAN: false, - TIMESTAMP: true, - TINYINT: false, - SMALLINT: false, - INT: false, - BIGINT: false, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: false, - CHAR: false, - VARCHAR: false, - STRING: true, - T: true - }, - TINYINT: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: false, - INT: false, - BIGINT: false, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - SMALLINT: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: true, - INT: false, - BIGINT: false, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - INT: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: true, - INT: true, - BIGINT: false, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - BIGINT: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: true, - INT: true, - BIGINT: true, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - DOUBLE: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: true, - INT: true, - BIGINT: true, - DOUBLE: true, - REAL: true, - DECIMAL: false, - FLOAT: true, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - REAL: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: true, - INT: true, - BIGINT: true, - DOUBLE: true, - REAL: true, - DECIMAL: false, - FLOAT: true, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - DECIMAL: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: true, - INT: true, - BIGINT: true, - DOUBLE: true, - REAL: true, - DECIMAL: true, - FLOAT: true, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - FLOAT: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: true, - INT: true, - BIGINT: true, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: true, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - NUMBER: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: true, - SMALLINT: true, - INT: true, - BIGINT: true, - DOUBLE: true, - REAL: true, - DECIMAL: true, - FLOAT: true, - NUMBER: true, - CHAR: false, - VARCHAR: false, - STRING: false, - T: true - }, - CHAR: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: false, - SMALLINT: false, - INT: false, - BIGINT: false, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: false, - CHAR: true, - VARCHAR: false, - STRING: false, - T: true - }, - VARCHAR: { - BOOLEAN: false, - TIMESTAMP: false, - TINYINT: false, - SMALLINT: false, - INT: false, - BIGINT: false, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: false, - CHAR: true, - VARCHAR: true, - STRING: false, - T: true - }, - STRING: { - BOOLEAN: false, - TIMESTAMP: true, - TINYINT: false, - SMALLINT: false, - INT: false, - BIGINT: false, - DOUBLE: false, - REAL: false, - DECIMAL: false, - FLOAT: false, - NUMBER: false, - CHAR: true, - VARCHAR: false, - STRING: true, - T: true - }, - T: { - BOOLEAN: true, - TIMESTAMP: true, - TINYINT: true, - SMALLINT: true, - INT: true, - BIGINT: true, - DOUBLE: true, - REAL: true, - DECIMAL: true, - FLOAT: true, - NUMBER: true, - CHAR: true, - VARCHAR: true, - STRING: true, - T: true - } - } - }; - - const createDocHtml = function(funcDesc) { - let html = - '

' + funcDesc.signature + '

'; - if (funcDesc.description) { - html += '

' + funcDesc.description.replace(/[<]/g, '<').replace(/[>]/g, '>') + '

'; - } - html += '
'; - return html; - }; - - const stripPrecision = function(types) { - const result = []; - types.forEach(type => { - if (type.indexOf('(') > -1) { - result.push(type.substring(0, type.indexOf('('))); - } else { - result.push(type); - } - }); - return result; - }; - - /** - * Matches types based on implicit conversion i.e. if you expect a BIGINT then INT is ok but not BOOLEAN etc. - * - * @param dialect - * @param expectedTypes - * @param actualRawTypes - * @returns {boolean} - */ - const matchesType = function(dialect, expectedTypes, actualRawTypes) { - if (dialect !== 'hive') { - dialect = 'impala'; - } - if (expectedTypes.length === 1 && expectedTypes[0] === 'T') { - return true; - } - const actualTypes = stripPrecision(actualRawTypes); - if ( - actualTypes.indexOf('ARRAY') !== -1 || - actualTypes.indexOf('MAP') !== -1 || - actualTypes.indexOf('STRUCT') !== -1 - ) { - return true; - } - for (let i = 0; i < expectedTypes.length; i++) { - for (let j = 0; j < actualTypes.length; j++) { - // To support future unknown types - if ( - typeof typeImplicitConversion[dialect][expectedTypes[i]] === 'undefined' || - typeof typeImplicitConversion[dialect][expectedTypes[i]][actualTypes[j]] == 'undefined' - ) { - return true; - } - if ( - typeImplicitConversion[dialect][expectedTypes[i]] && - typeImplicitConversion[dialect][expectedTypes[i]][actualTypes[j]] - ) { - return true; - } - } - } - return false; - }; - - const addFunctions = function(functionIndex, dialect, returnTypes, result) { - const indexForDialect = functionIndex[dialect || 'generic']; - if (indexForDialect) { - Object.keys(indexForDialect).forEach(funcName => { - const func = indexForDialect[funcName]; - if ( - typeof returnTypes === 'undefined' || - matchesType(dialect, returnTypes, func.returnTypes) - ) { - result[funcName] = func; - } - }); - } - if (functionIndex.shared) { - Object.keys(functionIndex.shared).forEach(funcName => { - const func = functionIndex.shared[funcName]; - if ( - typeof returnTypes === 'undefined' || - matchesType(dialect, returnTypes, func.returnTypes) - ) { - result[funcName] = func; - } - }); - } - }; - - const getFunctionsWithReturnTypes = function( - dialect, - returnTypes, - includeAggregate, - includeAnalytic - ) { - const result = {}; - addFunctions(BIT_FUNCTIONS, dialect, returnTypes, result); - addFunctions(COLLECTION_FUNCTIONS, dialect, returnTypes, result); - addFunctions(CONDITIONAL_FUNCTIONS, dialect, returnTypes, result); - addFunctions(COMPLEX_TYPE_CONSTRUCTS, dialect, returnTypes, result); - addFunctions(DATE_FUNCTIONS, dialect, returnTypes, result); - addFunctions(MATHEMATICAL_FUNCTIONS, dialect, returnTypes, result); - addFunctions(TYPE_CONVERSION_FUNCTIONS, dialect, returnTypes, result); - addFunctions(STRING_FUNCTIONS, dialect, returnTypes, result); - addFunctions(DATA_MASKING_FUNCTIONS, dialect, returnTypes, result); - addFunctions(MISC_FUNCTIONS, dialect, returnTypes, result); - addFunctions(TABLE_GENERATING_FUNCTIONS, dialect, returnTypes, result); - if (includeAggregate) { - addFunctions(AGGREGATE_FUNCTIONS, dialect, returnTypes, result); - } - if (includeAnalytic) { - addFunctions(ANALYTIC_FUNCTIONS, dialect, returnTypes, result); - } - return result; - }; - - const suggestFunctions = function( - dialect, - returnTypes, - includeAggregate, - includeAnalytic, - completions, - weight - ) { - const functionsToSuggest = getFunctionsWithReturnTypes( - dialect, - returnTypes, - includeAggregate, - includeAnalytic - ); - Object.keys(functionsToSuggest).forEach(name => { - completions.push({ - value: name + '()', - meta: functionsToSuggest[name].returnTypes.join('|'), - weight: - returnTypes.filter(type => { - return ( - functionsToSuggest[name].returnTypes.filter(otherType => { - return otherType === type; - }).length > 0 - ); - }).length > 0 - ? weight + 1 - : weight, - docHTML: createDocHtml(functionsToSuggest[name]) - }); - }); - }; - - const findFunction = function(dialect, functionName) { - return ( - BIT_FUNCTIONS[dialect][functionName] || - COLLECTION_FUNCTIONS[dialect][functionName] || - CONDITIONAL_FUNCTIONS[dialect][functionName] || - COMPLEX_TYPE_CONSTRUCTS[dialect][functionName] || - DATE_FUNCTIONS[dialect][functionName] || - MATHEMATICAL_FUNCTIONS[dialect][functionName] || - TYPE_CONVERSION_FUNCTIONS[dialect][functionName] || - STRING_FUNCTIONS[dialect][functionName] || - DATA_MASKING_FUNCTIONS[dialect][functionName] || - MISC_FUNCTIONS[dialect][functionName] || - TABLE_GENERATING_FUNCTIONS[dialect][functionName] || - AGGREGATE_FUNCTIONS[dialect][functionName] || - ANALYTIC_FUNCTIONS[dialect][functionName] - ); - }; - - const getArgumentTypes = function(dialect, functionName, argumentPosition) { - if (dialect !== 'hive' && dialect !== 'impala') { - return ['T']; - } - const foundFunction = findFunction(dialect, functionName); - if (!foundFunction) { - return ['T']; - } - const args = foundFunction.arguments; - if (argumentPosition > args.length) { - const multiples = args[args.length - 1].filter(type => { - return type.multiple; - }); - if (multiples.length > 0) { - return multiples - .map(argument => { - return argument.type; - }) - .sort(); - } - return []; - } - return args[argumentPosition - 1] - .map(argument => { - return argument.type; - }) - .sort(); - }; - - const getReturnTypes = function(dialect, functionName) { - if (dialect !== 'hive' && dialect !== 'impala') { - return ['T']; - } - const foundFunction = findFunction(dialect, functionName); - if (!foundFunction) { - return ['T']; - } - return foundFunction.returnTypes; - }; - - return { - suggestFunctions: suggestFunctions, - getArgumentTypes: getArgumentTypes, - CATEGORIZED_FUNCTIONS: CATEGORIZED_FUNCTIONS, - getFunctionsWithReturnTypes: getFunctionsWithReturnTypes, - getReturnTypes: getReturnTypes, - matchesType: matchesType, - findFunction: findFunction - }; -})(); - -export { PigFunctions, SqlSetOptions, SqlFunctions }; diff --git a/src/core/parse/sqlParserRepository.js b/src/core/parse/sqlParserRepository.js deleted file mode 100644 index e989463..0000000 --- a/src/core/parse/sqlParserRepository.js +++ /dev/null @@ -1,74 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* eslint-disable */ -/** - * AUTOCOMPLETE_MODULES and SYNTAX_MODULES are generated, do not edit manually, see tools/jison/generateParsers.js - */ -const AUTOCOMPLETE_MODULES = { - calcite: require("calcite/calciteAutocompleteParser"), - druid: require("druid/druidAutocompleteParser"), - elasticsearch: require("elasticsearch/elasticsearchAutocompleteParser"), - flink: require("flink/flinkAutocompleteParser"), - generic: require("generic/genericAutocompleteParser"), - hive: require("hive/hiveAutocompleteParser"), - impala: require("impala/impalaAutocompleteParser"), - ksql: require("ksql/ksqlAutocompleteParser"), - phoenix: require("phoenix/phoenixAutocompleteParser"), - presto: require("presto/prestoAutocompleteParser") -}; -const SYNTAX_MODULES = { - calcite: require("calcite/calciteSyntaxParser"), - druid: require("druid/druidSyntaxParser"), - elasticsearch: require("elasticsearch/elasticsearchSyntaxParser"), - flink: require("flink/flinkSyntaxParser"), - generic: require("generic/genericSyntaxParser"), - hive: require("hive/hiveSyntaxParser"), - impala: require("impala/impalaSyntaxParser"), - ksql: require("ksql/ksqlSyntaxParser"), - phoenix: require("phoenix/phoenixSyntaxParser"), - presto: require("presto/prestoSyntaxParser") -}; -/* eslint-enable */ - -class SqlParserRepository { - constructor() { - this.modulePromises = {}; - } - - async getParser(sourceType, parserType) { - if (!this.modulePromises[sourceType + parserType]) { - const modules = parserType === 'Autocomplete' ? AUTOCOMPLETE_MODULES : SYNTAX_MODULES; - this.modulePromises[sourceType + parserType] = new Promise((resolve, reject) => { - const targetModule = modules[sourceType] || modules.generic; - resolve(targetModule); - }); - } - return this.modulePromises[sourceType + parserType]; - } - - async getAutocompleter(sourceType) { - return this.getParser(sourceType, 'Autocomplete'); - } - - async getSyntaxParser(sourceType) { - return this.getParser(sourceType, 'Syntax'); - } -} - -const sqlParserRepository = new SqlParserRepository(); - -export default sqlParserRepository; diff --git a/src/core/parse/stringDistance.js b/src/core/parse/stringDistance.js deleted file mode 100644 index b02bb38..0000000 --- a/src/core/parse/stringDistance.js +++ /dev/null @@ -1,77 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * Calculates the Optimal String Alignment distance between two strings. Returns 0 when the strings are equal and the - * distance when not, distances is less than or equal to the length of the longest string. - * - * @param strA - * @param strB - * @param [ignoreCase] - * @returns {number} The similarity - */ -const stringDistance = function(strA, strB, ignoreCase) { - if (ignoreCase) { - strA = strA.toLowerCase(); - strB = strB.toLowerCase(); - } - - // TODO: Consider other algorithms for performance - const strALength = strA.length; - const strBLength = strB.length; - if (strALength === 0) { - return strBLength; - } - if (strBLength === 0) { - return strALength; - } - - const distances = new Array(strALength); - - let cost, deletion, insertion, substitution, transposition; - for (let i = 0; i <= strALength; i++) { - distances[i] = new Array(strBLength); - distances[i][0] = i; - for (let j = 1; j <= strBLength; j++) { - if (!i) { - distances[0][j] = j; - } else { - cost = strA[i - 1] === strB[j - 1] ? 0 : 1; - deletion = distances[i - 1][j] + 1; - insertion = distances[i][j - 1] + 1; - substitution = distances[i - 1][j - 1] + cost; - if (deletion <= insertion && deletion <= substitution) { - distances[i][j] = deletion; - } else if (insertion <= deletion && insertion <= substitution) { - distances[i][j] = insertion; - } else { - distances[i][j] = substitution; - } - - if (i > 1 && j > 1 && strA[i] === strB[j - 1] && strA[i - 1] === strB[j]) { - transposition = distances[i - 2][j - 2] + cost; - if (transposition < distances[i][j]) { - distances[i][j] = transposition; - } - } - } - } - } - - return distances[strALength][strBLength]; -}; - -export default stringDistance; diff --git a/src/core/sqlAutoCompleteParser.d.ts b/src/core/sqlAutoCompleteParser.d.ts deleted file mode 100644 index 511460e..0000000 --- a/src/core/sqlAutoCompleteParser.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -interface Location { - first_column: number, - first_line: number, - last_column: number, - last_line: number -} -declare enum sqlType { - Hive = 'hive', - None = 'sql', - Impala = 'impala' -} -interface Locations { - // 语句类型 - type: string; - // 语法是否缺失 - missing?: Boolean; - // 语句位置 - location: Location; -} - -interface SuggestKeyword { - value: string; - weight: number; -} -interface CompleteParser { - parseSql: (preSql: string, sufSql: string, type: sqlType, d: Boolean) => CompleteResult -} -export interface CompleteResult { - locations: Locations[]; - suggestKeywords: SuggestKeyword[]; -} -export const parser:CompleteParser; diff --git a/src/core/sqlSyntaxParser.d.ts b/src/core/sqlSyntaxParser.d.ts deleted file mode 100644 index 38ab362..0000000 --- a/src/core/sqlSyntaxParser.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Locations, SuggestKeyword } from "./sqlAutoCompleteParser"; -declare enum sqlType { - Hive = 'hive', - None = 'sql', - Impala = 'impala' -} -interface SyntaxParser { - parseSyntax: (preSql: string, sufSql: string, type: sqlType, d: Boolean) => SyntaxResult | false -} - -interface ExpectedWord { - text: string; - distance: number; -} - -interface ErrorLoc { - first_column: number; - first_line: number; - last_column: number; - last_line: number; -} -export interface SyntaxResult { - text: string; - expected: ExpectedWord[]; - incompleteStatement: Boolean; - loc: ErrorLoc, - token: string -} -export const parser: SyntaxParser; diff --git a/src/core/tsql.ts b/src/core/tsql.ts new file mode 100644 index 0000000..16e451e --- /dev/null +++ b/src/core/tsql.ts @@ -0,0 +1,17 @@ +import { InputStream, CommonTokenStream, Lexer } from 'antlr4'; +import { TSqlParser } from '../parser/TSqlParser'; +import { TSqlLexer } from '../parser/TSqlLexer'; + +import BaseParser from './common/baseParser'; + +export default class TSQLParser extends BaseParser { + public createLexer(input: string): Lexer { + const chars = new InputStream(input.toUpperCase()); + const lexer = new TSqlLexer(chars) as Lexer; + return lexer; + } + public createParserFromLexer(lexer: Lexer) { + const tokenStream = new CommonTokenStream(lexer); + return new TSqlParser(tokenStream); + } +} diff --git a/src/grammar/hello/Hello.g4 b/src/grammar/hello/Hello.g4 new file mode 100644 index 0000000..4b081ce --- /dev/null +++ b/src/grammar/hello/Hello.g4 @@ -0,0 +1,4 @@ +grammar helloSQL; +r: 'hello' ID ; +ID: [a-z]+ ; +WS: [ \t\r\n]+ -> skip ; diff --git a/src/grammar/hive/README.md b/src/grammar/hive/README.md new file mode 100644 index 0000000..4fed08b --- /dev/null +++ b/src/grammar/hive/README.md @@ -0,0 +1,3 @@ +# Hive SQL Grammar + +Source file from [Hive Github](https://github.com/apache/hive/tree/master/hplsql/src/main/antlr4/org/apache/hive/hplsql) diff --git a/src/grammar/impala/README.md b/src/grammar/impala/README.md new file mode 100644 index 0000000..49ff437 --- /dev/null +++ b/src/grammar/impala/README.md @@ -0,0 +1,3 @@ +# Impala SQL Grammar + +SQL-like HiveQL, [Hive Grammar](https://github.com/apache/hive/tree/master/hplsql/src/main/antlr4/org/apache/hive/hplsql) diff --git a/src/grammar/mysql/MySQLLexer.g4 b/src/grammar/mysql/MySQLLexer.g4 new file mode 100644 index 0000000..5b8d9dc --- /dev/null +++ b/src/grammar/mysql/MySQLLexer.g4 @@ -0,0 +1,1245 @@ +/* +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. +*/ + +lexer grammar MySQLLexer; + +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/mysql/MySQLParser.g4 b/src/grammar/mysql/MySQLParser.g4 new file mode 100644 index 0000000..9d50e4f --- /dev/null +++ b/src/grammar/mysql/MySQLParser.g4 @@ -0,0 +1,2586 @@ +/* +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. +*/ + +parser grammar MySQLParser; + +options { tokenVocab=MySQLLexer; } + + +// Top Level Description + +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/README.md b/src/grammar/mysql/README.md new file mode 100644 index 0000000..ce17c7c --- /dev/null +++ b/src/grammar/mysql/README.md @@ -0,0 +1,3 @@ +# MySQL Grammar + +[MySQL Grammar](https://github.com/mysql/mysql-workbench/tree/8.0/library/parsers/grammars) diff --git a/src/grammar/tsql/.antlr/TSqlLexer.interp b/src/grammar/tsql/.antlr/TSqlLexer.interp new file mode 100644 index 0000000..0e3cf31 --- /dev/null +++ b/src/grammar/tsql/.antlr/TSqlLexer.interp @@ -0,0 +1,2543 @@ +token literal names: +null +'ABSENT' +'ADD' +'AES' +'ALL' +'ALLOW_CONNECTIONS' +'ALLOW_MULTIPLE_EVENT_LOSS' +'ALLOW_SINGLE_EVENT_LOSS' +'ALTER' +'AND' +'ANONYMOUS' +'ANY' +'APPEND' +'APPLICATION' +'AS' +'ASC' +'ASYMMETRIC' +'ASYNCHRONOUS_COMMIT' +'AUTHORIZATION' +'AUTHENTICATION' +'AUTOMATED_BACKUP_PREFERENCE' +'AUTOMATIC' +'AVAILABILITY_MODE' +'\\' +'BACKUP' +'BEFORE' +'BEGIN' +'BETWEEN' +'BLOCK' +'BLOCKSIZE' +'BLOCKING_HIERARCHY' +'BREAK' +'BROWSE' +'BUFFER' +'BUFFERCOUNT' +'BULK' +'BY' +'CACHE' +'CALLED' +'CASCADE' +'CASE' +'CERTIFICATE' +'CHANGETABLE' +'CHANGES' +'CHECK' +'CHECKPOINT' +'CHECK_POLICY' +'CHECK_EXPIRATION' +'CLASSIFIER_FUNCTION' +'CLOSE' +'CLUSTER' +'CLUSTERED' +'COALESCE' +'COLLATE' +'COLUMN' +'COMPRESSION' +'COMMIT' +'COMPUTE' +'CONFIGURATION' +'CONSTRAINT' +'CONTAINMENT' +'CONTAINS' +'CONTAINSTABLE' +'CONTEXT' +'CONTINUE' +'CONTINUE_AFTER_ERROR' +'CONTRACT' +'CONTRACT_NAME' +'CONVERSATION' +null +'COPY_ONLY' +'CREATE' +'CROSS' +'CURRENT' +'CURRENT_DATE' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'CURRENT_USER' +'CURSOR' +'CYCLE' +'DATA_COMPRESSION' +'DATA_SOURCE' +'DATABASE' +'DATABASE_MIRRORING' +'DBCC' +'DEALLOCATE' +'DECLARE' +'DEFAULT' +'DEFAULT_DATABASE' +'DEFAULT_SCHEMA' +'DELETE' +'DENY' +'DESC' +'DIAGNOSTICS' +'DIFFERENTIAL' +'DISK' +'DISTINCT' +'DISTRIBUTED' +'DOUBLE' +'\\\\' +'//' +'DROP' +'DTC_SUPPORT' +'DUMP' +'ELSE' +'ENABLED' +'END' +'ENDPOINT' +'ERRLVL' +'ESCAPE' +'ERROR' +'EVENT' +null +'EVENT_RETENTION_MODE' +'EXCEPT' +'EXECUTABLE_FILE' +null +'EXISTS' +'EXPIREDATE' +'EXIT' +'EXTENSION' +'EXTERNAL' +'EXTERNAL_ACCESS' +'FAILOVER' +'FAILURECONDITIONLEVEL' +'FAN_IN' +'FETCH' +'FILE' +'FILENAME' +'FILLFACTOR' +'FILE_SNAPSHOT' +'FOR' +'FORCESEEK' +'FORCE_SERVICE_ALLOW_DATA_LOSS' +'FOREIGN' +'FREETEXT' +'FREETEXTTABLE' +'FROM' +'FULL' +'FUNCTION' +'GET' +'GOTO' +'GOVERNOR' +'GRANT' +'GROUP' +'HAVING' +'HASHED' +'HEALTHCHECKTIMEOUT' +'IDENTITY' +'IDENTITYCOL' +'IDENTITY_INSERT' +'IF' +'IIF' +'IN' +'INCLUDE' +'INCREMENT' +'INDEX' +'INFINITE' +'INIT' +'INNER' +'INSERT' +'INSTEAD' +'INTERSECT' +'INTO' +null +null +'IS' +'ISNULL' +'JOIN' +'KERBEROS' +'KEY' +'KEY_PATH' +'KEY_STORE_PROVIDER_NAME' +'KILL' +'LANGUAGE' +'LEFT' +'LIBRARY' +'LIFETIME' +'LIKE' +'LINENO' +'LINUX' +'LISTENER_IP' +'LISTENER_PORT' +'LOAD' +'LOCAL_SERVICE_NAME' +'LOG' +'MATCHED' +'MASTER' +'MAX_MEMORY' +'MAXTRANSFER' +'MAXVALUE' +'MAX_DISPATCH_LATENCY' +'MAX_EVENT_SIZE' +'MAX_SIZE' +'MAX_OUTSTANDING_IO_PER_VOLUME' +'MEDIADESCRIPTION' +'MEDIANAME' +'MEMBER' +'MEMORY_PARTITION_MODE' +'MERGE' +'MESSAGE_FORWARDING' +'MESSAGE_FORWARD_SIZE' +'MINVALUE' +'MIRROR' +'MUST_CHANGE' +'NATIONAL' +'NEGOTIATE' +'NOCHECK' +'NOFORMAT' +'NOINIT' +'NONCLUSTERED' +'NONE' +'NOREWIND' +'NOSKIP' +'NOUNLOAD' +'NO_CHECKSUM' +'NO_COMPRESSION' +'NO_EVENT_LOSS' +'NOT' +'NOTIFICATION' +'NTLM' +'NULL' +'NULLIF' +'OF' +'OFF' +'OFFSETS' +'OLD_PASSWORD' +'ON' +'ON_FAILURE' +'OPEN' +'OPENDATASOURCE' +'OPENQUERY' +'OPENROWSET' +'OPENXML' +'OPTION' +'OR' +'ORDER' +'OUTER' +'OVER' +'PAGE' +'PARAM_NODE' +'PARTIAL' +'PASSWORD' +'PERCENT' +'PERMISSION_SET' +'PER_CPU' +'PER_DB' +'PER_NODE' +'PIVOT' +'PLAN' +'PLATFORM' +'POLICY' +'PRECISION' +'PREDICATE' +'PRIMARY' +'PRINT' +'PROC' +'PROCEDURE' +'PROCESS' +'PUBLIC' +'PYTHON' +'R' +'RAISERROR' +'RAW' +'READ' +'READTEXT' +'READ_WRITE_FILEGROUPS' +'RECONFIGURE' +'REFERENCES' +'REGENERATE' +'RELATED_CONVERSATION' +'RELATED_CONVERSATION_GROUP' +'REPLICATION' +'REQUIRED' +'RESET' +'RESTART' +'RESTORE' +'RESTRICT' +'RESUME' +'RETAINDAYS' +'RETURN' +'RETURNS' +'REVERT' +'REVOKE' +'REWIND' +'RIGHT' +'ROLLBACK' +'ROLE' +'ROWCOUNT' +'ROWGUIDCOL' +'RSA_512' +'RSA_1024' +'RSA_2048' +'RSA_3072' +'RSA_4096' +'SAFETY' +'RULE' +'SAFE' +'SAVE' +'SCHEDULER' +'SCHEMA' +'SCHEME' +'SECURITYAUDIT' +'SELECT' +'SEMANTICKEYPHRASETABLE' +'SEMANTICSIMILARITYDETAILSTABLE' +'SEMANTICSIMILARITYTABLE' +'SERVER' +'SERVICE' +'SERVICE_BROKER' +'SERVICE_NAME' +'SESSION' +'SESSION_USER' +'SET' +'SETUSER' +'SHUTDOWN' +'SID' +'SKIP' +'SOFTNUMA' +'SOME' +'SOURCE' +'SPECIFICATION' +'SPLIT' +'SQLDUMPERFLAGS' +'SQLDUMPERPATH' +'SQLDUMPERTIMEOUTS' +'STATISTICS' +'STATE' +'STATS' +'START' +'STARTED' +'STARTUP_STATE' +'STOP' +'STOPPED' +'STOP_ON_ERROR' +'SUPPORTED' +'SYSTEM_USER' +'TABLE' +'TABLESAMPLE' +'TAPE' +'TARGET' +'TCP' +'TEXTSIZE' +'THEN' +'TO' +'TOP' +'TRACK_CAUSALITY' +'TRAN' +'TRANSACTION' +'TRANSFER' +'TRIGGER' +'TRUNCATE' +'TSEQUAL' +'UNCHECKED' +'UNION' +'UNIQUE' +'UNLOCK' +'UNPIVOT' +'UNSAFE' +'UPDATE' +'UPDATETEXT' +'URL' +'USE' +'USED' +'USER' +'VALUES' +'VARYING' +'VERBOSELOGGING' +'VIEW' +'VISIBILITY' +'WAITFOR' +'WHEN' +'WHERE' +'WHILE' +'WINDOWS' +'WITH' +'WITHIN' +'WITHOUT' +'WITNESS' +'WRITETEXT' +'ABSOLUTE' +'ACCENT_SENSITIVITY' +'ACTION' +'ACTIVATION' +'ACTIVE' +'ADDRESS' +'AES_128' +'AES_192' +'AES_256' +'AFFINITY' +'AFTER' +'AGGREGATE' +'ALGORITHM' +'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS' +'ALLOW_SNAPSHOT_ISOLATION' +'ALLOWED' +'ANSI_NULL_DEFAULT' +'ANSI_NULLS' +'ANSI_PADDING' +'ANSI_WARNINGS' +'APPLICATION_LOG' +'APPLY' +'ARITHABORT' +'ASSEMBLY' +'AUDIT' +'AUDIT_GUID' +'AUTO' +'AUTO_CLEANUP' +'AUTO_CLOSE' +'AUTO_CREATE_STATISTICS' +'AUTO_SHRINK' +'AUTO_UPDATE_STATISTICS' +'AUTO_UPDATE_STATISTICS_ASYNC' +'AVAILABILITY' +'AVG' +'BACKUP_PRIORITY' +'BEGIN_DIALOG' +'BIGINT' +'BINARY BASE64' +'BINARY_CHECKSUM' +'BINDING' +'BLOB_STORAGE' +'BROKER' +'BROKER_INSTANCE' +'BULK_LOGGED' +'CALLER' +'CAP_CPU_PERCENT' +null +'CATALOG' +'CATCH' +'CHANGE_RETENTION' +'CHANGE_TRACKING' +'CHECKSUM' +'CHECKSUM_AGG' +'CLEANUP' +'COLLECTION' +'COLUMN_MASTER_KEY' +'COMMITTED' +'COMPATIBILITY_LEVEL' +'CONCAT' +'CONCAT_NULL_YIELDS_NULL' +'CONTENT' +'CONTROL' +'COOKIE' +'COUNT' +'COUNT_BIG' +'COUNTER' +'CPU' +'CREATE_NEW' +'CREATION_DISPOSITION' +'CREDENTIAL' +'CRYPTOGRAPHIC' +'CURSOR_CLOSE_ON_COMMIT' +'CURSOR_DEFAULT' +'DATA' +'DATE_CORRELATION_OPTIMIZATION' +'DATEADD' +'DATEDIFF' +'DATENAME' +'DATEPART' +'DAYS' +'DB_CHAINING' +'DB_FAILOVER' +'DECRYPTION' +null +'DEFAULT_FULLTEXT_LANGUAGE' +'DEFAULT_LANGUAGE' +'DELAY' +'DELAYED_DURABILITY' +'DELETED' +'DENSE_RANK' +'DEPENDENTS' +'DES' +'DESCRIPTION' +'DESX' +'DHCP' +'DIALOG' +'DIRECTORY_NAME' +'DISABLE' +'DISABLE_BROKER' +'DISABLED' +null +'DOCUMENT' +'DYNAMIC' +'ELEMENTS' +'EMERGENCY' +'EMPTY' +'ENABLE' +'ENABLE_BROKER' +'ENCRYPTED_VALUE' +'ENCRYPTION' +'ENDPOINT_URL' +'ERROR_BROKER_CONVERSATIONS' +'EXCLUSIVE' +'EXECUTABLE' +'EXIST' +'EXPAND' +'EXPIRY_DATE' +'EXPLICIT' +'FAIL_OPERATION' +'FAILOVER_MODE' +'FAILURE' +'FAILURE_CONDITION_LEVEL' +'FAST' +'FAST_FORWARD' +'FILEGROUP' +'FILEGROWTH' +'FILEPATH' +'FILESTREAM' +'FILTER' +'FIRST' +'FIRST_VALUE' +'FOLLOWING' +'FORCE' +'FORCE_FAILOVER_ALLOW_DATA_LOSS' +'FORCED' +'FORMAT' +'FORWARD_ONLY' +'FULLSCAN' +'FULLTEXT' +'GB' +'GETDATE' +'GETUTCDATE' +'GLOBAL' +'GO' +'GROUP_MAX_REQUESTS' +'GROUPING' +'GROUPING_ID' +'HADR' +'HASH' +'HEALTH_CHECK_TIMEOUT' +'HIGH' +'HONOR_BROKER_PRIORITY' +'HOURS' +'IDENTITY_VALUE' +'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX' +'IMMEDIATE' +'IMPERSONATE' +'IMPORTANCE' +'INCLUDE_NULL_VALUES' +'INCREMENTAL' +'INITIATOR' +'INPUT' +'INSENSITIVE' +'INSERTED' +'INT' +'IP' +'ISOLATION' +'JOB' +'JSON' +'KB' +'KEEP' +'KEEPFIXED' +'KEY_SOURCE' +'KEYS' +'KEYSET' +'LAG' +'LAST' +'LAST_VALUE' +'LEAD' +'LEVEL' +'LIST' +'LISTENER' +'LISTENER_URL' +'LOB_COMPACTION' +'LOCAL' +'LOCATION' +'LOCK' +'LOCK_ESCALATION' +'LOGIN' +'LOOP' +'LOW' +'MANUAL' +'MARK' +'MATERIALIZED' +'MAX' +'MAX_CPU_PERCENT' +'MAX_DOP' +'MAX_FILES' +'MAX_IOPS_PER_VOLUME' +'MAX_MEMORY_PERCENT' +'MAX_PROCESSES' +'MAX_QUEUE_READERS' +'MAX_ROLLOVER_FILES' +'MAXDOP' +'MAXRECURSION' +'MAXSIZE' +'MB' +'MEDIUM' +'MEMORY_OPTIMIZED_DATA' +'MESSAGE' +'MIN' +'MIN_ACTIVE_ROWVERSION' +'MIN_CPU_PERCENT' +'MIN_IOPS_PER_VOLUME' +'MIN_MEMORY_PERCENT' +'MINUTES' +'MIRROR_ADDRESS' +'MIXED_PAGE_ALLOCATION' +'MODE' +'MODIFY' +'MOVE' +'MULTI_USER' +'NAME' +'NESTED_TRIGGERS' +'NEW_ACCOUNT' +'NEW_BROKER' +'NEW_PASSWORD' +'NEXT' +'NO' +'NO_TRUNCATE' +'NO_WAIT' +'NOCOUNT' +'NODES' +'NOEXPAND' +'NON_TRANSACTED_ACCESS' +'NORECOMPUTE' +'NORECOVERY' +'NOWAIT' +'NTILE' +'NUMANODE' +'NUMBER' +'NUMERIC_ROUNDABORT' +'OBJECT' +'OFFLINE' +'OFFSET' +'OLD_ACCOUNT' +'ONLINE' +'ONLY' +'OPEN_EXISTING' +'OPTIMISTIC' +'OPTIMIZE' +'OUT' +'OUTPUT' +'OVERRIDE' +'OWNER' +'PAGE_VERIFY' +'PARAMETERIZATION' +'PARTITION' +'PARTITIONS' +'PARTNER' +'PATH' +'POISON_MESSAGE_HANDLING' +'POOL' +'PORT' +'PRECEDING' +'PRIMARY_ROLE' +'PRIOR' +'PRIORITY' +'PRIORITY_LEVEL' +'PRIVATE' +'PRIVATE_KEY' +'PRIVILEGES' +'PROCEDURE_NAME' +'PROPERTY' +'PROVIDER' +'PROVIDER_KEY_NAME' +'QUERY' +'QUEUE' +'QUEUE_DELAY' +'QUOTED_IDENTIFIER' +'RANGE' +'RANK' +'RC2' +'RC4' +'RC4_128' +'READ_COMMITTED_SNAPSHOT' +'READ_ONLY' +'READ_ONLY_ROUTING_LIST' +'READ_WRITE' +'READONLY' +'REBUILD' +'RECEIVE' +'RECOMPILE' +'RECOVERY' +'RECURSIVE_TRIGGERS' +'RELATIVE' +'REMOTE' +'REMOTE_SERVICE_NAME' +'REMOVE' +'REORGANIZE' +'REPEATABLE' +'REPLICA' +'REQUEST_MAX_CPU_TIME_SEC' +'REQUEST_MAX_MEMORY_GRANT_PERCENT' +'REQUEST_MEMORY_GRANT_TIMEOUT_SEC' +'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT' +'RESERVE_DISK_SPACE' +'RESOURCE' +'RESOURCE_MANAGER_LOCATION' +'RESTRICTED_USER' +'RETENTION' +'ROBUST' +'ROOT' +'ROUTE' +'ROW' +'ROW_NUMBER' +'ROWGUID' +'ROWS' +'SAMPLE' +'SCHEMABINDING' +'SCOPED' +'SCROLL' +'SCROLL_LOCKS' +'SEARCH' +'SECONDARY' +'SECONDARY_ONLY' +'SECONDARY_ROLE' +'SECONDS' +'SECRET' +'SECURITY' +'SECURITY_LOG' +'SEEDING_MODE' +'SELF' +'SEMI_SENSITIVE' +'SEND' +'SENT' +'SEQUENCE' +'SERIALIZABLE' +'SESSION_TIMEOUT' +'SETERROR' +'SHARE' +'SHOWPLAN' +'SIGNATURE' +'SIMPLE' +'SINGLE_USER' +'SIZE' +'SMALLINT' +'SNAPSHOT' +'SPATIAL_WINDOW_MAX_CELLS' +'STANDBY' +'START_DATE' +'STATIC' +'STATS_STREAM' +'STATUS' +'STATUSONLY' +'STDEV' +'STDEVP' +'STOPLIST' +'STRING_AGG' +'STUFF' +'SUBJECT' +'SUBSCRIPTION' +'SUM' +'SUSPEND' +'SYMMETRIC' +'SYNCHRONOUS_COMMIT' +'SYNONYM' +'SYSTEM' +'TAKE' +'TARGET_RECOVERY_TIME' +'TB' +'TEXTIMAGE_ON' +'THROW' +'TIES' +'TIME' +'TIMEOUT' +'TIMER' +'TINYINT' +'TORN_PAGE_DETECTION' +'TRANSFORM_NOISE_WORDS' +'TRIPLE_DES' +'TRIPLE_DES_3KEY' +'TRUSTWORTHY' +'TRY' +'TSQL' +'TWO_DIGIT_YEAR_CUTOFF' +'TYPE' +'TYPE_WARNING' +'UNBOUNDED' +'UNCOMMITTED' +'UNKNOWN' +'UNLIMITED' +'UOW' +'USING' +'VALID_XML' +'VALIDATION' +'VALUE' +'VAR' +'VARP' +'VIEW_METADATA' +'VIEWS' +'WAIT' +'WELL_FORMED_XML' +'WITHOUT_ARRAY_WRAPPER' +'WORK' +'WORKLOAD' +'XML' +'XMLDATA' +'XMLNAMESPACES' +'XMLSCHEMA' +'XSINIL' +'$ACTION' +null +null +null +null +'\'' +null +null +null +null +null +null +null +null +null +null +'=' +'>' +'<' +'!' +'+=' +'-=' +'*=' +'/=' +'%=' +'&=' +'^=' +'|=' +'||' +'.' +'_' +'@' +'#' +'$' +'(' +')' +',' +';' +':' +'*' +'/' +'%' +'+' +'-' +'~' +'|' +'&' +'^' +null + +token symbolic names: +null +ABSENT +ADD +AES +ALL +ALLOW_CONNECTIONS +ALLOW_MULTIPLE_EVENT_LOSS +ALLOW_SINGLE_EVENT_LOSS +ALTER +AND +ANONYMOUS +ANY +APPEND +APPLICATION +AS +ASC +ASYMMETRIC +ASYNCHRONOUS_COMMIT +AUTHORIZATION +AUTHENTICATION +AUTOMATED_BACKUP_PREFERENCE +AUTOMATIC +AVAILABILITY_MODE +BACKSLASH +BACKUP +BEFORE +BEGIN +BETWEEN +BLOCK +BLOCKSIZE +BLOCKING_HIERARCHY +BREAK +BROWSE +BUFFER +BUFFERCOUNT +BULK +BY +CACHE +CALLED +CASCADE +CASE +CERTIFICATE +CHANGETABLE +CHANGES +CHECK +CHECKPOINT +CHECK_POLICY +CHECK_EXPIRATION +CLASSIFIER_FUNCTION +CLOSE +CLUSTER +CLUSTERED +COALESCE +COLLATE +COLUMN +COMPRESSION +COMMIT +COMPUTE +CONFIGURATION +CONSTRAINT +CONTAINMENT +CONTAINS +CONTAINSTABLE +CONTEXT +CONTINUE +CONTINUE_AFTER_ERROR +CONTRACT +CONTRACT_NAME +CONVERSATION +CONVERT +COPY_ONLY +CREATE +CROSS +CURRENT +CURRENT_DATE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_USER +CURSOR +CYCLE +DATA_COMPRESSION +DATA_SOURCE +DATABASE +DATABASE_MIRRORING +DBCC +DEALLOCATE +DECLARE +DEFAULT +DEFAULT_DATABASE +DEFAULT_SCHEMA +DELETE +DENY +DESC +DIAGNOSTICS +DIFFERENTIAL +DISK +DISTINCT +DISTRIBUTED +DOUBLE +DOUBLE_BACK_SLASH +DOUBLE_FORWARD_SLASH +DROP +DTC_SUPPORT +DUMP +ELSE +ENABLED +END +ENDPOINT +ERRLVL +ESCAPE +ERROR +EVENT +EVENTDATA +EVENT_RETENTION_MODE +EXCEPT +EXECUTABLE_FILE +EXECUTE +EXISTS +EXPIREDATE +EXIT +EXTENSION +EXTERNAL +EXTERNAL_ACCESS +FAILOVER +FAILURECONDITIONLEVEL +FAN_IN +FETCH +FILE +FILENAME +FILLFACTOR +FILE_SNAPSHOT +FOR +FORCESEEK +FORCE_SERVICE_ALLOW_DATA_LOSS +FOREIGN +FREETEXT +FREETEXTTABLE +FROM +FULL +FUNCTION +GET +GOTO +GOVERNOR +GRANT +GROUP +HAVING +HASHED +HEALTHCHECKTIMEOUT +IDENTITY +IDENTITYCOL +IDENTITY_INSERT +IF +IIF +IN +INCLUDE +INCREMENT +INDEX +INFINITE +INIT +INNER +INSERT +INSTEAD +INTERSECT +INTO +IPV4_ADDR +IPV6_ADDR +IS +ISNULL +JOIN +KERBEROS +KEY +KEY_PATH +KEY_STORE_PROVIDER_NAME +KILL +LANGUAGE +LEFT +LIBRARY +LIFETIME +LIKE +LINENO +LINUX +LISTENER_IP +LISTENER_PORT +LOAD +LOCAL_SERVICE_NAME +LOG +MATCHED +MASTER +MAX_MEMORY +MAXTRANSFER +MAXVALUE +MAX_DISPATCH_LATENCY +MAX_EVENT_SIZE +MAX_SIZE +MAX_OUTSTANDING_IO_PER_VOLUME +MEDIADESCRIPTION +MEDIANAME +MEMBER +MEMORY_PARTITION_MODE +MERGE +MESSAGE_FORWARDING +MESSAGE_FORWARD_SIZE +MINVALUE +MIRROR +MUST_CHANGE +NATIONAL +NEGOTIATE +NOCHECK +NOFORMAT +NOINIT +NONCLUSTERED +NONE +NOREWIND +NOSKIP +NOUNLOAD +NO_CHECKSUM +NO_COMPRESSION +NO_EVENT_LOSS +NOT +NOTIFICATION +NTLM +NULL +NULLIF +OF +OFF +OFFSETS +OLD_PASSWORD +ON +ON_FAILURE +OPEN +OPENDATASOURCE +OPENQUERY +OPENROWSET +OPENXML +OPTION +OR +ORDER +OUTER +OVER +PAGE +PARAM_NODE +PARTIAL +PASSWORD +PERCENT +PERMISSION_SET +PER_CPU +PER_DB +PER_NODE +PIVOT +PLAN +PLATFORM +POLICY +PRECISION +PREDICATE +PRIMARY +PRINT +PROC +PROCEDURE +PROCESS +PUBLIC +PYTHON +R +RAISERROR +RAW +READ +READTEXT +READ_WRITE_FILEGROUPS +RECONFIGURE +REFERENCES +REGENERATE +RELATED_CONVERSATION +RELATED_CONVERSATION_GROUP +REPLICATION +REQUIRED +RESET +RESTART +RESTORE +RESTRICT +RESUME +RETAINDAYS +RETURN +RETURNS +REVERT +REVOKE +REWIND +RIGHT +ROLLBACK +ROLE +ROWCOUNT +ROWGUIDCOL +RSA_512 +RSA_1024 +RSA_2048 +RSA_3072 +RSA_4096 +SAFETY +RULE +SAFE +SAVE +SCHEDULER +SCHEMA +SCHEME +SECURITYAUDIT +SELECT +SEMANTICKEYPHRASETABLE +SEMANTICSIMILARITYDETAILSTABLE +SEMANTICSIMILARITYTABLE +SERVER +SERVICE +SERVICE_BROKER +SERVICE_NAME +SESSION +SESSION_USER +SET +SETUSER +SHUTDOWN +SID +SKIP_KEYWORD +SOFTNUMA +SOME +SOURCE +SPECIFICATION +SPLIT +SQLDUMPERFLAGS +SQLDUMPERPATH +SQLDUMPERTIMEOUT +STATISTICS +STATE +STATS +START +STARTED +STARTUP_STATE +STOP +STOPPED +STOP_ON_ERROR +SUPPORTED +SYSTEM_USER +TABLE +TABLESAMPLE +TAPE +TARGET +TCP +TEXTSIZE +THEN +TO +TOP +TRACK_CAUSALITY +TRAN +TRANSACTION +TRANSFER +TRIGGER +TRUNCATE +TSEQUAL +UNCHECKED +UNION +UNIQUE +UNLOCK +UNPIVOT +UNSAFE +UPDATE +UPDATETEXT +URL +USE +USED +USER +VALUES +VARYING +VERBOSELOGGING +VIEW +VISIBILITY +WAITFOR +WHEN +WHERE +WHILE +WINDOWS +WITH +WITHIN +WITHOUT +WITNESS +WRITETEXT +ABSOLUTE +ACCENT_SENSITIVITY +ACTION +ACTIVATION +ACTIVE +ADDRESS +AES_128 +AES_192 +AES_256 +AFFINITY +AFTER +AGGREGATE +ALGORITHM +ALLOW_ENCRYPTED_VALUE_MODIFICATIONS +ALLOW_SNAPSHOT_ISOLATION +ALLOWED +ANSI_NULL_DEFAULT +ANSI_NULLS +ANSI_PADDING +ANSI_WARNINGS +APPLICATION_LOG +APPLY +ARITHABORT +ASSEMBLY +AUDIT +AUDIT_GUID +AUTO +AUTO_CLEANUP +AUTO_CLOSE +AUTO_CREATE_STATISTICS +AUTO_SHRINK +AUTO_UPDATE_STATISTICS +AUTO_UPDATE_STATISTICS_ASYNC +AVAILABILITY +AVG +BACKUP_PRIORITY +BEGIN_DIALOG +BIGINT +BINARY_BASE64 +BINARY_CHECKSUM +BINDING +BLOB_STORAGE +BROKER +BROKER_INSTANCE +BULK_LOGGED +CALLER +CAP_CPU_PERCENT +CAST +CATALOG +CATCH +CHANGE_RETENTION +CHANGE_TRACKING +CHECKSUM +CHECKSUM_AGG +CLEANUP +COLLECTION +COLUMN_MASTER_KEY +COMMITTED +COMPATIBILITY_LEVEL +CONCAT +CONCAT_NULL_YIELDS_NULL +CONTENT +CONTROL +COOKIE +COUNT +COUNT_BIG +COUNTER +CPU +CREATE_NEW +CREATION_DISPOSITION +CREDENTIAL +CRYPTOGRAPHIC +CURSOR_CLOSE_ON_COMMIT +CURSOR_DEFAULT +DATA +DATE_CORRELATION_OPTIMIZATION +DATEADD +DATEDIFF +DATENAME +DATEPART +DAYS +DB_CHAINING +DB_FAILOVER +DECRYPTION +DEFAULT_DOUBLE_QUOTE +DEFAULT_FULLTEXT_LANGUAGE +DEFAULT_LANGUAGE +DELAY +DELAYED_DURABILITY +DELETED +DENSE_RANK +DEPENDENTS +DES +DESCRIPTION +DESX +DHCP +DIALOG +DIRECTORY_NAME +DISABLE +DISABLE_BROKER +DISABLED +DISK_DRIVE +DOCUMENT +DYNAMIC +ELEMENTS +EMERGENCY +EMPTY +ENABLE +ENABLE_BROKER +ENCRYPTED_VALUE +ENCRYPTION +ENDPOINT_URL +ERROR_BROKER_CONVERSATIONS +EXCLUSIVE +EXECUTABLE +EXIST +EXPAND +EXPIRY_DATE +EXPLICIT +FAIL_OPERATION +FAILOVER_MODE +FAILURE +FAILURE_CONDITION_LEVEL +FAST +FAST_FORWARD +FILEGROUP +FILEGROWTH +FILEPATH +FILESTREAM +FILTER +FIRST +FIRST_VALUE +FOLLOWING +FORCE +FORCE_FAILOVER_ALLOW_DATA_LOSS +FORCED +FORMAT +FORWARD_ONLY +FULLSCAN +FULLTEXT +GB +GETDATE +GETUTCDATE +GLOBAL +GO +GROUP_MAX_REQUESTS +GROUPING +GROUPING_ID +HADR +HASH +HEALTH_CHECK_TIMEOUT +HIGH +HONOR_BROKER_PRIORITY +HOURS +IDENTITY_VALUE +IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX +IMMEDIATE +IMPERSONATE +IMPORTANCE +INCLUDE_NULL_VALUES +INCREMENTAL +INITIATOR +INPUT +INSENSITIVE +INSERTED +INT +IP +ISOLATION +JOB +JSON +KB +KEEP +KEEPFIXED +KEY_SOURCE +KEYS +KEYSET +LAG +LAST +LAST_VALUE +LEAD +LEVEL +LIST +LISTENER +LISTENER_URL +LOB_COMPACTION +LOCAL +LOCATION +LOCK +LOCK_ESCALATION +LOGIN +LOOP +LOW +MANUAL +MARK +MATERIALIZED +MAX +MAX_CPU_PERCENT +MAX_DOP +MAX_FILES +MAX_IOPS_PER_VOLUME +MAX_MEMORY_PERCENT +MAX_PROCESSES +MAX_QUEUE_READERS +MAX_ROLLOVER_FILES +MAXDOP +MAXRECURSION +MAXSIZE +MB +MEDIUM +MEMORY_OPTIMIZED_DATA +MESSAGE +MIN +MIN_ACTIVE_ROWVERSION +MIN_CPU_PERCENT +MIN_IOPS_PER_VOLUME +MIN_MEMORY_PERCENT +MINUTES +MIRROR_ADDRESS +MIXED_PAGE_ALLOCATION +MODE +MODIFY +MOVE +MULTI_USER +NAME +NESTED_TRIGGERS +NEW_ACCOUNT +NEW_BROKER +NEW_PASSWORD +NEXT +NO +NO_TRUNCATE +NO_WAIT +NOCOUNT +NODES +NOEXPAND +NON_TRANSACTED_ACCESS +NORECOMPUTE +NORECOVERY +NOWAIT +NTILE +NUMANODE +NUMBER +NUMERIC_ROUNDABORT +OBJECT +OFFLINE +OFFSET +OLD_ACCOUNT +ONLINE +ONLY +OPEN_EXISTING +OPTIMISTIC +OPTIMIZE +OUT +OUTPUT +OVERRIDE +OWNER +PAGE_VERIFY +PARAMETERIZATION +PARTITION +PARTITIONS +PARTNER +PATH +POISON_MESSAGE_HANDLING +POOL +PORT +PRECEDING +PRIMARY_ROLE +PRIOR +PRIORITY +PRIORITY_LEVEL +PRIVATE +PRIVATE_KEY +PRIVILEGES +PROCEDURE_NAME +PROPERTY +PROVIDER +PROVIDER_KEY_NAME +QUERY +QUEUE +QUEUE_DELAY +QUOTED_IDENTIFIER +RANGE +RANK +RC2 +RC4 +RC4_128 +READ_COMMITTED_SNAPSHOT +READ_ONLY +READ_ONLY_ROUTING_LIST +READ_WRITE +READONLY +REBUILD +RECEIVE +RECOMPILE +RECOVERY +RECURSIVE_TRIGGERS +RELATIVE +REMOTE +REMOTE_SERVICE_NAME +REMOVE +REORGANIZE +REPEATABLE +REPLICA +REQUEST_MAX_CPU_TIME_SEC +REQUEST_MAX_MEMORY_GRANT_PERCENT +REQUEST_MEMORY_GRANT_TIMEOUT_SEC +REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT +RESERVE_DISK_SPACE +RESOURCE +RESOURCE_MANAGER_LOCATION +RESTRICTED_USER +RETENTION +ROBUST +ROOT +ROUTE +ROW +ROW_NUMBER +ROWGUID +ROWS +SAMPLE +SCHEMABINDING +SCOPED +SCROLL +SCROLL_LOCKS +SEARCH +SECONDARY +SECONDARY_ONLY +SECONDARY_ROLE +SECONDS +SECRET +SECURITY +SECURITY_LOG +SEEDING_MODE +SELF +SEMI_SENSITIVE +SEND +SENT +SEQUENCE +SERIALIZABLE +SESSION_TIMEOUT +SETERROR +SHARE +SHOWPLAN +SIGNATURE +SIMPLE +SINGLE_USER +SIZE +SMALLINT +SNAPSHOT +SPATIAL_WINDOW_MAX_CELLS +STANDBY +START_DATE +STATIC +STATS_STREAM +STATUS +STATUSONLY +STDEV +STDEVP +STOPLIST +STRING_AGG +STUFF +SUBJECT +SUBSCRIPTION +SUM +SUSPEND +SYMMETRIC +SYNCHRONOUS_COMMIT +SYNONYM +SYSTEM +TAKE +TARGET_RECOVERY_TIME +TB +TEXTIMAGE_ON +THROW +TIES +TIME +TIMEOUT +TIMER +TINYINT +TORN_PAGE_DETECTION +TRANSFORM_NOISE_WORDS +TRIPLE_DES +TRIPLE_DES_3KEY +TRUSTWORTHY +TRY +TSQL +TWO_DIGIT_YEAR_CUTOFF +TYPE +TYPE_WARNING +UNBOUNDED +UNCOMMITTED +UNKNOWN +UNLIMITED +UOW +USING +VALID_XML +VALIDATION +VALUE +VAR +VARP +VIEW_METADATA +VIEWS +WAIT +WELL_FORMED_XML +WITHOUT_ARRAY_WRAPPER +WORK +WORKLOAD +XML +XMLDATA +XMLNAMESPACES +XMLSCHEMA +XSINIL +DOLLAR_ACTION +SPACE +COMMENT +LINE_COMMENT +DOUBLE_QUOTE_ID +SINGLE_QUOTE +SQUARE_BRACKET_ID +LOCAL_ID +DECIMAL +ID +QUOTED_URL +QUOTED_HOST_AND_PORT +STRING +BINARY +FLOAT +REAL +EQUAL +GREATER +LESS +EXCLAMATION +PLUS_ASSIGN +MINUS_ASSIGN +MULT_ASSIGN +DIV_ASSIGN +MOD_ASSIGN +AND_ASSIGN +XOR_ASSIGN +OR_ASSIGN +DOUBLE_BAR +DOT +UNDERLINE +AT +SHARP +DOLLAR +LR_BRACKET +RR_BRACKET +COMMA +SEMI +COLON +STAR +DIVIDE +MODULE +PLUS +MINUS +BIT_NOT +BIT_OR +BIT_AND +BIT_XOR +IPV4_OCTECT + +rule names: +ABSENT +ADD +AES +ALL +ALLOW_CONNECTIONS +ALLOW_MULTIPLE_EVENT_LOSS +ALLOW_SINGLE_EVENT_LOSS +ALTER +AND +ANONYMOUS +ANY +APPEND +APPLICATION +AS +ASC +ASYMMETRIC +ASYNCHRONOUS_COMMIT +AUTHORIZATION +AUTHENTICATION +AUTOMATED_BACKUP_PREFERENCE +AUTOMATIC +AVAILABILITY_MODE +BACKSLASH +BACKUP +BEFORE +BEGIN +BETWEEN +BLOCK +BLOCKSIZE +BLOCKING_HIERARCHY +BREAK +BROWSE +BUFFER +BUFFERCOUNT +BULK +BY +CACHE +CALLED +CASCADE +CASE +CERTIFICATE +CHANGETABLE +CHANGES +CHECK +CHECKPOINT +CHECK_POLICY +CHECK_EXPIRATION +CLASSIFIER_FUNCTION +CLOSE +CLUSTER +CLUSTERED +COALESCE +COLLATE +COLUMN +COMPRESSION +COMMIT +COMPUTE +CONFIGURATION +CONSTRAINT +CONTAINMENT +CONTAINS +CONTAINSTABLE +CONTEXT +CONTINUE +CONTINUE_AFTER_ERROR +CONTRACT +CONTRACT_NAME +CONVERSATION +CONVERT +COPY_ONLY +CREATE +CROSS +CURRENT +CURRENT_DATE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_USER +CURSOR +CYCLE +DATA_COMPRESSION +DATA_SOURCE +DATABASE +DATABASE_MIRRORING +DBCC +DEALLOCATE +DECLARE +DEFAULT +DEFAULT_DATABASE +DEFAULT_SCHEMA +DELETE +DENY +DESC +DIAGNOSTICS +DIFFERENTIAL +DISK +DISTINCT +DISTRIBUTED +DOUBLE +DOUBLE_BACK_SLASH +DOUBLE_FORWARD_SLASH +DROP +DTC_SUPPORT +DUMP +ELSE +ENABLED +END +ENDPOINT +ERRLVL +ESCAPE +ERROR +EVENT +EVENTDATA +EVENT_RETENTION_MODE +EXCEPT +EXECUTABLE_FILE +EXECUTE +EXISTS +EXPIREDATE +EXIT +EXTENSION +EXTERNAL +EXTERNAL_ACCESS +FAILOVER +FAILURECONDITIONLEVEL +FAN_IN +FETCH +FILE +FILENAME +FILLFACTOR +FILE_SNAPSHOT +FOR +FORCESEEK +FORCE_SERVICE_ALLOW_DATA_LOSS +FOREIGN +FREETEXT +FREETEXTTABLE +FROM +FULL +FUNCTION +GET +GOTO +GOVERNOR +GRANT +GROUP +HAVING +HASHED +HEALTHCHECKTIMEOUT +IDENTITY +IDENTITYCOL +IDENTITY_INSERT +IF +IIF +IN +INCLUDE +INCREMENT +INDEX +INFINITE +INIT +INNER +INSERT +INSTEAD +INTERSECT +INTO +IPV4_ADDR +IPV6_ADDR +IS +ISNULL +JOIN +KERBEROS +KEY +KEY_PATH +KEY_STORE_PROVIDER_NAME +KILL +LANGUAGE +LEFT +LIBRARY +LIFETIME +LIKE +LINENO +LINUX +LISTENER_IP +LISTENER_PORT +LOAD +LOCAL_SERVICE_NAME +LOG +MATCHED +MASTER +MAX_MEMORY +MAXTRANSFER +MAXVALUE +MAX_DISPATCH_LATENCY +MAX_EVENT_SIZE +MAX_SIZE +MAX_OUTSTANDING_IO_PER_VOLUME +MEDIADESCRIPTION +MEDIANAME +MEMBER +MEMORY_PARTITION_MODE +MERGE +MESSAGE_FORWARDING +MESSAGE_FORWARD_SIZE +MINVALUE +MIRROR +MUST_CHANGE +NATIONAL +NEGOTIATE +NOCHECK +NOFORMAT +NOINIT +NONCLUSTERED +NONE +NOREWIND +NOSKIP +NOUNLOAD +NO_CHECKSUM +NO_COMPRESSION +NO_EVENT_LOSS +NOT +NOTIFICATION +NTLM +NULL +NULLIF +OF +OFF +OFFSETS +OLD_PASSWORD +ON +ON_FAILURE +OPEN +OPENDATASOURCE +OPENQUERY +OPENROWSET +OPENXML +OPTION +OR +ORDER +OUTER +OVER +PAGE +PARAM_NODE +PARTIAL +PASSWORD +PERCENT +PERMISSION_SET +PER_CPU +PER_DB +PER_NODE +PIVOT +PLAN +PLATFORM +POLICY +PRECISION +PREDICATE +PRIMARY +PRINT +PROC +PROCEDURE +PROCESS +PUBLIC +PYTHON +R +RAISERROR +RAW +READ +READTEXT +READ_WRITE_FILEGROUPS +RECONFIGURE +REFERENCES +REGENERATE +RELATED_CONVERSATION +RELATED_CONVERSATION_GROUP +REPLICATION +REQUIRED +RESET +RESTART +RESTORE +RESTRICT +RESUME +RETAINDAYS +RETURN +RETURNS +REVERT +REVOKE +REWIND +RIGHT +ROLLBACK +ROLE +ROWCOUNT +ROWGUIDCOL +RSA_512 +RSA_1024 +RSA_2048 +RSA_3072 +RSA_4096 +SAFETY +RULE +SAFE +SAVE +SCHEDULER +SCHEMA +SCHEME +SECURITYAUDIT +SELECT +SEMANTICKEYPHRASETABLE +SEMANTICSIMILARITYDETAILSTABLE +SEMANTICSIMILARITYTABLE +SERVER +SERVICE +SERVICE_BROKER +SERVICE_NAME +SESSION +SESSION_USER +SET +SETUSER +SHUTDOWN +SID +SKIP_KEYWORD +SOFTNUMA +SOME +SOURCE +SPECIFICATION +SPLIT +SQLDUMPERFLAGS +SQLDUMPERPATH +SQLDUMPERTIMEOUT +STATISTICS +STATE +STATS +START +STARTED +STARTUP_STATE +STOP +STOPPED +STOP_ON_ERROR +SUPPORTED +SYSTEM_USER +TABLE +TABLESAMPLE +TAPE +TARGET +TCP +TEXTSIZE +THEN +TO +TOP +TRACK_CAUSALITY +TRAN +TRANSACTION +TRANSFER +TRIGGER +TRUNCATE +TSEQUAL +UNCHECKED +UNION +UNIQUE +UNLOCK +UNPIVOT +UNSAFE +UPDATE +UPDATETEXT +URL +USE +USED +USER +VALUES +VARYING +VERBOSELOGGING +VIEW +VISIBILITY +WAITFOR +WHEN +WHERE +WHILE +WINDOWS +WITH +WITHIN +WITHOUT +WITNESS +WRITETEXT +ABSOLUTE +ACCENT_SENSITIVITY +ACTION +ACTIVATION +ACTIVE +ADDRESS +AES_128 +AES_192 +AES_256 +AFFINITY +AFTER +AGGREGATE +ALGORITHM +ALLOW_ENCRYPTED_VALUE_MODIFICATIONS +ALLOW_SNAPSHOT_ISOLATION +ALLOWED +ANSI_NULL_DEFAULT +ANSI_NULLS +ANSI_PADDING +ANSI_WARNINGS +APPLICATION_LOG +APPLY +ARITHABORT +ASSEMBLY +AUDIT +AUDIT_GUID +AUTO +AUTO_CLEANUP +AUTO_CLOSE +AUTO_CREATE_STATISTICS +AUTO_SHRINK +AUTO_UPDATE_STATISTICS +AUTO_UPDATE_STATISTICS_ASYNC +AVAILABILITY +AVG +BACKUP_PRIORITY +BEGIN_DIALOG +BIGINT +BINARY_BASE64 +BINARY_CHECKSUM +BINDING +BLOB_STORAGE +BROKER +BROKER_INSTANCE +BULK_LOGGED +CALLER +CAP_CPU_PERCENT +CAST +CATALOG +CATCH +CHANGE_RETENTION +CHANGE_TRACKING +CHECKSUM +CHECKSUM_AGG +CLEANUP +COLLECTION +COLUMN_MASTER_KEY +COMMITTED +COMPATIBILITY_LEVEL +CONCAT +CONCAT_NULL_YIELDS_NULL +CONTENT +CONTROL +COOKIE +COUNT +COUNT_BIG +COUNTER +CPU +CREATE_NEW +CREATION_DISPOSITION +CREDENTIAL +CRYPTOGRAPHIC +CURSOR_CLOSE_ON_COMMIT +CURSOR_DEFAULT +DATA +DATE_CORRELATION_OPTIMIZATION +DATEADD +DATEDIFF +DATENAME +DATEPART +DAYS +DB_CHAINING +DB_FAILOVER +DECRYPTION +DEFAULT_DOUBLE_QUOTE +DEFAULT_FULLTEXT_LANGUAGE +DEFAULT_LANGUAGE +DELAY +DELAYED_DURABILITY +DELETED +DENSE_RANK +DEPENDENTS +DES +DESCRIPTION +DESX +DHCP +DIALOG +DIRECTORY_NAME +DISABLE +DISABLE_BROKER +DISABLED +DISK_DRIVE +DOCUMENT +DYNAMIC +ELEMENTS +EMERGENCY +EMPTY +ENABLE +ENABLE_BROKER +ENCRYPTED_VALUE +ENCRYPTION +ENDPOINT_URL +ERROR_BROKER_CONVERSATIONS +EXCLUSIVE +EXECUTABLE +EXIST +EXPAND +EXPIRY_DATE +EXPLICIT +FAIL_OPERATION +FAILOVER_MODE +FAILURE +FAILURE_CONDITION_LEVEL +FAST +FAST_FORWARD +FILEGROUP +FILEGROWTH +FILEPATH +FILESTREAM +FILTER +FIRST +FIRST_VALUE +FOLLOWING +FORCE +FORCE_FAILOVER_ALLOW_DATA_LOSS +FORCED +FORMAT +FORWARD_ONLY +FULLSCAN +FULLTEXT +GB +GETDATE +GETUTCDATE +GLOBAL +GO +GROUP_MAX_REQUESTS +GROUPING +GROUPING_ID +HADR +HASH +HEALTH_CHECK_TIMEOUT +HIGH +HONOR_BROKER_PRIORITY +HOURS +IDENTITY_VALUE +IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX +IMMEDIATE +IMPERSONATE +IMPORTANCE +INCLUDE_NULL_VALUES +INCREMENTAL +INITIATOR +INPUT +INSENSITIVE +INSERTED +INT +IP +ISOLATION +JOB +JSON +KB +KEEP +KEEPFIXED +KEY_SOURCE +KEYS +KEYSET +LAG +LAST +LAST_VALUE +LEAD +LEVEL +LIST +LISTENER +LISTENER_URL +LOB_COMPACTION +LOCAL +LOCATION +LOCK +LOCK_ESCALATION +LOGIN +LOOP +LOW +MANUAL +MARK +MATERIALIZED +MAX +MAX_CPU_PERCENT +MAX_DOP +MAX_FILES +MAX_IOPS_PER_VOLUME +MAX_MEMORY_PERCENT +MAX_PROCESSES +MAX_QUEUE_READERS +MAX_ROLLOVER_FILES +MAXDOP +MAXRECURSION +MAXSIZE +MB +MEDIUM +MEMORY_OPTIMIZED_DATA +MESSAGE +MIN +MIN_ACTIVE_ROWVERSION +MIN_CPU_PERCENT +MIN_IOPS_PER_VOLUME +MIN_MEMORY_PERCENT +MINUTES +MIRROR_ADDRESS +MIXED_PAGE_ALLOCATION +MODE +MODIFY +MOVE +MULTI_USER +NAME +NESTED_TRIGGERS +NEW_ACCOUNT +NEW_BROKER +NEW_PASSWORD +NEXT +NO +NO_TRUNCATE +NO_WAIT +NOCOUNT +NODES +NOEXPAND +NON_TRANSACTED_ACCESS +NORECOMPUTE +NORECOVERY +NOWAIT +NTILE +NUMANODE +NUMBER +NUMERIC_ROUNDABORT +OBJECT +OFFLINE +OFFSET +OLD_ACCOUNT +ONLINE +ONLY +OPEN_EXISTING +OPTIMISTIC +OPTIMIZE +OUT +OUTPUT +OVERRIDE +OWNER +PAGE_VERIFY +PARAMETERIZATION +PARTITION +PARTITIONS +PARTNER +PATH +POISON_MESSAGE_HANDLING +POOL +PORT +PRECEDING +PRIMARY_ROLE +PRIOR +PRIORITY +PRIORITY_LEVEL +PRIVATE +PRIVATE_KEY +PRIVILEGES +PROCEDURE_NAME +PROPERTY +PROVIDER +PROVIDER_KEY_NAME +QUERY +QUEUE +QUEUE_DELAY +QUOTED_IDENTIFIER +RANGE +RANK +RC2 +RC4 +RC4_128 +READ_COMMITTED_SNAPSHOT +READ_ONLY +READ_ONLY_ROUTING_LIST +READ_WRITE +READONLY +REBUILD +RECEIVE +RECOMPILE +RECOVERY +RECURSIVE_TRIGGERS +RELATIVE +REMOTE +REMOTE_SERVICE_NAME +REMOVE +REORGANIZE +REPEATABLE +REPLICA +REQUEST_MAX_CPU_TIME_SEC +REQUEST_MAX_MEMORY_GRANT_PERCENT +REQUEST_MEMORY_GRANT_TIMEOUT_SEC +REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT +RESERVE_DISK_SPACE +RESOURCE +RESOURCE_MANAGER_LOCATION +RESTRICTED_USER +RETENTION +ROBUST +ROOT +ROUTE +ROW +ROW_NUMBER +ROWGUID +ROWS +SAMPLE +SCHEMABINDING +SCOPED +SCROLL +SCROLL_LOCKS +SEARCH +SECONDARY +SECONDARY_ONLY +SECONDARY_ROLE +SECONDS +SECRET +SECURITY +SECURITY_LOG +SEEDING_MODE +SELF +SEMI_SENSITIVE +SEND +SENT +SEQUENCE +SERIALIZABLE +SESSION_TIMEOUT +SETERROR +SHARE +SHOWPLAN +SIGNATURE +SIMPLE +SINGLE_USER +SIZE +SMALLINT +SNAPSHOT +SPATIAL_WINDOW_MAX_CELLS +STANDBY +START_DATE +STATIC +STATS_STREAM +STATUS +STATUSONLY +STDEV +STDEVP +STOPLIST +STRING_AGG +STUFF +SUBJECT +SUBSCRIPTION +SUM +SUSPEND +SYMMETRIC +SYNCHRONOUS_COMMIT +SYNONYM +SYSTEM +TAKE +TARGET_RECOVERY_TIME +TB +TEXTIMAGE_ON +THROW +TIES +TIME +TIMEOUT +TIMER +TINYINT +TORN_PAGE_DETECTION +TRANSFORM_NOISE_WORDS +TRIPLE_DES +TRIPLE_DES_3KEY +TRUSTWORTHY +TRY +TSQL +TWO_DIGIT_YEAR_CUTOFF +TYPE +TYPE_WARNING +UNBOUNDED +UNCOMMITTED +UNKNOWN +UNLIMITED +UOW +USING +VALID_XML +VALIDATION +VALUE +VAR +VARP +VIEW_METADATA +VIEWS +WAIT +WELL_FORMED_XML +WITHOUT_ARRAY_WRAPPER +WORK +WORKLOAD +XML +XMLDATA +XMLNAMESPACES +XMLSCHEMA +XSINIL +DOLLAR_ACTION +SPACE +COMMENT +LINE_COMMENT +DOUBLE_QUOTE_ID +SINGLE_QUOTE +SQUARE_BRACKET_ID +LOCAL_ID +DECIMAL +ID +QUOTED_URL +QUOTED_HOST_AND_PORT +STRING +BINARY +FLOAT +REAL +EQUAL +GREATER +LESS +EXCLAMATION +PLUS_ASSIGN +MINUS_ASSIGN +MULT_ASSIGN +DIV_ASSIGN +MOD_ASSIGN +AND_ASSIGN +XOR_ASSIGN +OR_ASSIGN +DOUBLE_BAR +DOT +UNDERLINE +AT +SHARP +DOLLAR +LR_BRACKET +RR_BRACKET +COMMA +SEMI +COLON +STAR +DIVIDE +MODULE +PLUS +MINUS +BIT_NOT +BIT_OR +BIT_AND +BIT_XOR +LETTER +IPV6_OCTECT +IPV4_OCTECT +DEC_DOT_DEC +HEX_DIGIT +DEC_DIGIT +FullWidthLetter + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 842, 10091, 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, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 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, 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, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 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, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 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, 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, 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, 30, 3, 30, 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, 31, 3, 31, 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, 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, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 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, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 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, 46, 3, 46, 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, 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, 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, 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, 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, 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, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 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, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 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, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 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, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 2392, 10, 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, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 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, 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, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 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, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 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, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 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, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 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, 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, 99, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 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, 106, 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, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 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, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 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, 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, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 5, 117, 2844, 10, 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, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 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, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 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, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 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, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 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, 131, 3, 131, 3, 131, 3, 131, 3, 131, 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, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 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, 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, 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, 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, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 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, 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, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 5, 165, 3266, 10, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 5, 165, 3276, 10, 165, 3, 166, 5, 166, 3279, 10, 166, 3, 166, 5, 166, 3282, 10, 166, 3, 166, 5, 166, 3285, 10, 166, 3, 166, 5, 166, 3288, 10, 166, 3, 166, 5, 166, 3291, 10, 166, 3, 166, 3, 166, 5, 166, 3295, 10, 166, 3, 166, 5, 166, 3298, 10, 166, 3, 166, 5, 166, 3301, 10, 166, 3, 166, 5, 166, 3304, 10, 166, 3, 166, 3, 166, 5, 166, 3308, 10, 166, 3, 166, 5, 166, 3311, 10, 166, 3, 166, 5, 166, 3314, 10, 166, 3, 166, 5, 166, 3317, 10, 166, 3, 166, 3, 166, 5, 166, 3321, 10, 166, 3, 166, 5, 166, 3324, 10, 166, 3, 166, 5, 166, 3327, 10, 166, 3, 166, 5, 166, 3330, 10, 166, 3, 166, 3, 166, 5, 166, 3334, 10, 166, 3, 166, 5, 166, 3337, 10, 166, 3, 166, 5, 166, 3340, 10, 166, 3, 166, 5, 166, 3343, 10, 166, 3, 166, 3, 166, 5, 166, 3347, 10, 166, 3, 166, 5, 166, 3350, 10, 166, 3, 166, 5, 166, 3353, 10, 166, 3, 166, 5, 166, 3356, 10, 166, 3, 166, 3, 166, 5, 166, 3360, 10, 166, 3, 166, 5, 166, 3363, 10, 166, 3, 166, 5, 166, 3366, 10, 166, 3, 166, 5, 166, 3369, 10, 166, 3, 166, 3, 166, 5, 166, 3373, 10, 166, 3, 166, 5, 166, 3376, 10, 166, 3, 166, 5, 166, 3379, 10, 166, 3, 166, 5, 166, 3382, 10, 166, 3, 166, 5, 166, 3385, 10, 166, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 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, 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, 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, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 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, 183, 3, 183, 3, 183, 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, 185, 3, 185, 3, 185, 3, 185, 3, 185, 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, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 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, 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, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 194, 3, 194, 3, 194, 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, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 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, 196, 3, 196, 3, 196, 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, 197, 3, 197, 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, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 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, 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, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 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, 204, 3, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 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, 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, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 224, 3, 224, 3, 224, 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, 227, 3, 227, 3, 227, 3, 227, 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, 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, 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, 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, 236, 3, 236, 3, 236, 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, 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, 241, 3, 241, 3, 241, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 244, 3, 244, 3, 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, 245, 3, 245, 3, 245, 3, 245, 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, 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, 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, 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, 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, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 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, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 262, 3, 262, 3, 263, 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, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 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, 271, 3, 271, 3, 271, 3, 271, 3, 271, 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, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 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, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 276, 3, 276, 3, 276, 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, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 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, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 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, 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, 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, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 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, 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, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 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, 300, 3, 300, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 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, 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, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 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, 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, 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, 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, 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, 313, 3, 313, 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, 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, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 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, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 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, 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, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 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, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 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, 334, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 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, 337, 3, 337, 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, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 341, 3, 341, 3, 341, 3, 341, 3, 341, 3, 341, 3, 341, 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, 343, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 345, 3, 345, 3, 345, 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, 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, 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, 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, 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, 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, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 358, 3, 358, 3, 358, 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, 362, 3, 362, 3, 362, 3, 362, 3, 363, 3, 363, 3, 363, 3, 363, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 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, 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, 368, 3, 368, 3, 368, 3, 368, 3, 368, 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, 370, 3, 370, 3, 370, 3, 371, 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, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 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, 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, 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, 381, 3, 381, 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, 382, 3, 382, 3, 382, 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, 384, 3, 384, 3, 384, 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, 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, 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, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 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, 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, 394, 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, 394, 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, 394, 3, 394, 3, 394, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 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, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 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, 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, 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, 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, 402, 3, 402, 3, 402, 3, 402, 3, 402, 3, 402, 3, 403, 3, 403, 3, 403, 3, 403, 3, 403, 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, 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, 406, 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, 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, 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, 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, 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, 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, 417, 3, 417, 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, 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, 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, 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, 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, 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, 428, 3, 428, 3, 428, 3, 428, 5, 428, 5922, 10, 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, 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, 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, 433, 3, 433, 3, 434, 3, 434, 3, 434, 3, 434, 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, 436, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 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, 438, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 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, 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, 441, 3, 441, 3, 441, 3, 441, 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, 442, 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, 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, 446, 3, 446, 3, 446, 3, 446, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 448, 3, 448, 3, 448, 3, 448, 3, 449, 3, 449, 3, 449, 3, 449, 3, 449, 3, 449, 3, 449, 3, 449, 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, 450, 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, 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, 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, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 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, 454, 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, 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, 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, 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, 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, 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, 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, 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, 467, 3, 467, 3, 467, 3, 467, 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, 469, 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, 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, 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, 476, 3, 476, 3, 476, 3, 476, 3, 476, 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, 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, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 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, 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, 485, 3, 485, 3, 486, 3, 486, 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, 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, 489, 3, 489, 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, 490, 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, 492, 3, 492, 3, 492, 3, 492, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 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, 495, 3, 495, 3, 495, 3, 495, 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, 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, 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, 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, 503, 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, 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, 505, 3, 505, 3, 505, 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, 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, 507, 3, 507, 3, 507, 3, 508, 3, 508, 3, 508, 3, 508, 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, 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, 512, 3, 512, 3, 512, 3, 512, 3, 512, 3, 512, 3, 512, 3, 512, 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, 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, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 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, 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, 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, 519, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 521, 3, 521, 3, 521, 3, 522, 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, 523, 3, 523, 3, 523, 3, 523, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 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, 526, 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, 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, 529, 3, 529, 3, 529, 3, 529, 3, 529, 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, 531, 3, 531, 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, 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, 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, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 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, 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, 538, 3, 539, 3, 539, 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, 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, 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, 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, 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, 546, 3, 546, 3, 546, 3, 546, 3, 547, 3, 547, 3, 547, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 549, 3, 549, 3, 549, 3, 549, 3, 550, 3, 550, 3, 550, 3, 550, 3, 550, 3, 551, 3, 551, 3, 551, 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, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 557, 3, 557, 3, 557, 3, 557, 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, 560, 3, 560, 3, 560, 3, 560, 3, 560, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 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, 564, 3, 564, 3, 564, 3, 564, 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, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 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, 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, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 572, 3, 572, 3, 572, 3, 572, 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, 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, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 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, 578, 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, 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, 581, 3, 581, 3, 581, 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, 582, 3, 582, 3, 582, 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, 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, 584, 3, 584, 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, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 587, 3, 587, 3, 587, 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, 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, 590, 3, 590, 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, 592, 3, 592, 3, 592, 3, 592, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 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, 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, 595, 3, 595, 3, 595, 3, 595, 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, 596, 3, 596, 3, 596, 3, 596, 3, 596, 3, 596, 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, 597, 3, 598, 3, 598, 3, 598, 3, 598, 3, 598, 3, 598, 3, 598, 3, 598, 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, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 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, 603, 3, 603, 3, 603, 3, 603, 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, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 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, 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, 608, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 633, 3, 633, 3, 633, 3, 633, 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, 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, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 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, 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, 641, 3, 641, 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, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 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, 646, 3, 646, 3, 646, 3, 647, 3, 647, 3, 647, 3, 647, 3, 647, 3, 647, 3, 647, 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, 649, 3, 649, 3, 649, 3, 649, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 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, 651, 3, 651, 3, 652, 3, 652, 3, 652, 3, 652, 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, 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, 654, 3, 655, 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, 656, 3, 656, 3, 656, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 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, 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, 660, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 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, 663, 3, 663, 3, 663, 3, 663, 3, 663, 3, 664, 3, 664, 3, 664, 3, 664, 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, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 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, 668, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 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, 670, 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, 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, 675, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 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, 677, 3, 677, 3, 677, 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, 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, 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, 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, 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, 684, 3, 684, 3, 684, 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, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 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, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 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, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 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, 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, 690, 3, 690, 3, 690, 3, 690, 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, 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, 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, 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, 697, 3, 697, 3, 697, 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, 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, 701, 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, 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, 704, 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, 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, 708, 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, 708, 3, 708, 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, 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, 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, 716, 3, 716, 3, 716, 3, 716, 3, 716, 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, 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, 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, 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, 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, 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, 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, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 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, 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, 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, 736, 3, 736, 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, 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, 740, 3, 740, 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, 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, 743, 3, 743, 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, 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, 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, 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, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 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, 753, 3, 753, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 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, 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, 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, 761, 3, 761, 3, 761, 3, 761, 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, 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, 763, 3, 763, 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, 764, 3, 764, 3, 764, 3, 764, 3, 765, 3, 765, 3, 765, 3, 765, 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, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 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, 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, 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, 772, 3, 772, 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, 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, 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, 779, 3, 779, 3, 779, 3, 779, 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, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 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, 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, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 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, 788, 3, 788, 3, 788, 3, 788, 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, 790, 3, 790, 3, 790, 3, 791, 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, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 794, 6, 794, 9808, 10, 794, 13, 794, 14, 794, 9809, 3, 794, 3, 794, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 7, 795, 9819, 10, 795, 12, 795, 14, 795, 9822, 11, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 796, 3, 796, 3, 796, 3, 796, 7, 796, 9833, 10, 796, 12, 796, 14, 796, 9836, 11, 796, 3, 796, 3, 796, 3, 797, 3, 797, 6, 797, 9842, 10, 797, 13, 797, 14, 797, 9843, 3, 797, 3, 797, 3, 798, 3, 798, 3, 799, 3, 799, 6, 799, 9852, 10, 799, 13, 799, 14, 799, 9853, 3, 799, 3, 799, 3, 800, 3, 800, 3, 800, 6, 800, 9861, 10, 800, 13, 800, 14, 800, 9862, 3, 801, 6, 801, 9866, 10, 801, 13, 801, 14, 801, 9867, 3, 802, 3, 802, 5, 802, 9872, 10, 802, 3, 802, 3, 802, 7, 802, 9876, 10, 802, 12, 802, 14, 802, 9879, 11, 802, 3, 803, 3, 803, 3, 803, 6, 803, 9884, 10, 803, 13, 803, 14, 803, 9885, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 6, 803, 9894, 10, 803, 13, 803, 14, 803, 9895, 3, 803, 3, 803, 6, 803, 9900, 10, 803, 13, 803, 14, 803, 9901, 5, 803, 9904, 10, 803, 3, 803, 5, 803, 9907, 10, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 804, 3, 804, 6, 804, 9915, 10, 804, 13, 804, 14, 804, 9916, 3, 804, 3, 804, 6, 804, 9921, 10, 804, 13, 804, 14, 804, 9922, 5, 804, 9925, 10, 804, 3, 804, 5, 804, 9928, 10, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 805, 5, 805, 9936, 10, 805, 3, 805, 3, 805, 3, 805, 3, 805, 7, 805, 9942, 10, 805, 12, 805, 14, 805, 9945, 11, 805, 3, 805, 3, 805, 3, 806, 3, 806, 3, 806, 7, 806, 9952, 10, 806, 12, 806, 14, 806, 9955, 11, 806, 3, 807, 3, 807, 3, 808, 3, 808, 5, 808, 9961, 10, 808, 3, 808, 3, 808, 5, 808, 9965, 10, 808, 3, 808, 6, 808, 9968, 10, 808, 13, 808, 14, 808, 9969, 3, 809, 3, 809, 3, 810, 3, 810, 3, 811, 3, 811, 3, 812, 3, 812, 3, 813, 3, 813, 3, 813, 3, 814, 3, 814, 3, 814, 3, 815, 3, 815, 3, 815, 3, 816, 3, 816, 3, 816, 3, 817, 3, 817, 3, 817, 3, 818, 3, 818, 3, 818, 3, 819, 3, 819, 3, 819, 3, 820, 3, 820, 3, 820, 3, 821, 3, 821, 3, 821, 3, 822, 3, 822, 3, 823, 3, 823, 3, 824, 3, 824, 3, 825, 3, 825, 3, 826, 3, 826, 3, 827, 3, 827, 3, 828, 3, 828, 3, 829, 3, 829, 3, 830, 3, 830, 3, 831, 3, 831, 3, 832, 3, 832, 3, 833, 3, 833, 3, 834, 3, 834, 3, 835, 3, 835, 3, 836, 3, 836, 3, 837, 3, 837, 3, 838, 3, 838, 3, 839, 3, 839, 3, 840, 3, 840, 3, 841, 3, 841, 3, 842, 3, 842, 3, 842, 3, 842, 3, 842, 3, 843, 5, 843, 10053, 10, 843, 3, 843, 5, 843, 10056, 10, 843, 3, 843, 3, 843, 3, 844, 6, 844, 10061, 10, 844, 13, 844, 14, 844, 10062, 3, 844, 3, 844, 6, 844, 10067, 10, 844, 13, 844, 14, 844, 10068, 3, 844, 6, 844, 10072, 10, 844, 13, 844, 14, 844, 10073, 3, 844, 3, 844, 3, 844, 3, 844, 6, 844, 10080, 10, 844, 13, 844, 14, 844, 10081, 5, 844, 10084, 10, 844, 3, 845, 3, 845, 3, 846, 3, 846, 3, 847, 3, 847, 3, 9820, 2, 848, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 114, 227, 115, 229, 116, 231, 117, 233, 118, 235, 119, 237, 120, 239, 121, 241, 122, 243, 123, 245, 124, 247, 125, 249, 126, 251, 127, 253, 128, 255, 129, 257, 130, 259, 131, 261, 132, 263, 133, 265, 134, 267, 135, 269, 136, 271, 137, 273, 138, 275, 139, 277, 140, 279, 141, 281, 142, 283, 143, 285, 144, 287, 145, 289, 146, 291, 147, 293, 148, 295, 149, 297, 150, 299, 151, 301, 152, 303, 153, 305, 154, 307, 155, 309, 156, 311, 157, 313, 158, 315, 159, 317, 160, 319, 161, 321, 162, 323, 163, 325, 164, 327, 165, 329, 166, 331, 167, 333, 168, 335, 169, 337, 170, 339, 171, 341, 172, 343, 173, 345, 174, 347, 175, 349, 176, 351, 177, 353, 178, 355, 179, 357, 180, 359, 181, 361, 182, 363, 183, 365, 184, 367, 185, 369, 186, 371, 187, 373, 188, 375, 189, 377, 190, 379, 191, 381, 192, 383, 193, 385, 194, 387, 195, 389, 196, 391, 197, 393, 198, 395, 199, 397, 200, 399, 201, 401, 202, 403, 203, 405, 204, 407, 205, 409, 206, 411, 207, 413, 208, 415, 209, 417, 210, 419, 211, 421, 212, 423, 213, 425, 214, 427, 215, 429, 216, 431, 217, 433, 218, 435, 219, 437, 220, 439, 221, 441, 222, 443, 223, 445, 224, 447, 225, 449, 226, 451, 227, 453, 228, 455, 229, 457, 230, 459, 231, 461, 232, 463, 233, 465, 234, 467, 235, 469, 236, 471, 237, 473, 238, 475, 239, 477, 240, 479, 241, 481, 242, 483, 243, 485, 244, 487, 245, 489, 246, 491, 247, 493, 248, 495, 249, 497, 250, 499, 251, 501, 252, 503, 253, 505, 254, 507, 255, 509, 256, 511, 257, 513, 258, 515, 259, 517, 260, 519, 261, 521, 262, 523, 263, 525, 264, 527, 265, 529, 266, 531, 267, 533, 268, 535, 269, 537, 270, 539, 271, 541, 272, 543, 273, 545, 274, 547, 275, 549, 276, 551, 277, 553, 278, 555, 279, 557, 280, 559, 281, 561, 282, 563, 283, 565, 284, 567, 285, 569, 286, 571, 287, 573, 288, 575, 289, 577, 290, 579, 291, 581, 292, 583, 293, 585, 294, 587, 295, 589, 296, 591, 297, 593, 298, 595, 299, 597, 300, 599, 301, 601, 302, 603, 303, 605, 304, 607, 305, 609, 306, 611, 307, 613, 308, 615, 309, 617, 310, 619, 311, 621, 312, 623, 313, 625, 314, 627, 315, 629, 316, 631, 317, 633, 318, 635, 319, 637, 320, 639, 321, 641, 322, 643, 323, 645, 324, 647, 325, 649, 326, 651, 327, 653, 328, 655, 329, 657, 330, 659, 331, 661, 332, 663, 333, 665, 334, 667, 335, 669, 336, 671, 337, 673, 338, 675, 339, 677, 340, 679, 341, 681, 342, 683, 343, 685, 344, 687, 345, 689, 346, 691, 347, 693, 348, 695, 349, 697, 350, 699, 351, 701, 352, 703, 353, 705, 354, 707, 355, 709, 356, 711, 357, 713, 358, 715, 359, 717, 360, 719, 361, 721, 362, 723, 363, 725, 364, 727, 365, 729, 366, 731, 367, 733, 368, 735, 369, 737, 370, 739, 371, 741, 372, 743, 373, 745, 374, 747, 375, 749, 376, 751, 377, 753, 378, 755, 379, 757, 380, 759, 381, 761, 382, 763, 383, 765, 384, 767, 385, 769, 386, 771, 387, 773, 388, 775, 389, 777, 390, 779, 391, 781, 392, 783, 393, 785, 394, 787, 395, 789, 396, 791, 397, 793, 398, 795, 399, 797, 400, 799, 401, 801, 402, 803, 403, 805, 404, 807, 405, 809, 406, 811, 407, 813, 408, 815, 409, 817, 410, 819, 411, 821, 412, 823, 413, 825, 414, 827, 415, 829, 416, 831, 417, 833, 418, 835, 419, 837, 420, 839, 421, 841, 422, 843, 423, 845, 424, 847, 425, 849, 426, 851, 427, 853, 428, 855, 429, 857, 430, 859, 431, 861, 432, 863, 433, 865, 434, 867, 435, 869, 436, 871, 437, 873, 438, 875, 439, 877, 440, 879, 441, 881, 442, 883, 443, 885, 444, 887, 445, 889, 446, 891, 447, 893, 448, 895, 449, 897, 450, 899, 451, 901, 452, 903, 453, 905, 454, 907, 455, 909, 456, 911, 457, 913, 458, 915, 459, 917, 460, 919, 461, 921, 462, 923, 463, 925, 464, 927, 465, 929, 466, 931, 467, 933, 468, 935, 469, 937, 470, 939, 471, 941, 472, 943, 473, 945, 474, 947, 475, 949, 476, 951, 477, 953, 478, 955, 479, 957, 480, 959, 481, 961, 482, 963, 483, 965, 484, 967, 485, 969, 486, 971, 487, 973, 488, 975, 489, 977, 490, 979, 491, 981, 492, 983, 493, 985, 494, 987, 495, 989, 496, 991, 497, 993, 498, 995, 499, 997, 500, 999, 501, 1001, 502, 1003, 503, 1005, 504, 1007, 505, 1009, 506, 1011, 507, 1013, 508, 1015, 509, 1017, 510, 1019, 511, 1021, 512, 1023, 513, 1025, 514, 1027, 515, 1029, 516, 1031, 517, 1033, 518, 1035, 519, 1037, 520, 1039, 521, 1041, 522, 1043, 523, 1045, 524, 1047, 525, 1049, 526, 1051, 527, 1053, 528, 1055, 529, 1057, 530, 1059, 531, 1061, 532, 1063, 533, 1065, 534, 1067, 535, 1069, 536, 1071, 537, 1073, 538, 1075, 539, 1077, 540, 1079, 541, 1081, 542, 1083, 543, 1085, 544, 1087, 545, 1089, 546, 1091, 547, 1093, 548, 1095, 549, 1097, 550, 1099, 551, 1101, 552, 1103, 553, 1105, 554, 1107, 555, 1109, 556, 1111, 557, 1113, 558, 1115, 559, 1117, 560, 1119, 561, 1121, 562, 1123, 563, 1125, 564, 1127, 565, 1129, 566, 1131, 567, 1133, 568, 1135, 569, 1137, 570, 1139, 571, 1141, 572, 1143, 573, 1145, 574, 1147, 575, 1149, 576, 1151, 577, 1153, 578, 1155, 579, 1157, 580, 1159, 581, 1161, 582, 1163, 583, 1165, 584, 1167, 585, 1169, 586, 1171, 587, 1173, 588, 1175, 589, 1177, 590, 1179, 591, 1181, 592, 1183, 593, 1185, 594, 1187, 595, 1189, 596, 1191, 597, 1193, 598, 1195, 599, 1197, 600, 1199, 601, 1201, 602, 1203, 603, 1205, 604, 1207, 605, 1209, 606, 1211, 607, 1213, 608, 1215, 609, 1217, 610, 1219, 611, 1221, 612, 1223, 613, 1225, 614, 1227, 615, 1229, 616, 1231, 617, 1233, 618, 1235, 619, 1237, 620, 1239, 621, 1241, 622, 1243, 623, 1245, 624, 1247, 625, 1249, 626, 1251, 627, 1253, 628, 1255, 629, 1257, 630, 1259, 631, 1261, 632, 1263, 633, 1265, 634, 1267, 635, 1269, 636, 1271, 637, 1273, 638, 1275, 639, 1277, 640, 1279, 641, 1281, 642, 1283, 643, 1285, 644, 1287, 645, 1289, 646, 1291, 647, 1293, 648, 1295, 649, 1297, 650, 1299, 651, 1301, 652, 1303, 653, 1305, 654, 1307, 655, 1309, 656, 1311, 657, 1313, 658, 1315, 659, 1317, 660, 1319, 661, 1321, 662, 1323, 663, 1325, 664, 1327, 665, 1329, 666, 1331, 667, 1333, 668, 1335, 669, 1337, 670, 1339, 671, 1341, 672, 1343, 673, 1345, 674, 1347, 675, 1349, 676, 1351, 677, 1353, 678, 1355, 679, 1357, 680, 1359, 681, 1361, 682, 1363, 683, 1365, 684, 1367, 685, 1369, 686, 1371, 687, 1373, 688, 1375, 689, 1377, 690, 1379, 691, 1381, 692, 1383, 693, 1385, 694, 1387, 695, 1389, 696, 1391, 697, 1393, 698, 1395, 699, 1397, 700, 1399, 701, 1401, 702, 1403, 703, 1405, 704, 1407, 705, 1409, 706, 1411, 707, 1413, 708, 1415, 709, 1417, 710, 1419, 711, 1421, 712, 1423, 713, 1425, 714, 1427, 715, 1429, 716, 1431, 717, 1433, 718, 1435, 719, 1437, 720, 1439, 721, 1441, 722, 1443, 723, 1445, 724, 1447, 725, 1449, 726, 1451, 727, 1453, 728, 1455, 729, 1457, 730, 1459, 731, 1461, 732, 1463, 733, 1465, 734, 1467, 735, 1469, 736, 1471, 737, 1473, 738, 1475, 739, 1477, 740, 1479, 741, 1481, 742, 1483, 743, 1485, 744, 1487, 745, 1489, 746, 1491, 747, 1493, 748, 1495, 749, 1497, 750, 1499, 751, 1501, 752, 1503, 753, 1505, 754, 1507, 755, 1509, 756, 1511, 757, 1513, 758, 1515, 759, 1517, 760, 1519, 761, 1521, 762, 1523, 763, 1525, 764, 1527, 765, 1529, 766, 1531, 767, 1533, 768, 1535, 769, 1537, 770, 1539, 771, 1541, 772, 1543, 773, 1545, 774, 1547, 775, 1549, 776, 1551, 777, 1553, 778, 1555, 779, 1557, 780, 1559, 781, 1561, 782, 1563, 783, 1565, 784, 1567, 785, 1569, 786, 1571, 787, 1573, 788, 1575, 789, 1577, 790, 1579, 791, 1581, 792, 1583, 793, 1585, 794, 1587, 795, 1589, 796, 1591, 797, 1593, 798, 1595, 799, 1597, 800, 1599, 801, 1601, 802, 1603, 803, 1605, 804, 1607, 805, 1609, 806, 1611, 807, 1613, 808, 1615, 809, 1617, 810, 1619, 811, 1621, 812, 1623, 813, 1625, 814, 1627, 815, 1629, 816, 1631, 817, 1633, 818, 1635, 819, 1637, 820, 1639, 821, 1641, 822, 1643, 823, 1645, 824, 1647, 825, 1649, 826, 1651, 827, 1653, 828, 1655, 829, 1657, 830, 1659, 831, 1661, 832, 1663, 833, 1665, 834, 1667, 835, 1669, 836, 1671, 837, 1673, 838, 1675, 839, 1677, 840, 1679, 841, 1681, 2, 1683, 2, 1685, 842, 1687, 2, 1689, 2, 1691, 2, 1693, 2, 3, 2, 17, 3, 2, 41, 41, 4, 2, 50, 59, 67, 72, 3, 2, 60, 60, 3, 2, 36, 36, 3, 2, 67, 92, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 12, 12, 15, 15, 3, 2, 95, 95, 6, 2, 37, 38, 50, 59, 66, 92, 97, 97, 5, 2, 37, 37, 67, 92, 97, 97, 3, 2, 48, 48, 4, 2, 45, 45, 47, 47, 4, 2, 67, 92, 97, 97, 3, 2, 50, 59, 12, 2, 194, 216, 218, 248, 250, 8193, 11266, 12289, 12354, 12689, 13058, 13185, 13314, 16385, 19970, 55297, 63746, 64257, 65282, 65522, 2, 10159, 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, 1685, 3, 2, 2, 2, 3, 1695, 3, 2, 2, 2, 5, 1702, 3, 2, 2, 2, 7, 1706, 3, 2, 2, 2, 9, 1710, 3, 2, 2, 2, 11, 1714, 3, 2, 2, 2, 13, 1732, 3, 2, 2, 2, 15, 1758, 3, 2, 2, 2, 17, 1782, 3, 2, 2, 2, 19, 1788, 3, 2, 2, 2, 21, 1792, 3, 2, 2, 2, 23, 1802, 3, 2, 2, 2, 25, 1806, 3, 2, 2, 2, 27, 1813, 3, 2, 2, 2, 29, 1825, 3, 2, 2, 2, 31, 1828, 3, 2, 2, 2, 33, 1832, 3, 2, 2, 2, 35, 1843, 3, 2, 2, 2, 37, 1863, 3, 2, 2, 2, 39, 1877, 3, 2, 2, 2, 41, 1892, 3, 2, 2, 2, 43, 1920, 3, 2, 2, 2, 45, 1930, 3, 2, 2, 2, 47, 1948, 3, 2, 2, 2, 49, 1950, 3, 2, 2, 2, 51, 1957, 3, 2, 2, 2, 53, 1964, 3, 2, 2, 2, 55, 1970, 3, 2, 2, 2, 57, 1978, 3, 2, 2, 2, 59, 1984, 3, 2, 2, 2, 61, 1994, 3, 2, 2, 2, 63, 2013, 3, 2, 2, 2, 65, 2019, 3, 2, 2, 2, 67, 2026, 3, 2, 2, 2, 69, 2033, 3, 2, 2, 2, 71, 2045, 3, 2, 2, 2, 73, 2050, 3, 2, 2, 2, 75, 2053, 3, 2, 2, 2, 77, 2059, 3, 2, 2, 2, 79, 2066, 3, 2, 2, 2, 81, 2074, 3, 2, 2, 2, 83, 2079, 3, 2, 2, 2, 85, 2091, 3, 2, 2, 2, 87, 2103, 3, 2, 2, 2, 89, 2111, 3, 2, 2, 2, 91, 2117, 3, 2, 2, 2, 93, 2128, 3, 2, 2, 2, 95, 2141, 3, 2, 2, 2, 97, 2158, 3, 2, 2, 2, 99, 2178, 3, 2, 2, 2, 101, 2184, 3, 2, 2, 2, 103, 2192, 3, 2, 2, 2, 105, 2202, 3, 2, 2, 2, 107, 2211, 3, 2, 2, 2, 109, 2219, 3, 2, 2, 2, 111, 2226, 3, 2, 2, 2, 113, 2238, 3, 2, 2, 2, 115, 2245, 3, 2, 2, 2, 117, 2253, 3, 2, 2, 2, 119, 2267, 3, 2, 2, 2, 121, 2278, 3, 2, 2, 2, 123, 2290, 3, 2, 2, 2, 125, 2299, 3, 2, 2, 2, 127, 2313, 3, 2, 2, 2, 129, 2321, 3, 2, 2, 2, 131, 2330, 3, 2, 2, 2, 133, 2351, 3, 2, 2, 2, 135, 2360, 3, 2, 2, 2, 137, 2374, 3, 2, 2, 2, 139, 2391, 3, 2, 2, 2, 141, 2401, 3, 2, 2, 2, 143, 2411, 3, 2, 2, 2, 145, 2418, 3, 2, 2, 2, 147, 2424, 3, 2, 2, 2, 149, 2432, 3, 2, 2, 2, 151, 2445, 3, 2, 2, 2, 153, 2458, 3, 2, 2, 2, 155, 2476, 3, 2, 2, 2, 157, 2489, 3, 2, 2, 2, 159, 2496, 3, 2, 2, 2, 161, 2502, 3, 2, 2, 2, 163, 2519, 3, 2, 2, 2, 165, 2531, 3, 2, 2, 2, 167, 2540, 3, 2, 2, 2, 169, 2559, 3, 2, 2, 2, 171, 2564, 3, 2, 2, 2, 173, 2575, 3, 2, 2, 2, 175, 2583, 3, 2, 2, 2, 177, 2591, 3, 2, 2, 2, 179, 2608, 3, 2, 2, 2, 181, 2623, 3, 2, 2, 2, 183, 2630, 3, 2, 2, 2, 185, 2635, 3, 2, 2, 2, 187, 2640, 3, 2, 2, 2, 189, 2652, 3, 2, 2, 2, 191, 2665, 3, 2, 2, 2, 193, 2670, 3, 2, 2, 2, 195, 2679, 3, 2, 2, 2, 197, 2691, 3, 2, 2, 2, 199, 2698, 3, 2, 2, 2, 201, 2701, 3, 2, 2, 2, 203, 2704, 3, 2, 2, 2, 205, 2709, 3, 2, 2, 2, 207, 2721, 3, 2, 2, 2, 209, 2726, 3, 2, 2, 2, 211, 2731, 3, 2, 2, 2, 213, 2739, 3, 2, 2, 2, 215, 2743, 3, 2, 2, 2, 217, 2752, 3, 2, 2, 2, 219, 2759, 3, 2, 2, 2, 221, 2766, 3, 2, 2, 2, 223, 2772, 3, 2, 2, 2, 225, 2778, 3, 2, 2, 2, 227, 2791, 3, 2, 2, 2, 229, 2812, 3, 2, 2, 2, 231, 2819, 3, 2, 2, 2, 233, 2835, 3, 2, 2, 2, 235, 2845, 3, 2, 2, 2, 237, 2852, 3, 2, 2, 2, 239, 2863, 3, 2, 2, 2, 241, 2868, 3, 2, 2, 2, 243, 2878, 3, 2, 2, 2, 245, 2887, 3, 2, 2, 2, 247, 2903, 3, 2, 2, 2, 249, 2912, 3, 2, 2, 2, 251, 2934, 3, 2, 2, 2, 253, 2941, 3, 2, 2, 2, 255, 2947, 3, 2, 2, 2, 257, 2952, 3, 2, 2, 2, 259, 2961, 3, 2, 2, 2, 261, 2972, 3, 2, 2, 2, 263, 2986, 3, 2, 2, 2, 265, 2990, 3, 2, 2, 2, 267, 3000, 3, 2, 2, 2, 269, 3030, 3, 2, 2, 2, 271, 3038, 3, 2, 2, 2, 273, 3047, 3, 2, 2, 2, 275, 3061, 3, 2, 2, 2, 277, 3066, 3, 2, 2, 2, 279, 3071, 3, 2, 2, 2, 281, 3080, 3, 2, 2, 2, 283, 3084, 3, 2, 2, 2, 285, 3089, 3, 2, 2, 2, 287, 3098, 3, 2, 2, 2, 289, 3104, 3, 2, 2, 2, 291, 3110, 3, 2, 2, 2, 293, 3117, 3, 2, 2, 2, 295, 3124, 3, 2, 2, 2, 297, 3143, 3, 2, 2, 2, 299, 3152, 3, 2, 2, 2, 301, 3164, 3, 2, 2, 2, 303, 3180, 3, 2, 2, 2, 305, 3183, 3, 2, 2, 2, 307, 3187, 3, 2, 2, 2, 309, 3190, 3, 2, 2, 2, 311, 3198, 3, 2, 2, 2, 313, 3208, 3, 2, 2, 2, 315, 3214, 3, 2, 2, 2, 317, 3223, 3, 2, 2, 2, 319, 3228, 3, 2, 2, 2, 321, 3234, 3, 2, 2, 2, 323, 3241, 3, 2, 2, 2, 325, 3249, 3, 2, 2, 2, 327, 3259, 3, 2, 2, 2, 329, 3265, 3, 2, 2, 2, 331, 3278, 3, 2, 2, 2, 333, 3386, 3, 2, 2, 2, 335, 3389, 3, 2, 2, 2, 337, 3396, 3, 2, 2, 2, 339, 3401, 3, 2, 2, 2, 341, 3410, 3, 2, 2, 2, 343, 3414, 3, 2, 2, 2, 345, 3423, 3, 2, 2, 2, 347, 3447, 3, 2, 2, 2, 349, 3452, 3, 2, 2, 2, 351, 3461, 3, 2, 2, 2, 353, 3466, 3, 2, 2, 2, 355, 3474, 3, 2, 2, 2, 357, 3483, 3, 2, 2, 2, 359, 3488, 3, 2, 2, 2, 361, 3495, 3, 2, 2, 2, 363, 3501, 3, 2, 2, 2, 365, 3513, 3, 2, 2, 2, 367, 3527, 3, 2, 2, 2, 369, 3532, 3, 2, 2, 2, 371, 3551, 3, 2, 2, 2, 373, 3555, 3, 2, 2, 2, 375, 3563, 3, 2, 2, 2, 377, 3570, 3, 2, 2, 2, 379, 3581, 3, 2, 2, 2, 381, 3593, 3, 2, 2, 2, 383, 3602, 3, 2, 2, 2, 385, 3623, 3, 2, 2, 2, 387, 3638, 3, 2, 2, 2, 389, 3647, 3, 2, 2, 2, 391, 3677, 3, 2, 2, 2, 393, 3694, 3, 2, 2, 2, 395, 3704, 3, 2, 2, 2, 397, 3711, 3, 2, 2, 2, 399, 3733, 3, 2, 2, 2, 401, 3739, 3, 2, 2, 2, 403, 3758, 3, 2, 2, 2, 405, 3779, 3, 2, 2, 2, 407, 3788, 3, 2, 2, 2, 409, 3795, 3, 2, 2, 2, 411, 3807, 3, 2, 2, 2, 413, 3816, 3, 2, 2, 2, 415, 3826, 3, 2, 2, 2, 417, 3834, 3, 2, 2, 2, 419, 3843, 3, 2, 2, 2, 421, 3850, 3, 2, 2, 2, 423, 3863, 3, 2, 2, 2, 425, 3868, 3, 2, 2, 2, 427, 3877, 3, 2, 2, 2, 429, 3884, 3, 2, 2, 2, 431, 3893, 3, 2, 2, 2, 433, 3905, 3, 2, 2, 2, 435, 3920, 3, 2, 2, 2, 437, 3934, 3, 2, 2, 2, 439, 3938, 3, 2, 2, 2, 441, 3951, 3, 2, 2, 2, 443, 3956, 3, 2, 2, 2, 445, 3961, 3, 2, 2, 2, 447, 3968, 3, 2, 2, 2, 449, 3971, 3, 2, 2, 2, 451, 3975, 3, 2, 2, 2, 453, 3983, 3, 2, 2, 2, 455, 3996, 3, 2, 2, 2, 457, 3999, 3, 2, 2, 2, 459, 4010, 3, 2, 2, 2, 461, 4015, 3, 2, 2, 2, 463, 4030, 3, 2, 2, 2, 465, 4040, 3, 2, 2, 2, 467, 4051, 3, 2, 2, 2, 469, 4059, 3, 2, 2, 2, 471, 4066, 3, 2, 2, 2, 473, 4069, 3, 2, 2, 2, 475, 4075, 3, 2, 2, 2, 477, 4081, 3, 2, 2, 2, 479, 4086, 3, 2, 2, 2, 481, 4091, 3, 2, 2, 2, 483, 4102, 3, 2, 2, 2, 485, 4110, 3, 2, 2, 2, 487, 4119, 3, 2, 2, 2, 489, 4127, 3, 2, 2, 2, 491, 4142, 3, 2, 2, 2, 493, 4150, 3, 2, 2, 2, 495, 4157, 3, 2, 2, 2, 497, 4166, 3, 2, 2, 2, 499, 4172, 3, 2, 2, 2, 501, 4177, 3, 2, 2, 2, 503, 4186, 3, 2, 2, 2, 505, 4193, 3, 2, 2, 2, 507, 4203, 3, 2, 2, 2, 509, 4213, 3, 2, 2, 2, 511, 4221, 3, 2, 2, 2, 513, 4227, 3, 2, 2, 2, 515, 4232, 3, 2, 2, 2, 517, 4242, 3, 2, 2, 2, 519, 4250, 3, 2, 2, 2, 521, 4257, 3, 2, 2, 2, 523, 4264, 3, 2, 2, 2, 525, 4266, 3, 2, 2, 2, 527, 4276, 3, 2, 2, 2, 529, 4280, 3, 2, 2, 2, 531, 4285, 3, 2, 2, 2, 533, 4294, 3, 2, 2, 2, 535, 4316, 3, 2, 2, 2, 537, 4328, 3, 2, 2, 2, 539, 4339, 3, 2, 2, 2, 541, 4350, 3, 2, 2, 2, 543, 4371, 3, 2, 2, 2, 545, 4398, 3, 2, 2, 2, 547, 4410, 3, 2, 2, 2, 549, 4419, 3, 2, 2, 2, 551, 4425, 3, 2, 2, 2, 553, 4433, 3, 2, 2, 2, 555, 4441, 3, 2, 2, 2, 557, 4450, 3, 2, 2, 2, 559, 4457, 3, 2, 2, 2, 561, 4468, 3, 2, 2, 2, 563, 4475, 3, 2, 2, 2, 565, 4483, 3, 2, 2, 2, 567, 4490, 3, 2, 2, 2, 569, 4497, 3, 2, 2, 2, 571, 4504, 3, 2, 2, 2, 573, 4510, 3, 2, 2, 2, 575, 4519, 3, 2, 2, 2, 577, 4524, 3, 2, 2, 2, 579, 4533, 3, 2, 2, 2, 581, 4544, 3, 2, 2, 2, 583, 4552, 3, 2, 2, 2, 585, 4561, 3, 2, 2, 2, 587, 4570, 3, 2, 2, 2, 589, 4579, 3, 2, 2, 2, 591, 4588, 3, 2, 2, 2, 593, 4595, 3, 2, 2, 2, 595, 4600, 3, 2, 2, 2, 597, 4605, 3, 2, 2, 2, 599, 4610, 3, 2, 2, 2, 601, 4620, 3, 2, 2, 2, 603, 4627, 3, 2, 2, 2, 605, 4634, 3, 2, 2, 2, 607, 4648, 3, 2, 2, 2, 609, 4655, 3, 2, 2, 2, 611, 4678, 3, 2, 2, 2, 613, 4709, 3, 2, 2, 2, 615, 4733, 3, 2, 2, 2, 617, 4740, 3, 2, 2, 2, 619, 4748, 3, 2, 2, 2, 621, 4763, 3, 2, 2, 2, 623, 4776, 3, 2, 2, 2, 625, 4784, 3, 2, 2, 2, 627, 4797, 3, 2, 2, 2, 629, 4801, 3, 2, 2, 2, 631, 4809, 3, 2, 2, 2, 633, 4818, 3, 2, 2, 2, 635, 4822, 3, 2, 2, 2, 637, 4827, 3, 2, 2, 2, 639, 4836, 3, 2, 2, 2, 641, 4841, 3, 2, 2, 2, 643, 4848, 3, 2, 2, 2, 645, 4862, 3, 2, 2, 2, 647, 4868, 3, 2, 2, 2, 649, 4883, 3, 2, 2, 2, 651, 4897, 3, 2, 2, 2, 653, 4915, 3, 2, 2, 2, 655, 4926, 3, 2, 2, 2, 657, 4932, 3, 2, 2, 2, 659, 4938, 3, 2, 2, 2, 661, 4944, 3, 2, 2, 2, 663, 4952, 3, 2, 2, 2, 665, 4966, 3, 2, 2, 2, 667, 4971, 3, 2, 2, 2, 669, 4979, 3, 2, 2, 2, 671, 4993, 3, 2, 2, 2, 673, 5003, 3, 2, 2, 2, 675, 5015, 3, 2, 2, 2, 677, 5021, 3, 2, 2, 2, 679, 5033, 3, 2, 2, 2, 681, 5038, 3, 2, 2, 2, 683, 5045, 3, 2, 2, 2, 685, 5049, 3, 2, 2, 2, 687, 5058, 3, 2, 2, 2, 689, 5063, 3, 2, 2, 2, 691, 5066, 3, 2, 2, 2, 693, 5070, 3, 2, 2, 2, 695, 5086, 3, 2, 2, 2, 697, 5091, 3, 2, 2, 2, 699, 5103, 3, 2, 2, 2, 701, 5112, 3, 2, 2, 2, 703, 5120, 3, 2, 2, 2, 705, 5129, 3, 2, 2, 2, 707, 5137, 3, 2, 2, 2, 709, 5147, 3, 2, 2, 2, 711, 5153, 3, 2, 2, 2, 713, 5160, 3, 2, 2, 2, 715, 5167, 3, 2, 2, 2, 717, 5175, 3, 2, 2, 2, 719, 5182, 3, 2, 2, 2, 721, 5189, 3, 2, 2, 2, 723, 5200, 3, 2, 2, 2, 725, 5204, 3, 2, 2, 2, 727, 5208, 3, 2, 2, 2, 729, 5213, 3, 2, 2, 2, 731, 5218, 3, 2, 2, 2, 733, 5225, 3, 2, 2, 2, 735, 5233, 3, 2, 2, 2, 737, 5248, 3, 2, 2, 2, 739, 5253, 3, 2, 2, 2, 741, 5264, 3, 2, 2, 2, 743, 5272, 3, 2, 2, 2, 745, 5277, 3, 2, 2, 2, 747, 5283, 3, 2, 2, 2, 749, 5289, 3, 2, 2, 2, 751, 5297, 3, 2, 2, 2, 753, 5302, 3, 2, 2, 2, 755, 5309, 3, 2, 2, 2, 757, 5317, 3, 2, 2, 2, 759, 5325, 3, 2, 2, 2, 761, 5335, 3, 2, 2, 2, 763, 5344, 3, 2, 2, 2, 765, 5363, 3, 2, 2, 2, 767, 5370, 3, 2, 2, 2, 769, 5381, 3, 2, 2, 2, 771, 5388, 3, 2, 2, 2, 773, 5396, 3, 2, 2, 2, 775, 5404, 3, 2, 2, 2, 777, 5412, 3, 2, 2, 2, 779, 5420, 3, 2, 2, 2, 781, 5429, 3, 2, 2, 2, 783, 5435, 3, 2, 2, 2, 785, 5445, 3, 2, 2, 2, 787, 5455, 3, 2, 2, 2, 789, 5491, 3, 2, 2, 2, 791, 5516, 3, 2, 2, 2, 793, 5524, 3, 2, 2, 2, 795, 5542, 3, 2, 2, 2, 797, 5553, 3, 2, 2, 2, 799, 5566, 3, 2, 2, 2, 801, 5580, 3, 2, 2, 2, 803, 5596, 3, 2, 2, 2, 805, 5602, 3, 2, 2, 2, 807, 5613, 3, 2, 2, 2, 809, 5622, 3, 2, 2, 2, 811, 5628, 3, 2, 2, 2, 813, 5639, 3, 2, 2, 2, 815, 5644, 3, 2, 2, 2, 817, 5657, 3, 2, 2, 2, 819, 5668, 3, 2, 2, 2, 821, 5691, 3, 2, 2, 2, 823, 5703, 3, 2, 2, 2, 825, 5726, 3, 2, 2, 2, 827, 5755, 3, 2, 2, 2, 829, 5768, 3, 2, 2, 2, 831, 5772, 3, 2, 2, 2, 833, 5788, 3, 2, 2, 2, 835, 5801, 3, 2, 2, 2, 837, 5808, 3, 2, 2, 2, 839, 5822, 3, 2, 2, 2, 841, 5838, 3, 2, 2, 2, 843, 5846, 3, 2, 2, 2, 845, 5859, 3, 2, 2, 2, 847, 5866, 3, 2, 2, 2, 849, 5882, 3, 2, 2, 2, 851, 5894, 3, 2, 2, 2, 853, 5901, 3, 2, 2, 2, 855, 5921, 3, 2, 2, 2, 857, 5928, 3, 2, 2, 2, 859, 5936, 3, 2, 2, 2, 861, 5942, 3, 2, 2, 2, 863, 5959, 3, 2, 2, 2, 865, 5975, 3, 2, 2, 2, 867, 5984, 3, 2, 2, 2, 869, 5997, 3, 2, 2, 2, 871, 6005, 3, 2, 2, 2, 873, 6016, 3, 2, 2, 2, 875, 6034, 3, 2, 2, 2, 877, 6044, 3, 2, 2, 2, 879, 6064, 3, 2, 2, 2, 881, 6071, 3, 2, 2, 2, 883, 6095, 3, 2, 2, 2, 885, 6103, 3, 2, 2, 2, 887, 6111, 3, 2, 2, 2, 889, 6118, 3, 2, 2, 2, 891, 6124, 3, 2, 2, 2, 893, 6134, 3, 2, 2, 2, 895, 6142, 3, 2, 2, 2, 897, 6146, 3, 2, 2, 2, 899, 6157, 3, 2, 2, 2, 901, 6178, 3, 2, 2, 2, 903, 6189, 3, 2, 2, 2, 905, 6203, 3, 2, 2, 2, 907, 6226, 3, 2, 2, 2, 909, 6241, 3, 2, 2, 2, 911, 6246, 3, 2, 2, 2, 913, 6276, 3, 2, 2, 2, 915, 6284, 3, 2, 2, 2, 917, 6293, 3, 2, 2, 2, 919, 6302, 3, 2, 2, 2, 921, 6311, 3, 2, 2, 2, 923, 6316, 3, 2, 2, 2, 925, 6328, 3, 2, 2, 2, 927, 6340, 3, 2, 2, 2, 929, 6351, 3, 2, 2, 2, 931, 6362, 3, 2, 2, 2, 933, 6388, 3, 2, 2, 2, 935, 6405, 3, 2, 2, 2, 937, 6411, 3, 2, 2, 2, 939, 6430, 3, 2, 2, 2, 941, 6438, 3, 2, 2, 2, 943, 6449, 3, 2, 2, 2, 945, 6460, 3, 2, 2, 2, 947, 6464, 3, 2, 2, 2, 949, 6476, 3, 2, 2, 2, 951, 6481, 3, 2, 2, 2, 953, 6486, 3, 2, 2, 2, 955, 6493, 3, 2, 2, 2, 957, 6508, 3, 2, 2, 2, 959, 6516, 3, 2, 2, 2, 961, 6531, 3, 2, 2, 2, 963, 6540, 3, 2, 2, 2, 965, 6543, 3, 2, 2, 2, 967, 6552, 3, 2, 2, 2, 969, 6560, 3, 2, 2, 2, 971, 6569, 3, 2, 2, 2, 973, 6579, 3, 2, 2, 2, 975, 6585, 3, 2, 2, 2, 977, 6592, 3, 2, 2, 2, 979, 6606, 3, 2, 2, 2, 981, 6622, 3, 2, 2, 2, 983, 6633, 3, 2, 2, 2, 985, 6646, 3, 2, 2, 2, 987, 6673, 3, 2, 2, 2, 989, 6683, 3, 2, 2, 2, 991, 6694, 3, 2, 2, 2, 993, 6700, 3, 2, 2, 2, 995, 6707, 3, 2, 2, 2, 997, 6719, 3, 2, 2, 2, 999, 6728, 3, 2, 2, 2, 1001, 6743, 3, 2, 2, 2, 1003, 6757, 3, 2, 2, 2, 1005, 6765, 3, 2, 2, 2, 1007, 6789, 3, 2, 2, 2, 1009, 6794, 3, 2, 2, 2, 1011, 6807, 3, 2, 2, 2, 1013, 6817, 3, 2, 2, 2, 1015, 6828, 3, 2, 2, 2, 1017, 6837, 3, 2, 2, 2, 1019, 6848, 3, 2, 2, 2, 1021, 6855, 3, 2, 2, 2, 1023, 6861, 3, 2, 2, 2, 1025, 6873, 3, 2, 2, 2, 1027, 6883, 3, 2, 2, 2, 1029, 6889, 3, 2, 2, 2, 1031, 6920, 3, 2, 2, 2, 1033, 6927, 3, 2, 2, 2, 1035, 6934, 3, 2, 2, 2, 1037, 6947, 3, 2, 2, 2, 1039, 6956, 3, 2, 2, 2, 1041, 6965, 3, 2, 2, 2, 1043, 6968, 3, 2, 2, 2, 1045, 6976, 3, 2, 2, 2, 1047, 6987, 3, 2, 2, 2, 1049, 6994, 3, 2, 2, 2, 1051, 6997, 3, 2, 2, 2, 1053, 7016, 3, 2, 2, 2, 1055, 7025, 3, 2, 2, 2, 1057, 7037, 3, 2, 2, 2, 1059, 7042, 3, 2, 2, 2, 1061, 7047, 3, 2, 2, 2, 1063, 7068, 3, 2, 2, 2, 1065, 7073, 3, 2, 2, 2, 1067, 7095, 3, 2, 2, 2, 1069, 7101, 3, 2, 2, 2, 1071, 7116, 3, 2, 2, 2, 1073, 7154, 3, 2, 2, 2, 1075, 7164, 3, 2, 2, 2, 1077, 7176, 3, 2, 2, 2, 1079, 7187, 3, 2, 2, 2, 1081, 7207, 3, 2, 2, 2, 1083, 7219, 3, 2, 2, 2, 1085, 7229, 3, 2, 2, 2, 1087, 7235, 3, 2, 2, 2, 1089, 7247, 3, 2, 2, 2, 1091, 7256, 3, 2, 2, 2, 1093, 7260, 3, 2, 2, 2, 1095, 7263, 3, 2, 2, 2, 1097, 7273, 3, 2, 2, 2, 1099, 7277, 3, 2, 2, 2, 1101, 7282, 3, 2, 2, 2, 1103, 7285, 3, 2, 2, 2, 1105, 7290, 3, 2, 2, 2, 1107, 7300, 3, 2, 2, 2, 1109, 7311, 3, 2, 2, 2, 1111, 7316, 3, 2, 2, 2, 1113, 7323, 3, 2, 2, 2, 1115, 7327, 3, 2, 2, 2, 1117, 7332, 3, 2, 2, 2, 1119, 7343, 3, 2, 2, 2, 1121, 7348, 3, 2, 2, 2, 1123, 7354, 3, 2, 2, 2, 1125, 7359, 3, 2, 2, 2, 1127, 7368, 3, 2, 2, 2, 1129, 7381, 3, 2, 2, 2, 1131, 7396, 3, 2, 2, 2, 1133, 7402, 3, 2, 2, 2, 1135, 7411, 3, 2, 2, 2, 1137, 7416, 3, 2, 2, 2, 1139, 7432, 3, 2, 2, 2, 1141, 7438, 3, 2, 2, 2, 1143, 7443, 3, 2, 2, 2, 1145, 7447, 3, 2, 2, 2, 1147, 7454, 3, 2, 2, 2, 1149, 7459, 3, 2, 2, 2, 1151, 7472, 3, 2, 2, 2, 1153, 7476, 3, 2, 2, 2, 1155, 7492, 3, 2, 2, 2, 1157, 7500, 3, 2, 2, 2, 1159, 7510, 3, 2, 2, 2, 1161, 7530, 3, 2, 2, 2, 1163, 7549, 3, 2, 2, 2, 1165, 7563, 3, 2, 2, 2, 1167, 7581, 3, 2, 2, 2, 1169, 7600, 3, 2, 2, 2, 1171, 7607, 3, 2, 2, 2, 1173, 7620, 3, 2, 2, 2, 1175, 7628, 3, 2, 2, 2, 1177, 7631, 3, 2, 2, 2, 1179, 7638, 3, 2, 2, 2, 1181, 7660, 3, 2, 2, 2, 1183, 7668, 3, 2, 2, 2, 1185, 7672, 3, 2, 2, 2, 1187, 7694, 3, 2, 2, 2, 1189, 7710, 3, 2, 2, 2, 1191, 7730, 3, 2, 2, 2, 1193, 7749, 3, 2, 2, 2, 1195, 7757, 3, 2, 2, 2, 1197, 7772, 3, 2, 2, 2, 1199, 7794, 3, 2, 2, 2, 1201, 7799, 3, 2, 2, 2, 1203, 7806, 3, 2, 2, 2, 1205, 7811, 3, 2, 2, 2, 1207, 7822, 3, 2, 2, 2, 1209, 7827, 3, 2, 2, 2, 1211, 7843, 3, 2, 2, 2, 1213, 7855, 3, 2, 2, 2, 1215, 7866, 3, 2, 2, 2, 1217, 7879, 3, 2, 2, 2, 1219, 7884, 3, 2, 2, 2, 1221, 7887, 3, 2, 2, 2, 1223, 7899, 3, 2, 2, 2, 1225, 7907, 3, 2, 2, 2, 1227, 7915, 3, 2, 2, 2, 1229, 7921, 3, 2, 2, 2, 1231, 7930, 3, 2, 2, 2, 1233, 7952, 3, 2, 2, 2, 1235, 7964, 3, 2, 2, 2, 1237, 7975, 3, 2, 2, 2, 1239, 7982, 3, 2, 2, 2, 1241, 7988, 3, 2, 2, 2, 1243, 7997, 3, 2, 2, 2, 1245, 8004, 3, 2, 2, 2, 1247, 8023, 3, 2, 2, 2, 1249, 8030, 3, 2, 2, 2, 1251, 8038, 3, 2, 2, 2, 1253, 8045, 3, 2, 2, 2, 1255, 8057, 3, 2, 2, 2, 1257, 8064, 3, 2, 2, 2, 1259, 8069, 3, 2, 2, 2, 1261, 8083, 3, 2, 2, 2, 1263, 8094, 3, 2, 2, 2, 1265, 8103, 3, 2, 2, 2, 1267, 8107, 3, 2, 2, 2, 1269, 8114, 3, 2, 2, 2, 1271, 8123, 3, 2, 2, 2, 1273, 8129, 3, 2, 2, 2, 1275, 8141, 3, 2, 2, 2, 1277, 8158, 3, 2, 2, 2, 1279, 8168, 3, 2, 2, 2, 1281, 8179, 3, 2, 2, 2, 1283, 8187, 3, 2, 2, 2, 1285, 8192, 3, 2, 2, 2, 1287, 8216, 3, 2, 2, 2, 1289, 8221, 3, 2, 2, 2, 1291, 8226, 3, 2, 2, 2, 1293, 8236, 3, 2, 2, 2, 1295, 8249, 3, 2, 2, 2, 1297, 8255, 3, 2, 2, 2, 1299, 8264, 3, 2, 2, 2, 1301, 8279, 3, 2, 2, 2, 1303, 8287, 3, 2, 2, 2, 1305, 8299, 3, 2, 2, 2, 1307, 8310, 3, 2, 2, 2, 1309, 8325, 3, 2, 2, 2, 1311, 8334, 3, 2, 2, 2, 1313, 8343, 3, 2, 2, 2, 1315, 8361, 3, 2, 2, 2, 1317, 8367, 3, 2, 2, 2, 1319, 8373, 3, 2, 2, 2, 1321, 8385, 3, 2, 2, 2, 1323, 8403, 3, 2, 2, 2, 1325, 8409, 3, 2, 2, 2, 1327, 8414, 3, 2, 2, 2, 1329, 8418, 3, 2, 2, 2, 1331, 8422, 3, 2, 2, 2, 1333, 8430, 3, 2, 2, 2, 1335, 8454, 3, 2, 2, 2, 1337, 8464, 3, 2, 2, 2, 1339, 8487, 3, 2, 2, 2, 1341, 8498, 3, 2, 2, 2, 1343, 8507, 3, 2, 2, 2, 1345, 8515, 3, 2, 2, 2, 1347, 8523, 3, 2, 2, 2, 1349, 8533, 3, 2, 2, 2, 1351, 8542, 3, 2, 2, 2, 1353, 8561, 3, 2, 2, 2, 1355, 8570, 3, 2, 2, 2, 1357, 8577, 3, 2, 2, 2, 1359, 8597, 3, 2, 2, 2, 1361, 8604, 3, 2, 2, 2, 1363, 8615, 3, 2, 2, 2, 1365, 8626, 3, 2, 2, 2, 1367, 8634, 3, 2, 2, 2, 1369, 8659, 3, 2, 2, 2, 1371, 8692, 3, 2, 2, 2, 1373, 8725, 3, 2, 2, 2, 1375, 8769, 3, 2, 2, 2, 1377, 8788, 3, 2, 2, 2, 1379, 8797, 3, 2, 2, 2, 1381, 8823, 3, 2, 2, 2, 1383, 8839, 3, 2, 2, 2, 1385, 8849, 3, 2, 2, 2, 1387, 8856, 3, 2, 2, 2, 1389, 8861, 3, 2, 2, 2, 1391, 8867, 3, 2, 2, 2, 1393, 8871, 3, 2, 2, 2, 1395, 8882, 3, 2, 2, 2, 1397, 8890, 3, 2, 2, 2, 1399, 8895, 3, 2, 2, 2, 1401, 8902, 3, 2, 2, 2, 1403, 8916, 3, 2, 2, 2, 1405, 8923, 3, 2, 2, 2, 1407, 8930, 3, 2, 2, 2, 1409, 8943, 3, 2, 2, 2, 1411, 8950, 3, 2, 2, 2, 1413, 8960, 3, 2, 2, 2, 1415, 8975, 3, 2, 2, 2, 1417, 8990, 3, 2, 2, 2, 1419, 8998, 3, 2, 2, 2, 1421, 9005, 3, 2, 2, 2, 1423, 9014, 3, 2, 2, 2, 1425, 9027, 3, 2, 2, 2, 1427, 9040, 3, 2, 2, 2, 1429, 9045, 3, 2, 2, 2, 1431, 9060, 3, 2, 2, 2, 1433, 9065, 3, 2, 2, 2, 1435, 9070, 3, 2, 2, 2, 1437, 9079, 3, 2, 2, 2, 1439, 9092, 3, 2, 2, 2, 1441, 9108, 3, 2, 2, 2, 1443, 9117, 3, 2, 2, 2, 1445, 9123, 3, 2, 2, 2, 1447, 9132, 3, 2, 2, 2, 1449, 9142, 3, 2, 2, 2, 1451, 9149, 3, 2, 2, 2, 1453, 9161, 3, 2, 2, 2, 1455, 9166, 3, 2, 2, 2, 1457, 9175, 3, 2, 2, 2, 1459, 9184, 3, 2, 2, 2, 1461, 9209, 3, 2, 2, 2, 1463, 9217, 3, 2, 2, 2, 1465, 9228, 3, 2, 2, 2, 1467, 9235, 3, 2, 2, 2, 1469, 9248, 3, 2, 2, 2, 1471, 9255, 3, 2, 2, 2, 1473, 9266, 3, 2, 2, 2, 1475, 9272, 3, 2, 2, 2, 1477, 9279, 3, 2, 2, 2, 1479, 9288, 3, 2, 2, 2, 1481, 9299, 3, 2, 2, 2, 1483, 9305, 3, 2, 2, 2, 1485, 9313, 3, 2, 2, 2, 1487, 9326, 3, 2, 2, 2, 1489, 9330, 3, 2, 2, 2, 1491, 9338, 3, 2, 2, 2, 1493, 9348, 3, 2, 2, 2, 1495, 9367, 3, 2, 2, 2, 1497, 9375, 3, 2, 2, 2, 1499, 9382, 3, 2, 2, 2, 1501, 9387, 3, 2, 2, 2, 1503, 9408, 3, 2, 2, 2, 1505, 9411, 3, 2, 2, 2, 1507, 9424, 3, 2, 2, 2, 1509, 9430, 3, 2, 2, 2, 1511, 9435, 3, 2, 2, 2, 1513, 9440, 3, 2, 2, 2, 1515, 9448, 3, 2, 2, 2, 1517, 9454, 3, 2, 2, 2, 1519, 9462, 3, 2, 2, 2, 1521, 9482, 3, 2, 2, 2, 1523, 9504, 3, 2, 2, 2, 1525, 9515, 3, 2, 2, 2, 1527, 9531, 3, 2, 2, 2, 1529, 9543, 3, 2, 2, 2, 1531, 9547, 3, 2, 2, 2, 1533, 9552, 3, 2, 2, 2, 1535, 9574, 3, 2, 2, 2, 1537, 9579, 3, 2, 2, 2, 1539, 9592, 3, 2, 2, 2, 1541, 9602, 3, 2, 2, 2, 1543, 9614, 3, 2, 2, 2, 1545, 9622, 3, 2, 2, 2, 1547, 9632, 3, 2, 2, 2, 1549, 9636, 3, 2, 2, 2, 1551, 9642, 3, 2, 2, 2, 1553, 9652, 3, 2, 2, 2, 1555, 9663, 3, 2, 2, 2, 1557, 9669, 3, 2, 2, 2, 1559, 9673, 3, 2, 2, 2, 1561, 9678, 3, 2, 2, 2, 1563, 9692, 3, 2, 2, 2, 1565, 9698, 3, 2, 2, 2, 1567, 9703, 3, 2, 2, 2, 1569, 9719, 3, 2, 2, 2, 1571, 9741, 3, 2, 2, 2, 1573, 9746, 3, 2, 2, 2, 1575, 9755, 3, 2, 2, 2, 1577, 9759, 3, 2, 2, 2, 1579, 9767, 3, 2, 2, 2, 1581, 9781, 3, 2, 2, 2, 1583, 9791, 3, 2, 2, 2, 1585, 9798, 3, 2, 2, 2, 1587, 9807, 3, 2, 2, 2, 1589, 9813, 3, 2, 2, 2, 1591, 9828, 3, 2, 2, 2, 1593, 9839, 3, 2, 2, 2, 1595, 9847, 3, 2, 2, 2, 1597, 9849, 3, 2, 2, 2, 1599, 9857, 3, 2, 2, 2, 1601, 9865, 3, 2, 2, 2, 1603, 9871, 3, 2, 2, 2, 1605, 9880, 3, 2, 2, 2, 1607, 9912, 3, 2, 2, 2, 1609, 9935, 3, 2, 2, 2, 1611, 9948, 3, 2, 2, 2, 1613, 9956, 3, 2, 2, 2, 1615, 9960, 3, 2, 2, 2, 1617, 9971, 3, 2, 2, 2, 1619, 9973, 3, 2, 2, 2, 1621, 9975, 3, 2, 2, 2, 1623, 9977, 3, 2, 2, 2, 1625, 9979, 3, 2, 2, 2, 1627, 9982, 3, 2, 2, 2, 1629, 9985, 3, 2, 2, 2, 1631, 9988, 3, 2, 2, 2, 1633, 9991, 3, 2, 2, 2, 1635, 9994, 3, 2, 2, 2, 1637, 9997, 3, 2, 2, 2, 1639, 10000, 3, 2, 2, 2, 1641, 10003, 3, 2, 2, 2, 1643, 10006, 3, 2, 2, 2, 1645, 10008, 3, 2, 2, 2, 1647, 10010, 3, 2, 2, 2, 1649, 10012, 3, 2, 2, 2, 1651, 10014, 3, 2, 2, 2, 1653, 10016, 3, 2, 2, 2, 1655, 10018, 3, 2, 2, 2, 1657, 10020, 3, 2, 2, 2, 1659, 10022, 3, 2, 2, 2, 1661, 10024, 3, 2, 2, 2, 1663, 10026, 3, 2, 2, 2, 1665, 10028, 3, 2, 2, 2, 1667, 10030, 3, 2, 2, 2, 1669, 10032, 3, 2, 2, 2, 1671, 10034, 3, 2, 2, 2, 1673, 10036, 3, 2, 2, 2, 1675, 10038, 3, 2, 2, 2, 1677, 10040, 3, 2, 2, 2, 1679, 10042, 3, 2, 2, 2, 1681, 10044, 3, 2, 2, 2, 1683, 10046, 3, 2, 2, 2, 1685, 10052, 3, 2, 2, 2, 1687, 10083, 3, 2, 2, 2, 1689, 10085, 3, 2, 2, 2, 1691, 10087, 3, 2, 2, 2, 1693, 10089, 3, 2, 2, 2, 1695, 1696, 7, 67, 2, 2, 1696, 1697, 7, 68, 2, 2, 1697, 1698, 7, 85, 2, 2, 1698, 1699, 7, 71, 2, 2, 1699, 1700, 7, 80, 2, 2, 1700, 1701, 7, 86, 2, 2, 1701, 4, 3, 2, 2, 2, 1702, 1703, 7, 67, 2, 2, 1703, 1704, 7, 70, 2, 2, 1704, 1705, 7, 70, 2, 2, 1705, 6, 3, 2, 2, 2, 1706, 1707, 7, 67, 2, 2, 1707, 1708, 7, 71, 2, 2, 1708, 1709, 7, 85, 2, 2, 1709, 8, 3, 2, 2, 2, 1710, 1711, 7, 67, 2, 2, 1711, 1712, 7, 78, 2, 2, 1712, 1713, 7, 78, 2, 2, 1713, 10, 3, 2, 2, 2, 1714, 1715, 7, 67, 2, 2, 1715, 1716, 7, 78, 2, 2, 1716, 1717, 7, 78, 2, 2, 1717, 1718, 7, 81, 2, 2, 1718, 1719, 7, 89, 2, 2, 1719, 1720, 7, 97, 2, 2, 1720, 1721, 7, 69, 2, 2, 1721, 1722, 7, 81, 2, 2, 1722, 1723, 7, 80, 2, 2, 1723, 1724, 7, 80, 2, 2, 1724, 1725, 7, 71, 2, 2, 1725, 1726, 7, 69, 2, 2, 1726, 1727, 7, 86, 2, 2, 1727, 1728, 7, 75, 2, 2, 1728, 1729, 7, 81, 2, 2, 1729, 1730, 7, 80, 2, 2, 1730, 1731, 7, 85, 2, 2, 1731, 12, 3, 2, 2, 2, 1732, 1733, 7, 67, 2, 2, 1733, 1734, 7, 78, 2, 2, 1734, 1735, 7, 78, 2, 2, 1735, 1736, 7, 81, 2, 2, 1736, 1737, 7, 89, 2, 2, 1737, 1738, 7, 97, 2, 2, 1738, 1739, 7, 79, 2, 2, 1739, 1740, 7, 87, 2, 2, 1740, 1741, 7, 78, 2, 2, 1741, 1742, 7, 86, 2, 2, 1742, 1743, 7, 75, 2, 2, 1743, 1744, 7, 82, 2, 2, 1744, 1745, 7, 78, 2, 2, 1745, 1746, 7, 71, 2, 2, 1746, 1747, 7, 97, 2, 2, 1747, 1748, 7, 71, 2, 2, 1748, 1749, 7, 88, 2, 2, 1749, 1750, 7, 71, 2, 2, 1750, 1751, 7, 80, 2, 2, 1751, 1752, 7, 86, 2, 2, 1752, 1753, 7, 97, 2, 2, 1753, 1754, 7, 78, 2, 2, 1754, 1755, 7, 81, 2, 2, 1755, 1756, 7, 85, 2, 2, 1756, 1757, 7, 85, 2, 2, 1757, 14, 3, 2, 2, 2, 1758, 1759, 7, 67, 2, 2, 1759, 1760, 7, 78, 2, 2, 1760, 1761, 7, 78, 2, 2, 1761, 1762, 7, 81, 2, 2, 1762, 1763, 7, 89, 2, 2, 1763, 1764, 7, 97, 2, 2, 1764, 1765, 7, 85, 2, 2, 1765, 1766, 7, 75, 2, 2, 1766, 1767, 7, 80, 2, 2, 1767, 1768, 7, 73, 2, 2, 1768, 1769, 7, 78, 2, 2, 1769, 1770, 7, 71, 2, 2, 1770, 1771, 7, 97, 2, 2, 1771, 1772, 7, 71, 2, 2, 1772, 1773, 7, 88, 2, 2, 1773, 1774, 7, 71, 2, 2, 1774, 1775, 7, 80, 2, 2, 1775, 1776, 7, 86, 2, 2, 1776, 1777, 7, 97, 2, 2, 1777, 1778, 7, 78, 2, 2, 1778, 1779, 7, 81, 2, 2, 1779, 1780, 7, 85, 2, 2, 1780, 1781, 7, 85, 2, 2, 1781, 16, 3, 2, 2, 2, 1782, 1783, 7, 67, 2, 2, 1783, 1784, 7, 78, 2, 2, 1784, 1785, 7, 86, 2, 2, 1785, 1786, 7, 71, 2, 2, 1786, 1787, 7, 84, 2, 2, 1787, 18, 3, 2, 2, 2, 1788, 1789, 7, 67, 2, 2, 1789, 1790, 7, 80, 2, 2, 1790, 1791, 7, 70, 2, 2, 1791, 20, 3, 2, 2, 2, 1792, 1793, 7, 67, 2, 2, 1793, 1794, 7, 80, 2, 2, 1794, 1795, 7, 81, 2, 2, 1795, 1796, 7, 80, 2, 2, 1796, 1797, 7, 91, 2, 2, 1797, 1798, 7, 79, 2, 2, 1798, 1799, 7, 81, 2, 2, 1799, 1800, 7, 87, 2, 2, 1800, 1801, 7, 85, 2, 2, 1801, 22, 3, 2, 2, 2, 1802, 1803, 7, 67, 2, 2, 1803, 1804, 7, 80, 2, 2, 1804, 1805, 7, 91, 2, 2, 1805, 24, 3, 2, 2, 2, 1806, 1807, 7, 67, 2, 2, 1807, 1808, 7, 82, 2, 2, 1808, 1809, 7, 82, 2, 2, 1809, 1810, 7, 71, 2, 2, 1810, 1811, 7, 80, 2, 2, 1811, 1812, 7, 70, 2, 2, 1812, 26, 3, 2, 2, 2, 1813, 1814, 7, 67, 2, 2, 1814, 1815, 7, 82, 2, 2, 1815, 1816, 7, 82, 2, 2, 1816, 1817, 7, 78, 2, 2, 1817, 1818, 7, 75, 2, 2, 1818, 1819, 7, 69, 2, 2, 1819, 1820, 7, 67, 2, 2, 1820, 1821, 7, 86, 2, 2, 1821, 1822, 7, 75, 2, 2, 1822, 1823, 7, 81, 2, 2, 1823, 1824, 7, 80, 2, 2, 1824, 28, 3, 2, 2, 2, 1825, 1826, 7, 67, 2, 2, 1826, 1827, 7, 85, 2, 2, 1827, 30, 3, 2, 2, 2, 1828, 1829, 7, 67, 2, 2, 1829, 1830, 7, 85, 2, 2, 1830, 1831, 7, 69, 2, 2, 1831, 32, 3, 2, 2, 2, 1832, 1833, 7, 67, 2, 2, 1833, 1834, 7, 85, 2, 2, 1834, 1835, 7, 91, 2, 2, 1835, 1836, 7, 79, 2, 2, 1836, 1837, 7, 79, 2, 2, 1837, 1838, 7, 71, 2, 2, 1838, 1839, 7, 86, 2, 2, 1839, 1840, 7, 84, 2, 2, 1840, 1841, 7, 75, 2, 2, 1841, 1842, 7, 69, 2, 2, 1842, 34, 3, 2, 2, 2, 1843, 1844, 7, 67, 2, 2, 1844, 1845, 7, 85, 2, 2, 1845, 1846, 7, 91, 2, 2, 1846, 1847, 7, 80, 2, 2, 1847, 1848, 7, 69, 2, 2, 1848, 1849, 7, 74, 2, 2, 1849, 1850, 7, 84, 2, 2, 1850, 1851, 7, 81, 2, 2, 1851, 1852, 7, 80, 2, 2, 1852, 1853, 7, 81, 2, 2, 1853, 1854, 7, 87, 2, 2, 1854, 1855, 7, 85, 2, 2, 1855, 1856, 7, 97, 2, 2, 1856, 1857, 7, 69, 2, 2, 1857, 1858, 7, 81, 2, 2, 1858, 1859, 7, 79, 2, 2, 1859, 1860, 7, 79, 2, 2, 1860, 1861, 7, 75, 2, 2, 1861, 1862, 7, 86, 2, 2, 1862, 36, 3, 2, 2, 2, 1863, 1864, 7, 67, 2, 2, 1864, 1865, 7, 87, 2, 2, 1865, 1866, 7, 86, 2, 2, 1866, 1867, 7, 74, 2, 2, 1867, 1868, 7, 81, 2, 2, 1868, 1869, 7, 84, 2, 2, 1869, 1870, 7, 75, 2, 2, 1870, 1871, 7, 92, 2, 2, 1871, 1872, 7, 67, 2, 2, 1872, 1873, 7, 86, 2, 2, 1873, 1874, 7, 75, 2, 2, 1874, 1875, 7, 81, 2, 2, 1875, 1876, 7, 80, 2, 2, 1876, 38, 3, 2, 2, 2, 1877, 1878, 7, 67, 2, 2, 1878, 1879, 7, 87, 2, 2, 1879, 1880, 7, 86, 2, 2, 1880, 1881, 7, 74, 2, 2, 1881, 1882, 7, 71, 2, 2, 1882, 1883, 7, 80, 2, 2, 1883, 1884, 7, 86, 2, 2, 1884, 1885, 7, 75, 2, 2, 1885, 1886, 7, 69, 2, 2, 1886, 1887, 7, 67, 2, 2, 1887, 1888, 7, 86, 2, 2, 1888, 1889, 7, 75, 2, 2, 1889, 1890, 7, 81, 2, 2, 1890, 1891, 7, 80, 2, 2, 1891, 40, 3, 2, 2, 2, 1892, 1893, 7, 67, 2, 2, 1893, 1894, 7, 87, 2, 2, 1894, 1895, 7, 86, 2, 2, 1895, 1896, 7, 81, 2, 2, 1896, 1897, 7, 79, 2, 2, 1897, 1898, 7, 67, 2, 2, 1898, 1899, 7, 86, 2, 2, 1899, 1900, 7, 71, 2, 2, 1900, 1901, 7, 70, 2, 2, 1901, 1902, 7, 97, 2, 2, 1902, 1903, 7, 68, 2, 2, 1903, 1904, 7, 67, 2, 2, 1904, 1905, 7, 69, 2, 2, 1905, 1906, 7, 77, 2, 2, 1906, 1907, 7, 87, 2, 2, 1907, 1908, 7, 82, 2, 2, 1908, 1909, 7, 97, 2, 2, 1909, 1910, 7, 82, 2, 2, 1910, 1911, 7, 84, 2, 2, 1911, 1912, 7, 71, 2, 2, 1912, 1913, 7, 72, 2, 2, 1913, 1914, 7, 71, 2, 2, 1914, 1915, 7, 84, 2, 2, 1915, 1916, 7, 71, 2, 2, 1916, 1917, 7, 80, 2, 2, 1917, 1918, 7, 69, 2, 2, 1918, 1919, 7, 71, 2, 2, 1919, 42, 3, 2, 2, 2, 1920, 1921, 7, 67, 2, 2, 1921, 1922, 7, 87, 2, 2, 1922, 1923, 7, 86, 2, 2, 1923, 1924, 7, 81, 2, 2, 1924, 1925, 7, 79, 2, 2, 1925, 1926, 7, 67, 2, 2, 1926, 1927, 7, 86, 2, 2, 1927, 1928, 7, 75, 2, 2, 1928, 1929, 7, 69, 2, 2, 1929, 44, 3, 2, 2, 2, 1930, 1931, 7, 67, 2, 2, 1931, 1932, 7, 88, 2, 2, 1932, 1933, 7, 67, 2, 2, 1933, 1934, 7, 75, 2, 2, 1934, 1935, 7, 78, 2, 2, 1935, 1936, 7, 67, 2, 2, 1936, 1937, 7, 68, 2, 2, 1937, 1938, 7, 75, 2, 2, 1938, 1939, 7, 78, 2, 2, 1939, 1940, 7, 75, 2, 2, 1940, 1941, 7, 86, 2, 2, 1941, 1942, 7, 91, 2, 2, 1942, 1943, 7, 97, 2, 2, 1943, 1944, 7, 79, 2, 2, 1944, 1945, 7, 81, 2, 2, 1945, 1946, 7, 70, 2, 2, 1946, 1947, 7, 71, 2, 2, 1947, 46, 3, 2, 2, 2, 1948, 1949, 7, 94, 2, 2, 1949, 48, 3, 2, 2, 2, 1950, 1951, 7, 68, 2, 2, 1951, 1952, 7, 67, 2, 2, 1952, 1953, 7, 69, 2, 2, 1953, 1954, 7, 77, 2, 2, 1954, 1955, 7, 87, 2, 2, 1955, 1956, 7, 82, 2, 2, 1956, 50, 3, 2, 2, 2, 1957, 1958, 7, 68, 2, 2, 1958, 1959, 7, 71, 2, 2, 1959, 1960, 7, 72, 2, 2, 1960, 1961, 7, 81, 2, 2, 1961, 1962, 7, 84, 2, 2, 1962, 1963, 7, 71, 2, 2, 1963, 52, 3, 2, 2, 2, 1964, 1965, 7, 68, 2, 2, 1965, 1966, 7, 71, 2, 2, 1966, 1967, 7, 73, 2, 2, 1967, 1968, 7, 75, 2, 2, 1968, 1969, 7, 80, 2, 2, 1969, 54, 3, 2, 2, 2, 1970, 1971, 7, 68, 2, 2, 1971, 1972, 7, 71, 2, 2, 1972, 1973, 7, 86, 2, 2, 1973, 1974, 7, 89, 2, 2, 1974, 1975, 7, 71, 2, 2, 1975, 1976, 7, 71, 2, 2, 1976, 1977, 7, 80, 2, 2, 1977, 56, 3, 2, 2, 2, 1978, 1979, 7, 68, 2, 2, 1979, 1980, 7, 78, 2, 2, 1980, 1981, 7, 81, 2, 2, 1981, 1982, 7, 69, 2, 2, 1982, 1983, 7, 77, 2, 2, 1983, 58, 3, 2, 2, 2, 1984, 1985, 7, 68, 2, 2, 1985, 1986, 7, 78, 2, 2, 1986, 1987, 7, 81, 2, 2, 1987, 1988, 7, 69, 2, 2, 1988, 1989, 7, 77, 2, 2, 1989, 1990, 7, 85, 2, 2, 1990, 1991, 7, 75, 2, 2, 1991, 1992, 7, 92, 2, 2, 1992, 1993, 7, 71, 2, 2, 1993, 60, 3, 2, 2, 2, 1994, 1995, 7, 68, 2, 2, 1995, 1996, 7, 78, 2, 2, 1996, 1997, 7, 81, 2, 2, 1997, 1998, 7, 69, 2, 2, 1998, 1999, 7, 77, 2, 2, 1999, 2000, 7, 75, 2, 2, 2000, 2001, 7, 80, 2, 2, 2001, 2002, 7, 73, 2, 2, 2002, 2003, 7, 97, 2, 2, 2003, 2004, 7, 74, 2, 2, 2004, 2005, 7, 75, 2, 2, 2005, 2006, 7, 71, 2, 2, 2006, 2007, 7, 84, 2, 2, 2007, 2008, 7, 67, 2, 2, 2008, 2009, 7, 84, 2, 2, 2009, 2010, 7, 69, 2, 2, 2010, 2011, 7, 74, 2, 2, 2011, 2012, 7, 91, 2, 2, 2012, 62, 3, 2, 2, 2, 2013, 2014, 7, 68, 2, 2, 2014, 2015, 7, 84, 2, 2, 2015, 2016, 7, 71, 2, 2, 2016, 2017, 7, 67, 2, 2, 2017, 2018, 7, 77, 2, 2, 2018, 64, 3, 2, 2, 2, 2019, 2020, 7, 68, 2, 2, 2020, 2021, 7, 84, 2, 2, 2021, 2022, 7, 81, 2, 2, 2022, 2023, 7, 89, 2, 2, 2023, 2024, 7, 85, 2, 2, 2024, 2025, 7, 71, 2, 2, 2025, 66, 3, 2, 2, 2, 2026, 2027, 7, 68, 2, 2, 2027, 2028, 7, 87, 2, 2, 2028, 2029, 7, 72, 2, 2, 2029, 2030, 7, 72, 2, 2, 2030, 2031, 7, 71, 2, 2, 2031, 2032, 7, 84, 2, 2, 2032, 68, 3, 2, 2, 2, 2033, 2034, 7, 68, 2, 2, 2034, 2035, 7, 87, 2, 2, 2035, 2036, 7, 72, 2, 2, 2036, 2037, 7, 72, 2, 2, 2037, 2038, 7, 71, 2, 2, 2038, 2039, 7, 84, 2, 2, 2039, 2040, 7, 69, 2, 2, 2040, 2041, 7, 81, 2, 2, 2041, 2042, 7, 87, 2, 2, 2042, 2043, 7, 80, 2, 2, 2043, 2044, 7, 86, 2, 2, 2044, 70, 3, 2, 2, 2, 2045, 2046, 7, 68, 2, 2, 2046, 2047, 7, 87, 2, 2, 2047, 2048, 7, 78, 2, 2, 2048, 2049, 7, 77, 2, 2, 2049, 72, 3, 2, 2, 2, 2050, 2051, 7, 68, 2, 2, 2051, 2052, 7, 91, 2, 2, 2052, 74, 3, 2, 2, 2, 2053, 2054, 7, 69, 2, 2, 2054, 2055, 7, 67, 2, 2, 2055, 2056, 7, 69, 2, 2, 2056, 2057, 7, 74, 2, 2, 2057, 2058, 7, 71, 2, 2, 2058, 76, 3, 2, 2, 2, 2059, 2060, 7, 69, 2, 2, 2060, 2061, 7, 67, 2, 2, 2061, 2062, 7, 78, 2, 2, 2062, 2063, 7, 78, 2, 2, 2063, 2064, 7, 71, 2, 2, 2064, 2065, 7, 70, 2, 2, 2065, 78, 3, 2, 2, 2, 2066, 2067, 7, 69, 2, 2, 2067, 2068, 7, 67, 2, 2, 2068, 2069, 7, 85, 2, 2, 2069, 2070, 7, 69, 2, 2, 2070, 2071, 7, 67, 2, 2, 2071, 2072, 7, 70, 2, 2, 2072, 2073, 7, 71, 2, 2, 2073, 80, 3, 2, 2, 2, 2074, 2075, 7, 69, 2, 2, 2075, 2076, 7, 67, 2, 2, 2076, 2077, 7, 85, 2, 2, 2077, 2078, 7, 71, 2, 2, 2078, 82, 3, 2, 2, 2, 2079, 2080, 7, 69, 2, 2, 2080, 2081, 7, 71, 2, 2, 2081, 2082, 7, 84, 2, 2, 2082, 2083, 7, 86, 2, 2, 2083, 2084, 7, 75, 2, 2, 2084, 2085, 7, 72, 2, 2, 2085, 2086, 7, 75, 2, 2, 2086, 2087, 7, 69, 2, 2, 2087, 2088, 7, 67, 2, 2, 2088, 2089, 7, 86, 2, 2, 2089, 2090, 7, 71, 2, 2, 2090, 84, 3, 2, 2, 2, 2091, 2092, 7, 69, 2, 2, 2092, 2093, 7, 74, 2, 2, 2093, 2094, 7, 67, 2, 2, 2094, 2095, 7, 80, 2, 2, 2095, 2096, 7, 73, 2, 2, 2096, 2097, 7, 71, 2, 2, 2097, 2098, 7, 86, 2, 2, 2098, 2099, 7, 67, 2, 2, 2099, 2100, 7, 68, 2, 2, 2100, 2101, 7, 78, 2, 2, 2101, 2102, 7, 71, 2, 2, 2102, 86, 3, 2, 2, 2, 2103, 2104, 7, 69, 2, 2, 2104, 2105, 7, 74, 2, 2, 2105, 2106, 7, 67, 2, 2, 2106, 2107, 7, 80, 2, 2, 2107, 2108, 7, 73, 2, 2, 2108, 2109, 7, 71, 2, 2, 2109, 2110, 7, 85, 2, 2, 2110, 88, 3, 2, 2, 2, 2111, 2112, 7, 69, 2, 2, 2112, 2113, 7, 74, 2, 2, 2113, 2114, 7, 71, 2, 2, 2114, 2115, 7, 69, 2, 2, 2115, 2116, 7, 77, 2, 2, 2116, 90, 3, 2, 2, 2, 2117, 2118, 7, 69, 2, 2, 2118, 2119, 7, 74, 2, 2, 2119, 2120, 7, 71, 2, 2, 2120, 2121, 7, 69, 2, 2, 2121, 2122, 7, 77, 2, 2, 2122, 2123, 7, 82, 2, 2, 2123, 2124, 7, 81, 2, 2, 2124, 2125, 7, 75, 2, 2, 2125, 2126, 7, 80, 2, 2, 2126, 2127, 7, 86, 2, 2, 2127, 92, 3, 2, 2, 2, 2128, 2129, 7, 69, 2, 2, 2129, 2130, 7, 74, 2, 2, 2130, 2131, 7, 71, 2, 2, 2131, 2132, 7, 69, 2, 2, 2132, 2133, 7, 77, 2, 2, 2133, 2134, 7, 97, 2, 2, 2134, 2135, 7, 82, 2, 2, 2135, 2136, 7, 81, 2, 2, 2136, 2137, 7, 78, 2, 2, 2137, 2138, 7, 75, 2, 2, 2138, 2139, 7, 69, 2, 2, 2139, 2140, 7, 91, 2, 2, 2140, 94, 3, 2, 2, 2, 2141, 2142, 7, 69, 2, 2, 2142, 2143, 7, 74, 2, 2, 2143, 2144, 7, 71, 2, 2, 2144, 2145, 7, 69, 2, 2, 2145, 2146, 7, 77, 2, 2, 2146, 2147, 7, 97, 2, 2, 2147, 2148, 7, 71, 2, 2, 2148, 2149, 7, 90, 2, 2, 2149, 2150, 7, 82, 2, 2, 2150, 2151, 7, 75, 2, 2, 2151, 2152, 7, 84, 2, 2, 2152, 2153, 7, 67, 2, 2, 2153, 2154, 7, 86, 2, 2, 2154, 2155, 7, 75, 2, 2, 2155, 2156, 7, 81, 2, 2, 2156, 2157, 7, 80, 2, 2, 2157, 96, 3, 2, 2, 2, 2158, 2159, 7, 69, 2, 2, 2159, 2160, 7, 78, 2, 2, 2160, 2161, 7, 67, 2, 2, 2161, 2162, 7, 85, 2, 2, 2162, 2163, 7, 85, 2, 2, 2163, 2164, 7, 75, 2, 2, 2164, 2165, 7, 72, 2, 2, 2165, 2166, 7, 75, 2, 2, 2166, 2167, 7, 71, 2, 2, 2167, 2168, 7, 84, 2, 2, 2168, 2169, 7, 97, 2, 2, 2169, 2170, 7, 72, 2, 2, 2170, 2171, 7, 87, 2, 2, 2171, 2172, 7, 80, 2, 2, 2172, 2173, 7, 69, 2, 2, 2173, 2174, 7, 86, 2, 2, 2174, 2175, 7, 75, 2, 2, 2175, 2176, 7, 81, 2, 2, 2176, 2177, 7, 80, 2, 2, 2177, 98, 3, 2, 2, 2, 2178, 2179, 7, 69, 2, 2, 2179, 2180, 7, 78, 2, 2, 2180, 2181, 7, 81, 2, 2, 2181, 2182, 7, 85, 2, 2, 2182, 2183, 7, 71, 2, 2, 2183, 100, 3, 2, 2, 2, 2184, 2185, 7, 69, 2, 2, 2185, 2186, 7, 78, 2, 2, 2186, 2187, 7, 87, 2, 2, 2187, 2188, 7, 85, 2, 2, 2188, 2189, 7, 86, 2, 2, 2189, 2190, 7, 71, 2, 2, 2190, 2191, 7, 84, 2, 2, 2191, 102, 3, 2, 2, 2, 2192, 2193, 7, 69, 2, 2, 2193, 2194, 7, 78, 2, 2, 2194, 2195, 7, 87, 2, 2, 2195, 2196, 7, 85, 2, 2, 2196, 2197, 7, 86, 2, 2, 2197, 2198, 7, 71, 2, 2, 2198, 2199, 7, 84, 2, 2, 2199, 2200, 7, 71, 2, 2, 2200, 2201, 7, 70, 2, 2, 2201, 104, 3, 2, 2, 2, 2202, 2203, 7, 69, 2, 2, 2203, 2204, 7, 81, 2, 2, 2204, 2205, 7, 67, 2, 2, 2205, 2206, 7, 78, 2, 2, 2206, 2207, 7, 71, 2, 2, 2207, 2208, 7, 85, 2, 2, 2208, 2209, 7, 69, 2, 2, 2209, 2210, 7, 71, 2, 2, 2210, 106, 3, 2, 2, 2, 2211, 2212, 7, 69, 2, 2, 2212, 2213, 7, 81, 2, 2, 2213, 2214, 7, 78, 2, 2, 2214, 2215, 7, 78, 2, 2, 2215, 2216, 7, 67, 2, 2, 2216, 2217, 7, 86, 2, 2, 2217, 2218, 7, 71, 2, 2, 2218, 108, 3, 2, 2, 2, 2219, 2220, 7, 69, 2, 2, 2220, 2221, 7, 81, 2, 2, 2221, 2222, 7, 78, 2, 2, 2222, 2223, 7, 87, 2, 2, 2223, 2224, 7, 79, 2, 2, 2224, 2225, 7, 80, 2, 2, 2225, 110, 3, 2, 2, 2, 2226, 2227, 7, 69, 2, 2, 2227, 2228, 7, 81, 2, 2, 2228, 2229, 7, 79, 2, 2, 2229, 2230, 7, 82, 2, 2, 2230, 2231, 7, 84, 2, 2, 2231, 2232, 7, 71, 2, 2, 2232, 2233, 7, 85, 2, 2, 2233, 2234, 7, 85, 2, 2, 2234, 2235, 7, 75, 2, 2, 2235, 2236, 7, 81, 2, 2, 2236, 2237, 7, 80, 2, 2, 2237, 112, 3, 2, 2, 2, 2238, 2239, 7, 69, 2, 2, 2239, 2240, 7, 81, 2, 2, 2240, 2241, 7, 79, 2, 2, 2241, 2242, 7, 79, 2, 2, 2242, 2243, 7, 75, 2, 2, 2243, 2244, 7, 86, 2, 2, 2244, 114, 3, 2, 2, 2, 2245, 2246, 7, 69, 2, 2, 2246, 2247, 7, 81, 2, 2, 2247, 2248, 7, 79, 2, 2, 2248, 2249, 7, 82, 2, 2, 2249, 2250, 7, 87, 2, 2, 2250, 2251, 7, 86, 2, 2, 2251, 2252, 7, 71, 2, 2, 2252, 116, 3, 2, 2, 2, 2253, 2254, 7, 69, 2, 2, 2254, 2255, 7, 81, 2, 2, 2255, 2256, 7, 80, 2, 2, 2256, 2257, 7, 72, 2, 2, 2257, 2258, 7, 75, 2, 2, 2258, 2259, 7, 73, 2, 2, 2259, 2260, 7, 87, 2, 2, 2260, 2261, 7, 84, 2, 2, 2261, 2262, 7, 67, 2, 2, 2262, 2263, 7, 86, 2, 2, 2263, 2264, 7, 75, 2, 2, 2264, 2265, 7, 81, 2, 2, 2265, 2266, 7, 80, 2, 2, 2266, 118, 3, 2, 2, 2, 2267, 2268, 7, 69, 2, 2, 2268, 2269, 7, 81, 2, 2, 2269, 2270, 7, 80, 2, 2, 2270, 2271, 7, 85, 2, 2, 2271, 2272, 7, 86, 2, 2, 2272, 2273, 7, 84, 2, 2, 2273, 2274, 7, 67, 2, 2, 2274, 2275, 7, 75, 2, 2, 2275, 2276, 7, 80, 2, 2, 2276, 2277, 7, 86, 2, 2, 2277, 120, 3, 2, 2, 2, 2278, 2279, 7, 69, 2, 2, 2279, 2280, 7, 81, 2, 2, 2280, 2281, 7, 80, 2, 2, 2281, 2282, 7, 86, 2, 2, 2282, 2283, 7, 67, 2, 2, 2283, 2284, 7, 75, 2, 2, 2284, 2285, 7, 80, 2, 2, 2285, 2286, 7, 79, 2, 2, 2286, 2287, 7, 71, 2, 2, 2287, 2288, 7, 80, 2, 2, 2288, 2289, 7, 86, 2, 2, 2289, 122, 3, 2, 2, 2, 2290, 2291, 7, 69, 2, 2, 2291, 2292, 7, 81, 2, 2, 2292, 2293, 7, 80, 2, 2, 2293, 2294, 7, 86, 2, 2, 2294, 2295, 7, 67, 2, 2, 2295, 2296, 7, 75, 2, 2, 2296, 2297, 7, 80, 2, 2, 2297, 2298, 7, 85, 2, 2, 2298, 124, 3, 2, 2, 2, 2299, 2300, 7, 69, 2, 2, 2300, 2301, 7, 81, 2, 2, 2301, 2302, 7, 80, 2, 2, 2302, 2303, 7, 86, 2, 2, 2303, 2304, 7, 67, 2, 2, 2304, 2305, 7, 75, 2, 2, 2305, 2306, 7, 80, 2, 2, 2306, 2307, 7, 85, 2, 2, 2307, 2308, 7, 86, 2, 2, 2308, 2309, 7, 67, 2, 2, 2309, 2310, 7, 68, 2, 2, 2310, 2311, 7, 78, 2, 2, 2311, 2312, 7, 71, 2, 2, 2312, 126, 3, 2, 2, 2, 2313, 2314, 7, 69, 2, 2, 2314, 2315, 7, 81, 2, 2, 2315, 2316, 7, 80, 2, 2, 2316, 2317, 7, 86, 2, 2, 2317, 2318, 7, 71, 2, 2, 2318, 2319, 7, 90, 2, 2, 2319, 2320, 7, 86, 2, 2, 2320, 128, 3, 2, 2, 2, 2321, 2322, 7, 69, 2, 2, 2322, 2323, 7, 81, 2, 2, 2323, 2324, 7, 80, 2, 2, 2324, 2325, 7, 86, 2, 2, 2325, 2326, 7, 75, 2, 2, 2326, 2327, 7, 80, 2, 2, 2327, 2328, 7, 87, 2, 2, 2328, 2329, 7, 71, 2, 2, 2329, 130, 3, 2, 2, 2, 2330, 2331, 7, 69, 2, 2, 2331, 2332, 7, 81, 2, 2, 2332, 2333, 7, 80, 2, 2, 2333, 2334, 7, 86, 2, 2, 2334, 2335, 7, 75, 2, 2, 2335, 2336, 7, 80, 2, 2, 2336, 2337, 7, 87, 2, 2, 2337, 2338, 7, 71, 2, 2, 2338, 2339, 7, 97, 2, 2, 2339, 2340, 7, 67, 2, 2, 2340, 2341, 7, 72, 2, 2, 2341, 2342, 7, 86, 2, 2, 2342, 2343, 7, 71, 2, 2, 2343, 2344, 7, 84, 2, 2, 2344, 2345, 7, 97, 2, 2, 2345, 2346, 7, 71, 2, 2, 2346, 2347, 7, 84, 2, 2, 2347, 2348, 7, 84, 2, 2, 2348, 2349, 7, 81, 2, 2, 2349, 2350, 7, 84, 2, 2, 2350, 132, 3, 2, 2, 2, 2351, 2352, 7, 69, 2, 2, 2352, 2353, 7, 81, 2, 2, 2353, 2354, 7, 80, 2, 2, 2354, 2355, 7, 86, 2, 2, 2355, 2356, 7, 84, 2, 2, 2356, 2357, 7, 67, 2, 2, 2357, 2358, 7, 69, 2, 2, 2358, 2359, 7, 86, 2, 2, 2359, 134, 3, 2, 2, 2, 2360, 2361, 7, 69, 2, 2, 2361, 2362, 7, 81, 2, 2, 2362, 2363, 7, 80, 2, 2, 2363, 2364, 7, 86, 2, 2, 2364, 2365, 7, 84, 2, 2, 2365, 2366, 7, 67, 2, 2, 2366, 2367, 7, 69, 2, 2, 2367, 2368, 7, 86, 2, 2, 2368, 2369, 7, 97, 2, 2, 2369, 2370, 7, 80, 2, 2, 2370, 2371, 7, 67, 2, 2, 2371, 2372, 7, 79, 2, 2, 2372, 2373, 7, 71, 2, 2, 2373, 136, 3, 2, 2, 2, 2374, 2375, 7, 69, 2, 2, 2375, 2376, 7, 81, 2, 2, 2376, 2377, 7, 80, 2, 2, 2377, 2378, 7, 88, 2, 2, 2378, 2379, 7, 71, 2, 2, 2379, 2380, 7, 84, 2, 2, 2380, 2381, 7, 85, 2, 2, 2381, 2382, 7, 67, 2, 2, 2382, 2383, 7, 86, 2, 2, 2383, 2384, 7, 75, 2, 2, 2384, 2385, 7, 81, 2, 2, 2385, 2386, 7, 80, 2, 2, 2386, 138, 3, 2, 2, 2, 2387, 2388, 7, 86, 2, 2, 2388, 2389, 7, 84, 2, 2, 2389, 2390, 7, 91, 2, 2, 2390, 2392, 7, 97, 2, 2, 2391, 2387, 3, 2, 2, 2, 2391, 2392, 3, 2, 2, 2, 2392, 2393, 3, 2, 2, 2, 2393, 2394, 7, 69, 2, 2, 2394, 2395, 7, 81, 2, 2, 2395, 2396, 7, 80, 2, 2, 2396, 2397, 7, 88, 2, 2, 2397, 2398, 7, 71, 2, 2, 2398, 2399, 7, 84, 2, 2, 2399, 2400, 7, 86, 2, 2, 2400, 140, 3, 2, 2, 2, 2401, 2402, 7, 69, 2, 2, 2402, 2403, 7, 81, 2, 2, 2403, 2404, 7, 82, 2, 2, 2404, 2405, 7, 91, 2, 2, 2405, 2406, 7, 97, 2, 2, 2406, 2407, 7, 81, 2, 2, 2407, 2408, 7, 80, 2, 2, 2408, 2409, 7, 78, 2, 2, 2409, 2410, 7, 91, 2, 2, 2410, 142, 3, 2, 2, 2, 2411, 2412, 7, 69, 2, 2, 2412, 2413, 7, 84, 2, 2, 2413, 2414, 7, 71, 2, 2, 2414, 2415, 7, 67, 2, 2, 2415, 2416, 7, 86, 2, 2, 2416, 2417, 7, 71, 2, 2, 2417, 144, 3, 2, 2, 2, 2418, 2419, 7, 69, 2, 2, 2419, 2420, 7, 84, 2, 2, 2420, 2421, 7, 81, 2, 2, 2421, 2422, 7, 85, 2, 2, 2422, 2423, 7, 85, 2, 2, 2423, 146, 3, 2, 2, 2, 2424, 2425, 7, 69, 2, 2, 2425, 2426, 7, 87, 2, 2, 2426, 2427, 7, 84, 2, 2, 2427, 2428, 7, 84, 2, 2, 2428, 2429, 7, 71, 2, 2, 2429, 2430, 7, 80, 2, 2, 2430, 2431, 7, 86, 2, 2, 2431, 148, 3, 2, 2, 2, 2432, 2433, 7, 69, 2, 2, 2433, 2434, 7, 87, 2, 2, 2434, 2435, 7, 84, 2, 2, 2435, 2436, 7, 84, 2, 2, 2436, 2437, 7, 71, 2, 2, 2437, 2438, 7, 80, 2, 2, 2438, 2439, 7, 86, 2, 2, 2439, 2440, 7, 97, 2, 2, 2440, 2441, 7, 70, 2, 2, 2441, 2442, 7, 67, 2, 2, 2442, 2443, 7, 86, 2, 2, 2443, 2444, 7, 71, 2, 2, 2444, 150, 3, 2, 2, 2, 2445, 2446, 7, 69, 2, 2, 2446, 2447, 7, 87, 2, 2, 2447, 2448, 7, 84, 2, 2, 2448, 2449, 7, 84, 2, 2, 2449, 2450, 7, 71, 2, 2, 2450, 2451, 7, 80, 2, 2, 2451, 2452, 7, 86, 2, 2, 2452, 2453, 7, 97, 2, 2, 2453, 2454, 7, 86, 2, 2, 2454, 2455, 7, 75, 2, 2, 2455, 2456, 7, 79, 2, 2, 2456, 2457, 7, 71, 2, 2, 2457, 152, 3, 2, 2, 2, 2458, 2459, 7, 69, 2, 2, 2459, 2460, 7, 87, 2, 2, 2460, 2461, 7, 84, 2, 2, 2461, 2462, 7, 84, 2, 2, 2462, 2463, 7, 71, 2, 2, 2463, 2464, 7, 80, 2, 2, 2464, 2465, 7, 86, 2, 2, 2465, 2466, 7, 97, 2, 2, 2466, 2467, 7, 86, 2, 2, 2467, 2468, 7, 75, 2, 2, 2468, 2469, 7, 79, 2, 2, 2469, 2470, 7, 71, 2, 2, 2470, 2471, 7, 85, 2, 2, 2471, 2472, 7, 86, 2, 2, 2472, 2473, 7, 67, 2, 2, 2473, 2474, 7, 79, 2, 2, 2474, 2475, 7, 82, 2, 2, 2475, 154, 3, 2, 2, 2, 2476, 2477, 7, 69, 2, 2, 2477, 2478, 7, 87, 2, 2, 2478, 2479, 7, 84, 2, 2, 2479, 2480, 7, 84, 2, 2, 2480, 2481, 7, 71, 2, 2, 2481, 2482, 7, 80, 2, 2, 2482, 2483, 7, 86, 2, 2, 2483, 2484, 7, 97, 2, 2, 2484, 2485, 7, 87, 2, 2, 2485, 2486, 7, 85, 2, 2, 2486, 2487, 7, 71, 2, 2, 2487, 2488, 7, 84, 2, 2, 2488, 156, 3, 2, 2, 2, 2489, 2490, 7, 69, 2, 2, 2490, 2491, 7, 87, 2, 2, 2491, 2492, 7, 84, 2, 2, 2492, 2493, 7, 85, 2, 2, 2493, 2494, 7, 81, 2, 2, 2494, 2495, 7, 84, 2, 2, 2495, 158, 3, 2, 2, 2, 2496, 2497, 7, 69, 2, 2, 2497, 2498, 7, 91, 2, 2, 2498, 2499, 7, 69, 2, 2, 2499, 2500, 7, 78, 2, 2, 2500, 2501, 7, 71, 2, 2, 2501, 160, 3, 2, 2, 2, 2502, 2503, 7, 70, 2, 2, 2503, 2504, 7, 67, 2, 2, 2504, 2505, 7, 86, 2, 2, 2505, 2506, 7, 67, 2, 2, 2506, 2507, 7, 97, 2, 2, 2507, 2508, 7, 69, 2, 2, 2508, 2509, 7, 81, 2, 2, 2509, 2510, 7, 79, 2, 2, 2510, 2511, 7, 82, 2, 2, 2511, 2512, 7, 84, 2, 2, 2512, 2513, 7, 71, 2, 2, 2513, 2514, 7, 85, 2, 2, 2514, 2515, 7, 85, 2, 2, 2515, 2516, 7, 75, 2, 2, 2516, 2517, 7, 81, 2, 2, 2517, 2518, 7, 80, 2, 2, 2518, 162, 3, 2, 2, 2, 2519, 2520, 7, 70, 2, 2, 2520, 2521, 7, 67, 2, 2, 2521, 2522, 7, 86, 2, 2, 2522, 2523, 7, 67, 2, 2, 2523, 2524, 7, 97, 2, 2, 2524, 2525, 7, 85, 2, 2, 2525, 2526, 7, 81, 2, 2, 2526, 2527, 7, 87, 2, 2, 2527, 2528, 7, 84, 2, 2, 2528, 2529, 7, 69, 2, 2, 2529, 2530, 7, 71, 2, 2, 2530, 164, 3, 2, 2, 2, 2531, 2532, 7, 70, 2, 2, 2532, 2533, 7, 67, 2, 2, 2533, 2534, 7, 86, 2, 2, 2534, 2535, 7, 67, 2, 2, 2535, 2536, 7, 68, 2, 2, 2536, 2537, 7, 67, 2, 2, 2537, 2538, 7, 85, 2, 2, 2538, 2539, 7, 71, 2, 2, 2539, 166, 3, 2, 2, 2, 2540, 2541, 7, 70, 2, 2, 2541, 2542, 7, 67, 2, 2, 2542, 2543, 7, 86, 2, 2, 2543, 2544, 7, 67, 2, 2, 2544, 2545, 7, 68, 2, 2, 2545, 2546, 7, 67, 2, 2, 2546, 2547, 7, 85, 2, 2, 2547, 2548, 7, 71, 2, 2, 2548, 2549, 7, 97, 2, 2, 2549, 2550, 7, 79, 2, 2, 2550, 2551, 7, 75, 2, 2, 2551, 2552, 7, 84, 2, 2, 2552, 2553, 7, 84, 2, 2, 2553, 2554, 7, 81, 2, 2, 2554, 2555, 7, 84, 2, 2, 2555, 2556, 7, 75, 2, 2, 2556, 2557, 7, 80, 2, 2, 2557, 2558, 7, 73, 2, 2, 2558, 168, 3, 2, 2, 2, 2559, 2560, 7, 70, 2, 2, 2560, 2561, 7, 68, 2, 2, 2561, 2562, 7, 69, 2, 2, 2562, 2563, 7, 69, 2, 2, 2563, 170, 3, 2, 2, 2, 2564, 2565, 7, 70, 2, 2, 2565, 2566, 7, 71, 2, 2, 2566, 2567, 7, 67, 2, 2, 2567, 2568, 7, 78, 2, 2, 2568, 2569, 7, 78, 2, 2, 2569, 2570, 7, 81, 2, 2, 2570, 2571, 7, 69, 2, 2, 2571, 2572, 7, 67, 2, 2, 2572, 2573, 7, 86, 2, 2, 2573, 2574, 7, 71, 2, 2, 2574, 172, 3, 2, 2, 2, 2575, 2576, 7, 70, 2, 2, 2576, 2577, 7, 71, 2, 2, 2577, 2578, 7, 69, 2, 2, 2578, 2579, 7, 78, 2, 2, 2579, 2580, 7, 67, 2, 2, 2580, 2581, 7, 84, 2, 2, 2581, 2582, 7, 71, 2, 2, 2582, 174, 3, 2, 2, 2, 2583, 2584, 7, 70, 2, 2, 2584, 2585, 7, 71, 2, 2, 2585, 2586, 7, 72, 2, 2, 2586, 2587, 7, 67, 2, 2, 2587, 2588, 7, 87, 2, 2, 2588, 2589, 7, 78, 2, 2, 2589, 2590, 7, 86, 2, 2, 2590, 176, 3, 2, 2, 2, 2591, 2592, 7, 70, 2, 2, 2592, 2593, 7, 71, 2, 2, 2593, 2594, 7, 72, 2, 2, 2594, 2595, 7, 67, 2, 2, 2595, 2596, 7, 87, 2, 2, 2596, 2597, 7, 78, 2, 2, 2597, 2598, 7, 86, 2, 2, 2598, 2599, 7, 97, 2, 2, 2599, 2600, 7, 70, 2, 2, 2600, 2601, 7, 67, 2, 2, 2601, 2602, 7, 86, 2, 2, 2602, 2603, 7, 67, 2, 2, 2603, 2604, 7, 68, 2, 2, 2604, 2605, 7, 67, 2, 2, 2605, 2606, 7, 85, 2, 2, 2606, 2607, 7, 71, 2, 2, 2607, 178, 3, 2, 2, 2, 2608, 2609, 7, 70, 2, 2, 2609, 2610, 7, 71, 2, 2, 2610, 2611, 7, 72, 2, 2, 2611, 2612, 7, 67, 2, 2, 2612, 2613, 7, 87, 2, 2, 2613, 2614, 7, 78, 2, 2, 2614, 2615, 7, 86, 2, 2, 2615, 2616, 7, 97, 2, 2, 2616, 2617, 7, 85, 2, 2, 2617, 2618, 7, 69, 2, 2, 2618, 2619, 7, 74, 2, 2, 2619, 2620, 7, 71, 2, 2, 2620, 2621, 7, 79, 2, 2, 2621, 2622, 7, 67, 2, 2, 2622, 180, 3, 2, 2, 2, 2623, 2624, 7, 70, 2, 2, 2624, 2625, 7, 71, 2, 2, 2625, 2626, 7, 78, 2, 2, 2626, 2627, 7, 71, 2, 2, 2627, 2628, 7, 86, 2, 2, 2628, 2629, 7, 71, 2, 2, 2629, 182, 3, 2, 2, 2, 2630, 2631, 7, 70, 2, 2, 2631, 2632, 7, 71, 2, 2, 2632, 2633, 7, 80, 2, 2, 2633, 2634, 7, 91, 2, 2, 2634, 184, 3, 2, 2, 2, 2635, 2636, 7, 70, 2, 2, 2636, 2637, 7, 71, 2, 2, 2637, 2638, 7, 85, 2, 2, 2638, 2639, 7, 69, 2, 2, 2639, 186, 3, 2, 2, 2, 2640, 2641, 7, 70, 2, 2, 2641, 2642, 7, 75, 2, 2, 2642, 2643, 7, 67, 2, 2, 2643, 2644, 7, 73, 2, 2, 2644, 2645, 7, 80, 2, 2, 2645, 2646, 7, 81, 2, 2, 2646, 2647, 7, 85, 2, 2, 2647, 2648, 7, 86, 2, 2, 2648, 2649, 7, 75, 2, 2, 2649, 2650, 7, 69, 2, 2, 2650, 2651, 7, 85, 2, 2, 2651, 188, 3, 2, 2, 2, 2652, 2653, 7, 70, 2, 2, 2653, 2654, 7, 75, 2, 2, 2654, 2655, 7, 72, 2, 2, 2655, 2656, 7, 72, 2, 2, 2656, 2657, 7, 71, 2, 2, 2657, 2658, 7, 84, 2, 2, 2658, 2659, 7, 71, 2, 2, 2659, 2660, 7, 80, 2, 2, 2660, 2661, 7, 86, 2, 2, 2661, 2662, 7, 75, 2, 2, 2662, 2663, 7, 67, 2, 2, 2663, 2664, 7, 78, 2, 2, 2664, 190, 3, 2, 2, 2, 2665, 2666, 7, 70, 2, 2, 2666, 2667, 7, 75, 2, 2, 2667, 2668, 7, 85, 2, 2, 2668, 2669, 7, 77, 2, 2, 2669, 192, 3, 2, 2, 2, 2670, 2671, 7, 70, 2, 2, 2671, 2672, 7, 75, 2, 2, 2672, 2673, 7, 85, 2, 2, 2673, 2674, 7, 86, 2, 2, 2674, 2675, 7, 75, 2, 2, 2675, 2676, 7, 80, 2, 2, 2676, 2677, 7, 69, 2, 2, 2677, 2678, 7, 86, 2, 2, 2678, 194, 3, 2, 2, 2, 2679, 2680, 7, 70, 2, 2, 2680, 2681, 7, 75, 2, 2, 2681, 2682, 7, 85, 2, 2, 2682, 2683, 7, 86, 2, 2, 2683, 2684, 7, 84, 2, 2, 2684, 2685, 7, 75, 2, 2, 2685, 2686, 7, 68, 2, 2, 2686, 2687, 7, 87, 2, 2, 2687, 2688, 7, 86, 2, 2, 2688, 2689, 7, 71, 2, 2, 2689, 2690, 7, 70, 2, 2, 2690, 196, 3, 2, 2, 2, 2691, 2692, 7, 70, 2, 2, 2692, 2693, 7, 81, 2, 2, 2693, 2694, 7, 87, 2, 2, 2694, 2695, 7, 68, 2, 2, 2695, 2696, 7, 78, 2, 2, 2696, 2697, 7, 71, 2, 2, 2697, 198, 3, 2, 2, 2, 2698, 2699, 7, 94, 2, 2, 2699, 2700, 7, 94, 2, 2, 2700, 200, 3, 2, 2, 2, 2701, 2702, 7, 49, 2, 2, 2702, 2703, 7, 49, 2, 2, 2703, 202, 3, 2, 2, 2, 2704, 2705, 7, 70, 2, 2, 2705, 2706, 7, 84, 2, 2, 2706, 2707, 7, 81, 2, 2, 2707, 2708, 7, 82, 2, 2, 2708, 204, 3, 2, 2, 2, 2709, 2710, 7, 70, 2, 2, 2710, 2711, 7, 86, 2, 2, 2711, 2712, 7, 69, 2, 2, 2712, 2713, 7, 97, 2, 2, 2713, 2714, 7, 85, 2, 2, 2714, 2715, 7, 87, 2, 2, 2715, 2716, 7, 82, 2, 2, 2716, 2717, 7, 82, 2, 2, 2717, 2718, 7, 81, 2, 2, 2718, 2719, 7, 84, 2, 2, 2719, 2720, 7, 86, 2, 2, 2720, 206, 3, 2, 2, 2, 2721, 2722, 7, 70, 2, 2, 2722, 2723, 7, 87, 2, 2, 2723, 2724, 7, 79, 2, 2, 2724, 2725, 7, 82, 2, 2, 2725, 208, 3, 2, 2, 2, 2726, 2727, 7, 71, 2, 2, 2727, 2728, 7, 78, 2, 2, 2728, 2729, 7, 85, 2, 2, 2729, 2730, 7, 71, 2, 2, 2730, 210, 3, 2, 2, 2, 2731, 2732, 7, 71, 2, 2, 2732, 2733, 7, 80, 2, 2, 2733, 2734, 7, 67, 2, 2, 2734, 2735, 7, 68, 2, 2, 2735, 2736, 7, 78, 2, 2, 2736, 2737, 7, 71, 2, 2, 2737, 2738, 7, 70, 2, 2, 2738, 212, 3, 2, 2, 2, 2739, 2740, 7, 71, 2, 2, 2740, 2741, 7, 80, 2, 2, 2741, 2742, 7, 70, 2, 2, 2742, 214, 3, 2, 2, 2, 2743, 2744, 7, 71, 2, 2, 2744, 2745, 7, 80, 2, 2, 2745, 2746, 7, 70, 2, 2, 2746, 2747, 7, 82, 2, 2, 2747, 2748, 7, 81, 2, 2, 2748, 2749, 7, 75, 2, 2, 2749, 2750, 7, 80, 2, 2, 2750, 2751, 7, 86, 2, 2, 2751, 216, 3, 2, 2, 2, 2752, 2753, 7, 71, 2, 2, 2753, 2754, 7, 84, 2, 2, 2754, 2755, 7, 84, 2, 2, 2755, 2756, 7, 78, 2, 2, 2756, 2757, 7, 88, 2, 2, 2757, 2758, 7, 78, 2, 2, 2758, 218, 3, 2, 2, 2, 2759, 2760, 7, 71, 2, 2, 2760, 2761, 7, 85, 2, 2, 2761, 2762, 7, 69, 2, 2, 2762, 2763, 7, 67, 2, 2, 2763, 2764, 7, 82, 2, 2, 2764, 2765, 7, 71, 2, 2, 2765, 220, 3, 2, 2, 2, 2766, 2767, 7, 71, 2, 2, 2767, 2768, 7, 84, 2, 2, 2768, 2769, 7, 84, 2, 2, 2769, 2770, 7, 81, 2, 2, 2770, 2771, 7, 84, 2, 2, 2771, 222, 3, 2, 2, 2, 2772, 2773, 7, 71, 2, 2, 2773, 2774, 7, 88, 2, 2, 2774, 2775, 7, 71, 2, 2, 2775, 2776, 7, 80, 2, 2, 2776, 2777, 7, 86, 2, 2, 2777, 224, 3, 2, 2, 2, 2778, 2779, 7, 71, 2, 2, 2779, 2780, 7, 88, 2, 2, 2780, 2781, 7, 71, 2, 2, 2781, 2782, 7, 80, 2, 2, 2782, 2783, 7, 86, 2, 2, 2783, 2784, 7, 70, 2, 2, 2784, 2785, 7, 67, 2, 2, 2785, 2786, 7, 86, 2, 2, 2786, 2787, 7, 67, 2, 2, 2787, 2788, 3, 2, 2, 2, 2788, 2789, 7, 42, 2, 2, 2789, 2790, 7, 43, 2, 2, 2790, 226, 3, 2, 2, 2, 2791, 2792, 7, 71, 2, 2, 2792, 2793, 7, 88, 2, 2, 2793, 2794, 7, 71, 2, 2, 2794, 2795, 7, 80, 2, 2, 2795, 2796, 7, 86, 2, 2, 2796, 2797, 7, 97, 2, 2, 2797, 2798, 7, 84, 2, 2, 2798, 2799, 7, 71, 2, 2, 2799, 2800, 7, 86, 2, 2, 2800, 2801, 7, 71, 2, 2, 2801, 2802, 7, 80, 2, 2, 2802, 2803, 7, 86, 2, 2, 2803, 2804, 7, 75, 2, 2, 2804, 2805, 7, 81, 2, 2, 2805, 2806, 7, 80, 2, 2, 2806, 2807, 7, 97, 2, 2, 2807, 2808, 7, 79, 2, 2, 2808, 2809, 7, 81, 2, 2, 2809, 2810, 7, 70, 2, 2, 2810, 2811, 7, 71, 2, 2, 2811, 228, 3, 2, 2, 2, 2812, 2813, 7, 71, 2, 2, 2813, 2814, 7, 90, 2, 2, 2814, 2815, 7, 69, 2, 2, 2815, 2816, 7, 71, 2, 2, 2816, 2817, 7, 82, 2, 2, 2817, 2818, 7, 86, 2, 2, 2818, 230, 3, 2, 2, 2, 2819, 2820, 7, 71, 2, 2, 2820, 2821, 7, 90, 2, 2, 2821, 2822, 7, 71, 2, 2, 2822, 2823, 7, 69, 2, 2, 2823, 2824, 7, 87, 2, 2, 2824, 2825, 7, 86, 2, 2, 2825, 2826, 7, 67, 2, 2, 2826, 2827, 7, 68, 2, 2, 2827, 2828, 7, 78, 2, 2, 2828, 2829, 7, 71, 2, 2, 2829, 2830, 7, 97, 2, 2, 2830, 2831, 7, 72, 2, 2, 2831, 2832, 7, 75, 2, 2, 2832, 2833, 7, 78, 2, 2, 2833, 2834, 7, 71, 2, 2, 2834, 232, 3, 2, 2, 2, 2835, 2836, 7, 71, 2, 2, 2836, 2837, 7, 90, 2, 2, 2837, 2838, 7, 71, 2, 2, 2838, 2839, 7, 69, 2, 2, 2839, 2843, 3, 2, 2, 2, 2840, 2841, 7, 87, 2, 2, 2841, 2842, 7, 86, 2, 2, 2842, 2844, 7, 71, 2, 2, 2843, 2840, 3, 2, 2, 2, 2843, 2844, 3, 2, 2, 2, 2844, 234, 3, 2, 2, 2, 2845, 2846, 7, 71, 2, 2, 2846, 2847, 7, 90, 2, 2, 2847, 2848, 7, 75, 2, 2, 2848, 2849, 7, 85, 2, 2, 2849, 2850, 7, 86, 2, 2, 2850, 2851, 7, 85, 2, 2, 2851, 236, 3, 2, 2, 2, 2852, 2853, 7, 71, 2, 2, 2853, 2854, 7, 90, 2, 2, 2854, 2855, 7, 82, 2, 2, 2855, 2856, 7, 75, 2, 2, 2856, 2857, 7, 84, 2, 2, 2857, 2858, 7, 71, 2, 2, 2858, 2859, 7, 70, 2, 2, 2859, 2860, 7, 67, 2, 2, 2860, 2861, 7, 86, 2, 2, 2861, 2862, 7, 71, 2, 2, 2862, 238, 3, 2, 2, 2, 2863, 2864, 7, 71, 2, 2, 2864, 2865, 7, 90, 2, 2, 2865, 2866, 7, 75, 2, 2, 2866, 2867, 7, 86, 2, 2, 2867, 240, 3, 2, 2, 2, 2868, 2869, 7, 71, 2, 2, 2869, 2870, 7, 90, 2, 2, 2870, 2871, 7, 86, 2, 2, 2871, 2872, 7, 71, 2, 2, 2872, 2873, 7, 80, 2, 2, 2873, 2874, 7, 85, 2, 2, 2874, 2875, 7, 75, 2, 2, 2875, 2876, 7, 81, 2, 2, 2876, 2877, 7, 80, 2, 2, 2877, 242, 3, 2, 2, 2, 2878, 2879, 7, 71, 2, 2, 2879, 2880, 7, 90, 2, 2, 2880, 2881, 7, 86, 2, 2, 2881, 2882, 7, 71, 2, 2, 2882, 2883, 7, 84, 2, 2, 2883, 2884, 7, 80, 2, 2, 2884, 2885, 7, 67, 2, 2, 2885, 2886, 7, 78, 2, 2, 2886, 244, 3, 2, 2, 2, 2887, 2888, 7, 71, 2, 2, 2888, 2889, 7, 90, 2, 2, 2889, 2890, 7, 86, 2, 2, 2890, 2891, 7, 71, 2, 2, 2891, 2892, 7, 84, 2, 2, 2892, 2893, 7, 80, 2, 2, 2893, 2894, 7, 67, 2, 2, 2894, 2895, 7, 78, 2, 2, 2895, 2896, 7, 97, 2, 2, 2896, 2897, 7, 67, 2, 2, 2897, 2898, 7, 69, 2, 2, 2898, 2899, 7, 69, 2, 2, 2899, 2900, 7, 71, 2, 2, 2900, 2901, 7, 85, 2, 2, 2901, 2902, 7, 85, 2, 2, 2902, 246, 3, 2, 2, 2, 2903, 2904, 7, 72, 2, 2, 2904, 2905, 7, 67, 2, 2, 2905, 2906, 7, 75, 2, 2, 2906, 2907, 7, 78, 2, 2, 2907, 2908, 7, 81, 2, 2, 2908, 2909, 7, 88, 2, 2, 2909, 2910, 7, 71, 2, 2, 2910, 2911, 7, 84, 2, 2, 2911, 248, 3, 2, 2, 2, 2912, 2913, 7, 72, 2, 2, 2913, 2914, 7, 67, 2, 2, 2914, 2915, 7, 75, 2, 2, 2915, 2916, 7, 78, 2, 2, 2916, 2917, 7, 87, 2, 2, 2917, 2918, 7, 84, 2, 2, 2918, 2919, 7, 71, 2, 2, 2919, 2920, 7, 69, 2, 2, 2920, 2921, 7, 81, 2, 2, 2921, 2922, 7, 80, 2, 2, 2922, 2923, 7, 70, 2, 2, 2923, 2924, 7, 75, 2, 2, 2924, 2925, 7, 86, 2, 2, 2925, 2926, 7, 75, 2, 2, 2926, 2927, 7, 81, 2, 2, 2927, 2928, 7, 80, 2, 2, 2928, 2929, 7, 78, 2, 2, 2929, 2930, 7, 71, 2, 2, 2930, 2931, 7, 88, 2, 2, 2931, 2932, 7, 71, 2, 2, 2932, 2933, 7, 78, 2, 2, 2933, 250, 3, 2, 2, 2, 2934, 2935, 7, 72, 2, 2, 2935, 2936, 7, 67, 2, 2, 2936, 2937, 7, 80, 2, 2, 2937, 2938, 7, 97, 2, 2, 2938, 2939, 7, 75, 2, 2, 2939, 2940, 7, 80, 2, 2, 2940, 252, 3, 2, 2, 2, 2941, 2942, 7, 72, 2, 2, 2942, 2943, 7, 71, 2, 2, 2943, 2944, 7, 86, 2, 2, 2944, 2945, 7, 69, 2, 2, 2945, 2946, 7, 74, 2, 2, 2946, 254, 3, 2, 2, 2, 2947, 2948, 7, 72, 2, 2, 2948, 2949, 7, 75, 2, 2, 2949, 2950, 7, 78, 2, 2, 2950, 2951, 7, 71, 2, 2, 2951, 256, 3, 2, 2, 2, 2952, 2953, 7, 72, 2, 2, 2953, 2954, 7, 75, 2, 2, 2954, 2955, 7, 78, 2, 2, 2955, 2956, 7, 71, 2, 2, 2956, 2957, 7, 80, 2, 2, 2957, 2958, 7, 67, 2, 2, 2958, 2959, 7, 79, 2, 2, 2959, 2960, 7, 71, 2, 2, 2960, 258, 3, 2, 2, 2, 2961, 2962, 7, 72, 2, 2, 2962, 2963, 7, 75, 2, 2, 2963, 2964, 7, 78, 2, 2, 2964, 2965, 7, 78, 2, 2, 2965, 2966, 7, 72, 2, 2, 2966, 2967, 7, 67, 2, 2, 2967, 2968, 7, 69, 2, 2, 2968, 2969, 7, 86, 2, 2, 2969, 2970, 7, 81, 2, 2, 2970, 2971, 7, 84, 2, 2, 2971, 260, 3, 2, 2, 2, 2972, 2973, 7, 72, 2, 2, 2973, 2974, 7, 75, 2, 2, 2974, 2975, 7, 78, 2, 2, 2975, 2976, 7, 71, 2, 2, 2976, 2977, 7, 97, 2, 2, 2977, 2978, 7, 85, 2, 2, 2978, 2979, 7, 80, 2, 2, 2979, 2980, 7, 67, 2, 2, 2980, 2981, 7, 82, 2, 2, 2981, 2982, 7, 85, 2, 2, 2982, 2983, 7, 74, 2, 2, 2983, 2984, 7, 81, 2, 2, 2984, 2985, 7, 86, 2, 2, 2985, 262, 3, 2, 2, 2, 2986, 2987, 7, 72, 2, 2, 2987, 2988, 7, 81, 2, 2, 2988, 2989, 7, 84, 2, 2, 2989, 264, 3, 2, 2, 2, 2990, 2991, 7, 72, 2, 2, 2991, 2992, 7, 81, 2, 2, 2992, 2993, 7, 84, 2, 2, 2993, 2994, 7, 69, 2, 2, 2994, 2995, 7, 71, 2, 2, 2995, 2996, 7, 85, 2, 2, 2996, 2997, 7, 71, 2, 2, 2997, 2998, 7, 71, 2, 2, 2998, 2999, 7, 77, 2, 2, 2999, 266, 3, 2, 2, 2, 3000, 3001, 7, 72, 2, 2, 3001, 3002, 7, 81, 2, 2, 3002, 3003, 7, 84, 2, 2, 3003, 3004, 7, 69, 2, 2, 3004, 3005, 7, 71, 2, 2, 3005, 3006, 7, 97, 2, 2, 3006, 3007, 7, 85, 2, 2, 3007, 3008, 7, 71, 2, 2, 3008, 3009, 7, 84, 2, 2, 3009, 3010, 7, 88, 2, 2, 3010, 3011, 7, 75, 2, 2, 3011, 3012, 7, 69, 2, 2, 3012, 3013, 7, 71, 2, 2, 3013, 3014, 7, 97, 2, 2, 3014, 3015, 7, 67, 2, 2, 3015, 3016, 7, 78, 2, 2, 3016, 3017, 7, 78, 2, 2, 3017, 3018, 7, 81, 2, 2, 3018, 3019, 7, 89, 2, 2, 3019, 3020, 7, 97, 2, 2, 3020, 3021, 7, 70, 2, 2, 3021, 3022, 7, 67, 2, 2, 3022, 3023, 7, 86, 2, 2, 3023, 3024, 7, 67, 2, 2, 3024, 3025, 7, 97, 2, 2, 3025, 3026, 7, 78, 2, 2, 3026, 3027, 7, 81, 2, 2, 3027, 3028, 7, 85, 2, 2, 3028, 3029, 7, 85, 2, 2, 3029, 268, 3, 2, 2, 2, 3030, 3031, 7, 72, 2, 2, 3031, 3032, 7, 81, 2, 2, 3032, 3033, 7, 84, 2, 2, 3033, 3034, 7, 71, 2, 2, 3034, 3035, 7, 75, 2, 2, 3035, 3036, 7, 73, 2, 2, 3036, 3037, 7, 80, 2, 2, 3037, 270, 3, 2, 2, 2, 3038, 3039, 7, 72, 2, 2, 3039, 3040, 7, 84, 2, 2, 3040, 3041, 7, 71, 2, 2, 3041, 3042, 7, 71, 2, 2, 3042, 3043, 7, 86, 2, 2, 3043, 3044, 7, 71, 2, 2, 3044, 3045, 7, 90, 2, 2, 3045, 3046, 7, 86, 2, 2, 3046, 272, 3, 2, 2, 2, 3047, 3048, 7, 72, 2, 2, 3048, 3049, 7, 84, 2, 2, 3049, 3050, 7, 71, 2, 2, 3050, 3051, 7, 71, 2, 2, 3051, 3052, 7, 86, 2, 2, 3052, 3053, 7, 71, 2, 2, 3053, 3054, 7, 90, 2, 2, 3054, 3055, 7, 86, 2, 2, 3055, 3056, 7, 86, 2, 2, 3056, 3057, 7, 67, 2, 2, 3057, 3058, 7, 68, 2, 2, 3058, 3059, 7, 78, 2, 2, 3059, 3060, 7, 71, 2, 2, 3060, 274, 3, 2, 2, 2, 3061, 3062, 7, 72, 2, 2, 3062, 3063, 7, 84, 2, 2, 3063, 3064, 7, 81, 2, 2, 3064, 3065, 7, 79, 2, 2, 3065, 276, 3, 2, 2, 2, 3066, 3067, 7, 72, 2, 2, 3067, 3068, 7, 87, 2, 2, 3068, 3069, 7, 78, 2, 2, 3069, 3070, 7, 78, 2, 2, 3070, 278, 3, 2, 2, 2, 3071, 3072, 7, 72, 2, 2, 3072, 3073, 7, 87, 2, 2, 3073, 3074, 7, 80, 2, 2, 3074, 3075, 7, 69, 2, 2, 3075, 3076, 7, 86, 2, 2, 3076, 3077, 7, 75, 2, 2, 3077, 3078, 7, 81, 2, 2, 3078, 3079, 7, 80, 2, 2, 3079, 280, 3, 2, 2, 2, 3080, 3081, 7, 73, 2, 2, 3081, 3082, 7, 71, 2, 2, 3082, 3083, 7, 86, 2, 2, 3083, 282, 3, 2, 2, 2, 3084, 3085, 7, 73, 2, 2, 3085, 3086, 7, 81, 2, 2, 3086, 3087, 7, 86, 2, 2, 3087, 3088, 7, 81, 2, 2, 3088, 284, 3, 2, 2, 2, 3089, 3090, 7, 73, 2, 2, 3090, 3091, 7, 81, 2, 2, 3091, 3092, 7, 88, 2, 2, 3092, 3093, 7, 71, 2, 2, 3093, 3094, 7, 84, 2, 2, 3094, 3095, 7, 80, 2, 2, 3095, 3096, 7, 81, 2, 2, 3096, 3097, 7, 84, 2, 2, 3097, 286, 3, 2, 2, 2, 3098, 3099, 7, 73, 2, 2, 3099, 3100, 7, 84, 2, 2, 3100, 3101, 7, 67, 2, 2, 3101, 3102, 7, 80, 2, 2, 3102, 3103, 7, 86, 2, 2, 3103, 288, 3, 2, 2, 2, 3104, 3105, 7, 73, 2, 2, 3105, 3106, 7, 84, 2, 2, 3106, 3107, 7, 81, 2, 2, 3107, 3108, 7, 87, 2, 2, 3108, 3109, 7, 82, 2, 2, 3109, 290, 3, 2, 2, 2, 3110, 3111, 7, 74, 2, 2, 3111, 3112, 7, 67, 2, 2, 3112, 3113, 7, 88, 2, 2, 3113, 3114, 7, 75, 2, 2, 3114, 3115, 7, 80, 2, 2, 3115, 3116, 7, 73, 2, 2, 3116, 292, 3, 2, 2, 2, 3117, 3118, 7, 74, 2, 2, 3118, 3119, 7, 67, 2, 2, 3119, 3120, 7, 85, 2, 2, 3120, 3121, 7, 74, 2, 2, 3121, 3122, 7, 71, 2, 2, 3122, 3123, 7, 70, 2, 2, 3123, 294, 3, 2, 2, 2, 3124, 3125, 7, 74, 2, 2, 3125, 3126, 7, 71, 2, 2, 3126, 3127, 7, 67, 2, 2, 3127, 3128, 7, 78, 2, 2, 3128, 3129, 7, 86, 2, 2, 3129, 3130, 7, 74, 2, 2, 3130, 3131, 7, 69, 2, 2, 3131, 3132, 7, 74, 2, 2, 3132, 3133, 7, 71, 2, 2, 3133, 3134, 7, 69, 2, 2, 3134, 3135, 7, 77, 2, 2, 3135, 3136, 7, 86, 2, 2, 3136, 3137, 7, 75, 2, 2, 3137, 3138, 7, 79, 2, 2, 3138, 3139, 7, 71, 2, 2, 3139, 3140, 7, 81, 2, 2, 3140, 3141, 7, 87, 2, 2, 3141, 3142, 7, 86, 2, 2, 3142, 296, 3, 2, 2, 2, 3143, 3144, 7, 75, 2, 2, 3144, 3145, 7, 70, 2, 2, 3145, 3146, 7, 71, 2, 2, 3146, 3147, 7, 80, 2, 2, 3147, 3148, 7, 86, 2, 2, 3148, 3149, 7, 75, 2, 2, 3149, 3150, 7, 86, 2, 2, 3150, 3151, 7, 91, 2, 2, 3151, 298, 3, 2, 2, 2, 3152, 3153, 7, 75, 2, 2, 3153, 3154, 7, 70, 2, 2, 3154, 3155, 7, 71, 2, 2, 3155, 3156, 7, 80, 2, 2, 3156, 3157, 7, 86, 2, 2, 3157, 3158, 7, 75, 2, 2, 3158, 3159, 7, 86, 2, 2, 3159, 3160, 7, 91, 2, 2, 3160, 3161, 7, 69, 2, 2, 3161, 3162, 7, 81, 2, 2, 3162, 3163, 7, 78, 2, 2, 3163, 300, 3, 2, 2, 2, 3164, 3165, 7, 75, 2, 2, 3165, 3166, 7, 70, 2, 2, 3166, 3167, 7, 71, 2, 2, 3167, 3168, 7, 80, 2, 2, 3168, 3169, 7, 86, 2, 2, 3169, 3170, 7, 75, 2, 2, 3170, 3171, 7, 86, 2, 2, 3171, 3172, 7, 91, 2, 2, 3172, 3173, 7, 97, 2, 2, 3173, 3174, 7, 75, 2, 2, 3174, 3175, 7, 80, 2, 2, 3175, 3176, 7, 85, 2, 2, 3176, 3177, 7, 71, 2, 2, 3177, 3178, 7, 84, 2, 2, 3178, 3179, 7, 86, 2, 2, 3179, 302, 3, 2, 2, 2, 3180, 3181, 7, 75, 2, 2, 3181, 3182, 7, 72, 2, 2, 3182, 304, 3, 2, 2, 2, 3183, 3184, 7, 75, 2, 2, 3184, 3185, 7, 75, 2, 2, 3185, 3186, 7, 72, 2, 2, 3186, 306, 3, 2, 2, 2, 3187, 3188, 7, 75, 2, 2, 3188, 3189, 7, 80, 2, 2, 3189, 308, 3, 2, 2, 2, 3190, 3191, 7, 75, 2, 2, 3191, 3192, 7, 80, 2, 2, 3192, 3193, 7, 69, 2, 2, 3193, 3194, 7, 78, 2, 2, 3194, 3195, 7, 87, 2, 2, 3195, 3196, 7, 70, 2, 2, 3196, 3197, 7, 71, 2, 2, 3197, 310, 3, 2, 2, 2, 3198, 3199, 7, 75, 2, 2, 3199, 3200, 7, 80, 2, 2, 3200, 3201, 7, 69, 2, 2, 3201, 3202, 7, 84, 2, 2, 3202, 3203, 7, 71, 2, 2, 3203, 3204, 7, 79, 2, 2, 3204, 3205, 7, 71, 2, 2, 3205, 3206, 7, 80, 2, 2, 3206, 3207, 7, 86, 2, 2, 3207, 312, 3, 2, 2, 2, 3208, 3209, 7, 75, 2, 2, 3209, 3210, 7, 80, 2, 2, 3210, 3211, 7, 70, 2, 2, 3211, 3212, 7, 71, 2, 2, 3212, 3213, 7, 90, 2, 2, 3213, 314, 3, 2, 2, 2, 3214, 3215, 7, 75, 2, 2, 3215, 3216, 7, 80, 2, 2, 3216, 3217, 7, 72, 2, 2, 3217, 3218, 7, 75, 2, 2, 3218, 3219, 7, 80, 2, 2, 3219, 3220, 7, 75, 2, 2, 3220, 3221, 7, 86, 2, 2, 3221, 3222, 7, 71, 2, 2, 3222, 316, 3, 2, 2, 2, 3223, 3224, 7, 75, 2, 2, 3224, 3225, 7, 80, 2, 2, 3225, 3226, 7, 75, 2, 2, 3226, 3227, 7, 86, 2, 2, 3227, 318, 3, 2, 2, 2, 3228, 3229, 7, 75, 2, 2, 3229, 3230, 7, 80, 2, 2, 3230, 3231, 7, 80, 2, 2, 3231, 3232, 7, 71, 2, 2, 3232, 3233, 7, 84, 2, 2, 3233, 320, 3, 2, 2, 2, 3234, 3235, 7, 75, 2, 2, 3235, 3236, 7, 80, 2, 2, 3236, 3237, 7, 85, 2, 2, 3237, 3238, 7, 71, 2, 2, 3238, 3239, 7, 84, 2, 2, 3239, 3240, 7, 86, 2, 2, 3240, 322, 3, 2, 2, 2, 3241, 3242, 7, 75, 2, 2, 3242, 3243, 7, 80, 2, 2, 3243, 3244, 7, 85, 2, 2, 3244, 3245, 7, 86, 2, 2, 3245, 3246, 7, 71, 2, 2, 3246, 3247, 7, 67, 2, 2, 3247, 3248, 7, 70, 2, 2, 3248, 324, 3, 2, 2, 2, 3249, 3250, 7, 75, 2, 2, 3250, 3251, 7, 80, 2, 2, 3251, 3252, 7, 86, 2, 2, 3252, 3253, 7, 71, 2, 2, 3253, 3254, 7, 84, 2, 2, 3254, 3255, 7, 85, 2, 2, 3255, 3256, 7, 71, 2, 2, 3256, 3257, 7, 69, 2, 2, 3257, 3258, 7, 86, 2, 2, 3258, 326, 3, 2, 2, 2, 3259, 3260, 7, 75, 2, 2, 3260, 3261, 7, 80, 2, 2, 3261, 3262, 7, 86, 2, 2, 3262, 3263, 7, 81, 2, 2, 3263, 328, 3, 2, 2, 2, 3264, 3266, 9, 2, 2, 2, 3265, 3264, 3, 2, 2, 2, 3265, 3266, 3, 2, 2, 2, 3266, 3267, 3, 2, 2, 2, 3267, 3268, 5, 1685, 843, 2, 3268, 3269, 5, 1643, 822, 2, 3269, 3270, 5, 1685, 843, 2, 3270, 3271, 5, 1643, 822, 2, 3271, 3272, 5, 1685, 843, 2, 3272, 3273, 5, 1643, 822, 2, 3273, 3275, 5, 1685, 843, 2, 3274, 3276, 9, 2, 2, 2, 3275, 3274, 3, 2, 2, 2, 3275, 3276, 3, 2, 2, 2, 3276, 330, 3, 2, 2, 2, 3277, 3279, 9, 2, 2, 2, 3278, 3277, 3, 2, 2, 2, 3278, 3279, 3, 2, 2, 2, 3279, 3281, 3, 2, 2, 2, 3280, 3282, 9, 3, 2, 2, 3281, 3280, 3, 2, 2, 2, 3281, 3282, 3, 2, 2, 2, 3282, 3284, 3, 2, 2, 2, 3283, 3285, 9, 3, 2, 2, 3284, 3283, 3, 2, 2, 2, 3284, 3285, 3, 2, 2, 2, 3285, 3287, 3, 2, 2, 2, 3286, 3288, 9, 3, 2, 2, 3287, 3286, 3, 2, 2, 2, 3287, 3288, 3, 2, 2, 2, 3288, 3290, 3, 2, 2, 2, 3289, 3291, 9, 3, 2, 2, 3290, 3289, 3, 2, 2, 2, 3290, 3291, 3, 2, 2, 2, 3291, 3292, 3, 2, 2, 2, 3292, 3294, 9, 4, 2, 2, 3293, 3295, 9, 3, 2, 2, 3294, 3293, 3, 2, 2, 2, 3294, 3295, 3, 2, 2, 2, 3295, 3297, 3, 2, 2, 2, 3296, 3298, 9, 3, 2, 2, 3297, 3296, 3, 2, 2, 2, 3297, 3298, 3, 2, 2, 2, 3298, 3300, 3, 2, 2, 2, 3299, 3301, 9, 3, 2, 2, 3300, 3299, 3, 2, 2, 2, 3300, 3301, 3, 2, 2, 2, 3301, 3303, 3, 2, 2, 2, 3302, 3304, 9, 3, 2, 2, 3303, 3302, 3, 2, 2, 2, 3303, 3304, 3, 2, 2, 2, 3304, 3305, 3, 2, 2, 2, 3305, 3307, 9, 4, 2, 2, 3306, 3308, 9, 3, 2, 2, 3307, 3306, 3, 2, 2, 2, 3307, 3308, 3, 2, 2, 2, 3308, 3310, 3, 2, 2, 2, 3309, 3311, 9, 3, 2, 2, 3310, 3309, 3, 2, 2, 2, 3310, 3311, 3, 2, 2, 2, 3311, 3313, 3, 2, 2, 2, 3312, 3314, 9, 3, 2, 2, 3313, 3312, 3, 2, 2, 2, 3313, 3314, 3, 2, 2, 2, 3314, 3316, 3, 2, 2, 2, 3315, 3317, 9, 3, 2, 2, 3316, 3315, 3, 2, 2, 2, 3316, 3317, 3, 2, 2, 2, 3317, 3318, 3, 2, 2, 2, 3318, 3320, 9, 4, 2, 2, 3319, 3321, 9, 3, 2, 2, 3320, 3319, 3, 2, 2, 2, 3320, 3321, 3, 2, 2, 2, 3321, 3323, 3, 2, 2, 2, 3322, 3324, 9, 3, 2, 2, 3323, 3322, 3, 2, 2, 2, 3323, 3324, 3, 2, 2, 2, 3324, 3326, 3, 2, 2, 2, 3325, 3327, 9, 3, 2, 2, 3326, 3325, 3, 2, 2, 2, 3326, 3327, 3, 2, 2, 2, 3327, 3329, 3, 2, 2, 2, 3328, 3330, 9, 3, 2, 2, 3329, 3328, 3, 2, 2, 2, 3329, 3330, 3, 2, 2, 2, 3330, 3331, 3, 2, 2, 2, 3331, 3333, 9, 4, 2, 2, 3332, 3334, 9, 3, 2, 2, 3333, 3332, 3, 2, 2, 2, 3333, 3334, 3, 2, 2, 2, 3334, 3336, 3, 2, 2, 2, 3335, 3337, 9, 3, 2, 2, 3336, 3335, 3, 2, 2, 2, 3336, 3337, 3, 2, 2, 2, 3337, 3339, 3, 2, 2, 2, 3338, 3340, 9, 3, 2, 2, 3339, 3338, 3, 2, 2, 2, 3339, 3340, 3, 2, 2, 2, 3340, 3342, 3, 2, 2, 2, 3341, 3343, 9, 3, 2, 2, 3342, 3341, 3, 2, 2, 2, 3342, 3343, 3, 2, 2, 2, 3343, 3344, 3, 2, 2, 2, 3344, 3346, 9, 4, 2, 2, 3345, 3347, 9, 3, 2, 2, 3346, 3345, 3, 2, 2, 2, 3346, 3347, 3, 2, 2, 2, 3347, 3349, 3, 2, 2, 2, 3348, 3350, 9, 3, 2, 2, 3349, 3348, 3, 2, 2, 2, 3349, 3350, 3, 2, 2, 2, 3350, 3352, 3, 2, 2, 2, 3351, 3353, 9, 3, 2, 2, 3352, 3351, 3, 2, 2, 2, 3352, 3353, 3, 2, 2, 2, 3353, 3355, 3, 2, 2, 2, 3354, 3356, 9, 3, 2, 2, 3355, 3354, 3, 2, 2, 2, 3355, 3356, 3, 2, 2, 2, 3356, 3357, 3, 2, 2, 2, 3357, 3359, 9, 4, 2, 2, 3358, 3360, 9, 3, 2, 2, 3359, 3358, 3, 2, 2, 2, 3359, 3360, 3, 2, 2, 2, 3360, 3362, 3, 2, 2, 2, 3361, 3363, 9, 3, 2, 2, 3362, 3361, 3, 2, 2, 2, 3362, 3363, 3, 2, 2, 2, 3363, 3365, 3, 2, 2, 2, 3364, 3366, 9, 3, 2, 2, 3365, 3364, 3, 2, 2, 2, 3365, 3366, 3, 2, 2, 2, 3366, 3368, 3, 2, 2, 2, 3367, 3369, 9, 3, 2, 2, 3368, 3367, 3, 2, 2, 2, 3368, 3369, 3, 2, 2, 2, 3369, 3370, 3, 2, 2, 2, 3370, 3372, 9, 4, 2, 2, 3371, 3373, 9, 3, 2, 2, 3372, 3371, 3, 2, 2, 2, 3372, 3373, 3, 2, 2, 2, 3373, 3375, 3, 2, 2, 2, 3374, 3376, 9, 3, 2, 2, 3375, 3374, 3, 2, 2, 2, 3375, 3376, 3, 2, 2, 2, 3376, 3378, 3, 2, 2, 2, 3377, 3379, 9, 3, 2, 2, 3378, 3377, 3, 2, 2, 2, 3378, 3379, 3, 2, 2, 2, 3379, 3381, 3, 2, 2, 2, 3380, 3382, 9, 3, 2, 2, 3381, 3380, 3, 2, 2, 2, 3381, 3382, 3, 2, 2, 2, 3382, 3384, 3, 2, 2, 2, 3383, 3385, 9, 2, 2, 2, 3384, 3383, 3, 2, 2, 2, 3384, 3385, 3, 2, 2, 2, 3385, 332, 3, 2, 2, 2, 3386, 3387, 7, 75, 2, 2, 3387, 3388, 7, 85, 2, 2, 3388, 334, 3, 2, 2, 2, 3389, 3390, 7, 75, 2, 2, 3390, 3391, 7, 85, 2, 2, 3391, 3392, 7, 80, 2, 2, 3392, 3393, 7, 87, 2, 2, 3393, 3394, 7, 78, 2, 2, 3394, 3395, 7, 78, 2, 2, 3395, 336, 3, 2, 2, 2, 3396, 3397, 7, 76, 2, 2, 3397, 3398, 7, 81, 2, 2, 3398, 3399, 7, 75, 2, 2, 3399, 3400, 7, 80, 2, 2, 3400, 338, 3, 2, 2, 2, 3401, 3402, 7, 77, 2, 2, 3402, 3403, 7, 71, 2, 2, 3403, 3404, 7, 84, 2, 2, 3404, 3405, 7, 68, 2, 2, 3405, 3406, 7, 71, 2, 2, 3406, 3407, 7, 84, 2, 2, 3407, 3408, 7, 81, 2, 2, 3408, 3409, 7, 85, 2, 2, 3409, 340, 3, 2, 2, 2, 3410, 3411, 7, 77, 2, 2, 3411, 3412, 7, 71, 2, 2, 3412, 3413, 7, 91, 2, 2, 3413, 342, 3, 2, 2, 2, 3414, 3415, 7, 77, 2, 2, 3415, 3416, 7, 71, 2, 2, 3416, 3417, 7, 91, 2, 2, 3417, 3418, 7, 97, 2, 2, 3418, 3419, 7, 82, 2, 2, 3419, 3420, 7, 67, 2, 2, 3420, 3421, 7, 86, 2, 2, 3421, 3422, 7, 74, 2, 2, 3422, 344, 3, 2, 2, 2, 3423, 3424, 7, 77, 2, 2, 3424, 3425, 7, 71, 2, 2, 3425, 3426, 7, 91, 2, 2, 3426, 3427, 7, 97, 2, 2, 3427, 3428, 7, 85, 2, 2, 3428, 3429, 7, 86, 2, 2, 3429, 3430, 7, 81, 2, 2, 3430, 3431, 7, 84, 2, 2, 3431, 3432, 7, 71, 2, 2, 3432, 3433, 7, 97, 2, 2, 3433, 3434, 7, 82, 2, 2, 3434, 3435, 7, 84, 2, 2, 3435, 3436, 7, 81, 2, 2, 3436, 3437, 7, 88, 2, 2, 3437, 3438, 7, 75, 2, 2, 3438, 3439, 7, 70, 2, 2, 3439, 3440, 7, 71, 2, 2, 3440, 3441, 7, 84, 2, 2, 3441, 3442, 7, 97, 2, 2, 3442, 3443, 7, 80, 2, 2, 3443, 3444, 7, 67, 2, 2, 3444, 3445, 7, 79, 2, 2, 3445, 3446, 7, 71, 2, 2, 3446, 346, 3, 2, 2, 2, 3447, 3448, 7, 77, 2, 2, 3448, 3449, 7, 75, 2, 2, 3449, 3450, 7, 78, 2, 2, 3450, 3451, 7, 78, 2, 2, 3451, 348, 3, 2, 2, 2, 3452, 3453, 7, 78, 2, 2, 3453, 3454, 7, 67, 2, 2, 3454, 3455, 7, 80, 2, 2, 3455, 3456, 7, 73, 2, 2, 3456, 3457, 7, 87, 2, 2, 3457, 3458, 7, 67, 2, 2, 3458, 3459, 7, 73, 2, 2, 3459, 3460, 7, 71, 2, 2, 3460, 350, 3, 2, 2, 2, 3461, 3462, 7, 78, 2, 2, 3462, 3463, 7, 71, 2, 2, 3463, 3464, 7, 72, 2, 2, 3464, 3465, 7, 86, 2, 2, 3465, 352, 3, 2, 2, 2, 3466, 3467, 7, 78, 2, 2, 3467, 3468, 7, 75, 2, 2, 3468, 3469, 7, 68, 2, 2, 3469, 3470, 7, 84, 2, 2, 3470, 3471, 7, 67, 2, 2, 3471, 3472, 7, 84, 2, 2, 3472, 3473, 7, 91, 2, 2, 3473, 354, 3, 2, 2, 2, 3474, 3475, 7, 78, 2, 2, 3475, 3476, 7, 75, 2, 2, 3476, 3477, 7, 72, 2, 2, 3477, 3478, 7, 71, 2, 2, 3478, 3479, 7, 86, 2, 2, 3479, 3480, 7, 75, 2, 2, 3480, 3481, 7, 79, 2, 2, 3481, 3482, 7, 71, 2, 2, 3482, 356, 3, 2, 2, 2, 3483, 3484, 7, 78, 2, 2, 3484, 3485, 7, 75, 2, 2, 3485, 3486, 7, 77, 2, 2, 3486, 3487, 7, 71, 2, 2, 3487, 358, 3, 2, 2, 2, 3488, 3489, 7, 78, 2, 2, 3489, 3490, 7, 75, 2, 2, 3490, 3491, 7, 80, 2, 2, 3491, 3492, 7, 71, 2, 2, 3492, 3493, 7, 80, 2, 2, 3493, 3494, 7, 81, 2, 2, 3494, 360, 3, 2, 2, 2, 3495, 3496, 7, 78, 2, 2, 3496, 3497, 7, 75, 2, 2, 3497, 3498, 7, 80, 2, 2, 3498, 3499, 7, 87, 2, 2, 3499, 3500, 7, 90, 2, 2, 3500, 362, 3, 2, 2, 2, 3501, 3502, 7, 78, 2, 2, 3502, 3503, 7, 75, 2, 2, 3503, 3504, 7, 85, 2, 2, 3504, 3505, 7, 86, 2, 2, 3505, 3506, 7, 71, 2, 2, 3506, 3507, 7, 80, 2, 2, 3507, 3508, 7, 71, 2, 2, 3508, 3509, 7, 84, 2, 2, 3509, 3510, 7, 97, 2, 2, 3510, 3511, 7, 75, 2, 2, 3511, 3512, 7, 82, 2, 2, 3512, 364, 3, 2, 2, 2, 3513, 3514, 7, 78, 2, 2, 3514, 3515, 7, 75, 2, 2, 3515, 3516, 7, 85, 2, 2, 3516, 3517, 7, 86, 2, 2, 3517, 3518, 7, 71, 2, 2, 3518, 3519, 7, 80, 2, 2, 3519, 3520, 7, 71, 2, 2, 3520, 3521, 7, 84, 2, 2, 3521, 3522, 7, 97, 2, 2, 3522, 3523, 7, 82, 2, 2, 3523, 3524, 7, 81, 2, 2, 3524, 3525, 7, 84, 2, 2, 3525, 3526, 7, 86, 2, 2, 3526, 366, 3, 2, 2, 2, 3527, 3528, 7, 78, 2, 2, 3528, 3529, 7, 81, 2, 2, 3529, 3530, 7, 67, 2, 2, 3530, 3531, 7, 70, 2, 2, 3531, 368, 3, 2, 2, 2, 3532, 3533, 7, 78, 2, 2, 3533, 3534, 7, 81, 2, 2, 3534, 3535, 7, 69, 2, 2, 3535, 3536, 7, 67, 2, 2, 3536, 3537, 7, 78, 2, 2, 3537, 3538, 7, 97, 2, 2, 3538, 3539, 7, 85, 2, 2, 3539, 3540, 7, 71, 2, 2, 3540, 3541, 7, 84, 2, 2, 3541, 3542, 7, 88, 2, 2, 3542, 3543, 7, 75, 2, 2, 3543, 3544, 7, 69, 2, 2, 3544, 3545, 7, 71, 2, 2, 3545, 3546, 7, 97, 2, 2, 3546, 3547, 7, 80, 2, 2, 3547, 3548, 7, 67, 2, 2, 3548, 3549, 7, 79, 2, 2, 3549, 3550, 7, 71, 2, 2, 3550, 370, 3, 2, 2, 2, 3551, 3552, 7, 78, 2, 2, 3552, 3553, 7, 81, 2, 2, 3553, 3554, 7, 73, 2, 2, 3554, 372, 3, 2, 2, 2, 3555, 3556, 7, 79, 2, 2, 3556, 3557, 7, 67, 2, 2, 3557, 3558, 7, 86, 2, 2, 3558, 3559, 7, 69, 2, 2, 3559, 3560, 7, 74, 2, 2, 3560, 3561, 7, 71, 2, 2, 3561, 3562, 7, 70, 2, 2, 3562, 374, 3, 2, 2, 2, 3563, 3564, 7, 79, 2, 2, 3564, 3565, 7, 67, 2, 2, 3565, 3566, 7, 85, 2, 2, 3566, 3567, 7, 86, 2, 2, 3567, 3568, 7, 71, 2, 2, 3568, 3569, 7, 84, 2, 2, 3569, 376, 3, 2, 2, 2, 3570, 3571, 7, 79, 2, 2, 3571, 3572, 7, 67, 2, 2, 3572, 3573, 7, 90, 2, 2, 3573, 3574, 7, 97, 2, 2, 3574, 3575, 7, 79, 2, 2, 3575, 3576, 7, 71, 2, 2, 3576, 3577, 7, 79, 2, 2, 3577, 3578, 7, 81, 2, 2, 3578, 3579, 7, 84, 2, 2, 3579, 3580, 7, 91, 2, 2, 3580, 378, 3, 2, 2, 2, 3581, 3582, 7, 79, 2, 2, 3582, 3583, 7, 67, 2, 2, 3583, 3584, 7, 90, 2, 2, 3584, 3585, 7, 86, 2, 2, 3585, 3586, 7, 84, 2, 2, 3586, 3587, 7, 67, 2, 2, 3587, 3588, 7, 80, 2, 2, 3588, 3589, 7, 85, 2, 2, 3589, 3590, 7, 72, 2, 2, 3590, 3591, 7, 71, 2, 2, 3591, 3592, 7, 84, 2, 2, 3592, 380, 3, 2, 2, 2, 3593, 3594, 7, 79, 2, 2, 3594, 3595, 7, 67, 2, 2, 3595, 3596, 7, 90, 2, 2, 3596, 3597, 7, 88, 2, 2, 3597, 3598, 7, 67, 2, 2, 3598, 3599, 7, 78, 2, 2, 3599, 3600, 7, 87, 2, 2, 3600, 3601, 7, 71, 2, 2, 3601, 382, 3, 2, 2, 2, 3602, 3603, 7, 79, 2, 2, 3603, 3604, 7, 67, 2, 2, 3604, 3605, 7, 90, 2, 2, 3605, 3606, 7, 97, 2, 2, 3606, 3607, 7, 70, 2, 2, 3607, 3608, 7, 75, 2, 2, 3608, 3609, 7, 85, 2, 2, 3609, 3610, 7, 82, 2, 2, 3610, 3611, 7, 67, 2, 2, 3611, 3612, 7, 86, 2, 2, 3612, 3613, 7, 69, 2, 2, 3613, 3614, 7, 74, 2, 2, 3614, 3615, 7, 97, 2, 2, 3615, 3616, 7, 78, 2, 2, 3616, 3617, 7, 67, 2, 2, 3617, 3618, 7, 86, 2, 2, 3618, 3619, 7, 71, 2, 2, 3619, 3620, 7, 80, 2, 2, 3620, 3621, 7, 69, 2, 2, 3621, 3622, 7, 91, 2, 2, 3622, 384, 3, 2, 2, 2, 3623, 3624, 7, 79, 2, 2, 3624, 3625, 7, 67, 2, 2, 3625, 3626, 7, 90, 2, 2, 3626, 3627, 7, 97, 2, 2, 3627, 3628, 7, 71, 2, 2, 3628, 3629, 7, 88, 2, 2, 3629, 3630, 7, 71, 2, 2, 3630, 3631, 7, 80, 2, 2, 3631, 3632, 7, 86, 2, 2, 3632, 3633, 7, 97, 2, 2, 3633, 3634, 7, 85, 2, 2, 3634, 3635, 7, 75, 2, 2, 3635, 3636, 7, 92, 2, 2, 3636, 3637, 7, 71, 2, 2, 3637, 386, 3, 2, 2, 2, 3638, 3639, 7, 79, 2, 2, 3639, 3640, 7, 67, 2, 2, 3640, 3641, 7, 90, 2, 2, 3641, 3642, 7, 97, 2, 2, 3642, 3643, 7, 85, 2, 2, 3643, 3644, 7, 75, 2, 2, 3644, 3645, 7, 92, 2, 2, 3645, 3646, 7, 71, 2, 2, 3646, 388, 3, 2, 2, 2, 3647, 3648, 7, 79, 2, 2, 3648, 3649, 7, 67, 2, 2, 3649, 3650, 7, 90, 2, 2, 3650, 3651, 7, 97, 2, 2, 3651, 3652, 7, 81, 2, 2, 3652, 3653, 7, 87, 2, 2, 3653, 3654, 7, 86, 2, 2, 3654, 3655, 7, 85, 2, 2, 3655, 3656, 7, 86, 2, 2, 3656, 3657, 7, 67, 2, 2, 3657, 3658, 7, 80, 2, 2, 3658, 3659, 7, 70, 2, 2, 3659, 3660, 7, 75, 2, 2, 3660, 3661, 7, 80, 2, 2, 3661, 3662, 7, 73, 2, 2, 3662, 3663, 7, 97, 2, 2, 3663, 3664, 7, 75, 2, 2, 3664, 3665, 7, 81, 2, 2, 3665, 3666, 7, 97, 2, 2, 3666, 3667, 7, 82, 2, 2, 3667, 3668, 7, 71, 2, 2, 3668, 3669, 7, 84, 2, 2, 3669, 3670, 7, 97, 2, 2, 3670, 3671, 7, 88, 2, 2, 3671, 3672, 7, 81, 2, 2, 3672, 3673, 7, 78, 2, 2, 3673, 3674, 7, 87, 2, 2, 3674, 3675, 7, 79, 2, 2, 3675, 3676, 7, 71, 2, 2, 3676, 390, 3, 2, 2, 2, 3677, 3678, 7, 79, 2, 2, 3678, 3679, 7, 71, 2, 2, 3679, 3680, 7, 70, 2, 2, 3680, 3681, 7, 75, 2, 2, 3681, 3682, 7, 67, 2, 2, 3682, 3683, 7, 70, 2, 2, 3683, 3684, 7, 71, 2, 2, 3684, 3685, 7, 85, 2, 2, 3685, 3686, 7, 69, 2, 2, 3686, 3687, 7, 84, 2, 2, 3687, 3688, 7, 75, 2, 2, 3688, 3689, 7, 82, 2, 2, 3689, 3690, 7, 86, 2, 2, 3690, 3691, 7, 75, 2, 2, 3691, 3692, 7, 81, 2, 2, 3692, 3693, 7, 80, 2, 2, 3693, 392, 3, 2, 2, 2, 3694, 3695, 7, 79, 2, 2, 3695, 3696, 7, 71, 2, 2, 3696, 3697, 7, 70, 2, 2, 3697, 3698, 7, 75, 2, 2, 3698, 3699, 7, 67, 2, 2, 3699, 3700, 7, 80, 2, 2, 3700, 3701, 7, 67, 2, 2, 3701, 3702, 7, 79, 2, 2, 3702, 3703, 7, 71, 2, 2, 3703, 394, 3, 2, 2, 2, 3704, 3705, 7, 79, 2, 2, 3705, 3706, 7, 71, 2, 2, 3706, 3707, 7, 79, 2, 2, 3707, 3708, 7, 68, 2, 2, 3708, 3709, 7, 71, 2, 2, 3709, 3710, 7, 84, 2, 2, 3710, 396, 3, 2, 2, 2, 3711, 3712, 7, 79, 2, 2, 3712, 3713, 7, 71, 2, 2, 3713, 3714, 7, 79, 2, 2, 3714, 3715, 7, 81, 2, 2, 3715, 3716, 7, 84, 2, 2, 3716, 3717, 7, 91, 2, 2, 3717, 3718, 7, 97, 2, 2, 3718, 3719, 7, 82, 2, 2, 3719, 3720, 7, 67, 2, 2, 3720, 3721, 7, 84, 2, 2, 3721, 3722, 7, 86, 2, 2, 3722, 3723, 7, 75, 2, 2, 3723, 3724, 7, 86, 2, 2, 3724, 3725, 7, 75, 2, 2, 3725, 3726, 7, 81, 2, 2, 3726, 3727, 7, 80, 2, 2, 3727, 3728, 7, 97, 2, 2, 3728, 3729, 7, 79, 2, 2, 3729, 3730, 7, 81, 2, 2, 3730, 3731, 7, 70, 2, 2, 3731, 3732, 7, 71, 2, 2, 3732, 398, 3, 2, 2, 2, 3733, 3734, 7, 79, 2, 2, 3734, 3735, 7, 71, 2, 2, 3735, 3736, 7, 84, 2, 2, 3736, 3737, 7, 73, 2, 2, 3737, 3738, 7, 71, 2, 2, 3738, 400, 3, 2, 2, 2, 3739, 3740, 7, 79, 2, 2, 3740, 3741, 7, 71, 2, 2, 3741, 3742, 7, 85, 2, 2, 3742, 3743, 7, 85, 2, 2, 3743, 3744, 7, 67, 2, 2, 3744, 3745, 7, 73, 2, 2, 3745, 3746, 7, 71, 2, 2, 3746, 3747, 7, 97, 2, 2, 3747, 3748, 7, 72, 2, 2, 3748, 3749, 7, 81, 2, 2, 3749, 3750, 7, 84, 2, 2, 3750, 3751, 7, 89, 2, 2, 3751, 3752, 7, 67, 2, 2, 3752, 3753, 7, 84, 2, 2, 3753, 3754, 7, 70, 2, 2, 3754, 3755, 7, 75, 2, 2, 3755, 3756, 7, 80, 2, 2, 3756, 3757, 7, 73, 2, 2, 3757, 402, 3, 2, 2, 2, 3758, 3759, 7, 79, 2, 2, 3759, 3760, 7, 71, 2, 2, 3760, 3761, 7, 85, 2, 2, 3761, 3762, 7, 85, 2, 2, 3762, 3763, 7, 67, 2, 2, 3763, 3764, 7, 73, 2, 2, 3764, 3765, 7, 71, 2, 2, 3765, 3766, 7, 97, 2, 2, 3766, 3767, 7, 72, 2, 2, 3767, 3768, 7, 81, 2, 2, 3768, 3769, 7, 84, 2, 2, 3769, 3770, 7, 89, 2, 2, 3770, 3771, 7, 67, 2, 2, 3771, 3772, 7, 84, 2, 2, 3772, 3773, 7, 70, 2, 2, 3773, 3774, 7, 97, 2, 2, 3774, 3775, 7, 85, 2, 2, 3775, 3776, 7, 75, 2, 2, 3776, 3777, 7, 92, 2, 2, 3777, 3778, 7, 71, 2, 2, 3778, 404, 3, 2, 2, 2, 3779, 3780, 7, 79, 2, 2, 3780, 3781, 7, 75, 2, 2, 3781, 3782, 7, 80, 2, 2, 3782, 3783, 7, 88, 2, 2, 3783, 3784, 7, 67, 2, 2, 3784, 3785, 7, 78, 2, 2, 3785, 3786, 7, 87, 2, 2, 3786, 3787, 7, 71, 2, 2, 3787, 406, 3, 2, 2, 2, 3788, 3789, 7, 79, 2, 2, 3789, 3790, 7, 75, 2, 2, 3790, 3791, 7, 84, 2, 2, 3791, 3792, 7, 84, 2, 2, 3792, 3793, 7, 81, 2, 2, 3793, 3794, 7, 84, 2, 2, 3794, 408, 3, 2, 2, 2, 3795, 3796, 7, 79, 2, 2, 3796, 3797, 7, 87, 2, 2, 3797, 3798, 7, 85, 2, 2, 3798, 3799, 7, 86, 2, 2, 3799, 3800, 7, 97, 2, 2, 3800, 3801, 7, 69, 2, 2, 3801, 3802, 7, 74, 2, 2, 3802, 3803, 7, 67, 2, 2, 3803, 3804, 7, 80, 2, 2, 3804, 3805, 7, 73, 2, 2, 3805, 3806, 7, 71, 2, 2, 3806, 410, 3, 2, 2, 2, 3807, 3808, 7, 80, 2, 2, 3808, 3809, 7, 67, 2, 2, 3809, 3810, 7, 86, 2, 2, 3810, 3811, 7, 75, 2, 2, 3811, 3812, 7, 81, 2, 2, 3812, 3813, 7, 80, 2, 2, 3813, 3814, 7, 67, 2, 2, 3814, 3815, 7, 78, 2, 2, 3815, 412, 3, 2, 2, 2, 3816, 3817, 7, 80, 2, 2, 3817, 3818, 7, 71, 2, 2, 3818, 3819, 7, 73, 2, 2, 3819, 3820, 7, 81, 2, 2, 3820, 3821, 7, 86, 2, 2, 3821, 3822, 7, 75, 2, 2, 3822, 3823, 7, 67, 2, 2, 3823, 3824, 7, 86, 2, 2, 3824, 3825, 7, 71, 2, 2, 3825, 414, 3, 2, 2, 2, 3826, 3827, 7, 80, 2, 2, 3827, 3828, 7, 81, 2, 2, 3828, 3829, 7, 69, 2, 2, 3829, 3830, 7, 74, 2, 2, 3830, 3831, 7, 71, 2, 2, 3831, 3832, 7, 69, 2, 2, 3832, 3833, 7, 77, 2, 2, 3833, 416, 3, 2, 2, 2, 3834, 3835, 7, 80, 2, 2, 3835, 3836, 7, 81, 2, 2, 3836, 3837, 7, 72, 2, 2, 3837, 3838, 7, 81, 2, 2, 3838, 3839, 7, 84, 2, 2, 3839, 3840, 7, 79, 2, 2, 3840, 3841, 7, 67, 2, 2, 3841, 3842, 7, 86, 2, 2, 3842, 418, 3, 2, 2, 2, 3843, 3844, 7, 80, 2, 2, 3844, 3845, 7, 81, 2, 2, 3845, 3846, 7, 75, 2, 2, 3846, 3847, 7, 80, 2, 2, 3847, 3848, 7, 75, 2, 2, 3848, 3849, 7, 86, 2, 2, 3849, 420, 3, 2, 2, 2, 3850, 3851, 7, 80, 2, 2, 3851, 3852, 7, 81, 2, 2, 3852, 3853, 7, 80, 2, 2, 3853, 3854, 7, 69, 2, 2, 3854, 3855, 7, 78, 2, 2, 3855, 3856, 7, 87, 2, 2, 3856, 3857, 7, 85, 2, 2, 3857, 3858, 7, 86, 2, 2, 3858, 3859, 7, 71, 2, 2, 3859, 3860, 7, 84, 2, 2, 3860, 3861, 7, 71, 2, 2, 3861, 3862, 7, 70, 2, 2, 3862, 422, 3, 2, 2, 2, 3863, 3864, 7, 80, 2, 2, 3864, 3865, 7, 81, 2, 2, 3865, 3866, 7, 80, 2, 2, 3866, 3867, 7, 71, 2, 2, 3867, 424, 3, 2, 2, 2, 3868, 3869, 7, 80, 2, 2, 3869, 3870, 7, 81, 2, 2, 3870, 3871, 7, 84, 2, 2, 3871, 3872, 7, 71, 2, 2, 3872, 3873, 7, 89, 2, 2, 3873, 3874, 7, 75, 2, 2, 3874, 3875, 7, 80, 2, 2, 3875, 3876, 7, 70, 2, 2, 3876, 426, 3, 2, 2, 2, 3877, 3878, 7, 80, 2, 2, 3878, 3879, 7, 81, 2, 2, 3879, 3880, 7, 85, 2, 2, 3880, 3881, 7, 77, 2, 2, 3881, 3882, 7, 75, 2, 2, 3882, 3883, 7, 82, 2, 2, 3883, 428, 3, 2, 2, 2, 3884, 3885, 7, 80, 2, 2, 3885, 3886, 7, 81, 2, 2, 3886, 3887, 7, 87, 2, 2, 3887, 3888, 7, 80, 2, 2, 3888, 3889, 7, 78, 2, 2, 3889, 3890, 7, 81, 2, 2, 3890, 3891, 7, 67, 2, 2, 3891, 3892, 7, 70, 2, 2, 3892, 430, 3, 2, 2, 2, 3893, 3894, 7, 80, 2, 2, 3894, 3895, 7, 81, 2, 2, 3895, 3896, 7, 97, 2, 2, 3896, 3897, 7, 69, 2, 2, 3897, 3898, 7, 74, 2, 2, 3898, 3899, 7, 71, 2, 2, 3899, 3900, 7, 69, 2, 2, 3900, 3901, 7, 77, 2, 2, 3901, 3902, 7, 85, 2, 2, 3902, 3903, 7, 87, 2, 2, 3903, 3904, 7, 79, 2, 2, 3904, 432, 3, 2, 2, 2, 3905, 3906, 7, 80, 2, 2, 3906, 3907, 7, 81, 2, 2, 3907, 3908, 7, 97, 2, 2, 3908, 3909, 7, 69, 2, 2, 3909, 3910, 7, 81, 2, 2, 3910, 3911, 7, 79, 2, 2, 3911, 3912, 7, 82, 2, 2, 3912, 3913, 7, 84, 2, 2, 3913, 3914, 7, 71, 2, 2, 3914, 3915, 7, 85, 2, 2, 3915, 3916, 7, 85, 2, 2, 3916, 3917, 7, 75, 2, 2, 3917, 3918, 7, 81, 2, 2, 3918, 3919, 7, 80, 2, 2, 3919, 434, 3, 2, 2, 2, 3920, 3921, 7, 80, 2, 2, 3921, 3922, 7, 81, 2, 2, 3922, 3923, 7, 97, 2, 2, 3923, 3924, 7, 71, 2, 2, 3924, 3925, 7, 88, 2, 2, 3925, 3926, 7, 71, 2, 2, 3926, 3927, 7, 80, 2, 2, 3927, 3928, 7, 86, 2, 2, 3928, 3929, 7, 97, 2, 2, 3929, 3930, 7, 78, 2, 2, 3930, 3931, 7, 81, 2, 2, 3931, 3932, 7, 85, 2, 2, 3932, 3933, 7, 85, 2, 2, 3933, 436, 3, 2, 2, 2, 3934, 3935, 7, 80, 2, 2, 3935, 3936, 7, 81, 2, 2, 3936, 3937, 7, 86, 2, 2, 3937, 438, 3, 2, 2, 2, 3938, 3939, 7, 80, 2, 2, 3939, 3940, 7, 81, 2, 2, 3940, 3941, 7, 86, 2, 2, 3941, 3942, 7, 75, 2, 2, 3942, 3943, 7, 72, 2, 2, 3943, 3944, 7, 75, 2, 2, 3944, 3945, 7, 69, 2, 2, 3945, 3946, 7, 67, 2, 2, 3946, 3947, 7, 86, 2, 2, 3947, 3948, 7, 75, 2, 2, 3948, 3949, 7, 81, 2, 2, 3949, 3950, 7, 80, 2, 2, 3950, 440, 3, 2, 2, 2, 3951, 3952, 7, 80, 2, 2, 3952, 3953, 7, 86, 2, 2, 3953, 3954, 7, 78, 2, 2, 3954, 3955, 7, 79, 2, 2, 3955, 442, 3, 2, 2, 2, 3956, 3957, 7, 80, 2, 2, 3957, 3958, 7, 87, 2, 2, 3958, 3959, 7, 78, 2, 2, 3959, 3960, 7, 78, 2, 2, 3960, 444, 3, 2, 2, 2, 3961, 3962, 7, 80, 2, 2, 3962, 3963, 7, 87, 2, 2, 3963, 3964, 7, 78, 2, 2, 3964, 3965, 7, 78, 2, 2, 3965, 3966, 7, 75, 2, 2, 3966, 3967, 7, 72, 2, 2, 3967, 446, 3, 2, 2, 2, 3968, 3969, 7, 81, 2, 2, 3969, 3970, 7, 72, 2, 2, 3970, 448, 3, 2, 2, 2, 3971, 3972, 7, 81, 2, 2, 3972, 3973, 7, 72, 2, 2, 3973, 3974, 7, 72, 2, 2, 3974, 450, 3, 2, 2, 2, 3975, 3976, 7, 81, 2, 2, 3976, 3977, 7, 72, 2, 2, 3977, 3978, 7, 72, 2, 2, 3978, 3979, 7, 85, 2, 2, 3979, 3980, 7, 71, 2, 2, 3980, 3981, 7, 86, 2, 2, 3981, 3982, 7, 85, 2, 2, 3982, 452, 3, 2, 2, 2, 3983, 3984, 7, 81, 2, 2, 3984, 3985, 7, 78, 2, 2, 3985, 3986, 7, 70, 2, 2, 3986, 3987, 7, 97, 2, 2, 3987, 3988, 7, 82, 2, 2, 3988, 3989, 7, 67, 2, 2, 3989, 3990, 7, 85, 2, 2, 3990, 3991, 7, 85, 2, 2, 3991, 3992, 7, 89, 2, 2, 3992, 3993, 7, 81, 2, 2, 3993, 3994, 7, 84, 2, 2, 3994, 3995, 7, 70, 2, 2, 3995, 454, 3, 2, 2, 2, 3996, 3997, 7, 81, 2, 2, 3997, 3998, 7, 80, 2, 2, 3998, 456, 3, 2, 2, 2, 3999, 4000, 7, 81, 2, 2, 4000, 4001, 7, 80, 2, 2, 4001, 4002, 7, 97, 2, 2, 4002, 4003, 7, 72, 2, 2, 4003, 4004, 7, 67, 2, 2, 4004, 4005, 7, 75, 2, 2, 4005, 4006, 7, 78, 2, 2, 4006, 4007, 7, 87, 2, 2, 4007, 4008, 7, 84, 2, 2, 4008, 4009, 7, 71, 2, 2, 4009, 458, 3, 2, 2, 2, 4010, 4011, 7, 81, 2, 2, 4011, 4012, 7, 82, 2, 2, 4012, 4013, 7, 71, 2, 2, 4013, 4014, 7, 80, 2, 2, 4014, 460, 3, 2, 2, 2, 4015, 4016, 7, 81, 2, 2, 4016, 4017, 7, 82, 2, 2, 4017, 4018, 7, 71, 2, 2, 4018, 4019, 7, 80, 2, 2, 4019, 4020, 7, 70, 2, 2, 4020, 4021, 7, 67, 2, 2, 4021, 4022, 7, 86, 2, 2, 4022, 4023, 7, 67, 2, 2, 4023, 4024, 7, 85, 2, 2, 4024, 4025, 7, 81, 2, 2, 4025, 4026, 7, 87, 2, 2, 4026, 4027, 7, 84, 2, 2, 4027, 4028, 7, 69, 2, 2, 4028, 4029, 7, 71, 2, 2, 4029, 462, 3, 2, 2, 2, 4030, 4031, 7, 81, 2, 2, 4031, 4032, 7, 82, 2, 2, 4032, 4033, 7, 71, 2, 2, 4033, 4034, 7, 80, 2, 2, 4034, 4035, 7, 83, 2, 2, 4035, 4036, 7, 87, 2, 2, 4036, 4037, 7, 71, 2, 2, 4037, 4038, 7, 84, 2, 2, 4038, 4039, 7, 91, 2, 2, 4039, 464, 3, 2, 2, 2, 4040, 4041, 7, 81, 2, 2, 4041, 4042, 7, 82, 2, 2, 4042, 4043, 7, 71, 2, 2, 4043, 4044, 7, 80, 2, 2, 4044, 4045, 7, 84, 2, 2, 4045, 4046, 7, 81, 2, 2, 4046, 4047, 7, 89, 2, 2, 4047, 4048, 7, 85, 2, 2, 4048, 4049, 7, 71, 2, 2, 4049, 4050, 7, 86, 2, 2, 4050, 466, 3, 2, 2, 2, 4051, 4052, 7, 81, 2, 2, 4052, 4053, 7, 82, 2, 2, 4053, 4054, 7, 71, 2, 2, 4054, 4055, 7, 80, 2, 2, 4055, 4056, 7, 90, 2, 2, 4056, 4057, 7, 79, 2, 2, 4057, 4058, 7, 78, 2, 2, 4058, 468, 3, 2, 2, 2, 4059, 4060, 7, 81, 2, 2, 4060, 4061, 7, 82, 2, 2, 4061, 4062, 7, 86, 2, 2, 4062, 4063, 7, 75, 2, 2, 4063, 4064, 7, 81, 2, 2, 4064, 4065, 7, 80, 2, 2, 4065, 470, 3, 2, 2, 2, 4066, 4067, 7, 81, 2, 2, 4067, 4068, 7, 84, 2, 2, 4068, 472, 3, 2, 2, 2, 4069, 4070, 7, 81, 2, 2, 4070, 4071, 7, 84, 2, 2, 4071, 4072, 7, 70, 2, 2, 4072, 4073, 7, 71, 2, 2, 4073, 4074, 7, 84, 2, 2, 4074, 474, 3, 2, 2, 2, 4075, 4076, 7, 81, 2, 2, 4076, 4077, 7, 87, 2, 2, 4077, 4078, 7, 86, 2, 2, 4078, 4079, 7, 71, 2, 2, 4079, 4080, 7, 84, 2, 2, 4080, 476, 3, 2, 2, 2, 4081, 4082, 7, 81, 2, 2, 4082, 4083, 7, 88, 2, 2, 4083, 4084, 7, 71, 2, 2, 4084, 4085, 7, 84, 2, 2, 4085, 478, 3, 2, 2, 2, 4086, 4087, 7, 82, 2, 2, 4087, 4088, 7, 67, 2, 2, 4088, 4089, 7, 73, 2, 2, 4089, 4090, 7, 71, 2, 2, 4090, 480, 3, 2, 2, 2, 4091, 4092, 7, 82, 2, 2, 4092, 4093, 7, 67, 2, 2, 4093, 4094, 7, 84, 2, 2, 4094, 4095, 7, 67, 2, 2, 4095, 4096, 7, 79, 2, 2, 4096, 4097, 7, 97, 2, 2, 4097, 4098, 7, 80, 2, 2, 4098, 4099, 7, 81, 2, 2, 4099, 4100, 7, 70, 2, 2, 4100, 4101, 7, 71, 2, 2, 4101, 482, 3, 2, 2, 2, 4102, 4103, 7, 82, 2, 2, 4103, 4104, 7, 67, 2, 2, 4104, 4105, 7, 84, 2, 2, 4105, 4106, 7, 86, 2, 2, 4106, 4107, 7, 75, 2, 2, 4107, 4108, 7, 67, 2, 2, 4108, 4109, 7, 78, 2, 2, 4109, 484, 3, 2, 2, 2, 4110, 4111, 7, 82, 2, 2, 4111, 4112, 7, 67, 2, 2, 4112, 4113, 7, 85, 2, 2, 4113, 4114, 7, 85, 2, 2, 4114, 4115, 7, 89, 2, 2, 4115, 4116, 7, 81, 2, 2, 4116, 4117, 7, 84, 2, 2, 4117, 4118, 7, 70, 2, 2, 4118, 486, 3, 2, 2, 2, 4119, 4120, 7, 82, 2, 2, 4120, 4121, 7, 71, 2, 2, 4121, 4122, 7, 84, 2, 2, 4122, 4123, 7, 69, 2, 2, 4123, 4124, 7, 71, 2, 2, 4124, 4125, 7, 80, 2, 2, 4125, 4126, 7, 86, 2, 2, 4126, 488, 3, 2, 2, 2, 4127, 4128, 7, 82, 2, 2, 4128, 4129, 7, 71, 2, 2, 4129, 4130, 7, 84, 2, 2, 4130, 4131, 7, 79, 2, 2, 4131, 4132, 7, 75, 2, 2, 4132, 4133, 7, 85, 2, 2, 4133, 4134, 7, 85, 2, 2, 4134, 4135, 7, 75, 2, 2, 4135, 4136, 7, 81, 2, 2, 4136, 4137, 7, 80, 2, 2, 4137, 4138, 7, 97, 2, 2, 4138, 4139, 7, 85, 2, 2, 4139, 4140, 7, 71, 2, 2, 4140, 4141, 7, 86, 2, 2, 4141, 490, 3, 2, 2, 2, 4142, 4143, 7, 82, 2, 2, 4143, 4144, 7, 71, 2, 2, 4144, 4145, 7, 84, 2, 2, 4145, 4146, 7, 97, 2, 2, 4146, 4147, 7, 69, 2, 2, 4147, 4148, 7, 82, 2, 2, 4148, 4149, 7, 87, 2, 2, 4149, 492, 3, 2, 2, 2, 4150, 4151, 7, 82, 2, 2, 4151, 4152, 7, 71, 2, 2, 4152, 4153, 7, 84, 2, 2, 4153, 4154, 7, 97, 2, 2, 4154, 4155, 7, 70, 2, 2, 4155, 4156, 7, 68, 2, 2, 4156, 494, 3, 2, 2, 2, 4157, 4158, 7, 82, 2, 2, 4158, 4159, 7, 71, 2, 2, 4159, 4160, 7, 84, 2, 2, 4160, 4161, 7, 97, 2, 2, 4161, 4162, 7, 80, 2, 2, 4162, 4163, 7, 81, 2, 2, 4163, 4164, 7, 70, 2, 2, 4164, 4165, 7, 71, 2, 2, 4165, 496, 3, 2, 2, 2, 4166, 4167, 7, 82, 2, 2, 4167, 4168, 7, 75, 2, 2, 4168, 4169, 7, 88, 2, 2, 4169, 4170, 7, 81, 2, 2, 4170, 4171, 7, 86, 2, 2, 4171, 498, 3, 2, 2, 2, 4172, 4173, 7, 82, 2, 2, 4173, 4174, 7, 78, 2, 2, 4174, 4175, 7, 67, 2, 2, 4175, 4176, 7, 80, 2, 2, 4176, 500, 3, 2, 2, 2, 4177, 4178, 7, 82, 2, 2, 4178, 4179, 7, 78, 2, 2, 4179, 4180, 7, 67, 2, 2, 4180, 4181, 7, 86, 2, 2, 4181, 4182, 7, 72, 2, 2, 4182, 4183, 7, 81, 2, 2, 4183, 4184, 7, 84, 2, 2, 4184, 4185, 7, 79, 2, 2, 4185, 502, 3, 2, 2, 2, 4186, 4187, 7, 82, 2, 2, 4187, 4188, 7, 81, 2, 2, 4188, 4189, 7, 78, 2, 2, 4189, 4190, 7, 75, 2, 2, 4190, 4191, 7, 69, 2, 2, 4191, 4192, 7, 91, 2, 2, 4192, 504, 3, 2, 2, 2, 4193, 4194, 7, 82, 2, 2, 4194, 4195, 7, 84, 2, 2, 4195, 4196, 7, 71, 2, 2, 4196, 4197, 7, 69, 2, 2, 4197, 4198, 7, 75, 2, 2, 4198, 4199, 7, 85, 2, 2, 4199, 4200, 7, 75, 2, 2, 4200, 4201, 7, 81, 2, 2, 4201, 4202, 7, 80, 2, 2, 4202, 506, 3, 2, 2, 2, 4203, 4204, 7, 82, 2, 2, 4204, 4205, 7, 84, 2, 2, 4205, 4206, 7, 71, 2, 2, 4206, 4207, 7, 70, 2, 2, 4207, 4208, 7, 75, 2, 2, 4208, 4209, 7, 69, 2, 2, 4209, 4210, 7, 67, 2, 2, 4210, 4211, 7, 86, 2, 2, 4211, 4212, 7, 71, 2, 2, 4212, 508, 3, 2, 2, 2, 4213, 4214, 7, 82, 2, 2, 4214, 4215, 7, 84, 2, 2, 4215, 4216, 7, 75, 2, 2, 4216, 4217, 7, 79, 2, 2, 4217, 4218, 7, 67, 2, 2, 4218, 4219, 7, 84, 2, 2, 4219, 4220, 7, 91, 2, 2, 4220, 510, 3, 2, 2, 2, 4221, 4222, 7, 82, 2, 2, 4222, 4223, 7, 84, 2, 2, 4223, 4224, 7, 75, 2, 2, 4224, 4225, 7, 80, 2, 2, 4225, 4226, 7, 86, 2, 2, 4226, 512, 3, 2, 2, 2, 4227, 4228, 7, 82, 2, 2, 4228, 4229, 7, 84, 2, 2, 4229, 4230, 7, 81, 2, 2, 4230, 4231, 7, 69, 2, 2, 4231, 514, 3, 2, 2, 2, 4232, 4233, 7, 82, 2, 2, 4233, 4234, 7, 84, 2, 2, 4234, 4235, 7, 81, 2, 2, 4235, 4236, 7, 69, 2, 2, 4236, 4237, 7, 71, 2, 2, 4237, 4238, 7, 70, 2, 2, 4238, 4239, 7, 87, 2, 2, 4239, 4240, 7, 84, 2, 2, 4240, 4241, 7, 71, 2, 2, 4241, 516, 3, 2, 2, 2, 4242, 4243, 7, 82, 2, 2, 4243, 4244, 7, 84, 2, 2, 4244, 4245, 7, 81, 2, 2, 4245, 4246, 7, 69, 2, 2, 4246, 4247, 7, 71, 2, 2, 4247, 4248, 7, 85, 2, 2, 4248, 4249, 7, 85, 2, 2, 4249, 518, 3, 2, 2, 2, 4250, 4251, 7, 82, 2, 2, 4251, 4252, 7, 87, 2, 2, 4252, 4253, 7, 68, 2, 2, 4253, 4254, 7, 78, 2, 2, 4254, 4255, 7, 75, 2, 2, 4255, 4256, 7, 69, 2, 2, 4256, 520, 3, 2, 2, 2, 4257, 4258, 7, 82, 2, 2, 4258, 4259, 7, 91, 2, 2, 4259, 4260, 7, 86, 2, 2, 4260, 4261, 7, 74, 2, 2, 4261, 4262, 7, 81, 2, 2, 4262, 4263, 7, 80, 2, 2, 4263, 522, 3, 2, 2, 2, 4264, 4265, 7, 84, 2, 2, 4265, 524, 3, 2, 2, 2, 4266, 4267, 7, 84, 2, 2, 4267, 4268, 7, 67, 2, 2, 4268, 4269, 7, 75, 2, 2, 4269, 4270, 7, 85, 2, 2, 4270, 4271, 7, 71, 2, 2, 4271, 4272, 7, 84, 2, 2, 4272, 4273, 7, 84, 2, 2, 4273, 4274, 7, 81, 2, 2, 4274, 4275, 7, 84, 2, 2, 4275, 526, 3, 2, 2, 2, 4276, 4277, 7, 84, 2, 2, 4277, 4278, 7, 67, 2, 2, 4278, 4279, 7, 89, 2, 2, 4279, 528, 3, 2, 2, 2, 4280, 4281, 7, 84, 2, 2, 4281, 4282, 7, 71, 2, 2, 4282, 4283, 7, 67, 2, 2, 4283, 4284, 7, 70, 2, 2, 4284, 530, 3, 2, 2, 2, 4285, 4286, 7, 84, 2, 2, 4286, 4287, 7, 71, 2, 2, 4287, 4288, 7, 67, 2, 2, 4288, 4289, 7, 70, 2, 2, 4289, 4290, 7, 86, 2, 2, 4290, 4291, 7, 71, 2, 2, 4291, 4292, 7, 90, 2, 2, 4292, 4293, 7, 86, 2, 2, 4293, 532, 3, 2, 2, 2, 4294, 4295, 7, 84, 2, 2, 4295, 4296, 7, 71, 2, 2, 4296, 4297, 7, 67, 2, 2, 4297, 4298, 7, 70, 2, 2, 4298, 4299, 7, 97, 2, 2, 4299, 4300, 7, 89, 2, 2, 4300, 4301, 7, 84, 2, 2, 4301, 4302, 7, 75, 2, 2, 4302, 4303, 7, 86, 2, 2, 4303, 4304, 7, 71, 2, 2, 4304, 4305, 7, 97, 2, 2, 4305, 4306, 7, 72, 2, 2, 4306, 4307, 7, 75, 2, 2, 4307, 4308, 7, 78, 2, 2, 4308, 4309, 7, 71, 2, 2, 4309, 4310, 7, 73, 2, 2, 4310, 4311, 7, 84, 2, 2, 4311, 4312, 7, 81, 2, 2, 4312, 4313, 7, 87, 2, 2, 4313, 4314, 7, 82, 2, 2, 4314, 4315, 7, 85, 2, 2, 4315, 534, 3, 2, 2, 2, 4316, 4317, 7, 84, 2, 2, 4317, 4318, 7, 71, 2, 2, 4318, 4319, 7, 69, 2, 2, 4319, 4320, 7, 81, 2, 2, 4320, 4321, 7, 80, 2, 2, 4321, 4322, 7, 72, 2, 2, 4322, 4323, 7, 75, 2, 2, 4323, 4324, 7, 73, 2, 2, 4324, 4325, 7, 87, 2, 2, 4325, 4326, 7, 84, 2, 2, 4326, 4327, 7, 71, 2, 2, 4327, 536, 3, 2, 2, 2, 4328, 4329, 7, 84, 2, 2, 4329, 4330, 7, 71, 2, 2, 4330, 4331, 7, 72, 2, 2, 4331, 4332, 7, 71, 2, 2, 4332, 4333, 7, 84, 2, 2, 4333, 4334, 7, 71, 2, 2, 4334, 4335, 7, 80, 2, 2, 4335, 4336, 7, 69, 2, 2, 4336, 4337, 7, 71, 2, 2, 4337, 4338, 7, 85, 2, 2, 4338, 538, 3, 2, 2, 2, 4339, 4340, 7, 84, 2, 2, 4340, 4341, 7, 71, 2, 2, 4341, 4342, 7, 73, 2, 2, 4342, 4343, 7, 71, 2, 2, 4343, 4344, 7, 80, 2, 2, 4344, 4345, 7, 71, 2, 2, 4345, 4346, 7, 84, 2, 2, 4346, 4347, 7, 67, 2, 2, 4347, 4348, 7, 86, 2, 2, 4348, 4349, 7, 71, 2, 2, 4349, 540, 3, 2, 2, 2, 4350, 4351, 7, 84, 2, 2, 4351, 4352, 7, 71, 2, 2, 4352, 4353, 7, 78, 2, 2, 4353, 4354, 7, 67, 2, 2, 4354, 4355, 7, 86, 2, 2, 4355, 4356, 7, 71, 2, 2, 4356, 4357, 7, 70, 2, 2, 4357, 4358, 7, 97, 2, 2, 4358, 4359, 7, 69, 2, 2, 4359, 4360, 7, 81, 2, 2, 4360, 4361, 7, 80, 2, 2, 4361, 4362, 7, 88, 2, 2, 4362, 4363, 7, 71, 2, 2, 4363, 4364, 7, 84, 2, 2, 4364, 4365, 7, 85, 2, 2, 4365, 4366, 7, 67, 2, 2, 4366, 4367, 7, 86, 2, 2, 4367, 4368, 7, 75, 2, 2, 4368, 4369, 7, 81, 2, 2, 4369, 4370, 7, 80, 2, 2, 4370, 542, 3, 2, 2, 2, 4371, 4372, 7, 84, 2, 2, 4372, 4373, 7, 71, 2, 2, 4373, 4374, 7, 78, 2, 2, 4374, 4375, 7, 67, 2, 2, 4375, 4376, 7, 86, 2, 2, 4376, 4377, 7, 71, 2, 2, 4377, 4378, 7, 70, 2, 2, 4378, 4379, 7, 97, 2, 2, 4379, 4380, 7, 69, 2, 2, 4380, 4381, 7, 81, 2, 2, 4381, 4382, 7, 80, 2, 2, 4382, 4383, 7, 88, 2, 2, 4383, 4384, 7, 71, 2, 2, 4384, 4385, 7, 84, 2, 2, 4385, 4386, 7, 85, 2, 2, 4386, 4387, 7, 67, 2, 2, 4387, 4388, 7, 86, 2, 2, 4388, 4389, 7, 75, 2, 2, 4389, 4390, 7, 81, 2, 2, 4390, 4391, 7, 80, 2, 2, 4391, 4392, 7, 97, 2, 2, 4392, 4393, 7, 73, 2, 2, 4393, 4394, 7, 84, 2, 2, 4394, 4395, 7, 81, 2, 2, 4395, 4396, 7, 87, 2, 2, 4396, 4397, 7, 82, 2, 2, 4397, 544, 3, 2, 2, 2, 4398, 4399, 7, 84, 2, 2, 4399, 4400, 7, 71, 2, 2, 4400, 4401, 7, 82, 2, 2, 4401, 4402, 7, 78, 2, 2, 4402, 4403, 7, 75, 2, 2, 4403, 4404, 7, 69, 2, 2, 4404, 4405, 7, 67, 2, 2, 4405, 4406, 7, 86, 2, 2, 4406, 4407, 7, 75, 2, 2, 4407, 4408, 7, 81, 2, 2, 4408, 4409, 7, 80, 2, 2, 4409, 546, 3, 2, 2, 2, 4410, 4411, 7, 84, 2, 2, 4411, 4412, 7, 71, 2, 2, 4412, 4413, 7, 83, 2, 2, 4413, 4414, 7, 87, 2, 2, 4414, 4415, 7, 75, 2, 2, 4415, 4416, 7, 84, 2, 2, 4416, 4417, 7, 71, 2, 2, 4417, 4418, 7, 70, 2, 2, 4418, 548, 3, 2, 2, 2, 4419, 4420, 7, 84, 2, 2, 4420, 4421, 7, 71, 2, 2, 4421, 4422, 7, 85, 2, 2, 4422, 4423, 7, 71, 2, 2, 4423, 4424, 7, 86, 2, 2, 4424, 550, 3, 2, 2, 2, 4425, 4426, 7, 84, 2, 2, 4426, 4427, 7, 71, 2, 2, 4427, 4428, 7, 85, 2, 2, 4428, 4429, 7, 86, 2, 2, 4429, 4430, 7, 67, 2, 2, 4430, 4431, 7, 84, 2, 2, 4431, 4432, 7, 86, 2, 2, 4432, 552, 3, 2, 2, 2, 4433, 4434, 7, 84, 2, 2, 4434, 4435, 7, 71, 2, 2, 4435, 4436, 7, 85, 2, 2, 4436, 4437, 7, 86, 2, 2, 4437, 4438, 7, 81, 2, 2, 4438, 4439, 7, 84, 2, 2, 4439, 4440, 7, 71, 2, 2, 4440, 554, 3, 2, 2, 2, 4441, 4442, 7, 84, 2, 2, 4442, 4443, 7, 71, 2, 2, 4443, 4444, 7, 85, 2, 2, 4444, 4445, 7, 86, 2, 2, 4445, 4446, 7, 84, 2, 2, 4446, 4447, 7, 75, 2, 2, 4447, 4448, 7, 69, 2, 2, 4448, 4449, 7, 86, 2, 2, 4449, 556, 3, 2, 2, 2, 4450, 4451, 7, 84, 2, 2, 4451, 4452, 7, 71, 2, 2, 4452, 4453, 7, 85, 2, 2, 4453, 4454, 7, 87, 2, 2, 4454, 4455, 7, 79, 2, 2, 4455, 4456, 7, 71, 2, 2, 4456, 558, 3, 2, 2, 2, 4457, 4458, 7, 84, 2, 2, 4458, 4459, 7, 71, 2, 2, 4459, 4460, 7, 86, 2, 2, 4460, 4461, 7, 67, 2, 2, 4461, 4462, 7, 75, 2, 2, 4462, 4463, 7, 80, 2, 2, 4463, 4464, 7, 70, 2, 2, 4464, 4465, 7, 67, 2, 2, 4465, 4466, 7, 91, 2, 2, 4466, 4467, 7, 85, 2, 2, 4467, 560, 3, 2, 2, 2, 4468, 4469, 7, 84, 2, 2, 4469, 4470, 7, 71, 2, 2, 4470, 4471, 7, 86, 2, 2, 4471, 4472, 7, 87, 2, 2, 4472, 4473, 7, 84, 2, 2, 4473, 4474, 7, 80, 2, 2, 4474, 562, 3, 2, 2, 2, 4475, 4476, 7, 84, 2, 2, 4476, 4477, 7, 71, 2, 2, 4477, 4478, 7, 86, 2, 2, 4478, 4479, 7, 87, 2, 2, 4479, 4480, 7, 84, 2, 2, 4480, 4481, 7, 80, 2, 2, 4481, 4482, 7, 85, 2, 2, 4482, 564, 3, 2, 2, 2, 4483, 4484, 7, 84, 2, 2, 4484, 4485, 7, 71, 2, 2, 4485, 4486, 7, 88, 2, 2, 4486, 4487, 7, 71, 2, 2, 4487, 4488, 7, 84, 2, 2, 4488, 4489, 7, 86, 2, 2, 4489, 566, 3, 2, 2, 2, 4490, 4491, 7, 84, 2, 2, 4491, 4492, 7, 71, 2, 2, 4492, 4493, 7, 88, 2, 2, 4493, 4494, 7, 81, 2, 2, 4494, 4495, 7, 77, 2, 2, 4495, 4496, 7, 71, 2, 2, 4496, 568, 3, 2, 2, 2, 4497, 4498, 7, 84, 2, 2, 4498, 4499, 7, 71, 2, 2, 4499, 4500, 7, 89, 2, 2, 4500, 4501, 7, 75, 2, 2, 4501, 4502, 7, 80, 2, 2, 4502, 4503, 7, 70, 2, 2, 4503, 570, 3, 2, 2, 2, 4504, 4505, 7, 84, 2, 2, 4505, 4506, 7, 75, 2, 2, 4506, 4507, 7, 73, 2, 2, 4507, 4508, 7, 74, 2, 2, 4508, 4509, 7, 86, 2, 2, 4509, 572, 3, 2, 2, 2, 4510, 4511, 7, 84, 2, 2, 4511, 4512, 7, 81, 2, 2, 4512, 4513, 7, 78, 2, 2, 4513, 4514, 7, 78, 2, 2, 4514, 4515, 7, 68, 2, 2, 4515, 4516, 7, 67, 2, 2, 4516, 4517, 7, 69, 2, 2, 4517, 4518, 7, 77, 2, 2, 4518, 574, 3, 2, 2, 2, 4519, 4520, 7, 84, 2, 2, 4520, 4521, 7, 81, 2, 2, 4521, 4522, 7, 78, 2, 2, 4522, 4523, 7, 71, 2, 2, 4523, 576, 3, 2, 2, 2, 4524, 4525, 7, 84, 2, 2, 4525, 4526, 7, 81, 2, 2, 4526, 4527, 7, 89, 2, 2, 4527, 4528, 7, 69, 2, 2, 4528, 4529, 7, 81, 2, 2, 4529, 4530, 7, 87, 2, 2, 4530, 4531, 7, 80, 2, 2, 4531, 4532, 7, 86, 2, 2, 4532, 578, 3, 2, 2, 2, 4533, 4534, 7, 84, 2, 2, 4534, 4535, 7, 81, 2, 2, 4535, 4536, 7, 89, 2, 2, 4536, 4537, 7, 73, 2, 2, 4537, 4538, 7, 87, 2, 2, 4538, 4539, 7, 75, 2, 2, 4539, 4540, 7, 70, 2, 2, 4540, 4541, 7, 69, 2, 2, 4541, 4542, 7, 81, 2, 2, 4542, 4543, 7, 78, 2, 2, 4543, 580, 3, 2, 2, 2, 4544, 4545, 7, 84, 2, 2, 4545, 4546, 7, 85, 2, 2, 4546, 4547, 7, 67, 2, 2, 4547, 4548, 7, 97, 2, 2, 4548, 4549, 7, 55, 2, 2, 4549, 4550, 7, 51, 2, 2, 4550, 4551, 7, 52, 2, 2, 4551, 582, 3, 2, 2, 2, 4552, 4553, 7, 84, 2, 2, 4553, 4554, 7, 85, 2, 2, 4554, 4555, 7, 67, 2, 2, 4555, 4556, 7, 97, 2, 2, 4556, 4557, 7, 51, 2, 2, 4557, 4558, 7, 50, 2, 2, 4558, 4559, 7, 52, 2, 2, 4559, 4560, 7, 54, 2, 2, 4560, 584, 3, 2, 2, 2, 4561, 4562, 7, 84, 2, 2, 4562, 4563, 7, 85, 2, 2, 4563, 4564, 7, 67, 2, 2, 4564, 4565, 7, 97, 2, 2, 4565, 4566, 7, 52, 2, 2, 4566, 4567, 7, 50, 2, 2, 4567, 4568, 7, 54, 2, 2, 4568, 4569, 7, 58, 2, 2, 4569, 586, 3, 2, 2, 2, 4570, 4571, 7, 84, 2, 2, 4571, 4572, 7, 85, 2, 2, 4572, 4573, 7, 67, 2, 2, 4573, 4574, 7, 97, 2, 2, 4574, 4575, 7, 53, 2, 2, 4575, 4576, 7, 50, 2, 2, 4576, 4577, 7, 57, 2, 2, 4577, 4578, 7, 52, 2, 2, 4578, 588, 3, 2, 2, 2, 4579, 4580, 7, 84, 2, 2, 4580, 4581, 7, 85, 2, 2, 4581, 4582, 7, 67, 2, 2, 4582, 4583, 7, 97, 2, 2, 4583, 4584, 7, 54, 2, 2, 4584, 4585, 7, 50, 2, 2, 4585, 4586, 7, 59, 2, 2, 4586, 4587, 7, 56, 2, 2, 4587, 590, 3, 2, 2, 2, 4588, 4589, 7, 85, 2, 2, 4589, 4590, 7, 67, 2, 2, 4590, 4591, 7, 72, 2, 2, 4591, 4592, 7, 71, 2, 2, 4592, 4593, 7, 86, 2, 2, 4593, 4594, 7, 91, 2, 2, 4594, 592, 3, 2, 2, 2, 4595, 4596, 7, 84, 2, 2, 4596, 4597, 7, 87, 2, 2, 4597, 4598, 7, 78, 2, 2, 4598, 4599, 7, 71, 2, 2, 4599, 594, 3, 2, 2, 2, 4600, 4601, 7, 85, 2, 2, 4601, 4602, 7, 67, 2, 2, 4602, 4603, 7, 72, 2, 2, 4603, 4604, 7, 71, 2, 2, 4604, 596, 3, 2, 2, 2, 4605, 4606, 7, 85, 2, 2, 4606, 4607, 7, 67, 2, 2, 4607, 4608, 7, 88, 2, 2, 4608, 4609, 7, 71, 2, 2, 4609, 598, 3, 2, 2, 2, 4610, 4611, 7, 85, 2, 2, 4611, 4612, 7, 69, 2, 2, 4612, 4613, 7, 74, 2, 2, 4613, 4614, 7, 71, 2, 2, 4614, 4615, 7, 70, 2, 2, 4615, 4616, 7, 87, 2, 2, 4616, 4617, 7, 78, 2, 2, 4617, 4618, 7, 71, 2, 2, 4618, 4619, 7, 84, 2, 2, 4619, 600, 3, 2, 2, 2, 4620, 4621, 7, 85, 2, 2, 4621, 4622, 7, 69, 2, 2, 4622, 4623, 7, 74, 2, 2, 4623, 4624, 7, 71, 2, 2, 4624, 4625, 7, 79, 2, 2, 4625, 4626, 7, 67, 2, 2, 4626, 602, 3, 2, 2, 2, 4627, 4628, 7, 85, 2, 2, 4628, 4629, 7, 69, 2, 2, 4629, 4630, 7, 74, 2, 2, 4630, 4631, 7, 71, 2, 2, 4631, 4632, 7, 79, 2, 2, 4632, 4633, 7, 71, 2, 2, 4633, 604, 3, 2, 2, 2, 4634, 4635, 7, 85, 2, 2, 4635, 4636, 7, 71, 2, 2, 4636, 4637, 7, 69, 2, 2, 4637, 4638, 7, 87, 2, 2, 4638, 4639, 7, 84, 2, 2, 4639, 4640, 7, 75, 2, 2, 4640, 4641, 7, 86, 2, 2, 4641, 4642, 7, 91, 2, 2, 4642, 4643, 7, 67, 2, 2, 4643, 4644, 7, 87, 2, 2, 4644, 4645, 7, 70, 2, 2, 4645, 4646, 7, 75, 2, 2, 4646, 4647, 7, 86, 2, 2, 4647, 606, 3, 2, 2, 2, 4648, 4649, 7, 85, 2, 2, 4649, 4650, 7, 71, 2, 2, 4650, 4651, 7, 78, 2, 2, 4651, 4652, 7, 71, 2, 2, 4652, 4653, 7, 69, 2, 2, 4653, 4654, 7, 86, 2, 2, 4654, 608, 3, 2, 2, 2, 4655, 4656, 7, 85, 2, 2, 4656, 4657, 7, 71, 2, 2, 4657, 4658, 7, 79, 2, 2, 4658, 4659, 7, 67, 2, 2, 4659, 4660, 7, 80, 2, 2, 4660, 4661, 7, 86, 2, 2, 4661, 4662, 7, 75, 2, 2, 4662, 4663, 7, 69, 2, 2, 4663, 4664, 7, 77, 2, 2, 4664, 4665, 7, 71, 2, 2, 4665, 4666, 7, 91, 2, 2, 4666, 4667, 7, 82, 2, 2, 4667, 4668, 7, 74, 2, 2, 4668, 4669, 7, 84, 2, 2, 4669, 4670, 7, 67, 2, 2, 4670, 4671, 7, 85, 2, 2, 4671, 4672, 7, 71, 2, 2, 4672, 4673, 7, 86, 2, 2, 4673, 4674, 7, 67, 2, 2, 4674, 4675, 7, 68, 2, 2, 4675, 4676, 7, 78, 2, 2, 4676, 4677, 7, 71, 2, 2, 4677, 610, 3, 2, 2, 2, 4678, 4679, 7, 85, 2, 2, 4679, 4680, 7, 71, 2, 2, 4680, 4681, 7, 79, 2, 2, 4681, 4682, 7, 67, 2, 2, 4682, 4683, 7, 80, 2, 2, 4683, 4684, 7, 86, 2, 2, 4684, 4685, 7, 75, 2, 2, 4685, 4686, 7, 69, 2, 2, 4686, 4687, 7, 85, 2, 2, 4687, 4688, 7, 75, 2, 2, 4688, 4689, 7, 79, 2, 2, 4689, 4690, 7, 75, 2, 2, 4690, 4691, 7, 78, 2, 2, 4691, 4692, 7, 67, 2, 2, 4692, 4693, 7, 84, 2, 2, 4693, 4694, 7, 75, 2, 2, 4694, 4695, 7, 86, 2, 2, 4695, 4696, 7, 91, 2, 2, 4696, 4697, 7, 70, 2, 2, 4697, 4698, 7, 71, 2, 2, 4698, 4699, 7, 86, 2, 2, 4699, 4700, 7, 67, 2, 2, 4700, 4701, 7, 75, 2, 2, 4701, 4702, 7, 78, 2, 2, 4702, 4703, 7, 85, 2, 2, 4703, 4704, 7, 86, 2, 2, 4704, 4705, 7, 67, 2, 2, 4705, 4706, 7, 68, 2, 2, 4706, 4707, 7, 78, 2, 2, 4707, 4708, 7, 71, 2, 2, 4708, 612, 3, 2, 2, 2, 4709, 4710, 7, 85, 2, 2, 4710, 4711, 7, 71, 2, 2, 4711, 4712, 7, 79, 2, 2, 4712, 4713, 7, 67, 2, 2, 4713, 4714, 7, 80, 2, 2, 4714, 4715, 7, 86, 2, 2, 4715, 4716, 7, 75, 2, 2, 4716, 4717, 7, 69, 2, 2, 4717, 4718, 7, 85, 2, 2, 4718, 4719, 7, 75, 2, 2, 4719, 4720, 7, 79, 2, 2, 4720, 4721, 7, 75, 2, 2, 4721, 4722, 7, 78, 2, 2, 4722, 4723, 7, 67, 2, 2, 4723, 4724, 7, 84, 2, 2, 4724, 4725, 7, 75, 2, 2, 4725, 4726, 7, 86, 2, 2, 4726, 4727, 7, 91, 2, 2, 4727, 4728, 7, 86, 2, 2, 4728, 4729, 7, 67, 2, 2, 4729, 4730, 7, 68, 2, 2, 4730, 4731, 7, 78, 2, 2, 4731, 4732, 7, 71, 2, 2, 4732, 614, 3, 2, 2, 2, 4733, 4734, 7, 85, 2, 2, 4734, 4735, 7, 71, 2, 2, 4735, 4736, 7, 84, 2, 2, 4736, 4737, 7, 88, 2, 2, 4737, 4738, 7, 71, 2, 2, 4738, 4739, 7, 84, 2, 2, 4739, 616, 3, 2, 2, 2, 4740, 4741, 7, 85, 2, 2, 4741, 4742, 7, 71, 2, 2, 4742, 4743, 7, 84, 2, 2, 4743, 4744, 7, 88, 2, 2, 4744, 4745, 7, 75, 2, 2, 4745, 4746, 7, 69, 2, 2, 4746, 4747, 7, 71, 2, 2, 4747, 618, 3, 2, 2, 2, 4748, 4749, 7, 85, 2, 2, 4749, 4750, 7, 71, 2, 2, 4750, 4751, 7, 84, 2, 2, 4751, 4752, 7, 88, 2, 2, 4752, 4753, 7, 75, 2, 2, 4753, 4754, 7, 69, 2, 2, 4754, 4755, 7, 71, 2, 2, 4755, 4756, 7, 97, 2, 2, 4756, 4757, 7, 68, 2, 2, 4757, 4758, 7, 84, 2, 2, 4758, 4759, 7, 81, 2, 2, 4759, 4760, 7, 77, 2, 2, 4760, 4761, 7, 71, 2, 2, 4761, 4762, 7, 84, 2, 2, 4762, 620, 3, 2, 2, 2, 4763, 4764, 7, 85, 2, 2, 4764, 4765, 7, 71, 2, 2, 4765, 4766, 7, 84, 2, 2, 4766, 4767, 7, 88, 2, 2, 4767, 4768, 7, 75, 2, 2, 4768, 4769, 7, 69, 2, 2, 4769, 4770, 7, 71, 2, 2, 4770, 4771, 7, 97, 2, 2, 4771, 4772, 7, 80, 2, 2, 4772, 4773, 7, 67, 2, 2, 4773, 4774, 7, 79, 2, 2, 4774, 4775, 7, 71, 2, 2, 4775, 622, 3, 2, 2, 2, 4776, 4777, 7, 85, 2, 2, 4777, 4778, 7, 71, 2, 2, 4778, 4779, 7, 85, 2, 2, 4779, 4780, 7, 85, 2, 2, 4780, 4781, 7, 75, 2, 2, 4781, 4782, 7, 81, 2, 2, 4782, 4783, 7, 80, 2, 2, 4783, 624, 3, 2, 2, 2, 4784, 4785, 7, 85, 2, 2, 4785, 4786, 7, 71, 2, 2, 4786, 4787, 7, 85, 2, 2, 4787, 4788, 7, 85, 2, 2, 4788, 4789, 7, 75, 2, 2, 4789, 4790, 7, 81, 2, 2, 4790, 4791, 7, 80, 2, 2, 4791, 4792, 7, 97, 2, 2, 4792, 4793, 7, 87, 2, 2, 4793, 4794, 7, 85, 2, 2, 4794, 4795, 7, 71, 2, 2, 4795, 4796, 7, 84, 2, 2, 4796, 626, 3, 2, 2, 2, 4797, 4798, 7, 85, 2, 2, 4798, 4799, 7, 71, 2, 2, 4799, 4800, 7, 86, 2, 2, 4800, 628, 3, 2, 2, 2, 4801, 4802, 7, 85, 2, 2, 4802, 4803, 7, 71, 2, 2, 4803, 4804, 7, 86, 2, 2, 4804, 4805, 7, 87, 2, 2, 4805, 4806, 7, 85, 2, 2, 4806, 4807, 7, 71, 2, 2, 4807, 4808, 7, 84, 2, 2, 4808, 630, 3, 2, 2, 2, 4809, 4810, 7, 85, 2, 2, 4810, 4811, 7, 74, 2, 2, 4811, 4812, 7, 87, 2, 2, 4812, 4813, 7, 86, 2, 2, 4813, 4814, 7, 70, 2, 2, 4814, 4815, 7, 81, 2, 2, 4815, 4816, 7, 89, 2, 2, 4816, 4817, 7, 80, 2, 2, 4817, 632, 3, 2, 2, 2, 4818, 4819, 7, 85, 2, 2, 4819, 4820, 7, 75, 2, 2, 4820, 4821, 7, 70, 2, 2, 4821, 634, 3, 2, 2, 2, 4822, 4823, 7, 85, 2, 2, 4823, 4824, 7, 77, 2, 2, 4824, 4825, 7, 75, 2, 2, 4825, 4826, 7, 82, 2, 2, 4826, 636, 3, 2, 2, 2, 4827, 4828, 7, 85, 2, 2, 4828, 4829, 7, 81, 2, 2, 4829, 4830, 7, 72, 2, 2, 4830, 4831, 7, 86, 2, 2, 4831, 4832, 7, 80, 2, 2, 4832, 4833, 7, 87, 2, 2, 4833, 4834, 7, 79, 2, 2, 4834, 4835, 7, 67, 2, 2, 4835, 638, 3, 2, 2, 2, 4836, 4837, 7, 85, 2, 2, 4837, 4838, 7, 81, 2, 2, 4838, 4839, 7, 79, 2, 2, 4839, 4840, 7, 71, 2, 2, 4840, 640, 3, 2, 2, 2, 4841, 4842, 7, 85, 2, 2, 4842, 4843, 7, 81, 2, 2, 4843, 4844, 7, 87, 2, 2, 4844, 4845, 7, 84, 2, 2, 4845, 4846, 7, 69, 2, 2, 4846, 4847, 7, 71, 2, 2, 4847, 642, 3, 2, 2, 2, 4848, 4849, 7, 85, 2, 2, 4849, 4850, 7, 82, 2, 2, 4850, 4851, 7, 71, 2, 2, 4851, 4852, 7, 69, 2, 2, 4852, 4853, 7, 75, 2, 2, 4853, 4854, 7, 72, 2, 2, 4854, 4855, 7, 75, 2, 2, 4855, 4856, 7, 69, 2, 2, 4856, 4857, 7, 67, 2, 2, 4857, 4858, 7, 86, 2, 2, 4858, 4859, 7, 75, 2, 2, 4859, 4860, 7, 81, 2, 2, 4860, 4861, 7, 80, 2, 2, 4861, 644, 3, 2, 2, 2, 4862, 4863, 7, 85, 2, 2, 4863, 4864, 7, 82, 2, 2, 4864, 4865, 7, 78, 2, 2, 4865, 4866, 7, 75, 2, 2, 4866, 4867, 7, 86, 2, 2, 4867, 646, 3, 2, 2, 2, 4868, 4869, 7, 85, 2, 2, 4869, 4870, 7, 83, 2, 2, 4870, 4871, 7, 78, 2, 2, 4871, 4872, 7, 70, 2, 2, 4872, 4873, 7, 87, 2, 2, 4873, 4874, 7, 79, 2, 2, 4874, 4875, 7, 82, 2, 2, 4875, 4876, 7, 71, 2, 2, 4876, 4877, 7, 84, 2, 2, 4877, 4878, 7, 72, 2, 2, 4878, 4879, 7, 78, 2, 2, 4879, 4880, 7, 67, 2, 2, 4880, 4881, 7, 73, 2, 2, 4881, 4882, 7, 85, 2, 2, 4882, 648, 3, 2, 2, 2, 4883, 4884, 7, 85, 2, 2, 4884, 4885, 7, 83, 2, 2, 4885, 4886, 7, 78, 2, 2, 4886, 4887, 7, 70, 2, 2, 4887, 4888, 7, 87, 2, 2, 4888, 4889, 7, 79, 2, 2, 4889, 4890, 7, 82, 2, 2, 4890, 4891, 7, 71, 2, 2, 4891, 4892, 7, 84, 2, 2, 4892, 4893, 7, 82, 2, 2, 4893, 4894, 7, 67, 2, 2, 4894, 4895, 7, 86, 2, 2, 4895, 4896, 7, 74, 2, 2, 4896, 650, 3, 2, 2, 2, 4897, 4898, 7, 85, 2, 2, 4898, 4899, 7, 83, 2, 2, 4899, 4900, 7, 78, 2, 2, 4900, 4901, 7, 70, 2, 2, 4901, 4902, 7, 87, 2, 2, 4902, 4903, 7, 79, 2, 2, 4903, 4904, 7, 82, 2, 2, 4904, 4905, 7, 71, 2, 2, 4905, 4906, 7, 84, 2, 2, 4906, 4907, 7, 86, 2, 2, 4907, 4908, 7, 75, 2, 2, 4908, 4909, 7, 79, 2, 2, 4909, 4910, 7, 71, 2, 2, 4910, 4911, 7, 81, 2, 2, 4911, 4912, 7, 87, 2, 2, 4912, 4913, 7, 86, 2, 2, 4913, 4914, 7, 85, 2, 2, 4914, 652, 3, 2, 2, 2, 4915, 4916, 7, 85, 2, 2, 4916, 4917, 7, 86, 2, 2, 4917, 4918, 7, 67, 2, 2, 4918, 4919, 7, 86, 2, 2, 4919, 4920, 7, 75, 2, 2, 4920, 4921, 7, 85, 2, 2, 4921, 4922, 7, 86, 2, 2, 4922, 4923, 7, 75, 2, 2, 4923, 4924, 7, 69, 2, 2, 4924, 4925, 7, 85, 2, 2, 4925, 654, 3, 2, 2, 2, 4926, 4927, 7, 85, 2, 2, 4927, 4928, 7, 86, 2, 2, 4928, 4929, 7, 67, 2, 2, 4929, 4930, 7, 86, 2, 2, 4930, 4931, 7, 71, 2, 2, 4931, 656, 3, 2, 2, 2, 4932, 4933, 7, 85, 2, 2, 4933, 4934, 7, 86, 2, 2, 4934, 4935, 7, 67, 2, 2, 4935, 4936, 7, 86, 2, 2, 4936, 4937, 7, 85, 2, 2, 4937, 658, 3, 2, 2, 2, 4938, 4939, 7, 85, 2, 2, 4939, 4940, 7, 86, 2, 2, 4940, 4941, 7, 67, 2, 2, 4941, 4942, 7, 84, 2, 2, 4942, 4943, 7, 86, 2, 2, 4943, 660, 3, 2, 2, 2, 4944, 4945, 7, 85, 2, 2, 4945, 4946, 7, 86, 2, 2, 4946, 4947, 7, 67, 2, 2, 4947, 4948, 7, 84, 2, 2, 4948, 4949, 7, 86, 2, 2, 4949, 4950, 7, 71, 2, 2, 4950, 4951, 7, 70, 2, 2, 4951, 662, 3, 2, 2, 2, 4952, 4953, 7, 85, 2, 2, 4953, 4954, 7, 86, 2, 2, 4954, 4955, 7, 67, 2, 2, 4955, 4956, 7, 84, 2, 2, 4956, 4957, 7, 86, 2, 2, 4957, 4958, 7, 87, 2, 2, 4958, 4959, 7, 82, 2, 2, 4959, 4960, 7, 97, 2, 2, 4960, 4961, 7, 85, 2, 2, 4961, 4962, 7, 86, 2, 2, 4962, 4963, 7, 67, 2, 2, 4963, 4964, 7, 86, 2, 2, 4964, 4965, 7, 71, 2, 2, 4965, 664, 3, 2, 2, 2, 4966, 4967, 7, 85, 2, 2, 4967, 4968, 7, 86, 2, 2, 4968, 4969, 7, 81, 2, 2, 4969, 4970, 7, 82, 2, 2, 4970, 666, 3, 2, 2, 2, 4971, 4972, 7, 85, 2, 2, 4972, 4973, 7, 86, 2, 2, 4973, 4974, 7, 81, 2, 2, 4974, 4975, 7, 82, 2, 2, 4975, 4976, 7, 82, 2, 2, 4976, 4977, 7, 71, 2, 2, 4977, 4978, 7, 70, 2, 2, 4978, 668, 3, 2, 2, 2, 4979, 4980, 7, 85, 2, 2, 4980, 4981, 7, 86, 2, 2, 4981, 4982, 7, 81, 2, 2, 4982, 4983, 7, 82, 2, 2, 4983, 4984, 7, 97, 2, 2, 4984, 4985, 7, 81, 2, 2, 4985, 4986, 7, 80, 2, 2, 4986, 4987, 7, 97, 2, 2, 4987, 4988, 7, 71, 2, 2, 4988, 4989, 7, 84, 2, 2, 4989, 4990, 7, 84, 2, 2, 4990, 4991, 7, 81, 2, 2, 4991, 4992, 7, 84, 2, 2, 4992, 670, 3, 2, 2, 2, 4993, 4994, 7, 85, 2, 2, 4994, 4995, 7, 87, 2, 2, 4995, 4996, 7, 82, 2, 2, 4996, 4997, 7, 82, 2, 2, 4997, 4998, 7, 81, 2, 2, 4998, 4999, 7, 84, 2, 2, 4999, 5000, 7, 86, 2, 2, 5000, 5001, 7, 71, 2, 2, 5001, 5002, 7, 70, 2, 2, 5002, 672, 3, 2, 2, 2, 5003, 5004, 7, 85, 2, 2, 5004, 5005, 7, 91, 2, 2, 5005, 5006, 7, 85, 2, 2, 5006, 5007, 7, 86, 2, 2, 5007, 5008, 7, 71, 2, 2, 5008, 5009, 7, 79, 2, 2, 5009, 5010, 7, 97, 2, 2, 5010, 5011, 7, 87, 2, 2, 5011, 5012, 7, 85, 2, 2, 5012, 5013, 7, 71, 2, 2, 5013, 5014, 7, 84, 2, 2, 5014, 674, 3, 2, 2, 2, 5015, 5016, 7, 86, 2, 2, 5016, 5017, 7, 67, 2, 2, 5017, 5018, 7, 68, 2, 2, 5018, 5019, 7, 78, 2, 2, 5019, 5020, 7, 71, 2, 2, 5020, 676, 3, 2, 2, 2, 5021, 5022, 7, 86, 2, 2, 5022, 5023, 7, 67, 2, 2, 5023, 5024, 7, 68, 2, 2, 5024, 5025, 7, 78, 2, 2, 5025, 5026, 7, 71, 2, 2, 5026, 5027, 7, 85, 2, 2, 5027, 5028, 7, 67, 2, 2, 5028, 5029, 7, 79, 2, 2, 5029, 5030, 7, 82, 2, 2, 5030, 5031, 7, 78, 2, 2, 5031, 5032, 7, 71, 2, 2, 5032, 678, 3, 2, 2, 2, 5033, 5034, 7, 86, 2, 2, 5034, 5035, 7, 67, 2, 2, 5035, 5036, 7, 82, 2, 2, 5036, 5037, 7, 71, 2, 2, 5037, 680, 3, 2, 2, 2, 5038, 5039, 7, 86, 2, 2, 5039, 5040, 7, 67, 2, 2, 5040, 5041, 7, 84, 2, 2, 5041, 5042, 7, 73, 2, 2, 5042, 5043, 7, 71, 2, 2, 5043, 5044, 7, 86, 2, 2, 5044, 682, 3, 2, 2, 2, 5045, 5046, 7, 86, 2, 2, 5046, 5047, 7, 69, 2, 2, 5047, 5048, 7, 82, 2, 2, 5048, 684, 3, 2, 2, 2, 5049, 5050, 7, 86, 2, 2, 5050, 5051, 7, 71, 2, 2, 5051, 5052, 7, 90, 2, 2, 5052, 5053, 7, 86, 2, 2, 5053, 5054, 7, 85, 2, 2, 5054, 5055, 7, 75, 2, 2, 5055, 5056, 7, 92, 2, 2, 5056, 5057, 7, 71, 2, 2, 5057, 686, 3, 2, 2, 2, 5058, 5059, 7, 86, 2, 2, 5059, 5060, 7, 74, 2, 2, 5060, 5061, 7, 71, 2, 2, 5061, 5062, 7, 80, 2, 2, 5062, 688, 3, 2, 2, 2, 5063, 5064, 7, 86, 2, 2, 5064, 5065, 7, 81, 2, 2, 5065, 690, 3, 2, 2, 2, 5066, 5067, 7, 86, 2, 2, 5067, 5068, 7, 81, 2, 2, 5068, 5069, 7, 82, 2, 2, 5069, 692, 3, 2, 2, 2, 5070, 5071, 7, 86, 2, 2, 5071, 5072, 7, 84, 2, 2, 5072, 5073, 7, 67, 2, 2, 5073, 5074, 7, 69, 2, 2, 5074, 5075, 7, 77, 2, 2, 5075, 5076, 7, 97, 2, 2, 5076, 5077, 7, 69, 2, 2, 5077, 5078, 7, 67, 2, 2, 5078, 5079, 7, 87, 2, 2, 5079, 5080, 7, 85, 2, 2, 5080, 5081, 7, 67, 2, 2, 5081, 5082, 7, 78, 2, 2, 5082, 5083, 7, 75, 2, 2, 5083, 5084, 7, 86, 2, 2, 5084, 5085, 7, 91, 2, 2, 5085, 694, 3, 2, 2, 2, 5086, 5087, 7, 86, 2, 2, 5087, 5088, 7, 84, 2, 2, 5088, 5089, 7, 67, 2, 2, 5089, 5090, 7, 80, 2, 2, 5090, 696, 3, 2, 2, 2, 5091, 5092, 7, 86, 2, 2, 5092, 5093, 7, 84, 2, 2, 5093, 5094, 7, 67, 2, 2, 5094, 5095, 7, 80, 2, 2, 5095, 5096, 7, 85, 2, 2, 5096, 5097, 7, 67, 2, 2, 5097, 5098, 7, 69, 2, 2, 5098, 5099, 7, 86, 2, 2, 5099, 5100, 7, 75, 2, 2, 5100, 5101, 7, 81, 2, 2, 5101, 5102, 7, 80, 2, 2, 5102, 698, 3, 2, 2, 2, 5103, 5104, 7, 86, 2, 2, 5104, 5105, 7, 84, 2, 2, 5105, 5106, 7, 67, 2, 2, 5106, 5107, 7, 80, 2, 2, 5107, 5108, 7, 85, 2, 2, 5108, 5109, 7, 72, 2, 2, 5109, 5110, 7, 71, 2, 2, 5110, 5111, 7, 84, 2, 2, 5111, 700, 3, 2, 2, 2, 5112, 5113, 7, 86, 2, 2, 5113, 5114, 7, 84, 2, 2, 5114, 5115, 7, 75, 2, 2, 5115, 5116, 7, 73, 2, 2, 5116, 5117, 7, 73, 2, 2, 5117, 5118, 7, 71, 2, 2, 5118, 5119, 7, 84, 2, 2, 5119, 702, 3, 2, 2, 2, 5120, 5121, 7, 86, 2, 2, 5121, 5122, 7, 84, 2, 2, 5122, 5123, 7, 87, 2, 2, 5123, 5124, 7, 80, 2, 2, 5124, 5125, 7, 69, 2, 2, 5125, 5126, 7, 67, 2, 2, 5126, 5127, 7, 86, 2, 2, 5127, 5128, 7, 71, 2, 2, 5128, 704, 3, 2, 2, 2, 5129, 5130, 7, 86, 2, 2, 5130, 5131, 7, 85, 2, 2, 5131, 5132, 7, 71, 2, 2, 5132, 5133, 7, 83, 2, 2, 5133, 5134, 7, 87, 2, 2, 5134, 5135, 7, 67, 2, 2, 5135, 5136, 7, 78, 2, 2, 5136, 706, 3, 2, 2, 2, 5137, 5138, 7, 87, 2, 2, 5138, 5139, 7, 80, 2, 2, 5139, 5140, 7, 69, 2, 2, 5140, 5141, 7, 74, 2, 2, 5141, 5142, 7, 71, 2, 2, 5142, 5143, 7, 69, 2, 2, 5143, 5144, 7, 77, 2, 2, 5144, 5145, 7, 71, 2, 2, 5145, 5146, 7, 70, 2, 2, 5146, 708, 3, 2, 2, 2, 5147, 5148, 7, 87, 2, 2, 5148, 5149, 7, 80, 2, 2, 5149, 5150, 7, 75, 2, 2, 5150, 5151, 7, 81, 2, 2, 5151, 5152, 7, 80, 2, 2, 5152, 710, 3, 2, 2, 2, 5153, 5154, 7, 87, 2, 2, 5154, 5155, 7, 80, 2, 2, 5155, 5156, 7, 75, 2, 2, 5156, 5157, 7, 83, 2, 2, 5157, 5158, 7, 87, 2, 2, 5158, 5159, 7, 71, 2, 2, 5159, 712, 3, 2, 2, 2, 5160, 5161, 7, 87, 2, 2, 5161, 5162, 7, 80, 2, 2, 5162, 5163, 7, 78, 2, 2, 5163, 5164, 7, 81, 2, 2, 5164, 5165, 7, 69, 2, 2, 5165, 5166, 7, 77, 2, 2, 5166, 714, 3, 2, 2, 2, 5167, 5168, 7, 87, 2, 2, 5168, 5169, 7, 80, 2, 2, 5169, 5170, 7, 82, 2, 2, 5170, 5171, 7, 75, 2, 2, 5171, 5172, 7, 88, 2, 2, 5172, 5173, 7, 81, 2, 2, 5173, 5174, 7, 86, 2, 2, 5174, 716, 3, 2, 2, 2, 5175, 5176, 7, 87, 2, 2, 5176, 5177, 7, 80, 2, 2, 5177, 5178, 7, 85, 2, 2, 5178, 5179, 7, 67, 2, 2, 5179, 5180, 7, 72, 2, 2, 5180, 5181, 7, 71, 2, 2, 5181, 718, 3, 2, 2, 2, 5182, 5183, 7, 87, 2, 2, 5183, 5184, 7, 82, 2, 2, 5184, 5185, 7, 70, 2, 2, 5185, 5186, 7, 67, 2, 2, 5186, 5187, 7, 86, 2, 2, 5187, 5188, 7, 71, 2, 2, 5188, 720, 3, 2, 2, 2, 5189, 5190, 7, 87, 2, 2, 5190, 5191, 7, 82, 2, 2, 5191, 5192, 7, 70, 2, 2, 5192, 5193, 7, 67, 2, 2, 5193, 5194, 7, 86, 2, 2, 5194, 5195, 7, 71, 2, 2, 5195, 5196, 7, 86, 2, 2, 5196, 5197, 7, 71, 2, 2, 5197, 5198, 7, 90, 2, 2, 5198, 5199, 7, 86, 2, 2, 5199, 722, 3, 2, 2, 2, 5200, 5201, 7, 87, 2, 2, 5201, 5202, 7, 84, 2, 2, 5202, 5203, 7, 78, 2, 2, 5203, 724, 3, 2, 2, 2, 5204, 5205, 7, 87, 2, 2, 5205, 5206, 7, 85, 2, 2, 5206, 5207, 7, 71, 2, 2, 5207, 726, 3, 2, 2, 2, 5208, 5209, 7, 87, 2, 2, 5209, 5210, 7, 85, 2, 2, 5210, 5211, 7, 71, 2, 2, 5211, 5212, 7, 70, 2, 2, 5212, 728, 3, 2, 2, 2, 5213, 5214, 7, 87, 2, 2, 5214, 5215, 7, 85, 2, 2, 5215, 5216, 7, 71, 2, 2, 5216, 5217, 7, 84, 2, 2, 5217, 730, 3, 2, 2, 2, 5218, 5219, 7, 88, 2, 2, 5219, 5220, 7, 67, 2, 2, 5220, 5221, 7, 78, 2, 2, 5221, 5222, 7, 87, 2, 2, 5222, 5223, 7, 71, 2, 2, 5223, 5224, 7, 85, 2, 2, 5224, 732, 3, 2, 2, 2, 5225, 5226, 7, 88, 2, 2, 5226, 5227, 7, 67, 2, 2, 5227, 5228, 7, 84, 2, 2, 5228, 5229, 7, 91, 2, 2, 5229, 5230, 7, 75, 2, 2, 5230, 5231, 7, 80, 2, 2, 5231, 5232, 7, 73, 2, 2, 5232, 734, 3, 2, 2, 2, 5233, 5234, 7, 88, 2, 2, 5234, 5235, 7, 71, 2, 2, 5235, 5236, 7, 84, 2, 2, 5236, 5237, 7, 68, 2, 2, 5237, 5238, 7, 81, 2, 2, 5238, 5239, 7, 85, 2, 2, 5239, 5240, 7, 71, 2, 2, 5240, 5241, 7, 78, 2, 2, 5241, 5242, 7, 81, 2, 2, 5242, 5243, 7, 73, 2, 2, 5243, 5244, 7, 73, 2, 2, 5244, 5245, 7, 75, 2, 2, 5245, 5246, 7, 80, 2, 2, 5246, 5247, 7, 73, 2, 2, 5247, 736, 3, 2, 2, 2, 5248, 5249, 7, 88, 2, 2, 5249, 5250, 7, 75, 2, 2, 5250, 5251, 7, 71, 2, 2, 5251, 5252, 7, 89, 2, 2, 5252, 738, 3, 2, 2, 2, 5253, 5254, 7, 88, 2, 2, 5254, 5255, 7, 75, 2, 2, 5255, 5256, 7, 85, 2, 2, 5256, 5257, 7, 75, 2, 2, 5257, 5258, 7, 68, 2, 2, 5258, 5259, 7, 75, 2, 2, 5259, 5260, 7, 78, 2, 2, 5260, 5261, 7, 75, 2, 2, 5261, 5262, 7, 86, 2, 2, 5262, 5263, 7, 91, 2, 2, 5263, 740, 3, 2, 2, 2, 5264, 5265, 7, 89, 2, 2, 5265, 5266, 7, 67, 2, 2, 5266, 5267, 7, 75, 2, 2, 5267, 5268, 7, 86, 2, 2, 5268, 5269, 7, 72, 2, 2, 5269, 5270, 7, 81, 2, 2, 5270, 5271, 7, 84, 2, 2, 5271, 742, 3, 2, 2, 2, 5272, 5273, 7, 89, 2, 2, 5273, 5274, 7, 74, 2, 2, 5274, 5275, 7, 71, 2, 2, 5275, 5276, 7, 80, 2, 2, 5276, 744, 3, 2, 2, 2, 5277, 5278, 7, 89, 2, 2, 5278, 5279, 7, 74, 2, 2, 5279, 5280, 7, 71, 2, 2, 5280, 5281, 7, 84, 2, 2, 5281, 5282, 7, 71, 2, 2, 5282, 746, 3, 2, 2, 2, 5283, 5284, 7, 89, 2, 2, 5284, 5285, 7, 74, 2, 2, 5285, 5286, 7, 75, 2, 2, 5286, 5287, 7, 78, 2, 2, 5287, 5288, 7, 71, 2, 2, 5288, 748, 3, 2, 2, 2, 5289, 5290, 7, 89, 2, 2, 5290, 5291, 7, 75, 2, 2, 5291, 5292, 7, 80, 2, 2, 5292, 5293, 7, 70, 2, 2, 5293, 5294, 7, 81, 2, 2, 5294, 5295, 7, 89, 2, 2, 5295, 5296, 7, 85, 2, 2, 5296, 750, 3, 2, 2, 2, 5297, 5298, 7, 89, 2, 2, 5298, 5299, 7, 75, 2, 2, 5299, 5300, 7, 86, 2, 2, 5300, 5301, 7, 74, 2, 2, 5301, 752, 3, 2, 2, 2, 5302, 5303, 7, 89, 2, 2, 5303, 5304, 7, 75, 2, 2, 5304, 5305, 7, 86, 2, 2, 5305, 5306, 7, 74, 2, 2, 5306, 5307, 7, 75, 2, 2, 5307, 5308, 7, 80, 2, 2, 5308, 754, 3, 2, 2, 2, 5309, 5310, 7, 89, 2, 2, 5310, 5311, 7, 75, 2, 2, 5311, 5312, 7, 86, 2, 2, 5312, 5313, 7, 74, 2, 2, 5313, 5314, 7, 81, 2, 2, 5314, 5315, 7, 87, 2, 2, 5315, 5316, 7, 86, 2, 2, 5316, 756, 3, 2, 2, 2, 5317, 5318, 7, 89, 2, 2, 5318, 5319, 7, 75, 2, 2, 5319, 5320, 7, 86, 2, 2, 5320, 5321, 7, 80, 2, 2, 5321, 5322, 7, 71, 2, 2, 5322, 5323, 7, 85, 2, 2, 5323, 5324, 7, 85, 2, 2, 5324, 758, 3, 2, 2, 2, 5325, 5326, 7, 89, 2, 2, 5326, 5327, 7, 84, 2, 2, 5327, 5328, 7, 75, 2, 2, 5328, 5329, 7, 86, 2, 2, 5329, 5330, 7, 71, 2, 2, 5330, 5331, 7, 86, 2, 2, 5331, 5332, 7, 71, 2, 2, 5332, 5333, 7, 90, 2, 2, 5333, 5334, 7, 86, 2, 2, 5334, 760, 3, 2, 2, 2, 5335, 5336, 7, 67, 2, 2, 5336, 5337, 7, 68, 2, 2, 5337, 5338, 7, 85, 2, 2, 5338, 5339, 7, 81, 2, 2, 5339, 5340, 7, 78, 2, 2, 5340, 5341, 7, 87, 2, 2, 5341, 5342, 7, 86, 2, 2, 5342, 5343, 7, 71, 2, 2, 5343, 762, 3, 2, 2, 2, 5344, 5345, 7, 67, 2, 2, 5345, 5346, 7, 69, 2, 2, 5346, 5347, 7, 69, 2, 2, 5347, 5348, 7, 71, 2, 2, 5348, 5349, 7, 80, 2, 2, 5349, 5350, 7, 86, 2, 2, 5350, 5351, 7, 97, 2, 2, 5351, 5352, 7, 85, 2, 2, 5352, 5353, 7, 71, 2, 2, 5353, 5354, 7, 80, 2, 2, 5354, 5355, 7, 85, 2, 2, 5355, 5356, 7, 75, 2, 2, 5356, 5357, 7, 86, 2, 2, 5357, 5358, 7, 75, 2, 2, 5358, 5359, 7, 88, 2, 2, 5359, 5360, 7, 75, 2, 2, 5360, 5361, 7, 86, 2, 2, 5361, 5362, 7, 91, 2, 2, 5362, 764, 3, 2, 2, 2, 5363, 5364, 7, 67, 2, 2, 5364, 5365, 7, 69, 2, 2, 5365, 5366, 7, 86, 2, 2, 5366, 5367, 7, 75, 2, 2, 5367, 5368, 7, 81, 2, 2, 5368, 5369, 7, 80, 2, 2, 5369, 766, 3, 2, 2, 2, 5370, 5371, 7, 67, 2, 2, 5371, 5372, 7, 69, 2, 2, 5372, 5373, 7, 86, 2, 2, 5373, 5374, 7, 75, 2, 2, 5374, 5375, 7, 88, 2, 2, 5375, 5376, 7, 67, 2, 2, 5376, 5377, 7, 86, 2, 2, 5377, 5378, 7, 75, 2, 2, 5378, 5379, 7, 81, 2, 2, 5379, 5380, 7, 80, 2, 2, 5380, 768, 3, 2, 2, 2, 5381, 5382, 7, 67, 2, 2, 5382, 5383, 7, 69, 2, 2, 5383, 5384, 7, 86, 2, 2, 5384, 5385, 7, 75, 2, 2, 5385, 5386, 7, 88, 2, 2, 5386, 5387, 7, 71, 2, 2, 5387, 770, 3, 2, 2, 2, 5388, 5389, 7, 67, 2, 2, 5389, 5390, 7, 70, 2, 2, 5390, 5391, 7, 70, 2, 2, 5391, 5392, 7, 84, 2, 2, 5392, 5393, 7, 71, 2, 2, 5393, 5394, 7, 85, 2, 2, 5394, 5395, 7, 85, 2, 2, 5395, 772, 3, 2, 2, 2, 5396, 5397, 7, 67, 2, 2, 5397, 5398, 7, 71, 2, 2, 5398, 5399, 7, 85, 2, 2, 5399, 5400, 7, 97, 2, 2, 5400, 5401, 7, 51, 2, 2, 5401, 5402, 7, 52, 2, 2, 5402, 5403, 7, 58, 2, 2, 5403, 774, 3, 2, 2, 2, 5404, 5405, 7, 67, 2, 2, 5405, 5406, 7, 71, 2, 2, 5406, 5407, 7, 85, 2, 2, 5407, 5408, 7, 97, 2, 2, 5408, 5409, 7, 51, 2, 2, 5409, 5410, 7, 59, 2, 2, 5410, 5411, 7, 52, 2, 2, 5411, 776, 3, 2, 2, 2, 5412, 5413, 7, 67, 2, 2, 5413, 5414, 7, 71, 2, 2, 5414, 5415, 7, 85, 2, 2, 5415, 5416, 7, 97, 2, 2, 5416, 5417, 7, 52, 2, 2, 5417, 5418, 7, 55, 2, 2, 5418, 5419, 7, 56, 2, 2, 5419, 778, 3, 2, 2, 2, 5420, 5421, 7, 67, 2, 2, 5421, 5422, 7, 72, 2, 2, 5422, 5423, 7, 72, 2, 2, 5423, 5424, 7, 75, 2, 2, 5424, 5425, 7, 80, 2, 2, 5425, 5426, 7, 75, 2, 2, 5426, 5427, 7, 86, 2, 2, 5427, 5428, 7, 91, 2, 2, 5428, 780, 3, 2, 2, 2, 5429, 5430, 7, 67, 2, 2, 5430, 5431, 7, 72, 2, 2, 5431, 5432, 7, 86, 2, 2, 5432, 5433, 7, 71, 2, 2, 5433, 5434, 7, 84, 2, 2, 5434, 782, 3, 2, 2, 2, 5435, 5436, 7, 67, 2, 2, 5436, 5437, 7, 73, 2, 2, 5437, 5438, 7, 73, 2, 2, 5438, 5439, 7, 84, 2, 2, 5439, 5440, 7, 71, 2, 2, 5440, 5441, 7, 73, 2, 2, 5441, 5442, 7, 67, 2, 2, 5442, 5443, 7, 86, 2, 2, 5443, 5444, 7, 71, 2, 2, 5444, 784, 3, 2, 2, 2, 5445, 5446, 7, 67, 2, 2, 5446, 5447, 7, 78, 2, 2, 5447, 5448, 7, 73, 2, 2, 5448, 5449, 7, 81, 2, 2, 5449, 5450, 7, 84, 2, 2, 5450, 5451, 7, 75, 2, 2, 5451, 5452, 7, 86, 2, 2, 5452, 5453, 7, 74, 2, 2, 5453, 5454, 7, 79, 2, 2, 5454, 786, 3, 2, 2, 2, 5455, 5456, 7, 67, 2, 2, 5456, 5457, 7, 78, 2, 2, 5457, 5458, 7, 78, 2, 2, 5458, 5459, 7, 81, 2, 2, 5459, 5460, 7, 89, 2, 2, 5460, 5461, 7, 97, 2, 2, 5461, 5462, 7, 71, 2, 2, 5462, 5463, 7, 80, 2, 2, 5463, 5464, 7, 69, 2, 2, 5464, 5465, 7, 84, 2, 2, 5465, 5466, 7, 91, 2, 2, 5466, 5467, 7, 82, 2, 2, 5467, 5468, 7, 86, 2, 2, 5468, 5469, 7, 71, 2, 2, 5469, 5470, 7, 70, 2, 2, 5470, 5471, 7, 97, 2, 2, 5471, 5472, 7, 88, 2, 2, 5472, 5473, 7, 67, 2, 2, 5473, 5474, 7, 78, 2, 2, 5474, 5475, 7, 87, 2, 2, 5475, 5476, 7, 71, 2, 2, 5476, 5477, 7, 97, 2, 2, 5477, 5478, 7, 79, 2, 2, 5478, 5479, 7, 81, 2, 2, 5479, 5480, 7, 70, 2, 2, 5480, 5481, 7, 75, 2, 2, 5481, 5482, 7, 72, 2, 2, 5482, 5483, 7, 75, 2, 2, 5483, 5484, 7, 69, 2, 2, 5484, 5485, 7, 67, 2, 2, 5485, 5486, 7, 86, 2, 2, 5486, 5487, 7, 75, 2, 2, 5487, 5488, 7, 81, 2, 2, 5488, 5489, 7, 80, 2, 2, 5489, 5490, 7, 85, 2, 2, 5490, 788, 3, 2, 2, 2, 5491, 5492, 7, 67, 2, 2, 5492, 5493, 7, 78, 2, 2, 5493, 5494, 7, 78, 2, 2, 5494, 5495, 7, 81, 2, 2, 5495, 5496, 7, 89, 2, 2, 5496, 5497, 7, 97, 2, 2, 5497, 5498, 7, 85, 2, 2, 5498, 5499, 7, 80, 2, 2, 5499, 5500, 7, 67, 2, 2, 5500, 5501, 7, 82, 2, 2, 5501, 5502, 7, 85, 2, 2, 5502, 5503, 7, 74, 2, 2, 5503, 5504, 7, 81, 2, 2, 5504, 5505, 7, 86, 2, 2, 5505, 5506, 7, 97, 2, 2, 5506, 5507, 7, 75, 2, 2, 5507, 5508, 7, 85, 2, 2, 5508, 5509, 7, 81, 2, 2, 5509, 5510, 7, 78, 2, 2, 5510, 5511, 7, 67, 2, 2, 5511, 5512, 7, 86, 2, 2, 5512, 5513, 7, 75, 2, 2, 5513, 5514, 7, 81, 2, 2, 5514, 5515, 7, 80, 2, 2, 5515, 790, 3, 2, 2, 2, 5516, 5517, 7, 67, 2, 2, 5517, 5518, 7, 78, 2, 2, 5518, 5519, 7, 78, 2, 2, 5519, 5520, 7, 81, 2, 2, 5520, 5521, 7, 89, 2, 2, 5521, 5522, 7, 71, 2, 2, 5522, 5523, 7, 70, 2, 2, 5523, 792, 3, 2, 2, 2, 5524, 5525, 7, 67, 2, 2, 5525, 5526, 7, 80, 2, 2, 5526, 5527, 7, 85, 2, 2, 5527, 5528, 7, 75, 2, 2, 5528, 5529, 7, 97, 2, 2, 5529, 5530, 7, 80, 2, 2, 5530, 5531, 7, 87, 2, 2, 5531, 5532, 7, 78, 2, 2, 5532, 5533, 7, 78, 2, 2, 5533, 5534, 7, 97, 2, 2, 5534, 5535, 7, 70, 2, 2, 5535, 5536, 7, 71, 2, 2, 5536, 5537, 7, 72, 2, 2, 5537, 5538, 7, 67, 2, 2, 5538, 5539, 7, 87, 2, 2, 5539, 5540, 7, 78, 2, 2, 5540, 5541, 7, 86, 2, 2, 5541, 794, 3, 2, 2, 2, 5542, 5543, 7, 67, 2, 2, 5543, 5544, 7, 80, 2, 2, 5544, 5545, 7, 85, 2, 2, 5545, 5546, 7, 75, 2, 2, 5546, 5547, 7, 97, 2, 2, 5547, 5548, 7, 80, 2, 2, 5548, 5549, 7, 87, 2, 2, 5549, 5550, 7, 78, 2, 2, 5550, 5551, 7, 78, 2, 2, 5551, 5552, 7, 85, 2, 2, 5552, 796, 3, 2, 2, 2, 5553, 5554, 7, 67, 2, 2, 5554, 5555, 7, 80, 2, 2, 5555, 5556, 7, 85, 2, 2, 5556, 5557, 7, 75, 2, 2, 5557, 5558, 7, 97, 2, 2, 5558, 5559, 7, 82, 2, 2, 5559, 5560, 7, 67, 2, 2, 5560, 5561, 7, 70, 2, 2, 5561, 5562, 7, 70, 2, 2, 5562, 5563, 7, 75, 2, 2, 5563, 5564, 7, 80, 2, 2, 5564, 5565, 7, 73, 2, 2, 5565, 798, 3, 2, 2, 2, 5566, 5567, 7, 67, 2, 2, 5567, 5568, 7, 80, 2, 2, 5568, 5569, 7, 85, 2, 2, 5569, 5570, 7, 75, 2, 2, 5570, 5571, 7, 97, 2, 2, 5571, 5572, 7, 89, 2, 2, 5572, 5573, 7, 67, 2, 2, 5573, 5574, 7, 84, 2, 2, 5574, 5575, 7, 80, 2, 2, 5575, 5576, 7, 75, 2, 2, 5576, 5577, 7, 80, 2, 2, 5577, 5578, 7, 73, 2, 2, 5578, 5579, 7, 85, 2, 2, 5579, 800, 3, 2, 2, 2, 5580, 5581, 7, 67, 2, 2, 5581, 5582, 7, 82, 2, 2, 5582, 5583, 7, 82, 2, 2, 5583, 5584, 7, 78, 2, 2, 5584, 5585, 7, 75, 2, 2, 5585, 5586, 7, 69, 2, 2, 5586, 5587, 7, 67, 2, 2, 5587, 5588, 7, 86, 2, 2, 5588, 5589, 7, 75, 2, 2, 5589, 5590, 7, 81, 2, 2, 5590, 5591, 7, 80, 2, 2, 5591, 5592, 7, 97, 2, 2, 5592, 5593, 7, 78, 2, 2, 5593, 5594, 7, 81, 2, 2, 5594, 5595, 7, 73, 2, 2, 5595, 802, 3, 2, 2, 2, 5596, 5597, 7, 67, 2, 2, 5597, 5598, 7, 82, 2, 2, 5598, 5599, 7, 82, 2, 2, 5599, 5600, 7, 78, 2, 2, 5600, 5601, 7, 91, 2, 2, 5601, 804, 3, 2, 2, 2, 5602, 5603, 7, 67, 2, 2, 5603, 5604, 7, 84, 2, 2, 5604, 5605, 7, 75, 2, 2, 5605, 5606, 7, 86, 2, 2, 5606, 5607, 7, 74, 2, 2, 5607, 5608, 7, 67, 2, 2, 5608, 5609, 7, 68, 2, 2, 5609, 5610, 7, 81, 2, 2, 5610, 5611, 7, 84, 2, 2, 5611, 5612, 7, 86, 2, 2, 5612, 806, 3, 2, 2, 2, 5613, 5614, 7, 67, 2, 2, 5614, 5615, 7, 85, 2, 2, 5615, 5616, 7, 85, 2, 2, 5616, 5617, 7, 71, 2, 2, 5617, 5618, 7, 79, 2, 2, 5618, 5619, 7, 68, 2, 2, 5619, 5620, 7, 78, 2, 2, 5620, 5621, 7, 91, 2, 2, 5621, 808, 3, 2, 2, 2, 5622, 5623, 7, 67, 2, 2, 5623, 5624, 7, 87, 2, 2, 5624, 5625, 7, 70, 2, 2, 5625, 5626, 7, 75, 2, 2, 5626, 5627, 7, 86, 2, 2, 5627, 810, 3, 2, 2, 2, 5628, 5629, 7, 67, 2, 2, 5629, 5630, 7, 87, 2, 2, 5630, 5631, 7, 70, 2, 2, 5631, 5632, 7, 75, 2, 2, 5632, 5633, 7, 86, 2, 2, 5633, 5634, 7, 97, 2, 2, 5634, 5635, 7, 73, 2, 2, 5635, 5636, 7, 87, 2, 2, 5636, 5637, 7, 75, 2, 2, 5637, 5638, 7, 70, 2, 2, 5638, 812, 3, 2, 2, 2, 5639, 5640, 7, 67, 2, 2, 5640, 5641, 7, 87, 2, 2, 5641, 5642, 7, 86, 2, 2, 5642, 5643, 7, 81, 2, 2, 5643, 814, 3, 2, 2, 2, 5644, 5645, 7, 67, 2, 2, 5645, 5646, 7, 87, 2, 2, 5646, 5647, 7, 86, 2, 2, 5647, 5648, 7, 81, 2, 2, 5648, 5649, 7, 97, 2, 2, 5649, 5650, 7, 69, 2, 2, 5650, 5651, 7, 78, 2, 2, 5651, 5652, 7, 71, 2, 2, 5652, 5653, 7, 67, 2, 2, 5653, 5654, 7, 80, 2, 2, 5654, 5655, 7, 87, 2, 2, 5655, 5656, 7, 82, 2, 2, 5656, 816, 3, 2, 2, 2, 5657, 5658, 7, 67, 2, 2, 5658, 5659, 7, 87, 2, 2, 5659, 5660, 7, 86, 2, 2, 5660, 5661, 7, 81, 2, 2, 5661, 5662, 7, 97, 2, 2, 5662, 5663, 7, 69, 2, 2, 5663, 5664, 7, 78, 2, 2, 5664, 5665, 7, 81, 2, 2, 5665, 5666, 7, 85, 2, 2, 5666, 5667, 7, 71, 2, 2, 5667, 818, 3, 2, 2, 2, 5668, 5669, 7, 67, 2, 2, 5669, 5670, 7, 87, 2, 2, 5670, 5671, 7, 86, 2, 2, 5671, 5672, 7, 81, 2, 2, 5672, 5673, 7, 97, 2, 2, 5673, 5674, 7, 69, 2, 2, 5674, 5675, 7, 84, 2, 2, 5675, 5676, 7, 71, 2, 2, 5676, 5677, 7, 67, 2, 2, 5677, 5678, 7, 86, 2, 2, 5678, 5679, 7, 71, 2, 2, 5679, 5680, 7, 97, 2, 2, 5680, 5681, 7, 85, 2, 2, 5681, 5682, 7, 86, 2, 2, 5682, 5683, 7, 67, 2, 2, 5683, 5684, 7, 86, 2, 2, 5684, 5685, 7, 75, 2, 2, 5685, 5686, 7, 85, 2, 2, 5686, 5687, 7, 86, 2, 2, 5687, 5688, 7, 75, 2, 2, 5688, 5689, 7, 69, 2, 2, 5689, 5690, 7, 85, 2, 2, 5690, 820, 3, 2, 2, 2, 5691, 5692, 7, 67, 2, 2, 5692, 5693, 7, 87, 2, 2, 5693, 5694, 7, 86, 2, 2, 5694, 5695, 7, 81, 2, 2, 5695, 5696, 7, 97, 2, 2, 5696, 5697, 7, 85, 2, 2, 5697, 5698, 7, 74, 2, 2, 5698, 5699, 7, 84, 2, 2, 5699, 5700, 7, 75, 2, 2, 5700, 5701, 7, 80, 2, 2, 5701, 5702, 7, 77, 2, 2, 5702, 822, 3, 2, 2, 2, 5703, 5704, 7, 67, 2, 2, 5704, 5705, 7, 87, 2, 2, 5705, 5706, 7, 86, 2, 2, 5706, 5707, 7, 81, 2, 2, 5707, 5708, 7, 97, 2, 2, 5708, 5709, 7, 87, 2, 2, 5709, 5710, 7, 82, 2, 2, 5710, 5711, 7, 70, 2, 2, 5711, 5712, 7, 67, 2, 2, 5712, 5713, 7, 86, 2, 2, 5713, 5714, 7, 71, 2, 2, 5714, 5715, 7, 97, 2, 2, 5715, 5716, 7, 85, 2, 2, 5716, 5717, 7, 86, 2, 2, 5717, 5718, 7, 67, 2, 2, 5718, 5719, 7, 86, 2, 2, 5719, 5720, 7, 75, 2, 2, 5720, 5721, 7, 85, 2, 2, 5721, 5722, 7, 86, 2, 2, 5722, 5723, 7, 75, 2, 2, 5723, 5724, 7, 69, 2, 2, 5724, 5725, 7, 85, 2, 2, 5725, 824, 3, 2, 2, 2, 5726, 5727, 7, 67, 2, 2, 5727, 5728, 7, 87, 2, 2, 5728, 5729, 7, 86, 2, 2, 5729, 5730, 7, 81, 2, 2, 5730, 5731, 7, 97, 2, 2, 5731, 5732, 7, 87, 2, 2, 5732, 5733, 7, 82, 2, 2, 5733, 5734, 7, 70, 2, 2, 5734, 5735, 7, 67, 2, 2, 5735, 5736, 7, 86, 2, 2, 5736, 5737, 7, 71, 2, 2, 5737, 5738, 7, 97, 2, 2, 5738, 5739, 7, 85, 2, 2, 5739, 5740, 7, 86, 2, 2, 5740, 5741, 7, 67, 2, 2, 5741, 5742, 7, 86, 2, 2, 5742, 5743, 7, 75, 2, 2, 5743, 5744, 7, 85, 2, 2, 5744, 5745, 7, 86, 2, 2, 5745, 5746, 7, 75, 2, 2, 5746, 5747, 7, 69, 2, 2, 5747, 5748, 7, 85, 2, 2, 5748, 5749, 7, 97, 2, 2, 5749, 5750, 7, 67, 2, 2, 5750, 5751, 7, 85, 2, 2, 5751, 5752, 7, 91, 2, 2, 5752, 5753, 7, 80, 2, 2, 5753, 5754, 7, 69, 2, 2, 5754, 826, 3, 2, 2, 2, 5755, 5756, 7, 67, 2, 2, 5756, 5757, 7, 88, 2, 2, 5757, 5758, 7, 67, 2, 2, 5758, 5759, 7, 75, 2, 2, 5759, 5760, 7, 78, 2, 2, 5760, 5761, 7, 67, 2, 2, 5761, 5762, 7, 68, 2, 2, 5762, 5763, 7, 75, 2, 2, 5763, 5764, 7, 78, 2, 2, 5764, 5765, 7, 75, 2, 2, 5765, 5766, 7, 86, 2, 2, 5766, 5767, 7, 91, 2, 2, 5767, 828, 3, 2, 2, 2, 5768, 5769, 7, 67, 2, 2, 5769, 5770, 7, 88, 2, 2, 5770, 5771, 7, 73, 2, 2, 5771, 830, 3, 2, 2, 2, 5772, 5773, 7, 68, 2, 2, 5773, 5774, 7, 67, 2, 2, 5774, 5775, 7, 69, 2, 2, 5775, 5776, 7, 77, 2, 2, 5776, 5777, 7, 87, 2, 2, 5777, 5778, 7, 82, 2, 2, 5778, 5779, 7, 97, 2, 2, 5779, 5780, 7, 82, 2, 2, 5780, 5781, 7, 84, 2, 2, 5781, 5782, 7, 75, 2, 2, 5782, 5783, 7, 81, 2, 2, 5783, 5784, 7, 84, 2, 2, 5784, 5785, 7, 75, 2, 2, 5785, 5786, 7, 86, 2, 2, 5786, 5787, 7, 91, 2, 2, 5787, 832, 3, 2, 2, 2, 5788, 5789, 7, 68, 2, 2, 5789, 5790, 7, 71, 2, 2, 5790, 5791, 7, 73, 2, 2, 5791, 5792, 7, 75, 2, 2, 5792, 5793, 7, 80, 2, 2, 5793, 5794, 7, 97, 2, 2, 5794, 5795, 7, 70, 2, 2, 5795, 5796, 7, 75, 2, 2, 5796, 5797, 7, 67, 2, 2, 5797, 5798, 7, 78, 2, 2, 5798, 5799, 7, 81, 2, 2, 5799, 5800, 7, 73, 2, 2, 5800, 834, 3, 2, 2, 2, 5801, 5802, 7, 68, 2, 2, 5802, 5803, 7, 75, 2, 2, 5803, 5804, 7, 73, 2, 2, 5804, 5805, 7, 75, 2, 2, 5805, 5806, 7, 80, 2, 2, 5806, 5807, 7, 86, 2, 2, 5807, 836, 3, 2, 2, 2, 5808, 5809, 7, 68, 2, 2, 5809, 5810, 7, 75, 2, 2, 5810, 5811, 7, 80, 2, 2, 5811, 5812, 7, 67, 2, 2, 5812, 5813, 7, 84, 2, 2, 5813, 5814, 7, 91, 2, 2, 5814, 5815, 7, 34, 2, 2, 5815, 5816, 7, 68, 2, 2, 5816, 5817, 7, 67, 2, 2, 5817, 5818, 7, 85, 2, 2, 5818, 5819, 7, 71, 2, 2, 5819, 5820, 7, 56, 2, 2, 5820, 5821, 7, 54, 2, 2, 5821, 838, 3, 2, 2, 2, 5822, 5823, 7, 68, 2, 2, 5823, 5824, 7, 75, 2, 2, 5824, 5825, 7, 80, 2, 2, 5825, 5826, 7, 67, 2, 2, 5826, 5827, 7, 84, 2, 2, 5827, 5828, 7, 91, 2, 2, 5828, 5829, 7, 97, 2, 2, 5829, 5830, 7, 69, 2, 2, 5830, 5831, 7, 74, 2, 2, 5831, 5832, 7, 71, 2, 2, 5832, 5833, 7, 69, 2, 2, 5833, 5834, 7, 77, 2, 2, 5834, 5835, 7, 85, 2, 2, 5835, 5836, 7, 87, 2, 2, 5836, 5837, 7, 79, 2, 2, 5837, 840, 3, 2, 2, 2, 5838, 5839, 7, 68, 2, 2, 5839, 5840, 7, 75, 2, 2, 5840, 5841, 7, 80, 2, 2, 5841, 5842, 7, 70, 2, 2, 5842, 5843, 7, 75, 2, 2, 5843, 5844, 7, 80, 2, 2, 5844, 5845, 7, 73, 2, 2, 5845, 842, 3, 2, 2, 2, 5846, 5847, 7, 68, 2, 2, 5847, 5848, 7, 78, 2, 2, 5848, 5849, 7, 81, 2, 2, 5849, 5850, 7, 68, 2, 2, 5850, 5851, 7, 97, 2, 2, 5851, 5852, 7, 85, 2, 2, 5852, 5853, 7, 86, 2, 2, 5853, 5854, 7, 81, 2, 2, 5854, 5855, 7, 84, 2, 2, 5855, 5856, 7, 67, 2, 2, 5856, 5857, 7, 73, 2, 2, 5857, 5858, 7, 71, 2, 2, 5858, 844, 3, 2, 2, 2, 5859, 5860, 7, 68, 2, 2, 5860, 5861, 7, 84, 2, 2, 5861, 5862, 7, 81, 2, 2, 5862, 5863, 7, 77, 2, 2, 5863, 5864, 7, 71, 2, 2, 5864, 5865, 7, 84, 2, 2, 5865, 846, 3, 2, 2, 2, 5866, 5867, 7, 68, 2, 2, 5867, 5868, 7, 84, 2, 2, 5868, 5869, 7, 81, 2, 2, 5869, 5870, 7, 77, 2, 2, 5870, 5871, 7, 71, 2, 2, 5871, 5872, 7, 84, 2, 2, 5872, 5873, 7, 97, 2, 2, 5873, 5874, 7, 75, 2, 2, 5874, 5875, 7, 80, 2, 2, 5875, 5876, 7, 85, 2, 2, 5876, 5877, 7, 86, 2, 2, 5877, 5878, 7, 67, 2, 2, 5878, 5879, 7, 80, 2, 2, 5879, 5880, 7, 69, 2, 2, 5880, 5881, 7, 71, 2, 2, 5881, 848, 3, 2, 2, 2, 5882, 5883, 7, 68, 2, 2, 5883, 5884, 7, 87, 2, 2, 5884, 5885, 7, 78, 2, 2, 5885, 5886, 7, 77, 2, 2, 5886, 5887, 7, 97, 2, 2, 5887, 5888, 7, 78, 2, 2, 5888, 5889, 7, 81, 2, 2, 5889, 5890, 7, 73, 2, 2, 5890, 5891, 7, 73, 2, 2, 5891, 5892, 7, 71, 2, 2, 5892, 5893, 7, 70, 2, 2, 5893, 850, 3, 2, 2, 2, 5894, 5895, 7, 69, 2, 2, 5895, 5896, 7, 67, 2, 2, 5896, 5897, 7, 78, 2, 2, 5897, 5898, 7, 78, 2, 2, 5898, 5899, 7, 71, 2, 2, 5899, 5900, 7, 84, 2, 2, 5900, 852, 3, 2, 2, 2, 5901, 5902, 7, 69, 2, 2, 5902, 5903, 7, 67, 2, 2, 5903, 5904, 7, 82, 2, 2, 5904, 5905, 7, 97, 2, 2, 5905, 5906, 7, 69, 2, 2, 5906, 5907, 7, 82, 2, 2, 5907, 5908, 7, 87, 2, 2, 5908, 5909, 7, 97, 2, 2, 5909, 5910, 7, 82, 2, 2, 5910, 5911, 7, 71, 2, 2, 5911, 5912, 7, 84, 2, 2, 5912, 5913, 7, 69, 2, 2, 5913, 5914, 7, 71, 2, 2, 5914, 5915, 7, 80, 2, 2, 5915, 5916, 7, 86, 2, 2, 5916, 854, 3, 2, 2, 2, 5917, 5918, 7, 86, 2, 2, 5918, 5919, 7, 84, 2, 2, 5919, 5920, 7, 91, 2, 2, 5920, 5922, 7, 97, 2, 2, 5921, 5917, 3, 2, 2, 2, 5921, 5922, 3, 2, 2, 2, 5922, 5923, 3, 2, 2, 2, 5923, 5924, 7, 69, 2, 2, 5924, 5925, 7, 67, 2, 2, 5925, 5926, 7, 85, 2, 2, 5926, 5927, 7, 86, 2, 2, 5927, 856, 3, 2, 2, 2, 5928, 5929, 7, 69, 2, 2, 5929, 5930, 7, 67, 2, 2, 5930, 5931, 7, 86, 2, 2, 5931, 5932, 7, 67, 2, 2, 5932, 5933, 7, 78, 2, 2, 5933, 5934, 7, 81, 2, 2, 5934, 5935, 7, 73, 2, 2, 5935, 858, 3, 2, 2, 2, 5936, 5937, 7, 69, 2, 2, 5937, 5938, 7, 67, 2, 2, 5938, 5939, 7, 86, 2, 2, 5939, 5940, 7, 69, 2, 2, 5940, 5941, 7, 74, 2, 2, 5941, 860, 3, 2, 2, 2, 5942, 5943, 7, 69, 2, 2, 5943, 5944, 7, 74, 2, 2, 5944, 5945, 7, 67, 2, 2, 5945, 5946, 7, 80, 2, 2, 5946, 5947, 7, 73, 2, 2, 5947, 5948, 7, 71, 2, 2, 5948, 5949, 7, 97, 2, 2, 5949, 5950, 7, 84, 2, 2, 5950, 5951, 7, 71, 2, 2, 5951, 5952, 7, 86, 2, 2, 5952, 5953, 7, 71, 2, 2, 5953, 5954, 7, 80, 2, 2, 5954, 5955, 7, 86, 2, 2, 5955, 5956, 7, 75, 2, 2, 5956, 5957, 7, 81, 2, 2, 5957, 5958, 7, 80, 2, 2, 5958, 862, 3, 2, 2, 2, 5959, 5960, 7, 69, 2, 2, 5960, 5961, 7, 74, 2, 2, 5961, 5962, 7, 67, 2, 2, 5962, 5963, 7, 80, 2, 2, 5963, 5964, 7, 73, 2, 2, 5964, 5965, 7, 71, 2, 2, 5965, 5966, 7, 97, 2, 2, 5966, 5967, 7, 86, 2, 2, 5967, 5968, 7, 84, 2, 2, 5968, 5969, 7, 67, 2, 2, 5969, 5970, 7, 69, 2, 2, 5970, 5971, 7, 77, 2, 2, 5971, 5972, 7, 75, 2, 2, 5972, 5973, 7, 80, 2, 2, 5973, 5974, 7, 73, 2, 2, 5974, 864, 3, 2, 2, 2, 5975, 5976, 7, 69, 2, 2, 5976, 5977, 7, 74, 2, 2, 5977, 5978, 7, 71, 2, 2, 5978, 5979, 7, 69, 2, 2, 5979, 5980, 7, 77, 2, 2, 5980, 5981, 7, 85, 2, 2, 5981, 5982, 7, 87, 2, 2, 5982, 5983, 7, 79, 2, 2, 5983, 866, 3, 2, 2, 2, 5984, 5985, 7, 69, 2, 2, 5985, 5986, 7, 74, 2, 2, 5986, 5987, 7, 71, 2, 2, 5987, 5988, 7, 69, 2, 2, 5988, 5989, 7, 77, 2, 2, 5989, 5990, 7, 85, 2, 2, 5990, 5991, 7, 87, 2, 2, 5991, 5992, 7, 79, 2, 2, 5992, 5993, 7, 97, 2, 2, 5993, 5994, 7, 67, 2, 2, 5994, 5995, 7, 73, 2, 2, 5995, 5996, 7, 73, 2, 2, 5996, 868, 3, 2, 2, 2, 5997, 5998, 7, 69, 2, 2, 5998, 5999, 7, 78, 2, 2, 5999, 6000, 7, 71, 2, 2, 6000, 6001, 7, 67, 2, 2, 6001, 6002, 7, 80, 2, 2, 6002, 6003, 7, 87, 2, 2, 6003, 6004, 7, 82, 2, 2, 6004, 870, 3, 2, 2, 2, 6005, 6006, 7, 69, 2, 2, 6006, 6007, 7, 81, 2, 2, 6007, 6008, 7, 78, 2, 2, 6008, 6009, 7, 78, 2, 2, 6009, 6010, 7, 71, 2, 2, 6010, 6011, 7, 69, 2, 2, 6011, 6012, 7, 86, 2, 2, 6012, 6013, 7, 75, 2, 2, 6013, 6014, 7, 81, 2, 2, 6014, 6015, 7, 80, 2, 2, 6015, 872, 3, 2, 2, 2, 6016, 6017, 7, 69, 2, 2, 6017, 6018, 7, 81, 2, 2, 6018, 6019, 7, 78, 2, 2, 6019, 6020, 7, 87, 2, 2, 6020, 6021, 7, 79, 2, 2, 6021, 6022, 7, 80, 2, 2, 6022, 6023, 7, 97, 2, 2, 6023, 6024, 7, 79, 2, 2, 6024, 6025, 7, 67, 2, 2, 6025, 6026, 7, 85, 2, 2, 6026, 6027, 7, 86, 2, 2, 6027, 6028, 7, 71, 2, 2, 6028, 6029, 7, 84, 2, 2, 6029, 6030, 7, 97, 2, 2, 6030, 6031, 7, 77, 2, 2, 6031, 6032, 7, 71, 2, 2, 6032, 6033, 7, 91, 2, 2, 6033, 874, 3, 2, 2, 2, 6034, 6035, 7, 69, 2, 2, 6035, 6036, 7, 81, 2, 2, 6036, 6037, 7, 79, 2, 2, 6037, 6038, 7, 79, 2, 2, 6038, 6039, 7, 75, 2, 2, 6039, 6040, 7, 86, 2, 2, 6040, 6041, 7, 86, 2, 2, 6041, 6042, 7, 71, 2, 2, 6042, 6043, 7, 70, 2, 2, 6043, 876, 3, 2, 2, 2, 6044, 6045, 7, 69, 2, 2, 6045, 6046, 7, 81, 2, 2, 6046, 6047, 7, 79, 2, 2, 6047, 6048, 7, 82, 2, 2, 6048, 6049, 7, 67, 2, 2, 6049, 6050, 7, 86, 2, 2, 6050, 6051, 7, 75, 2, 2, 6051, 6052, 7, 68, 2, 2, 6052, 6053, 7, 75, 2, 2, 6053, 6054, 7, 78, 2, 2, 6054, 6055, 7, 75, 2, 2, 6055, 6056, 7, 86, 2, 2, 6056, 6057, 7, 91, 2, 2, 6057, 6058, 7, 97, 2, 2, 6058, 6059, 7, 78, 2, 2, 6059, 6060, 7, 71, 2, 2, 6060, 6061, 7, 88, 2, 2, 6061, 6062, 7, 71, 2, 2, 6062, 6063, 7, 78, 2, 2, 6063, 878, 3, 2, 2, 2, 6064, 6065, 7, 69, 2, 2, 6065, 6066, 7, 81, 2, 2, 6066, 6067, 7, 80, 2, 2, 6067, 6068, 7, 69, 2, 2, 6068, 6069, 7, 67, 2, 2, 6069, 6070, 7, 86, 2, 2, 6070, 880, 3, 2, 2, 2, 6071, 6072, 7, 69, 2, 2, 6072, 6073, 7, 81, 2, 2, 6073, 6074, 7, 80, 2, 2, 6074, 6075, 7, 69, 2, 2, 6075, 6076, 7, 67, 2, 2, 6076, 6077, 7, 86, 2, 2, 6077, 6078, 7, 97, 2, 2, 6078, 6079, 7, 80, 2, 2, 6079, 6080, 7, 87, 2, 2, 6080, 6081, 7, 78, 2, 2, 6081, 6082, 7, 78, 2, 2, 6082, 6083, 7, 97, 2, 2, 6083, 6084, 7, 91, 2, 2, 6084, 6085, 7, 75, 2, 2, 6085, 6086, 7, 71, 2, 2, 6086, 6087, 7, 78, 2, 2, 6087, 6088, 7, 70, 2, 2, 6088, 6089, 7, 85, 2, 2, 6089, 6090, 7, 97, 2, 2, 6090, 6091, 7, 80, 2, 2, 6091, 6092, 7, 87, 2, 2, 6092, 6093, 7, 78, 2, 2, 6093, 6094, 7, 78, 2, 2, 6094, 882, 3, 2, 2, 2, 6095, 6096, 7, 69, 2, 2, 6096, 6097, 7, 81, 2, 2, 6097, 6098, 7, 80, 2, 2, 6098, 6099, 7, 86, 2, 2, 6099, 6100, 7, 71, 2, 2, 6100, 6101, 7, 80, 2, 2, 6101, 6102, 7, 86, 2, 2, 6102, 884, 3, 2, 2, 2, 6103, 6104, 7, 69, 2, 2, 6104, 6105, 7, 81, 2, 2, 6105, 6106, 7, 80, 2, 2, 6106, 6107, 7, 86, 2, 2, 6107, 6108, 7, 84, 2, 2, 6108, 6109, 7, 81, 2, 2, 6109, 6110, 7, 78, 2, 2, 6110, 886, 3, 2, 2, 2, 6111, 6112, 7, 69, 2, 2, 6112, 6113, 7, 81, 2, 2, 6113, 6114, 7, 81, 2, 2, 6114, 6115, 7, 77, 2, 2, 6115, 6116, 7, 75, 2, 2, 6116, 6117, 7, 71, 2, 2, 6117, 888, 3, 2, 2, 2, 6118, 6119, 7, 69, 2, 2, 6119, 6120, 7, 81, 2, 2, 6120, 6121, 7, 87, 2, 2, 6121, 6122, 7, 80, 2, 2, 6122, 6123, 7, 86, 2, 2, 6123, 890, 3, 2, 2, 2, 6124, 6125, 7, 69, 2, 2, 6125, 6126, 7, 81, 2, 2, 6126, 6127, 7, 87, 2, 2, 6127, 6128, 7, 80, 2, 2, 6128, 6129, 7, 86, 2, 2, 6129, 6130, 7, 97, 2, 2, 6130, 6131, 7, 68, 2, 2, 6131, 6132, 7, 75, 2, 2, 6132, 6133, 7, 73, 2, 2, 6133, 892, 3, 2, 2, 2, 6134, 6135, 7, 69, 2, 2, 6135, 6136, 7, 81, 2, 2, 6136, 6137, 7, 87, 2, 2, 6137, 6138, 7, 80, 2, 2, 6138, 6139, 7, 86, 2, 2, 6139, 6140, 7, 71, 2, 2, 6140, 6141, 7, 84, 2, 2, 6141, 894, 3, 2, 2, 2, 6142, 6143, 7, 69, 2, 2, 6143, 6144, 7, 82, 2, 2, 6144, 6145, 7, 87, 2, 2, 6145, 896, 3, 2, 2, 2, 6146, 6147, 7, 69, 2, 2, 6147, 6148, 7, 84, 2, 2, 6148, 6149, 7, 71, 2, 2, 6149, 6150, 7, 67, 2, 2, 6150, 6151, 7, 86, 2, 2, 6151, 6152, 7, 71, 2, 2, 6152, 6153, 7, 97, 2, 2, 6153, 6154, 7, 80, 2, 2, 6154, 6155, 7, 71, 2, 2, 6155, 6156, 7, 89, 2, 2, 6156, 898, 3, 2, 2, 2, 6157, 6158, 7, 69, 2, 2, 6158, 6159, 7, 84, 2, 2, 6159, 6160, 7, 71, 2, 2, 6160, 6161, 7, 67, 2, 2, 6161, 6162, 7, 86, 2, 2, 6162, 6163, 7, 75, 2, 2, 6163, 6164, 7, 81, 2, 2, 6164, 6165, 7, 80, 2, 2, 6165, 6166, 7, 97, 2, 2, 6166, 6167, 7, 70, 2, 2, 6167, 6168, 7, 75, 2, 2, 6168, 6169, 7, 85, 2, 2, 6169, 6170, 7, 82, 2, 2, 6170, 6171, 7, 81, 2, 2, 6171, 6172, 7, 85, 2, 2, 6172, 6173, 7, 75, 2, 2, 6173, 6174, 7, 86, 2, 2, 6174, 6175, 7, 75, 2, 2, 6175, 6176, 7, 81, 2, 2, 6176, 6177, 7, 80, 2, 2, 6177, 900, 3, 2, 2, 2, 6178, 6179, 7, 69, 2, 2, 6179, 6180, 7, 84, 2, 2, 6180, 6181, 7, 71, 2, 2, 6181, 6182, 7, 70, 2, 2, 6182, 6183, 7, 71, 2, 2, 6183, 6184, 7, 80, 2, 2, 6184, 6185, 7, 86, 2, 2, 6185, 6186, 7, 75, 2, 2, 6186, 6187, 7, 67, 2, 2, 6187, 6188, 7, 78, 2, 2, 6188, 902, 3, 2, 2, 2, 6189, 6190, 7, 69, 2, 2, 6190, 6191, 7, 84, 2, 2, 6191, 6192, 7, 91, 2, 2, 6192, 6193, 7, 82, 2, 2, 6193, 6194, 7, 86, 2, 2, 6194, 6195, 7, 81, 2, 2, 6195, 6196, 7, 73, 2, 2, 6196, 6197, 7, 84, 2, 2, 6197, 6198, 7, 67, 2, 2, 6198, 6199, 7, 82, 2, 2, 6199, 6200, 7, 74, 2, 2, 6200, 6201, 7, 75, 2, 2, 6201, 6202, 7, 69, 2, 2, 6202, 904, 3, 2, 2, 2, 6203, 6204, 7, 69, 2, 2, 6204, 6205, 7, 87, 2, 2, 6205, 6206, 7, 84, 2, 2, 6206, 6207, 7, 85, 2, 2, 6207, 6208, 7, 81, 2, 2, 6208, 6209, 7, 84, 2, 2, 6209, 6210, 7, 97, 2, 2, 6210, 6211, 7, 69, 2, 2, 6211, 6212, 7, 78, 2, 2, 6212, 6213, 7, 81, 2, 2, 6213, 6214, 7, 85, 2, 2, 6214, 6215, 7, 71, 2, 2, 6215, 6216, 7, 97, 2, 2, 6216, 6217, 7, 81, 2, 2, 6217, 6218, 7, 80, 2, 2, 6218, 6219, 7, 97, 2, 2, 6219, 6220, 7, 69, 2, 2, 6220, 6221, 7, 81, 2, 2, 6221, 6222, 7, 79, 2, 2, 6222, 6223, 7, 79, 2, 2, 6223, 6224, 7, 75, 2, 2, 6224, 6225, 7, 86, 2, 2, 6225, 906, 3, 2, 2, 2, 6226, 6227, 7, 69, 2, 2, 6227, 6228, 7, 87, 2, 2, 6228, 6229, 7, 84, 2, 2, 6229, 6230, 7, 85, 2, 2, 6230, 6231, 7, 81, 2, 2, 6231, 6232, 7, 84, 2, 2, 6232, 6233, 7, 97, 2, 2, 6233, 6234, 7, 70, 2, 2, 6234, 6235, 7, 71, 2, 2, 6235, 6236, 7, 72, 2, 2, 6236, 6237, 7, 67, 2, 2, 6237, 6238, 7, 87, 2, 2, 6238, 6239, 7, 78, 2, 2, 6239, 6240, 7, 86, 2, 2, 6240, 908, 3, 2, 2, 2, 6241, 6242, 7, 70, 2, 2, 6242, 6243, 7, 67, 2, 2, 6243, 6244, 7, 86, 2, 2, 6244, 6245, 7, 67, 2, 2, 6245, 910, 3, 2, 2, 2, 6246, 6247, 7, 70, 2, 2, 6247, 6248, 7, 67, 2, 2, 6248, 6249, 7, 86, 2, 2, 6249, 6250, 7, 71, 2, 2, 6250, 6251, 7, 97, 2, 2, 6251, 6252, 7, 69, 2, 2, 6252, 6253, 7, 81, 2, 2, 6253, 6254, 7, 84, 2, 2, 6254, 6255, 7, 84, 2, 2, 6255, 6256, 7, 71, 2, 2, 6256, 6257, 7, 78, 2, 2, 6257, 6258, 7, 67, 2, 2, 6258, 6259, 7, 86, 2, 2, 6259, 6260, 7, 75, 2, 2, 6260, 6261, 7, 81, 2, 2, 6261, 6262, 7, 80, 2, 2, 6262, 6263, 7, 97, 2, 2, 6263, 6264, 7, 81, 2, 2, 6264, 6265, 7, 82, 2, 2, 6265, 6266, 7, 86, 2, 2, 6266, 6267, 7, 75, 2, 2, 6267, 6268, 7, 79, 2, 2, 6268, 6269, 7, 75, 2, 2, 6269, 6270, 7, 92, 2, 2, 6270, 6271, 7, 67, 2, 2, 6271, 6272, 7, 86, 2, 2, 6272, 6273, 7, 75, 2, 2, 6273, 6274, 7, 81, 2, 2, 6274, 6275, 7, 80, 2, 2, 6275, 912, 3, 2, 2, 2, 6276, 6277, 7, 70, 2, 2, 6277, 6278, 7, 67, 2, 2, 6278, 6279, 7, 86, 2, 2, 6279, 6280, 7, 71, 2, 2, 6280, 6281, 7, 67, 2, 2, 6281, 6282, 7, 70, 2, 2, 6282, 6283, 7, 70, 2, 2, 6283, 914, 3, 2, 2, 2, 6284, 6285, 7, 70, 2, 2, 6285, 6286, 7, 67, 2, 2, 6286, 6287, 7, 86, 2, 2, 6287, 6288, 7, 71, 2, 2, 6288, 6289, 7, 70, 2, 2, 6289, 6290, 7, 75, 2, 2, 6290, 6291, 7, 72, 2, 2, 6291, 6292, 7, 72, 2, 2, 6292, 916, 3, 2, 2, 2, 6293, 6294, 7, 70, 2, 2, 6294, 6295, 7, 67, 2, 2, 6295, 6296, 7, 86, 2, 2, 6296, 6297, 7, 71, 2, 2, 6297, 6298, 7, 80, 2, 2, 6298, 6299, 7, 67, 2, 2, 6299, 6300, 7, 79, 2, 2, 6300, 6301, 7, 71, 2, 2, 6301, 918, 3, 2, 2, 2, 6302, 6303, 7, 70, 2, 2, 6303, 6304, 7, 67, 2, 2, 6304, 6305, 7, 86, 2, 2, 6305, 6306, 7, 71, 2, 2, 6306, 6307, 7, 82, 2, 2, 6307, 6308, 7, 67, 2, 2, 6308, 6309, 7, 84, 2, 2, 6309, 6310, 7, 86, 2, 2, 6310, 920, 3, 2, 2, 2, 6311, 6312, 7, 70, 2, 2, 6312, 6313, 7, 67, 2, 2, 6313, 6314, 7, 91, 2, 2, 6314, 6315, 7, 85, 2, 2, 6315, 922, 3, 2, 2, 2, 6316, 6317, 7, 70, 2, 2, 6317, 6318, 7, 68, 2, 2, 6318, 6319, 7, 97, 2, 2, 6319, 6320, 7, 69, 2, 2, 6320, 6321, 7, 74, 2, 2, 6321, 6322, 7, 67, 2, 2, 6322, 6323, 7, 75, 2, 2, 6323, 6324, 7, 80, 2, 2, 6324, 6325, 7, 75, 2, 2, 6325, 6326, 7, 80, 2, 2, 6326, 6327, 7, 73, 2, 2, 6327, 924, 3, 2, 2, 2, 6328, 6329, 7, 70, 2, 2, 6329, 6330, 7, 68, 2, 2, 6330, 6331, 7, 97, 2, 2, 6331, 6332, 7, 72, 2, 2, 6332, 6333, 7, 67, 2, 2, 6333, 6334, 7, 75, 2, 2, 6334, 6335, 7, 78, 2, 2, 6335, 6336, 7, 81, 2, 2, 6336, 6337, 7, 88, 2, 2, 6337, 6338, 7, 71, 2, 2, 6338, 6339, 7, 84, 2, 2, 6339, 926, 3, 2, 2, 2, 6340, 6341, 7, 70, 2, 2, 6341, 6342, 7, 71, 2, 2, 6342, 6343, 7, 69, 2, 2, 6343, 6344, 7, 84, 2, 2, 6344, 6345, 7, 91, 2, 2, 6345, 6346, 7, 82, 2, 2, 6346, 6347, 7, 86, 2, 2, 6347, 6348, 7, 75, 2, 2, 6348, 6349, 7, 81, 2, 2, 6349, 6350, 7, 80, 2, 2, 6350, 928, 3, 2, 2, 2, 6351, 6352, 9, 5, 2, 2, 6352, 6353, 7, 70, 2, 2, 6353, 6354, 7, 71, 2, 2, 6354, 6355, 7, 72, 2, 2, 6355, 6356, 7, 67, 2, 2, 6356, 6357, 7, 87, 2, 2, 6357, 6358, 7, 78, 2, 2, 6358, 6359, 7, 86, 2, 2, 6359, 6360, 3, 2, 2, 2, 6360, 6361, 9, 5, 2, 2, 6361, 930, 3, 2, 2, 2, 6362, 6363, 7, 70, 2, 2, 6363, 6364, 7, 71, 2, 2, 6364, 6365, 7, 72, 2, 2, 6365, 6366, 7, 67, 2, 2, 6366, 6367, 7, 87, 2, 2, 6367, 6368, 7, 78, 2, 2, 6368, 6369, 7, 86, 2, 2, 6369, 6370, 7, 97, 2, 2, 6370, 6371, 7, 72, 2, 2, 6371, 6372, 7, 87, 2, 2, 6372, 6373, 7, 78, 2, 2, 6373, 6374, 7, 78, 2, 2, 6374, 6375, 7, 86, 2, 2, 6375, 6376, 7, 71, 2, 2, 6376, 6377, 7, 90, 2, 2, 6377, 6378, 7, 86, 2, 2, 6378, 6379, 7, 97, 2, 2, 6379, 6380, 7, 78, 2, 2, 6380, 6381, 7, 67, 2, 2, 6381, 6382, 7, 80, 2, 2, 6382, 6383, 7, 73, 2, 2, 6383, 6384, 7, 87, 2, 2, 6384, 6385, 7, 67, 2, 2, 6385, 6386, 7, 73, 2, 2, 6386, 6387, 7, 71, 2, 2, 6387, 932, 3, 2, 2, 2, 6388, 6389, 7, 70, 2, 2, 6389, 6390, 7, 71, 2, 2, 6390, 6391, 7, 72, 2, 2, 6391, 6392, 7, 67, 2, 2, 6392, 6393, 7, 87, 2, 2, 6393, 6394, 7, 78, 2, 2, 6394, 6395, 7, 86, 2, 2, 6395, 6396, 7, 97, 2, 2, 6396, 6397, 7, 78, 2, 2, 6397, 6398, 7, 67, 2, 2, 6398, 6399, 7, 80, 2, 2, 6399, 6400, 7, 73, 2, 2, 6400, 6401, 7, 87, 2, 2, 6401, 6402, 7, 67, 2, 2, 6402, 6403, 7, 73, 2, 2, 6403, 6404, 7, 71, 2, 2, 6404, 934, 3, 2, 2, 2, 6405, 6406, 7, 70, 2, 2, 6406, 6407, 7, 71, 2, 2, 6407, 6408, 7, 78, 2, 2, 6408, 6409, 7, 67, 2, 2, 6409, 6410, 7, 91, 2, 2, 6410, 936, 3, 2, 2, 2, 6411, 6412, 7, 70, 2, 2, 6412, 6413, 7, 71, 2, 2, 6413, 6414, 7, 78, 2, 2, 6414, 6415, 7, 67, 2, 2, 6415, 6416, 7, 91, 2, 2, 6416, 6417, 7, 71, 2, 2, 6417, 6418, 7, 70, 2, 2, 6418, 6419, 7, 97, 2, 2, 6419, 6420, 7, 70, 2, 2, 6420, 6421, 7, 87, 2, 2, 6421, 6422, 7, 84, 2, 2, 6422, 6423, 7, 67, 2, 2, 6423, 6424, 7, 68, 2, 2, 6424, 6425, 7, 75, 2, 2, 6425, 6426, 7, 78, 2, 2, 6426, 6427, 7, 75, 2, 2, 6427, 6428, 7, 86, 2, 2, 6428, 6429, 7, 91, 2, 2, 6429, 938, 3, 2, 2, 2, 6430, 6431, 7, 70, 2, 2, 6431, 6432, 7, 71, 2, 2, 6432, 6433, 7, 78, 2, 2, 6433, 6434, 7, 71, 2, 2, 6434, 6435, 7, 86, 2, 2, 6435, 6436, 7, 71, 2, 2, 6436, 6437, 7, 70, 2, 2, 6437, 940, 3, 2, 2, 2, 6438, 6439, 7, 70, 2, 2, 6439, 6440, 7, 71, 2, 2, 6440, 6441, 7, 80, 2, 2, 6441, 6442, 7, 85, 2, 2, 6442, 6443, 7, 71, 2, 2, 6443, 6444, 7, 97, 2, 2, 6444, 6445, 7, 84, 2, 2, 6445, 6446, 7, 67, 2, 2, 6446, 6447, 7, 80, 2, 2, 6447, 6448, 7, 77, 2, 2, 6448, 942, 3, 2, 2, 2, 6449, 6450, 7, 70, 2, 2, 6450, 6451, 7, 71, 2, 2, 6451, 6452, 7, 82, 2, 2, 6452, 6453, 7, 71, 2, 2, 6453, 6454, 7, 80, 2, 2, 6454, 6455, 7, 70, 2, 2, 6455, 6456, 7, 71, 2, 2, 6456, 6457, 7, 80, 2, 2, 6457, 6458, 7, 86, 2, 2, 6458, 6459, 7, 85, 2, 2, 6459, 944, 3, 2, 2, 2, 6460, 6461, 7, 70, 2, 2, 6461, 6462, 7, 71, 2, 2, 6462, 6463, 7, 85, 2, 2, 6463, 946, 3, 2, 2, 2, 6464, 6465, 7, 70, 2, 2, 6465, 6466, 7, 71, 2, 2, 6466, 6467, 7, 85, 2, 2, 6467, 6468, 7, 69, 2, 2, 6468, 6469, 7, 84, 2, 2, 6469, 6470, 7, 75, 2, 2, 6470, 6471, 7, 82, 2, 2, 6471, 6472, 7, 86, 2, 2, 6472, 6473, 7, 75, 2, 2, 6473, 6474, 7, 81, 2, 2, 6474, 6475, 7, 80, 2, 2, 6475, 948, 3, 2, 2, 2, 6476, 6477, 7, 70, 2, 2, 6477, 6478, 7, 71, 2, 2, 6478, 6479, 7, 85, 2, 2, 6479, 6480, 7, 90, 2, 2, 6480, 950, 3, 2, 2, 2, 6481, 6482, 7, 70, 2, 2, 6482, 6483, 7, 74, 2, 2, 6483, 6484, 7, 69, 2, 2, 6484, 6485, 7, 82, 2, 2, 6485, 952, 3, 2, 2, 2, 6486, 6487, 7, 70, 2, 2, 6487, 6488, 7, 75, 2, 2, 6488, 6489, 7, 67, 2, 2, 6489, 6490, 7, 78, 2, 2, 6490, 6491, 7, 81, 2, 2, 6491, 6492, 7, 73, 2, 2, 6492, 954, 3, 2, 2, 2, 6493, 6494, 7, 70, 2, 2, 6494, 6495, 7, 75, 2, 2, 6495, 6496, 7, 84, 2, 2, 6496, 6497, 7, 71, 2, 2, 6497, 6498, 7, 69, 2, 2, 6498, 6499, 7, 86, 2, 2, 6499, 6500, 7, 81, 2, 2, 6500, 6501, 7, 84, 2, 2, 6501, 6502, 7, 91, 2, 2, 6502, 6503, 7, 97, 2, 2, 6503, 6504, 7, 80, 2, 2, 6504, 6505, 7, 67, 2, 2, 6505, 6506, 7, 79, 2, 2, 6506, 6507, 7, 71, 2, 2, 6507, 956, 3, 2, 2, 2, 6508, 6509, 7, 70, 2, 2, 6509, 6510, 7, 75, 2, 2, 6510, 6511, 7, 85, 2, 2, 6511, 6512, 7, 67, 2, 2, 6512, 6513, 7, 68, 2, 2, 6513, 6514, 7, 78, 2, 2, 6514, 6515, 7, 71, 2, 2, 6515, 958, 3, 2, 2, 2, 6516, 6517, 7, 70, 2, 2, 6517, 6518, 7, 75, 2, 2, 6518, 6519, 7, 85, 2, 2, 6519, 6520, 7, 67, 2, 2, 6520, 6521, 7, 68, 2, 2, 6521, 6522, 7, 78, 2, 2, 6522, 6523, 7, 71, 2, 2, 6523, 6524, 7, 97, 2, 2, 6524, 6525, 7, 68, 2, 2, 6525, 6526, 7, 84, 2, 2, 6526, 6527, 7, 81, 2, 2, 6527, 6528, 7, 77, 2, 2, 6528, 6529, 7, 71, 2, 2, 6529, 6530, 7, 84, 2, 2, 6530, 960, 3, 2, 2, 2, 6531, 6532, 7, 70, 2, 2, 6532, 6533, 7, 75, 2, 2, 6533, 6534, 7, 85, 2, 2, 6534, 6535, 7, 67, 2, 2, 6535, 6536, 7, 68, 2, 2, 6536, 6537, 7, 78, 2, 2, 6537, 6538, 7, 71, 2, 2, 6538, 6539, 7, 70, 2, 2, 6539, 962, 3, 2, 2, 2, 6540, 6541, 9, 6, 2, 2, 6541, 6542, 9, 4, 2, 2, 6542, 964, 3, 2, 2, 2, 6543, 6544, 7, 70, 2, 2, 6544, 6545, 7, 81, 2, 2, 6545, 6546, 7, 69, 2, 2, 6546, 6547, 7, 87, 2, 2, 6547, 6548, 7, 79, 2, 2, 6548, 6549, 7, 71, 2, 2, 6549, 6550, 7, 80, 2, 2, 6550, 6551, 7, 86, 2, 2, 6551, 966, 3, 2, 2, 2, 6552, 6553, 7, 70, 2, 2, 6553, 6554, 7, 91, 2, 2, 6554, 6555, 7, 80, 2, 2, 6555, 6556, 7, 67, 2, 2, 6556, 6557, 7, 79, 2, 2, 6557, 6558, 7, 75, 2, 2, 6558, 6559, 7, 69, 2, 2, 6559, 968, 3, 2, 2, 2, 6560, 6561, 7, 71, 2, 2, 6561, 6562, 7, 78, 2, 2, 6562, 6563, 7, 71, 2, 2, 6563, 6564, 7, 79, 2, 2, 6564, 6565, 7, 71, 2, 2, 6565, 6566, 7, 80, 2, 2, 6566, 6567, 7, 86, 2, 2, 6567, 6568, 7, 85, 2, 2, 6568, 970, 3, 2, 2, 2, 6569, 6570, 7, 71, 2, 2, 6570, 6571, 7, 79, 2, 2, 6571, 6572, 7, 71, 2, 2, 6572, 6573, 7, 84, 2, 2, 6573, 6574, 7, 73, 2, 2, 6574, 6575, 7, 71, 2, 2, 6575, 6576, 7, 80, 2, 2, 6576, 6577, 7, 69, 2, 2, 6577, 6578, 7, 91, 2, 2, 6578, 972, 3, 2, 2, 2, 6579, 6580, 7, 71, 2, 2, 6580, 6581, 7, 79, 2, 2, 6581, 6582, 7, 82, 2, 2, 6582, 6583, 7, 86, 2, 2, 6583, 6584, 7, 91, 2, 2, 6584, 974, 3, 2, 2, 2, 6585, 6586, 7, 71, 2, 2, 6586, 6587, 7, 80, 2, 2, 6587, 6588, 7, 67, 2, 2, 6588, 6589, 7, 68, 2, 2, 6589, 6590, 7, 78, 2, 2, 6590, 6591, 7, 71, 2, 2, 6591, 976, 3, 2, 2, 2, 6592, 6593, 7, 71, 2, 2, 6593, 6594, 7, 80, 2, 2, 6594, 6595, 7, 67, 2, 2, 6595, 6596, 7, 68, 2, 2, 6596, 6597, 7, 78, 2, 2, 6597, 6598, 7, 71, 2, 2, 6598, 6599, 7, 97, 2, 2, 6599, 6600, 7, 68, 2, 2, 6600, 6601, 7, 84, 2, 2, 6601, 6602, 7, 81, 2, 2, 6602, 6603, 7, 77, 2, 2, 6603, 6604, 7, 71, 2, 2, 6604, 6605, 7, 84, 2, 2, 6605, 978, 3, 2, 2, 2, 6606, 6607, 7, 71, 2, 2, 6607, 6608, 7, 80, 2, 2, 6608, 6609, 7, 69, 2, 2, 6609, 6610, 7, 84, 2, 2, 6610, 6611, 7, 91, 2, 2, 6611, 6612, 7, 82, 2, 2, 6612, 6613, 7, 86, 2, 2, 6613, 6614, 7, 71, 2, 2, 6614, 6615, 7, 70, 2, 2, 6615, 6616, 7, 97, 2, 2, 6616, 6617, 7, 88, 2, 2, 6617, 6618, 7, 67, 2, 2, 6618, 6619, 7, 78, 2, 2, 6619, 6620, 7, 87, 2, 2, 6620, 6621, 7, 71, 2, 2, 6621, 980, 3, 2, 2, 2, 6622, 6623, 7, 71, 2, 2, 6623, 6624, 7, 80, 2, 2, 6624, 6625, 7, 69, 2, 2, 6625, 6626, 7, 84, 2, 2, 6626, 6627, 7, 91, 2, 2, 6627, 6628, 7, 82, 2, 2, 6628, 6629, 7, 86, 2, 2, 6629, 6630, 7, 75, 2, 2, 6630, 6631, 7, 81, 2, 2, 6631, 6632, 7, 80, 2, 2, 6632, 982, 3, 2, 2, 2, 6633, 6634, 7, 71, 2, 2, 6634, 6635, 7, 80, 2, 2, 6635, 6636, 7, 70, 2, 2, 6636, 6637, 7, 82, 2, 2, 6637, 6638, 7, 81, 2, 2, 6638, 6639, 7, 75, 2, 2, 6639, 6640, 7, 80, 2, 2, 6640, 6641, 7, 86, 2, 2, 6641, 6642, 7, 97, 2, 2, 6642, 6643, 7, 87, 2, 2, 6643, 6644, 7, 84, 2, 2, 6644, 6645, 7, 78, 2, 2, 6645, 984, 3, 2, 2, 2, 6646, 6647, 7, 71, 2, 2, 6647, 6648, 7, 84, 2, 2, 6648, 6649, 7, 84, 2, 2, 6649, 6650, 7, 81, 2, 2, 6650, 6651, 7, 84, 2, 2, 6651, 6652, 7, 97, 2, 2, 6652, 6653, 7, 68, 2, 2, 6653, 6654, 7, 84, 2, 2, 6654, 6655, 7, 81, 2, 2, 6655, 6656, 7, 77, 2, 2, 6656, 6657, 7, 71, 2, 2, 6657, 6658, 7, 84, 2, 2, 6658, 6659, 7, 97, 2, 2, 6659, 6660, 7, 69, 2, 2, 6660, 6661, 7, 81, 2, 2, 6661, 6662, 7, 80, 2, 2, 6662, 6663, 7, 88, 2, 2, 6663, 6664, 7, 71, 2, 2, 6664, 6665, 7, 84, 2, 2, 6665, 6666, 7, 85, 2, 2, 6666, 6667, 7, 67, 2, 2, 6667, 6668, 7, 86, 2, 2, 6668, 6669, 7, 75, 2, 2, 6669, 6670, 7, 81, 2, 2, 6670, 6671, 7, 80, 2, 2, 6671, 6672, 7, 85, 2, 2, 6672, 986, 3, 2, 2, 2, 6673, 6674, 7, 71, 2, 2, 6674, 6675, 7, 90, 2, 2, 6675, 6676, 7, 69, 2, 2, 6676, 6677, 7, 78, 2, 2, 6677, 6678, 7, 87, 2, 2, 6678, 6679, 7, 85, 2, 2, 6679, 6680, 7, 75, 2, 2, 6680, 6681, 7, 88, 2, 2, 6681, 6682, 7, 71, 2, 2, 6682, 988, 3, 2, 2, 2, 6683, 6684, 7, 71, 2, 2, 6684, 6685, 7, 90, 2, 2, 6685, 6686, 7, 71, 2, 2, 6686, 6687, 7, 69, 2, 2, 6687, 6688, 7, 87, 2, 2, 6688, 6689, 7, 86, 2, 2, 6689, 6690, 7, 67, 2, 2, 6690, 6691, 7, 68, 2, 2, 6691, 6692, 7, 78, 2, 2, 6692, 6693, 7, 71, 2, 2, 6693, 990, 3, 2, 2, 2, 6694, 6695, 7, 71, 2, 2, 6695, 6696, 7, 90, 2, 2, 6696, 6697, 7, 75, 2, 2, 6697, 6698, 7, 85, 2, 2, 6698, 6699, 7, 86, 2, 2, 6699, 992, 3, 2, 2, 2, 6700, 6701, 7, 71, 2, 2, 6701, 6702, 7, 90, 2, 2, 6702, 6703, 7, 82, 2, 2, 6703, 6704, 7, 67, 2, 2, 6704, 6705, 7, 80, 2, 2, 6705, 6706, 7, 70, 2, 2, 6706, 994, 3, 2, 2, 2, 6707, 6708, 7, 71, 2, 2, 6708, 6709, 7, 90, 2, 2, 6709, 6710, 7, 82, 2, 2, 6710, 6711, 7, 75, 2, 2, 6711, 6712, 7, 84, 2, 2, 6712, 6713, 7, 91, 2, 2, 6713, 6714, 7, 97, 2, 2, 6714, 6715, 7, 70, 2, 2, 6715, 6716, 7, 67, 2, 2, 6716, 6717, 7, 86, 2, 2, 6717, 6718, 7, 71, 2, 2, 6718, 996, 3, 2, 2, 2, 6719, 6720, 7, 71, 2, 2, 6720, 6721, 7, 90, 2, 2, 6721, 6722, 7, 82, 2, 2, 6722, 6723, 7, 78, 2, 2, 6723, 6724, 7, 75, 2, 2, 6724, 6725, 7, 69, 2, 2, 6725, 6726, 7, 75, 2, 2, 6726, 6727, 7, 86, 2, 2, 6727, 998, 3, 2, 2, 2, 6728, 6729, 7, 72, 2, 2, 6729, 6730, 7, 67, 2, 2, 6730, 6731, 7, 75, 2, 2, 6731, 6732, 7, 78, 2, 2, 6732, 6733, 7, 97, 2, 2, 6733, 6734, 7, 81, 2, 2, 6734, 6735, 7, 82, 2, 2, 6735, 6736, 7, 71, 2, 2, 6736, 6737, 7, 84, 2, 2, 6737, 6738, 7, 67, 2, 2, 6738, 6739, 7, 86, 2, 2, 6739, 6740, 7, 75, 2, 2, 6740, 6741, 7, 81, 2, 2, 6741, 6742, 7, 80, 2, 2, 6742, 1000, 3, 2, 2, 2, 6743, 6744, 7, 72, 2, 2, 6744, 6745, 7, 67, 2, 2, 6745, 6746, 7, 75, 2, 2, 6746, 6747, 7, 78, 2, 2, 6747, 6748, 7, 81, 2, 2, 6748, 6749, 7, 88, 2, 2, 6749, 6750, 7, 71, 2, 2, 6750, 6751, 7, 84, 2, 2, 6751, 6752, 7, 97, 2, 2, 6752, 6753, 7, 79, 2, 2, 6753, 6754, 7, 81, 2, 2, 6754, 6755, 7, 70, 2, 2, 6755, 6756, 7, 71, 2, 2, 6756, 1002, 3, 2, 2, 2, 6757, 6758, 7, 72, 2, 2, 6758, 6759, 7, 67, 2, 2, 6759, 6760, 7, 75, 2, 2, 6760, 6761, 7, 78, 2, 2, 6761, 6762, 7, 87, 2, 2, 6762, 6763, 7, 84, 2, 2, 6763, 6764, 7, 71, 2, 2, 6764, 1004, 3, 2, 2, 2, 6765, 6766, 7, 72, 2, 2, 6766, 6767, 7, 67, 2, 2, 6767, 6768, 7, 75, 2, 2, 6768, 6769, 7, 78, 2, 2, 6769, 6770, 7, 87, 2, 2, 6770, 6771, 7, 84, 2, 2, 6771, 6772, 7, 71, 2, 2, 6772, 6773, 7, 97, 2, 2, 6773, 6774, 7, 69, 2, 2, 6774, 6775, 7, 81, 2, 2, 6775, 6776, 7, 80, 2, 2, 6776, 6777, 7, 70, 2, 2, 6777, 6778, 7, 75, 2, 2, 6778, 6779, 7, 86, 2, 2, 6779, 6780, 7, 75, 2, 2, 6780, 6781, 7, 81, 2, 2, 6781, 6782, 7, 80, 2, 2, 6782, 6783, 7, 97, 2, 2, 6783, 6784, 7, 78, 2, 2, 6784, 6785, 7, 71, 2, 2, 6785, 6786, 7, 88, 2, 2, 6786, 6787, 7, 71, 2, 2, 6787, 6788, 7, 78, 2, 2, 6788, 1006, 3, 2, 2, 2, 6789, 6790, 7, 72, 2, 2, 6790, 6791, 7, 67, 2, 2, 6791, 6792, 7, 85, 2, 2, 6792, 6793, 7, 86, 2, 2, 6793, 1008, 3, 2, 2, 2, 6794, 6795, 7, 72, 2, 2, 6795, 6796, 7, 67, 2, 2, 6796, 6797, 7, 85, 2, 2, 6797, 6798, 7, 86, 2, 2, 6798, 6799, 7, 97, 2, 2, 6799, 6800, 7, 72, 2, 2, 6800, 6801, 7, 81, 2, 2, 6801, 6802, 7, 84, 2, 2, 6802, 6803, 7, 89, 2, 2, 6803, 6804, 7, 67, 2, 2, 6804, 6805, 7, 84, 2, 2, 6805, 6806, 7, 70, 2, 2, 6806, 1010, 3, 2, 2, 2, 6807, 6808, 7, 72, 2, 2, 6808, 6809, 7, 75, 2, 2, 6809, 6810, 7, 78, 2, 2, 6810, 6811, 7, 71, 2, 2, 6811, 6812, 7, 73, 2, 2, 6812, 6813, 7, 84, 2, 2, 6813, 6814, 7, 81, 2, 2, 6814, 6815, 7, 87, 2, 2, 6815, 6816, 7, 82, 2, 2, 6816, 1012, 3, 2, 2, 2, 6817, 6818, 7, 72, 2, 2, 6818, 6819, 7, 75, 2, 2, 6819, 6820, 7, 78, 2, 2, 6820, 6821, 7, 71, 2, 2, 6821, 6822, 7, 73, 2, 2, 6822, 6823, 7, 84, 2, 2, 6823, 6824, 7, 81, 2, 2, 6824, 6825, 7, 89, 2, 2, 6825, 6826, 7, 86, 2, 2, 6826, 6827, 7, 74, 2, 2, 6827, 1014, 3, 2, 2, 2, 6828, 6829, 7, 72, 2, 2, 6829, 6830, 7, 75, 2, 2, 6830, 6831, 7, 78, 2, 2, 6831, 6832, 7, 71, 2, 2, 6832, 6833, 7, 82, 2, 2, 6833, 6834, 7, 67, 2, 2, 6834, 6835, 7, 86, 2, 2, 6835, 6836, 7, 74, 2, 2, 6836, 1016, 3, 2, 2, 2, 6837, 6838, 7, 72, 2, 2, 6838, 6839, 7, 75, 2, 2, 6839, 6840, 7, 78, 2, 2, 6840, 6841, 7, 71, 2, 2, 6841, 6842, 7, 85, 2, 2, 6842, 6843, 7, 86, 2, 2, 6843, 6844, 7, 84, 2, 2, 6844, 6845, 7, 71, 2, 2, 6845, 6846, 7, 67, 2, 2, 6846, 6847, 7, 79, 2, 2, 6847, 1018, 3, 2, 2, 2, 6848, 6849, 7, 72, 2, 2, 6849, 6850, 7, 75, 2, 2, 6850, 6851, 7, 78, 2, 2, 6851, 6852, 7, 86, 2, 2, 6852, 6853, 7, 71, 2, 2, 6853, 6854, 7, 84, 2, 2, 6854, 1020, 3, 2, 2, 2, 6855, 6856, 7, 72, 2, 2, 6856, 6857, 7, 75, 2, 2, 6857, 6858, 7, 84, 2, 2, 6858, 6859, 7, 85, 2, 2, 6859, 6860, 7, 86, 2, 2, 6860, 1022, 3, 2, 2, 2, 6861, 6862, 7, 72, 2, 2, 6862, 6863, 7, 75, 2, 2, 6863, 6864, 7, 84, 2, 2, 6864, 6865, 7, 85, 2, 2, 6865, 6866, 7, 86, 2, 2, 6866, 6867, 7, 97, 2, 2, 6867, 6868, 7, 88, 2, 2, 6868, 6869, 7, 67, 2, 2, 6869, 6870, 7, 78, 2, 2, 6870, 6871, 7, 87, 2, 2, 6871, 6872, 7, 71, 2, 2, 6872, 1024, 3, 2, 2, 2, 6873, 6874, 7, 72, 2, 2, 6874, 6875, 7, 81, 2, 2, 6875, 6876, 7, 78, 2, 2, 6876, 6877, 7, 78, 2, 2, 6877, 6878, 7, 81, 2, 2, 6878, 6879, 7, 89, 2, 2, 6879, 6880, 7, 75, 2, 2, 6880, 6881, 7, 80, 2, 2, 6881, 6882, 7, 73, 2, 2, 6882, 1026, 3, 2, 2, 2, 6883, 6884, 7, 72, 2, 2, 6884, 6885, 7, 81, 2, 2, 6885, 6886, 7, 84, 2, 2, 6886, 6887, 7, 69, 2, 2, 6887, 6888, 7, 71, 2, 2, 6888, 1028, 3, 2, 2, 2, 6889, 6890, 7, 72, 2, 2, 6890, 6891, 7, 81, 2, 2, 6891, 6892, 7, 84, 2, 2, 6892, 6893, 7, 69, 2, 2, 6893, 6894, 7, 71, 2, 2, 6894, 6895, 7, 97, 2, 2, 6895, 6896, 7, 72, 2, 2, 6896, 6897, 7, 67, 2, 2, 6897, 6898, 7, 75, 2, 2, 6898, 6899, 7, 78, 2, 2, 6899, 6900, 7, 81, 2, 2, 6900, 6901, 7, 88, 2, 2, 6901, 6902, 7, 71, 2, 2, 6902, 6903, 7, 84, 2, 2, 6903, 6904, 7, 97, 2, 2, 6904, 6905, 7, 67, 2, 2, 6905, 6906, 7, 78, 2, 2, 6906, 6907, 7, 78, 2, 2, 6907, 6908, 7, 81, 2, 2, 6908, 6909, 7, 89, 2, 2, 6909, 6910, 7, 97, 2, 2, 6910, 6911, 7, 70, 2, 2, 6911, 6912, 7, 67, 2, 2, 6912, 6913, 7, 86, 2, 2, 6913, 6914, 7, 67, 2, 2, 6914, 6915, 7, 97, 2, 2, 6915, 6916, 7, 78, 2, 2, 6916, 6917, 7, 81, 2, 2, 6917, 6918, 7, 85, 2, 2, 6918, 6919, 7, 85, 2, 2, 6919, 1030, 3, 2, 2, 2, 6920, 6921, 7, 72, 2, 2, 6921, 6922, 7, 81, 2, 2, 6922, 6923, 7, 84, 2, 2, 6923, 6924, 7, 69, 2, 2, 6924, 6925, 7, 71, 2, 2, 6925, 6926, 7, 70, 2, 2, 6926, 1032, 3, 2, 2, 2, 6927, 6928, 7, 72, 2, 2, 6928, 6929, 7, 81, 2, 2, 6929, 6930, 7, 84, 2, 2, 6930, 6931, 7, 79, 2, 2, 6931, 6932, 7, 67, 2, 2, 6932, 6933, 7, 86, 2, 2, 6933, 1034, 3, 2, 2, 2, 6934, 6935, 7, 72, 2, 2, 6935, 6936, 7, 81, 2, 2, 6936, 6937, 7, 84, 2, 2, 6937, 6938, 7, 89, 2, 2, 6938, 6939, 7, 67, 2, 2, 6939, 6940, 7, 84, 2, 2, 6940, 6941, 7, 70, 2, 2, 6941, 6942, 7, 97, 2, 2, 6942, 6943, 7, 81, 2, 2, 6943, 6944, 7, 80, 2, 2, 6944, 6945, 7, 78, 2, 2, 6945, 6946, 7, 91, 2, 2, 6946, 1036, 3, 2, 2, 2, 6947, 6948, 7, 72, 2, 2, 6948, 6949, 7, 87, 2, 2, 6949, 6950, 7, 78, 2, 2, 6950, 6951, 7, 78, 2, 2, 6951, 6952, 7, 85, 2, 2, 6952, 6953, 7, 69, 2, 2, 6953, 6954, 7, 67, 2, 2, 6954, 6955, 7, 80, 2, 2, 6955, 1038, 3, 2, 2, 2, 6956, 6957, 7, 72, 2, 2, 6957, 6958, 7, 87, 2, 2, 6958, 6959, 7, 78, 2, 2, 6959, 6960, 7, 78, 2, 2, 6960, 6961, 7, 86, 2, 2, 6961, 6962, 7, 71, 2, 2, 6962, 6963, 7, 90, 2, 2, 6963, 6964, 7, 86, 2, 2, 6964, 1040, 3, 2, 2, 2, 6965, 6966, 7, 73, 2, 2, 6966, 6967, 7, 68, 2, 2, 6967, 1042, 3, 2, 2, 2, 6968, 6969, 7, 73, 2, 2, 6969, 6970, 7, 71, 2, 2, 6970, 6971, 7, 86, 2, 2, 6971, 6972, 7, 70, 2, 2, 6972, 6973, 7, 67, 2, 2, 6973, 6974, 7, 86, 2, 2, 6974, 6975, 7, 71, 2, 2, 6975, 1044, 3, 2, 2, 2, 6976, 6977, 7, 73, 2, 2, 6977, 6978, 7, 71, 2, 2, 6978, 6979, 7, 86, 2, 2, 6979, 6980, 7, 87, 2, 2, 6980, 6981, 7, 86, 2, 2, 6981, 6982, 7, 69, 2, 2, 6982, 6983, 7, 70, 2, 2, 6983, 6984, 7, 67, 2, 2, 6984, 6985, 7, 86, 2, 2, 6985, 6986, 7, 71, 2, 2, 6986, 1046, 3, 2, 2, 2, 6987, 6988, 7, 73, 2, 2, 6988, 6989, 7, 78, 2, 2, 6989, 6990, 7, 81, 2, 2, 6990, 6991, 7, 68, 2, 2, 6991, 6992, 7, 67, 2, 2, 6992, 6993, 7, 78, 2, 2, 6993, 1048, 3, 2, 2, 2, 6994, 6995, 7, 73, 2, 2, 6995, 6996, 7, 81, 2, 2, 6996, 1050, 3, 2, 2, 2, 6997, 6998, 7, 73, 2, 2, 6998, 6999, 7, 84, 2, 2, 6999, 7000, 7, 81, 2, 2, 7000, 7001, 7, 87, 2, 2, 7001, 7002, 7, 82, 2, 2, 7002, 7003, 7, 97, 2, 2, 7003, 7004, 7, 79, 2, 2, 7004, 7005, 7, 67, 2, 2, 7005, 7006, 7, 90, 2, 2, 7006, 7007, 7, 97, 2, 2, 7007, 7008, 7, 84, 2, 2, 7008, 7009, 7, 71, 2, 2, 7009, 7010, 7, 83, 2, 2, 7010, 7011, 7, 87, 2, 2, 7011, 7012, 7, 71, 2, 2, 7012, 7013, 7, 85, 2, 2, 7013, 7014, 7, 86, 2, 2, 7014, 7015, 7, 85, 2, 2, 7015, 1052, 3, 2, 2, 2, 7016, 7017, 7, 73, 2, 2, 7017, 7018, 7, 84, 2, 2, 7018, 7019, 7, 81, 2, 2, 7019, 7020, 7, 87, 2, 2, 7020, 7021, 7, 82, 2, 2, 7021, 7022, 7, 75, 2, 2, 7022, 7023, 7, 80, 2, 2, 7023, 7024, 7, 73, 2, 2, 7024, 1054, 3, 2, 2, 2, 7025, 7026, 7, 73, 2, 2, 7026, 7027, 7, 84, 2, 2, 7027, 7028, 7, 81, 2, 2, 7028, 7029, 7, 87, 2, 2, 7029, 7030, 7, 82, 2, 2, 7030, 7031, 7, 75, 2, 2, 7031, 7032, 7, 80, 2, 2, 7032, 7033, 7, 73, 2, 2, 7033, 7034, 7, 97, 2, 2, 7034, 7035, 7, 75, 2, 2, 7035, 7036, 7, 70, 2, 2, 7036, 1056, 3, 2, 2, 2, 7037, 7038, 7, 74, 2, 2, 7038, 7039, 7, 67, 2, 2, 7039, 7040, 7, 70, 2, 2, 7040, 7041, 7, 84, 2, 2, 7041, 1058, 3, 2, 2, 2, 7042, 7043, 7, 74, 2, 2, 7043, 7044, 7, 67, 2, 2, 7044, 7045, 7, 85, 2, 2, 7045, 7046, 7, 74, 2, 2, 7046, 1060, 3, 2, 2, 2, 7047, 7048, 7, 74, 2, 2, 7048, 7049, 7, 71, 2, 2, 7049, 7050, 7, 67, 2, 2, 7050, 7051, 7, 78, 2, 2, 7051, 7052, 7, 86, 2, 2, 7052, 7053, 7, 74, 2, 2, 7053, 7054, 7, 97, 2, 2, 7054, 7055, 7, 69, 2, 2, 7055, 7056, 7, 74, 2, 2, 7056, 7057, 7, 71, 2, 2, 7057, 7058, 7, 69, 2, 2, 7058, 7059, 7, 77, 2, 2, 7059, 7060, 7, 97, 2, 2, 7060, 7061, 7, 86, 2, 2, 7061, 7062, 7, 75, 2, 2, 7062, 7063, 7, 79, 2, 2, 7063, 7064, 7, 71, 2, 2, 7064, 7065, 7, 81, 2, 2, 7065, 7066, 7, 87, 2, 2, 7066, 7067, 7, 86, 2, 2, 7067, 1062, 3, 2, 2, 2, 7068, 7069, 7, 74, 2, 2, 7069, 7070, 7, 75, 2, 2, 7070, 7071, 7, 73, 2, 2, 7071, 7072, 7, 74, 2, 2, 7072, 1064, 3, 2, 2, 2, 7073, 7074, 7, 74, 2, 2, 7074, 7075, 7, 81, 2, 2, 7075, 7076, 7, 80, 2, 2, 7076, 7077, 7, 81, 2, 2, 7077, 7078, 7, 84, 2, 2, 7078, 7079, 7, 97, 2, 2, 7079, 7080, 7, 68, 2, 2, 7080, 7081, 7, 84, 2, 2, 7081, 7082, 7, 81, 2, 2, 7082, 7083, 7, 77, 2, 2, 7083, 7084, 7, 71, 2, 2, 7084, 7085, 7, 84, 2, 2, 7085, 7086, 7, 97, 2, 2, 7086, 7087, 7, 82, 2, 2, 7087, 7088, 7, 84, 2, 2, 7088, 7089, 7, 75, 2, 2, 7089, 7090, 7, 81, 2, 2, 7090, 7091, 7, 84, 2, 2, 7091, 7092, 7, 75, 2, 2, 7092, 7093, 7, 86, 2, 2, 7093, 7094, 7, 91, 2, 2, 7094, 1066, 3, 2, 2, 2, 7095, 7096, 7, 74, 2, 2, 7096, 7097, 7, 81, 2, 2, 7097, 7098, 7, 87, 2, 2, 7098, 7099, 7, 84, 2, 2, 7099, 7100, 7, 85, 2, 2, 7100, 1068, 3, 2, 2, 2, 7101, 7102, 7, 75, 2, 2, 7102, 7103, 7, 70, 2, 2, 7103, 7104, 7, 71, 2, 2, 7104, 7105, 7, 80, 2, 2, 7105, 7106, 7, 86, 2, 2, 7106, 7107, 7, 75, 2, 2, 7107, 7108, 7, 86, 2, 2, 7108, 7109, 7, 91, 2, 2, 7109, 7110, 7, 97, 2, 2, 7110, 7111, 7, 88, 2, 2, 7111, 7112, 7, 67, 2, 2, 7112, 7113, 7, 78, 2, 2, 7113, 7114, 7, 87, 2, 2, 7114, 7115, 7, 71, 2, 2, 7115, 1070, 3, 2, 2, 2, 7116, 7117, 7, 75, 2, 2, 7117, 7118, 7, 73, 2, 2, 7118, 7119, 7, 80, 2, 2, 7119, 7120, 7, 81, 2, 2, 7120, 7121, 7, 84, 2, 2, 7121, 7122, 7, 71, 2, 2, 7122, 7123, 7, 97, 2, 2, 7123, 7124, 7, 80, 2, 2, 7124, 7125, 7, 81, 2, 2, 7125, 7126, 7, 80, 2, 2, 7126, 7127, 7, 69, 2, 2, 7127, 7128, 7, 78, 2, 2, 7128, 7129, 7, 87, 2, 2, 7129, 7130, 7, 85, 2, 2, 7130, 7131, 7, 86, 2, 2, 7131, 7132, 7, 71, 2, 2, 7132, 7133, 7, 84, 2, 2, 7133, 7134, 7, 71, 2, 2, 7134, 7135, 7, 70, 2, 2, 7135, 7136, 7, 97, 2, 2, 7136, 7137, 7, 69, 2, 2, 7137, 7138, 7, 81, 2, 2, 7138, 7139, 7, 78, 2, 2, 7139, 7140, 7, 87, 2, 2, 7140, 7141, 7, 79, 2, 2, 7141, 7142, 7, 80, 2, 2, 7142, 7143, 7, 85, 2, 2, 7143, 7144, 7, 86, 2, 2, 7144, 7145, 7, 81, 2, 2, 7145, 7146, 7, 84, 2, 2, 7146, 7147, 7, 71, 2, 2, 7147, 7148, 7, 97, 2, 2, 7148, 7149, 7, 75, 2, 2, 7149, 7150, 7, 80, 2, 2, 7150, 7151, 7, 70, 2, 2, 7151, 7152, 7, 71, 2, 2, 7152, 7153, 7, 90, 2, 2, 7153, 1072, 3, 2, 2, 2, 7154, 7155, 7, 75, 2, 2, 7155, 7156, 7, 79, 2, 2, 7156, 7157, 7, 79, 2, 2, 7157, 7158, 7, 71, 2, 2, 7158, 7159, 7, 70, 2, 2, 7159, 7160, 7, 75, 2, 2, 7160, 7161, 7, 67, 2, 2, 7161, 7162, 7, 86, 2, 2, 7162, 7163, 7, 71, 2, 2, 7163, 1074, 3, 2, 2, 2, 7164, 7165, 7, 75, 2, 2, 7165, 7166, 7, 79, 2, 2, 7166, 7167, 7, 82, 2, 2, 7167, 7168, 7, 71, 2, 2, 7168, 7169, 7, 84, 2, 2, 7169, 7170, 7, 85, 2, 2, 7170, 7171, 7, 81, 2, 2, 7171, 7172, 7, 80, 2, 2, 7172, 7173, 7, 67, 2, 2, 7173, 7174, 7, 86, 2, 2, 7174, 7175, 7, 71, 2, 2, 7175, 1076, 3, 2, 2, 2, 7176, 7177, 7, 75, 2, 2, 7177, 7178, 7, 79, 2, 2, 7178, 7179, 7, 82, 2, 2, 7179, 7180, 7, 81, 2, 2, 7180, 7181, 7, 84, 2, 2, 7181, 7182, 7, 86, 2, 2, 7182, 7183, 7, 67, 2, 2, 7183, 7184, 7, 80, 2, 2, 7184, 7185, 7, 69, 2, 2, 7185, 7186, 7, 71, 2, 2, 7186, 1078, 3, 2, 2, 2, 7187, 7188, 7, 75, 2, 2, 7188, 7189, 7, 80, 2, 2, 7189, 7190, 7, 69, 2, 2, 7190, 7191, 7, 78, 2, 2, 7191, 7192, 7, 87, 2, 2, 7192, 7193, 7, 70, 2, 2, 7193, 7194, 7, 71, 2, 2, 7194, 7195, 7, 97, 2, 2, 7195, 7196, 7, 80, 2, 2, 7196, 7197, 7, 87, 2, 2, 7197, 7198, 7, 78, 2, 2, 7198, 7199, 7, 78, 2, 2, 7199, 7200, 7, 97, 2, 2, 7200, 7201, 7, 88, 2, 2, 7201, 7202, 7, 67, 2, 2, 7202, 7203, 7, 78, 2, 2, 7203, 7204, 7, 87, 2, 2, 7204, 7205, 7, 71, 2, 2, 7205, 7206, 7, 85, 2, 2, 7206, 1080, 3, 2, 2, 2, 7207, 7208, 7, 75, 2, 2, 7208, 7209, 7, 80, 2, 2, 7209, 7210, 7, 69, 2, 2, 7210, 7211, 7, 84, 2, 2, 7211, 7212, 7, 71, 2, 2, 7212, 7213, 7, 79, 2, 2, 7213, 7214, 7, 71, 2, 2, 7214, 7215, 7, 80, 2, 2, 7215, 7216, 7, 86, 2, 2, 7216, 7217, 7, 67, 2, 2, 7217, 7218, 7, 78, 2, 2, 7218, 1082, 3, 2, 2, 2, 7219, 7220, 7, 75, 2, 2, 7220, 7221, 7, 80, 2, 2, 7221, 7222, 7, 75, 2, 2, 7222, 7223, 7, 86, 2, 2, 7223, 7224, 7, 75, 2, 2, 7224, 7225, 7, 67, 2, 2, 7225, 7226, 7, 86, 2, 2, 7226, 7227, 7, 81, 2, 2, 7227, 7228, 7, 84, 2, 2, 7228, 1084, 3, 2, 2, 2, 7229, 7230, 7, 75, 2, 2, 7230, 7231, 7, 80, 2, 2, 7231, 7232, 7, 82, 2, 2, 7232, 7233, 7, 87, 2, 2, 7233, 7234, 7, 86, 2, 2, 7234, 1086, 3, 2, 2, 2, 7235, 7236, 7, 75, 2, 2, 7236, 7237, 7, 80, 2, 2, 7237, 7238, 7, 85, 2, 2, 7238, 7239, 7, 71, 2, 2, 7239, 7240, 7, 80, 2, 2, 7240, 7241, 7, 85, 2, 2, 7241, 7242, 7, 75, 2, 2, 7242, 7243, 7, 86, 2, 2, 7243, 7244, 7, 75, 2, 2, 7244, 7245, 7, 88, 2, 2, 7245, 7246, 7, 71, 2, 2, 7246, 1088, 3, 2, 2, 2, 7247, 7248, 7, 75, 2, 2, 7248, 7249, 7, 80, 2, 2, 7249, 7250, 7, 85, 2, 2, 7250, 7251, 7, 71, 2, 2, 7251, 7252, 7, 84, 2, 2, 7252, 7253, 7, 86, 2, 2, 7253, 7254, 7, 71, 2, 2, 7254, 7255, 7, 70, 2, 2, 7255, 1090, 3, 2, 2, 2, 7256, 7257, 7, 75, 2, 2, 7257, 7258, 7, 80, 2, 2, 7258, 7259, 7, 86, 2, 2, 7259, 1092, 3, 2, 2, 2, 7260, 7261, 7, 75, 2, 2, 7261, 7262, 7, 82, 2, 2, 7262, 1094, 3, 2, 2, 2, 7263, 7264, 7, 75, 2, 2, 7264, 7265, 7, 85, 2, 2, 7265, 7266, 7, 81, 2, 2, 7266, 7267, 7, 78, 2, 2, 7267, 7268, 7, 67, 2, 2, 7268, 7269, 7, 86, 2, 2, 7269, 7270, 7, 75, 2, 2, 7270, 7271, 7, 81, 2, 2, 7271, 7272, 7, 80, 2, 2, 7272, 1096, 3, 2, 2, 2, 7273, 7274, 7, 76, 2, 2, 7274, 7275, 7, 81, 2, 2, 7275, 7276, 7, 68, 2, 2, 7276, 1098, 3, 2, 2, 2, 7277, 7278, 7, 76, 2, 2, 7278, 7279, 7, 85, 2, 2, 7279, 7280, 7, 81, 2, 2, 7280, 7281, 7, 80, 2, 2, 7281, 1100, 3, 2, 2, 2, 7282, 7283, 7, 77, 2, 2, 7283, 7284, 7, 68, 2, 2, 7284, 1102, 3, 2, 2, 2, 7285, 7286, 7, 77, 2, 2, 7286, 7287, 7, 71, 2, 2, 7287, 7288, 7, 71, 2, 2, 7288, 7289, 7, 82, 2, 2, 7289, 1104, 3, 2, 2, 2, 7290, 7291, 7, 77, 2, 2, 7291, 7292, 7, 71, 2, 2, 7292, 7293, 7, 71, 2, 2, 7293, 7294, 7, 82, 2, 2, 7294, 7295, 7, 72, 2, 2, 7295, 7296, 7, 75, 2, 2, 7296, 7297, 7, 90, 2, 2, 7297, 7298, 7, 71, 2, 2, 7298, 7299, 7, 70, 2, 2, 7299, 1106, 3, 2, 2, 2, 7300, 7301, 7, 77, 2, 2, 7301, 7302, 7, 71, 2, 2, 7302, 7303, 7, 91, 2, 2, 7303, 7304, 7, 97, 2, 2, 7304, 7305, 7, 85, 2, 2, 7305, 7306, 7, 81, 2, 2, 7306, 7307, 7, 87, 2, 2, 7307, 7308, 7, 84, 2, 2, 7308, 7309, 7, 69, 2, 2, 7309, 7310, 7, 71, 2, 2, 7310, 1108, 3, 2, 2, 2, 7311, 7312, 7, 77, 2, 2, 7312, 7313, 7, 71, 2, 2, 7313, 7314, 7, 91, 2, 2, 7314, 7315, 7, 85, 2, 2, 7315, 1110, 3, 2, 2, 2, 7316, 7317, 7, 77, 2, 2, 7317, 7318, 7, 71, 2, 2, 7318, 7319, 7, 91, 2, 2, 7319, 7320, 7, 85, 2, 2, 7320, 7321, 7, 71, 2, 2, 7321, 7322, 7, 86, 2, 2, 7322, 1112, 3, 2, 2, 2, 7323, 7324, 7, 78, 2, 2, 7324, 7325, 7, 67, 2, 2, 7325, 7326, 7, 73, 2, 2, 7326, 1114, 3, 2, 2, 2, 7327, 7328, 7, 78, 2, 2, 7328, 7329, 7, 67, 2, 2, 7329, 7330, 7, 85, 2, 2, 7330, 7331, 7, 86, 2, 2, 7331, 1116, 3, 2, 2, 2, 7332, 7333, 7, 78, 2, 2, 7333, 7334, 7, 67, 2, 2, 7334, 7335, 7, 85, 2, 2, 7335, 7336, 7, 86, 2, 2, 7336, 7337, 7, 97, 2, 2, 7337, 7338, 7, 88, 2, 2, 7338, 7339, 7, 67, 2, 2, 7339, 7340, 7, 78, 2, 2, 7340, 7341, 7, 87, 2, 2, 7341, 7342, 7, 71, 2, 2, 7342, 1118, 3, 2, 2, 2, 7343, 7344, 7, 78, 2, 2, 7344, 7345, 7, 71, 2, 2, 7345, 7346, 7, 67, 2, 2, 7346, 7347, 7, 70, 2, 2, 7347, 1120, 3, 2, 2, 2, 7348, 7349, 7, 78, 2, 2, 7349, 7350, 7, 71, 2, 2, 7350, 7351, 7, 88, 2, 2, 7351, 7352, 7, 71, 2, 2, 7352, 7353, 7, 78, 2, 2, 7353, 1122, 3, 2, 2, 2, 7354, 7355, 7, 78, 2, 2, 7355, 7356, 7, 75, 2, 2, 7356, 7357, 7, 85, 2, 2, 7357, 7358, 7, 86, 2, 2, 7358, 1124, 3, 2, 2, 2, 7359, 7360, 7, 78, 2, 2, 7360, 7361, 7, 75, 2, 2, 7361, 7362, 7, 85, 2, 2, 7362, 7363, 7, 86, 2, 2, 7363, 7364, 7, 71, 2, 2, 7364, 7365, 7, 80, 2, 2, 7365, 7366, 7, 71, 2, 2, 7366, 7367, 7, 84, 2, 2, 7367, 1126, 3, 2, 2, 2, 7368, 7369, 7, 78, 2, 2, 7369, 7370, 7, 75, 2, 2, 7370, 7371, 7, 85, 2, 2, 7371, 7372, 7, 86, 2, 2, 7372, 7373, 7, 71, 2, 2, 7373, 7374, 7, 80, 2, 2, 7374, 7375, 7, 71, 2, 2, 7375, 7376, 7, 84, 2, 2, 7376, 7377, 7, 97, 2, 2, 7377, 7378, 7, 87, 2, 2, 7378, 7379, 7, 84, 2, 2, 7379, 7380, 7, 78, 2, 2, 7380, 1128, 3, 2, 2, 2, 7381, 7382, 7, 78, 2, 2, 7382, 7383, 7, 81, 2, 2, 7383, 7384, 7, 68, 2, 2, 7384, 7385, 7, 97, 2, 2, 7385, 7386, 7, 69, 2, 2, 7386, 7387, 7, 81, 2, 2, 7387, 7388, 7, 79, 2, 2, 7388, 7389, 7, 82, 2, 2, 7389, 7390, 7, 67, 2, 2, 7390, 7391, 7, 69, 2, 2, 7391, 7392, 7, 86, 2, 2, 7392, 7393, 7, 75, 2, 2, 7393, 7394, 7, 81, 2, 2, 7394, 7395, 7, 80, 2, 2, 7395, 1130, 3, 2, 2, 2, 7396, 7397, 7, 78, 2, 2, 7397, 7398, 7, 81, 2, 2, 7398, 7399, 7, 69, 2, 2, 7399, 7400, 7, 67, 2, 2, 7400, 7401, 7, 78, 2, 2, 7401, 1132, 3, 2, 2, 2, 7402, 7403, 7, 78, 2, 2, 7403, 7404, 7, 81, 2, 2, 7404, 7405, 7, 69, 2, 2, 7405, 7406, 7, 67, 2, 2, 7406, 7407, 7, 86, 2, 2, 7407, 7408, 7, 75, 2, 2, 7408, 7409, 7, 81, 2, 2, 7409, 7410, 7, 80, 2, 2, 7410, 1134, 3, 2, 2, 2, 7411, 7412, 7, 78, 2, 2, 7412, 7413, 7, 81, 2, 2, 7413, 7414, 7, 69, 2, 2, 7414, 7415, 7, 77, 2, 2, 7415, 1136, 3, 2, 2, 2, 7416, 7417, 7, 78, 2, 2, 7417, 7418, 7, 81, 2, 2, 7418, 7419, 7, 69, 2, 2, 7419, 7420, 7, 77, 2, 2, 7420, 7421, 7, 97, 2, 2, 7421, 7422, 7, 71, 2, 2, 7422, 7423, 7, 85, 2, 2, 7423, 7424, 7, 69, 2, 2, 7424, 7425, 7, 67, 2, 2, 7425, 7426, 7, 78, 2, 2, 7426, 7427, 7, 67, 2, 2, 7427, 7428, 7, 86, 2, 2, 7428, 7429, 7, 75, 2, 2, 7429, 7430, 7, 81, 2, 2, 7430, 7431, 7, 80, 2, 2, 7431, 1138, 3, 2, 2, 2, 7432, 7433, 7, 78, 2, 2, 7433, 7434, 7, 81, 2, 2, 7434, 7435, 7, 73, 2, 2, 7435, 7436, 7, 75, 2, 2, 7436, 7437, 7, 80, 2, 2, 7437, 1140, 3, 2, 2, 2, 7438, 7439, 7, 78, 2, 2, 7439, 7440, 7, 81, 2, 2, 7440, 7441, 7, 81, 2, 2, 7441, 7442, 7, 82, 2, 2, 7442, 1142, 3, 2, 2, 2, 7443, 7444, 7, 78, 2, 2, 7444, 7445, 7, 81, 2, 2, 7445, 7446, 7, 89, 2, 2, 7446, 1144, 3, 2, 2, 2, 7447, 7448, 7, 79, 2, 2, 7448, 7449, 7, 67, 2, 2, 7449, 7450, 7, 80, 2, 2, 7450, 7451, 7, 87, 2, 2, 7451, 7452, 7, 67, 2, 2, 7452, 7453, 7, 78, 2, 2, 7453, 1146, 3, 2, 2, 2, 7454, 7455, 7, 79, 2, 2, 7455, 7456, 7, 67, 2, 2, 7456, 7457, 7, 84, 2, 2, 7457, 7458, 7, 77, 2, 2, 7458, 1148, 3, 2, 2, 2, 7459, 7460, 7, 79, 2, 2, 7460, 7461, 7, 67, 2, 2, 7461, 7462, 7, 86, 2, 2, 7462, 7463, 7, 71, 2, 2, 7463, 7464, 7, 84, 2, 2, 7464, 7465, 7, 75, 2, 2, 7465, 7466, 7, 67, 2, 2, 7466, 7467, 7, 78, 2, 2, 7467, 7468, 7, 75, 2, 2, 7468, 7469, 7, 92, 2, 2, 7469, 7470, 7, 71, 2, 2, 7470, 7471, 7, 70, 2, 2, 7471, 1150, 3, 2, 2, 2, 7472, 7473, 7, 79, 2, 2, 7473, 7474, 7, 67, 2, 2, 7474, 7475, 7, 90, 2, 2, 7475, 1152, 3, 2, 2, 2, 7476, 7477, 7, 79, 2, 2, 7477, 7478, 7, 67, 2, 2, 7478, 7479, 7, 90, 2, 2, 7479, 7480, 7, 97, 2, 2, 7480, 7481, 7, 69, 2, 2, 7481, 7482, 7, 82, 2, 2, 7482, 7483, 7, 87, 2, 2, 7483, 7484, 7, 97, 2, 2, 7484, 7485, 7, 82, 2, 2, 7485, 7486, 7, 71, 2, 2, 7486, 7487, 7, 84, 2, 2, 7487, 7488, 7, 69, 2, 2, 7488, 7489, 7, 71, 2, 2, 7489, 7490, 7, 80, 2, 2, 7490, 7491, 7, 86, 2, 2, 7491, 1154, 3, 2, 2, 2, 7492, 7493, 7, 79, 2, 2, 7493, 7494, 7, 67, 2, 2, 7494, 7495, 7, 90, 2, 2, 7495, 7496, 7, 97, 2, 2, 7496, 7497, 7, 70, 2, 2, 7497, 7498, 7, 81, 2, 2, 7498, 7499, 7, 82, 2, 2, 7499, 1156, 3, 2, 2, 2, 7500, 7501, 7, 79, 2, 2, 7501, 7502, 7, 67, 2, 2, 7502, 7503, 7, 90, 2, 2, 7503, 7504, 7, 97, 2, 2, 7504, 7505, 7, 72, 2, 2, 7505, 7506, 7, 75, 2, 2, 7506, 7507, 7, 78, 2, 2, 7507, 7508, 7, 71, 2, 2, 7508, 7509, 7, 85, 2, 2, 7509, 1158, 3, 2, 2, 2, 7510, 7511, 7, 79, 2, 2, 7511, 7512, 7, 67, 2, 2, 7512, 7513, 7, 90, 2, 2, 7513, 7514, 7, 97, 2, 2, 7514, 7515, 7, 75, 2, 2, 7515, 7516, 7, 81, 2, 2, 7516, 7517, 7, 82, 2, 2, 7517, 7518, 7, 85, 2, 2, 7518, 7519, 7, 97, 2, 2, 7519, 7520, 7, 82, 2, 2, 7520, 7521, 7, 71, 2, 2, 7521, 7522, 7, 84, 2, 2, 7522, 7523, 7, 97, 2, 2, 7523, 7524, 7, 88, 2, 2, 7524, 7525, 7, 81, 2, 2, 7525, 7526, 7, 78, 2, 2, 7526, 7527, 7, 87, 2, 2, 7527, 7528, 7, 79, 2, 2, 7528, 7529, 7, 71, 2, 2, 7529, 1160, 3, 2, 2, 2, 7530, 7531, 7, 79, 2, 2, 7531, 7532, 7, 67, 2, 2, 7532, 7533, 7, 90, 2, 2, 7533, 7534, 7, 97, 2, 2, 7534, 7535, 7, 79, 2, 2, 7535, 7536, 7, 71, 2, 2, 7536, 7537, 7, 79, 2, 2, 7537, 7538, 7, 81, 2, 2, 7538, 7539, 7, 84, 2, 2, 7539, 7540, 7, 91, 2, 2, 7540, 7541, 7, 97, 2, 2, 7541, 7542, 7, 82, 2, 2, 7542, 7543, 7, 71, 2, 2, 7543, 7544, 7, 84, 2, 2, 7544, 7545, 7, 69, 2, 2, 7545, 7546, 7, 71, 2, 2, 7546, 7547, 7, 80, 2, 2, 7547, 7548, 7, 86, 2, 2, 7548, 1162, 3, 2, 2, 2, 7549, 7550, 7, 79, 2, 2, 7550, 7551, 7, 67, 2, 2, 7551, 7552, 7, 90, 2, 2, 7552, 7553, 7, 97, 2, 2, 7553, 7554, 7, 82, 2, 2, 7554, 7555, 7, 84, 2, 2, 7555, 7556, 7, 81, 2, 2, 7556, 7557, 7, 69, 2, 2, 7557, 7558, 7, 71, 2, 2, 7558, 7559, 7, 85, 2, 2, 7559, 7560, 7, 85, 2, 2, 7560, 7561, 7, 71, 2, 2, 7561, 7562, 7, 85, 2, 2, 7562, 1164, 3, 2, 2, 2, 7563, 7564, 7, 79, 2, 2, 7564, 7565, 7, 67, 2, 2, 7565, 7566, 7, 90, 2, 2, 7566, 7567, 7, 97, 2, 2, 7567, 7568, 7, 83, 2, 2, 7568, 7569, 7, 87, 2, 2, 7569, 7570, 7, 71, 2, 2, 7570, 7571, 7, 87, 2, 2, 7571, 7572, 7, 71, 2, 2, 7572, 7573, 7, 97, 2, 2, 7573, 7574, 7, 84, 2, 2, 7574, 7575, 7, 71, 2, 2, 7575, 7576, 7, 67, 2, 2, 7576, 7577, 7, 70, 2, 2, 7577, 7578, 7, 71, 2, 2, 7578, 7579, 7, 84, 2, 2, 7579, 7580, 7, 85, 2, 2, 7580, 1166, 3, 2, 2, 2, 7581, 7582, 7, 79, 2, 2, 7582, 7583, 7, 67, 2, 2, 7583, 7584, 7, 90, 2, 2, 7584, 7585, 7, 97, 2, 2, 7585, 7586, 7, 84, 2, 2, 7586, 7587, 7, 81, 2, 2, 7587, 7588, 7, 78, 2, 2, 7588, 7589, 7, 78, 2, 2, 7589, 7590, 7, 81, 2, 2, 7590, 7591, 7, 88, 2, 2, 7591, 7592, 7, 71, 2, 2, 7592, 7593, 7, 84, 2, 2, 7593, 7594, 7, 97, 2, 2, 7594, 7595, 7, 72, 2, 2, 7595, 7596, 7, 75, 2, 2, 7596, 7597, 7, 78, 2, 2, 7597, 7598, 7, 71, 2, 2, 7598, 7599, 7, 85, 2, 2, 7599, 1168, 3, 2, 2, 2, 7600, 7601, 7, 79, 2, 2, 7601, 7602, 7, 67, 2, 2, 7602, 7603, 7, 90, 2, 2, 7603, 7604, 7, 70, 2, 2, 7604, 7605, 7, 81, 2, 2, 7605, 7606, 7, 82, 2, 2, 7606, 1170, 3, 2, 2, 2, 7607, 7608, 7, 79, 2, 2, 7608, 7609, 7, 67, 2, 2, 7609, 7610, 7, 90, 2, 2, 7610, 7611, 7, 84, 2, 2, 7611, 7612, 7, 71, 2, 2, 7612, 7613, 7, 69, 2, 2, 7613, 7614, 7, 87, 2, 2, 7614, 7615, 7, 84, 2, 2, 7615, 7616, 7, 85, 2, 2, 7616, 7617, 7, 75, 2, 2, 7617, 7618, 7, 81, 2, 2, 7618, 7619, 7, 80, 2, 2, 7619, 1172, 3, 2, 2, 2, 7620, 7621, 7, 79, 2, 2, 7621, 7622, 7, 67, 2, 2, 7622, 7623, 7, 90, 2, 2, 7623, 7624, 7, 85, 2, 2, 7624, 7625, 7, 75, 2, 2, 7625, 7626, 7, 92, 2, 2, 7626, 7627, 7, 71, 2, 2, 7627, 1174, 3, 2, 2, 2, 7628, 7629, 7, 79, 2, 2, 7629, 7630, 7, 68, 2, 2, 7630, 1176, 3, 2, 2, 2, 7631, 7632, 7, 79, 2, 2, 7632, 7633, 7, 71, 2, 2, 7633, 7634, 7, 70, 2, 2, 7634, 7635, 7, 75, 2, 2, 7635, 7636, 7, 87, 2, 2, 7636, 7637, 7, 79, 2, 2, 7637, 1178, 3, 2, 2, 2, 7638, 7639, 7, 79, 2, 2, 7639, 7640, 7, 71, 2, 2, 7640, 7641, 7, 79, 2, 2, 7641, 7642, 7, 81, 2, 2, 7642, 7643, 7, 84, 2, 2, 7643, 7644, 7, 91, 2, 2, 7644, 7645, 7, 97, 2, 2, 7645, 7646, 7, 81, 2, 2, 7646, 7647, 7, 82, 2, 2, 7647, 7648, 7, 86, 2, 2, 7648, 7649, 7, 75, 2, 2, 7649, 7650, 7, 79, 2, 2, 7650, 7651, 7, 75, 2, 2, 7651, 7652, 7, 92, 2, 2, 7652, 7653, 7, 71, 2, 2, 7653, 7654, 7, 70, 2, 2, 7654, 7655, 7, 97, 2, 2, 7655, 7656, 7, 70, 2, 2, 7656, 7657, 7, 67, 2, 2, 7657, 7658, 7, 86, 2, 2, 7658, 7659, 7, 67, 2, 2, 7659, 1180, 3, 2, 2, 2, 7660, 7661, 7, 79, 2, 2, 7661, 7662, 7, 71, 2, 2, 7662, 7663, 7, 85, 2, 2, 7663, 7664, 7, 85, 2, 2, 7664, 7665, 7, 67, 2, 2, 7665, 7666, 7, 73, 2, 2, 7666, 7667, 7, 71, 2, 2, 7667, 1182, 3, 2, 2, 2, 7668, 7669, 7, 79, 2, 2, 7669, 7670, 7, 75, 2, 2, 7670, 7671, 7, 80, 2, 2, 7671, 1184, 3, 2, 2, 2, 7672, 7673, 7, 79, 2, 2, 7673, 7674, 7, 75, 2, 2, 7674, 7675, 7, 80, 2, 2, 7675, 7676, 7, 97, 2, 2, 7676, 7677, 7, 67, 2, 2, 7677, 7678, 7, 69, 2, 2, 7678, 7679, 7, 86, 2, 2, 7679, 7680, 7, 75, 2, 2, 7680, 7681, 7, 88, 2, 2, 7681, 7682, 7, 71, 2, 2, 7682, 7683, 7, 97, 2, 2, 7683, 7684, 7, 84, 2, 2, 7684, 7685, 7, 81, 2, 2, 7685, 7686, 7, 89, 2, 2, 7686, 7687, 7, 88, 2, 2, 7687, 7688, 7, 71, 2, 2, 7688, 7689, 7, 84, 2, 2, 7689, 7690, 7, 85, 2, 2, 7690, 7691, 7, 75, 2, 2, 7691, 7692, 7, 81, 2, 2, 7692, 7693, 7, 80, 2, 2, 7693, 1186, 3, 2, 2, 2, 7694, 7695, 7, 79, 2, 2, 7695, 7696, 7, 75, 2, 2, 7696, 7697, 7, 80, 2, 2, 7697, 7698, 7, 97, 2, 2, 7698, 7699, 7, 69, 2, 2, 7699, 7700, 7, 82, 2, 2, 7700, 7701, 7, 87, 2, 2, 7701, 7702, 7, 97, 2, 2, 7702, 7703, 7, 82, 2, 2, 7703, 7704, 7, 71, 2, 2, 7704, 7705, 7, 84, 2, 2, 7705, 7706, 7, 69, 2, 2, 7706, 7707, 7, 71, 2, 2, 7707, 7708, 7, 80, 2, 2, 7708, 7709, 7, 86, 2, 2, 7709, 1188, 3, 2, 2, 2, 7710, 7711, 7, 79, 2, 2, 7711, 7712, 7, 75, 2, 2, 7712, 7713, 7, 80, 2, 2, 7713, 7714, 7, 97, 2, 2, 7714, 7715, 7, 75, 2, 2, 7715, 7716, 7, 81, 2, 2, 7716, 7717, 7, 82, 2, 2, 7717, 7718, 7, 85, 2, 2, 7718, 7719, 7, 97, 2, 2, 7719, 7720, 7, 82, 2, 2, 7720, 7721, 7, 71, 2, 2, 7721, 7722, 7, 84, 2, 2, 7722, 7723, 7, 97, 2, 2, 7723, 7724, 7, 88, 2, 2, 7724, 7725, 7, 81, 2, 2, 7725, 7726, 7, 78, 2, 2, 7726, 7727, 7, 87, 2, 2, 7727, 7728, 7, 79, 2, 2, 7728, 7729, 7, 71, 2, 2, 7729, 1190, 3, 2, 2, 2, 7730, 7731, 7, 79, 2, 2, 7731, 7732, 7, 75, 2, 2, 7732, 7733, 7, 80, 2, 2, 7733, 7734, 7, 97, 2, 2, 7734, 7735, 7, 79, 2, 2, 7735, 7736, 7, 71, 2, 2, 7736, 7737, 7, 79, 2, 2, 7737, 7738, 7, 81, 2, 2, 7738, 7739, 7, 84, 2, 2, 7739, 7740, 7, 91, 2, 2, 7740, 7741, 7, 97, 2, 2, 7741, 7742, 7, 82, 2, 2, 7742, 7743, 7, 71, 2, 2, 7743, 7744, 7, 84, 2, 2, 7744, 7745, 7, 69, 2, 2, 7745, 7746, 7, 71, 2, 2, 7746, 7747, 7, 80, 2, 2, 7747, 7748, 7, 86, 2, 2, 7748, 1192, 3, 2, 2, 2, 7749, 7750, 7, 79, 2, 2, 7750, 7751, 7, 75, 2, 2, 7751, 7752, 7, 80, 2, 2, 7752, 7753, 7, 87, 2, 2, 7753, 7754, 7, 86, 2, 2, 7754, 7755, 7, 71, 2, 2, 7755, 7756, 7, 85, 2, 2, 7756, 1194, 3, 2, 2, 2, 7757, 7758, 7, 79, 2, 2, 7758, 7759, 7, 75, 2, 2, 7759, 7760, 7, 84, 2, 2, 7760, 7761, 7, 84, 2, 2, 7761, 7762, 7, 81, 2, 2, 7762, 7763, 7, 84, 2, 2, 7763, 7764, 7, 97, 2, 2, 7764, 7765, 7, 67, 2, 2, 7765, 7766, 7, 70, 2, 2, 7766, 7767, 7, 70, 2, 2, 7767, 7768, 7, 84, 2, 2, 7768, 7769, 7, 71, 2, 2, 7769, 7770, 7, 85, 2, 2, 7770, 7771, 7, 85, 2, 2, 7771, 1196, 3, 2, 2, 2, 7772, 7773, 7, 79, 2, 2, 7773, 7774, 7, 75, 2, 2, 7774, 7775, 7, 90, 2, 2, 7775, 7776, 7, 71, 2, 2, 7776, 7777, 7, 70, 2, 2, 7777, 7778, 7, 97, 2, 2, 7778, 7779, 7, 82, 2, 2, 7779, 7780, 7, 67, 2, 2, 7780, 7781, 7, 73, 2, 2, 7781, 7782, 7, 71, 2, 2, 7782, 7783, 7, 97, 2, 2, 7783, 7784, 7, 67, 2, 2, 7784, 7785, 7, 78, 2, 2, 7785, 7786, 7, 78, 2, 2, 7786, 7787, 7, 81, 2, 2, 7787, 7788, 7, 69, 2, 2, 7788, 7789, 7, 67, 2, 2, 7789, 7790, 7, 86, 2, 2, 7790, 7791, 7, 75, 2, 2, 7791, 7792, 7, 81, 2, 2, 7792, 7793, 7, 80, 2, 2, 7793, 1198, 3, 2, 2, 2, 7794, 7795, 7, 79, 2, 2, 7795, 7796, 7, 81, 2, 2, 7796, 7797, 7, 70, 2, 2, 7797, 7798, 7, 71, 2, 2, 7798, 1200, 3, 2, 2, 2, 7799, 7800, 7, 79, 2, 2, 7800, 7801, 7, 81, 2, 2, 7801, 7802, 7, 70, 2, 2, 7802, 7803, 7, 75, 2, 2, 7803, 7804, 7, 72, 2, 2, 7804, 7805, 7, 91, 2, 2, 7805, 1202, 3, 2, 2, 2, 7806, 7807, 7, 79, 2, 2, 7807, 7808, 7, 81, 2, 2, 7808, 7809, 7, 88, 2, 2, 7809, 7810, 7, 71, 2, 2, 7810, 1204, 3, 2, 2, 2, 7811, 7812, 7, 79, 2, 2, 7812, 7813, 7, 87, 2, 2, 7813, 7814, 7, 78, 2, 2, 7814, 7815, 7, 86, 2, 2, 7815, 7816, 7, 75, 2, 2, 7816, 7817, 7, 97, 2, 2, 7817, 7818, 7, 87, 2, 2, 7818, 7819, 7, 85, 2, 2, 7819, 7820, 7, 71, 2, 2, 7820, 7821, 7, 84, 2, 2, 7821, 1206, 3, 2, 2, 2, 7822, 7823, 7, 80, 2, 2, 7823, 7824, 7, 67, 2, 2, 7824, 7825, 7, 79, 2, 2, 7825, 7826, 7, 71, 2, 2, 7826, 1208, 3, 2, 2, 2, 7827, 7828, 7, 80, 2, 2, 7828, 7829, 7, 71, 2, 2, 7829, 7830, 7, 85, 2, 2, 7830, 7831, 7, 86, 2, 2, 7831, 7832, 7, 71, 2, 2, 7832, 7833, 7, 70, 2, 2, 7833, 7834, 7, 97, 2, 2, 7834, 7835, 7, 86, 2, 2, 7835, 7836, 7, 84, 2, 2, 7836, 7837, 7, 75, 2, 2, 7837, 7838, 7, 73, 2, 2, 7838, 7839, 7, 73, 2, 2, 7839, 7840, 7, 71, 2, 2, 7840, 7841, 7, 84, 2, 2, 7841, 7842, 7, 85, 2, 2, 7842, 1210, 3, 2, 2, 2, 7843, 7844, 7, 80, 2, 2, 7844, 7845, 7, 71, 2, 2, 7845, 7846, 7, 89, 2, 2, 7846, 7847, 7, 97, 2, 2, 7847, 7848, 7, 67, 2, 2, 7848, 7849, 7, 69, 2, 2, 7849, 7850, 7, 69, 2, 2, 7850, 7851, 7, 81, 2, 2, 7851, 7852, 7, 87, 2, 2, 7852, 7853, 7, 80, 2, 2, 7853, 7854, 7, 86, 2, 2, 7854, 1212, 3, 2, 2, 2, 7855, 7856, 7, 80, 2, 2, 7856, 7857, 7, 71, 2, 2, 7857, 7858, 7, 89, 2, 2, 7858, 7859, 7, 97, 2, 2, 7859, 7860, 7, 68, 2, 2, 7860, 7861, 7, 84, 2, 2, 7861, 7862, 7, 81, 2, 2, 7862, 7863, 7, 77, 2, 2, 7863, 7864, 7, 71, 2, 2, 7864, 7865, 7, 84, 2, 2, 7865, 1214, 3, 2, 2, 2, 7866, 7867, 7, 80, 2, 2, 7867, 7868, 7, 71, 2, 2, 7868, 7869, 7, 89, 2, 2, 7869, 7870, 7, 97, 2, 2, 7870, 7871, 7, 82, 2, 2, 7871, 7872, 7, 67, 2, 2, 7872, 7873, 7, 85, 2, 2, 7873, 7874, 7, 85, 2, 2, 7874, 7875, 7, 89, 2, 2, 7875, 7876, 7, 81, 2, 2, 7876, 7877, 7, 84, 2, 2, 7877, 7878, 7, 70, 2, 2, 7878, 1216, 3, 2, 2, 2, 7879, 7880, 7, 80, 2, 2, 7880, 7881, 7, 71, 2, 2, 7881, 7882, 7, 90, 2, 2, 7882, 7883, 7, 86, 2, 2, 7883, 1218, 3, 2, 2, 2, 7884, 7885, 7, 80, 2, 2, 7885, 7886, 7, 81, 2, 2, 7886, 1220, 3, 2, 2, 2, 7887, 7888, 7, 80, 2, 2, 7888, 7889, 7, 81, 2, 2, 7889, 7890, 7, 97, 2, 2, 7890, 7891, 7, 86, 2, 2, 7891, 7892, 7, 84, 2, 2, 7892, 7893, 7, 87, 2, 2, 7893, 7894, 7, 80, 2, 2, 7894, 7895, 7, 69, 2, 2, 7895, 7896, 7, 67, 2, 2, 7896, 7897, 7, 86, 2, 2, 7897, 7898, 7, 71, 2, 2, 7898, 1222, 3, 2, 2, 2, 7899, 7900, 7, 80, 2, 2, 7900, 7901, 7, 81, 2, 2, 7901, 7902, 7, 97, 2, 2, 7902, 7903, 7, 89, 2, 2, 7903, 7904, 7, 67, 2, 2, 7904, 7905, 7, 75, 2, 2, 7905, 7906, 7, 86, 2, 2, 7906, 1224, 3, 2, 2, 2, 7907, 7908, 7, 80, 2, 2, 7908, 7909, 7, 81, 2, 2, 7909, 7910, 7, 69, 2, 2, 7910, 7911, 7, 81, 2, 2, 7911, 7912, 7, 87, 2, 2, 7912, 7913, 7, 80, 2, 2, 7913, 7914, 7, 86, 2, 2, 7914, 1226, 3, 2, 2, 2, 7915, 7916, 7, 80, 2, 2, 7916, 7917, 7, 81, 2, 2, 7917, 7918, 7, 70, 2, 2, 7918, 7919, 7, 71, 2, 2, 7919, 7920, 7, 85, 2, 2, 7920, 1228, 3, 2, 2, 2, 7921, 7922, 7, 80, 2, 2, 7922, 7923, 7, 81, 2, 2, 7923, 7924, 7, 71, 2, 2, 7924, 7925, 7, 90, 2, 2, 7925, 7926, 7, 82, 2, 2, 7926, 7927, 7, 67, 2, 2, 7927, 7928, 7, 80, 2, 2, 7928, 7929, 7, 70, 2, 2, 7929, 1230, 3, 2, 2, 2, 7930, 7931, 7, 80, 2, 2, 7931, 7932, 7, 81, 2, 2, 7932, 7933, 7, 80, 2, 2, 7933, 7934, 7, 97, 2, 2, 7934, 7935, 7, 86, 2, 2, 7935, 7936, 7, 84, 2, 2, 7936, 7937, 7, 67, 2, 2, 7937, 7938, 7, 80, 2, 2, 7938, 7939, 7, 85, 2, 2, 7939, 7940, 7, 67, 2, 2, 7940, 7941, 7, 69, 2, 2, 7941, 7942, 7, 86, 2, 2, 7942, 7943, 7, 71, 2, 2, 7943, 7944, 7, 70, 2, 2, 7944, 7945, 7, 97, 2, 2, 7945, 7946, 7, 67, 2, 2, 7946, 7947, 7, 69, 2, 2, 7947, 7948, 7, 69, 2, 2, 7948, 7949, 7, 71, 2, 2, 7949, 7950, 7, 85, 2, 2, 7950, 7951, 7, 85, 2, 2, 7951, 1232, 3, 2, 2, 2, 7952, 7953, 7, 80, 2, 2, 7953, 7954, 7, 81, 2, 2, 7954, 7955, 7, 84, 2, 2, 7955, 7956, 7, 71, 2, 2, 7956, 7957, 7, 69, 2, 2, 7957, 7958, 7, 81, 2, 2, 7958, 7959, 7, 79, 2, 2, 7959, 7960, 7, 82, 2, 2, 7960, 7961, 7, 87, 2, 2, 7961, 7962, 7, 86, 2, 2, 7962, 7963, 7, 71, 2, 2, 7963, 1234, 3, 2, 2, 2, 7964, 7965, 7, 80, 2, 2, 7965, 7966, 7, 81, 2, 2, 7966, 7967, 7, 84, 2, 2, 7967, 7968, 7, 71, 2, 2, 7968, 7969, 7, 69, 2, 2, 7969, 7970, 7, 81, 2, 2, 7970, 7971, 7, 88, 2, 2, 7971, 7972, 7, 71, 2, 2, 7972, 7973, 7, 84, 2, 2, 7973, 7974, 7, 91, 2, 2, 7974, 1236, 3, 2, 2, 2, 7975, 7976, 7, 80, 2, 2, 7976, 7977, 7, 81, 2, 2, 7977, 7978, 7, 89, 2, 2, 7978, 7979, 7, 67, 2, 2, 7979, 7980, 7, 75, 2, 2, 7980, 7981, 7, 86, 2, 2, 7981, 1238, 3, 2, 2, 2, 7982, 7983, 7, 80, 2, 2, 7983, 7984, 7, 86, 2, 2, 7984, 7985, 7, 75, 2, 2, 7985, 7986, 7, 78, 2, 2, 7986, 7987, 7, 71, 2, 2, 7987, 1240, 3, 2, 2, 2, 7988, 7989, 7, 80, 2, 2, 7989, 7990, 7, 87, 2, 2, 7990, 7991, 7, 79, 2, 2, 7991, 7992, 7, 67, 2, 2, 7992, 7993, 7, 80, 2, 2, 7993, 7994, 7, 81, 2, 2, 7994, 7995, 7, 70, 2, 2, 7995, 7996, 7, 71, 2, 2, 7996, 1242, 3, 2, 2, 2, 7997, 7998, 7, 80, 2, 2, 7998, 7999, 7, 87, 2, 2, 7999, 8000, 7, 79, 2, 2, 8000, 8001, 7, 68, 2, 2, 8001, 8002, 7, 71, 2, 2, 8002, 8003, 7, 84, 2, 2, 8003, 1244, 3, 2, 2, 2, 8004, 8005, 7, 80, 2, 2, 8005, 8006, 7, 87, 2, 2, 8006, 8007, 7, 79, 2, 2, 8007, 8008, 7, 71, 2, 2, 8008, 8009, 7, 84, 2, 2, 8009, 8010, 7, 75, 2, 2, 8010, 8011, 7, 69, 2, 2, 8011, 8012, 7, 97, 2, 2, 8012, 8013, 7, 84, 2, 2, 8013, 8014, 7, 81, 2, 2, 8014, 8015, 7, 87, 2, 2, 8015, 8016, 7, 80, 2, 2, 8016, 8017, 7, 70, 2, 2, 8017, 8018, 7, 67, 2, 2, 8018, 8019, 7, 68, 2, 2, 8019, 8020, 7, 81, 2, 2, 8020, 8021, 7, 84, 2, 2, 8021, 8022, 7, 86, 2, 2, 8022, 1246, 3, 2, 2, 2, 8023, 8024, 7, 81, 2, 2, 8024, 8025, 7, 68, 2, 2, 8025, 8026, 7, 76, 2, 2, 8026, 8027, 7, 71, 2, 2, 8027, 8028, 7, 69, 2, 2, 8028, 8029, 7, 86, 2, 2, 8029, 1248, 3, 2, 2, 2, 8030, 8031, 7, 81, 2, 2, 8031, 8032, 7, 72, 2, 2, 8032, 8033, 7, 72, 2, 2, 8033, 8034, 7, 78, 2, 2, 8034, 8035, 7, 75, 2, 2, 8035, 8036, 7, 80, 2, 2, 8036, 8037, 7, 71, 2, 2, 8037, 1250, 3, 2, 2, 2, 8038, 8039, 7, 81, 2, 2, 8039, 8040, 7, 72, 2, 2, 8040, 8041, 7, 72, 2, 2, 8041, 8042, 7, 85, 2, 2, 8042, 8043, 7, 71, 2, 2, 8043, 8044, 7, 86, 2, 2, 8044, 1252, 3, 2, 2, 2, 8045, 8046, 7, 81, 2, 2, 8046, 8047, 7, 78, 2, 2, 8047, 8048, 7, 70, 2, 2, 8048, 8049, 7, 97, 2, 2, 8049, 8050, 7, 67, 2, 2, 8050, 8051, 7, 69, 2, 2, 8051, 8052, 7, 69, 2, 2, 8052, 8053, 7, 81, 2, 2, 8053, 8054, 7, 87, 2, 2, 8054, 8055, 7, 80, 2, 2, 8055, 8056, 7, 86, 2, 2, 8056, 1254, 3, 2, 2, 2, 8057, 8058, 7, 81, 2, 2, 8058, 8059, 7, 80, 2, 2, 8059, 8060, 7, 78, 2, 2, 8060, 8061, 7, 75, 2, 2, 8061, 8062, 7, 80, 2, 2, 8062, 8063, 7, 71, 2, 2, 8063, 1256, 3, 2, 2, 2, 8064, 8065, 7, 81, 2, 2, 8065, 8066, 7, 80, 2, 2, 8066, 8067, 7, 78, 2, 2, 8067, 8068, 7, 91, 2, 2, 8068, 1258, 3, 2, 2, 2, 8069, 8070, 7, 81, 2, 2, 8070, 8071, 7, 82, 2, 2, 8071, 8072, 7, 71, 2, 2, 8072, 8073, 7, 80, 2, 2, 8073, 8074, 7, 97, 2, 2, 8074, 8075, 7, 71, 2, 2, 8075, 8076, 7, 90, 2, 2, 8076, 8077, 7, 75, 2, 2, 8077, 8078, 7, 85, 2, 2, 8078, 8079, 7, 86, 2, 2, 8079, 8080, 7, 75, 2, 2, 8080, 8081, 7, 80, 2, 2, 8081, 8082, 7, 73, 2, 2, 8082, 1260, 3, 2, 2, 2, 8083, 8084, 7, 81, 2, 2, 8084, 8085, 7, 82, 2, 2, 8085, 8086, 7, 86, 2, 2, 8086, 8087, 7, 75, 2, 2, 8087, 8088, 7, 79, 2, 2, 8088, 8089, 7, 75, 2, 2, 8089, 8090, 7, 85, 2, 2, 8090, 8091, 7, 86, 2, 2, 8091, 8092, 7, 75, 2, 2, 8092, 8093, 7, 69, 2, 2, 8093, 1262, 3, 2, 2, 2, 8094, 8095, 7, 81, 2, 2, 8095, 8096, 7, 82, 2, 2, 8096, 8097, 7, 86, 2, 2, 8097, 8098, 7, 75, 2, 2, 8098, 8099, 7, 79, 2, 2, 8099, 8100, 7, 75, 2, 2, 8100, 8101, 7, 92, 2, 2, 8101, 8102, 7, 71, 2, 2, 8102, 1264, 3, 2, 2, 2, 8103, 8104, 7, 81, 2, 2, 8104, 8105, 7, 87, 2, 2, 8105, 8106, 7, 86, 2, 2, 8106, 1266, 3, 2, 2, 2, 8107, 8108, 7, 81, 2, 2, 8108, 8109, 7, 87, 2, 2, 8109, 8110, 7, 86, 2, 2, 8110, 8111, 7, 82, 2, 2, 8111, 8112, 7, 87, 2, 2, 8112, 8113, 7, 86, 2, 2, 8113, 1268, 3, 2, 2, 2, 8114, 8115, 7, 81, 2, 2, 8115, 8116, 7, 88, 2, 2, 8116, 8117, 7, 71, 2, 2, 8117, 8118, 7, 84, 2, 2, 8118, 8119, 7, 84, 2, 2, 8119, 8120, 7, 75, 2, 2, 8120, 8121, 7, 70, 2, 2, 8121, 8122, 7, 71, 2, 2, 8122, 1270, 3, 2, 2, 2, 8123, 8124, 7, 81, 2, 2, 8124, 8125, 7, 89, 2, 2, 8125, 8126, 7, 80, 2, 2, 8126, 8127, 7, 71, 2, 2, 8127, 8128, 7, 84, 2, 2, 8128, 1272, 3, 2, 2, 2, 8129, 8130, 7, 82, 2, 2, 8130, 8131, 7, 67, 2, 2, 8131, 8132, 7, 73, 2, 2, 8132, 8133, 7, 71, 2, 2, 8133, 8134, 7, 97, 2, 2, 8134, 8135, 7, 88, 2, 2, 8135, 8136, 7, 71, 2, 2, 8136, 8137, 7, 84, 2, 2, 8137, 8138, 7, 75, 2, 2, 8138, 8139, 7, 72, 2, 2, 8139, 8140, 7, 91, 2, 2, 8140, 1274, 3, 2, 2, 2, 8141, 8142, 7, 82, 2, 2, 8142, 8143, 7, 67, 2, 2, 8143, 8144, 7, 84, 2, 2, 8144, 8145, 7, 67, 2, 2, 8145, 8146, 7, 79, 2, 2, 8146, 8147, 7, 71, 2, 2, 8147, 8148, 7, 86, 2, 2, 8148, 8149, 7, 71, 2, 2, 8149, 8150, 7, 84, 2, 2, 8150, 8151, 7, 75, 2, 2, 8151, 8152, 7, 92, 2, 2, 8152, 8153, 7, 67, 2, 2, 8153, 8154, 7, 86, 2, 2, 8154, 8155, 7, 75, 2, 2, 8155, 8156, 7, 81, 2, 2, 8156, 8157, 7, 80, 2, 2, 8157, 1276, 3, 2, 2, 2, 8158, 8159, 7, 82, 2, 2, 8159, 8160, 7, 67, 2, 2, 8160, 8161, 7, 84, 2, 2, 8161, 8162, 7, 86, 2, 2, 8162, 8163, 7, 75, 2, 2, 8163, 8164, 7, 86, 2, 2, 8164, 8165, 7, 75, 2, 2, 8165, 8166, 7, 81, 2, 2, 8166, 8167, 7, 80, 2, 2, 8167, 1278, 3, 2, 2, 2, 8168, 8169, 7, 82, 2, 2, 8169, 8170, 7, 67, 2, 2, 8170, 8171, 7, 84, 2, 2, 8171, 8172, 7, 86, 2, 2, 8172, 8173, 7, 75, 2, 2, 8173, 8174, 7, 86, 2, 2, 8174, 8175, 7, 75, 2, 2, 8175, 8176, 7, 81, 2, 2, 8176, 8177, 7, 80, 2, 2, 8177, 8178, 7, 85, 2, 2, 8178, 1280, 3, 2, 2, 2, 8179, 8180, 7, 82, 2, 2, 8180, 8181, 7, 67, 2, 2, 8181, 8182, 7, 84, 2, 2, 8182, 8183, 7, 86, 2, 2, 8183, 8184, 7, 80, 2, 2, 8184, 8185, 7, 71, 2, 2, 8185, 8186, 7, 84, 2, 2, 8186, 1282, 3, 2, 2, 2, 8187, 8188, 7, 82, 2, 2, 8188, 8189, 7, 67, 2, 2, 8189, 8190, 7, 86, 2, 2, 8190, 8191, 7, 74, 2, 2, 8191, 1284, 3, 2, 2, 2, 8192, 8193, 7, 82, 2, 2, 8193, 8194, 7, 81, 2, 2, 8194, 8195, 7, 75, 2, 2, 8195, 8196, 7, 85, 2, 2, 8196, 8197, 7, 81, 2, 2, 8197, 8198, 7, 80, 2, 2, 8198, 8199, 7, 97, 2, 2, 8199, 8200, 7, 79, 2, 2, 8200, 8201, 7, 71, 2, 2, 8201, 8202, 7, 85, 2, 2, 8202, 8203, 7, 85, 2, 2, 8203, 8204, 7, 67, 2, 2, 8204, 8205, 7, 73, 2, 2, 8205, 8206, 7, 71, 2, 2, 8206, 8207, 7, 97, 2, 2, 8207, 8208, 7, 74, 2, 2, 8208, 8209, 7, 67, 2, 2, 8209, 8210, 7, 80, 2, 2, 8210, 8211, 7, 70, 2, 2, 8211, 8212, 7, 78, 2, 2, 8212, 8213, 7, 75, 2, 2, 8213, 8214, 7, 80, 2, 2, 8214, 8215, 7, 73, 2, 2, 8215, 1286, 3, 2, 2, 2, 8216, 8217, 7, 82, 2, 2, 8217, 8218, 7, 81, 2, 2, 8218, 8219, 7, 81, 2, 2, 8219, 8220, 7, 78, 2, 2, 8220, 1288, 3, 2, 2, 2, 8221, 8222, 7, 82, 2, 2, 8222, 8223, 7, 81, 2, 2, 8223, 8224, 7, 84, 2, 2, 8224, 8225, 7, 86, 2, 2, 8225, 1290, 3, 2, 2, 2, 8226, 8227, 7, 82, 2, 2, 8227, 8228, 7, 84, 2, 2, 8228, 8229, 7, 71, 2, 2, 8229, 8230, 7, 69, 2, 2, 8230, 8231, 7, 71, 2, 2, 8231, 8232, 7, 70, 2, 2, 8232, 8233, 7, 75, 2, 2, 8233, 8234, 7, 80, 2, 2, 8234, 8235, 7, 73, 2, 2, 8235, 1292, 3, 2, 2, 2, 8236, 8237, 7, 82, 2, 2, 8237, 8238, 7, 84, 2, 2, 8238, 8239, 7, 75, 2, 2, 8239, 8240, 7, 79, 2, 2, 8240, 8241, 7, 67, 2, 2, 8241, 8242, 7, 84, 2, 2, 8242, 8243, 7, 91, 2, 2, 8243, 8244, 7, 97, 2, 2, 8244, 8245, 7, 84, 2, 2, 8245, 8246, 7, 81, 2, 2, 8246, 8247, 7, 78, 2, 2, 8247, 8248, 7, 71, 2, 2, 8248, 1294, 3, 2, 2, 2, 8249, 8250, 7, 82, 2, 2, 8250, 8251, 7, 84, 2, 2, 8251, 8252, 7, 75, 2, 2, 8252, 8253, 7, 81, 2, 2, 8253, 8254, 7, 84, 2, 2, 8254, 1296, 3, 2, 2, 2, 8255, 8256, 7, 82, 2, 2, 8256, 8257, 7, 84, 2, 2, 8257, 8258, 7, 75, 2, 2, 8258, 8259, 7, 81, 2, 2, 8259, 8260, 7, 84, 2, 2, 8260, 8261, 7, 75, 2, 2, 8261, 8262, 7, 86, 2, 2, 8262, 8263, 7, 91, 2, 2, 8263, 1298, 3, 2, 2, 2, 8264, 8265, 7, 82, 2, 2, 8265, 8266, 7, 84, 2, 2, 8266, 8267, 7, 75, 2, 2, 8267, 8268, 7, 81, 2, 2, 8268, 8269, 7, 84, 2, 2, 8269, 8270, 7, 75, 2, 2, 8270, 8271, 7, 86, 2, 2, 8271, 8272, 7, 91, 2, 2, 8272, 8273, 7, 97, 2, 2, 8273, 8274, 7, 78, 2, 2, 8274, 8275, 7, 71, 2, 2, 8275, 8276, 7, 88, 2, 2, 8276, 8277, 7, 71, 2, 2, 8277, 8278, 7, 78, 2, 2, 8278, 1300, 3, 2, 2, 2, 8279, 8280, 7, 82, 2, 2, 8280, 8281, 7, 84, 2, 2, 8281, 8282, 7, 75, 2, 2, 8282, 8283, 7, 88, 2, 2, 8283, 8284, 7, 67, 2, 2, 8284, 8285, 7, 86, 2, 2, 8285, 8286, 7, 71, 2, 2, 8286, 1302, 3, 2, 2, 2, 8287, 8288, 7, 82, 2, 2, 8288, 8289, 7, 84, 2, 2, 8289, 8290, 7, 75, 2, 2, 8290, 8291, 7, 88, 2, 2, 8291, 8292, 7, 67, 2, 2, 8292, 8293, 7, 86, 2, 2, 8293, 8294, 7, 71, 2, 2, 8294, 8295, 7, 97, 2, 2, 8295, 8296, 7, 77, 2, 2, 8296, 8297, 7, 71, 2, 2, 8297, 8298, 7, 91, 2, 2, 8298, 1304, 3, 2, 2, 2, 8299, 8300, 7, 82, 2, 2, 8300, 8301, 7, 84, 2, 2, 8301, 8302, 7, 75, 2, 2, 8302, 8303, 7, 88, 2, 2, 8303, 8304, 7, 75, 2, 2, 8304, 8305, 7, 78, 2, 2, 8305, 8306, 7, 71, 2, 2, 8306, 8307, 7, 73, 2, 2, 8307, 8308, 7, 71, 2, 2, 8308, 8309, 7, 85, 2, 2, 8309, 1306, 3, 2, 2, 2, 8310, 8311, 7, 82, 2, 2, 8311, 8312, 7, 84, 2, 2, 8312, 8313, 7, 81, 2, 2, 8313, 8314, 7, 69, 2, 2, 8314, 8315, 7, 71, 2, 2, 8315, 8316, 7, 70, 2, 2, 8316, 8317, 7, 87, 2, 2, 8317, 8318, 7, 84, 2, 2, 8318, 8319, 7, 71, 2, 2, 8319, 8320, 7, 97, 2, 2, 8320, 8321, 7, 80, 2, 2, 8321, 8322, 7, 67, 2, 2, 8322, 8323, 7, 79, 2, 2, 8323, 8324, 7, 71, 2, 2, 8324, 1308, 3, 2, 2, 2, 8325, 8326, 7, 82, 2, 2, 8326, 8327, 7, 84, 2, 2, 8327, 8328, 7, 81, 2, 2, 8328, 8329, 7, 82, 2, 2, 8329, 8330, 7, 71, 2, 2, 8330, 8331, 7, 84, 2, 2, 8331, 8332, 7, 86, 2, 2, 8332, 8333, 7, 91, 2, 2, 8333, 1310, 3, 2, 2, 2, 8334, 8335, 7, 82, 2, 2, 8335, 8336, 7, 84, 2, 2, 8336, 8337, 7, 81, 2, 2, 8337, 8338, 7, 88, 2, 2, 8338, 8339, 7, 75, 2, 2, 8339, 8340, 7, 70, 2, 2, 8340, 8341, 7, 71, 2, 2, 8341, 8342, 7, 84, 2, 2, 8342, 1312, 3, 2, 2, 2, 8343, 8344, 7, 82, 2, 2, 8344, 8345, 7, 84, 2, 2, 8345, 8346, 7, 81, 2, 2, 8346, 8347, 7, 88, 2, 2, 8347, 8348, 7, 75, 2, 2, 8348, 8349, 7, 70, 2, 2, 8349, 8350, 7, 71, 2, 2, 8350, 8351, 7, 84, 2, 2, 8351, 8352, 7, 97, 2, 2, 8352, 8353, 7, 77, 2, 2, 8353, 8354, 7, 71, 2, 2, 8354, 8355, 7, 91, 2, 2, 8355, 8356, 7, 97, 2, 2, 8356, 8357, 7, 80, 2, 2, 8357, 8358, 7, 67, 2, 2, 8358, 8359, 7, 79, 2, 2, 8359, 8360, 7, 71, 2, 2, 8360, 1314, 3, 2, 2, 2, 8361, 8362, 7, 83, 2, 2, 8362, 8363, 7, 87, 2, 2, 8363, 8364, 7, 71, 2, 2, 8364, 8365, 7, 84, 2, 2, 8365, 8366, 7, 91, 2, 2, 8366, 1316, 3, 2, 2, 2, 8367, 8368, 7, 83, 2, 2, 8368, 8369, 7, 87, 2, 2, 8369, 8370, 7, 71, 2, 2, 8370, 8371, 7, 87, 2, 2, 8371, 8372, 7, 71, 2, 2, 8372, 1318, 3, 2, 2, 2, 8373, 8374, 7, 83, 2, 2, 8374, 8375, 7, 87, 2, 2, 8375, 8376, 7, 71, 2, 2, 8376, 8377, 7, 87, 2, 2, 8377, 8378, 7, 71, 2, 2, 8378, 8379, 7, 97, 2, 2, 8379, 8380, 7, 70, 2, 2, 8380, 8381, 7, 71, 2, 2, 8381, 8382, 7, 78, 2, 2, 8382, 8383, 7, 67, 2, 2, 8383, 8384, 7, 91, 2, 2, 8384, 1320, 3, 2, 2, 2, 8385, 8386, 7, 83, 2, 2, 8386, 8387, 7, 87, 2, 2, 8387, 8388, 7, 81, 2, 2, 8388, 8389, 7, 86, 2, 2, 8389, 8390, 7, 71, 2, 2, 8390, 8391, 7, 70, 2, 2, 8391, 8392, 7, 97, 2, 2, 8392, 8393, 7, 75, 2, 2, 8393, 8394, 7, 70, 2, 2, 8394, 8395, 7, 71, 2, 2, 8395, 8396, 7, 80, 2, 2, 8396, 8397, 7, 86, 2, 2, 8397, 8398, 7, 75, 2, 2, 8398, 8399, 7, 72, 2, 2, 8399, 8400, 7, 75, 2, 2, 8400, 8401, 7, 71, 2, 2, 8401, 8402, 7, 84, 2, 2, 8402, 1322, 3, 2, 2, 2, 8403, 8404, 7, 84, 2, 2, 8404, 8405, 7, 67, 2, 2, 8405, 8406, 7, 80, 2, 2, 8406, 8407, 7, 73, 2, 2, 8407, 8408, 7, 71, 2, 2, 8408, 1324, 3, 2, 2, 2, 8409, 8410, 7, 84, 2, 2, 8410, 8411, 7, 67, 2, 2, 8411, 8412, 7, 80, 2, 2, 8412, 8413, 7, 77, 2, 2, 8413, 1326, 3, 2, 2, 2, 8414, 8415, 7, 84, 2, 2, 8415, 8416, 7, 69, 2, 2, 8416, 8417, 7, 52, 2, 2, 8417, 1328, 3, 2, 2, 2, 8418, 8419, 7, 84, 2, 2, 8419, 8420, 7, 69, 2, 2, 8420, 8421, 7, 54, 2, 2, 8421, 1330, 3, 2, 2, 2, 8422, 8423, 7, 84, 2, 2, 8423, 8424, 7, 69, 2, 2, 8424, 8425, 7, 54, 2, 2, 8425, 8426, 7, 97, 2, 2, 8426, 8427, 7, 51, 2, 2, 8427, 8428, 7, 52, 2, 2, 8428, 8429, 7, 58, 2, 2, 8429, 1332, 3, 2, 2, 2, 8430, 8431, 7, 84, 2, 2, 8431, 8432, 7, 71, 2, 2, 8432, 8433, 7, 67, 2, 2, 8433, 8434, 7, 70, 2, 2, 8434, 8435, 7, 97, 2, 2, 8435, 8436, 7, 69, 2, 2, 8436, 8437, 7, 81, 2, 2, 8437, 8438, 7, 79, 2, 2, 8438, 8439, 7, 79, 2, 2, 8439, 8440, 7, 75, 2, 2, 8440, 8441, 7, 86, 2, 2, 8441, 8442, 7, 86, 2, 2, 8442, 8443, 7, 71, 2, 2, 8443, 8444, 7, 70, 2, 2, 8444, 8445, 7, 97, 2, 2, 8445, 8446, 7, 85, 2, 2, 8446, 8447, 7, 80, 2, 2, 8447, 8448, 7, 67, 2, 2, 8448, 8449, 7, 82, 2, 2, 8449, 8450, 7, 85, 2, 2, 8450, 8451, 7, 74, 2, 2, 8451, 8452, 7, 81, 2, 2, 8452, 8453, 7, 86, 2, 2, 8453, 1334, 3, 2, 2, 2, 8454, 8455, 7, 84, 2, 2, 8455, 8456, 7, 71, 2, 2, 8456, 8457, 7, 67, 2, 2, 8457, 8458, 7, 70, 2, 2, 8458, 8459, 7, 97, 2, 2, 8459, 8460, 7, 81, 2, 2, 8460, 8461, 7, 80, 2, 2, 8461, 8462, 7, 78, 2, 2, 8462, 8463, 7, 91, 2, 2, 8463, 1336, 3, 2, 2, 2, 8464, 8465, 7, 84, 2, 2, 8465, 8466, 7, 71, 2, 2, 8466, 8467, 7, 67, 2, 2, 8467, 8468, 7, 70, 2, 2, 8468, 8469, 7, 97, 2, 2, 8469, 8470, 7, 81, 2, 2, 8470, 8471, 7, 80, 2, 2, 8471, 8472, 7, 78, 2, 2, 8472, 8473, 7, 91, 2, 2, 8473, 8474, 7, 97, 2, 2, 8474, 8475, 7, 84, 2, 2, 8475, 8476, 7, 81, 2, 2, 8476, 8477, 7, 87, 2, 2, 8477, 8478, 7, 86, 2, 2, 8478, 8479, 7, 75, 2, 2, 8479, 8480, 7, 80, 2, 2, 8480, 8481, 7, 73, 2, 2, 8481, 8482, 7, 97, 2, 2, 8482, 8483, 7, 78, 2, 2, 8483, 8484, 7, 75, 2, 2, 8484, 8485, 7, 85, 2, 2, 8485, 8486, 7, 86, 2, 2, 8486, 1338, 3, 2, 2, 2, 8487, 8488, 7, 84, 2, 2, 8488, 8489, 7, 71, 2, 2, 8489, 8490, 7, 67, 2, 2, 8490, 8491, 7, 70, 2, 2, 8491, 8492, 7, 97, 2, 2, 8492, 8493, 7, 89, 2, 2, 8493, 8494, 7, 84, 2, 2, 8494, 8495, 7, 75, 2, 2, 8495, 8496, 7, 86, 2, 2, 8496, 8497, 7, 71, 2, 2, 8497, 1340, 3, 2, 2, 2, 8498, 8499, 7, 84, 2, 2, 8499, 8500, 7, 71, 2, 2, 8500, 8501, 7, 67, 2, 2, 8501, 8502, 7, 70, 2, 2, 8502, 8503, 7, 81, 2, 2, 8503, 8504, 7, 80, 2, 2, 8504, 8505, 7, 78, 2, 2, 8505, 8506, 7, 91, 2, 2, 8506, 1342, 3, 2, 2, 2, 8507, 8508, 7, 84, 2, 2, 8508, 8509, 7, 71, 2, 2, 8509, 8510, 7, 68, 2, 2, 8510, 8511, 7, 87, 2, 2, 8511, 8512, 7, 75, 2, 2, 8512, 8513, 7, 78, 2, 2, 8513, 8514, 7, 70, 2, 2, 8514, 1344, 3, 2, 2, 2, 8515, 8516, 7, 84, 2, 2, 8516, 8517, 7, 71, 2, 2, 8517, 8518, 7, 69, 2, 2, 8518, 8519, 7, 71, 2, 2, 8519, 8520, 7, 75, 2, 2, 8520, 8521, 7, 88, 2, 2, 8521, 8522, 7, 71, 2, 2, 8522, 1346, 3, 2, 2, 2, 8523, 8524, 7, 84, 2, 2, 8524, 8525, 7, 71, 2, 2, 8525, 8526, 7, 69, 2, 2, 8526, 8527, 7, 81, 2, 2, 8527, 8528, 7, 79, 2, 2, 8528, 8529, 7, 82, 2, 2, 8529, 8530, 7, 75, 2, 2, 8530, 8531, 7, 78, 2, 2, 8531, 8532, 7, 71, 2, 2, 8532, 1348, 3, 2, 2, 2, 8533, 8534, 7, 84, 2, 2, 8534, 8535, 7, 71, 2, 2, 8535, 8536, 7, 69, 2, 2, 8536, 8537, 7, 81, 2, 2, 8537, 8538, 7, 88, 2, 2, 8538, 8539, 7, 71, 2, 2, 8539, 8540, 7, 84, 2, 2, 8540, 8541, 7, 91, 2, 2, 8541, 1350, 3, 2, 2, 2, 8542, 8543, 7, 84, 2, 2, 8543, 8544, 7, 71, 2, 2, 8544, 8545, 7, 69, 2, 2, 8545, 8546, 7, 87, 2, 2, 8546, 8547, 7, 84, 2, 2, 8547, 8548, 7, 85, 2, 2, 8548, 8549, 7, 75, 2, 2, 8549, 8550, 7, 88, 2, 2, 8550, 8551, 7, 71, 2, 2, 8551, 8552, 7, 97, 2, 2, 8552, 8553, 7, 86, 2, 2, 8553, 8554, 7, 84, 2, 2, 8554, 8555, 7, 75, 2, 2, 8555, 8556, 7, 73, 2, 2, 8556, 8557, 7, 73, 2, 2, 8557, 8558, 7, 71, 2, 2, 8558, 8559, 7, 84, 2, 2, 8559, 8560, 7, 85, 2, 2, 8560, 1352, 3, 2, 2, 2, 8561, 8562, 7, 84, 2, 2, 8562, 8563, 7, 71, 2, 2, 8563, 8564, 7, 78, 2, 2, 8564, 8565, 7, 67, 2, 2, 8565, 8566, 7, 86, 2, 2, 8566, 8567, 7, 75, 2, 2, 8567, 8568, 7, 88, 2, 2, 8568, 8569, 7, 71, 2, 2, 8569, 1354, 3, 2, 2, 2, 8570, 8571, 7, 84, 2, 2, 8571, 8572, 7, 71, 2, 2, 8572, 8573, 7, 79, 2, 2, 8573, 8574, 7, 81, 2, 2, 8574, 8575, 7, 86, 2, 2, 8575, 8576, 7, 71, 2, 2, 8576, 1356, 3, 2, 2, 2, 8577, 8578, 7, 84, 2, 2, 8578, 8579, 7, 71, 2, 2, 8579, 8580, 7, 79, 2, 2, 8580, 8581, 7, 81, 2, 2, 8581, 8582, 7, 86, 2, 2, 8582, 8583, 7, 71, 2, 2, 8583, 8584, 7, 97, 2, 2, 8584, 8585, 7, 85, 2, 2, 8585, 8586, 7, 71, 2, 2, 8586, 8587, 7, 84, 2, 2, 8587, 8588, 7, 88, 2, 2, 8588, 8589, 7, 75, 2, 2, 8589, 8590, 7, 69, 2, 2, 8590, 8591, 7, 71, 2, 2, 8591, 8592, 7, 97, 2, 2, 8592, 8593, 7, 80, 2, 2, 8593, 8594, 7, 67, 2, 2, 8594, 8595, 7, 79, 2, 2, 8595, 8596, 7, 71, 2, 2, 8596, 1358, 3, 2, 2, 2, 8597, 8598, 7, 84, 2, 2, 8598, 8599, 7, 71, 2, 2, 8599, 8600, 7, 79, 2, 2, 8600, 8601, 7, 81, 2, 2, 8601, 8602, 7, 88, 2, 2, 8602, 8603, 7, 71, 2, 2, 8603, 1360, 3, 2, 2, 2, 8604, 8605, 7, 84, 2, 2, 8605, 8606, 7, 71, 2, 2, 8606, 8607, 7, 81, 2, 2, 8607, 8608, 7, 84, 2, 2, 8608, 8609, 7, 73, 2, 2, 8609, 8610, 7, 67, 2, 2, 8610, 8611, 7, 80, 2, 2, 8611, 8612, 7, 75, 2, 2, 8612, 8613, 7, 92, 2, 2, 8613, 8614, 7, 71, 2, 2, 8614, 1362, 3, 2, 2, 2, 8615, 8616, 7, 84, 2, 2, 8616, 8617, 7, 71, 2, 2, 8617, 8618, 7, 82, 2, 2, 8618, 8619, 7, 71, 2, 2, 8619, 8620, 7, 67, 2, 2, 8620, 8621, 7, 86, 2, 2, 8621, 8622, 7, 67, 2, 2, 8622, 8623, 7, 68, 2, 2, 8623, 8624, 7, 78, 2, 2, 8624, 8625, 7, 71, 2, 2, 8625, 1364, 3, 2, 2, 2, 8626, 8627, 7, 84, 2, 2, 8627, 8628, 7, 71, 2, 2, 8628, 8629, 7, 82, 2, 2, 8629, 8630, 7, 78, 2, 2, 8630, 8631, 7, 75, 2, 2, 8631, 8632, 7, 69, 2, 2, 8632, 8633, 7, 67, 2, 2, 8633, 1366, 3, 2, 2, 2, 8634, 8635, 7, 84, 2, 2, 8635, 8636, 7, 71, 2, 2, 8636, 8637, 7, 83, 2, 2, 8637, 8638, 7, 87, 2, 2, 8638, 8639, 7, 71, 2, 2, 8639, 8640, 7, 85, 2, 2, 8640, 8641, 7, 86, 2, 2, 8641, 8642, 7, 97, 2, 2, 8642, 8643, 7, 79, 2, 2, 8643, 8644, 7, 67, 2, 2, 8644, 8645, 7, 90, 2, 2, 8645, 8646, 7, 97, 2, 2, 8646, 8647, 7, 69, 2, 2, 8647, 8648, 7, 82, 2, 2, 8648, 8649, 7, 87, 2, 2, 8649, 8650, 7, 97, 2, 2, 8650, 8651, 7, 86, 2, 2, 8651, 8652, 7, 75, 2, 2, 8652, 8653, 7, 79, 2, 2, 8653, 8654, 7, 71, 2, 2, 8654, 8655, 7, 97, 2, 2, 8655, 8656, 7, 85, 2, 2, 8656, 8657, 7, 71, 2, 2, 8657, 8658, 7, 69, 2, 2, 8658, 1368, 3, 2, 2, 2, 8659, 8660, 7, 84, 2, 2, 8660, 8661, 7, 71, 2, 2, 8661, 8662, 7, 83, 2, 2, 8662, 8663, 7, 87, 2, 2, 8663, 8664, 7, 71, 2, 2, 8664, 8665, 7, 85, 2, 2, 8665, 8666, 7, 86, 2, 2, 8666, 8667, 7, 97, 2, 2, 8667, 8668, 7, 79, 2, 2, 8668, 8669, 7, 67, 2, 2, 8669, 8670, 7, 90, 2, 2, 8670, 8671, 7, 97, 2, 2, 8671, 8672, 7, 79, 2, 2, 8672, 8673, 7, 71, 2, 2, 8673, 8674, 7, 79, 2, 2, 8674, 8675, 7, 81, 2, 2, 8675, 8676, 7, 84, 2, 2, 8676, 8677, 7, 91, 2, 2, 8677, 8678, 7, 97, 2, 2, 8678, 8679, 7, 73, 2, 2, 8679, 8680, 7, 84, 2, 2, 8680, 8681, 7, 67, 2, 2, 8681, 8682, 7, 80, 2, 2, 8682, 8683, 7, 86, 2, 2, 8683, 8684, 7, 97, 2, 2, 8684, 8685, 7, 82, 2, 2, 8685, 8686, 7, 71, 2, 2, 8686, 8687, 7, 84, 2, 2, 8687, 8688, 7, 69, 2, 2, 8688, 8689, 7, 71, 2, 2, 8689, 8690, 7, 80, 2, 2, 8690, 8691, 7, 86, 2, 2, 8691, 1370, 3, 2, 2, 2, 8692, 8693, 7, 84, 2, 2, 8693, 8694, 7, 71, 2, 2, 8694, 8695, 7, 83, 2, 2, 8695, 8696, 7, 87, 2, 2, 8696, 8697, 7, 71, 2, 2, 8697, 8698, 7, 85, 2, 2, 8698, 8699, 7, 86, 2, 2, 8699, 8700, 7, 97, 2, 2, 8700, 8701, 7, 79, 2, 2, 8701, 8702, 7, 71, 2, 2, 8702, 8703, 7, 79, 2, 2, 8703, 8704, 7, 81, 2, 2, 8704, 8705, 7, 84, 2, 2, 8705, 8706, 7, 91, 2, 2, 8706, 8707, 7, 97, 2, 2, 8707, 8708, 7, 73, 2, 2, 8708, 8709, 7, 84, 2, 2, 8709, 8710, 7, 67, 2, 2, 8710, 8711, 7, 80, 2, 2, 8711, 8712, 7, 86, 2, 2, 8712, 8713, 7, 97, 2, 2, 8713, 8714, 7, 86, 2, 2, 8714, 8715, 7, 75, 2, 2, 8715, 8716, 7, 79, 2, 2, 8716, 8717, 7, 71, 2, 2, 8717, 8718, 7, 81, 2, 2, 8718, 8719, 7, 87, 2, 2, 8719, 8720, 7, 86, 2, 2, 8720, 8721, 7, 97, 2, 2, 8721, 8722, 7, 85, 2, 2, 8722, 8723, 7, 71, 2, 2, 8723, 8724, 7, 69, 2, 2, 8724, 1372, 3, 2, 2, 2, 8725, 8726, 7, 84, 2, 2, 8726, 8727, 7, 71, 2, 2, 8727, 8728, 7, 83, 2, 2, 8728, 8729, 7, 87, 2, 2, 8729, 8730, 7, 75, 2, 2, 8730, 8731, 7, 84, 2, 2, 8731, 8732, 7, 71, 2, 2, 8732, 8733, 7, 70, 2, 2, 8733, 8734, 7, 97, 2, 2, 8734, 8735, 7, 85, 2, 2, 8735, 8736, 7, 91, 2, 2, 8736, 8737, 7, 80, 2, 2, 8737, 8738, 7, 69, 2, 2, 8738, 8739, 7, 74, 2, 2, 8739, 8740, 7, 84, 2, 2, 8740, 8741, 7, 81, 2, 2, 8741, 8742, 7, 80, 2, 2, 8742, 8743, 7, 75, 2, 2, 8743, 8744, 7, 92, 2, 2, 8744, 8745, 7, 71, 2, 2, 8745, 8746, 7, 70, 2, 2, 8746, 8747, 7, 97, 2, 2, 8747, 8748, 7, 85, 2, 2, 8748, 8749, 7, 71, 2, 2, 8749, 8750, 7, 69, 2, 2, 8750, 8751, 7, 81, 2, 2, 8751, 8752, 7, 80, 2, 2, 8752, 8753, 7, 70, 2, 2, 8753, 8754, 7, 67, 2, 2, 8754, 8755, 7, 84, 2, 2, 8755, 8756, 7, 75, 2, 2, 8756, 8757, 7, 71, 2, 2, 8757, 8758, 7, 85, 2, 2, 8758, 8759, 7, 97, 2, 2, 8759, 8760, 7, 86, 2, 2, 8760, 8761, 7, 81, 2, 2, 8761, 8762, 7, 97, 2, 2, 8762, 8763, 7, 69, 2, 2, 8763, 8764, 7, 81, 2, 2, 8764, 8765, 7, 79, 2, 2, 8765, 8766, 7, 79, 2, 2, 8766, 8767, 7, 75, 2, 2, 8767, 8768, 7, 86, 2, 2, 8768, 1374, 3, 2, 2, 2, 8769, 8770, 7, 84, 2, 2, 8770, 8771, 7, 71, 2, 2, 8771, 8772, 7, 85, 2, 2, 8772, 8773, 7, 71, 2, 2, 8773, 8774, 7, 84, 2, 2, 8774, 8775, 7, 88, 2, 2, 8775, 8776, 7, 71, 2, 2, 8776, 8777, 7, 97, 2, 2, 8777, 8778, 7, 70, 2, 2, 8778, 8779, 7, 75, 2, 2, 8779, 8780, 7, 85, 2, 2, 8780, 8781, 7, 77, 2, 2, 8781, 8782, 7, 97, 2, 2, 8782, 8783, 7, 85, 2, 2, 8783, 8784, 7, 82, 2, 2, 8784, 8785, 7, 67, 2, 2, 8785, 8786, 7, 69, 2, 2, 8786, 8787, 7, 71, 2, 2, 8787, 1376, 3, 2, 2, 2, 8788, 8789, 7, 84, 2, 2, 8789, 8790, 7, 71, 2, 2, 8790, 8791, 7, 85, 2, 2, 8791, 8792, 7, 81, 2, 2, 8792, 8793, 7, 87, 2, 2, 8793, 8794, 7, 84, 2, 2, 8794, 8795, 7, 69, 2, 2, 8795, 8796, 7, 71, 2, 2, 8796, 1378, 3, 2, 2, 2, 8797, 8798, 7, 84, 2, 2, 8798, 8799, 7, 71, 2, 2, 8799, 8800, 7, 85, 2, 2, 8800, 8801, 7, 81, 2, 2, 8801, 8802, 7, 87, 2, 2, 8802, 8803, 7, 84, 2, 2, 8803, 8804, 7, 69, 2, 2, 8804, 8805, 7, 71, 2, 2, 8805, 8806, 7, 97, 2, 2, 8806, 8807, 7, 79, 2, 2, 8807, 8808, 7, 67, 2, 2, 8808, 8809, 7, 80, 2, 2, 8809, 8810, 7, 67, 2, 2, 8810, 8811, 7, 73, 2, 2, 8811, 8812, 7, 71, 2, 2, 8812, 8813, 7, 84, 2, 2, 8813, 8814, 7, 97, 2, 2, 8814, 8815, 7, 78, 2, 2, 8815, 8816, 7, 81, 2, 2, 8816, 8817, 7, 69, 2, 2, 8817, 8818, 7, 67, 2, 2, 8818, 8819, 7, 86, 2, 2, 8819, 8820, 7, 75, 2, 2, 8820, 8821, 7, 81, 2, 2, 8821, 8822, 7, 80, 2, 2, 8822, 1380, 3, 2, 2, 2, 8823, 8824, 7, 84, 2, 2, 8824, 8825, 7, 71, 2, 2, 8825, 8826, 7, 85, 2, 2, 8826, 8827, 7, 86, 2, 2, 8827, 8828, 7, 84, 2, 2, 8828, 8829, 7, 75, 2, 2, 8829, 8830, 7, 69, 2, 2, 8830, 8831, 7, 86, 2, 2, 8831, 8832, 7, 71, 2, 2, 8832, 8833, 7, 70, 2, 2, 8833, 8834, 7, 97, 2, 2, 8834, 8835, 7, 87, 2, 2, 8835, 8836, 7, 85, 2, 2, 8836, 8837, 7, 71, 2, 2, 8837, 8838, 7, 84, 2, 2, 8838, 1382, 3, 2, 2, 2, 8839, 8840, 7, 84, 2, 2, 8840, 8841, 7, 71, 2, 2, 8841, 8842, 7, 86, 2, 2, 8842, 8843, 7, 71, 2, 2, 8843, 8844, 7, 80, 2, 2, 8844, 8845, 7, 86, 2, 2, 8845, 8846, 7, 75, 2, 2, 8846, 8847, 7, 81, 2, 2, 8847, 8848, 7, 80, 2, 2, 8848, 1384, 3, 2, 2, 2, 8849, 8850, 7, 84, 2, 2, 8850, 8851, 7, 81, 2, 2, 8851, 8852, 7, 68, 2, 2, 8852, 8853, 7, 87, 2, 2, 8853, 8854, 7, 85, 2, 2, 8854, 8855, 7, 86, 2, 2, 8855, 1386, 3, 2, 2, 2, 8856, 8857, 7, 84, 2, 2, 8857, 8858, 7, 81, 2, 2, 8858, 8859, 7, 81, 2, 2, 8859, 8860, 7, 86, 2, 2, 8860, 1388, 3, 2, 2, 2, 8861, 8862, 7, 84, 2, 2, 8862, 8863, 7, 81, 2, 2, 8863, 8864, 7, 87, 2, 2, 8864, 8865, 7, 86, 2, 2, 8865, 8866, 7, 71, 2, 2, 8866, 1390, 3, 2, 2, 2, 8867, 8868, 7, 84, 2, 2, 8868, 8869, 7, 81, 2, 2, 8869, 8870, 7, 89, 2, 2, 8870, 1392, 3, 2, 2, 2, 8871, 8872, 7, 84, 2, 2, 8872, 8873, 7, 81, 2, 2, 8873, 8874, 7, 89, 2, 2, 8874, 8875, 7, 97, 2, 2, 8875, 8876, 7, 80, 2, 2, 8876, 8877, 7, 87, 2, 2, 8877, 8878, 7, 79, 2, 2, 8878, 8879, 7, 68, 2, 2, 8879, 8880, 7, 71, 2, 2, 8880, 8881, 7, 84, 2, 2, 8881, 1394, 3, 2, 2, 2, 8882, 8883, 7, 84, 2, 2, 8883, 8884, 7, 81, 2, 2, 8884, 8885, 7, 89, 2, 2, 8885, 8886, 7, 73, 2, 2, 8886, 8887, 7, 87, 2, 2, 8887, 8888, 7, 75, 2, 2, 8888, 8889, 7, 70, 2, 2, 8889, 1396, 3, 2, 2, 2, 8890, 8891, 7, 84, 2, 2, 8891, 8892, 7, 81, 2, 2, 8892, 8893, 7, 89, 2, 2, 8893, 8894, 7, 85, 2, 2, 8894, 1398, 3, 2, 2, 2, 8895, 8896, 7, 85, 2, 2, 8896, 8897, 7, 67, 2, 2, 8897, 8898, 7, 79, 2, 2, 8898, 8899, 7, 82, 2, 2, 8899, 8900, 7, 78, 2, 2, 8900, 8901, 7, 71, 2, 2, 8901, 1400, 3, 2, 2, 2, 8902, 8903, 7, 85, 2, 2, 8903, 8904, 7, 69, 2, 2, 8904, 8905, 7, 74, 2, 2, 8905, 8906, 7, 71, 2, 2, 8906, 8907, 7, 79, 2, 2, 8907, 8908, 7, 67, 2, 2, 8908, 8909, 7, 68, 2, 2, 8909, 8910, 7, 75, 2, 2, 8910, 8911, 7, 80, 2, 2, 8911, 8912, 7, 70, 2, 2, 8912, 8913, 7, 75, 2, 2, 8913, 8914, 7, 80, 2, 2, 8914, 8915, 7, 73, 2, 2, 8915, 1402, 3, 2, 2, 2, 8916, 8917, 7, 85, 2, 2, 8917, 8918, 7, 69, 2, 2, 8918, 8919, 7, 81, 2, 2, 8919, 8920, 7, 82, 2, 2, 8920, 8921, 7, 71, 2, 2, 8921, 8922, 7, 70, 2, 2, 8922, 1404, 3, 2, 2, 2, 8923, 8924, 7, 85, 2, 2, 8924, 8925, 7, 69, 2, 2, 8925, 8926, 7, 84, 2, 2, 8926, 8927, 7, 81, 2, 2, 8927, 8928, 7, 78, 2, 2, 8928, 8929, 7, 78, 2, 2, 8929, 1406, 3, 2, 2, 2, 8930, 8931, 7, 85, 2, 2, 8931, 8932, 7, 69, 2, 2, 8932, 8933, 7, 84, 2, 2, 8933, 8934, 7, 81, 2, 2, 8934, 8935, 7, 78, 2, 2, 8935, 8936, 7, 78, 2, 2, 8936, 8937, 7, 97, 2, 2, 8937, 8938, 7, 78, 2, 2, 8938, 8939, 7, 81, 2, 2, 8939, 8940, 7, 69, 2, 2, 8940, 8941, 7, 77, 2, 2, 8941, 8942, 7, 85, 2, 2, 8942, 1408, 3, 2, 2, 2, 8943, 8944, 7, 85, 2, 2, 8944, 8945, 7, 71, 2, 2, 8945, 8946, 7, 67, 2, 2, 8946, 8947, 7, 84, 2, 2, 8947, 8948, 7, 69, 2, 2, 8948, 8949, 7, 74, 2, 2, 8949, 1410, 3, 2, 2, 2, 8950, 8951, 7, 85, 2, 2, 8951, 8952, 7, 71, 2, 2, 8952, 8953, 7, 69, 2, 2, 8953, 8954, 7, 81, 2, 2, 8954, 8955, 7, 80, 2, 2, 8955, 8956, 7, 70, 2, 2, 8956, 8957, 7, 67, 2, 2, 8957, 8958, 7, 84, 2, 2, 8958, 8959, 7, 91, 2, 2, 8959, 1412, 3, 2, 2, 2, 8960, 8961, 7, 85, 2, 2, 8961, 8962, 7, 71, 2, 2, 8962, 8963, 7, 69, 2, 2, 8963, 8964, 7, 81, 2, 2, 8964, 8965, 7, 80, 2, 2, 8965, 8966, 7, 70, 2, 2, 8966, 8967, 7, 67, 2, 2, 8967, 8968, 7, 84, 2, 2, 8968, 8969, 7, 91, 2, 2, 8969, 8970, 7, 97, 2, 2, 8970, 8971, 7, 81, 2, 2, 8971, 8972, 7, 80, 2, 2, 8972, 8973, 7, 78, 2, 2, 8973, 8974, 7, 91, 2, 2, 8974, 1414, 3, 2, 2, 2, 8975, 8976, 7, 85, 2, 2, 8976, 8977, 7, 71, 2, 2, 8977, 8978, 7, 69, 2, 2, 8978, 8979, 7, 81, 2, 2, 8979, 8980, 7, 80, 2, 2, 8980, 8981, 7, 70, 2, 2, 8981, 8982, 7, 67, 2, 2, 8982, 8983, 7, 84, 2, 2, 8983, 8984, 7, 91, 2, 2, 8984, 8985, 7, 97, 2, 2, 8985, 8986, 7, 84, 2, 2, 8986, 8987, 7, 81, 2, 2, 8987, 8988, 7, 78, 2, 2, 8988, 8989, 7, 71, 2, 2, 8989, 1416, 3, 2, 2, 2, 8990, 8991, 7, 85, 2, 2, 8991, 8992, 7, 71, 2, 2, 8992, 8993, 7, 69, 2, 2, 8993, 8994, 7, 81, 2, 2, 8994, 8995, 7, 80, 2, 2, 8995, 8996, 7, 70, 2, 2, 8996, 8997, 7, 85, 2, 2, 8997, 1418, 3, 2, 2, 2, 8998, 8999, 7, 85, 2, 2, 8999, 9000, 7, 71, 2, 2, 9000, 9001, 7, 69, 2, 2, 9001, 9002, 7, 84, 2, 2, 9002, 9003, 7, 71, 2, 2, 9003, 9004, 7, 86, 2, 2, 9004, 1420, 3, 2, 2, 2, 9005, 9006, 7, 85, 2, 2, 9006, 9007, 7, 71, 2, 2, 9007, 9008, 7, 69, 2, 2, 9008, 9009, 7, 87, 2, 2, 9009, 9010, 7, 84, 2, 2, 9010, 9011, 7, 75, 2, 2, 9011, 9012, 7, 86, 2, 2, 9012, 9013, 7, 91, 2, 2, 9013, 1422, 3, 2, 2, 2, 9014, 9015, 7, 85, 2, 2, 9015, 9016, 7, 71, 2, 2, 9016, 9017, 7, 69, 2, 2, 9017, 9018, 7, 87, 2, 2, 9018, 9019, 7, 84, 2, 2, 9019, 9020, 7, 75, 2, 2, 9020, 9021, 7, 86, 2, 2, 9021, 9022, 7, 91, 2, 2, 9022, 9023, 7, 97, 2, 2, 9023, 9024, 7, 78, 2, 2, 9024, 9025, 7, 81, 2, 2, 9025, 9026, 7, 73, 2, 2, 9026, 1424, 3, 2, 2, 2, 9027, 9028, 7, 85, 2, 2, 9028, 9029, 7, 71, 2, 2, 9029, 9030, 7, 71, 2, 2, 9030, 9031, 7, 70, 2, 2, 9031, 9032, 7, 75, 2, 2, 9032, 9033, 7, 80, 2, 2, 9033, 9034, 7, 73, 2, 2, 9034, 9035, 7, 97, 2, 2, 9035, 9036, 7, 79, 2, 2, 9036, 9037, 7, 81, 2, 2, 9037, 9038, 7, 70, 2, 2, 9038, 9039, 7, 71, 2, 2, 9039, 1426, 3, 2, 2, 2, 9040, 9041, 7, 85, 2, 2, 9041, 9042, 7, 71, 2, 2, 9042, 9043, 7, 78, 2, 2, 9043, 9044, 7, 72, 2, 2, 9044, 1428, 3, 2, 2, 2, 9045, 9046, 7, 85, 2, 2, 9046, 9047, 7, 71, 2, 2, 9047, 9048, 7, 79, 2, 2, 9048, 9049, 7, 75, 2, 2, 9049, 9050, 7, 97, 2, 2, 9050, 9051, 7, 85, 2, 2, 9051, 9052, 7, 71, 2, 2, 9052, 9053, 7, 80, 2, 2, 9053, 9054, 7, 85, 2, 2, 9054, 9055, 7, 75, 2, 2, 9055, 9056, 7, 86, 2, 2, 9056, 9057, 7, 75, 2, 2, 9057, 9058, 7, 88, 2, 2, 9058, 9059, 7, 71, 2, 2, 9059, 1430, 3, 2, 2, 2, 9060, 9061, 7, 85, 2, 2, 9061, 9062, 7, 71, 2, 2, 9062, 9063, 7, 80, 2, 2, 9063, 9064, 7, 70, 2, 2, 9064, 1432, 3, 2, 2, 2, 9065, 9066, 7, 85, 2, 2, 9066, 9067, 7, 71, 2, 2, 9067, 9068, 7, 80, 2, 2, 9068, 9069, 7, 86, 2, 2, 9069, 1434, 3, 2, 2, 2, 9070, 9071, 7, 85, 2, 2, 9071, 9072, 7, 71, 2, 2, 9072, 9073, 7, 83, 2, 2, 9073, 9074, 7, 87, 2, 2, 9074, 9075, 7, 71, 2, 2, 9075, 9076, 7, 80, 2, 2, 9076, 9077, 7, 69, 2, 2, 9077, 9078, 7, 71, 2, 2, 9078, 1436, 3, 2, 2, 2, 9079, 9080, 7, 85, 2, 2, 9080, 9081, 7, 71, 2, 2, 9081, 9082, 7, 84, 2, 2, 9082, 9083, 7, 75, 2, 2, 9083, 9084, 7, 67, 2, 2, 9084, 9085, 7, 78, 2, 2, 9085, 9086, 7, 75, 2, 2, 9086, 9087, 7, 92, 2, 2, 9087, 9088, 7, 67, 2, 2, 9088, 9089, 7, 68, 2, 2, 9089, 9090, 7, 78, 2, 2, 9090, 9091, 7, 71, 2, 2, 9091, 1438, 3, 2, 2, 2, 9092, 9093, 7, 85, 2, 2, 9093, 9094, 7, 71, 2, 2, 9094, 9095, 7, 85, 2, 2, 9095, 9096, 7, 85, 2, 2, 9096, 9097, 7, 75, 2, 2, 9097, 9098, 7, 81, 2, 2, 9098, 9099, 7, 80, 2, 2, 9099, 9100, 7, 97, 2, 2, 9100, 9101, 7, 86, 2, 2, 9101, 9102, 7, 75, 2, 2, 9102, 9103, 7, 79, 2, 2, 9103, 9104, 7, 71, 2, 2, 9104, 9105, 7, 81, 2, 2, 9105, 9106, 7, 87, 2, 2, 9106, 9107, 7, 86, 2, 2, 9107, 1440, 3, 2, 2, 2, 9108, 9109, 7, 85, 2, 2, 9109, 9110, 7, 71, 2, 2, 9110, 9111, 7, 86, 2, 2, 9111, 9112, 7, 71, 2, 2, 9112, 9113, 7, 84, 2, 2, 9113, 9114, 7, 84, 2, 2, 9114, 9115, 7, 81, 2, 2, 9115, 9116, 7, 84, 2, 2, 9116, 1442, 3, 2, 2, 2, 9117, 9118, 7, 85, 2, 2, 9118, 9119, 7, 74, 2, 2, 9119, 9120, 7, 67, 2, 2, 9120, 9121, 7, 84, 2, 2, 9121, 9122, 7, 71, 2, 2, 9122, 1444, 3, 2, 2, 2, 9123, 9124, 7, 85, 2, 2, 9124, 9125, 7, 74, 2, 2, 9125, 9126, 7, 81, 2, 2, 9126, 9127, 7, 89, 2, 2, 9127, 9128, 7, 82, 2, 2, 9128, 9129, 7, 78, 2, 2, 9129, 9130, 7, 67, 2, 2, 9130, 9131, 7, 80, 2, 2, 9131, 1446, 3, 2, 2, 2, 9132, 9133, 7, 85, 2, 2, 9133, 9134, 7, 75, 2, 2, 9134, 9135, 7, 73, 2, 2, 9135, 9136, 7, 80, 2, 2, 9136, 9137, 7, 67, 2, 2, 9137, 9138, 7, 86, 2, 2, 9138, 9139, 7, 87, 2, 2, 9139, 9140, 7, 84, 2, 2, 9140, 9141, 7, 71, 2, 2, 9141, 1448, 3, 2, 2, 2, 9142, 9143, 7, 85, 2, 2, 9143, 9144, 7, 75, 2, 2, 9144, 9145, 7, 79, 2, 2, 9145, 9146, 7, 82, 2, 2, 9146, 9147, 7, 78, 2, 2, 9147, 9148, 7, 71, 2, 2, 9148, 1450, 3, 2, 2, 2, 9149, 9150, 7, 85, 2, 2, 9150, 9151, 7, 75, 2, 2, 9151, 9152, 7, 80, 2, 2, 9152, 9153, 7, 73, 2, 2, 9153, 9154, 7, 78, 2, 2, 9154, 9155, 7, 71, 2, 2, 9155, 9156, 7, 97, 2, 2, 9156, 9157, 7, 87, 2, 2, 9157, 9158, 7, 85, 2, 2, 9158, 9159, 7, 71, 2, 2, 9159, 9160, 7, 84, 2, 2, 9160, 1452, 3, 2, 2, 2, 9161, 9162, 7, 85, 2, 2, 9162, 9163, 7, 75, 2, 2, 9163, 9164, 7, 92, 2, 2, 9164, 9165, 7, 71, 2, 2, 9165, 1454, 3, 2, 2, 2, 9166, 9167, 7, 85, 2, 2, 9167, 9168, 7, 79, 2, 2, 9168, 9169, 7, 67, 2, 2, 9169, 9170, 7, 78, 2, 2, 9170, 9171, 7, 78, 2, 2, 9171, 9172, 7, 75, 2, 2, 9172, 9173, 7, 80, 2, 2, 9173, 9174, 7, 86, 2, 2, 9174, 1456, 3, 2, 2, 2, 9175, 9176, 7, 85, 2, 2, 9176, 9177, 7, 80, 2, 2, 9177, 9178, 7, 67, 2, 2, 9178, 9179, 7, 82, 2, 2, 9179, 9180, 7, 85, 2, 2, 9180, 9181, 7, 74, 2, 2, 9181, 9182, 7, 81, 2, 2, 9182, 9183, 7, 86, 2, 2, 9183, 1458, 3, 2, 2, 2, 9184, 9185, 7, 85, 2, 2, 9185, 9186, 7, 82, 2, 2, 9186, 9187, 7, 67, 2, 2, 9187, 9188, 7, 86, 2, 2, 9188, 9189, 7, 75, 2, 2, 9189, 9190, 7, 67, 2, 2, 9190, 9191, 7, 78, 2, 2, 9191, 9192, 7, 97, 2, 2, 9192, 9193, 7, 89, 2, 2, 9193, 9194, 7, 75, 2, 2, 9194, 9195, 7, 80, 2, 2, 9195, 9196, 7, 70, 2, 2, 9196, 9197, 7, 81, 2, 2, 9197, 9198, 7, 89, 2, 2, 9198, 9199, 7, 97, 2, 2, 9199, 9200, 7, 79, 2, 2, 9200, 9201, 7, 67, 2, 2, 9201, 9202, 7, 90, 2, 2, 9202, 9203, 7, 97, 2, 2, 9203, 9204, 7, 69, 2, 2, 9204, 9205, 7, 71, 2, 2, 9205, 9206, 7, 78, 2, 2, 9206, 9207, 7, 78, 2, 2, 9207, 9208, 7, 85, 2, 2, 9208, 1460, 3, 2, 2, 2, 9209, 9210, 7, 85, 2, 2, 9210, 9211, 7, 86, 2, 2, 9211, 9212, 7, 67, 2, 2, 9212, 9213, 7, 80, 2, 2, 9213, 9214, 7, 70, 2, 2, 9214, 9215, 7, 68, 2, 2, 9215, 9216, 7, 91, 2, 2, 9216, 1462, 3, 2, 2, 2, 9217, 9218, 7, 85, 2, 2, 9218, 9219, 7, 86, 2, 2, 9219, 9220, 7, 67, 2, 2, 9220, 9221, 7, 84, 2, 2, 9221, 9222, 7, 86, 2, 2, 9222, 9223, 7, 97, 2, 2, 9223, 9224, 7, 70, 2, 2, 9224, 9225, 7, 67, 2, 2, 9225, 9226, 7, 86, 2, 2, 9226, 9227, 7, 71, 2, 2, 9227, 1464, 3, 2, 2, 2, 9228, 9229, 7, 85, 2, 2, 9229, 9230, 7, 86, 2, 2, 9230, 9231, 7, 67, 2, 2, 9231, 9232, 7, 86, 2, 2, 9232, 9233, 7, 75, 2, 2, 9233, 9234, 7, 69, 2, 2, 9234, 1466, 3, 2, 2, 2, 9235, 9236, 7, 85, 2, 2, 9236, 9237, 7, 86, 2, 2, 9237, 9238, 7, 67, 2, 2, 9238, 9239, 7, 86, 2, 2, 9239, 9240, 7, 85, 2, 2, 9240, 9241, 7, 97, 2, 2, 9241, 9242, 7, 85, 2, 2, 9242, 9243, 7, 86, 2, 2, 9243, 9244, 7, 84, 2, 2, 9244, 9245, 7, 71, 2, 2, 9245, 9246, 7, 67, 2, 2, 9246, 9247, 7, 79, 2, 2, 9247, 1468, 3, 2, 2, 2, 9248, 9249, 7, 85, 2, 2, 9249, 9250, 7, 86, 2, 2, 9250, 9251, 7, 67, 2, 2, 9251, 9252, 7, 86, 2, 2, 9252, 9253, 7, 87, 2, 2, 9253, 9254, 7, 85, 2, 2, 9254, 1470, 3, 2, 2, 2, 9255, 9256, 7, 85, 2, 2, 9256, 9257, 7, 86, 2, 2, 9257, 9258, 7, 67, 2, 2, 9258, 9259, 7, 86, 2, 2, 9259, 9260, 7, 87, 2, 2, 9260, 9261, 7, 85, 2, 2, 9261, 9262, 7, 81, 2, 2, 9262, 9263, 7, 80, 2, 2, 9263, 9264, 7, 78, 2, 2, 9264, 9265, 7, 91, 2, 2, 9265, 1472, 3, 2, 2, 2, 9266, 9267, 7, 85, 2, 2, 9267, 9268, 7, 86, 2, 2, 9268, 9269, 7, 70, 2, 2, 9269, 9270, 7, 71, 2, 2, 9270, 9271, 7, 88, 2, 2, 9271, 1474, 3, 2, 2, 2, 9272, 9273, 7, 85, 2, 2, 9273, 9274, 7, 86, 2, 2, 9274, 9275, 7, 70, 2, 2, 9275, 9276, 7, 71, 2, 2, 9276, 9277, 7, 88, 2, 2, 9277, 9278, 7, 82, 2, 2, 9278, 1476, 3, 2, 2, 2, 9279, 9280, 7, 85, 2, 2, 9280, 9281, 7, 86, 2, 2, 9281, 9282, 7, 81, 2, 2, 9282, 9283, 7, 82, 2, 2, 9283, 9284, 7, 78, 2, 2, 9284, 9285, 7, 75, 2, 2, 9285, 9286, 7, 85, 2, 2, 9286, 9287, 7, 86, 2, 2, 9287, 1478, 3, 2, 2, 2, 9288, 9289, 7, 85, 2, 2, 9289, 9290, 7, 86, 2, 2, 9290, 9291, 7, 84, 2, 2, 9291, 9292, 7, 75, 2, 2, 9292, 9293, 7, 80, 2, 2, 9293, 9294, 7, 73, 2, 2, 9294, 9295, 7, 97, 2, 2, 9295, 9296, 7, 67, 2, 2, 9296, 9297, 7, 73, 2, 2, 9297, 9298, 7, 73, 2, 2, 9298, 1480, 3, 2, 2, 2, 9299, 9300, 7, 85, 2, 2, 9300, 9301, 7, 86, 2, 2, 9301, 9302, 7, 87, 2, 2, 9302, 9303, 7, 72, 2, 2, 9303, 9304, 7, 72, 2, 2, 9304, 1482, 3, 2, 2, 2, 9305, 9306, 7, 85, 2, 2, 9306, 9307, 7, 87, 2, 2, 9307, 9308, 7, 68, 2, 2, 9308, 9309, 7, 76, 2, 2, 9309, 9310, 7, 71, 2, 2, 9310, 9311, 7, 69, 2, 2, 9311, 9312, 7, 86, 2, 2, 9312, 1484, 3, 2, 2, 2, 9313, 9314, 7, 85, 2, 2, 9314, 9315, 7, 87, 2, 2, 9315, 9316, 7, 68, 2, 2, 9316, 9317, 7, 85, 2, 2, 9317, 9318, 7, 69, 2, 2, 9318, 9319, 7, 84, 2, 2, 9319, 9320, 7, 75, 2, 2, 9320, 9321, 7, 82, 2, 2, 9321, 9322, 7, 86, 2, 2, 9322, 9323, 7, 75, 2, 2, 9323, 9324, 7, 81, 2, 2, 9324, 9325, 7, 80, 2, 2, 9325, 1486, 3, 2, 2, 2, 9326, 9327, 7, 85, 2, 2, 9327, 9328, 7, 87, 2, 2, 9328, 9329, 7, 79, 2, 2, 9329, 1488, 3, 2, 2, 2, 9330, 9331, 7, 85, 2, 2, 9331, 9332, 7, 87, 2, 2, 9332, 9333, 7, 85, 2, 2, 9333, 9334, 7, 82, 2, 2, 9334, 9335, 7, 71, 2, 2, 9335, 9336, 7, 80, 2, 2, 9336, 9337, 7, 70, 2, 2, 9337, 1490, 3, 2, 2, 2, 9338, 9339, 7, 85, 2, 2, 9339, 9340, 7, 91, 2, 2, 9340, 9341, 7, 79, 2, 2, 9341, 9342, 7, 79, 2, 2, 9342, 9343, 7, 71, 2, 2, 9343, 9344, 7, 86, 2, 2, 9344, 9345, 7, 84, 2, 2, 9345, 9346, 7, 75, 2, 2, 9346, 9347, 7, 69, 2, 2, 9347, 1492, 3, 2, 2, 2, 9348, 9349, 7, 85, 2, 2, 9349, 9350, 7, 91, 2, 2, 9350, 9351, 7, 80, 2, 2, 9351, 9352, 7, 69, 2, 2, 9352, 9353, 7, 74, 2, 2, 9353, 9354, 7, 84, 2, 2, 9354, 9355, 7, 81, 2, 2, 9355, 9356, 7, 80, 2, 2, 9356, 9357, 7, 81, 2, 2, 9357, 9358, 7, 87, 2, 2, 9358, 9359, 7, 85, 2, 2, 9359, 9360, 7, 97, 2, 2, 9360, 9361, 7, 69, 2, 2, 9361, 9362, 7, 81, 2, 2, 9362, 9363, 7, 79, 2, 2, 9363, 9364, 7, 79, 2, 2, 9364, 9365, 7, 75, 2, 2, 9365, 9366, 7, 86, 2, 2, 9366, 1494, 3, 2, 2, 2, 9367, 9368, 7, 85, 2, 2, 9368, 9369, 7, 91, 2, 2, 9369, 9370, 7, 80, 2, 2, 9370, 9371, 7, 81, 2, 2, 9371, 9372, 7, 80, 2, 2, 9372, 9373, 7, 91, 2, 2, 9373, 9374, 7, 79, 2, 2, 9374, 1496, 3, 2, 2, 2, 9375, 9376, 7, 85, 2, 2, 9376, 9377, 7, 91, 2, 2, 9377, 9378, 7, 85, 2, 2, 9378, 9379, 7, 86, 2, 2, 9379, 9380, 7, 71, 2, 2, 9380, 9381, 7, 79, 2, 2, 9381, 1498, 3, 2, 2, 2, 9382, 9383, 7, 86, 2, 2, 9383, 9384, 7, 67, 2, 2, 9384, 9385, 7, 77, 2, 2, 9385, 9386, 7, 71, 2, 2, 9386, 1500, 3, 2, 2, 2, 9387, 9388, 7, 86, 2, 2, 9388, 9389, 7, 67, 2, 2, 9389, 9390, 7, 84, 2, 2, 9390, 9391, 7, 73, 2, 2, 9391, 9392, 7, 71, 2, 2, 9392, 9393, 7, 86, 2, 2, 9393, 9394, 7, 97, 2, 2, 9394, 9395, 7, 84, 2, 2, 9395, 9396, 7, 71, 2, 2, 9396, 9397, 7, 69, 2, 2, 9397, 9398, 7, 81, 2, 2, 9398, 9399, 7, 88, 2, 2, 9399, 9400, 7, 71, 2, 2, 9400, 9401, 7, 84, 2, 2, 9401, 9402, 7, 91, 2, 2, 9402, 9403, 7, 97, 2, 2, 9403, 9404, 7, 86, 2, 2, 9404, 9405, 7, 75, 2, 2, 9405, 9406, 7, 79, 2, 2, 9406, 9407, 7, 71, 2, 2, 9407, 1502, 3, 2, 2, 2, 9408, 9409, 7, 86, 2, 2, 9409, 9410, 7, 68, 2, 2, 9410, 1504, 3, 2, 2, 2, 9411, 9412, 7, 86, 2, 2, 9412, 9413, 7, 71, 2, 2, 9413, 9414, 7, 90, 2, 2, 9414, 9415, 7, 86, 2, 2, 9415, 9416, 7, 75, 2, 2, 9416, 9417, 7, 79, 2, 2, 9417, 9418, 7, 67, 2, 2, 9418, 9419, 7, 73, 2, 2, 9419, 9420, 7, 71, 2, 2, 9420, 9421, 7, 97, 2, 2, 9421, 9422, 7, 81, 2, 2, 9422, 9423, 7, 80, 2, 2, 9423, 1506, 3, 2, 2, 2, 9424, 9425, 7, 86, 2, 2, 9425, 9426, 7, 74, 2, 2, 9426, 9427, 7, 84, 2, 2, 9427, 9428, 7, 81, 2, 2, 9428, 9429, 7, 89, 2, 2, 9429, 1508, 3, 2, 2, 2, 9430, 9431, 7, 86, 2, 2, 9431, 9432, 7, 75, 2, 2, 9432, 9433, 7, 71, 2, 2, 9433, 9434, 7, 85, 2, 2, 9434, 1510, 3, 2, 2, 2, 9435, 9436, 7, 86, 2, 2, 9436, 9437, 7, 75, 2, 2, 9437, 9438, 7, 79, 2, 2, 9438, 9439, 7, 71, 2, 2, 9439, 1512, 3, 2, 2, 2, 9440, 9441, 7, 86, 2, 2, 9441, 9442, 7, 75, 2, 2, 9442, 9443, 7, 79, 2, 2, 9443, 9444, 7, 71, 2, 2, 9444, 9445, 7, 81, 2, 2, 9445, 9446, 7, 87, 2, 2, 9446, 9447, 7, 86, 2, 2, 9447, 1514, 3, 2, 2, 2, 9448, 9449, 7, 86, 2, 2, 9449, 9450, 7, 75, 2, 2, 9450, 9451, 7, 79, 2, 2, 9451, 9452, 7, 71, 2, 2, 9452, 9453, 7, 84, 2, 2, 9453, 1516, 3, 2, 2, 2, 9454, 9455, 7, 86, 2, 2, 9455, 9456, 7, 75, 2, 2, 9456, 9457, 7, 80, 2, 2, 9457, 9458, 7, 91, 2, 2, 9458, 9459, 7, 75, 2, 2, 9459, 9460, 7, 80, 2, 2, 9460, 9461, 7, 86, 2, 2, 9461, 1518, 3, 2, 2, 2, 9462, 9463, 7, 86, 2, 2, 9463, 9464, 7, 81, 2, 2, 9464, 9465, 7, 84, 2, 2, 9465, 9466, 7, 80, 2, 2, 9466, 9467, 7, 97, 2, 2, 9467, 9468, 7, 82, 2, 2, 9468, 9469, 7, 67, 2, 2, 9469, 9470, 7, 73, 2, 2, 9470, 9471, 7, 71, 2, 2, 9471, 9472, 7, 97, 2, 2, 9472, 9473, 7, 70, 2, 2, 9473, 9474, 7, 71, 2, 2, 9474, 9475, 7, 86, 2, 2, 9475, 9476, 7, 71, 2, 2, 9476, 9477, 7, 69, 2, 2, 9477, 9478, 7, 86, 2, 2, 9478, 9479, 7, 75, 2, 2, 9479, 9480, 7, 81, 2, 2, 9480, 9481, 7, 80, 2, 2, 9481, 1520, 3, 2, 2, 2, 9482, 9483, 7, 86, 2, 2, 9483, 9484, 7, 84, 2, 2, 9484, 9485, 7, 67, 2, 2, 9485, 9486, 7, 80, 2, 2, 9486, 9487, 7, 85, 2, 2, 9487, 9488, 7, 72, 2, 2, 9488, 9489, 7, 81, 2, 2, 9489, 9490, 7, 84, 2, 2, 9490, 9491, 7, 79, 2, 2, 9491, 9492, 7, 97, 2, 2, 9492, 9493, 7, 80, 2, 2, 9493, 9494, 7, 81, 2, 2, 9494, 9495, 7, 75, 2, 2, 9495, 9496, 7, 85, 2, 2, 9496, 9497, 7, 71, 2, 2, 9497, 9498, 7, 97, 2, 2, 9498, 9499, 7, 89, 2, 2, 9499, 9500, 7, 81, 2, 2, 9500, 9501, 7, 84, 2, 2, 9501, 9502, 7, 70, 2, 2, 9502, 9503, 7, 85, 2, 2, 9503, 1522, 3, 2, 2, 2, 9504, 9505, 7, 86, 2, 2, 9505, 9506, 7, 84, 2, 2, 9506, 9507, 7, 75, 2, 2, 9507, 9508, 7, 82, 2, 2, 9508, 9509, 7, 78, 2, 2, 9509, 9510, 7, 71, 2, 2, 9510, 9511, 7, 97, 2, 2, 9511, 9512, 7, 70, 2, 2, 9512, 9513, 7, 71, 2, 2, 9513, 9514, 7, 85, 2, 2, 9514, 1524, 3, 2, 2, 2, 9515, 9516, 7, 86, 2, 2, 9516, 9517, 7, 84, 2, 2, 9517, 9518, 7, 75, 2, 2, 9518, 9519, 7, 82, 2, 2, 9519, 9520, 7, 78, 2, 2, 9520, 9521, 7, 71, 2, 2, 9521, 9522, 7, 97, 2, 2, 9522, 9523, 7, 70, 2, 2, 9523, 9524, 7, 71, 2, 2, 9524, 9525, 7, 85, 2, 2, 9525, 9526, 7, 97, 2, 2, 9526, 9527, 7, 53, 2, 2, 9527, 9528, 7, 77, 2, 2, 9528, 9529, 7, 71, 2, 2, 9529, 9530, 7, 91, 2, 2, 9530, 1526, 3, 2, 2, 2, 9531, 9532, 7, 86, 2, 2, 9532, 9533, 7, 84, 2, 2, 9533, 9534, 7, 87, 2, 2, 9534, 9535, 7, 85, 2, 2, 9535, 9536, 7, 86, 2, 2, 9536, 9537, 7, 89, 2, 2, 9537, 9538, 7, 81, 2, 2, 9538, 9539, 7, 84, 2, 2, 9539, 9540, 7, 86, 2, 2, 9540, 9541, 7, 74, 2, 2, 9541, 9542, 7, 91, 2, 2, 9542, 1528, 3, 2, 2, 2, 9543, 9544, 7, 86, 2, 2, 9544, 9545, 7, 84, 2, 2, 9545, 9546, 7, 91, 2, 2, 9546, 1530, 3, 2, 2, 2, 9547, 9548, 7, 86, 2, 2, 9548, 9549, 7, 85, 2, 2, 9549, 9550, 7, 83, 2, 2, 9550, 9551, 7, 78, 2, 2, 9551, 1532, 3, 2, 2, 2, 9552, 9553, 7, 86, 2, 2, 9553, 9554, 7, 89, 2, 2, 9554, 9555, 7, 81, 2, 2, 9555, 9556, 7, 97, 2, 2, 9556, 9557, 7, 70, 2, 2, 9557, 9558, 7, 75, 2, 2, 9558, 9559, 7, 73, 2, 2, 9559, 9560, 7, 75, 2, 2, 9560, 9561, 7, 86, 2, 2, 9561, 9562, 7, 97, 2, 2, 9562, 9563, 7, 91, 2, 2, 9563, 9564, 7, 71, 2, 2, 9564, 9565, 7, 67, 2, 2, 9565, 9566, 7, 84, 2, 2, 9566, 9567, 7, 97, 2, 2, 9567, 9568, 7, 69, 2, 2, 9568, 9569, 7, 87, 2, 2, 9569, 9570, 7, 86, 2, 2, 9570, 9571, 7, 81, 2, 2, 9571, 9572, 7, 72, 2, 2, 9572, 9573, 7, 72, 2, 2, 9573, 1534, 3, 2, 2, 2, 9574, 9575, 7, 86, 2, 2, 9575, 9576, 7, 91, 2, 2, 9576, 9577, 7, 82, 2, 2, 9577, 9578, 7, 71, 2, 2, 9578, 1536, 3, 2, 2, 2, 9579, 9580, 7, 86, 2, 2, 9580, 9581, 7, 91, 2, 2, 9581, 9582, 7, 82, 2, 2, 9582, 9583, 7, 71, 2, 2, 9583, 9584, 7, 97, 2, 2, 9584, 9585, 7, 89, 2, 2, 9585, 9586, 7, 67, 2, 2, 9586, 9587, 7, 84, 2, 2, 9587, 9588, 7, 80, 2, 2, 9588, 9589, 7, 75, 2, 2, 9589, 9590, 7, 80, 2, 2, 9590, 9591, 7, 73, 2, 2, 9591, 1538, 3, 2, 2, 2, 9592, 9593, 7, 87, 2, 2, 9593, 9594, 7, 80, 2, 2, 9594, 9595, 7, 68, 2, 2, 9595, 9596, 7, 81, 2, 2, 9596, 9597, 7, 87, 2, 2, 9597, 9598, 7, 80, 2, 2, 9598, 9599, 7, 70, 2, 2, 9599, 9600, 7, 71, 2, 2, 9600, 9601, 7, 70, 2, 2, 9601, 1540, 3, 2, 2, 2, 9602, 9603, 7, 87, 2, 2, 9603, 9604, 7, 80, 2, 2, 9604, 9605, 7, 69, 2, 2, 9605, 9606, 7, 81, 2, 2, 9606, 9607, 7, 79, 2, 2, 9607, 9608, 7, 79, 2, 2, 9608, 9609, 7, 75, 2, 2, 9609, 9610, 7, 86, 2, 2, 9610, 9611, 7, 86, 2, 2, 9611, 9612, 7, 71, 2, 2, 9612, 9613, 7, 70, 2, 2, 9613, 1542, 3, 2, 2, 2, 9614, 9615, 7, 87, 2, 2, 9615, 9616, 7, 80, 2, 2, 9616, 9617, 7, 77, 2, 2, 9617, 9618, 7, 80, 2, 2, 9618, 9619, 7, 81, 2, 2, 9619, 9620, 7, 89, 2, 2, 9620, 9621, 7, 80, 2, 2, 9621, 1544, 3, 2, 2, 2, 9622, 9623, 7, 87, 2, 2, 9623, 9624, 7, 80, 2, 2, 9624, 9625, 7, 78, 2, 2, 9625, 9626, 7, 75, 2, 2, 9626, 9627, 7, 79, 2, 2, 9627, 9628, 7, 75, 2, 2, 9628, 9629, 7, 86, 2, 2, 9629, 9630, 7, 71, 2, 2, 9630, 9631, 7, 70, 2, 2, 9631, 1546, 3, 2, 2, 2, 9632, 9633, 7, 87, 2, 2, 9633, 9634, 7, 81, 2, 2, 9634, 9635, 7, 89, 2, 2, 9635, 1548, 3, 2, 2, 2, 9636, 9637, 7, 87, 2, 2, 9637, 9638, 7, 85, 2, 2, 9638, 9639, 7, 75, 2, 2, 9639, 9640, 7, 80, 2, 2, 9640, 9641, 7, 73, 2, 2, 9641, 1550, 3, 2, 2, 2, 9642, 9643, 7, 88, 2, 2, 9643, 9644, 7, 67, 2, 2, 9644, 9645, 7, 78, 2, 2, 9645, 9646, 7, 75, 2, 2, 9646, 9647, 7, 70, 2, 2, 9647, 9648, 7, 97, 2, 2, 9648, 9649, 7, 90, 2, 2, 9649, 9650, 7, 79, 2, 2, 9650, 9651, 7, 78, 2, 2, 9651, 1552, 3, 2, 2, 2, 9652, 9653, 7, 88, 2, 2, 9653, 9654, 7, 67, 2, 2, 9654, 9655, 7, 78, 2, 2, 9655, 9656, 7, 75, 2, 2, 9656, 9657, 7, 70, 2, 2, 9657, 9658, 7, 67, 2, 2, 9658, 9659, 7, 86, 2, 2, 9659, 9660, 7, 75, 2, 2, 9660, 9661, 7, 81, 2, 2, 9661, 9662, 7, 80, 2, 2, 9662, 1554, 3, 2, 2, 2, 9663, 9664, 7, 88, 2, 2, 9664, 9665, 7, 67, 2, 2, 9665, 9666, 7, 78, 2, 2, 9666, 9667, 7, 87, 2, 2, 9667, 9668, 7, 71, 2, 2, 9668, 1556, 3, 2, 2, 2, 9669, 9670, 7, 88, 2, 2, 9670, 9671, 7, 67, 2, 2, 9671, 9672, 7, 84, 2, 2, 9672, 1558, 3, 2, 2, 2, 9673, 9674, 7, 88, 2, 2, 9674, 9675, 7, 67, 2, 2, 9675, 9676, 7, 84, 2, 2, 9676, 9677, 7, 82, 2, 2, 9677, 1560, 3, 2, 2, 2, 9678, 9679, 7, 88, 2, 2, 9679, 9680, 7, 75, 2, 2, 9680, 9681, 7, 71, 2, 2, 9681, 9682, 7, 89, 2, 2, 9682, 9683, 7, 97, 2, 2, 9683, 9684, 7, 79, 2, 2, 9684, 9685, 7, 71, 2, 2, 9685, 9686, 7, 86, 2, 2, 9686, 9687, 7, 67, 2, 2, 9687, 9688, 7, 70, 2, 2, 9688, 9689, 7, 67, 2, 2, 9689, 9690, 7, 86, 2, 2, 9690, 9691, 7, 67, 2, 2, 9691, 1562, 3, 2, 2, 2, 9692, 9693, 7, 88, 2, 2, 9693, 9694, 7, 75, 2, 2, 9694, 9695, 7, 71, 2, 2, 9695, 9696, 7, 89, 2, 2, 9696, 9697, 7, 85, 2, 2, 9697, 1564, 3, 2, 2, 2, 9698, 9699, 7, 89, 2, 2, 9699, 9700, 7, 67, 2, 2, 9700, 9701, 7, 75, 2, 2, 9701, 9702, 7, 86, 2, 2, 9702, 1566, 3, 2, 2, 2, 9703, 9704, 7, 89, 2, 2, 9704, 9705, 7, 71, 2, 2, 9705, 9706, 7, 78, 2, 2, 9706, 9707, 7, 78, 2, 2, 9707, 9708, 7, 97, 2, 2, 9708, 9709, 7, 72, 2, 2, 9709, 9710, 7, 81, 2, 2, 9710, 9711, 7, 84, 2, 2, 9711, 9712, 7, 79, 2, 2, 9712, 9713, 7, 71, 2, 2, 9713, 9714, 7, 70, 2, 2, 9714, 9715, 7, 97, 2, 2, 9715, 9716, 7, 90, 2, 2, 9716, 9717, 7, 79, 2, 2, 9717, 9718, 7, 78, 2, 2, 9718, 1568, 3, 2, 2, 2, 9719, 9720, 7, 89, 2, 2, 9720, 9721, 7, 75, 2, 2, 9721, 9722, 7, 86, 2, 2, 9722, 9723, 7, 74, 2, 2, 9723, 9724, 7, 81, 2, 2, 9724, 9725, 7, 87, 2, 2, 9725, 9726, 7, 86, 2, 2, 9726, 9727, 7, 97, 2, 2, 9727, 9728, 7, 67, 2, 2, 9728, 9729, 7, 84, 2, 2, 9729, 9730, 7, 84, 2, 2, 9730, 9731, 7, 67, 2, 2, 9731, 9732, 7, 91, 2, 2, 9732, 9733, 7, 97, 2, 2, 9733, 9734, 7, 89, 2, 2, 9734, 9735, 7, 84, 2, 2, 9735, 9736, 7, 67, 2, 2, 9736, 9737, 7, 82, 2, 2, 9737, 9738, 7, 82, 2, 2, 9738, 9739, 7, 71, 2, 2, 9739, 9740, 7, 84, 2, 2, 9740, 1570, 3, 2, 2, 2, 9741, 9742, 7, 89, 2, 2, 9742, 9743, 7, 81, 2, 2, 9743, 9744, 7, 84, 2, 2, 9744, 9745, 7, 77, 2, 2, 9745, 1572, 3, 2, 2, 2, 9746, 9747, 7, 89, 2, 2, 9747, 9748, 7, 81, 2, 2, 9748, 9749, 7, 84, 2, 2, 9749, 9750, 7, 77, 2, 2, 9750, 9751, 7, 78, 2, 2, 9751, 9752, 7, 81, 2, 2, 9752, 9753, 7, 67, 2, 2, 9753, 9754, 7, 70, 2, 2, 9754, 1574, 3, 2, 2, 2, 9755, 9756, 7, 90, 2, 2, 9756, 9757, 7, 79, 2, 2, 9757, 9758, 7, 78, 2, 2, 9758, 1576, 3, 2, 2, 2, 9759, 9760, 7, 90, 2, 2, 9760, 9761, 7, 79, 2, 2, 9761, 9762, 7, 78, 2, 2, 9762, 9763, 7, 70, 2, 2, 9763, 9764, 7, 67, 2, 2, 9764, 9765, 7, 86, 2, 2, 9765, 9766, 7, 67, 2, 2, 9766, 1578, 3, 2, 2, 2, 9767, 9768, 7, 90, 2, 2, 9768, 9769, 7, 79, 2, 2, 9769, 9770, 7, 78, 2, 2, 9770, 9771, 7, 80, 2, 2, 9771, 9772, 7, 67, 2, 2, 9772, 9773, 7, 79, 2, 2, 9773, 9774, 7, 71, 2, 2, 9774, 9775, 7, 85, 2, 2, 9775, 9776, 7, 82, 2, 2, 9776, 9777, 7, 67, 2, 2, 9777, 9778, 7, 69, 2, 2, 9778, 9779, 7, 71, 2, 2, 9779, 9780, 7, 85, 2, 2, 9780, 1580, 3, 2, 2, 2, 9781, 9782, 7, 90, 2, 2, 9782, 9783, 7, 79, 2, 2, 9783, 9784, 7, 78, 2, 2, 9784, 9785, 7, 85, 2, 2, 9785, 9786, 7, 69, 2, 2, 9786, 9787, 7, 74, 2, 2, 9787, 9788, 7, 71, 2, 2, 9788, 9789, 7, 79, 2, 2, 9789, 9790, 7, 67, 2, 2, 9790, 1582, 3, 2, 2, 2, 9791, 9792, 7, 90, 2, 2, 9792, 9793, 7, 85, 2, 2, 9793, 9794, 7, 75, 2, 2, 9794, 9795, 7, 80, 2, 2, 9795, 9796, 7, 75, 2, 2, 9796, 9797, 7, 78, 2, 2, 9797, 1584, 3, 2, 2, 2, 9798, 9799, 7, 38, 2, 2, 9799, 9800, 7, 67, 2, 2, 9800, 9801, 7, 69, 2, 2, 9801, 9802, 7, 86, 2, 2, 9802, 9803, 7, 75, 2, 2, 9803, 9804, 7, 81, 2, 2, 9804, 9805, 7, 80, 2, 2, 9805, 1586, 3, 2, 2, 2, 9806, 9808, 9, 7, 2, 2, 9807, 9806, 3, 2, 2, 2, 9808, 9809, 3, 2, 2, 2, 9809, 9807, 3, 2, 2, 2, 9809, 9810, 3, 2, 2, 2, 9810, 9811, 3, 2, 2, 2, 9811, 9812, 8, 794, 2, 2, 9812, 1588, 3, 2, 2, 2, 9813, 9814, 7, 49, 2, 2, 9814, 9815, 7, 44, 2, 2, 9815, 9820, 3, 2, 2, 2, 9816, 9819, 5, 1589, 795, 2, 9817, 9819, 11, 2, 2, 2, 9818, 9816, 3, 2, 2, 2, 9818, 9817, 3, 2, 2, 2, 9819, 9822, 3, 2, 2, 2, 9820, 9821, 3, 2, 2, 2, 9820, 9818, 3, 2, 2, 2, 9821, 9823, 3, 2, 2, 2, 9822, 9820, 3, 2, 2, 2, 9823, 9824, 7, 44, 2, 2, 9824, 9825, 7, 49, 2, 2, 9825, 9826, 3, 2, 2, 2, 9826, 9827, 8, 795, 3, 2, 9827, 1590, 3, 2, 2, 2, 9828, 9829, 7, 47, 2, 2, 9829, 9830, 7, 47, 2, 2, 9830, 9834, 3, 2, 2, 2, 9831, 9833, 10, 8, 2, 2, 9832, 9831, 3, 2, 2, 2, 9833, 9836, 3, 2, 2, 2, 9834, 9832, 3, 2, 2, 2, 9834, 9835, 3, 2, 2, 2, 9835, 9837, 3, 2, 2, 2, 9836, 9834, 3, 2, 2, 2, 9837, 9838, 8, 796, 3, 2, 9838, 1592, 3, 2, 2, 2, 9839, 9841, 7, 36, 2, 2, 9840, 9842, 10, 5, 2, 2, 9841, 9840, 3, 2, 2, 2, 9842, 9843, 3, 2, 2, 2, 9843, 9841, 3, 2, 2, 2, 9843, 9844, 3, 2, 2, 2, 9844, 9845, 3, 2, 2, 2, 9845, 9846, 7, 36, 2, 2, 9846, 1594, 3, 2, 2, 2, 9847, 9848, 7, 41, 2, 2, 9848, 1596, 3, 2, 2, 2, 9849, 9851, 7, 93, 2, 2, 9850, 9852, 10, 9, 2, 2, 9851, 9850, 3, 2, 2, 2, 9852, 9853, 3, 2, 2, 2, 9853, 9851, 3, 2, 2, 2, 9853, 9854, 3, 2, 2, 2, 9854, 9855, 3, 2, 2, 2, 9855, 9856, 7, 95, 2, 2, 9856, 1598, 3, 2, 2, 2, 9857, 9860, 7, 66, 2, 2, 9858, 9861, 9, 10, 2, 2, 9859, 9861, 5, 1693, 847, 2, 9860, 9858, 3, 2, 2, 2, 9860, 9859, 3, 2, 2, 2, 9861, 9862, 3, 2, 2, 2, 9862, 9860, 3, 2, 2, 2, 9862, 9863, 3, 2, 2, 2, 9863, 1600, 3, 2, 2, 2, 9864, 9866, 5, 1691, 846, 2, 9865, 9864, 3, 2, 2, 2, 9866, 9867, 3, 2, 2, 2, 9867, 9865, 3, 2, 2, 2, 9867, 9868, 3, 2, 2, 2, 9868, 1602, 3, 2, 2, 2, 9869, 9872, 9, 11, 2, 2, 9870, 9872, 5, 1693, 847, 2, 9871, 9869, 3, 2, 2, 2, 9871, 9870, 3, 2, 2, 2, 9872, 9877, 3, 2, 2, 2, 9873, 9876, 9, 10, 2, 2, 9874, 9876, 5, 1693, 847, 2, 9875, 9873, 3, 2, 2, 2, 9875, 9874, 3, 2, 2, 2, 9876, 9879, 3, 2, 2, 2, 9877, 9875, 3, 2, 2, 2, 9877, 9878, 3, 2, 2, 2, 9878, 1604, 3, 2, 2, 2, 9879, 9877, 3, 2, 2, 2, 9880, 9881, 7, 41, 2, 2, 9881, 9883, 9, 6, 2, 2, 9882, 9884, 9, 6, 2, 2, 9883, 9882, 3, 2, 2, 2, 9884, 9885, 3, 2, 2, 2, 9885, 9883, 3, 2, 2, 2, 9885, 9886, 3, 2, 2, 2, 9886, 9887, 3, 2, 2, 2, 9887, 9888, 9, 4, 2, 2, 9888, 9889, 3, 2, 2, 2, 9889, 9890, 7, 49, 2, 2, 9890, 9891, 7, 49, 2, 2, 9891, 9906, 3, 2, 2, 2, 9892, 9894, 9, 6, 2, 2, 9893, 9892, 3, 2, 2, 2, 9894, 9895, 3, 2, 2, 2, 9895, 9893, 3, 2, 2, 2, 9895, 9896, 3, 2, 2, 2, 9896, 9897, 3, 2, 2, 2, 9897, 9904, 9, 12, 2, 2, 9898, 9900, 9, 6, 2, 2, 9899, 9898, 3, 2, 2, 2, 9900, 9901, 3, 2, 2, 2, 9901, 9899, 3, 2, 2, 2, 9901, 9902, 3, 2, 2, 2, 9902, 9904, 3, 2, 2, 2, 9903, 9893, 3, 2, 2, 2, 9903, 9899, 3, 2, 2, 2, 9904, 9907, 3, 2, 2, 2, 9905, 9907, 5, 329, 165, 2, 9906, 9903, 3, 2, 2, 2, 9906, 9905, 3, 2, 2, 2, 9907, 9908, 3, 2, 2, 2, 9908, 9909, 9, 4, 2, 2, 9909, 9910, 5, 1601, 801, 2, 9910, 9911, 7, 41, 2, 2, 9911, 1606, 3, 2, 2, 2, 9912, 9927, 7, 41, 2, 2, 9913, 9915, 9, 6, 2, 2, 9914, 9913, 3, 2, 2, 2, 9915, 9916, 3, 2, 2, 2, 9916, 9914, 3, 2, 2, 2, 9916, 9917, 3, 2, 2, 2, 9917, 9918, 3, 2, 2, 2, 9918, 9925, 9, 12, 2, 2, 9919, 9921, 9, 6, 2, 2, 9920, 9919, 3, 2, 2, 2, 9921, 9922, 3, 2, 2, 2, 9922, 9920, 3, 2, 2, 2, 9922, 9923, 3, 2, 2, 2, 9923, 9925, 3, 2, 2, 2, 9924, 9914, 3, 2, 2, 2, 9924, 9920, 3, 2, 2, 2, 9925, 9928, 3, 2, 2, 2, 9926, 9928, 5, 329, 165, 2, 9927, 9924, 3, 2, 2, 2, 9927, 9926, 3, 2, 2, 2, 9928, 9929, 3, 2, 2, 2, 9929, 9930, 9, 4, 2, 2, 9930, 9931, 5, 1601, 801, 2, 9931, 9932, 3, 2, 2, 2, 9932, 9933, 7, 41, 2, 2, 9933, 1608, 3, 2, 2, 2, 9934, 9936, 7, 80, 2, 2, 9935, 9934, 3, 2, 2, 2, 9935, 9936, 3, 2, 2, 2, 9936, 9937, 3, 2, 2, 2, 9937, 9943, 7, 41, 2, 2, 9938, 9942, 10, 2, 2, 2, 9939, 9940, 7, 41, 2, 2, 9940, 9942, 7, 41, 2, 2, 9941, 9938, 3, 2, 2, 2, 9941, 9939, 3, 2, 2, 2, 9942, 9945, 3, 2, 2, 2, 9943, 9941, 3, 2, 2, 2, 9943, 9944, 3, 2, 2, 2, 9944, 9946, 3, 2, 2, 2, 9945, 9943, 3, 2, 2, 2, 9946, 9947, 7, 41, 2, 2, 9947, 1610, 3, 2, 2, 2, 9948, 9949, 7, 50, 2, 2, 9949, 9953, 7, 90, 2, 2, 9950, 9952, 5, 1689, 845, 2, 9951, 9950, 3, 2, 2, 2, 9952, 9955, 3, 2, 2, 2, 9953, 9951, 3, 2, 2, 2, 9953, 9954, 3, 2, 2, 2, 9954, 1612, 3, 2, 2, 2, 9955, 9953, 3, 2, 2, 2, 9956, 9957, 5, 1687, 844, 2, 9957, 1614, 3, 2, 2, 2, 9958, 9961, 5, 1601, 801, 2, 9959, 9961, 5, 1687, 844, 2, 9960, 9958, 3, 2, 2, 2, 9960, 9959, 3, 2, 2, 2, 9961, 9962, 3, 2, 2, 2, 9962, 9964, 7, 71, 2, 2, 9963, 9965, 9, 13, 2, 2, 9964, 9963, 3, 2, 2, 2, 9964, 9965, 3, 2, 2, 2, 9965, 9967, 3, 2, 2, 2, 9966, 9968, 5, 1691, 846, 2, 9967, 9966, 3, 2, 2, 2, 9968, 9969, 3, 2, 2, 2, 9969, 9967, 3, 2, 2, 2, 9969, 9970, 3, 2, 2, 2, 9970, 1616, 3, 2, 2, 2, 9971, 9972, 7, 63, 2, 2, 9972, 1618, 3, 2, 2, 2, 9973, 9974, 7, 64, 2, 2, 9974, 1620, 3, 2, 2, 2, 9975, 9976, 7, 62, 2, 2, 9976, 1622, 3, 2, 2, 2, 9977, 9978, 7, 35, 2, 2, 9978, 1624, 3, 2, 2, 2, 9979, 9980, 7, 45, 2, 2, 9980, 9981, 7, 63, 2, 2, 9981, 1626, 3, 2, 2, 2, 9982, 9983, 7, 47, 2, 2, 9983, 9984, 7, 63, 2, 2, 9984, 1628, 3, 2, 2, 2, 9985, 9986, 7, 44, 2, 2, 9986, 9987, 7, 63, 2, 2, 9987, 1630, 3, 2, 2, 2, 9988, 9989, 7, 49, 2, 2, 9989, 9990, 7, 63, 2, 2, 9990, 1632, 3, 2, 2, 2, 9991, 9992, 7, 39, 2, 2, 9992, 9993, 7, 63, 2, 2, 9993, 1634, 3, 2, 2, 2, 9994, 9995, 7, 40, 2, 2, 9995, 9996, 7, 63, 2, 2, 9996, 1636, 3, 2, 2, 2, 9997, 9998, 7, 96, 2, 2, 9998, 9999, 7, 63, 2, 2, 9999, 1638, 3, 2, 2, 2, 10000, 10001, 7, 126, 2, 2, 10001, 10002, 7, 63, 2, 2, 10002, 1640, 3, 2, 2, 2, 10003, 10004, 7, 126, 2, 2, 10004, 10005, 7, 126, 2, 2, 10005, 1642, 3, 2, 2, 2, 10006, 10007, 7, 48, 2, 2, 10007, 1644, 3, 2, 2, 2, 10008, 10009, 7, 97, 2, 2, 10009, 1646, 3, 2, 2, 2, 10010, 10011, 7, 66, 2, 2, 10011, 1648, 3, 2, 2, 2, 10012, 10013, 7, 37, 2, 2, 10013, 1650, 3, 2, 2, 2, 10014, 10015, 7, 38, 2, 2, 10015, 1652, 3, 2, 2, 2, 10016, 10017, 7, 42, 2, 2, 10017, 1654, 3, 2, 2, 2, 10018, 10019, 7, 43, 2, 2, 10019, 1656, 3, 2, 2, 2, 10020, 10021, 7, 46, 2, 2, 10021, 1658, 3, 2, 2, 2, 10022, 10023, 7, 61, 2, 2, 10023, 1660, 3, 2, 2, 2, 10024, 10025, 7, 60, 2, 2, 10025, 1662, 3, 2, 2, 2, 10026, 10027, 7, 44, 2, 2, 10027, 1664, 3, 2, 2, 2, 10028, 10029, 7, 49, 2, 2, 10029, 1666, 3, 2, 2, 2, 10030, 10031, 7, 39, 2, 2, 10031, 1668, 3, 2, 2, 2, 10032, 10033, 7, 45, 2, 2, 10033, 1670, 3, 2, 2, 2, 10034, 10035, 7, 47, 2, 2, 10035, 1672, 3, 2, 2, 2, 10036, 10037, 7, 128, 2, 2, 10037, 1674, 3, 2, 2, 2, 10038, 10039, 7, 126, 2, 2, 10039, 1676, 3, 2, 2, 2, 10040, 10041, 7, 40, 2, 2, 10041, 1678, 3, 2, 2, 2, 10042, 10043, 7, 96, 2, 2, 10043, 1680, 3, 2, 2, 2, 10044, 10045, 9, 14, 2, 2, 10045, 1682, 3, 2, 2, 2, 10046, 10047, 9, 3, 2, 2, 10047, 10048, 9, 3, 2, 2, 10048, 10049, 9, 3, 2, 2, 10049, 10050, 9, 3, 2, 2, 10050, 1684, 3, 2, 2, 2, 10051, 10053, 9, 15, 2, 2, 10052, 10051, 3, 2, 2, 2, 10052, 10053, 3, 2, 2, 2, 10053, 10055, 3, 2, 2, 2, 10054, 10056, 9, 15, 2, 2, 10055, 10054, 3, 2, 2, 2, 10055, 10056, 3, 2, 2, 2, 10056, 10057, 3, 2, 2, 2, 10057, 10058, 9, 15, 2, 2, 10058, 1686, 3, 2, 2, 2, 10059, 10061, 5, 1691, 846, 2, 10060, 10059, 3, 2, 2, 2, 10061, 10062, 3, 2, 2, 2, 10062, 10060, 3, 2, 2, 2, 10062, 10063, 3, 2, 2, 2, 10063, 10064, 3, 2, 2, 2, 10064, 10066, 7, 48, 2, 2, 10065, 10067, 5, 1691, 846, 2, 10066, 10065, 3, 2, 2, 2, 10067, 10068, 3, 2, 2, 2, 10068, 10066, 3, 2, 2, 2, 10068, 10069, 3, 2, 2, 2, 10069, 10084, 3, 2, 2, 2, 10070, 10072, 5, 1691, 846, 2, 10071, 10070, 3, 2, 2, 2, 10072, 10073, 3, 2, 2, 2, 10073, 10071, 3, 2, 2, 2, 10073, 10074, 3, 2, 2, 2, 10074, 10075, 3, 2, 2, 2, 10075, 10076, 7, 48, 2, 2, 10076, 10084, 3, 2, 2, 2, 10077, 10079, 7, 48, 2, 2, 10078, 10080, 5, 1691, 846, 2, 10079, 10078, 3, 2, 2, 2, 10080, 10081, 3, 2, 2, 2, 10081, 10079, 3, 2, 2, 2, 10081, 10082, 3, 2, 2, 2, 10082, 10084, 3, 2, 2, 2, 10083, 10060, 3, 2, 2, 2, 10083, 10071, 3, 2, 2, 2, 10083, 10077, 3, 2, 2, 2, 10084, 1688, 3, 2, 2, 2, 10085, 10086, 9, 3, 2, 2, 10086, 1690, 3, 2, 2, 2, 10087, 10088, 9, 15, 2, 2, 10088, 1692, 3, 2, 2, 2, 10089, 10090, 9, 16, 2, 2, 10090, 1694, 3, 2, 2, 2, 77, 2, 2391, 2843, 3265, 3275, 3278, 3281, 3284, 3287, 3290, 3294, 3297, 3300, 3303, 3307, 3310, 3313, 3316, 3320, 3323, 3326, 3329, 3333, 3336, 3339, 3342, 3346, 3349, 3352, 3355, 3359, 3362, 3365, 3368, 3372, 3375, 3378, 3381, 3384, 5921, 9809, 9818, 9820, 9834, 9843, 9853, 9860, 9862, 9867, 9871, 9875, 9877, 9885, 9895, 9901, 9903, 9906, 9916, 9922, 9924, 9927, 9935, 9941, 9943, 9953, 9960, 9964, 9969, 10052, 10055, 10062, 10068, 10073, 10081, 10083, 4, 8, 2, 2, 2, 3, 2] \ No newline at end of file diff --git a/src/grammar/tsql/.antlr/TSqlParser.interp b/src/grammar/tsql/.antlr/TSqlParser.interp new file mode 100644 index 0000000..c495072 --- /dev/null +++ b/src/grammar/tsql/.antlr/TSqlParser.interp @@ -0,0 +1,2178 @@ +token literal names: +null +'ABSENT' +'ADD' +'AES' +'ALL' +'ALLOW_CONNECTIONS' +'ALLOW_MULTIPLE_EVENT_LOSS' +'ALLOW_SINGLE_EVENT_LOSS' +'ALTER' +'AND' +'ANONYMOUS' +'ANY' +'APPEND' +'APPLICATION' +'AS' +'ASC' +'ASYMMETRIC' +'ASYNCHRONOUS_COMMIT' +'AUTHORIZATION' +'AUTHENTICATION' +'AUTOMATED_BACKUP_PREFERENCE' +'AUTOMATIC' +'AVAILABILITY_MODE' +'\\' +'BACKUP' +'BEFORE' +'BEGIN' +'BETWEEN' +'BLOCK' +'BLOCKSIZE' +'BLOCKING_HIERARCHY' +'BREAK' +'BROWSE' +'BUFFER' +'BUFFERCOUNT' +'BULK' +'BY' +'CACHE' +'CALLED' +'CASCADE' +'CASE' +'CERTIFICATE' +'CHANGETABLE' +'CHANGES' +'CHECK' +'CHECKPOINT' +'CHECK_POLICY' +'CHECK_EXPIRATION' +'CLASSIFIER_FUNCTION' +'CLOSE' +'CLUSTER' +'CLUSTERED' +'COALESCE' +'COLLATE' +'COLUMN' +'COMPRESSION' +'COMMIT' +'COMPUTE' +'CONFIGURATION' +'CONSTRAINT' +'CONTAINMENT' +'CONTAINS' +'CONTAINSTABLE' +'CONTEXT' +'CONTINUE' +'CONTINUE_AFTER_ERROR' +'CONTRACT' +'CONTRACT_NAME' +'CONVERSATION' +null +'COPY_ONLY' +'CREATE' +'CROSS' +'CURRENT' +'CURRENT_DATE' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'CURRENT_USER' +'CURSOR' +'CYCLE' +'DATA_COMPRESSION' +'DATA_SOURCE' +'DATABASE' +'DATABASE_MIRRORING' +'DBCC' +'DEALLOCATE' +'DECLARE' +'DEFAULT' +'DEFAULT_DATABASE' +'DEFAULT_SCHEMA' +'DELETE' +'DENY' +'DESC' +'DIAGNOSTICS' +'DIFFERENTIAL' +'DISK' +'DISTINCT' +'DISTRIBUTED' +'DOUBLE' +'\\\\' +'//' +'DROP' +'DTC_SUPPORT' +'DUMP' +'ELSE' +'ENABLED' +'END' +'ENDPOINT' +'ERRLVL' +'ESCAPE' +'ERROR' +'EVENT' +null +'EVENT_RETENTION_MODE' +'EXCEPT' +'EXECUTABLE_FILE' +null +'EXISTS' +'EXPIREDATE' +'EXIT' +'EXTENSION' +'EXTERNAL' +'EXTERNAL_ACCESS' +'FAILOVER' +'FAILURECONDITIONLEVEL' +'FAN_IN' +'FETCH' +'FILE' +'FILENAME' +'FILLFACTOR' +'FILE_SNAPSHOT' +'FOR' +'FORCESEEK' +'FORCE_SERVICE_ALLOW_DATA_LOSS' +'FOREIGN' +'FREETEXT' +'FREETEXTTABLE' +'FROM' +'FULL' +'FUNCTION' +'GET' +'GOTO' +'GOVERNOR' +'GRANT' +'GROUP' +'HAVING' +'HASHED' +'HEALTHCHECKTIMEOUT' +'IDENTITY' +'IDENTITYCOL' +'IDENTITY_INSERT' +'IF' +'IIF' +'IN' +'INCLUDE' +'INCREMENT' +'INDEX' +'INFINITE' +'INIT' +'INNER' +'INSERT' +'INSTEAD' +'INTERSECT' +'INTO' +null +null +'IS' +'ISNULL' +'JOIN' +'KERBEROS' +'KEY' +'KEY_PATH' +'KEY_STORE_PROVIDER_NAME' +'KILL' +'LANGUAGE' +'LEFT' +'LIBRARY' +'LIFETIME' +'LIKE' +'LINENO' +'LINUX' +'LISTENER_IP' +'LISTENER_PORT' +'LOAD' +'LOCAL_SERVICE_NAME' +'LOG' +'MATCHED' +'MASTER' +'MAX_MEMORY' +'MAXTRANSFER' +'MAXVALUE' +'MAX_DISPATCH_LATENCY' +'MAX_EVENT_SIZE' +'MAX_SIZE' +'MAX_OUTSTANDING_IO_PER_VOLUME' +'MEDIADESCRIPTION' +'MEDIANAME' +'MEMBER' +'MEMORY_PARTITION_MODE' +'MERGE' +'MESSAGE_FORWARDING' +'MESSAGE_FORWARD_SIZE' +'MINVALUE' +'MIRROR' +'MUST_CHANGE' +'NATIONAL' +'NEGOTIATE' +'NOCHECK' +'NOFORMAT' +'NOINIT' +'NONCLUSTERED' +'NONE' +'NOREWIND' +'NOSKIP' +'NOUNLOAD' +'NO_CHECKSUM' +'NO_COMPRESSION' +'NO_EVENT_LOSS' +'NOT' +'NOTIFICATION' +'NTLM' +'NULL' +'NULLIF' +'OF' +'OFF' +'OFFSETS' +'OLD_PASSWORD' +'ON' +'ON_FAILURE' +'OPEN' +'OPENDATASOURCE' +'OPENQUERY' +'OPENROWSET' +'OPENXML' +'OPTION' +'OR' +'ORDER' +'OUTER' +'OVER' +'PAGE' +'PARAM_NODE' +'PARTIAL' +'PASSWORD' +'PERCENT' +'PERMISSION_SET' +'PER_CPU' +'PER_DB' +'PER_NODE' +'PIVOT' +'PLAN' +'PLATFORM' +'POLICY' +'PRECISION' +'PREDICATE' +'PRIMARY' +'PRINT' +'PROC' +'PROCEDURE' +'PROCESS' +'PUBLIC' +'PYTHON' +'R' +'RAISERROR' +'RAW' +'READ' +'READTEXT' +'READ_WRITE_FILEGROUPS' +'RECONFIGURE' +'REFERENCES' +'REGENERATE' +'RELATED_CONVERSATION' +'RELATED_CONVERSATION_GROUP' +'REPLICATION' +'REQUIRED' +'RESET' +'RESTART' +'RESTORE' +'RESTRICT' +'RESUME' +'RETAINDAYS' +'RETURN' +'RETURNS' +'REVERT' +'REVOKE' +'REWIND' +'RIGHT' +'ROLLBACK' +'ROLE' +'ROWCOUNT' +'ROWGUIDCOL' +'RSA_512' +'RSA_1024' +'RSA_2048' +'RSA_3072' +'RSA_4096' +'SAFETY' +'RULE' +'SAFE' +'SAVE' +'SCHEDULER' +'SCHEMA' +'SCHEME' +'SECURITYAUDIT' +'SELECT' +'SEMANTICKEYPHRASETABLE' +'SEMANTICSIMILARITYDETAILSTABLE' +'SEMANTICSIMILARITYTABLE' +'SERVER' +'SERVICE' +'SERVICE_BROKER' +'SERVICE_NAME' +'SESSION' +'SESSION_USER' +'SET' +'SETUSER' +'SHUTDOWN' +'SID' +'SKIP' +'SOFTNUMA' +'SOME' +'SOURCE' +'SPECIFICATION' +'SPLIT' +'SQLDUMPERFLAGS' +'SQLDUMPERPATH' +'SQLDUMPERTIMEOUTS' +'STATISTICS' +'STATE' +'STATS' +'START' +'STARTED' +'STARTUP_STATE' +'STOP' +'STOPPED' +'STOP_ON_ERROR' +'SUPPORTED' +'SYSTEM_USER' +'TABLE' +'TABLESAMPLE' +'TAPE' +'TARGET' +'TCP' +'TEXTSIZE' +'THEN' +'TO' +'TOP' +'TRACK_CAUSALITY' +'TRAN' +'TRANSACTION' +'TRANSFER' +'TRIGGER' +'TRUNCATE' +'TSEQUAL' +'UNCHECKED' +'UNION' +'UNIQUE' +'UNLOCK' +'UNPIVOT' +'UNSAFE' +'UPDATE' +'UPDATETEXT' +'URL' +'USE' +'USED' +'USER' +'VALUES' +'VARYING' +'VERBOSELOGGING' +'VIEW' +'VISIBILITY' +'WAITFOR' +'WHEN' +'WHERE' +'WHILE' +'WINDOWS' +'WITH' +'WITHIN' +'WITHOUT' +'WITNESS' +'WRITETEXT' +'ABSOLUTE' +'ACCENT_SENSITIVITY' +'ACTION' +'ACTIVATION' +'ACTIVE' +'ADDRESS' +'AES_128' +'AES_192' +'AES_256' +'AFFINITY' +'AFTER' +'AGGREGATE' +'ALGORITHM' +'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS' +'ALLOW_SNAPSHOT_ISOLATION' +'ALLOWED' +'ANSI_NULL_DEFAULT' +'ANSI_NULLS' +'ANSI_PADDING' +'ANSI_WARNINGS' +'APPLICATION_LOG' +'APPLY' +'ARITHABORT' +'ASSEMBLY' +'AUDIT' +'AUDIT_GUID' +'AUTO' +'AUTO_CLEANUP' +'AUTO_CLOSE' +'AUTO_CREATE_STATISTICS' +'AUTO_SHRINK' +'AUTO_UPDATE_STATISTICS' +'AUTO_UPDATE_STATISTICS_ASYNC' +'AVAILABILITY' +'AVG' +'BACKUP_PRIORITY' +'BEGIN_DIALOG' +'BIGINT' +'BINARY BASE64' +'BINARY_CHECKSUM' +'BINDING' +'BLOB_STORAGE' +'BROKER' +'BROKER_INSTANCE' +'BULK_LOGGED' +'CALLER' +'CAP_CPU_PERCENT' +null +'CATALOG' +'CATCH' +'CHANGE_RETENTION' +'CHANGE_TRACKING' +'CHECKSUM' +'CHECKSUM_AGG' +'CLEANUP' +'COLLECTION' +'COLUMN_MASTER_KEY' +'COMMITTED' +'COMPATIBILITY_LEVEL' +'CONCAT' +'CONCAT_NULL_YIELDS_NULL' +'CONTENT' +'CONTROL' +'COOKIE' +'COUNT' +'COUNT_BIG' +'COUNTER' +'CPU' +'CREATE_NEW' +'CREATION_DISPOSITION' +'CREDENTIAL' +'CRYPTOGRAPHIC' +'CURSOR_CLOSE_ON_COMMIT' +'CURSOR_DEFAULT' +'DATA' +'DATE_CORRELATION_OPTIMIZATION' +'DATEADD' +'DATEDIFF' +'DATENAME' +'DATEPART' +'DAYS' +'DB_CHAINING' +'DB_FAILOVER' +'DECRYPTION' +null +'DEFAULT_FULLTEXT_LANGUAGE' +'DEFAULT_LANGUAGE' +'DELAY' +'DELAYED_DURABILITY' +'DELETED' +'DENSE_RANK' +'DEPENDENTS' +'DES' +'DESCRIPTION' +'DESX' +'DHCP' +'DIALOG' +'DIRECTORY_NAME' +'DISABLE' +'DISABLE_BROKER' +'DISABLED' +null +'DOCUMENT' +'DYNAMIC' +'ELEMENTS' +'EMERGENCY' +'EMPTY' +'ENABLE' +'ENABLE_BROKER' +'ENCRYPTED_VALUE' +'ENCRYPTION' +'ENDPOINT_URL' +'ERROR_BROKER_CONVERSATIONS' +'EXCLUSIVE' +'EXECUTABLE' +'EXIST' +'EXPAND' +'EXPIRY_DATE' +'EXPLICIT' +'FAIL_OPERATION' +'FAILOVER_MODE' +'FAILURE' +'FAILURE_CONDITION_LEVEL' +'FAST' +'FAST_FORWARD' +'FILEGROUP' +'FILEGROWTH' +'FILEPATH' +'FILESTREAM' +'FILTER' +'FIRST' +'FIRST_VALUE' +'FOLLOWING' +'FORCE' +'FORCE_FAILOVER_ALLOW_DATA_LOSS' +'FORCED' +'FORMAT' +'FORWARD_ONLY' +'FULLSCAN' +'FULLTEXT' +'GB' +'GETDATE' +'GETUTCDATE' +'GLOBAL' +'GO' +'GROUP_MAX_REQUESTS' +'GROUPING' +'GROUPING_ID' +'HADR' +'HASH' +'HEALTH_CHECK_TIMEOUT' +'HIGH' +'HONOR_BROKER_PRIORITY' +'HOURS' +'IDENTITY_VALUE' +'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX' +'IMMEDIATE' +'IMPERSONATE' +'IMPORTANCE' +'INCLUDE_NULL_VALUES' +'INCREMENTAL' +'INITIATOR' +'INPUT' +'INSENSITIVE' +'INSERTED' +'INT' +'IP' +'ISOLATION' +'JOB' +'JSON' +'KB' +'KEEP' +'KEEPFIXED' +'KEY_SOURCE' +'KEYS' +'KEYSET' +'LAG' +'LAST' +'LAST_VALUE' +'LEAD' +'LEVEL' +'LIST' +'LISTENER' +'LISTENER_URL' +'LOB_COMPACTION' +'LOCAL' +'LOCATION' +'LOCK' +'LOCK_ESCALATION' +'LOGIN' +'LOOP' +'LOW' +'MANUAL' +'MARK' +'MATERIALIZED' +'MAX' +'MAX_CPU_PERCENT' +'MAX_DOP' +'MAX_FILES' +'MAX_IOPS_PER_VOLUME' +'MAX_MEMORY_PERCENT' +'MAX_PROCESSES' +'MAX_QUEUE_READERS' +'MAX_ROLLOVER_FILES' +'MAXDOP' +'MAXRECURSION' +'MAXSIZE' +'MB' +'MEDIUM' +'MEMORY_OPTIMIZED_DATA' +'MESSAGE' +'MIN' +'MIN_ACTIVE_ROWVERSION' +'MIN_CPU_PERCENT' +'MIN_IOPS_PER_VOLUME' +'MIN_MEMORY_PERCENT' +'MINUTES' +'MIRROR_ADDRESS' +'MIXED_PAGE_ALLOCATION' +'MODE' +'MODIFY' +'MOVE' +'MULTI_USER' +'NAME' +'NESTED_TRIGGERS' +'NEW_ACCOUNT' +'NEW_BROKER' +'NEW_PASSWORD' +'NEXT' +'NO' +'NO_TRUNCATE' +'NO_WAIT' +'NOCOUNT' +'NODES' +'NOEXPAND' +'NON_TRANSACTED_ACCESS' +'NORECOMPUTE' +'NORECOVERY' +'NOWAIT' +'NTILE' +'NUMANODE' +'NUMBER' +'NUMERIC_ROUNDABORT' +'OBJECT' +'OFFLINE' +'OFFSET' +'OLD_ACCOUNT' +'ONLINE' +'ONLY' +'OPEN_EXISTING' +'OPTIMISTIC' +'OPTIMIZE' +'OUT' +'OUTPUT' +'OVERRIDE' +'OWNER' +'PAGE_VERIFY' +'PARAMETERIZATION' +'PARTITION' +'PARTITIONS' +'PARTNER' +'PATH' +'POISON_MESSAGE_HANDLING' +'POOL' +'PORT' +'PRECEDING' +'PRIMARY_ROLE' +'PRIOR' +'PRIORITY' +'PRIORITY_LEVEL' +'PRIVATE' +'PRIVATE_KEY' +'PRIVILEGES' +'PROCEDURE_NAME' +'PROPERTY' +'PROVIDER' +'PROVIDER_KEY_NAME' +'QUERY' +'QUEUE' +'QUEUE_DELAY' +'QUOTED_IDENTIFIER' +'RANGE' +'RANK' +'RC2' +'RC4' +'RC4_128' +'READ_COMMITTED_SNAPSHOT' +'READ_ONLY' +'READ_ONLY_ROUTING_LIST' +'READ_WRITE' +'READONLY' +'REBUILD' +'RECEIVE' +'RECOMPILE' +'RECOVERY' +'RECURSIVE_TRIGGERS' +'RELATIVE' +'REMOTE' +'REMOTE_SERVICE_NAME' +'REMOVE' +'REORGANIZE' +'REPEATABLE' +'REPLICA' +'REQUEST_MAX_CPU_TIME_SEC' +'REQUEST_MAX_MEMORY_GRANT_PERCENT' +'REQUEST_MEMORY_GRANT_TIMEOUT_SEC' +'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT' +'RESERVE_DISK_SPACE' +'RESOURCE' +'RESOURCE_MANAGER_LOCATION' +'RESTRICTED_USER' +'RETENTION' +'ROBUST' +'ROOT' +'ROUTE' +'ROW' +'ROW_NUMBER' +'ROWGUID' +'ROWS' +'SAMPLE' +'SCHEMABINDING' +'SCOPED' +'SCROLL' +'SCROLL_LOCKS' +'SEARCH' +'SECONDARY' +'SECONDARY_ONLY' +'SECONDARY_ROLE' +'SECONDS' +'SECRET' +'SECURITY' +'SECURITY_LOG' +'SEEDING_MODE' +'SELF' +'SEMI_SENSITIVE' +'SEND' +'SENT' +'SEQUENCE' +'SERIALIZABLE' +'SESSION_TIMEOUT' +'SETERROR' +'SHARE' +'SHOWPLAN' +'SIGNATURE' +'SIMPLE' +'SINGLE_USER' +'SIZE' +'SMALLINT' +'SNAPSHOT' +'SPATIAL_WINDOW_MAX_CELLS' +'STANDBY' +'START_DATE' +'STATIC' +'STATS_STREAM' +'STATUS' +'STATUSONLY' +'STDEV' +'STDEVP' +'STOPLIST' +'STRING_AGG' +'STUFF' +'SUBJECT' +'SUBSCRIPTION' +'SUM' +'SUSPEND' +'SYMMETRIC' +'SYNCHRONOUS_COMMIT' +'SYNONYM' +'SYSTEM' +'TAKE' +'TARGET_RECOVERY_TIME' +'TB' +'TEXTIMAGE_ON' +'THROW' +'TIES' +'TIME' +'TIMEOUT' +'TIMER' +'TINYINT' +'TORN_PAGE_DETECTION' +'TRANSFORM_NOISE_WORDS' +'TRIPLE_DES' +'TRIPLE_DES_3KEY' +'TRUSTWORTHY' +'TRY' +'TSQL' +'TWO_DIGIT_YEAR_CUTOFF' +'TYPE' +'TYPE_WARNING' +'UNBOUNDED' +'UNCOMMITTED' +'UNKNOWN' +'UNLIMITED' +'UOW' +'USING' +'VALID_XML' +'VALIDATION' +'VALUE' +'VAR' +'VARP' +'VIEW_METADATA' +'VIEWS' +'WAIT' +'WELL_FORMED_XML' +'WITHOUT_ARRAY_WRAPPER' +'WORK' +'WORKLOAD' +'XML' +'XMLDATA' +'XMLNAMESPACES' +'XMLSCHEMA' +'XSINIL' +'$ACTION' +null +null +null +null +'\'' +null +null +null +null +null +null +null +null +null +null +'=' +'>' +'<' +'!' +'+=' +'-=' +'*=' +'/=' +'%=' +'&=' +'^=' +'|=' +'||' +'.' +'_' +'@' +'#' +'$' +'(' +')' +',' +';' +':' +'*' +'/' +'%' +'+' +'-' +'~' +'|' +'&' +'^' +null + +token symbolic names: +null +ABSENT +ADD +AES +ALL +ALLOW_CONNECTIONS +ALLOW_MULTIPLE_EVENT_LOSS +ALLOW_SINGLE_EVENT_LOSS +ALTER +AND +ANONYMOUS +ANY +APPEND +APPLICATION +AS +ASC +ASYMMETRIC +ASYNCHRONOUS_COMMIT +AUTHORIZATION +AUTHENTICATION +AUTOMATED_BACKUP_PREFERENCE +AUTOMATIC +AVAILABILITY_MODE +BACKSLASH +BACKUP +BEFORE +BEGIN +BETWEEN +BLOCK +BLOCKSIZE +BLOCKING_HIERARCHY +BREAK +BROWSE +BUFFER +BUFFERCOUNT +BULK +BY +CACHE +CALLED +CASCADE +CASE +CERTIFICATE +CHANGETABLE +CHANGES +CHECK +CHECKPOINT +CHECK_POLICY +CHECK_EXPIRATION +CLASSIFIER_FUNCTION +CLOSE +CLUSTER +CLUSTERED +COALESCE +COLLATE +COLUMN +COMPRESSION +COMMIT +COMPUTE +CONFIGURATION +CONSTRAINT +CONTAINMENT +CONTAINS +CONTAINSTABLE +CONTEXT +CONTINUE +CONTINUE_AFTER_ERROR +CONTRACT +CONTRACT_NAME +CONVERSATION +CONVERT +COPY_ONLY +CREATE +CROSS +CURRENT +CURRENT_DATE +CURRENT_TIME +CURRENT_TIMESTAMP +CURRENT_USER +CURSOR +CYCLE +DATA_COMPRESSION +DATA_SOURCE +DATABASE +DATABASE_MIRRORING +DBCC +DEALLOCATE +DECLARE +DEFAULT +DEFAULT_DATABASE +DEFAULT_SCHEMA +DELETE +DENY +DESC +DIAGNOSTICS +DIFFERENTIAL +DISK +DISTINCT +DISTRIBUTED +DOUBLE +DOUBLE_BACK_SLASH +DOUBLE_FORWARD_SLASH +DROP +DTC_SUPPORT +DUMP +ELSE +ENABLED +END +ENDPOINT +ERRLVL +ESCAPE +ERROR +EVENT +EVENTDATA +EVENT_RETENTION_MODE +EXCEPT +EXECUTABLE_FILE +EXECUTE +EXISTS +EXPIREDATE +EXIT +EXTENSION +EXTERNAL +EXTERNAL_ACCESS +FAILOVER +FAILURECONDITIONLEVEL +FAN_IN +FETCH +FILE +FILENAME +FILLFACTOR +FILE_SNAPSHOT +FOR +FORCESEEK +FORCE_SERVICE_ALLOW_DATA_LOSS +FOREIGN +FREETEXT +FREETEXTTABLE +FROM +FULL +FUNCTION +GET +GOTO +GOVERNOR +GRANT +GROUP +HAVING +HASHED +HEALTHCHECKTIMEOUT +IDENTITY +IDENTITYCOL +IDENTITY_INSERT +IF +IIF +IN +INCLUDE +INCREMENT +INDEX +INFINITE +INIT +INNER +INSERT +INSTEAD +INTERSECT +INTO +IPV4_ADDR +IPV6_ADDR +IS +ISNULL +JOIN +KERBEROS +KEY +KEY_PATH +KEY_STORE_PROVIDER_NAME +KILL +LANGUAGE +LEFT +LIBRARY +LIFETIME +LIKE +LINENO +LINUX +LISTENER_IP +LISTENER_PORT +LOAD +LOCAL_SERVICE_NAME +LOG +MATCHED +MASTER +MAX_MEMORY +MAXTRANSFER +MAXVALUE +MAX_DISPATCH_LATENCY +MAX_EVENT_SIZE +MAX_SIZE +MAX_OUTSTANDING_IO_PER_VOLUME +MEDIADESCRIPTION +MEDIANAME +MEMBER +MEMORY_PARTITION_MODE +MERGE +MESSAGE_FORWARDING +MESSAGE_FORWARD_SIZE +MINVALUE +MIRROR +MUST_CHANGE +NATIONAL +NEGOTIATE +NOCHECK +NOFORMAT +NOINIT +NONCLUSTERED +NONE +NOREWIND +NOSKIP +NOUNLOAD +NO_CHECKSUM +NO_COMPRESSION +NO_EVENT_LOSS +NOT +NOTIFICATION +NTLM +NULL +NULLIF +OF +OFF +OFFSETS +OLD_PASSWORD +ON +ON_FAILURE +OPEN +OPENDATASOURCE +OPENQUERY +OPENROWSET +OPENXML +OPTION +OR +ORDER +OUTER +OVER +PAGE +PARAM_NODE +PARTIAL +PASSWORD +PERCENT +PERMISSION_SET +PER_CPU +PER_DB +PER_NODE +PIVOT +PLAN +PLATFORM +POLICY +PRECISION +PREDICATE +PRIMARY +PRINT +PROC +PROCEDURE +PROCESS +PUBLIC +PYTHON +R +RAISERROR +RAW +READ +READTEXT +READ_WRITE_FILEGROUPS +RECONFIGURE +REFERENCES +REGENERATE +RELATED_CONVERSATION +RELATED_CONVERSATION_GROUP +REPLICATION +REQUIRED +RESET +RESTART +RESTORE +RESTRICT +RESUME +RETAINDAYS +RETURN +RETURNS +REVERT +REVOKE +REWIND +RIGHT +ROLLBACK +ROLE +ROWCOUNT +ROWGUIDCOL +RSA_512 +RSA_1024 +RSA_2048 +RSA_3072 +RSA_4096 +SAFETY +RULE +SAFE +SAVE +SCHEDULER +SCHEMA +SCHEME +SECURITYAUDIT +SELECT +SEMANTICKEYPHRASETABLE +SEMANTICSIMILARITYDETAILSTABLE +SEMANTICSIMILARITYTABLE +SERVER +SERVICE +SERVICE_BROKER +SERVICE_NAME +SESSION +SESSION_USER +SET +SETUSER +SHUTDOWN +SID +SKIP_KEYWORD +SOFTNUMA +SOME +SOURCE +SPECIFICATION +SPLIT +SQLDUMPERFLAGS +SQLDUMPERPATH +SQLDUMPERTIMEOUT +STATISTICS +STATE +STATS +START +STARTED +STARTUP_STATE +STOP +STOPPED +STOP_ON_ERROR +SUPPORTED +SYSTEM_USER +TABLE +TABLESAMPLE +TAPE +TARGET +TCP +TEXTSIZE +THEN +TO +TOP +TRACK_CAUSALITY +TRAN +TRANSACTION +TRANSFER +TRIGGER +TRUNCATE +TSEQUAL +UNCHECKED +UNION +UNIQUE +UNLOCK +UNPIVOT +UNSAFE +UPDATE +UPDATETEXT +URL +USE +USED +USER +VALUES +VARYING +VERBOSELOGGING +VIEW +VISIBILITY +WAITFOR +WHEN +WHERE +WHILE +WINDOWS +WITH +WITHIN +WITHOUT +WITNESS +WRITETEXT +ABSOLUTE +ACCENT_SENSITIVITY +ACTION +ACTIVATION +ACTIVE +ADDRESS +AES_128 +AES_192 +AES_256 +AFFINITY +AFTER +AGGREGATE +ALGORITHM +ALLOW_ENCRYPTED_VALUE_MODIFICATIONS +ALLOW_SNAPSHOT_ISOLATION +ALLOWED +ANSI_NULL_DEFAULT +ANSI_NULLS +ANSI_PADDING +ANSI_WARNINGS +APPLICATION_LOG +APPLY +ARITHABORT +ASSEMBLY +AUDIT +AUDIT_GUID +AUTO +AUTO_CLEANUP +AUTO_CLOSE +AUTO_CREATE_STATISTICS +AUTO_SHRINK +AUTO_UPDATE_STATISTICS +AUTO_UPDATE_STATISTICS_ASYNC +AVAILABILITY +AVG +BACKUP_PRIORITY +BEGIN_DIALOG +BIGINT +BINARY_BASE64 +BINARY_CHECKSUM +BINDING +BLOB_STORAGE +BROKER +BROKER_INSTANCE +BULK_LOGGED +CALLER +CAP_CPU_PERCENT +CAST +CATALOG +CATCH +CHANGE_RETENTION +CHANGE_TRACKING +CHECKSUM +CHECKSUM_AGG +CLEANUP +COLLECTION +COLUMN_MASTER_KEY +COMMITTED +COMPATIBILITY_LEVEL +CONCAT +CONCAT_NULL_YIELDS_NULL +CONTENT +CONTROL +COOKIE +COUNT +COUNT_BIG +COUNTER +CPU +CREATE_NEW +CREATION_DISPOSITION +CREDENTIAL +CRYPTOGRAPHIC +CURSOR_CLOSE_ON_COMMIT +CURSOR_DEFAULT +DATA +DATE_CORRELATION_OPTIMIZATION +DATEADD +DATEDIFF +DATENAME +DATEPART +DAYS +DB_CHAINING +DB_FAILOVER +DECRYPTION +DEFAULT_DOUBLE_QUOTE +DEFAULT_FULLTEXT_LANGUAGE +DEFAULT_LANGUAGE +DELAY +DELAYED_DURABILITY +DELETED +DENSE_RANK +DEPENDENTS +DES +DESCRIPTION +DESX +DHCP +DIALOG +DIRECTORY_NAME +DISABLE +DISABLE_BROKER +DISABLED +DISK_DRIVE +DOCUMENT +DYNAMIC +ELEMENTS +EMERGENCY +EMPTY +ENABLE +ENABLE_BROKER +ENCRYPTED_VALUE +ENCRYPTION +ENDPOINT_URL +ERROR_BROKER_CONVERSATIONS +EXCLUSIVE +EXECUTABLE +EXIST +EXPAND +EXPIRY_DATE +EXPLICIT +FAIL_OPERATION +FAILOVER_MODE +FAILURE +FAILURE_CONDITION_LEVEL +FAST +FAST_FORWARD +FILEGROUP +FILEGROWTH +FILEPATH +FILESTREAM +FILTER +FIRST +FIRST_VALUE +FOLLOWING +FORCE +FORCE_FAILOVER_ALLOW_DATA_LOSS +FORCED +FORMAT +FORWARD_ONLY +FULLSCAN +FULLTEXT +GB +GETDATE +GETUTCDATE +GLOBAL +GO +GROUP_MAX_REQUESTS +GROUPING +GROUPING_ID +HADR +HASH +HEALTH_CHECK_TIMEOUT +HIGH +HONOR_BROKER_PRIORITY +HOURS +IDENTITY_VALUE +IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX +IMMEDIATE +IMPERSONATE +IMPORTANCE +INCLUDE_NULL_VALUES +INCREMENTAL +INITIATOR +INPUT +INSENSITIVE +INSERTED +INT +IP +ISOLATION +JOB +JSON +KB +KEEP +KEEPFIXED +KEY_SOURCE +KEYS +KEYSET +LAG +LAST +LAST_VALUE +LEAD +LEVEL +LIST +LISTENER +LISTENER_URL +LOB_COMPACTION +LOCAL +LOCATION +LOCK +LOCK_ESCALATION +LOGIN +LOOP +LOW +MANUAL +MARK +MATERIALIZED +MAX +MAX_CPU_PERCENT +MAX_DOP +MAX_FILES +MAX_IOPS_PER_VOLUME +MAX_MEMORY_PERCENT +MAX_PROCESSES +MAX_QUEUE_READERS +MAX_ROLLOVER_FILES +MAXDOP +MAXRECURSION +MAXSIZE +MB +MEDIUM +MEMORY_OPTIMIZED_DATA +MESSAGE +MIN +MIN_ACTIVE_ROWVERSION +MIN_CPU_PERCENT +MIN_IOPS_PER_VOLUME +MIN_MEMORY_PERCENT +MINUTES +MIRROR_ADDRESS +MIXED_PAGE_ALLOCATION +MODE +MODIFY +MOVE +MULTI_USER +NAME +NESTED_TRIGGERS +NEW_ACCOUNT +NEW_BROKER +NEW_PASSWORD +NEXT +NO +NO_TRUNCATE +NO_WAIT +NOCOUNT +NODES +NOEXPAND +NON_TRANSACTED_ACCESS +NORECOMPUTE +NORECOVERY +NOWAIT +NTILE +NUMANODE +NUMBER +NUMERIC_ROUNDABORT +OBJECT +OFFLINE +OFFSET +OLD_ACCOUNT +ONLINE +ONLY +OPEN_EXISTING +OPTIMISTIC +OPTIMIZE +OUT +OUTPUT +OVERRIDE +OWNER +PAGE_VERIFY +PARAMETERIZATION +PARTITION +PARTITIONS +PARTNER +PATH +POISON_MESSAGE_HANDLING +POOL +PORT +PRECEDING +PRIMARY_ROLE +PRIOR +PRIORITY +PRIORITY_LEVEL +PRIVATE +PRIVATE_KEY +PRIVILEGES +PROCEDURE_NAME +PROPERTY +PROVIDER +PROVIDER_KEY_NAME +QUERY +QUEUE +QUEUE_DELAY +QUOTED_IDENTIFIER +RANGE +RANK +RC2 +RC4 +RC4_128 +READ_COMMITTED_SNAPSHOT +READ_ONLY +READ_ONLY_ROUTING_LIST +READ_WRITE +READONLY +REBUILD +RECEIVE +RECOMPILE +RECOVERY +RECURSIVE_TRIGGERS +RELATIVE +REMOTE +REMOTE_SERVICE_NAME +REMOVE +REORGANIZE +REPEATABLE +REPLICA +REQUEST_MAX_CPU_TIME_SEC +REQUEST_MAX_MEMORY_GRANT_PERCENT +REQUEST_MEMORY_GRANT_TIMEOUT_SEC +REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT +RESERVE_DISK_SPACE +RESOURCE +RESOURCE_MANAGER_LOCATION +RESTRICTED_USER +RETENTION +ROBUST +ROOT +ROUTE +ROW +ROW_NUMBER +ROWGUID +ROWS +SAMPLE +SCHEMABINDING +SCOPED +SCROLL +SCROLL_LOCKS +SEARCH +SECONDARY +SECONDARY_ONLY +SECONDARY_ROLE +SECONDS +SECRET +SECURITY +SECURITY_LOG +SEEDING_MODE +SELF +SEMI_SENSITIVE +SEND +SENT +SEQUENCE +SERIALIZABLE +SESSION_TIMEOUT +SETERROR +SHARE +SHOWPLAN +SIGNATURE +SIMPLE +SINGLE_USER +SIZE +SMALLINT +SNAPSHOT +SPATIAL_WINDOW_MAX_CELLS +STANDBY +START_DATE +STATIC +STATS_STREAM +STATUS +STATUSONLY +STDEV +STDEVP +STOPLIST +STRING_AGG +STUFF +SUBJECT +SUBSCRIPTION +SUM +SUSPEND +SYMMETRIC +SYNCHRONOUS_COMMIT +SYNONYM +SYSTEM +TAKE +TARGET_RECOVERY_TIME +TB +TEXTIMAGE_ON +THROW +TIES +TIME +TIMEOUT +TIMER +TINYINT +TORN_PAGE_DETECTION +TRANSFORM_NOISE_WORDS +TRIPLE_DES +TRIPLE_DES_3KEY +TRUSTWORTHY +TRY +TSQL +TWO_DIGIT_YEAR_CUTOFF +TYPE +TYPE_WARNING +UNBOUNDED +UNCOMMITTED +UNKNOWN +UNLIMITED +UOW +USING +VALID_XML +VALIDATION +VALUE +VAR +VARP +VIEW_METADATA +VIEWS +WAIT +WELL_FORMED_XML +WITHOUT_ARRAY_WRAPPER +WORK +WORKLOAD +XML +XMLDATA +XMLNAMESPACES +XMLSCHEMA +XSINIL +DOLLAR_ACTION +SPACE +COMMENT +LINE_COMMENT +DOUBLE_QUOTE_ID +SINGLE_QUOTE +SQUARE_BRACKET_ID +LOCAL_ID +DECIMAL +ID +QUOTED_URL +QUOTED_HOST_AND_PORT +STRING +BINARY +FLOAT +REAL +EQUAL +GREATER +LESS +EXCLAMATION +PLUS_ASSIGN +MINUS_ASSIGN +MULT_ASSIGN +DIV_ASSIGN +MOD_ASSIGN +AND_ASSIGN +XOR_ASSIGN +OR_ASSIGN +DOUBLE_BAR +DOT +UNDERLINE +AT +SHARP +DOLLAR +LR_BRACKET +RR_BRACKET +COMMA +SEMI +COLON +STAR +DIVIDE +MODULE +PLUS +MINUS +BIT_NOT +BIT_OR +BIT_AND +BIT_XOR +IPV4_OCTECT + +rule names: +tsql_file +batch +sql_clauses +sql_clause +dml_clause +ddl_clause +backup_statement +cfl_statement +block_statement +break_statement +continue_statement +goto_statement +return_statement +if_statement +throw_statement +throw_error_number +throw_message +throw_state +try_catch_statement +waitfor_statement +while_statement +print_statement +raiseerror_statement +empty_statement +another_statement +alter_application_role +create_application_role +drop_aggregate +drop_application_role +alter_assembly +alter_assembly_start +alter_assembly_clause +alter_assembly_from_clause +alter_assembly_from_clause_start +alter_assembly_drop_clause +alter_assembly_drop_multiple_files +alter_assembly_drop +alter_assembly_add_clause +alter_asssembly_add_clause_start +alter_assembly_client_file_clause +alter_assembly_file_name +alter_assembly_file_bits +alter_assembly_as +alter_assembly_with_clause +alter_assembly_with +client_assembly_specifier +assembly_option +network_file_share +network_computer +network_file_start +file_path +file_directory_path_separator +local_file +local_drive +multiple_local_files +multiple_local_file_start +create_assembly +drop_assembly +alter_asymmetric_key +alter_asymmetric_key_start +asymmetric_key_option +asymmetric_key_option_start +asymmetric_key_password_change_option +create_asymmetric_key +drop_asymmetric_key +alter_authorization +authorization_grantee +entity_to +colon_colon +alter_authorization_start +alter_authorization_for_sql_database +alter_authorization_for_azure_dw +alter_authorization_for_parallel_dw +class_type +class_type_for_sql_database +class_type_for_azure_dw +class_type_for_parallel_dw +drop_availability_group +alter_availability_group +alter_availability_group_start +alter_availability_group_options +create_or_alter_broker_priority +drop_broker_priority +alter_certificate +alter_column_encryption_key +create_column_encryption_key +drop_certificate +drop_column_encryption_key +drop_column_master_key +drop_contract +drop_credential +drop_cryptograhic_provider +drop_database +drop_database_audit_specification +drop_database_scoped_credential +drop_default +drop_endpoint +drop_external_data_source +drop_external_file_format +drop_external_library +drop_external_resource_pool +drop_external_table +drop_event_notifications +drop_event_session +drop_fulltext_catalog +drop_fulltext_index +drop_fulltext_stoplist +drop_login +drop_master_key +drop_message_type +drop_partition_function +drop_partition_scheme +drop_queue +drop_remote_service_binding +drop_resource_pool +drop_db_role +drop_route +drop_rule +drop_schema +drop_search_property_list +drop_security_policy +drop_sequence +drop_server_audit +drop_server_audit_specification +drop_server_role +drop_service +drop_signature +drop_statistics_name_azure_dw_and_pdw +drop_symmetric_key +drop_synonym +drop_user +drop_workload_group +drop_xml_schema_collection +disable_trigger +enable_trigger +lock_table +truncate_table +create_column_master_key +alter_credential +create_credential +alter_cryptographic_provider +create_cryptographic_provider +create_event_notification +create_or_alter_event_session +event_session_predicate_expression +event_session_predicate_factor +event_session_predicate_leaf +alter_external_data_source +alter_external_library +create_external_library +alter_external_resource_pool +create_external_resource_pool +alter_fulltext_catalog +create_fulltext_catalog +alter_fulltext_stoplist +create_fulltext_stoplist +alter_login_sql_server +create_login_sql_server +alter_login_azure_sql +create_login_azure_sql +alter_login_azure_sql_dw_and_pdw +create_login_pdw +alter_master_key_sql_server +create_master_key_sql_server +alter_master_key_azure_sql +create_master_key_azure_sql +alter_message_type +alter_partition_function +alter_partition_scheme +alter_remote_service_binding +create_remote_service_binding +create_resource_pool +alter_resource_governor +alter_db_role +create_db_role +create_route +create_rule +alter_schema_sql +create_schema +create_schema_azure_sql_dw_and_pdw +alter_schema_azure_sql_dw_and_pdw +create_search_property_list +create_security_policy +alter_sequence +create_sequence +alter_server_audit +create_server_audit +alter_server_audit_specification +create_server_audit_specification +alter_server_configuration +alter_server_role +create_server_role +alter_server_role_pdw +alter_service +create_service +alter_service_master_key +alter_symmetric_key +create_symmetric_key +create_synonym +alter_user +create_user +create_user_azure_sql_dw +alter_user_azure_sql +alter_workload_group +create_workload_group +create_xml_schema_collection +create_queue +queue_settings +alter_queue +queue_action +queue_rebuild_options +create_contract +conversation_statement +message_statement +merge_statement +merge_matched +merge_not_matched +delete_statement +delete_statement_from +insert_statement +insert_statement_value +receive_statement +select_statement +time +update_statement +output_clause +output_dml_list_elem +output_column_name +create_database +create_index +create_or_alter_procedure +create_or_alter_trigger +create_or_alter_dml_trigger +dml_trigger_option +dml_trigger_operation +create_or_alter_ddl_trigger +ddl_trigger_operation +create_or_alter_function +func_body_returns_select +func_body_returns_table +func_body_returns_scalar +procedure_param +procedure_option +function_option +create_statistics +update_statistics +create_table +table_options +create_view +view_attribute +alter_table +alter_database +database_optionspec +auto_option +change_tracking_option +change_tracking_option_list +containment_option +cursor_option +alter_endpoint +database_mirroring_option +mirroring_set_option +mirroring_partner +mirroring_witness +witness_partner_equal +partner_option +witness_option +witness_server +partner_server +mirroring_host_port_seperator +partner_server_tcp_prefix +port_number +host +date_correlation_optimization_option +db_encryption_option +db_state_option +db_update_option +db_user_access_option +delayed_durability_option +external_access_option +hadr_options +mixed_page_allocation_option +parameterization_option +recovery_option +service_broker_option +snapshot_option +sql_option +target_recovery_time_option +termination +drop_index +drop_relational_or_xml_or_spatial_index +drop_backward_compatible_index +drop_procedure +drop_trigger +drop_dml_trigger +drop_ddl_trigger +drop_function +drop_statistics +drop_table +drop_view +create_type +drop_type +rowset_function_limited +openquery +opendatasource +declare_statement +cursor_statement +backup_database +backup_log +backup_certificate +backup_master_key +backup_service_master_key +kill_statement +kill_process +kill_query_notification +kill_stats_job +execute_statement +execute_body +execute_statement_arg +execute_var_string +security_statement +create_certificate +existing_keys +private_key_options +generate_new_keys +date_options +open_key +close_key +create_key +key_options +algorithm +encryption_mechanism +decryption_mechanism +grant_permission +set_statement +transaction_statement +go_statement +use_statement +setuser_statement +reconfigure_statement +shutdown_statement +dbcc_clause +dbcc_options +execute_clause +declare_local +table_type_definition +xml_type_definition +xml_schema_collection +column_def_table_constraints +column_def_table_constraint +column_definition +materialized_column_definition +column_constraint +table_constraint +on_delete +on_update +index_options +index_option +declare_cursor +declare_set_cursor_common +declare_set_cursor_common_partial +fetch_cursor +set_special +constant_LOCAL_ID +expression +primitive_expression +case_expression +unary_operator_expression +bracket_expression +constant_expression +subquery +with_expression +common_table_expression +update_elem +search_condition_list +search_condition +search_condition_and +search_condition_not +predicate +query_expression +sql_union +query_specification +top_clause +top_percent +top_count +order_by_clause +for_clause +xml_common_directives +order_by_expression +group_by_item +option_clause +option +optimize_for_arg +select_list +udt_method_arguments +asterisk +column_elem +udt_elem +expression_elem +select_list_elem +table_sources +table_source +table_source_item_joined +table_source_item +open_xml +schema_declaration +column_declaration +change_table +join_part +pivot_clause +unpivot_clause +full_column_name_list +table_name_with_hint +rowset_function +bulk_option +derived_table +function_call +xml_data_type_methods +value_method +query_method +exist_method +modify_method +nodes_method +switch_section +switch_search_condition_section +as_column_alias +as_table_alias +table_alias +with_table_hints +insert_with_table_hints +table_hint +index_value +column_alias_list +column_alias +table_value_constructor +expression_list +ranking_windowed_function +aggregate_windowed_function +analytic_windowed_function +all_distinct_expression +over_clause +row_or_range_clause +window_frame_extent +window_frame_bound +window_frame_preceding +window_frame_following +create_database_option +database_filestream_option +database_file_spec +file_group +file_spec +entity_name +entity_name_for_azure_dw +entity_name_for_parallel_dw +full_table_name +table_name +simple_name +func_proc_name_schema +func_proc_name_database_schema +func_proc_name_server_database_schema +ddl_object +full_column_name +column_name_list_with_order +column_name_list +cursor_name +on_off +clustered +null_notnull +null_or_default +scalar_function_name +begin_conversation_timer +begin_conversation_dialog +contract_name +service_name +end_conversation +waitfor_conversation +get_conversation +queue_id +send_conversation +data_type +default_value +constant +sign +id +simple_id +comparison_operator +assignment_operator +file_size + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 842, 10760, 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, 3, 2, 7, 2, 978, 10, 2, 12, 2, 14, 2, 981, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 7, 3, 987, 10, 3, 12, 3, 14, 3, 990, 11, 3, 3, 3, 5, 3, 993, 10, 3, 3, 3, 3, 3, 7, 3, 997, 10, 3, 12, 3, 14, 3, 1000, 11, 3, 5, 3, 1002, 10, 3, 3, 4, 3, 4, 5, 4, 1006, 10, 4, 6, 4, 1008, 10, 4, 13, 4, 14, 4, 1009, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 1019, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 1026, 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, 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, 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, 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, 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, 3, 7, 3, 7, 5, 7, 1187, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 1194, 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, 5, 9, 1208, 10, 9, 3, 10, 3, 10, 5, 10, 1212, 10, 10, 3, 10, 5, 10, 1215, 10, 10, 3, 10, 3, 10, 5, 10, 1219, 10, 10, 3, 11, 3, 11, 5, 11, 1223, 10, 11, 3, 12, 3, 12, 5, 12, 1227, 10, 12, 3, 13, 3, 13, 3, 13, 5, 13, 1232, 10, 13, 3, 13, 3, 13, 3, 13, 5, 13, 1237, 10, 13, 5, 13, 1239, 10, 13, 3, 14, 3, 14, 5, 14, 1243, 10, 14, 3, 14, 5, 14, 1246, 10, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 1253, 10, 15, 3, 15, 5, 15, 1256, 10, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 1265, 10, 16, 3, 16, 5, 16, 1268, 10, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 5, 20, 1279, 10, 20, 3, 20, 5, 20, 1282, 10, 20, 3, 20, 3, 20, 3, 20, 5, 20, 1287, 10, 20, 3, 20, 3, 20, 3, 20, 5, 20, 1292, 10, 20, 3, 20, 5, 20, 1295, 10, 20, 3, 20, 3, 20, 3, 20, 5, 20, 1300, 10, 20, 3, 21, 3, 21, 5, 21, 1304, 10, 21, 3, 21, 5, 21, 1307, 10, 21, 3, 21, 3, 21, 5, 21, 1311, 10, 21, 3, 21, 5, 21, 1314, 10, 21, 3, 21, 5, 21, 1317, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 1324, 10, 22, 3, 22, 3, 22, 5, 22, 1328, 10, 22, 5, 22, 1330, 10, 22, 3, 23, 3, 23, 3, 23, 5, 23, 1335, 10, 23, 3, 23, 3, 23, 7, 23, 1339, 10, 23, 12, 23, 14, 23, 1342, 11, 23, 3, 23, 5, 23, 1345, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 1356, 10, 24, 12, 24, 14, 24, 1359, 11, 24, 3, 24, 3, 24, 3, 24, 5, 24, 1364, 10, 24, 3, 24, 5, 24, 1367, 10, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 1374, 10, 24, 12, 24, 14, 24, 1377, 11, 24, 5, 24, 1379, 10, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 1399, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1407, 10, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1412, 10, 27, 3, 27, 5, 27, 1415, 10, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1420, 10, 27, 3, 27, 5, 27, 1423, 10, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1428, 10, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1436, 10, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1441, 10, 28, 3, 28, 5, 28, 1444, 10, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1449, 10, 28, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 1455, 10, 29, 3, 29, 3, 29, 3, 29, 5, 29, 1460, 10, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 33, 5, 33, 1477, 10, 33, 3, 33, 5, 33, 1480, 10, 33, 3, 33, 5, 33, 1483, 10, 33, 3, 33, 5, 33, 1486, 10, 33, 3, 34, 3, 34, 3, 34, 5, 34, 1491, 10, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 5, 37, 1500, 10, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 5, 41, 1515, 10, 41, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 5, 47, 1532, 10, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 1543, 10, 48, 3, 48, 3, 48, 7, 48, 1547, 10, 48, 12, 48, 14, 48, 1550, 11, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1564, 10, 52, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1579, 10, 56, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 1588, 10, 58, 3, 58, 3, 58, 5, 58, 1592, 10, 58, 3, 58, 6, 58, 1595, 10, 58, 13, 58, 14, 58, 1596, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 1603, 10, 58, 3, 59, 3, 59, 3, 59, 3, 59, 5, 59, 1609, 10, 59, 3, 59, 5, 59, 1612, 10, 59, 3, 59, 6, 59, 1615, 10, 59, 13, 59, 14, 59, 1616, 3, 59, 3, 59, 3, 59, 5, 59, 1622, 10, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1630, 10, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 5, 62, 1640, 10, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 5, 64, 1659, 10, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 5, 65, 1667, 10, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 5, 65, 1680, 10, 65, 5, 65, 1682, 10, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 5, 65, 1694, 10, 65, 5, 65, 1696, 10, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 5, 65, 1703, 10, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 5, 66, 1712, 10, 66, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1718, 10, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 5, 68, 1727, 10, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1742, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 1752, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 5, 74, 1762, 10, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1802, 10, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 5, 76, 1825, 10, 76, 3, 77, 3, 77, 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, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1861, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1879, 10, 82, 3, 82, 5, 82, 1882, 10, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1887, 10, 82, 3, 82, 5, 82, 1890, 10, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1895, 10, 82, 3, 82, 5, 82, 1898, 10, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1903, 10, 82, 3, 82, 5, 82, 1906, 10, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1911, 10, 82, 3, 82, 5, 82, 1914, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1922, 10, 82, 3, 82, 5, 82, 1925, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1933, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1946, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1957, 10, 82, 3, 82, 7, 82, 1960, 10, 82, 12, 82, 14, 82, 1963, 11, 82, 3, 82, 5, 82, 1966, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1972, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1995, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2007, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2018, 10, 82, 3, 82, 7, 82, 2021, 10, 82, 12, 82, 14, 82, 2024, 11, 82, 3, 82, 5, 82, 2027, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2033, 10, 82, 5, 82, 2035, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2048, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 6, 82, 2069, 10, 82, 13, 82, 14, 82, 2070, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2078, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2087, 10, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2092, 10, 82, 3, 82, 5, 82, 2095, 10, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2100, 10, 82, 3, 82, 5, 82, 2103, 10, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2108, 10, 82, 3, 82, 6, 82, 2111, 10, 82, 13, 82, 14, 82, 2112, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2141, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2148, 10, 82, 3, 82, 6, 82, 2151, 10, 82, 13, 82, 14, 82, 2152, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2160, 10, 82, 5, 82, 2162, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2173, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2179, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 2194, 10, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 5, 83, 2208, 10, 83, 3, 83, 5, 83, 2211, 10, 83, 5, 83, 2213, 10, 83, 3, 83, 3, 83, 3, 83, 5, 83, 2218, 10, 83, 3, 83, 3, 83, 5, 83, 2222, 10, 83, 3, 83, 5, 83, 2225, 10, 83, 5, 83, 2227, 10, 83, 3, 83, 3, 83, 3, 83, 3, 83, 5, 83, 2233, 10, 83, 3, 83, 5, 83, 2236, 10, 83, 5, 83, 2238, 10, 83, 3, 83, 3, 83, 3, 83, 3, 83, 5, 83, 2244, 10, 83, 5, 83, 2246, 10, 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, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 2268, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 2276, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 2284, 10, 85, 6, 85, 2286, 10, 85, 13, 85, 14, 85, 2287, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 2297, 10, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 5, 86, 2318, 10, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 5, 87, 2331, 10, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 5, 87, 2346, 10, 87, 6, 87, 2348, 10, 87, 13, 87, 14, 87, 2349, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 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, 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, 5, 94, 2385, 10, 94, 3, 94, 5, 94, 2388, 10, 94, 3, 94, 6, 94, 2391, 10, 94, 13, 94, 14, 94, 2392, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 5, 97, 2411, 10, 97, 3, 97, 5, 97, 2414, 10, 97, 3, 97, 3, 97, 3, 97, 5, 97, 2419, 10, 97, 3, 97, 3, 97, 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, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 5, 101, 2445, 10, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 2459, 10, 103, 3, 103, 3, 103, 3, 103, 5, 103, 2464, 10, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 2472, 10, 104, 3, 104, 6, 104, 2475, 10, 104, 13, 104, 14, 104, 2476, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 2484, 10, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 5, 107, 2505, 10, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 5, 114, 2542, 10, 114, 3, 114, 3, 114, 3, 114, 5, 114, 2547, 10, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 5, 117, 2566, 10, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 5, 119, 2578, 10, 119, 3, 119, 5, 119, 2581, 10, 119, 3, 119, 3, 119, 3, 119, 5, 119, 2586, 10, 119, 3, 119, 5, 119, 2589, 10, 119, 3, 120, 3, 120, 3, 120, 3, 120, 5, 120, 2595, 10, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 2610, 10, 122, 3, 122, 3, 122, 3, 122, 5, 122, 2615, 10, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 5, 123, 2623, 10, 123, 3, 123, 5, 123, 2626, 10, 123, 3, 123, 3, 123, 3, 123, 5, 123, 2631, 10, 123, 3, 123, 3, 123, 3, 123, 5, 123, 2636, 10, 123, 3, 123, 5, 123, 2639, 10, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 5, 128, 2663, 10, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 5, 128, 2670, 10, 128, 3, 128, 3, 128, 3, 128, 5, 128, 2675, 10, 128, 3, 128, 3, 128, 3, 128, 5, 128, 2680, 10, 128, 3, 128, 3, 128, 3, 128, 6, 128, 2685, 10, 128, 13, 128, 14, 128, 2686, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 5, 129, 2694, 10, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 5, 130, 2707, 10, 130, 3, 131, 3, 131, 3, 131, 3, 131, 5, 131, 2713, 10, 131, 3, 131, 3, 131, 3, 131, 5, 131, 2718, 10, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 5, 132, 2726, 10, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 5, 134, 2742, 10, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 5, 135, 2749, 10, 135, 3, 135, 3, 135, 3, 135, 5, 135, 2754, 10, 135, 3, 135, 6, 135, 2757, 10, 135, 13, 135, 14, 135, 2758, 3, 135, 5, 135, 2762, 10, 135, 3, 135, 3, 135, 3, 135, 3, 135, 5, 135, 2768, 10, 135, 3, 135, 3, 135, 3, 135, 3, 135, 5, 135, 2774, 10, 135, 3, 136, 3, 136, 3, 136, 5, 136, 2779, 10, 136, 3, 136, 3, 136, 3, 136, 5, 136, 2784, 10, 136, 3, 136, 6, 136, 2787, 10, 136, 13, 136, 14, 136, 2788, 3, 136, 5, 136, 2792, 10, 136, 3, 136, 3, 136, 3, 136, 3, 136, 5, 136, 2798, 10, 136, 3, 136, 3, 136, 3, 136, 3, 136, 5, 136, 2804, 10, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 5, 137, 2815, 10, 137, 3, 137, 5, 137, 2818, 10, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 2828, 10, 138, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 2834, 10, 138, 6, 138, 2836, 10, 138, 13, 138, 14, 138, 2837, 3, 138, 3, 138, 5, 138, 2842, 10, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 5, 140, 2871, 10, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 5, 141, 2884, 10, 141, 3, 141, 3, 141, 3, 141, 3, 141, 5, 141, 2890, 10, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 5, 142, 2900, 10, 142, 3, 142, 5, 142, 2903, 10, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 5, 144, 2923, 10, 144, 3, 144, 3, 144, 5, 144, 2927, 10, 144, 3, 144, 3, 144, 5, 144, 2931, 10, 144, 3, 144, 6, 144, 2934, 10, 144, 13, 144, 14, 144, 2935, 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, 5, 145, 2951, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 2958, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 2967, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 7, 145, 2973, 10, 145, 12, 145, 14, 145, 2976, 11, 145, 5, 145, 2978, 10, 145, 3, 145, 3, 145, 3, 145, 5, 145, 2983, 10, 145, 3, 145, 3, 145, 3, 145, 5, 145, 2988, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 6, 145, 2994, 10, 145, 13, 145, 14, 145, 2995, 3, 145, 3, 145, 6, 145, 3000, 10, 145, 13, 145, 14, 145, 3001, 3, 145, 3, 145, 5, 145, 3006, 10, 145, 3, 145, 3, 145, 7, 145, 3010, 10, 145, 12, 145, 14, 145, 3013, 11, 145, 7, 145, 3015, 10, 145, 12, 145, 14, 145, 3018, 11, 145, 3, 145, 5, 145, 3021, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3028, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 7, 145, 3034, 10, 145, 12, 145, 14, 145, 3037, 11, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3044, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3053, 10, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3058, 10, 145, 3, 145, 3, 145, 5, 145, 3062, 10, 145, 3, 145, 5, 145, 3065, 10, 145, 6, 145, 3067, 10, 145, 13, 145, 14, 145, 3068, 3, 145, 3, 145, 7, 145, 3073, 10, 145, 12, 145, 14, 145, 3076, 11, 145, 7, 145, 3078, 10, 145, 12, 145, 14, 145, 3081, 11, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3088, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 7, 145, 3094, 10, 145, 12, 145, 14, 145, 3097, 11, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3102, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3108, 10, 145, 3, 145, 5, 145, 3111, 10, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3116, 10, 145, 3, 145, 5, 145, 3119, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3126, 10, 145, 5, 145, 3128, 10, 145, 3, 145, 5, 145, 3131, 10, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3137, 10, 145, 3, 145, 5, 145, 3140, 10, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3145, 10, 145, 3, 145, 5, 145, 3148, 10, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3153, 10, 145, 3, 145, 5, 145, 3156, 10, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3161, 10, 145, 3, 145, 5, 145, 3164, 10, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3169, 10, 145, 3, 146, 5, 146, 3172, 10, 146, 3, 146, 5, 146, 3175, 10, 146, 3, 146, 5, 146, 3178, 10, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 5, 146, 3185, 10, 146, 6, 146, 3187, 10, 146, 13, 146, 14, 146, 3188, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 5, 147, 3196, 10, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 5, 148, 3203, 10, 148, 3, 148, 3, 148, 3, 148, 3, 148, 5, 148, 3209, 10, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 5, 148, 3222, 10, 148, 3, 148, 3, 148, 5, 148, 3226, 10, 148, 3, 148, 3, 148, 3, 148, 5, 148, 3231, 10, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 5, 148, 3241, 10, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 5, 148, 3250, 10, 148, 3, 148, 3, 148, 5, 148, 3254, 10, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 5, 149, 3266, 10, 149, 3, 149, 3, 149, 3, 149, 3, 149, 5, 149, 3272, 10, 149, 3, 149, 3, 149, 3, 149, 6, 149, 3277, 10, 149, 13, 149, 14, 149, 3278, 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, 5, 149, 3299, 10, 149, 3, 149, 3, 149, 5, 149, 3303, 10, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 5, 150, 3311, 10, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 5, 150, 3320, 10, 150, 3, 150, 3, 150, 3, 150, 3, 150, 5, 150, 3326, 10, 150, 3, 150, 3, 150, 3, 150, 3, 150, 5, 150, 3332, 10, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 6, 150, 3340, 10, 150, 13, 150, 14, 150, 3341, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 5, 151, 3352, 10, 151, 3, 151, 3, 151, 5, 151, 3356, 10, 151, 3, 151, 5, 151, 3359, 10, 151, 3, 151, 3, 151, 5, 151, 3363, 10, 151, 3, 151, 3, 151, 3, 151, 5, 151, 3368, 10, 151, 3, 151, 3, 151, 3, 151, 3, 151, 5, 151, 3374, 10, 151, 3, 151, 5, 151, 3377, 10, 151, 3, 151, 3, 151, 5, 151, 3381, 10, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 6, 151, 3389, 10, 151, 13, 151, 14, 151, 3390, 3, 151, 5, 151, 3394, 10, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 5, 152, 3402, 10, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 5, 152, 3410, 10, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 5, 152, 3417, 10, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 6, 152, 3424, 10, 152, 13, 152, 14, 152, 3425, 5, 152, 3428, 10, 152, 3, 152, 3, 152, 3, 152, 5, 152, 3433, 10, 152, 3, 152, 3, 152, 3, 152, 3, 152, 5, 152, 3439, 10, 152, 3, 152, 6, 152, 3442, 10, 152, 13, 152, 14, 152, 3443, 5, 152, 3446, 10, 152, 3, 152, 5, 152, 3449, 10, 152, 3, 152, 3, 152, 3, 152, 5, 152, 3454, 10, 152, 3, 152, 5, 152, 3457, 10, 152, 3, 152, 3, 152, 3, 152, 5, 152, 3462, 10, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 5, 153, 3477, 10, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 5, 153, 3484, 10, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 6, 153, 3491, 10, 153, 13, 153, 14, 153, 3492, 5, 153, 3495, 10, 153, 3, 153, 3, 153, 3, 153, 5, 153, 3500, 10, 153, 3, 153, 3, 153, 3, 153, 3, 153, 5, 153, 3506, 10, 153, 3, 153, 6, 153, 3509, 10, 153, 13, 153, 14, 153, 3510, 5, 153, 3513, 10, 153, 3, 153, 5, 153, 3516, 10, 153, 3, 153, 3, 153, 3, 153, 5, 153, 3521, 10, 153, 3, 153, 5, 153, 3524, 10, 153, 3, 153, 3, 153, 3, 153, 5, 153, 3529, 10, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 3542, 10, 154, 3, 154, 3, 154, 3, 154, 5, 154, 3547, 10, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 5, 155, 3556, 10, 155, 3, 155, 3, 155, 3, 155, 5, 155, 3561, 10, 155, 3, 155, 3, 155, 3, 155, 3, 155, 5, 155, 3567, 10, 155, 3, 155, 3, 155, 5, 155, 3571, 10, 155, 3, 155, 3, 155, 5, 155, 3575, 10, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 5, 156, 3592, 10, 156, 5, 156, 3594, 10, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 5, 157, 3604, 10, 157, 3, 157, 3, 157, 3, 157, 5, 157, 3609, 10, 157, 5, 157, 3611, 10, 157, 3, 157, 3, 157, 5, 157, 3615, 10, 157, 3, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3621, 10, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3629, 10, 158, 3, 158, 7, 158, 3632, 10, 158, 12, 158, 14, 158, 3635, 11, 158, 5, 158, 3637, 10, 158, 3, 158, 3, 158, 3, 158, 3, 158, 7, 158, 3643, 10, 158, 12, 158, 14, 158, 3646, 11, 158, 5, 158, 3648, 10, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3653, 10, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3658, 10, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3663, 10, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3668, 10, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3673, 10, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3678, 10, 158, 3, 158, 3, 158, 5, 158, 3682, 10, 158, 3, 158, 3, 158, 3, 158, 5, 158, 3687, 10, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3698, 10, 159, 3, 159, 7, 159, 3701, 10, 159, 12, 159, 14, 159, 3704, 11, 159, 5, 159, 3706, 10, 159, 3, 159, 5, 159, 3709, 10, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3714, 10, 159, 3, 159, 5, 159, 3717, 10, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3722, 10, 159, 3, 159, 5, 159, 3725, 10, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3730, 10, 159, 3, 159, 5, 159, 3733, 10, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3738, 10, 159, 3, 159, 5, 159, 3741, 10, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3746, 10, 159, 3, 159, 5, 159, 3749, 10, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3754, 10, 159, 3, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3760, 10, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3765, 10, 159, 3, 159, 5, 159, 3768, 10, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3773, 10, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 5, 159, 3780, 10, 159, 5, 159, 3782, 10, 159, 3, 160, 3, 160, 3, 160, 3, 160, 5, 160, 3788, 10, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 5, 160, 3797, 10, 160, 3, 160, 3, 160, 3, 160, 5, 160, 3802, 10, 160, 5, 160, 3804, 10, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 3816, 10, 161, 3, 162, 3, 162, 3, 162, 3, 162, 5, 162, 3822, 10, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 7, 162, 3832, 10, 162, 12, 162, 14, 162, 3835, 11, 162, 5, 162, 3837, 10, 162, 3, 162, 3, 162, 3, 162, 5, 162, 3842, 10, 162, 5, 162, 3844, 10, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 5, 163, 3854, 10, 163, 3, 163, 3, 163, 3, 163, 5, 163, 3859, 10, 163, 5, 163, 3861, 10, 163, 3, 163, 3, 163, 5, 163, 3865, 10, 163, 3, 164, 3, 164, 3, 164, 3, 164, 5, 164, 3871, 10, 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, 164, 3, 164, 3, 164, 3, 164, 5, 164, 3889, 10, 164, 5, 164, 3891, 10, 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, 5, 166, 3906, 10, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 5, 166, 3924, 10, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 5, 166, 3932, 10, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 5, 167, 3942, 10, 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, 5, 168, 3958, 10, 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, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 5, 170, 3979, 10, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 5, 171, 3990, 10, 171, 3, 171, 3, 171, 3, 171, 3, 171, 5, 171, 3996, 10, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 5, 172, 4005, 10, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 5, 172, 4014, 10, 172, 3, 172, 3, 172, 3, 172, 3, 172, 5, 172, 4020, 10, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4029, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4034, 10, 173, 3, 173, 5, 173, 4037, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4042, 10, 173, 3, 173, 5, 173, 4045, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4050, 10, 173, 3, 173, 5, 173, 4053, 10, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4061, 10, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4067, 10, 173, 6, 173, 4069, 10, 173, 13, 173, 14, 173, 4070, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4078, 10, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4084, 10, 173, 6, 173, 4086, 10, 173, 13, 173, 14, 173, 4087, 3, 173, 5, 173, 4091, 10, 173, 5, 173, 4093, 10, 173, 3, 173, 5, 173, 4096, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4101, 10, 173, 3, 173, 5, 173, 4104, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4109, 10, 173, 3, 173, 5, 173, 4112, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4117, 10, 173, 3, 173, 5, 173, 4120, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4125, 10, 173, 3, 173, 5, 173, 4128, 10, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 4143, 10, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 4154, 10, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 5, 175, 4166, 10, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 5, 176, 4173, 10, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 5, 177, 4180, 10, 177, 3, 177, 3, 177, 5, 177, 4184, 10, 177, 3, 177, 3, 177, 3, 177, 5, 177, 4189, 10, 177, 3, 177, 5, 177, 4192, 10, 177, 3, 177, 3, 177, 3, 177, 5, 177, 4197, 10, 177, 3, 177, 5, 177, 4200, 10, 177, 3, 177, 3, 177, 3, 177, 5, 177, 4205, 10, 177, 3, 177, 5, 177, 4208, 10, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 5, 177, 4217, 10, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 5, 178, 4224, 10, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 4239, 10, 179, 3, 179, 3, 179, 5, 179, 4243, 10, 179, 3, 179, 3, 179, 3, 179, 5, 179, 4248, 10, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 4259, 10, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 4269, 10, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 4281, 10, 180, 3, 180, 3, 180, 3, 180, 3, 180, 7, 180, 4287, 10, 180, 12, 180, 14, 180, 4290, 11, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 5, 181, 4297, 10, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 5, 182, 4306, 10, 182, 3, 182, 3, 182, 3, 182, 5, 182, 4311, 10, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 5, 183, 4322, 10, 183, 3, 183, 5, 183, 4325, 10, 183, 3, 183, 3, 183, 5, 183, 4329, 10, 183, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 5, 184, 4337, 10, 184, 3, 184, 3, 184, 5, 184, 4341, 10, 184, 3, 184, 3, 184, 5, 184, 4345, 10, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 5, 184, 4353, 10, 184, 3, 184, 6, 184, 4356, 10, 184, 13, 184, 14, 184, 4357, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 5, 184, 4366, 10, 184, 3, 184, 3, 184, 3, 184, 5, 184, 4371, 10, 184, 3, 184, 3, 184, 7, 184, 4375, 10, 184, 12, 184, 14, 184, 4378, 11, 184, 6, 184, 4380, 10, 184, 13, 184, 14, 184, 4381, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 5, 184, 4391, 10, 184, 3, 184, 5, 184, 4394, 10, 184, 3, 184, 3, 184, 3, 184, 5, 184, 4399, 10, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4406, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4412, 10, 185, 5, 185, 4414, 10, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4419, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4425, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4431, 10, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4436, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4442, 10, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 5, 186, 4449, 10, 186, 3, 186, 3, 186, 3, 186, 5, 186, 4454, 10, 186, 3, 186, 3, 186, 3, 186, 5, 186, 4459, 10, 186, 3, 186, 3, 186, 3, 186, 5, 186, 4464, 10, 186, 3, 186, 5, 186, 4467, 10, 186, 3, 186, 3, 186, 5, 186, 4471, 10, 186, 3, 186, 3, 186, 5, 186, 4475, 10, 186, 3, 186, 3, 186, 5, 186, 4479, 10, 186, 3, 186, 3, 186, 5, 186, 4483, 10, 186, 3, 186, 3, 186, 3, 186, 5, 186, 4488, 10, 186, 3, 186, 3, 186, 5, 186, 4492, 10, 186, 3, 186, 3, 186, 5, 186, 4496, 10, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4506, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4512, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4519, 10, 187, 3, 187, 5, 187, 4522, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4528, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4534, 10, 187, 3, 187, 3, 187, 3, 187, 7, 187, 4539, 10, 187, 12, 187, 14, 187, 4542, 11, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4547, 10, 187, 5, 187, 4549, 10, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4554, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4560, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4566, 10, 187, 3, 187, 3, 187, 3, 187, 7, 187, 4571, 10, 187, 12, 187, 14, 187, 4574, 11, 187, 3, 187, 5, 187, 4577, 10, 187, 3, 187, 3, 187, 5, 187, 4581, 10, 187, 3, 187, 5, 187, 4584, 10, 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, 5, 187, 4598, 10, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4603, 10, 187, 3, 187, 3, 187, 5, 187, 4607, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4620, 10, 187, 3, 187, 5, 187, 4623, 10, 187, 5, 187, 4625, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4633, 10, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4643, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4649, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4656, 10, 188, 3, 188, 5, 188, 4659, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4665, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4671, 10, 188, 3, 188, 3, 188, 3, 188, 7, 188, 4676, 10, 188, 12, 188, 14, 188, 4679, 11, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4684, 10, 188, 5, 188, 4686, 10, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4691, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4697, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4703, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4709, 10, 188, 3, 188, 3, 188, 3, 188, 7, 188, 4714, 10, 188, 12, 188, 14, 188, 4717, 11, 188, 3, 188, 5, 188, 4720, 10, 188, 3, 188, 3, 188, 5, 188, 4724, 10, 188, 3, 188, 5, 188, 4727, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4741, 10, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4746, 10, 188, 3, 188, 3, 188, 5, 188, 4750, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4763, 10, 188, 3, 188, 5, 188, 4766, 10, 188, 5, 188, 4768, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 4776, 10, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 5, 189, 4787, 10, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 7, 189, 4794, 10, 189, 12, 189, 14, 189, 4797, 11, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 5, 189, 4805, 10, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 5, 190, 4816, 10, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 7, 190, 4823, 10, 190, 12, 190, 14, 190, 4826, 11, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 5, 190, 4834, 10, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 4846, 10, 191, 3, 191, 3, 191, 5, 191, 4850, 10, 191, 3, 191, 3, 191, 3, 191, 6, 191, 4855, 10, 191, 13, 191, 14, 191, 4856, 5, 191, 4859, 10, 191, 3, 191, 3, 191, 3, 191, 5, 191, 4864, 10, 191, 3, 191, 3, 191, 5, 191, 4868, 10, 191, 3, 191, 3, 191, 3, 191, 6, 191, 4873, 10, 191, 13, 191, 14, 191, 4874, 5, 191, 4877, 10, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 4891, 10, 191, 3, 191, 3, 191, 3, 191, 5, 191, 4896, 10, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 4918, 10, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 4940, 10, 191, 3, 191, 3, 191, 3, 191, 5, 191, 4945, 10, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 5, 192, 4958, 10, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 5, 193, 4966, 10, 193, 3, 194, 3, 194, 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, 195, 3, 195, 3, 195, 5, 195, 4986, 10, 195, 3, 195, 5, 195, 4989, 10, 195, 3, 195, 3, 195, 7, 195, 4993, 10, 195, 12, 195, 14, 195, 4996, 11, 195, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 5, 196, 5003, 10, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 5, 196, 5010, 10, 196, 3, 196, 3, 196, 3, 196, 5, 196, 5015, 10, 196, 3, 196, 3, 196, 5, 196, 5019, 10, 196, 6, 196, 5021, 10, 196, 13, 196, 14, 196, 5022, 3, 196, 5, 196, 5026, 10, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 5, 197, 5033, 10, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 5, 197, 5051, 10, 197, 5, 197, 5053, 10, 197, 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, 5, 198, 5073, 10, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 5, 199, 5081, 10, 199, 3, 199, 3, 199, 3, 199, 5, 199, 5086, 10, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 5, 199, 5104, 10, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 5, 199, 5119, 10, 199, 5, 199, 5121, 10, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 5, 200, 5128, 10, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 5, 200, 5135, 10, 200, 3, 200, 3, 200, 3, 200, 5, 200, 5140, 10, 200, 3, 200, 3, 200, 3, 200, 5, 200, 5145, 10, 200, 3, 200, 3, 200, 3, 200, 3, 200, 5, 200, 5151, 10, 200, 3, 200, 3, 200, 3, 200, 5, 200, 5156, 10, 200, 5, 200, 5158, 10, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 5, 201, 5165, 10, 201, 3, 201, 3, 201, 3, 201, 3, 201, 5, 201, 5171, 10, 201, 3, 201, 3, 201, 3, 201, 3, 201, 5, 201, 5177, 10, 201, 3, 201, 5, 201, 5180, 10, 201, 3, 201, 3, 201, 3, 201, 3, 201, 5, 201, 5186, 10, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 6, 201, 5194, 10, 201, 13, 201, 14, 201, 5195, 3, 201, 5, 201, 5199, 10, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 5, 201, 5206, 10, 201, 3, 201, 5, 201, 5209, 10, 201, 3, 201, 3, 201, 3, 201, 6, 201, 5214, 10, 201, 13, 201, 14, 201, 5215, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5224, 10, 202, 3, 202, 3, 202, 5, 202, 5228, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5234, 10, 202, 3, 202, 3, 202, 3, 202, 7, 202, 5239, 10, 202, 12, 202, 14, 202, 5242, 11, 202, 5, 202, 5244, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5251, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5257, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5264, 10, 202, 3, 202, 5, 202, 5267, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5273, 10, 202, 3, 202, 3, 202, 3, 202, 7, 202, 5278, 10, 202, 12, 202, 14, 202, 5281, 11, 202, 5, 202, 5283, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5291, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5297, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5304, 10, 202, 3, 202, 5, 202, 5307, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5313, 10, 202, 3, 202, 3, 202, 3, 202, 7, 202, 5318, 10, 202, 12, 202, 14, 202, 5321, 11, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5328, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5336, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5342, 10, 202, 3, 202, 3, 202, 3, 202, 7, 202, 5347, 10, 202, 12, 202, 14, 202, 5350, 11, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5359, 10, 202, 3, 202, 3, 202, 3, 202, 5, 202, 5364, 10, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 5374, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 5380, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 5392, 10, 203, 5, 203, 5394, 10, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 5401, 10, 204, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 5407, 10, 204, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 5413, 10, 204, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 5419, 10, 204, 3, 204, 3, 204, 3, 204, 6, 204, 5424, 10, 204, 13, 204, 14, 204, 5425, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 5433, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 5441, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 5447, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 6, 205, 5461, 10, 205, 13, 205, 14, 205, 5462, 3, 205, 5, 205, 5466, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 5471, 10, 205, 5, 205, 5473, 10, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 5, 206, 5485, 10, 206, 3, 206, 3, 206, 3, 206, 3, 206, 5, 206, 5491, 10, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 6, 206, 5505, 10, 206, 13, 206, 14, 206, 5506, 3, 206, 5, 206, 5510, 10, 206, 3, 206, 3, 206, 3, 206, 5, 206, 5515, 10, 206, 3, 206, 5, 206, 5518, 10, 206, 3, 206, 3, 206, 3, 206, 5, 206, 5523, 10, 206, 5, 206, 5525, 10, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 5534, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 5541, 10, 207, 3, 208, 3, 208, 3, 208, 3, 208, 5, 208, 5547, 10, 208, 3, 208, 5, 208, 5550, 10, 208, 3, 208, 3, 208, 3, 208, 5, 208, 5555, 10, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 5562, 10, 209, 5, 209, 5564, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 5570, 10, 209, 5, 209, 5572, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 5580, 10, 209, 5, 209, 5582, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 5588, 10, 209, 5, 209, 5590, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 5596, 10, 209, 5, 209, 5598, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 5605, 10, 209, 3, 209, 5, 209, 5608, 10, 209, 5, 209, 5610, 10, 209, 3, 209, 5, 209, 5613, 10, 209, 3, 209, 3, 209, 5, 209, 5617, 10, 209, 5, 209, 5619, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 5628, 10, 209, 3, 210, 3, 210, 3, 210, 3, 210, 5, 210, 5634, 10, 210, 3, 210, 3, 210, 5, 210, 5638, 10, 210, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 5646, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 5653, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 5659, 10, 211, 5, 211, 5661, 10, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 5, 213, 5672, 10, 213, 3, 213, 3, 213, 3, 213, 5, 213, 5677, 10, 213, 3, 213, 3, 213, 3, 213, 3, 213, 5, 213, 5683, 10, 213, 6, 213, 5685, 10, 213, 13, 213, 14, 213, 5686, 3, 213, 3, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 5, 214, 5697, 10, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 5, 215, 5705, 10, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 5, 215, 5717, 10, 215, 3, 216, 5, 216, 5720, 10, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 5, 216, 5728, 10, 216, 5, 216, 5730, 10, 216, 3, 216, 5, 216, 5733, 10, 216, 3, 216, 3, 216, 5, 216, 5737, 10, 216, 3, 216, 5, 216, 5740, 10, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 5, 216, 5750, 10, 216, 3, 216, 3, 216, 7, 216, 5754, 10, 216, 12, 216, 14, 216, 5757, 11, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 5, 216, 5764, 10, 216, 3, 216, 3, 216, 5, 216, 5768, 10, 216, 3, 216, 3, 216, 5, 216, 5772, 10, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 5, 216, 5781, 10, 216, 3, 216, 3, 216, 7, 216, 5785, 10, 216, 12, 216, 14, 216, 5788, 11, 216, 3, 216, 5, 216, 5791, 10, 216, 3, 216, 5, 216, 5794, 10, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 7, 217, 5803, 10, 217, 12, 217, 14, 217, 5806, 11, 217, 3, 217, 5, 217, 5809, 10, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 5, 218, 5816, 10, 218, 3, 218, 3, 218, 3, 218, 5, 218, 5821, 10, 218, 3, 219, 5, 219, 5824, 10, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 5, 219, 5832, 10, 219, 3, 219, 3, 219, 5, 219, 5836, 10, 219, 3, 219, 5, 219, 5839, 10, 219, 3, 219, 3, 219, 5, 219, 5843, 10, 219, 3, 219, 5, 219, 5846, 10, 219, 3, 219, 3, 219, 5, 219, 5850, 10, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 5, 219, 5857, 10, 219, 3, 219, 3, 219, 5, 219, 5861, 10, 219, 5, 219, 5863, 10, 219, 5, 219, 5865, 10, 219, 3, 219, 5, 219, 5868, 10, 219, 3, 219, 5, 219, 5871, 10, 219, 3, 219, 5, 219, 5874, 10, 219, 3, 220, 3, 220, 3, 220, 3, 220, 5, 220, 5880, 10, 220, 3, 221, 5, 221, 5883, 10, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 5, 221, 5891, 10, 221, 5, 221, 5893, 10, 221, 3, 221, 5, 221, 5896, 10, 221, 3, 221, 3, 221, 5, 221, 5900, 10, 221, 3, 221, 5, 221, 5903, 10, 221, 3, 221, 3, 221, 3, 221, 3, 221, 5, 221, 5909, 10, 221, 3, 221, 5, 221, 5912, 10, 221, 3, 221, 3, 221, 5, 221, 5916, 10, 221, 3, 221, 5, 221, 5919, 10, 221, 3, 221, 5, 221, 5922, 10, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 5, 222, 5929, 10, 222, 3, 223, 5, 223, 5932, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5939, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5945, 10, 223, 7, 223, 5947, 10, 223, 12, 223, 14, 223, 5950, 11, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5959, 10, 223, 3, 223, 5, 223, 5962, 10, 223, 3, 224, 5, 224, 5965, 10, 224, 3, 224, 3, 224, 5, 224, 5969, 10, 224, 3, 224, 5, 224, 5972, 10, 224, 3, 224, 5, 224, 5975, 10, 224, 3, 224, 5, 224, 5978, 10, 224, 3, 225, 3, 225, 5, 225, 5982, 10, 225, 3, 226, 5, 226, 5985, 10, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 5, 226, 5993, 10, 226, 5, 226, 5995, 10, 226, 3, 226, 3, 226, 5, 226, 5999, 10, 226, 3, 226, 5, 226, 6002, 10, 226, 3, 226, 3, 226, 3, 226, 3, 226, 7, 226, 6008, 10, 226, 12, 226, 14, 226, 6011, 11, 226, 3, 226, 5, 226, 6014, 10, 226, 3, 226, 3, 226, 5, 226, 6018, 10, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 5, 226, 6025, 10, 226, 3, 226, 3, 226, 5, 226, 6029, 10, 226, 5, 226, 6031, 10, 226, 5, 226, 6033, 10, 226, 3, 226, 5, 226, 6036, 10, 226, 3, 226, 5, 226, 6039, 10, 226, 3, 226, 5, 226, 6042, 10, 226, 3, 227, 3, 227, 3, 227, 3, 227, 7, 227, 6048, 10, 227, 12, 227, 14, 227, 6051, 11, 227, 3, 227, 3, 227, 3, 227, 5, 227, 6056, 10, 227, 3, 227, 3, 227, 3, 227, 3, 227, 5, 227, 6062, 10, 227, 5, 227, 6064, 10, 227, 3, 228, 3, 228, 5, 228, 6068, 10, 228, 3, 228, 5, 228, 6071, 10, 228, 3, 229, 3, 229, 3, 229, 5, 229, 6076, 10, 229, 3, 229, 3, 229, 3, 229, 5, 229, 6081, 10, 229, 3, 229, 5, 229, 6084, 10, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 5, 230, 6092, 10, 230, 3, 230, 3, 230, 5, 230, 6096, 10, 230, 3, 230, 3, 230, 3, 230, 7, 230, 6101, 10, 230, 12, 230, 14, 230, 6104, 11, 230, 5, 230, 6106, 10, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 7, 230, 6113, 10, 230, 12, 230, 14, 230, 6116, 11, 230, 5, 230, 6118, 10, 230, 3, 230, 3, 230, 5, 230, 6122, 10, 230, 3, 230, 3, 230, 3, 230, 3, 230, 7, 230, 6128, 10, 230, 12, 230, 14, 230, 6131, 11, 230, 5, 230, 6133, 10, 230, 3, 231, 3, 231, 5, 231, 6137, 10, 231, 3, 231, 5, 231, 6140, 10, 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, 5, 231, 6154, 10, 231, 3, 231, 3, 231, 5, 231, 6158, 10, 231, 3, 231, 5, 231, 6161, 10, 231, 3, 231, 3, 231, 5, 231, 6165, 10, 231, 3, 231, 5, 231, 6168, 10, 231, 3, 232, 3, 232, 3, 232, 5, 232, 6173, 10, 232, 3, 232, 5, 232, 6176, 10, 232, 3, 232, 3, 232, 3, 232, 3, 232, 5, 232, 6182, 10, 232, 3, 232, 5, 232, 6185, 10, 232, 3, 232, 3, 232, 3, 232, 7, 232, 6190, 10, 232, 12, 232, 14, 232, 6193, 11, 232, 3, 232, 5, 232, 6196, 10, 232, 5, 232, 6198, 10, 232, 3, 232, 3, 232, 3, 232, 3, 232, 7, 232, 6204, 10, 232, 12, 232, 14, 232, 6207, 11, 232, 5, 232, 6209, 10, 232, 3, 232, 3, 232, 5, 232, 6213, 10, 232, 3, 232, 3, 232, 3, 232, 3, 233, 3, 233, 5, 233, 6220, 10, 233, 3, 234, 3, 234, 3, 234, 5, 234, 6225, 10, 234, 3, 234, 5, 234, 6228, 10, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 7, 234, 6238, 10, 234, 12, 234, 14, 234, 6241, 11, 234, 5, 234, 6243, 10, 234, 3, 234, 3, 234, 3, 234, 3, 234, 5, 234, 6249, 10, 234, 3, 234, 3, 234, 3, 234, 7, 234, 6254, 10, 234, 12, 234, 14, 234, 6257, 11, 234, 3, 234, 3, 234, 5, 234, 6261, 10, 234, 3, 234, 3, 234, 3, 234, 5, 234, 6266, 10, 234, 3, 234, 3, 234, 3, 234, 3, 235, 3, 235, 5, 235, 6273, 10, 235, 3, 236, 3, 236, 3, 237, 3, 237, 3, 237, 5, 237, 6280, 10, 237, 3, 237, 5, 237, 6283, 10, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 5, 237, 6291, 10, 237, 3, 237, 3, 237, 3, 237, 3, 237, 7, 237, 6297, 10, 237, 12, 237, 14, 237, 6300, 11, 237, 5, 237, 6302, 10, 237, 3, 237, 3, 237, 3, 237, 3, 237, 7, 237, 6308, 10, 237, 12, 237, 14, 237, 6311, 11, 237, 3, 237, 3, 237, 3, 237, 3, 238, 3, 238, 3, 239, 3, 239, 3, 239, 5, 239, 6321, 10, 239, 3, 239, 5, 239, 6324, 10, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 7, 239, 6332, 10, 239, 12, 239, 14, 239, 6335, 11, 239, 3, 239, 3, 239, 3, 239, 3, 239, 5, 239, 6341, 10, 239, 3, 239, 3, 239, 3, 239, 5, 239, 6346, 10, 239, 3, 239, 5, 239, 6349, 10, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 7, 240, 6357, 10, 240, 12, 240, 14, 240, 6360, 11, 240, 5, 240, 6362, 10, 240, 3, 240, 5, 240, 6365, 10, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 5, 240, 6373, 10, 240, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 7, 241, 6382, 10, 241, 12, 241, 14, 241, 6385, 11, 241, 5, 241, 6387, 10, 241, 3, 241, 5, 241, 6390, 10, 241, 3, 241, 3, 241, 7, 241, 6394, 10, 241, 12, 241, 14, 241, 6397, 11, 241, 3, 241, 3, 241, 5, 241, 6401, 10, 241, 3, 241, 3, 241, 5, 241, 6405, 10, 241, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 7, 242, 6413, 10, 242, 12, 242, 14, 242, 6416, 11, 242, 5, 242, 6418, 10, 242, 3, 242, 5, 242, 6421, 10, 242, 3, 242, 3, 242, 7, 242, 6425, 10, 242, 12, 242, 14, 242, 6428, 11, 242, 3, 242, 3, 242, 3, 242, 5, 242, 6433, 10, 242, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 243, 5, 243, 6441, 10, 243, 3, 243, 5, 243, 6444, 10, 243, 3, 243, 3, 243, 5, 243, 6448, 10, 243, 3, 243, 3, 243, 5, 243, 6452, 10, 243, 3, 243, 5, 243, 6455, 10, 243, 3, 244, 3, 244, 3, 244, 5, 244, 6460, 10, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 5, 245, 6474, 10, 245, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 5, 246, 6490, 10, 246, 3, 246, 3, 246, 5, 246, 6494, 10, 246, 3, 246, 3, 246, 3, 246, 3, 246, 5, 246, 6500, 10, 246, 5, 246, 6502, 10, 246, 3, 246, 5, 246, 6505, 10, 246, 3, 247, 3, 247, 5, 247, 6509, 10, 247, 3, 247, 3, 247, 3, 247, 5, 247, 6514, 10, 247, 3, 247, 3, 247, 3, 247, 5, 247, 6519, 10, 247, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 5, 248, 6527, 10, 248, 3, 248, 3, 248, 3, 248, 5, 248, 6532, 10, 248, 3, 248, 7, 248, 6535, 10, 248, 12, 248, 14, 248, 6538, 11, 248, 3, 248, 3, 248, 3, 248, 5, 248, 6543, 10, 248, 3, 248, 3, 248, 3, 248, 5, 248, 6548, 10, 248, 3, 248, 5, 248, 6551, 10, 248, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 7, 249, 6558, 10, 249, 12, 249, 14, 249, 6561, 11, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 7, 249, 6568, 10, 249, 12, 249, 14, 249, 6571, 11, 249, 5, 249, 6573, 10, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 5, 250, 6582, 10, 250, 3, 250, 3, 250, 3, 250, 3, 250, 7, 250, 6588, 10, 250, 12, 250, 14, 250, 6591, 11, 250, 5, 250, 6593, 10, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 5, 250, 6600, 10, 250, 3, 250, 5, 250, 6603, 10, 250, 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, 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, 6649, 10, 252, 3, 252, 3, 252, 5, 252, 6653, 10, 252, 3, 252, 5, 252, 6656, 10, 252, 3, 253, 3, 253, 3, 253, 3, 253, 5, 253, 6662, 10, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 5, 253, 6674, 10, 253, 5, 253, 6676, 10, 253, 3, 253, 5, 253, 6679, 10, 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, 254, 3, 254, 3, 254, 3, 254, 3, 254, 5, 254, 6704, 10, 254, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 5, 255, 6715, 10, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 5, 255, 6723, 10, 255, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 7, 256, 6732, 10, 256, 12, 256, 14, 256, 6735, 11, 256, 7, 256, 6737, 10, 256, 12, 256, 14, 256, 6740, 11, 256, 5, 256, 6742, 10, 256, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 5, 257, 6750, 10, 257, 3, 258, 3, 258, 3, 258, 3, 258, 3, 259, 3, 259, 3, 259, 3, 259, 5, 259, 6760, 10, 259, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6767, 10, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6774, 10, 260, 5, 260, 6776, 10, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6788, 10, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6799, 10, 260, 3, 260, 3, 260, 5, 260, 6803, 10, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6808, 10, 260, 3, 260, 5, 260, 6811, 10, 260, 5, 260, 6813, 10, 260, 3, 260, 5, 260, 6816, 10, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6828, 10, 260, 5, 260, 6830, 10, 260, 5, 260, 6832, 10, 260, 3, 260, 5, 260, 6835, 10, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6840, 10, 260, 3, 260, 5, 260, 6843, 10, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6848, 10, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6858, 10, 260, 3, 260, 3, 260, 5, 260, 6862, 10, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6867, 10, 260, 3, 260, 5, 260, 6870, 10, 260, 5, 260, 6872, 10, 260, 3, 260, 5, 260, 6875, 10, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6887, 10, 260, 5, 260, 6889, 10, 260, 5, 260, 6891, 10, 260, 3, 260, 5, 260, 6894, 10, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 6900, 10, 260, 3, 261, 3, 261, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 5, 262, 6910, 10, 262, 3, 263, 3, 263, 3, 264, 3, 264, 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, 5, 266, 6930, 10, 266, 3, 267, 3, 267, 3, 267, 3, 267, 5, 267, 6936, 10, 267, 3, 268, 3, 268, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 270, 3, 270, 3, 271, 3, 271, 3, 271, 3, 271, 3, 272, 3, 272, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 5, 273, 6961, 10, 273, 5, 273, 6963, 10, 273, 3, 274, 3, 274, 3, 274, 3, 275, 3, 275, 3, 275, 3, 276, 3, 276, 3, 277, 3, 277, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 5, 280, 6989, 10, 280, 3, 280, 3, 280, 3, 280, 3, 280, 5, 280, 6995, 10, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 5, 280, 7006, 10, 280, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 7014, 10, 281, 3, 281, 5, 281, 7017, 10, 281, 3, 282, 3, 282, 3, 282, 3, 283, 3, 283, 3, 283, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 5, 284, 7031, 10, 284, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 5, 285, 7039, 10, 285, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 5, 286, 7046, 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, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 5, 287, 7069, 10, 287, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 5, 289, 7082, 10, 289, 3, 290, 3, 290, 3, 290, 3, 290, 5, 290, 7088, 10, 290, 3, 290, 3, 290, 3, 290, 7, 290, 7093, 10, 290, 12, 290, 14, 290, 7096, 11, 290, 3, 290, 3, 290, 3, 290, 7, 290, 7101, 10, 290, 12, 290, 14, 290, 7104, 11, 290, 5, 290, 7106, 10, 290, 3, 290, 5, 290, 7109, 10, 290, 3, 291, 3, 291, 3, 291, 3, 291, 3, 292, 3, 292, 3, 292, 5, 292, 7118, 10, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 293, 3, 293, 3, 293, 3, 293, 5, 293, 7128, 10, 293, 3, 293, 3, 293, 3, 293, 7, 293, 7133, 10, 293, 12, 293, 14, 293, 7136, 11, 293, 3, 293, 5, 293, 7139, 10, 293, 3, 294, 3, 294, 5, 294, 7143, 10, 294, 3, 295, 3, 295, 3, 295, 3, 295, 5, 295, 7149, 10, 295, 3, 295, 3, 295, 3, 295, 7, 295, 7154, 10, 295, 12, 295, 14, 295, 7157, 11, 295, 3, 295, 5, 295, 7160, 10, 295, 3, 296, 3, 296, 3, 296, 3, 296, 5, 296, 7166, 10, 296, 3, 296, 3, 296, 3, 296, 7, 296, 7171, 10, 296, 12, 296, 14, 296, 7174, 11, 296, 3, 296, 3, 296, 3, 296, 3, 296, 5, 296, 7180, 10, 296, 3, 296, 5, 296, 7183, 10, 296, 3, 297, 3, 297, 3, 297, 3, 297, 5, 297, 7189, 10, 297, 3, 297, 3, 297, 3, 297, 7, 297, 7194, 10, 297, 12, 297, 14, 297, 7197, 11, 297, 3, 297, 5, 297, 7200, 10, 297, 3, 298, 3, 298, 3, 298, 5, 298, 7205, 10, 298, 3, 298, 3, 298, 3, 298, 5, 298, 7210, 10, 298, 3, 298, 6, 298, 7213, 10, 298, 13, 298, 14, 298, 7214, 3, 298, 3, 298, 3, 299, 3, 299, 3, 299, 3, 299, 5, 299, 7223, 10, 299, 3, 299, 3, 299, 5, 299, 7227, 10, 299, 3, 300, 3, 300, 3, 300, 3, 300, 5, 300, 7233, 10, 300, 3, 300, 3, 300, 3, 300, 7, 300, 7238, 10, 300, 12, 300, 14, 300, 7241, 11, 300, 3, 300, 5, 300, 7244, 10, 300, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 5, 301, 7253, 10, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 5, 301, 7261, 10, 301, 3, 302, 3, 302, 3, 302, 3, 302, 5, 302, 7267, 10, 302, 3, 302, 3, 302, 3, 303, 3, 303, 5, 303, 7273, 10, 303, 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, 5, 305, 7290, 10, 305, 3, 305, 3, 305, 5, 305, 7294, 10, 305, 3, 305, 3, 305, 3, 305, 3, 306, 3, 306, 3, 306, 5, 306, 7302, 10, 306, 3, 306, 3, 306, 5, 306, 7306, 10, 306, 3, 306, 3, 306, 3, 306, 3, 306, 7, 306, 7312, 10, 306, 12, 306, 14, 306, 7315, 11, 306, 3, 306, 5, 306, 7318, 10, 306, 3, 306, 3, 306, 3, 306, 5, 306, 7323, 10, 306, 3, 306, 3, 306, 5, 306, 7327, 10, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 5, 306, 7334, 10, 306, 3, 306, 3, 306, 3, 306, 3, 306, 5, 306, 7340, 10, 306, 5, 306, 7342, 10, 306, 3, 307, 3, 307, 5, 307, 7346, 10, 307, 3, 307, 3, 307, 5, 307, 7350, 10, 307, 3, 307, 3, 307, 5, 307, 7354, 10, 307, 3, 307, 5, 307, 7357, 10, 307, 3, 307, 3, 307, 5, 307, 7361, 10, 307, 3, 307, 3, 307, 3, 307, 3, 307, 5, 307, 7367, 10, 307, 3, 307, 3, 307, 5, 307, 7371, 10, 307, 5, 307, 7373, 10, 307, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7380, 10, 308, 3, 308, 3, 308, 3, 308, 7, 308, 7385, 10, 308, 12, 308, 14, 308, 7388, 11, 308, 5, 308, 7390, 10, 308, 3, 308, 5, 308, 7393, 10, 308, 3, 308, 3, 308, 3, 308, 7, 308, 7398, 10, 308, 12, 308, 14, 308, 7401, 11, 308, 3, 308, 3, 308, 5, 308, 7405, 10, 308, 3, 308, 6, 308, 7408, 10, 308, 13, 308, 14, 308, 7409, 3, 308, 3, 308, 5, 308, 7414, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7420, 10, 308, 6, 308, 7422, 10, 308, 13, 308, 14, 308, 7423, 5, 308, 7426, 10, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7431, 10, 308, 3, 308, 6, 308, 7434, 10, 308, 13, 308, 14, 308, 7435, 6, 308, 7438, 10, 308, 13, 308, 14, 308, 7439, 3, 308, 3, 308, 3, 308, 5, 308, 7445, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7451, 10, 308, 6, 308, 7453, 10, 308, 13, 308, 14, 308, 7454, 6, 308, 7457, 10, 308, 13, 308, 14, 308, 7458, 5, 308, 7461, 10, 308, 3, 308, 3, 308, 5, 308, 7465, 10, 308, 3, 308, 3, 308, 5, 308, 7469, 10, 308, 3, 308, 3, 308, 5, 308, 7473, 10, 308, 3, 308, 3, 308, 5, 308, 7477, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7483, 10, 308, 3, 308, 5, 308, 7486, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7492, 10, 308, 3, 308, 3, 308, 5, 308, 7496, 10, 308, 3, 308, 3, 308, 5, 308, 7500, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7506, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7512, 10, 308, 5, 308, 7514, 10, 308, 3, 308, 5, 308, 7517, 10, 308, 3, 308, 3, 308, 5, 308, 7521, 10, 308, 3, 308, 3, 308, 5, 308, 7525, 10, 308, 3, 308, 3, 308, 5, 308, 7529, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7535, 10, 308, 3, 308, 5, 308, 7538, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7544, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7550, 10, 308, 3, 308, 5, 308, 7553, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7559, 10, 308, 3, 308, 5, 308, 7562, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7568, 10, 308, 3, 308, 5, 308, 7571, 10, 308, 3, 308, 3, 308, 5, 308, 7575, 10, 308, 3, 308, 3, 308, 5, 308, 7579, 10, 308, 3, 308, 3, 308, 5, 308, 7583, 10, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7588, 10, 308, 3, 308, 5, 308, 7591, 10, 308, 3, 308, 3, 308, 5, 308, 7595, 10, 308, 3, 308, 3, 308, 5, 308, 7599, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 7616, 10, 308, 7, 308, 7618, 10, 308, 12, 308, 14, 308, 7621, 11, 308, 5, 308, 7623, 10, 308, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7630, 10, 309, 3, 309, 6, 309, 7633, 10, 309, 13, 309, 14, 309, 7634, 3, 309, 3, 309, 5, 309, 7639, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7645, 10, 309, 6, 309, 7647, 10, 309, 13, 309, 14, 309, 7648, 5, 309, 7651, 10, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7656, 10, 309, 3, 309, 6, 309, 7659, 10, 309, 13, 309, 14, 309, 7660, 6, 309, 7663, 10, 309, 13, 309, 14, 309, 7664, 3, 309, 3, 309, 3, 309, 5, 309, 7670, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7676, 10, 309, 6, 309, 7678, 10, 309, 13, 309, 14, 309, 7679, 6, 309, 7682, 10, 309, 13, 309, 14, 309, 7683, 5, 309, 7686, 10, 309, 3, 309, 3, 309, 5, 309, 7690, 10, 309, 3, 309, 3, 309, 5, 309, 7694, 10, 309, 3, 309, 3, 309, 5, 309, 7698, 10, 309, 3, 309, 3, 309, 5, 309, 7702, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7708, 10, 309, 3, 309, 5, 309, 7711, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7717, 10, 309, 3, 309, 3, 309, 5, 309, 7721, 10, 309, 3, 309, 3, 309, 5, 309, 7725, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7731, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7737, 10, 309, 5, 309, 7739, 10, 309, 3, 309, 5, 309, 7742, 10, 309, 3, 309, 3, 309, 5, 309, 7746, 10, 309, 3, 309, 3, 309, 5, 309, 7750, 10, 309, 3, 309, 3, 309, 5, 309, 7754, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7760, 10, 309, 3, 309, 5, 309, 7763, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7769, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7775, 10, 309, 3, 309, 5, 309, 7778, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7784, 10, 309, 3, 309, 5, 309, 7787, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7793, 10, 309, 3, 309, 5, 309, 7796, 10, 309, 3, 309, 3, 309, 5, 309, 7800, 10, 309, 3, 309, 3, 309, 5, 309, 7804, 10, 309, 3, 309, 3, 309, 5, 309, 7808, 10, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7813, 10, 309, 3, 309, 5, 309, 7816, 10, 309, 3, 309, 3, 309, 5, 309, 7820, 10, 309, 3, 309, 3, 309, 5, 309, 7824, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7830, 10, 309, 3, 309, 5, 309, 7833, 10, 309, 3, 309, 3, 309, 5, 309, 7837, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 7854, 10, 309, 7, 309, 7856, 10, 309, 12, 309, 14, 309, 7859, 11, 309, 5, 309, 7861, 10, 309, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 5, 310, 7875, 10, 310, 3, 310, 3, 310, 3, 310, 3, 310, 5, 310, 7881, 10, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 5, 310, 7889, 10, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 6, 310, 7896, 10, 310, 13, 310, 14, 310, 7897, 3, 310, 5, 310, 7901, 10, 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, 312, 3, 312, 3, 312, 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, 5, 313, 7934, 10, 313, 3, 314, 3, 314, 5, 314, 7938, 10, 314, 3, 314, 3, 314, 5, 314, 7942, 10, 314, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 5, 315, 7949, 10, 315, 3, 316, 3, 316, 3, 316, 3, 316, 3, 317, 3, 317, 3, 317, 3, 318, 3, 318, 5, 318, 7960, 10, 318, 3, 318, 3, 318, 5, 318, 7964, 10, 318, 3, 318, 3, 318, 3, 318, 7, 318, 7969, 10, 318, 12, 318, 14, 318, 7972, 11, 318, 5, 318, 7974, 10, 318, 3, 318, 5, 318, 7977, 10, 318, 3, 318, 3, 318, 3, 318, 3, 318, 7, 318, 7983, 10, 318, 12, 318, 14, 318, 7986, 11, 318, 3, 318, 3, 318, 5, 318, 7990, 10, 318, 3, 318, 3, 318, 3, 318, 5, 318, 7995, 10, 318, 3, 318, 5, 318, 7998, 10, 318, 5, 318, 8000, 10, 318, 3, 319, 3, 319, 5, 319, 8004, 10, 319, 3, 319, 3, 319, 5, 319, 8008, 10, 319, 3, 319, 5, 319, 8011, 10, 319, 3, 319, 3, 319, 5, 319, 8015, 10, 319, 3, 320, 3, 320, 3, 321, 3, 321, 5, 321, 8021, 10, 321, 3, 321, 3, 321, 3, 321, 5, 321, 8026, 10, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 5, 321, 8033, 10, 321, 5, 321, 8035, 10, 321, 3, 321, 3, 321, 5, 321, 8039, 10, 321, 3, 321, 3, 321, 3, 321, 3, 321, 7, 321, 8045, 10, 321, 12, 321, 14, 321, 8048, 11, 321, 3, 321, 3, 321, 3, 321, 5, 321, 8053, 10, 321, 3, 321, 3, 321, 5, 321, 8057, 10, 321, 3, 321, 5, 321, 8060, 10, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 5, 321, 8069, 10, 321, 3, 321, 5, 321, 8072, 10, 321, 3, 321, 3, 321, 3, 321, 3, 321, 5, 321, 8078, 10, 321, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 5, 322, 8085, 10, 322, 3, 322, 3, 322, 3, 322, 5, 322, 8090, 10, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 5, 322, 8098, 10, 322, 3, 323, 3, 323, 3, 323, 5, 323, 8103, 10, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 5, 323, 8115, 10, 323, 5, 323, 8117, 10, 323, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 5, 324, 8128, 10, 324, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 5, 325, 8135, 10, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 7, 325, 8143, 10, 325, 12, 325, 14, 325, 8146, 11, 325, 3, 326, 3, 326, 3, 326, 3, 326, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 5, 327, 8168, 10, 327, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 5, 328, 8181, 10, 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, 5, 329, 8197, 10, 329, 3, 329, 3, 329, 3, 329, 5, 329, 8202, 10, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 5, 329, 8209, 10, 329, 3, 329, 5, 329, 8212, 10, 329, 6, 329, 8214, 10, 329, 13, 329, 14, 329, 8215, 5, 329, 8218, 10, 329, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 5, 330, 8235, 10, 330, 3, 331, 3, 331, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 5, 332, 8250, 10, 332, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 5, 333, 8258, 10, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 5, 333, 8267, 10, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 5, 333, 8275, 10, 333, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 5, 334, 8284, 10, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 5, 334, 8295, 10, 334, 3, 334, 3, 334, 5, 334, 8299, 10, 334, 5, 334, 8301, 10, 334, 5, 334, 8303, 10, 334, 3, 335, 3, 335, 3, 335, 3, 335, 5, 335, 8309, 10, 335, 3, 335, 3, 335, 3, 335, 5, 335, 8314, 10, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 5, 335, 8321, 10, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 5, 335, 8334, 10, 335, 5, 335, 8336, 10, 335, 5, 335, 8338, 10, 335, 3, 335, 5, 335, 8341, 10, 335, 3, 335, 5, 335, 8344, 10, 335, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 5, 336, 8351, 10, 336, 3, 336, 5, 336, 8354, 10, 336, 3, 336, 3, 336, 3, 336, 3, 336, 5, 336, 8360, 10, 336, 3, 336, 3, 336, 3, 336, 5, 336, 8365, 10, 336, 5, 336, 8367, 10, 336, 3, 336, 5, 336, 8370, 10, 336, 3, 336, 3, 336, 3, 336, 3, 336, 5, 336, 8376, 10, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 5, 336, 8384, 10, 336, 5, 336, 8386, 10, 336, 3, 336, 5, 336, 8389, 10, 336, 3, 336, 3, 336, 5, 336, 8393, 10, 336, 3, 336, 5, 336, 8396, 10, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 5, 336, 8406, 10, 336, 3, 336, 5, 336, 8409, 10, 336, 3, 336, 3, 336, 5, 336, 8413, 10, 336, 3, 336, 5, 336, 8416, 10, 336, 3, 336, 3, 336, 3, 336, 3, 336, 5, 336, 8422, 10, 336, 3, 336, 5, 336, 8425, 10, 336, 5, 336, 8427, 10, 336, 3, 337, 3, 337, 5, 337, 8431, 10, 337, 3, 338, 3, 338, 3, 338, 5, 338, 8436, 10, 338, 3, 339, 3, 339, 5, 339, 8440, 10, 339, 3, 340, 3, 340, 3, 340, 5, 340, 8445, 10, 340, 3, 341, 3, 341, 3, 341, 5, 341, 8450, 10, 341, 3, 342, 3, 342, 3, 342, 3, 342, 3, 342, 3, 342, 5, 342, 8458, 10, 342, 3, 342, 3, 342, 5, 342, 8462, 10, 342, 3, 342, 5, 342, 8465, 10, 342, 3, 343, 3, 343, 3, 343, 5, 343, 8470, 10, 343, 3, 344, 3, 344, 3, 344, 3, 344, 3, 345, 3, 345, 5, 345, 8478, 10, 345, 3, 345, 3, 345, 3, 345, 5, 345, 8483, 10, 345, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 347, 3, 347, 3, 347, 5, 347, 8493, 10, 347, 3, 347, 3, 347, 3, 347, 3, 348, 3, 348, 3, 348, 3, 348, 3, 349, 3, 349, 5, 349, 8504, 10, 349, 3, 349, 7, 349, 8507, 10, 349, 12, 349, 14, 349, 8510, 11, 349, 3, 350, 3, 350, 3, 350, 5, 350, 8515, 10, 350, 3, 351, 3, 351, 3, 351, 3, 351, 5, 351, 8521, 10, 351, 3, 351, 3, 351, 5, 351, 8525, 10, 351, 3, 351, 5, 351, 8528, 10, 351, 3, 351, 3, 351, 5, 351, 8532, 10, 351, 3, 351, 3, 351, 5, 351, 8536, 10, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 5, 351, 8544, 10, 351, 3, 351, 3, 351, 3, 351, 5, 351, 8549, 10, 351, 5, 351, 8551, 10, 351, 3, 351, 5, 351, 8554, 10, 351, 3, 351, 7, 351, 8557, 10, 351, 12, 351, 14, 351, 8560, 11, 351, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 5, 352, 8568, 10, 352, 3, 353, 3, 353, 5, 353, 8572, 10, 353, 3, 353, 3, 353, 3, 353, 5, 353, 8577, 10, 353, 3, 353, 5, 353, 8580, 10, 353, 3, 353, 5, 353, 8583, 10, 353, 3, 353, 3, 353, 3, 353, 3, 353, 5, 353, 8589, 10, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 5, 353, 8597, 10, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 5, 353, 8605, 10, 353, 3, 353, 5, 353, 8608, 10, 353, 3, 353, 5, 353, 8611, 10, 353, 3, 354, 3, 354, 5, 354, 8615, 10, 354, 3, 354, 3, 354, 3, 354, 5, 354, 8620, 10, 354, 3, 354, 5, 354, 8623, 10, 354, 3, 354, 3, 354, 3, 354, 3, 354, 5, 354, 8629, 10, 354, 3, 354, 3, 354, 5, 354, 8633, 10, 354, 3, 354, 3, 354, 3, 354, 3, 354, 5, 354, 8639, 10, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 5, 354, 8647, 10, 354, 3, 354, 3, 354, 3, 354, 3, 354, 6, 354, 8653, 10, 354, 13, 354, 14, 354, 8654, 3, 354, 5, 354, 8658, 10, 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, 5, 354, 8673, 10, 354, 3, 354, 5, 354, 8676, 10, 354, 3, 354, 5, 354, 8679, 10, 354, 5, 354, 8681, 10, 354, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 5, 355, 8692, 10, 355, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 5, 356, 8703, 10, 356, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 7, 357, 8710, 10, 357, 12, 357, 14, 357, 8713, 11, 357, 3, 357, 3, 357, 3, 358, 3, 358, 3, 358, 3, 358, 3, 358, 5, 358, 8722, 10, 358, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 5, 359, 8732, 10, 359, 5, 359, 8734, 10, 359, 5, 359, 8736, 10, 359, 3, 359, 5, 359, 8739, 10, 359, 3, 359, 5, 359, 8742, 10, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 5, 359, 8753, 10, 359, 5, 359, 8755, 10, 359, 5, 359, 8757, 10, 359, 3, 359, 5, 359, 8760, 10, 359, 3, 360, 7, 360, 8763, 10, 360, 12, 360, 14, 360, 8766, 11, 360, 3, 360, 3, 360, 3, 360, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 5, 361, 8776, 10, 361, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 5, 362, 8785, 10, 362, 3, 362, 5, 362, 8788, 10, 362, 3, 362, 5, 362, 8791, 10, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 7, 362, 8798, 10, 362, 12, 362, 14, 362, 8801, 11, 362, 5, 362, 8803, 10, 362, 3, 362, 5, 362, 8806, 10, 362, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 5, 363, 8813, 10, 363, 3, 363, 5, 363, 8816, 10, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 5, 363, 8831, 10, 363, 3, 363, 5, 363, 8834, 10, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 5, 363, 8841, 10, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 5, 363, 8857, 10, 363, 3, 364, 3, 364, 5, 364, 8861, 10, 364, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 5, 365, 8871, 10, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 7, 365, 8890, 10, 365, 12, 365, 14, 365, 8893, 11, 365, 3, 366, 3, 366, 3, 366, 3, 366, 5, 366, 8899, 10, 366, 3, 367, 3, 367, 3, 367, 6, 367, 8904, 10, 367, 13, 367, 14, 367, 8905, 3, 367, 3, 367, 5, 367, 8910, 10, 367, 3, 367, 3, 367, 3, 367, 3, 367, 6, 367, 8916, 10, 367, 13, 367, 14, 367, 8917, 3, 367, 3, 367, 5, 367, 8922, 10, 367, 3, 367, 3, 367, 5, 367, 8926, 10, 367, 3, 368, 3, 368, 3, 368, 3, 368, 5, 368, 8932, 10, 368, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 5, 369, 8942, 10, 369, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 5, 370, 8952, 10, 370, 3, 371, 3, 371, 3, 372, 3, 372, 3, 372, 5, 372, 8959, 10, 372, 3, 372, 3, 372, 3, 372, 7, 372, 8964, 10, 372, 12, 372, 14, 372, 8967, 11, 372, 3, 372, 3, 372, 3, 372, 3, 372, 3, 372, 3, 372, 5, 372, 8975, 10, 372, 3, 372, 3, 372, 3, 372, 3, 372, 3, 372, 5, 372, 8982, 10, 372, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 5, 373, 8989, 10, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 374, 3, 374, 5, 374, 8998, 10, 374, 3, 374, 3, 374, 5, 374, 9002, 10, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 5, 374, 9012, 10, 374, 3, 375, 3, 375, 3, 375, 7, 375, 9017, 10, 375, 12, 375, 14, 375, 9020, 11, 375, 3, 376, 3, 376, 3, 376, 7, 376, 9025, 10, 376, 12, 376, 14, 376, 9028, 11, 376, 3, 377, 3, 377, 3, 377, 7, 377, 9033, 10, 377, 12, 377, 14, 377, 9036, 11, 377, 3, 378, 5, 378, 9039, 10, 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, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 5, 379, 9061, 10, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 5, 379, 9070, 10, 379, 3, 379, 3, 379, 3, 379, 3, 379, 5, 379, 9076, 10, 379, 3, 379, 3, 379, 3, 379, 3, 379, 5, 379, 9082, 10, 379, 3, 379, 3, 379, 3, 379, 3, 379, 5, 379, 9088, 10, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 5, 379, 9098, 10, 379, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 5, 380, 9105, 10, 380, 3, 380, 7, 380, 9108, 10, 380, 12, 380, 14, 380, 9111, 11, 380, 3, 381, 3, 381, 5, 381, 9115, 10, 381, 3, 381, 3, 381, 5, 381, 9119, 10, 381, 3, 381, 3, 381, 3, 381, 3, 381, 3, 381, 5, 381, 9126, 10, 381, 3, 382, 3, 382, 5, 382, 9130, 10, 382, 3, 382, 5, 382, 9133, 10, 382, 3, 382, 3, 382, 3, 382, 5, 382, 9138, 10, 382, 3, 382, 3, 382, 5, 382, 9142, 10, 382, 3, 382, 3, 382, 5, 382, 9146, 10, 382, 3, 382, 3, 382, 3, 382, 5, 382, 9151, 10, 382, 3, 382, 3, 382, 3, 382, 7, 382, 9156, 10, 382, 12, 382, 14, 382, 9159, 11, 382, 5, 382, 9161, 10, 382, 3, 382, 3, 382, 5, 382, 9165, 10, 382, 3, 383, 3, 383, 3, 383, 5, 383, 9170, 10, 383, 3, 383, 3, 383, 5, 383, 9174, 10, 383, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 5, 384, 9183, 10, 384, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 5, 385, 9190, 10, 385, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 7, 386, 9197, 10, 386, 12, 386, 14, 386, 9200, 11, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 9211, 10, 386, 5, 386, 9213, 10, 386, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 5, 387, 9223, 10, 387, 3, 387, 5, 387, 9226, 10, 387, 3, 387, 7, 387, 9229, 10, 387, 12, 387, 14, 387, 9232, 11, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 5, 387, 9240, 10, 387, 5, 387, 9242, 10, 387, 5, 387, 9244, 10, 387, 3, 387, 3, 387, 3, 387, 5, 387, 9249, 10, 387, 3, 387, 3, 387, 3, 387, 3, 387, 7, 387, 9255, 10, 387, 12, 387, 14, 387, 9258, 11, 387, 3, 387, 3, 387, 5, 387, 9262, 10, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 5, 387, 9270, 10, 387, 3, 387, 7, 387, 9273, 10, 387, 12, 387, 14, 387, 9276, 11, 387, 3, 387, 3, 387, 3, 387, 5, 387, 9281, 10, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 5, 387, 9291, 10, 387, 5, 387, 9293, 10, 387, 3, 387, 3, 387, 5, 387, 9297, 10, 387, 3, 387, 3, 387, 5, 387, 9301, 10, 387, 5, 387, 9303, 10, 387, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 5, 388, 9312, 10, 388, 5, 388, 9314, 10, 388, 3, 389, 3, 389, 5, 389, 9318, 10, 389, 3, 390, 3, 390, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 7, 391, 9327, 10, 391, 12, 391, 14, 391, 9330, 11, 391, 3, 391, 3, 391, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 7, 392, 9361, 10, 392, 12, 392, 14, 392, 9364, 11, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 5, 392, 9379, 10, 392, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 5, 393, 9386, 10, 393, 5, 393, 9388, 10, 393, 3, 394, 3, 394, 3, 394, 7, 394, 9393, 10, 394, 12, 394, 14, 394, 9396, 11, 394, 3, 395, 3, 395, 3, 395, 3, 395, 7, 395, 9402, 10, 395, 12, 395, 14, 395, 9405, 11, 395, 3, 395, 3, 395, 3, 396, 3, 396, 3, 396, 5, 396, 9412, 10, 396, 3, 396, 3, 396, 3, 397, 3, 397, 3, 397, 5, 397, 9419, 10, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 5, 397, 9426, 10, 397, 3, 397, 5, 397, 9429, 10, 397, 3, 397, 5, 397, 9432, 10, 397, 3, 398, 3, 398, 3, 398, 3, 398, 3, 398, 5, 398, 9439, 10, 398, 3, 398, 3, 398, 3, 398, 3, 398, 3, 398, 5, 398, 9446, 10, 398, 3, 398, 5, 398, 9449, 10, 398, 5, 398, 9451, 10, 398, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 5, 399, 9459, 10, 399, 5, 399, 9461, 10, 399, 3, 400, 3, 400, 3, 400, 3, 400, 5, 400, 9467, 10, 400, 3, 401, 3, 401, 3, 401, 7, 401, 9472, 10, 401, 12, 401, 14, 401, 9475, 11, 401, 3, 402, 3, 402, 3, 402, 3, 402, 3, 402, 5, 402, 9482, 10, 402, 3, 403, 3, 403, 7, 403, 9486, 10, 403, 12, 403, 14, 403, 9489, 11, 403, 3, 404, 3, 404, 5, 404, 9493, 10, 404, 3, 404, 3, 404, 5, 404, 9497, 10, 404, 3, 404, 3, 404, 5, 404, 9501, 10, 404, 3, 404, 3, 404, 3, 404, 5, 404, 9506, 10, 404, 5, 404, 9508, 10, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 5, 404, 9516, 10, 404, 5, 404, 9518, 10, 404, 3, 404, 3, 404, 5, 404, 9522, 10, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 5, 404, 9529, 10, 404, 5, 404, 9531, 10, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 5, 404, 9538, 10, 404, 5, 404, 9540, 10, 404, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 5, 405, 9549, 10, 405, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 5, 405, 9557, 10, 405, 3, 406, 3, 406, 3, 406, 7, 406, 9562, 10, 406, 12, 406, 14, 406, 9565, 11, 406, 3, 407, 3, 407, 3, 407, 5, 407, 9570, 10, 407, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 409, 5, 409, 9581, 10, 409, 3, 409, 3, 409, 5, 409, 9585, 10, 409, 5, 409, 9587, 10, 409, 3, 409, 5, 409, 9590, 10, 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, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 5, 409, 9614, 10, 409, 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, 412, 3, 412, 3, 412, 7, 412, 9637, 10, 412, 12, 412, 14, 412, 9640, 11, 412, 3, 413, 3, 413, 5, 413, 9644, 10, 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, 7, 414, 9662, 10, 414, 12, 414, 14, 414, 9665, 11, 414, 3, 414, 5, 414, 9668, 10, 414, 3, 414, 3, 414, 5, 414, 9672, 10, 414, 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, 5, 416, 9688, 10, 416, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 5, 417, 9708, 10, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 5, 417, 9766, 10, 417, 3, 417, 3, 417, 5, 417, 9770, 10, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 5, 417, 9818, 10, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 5, 417, 9834, 10, 417, 5, 417, 9836, 10, 417, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 5, 418, 9843, 10, 418, 3, 419, 3, 419, 3, 419, 3, 419, 5, 419, 9849, 10, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 5, 419, 9862, 10, 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, 5, 419, 9877, 10, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 5, 419, 9888, 10, 419, 3, 420, 3, 420, 3, 420, 5, 420, 9893, 10, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 5, 420, 9903, 10, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 5, 420, 9912, 10, 420, 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, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 426, 5, 426, 9946, 10, 426, 3, 426, 3, 426, 3, 427, 5, 427, 9951, 10, 427, 3, 427, 3, 427, 3, 428, 3, 428, 5, 428, 9957, 10, 428, 3, 429, 5, 429, 9960, 10, 429, 3, 429, 3, 429, 3, 429, 5, 429, 9965, 10, 429, 3, 429, 7, 429, 9968, 10, 429, 12, 429, 14, 429, 9971, 11, 429, 3, 429, 3, 429, 3, 430, 3, 430, 3, 430, 3, 430, 5, 430, 9979, 10, 430, 3, 430, 7, 430, 9982, 10, 430, 12, 430, 14, 430, 9985, 11, 430, 3, 430, 3, 430, 3, 431, 5, 431, 9990, 10, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 7, 431, 9997, 10, 431, 12, 431, 14, 431, 10000, 11, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 7, 431, 10007, 10, 431, 12, 431, 14, 431, 10010, 11, 431, 5, 431, 10012, 10, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 7, 431, 10024, 10, 431, 12, 431, 14, 431, 10027, 11, 431, 3, 431, 3, 431, 3, 431, 5, 431, 10032, 10, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 5, 431, 10040, 10, 431, 3, 432, 3, 432, 5, 432, 10044, 10, 432, 3, 433, 3, 433, 3, 433, 3, 433, 7, 433, 10050, 10, 433, 12, 433, 14, 433, 10053, 11, 433, 3, 433, 3, 433, 3, 434, 3, 434, 5, 434, 10059, 10, 434, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 7, 435, 10070, 10, 435, 12, 435, 14, 435, 10073, 11, 435, 3, 436, 3, 436, 3, 436, 7, 436, 10078, 10, 436, 12, 436, 14, 436, 10081, 11, 436, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 5, 437, 10093, 10, 437, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 5, 438, 10100, 10, 438, 3, 438, 3, 438, 3, 438, 3, 438, 5, 438, 10106, 10, 438, 3, 438, 3, 438, 5, 438, 10110, 10, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 5, 438, 10127, 10, 438, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 5, 439, 10142, 10, 439, 5, 439, 10144, 10, 439, 3, 439, 3, 439, 3, 439, 5, 439, 10149, 10, 439, 3, 440, 5, 440, 10152, 10, 440, 3, 440, 3, 440, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 5, 441, 10161, 10, 441, 3, 441, 5, 441, 10164, 10, 441, 3, 441, 5, 441, 10167, 10, 441, 3, 441, 3, 441, 3, 442, 3, 442, 3, 442, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 5, 443, 10180, 10, 443, 3, 444, 3, 444, 5, 444, 10184, 10, 444, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 5, 445, 10192, 10, 445, 3, 446, 3, 446, 3, 446, 3, 446, 5, 446, 10198, 10, 446, 3, 447, 3, 447, 3, 447, 3, 447, 7, 447, 10204, 10, 447, 12, 447, 14, 447, 10207, 11, 447, 3, 447, 3, 447, 3, 447, 3, 447, 5, 447, 10213, 10, 447, 3, 447, 3, 447, 3, 447, 3, 447, 5, 447, 10219, 10, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 5, 447, 10234, 10, 447, 3, 448, 3, 448, 3, 448, 3, 448, 3, 448, 3, 448, 3, 448, 5, 448, 10243, 10, 448, 3, 448, 3, 448, 3, 449, 3, 449, 5, 449, 10249, 10, 449, 3, 450, 3, 450, 3, 450, 3, 450, 5, 450, 10255, 10, 450, 3, 450, 5, 450, 10258, 10, 450, 3, 450, 3, 450, 5, 450, 10262, 10, 450, 3, 450, 3, 450, 3, 450, 7, 450, 10267, 10, 450, 12, 450, 14, 450, 10270, 11, 450, 3, 451, 3, 451, 3, 451, 3, 451, 3, 451, 5, 451, 10277, 10, 451, 3, 451, 5, 451, 10280, 10, 451, 3, 451, 3, 451, 3, 451, 3, 451, 5, 451, 10286, 10, 451, 3, 451, 3, 451, 3, 451, 3, 451, 5, 451, 10292, 10, 451, 5, 451, 10294, 10, 451, 3, 451, 3, 451, 3, 451, 3, 451, 5, 451, 10300, 10, 451, 3, 451, 5, 451, 10303, 10, 451, 5, 451, 10305, 10, 451, 3, 451, 3, 451, 3, 451, 3, 451, 5, 451, 10311, 10, 451, 5, 451, 10313, 10, 451, 3, 451, 3, 451, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 5, 452, 10327, 10, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 5, 452, 10334, 10, 452, 3, 452, 3, 452, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 5, 453, 10343, 10, 453, 3, 454, 3, 454, 3, 454, 3, 454, 3, 454, 5, 454, 10350, 10, 454, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 5, 455, 10362, 10, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 5, 455, 10369, 10, 455, 3, 455, 3, 455, 3, 456, 3, 456, 3, 456, 5, 456, 10376, 10, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 5, 456, 10383, 10, 456, 3, 456, 3, 456, 3, 456, 3, 456, 5, 456, 10389, 10, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 5, 456, 10396, 10, 456, 3, 456, 5, 456, 10399, 10, 456, 3, 457, 3, 457, 3, 457, 5, 457, 10404, 10, 457, 3, 457, 3, 457, 3, 458, 3, 458, 3, 458, 5, 458, 10411, 10, 458, 3, 458, 3, 458, 3, 459, 3, 459, 3, 459, 3, 459, 5, 459, 10419, 10, 459, 3, 459, 3, 459, 5, 459, 10423, 10, 459, 3, 459, 5, 459, 10426, 10, 459, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 5, 460, 10434, 10, 460, 3, 460, 3, 460, 5, 460, 10438, 10, 460, 3, 460, 5, 460, 10441, 10, 460, 3, 461, 3, 461, 5, 461, 10445, 10, 461, 3, 462, 3, 462, 3, 462, 5, 462, 10450, 10, 462, 3, 462, 3, 462, 3, 462, 3, 462, 5, 462, 10456, 10, 462, 3, 462, 3, 462, 3, 462, 3, 462, 5, 462, 10462, 10, 462, 3, 462, 3, 462, 3, 462, 3, 462, 5, 462, 10468, 10, 462, 3, 462, 3, 462, 3, 462, 3, 462, 5, 462, 10474, 10, 462, 3, 462, 3, 462, 3, 462, 3, 462, 5, 462, 10480, 10, 462, 3, 462, 3, 462, 3, 462, 3, 462, 5, 462, 10486, 10, 462, 3, 462, 3, 462, 3, 462, 3, 462, 5, 462, 10492, 10, 462, 3, 462, 5, 462, 10495, 10, 462, 3, 463, 3, 463, 5, 463, 10499, 10, 463, 3, 463, 3, 463, 3, 463, 5, 463, 10504, 10, 463, 7, 463, 10506, 10, 463, 12, 463, 14, 463, 10509, 11, 463, 3, 464, 3, 464, 3, 464, 7, 464, 10514, 10, 464, 12, 464, 14, 464, 10517, 11, 464, 3, 465, 3, 465, 5, 465, 10521, 10, 465, 3, 466, 3, 466, 3, 467, 3, 467, 3, 468, 5, 468, 10528, 10, 468, 3, 468, 3, 468, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 5, 469, 10537, 10, 469, 5, 469, 10539, 10, 469, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 5, 470, 10546, 10, 470, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 5, 471, 10558, 10, 471, 3, 472, 3, 472, 3, 472, 5, 472, 10563, 10, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 5, 472, 10574, 10, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 5, 472, 10584, 10, 472, 5, 472, 10586, 10, 472, 3, 472, 3, 472, 3, 472, 3, 472, 5, 472, 10592, 10, 472, 5, 472, 10594, 10, 472, 3, 472, 3, 472, 3, 472, 5, 472, 10599, 10, 472, 5, 472, 10601, 10, 472, 3, 472, 5, 472, 10604, 10, 472, 3, 473, 3, 473, 5, 473, 10608, 10, 473, 3, 474, 3, 474, 5, 474, 10612, 10, 474, 3, 475, 3, 475, 3, 475, 3, 475, 5, 475, 10618, 10, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 5, 475, 10627, 10, 475, 3, 475, 5, 475, 10630, 10, 475, 5, 475, 10632, 10, 475, 3, 476, 5, 476, 10635, 10, 476, 3, 476, 3, 476, 3, 476, 3, 476, 5, 476, 10641, 10, 476, 3, 476, 3, 476, 5, 476, 10645, 10, 476, 3, 476, 5, 476, 10648, 10, 476, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 5, 477, 10657, 10, 477, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 5, 478, 10666, 10, 478, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 5, 479, 10678, 10, 479, 3, 479, 5, 479, 10681, 10, 479, 3, 480, 3, 480, 5, 480, 10685, 10, 480, 3, 480, 3, 480, 3, 480, 3, 480, 5, 480, 10691, 10, 480, 3, 480, 5, 480, 10694, 10, 480, 3, 480, 3, 480, 5, 480, 10698, 10, 480, 3, 480, 3, 480, 3, 480, 3, 480, 5, 480, 10704, 10, 480, 3, 481, 3, 481, 3, 481, 5, 481, 10709, 10, 481, 3, 482, 3, 482, 3, 482, 5, 482, 10714, 10, 482, 3, 482, 3, 482, 5, 482, 10718, 10, 482, 3, 482, 3, 482, 5, 482, 10722, 10, 482, 3, 482, 3, 482, 5, 482, 10726, 10, 482, 3, 483, 3, 483, 3, 484, 3, 484, 3, 484, 5, 484, 10733, 10, 484, 3, 485, 3, 485, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 5, 486, 10752, 10, 486, 3, 487, 3, 487, 3, 488, 3, 488, 5, 488, 10758, 10, 488, 3, 488, 2, 4, 94, 728, 489, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 934, 936, 938, 940, 942, 944, 946, 948, 950, 952, 954, 956, 958, 960, 962, 964, 966, 968, 970, 972, 974, 2, 139, 3, 2, 801, 802, 4, 2, 801, 801, 806, 806, 4, 2, 469, 469, 757, 758, 4, 2, 801, 802, 806, 806, 4, 2, 187, 187, 722, 722, 5, 2, 798, 798, 801, 801, 806, 806, 5, 2, 124, 124, 299, 299, 360, 360, 4, 2, 226, 226, 229, 229, 3, 2, 806, 807, 3, 2, 292, 296, 4, 2, 450, 450, 631, 631, 4, 2, 302, 302, 625, 625, 5, 2, 84, 84, 302, 302, 625, 625, 5, 2, 213, 213, 256, 256, 707, 708, 4, 2, 19, 19, 748, 748, 4, 2, 23, 23, 574, 574, 4, 2, 6, 6, 671, 671, 5, 2, 6, 6, 611, 611, 669, 669, 4, 2, 10, 10, 73, 73, 4, 2, 4, 4, 103, 103, 4, 2, 495, 495, 723, 723, 4, 2, 480, 480, 489, 489, 4, 2, 802, 802, 806, 806, 4, 2, 552, 552, 589, 589, 4, 2, 8, 9, 219, 219, 5, 2, 213, 213, 247, 247, 249, 249, 4, 2, 331, 331, 334, 334, 4, 2, 11, 11, 237, 237, 3, 2, 804, 805, 4, 2, 4, 4, 315, 315, 4, 2, 182, 182, 376, 376, 3, 2, 262, 263, 4, 2, 802, 802, 806, 807, 4, 2, 206, 206, 358, 358, 4, 2, 201, 201, 324, 324, 4, 2, 269, 269, 480, 480, 4, 2, 804, 804, 806, 806, 4, 2, 93, 93, 145, 145, 6, 2, 92, 92, 162, 162, 305, 305, 361, 361, 4, 2, 30, 30, 511, 511, 4, 2, 162, 162, 361, 361, 4, 2, 92, 92, 361, 361, 5, 2, 522, 522, 589, 589, 753, 753, 4, 2, 774, 774, 802, 802, 5, 2, 66, 66, 317, 317, 501, 501, 4, 2, 89, 89, 806, 806, 4, 2, 89, 89, 802, 802, 4, 2, 567, 567, 806, 806, 5, 2, 522, 522, 552, 552, 589, 589, 7, 2, 388, 390, 474, 474, 476, 476, 665, 667, 763, 764, 4, 2, 133, 133, 139, 139, 5, 2, 533, 533, 573, 573, 590, 590, 5, 2, 13, 13, 342, 342, 543, 543, 4, 2, 213, 213, 243, 243, 3, 2, 258, 259, 5, 2, 92, 92, 162, 162, 361, 361, 4, 2, 133, 133, 392, 392, 4, 2, 634, 635, 672, 672, 4, 2, 245, 245, 700, 700, 4, 2, 6, 6, 158, 158, 5, 2, 492, 492, 702, 702, 782, 782, 5, 2, 339, 339, 408, 408, 480, 480, 5, 2, 462, 462, 535, 535, 598, 598, 4, 2, 525, 525, 567, 567, 4, 2, 6, 6, 166, 167, 5, 2, 171, 171, 208, 208, 222, 222, 5, 2, 275, 275, 337, 337, 482, 482, 4, 2, 107, 107, 482, 482, 5, 2, 6, 6, 380, 380, 642, 642, 4, 2, 140, 140, 226, 226, 5, 2, 487, 487, 626, 626, 629, 629, 4, 2, 669, 669, 671, 671, 5, 2, 604, 604, 692, 692, 727, 727, 5, 2, 397, 397, 482, 482, 517, 517, 4, 2, 280, 280, 746, 746, 4, 2, 517, 517, 726, 726, 5, 2, 140, 140, 426, 426, 726, 726, 5, 2, 213, 213, 434, 434, 761, 761, 4, 2, 598, 598, 710, 710, 4, 2, 129, 129, 507, 507, 5, 2, 97, 97, 341, 341, 363, 363, 4, 2, 57, 57, 218, 218, 4, 2, 160, 160, 211, 211, 4, 2, 215, 215, 319, 319, 4, 2, 210, 210, 518, 518, 4, 2, 217, 217, 434, 434, 4, 2, 67, 67, 336, 336, 4, 2, 214, 214, 286, 286, 4, 2, 185, 185, 216, 216, 4, 2, 388, 390, 764, 764, 4, 2, 366, 366, 571, 571, 3, 2, 634, 635, 4, 2, 129, 129, 807, 807, 4, 2, 465, 465, 492, 492, 4, 2, 499, 499, 733, 733, 4, 2, 339, 339, 370, 370, 3, 2, 349, 350, 6, 2, 427, 427, 637, 637, 715, 715, 806, 806, 4, 2, 443, 443, 484, 484, 4, 2, 16, 16, 59, 59, 4, 2, 545, 545, 716, 716, 4, 2, 519, 519, 704, 704, 6, 2, 485, 485, 506, 506, 557, 557, 734, 734, 5, 2, 632, 632, 669, 669, 705, 705, 4, 2, 382, 382, 678, 678, 3, 2, 833, 835, 5, 2, 822, 822, 836, 837, 839, 841, 3, 2, 836, 837, 5, 2, 6, 6, 13, 13, 321, 321, 4, 2, 6, 6, 98, 98, 3, 2, 808, 809, 4, 2, 697, 697, 700, 700, 4, 2, 512, 512, 610, 610, 4, 2, 3, 3, 793, 793, 4, 2, 408, 408, 643, 643, 4, 2, 17, 17, 94, 94, 4, 2, 238, 238, 531, 531, 5, 2, 201, 201, 441, 441, 531, 531, 5, 2, 201, 201, 531, 531, 572, 572, 4, 2, 223, 223, 801, 802, 5, 2, 140, 140, 177, 177, 287, 287, 6, 2, 201, 201, 531, 531, 572, 572, 679, 679, 4, 2, 801, 801, 803, 803, 5, 2, 472, 472, 664, 664, 698, 698, 8, 2, 416, 416, 577, 577, 593, 593, 738, 739, 745, 745, 780, 781, 3, 2, 446, 447, 4, 2, 513, 513, 560, 560, 4, 2, 558, 558, 561, 561, 4, 2, 663, 663, 700, 700, 5, 2, 140, 140, 226, 226, 669, 669, 4, 2, 53, 53, 212, 212, 3, 2, 272, 273, 4, 2, 577, 577, 802, 802, 4, 2, 802, 802, 808, 808, 36, 2, 40, 40, 82, 82, 114, 114, 130, 131, 134, 134, 160, 160, 172, 172, 189, 190, 227, 227, 241, 241, 261, 261, 263, 263, 265, 265, 282, 283, 290, 290, 297, 297, 309, 309, 318, 318, 322, 322, 324, 324, 329, 329, 331, 331, 342, 342, 382, 485, 487, 540, 542, 549, 552, 635, 637, 736, 738, 743, 745, 774, 776, 785, 787, 789, 791, 791, 803, 803, 3, 2, 814, 821, 7, 2, 522, 522, 552, 552, 589, 589, 753, 753, 835, 835, 2, 12518, 2, 979, 3, 2, 2, 2, 4, 1001, 3, 2, 2, 2, 6, 1007, 3, 2, 2, 2, 8, 1018, 3, 2, 2, 2, 10, 1025, 3, 2, 2, 2, 12, 1186, 3, 2, 2, 2, 14, 1193, 3, 2, 2, 2, 16, 1207, 3, 2, 2, 2, 18, 1209, 3, 2, 2, 2, 20, 1220, 3, 2, 2, 2, 22, 1224, 3, 2, 2, 2, 24, 1238, 3, 2, 2, 2, 26, 1240, 3, 2, 2, 2, 28, 1247, 3, 2, 2, 2, 30, 1257, 3, 2, 2, 2, 32, 1269, 3, 2, 2, 2, 34, 1271, 3, 2, 2, 2, 36, 1273, 3, 2, 2, 2, 38, 1275, 3, 2, 2, 2, 40, 1301, 3, 2, 2, 2, 42, 1318, 3, 2, 2, 2, 44, 1331, 3, 2, 2, 2, 46, 1378, 3, 2, 2, 2, 48, 1380, 3, 2, 2, 2, 50, 1398, 3, 2, 2, 2, 52, 1400, 3, 2, 2, 2, 54, 1429, 3, 2, 2, 2, 56, 1450, 3, 2, 2, 2, 58, 1463, 3, 2, 2, 2, 60, 1468, 3, 2, 2, 2, 62, 1472, 3, 2, 2, 2, 64, 1476, 3, 2, 2, 2, 66, 1487, 3, 2, 2, 2, 68, 1492, 3, 2, 2, 2, 70, 1494, 3, 2, 2, 2, 72, 1499, 3, 2, 2, 2, 74, 1501, 3, 2, 2, 2, 76, 1503, 3, 2, 2, 2, 78, 1506, 3, 2, 2, 2, 80, 1510, 3, 2, 2, 2, 82, 1516, 3, 2, 2, 2, 84, 1518, 3, 2, 2, 2, 86, 1521, 3, 2, 2, 2, 88, 1523, 3, 2, 2, 2, 90, 1526, 3, 2, 2, 2, 92, 1531, 3, 2, 2, 2, 94, 1542, 3, 2, 2, 2, 96, 1551, 3, 2, 2, 2, 98, 1555, 3, 2, 2, 2, 100, 1557, 3, 2, 2, 2, 102, 1563, 3, 2, 2, 2, 104, 1565, 3, 2, 2, 2, 106, 1567, 3, 2, 2, 2, 108, 1570, 3, 2, 2, 2, 110, 1578, 3, 2, 2, 2, 112, 1580, 3, 2, 2, 2, 114, 1582, 3, 2, 2, 2, 116, 1604, 3, 2, 2, 2, 118, 1623, 3, 2, 2, 2, 120, 1631, 3, 2, 2, 2, 122, 1635, 3, 2, 2, 2, 124, 1643, 3, 2, 2, 2, 126, 1658, 3, 2, 2, 2, 128, 1660, 3, 2, 2, 2, 130, 1704, 3, 2, 2, 2, 132, 1713, 3, 2, 2, 2, 134, 1726, 3, 2, 2, 2, 136, 1728, 3, 2, 2, 2, 138, 1730, 3, 2, 2, 2, 140, 1733, 3, 2, 2, 2, 142, 1737, 3, 2, 2, 2, 144, 1747, 3, 2, 2, 2, 146, 1757, 3, 2, 2, 2, 148, 1801, 3, 2, 2, 2, 150, 1824, 3, 2, 2, 2, 152, 1826, 3, 2, 2, 2, 154, 1828, 3, 2, 2, 2, 156, 1830, 3, 2, 2, 2, 158, 1835, 3, 2, 2, 2, 160, 1838, 3, 2, 2, 2, 162, 2193, 3, 2, 2, 2, 164, 2195, 3, 2, 2, 2, 166, 2249, 3, 2, 2, 2, 168, 2254, 3, 2, 2, 2, 170, 2298, 3, 2, 2, 2, 172, 2321, 3, 2, 2, 2, 174, 2351, 3, 2, 2, 2, 176, 2355, 3, 2, 2, 2, 178, 2361, 3, 2, 2, 2, 180, 2367, 3, 2, 2, 2, 182, 2371, 3, 2, 2, 2, 184, 2375, 3, 2, 2, 2, 186, 2380, 3, 2, 2, 2, 188, 2394, 3, 2, 2, 2, 190, 2400, 3, 2, 2, 2, 192, 2406, 3, 2, 2, 2, 194, 2422, 3, 2, 2, 2, 196, 2426, 3, 2, 2, 2, 198, 2432, 3, 2, 2, 2, 200, 2438, 3, 2, 2, 2, 202, 2446, 3, 2, 2, 2, 204, 2452, 3, 2, 2, 2, 206, 2467, 3, 2, 2, 2, 208, 2485, 3, 2, 2, 2, 210, 2492, 3, 2, 2, 2, 212, 2497, 3, 2, 2, 2, 214, 2508, 3, 2, 2, 2, 216, 2513, 3, 2, 2, 2, 218, 2517, 3, 2, 2, 2, 220, 2521, 3, 2, 2, 2, 222, 2526, 3, 2, 2, 2, 224, 2531, 3, 2, 2, 2, 226, 2536, 3, 2, 2, 2, 228, 2550, 3, 2, 2, 2, 230, 2556, 3, 2, 2, 2, 232, 2561, 3, 2, 2, 2, 234, 2569, 3, 2, 2, 2, 236, 2573, 3, 2, 2, 2, 238, 2590, 3, 2, 2, 2, 240, 2598, 3, 2, 2, 2, 242, 2604, 3, 2, 2, 2, 244, 2618, 3, 2, 2, 2, 246, 2640, 3, 2, 2, 2, 248, 2645, 3, 2, 2, 2, 250, 2651, 3, 2, 2, 2, 252, 2656, 3, 2, 2, 2, 254, 2660, 3, 2, 2, 2, 256, 2688, 3, 2, 2, 2, 258, 2699, 3, 2, 2, 2, 260, 2708, 3, 2, 2, 2, 262, 2721, 3, 2, 2, 2, 264, 2729, 3, 2, 2, 2, 266, 2734, 3, 2, 2, 2, 268, 2745, 3, 2, 2, 2, 270, 2775, 3, 2, 2, 2, 272, 2805, 3, 2, 2, 2, 274, 2819, 3, 2, 2, 2, 276, 2843, 3, 2, 2, 2, 278, 2859, 3, 2, 2, 2, 280, 2872, 3, 2, 2, 2, 282, 2891, 3, 2, 2, 2, 284, 2904, 3, 2, 2, 2, 286, 2913, 3, 2, 2, 2, 288, 2943, 3, 2, 2, 2, 290, 3186, 3, 2, 2, 2, 292, 3195, 3, 2, 2, 2, 294, 3253, 3, 2, 2, 2, 296, 3302, 3, 2, 2, 2, 298, 3304, 3, 2, 2, 2, 300, 3345, 3, 2, 2, 2, 302, 3395, 3, 2, 2, 2, 304, 3465, 3, 2, 2, 2, 306, 3532, 3, 2, 2, 2, 308, 3548, 3, 2, 2, 2, 310, 3576, 3, 2, 2, 2, 312, 3595, 3, 2, 2, 2, 314, 3616, 3, 2, 2, 2, 316, 3688, 3, 2, 2, 2, 318, 3783, 3, 2, 2, 2, 320, 3805, 3, 2, 2, 2, 322, 3817, 3, 2, 2, 2, 324, 3845, 3, 2, 2, 2, 326, 3866, 3, 2, 2, 2, 328, 3892, 3, 2, 2, 2, 330, 3901, 3, 2, 2, 2, 332, 3933, 3, 2, 2, 2, 334, 3943, 3, 2, 2, 2, 336, 3959, 3, 2, 2, 2, 338, 3971, 3, 2, 2, 2, 340, 3980, 3, 2, 2, 2, 342, 3997, 3, 2, 2, 2, 344, 4021, 3, 2, 2, 2, 346, 4129, 3, 2, 2, 2, 348, 4155, 3, 2, 2, 2, 350, 4167, 3, 2, 2, 2, 352, 4174, 3, 2, 2, 2, 354, 4218, 3, 2, 2, 2, 356, 4229, 3, 2, 2, 2, 358, 4249, 3, 2, 2, 2, 360, 4291, 3, 2, 2, 2, 362, 4298, 3, 2, 2, 2, 364, 4312, 3, 2, 2, 2, 366, 4330, 3, 2, 2, 2, 368, 4400, 3, 2, 2, 2, 370, 4443, 3, 2, 2, 2, 372, 4497, 3, 2, 2, 2, 374, 4634, 3, 2, 2, 2, 376, 4777, 3, 2, 2, 2, 378, 4806, 3, 2, 2, 2, 380, 4835, 3, 2, 2, 2, 382, 4946, 3, 2, 2, 2, 384, 4959, 3, 2, 2, 2, 386, 4967, 3, 2, 2, 2, 388, 4975, 3, 2, 2, 2, 390, 4997, 3, 2, 2, 2, 392, 5027, 3, 2, 2, 2, 394, 5054, 3, 2, 2, 2, 396, 5074, 3, 2, 2, 2, 398, 5122, 3, 2, 2, 2, 400, 5159, 3, 2, 2, 2, 402, 5363, 3, 2, 2, 2, 404, 5393, 3, 2, 2, 2, 406, 5395, 3, 2, 2, 2, 408, 5427, 3, 2, 2, 2, 410, 5474, 3, 2, 2, 2, 412, 5526, 3, 2, 2, 2, 414, 5542, 3, 2, 2, 2, 416, 5556, 3, 2, 2, 2, 418, 5629, 3, 2, 2, 2, 420, 5660, 3, 2, 2, 2, 422, 5662, 3, 2, 2, 2, 424, 5666, 3, 2, 2, 2, 426, 5696, 3, 2, 2, 2, 428, 5698, 3, 2, 2, 2, 430, 5719, 3, 2, 2, 2, 432, 5808, 3, 2, 2, 2, 434, 5810, 3, 2, 2, 2, 436, 5823, 3, 2, 2, 2, 438, 5879, 3, 2, 2, 2, 440, 5882, 3, 2, 2, 2, 442, 5928, 3, 2, 2, 2, 444, 5931, 3, 2, 2, 2, 446, 5964, 3, 2, 2, 2, 448, 5981, 3, 2, 2, 2, 450, 5984, 3, 2, 2, 2, 452, 6043, 3, 2, 2, 2, 454, 6067, 3, 2, 2, 2, 456, 6083, 3, 2, 2, 2, 458, 6085, 3, 2, 2, 2, 460, 6134, 3, 2, 2, 2, 462, 6175, 3, 2, 2, 2, 464, 6219, 3, 2, 2, 2, 466, 6227, 3, 2, 2, 2, 468, 6272, 3, 2, 2, 2, 470, 6274, 3, 2, 2, 2, 472, 6282, 3, 2, 2, 2, 474, 6315, 3, 2, 2, 2, 476, 6323, 3, 2, 2, 2, 478, 6350, 3, 2, 2, 2, 480, 6374, 3, 2, 2, 2, 482, 6406, 3, 2, 2, 2, 484, 6436, 3, 2, 2, 2, 486, 6459, 3, 2, 2, 2, 488, 6473, 3, 2, 2, 2, 490, 6475, 3, 2, 2, 2, 492, 6506, 3, 2, 2, 2, 494, 6520, 3, 2, 2, 2, 496, 6552, 3, 2, 2, 2, 498, 6574, 3, 2, 2, 2, 500, 6604, 3, 2, 2, 2, 502, 6606, 3, 2, 2, 2, 504, 6657, 3, 2, 2, 2, 506, 6703, 3, 2, 2, 2, 508, 6722, 3, 2, 2, 2, 510, 6724, 3, 2, 2, 2, 512, 6749, 3, 2, 2, 2, 514, 6751, 3, 2, 2, 2, 516, 6759, 3, 2, 2, 2, 518, 6761, 3, 2, 2, 2, 520, 6901, 3, 2, 2, 2, 522, 6909, 3, 2, 2, 2, 524, 6911, 3, 2, 2, 2, 526, 6913, 3, 2, 2, 2, 528, 6915, 3, 2, 2, 2, 530, 6929, 3, 2, 2, 2, 532, 6935, 3, 2, 2, 2, 534, 6937, 3, 2, 2, 2, 536, 6939, 3, 2, 2, 2, 538, 6944, 3, 2, 2, 2, 540, 6946, 3, 2, 2, 2, 542, 6950, 3, 2, 2, 2, 544, 6962, 3, 2, 2, 2, 546, 6964, 3, 2, 2, 2, 548, 6967, 3, 2, 2, 2, 550, 6970, 3, 2, 2, 2, 552, 6972, 3, 2, 2, 2, 554, 6974, 3, 2, 2, 2, 556, 6976, 3, 2, 2, 2, 558, 7005, 3, 2, 2, 2, 560, 7007, 3, 2, 2, 2, 562, 7018, 3, 2, 2, 2, 564, 7021, 3, 2, 2, 2, 566, 7030, 3, 2, 2, 2, 568, 7038, 3, 2, 2, 2, 570, 7045, 3, 2, 2, 2, 572, 7068, 3, 2, 2, 2, 574, 7070, 3, 2, 2, 2, 576, 7081, 3, 2, 2, 2, 578, 7083, 3, 2, 2, 2, 580, 7110, 3, 2, 2, 2, 582, 7117, 3, 2, 2, 2, 584, 7123, 3, 2, 2, 2, 586, 7142, 3, 2, 2, 2, 588, 7144, 3, 2, 2, 2, 590, 7161, 3, 2, 2, 2, 592, 7184, 3, 2, 2, 2, 594, 7201, 3, 2, 2, 2, 596, 7218, 3, 2, 2, 2, 598, 7228, 3, 2, 2, 2, 600, 7245, 3, 2, 2, 2, 602, 7262, 3, 2, 2, 2, 604, 7272, 3, 2, 2, 2, 606, 7274, 3, 2, 2, 2, 608, 7281, 3, 2, 2, 2, 610, 7341, 3, 2, 2, 2, 612, 7372, 3, 2, 2, 2, 614, 7374, 3, 2, 2, 2, 616, 7624, 3, 2, 2, 2, 618, 7862, 3, 2, 2, 2, 620, 7902, 3, 2, 2, 2, 622, 7915, 3, 2, 2, 2, 624, 7929, 3, 2, 2, 2, 626, 7937, 3, 2, 2, 2, 628, 7943, 3, 2, 2, 2, 630, 7950, 3, 2, 2, 2, 632, 7954, 3, 2, 2, 2, 634, 7999, 3, 2, 2, 2, 636, 8003, 3, 2, 2, 2, 638, 8016, 3, 2, 2, 2, 640, 8077, 3, 2, 2, 2, 642, 8079, 3, 2, 2, 2, 644, 8116, 3, 2, 2, 2, 646, 8118, 3, 2, 2, 2, 648, 8134, 3, 2, 2, 2, 650, 8147, 3, 2, 2, 2, 652, 8167, 3, 2, 2, 2, 654, 8180, 3, 2, 2, 2, 656, 8217, 3, 2, 2, 2, 658, 8234, 3, 2, 2, 2, 660, 8236, 3, 2, 2, 2, 662, 8249, 3, 2, 2, 2, 664, 8274, 3, 2, 2, 2, 666, 8302, 3, 2, 2, 2, 668, 8343, 3, 2, 2, 2, 670, 8426, 3, 2, 2, 2, 672, 8428, 3, 2, 2, 2, 674, 8432, 3, 2, 2, 2, 676, 8437, 3, 2, 2, 2, 678, 8441, 3, 2, 2, 2, 680, 8446, 3, 2, 2, 2, 682, 8451, 3, 2, 2, 2, 684, 8466, 3, 2, 2, 2, 686, 8471, 3, 2, 2, 2, 688, 8475, 3, 2, 2, 2, 690, 8484, 3, 2, 2, 2, 692, 8489, 3, 2, 2, 2, 694, 8497, 3, 2, 2, 2, 696, 8501, 3, 2, 2, 2, 698, 8514, 3, 2, 2, 2, 700, 8516, 3, 2, 2, 2, 702, 8561, 3, 2, 2, 2, 704, 8571, 3, 2, 2, 2, 706, 8614, 3, 2, 2, 2, 708, 8682, 3, 2, 2, 2, 710, 8693, 3, 2, 2, 2, 712, 8704, 3, 2, 2, 2, 714, 8716, 3, 2, 2, 2, 716, 8723, 3, 2, 2, 2, 718, 8764, 3, 2, 2, 2, 720, 8775, 3, 2, 2, 2, 722, 8777, 3, 2, 2, 2, 724, 8856, 3, 2, 2, 2, 726, 8860, 3, 2, 2, 2, 728, 8870, 3, 2, 2, 2, 730, 8898, 3, 2, 2, 2, 732, 8925, 3, 2, 2, 2, 734, 8931, 3, 2, 2, 2, 736, 8941, 3, 2, 2, 2, 738, 8951, 3, 2, 2, 2, 740, 8953, 3, 2, 2, 2, 742, 8981, 3, 2, 2, 2, 744, 8983, 3, 2, 2, 2, 746, 9011, 3, 2, 2, 2, 748, 9013, 3, 2, 2, 2, 750, 9021, 3, 2, 2, 2, 752, 9029, 3, 2, 2, 2, 754, 9038, 3, 2, 2, 2, 756, 9097, 3, 2, 2, 2, 758, 9104, 3, 2, 2, 2, 760, 9118, 3, 2, 2, 2, 762, 9127, 3, 2, 2, 2, 764, 9166, 3, 2, 2, 2, 766, 9182, 3, 2, 2, 2, 768, 9189, 3, 2, 2, 2, 770, 9191, 3, 2, 2, 2, 772, 9302, 3, 2, 2, 2, 774, 9304, 3, 2, 2, 2, 776, 9315, 3, 2, 2, 2, 778, 9319, 3, 2, 2, 2, 780, 9321, 3, 2, 2, 2, 782, 9378, 3, 2, 2, 2, 784, 9380, 3, 2, 2, 2, 786, 9389, 3, 2, 2, 2, 788, 9397, 3, 2, 2, 2, 790, 9411, 3, 2, 2, 2, 792, 9428, 3, 2, 2, 2, 794, 9450, 3, 2, 2, 2, 796, 9460, 3, 2, 2, 2, 798, 9466, 3, 2, 2, 2, 800, 9468, 3, 2, 2, 2, 802, 9481, 3, 2, 2, 2, 804, 9483, 3, 2, 2, 2, 806, 9539, 3, 2, 2, 2, 808, 9541, 3, 2, 2, 2, 810, 9558, 3, 2, 2, 2, 812, 9566, 3, 2, 2, 2, 814, 9571, 3, 2, 2, 2, 816, 9613, 3, 2, 2, 2, 818, 9615, 3, 2, 2, 2, 820, 9623, 3, 2, 2, 2, 822, 9633, 3, 2, 2, 2, 824, 9641, 3, 2, 2, 2, 826, 9671, 3, 2, 2, 2, 828, 9673, 3, 2, 2, 2, 830, 9687, 3, 2, 2, 2, 832, 9835, 3, 2, 2, 2, 834, 9842, 3, 2, 2, 2, 836, 9887, 3, 2, 2, 2, 838, 9911, 3, 2, 2, 2, 840, 9913, 3, 2, 2, 2, 842, 9920, 3, 2, 2, 2, 844, 9927, 3, 2, 2, 2, 846, 9934, 3, 2, 2, 2, 848, 9939, 3, 2, 2, 2, 850, 9945, 3, 2, 2, 2, 852, 9950, 3, 2, 2, 2, 854, 9954, 3, 2, 2, 2, 856, 9959, 3, 2, 2, 2, 858, 9974, 3, 2, 2, 2, 860, 9989, 3, 2, 2, 2, 862, 10043, 3, 2, 2, 2, 864, 10045, 3, 2, 2, 2, 866, 10058, 3, 2, 2, 2, 868, 10060, 3, 2, 2, 2, 870, 10074, 3, 2, 2, 2, 872, 10092, 3, 2, 2, 2, 874, 10126, 3, 2, 2, 2, 876, 10148, 3, 2, 2, 2, 878, 10151, 3, 2, 2, 2, 880, 10155, 3, 2, 2, 2, 882, 10170, 3, 2, 2, 2, 884, 10179, 3, 2, 2, 2, 886, 10183, 3, 2, 2, 2, 888, 10191, 3, 2, 2, 2, 890, 10197, 3, 2, 2, 2, 892, 10233, 3, 2, 2, 2, 894, 10235, 3, 2, 2, 2, 896, 10248, 3, 2, 2, 2, 898, 10250, 3, 2, 2, 2, 900, 10271, 3, 2, 2, 2, 902, 10333, 3, 2, 2, 2, 904, 10342, 3, 2, 2, 2, 906, 10349, 3, 2, 2, 2, 908, 10368, 3, 2, 2, 2, 910, 10398, 3, 2, 2, 2, 912, 10403, 3, 2, 2, 2, 914, 10410, 3, 2, 2, 2, 916, 10425, 3, 2, 2, 2, 918, 10440, 3, 2, 2, 2, 920, 10444, 3, 2, 2, 2, 922, 10494, 3, 2, 2, 2, 924, 10496, 3, 2, 2, 2, 926, 10510, 3, 2, 2, 2, 928, 10520, 3, 2, 2, 2, 930, 10522, 3, 2, 2, 2, 932, 10524, 3, 2, 2, 2, 934, 10527, 3, 2, 2, 2, 936, 10538, 3, 2, 2, 2, 938, 10545, 3, 2, 2, 2, 940, 10547, 3, 2, 2, 2, 942, 10559, 3, 2, 2, 2, 944, 10607, 3, 2, 2, 2, 946, 10611, 3, 2, 2, 2, 948, 10613, 3, 2, 2, 2, 950, 10634, 3, 2, 2, 2, 952, 10649, 3, 2, 2, 2, 954, 10665, 3, 2, 2, 2, 956, 10667, 3, 2, 2, 2, 958, 10703, 3, 2, 2, 2, 960, 10708, 3, 2, 2, 2, 962, 10725, 3, 2, 2, 2, 964, 10727, 3, 2, 2, 2, 966, 10732, 3, 2, 2, 2, 968, 10734, 3, 2, 2, 2, 970, 10751, 3, 2, 2, 2, 972, 10753, 3, 2, 2, 2, 974, 10755, 3, 2, 2, 2, 976, 978, 5, 4, 3, 2, 977, 976, 3, 2, 2, 2, 978, 981, 3, 2, 2, 2, 979, 977, 3, 2, 2, 2, 979, 980, 3, 2, 2, 2, 980, 982, 3, 2, 2, 2, 981, 979, 3, 2, 2, 2, 982, 983, 7, 2, 2, 3, 983, 3, 3, 2, 2, 2, 984, 988, 5, 634, 318, 2, 985, 987, 5, 672, 337, 2, 986, 985, 3, 2, 2, 2, 987, 990, 3, 2, 2, 2, 988, 986, 3, 2, 2, 2, 988, 989, 3, 2, 2, 2, 989, 1002, 3, 2, 2, 2, 990, 988, 3, 2, 2, 2, 991, 993, 5, 634, 318, 2, 992, 991, 3, 2, 2, 2, 992, 993, 3, 2, 2, 2, 993, 994, 3, 2, 2, 2, 994, 998, 5, 6, 4, 2, 995, 997, 5, 672, 337, 2, 996, 995, 3, 2, 2, 2, 997, 1000, 3, 2, 2, 2, 998, 996, 3, 2, 2, 2, 998, 999, 3, 2, 2, 2, 999, 1002, 3, 2, 2, 2, 1000, 998, 3, 2, 2, 2, 1001, 984, 3, 2, 2, 2, 1001, 992, 3, 2, 2, 2, 1002, 5, 3, 2, 2, 2, 1003, 1005, 5, 8, 5, 2, 1004, 1006, 7, 831, 2, 2, 1005, 1004, 3, 2, 2, 2, 1005, 1006, 3, 2, 2, 2, 1006, 1008, 3, 2, 2, 2, 1007, 1003, 3, 2, 2, 2, 1008, 1009, 3, 2, 2, 2, 1009, 1007, 3, 2, 2, 2, 1009, 1010, 3, 2, 2, 2, 1010, 7, 3, 2, 2, 2, 1011, 1019, 5, 10, 6, 2, 1012, 1019, 5, 12, 7, 2, 1013, 1019, 5, 16, 9, 2, 1014, 1019, 5, 682, 342, 2, 1015, 1019, 5, 48, 25, 2, 1016, 1019, 5, 50, 26, 2, 1017, 1019, 5, 14, 8, 2, 1018, 1011, 3, 2, 2, 2, 1018, 1012, 3, 2, 2, 2, 1018, 1013, 3, 2, 2, 2, 1018, 1014, 3, 2, 2, 2, 1018, 1015, 3, 2, 2, 2, 1018, 1016, 3, 2, 2, 2, 1018, 1017, 3, 2, 2, 2, 1019, 9, 3, 2, 2, 2, 1020, 1026, 5, 430, 216, 2, 1021, 1026, 5, 436, 219, 2, 1022, 1026, 5, 440, 221, 2, 1023, 1026, 5, 446, 224, 2, 1024, 1026, 5, 450, 226, 2, 1025, 1020, 3, 2, 2, 2, 1025, 1021, 3, 2, 2, 2, 1025, 1022, 3, 2, 2, 2, 1025, 1023, 3, 2, 2, 2, 1025, 1024, 3, 2, 2, 2, 1026, 11, 3, 2, 2, 2, 1027, 1187, 5, 52, 27, 2, 1028, 1187, 5, 60, 31, 2, 1029, 1187, 5, 118, 60, 2, 1030, 1187, 5, 132, 67, 2, 1031, 1187, 5, 144, 73, 2, 1032, 1187, 5, 146, 74, 2, 1033, 1187, 5, 142, 72, 2, 1034, 1187, 5, 158, 80, 2, 1035, 1187, 5, 168, 85, 2, 1036, 1187, 5, 170, 86, 2, 1037, 1187, 5, 278, 140, 2, 1038, 1187, 5, 282, 142, 2, 1039, 1187, 5, 504, 253, 2, 1040, 1187, 5, 348, 175, 2, 1041, 1187, 5, 518, 260, 2, 1042, 1187, 5, 288, 145, 2, 1043, 1187, 5, 296, 149, 2, 1044, 1187, 5, 298, 150, 2, 1045, 1187, 5, 302, 152, 2, 1046, 1187, 5, 306, 154, 2, 1047, 1187, 5, 310, 156, 2, 1048, 1187, 5, 318, 160, 2, 1049, 1187, 5, 322, 162, 2, 1050, 1187, 5, 314, 158, 2, 1051, 1187, 5, 330, 166, 2, 1052, 1187, 5, 326, 164, 2, 1053, 1187, 5, 334, 168, 2, 1054, 1187, 5, 336, 169, 2, 1055, 1187, 5, 338, 170, 2, 1056, 1187, 5, 340, 171, 2, 1057, 1187, 5, 346, 174, 2, 1058, 1187, 5, 362, 182, 2, 1059, 1187, 5, 356, 179, 2, 1060, 1187, 5, 368, 185, 2, 1061, 1187, 5, 372, 187, 2, 1062, 1187, 5, 376, 189, 2, 1063, 1187, 5, 380, 191, 2, 1064, 1187, 5, 382, 192, 2, 1065, 1187, 5, 386, 194, 2, 1066, 1187, 5, 388, 195, 2, 1067, 1187, 5, 392, 197, 2, 1068, 1187, 5, 394, 198, 2, 1069, 1187, 5, 502, 252, 2, 1070, 1187, 5, 400, 201, 2, 1071, 1187, 5, 406, 204, 2, 1072, 1187, 5, 408, 205, 2, 1073, 1187, 5, 54, 28, 2, 1074, 1187, 5, 114, 58, 2, 1075, 1187, 5, 128, 65, 2, 1076, 1187, 5, 172, 87, 2, 1077, 1187, 5, 276, 139, 2, 1078, 1187, 5, 280, 141, 2, 1079, 1187, 5, 284, 143, 2, 1080, 1187, 5, 458, 230, 2, 1081, 1187, 5, 350, 176, 2, 1082, 1187, 5, 286, 144, 2, 1083, 1187, 5, 300, 151, 2, 1084, 1187, 5, 304, 153, 2, 1085, 1187, 5, 308, 155, 2, 1086, 1187, 5, 312, 157, 2, 1087, 1187, 5, 460, 231, 2, 1088, 1187, 5, 320, 161, 2, 1089, 1187, 5, 324, 163, 2, 1090, 1187, 5, 316, 159, 2, 1091, 1187, 5, 332, 167, 2, 1092, 1187, 5, 328, 165, 2, 1093, 1187, 5, 164, 83, 2, 1094, 1187, 5, 476, 239, 2, 1095, 1187, 5, 462, 232, 2, 1096, 1187, 5, 464, 233, 2, 1097, 1187, 5, 342, 172, 2, 1098, 1187, 5, 344, 173, 2, 1099, 1187, 5, 352, 177, 2, 1100, 1187, 5, 354, 178, 2, 1101, 1187, 5, 358, 180, 2, 1102, 1187, 5, 360, 181, 2, 1103, 1187, 5, 364, 183, 2, 1104, 1187, 5, 366, 184, 2, 1105, 1187, 5, 370, 186, 2, 1106, 1187, 5, 374, 188, 2, 1107, 1187, 5, 378, 190, 2, 1108, 1187, 5, 384, 193, 2, 1109, 1187, 5, 390, 196, 2, 1110, 1187, 5, 490, 246, 2, 1111, 1187, 5, 396, 199, 2, 1112, 1187, 5, 398, 200, 2, 1113, 1187, 5, 494, 248, 2, 1114, 1187, 5, 600, 301, 2, 1115, 1187, 5, 402, 202, 2, 1116, 1187, 5, 404, 203, 2, 1117, 1187, 5, 498, 250, 2, 1118, 1187, 5, 410, 206, 2, 1119, 1187, 5, 412, 207, 2, 1120, 1187, 5, 56, 29, 2, 1121, 1187, 5, 58, 30, 2, 1122, 1187, 5, 116, 59, 2, 1123, 1187, 5, 130, 66, 2, 1124, 1187, 5, 156, 79, 2, 1125, 1187, 5, 166, 84, 2, 1126, 1187, 5, 174, 88, 2, 1127, 1187, 5, 176, 89, 2, 1128, 1187, 5, 178, 90, 2, 1129, 1187, 5, 180, 91, 2, 1130, 1187, 5, 182, 92, 2, 1131, 1187, 5, 184, 93, 2, 1132, 1187, 5, 186, 94, 2, 1133, 1187, 5, 188, 95, 2, 1134, 1187, 5, 190, 96, 2, 1135, 1187, 5, 232, 117, 2, 1136, 1187, 5, 192, 97, 2, 1137, 1187, 5, 194, 98, 2, 1138, 1187, 5, 206, 104, 2, 1139, 1187, 5, 208, 105, 2, 1140, 1187, 5, 196, 99, 2, 1141, 1187, 5, 198, 100, 2, 1142, 1187, 5, 200, 101, 2, 1143, 1187, 5, 202, 102, 2, 1144, 1187, 5, 204, 103, 2, 1145, 1187, 5, 210, 106, 2, 1146, 1187, 5, 212, 107, 2, 1147, 1187, 5, 214, 108, 2, 1148, 1187, 5, 592, 297, 2, 1149, 1187, 5, 578, 290, 2, 1150, 1187, 5, 216, 109, 2, 1151, 1187, 5, 218, 110, 2, 1152, 1187, 5, 220, 111, 2, 1153, 1187, 5, 222, 112, 2, 1154, 1187, 5, 224, 113, 2, 1155, 1187, 5, 584, 293, 2, 1156, 1187, 5, 226, 114, 2, 1157, 1187, 5, 228, 115, 2, 1158, 1187, 5, 230, 116, 2, 1159, 1187, 5, 234, 118, 2, 1160, 1187, 5, 236, 119, 2, 1161, 1187, 5, 238, 120, 2, 1162, 1187, 5, 240, 121, 2, 1163, 1187, 5, 242, 122, 2, 1164, 1187, 5, 244, 123, 2, 1165, 1187, 5, 246, 124, 2, 1166, 1187, 5, 248, 125, 2, 1167, 1187, 5, 250, 126, 2, 1168, 1187, 5, 252, 127, 2, 1169, 1187, 5, 254, 128, 2, 1170, 1187, 5, 594, 298, 2, 1171, 1187, 5, 256, 129, 2, 1172, 1187, 5, 258, 130, 2, 1173, 1187, 5, 260, 131, 2, 1174, 1187, 5, 596, 299, 2, 1175, 1187, 5, 586, 294, 2, 1176, 1187, 5, 602, 302, 2, 1177, 1187, 5, 262, 132, 2, 1178, 1187, 5, 598, 300, 2, 1179, 1187, 5, 264, 133, 2, 1180, 1187, 5, 266, 134, 2, 1181, 1187, 5, 268, 135, 2, 1182, 1187, 5, 270, 136, 2, 1183, 1187, 5, 272, 137, 2, 1184, 1187, 5, 274, 138, 2, 1185, 1187, 5, 492, 247, 2, 1186, 1027, 3, 2, 2, 2, 1186, 1028, 3, 2, 2, 2, 1186, 1029, 3, 2, 2, 2, 1186, 1030, 3, 2, 2, 2, 1186, 1031, 3, 2, 2, 2, 1186, 1032, 3, 2, 2, 2, 1186, 1033, 3, 2, 2, 2, 1186, 1034, 3, 2, 2, 2, 1186, 1035, 3, 2, 2, 2, 1186, 1036, 3, 2, 2, 2, 1186, 1037, 3, 2, 2, 2, 1186, 1038, 3, 2, 2, 2, 1186, 1039, 3, 2, 2, 2, 1186, 1040, 3, 2, 2, 2, 1186, 1041, 3, 2, 2, 2, 1186, 1042, 3, 2, 2, 2, 1186, 1043, 3, 2, 2, 2, 1186, 1044, 3, 2, 2, 2, 1186, 1045, 3, 2, 2, 2, 1186, 1046, 3, 2, 2, 2, 1186, 1047, 3, 2, 2, 2, 1186, 1048, 3, 2, 2, 2, 1186, 1049, 3, 2, 2, 2, 1186, 1050, 3, 2, 2, 2, 1186, 1051, 3, 2, 2, 2, 1186, 1052, 3, 2, 2, 2, 1186, 1053, 3, 2, 2, 2, 1186, 1054, 3, 2, 2, 2, 1186, 1055, 3, 2, 2, 2, 1186, 1056, 3, 2, 2, 2, 1186, 1057, 3, 2, 2, 2, 1186, 1058, 3, 2, 2, 2, 1186, 1059, 3, 2, 2, 2, 1186, 1060, 3, 2, 2, 2, 1186, 1061, 3, 2, 2, 2, 1186, 1062, 3, 2, 2, 2, 1186, 1063, 3, 2, 2, 2, 1186, 1064, 3, 2, 2, 2, 1186, 1065, 3, 2, 2, 2, 1186, 1066, 3, 2, 2, 2, 1186, 1067, 3, 2, 2, 2, 1186, 1068, 3, 2, 2, 2, 1186, 1069, 3, 2, 2, 2, 1186, 1070, 3, 2, 2, 2, 1186, 1071, 3, 2, 2, 2, 1186, 1072, 3, 2, 2, 2, 1186, 1073, 3, 2, 2, 2, 1186, 1074, 3, 2, 2, 2, 1186, 1075, 3, 2, 2, 2, 1186, 1076, 3, 2, 2, 2, 1186, 1077, 3, 2, 2, 2, 1186, 1078, 3, 2, 2, 2, 1186, 1079, 3, 2, 2, 2, 1186, 1080, 3, 2, 2, 2, 1186, 1081, 3, 2, 2, 2, 1186, 1082, 3, 2, 2, 2, 1186, 1083, 3, 2, 2, 2, 1186, 1084, 3, 2, 2, 2, 1186, 1085, 3, 2, 2, 2, 1186, 1086, 3, 2, 2, 2, 1186, 1087, 3, 2, 2, 2, 1186, 1088, 3, 2, 2, 2, 1186, 1089, 3, 2, 2, 2, 1186, 1090, 3, 2, 2, 2, 1186, 1091, 3, 2, 2, 2, 1186, 1092, 3, 2, 2, 2, 1186, 1093, 3, 2, 2, 2, 1186, 1094, 3, 2, 2, 2, 1186, 1095, 3, 2, 2, 2, 1186, 1096, 3, 2, 2, 2, 1186, 1097, 3, 2, 2, 2, 1186, 1098, 3, 2, 2, 2, 1186, 1099, 3, 2, 2, 2, 1186, 1100, 3, 2, 2, 2, 1186, 1101, 3, 2, 2, 2, 1186, 1102, 3, 2, 2, 2, 1186, 1103, 3, 2, 2, 2, 1186, 1104, 3, 2, 2, 2, 1186, 1105, 3, 2, 2, 2, 1186, 1106, 3, 2, 2, 2, 1186, 1107, 3, 2, 2, 2, 1186, 1108, 3, 2, 2, 2, 1186, 1109, 3, 2, 2, 2, 1186, 1110, 3, 2, 2, 2, 1186, 1111, 3, 2, 2, 2, 1186, 1112, 3, 2, 2, 2, 1186, 1113, 3, 2, 2, 2, 1186, 1114, 3, 2, 2, 2, 1186, 1115, 3, 2, 2, 2, 1186, 1116, 3, 2, 2, 2, 1186, 1117, 3, 2, 2, 2, 1186, 1118, 3, 2, 2, 2, 1186, 1119, 3, 2, 2, 2, 1186, 1120, 3, 2, 2, 2, 1186, 1121, 3, 2, 2, 2, 1186, 1122, 3, 2, 2, 2, 1186, 1123, 3, 2, 2, 2, 1186, 1124, 3, 2, 2, 2, 1186, 1125, 3, 2, 2, 2, 1186, 1126, 3, 2, 2, 2, 1186, 1127, 3, 2, 2, 2, 1186, 1128, 3, 2, 2, 2, 1186, 1129, 3, 2, 2, 2, 1186, 1130, 3, 2, 2, 2, 1186, 1131, 3, 2, 2, 2, 1186, 1132, 3, 2, 2, 2, 1186, 1133, 3, 2, 2, 2, 1186, 1134, 3, 2, 2, 2, 1186, 1135, 3, 2, 2, 2, 1186, 1136, 3, 2, 2, 2, 1186, 1137, 3, 2, 2, 2, 1186, 1138, 3, 2, 2, 2, 1186, 1139, 3, 2, 2, 2, 1186, 1140, 3, 2, 2, 2, 1186, 1141, 3, 2, 2, 2, 1186, 1142, 3, 2, 2, 2, 1186, 1143, 3, 2, 2, 2, 1186, 1144, 3, 2, 2, 2, 1186, 1145, 3, 2, 2, 2, 1186, 1146, 3, 2, 2, 2, 1186, 1147, 3, 2, 2, 2, 1186, 1148, 3, 2, 2, 2, 1186, 1149, 3, 2, 2, 2, 1186, 1150, 3, 2, 2, 2, 1186, 1151, 3, 2, 2, 2, 1186, 1152, 3, 2, 2, 2, 1186, 1153, 3, 2, 2, 2, 1186, 1154, 3, 2, 2, 2, 1186, 1155, 3, 2, 2, 2, 1186, 1156, 3, 2, 2, 2, 1186, 1157, 3, 2, 2, 2, 1186, 1158, 3, 2, 2, 2, 1186, 1159, 3, 2, 2, 2, 1186, 1160, 3, 2, 2, 2, 1186, 1161, 3, 2, 2, 2, 1186, 1162, 3, 2, 2, 2, 1186, 1163, 3, 2, 2, 2, 1186, 1164, 3, 2, 2, 2, 1186, 1165, 3, 2, 2, 2, 1186, 1166, 3, 2, 2, 2, 1186, 1167, 3, 2, 2, 2, 1186, 1168, 3, 2, 2, 2, 1186, 1169, 3, 2, 2, 2, 1186, 1170, 3, 2, 2, 2, 1186, 1171, 3, 2, 2, 2, 1186, 1172, 3, 2, 2, 2, 1186, 1173, 3, 2, 2, 2, 1186, 1174, 3, 2, 2, 2, 1186, 1175, 3, 2, 2, 2, 1186, 1176, 3, 2, 2, 2, 1186, 1177, 3, 2, 2, 2, 1186, 1178, 3, 2, 2, 2, 1186, 1179, 3, 2, 2, 2, 1186, 1180, 3, 2, 2, 2, 1186, 1181, 3, 2, 2, 2, 1186, 1182, 3, 2, 2, 2, 1186, 1183, 3, 2, 2, 2, 1186, 1184, 3, 2, 2, 2, 1186, 1185, 3, 2, 2, 2, 1187, 13, 3, 2, 2, 2, 1188, 1194, 5, 614, 308, 2, 1189, 1194, 5, 616, 309, 2, 1190, 1194, 5, 618, 310, 2, 1191, 1194, 5, 620, 311, 2, 1192, 1194, 5, 622, 312, 2, 1193, 1188, 3, 2, 2, 2, 1193, 1189, 3, 2, 2, 2, 1193, 1190, 3, 2, 2, 2, 1193, 1191, 3, 2, 2, 2, 1193, 1192, 3, 2, 2, 2, 1194, 15, 3, 2, 2, 2, 1195, 1208, 5, 18, 10, 2, 1196, 1208, 5, 20, 11, 2, 1197, 1208, 5, 22, 12, 2, 1198, 1208, 5, 24, 13, 2, 1199, 1208, 5, 28, 15, 2, 1200, 1208, 5, 26, 14, 2, 1201, 1208, 5, 30, 16, 2, 1202, 1208, 5, 38, 20, 2, 1203, 1208, 5, 40, 21, 2, 1204, 1208, 5, 42, 22, 2, 1205, 1208, 5, 44, 23, 2, 1206, 1208, 5, 46, 24, 2, 1207, 1195, 3, 2, 2, 2, 1207, 1196, 3, 2, 2, 2, 1207, 1197, 3, 2, 2, 2, 1207, 1198, 3, 2, 2, 2, 1207, 1199, 3, 2, 2, 2, 1207, 1200, 3, 2, 2, 2, 1207, 1201, 3, 2, 2, 2, 1207, 1202, 3, 2, 2, 2, 1207, 1203, 3, 2, 2, 2, 1207, 1204, 3, 2, 2, 2, 1207, 1205, 3, 2, 2, 2, 1207, 1206, 3, 2, 2, 2, 1208, 17, 3, 2, 2, 2, 1209, 1211, 7, 28, 2, 2, 1210, 1212, 7, 831, 2, 2, 1211, 1210, 3, 2, 2, 2, 1211, 1212, 3, 2, 2, 2, 1212, 1214, 3, 2, 2, 2, 1213, 1215, 5, 6, 4, 2, 1214, 1213, 3, 2, 2, 2, 1214, 1215, 3, 2, 2, 2, 1215, 1216, 3, 2, 2, 2, 1216, 1218, 7, 108, 2, 2, 1217, 1219, 7, 831, 2, 2, 1218, 1217, 3, 2, 2, 2, 1218, 1219, 3, 2, 2, 2, 1219, 19, 3, 2, 2, 2, 1220, 1222, 7, 33, 2, 2, 1221, 1223, 7, 831, 2, 2, 1222, 1221, 3, 2, 2, 2, 1222, 1223, 3, 2, 2, 2, 1223, 21, 3, 2, 2, 2, 1224, 1226, 7, 66, 2, 2, 1225, 1227, 7, 831, 2, 2, 1226, 1225, 3, 2, 2, 2, 1226, 1227, 3, 2, 2, 2, 1227, 23, 3, 2, 2, 2, 1228, 1229, 7, 143, 2, 2, 1229, 1231, 5, 966, 484, 2, 1230, 1232, 7, 831, 2, 2, 1231, 1230, 3, 2, 2, 2, 1231, 1232, 3, 2, 2, 2, 1232, 1239, 3, 2, 2, 2, 1233, 1234, 5, 966, 484, 2, 1234, 1236, 7, 832, 2, 2, 1235, 1237, 7, 831, 2, 2, 1236, 1235, 3, 2, 2, 2, 1236, 1237, 3, 2, 2, 2, 1237, 1239, 3, 2, 2, 2, 1238, 1228, 3, 2, 2, 2, 1238, 1233, 3, 2, 2, 2, 1239, 25, 3, 2, 2, 2, 1240, 1242, 7, 282, 2, 2, 1241, 1243, 5, 728, 365, 2, 1242, 1241, 3, 2, 2, 2, 1242, 1243, 3, 2, 2, 2, 1243, 1245, 3, 2, 2, 2, 1244, 1246, 7, 831, 2, 2, 1245, 1244, 3, 2, 2, 2, 1245, 1246, 3, 2, 2, 2, 1246, 27, 3, 2, 2, 2, 1247, 1248, 7, 153, 2, 2, 1248, 1249, 5, 750, 376, 2, 1249, 1252, 5, 8, 5, 2, 1250, 1251, 7, 106, 2, 2, 1251, 1253, 5, 8, 5, 2, 1252, 1250, 3, 2, 2, 2, 1252, 1253, 3, 2, 2, 2, 1253, 1255, 3, 2, 2, 2, 1254, 1256, 7, 831, 2, 2, 1255, 1254, 3, 2, 2, 2, 1255, 1256, 3, 2, 2, 2, 1256, 29, 3, 2, 2, 2, 1257, 1264, 7, 755, 2, 2, 1258, 1259, 5, 32, 17, 2, 1259, 1260, 7, 830, 2, 2, 1260, 1261, 5, 34, 18, 2, 1261, 1262, 7, 830, 2, 2, 1262, 1263, 5, 36, 19, 2, 1263, 1265, 3, 2, 2, 2, 1264, 1258, 3, 2, 2, 2, 1264, 1265, 3, 2, 2, 2, 1265, 1267, 3, 2, 2, 2, 1266, 1268, 7, 831, 2, 2, 1267, 1266, 3, 2, 2, 2, 1267, 1268, 3, 2, 2, 2, 1268, 31, 3, 2, 2, 2, 1269, 1270, 9, 2, 2, 2, 1270, 33, 3, 2, 2, 2, 1271, 1272, 9, 3, 2, 2, 1272, 35, 3, 2, 2, 2, 1273, 1274, 9, 2, 2, 2, 1274, 37, 3, 2, 2, 2, 1275, 1276, 7, 28, 2, 2, 1276, 1278, 7, 766, 2, 2, 1277, 1279, 7, 831, 2, 2, 1278, 1277, 3, 2, 2, 2, 1278, 1279, 3, 2, 2, 2, 1279, 1281, 3, 2, 2, 2, 1280, 1282, 5, 6, 4, 2, 1281, 1280, 3, 2, 2, 2, 1281, 1282, 3, 2, 2, 2, 1282, 1283, 3, 2, 2, 2, 1283, 1284, 7, 108, 2, 2, 1284, 1286, 7, 766, 2, 2, 1285, 1287, 7, 831, 2, 2, 1286, 1285, 3, 2, 2, 2, 1286, 1287, 3, 2, 2, 2, 1287, 1288, 3, 2, 2, 2, 1288, 1289, 7, 28, 2, 2, 1289, 1291, 7, 431, 2, 2, 1290, 1292, 7, 831, 2, 2, 1291, 1290, 3, 2, 2, 2, 1291, 1292, 3, 2, 2, 2, 1292, 1294, 3, 2, 2, 2, 1293, 1295, 5, 6, 4, 2, 1294, 1293, 3, 2, 2, 2, 1294, 1295, 3, 2, 2, 2, 1295, 1296, 3, 2, 2, 2, 1296, 1297, 7, 108, 2, 2, 1297, 1299, 7, 431, 2, 2, 1298, 1300, 7, 831, 2, 2, 1299, 1298, 3, 2, 2, 2, 1299, 1300, 3, 2, 2, 2, 1300, 39, 3, 2, 2, 2, 1301, 1303, 7, 372, 2, 2, 1302, 1304, 5, 444, 223, 2, 1303, 1302, 3, 2, 2, 2, 1303, 1304, 3, 2, 2, 2, 1304, 1306, 3, 2, 2, 2, 1305, 1307, 7, 830, 2, 2, 1306, 1305, 3, 2, 2, 2, 1306, 1307, 3, 2, 2, 2, 1307, 1310, 3, 2, 2, 2, 1308, 1309, 9, 4, 2, 2, 1309, 1311, 5, 448, 225, 2, 1310, 1308, 3, 2, 2, 2, 1310, 1311, 3, 2, 2, 2, 1311, 1313, 3, 2, 2, 2, 1312, 1314, 5, 728, 365, 2, 1313, 1312, 3, 2, 2, 2, 1313, 1314, 3, 2, 2, 2, 1314, 1316, 3, 2, 2, 2, 1315, 1317, 7, 831, 2, 2, 1316, 1315, 3, 2, 2, 2, 1316, 1317, 3, 2, 2, 2, 1317, 41, 3, 2, 2, 2, 1318, 1319, 7, 375, 2, 2, 1319, 1329, 5, 750, 376, 2, 1320, 1330, 5, 8, 5, 2, 1321, 1323, 7, 33, 2, 2, 1322, 1324, 7, 831, 2, 2, 1323, 1322, 3, 2, 2, 2, 1323, 1324, 3, 2, 2, 2, 1324, 1330, 3, 2, 2, 2, 1325, 1327, 7, 66, 2, 2, 1326, 1328, 7, 831, 2, 2, 1327, 1326, 3, 2, 2, 2, 1327, 1328, 3, 2, 2, 2, 1328, 1330, 3, 2, 2, 2, 1329, 1320, 3, 2, 2, 2, 1329, 1321, 3, 2, 2, 2, 1329, 1325, 3, 2, 2, 2, 1330, 43, 3, 2, 2, 2, 1331, 1334, 7, 257, 2, 2, 1332, 1335, 5, 728, 365, 2, 1333, 1335, 7, 798, 2, 2, 1334, 1332, 3, 2, 2, 2, 1334, 1333, 3, 2, 2, 2, 1335, 1340, 3, 2, 2, 2, 1336, 1337, 7, 830, 2, 2, 1337, 1339, 7, 801, 2, 2, 1338, 1336, 3, 2, 2, 2, 1339, 1342, 3, 2, 2, 2, 1340, 1338, 3, 2, 2, 2, 1340, 1341, 3, 2, 2, 2, 1341, 1344, 3, 2, 2, 2, 1342, 1340, 3, 2, 2, 2, 1343, 1345, 7, 831, 2, 2, 1344, 1343, 3, 2, 2, 2, 1344, 1345, 3, 2, 2, 2, 1345, 45, 3, 2, 2, 2, 1346, 1347, 7, 264, 2, 2, 1347, 1348, 7, 828, 2, 2, 1348, 1349, 9, 5, 2, 2, 1349, 1350, 7, 830, 2, 2, 1350, 1351, 5, 726, 364, 2, 1351, 1352, 7, 830, 2, 2, 1352, 1357, 5, 726, 364, 2, 1353, 1354, 7, 830, 2, 2, 1354, 1356, 5, 726, 364, 2, 1355, 1353, 3, 2, 2, 2, 1356, 1359, 3, 2, 2, 2, 1357, 1355, 3, 2, 2, 2, 1357, 1358, 3, 2, 2, 2, 1358, 1360, 3, 2, 2, 2, 1359, 1357, 3, 2, 2, 2, 1360, 1363, 7, 829, 2, 2, 1361, 1362, 7, 377, 2, 2, 1362, 1364, 9, 6, 2, 2, 1363, 1361, 3, 2, 2, 2, 1363, 1364, 3, 2, 2, 2, 1364, 1366, 3, 2, 2, 2, 1365, 1367, 7, 831, 2, 2, 1366, 1365, 3, 2, 2, 2, 1366, 1367, 3, 2, 2, 2, 1367, 1379, 3, 2, 2, 2, 1368, 1369, 7, 264, 2, 2, 1369, 1370, 7, 802, 2, 2, 1370, 1375, 9, 7, 2, 2, 1371, 1372, 7, 830, 2, 2, 1372, 1374, 9, 5, 2, 2, 1373, 1371, 3, 2, 2, 2, 1374, 1377, 3, 2, 2, 2, 1375, 1373, 3, 2, 2, 2, 1375, 1376, 3, 2, 2, 2, 1376, 1379, 3, 2, 2, 2, 1377, 1375, 3, 2, 2, 2, 1378, 1346, 3, 2, 2, 2, 1378, 1368, 3, 2, 2, 2, 1379, 47, 3, 2, 2, 2, 1380, 1381, 7, 831, 2, 2, 1381, 49, 3, 2, 2, 2, 1382, 1399, 5, 610, 306, 2, 1383, 1399, 5, 612, 307, 2, 1384, 1399, 5, 426, 214, 2, 1385, 1399, 5, 424, 213, 2, 1386, 1399, 5, 414, 208, 2, 1387, 1399, 5, 418, 210, 2, 1388, 1399, 5, 632, 317, 2, 1389, 1399, 5, 624, 313, 2, 1390, 1399, 5, 428, 215, 2, 1391, 1399, 5, 640, 321, 2, 1392, 1399, 5, 668, 335, 2, 1393, 1399, 5, 670, 336, 2, 1394, 1399, 5, 674, 338, 2, 1395, 1399, 5, 676, 339, 2, 1396, 1399, 5, 678, 340, 2, 1397, 1399, 5, 680, 341, 2, 1398, 1382, 3, 2, 2, 2, 1398, 1383, 3, 2, 2, 2, 1398, 1384, 3, 2, 2, 2, 1398, 1385, 3, 2, 2, 2, 1398, 1386, 3, 2, 2, 2, 1398, 1387, 3, 2, 2, 2, 1398, 1388, 3, 2, 2, 2, 1398, 1389, 3, 2, 2, 2, 1398, 1390, 3, 2, 2, 2, 1398, 1391, 3, 2, 2, 2, 1398, 1392, 3, 2, 2, 2, 1398, 1393, 3, 2, 2, 2, 1398, 1394, 3, 2, 2, 2, 1398, 1395, 3, 2, 2, 2, 1398, 1396, 3, 2, 2, 2, 1398, 1397, 3, 2, 2, 2, 1399, 51, 3, 2, 2, 2, 1400, 1401, 7, 10, 2, 2, 1401, 1402, 7, 15, 2, 2, 1402, 1403, 7, 289, 2, 2, 1403, 1404, 5, 966, 484, 2, 1404, 1411, 7, 377, 2, 2, 1405, 1407, 7, 830, 2, 2, 1406, 1405, 3, 2, 2, 2, 1406, 1407, 3, 2, 2, 2, 1407, 1408, 3, 2, 2, 2, 1408, 1409, 7, 605, 2, 2, 1409, 1410, 7, 810, 2, 2, 1410, 1412, 5, 966, 484, 2, 1411, 1406, 3, 2, 2, 2, 1411, 1412, 3, 2, 2, 2, 1412, 1419, 3, 2, 2, 2, 1413, 1415, 7, 830, 2, 2, 1414, 1413, 3, 2, 2, 2, 1414, 1415, 3, 2, 2, 2, 1415, 1416, 3, 2, 2, 2, 1416, 1417, 7, 244, 2, 2, 1417, 1418, 7, 810, 2, 2, 1418, 1420, 7, 806, 2, 2, 1419, 1414, 3, 2, 2, 2, 1419, 1420, 3, 2, 2, 2, 1420, 1427, 3, 2, 2, 2, 1421, 1423, 7, 830, 2, 2, 1422, 1421, 3, 2, 2, 2, 1422, 1423, 3, 2, 2, 2, 1423, 1424, 3, 2, 2, 2, 1424, 1425, 7, 91, 2, 2, 1425, 1426, 7, 810, 2, 2, 1426, 1428, 5, 966, 484, 2, 1427, 1422, 3, 2, 2, 2, 1427, 1428, 3, 2, 2, 2, 1428, 53, 3, 2, 2, 2, 1429, 1430, 7, 73, 2, 2, 1430, 1431, 7, 15, 2, 2, 1431, 1432, 7, 289, 2, 2, 1432, 1433, 5, 966, 484, 2, 1433, 1440, 7, 377, 2, 2, 1434, 1436, 7, 830, 2, 2, 1435, 1434, 3, 2, 2, 2, 1435, 1436, 3, 2, 2, 2, 1436, 1437, 3, 2, 2, 2, 1437, 1438, 7, 244, 2, 2, 1438, 1439, 7, 810, 2, 2, 1439, 1441, 7, 806, 2, 2, 1440, 1435, 3, 2, 2, 2, 1440, 1441, 3, 2, 2, 2, 1441, 1448, 3, 2, 2, 2, 1442, 1444, 7, 830, 2, 2, 1443, 1442, 3, 2, 2, 2, 1443, 1444, 3, 2, 2, 2, 1444, 1445, 3, 2, 2, 2, 1445, 1446, 7, 91, 2, 2, 1446, 1447, 7, 810, 2, 2, 1447, 1449, 5, 966, 484, 2, 1448, 1443, 3, 2, 2, 2, 1448, 1449, 3, 2, 2, 2, 1449, 55, 3, 2, 2, 2, 1450, 1451, 7, 103, 2, 2, 1451, 1454, 7, 393, 2, 2, 1452, 1453, 7, 153, 2, 2, 1453, 1455, 7, 119, 2, 2, 1454, 1452, 3, 2, 2, 2, 1454, 1455, 3, 2, 2, 2, 1455, 1459, 3, 2, 2, 2, 1456, 1457, 5, 966, 484, 2, 1457, 1458, 7, 823, 2, 2, 1458, 1460, 3, 2, 2, 2, 1459, 1456, 3, 2, 2, 2, 1459, 1460, 3, 2, 2, 2, 1460, 1461, 3, 2, 2, 2, 1461, 1462, 5, 966, 484, 2, 1462, 57, 3, 2, 2, 2, 1463, 1464, 7, 103, 2, 2, 1464, 1465, 7, 15, 2, 2, 1465, 1466, 7, 289, 2, 2, 1466, 1467, 5, 966, 484, 2, 1467, 59, 3, 2, 2, 2, 1468, 1469, 5, 62, 32, 2, 1469, 1470, 5, 966, 484, 2, 1470, 1471, 5, 64, 33, 2, 1471, 61, 3, 2, 2, 2, 1472, 1473, 7, 10, 2, 2, 1473, 1474, 7, 405, 2, 2, 1474, 63, 3, 2, 2, 2, 1475, 1477, 5, 66, 34, 2, 1476, 1475, 3, 2, 2, 2, 1476, 1477, 3, 2, 2, 2, 1477, 1479, 3, 2, 2, 2, 1478, 1480, 5, 88, 45, 2, 1479, 1478, 3, 2, 2, 2, 1479, 1480, 3, 2, 2, 2, 1480, 1482, 3, 2, 2, 2, 1481, 1483, 5, 70, 36, 2, 1482, 1481, 3, 2, 2, 2, 1482, 1483, 3, 2, 2, 2, 1483, 1485, 3, 2, 2, 2, 1484, 1486, 5, 76, 39, 2, 1485, 1484, 3, 2, 2, 2, 1485, 1486, 3, 2, 2, 2, 1486, 65, 3, 2, 2, 2, 1487, 1490, 5, 68, 35, 2, 1488, 1491, 5, 92, 47, 2, 1489, 1491, 5, 84, 43, 2, 1490, 1488, 3, 2, 2, 2, 1490, 1489, 3, 2, 2, 2, 1491, 67, 3, 2, 2, 2, 1492, 1493, 7, 139, 2, 2, 1493, 69, 3, 2, 2, 2, 1494, 1495, 5, 74, 38, 2, 1495, 1496, 5, 72, 37, 2, 1496, 71, 3, 2, 2, 2, 1497, 1500, 7, 6, 2, 2, 1498, 1500, 5, 110, 56, 2, 1499, 1497, 3, 2, 2, 2, 1499, 1498, 3, 2, 2, 2, 1500, 73, 3, 2, 2, 2, 1501, 1502, 7, 103, 2, 2, 1502, 75, 3, 2, 2, 2, 1503, 1504, 5, 78, 40, 2, 1504, 1505, 5, 80, 41, 2, 1505, 77, 3, 2, 2, 2, 1506, 1507, 7, 4, 2, 2, 1507, 1508, 7, 129, 2, 2, 1508, 1509, 7, 139, 2, 2, 1509, 79, 3, 2, 2, 2, 1510, 1514, 5, 82, 42, 2, 1511, 1512, 5, 86, 44, 2, 1512, 1513, 5, 966, 484, 2, 1513, 1515, 3, 2, 2, 2, 1514, 1511, 3, 2, 2, 2, 1514, 1515, 3, 2, 2, 2, 1515, 81, 3, 2, 2, 2, 1516, 1517, 7, 806, 2, 2, 1517, 83, 3, 2, 2, 2, 1518, 1519, 5, 86, 44, 2, 1519, 1520, 5, 966, 484, 2, 1520, 85, 3, 2, 2, 2, 1521, 1522, 7, 16, 2, 2, 1522, 87, 3, 2, 2, 2, 1523, 1524, 5, 90, 46, 2, 1524, 1525, 5, 94, 48, 2, 1525, 89, 3, 2, 2, 2, 1526, 1527, 7, 377, 2, 2, 1527, 91, 3, 2, 2, 2, 1528, 1532, 5, 96, 49, 2, 1529, 1532, 5, 106, 54, 2, 1530, 1532, 7, 806, 2, 2, 1531, 1528, 3, 2, 2, 2, 1531, 1529, 3, 2, 2, 2, 1531, 1530, 3, 2, 2, 2, 1532, 93, 3, 2, 2, 2, 1533, 1534, 8, 48, 1, 2, 1534, 1535, 7, 246, 2, 2, 1535, 1536, 7, 810, 2, 2, 1536, 1543, 9, 8, 2, 2, 1537, 1538, 7, 371, 2, 2, 1538, 1539, 7, 810, 2, 2, 1539, 1543, 9, 9, 2, 2, 1540, 1541, 7, 355, 2, 2, 1541, 1543, 7, 456, 2, 2, 1542, 1533, 3, 2, 2, 2, 1542, 1537, 3, 2, 2, 2, 1542, 1540, 3, 2, 2, 2, 1543, 1548, 3, 2, 2, 2, 1544, 1545, 12, 3, 2, 2, 1545, 1547, 7, 830, 2, 2, 1546, 1544, 3, 2, 2, 2, 1547, 1550, 3, 2, 2, 2, 1548, 1546, 3, 2, 2, 2, 1548, 1549, 3, 2, 2, 2, 1549, 95, 3, 2, 2, 2, 1550, 1548, 3, 2, 2, 2, 1551, 1552, 5, 100, 51, 2, 1552, 1553, 5, 98, 50, 2, 1553, 1554, 5, 102, 52, 2, 1554, 97, 3, 2, 2, 2, 1555, 1556, 5, 966, 484, 2, 1556, 99, 3, 2, 2, 2, 1557, 1558, 7, 101, 2, 2, 1558, 101, 3, 2, 2, 2, 1559, 1560, 5, 104, 53, 2, 1560, 1561, 5, 102, 52, 2, 1561, 1564, 3, 2, 2, 2, 1562, 1564, 5, 966, 484, 2, 1563, 1559, 3, 2, 2, 2, 1563, 1562, 3, 2, 2, 2, 1564, 103, 3, 2, 2, 2, 1565, 1566, 7, 25, 2, 2, 1566, 105, 3, 2, 2, 2, 1567, 1568, 5, 108, 55, 2, 1568, 1569, 5, 102, 52, 2, 1569, 107, 3, 2, 2, 2, 1570, 1571, 7, 483, 2, 2, 1571, 109, 3, 2, 2, 2, 1572, 1573, 5, 112, 57, 2, 1573, 1574, 5, 106, 54, 2, 1574, 1575, 7, 799, 2, 2, 1575, 1576, 7, 830, 2, 2, 1576, 1579, 3, 2, 2, 2, 1577, 1579, 5, 106, 54, 2, 1578, 1572, 3, 2, 2, 2, 1578, 1577, 3, 2, 2, 2, 1579, 111, 3, 2, 2, 2, 1580, 1581, 7, 799, 2, 2, 1581, 113, 3, 2, 2, 2, 1582, 1583, 7, 73, 2, 2, 1583, 1584, 7, 405, 2, 2, 1584, 1587, 5, 966, 484, 2, 1585, 1586, 7, 20, 2, 2, 1586, 1588, 5, 966, 484, 2, 1587, 1585, 3, 2, 2, 2, 1587, 1588, 3, 2, 2, 2, 1588, 1589, 3, 2, 2, 2, 1589, 1594, 7, 139, 2, 2, 1590, 1592, 7, 830, 2, 2, 1591, 1590, 3, 2, 2, 2, 1591, 1592, 3, 2, 2, 2, 1592, 1593, 3, 2, 2, 2, 1593, 1595, 9, 10, 2, 2, 1594, 1591, 3, 2, 2, 2, 1595, 1596, 3, 2, 2, 2, 1596, 1594, 3, 2, 2, 2, 1596, 1597, 3, 2, 2, 2, 1597, 1602, 3, 2, 2, 2, 1598, 1599, 7, 377, 2, 2, 1599, 1600, 7, 246, 2, 2, 1600, 1601, 7, 810, 2, 2, 1601, 1603, 9, 8, 2, 2, 1602, 1598, 3, 2, 2, 2, 1602, 1603, 3, 2, 2, 2, 1603, 115, 3, 2, 2, 2, 1604, 1605, 7, 103, 2, 2, 1605, 1608, 7, 405, 2, 2, 1606, 1607, 7, 153, 2, 2, 1607, 1609, 7, 119, 2, 2, 1608, 1606, 3, 2, 2, 2, 1608, 1609, 3, 2, 2, 2, 1609, 1614, 3, 2, 2, 2, 1610, 1612, 7, 830, 2, 2, 1611, 1610, 3, 2, 2, 2, 1611, 1612, 3, 2, 2, 2, 1612, 1613, 3, 2, 2, 2, 1613, 1615, 5, 966, 484, 2, 1614, 1611, 3, 2, 2, 2, 1615, 1616, 3, 2, 2, 2, 1616, 1614, 3, 2, 2, 2, 1616, 1617, 3, 2, 2, 2, 1617, 1621, 3, 2, 2, 2, 1618, 1619, 7, 377, 2, 2, 1619, 1620, 7, 611, 2, 2, 1620, 1622, 7, 473, 2, 2, 1621, 1618, 3, 2, 2, 2, 1621, 1622, 3, 2, 2, 2, 1622, 117, 3, 2, 2, 2, 1623, 1624, 5, 120, 61, 2, 1624, 1629, 5, 966, 484, 2, 1625, 1630, 5, 122, 62, 2, 1626, 1627, 7, 681, 2, 2, 1627, 1628, 7, 652, 2, 2, 1628, 1630, 7, 172, 2, 2, 1629, 1625, 3, 2, 2, 2, 1629, 1626, 3, 2, 2, 2, 1630, 119, 3, 2, 2, 2, 1631, 1632, 7, 10, 2, 2, 1632, 1633, 7, 18, 2, 2, 1633, 1634, 7, 172, 2, 2, 1634, 121, 3, 2, 2, 2, 1635, 1636, 5, 124, 63, 2, 1636, 1639, 5, 126, 64, 2, 1637, 1638, 7, 830, 2, 2, 1638, 1640, 5, 126, 64, 2, 1639, 1637, 3, 2, 2, 2, 1639, 1640, 3, 2, 2, 2, 1640, 1641, 3, 2, 2, 2, 1641, 1642, 7, 829, 2, 2, 1642, 123, 3, 2, 2, 2, 1643, 1644, 7, 377, 2, 2, 1644, 1645, 7, 652, 2, 2, 1645, 1646, 7, 172, 2, 2, 1646, 1647, 7, 828, 2, 2, 1647, 125, 3, 2, 2, 2, 1648, 1649, 7, 465, 2, 2, 1649, 1650, 7, 38, 2, 2, 1650, 1651, 7, 244, 2, 2, 1651, 1652, 7, 810, 2, 2, 1652, 1659, 7, 806, 2, 2, 1653, 1654, 7, 492, 2, 2, 1654, 1655, 7, 38, 2, 2, 1655, 1656, 7, 244, 2, 2, 1656, 1657, 7, 810, 2, 2, 1657, 1659, 7, 806, 2, 2, 1658, 1648, 3, 2, 2, 2, 1658, 1653, 3, 2, 2, 2, 1659, 127, 3, 2, 2, 2, 1660, 1661, 7, 73, 2, 2, 1661, 1662, 7, 18, 2, 2, 1662, 1663, 7, 172, 2, 2, 1663, 1666, 5, 966, 484, 2, 1664, 1665, 7, 20, 2, 2, 1665, 1667, 5, 966, 484, 2, 1666, 1664, 3, 2, 2, 2, 1666, 1667, 3, 2, 2, 2, 1667, 1681, 3, 2, 2, 2, 1668, 1679, 7, 139, 2, 2, 1669, 1670, 7, 129, 2, 2, 1670, 1671, 7, 810, 2, 2, 1671, 1680, 7, 806, 2, 2, 1672, 1673, 7, 117, 2, 2, 1673, 1674, 7, 810, 2, 2, 1674, 1680, 7, 806, 2, 2, 1675, 1676, 7, 405, 2, 2, 1676, 1680, 5, 966, 484, 2, 1677, 1678, 7, 657, 2, 2, 1678, 1680, 5, 966, 484, 2, 1679, 1669, 3, 2, 2, 2, 1679, 1672, 3, 2, 2, 2, 1679, 1675, 3, 2, 2, 2, 1679, 1677, 3, 2, 2, 2, 1680, 1682, 3, 2, 2, 2, 1681, 1668, 3, 2, 2, 2, 1681, 1682, 3, 2, 2, 2, 1682, 1695, 3, 2, 2, 2, 1683, 1693, 7, 377, 2, 2, 1684, 1685, 7, 394, 2, 2, 1685, 1686, 7, 810, 2, 2, 1686, 1694, 9, 11, 2, 2, 1687, 1688, 7, 658, 2, 2, 1688, 1689, 7, 810, 2, 2, 1689, 1694, 7, 806, 2, 2, 1690, 1691, 7, 451, 2, 2, 1691, 1692, 7, 810, 2, 2, 1692, 1694, 9, 12, 2, 2, 1693, 1684, 3, 2, 2, 2, 1693, 1687, 3, 2, 2, 2, 1693, 1690, 3, 2, 2, 2, 1694, 1696, 3, 2, 2, 2, 1695, 1683, 3, 2, 2, 2, 1695, 1696, 3, 2, 2, 2, 1696, 1702, 3, 2, 2, 2, 1697, 1698, 7, 492, 2, 2, 1698, 1699, 7, 38, 2, 2, 1699, 1700, 7, 244, 2, 2, 1700, 1701, 7, 810, 2, 2, 1701, 1703, 7, 806, 2, 2, 1702, 1697, 3, 2, 2, 2, 1702, 1703, 3, 2, 2, 2, 1703, 129, 3, 2, 2, 2, 1704, 1705, 7, 103, 2, 2, 1705, 1706, 7, 18, 2, 2, 1706, 1707, 7, 172, 2, 2, 1707, 1711, 5, 966, 484, 2, 1708, 1709, 7, 681, 2, 2, 1709, 1710, 7, 657, 2, 2, 1710, 1712, 7, 172, 2, 2, 1711, 1708, 3, 2, 2, 2, 1711, 1712, 3, 2, 2, 2, 1712, 131, 3, 2, 2, 2, 1713, 1717, 5, 140, 71, 2, 1714, 1715, 5, 148, 75, 2, 1715, 1716, 5, 138, 70, 2, 1716, 1718, 3, 2, 2, 2, 1717, 1714, 3, 2, 2, 2, 1717, 1718, 3, 2, 2, 2, 1718, 1719, 3, 2, 2, 2, 1719, 1720, 5, 902, 452, 2, 1720, 1721, 5, 136, 69, 2, 1721, 1722, 5, 134, 68, 2, 1722, 133, 3, 2, 2, 2, 1723, 1727, 5, 966, 484, 2, 1724, 1725, 7, 302, 2, 2, 1725, 1727, 7, 637, 2, 2, 1726, 1723, 3, 2, 2, 2, 1726, 1724, 3, 2, 2, 2, 1727, 135, 3, 2, 2, 2, 1728, 1729, 7, 346, 2, 2, 1729, 137, 3, 2, 2, 2, 1730, 1731, 7, 832, 2, 2, 1731, 1732, 7, 832, 2, 2, 1732, 139, 3, 2, 2, 2, 1733, 1734, 7, 10, 2, 2, 1734, 1735, 7, 20, 2, 2, 1735, 1736, 7, 229, 2, 2, 1736, 141, 3, 2, 2, 2, 1737, 1741, 5, 140, 71, 2, 1738, 1739, 5, 150, 76, 2, 1739, 1740, 5, 138, 70, 2, 1740, 1742, 3, 2, 2, 2, 1741, 1738, 3, 2, 2, 2, 1741, 1742, 3, 2, 2, 2, 1742, 1743, 3, 2, 2, 2, 1743, 1744, 5, 902, 452, 2, 1744, 1745, 5, 136, 69, 2, 1745, 1746, 5, 134, 68, 2, 1746, 143, 3, 2, 2, 2, 1747, 1751, 5, 140, 71, 2, 1748, 1749, 5, 152, 77, 2, 1749, 1750, 5, 138, 70, 2, 1750, 1752, 3, 2, 2, 2, 1751, 1748, 3, 2, 2, 2, 1751, 1752, 3, 2, 2, 2, 1752, 1753, 3, 2, 2, 2, 1753, 1754, 5, 904, 453, 2, 1754, 1755, 5, 136, 69, 2, 1755, 1756, 5, 134, 68, 2, 1756, 145, 3, 2, 2, 2, 1757, 1761, 5, 140, 71, 2, 1758, 1759, 5, 154, 78, 2, 1759, 1760, 5, 138, 70, 2, 1760, 1762, 3, 2, 2, 2, 1761, 1758, 3, 2, 2, 2, 1761, 1762, 3, 2, 2, 2, 1762, 1763, 3, 2, 2, 2, 1763, 1764, 5, 906, 454, 2, 1764, 1765, 5, 136, 69, 2, 1765, 1766, 5, 134, 68, 2, 1766, 147, 3, 2, 2, 2, 1767, 1802, 7, 625, 2, 2, 1768, 1802, 7, 405, 2, 2, 1769, 1770, 7, 18, 2, 2, 1770, 1802, 7, 172, 2, 2, 1771, 1772, 7, 415, 2, 2, 1772, 1802, 7, 146, 2, 2, 1773, 1802, 7, 43, 2, 2, 1774, 1802, 7, 68, 2, 2, 1775, 1802, 7, 769, 2, 2, 1776, 1802, 7, 84, 2, 2, 1777, 1802, 7, 109, 2, 2, 1778, 1779, 7, 521, 2, 2, 1779, 1802, 7, 430, 2, 2, 1780, 1781, 7, 521, 2, 2, 1781, 1802, 7, 740, 2, 2, 1782, 1783, 7, 592, 2, 2, 1783, 1802, 7, 769, 2, 2, 1784, 1785, 7, 679, 2, 2, 1785, 1786, 7, 310, 2, 2, 1786, 1802, 7, 422, 2, 2, 1787, 1802, 7, 289, 2, 2, 1788, 1802, 7, 696, 2, 2, 1789, 1802, 7, 302, 2, 2, 1790, 1791, 7, 706, 2, 2, 1791, 1792, 7, 656, 2, 2, 1792, 1802, 7, 563, 2, 2, 1793, 1794, 7, 309, 2, 2, 1794, 1802, 7, 289, 2, 2, 1795, 1802, 7, 310, 2, 2, 1796, 1797, 7, 747, 2, 2, 1797, 1802, 7, 172, 2, 2, 1798, 1799, 7, 789, 2, 2, 1799, 1800, 7, 302, 2, 2, 1800, 1802, 7, 437, 2, 2, 1801, 1767, 3, 2, 2, 2, 1801, 1768, 3, 2, 2, 2, 1801, 1769, 3, 2, 2, 2, 1801, 1771, 3, 2, 2, 2, 1801, 1773, 3, 2, 2, 2, 1801, 1774, 3, 2, 2, 2, 1801, 1775, 3, 2, 2, 2, 1801, 1776, 3, 2, 2, 2, 1801, 1777, 3, 2, 2, 2, 1801, 1778, 3, 2, 2, 2, 1801, 1780, 3, 2, 2, 2, 1801, 1782, 3, 2, 2, 2, 1801, 1784, 3, 2, 2, 2, 1801, 1787, 3, 2, 2, 2, 1801, 1788, 3, 2, 2, 2, 1801, 1789, 3, 2, 2, 2, 1801, 1790, 3, 2, 2, 2, 1801, 1793, 3, 2, 2, 2, 1801, 1795, 3, 2, 2, 2, 1801, 1796, 3, 2, 2, 2, 1801, 1798, 3, 2, 2, 2, 1802, 149, 3, 2, 2, 2, 1803, 1825, 7, 625, 2, 2, 1804, 1825, 7, 405, 2, 2, 1805, 1806, 7, 18, 2, 2, 1806, 1825, 7, 172, 2, 2, 1807, 1825, 7, 43, 2, 2, 1808, 1825, 7, 769, 2, 2, 1809, 1825, 7, 84, 2, 2, 1810, 1811, 7, 521, 2, 2, 1811, 1825, 7, 430, 2, 2, 1812, 1813, 7, 521, 2, 2, 1813, 1825, 7, 740, 2, 2, 1814, 1825, 7, 289, 2, 2, 1815, 1825, 7, 302, 2, 2, 1816, 1817, 7, 706, 2, 2, 1817, 1818, 7, 656, 2, 2, 1818, 1825, 7, 563, 2, 2, 1819, 1820, 7, 747, 2, 2, 1820, 1825, 7, 172, 2, 2, 1821, 1822, 7, 789, 2, 2, 1822, 1823, 7, 302, 2, 2, 1823, 1825, 7, 437, 2, 2, 1824, 1803, 3, 2, 2, 2, 1824, 1804, 3, 2, 2, 2, 1824, 1805, 3, 2, 2, 2, 1824, 1807, 3, 2, 2, 2, 1824, 1808, 3, 2, 2, 2, 1824, 1809, 3, 2, 2, 2, 1824, 1810, 3, 2, 2, 2, 1824, 1812, 3, 2, 2, 2, 1824, 1814, 3, 2, 2, 2, 1824, 1815, 3, 2, 2, 2, 1824, 1816, 3, 2, 2, 2, 1824, 1819, 3, 2, 2, 2, 1824, 1821, 3, 2, 2, 2, 1825, 151, 3, 2, 2, 2, 1826, 1827, 9, 13, 2, 2, 1827, 153, 3, 2, 2, 2, 1828, 1829, 9, 14, 2, 2, 1829, 155, 3, 2, 2, 2, 1830, 1831, 7, 103, 2, 2, 1831, 1832, 7, 415, 2, 2, 1832, 1833, 7, 146, 2, 2, 1833, 1834, 5, 966, 484, 2, 1834, 157, 3, 2, 2, 2, 1835, 1836, 5, 160, 81, 2, 1836, 1837, 5, 162, 82, 2, 1837, 159, 3, 2, 2, 2, 1838, 1839, 7, 10, 2, 2, 1839, 1840, 7, 415, 2, 2, 1840, 1841, 7, 146, 2, 2, 1841, 1842, 5, 966, 484, 2, 1842, 161, 3, 2, 2, 2, 1843, 1844, 7, 315, 2, 2, 1844, 1860, 7, 828, 2, 2, 1845, 1846, 7, 22, 2, 2, 1846, 1847, 7, 810, 2, 2, 1847, 1861, 9, 15, 2, 2, 1848, 1849, 7, 504, 2, 2, 1849, 1850, 7, 810, 2, 2, 1850, 1861, 7, 802, 2, 2, 1851, 1852, 7, 532, 2, 2, 1852, 1853, 7, 810, 2, 2, 1853, 1861, 7, 802, 2, 2, 1854, 1855, 7, 464, 2, 2, 1855, 1856, 7, 810, 2, 2, 1856, 1861, 9, 9, 2, 2, 1857, 1858, 7, 688, 2, 2, 1858, 1859, 7, 810, 2, 2, 1859, 1861, 7, 802, 2, 2, 1860, 1845, 3, 2, 2, 2, 1860, 1848, 3, 2, 2, 2, 1860, 1851, 3, 2, 2, 2, 1860, 1854, 3, 2, 2, 2, 1860, 1857, 3, 2, 2, 2, 1861, 1862, 3, 2, 2, 2, 1862, 2194, 7, 829, 2, 2, 1863, 1864, 7, 4, 2, 2, 1864, 1865, 7, 84, 2, 2, 1865, 2194, 5, 966, 484, 2, 1866, 1867, 7, 681, 2, 2, 1867, 1868, 7, 84, 2, 2, 1868, 2194, 5, 966, 484, 2, 1869, 1870, 7, 4, 2, 2, 1870, 1871, 7, 684, 2, 2, 1871, 1872, 7, 229, 2, 2, 1872, 1873, 7, 806, 2, 2, 1873, 1874, 7, 377, 2, 2, 1874, 1878, 7, 828, 2, 2, 1875, 1876, 7, 493, 2, 2, 1876, 1877, 7, 810, 2, 2, 1877, 1879, 7, 806, 2, 2, 1878, 1875, 3, 2, 2, 2, 1878, 1879, 3, 2, 2, 2, 1879, 1886, 3, 2, 2, 2, 1880, 1882, 7, 830, 2, 2, 1881, 1880, 3, 2, 2, 2, 1881, 1882, 3, 2, 2, 2, 1882, 1883, 3, 2, 2, 2, 1883, 1884, 7, 24, 2, 2, 1884, 1885, 7, 810, 2, 2, 1885, 1887, 9, 16, 2, 2, 1886, 1881, 3, 2, 2, 2, 1886, 1887, 3, 2, 2, 2, 1887, 1894, 3, 2, 2, 2, 1888, 1890, 7, 830, 2, 2, 1889, 1888, 3, 2, 2, 2, 1889, 1890, 3, 2, 2, 2, 1890, 1891, 3, 2, 2, 2, 1891, 1892, 7, 502, 2, 2, 1892, 1893, 7, 810, 2, 2, 1893, 1895, 9, 17, 2, 2, 1894, 1889, 3, 2, 2, 2, 1894, 1895, 3, 2, 2, 2, 1895, 1902, 3, 2, 2, 2, 1896, 1898, 7, 830, 2, 2, 1897, 1896, 3, 2, 2, 2, 1897, 1898, 3, 2, 2, 2, 1898, 1899, 3, 2, 2, 2, 1899, 1900, 7, 714, 2, 2, 1900, 1901, 7, 810, 2, 2, 1901, 1903, 9, 17, 2, 2, 1902, 1897, 3, 2, 2, 2, 1902, 1903, 3, 2, 2, 2, 1903, 1910, 3, 2, 2, 2, 1904, 1906, 7, 830, 2, 2, 1905, 1904, 3, 2, 2, 2, 1905, 1906, 3, 2, 2, 2, 1906, 1907, 3, 2, 2, 2, 1907, 1908, 7, 417, 2, 2, 1908, 1909, 7, 810, 2, 2, 1909, 1911, 7, 802, 2, 2, 1910, 1905, 3, 2, 2, 2, 1910, 1911, 3, 2, 2, 2, 1911, 1921, 3, 2, 2, 2, 1912, 1914, 7, 830, 2, 2, 1913, 1912, 3, 2, 2, 2, 1913, 1914, 3, 2, 2, 2, 1914, 1915, 3, 2, 2, 2, 1915, 1916, 7, 648, 2, 2, 1916, 1917, 7, 828, 2, 2, 1917, 1918, 7, 7, 2, 2, 1918, 1919, 7, 810, 2, 2, 1919, 1920, 9, 18, 2, 2, 1920, 1922, 7, 829, 2, 2, 1921, 1913, 3, 2, 2, 2, 1921, 1922, 3, 2, 2, 2, 1922, 1932, 3, 2, 2, 2, 1923, 1925, 7, 830, 2, 2, 1924, 1923, 3, 2, 2, 2, 1924, 1925, 3, 2, 2, 2, 1925, 1926, 3, 2, 2, 2, 1926, 1927, 7, 709, 2, 2, 1927, 1928, 7, 828, 2, 2, 1928, 1929, 7, 7, 2, 2, 1929, 1930, 7, 810, 2, 2, 1930, 1931, 7, 669, 2, 2, 1931, 1933, 7, 829, 2, 2, 1932, 1924, 3, 2, 2, 2, 1932, 1933, 3, 2, 2, 2, 1933, 1934, 3, 2, 2, 2, 1934, 2194, 7, 829, 2, 2, 1935, 1936, 7, 709, 2, 2, 1936, 1945, 7, 828, 2, 2, 1937, 1938, 7, 7, 2, 2, 1938, 1939, 7, 810, 2, 2, 1939, 1946, 9, 19, 2, 2, 1940, 1941, 7, 670, 2, 2, 1941, 1942, 7, 810, 2, 2, 1942, 1943, 7, 828, 2, 2, 1943, 1944, 7, 806, 2, 2, 1944, 1946, 7, 829, 2, 2, 1945, 1937, 3, 2, 2, 2, 1945, 1940, 3, 2, 2, 2, 1946, 2194, 3, 2, 2, 2, 1947, 1948, 7, 648, 2, 2, 1948, 1971, 7, 828, 2, 2, 1949, 1950, 7, 7, 2, 2, 1950, 1951, 7, 810, 2, 2, 1951, 1972, 9, 19, 2, 2, 1952, 1953, 7, 670, 2, 2, 1953, 1954, 7, 810, 2, 2, 1954, 1965, 7, 828, 2, 2, 1955, 1957, 7, 830, 2, 2, 1956, 1955, 3, 2, 2, 2, 1956, 1957, 3, 2, 2, 2, 1957, 1958, 3, 2, 2, 2, 1958, 1960, 7, 806, 2, 2, 1959, 1956, 3, 2, 2, 2, 1960, 1963, 3, 2, 2, 2, 1961, 1959, 3, 2, 2, 2, 1961, 1962, 3, 2, 2, 2, 1962, 1966, 3, 2, 2, 2, 1963, 1961, 3, 2, 2, 2, 1964, 1966, 7, 213, 2, 2, 1965, 1961, 3, 2, 2, 2, 1965, 1964, 3, 2, 2, 2, 1966, 1967, 3, 2, 2, 2, 1967, 1972, 7, 829, 2, 2, 1968, 1969, 7, 721, 2, 2, 1969, 1970, 7, 810, 2, 2, 1970, 1972, 7, 802, 2, 2, 1971, 1949, 3, 2, 2, 2, 1971, 1952, 3, 2, 2, 2, 1971, 1968, 3, 2, 2, 2, 1972, 2194, 3, 2, 2, 2, 1973, 1974, 7, 602, 2, 2, 1974, 1975, 7, 684, 2, 2, 1975, 1976, 7, 229, 2, 2, 1976, 2034, 7, 806, 2, 2, 1977, 1978, 7, 377, 2, 2, 1978, 1994, 7, 828, 2, 2, 1979, 1980, 7, 493, 2, 2, 1980, 1981, 7, 810, 2, 2, 1981, 1995, 7, 806, 2, 2, 1982, 1983, 7, 24, 2, 2, 1983, 1984, 7, 810, 2, 2, 1984, 1995, 9, 16, 2, 2, 1985, 1986, 7, 502, 2, 2, 1986, 1987, 7, 810, 2, 2, 1987, 1995, 9, 17, 2, 2, 1988, 1989, 7, 714, 2, 2, 1989, 1990, 7, 810, 2, 2, 1990, 1995, 9, 17, 2, 2, 1991, 1992, 7, 417, 2, 2, 1992, 1993, 7, 810, 2, 2, 1993, 1995, 7, 802, 2, 2, 1994, 1979, 3, 2, 2, 2, 1994, 1982, 3, 2, 2, 2, 1994, 1985, 3, 2, 2, 2, 1994, 1988, 3, 2, 2, 2, 1994, 1991, 3, 2, 2, 2, 1995, 2035, 3, 2, 2, 2, 1996, 1997, 7, 709, 2, 2, 1997, 2006, 7, 828, 2, 2, 1998, 1999, 7, 7, 2, 2, 1999, 2000, 7, 810, 2, 2, 2000, 2007, 9, 19, 2, 2, 2001, 2002, 7, 670, 2, 2, 2002, 2003, 7, 810, 2, 2, 2003, 2004, 7, 828, 2, 2, 2004, 2005, 7, 806, 2, 2, 2005, 2007, 7, 829, 2, 2, 2006, 1998, 3, 2, 2, 2, 2006, 2001, 3, 2, 2, 2, 2007, 2035, 3, 2, 2, 2, 2008, 2009, 7, 648, 2, 2, 2009, 2032, 7, 828, 2, 2, 2010, 2011, 7, 7, 2, 2, 2011, 2012, 7, 810, 2, 2, 2012, 2033, 9, 19, 2, 2, 2013, 2014, 7, 670, 2, 2, 2014, 2015, 7, 810, 2, 2, 2015, 2026, 7, 828, 2, 2, 2016, 2018, 7, 830, 2, 2, 2017, 2016, 3, 2, 2, 2, 2017, 2018, 3, 2, 2, 2, 2018, 2019, 3, 2, 2, 2, 2019, 2021, 7, 806, 2, 2, 2020, 2017, 3, 2, 2, 2, 2021, 2024, 3, 2, 2, 2, 2022, 2020, 3, 2, 2, 2, 2022, 2023, 3, 2, 2, 2, 2023, 2027, 3, 2, 2, 2, 2024, 2022, 3, 2, 2, 2, 2025, 2027, 7, 213, 2, 2, 2026, 2022, 3, 2, 2, 2, 2026, 2025, 3, 2, 2, 2, 2027, 2028, 3, 2, 2, 2, 2028, 2033, 7, 829, 2, 2, 2029, 2030, 7, 721, 2, 2, 2030, 2031, 7, 810, 2, 2, 2031, 2033, 7, 802, 2, 2, 2032, 2010, 3, 2, 2, 2, 2032, 2013, 3, 2, 2, 2, 2032, 2029, 3, 2, 2, 2, 2033, 2035, 3, 2, 2, 2, 2034, 1977, 3, 2, 2, 2, 2034, 1996, 3, 2, 2, 2, 2034, 2008, 3, 2, 2, 2, 2035, 2036, 3, 2, 2, 2, 2036, 2194, 7, 829, 2, 2, 2037, 2038, 7, 681, 2, 2, 2038, 2039, 7, 684, 2, 2, 2039, 2040, 7, 229, 2, 2, 2040, 2194, 7, 806, 2, 2, 2041, 2194, 7, 170, 2, 2, 2042, 2043, 7, 170, 2, 2, 2043, 2044, 7, 415, 2, 2, 2044, 2045, 7, 146, 2, 2, 2045, 2068, 7, 229, 2, 2, 2046, 2048, 7, 830, 2, 2, 2047, 2046, 3, 2, 2, 2, 2047, 2048, 3, 2, 2, 2, 2048, 2049, 3, 2, 2, 2, 2049, 2050, 7, 806, 2, 2, 2050, 2051, 7, 377, 2, 2, 2051, 2052, 7, 828, 2, 2, 2052, 2053, 7, 565, 2, 2, 2053, 2054, 7, 810, 2, 2, 2054, 2055, 7, 806, 2, 2, 2055, 2056, 7, 830, 2, 2, 2056, 2057, 7, 24, 2, 2, 2057, 2058, 7, 810, 2, 2, 2058, 2059, 9, 16, 2, 2, 2059, 2060, 7, 830, 2, 2, 2060, 2061, 7, 502, 2, 2, 2061, 2062, 7, 810, 2, 2, 2062, 2063, 7, 574, 2, 2, 2063, 2064, 7, 830, 2, 2, 2064, 2065, 7, 714, 2, 2, 2065, 2066, 7, 810, 2, 2, 2066, 2067, 9, 17, 2, 2, 2067, 2069, 7, 829, 2, 2, 2068, 2047, 3, 2, 2, 2, 2069, 2070, 3, 2, 2, 2, 2070, 2068, 3, 2, 2, 2, 2070, 2071, 3, 2, 2, 2, 2071, 2194, 3, 2, 2, 2, 2072, 2073, 7, 602, 2, 2, 2073, 2074, 7, 415, 2, 2, 2074, 2075, 7, 146, 2, 2, 2075, 2110, 7, 229, 2, 2, 2076, 2078, 7, 830, 2, 2, 2077, 2076, 3, 2, 2, 2, 2077, 2078, 3, 2, 2, 2, 2078, 2079, 3, 2, 2, 2, 2079, 2080, 7, 806, 2, 2, 2080, 2081, 7, 377, 2, 2, 2081, 2082, 7, 828, 2, 2, 2082, 2083, 7, 565, 2, 2, 2083, 2084, 7, 810, 2, 2, 2084, 2091, 7, 806, 2, 2, 2085, 2087, 7, 830, 2, 2, 2086, 2085, 3, 2, 2, 2, 2086, 2087, 3, 2, 2, 2, 2087, 2088, 3, 2, 2, 2, 2088, 2089, 7, 24, 2, 2, 2089, 2090, 7, 810, 2, 2, 2090, 2092, 9, 16, 2, 2, 2091, 2086, 3, 2, 2, 2, 2091, 2092, 3, 2, 2, 2, 2092, 2099, 3, 2, 2, 2, 2093, 2095, 7, 830, 2, 2, 2094, 2093, 3, 2, 2, 2, 2094, 2095, 3, 2, 2, 2, 2095, 2096, 3, 2, 2, 2, 2096, 2097, 7, 502, 2, 2, 2097, 2098, 7, 810, 2, 2, 2098, 2100, 7, 574, 2, 2, 2099, 2094, 3, 2, 2, 2, 2099, 2100, 3, 2, 2, 2, 2100, 2107, 3, 2, 2, 2, 2101, 2103, 7, 830, 2, 2, 2102, 2101, 3, 2, 2, 2, 2102, 2103, 3, 2, 2, 2, 2103, 2104, 3, 2, 2, 2, 2104, 2105, 7, 714, 2, 2, 2105, 2106, 7, 810, 2, 2, 2106, 2108, 9, 17, 2, 2, 2107, 2102, 3, 2, 2, 2, 2107, 2108, 3, 2, 2, 2, 2108, 2109, 3, 2, 2, 2, 2109, 2111, 7, 829, 2, 2, 2110, 2077, 3, 2, 2, 2, 2111, 2112, 3, 2, 2, 2, 2112, 2110, 3, 2, 2, 2, 2112, 2113, 3, 2, 2, 2, 2113, 2194, 3, 2, 2, 2, 2114, 2115, 7, 145, 2, 2, 2115, 2116, 7, 73, 2, 2, 2116, 2117, 7, 13, 2, 2, 2117, 2194, 7, 84, 2, 2, 2118, 2119, 7, 93, 2, 2, 2119, 2120, 7, 73, 2, 2, 2120, 2121, 7, 13, 2, 2, 2121, 2194, 7, 84, 2, 2, 2122, 2194, 7, 125, 2, 2, 2123, 2194, 7, 516, 2, 2, 2124, 2125, 7, 4, 2, 2, 2125, 2126, 7, 564, 2, 2, 2126, 2127, 7, 806, 2, 2, 2127, 2161, 7, 828, 2, 2, 2128, 2129, 7, 377, 2, 2, 2129, 2130, 7, 477, 2, 2, 2130, 2131, 7, 229, 2, 2, 2131, 2132, 7, 828, 2, 2, 2132, 2133, 7, 166, 2, 2, 2133, 2134, 7, 166, 2, 2, 2134, 2135, 3, 2, 2, 2, 2135, 2162, 7, 829, 2, 2, 2136, 2137, 7, 377, 2, 2, 2137, 2138, 7, 548, 2, 2, 2138, 2150, 7, 828, 2, 2, 2139, 2141, 7, 830, 2, 2, 2140, 2139, 3, 2, 2, 2, 2140, 2141, 3, 2, 2, 2, 2141, 2142, 3, 2, 2, 2, 2142, 2147, 7, 828, 2, 2, 2143, 2144, 7, 166, 2, 2, 2144, 2145, 7, 830, 2, 2, 2145, 2148, 7, 166, 2, 2, 2146, 2148, 7, 167, 2, 2, 2147, 2143, 3, 2, 2, 2, 2147, 2146, 3, 2, 2, 2, 2148, 2149, 3, 2, 2, 2, 2149, 2151, 7, 829, 2, 2, 2150, 2140, 3, 2, 2, 2, 2151, 2152, 3, 2, 2, 2, 2152, 2150, 3, 2, 2, 2, 2152, 2153, 3, 2, 2, 2, 2153, 2154, 3, 2, 2, 2, 2154, 2159, 7, 829, 2, 2, 2155, 2156, 7, 830, 2, 2, 2156, 2157, 7, 646, 2, 2, 2157, 2158, 7, 810, 2, 2, 2158, 2160, 7, 802, 2, 2, 2159, 2155, 3, 2, 2, 2, 2159, 2160, 3, 2, 2, 2, 2160, 2162, 3, 2, 2, 2, 2161, 2128, 3, 2, 2, 2, 2161, 2136, 3, 2, 2, 2, 2162, 2163, 3, 2, 2, 2, 2163, 2194, 7, 829, 2, 2, 2164, 2165, 7, 602, 2, 2, 2165, 2178, 7, 564, 2, 2, 2166, 2167, 7, 4, 2, 2, 2167, 2168, 7, 548, 2, 2, 2168, 2172, 7, 828, 2, 2, 2169, 2170, 7, 166, 2, 2, 2170, 2173, 7, 166, 2, 2, 2171, 2173, 7, 167, 2, 2, 2172, 2169, 3, 2, 2, 2, 2172, 2171, 3, 2, 2, 2, 2173, 2174, 3, 2, 2, 2, 2174, 2179, 7, 829, 2, 2, 2175, 2176, 7, 646, 2, 2, 2176, 2177, 7, 810, 2, 2, 2177, 2179, 7, 802, 2, 2, 2178, 2166, 3, 2, 2, 2, 2178, 2175, 3, 2, 2, 2, 2179, 2194, 3, 2, 2, 2, 2180, 2181, 7, 277, 2, 2, 2181, 2182, 7, 564, 2, 2, 2182, 2194, 7, 806, 2, 2, 2183, 2184, 7, 681, 2, 2, 2184, 2185, 7, 564, 2, 2, 2185, 2194, 7, 806, 2, 2, 2186, 2194, 7, 626, 2, 2, 2187, 2188, 7, 377, 2, 2, 2188, 2189, 7, 828, 2, 2, 2189, 2190, 7, 104, 2, 2, 2190, 2191, 7, 810, 2, 2, 2191, 2192, 7, 248, 2, 2, 2192, 2194, 7, 829, 2, 2, 2193, 1843, 3, 2, 2, 2, 2193, 1863, 3, 2, 2, 2, 2193, 1866, 3, 2, 2, 2, 2193, 1869, 3, 2, 2, 2, 2193, 1935, 3, 2, 2, 2, 2193, 1947, 3, 2, 2, 2, 2193, 1973, 3, 2, 2, 2, 2193, 2037, 3, 2, 2, 2, 2193, 2041, 3, 2, 2, 2, 2193, 2042, 3, 2, 2, 2, 2193, 2072, 3, 2, 2, 2, 2193, 2114, 3, 2, 2, 2, 2193, 2118, 3, 2, 2, 2, 2193, 2122, 3, 2, 2, 2, 2193, 2123, 3, 2, 2, 2, 2193, 2124, 3, 2, 2, 2, 2193, 2164, 3, 2, 2, 2, 2193, 2180, 3, 2, 2, 2, 2193, 2183, 3, 2, 2, 2, 2193, 2186, 3, 2, 2, 2, 2193, 2187, 3, 2, 2, 2, 2194, 163, 3, 2, 2, 2, 2195, 2196, 9, 20, 2, 2, 2196, 2197, 7, 424, 2, 2, 2197, 2198, 7, 650, 2, 2, 2198, 2199, 5, 966, 484, 2, 2199, 2200, 7, 133, 2, 2, 2200, 2201, 7, 70, 2, 2, 2201, 2202, 7, 315, 2, 2, 2202, 2212, 7, 828, 2, 2, 2203, 2204, 7, 69, 2, 2, 2204, 2207, 7, 810, 2, 2, 2205, 2208, 5, 966, 484, 2, 2206, 2208, 7, 13, 2, 2, 2207, 2205, 3, 2, 2, 2, 2207, 2206, 3, 2, 2, 2, 2208, 2210, 3, 2, 2, 2, 2209, 2211, 7, 830, 2, 2, 2210, 2209, 3, 2, 2, 2, 2210, 2211, 3, 2, 2, 2, 2211, 2213, 3, 2, 2, 2, 2212, 2203, 3, 2, 2, 2, 2212, 2213, 3, 2, 2, 2, 2213, 2226, 3, 2, 2, 2, 2214, 2215, 7, 186, 2, 2, 2215, 2221, 7, 810, 2, 2, 2216, 2218, 7, 102, 2, 2, 2217, 2216, 3, 2, 2, 2, 2217, 2218, 3, 2, 2, 2, 2218, 2219, 3, 2, 2, 2, 2219, 2222, 5, 966, 484, 2, 2220, 2222, 7, 13, 2, 2, 2221, 2217, 3, 2, 2, 2, 2221, 2220, 3, 2, 2, 2, 2222, 2224, 3, 2, 2, 2, 2223, 2225, 7, 830, 2, 2, 2224, 2223, 3, 2, 2, 2, 2224, 2225, 3, 2, 2, 2, 2225, 2227, 3, 2, 2, 2, 2226, 2214, 3, 2, 2, 2, 2226, 2227, 3, 2, 2, 2, 2227, 2237, 3, 2, 2, 2, 2228, 2229, 7, 680, 2, 2, 2229, 2232, 7, 810, 2, 2, 2230, 2233, 7, 806, 2, 2, 2231, 2233, 7, 13, 2, 2, 2232, 2230, 3, 2, 2, 2, 2232, 2231, 3, 2, 2, 2, 2233, 2235, 3, 2, 2, 2, 2234, 2236, 7, 830, 2, 2, 2235, 2234, 3, 2, 2, 2, 2235, 2236, 3, 2, 2, 2, 2236, 2238, 3, 2, 2, 2, 2237, 2228, 3, 2, 2, 2, 2237, 2238, 3, 2, 2, 2, 2238, 2245, 3, 2, 2, 2, 2239, 2240, 7, 651, 2, 2, 2240, 2243, 7, 810, 2, 2, 2241, 2244, 7, 802, 2, 2, 2242, 2244, 7, 89, 2, 2, 2243, 2241, 3, 2, 2, 2, 2243, 2242, 3, 2, 2, 2, 2244, 2246, 3, 2, 2, 2, 2245, 2239, 3, 2, 2, 2, 2245, 2246, 3, 2, 2, 2, 2246, 2247, 3, 2, 2, 2, 2247, 2248, 7, 829, 2, 2, 2248, 165, 3, 2, 2, 2, 2249, 2250, 7, 103, 2, 2, 2250, 2251, 7, 424, 2, 2, 2251, 2252, 7, 650, 2, 2, 2252, 2253, 5, 966, 484, 2, 2253, 167, 3, 2, 2, 2, 2254, 2255, 7, 10, 2, 2, 2255, 2256, 7, 43, 2, 2, 2256, 2296, 5, 966, 484, 2, 2257, 2258, 7, 681, 2, 2, 2258, 2297, 7, 653, 2, 2, 2259, 2260, 7, 377, 2, 2, 2260, 2261, 7, 652, 2, 2, 2261, 2262, 7, 172, 2, 2, 2262, 2285, 7, 828, 2, 2, 2263, 2264, 7, 129, 2, 2, 2264, 2265, 7, 810, 2, 2, 2265, 2267, 7, 806, 2, 2, 2266, 2268, 7, 830, 2, 2, 2267, 2266, 3, 2, 2, 2, 2267, 2268, 3, 2, 2, 2, 2268, 2286, 3, 2, 2, 2, 2269, 2270, 7, 465, 2, 2, 2270, 2271, 7, 38, 2, 2, 2271, 2272, 7, 244, 2, 2, 2272, 2273, 7, 810, 2, 2, 2273, 2275, 7, 806, 2, 2, 2274, 2276, 7, 830, 2, 2, 2275, 2274, 3, 2, 2, 2, 2275, 2276, 3, 2, 2, 2, 2276, 2286, 3, 2, 2, 2, 2277, 2278, 7, 492, 2, 2, 2278, 2279, 7, 38, 2, 2, 2279, 2280, 7, 244, 2, 2, 2280, 2281, 7, 810, 2, 2, 2281, 2283, 7, 806, 2, 2, 2282, 2284, 7, 830, 2, 2, 2283, 2282, 3, 2, 2, 2, 2283, 2284, 3, 2, 2, 2, 2284, 2286, 3, 2, 2, 2, 2285, 2263, 3, 2, 2, 2, 2285, 2269, 3, 2, 2, 2, 2285, 2277, 3, 2, 2, 2, 2286, 2287, 3, 2, 2, 2, 2287, 2285, 3, 2, 2, 2, 2287, 2288, 3, 2, 2, 2, 2288, 2289, 3, 2, 2, 2, 2289, 2297, 7, 829, 2, 2, 2290, 2291, 7, 377, 2, 2, 2291, 2292, 7, 386, 2, 2, 2292, 2293, 7, 133, 2, 2, 2293, 2294, 7, 418, 2, 2, 2294, 2295, 7, 810, 2, 2, 2295, 2297, 9, 9, 2, 2, 2296, 2257, 3, 2, 2, 2, 2296, 2259, 3, 2, 2, 2, 2296, 2290, 3, 2, 2, 2, 2297, 169, 3, 2, 2, 2, 2298, 2299, 7, 10, 2, 2, 2299, 2300, 7, 56, 2, 2, 2300, 2301, 7, 492, 2, 2, 2301, 2302, 7, 172, 2, 2, 2302, 2303, 5, 966, 484, 2, 2303, 2304, 9, 21, 2, 2, 2304, 2305, 7, 779, 2, 2, 2305, 2306, 7, 828, 2, 2, 2306, 2307, 7, 438, 2, 2, 2307, 2308, 7, 810, 2, 2, 2308, 2317, 5, 966, 484, 2, 2309, 2310, 7, 830, 2, 2, 2310, 2311, 7, 394, 2, 2, 2311, 2312, 7, 810, 2, 2, 2312, 2313, 7, 806, 2, 2, 2313, 2314, 7, 830, 2, 2, 2314, 2315, 7, 491, 2, 2, 2315, 2316, 7, 810, 2, 2, 2316, 2318, 7, 807, 2, 2, 2317, 2309, 3, 2, 2, 2, 2317, 2318, 3, 2, 2, 2, 2318, 2319, 3, 2, 2, 2, 2319, 2320, 7, 829, 2, 2, 2320, 171, 3, 2, 2, 2, 2321, 2322, 7, 73, 2, 2, 2322, 2323, 7, 56, 2, 2, 2323, 2324, 7, 492, 2, 2, 2324, 2325, 7, 172, 2, 2, 2325, 2326, 5, 966, 484, 2, 2326, 2327, 7, 377, 2, 2, 2327, 2347, 7, 367, 2, 2, 2328, 2330, 7, 828, 2, 2, 2329, 2331, 7, 830, 2, 2, 2330, 2329, 3, 2, 2, 2, 2330, 2331, 3, 2, 2, 2, 2331, 2332, 3, 2, 2, 2, 2332, 2333, 7, 438, 2, 2, 2333, 2334, 7, 810, 2, 2, 2334, 2335, 5, 966, 484, 2, 2335, 2336, 7, 830, 2, 2, 2336, 2337, 7, 394, 2, 2, 2337, 2338, 7, 810, 2, 2, 2338, 2339, 7, 806, 2, 2, 2339, 2340, 7, 830, 2, 2, 2340, 2341, 7, 491, 2, 2, 2341, 2342, 7, 810, 2, 2, 2342, 2343, 7, 807, 2, 2, 2343, 2345, 7, 829, 2, 2, 2344, 2346, 7, 830, 2, 2, 2345, 2344, 3, 2, 2, 2, 2345, 2346, 3, 2, 2, 2, 2346, 2348, 3, 2, 2, 2, 2347, 2328, 3, 2, 2, 2, 2348, 2349, 3, 2, 2, 2, 2349, 2347, 3, 2, 2, 2, 2349, 2350, 3, 2, 2, 2, 2350, 173, 3, 2, 2, 2, 2351, 2352, 7, 103, 2, 2, 2352, 2353, 7, 43, 2, 2, 2353, 2354, 5, 966, 484, 2, 2354, 175, 3, 2, 2, 2, 2355, 2356, 7, 103, 2, 2, 2356, 2357, 7, 56, 2, 2, 2357, 2358, 7, 492, 2, 2, 2358, 2359, 7, 172, 2, 2, 2359, 2360, 5, 966, 484, 2, 2360, 177, 3, 2, 2, 2, 2361, 2362, 7, 103, 2, 2, 2362, 2363, 7, 56, 2, 2, 2363, 2364, 7, 189, 2, 2, 2364, 2365, 7, 172, 2, 2, 2365, 2366, 5, 966, 484, 2, 2366, 179, 3, 2, 2, 2, 2367, 2368, 7, 103, 2, 2, 2368, 2369, 7, 68, 2, 2, 2369, 2370, 5, 966, 484, 2, 2370, 181, 3, 2, 2, 2, 2371, 2372, 7, 103, 2, 2, 2372, 2373, 7, 452, 2, 2, 2373, 2374, 5, 966, 484, 2, 2374, 183, 3, 2, 2, 2, 2375, 2376, 7, 103, 2, 2, 2376, 2377, 7, 453, 2, 2, 2377, 2378, 7, 657, 2, 2, 2378, 2379, 5, 966, 484, 2, 2379, 185, 3, 2, 2, 2, 2380, 2381, 7, 103, 2, 2, 2381, 2384, 7, 84, 2, 2, 2382, 2383, 7, 153, 2, 2, 2383, 2385, 7, 119, 2, 2, 2384, 2382, 3, 2, 2, 2, 2384, 2385, 3, 2, 2, 2, 2385, 2390, 3, 2, 2, 2, 2386, 2388, 7, 830, 2, 2, 2387, 2386, 3, 2, 2, 2, 2387, 2388, 3, 2, 2, 2, 2388, 2389, 3, 2, 2, 2, 2389, 2391, 5, 966, 484, 2, 2390, 2387, 3, 2, 2, 2, 2391, 2392, 3, 2, 2, 2, 2392, 2390, 3, 2, 2, 2, 2392, 2393, 3, 2, 2, 2, 2393, 187, 3, 2, 2, 2, 2394, 2395, 7, 103, 2, 2, 2395, 2396, 7, 84, 2, 2, 2396, 2397, 7, 406, 2, 2, 2397, 2398, 7, 323, 2, 2, 2398, 2399, 5, 966, 484, 2, 2399, 189, 3, 2, 2, 2, 2400, 2401, 7, 103, 2, 2, 2401, 2402, 7, 84, 2, 2, 2402, 2403, 7, 703, 2, 2, 2403, 2404, 7, 452, 2, 2, 2404, 2405, 5, 966, 484, 2, 2405, 191, 3, 2, 2, 2, 2406, 2407, 7, 103, 2, 2, 2407, 2410, 7, 89, 2, 2, 2408, 2409, 7, 153, 2, 2, 2409, 2411, 7, 119, 2, 2, 2410, 2408, 3, 2, 2, 2, 2410, 2411, 3, 2, 2, 2, 2411, 2413, 3, 2, 2, 2, 2412, 2414, 7, 830, 2, 2, 2413, 2412, 3, 2, 2, 2, 2413, 2414, 3, 2, 2, 2, 2414, 2418, 3, 2, 2, 2, 2415, 2416, 5, 966, 484, 2, 2416, 2417, 7, 823, 2, 2, 2417, 2419, 3, 2, 2, 2, 2418, 2415, 3, 2, 2, 2, 2418, 2419, 3, 2, 2, 2, 2419, 2420, 3, 2, 2, 2, 2420, 2421, 5, 966, 484, 2, 2421, 193, 3, 2, 2, 2, 2422, 2423, 7, 103, 2, 2, 2423, 2424, 7, 109, 2, 2, 2424, 2425, 5, 966, 484, 2, 2425, 195, 3, 2, 2, 2, 2426, 2427, 7, 103, 2, 2, 2427, 2428, 7, 123, 2, 2, 2428, 2429, 7, 456, 2, 2, 2429, 2430, 7, 322, 2, 2, 2430, 2431, 5, 966, 484, 2, 2431, 197, 3, 2, 2, 2, 2432, 2433, 7, 103, 2, 2, 2433, 2434, 7, 123, 2, 2, 2434, 2435, 7, 129, 2, 2, 2435, 2436, 7, 518, 2, 2, 2436, 2437, 5, 966, 484, 2, 2437, 199, 3, 2, 2, 2, 2438, 2439, 7, 103, 2, 2, 2439, 2440, 7, 123, 2, 2, 2440, 2441, 7, 178, 2, 2, 2441, 2444, 5, 966, 484, 2, 2442, 2443, 7, 20, 2, 2, 2443, 2445, 5, 966, 484, 2, 2444, 2442, 3, 2, 2, 2, 2444, 2445, 3, 2, 2, 2, 2445, 201, 3, 2, 2, 2, 2446, 2447, 7, 103, 2, 2, 2447, 2448, 7, 123, 2, 2, 2448, 2449, 7, 690, 2, 2, 2449, 2450, 7, 645, 2, 2, 2450, 2451, 5, 966, 484, 2, 2451, 203, 3, 2, 2, 2, 2452, 2453, 7, 103, 2, 2, 2453, 2454, 7, 123, 2, 2, 2454, 2458, 7, 339, 2, 2, 2455, 2456, 5, 966, 484, 2, 2456, 2457, 7, 823, 2, 2, 2457, 2459, 3, 2, 2, 2, 2458, 2455, 3, 2, 2, 2, 2458, 2459, 3, 2, 2, 2, 2459, 2463, 3, 2, 2, 2, 2460, 2461, 5, 966, 484, 2, 2461, 2462, 7, 823, 2, 2, 2462, 2464, 3, 2, 2, 2, 2463, 2460, 3, 2, 2, 2, 2463, 2464, 3, 2, 2, 2, 2464, 2465, 3, 2, 2, 2, 2465, 2466, 5, 966, 484, 2, 2466, 205, 3, 2, 2, 2, 2467, 2468, 7, 103, 2, 2, 2468, 2469, 7, 113, 2, 2, 2469, 2474, 7, 221, 2, 2, 2470, 2472, 7, 830, 2, 2, 2471, 2470, 3, 2, 2, 2, 2471, 2472, 3, 2, 2, 2, 2472, 2473, 3, 2, 2, 2, 2473, 2475, 5, 966, 484, 2, 2474, 2471, 3, 2, 2, 2, 2475, 2476, 3, 2, 2, 2, 2476, 2474, 3, 2, 2, 2, 2476, 2477, 3, 2, 2, 2, 2477, 2478, 3, 2, 2, 2, 2478, 2483, 7, 229, 2, 2, 2479, 2484, 7, 309, 2, 2, 2480, 2484, 7, 84, 2, 2, 2481, 2482, 7, 660, 2, 2, 2482, 2484, 5, 966, 484, 2, 2483, 2479, 3, 2, 2, 2, 2483, 2480, 3, 2, 2, 2, 2483, 2481, 3, 2, 2, 2, 2484, 207, 3, 2, 2, 2, 2485, 2486, 7, 103, 2, 2, 2486, 2487, 7, 113, 2, 2, 2487, 2488, 7, 313, 2, 2, 2488, 2489, 5, 966, 484, 2, 2489, 2490, 7, 229, 2, 2, 2490, 2491, 7, 309, 2, 2, 2491, 209, 3, 2, 2, 2, 2492, 2493, 7, 103, 2, 2, 2493, 2494, 7, 521, 2, 2, 2494, 2495, 7, 430, 2, 2, 2495, 2496, 5, 966, 484, 2, 2496, 211, 3, 2, 2, 2, 2497, 2498, 7, 103, 2, 2, 2498, 2499, 7, 521, 2, 2, 2499, 2500, 7, 158, 2, 2, 2500, 2504, 7, 229, 2, 2, 2501, 2502, 5, 966, 484, 2, 2502, 2503, 7, 823, 2, 2, 2503, 2505, 3, 2, 2, 2, 2504, 2501, 3, 2, 2, 2, 2504, 2505, 3, 2, 2, 2, 2505, 2506, 3, 2, 2, 2, 2506, 2507, 5, 966, 484, 2, 2507, 213, 3, 2, 2, 2, 2508, 2509, 7, 103, 2, 2, 2509, 2510, 7, 521, 2, 2, 2510, 2511, 7, 740, 2, 2, 2511, 2512, 5, 966, 484, 2, 2512, 215, 3, 2, 2, 2, 2513, 2514, 7, 103, 2, 2, 2514, 2515, 7, 571, 2, 2, 2515, 2516, 5, 966, 484, 2, 2516, 217, 3, 2, 2, 2, 2517, 2518, 7, 103, 2, 2, 2518, 2519, 7, 189, 2, 2, 2519, 2520, 7, 172, 2, 2, 2520, 219, 3, 2, 2, 2, 2521, 2522, 7, 103, 2, 2, 2522, 2523, 7, 592, 2, 2, 2523, 2524, 7, 769, 2, 2, 2524, 2525, 5, 966, 484, 2, 2525, 221, 3, 2, 2, 2, 2526, 2527, 7, 103, 2, 2, 2527, 2528, 7, 640, 2, 2, 2528, 2529, 7, 141, 2, 2, 2529, 2530, 5, 966, 484, 2, 2530, 223, 3, 2, 2, 2, 2531, 2532, 7, 103, 2, 2, 2532, 2533, 7, 640, 2, 2, 2533, 2534, 7, 303, 2, 2, 2534, 2535, 5, 966, 484, 2, 2535, 225, 3, 2, 2, 2, 2536, 2537, 7, 103, 2, 2, 2537, 2541, 7, 660, 2, 2, 2538, 2539, 5, 966, 484, 2, 2539, 2540, 7, 823, 2, 2, 2540, 2542, 3, 2, 2, 2, 2541, 2538, 3, 2, 2, 2, 2541, 2542, 3, 2, 2, 2, 2542, 2546, 3, 2, 2, 2, 2543, 2544, 5, 966, 484, 2, 2544, 2545, 7, 823, 2, 2, 2545, 2547, 3, 2, 2, 2, 2546, 2543, 3, 2, 2, 2, 2546, 2547, 3, 2, 2, 2, 2547, 2548, 3, 2, 2, 2, 2548, 2549, 5, 966, 484, 2, 2549, 227, 3, 2, 2, 2, 2550, 2551, 7, 103, 2, 2, 2551, 2552, 7, 679, 2, 2, 2552, 2553, 7, 310, 2, 2, 2553, 2554, 7, 422, 2, 2, 2554, 2555, 5, 966, 484, 2, 2555, 229, 3, 2, 2, 2, 2556, 2557, 7, 103, 2, 2, 2557, 2558, 7, 690, 2, 2, 2558, 2559, 7, 645, 2, 2, 2559, 2560, 5, 966, 484, 2, 2560, 231, 3, 2, 2, 2, 2561, 2562, 7, 103, 2, 2, 2562, 2565, 7, 289, 2, 2, 2563, 2564, 7, 153, 2, 2, 2564, 2566, 7, 119, 2, 2, 2565, 2563, 3, 2, 2, 2, 2565, 2566, 3, 2, 2, 2, 2566, 2567, 3, 2, 2, 2, 2567, 2568, 5, 966, 484, 2, 2568, 233, 3, 2, 2, 2, 2569, 2570, 7, 103, 2, 2, 2570, 2571, 7, 696, 2, 2, 2571, 2572, 5, 966, 484, 2, 2572, 235, 3, 2, 2, 2, 2573, 2574, 7, 103, 2, 2, 2574, 2577, 7, 298, 2, 2, 2575, 2576, 7, 153, 2, 2, 2576, 2578, 7, 119, 2, 2, 2577, 2575, 3, 2, 2, 2, 2577, 2578, 3, 2, 2, 2, 2578, 2588, 3, 2, 2, 2, 2579, 2581, 7, 830, 2, 2, 2580, 2579, 3, 2, 2, 2, 2580, 2581, 3, 2, 2, 2, 2581, 2585, 3, 2, 2, 2, 2582, 2583, 5, 966, 484, 2, 2583, 2584, 7, 823, 2, 2, 2584, 2586, 3, 2, 2, 2, 2585, 2582, 3, 2, 2, 2, 2585, 2586, 3, 2, 2, 2, 2586, 2587, 3, 2, 2, 2, 2587, 2589, 5, 966, 484, 2, 2588, 2580, 3, 2, 2, 2, 2588, 2589, 3, 2, 2, 2, 2589, 237, 3, 2, 2, 2, 2590, 2591, 7, 103, 2, 2, 2591, 2594, 7, 302, 2, 2, 2592, 2593, 7, 153, 2, 2, 2593, 2595, 7, 119, 2, 2, 2594, 2592, 3, 2, 2, 2, 2594, 2595, 3, 2, 2, 2, 2595, 2596, 3, 2, 2, 2, 2596, 2597, 5, 966, 484, 2, 2597, 239, 3, 2, 2, 2, 2598, 2599, 7, 103, 2, 2, 2599, 2600, 7, 706, 2, 2, 2600, 2601, 7, 656, 2, 2, 2601, 2602, 7, 563, 2, 2, 2602, 2603, 5, 966, 484, 2, 2603, 241, 3, 2, 2, 2, 2604, 2605, 7, 103, 2, 2, 2605, 2606, 7, 712, 2, 2, 2606, 2609, 7, 253, 2, 2, 2607, 2608, 7, 153, 2, 2, 2608, 2610, 7, 119, 2, 2, 2609, 2607, 3, 2, 2, 2, 2609, 2610, 3, 2, 2, 2, 2610, 2614, 3, 2, 2, 2, 2611, 2612, 5, 966, 484, 2, 2612, 2613, 7, 823, 2, 2, 2613, 2615, 3, 2, 2, 2, 2614, 2611, 3, 2, 2, 2, 2614, 2615, 3, 2, 2, 2, 2615, 2616, 3, 2, 2, 2, 2616, 2617, 5, 966, 484, 2, 2617, 243, 3, 2, 2, 2, 2618, 2619, 7, 103, 2, 2, 2619, 2622, 7, 719, 2, 2, 2620, 2621, 7, 153, 2, 2, 2621, 2623, 7, 119, 2, 2, 2622, 2620, 3, 2, 2, 2, 2622, 2623, 3, 2, 2, 2, 2623, 2638, 3, 2, 2, 2, 2624, 2626, 7, 830, 2, 2, 2625, 2624, 3, 2, 2, 2, 2625, 2626, 3, 2, 2, 2, 2626, 2630, 3, 2, 2, 2, 2627, 2628, 5, 966, 484, 2, 2628, 2629, 7, 823, 2, 2, 2629, 2631, 3, 2, 2, 2, 2630, 2627, 3, 2, 2, 2, 2630, 2631, 3, 2, 2, 2, 2631, 2635, 3, 2, 2, 2, 2632, 2633, 5, 966, 484, 2, 2633, 2634, 7, 823, 2, 2, 2634, 2636, 3, 2, 2, 2, 2635, 2632, 3, 2, 2, 2, 2635, 2636, 3, 2, 2, 2, 2636, 2637, 3, 2, 2, 2, 2637, 2639, 5, 966, 484, 2, 2638, 2625, 3, 2, 2, 2, 2638, 2639, 3, 2, 2, 2, 2639, 245, 3, 2, 2, 2, 2640, 2641, 7, 103, 2, 2, 2641, 2642, 7, 309, 2, 2, 2642, 2643, 7, 406, 2, 2, 2643, 2644, 5, 966, 484, 2, 2644, 247, 3, 2, 2, 2, 2645, 2646, 7, 103, 2, 2, 2646, 2647, 7, 309, 2, 2, 2647, 2648, 7, 406, 2, 2, 2648, 2649, 7, 323, 2, 2, 2649, 2650, 5, 966, 484, 2, 2650, 249, 3, 2, 2, 2, 2651, 2652, 7, 103, 2, 2, 2652, 2653, 7, 309, 2, 2, 2653, 2654, 7, 289, 2, 2, 2654, 2655, 5, 966, 484, 2, 2655, 251, 3, 2, 2, 2, 2656, 2657, 7, 103, 2, 2, 2657, 2658, 7, 310, 2, 2, 2658, 2659, 5, 966, 484, 2, 2659, 253, 3, 2, 2, 2, 2660, 2662, 7, 103, 2, 2, 2661, 2663, 7, 448, 2, 2, 2662, 2661, 3, 2, 2, 2, 2662, 2663, 3, 2, 2, 2, 2663, 2664, 3, 2, 2, 2, 2664, 2665, 7, 725, 2, 2, 2665, 2669, 7, 139, 2, 2, 2666, 2667, 5, 966, 484, 2, 2667, 2668, 7, 823, 2, 2, 2668, 2670, 3, 2, 2, 2, 2669, 2666, 3, 2, 2, 2, 2669, 2670, 3, 2, 2, 2, 2670, 2671, 3, 2, 2, 2, 2671, 2672, 5, 966, 484, 2, 2672, 2684, 7, 38, 2, 2, 2673, 2675, 7, 830, 2, 2, 2674, 2673, 3, 2, 2, 2, 2674, 2675, 3, 2, 2, 2, 2675, 2676, 3, 2, 2, 2, 2676, 2677, 7, 43, 2, 2, 2677, 2685, 5, 966, 484, 2, 2678, 2680, 7, 830, 2, 2, 2679, 2678, 3, 2, 2, 2, 2679, 2680, 3, 2, 2, 2, 2680, 2681, 3, 2, 2, 2, 2681, 2682, 7, 18, 2, 2, 2682, 2683, 7, 172, 2, 2, 2683, 2685, 5, 966, 484, 2, 2684, 2674, 3, 2, 2, 2, 2684, 2679, 3, 2, 2, 2, 2685, 2686, 3, 2, 2, 2, 2686, 2684, 3, 2, 2, 2, 2686, 2687, 3, 2, 2, 2, 2687, 255, 3, 2, 2, 2, 2688, 2689, 7, 103, 2, 2, 2689, 2693, 7, 328, 2, 2, 2690, 2691, 5, 966, 484, 2, 2691, 2692, 7, 823, 2, 2, 2692, 2694, 3, 2, 2, 2, 2693, 2690, 3, 2, 2, 2, 2693, 2694, 3, 2, 2, 2, 2694, 2695, 3, 2, 2, 2, 2695, 2696, 5, 966, 484, 2, 2696, 2697, 7, 823, 2, 2, 2697, 2698, 5, 966, 484, 2, 2698, 257, 3, 2, 2, 2, 2699, 2700, 7, 103, 2, 2, 2700, 2701, 7, 747, 2, 2, 2701, 2702, 7, 172, 2, 2, 2702, 2706, 5, 966, 484, 2, 2703, 2704, 7, 681, 2, 2, 2704, 2705, 7, 657, 2, 2, 2705, 2707, 7, 172, 2, 2, 2706, 2703, 3, 2, 2, 2, 2706, 2707, 3, 2, 2, 2, 2707, 259, 3, 2, 2, 2, 2708, 2709, 7, 103, 2, 2, 2709, 2712, 7, 749, 2, 2, 2710, 2711, 7, 153, 2, 2, 2711, 2713, 7, 119, 2, 2, 2712, 2710, 3, 2, 2, 2, 2712, 2713, 3, 2, 2, 2, 2713, 2717, 3, 2, 2, 2, 2714, 2715, 5, 966, 484, 2, 2715, 2716, 7, 823, 2, 2, 2716, 2718, 3, 2, 2, 2, 2717, 2714, 3, 2, 2, 2, 2717, 2718, 3, 2, 2, 2, 2718, 2719, 3, 2, 2, 2, 2719, 2720, 5, 966, 484, 2, 2720, 261, 3, 2, 2, 2, 2721, 2722, 7, 103, 2, 2, 2722, 2725, 7, 366, 2, 2, 2723, 2724, 7, 153, 2, 2, 2724, 2726, 7, 119, 2, 2, 2725, 2723, 3, 2, 2, 2, 2725, 2726, 3, 2, 2, 2, 2726, 2727, 3, 2, 2, 2, 2727, 2728, 5, 966, 484, 2, 2728, 263, 3, 2, 2, 2, 2729, 2730, 7, 103, 2, 2, 2730, 2731, 7, 788, 2, 2, 2731, 2732, 7, 146, 2, 2, 2732, 2733, 5, 966, 484, 2, 2733, 265, 3, 2, 2, 2, 2734, 2735, 7, 103, 2, 2, 2735, 2736, 7, 789, 2, 2, 2736, 2737, 7, 302, 2, 2, 2737, 2741, 7, 437, 2, 2, 2738, 2739, 5, 966, 484, 2, 2739, 2740, 7, 823, 2, 2, 2740, 2742, 3, 2, 2, 2, 2741, 2738, 3, 2, 2, 2, 2741, 2742, 3, 2, 2, 2, 2742, 2743, 3, 2, 2, 2, 2743, 2744, 5, 966, 484, 2, 2744, 267, 3, 2, 2, 2, 2745, 2746, 7, 480, 2, 2, 2746, 2761, 7, 352, 2, 2, 2747, 2749, 7, 830, 2, 2, 2748, 2747, 3, 2, 2, 2, 2748, 2749, 3, 2, 2, 2, 2749, 2753, 3, 2, 2, 2, 2750, 2751, 5, 966, 484, 2, 2751, 2752, 7, 823, 2, 2, 2752, 2754, 3, 2, 2, 2, 2753, 2750, 3, 2, 2, 2, 2753, 2754, 3, 2, 2, 2, 2754, 2755, 3, 2, 2, 2, 2755, 2757, 5, 966, 484, 2, 2756, 2748, 3, 2, 2, 2, 2757, 2758, 3, 2, 2, 2, 2758, 2756, 3, 2, 2, 2, 2758, 2759, 3, 2, 2, 2, 2759, 2762, 3, 2, 2, 2, 2760, 2762, 7, 6, 2, 2, 2761, 2756, 3, 2, 2, 2, 2761, 2760, 3, 2, 2, 2, 2762, 2763, 3, 2, 2, 2, 2763, 2773, 7, 229, 2, 2, 2764, 2765, 5, 966, 484, 2, 2765, 2766, 7, 823, 2, 2, 2766, 2768, 3, 2, 2, 2, 2767, 2764, 3, 2, 2, 2, 2767, 2768, 3, 2, 2, 2, 2768, 2769, 3, 2, 2, 2, 2769, 2774, 5, 966, 484, 2, 2770, 2774, 7, 84, 2, 2, 2771, 2772, 7, 6, 2, 2, 2772, 2774, 7, 309, 2, 2, 2773, 2767, 3, 2, 2, 2, 2773, 2770, 3, 2, 2, 2, 2773, 2771, 3, 2, 2, 2, 2774, 269, 3, 2, 2, 2, 2775, 2776, 7, 489, 2, 2, 2776, 2791, 7, 352, 2, 2, 2777, 2779, 7, 830, 2, 2, 2778, 2777, 3, 2, 2, 2, 2778, 2779, 3, 2, 2, 2, 2779, 2783, 3, 2, 2, 2, 2780, 2781, 5, 966, 484, 2, 2781, 2782, 7, 823, 2, 2, 2782, 2784, 3, 2, 2, 2, 2783, 2780, 3, 2, 2, 2, 2783, 2784, 3, 2, 2, 2, 2784, 2785, 3, 2, 2, 2, 2785, 2787, 5, 966, 484, 2, 2786, 2778, 3, 2, 2, 2, 2787, 2788, 3, 2, 2, 2, 2788, 2786, 3, 2, 2, 2, 2788, 2789, 3, 2, 2, 2, 2789, 2792, 3, 2, 2, 2, 2790, 2792, 7, 6, 2, 2, 2791, 2786, 3, 2, 2, 2, 2791, 2790, 3, 2, 2, 2, 2792, 2793, 3, 2, 2, 2, 2793, 2803, 7, 229, 2, 2, 2794, 2795, 5, 966, 484, 2, 2795, 2796, 7, 823, 2, 2, 2796, 2798, 3, 2, 2, 2, 2797, 2794, 3, 2, 2, 2, 2797, 2798, 3, 2, 2, 2, 2798, 2799, 3, 2, 2, 2, 2799, 2804, 5, 966, 484, 2, 2800, 2804, 7, 84, 2, 2, 2801, 2802, 7, 6, 2, 2, 2802, 2804, 7, 309, 2, 2, 2803, 2797, 3, 2, 2, 2, 2803, 2800, 3, 2, 2, 2, 2803, 2801, 3, 2, 2, 2, 2804, 271, 3, 2, 2, 2, 2805, 2806, 7, 569, 2, 2, 2806, 2807, 7, 339, 2, 2, 2807, 2808, 5, 910, 456, 2, 2808, 2809, 7, 155, 2, 2, 2809, 2810, 9, 22, 2, 2, 2810, 2814, 7, 601, 2, 2, 2811, 2812, 7, 784, 2, 2, 2812, 2815, 7, 802, 2, 2, 2813, 2815, 7, 620, 2, 2, 2814, 2811, 3, 2, 2, 2, 2814, 2813, 3, 2, 2, 2, 2814, 2815, 3, 2, 2, 2, 2815, 2817, 3, 2, 2, 2, 2816, 2818, 7, 831, 2, 2, 2817, 2816, 3, 2, 2, 2, 2817, 2818, 3, 2, 2, 2, 2818, 273, 3, 2, 2, 2, 2819, 2820, 7, 353, 2, 2, 2820, 2821, 7, 339, 2, 2, 2821, 2841, 5, 910, 456, 2, 2822, 2823, 7, 377, 2, 2, 2823, 2824, 7, 828, 2, 2, 2824, 2825, 7, 641, 2, 2, 2825, 2835, 7, 828, 2, 2, 2826, 2828, 7, 830, 2, 2, 2827, 2826, 3, 2, 2, 2, 2827, 2828, 3, 2, 2, 2, 2828, 2833, 3, 2, 2, 2, 2829, 2834, 7, 802, 2, 2, 2830, 2831, 7, 802, 2, 2, 2831, 2832, 7, 346, 2, 2, 2832, 2834, 7, 802, 2, 2, 2833, 2829, 3, 2, 2, 2, 2833, 2830, 3, 2, 2, 2, 2834, 2836, 3, 2, 2, 2, 2835, 2827, 3, 2, 2, 2, 2836, 2837, 3, 2, 2, 2, 2837, 2835, 3, 2, 2, 2, 2837, 2838, 3, 2, 2, 2, 2838, 2839, 3, 2, 2, 2, 2839, 2840, 7, 829, 2, 2, 2840, 2842, 7, 829, 2, 2, 2841, 2822, 3, 2, 2, 2, 2841, 2842, 3, 2, 2, 2, 2842, 275, 3, 2, 2, 2, 2843, 2844, 7, 73, 2, 2, 2844, 2845, 7, 56, 2, 2, 2845, 2846, 7, 189, 2, 2, 2846, 2847, 7, 172, 2, 2, 2847, 2848, 5, 966, 484, 2, 2848, 2849, 7, 377, 2, 2, 2849, 2850, 7, 828, 2, 2, 2850, 2851, 7, 174, 2, 2, 2851, 2852, 7, 810, 2, 2, 2852, 2853, 7, 806, 2, 2, 2853, 2854, 7, 830, 2, 2, 2854, 2855, 7, 173, 2, 2, 2855, 2856, 7, 810, 2, 2, 2856, 2857, 7, 806, 2, 2, 2857, 2858, 7, 829, 2, 2, 2858, 277, 3, 2, 2, 2, 2859, 2860, 7, 10, 2, 2, 2860, 2861, 7, 452, 2, 2, 2861, 2862, 5, 966, 484, 2, 2862, 2863, 7, 377, 2, 2, 2863, 2864, 7, 150, 2, 2, 2864, 2865, 7, 810, 2, 2, 2865, 2870, 7, 806, 2, 2, 2866, 2867, 7, 830, 2, 2, 2867, 2868, 7, 711, 2, 2, 2868, 2869, 7, 810, 2, 2, 2869, 2871, 7, 806, 2, 2, 2870, 2866, 3, 2, 2, 2, 2870, 2871, 3, 2, 2, 2, 2871, 279, 3, 2, 2, 2, 2872, 2873, 7, 73, 2, 2, 2873, 2874, 7, 452, 2, 2, 2874, 2875, 5, 966, 484, 2, 2875, 2876, 7, 377, 2, 2, 2876, 2877, 7, 150, 2, 2, 2877, 2878, 7, 810, 2, 2, 2878, 2883, 7, 806, 2, 2, 2879, 2880, 7, 830, 2, 2, 2880, 2881, 7, 711, 2, 2, 2881, 2882, 7, 810, 2, 2, 2882, 2884, 7, 806, 2, 2, 2883, 2879, 3, 2, 2, 2, 2883, 2884, 3, 2, 2, 2, 2884, 2889, 3, 2, 2, 2, 2885, 2886, 7, 133, 2, 2, 2886, 2887, 7, 453, 2, 2, 2887, 2888, 7, 657, 2, 2, 2888, 2890, 5, 966, 484, 2, 2889, 2885, 3, 2, 2, 2, 2889, 2890, 3, 2, 2, 2, 2890, 281, 3, 2, 2, 2, 2891, 2892, 7, 10, 2, 2, 2892, 2893, 7, 453, 2, 2, 2893, 2894, 7, 657, 2, 2, 2894, 2899, 5, 966, 484, 2, 2895, 2896, 7, 139, 2, 2, 2896, 2897, 7, 129, 2, 2, 2897, 2898, 7, 810, 2, 2, 2898, 2900, 7, 806, 2, 2, 2899, 2895, 3, 2, 2, 2, 2899, 2900, 3, 2, 2, 2, 2900, 2902, 3, 2, 2, 2, 2901, 2903, 9, 23, 2, 2, 2902, 2901, 3, 2, 2, 2, 2902, 2903, 3, 2, 2, 2, 2903, 283, 3, 2, 2, 2, 2904, 2905, 7, 73, 2, 2, 2905, 2906, 7, 453, 2, 2, 2906, 2907, 7, 657, 2, 2, 2907, 2908, 5, 966, 484, 2, 2908, 2909, 7, 139, 2, 2, 2909, 2910, 7, 129, 2, 2, 2910, 2911, 7, 810, 2, 2, 2911, 2912, 7, 806, 2, 2, 2912, 285, 3, 2, 2, 2, 2913, 2914, 7, 73, 2, 2, 2914, 2915, 7, 113, 2, 2, 2915, 2916, 7, 221, 2, 2, 2916, 2917, 5, 966, 484, 2, 2917, 2922, 7, 229, 2, 2, 2918, 2923, 7, 309, 2, 2, 2919, 2923, 7, 84, 2, 2, 2920, 2921, 7, 660, 2, 2, 2921, 2923, 5, 966, 484, 2, 2922, 2918, 3, 2, 2, 2, 2922, 2919, 3, 2, 2, 2, 2922, 2920, 3, 2, 2, 2, 2923, 2926, 3, 2, 2, 2, 2924, 2925, 7, 377, 2, 2, 2925, 2927, 7, 127, 2, 2, 2926, 2924, 3, 2, 2, 2, 2926, 2927, 3, 2, 2, 2, 2927, 2928, 3, 2, 2, 2, 2928, 2933, 7, 133, 2, 2, 2929, 2931, 7, 830, 2, 2, 2930, 2929, 3, 2, 2, 2, 2930, 2931, 3, 2, 2, 2, 2931, 2932, 3, 2, 2, 2, 2932, 2934, 5, 966, 484, 2, 2933, 2930, 3, 2, 2, 2, 2934, 2935, 3, 2, 2, 2, 2935, 2933, 3, 2, 2, 2, 2935, 2936, 3, 2, 2, 2, 2936, 2937, 3, 2, 2, 2, 2937, 2938, 7, 346, 2, 2, 2938, 2939, 7, 310, 2, 2, 2939, 2940, 7, 806, 2, 2, 2940, 2941, 7, 830, 2, 2, 2941, 2942, 7, 806, 2, 2, 2942, 287, 3, 2, 2, 2, 2943, 2944, 9, 20, 2, 2, 2944, 2945, 7, 113, 2, 2, 2945, 2946, 7, 313, 2, 2, 2946, 2947, 5, 966, 484, 2, 2947, 2948, 7, 229, 2, 2, 2948, 3016, 7, 309, 2, 2, 2949, 2951, 7, 830, 2, 2, 2950, 2949, 3, 2, 2, 2, 2950, 2951, 3, 2, 2, 2, 2951, 2952, 3, 2, 2, 2, 2952, 2953, 7, 4, 2, 2, 2953, 2957, 7, 113, 2, 2, 2954, 2955, 5, 966, 484, 2, 2955, 2956, 7, 823, 2, 2, 2956, 2958, 3, 2, 2, 2, 2957, 2954, 3, 2, 2, 2, 2957, 2958, 3, 2, 2, 2, 2958, 2959, 3, 2, 2, 2, 2959, 2960, 5, 966, 484, 2, 2960, 2961, 7, 823, 2, 2, 2961, 2962, 5, 966, 484, 2, 2962, 3011, 3, 2, 2, 2, 2963, 2977, 7, 828, 2, 2, 2964, 2974, 7, 315, 2, 2, 2965, 2967, 7, 830, 2, 2, 2966, 2965, 3, 2, 2, 2, 2966, 2967, 3, 2, 2, 2, 2967, 2968, 3, 2, 2, 2, 2968, 2969, 5, 966, 484, 2, 2969, 2970, 7, 810, 2, 2, 2970, 2971, 9, 24, 2, 2, 2971, 2973, 3, 2, 2, 2, 2972, 2966, 3, 2, 2, 2, 2973, 2976, 3, 2, 2, 2, 2974, 2972, 3, 2, 2, 2, 2974, 2975, 3, 2, 2, 2, 2975, 2978, 3, 2, 2, 2, 2976, 2974, 3, 2, 2, 2, 2977, 2964, 3, 2, 2, 2, 2977, 2978, 3, 2, 2, 2, 2978, 2999, 3, 2, 2, 2, 2979, 2980, 7, 384, 2, 2, 2980, 2993, 7, 828, 2, 2, 2981, 2983, 7, 830, 2, 2, 2982, 2981, 3, 2, 2, 2, 2982, 2983, 3, 2, 2, 2, 2983, 2987, 3, 2, 2, 2, 2984, 2985, 5, 966, 484, 2, 2985, 2986, 7, 823, 2, 2, 2986, 2988, 3, 2, 2, 2, 2987, 2984, 3, 2, 2, 2, 2987, 2988, 3, 2, 2, 2, 2988, 2989, 3, 2, 2, 2, 2989, 2990, 5, 966, 484, 2, 2990, 2991, 7, 823, 2, 2, 2991, 2992, 5, 966, 484, 2, 2992, 2994, 3, 2, 2, 2, 2993, 2982, 3, 2, 2, 2, 2994, 2995, 3, 2, 2, 2, 2995, 2993, 3, 2, 2, 2, 2995, 2996, 3, 2, 2, 2, 2996, 2997, 3, 2, 2, 2, 2997, 2998, 7, 829, 2, 2, 2998, 3000, 3, 2, 2, 2, 2999, 2979, 3, 2, 2, 2, 3000, 3001, 3, 2, 2, 2, 3001, 2999, 3, 2, 2, 2, 3001, 3002, 3, 2, 2, 2, 3002, 3005, 3, 2, 2, 2, 3003, 3004, 7, 374, 2, 2, 3004, 3006, 5, 290, 146, 2, 3005, 3003, 3, 2, 2, 2, 3005, 3006, 3, 2, 2, 2, 3006, 3007, 3, 2, 2, 2, 3007, 3008, 7, 829, 2, 2, 3008, 3010, 3, 2, 2, 2, 3009, 2963, 3, 2, 2, 2, 3010, 3013, 3, 2, 2, 2, 3011, 3009, 3, 2, 2, 2, 3011, 3012, 3, 2, 2, 2, 3012, 3015, 3, 2, 2, 2, 3013, 3011, 3, 2, 2, 2, 3014, 2950, 3, 2, 2, 2, 3015, 3018, 3, 2, 2, 2, 3016, 3014, 3, 2, 2, 2, 3016, 3017, 3, 2, 2, 2, 3017, 3035, 3, 2, 2, 2, 3018, 3016, 3, 2, 2, 2, 3019, 3021, 7, 830, 2, 2, 3020, 3019, 3, 2, 2, 2, 3020, 3021, 3, 2, 2, 2, 3021, 3022, 3, 2, 2, 2, 3022, 3023, 7, 103, 2, 2, 3023, 3027, 7, 113, 2, 2, 3024, 3025, 5, 966, 484, 2, 3025, 3026, 7, 823, 2, 2, 3026, 3028, 3, 2, 2, 2, 3027, 3024, 3, 2, 2, 2, 3027, 3028, 3, 2, 2, 2, 3028, 3029, 3, 2, 2, 2, 3029, 3030, 5, 966, 484, 2, 3030, 3031, 7, 823, 2, 2, 3031, 3032, 5, 966, 484, 2, 3032, 3034, 3, 2, 2, 2, 3033, 3020, 3, 2, 2, 2, 3034, 3037, 3, 2, 2, 2, 3035, 3033, 3, 2, 2, 2, 3035, 3036, 3, 2, 2, 2, 3036, 3079, 3, 2, 2, 2, 3037, 3035, 3, 2, 2, 2, 3038, 3039, 7, 4, 2, 2, 3039, 3043, 7, 342, 2, 2, 3040, 3041, 5, 966, 484, 2, 3041, 3042, 7, 823, 2, 2, 3042, 3044, 3, 2, 2, 2, 3043, 3040, 3, 2, 2, 2, 3043, 3044, 3, 2, 2, 2, 3044, 3045, 3, 2, 2, 2, 3045, 3046, 5, 966, 484, 2, 3046, 3047, 7, 823, 2, 2, 3047, 3048, 5, 966, 484, 2, 3048, 3074, 3, 2, 2, 2, 3049, 3050, 7, 828, 2, 2, 3050, 3066, 7, 315, 2, 2, 3051, 3053, 7, 830, 2, 2, 3052, 3051, 3, 2, 2, 2, 3052, 3053, 3, 2, 2, 2, 3053, 3054, 3, 2, 2, 2, 3054, 3055, 5, 966, 484, 2, 3055, 3064, 7, 810, 2, 2, 3056, 3058, 7, 828, 2, 2, 3057, 3056, 3, 2, 2, 2, 3057, 3058, 3, 2, 2, 2, 3058, 3059, 3, 2, 2, 2, 3059, 3061, 7, 802, 2, 2, 3060, 3062, 7, 829, 2, 2, 3061, 3060, 3, 2, 2, 2, 3061, 3062, 3, 2, 2, 2, 3062, 3065, 3, 2, 2, 2, 3063, 3065, 7, 806, 2, 2, 3064, 3057, 3, 2, 2, 2, 3064, 3063, 3, 2, 2, 2, 3065, 3067, 3, 2, 2, 2, 3066, 3052, 3, 2, 2, 2, 3067, 3068, 3, 2, 2, 2, 3068, 3066, 3, 2, 2, 2, 3068, 3069, 3, 2, 2, 2, 3069, 3070, 3, 2, 2, 2, 3070, 3071, 7, 829, 2, 2, 3071, 3073, 3, 2, 2, 2, 3072, 3049, 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, 3038, 3, 2, 2, 2, 3078, 3081, 3, 2, 2, 2, 3079, 3077, 3, 2, 2, 2, 3079, 3080, 3, 2, 2, 2, 3080, 3095, 3, 2, 2, 2, 3081, 3079, 3, 2, 2, 2, 3082, 3083, 7, 103, 2, 2, 3083, 3087, 7, 342, 2, 2, 3084, 3085, 5, 966, 484, 2, 3085, 3086, 7, 823, 2, 2, 3086, 3088, 3, 2, 2, 2, 3087, 3084, 3, 2, 2, 2, 3087, 3088, 3, 2, 2, 2, 3088, 3089, 3, 2, 2, 2, 3089, 3090, 5, 966, 484, 2, 3090, 3091, 7, 823, 2, 2, 3091, 3092, 5, 966, 484, 2, 3092, 3094, 3, 2, 2, 2, 3093, 3082, 3, 2, 2, 2, 3094, 3097, 3, 2, 2, 2, 3095, 3093, 3, 2, 2, 2, 3095, 3096, 3, 2, 2, 2, 3096, 3163, 3, 2, 2, 2, 3097, 3095, 3, 2, 2, 2, 3098, 3099, 7, 377, 2, 2, 3099, 3107, 7, 828, 2, 2, 3100, 3102, 7, 830, 2, 2, 3101, 3100, 3, 2, 2, 2, 3101, 3102, 3, 2, 2, 2, 3102, 3103, 3, 2, 2, 2, 3103, 3104, 7, 190, 2, 2, 3104, 3105, 7, 810, 2, 2, 3105, 3106, 7, 802, 2, 2, 3106, 3108, 9, 25, 2, 2, 3107, 3101, 3, 2, 2, 2, 3107, 3108, 3, 2, 2, 2, 3108, 3115, 3, 2, 2, 2, 3109, 3111, 7, 830, 2, 2, 3110, 3109, 3, 2, 2, 2, 3110, 3111, 3, 2, 2, 2, 3111, 3112, 3, 2, 2, 2, 3112, 3113, 7, 115, 2, 2, 3113, 3114, 7, 810, 2, 2, 3114, 3116, 9, 26, 2, 2, 3115, 3110, 3, 2, 2, 2, 3115, 3116, 3, 2, 2, 2, 3116, 3127, 3, 2, 2, 2, 3117, 3119, 7, 830, 2, 2, 3118, 3117, 3, 2, 2, 2, 3118, 3119, 3, 2, 2, 2, 3119, 3120, 3, 2, 2, 2, 3120, 3121, 7, 193, 2, 2, 3121, 3125, 7, 810, 2, 2, 3122, 3123, 7, 802, 2, 2, 3123, 3126, 7, 710, 2, 2, 3124, 3126, 7, 159, 2, 2, 3125, 3122, 3, 2, 2, 2, 3125, 3124, 3, 2, 2, 2, 3126, 3128, 3, 2, 2, 2, 3127, 3118, 3, 2, 2, 2, 3127, 3128, 3, 2, 2, 2, 3128, 3136, 3, 2, 2, 2, 3129, 3131, 7, 830, 2, 2, 3130, 3129, 3, 2, 2, 2, 3130, 3131, 3, 2, 2, 2, 3131, 3132, 3, 2, 2, 2, 3132, 3133, 7, 194, 2, 2, 3133, 3134, 7, 810, 2, 2, 3134, 3135, 7, 802, 2, 2, 3135, 3137, 9, 25, 2, 2, 3136, 3130, 3, 2, 2, 2, 3136, 3137, 3, 2, 2, 2, 3137, 3144, 3, 2, 2, 2, 3138, 3140, 7, 830, 2, 2, 3139, 3138, 3, 2, 2, 2, 3139, 3140, 3, 2, 2, 2, 3140, 3141, 3, 2, 2, 2, 3141, 3142, 7, 200, 2, 2, 3142, 3143, 7, 810, 2, 2, 3143, 3145, 9, 27, 2, 2, 3144, 3139, 3, 2, 2, 2, 3144, 3145, 3, 2, 2, 2, 3145, 3152, 3, 2, 2, 2, 3146, 3148, 7, 830, 2, 2, 3147, 3146, 3, 2, 2, 2, 3147, 3148, 3, 2, 2, 2, 3148, 3149, 3, 2, 2, 2, 3149, 3150, 7, 348, 2, 2, 3150, 3151, 7, 810, 2, 2, 3151, 3153, 9, 9, 2, 2, 3152, 3147, 3, 2, 2, 2, 3152, 3153, 3, 2, 2, 2, 3153, 3160, 3, 2, 2, 2, 3154, 3156, 7, 830, 2, 2, 3155, 3154, 3, 2, 2, 2, 3155, 3156, 3, 2, 2, 2, 3156, 3157, 3, 2, 2, 2, 3157, 3158, 7, 333, 2, 2, 3158, 3159, 7, 810, 2, 2, 3159, 3161, 9, 9, 2, 2, 3160, 3155, 3, 2, 2, 2, 3160, 3161, 3, 2, 2, 2, 3161, 3162, 3, 2, 2, 2, 3162, 3164, 7, 829, 2, 2, 3163, 3098, 3, 2, 2, 2, 3163, 3164, 3, 2, 2, 2, 3164, 3168, 3, 2, 2, 2, 3165, 3166, 7, 329, 2, 2, 3166, 3167, 7, 810, 2, 2, 3167, 3169, 9, 28, 2, 2, 3168, 3165, 3, 2, 2, 2, 3168, 3169, 3, 2, 2, 2, 3169, 289, 3, 2, 2, 2, 3170, 3172, 7, 830, 2, 2, 3171, 3170, 3, 2, 2, 2, 3171, 3172, 3, 2, 2, 2, 3172, 3174, 3, 2, 2, 2, 3173, 3175, 9, 29, 2, 2, 3174, 3173, 3, 2, 2, 2, 3174, 3175, 3, 2, 2, 2, 3175, 3177, 3, 2, 2, 2, 3176, 3178, 7, 220, 2, 2, 3177, 3176, 3, 2, 2, 2, 3177, 3178, 3, 2, 2, 2, 3178, 3184, 3, 2, 2, 2, 3179, 3185, 5, 292, 147, 2, 3180, 3181, 7, 828, 2, 2, 3181, 3182, 5, 290, 146, 2, 3182, 3183, 7, 829, 2, 2, 3183, 3185, 3, 2, 2, 2, 3184, 3179, 3, 2, 2, 2, 3184, 3180, 3, 2, 2, 2, 3185, 3187, 3, 2, 2, 2, 3186, 3171, 3, 2, 2, 2, 3187, 3188, 3, 2, 2, 2, 3188, 3186, 3, 2, 2, 2, 3188, 3189, 3, 2, 2, 2, 3189, 291, 3, 2, 2, 2, 3190, 3196, 5, 294, 148, 2, 3191, 3192, 7, 828, 2, 2, 3192, 3193, 5, 290, 146, 2, 3193, 3194, 7, 829, 2, 2, 3194, 3196, 3, 2, 2, 2, 3195, 3190, 3, 2, 2, 2, 3195, 3191, 3, 2, 2, 2, 3196, 293, 3, 2, 2, 2, 3197, 3226, 5, 966, 484, 2, 3198, 3209, 5, 966, 484, 2, 3199, 3200, 5, 966, 484, 2, 3200, 3201, 7, 823, 2, 2, 3201, 3203, 3, 2, 2, 2, 3202, 3199, 3, 2, 2, 2, 3202, 3203, 3, 2, 2, 2, 3203, 3204, 3, 2, 2, 2, 3204, 3205, 5, 966, 484, 2, 3205, 3206, 7, 823, 2, 2, 3206, 3207, 5, 966, 484, 2, 3207, 3209, 3, 2, 2, 2, 3208, 3198, 3, 2, 2, 2, 3208, 3202, 3, 2, 2, 2, 3209, 3221, 3, 2, 2, 2, 3210, 3222, 7, 810, 2, 2, 3211, 3212, 7, 812, 2, 2, 3212, 3222, 7, 811, 2, 2, 3213, 3214, 7, 813, 2, 2, 3214, 3222, 7, 810, 2, 2, 3215, 3222, 7, 811, 2, 2, 3216, 3217, 7, 811, 2, 2, 3217, 3222, 7, 810, 2, 2, 3218, 3222, 7, 812, 2, 2, 3219, 3220, 7, 812, 2, 2, 3220, 3222, 7, 810, 2, 2, 3221, 3210, 3, 2, 2, 2, 3221, 3211, 3, 2, 2, 2, 3221, 3213, 3, 2, 2, 2, 3221, 3215, 3, 2, 2, 2, 3221, 3216, 3, 2, 2, 2, 3221, 3218, 3, 2, 2, 2, 3221, 3219, 3, 2, 2, 2, 3222, 3223, 3, 2, 2, 2, 3223, 3224, 9, 24, 2, 2, 3224, 3226, 3, 2, 2, 2, 3225, 3197, 3, 2, 2, 2, 3225, 3208, 3, 2, 2, 2, 3226, 3254, 3, 2, 2, 2, 3227, 3228, 5, 966, 484, 2, 3228, 3229, 7, 823, 2, 2, 3229, 3231, 3, 2, 2, 2, 3230, 3227, 3, 2, 2, 2, 3230, 3231, 3, 2, 2, 2, 3231, 3232, 3, 2, 2, 2, 3232, 3233, 5, 966, 484, 2, 3233, 3234, 7, 823, 2, 2, 3234, 3235, 5, 966, 484, 2, 3235, 3249, 7, 828, 2, 2, 3236, 3250, 5, 966, 484, 2, 3237, 3238, 5, 966, 484, 2, 3238, 3239, 7, 823, 2, 2, 3239, 3241, 3, 2, 2, 2, 3240, 3237, 3, 2, 2, 2, 3240, 3241, 3, 2, 2, 2, 3241, 3242, 3, 2, 2, 2, 3242, 3243, 5, 966, 484, 2, 3243, 3244, 7, 823, 2, 2, 3244, 3245, 5, 966, 484, 2, 3245, 3246, 3, 2, 2, 2, 3246, 3247, 7, 830, 2, 2, 3247, 3248, 9, 24, 2, 2, 3248, 3250, 3, 2, 2, 2, 3249, 3236, 3, 2, 2, 2, 3249, 3240, 3, 2, 2, 2, 3250, 3251, 3, 2, 2, 2, 3251, 3252, 7, 829, 2, 2, 3252, 3254, 3, 2, 2, 2, 3253, 3225, 3, 2, 2, 2, 3253, 3230, 3, 2, 2, 2, 3254, 295, 3, 2, 2, 2, 3255, 3256, 7, 10, 2, 2, 3256, 3257, 7, 123, 2, 2, 3257, 3258, 7, 456, 2, 2, 3258, 3259, 7, 322, 2, 2, 3259, 3260, 5, 966, 484, 2, 3260, 3276, 7, 315, 2, 2, 3261, 3262, 7, 568, 2, 2, 3262, 3263, 7, 810, 2, 2, 3263, 3265, 9, 30, 2, 2, 3264, 3266, 7, 830, 2, 2, 3265, 3264, 3, 2, 2, 2, 3265, 3266, 3, 2, 2, 2, 3266, 3277, 3, 2, 2, 2, 3267, 3268, 7, 691, 2, 2, 3268, 3269, 7, 810, 2, 2, 3269, 3271, 9, 30, 2, 2, 3270, 3272, 7, 830, 2, 2, 3271, 3270, 3, 2, 2, 2, 3271, 3272, 3, 2, 2, 2, 3272, 3277, 3, 2, 2, 2, 3273, 3274, 7, 452, 2, 2, 3274, 3275, 7, 810, 2, 2, 3275, 3277, 5, 966, 484, 2, 3276, 3261, 3, 2, 2, 2, 3276, 3267, 3, 2, 2, 2, 3276, 3273, 3, 2, 2, 2, 3277, 3278, 3, 2, 2, 2, 3278, 3276, 3, 2, 2, 2, 3278, 3279, 3, 2, 2, 2, 3279, 3303, 3, 2, 2, 2, 3280, 3281, 7, 10, 2, 2, 3281, 3282, 7, 123, 2, 2, 3282, 3283, 7, 456, 2, 2, 3283, 3284, 7, 322, 2, 2, 3284, 3285, 5, 966, 484, 2, 3285, 3286, 7, 377, 2, 2, 3286, 3287, 7, 828, 2, 2, 3287, 3288, 7, 769, 2, 2, 3288, 3289, 7, 810, 2, 2, 3289, 3290, 7, 423, 2, 2, 3290, 3291, 7, 830, 2, 2, 3291, 3292, 7, 568, 2, 2, 3292, 3293, 7, 810, 2, 2, 3293, 3298, 7, 806, 2, 2, 3294, 3295, 7, 830, 2, 2, 3295, 3296, 7, 452, 2, 2, 3296, 3297, 7, 810, 2, 2, 3297, 3299, 5, 966, 484, 2, 3298, 3294, 3, 2, 2, 2, 3298, 3299, 3, 2, 2, 2, 3299, 3300, 3, 2, 2, 2, 3300, 3301, 7, 829, 2, 2, 3301, 3303, 3, 2, 2, 2, 3302, 3255, 3, 2, 2, 2, 3302, 3280, 3, 2, 2, 2, 3303, 297, 3, 2, 2, 2, 3304, 3305, 7, 10, 2, 2, 3305, 3306, 7, 123, 2, 2, 3306, 3307, 7, 178, 2, 2, 3307, 3310, 5, 966, 484, 2, 3308, 3309, 7, 20, 2, 2, 3309, 3311, 5, 966, 484, 2, 3310, 3308, 3, 2, 2, 2, 3310, 3311, 3, 2, 2, 2, 3311, 3312, 3, 2, 2, 2, 3312, 3313, 9, 31, 2, 2, 3313, 3314, 7, 828, 2, 2, 3314, 3315, 7, 443, 2, 2, 3315, 3319, 7, 810, 2, 2, 3316, 3320, 7, 806, 2, 2, 3317, 3320, 7, 807, 2, 2, 3318, 3320, 7, 213, 2, 2, 3319, 3316, 3, 2, 2, 2, 3319, 3317, 3, 2, 2, 2, 3319, 3318, 3, 2, 2, 2, 3320, 3321, 3, 2, 2, 2, 3321, 3322, 7, 830, 2, 2, 3322, 3323, 7, 252, 2, 2, 3323, 3325, 7, 810, 2, 2, 3324, 3326, 9, 32, 2, 2, 3325, 3324, 3, 2, 2, 2, 3325, 3326, 3, 2, 2, 2, 3326, 3327, 3, 2, 2, 2, 3327, 3328, 7, 829, 2, 2, 3328, 3329, 3, 2, 2, 2, 3329, 3339, 7, 377, 2, 2, 3330, 3332, 7, 830, 2, 2, 3331, 3330, 3, 2, 2, 2, 3331, 3332, 3, 2, 2, 2, 3332, 3333, 3, 2, 2, 2, 3333, 3334, 7, 176, 2, 2, 3334, 3335, 7, 810, 2, 2, 3335, 3340, 9, 33, 2, 2, 3336, 3337, 7, 83, 2, 2, 3337, 3338, 7, 810, 2, 2, 3338, 3340, 5, 966, 484, 2, 3339, 3331, 3, 2, 2, 2, 3339, 3336, 3, 2, 2, 2, 3340, 3341, 3, 2, 2, 2, 3341, 3339, 3, 2, 2, 2, 3341, 3342, 3, 2, 2, 2, 3342, 3343, 3, 2, 2, 2, 3343, 3344, 7, 829, 2, 2, 3344, 299, 3, 2, 2, 2, 3345, 3346, 7, 73, 2, 2, 3346, 3347, 7, 123, 2, 2, 3347, 3348, 7, 178, 2, 2, 3348, 3351, 5, 966, 484, 2, 3349, 3350, 7, 20, 2, 2, 3350, 3352, 5, 966, 484, 2, 3351, 3349, 3, 2, 2, 2, 3351, 3352, 3, 2, 2, 2, 3352, 3353, 3, 2, 2, 2, 3353, 3355, 7, 139, 2, 2, 3354, 3356, 7, 830, 2, 2, 3355, 3354, 3, 2, 2, 2, 3355, 3356, 3, 2, 2, 2, 3356, 3358, 3, 2, 2, 2, 3357, 3359, 7, 828, 2, 2, 3358, 3357, 3, 2, 2, 2, 3358, 3359, 3, 2, 2, 2, 3359, 3362, 3, 2, 2, 2, 3360, 3361, 7, 443, 2, 2, 3361, 3363, 7, 810, 2, 2, 3362, 3360, 3, 2, 2, 2, 3362, 3363, 3, 2, 2, 2, 3363, 3367, 3, 2, 2, 2, 3364, 3368, 7, 806, 2, 2, 3365, 3368, 7, 807, 2, 2, 3366, 3368, 7, 213, 2, 2, 3367, 3364, 3, 2, 2, 2, 3367, 3365, 3, 2, 2, 2, 3367, 3366, 3, 2, 2, 2, 3368, 3376, 3, 2, 2, 2, 3369, 3370, 7, 830, 2, 2, 3370, 3371, 7, 252, 2, 2, 3371, 3373, 7, 810, 2, 2, 3372, 3374, 9, 32, 2, 2, 3373, 3372, 3, 2, 2, 2, 3373, 3374, 3, 2, 2, 2, 3374, 3375, 3, 2, 2, 2, 3375, 3377, 7, 829, 2, 2, 3376, 3369, 3, 2, 2, 2, 3376, 3377, 3, 2, 2, 2, 3377, 3393, 3, 2, 2, 2, 3378, 3388, 7, 377, 2, 2, 3379, 3381, 7, 830, 2, 2, 3380, 3379, 3, 2, 2, 2, 3380, 3381, 3, 2, 2, 2, 3381, 3382, 3, 2, 2, 2, 3382, 3383, 7, 176, 2, 2, 3383, 3384, 7, 810, 2, 2, 3384, 3389, 9, 33, 2, 2, 3385, 3386, 7, 83, 2, 2, 3386, 3387, 7, 810, 2, 2, 3387, 3389, 5, 966, 484, 2, 3388, 3380, 3, 2, 2, 2, 3388, 3385, 3, 2, 2, 2, 3389, 3390, 3, 2, 2, 2, 3390, 3388, 3, 2, 2, 2, 3390, 3391, 3, 2, 2, 2, 3391, 3392, 3, 2, 2, 2, 3392, 3394, 7, 829, 2, 2, 3393, 3378, 3, 2, 2, 2, 3393, 3394, 3, 2, 2, 2, 3394, 301, 3, 2, 2, 2, 3395, 3396, 7, 10, 2, 2, 3396, 3397, 7, 123, 2, 2, 3397, 3398, 7, 690, 2, 2, 3398, 3401, 7, 645, 2, 2, 3399, 3402, 5, 966, 484, 2, 3400, 3402, 7, 466, 2, 2, 3401, 3399, 3, 2, 2, 2, 3401, 3400, 3, 2, 2, 2, 3402, 3403, 3, 2, 2, 2, 3403, 3404, 7, 377, 2, 2, 3404, 3405, 7, 828, 2, 2, 3405, 3406, 7, 578, 2, 2, 3406, 3407, 7, 810, 2, 2, 3407, 3445, 7, 802, 2, 2, 3408, 3410, 7, 830, 2, 2, 3409, 3408, 3, 2, 2, 2, 3409, 3410, 3, 2, 2, 2, 3410, 3411, 3, 2, 2, 2, 3411, 3412, 7, 391, 2, 2, 3412, 3413, 7, 449, 2, 2, 3413, 3427, 7, 810, 2, 2, 3414, 3428, 7, 408, 2, 2, 3415, 3417, 7, 830, 2, 2, 3416, 3415, 3, 2, 2, 2, 3416, 3417, 3, 2, 2, 2, 3417, 3418, 3, 2, 2, 2, 3418, 3419, 7, 802, 2, 2, 3419, 3420, 7, 346, 2, 2, 3420, 3424, 7, 802, 2, 2, 3421, 3422, 7, 830, 2, 2, 3422, 3424, 7, 802, 2, 2, 3423, 3416, 3, 2, 2, 2, 3423, 3421, 3, 2, 2, 2, 3424, 3425, 3, 2, 2, 2, 3425, 3423, 3, 2, 2, 2, 3425, 3426, 3, 2, 2, 2, 3426, 3428, 3, 2, 2, 2, 3427, 3414, 3, 2, 2, 2, 3427, 3423, 3, 2, 2, 2, 3428, 3446, 3, 2, 2, 2, 3429, 3430, 7, 622, 2, 2, 3430, 3441, 7, 810, 2, 2, 3431, 3433, 7, 830, 2, 2, 3432, 3431, 3, 2, 2, 2, 3432, 3433, 3, 2, 2, 2, 3433, 3434, 3, 2, 2, 2, 3434, 3435, 7, 802, 2, 2, 3435, 3436, 7, 346, 2, 2, 3436, 3442, 7, 802, 2, 2, 3437, 3439, 7, 830, 2, 2, 3438, 3437, 3, 2, 2, 2, 3438, 3439, 3, 2, 2, 2, 3439, 3440, 3, 2, 2, 2, 3440, 3442, 7, 802, 2, 2, 3441, 3432, 3, 2, 2, 2, 3441, 3438, 3, 2, 2, 2, 3442, 3443, 3, 2, 2, 2, 3443, 3441, 3, 2, 2, 2, 3443, 3444, 3, 2, 2, 2, 3444, 3446, 3, 2, 2, 2, 3445, 3409, 3, 2, 2, 2, 3445, 3429, 3, 2, 2, 2, 3446, 3453, 3, 2, 2, 2, 3447, 3449, 7, 830, 2, 2, 3448, 3447, 3, 2, 2, 2, 3448, 3449, 3, 2, 2, 2, 3449, 3450, 3, 2, 2, 2, 3450, 3451, 7, 582, 2, 2, 3451, 3452, 7, 810, 2, 2, 3452, 3454, 7, 802, 2, 2, 3453, 3448, 3, 2, 2, 2, 3453, 3454, 3, 2, 2, 2, 3454, 3461, 3, 2, 2, 2, 3455, 3457, 7, 830, 2, 2, 3456, 3455, 3, 2, 2, 2, 3456, 3457, 3, 2, 2, 2, 3457, 3458, 3, 2, 2, 2, 3458, 3459, 7, 583, 2, 2, 3459, 3460, 7, 810, 2, 2, 3460, 3462, 7, 802, 2, 2, 3461, 3456, 3, 2, 2, 2, 3461, 3462, 3, 2, 2, 2, 3462, 3463, 3, 2, 2, 2, 3463, 3464, 7, 829, 2, 2, 3464, 303, 3, 2, 2, 2, 3465, 3466, 7, 73, 2, 2, 3466, 3467, 7, 123, 2, 2, 3467, 3468, 7, 690, 2, 2, 3468, 3469, 7, 645, 2, 2, 3469, 3470, 5, 966, 484, 2, 3470, 3471, 7, 377, 2, 2, 3471, 3472, 7, 828, 2, 2, 3472, 3473, 7, 578, 2, 2, 3473, 3474, 7, 810, 2, 2, 3474, 3512, 7, 802, 2, 2, 3475, 3477, 7, 830, 2, 2, 3476, 3475, 3, 2, 2, 2, 3476, 3477, 3, 2, 2, 2, 3477, 3478, 3, 2, 2, 2, 3478, 3479, 7, 391, 2, 2, 3479, 3480, 7, 449, 2, 2, 3480, 3494, 7, 810, 2, 2, 3481, 3495, 7, 408, 2, 2, 3482, 3484, 7, 830, 2, 2, 3483, 3482, 3, 2, 2, 2, 3483, 3484, 3, 2, 2, 2, 3484, 3485, 3, 2, 2, 2, 3485, 3486, 7, 802, 2, 2, 3486, 3487, 7, 346, 2, 2, 3487, 3491, 7, 802, 2, 2, 3488, 3489, 7, 830, 2, 2, 3489, 3491, 7, 802, 2, 2, 3490, 3483, 3, 2, 2, 2, 3490, 3488, 3, 2, 2, 2, 3491, 3492, 3, 2, 2, 2, 3492, 3490, 3, 2, 2, 2, 3492, 3493, 3, 2, 2, 2, 3493, 3495, 3, 2, 2, 2, 3494, 3481, 3, 2, 2, 2, 3494, 3490, 3, 2, 2, 2, 3495, 3513, 3, 2, 2, 2, 3496, 3497, 7, 622, 2, 2, 3497, 3508, 7, 810, 2, 2, 3498, 3500, 7, 830, 2, 2, 3499, 3498, 3, 2, 2, 2, 3499, 3500, 3, 2, 2, 2, 3500, 3501, 3, 2, 2, 2, 3501, 3502, 7, 802, 2, 2, 3502, 3503, 7, 346, 2, 2, 3503, 3509, 7, 802, 2, 2, 3504, 3506, 7, 830, 2, 2, 3505, 3504, 3, 2, 2, 2, 3505, 3506, 3, 2, 2, 2, 3506, 3507, 3, 2, 2, 2, 3507, 3509, 7, 802, 2, 2, 3508, 3499, 3, 2, 2, 2, 3508, 3505, 3, 2, 2, 2, 3509, 3510, 3, 2, 2, 2, 3510, 3508, 3, 2, 2, 2, 3510, 3511, 3, 2, 2, 2, 3511, 3513, 3, 2, 2, 2, 3512, 3476, 3, 2, 2, 2, 3512, 3496, 3, 2, 2, 2, 3513, 3520, 3, 2, 2, 2, 3514, 3516, 7, 830, 2, 2, 3515, 3514, 3, 2, 2, 2, 3515, 3516, 3, 2, 2, 2, 3516, 3517, 3, 2, 2, 2, 3517, 3518, 7, 582, 2, 2, 3518, 3519, 7, 810, 2, 2, 3519, 3521, 7, 802, 2, 2, 3520, 3515, 3, 2, 2, 2, 3520, 3521, 3, 2, 2, 2, 3521, 3528, 3, 2, 2, 2, 3522, 3524, 7, 830, 2, 2, 3523, 3522, 3, 2, 2, 2, 3523, 3524, 3, 2, 2, 2, 3524, 3525, 3, 2, 2, 2, 3525, 3526, 7, 583, 2, 2, 3526, 3527, 7, 810, 2, 2, 3527, 3529, 7, 802, 2, 2, 3528, 3523, 3, 2, 2, 2, 3528, 3529, 3, 2, 2, 2, 3529, 3530, 3, 2, 2, 2, 3530, 3531, 7, 829, 2, 2, 3531, 305, 3, 2, 2, 2, 3532, 3533, 7, 10, 2, 2, 3533, 3534, 7, 521, 2, 2, 3534, 3535, 7, 430, 2, 2, 3535, 3546, 5, 966, 484, 2, 3536, 3541, 7, 673, 2, 2, 3537, 3538, 7, 377, 2, 2, 3538, 3539, 7, 383, 2, 2, 3539, 3540, 7, 810, 2, 2, 3540, 3542, 9, 9, 2, 2, 3541, 3537, 3, 2, 2, 2, 3541, 3542, 3, 2, 2, 2, 3542, 3547, 3, 2, 2, 2, 3543, 3547, 7, 682, 2, 2, 3544, 3545, 7, 16, 2, 2, 3545, 3547, 7, 89, 2, 2, 3546, 3536, 3, 2, 2, 2, 3546, 3543, 3, 2, 2, 2, 3546, 3544, 3, 2, 2, 2, 3547, 307, 3, 2, 2, 2, 3548, 3549, 7, 73, 2, 2, 3549, 3550, 7, 521, 2, 2, 3550, 3551, 7, 430, 2, 2, 3551, 3555, 5, 966, 484, 2, 3552, 3553, 7, 229, 2, 2, 3553, 3554, 7, 507, 2, 2, 3554, 3556, 5, 966, 484, 2, 3555, 3552, 3, 2, 2, 2, 3555, 3556, 3, 2, 2, 2, 3556, 3560, 3, 2, 2, 2, 3557, 3558, 7, 155, 2, 2, 3558, 3559, 7, 643, 2, 2, 3559, 3561, 7, 806, 2, 2, 3560, 3557, 3, 2, 2, 2, 3560, 3561, 3, 2, 2, 2, 3561, 3566, 3, 2, 2, 2, 3562, 3563, 7, 377, 2, 2, 3563, 3564, 7, 383, 2, 2, 3564, 3565, 7, 810, 2, 2, 3565, 3567, 9, 9, 2, 2, 3566, 3562, 3, 2, 2, 2, 3566, 3567, 3, 2, 2, 2, 3567, 3570, 3, 2, 2, 2, 3568, 3569, 7, 16, 2, 2, 3569, 3571, 7, 89, 2, 2, 3570, 3568, 3, 2, 2, 2, 3570, 3571, 3, 2, 2, 2, 3571, 3574, 3, 2, 2, 2, 3572, 3573, 7, 20, 2, 2, 3573, 3575, 5, 966, 484, 2, 3574, 3572, 3, 2, 2, 2, 3574, 3575, 3, 2, 2, 2, 3575, 309, 3, 2, 2, 2, 3576, 3577, 7, 10, 2, 2, 3577, 3578, 7, 521, 2, 2, 3578, 3579, 7, 740, 2, 2, 3579, 3593, 5, 966, 484, 2, 3580, 3581, 7, 4, 2, 2, 3581, 3582, 7, 806, 2, 2, 3582, 3583, 7, 176, 2, 2, 3583, 3594, 9, 34, 2, 2, 3584, 3591, 7, 103, 2, 2, 3585, 3586, 7, 806, 2, 2, 3586, 3587, 7, 176, 2, 2, 3587, 3592, 9, 34, 2, 2, 3588, 3589, 7, 6, 2, 2, 3589, 3592, 9, 34, 2, 2, 3590, 3592, 7, 6, 2, 2, 3591, 3585, 3, 2, 2, 2, 3591, 3588, 3, 2, 2, 2, 3591, 3590, 3, 2, 2, 2, 3592, 3594, 3, 2, 2, 2, 3593, 3580, 3, 2, 2, 2, 3593, 3584, 3, 2, 2, 2, 3594, 311, 3, 2, 2, 2, 3595, 3596, 7, 73, 2, 2, 3596, 3597, 7, 521, 2, 2, 3597, 3598, 7, 740, 2, 2, 3598, 3610, 5, 966, 484, 2, 3599, 3608, 7, 139, 2, 2, 3600, 3601, 5, 966, 484, 2, 3601, 3602, 7, 823, 2, 2, 3602, 3604, 3, 2, 2, 2, 3603, 3600, 3, 2, 2, 2, 3603, 3604, 3, 2, 2, 2, 3604, 3605, 3, 2, 2, 2, 3605, 3609, 5, 966, 484, 2, 3606, 3607, 7, 750, 2, 2, 3607, 3609, 7, 740, 2, 2, 3608, 3603, 3, 2, 2, 2, 3608, 3606, 3, 2, 2, 2, 3609, 3611, 3, 2, 2, 2, 3610, 3599, 3, 2, 2, 2, 3610, 3611, 3, 2, 2, 2, 3611, 3614, 3, 2, 2, 2, 3612, 3613, 7, 20, 2, 2, 3613, 3615, 5, 966, 484, 2, 3614, 3612, 3, 2, 2, 2, 3614, 3615, 3, 2, 2, 2, 3615, 313, 3, 2, 2, 2, 3616, 3617, 7, 10, 2, 2, 3617, 3618, 7, 571, 2, 2, 3618, 3686, 5, 966, 484, 2, 3619, 3621, 9, 23, 2, 2, 3620, 3619, 3, 2, 2, 2, 3620, 3621, 3, 2, 2, 2, 3621, 3687, 3, 2, 2, 2, 3622, 3636, 7, 377, 2, 2, 3623, 3624, 7, 244, 2, 2, 3624, 3628, 7, 810, 2, 2, 3625, 3629, 7, 806, 2, 2, 3626, 3627, 7, 807, 2, 2, 3627, 3629, 7, 148, 2, 2, 3628, 3625, 3, 2, 2, 2, 3628, 3626, 3, 2, 2, 2, 3629, 3633, 3, 2, 2, 2, 3630, 3632, 9, 35, 2, 2, 3631, 3630, 3, 2, 2, 2, 3632, 3635, 3, 2, 2, 2, 3633, 3631, 3, 2, 2, 2, 3633, 3634, 3, 2, 2, 2, 3634, 3637, 3, 2, 2, 2, 3635, 3633, 3, 2, 2, 2, 3636, 3623, 3, 2, 2, 2, 3636, 3637, 3, 2, 2, 2, 3637, 3647, 3, 2, 2, 2, 3638, 3639, 7, 228, 2, 2, 3639, 3640, 7, 810, 2, 2, 3640, 3644, 7, 806, 2, 2, 3641, 3643, 9, 35, 2, 2, 3642, 3641, 3, 2, 2, 2, 3643, 3646, 3, 2, 2, 2, 3644, 3642, 3, 2, 2, 2, 3644, 3645, 3, 2, 2, 2, 3645, 3648, 3, 2, 2, 2, 3646, 3644, 3, 2, 2, 2, 3647, 3638, 3, 2, 2, 2, 3647, 3648, 3, 2, 2, 2, 3648, 3652, 3, 2, 2, 2, 3649, 3650, 7, 90, 2, 2, 3650, 3651, 7, 810, 2, 2, 3651, 3653, 5, 966, 484, 2, 3652, 3649, 3, 2, 2, 2, 3652, 3653, 3, 2, 2, 2, 3653, 3657, 3, 2, 2, 2, 3654, 3655, 7, 468, 2, 2, 3655, 3656, 7, 810, 2, 2, 3656, 3658, 5, 966, 484, 2, 3657, 3654, 3, 2, 2, 2, 3657, 3658, 3, 2, 2, 2, 3658, 3662, 3, 2, 2, 2, 3659, 3660, 7, 605, 2, 2, 3660, 3661, 7, 810, 2, 2, 3661, 3663, 5, 966, 484, 2, 3662, 3659, 3, 2, 2, 2, 3662, 3663, 3, 2, 2, 2, 3663, 3667, 3, 2, 2, 2, 3664, 3665, 7, 48, 2, 2, 3665, 3666, 7, 810, 2, 2, 3666, 3668, 9, 9, 2, 2, 3667, 3664, 3, 2, 2, 2, 3667, 3668, 3, 2, 2, 2, 3668, 3672, 3, 2, 2, 2, 3669, 3670, 7, 49, 2, 2, 3670, 3671, 7, 810, 2, 2, 3671, 3673, 9, 9, 2, 2, 3672, 3669, 3, 2, 2, 2, 3672, 3673, 3, 2, 2, 2, 3673, 3677, 3, 2, 2, 2, 3674, 3675, 7, 452, 2, 2, 3675, 3676, 7, 810, 2, 2, 3676, 3678, 5, 966, 484, 2, 3677, 3674, 3, 2, 2, 2, 3677, 3678, 3, 2, 2, 2, 3678, 3681, 3, 2, 2, 2, 3679, 3680, 7, 611, 2, 2, 3680, 3682, 7, 452, 2, 2, 3681, 3679, 3, 2, 2, 2, 3681, 3682, 3, 2, 2, 2, 3682, 3687, 3, 2, 2, 2, 3683, 3684, 9, 21, 2, 2, 3684, 3685, 7, 452, 2, 2, 3685, 3687, 5, 966, 484, 2, 3686, 3620, 3, 2, 2, 2, 3686, 3622, 3, 2, 2, 2, 3686, 3683, 3, 2, 2, 2, 3687, 315, 3, 2, 2, 2, 3688, 3689, 7, 73, 2, 2, 3689, 3690, 7, 571, 2, 2, 3690, 3781, 5, 966, 484, 2, 3691, 3705, 7, 377, 2, 2, 3692, 3693, 7, 244, 2, 2, 3693, 3697, 7, 810, 2, 2, 3694, 3698, 7, 806, 2, 2, 3695, 3696, 7, 807, 2, 2, 3696, 3698, 7, 148, 2, 2, 3697, 3694, 3, 2, 2, 2, 3697, 3695, 3, 2, 2, 2, 3698, 3702, 3, 2, 2, 2, 3699, 3701, 9, 35, 2, 2, 3700, 3699, 3, 2, 2, 2, 3701, 3704, 3, 2, 2, 2, 3702, 3700, 3, 2, 2, 2, 3702, 3703, 3, 2, 2, 2, 3703, 3706, 3, 2, 2, 2, 3704, 3702, 3, 2, 2, 2, 3705, 3692, 3, 2, 2, 2, 3705, 3706, 3, 2, 2, 2, 3706, 3713, 3, 2, 2, 2, 3707, 3709, 7, 830, 2, 2, 3708, 3707, 3, 2, 2, 2, 3708, 3709, 3, 2, 2, 2, 3709, 3710, 3, 2, 2, 2, 3710, 3711, 7, 318, 2, 2, 3711, 3712, 7, 810, 2, 2, 3712, 3714, 7, 807, 2, 2, 3713, 3708, 3, 2, 2, 2, 3713, 3714, 3, 2, 2, 2, 3714, 3721, 3, 2, 2, 2, 3715, 3717, 7, 830, 2, 2, 3716, 3715, 3, 2, 2, 2, 3716, 3717, 3, 2, 2, 2, 3717, 3718, 3, 2, 2, 2, 3718, 3719, 7, 90, 2, 2, 3719, 3720, 7, 810, 2, 2, 3720, 3722, 5, 966, 484, 2, 3721, 3716, 3, 2, 2, 2, 3721, 3722, 3, 2, 2, 2, 3722, 3729, 3, 2, 2, 2, 3723, 3725, 7, 830, 2, 2, 3724, 3723, 3, 2, 2, 2, 3724, 3725, 3, 2, 2, 2, 3725, 3726, 3, 2, 2, 2, 3726, 3727, 7, 468, 2, 2, 3727, 3728, 7, 810, 2, 2, 3728, 3730, 5, 966, 484, 2, 3729, 3724, 3, 2, 2, 2, 3729, 3730, 3, 2, 2, 2, 3730, 3737, 3, 2, 2, 2, 3731, 3733, 7, 830, 2, 2, 3732, 3731, 3, 2, 2, 2, 3732, 3733, 3, 2, 2, 2, 3733, 3734, 3, 2, 2, 2, 3734, 3735, 7, 49, 2, 2, 3735, 3736, 7, 810, 2, 2, 3736, 3738, 9, 9, 2, 2, 3737, 3732, 3, 2, 2, 2, 3737, 3738, 3, 2, 2, 2, 3738, 3745, 3, 2, 2, 2, 3739, 3741, 7, 830, 2, 2, 3740, 3739, 3, 2, 2, 2, 3740, 3741, 3, 2, 2, 2, 3741, 3742, 3, 2, 2, 2, 3742, 3743, 7, 48, 2, 2, 3743, 3744, 7, 810, 2, 2, 3744, 3746, 9, 9, 2, 2, 3745, 3740, 3, 2, 2, 2, 3745, 3746, 3, 2, 2, 2, 3746, 3753, 3, 2, 2, 2, 3747, 3749, 7, 830, 2, 2, 3748, 3747, 3, 2, 2, 2, 3748, 3749, 3, 2, 2, 2, 3749, 3750, 3, 2, 2, 2, 3750, 3751, 7, 452, 2, 2, 3751, 3752, 7, 810, 2, 2, 3752, 3754, 5, 966, 484, 2, 3753, 3748, 3, 2, 2, 2, 3753, 3754, 3, 2, 2, 2, 3754, 3782, 3, 2, 2, 2, 3755, 3779, 7, 139, 2, 2, 3756, 3757, 7, 376, 2, 2, 3757, 3764, 7, 377, 2, 2, 3758, 3760, 7, 830, 2, 2, 3759, 3758, 3, 2, 2, 2, 3759, 3760, 3, 2, 2, 2, 3760, 3761, 3, 2, 2, 2, 3761, 3762, 7, 90, 2, 2, 3762, 3763, 7, 810, 2, 2, 3763, 3765, 5, 966, 484, 2, 3764, 3759, 3, 2, 2, 2, 3764, 3765, 3, 2, 2, 2, 3765, 3772, 3, 2, 2, 2, 3766, 3768, 7, 830, 2, 2, 3767, 3766, 3, 2, 2, 2, 3767, 3768, 3, 2, 2, 2, 3768, 3769, 3, 2, 2, 2, 3769, 3770, 7, 468, 2, 2, 3770, 3771, 7, 810, 2, 2, 3771, 3773, 7, 806, 2, 2, 3772, 3767, 3, 2, 2, 2, 3772, 3773, 3, 2, 2, 2, 3773, 3780, 3, 2, 2, 2, 3774, 3775, 7, 43, 2, 2, 3775, 3780, 5, 966, 484, 2, 3776, 3777, 7, 18, 2, 2, 3777, 3778, 7, 172, 2, 2, 3778, 3780, 5, 966, 484, 2, 3779, 3756, 3, 2, 2, 2, 3779, 3774, 3, 2, 2, 2, 3779, 3776, 3, 2, 2, 2, 3780, 3782, 3, 2, 2, 2, 3781, 3691, 3, 2, 2, 2, 3781, 3755, 3, 2, 2, 2, 3782, 317, 3, 2, 2, 2, 3783, 3784, 7, 10, 2, 2, 3784, 3785, 7, 571, 2, 2, 3785, 3803, 5, 966, 484, 2, 3786, 3788, 9, 23, 2, 2, 3787, 3786, 3, 2, 2, 2, 3787, 3788, 3, 2, 2, 2, 3788, 3804, 3, 2, 2, 2, 3789, 3801, 7, 377, 2, 2, 3790, 3791, 7, 244, 2, 2, 3791, 3792, 7, 810, 2, 2, 3792, 3796, 7, 806, 2, 2, 3793, 3794, 7, 228, 2, 2, 3794, 3795, 7, 810, 2, 2, 3795, 3797, 7, 806, 2, 2, 3796, 3793, 3, 2, 2, 2, 3796, 3797, 3, 2, 2, 2, 3797, 3802, 3, 2, 2, 2, 3798, 3799, 7, 605, 2, 2, 3799, 3800, 7, 810, 2, 2, 3800, 3802, 5, 966, 484, 2, 3801, 3790, 3, 2, 2, 2, 3801, 3798, 3, 2, 2, 2, 3802, 3804, 3, 2, 2, 2, 3803, 3787, 3, 2, 2, 2, 3803, 3789, 3, 2, 2, 2, 3804, 319, 3, 2, 2, 2, 3805, 3806, 7, 73, 2, 2, 3806, 3807, 7, 571, 2, 2, 3807, 3808, 5, 966, 484, 2, 3808, 3809, 7, 377, 2, 2, 3809, 3810, 7, 244, 2, 2, 3810, 3811, 7, 810, 2, 2, 3811, 3815, 7, 806, 2, 2, 3812, 3813, 7, 318, 2, 2, 3813, 3814, 7, 810, 2, 2, 3814, 3816, 7, 807, 2, 2, 3815, 3812, 3, 2, 2, 2, 3815, 3816, 3, 2, 2, 2, 3816, 321, 3, 2, 2, 2, 3817, 3818, 7, 10, 2, 2, 3818, 3819, 7, 571, 2, 2, 3819, 3843, 5, 966, 484, 2, 3820, 3822, 9, 23, 2, 2, 3821, 3820, 3, 2, 2, 2, 3821, 3822, 3, 2, 2, 2, 3822, 3844, 3, 2, 2, 2, 3823, 3841, 7, 377, 2, 2, 3824, 3825, 7, 244, 2, 2, 3825, 3826, 7, 810, 2, 2, 3826, 3836, 7, 806, 2, 2, 3827, 3828, 7, 228, 2, 2, 3828, 3829, 7, 810, 2, 2, 3829, 3833, 7, 806, 2, 2, 3830, 3832, 9, 35, 2, 2, 3831, 3830, 3, 2, 2, 2, 3832, 3835, 3, 2, 2, 2, 3833, 3831, 3, 2, 2, 2, 3833, 3834, 3, 2, 2, 2, 3834, 3837, 3, 2, 2, 2, 3835, 3833, 3, 2, 2, 2, 3836, 3827, 3, 2, 2, 2, 3836, 3837, 3, 2, 2, 2, 3837, 3842, 3, 2, 2, 2, 3838, 3839, 7, 605, 2, 2, 3839, 3840, 7, 810, 2, 2, 3840, 3842, 5, 966, 484, 2, 3841, 3824, 3, 2, 2, 2, 3841, 3838, 3, 2, 2, 2, 3842, 3844, 3, 2, 2, 2, 3843, 3821, 3, 2, 2, 2, 3843, 3823, 3, 2, 2, 2, 3844, 323, 3, 2, 2, 2, 3845, 3846, 7, 73, 2, 2, 3846, 3847, 7, 571, 2, 2, 3847, 3864, 5, 966, 484, 2, 3848, 3849, 7, 377, 2, 2, 3849, 3850, 7, 244, 2, 2, 3850, 3851, 7, 810, 2, 2, 3851, 3853, 7, 806, 2, 2, 3852, 3854, 7, 206, 2, 2, 3853, 3852, 3, 2, 2, 2, 3853, 3854, 3, 2, 2, 2, 3854, 3860, 3, 2, 2, 2, 3855, 3856, 7, 48, 2, 2, 3856, 3858, 7, 810, 2, 2, 3857, 3859, 9, 9, 2, 2, 3858, 3857, 3, 2, 2, 2, 3858, 3859, 3, 2, 2, 2, 3859, 3861, 3, 2, 2, 2, 3860, 3855, 3, 2, 2, 2, 3860, 3861, 3, 2, 2, 2, 3861, 3865, 3, 2, 2, 2, 3862, 3863, 7, 139, 2, 2, 3863, 3865, 7, 376, 2, 2, 3864, 3848, 3, 2, 2, 2, 3864, 3862, 3, 2, 2, 2, 3865, 325, 3, 2, 2, 2, 3866, 3867, 7, 10, 2, 2, 3867, 3868, 7, 189, 2, 2, 3868, 3890, 7, 172, 2, 2, 3869, 3871, 7, 515, 2, 2, 3870, 3869, 3, 2, 2, 2, 3870, 3871, 3, 2, 2, 2, 3871, 3872, 3, 2, 2, 2, 3872, 3873, 7, 271, 2, 2, 3873, 3874, 7, 377, 2, 2, 3874, 3875, 7, 492, 2, 2, 3875, 3876, 7, 38, 2, 2, 3876, 3877, 7, 244, 2, 2, 3877, 3878, 7, 810, 2, 2, 3878, 3891, 7, 806, 2, 2, 3879, 3880, 9, 21, 2, 2, 3880, 3881, 7, 492, 2, 2, 3881, 3888, 7, 38, 2, 2, 3882, 3883, 7, 310, 2, 2, 3883, 3884, 7, 189, 2, 2, 3884, 3889, 7, 172, 2, 2, 3885, 3886, 7, 244, 2, 2, 3886, 3887, 7, 810, 2, 2, 3887, 3889, 7, 806, 2, 2, 3888, 3882, 3, 2, 2, 2, 3888, 3885, 3, 2, 2, 2, 3889, 3891, 3, 2, 2, 2, 3890, 3870, 3, 2, 2, 2, 3890, 3879, 3, 2, 2, 2, 3891, 327, 3, 2, 2, 2, 3892, 3893, 7, 73, 2, 2, 3893, 3894, 7, 189, 2, 2, 3894, 3895, 7, 172, 2, 2, 3895, 3896, 7, 492, 2, 2, 3896, 3897, 7, 38, 2, 2, 3897, 3898, 7, 244, 2, 2, 3898, 3899, 7, 810, 2, 2, 3899, 3900, 7, 806, 2, 2, 3900, 329, 3, 2, 2, 2, 3901, 3902, 7, 10, 2, 2, 3902, 3903, 7, 189, 2, 2, 3903, 3931, 7, 172, 2, 2, 3904, 3906, 7, 515, 2, 2, 3905, 3904, 3, 2, 2, 2, 3905, 3906, 3, 2, 2, 2, 3906, 3907, 3, 2, 2, 2, 3907, 3908, 7, 271, 2, 2, 3908, 3909, 7, 377, 2, 2, 3909, 3910, 7, 492, 2, 2, 3910, 3911, 7, 38, 2, 2, 3911, 3912, 7, 244, 2, 2, 3912, 3913, 7, 810, 2, 2, 3913, 3932, 7, 806, 2, 2, 3914, 3915, 7, 4, 2, 2, 3915, 3916, 7, 492, 2, 2, 3916, 3923, 7, 38, 2, 2, 3917, 3918, 7, 310, 2, 2, 3918, 3919, 7, 189, 2, 2, 3919, 3924, 7, 172, 2, 2, 3920, 3921, 7, 244, 2, 2, 3921, 3922, 7, 810, 2, 2, 3922, 3924, 7, 806, 2, 2, 3923, 3917, 3, 2, 2, 2, 3923, 3920, 3, 2, 2, 2, 3924, 3932, 3, 2, 2, 2, 3925, 3926, 7, 103, 2, 2, 3926, 3927, 7, 492, 2, 2, 3927, 3928, 7, 38, 2, 2, 3928, 3929, 7, 244, 2, 2, 3929, 3930, 7, 810, 2, 2, 3930, 3932, 7, 806, 2, 2, 3931, 3905, 3, 2, 2, 2, 3931, 3914, 3, 2, 2, 2, 3931, 3925, 3, 2, 2, 2, 3932, 331, 3, 2, 2, 2, 3933, 3934, 7, 73, 2, 2, 3934, 3935, 7, 189, 2, 2, 3935, 3941, 7, 172, 2, 2, 3936, 3937, 7, 492, 2, 2, 3937, 3938, 7, 38, 2, 2, 3938, 3939, 7, 244, 2, 2, 3939, 3940, 7, 810, 2, 2, 3940, 3942, 7, 806, 2, 2, 3941, 3936, 3, 2, 2, 2, 3941, 3942, 3, 2, 2, 2, 3942, 333, 3, 2, 2, 2, 3943, 3944, 7, 10, 2, 2, 3944, 3945, 7, 592, 2, 2, 3945, 3946, 7, 769, 2, 2, 3946, 3947, 5, 966, 484, 2, 3947, 3948, 7, 778, 2, 2, 3948, 3957, 7, 810, 2, 2, 3949, 3958, 7, 213, 2, 2, 3950, 3958, 7, 488, 2, 2, 3951, 3958, 7, 785, 2, 2, 3952, 3953, 7, 777, 2, 2, 3953, 3954, 7, 377, 2, 2, 3954, 3955, 7, 302, 2, 2, 3955, 3956, 7, 437, 2, 2, 3956, 3958, 5, 966, 484, 2, 3957, 3949, 3, 2, 2, 2, 3957, 3950, 3, 2, 2, 2, 3957, 3951, 3, 2, 2, 2, 3957, 3952, 3, 2, 2, 2, 3958, 335, 3, 2, 2, 2, 3959, 3960, 7, 10, 2, 2, 3960, 3961, 7, 640, 2, 2, 3961, 3962, 7, 141, 2, 2, 3962, 3963, 5, 966, 484, 2, 3963, 3964, 7, 828, 2, 2, 3964, 3965, 7, 829, 2, 2, 3965, 3966, 9, 36, 2, 2, 3966, 3967, 7, 663, 2, 2, 3967, 3968, 7, 828, 2, 2, 3968, 3969, 7, 802, 2, 2, 3969, 3970, 7, 829, 2, 2, 3970, 337, 3, 2, 2, 2, 3971, 3972, 7, 10, 2, 2, 3972, 3973, 7, 640, 2, 2, 3973, 3974, 7, 303, 2, 2, 3974, 3975, 5, 966, 484, 2, 3975, 3976, 7, 610, 2, 2, 3976, 3978, 7, 365, 2, 2, 3977, 3979, 5, 966, 484, 2, 3978, 3977, 3, 2, 2, 2, 3978, 3979, 3, 2, 2, 2, 3979, 339, 3, 2, 2, 2, 3980, 3981, 7, 10, 2, 2, 3981, 3982, 7, 679, 2, 2, 3982, 3983, 7, 310, 2, 2, 3983, 3984, 7, 422, 2, 2, 3984, 3985, 5, 966, 484, 2, 3985, 3989, 7, 377, 2, 2, 3986, 3987, 7, 366, 2, 2, 3987, 3988, 7, 810, 2, 2, 3988, 3990, 5, 966, 484, 2, 3989, 3986, 3, 2, 2, 2, 3989, 3990, 3, 2, 2, 2, 3990, 3995, 3, 2, 2, 2, 3991, 3992, 7, 830, 2, 2, 3992, 3993, 7, 12, 2, 2, 3993, 3994, 7, 810, 2, 2, 3994, 3996, 9, 9, 2, 2, 3995, 3991, 3, 2, 2, 2, 3995, 3996, 3, 2, 2, 2, 3996, 341, 3, 2, 2, 2, 3997, 3998, 7, 73, 2, 2, 3998, 3999, 7, 679, 2, 2, 3999, 4000, 7, 310, 2, 2, 4000, 4001, 7, 422, 2, 2, 4001, 4004, 5, 966, 484, 2, 4002, 4003, 7, 20, 2, 2, 4003, 4005, 5, 966, 484, 2, 4004, 4002, 3, 2, 2, 2, 4004, 4005, 3, 2, 2, 2, 4005, 4006, 3, 2, 2, 2, 4006, 4007, 7, 346, 2, 2, 4007, 4008, 7, 310, 2, 2, 4008, 4009, 7, 806, 2, 2, 4009, 4013, 7, 377, 2, 2, 4010, 4011, 7, 366, 2, 2, 4011, 4012, 7, 810, 2, 2, 4012, 4014, 5, 966, 484, 2, 4013, 4010, 3, 2, 2, 2, 4013, 4014, 3, 2, 2, 2, 4014, 4019, 3, 2, 2, 2, 4015, 4016, 7, 830, 2, 2, 4016, 4017, 7, 12, 2, 2, 4017, 4018, 7, 810, 2, 2, 4018, 4020, 9, 9, 2, 2, 4019, 4015, 3, 2, 2, 2, 4019, 4020, 3, 2, 2, 2, 4020, 343, 3, 2, 2, 2, 4021, 4022, 7, 73, 2, 2, 4022, 4023, 7, 690, 2, 2, 4023, 4024, 7, 645, 2, 2, 4024, 4127, 5, 966, 484, 2, 4025, 4026, 7, 377, 2, 2, 4026, 4033, 7, 828, 2, 2, 4027, 4029, 7, 830, 2, 2, 4028, 4027, 3, 2, 2, 2, 4028, 4029, 3, 2, 2, 2, 4029, 4030, 3, 2, 2, 2, 4030, 4031, 7, 595, 2, 2, 4031, 4032, 7, 810, 2, 2, 4032, 4034, 7, 802, 2, 2, 4033, 4028, 3, 2, 2, 2, 4033, 4034, 3, 2, 2, 2, 4034, 4041, 3, 2, 2, 2, 4035, 4037, 7, 830, 2, 2, 4036, 4035, 3, 2, 2, 2, 4036, 4037, 3, 2, 2, 2, 4037, 4038, 3, 2, 2, 2, 4038, 4039, 7, 578, 2, 2, 4039, 4040, 7, 810, 2, 2, 4040, 4042, 7, 802, 2, 2, 4041, 4036, 3, 2, 2, 2, 4041, 4042, 3, 2, 2, 2, 4042, 4049, 3, 2, 2, 2, 4043, 4045, 7, 830, 2, 2, 4044, 4043, 3, 2, 2, 2, 4044, 4045, 3, 2, 2, 2, 4045, 4046, 3, 2, 2, 2, 4046, 4047, 7, 428, 2, 2, 4047, 4048, 7, 810, 2, 2, 4048, 4050, 7, 802, 2, 2, 4049, 4044, 3, 2, 2, 2, 4049, 4050, 3, 2, 2, 2, 4050, 4092, 3, 2, 2, 2, 4051, 4053, 7, 830, 2, 2, 4052, 4051, 3, 2, 2, 2, 4052, 4053, 3, 2, 2, 2, 4053, 4054, 3, 2, 2, 2, 4054, 4055, 7, 391, 2, 2, 4055, 4056, 7, 301, 2, 2, 4056, 4090, 7, 810, 2, 2, 4057, 4091, 7, 408, 2, 2, 4058, 4068, 7, 828, 2, 2, 4059, 4061, 7, 830, 2, 2, 4060, 4059, 3, 2, 2, 2, 4060, 4061, 3, 2, 2, 2, 4061, 4066, 3, 2, 2, 2, 4062, 4067, 7, 802, 2, 2, 4063, 4064, 7, 802, 2, 2, 4064, 4065, 7, 346, 2, 2, 4065, 4067, 7, 802, 2, 2, 4066, 4062, 3, 2, 2, 2, 4066, 4063, 3, 2, 2, 2, 4067, 4069, 3, 2, 2, 2, 4068, 4060, 3, 2, 2, 2, 4069, 4070, 3, 2, 2, 2, 4070, 4068, 3, 2, 2, 2, 4070, 4071, 3, 2, 2, 2, 4071, 4072, 3, 2, 2, 2, 4072, 4091, 7, 829, 2, 2, 4073, 4074, 7, 622, 2, 2, 4074, 4075, 7, 810, 2, 2, 4075, 4085, 7, 828, 2, 2, 4076, 4078, 7, 830, 2, 2, 4077, 4076, 3, 2, 2, 2, 4077, 4078, 3, 2, 2, 2, 4078, 4083, 3, 2, 2, 2, 4079, 4084, 7, 802, 2, 2, 4080, 4081, 7, 802, 2, 2, 4081, 4082, 7, 346, 2, 2, 4082, 4084, 7, 802, 2, 2, 4083, 4079, 3, 2, 2, 2, 4083, 4080, 3, 2, 2, 2, 4084, 4086, 3, 2, 2, 2, 4085, 4077, 3, 2, 2, 2, 4086, 4087, 3, 2, 2, 2, 4087, 4085, 3, 2, 2, 2, 4087, 4088, 3, 2, 2, 2, 4088, 4089, 3, 2, 2, 2, 4089, 4091, 7, 829, 2, 2, 4090, 4057, 3, 2, 2, 2, 4090, 4058, 3, 2, 2, 2, 4090, 4073, 3, 2, 2, 2, 4091, 4093, 3, 2, 2, 2, 4092, 4052, 3, 2, 2, 2, 4092, 4093, 3, 2, 2, 2, 4093, 4100, 3, 2, 2, 2, 4094, 4096, 7, 830, 2, 2, 4095, 4094, 3, 2, 2, 2, 4095, 4096, 3, 2, 2, 2, 4096, 4097, 3, 2, 2, 2, 4097, 4098, 7, 597, 2, 2, 4098, 4099, 7, 810, 2, 2, 4099, 4101, 7, 802, 2, 2, 4100, 4095, 3, 2, 2, 2, 4100, 4101, 3, 2, 2, 2, 4101, 4108, 3, 2, 2, 2, 4102, 4104, 7, 830, 2, 2, 4103, 4102, 3, 2, 2, 2, 4103, 4104, 3, 2, 2, 2, 4104, 4105, 3, 2, 2, 2, 4105, 4106, 7, 582, 2, 2, 4106, 4107, 7, 810, 2, 2, 4107, 4109, 7, 802, 2, 2, 4108, 4103, 3, 2, 2, 2, 4108, 4109, 3, 2, 2, 2, 4109, 4116, 3, 2, 2, 2, 4110, 4112, 7, 830, 2, 2, 4111, 4110, 3, 2, 2, 2, 4111, 4112, 3, 2, 2, 2, 4112, 4113, 3, 2, 2, 2, 4113, 4114, 7, 596, 2, 2, 4114, 4115, 7, 810, 2, 2, 4115, 4117, 7, 802, 2, 2, 4116, 4111, 3, 2, 2, 2, 4116, 4117, 3, 2, 2, 2, 4117, 4124, 3, 2, 2, 2, 4118, 4120, 7, 830, 2, 2, 4119, 4118, 3, 2, 2, 2, 4119, 4120, 3, 2, 2, 2, 4120, 4121, 3, 2, 2, 2, 4121, 4122, 7, 581, 2, 2, 4122, 4123, 7, 810, 2, 2, 4123, 4125, 7, 802, 2, 2, 4124, 4119, 3, 2, 2, 2, 4124, 4125, 3, 2, 2, 2, 4125, 4126, 3, 2, 2, 2, 4126, 4128, 7, 829, 2, 2, 4127, 4025, 3, 2, 2, 2, 4127, 4128, 3, 2, 2, 2, 4128, 345, 3, 2, 2, 2, 4129, 4130, 7, 10, 2, 2, 4130, 4131, 7, 690, 2, 2, 4131, 4153, 7, 144, 2, 2, 4132, 4154, 9, 37, 2, 2, 4133, 4134, 7, 377, 2, 2, 4134, 4135, 7, 828, 2, 2, 4135, 4136, 7, 50, 2, 2, 4136, 4142, 7, 810, 2, 2, 4137, 4138, 5, 966, 484, 2, 4138, 4139, 7, 823, 2, 2, 4139, 4140, 5, 966, 484, 2, 4140, 4143, 3, 2, 2, 2, 4141, 4143, 7, 223, 2, 2, 4142, 4137, 3, 2, 2, 2, 4142, 4141, 3, 2, 2, 2, 4143, 4144, 3, 2, 2, 2, 4144, 4154, 7, 829, 2, 2, 4145, 4146, 7, 276, 2, 2, 4146, 4154, 7, 328, 2, 2, 4147, 4148, 7, 377, 2, 2, 4148, 4149, 7, 828, 2, 2, 4149, 4150, 7, 196, 2, 2, 4150, 4151, 7, 810, 2, 2, 4151, 4152, 7, 802, 2, 2, 4152, 4154, 7, 829, 2, 2, 4153, 4132, 3, 2, 2, 2, 4153, 4133, 3, 2, 2, 2, 4153, 4145, 3, 2, 2, 2, 4153, 4147, 3, 2, 2, 2, 4154, 347, 3, 2, 2, 2, 4155, 4156, 7, 10, 2, 2, 4156, 4157, 7, 289, 2, 2, 4157, 4165, 5, 966, 484, 2, 4158, 4159, 9, 21, 2, 2, 4159, 4160, 7, 199, 2, 2, 4160, 4166, 5, 966, 484, 2, 4161, 4162, 7, 377, 2, 2, 4162, 4163, 7, 605, 2, 2, 4163, 4164, 7, 810, 2, 2, 4164, 4166, 5, 966, 484, 2, 4165, 4158, 3, 2, 2, 2, 4165, 4161, 3, 2, 2, 2, 4166, 349, 3, 2, 2, 2, 4167, 4168, 7, 73, 2, 2, 4168, 4169, 7, 289, 2, 2, 4169, 4172, 5, 966, 484, 2, 4170, 4171, 7, 20, 2, 2, 4171, 4173, 5, 966, 484, 2, 4172, 4170, 3, 2, 2, 2, 4172, 4173, 3, 2, 2, 2, 4173, 351, 3, 2, 2, 2, 4174, 4175, 7, 73, 2, 2, 4175, 4176, 7, 696, 2, 2, 4176, 4179, 5, 966, 484, 2, 4177, 4178, 7, 20, 2, 2, 4178, 4180, 5, 966, 484, 2, 4179, 4177, 3, 2, 2, 2, 4179, 4180, 3, 2, 2, 2, 4180, 4181, 3, 2, 2, 2, 4181, 4188, 7, 377, 2, 2, 4182, 4184, 7, 830, 2, 2, 4183, 4182, 3, 2, 2, 2, 4183, 4184, 3, 2, 2, 2, 4184, 4185, 3, 2, 2, 2, 4185, 4186, 7, 312, 2, 2, 4186, 4187, 7, 810, 2, 2, 4187, 4189, 7, 806, 2, 2, 4188, 4183, 3, 2, 2, 2, 4188, 4189, 3, 2, 2, 2, 4189, 4196, 3, 2, 2, 2, 4190, 4192, 7, 830, 2, 2, 4191, 4190, 3, 2, 2, 2, 4191, 4192, 3, 2, 2, 2, 4192, 4193, 3, 2, 2, 2, 4193, 4194, 7, 425, 2, 2, 4194, 4195, 7, 810, 2, 2, 4195, 4197, 7, 806, 2, 2, 4196, 4191, 3, 2, 2, 2, 4196, 4197, 3, 2, 2, 2, 4197, 4204, 3, 2, 2, 2, 4198, 4200, 7, 830, 2, 2, 4199, 4198, 3, 2, 2, 2, 4199, 4200, 3, 2, 2, 2, 4200, 4201, 3, 2, 2, 2, 4201, 4202, 7, 179, 2, 2, 4202, 4203, 7, 810, 2, 2, 4203, 4205, 7, 802, 2, 2, 4204, 4199, 3, 2, 2, 2, 4204, 4205, 3, 2, 2, 2, 4205, 4207, 3, 2, 2, 2, 4206, 4208, 7, 830, 2, 2, 4207, 4206, 3, 2, 2, 2, 4207, 4208, 3, 2, 2, 2, 4208, 4209, 3, 2, 2, 2, 4209, 4210, 7, 387, 2, 2, 4210, 4211, 7, 810, 2, 2, 4211, 4216, 9, 38, 2, 2, 4212, 4213, 7, 830, 2, 2, 4213, 4214, 7, 599, 2, 2, 4214, 4215, 7, 810, 2, 2, 4215, 4217, 9, 38, 2, 2, 4216, 4212, 3, 2, 2, 2, 4216, 4217, 3, 2, 2, 2, 4217, 353, 3, 2, 2, 2, 4218, 4219, 7, 73, 2, 2, 4219, 4223, 7, 298, 2, 2, 4220, 4221, 5, 966, 484, 2, 4221, 4222, 7, 823, 2, 2, 4222, 4224, 3, 2, 2, 2, 4223, 4220, 3, 2, 2, 2, 4223, 4224, 3, 2, 2, 2, 4224, 4225, 3, 2, 2, 2, 4225, 4226, 5, 966, 484, 2, 4226, 4227, 7, 16, 2, 2, 4227, 4228, 5, 750, 376, 2, 4228, 355, 3, 2, 2, 2, 4229, 4230, 7, 10, 2, 2, 4230, 4231, 7, 302, 2, 2, 4231, 4232, 5, 966, 484, 2, 4232, 4242, 7, 351, 2, 2, 4233, 4239, 7, 625, 2, 2, 4234, 4239, 7, 769, 2, 2, 4235, 4236, 7, 789, 2, 2, 4236, 4237, 7, 302, 2, 2, 4237, 4239, 7, 437, 2, 2, 4238, 4233, 3, 2, 2, 2, 4238, 4234, 3, 2, 2, 2, 4238, 4235, 3, 2, 2, 2, 4239, 4240, 3, 2, 2, 2, 4240, 4241, 7, 832, 2, 2, 4241, 4243, 7, 832, 2, 2, 4242, 4238, 3, 2, 2, 2, 4242, 4243, 3, 2, 2, 2, 4243, 4244, 3, 2, 2, 2, 4244, 4247, 5, 966, 484, 2, 4245, 4246, 7, 823, 2, 2, 4246, 4248, 5, 966, 484, 2, 4247, 4245, 3, 2, 2, 2, 4247, 4248, 3, 2, 2, 2, 4248, 357, 3, 2, 2, 2, 4249, 4250, 7, 73, 2, 2, 4250, 4258, 7, 302, 2, 2, 4251, 4259, 5, 966, 484, 2, 4252, 4253, 7, 20, 2, 2, 4253, 4259, 5, 966, 484, 2, 4254, 4255, 5, 966, 484, 2, 4255, 4256, 7, 20, 2, 2, 4256, 4257, 5, 966, 484, 2, 4257, 4259, 3, 2, 2, 2, 4258, 4251, 3, 2, 2, 2, 4258, 4252, 3, 2, 2, 2, 4258, 4254, 3, 2, 2, 2, 4259, 4288, 3, 2, 2, 2, 4260, 4287, 5, 494, 248, 2, 4261, 4287, 5, 498, 250, 2, 4262, 4263, 9, 39, 2, 2, 4263, 4264, 9, 40, 2, 2, 4264, 4268, 7, 229, 2, 2, 4265, 4266, 7, 302, 2, 2, 4266, 4267, 7, 832, 2, 2, 4267, 4269, 7, 832, 2, 2, 4268, 4265, 3, 2, 2, 2, 4268, 4269, 3, 2, 2, 2, 4269, 4270, 3, 2, 2, 2, 4270, 4271, 5, 966, 484, 2, 4271, 4272, 7, 346, 2, 2, 4272, 4273, 5, 966, 484, 2, 4273, 4287, 3, 2, 2, 2, 4274, 4275, 7, 285, 2, 2, 4275, 4276, 9, 40, 2, 2, 4276, 4280, 7, 229, 2, 2, 4277, 4278, 7, 302, 2, 2, 4278, 4279, 7, 832, 2, 2, 4279, 4281, 7, 832, 2, 2, 4280, 4277, 3, 2, 2, 2, 4280, 4281, 3, 2, 2, 2, 4281, 4282, 3, 2, 2, 2, 4282, 4283, 5, 966, 484, 2, 4283, 4284, 7, 139, 2, 2, 4284, 4285, 5, 966, 484, 2, 4285, 4287, 3, 2, 2, 2, 4286, 4260, 3, 2, 2, 2, 4286, 4261, 3, 2, 2, 2, 4286, 4262, 3, 2, 2, 2, 4286, 4274, 3, 2, 2, 2, 4287, 4290, 3, 2, 2, 2, 4288, 4286, 3, 2, 2, 2, 4288, 4289, 3, 2, 2, 2, 4289, 359, 3, 2, 2, 2, 4290, 4288, 3, 2, 2, 2, 4291, 4292, 7, 73, 2, 2, 4292, 4293, 7, 302, 2, 2, 4293, 4296, 5, 966, 484, 2, 4294, 4295, 7, 20, 2, 2, 4295, 4297, 5, 966, 484, 2, 4296, 4294, 3, 2, 2, 2, 4296, 4297, 3, 2, 2, 2, 4297, 361, 3, 2, 2, 2, 4298, 4299, 7, 10, 2, 2, 4299, 4300, 7, 302, 2, 2, 4300, 4301, 5, 966, 484, 2, 4301, 4305, 7, 351, 2, 2, 4302, 4303, 7, 625, 2, 2, 4303, 4304, 7, 832, 2, 2, 4304, 4306, 7, 832, 2, 2, 4305, 4302, 3, 2, 2, 2, 4305, 4306, 3, 2, 2, 2, 4306, 4307, 3, 2, 2, 2, 4307, 4310, 5, 966, 484, 2, 4308, 4309, 7, 823, 2, 2, 4309, 4311, 7, 803, 2, 2, 4310, 4308, 3, 2, 2, 2, 4310, 4311, 3, 2, 2, 2, 4311, 363, 3, 2, 2, 2, 4312, 4313, 7, 73, 2, 2, 4313, 4314, 7, 706, 2, 2, 4314, 4315, 7, 656, 2, 2, 4315, 4316, 7, 563, 2, 2, 4316, 4324, 5, 966, 484, 2, 4317, 4321, 7, 139, 2, 2, 4318, 4319, 5, 966, 484, 2, 4319, 4320, 7, 823, 2, 2, 4320, 4322, 3, 2, 2, 2, 4321, 4318, 3, 2, 2, 2, 4321, 4322, 3, 2, 2, 2, 4322, 4323, 3, 2, 2, 2, 4323, 4325, 5, 966, 484, 2, 4324, 4317, 3, 2, 2, 2, 4324, 4325, 3, 2, 2, 2, 4325, 4328, 3, 2, 2, 2, 4326, 4327, 7, 20, 2, 2, 4327, 4329, 5, 966, 484, 2, 4328, 4326, 3, 2, 2, 2, 4328, 4329, 3, 2, 2, 2, 4329, 365, 3, 2, 2, 2, 4330, 4331, 7, 73, 2, 2, 4331, 4332, 7, 712, 2, 2, 4332, 4336, 7, 253, 2, 2, 4333, 4334, 5, 966, 484, 2, 4334, 4335, 7, 823, 2, 2, 4335, 4337, 3, 2, 2, 2, 4336, 4333, 3, 2, 2, 2, 4336, 4337, 3, 2, 2, 2, 4337, 4338, 3, 2, 2, 2, 4338, 4379, 5, 966, 484, 2, 4339, 4341, 7, 830, 2, 2, 4340, 4339, 3, 2, 2, 2, 4340, 4341, 3, 2, 2, 2, 4341, 4342, 3, 2, 2, 2, 4342, 4344, 7, 4, 2, 2, 4343, 4345, 9, 41, 2, 2, 4344, 4343, 3, 2, 2, 2, 4344, 4345, 3, 2, 2, 2, 4345, 4346, 3, 2, 2, 2, 4346, 4347, 7, 255, 2, 2, 4347, 4348, 5, 966, 484, 2, 4348, 4349, 7, 823, 2, 2, 4349, 4350, 5, 966, 484, 2, 4350, 4355, 7, 828, 2, 2, 4351, 4353, 7, 830, 2, 2, 4352, 4351, 3, 2, 2, 2, 4352, 4353, 3, 2, 2, 2, 4353, 4354, 3, 2, 2, 2, 4354, 4356, 5, 966, 484, 2, 4355, 4352, 3, 2, 2, 2, 4356, 4357, 3, 2, 2, 2, 4357, 4355, 3, 2, 2, 2, 4357, 4358, 3, 2, 2, 2, 4358, 4359, 3, 2, 2, 2, 4359, 4360, 7, 829, 2, 2, 4360, 4361, 7, 229, 2, 2, 4361, 4362, 5, 966, 484, 2, 4362, 4363, 7, 823, 2, 2, 4363, 4376, 5, 966, 484, 2, 4364, 4366, 7, 830, 2, 2, 4365, 4364, 3, 2, 2, 2, 4365, 4366, 3, 2, 2, 2, 4366, 4367, 3, 2, 2, 2, 4367, 4368, 7, 392, 2, 2, 4368, 4375, 9, 42, 2, 2, 4369, 4371, 7, 830, 2, 2, 4370, 4369, 3, 2, 2, 2, 4370, 4371, 3, 2, 2, 2, 4371, 4372, 3, 2, 2, 2, 4372, 4373, 7, 27, 2, 2, 4373, 4375, 9, 43, 2, 2, 4374, 4365, 3, 2, 2, 2, 4374, 4370, 3, 2, 2, 2, 4375, 4378, 3, 2, 2, 2, 4376, 4374, 3, 2, 2, 2, 4376, 4377, 3, 2, 2, 2, 4377, 4380, 3, 2, 2, 2, 4378, 4376, 3, 2, 2, 2, 4379, 4340, 3, 2, 2, 2, 4380, 4381, 3, 2, 2, 2, 4381, 4379, 3, 2, 2, 2, 4381, 4382, 3, 2, 2, 2, 4382, 4393, 3, 2, 2, 2, 4383, 4384, 7, 377, 2, 2, 4384, 4385, 7, 828, 2, 2, 4385, 4386, 7, 329, 2, 2, 4386, 4387, 7, 810, 2, 2, 4387, 4390, 9, 9, 2, 2, 4388, 4389, 7, 702, 2, 2, 4389, 4391, 9, 9, 2, 2, 4390, 4388, 3, 2, 2, 2, 4390, 4391, 3, 2, 2, 2, 4391, 4392, 3, 2, 2, 2, 4392, 4394, 7, 829, 2, 2, 4393, 4383, 3, 2, 2, 2, 4393, 4394, 3, 2, 2, 2, 4394, 4398, 3, 2, 2, 2, 4395, 4396, 7, 220, 2, 2, 4396, 4397, 7, 133, 2, 2, 4397, 4399, 7, 274, 2, 2, 4398, 4395, 3, 2, 2, 2, 4398, 4399, 3, 2, 2, 2, 4399, 367, 3, 2, 2, 2, 4400, 4401, 7, 10, 2, 2, 4401, 4405, 7, 719, 2, 2, 4402, 4403, 5, 966, 484, 2, 4403, 4404, 7, 823, 2, 2, 4404, 4406, 3, 2, 2, 2, 4405, 4402, 3, 2, 2, 2, 4405, 4406, 3, 2, 2, 2, 4406, 4407, 3, 2, 2, 2, 4407, 4413, 5, 966, 484, 2, 4408, 4411, 7, 277, 2, 2, 4409, 4410, 7, 377, 2, 2, 4410, 4412, 7, 802, 2, 2, 4411, 4409, 3, 2, 2, 2, 4411, 4412, 3, 2, 2, 2, 4412, 4414, 3, 2, 2, 2, 4413, 4408, 3, 2, 2, 2, 4413, 4414, 3, 2, 2, 2, 4414, 4418, 3, 2, 2, 2, 4415, 4416, 7, 157, 2, 2, 4416, 4417, 7, 38, 2, 2, 4417, 4419, 7, 802, 2, 2, 4418, 4415, 3, 2, 2, 2, 4418, 4419, 3, 2, 2, 2, 4419, 4424, 3, 2, 2, 2, 4420, 4421, 7, 204, 2, 2, 4421, 4425, 7, 802, 2, 2, 4422, 4423, 7, 611, 2, 2, 4423, 4425, 7, 204, 2, 2, 4424, 4420, 3, 2, 2, 2, 4424, 4422, 3, 2, 2, 2, 4424, 4425, 3, 2, 2, 2, 4425, 4430, 3, 2, 2, 2, 4426, 4427, 7, 192, 2, 2, 4427, 4431, 7, 802, 2, 2, 4428, 4429, 7, 611, 2, 2, 4429, 4431, 7, 192, 2, 2, 4430, 4426, 3, 2, 2, 2, 4430, 4428, 3, 2, 2, 2, 4430, 4431, 3, 2, 2, 2, 4431, 4435, 3, 2, 2, 2, 4432, 4436, 7, 81, 2, 2, 4433, 4434, 7, 611, 2, 2, 4434, 4436, 7, 81, 2, 2, 4435, 4432, 3, 2, 2, 2, 4435, 4433, 3, 2, 2, 2, 4435, 4436, 3, 2, 2, 2, 4436, 4441, 3, 2, 2, 2, 4437, 4438, 7, 39, 2, 2, 4438, 4442, 7, 802, 2, 2, 4439, 4440, 7, 611, 2, 2, 4440, 4442, 7, 39, 2, 2, 4441, 4437, 3, 2, 2, 2, 4441, 4439, 3, 2, 2, 2, 4441, 4442, 3, 2, 2, 2, 4442, 369, 3, 2, 2, 2, 4443, 4444, 7, 73, 2, 2, 4444, 4448, 7, 719, 2, 2, 4445, 4446, 5, 966, 484, 2, 4446, 4447, 7, 823, 2, 2, 4447, 4449, 3, 2, 2, 2, 4448, 4445, 3, 2, 2, 2, 4448, 4449, 3, 2, 2, 2, 4449, 4450, 3, 2, 2, 2, 4450, 4453, 5, 966, 484, 2, 4451, 4452, 7, 16, 2, 2, 4452, 4454, 5, 958, 480, 2, 4453, 4451, 3, 2, 2, 2, 4453, 4454, 3, 2, 2, 2, 4454, 4458, 3, 2, 2, 2, 4455, 4456, 7, 331, 2, 2, 4456, 4457, 7, 377, 2, 2, 4457, 4459, 7, 802, 2, 2, 4458, 4455, 3, 2, 2, 2, 4458, 4459, 3, 2, 2, 2, 4459, 4466, 3, 2, 2, 2, 4460, 4461, 7, 157, 2, 2, 4461, 4463, 7, 38, 2, 2, 4462, 4464, 7, 837, 2, 2, 4463, 4462, 3, 2, 2, 2, 4463, 4464, 3, 2, 2, 2, 4464, 4465, 3, 2, 2, 2, 4465, 4467, 7, 802, 2, 2, 4466, 4460, 3, 2, 2, 2, 4466, 4467, 3, 2, 2, 2, 4467, 4474, 3, 2, 2, 2, 4468, 4470, 7, 204, 2, 2, 4469, 4471, 7, 802, 2, 2, 4470, 4469, 3, 2, 2, 2, 4470, 4471, 3, 2, 2, 2, 4471, 4475, 3, 2, 2, 2, 4472, 4473, 7, 611, 2, 2, 4473, 4475, 7, 204, 2, 2, 4474, 4468, 3, 2, 2, 2, 4474, 4472, 3, 2, 2, 2, 4474, 4475, 3, 2, 2, 2, 4475, 4482, 3, 2, 2, 2, 4476, 4478, 7, 192, 2, 2, 4477, 4479, 7, 802, 2, 2, 4478, 4477, 3, 2, 2, 2, 4478, 4479, 3, 2, 2, 2, 4479, 4483, 3, 2, 2, 2, 4480, 4481, 7, 611, 2, 2, 4481, 4483, 7, 192, 2, 2, 4482, 4476, 3, 2, 2, 2, 4482, 4480, 3, 2, 2, 2, 4482, 4483, 3, 2, 2, 2, 4483, 4487, 3, 2, 2, 2, 4484, 4488, 7, 81, 2, 2, 4485, 4486, 7, 611, 2, 2, 4486, 4488, 7, 81, 2, 2, 4487, 4484, 3, 2, 2, 2, 4487, 4485, 3, 2, 2, 2, 4487, 4488, 3, 2, 2, 2, 4488, 4495, 3, 2, 2, 2, 4489, 4491, 7, 39, 2, 2, 4490, 4492, 7, 802, 2, 2, 4491, 4490, 3, 2, 2, 2, 4491, 4492, 3, 2, 2, 2, 4492, 4496, 3, 2, 2, 2, 4493, 4494, 7, 611, 2, 2, 4494, 4496, 7, 39, 2, 2, 4495, 4489, 3, 2, 2, 2, 4495, 4493, 3, 2, 2, 2, 4495, 4496, 3, 2, 2, 2, 4496, 371, 3, 2, 2, 2, 4497, 4498, 7, 10, 2, 2, 4498, 4499, 7, 309, 2, 2, 4499, 4500, 7, 406, 2, 2, 4500, 4632, 5, 966, 484, 2, 4501, 4546, 7, 346, 2, 2, 4502, 4503, 7, 129, 2, 2, 4503, 4540, 7, 828, 2, 2, 4504, 4506, 7, 830, 2, 2, 4505, 4504, 3, 2, 2, 2, 4505, 4506, 3, 2, 2, 2, 4506, 4507, 3, 2, 2, 2, 4507, 4508, 7, 509, 2, 2, 4508, 4509, 7, 810, 2, 2, 4509, 4539, 7, 806, 2, 2, 4510, 4512, 7, 830, 2, 2, 4511, 4510, 3, 2, 2, 2, 4511, 4512, 3, 2, 2, 2, 4512, 4513, 3, 2, 2, 2, 4513, 4514, 7, 588, 2, 2, 4514, 4518, 7, 810, 2, 2, 4515, 4516, 7, 802, 2, 2, 4516, 4519, 9, 44, 2, 2, 4517, 4519, 7, 774, 2, 2, 4518, 4515, 3, 2, 2, 2, 4518, 4517, 3, 2, 2, 2, 4519, 4539, 3, 2, 2, 2, 4520, 4522, 7, 830, 2, 2, 4521, 4520, 3, 2, 2, 2, 4521, 4522, 3, 2, 2, 2, 4522, 4523, 3, 2, 2, 2, 4523, 4524, 7, 585, 2, 2, 4524, 4525, 7, 810, 2, 2, 4525, 4539, 9, 45, 2, 2, 4526, 4528, 7, 830, 2, 2, 4527, 4526, 3, 2, 2, 2, 4527, 4528, 3, 2, 2, 2, 4528, 4529, 3, 2, 2, 2, 4529, 4530, 7, 580, 2, 2, 4530, 4531, 7, 810, 2, 2, 4531, 4539, 7, 802, 2, 2, 4532, 4534, 7, 830, 2, 2, 4533, 4532, 3, 2, 2, 2, 4533, 4534, 3, 2, 2, 2, 4534, 4535, 3, 2, 2, 2, 4535, 4536, 7, 689, 2, 2, 4536, 4537, 7, 810, 2, 2, 4537, 4539, 9, 9, 2, 2, 4538, 4505, 3, 2, 2, 2, 4538, 4511, 3, 2, 2, 2, 4538, 4521, 3, 2, 2, 2, 4538, 4527, 3, 2, 2, 2, 4538, 4533, 3, 2, 2, 2, 4539, 4542, 3, 2, 2, 2, 4540, 4538, 3, 2, 2, 2, 4540, 4541, 3, 2, 2, 2, 4541, 4543, 3, 2, 2, 2, 4542, 4540, 3, 2, 2, 2, 4543, 4547, 7, 829, 2, 2, 4544, 4547, 7, 402, 2, 2, 4545, 4547, 7, 713, 2, 2, 4546, 4502, 3, 2, 2, 2, 4546, 4544, 3, 2, 2, 2, 4546, 4545, 3, 2, 2, 2, 4547, 4549, 3, 2, 2, 2, 4548, 4501, 3, 2, 2, 2, 4548, 4549, 3, 2, 2, 2, 4549, 4576, 3, 2, 2, 2, 4550, 4551, 7, 377, 2, 2, 4551, 4572, 7, 828, 2, 2, 4552, 4554, 7, 830, 2, 2, 4553, 4552, 3, 2, 2, 2, 4553, 4554, 3, 2, 2, 2, 4554, 4555, 3, 2, 2, 2, 4555, 4556, 7, 661, 2, 2, 4556, 4557, 7, 810, 2, 2, 4557, 4571, 7, 802, 2, 2, 4558, 4560, 7, 830, 2, 2, 4559, 4558, 3, 2, 2, 2, 4559, 4560, 3, 2, 2, 2, 4560, 4561, 3, 2, 2, 2, 4561, 4562, 7, 230, 2, 2, 4562, 4563, 7, 810, 2, 2, 4563, 4571, 9, 46, 2, 2, 4564, 4566, 7, 830, 2, 2, 4565, 4564, 3, 2, 2, 2, 4565, 4566, 3, 2, 2, 2, 4566, 4567, 3, 2, 2, 2, 4567, 4568, 7, 329, 2, 2, 4568, 4569, 7, 810, 2, 2, 4569, 4571, 9, 9, 2, 2, 4570, 4553, 3, 2, 2, 2, 4570, 4559, 3, 2, 2, 2, 4570, 4565, 3, 2, 2, 2, 4571, 4574, 3, 2, 2, 2, 4572, 4570, 3, 2, 2, 2, 4572, 4573, 3, 2, 2, 2, 4573, 4575, 3, 2, 2, 2, 4574, 4572, 3, 2, 2, 2, 4575, 4577, 7, 829, 2, 2, 4576, 4550, 3, 2, 2, 2, 4576, 4577, 3, 2, 2, 2, 4577, 4624, 3, 2, 2, 2, 4578, 4622, 7, 374, 2, 2, 4579, 4581, 7, 830, 2, 2, 4580, 4579, 3, 2, 2, 2, 4580, 4581, 3, 2, 2, 2, 4581, 4583, 3, 2, 2, 2, 4582, 4584, 7, 220, 2, 2, 4583, 4582, 3, 2, 2, 2, 4583, 4584, 3, 2, 2, 2, 4584, 4585, 3, 2, 2, 2, 4585, 4597, 5, 966, 484, 2, 4586, 4598, 7, 810, 2, 2, 4587, 4588, 7, 812, 2, 2, 4588, 4598, 7, 811, 2, 2, 4589, 4590, 7, 813, 2, 2, 4590, 4598, 7, 810, 2, 2, 4591, 4598, 7, 811, 2, 2, 4592, 4593, 7, 811, 2, 2, 4593, 4598, 7, 810, 2, 2, 4594, 4598, 7, 812, 2, 2, 4595, 4596, 7, 812, 2, 2, 4596, 4598, 7, 810, 2, 2, 4597, 4586, 3, 2, 2, 2, 4597, 4587, 3, 2, 2, 2, 4597, 4589, 3, 2, 2, 2, 4597, 4591, 3, 2, 2, 2, 4597, 4592, 3, 2, 2, 2, 4597, 4594, 3, 2, 2, 2, 4597, 4595, 3, 2, 2, 2, 4598, 4599, 3, 2, 2, 2, 4599, 4600, 9, 24, 2, 2, 4600, 4623, 3, 2, 2, 2, 4601, 4603, 7, 830, 2, 2, 4602, 4601, 3, 2, 2, 2, 4602, 4603, 3, 2, 2, 2, 4603, 4604, 3, 2, 2, 2, 4604, 4606, 9, 29, 2, 2, 4605, 4607, 7, 220, 2, 2, 4606, 4605, 3, 2, 2, 2, 4606, 4607, 3, 2, 2, 2, 4607, 4619, 3, 2, 2, 2, 4608, 4620, 7, 810, 2, 2, 4609, 4610, 7, 812, 2, 2, 4610, 4620, 7, 811, 2, 2, 4611, 4612, 7, 813, 2, 2, 4612, 4620, 7, 810, 2, 2, 4613, 4620, 7, 811, 2, 2, 4614, 4615, 7, 811, 2, 2, 4615, 4620, 7, 810, 2, 2, 4616, 4620, 7, 812, 2, 2, 4617, 4618, 7, 812, 2, 2, 4618, 4620, 7, 810, 2, 2, 4619, 4608, 3, 2, 2, 2, 4619, 4609, 3, 2, 2, 2, 4619, 4611, 3, 2, 2, 2, 4619, 4613, 3, 2, 2, 2, 4619, 4614, 3, 2, 2, 2, 4619, 4616, 3, 2, 2, 2, 4619, 4617, 3, 2, 2, 2, 4620, 4621, 3, 2, 2, 2, 4621, 4623, 9, 24, 2, 2, 4622, 4580, 3, 2, 2, 2, 4622, 4602, 3, 2, 2, 2, 4623, 4625, 3, 2, 2, 2, 4624, 4578, 3, 2, 2, 2, 4624, 4625, 3, 2, 2, 2, 4625, 4633, 3, 2, 2, 2, 4626, 4627, 7, 681, 2, 2, 4627, 4633, 7, 374, 2, 2, 4628, 4629, 7, 602, 2, 2, 4629, 4630, 7, 605, 2, 2, 4630, 4631, 7, 810, 2, 2, 4631, 4633, 5, 966, 484, 2, 4632, 4548, 3, 2, 2, 2, 4632, 4626, 3, 2, 2, 2, 4632, 4628, 3, 2, 2, 2, 4633, 373, 3, 2, 2, 2, 4634, 4635, 7, 73, 2, 2, 4635, 4636, 7, 309, 2, 2, 4636, 4637, 7, 406, 2, 2, 4637, 4775, 5, 966, 484, 2, 4638, 4683, 7, 346, 2, 2, 4639, 4640, 7, 129, 2, 2, 4640, 4677, 7, 828, 2, 2, 4641, 4643, 7, 830, 2, 2, 4642, 4641, 3, 2, 2, 2, 4642, 4643, 3, 2, 2, 2, 4643, 4644, 3, 2, 2, 2, 4644, 4645, 7, 509, 2, 2, 4645, 4646, 7, 810, 2, 2, 4646, 4676, 7, 806, 2, 2, 4647, 4649, 7, 830, 2, 2, 4648, 4647, 3, 2, 2, 2, 4648, 4649, 3, 2, 2, 2, 4649, 4650, 3, 2, 2, 2, 4650, 4651, 7, 588, 2, 2, 4651, 4655, 7, 810, 2, 2, 4652, 4653, 7, 802, 2, 2, 4653, 4656, 9, 44, 2, 2, 4654, 4656, 7, 774, 2, 2, 4655, 4652, 3, 2, 2, 2, 4655, 4654, 3, 2, 2, 2, 4656, 4676, 3, 2, 2, 2, 4657, 4659, 7, 830, 2, 2, 4658, 4657, 3, 2, 2, 2, 4658, 4659, 3, 2, 2, 2, 4659, 4660, 3, 2, 2, 2, 4660, 4661, 7, 585, 2, 2, 4661, 4662, 7, 810, 2, 2, 4662, 4676, 9, 45, 2, 2, 4663, 4665, 7, 830, 2, 2, 4664, 4663, 3, 2, 2, 2, 4664, 4665, 3, 2, 2, 2, 4665, 4666, 3, 2, 2, 2, 4666, 4667, 7, 580, 2, 2, 4667, 4668, 7, 810, 2, 2, 4668, 4676, 7, 802, 2, 2, 4669, 4671, 7, 830, 2, 2, 4670, 4669, 3, 2, 2, 2, 4670, 4671, 3, 2, 2, 2, 4671, 4672, 3, 2, 2, 2, 4672, 4673, 7, 689, 2, 2, 4673, 4674, 7, 810, 2, 2, 4674, 4676, 9, 9, 2, 2, 4675, 4642, 3, 2, 2, 2, 4675, 4648, 3, 2, 2, 2, 4675, 4658, 3, 2, 2, 2, 4675, 4664, 3, 2, 2, 2, 4675, 4670, 3, 2, 2, 2, 4676, 4679, 3, 2, 2, 2, 4677, 4675, 3, 2, 2, 2, 4677, 4678, 3, 2, 2, 2, 4678, 4680, 3, 2, 2, 2, 4679, 4677, 3, 2, 2, 2, 4680, 4684, 7, 829, 2, 2, 4681, 4684, 7, 402, 2, 2, 4682, 4684, 7, 713, 2, 2, 4683, 4639, 3, 2, 2, 2, 4683, 4681, 3, 2, 2, 2, 4683, 4682, 3, 2, 2, 2, 4684, 4686, 3, 2, 2, 2, 4685, 4638, 3, 2, 2, 2, 4685, 4686, 3, 2, 2, 2, 4686, 4719, 3, 2, 2, 2, 4687, 4688, 7, 377, 2, 2, 4688, 4715, 7, 828, 2, 2, 4689, 4691, 7, 830, 2, 2, 4690, 4689, 3, 2, 2, 2, 4690, 4691, 3, 2, 2, 2, 4691, 4692, 3, 2, 2, 2, 4692, 4693, 7, 661, 2, 2, 4693, 4694, 7, 810, 2, 2, 4694, 4714, 7, 802, 2, 2, 4695, 4697, 7, 830, 2, 2, 4696, 4695, 3, 2, 2, 2, 4696, 4697, 3, 2, 2, 2, 4697, 4698, 3, 2, 2, 2, 4698, 4699, 7, 230, 2, 2, 4699, 4700, 7, 810, 2, 2, 4700, 4714, 9, 46, 2, 2, 4701, 4703, 7, 830, 2, 2, 4702, 4701, 3, 2, 2, 2, 4702, 4703, 3, 2, 2, 2, 4703, 4704, 3, 2, 2, 2, 4704, 4705, 7, 329, 2, 2, 4705, 4706, 7, 810, 2, 2, 4706, 4714, 9, 9, 2, 2, 4707, 4709, 7, 830, 2, 2, 4708, 4707, 3, 2, 2, 2, 4708, 4709, 3, 2, 2, 2, 4709, 4710, 3, 2, 2, 2, 4710, 4711, 7, 407, 2, 2, 4711, 4712, 7, 810, 2, 2, 4712, 4714, 5, 966, 484, 2, 4713, 4690, 3, 2, 2, 2, 4713, 4696, 3, 2, 2, 2, 4713, 4702, 3, 2, 2, 2, 4713, 4708, 3, 2, 2, 2, 4714, 4717, 3, 2, 2, 2, 4715, 4713, 3, 2, 2, 2, 4715, 4716, 3, 2, 2, 2, 4716, 4718, 3, 2, 2, 2, 4717, 4715, 3, 2, 2, 2, 4718, 4720, 7, 829, 2, 2, 4719, 4687, 3, 2, 2, 2, 4719, 4720, 3, 2, 2, 2, 4720, 4767, 3, 2, 2, 2, 4721, 4765, 7, 374, 2, 2, 4722, 4724, 7, 830, 2, 2, 4723, 4722, 3, 2, 2, 2, 4723, 4724, 3, 2, 2, 2, 4724, 4726, 3, 2, 2, 2, 4725, 4727, 7, 220, 2, 2, 4726, 4725, 3, 2, 2, 2, 4726, 4727, 3, 2, 2, 2, 4727, 4728, 3, 2, 2, 2, 4728, 4740, 5, 966, 484, 2, 4729, 4741, 7, 810, 2, 2, 4730, 4731, 7, 812, 2, 2, 4731, 4741, 7, 811, 2, 2, 4732, 4733, 7, 813, 2, 2, 4733, 4741, 7, 810, 2, 2, 4734, 4741, 7, 811, 2, 2, 4735, 4736, 7, 811, 2, 2, 4736, 4741, 7, 810, 2, 2, 4737, 4741, 7, 812, 2, 2, 4738, 4739, 7, 812, 2, 2, 4739, 4741, 7, 810, 2, 2, 4740, 4729, 3, 2, 2, 2, 4740, 4730, 3, 2, 2, 2, 4740, 4732, 3, 2, 2, 2, 4740, 4734, 3, 2, 2, 2, 4740, 4735, 3, 2, 2, 2, 4740, 4737, 3, 2, 2, 2, 4740, 4738, 3, 2, 2, 2, 4741, 4742, 3, 2, 2, 2, 4742, 4743, 9, 24, 2, 2, 4743, 4766, 3, 2, 2, 2, 4744, 4746, 7, 830, 2, 2, 4745, 4744, 3, 2, 2, 2, 4745, 4746, 3, 2, 2, 2, 4746, 4747, 3, 2, 2, 2, 4747, 4749, 9, 29, 2, 2, 4748, 4750, 7, 220, 2, 2, 4749, 4748, 3, 2, 2, 2, 4749, 4750, 3, 2, 2, 2, 4750, 4762, 3, 2, 2, 2, 4751, 4763, 7, 810, 2, 2, 4752, 4753, 7, 812, 2, 2, 4753, 4763, 7, 811, 2, 2, 4754, 4755, 7, 813, 2, 2, 4755, 4763, 7, 810, 2, 2, 4756, 4763, 7, 811, 2, 2, 4757, 4758, 7, 811, 2, 2, 4758, 4763, 7, 810, 2, 2, 4759, 4763, 7, 812, 2, 2, 4760, 4761, 7, 812, 2, 2, 4761, 4763, 7, 810, 2, 2, 4762, 4751, 3, 2, 2, 2, 4762, 4752, 3, 2, 2, 2, 4762, 4754, 3, 2, 2, 2, 4762, 4756, 3, 2, 2, 2, 4762, 4757, 3, 2, 2, 2, 4762, 4759, 3, 2, 2, 2, 4762, 4760, 3, 2, 2, 2, 4763, 4764, 3, 2, 2, 2, 4764, 4766, 9, 24, 2, 2, 4765, 4723, 3, 2, 2, 2, 4765, 4745, 3, 2, 2, 2, 4766, 4768, 3, 2, 2, 2, 4767, 4721, 3, 2, 2, 2, 4767, 4768, 3, 2, 2, 2, 4768, 4776, 3, 2, 2, 2, 4769, 4770, 7, 681, 2, 2, 4770, 4776, 7, 374, 2, 2, 4771, 4772, 7, 602, 2, 2, 4772, 4773, 7, 605, 2, 2, 4773, 4774, 7, 810, 2, 2, 4774, 4776, 5, 966, 484, 2, 4775, 4685, 3, 2, 2, 2, 4775, 4769, 3, 2, 2, 2, 4775, 4771, 3, 2, 2, 2, 4776, 375, 3, 2, 2, 2, 4777, 4778, 7, 10, 2, 2, 4778, 4779, 7, 309, 2, 2, 4779, 4780, 7, 406, 2, 2, 4780, 4781, 7, 323, 2, 2, 4781, 4786, 5, 966, 484, 2, 4782, 4783, 7, 133, 2, 2, 4783, 4784, 7, 309, 2, 2, 4784, 4785, 7, 406, 2, 2, 4785, 4787, 5, 966, 484, 2, 4786, 4782, 3, 2, 2, 2, 4786, 4787, 3, 2, 2, 2, 4787, 4795, 3, 2, 2, 2, 4788, 4789, 9, 21, 2, 2, 4789, 4790, 7, 828, 2, 2, 4790, 4791, 5, 966, 484, 2, 4791, 4792, 7, 829, 2, 2, 4792, 4794, 3, 2, 2, 2, 4793, 4788, 3, 2, 2, 2, 4794, 4797, 3, 2, 2, 2, 4795, 4793, 3, 2, 2, 2, 4795, 4796, 3, 2, 2, 2, 4796, 4804, 3, 2, 2, 2, 4797, 4795, 3, 2, 2, 2, 4798, 4799, 7, 377, 2, 2, 4799, 4800, 7, 828, 2, 2, 4800, 4801, 7, 329, 2, 2, 4801, 4802, 7, 810, 2, 2, 4802, 4803, 9, 9, 2, 2, 4803, 4805, 7, 829, 2, 2, 4804, 4798, 3, 2, 2, 2, 4804, 4805, 3, 2, 2, 2, 4805, 377, 3, 2, 2, 2, 4806, 4807, 7, 73, 2, 2, 4807, 4808, 7, 309, 2, 2, 4808, 4809, 7, 406, 2, 2, 4809, 4810, 7, 323, 2, 2, 4810, 4815, 5, 966, 484, 2, 4811, 4812, 7, 133, 2, 2, 4812, 4813, 7, 309, 2, 2, 4813, 4814, 7, 406, 2, 2, 4814, 4816, 5, 966, 484, 2, 4815, 4811, 3, 2, 2, 2, 4815, 4816, 3, 2, 2, 2, 4816, 4824, 3, 2, 2, 2, 4817, 4818, 7, 4, 2, 2, 4818, 4819, 7, 828, 2, 2, 4819, 4820, 5, 966, 484, 2, 4820, 4821, 7, 829, 2, 2, 4821, 4823, 3, 2, 2, 2, 4822, 4817, 3, 2, 2, 2, 4823, 4826, 3, 2, 2, 2, 4824, 4822, 3, 2, 2, 2, 4824, 4825, 3, 2, 2, 2, 4825, 4833, 3, 2, 2, 2, 4826, 4824, 3, 2, 2, 2, 4827, 4828, 7, 377, 2, 2, 4828, 4829, 7, 828, 2, 2, 4829, 4830, 7, 329, 2, 2, 4830, 4831, 7, 810, 2, 2, 4831, 4832, 9, 9, 2, 2, 4832, 4834, 7, 829, 2, 2, 4833, 4827, 3, 2, 2, 2, 4833, 4834, 3, 2, 2, 2, 4834, 379, 3, 2, 2, 2, 4835, 4836, 7, 10, 2, 2, 4836, 4837, 7, 309, 2, 2, 4837, 4838, 7, 60, 2, 2, 4838, 4944, 7, 315, 2, 2, 4839, 4840, 7, 260, 2, 2, 4840, 4876, 7, 391, 2, 2, 4841, 4842, 7, 449, 2, 2, 4842, 4858, 7, 810, 2, 2, 4843, 4859, 7, 408, 2, 2, 4844, 4846, 7, 830, 2, 2, 4845, 4844, 3, 2, 2, 2, 4845, 4846, 3, 2, 2, 2, 4846, 4847, 3, 2, 2, 2, 4847, 4855, 7, 802, 2, 2, 4848, 4850, 7, 830, 2, 2, 4849, 4848, 3, 2, 2, 2, 4849, 4850, 3, 2, 2, 2, 4850, 4851, 3, 2, 2, 2, 4851, 4852, 7, 802, 2, 2, 4852, 4853, 7, 346, 2, 2, 4853, 4855, 7, 802, 2, 2, 4854, 4845, 3, 2, 2, 2, 4854, 4849, 3, 2, 2, 2, 4855, 4856, 3, 2, 2, 2, 4856, 4854, 3, 2, 2, 2, 4856, 4857, 3, 2, 2, 2, 4857, 4859, 3, 2, 2, 2, 4858, 4843, 3, 2, 2, 2, 4858, 4854, 3, 2, 2, 2, 4859, 4877, 3, 2, 2, 2, 4860, 4861, 7, 622, 2, 2, 4861, 4872, 7, 810, 2, 2, 4862, 4864, 7, 830, 2, 2, 4863, 4862, 3, 2, 2, 2, 4863, 4864, 3, 2, 2, 2, 4864, 4865, 3, 2, 2, 2, 4865, 4873, 7, 802, 2, 2, 4866, 4868, 7, 830, 2, 2, 4867, 4866, 3, 2, 2, 2, 4867, 4868, 3, 2, 2, 2, 4868, 4869, 3, 2, 2, 2, 4869, 4870, 7, 802, 2, 2, 4870, 4871, 7, 346, 2, 2, 4871, 4873, 7, 802, 2, 2, 4872, 4863, 3, 2, 2, 2, 4872, 4867, 3, 2, 2, 2, 4873, 4874, 3, 2, 2, 2, 4874, 4872, 3, 2, 2, 2, 4874, 4875, 3, 2, 2, 2, 4875, 4877, 3, 2, 2, 2, 4876, 4841, 3, 2, 2, 2, 4876, 4860, 3, 2, 2, 2, 4877, 4945, 3, 2, 2, 2, 4878, 4879, 7, 95, 2, 2, 4879, 4895, 7, 187, 2, 2, 4880, 4896, 7, 229, 2, 2, 4881, 4896, 7, 226, 2, 2, 4882, 4883, 7, 643, 2, 2, 4883, 4884, 7, 810, 2, 2, 4884, 4896, 9, 47, 2, 2, 4885, 4886, 7, 195, 2, 2, 4886, 4890, 7, 810, 2, 2, 4887, 4888, 7, 802, 2, 2, 4888, 4891, 7, 589, 2, 2, 4889, 4891, 7, 89, 2, 2, 4890, 4887, 3, 2, 2, 2, 4890, 4889, 3, 2, 2, 2, 4891, 4896, 3, 2, 2, 2, 4892, 4893, 7, 580, 2, 2, 4893, 4894, 7, 810, 2, 2, 4894, 4896, 9, 48, 2, 2, 4895, 4880, 3, 2, 2, 2, 4895, 4881, 3, 2, 2, 2, 4895, 4882, 3, 2, 2, 2, 4895, 4885, 3, 2, 2, 2, 4895, 4892, 3, 2, 2, 2, 4896, 4945, 3, 2, 2, 2, 4897, 4898, 7, 125, 2, 2, 4898, 4899, 7, 52, 2, 2, 4899, 4917, 7, 656, 2, 2, 4900, 4901, 7, 369, 2, 2, 4901, 4902, 7, 810, 2, 2, 4902, 4918, 9, 47, 2, 2, 4903, 4904, 7, 325, 2, 2, 4904, 4905, 7, 810, 2, 2, 4905, 4918, 9, 47, 2, 2, 4906, 4907, 7, 326, 2, 2, 4907, 4908, 7, 810, 2, 2, 4908, 4918, 9, 47, 2, 2, 4909, 4910, 7, 327, 2, 2, 4910, 4918, 9, 47, 2, 2, 4911, 4912, 7, 126, 2, 2, 4912, 4913, 7, 810, 2, 2, 4913, 4918, 9, 47, 2, 2, 4914, 4915, 7, 149, 2, 2, 4915, 4916, 7, 810, 2, 2, 4916, 4918, 9, 48, 2, 2, 4917, 4900, 3, 2, 2, 2, 4917, 4903, 3, 2, 2, 2, 4917, 4906, 3, 2, 2, 2, 4917, 4909, 3, 2, 2, 2, 4917, 4911, 3, 2, 2, 2, 4917, 4914, 3, 2, 2, 2, 4918, 4945, 3, 2, 2, 2, 4919, 4920, 7, 530, 2, 2, 4920, 4921, 7, 52, 2, 2, 4921, 4922, 7, 65, 2, 2, 4922, 4923, 7, 810, 2, 2, 4923, 4945, 9, 49, 2, 2, 4924, 4925, 7, 35, 2, 2, 4925, 4926, 7, 645, 2, 2, 4926, 4939, 7, 122, 2, 2, 4927, 4928, 7, 229, 2, 2, 4928, 4929, 7, 828, 2, 2, 4929, 4930, 7, 130, 2, 2, 4930, 4931, 7, 810, 2, 2, 4931, 4932, 7, 806, 2, 2, 4932, 4933, 7, 830, 2, 2, 4933, 4934, 7, 728, 2, 2, 4934, 4935, 7, 810, 2, 2, 4935, 4936, 7, 802, 2, 2, 4936, 4937, 9, 50, 2, 2, 4937, 4940, 7, 829, 2, 2, 4938, 4940, 7, 226, 2, 2, 4939, 4927, 3, 2, 2, 2, 4939, 4938, 3, 2, 2, 2, 4940, 4945, 3, 2, 2, 2, 4941, 4942, 7, 315, 2, 2, 4942, 4943, 7, 320, 2, 2, 4943, 4945, 9, 9, 2, 2, 4944, 4839, 3, 2, 2, 2, 4944, 4878, 3, 2, 2, 2, 4944, 4897, 3, 2, 2, 2, 4944, 4919, 3, 2, 2, 2, 4944, 4924, 3, 2, 2, 2, 4944, 4941, 3, 2, 2, 2, 4945, 381, 3, 2, 2, 2, 4946, 4947, 7, 10, 2, 2, 4947, 4948, 7, 309, 2, 2, 4948, 4949, 7, 289, 2, 2, 4949, 4957, 5, 966, 484, 2, 4950, 4951, 9, 21, 2, 2, 4951, 4952, 7, 199, 2, 2, 4952, 4958, 5, 966, 484, 2, 4953, 4954, 7, 377, 2, 2, 4954, 4955, 7, 605, 2, 2, 4955, 4956, 7, 810, 2, 2, 4956, 4958, 5, 966, 484, 2, 4957, 4950, 3, 2, 2, 2, 4957, 4953, 3, 2, 2, 2, 4958, 383, 3, 2, 2, 2, 4959, 4960, 7, 73, 2, 2, 4960, 4961, 7, 309, 2, 2, 4961, 4962, 7, 289, 2, 2, 4962, 4965, 5, 966, 484, 2, 4963, 4964, 7, 20, 2, 2, 4964, 4966, 5, 966, 484, 2, 4965, 4963, 3, 2, 2, 2, 4965, 4966, 3, 2, 2, 2, 4966, 385, 3, 2, 2, 2, 4967, 4968, 7, 10, 2, 2, 4968, 4969, 7, 309, 2, 2, 4969, 4970, 7, 289, 2, 2, 4970, 4971, 5, 966, 484, 2, 4971, 4972, 9, 21, 2, 2, 4972, 4973, 7, 199, 2, 2, 4973, 4974, 5, 966, 484, 2, 4974, 387, 3, 2, 2, 2, 4975, 4976, 7, 10, 2, 2, 4976, 4977, 7, 310, 2, 2, 4977, 4985, 5, 966, 484, 2, 4978, 4979, 7, 229, 2, 2, 4979, 4980, 7, 660, 2, 2, 4980, 4981, 5, 966, 484, 2, 4981, 4982, 7, 823, 2, 2, 4982, 4983, 3, 2, 2, 2, 4983, 4984, 5, 966, 484, 2, 4984, 4986, 3, 2, 2, 2, 4985, 4978, 3, 2, 2, 2, 4985, 4986, 3, 2, 2, 2, 4986, 4994, 3, 2, 2, 2, 4987, 4989, 7, 830, 2, 2, 4988, 4987, 3, 2, 2, 2, 4988, 4989, 3, 2, 2, 2, 4989, 4990, 3, 2, 2, 2, 4990, 4991, 9, 21, 2, 2, 4991, 4993, 5, 966, 484, 2, 4992, 4988, 3, 2, 2, 2, 4993, 4996, 3, 2, 2, 2, 4994, 4992, 3, 2, 2, 2, 4994, 4995, 3, 2, 2, 2, 4995, 389, 3, 2, 2, 2, 4996, 4994, 3, 2, 2, 2, 4997, 4998, 7, 73, 2, 2, 4998, 4999, 7, 310, 2, 2, 4999, 5002, 5, 966, 484, 2, 5000, 5001, 7, 20, 2, 2, 5001, 5003, 5, 966, 484, 2, 5002, 5000, 3, 2, 2, 2, 5002, 5003, 3, 2, 2, 2, 5003, 5004, 3, 2, 2, 2, 5004, 5005, 7, 229, 2, 2, 5005, 5009, 7, 660, 2, 2, 5006, 5007, 5, 966, 484, 2, 5007, 5008, 7, 823, 2, 2, 5008, 5010, 3, 2, 2, 2, 5009, 5006, 3, 2, 2, 2, 5009, 5010, 3, 2, 2, 2, 5010, 5011, 3, 2, 2, 2, 5011, 5025, 5, 966, 484, 2, 5012, 5020, 7, 828, 2, 2, 5013, 5015, 7, 830, 2, 2, 5014, 5013, 3, 2, 2, 2, 5014, 5015, 3, 2, 2, 2, 5015, 5018, 3, 2, 2, 2, 5016, 5019, 5, 966, 484, 2, 5017, 5019, 7, 89, 2, 2, 5018, 5016, 3, 2, 2, 2, 5018, 5017, 3, 2, 2, 2, 5019, 5021, 3, 2, 2, 2, 5020, 5014, 3, 2, 2, 2, 5021, 5022, 3, 2, 2, 2, 5022, 5020, 3, 2, 2, 2, 5022, 5023, 3, 2, 2, 2, 5023, 5024, 3, 2, 2, 2, 5024, 5026, 7, 829, 2, 2, 5025, 5012, 3, 2, 2, 2, 5025, 5026, 3, 2, 2, 2, 5026, 391, 3, 2, 2, 2, 5027, 5028, 7, 10, 2, 2, 5028, 5029, 7, 310, 2, 2, 5029, 5030, 7, 189, 2, 2, 5030, 5052, 7, 172, 2, 2, 5031, 5033, 7, 515, 2, 2, 5032, 5031, 3, 2, 2, 2, 5032, 5033, 3, 2, 2, 2, 5033, 5034, 3, 2, 2, 2, 5034, 5053, 7, 271, 2, 2, 5035, 5050, 7, 377, 2, 2, 5036, 5037, 7, 628, 2, 2, 5037, 5038, 7, 810, 2, 2, 5038, 5039, 7, 806, 2, 2, 5039, 5040, 7, 830, 2, 2, 5040, 5041, 7, 228, 2, 2, 5041, 5042, 7, 810, 2, 2, 5042, 5051, 7, 806, 2, 2, 5043, 5044, 7, 607, 2, 2, 5044, 5045, 7, 810, 2, 2, 5045, 5046, 7, 806, 2, 2, 5046, 5047, 7, 830, 2, 2, 5047, 5048, 7, 609, 2, 2, 5048, 5049, 7, 810, 2, 2, 5049, 5051, 7, 806, 2, 2, 5050, 5036, 3, 2, 2, 2, 5050, 5043, 3, 2, 2, 2, 5050, 5051, 3, 2, 2, 2, 5051, 5053, 3, 2, 2, 2, 5052, 5032, 3, 2, 2, 2, 5052, 5035, 3, 2, 2, 2, 5053, 393, 3, 2, 2, 2, 5054, 5055, 7, 10, 2, 2, 5055, 5056, 7, 747, 2, 2, 5056, 5057, 7, 172, 2, 2, 5057, 5058, 5, 966, 484, 2, 5058, 5059, 9, 21, 2, 2, 5059, 5060, 7, 492, 2, 2, 5060, 5072, 7, 38, 2, 2, 5061, 5062, 7, 43, 2, 2, 5062, 5073, 5, 966, 484, 2, 5063, 5064, 7, 244, 2, 2, 5064, 5065, 7, 810, 2, 2, 5065, 5073, 7, 806, 2, 2, 5066, 5067, 7, 747, 2, 2, 5067, 5068, 7, 172, 2, 2, 5068, 5073, 5, 966, 484, 2, 5069, 5070, 7, 18, 2, 2, 5070, 5071, 7, 172, 2, 2, 5071, 5073, 5, 966, 484, 2, 5072, 5061, 3, 2, 2, 2, 5072, 5063, 3, 2, 2, 2, 5072, 5066, 3, 2, 2, 2, 5072, 5069, 3, 2, 2, 2, 5073, 395, 3, 2, 2, 2, 5074, 5075, 7, 10, 2, 2, 5075, 5076, 7, 747, 2, 2, 5076, 5077, 7, 172, 2, 2, 5077, 5080, 5, 966, 484, 2, 5078, 5079, 7, 20, 2, 2, 5079, 5081, 5, 966, 484, 2, 5080, 5078, 3, 2, 2, 2, 5080, 5081, 3, 2, 2, 2, 5081, 5085, 3, 2, 2, 2, 5082, 5083, 7, 139, 2, 2, 5083, 5084, 7, 657, 2, 2, 5084, 5086, 5, 966, 484, 2, 5085, 5082, 3, 2, 2, 2, 5085, 5086, 3, 2, 2, 2, 5086, 5087, 3, 2, 2, 2, 5087, 5120, 7, 377, 2, 2, 5088, 5089, 7, 555, 2, 2, 5089, 5090, 7, 810, 2, 2, 5090, 5104, 7, 806, 2, 2, 5091, 5092, 7, 394, 2, 2, 5092, 5093, 7, 810, 2, 2, 5093, 5104, 9, 51, 2, 2, 5094, 5095, 7, 536, 2, 2, 5095, 5096, 7, 810, 2, 2, 5096, 5104, 7, 806, 2, 2, 5097, 5098, 7, 658, 2, 2, 5098, 5099, 7, 810, 2, 2, 5099, 5104, 7, 806, 2, 2, 5100, 5101, 7, 451, 2, 2, 5101, 5102, 7, 810, 2, 2, 5102, 5104, 9, 12, 2, 2, 5103, 5088, 3, 2, 2, 2, 5103, 5091, 3, 2, 2, 2, 5103, 5094, 3, 2, 2, 2, 5103, 5097, 3, 2, 2, 2, 5103, 5100, 3, 2, 2, 2, 5104, 5121, 3, 2, 2, 2, 5105, 5106, 7, 492, 2, 2, 5106, 5118, 7, 38, 2, 2, 5107, 5108, 7, 43, 2, 2, 5108, 5119, 5, 966, 484, 2, 5109, 5110, 7, 244, 2, 2, 5110, 5111, 7, 810, 2, 2, 5111, 5119, 7, 806, 2, 2, 5112, 5113, 7, 747, 2, 2, 5113, 5114, 7, 172, 2, 2, 5114, 5119, 5, 966, 484, 2, 5115, 5116, 7, 18, 2, 2, 5116, 5117, 7, 172, 2, 2, 5117, 5119, 5, 966, 484, 2, 5118, 5107, 3, 2, 2, 2, 5118, 5109, 3, 2, 2, 2, 5118, 5112, 3, 2, 2, 2, 5118, 5115, 3, 2, 2, 2, 5119, 5121, 3, 2, 2, 2, 5120, 5103, 3, 2, 2, 2, 5120, 5105, 3, 2, 2, 2, 5121, 397, 3, 2, 2, 2, 5122, 5123, 7, 73, 2, 2, 5123, 5127, 7, 749, 2, 2, 5124, 5125, 5, 966, 484, 2, 5125, 5126, 7, 823, 2, 2, 5126, 5128, 3, 2, 2, 2, 5127, 5124, 3, 2, 2, 2, 5127, 5128, 3, 2, 2, 2, 5128, 5129, 3, 2, 2, 2, 5129, 5130, 5, 966, 484, 2, 5130, 5157, 7, 133, 2, 2, 5131, 5132, 5, 966, 484, 2, 5132, 5133, 7, 823, 2, 2, 5133, 5135, 3, 2, 2, 2, 5134, 5131, 3, 2, 2, 2, 5134, 5135, 3, 2, 2, 2, 5135, 5139, 3, 2, 2, 2, 5136, 5137, 5, 966, 484, 2, 5137, 5138, 7, 823, 2, 2, 5138, 5140, 3, 2, 2, 2, 5139, 5136, 3, 2, 2, 2, 5139, 5140, 3, 2, 2, 2, 5140, 5144, 3, 2, 2, 2, 5141, 5142, 5, 966, 484, 2, 5142, 5143, 7, 823, 2, 2, 5143, 5145, 3, 2, 2, 2, 5144, 5141, 3, 2, 2, 2, 5144, 5145, 3, 2, 2, 2, 5145, 5146, 3, 2, 2, 2, 5146, 5158, 5, 966, 484, 2, 5147, 5148, 5, 966, 484, 2, 5148, 5149, 7, 823, 2, 2, 5149, 5151, 3, 2, 2, 2, 5150, 5147, 3, 2, 2, 2, 5150, 5151, 3, 2, 2, 2, 5151, 5155, 3, 2, 2, 2, 5152, 5153, 5, 966, 484, 2, 5153, 5154, 7, 823, 2, 2, 5154, 5156, 3, 2, 2, 2, 5155, 5152, 3, 2, 2, 2, 5155, 5156, 3, 2, 2, 2, 5156, 5158, 3, 2, 2, 2, 5157, 5134, 3, 2, 2, 2, 5157, 5150, 3, 2, 2, 2, 5158, 399, 3, 2, 2, 2, 5159, 5160, 7, 10, 2, 2, 5160, 5161, 7, 366, 2, 2, 5161, 5162, 5, 966, 484, 2, 5162, 5213, 7, 377, 2, 2, 5163, 5165, 7, 830, 2, 2, 5164, 5163, 3, 2, 2, 2, 5164, 5165, 3, 2, 2, 2, 5165, 5166, 3, 2, 2, 2, 5166, 5167, 7, 605, 2, 2, 5167, 5168, 7, 810, 2, 2, 5168, 5214, 5, 966, 484, 2, 5169, 5171, 7, 830, 2, 2, 5170, 5169, 3, 2, 2, 2, 5170, 5171, 3, 2, 2, 2, 5171, 5172, 3, 2, 2, 2, 5172, 5173, 7, 91, 2, 2, 5173, 5176, 7, 810, 2, 2, 5174, 5177, 5, 966, 484, 2, 5175, 5177, 7, 223, 2, 2, 5176, 5174, 3, 2, 2, 2, 5176, 5175, 3, 2, 2, 2, 5177, 5214, 3, 2, 2, 2, 5178, 5180, 7, 830, 2, 2, 5179, 5178, 3, 2, 2, 2, 5179, 5180, 3, 2, 2, 2, 5180, 5181, 3, 2, 2, 2, 5181, 5182, 7, 571, 2, 2, 5182, 5183, 7, 810, 2, 2, 5183, 5214, 5, 966, 484, 2, 5184, 5186, 7, 830, 2, 2, 5185, 5184, 3, 2, 2, 2, 5185, 5186, 3, 2, 2, 2, 5186, 5187, 3, 2, 2, 2, 5187, 5188, 7, 244, 2, 2, 5188, 5189, 7, 810, 2, 2, 5189, 5193, 7, 806, 2, 2, 5190, 5191, 7, 228, 2, 2, 5191, 5192, 7, 810, 2, 2, 5192, 5194, 7, 806, 2, 2, 5193, 5190, 3, 2, 2, 2, 5194, 5195, 3, 2, 2, 2, 5195, 5193, 3, 2, 2, 2, 5195, 5196, 3, 2, 2, 2, 5196, 5214, 3, 2, 2, 2, 5197, 5199, 7, 830, 2, 2, 5198, 5197, 3, 2, 2, 2, 5198, 5199, 3, 2, 2, 2, 5199, 5200, 3, 2, 2, 2, 5200, 5201, 7, 468, 2, 2, 5201, 5205, 7, 810, 2, 2, 5202, 5206, 7, 213, 2, 2, 5203, 5206, 7, 802, 2, 2, 5204, 5206, 5, 966, 484, 2, 5205, 5202, 3, 2, 2, 2, 5205, 5203, 3, 2, 2, 2, 5205, 5204, 3, 2, 2, 2, 5206, 5214, 3, 2, 2, 2, 5207, 5209, 7, 830, 2, 2, 5208, 5207, 3, 2, 2, 2, 5208, 5209, 3, 2, 2, 2, 5209, 5210, 3, 2, 2, 2, 5210, 5211, 7, 395, 2, 2, 5211, 5212, 7, 810, 2, 2, 5212, 5214, 9, 9, 2, 2, 5213, 5164, 3, 2, 2, 2, 5213, 5170, 3, 2, 2, 2, 5213, 5179, 3, 2, 2, 2, 5213, 5185, 3, 2, 2, 2, 5213, 5198, 3, 2, 2, 2, 5213, 5208, 3, 2, 2, 2, 5214, 5215, 3, 2, 2, 2, 5215, 5213, 3, 2, 2, 2, 5215, 5216, 3, 2, 2, 2, 5216, 401, 3, 2, 2, 2, 5217, 5218, 7, 73, 2, 2, 5218, 5219, 7, 366, 2, 2, 5219, 5223, 5, 966, 484, 2, 5220, 5221, 9, 52, 2, 2, 5221, 5222, 7, 571, 2, 2, 5222, 5224, 5, 966, 484, 2, 5223, 5220, 3, 2, 2, 2, 5223, 5224, 3, 2, 2, 2, 5224, 5243, 3, 2, 2, 2, 5225, 5240, 7, 377, 2, 2, 5226, 5228, 7, 830, 2, 2, 5227, 5226, 3, 2, 2, 2, 5227, 5228, 3, 2, 2, 2, 5228, 5229, 3, 2, 2, 2, 5229, 5230, 7, 91, 2, 2, 5230, 5231, 7, 810, 2, 2, 5231, 5239, 5, 966, 484, 2, 5232, 5234, 7, 830, 2, 2, 5233, 5232, 3, 2, 2, 2, 5233, 5234, 3, 2, 2, 2, 5234, 5235, 3, 2, 2, 2, 5235, 5236, 7, 395, 2, 2, 5236, 5237, 7, 810, 2, 2, 5237, 5239, 9, 9, 2, 2, 5238, 5227, 3, 2, 2, 2, 5238, 5233, 3, 2, 2, 2, 5239, 5242, 3, 2, 2, 2, 5240, 5238, 3, 2, 2, 2, 5240, 5241, 3, 2, 2, 2, 5241, 5244, 3, 2, 2, 2, 5242, 5240, 3, 2, 2, 2, 5243, 5225, 3, 2, 2, 2, 5243, 5244, 3, 2, 2, 2, 5244, 5364, 3, 2, 2, 2, 5245, 5246, 7, 73, 2, 2, 5246, 5327, 7, 366, 2, 2, 5247, 5282, 5, 966, 484, 2, 5248, 5279, 7, 377, 2, 2, 5249, 5251, 7, 830, 2, 2, 5250, 5249, 3, 2, 2, 2, 5250, 5251, 3, 2, 2, 2, 5251, 5252, 3, 2, 2, 2, 5252, 5253, 7, 91, 2, 2, 5253, 5254, 7, 810, 2, 2, 5254, 5278, 5, 966, 484, 2, 5255, 5257, 7, 830, 2, 2, 5256, 5255, 3, 2, 2, 2, 5256, 5257, 3, 2, 2, 2, 5257, 5258, 3, 2, 2, 2, 5258, 5259, 7, 468, 2, 2, 5259, 5263, 7, 810, 2, 2, 5260, 5264, 7, 213, 2, 2, 5261, 5264, 7, 802, 2, 2, 5262, 5264, 5, 966, 484, 2, 5263, 5260, 3, 2, 2, 2, 5263, 5261, 3, 2, 2, 2, 5263, 5262, 3, 2, 2, 2, 5264, 5278, 3, 2, 2, 2, 5265, 5267, 7, 830, 2, 2, 5266, 5265, 3, 2, 2, 2, 5266, 5267, 3, 2, 2, 2, 5267, 5268, 3, 2, 2, 2, 5268, 5269, 7, 318, 2, 2, 5269, 5270, 7, 810, 2, 2, 5270, 5278, 7, 807, 2, 2, 5271, 5273, 7, 830, 2, 2, 5272, 5271, 3, 2, 2, 2, 5272, 5273, 3, 2, 2, 2, 5273, 5274, 3, 2, 2, 2, 5274, 5275, 7, 395, 2, 2, 5275, 5276, 7, 810, 2, 2, 5276, 5278, 9, 9, 2, 2, 5277, 5250, 3, 2, 2, 2, 5277, 5256, 3, 2, 2, 2, 5277, 5266, 3, 2, 2, 2, 5277, 5272, 3, 2, 2, 2, 5278, 5281, 3, 2, 2, 2, 5279, 5277, 3, 2, 2, 2, 5279, 5280, 3, 2, 2, 2, 5280, 5283, 3, 2, 2, 2, 5281, 5279, 3, 2, 2, 2, 5282, 5248, 3, 2, 2, 2, 5282, 5283, 3, 2, 2, 2, 5283, 5328, 3, 2, 2, 2, 5284, 5285, 5, 966, 484, 2, 5285, 5286, 7, 377, 2, 2, 5286, 5287, 7, 244, 2, 2, 5287, 5288, 7, 810, 2, 2, 5288, 5319, 7, 806, 2, 2, 5289, 5291, 7, 830, 2, 2, 5290, 5289, 3, 2, 2, 2, 5290, 5291, 3, 2, 2, 2, 5291, 5292, 3, 2, 2, 2, 5292, 5293, 7, 91, 2, 2, 5293, 5294, 7, 810, 2, 2, 5294, 5318, 5, 966, 484, 2, 5295, 5297, 7, 830, 2, 2, 5296, 5295, 3, 2, 2, 2, 5296, 5297, 3, 2, 2, 2, 5297, 5298, 3, 2, 2, 2, 5298, 5299, 7, 468, 2, 2, 5299, 5303, 7, 810, 2, 2, 5300, 5304, 7, 213, 2, 2, 5301, 5304, 7, 802, 2, 2, 5302, 5304, 5, 966, 484, 2, 5303, 5300, 3, 2, 2, 2, 5303, 5301, 3, 2, 2, 2, 5303, 5302, 3, 2, 2, 2, 5304, 5318, 3, 2, 2, 2, 5305, 5307, 7, 830, 2, 2, 5306, 5305, 3, 2, 2, 2, 5306, 5307, 3, 2, 2, 2, 5307, 5308, 3, 2, 2, 2, 5308, 5309, 7, 318, 2, 2, 5309, 5310, 7, 810, 2, 2, 5310, 5318, 7, 807, 2, 2, 5311, 5313, 7, 830, 2, 2, 5312, 5311, 3, 2, 2, 2, 5312, 5313, 3, 2, 2, 2, 5313, 5314, 3, 2, 2, 2, 5314, 5315, 7, 395, 2, 2, 5315, 5316, 7, 810, 2, 2, 5316, 5318, 9, 9, 2, 2, 5317, 5290, 3, 2, 2, 2, 5317, 5296, 3, 2, 2, 2, 5317, 5306, 3, 2, 2, 2, 5317, 5312, 3, 2, 2, 2, 5318, 5321, 3, 2, 2, 2, 5319, 5317, 3, 2, 2, 2, 5319, 5320, 3, 2, 2, 2, 5320, 5328, 3, 2, 2, 2, 5321, 5319, 3, 2, 2, 2, 5322, 5323, 5, 966, 484, 2, 5323, 5324, 7, 139, 2, 2, 5324, 5325, 7, 123, 2, 2, 5325, 5326, 7, 657, 2, 2, 5326, 5328, 3, 2, 2, 2, 5327, 5247, 3, 2, 2, 2, 5327, 5284, 3, 2, 2, 2, 5327, 5322, 3, 2, 2, 2, 5328, 5364, 3, 2, 2, 2, 5329, 5330, 7, 73, 2, 2, 5330, 5331, 7, 366, 2, 2, 5331, 5358, 5, 966, 484, 2, 5332, 5333, 7, 379, 2, 2, 5333, 5348, 7, 571, 2, 2, 5334, 5336, 7, 830, 2, 2, 5335, 5334, 3, 2, 2, 2, 5335, 5336, 3, 2, 2, 2, 5336, 5337, 3, 2, 2, 2, 5337, 5338, 7, 91, 2, 2, 5338, 5339, 7, 810, 2, 2, 5339, 5347, 5, 966, 484, 2, 5340, 5342, 7, 830, 2, 2, 5341, 5340, 3, 2, 2, 2, 5341, 5342, 3, 2, 2, 2, 5342, 5343, 3, 2, 2, 2, 5343, 5344, 7, 395, 2, 2, 5344, 5345, 7, 810, 2, 2, 5345, 5347, 9, 9, 2, 2, 5346, 5335, 3, 2, 2, 2, 5346, 5341, 3, 2, 2, 2, 5347, 5350, 3, 2, 2, 2, 5348, 5346, 3, 2, 2, 2, 5348, 5349, 3, 2, 2, 2, 5349, 5359, 3, 2, 2, 2, 5350, 5348, 3, 2, 2, 2, 5351, 5352, 9, 52, 2, 2, 5352, 5353, 7, 43, 2, 2, 5353, 5359, 5, 966, 484, 2, 5354, 5355, 9, 52, 2, 2, 5355, 5356, 7, 18, 2, 2, 5356, 5357, 7, 172, 2, 2, 5357, 5359, 5, 966, 484, 2, 5358, 5332, 3, 2, 2, 2, 5358, 5351, 3, 2, 2, 2, 5358, 5354, 3, 2, 2, 2, 5359, 5364, 3, 2, 2, 2, 5360, 5361, 7, 73, 2, 2, 5361, 5362, 7, 366, 2, 2, 5362, 5364, 5, 966, 484, 2, 5363, 5217, 3, 2, 2, 2, 5363, 5245, 3, 2, 2, 2, 5363, 5329, 3, 2, 2, 2, 5363, 5360, 3, 2, 2, 2, 5364, 403, 3, 2, 2, 2, 5365, 5366, 7, 73, 2, 2, 5366, 5367, 7, 366, 2, 2, 5367, 5373, 5, 966, 484, 2, 5368, 5369, 9, 52, 2, 2, 5369, 5370, 7, 571, 2, 2, 5370, 5374, 5, 966, 484, 2, 5371, 5372, 7, 379, 2, 2, 5372, 5374, 7, 571, 2, 2, 5373, 5368, 3, 2, 2, 2, 5373, 5371, 3, 2, 2, 2, 5373, 5374, 3, 2, 2, 2, 5374, 5379, 3, 2, 2, 2, 5375, 5376, 7, 377, 2, 2, 5376, 5377, 7, 91, 2, 2, 5377, 5378, 7, 810, 2, 2, 5378, 5380, 5, 966, 484, 2, 5379, 5375, 3, 2, 2, 2, 5379, 5380, 3, 2, 2, 2, 5380, 5394, 3, 2, 2, 2, 5381, 5382, 7, 73, 2, 2, 5382, 5383, 7, 366, 2, 2, 5383, 5384, 5, 966, 484, 2, 5384, 5385, 7, 139, 2, 2, 5385, 5386, 7, 123, 2, 2, 5386, 5391, 7, 657, 2, 2, 5387, 5388, 7, 377, 2, 2, 5388, 5389, 7, 91, 2, 2, 5389, 5390, 7, 810, 2, 2, 5390, 5392, 5, 966, 484, 2, 5391, 5387, 3, 2, 2, 2, 5391, 5392, 3, 2, 2, 2, 5392, 5394, 3, 2, 2, 2, 5393, 5365, 3, 2, 2, 2, 5393, 5381, 3, 2, 2, 2, 5394, 405, 3, 2, 2, 2, 5395, 5396, 7, 10, 2, 2, 5396, 5397, 7, 366, 2, 2, 5397, 5398, 5, 966, 484, 2, 5398, 5423, 7, 377, 2, 2, 5399, 5401, 7, 830, 2, 2, 5400, 5399, 3, 2, 2, 2, 5400, 5401, 3, 2, 2, 2, 5401, 5402, 3, 2, 2, 2, 5402, 5403, 7, 605, 2, 2, 5403, 5404, 7, 810, 2, 2, 5404, 5424, 5, 966, 484, 2, 5405, 5407, 7, 830, 2, 2, 5406, 5405, 3, 2, 2, 2, 5406, 5407, 3, 2, 2, 2, 5407, 5408, 3, 2, 2, 2, 5408, 5409, 7, 91, 2, 2, 5409, 5410, 7, 810, 2, 2, 5410, 5424, 5, 966, 484, 2, 5411, 5413, 7, 830, 2, 2, 5412, 5411, 3, 2, 2, 2, 5412, 5413, 3, 2, 2, 2, 5413, 5414, 3, 2, 2, 2, 5414, 5415, 7, 571, 2, 2, 5415, 5416, 7, 810, 2, 2, 5416, 5424, 5, 966, 484, 2, 5417, 5419, 7, 830, 2, 2, 5418, 5417, 3, 2, 2, 2, 5418, 5419, 3, 2, 2, 2, 5419, 5420, 3, 2, 2, 2, 5420, 5421, 7, 395, 2, 2, 5421, 5422, 7, 810, 2, 2, 5422, 5424, 9, 9, 2, 2, 5423, 5400, 3, 2, 2, 2, 5423, 5406, 3, 2, 2, 2, 5423, 5412, 3, 2, 2, 2, 5423, 5418, 3, 2, 2, 2, 5424, 5425, 3, 2, 2, 2, 5425, 5423, 3, 2, 2, 2, 5425, 5426, 3, 2, 2, 2, 5426, 407, 3, 2, 2, 2, 5427, 5428, 7, 10, 2, 2, 5428, 5429, 7, 788, 2, 2, 5429, 5432, 7, 146, 2, 2, 5430, 5433, 5, 966, 484, 2, 5431, 5433, 7, 466, 2, 2, 5432, 5430, 3, 2, 2, 2, 5432, 5431, 3, 2, 2, 2, 5433, 5465, 3, 2, 2, 2, 5434, 5435, 7, 377, 2, 2, 5435, 5460, 7, 828, 2, 2, 5436, 5437, 7, 540, 2, 2, 5437, 5438, 7, 810, 2, 2, 5438, 5461, 9, 53, 2, 2, 5439, 5441, 7, 830, 2, 2, 5440, 5439, 3, 2, 2, 2, 5440, 5441, 3, 2, 2, 2, 5441, 5442, 3, 2, 2, 2, 5442, 5443, 7, 686, 2, 2, 5443, 5444, 7, 810, 2, 2, 5444, 5461, 7, 802, 2, 2, 5445, 5447, 7, 830, 2, 2, 5446, 5445, 3, 2, 2, 2, 5446, 5447, 3, 2, 2, 2, 5447, 5448, 3, 2, 2, 2, 5448, 5449, 7, 685, 2, 2, 5449, 5450, 7, 810, 2, 2, 5450, 5461, 7, 802, 2, 2, 5451, 5452, 7, 687, 2, 2, 5452, 5453, 7, 810, 2, 2, 5453, 5461, 7, 802, 2, 2, 5454, 5455, 7, 579, 2, 2, 5455, 5456, 7, 810, 2, 2, 5456, 5461, 7, 802, 2, 2, 5457, 5458, 7, 527, 2, 2, 5458, 5459, 7, 810, 2, 2, 5459, 5461, 7, 802, 2, 2, 5460, 5436, 3, 2, 2, 2, 5460, 5440, 3, 2, 2, 2, 5460, 5446, 3, 2, 2, 2, 5460, 5451, 3, 2, 2, 2, 5460, 5454, 3, 2, 2, 2, 5460, 5457, 3, 2, 2, 2, 5461, 5462, 3, 2, 2, 2, 5462, 5460, 3, 2, 2, 2, 5462, 5463, 3, 2, 2, 2, 5463, 5464, 3, 2, 2, 2, 5464, 5466, 7, 829, 2, 2, 5465, 5434, 3, 2, 2, 2, 5465, 5466, 3, 2, 2, 2, 5466, 5472, 3, 2, 2, 2, 5467, 5470, 7, 776, 2, 2, 5468, 5471, 5, 966, 484, 2, 5469, 5471, 7, 466, 2, 2, 5470, 5468, 3, 2, 2, 2, 5470, 5469, 3, 2, 2, 2, 5471, 5473, 3, 2, 2, 2, 5472, 5467, 3, 2, 2, 2, 5472, 5473, 3, 2, 2, 2, 5473, 409, 3, 2, 2, 2, 5474, 5475, 7, 73, 2, 2, 5475, 5476, 7, 788, 2, 2, 5476, 5477, 7, 146, 2, 2, 5477, 5509, 5, 966, 484, 2, 5478, 5479, 7, 377, 2, 2, 5479, 5504, 7, 828, 2, 2, 5480, 5481, 7, 540, 2, 2, 5481, 5482, 7, 810, 2, 2, 5482, 5505, 9, 53, 2, 2, 5483, 5485, 7, 830, 2, 2, 5484, 5483, 3, 2, 2, 2, 5484, 5485, 3, 2, 2, 2, 5485, 5486, 3, 2, 2, 2, 5486, 5487, 7, 686, 2, 2, 5487, 5488, 7, 810, 2, 2, 5488, 5505, 7, 802, 2, 2, 5489, 5491, 7, 830, 2, 2, 5490, 5489, 3, 2, 2, 2, 5490, 5491, 3, 2, 2, 2, 5491, 5492, 3, 2, 2, 2, 5492, 5493, 7, 685, 2, 2, 5493, 5494, 7, 810, 2, 2, 5494, 5505, 7, 802, 2, 2, 5495, 5496, 7, 687, 2, 2, 5496, 5497, 7, 810, 2, 2, 5497, 5505, 7, 802, 2, 2, 5498, 5499, 7, 579, 2, 2, 5499, 5500, 7, 810, 2, 2, 5500, 5505, 7, 802, 2, 2, 5501, 5502, 7, 527, 2, 2, 5502, 5503, 7, 810, 2, 2, 5503, 5505, 7, 802, 2, 2, 5504, 5480, 3, 2, 2, 2, 5504, 5484, 3, 2, 2, 2, 5504, 5490, 3, 2, 2, 2, 5504, 5495, 3, 2, 2, 2, 5504, 5498, 3, 2, 2, 2, 5504, 5501, 3, 2, 2, 2, 5505, 5506, 3, 2, 2, 2, 5506, 5504, 3, 2, 2, 2, 5506, 5507, 3, 2, 2, 2, 5507, 5508, 3, 2, 2, 2, 5508, 5510, 7, 829, 2, 2, 5509, 5478, 3, 2, 2, 2, 5509, 5510, 3, 2, 2, 2, 5510, 5524, 3, 2, 2, 2, 5511, 5514, 7, 776, 2, 2, 5512, 5515, 5, 966, 484, 2, 5513, 5515, 7, 466, 2, 2, 5514, 5512, 3, 2, 2, 2, 5514, 5513, 3, 2, 2, 2, 5514, 5515, 3, 2, 2, 2, 5515, 5522, 3, 2, 2, 2, 5516, 5518, 7, 830, 2, 2, 5517, 5516, 3, 2, 2, 2, 5517, 5518, 3, 2, 2, 2, 5518, 5519, 3, 2, 2, 2, 5519, 5520, 7, 123, 2, 2, 5520, 5523, 5, 966, 484, 2, 5521, 5523, 7, 466, 2, 2, 5522, 5517, 3, 2, 2, 2, 5522, 5521, 3, 2, 2, 2, 5522, 5523, 3, 2, 2, 2, 5523, 5525, 3, 2, 2, 2, 5524, 5511, 3, 2, 2, 2, 5524, 5525, 3, 2, 2, 2, 5525, 411, 3, 2, 2, 2, 5526, 5527, 7, 73, 2, 2, 5527, 5528, 7, 789, 2, 2, 5528, 5529, 7, 302, 2, 2, 5529, 5533, 7, 437, 2, 2, 5530, 5531, 5, 966, 484, 2, 5531, 5532, 7, 823, 2, 2, 5532, 5534, 3, 2, 2, 2, 5533, 5530, 3, 2, 2, 2, 5533, 5534, 3, 2, 2, 2, 5534, 5535, 3, 2, 2, 2, 5535, 5536, 5, 966, 484, 2, 5536, 5540, 7, 16, 2, 2, 5537, 5541, 7, 806, 2, 2, 5538, 5541, 5, 966, 484, 2, 5539, 5541, 7, 801, 2, 2, 5540, 5537, 3, 2, 2, 2, 5540, 5538, 3, 2, 2, 2, 5540, 5539, 3, 2, 2, 2, 5541, 413, 3, 2, 2, 2, 5542, 5543, 7, 73, 2, 2, 5543, 5546, 7, 660, 2, 2, 5544, 5547, 5, 908, 455, 2, 5545, 5547, 5, 966, 484, 2, 5546, 5544, 3, 2, 2, 2, 5546, 5545, 3, 2, 2, 2, 5547, 5549, 3, 2, 2, 2, 5548, 5550, 5, 416, 209, 2, 5549, 5548, 3, 2, 2, 2, 5549, 5550, 3, 2, 2, 2, 5550, 5554, 3, 2, 2, 2, 5551, 5552, 7, 229, 2, 2, 5552, 5555, 5, 966, 484, 2, 5553, 5555, 7, 89, 2, 2, 5554, 5551, 3, 2, 2, 2, 5554, 5553, 3, 2, 2, 2, 5554, 5555, 3, 2, 2, 2, 5555, 415, 3, 2, 2, 2, 5556, 5563, 7, 377, 2, 2, 5557, 5558, 7, 736, 2, 2, 5558, 5559, 7, 810, 2, 2, 5559, 5561, 9, 9, 2, 2, 5560, 5562, 7, 830, 2, 2, 5561, 5560, 3, 2, 2, 2, 5561, 5562, 3, 2, 2, 2, 5562, 5564, 3, 2, 2, 2, 5563, 5557, 3, 2, 2, 2, 5563, 5564, 3, 2, 2, 2, 5564, 5571, 3, 2, 2, 2, 5565, 5566, 7, 693, 2, 2, 5566, 5567, 7, 810, 2, 2, 5567, 5569, 9, 9, 2, 2, 5568, 5570, 7, 830, 2, 2, 5569, 5568, 3, 2, 2, 2, 5569, 5570, 3, 2, 2, 2, 5570, 5572, 3, 2, 2, 2, 5571, 5565, 3, 2, 2, 2, 5571, 5572, 3, 2, 2, 2, 5572, 5618, 3, 2, 2, 2, 5573, 5574, 7, 385, 2, 2, 5574, 5612, 7, 828, 2, 2, 5575, 5576, 7, 736, 2, 2, 5576, 5577, 7, 810, 2, 2, 5577, 5579, 9, 9, 2, 2, 5578, 5580, 7, 830, 2, 2, 5579, 5578, 3, 2, 2, 2, 5579, 5580, 3, 2, 2, 2, 5580, 5582, 3, 2, 2, 2, 5581, 5575, 3, 2, 2, 2, 5581, 5582, 3, 2, 2, 2, 5582, 5589, 3, 2, 2, 2, 5583, 5584, 7, 655, 2, 2, 5584, 5585, 7, 810, 2, 2, 5585, 5587, 5, 916, 459, 2, 5586, 5588, 7, 830, 2, 2, 5587, 5586, 3, 2, 2, 2, 5587, 5588, 3, 2, 2, 2, 5588, 5590, 3, 2, 2, 2, 5589, 5583, 3, 2, 2, 2, 5589, 5590, 3, 2, 2, 2, 5590, 5597, 3, 2, 2, 2, 5591, 5592, 7, 584, 2, 2, 5592, 5593, 7, 810, 2, 2, 5593, 5595, 7, 802, 2, 2, 5594, 5596, 7, 830, 2, 2, 5595, 5594, 3, 2, 2, 2, 5595, 5596, 3, 2, 2, 2, 5596, 5598, 3, 2, 2, 2, 5597, 5591, 3, 2, 2, 2, 5597, 5598, 3, 2, 2, 2, 5598, 5609, 3, 2, 2, 2, 5599, 5600, 7, 118, 2, 2, 5600, 5604, 7, 16, 2, 2, 5601, 5605, 7, 715, 2, 2, 5602, 5605, 7, 806, 2, 2, 5603, 5605, 7, 637, 2, 2, 5604, 5601, 3, 2, 2, 2, 5604, 5602, 3, 2, 2, 2, 5604, 5603, 3, 2, 2, 2, 5605, 5607, 3, 2, 2, 2, 5606, 5608, 7, 830, 2, 2, 5607, 5606, 3, 2, 2, 2, 5607, 5608, 3, 2, 2, 2, 5608, 5610, 3, 2, 2, 2, 5609, 5599, 3, 2, 2, 2, 5609, 5610, 3, 2, 2, 2, 5610, 5613, 3, 2, 2, 2, 5611, 5613, 7, 103, 2, 2, 5612, 5581, 3, 2, 2, 2, 5612, 5611, 3, 2, 2, 2, 5613, 5614, 3, 2, 2, 2, 5614, 5616, 7, 829, 2, 2, 5615, 5617, 7, 830, 2, 2, 5616, 5615, 3, 2, 2, 2, 5616, 5617, 3, 2, 2, 2, 5617, 5619, 3, 2, 2, 2, 5618, 5573, 3, 2, 2, 2, 5618, 5619, 3, 2, 2, 2, 5619, 5627, 3, 2, 2, 2, 5620, 5621, 7, 644, 2, 2, 5621, 5622, 7, 828, 2, 2, 5622, 5623, 7, 736, 2, 2, 5623, 5624, 7, 810, 2, 2, 5624, 5625, 9, 9, 2, 2, 5625, 5626, 3, 2, 2, 2, 5626, 5628, 7, 829, 2, 2, 5627, 5620, 3, 2, 2, 2, 5627, 5628, 3, 2, 2, 2, 5628, 417, 3, 2, 2, 2, 5629, 5630, 7, 10, 2, 2, 5630, 5633, 7, 660, 2, 2, 5631, 5634, 5, 908, 455, 2, 5632, 5634, 5, 966, 484, 2, 5633, 5631, 3, 2, 2, 2, 5633, 5632, 3, 2, 2, 2, 5634, 5637, 3, 2, 2, 2, 5635, 5638, 5, 416, 209, 2, 5636, 5638, 5, 420, 211, 2, 5637, 5635, 3, 2, 2, 2, 5637, 5636, 3, 2, 2, 2, 5638, 419, 3, 2, 2, 2, 5639, 5645, 7, 673, 2, 2, 5640, 5641, 7, 377, 2, 2, 5641, 5642, 7, 828, 2, 2, 5642, 5643, 5, 422, 212, 2, 5643, 5644, 7, 829, 2, 2, 5644, 5646, 3, 2, 2, 2, 5645, 5640, 3, 2, 2, 2, 5645, 5646, 3, 2, 2, 2, 5646, 5661, 3, 2, 2, 2, 5647, 5652, 7, 682, 2, 2, 5648, 5649, 7, 377, 2, 2, 5649, 5650, 7, 566, 2, 2, 5650, 5651, 7, 810, 2, 2, 5651, 5653, 9, 9, 2, 2, 5652, 5648, 3, 2, 2, 2, 5652, 5653, 3, 2, 2, 2, 5653, 5661, 3, 2, 2, 2, 5654, 5655, 7, 603, 2, 2, 5655, 5658, 7, 346, 2, 2, 5656, 5659, 5, 966, 484, 2, 5657, 5659, 7, 89, 2, 2, 5658, 5656, 3, 2, 2, 2, 5658, 5657, 3, 2, 2, 2, 5659, 5661, 3, 2, 2, 2, 5660, 5639, 3, 2, 2, 2, 5660, 5647, 3, 2, 2, 2, 5660, 5654, 3, 2, 2, 2, 5661, 421, 3, 2, 2, 2, 5662, 5663, 7, 586, 2, 2, 5663, 5664, 7, 810, 2, 2, 5664, 5665, 7, 802, 2, 2, 5665, 423, 3, 2, 2, 2, 5666, 5667, 7, 73, 2, 2, 5667, 5668, 7, 68, 2, 2, 5668, 5671, 5, 944, 473, 2, 5669, 5670, 7, 20, 2, 2, 5670, 5672, 5, 966, 484, 2, 5671, 5669, 3, 2, 2, 2, 5671, 5672, 3, 2, 2, 2, 5672, 5673, 3, 2, 2, 2, 5673, 5684, 7, 828, 2, 2, 5674, 5677, 5, 966, 484, 2, 5675, 5677, 7, 89, 2, 2, 5676, 5674, 3, 2, 2, 2, 5676, 5675, 3, 2, 2, 2, 5677, 5678, 3, 2, 2, 2, 5678, 5679, 7, 718, 2, 2, 5679, 5680, 7, 38, 2, 2, 5680, 5682, 9, 54, 2, 2, 5681, 5683, 7, 830, 2, 2, 5682, 5681, 3, 2, 2, 2, 5682, 5683, 3, 2, 2, 2, 5683, 5685, 3, 2, 2, 2, 5684, 5676, 3, 2, 2, 2, 5685, 5686, 3, 2, 2, 2, 5686, 5684, 3, 2, 2, 2, 5686, 5687, 3, 2, 2, 2, 5687, 5688, 3, 2, 2, 2, 5688, 5689, 7, 829, 2, 2, 5689, 425, 3, 2, 2, 2, 5690, 5697, 5, 940, 471, 2, 5691, 5697, 5, 942, 472, 2, 5692, 5697, 5, 948, 475, 2, 5693, 5697, 5, 952, 477, 2, 5694, 5697, 5, 956, 479, 2, 5695, 5697, 5, 950, 476, 2, 5696, 5690, 3, 2, 2, 2, 5696, 5691, 3, 2, 2, 2, 5696, 5692, 3, 2, 2, 2, 5696, 5693, 3, 2, 2, 2, 5696, 5694, 3, 2, 2, 2, 5696, 5695, 3, 2, 2, 2, 5697, 427, 3, 2, 2, 2, 5698, 5699, 7, 73, 2, 2, 5699, 5700, 7, 592, 2, 2, 5700, 5701, 7, 769, 2, 2, 5701, 5704, 5, 966, 484, 2, 5702, 5703, 7, 20, 2, 2, 5703, 5705, 5, 966, 484, 2, 5704, 5702, 3, 2, 2, 2, 5704, 5705, 3, 2, 2, 2, 5705, 5706, 3, 2, 2, 2, 5706, 5707, 7, 778, 2, 2, 5707, 5716, 7, 810, 2, 2, 5708, 5717, 7, 213, 2, 2, 5709, 5717, 7, 488, 2, 2, 5710, 5717, 7, 785, 2, 2, 5711, 5712, 7, 777, 2, 2, 5712, 5713, 7, 377, 2, 2, 5713, 5714, 7, 302, 2, 2, 5714, 5715, 7, 437, 2, 2, 5715, 5717, 5, 966, 484, 2, 5716, 5708, 3, 2, 2, 2, 5716, 5709, 3, 2, 2, 2, 5716, 5710, 3, 2, 2, 2, 5716, 5711, 3, 2, 2, 2, 5717, 429, 3, 2, 2, 2, 5718, 5720, 5, 742, 372, 2, 5719, 5718, 3, 2, 2, 2, 5719, 5720, 3, 2, 2, 2, 5720, 5721, 3, 2, 2, 2, 5721, 5729, 7, 201, 2, 2, 5722, 5723, 7, 347, 2, 2, 5723, 5724, 7, 828, 2, 2, 5724, 5725, 5, 728, 365, 2, 5725, 5727, 7, 829, 2, 2, 5726, 5728, 7, 245, 2, 2, 5727, 5726, 3, 2, 2, 2, 5727, 5728, 3, 2, 2, 2, 5728, 5730, 3, 2, 2, 2, 5729, 5722, 3, 2, 2, 2, 5729, 5730, 3, 2, 2, 2, 5730, 5732, 3, 2, 2, 2, 5731, 5733, 7, 165, 2, 2, 5732, 5731, 3, 2, 2, 2, 5732, 5733, 3, 2, 2, 2, 5733, 5734, 3, 2, 2, 2, 5734, 5736, 5, 920, 461, 2, 5735, 5737, 5, 858, 430, 2, 5736, 5735, 3, 2, 2, 2, 5736, 5737, 3, 2, 2, 2, 5737, 5739, 3, 2, 2, 2, 5738, 5740, 5, 852, 427, 2, 5739, 5738, 3, 2, 2, 2, 5739, 5740, 3, 2, 2, 2, 5740, 5741, 3, 2, 2, 2, 5741, 5742, 7, 776, 2, 2, 5742, 5743, 5, 800, 401, 2, 5743, 5744, 7, 229, 2, 2, 5744, 5755, 5, 750, 376, 2, 5745, 5746, 7, 373, 2, 2, 5746, 5749, 7, 188, 2, 2, 5747, 5748, 7, 11, 2, 2, 5748, 5750, 5, 750, 376, 2, 5749, 5747, 3, 2, 2, 2, 5749, 5750, 3, 2, 2, 2, 5750, 5751, 3, 2, 2, 2, 5751, 5752, 7, 345, 2, 2, 5752, 5754, 5, 432, 217, 2, 5753, 5745, 3, 2, 2, 2, 5754, 5757, 3, 2, 2, 2, 5755, 5753, 3, 2, 2, 2, 5755, 5756, 3, 2, 2, 2, 5756, 5771, 3, 2, 2, 2, 5757, 5755, 3, 2, 2, 2, 5758, 5759, 7, 373, 2, 2, 5759, 5760, 7, 220, 2, 2, 5760, 5763, 7, 188, 2, 2, 5761, 5762, 7, 38, 2, 2, 5762, 5764, 7, 342, 2, 2, 5763, 5761, 3, 2, 2, 2, 5763, 5764, 3, 2, 2, 2, 5764, 5767, 3, 2, 2, 2, 5765, 5766, 7, 11, 2, 2, 5766, 5768, 5, 750, 376, 2, 5767, 5765, 3, 2, 2, 2, 5767, 5768, 3, 2, 2, 2, 5768, 5769, 3, 2, 2, 2, 5769, 5770, 7, 345, 2, 2, 5770, 5772, 5, 434, 218, 2, 5771, 5758, 3, 2, 2, 2, 5771, 5772, 3, 2, 2, 2, 5772, 5786, 3, 2, 2, 2, 5773, 5774, 7, 373, 2, 2, 5774, 5775, 7, 220, 2, 2, 5775, 5776, 7, 188, 2, 2, 5776, 5777, 7, 38, 2, 2, 5777, 5780, 7, 322, 2, 2, 5778, 5779, 7, 11, 2, 2, 5779, 5781, 5, 750, 376, 2, 5780, 5778, 3, 2, 2, 2, 5780, 5781, 3, 2, 2, 2, 5781, 5782, 3, 2, 2, 2, 5782, 5783, 7, 345, 2, 2, 5783, 5785, 5, 432, 217, 2, 5784, 5773, 3, 2, 2, 2, 5785, 5788, 3, 2, 2, 2, 5786, 5784, 3, 2, 2, 2, 5786, 5787, 3, 2, 2, 2, 5787, 5790, 3, 2, 2, 2, 5788, 5786, 3, 2, 2, 2, 5789, 5791, 5, 452, 227, 2, 5790, 5789, 3, 2, 2, 2, 5790, 5791, 3, 2, 2, 2, 5791, 5793, 3, 2, 2, 2, 5792, 5794, 5, 780, 391, 2, 5793, 5792, 3, 2, 2, 2, 5793, 5794, 3, 2, 2, 2, 5794, 5795, 3, 2, 2, 2, 5795, 5796, 7, 831, 2, 2, 5796, 431, 3, 2, 2, 2, 5797, 5798, 7, 361, 2, 2, 5798, 5799, 7, 315, 2, 2, 5799, 5804, 5, 746, 374, 2, 5800, 5801, 7, 830, 2, 2, 5801, 5803, 5, 746, 374, 2, 5802, 5800, 3, 2, 2, 2, 5803, 5806, 3, 2, 2, 2, 5804, 5802, 3, 2, 2, 2, 5804, 5805, 3, 2, 2, 2, 5805, 5809, 3, 2, 2, 2, 5806, 5804, 3, 2, 2, 2, 5807, 5809, 7, 92, 2, 2, 5808, 5797, 3, 2, 2, 2, 5808, 5807, 3, 2, 2, 2, 5809, 433, 3, 2, 2, 2, 5810, 5815, 7, 162, 2, 2, 5811, 5812, 7, 828, 2, 2, 5812, 5813, 5, 926, 464, 2, 5813, 5814, 7, 829, 2, 2, 5814, 5816, 3, 2, 2, 2, 5815, 5811, 3, 2, 2, 2, 5815, 5816, 3, 2, 2, 2, 5816, 5820, 3, 2, 2, 2, 5817, 5821, 5, 868, 435, 2, 5818, 5819, 7, 89, 2, 2, 5819, 5821, 7, 367, 2, 2, 5820, 5817, 3, 2, 2, 2, 5820, 5818, 3, 2, 2, 2, 5821, 435, 3, 2, 2, 2, 5822, 5824, 5, 742, 372, 2, 5823, 5822, 3, 2, 2, 2, 5823, 5824, 3, 2, 2, 2, 5824, 5825, 3, 2, 2, 2, 5825, 5835, 7, 92, 2, 2, 5826, 5827, 7, 347, 2, 2, 5827, 5828, 7, 828, 2, 2, 5828, 5829, 5, 728, 365, 2, 5829, 5831, 7, 829, 2, 2, 5830, 5832, 7, 245, 2, 2, 5831, 5830, 3, 2, 2, 2, 5831, 5832, 3, 2, 2, 2, 5832, 5836, 3, 2, 2, 2, 5833, 5834, 7, 347, 2, 2, 5834, 5836, 7, 802, 2, 2, 5835, 5826, 3, 2, 2, 2, 5835, 5833, 3, 2, 2, 2, 5835, 5836, 3, 2, 2, 2, 5836, 5838, 3, 2, 2, 2, 5837, 5839, 7, 139, 2, 2, 5838, 5837, 3, 2, 2, 2, 5838, 5839, 3, 2, 2, 2, 5839, 5840, 3, 2, 2, 2, 5840, 5842, 5, 438, 220, 2, 5841, 5843, 5, 858, 430, 2, 5842, 5841, 3, 2, 2, 2, 5842, 5843, 3, 2, 2, 2, 5843, 5845, 3, 2, 2, 2, 5844, 5846, 5, 452, 227, 2, 5845, 5844, 3, 2, 2, 2, 5845, 5846, 3, 2, 2, 2, 5846, 5849, 3, 2, 2, 2, 5847, 5848, 7, 139, 2, 2, 5848, 5850, 5, 800, 401, 2, 5849, 5847, 3, 2, 2, 2, 5849, 5850, 3, 2, 2, 2, 5850, 5864, 3, 2, 2, 2, 5851, 5862, 7, 374, 2, 2, 5852, 5863, 5, 750, 376, 2, 5853, 5854, 7, 75, 2, 2, 5854, 5860, 7, 225, 2, 2, 5855, 5857, 7, 525, 2, 2, 5856, 5855, 3, 2, 2, 2, 5856, 5857, 3, 2, 2, 2, 5857, 5858, 3, 2, 2, 2, 5858, 5861, 5, 928, 465, 2, 5859, 5861, 7, 801, 2, 2, 5860, 5856, 3, 2, 2, 2, 5860, 5859, 3, 2, 2, 2, 5861, 5863, 3, 2, 2, 2, 5862, 5852, 3, 2, 2, 2, 5862, 5853, 3, 2, 2, 2, 5863, 5865, 3, 2, 2, 2, 5864, 5851, 3, 2, 2, 2, 5864, 5865, 3, 2, 2, 2, 5865, 5867, 3, 2, 2, 2, 5866, 5868, 5, 772, 387, 2, 5867, 5866, 3, 2, 2, 2, 5867, 5868, 3, 2, 2, 2, 5868, 5870, 3, 2, 2, 2, 5869, 5871, 5, 780, 391, 2, 5870, 5869, 3, 2, 2, 2, 5870, 5871, 3, 2, 2, 2, 5871, 5873, 3, 2, 2, 2, 5872, 5874, 7, 831, 2, 2, 5873, 5872, 3, 2, 2, 2, 5873, 5874, 3, 2, 2, 2, 5874, 437, 3, 2, 2, 2, 5875, 5880, 5, 920, 461, 2, 5876, 5880, 5, 854, 428, 2, 5877, 5880, 5, 604, 303, 2, 5878, 5880, 7, 801, 2, 2, 5879, 5875, 3, 2, 2, 2, 5879, 5876, 3, 2, 2, 2, 5879, 5877, 3, 2, 2, 2, 5879, 5878, 3, 2, 2, 2, 5880, 439, 3, 2, 2, 2, 5881, 5883, 5, 742, 372, 2, 5882, 5881, 3, 2, 2, 2, 5882, 5883, 3, 2, 2, 2, 5883, 5884, 3, 2, 2, 2, 5884, 5892, 7, 162, 2, 2, 5885, 5886, 7, 347, 2, 2, 5886, 5887, 7, 828, 2, 2, 5887, 5888, 5, 728, 365, 2, 5888, 5890, 7, 829, 2, 2, 5889, 5891, 7, 245, 2, 2, 5890, 5889, 3, 2, 2, 2, 5890, 5891, 3, 2, 2, 2, 5891, 5893, 3, 2, 2, 2, 5892, 5885, 3, 2, 2, 2, 5892, 5893, 3, 2, 2, 2, 5893, 5895, 3, 2, 2, 2, 5894, 5896, 7, 165, 2, 2, 5895, 5894, 3, 2, 2, 2, 5895, 5896, 3, 2, 2, 2, 5896, 5899, 3, 2, 2, 2, 5897, 5900, 5, 920, 461, 2, 5898, 5900, 5, 604, 303, 2, 5899, 5897, 3, 2, 2, 2, 5899, 5898, 3, 2, 2, 2, 5900, 5902, 3, 2, 2, 2, 5901, 5903, 5, 858, 430, 2, 5902, 5901, 3, 2, 2, 2, 5902, 5903, 3, 2, 2, 2, 5903, 5908, 3, 2, 2, 2, 5904, 5905, 7, 828, 2, 2, 5905, 5906, 5, 926, 464, 2, 5906, 5907, 7, 829, 2, 2, 5907, 5909, 3, 2, 2, 2, 5908, 5904, 3, 2, 2, 2, 5908, 5909, 3, 2, 2, 2, 5909, 5911, 3, 2, 2, 2, 5910, 5912, 5, 452, 227, 2, 5911, 5910, 3, 2, 2, 2, 5911, 5912, 3, 2, 2, 2, 5912, 5913, 3, 2, 2, 2, 5913, 5915, 5, 442, 222, 2, 5914, 5916, 5, 772, 387, 2, 5915, 5914, 3, 2, 2, 2, 5915, 5916, 3, 2, 2, 2, 5916, 5918, 3, 2, 2, 2, 5917, 5919, 5, 780, 391, 2, 5918, 5917, 3, 2, 2, 2, 5918, 5919, 3, 2, 2, 2, 5919, 5921, 3, 2, 2, 2, 5920, 5922, 7, 831, 2, 2, 5921, 5920, 3, 2, 2, 2, 5921, 5922, 3, 2, 2, 2, 5922, 441, 3, 2, 2, 2, 5923, 5929, 5, 868, 435, 2, 5924, 5929, 5, 830, 416, 2, 5925, 5929, 5, 632, 317, 2, 5926, 5927, 7, 89, 2, 2, 5927, 5929, 7, 367, 2, 2, 5928, 5923, 3, 2, 2, 2, 5928, 5924, 3, 2, 2, 2, 5928, 5925, 3, 2, 2, 2, 5928, 5926, 3, 2, 2, 2, 5929, 443, 3, 2, 2, 2, 5930, 5932, 7, 828, 2, 2, 5931, 5930, 3, 2, 2, 2, 5931, 5932, 3, 2, 2, 2, 5932, 5933, 3, 2, 2, 2, 5933, 5938, 7, 674, 2, 2, 5934, 5939, 7, 6, 2, 2, 5935, 5939, 7, 98, 2, 2, 5936, 5939, 5, 764, 383, 2, 5937, 5939, 7, 833, 2, 2, 5938, 5934, 3, 2, 2, 2, 5938, 5935, 3, 2, 2, 2, 5938, 5936, 3, 2, 2, 2, 5938, 5937, 3, 2, 2, 2, 5939, 5948, 3, 2, 2, 2, 5940, 5941, 7, 801, 2, 2, 5941, 5942, 7, 810, 2, 2, 5942, 5944, 5, 728, 365, 2, 5943, 5945, 7, 830, 2, 2, 5944, 5943, 3, 2, 2, 2, 5944, 5945, 3, 2, 2, 2, 5945, 5947, 3, 2, 2, 2, 5946, 5940, 3, 2, 2, 2, 5947, 5950, 3, 2, 2, 2, 5948, 5946, 3, 2, 2, 2, 5948, 5949, 3, 2, 2, 2, 5949, 5951, 3, 2, 2, 2, 5950, 5948, 3, 2, 2, 2, 5951, 5952, 7, 139, 2, 2, 5952, 5958, 5, 908, 455, 2, 5953, 5954, 7, 165, 2, 2, 5954, 5955, 5, 966, 484, 2, 5955, 5956, 7, 374, 2, 2, 5956, 5957, 5, 750, 376, 2, 5957, 5959, 3, 2, 2, 2, 5958, 5953, 3, 2, 2, 2, 5958, 5959, 3, 2, 2, 2, 5959, 5961, 3, 2, 2, 2, 5960, 5962, 7, 829, 2, 2, 5961, 5960, 3, 2, 2, 2, 5961, 5962, 3, 2, 2, 2, 5962, 445, 3, 2, 2, 2, 5963, 5965, 5, 742, 372, 2, 5964, 5963, 3, 2, 2, 2, 5964, 5965, 3, 2, 2, 2, 5965, 5966, 3, 2, 2, 2, 5966, 5968, 5, 758, 380, 2, 5967, 5969, 5, 770, 386, 2, 5968, 5967, 3, 2, 2, 2, 5968, 5969, 3, 2, 2, 2, 5969, 5971, 3, 2, 2, 2, 5970, 5972, 5, 772, 387, 2, 5971, 5970, 3, 2, 2, 2, 5971, 5972, 3, 2, 2, 2, 5972, 5974, 3, 2, 2, 2, 5973, 5975, 5, 780, 391, 2, 5974, 5973, 3, 2, 2, 2, 5974, 5975, 3, 2, 2, 2, 5975, 5977, 3, 2, 2, 2, 5976, 5978, 7, 831, 2, 2, 5977, 5976, 3, 2, 2, 2, 5977, 5978, 3, 2, 2, 2, 5978, 447, 3, 2, 2, 2, 5979, 5982, 7, 801, 2, 2, 5980, 5982, 5, 962, 482, 2, 5981, 5979, 3, 2, 2, 2, 5981, 5980, 3, 2, 2, 2, 5982, 449, 3, 2, 2, 2, 5983, 5985, 5, 742, 372, 2, 5984, 5983, 3, 2, 2, 2, 5984, 5985, 3, 2, 2, 2, 5985, 5986, 3, 2, 2, 2, 5986, 5994, 7, 361, 2, 2, 5987, 5988, 7, 347, 2, 2, 5988, 5989, 7, 828, 2, 2, 5989, 5990, 5, 728, 365, 2, 5990, 5992, 7, 829, 2, 2, 5991, 5993, 7, 245, 2, 2, 5992, 5991, 3, 2, 2, 2, 5992, 5993, 3, 2, 2, 2, 5993, 5995, 3, 2, 2, 2, 5994, 5987, 3, 2, 2, 2, 5994, 5995, 3, 2, 2, 2, 5995, 5998, 3, 2, 2, 2, 5996, 5999, 5, 920, 461, 2, 5997, 5999, 5, 604, 303, 2, 5998, 5996, 3, 2, 2, 2, 5998, 5997, 3, 2, 2, 2, 5999, 6001, 3, 2, 2, 2, 6000, 6002, 5, 856, 429, 2, 6001, 6000, 3, 2, 2, 2, 6001, 6002, 3, 2, 2, 2, 6002, 6003, 3, 2, 2, 2, 6003, 6004, 7, 315, 2, 2, 6004, 6009, 5, 746, 374, 2, 6005, 6006, 7, 830, 2, 2, 6006, 6008, 5, 746, 374, 2, 6007, 6005, 3, 2, 2, 2, 6008, 6011, 3, 2, 2, 2, 6009, 6007, 3, 2, 2, 2, 6009, 6010, 3, 2, 2, 2, 6010, 6013, 3, 2, 2, 2, 6011, 6009, 3, 2, 2, 2, 6012, 6014, 5, 452, 227, 2, 6013, 6012, 3, 2, 2, 2, 6013, 6014, 3, 2, 2, 2, 6014, 6017, 3, 2, 2, 2, 6015, 6016, 7, 139, 2, 2, 6016, 6018, 5, 800, 401, 2, 6017, 6015, 3, 2, 2, 2, 6017, 6018, 3, 2, 2, 2, 6018, 6032, 3, 2, 2, 2, 6019, 6030, 7, 374, 2, 2, 6020, 6031, 5, 748, 375, 2, 6021, 6022, 7, 75, 2, 2, 6022, 6028, 7, 225, 2, 2, 6023, 6025, 7, 525, 2, 2, 6024, 6023, 3, 2, 2, 2, 6024, 6025, 3, 2, 2, 2, 6025, 6026, 3, 2, 2, 2, 6026, 6029, 5, 928, 465, 2, 6027, 6029, 7, 801, 2, 2, 6028, 6024, 3, 2, 2, 2, 6028, 6027, 3, 2, 2, 2, 6029, 6031, 3, 2, 2, 2, 6030, 6020, 3, 2, 2, 2, 6030, 6021, 3, 2, 2, 2, 6031, 6033, 3, 2, 2, 2, 6032, 6019, 3, 2, 2, 2, 6032, 6033, 3, 2, 2, 2, 6033, 6035, 3, 2, 2, 2, 6034, 6036, 5, 772, 387, 2, 6035, 6034, 3, 2, 2, 2, 6035, 6036, 3, 2, 2, 2, 6036, 6038, 3, 2, 2, 2, 6037, 6039, 5, 780, 391, 2, 6038, 6037, 3, 2, 2, 2, 6038, 6039, 3, 2, 2, 2, 6039, 6041, 3, 2, 2, 2, 6040, 6042, 7, 831, 2, 2, 6041, 6040, 3, 2, 2, 2, 6041, 6042, 3, 2, 2, 2, 6042, 451, 3, 2, 2, 2, 6043, 6044, 7, 635, 2, 2, 6044, 6049, 5, 454, 228, 2, 6045, 6046, 7, 830, 2, 2, 6046, 6048, 5, 454, 228, 2, 6047, 6045, 3, 2, 2, 2, 6048, 6051, 3, 2, 2, 2, 6049, 6047, 3, 2, 2, 2, 6049, 6050, 3, 2, 2, 2, 6050, 6063, 3, 2, 2, 2, 6051, 6049, 3, 2, 2, 2, 6052, 6055, 7, 165, 2, 2, 6053, 6056, 7, 801, 2, 2, 6054, 6056, 5, 910, 456, 2, 6055, 6053, 3, 2, 2, 2, 6055, 6054, 3, 2, 2, 2, 6056, 6061, 3, 2, 2, 2, 6057, 6058, 7, 828, 2, 2, 6058, 6059, 5, 926, 464, 2, 6059, 6060, 7, 829, 2, 2, 6060, 6062, 3, 2, 2, 2, 6061, 6057, 3, 2, 2, 2, 6061, 6062, 3, 2, 2, 2, 6062, 6064, 3, 2, 2, 2, 6063, 6052, 3, 2, 2, 2, 6063, 6064, 3, 2, 2, 2, 6064, 453, 3, 2, 2, 2, 6065, 6068, 5, 456, 229, 2, 6066, 6068, 5, 728, 365, 2, 6067, 6065, 3, 2, 2, 2, 6067, 6066, 3, 2, 2, 2, 6068, 6070, 3, 2, 2, 2, 6069, 6071, 5, 850, 426, 2, 6070, 6069, 3, 2, 2, 2, 6070, 6071, 3, 2, 2, 2, 6071, 455, 3, 2, 2, 2, 6072, 6076, 7, 471, 2, 2, 6073, 6076, 7, 546, 2, 2, 6074, 6076, 5, 910, 456, 2, 6075, 6072, 3, 2, 2, 2, 6075, 6073, 3, 2, 2, 2, 6075, 6074, 3, 2, 2, 2, 6076, 6077, 3, 2, 2, 2, 6077, 6080, 7, 823, 2, 2, 6078, 6081, 7, 833, 2, 2, 6079, 6081, 5, 966, 484, 2, 6080, 6078, 3, 2, 2, 2, 6080, 6079, 3, 2, 2, 2, 6081, 6084, 3, 2, 2, 2, 6082, 6084, 7, 794, 2, 2, 6083, 6075, 3, 2, 2, 2, 6083, 6082, 3, 2, 2, 2, 6084, 457, 3, 2, 2, 2, 6085, 6086, 7, 73, 2, 2, 6086, 6087, 7, 84, 2, 2, 6087, 6091, 5, 966, 484, 2, 6088, 6089, 7, 62, 2, 2, 6089, 6090, 7, 810, 2, 2, 6090, 6092, 9, 55, 2, 2, 6091, 6088, 3, 2, 2, 2, 6091, 6092, 3, 2, 2, 2, 6092, 6105, 3, 2, 2, 2, 6093, 6095, 7, 229, 2, 2, 6094, 6096, 7, 256, 2, 2, 6095, 6094, 3, 2, 2, 2, 6095, 6096, 3, 2, 2, 2, 6096, 6097, 3, 2, 2, 2, 6097, 6102, 5, 896, 449, 2, 6098, 6099, 7, 830, 2, 2, 6099, 6101, 5, 896, 449, 2, 6100, 6098, 3, 2, 2, 2, 6101, 6104, 3, 2, 2, 2, 6102, 6100, 3, 2, 2, 2, 6102, 6103, 3, 2, 2, 2, 6103, 6106, 3, 2, 2, 2, 6104, 6102, 3, 2, 2, 2, 6105, 6093, 3, 2, 2, 2, 6105, 6106, 3, 2, 2, 2, 6106, 6117, 3, 2, 2, 2, 6107, 6108, 7, 187, 2, 2, 6108, 6109, 7, 229, 2, 2, 6109, 6114, 5, 896, 449, 2, 6110, 6111, 7, 830, 2, 2, 6111, 6113, 5, 896, 449, 2, 6112, 6110, 3, 2, 2, 2, 6113, 6116, 3, 2, 2, 2, 6114, 6112, 3, 2, 2, 2, 6114, 6115, 3, 2, 2, 2, 6115, 6118, 3, 2, 2, 2, 6116, 6114, 3, 2, 2, 2, 6117, 6107, 3, 2, 2, 2, 6117, 6118, 3, 2, 2, 2, 6118, 6121, 3, 2, 2, 2, 6119, 6120, 7, 55, 2, 2, 6120, 6122, 5, 966, 484, 2, 6121, 6119, 3, 2, 2, 2, 6121, 6122, 3, 2, 2, 2, 6122, 6132, 3, 2, 2, 2, 6123, 6124, 7, 377, 2, 2, 6124, 6129, 5, 892, 447, 2, 6125, 6126, 7, 830, 2, 2, 6126, 6128, 5, 892, 447, 2, 6127, 6125, 3, 2, 2, 2, 6128, 6131, 3, 2, 2, 2, 6129, 6127, 3, 2, 2, 2, 6129, 6130, 3, 2, 2, 2, 6130, 6133, 3, 2, 2, 2, 6131, 6129, 3, 2, 2, 2, 6132, 6123, 3, 2, 2, 2, 6132, 6133, 3, 2, 2, 2, 6133, 459, 3, 2, 2, 2, 6134, 6136, 7, 73, 2, 2, 6135, 6137, 7, 357, 2, 2, 6136, 6135, 3, 2, 2, 2, 6136, 6137, 3, 2, 2, 2, 6137, 6139, 3, 2, 2, 2, 6138, 6140, 5, 932, 467, 2, 6139, 6138, 3, 2, 2, 2, 6139, 6140, 3, 2, 2, 2, 6140, 6141, 3, 2, 2, 2, 6141, 6142, 7, 158, 2, 2, 6142, 6143, 5, 966, 484, 2, 6143, 6144, 7, 229, 2, 2, 6144, 6145, 5, 824, 413, 2, 6145, 6146, 7, 828, 2, 2, 6146, 6147, 5, 924, 463, 2, 6147, 6153, 7, 829, 2, 2, 6148, 6149, 7, 156, 2, 2, 6149, 6150, 7, 828, 2, 2, 6150, 6151, 5, 926, 464, 2, 6151, 6152, 7, 829, 2, 2, 6152, 6154, 3, 2, 2, 2, 6153, 6148, 3, 2, 2, 2, 6153, 6154, 3, 2, 2, 2, 6154, 6157, 3, 2, 2, 2, 6155, 6156, 7, 374, 2, 2, 6156, 6158, 5, 750, 376, 2, 6157, 6155, 3, 2, 2, 2, 6157, 6158, 3, 2, 2, 2, 6158, 6160, 3, 2, 2, 2, 6159, 6161, 5, 712, 357, 2, 6160, 6159, 3, 2, 2, 2, 6160, 6161, 3, 2, 2, 2, 6161, 6164, 3, 2, 2, 2, 6162, 6163, 7, 229, 2, 2, 6163, 6165, 5, 966, 484, 2, 6164, 6162, 3, 2, 2, 2, 6164, 6165, 3, 2, 2, 2, 6165, 6167, 3, 2, 2, 2, 6166, 6168, 7, 831, 2, 2, 6167, 6166, 3, 2, 2, 2, 6167, 6168, 3, 2, 2, 2, 6168, 461, 3, 2, 2, 2, 6169, 6172, 7, 73, 2, 2, 6170, 6171, 7, 237, 2, 2, 6171, 6173, 7, 10, 2, 2, 6172, 6170, 3, 2, 2, 2, 6172, 6173, 3, 2, 2, 2, 6173, 6176, 3, 2, 2, 2, 6174, 6176, 7, 10, 2, 2, 6175, 6169, 3, 2, 2, 2, 6175, 6174, 3, 2, 2, 2, 6176, 6177, 3, 2, 2, 2, 6177, 6178, 9, 56, 2, 2, 6178, 6181, 5, 914, 458, 2, 6179, 6180, 7, 831, 2, 2, 6180, 6182, 7, 802, 2, 2, 6181, 6179, 3, 2, 2, 2, 6181, 6182, 3, 2, 2, 2, 6182, 6197, 3, 2, 2, 2, 6183, 6185, 7, 828, 2, 2, 6184, 6183, 3, 2, 2, 2, 6184, 6185, 3, 2, 2, 2, 6185, 6186, 3, 2, 2, 2, 6186, 6191, 5, 484, 243, 2, 6187, 6188, 7, 830, 2, 2, 6188, 6190, 5, 484, 243, 2, 6189, 6187, 3, 2, 2, 2, 6190, 6193, 3, 2, 2, 2, 6191, 6189, 3, 2, 2, 2, 6191, 6192, 3, 2, 2, 2, 6192, 6195, 3, 2, 2, 2, 6193, 6191, 3, 2, 2, 2, 6194, 6196, 7, 829, 2, 2, 6195, 6194, 3, 2, 2, 2, 6195, 6196, 3, 2, 2, 2, 6196, 6198, 3, 2, 2, 2, 6197, 6184, 3, 2, 2, 2, 6197, 6198, 3, 2, 2, 2, 6198, 6208, 3, 2, 2, 2, 6199, 6200, 7, 377, 2, 2, 6200, 6205, 5, 486, 244, 2, 6201, 6202, 7, 830, 2, 2, 6202, 6204, 5, 486, 244, 2, 6203, 6201, 3, 2, 2, 2, 6204, 6207, 3, 2, 2, 2, 6205, 6203, 3, 2, 2, 2, 6205, 6206, 3, 2, 2, 2, 6206, 6209, 3, 2, 2, 2, 6207, 6205, 3, 2, 2, 2, 6208, 6199, 3, 2, 2, 2, 6208, 6209, 3, 2, 2, 2, 6209, 6212, 3, 2, 2, 2, 6210, 6211, 7, 133, 2, 2, 6211, 6213, 7, 274, 2, 2, 6212, 6210, 3, 2, 2, 2, 6212, 6213, 3, 2, 2, 2, 6213, 6214, 3, 2, 2, 2, 6214, 6215, 7, 16, 2, 2, 6215, 6216, 5, 6, 4, 2, 6216, 463, 3, 2, 2, 2, 6217, 6220, 5, 466, 234, 2, 6218, 6220, 5, 472, 237, 2, 6219, 6217, 3, 2, 2, 2, 6219, 6218, 3, 2, 2, 2, 6220, 465, 3, 2, 2, 2, 6221, 6224, 7, 73, 2, 2, 6222, 6223, 7, 237, 2, 2, 6223, 6225, 7, 10, 2, 2, 6224, 6222, 3, 2, 2, 2, 6224, 6225, 3, 2, 2, 2, 6225, 6228, 3, 2, 2, 2, 6226, 6228, 7, 10, 2, 2, 6227, 6221, 3, 2, 2, 2, 6227, 6226, 3, 2, 2, 2, 6228, 6229, 3, 2, 2, 2, 6229, 6230, 7, 352, 2, 2, 6230, 6231, 5, 912, 457, 2, 6231, 6232, 7, 229, 2, 2, 6232, 6242, 5, 910, 456, 2, 6233, 6234, 7, 377, 2, 2, 6234, 6239, 5, 468, 235, 2, 6235, 6236, 7, 830, 2, 2, 6236, 6238, 5, 468, 235, 2, 6237, 6235, 3, 2, 2, 2, 6238, 6241, 3, 2, 2, 2, 6239, 6237, 3, 2, 2, 2, 6239, 6240, 3, 2, 2, 2, 6240, 6243, 3, 2, 2, 2, 6241, 6239, 3, 2, 2, 2, 6242, 6233, 3, 2, 2, 2, 6242, 6243, 3, 2, 2, 2, 6243, 6248, 3, 2, 2, 2, 6244, 6249, 7, 133, 2, 2, 6245, 6249, 7, 392, 2, 2, 6246, 6247, 7, 163, 2, 2, 6247, 6249, 7, 225, 2, 2, 6248, 6244, 3, 2, 2, 2, 6248, 6245, 3, 2, 2, 2, 6248, 6246, 3, 2, 2, 2, 6249, 6250, 3, 2, 2, 2, 6250, 6255, 5, 470, 236, 2, 6251, 6252, 7, 830, 2, 2, 6252, 6254, 5, 470, 236, 2, 6253, 6251, 3, 2, 2, 2, 6254, 6257, 3, 2, 2, 2, 6255, 6253, 3, 2, 2, 2, 6255, 6256, 3, 2, 2, 2, 6256, 6260, 3, 2, 2, 2, 6257, 6255, 3, 2, 2, 2, 6258, 6259, 7, 377, 2, 2, 6259, 6261, 7, 14, 2, 2, 6260, 6258, 3, 2, 2, 2, 6260, 6261, 3, 2, 2, 2, 6261, 6265, 3, 2, 2, 2, 6262, 6263, 7, 220, 2, 2, 6263, 6264, 7, 133, 2, 2, 6264, 6266, 7, 274, 2, 2, 6265, 6262, 3, 2, 2, 2, 6265, 6266, 3, 2, 2, 2, 6266, 6267, 3, 2, 2, 2, 6267, 6268, 7, 16, 2, 2, 6268, 6269, 5, 6, 4, 2, 6269, 467, 3, 2, 2, 2, 6270, 6273, 7, 492, 2, 2, 6271, 6273, 5, 686, 344, 2, 6272, 6270, 3, 2, 2, 2, 6272, 6271, 3, 2, 2, 2, 6273, 469, 3, 2, 2, 2, 6274, 6275, 9, 57, 2, 2, 6275, 471, 3, 2, 2, 2, 6276, 6279, 7, 73, 2, 2, 6277, 6278, 7, 237, 2, 2, 6278, 6280, 7, 10, 2, 2, 6279, 6277, 3, 2, 2, 2, 6279, 6280, 3, 2, 2, 2, 6280, 6283, 3, 2, 2, 2, 6281, 6283, 7, 10, 2, 2, 6282, 6276, 3, 2, 2, 2, 6282, 6281, 3, 2, 2, 2, 6283, 6284, 3, 2, 2, 2, 6284, 6285, 7, 352, 2, 2, 6285, 6286, 5, 968, 485, 2, 6286, 6290, 7, 229, 2, 2, 6287, 6288, 7, 6, 2, 2, 6288, 6291, 7, 309, 2, 2, 6289, 6291, 7, 84, 2, 2, 6290, 6287, 3, 2, 2, 2, 6290, 6289, 3, 2, 2, 2, 6291, 6301, 3, 2, 2, 2, 6292, 6293, 7, 377, 2, 2, 6293, 6298, 5, 468, 235, 2, 6294, 6295, 7, 830, 2, 2, 6295, 6297, 5, 468, 235, 2, 6296, 6294, 3, 2, 2, 2, 6297, 6300, 3, 2, 2, 2, 6298, 6296, 3, 2, 2, 2, 6298, 6299, 3, 2, 2, 2, 6299, 6302, 3, 2, 2, 2, 6300, 6298, 3, 2, 2, 2, 6301, 6292, 3, 2, 2, 2, 6301, 6302, 3, 2, 2, 2, 6302, 6303, 3, 2, 2, 2, 6303, 6304, 9, 58, 2, 2, 6304, 6309, 5, 474, 238, 2, 6305, 6306, 7, 830, 2, 2, 6306, 6308, 5, 470, 236, 2, 6307, 6305, 3, 2, 2, 2, 6308, 6311, 3, 2, 2, 2, 6309, 6307, 3, 2, 2, 2, 6309, 6310, 3, 2, 2, 2, 6310, 6312, 3, 2, 2, 2, 6311, 6309, 3, 2, 2, 2, 6312, 6313, 7, 16, 2, 2, 6313, 6314, 5, 6, 4, 2, 6314, 473, 3, 2, 2, 2, 6315, 6316, 5, 968, 485, 2, 6316, 475, 3, 2, 2, 2, 6317, 6320, 7, 73, 2, 2, 6318, 6319, 7, 237, 2, 2, 6319, 6321, 7, 10, 2, 2, 6320, 6318, 3, 2, 2, 2, 6320, 6321, 3, 2, 2, 2, 6321, 6324, 3, 2, 2, 2, 6322, 6324, 7, 10, 2, 2, 6323, 6317, 3, 2, 2, 2, 6323, 6322, 3, 2, 2, 2, 6324, 6325, 3, 2, 2, 2, 6325, 6326, 7, 141, 2, 2, 6326, 6340, 5, 914, 458, 2, 6327, 6328, 7, 828, 2, 2, 6328, 6333, 5, 484, 243, 2, 6329, 6330, 7, 830, 2, 2, 6330, 6332, 5, 484, 243, 2, 6331, 6329, 3, 2, 2, 2, 6332, 6335, 3, 2, 2, 2, 6333, 6331, 3, 2, 2, 2, 6333, 6334, 3, 2, 2, 2, 6334, 6336, 3, 2, 2, 2, 6335, 6333, 3, 2, 2, 2, 6336, 6337, 7, 829, 2, 2, 6337, 6341, 3, 2, 2, 2, 6338, 6339, 7, 828, 2, 2, 6339, 6341, 7, 829, 2, 2, 6340, 6327, 3, 2, 2, 2, 6340, 6338, 3, 2, 2, 2, 6341, 6345, 3, 2, 2, 2, 6342, 6346, 5, 478, 240, 2, 6343, 6346, 5, 480, 241, 2, 6344, 6346, 5, 482, 242, 2, 6345, 6342, 3, 2, 2, 2, 6345, 6343, 3, 2, 2, 2, 6345, 6344, 3, 2, 2, 2, 6346, 6348, 3, 2, 2, 2, 6347, 6349, 7, 831, 2, 2, 6348, 6347, 3, 2, 2, 2, 6348, 6349, 3, 2, 2, 2, 6349, 477, 3, 2, 2, 2, 6350, 6351, 7, 283, 2, 2, 6351, 6361, 7, 339, 2, 2, 6352, 6353, 7, 377, 2, 2, 6353, 6358, 5, 488, 245, 2, 6354, 6355, 7, 830, 2, 2, 6355, 6357, 5, 488, 245, 2, 6356, 6354, 3, 2, 2, 2, 6357, 6360, 3, 2, 2, 2, 6358, 6356, 3, 2, 2, 2, 6358, 6359, 3, 2, 2, 2, 6359, 6362, 3, 2, 2, 2, 6360, 6358, 3, 2, 2, 2, 6361, 6352, 3, 2, 2, 2, 6361, 6362, 3, 2, 2, 2, 6362, 6364, 3, 2, 2, 2, 6363, 6365, 7, 16, 2, 2, 6364, 6363, 3, 2, 2, 2, 6364, 6365, 3, 2, 2, 2, 6365, 6366, 3, 2, 2, 2, 6366, 6372, 7, 282, 2, 2, 6367, 6368, 7, 828, 2, 2, 6368, 6369, 5, 446, 224, 2, 6369, 6370, 7, 829, 2, 2, 6370, 6373, 3, 2, 2, 2, 6371, 6373, 5, 446, 224, 2, 6372, 6367, 3, 2, 2, 2, 6372, 6371, 3, 2, 2, 2, 6373, 479, 3, 2, 2, 2, 6374, 6375, 7, 283, 2, 2, 6375, 6376, 7, 801, 2, 2, 6376, 6386, 5, 690, 346, 2, 6377, 6378, 7, 377, 2, 2, 6378, 6383, 5, 488, 245, 2, 6379, 6380, 7, 830, 2, 2, 6380, 6382, 5, 488, 245, 2, 6381, 6379, 3, 2, 2, 2, 6382, 6385, 3, 2, 2, 2, 6383, 6381, 3, 2, 2, 2, 6383, 6384, 3, 2, 2, 2, 6384, 6387, 3, 2, 2, 2, 6385, 6383, 3, 2, 2, 2, 6386, 6377, 3, 2, 2, 2, 6386, 6387, 3, 2, 2, 2, 6387, 6389, 3, 2, 2, 2, 6388, 6390, 7, 16, 2, 2, 6389, 6388, 3, 2, 2, 2, 6389, 6390, 3, 2, 2, 2, 6390, 6391, 3, 2, 2, 2, 6391, 6395, 7, 28, 2, 2, 6392, 6394, 5, 8, 5, 2, 6393, 6392, 3, 2, 2, 2, 6394, 6397, 3, 2, 2, 2, 6395, 6393, 3, 2, 2, 2, 6395, 6396, 3, 2, 2, 2, 6396, 6398, 3, 2, 2, 2, 6397, 6395, 3, 2, 2, 2, 6398, 6400, 7, 282, 2, 2, 6399, 6401, 7, 831, 2, 2, 6400, 6399, 3, 2, 2, 2, 6400, 6401, 3, 2, 2, 2, 6401, 6402, 3, 2, 2, 2, 6402, 6404, 7, 108, 2, 2, 6403, 6405, 7, 831, 2, 2, 6404, 6403, 3, 2, 2, 2, 6404, 6405, 3, 2, 2, 2, 6405, 481, 3, 2, 2, 2, 6406, 6407, 7, 283, 2, 2, 6407, 6417, 5, 958, 480, 2, 6408, 6409, 7, 377, 2, 2, 6409, 6414, 5, 488, 245, 2, 6410, 6411, 7, 830, 2, 2, 6411, 6413, 5, 488, 245, 2, 6412, 6410, 3, 2, 2, 2, 6413, 6416, 3, 2, 2, 2, 6414, 6412, 3, 2, 2, 2, 6414, 6415, 3, 2, 2, 2, 6415, 6418, 3, 2, 2, 2, 6416, 6414, 3, 2, 2, 2, 6417, 6408, 3, 2, 2, 2, 6417, 6418, 3, 2, 2, 2, 6418, 6420, 3, 2, 2, 2, 6419, 6421, 7, 16, 2, 2, 6420, 6419, 3, 2, 2, 2, 6420, 6421, 3, 2, 2, 2, 6421, 6422, 3, 2, 2, 2, 6422, 6426, 7, 28, 2, 2, 6423, 6425, 5, 8, 5, 2, 6424, 6423, 3, 2, 2, 2, 6425, 6428, 3, 2, 2, 2, 6426, 6424, 3, 2, 2, 2, 6426, 6427, 3, 2, 2, 2, 6427, 6429, 3, 2, 2, 2, 6428, 6426, 3, 2, 2, 2, 6429, 6430, 7, 282, 2, 2, 6430, 6432, 5, 728, 365, 2, 6431, 6433, 7, 831, 2, 2, 6432, 6431, 3, 2, 2, 2, 6432, 6433, 3, 2, 2, 2, 6433, 6434, 3, 2, 2, 2, 6434, 6435, 7, 108, 2, 2, 6435, 483, 3, 2, 2, 2, 6436, 6440, 7, 801, 2, 2, 6437, 6438, 5, 966, 484, 2, 6438, 6439, 7, 823, 2, 2, 6439, 6441, 3, 2, 2, 2, 6440, 6437, 3, 2, 2, 2, 6440, 6441, 3, 2, 2, 2, 6441, 6443, 3, 2, 2, 2, 6442, 6444, 7, 16, 2, 2, 6443, 6442, 3, 2, 2, 2, 6443, 6444, 3, 2, 2, 2, 6444, 6445, 3, 2, 2, 2, 6445, 6447, 5, 958, 480, 2, 6446, 6448, 7, 368, 2, 2, 6447, 6446, 3, 2, 2, 2, 6447, 6448, 3, 2, 2, 2, 6448, 6451, 3, 2, 2, 2, 6449, 6450, 7, 810, 2, 2, 6450, 6452, 5, 960, 481, 2, 6451, 6449, 3, 2, 2, 2, 6451, 6452, 3, 2, 2, 2, 6452, 6454, 3, 2, 2, 2, 6453, 6455, 9, 59, 2, 2, 6454, 6453, 3, 2, 2, 2, 6454, 6455, 3, 2, 2, 2, 6455, 485, 3, 2, 2, 2, 6456, 6460, 7, 492, 2, 2, 6457, 6460, 7, 675, 2, 2, 6458, 6460, 5, 686, 344, 2, 6459, 6456, 3, 2, 2, 2, 6459, 6457, 3, 2, 2, 2, 6459, 6458, 3, 2, 2, 2, 6460, 487, 3, 2, 2, 2, 6461, 6474, 7, 492, 2, 2, 6462, 6474, 7, 702, 2, 2, 6463, 6464, 7, 283, 2, 2, 6464, 6465, 7, 223, 2, 2, 6465, 6466, 7, 229, 2, 2, 6466, 6467, 7, 223, 2, 2, 6467, 6474, 7, 544, 2, 2, 6468, 6469, 7, 40, 2, 2, 6469, 6470, 7, 229, 2, 2, 6470, 6471, 7, 223, 2, 2, 6471, 6474, 7, 544, 2, 2, 6472, 6474, 5, 686, 344, 2, 6473, 6461, 3, 2, 2, 2, 6473, 6462, 3, 2, 2, 2, 6473, 6463, 3, 2, 2, 2, 6473, 6468, 3, 2, 2, 2, 6473, 6472, 3, 2, 2, 2, 6474, 489, 3, 2, 2, 2, 6475, 6476, 7, 73, 2, 2, 6476, 6477, 7, 328, 2, 2, 6477, 6478, 5, 966, 484, 2, 6478, 6479, 7, 229, 2, 2, 6479, 6480, 5, 824, 413, 2, 6480, 6481, 7, 828, 2, 2, 6481, 6482, 5, 926, 464, 2, 6482, 6501, 7, 829, 2, 2, 6483, 6489, 7, 377, 2, 2, 6484, 6490, 7, 520, 2, 2, 6485, 6486, 7, 701, 2, 2, 6486, 6487, 7, 802, 2, 2, 6487, 6490, 9, 60, 2, 2, 6488, 6490, 7, 735, 2, 2, 6489, 6484, 3, 2, 2, 2, 6489, 6485, 3, 2, 2, 2, 6489, 6488, 3, 2, 2, 2, 6490, 6493, 3, 2, 2, 2, 6491, 6492, 7, 830, 2, 2, 6492, 6494, 7, 618, 2, 2, 6493, 6491, 3, 2, 2, 2, 6493, 6494, 3, 2, 2, 2, 6494, 6499, 3, 2, 2, 2, 6495, 6496, 7, 830, 2, 2, 6496, 6497, 7, 542, 2, 2, 6497, 6498, 7, 810, 2, 2, 6498, 6500, 5, 930, 466, 2, 6499, 6495, 3, 2, 2, 2, 6499, 6500, 3, 2, 2, 2, 6500, 6502, 3, 2, 2, 2, 6501, 6483, 3, 2, 2, 2, 6501, 6502, 3, 2, 2, 2, 6502, 6504, 3, 2, 2, 2, 6503, 6505, 7, 831, 2, 2, 6504, 6503, 3, 2, 2, 2, 6504, 6505, 3, 2, 2, 2, 6505, 491, 3, 2, 2, 2, 6506, 6508, 7, 361, 2, 2, 6507, 6509, 9, 61, 2, 2, 6508, 6507, 3, 2, 2, 2, 6508, 6509, 3, 2, 2, 2, 6509, 6510, 3, 2, 2, 2, 6510, 6511, 7, 328, 2, 2, 6511, 6513, 5, 908, 455, 2, 6512, 6514, 5, 966, 484, 2, 6513, 6512, 3, 2, 2, 2, 6513, 6514, 3, 2, 2, 2, 6514, 6518, 3, 2, 2, 2, 6515, 6516, 7, 776, 2, 2, 6516, 6517, 7, 802, 2, 2, 6517, 6519, 7, 367, 2, 2, 6518, 6515, 3, 2, 2, 2, 6518, 6519, 3, 2, 2, 2, 6519, 493, 3, 2, 2, 2, 6520, 6521, 7, 73, 2, 2, 6521, 6522, 7, 339, 2, 2, 6522, 6523, 5, 910, 456, 2, 6523, 6524, 7, 828, 2, 2, 6524, 6526, 5, 696, 349, 2, 6525, 6527, 7, 830, 2, 2, 6526, 6525, 3, 2, 2, 2, 6526, 6527, 3, 2, 2, 2, 6527, 6528, 3, 2, 2, 2, 6528, 6531, 7, 829, 2, 2, 6529, 6530, 7, 569, 2, 2, 6530, 6532, 5, 968, 485, 2, 6531, 6529, 3, 2, 2, 2, 6531, 6532, 3, 2, 2, 2, 6532, 6536, 3, 2, 2, 2, 6533, 6535, 5, 496, 249, 2, 6534, 6533, 3, 2, 2, 2, 6535, 6538, 3, 2, 2, 2, 6536, 6534, 3, 2, 2, 2, 6536, 6537, 3, 2, 2, 2, 6537, 6542, 3, 2, 2, 2, 6538, 6536, 3, 2, 2, 2, 6539, 6540, 7, 229, 2, 2, 6540, 6543, 5, 966, 484, 2, 6541, 6543, 7, 89, 2, 2, 6542, 6539, 3, 2, 2, 2, 6542, 6541, 3, 2, 2, 2, 6542, 6543, 3, 2, 2, 2, 6543, 6547, 3, 2, 2, 2, 6544, 6545, 7, 754, 2, 2, 6545, 6548, 5, 966, 484, 2, 6546, 6548, 7, 89, 2, 2, 6547, 6544, 3, 2, 2, 2, 6547, 6546, 3, 2, 2, 2, 6547, 6548, 3, 2, 2, 2, 6548, 6550, 3, 2, 2, 2, 6549, 6551, 7, 831, 2, 2, 6550, 6549, 3, 2, 2, 2, 6550, 6551, 3, 2, 2, 2, 6551, 495, 3, 2, 2, 2, 6552, 6572, 7, 377, 2, 2, 6553, 6554, 7, 828, 2, 2, 6554, 6559, 5, 714, 358, 2, 6555, 6556, 7, 830, 2, 2, 6556, 6558, 5, 714, 358, 2, 6557, 6555, 3, 2, 2, 2, 6558, 6561, 3, 2, 2, 2, 6559, 6557, 3, 2, 2, 2, 6559, 6560, 3, 2, 2, 2, 6560, 6562, 3, 2, 2, 2, 6561, 6559, 3, 2, 2, 2, 6562, 6563, 7, 829, 2, 2, 6563, 6573, 3, 2, 2, 2, 6564, 6569, 5, 714, 358, 2, 6565, 6566, 7, 830, 2, 2, 6566, 6568, 5, 714, 358, 2, 6567, 6565, 3, 2, 2, 2, 6568, 6571, 3, 2, 2, 2, 6569, 6567, 3, 2, 2, 2, 6569, 6570, 3, 2, 2, 2, 6570, 6573, 3, 2, 2, 2, 6571, 6569, 3, 2, 2, 2, 6572, 6553, 3, 2, 2, 2, 6572, 6564, 3, 2, 2, 2, 6573, 497, 3, 2, 2, 2, 6574, 6575, 7, 73, 2, 2, 6575, 6576, 7, 370, 2, 2, 6576, 6581, 5, 912, 457, 2, 6577, 6578, 7, 828, 2, 2, 6578, 6579, 5, 926, 464, 2, 6579, 6580, 7, 829, 2, 2, 6580, 6582, 3, 2, 2, 2, 6581, 6577, 3, 2, 2, 2, 6581, 6582, 3, 2, 2, 2, 6582, 6592, 3, 2, 2, 2, 6583, 6584, 7, 377, 2, 2, 6584, 6589, 5, 500, 251, 2, 6585, 6586, 7, 830, 2, 2, 6586, 6588, 5, 500, 251, 2, 6587, 6585, 3, 2, 2, 2, 6588, 6591, 3, 2, 2, 2, 6589, 6587, 3, 2, 2, 2, 6589, 6590, 3, 2, 2, 2, 6590, 6593, 3, 2, 2, 2, 6591, 6589, 3, 2, 2, 2, 6592, 6583, 3, 2, 2, 2, 6592, 6593, 3, 2, 2, 2, 6593, 6594, 3, 2, 2, 2, 6594, 6595, 7, 16, 2, 2, 6595, 6599, 5, 446, 224, 2, 6596, 6597, 7, 377, 2, 2, 6597, 6598, 7, 46, 2, 2, 6598, 6600, 7, 236, 2, 2, 6599, 6596, 3, 2, 2, 2, 6599, 6600, 3, 2, 2, 2, 6600, 6602, 3, 2, 2, 2, 6601, 6603, 7, 831, 2, 2, 6602, 6601, 3, 2, 2, 2, 6602, 6603, 3, 2, 2, 2, 6603, 499, 3, 2, 2, 2, 6604, 6605, 9, 62, 2, 2, 6605, 501, 3, 2, 2, 2, 6606, 6607, 7, 10, 2, 2, 6607, 6608, 7, 339, 2, 2, 6608, 6652, 5, 910, 456, 2, 6609, 6610, 7, 315, 2, 2, 6610, 6611, 7, 828, 2, 2, 6611, 6612, 7, 570, 2, 2, 6612, 6613, 7, 810, 2, 2, 6613, 6614, 9, 63, 2, 2, 6614, 6653, 7, 829, 2, 2, 6615, 6616, 7, 4, 2, 2, 6616, 6653, 5, 698, 350, 2, 6617, 6618, 7, 10, 2, 2, 6618, 6619, 7, 56, 2, 2, 6619, 6653, 5, 700, 351, 2, 6620, 6621, 7, 103, 2, 2, 6621, 6622, 7, 56, 2, 2, 6622, 6653, 5, 966, 484, 2, 6623, 6624, 7, 103, 2, 2, 6624, 6625, 7, 61, 2, 2, 6625, 6653, 5, 966, 484, 2, 6626, 6627, 7, 377, 2, 2, 6627, 6628, 7, 46, 2, 2, 6628, 6629, 7, 4, 2, 2, 6629, 6630, 7, 61, 2, 2, 6630, 6631, 5, 966, 484, 2, 6631, 6632, 7, 136, 2, 2, 6632, 6633, 7, 172, 2, 2, 6633, 6634, 7, 828, 2, 2, 6634, 6635, 5, 926, 464, 2, 6635, 6636, 7, 829, 2, 2, 6636, 6637, 7, 270, 2, 2, 6637, 6638, 5, 910, 456, 2, 6638, 6639, 7, 828, 2, 2, 6639, 6640, 5, 926, 464, 2, 6640, 6641, 7, 829, 2, 2, 6641, 6653, 3, 2, 2, 2, 6642, 6643, 7, 46, 2, 2, 6643, 6644, 7, 61, 2, 2, 6644, 6653, 5, 966, 484, 2, 6645, 6646, 9, 23, 2, 2, 6646, 6648, 7, 352, 2, 2, 6647, 6649, 5, 966, 484, 2, 6648, 6647, 3, 2, 2, 2, 6648, 6649, 3, 2, 2, 2, 6649, 6653, 3, 2, 2, 2, 6650, 6651, 7, 673, 2, 2, 6651, 6653, 5, 496, 249, 2, 6652, 6609, 3, 2, 2, 2, 6652, 6615, 3, 2, 2, 2, 6652, 6617, 3, 2, 2, 2, 6652, 6620, 3, 2, 2, 2, 6652, 6623, 3, 2, 2, 2, 6652, 6626, 3, 2, 2, 2, 6652, 6642, 3, 2, 2, 2, 6652, 6645, 3, 2, 2, 2, 6652, 6650, 3, 2, 2, 2, 6653, 6655, 3, 2, 2, 2, 6654, 6656, 7, 831, 2, 2, 6655, 6654, 3, 2, 2, 2, 6655, 6656, 3, 2, 2, 2, 6656, 503, 3, 2, 2, 2, 6657, 6658, 7, 10, 2, 2, 6658, 6661, 7, 84, 2, 2, 6659, 6662, 5, 966, 484, 2, 6660, 6662, 7, 75, 2, 2, 6661, 6659, 3, 2, 2, 2, 6661, 6660, 3, 2, 2, 2, 6662, 6675, 3, 2, 2, 2, 6663, 6664, 7, 602, 2, 2, 6664, 6665, 7, 605, 2, 2, 6665, 6666, 7, 810, 2, 2, 6666, 6676, 5, 966, 484, 2, 6667, 6668, 7, 55, 2, 2, 6668, 6676, 5, 966, 484, 2, 6669, 6670, 7, 315, 2, 2, 6670, 6673, 5, 506, 254, 2, 6671, 6672, 7, 377, 2, 2, 6672, 6674, 5, 576, 289, 2, 6673, 6671, 3, 2, 2, 2, 6673, 6674, 3, 2, 2, 2, 6674, 6676, 3, 2, 2, 2, 6675, 6663, 3, 2, 2, 2, 6675, 6667, 3, 2, 2, 2, 6675, 6669, 3, 2, 2, 2, 6676, 6678, 3, 2, 2, 2, 6677, 6679, 7, 831, 2, 2, 6678, 6677, 3, 2, 2, 2, 6678, 6679, 3, 2, 2, 2, 6679, 505, 3, 2, 2, 2, 6680, 6704, 5, 508, 255, 2, 6681, 6704, 5, 510, 256, 2, 6682, 6704, 5, 514, 258, 2, 6683, 6704, 5, 516, 259, 2, 6684, 6704, 5, 520, 261, 2, 6685, 6704, 5, 546, 274, 2, 6686, 6704, 5, 548, 275, 2, 6687, 6704, 5, 550, 276, 2, 6688, 6704, 5, 552, 277, 2, 6689, 6704, 5, 554, 278, 2, 6690, 6704, 5, 556, 279, 2, 6691, 6704, 5, 558, 280, 2, 6692, 6693, 7, 510, 2, 2, 6693, 6704, 5, 894, 448, 2, 6694, 6704, 5, 560, 281, 2, 6695, 6704, 5, 562, 282, 2, 6696, 6704, 5, 564, 283, 2, 6697, 6704, 5, 566, 284, 2, 6698, 6704, 5, 568, 285, 2, 6699, 6704, 5, 570, 286, 2, 6700, 6704, 5, 572, 287, 2, 6701, 6704, 5, 574, 288, 2, 6702, 6704, 5, 576, 289, 2, 6703, 6680, 3, 2, 2, 2, 6703, 6681, 3, 2, 2, 2, 6703, 6682, 3, 2, 2, 2, 6703, 6683, 3, 2, 2, 2, 6703, 6684, 3, 2, 2, 2, 6703, 6685, 3, 2, 2, 2, 6703, 6686, 3, 2, 2, 2, 6703, 6687, 3, 2, 2, 2, 6703, 6688, 3, 2, 2, 2, 6703, 6689, 3, 2, 2, 2, 6703, 6690, 3, 2, 2, 2, 6703, 6691, 3, 2, 2, 2, 6703, 6692, 3, 2, 2, 2, 6703, 6694, 3, 2, 2, 2, 6703, 6695, 3, 2, 2, 2, 6703, 6696, 3, 2, 2, 2, 6703, 6697, 3, 2, 2, 2, 6703, 6698, 3, 2, 2, 2, 6703, 6699, 3, 2, 2, 2, 6703, 6700, 3, 2, 2, 2, 6703, 6701, 3, 2, 2, 2, 6703, 6702, 3, 2, 2, 2, 6704, 507, 3, 2, 2, 2, 6705, 6706, 7, 410, 2, 2, 6706, 6723, 5, 930, 466, 2, 6707, 6708, 7, 411, 2, 2, 6708, 6723, 7, 226, 2, 2, 6709, 6714, 7, 229, 2, 2, 6710, 6711, 7, 542, 2, 2, 6711, 6712, 7, 810, 2, 2, 6712, 6715, 7, 229, 2, 2, 6713, 6715, 7, 226, 2, 2, 6714, 6710, 3, 2, 2, 2, 6714, 6713, 3, 2, 2, 2, 6715, 6723, 3, 2, 2, 2, 6716, 6717, 7, 412, 2, 2, 6717, 6723, 5, 930, 466, 2, 6718, 6719, 7, 413, 2, 2, 6719, 6723, 5, 930, 466, 2, 6720, 6721, 7, 414, 2, 2, 6721, 6723, 9, 9, 2, 2, 6722, 6705, 3, 2, 2, 2, 6722, 6707, 3, 2, 2, 2, 6722, 6709, 3, 2, 2, 2, 6722, 6716, 3, 2, 2, 2, 6722, 6718, 3, 2, 2, 2, 6722, 6720, 3, 2, 2, 2, 6723, 509, 3, 2, 2, 2, 6724, 6725, 7, 433, 2, 2, 6725, 6741, 7, 810, 2, 2, 6726, 6742, 7, 226, 2, 2, 6727, 6738, 7, 229, 2, 2, 6728, 6733, 5, 512, 257, 2, 6729, 6730, 7, 830, 2, 2, 6730, 6732, 5, 512, 257, 2, 6731, 6729, 3, 2, 2, 2, 6732, 6735, 3, 2, 2, 2, 6733, 6731, 3, 2, 2, 2, 6733, 6734, 3, 2, 2, 2, 6734, 6737, 3, 2, 2, 2, 6735, 6733, 3, 2, 2, 2, 6736, 6728, 3, 2, 2, 2, 6737, 6740, 3, 2, 2, 2, 6738, 6736, 3, 2, 2, 2, 6738, 6739, 3, 2, 2, 2, 6739, 6742, 3, 2, 2, 2, 6740, 6738, 3, 2, 2, 2, 6741, 6726, 3, 2, 2, 2, 6741, 6727, 3, 2, 2, 2, 6742, 511, 3, 2, 2, 2, 6743, 6744, 7, 409, 2, 2, 6744, 6745, 7, 810, 2, 2, 6745, 6750, 5, 930, 466, 2, 6746, 6747, 7, 432, 2, 2, 6747, 6748, 7, 810, 2, 2, 6748, 6750, 9, 64, 2, 2, 6749, 6743, 3, 2, 2, 2, 6749, 6746, 3, 2, 2, 2, 6750, 513, 3, 2, 2, 2, 6751, 6752, 7, 62, 2, 2, 6752, 6753, 7, 810, 2, 2, 6753, 6754, 9, 55, 2, 2, 6754, 515, 3, 2, 2, 2, 6755, 6756, 7, 454, 2, 2, 6756, 6760, 5, 930, 466, 2, 6757, 6758, 7, 455, 2, 2, 6758, 6760, 9, 65, 2, 2, 6759, 6755, 3, 2, 2, 2, 6759, 6757, 3, 2, 2, 2, 6760, 517, 3, 2, 2, 2, 6761, 6762, 7, 10, 2, 2, 6762, 6763, 7, 109, 2, 2, 6763, 6766, 5, 966, 484, 2, 6764, 6765, 7, 20, 2, 2, 6765, 6767, 5, 966, 484, 2, 6766, 6764, 3, 2, 2, 2, 6766, 6767, 3, 2, 2, 2, 6767, 6775, 3, 2, 2, 2, 6768, 6769, 7, 329, 2, 2, 6769, 6773, 7, 810, 2, 2, 6770, 6774, 7, 332, 2, 2, 6771, 6774, 7, 335, 2, 2, 6772, 6774, 7, 482, 2, 2, 6773, 6770, 3, 2, 2, 2, 6773, 6771, 3, 2, 2, 2, 6773, 6772, 3, 2, 2, 2, 6774, 6776, 3, 2, 2, 2, 6775, 6768, 3, 2, 2, 2, 6775, 6776, 3, 2, 2, 2, 6776, 6777, 3, 2, 2, 2, 6777, 6778, 7, 16, 2, 2, 6778, 6779, 7, 343, 2, 2, 6779, 6780, 7, 828, 2, 2, 6780, 6781, 7, 184, 2, 2, 6781, 6782, 7, 810, 2, 2, 6782, 6787, 7, 802, 2, 2, 6783, 6784, 7, 830, 2, 2, 6784, 6785, 7, 183, 2, 2, 6785, 6786, 7, 810, 2, 2, 6786, 6788, 9, 66, 2, 2, 6787, 6783, 3, 2, 2, 2, 6787, 6788, 3, 2, 2, 2, 6788, 6789, 3, 2, 2, 2, 6789, 6899, 7, 829, 2, 2, 6790, 6900, 7, 767, 2, 2, 6791, 6792, 7, 133, 2, 2, 6792, 6793, 7, 311, 2, 2, 6793, 6794, 7, 828, 2, 2, 6794, 6795, 7, 21, 2, 2, 6795, 6812, 7, 810, 2, 2, 6796, 6798, 7, 376, 2, 2, 6797, 6799, 9, 67, 2, 2, 6798, 6797, 3, 2, 2, 2, 6798, 6799, 3, 2, 2, 2, 6799, 6802, 3, 2, 2, 2, 6800, 6801, 7, 43, 2, 2, 6801, 6803, 5, 966, 484, 2, 6802, 6800, 3, 2, 2, 2, 6802, 6803, 3, 2, 2, 2, 6803, 6813, 3, 2, 2, 2, 6804, 6805, 7, 43, 2, 2, 6805, 6807, 5, 966, 484, 2, 6806, 6808, 7, 376, 2, 2, 6807, 6806, 3, 2, 2, 2, 6807, 6808, 3, 2, 2, 2, 6808, 6810, 3, 2, 2, 2, 6809, 6811, 9, 67, 2, 2, 6810, 6809, 3, 2, 2, 2, 6810, 6811, 3, 2, 2, 2, 6811, 6813, 3, 2, 2, 2, 6812, 6796, 3, 2, 2, 2, 6812, 6804, 3, 2, 2, 2, 6813, 6831, 3, 2, 2, 2, 6814, 6816, 7, 830, 2, 2, 6815, 6814, 3, 2, 2, 2, 6815, 6816, 3, 2, 2, 2, 6816, 6817, 3, 2, 2, 2, 6817, 6818, 7, 492, 2, 2, 6818, 6819, 7, 810, 2, 2, 6819, 6829, 9, 68, 2, 2, 6820, 6827, 7, 394, 2, 2, 6821, 6828, 7, 5, 2, 2, 6822, 6828, 7, 666, 2, 2, 6823, 6824, 7, 5, 2, 2, 6824, 6828, 7, 666, 2, 2, 6825, 6826, 7, 666, 2, 2, 6826, 6828, 7, 5, 2, 2, 6827, 6821, 3, 2, 2, 2, 6827, 6822, 3, 2, 2, 2, 6827, 6823, 3, 2, 2, 2, 6827, 6825, 3, 2, 2, 2, 6828, 6830, 3, 2, 2, 2, 6829, 6820, 3, 2, 2, 2, 6829, 6830, 3, 2, 2, 2, 6830, 6832, 3, 2, 2, 2, 6831, 6815, 3, 2, 2, 2, 6831, 6832, 3, 2, 2, 2, 6832, 6839, 3, 2, 2, 2, 6833, 6835, 7, 830, 2, 2, 6834, 6833, 3, 2, 2, 2, 6834, 6835, 3, 2, 2, 2, 6835, 6836, 3, 2, 2, 2, 6836, 6837, 7, 202, 2, 2, 6837, 6838, 7, 810, 2, 2, 6838, 6840, 9, 69, 2, 2, 6839, 6834, 3, 2, 2, 2, 6839, 6840, 3, 2, 2, 2, 6840, 6847, 3, 2, 2, 2, 6841, 6843, 7, 830, 2, 2, 6842, 6841, 3, 2, 2, 2, 6842, 6843, 3, 2, 2, 2, 6843, 6844, 3, 2, 2, 2, 6844, 6845, 7, 203, 2, 2, 6845, 6846, 7, 810, 2, 2, 6846, 6848, 7, 802, 2, 2, 6847, 6842, 3, 2, 2, 2, 6847, 6848, 3, 2, 2, 2, 6848, 6849, 3, 2, 2, 2, 6849, 6900, 7, 829, 2, 2, 6850, 6851, 7, 133, 2, 2, 6851, 6852, 7, 85, 2, 2, 6852, 6853, 7, 828, 2, 2, 6853, 6854, 7, 21, 2, 2, 6854, 6871, 7, 810, 2, 2, 6855, 6857, 7, 376, 2, 2, 6856, 6858, 9, 67, 2, 2, 6857, 6856, 3, 2, 2, 2, 6857, 6858, 3, 2, 2, 2, 6858, 6861, 3, 2, 2, 2, 6859, 6860, 7, 43, 2, 2, 6860, 6862, 5, 966, 484, 2, 6861, 6859, 3, 2, 2, 2, 6861, 6862, 3, 2, 2, 2, 6862, 6872, 3, 2, 2, 2, 6863, 6864, 7, 43, 2, 2, 6864, 6866, 5, 966, 484, 2, 6865, 6867, 7, 376, 2, 2, 6866, 6865, 3, 2, 2, 2, 6866, 6867, 3, 2, 2, 2, 6867, 6869, 3, 2, 2, 2, 6868, 6870, 9, 67, 2, 2, 6869, 6868, 3, 2, 2, 2, 6869, 6870, 3, 2, 2, 2, 6870, 6872, 3, 2, 2, 2, 6871, 6855, 3, 2, 2, 2, 6871, 6863, 3, 2, 2, 2, 6872, 6890, 3, 2, 2, 2, 6873, 6875, 7, 830, 2, 2, 6874, 6873, 3, 2, 2, 2, 6874, 6875, 3, 2, 2, 2, 6875, 6876, 3, 2, 2, 2, 6876, 6877, 7, 492, 2, 2, 6877, 6878, 7, 810, 2, 2, 6878, 6888, 9, 68, 2, 2, 6879, 6886, 7, 394, 2, 2, 6880, 6887, 7, 5, 2, 2, 6881, 6887, 7, 666, 2, 2, 6882, 6883, 7, 5, 2, 2, 6883, 6887, 7, 666, 2, 2, 6884, 6885, 7, 666, 2, 2, 6885, 6887, 7, 5, 2, 2, 6886, 6880, 3, 2, 2, 2, 6886, 6881, 3, 2, 2, 2, 6886, 6882, 3, 2, 2, 2, 6886, 6884, 3, 2, 2, 2, 6887, 6889, 3, 2, 2, 2, 6888, 6879, 3, 2, 2, 2, 6888, 6889, 3, 2, 2, 2, 6889, 6891, 3, 2, 2, 2, 6890, 6874, 3, 2, 2, 2, 6890, 6891, 3, 2, 2, 2, 6891, 6893, 3, 2, 2, 2, 6892, 6894, 7, 830, 2, 2, 6893, 6892, 3, 2, 2, 2, 6893, 6894, 3, 2, 2, 2, 6894, 6895, 3, 2, 2, 2, 6895, 6896, 7, 289, 2, 2, 6896, 6897, 7, 810, 2, 2, 6897, 6898, 9, 70, 2, 2, 6898, 6900, 7, 829, 2, 2, 6899, 6790, 3, 2, 2, 2, 6899, 6791, 3, 2, 2, 2, 6899, 6850, 3, 2, 2, 2, 6900, 519, 3, 2, 2, 2, 6901, 6902, 5, 522, 262, 2, 6902, 521, 3, 2, 2, 2, 6903, 6904, 5, 524, 263, 2, 6904, 6905, 5, 530, 266, 2, 6905, 6910, 3, 2, 2, 2, 6906, 6907, 5, 526, 264, 2, 6907, 6908, 5, 532, 267, 2, 6908, 6910, 3, 2, 2, 2, 6909, 6903, 3, 2, 2, 2, 6909, 6906, 3, 2, 2, 2, 6910, 523, 3, 2, 2, 2, 6911, 6912, 7, 642, 2, 2, 6912, 525, 3, 2, 2, 2, 6913, 6914, 7, 380, 2, 2, 6914, 527, 3, 2, 2, 2, 6915, 6916, 7, 810, 2, 2, 6916, 529, 3, 2, 2, 2, 6917, 6918, 5, 528, 265, 2, 6918, 6919, 5, 536, 269, 2, 6919, 6930, 3, 2, 2, 2, 6920, 6930, 7, 125, 2, 2, 6921, 6930, 7, 135, 2, 2, 6922, 6930, 7, 226, 2, 2, 6923, 6930, 7, 280, 2, 2, 6924, 6925, 7, 297, 2, 2, 6925, 6930, 9, 71, 2, 2, 6926, 6930, 7, 746, 2, 2, 6927, 6928, 7, 758, 2, 2, 6928, 6930, 7, 802, 2, 2, 6929, 6917, 3, 2, 2, 2, 6929, 6920, 3, 2, 2, 2, 6929, 6921, 3, 2, 2, 2, 6929, 6922, 3, 2, 2, 2, 6929, 6923, 3, 2, 2, 2, 6929, 6924, 3, 2, 2, 2, 6929, 6926, 3, 2, 2, 2, 6929, 6927, 3, 2, 2, 2, 6930, 531, 3, 2, 2, 2, 6931, 6932, 5, 528, 265, 2, 6932, 6933, 5, 534, 268, 2, 6933, 6936, 3, 2, 2, 2, 6934, 6936, 7, 226, 2, 2, 6935, 6931, 3, 2, 2, 2, 6935, 6934, 3, 2, 2, 2, 6936, 533, 3, 2, 2, 2, 6937, 6938, 5, 536, 269, 2, 6938, 535, 3, 2, 2, 2, 6939, 6940, 5, 540, 271, 2, 6940, 6941, 5, 544, 273, 2, 6941, 6942, 5, 538, 270, 2, 6942, 6943, 5, 542, 272, 2, 6943, 537, 3, 2, 2, 2, 6944, 6945, 7, 832, 2, 2, 6945, 539, 3, 2, 2, 2, 6946, 6947, 7, 343, 2, 2, 6947, 6948, 7, 832, 2, 2, 6948, 6949, 7, 102, 2, 2, 6949, 541, 3, 2, 2, 2, 6950, 6951, 7, 802, 2, 2, 6951, 543, 3, 2, 2, 2, 6952, 6953, 5, 966, 484, 2, 6953, 6954, 7, 823, 2, 2, 6954, 6955, 5, 544, 273, 2, 6955, 6963, 3, 2, 2, 2, 6956, 6957, 5, 966, 484, 2, 6957, 6958, 7, 823, 2, 2, 6958, 6961, 3, 2, 2, 2, 6959, 6961, 5, 966, 484, 2, 6960, 6956, 3, 2, 2, 2, 6960, 6959, 3, 2, 2, 2, 6961, 6963, 3, 2, 2, 2, 6962, 6952, 3, 2, 2, 2, 6962, 6960, 3, 2, 2, 2, 6963, 545, 3, 2, 2, 2, 6964, 6965, 7, 457, 2, 2, 6965, 6966, 5, 930, 466, 2, 6966, 547, 3, 2, 2, 2, 6967, 6968, 7, 492, 2, 2, 6968, 6969, 5, 930, 466, 2, 6969, 549, 3, 2, 2, 2, 6970, 6971, 9, 72, 2, 2, 6971, 551, 3, 2, 2, 2, 6972, 6973, 9, 73, 2, 2, 6973, 553, 3, 2, 2, 2, 6974, 6975, 9, 74, 2, 2, 6975, 555, 3, 2, 2, 2, 6976, 6977, 7, 470, 2, 2, 6977, 6978, 7, 810, 2, 2, 6978, 6979, 9, 75, 2, 2, 6979, 557, 3, 2, 2, 2, 6980, 6981, 7, 463, 2, 2, 6981, 7006, 5, 930, 466, 2, 6982, 6983, 7, 765, 2, 2, 6983, 7006, 5, 930, 466, 2, 6984, 6985, 7, 468, 2, 2, 6985, 6988, 7, 810, 2, 2, 6986, 6989, 5, 966, 484, 2, 6987, 6989, 7, 806, 2, 2, 6988, 6986, 3, 2, 2, 2, 6988, 6987, 3, 2, 2, 2, 6989, 7006, 3, 2, 2, 2, 6990, 6991, 7, 467, 2, 2, 6991, 6994, 7, 810, 2, 2, 6992, 6995, 5, 966, 484, 2, 6993, 6995, 7, 806, 2, 2, 6994, 6992, 3, 2, 2, 2, 6994, 6993, 3, 2, 2, 2, 6995, 7006, 3, 2, 2, 2, 6996, 6997, 7, 606, 2, 2, 6997, 6998, 7, 810, 2, 2, 6998, 7006, 9, 9, 2, 2, 6999, 7000, 7, 762, 2, 2, 7000, 7001, 7, 810, 2, 2, 7001, 7006, 9, 9, 2, 2, 7002, 7003, 7, 768, 2, 2, 7003, 7004, 7, 810, 2, 2, 7004, 7006, 7, 802, 2, 2, 7005, 6980, 3, 2, 2, 2, 7005, 6982, 3, 2, 2, 2, 7005, 6984, 3, 2, 2, 2, 7005, 6990, 3, 2, 2, 2, 7005, 6996, 3, 2, 2, 2, 7005, 6999, 3, 2, 2, 2, 7005, 7002, 3, 2, 2, 2, 7006, 559, 3, 2, 2, 2, 7007, 7016, 7, 530, 2, 2, 7008, 7009, 7, 415, 2, 2, 7009, 7010, 7, 146, 2, 2, 7010, 7011, 7, 810, 2, 2, 7011, 7014, 5, 966, 484, 2, 7012, 7014, 7, 226, 2, 2, 7013, 7008, 3, 2, 2, 2, 7013, 7012, 3, 2, 2, 2, 7014, 7017, 3, 2, 2, 2, 7015, 7017, 9, 76, 2, 2, 7016, 7013, 3, 2, 2, 2, 7016, 7015, 3, 2, 2, 2, 7017, 561, 3, 2, 2, 2, 7018, 7019, 7, 600, 2, 2, 7019, 7020, 9, 9, 2, 2, 7020, 563, 3, 2, 2, 2, 7021, 7022, 7, 639, 2, 2, 7022, 7023, 9, 77, 2, 2, 7023, 565, 3, 2, 2, 2, 7024, 7025, 7, 676, 2, 2, 7025, 7031, 9, 78, 2, 2, 7026, 7027, 7, 761, 2, 2, 7027, 7031, 5, 930, 466, 2, 7028, 7029, 7, 638, 2, 2, 7029, 7031, 9, 79, 2, 2, 7030, 7024, 3, 2, 2, 2, 7030, 7026, 3, 2, 2, 2, 7030, 7028, 3, 2, 2, 2, 7031, 567, 3, 2, 2, 2, 7032, 7039, 7, 490, 2, 2, 7033, 7039, 7, 481, 2, 2, 7034, 7039, 7, 608, 2, 2, 7035, 7039, 7, 494, 2, 2, 7036, 7037, 7, 534, 2, 2, 7037, 7039, 5, 930, 466, 2, 7038, 7032, 3, 2, 2, 2, 7038, 7033, 3, 2, 2, 2, 7038, 7034, 3, 2, 2, 2, 7038, 7035, 3, 2, 2, 2, 7038, 7036, 3, 2, 2, 2, 7039, 569, 3, 2, 2, 2, 7040, 7041, 7, 396, 2, 2, 7041, 7046, 5, 930, 466, 2, 7042, 7043, 7, 668, 2, 2, 7043, 7046, 9, 9, 2, 2, 7044, 7046, 9, 9, 2, 2, 7045, 7040, 3, 2, 2, 2, 7045, 7042, 3, 2, 2, 2, 7045, 7044, 3, 2, 2, 2, 7046, 571, 3, 2, 2, 2, 7047, 7048, 7, 398, 2, 2, 7048, 7069, 5, 930, 466, 2, 7049, 7050, 7, 399, 2, 2, 7050, 7069, 5, 930, 466, 2, 7051, 7052, 7, 400, 2, 2, 7052, 7069, 5, 930, 466, 2, 7053, 7054, 7, 401, 2, 2, 7054, 7069, 5, 930, 466, 2, 7055, 7056, 7, 404, 2, 2, 7056, 7069, 5, 930, 466, 2, 7057, 7058, 7, 440, 2, 2, 7058, 7059, 7, 810, 2, 2, 7059, 7069, 7, 802, 2, 2, 7060, 7061, 7, 442, 2, 2, 7061, 7069, 5, 930, 466, 2, 7062, 7063, 7, 624, 2, 2, 7063, 7069, 5, 930, 466, 2, 7064, 7065, 7, 662, 2, 2, 7065, 7069, 5, 930, 466, 2, 7066, 7067, 7, 677, 2, 2, 7067, 7069, 5, 930, 466, 2, 7068, 7047, 3, 2, 2, 2, 7068, 7049, 3, 2, 2, 2, 7068, 7051, 3, 2, 2, 2, 7068, 7053, 3, 2, 2, 2, 7068, 7055, 3, 2, 2, 2, 7068, 7057, 3, 2, 2, 2, 7068, 7060, 3, 2, 2, 2, 7068, 7062, 3, 2, 2, 2, 7068, 7064, 3, 2, 2, 2, 7068, 7066, 3, 2, 2, 2, 7069, 573, 3, 2, 2, 2, 7070, 7071, 7, 752, 2, 2, 7071, 7072, 7, 810, 2, 2, 7072, 7073, 7, 802, 2, 2, 7073, 7074, 9, 80, 2, 2, 7074, 575, 3, 2, 2, 2, 7075, 7076, 7, 288, 2, 2, 7076, 7077, 7, 392, 2, 2, 7077, 7082, 7, 802, 2, 2, 7078, 7079, 7, 288, 2, 2, 7079, 7082, 7, 538, 2, 2, 7080, 7082, 7, 613, 2, 2, 7081, 7075, 3, 2, 2, 2, 7081, 7078, 3, 2, 2, 2, 7081, 7080, 3, 2, 2, 2, 7082, 577, 3, 2, 2, 2, 7083, 7084, 7, 103, 2, 2, 7084, 7087, 7, 158, 2, 2, 7085, 7086, 7, 153, 2, 2, 7086, 7088, 7, 119, 2, 2, 7087, 7085, 3, 2, 2, 2, 7087, 7088, 3, 2, 2, 2, 7088, 7105, 3, 2, 2, 2, 7089, 7094, 5, 580, 291, 2, 7090, 7091, 7, 830, 2, 2, 7091, 7093, 5, 580, 291, 2, 7092, 7090, 3, 2, 2, 2, 7093, 7096, 3, 2, 2, 2, 7094, 7092, 3, 2, 2, 2, 7094, 7095, 3, 2, 2, 2, 7095, 7106, 3, 2, 2, 2, 7096, 7094, 3, 2, 2, 2, 7097, 7102, 5, 582, 292, 2, 7098, 7099, 7, 830, 2, 2, 7099, 7101, 5, 582, 292, 2, 7100, 7098, 3, 2, 2, 2, 7101, 7104, 3, 2, 2, 2, 7102, 7100, 3, 2, 2, 2, 7102, 7103, 3, 2, 2, 2, 7103, 7106, 3, 2, 2, 2, 7104, 7102, 3, 2, 2, 2, 7105, 7089, 3, 2, 2, 2, 7105, 7097, 3, 2, 2, 2, 7106, 7108, 3, 2, 2, 2, 7107, 7109, 7, 831, 2, 2, 7108, 7107, 3, 2, 2, 2, 7108, 7109, 3, 2, 2, 2, 7109, 579, 3, 2, 2, 2, 7110, 7111, 5, 966, 484, 2, 7111, 7112, 7, 229, 2, 2, 7112, 7113, 5, 908, 455, 2, 7113, 581, 3, 2, 2, 2, 7114, 7115, 5, 966, 484, 2, 7115, 7116, 7, 823, 2, 2, 7116, 7118, 3, 2, 2, 2, 7117, 7114, 3, 2, 2, 2, 7117, 7118, 3, 2, 2, 2, 7118, 7119, 3, 2, 2, 2, 7119, 7120, 5, 966, 484, 2, 7120, 7121, 7, 823, 2, 2, 7121, 7122, 5, 966, 484, 2, 7122, 583, 3, 2, 2, 2, 7123, 7124, 7, 103, 2, 2, 7124, 7127, 9, 56, 2, 2, 7125, 7126, 7, 153, 2, 2, 7126, 7128, 7, 119, 2, 2, 7127, 7125, 3, 2, 2, 2, 7127, 7128, 3, 2, 2, 2, 7128, 7129, 3, 2, 2, 2, 7129, 7134, 5, 914, 458, 2, 7130, 7131, 7, 830, 2, 2, 7131, 7133, 5, 914, 458, 2, 7132, 7130, 3, 2, 2, 2, 7133, 7136, 3, 2, 2, 2, 7134, 7132, 3, 2, 2, 2, 7134, 7135, 3, 2, 2, 2, 7135, 7138, 3, 2, 2, 2, 7136, 7134, 3, 2, 2, 2, 7137, 7139, 7, 831, 2, 2, 7138, 7137, 3, 2, 2, 2, 7138, 7139, 3, 2, 2, 2, 7139, 585, 3, 2, 2, 2, 7140, 7143, 5, 588, 295, 2, 7141, 7143, 5, 590, 296, 2, 7142, 7140, 3, 2, 2, 2, 7142, 7141, 3, 2, 2, 2, 7143, 587, 3, 2, 2, 2, 7144, 7145, 7, 103, 2, 2, 7145, 7148, 7, 352, 2, 2, 7146, 7147, 7, 153, 2, 2, 7147, 7149, 7, 119, 2, 2, 7148, 7146, 3, 2, 2, 2, 7148, 7149, 3, 2, 2, 2, 7149, 7150, 3, 2, 2, 2, 7150, 7155, 5, 912, 457, 2, 7151, 7152, 7, 830, 2, 2, 7152, 7154, 5, 912, 457, 2, 7153, 7151, 3, 2, 2, 2, 7154, 7157, 3, 2, 2, 2, 7155, 7153, 3, 2, 2, 2, 7155, 7156, 3, 2, 2, 2, 7156, 7159, 3, 2, 2, 2, 7157, 7155, 3, 2, 2, 2, 7158, 7160, 7, 831, 2, 2, 7159, 7158, 3, 2, 2, 2, 7159, 7160, 3, 2, 2, 2, 7160, 589, 3, 2, 2, 2, 7161, 7162, 7, 103, 2, 2, 7162, 7165, 7, 352, 2, 2, 7163, 7164, 7, 153, 2, 2, 7164, 7166, 7, 119, 2, 2, 7165, 7163, 3, 2, 2, 2, 7165, 7166, 3, 2, 2, 2, 7166, 7167, 3, 2, 2, 2, 7167, 7172, 5, 912, 457, 2, 7168, 7169, 7, 830, 2, 2, 7169, 7171, 5, 912, 457, 2, 7170, 7168, 3, 2, 2, 2, 7171, 7174, 3, 2, 2, 2, 7172, 7170, 3, 2, 2, 2, 7172, 7173, 3, 2, 2, 2, 7173, 7175, 3, 2, 2, 2, 7174, 7172, 3, 2, 2, 2, 7175, 7179, 7, 229, 2, 2, 7176, 7180, 7, 84, 2, 2, 7177, 7178, 7, 6, 2, 2, 7178, 7180, 7, 309, 2, 2, 7179, 7176, 3, 2, 2, 2, 7179, 7177, 3, 2, 2, 2, 7180, 7182, 3, 2, 2, 2, 7181, 7183, 7, 831, 2, 2, 7182, 7181, 3, 2, 2, 2, 7182, 7183, 3, 2, 2, 2, 7183, 591, 3, 2, 2, 2, 7184, 7185, 7, 103, 2, 2, 7185, 7188, 7, 141, 2, 2, 7186, 7187, 7, 153, 2, 2, 7187, 7189, 7, 119, 2, 2, 7188, 7186, 3, 2, 2, 2, 7188, 7189, 3, 2, 2, 2, 7189, 7190, 3, 2, 2, 2, 7190, 7195, 5, 914, 458, 2, 7191, 7192, 7, 830, 2, 2, 7192, 7194, 5, 914, 458, 2, 7193, 7191, 3, 2, 2, 2, 7194, 7197, 3, 2, 2, 2, 7195, 7193, 3, 2, 2, 2, 7195, 7196, 3, 2, 2, 2, 7196, 7199, 3, 2, 2, 2, 7197, 7195, 3, 2, 2, 2, 7198, 7200, 7, 831, 2, 2, 7199, 7198, 3, 2, 2, 2, 7199, 7200, 3, 2, 2, 2, 7200, 593, 3, 2, 2, 2, 7201, 7202, 7, 103, 2, 2, 7202, 7212, 7, 328, 2, 2, 7203, 7205, 7, 830, 2, 2, 7204, 7203, 3, 2, 2, 2, 7204, 7205, 3, 2, 2, 2, 7205, 7209, 3, 2, 2, 2, 7206, 7207, 5, 910, 456, 2, 7207, 7208, 7, 823, 2, 2, 7208, 7210, 3, 2, 2, 2, 7209, 7206, 3, 2, 2, 2, 7209, 7210, 3, 2, 2, 2, 7210, 7211, 3, 2, 2, 2, 7211, 7213, 5, 966, 484, 2, 7212, 7204, 3, 2, 2, 2, 7213, 7214, 3, 2, 2, 2, 7214, 7212, 3, 2, 2, 2, 7214, 7215, 3, 2, 2, 2, 7215, 7216, 3, 2, 2, 2, 7216, 7217, 7, 831, 2, 2, 7217, 595, 3, 2, 2, 2, 7218, 7219, 7, 103, 2, 2, 7219, 7222, 7, 339, 2, 2, 7220, 7221, 7, 153, 2, 2, 7221, 7223, 7, 119, 2, 2, 7222, 7220, 3, 2, 2, 2, 7222, 7223, 3, 2, 2, 2, 7223, 7224, 3, 2, 2, 2, 7224, 7226, 5, 910, 456, 2, 7225, 7227, 7, 831, 2, 2, 7226, 7225, 3, 2, 2, 2, 7226, 7227, 3, 2, 2, 2, 7227, 597, 3, 2, 2, 2, 7228, 7229, 7, 103, 2, 2, 7229, 7232, 7, 370, 2, 2, 7230, 7231, 7, 153, 2, 2, 7231, 7233, 7, 119, 2, 2, 7232, 7230, 3, 2, 2, 2, 7232, 7233, 3, 2, 2, 2, 7233, 7234, 3, 2, 2, 2, 7234, 7239, 5, 912, 457, 2, 7235, 7236, 7, 830, 2, 2, 7236, 7238, 5, 912, 457, 2, 7237, 7235, 3, 2, 2, 2, 7238, 7241, 3, 2, 2, 2, 7239, 7237, 3, 2, 2, 2, 7239, 7240, 3, 2, 2, 2, 7240, 7243, 3, 2, 2, 2, 7241, 7239, 3, 2, 2, 2, 7242, 7244, 7, 831, 2, 2, 7243, 7242, 3, 2, 2, 2, 7243, 7244, 3, 2, 2, 2, 7244, 599, 3, 2, 2, 2, 7245, 7246, 7, 73, 2, 2, 7246, 7247, 7, 769, 2, 2, 7247, 7252, 5, 912, 457, 2, 7248, 7249, 7, 139, 2, 2, 7249, 7250, 5, 958, 480, 2, 7250, 7251, 5, 960, 481, 2, 7251, 7253, 3, 2, 2, 2, 7252, 7248, 3, 2, 2, 2, 7252, 7253, 3, 2, 2, 2, 7253, 7260, 3, 2, 2, 2, 7254, 7255, 7, 16, 2, 2, 7255, 7256, 7, 339, 2, 2, 7256, 7257, 7, 828, 2, 2, 7257, 7258, 5, 696, 349, 2, 7258, 7259, 7, 829, 2, 2, 7259, 7261, 3, 2, 2, 2, 7260, 7254, 3, 2, 2, 2, 7260, 7261, 3, 2, 2, 2, 7261, 601, 3, 2, 2, 2, 7262, 7263, 7, 103, 2, 2, 7263, 7266, 7, 769, 2, 2, 7264, 7265, 7, 153, 2, 2, 7265, 7267, 7, 119, 2, 2, 7266, 7264, 3, 2, 2, 2, 7266, 7267, 3, 2, 2, 2, 7267, 7268, 3, 2, 2, 2, 7268, 7269, 5, 912, 457, 2, 7269, 603, 3, 2, 2, 2, 7270, 7273, 5, 606, 304, 2, 7271, 7273, 5, 608, 305, 2, 7272, 7270, 3, 2, 2, 2, 7272, 7271, 3, 2, 2, 2, 7273, 605, 3, 2, 2, 2, 7274, 7275, 7, 233, 2, 2, 7275, 7276, 7, 828, 2, 2, 7276, 7277, 5, 966, 484, 2, 7277, 7278, 7, 830, 2, 2, 7278, 7279, 7, 806, 2, 2, 7279, 7280, 7, 829, 2, 2, 7280, 607, 3, 2, 2, 2, 7281, 7282, 7, 232, 2, 2, 7282, 7283, 7, 828, 2, 2, 7283, 7284, 7, 806, 2, 2, 7284, 7285, 7, 830, 2, 2, 7285, 7286, 7, 806, 2, 2, 7286, 7287, 7, 829, 2, 2, 7287, 7289, 7, 823, 2, 2, 7288, 7290, 5, 966, 484, 2, 7289, 7288, 3, 2, 2, 2, 7289, 7290, 3, 2, 2, 2, 7290, 7291, 3, 2, 2, 2, 7291, 7293, 7, 823, 2, 2, 7292, 7294, 5, 966, 484, 2, 7293, 7292, 3, 2, 2, 2, 7293, 7294, 3, 2, 2, 2, 7294, 7295, 3, 2, 2, 2, 7295, 7296, 7, 823, 2, 2, 7296, 7297, 5, 966, 484, 2, 7297, 609, 3, 2, 2, 2, 7298, 7299, 7, 88, 2, 2, 7299, 7301, 7, 801, 2, 2, 7300, 7302, 7, 16, 2, 2, 7301, 7300, 3, 2, 2, 2, 7301, 7302, 3, 2, 2, 2, 7302, 7303, 3, 2, 2, 2, 7303, 7305, 5, 690, 346, 2, 7304, 7306, 7, 831, 2, 2, 7305, 7304, 3, 2, 2, 2, 7305, 7306, 3, 2, 2, 2, 7306, 7342, 3, 2, 2, 2, 7307, 7308, 7, 88, 2, 2, 7308, 7313, 5, 688, 345, 2, 7309, 7310, 7, 830, 2, 2, 7310, 7312, 5, 688, 345, 2, 7311, 7309, 3, 2, 2, 2, 7312, 7315, 3, 2, 2, 2, 7313, 7311, 3, 2, 2, 2, 7313, 7314, 3, 2, 2, 2, 7314, 7317, 3, 2, 2, 2, 7315, 7313, 3, 2, 2, 2, 7316, 7318, 7, 831, 2, 2, 7317, 7316, 3, 2, 2, 2, 7317, 7318, 3, 2, 2, 2, 7318, 7342, 3, 2, 2, 2, 7319, 7320, 7, 88, 2, 2, 7320, 7322, 7, 801, 2, 2, 7321, 7323, 7, 16, 2, 2, 7322, 7321, 3, 2, 2, 2, 7322, 7323, 3, 2, 2, 2, 7323, 7324, 3, 2, 2, 2, 7324, 7326, 5, 692, 347, 2, 7325, 7327, 7, 831, 2, 2, 7326, 7325, 3, 2, 2, 2, 7326, 7327, 3, 2, 2, 2, 7327, 7342, 3, 2, 2, 2, 7328, 7329, 7, 377, 2, 2, 7329, 7330, 7, 791, 2, 2, 7330, 7331, 7, 828, 2, 2, 7331, 7333, 7, 806, 2, 2, 7332, 7334, 7, 830, 2, 2, 7333, 7332, 3, 2, 2, 2, 7333, 7334, 3, 2, 2, 2, 7334, 7335, 3, 2, 2, 2, 7335, 7336, 7, 16, 2, 2, 7336, 7337, 5, 966, 484, 2, 7337, 7339, 7, 829, 2, 2, 7338, 7340, 7, 831, 2, 2, 7339, 7338, 3, 2, 2, 2, 7339, 7340, 3, 2, 2, 2, 7340, 7342, 3, 2, 2, 2, 7341, 7298, 3, 2, 2, 2, 7341, 7307, 3, 2, 2, 2, 7341, 7319, 3, 2, 2, 2, 7341, 7328, 3, 2, 2, 2, 7342, 611, 3, 2, 2, 2, 7343, 7345, 7, 51, 2, 2, 7344, 7346, 7, 525, 2, 2, 7345, 7344, 3, 2, 2, 2, 7345, 7346, 3, 2, 2, 2, 7346, 7347, 3, 2, 2, 2, 7347, 7349, 5, 928, 465, 2, 7348, 7350, 7, 831, 2, 2, 7349, 7348, 3, 2, 2, 2, 7349, 7350, 3, 2, 2, 2, 7350, 7373, 3, 2, 2, 2, 7351, 7353, 7, 87, 2, 2, 7352, 7354, 7, 525, 2, 2, 7353, 7352, 3, 2, 2, 2, 7353, 7354, 3, 2, 2, 2, 7354, 7356, 3, 2, 2, 2, 7355, 7357, 7, 80, 2, 2, 7356, 7355, 3, 2, 2, 2, 7356, 7357, 3, 2, 2, 2, 7357, 7358, 3, 2, 2, 2, 7358, 7360, 5, 928, 465, 2, 7359, 7361, 7, 831, 2, 2, 7360, 7359, 3, 2, 2, 2, 7360, 7361, 3, 2, 2, 2, 7361, 7373, 3, 2, 2, 2, 7362, 7373, 5, 716, 359, 2, 7363, 7373, 5, 722, 362, 2, 7364, 7366, 7, 231, 2, 2, 7365, 7367, 7, 525, 2, 2, 7366, 7365, 3, 2, 2, 2, 7366, 7367, 3, 2, 2, 2, 7367, 7368, 3, 2, 2, 2, 7368, 7370, 5, 928, 465, 2, 7369, 7371, 7, 831, 2, 2, 7370, 7369, 3, 2, 2, 2, 7370, 7371, 3, 2, 2, 2, 7371, 7373, 3, 2, 2, 2, 7372, 7343, 3, 2, 2, 2, 7372, 7351, 3, 2, 2, 2, 7372, 7362, 3, 2, 2, 2, 7372, 7363, 3, 2, 2, 2, 7372, 7364, 3, 2, 2, 2, 7373, 613, 3, 2, 2, 2, 7374, 7375, 7, 26, 2, 2, 7375, 7376, 7, 84, 2, 2, 7376, 7389, 5, 966, 484, 2, 7377, 7386, 7, 268, 2, 2, 7378, 7380, 7, 830, 2, 2, 7379, 7378, 3, 2, 2, 2, 7379, 7380, 3, 2, 2, 2, 7380, 7381, 3, 2, 2, 2, 7381, 7382, 9, 81, 2, 2, 7382, 7383, 7, 810, 2, 2, 7383, 7385, 7, 806, 2, 2, 7384, 7379, 3, 2, 2, 2, 7385, 7388, 3, 2, 2, 2, 7386, 7384, 3, 2, 2, 2, 7386, 7387, 3, 2, 2, 2, 7387, 7390, 3, 2, 2, 2, 7388, 7386, 3, 2, 2, 2, 7389, 7377, 3, 2, 2, 2, 7389, 7390, 3, 2, 2, 2, 7390, 7399, 3, 2, 2, 2, 7391, 7393, 7, 830, 2, 2, 7392, 7391, 3, 2, 2, 2, 7392, 7393, 3, 2, 2, 2, 7393, 7394, 3, 2, 2, 2, 7394, 7395, 9, 81, 2, 2, 7395, 7396, 7, 810, 2, 2, 7396, 7398, 7, 806, 2, 2, 7397, 7392, 3, 2, 2, 2, 7398, 7401, 3, 2, 2, 2, 7399, 7397, 3, 2, 2, 2, 7399, 7400, 3, 2, 2, 2, 7400, 7425, 3, 2, 2, 2, 7401, 7399, 3, 2, 2, 2, 7402, 7407, 7, 346, 2, 2, 7403, 7405, 7, 830, 2, 2, 7404, 7403, 3, 2, 2, 2, 7404, 7405, 3, 2, 2, 2, 7405, 7406, 3, 2, 2, 2, 7406, 7408, 5, 966, 484, 2, 7407, 7404, 3, 2, 2, 2, 7408, 7409, 3, 2, 2, 2, 7409, 7407, 3, 2, 2, 2, 7409, 7410, 3, 2, 2, 2, 7410, 7426, 3, 2, 2, 2, 7411, 7421, 7, 346, 2, 2, 7412, 7414, 7, 830, 2, 2, 7413, 7412, 3, 2, 2, 2, 7413, 7414, 3, 2, 2, 2, 7414, 7415, 3, 2, 2, 2, 7415, 7416, 9, 82, 2, 2, 7416, 7419, 7, 810, 2, 2, 7417, 7420, 7, 806, 2, 2, 7418, 7420, 5, 966, 484, 2, 7419, 7417, 3, 2, 2, 2, 7419, 7418, 3, 2, 2, 2, 7420, 7422, 3, 2, 2, 2, 7421, 7413, 3, 2, 2, 2, 7422, 7423, 3, 2, 2, 2, 7423, 7421, 3, 2, 2, 2, 7423, 7424, 3, 2, 2, 2, 7424, 7426, 3, 2, 2, 2, 7425, 7402, 3, 2, 2, 2, 7425, 7411, 3, 2, 2, 2, 7426, 7460, 3, 2, 2, 2, 7427, 7428, 7, 205, 2, 2, 7428, 7433, 7, 346, 2, 2, 7429, 7431, 7, 830, 2, 2, 7430, 7429, 3, 2, 2, 2, 7430, 7431, 3, 2, 2, 2, 7431, 7432, 3, 2, 2, 2, 7432, 7434, 5, 966, 484, 2, 7433, 7430, 3, 2, 2, 2, 7434, 7435, 3, 2, 2, 2, 7435, 7433, 3, 2, 2, 2, 7435, 7436, 3, 2, 2, 2, 7436, 7438, 3, 2, 2, 2, 7437, 7427, 3, 2, 2, 2, 7438, 7439, 3, 2, 2, 2, 7439, 7437, 3, 2, 2, 2, 7439, 7440, 3, 2, 2, 2, 7440, 7461, 3, 2, 2, 2, 7441, 7442, 7, 205, 2, 2, 7442, 7452, 7, 346, 2, 2, 7443, 7445, 7, 830, 2, 2, 7444, 7443, 3, 2, 2, 2, 7444, 7445, 3, 2, 2, 2, 7445, 7446, 3, 2, 2, 2, 7446, 7447, 9, 82, 2, 2, 7447, 7450, 7, 810, 2, 2, 7448, 7451, 7, 806, 2, 2, 7449, 7451, 5, 966, 484, 2, 7450, 7448, 3, 2, 2, 2, 7450, 7449, 3, 2, 2, 2, 7451, 7453, 3, 2, 2, 2, 7452, 7444, 3, 2, 2, 2, 7453, 7454, 3, 2, 2, 2, 7454, 7452, 3, 2, 2, 2, 7454, 7455, 3, 2, 2, 2, 7455, 7457, 3, 2, 2, 2, 7456, 7441, 3, 2, 2, 2, 7457, 7458, 3, 2, 2, 2, 7458, 7456, 3, 2, 2, 2, 7458, 7459, 3, 2, 2, 2, 7459, 7461, 3, 2, 2, 2, 7460, 7437, 3, 2, 2, 2, 7460, 7456, 3, 2, 2, 2, 7460, 7461, 3, 2, 2, 2, 7461, 7622, 3, 2, 2, 2, 7462, 7619, 7, 377, 2, 2, 7463, 7465, 7, 830, 2, 2, 7464, 7463, 3, 2, 2, 2, 7464, 7465, 3, 2, 2, 2, 7465, 7466, 3, 2, 2, 2, 7466, 7618, 7, 96, 2, 2, 7467, 7469, 7, 830, 2, 2, 7468, 7467, 3, 2, 2, 2, 7468, 7469, 3, 2, 2, 2, 7469, 7470, 3, 2, 2, 2, 7470, 7618, 7, 72, 2, 2, 7471, 7473, 7, 830, 2, 2, 7472, 7471, 3, 2, 2, 2, 7472, 7473, 3, 2, 2, 2, 7473, 7474, 3, 2, 2, 2, 7474, 7618, 9, 83, 2, 2, 7475, 7477, 7, 830, 2, 2, 7476, 7475, 3, 2, 2, 2, 7476, 7477, 3, 2, 2, 2, 7477, 7478, 3, 2, 2, 2, 7478, 7479, 7, 475, 2, 2, 7479, 7482, 7, 810, 2, 2, 7480, 7483, 7, 806, 2, 2, 7481, 7483, 5, 966, 484, 2, 7482, 7480, 3, 2, 2, 2, 7482, 7481, 3, 2, 2, 2, 7483, 7618, 3, 2, 2, 2, 7484, 7486, 7, 830, 2, 2, 7485, 7484, 3, 2, 2, 2, 7485, 7486, 3, 2, 2, 2, 7486, 7487, 3, 2, 2, 2, 7487, 7488, 7, 605, 2, 2, 7488, 7489, 7, 810, 2, 2, 7489, 7618, 5, 966, 484, 2, 7490, 7492, 7, 830, 2, 2, 7491, 7490, 3, 2, 2, 2, 7491, 7492, 3, 2, 2, 2, 7492, 7493, 3, 2, 2, 2, 7493, 7618, 7, 452, 2, 2, 7494, 7496, 7, 830, 2, 2, 7495, 7494, 3, 2, 2, 2, 7495, 7496, 3, 2, 2, 2, 7496, 7497, 3, 2, 2, 2, 7497, 7618, 7, 132, 2, 2, 7498, 7500, 7, 830, 2, 2, 7499, 7498, 3, 2, 2, 2, 7499, 7500, 3, 2, 2, 2, 7500, 7513, 3, 2, 2, 2, 7501, 7502, 7, 120, 2, 2, 7502, 7505, 7, 810, 2, 2, 7503, 7506, 7, 806, 2, 2, 7504, 7506, 5, 966, 484, 2, 7505, 7503, 3, 2, 2, 2, 7505, 7504, 3, 2, 2, 2, 7506, 7514, 3, 2, 2, 2, 7507, 7508, 7, 281, 2, 2, 7508, 7511, 7, 810, 2, 2, 7509, 7512, 7, 802, 2, 2, 7510, 7512, 5, 966, 484, 2, 7511, 7509, 3, 2, 2, 2, 7511, 7510, 3, 2, 2, 2, 7512, 7514, 3, 2, 2, 2, 7513, 7501, 3, 2, 2, 2, 7513, 7507, 3, 2, 2, 2, 7514, 7618, 3, 2, 2, 2, 7515, 7517, 7, 830, 2, 2, 7516, 7515, 3, 2, 2, 2, 7516, 7517, 3, 2, 2, 2, 7517, 7518, 3, 2, 2, 2, 7518, 7618, 9, 84, 2, 2, 7519, 7521, 7, 830, 2, 2, 7520, 7519, 3, 2, 2, 2, 7520, 7521, 3, 2, 2, 2, 7521, 7522, 3, 2, 2, 2, 7522, 7618, 9, 85, 2, 2, 7523, 7525, 7, 830, 2, 2, 7524, 7523, 3, 2, 2, 2, 7524, 7525, 3, 2, 2, 2, 7525, 7526, 3, 2, 2, 2, 7526, 7618, 9, 86, 2, 2, 7527, 7529, 7, 830, 2, 2, 7528, 7527, 3, 2, 2, 2, 7528, 7529, 3, 2, 2, 2, 7529, 7530, 3, 2, 2, 2, 7530, 7531, 7, 197, 2, 2, 7531, 7534, 7, 810, 2, 2, 7532, 7535, 7, 806, 2, 2, 7533, 7535, 5, 966, 484, 2, 7534, 7532, 3, 2, 2, 2, 7534, 7533, 3, 2, 2, 2, 7535, 7618, 3, 2, 2, 2, 7536, 7538, 7, 830, 2, 2, 7537, 7536, 3, 2, 2, 2, 7537, 7538, 3, 2, 2, 2, 7538, 7539, 3, 2, 2, 2, 7539, 7540, 7, 198, 2, 2, 7540, 7541, 7, 810, 2, 2, 7541, 7618, 7, 806, 2, 2, 7542, 7544, 7, 830, 2, 2, 7543, 7542, 3, 2, 2, 2, 7543, 7544, 3, 2, 2, 2, 7544, 7545, 3, 2, 2, 2, 7545, 7546, 7, 31, 2, 2, 7546, 7549, 7, 810, 2, 2, 7547, 7550, 7, 802, 2, 2, 7548, 7550, 5, 966, 484, 2, 7549, 7547, 3, 2, 2, 2, 7549, 7548, 3, 2, 2, 2, 7550, 7618, 3, 2, 2, 2, 7551, 7553, 7, 830, 2, 2, 7552, 7551, 3, 2, 2, 2, 7552, 7553, 3, 2, 2, 2, 7553, 7554, 3, 2, 2, 2, 7554, 7555, 7, 36, 2, 2, 7555, 7558, 7, 810, 2, 2, 7556, 7559, 7, 802, 2, 2, 7557, 7559, 5, 966, 484, 2, 7558, 7556, 3, 2, 2, 2, 7558, 7557, 3, 2, 2, 2, 7559, 7618, 3, 2, 2, 2, 7560, 7562, 7, 830, 2, 2, 7561, 7560, 3, 2, 2, 2, 7561, 7562, 3, 2, 2, 2, 7562, 7563, 3, 2, 2, 2, 7563, 7564, 7, 191, 2, 2, 7564, 7567, 7, 810, 2, 2, 7565, 7568, 7, 802, 2, 2, 7566, 7568, 5, 966, 484, 2, 7567, 7565, 3, 2, 2, 2, 7567, 7566, 3, 2, 2, 2, 7568, 7618, 3, 2, 2, 2, 7569, 7571, 7, 830, 2, 2, 7570, 7569, 3, 2, 2, 2, 7570, 7571, 3, 2, 2, 2, 7571, 7572, 3, 2, 2, 2, 7572, 7618, 9, 87, 2, 2, 7573, 7575, 7, 830, 2, 2, 7574, 7573, 3, 2, 2, 2, 7574, 7575, 3, 2, 2, 2, 7575, 7576, 3, 2, 2, 2, 7576, 7618, 9, 88, 2, 2, 7577, 7579, 7, 830, 2, 2, 7578, 7577, 3, 2, 2, 2, 7578, 7579, 3, 2, 2, 2, 7579, 7580, 3, 2, 2, 2, 7580, 7618, 7, 277, 2, 2, 7581, 7583, 7, 830, 2, 2, 7582, 7581, 3, 2, 2, 2, 7582, 7583, 3, 2, 2, 2, 7583, 7584, 3, 2, 2, 2, 7584, 7587, 7, 330, 2, 2, 7585, 7586, 7, 810, 2, 2, 7586, 7588, 7, 802, 2, 2, 7587, 7585, 3, 2, 2, 2, 7587, 7588, 3, 2, 2, 2, 7588, 7618, 3, 2, 2, 2, 7589, 7591, 7, 830, 2, 2, 7590, 7589, 3, 2, 2, 2, 7590, 7591, 3, 2, 2, 2, 7591, 7592, 3, 2, 2, 2, 7592, 7618, 9, 89, 2, 2, 7593, 7595, 7, 830, 2, 2, 7594, 7593, 3, 2, 2, 2, 7594, 7595, 3, 2, 2, 2, 7595, 7596, 3, 2, 2, 2, 7596, 7618, 9, 90, 2, 2, 7597, 7599, 7, 830, 2, 2, 7598, 7597, 3, 2, 2, 2, 7598, 7599, 3, 2, 2, 2, 7599, 7600, 3, 2, 2, 2, 7600, 7601, 7, 492, 2, 2, 7601, 7602, 7, 828, 2, 2, 7602, 7603, 7, 394, 2, 2, 7603, 7604, 7, 810, 2, 2, 7604, 7605, 9, 91, 2, 2, 7605, 7606, 7, 830, 2, 2, 7606, 7607, 7, 309, 2, 2, 7607, 7608, 7, 43, 2, 2, 7608, 7615, 7, 810, 2, 2, 7609, 7616, 5, 966, 484, 2, 7610, 7611, 7, 309, 2, 2, 7611, 7612, 7, 18, 2, 2, 7612, 7613, 7, 172, 2, 2, 7613, 7614, 7, 810, 2, 2, 7614, 7616, 5, 966, 484, 2, 7615, 7609, 3, 2, 2, 2, 7615, 7610, 3, 2, 2, 2, 7616, 7618, 3, 2, 2, 2, 7617, 7464, 3, 2, 2, 2, 7617, 7468, 3, 2, 2, 2, 7617, 7472, 3, 2, 2, 2, 7617, 7476, 3, 2, 2, 2, 7617, 7485, 3, 2, 2, 2, 7617, 7491, 3, 2, 2, 2, 7617, 7495, 3, 2, 2, 2, 7617, 7499, 3, 2, 2, 2, 7617, 7516, 3, 2, 2, 2, 7617, 7520, 3, 2, 2, 2, 7617, 7524, 3, 2, 2, 2, 7617, 7528, 3, 2, 2, 2, 7617, 7537, 3, 2, 2, 2, 7617, 7543, 3, 2, 2, 2, 7617, 7552, 3, 2, 2, 2, 7617, 7561, 3, 2, 2, 2, 7617, 7570, 3, 2, 2, 2, 7617, 7574, 3, 2, 2, 2, 7617, 7578, 3, 2, 2, 2, 7617, 7582, 3, 2, 2, 2, 7617, 7590, 3, 2, 2, 2, 7617, 7594, 3, 2, 2, 2, 7617, 7598, 3, 2, 2, 2, 7618, 7621, 3, 2, 2, 2, 7619, 7617, 3, 2, 2, 2, 7619, 7620, 3, 2, 2, 2, 7620, 7623, 3, 2, 2, 2, 7621, 7619, 3, 2, 2, 2, 7622, 7462, 3, 2, 2, 2, 7622, 7623, 3, 2, 2, 2, 7623, 615, 3, 2, 2, 2, 7624, 7625, 7, 26, 2, 2, 7625, 7626, 7, 187, 2, 2, 7626, 7650, 5, 966, 484, 2, 7627, 7632, 7, 346, 2, 2, 7628, 7630, 7, 830, 2, 2, 7629, 7628, 3, 2, 2, 2, 7629, 7630, 3, 2, 2, 2, 7630, 7631, 3, 2, 2, 2, 7631, 7633, 5, 966, 484, 2, 7632, 7629, 3, 2, 2, 2, 7633, 7634, 3, 2, 2, 2, 7634, 7632, 3, 2, 2, 2, 7634, 7635, 3, 2, 2, 2, 7635, 7651, 3, 2, 2, 2, 7636, 7646, 7, 346, 2, 2, 7637, 7639, 7, 830, 2, 2, 7638, 7637, 3, 2, 2, 2, 7638, 7639, 3, 2, 2, 2, 7639, 7640, 3, 2, 2, 2, 7640, 7641, 9, 82, 2, 2, 7641, 7644, 7, 810, 2, 2, 7642, 7645, 7, 806, 2, 2, 7643, 7645, 5, 966, 484, 2, 7644, 7642, 3, 2, 2, 2, 7644, 7643, 3, 2, 2, 2, 7645, 7647, 3, 2, 2, 2, 7646, 7638, 3, 2, 2, 2, 7647, 7648, 3, 2, 2, 2, 7648, 7646, 3, 2, 2, 2, 7648, 7649, 3, 2, 2, 2, 7649, 7651, 3, 2, 2, 2, 7650, 7627, 3, 2, 2, 2, 7650, 7636, 3, 2, 2, 2, 7651, 7685, 3, 2, 2, 2, 7652, 7653, 7, 205, 2, 2, 7653, 7658, 7, 346, 2, 2, 7654, 7656, 7, 830, 2, 2, 7655, 7654, 3, 2, 2, 2, 7655, 7656, 3, 2, 2, 2, 7656, 7657, 3, 2, 2, 2, 7657, 7659, 5, 966, 484, 2, 7658, 7655, 3, 2, 2, 2, 7659, 7660, 3, 2, 2, 2, 7660, 7658, 3, 2, 2, 2, 7660, 7661, 3, 2, 2, 2, 7661, 7663, 3, 2, 2, 2, 7662, 7652, 3, 2, 2, 2, 7663, 7664, 3, 2, 2, 2, 7664, 7662, 3, 2, 2, 2, 7664, 7665, 3, 2, 2, 2, 7665, 7686, 3, 2, 2, 2, 7666, 7667, 7, 205, 2, 2, 7667, 7677, 7, 346, 2, 2, 7668, 7670, 7, 830, 2, 2, 7669, 7668, 3, 2, 2, 2, 7669, 7670, 3, 2, 2, 2, 7670, 7671, 3, 2, 2, 2, 7671, 7672, 9, 82, 2, 2, 7672, 7675, 7, 810, 2, 2, 7673, 7676, 7, 806, 2, 2, 7674, 7676, 5, 966, 484, 2, 7675, 7673, 3, 2, 2, 2, 7675, 7674, 3, 2, 2, 2, 7676, 7678, 3, 2, 2, 2, 7677, 7669, 3, 2, 2, 2, 7678, 7679, 3, 2, 2, 2, 7679, 7677, 3, 2, 2, 2, 7679, 7680, 3, 2, 2, 2, 7680, 7682, 3, 2, 2, 2, 7681, 7666, 3, 2, 2, 2, 7682, 7683, 3, 2, 2, 2, 7683, 7681, 3, 2, 2, 2, 7683, 7684, 3, 2, 2, 2, 7684, 7686, 3, 2, 2, 2, 7685, 7662, 3, 2, 2, 2, 7685, 7681, 3, 2, 2, 2, 7685, 7686, 3, 2, 2, 2, 7686, 7860, 3, 2, 2, 2, 7687, 7857, 7, 377, 2, 2, 7688, 7690, 7, 830, 2, 2, 7689, 7688, 3, 2, 2, 2, 7689, 7690, 3, 2, 2, 2, 7690, 7691, 3, 2, 2, 2, 7691, 7856, 7, 96, 2, 2, 7692, 7694, 7, 830, 2, 2, 7693, 7692, 3, 2, 2, 2, 7693, 7694, 3, 2, 2, 2, 7694, 7695, 3, 2, 2, 2, 7695, 7856, 7, 72, 2, 2, 7696, 7698, 7, 830, 2, 2, 7697, 7696, 3, 2, 2, 2, 7697, 7698, 3, 2, 2, 2, 7698, 7699, 3, 2, 2, 2, 7699, 7856, 9, 83, 2, 2, 7700, 7702, 7, 830, 2, 2, 7701, 7700, 3, 2, 2, 2, 7701, 7702, 3, 2, 2, 2, 7702, 7703, 3, 2, 2, 2, 7703, 7704, 7, 475, 2, 2, 7704, 7707, 7, 810, 2, 2, 7705, 7708, 7, 806, 2, 2, 7706, 7708, 5, 966, 484, 2, 7707, 7705, 3, 2, 2, 2, 7707, 7706, 3, 2, 2, 2, 7708, 7856, 3, 2, 2, 2, 7709, 7711, 7, 830, 2, 2, 7710, 7709, 3, 2, 2, 2, 7710, 7711, 3, 2, 2, 2, 7711, 7712, 3, 2, 2, 2, 7712, 7713, 7, 605, 2, 2, 7713, 7714, 7, 810, 2, 2, 7714, 7856, 5, 966, 484, 2, 7715, 7717, 7, 830, 2, 2, 7716, 7715, 3, 2, 2, 2, 7716, 7717, 3, 2, 2, 2, 7717, 7718, 3, 2, 2, 2, 7718, 7856, 7, 452, 2, 2, 7719, 7721, 7, 830, 2, 2, 7720, 7719, 3, 2, 2, 2, 7720, 7721, 3, 2, 2, 2, 7721, 7722, 3, 2, 2, 2, 7722, 7856, 7, 132, 2, 2, 7723, 7725, 7, 830, 2, 2, 7724, 7723, 3, 2, 2, 2, 7724, 7725, 3, 2, 2, 2, 7725, 7738, 3, 2, 2, 2, 7726, 7727, 7, 120, 2, 2, 7727, 7730, 7, 810, 2, 2, 7728, 7731, 7, 806, 2, 2, 7729, 7731, 5, 966, 484, 2, 7730, 7728, 3, 2, 2, 2, 7730, 7729, 3, 2, 2, 2, 7731, 7739, 3, 2, 2, 2, 7732, 7733, 7, 281, 2, 2, 7733, 7736, 7, 810, 2, 2, 7734, 7737, 7, 802, 2, 2, 7735, 7737, 5, 966, 484, 2, 7736, 7734, 3, 2, 2, 2, 7736, 7735, 3, 2, 2, 2, 7737, 7739, 3, 2, 2, 2, 7738, 7726, 3, 2, 2, 2, 7738, 7732, 3, 2, 2, 2, 7739, 7856, 3, 2, 2, 2, 7740, 7742, 7, 830, 2, 2, 7741, 7740, 3, 2, 2, 2, 7741, 7742, 3, 2, 2, 2, 7742, 7743, 3, 2, 2, 2, 7743, 7856, 9, 84, 2, 2, 7744, 7746, 7, 830, 2, 2, 7745, 7744, 3, 2, 2, 2, 7745, 7746, 3, 2, 2, 2, 7746, 7747, 3, 2, 2, 2, 7747, 7856, 9, 85, 2, 2, 7748, 7750, 7, 830, 2, 2, 7749, 7748, 3, 2, 2, 2, 7749, 7750, 3, 2, 2, 2, 7750, 7751, 3, 2, 2, 2, 7751, 7856, 9, 86, 2, 2, 7752, 7754, 7, 830, 2, 2, 7753, 7752, 3, 2, 2, 2, 7753, 7754, 3, 2, 2, 2, 7754, 7755, 3, 2, 2, 2, 7755, 7756, 7, 197, 2, 2, 7756, 7759, 7, 810, 2, 2, 7757, 7760, 7, 806, 2, 2, 7758, 7760, 5, 966, 484, 2, 7759, 7757, 3, 2, 2, 2, 7759, 7758, 3, 2, 2, 2, 7760, 7856, 3, 2, 2, 2, 7761, 7763, 7, 830, 2, 2, 7762, 7761, 3, 2, 2, 2, 7762, 7763, 3, 2, 2, 2, 7763, 7764, 3, 2, 2, 2, 7764, 7765, 7, 198, 2, 2, 7765, 7766, 7, 810, 2, 2, 7766, 7856, 7, 806, 2, 2, 7767, 7769, 7, 830, 2, 2, 7768, 7767, 3, 2, 2, 2, 7768, 7769, 3, 2, 2, 2, 7769, 7770, 3, 2, 2, 2, 7770, 7771, 7, 31, 2, 2, 7771, 7774, 7, 810, 2, 2, 7772, 7775, 7, 802, 2, 2, 7773, 7775, 5, 966, 484, 2, 7774, 7772, 3, 2, 2, 2, 7774, 7773, 3, 2, 2, 2, 7775, 7856, 3, 2, 2, 2, 7776, 7778, 7, 830, 2, 2, 7777, 7776, 3, 2, 2, 2, 7777, 7778, 3, 2, 2, 2, 7778, 7779, 3, 2, 2, 2, 7779, 7780, 7, 36, 2, 2, 7780, 7783, 7, 810, 2, 2, 7781, 7784, 7, 802, 2, 2, 7782, 7784, 5, 966, 484, 2, 7783, 7781, 3, 2, 2, 2, 7783, 7782, 3, 2, 2, 2, 7784, 7856, 3, 2, 2, 2, 7785, 7787, 7, 830, 2, 2, 7786, 7785, 3, 2, 2, 2, 7786, 7787, 3, 2, 2, 2, 7787, 7788, 3, 2, 2, 2, 7788, 7789, 7, 191, 2, 2, 7789, 7792, 7, 810, 2, 2, 7790, 7793, 7, 802, 2, 2, 7791, 7793, 5, 966, 484, 2, 7792, 7790, 3, 2, 2, 2, 7792, 7791, 3, 2, 2, 2, 7793, 7856, 3, 2, 2, 2, 7794, 7796, 7, 830, 2, 2, 7795, 7794, 3, 2, 2, 2, 7795, 7796, 3, 2, 2, 2, 7796, 7797, 3, 2, 2, 2, 7797, 7856, 9, 87, 2, 2, 7798, 7800, 7, 830, 2, 2, 7799, 7798, 3, 2, 2, 2, 7799, 7800, 3, 2, 2, 2, 7800, 7801, 3, 2, 2, 2, 7801, 7856, 9, 88, 2, 2, 7802, 7804, 7, 830, 2, 2, 7803, 7802, 3, 2, 2, 2, 7803, 7804, 3, 2, 2, 2, 7804, 7805, 3, 2, 2, 2, 7805, 7856, 7, 277, 2, 2, 7806, 7808, 7, 830, 2, 2, 7807, 7806, 3, 2, 2, 2, 7807, 7808, 3, 2, 2, 2, 7808, 7809, 3, 2, 2, 2, 7809, 7812, 7, 330, 2, 2, 7810, 7811, 7, 810, 2, 2, 7811, 7813, 7, 802, 2, 2, 7812, 7810, 3, 2, 2, 2, 7812, 7813, 3, 2, 2, 2, 7813, 7856, 3, 2, 2, 2, 7814, 7816, 7, 830, 2, 2, 7815, 7814, 3, 2, 2, 2, 7815, 7816, 3, 2, 2, 2, 7816, 7817, 3, 2, 2, 2, 7817, 7856, 9, 89, 2, 2, 7818, 7820, 7, 830, 2, 2, 7819, 7818, 3, 2, 2, 2, 7819, 7820, 3, 2, 2, 2, 7820, 7821, 3, 2, 2, 2, 7821, 7856, 9, 90, 2, 2, 7822, 7824, 7, 830, 2, 2, 7823, 7822, 3, 2, 2, 2, 7823, 7824, 3, 2, 2, 2, 7824, 7829, 3, 2, 2, 2, 7825, 7830, 7, 619, 2, 2, 7826, 7827, 7, 732, 2, 2, 7827, 7828, 7, 810, 2, 2, 7828, 7830, 7, 806, 2, 2, 7829, 7825, 3, 2, 2, 2, 7829, 7826, 3, 2, 2, 2, 7830, 7856, 3, 2, 2, 2, 7831, 7833, 7, 830, 2, 2, 7832, 7831, 3, 2, 2, 2, 7832, 7833, 3, 2, 2, 2, 7833, 7834, 3, 2, 2, 2, 7834, 7856, 7, 612, 2, 2, 7835, 7837, 7, 830, 2, 2, 7836, 7835, 3, 2, 2, 2, 7836, 7837, 3, 2, 2, 2, 7837, 7838, 3, 2, 2, 2, 7838, 7839, 7, 492, 2, 2, 7839, 7840, 7, 828, 2, 2, 7840, 7841, 7, 394, 2, 2, 7841, 7842, 7, 810, 2, 2, 7842, 7843, 9, 91, 2, 2, 7843, 7844, 7, 830, 2, 2, 7844, 7845, 7, 309, 2, 2, 7845, 7846, 7, 43, 2, 2, 7846, 7853, 7, 810, 2, 2, 7847, 7854, 5, 966, 484, 2, 7848, 7849, 7, 309, 2, 2, 7849, 7850, 7, 18, 2, 2, 7850, 7851, 7, 172, 2, 2, 7851, 7852, 7, 810, 2, 2, 7852, 7854, 5, 966, 484, 2, 7853, 7847, 3, 2, 2, 2, 7853, 7848, 3, 2, 2, 2, 7854, 7856, 3, 2, 2, 2, 7855, 7689, 3, 2, 2, 2, 7855, 7693, 3, 2, 2, 2, 7855, 7697, 3, 2, 2, 2, 7855, 7701, 3, 2, 2, 2, 7855, 7710, 3, 2, 2, 2, 7855, 7716, 3, 2, 2, 2, 7855, 7720, 3, 2, 2, 2, 7855, 7724, 3, 2, 2, 2, 7855, 7741, 3, 2, 2, 2, 7855, 7745, 3, 2, 2, 2, 7855, 7749, 3, 2, 2, 2, 7855, 7753, 3, 2, 2, 2, 7855, 7762, 3, 2, 2, 2, 7855, 7768, 3, 2, 2, 2, 7855, 7777, 3, 2, 2, 2, 7855, 7786, 3, 2, 2, 2, 7855, 7795, 3, 2, 2, 2, 7855, 7799, 3, 2, 2, 2, 7855, 7803, 3, 2, 2, 2, 7855, 7807, 3, 2, 2, 2, 7855, 7815, 3, 2, 2, 2, 7855, 7819, 3, 2, 2, 2, 7855, 7823, 3, 2, 2, 2, 7855, 7832, 3, 2, 2, 2, 7855, 7836, 3, 2, 2, 2, 7856, 7859, 3, 2, 2, 2, 7857, 7855, 3, 2, 2, 2, 7857, 7858, 3, 2, 2, 2, 7858, 7861, 3, 2, 2, 2, 7859, 7857, 3, 2, 2, 2, 7860, 7687, 3, 2, 2, 2, 7860, 7861, 3, 2, 2, 2, 7861, 617, 3, 2, 2, 2, 7862, 7863, 7, 26, 2, 2, 7863, 7864, 7, 43, 2, 2, 7864, 7865, 5, 966, 484, 2, 7865, 7866, 7, 346, 2, 2, 7866, 7867, 7, 129, 2, 2, 7867, 7868, 7, 810, 2, 2, 7868, 7900, 7, 806, 2, 2, 7869, 7870, 7, 377, 2, 2, 7870, 7871, 7, 652, 2, 2, 7871, 7872, 7, 172, 2, 2, 7872, 7895, 7, 828, 2, 2, 7873, 7875, 7, 830, 2, 2, 7874, 7873, 3, 2, 2, 2, 7874, 7875, 3, 2, 2, 2, 7875, 7876, 3, 2, 2, 2, 7876, 7877, 7, 129, 2, 2, 7877, 7878, 7, 810, 2, 2, 7878, 7896, 7, 806, 2, 2, 7879, 7881, 7, 830, 2, 2, 7880, 7879, 3, 2, 2, 2, 7880, 7881, 3, 2, 2, 2, 7881, 7882, 3, 2, 2, 2, 7882, 7883, 7, 492, 2, 2, 7883, 7884, 7, 38, 2, 2, 7884, 7885, 7, 244, 2, 2, 7885, 7886, 7, 810, 2, 2, 7886, 7896, 7, 806, 2, 2, 7887, 7889, 7, 830, 2, 2, 7888, 7887, 3, 2, 2, 2, 7888, 7889, 3, 2, 2, 2, 7889, 7890, 3, 2, 2, 2, 7890, 7891, 7, 465, 2, 2, 7891, 7892, 7, 38, 2, 2, 7892, 7893, 7, 244, 2, 2, 7893, 7894, 7, 810, 2, 2, 7894, 7896, 7, 806, 2, 2, 7895, 7874, 3, 2, 2, 2, 7895, 7880, 3, 2, 2, 2, 7895, 7888, 3, 2, 2, 2, 7896, 7897, 3, 2, 2, 2, 7897, 7895, 3, 2, 2, 2, 7897, 7898, 3, 2, 2, 2, 7898, 7899, 3, 2, 2, 2, 7899, 7901, 7, 829, 2, 2, 7900, 7869, 3, 2, 2, 2, 7900, 7901, 3, 2, 2, 2, 7901, 619, 3, 2, 2, 2, 7902, 7903, 7, 26, 2, 2, 7903, 7904, 7, 189, 2, 2, 7904, 7905, 7, 172, 2, 2, 7905, 7906, 7, 346, 2, 2, 7906, 7907, 7, 129, 2, 2, 7907, 7908, 7, 810, 2, 2, 7908, 7909, 7, 806, 2, 2, 7909, 7910, 7, 492, 2, 2, 7910, 7911, 7, 38, 2, 2, 7911, 7912, 7, 244, 2, 2, 7912, 7913, 7, 810, 2, 2, 7913, 7914, 7, 806, 2, 2, 7914, 621, 3, 2, 2, 2, 7915, 7916, 7, 26, 2, 2, 7916, 7917, 7, 310, 2, 2, 7917, 7918, 7, 189, 2, 2, 7918, 7919, 7, 172, 2, 2, 7919, 7920, 7, 346, 2, 2, 7920, 7921, 7, 129, 2, 2, 7921, 7922, 7, 810, 2, 2, 7922, 7923, 7, 806, 2, 2, 7923, 7924, 7, 492, 2, 2, 7924, 7925, 7, 38, 2, 2, 7925, 7926, 7, 244, 2, 2, 7926, 7927, 7, 810, 2, 2, 7927, 7928, 7, 806, 2, 2, 7928, 623, 3, 2, 2, 2, 7929, 7933, 7, 175, 2, 2, 7930, 7934, 5, 626, 314, 2, 7931, 7934, 5, 628, 315, 2, 7932, 7934, 5, 630, 316, 2, 7933, 7930, 3, 2, 2, 2, 7933, 7931, 3, 2, 2, 2, 7933, 7932, 3, 2, 2, 2, 7934, 625, 3, 2, 2, 2, 7935, 7938, 9, 24, 2, 2, 7936, 7938, 7, 775, 2, 2, 7937, 7935, 3, 2, 2, 2, 7937, 7936, 3, 2, 2, 2, 7938, 7941, 3, 2, 2, 2, 7939, 7940, 7, 377, 2, 2, 7940, 7942, 7, 737, 2, 2, 7941, 7939, 3, 2, 2, 2, 7941, 7942, 3, 2, 2, 2, 7942, 627, 3, 2, 2, 2, 7943, 7944, 7, 659, 2, 2, 7944, 7945, 7, 221, 2, 2, 7945, 7948, 7, 744, 2, 2, 7946, 7949, 7, 6, 2, 2, 7947, 7949, 7, 802, 2, 2, 7948, 7946, 3, 2, 2, 2, 7948, 7947, 3, 2, 2, 2, 7949, 629, 3, 2, 2, 2, 7950, 7951, 7, 330, 2, 2, 7951, 7952, 7, 550, 2, 2, 7952, 7953, 7, 802, 2, 2, 7953, 631, 3, 2, 2, 2, 7954, 7955, 7, 118, 2, 2, 7955, 7956, 5, 634, 318, 2, 7956, 633, 3, 2, 2, 2, 7957, 7958, 7, 801, 2, 2, 7958, 7960, 7, 810, 2, 2, 7959, 7957, 3, 2, 2, 2, 7959, 7960, 3, 2, 2, 2, 7960, 7963, 3, 2, 2, 2, 7961, 7964, 5, 918, 460, 2, 7962, 7964, 5, 728, 365, 2, 7963, 7961, 3, 2, 2, 2, 7963, 7962, 3, 2, 2, 2, 7964, 7973, 3, 2, 2, 2, 7965, 7970, 5, 636, 319, 2, 7966, 7967, 7, 830, 2, 2, 7967, 7969, 5, 636, 319, 2, 7968, 7966, 3, 2, 2, 2, 7969, 7972, 3, 2, 2, 2, 7970, 7968, 3, 2, 2, 2, 7970, 7971, 3, 2, 2, 2, 7971, 7974, 3, 2, 2, 2, 7972, 7970, 3, 2, 2, 2, 7973, 7965, 3, 2, 2, 2, 7973, 7974, 3, 2, 2, 2, 7974, 7976, 3, 2, 2, 2, 7975, 7977, 7, 831, 2, 2, 7976, 7975, 3, 2, 2, 2, 7976, 7977, 3, 2, 2, 2, 7977, 8000, 3, 2, 2, 2, 7978, 7979, 7, 828, 2, 2, 7979, 7984, 5, 638, 320, 2, 7980, 7981, 7, 836, 2, 2, 7981, 7983, 5, 638, 320, 2, 7982, 7980, 3, 2, 2, 2, 7983, 7986, 3, 2, 2, 2, 7984, 7982, 3, 2, 2, 2, 7984, 7985, 3, 2, 2, 2, 7985, 7987, 3, 2, 2, 2, 7986, 7984, 3, 2, 2, 2, 7987, 7994, 7, 829, 2, 2, 7988, 7990, 7, 16, 2, 2, 7989, 7988, 3, 2, 2, 2, 7989, 7990, 3, 2, 2, 2, 7990, 7991, 3, 2, 2, 2, 7991, 7992, 9, 92, 2, 2, 7992, 7993, 7, 810, 2, 2, 7993, 7995, 7, 806, 2, 2, 7994, 7989, 3, 2, 2, 2, 7994, 7995, 3, 2, 2, 2, 7995, 7997, 3, 2, 2, 2, 7996, 7998, 7, 831, 2, 2, 7997, 7996, 3, 2, 2, 2, 7997, 7998, 3, 2, 2, 2, 7998, 8000, 3, 2, 2, 2, 7999, 7959, 3, 2, 2, 2, 7999, 7978, 3, 2, 2, 2, 8000, 635, 3, 2, 2, 2, 8001, 8002, 7, 801, 2, 2, 8002, 8004, 7, 810, 2, 2, 8003, 8001, 3, 2, 2, 2, 8003, 8004, 3, 2, 2, 2, 8004, 8014, 3, 2, 2, 2, 8005, 8008, 5, 726, 364, 2, 8006, 8008, 5, 966, 484, 2, 8007, 8005, 3, 2, 2, 2, 8007, 8006, 3, 2, 2, 2, 8008, 8010, 3, 2, 2, 2, 8009, 8011, 9, 93, 2, 2, 8010, 8009, 3, 2, 2, 2, 8010, 8011, 3, 2, 2, 2, 8011, 8015, 3, 2, 2, 2, 8012, 8015, 7, 89, 2, 2, 8013, 8015, 7, 223, 2, 2, 8014, 8007, 3, 2, 2, 2, 8014, 8012, 3, 2, 2, 2, 8014, 8013, 3, 2, 2, 2, 8015, 637, 3, 2, 2, 2, 8016, 8017, 9, 3, 2, 2, 8017, 639, 3, 2, 2, 2, 8018, 8020, 5, 686, 344, 2, 8019, 8021, 7, 831, 2, 2, 8020, 8019, 3, 2, 2, 2, 8020, 8021, 3, 2, 2, 2, 8021, 8078, 3, 2, 2, 2, 8022, 8034, 7, 145, 2, 2, 8023, 8025, 7, 6, 2, 2, 8024, 8026, 7, 654, 2, 2, 8025, 8024, 3, 2, 2, 2, 8025, 8026, 3, 2, 2, 2, 8026, 8035, 3, 2, 2, 2, 8027, 8032, 5, 666, 334, 2, 8028, 8029, 7, 828, 2, 2, 8029, 8030, 5, 926, 464, 2, 8030, 8031, 7, 829, 2, 2, 8031, 8033, 3, 2, 2, 2, 8032, 8028, 3, 2, 2, 2, 8032, 8033, 3, 2, 2, 2, 8033, 8035, 3, 2, 2, 2, 8034, 8023, 3, 2, 2, 2, 8034, 8027, 3, 2, 2, 2, 8035, 8038, 3, 2, 2, 2, 8036, 8037, 7, 229, 2, 2, 8037, 8039, 5, 910, 456, 2, 8038, 8036, 3, 2, 2, 2, 8038, 8039, 3, 2, 2, 2, 8039, 8040, 3, 2, 2, 2, 8040, 8041, 7, 346, 2, 2, 8041, 8046, 5, 966, 484, 2, 8042, 8043, 7, 830, 2, 2, 8043, 8045, 5, 966, 484, 2, 8044, 8042, 3, 2, 2, 2, 8045, 8048, 3, 2, 2, 2, 8046, 8044, 3, 2, 2, 2, 8046, 8047, 3, 2, 2, 2, 8047, 8052, 3, 2, 2, 2, 8048, 8046, 3, 2, 2, 2, 8049, 8050, 7, 377, 2, 2, 8050, 8051, 7, 145, 2, 2, 8051, 8053, 7, 236, 2, 2, 8052, 8049, 3, 2, 2, 2, 8052, 8053, 3, 2, 2, 2, 8053, 8056, 3, 2, 2, 2, 8054, 8055, 7, 16, 2, 2, 8055, 8057, 5, 966, 484, 2, 8056, 8054, 3, 2, 2, 2, 8056, 8057, 3, 2, 2, 2, 8057, 8059, 3, 2, 2, 2, 8058, 8060, 7, 831, 2, 2, 8059, 8058, 3, 2, 2, 2, 8059, 8060, 3, 2, 2, 2, 8060, 8078, 3, 2, 2, 2, 8061, 8068, 7, 284, 2, 2, 8062, 8063, 7, 828, 2, 2, 8063, 8064, 7, 377, 2, 2, 8064, 8065, 7, 445, 2, 2, 8065, 8066, 7, 810, 2, 2, 8066, 8067, 7, 801, 2, 2, 8067, 8069, 7, 829, 2, 2, 8068, 8062, 3, 2, 2, 2, 8068, 8069, 3, 2, 2, 2, 8069, 8071, 3, 2, 2, 2, 8070, 8072, 7, 831, 2, 2, 8071, 8070, 3, 2, 2, 2, 8071, 8072, 3, 2, 2, 2, 8072, 8078, 3, 2, 2, 2, 8073, 8078, 5, 652, 327, 2, 8074, 8078, 5, 654, 328, 2, 8075, 8078, 5, 656, 329, 2, 8076, 8078, 5, 642, 322, 2, 8077, 8018, 3, 2, 2, 2, 8077, 8022, 3, 2, 2, 2, 8077, 8061, 3, 2, 2, 2, 8077, 8073, 3, 2, 2, 2, 8077, 8074, 3, 2, 2, 2, 8077, 8075, 3, 2, 2, 2, 8077, 8076, 3, 2, 2, 2, 8078, 641, 3, 2, 2, 2, 8079, 8080, 7, 73, 2, 2, 8080, 8081, 7, 43, 2, 2, 8081, 8084, 5, 966, 484, 2, 8082, 8083, 7, 20, 2, 2, 8083, 8085, 5, 966, 484, 2, 8084, 8082, 3, 2, 2, 2, 8084, 8085, 3, 2, 2, 2, 8085, 8089, 3, 2, 2, 2, 8086, 8087, 7, 139, 2, 2, 8087, 8090, 5, 644, 323, 2, 8088, 8090, 5, 648, 325, 2, 8089, 8086, 3, 2, 2, 2, 8089, 8088, 3, 2, 2, 2, 8090, 8097, 3, 2, 2, 2, 8091, 8092, 7, 386, 2, 2, 8092, 8093, 7, 133, 2, 2, 8093, 8094, 7, 28, 2, 2, 8094, 8095, 7, 478, 2, 2, 8095, 8096, 7, 810, 2, 2, 8096, 8098, 9, 9, 2, 2, 8097, 8091, 3, 2, 2, 2, 8097, 8098, 3, 2, 2, 2, 8098, 643, 3, 2, 2, 2, 8099, 8100, 7, 405, 2, 2, 8100, 8117, 5, 966, 484, 2, 8101, 8103, 7, 496, 2, 2, 8102, 8101, 3, 2, 2, 2, 8102, 8103, 3, 2, 2, 2, 8103, 8104, 3, 2, 2, 2, 8104, 8105, 7, 129, 2, 2, 8105, 8106, 7, 810, 2, 2, 8106, 8114, 7, 806, 2, 2, 8107, 8108, 7, 377, 2, 2, 8108, 8109, 7, 652, 2, 2, 8109, 8110, 7, 172, 2, 2, 8110, 8111, 7, 828, 2, 2, 8111, 8112, 5, 646, 324, 2, 8112, 8113, 7, 829, 2, 2, 8113, 8115, 3, 2, 2, 2, 8114, 8107, 3, 2, 2, 2, 8114, 8115, 3, 2, 2, 2, 8115, 8117, 3, 2, 2, 2, 8116, 8099, 3, 2, 2, 2, 8116, 8102, 3, 2, 2, 2, 8117, 645, 3, 2, 2, 2, 8118, 8119, 9, 94, 2, 2, 8119, 8120, 7, 810, 2, 2, 8120, 8127, 7, 806, 2, 2, 8121, 8122, 7, 830, 2, 2, 8122, 8123, 9, 95, 2, 2, 8123, 8124, 7, 38, 2, 2, 8124, 8125, 7, 244, 2, 2, 8125, 8126, 7, 810, 2, 2, 8126, 8128, 7, 806, 2, 2, 8127, 8121, 3, 2, 2, 2, 8127, 8128, 3, 2, 2, 2, 8128, 647, 3, 2, 2, 2, 8129, 8130, 7, 492, 2, 2, 8130, 8131, 7, 38, 2, 2, 8131, 8132, 7, 244, 2, 2, 8132, 8133, 7, 810, 2, 2, 8133, 8135, 7, 806, 2, 2, 8134, 8129, 3, 2, 2, 2, 8134, 8135, 3, 2, 2, 2, 8135, 8136, 3, 2, 2, 2, 8136, 8137, 7, 377, 2, 2, 8137, 8138, 7, 743, 2, 2, 8138, 8139, 7, 810, 2, 2, 8139, 8144, 7, 806, 2, 2, 8140, 8141, 7, 830, 2, 2, 8141, 8143, 5, 650, 326, 2, 8142, 8140, 3, 2, 2, 2, 8143, 8146, 3, 2, 2, 2, 8144, 8142, 3, 2, 2, 2, 8144, 8145, 3, 2, 2, 2, 8145, 649, 3, 2, 2, 2, 8146, 8144, 3, 2, 2, 2, 8147, 8148, 9, 96, 2, 2, 8148, 8149, 7, 810, 2, 2, 8149, 8150, 7, 806, 2, 2, 8150, 651, 3, 2, 2, 2, 8151, 8152, 7, 231, 2, 2, 8152, 8153, 7, 747, 2, 2, 8153, 8154, 7, 172, 2, 2, 8154, 8155, 5, 966, 484, 2, 8155, 8156, 7, 465, 2, 2, 8156, 8157, 7, 38, 2, 2, 8157, 8158, 5, 664, 333, 2, 8158, 8168, 3, 2, 2, 2, 8159, 8160, 7, 231, 2, 2, 8160, 8161, 7, 189, 2, 2, 8161, 8162, 7, 172, 2, 2, 8162, 8163, 7, 465, 2, 2, 8163, 8164, 7, 38, 2, 2, 8164, 8165, 7, 244, 2, 2, 8165, 8166, 7, 810, 2, 2, 8166, 8168, 7, 806, 2, 2, 8167, 8151, 3, 2, 2, 2, 8167, 8159, 3, 2, 2, 2, 8168, 653, 3, 2, 2, 2, 8169, 8170, 7, 51, 2, 2, 8170, 8171, 7, 747, 2, 2, 8171, 8172, 7, 172, 2, 2, 8172, 8181, 5, 966, 484, 2, 8173, 8174, 7, 51, 2, 2, 8174, 8175, 7, 6, 2, 2, 8175, 8176, 7, 747, 2, 2, 8176, 8181, 7, 556, 2, 2, 8177, 8178, 7, 51, 2, 2, 8178, 8179, 7, 189, 2, 2, 8179, 8181, 7, 172, 2, 2, 8180, 8169, 3, 2, 2, 2, 8180, 8173, 3, 2, 2, 2, 8180, 8177, 3, 2, 2, 2, 8181, 655, 3, 2, 2, 2, 8182, 8183, 7, 73, 2, 2, 8183, 8184, 7, 189, 2, 2, 8184, 8185, 7, 172, 2, 2, 8185, 8186, 7, 492, 2, 2, 8186, 8187, 7, 38, 2, 2, 8187, 8188, 7, 244, 2, 2, 8188, 8189, 7, 810, 2, 2, 8189, 8218, 7, 806, 2, 2, 8190, 8191, 7, 73, 2, 2, 8191, 8192, 7, 747, 2, 2, 8192, 8193, 7, 172, 2, 2, 8193, 8196, 5, 966, 484, 2, 8194, 8195, 7, 20, 2, 2, 8195, 8197, 5, 966, 484, 2, 8196, 8194, 3, 2, 2, 2, 8196, 8197, 3, 2, 2, 2, 8197, 8201, 3, 2, 2, 2, 8198, 8199, 7, 139, 2, 2, 8199, 8200, 7, 657, 2, 2, 8200, 8202, 5, 966, 484, 2, 8201, 8198, 3, 2, 2, 2, 8201, 8202, 3, 2, 2, 2, 8202, 8203, 3, 2, 2, 2, 8203, 8213, 7, 377, 2, 2, 8204, 8209, 5, 658, 330, 2, 8205, 8206, 7, 492, 2, 2, 8206, 8207, 7, 38, 2, 2, 8207, 8209, 5, 662, 332, 2, 8208, 8204, 3, 2, 2, 2, 8208, 8205, 3, 2, 2, 2, 8209, 8211, 3, 2, 2, 2, 8210, 8212, 7, 830, 2, 2, 8211, 8210, 3, 2, 2, 2, 8211, 8212, 3, 2, 2, 2, 8212, 8214, 3, 2, 2, 2, 8213, 8208, 3, 2, 2, 2, 8214, 8215, 3, 2, 2, 2, 8215, 8213, 3, 2, 2, 2, 8215, 8216, 3, 2, 2, 2, 8216, 8218, 3, 2, 2, 2, 8217, 8182, 3, 2, 2, 2, 8217, 8190, 3, 2, 2, 2, 8218, 657, 3, 2, 2, 2, 8219, 8220, 7, 555, 2, 2, 8220, 8221, 7, 810, 2, 2, 8221, 8235, 7, 806, 2, 2, 8222, 8223, 7, 394, 2, 2, 8223, 8224, 7, 810, 2, 2, 8224, 8235, 5, 660, 331, 2, 8225, 8226, 7, 536, 2, 2, 8226, 8227, 7, 810, 2, 2, 8227, 8235, 7, 806, 2, 2, 8228, 8229, 7, 658, 2, 2, 8229, 8230, 7, 810, 2, 2, 8230, 8235, 7, 806, 2, 2, 8231, 8232, 7, 451, 2, 2, 8232, 8233, 7, 810, 2, 2, 8233, 8235, 9, 12, 2, 2, 8234, 8219, 3, 2, 2, 2, 8234, 8222, 3, 2, 2, 2, 8234, 8225, 3, 2, 2, 2, 8234, 8228, 3, 2, 2, 2, 8234, 8231, 3, 2, 2, 2, 8235, 659, 3, 2, 2, 2, 8236, 8237, 9, 51, 2, 2, 8237, 661, 3, 2, 2, 2, 8238, 8239, 7, 43, 2, 2, 8239, 8250, 5, 966, 484, 2, 8240, 8241, 7, 18, 2, 2, 8241, 8242, 7, 172, 2, 2, 8242, 8250, 5, 966, 484, 2, 8243, 8244, 7, 747, 2, 2, 8244, 8245, 7, 172, 2, 2, 8245, 8250, 5, 966, 484, 2, 8246, 8247, 7, 244, 2, 2, 8247, 8248, 7, 810, 2, 2, 8248, 8250, 7, 806, 2, 2, 8249, 8238, 3, 2, 2, 2, 8249, 8240, 3, 2, 2, 2, 8249, 8243, 3, 2, 2, 2, 8249, 8246, 3, 2, 2, 2, 8250, 663, 3, 2, 2, 2, 8251, 8252, 7, 43, 2, 2, 8252, 8257, 5, 966, 484, 2, 8253, 8254, 7, 377, 2, 2, 8254, 8255, 7, 244, 2, 2, 8255, 8256, 7, 810, 2, 2, 8256, 8258, 7, 806, 2, 2, 8257, 8253, 3, 2, 2, 2, 8257, 8258, 3, 2, 2, 2, 8258, 8275, 3, 2, 2, 2, 8259, 8260, 7, 18, 2, 2, 8260, 8261, 7, 172, 2, 2, 8261, 8266, 5, 966, 484, 2, 8262, 8263, 7, 377, 2, 2, 8263, 8264, 7, 244, 2, 2, 8264, 8265, 7, 810, 2, 2, 8265, 8267, 7, 806, 2, 2, 8266, 8262, 3, 2, 2, 2, 8266, 8267, 3, 2, 2, 2, 8267, 8275, 3, 2, 2, 2, 8268, 8269, 7, 747, 2, 2, 8269, 8270, 7, 172, 2, 2, 8270, 8275, 5, 966, 484, 2, 8271, 8272, 7, 244, 2, 2, 8272, 8273, 7, 810, 2, 2, 8273, 8275, 7, 806, 2, 2, 8274, 8251, 3, 2, 2, 2, 8274, 8259, 3, 2, 2, 2, 8274, 8268, 3, 2, 2, 2, 8274, 8271, 3, 2, 2, 2, 8275, 665, 3, 2, 2, 2, 8276, 8303, 7, 118, 2, 2, 8277, 8278, 7, 370, 2, 2, 8278, 8303, 5, 966, 484, 2, 8279, 8280, 7, 751, 2, 2, 8280, 8303, 5, 966, 484, 2, 8281, 8283, 7, 444, 2, 2, 8282, 8284, 5, 966, 484, 2, 8283, 8282, 3, 2, 2, 2, 8283, 8284, 3, 2, 2, 2, 8284, 8303, 3, 2, 2, 2, 8285, 8286, 7, 73, 2, 2, 8286, 8303, 9, 97, 2, 2, 8287, 8303, 7, 724, 2, 2, 8288, 8303, 7, 539, 2, 2, 8289, 8303, 7, 305, 2, 2, 8290, 8303, 7, 270, 2, 2, 8291, 8303, 7, 162, 2, 2, 8292, 8300, 7, 10, 2, 2, 8293, 8295, 7, 13, 2, 2, 8294, 8293, 3, 2, 2, 2, 8294, 8295, 3, 2, 2, 2, 8295, 8298, 3, 2, 2, 2, 8296, 8299, 5, 966, 484, 2, 8297, 8299, 7, 84, 2, 2, 8298, 8296, 3, 2, 2, 2, 8298, 8297, 3, 2, 2, 2, 8299, 8301, 3, 2, 2, 2, 8300, 8294, 3, 2, 2, 2, 8300, 8301, 3, 2, 2, 2, 8301, 8303, 3, 2, 2, 2, 8302, 8276, 3, 2, 2, 2, 8302, 8277, 3, 2, 2, 2, 8302, 8279, 3, 2, 2, 2, 8302, 8281, 3, 2, 2, 2, 8302, 8285, 3, 2, 2, 2, 8302, 8287, 3, 2, 2, 2, 8302, 8288, 3, 2, 2, 2, 8302, 8289, 3, 2, 2, 2, 8302, 8290, 3, 2, 2, 2, 8302, 8291, 3, 2, 2, 2, 8302, 8292, 3, 2, 2, 2, 8303, 667, 3, 2, 2, 2, 8304, 8305, 7, 315, 2, 2, 8305, 8308, 7, 801, 2, 2, 8306, 8307, 7, 823, 2, 2, 8307, 8309, 5, 966, 484, 2, 8308, 8306, 3, 2, 2, 2, 8308, 8309, 3, 2, 2, 2, 8309, 8310, 3, 2, 2, 2, 8310, 8311, 7, 810, 2, 2, 8311, 8313, 5, 728, 365, 2, 8312, 8314, 7, 831, 2, 2, 8313, 8312, 3, 2, 2, 2, 8313, 8314, 3, 2, 2, 2, 8314, 8344, 3, 2, 2, 2, 8315, 8316, 7, 315, 2, 2, 8316, 8317, 7, 801, 2, 2, 8317, 8318, 5, 972, 487, 2, 8318, 8320, 5, 728, 365, 2, 8319, 8321, 7, 831, 2, 2, 8320, 8319, 3, 2, 2, 2, 8320, 8321, 3, 2, 2, 2, 8321, 8344, 3, 2, 2, 2, 8322, 8323, 7, 315, 2, 2, 8323, 8324, 7, 801, 2, 2, 8324, 8325, 7, 810, 2, 2, 8325, 8326, 7, 80, 2, 2, 8326, 8337, 5, 718, 360, 2, 8327, 8335, 7, 133, 2, 2, 8328, 8329, 7, 266, 2, 2, 8329, 8336, 7, 630, 2, 2, 8330, 8333, 7, 361, 2, 2, 8331, 8332, 7, 225, 2, 2, 8332, 8334, 5, 926, 464, 2, 8333, 8331, 3, 2, 2, 2, 8333, 8334, 3, 2, 2, 2, 8334, 8336, 3, 2, 2, 2, 8335, 8328, 3, 2, 2, 2, 8335, 8330, 3, 2, 2, 2, 8336, 8338, 3, 2, 2, 2, 8337, 8327, 3, 2, 2, 2, 8337, 8338, 3, 2, 2, 2, 8338, 8340, 3, 2, 2, 2, 8339, 8341, 7, 831, 2, 2, 8340, 8339, 3, 2, 2, 2, 8340, 8341, 3, 2, 2, 2, 8341, 8344, 3, 2, 2, 2, 8342, 8344, 5, 724, 363, 2, 8343, 8304, 3, 2, 2, 2, 8343, 8315, 3, 2, 2, 2, 8343, 8322, 3, 2, 2, 2, 8343, 8342, 3, 2, 2, 2, 8344, 669, 3, 2, 2, 2, 8345, 8346, 7, 28, 2, 2, 8346, 8347, 7, 99, 2, 2, 8347, 8350, 9, 98, 2, 2, 8348, 8351, 5, 966, 484, 2, 8349, 8351, 7, 801, 2, 2, 8350, 8348, 3, 2, 2, 2, 8350, 8349, 3, 2, 2, 2, 8350, 8351, 3, 2, 2, 2, 8351, 8353, 3, 2, 2, 2, 8352, 8354, 7, 831, 2, 2, 8353, 8352, 3, 2, 2, 2, 8353, 8354, 3, 2, 2, 2, 8354, 8427, 3, 2, 2, 2, 8355, 8356, 7, 28, 2, 2, 8356, 8366, 9, 98, 2, 2, 8357, 8360, 5, 966, 484, 2, 8358, 8360, 7, 801, 2, 2, 8359, 8357, 3, 2, 2, 2, 8359, 8358, 3, 2, 2, 2, 8360, 8364, 3, 2, 2, 2, 8361, 8362, 7, 377, 2, 2, 8362, 8363, 7, 575, 2, 2, 8363, 8365, 7, 806, 2, 2, 8364, 8361, 3, 2, 2, 2, 8364, 8365, 3, 2, 2, 2, 8365, 8367, 3, 2, 2, 2, 8366, 8359, 3, 2, 2, 2, 8366, 8367, 3, 2, 2, 2, 8367, 8369, 3, 2, 2, 2, 8368, 8370, 7, 831, 2, 2, 8369, 8368, 3, 2, 2, 2, 8369, 8370, 3, 2, 2, 2, 8370, 8427, 3, 2, 2, 2, 8371, 8372, 7, 58, 2, 2, 8372, 8385, 9, 98, 2, 2, 8373, 8376, 5, 966, 484, 2, 8374, 8376, 7, 801, 2, 2, 8375, 8373, 3, 2, 2, 2, 8375, 8374, 3, 2, 2, 2, 8376, 8383, 3, 2, 2, 2, 8377, 8378, 7, 377, 2, 2, 8378, 8379, 7, 828, 2, 2, 8379, 8380, 7, 470, 2, 2, 8380, 8381, 7, 810, 2, 2, 8381, 8382, 9, 9, 2, 2, 8382, 8384, 7, 829, 2, 2, 8383, 8377, 3, 2, 2, 2, 8383, 8384, 3, 2, 2, 2, 8384, 8386, 3, 2, 2, 2, 8385, 8375, 3, 2, 2, 2, 8385, 8386, 3, 2, 2, 2, 8386, 8388, 3, 2, 2, 2, 8387, 8389, 7, 831, 2, 2, 8388, 8387, 3, 2, 2, 2, 8388, 8389, 3, 2, 2, 2, 8389, 8427, 3, 2, 2, 2, 8390, 8392, 7, 58, 2, 2, 8391, 8393, 7, 787, 2, 2, 8392, 8391, 3, 2, 2, 2, 8392, 8393, 3, 2, 2, 2, 8393, 8395, 3, 2, 2, 2, 8394, 8396, 7, 831, 2, 2, 8395, 8394, 3, 2, 2, 2, 8395, 8396, 3, 2, 2, 2, 8396, 8427, 3, 2, 2, 2, 8397, 8398, 7, 58, 2, 2, 8398, 8427, 5, 966, 484, 2, 8399, 8400, 7, 288, 2, 2, 8400, 8427, 5, 966, 484, 2, 8401, 8402, 7, 288, 2, 2, 8402, 8405, 9, 98, 2, 2, 8403, 8406, 5, 966, 484, 2, 8404, 8406, 7, 801, 2, 2, 8405, 8403, 3, 2, 2, 2, 8405, 8404, 3, 2, 2, 2, 8405, 8406, 3, 2, 2, 2, 8406, 8408, 3, 2, 2, 2, 8407, 8409, 7, 831, 2, 2, 8408, 8407, 3, 2, 2, 2, 8408, 8409, 3, 2, 2, 2, 8409, 8427, 3, 2, 2, 2, 8410, 8412, 7, 288, 2, 2, 8411, 8413, 7, 787, 2, 2, 8412, 8411, 3, 2, 2, 2, 8412, 8413, 3, 2, 2, 2, 8413, 8415, 3, 2, 2, 2, 8414, 8416, 7, 831, 2, 2, 8415, 8414, 3, 2, 2, 2, 8415, 8416, 3, 2, 2, 2, 8416, 8427, 3, 2, 2, 2, 8417, 8418, 7, 300, 2, 2, 8418, 8421, 9, 98, 2, 2, 8419, 8422, 5, 966, 484, 2, 8420, 8422, 7, 801, 2, 2, 8421, 8419, 3, 2, 2, 2, 8421, 8420, 3, 2, 2, 2, 8421, 8422, 3, 2, 2, 2, 8422, 8424, 3, 2, 2, 2, 8423, 8425, 7, 831, 2, 2, 8424, 8423, 3, 2, 2, 2, 8424, 8425, 3, 2, 2, 2, 8425, 8427, 3, 2, 2, 2, 8426, 8345, 3, 2, 2, 2, 8426, 8355, 3, 2, 2, 2, 8426, 8371, 3, 2, 2, 2, 8426, 8390, 3, 2, 2, 2, 8426, 8397, 3, 2, 2, 2, 8426, 8399, 3, 2, 2, 2, 8426, 8401, 3, 2, 2, 2, 8426, 8410, 3, 2, 2, 2, 8426, 8417, 3, 2, 2, 2, 8427, 671, 3, 2, 2, 2, 8428, 8430, 7, 526, 2, 2, 8429, 8431, 7, 802, 2, 2, 8430, 8429, 3, 2, 2, 2, 8430, 8431, 3, 2, 2, 2, 8431, 673, 3, 2, 2, 2, 8432, 8433, 7, 364, 2, 2, 8433, 8435, 5, 966, 484, 2, 8434, 8436, 7, 831, 2, 2, 8435, 8434, 3, 2, 2, 2, 8435, 8436, 3, 2, 2, 2, 8436, 675, 3, 2, 2, 2, 8437, 8439, 7, 316, 2, 2, 8438, 8440, 7, 806, 2, 2, 8439, 8438, 3, 2, 2, 2, 8439, 8440, 3, 2, 2, 2, 8440, 677, 3, 2, 2, 2, 8441, 8444, 7, 269, 2, 2, 8442, 8443, 7, 377, 2, 2, 8443, 8445, 7, 636, 2, 2, 8444, 8442, 3, 2, 2, 2, 8444, 8445, 3, 2, 2, 2, 8445, 679, 3, 2, 2, 2, 8446, 8449, 7, 317, 2, 2, 8447, 8448, 7, 377, 2, 2, 8448, 8450, 7, 620, 2, 2, 8449, 8447, 3, 2, 2, 2, 8449, 8450, 3, 2, 2, 2, 8450, 681, 3, 2, 2, 2, 8451, 8452, 7, 86, 2, 2, 8452, 8457, 5, 968, 485, 2, 8453, 8454, 7, 828, 2, 2, 8454, 8455, 5, 870, 436, 2, 8455, 8456, 7, 829, 2, 2, 8456, 8458, 3, 2, 2, 2, 8457, 8453, 3, 2, 2, 2, 8457, 8458, 3, 2, 2, 2, 8458, 8461, 3, 2, 2, 2, 8459, 8460, 7, 377, 2, 2, 8460, 8462, 5, 684, 343, 2, 8461, 8459, 3, 2, 2, 2, 8461, 8462, 3, 2, 2, 2, 8462, 8464, 3, 2, 2, 2, 8463, 8465, 7, 831, 2, 2, 8464, 8463, 3, 2, 2, 2, 8464, 8465, 3, 2, 2, 2, 8465, 683, 3, 2, 2, 2, 8466, 8469, 5, 968, 485, 2, 8467, 8468, 7, 830, 2, 2, 8468, 8470, 5, 968, 485, 2, 8469, 8467, 3, 2, 2, 2, 8469, 8470, 3, 2, 2, 2, 8470, 685, 3, 2, 2, 2, 8471, 8472, 7, 118, 2, 2, 8472, 8473, 7, 16, 2, 2, 8473, 8474, 9, 99, 2, 2, 8474, 687, 3, 2, 2, 2, 8475, 8477, 7, 801, 2, 2, 8476, 8478, 7, 16, 2, 2, 8477, 8476, 3, 2, 2, 2, 8477, 8478, 3, 2, 2, 2, 8478, 8479, 3, 2, 2, 2, 8479, 8482, 5, 958, 480, 2, 8480, 8481, 7, 810, 2, 2, 8481, 8483, 5, 728, 365, 2, 8482, 8480, 3, 2, 2, 2, 8482, 8483, 3, 2, 2, 2, 8483, 689, 3, 2, 2, 2, 8484, 8485, 7, 339, 2, 2, 8485, 8486, 7, 828, 2, 2, 8486, 8487, 5, 696, 349, 2, 8487, 8488, 7, 829, 2, 2, 8488, 691, 3, 2, 2, 2, 8489, 8490, 7, 789, 2, 2, 8490, 8492, 7, 828, 2, 2, 8491, 8493, 9, 100, 2, 2, 8492, 8491, 3, 2, 2, 2, 8492, 8493, 3, 2, 2, 2, 8493, 8494, 3, 2, 2, 2, 8494, 8495, 5, 694, 348, 2, 8495, 8496, 7, 829, 2, 2, 8496, 693, 3, 2, 2, 2, 8497, 8498, 7, 803, 2, 2, 8498, 8499, 7, 823, 2, 2, 8499, 8500, 7, 803, 2, 2, 8500, 695, 3, 2, 2, 2, 8501, 8508, 5, 698, 350, 2, 8502, 8504, 7, 830, 2, 2, 8503, 8502, 3, 2, 2, 2, 8503, 8504, 3, 2, 2, 2, 8504, 8505, 3, 2, 2, 2, 8505, 8507, 5, 698, 350, 2, 8506, 8503, 3, 2, 2, 2, 8507, 8510, 3, 2, 2, 2, 8508, 8506, 3, 2, 2, 2, 8508, 8509, 3, 2, 2, 2, 8509, 697, 3, 2, 2, 2, 8510, 8508, 3, 2, 2, 2, 8511, 8515, 5, 700, 351, 2, 8512, 8515, 5, 702, 352, 2, 8513, 8515, 5, 706, 354, 2, 8514, 8511, 3, 2, 2, 2, 8514, 8512, 3, 2, 2, 2, 8514, 8513, 3, 2, 2, 2, 8515, 699, 3, 2, 2, 2, 8516, 8520, 5, 966, 484, 2, 8517, 8521, 5, 958, 480, 2, 8518, 8519, 7, 16, 2, 2, 8519, 8521, 5, 728, 365, 2, 8520, 8517, 3, 2, 2, 2, 8520, 8518, 3, 2, 2, 2, 8521, 8524, 3, 2, 2, 2, 8522, 8523, 7, 55, 2, 2, 8523, 8525, 5, 966, 484, 2, 8524, 8522, 3, 2, 2, 2, 8524, 8525, 3, 2, 2, 2, 8525, 8527, 3, 2, 2, 2, 8526, 8528, 5, 934, 468, 2, 8527, 8526, 3, 2, 2, 2, 8527, 8528, 3, 2, 2, 2, 8528, 8550, 3, 2, 2, 2, 8529, 8530, 7, 61, 2, 2, 8530, 8532, 5, 966, 484, 2, 8531, 8529, 3, 2, 2, 2, 8531, 8532, 3, 2, 2, 2, 8532, 8533, 3, 2, 2, 2, 8533, 8535, 5, 936, 469, 2, 8534, 8536, 5, 936, 469, 2, 8535, 8534, 3, 2, 2, 2, 8535, 8536, 3, 2, 2, 2, 8536, 8551, 3, 2, 2, 2, 8537, 8543, 7, 150, 2, 2, 8538, 8539, 7, 828, 2, 2, 8539, 8540, 7, 802, 2, 2, 8540, 8541, 7, 830, 2, 2, 8541, 8542, 7, 802, 2, 2, 8542, 8544, 7, 829, 2, 2, 8543, 8538, 3, 2, 2, 2, 8543, 8544, 3, 2, 2, 2, 8544, 8548, 3, 2, 2, 2, 8545, 8546, 7, 220, 2, 2, 8546, 8547, 7, 133, 2, 2, 8547, 8549, 7, 274, 2, 2, 8548, 8545, 3, 2, 2, 2, 8548, 8549, 3, 2, 2, 2, 8549, 8551, 3, 2, 2, 2, 8550, 8531, 3, 2, 2, 2, 8550, 8537, 3, 2, 2, 2, 8550, 8551, 3, 2, 2, 2, 8551, 8553, 3, 2, 2, 2, 8552, 8554, 7, 291, 2, 2, 8553, 8552, 3, 2, 2, 2, 8553, 8554, 3, 2, 2, 2, 8554, 8558, 3, 2, 2, 2, 8555, 8557, 5, 704, 353, 2, 8556, 8555, 3, 2, 2, 2, 8557, 8560, 3, 2, 2, 2, 8558, 8556, 3, 2, 2, 2, 8558, 8559, 3, 2, 2, 2, 8559, 701, 3, 2, 2, 2, 8560, 8558, 3, 2, 2, 2, 8561, 8562, 5, 966, 484, 2, 8562, 8563, 9, 101, 2, 2, 8563, 8567, 5, 728, 365, 2, 8564, 8568, 7, 576, 2, 2, 8565, 8566, 7, 220, 2, 2, 8566, 8568, 7, 576, 2, 2, 8567, 8564, 3, 2, 2, 2, 8567, 8565, 3, 2, 2, 2, 8567, 8568, 3, 2, 2, 2, 8568, 703, 3, 2, 2, 2, 8569, 8570, 7, 61, 2, 2, 8570, 8572, 5, 966, 484, 2, 8571, 8569, 3, 2, 2, 2, 8571, 8572, 3, 2, 2, 2, 8572, 8610, 3, 2, 2, 2, 8573, 8574, 7, 256, 2, 2, 8574, 8577, 7, 172, 2, 2, 8575, 8577, 7, 357, 2, 2, 8576, 8573, 3, 2, 2, 2, 8576, 8575, 3, 2, 2, 2, 8577, 8579, 3, 2, 2, 2, 8578, 8580, 5, 932, 467, 2, 8579, 8578, 3, 2, 2, 2, 8579, 8580, 3, 2, 2, 2, 8580, 8582, 3, 2, 2, 2, 8581, 8583, 5, 712, 357, 2, 8582, 8581, 3, 2, 2, 2, 8582, 8583, 3, 2, 2, 2, 8583, 8611, 3, 2, 2, 2, 8584, 8588, 7, 46, 2, 2, 8585, 8586, 7, 220, 2, 2, 8586, 8587, 7, 133, 2, 2, 8587, 8589, 7, 274, 2, 2, 8588, 8585, 3, 2, 2, 2, 8588, 8589, 3, 2, 2, 2, 8589, 8590, 3, 2, 2, 2, 8590, 8591, 7, 828, 2, 2, 8591, 8592, 5, 750, 376, 2, 8592, 8593, 7, 829, 2, 2, 8593, 8611, 3, 2, 2, 2, 8594, 8595, 7, 136, 2, 2, 8595, 8597, 7, 172, 2, 2, 8596, 8594, 3, 2, 2, 2, 8596, 8597, 3, 2, 2, 2, 8597, 8598, 3, 2, 2, 2, 8598, 8599, 7, 270, 2, 2, 8599, 8600, 5, 910, 456, 2, 8600, 8601, 7, 828, 2, 2, 8601, 8602, 5, 926, 464, 2, 8602, 8604, 7, 829, 2, 2, 8603, 8605, 5, 708, 355, 2, 8604, 8603, 3, 2, 2, 2, 8604, 8605, 3, 2, 2, 2, 8605, 8607, 3, 2, 2, 2, 8606, 8608, 5, 710, 356, 2, 8607, 8606, 3, 2, 2, 2, 8607, 8608, 3, 2, 2, 2, 8608, 8611, 3, 2, 2, 2, 8609, 8611, 5, 934, 468, 2, 8610, 8576, 3, 2, 2, 2, 8610, 8584, 3, 2, 2, 2, 8610, 8596, 3, 2, 2, 2, 8610, 8609, 3, 2, 2, 2, 8611, 705, 3, 2, 2, 2, 8612, 8613, 7, 61, 2, 2, 8613, 8615, 5, 966, 484, 2, 8614, 8612, 3, 2, 2, 2, 8614, 8615, 3, 2, 2, 2, 8615, 8680, 3, 2, 2, 2, 8616, 8617, 7, 256, 2, 2, 8617, 8620, 7, 172, 2, 2, 8618, 8620, 7, 357, 2, 2, 8619, 8616, 3, 2, 2, 2, 8619, 8618, 3, 2, 2, 2, 8620, 8622, 3, 2, 2, 2, 8621, 8623, 5, 932, 467, 2, 8622, 8621, 3, 2, 2, 2, 8622, 8623, 3, 2, 2, 2, 8623, 8624, 3, 2, 2, 2, 8624, 8625, 7, 828, 2, 2, 8625, 8626, 5, 924, 463, 2, 8626, 8628, 7, 829, 2, 2, 8627, 8629, 5, 712, 357, 2, 8628, 8627, 3, 2, 2, 2, 8628, 8629, 3, 2, 2, 2, 8629, 8632, 3, 2, 2, 2, 8630, 8631, 7, 229, 2, 2, 8631, 8633, 5, 966, 484, 2, 8632, 8630, 3, 2, 2, 2, 8632, 8633, 3, 2, 2, 2, 8633, 8681, 3, 2, 2, 2, 8634, 8638, 7, 46, 2, 2, 8635, 8636, 7, 220, 2, 2, 8636, 8637, 7, 133, 2, 2, 8637, 8639, 7, 274, 2, 2, 8638, 8635, 3, 2, 2, 2, 8638, 8639, 3, 2, 2, 2, 8639, 8640, 3, 2, 2, 2, 8640, 8641, 7, 828, 2, 2, 8641, 8642, 5, 750, 376, 2, 8642, 8643, 7, 829, 2, 2, 8643, 8681, 3, 2, 2, 2, 8644, 8646, 7, 89, 2, 2, 8645, 8647, 7, 828, 2, 2, 8646, 8645, 3, 2, 2, 2, 8646, 8647, 3, 2, 2, 2, 8647, 8652, 3, 2, 2, 2, 8648, 8653, 7, 806, 2, 2, 8649, 8653, 7, 836, 2, 2, 8650, 8653, 5, 832, 417, 2, 8651, 8653, 7, 802, 2, 2, 8652, 8648, 3, 2, 2, 2, 8652, 8649, 3, 2, 2, 2, 8652, 8650, 3, 2, 2, 2, 8652, 8651, 3, 2, 2, 2, 8653, 8654, 3, 2, 2, 2, 8654, 8652, 3, 2, 2, 2, 8654, 8655, 3, 2, 2, 2, 8655, 8657, 3, 2, 2, 2, 8656, 8658, 7, 829, 2, 2, 8657, 8656, 3, 2, 2, 2, 8657, 8658, 3, 2, 2, 2, 8658, 8659, 3, 2, 2, 2, 8659, 8660, 7, 133, 2, 2, 8660, 8681, 5, 966, 484, 2, 8661, 8662, 7, 136, 2, 2, 8662, 8663, 7, 172, 2, 2, 8663, 8664, 7, 828, 2, 2, 8664, 8665, 5, 926, 464, 2, 8665, 8666, 7, 829, 2, 2, 8666, 8667, 7, 270, 2, 2, 8667, 8672, 5, 910, 456, 2, 8668, 8669, 7, 828, 2, 2, 8669, 8670, 5, 926, 464, 2, 8670, 8671, 7, 829, 2, 2, 8671, 8673, 3, 2, 2, 2, 8672, 8668, 3, 2, 2, 2, 8672, 8673, 3, 2, 2, 2, 8673, 8675, 3, 2, 2, 2, 8674, 8676, 5, 708, 355, 2, 8675, 8674, 3, 2, 2, 2, 8675, 8676, 3, 2, 2, 2, 8676, 8678, 3, 2, 2, 2, 8677, 8679, 5, 710, 356, 2, 8678, 8677, 3, 2, 2, 2, 8678, 8679, 3, 2, 2, 2, 8679, 8681, 3, 2, 2, 2, 8680, 8619, 3, 2, 2, 2, 8680, 8634, 3, 2, 2, 2, 8680, 8644, 3, 2, 2, 2, 8680, 8661, 3, 2, 2, 2, 8681, 707, 3, 2, 2, 2, 8682, 8683, 7, 229, 2, 2, 8683, 8691, 7, 92, 2, 2, 8684, 8685, 7, 611, 2, 2, 8685, 8692, 7, 384, 2, 2, 8686, 8692, 7, 41, 2, 2, 8687, 8688, 7, 315, 2, 2, 8688, 8692, 7, 223, 2, 2, 8689, 8690, 7, 315, 2, 2, 8690, 8692, 7, 89, 2, 2, 8691, 8684, 3, 2, 2, 2, 8691, 8686, 3, 2, 2, 2, 8691, 8687, 3, 2, 2, 2, 8691, 8689, 3, 2, 2, 2, 8692, 709, 3, 2, 2, 2, 8693, 8694, 7, 229, 2, 2, 8694, 8702, 7, 361, 2, 2, 8695, 8696, 7, 611, 2, 2, 8696, 8703, 7, 384, 2, 2, 8697, 8703, 7, 41, 2, 2, 8698, 8699, 7, 315, 2, 2, 8699, 8703, 7, 223, 2, 2, 8700, 8701, 7, 315, 2, 2, 8701, 8703, 7, 89, 2, 2, 8702, 8695, 3, 2, 2, 2, 8702, 8697, 3, 2, 2, 2, 8702, 8698, 3, 2, 2, 2, 8702, 8700, 3, 2, 2, 2, 8703, 711, 3, 2, 2, 2, 8704, 8705, 7, 377, 2, 2, 8705, 8706, 7, 828, 2, 2, 8706, 8711, 5, 714, 358, 2, 8707, 8708, 7, 830, 2, 2, 8708, 8710, 5, 714, 358, 2, 8709, 8707, 3, 2, 2, 2, 8710, 8713, 3, 2, 2, 2, 8711, 8709, 3, 2, 2, 2, 8711, 8712, 3, 2, 2, 2, 8712, 8714, 3, 2, 2, 2, 8713, 8711, 3, 2, 2, 2, 8714, 8715, 7, 829, 2, 2, 8715, 713, 3, 2, 2, 2, 8716, 8717, 5, 968, 485, 2, 8717, 8721, 7, 810, 2, 2, 8718, 8722, 5, 968, 485, 2, 8719, 8722, 5, 930, 466, 2, 8720, 8722, 7, 802, 2, 2, 8721, 8718, 3, 2, 2, 2, 8721, 8719, 3, 2, 2, 2, 8721, 8720, 3, 2, 2, 2, 8722, 715, 3, 2, 2, 2, 8723, 8724, 7, 88, 2, 2, 8724, 8756, 5, 928, 465, 2, 8725, 8735, 7, 80, 2, 2, 8726, 8733, 5, 718, 360, 2, 8727, 8728, 7, 133, 2, 2, 8728, 8731, 7, 361, 2, 2, 8729, 8730, 7, 225, 2, 2, 8730, 8732, 5, 926, 464, 2, 8731, 8729, 3, 2, 2, 2, 8731, 8732, 3, 2, 2, 2, 8732, 8734, 3, 2, 2, 2, 8733, 8727, 3, 2, 2, 2, 8733, 8734, 3, 2, 2, 2, 8734, 8736, 3, 2, 2, 2, 8735, 8726, 3, 2, 2, 2, 8735, 8736, 3, 2, 2, 2, 8736, 8757, 3, 2, 2, 2, 8737, 8739, 9, 102, 2, 2, 8738, 8737, 3, 2, 2, 2, 8738, 8739, 3, 2, 2, 2, 8739, 8741, 3, 2, 2, 2, 8740, 8742, 7, 704, 2, 2, 8741, 8740, 3, 2, 2, 2, 8741, 8742, 3, 2, 2, 2, 8742, 8743, 3, 2, 2, 2, 8743, 8744, 7, 80, 2, 2, 8744, 8745, 7, 133, 2, 2, 8745, 8754, 5, 446, 224, 2, 8746, 8752, 7, 133, 2, 2, 8747, 8748, 7, 266, 2, 2, 8748, 8753, 7, 630, 2, 2, 8749, 8753, 7, 361, 2, 2, 8750, 8751, 7, 225, 2, 2, 8751, 8753, 5, 926, 464, 2, 8752, 8747, 3, 2, 2, 2, 8752, 8749, 3, 2, 2, 2, 8752, 8750, 3, 2, 2, 2, 8753, 8755, 3, 2, 2, 2, 8754, 8746, 3, 2, 2, 2, 8754, 8755, 3, 2, 2, 2, 8755, 8757, 3, 2, 2, 2, 8756, 8725, 3, 2, 2, 2, 8756, 8738, 3, 2, 2, 2, 8757, 8759, 3, 2, 2, 2, 8758, 8760, 7, 831, 2, 2, 8759, 8758, 3, 2, 2, 2, 8759, 8760, 3, 2, 2, 2, 8760, 717, 3, 2, 2, 2, 8761, 8763, 5, 720, 361, 2, 8762, 8761, 3, 2, 2, 2, 8763, 8766, 3, 2, 2, 2, 8764, 8762, 3, 2, 2, 2, 8764, 8765, 3, 2, 2, 2, 8765, 8767, 3, 2, 2, 2, 8766, 8764, 3, 2, 2, 2, 8767, 8768, 7, 133, 2, 2, 8768, 8769, 5, 446, 224, 2, 8769, 719, 3, 2, 2, 2, 8770, 8776, 9, 65, 2, 2, 8771, 8776, 9, 103, 2, 2, 8772, 8776, 9, 104, 2, 2, 8773, 8776, 9, 105, 2, 2, 8774, 8776, 7, 770, 2, 2, 8775, 8770, 3, 2, 2, 2, 8775, 8771, 3, 2, 2, 2, 8775, 8772, 3, 2, 2, 2, 8775, 8773, 3, 2, 2, 2, 8775, 8774, 3, 2, 2, 2, 8776, 721, 3, 2, 2, 2, 8777, 8787, 7, 128, 2, 2, 8778, 8785, 7, 610, 2, 2, 8779, 8785, 7, 649, 2, 2, 8780, 8785, 7, 512, 2, 2, 8781, 8785, 7, 559, 2, 2, 8782, 8783, 9, 106, 2, 2, 8783, 8785, 5, 728, 365, 2, 8784, 8778, 3, 2, 2, 2, 8784, 8779, 3, 2, 2, 2, 8784, 8780, 3, 2, 2, 2, 8784, 8781, 3, 2, 2, 2, 8784, 8782, 3, 2, 2, 2, 8784, 8785, 3, 2, 2, 2, 8785, 8786, 3, 2, 2, 2, 8786, 8788, 7, 139, 2, 2, 8787, 8784, 3, 2, 2, 2, 8787, 8788, 3, 2, 2, 2, 8788, 8790, 3, 2, 2, 2, 8789, 8791, 7, 525, 2, 2, 8790, 8789, 3, 2, 2, 2, 8790, 8791, 3, 2, 2, 2, 8791, 8792, 3, 2, 2, 2, 8792, 8802, 5, 928, 465, 2, 8793, 8794, 7, 165, 2, 2, 8794, 8799, 7, 801, 2, 2, 8795, 8796, 7, 830, 2, 2, 8796, 8798, 7, 801, 2, 2, 8797, 8795, 3, 2, 2, 2, 8798, 8801, 3, 2, 2, 2, 8799, 8797, 3, 2, 2, 2, 8799, 8800, 3, 2, 2, 2, 8800, 8803, 3, 2, 2, 2, 8801, 8799, 3, 2, 2, 2, 8802, 8793, 3, 2, 2, 2, 8802, 8803, 3, 2, 2, 2, 8803, 8805, 3, 2, 2, 2, 8804, 8806, 7, 831, 2, 2, 8805, 8804, 3, 2, 2, 2, 8805, 8806, 3, 2, 2, 2, 8806, 723, 3, 2, 2, 2, 8807, 8808, 7, 315, 2, 2, 8808, 8812, 5, 966, 484, 2, 8809, 8813, 5, 966, 484, 2, 8810, 8813, 5, 726, 364, 2, 8811, 8813, 5, 930, 466, 2, 8812, 8809, 3, 2, 2, 2, 8812, 8810, 3, 2, 2, 2, 8812, 8811, 3, 2, 2, 2, 8813, 8815, 3, 2, 2, 2, 8814, 8816, 7, 831, 2, 2, 8815, 8814, 3, 2, 2, 2, 8815, 8816, 3, 2, 2, 2, 8816, 8857, 3, 2, 2, 2, 8817, 8818, 7, 315, 2, 2, 8818, 8819, 7, 350, 2, 2, 8819, 8820, 7, 549, 2, 2, 8820, 8830, 7, 562, 2, 2, 8821, 8822, 7, 266, 2, 2, 8822, 8831, 7, 772, 2, 2, 8823, 8824, 7, 266, 2, 2, 8824, 8831, 7, 439, 2, 2, 8825, 8826, 7, 683, 2, 2, 8826, 8831, 7, 266, 2, 2, 8827, 8831, 7, 730, 2, 2, 8828, 8831, 7, 720, 2, 2, 8829, 8831, 7, 802, 2, 2, 8830, 8821, 3, 2, 2, 2, 8830, 8823, 3, 2, 2, 2, 8830, 8825, 3, 2, 2, 2, 8830, 8827, 3, 2, 2, 2, 8830, 8828, 3, 2, 2, 2, 8830, 8829, 3, 2, 2, 2, 8831, 8833, 3, 2, 2, 2, 8832, 8834, 7, 831, 2, 2, 8833, 8832, 3, 2, 2, 2, 8833, 8834, 3, 2, 2, 2, 8834, 8857, 3, 2, 2, 2, 8835, 8836, 7, 315, 2, 2, 8836, 8837, 7, 152, 2, 2, 8837, 8838, 5, 910, 456, 2, 8838, 8840, 5, 930, 466, 2, 8839, 8841, 7, 831, 2, 2, 8840, 8839, 3, 2, 2, 2, 8840, 8841, 3, 2, 2, 2, 8841, 8857, 3, 2, 2, 2, 8842, 8843, 7, 315, 2, 2, 8843, 8844, 7, 399, 2, 2, 8844, 8857, 5, 930, 466, 2, 8845, 8846, 7, 315, 2, 2, 8846, 8847, 7, 662, 2, 2, 8847, 8857, 5, 930, 466, 2, 8848, 8849, 7, 315, 2, 2, 8849, 8850, 7, 400, 2, 2, 8850, 8857, 5, 930, 466, 2, 8851, 8852, 7, 315, 2, 2, 8852, 8853, 7, 401, 2, 2, 8853, 8857, 5, 930, 466, 2, 8854, 8855, 7, 315, 2, 2, 8855, 8857, 5, 842, 422, 2, 8856, 8807, 3, 2, 2, 2, 8856, 8817, 3, 2, 2, 2, 8856, 8835, 3, 2, 2, 2, 8856, 8842, 3, 2, 2, 2, 8856, 8845, 3, 2, 2, 2, 8856, 8848, 3, 2, 2, 2, 8856, 8851, 3, 2, 2, 2, 8856, 8854, 3, 2, 2, 2, 8857, 725, 3, 2, 2, 2, 8858, 8861, 5, 962, 482, 2, 8859, 8861, 7, 801, 2, 2, 8860, 8858, 3, 2, 2, 2, 8860, 8859, 3, 2, 2, 2, 8861, 727, 3, 2, 2, 2, 8862, 8863, 8, 365, 1, 2, 8863, 8871, 5, 730, 366, 2, 8864, 8871, 5, 832, 417, 2, 8865, 8871, 5, 732, 367, 2, 8866, 8871, 5, 922, 462, 2, 8867, 8871, 5, 736, 369, 2, 8868, 8871, 5, 734, 368, 2, 8869, 8871, 5, 880, 441, 2, 8870, 8862, 3, 2, 2, 2, 8870, 8864, 3, 2, 2, 2, 8870, 8865, 3, 2, 2, 2, 8870, 8866, 3, 2, 2, 2, 8870, 8867, 3, 2, 2, 2, 8870, 8868, 3, 2, 2, 2, 8870, 8869, 3, 2, 2, 2, 8871, 8891, 3, 2, 2, 2, 8872, 8873, 12, 7, 2, 2, 8873, 8874, 9, 107, 2, 2, 8874, 8890, 5, 728, 365, 8, 8875, 8876, 12, 6, 2, 2, 8876, 8877, 9, 108, 2, 2, 8877, 8890, 5, 728, 365, 7, 8878, 8879, 12, 5, 2, 2, 8879, 8880, 5, 970, 486, 2, 8880, 8881, 5, 728, 365, 6, 8881, 8890, 3, 2, 2, 2, 8882, 8883, 12, 4, 2, 2, 8883, 8884, 5, 972, 487, 2, 8884, 8885, 5, 728, 365, 5, 8885, 8890, 3, 2, 2, 2, 8886, 8887, 12, 12, 2, 2, 8887, 8888, 7, 55, 2, 2, 8888, 8890, 5, 966, 484, 2, 8889, 8872, 3, 2, 2, 2, 8889, 8875, 3, 2, 2, 2, 8889, 8878, 3, 2, 2, 2, 8889, 8882, 3, 2, 2, 2, 8889, 8886, 3, 2, 2, 2, 8890, 8893, 3, 2, 2, 2, 8891, 8889, 3, 2, 2, 2, 8891, 8892, 3, 2, 2, 2, 8892, 729, 3, 2, 2, 2, 8893, 8891, 3, 2, 2, 2, 8894, 8899, 7, 89, 2, 2, 8895, 8899, 7, 223, 2, 2, 8896, 8899, 7, 801, 2, 2, 8897, 8899, 5, 962, 482, 2, 8898, 8894, 3, 2, 2, 2, 8898, 8895, 3, 2, 2, 2, 8898, 8896, 3, 2, 2, 2, 8898, 8897, 3, 2, 2, 2, 8899, 731, 3, 2, 2, 2, 8900, 8901, 7, 42, 2, 2, 8901, 8903, 5, 728, 365, 2, 8902, 8904, 5, 846, 424, 2, 8903, 8902, 3, 2, 2, 2, 8904, 8905, 3, 2, 2, 2, 8905, 8903, 3, 2, 2, 2, 8905, 8906, 3, 2, 2, 2, 8906, 8909, 3, 2, 2, 2, 8907, 8908, 7, 106, 2, 2, 8908, 8910, 5, 728, 365, 2, 8909, 8907, 3, 2, 2, 2, 8909, 8910, 3, 2, 2, 2, 8910, 8911, 3, 2, 2, 2, 8911, 8912, 7, 108, 2, 2, 8912, 8926, 3, 2, 2, 2, 8913, 8915, 7, 42, 2, 2, 8914, 8916, 5, 848, 425, 2, 8915, 8914, 3, 2, 2, 2, 8916, 8917, 3, 2, 2, 2, 8917, 8915, 3, 2, 2, 2, 8917, 8918, 3, 2, 2, 2, 8918, 8921, 3, 2, 2, 2, 8919, 8920, 7, 106, 2, 2, 8920, 8922, 5, 728, 365, 2, 8921, 8919, 3, 2, 2, 2, 8921, 8922, 3, 2, 2, 2, 8922, 8923, 3, 2, 2, 2, 8923, 8924, 7, 108, 2, 2, 8924, 8926, 3, 2, 2, 2, 8925, 8900, 3, 2, 2, 2, 8925, 8913, 3, 2, 2, 2, 8926, 733, 3, 2, 2, 2, 8927, 8928, 7, 838, 2, 2, 8928, 8932, 5, 728, 365, 2, 8929, 8930, 9, 109, 2, 2, 8930, 8932, 5, 728, 365, 2, 8931, 8927, 3, 2, 2, 2, 8931, 8929, 3, 2, 2, 2, 8932, 735, 3, 2, 2, 2, 8933, 8934, 7, 828, 2, 2, 8934, 8935, 5, 728, 365, 2, 8935, 8936, 7, 829, 2, 2, 8936, 8942, 3, 2, 2, 2, 8937, 8938, 7, 828, 2, 2, 8938, 8939, 5, 740, 371, 2, 8939, 8940, 7, 829, 2, 2, 8940, 8942, 3, 2, 2, 2, 8941, 8933, 3, 2, 2, 2, 8941, 8937, 3, 2, 2, 2, 8942, 737, 3, 2, 2, 2, 8943, 8952, 7, 223, 2, 2, 8944, 8952, 5, 962, 482, 2, 8945, 8952, 5, 832, 417, 2, 8946, 8952, 7, 801, 2, 2, 8947, 8948, 7, 828, 2, 2, 8948, 8949, 5, 738, 370, 2, 8949, 8950, 7, 829, 2, 2, 8950, 8952, 3, 2, 2, 2, 8951, 8943, 3, 2, 2, 2, 8951, 8944, 3, 2, 2, 2, 8951, 8945, 3, 2, 2, 2, 8951, 8946, 3, 2, 2, 2, 8951, 8947, 3, 2, 2, 2, 8952, 739, 3, 2, 2, 2, 8953, 8954, 5, 446, 224, 2, 8954, 741, 3, 2, 2, 2, 8955, 8958, 7, 377, 2, 2, 8956, 8957, 7, 791, 2, 2, 8957, 8959, 7, 830, 2, 2, 8958, 8956, 3, 2, 2, 2, 8958, 8959, 3, 2, 2, 2, 8959, 8960, 3, 2, 2, 2, 8960, 8965, 5, 744, 373, 2, 8961, 8962, 7, 830, 2, 2, 8962, 8964, 5, 744, 373, 2, 8963, 8961, 3, 2, 2, 2, 8964, 8967, 3, 2, 2, 2, 8965, 8963, 3, 2, 2, 2, 8965, 8966, 3, 2, 2, 2, 8966, 8982, 3, 2, 2, 2, 8967, 8965, 3, 2, 2, 2, 8968, 8969, 7, 377, 2, 2, 8969, 8974, 7, 32, 2, 2, 8970, 8971, 7, 828, 2, 2, 8971, 8972, 5, 822, 412, 2, 8972, 8973, 7, 829, 2, 2, 8973, 8975, 3, 2, 2, 2, 8974, 8970, 3, 2, 2, 2, 8974, 8975, 3, 2, 2, 2, 8975, 8976, 3, 2, 2, 2, 8976, 8977, 7, 16, 2, 2, 8977, 8978, 7, 828, 2, 2, 8978, 8979, 5, 446, 224, 2, 8979, 8980, 7, 829, 2, 2, 8980, 8982, 3, 2, 2, 2, 8981, 8955, 3, 2, 2, 2, 8981, 8968, 3, 2, 2, 2, 8982, 743, 3, 2, 2, 2, 8983, 8988, 5, 966, 484, 2, 8984, 8985, 7, 828, 2, 2, 8985, 8986, 5, 926, 464, 2, 8986, 8987, 7, 829, 2, 2, 8987, 8989, 3, 2, 2, 2, 8988, 8984, 3, 2, 2, 2, 8988, 8989, 3, 2, 2, 2, 8989, 8990, 3, 2, 2, 2, 8990, 8991, 7, 16, 2, 2, 8991, 8992, 7, 828, 2, 2, 8992, 8993, 5, 446, 224, 2, 8993, 8994, 7, 829, 2, 2, 8994, 745, 3, 2, 2, 2, 8995, 8998, 5, 922, 462, 2, 8996, 8998, 7, 801, 2, 2, 8997, 8995, 3, 2, 2, 2, 8997, 8996, 3, 2, 2, 2, 8998, 9001, 3, 2, 2, 2, 8999, 9002, 7, 810, 2, 2, 9000, 9002, 5, 972, 487, 2, 9001, 8999, 3, 2, 2, 2, 9001, 9000, 3, 2, 2, 2, 9002, 9003, 3, 2, 2, 2, 9003, 9012, 5, 728, 365, 2, 9004, 9005, 5, 966, 484, 2, 9005, 9006, 7, 823, 2, 2, 9006, 9007, 5, 966, 484, 2, 9007, 9008, 7, 828, 2, 2, 9008, 9009, 5, 870, 436, 2, 9009, 9010, 7, 829, 2, 2, 9010, 9012, 3, 2, 2, 2, 9011, 8997, 3, 2, 2, 2, 9011, 9004, 3, 2, 2, 2, 9012, 747, 3, 2, 2, 2, 9013, 9018, 5, 750, 376, 2, 9014, 9015, 7, 830, 2, 2, 9015, 9017, 5, 750, 376, 2, 9016, 9014, 3, 2, 2, 2, 9017, 9020, 3, 2, 2, 2, 9018, 9016, 3, 2, 2, 2, 9018, 9019, 3, 2, 2, 2, 9019, 749, 3, 2, 2, 2, 9020, 9018, 3, 2, 2, 2, 9021, 9026, 5, 752, 377, 2, 9022, 9023, 7, 237, 2, 2, 9023, 9025, 5, 752, 377, 2, 9024, 9022, 3, 2, 2, 2, 9025, 9028, 3, 2, 2, 2, 9026, 9024, 3, 2, 2, 2, 9026, 9027, 3, 2, 2, 2, 9027, 751, 3, 2, 2, 2, 9028, 9026, 3, 2, 2, 2, 9029, 9034, 5, 754, 378, 2, 9030, 9031, 7, 11, 2, 2, 9031, 9033, 5, 754, 378, 2, 9032, 9030, 3, 2, 2, 2, 9033, 9036, 3, 2, 2, 2, 9034, 9032, 3, 2, 2, 2, 9034, 9035, 3, 2, 2, 2, 9035, 753, 3, 2, 2, 2, 9036, 9034, 3, 2, 2, 2, 9037, 9039, 7, 220, 2, 2, 9038, 9037, 3, 2, 2, 2, 9038, 9039, 3, 2, 2, 2, 9039, 9040, 3, 2, 2, 2, 9040, 9041, 5, 756, 379, 2, 9041, 755, 3, 2, 2, 2, 9042, 9043, 7, 119, 2, 2, 9043, 9044, 7, 828, 2, 2, 9044, 9045, 5, 740, 371, 2, 9045, 9046, 7, 829, 2, 2, 9046, 9098, 3, 2, 2, 2, 9047, 9048, 5, 728, 365, 2, 9048, 9049, 5, 970, 486, 2, 9049, 9050, 5, 728, 365, 2, 9050, 9098, 3, 2, 2, 2, 9051, 9052, 5, 728, 365, 2, 9052, 9053, 5, 970, 486, 2, 9053, 9054, 9, 110, 2, 2, 9054, 9055, 7, 828, 2, 2, 9055, 9056, 5, 740, 371, 2, 9056, 9057, 7, 829, 2, 2, 9057, 9098, 3, 2, 2, 2, 9058, 9060, 5, 728, 365, 2, 9059, 9061, 7, 220, 2, 2, 9060, 9059, 3, 2, 2, 2, 9060, 9061, 3, 2, 2, 2, 9061, 9062, 3, 2, 2, 2, 9062, 9063, 7, 29, 2, 2, 9063, 9064, 5, 728, 365, 2, 9064, 9065, 7, 11, 2, 2, 9065, 9066, 5, 728, 365, 2, 9066, 9098, 3, 2, 2, 2, 9067, 9069, 5, 728, 365, 2, 9068, 9070, 7, 220, 2, 2, 9069, 9068, 3, 2, 2, 2, 9069, 9070, 3, 2, 2, 2, 9070, 9071, 3, 2, 2, 2, 9071, 9072, 7, 155, 2, 2, 9072, 9075, 7, 828, 2, 2, 9073, 9076, 5, 740, 371, 2, 9074, 9076, 5, 870, 436, 2, 9075, 9073, 3, 2, 2, 2, 9075, 9074, 3, 2, 2, 2, 9076, 9077, 3, 2, 2, 2, 9077, 9078, 7, 829, 2, 2, 9078, 9098, 3, 2, 2, 2, 9079, 9081, 5, 728, 365, 2, 9080, 9082, 7, 220, 2, 2, 9081, 9080, 3, 2, 2, 2, 9081, 9082, 3, 2, 2, 2, 9082, 9083, 3, 2, 2, 2, 9083, 9084, 7, 180, 2, 2, 9084, 9087, 5, 728, 365, 2, 9085, 9086, 7, 111, 2, 2, 9086, 9088, 5, 728, 365, 2, 9087, 9085, 3, 2, 2, 2, 9087, 9088, 3, 2, 2, 2, 9088, 9098, 3, 2, 2, 2, 9089, 9090, 5, 728, 365, 2, 9090, 9091, 7, 168, 2, 2, 9091, 9092, 5, 934, 468, 2, 9092, 9098, 3, 2, 2, 2, 9093, 9094, 7, 828, 2, 2, 9094, 9095, 5, 750, 376, 2, 9095, 9096, 7, 829, 2, 2, 9096, 9098, 3, 2, 2, 2, 9097, 9042, 3, 2, 2, 2, 9097, 9047, 3, 2, 2, 2, 9097, 9051, 3, 2, 2, 2, 9097, 9058, 3, 2, 2, 2, 9097, 9067, 3, 2, 2, 2, 9097, 9079, 3, 2, 2, 2, 9097, 9089, 3, 2, 2, 2, 9097, 9093, 3, 2, 2, 2, 9098, 757, 3, 2, 2, 2, 9099, 9105, 5, 762, 382, 2, 9100, 9101, 7, 828, 2, 2, 9101, 9102, 5, 758, 380, 2, 9102, 9103, 7, 829, 2, 2, 9103, 9105, 3, 2, 2, 2, 9104, 9099, 3, 2, 2, 2, 9104, 9100, 3, 2, 2, 2, 9105, 9109, 3, 2, 2, 2, 9106, 9108, 5, 760, 381, 2, 9107, 9106, 3, 2, 2, 2, 9108, 9111, 3, 2, 2, 2, 9109, 9107, 3, 2, 2, 2, 9109, 9110, 3, 2, 2, 2, 9110, 759, 3, 2, 2, 2, 9111, 9109, 3, 2, 2, 2, 9112, 9114, 7, 356, 2, 2, 9113, 9115, 7, 6, 2, 2, 9114, 9113, 3, 2, 2, 2, 9114, 9115, 3, 2, 2, 2, 9115, 9119, 3, 2, 2, 2, 9116, 9119, 7, 116, 2, 2, 9117, 9119, 7, 164, 2, 2, 9118, 9112, 3, 2, 2, 2, 9118, 9116, 3, 2, 2, 2, 9118, 9117, 3, 2, 2, 2, 9119, 9125, 3, 2, 2, 2, 9120, 9126, 5, 762, 382, 2, 9121, 9122, 7, 828, 2, 2, 9122, 9123, 5, 758, 380, 2, 9123, 9124, 7, 829, 2, 2, 9124, 9126, 3, 2, 2, 2, 9125, 9120, 3, 2, 2, 2, 9125, 9121, 3, 2, 2, 2, 9126, 761, 3, 2, 2, 2, 9127, 9129, 7, 305, 2, 2, 9128, 9130, 9, 111, 2, 2, 9129, 9128, 3, 2, 2, 2, 9129, 9130, 3, 2, 2, 2, 9130, 9132, 3, 2, 2, 2, 9131, 9133, 5, 764, 383, 2, 9132, 9131, 3, 2, 2, 2, 9132, 9133, 3, 2, 2, 2, 9133, 9134, 3, 2, 2, 2, 9134, 9137, 5, 786, 394, 2, 9135, 9136, 7, 165, 2, 2, 9136, 9138, 5, 910, 456, 2, 9137, 9135, 3, 2, 2, 2, 9137, 9138, 3, 2, 2, 2, 9138, 9141, 3, 2, 2, 2, 9139, 9140, 7, 139, 2, 2, 9140, 9142, 5, 800, 401, 2, 9141, 9139, 3, 2, 2, 2, 9141, 9142, 3, 2, 2, 2, 9142, 9145, 3, 2, 2, 2, 9143, 9144, 7, 374, 2, 2, 9144, 9146, 5, 750, 376, 2, 9145, 9143, 3, 2, 2, 2, 9145, 9146, 3, 2, 2, 2, 9146, 9160, 3, 2, 2, 2, 9147, 9148, 7, 146, 2, 2, 9148, 9150, 7, 38, 2, 2, 9149, 9151, 7, 6, 2, 2, 9150, 9149, 3, 2, 2, 2, 9150, 9151, 3, 2, 2, 2, 9151, 9152, 3, 2, 2, 2, 9152, 9157, 5, 778, 390, 2, 9153, 9154, 7, 830, 2, 2, 9154, 9156, 5, 778, 390, 2, 9155, 9153, 3, 2, 2, 2, 9156, 9159, 3, 2, 2, 2, 9157, 9155, 3, 2, 2, 2, 9157, 9158, 3, 2, 2, 2, 9158, 9161, 3, 2, 2, 2, 9159, 9157, 3, 2, 2, 2, 9160, 9147, 3, 2, 2, 2, 9160, 9161, 3, 2, 2, 2, 9161, 9164, 3, 2, 2, 2, 9162, 9163, 7, 147, 2, 2, 9163, 9165, 5, 750, 376, 2, 9164, 9162, 3, 2, 2, 2, 9164, 9165, 3, 2, 2, 2, 9165, 763, 3, 2, 2, 2, 9166, 9169, 7, 347, 2, 2, 9167, 9170, 5, 766, 384, 2, 9168, 9170, 5, 768, 385, 2, 9169, 9167, 3, 2, 2, 2, 9169, 9168, 3, 2, 2, 2, 9170, 9173, 3, 2, 2, 2, 9171, 9172, 7, 377, 2, 2, 9172, 9174, 7, 756, 2, 2, 9173, 9171, 3, 2, 2, 2, 9173, 9174, 3, 2, 2, 2, 9174, 765, 3, 2, 2, 2, 9175, 9176, 9, 112, 2, 2, 9176, 9183, 7, 245, 2, 2, 9177, 9178, 7, 828, 2, 2, 9178, 9179, 5, 728, 365, 2, 9179, 9180, 7, 829, 2, 2, 9180, 9181, 7, 245, 2, 2, 9181, 9183, 3, 2, 2, 2, 9182, 9175, 3, 2, 2, 2, 9182, 9177, 3, 2, 2, 2, 9183, 767, 3, 2, 2, 2, 9184, 9190, 7, 802, 2, 2, 9185, 9186, 7, 828, 2, 2, 9186, 9187, 5, 728, 365, 2, 9187, 9188, 7, 829, 2, 2, 9188, 9190, 3, 2, 2, 2, 9189, 9184, 3, 2, 2, 2, 9189, 9185, 3, 2, 2, 2, 9190, 769, 3, 2, 2, 2, 9191, 9192, 7, 238, 2, 2, 9192, 9193, 7, 38, 2, 2, 9193, 9198, 5, 776, 389, 2, 9194, 9195, 7, 830, 2, 2, 9195, 9197, 5, 776, 389, 2, 9196, 9194, 3, 2, 2, 2, 9197, 9200, 3, 2, 2, 2, 9198, 9196, 3, 2, 2, 2, 9198, 9199, 3, 2, 2, 2, 9199, 9212, 3, 2, 2, 2, 9200, 9198, 3, 2, 2, 2, 9201, 9202, 7, 627, 2, 2, 9202, 9203, 5, 728, 365, 2, 9203, 9210, 9, 113, 2, 2, 9204, 9205, 7, 128, 2, 2, 9205, 9206, 9, 114, 2, 2, 9206, 9207, 5, 728, 365, 2, 9207, 9208, 9, 113, 2, 2, 9208, 9209, 7, 630, 2, 2, 9209, 9211, 3, 2, 2, 2, 9210, 9204, 3, 2, 2, 2, 9210, 9211, 3, 2, 2, 2, 9211, 9213, 3, 2, 2, 2, 9212, 9201, 3, 2, 2, 2, 9212, 9213, 3, 2, 2, 2, 9213, 771, 3, 2, 2, 2, 9214, 9215, 7, 133, 2, 2, 9215, 9303, 7, 34, 2, 2, 9216, 9217, 7, 133, 2, 2, 9217, 9225, 7, 789, 2, 2, 9218, 9222, 7, 265, 2, 2, 9219, 9220, 7, 828, 2, 2, 9220, 9221, 7, 806, 2, 2, 9221, 9223, 7, 829, 2, 2, 9222, 9219, 3, 2, 2, 2, 9222, 9223, 3, 2, 2, 2, 9223, 9226, 3, 2, 2, 2, 9224, 9226, 7, 408, 2, 2, 9225, 9218, 3, 2, 2, 2, 9225, 9224, 3, 2, 2, 2, 9226, 9230, 3, 2, 2, 2, 9227, 9229, 5, 774, 388, 2, 9228, 9227, 3, 2, 2, 2, 9229, 9232, 3, 2, 2, 2, 9230, 9228, 3, 2, 2, 2, 9230, 9231, 3, 2, 2, 2, 9231, 9243, 3, 2, 2, 2, 9232, 9230, 3, 2, 2, 2, 9233, 9241, 7, 830, 2, 2, 9234, 9242, 7, 790, 2, 2, 9235, 9239, 7, 792, 2, 2, 9236, 9237, 7, 828, 2, 2, 9237, 9238, 7, 806, 2, 2, 9238, 9240, 7, 829, 2, 2, 9239, 9236, 3, 2, 2, 2, 9239, 9240, 3, 2, 2, 2, 9240, 9242, 3, 2, 2, 2, 9241, 9234, 3, 2, 2, 2, 9241, 9235, 3, 2, 2, 2, 9242, 9244, 3, 2, 2, 2, 9243, 9233, 3, 2, 2, 2, 9243, 9244, 3, 2, 2, 2, 9244, 9248, 3, 2, 2, 2, 9245, 9246, 7, 830, 2, 2, 9246, 9247, 7, 486, 2, 2, 9247, 9249, 9, 115, 2, 2, 9248, 9245, 3, 2, 2, 2, 9248, 9249, 3, 2, 2, 2, 9249, 9303, 3, 2, 2, 2, 9250, 9251, 7, 133, 2, 2, 9251, 9252, 7, 789, 2, 2, 9252, 9256, 7, 500, 2, 2, 9253, 9255, 5, 774, 388, 2, 9254, 9253, 3, 2, 2, 2, 9255, 9258, 3, 2, 2, 2, 9256, 9254, 3, 2, 2, 2, 9256, 9257, 3, 2, 2, 2, 9257, 9261, 3, 2, 2, 2, 9258, 9256, 3, 2, 2, 2, 9259, 9260, 7, 830, 2, 2, 9260, 9262, 7, 790, 2, 2, 9261, 9259, 3, 2, 2, 2, 9261, 9262, 3, 2, 2, 2, 9262, 9303, 3, 2, 2, 2, 9263, 9264, 7, 133, 2, 2, 9264, 9265, 7, 789, 2, 2, 9265, 9269, 7, 643, 2, 2, 9266, 9267, 7, 828, 2, 2, 9267, 9268, 7, 806, 2, 2, 9268, 9270, 7, 829, 2, 2, 9269, 9266, 3, 2, 2, 2, 9269, 9270, 3, 2, 2, 2, 9270, 9274, 3, 2, 2, 2, 9271, 9273, 5, 774, 388, 2, 9272, 9271, 3, 2, 2, 2, 9273, 9276, 3, 2, 2, 2, 9274, 9272, 3, 2, 2, 2, 9274, 9275, 3, 2, 2, 2, 9275, 9280, 3, 2, 2, 2, 9276, 9274, 3, 2, 2, 2, 9277, 9278, 7, 830, 2, 2, 9278, 9279, 7, 486, 2, 2, 9279, 9281, 9, 115, 2, 2, 9280, 9277, 3, 2, 2, 2, 9280, 9281, 3, 2, 2, 2, 9281, 9303, 3, 2, 2, 2, 9282, 9283, 7, 133, 2, 2, 9283, 9284, 7, 551, 2, 2, 9284, 9292, 9, 116, 2, 2, 9285, 9286, 7, 830, 2, 2, 9286, 9290, 7, 695, 2, 2, 9287, 9288, 7, 828, 2, 2, 9288, 9289, 7, 806, 2, 2, 9289, 9291, 7, 829, 2, 2, 9290, 9287, 3, 2, 2, 2, 9290, 9291, 3, 2, 2, 2, 9291, 9293, 3, 2, 2, 2, 9292, 9285, 3, 2, 2, 2, 9292, 9293, 3, 2, 2, 2, 9293, 9296, 3, 2, 2, 2, 9294, 9295, 7, 830, 2, 2, 9295, 9297, 7, 541, 2, 2, 9296, 9294, 3, 2, 2, 2, 9296, 9297, 3, 2, 2, 2, 9297, 9300, 3, 2, 2, 2, 9298, 9299, 7, 830, 2, 2, 9299, 9301, 7, 786, 2, 2, 9300, 9298, 3, 2, 2, 2, 9300, 9301, 3, 2, 2, 2, 9301, 9303, 3, 2, 2, 2, 9302, 9214, 3, 2, 2, 2, 9302, 9216, 3, 2, 2, 2, 9302, 9250, 3, 2, 2, 2, 9302, 9263, 3, 2, 2, 2, 9302, 9282, 3, 2, 2, 2, 9303, 773, 3, 2, 2, 2, 9304, 9313, 7, 830, 2, 2, 9305, 9314, 7, 420, 2, 2, 9306, 9314, 7, 769, 2, 2, 9307, 9311, 7, 695, 2, 2, 9308, 9309, 7, 828, 2, 2, 9309, 9310, 7, 806, 2, 2, 9310, 9312, 7, 829, 2, 2, 9311, 9308, 3, 2, 2, 2, 9311, 9312, 3, 2, 2, 2, 9312, 9314, 3, 2, 2, 2, 9313, 9305, 3, 2, 2, 2, 9313, 9306, 3, 2, 2, 2, 9313, 9307, 3, 2, 2, 2, 9314, 775, 3, 2, 2, 2, 9315, 9317, 5, 728, 365, 2, 9316, 9318, 9, 117, 2, 2, 9317, 9316, 3, 2, 2, 2, 9317, 9318, 3, 2, 2, 2, 9318, 777, 3, 2, 2, 2, 9319, 9320, 5, 728, 365, 2, 9320, 779, 3, 2, 2, 2, 9321, 9322, 7, 236, 2, 2, 9322, 9323, 7, 828, 2, 2, 9323, 9328, 5, 782, 392, 2, 9324, 9325, 7, 830, 2, 2, 9325, 9327, 5, 782, 392, 2, 9326, 9324, 3, 2, 2, 2, 9327, 9330, 3, 2, 2, 2, 9328, 9326, 3, 2, 2, 2, 9328, 9329, 3, 2, 2, 2, 9329, 9331, 3, 2, 2, 2, 9330, 9328, 3, 2, 2, 2, 9331, 9332, 7, 829, 2, 2, 9332, 781, 3, 2, 2, 2, 9333, 9334, 7, 505, 2, 2, 9334, 9379, 7, 802, 2, 2, 9335, 9336, 9, 118, 2, 2, 9336, 9379, 7, 146, 2, 2, 9337, 9338, 9, 119, 2, 2, 9338, 9379, 7, 356, 2, 2, 9339, 9340, 9, 120, 2, 2, 9340, 9379, 7, 170, 2, 2, 9341, 9342, 7, 498, 2, 2, 9342, 9379, 7, 783, 2, 2, 9343, 9344, 7, 515, 2, 2, 9344, 9379, 7, 238, 2, 2, 9345, 9379, 7, 537, 2, 2, 9346, 9347, 7, 553, 2, 2, 9347, 9379, 7, 251, 2, 2, 9348, 9349, 7, 554, 2, 2, 9349, 9379, 7, 251, 2, 2, 9350, 9351, 7, 586, 2, 2, 9351, 9379, 7, 802, 2, 2, 9352, 9353, 7, 587, 2, 2, 9353, 9379, 7, 802, 2, 2, 9354, 9355, 7, 633, 2, 2, 9355, 9356, 7, 133, 2, 2, 9356, 9357, 7, 828, 2, 2, 9357, 9362, 5, 784, 393, 2, 9358, 9359, 7, 830, 2, 2, 9359, 9361, 5, 784, 393, 2, 9360, 9358, 3, 2, 2, 2, 9361, 9364, 3, 2, 2, 2, 9362, 9360, 3, 2, 2, 2, 9362, 9363, 3, 2, 2, 2, 9363, 9365, 3, 2, 2, 2, 9364, 9362, 3, 2, 2, 2, 9365, 9366, 7, 829, 2, 2, 9366, 9379, 3, 2, 2, 2, 9367, 9368, 7, 633, 2, 2, 9368, 9369, 7, 133, 2, 2, 9369, 9379, 7, 773, 2, 2, 9370, 9371, 7, 639, 2, 2, 9371, 9379, 9, 77, 2, 2, 9372, 9379, 7, 675, 2, 2, 9373, 9374, 7, 694, 2, 2, 9374, 9379, 7, 251, 2, 2, 9375, 9376, 7, 364, 2, 2, 9376, 9377, 7, 251, 2, 2, 9377, 9379, 7, 806, 2, 2, 9378, 9333, 3, 2, 2, 2, 9378, 9335, 3, 2, 2, 2, 9378, 9337, 3, 2, 2, 2, 9378, 9339, 3, 2, 2, 2, 9378, 9341, 3, 2, 2, 2, 9378, 9343, 3, 2, 2, 2, 9378, 9345, 3, 2, 2, 2, 9378, 9346, 3, 2, 2, 2, 9378, 9348, 3, 2, 2, 2, 9378, 9350, 3, 2, 2, 2, 9378, 9352, 3, 2, 2, 2, 9378, 9354, 3, 2, 2, 2, 9378, 9367, 3, 2, 2, 2, 9378, 9370, 3, 2, 2, 2, 9378, 9372, 3, 2, 2, 2, 9378, 9373, 3, 2, 2, 2, 9378, 9375, 3, 2, 2, 2, 9379, 783, 3, 2, 2, 2, 9380, 9387, 7, 801, 2, 2, 9381, 9388, 7, 773, 2, 2, 9382, 9385, 7, 810, 2, 2, 9383, 9386, 5, 962, 482, 2, 9384, 9386, 7, 223, 2, 2, 9385, 9383, 3, 2, 2, 2, 9385, 9384, 3, 2, 2, 2, 9386, 9388, 3, 2, 2, 2, 9387, 9381, 3, 2, 2, 2, 9387, 9382, 3, 2, 2, 2, 9388, 785, 3, 2, 2, 2, 9389, 9394, 5, 798, 400, 2, 9390, 9391, 7, 830, 2, 2, 9391, 9393, 5, 798, 400, 2, 9392, 9390, 3, 2, 2, 2, 9393, 9396, 3, 2, 2, 2, 9394, 9392, 3, 2, 2, 2, 9394, 9395, 3, 2, 2, 2, 9395, 787, 3, 2, 2, 2, 9396, 9394, 3, 2, 2, 2, 9397, 9398, 7, 828, 2, 2, 9398, 9403, 5, 638, 320, 2, 9399, 9400, 7, 830, 2, 2, 9400, 9402, 5, 638, 320, 2, 9401, 9399, 3, 2, 2, 2, 9402, 9405, 3, 2, 2, 2, 9403, 9401, 3, 2, 2, 2, 9403, 9404, 3, 2, 2, 2, 9404, 9406, 3, 2, 2, 2, 9405, 9403, 3, 2, 2, 2, 9406, 9407, 7, 829, 2, 2, 9407, 789, 3, 2, 2, 2, 9408, 9409, 5, 910, 456, 2, 9409, 9410, 7, 823, 2, 2, 9410, 9412, 3, 2, 2, 2, 9411, 9408, 3, 2, 2, 2, 9411, 9412, 3, 2, 2, 2, 9412, 9413, 3, 2, 2, 2, 9413, 9414, 7, 833, 2, 2, 9414, 791, 3, 2, 2, 2, 9415, 9416, 5, 910, 456, 2, 9416, 9417, 7, 823, 2, 2, 9417, 9419, 3, 2, 2, 2, 9418, 9415, 3, 2, 2, 2, 9418, 9419, 3, 2, 2, 2, 9419, 9425, 3, 2, 2, 2, 9420, 9426, 5, 966, 484, 2, 9421, 9422, 7, 827, 2, 2, 9422, 9426, 7, 150, 2, 2, 9423, 9424, 7, 827, 2, 2, 9424, 9426, 7, 699, 2, 2, 9425, 9420, 3, 2, 2, 2, 9425, 9421, 3, 2, 2, 2, 9425, 9423, 3, 2, 2, 2, 9426, 9429, 3, 2, 2, 2, 9427, 9429, 7, 223, 2, 2, 9428, 9418, 3, 2, 2, 2, 9428, 9427, 3, 2, 2, 2, 9429, 9431, 3, 2, 2, 2, 9430, 9432, 5, 850, 426, 2, 9431, 9430, 3, 2, 2, 2, 9431, 9432, 3, 2, 2, 2, 9432, 793, 3, 2, 2, 2, 9433, 9434, 5, 966, 484, 2, 9434, 9435, 7, 823, 2, 2, 9435, 9436, 5, 966, 484, 2, 9436, 9438, 5, 788, 395, 2, 9437, 9439, 5, 850, 426, 2, 9438, 9437, 3, 2, 2, 2, 9438, 9439, 3, 2, 2, 2, 9439, 9451, 3, 2, 2, 2, 9440, 9441, 5, 966, 484, 2, 9441, 9442, 7, 832, 2, 2, 9442, 9443, 7, 832, 2, 2, 9443, 9445, 5, 966, 484, 2, 9444, 9446, 5, 788, 395, 2, 9445, 9444, 3, 2, 2, 2, 9445, 9446, 3, 2, 2, 2, 9446, 9448, 3, 2, 2, 2, 9447, 9449, 5, 850, 426, 2, 9448, 9447, 3, 2, 2, 2, 9448, 9449, 3, 2, 2, 2, 9449, 9451, 3, 2, 2, 2, 9450, 9433, 3, 2, 2, 2, 9450, 9440, 3, 2, 2, 2, 9451, 795, 3, 2, 2, 2, 9452, 9453, 5, 866, 434, 2, 9453, 9454, 7, 810, 2, 2, 9454, 9455, 5, 728, 365, 2, 9455, 9461, 3, 2, 2, 2, 9456, 9458, 5, 728, 365, 2, 9457, 9459, 5, 850, 426, 2, 9458, 9457, 3, 2, 2, 2, 9458, 9459, 3, 2, 2, 2, 9459, 9461, 3, 2, 2, 2, 9460, 9452, 3, 2, 2, 2, 9460, 9456, 3, 2, 2, 2, 9461, 797, 3, 2, 2, 2, 9462, 9467, 5, 790, 396, 2, 9463, 9467, 5, 792, 397, 2, 9464, 9467, 5, 794, 398, 2, 9465, 9467, 5, 796, 399, 2, 9466, 9462, 3, 2, 2, 2, 9466, 9463, 3, 2, 2, 2, 9466, 9464, 3, 2, 2, 2, 9466, 9465, 3, 2, 2, 2, 9467, 799, 3, 2, 2, 2, 9468, 9473, 5, 802, 402, 2, 9469, 9470, 7, 830, 2, 2, 9470, 9472, 5, 802, 402, 2, 9471, 9469, 3, 2, 2, 2, 9472, 9475, 3, 2, 2, 2, 9473, 9471, 3, 2, 2, 2, 9473, 9474, 3, 2, 2, 2, 9474, 801, 3, 2, 2, 2, 9475, 9473, 3, 2, 2, 2, 9476, 9482, 5, 804, 403, 2, 9477, 9478, 7, 828, 2, 2, 9478, 9479, 5, 804, 403, 2, 9479, 9480, 7, 829, 2, 2, 9480, 9482, 3, 2, 2, 2, 9481, 9476, 3, 2, 2, 2, 9481, 9477, 3, 2, 2, 2, 9482, 803, 3, 2, 2, 2, 9483, 9487, 5, 806, 404, 2, 9484, 9486, 5, 816, 409, 2, 9485, 9484, 3, 2, 2, 2, 9486, 9489, 3, 2, 2, 2, 9487, 9485, 3, 2, 2, 2, 9487, 9488, 3, 2, 2, 2, 9488, 805, 3, 2, 2, 2, 9489, 9487, 3, 2, 2, 2, 9490, 9492, 5, 824, 413, 2, 9491, 9493, 5, 852, 427, 2, 9492, 9491, 3, 2, 2, 2, 9492, 9493, 3, 2, 2, 2, 9493, 9540, 3, 2, 2, 2, 9494, 9496, 5, 908, 455, 2, 9495, 9497, 5, 852, 427, 2, 9496, 9495, 3, 2, 2, 2, 9496, 9497, 3, 2, 2, 2, 9497, 9540, 3, 2, 2, 2, 9498, 9500, 5, 826, 414, 2, 9499, 9501, 5, 852, 427, 2, 9500, 9499, 3, 2, 2, 2, 9500, 9501, 3, 2, 2, 2, 9501, 9540, 3, 2, 2, 2, 9502, 9507, 5, 830, 416, 2, 9503, 9505, 5, 852, 427, 2, 9504, 9506, 5, 864, 433, 2, 9505, 9504, 3, 2, 2, 2, 9505, 9506, 3, 2, 2, 2, 9506, 9508, 3, 2, 2, 2, 9507, 9503, 3, 2, 2, 2, 9507, 9508, 3, 2, 2, 2, 9508, 9540, 3, 2, 2, 2, 9509, 9510, 5, 814, 408, 2, 9510, 9511, 5, 852, 427, 2, 9511, 9540, 3, 2, 2, 2, 9512, 9517, 5, 832, 417, 2, 9513, 9515, 5, 852, 427, 2, 9514, 9516, 5, 864, 433, 2, 9515, 9514, 3, 2, 2, 2, 9515, 9516, 3, 2, 2, 2, 9516, 9518, 3, 2, 2, 2, 9517, 9513, 3, 2, 2, 2, 9517, 9518, 3, 2, 2, 2, 9518, 9540, 3, 2, 2, 2, 9519, 9521, 7, 801, 2, 2, 9520, 9522, 5, 852, 427, 2, 9521, 9520, 3, 2, 2, 2, 9521, 9522, 3, 2, 2, 2, 9522, 9540, 3, 2, 2, 2, 9523, 9524, 7, 801, 2, 2, 9524, 9525, 7, 823, 2, 2, 9525, 9530, 5, 832, 417, 2, 9526, 9528, 5, 852, 427, 2, 9527, 9529, 5, 864, 433, 2, 9528, 9527, 3, 2, 2, 2, 9528, 9529, 3, 2, 2, 2, 9529, 9531, 3, 2, 2, 2, 9530, 9526, 3, 2, 2, 2, 9530, 9531, 3, 2, 2, 2, 9531, 9540, 3, 2, 2, 2, 9532, 9540, 5, 808, 405, 2, 9533, 9534, 7, 832, 2, 2, 9534, 9535, 7, 832, 2, 2, 9535, 9537, 5, 832, 417, 2, 9536, 9538, 5, 852, 427, 2, 9537, 9536, 3, 2, 2, 2, 9537, 9538, 3, 2, 2, 2, 9538, 9540, 3, 2, 2, 2, 9539, 9490, 3, 2, 2, 2, 9539, 9494, 3, 2, 2, 2, 9539, 9498, 3, 2, 2, 2, 9539, 9502, 3, 2, 2, 2, 9539, 9509, 3, 2, 2, 2, 9539, 9512, 3, 2, 2, 2, 9539, 9519, 3, 2, 2, 2, 9539, 9523, 3, 2, 2, 2, 9539, 9532, 3, 2, 2, 2, 9539, 9533, 3, 2, 2, 2, 9540, 807, 3, 2, 2, 2, 9541, 9542, 7, 235, 2, 2, 9542, 9543, 7, 828, 2, 2, 9543, 9544, 5, 728, 365, 2, 9544, 9545, 7, 830, 2, 2, 9545, 9548, 5, 728, 365, 2, 9546, 9547, 7, 830, 2, 2, 9547, 9549, 5, 728, 365, 2, 9548, 9546, 3, 2, 2, 2, 9548, 9549, 3, 2, 2, 2, 9549, 9550, 3, 2, 2, 2, 9550, 9556, 7, 829, 2, 2, 9551, 9552, 7, 377, 2, 2, 9552, 9553, 7, 828, 2, 2, 9553, 9554, 5, 810, 406, 2, 9554, 9555, 7, 829, 2, 2, 9555, 9557, 3, 2, 2, 2, 9556, 9551, 3, 2, 2, 2, 9556, 9557, 3, 2, 2, 2, 9557, 809, 3, 2, 2, 2, 9558, 9563, 5, 812, 407, 2, 9559, 9560, 7, 830, 2, 2, 9560, 9562, 5, 812, 407, 2, 9561, 9559, 3, 2, 2, 2, 9562, 9565, 3, 2, 2, 2, 9563, 9561, 3, 2, 2, 2, 9563, 9564, 3, 2, 2, 2, 9564, 811, 3, 2, 2, 2, 9565, 9563, 3, 2, 2, 2, 9566, 9567, 7, 803, 2, 2, 9567, 9569, 5, 958, 480, 2, 9568, 9570, 7, 806, 2, 2, 9569, 9568, 3, 2, 2, 2, 9569, 9570, 3, 2, 2, 2, 9570, 813, 3, 2, 2, 2, 9571, 9572, 7, 44, 2, 2, 9572, 9573, 7, 828, 2, 2, 9573, 9574, 7, 45, 2, 2, 9574, 9575, 5, 910, 456, 2, 9575, 9576, 7, 830, 2, 2, 9576, 9577, 9, 121, 2, 2, 9577, 9578, 7, 829, 2, 2, 9578, 815, 3, 2, 2, 2, 9579, 9581, 7, 161, 2, 2, 9580, 9579, 3, 2, 2, 2, 9580, 9581, 3, 2, 2, 2, 9581, 9587, 3, 2, 2, 2, 9582, 9584, 9, 122, 2, 2, 9583, 9585, 7, 239, 2, 2, 9584, 9583, 3, 2, 2, 2, 9584, 9585, 3, 2, 2, 2, 9585, 9587, 3, 2, 2, 2, 9586, 9580, 3, 2, 2, 2, 9586, 9582, 3, 2, 2, 2, 9587, 9589, 3, 2, 2, 2, 9588, 9590, 9, 123, 2, 2, 9589, 9588, 3, 2, 2, 2, 9589, 9590, 3, 2, 2, 2, 9590, 9591, 3, 2, 2, 2, 9591, 9592, 7, 170, 2, 2, 9592, 9593, 5, 802, 402, 2, 9593, 9594, 7, 229, 2, 2, 9594, 9595, 5, 750, 376, 2, 9595, 9614, 3, 2, 2, 2, 9596, 9597, 7, 74, 2, 2, 9597, 9598, 7, 170, 2, 2, 9598, 9614, 5, 802, 402, 2, 9599, 9600, 7, 74, 2, 2, 9600, 9601, 7, 403, 2, 2, 9601, 9614, 5, 802, 402, 2, 9602, 9603, 7, 239, 2, 2, 9603, 9604, 7, 403, 2, 2, 9604, 9614, 5, 802, 402, 2, 9605, 9606, 7, 250, 2, 2, 9606, 9607, 5, 818, 410, 2, 9607, 9608, 5, 852, 427, 2, 9608, 9614, 3, 2, 2, 2, 9609, 9610, 7, 359, 2, 2, 9610, 9611, 5, 820, 411, 2, 9611, 9612, 5, 852, 427, 2, 9612, 9614, 3, 2, 2, 2, 9613, 9586, 3, 2, 2, 2, 9613, 9596, 3, 2, 2, 2, 9613, 9599, 3, 2, 2, 2, 9613, 9602, 3, 2, 2, 2, 9613, 9605, 3, 2, 2, 2, 9613, 9609, 3, 2, 2, 2, 9614, 817, 3, 2, 2, 2, 9615, 9616, 7, 828, 2, 2, 9616, 9617, 5, 874, 438, 2, 9617, 9618, 7, 133, 2, 2, 9618, 9619, 5, 922, 462, 2, 9619, 9620, 7, 155, 2, 2, 9620, 9621, 5, 864, 433, 2, 9621, 9622, 7, 829, 2, 2, 9622, 819, 3, 2, 2, 2, 9623, 9624, 7, 828, 2, 2, 9624, 9625, 5, 728, 365, 2, 9625, 9626, 7, 133, 2, 2, 9626, 9627, 5, 922, 462, 2, 9627, 9628, 7, 155, 2, 2, 9628, 9629, 7, 828, 2, 2, 9629, 9630, 5, 822, 412, 2, 9630, 9631, 7, 829, 2, 2, 9631, 9632, 7, 829, 2, 2, 9632, 821, 3, 2, 2, 2, 9633, 9638, 5, 922, 462, 2, 9634, 9635, 7, 830, 2, 2, 9635, 9637, 5, 922, 462, 2, 9636, 9634, 3, 2, 2, 2, 9637, 9640, 3, 2, 2, 2, 9638, 9636, 3, 2, 2, 2, 9638, 9639, 3, 2, 2, 2, 9639, 823, 3, 2, 2, 2, 9640, 9638, 3, 2, 2, 2, 9641, 9643, 5, 910, 456, 2, 9642, 9644, 5, 856, 429, 2, 9643, 9642, 3, 2, 2, 2, 9643, 9644, 3, 2, 2, 2, 9644, 825, 3, 2, 2, 2, 9645, 9646, 7, 234, 2, 2, 9646, 9647, 7, 828, 2, 2, 9647, 9648, 7, 806, 2, 2, 9648, 9649, 7, 830, 2, 2, 9649, 9650, 7, 806, 2, 2, 9650, 9651, 7, 830, 2, 2, 9651, 9652, 7, 806, 2, 2, 9652, 9672, 7, 829, 2, 2, 9653, 9654, 7, 234, 2, 2, 9654, 9655, 7, 828, 2, 2, 9655, 9656, 7, 37, 2, 2, 9656, 9657, 7, 806, 2, 2, 9657, 9667, 7, 830, 2, 2, 9658, 9663, 5, 828, 415, 2, 9659, 9660, 7, 830, 2, 2, 9660, 9662, 5, 828, 415, 2, 9661, 9659, 3, 2, 2, 2, 9662, 9665, 3, 2, 2, 2, 9663, 9661, 3, 2, 2, 2, 9663, 9664, 3, 2, 2, 2, 9664, 9668, 3, 2, 2, 2, 9665, 9663, 3, 2, 2, 2, 9666, 9668, 5, 966, 484, 2, 9667, 9658, 3, 2, 2, 2, 9667, 9666, 3, 2, 2, 2, 9668, 9669, 3, 2, 2, 2, 9669, 9670, 7, 829, 2, 2, 9670, 9672, 3, 2, 2, 2, 9671, 9645, 3, 2, 2, 2, 9671, 9653, 3, 2, 2, 2, 9672, 827, 3, 2, 2, 2, 9673, 9674, 5, 966, 484, 2, 9674, 9675, 7, 810, 2, 2, 9675, 9676, 9, 24, 2, 2, 9676, 829, 3, 2, 2, 2, 9677, 9688, 5, 740, 371, 2, 9678, 9679, 7, 828, 2, 2, 9679, 9680, 5, 740, 371, 2, 9680, 9681, 7, 829, 2, 2, 9681, 9688, 3, 2, 2, 2, 9682, 9688, 5, 868, 435, 2, 9683, 9684, 7, 828, 2, 2, 9684, 9685, 5, 868, 435, 2, 9685, 9686, 7, 829, 2, 2, 9686, 9688, 3, 2, 2, 2, 9687, 9677, 3, 2, 2, 2, 9687, 9678, 3, 2, 2, 2, 9687, 9682, 3, 2, 2, 2, 9687, 9683, 3, 2, 2, 2, 9688, 831, 3, 2, 2, 2, 9689, 9690, 7, 421, 2, 2, 9690, 9691, 7, 828, 2, 2, 9691, 9692, 7, 833, 2, 2, 9692, 9836, 7, 829, 2, 2, 9693, 9694, 7, 429, 2, 2, 9694, 9695, 7, 828, 2, 2, 9695, 9696, 5, 728, 365, 2, 9696, 9697, 7, 16, 2, 2, 9697, 9698, 5, 958, 480, 2, 9698, 9699, 7, 829, 2, 2, 9699, 9836, 3, 2, 2, 2, 9700, 9701, 7, 71, 2, 2, 9701, 9702, 7, 828, 2, 2, 9702, 9703, 5, 958, 480, 2, 9703, 9704, 7, 830, 2, 2, 9704, 9707, 5, 728, 365, 2, 9705, 9706, 7, 830, 2, 2, 9706, 9708, 5, 728, 365, 2, 9707, 9705, 3, 2, 2, 2, 9707, 9708, 3, 2, 2, 2, 9708, 9709, 3, 2, 2, 2, 9709, 9710, 7, 829, 2, 2, 9710, 9836, 3, 2, 2, 2, 9711, 9712, 7, 434, 2, 2, 9712, 9713, 7, 828, 2, 2, 9713, 9714, 7, 833, 2, 2, 9714, 9836, 7, 829, 2, 2, 9715, 9716, 7, 54, 2, 2, 9716, 9717, 7, 828, 2, 2, 9717, 9718, 5, 870, 436, 2, 9718, 9719, 7, 829, 2, 2, 9719, 9836, 3, 2, 2, 2, 9720, 9836, 7, 78, 2, 2, 9721, 9836, 7, 79, 2, 2, 9722, 9723, 7, 458, 2, 2, 9723, 9724, 7, 828, 2, 2, 9724, 9725, 7, 803, 2, 2, 9725, 9726, 7, 830, 2, 2, 9726, 9727, 5, 728, 365, 2, 9727, 9728, 7, 830, 2, 2, 9728, 9729, 5, 728, 365, 2, 9729, 9730, 7, 829, 2, 2, 9730, 9836, 3, 2, 2, 2, 9731, 9732, 7, 459, 2, 2, 9732, 9733, 7, 828, 2, 2, 9733, 9734, 7, 803, 2, 2, 9734, 9735, 7, 830, 2, 2, 9735, 9736, 5, 728, 365, 2, 9736, 9737, 7, 830, 2, 2, 9737, 9738, 5, 728, 365, 2, 9738, 9739, 7, 829, 2, 2, 9739, 9836, 3, 2, 2, 2, 9740, 9741, 7, 460, 2, 2, 9741, 9742, 7, 828, 2, 2, 9742, 9743, 7, 803, 2, 2, 9743, 9744, 7, 830, 2, 2, 9744, 9745, 5, 728, 365, 2, 9745, 9746, 7, 829, 2, 2, 9746, 9836, 3, 2, 2, 2, 9747, 9748, 7, 461, 2, 2, 9748, 9749, 7, 828, 2, 2, 9749, 9750, 7, 803, 2, 2, 9750, 9751, 7, 830, 2, 2, 9751, 9752, 5, 728, 365, 2, 9752, 9753, 7, 829, 2, 2, 9753, 9836, 3, 2, 2, 2, 9754, 9755, 7, 523, 2, 2, 9755, 9756, 7, 828, 2, 2, 9756, 9836, 7, 829, 2, 2, 9757, 9758, 7, 524, 2, 2, 9758, 9759, 7, 828, 2, 2, 9759, 9836, 7, 829, 2, 2, 9760, 9761, 7, 150, 2, 2, 9761, 9762, 7, 828, 2, 2, 9762, 9765, 5, 958, 480, 2, 9763, 9764, 7, 830, 2, 2, 9764, 9766, 7, 802, 2, 2, 9765, 9763, 3, 2, 2, 2, 9765, 9766, 3, 2, 2, 2, 9766, 9769, 3, 2, 2, 2, 9767, 9768, 7, 830, 2, 2, 9768, 9770, 7, 802, 2, 2, 9769, 9767, 3, 2, 2, 2, 9769, 9770, 3, 2, 2, 2, 9770, 9771, 3, 2, 2, 2, 9771, 9772, 7, 829, 2, 2, 9772, 9836, 3, 2, 2, 2, 9773, 9836, 7, 594, 2, 2, 9774, 9775, 7, 224, 2, 2, 9775, 9776, 7, 828, 2, 2, 9776, 9777, 5, 728, 365, 2, 9777, 9778, 7, 830, 2, 2, 9778, 9779, 5, 728, 365, 2, 9779, 9780, 7, 829, 2, 2, 9780, 9836, 3, 2, 2, 2, 9781, 9782, 7, 742, 2, 2, 9782, 9783, 7, 828, 2, 2, 9783, 9784, 5, 728, 365, 2, 9784, 9785, 7, 830, 2, 2, 9785, 9786, 7, 802, 2, 2, 9786, 9787, 7, 830, 2, 2, 9787, 9788, 7, 802, 2, 2, 9788, 9789, 7, 830, 2, 2, 9789, 9790, 5, 728, 365, 2, 9790, 9791, 7, 829, 2, 2, 9791, 9836, 3, 2, 2, 2, 9792, 9836, 7, 314, 2, 2, 9793, 9836, 7, 338, 2, 2, 9794, 9795, 7, 169, 2, 2, 9795, 9796, 7, 828, 2, 2, 9796, 9797, 5, 728, 365, 2, 9797, 9798, 7, 830, 2, 2, 9798, 9799, 5, 728, 365, 2, 9799, 9800, 7, 829, 2, 2, 9800, 9836, 3, 2, 2, 2, 9801, 9836, 5, 834, 418, 2, 9802, 9803, 7, 154, 2, 2, 9803, 9804, 7, 828, 2, 2, 9804, 9805, 5, 750, 376, 2, 9805, 9806, 7, 830, 2, 2, 9806, 9807, 5, 728, 365, 2, 9807, 9808, 7, 830, 2, 2, 9808, 9809, 5, 728, 365, 2, 9809, 9810, 7, 829, 2, 2, 9810, 9836, 3, 2, 2, 2, 9811, 9836, 5, 872, 437, 2, 9812, 9836, 5, 874, 438, 2, 9813, 9836, 5, 876, 439, 2, 9814, 9815, 5, 938, 470, 2, 9815, 9817, 7, 828, 2, 2, 9816, 9818, 5, 870, 436, 2, 9817, 9816, 3, 2, 2, 2, 9817, 9818, 3, 2, 2, 2, 9818, 9819, 3, 2, 2, 2, 9819, 9820, 7, 829, 2, 2, 9820, 9836, 3, 2, 2, 2, 9821, 9822, 7, 741, 2, 2, 9822, 9823, 7, 828, 2, 2, 9823, 9824, 5, 728, 365, 2, 9824, 9825, 7, 830, 2, 2, 9825, 9826, 5, 728, 365, 2, 9826, 9833, 7, 829, 2, 2, 9827, 9828, 7, 378, 2, 2, 9828, 9829, 7, 146, 2, 2, 9829, 9830, 7, 828, 2, 2, 9830, 9831, 5, 770, 386, 2, 9831, 9832, 7, 829, 2, 2, 9832, 9834, 3, 2, 2, 2, 9833, 9827, 3, 2, 2, 2, 9833, 9834, 3, 2, 2, 2, 9834, 9836, 3, 2, 2, 2, 9835, 9689, 3, 2, 2, 2, 9835, 9693, 3, 2, 2, 2, 9835, 9700, 3, 2, 2, 2, 9835, 9711, 3, 2, 2, 2, 9835, 9715, 3, 2, 2, 2, 9835, 9720, 3, 2, 2, 2, 9835, 9721, 3, 2, 2, 2, 9835, 9722, 3, 2, 2, 2, 9835, 9731, 3, 2, 2, 2, 9835, 9740, 3, 2, 2, 2, 9835, 9747, 3, 2, 2, 2, 9835, 9754, 3, 2, 2, 2, 9835, 9757, 3, 2, 2, 2, 9835, 9760, 3, 2, 2, 2, 9835, 9773, 3, 2, 2, 2, 9835, 9774, 3, 2, 2, 2, 9835, 9781, 3, 2, 2, 2, 9835, 9792, 3, 2, 2, 2, 9835, 9793, 3, 2, 2, 2, 9835, 9794, 3, 2, 2, 2, 9835, 9801, 3, 2, 2, 2, 9835, 9802, 3, 2, 2, 2, 9835, 9811, 3, 2, 2, 2, 9835, 9812, 3, 2, 2, 2, 9835, 9813, 3, 2, 2, 2, 9835, 9814, 3, 2, 2, 2, 9835, 9821, 3, 2, 2, 2, 9836, 833, 3, 2, 2, 2, 9837, 9843, 5, 836, 419, 2, 9838, 9843, 5, 838, 420, 2, 9839, 9843, 5, 840, 421, 2, 9840, 9843, 5, 842, 422, 2, 9841, 9843, 5, 844, 423, 2, 9842, 9837, 3, 2, 2, 2, 9842, 9838, 3, 2, 2, 2, 9842, 9839, 3, 2, 2, 2, 9842, 9840, 3, 2, 2, 2, 9842, 9841, 3, 2, 2, 2, 9843, 835, 3, 2, 2, 2, 9844, 9849, 7, 801, 2, 2, 9845, 9849, 7, 803, 2, 2, 9846, 9849, 7, 114, 2, 2, 9847, 9849, 5, 838, 420, 2, 9848, 9844, 3, 2, 2, 2, 9848, 9845, 3, 2, 2, 2, 9848, 9846, 3, 2, 2, 2, 9848, 9847, 3, 2, 2, 2, 9849, 9850, 3, 2, 2, 2, 9850, 9851, 7, 823, 2, 2, 9851, 9852, 7, 779, 2, 2, 9852, 9853, 7, 828, 2, 2, 9853, 9854, 7, 806, 2, 2, 9854, 9855, 7, 830, 2, 2, 9855, 9856, 7, 806, 2, 2, 9856, 9888, 7, 829, 2, 2, 9857, 9862, 7, 801, 2, 2, 9858, 9862, 7, 803, 2, 2, 9859, 9862, 7, 114, 2, 2, 9860, 9862, 5, 838, 420, 2, 9861, 9857, 3, 2, 2, 2, 9861, 9858, 3, 2, 2, 2, 9861, 9859, 3, 2, 2, 2, 9861, 9860, 3, 2, 2, 2, 9862, 9863, 3, 2, 2, 2, 9863, 9864, 7, 823, 2, 2, 9864, 9865, 7, 697, 2, 2, 9865, 9866, 7, 823, 2, 2, 9866, 9867, 7, 779, 2, 2, 9867, 9868, 7, 828, 2, 2, 9868, 9869, 7, 806, 2, 2, 9869, 9870, 7, 830, 2, 2, 9870, 9871, 7, 806, 2, 2, 9871, 9888, 7, 829, 2, 2, 9872, 9877, 7, 801, 2, 2, 9873, 9877, 7, 803, 2, 2, 9874, 9877, 7, 114, 2, 2, 9875, 9877, 5, 838, 420, 2, 9876, 9872, 3, 2, 2, 2, 9876, 9873, 3, 2, 2, 2, 9876, 9874, 3, 2, 2, 2, 9876, 9875, 3, 2, 2, 2, 9877, 9878, 3, 2, 2, 2, 9878, 9879, 7, 823, 2, 2, 9879, 9880, 7, 242, 2, 2, 9880, 9881, 7, 823, 2, 2, 9881, 9882, 7, 779, 2, 2, 9882, 9883, 7, 828, 2, 2, 9883, 9884, 7, 806, 2, 2, 9884, 9885, 7, 830, 2, 2, 9885, 9886, 7, 806, 2, 2, 9886, 9888, 7, 829, 2, 2, 9887, 9848, 3, 2, 2, 2, 9887, 9861, 3, 2, 2, 2, 9887, 9876, 3, 2, 2, 2, 9888, 837, 3, 2, 2, 2, 9889, 9893, 7, 801, 2, 2, 9890, 9893, 7, 803, 2, 2, 9891, 9893, 5, 908, 455, 2, 9892, 9889, 3, 2, 2, 2, 9892, 9890, 3, 2, 2, 2, 9892, 9891, 3, 2, 2, 2, 9893, 9894, 3, 2, 2, 2, 9894, 9895, 7, 823, 2, 2, 9895, 9896, 7, 659, 2, 2, 9896, 9897, 7, 828, 2, 2, 9897, 9898, 7, 806, 2, 2, 9898, 9912, 7, 829, 2, 2, 9899, 9903, 7, 801, 2, 2, 9900, 9903, 7, 803, 2, 2, 9901, 9903, 5, 908, 455, 2, 9902, 9899, 3, 2, 2, 2, 9902, 9900, 3, 2, 2, 2, 9902, 9901, 3, 2, 2, 2, 9903, 9904, 3, 2, 2, 2, 9904, 9905, 7, 823, 2, 2, 9905, 9906, 7, 697, 2, 2, 9906, 9907, 7, 823, 2, 2, 9907, 9908, 7, 659, 2, 2, 9908, 9909, 7, 828, 2, 2, 9909, 9910, 7, 806, 2, 2, 9910, 9912, 7, 829, 2, 2, 9911, 9892, 3, 2, 2, 2, 9911, 9902, 3, 2, 2, 2, 9912, 839, 3, 2, 2, 2, 9913, 9914, 9, 124, 2, 2, 9914, 9915, 7, 823, 2, 2, 9915, 9916, 7, 497, 2, 2, 9916, 9917, 7, 828, 2, 2, 9917, 9918, 7, 806, 2, 2, 9918, 9919, 7, 829, 2, 2, 9919, 841, 3, 2, 2, 2, 9920, 9921, 9, 124, 2, 2, 9921, 9922, 7, 823, 2, 2, 9922, 9923, 7, 602, 2, 2, 9923, 9924, 7, 828, 2, 2, 9924, 9925, 7, 806, 2, 2, 9925, 9926, 7, 829, 2, 2, 9926, 843, 3, 2, 2, 2, 9927, 9928, 9, 124, 2, 2, 9928, 9929, 7, 823, 2, 2, 9929, 9930, 7, 615, 2, 2, 9930, 9931, 7, 828, 2, 2, 9931, 9932, 7, 806, 2, 2, 9932, 9933, 7, 829, 2, 2, 9933, 845, 3, 2, 2, 2, 9934, 9935, 7, 373, 2, 2, 9935, 9936, 5, 728, 365, 2, 9936, 9937, 7, 345, 2, 2, 9937, 9938, 5, 728, 365, 2, 9938, 847, 3, 2, 2, 2, 9939, 9940, 7, 373, 2, 2, 9940, 9941, 5, 750, 376, 2, 9941, 9942, 7, 345, 2, 2, 9942, 9943, 5, 728, 365, 2, 9943, 849, 3, 2, 2, 2, 9944, 9946, 7, 16, 2, 2, 9945, 9944, 3, 2, 2, 2, 9945, 9946, 3, 2, 2, 2, 9946, 9947, 3, 2, 2, 2, 9947, 9948, 5, 866, 434, 2, 9948, 851, 3, 2, 2, 2, 9949, 9951, 7, 16, 2, 2, 9950, 9949, 3, 2, 2, 2, 9950, 9951, 3, 2, 2, 2, 9951, 9952, 3, 2, 2, 2, 9952, 9953, 5, 854, 428, 2, 9953, 853, 3, 2, 2, 2, 9954, 9956, 5, 966, 484, 2, 9955, 9957, 5, 856, 429, 2, 9956, 9955, 3, 2, 2, 2, 9956, 9957, 3, 2, 2, 2, 9957, 855, 3, 2, 2, 2, 9958, 9960, 7, 377, 2, 2, 9959, 9958, 3, 2, 2, 2, 9959, 9960, 3, 2, 2, 2, 9960, 9961, 3, 2, 2, 2, 9961, 9962, 7, 828, 2, 2, 9962, 9969, 5, 860, 431, 2, 9963, 9965, 7, 830, 2, 2, 9964, 9963, 3, 2, 2, 2, 9964, 9965, 3, 2, 2, 2, 9965, 9966, 3, 2, 2, 2, 9966, 9968, 5, 860, 431, 2, 9967, 9964, 3, 2, 2, 2, 9968, 9971, 3, 2, 2, 2, 9969, 9967, 3, 2, 2, 2, 9969, 9970, 3, 2, 2, 2, 9970, 9972, 3, 2, 2, 2, 9971, 9969, 3, 2, 2, 2, 9972, 9973, 7, 829, 2, 2, 9973, 857, 3, 2, 2, 2, 9974, 9975, 7, 377, 2, 2, 9975, 9976, 7, 828, 2, 2, 9976, 9983, 5, 860, 431, 2, 9977, 9979, 7, 830, 2, 2, 9978, 9977, 3, 2, 2, 2, 9978, 9979, 3, 2, 2, 2, 9979, 9980, 3, 2, 2, 2, 9980, 9982, 5, 860, 431, 2, 9981, 9978, 3, 2, 2, 2, 9982, 9985, 3, 2, 2, 2, 9983, 9981, 3, 2, 2, 2, 9983, 9984, 3, 2, 2, 2, 9984, 9986, 3, 2, 2, 2, 9985, 9983, 3, 2, 2, 2, 9986, 9987, 7, 829, 2, 2, 9987, 859, 3, 2, 2, 2, 9988, 9990, 7, 616, 2, 2, 9989, 9988, 3, 2, 2, 2, 9989, 9990, 3, 2, 2, 2, 9990, 10039, 3, 2, 2, 2, 9991, 10011, 7, 158, 2, 2, 9992, 9993, 7, 828, 2, 2, 9993, 9998, 5, 862, 432, 2, 9994, 9995, 7, 830, 2, 2, 9995, 9997, 5, 862, 432, 2, 9996, 9994, 3, 2, 2, 2, 9997, 10000, 3, 2, 2, 2, 9998, 9996, 3, 2, 2, 2, 9998, 9999, 3, 2, 2, 2, 9999, 10001, 3, 2, 2, 2, 10000, 9998, 3, 2, 2, 2, 10001, 10002, 7, 829, 2, 2, 10002, 10012, 3, 2, 2, 2, 10003, 10008, 5, 862, 432, 2, 10004, 10005, 7, 830, 2, 2, 10005, 10007, 5, 862, 432, 2, 10006, 10004, 3, 2, 2, 2, 10007, 10010, 3, 2, 2, 2, 10008, 10006, 3, 2, 2, 2, 10008, 10009, 3, 2, 2, 2, 10009, 10012, 3, 2, 2, 2, 10010, 10008, 3, 2, 2, 2, 10011, 9992, 3, 2, 2, 2, 10011, 10003, 3, 2, 2, 2, 10012, 10040, 3, 2, 2, 2, 10013, 10014, 7, 158, 2, 2, 10014, 10015, 7, 810, 2, 2, 10015, 10040, 5, 862, 432, 2, 10016, 10031, 7, 134, 2, 2, 10017, 10018, 7, 828, 2, 2, 10018, 10019, 5, 862, 432, 2, 10019, 10020, 7, 828, 2, 2, 10020, 10025, 7, 803, 2, 2, 10021, 10022, 7, 830, 2, 2, 10022, 10024, 7, 803, 2, 2, 10023, 10021, 3, 2, 2, 2, 10024, 10027, 3, 2, 2, 2, 10025, 10023, 3, 2, 2, 2, 10025, 10026, 3, 2, 2, 2, 10026, 10028, 3, 2, 2, 2, 10027, 10025, 3, 2, 2, 2, 10028, 10029, 7, 829, 2, 2, 10029, 10030, 7, 829, 2, 2, 10030, 10032, 3, 2, 2, 2, 10031, 10017, 3, 2, 2, 2, 10031, 10032, 3, 2, 2, 2, 10032, 10040, 3, 2, 2, 2, 10033, 10040, 7, 720, 2, 2, 10034, 10040, 7, 730, 2, 2, 10035, 10036, 7, 731, 2, 2, 10036, 10037, 7, 810, 2, 2, 10037, 10040, 7, 802, 2, 2, 10038, 10040, 7, 803, 2, 2, 10039, 9991, 3, 2, 2, 2, 10039, 10013, 3, 2, 2, 2, 10039, 10016, 3, 2, 2, 2, 10039, 10033, 3, 2, 2, 2, 10039, 10034, 3, 2, 2, 2, 10039, 10035, 3, 2, 2, 2, 10039, 10038, 3, 2, 2, 2, 10040, 861, 3, 2, 2, 2, 10041, 10044, 5, 966, 484, 2, 10042, 10044, 7, 802, 2, 2, 10043, 10041, 3, 2, 2, 2, 10043, 10042, 3, 2, 2, 2, 10044, 863, 3, 2, 2, 2, 10045, 10046, 7, 828, 2, 2, 10046, 10051, 5, 866, 434, 2, 10047, 10048, 7, 830, 2, 2, 10048, 10050, 5, 866, 434, 2, 10049, 10047, 3, 2, 2, 2, 10050, 10053, 3, 2, 2, 2, 10051, 10049, 3, 2, 2, 2, 10051, 10052, 3, 2, 2, 2, 10052, 10054, 3, 2, 2, 2, 10053, 10051, 3, 2, 2, 2, 10054, 10055, 7, 829, 2, 2, 10055, 865, 3, 2, 2, 2, 10056, 10059, 5, 966, 484, 2, 10057, 10059, 7, 806, 2, 2, 10058, 10056, 3, 2, 2, 2, 10058, 10057, 3, 2, 2, 2, 10059, 867, 3, 2, 2, 2, 10060, 10061, 7, 367, 2, 2, 10061, 10062, 7, 828, 2, 2, 10062, 10063, 5, 870, 436, 2, 10063, 10071, 7, 829, 2, 2, 10064, 10065, 7, 830, 2, 2, 10065, 10066, 7, 828, 2, 2, 10066, 10067, 5, 870, 436, 2, 10067, 10068, 7, 829, 2, 2, 10068, 10070, 3, 2, 2, 2, 10069, 10064, 3, 2, 2, 2, 10070, 10073, 3, 2, 2, 2, 10071, 10069, 3, 2, 2, 2, 10071, 10072, 3, 2, 2, 2, 10072, 869, 3, 2, 2, 2, 10073, 10071, 3, 2, 2, 2, 10074, 10079, 5, 728, 365, 2, 10075, 10076, 7, 830, 2, 2, 10076, 10078, 5, 728, 365, 2, 10077, 10075, 3, 2, 2, 2, 10078, 10081, 3, 2, 2, 2, 10079, 10077, 3, 2, 2, 2, 10079, 10080, 3, 2, 2, 2, 10080, 871, 3, 2, 2, 2, 10081, 10079, 3, 2, 2, 2, 10082, 10083, 9, 125, 2, 2, 10083, 10084, 7, 828, 2, 2, 10084, 10085, 7, 829, 2, 2, 10085, 10093, 5, 880, 441, 2, 10086, 10087, 7, 621, 2, 2, 10087, 10088, 7, 828, 2, 2, 10088, 10089, 5, 728, 365, 2, 10089, 10090, 7, 829, 2, 2, 10090, 10091, 5, 880, 441, 2, 10091, 10093, 3, 2, 2, 2, 10092, 10082, 3, 2, 2, 2, 10092, 10086, 3, 2, 2, 2, 10093, 873, 3, 2, 2, 2, 10094, 10095, 9, 126, 2, 2, 10095, 10096, 7, 828, 2, 2, 10096, 10097, 5, 878, 440, 2, 10097, 10099, 7, 829, 2, 2, 10098, 10100, 5, 880, 441, 2, 10099, 10098, 3, 2, 2, 2, 10099, 10100, 3, 2, 2, 2, 10100, 10127, 3, 2, 2, 2, 10101, 10102, 9, 127, 2, 2, 10102, 10105, 7, 828, 2, 2, 10103, 10106, 7, 833, 2, 2, 10104, 10106, 5, 878, 440, 2, 10105, 10103, 3, 2, 2, 2, 10105, 10104, 3, 2, 2, 2, 10106, 10107, 3, 2, 2, 2, 10107, 10109, 7, 829, 2, 2, 10108, 10110, 5, 880, 441, 2, 10109, 10108, 3, 2, 2, 2, 10109, 10110, 3, 2, 2, 2, 10110, 10127, 3, 2, 2, 2, 10111, 10112, 7, 435, 2, 2, 10112, 10113, 7, 828, 2, 2, 10113, 10114, 5, 878, 440, 2, 10114, 10115, 7, 829, 2, 2, 10115, 10127, 3, 2, 2, 2, 10116, 10117, 7, 528, 2, 2, 10117, 10118, 7, 828, 2, 2, 10118, 10119, 5, 728, 365, 2, 10119, 10120, 7, 829, 2, 2, 10120, 10127, 3, 2, 2, 2, 10121, 10122, 7, 529, 2, 2, 10122, 10123, 7, 828, 2, 2, 10123, 10124, 5, 870, 436, 2, 10124, 10125, 7, 829, 2, 2, 10125, 10127, 3, 2, 2, 2, 10126, 10094, 3, 2, 2, 2, 10126, 10101, 3, 2, 2, 2, 10126, 10111, 3, 2, 2, 2, 10126, 10116, 3, 2, 2, 2, 10126, 10121, 3, 2, 2, 2, 10127, 875, 3, 2, 2, 2, 10128, 10129, 9, 128, 2, 2, 10129, 10130, 7, 828, 2, 2, 10130, 10131, 5, 728, 365, 2, 10131, 10132, 7, 829, 2, 2, 10132, 10133, 5, 880, 441, 2, 10133, 10149, 3, 2, 2, 2, 10134, 10135, 9, 129, 2, 2, 10135, 10136, 7, 828, 2, 2, 10136, 10143, 5, 728, 365, 2, 10137, 10138, 7, 830, 2, 2, 10138, 10141, 5, 728, 365, 2, 10139, 10140, 7, 830, 2, 2, 10140, 10142, 5, 728, 365, 2, 10141, 10139, 3, 2, 2, 2, 10141, 10142, 3, 2, 2, 2, 10142, 10144, 3, 2, 2, 2, 10143, 10137, 3, 2, 2, 2, 10143, 10144, 3, 2, 2, 2, 10144, 10145, 3, 2, 2, 2, 10145, 10146, 7, 829, 2, 2, 10146, 10147, 5, 880, 441, 2, 10147, 10149, 3, 2, 2, 2, 10148, 10128, 3, 2, 2, 2, 10148, 10134, 3, 2, 2, 2, 10149, 877, 3, 2, 2, 2, 10150, 10152, 9, 111, 2, 2, 10151, 10150, 3, 2, 2, 2, 10151, 10152, 3, 2, 2, 2, 10152, 10153, 3, 2, 2, 2, 10153, 10154, 5, 728, 365, 2, 10154, 879, 3, 2, 2, 2, 10155, 10156, 7, 240, 2, 2, 10156, 10160, 7, 828, 2, 2, 10157, 10158, 7, 640, 2, 2, 10158, 10159, 7, 38, 2, 2, 10159, 10161, 5, 870, 436, 2, 10160, 10157, 3, 2, 2, 2, 10160, 10161, 3, 2, 2, 2, 10161, 10163, 3, 2, 2, 2, 10162, 10164, 5, 770, 386, 2, 10163, 10162, 3, 2, 2, 2, 10163, 10164, 3, 2, 2, 2, 10164, 10166, 3, 2, 2, 2, 10165, 10167, 5, 882, 442, 2, 10166, 10165, 3, 2, 2, 2, 10166, 10167, 3, 2, 2, 2, 10167, 10168, 3, 2, 2, 2, 10168, 10169, 7, 829, 2, 2, 10169, 881, 3, 2, 2, 2, 10170, 10171, 9, 130, 2, 2, 10171, 10172, 5, 884, 443, 2, 10172, 883, 3, 2, 2, 2, 10173, 10180, 5, 888, 445, 2, 10174, 10175, 7, 29, 2, 2, 10175, 10176, 5, 886, 444, 2, 10176, 10177, 7, 11, 2, 2, 10177, 10178, 5, 886, 444, 2, 10178, 10180, 3, 2, 2, 2, 10179, 10173, 3, 2, 2, 2, 10179, 10174, 3, 2, 2, 2, 10180, 885, 3, 2, 2, 2, 10181, 10184, 5, 888, 445, 2, 10182, 10184, 5, 890, 446, 2, 10183, 10181, 3, 2, 2, 2, 10183, 10182, 3, 2, 2, 2, 10184, 887, 3, 2, 2, 2, 10185, 10186, 7, 771, 2, 2, 10186, 10192, 7, 647, 2, 2, 10187, 10188, 7, 802, 2, 2, 10188, 10192, 7, 647, 2, 2, 10189, 10190, 7, 75, 2, 2, 10190, 10192, 7, 697, 2, 2, 10191, 10185, 3, 2, 2, 2, 10191, 10187, 3, 2, 2, 2, 10191, 10189, 3, 2, 2, 2, 10192, 889, 3, 2, 2, 2, 10193, 10194, 7, 771, 2, 2, 10194, 10198, 7, 514, 2, 2, 10195, 10196, 7, 802, 2, 2, 10196, 10198, 7, 514, 2, 2, 10197, 10193, 3, 2, 2, 2, 10197, 10195, 3, 2, 2, 2, 10198, 891, 3, 2, 2, 2, 10199, 10200, 7, 510, 2, 2, 10200, 10205, 5, 894, 448, 2, 10201, 10202, 7, 830, 2, 2, 10202, 10204, 5, 894, 448, 2, 10203, 10201, 3, 2, 2, 2, 10204, 10207, 3, 2, 2, 2, 10205, 10203, 3, 2, 2, 2, 10205, 10206, 3, 2, 2, 2, 10206, 10234, 3, 2, 2, 2, 10207, 10205, 3, 2, 2, 2, 10208, 10209, 7, 468, 2, 2, 10209, 10212, 7, 810, 2, 2, 10210, 10213, 5, 966, 484, 2, 10211, 10213, 7, 806, 2, 2, 10212, 10210, 3, 2, 2, 2, 10212, 10211, 3, 2, 2, 2, 10213, 10234, 3, 2, 2, 2, 10214, 10215, 7, 467, 2, 2, 10215, 10218, 7, 810, 2, 2, 10216, 10219, 5, 966, 484, 2, 10217, 10219, 7, 806, 2, 2, 10218, 10216, 3, 2, 2, 2, 10218, 10217, 3, 2, 2, 2, 10219, 10234, 3, 2, 2, 2, 10220, 10221, 7, 606, 2, 2, 10221, 10222, 7, 810, 2, 2, 10222, 10234, 9, 9, 2, 2, 10223, 10224, 7, 762, 2, 2, 10224, 10225, 7, 810, 2, 2, 10225, 10234, 9, 9, 2, 2, 10226, 10227, 7, 768, 2, 2, 10227, 10228, 7, 810, 2, 2, 10228, 10234, 7, 802, 2, 2, 10229, 10230, 7, 463, 2, 2, 10230, 10234, 9, 9, 2, 2, 10231, 10232, 7, 765, 2, 2, 10232, 10234, 9, 9, 2, 2, 10233, 10199, 3, 2, 2, 2, 10233, 10208, 3, 2, 2, 2, 10233, 10214, 3, 2, 2, 2, 10233, 10220, 3, 2, 2, 2, 10233, 10223, 3, 2, 2, 2, 10233, 10226, 3, 2, 2, 2, 10233, 10229, 3, 2, 2, 2, 10233, 10231, 3, 2, 2, 2, 10234, 893, 3, 2, 2, 2, 10235, 10242, 7, 828, 2, 2, 10236, 10237, 7, 617, 2, 2, 10237, 10238, 7, 810, 2, 2, 10238, 10243, 9, 131, 2, 2, 10239, 10240, 7, 479, 2, 2, 10240, 10241, 7, 810, 2, 2, 10241, 10243, 7, 806, 2, 2, 10242, 10236, 3, 2, 2, 2, 10242, 10239, 3, 2, 2, 2, 10243, 10244, 3, 2, 2, 2, 10244, 10245, 7, 829, 2, 2, 10245, 895, 3, 2, 2, 2, 10246, 10249, 5, 898, 450, 2, 10247, 10249, 5, 900, 451, 2, 10248, 10246, 3, 2, 2, 2, 10248, 10247, 3, 2, 2, 2, 10249, 897, 3, 2, 2, 2, 10250, 10251, 7, 507, 2, 2, 10251, 10254, 5, 966, 484, 2, 10252, 10253, 7, 63, 2, 2, 10253, 10255, 7, 510, 2, 2, 10254, 10252, 3, 2, 2, 2, 10254, 10255, 3, 2, 2, 2, 10255, 10257, 3, 2, 2, 2, 10256, 10258, 7, 89, 2, 2, 10257, 10256, 3, 2, 2, 2, 10257, 10258, 3, 2, 2, 2, 10258, 10261, 3, 2, 2, 2, 10259, 10260, 7, 63, 2, 2, 10260, 10262, 7, 591, 2, 2, 10261, 10259, 3, 2, 2, 2, 10261, 10262, 3, 2, 2, 2, 10262, 10263, 3, 2, 2, 2, 10263, 10268, 5, 900, 451, 2, 10264, 10265, 7, 830, 2, 2, 10265, 10267, 5, 900, 451, 2, 10266, 10264, 3, 2, 2, 2, 10267, 10270, 3, 2, 2, 2, 10268, 10266, 3, 2, 2, 2, 10268, 10269, 3, 2, 2, 2, 10269, 899, 3, 2, 2, 2, 10270, 10268, 3, 2, 2, 2, 10271, 10272, 7, 828, 2, 2, 10272, 10273, 7, 605, 2, 2, 10273, 10276, 7, 810, 2, 2, 10274, 10277, 5, 966, 484, 2, 10275, 10277, 7, 806, 2, 2, 10276, 10274, 3, 2, 2, 2, 10276, 10275, 3, 2, 2, 2, 10277, 10279, 3, 2, 2, 2, 10278, 10280, 7, 830, 2, 2, 10279, 10278, 3, 2, 2, 2, 10279, 10280, 3, 2, 2, 2, 10280, 10281, 3, 2, 2, 2, 10281, 10282, 7, 130, 2, 2, 10282, 10283, 7, 810, 2, 2, 10283, 10285, 7, 806, 2, 2, 10284, 10286, 7, 830, 2, 2, 10285, 10284, 3, 2, 2, 2, 10285, 10286, 3, 2, 2, 2, 10286, 10293, 3, 2, 2, 2, 10287, 10288, 7, 728, 2, 2, 10288, 10289, 7, 810, 2, 2, 10289, 10291, 5, 974, 488, 2, 10290, 10292, 7, 830, 2, 2, 10291, 10290, 3, 2, 2, 2, 10291, 10292, 3, 2, 2, 2, 10292, 10294, 3, 2, 2, 2, 10293, 10287, 3, 2, 2, 2, 10293, 10294, 3, 2, 2, 2, 10294, 10304, 3, 2, 2, 2, 10295, 10296, 7, 588, 2, 2, 10296, 10299, 7, 810, 2, 2, 10297, 10300, 5, 974, 488, 2, 10298, 10300, 7, 774, 2, 2, 10299, 10297, 3, 2, 2, 2, 10299, 10298, 3, 2, 2, 2, 10300, 10302, 3, 2, 2, 2, 10301, 10303, 7, 830, 2, 2, 10302, 10301, 3, 2, 2, 2, 10302, 10303, 3, 2, 2, 2, 10303, 10305, 3, 2, 2, 2, 10304, 10295, 3, 2, 2, 2, 10304, 10305, 3, 2, 2, 2, 10305, 10312, 3, 2, 2, 2, 10306, 10307, 7, 508, 2, 2, 10307, 10308, 7, 810, 2, 2, 10308, 10310, 5, 974, 488, 2, 10309, 10311, 7, 830, 2, 2, 10310, 10309, 3, 2, 2, 2, 10310, 10311, 3, 2, 2, 2, 10311, 10313, 3, 2, 2, 2, 10312, 10306, 3, 2, 2, 2, 10312, 10313, 3, 2, 2, 2, 10313, 10314, 3, 2, 2, 2, 10314, 10315, 7, 829, 2, 2, 10315, 901, 3, 2, 2, 2, 10316, 10317, 5, 966, 484, 2, 10317, 10318, 7, 823, 2, 2, 10318, 10319, 5, 966, 484, 2, 10319, 10320, 7, 823, 2, 2, 10320, 10321, 5, 966, 484, 2, 10321, 10322, 7, 823, 2, 2, 10322, 10334, 3, 2, 2, 2, 10323, 10324, 5, 966, 484, 2, 10324, 10326, 7, 823, 2, 2, 10325, 10327, 5, 966, 484, 2, 10326, 10325, 3, 2, 2, 2, 10326, 10327, 3, 2, 2, 2, 10327, 10328, 3, 2, 2, 2, 10328, 10329, 7, 823, 2, 2, 10329, 10334, 3, 2, 2, 2, 10330, 10331, 5, 966, 484, 2, 10331, 10332, 7, 823, 2, 2, 10332, 10334, 3, 2, 2, 2, 10333, 10316, 3, 2, 2, 2, 10333, 10323, 3, 2, 2, 2, 10333, 10330, 3, 2, 2, 2, 10333, 10334, 3, 2, 2, 2, 10334, 10335, 3, 2, 2, 2, 10335, 10336, 5, 966, 484, 2, 10336, 903, 3, 2, 2, 2, 10337, 10343, 5, 966, 484, 2, 10338, 10339, 5, 966, 484, 2, 10339, 10340, 7, 823, 2, 2, 10340, 10341, 5, 966, 484, 2, 10341, 10343, 3, 2, 2, 2, 10342, 10337, 3, 2, 2, 2, 10342, 10338, 3, 2, 2, 2, 10343, 905, 3, 2, 2, 2, 10344, 10350, 5, 966, 484, 2, 10345, 10346, 5, 966, 484, 2, 10346, 10347, 7, 823, 2, 2, 10347, 10348, 5, 966, 484, 2, 10348, 10350, 3, 2, 2, 2, 10349, 10344, 3, 2, 2, 2, 10349, 10345, 3, 2, 2, 2, 10350, 907, 3, 2, 2, 2, 10351, 10352, 5, 966, 484, 2, 10352, 10353, 7, 823, 2, 2, 10353, 10354, 5, 966, 484, 2, 10354, 10355, 7, 823, 2, 2, 10355, 10356, 5, 966, 484, 2, 10356, 10357, 7, 823, 2, 2, 10357, 10369, 3, 2, 2, 2, 10358, 10359, 5, 966, 484, 2, 10359, 10361, 7, 823, 2, 2, 10360, 10362, 5, 966, 484, 2, 10361, 10360, 3, 2, 2, 2, 10361, 10362, 3, 2, 2, 2, 10362, 10363, 3, 2, 2, 2, 10363, 10364, 7, 823, 2, 2, 10364, 10369, 3, 2, 2, 2, 10365, 10366, 5, 966, 484, 2, 10366, 10367, 7, 823, 2, 2, 10367, 10369, 3, 2, 2, 2, 10368, 10351, 3, 2, 2, 2, 10368, 10358, 3, 2, 2, 2, 10368, 10365, 3, 2, 2, 2, 10368, 10369, 3, 2, 2, 2, 10369, 10370, 3, 2, 2, 2, 10370, 10371, 5, 966, 484, 2, 10371, 909, 3, 2, 2, 2, 10372, 10373, 5, 966, 484, 2, 10373, 10375, 7, 823, 2, 2, 10374, 10376, 5, 966, 484, 2, 10375, 10374, 3, 2, 2, 2, 10375, 10376, 3, 2, 2, 2, 10376, 10377, 3, 2, 2, 2, 10377, 10378, 7, 823, 2, 2, 10378, 10383, 3, 2, 2, 2, 10379, 10380, 5, 966, 484, 2, 10380, 10381, 7, 823, 2, 2, 10381, 10383, 3, 2, 2, 2, 10382, 10372, 3, 2, 2, 2, 10382, 10379, 3, 2, 2, 2, 10382, 10383, 3, 2, 2, 2, 10383, 10384, 3, 2, 2, 2, 10384, 10399, 5, 966, 484, 2, 10385, 10386, 5, 966, 484, 2, 10386, 10388, 7, 823, 2, 2, 10387, 10389, 5, 966, 484, 2, 10388, 10387, 3, 2, 2, 2, 10388, 10389, 3, 2, 2, 2, 10389, 10390, 3, 2, 2, 2, 10390, 10391, 7, 823, 2, 2, 10391, 10396, 3, 2, 2, 2, 10392, 10393, 5, 966, 484, 2, 10393, 10394, 7, 823, 2, 2, 10394, 10396, 3, 2, 2, 2, 10395, 10385, 3, 2, 2, 2, 10395, 10392, 3, 2, 2, 2, 10395, 10396, 3, 2, 2, 2, 10396, 10397, 3, 2, 2, 2, 10397, 10399, 7, 32, 2, 2, 10398, 10382, 3, 2, 2, 2, 10398, 10395, 3, 2, 2, 2, 10399, 911, 3, 2, 2, 2, 10400, 10401, 5, 966, 484, 2, 10401, 10402, 7, 823, 2, 2, 10402, 10404, 3, 2, 2, 2, 10403, 10400, 3, 2, 2, 2, 10403, 10404, 3, 2, 2, 2, 10404, 10405, 3, 2, 2, 2, 10405, 10406, 5, 966, 484, 2, 10406, 913, 3, 2, 2, 2, 10407, 10408, 5, 966, 484, 2, 10408, 10409, 7, 823, 2, 2, 10409, 10411, 3, 2, 2, 2, 10410, 10407, 3, 2, 2, 2, 10410, 10411, 3, 2, 2, 2, 10411, 10412, 3, 2, 2, 2, 10412, 10413, 5, 966, 484, 2, 10413, 915, 3, 2, 2, 2, 10414, 10426, 5, 914, 458, 2, 10415, 10416, 5, 966, 484, 2, 10416, 10418, 7, 823, 2, 2, 10417, 10419, 5, 966, 484, 2, 10418, 10417, 3, 2, 2, 2, 10418, 10419, 3, 2, 2, 2, 10419, 10420, 3, 2, 2, 2, 10420, 10421, 7, 823, 2, 2, 10421, 10423, 3, 2, 2, 2, 10422, 10415, 3, 2, 2, 2, 10422, 10423, 3, 2, 2, 2, 10423, 10424, 3, 2, 2, 2, 10424, 10426, 5, 966, 484, 2, 10425, 10414, 3, 2, 2, 2, 10425, 10422, 3, 2, 2, 2, 10426, 917, 3, 2, 2, 2, 10427, 10441, 5, 916, 459, 2, 10428, 10429, 5, 966, 484, 2, 10429, 10430, 7, 823, 2, 2, 10430, 10431, 5, 966, 484, 2, 10431, 10433, 7, 823, 2, 2, 10432, 10434, 5, 966, 484, 2, 10433, 10432, 3, 2, 2, 2, 10433, 10434, 3, 2, 2, 2, 10434, 10435, 3, 2, 2, 2, 10435, 10436, 7, 823, 2, 2, 10436, 10438, 3, 2, 2, 2, 10437, 10428, 3, 2, 2, 2, 10437, 10438, 3, 2, 2, 2, 10438, 10439, 3, 2, 2, 2, 10439, 10441, 5, 966, 484, 2, 10440, 10427, 3, 2, 2, 2, 10440, 10437, 3, 2, 2, 2, 10441, 919, 3, 2, 2, 2, 10442, 10445, 5, 908, 455, 2, 10443, 10445, 7, 801, 2, 2, 10444, 10442, 3, 2, 2, 2, 10444, 10443, 3, 2, 2, 2, 10445, 921, 3, 2, 2, 2, 10446, 10447, 5, 910, 456, 2, 10447, 10448, 7, 823, 2, 2, 10448, 10450, 3, 2, 2, 2, 10449, 10446, 3, 2, 2, 2, 10449, 10450, 3, 2, 2, 2, 10450, 10451, 3, 2, 2, 2, 10451, 10495, 5, 966, 484, 2, 10452, 10453, 5, 910, 456, 2, 10453, 10454, 7, 823, 2, 2, 10454, 10456, 3, 2, 2, 2, 10455, 10452, 3, 2, 2, 2, 10455, 10456, 3, 2, 2, 2, 10456, 10457, 3, 2, 2, 2, 10457, 10495, 7, 440, 2, 2, 10458, 10459, 5, 910, 456, 2, 10459, 10460, 7, 823, 2, 2, 10460, 10462, 3, 2, 2, 2, 10461, 10458, 3, 2, 2, 2, 10461, 10462, 3, 2, 2, 2, 10462, 10463, 3, 2, 2, 2, 10463, 10495, 7, 736, 2, 2, 10464, 10465, 5, 910, 456, 2, 10465, 10466, 7, 823, 2, 2, 10466, 10468, 3, 2, 2, 2, 10467, 10464, 3, 2, 2, 2, 10467, 10468, 3, 2, 2, 2, 10468, 10469, 3, 2, 2, 2, 10469, 10495, 7, 662, 2, 2, 10470, 10471, 5, 910, 456, 2, 10471, 10472, 7, 823, 2, 2, 10472, 10474, 3, 2, 2, 2, 10473, 10470, 3, 2, 2, 2, 10473, 10474, 3, 2, 2, 2, 10474, 10475, 3, 2, 2, 2, 10475, 10495, 7, 404, 2, 2, 10476, 10477, 5, 910, 456, 2, 10477, 10478, 7, 823, 2, 2, 10478, 10480, 3, 2, 2, 2, 10479, 10476, 3, 2, 2, 2, 10479, 10480, 3, 2, 2, 2, 10480, 10481, 3, 2, 2, 2, 10481, 10495, 7, 401, 2, 2, 10482, 10483, 5, 910, 456, 2, 10483, 10484, 7, 823, 2, 2, 10484, 10486, 3, 2, 2, 2, 10485, 10482, 3, 2, 2, 2, 10485, 10486, 3, 2, 2, 2, 10486, 10487, 3, 2, 2, 2, 10487, 10495, 7, 400, 2, 2, 10488, 10489, 5, 910, 456, 2, 10489, 10490, 7, 823, 2, 2, 10490, 10492, 3, 2, 2, 2, 10491, 10488, 3, 2, 2, 2, 10491, 10492, 3, 2, 2, 2, 10492, 10493, 3, 2, 2, 2, 10493, 10495, 7, 399, 2, 2, 10494, 10449, 3, 2, 2, 2, 10494, 10455, 3, 2, 2, 2, 10494, 10461, 3, 2, 2, 2, 10494, 10467, 3, 2, 2, 2, 10494, 10473, 3, 2, 2, 2, 10494, 10479, 3, 2, 2, 2, 10494, 10485, 3, 2, 2, 2, 10494, 10491, 3, 2, 2, 2, 10495, 923, 3, 2, 2, 2, 10496, 10498, 5, 966, 484, 2, 10497, 10499, 9, 117, 2, 2, 10498, 10497, 3, 2, 2, 2, 10498, 10499, 3, 2, 2, 2, 10499, 10507, 3, 2, 2, 2, 10500, 10501, 7, 830, 2, 2, 10501, 10503, 5, 966, 484, 2, 10502, 10504, 9, 117, 2, 2, 10503, 10502, 3, 2, 2, 2, 10503, 10504, 3, 2, 2, 2, 10504, 10506, 3, 2, 2, 2, 10505, 10500, 3, 2, 2, 2, 10506, 10509, 3, 2, 2, 2, 10507, 10505, 3, 2, 2, 2, 10507, 10508, 3, 2, 2, 2, 10508, 925, 3, 2, 2, 2, 10509, 10507, 3, 2, 2, 2, 10510, 10515, 5, 966, 484, 2, 10511, 10512, 7, 830, 2, 2, 10512, 10514, 5, 966, 484, 2, 10513, 10511, 3, 2, 2, 2, 10514, 10517, 3, 2, 2, 2, 10515, 10513, 3, 2, 2, 2, 10515, 10516, 3, 2, 2, 2, 10516, 927, 3, 2, 2, 2, 10517, 10515, 3, 2, 2, 2, 10518, 10521, 5, 966, 484, 2, 10519, 10521, 7, 801, 2, 2, 10520, 10518, 3, 2, 2, 2, 10520, 10519, 3, 2, 2, 2, 10521, 929, 3, 2, 2, 2, 10522, 10523, 9, 9, 2, 2, 10523, 931, 3, 2, 2, 2, 10524, 10525, 9, 132, 2, 2, 10525, 933, 3, 2, 2, 2, 10526, 10528, 7, 220, 2, 2, 10527, 10526, 3, 2, 2, 2, 10527, 10528, 3, 2, 2, 2, 10528, 10529, 3, 2, 2, 2, 10529, 10530, 7, 223, 2, 2, 10530, 935, 3, 2, 2, 2, 10531, 10539, 5, 934, 468, 2, 10532, 10533, 7, 89, 2, 2, 10533, 10536, 5, 738, 370, 2, 10534, 10535, 7, 377, 2, 2, 10535, 10537, 7, 367, 2, 2, 10536, 10534, 3, 2, 2, 2, 10536, 10537, 3, 2, 2, 2, 10537, 10539, 3, 2, 2, 2, 10538, 10531, 3, 2, 2, 2, 10538, 10532, 3, 2, 2, 2, 10539, 937, 3, 2, 2, 2, 10540, 10546, 5, 918, 460, 2, 10541, 10546, 7, 287, 2, 2, 10542, 10546, 7, 177, 2, 2, 10543, 10546, 7, 421, 2, 2, 10544, 10546, 7, 434, 2, 2, 10545, 10540, 3, 2, 2, 2, 10545, 10541, 3, 2, 2, 2, 10545, 10542, 3, 2, 2, 2, 10545, 10543, 3, 2, 2, 2, 10545, 10544, 3, 2, 2, 2, 10546, 939, 3, 2, 2, 2, 10547, 10548, 7, 28, 2, 2, 10548, 10549, 7, 70, 2, 2, 10549, 10550, 7, 759, 2, 2, 10550, 10551, 7, 828, 2, 2, 10551, 10552, 7, 801, 2, 2, 10552, 10553, 7, 829, 2, 2, 10553, 10554, 7, 758, 2, 2, 10554, 10555, 7, 810, 2, 2, 10555, 10557, 5, 448, 225, 2, 10556, 10558, 7, 831, 2, 2, 10557, 10556, 3, 2, 2, 2, 10557, 10558, 3, 2, 2, 2, 10558, 941, 3, 2, 2, 2, 10559, 10560, 7, 28, 2, 2, 10560, 10562, 7, 478, 2, 2, 10561, 10563, 7, 70, 2, 2, 10562, 10561, 3, 2, 2, 2, 10562, 10563, 3, 2, 2, 2, 10563, 10564, 3, 2, 2, 2, 10564, 10565, 7, 801, 2, 2, 10565, 10566, 7, 139, 2, 2, 10566, 10567, 7, 310, 2, 2, 10567, 10568, 5, 946, 474, 2, 10568, 10569, 7, 346, 2, 2, 10569, 10570, 7, 310, 2, 2, 10570, 10573, 5, 946, 474, 2, 10571, 10572, 7, 830, 2, 2, 10572, 10574, 7, 806, 2, 2, 10573, 10571, 3, 2, 2, 2, 10573, 10574, 3, 2, 2, 2, 10574, 10575, 3, 2, 2, 2, 10575, 10576, 7, 229, 2, 2, 10576, 10577, 7, 68, 2, 2, 10577, 10600, 5, 944, 473, 2, 10578, 10585, 7, 377, 2, 2, 10579, 10580, 9, 133, 2, 2, 10580, 10581, 7, 810, 2, 2, 10581, 10583, 7, 801, 2, 2, 10582, 10584, 7, 830, 2, 2, 10583, 10582, 3, 2, 2, 2, 10583, 10584, 3, 2, 2, 2, 10584, 10586, 3, 2, 2, 2, 10585, 10579, 3, 2, 2, 2, 10585, 10586, 3, 2, 2, 2, 10586, 10593, 3, 2, 2, 2, 10587, 10588, 7, 179, 2, 2, 10588, 10589, 7, 810, 2, 2, 10589, 10591, 9, 2, 2, 2, 10590, 10592, 7, 830, 2, 2, 10591, 10590, 3, 2, 2, 2, 10591, 10592, 3, 2, 2, 2, 10592, 10594, 3, 2, 2, 2, 10593, 10587, 3, 2, 2, 2, 10593, 10594, 3, 2, 2, 2, 10594, 10598, 3, 2, 2, 2, 10595, 10596, 7, 492, 2, 2, 10596, 10597, 7, 810, 2, 2, 10597, 10599, 9, 9, 2, 2, 10598, 10595, 3, 2, 2, 2, 10598, 10599, 3, 2, 2, 2, 10599, 10601, 3, 2, 2, 2, 10600, 10578, 3, 2, 2, 2, 10600, 10601, 3, 2, 2, 2, 10601, 10603, 3, 2, 2, 2, 10602, 10604, 7, 831, 2, 2, 10603, 10602, 3, 2, 2, 2, 10603, 10604, 3, 2, 2, 2, 10604, 943, 3, 2, 2, 2, 10605, 10608, 5, 966, 484, 2, 10606, 10608, 5, 728, 365, 2, 10607, 10605, 3, 2, 2, 2, 10607, 10606, 3, 2, 2, 2, 10608, 945, 3, 2, 2, 2, 10609, 10612, 5, 966, 484, 2, 10610, 10612, 5, 728, 365, 2, 10611, 10609, 3, 2, 2, 2, 10611, 10610, 3, 2, 2, 2, 10612, 947, 3, 2, 2, 2, 10613, 10614, 7, 108, 2, 2, 10614, 10615, 7, 70, 2, 2, 10615, 10617, 7, 801, 2, 2, 10616, 10618, 7, 831, 2, 2, 10617, 10616, 3, 2, 2, 2, 10617, 10618, 3, 2, 2, 2, 10618, 10631, 3, 2, 2, 2, 10619, 10626, 7, 377, 2, 2, 10620, 10621, 7, 112, 2, 2, 10621, 10622, 7, 810, 2, 2, 10622, 10623, 9, 3, 2, 2, 10623, 10624, 7, 475, 2, 2, 10624, 10625, 7, 810, 2, 2, 10625, 10627, 9, 3, 2, 2, 10626, 10620, 3, 2, 2, 2, 10626, 10627, 3, 2, 2, 2, 10627, 10629, 3, 2, 2, 2, 10628, 10630, 7, 436, 2, 2, 10629, 10628, 3, 2, 2, 2, 10629, 10630, 3, 2, 2, 2, 10630, 10632, 3, 2, 2, 2, 10631, 10619, 3, 2, 2, 2, 10631, 10632, 3, 2, 2, 2, 10632, 949, 3, 2, 2, 2, 10633, 10635, 7, 372, 2, 2, 10634, 10633, 3, 2, 2, 2, 10634, 10635, 3, 2, 2, 2, 10635, 10636, 3, 2, 2, 2, 10636, 10637, 7, 828, 2, 2, 10637, 10638, 5, 952, 477, 2, 10638, 10644, 7, 829, 2, 2, 10639, 10641, 7, 830, 2, 2, 10640, 10639, 3, 2, 2, 2, 10640, 10641, 3, 2, 2, 2, 10641, 10642, 3, 2, 2, 2, 10642, 10643, 7, 758, 2, 2, 10643, 10645, 5, 448, 225, 2, 10644, 10640, 3, 2, 2, 2, 10644, 10645, 3, 2, 2, 2, 10645, 10647, 3, 2, 2, 2, 10646, 10648, 7, 831, 2, 2, 10647, 10646, 3, 2, 2, 2, 10647, 10648, 3, 2, 2, 2, 10648, 951, 3, 2, 2, 2, 10649, 10650, 7, 142, 2, 2, 10650, 10651, 7, 70, 2, 2, 10651, 10652, 7, 146, 2, 2, 10652, 10653, 9, 3, 2, 2, 10653, 10654, 7, 139, 2, 2, 10654, 10656, 5, 954, 478, 2, 10655, 10657, 7, 831, 2, 2, 10656, 10655, 3, 2, 2, 2, 10656, 10657, 3, 2, 2, 2, 10657, 953, 3, 2, 2, 2, 10658, 10659, 5, 966, 484, 2, 10659, 10660, 7, 823, 2, 2, 10660, 10661, 5, 966, 484, 2, 10661, 10662, 7, 823, 2, 2, 10662, 10663, 5, 966, 484, 2, 10663, 10666, 3, 2, 2, 2, 10664, 10666, 5, 966, 484, 2, 10665, 10658, 3, 2, 2, 2, 10665, 10664, 3, 2, 2, 2, 10666, 955, 3, 2, 2, 2, 10667, 10668, 7, 717, 2, 2, 10668, 10669, 7, 229, 2, 2, 10669, 10670, 7, 70, 2, 2, 10670, 10671, 9, 3, 2, 2, 10671, 10672, 7, 592, 2, 2, 10672, 10673, 7, 769, 2, 2, 10673, 10677, 5, 728, 365, 2, 10674, 10675, 7, 828, 2, 2, 10675, 10676, 9, 3, 2, 2, 10676, 10678, 7, 829, 2, 2, 10677, 10674, 3, 2, 2, 2, 10677, 10678, 3, 2, 2, 2, 10678, 10680, 3, 2, 2, 2, 10679, 10681, 7, 831, 2, 2, 10680, 10679, 3, 2, 2, 2, 10680, 10681, 3, 2, 2, 2, 10681, 957, 3, 2, 2, 2, 10682, 10684, 5, 966, 484, 2, 10683, 10685, 7, 150, 2, 2, 10684, 10683, 3, 2, 2, 2, 10684, 10685, 3, 2, 2, 2, 10685, 10693, 3, 2, 2, 2, 10686, 10687, 7, 828, 2, 2, 10687, 10690, 9, 134, 2, 2, 10688, 10689, 7, 830, 2, 2, 10689, 10691, 7, 802, 2, 2, 10690, 10688, 3, 2, 2, 2, 10690, 10691, 3, 2, 2, 2, 10691, 10692, 3, 2, 2, 2, 10692, 10694, 7, 829, 2, 2, 10693, 10686, 3, 2, 2, 2, 10693, 10694, 3, 2, 2, 2, 10694, 10704, 3, 2, 2, 2, 10695, 10697, 7, 100, 2, 2, 10696, 10698, 7, 254, 2, 2, 10697, 10696, 3, 2, 2, 2, 10697, 10698, 3, 2, 2, 2, 10698, 10704, 3, 2, 2, 2, 10699, 10704, 7, 547, 2, 2, 10700, 10704, 7, 760, 2, 2, 10701, 10704, 7, 729, 2, 2, 10702, 10704, 7, 419, 2, 2, 10703, 10682, 3, 2, 2, 2, 10703, 10695, 3, 2, 2, 2, 10703, 10699, 3, 2, 2, 2, 10703, 10700, 3, 2, 2, 2, 10703, 10701, 3, 2, 2, 2, 10703, 10702, 3, 2, 2, 2, 10704, 959, 3, 2, 2, 2, 10705, 10709, 7, 223, 2, 2, 10706, 10709, 7, 89, 2, 2, 10707, 10709, 5, 962, 482, 2, 10708, 10705, 3, 2, 2, 2, 10708, 10706, 3, 2, 2, 2, 10708, 10707, 3, 2, 2, 2, 10709, 961, 3, 2, 2, 2, 10710, 10726, 7, 806, 2, 2, 10711, 10726, 7, 807, 2, 2, 10712, 10714, 5, 964, 483, 2, 10713, 10712, 3, 2, 2, 2, 10713, 10714, 3, 2, 2, 2, 10714, 10715, 3, 2, 2, 2, 10715, 10726, 7, 802, 2, 2, 10716, 10718, 5, 964, 483, 2, 10717, 10716, 3, 2, 2, 2, 10717, 10718, 3, 2, 2, 2, 10718, 10719, 3, 2, 2, 2, 10719, 10726, 9, 112, 2, 2, 10720, 10722, 5, 964, 483, 2, 10721, 10720, 3, 2, 2, 2, 10721, 10722, 3, 2, 2, 2, 10722, 10723, 3, 2, 2, 2, 10723, 10724, 7, 827, 2, 2, 10724, 10726, 9, 135, 2, 2, 10725, 10710, 3, 2, 2, 2, 10725, 10711, 3, 2, 2, 2, 10725, 10713, 3, 2, 2, 2, 10725, 10717, 3, 2, 2, 2, 10725, 10721, 3, 2, 2, 2, 10726, 963, 3, 2, 2, 2, 10727, 10728, 9, 109, 2, 2, 10728, 965, 3, 2, 2, 2, 10729, 10733, 5, 968, 485, 2, 10730, 10733, 7, 798, 2, 2, 10731, 10733, 7, 800, 2, 2, 10732, 10729, 3, 2, 2, 2, 10732, 10730, 3, 2, 2, 2, 10732, 10731, 3, 2, 2, 2, 10733, 967, 3, 2, 2, 2, 10734, 10735, 9, 136, 2, 2, 10735, 969, 3, 2, 2, 2, 10736, 10752, 7, 810, 2, 2, 10737, 10752, 7, 811, 2, 2, 10738, 10752, 7, 812, 2, 2, 10739, 10740, 7, 812, 2, 2, 10740, 10752, 7, 810, 2, 2, 10741, 10742, 7, 811, 2, 2, 10742, 10752, 7, 810, 2, 2, 10743, 10744, 7, 812, 2, 2, 10744, 10752, 7, 811, 2, 2, 10745, 10746, 7, 813, 2, 2, 10746, 10752, 7, 810, 2, 2, 10747, 10748, 7, 813, 2, 2, 10748, 10752, 7, 811, 2, 2, 10749, 10750, 7, 813, 2, 2, 10750, 10752, 7, 812, 2, 2, 10751, 10736, 3, 2, 2, 2, 10751, 10737, 3, 2, 2, 2, 10751, 10738, 3, 2, 2, 2, 10751, 10739, 3, 2, 2, 2, 10751, 10741, 3, 2, 2, 2, 10751, 10743, 3, 2, 2, 2, 10751, 10745, 3, 2, 2, 2, 10751, 10747, 3, 2, 2, 2, 10751, 10749, 3, 2, 2, 2, 10752, 971, 3, 2, 2, 2, 10753, 10754, 9, 137, 2, 2, 10754, 973, 3, 2, 2, 2, 10755, 10757, 7, 802, 2, 2, 10756, 10758, 9, 138, 2, 2, 10757, 10756, 3, 2, 2, 2, 10757, 10758, 3, 2, 2, 2, 10758, 975, 3, 2, 2, 2, 1525, 979, 988, 992, 998, 1001, 1005, 1009, 1018, 1025, 1186, 1193, 1207, 1211, 1214, 1218, 1222, 1226, 1231, 1236, 1238, 1242, 1245, 1252, 1255, 1264, 1267, 1278, 1281, 1286, 1291, 1294, 1299, 1303, 1306, 1310, 1313, 1316, 1323, 1327, 1329, 1334, 1340, 1344, 1357, 1363, 1366, 1375, 1378, 1398, 1406, 1411, 1414, 1419, 1422, 1427, 1435, 1440, 1443, 1448, 1454, 1459, 1476, 1479, 1482, 1485, 1490, 1499, 1514, 1531, 1542, 1548, 1563, 1578, 1587, 1591, 1596, 1602, 1608, 1611, 1616, 1621, 1629, 1639, 1658, 1666, 1679, 1681, 1693, 1695, 1702, 1711, 1717, 1726, 1741, 1751, 1761, 1801, 1824, 1860, 1878, 1881, 1886, 1889, 1894, 1897, 1902, 1905, 1910, 1913, 1921, 1924, 1932, 1945, 1956, 1961, 1965, 1971, 1994, 2006, 2017, 2022, 2026, 2032, 2034, 2047, 2070, 2077, 2086, 2091, 2094, 2099, 2102, 2107, 2112, 2140, 2147, 2152, 2159, 2161, 2172, 2178, 2193, 2207, 2210, 2212, 2217, 2221, 2224, 2226, 2232, 2235, 2237, 2243, 2245, 2267, 2275, 2283, 2285, 2287, 2296, 2317, 2330, 2345, 2349, 2384, 2387, 2392, 2410, 2413, 2418, 2444, 2458, 2463, 2471, 2476, 2483, 2504, 2541, 2546, 2565, 2577, 2580, 2585, 2588, 2594, 2609, 2614, 2622, 2625, 2630, 2635, 2638, 2662, 2669, 2674, 2679, 2684, 2686, 2693, 2706, 2712, 2717, 2725, 2741, 2748, 2753, 2758, 2761, 2767, 2773, 2778, 2783, 2788, 2791, 2797, 2803, 2814, 2817, 2827, 2833, 2837, 2841, 2870, 2883, 2889, 2899, 2902, 2922, 2926, 2930, 2935, 2950, 2957, 2966, 2974, 2977, 2982, 2987, 2995, 3001, 3005, 3011, 3016, 3020, 3027, 3035, 3043, 3052, 3057, 3061, 3064, 3068, 3074, 3079, 3087, 3095, 3101, 3107, 3110, 3115, 3118, 3125, 3127, 3130, 3136, 3139, 3144, 3147, 3152, 3155, 3160, 3163, 3168, 3171, 3174, 3177, 3184, 3188, 3195, 3202, 3208, 3221, 3225, 3230, 3240, 3249, 3253, 3265, 3271, 3276, 3278, 3298, 3302, 3310, 3319, 3325, 3331, 3339, 3341, 3351, 3355, 3358, 3362, 3367, 3373, 3376, 3380, 3388, 3390, 3393, 3401, 3409, 3416, 3423, 3425, 3427, 3432, 3438, 3441, 3443, 3445, 3448, 3453, 3456, 3461, 3476, 3483, 3490, 3492, 3494, 3499, 3505, 3508, 3510, 3512, 3515, 3520, 3523, 3528, 3541, 3546, 3555, 3560, 3566, 3570, 3574, 3591, 3593, 3603, 3608, 3610, 3614, 3620, 3628, 3633, 3636, 3644, 3647, 3652, 3657, 3662, 3667, 3672, 3677, 3681, 3686, 3697, 3702, 3705, 3708, 3713, 3716, 3721, 3724, 3729, 3732, 3737, 3740, 3745, 3748, 3753, 3759, 3764, 3767, 3772, 3779, 3781, 3787, 3796, 3801, 3803, 3815, 3821, 3833, 3836, 3841, 3843, 3853, 3858, 3860, 3864, 3870, 3888, 3890, 3905, 3923, 3931, 3941, 3957, 3978, 3989, 3995, 4004, 4013, 4019, 4028, 4033, 4036, 4041, 4044, 4049, 4052, 4060, 4066, 4070, 4077, 4083, 4087, 4090, 4092, 4095, 4100, 4103, 4108, 4111, 4116, 4119, 4124, 4127, 4142, 4153, 4165, 4172, 4179, 4183, 4188, 4191, 4196, 4199, 4204, 4207, 4216, 4223, 4238, 4242, 4247, 4258, 4268, 4280, 4286, 4288, 4296, 4305, 4310, 4321, 4324, 4328, 4336, 4340, 4344, 4352, 4357, 4365, 4370, 4374, 4376, 4381, 4390, 4393, 4398, 4405, 4411, 4413, 4418, 4424, 4430, 4435, 4441, 4448, 4453, 4458, 4463, 4466, 4470, 4474, 4478, 4482, 4487, 4491, 4495, 4505, 4511, 4518, 4521, 4527, 4533, 4538, 4540, 4546, 4548, 4553, 4559, 4565, 4570, 4572, 4576, 4580, 4583, 4597, 4602, 4606, 4619, 4622, 4624, 4632, 4642, 4648, 4655, 4658, 4664, 4670, 4675, 4677, 4683, 4685, 4690, 4696, 4702, 4708, 4713, 4715, 4719, 4723, 4726, 4740, 4745, 4749, 4762, 4765, 4767, 4775, 4786, 4795, 4804, 4815, 4824, 4833, 4845, 4849, 4854, 4856, 4858, 4863, 4867, 4872, 4874, 4876, 4890, 4895, 4917, 4939, 4944, 4957, 4965, 4985, 4988, 4994, 5002, 5009, 5014, 5018, 5022, 5025, 5032, 5050, 5052, 5072, 5080, 5085, 5103, 5118, 5120, 5127, 5134, 5139, 5144, 5150, 5155, 5157, 5164, 5170, 5176, 5179, 5185, 5195, 5198, 5205, 5208, 5213, 5215, 5223, 5227, 5233, 5238, 5240, 5243, 5250, 5256, 5263, 5266, 5272, 5277, 5279, 5282, 5290, 5296, 5303, 5306, 5312, 5317, 5319, 5327, 5335, 5341, 5346, 5348, 5358, 5363, 5373, 5379, 5391, 5393, 5400, 5406, 5412, 5418, 5423, 5425, 5432, 5440, 5446, 5460, 5462, 5465, 5470, 5472, 5484, 5490, 5504, 5506, 5509, 5514, 5517, 5522, 5524, 5533, 5540, 5546, 5549, 5554, 5561, 5563, 5569, 5571, 5579, 5581, 5587, 5589, 5595, 5597, 5604, 5607, 5609, 5612, 5616, 5618, 5627, 5633, 5637, 5645, 5652, 5658, 5660, 5671, 5676, 5682, 5686, 5696, 5704, 5716, 5719, 5727, 5729, 5732, 5736, 5739, 5749, 5755, 5763, 5767, 5771, 5780, 5786, 5790, 5793, 5804, 5808, 5815, 5820, 5823, 5831, 5835, 5838, 5842, 5845, 5849, 5856, 5860, 5862, 5864, 5867, 5870, 5873, 5879, 5882, 5890, 5892, 5895, 5899, 5902, 5908, 5911, 5915, 5918, 5921, 5928, 5931, 5938, 5944, 5948, 5958, 5961, 5964, 5968, 5971, 5974, 5977, 5981, 5984, 5992, 5994, 5998, 6001, 6009, 6013, 6017, 6024, 6028, 6030, 6032, 6035, 6038, 6041, 6049, 6055, 6061, 6063, 6067, 6070, 6075, 6080, 6083, 6091, 6095, 6102, 6105, 6114, 6117, 6121, 6129, 6132, 6136, 6139, 6153, 6157, 6160, 6164, 6167, 6172, 6175, 6181, 6184, 6191, 6195, 6197, 6205, 6208, 6212, 6219, 6224, 6227, 6239, 6242, 6248, 6255, 6260, 6265, 6272, 6279, 6282, 6290, 6298, 6301, 6309, 6320, 6323, 6333, 6340, 6345, 6348, 6358, 6361, 6364, 6372, 6383, 6386, 6389, 6395, 6400, 6404, 6414, 6417, 6420, 6426, 6432, 6440, 6443, 6447, 6451, 6454, 6459, 6473, 6489, 6493, 6499, 6501, 6504, 6508, 6513, 6518, 6526, 6531, 6536, 6542, 6547, 6550, 6559, 6569, 6572, 6581, 6589, 6592, 6599, 6602, 6648, 6652, 6655, 6661, 6673, 6675, 6678, 6703, 6714, 6722, 6733, 6738, 6741, 6749, 6759, 6766, 6773, 6775, 6787, 6798, 6802, 6807, 6810, 6812, 6815, 6827, 6829, 6831, 6834, 6839, 6842, 6847, 6857, 6861, 6866, 6869, 6871, 6874, 6886, 6888, 6890, 6893, 6899, 6909, 6929, 6935, 6960, 6962, 6988, 6994, 7005, 7013, 7016, 7030, 7038, 7045, 7068, 7081, 7087, 7094, 7102, 7105, 7108, 7117, 7127, 7134, 7138, 7142, 7148, 7155, 7159, 7165, 7172, 7179, 7182, 7188, 7195, 7199, 7204, 7209, 7214, 7222, 7226, 7232, 7239, 7243, 7252, 7260, 7266, 7272, 7289, 7293, 7301, 7305, 7313, 7317, 7322, 7326, 7333, 7339, 7341, 7345, 7349, 7353, 7356, 7360, 7366, 7370, 7372, 7379, 7386, 7389, 7392, 7399, 7404, 7409, 7413, 7419, 7423, 7425, 7430, 7435, 7439, 7444, 7450, 7454, 7458, 7460, 7464, 7468, 7472, 7476, 7482, 7485, 7491, 7495, 7499, 7505, 7511, 7513, 7516, 7520, 7524, 7528, 7534, 7537, 7543, 7549, 7552, 7558, 7561, 7567, 7570, 7574, 7578, 7582, 7587, 7590, 7594, 7598, 7615, 7617, 7619, 7622, 7629, 7634, 7638, 7644, 7648, 7650, 7655, 7660, 7664, 7669, 7675, 7679, 7683, 7685, 7689, 7693, 7697, 7701, 7707, 7710, 7716, 7720, 7724, 7730, 7736, 7738, 7741, 7745, 7749, 7753, 7759, 7762, 7768, 7774, 7777, 7783, 7786, 7792, 7795, 7799, 7803, 7807, 7812, 7815, 7819, 7823, 7829, 7832, 7836, 7853, 7855, 7857, 7860, 7874, 7880, 7888, 7895, 7897, 7900, 7933, 7937, 7941, 7948, 7959, 7963, 7970, 7973, 7976, 7984, 7989, 7994, 7997, 7999, 8003, 8007, 8010, 8014, 8020, 8025, 8032, 8034, 8038, 8046, 8052, 8056, 8059, 8068, 8071, 8077, 8084, 8089, 8097, 8102, 8114, 8116, 8127, 8134, 8144, 8167, 8180, 8196, 8201, 8208, 8211, 8215, 8217, 8234, 8249, 8257, 8266, 8274, 8283, 8294, 8298, 8300, 8302, 8308, 8313, 8320, 8333, 8335, 8337, 8340, 8343, 8350, 8353, 8359, 8364, 8366, 8369, 8375, 8383, 8385, 8388, 8392, 8395, 8405, 8408, 8412, 8415, 8421, 8424, 8426, 8430, 8435, 8439, 8444, 8449, 8457, 8461, 8464, 8469, 8477, 8482, 8492, 8503, 8508, 8514, 8520, 8524, 8527, 8531, 8535, 8543, 8548, 8550, 8553, 8558, 8567, 8571, 8576, 8579, 8582, 8588, 8596, 8604, 8607, 8610, 8614, 8619, 8622, 8628, 8632, 8638, 8646, 8652, 8654, 8657, 8672, 8675, 8678, 8680, 8691, 8702, 8711, 8721, 8731, 8733, 8735, 8738, 8741, 8752, 8754, 8756, 8759, 8764, 8775, 8784, 8787, 8790, 8799, 8802, 8805, 8812, 8815, 8830, 8833, 8840, 8856, 8860, 8870, 8889, 8891, 8898, 8905, 8909, 8917, 8921, 8925, 8931, 8941, 8951, 8958, 8965, 8974, 8981, 8988, 8997, 9001, 9011, 9018, 9026, 9034, 9038, 9060, 9069, 9075, 9081, 9087, 9097, 9104, 9109, 9114, 9118, 9125, 9129, 9132, 9137, 9141, 9145, 9150, 9157, 9160, 9164, 9169, 9173, 9182, 9189, 9198, 9210, 9212, 9222, 9225, 9230, 9239, 9241, 9243, 9248, 9256, 9261, 9269, 9274, 9280, 9290, 9292, 9296, 9300, 9302, 9311, 9313, 9317, 9328, 9362, 9378, 9385, 9387, 9394, 9403, 9411, 9418, 9425, 9428, 9431, 9438, 9445, 9448, 9450, 9458, 9460, 9466, 9473, 9481, 9487, 9492, 9496, 9500, 9505, 9507, 9515, 9517, 9521, 9528, 9530, 9537, 9539, 9548, 9556, 9563, 9569, 9580, 9584, 9586, 9589, 9613, 9638, 9643, 9663, 9667, 9671, 9687, 9707, 9765, 9769, 9817, 9833, 9835, 9842, 9848, 9861, 9876, 9887, 9892, 9902, 9911, 9945, 9950, 9956, 9959, 9964, 9969, 9978, 9983, 9989, 9998, 10008, 10011, 10025, 10031, 10039, 10043, 10051, 10058, 10071, 10079, 10092, 10099, 10105, 10109, 10126, 10141, 10143, 10148, 10151, 10160, 10163, 10166, 10179, 10183, 10191, 10197, 10205, 10212, 10218, 10233, 10242, 10248, 10254, 10257, 10261, 10268, 10276, 10279, 10285, 10291, 10293, 10299, 10302, 10304, 10310, 10312, 10326, 10333, 10342, 10349, 10361, 10368, 10375, 10382, 10388, 10395, 10398, 10403, 10410, 10418, 10422, 10425, 10433, 10437, 10440, 10444, 10449, 10455, 10461, 10467, 10473, 10479, 10485, 10491, 10494, 10498, 10503, 10507, 10515, 10520, 10527, 10536, 10538, 10545, 10557, 10562, 10573, 10583, 10585, 10591, 10593, 10598, 10600, 10603, 10607, 10611, 10617, 10626, 10629, 10631, 10634, 10640, 10644, 10647, 10656, 10665, 10677, 10680, 10684, 10690, 10693, 10697, 10703, 10708, 10713, 10717, 10721, 10725, 10732, 10751, 10757] \ No newline at end of file diff --git a/src/grammar/tsql/TSqlLexer.g4 b/src/grammar/tsql/TSqlLexer.g4 new file mode 100644 index 0000000..19db4c5 --- /dev/null +++ b/src/grammar/tsql/TSqlLexer.g4 @@ -0,0 +1,902 @@ +/* +T-SQL (Transact-SQL, MSSQL) grammar. +The MIT License (MIT). +Copyright (c) 2017, Mark Adams (madams51703@gmail.com) +Copyright (c) 2015-2017, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. +Copyright (c) 2016, Scott Ure (scott@redstormsoftware.com). +Copyright (c) 2016, Rui Zhang (ruizhang.ccs@gmail.com). +Copyright (c) 2016, Marcus Henriksson (kuseman80@gmail.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. +*/ + +lexer grammar TSqlLexer; + +// Basic keywords (from https://msdn.microsoft.com/en-us/library/ms189822.aspx) +ABSENT: 'ABSENT'; +ADD: 'ADD'; +AES: 'AES'; +ALL: 'ALL'; +ALLOW_CONNECTIONS: 'ALLOW_CONNECTIONS'; +ALLOW_MULTIPLE_EVENT_LOSS: 'ALLOW_MULTIPLE_EVENT_LOSS'; +ALLOW_SINGLE_EVENT_LOSS: 'ALLOW_SINGLE_EVENT_LOSS'; +ALTER: 'ALTER'; +AND: 'AND'; +ANONYMOUS: 'ANONYMOUS'; +ANY: 'ANY'; +APPEND: 'APPEND'; +APPLICATION: 'APPLICATION'; +AS: 'AS'; +ASC: 'ASC'; +ASYMMETRIC: 'ASYMMETRIC'; +ASYNCHRONOUS_COMMIT: 'ASYNCHRONOUS_COMMIT'; +AUTHORIZATION: 'AUTHORIZATION'; +AUTHENTICATION: 'AUTHENTICATION'; +AUTOMATED_BACKUP_PREFERENCE: 'AUTOMATED_BACKUP_PREFERENCE'; +AUTOMATIC: 'AUTOMATIC'; +AVAILABILITY_MODE: 'AVAILABILITY_MODE'; +BACKSLASH: '\\'; +BACKUP: 'BACKUP'; +BEFORE: 'BEFORE'; +BEGIN: 'BEGIN'; +BETWEEN: 'BETWEEN'; +BLOCK: 'BLOCK'; +BLOCKSIZE: 'BLOCKSIZE'; +BLOCKING_HIERARCHY: 'BLOCKING_HIERARCHY'; +BREAK: 'BREAK'; +BROWSE: 'BROWSE'; +BUFFER: 'BUFFER'; +BUFFERCOUNT: 'BUFFERCOUNT'; +BULK: 'BULK'; +BY: 'BY'; +CACHE: 'CACHE'; +CALLED: 'CALLED'; +CASCADE: 'CASCADE'; +CASE: 'CASE'; +CERTIFICATE: 'CERTIFICATE'; +CHANGETABLE: 'CHANGETABLE'; +CHANGES: 'CHANGES'; +CHECK: 'CHECK'; +CHECKPOINT: 'CHECKPOINT'; +CHECK_POLICY: 'CHECK_POLICY'; +CHECK_EXPIRATION: 'CHECK_EXPIRATION'; +CLASSIFIER_FUNCTION: 'CLASSIFIER_FUNCTION'; +CLOSE: 'CLOSE'; +CLUSTER: 'CLUSTER'; +CLUSTERED: 'CLUSTERED'; +COALESCE: 'COALESCE'; +COLLATE: 'COLLATE'; +COLUMN: 'COLUMN'; +COMPRESSION: 'COMPRESSION'; +COMMIT: 'COMMIT'; +COMPUTE: 'COMPUTE'; +CONFIGURATION: 'CONFIGURATION'; +CONSTRAINT: 'CONSTRAINT'; +CONTAINMENT: 'CONTAINMENT'; +CONTAINS: 'CONTAINS'; +CONTAINSTABLE: 'CONTAINSTABLE'; +CONTEXT: 'CONTEXT'; +CONTINUE: 'CONTINUE'; +CONTINUE_AFTER_ERROR: 'CONTINUE_AFTER_ERROR'; +CONTRACT: 'CONTRACT'; +CONTRACT_NAME: 'CONTRACT_NAME'; +CONVERSATION: 'CONVERSATION'; +CONVERT: 'TRY_'? 'CONVERT'; +COPY_ONLY: 'COPY_ONLY'; +CREATE: 'CREATE'; +CROSS: 'CROSS'; +CURRENT: 'CURRENT'; +CURRENT_DATE: 'CURRENT_DATE'; +CURRENT_TIME: 'CURRENT_TIME'; +CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'; +CURRENT_USER: 'CURRENT_USER'; +CURSOR: 'CURSOR'; +CYCLE: 'CYCLE'; +DATA_COMPRESSION: 'DATA_COMPRESSION'; +DATA_SOURCE: 'DATA_SOURCE'; +DATABASE: 'DATABASE'; +DATABASE_MIRRORING: 'DATABASE_MIRRORING'; +DBCC: 'DBCC'; +DEALLOCATE: 'DEALLOCATE'; +DECLARE: 'DECLARE'; +DEFAULT: 'DEFAULT'; +DEFAULT_DATABASE: 'DEFAULT_DATABASE'; +DEFAULT_SCHEMA: 'DEFAULT_SCHEMA'; +DELETE: 'DELETE'; +DENY: 'DENY'; +DESC: 'DESC'; +DIAGNOSTICS: 'DIAGNOSTICS'; +DIFFERENTIAL: 'DIFFERENTIAL'; +DISK: 'DISK'; +DISTINCT: 'DISTINCT'; +DISTRIBUTED: 'DISTRIBUTED'; +DOUBLE: 'DOUBLE'; +DOUBLE_BACK_SLASH: '\\\\'; +DOUBLE_FORWARD_SLASH: '//'; +DROP: 'DROP'; +DTC_SUPPORT: 'DTC_SUPPORT'; +DUMP: 'DUMP'; +ELSE: 'ELSE'; +ENABLED: 'ENABLED'; +END: 'END'; +ENDPOINT: 'ENDPOINT'; +ERRLVL: 'ERRLVL'; +ESCAPE: 'ESCAPE'; +ERROR: 'ERROR'; +EVENT: 'EVENT'; +EVENTDATA: 'EVENTDATA' '(' ')'; +EVENT_RETENTION_MODE: 'EVENT_RETENTION_MODE'; +EXCEPT: 'EXCEPT'; +EXECUTABLE_FILE: 'EXECUTABLE_FILE'; +EXECUTE: 'EXEC' 'UTE'?; +EXISTS: 'EXISTS'; +EXPIREDATE: 'EXPIREDATE'; +EXIT: 'EXIT'; +EXTENSION: 'EXTENSION'; +EXTERNAL: 'EXTERNAL'; +EXTERNAL_ACCESS: 'EXTERNAL_ACCESS'; +FAILOVER: 'FAILOVER'; +FAILURECONDITIONLEVEL: 'FAILURECONDITIONLEVEL'; +FAN_IN: 'FAN_IN'; +FETCH: 'FETCH'; +FILE: 'FILE'; +FILENAME: 'FILENAME'; +FILLFACTOR: 'FILLFACTOR'; +FILE_SNAPSHOT: 'FILE_SNAPSHOT'; +FOR: 'FOR'; +FORCESEEK: 'FORCESEEK'; +FORCE_SERVICE_ALLOW_DATA_LOSS: 'FORCE_SERVICE_ALLOW_DATA_LOSS'; +FOREIGN: 'FOREIGN'; +FREETEXT: 'FREETEXT'; +FREETEXTTABLE: 'FREETEXTTABLE'; +FROM: 'FROM'; +FULL: 'FULL'; +FUNCTION: 'FUNCTION'; +GET: 'GET'; +GOTO: 'GOTO'; +GOVERNOR: 'GOVERNOR'; +GRANT: 'GRANT'; +GROUP: 'GROUP'; +HAVING: 'HAVING'; +HASHED: 'HASHED'; +HEALTHCHECKTIMEOUT: 'HEALTHCHECKTIMEOUT'; +IDENTITY: 'IDENTITY'; +IDENTITYCOL: 'IDENTITYCOL'; +IDENTITY_INSERT: 'IDENTITY_INSERT'; +IF: 'IF'; +IIF: 'IIF'; +IN: 'IN'; +INCLUDE: 'INCLUDE'; +INCREMENT: 'INCREMENT'; +INDEX: 'INDEX'; +INFINITE: 'INFINITE'; +INIT: 'INIT'; +INNER: 'INNER'; +INSERT: 'INSERT'; +INSTEAD: 'INSTEAD'; +INTERSECT: 'INTERSECT'; +INTO: 'INTO'; +IPV4_ADDR: [']? IPV4_OCTECT DOT IPV4_OCTECT DOT IPV4_OCTECT DOT IPV4_OCTECT [']?; +IPV6_ADDR: [']?[0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[:][0-9A-F]?[0-9A-F]?[0-9A-F]?[0-9A-F]?[']?; +IS: 'IS'; +ISNULL: 'ISNULL'; +JOIN: 'JOIN'; +KERBEROS: 'KERBEROS'; +KEY: 'KEY'; +KEY_PATH: 'KEY_PATH'; +KEY_STORE_PROVIDER_NAME: 'KEY_STORE_PROVIDER_NAME'; +KILL: 'KILL'; +LANGUAGE: 'LANGUAGE'; +LEFT: 'LEFT'; +LIBRARY: 'LIBRARY'; +LIFETIME: 'LIFETIME'; +LIKE: 'LIKE'; +LINENO: 'LINENO'; +LINUX: 'LINUX'; +LISTENER_IP: 'LISTENER_IP'; +LISTENER_PORT: 'LISTENER_PORT'; +LOAD: 'LOAD'; +LOCAL_SERVICE_NAME: 'LOCAL_SERVICE_NAME'; +LOG: 'LOG'; +MATCHED: 'MATCHED'; +MASTER: 'MASTER'; +MAX_MEMORY: 'MAX_MEMORY'; +MAXTRANSFER: 'MAXTRANSFER'; +MAXVALUE: 'MAXVALUE'; +MAX_DISPATCH_LATENCY: 'MAX_DISPATCH_LATENCY'; +MAX_EVENT_SIZE: 'MAX_EVENT_SIZE'; +MAX_SIZE: 'MAX_SIZE'; +MAX_OUTSTANDING_IO_PER_VOLUME: 'MAX_OUTSTANDING_IO_PER_VOLUME'; +MEDIADESCRIPTION: 'MEDIADESCRIPTION'; +MEDIANAME: 'MEDIANAME'; +MEMBER: 'MEMBER'; +MEMORY_PARTITION_MODE: 'MEMORY_PARTITION_MODE'; +MERGE: 'MERGE'; +MESSAGE_FORWARDING: 'MESSAGE_FORWARDING'; +MESSAGE_FORWARD_SIZE: 'MESSAGE_FORWARD_SIZE'; +MINVALUE: 'MINVALUE'; +MIRROR: 'MIRROR'; +MUST_CHANGE: 'MUST_CHANGE'; +NATIONAL: 'NATIONAL'; +NEGOTIATE: 'NEGOTIATE'; +NOCHECK: 'NOCHECK'; +NOFORMAT: 'NOFORMAT'; +NOINIT: 'NOINIT'; +NONCLUSTERED: 'NONCLUSTERED'; +NONE: 'NONE'; +NOREWIND: 'NOREWIND'; +NOSKIP: 'NOSKIP'; +NOUNLOAD: 'NOUNLOAD'; +NO_CHECKSUM: 'NO_CHECKSUM'; +NO_COMPRESSION: 'NO_COMPRESSION'; +NO_EVENT_LOSS: 'NO_EVENT_LOSS'; +NOT: 'NOT'; +NOTIFICATION: 'NOTIFICATION'; +NTLM: 'NTLM'; +NULL: 'NULL'; +NULLIF: 'NULLIF'; +OF: 'OF'; +OFF: 'OFF'; +OFFSETS: 'OFFSETS'; +OLD_PASSWORD: 'OLD_PASSWORD'; +ON: 'ON'; +ON_FAILURE: 'ON_FAILURE'; +OPEN: 'OPEN'; +OPENDATASOURCE: 'OPENDATASOURCE'; +OPENQUERY: 'OPENQUERY'; +OPENROWSET: 'OPENROWSET'; +OPENXML: 'OPENXML'; +OPTION: 'OPTION'; +OR: 'OR'; +ORDER: 'ORDER'; +OUTER: 'OUTER'; +OVER: 'OVER'; +PAGE: 'PAGE'; +PARAM_NODE: 'PARAM_NODE'; +PARTIAL: 'PARTIAL'; +PASSWORD: 'PASSWORD'; +PERCENT: 'PERCENT'; +PERMISSION_SET: 'PERMISSION_SET'; +PER_CPU: 'PER_CPU'; +PER_DB: 'PER_DB'; +PER_NODE: 'PER_NODE'; +PIVOT: 'PIVOT'; +PLAN: 'PLAN'; +PLATFORM: 'PLATFORM'; +POLICY: 'POLICY'; +PRECISION: 'PRECISION'; +PREDICATE: 'PREDICATE'; +PRIMARY: 'PRIMARY'; +PRINT: 'PRINT'; +PROC: 'PROC'; +PROCEDURE: 'PROCEDURE'; +PROCESS: 'PROCESS'; +PUBLIC: 'PUBLIC'; +PYTHON: 'PYTHON'; +R: 'R'; +RAISERROR: 'RAISERROR'; +RAW: 'RAW'; +READ: 'READ'; +READTEXT: 'READTEXT'; +READ_WRITE_FILEGROUPS: 'READ_WRITE_FILEGROUPS'; +RECONFIGURE: 'RECONFIGURE'; +REFERENCES: 'REFERENCES'; +REGENERATE: 'REGENERATE'; +RELATED_CONVERSATION: 'RELATED_CONVERSATION'; +RELATED_CONVERSATION_GROUP: 'RELATED_CONVERSATION_GROUP'; +REPLICATION: 'REPLICATION'; +REQUIRED: 'REQUIRED'; +RESET: 'RESET'; +RESTART: 'RESTART'; +RESTORE: 'RESTORE'; +RESTRICT: 'RESTRICT'; +RESUME: 'RESUME'; +RETAINDAYS: 'RETAINDAYS'; +RETURN: 'RETURN'; +RETURNS: 'RETURNS'; +REVERT: 'REVERT'; +REVOKE: 'REVOKE'; +REWIND: 'REWIND'; +RIGHT: 'RIGHT'; +ROLLBACK: 'ROLLBACK'; +ROLE: 'ROLE'; +ROWCOUNT: 'ROWCOUNT'; +ROWGUIDCOL: 'ROWGUIDCOL'; +RSA_512: 'RSA_512'; +RSA_1024: 'RSA_1024'; +RSA_2048: 'RSA_2048'; +RSA_3072: 'RSA_3072'; +RSA_4096: 'RSA_4096'; +SAFETY: 'SAFETY'; +RULE: 'RULE'; +SAFE: 'SAFE'; +SAVE: 'SAVE'; +SCHEDULER: 'SCHEDULER'; +SCHEMA: 'SCHEMA'; +SCHEME: 'SCHEME'; +SECURITYAUDIT: 'SECURITYAUDIT'; +SELECT: 'SELECT'; +SEMANTICKEYPHRASETABLE: 'SEMANTICKEYPHRASETABLE'; +SEMANTICSIMILARITYDETAILSTABLE: 'SEMANTICSIMILARITYDETAILSTABLE'; +SEMANTICSIMILARITYTABLE: 'SEMANTICSIMILARITYTABLE'; +SERVER: 'SERVER'; +SERVICE: 'SERVICE'; +SERVICE_BROKER: 'SERVICE_BROKER'; +SERVICE_NAME: 'SERVICE_NAME'; +SESSION: 'SESSION'; +SESSION_USER: 'SESSION_USER'; +SET: 'SET'; +SETUSER: 'SETUSER'; +SHUTDOWN: 'SHUTDOWN'; +SID: 'SID'; +SKIP_KEYWORD: 'SKIP'; +SOFTNUMA: 'SOFTNUMA'; +SOME: 'SOME'; +SOURCE: 'SOURCE'; +SPECIFICATION: 'SPECIFICATION'; +SPLIT: 'SPLIT'; +SQLDUMPERFLAGS: 'SQLDUMPERFLAGS'; +SQLDUMPERPATH: 'SQLDUMPERPATH'; +SQLDUMPERTIMEOUT: 'SQLDUMPERTIMEOUTS'; +STATISTICS: 'STATISTICS'; +STATE: 'STATE'; +STATS: 'STATS'; +START: 'START'; +STARTED: 'STARTED'; +STARTUP_STATE: 'STARTUP_STATE'; +STOP: 'STOP'; +STOPPED: 'STOPPED'; +STOP_ON_ERROR: 'STOP_ON_ERROR'; +SUPPORTED: 'SUPPORTED'; +SYSTEM_USER: 'SYSTEM_USER'; +TABLE: 'TABLE'; +TABLESAMPLE: 'TABLESAMPLE'; +TAPE: 'TAPE'; +TARGET: 'TARGET'; +TCP: 'TCP'; +TEXTSIZE: 'TEXTSIZE'; +THEN: 'THEN'; +TO: 'TO'; +TOP: 'TOP'; +TRACK_CAUSALITY: 'TRACK_CAUSALITY'; +TRAN: 'TRAN'; +TRANSACTION: 'TRANSACTION'; +TRANSFER: 'TRANSFER'; +TRIGGER: 'TRIGGER'; +TRUNCATE: 'TRUNCATE'; +TSEQUAL: 'TSEQUAL'; +UNCHECKED: 'UNCHECKED'; +UNION: 'UNION'; +UNIQUE: 'UNIQUE'; +UNLOCK: 'UNLOCK'; +UNPIVOT: 'UNPIVOT'; +UNSAFE: 'UNSAFE'; +UPDATE: 'UPDATE'; +UPDATETEXT: 'UPDATETEXT'; +URL: 'URL'; +USE: 'USE'; +USED: 'USED'; +USER: 'USER'; +VALUES: 'VALUES'; +VARYING: 'VARYING'; +VERBOSELOGGING: 'VERBOSELOGGING'; +VIEW: 'VIEW'; +VISIBILITY: 'VISIBILITY'; +WAITFOR: 'WAITFOR'; +WHEN: 'WHEN'; +WHERE: 'WHERE'; +WHILE: 'WHILE'; +WINDOWS: 'WINDOWS'; +WITH: 'WITH'; +WITHIN: 'WITHIN'; +WITHOUT: 'WITHOUT'; +WITNESS: 'WITNESS'; +WRITETEXT: 'WRITETEXT'; + +// Additional keywords. They can be id, please keep them in sync with the parser. +ABSOLUTE: 'ABSOLUTE'; +ACCENT_SENSITIVITY: 'ACCENT_SENSITIVITY'; +ACTION: 'ACTION'; +ACTIVATION: 'ACTIVATION'; +ACTIVE: 'ACTIVE'; +ADDRESS: 'ADDRESS'; +AES_128: 'AES_128'; +AES_192: 'AES_192'; +AES_256: 'AES_256'; +AFFINITY: 'AFFINITY'; +AFTER: 'AFTER'; +AGGREGATE: 'AGGREGATE'; +ALGORITHM: 'ALGORITHM'; +ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: 'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'; +ALLOW_SNAPSHOT_ISOLATION: 'ALLOW_SNAPSHOT_ISOLATION'; +ALLOWED: 'ALLOWED'; +ANSI_NULL_DEFAULT: 'ANSI_NULL_DEFAULT'; +ANSI_NULLS: 'ANSI_NULLS'; +ANSI_PADDING: 'ANSI_PADDING'; +ANSI_WARNINGS: 'ANSI_WARNINGS'; +APPLICATION_LOG: 'APPLICATION_LOG'; +APPLY: 'APPLY'; +ARITHABORT: 'ARITHABORT'; +ASSEMBLY: 'ASSEMBLY'; +AUDIT: 'AUDIT'; +AUDIT_GUID: 'AUDIT_GUID'; +AUTO: 'AUTO'; +AUTO_CLEANUP: 'AUTO_CLEANUP'; +AUTO_CLOSE: 'AUTO_CLOSE'; +AUTO_CREATE_STATISTICS: 'AUTO_CREATE_STATISTICS'; +AUTO_SHRINK: 'AUTO_SHRINK'; +AUTO_UPDATE_STATISTICS: 'AUTO_UPDATE_STATISTICS'; +AUTO_UPDATE_STATISTICS_ASYNC: 'AUTO_UPDATE_STATISTICS_ASYNC'; +AVAILABILITY: 'AVAILABILITY'; +AVG: 'AVG'; +BACKUP_PRIORITY: 'BACKUP_PRIORITY'; +BEGIN_DIALOG: 'BEGIN_DIALOG'; +BIGINT: 'BIGINT'; +BINARY_BASE64: 'BINARY BASE64'; +BINARY_CHECKSUM: 'BINARY_CHECKSUM'; +BINDING: 'BINDING'; +BLOB_STORAGE: 'BLOB_STORAGE'; +BROKER: 'BROKER'; +BROKER_INSTANCE: 'BROKER_INSTANCE'; +BULK_LOGGED: 'BULK_LOGGED'; +CALLER: 'CALLER'; +CAP_CPU_PERCENT: 'CAP_CPU_PERCENT'; +CAST: 'TRY_'? 'CAST'; +CATALOG: 'CATALOG'; +CATCH: 'CATCH'; +CHANGE_RETENTION: 'CHANGE_RETENTION'; +CHANGE_TRACKING: 'CHANGE_TRACKING'; +CHECKSUM: 'CHECKSUM'; +CHECKSUM_AGG: 'CHECKSUM_AGG'; +CLEANUP: 'CLEANUP'; +COLLECTION: 'COLLECTION'; +COLUMN_MASTER_KEY: 'COLUMN_MASTER_KEY'; +COMMITTED: 'COMMITTED'; +COMPATIBILITY_LEVEL: 'COMPATIBILITY_LEVEL'; +CONCAT: 'CONCAT'; +CONCAT_NULL_YIELDS_NULL: 'CONCAT_NULL_YIELDS_NULL'; +CONTENT: 'CONTENT'; +CONTROL: 'CONTROL'; +COOKIE: 'COOKIE'; +COUNT: 'COUNT'; +COUNT_BIG: 'COUNT_BIG'; +COUNTER: 'COUNTER'; +CPU: 'CPU'; +CREATE_NEW: 'CREATE_NEW'; +CREATION_DISPOSITION: 'CREATION_DISPOSITION'; +CREDENTIAL: 'CREDENTIAL'; +CRYPTOGRAPHIC: 'CRYPTOGRAPHIC'; +CURSOR_CLOSE_ON_COMMIT: 'CURSOR_CLOSE_ON_COMMIT'; +CURSOR_DEFAULT: 'CURSOR_DEFAULT'; +DATA: 'DATA'; +DATE_CORRELATION_OPTIMIZATION: 'DATE_CORRELATION_OPTIMIZATION'; +DATEADD: 'DATEADD'; +DATEDIFF: 'DATEDIFF'; +DATENAME: 'DATENAME'; +DATEPART: 'DATEPART'; +DAYS: 'DAYS'; +DB_CHAINING: 'DB_CHAINING'; +DB_FAILOVER: 'DB_FAILOVER'; +DECRYPTION: 'DECRYPTION'; +DEFAULT_DOUBLE_QUOTE: ["]'DEFAULT'["]; +DEFAULT_FULLTEXT_LANGUAGE: 'DEFAULT_FULLTEXT_LANGUAGE'; +DEFAULT_LANGUAGE: 'DEFAULT_LANGUAGE'; +DELAY: 'DELAY'; +DELAYED_DURABILITY: 'DELAYED_DURABILITY'; +DELETED: 'DELETED'; +DENSE_RANK: 'DENSE_RANK'; +DEPENDENTS: 'DEPENDENTS'; +DES: 'DES'; +DESCRIPTION: 'DESCRIPTION'; +DESX: 'DESX'; +DHCP: 'DHCP'; +DIALOG: 'DIALOG'; +DIRECTORY_NAME: 'DIRECTORY_NAME'; +DISABLE: 'DISABLE'; +DISABLE_BROKER: 'DISABLE_BROKER'; +DISABLED: 'DISABLED'; +DISK_DRIVE: [A-Z][:]; +DOCUMENT: 'DOCUMENT'; +DYNAMIC: 'DYNAMIC'; +ELEMENTS: 'ELEMENTS'; +EMERGENCY: 'EMERGENCY'; +EMPTY: 'EMPTY'; +ENABLE: 'ENABLE'; +ENABLE_BROKER: 'ENABLE_BROKER'; +ENCRYPTED_VALUE: 'ENCRYPTED_VALUE'; +ENCRYPTION: 'ENCRYPTION'; +ENDPOINT_URL: 'ENDPOINT_URL'; +ERROR_BROKER_CONVERSATIONS: 'ERROR_BROKER_CONVERSATIONS'; +EXCLUSIVE: 'EXCLUSIVE'; +EXECUTABLE: 'EXECUTABLE'; +EXIST: 'EXIST'; +EXPAND: 'EXPAND'; +EXPIRY_DATE: 'EXPIRY_DATE'; +EXPLICIT: 'EXPLICIT'; +FAIL_OPERATION: 'FAIL_OPERATION'; +FAILOVER_MODE: 'FAILOVER_MODE'; +FAILURE: 'FAILURE'; +FAILURE_CONDITION_LEVEL: 'FAILURE_CONDITION_LEVEL'; +FAST: 'FAST'; +FAST_FORWARD: 'FAST_FORWARD'; +FILEGROUP: 'FILEGROUP'; +FILEGROWTH: 'FILEGROWTH'; +FILEPATH: 'FILEPATH'; +FILESTREAM: 'FILESTREAM'; +FILTER: 'FILTER'; +FIRST: 'FIRST'; +FIRST_VALUE: 'FIRST_VALUE'; +FOLLOWING: 'FOLLOWING'; +FORCE: 'FORCE'; +FORCE_FAILOVER_ALLOW_DATA_LOSS: 'FORCE_FAILOVER_ALLOW_DATA_LOSS'; +FORCED: 'FORCED'; +FORMAT: 'FORMAT'; +FORWARD_ONLY: 'FORWARD_ONLY'; +FULLSCAN: 'FULLSCAN'; +FULLTEXT: 'FULLTEXT'; +GB: 'GB'; +GETDATE: 'GETDATE'; +GETUTCDATE: 'GETUTCDATE'; +GLOBAL: 'GLOBAL'; +GO: 'GO'; +GROUP_MAX_REQUESTS: 'GROUP_MAX_REQUESTS'; +GROUPING: 'GROUPING'; +GROUPING_ID: 'GROUPING_ID'; +HADR: 'HADR'; +HASH: 'HASH'; +HEALTH_CHECK_TIMEOUT: 'HEALTH_CHECK_TIMEOUT'; +HIGH: 'HIGH'; +HONOR_BROKER_PRIORITY: 'HONOR_BROKER_PRIORITY'; +HOURS: 'HOURS'; +IDENTITY_VALUE: 'IDENTITY_VALUE'; +IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: 'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'; +IMMEDIATE: 'IMMEDIATE'; +IMPERSONATE: 'IMPERSONATE'; +IMPORTANCE: 'IMPORTANCE'; +INCLUDE_NULL_VALUES: 'INCLUDE_NULL_VALUES'; +INCREMENTAL: 'INCREMENTAL'; +INITIATOR: 'INITIATOR'; +INPUT: 'INPUT'; +INSENSITIVE: 'INSENSITIVE'; +INSERTED: 'INSERTED'; +INT: 'INT'; +IP: 'IP'; +ISOLATION: 'ISOLATION'; +JOB: 'JOB'; +JSON: 'JSON'; +KB: 'KB'; +KEEP: 'KEEP'; +KEEPFIXED: 'KEEPFIXED'; +KEY_SOURCE: 'KEY_SOURCE'; +KEYS: 'KEYS'; +KEYSET: 'KEYSET'; +LAG: 'LAG'; +LAST: 'LAST'; +LAST_VALUE: 'LAST_VALUE'; +LEAD: 'LEAD'; +LEVEL: 'LEVEL'; +LIST: 'LIST'; +LISTENER: 'LISTENER'; +LISTENER_URL: 'LISTENER_URL'; +LOB_COMPACTION: 'LOB_COMPACTION'; +LOCAL: 'LOCAL'; +LOCATION: 'LOCATION'; +LOCK: 'LOCK'; +LOCK_ESCALATION: 'LOCK_ESCALATION'; +LOGIN: 'LOGIN'; +LOOP: 'LOOP'; +LOW: 'LOW'; +MANUAL: 'MANUAL'; +MARK: 'MARK'; +MATERIALIZED: 'MATERIALIZED'; +MAX: 'MAX'; +MAX_CPU_PERCENT: 'MAX_CPU_PERCENT'; +MAX_DOP: 'MAX_DOP'; +MAX_FILES: 'MAX_FILES'; +MAX_IOPS_PER_VOLUME: 'MAX_IOPS_PER_VOLUME'; +MAX_MEMORY_PERCENT: 'MAX_MEMORY_PERCENT'; +MAX_PROCESSES: 'MAX_PROCESSES'; +MAX_QUEUE_READERS: 'MAX_QUEUE_READERS'; +MAX_ROLLOVER_FILES: 'MAX_ROLLOVER_FILES'; +MAXDOP: 'MAXDOP'; +MAXRECURSION: 'MAXRECURSION'; +MAXSIZE: 'MAXSIZE'; +MB: 'MB'; +MEDIUM: 'MEDIUM'; +MEMORY_OPTIMIZED_DATA: 'MEMORY_OPTIMIZED_DATA'; +MESSAGE: 'MESSAGE'; +MIN: 'MIN'; +MIN_ACTIVE_ROWVERSION: 'MIN_ACTIVE_ROWVERSION'; +MIN_CPU_PERCENT: 'MIN_CPU_PERCENT'; +MIN_IOPS_PER_VOLUME: 'MIN_IOPS_PER_VOLUME'; +MIN_MEMORY_PERCENT: 'MIN_MEMORY_PERCENT'; +MINUTES: 'MINUTES'; +MIRROR_ADDRESS: 'MIRROR_ADDRESS'; +MIXED_PAGE_ALLOCATION: 'MIXED_PAGE_ALLOCATION'; +MODE: 'MODE'; +MODIFY: 'MODIFY'; +MOVE: 'MOVE'; +MULTI_USER: 'MULTI_USER'; +NAME: 'NAME'; +NESTED_TRIGGERS: 'NESTED_TRIGGERS'; +NEW_ACCOUNT: 'NEW_ACCOUNT'; +NEW_BROKER: 'NEW_BROKER'; +NEW_PASSWORD: 'NEW_PASSWORD'; +NEXT: 'NEXT'; +NO: 'NO'; +NO_TRUNCATE: 'NO_TRUNCATE'; +NO_WAIT: 'NO_WAIT'; +NOCOUNT: 'NOCOUNT'; +NODES: 'NODES'; +NOEXPAND: 'NOEXPAND'; +NON_TRANSACTED_ACCESS: 'NON_TRANSACTED_ACCESS'; +NORECOMPUTE: 'NORECOMPUTE'; +NORECOVERY: 'NORECOVERY'; +NOWAIT: 'NOWAIT'; +NTILE: 'NTILE'; +NUMANODE: 'NUMANODE'; +NUMBER: 'NUMBER'; +NUMERIC_ROUNDABORT: 'NUMERIC_ROUNDABORT'; +OBJECT: 'OBJECT'; +OFFLINE: 'OFFLINE'; +OFFSET: 'OFFSET'; +OLD_ACCOUNT: 'OLD_ACCOUNT'; +ONLINE: 'ONLINE'; +ONLY: 'ONLY'; +OPEN_EXISTING: 'OPEN_EXISTING'; +OPTIMISTIC: 'OPTIMISTIC'; +OPTIMIZE: 'OPTIMIZE'; +OUT: 'OUT'; +OUTPUT: 'OUTPUT'; +OVERRIDE: 'OVERRIDE'; +OWNER: 'OWNER'; +PAGE_VERIFY: 'PAGE_VERIFY'; +PARAMETERIZATION: 'PARAMETERIZATION'; +PARTITION: 'PARTITION'; +PARTITIONS: 'PARTITIONS'; +PARTNER: 'PARTNER'; +PATH: 'PATH'; +POISON_MESSAGE_HANDLING: 'POISON_MESSAGE_HANDLING'; +POOL: 'POOL'; +PORT: 'PORT'; +PRECEDING: 'PRECEDING'; +PRIMARY_ROLE: 'PRIMARY_ROLE'; +PRIOR: 'PRIOR'; +PRIORITY: 'PRIORITY'; +PRIORITY_LEVEL: 'PRIORITY_LEVEL'; +PRIVATE: 'PRIVATE'; +PRIVATE_KEY: 'PRIVATE_KEY'; +PRIVILEGES: 'PRIVILEGES'; +PROCEDURE_NAME: 'PROCEDURE_NAME'; +PROPERTY: 'PROPERTY'; +PROVIDER: 'PROVIDER'; +PROVIDER_KEY_NAME: 'PROVIDER_KEY_NAME'; +QUERY: 'QUERY'; +QUEUE: 'QUEUE'; +QUEUE_DELAY: 'QUEUE_DELAY'; +QUOTED_IDENTIFIER: 'QUOTED_IDENTIFIER'; +RANGE: 'RANGE'; +RANK: 'RANK'; +RC2: 'RC2'; +RC4: 'RC4'; +RC4_128: 'RC4_128'; +READ_COMMITTED_SNAPSHOT: 'READ_COMMITTED_SNAPSHOT'; +READ_ONLY: 'READ_ONLY'; +READ_ONLY_ROUTING_LIST: 'READ_ONLY_ROUTING_LIST'; +READ_WRITE: 'READ_WRITE'; +READONLY: 'READONLY'; +REBUILD: 'REBUILD'; +RECEIVE: 'RECEIVE'; +RECOMPILE: 'RECOMPILE'; +RECOVERY: 'RECOVERY'; +RECURSIVE_TRIGGERS: 'RECURSIVE_TRIGGERS'; +RELATIVE: 'RELATIVE'; +REMOTE: 'REMOTE'; +REMOTE_SERVICE_NAME: 'REMOTE_SERVICE_NAME'; +REMOVE: 'REMOVE'; +REORGANIZE: 'REORGANIZE'; +REPEATABLE: 'REPEATABLE'; +REPLICA: 'REPLICA'; +REQUEST_MAX_CPU_TIME_SEC: 'REQUEST_MAX_CPU_TIME_SEC'; +REQUEST_MAX_MEMORY_GRANT_PERCENT: 'REQUEST_MAX_MEMORY_GRANT_PERCENT'; +REQUEST_MEMORY_GRANT_TIMEOUT_SEC: 'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'; +REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: 'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'; +RESERVE_DISK_SPACE: 'RESERVE_DISK_SPACE'; +RESOURCE: 'RESOURCE'; +RESOURCE_MANAGER_LOCATION: 'RESOURCE_MANAGER_LOCATION'; +RESTRICTED_USER: 'RESTRICTED_USER'; +RETENTION: 'RETENTION'; +ROBUST: 'ROBUST'; +ROOT: 'ROOT'; +ROUTE: 'ROUTE'; +ROW: 'ROW'; +ROW_NUMBER: 'ROW_NUMBER'; +ROWGUID: 'ROWGUID'; +ROWS: 'ROWS'; +SAMPLE: 'SAMPLE'; +SCHEMABINDING: 'SCHEMABINDING'; +SCOPED: 'SCOPED'; +SCROLL: 'SCROLL'; +SCROLL_LOCKS: 'SCROLL_LOCKS'; +SEARCH: 'SEARCH'; +SECONDARY: 'SECONDARY'; +SECONDARY_ONLY: 'SECONDARY_ONLY'; +SECONDARY_ROLE: 'SECONDARY_ROLE'; +SECONDS: 'SECONDS'; +SECRET: 'SECRET'; +SECURITY: 'SECURITY'; +SECURITY_LOG: 'SECURITY_LOG'; +SEEDING_MODE: 'SEEDING_MODE'; +SELF: 'SELF'; +SEMI_SENSITIVE: 'SEMI_SENSITIVE'; +SEND: 'SEND'; +SENT: 'SENT'; +SEQUENCE: 'SEQUENCE'; +SERIALIZABLE: 'SERIALIZABLE'; +SESSION_TIMEOUT: 'SESSION_TIMEOUT'; +SETERROR: 'SETERROR'; +SHARE: 'SHARE'; +SHOWPLAN: 'SHOWPLAN'; +SIGNATURE: 'SIGNATURE'; +SIMPLE: 'SIMPLE'; +SINGLE_USER: 'SINGLE_USER'; +SIZE: 'SIZE'; +SMALLINT: 'SMALLINT'; +SNAPSHOT: 'SNAPSHOT'; +SPATIAL_WINDOW_MAX_CELLS: 'SPATIAL_WINDOW_MAX_CELLS'; +STANDBY: 'STANDBY'; +START_DATE: 'START_DATE'; +STATIC: 'STATIC'; +STATS_STREAM: 'STATS_STREAM'; +STATUS: 'STATUS'; +STATUSONLY: 'STATUSONLY'; +STDEV: 'STDEV'; +STDEVP: 'STDEVP'; +STOPLIST: 'STOPLIST'; +STRING_AGG: 'STRING_AGG'; +STUFF: 'STUFF'; +SUBJECT: 'SUBJECT'; +SUBSCRIPTION: 'SUBSCRIPTION'; +SUM: 'SUM'; +SUSPEND: 'SUSPEND'; +SYMMETRIC: 'SYMMETRIC'; +SYNCHRONOUS_COMMIT: 'SYNCHRONOUS_COMMIT'; +SYNONYM: 'SYNONYM'; +SYSTEM: 'SYSTEM'; +TAKE: 'TAKE'; +TARGET_RECOVERY_TIME: 'TARGET_RECOVERY_TIME'; +TB: 'TB'; +TEXTIMAGE_ON: 'TEXTIMAGE_ON'; +THROW: 'THROW'; +TIES: 'TIES'; +TIME: 'TIME'; +TIMEOUT: 'TIMEOUT'; +TIMER: 'TIMER'; +TINYINT: 'TINYINT'; +TORN_PAGE_DETECTION: 'TORN_PAGE_DETECTION'; +TRANSFORM_NOISE_WORDS: 'TRANSFORM_NOISE_WORDS'; +TRIPLE_DES: 'TRIPLE_DES'; +TRIPLE_DES_3KEY: 'TRIPLE_DES_3KEY'; +TRUSTWORTHY: 'TRUSTWORTHY'; +TRY: 'TRY'; +TSQL: 'TSQL'; +TWO_DIGIT_YEAR_CUTOFF: 'TWO_DIGIT_YEAR_CUTOFF'; +TYPE: 'TYPE'; +TYPE_WARNING: 'TYPE_WARNING'; +UNBOUNDED: 'UNBOUNDED'; +UNCOMMITTED: 'UNCOMMITTED'; +UNKNOWN: 'UNKNOWN'; +UNLIMITED: 'UNLIMITED'; +UOW: 'UOW'; +USING: 'USING'; +VALID_XML: 'VALID_XML'; +VALIDATION: 'VALIDATION'; +VALUE: 'VALUE'; +VAR: 'VAR'; +VARP: 'VARP'; +VIEW_METADATA: 'VIEW_METADATA'; +VIEWS: 'VIEWS'; +WAIT: 'WAIT'; +WELL_FORMED_XML: 'WELL_FORMED_XML'; +WITHOUT_ARRAY_WRAPPER: 'WITHOUT_ARRAY_WRAPPER'; +WORK: 'WORK'; +WORKLOAD: 'WORKLOAD'; +XML: 'XML'; +XMLDATA: 'XMLDATA'; +XMLNAMESPACES: 'XMLNAMESPACES'; +XMLSCHEMA: 'XMLSCHEMA'; +XSINIL: 'XSINIL'; + +DOLLAR_ACTION: '$ACTION'; + +SPACE: [ \t\r\n]+ -> skip; +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/slash-star-comment-transact-sql +COMMENT: '/*' (COMMENT | .)*? '*/' -> channel(HIDDEN); +LINE_COMMENT: '--' ~[\r\n]* -> channel(HIDDEN); + +// TODO: ID can be not only Latin. +DOUBLE_QUOTE_ID: '"' ~'"'+ '"'; +SINGLE_QUOTE: '\''; +SQUARE_BRACKET_ID: '[' ~']'+ ']'; +LOCAL_ID: '@' ([A-Z_$@#0-9] | FullWidthLetter)+; +DECIMAL: DEC_DIGIT+; +ID: ( [A-Z_#] | FullWidthLetter) ( [A-Z_#$@0-9] | FullWidthLetter )*; +QUOTED_URL: '\''([A-Z][A-Z]+[:]) '//'(([A-Z]+[.]|[A-Z]+)|IPV4_ADDR) [:] DECIMAL '\''; +QUOTED_HOST_AND_PORT:'\''(([A-Z]+[.]|[A-Z]+)|IPV4_ADDR) ([:] DECIMAL) '\''; +STRING: 'N'? '\'' (~'\'' | '\'\'')* '\''; +BINARY: '0' 'X' HEX_DIGIT*; +FLOAT: DEC_DOT_DEC; +REAL: (DECIMAL | DEC_DOT_DEC) ('E' [+-]? DEC_DIGIT+); + +EQUAL: '='; + +GREATER: '>'; +LESS: '<'; +EXCLAMATION: '!'; + +PLUS_ASSIGN: '+='; +MINUS_ASSIGN: '-='; +MULT_ASSIGN: '*='; +DIV_ASSIGN: '/='; +MOD_ASSIGN: '%='; +AND_ASSIGN: '&='; +XOR_ASSIGN: '^='; +OR_ASSIGN: '|='; + +DOUBLE_BAR: '||'; +DOT: '.'; +UNDERLINE: '_'; +AT: '@'; +SHARP: '#'; +DOLLAR: '$'; +LR_BRACKET: '('; +RR_BRACKET: ')'; +COMMA: ','; +SEMI: ';'; +COLON: ':'; +STAR: '*'; +DIVIDE: '/'; +MODULE: '%'; +PLUS: '+'; +MINUS: '-'; +BIT_NOT: '~'; +BIT_OR: '|'; +BIT_AND: '&'; +BIT_XOR: '^'; + +fragment LETTER: [A-Z_]; +fragment IPV6_OCTECT: [0-9A-F][0-9A-F][0-9A-F][0-9A-F]; +IPV4_OCTECT: [0-9]?[0-9]?[0-9]; +fragment DEC_DOT_DEC: (DEC_DIGIT+ '.' DEC_DIGIT+ | DEC_DIGIT+ '.' | '.' DEC_DIGIT+); +fragment HEX_DIGIT: [0-9A-F]; +fragment DEC_DIGIT: [0-9]; + +fragment FullWidthLetter + : '\u00c0'..'\u00d6' + | '\u00d8'..'\u00f6' + | '\u00f8'..'\u00ff' + | '\u0100'..'\u1fff' + | '\u2c00'..'\u2fff' + | '\u3040'..'\u318f' + | '\u3300'..'\u337f' + | '\u3400'..'\u3fff' + | '\u4e00'..'\u9fff' + | '\ua000'..'\ud7ff' + | '\uf900'..'\ufaff' + | '\uff00'..'\ufff0' + // | '\u10000'..'\u1F9FF' //not support four bytes chars + // | '\u20000'..'\u2FA1F' + ; diff --git a/src/grammar/tsql/TSqlParser.g4 b/src/grammar/tsql/TSqlParser.g4 new file mode 100644 index 0000000..e15fab7 --- /dev/null +++ b/src/grammar/tsql/TSqlParser.g4 @@ -0,0 +1,4072 @@ +/* +T-SQL (Transact-SQL, MSSQL) grammar. +The MIT License (MIT). +Copyright (c) 2017, Mark Adams (madams51703@gmail.com) +Copyright (c) 2015-2017, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. +Copyright (c) 2016, Scott Ure (scott@redstormsoftware.com). +Copyright (c) 2016, Rui Zhang (ruizhang.ccs@gmail.com). +Copyright (c) 2016, Marcus Henriksson (kuseman80@gmail.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. +*/ + +parser grammar TSqlParser; + +options { tokenVocab=TSqlLexer; } + +tsql_file + : batch* EOF + ; + +batch + : execute_body go_statement* + | execute_body? sql_clauses go_statement* + ; + +sql_clauses + : (sql_clause SEMI?)+ + ; + +sql_clause + : dml_clause + + | ddl_clause + + | cfl_statement + + | dbcc_clause + + | empty_statement + + | another_statement + + | backup_statement + ; + +// Data Manipulation Language: https://msdn.microsoft.com/en-us/library/ff848766(v=sql.120).aspx +dml_clause + : merge_statement + | delete_statement + | insert_statement + | select_statement + | update_statement + ; + +// Data Definition Language: https://msdn.microsoft.com/en-us/library/ff848799.aspx) +ddl_clause + : alter_application_role + | alter_assembly + | alter_asymmetric_key + | alter_authorization + | alter_authorization_for_azure_dw + | alter_authorization_for_parallel_dw + | alter_authorization_for_sql_database + | alter_availability_group + | alter_certificate + | alter_column_encryption_key + | alter_credential + | alter_cryptographic_provider + | alter_database + | alter_db_role + | alter_endpoint + | create_or_alter_event_session + | alter_external_data_source + | alter_external_library + | alter_external_resource_pool + | alter_fulltext_catalog + | alter_fulltext_stoplist + | alter_login_azure_sql + | alter_login_azure_sql_dw_and_pdw + | alter_login_sql_server + | alter_master_key_azure_sql + | alter_master_key_sql_server + | alter_message_type + | alter_partition_function + | alter_partition_scheme + | alter_remote_service_binding + | alter_resource_governor + | alter_schema_azure_sql_dw_and_pdw + | alter_schema_sql + | alter_sequence + | alter_server_audit + | alter_server_audit_specification + | alter_server_configuration + | alter_server_role + | alter_server_role_pdw + | alter_service + | alter_service_master_key + | alter_symmetric_key + | alter_table + | alter_user + | alter_user_azure_sql + | alter_workload_group + | create_application_role + | create_assembly + | create_asymmetric_key + | create_column_encryption_key + | create_column_master_key + | create_credential + | create_cryptographic_provider + | create_database + | create_db_role + | create_event_notification + | create_external_library + | create_external_resource_pool + | create_fulltext_catalog + | create_fulltext_stoplist + | create_index + | create_login_azure_sql + | create_login_pdw + | create_login_sql_server + | create_master_key_azure_sql + | create_master_key_sql_server + | create_or_alter_broker_priority + | create_or_alter_function + | create_or_alter_procedure + | create_or_alter_trigger + | create_remote_service_binding + | create_resource_pool + | create_route + | create_rule + | create_schema + | create_schema_azure_sql_dw_and_pdw + | create_search_property_list + | create_security_policy + | create_sequence + | create_server_audit + | create_server_audit_specification + | create_server_role + | create_service + | create_statistics + | create_symmetric_key + | create_synonym + | create_table + | create_type + | create_user + | create_user_azure_sql_dw + | create_view + | create_workload_group + | create_xml_schema_collection + | drop_aggregate + | drop_application_role + | drop_assembly + | drop_asymmetric_key + | drop_availability_group + | drop_broker_priority + | drop_certificate + | drop_column_encryption_key + | drop_column_master_key + | drop_contract + | drop_credential + | drop_cryptograhic_provider + | drop_database + | drop_database_audit_specification + | drop_database_scoped_credential + | drop_db_role + | drop_default + | drop_endpoint + | drop_event_notifications + | drop_event_session + | drop_external_data_source + | drop_external_file_format + | drop_external_library + | drop_external_resource_pool + | drop_external_table + | drop_fulltext_catalog + | drop_fulltext_index + | drop_fulltext_stoplist + | drop_function + | drop_index + | drop_login + | drop_master_key + | drop_message_type + | drop_partition_function + | drop_partition_scheme + | drop_procedure + | drop_queue + | drop_remote_service_binding + | drop_resource_pool + | drop_route + | drop_rule + | drop_schema + | drop_search_property_list + | drop_security_policy + | drop_sequence + | drop_server_audit + | drop_server_audit_specification + | drop_server_role + | drop_service + | drop_signature + | drop_statistics + | drop_statistics_name_azure_dw_and_pdw + | drop_symmetric_key + | drop_synonym + | drop_table + | drop_trigger + | drop_type + | drop_user + | drop_view + | drop_workload_group + | drop_xml_schema_collection + | disable_trigger + | enable_trigger + | lock_table + | truncate_table + | update_statistics + ; +backup_statement + : backup_database + | backup_log + | backup_certificate + | backup_master_key + | backup_service_master_key + ; + +// Control-of-Flow Language: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/control-of-flow +cfl_statement + : block_statement + | break_statement + | continue_statement + | goto_statement + | if_statement + | return_statement + | throw_statement + | try_catch_statement + | waitfor_statement + | while_statement + | print_statement + | raiseerror_statement + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/begin-end-transact-sql +block_statement + : BEGIN ';'? sql_clauses? END ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/break-transact-sql +break_statement + : BREAK ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/continue-transact-sql +continue_statement + : CONTINUE ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/goto-transact-sql +goto_statement + : GOTO id ';'? + | id ':' ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/return-transact-sql +return_statement + : RETURN expression? ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/if-else-transact-sql +if_statement + : IF search_condition sql_clause (ELSE sql_clause)? ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/throw-transact-sql +throw_statement + : THROW (throw_error_number ',' throw_message ',' throw_state)? ';'? + ; + +throw_error_number + : DECIMAL | LOCAL_ID + ; + +throw_message + : STRING | LOCAL_ID + ; + +throw_state + : DECIMAL | LOCAL_ID + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/try-catch-transact-sql +try_catch_statement + : BEGIN TRY ';'? try_clauses=sql_clauses? END TRY ';'? BEGIN CATCH ';'? catch_clauses=sql_clauses? END CATCH ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/waitfor-transact-sql +waitfor_statement + : WAITFOR receive_statement? ','? ((DELAY | TIME | TIMEOUT) time)? expression? ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/while-transact-sql +while_statement + : WHILE search_condition (sql_clause | BREAK ';'? | CONTINUE ';'?) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/print-transact-sql +print_statement + : PRINT (expression | DOUBLE_QUOTE_ID) (',' LOCAL_ID)* ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/raiserror-transact-sql +raiseerror_statement + : RAISERROR '(' msg=(DECIMAL | STRING | LOCAL_ID) ',' severity=constant_LOCAL_ID ',' + state=constant_LOCAL_ID (',' constant_LOCAL_ID)* ')' (WITH (LOG | SETERROR))? ';'? + | RAISERROR DECIMAL formatstring=(STRING | LOCAL_ID | DOUBLE_QUOTE_ID) (',' argument=(DECIMAL | STRING | LOCAL_ID))* + ; + +empty_statement + : ';' + ; + +another_statement + : declare_statement + | cursor_statement + | conversation_statement + | create_contract + | create_queue + | alter_queue + | execute_statement + | kill_statement + | message_statement + | security_statement + | set_statement + | transaction_statement + | use_statement + | setuser_statement + | reconfigure_statement + | shutdown_statement + ; +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-application-role-transact-sql + +alter_application_role + : ALTER APPLICATION ROLE appliction_role=id WITH (COMMA? NAME EQUAL new_application_role_name=id)? (COMMA? PASSWORD EQUAL application_role_password=STRING)? (COMMA? DEFAULT_SCHEMA EQUAL app_role_default_schema=id)? + ; + +create_application_role + : CREATE APPLICATION ROLE appliction_role=id WITH (COMMA? PASSWORD EQUAL application_role_password=STRING)? (COMMA? DEFAULT_SCHEMA EQUAL app_role_default_schema=id)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-aggregate-transact-sql + +drop_aggregate + : DROP AGGREGATE ( IF EXISTS )? ( schema_name=id DOT )? aggregate_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-application-role-transact-sql +drop_application_role + : DROP APPLICATION ROLE rolename=id + ; + +alter_assembly + : alter_assembly_start assembly_name=id alter_assembly_clause + ; + +alter_assembly_start + : ALTER ASSEMBLY + ; + +alter_assembly_clause + : alter_assembly_from_clause? alter_assembly_with_clause? alter_assembly_drop_clause? alter_assembly_add_clause? + ; + +alter_assembly_from_clause + : alter_assembly_from_clause_start (client_assembly_specifier | alter_assembly_file_bits ) + ; + +alter_assembly_from_clause_start + : FROM + ; + +alter_assembly_drop_clause + : alter_assembly_drop alter_assembly_drop_multiple_files + ; + +alter_assembly_drop_multiple_files + : ALL + | multiple_local_files + ; + +alter_assembly_drop + : DROP + ; + +alter_assembly_add_clause + : alter_asssembly_add_clause_start alter_assembly_client_file_clause + ; + +alter_asssembly_add_clause_start + : ADD FILE FROM + ; + +// need to implement +alter_assembly_client_file_clause + : alter_assembly_file_name (alter_assembly_as id)? + ; + +alter_assembly_file_name + : STRING + ; + +//need to implement +alter_assembly_file_bits + : alter_assembly_as id + ; + +alter_assembly_as + : AS + ; + +alter_assembly_with_clause + : alter_assembly_with assembly_option + ; + +alter_assembly_with + : WITH + ; + +client_assembly_specifier + : network_file_share + | local_file + | STRING + ; + +assembly_option + : PERMISSION_SET EQUAL (SAFE|EXTERNAL_ACCESS|UNSAFE) + | VISIBILITY EQUAL (ON | OFF) + | UNCHECKED DATA + | assembly_option COMMA + ; + +network_file_share + : network_file_start network_computer file_path + ; + +network_computer + : computer_name=id + ; + +network_file_start + : DOUBLE_BACK_SLASH + ; + +file_path + : file_directory_path_separator file_path + | id + ; + +file_directory_path_separator + : '\\' + ; + +local_file + : local_drive file_path + ; + +local_drive + : + DISK_DRIVE + ; +multiple_local_files + : + multiple_local_file_start local_file SINGLE_QUOTE COMMA + | local_file + ; + +multiple_local_file_start + : SINGLE_QUOTE + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-assembly-transact-sql +create_assembly + : CREATE ASSEMBLY assembly_name=id (AUTHORIZATION owner_name=id)? + FROM (COMMA? (STRING|BINARY) )+ + (WITH PERMISSION_SET EQUAL (SAFE|EXTERNAL_ACCESS|UNSAFE) )? + + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-assembly-transact-sql +drop_assembly + : DROP ASSEMBLY ( IF EXISTS )? (COMMA? assembly_name=id)+ + ( WITH NO DEPENDENTS )? + ; +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-asymmetric-key-transact-sql + +alter_asymmetric_key + : + alter_asymmetric_key_start Asym_Key_Name=id (asymmetric_key_option | REMOVE PRIVATE KEY ) + ; + +alter_asymmetric_key_start + : ALTER ASYMMETRIC KEY + ; + +asymmetric_key_option + : asymmetric_key_option_start asymmetric_key_password_change_option ( COMMA asymmetric_key_password_change_option)? RR_BRACKET + ; + +asymmetric_key_option_start + : WITH PRIVATE KEY LR_BRACKET + ; + +asymmetric_key_password_change_option + : DECRYPTION BY PASSWORD EQUAL STRING + | ENCRYPTION BY PASSWORD EQUAL STRING + ; + + +//https://docs.microsoft.com/en-us/sql/t-sql/statements/create-asymmetric-key-transact-sql + +create_asymmetric_key + : CREATE ASYMMETRIC KEY Asym_Key_Nam=id + (AUTHORIZATION database_principal_name=id)? + ( FROM (FILE EQUAL STRING |EXECUTABLE_FILE EQUAL STRING|ASSEMBLY Assembly_Name=id | PROVIDER Provider_Name=id) )? + (WITH (ALGORITHM EQUAL ( RSA_4096 | RSA_3072 | RSA_2048 | RSA_1024 | RSA_512) |PROVIDER_KEY_NAME EQUAL provider_key_name=STRING | CREATION_DISPOSITION EQUAL (CREATE_NEW|OPEN_EXISTING) ) )? + (ENCRYPTION BY PASSWORD EQUAL asymmetric_key_password=STRING )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-asymmetric-key-transact-sql +drop_asymmetric_key + : DROP ASYMMETRIC KEY key_name=id ( REMOVE PROVIDER KEY )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-authorization-transact-sql + +alter_authorization + : alter_authorization_start (class_type colon_colon)? entity=entity_name entity_to authorization_grantee + ; + +authorization_grantee + : principal_name=id + | SCHEMA OWNER + ; + +entity_to + : TO + ; + +colon_colon + : COLON COLON + ; + +alter_authorization_start + : ALTER AUTHORIZATION ON + ; + +alter_authorization_for_sql_database + : alter_authorization_start (class_type_for_sql_database colon_colon)? entity=entity_name entity_to authorization_grantee + ; + +alter_authorization_for_azure_dw + : alter_authorization_start (class_type_for_azure_dw colon_colon)? entity=entity_name_for_azure_dw entity_to authorization_grantee + ; + +alter_authorization_for_parallel_dw + : alter_authorization_start (class_type_for_parallel_dw colon_colon)? entity=entity_name_for_parallel_dw entity_to authorization_grantee + ; + + +class_type + : OBJECT + | ASSEMBLY + | ASYMMETRIC KEY + | AVAILABILITY GROUP + | CERTIFICATE + | CONTRACT + | TYPE + | DATABASE + | ENDPOINT + | FULLTEXT CATALOG + | FULLTEXT STOPLIST + | MESSAGE TYPE + | REMOTE SERVICE BINDING + | ROLE + | ROUTE + | SCHEMA + | SEARCH PROPERTY LIST + | SERVER ROLE + | SERVICE + | SYMMETRIC KEY + | XML SCHEMA COLLECTION + ; + +class_type_for_sql_database + : OBJECT + | ASSEMBLY + | ASYMMETRIC KEY + | CERTIFICATE + | TYPE + | DATABASE + | FULLTEXT CATALOG + | FULLTEXT STOPLIST + | ROLE + | SCHEMA + | SEARCH PROPERTY LIST + | SYMMETRIC KEY + | XML SCHEMA COLLECTION + ; + +class_type_for_azure_dw + : SCHEMA + | OBJECT + ; + +class_type_for_parallel_dw + : DATABASE + | SCHEMA + | OBJECT + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-availability-group-transact-sql +drop_availability_group + : DROP AVAILABILITY GROUP group_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-availability-group-transact-sql +alter_availability_group + : alter_availability_group_start alter_availability_group_options + ; + +alter_availability_group_start + : ALTER AVAILABILITY GROUP group_name=id + ; + +alter_availability_group_options + : SET LR_BRACKET ( ( AUTOMATED_BACKUP_PREFERENCE EQUAL ( PRIMARY | SECONDARY_ONLY| SECONDARY | NONE ) | FAILURE_CONDITION_LEVEL EQUAL DECIMAL | HEALTH_CHECK_TIMEOUT EQUAL milliseconds=DECIMAL | DB_FAILOVER EQUAL ( ON | OFF ) | REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT EQUAL DECIMAL ) RR_BRACKET ) + | ADD DATABASE database_name=id + | REMOVE DATABASE database_name=id + | ADD REPLICA ON server_instance=STRING (WITH LR_BRACKET ( (ENDPOINT_URL EQUAL STRING)? (COMMA? AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT| ASYNCHRONOUS_COMMIT))? (COMMA? FAILOVER_MODE EQUAL (AUTOMATIC|MANUAL) )? (COMMA? SEEDING_MODE EQUAL (AUTOMATIC|MANUAL) )? (COMMA? BACKUP_PRIORITY EQUAL DECIMAL)? ( COMMA? PRIMARY_ROLE LR_BRACKET ALLOW_CONNECTIONS EQUAL ( READ_WRITE | ALL ) RR_BRACKET)? ( COMMA? SECONDARY_ROLE LR_BRACKET ALLOW_CONNECTIONS EQUAL ( READ_ONLY ) RR_BRACKET )? ) +) RR_BRACKET + |SECONDARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( ( STRING) ) RR_BRACKET ) ) + |PRIMARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( (COMMA? STRING)*|NONE ) RR_BRACKET ) + | SESSION_TIMEOUT EQUAL session_timeout=DECIMAL +) + | MODIFY REPLICA ON server_instance=STRING (WITH LR_BRACKET (ENDPOINT_URL EQUAL STRING| AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT| ASYNCHRONOUS_COMMIT) | FAILOVER_MODE EQUAL (AUTOMATIC|MANUAL) | SEEDING_MODE EQUAL (AUTOMATIC|MANUAL) | BACKUP_PRIORITY EQUAL DECIMAL ) + |SECONDARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( ( STRING) ) RR_BRACKET ) ) + |PRIMARY_ROLE LR_BRACKET (ALLOW_CONNECTIONS EQUAL (NO|READ_ONLY|ALL) | READ_ONLY_ROUTING_LIST EQUAL ( LR_BRACKET ( (COMMA? STRING)*|NONE ) RR_BRACKET ) + | SESSION_TIMEOUT EQUAL session_timeout=DECIMAL +) ) RR_BRACKET + | REMOVE REPLICA ON STRING + | JOIN + | JOIN AVAILABILITY GROUP ON (COMMA? ag_name=STRING WITH LR_BRACKET ( LISTENER_URL EQUAL STRING COMMA AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT|ASYNCHRONOUS_COMMIT) COMMA FAILOVER_MODE EQUAL MANUAL COMMA SEEDING_MODE EQUAL (AUTOMATIC|MANUAL) RR_BRACKET ) )+ + | MODIFY AVAILABILITY GROUP ON (COMMA? ag_name_modified=STRING WITH LR_BRACKET (LISTENER_URL EQUAL STRING (COMMA? AVAILABILITY_MODE EQUAL (SYNCHRONOUS_COMMIT|ASYNCHRONOUS_COMMIT) )? (COMMA? FAILOVER_MODE EQUAL MANUAL )? (COMMA? SEEDING_MODE EQUAL (AUTOMATIC|MANUAL))? RR_BRACKET ) )+ + |GRANT CREATE ANY DATABASE + | DENY CREATE ANY DATABASE + | FAILOVER + | FORCE_FAILOVER_ALLOW_DATA_LOSS + | ADD LISTENER listener_name=STRING LR_BRACKET ( WITH DHCP (ON LR_BRACKET (IPV4_ADDR IPV4_ADDR ) RR_BRACKET ) | WITH IP LR_BRACKET ( (COMMA? LR_BRACKET ( IPV4_ADDR COMMA IPV4_ADDR | IPV6_ADDR ) RR_BRACKET)+ RR_BRACKET (COMMA PORT EQUAL DECIMAL)? ) ) RR_BRACKET + | MODIFY LISTENER (ADD IP LR_BRACKET (IPV4_ADDR IPV4_ADDR | IPV6_ADDR) RR_BRACKET | PORT EQUAL DECIMAL ) + |RESTART LISTENER STRING + |REMOVE LISTENER STRING + |OFFLINE + | WITH LR_BRACKET DTC_SUPPORT EQUAL PER_DB RR_BRACKET + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-broker-priority-transact-sql +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-broker-priority-transact-sql +create_or_alter_broker_priority + : (CREATE | ALTER) BROKER PRIORITY ConversationPriorityName=id FOR CONVERSATION + SET LR_BRACKET + ( CONTRACT_NAME EQUAL ( ( id) | ANY ) COMMA? )? + ( LOCAL_SERVICE_NAME EQUAL (DOUBLE_FORWARD_SLASH? id | ANY ) COMMA? )? + ( REMOTE_SERVICE_NAME EQUAL (RemoteServiceName=STRING | ANY ) COMMA? )? + ( PRIORITY_LEVEL EQUAL ( PriorityValue=DECIMAL | DEFAULT ) ) ? + RR_BRACKET + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-broker-priority-transact-sql +drop_broker_priority + : DROP BROKER PRIORITY ConversationPriorityName=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-certificate-transact-sql +alter_certificate + : ALTER CERTIFICATE certificate_name=id (REMOVE PRIVATE_KEY | WITH PRIVATE KEY LR_BRACKET ( FILE EQUAL STRING COMMA? | DECRYPTION BY PASSWORD EQUAL STRING COMMA?| ENCRYPTION BY PASSWORD EQUAL STRING COMMA?)+ RR_BRACKET | WITH ACTIVE FOR BEGIN_DIALOG EQUAL ( ON | OFF ) ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-column-encryption-key-transact-sql +alter_column_encryption_key + : ALTER COLUMN ENCRYPTION KEY column_encryption_key=id (ADD | DROP) VALUE LR_BRACKET COLUMN_MASTER_KEY EQUAL column_master_key_name=id ( COMMA ALGORITHM EQUAL algorithm_name=STRING COMMA ENCRYPTED_VALUE EQUAL BINARY)? RR_BRACKET + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-column-encryption-key-transact-sql +create_column_encryption_key + : CREATE COLUMN ENCRYPTION KEY column_encryption_key=id + WITH VALUES + (LR_BRACKET COMMA? COLUMN_MASTER_KEY EQUAL column_master_key_name=id COMMA + ALGORITHM EQUAL algorithm_name=STRING COMMA + ENCRYPTED_VALUE EQUAL encrypted_value=BINARY RR_BRACKET COMMA?)+ + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-certificate-transact-sql +drop_certificate + : DROP CERTIFICATE certificate_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-column-encryption-key-transact-sql +drop_column_encryption_key + : DROP COLUMN ENCRYPTION KEY key_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-column-master-key-transact-sql +drop_column_master_key + : DROP COLUMN MASTER KEY key_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-contract-transact-sql +drop_contract + : DROP CONTRACT dropped_contract_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-credential-transact-sql +drop_credential + : DROP CREDENTIAL credential_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-cryptographic-provider-transact-sql +drop_cryptograhic_provider + : DROP CRYPTOGRAPHIC PROVIDER provider_name=id + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-database-transact-sql +drop_database + : DROP DATABASE ( IF EXISTS )? (COMMA? database_name_or_database_snapshot_name=id)+ + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-database-audit-specification-transact-sql +drop_database_audit_specification + : DROP DATABASE AUDIT SPECIFICATION audit_specification_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-database-scoped-credential-transact-sql +drop_database_scoped_credential + : DROP DATABASE SCOPED CREDENTIAL credential_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-default-transact-sql +drop_default + : DROP DEFAULT ( IF EXISTS )? (COMMA? (schema_name=id DOT)? default_name=id) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-endpoint-transact-sql +drop_endpoint + : DROP ENDPOINT endPointName=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-external-data-source-transact-sql +drop_external_data_source + : DROP EXTERNAL DATA SOURCE external_data_source_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-external-file-format-transact-sql +drop_external_file_format + : DROP EXTERNAL FILE FORMAT external_file_format_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-external-library-transact-sql +drop_external_library + : DROP EXTERNAL LIBRARY library_name=id +( AUTHORIZATION owner_name=id )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-external-resource-pool-transact-sql +drop_external_resource_pool + : DROP EXTERNAL RESOURCE POOL pool_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-external-table-transact-sql +drop_external_table + : DROP EXTERNAL TABLE (database_name=id DOT)? (schema_name=id DOT)? table=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-event-notification-transact-sql +drop_event_notifications + : DROP EVENT NOTIFICATION (COMMA? notification_name=id)+ + ON (SERVER|DATABASE|QUEUE queue_name=id) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-event-session-transact-sql +drop_event_session + : DROP EVENT SESSION event_session_name=id + ON SERVER + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-fulltext-catalog-transact-sql +drop_fulltext_catalog + : DROP FULLTEXT CATALOG catalog_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-fulltext-index-transact-sql +drop_fulltext_index + : DROP FULLTEXT INDEX ON (schema=id DOT)? table=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-fulltext-stoplist-transact-sql +drop_fulltext_stoplist + : DROP FULLTEXT STOPLIST stoplist_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-login-transact-sql +drop_login + : DROP LOGIN login_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-master-key-transact-sql +drop_master_key + : DROP MASTER KEY + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-message-type-transact-sql +drop_message_type + : DROP MESSAGE TYPE message_type_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-partition-function-transact-sql +drop_partition_function + : DROP PARTITION FUNCTION partition_function_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-partition-scheme-transact-sql +drop_partition_scheme + : DROP PARTITION SCHEME partition_scheme_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-queue-transact-sql +drop_queue + : DROP QUEUE (database_name=id DOT)? (schema_name=id DOT)? queue_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-remote-service-binding-transact-sql +drop_remote_service_binding + : DROP REMOTE SERVICE BINDING binding_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-resource-pool-transact-sql +drop_resource_pool + : DROP RESOURCE POOL pool_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-role-transact-sql +drop_db_role + : DROP ROLE ( IF EXISTS )? role_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-route-transact-sql +drop_route + : DROP ROUTE route_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-rule-transact-sql +drop_rule + : DROP RULE ( IF EXISTS )? (COMMA? (schema_name=id DOT)? rule_name=id)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-schema-transact-sql +drop_schema + : DROP SCHEMA ( IF EXISTS )? schema_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-search-property-list-transact-sql +drop_search_property_list + : DROP SEARCH PROPERTY LIST property_list_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-security-policy-transact-sql +drop_security_policy + : DROP SECURITY POLICY ( IF EXISTS )? (schema_name=id DOT )? security_policy_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-sequence-transact-sql +drop_sequence + : DROP SEQUENCE ( IF EXISTS )? ( COMMA? (database_name=id DOT)? (schema_name=id DOT)? sequence_name=id )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-server-audit-transact-sql +drop_server_audit + : DROP SERVER AUDIT audit_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-server-audit-specification-transact-sql +drop_server_audit_specification + : DROP SERVER AUDIT SPECIFICATION audit_specification_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-server-role-transact-sql +drop_server_role + : DROP SERVER ROLE role_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-service-transact-sql +drop_service + : DROP SERVICE dropped_service_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-signature-transact-sql +drop_signature + : DROP ( COUNTER )? SIGNATURE FROM (schema_name=id DOT)? module_name=id + BY (COMMA? CERTIFICATE cert_name=id + | COMMA? ASYMMETRIC KEY Asym_key_name=id + )+ + ; + + +drop_statistics_name_azure_dw_and_pdw + : DROP STATISTICS (schema_name=id DOT)? object_name=id DOT statistics_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-symmetric-key-transact-sql +drop_symmetric_key + : DROP SYMMETRIC KEY symmetric_key_name=id (REMOVE PROVIDER KEY)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-synonym-transact-sql +drop_synonym + : DROP SYNONYM ( IF EXISTS )? ( schema=id DOT )? synonym_name=id + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-user-transact-sql +drop_user + : DROP USER ( IF EXISTS )? user_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-workload-group-transact-sql +drop_workload_group + : DROP WORKLOAD GROUP group_name=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-xml-schema-collection-transact-sql +drop_xml_schema_collection + : DROP XML SCHEMA COLLECTION ( relational_schema=id DOT )? sql_identifier=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/disable-trigger-transact-sql +disable_trigger + : DISABLE TRIGGER ( ( COMMA? (schema_name=id DOT)? trigger_name=id )+ | ALL) ON ((schema_id=id DOT)? object_name=id|DATABASE|ALL SERVER) + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/enable-trigger-transact-sql +enable_trigger + : ENABLE TRIGGER ( ( COMMA? (schema_name=id DOT)? trigger_name=id )+ | ALL) ON ( (schema_id=id DOT)? object_name=id|DATABASE|ALL SERVER) + ; + +lock_table + : LOCK TABLE table_name IN (SHARE | EXCLUSIVE) MODE (WAIT seconds=DECIMAL | NOWAIT)? ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/truncate-table-transact-sql +truncate_table + : TRUNCATE TABLE table_name + ( WITH LR_BRACKET + PARTITIONS LR_BRACKET + (COMMA? (DECIMAL|DECIMAL TO DECIMAL) )+ + RR_BRACKET + + RR_BRACKET + )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-column-master-key-transact-sql +create_column_master_key + : CREATE COLUMN MASTER KEY key_name=id + WITH LR_BRACKET + KEY_STORE_PROVIDER_NAME EQUAL key_store_provider_name=STRING COMMA + KEY_PATH EQUAL key_path=STRING + RR_BRACKET + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-credential-transact-sql +alter_credential + : ALTER CREDENTIAL credential_name=id + WITH IDENTITY EQUAL identity_name=STRING + ( COMMA SECRET EQUAL secret=STRING )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-credential-transact-sql +create_credential + : CREATE CREDENTIAL credential_name=id + WITH IDENTITY EQUAL identity_name=STRING + ( COMMA SECRET EQUAL secret=STRING )? + ( FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name=id )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-cryptographic-provider-transact-sql +alter_cryptographic_provider + : ALTER CRYPTOGRAPHIC PROVIDER provider_name=id (FROM FILE EQUAL crypto_provider_ddl_file=STRING)? (ENABLE | DISABLE)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-cryptographic-provider-transact-sql +create_cryptographic_provider + : CREATE CRYPTOGRAPHIC PROVIDER provider_name=id + FROM FILE EQUAL path_of_DLL=STRING + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-event-notification-transact-sql +create_event_notification + : CREATE EVENT NOTIFICATION event_notification_name=id + ON (SERVER|DATABASE|QUEUE queue_name=id) + (WITH FAN_IN)? + FOR (COMMA? event_type_or_group=id)+ + TO SERVICE broker_service=STRING COMMA + broker_service_specifier_or_current_database=STRING + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-event-session-transact-sql +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-event-session-transact-sql +// todo: not implemented +create_or_alter_event_session + : (CREATE | ALTER) EVENT SESSION event_session_name=id ON SERVER + (COMMA? ADD EVENT ( (event_module_guid=id DOT)? event_package_name=id DOT event_name=id) + (LR_BRACKET + (SET ( COMMA? event_customizable_attributue=id EQUAL (DECIMAL|STRING) )* )? + ( ACTION LR_BRACKET (COMMA? (event_module_guid=id DOT)? event_package_name=id DOT action_name=id)+ RR_BRACKET)+ + (WHERE event_session_predicate_expression)? + RR_BRACKET )* + )* + (COMMA? DROP EVENT (event_module_guid=id DOT)? event_package_name=id DOT event_name=id )* + + ( (ADD TARGET (event_module_guid=id DOT)? event_package_name=id DOT target_name=id ) ( LR_BRACKET SET (COMMA? target_parameter_name=id EQUAL (LR_BRACKET? DECIMAL RR_BRACKET? |STRING) )+ RR_BRACKET )* )* + (DROP TARGET (event_module_guid=id DOT)? event_package_name=id DOT target_name=id )* + + + (WITH + LR_BRACKET + (COMMA? MAX_MEMORY EQUAL max_memory=DECIMAL (KB|MB) )? + (COMMA? EVENT_RETENTION_MODE EQUAL (ALLOW_SINGLE_EVENT_LOSS | ALLOW_MULTIPLE_EVENT_LOSS | NO_EVENT_LOSS ) )? + (COMMA? MAX_DISPATCH_LATENCY EQUAL (max_dispatch_latency_seconds=DECIMAL SECONDS | INFINITE) )? + (COMMA? MAX_EVENT_SIZE EQUAL max_event_size=DECIMAL (KB|MB) )? + (COMMA? MEMORY_PARTITION_MODE EQUAL (NONE | PER_NODE | PER_CPU) )? + (COMMA? TRACK_CAUSALITY EQUAL (ON|OFF) )? + (COMMA? STARTUP_STATE EQUAL (ON|OFF) )? + RR_BRACKET + )? + (STATE EQUAL (START|STOP) )? + + ; + +event_session_predicate_expression + : ( COMMA? (AND|OR)? NOT? ( event_session_predicate_factor | LR_BRACKET event_session_predicate_expression RR_BRACKET) )+ + ; + +event_session_predicate_factor + : event_session_predicate_leaf + | LR_BRACKET event_session_predicate_expression RR_BRACKET + ; + +event_session_predicate_leaf + : (event_field_name=id | (event_field_name=id |( (event_module_guid=id DOT)? event_package_name=id DOT predicate_source_name=id ) ) (EQUAL |(LESS GREATER) | (EXCLAMATION EQUAL) | GREATER | (GREATER EQUAL)| LESS | LESS EQUAL) (DECIMAL | STRING) ) + | (event_module_guid=id DOT)? event_package_name=id DOT predicate_compare_name=id LR_BRACKET (event_field_name=id |( (event_module_guid=id DOT)? event_package_name=id DOT predicate_source_name=id ) COMMA (DECIMAL | STRING) ) RR_BRACKET + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-external-data-source-transact-sql +alter_external_data_source + : ALTER EXTERNAL DATA SOURCE data_source_name=id SET + ( LOCATION EQUAL location=(QUOTED_URL|QUOTED_HOST_AND_PORT) COMMA? | RESOURCE_MANAGER_LOCATION EQUAL resource_manager_location=(QUOTED_URL|QUOTED_HOST_AND_PORT) COMMA? | CREDENTIAL EQUAL credential_name=id )+ + | ALTER EXTERNAL DATA SOURCE data_source_name=id WITH LR_BRACKET TYPE EQUAL BLOB_STORAGE COMMA LOCATION EQUAL location=STRING (COMMA CREDENTIAL EQUAL credential_name=id )? RR_BRACKET + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-external-library-transact-sql +alter_external_library + : ALTER EXTERNAL LIBRARY library_name=id (AUTHORIZATION owner_name=id)? + (SET|ADD) ( LR_BRACKET CONTENT EQUAL (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET) WITH (COMMA? LANGUAGE EQUAL (R|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id )+ RR_BRACKET ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-library-transact-sql +create_external_library + : CREATE EXTERNAL LIBRARY library_name=id (AUTHORIZATION owner_name=id)? + FROM (COMMA? LR_BRACKET? (CONTENT EQUAL)? (client_library=STRING | BINARY | NONE) (COMMA PLATFORM EQUAL (WINDOWS|LINUX)? RR_BRACKET)? ) ( WITH (COMMA? LANGUAGE EQUAL (R|PYTHON) | DATA_SOURCE EQUAL external_data_source_name=id )+ RR_BRACKET )? + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-external-resource-pool-transact-sql +alter_external_resource_pool + : ALTER EXTERNAL RESOURCE POOL (pool_name=id | DEFAULT_DOUBLE_QUOTE) WITH LR_BRACKET MAX_CPU_PERCENT EQUAL max_cpu_percent=DECIMAL ( COMMA? AFFINITY CPU EQUAL (AUTO|(COMMA? DECIMAL TO DECIMAL |COMMA DECIMAL )+ ) | NUMANODE EQUAL (COMMA? DECIMAL TO DECIMAL| COMMA? DECIMAL )+ ) (COMMA? MAX_MEMORY_PERCENT EQUAL max_memory_percent=DECIMAL)? (COMMA? MAX_PROCESSES EQUAL max_processes=DECIMAL)? RR_BRACKET + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-resource-pool-transact-sql +create_external_resource_pool + : CREATE EXTERNAL RESOURCE POOL pool_name=id WITH LR_BRACKET MAX_CPU_PERCENT EQUAL max_cpu_percent=DECIMAL ( COMMA? AFFINITY CPU EQUAL (AUTO|(COMMA? DECIMAL TO DECIMAL |COMMA DECIMAL )+ ) | NUMANODE EQUAL (COMMA? DECIMAL TO DECIMAL| COMMA? DECIMAL )+ ) (COMMA? MAX_MEMORY_PERCENT EQUAL max_memory_percent=DECIMAL)? (COMMA? MAX_PROCESSES EQUAL max_processes=DECIMAL)? RR_BRACKET + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-fulltext-catalog-transact-sql +alter_fulltext_catalog + : ALTER FULLTEXT CATALOG catalog_name=id (REBUILD (WITH ACCENT_SENSITIVITY EQUAL (ON|OFF) )? | REORGANIZE | AS DEFAULT ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-fulltext-catalog-transact-sql +create_fulltext_catalog + : CREATE FULLTEXT CATALOG catalog_name=id + (ON FILEGROUP filegroup=id)? + (IN PATH rootpath=STRING)? + (WITH ACCENT_SENSITIVITY EQUAL (ON|OFF) )? + (AS DEFAULT)? + (AUTHORIZATION owner_name=id)? + ; + + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-fulltext-stoplist-transact-sql +alter_fulltext_stoplist + : ALTER FULLTEXT STOPLIST stoplist_name=id (ADD stopword=STRING LANGUAGE (STRING|DECIMAL|BINARY) | DROP ( stopword=STRING LANGUAGE (STRING|DECIMAL|BINARY) |ALL (STRING|DECIMAL|BINARY) | ALL ) ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-fulltext-stoplist-transact-sql +create_fulltext_stoplist + : CREATE FULLTEXT STOPLIST stoplist_name=id + (FROM ( (database_name=id DOT)? source_stoplist_name=id |SYSTEM STOPLIST ) )? + (AUTHORIZATION owner_name=id)? + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-login-transact-sql +alter_login_sql_server + : ALTER LOGIN login_name=id + ( (ENABLE|DISABLE)? | WITH ( (PASSWORD EQUAL ( password=STRING | password_hash=BINARY HASHED ) ) (MUST_CHANGE|UNLOCK)* )? (OLD_PASSWORD EQUAL old_password=STRING (MUST_CHANGE|UNLOCK)* )? (DEFAULT_DATABASE EQUAL default_database=id)? (DEFAULT_LANGUAGE EQUAL default_laguage=id)? (NAME EQUAL login_name=id)? (CHECK_POLICY EQUAL (ON|OFF) )? (CHECK_EXPIRATION EQUAL (ON|OFF) )? (CREDENTIAL EQUAL credential_name=id)? (NO CREDENTIAL)? | (ADD|DROP) CREDENTIAL credential_name=id ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-login-transact-sql +create_login_sql_server + : CREATE LOGIN login_name=id + ( WITH ( (PASSWORD EQUAL ( password=STRING | password_hash=BINARY HASHED ) ) (MUST_CHANGE|UNLOCK)* )? + (COMMA? SID EQUAL sid=BINARY)? + (COMMA? DEFAULT_DATABASE EQUAL default_database=id)? + (COMMA? DEFAULT_LANGUAGE EQUAL default_laguage=id)? + (COMMA? CHECK_EXPIRATION EQUAL (ON|OFF) )? + (COMMA? CHECK_POLICY EQUAL (ON|OFF) )? + (COMMA? CREDENTIAL EQUAL credential_name=id)? + |(FROM + (WINDOWS + (WITH (COMMA? DEFAULT_DATABASE EQUAL default_database=id)? (COMMA? DEFAULT_LANGUAGE EQUAL default_language=STRING)? ) + | CERTIFICATE certname=id + | ASYMMETRIC KEY asym_key_name=id + ) + ) + ) + ; + +alter_login_azure_sql + : ALTER LOGIN login_name=id ( (ENABLE|DISABLE)? | WITH (PASSWORD EQUAL password=STRING (OLD_PASSWORD EQUAL old_password=STRING)? | NAME EQUAL login_name=id ) ) + ; + +create_login_azure_sql + : CREATE LOGIN login_name=id + WITH PASSWORD EQUAL STRING (SID EQUAL sid=BINARY)? + ; + +alter_login_azure_sql_dw_and_pdw + : ALTER LOGIN login_name=id ( (ENABLE|DISABLE)? | WITH (PASSWORD EQUAL password=STRING (OLD_PASSWORD EQUAL old_password=STRING (MUST_CHANGE|UNLOCK)* )? | NAME EQUAL login_name=id ) ) + ; + +create_login_pdw + : CREATE LOGIN loginName=id + (WITH + ( PASSWORD EQUAL password=STRING (MUST_CHANGE)? + (CHECK_POLICY EQUAL (ON|OFF)? )? + ) + | FROM WINDOWS + ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-master-key-transact-sql +alter_master_key_sql_server + : ALTER MASTER KEY ( (FORCE)? REGENERATE WITH ENCRYPTION BY PASSWORD EQUAL password=STRING |(ADD|DROP) ENCRYPTION BY (SERVICE MASTER KEY | PASSWORD EQUAL encryption_password=STRING) ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-master-key-transact-sql +create_master_key_sql_server + : CREATE MASTER KEY ENCRYPTION BY PASSWORD EQUAL password=STRING + ; + +alter_master_key_azure_sql + : ALTER MASTER KEY ( (FORCE)? REGENERATE WITH ENCRYPTION BY PASSWORD EQUAL password=STRING |ADD ENCRYPTION BY (SERVICE MASTER KEY | PASSWORD EQUAL encryption_password=STRING) | DROP ENCRYPTION BY PASSWORD EQUAL encryption_password=STRING ) + ; + +create_master_key_azure_sql + : CREATE MASTER KEY (ENCRYPTION BY PASSWORD EQUAL password=STRING)? + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-message-type-transact-sql +alter_message_type + : ALTER MESSAGE TYPE message_type_name=id VALIDATION EQUAL (NONE | EMPTY | WELL_FORMED_XML | VALID_XML WITH SCHEMA COLLECTION schema_collection_name=id) + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-partition-function-transact-sql +alter_partition_function + : ALTER PARTITION FUNCTION partition_function_name=id LR_BRACKET RR_BRACKET (SPLIT|MERGE) RANGE LR_BRACKET DECIMAL RR_BRACKET + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-partition-scheme-transact-sql +alter_partition_scheme + : ALTER PARTITION SCHEME partition_scheme_name=id NEXT USED (file_group_name=id)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-remote-service-binding-transact-sql +alter_remote_service_binding + : ALTER REMOTE SERVICE BINDING binding_name=id + WITH (USER EQUAL user_name=id)? + (COMMA ANONYMOUS EQUAL (ON|OFF) )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-remote-service-binding-transact-sql +create_remote_service_binding + : CREATE REMOTE SERVICE BINDING binding_name=id + (AUTHORIZATION owner_name=id)? + TO SERVICE remote_service_name=STRING + WITH (USER EQUAL user_name=id)? + (COMMA ANONYMOUS EQUAL (ON|OFF) )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-resource-pool-transact-sql +create_resource_pool + : CREATE RESOURCE POOL pool_name=id + (WITH + LR_BRACKET + (COMMA? MIN_CPU_PERCENT EQUAL DECIMAL)? + (COMMA? MAX_CPU_PERCENT EQUAL DECIMAL)? + (COMMA? CAP_CPU_PERCENT EQUAL DECIMAL)? + (COMMA? AFFINITY SCHEDULER EQUAL + (AUTO + | LR_BRACKET (COMMA? (DECIMAL|DECIMAL TO DECIMAL) )+ RR_BRACKET + | NUMANODE EQUAL LR_BRACKET (COMMA? (DECIMAL|DECIMAL TO DECIMAL) )+ RR_BRACKET + ) + )? + (COMMA? MIN_MEMORY_PERCENT EQUAL DECIMAL)? + (COMMA? MAX_MEMORY_PERCENT EQUAL DECIMAL)? + (COMMA? MIN_IOPS_PER_VOLUME EQUAL DECIMAL)? + (COMMA? MAX_IOPS_PER_VOLUME EQUAL DECIMAL)? + RR_BRACKET + )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-resource-governor-transact-sql +alter_resource_governor + : ALTER RESOURCE GOVERNOR ( (DISABLE | RECONFIGURE) | WITH LR_BRACKET CLASSIFIER_FUNCTION EQUAL ( schema_name=id DOT function_name=id | NULL ) RR_BRACKET | RESET STATISTICS | WITH LR_BRACKET MAX_OUTSTANDING_IO_PER_VOLUME EQUAL max_outstanding_io_per_volume=DECIMAL RR_BRACKET ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-role-transact-sql +alter_db_role + : ALTER ROLE role_name=id + ( (ADD|DROP) MEMBER database_principal=id + | WITH NAME EQUAL new_role_name=id ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-role-transact-sql +create_db_role + : CREATE ROLE role_name=id (AUTHORIZATION owner_name = id)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-route-transact-sql +create_route + : CREATE ROUTE route_name=id + (AUTHORIZATION owner_name=id)? + WITH + (COMMA? SERVICE_NAME EQUAL route_service_name=STRING)? + (COMMA? BROKER_INSTANCE EQUAL broker_instance_identifier=STRING)? + (COMMA? LIFETIME EQUAL DECIMAL)? + COMMA? ADDRESS EQUAL (STRING|QUOTED_URL) + (COMMA MIRROR_ADDRESS EQUAL (STRING|QUOTED_URL) )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-rule-transact-sql +create_rule + : CREATE RULE (schema_name=id DOT)? rule_name=id + AS search_condition + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-schema-transact-sql +alter_schema_sql + : ALTER SCHEMA schema_name=id TRANSFER ((OBJECT|TYPE|XML SCHEMA COLLECTION) COLON COLON )? id (DOT id)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-schema-transact-sql +create_schema + : CREATE SCHEMA + (schema_name=id + |AUTHORIZATION owner_name=id + | schema_name=id AUTHORIZATION owner_name=id + ) + (create_table + |create_view + | (GRANT|DENY) (SELECT|INSERT|DELETE|UPDATE) ON (SCHEMA COLON COLON)? object_name=id TO owner_name=id + | REVOKE (SELECT|INSERT|DELETE|UPDATE) ON (SCHEMA COLON COLON)? object_name=id FROM owner_name=id + )* + ; + +create_schema_azure_sql_dw_and_pdw + : +CREATE SCHEMA schema_name=id (AUTHORIZATION owner_name=id )? + ; + +alter_schema_azure_sql_dw_and_pdw + : ALTER SCHEMA schema_name=id TRANSFER (OBJECT COLON COLON )? id (DOT ID)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-search-property-list-transact-sql +create_search_property_list + : CREATE SEARCH PROPERTY LIST new_list_name=id + (FROM (database_name=id DOT)? source_list_name=id )? + (AUTHORIZATION owner_name=id)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-security-policy-transact-sql +create_security_policy + : CREATE SECURITY POLICY (schema_name=id DOT)? security_policy_name=id + (COMMA? ADD (FILTER|BLOCK)? PREDICATE tvf_schema_name=id DOT security_predicate_function_name=id + LR_BRACKET (COMMA? column_name_or_arguments=id)+ RR_BRACKET + ON table_schema_name=id DOT name=id + (COMMA? AFTER (INSERT|UPDATE) + | COMMA? BEFORE (UPDATE|DELETE) + )* + )+ + (WITH LR_BRACKET + STATE EQUAL (ON|OFF) + (SCHEMABINDING (ON|OFF) )? + RR_BRACKET + )? + (NOT FOR REPLICATION)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-sequence-transact-sql +alter_sequence + : ALTER SEQUENCE (schema_name=id DOT)? sequence_name=id ( RESTART (WITH DECIMAL)? )? (INCREMENT BY sequnce_increment=DECIMAL )? ( MINVALUE DECIMAL| NO MINVALUE)? (MAXVALUE DECIMAL| NO MAXVALUE)? (CYCLE|NO CYCLE)? (CACHE DECIMAL | NO CACHE)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-sequence-transact-sql +create_sequence + : CREATE SEQUENCE (schema_name=id DOT)? sequence_name=id + (AS data_type )? + (START WITH DECIMAL)? + (INCREMENT BY MINUS? DECIMAL)? + (MINVALUE DECIMAL? | NO MINVALUE)? + (MAXVALUE DECIMAL? | NO MAXVALUE)? + (CYCLE|NO CYCLE)? + (CACHE DECIMAL? | NO CACHE)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-server-audit-transact-sql +alter_server_audit + : ALTER SERVER AUDIT audit_name=id + ( ( TO + (FILE + ( LR_BRACKET + ( COMMA? FILEPATH EQUAL filepath=STRING + | COMMA? MAXSIZE EQUAL ( DECIMAL (MB|GB|TB) + | UNLIMITED + ) + | COMMA? MAX_ROLLOVER_FILES EQUAL max_rollover_files=(DECIMAL|UNLIMITED) + | COMMA? MAX_FILES EQUAL max_files=DECIMAL + | COMMA? RESERVE_DISK_SPACE EQUAL (ON|OFF) )* + RR_BRACKET ) + | APPLICATION_LOG + | SECURITY_LOG + ) )? + ( WITH LR_BRACKET + (COMMA? QUEUE_DELAY EQUAL queue_delay=DECIMAL + | COMMA? ON_FAILURE EQUAL (CONTINUE | SHUTDOWN|FAIL_OPERATION) + |COMMA? STATE EQUAL (ON|OFF) )* + RR_BRACKET + )? + ( WHERE ( COMMA? (NOT?) event_field_name=id + (EQUAL + |(LESS GREATER) + | (EXCLAMATION EQUAL) + | GREATER + | (GREATER EQUAL) + | LESS + | LESS EQUAL + ) + (DECIMAL | STRING) + | COMMA? (AND|OR) NOT? (EQUAL + |(LESS GREATER) + | (EXCLAMATION EQUAL) + | GREATER + | (GREATER EQUAL) + | LESS + | LESS EQUAL) + (DECIMAL | STRING) ) )? + |REMOVE WHERE + | MODIFY NAME EQUAL new_audit_name=id + ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-server-audit-transact-sql +create_server_audit + : CREATE SERVER AUDIT audit_name=id + ( ( TO + (FILE + ( LR_BRACKET + ( COMMA? FILEPATH EQUAL filepath=STRING + | COMMA? MAXSIZE EQUAL ( DECIMAL (MB|GB|TB) + | UNLIMITED + ) + | COMMA? MAX_ROLLOVER_FILES EQUAL max_rollover_files=(DECIMAL|UNLIMITED) + | COMMA? MAX_FILES EQUAL max_files=DECIMAL + | COMMA? RESERVE_DISK_SPACE EQUAL (ON|OFF) )* + RR_BRACKET ) + | APPLICATION_LOG + | SECURITY_LOG + ) )? + ( WITH LR_BRACKET + (COMMA? QUEUE_DELAY EQUAL queue_delay=DECIMAL + | COMMA? ON_FAILURE EQUAL (CONTINUE | SHUTDOWN|FAIL_OPERATION) + |COMMA? STATE EQUAL (ON|OFF) + |COMMA? AUDIT_GUID EQUAL audit_guid=id + )* + + RR_BRACKET + )? + ( WHERE ( COMMA? (NOT?) event_field_name=id + (EQUAL + |(LESS GREATER) + | (EXCLAMATION EQUAL) + | GREATER + | (GREATER EQUAL) + | LESS + | LESS EQUAL + ) + (DECIMAL | STRING) + | COMMA? (AND|OR) NOT? (EQUAL + |(LESS GREATER) + | (EXCLAMATION EQUAL) + | GREATER + | (GREATER EQUAL) + | LESS + | LESS EQUAL) + (DECIMAL | STRING) ) )? + |REMOVE WHERE + | MODIFY NAME EQUAL new_audit_name=id + ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-server-audit-specification-transact-sql + +alter_server_audit_specification + : ALTER SERVER AUDIT SPECIFICATION audit_specification_name=id + (FOR SERVER AUDIT audit_name=id)? + ( (ADD|DROP) LR_BRACKET audit_action_group_name=id RR_BRACKET )* + (WITH LR_BRACKET STATE EQUAL (ON|OFF) RR_BRACKET )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-server-audit-specification-transact-sql +create_server_audit_specification + : CREATE SERVER AUDIT SPECIFICATION audit_specification_name=id + (FOR SERVER AUDIT audit_name=id)? + ( ADD LR_BRACKET audit_action_group_name=id RR_BRACKET )* + (WITH LR_BRACKET STATE EQUAL (ON|OFF) RR_BRACKET )? + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-server-configuration-transact-sql + +alter_server_configuration + : ALTER SERVER CONFIGURATION + SET ( (PROCESS AFFINITY (CPU EQUAL (AUTO | (COMMA? DECIMAL | COMMA? DECIMAL TO DECIMAL)+ ) | NUMANODE EQUAL ( COMMA? DECIMAL |COMMA? DECIMAL TO DECIMAL)+ ) | DIAGNOSTICS LOG (ON|OFF|PATH EQUAL (STRING | DEFAULT) |MAX_SIZE EQUAL (DECIMAL MB |DEFAULT)|MAX_FILES EQUAL (DECIMAL|DEFAULT) ) | FAILOVER CLUSTER PROPERTY (VERBOSELOGGING EQUAL (STRING|DEFAULT) |SQLDUMPERFLAGS EQUAL (STRING|DEFAULT) | SQLDUMPERPATH EQUAL (STRING|DEFAULT) | SQLDUMPERTIMEOUT (STRING|DEFAULT) | FAILURECONDITIONLEVEL EQUAL (STRING|DEFAULT) | HEALTHCHECKTIMEOUT EQUAL (DECIMAL|DEFAULT) ) | HADR CLUSTER CONTEXT EQUAL (STRING|LOCAL) | BUFFER POOL EXTENSION (ON LR_BRACKET FILENAME EQUAL STRING COMMA SIZE EQUAL DECIMAL (KB|MB|GB) RR_BRACKET | OFF ) | SET SOFTNUMA (ON|OFF) ) ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-server-role-transact-sql +alter_server_role + : ALTER SERVER ROLE server_role_name=id + ( (ADD|DROP) MEMBER server_principal=id + | WITH NAME EQUAL new_server_role_name=id + ) + ; +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-server-role-transact-sql +create_server_role + : CREATE SERVER ROLE server_role=id (AUTHORIZATION server_principal=id)? + ; + +alter_server_role_pdw + : ALTER SERVER ROLE server_role_name=id (ADD|DROP) MEMBER login=id + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-service-transact-sql +alter_service + : ALTER SERVICE modified_service_name=id (ON QUEUE (schema_name=id DOT) queue_name=id)? (COMMA? (ADD|DROP) modified_contract_name=id)* + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-service-transact-sql +create_service + : CREATE SERVICE create_service_name=id + (AUTHORIZATION owner_name=id)? + ON QUEUE (schema_name=id DOT)? queue_name=id + ( LR_BRACKET (COMMA? (id|DEFAULT) )+ RR_BRACKET )? + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-service-master-key-transact-sql + +alter_service_master_key + : ALTER SERVICE MASTER KEY ( FORCE? REGENERATE | (WITH (OLD_ACCOUNT EQUAL acold_account_name=STRING COMMA OLD_PASSWORD EQUAL old_password=STRING | NEW_ACCOUNT EQUAL new_account_name=STRING COMMA NEW_PASSWORD EQUAL new_password=STRING)? ) ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-symmetric-key-transact-sql + +alter_symmetric_key + : ALTER SYMMETRIC KEY key_name=id ( (ADD|DROP) ENCRYPTION BY (CERTIFICATE certificate_name=id | PASSWORD EQUAL password=STRING | SYMMETRIC KEY symmetric_key_name=id | ASYMMETRIC KEY Asym_key_name=id ) ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-symmetric-key-transact-sql +create_symmetric_key + : ALTER SYMMETRIC KEY key_name=id + (AUTHORIZATION owner_name=id)? + (FROM PROVIDER provider_name=id)? + (WITH ( (KEY_SOURCE EQUAL key_pass_phrase=STRING + | ALGORITHM EQUAL (DES | TRIPLE_DES | TRIPLE_DES_3KEY | RC2 | RC4 | RC4_128 | DESX | AES_128 | AES_192 | AES_256) + | IDENTITY_VALUE EQUAL identity_phrase=STRING + | PROVIDER_KEY_NAME EQUAL provider_key_name=STRING + | CREATION_DISPOSITION EQUAL (CREATE_NEW|OPEN_EXISTING) + ) + | ENCRYPTION BY + ( CERTIFICATE certificate_name=id + | PASSWORD EQUAL password=STRING + | SYMMETRIC KEY symmetric_key_name=id + | ASYMMETRIC KEY asym_key_name=id + ) + ) + ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-synonym-transact-sql +create_synonym + : CREATE SYNONYM (schema_name_1=id DOT )? synonym_name=id + FOR ( (server_name=id DOT )? (database_name=id DOT)? (schema_name_2=id DOT)? object_name=id + | (database_or_schema2=id DOT)? (schema_id_2_or_object_name=id DOT)? + ) + ; + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-user-transact-sql +alter_user + : ALTER USER username=id WITH (COMMA? NAME EQUAL newusername=id | COMMA? DEFAULT_SCHEMA EQUAL ( schema_name=id |NULL ) | COMMA? LOGIN EQUAL loginame=id | COMMA? PASSWORD EQUAL STRING (OLD_PASSWORD EQUAL STRING)+ | COMMA? DEFAULT_LANGUAGE EQUAL (NONE| lcid=DECIMAL| language_name_or_alias=id) | COMMA? ALLOW_ENCRYPTED_VALUE_MODIFICATIONS EQUAL (ON|OFF) )+ + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-user-transact-sql +create_user + : CREATE USER user_name=id + ( (FOR|FROM) LOGIN login_name=id )? + ( WITH (COMMA? DEFAULT_SCHEMA EQUAL schema_name=id + |COMMA? ALLOW_ENCRYPTED_VALUE_MODIFICATIONS EQUAL (ON|OFF) + )* + )? + | CREATE USER ( windows_principal=id + (WITH + (COMMA? DEFAULT_SCHEMA EQUAL schema_name=id + |COMMA? DEFAULT_LANGUAGE EQUAL (NONE + |DECIMAL + |language_name_or_alias=id ) + |COMMA? SID EQUAL BINARY + |COMMA? ALLOW_ENCRYPTED_VALUE_MODIFICATIONS EQUAL (ON|OFF) + )* + )? + | user_name=id WITH PASSWORD EQUAL password=STRING + (COMMA? DEFAULT_SCHEMA EQUAL schema_name=id + |COMMA? DEFAULT_LANGUAGE EQUAL (NONE + |DECIMAL + |language_name_or_alias=id ) + |COMMA? SID EQUAL BINARY + |COMMA? ALLOW_ENCRYPTED_VALUE_MODIFICATIONS EQUAL (ON|OFF) + )* + | Azure_Active_Directory_principal=id FROM EXTERNAL PROVIDER + ) + | CREATE USER user_name=id + ( WITHOUT LOGIN + (COMMA? DEFAULT_SCHEMA EQUAL schema_name=id + |COMMA? ALLOW_ENCRYPTED_VALUE_MODIFICATIONS EQUAL (ON|OFF) + )* + | (FOR|FROM) CERTIFICATE cert_name=id + | (FOR|FROM) ASYMMETRIC KEY asym_key_name=id + ) + | CREATE USER user_name=id + ; + +create_user_azure_sql_dw + : CREATE USER user_name=id + ( (FOR|FROM) LOGIN login_name=id + | WITHOUT LOGIN + )? + + ( WITH DEFAULT_SCHEMA EQUAL schema_name=id)? + | CREATE USER Azure_Active_Directory_principal=id + FROM EXTERNAL PROVIDER + ( WITH DEFAULT_SCHEMA EQUAL schema_name=id)? + ; + + +alter_user_azure_sql + : ALTER USER username=id WITH (COMMA? NAME EQUAL newusername=id | COMMA? DEFAULT_SCHEMA EQUAL schema_name=id | COMMA? LOGIN EQUAL loginame=id | COMMA? ALLOW_ENCRYPTED_VALUE_MODIFICATIONS EQUAL (ON|OFF) )+ + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-workload-group-transact-sql + +alter_workload_group + : ALTER WORKLOAD GROUP + (workload_group_group_name=id + |DEFAULT_DOUBLE_QUOTE + ) + (WITH LR_BRACKET + (IMPORTANCE EQUAL (LOW|MEDIUM|HIGH) + | COMMA? REQUEST_MAX_MEMORY_GRANT_PERCENT EQUAL request_max_memory_grant=DECIMAL + | COMMA? REQUEST_MAX_CPU_TIME_SEC EQUAL request_max_cpu_time_sec=DECIMAL + | REQUEST_MEMORY_GRANT_TIMEOUT_SEC EQUAL request_memory_grant_timeout_sec=DECIMAL + | MAX_DOP EQUAL max_dop=DECIMAL + | GROUP_MAX_REQUESTS EQUAL group_max_requests=DECIMAL)+ + RR_BRACKET )? + (USING (workload_group_pool_name=id | DEFAULT_DOUBLE_QUOTE) )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-workload-group-transact-sql +create_workload_group + : CREATE WORKLOAD GROUP workload_group_group_name=id + (WITH LR_BRACKET + (IMPORTANCE EQUAL (LOW|MEDIUM|HIGH) + | COMMA? REQUEST_MAX_MEMORY_GRANT_PERCENT EQUAL request_max_memory_grant=DECIMAL + | COMMA? REQUEST_MAX_CPU_TIME_SEC EQUAL request_max_cpu_time_sec=DECIMAL + | REQUEST_MEMORY_GRANT_TIMEOUT_SEC EQUAL request_memory_grant_timeout_sec=DECIMAL + | MAX_DOP EQUAL max_dop=DECIMAL + | GROUP_MAX_REQUESTS EQUAL group_max_requests=DECIMAL)+ + RR_BRACKET )? + (USING (workload_group_pool_name=id | DEFAULT_DOUBLE_QUOTE)? + (COMMA? EXTERNAL external_pool_name=id | DEFAULT_DOUBLE_QUOTE)? + )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-xml-schema-collection-transact-sql +create_xml_schema_collection + : CREATE XML SCHEMA COLLECTION (relational_schema=id DOT)? sql_identifier=id AS (STRING|id|LOCAL_ID) + ; + +create_queue + : CREATE QUEUE (full_table_name | queue_name=id) queue_settings? + (ON filegroup=id | DEFAULT)? + ; + + +queue_settings + :WITH + (STATUS EQUAL (ON | OFF) COMMA?)? + (RETENTION EQUAL (ON | OFF) COMMA?)? + (ACTIVATION + LR_BRACKET + ( + ( + (STATUS EQUAL (ON | OFF) COMMA? )? + (PROCEDURE_NAME EQUAL func_proc_name_database_schema COMMA?)? + (MAX_QUEUE_READERS EQUAL max_readers=DECIMAL COMMA?)? + (EXECUTE AS (SELF | user_name=STRING | OWNER) COMMA?)? + ) + | DROP + ) + RR_BRACKET COMMA? + )? + (POISON_MESSAGE_HANDLING + LR_BRACKET + (STATUS EQUAL (ON | OFF)) + RR_BRACKET + )? + ; + +alter_queue + : ALTER QUEUE (full_table_name | queue_name=id) + (queue_settings | queue_action) + ; + +queue_action + : REBUILD ( WITH LR_BRACKET queue_rebuild_options RR_BRACKET)? + | REORGANIZE (WITH LOB_COMPACTION EQUAL (ON | OFF))? + | MOVE TO (id | DEFAULT) + ; +queue_rebuild_options + : MAXDOP EQUAL DECIMAL + ; + +create_contract + : CREATE CONTRACT contract_name + (AUTHORIZATION owner_name=id)? + LR_BRACKET ((message_type_name=id | DEFAULT) + SENT BY (INITIATOR | TARGET | ANY ) COMMA?)+ + RR_BRACKET + ; + +conversation_statement + : begin_conversation_timer + | begin_conversation_dialog + | end_conversation + | get_conversation + | send_conversation + | waitfor_conversation + ; + +message_statement + : CREATE MESSAGE TYPE message_type_name=id + (AUTHORIZATION owner_name=id)? + (VALIDATION EQUAL (NONE + | EMPTY + | WELL_FORMED_XML + | VALID_XML WITH SCHEMA COLLECTION schema_collection_name=id)) + ; + +// DML + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql +merge_statement + : with_expression? + MERGE (TOP '(' expression ')' PERCENT?)? + INTO? ddl_object insert_with_table_hints? as_table_alias? + USING table_sources + ON search_condition + (WHEN MATCHED (AND search_condition)? + THEN merge_matched)* + (WHEN NOT MATCHED (BY TARGET)? (AND search_condition)? + THEN merge_not_matched)? + (WHEN NOT MATCHED BY SOURCE (AND search_condition)? + THEN merge_matched)* + output_clause? + option_clause? ';' + ; + + +merge_matched + : UPDATE SET update_elem (',' update_elem)* + | DELETE + ; + +merge_not_matched + : INSERT ('(' column_name_list ')')? + (table_value_constructor | DEFAULT VALUES) + ; + +// https://msdn.microsoft.com/en-us/library/ms189835.aspx +delete_statement + : with_expression? + DELETE (TOP '(' expression ')' PERCENT? | TOP DECIMAL)? + FROM? delete_statement_from + insert_with_table_hints? + output_clause? + (FROM table_sources)? + (WHERE (search_condition | CURRENT OF (GLOBAL? cursor_name | cursor_var=LOCAL_ID)))? + for_clause? option_clause? ';'? + ; + +delete_statement_from + : ddl_object + | table_alias + | rowset_function_limited + | table_var=LOCAL_ID + ; + +// https://msdn.microsoft.com/en-us/library/ms174335.aspx +insert_statement + : with_expression? + INSERT (TOP '(' expression ')' PERCENT?)? + INTO? (ddl_object | rowset_function_limited) + insert_with_table_hints? + ('(' column_name_list ')')? + output_clause? + insert_statement_value + for_clause? option_clause? ';'? + ; + +insert_statement_value + : table_value_constructor + | derived_table + | execute_statement + | DEFAULT VALUES + ; + + +receive_statement + : '('? RECEIVE (ALL | DISTINCT | top_clause | '*') + (LOCAL_ID '=' expression ','?)* FROM full_table_name + (INTO table_variable=id (WHERE where=search_condition))? ')'? + ; + +// https://msdn.microsoft.com/en-us/library/ms189499.aspx +select_statement + : with_expression? query_expression order_by_clause? for_clause? option_clause? ';'? + ; + +time + : (LOCAL_ID | constant) + ; + +// https://msdn.microsoft.com/en-us/library/ms177523.aspx +update_statement + : with_expression? + UPDATE (TOP '(' expression ')' PERCENT?)? + (ddl_object | rowset_function_limited) + with_table_hints? + SET update_elem (',' update_elem)* + output_clause? + (FROM table_sources)? + (WHERE (search_condition_list | CURRENT OF (GLOBAL? cursor_name | cursor_var=LOCAL_ID)))? + for_clause? option_clause? ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms177564.aspx +output_clause + : OUTPUT output_dml_list_elem (',' output_dml_list_elem)* + (INTO (LOCAL_ID | table_name) ('(' column_name_list ')')? )? + ; + +output_dml_list_elem + : (output_column_name | expression) as_column_alias? // TODO: scalar_expression + ; + +output_column_name + : (DELETED | INSERTED | table_name) '.' ('*' | id) + | DOLLAR_ACTION + ; + +// DDL + +// https://msdn.microsoft.com/en-ie/library/ms176061.aspx +create_database + : CREATE DATABASE (database=id) + ( CONTAINMENT '=' ( NONE | PARTIAL ) )? + ( ON PRIMARY? database_file_spec ( ',' database_file_spec )* )? + ( LOG ON database_file_spec ( ',' database_file_spec )* )? + ( COLLATE collation_name = id )? + ( WITH create_database_option ( ',' create_database_option )* )? + ; + +// https://msdn.microsoft.com/en-us/library/ms188783.aspx +create_index + : CREATE UNIQUE? clustered? INDEX id ON table_name_with_hint '(' column_name_list_with_order ')' + (INCLUDE '(' column_name_list ')' )? + (WHERE where=search_condition)? + (index_options)? + (ON id)? + ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms187926(v=sql.120).aspx +create_or_alter_procedure + : ((CREATE (OR ALTER)?) | ALTER) proc=(PROC | PROCEDURE) func_proc_name_schema (';' DECIMAL)? + ('('? procedure_param (',' procedure_param)* ')'?)? + (WITH procedure_option (',' procedure_option)*)? + (FOR REPLICATION)? AS sql_clauses + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql +create_or_alter_trigger + : create_or_alter_dml_trigger + | create_or_alter_ddl_trigger + ; + +create_or_alter_dml_trigger + : ((CREATE (OR ALTER)?) | ALTER) TRIGGER simple_name + ON table_name + (WITH dml_trigger_option (',' dml_trigger_option)* )? + (FOR | AFTER | INSTEAD OF) + dml_trigger_operation (',' dml_trigger_operation)* + (WITH APPEND)? + (NOT FOR REPLICATION)? + AS sql_clauses + ; + +dml_trigger_option + : ENCRYPTION + | execute_clause + ; + +dml_trigger_operation + : (INSERT | UPDATE | DELETE) + ; + +create_or_alter_ddl_trigger + : ((CREATE (OR ALTER)?) | ALTER) TRIGGER simple_id + ON (ALL SERVER | DATABASE) + (WITH dml_trigger_option (',' dml_trigger_option)* )? + (FOR | AFTER) ddl_trigger_operation (',' dml_trigger_operation)* + AS sql_clauses + ; + +ddl_trigger_operation + : simple_id + ; + +// https://msdn.microsoft.com/en-us/library/ms186755.aspx +create_or_alter_function + : ((CREATE (OR ALTER)?) | ALTER) FUNCTION func_proc_name_schema + (('(' procedure_param (',' procedure_param)* ')') | '(' ')') //must have (), but can be empty + (func_body_returns_select | func_body_returns_table | func_body_returns_scalar) ';'? + ; + +func_body_returns_select + :RETURNS TABLE + (WITH function_option (',' function_option)*)? + AS? + RETURN ('(' select_statement ')' | select_statement) + ; + +func_body_returns_table + : RETURNS LOCAL_ID table_type_definition + (WITH function_option (',' function_option)*)? + AS? + BEGIN + sql_clause* + RETURN ';'? + END ';'? + ; + +func_body_returns_scalar + :RETURNS data_type + (WITH function_option (',' function_option)*)? + AS? + BEGIN + sql_clause* + RETURN ret=expression ';'? + END + ; + +procedure_param + : LOCAL_ID (id '.')? AS? data_type VARYING? ('=' default_val=default_value)? (OUT | OUTPUT | READONLY)? + ; + +procedure_option + : ENCRYPTION + | RECOMPILE + | execute_clause + ; + +function_option + : ENCRYPTION + | SCHEMABINDING + | RETURNS NULL ON NULL INPUT + | CALLED ON NULL INPUT + | execute_clause + ; + +// https://msdn.microsoft.com/en-us/library/ms188038.aspx +create_statistics + : CREATE STATISTICS id ON table_name_with_hint '(' column_name_list ')' + (WITH (FULLSCAN | SAMPLE DECIMAL (PERCENT | ROWS) | STATS_STREAM) + (',' NORECOMPUTE)? (',' INCREMENTAL EQUAL on_off)? )? ';'? + ; + +update_statistics + : UPDATE (INDEX | ALL)? STATISTICS full_table_name id? (USING DECIMAL VALUES)? + ; + +// https://msdn.microsoft.com/en-us/library/ms174979.aspx +create_table + : CREATE TABLE table_name '(' column_def_table_constraints ','? ')' (LOCK simple_id)? table_options* (ON id | DEFAULT)? (TEXTIMAGE_ON id | DEFAULT)?';'? + ; + +table_options + : WITH ('(' index_option (',' index_option)* ')' | index_option (',' index_option)*) + ; + +// https://msdn.microsoft.com/en-us/library/ms187956.aspx +create_view + : CREATE VIEW simple_name ('(' column_name_list ')')? + (WITH view_attribute (',' view_attribute)*)? + AS select_statement (WITH CHECK OPTION)? ';'? + ; + +view_attribute + : ENCRYPTION | SCHEMABINDING | VIEW_METADATA + ; + +// https://msdn.microsoft.com/en-us/library/ms190273.aspx +alter_table + : ALTER TABLE table_name (SET '(' LOCK_ESCALATION '=' (AUTO | TABLE | DISABLE) ')' + | ADD column_def_table_constraint + | ALTER COLUMN column_definition + | DROP COLUMN id + | DROP CONSTRAINT constraint=id + | WITH CHECK ADD CONSTRAINT constraint=id FOREIGN KEY '(' fk = column_name_list ')' REFERENCES table_name '(' pk = column_name_list')' + | CHECK CONSTRAINT constraint=id + | (ENABLE | DISABLE) TRIGGER id? + | REBUILD table_options) + ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms174269.aspx +alter_database + : ALTER DATABASE (database=id | CURRENT) + (MODIFY NAME '=' new_name=id | COLLATE collation=id | SET database_optionspec (WITH termination)? ) ';'? + ; + +// https://msdn.microsoft.com/en-us/library/bb522682.aspx +// Runtime check. +database_optionspec + : auto_option + | change_tracking_option + | containment_option + | cursor_option + | database_mirroring_option + | date_correlation_optimization_option + | db_encryption_option + | db_state_option + | db_update_option + | db_user_access_option + | delayed_durability_option + | external_access_option + | FILESTREAM database_filestream_option + | hadr_options + | mixed_page_allocation_option + | parameterization_option +// | query_store_options + | recovery_option +// | remote_data_archive_option + | service_broker_option + | snapshot_option + | sql_option + | target_recovery_time_option + | termination + ; + +auto_option: + AUTO_CLOSE on_off + | AUTO_CREATE_STATISTICS OFF | ON ( INCREMENTAL EQUAL ON | OFF ) + | AUTO_SHRINK on_off + | AUTO_UPDATE_STATISTICS on_off + | AUTO_UPDATE_STATISTICS_ASYNC (ON | OFF ) + ; + +change_tracking_option: + CHANGE_TRACKING EQUAL ( OFF | ON (change_tracking_option_list (',' change_tracking_option_list)*)* ) + ; + +change_tracking_option_list: + AUTO_CLEANUP EQUAL on_off + | CHANGE_RETENTION EQUAL ( DAYS | HOURS | MINUTES ) + ; + +containment_option: + CONTAINMENT EQUAL ( NONE | PARTIAL ) + ; + +cursor_option: + CURSOR_CLOSE_ON_COMMIT on_off + | CURSOR_DEFAULT ( LOCAL | GLOBAL ) + ; + + + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-endpoint-transact-sql +alter_endpoint + : ALTER ENDPOINT endpointname=id (AUTHORIZATION login=id)? + ( STATE EQUAL ( state=STARTED | state=STOPPED | state=DISABLED ) )? + AS TCP LR_BRACKET + LISTENER_PORT EQUAL port=DECIMAL + ( COMMA LISTENER_IP EQUAL + (ALL | IPV4_ADDR | IPV6_ADDR) )? + RR_BRACKET + (TSQL + | + FOR SERVICE_BROKER LR_BRACKET + AUTHENTICATION EQUAL + ( WINDOWS ( NTLM |KERBEROS | NEGOTIATE )? (CERTIFICATE cert_name=id)? + | CERTIFICATE cert_name=id WINDOWS? ( NTLM |KERBEROS | NEGOTIATE )? + ) + ( COMMA? ENCRYPTION EQUAL ( DISABLED |SUPPORTED | REQUIRED ) + ( ALGORITHM ( AES | RC4 | AES RC4 | RC4 AES ) )? + )? + + ( COMMA? MESSAGE_FORWARDING EQUAL ( ENABLED | DISABLED ) )? + ( COMMA? MESSAGE_FORWARD_SIZE EQUAL DECIMAL)? + RR_BRACKET + | + FOR DATABASE_MIRRORING LR_BRACKET + AUTHENTICATION EQUAL + ( WINDOWS ( NTLM |KERBEROS | NEGOTIATE )? (CERTIFICATE cert_name=id)? + | CERTIFICATE cert_name=id WINDOWS? ( NTLM |KERBEROS | NEGOTIATE )? + ) + + ( COMMA? ENCRYPTION EQUAL ( DISABLED |SUPPORTED | REQUIRED ) + ( ALGORITHM ( AES | RC4 | AES RC4 | RC4 AES ) )? + )? + + COMMA? ROLE EQUAL ( WITNESS | PARTNER | ALL ) + RR_BRACKET + ) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/create-endpoint-transact-sql +// todo: not implemented + +/* Will visit later +*/ +database_mirroring_option + : mirroring_set_option + ; + +mirroring_set_option + : mirroring_partner partner_option + | mirroring_witness witness_option + ; +mirroring_partner + : PARTNER + ; + +mirroring_witness + : WITNESS + ; + +witness_partner_equal + : EQUAL + ; + + +partner_option + : witness_partner_equal partner_server + | FAILOVER + | FORCE_SERVICE_ALLOW_DATA_LOSS + | OFF + | RESUME + | SAFETY (FULL | OFF ) + | SUSPEND + | TIMEOUT DECIMAL +; + +witness_option + : witness_partner_equal witness_server + | OFF +; + +witness_server + : partner_server + ; + +partner_server + : + partner_server_tcp_prefix host mirroring_host_port_seperator port_number + ; + +mirroring_host_port_seperator + : COLON + ; + +partner_server_tcp_prefix + : TCP COLON DOUBLE_FORWARD_SLASH + ; +port_number + : + port=DECIMAL + ; + +host + : id DOT host + | (id DOT |id) + ; + +date_correlation_optimization_option: + DATE_CORRELATION_OPTIMIZATION on_off + ; + +db_encryption_option: + ENCRYPTION on_off + ; +db_state_option: + ( ONLINE | OFFLINE | EMERGENCY ) + ; + +db_update_option: + READ_ONLY | READ_WRITE + ; + +db_user_access_option: + ( SINGLE_USER | RESTRICTED_USER | MULTI_USER ) + ; +delayed_durability_option: + DELAYED_DURABILITY EQUAL ( DISABLED | ALLOWED | FORCED ) + ; + +external_access_option: + DB_CHAINING on_off + | TRUSTWORTHY on_off + | DEFAULT_LANGUAGE EQUAL ( id | STRING ) + | DEFAULT_FULLTEXT_LANGUAGE EQUAL ( id | STRING ) + | NESTED_TRIGGERS EQUAL ( OFF | ON ) + | TRANSFORM_NOISE_WORDS EQUAL ( OFF | ON ) + | TWO_DIGIT_YEAR_CUTOFF EQUAL DECIMAL + ; + +hadr_options + : HADR + ( ( AVAILABILITY GROUP EQUAL availability_group_name=id | OFF ) |(SUSPEND|RESUME) ) + ; + +mixed_page_allocation_option: + MIXED_PAGE_ALLOCATION ( OFF | ON ) + ; + +parameterization_option: + PARAMETERIZATION ( SIMPLE | FORCED ) + ; + +recovery_option: + RECOVERY ( FULL | BULK_LOGGED | SIMPLE ) + | TORN_PAGE_DETECTION on_off + | PAGE_VERIFY ( CHECKSUM | TORN_PAGE_DETECTION | NONE ) + ; + +service_broker_option: + ENABLE_BROKER + | DISABLE_BROKER + | NEW_BROKER + | ERROR_BROKER_CONVERSATIONS + | HONOR_BROKER_PRIORITY on_off + ; +snapshot_option: + ALLOW_SNAPSHOT_ISOLATION on_off + | READ_COMMITTED_SNAPSHOT (ON | OFF ) + | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = (ON | OFF ) + ; + +sql_option: + ANSI_NULL_DEFAULT on_off + | ANSI_NULLS on_off + | ANSI_PADDING on_off + | ANSI_WARNINGS on_off + | ARITHABORT on_off + | COMPATIBILITY_LEVEL EQUAL DECIMAL + | CONCAT_NULL_YIELDS_NULL on_off + | NUMERIC_ROUNDABORT on_off + | QUOTED_IDENTIFIER on_off + | RECURSIVE_TRIGGERS on_off + ; + +target_recovery_time_option: + TARGET_RECOVERY_TIME EQUAL DECIMAL ( SECONDS | MINUTES ) + ; + +termination: + ROLLBACK AFTER seconds = DECIMAL + | ROLLBACK IMMEDIATE + | NO_WAIT + ; + +// https://msdn.microsoft.com/en-us/library/ms176118.aspx +drop_index + : DROP INDEX (IF EXISTS)? + ( drop_relational_or_xml_or_spatial_index (',' drop_relational_or_xml_or_spatial_index)* + | drop_backward_compatible_index (',' drop_backward_compatible_index)* + ) + ';'? + ; + +drop_relational_or_xml_or_spatial_index + : index_name=id ON full_table_name + ; + +drop_backward_compatible_index + : (owner_name=id '.')? table_or_view_name=id '.' index_name=id + ; + +// https://msdn.microsoft.com/en-us/library/ms174969.aspx +drop_procedure + : DROP proc=(PROC | PROCEDURE) (IF EXISTS)? func_proc_name_schema (',' func_proc_name_schema)* ';'? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-trigger-transact-sql +drop_trigger + : drop_dml_trigger + | drop_ddl_trigger + ; + +drop_dml_trigger + : DROP TRIGGER (IF EXISTS)? simple_name (',' simple_name)* ';'? + ; + +drop_ddl_trigger + : DROP TRIGGER (IF EXISTS)? simple_name (',' simple_name)* + ON (DATABASE | ALL SERVER) ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms190290.aspx +drop_function + : DROP FUNCTION (IF EXISTS)? func_proc_name_schema (',' func_proc_name_schema)* ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms175075.aspx +drop_statistics + : DROP STATISTICS (COMMA? (table_name '.')? name=id)+ ';' + ; + +// https://msdn.microsoft.com/en-us/library/ms173790.aspx +drop_table + : DROP TABLE (IF EXISTS)? table_name ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms173492.aspx +drop_view + : DROP VIEW (IF EXISTS)? simple_name (',' simple_name)* ';'? + ; + +create_type + : CREATE TYPE name = simple_name + (FROM data_type default_value)? + (AS TABLE LR_BRACKET column_def_table_constraints RR_BRACKET)? + ; + +drop_type: + DROP TYPE ( IF EXISTS )? name = simple_name + ; + +rowset_function_limited + : openquery + | opendatasource + ; + +// https://msdn.microsoft.com/en-us/library/ms188427(v=sql.120).aspx +openquery + : OPENQUERY '(' linked_server=id ',' query=STRING ')' + ; + +// https://msdn.microsoft.com/en-us/library/ms179856.aspx +opendatasource + : OPENDATASOURCE '(' provider=STRING ',' init=STRING ')' + '.' (database=id)? '.' (scheme=id)? '.' (table=id) + ; + +// Other statements. + +// https://msdn.microsoft.com/en-us/library/ms188927.aspx +declare_statement + : DECLARE LOCAL_ID AS? table_type_definition ';'? + | DECLARE declare_local (',' declare_local)* ';'? + | DECLARE LOCAL_ID AS? xml_type_definition ';'? + | WITH XMLNAMESPACES '(' xml_namespace_uri=STRING ','? AS id ')' ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms181441(v=sql.120).aspx +cursor_statement + // https://msdn.microsoft.com/en-us/library/ms175035(v=sql.120).aspx + : CLOSE GLOBAL? cursor_name ';'? + // https://msdn.microsoft.com/en-us/library/ms188782(v=sql.120).aspx + | DEALLOCATE GLOBAL? CURSOR? cursor_name ';'? + // https://msdn.microsoft.com/en-us/library/ms180169(v=sql.120).aspx + | declare_cursor + // https://msdn.microsoft.com/en-us/library/ms180152(v=sql.120).aspx + | fetch_cursor + // https://msdn.microsoft.com/en-us/library/ms190500(v=sql.120).aspx + | OPEN GLOBAL? cursor_name ';'? + ; +// https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql +backup_database + : BACKUP DATABASE ( database_name=id ) + (READ_WRITE_FILEGROUPS (COMMA? (FILE|FILEGROUP) EQUAL file_or_filegroup=STRING)* )? + (COMMA? (FILE|FILEGROUP) EQUAL file_or_filegroup=STRING)* + ( TO ( COMMA? logical_device_name=id)+ + | TO ( COMMA? (DISK|TAPE|URL) EQUAL (STRING|id) )+ + ) + + ( (MIRROR TO ( COMMA? logical_device_name=id)+ )+ + | ( MIRROR TO ( COMMA? (DISK|TAPE|URL) EQUAL (STRING|id) )+ )+ + )? + + (WITH ( COMMA? DIFFERENTIAL + | COMMA? COPY_ONLY + | COMMA? (COMPRESSION|NO_COMPRESSION) + | COMMA? DESCRIPTION EQUAL (STRING|id) + | COMMA? NAME EQUAL backup_set_name=id + | COMMA? CREDENTIAL + | COMMA? FILE_SNAPSHOT + | COMMA? (EXPIREDATE EQUAL (STRING|id) | RETAINDAYS EQUAL (DECIMAL|id) ) + | COMMA? (NOINIT|INIT) + | COMMA? (NOSKIP|SKIP_KEYWORD) + | COMMA? (NOFORMAT|FORMAT) + | COMMA? MEDIADESCRIPTION EQUAL (STRING|id) + | COMMA? MEDIANAME EQUAL (medianame=STRING) + | COMMA? BLOCKSIZE EQUAL (DECIMAL|id) + | COMMA? BUFFERCOUNT EQUAL (DECIMAL|id) + | COMMA? MAXTRANSFER EQUAL (DECIMAL|id) + | COMMA? (NO_CHECKSUM|CHECKSUM) + | COMMA? (STOP_ON_ERROR|CONTINUE_AFTER_ERROR) + | COMMA? RESTART + | COMMA? STATS (EQUAL stats_percent=DECIMAL)? + | COMMA? (REWIND|NOREWIND) + | COMMA? (LOAD|NOUNLOAD) + | COMMA? ENCRYPTION LR_BRACKET + ALGORITHM EQUAL + (AES_128 + | AES_192 + | AES_256 + | TRIPLE_DES_3KEY + ) + COMMA + SERVER CERTIFICATE EQUAL + (encryptor_name=id + | SERVER ASYMMETRIC KEY EQUAL encryptor_name=id + ) + )* + )? + + ; + +backup_log + : BACKUP LOG ( database_name=id ) + ( TO ( COMMA? logical_device_name=id)+ + | TO ( COMMA? (DISK|TAPE|URL) EQUAL (STRING|id) )+ + ) + + ( (MIRROR TO ( COMMA? logical_device_name=id)+ )+ + | ( MIRROR TO ( COMMA? (DISK|TAPE|URL) EQUAL (STRING|id) )+ )+ + )? + + (WITH ( COMMA? DIFFERENTIAL + | COMMA? COPY_ONLY + | COMMA? (COMPRESSION|NO_COMPRESSION) + | COMMA? DESCRIPTION EQUAL (STRING|id) + | COMMA? NAME EQUAL backup_set_name=id + | COMMA? CREDENTIAL + | COMMA? FILE_SNAPSHOT + | COMMA? (EXPIREDATE EQUAL (STRING|id) | RETAINDAYS EQUAL (DECIMAL|id) ) + | COMMA? (NOINIT|INIT) + | COMMA? (NOSKIP|SKIP_KEYWORD) + | COMMA? (NOFORMAT|FORMAT) + | COMMA? MEDIADESCRIPTION EQUAL (STRING|id) + | COMMA? MEDIANAME EQUAL (medianame=STRING) + | COMMA? BLOCKSIZE EQUAL (DECIMAL|id) + | COMMA? BUFFERCOUNT EQUAL (DECIMAL|id) + | COMMA? MAXTRANSFER EQUAL (DECIMAL|id) + | COMMA? (NO_CHECKSUM|CHECKSUM) + | COMMA? (STOP_ON_ERROR|CONTINUE_AFTER_ERROR) + | COMMA? RESTART + | COMMA? STATS (EQUAL stats_percent=DECIMAL)? + | COMMA? (REWIND|NOREWIND) + | COMMA? (LOAD|NOUNLOAD) + | COMMA? (NORECOVERY| STANDBY EQUAL undo_file_name=STRING) + | COMMA? NO_TRUNCATE + | COMMA? ENCRYPTION LR_BRACKET + ALGORITHM EQUAL + (AES_128 + | AES_192 + | AES_256 + | TRIPLE_DES_3KEY + ) + COMMA + SERVER CERTIFICATE EQUAL + (encryptor_name=id + | SERVER ASYMMETRIC KEY EQUAL encryptor_name=id + ) + )* + )? + + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-certificate-transact-sql +backup_certificate + : BACKUP CERTIFICATE certname=id TO FILE EQUAL cert_file=STRING + ( WITH PRIVATE KEY + LR_BRACKET + (COMMA? FILE EQUAL private_key_file=STRING + |COMMA? ENCRYPTION BY PASSWORD EQUAL encryption_password=STRING + |COMMA? DECRYPTION BY PASSWORD EQUAL decryption_pasword=STRING + )+ + RR_BRACKET + )? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-master-key-transact-sql +backup_master_key + : BACKUP MASTER KEY TO FILE EQUAL master_key_backup_file=STRING + ENCRYPTION BY PASSWORD EQUAL encryption_password=STRING + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-service-master-key-transact-sql +backup_service_master_key + : BACKUP SERVICE MASTER KEY TO FILE EQUAL service_master_key_backup_file=STRING + ENCRYPTION BY PASSWORD EQUAL encryption_password=STRING + ; + +kill_statement + : KILL (kill_process | kill_query_notification | kill_stats_job) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/kill-transact-sql +kill_process + : (session_id=(DECIMAL|STRING) | UOW) (WITH STATUSONLY)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/kill-query-notification-subscription-transact-sql +kill_query_notification + : QUERY NOTIFICATION SUBSCRIPTION (ALL | subscription_id=DECIMAL) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/kill-stats-job-transact-sql +kill_stats_job + : STATS JOB job_id=DECIMAL + ; + +// https://msdn.microsoft.com/en-us/library/ms188332.aspx +execute_statement + : EXECUTE execute_body + ; + +execute_body + : (return_status=LOCAL_ID '=')? (func_proc_name_server_database_schema | expression) (execute_statement_arg (',' execute_statement_arg)*)? ';'? + | '(' execute_var_string ('+' execute_var_string)* ')' (AS? (LOGIN | USER) '=' STRING)? ';'? + ; + +execute_statement_arg + : (parameter=LOCAL_ID '=')? ((constant_LOCAL_ID | id) (OUTPUT | OUT)? | DEFAULT | NULL) + ; + +execute_var_string + : LOCAL_ID + | STRING + ; + +// https://msdn.microsoft.com/en-us/library/ff848791.aspx +security_statement + // https://msdn.microsoft.com/en-us/library/ms188354.aspx + : execute_clause ';'? + // https://msdn.microsoft.com/en-us/library/ms187965.aspx + | GRANT (ALL PRIVILEGES? | grant_permission ('(' column_name_list ')')?) (ON on_id=table_name)? TO (to_principal+=id) (',' to_principal+=id)* (WITH GRANT OPTION)? (AS as_principal=id)? ';'? + // https://msdn.microsoft.com/en-us/library/ms178632.aspx + | REVERT ('(' WITH COOKIE '=' LOCAL_ID ')')? ';'? + | open_key + | close_key + | create_key + | create_certificate + ; + +create_certificate + : CREATE CERTIFICATE certificate_name=id (AUTHORIZATION user_name=id)? + (FROM existing_keys | generate_new_keys) + (ACTIVE FOR BEGIN DIALOG '=' (ON | OFF))? + ; + +existing_keys + : ASSEMBLY assembly_name=id + | EXECUTABLE? FILE EQUAL path_to_file=STRING (WITH PRIVATE KEY '(' private_key_options ')')? + ; + +private_key_options + : (FILE | BINARY) '=' path=STRING (',' (DECRYPTION | ENCRYPTION) BY PASSWORD '=' password=STRING)? + ; + +generate_new_keys + : (ENCRYPTION BY PASSWORD '=' password=STRING)? + WITH SUBJECT EQUAL certificate_subject_name=STRING (',' date_options)* + ; + +date_options + : (START_DATE | EXPIRY_DATE) EQUAL STRING + ; + +open_key + : OPEN SYMMETRIC KEY key_name=id DECRYPTION BY decryption_mechanism + | OPEN MASTER KEY DECRYPTION BY PASSWORD '=' password=STRING + ; + +close_key + : CLOSE SYMMETRIC KEY key_name=id + | CLOSE ALL SYMMETRIC KEYS + | CLOSE MASTER KEY + ; + +create_key + : CREATE MASTER KEY ENCRYPTION BY PASSWORD '=' password=STRING + | CREATE SYMMETRIC KEY key_name=id + (AUTHORIZATION user_name=id)? + (FROM PROVIDER provider_name=id)? + WITH ((key_options | ENCRYPTION BY encryption_mechanism)','?)+ + ; + +key_options + : KEY_SOURCE EQUAL pass_phrase=STRING + | ALGORITHM EQUAL algorithm + | IDENTITY_VALUE EQUAL identity_phrase=STRING + | PROVIDER_KEY_NAME EQUAL key_name_in_provider=STRING + | CREATION_DISPOSITION EQUAL (CREATE_NEW | OPEN_EXISTING) + ; + +algorithm + : DES + | TRIPLE_DES + | TRIPLE_DES_3KEY + | RC2 + | RC4 + | RC4_128 + | DESX + | AES_128 + | AES_192 + | AES_256 + ; + +encryption_mechanism + : CERTIFICATE certificate_name=id + | ASYMMETRIC KEY asym_key_name=id + | SYMMETRIC KEY decrypting_Key_name=id + | PASSWORD '=' STRING + ; + +decryption_mechanism + : CERTIFICATE certificate_name=id (WITH PASSWORD EQUAL STRING)? + | ASYMMETRIC KEY asym_key_name=id (WITH PASSWORD EQUAL STRING)? + | SYMMETRIC KEY decrypting_Key_name=id + | PASSWORD EQUAL STRING + ; + +grant_permission + : EXECUTE + | VIEW id // DEFINITION + | TAKE id // OWNERSHIP + | CONTROL id? // SERVER + | CREATE (TABLE | VIEW) + | SHOWPLAN + | IMPERSONATE + | SELECT + | REFERENCES + | INSERT + | ALTER (ANY? (id | DATABASE))? + ; + +// https://msdn.microsoft.com/en-us/library/ms190356.aspx +// https://msdn.microsoft.com/en-us/library/ms189484.aspx +set_statement + : SET LOCAL_ID ('.' member_name=id)? '=' expression ';'? + | SET LOCAL_ID assignment_operator expression ';'? + | SET LOCAL_ID '=' + CURSOR declare_set_cursor_common (FOR (READ ONLY | UPDATE (OF column_name_list)?))? ';'? + // https://msdn.microsoft.com/en-us/library/ms189837.aspx + | set_special + ; + +// https://msdn.microsoft.com/en-us/library/ms174377.aspx +transaction_statement + // https://msdn.microsoft.com/en-us/library/ms188386.aspx + : BEGIN DISTRIBUTED (TRAN | TRANSACTION) (id | LOCAL_ID)? ';'? + // https://msdn.microsoft.com/en-us/library/ms188929.aspx + | BEGIN (TRAN | TRANSACTION) ((id | LOCAL_ID) (WITH MARK STRING)?)? ';'? + // https://msdn.microsoft.com/en-us/library/ms190295.aspx + | COMMIT (TRAN | TRANSACTION) ((id | LOCAL_ID) (WITH '(' DELAYED_DURABILITY EQUAL (OFF | ON) ')')?)? ';'? + // https://msdn.microsoft.com/en-us/library/ms178628.aspx + | COMMIT WORK? ';'? + | COMMIT id + | ROLLBACK id + // https://msdn.microsoft.com/en-us/library/ms181299.aspx + | ROLLBACK (TRAN | TRANSACTION) (id | LOCAL_ID)? ';'? + // https://msdn.microsoft.com/en-us/library/ms174973.aspx + | ROLLBACK WORK? ';'? + // https://msdn.microsoft.com/en-us/library/ms188378.aspx + | SAVE (TRAN | TRANSACTION) (id | LOCAL_ID)? ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms188037.aspx +go_statement + : GO (count=DECIMAL)? + ; + +// https://msdn.microsoft.com/en-us/library/ms188366.aspx +use_statement + : USE database=id ';'? + ; + +setuser_statement + : SETUSER user=STRING? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/reconfigure-transact-sql +reconfigure_statement + : RECONFIGURE (WITH OVERRIDE)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/shutdown-transact-sql +shutdown_statement + : SHUTDOWN (WITH NOWAIT)? + ; + +dbcc_clause + : DBCC name=simple_id ('(' expression_list ')')? (WITH dbcc_options)? ';'? + ; + +dbcc_options + : simple_id (',' simple_id)? + ; + +execute_clause + : EXECUTE AS clause=(CALLER | SELF | OWNER | STRING) + ; + +declare_local + : LOCAL_ID AS? data_type ('=' expression)? + ; + +table_type_definition + : TABLE '(' column_def_table_constraints ')' + ; + +xml_type_definition + : XML '(' ( CONTENT | DOCUMENT )? xml_schema_collection ')' + ; + +xml_schema_collection + : ID '.' ID + ; + +column_def_table_constraints + : column_def_table_constraint (','? column_def_table_constraint)* + ; + +column_def_table_constraint + : column_definition + | materialized_column_definition + | table_constraint + ; + +// https://msdn.microsoft.com/en-us/library/ms187742.aspx +column_definition + : id (data_type | AS expression) (COLLATE id)? null_notnull? + ((CONSTRAINT constraint=id)? null_or_default null_or_default? + | IDENTITY ('(' seed=DECIMAL ',' increment=DECIMAL ')')? (NOT FOR REPLICATION)?)? + ROWGUIDCOL? + column_constraint* + ; + +materialized_column_definition + : id (COMPUTE | AS) expression (MATERIALIZED | NOT MATERIALIZED)? + ; + +// https://msdn.microsoft.com/en-us/library/ms186712.aspx +column_constraint + :(CONSTRAINT constraint=id)? + ((PRIMARY KEY | UNIQUE) clustered? index_options? + | CHECK (NOT FOR REPLICATION)? '(' search_condition ')' + | (FOREIGN KEY)? REFERENCES table_name '(' pk = column_name_list')' on_delete? on_update? + | null_notnull) + ; + +// https://msdn.microsoft.com/en-us/library/ms188066.aspx +table_constraint + : (CONSTRAINT constraint=id)? + ((PRIMARY KEY | UNIQUE) clustered? '(' column_name_list_with_order ')' index_options? (ON id)? + | CHECK (NOT FOR REPLICATION)? '(' search_condition ')' + | DEFAULT '('? (STRING | PLUS | function_call | DECIMAL)+ ')'? FOR id + | FOREIGN KEY '(' fk = column_name_list ')' REFERENCES table_name ('(' pk = column_name_list')')? on_delete? on_update?) + ; + +on_delete + : ON DELETE (NO ACTION | CASCADE | SET NULL | SET DEFAULT) + ; + +on_update + : ON UPDATE (NO ACTION | CASCADE | SET NULL | SET DEFAULT) + ; + +index_options + : WITH '(' index_option (',' index_option)* ')' + ; + +// https://msdn.microsoft.com/en-us/library/ms186869.aspx +// Id runtime checking. Id in (PAD_INDEX, FILLFACTOR, IGNORE_DUP_KEY, STATISTICS_NORECOMPUTE, ALLOW_ROW_LOCKS, +// ALLOW_PAGE_LOCKS, SORT_IN_TEMPDB, ONLINE, MAXDOP, DATA_COMPRESSION, ONLINE). +index_option + : simple_id '=' (simple_id | on_off | DECIMAL) + ; + +// https://msdn.microsoft.com/en-us/library/ms180169.aspx +declare_cursor + : DECLARE cursor_name + (CURSOR (declare_set_cursor_common (FOR UPDATE (OF column_name_list)?)?)? + | (SEMI_SENSITIVE | INSENSITIVE)? SCROLL? CURSOR FOR select_statement (FOR (READ ONLY | UPDATE | (OF column_name_list)))? + ) ';'? + ; + +declare_set_cursor_common + : declare_set_cursor_common_partial* + FOR select_statement + ; + +declare_set_cursor_common_partial + : (LOCAL | GLOBAL) + | (FORWARD_ONLY | SCROLL) + | (STATIC | KEYSET | DYNAMIC | FAST_FORWARD) + | (READ_ONLY | SCROLL_LOCKS | OPTIMISTIC) + | TYPE_WARNING + ; + +fetch_cursor + : FETCH ((NEXT | PRIOR | FIRST | LAST | (ABSOLUTE | RELATIVE) expression)? FROM)? + GLOBAL? cursor_name (INTO LOCAL_ID (',' LOCAL_ID)*)? ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms190356.aspx +// Runtime check. +set_special + : SET id (id | constant_LOCAL_ID | on_off) ';'? + // https://msdn.microsoft.com/en-us/library/ms173763.aspx + | SET TRANSACTION ISOLATION LEVEL + (READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SNAPSHOT | SERIALIZABLE | DECIMAL) ';'? + // https://msdn.microsoft.com/en-us/library/ms188059.aspx + | SET IDENTITY_INSERT table_name on_off ';'? + | SET ANSI_NULLS on_off + | SET QUOTED_IDENTIFIER on_off + | SET ANSI_PADDING on_off + | SET ANSI_WARNINGS on_off + | SET modify_method + ; + +constant_LOCAL_ID + : constant + | LOCAL_ID + ; + +// Expression. + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/expressions-transact-sql +// Operator precendence: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/operator-precedence-transact-sql +expression + : primitive_expression + | function_call + | expression COLLATE id + | case_expression + | full_column_name + | bracket_expression + | unary_operator_expression + | expression op=('*' | '/' | '%') expression + | expression op=('+' | '-' | '&' | '^' | '|' | '||') expression + | expression comparison_operator expression + | expression assignment_operator expression + | over_clause + ; + +primitive_expression + : DEFAULT | NULL | LOCAL_ID | constant + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/language-elements/case-transact-sql +case_expression + : CASE caseExpr=expression switch_section+ (ELSE elseExpr=expression)? END + | CASE switch_search_condition_section+ (ELSE elseExpr=expression)? END + ; + +unary_operator_expression + : '~' expression + | op=('+' | '-') expression + ; + +bracket_expression + : '(' expression ')' | '(' subquery ')' + ; + +constant_expression + : NULL + | constant + // system functions: https://msdn.microsoft.com/en-us/library/ms187786.aspx + | function_call + | LOCAL_ID // TODO: remove. + | '(' constant_expression ')' + ; + +subquery + : select_statement + ; + +// https://msdn.microsoft.com/en-us/library/ms175972.aspx +with_expression + : WITH (XMLNAMESPACES ',')? common_table_expression (',' common_table_expression)* + | WITH BLOCKING_HIERARCHY ('(' full_column_name_list ')')? AS '(' select_statement ')' + ; + +common_table_expression + : expression_name=id ('(' column_name_list ')')? AS '(' select_statement ')' + ; + +update_elem + : (full_column_name | LOCAL_ID) ('=' | assignment_operator) expression + | udt_column_name=id '.' method_name=id '(' expression_list ')' + //| full_column_name '.' WRITE (expression, ) + ; + +// https://msdn.microsoft.com/en-us/library/ms173545.aspx +search_condition_list + : search_condition (',' search_condition)* + ; + +search_condition + : search_condition_and (OR search_condition_and)* + ; + +search_condition_and + : search_condition_not (AND search_condition_not)* + ; + +search_condition_not + : NOT? predicate + ; + +predicate + : EXISTS '(' subquery ')' + | expression comparison_operator expression + | expression comparison_operator (ALL | SOME | ANY) '(' subquery ')' + | expression NOT? BETWEEN expression AND expression + | expression NOT? IN '(' (subquery | expression_list) ')' + | expression NOT? LIKE expression (ESCAPE expression)? + | expression IS null_notnull + | '(' search_condition ')' + ; + +// Changed union rule to sql_union to avoid union construct with C++ target. Issue reported by person who generates into C++. This individual reports change causes generated code to work + +query_expression + : (query_specification | '(' query_expression ')') sql_union* + ; + +sql_union + : (UNION ALL? | EXCEPT | INTERSECT) (query_specification | ('(' query_expression ')')) + ; + +// https://msdn.microsoft.com/en-us/library/ms176104.aspx +query_specification + : SELECT (ALL | DISTINCT)? top_clause? + select_list + // https://msdn.microsoft.com/en-us/library/ms188029.aspx + (INTO table_name)? + (FROM table_sources)? + (WHERE where=search_condition)? + // https://msdn.microsoft.com/en-us/library/ms177673.aspx + (GROUP BY (ALL)? group_by_item (',' group_by_item)*)? + (HAVING having=search_condition)? + ; + +// https://msdn.microsoft.com/en-us/library/ms189463.aspx +top_clause + : TOP (top_percent | top_count) (WITH TIES)? + ; + +top_percent + : (REAL | FLOAT) PERCENT + | '(' expression ')' PERCENT + ; + +top_count + : DECIMAL + | '(' expression ')' + ; + +// https://msdn.microsoft.com/en-us/library/ms188385.aspx +order_by_clause + : ORDER BY order_by_expression (',' order_by_expression)* + (OFFSET expression (ROW | ROWS) (FETCH (FIRST | NEXT) expression (ROW | ROWS) ONLY)?)? + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/queries/select-for-clause-transact-sql +for_clause + : FOR BROWSE + | FOR XML (RAW ('(' STRING ')')? | AUTO) xml_common_directives* + (COMMA (XMLDATA | XMLSCHEMA ('(' STRING ')')?))? + (COMMA ELEMENTS (XSINIL | ABSENT))? + | FOR XML EXPLICIT xml_common_directives* + (COMMA XMLDATA)? + | FOR XML PATH ('(' STRING ')')? xml_common_directives* + (COMMA ELEMENTS (XSINIL | ABSENT))? + | FOR JSON (AUTO | PATH) + (COMMA ROOT ('(' STRING ')')?)? + (COMMA INCLUDE_NULL_VALUES)? + (COMMA WITHOUT_ARRAY_WRAPPER)? + ; + +xml_common_directives + : ',' (BINARY_BASE64 | TYPE | ROOT ('(' STRING ')')?) + ; + +order_by_expression + : expression (ASC | DESC)? + ; + +group_by_item + : expression + /*| rollup_spec + | cube_spec + | grouping_sets_spec + | grand_total*/ + ; + +option_clause + // https://msdn.microsoft.com/en-us/library/ms181714.aspx + : OPTION '(' option (',' option)* ')' + ; + +option + : FAST number_rows=DECIMAL + | (HASH | ORDER) GROUP + | (MERGE | HASH | CONCAT) UNION + | (LOOP | MERGE | HASH) JOIN + | EXPAND VIEWS + | FORCE ORDER + | IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX + | KEEP PLAN + | KEEPFIXED PLAN + | MAXDOP number_of_processors=DECIMAL + | MAXRECURSION number_recursion=DECIMAL + | OPTIMIZE FOR '(' optimize_for_arg (',' optimize_for_arg)* ')' + | OPTIMIZE FOR UNKNOWN + | PARAMETERIZATION (SIMPLE | FORCED) + | RECOMPILE + | ROBUST PLAN + | USE PLAN STRING + ; + +optimize_for_arg + : LOCAL_ID (UNKNOWN | '=' (constant | NULL)) + ; + +// https://msdn.microsoft.com/en-us/library/ms176104.aspx +select_list + : select_list_elem (',' select_list_elem)* + ; + +udt_method_arguments + : '(' execute_var_string (',' execute_var_string)* ')' + ; + +// https://docs.microsoft.com/ru-ru/sql/t-sql/queries/select-clause-transact-sql +asterisk + : (table_name '.')? '*' + ; + +column_elem + : ((table_name '.')? (column_name=id | '$' IDENTITY | '$' ROWGUID) | NULL) as_column_alias? + ; + +udt_elem + : udt_column_name=id '.' non_static_attr=id udt_method_arguments as_column_alias? + | udt_column_name=id ':' ':' static_attr=id udt_method_arguments? as_column_alias? + ; + +expression_elem + : column_alias eq='=' expression + | expression as_column_alias? + ; + +select_list_elem + : asterisk + | column_elem + | udt_elem + | expression_elem + ; + +table_sources + : table_source (',' table_source)* + ; + +// https://msdn.microsoft.com/en-us/library/ms177634.aspx +table_source + : table_source_item_joined + | '(' table_source_item_joined ')' + ; + +table_source_item_joined + : table_source_item join_part* + ; + +table_source_item + : table_name_with_hint as_table_alias? + | full_table_name as_table_alias? + | rowset_function as_table_alias? + | derived_table (as_table_alias column_alias_list?)? + | change_table as_table_alias + | function_call (as_table_alias column_alias_list?)? + | LOCAL_ID as_table_alias? + | LOCAL_ID '.' function_call (as_table_alias column_alias_list?)? + | open_xml + | ':' ':' function_call as_table_alias? // Build-in function (old syntax) + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/functions/openxml-transact-sql +open_xml + : OPENXML '(' expression ',' expression (',' expression)? ')' + (WITH '(' schema_declaration ')' )? + ; + +schema_declaration + : column_declaration (',' column_declaration)* + ; + +column_declaration + : ID data_type (STRING)? + ; + +change_table + : CHANGETABLE '(' CHANGES table_name ',' (NULL | DECIMAL | LOCAL_ID) ')' + ; + +// https://msdn.microsoft.com/en-us/library/ms191472.aspx +join_part + // https://msdn.microsoft.com/en-us/library/ms173815(v=sql.120).aspx + : (INNER? | + join_type=(LEFT | RIGHT | FULL) OUTER?) (join_hint=(LOOP | HASH | MERGE | REMOTE))? + JOIN table_source ON search_condition + | CROSS JOIN table_source + | CROSS APPLY table_source + | OUTER APPLY table_source + | PIVOT pivot_clause as_table_alias + | UNPIVOT unpivot_clause as_table_alias + ; + +pivot_clause + : '(' aggregate_windowed_function FOR full_column_name IN column_alias_list ')' + ; + +unpivot_clause + : '(' expression FOR full_column_name IN '(' full_column_name_list ')' ')' + ; + +full_column_name_list + : full_column_name (',' full_column_name)* + ; + +table_name_with_hint + : table_name with_table_hints? + ; + +// https://msdn.microsoft.com/en-us/library/ms190312.aspx +rowset_function + : ( + OPENROWSET LR_BRACKET provider_name = STRING COMMA connectionString = STRING COMMA sql = STRING RR_BRACKET + ) + | ( OPENROWSET '(' BULK data_file=STRING ',' (bulk_option (',' bulk_option)* | id)')' ) + ; + +// runtime check. +bulk_option + : id '=' bulk_option_value=(DECIMAL | STRING) + ; + +derived_table + : subquery + | '(' subquery ')' + | table_value_constructor + | '(' table_value_constructor ')' + ; + +function_call + : // https://msdn.microsoft.com/en-us/library/ms173784.aspx + BINARY_CHECKSUM '(' '*' ')' #BINARY_CHECKSUM + // https://msdn.microsoft.com/en-us/library/hh231076.aspx + // https://msdn.microsoft.com/en-us/library/ms187928.aspx + | CAST '(' expression AS data_type ')' #CAST + | CONVERT '(' convert_data_type=data_type ','convert_expression=expression (',' style=expression)? ')' #CONVERT + // https://msdn.microsoft.com/en-us/library/ms189788.aspx + | CHECKSUM '(' '*' ')' #CHECKSUM + // https://msdn.microsoft.com/en-us/library/ms190349.aspx + | COALESCE '(' expression_list ')' #COALESCE + // https://msdn.microsoft.com/en-us/library/ms188751.aspx + | CURRENT_TIMESTAMP #CURRENT_TIMESTAMP + // https://msdn.microsoft.com/en-us/library/ms176050.aspx + | CURRENT_USER #CURRENT_USER + // https://msdn.microsoft.com/en-us/library/ms186819.aspx + | DATEADD '(' ID ',' expression ',' expression ')' #DATEADD + // https://msdn.microsoft.com/en-us/library/ms189794.aspx + | DATEDIFF '(' ID ',' expression ',' expression ')' #DATEDIFF + // https://msdn.microsoft.com/en-us/library/ms174395.aspx + | DATENAME '(' ID ',' expression ')' #DATENAME + // https://msdn.microsoft.com/en-us/library/ms174420.aspx + | DATEPART '(' ID ',' expression ')' #DATEPART + // https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql + | GETDATE '(' ')' #GETDATE + // https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql + | GETUTCDATE '(' ')' #GETUTCDATE + // https://msdn.microsoft.com/en-us/library/ms189838.aspx + | IDENTITY '(' data_type (',' seed=DECIMAL)? (',' increment=DECIMAL)? ')' #IDENTITY + // https://msdn.microsoft.com/en-us/library/bb839514.aspx + | MIN_ACTIVE_ROWVERSION #MIN_ACTIVE_ROWVERSION + // https://msdn.microsoft.com/en-us/library/ms177562.aspx + | NULLIF '(' expression ',' expression ')' #NULLIF + // https://msdn.microsoft.com/fr-fr/library/ms188043.aspx + | STUFF '(' expression ',' DECIMAL ',' DECIMAL ',' expression ')' #STUFF + // https://msdn.microsoft.com/en-us/library/ms177587.aspx + | SESSION_USER #SESSION_USER + // https://msdn.microsoft.com/en-us/library/ms179930.aspx + | SYSTEM_USER #SYSTEM_USER + // https://msdn.microsoft.com/en-us/library/ms184325.aspx + | ISNULL '(' expression ',' expression ')' #ISNULL + // https://docs.microsoft.com/en-us/sql/t-sql/xml/xml-data-type-methods + | xml_data_type_methods #XML_DATA_TYPE_FUNC + // https://docs.microsoft.com/en-us/sql/t-sql/functions/logical-functions-iif-transact-sql + | IIF '(' search_condition ',' expression ',' expression ')' #IFF + | ranking_windowed_function #RANKING_WINDOWED_FUNC + | aggregate_windowed_function #AGGREGATE_WINDOWED_FUNC + | analytic_windowed_function #ANALYTIC_WINDOWED_FUNC + | scalar_function_name '(' expression_list? ')' #SCALAR_FUNCTION + | STRING_AGG '(' expr=expression ',' separator=expression ')' (WITHIN GROUP '(' order_by_clause ')')? #STRINGAGG + ; + +xml_data_type_methods + : value_method + | query_method + | exist_method + | modify_method + | nodes_method + ; + +value_method + : (LOCAL_ID | ID | EVENTDATA | query_method) '.' VALUE '(' xquery=STRING ',' sqltype=STRING ')' + | (LOCAL_ID | ID | EVENTDATA | query_method) '.' ROW '.' VALUE '(' xquery=STRING ',' sqltype=STRING ')' + | (LOCAL_ID | ID | EVENTDATA | query_method) '.' PARAM_NODE '.' VALUE '(' xquery=STRING ',' sqltype=STRING ')' + ; + +query_method + : (LOCAL_ID | ID | full_table_name) '.' QUERY '(' xquery=STRING ')' + | (LOCAL_ID | ID | full_table_name) '.' ROW '.' QUERY '(' xquery=STRING ')' + ; + +exist_method + : (LOCAL_ID | ID) '.' EXIST '(' xquery=STRING ')' + ; + +modify_method + : (LOCAL_ID | ID) '.' MODIFY '(' xml_dml=STRING ')' + ; + +nodes_method + : (LOCAL_ID | ID) '.' NODES '(' xquery=STRING ')' + ; + + +switch_section + : WHEN expression THEN expression + ; + +switch_search_condition_section + : WHEN search_condition THEN expression + ; + +as_column_alias + : AS? column_alias + ; + +as_table_alias + : AS? table_alias + ; + +table_alias + : id with_table_hints? + ; + +// https://msdn.microsoft.com/en-us/library/ms187373.aspx +with_table_hints + : WITH? '(' table_hint (','? table_hint)* ')' + ; + +// https://msdn.microsoft.com/en-us/library/ms187373.aspx +insert_with_table_hints + : WITH '(' table_hint (','? table_hint)* ')' + ; + +// Id runtime check. Id can be (FORCESCAN, HOLDLOCK, NOLOCK, NOWAIT, PAGLOCK, READCOMMITTED, +// READCOMMITTEDLOCK, READPAST, READUNCOMMITTED, REPEATABLEREAD, ROWLOCK, TABLOCK, TABLOCKX +// UPDLOCK, XLOCK) +table_hint + : NOEXPAND? ( INDEX ('(' index_value (',' index_value)* ')' | index_value (',' index_value)*) + | INDEX '=' index_value + | FORCESEEK ('(' index_value '(' ID (',' ID)* ')' ')')? + | SERIALIZABLE + | SNAPSHOT + | SPATIAL_WINDOW_MAX_CELLS '=' DECIMAL + | ID) + ; + +index_value + : id | DECIMAL + ; + +column_alias_list + : '(' column_alias (',' column_alias)* ')' + ; + +column_alias + : id + | STRING + ; + +table_value_constructor + : VALUES '(' expression_list ')' (',' '(' expression_list ')')* + ; + +expression_list + : expression (',' expression)* + ; + +// https://msdn.microsoft.com/en-us/library/ms189798.aspx +ranking_windowed_function + : (RANK | DENSE_RANK | ROW_NUMBER) '(' ')' over_clause + | NTILE '(' expression ')' over_clause + ; + +// https://msdn.microsoft.com/en-us/library/ms173454.aspx +aggregate_windowed_function + : (AVG | MAX | MIN | SUM | STDEV | STDEVP | VAR | VARP) + '(' all_distinct_expression ')' over_clause? + | (COUNT | COUNT_BIG) + '(' ('*' | all_distinct_expression) ')' over_clause? + | CHECKSUM_AGG '(' all_distinct_expression ')' + | GROUPING '(' expression ')' + | GROUPING_ID '(' expression_list ')' + ; + +// https://docs.microsoft.com/en-us/sql/t-sql/functions/analytic-functions-transact-sql +analytic_windowed_function + : (FIRST_VALUE | LAST_VALUE) '(' expression ')' over_clause + | (LAG | LEAD) '(' expression (',' expression (',' expression)? )? ')' over_clause + ; + +all_distinct_expression + : (ALL | DISTINCT)? expression + ; + +// https://msdn.microsoft.com/en-us/library/ms189461.aspx +over_clause + : OVER '(' (PARTITION BY expression_list)? order_by_clause? row_or_range_clause? ')' + ; + +row_or_range_clause + : (ROWS | RANGE) window_frame_extent + ; + +window_frame_extent + : window_frame_preceding + | BETWEEN window_frame_bound AND window_frame_bound + ; + +window_frame_bound + : window_frame_preceding + | window_frame_following + ; + +window_frame_preceding + : UNBOUNDED PRECEDING + | DECIMAL PRECEDING + | CURRENT ROW + ; + +window_frame_following + : UNBOUNDED FOLLOWING + | DECIMAL FOLLOWING + ; + +create_database_option: + FILESTREAM ( database_filestream_option (',' database_filestream_option)* ) + | DEFAULT_LANGUAGE EQUAL ( id | STRING ) + | DEFAULT_FULLTEXT_LANGUAGE EQUAL ( id | STRING ) + | NESTED_TRIGGERS EQUAL ( OFF | ON ) + | TRANSFORM_NOISE_WORDS EQUAL ( OFF | ON ) + | TWO_DIGIT_YEAR_CUTOFF EQUAL DECIMAL + | DB_CHAINING ( OFF | ON ) + | TRUSTWORTHY ( OFF | ON ) + ; + +database_filestream_option: + LR_BRACKET + ( + ( NON_TRANSACTED_ACCESS EQUAL ( OFF | READ_ONLY | FULL ) ) + | + ( DIRECTORY_NAME EQUAL STRING ) + ) + RR_BRACKET + ; + +database_file_spec: + file_group | file_spec; + +file_group: + FILEGROUP id + ( CONTAINS FILESTREAM )? + ( DEFAULT )? + ( CONTAINS MEMORY_OPTIMIZED_DATA )? + file_spec ( ',' file_spec )* + ; +file_spec + : LR_BRACKET + NAME EQUAL ( id | STRING ) ','? + FILENAME EQUAL file = STRING ','? + ( SIZE EQUAL file_size ','? )? + ( MAXSIZE EQUAL (file_size | UNLIMITED )','? )? + ( FILEGROWTH EQUAL file_size ','? )? + RR_BRACKET + ; + + +// Primitive. +entity_name + : (server=id '.' database=id '.' schema=id '.' + | database=id '.' (schema=id)? '.' + | schema=id '.')? table=id + ; + + +entity_name_for_azure_dw + : schema=id + | schema=id '.' object_name=id + ; + +entity_name_for_parallel_dw + : schema_database=id + | schema=id '.' object_name=id + ; + +full_table_name + : (server=id '.' database=id '.' schema=id '.' + | database=id '.' (schema=id)? '.' + | schema=id '.')? table=id + ; + +table_name + : (database=id '.' (schema=id)? '.' | schema=id '.')? table=id + | (database=id '.' (schema=id)? '.' | schema=id '.')? BLOCKING_HIERARCHY + ; + +simple_name + : (schema=id '.')? name=id + ; + +func_proc_name_schema + : ((schema=id) '.')? procedure=id + ; + +func_proc_name_database_schema + : func_proc_name_schema + | (database=id '.' (schema=id)? '.')? procedure=id + ; + +func_proc_name_server_database_schema + : func_proc_name_database_schema + | (server=id '.' database=id '.' (schema=id)? '.')? procedure=id + ; + +ddl_object + : full_table_name + | LOCAL_ID + ; +/* There are some RESERVED WORDS that can be column names */ +full_column_name + : (table_name '.')? column_name=id + | (table_name '.')? COMPATIBILITY_LEVEL + | (table_name '.')? STATUS + | (table_name '.')? QUOTED_IDENTIFIER + | (table_name '.')? ARITHABORT + | (table_name '.')? ANSI_WARNINGS + | (table_name '.')? ANSI_PADDING + | (table_name '.')? ANSI_NULLS + + ; + +column_name_list_with_order + : id (ASC | DESC)? (',' id (ASC | DESC)?)* + ; + +column_name_list + : id (',' id)* + ; + +cursor_name + : id + | LOCAL_ID + ; + +on_off + : ON + | OFF + ; + +clustered + : CLUSTERED + | NONCLUSTERED + ; + +null_notnull + : NOT? NULL + ; + +null_or_default + :(null_notnull | DEFAULT constant_expression (WITH VALUES)?) + ; + +scalar_function_name + : func_proc_name_server_database_schema + | RIGHT + | LEFT + | BINARY_CHECKSUM + | CHECKSUM + ; + +begin_conversation_timer + : BEGIN CONVERSATION TIMER '(' LOCAL_ID ')' TIMEOUT '=' time ';'? + ; + +begin_conversation_dialog + : BEGIN DIALOG (CONVERSATION)? dialog_handle=LOCAL_ID + FROM SERVICE initiator_service_name=service_name + TO SERVICE target_service_name=service_name (',' service_broker_guid=STRING)? + ON CONTRACT contract_name + (WITH + ((RELATED_CONVERSATION | RELATED_CONVERSATION_GROUP) '=' LOCAL_ID ','?)? + (LIFETIME '=' (DECIMAL | LOCAL_ID) ','?)? + (ENCRYPTION '=' (ON | OFF))? )? + ';'? + ; + +contract_name + : (id | expression) + ; + +service_name + : (id | expression) + ; + +end_conversation + : END CONVERSATION conversation_handle=LOCAL_ID ';'? + (WITH (ERROR '=' faliure_code=(LOCAL_ID | STRING) DESCRIPTION '=' failure_text=(LOCAL_ID | STRING))? CLEANUP? )? + ; + +waitfor_conversation + : WAITFOR? '(' get_conversation ')' (','? TIMEOUT timeout=time)? ';'? + ; + +get_conversation + :GET CONVERSATION GROUP conversation_group_id=(STRING | LOCAL_ID) FROM queue=queue_id ';'? + ; + +queue_id + : (database_name=id '.' schema_name=id '.' name=id) + | id + ; + +send_conversation + : SEND ON CONVERSATION conversation_handle=(STRING | LOCAL_ID) + MESSAGE TYPE message_type_name=expression + ('(' message_body_expression=(STRING | LOCAL_ID) ')' )? + ';'? + ; + +// https://msdn.microsoft.com/en-us/library/ms187752.aspx +// TODO: implement runtime check or add new tokens. +data_type + /*: BIGINT + | BINARY '(' DECIMAL ')' + | BIT + | CHAR '(' DECIMAL ')' + | DATE + | DATETIME + | DATETIME2 + | DATETIMEOFFSET '(' DECIMAL ')' + | DECIMAL '(' DECIMAL ',' DECIMAL ')' + | DOUBLE PRECISION? + | FLOAT + | GEOGRAPHY + | GEOMETRY + | HIERARCHYID + | IMAGE + | INT + | MONEY + | NCHAR '(' DECIMAL ')' + | NTEXT + | NUMERIC '(' DECIMAL ',' DECIMAL ')' + | NVARCHAR '(' DECIMAL | MAX ')' + | REAL + | SMALLDATETIME + | SMALLINT + | SMALLMONEY + | SQL_VARIANT + | TEXT + | TIME '(' DECIMAL ')' + | TIMESTAMP + | TINYINT + | UNIQUEIDENTIFIER + | VARBINARY '(' DECIMAL | MAX ')' + | VARCHAR '(' DECIMAL | MAX ')' + | XML*/ + : id IDENTITY? ('(' (DECIMAL | MAX) (',' DECIMAL)? ')')? + | DOUBLE PRECISION? + | INT + | TINYINT + | SMALLINT + | BIGINT + ; + +default_value + : NULL + | DEFAULT + | constant + ; + +// https://msdn.microsoft.com/en-us/library/ms179899.aspx +constant + : STRING // string, datetime or uniqueidentifier + | BINARY + | sign? DECIMAL + | sign? (REAL | FLOAT) // float or decimal + | sign? dollar='$' (DECIMAL | FLOAT) // money + ; + +sign + : '+' + | '-' + ; + +// https://msdn.microsoft.com/en-us/library/ms175874.aspx +id + : simple_id + | DOUBLE_QUOTE_ID + | SQUARE_BRACKET_ID + ; + +simple_id + : ID + | ABSOLUTE + | ACCENT_SENSITIVITY + | ACTION + | ACTIVATION + | ACTIVE + | ADDRESS + | AES_128 + | AES_192 + | AES_256 + | AFFINITY + | AFTER + | AGGREGATE + | ALGORITHM + | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS + | ALLOW_SNAPSHOT_ISOLATION + | ALLOWED + | ANSI_NULL_DEFAULT + | ANSI_NULLS + | ANSI_PADDING + | ANSI_WARNINGS + | APPLICATION_LOG + | APPLY + | ARITHABORT + | ASSEMBLY + | AUDIT + | AUDIT_GUID + | AUTO + | AUTO_CLEANUP + | AUTO_CLOSE + | AUTO_CREATE_STATISTICS + | AUTO_SHRINK + | AUTO_UPDATE_STATISTICS + | AUTO_UPDATE_STATISTICS_ASYNC + | AVAILABILITY + | AVG + | BACKUP_PRIORITY + | BEGIN_DIALOG + | BIGINT + | BINARY_BASE64 + | BINARY_CHECKSUM + | BINDING + | BLOB_STORAGE + | BROKER + | BROKER_INSTANCE + | BULK_LOGGED + | CALLED + | CALLER + | CAP_CPU_PERCENT + | CAST + | CATALOG + | CATCH + | CHANGE_RETENTION + | CHANGE_TRACKING + | CHECKSUM + | CHECKSUM_AGG + | CLEANUP + | COLLECTION + | COLUMN_MASTER_KEY + | COMMITTED + | COMPATIBILITY_LEVEL + | CONCAT + | CONCAT_NULL_YIELDS_NULL + | CONTENT + | CONTROL + | COOKIE + | COUNT + | COUNT_BIG + | COUNTER + | CPU + | CREATE_NEW + | CREATION_DISPOSITION + | CREDENTIAL + | CRYPTOGRAPHIC + | CURSOR_CLOSE_ON_COMMIT + | CURSOR_DEFAULT + | DATA + | DATA_COMPRESSION + | DATE_CORRELATION_OPTIMIZATION + | DATEADD + | DATEDIFF + | DATENAME + | DATEPART + | DAYS + | DB_CHAINING + | DB_FAILOVER + | DECRYPTION + | DEFAULT_DOUBLE_QUOTE + | DEFAULT_FULLTEXT_LANGUAGE + | DEFAULT_LANGUAGE + | DELAY + | DELAYED_DURABILITY + | DELETED + | DENSE_RANK + | DEPENDENTS + | DES + | DESCRIPTION + | DESX + | DHCP + | DIALOG + | DIRECTORY_NAME + | DISABLE + | DISABLE_BROKER + | DISABLED + | DISK_DRIVE + | DOCUMENT + | DYNAMIC + | EMERGENCY + | EMPTY + | ENABLE + | ENABLE_BROKER + | ENCRYPTED_VALUE + | ENCRYPTION + | ENDPOINT_URL + | ERROR_BROKER_CONVERSATIONS + | EVENTDATA + | EXCLUSIVE + | EXECUTABLE + | EXIST + | EXPAND + | EXPIRY_DATE + | EXPLICIT + | FAIL_OPERATION + | FAILOVER_MODE + | FAILURE + | FAILURE_CONDITION_LEVEL + | FAST + | FAST_FORWARD + | FILEGROUP + | FILEGROWTH + | FILENAME + | FILEPATH + | FILESTREAM + | FILLFACTOR + | FILTER + | FIRST + | FIRST_VALUE + | FOLLOWING + | FORCE + | FORCE_FAILOVER_ALLOW_DATA_LOSS + | FORCED + | FORCESEEK + | FORMAT + | FORWARD_ONLY + | FULLSCAN + | FULLTEXT + | GB + | GETDATE + | GETUTCDATE + | GLOBAL + | GO + | GROUP_MAX_REQUESTS + | GROUPING + | GROUPING_ID + | HADR + | HASH + | HEALTH_CHECK_TIMEOUT + | HIGH + | HONOR_BROKER_PRIORITY + | HOURS + | IDENTITY_VALUE + | IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX + | IMMEDIATE + | IMPERSONATE + | IMPORTANCE + | INCREMENTAL + | INIT + | INITIATOR + | INPUT + | INSENSITIVE + | INSERTED + | INT + | IP + | ISOLATION + | KB + | KEEP + | KEEPFIXED + | KEY + | KEY_SOURCE + | KEYS + | KEYSET + | LAG + | LAST + | LAST_VALUE + | LEAD + | LEVEL + | LIST + | LISTENER + | LISTENER_URL + | LOB_COMPACTION + | LOCAL + | LOCATION + | LOCK + | LOCK_ESCALATION + | LOGIN + | LOOP + | LOW + | MANUAL + | MARK + | MASTER + | MATERIALIZED + | MAX + | MAX_CPU_PERCENT + | MAX_DOP + | MAX_FILES + | MAX_IOPS_PER_VOLUME + | MAX_MEMORY + | MAX_MEMORY_PERCENT + | MAX_PROCESSES + | MAX_QUEUE_READERS + | MAX_ROLLOVER_FILES + | MAXDOP + | MAXRECURSION + | MAXSIZE + | MB + | MEDIUM + | MEMORY_OPTIMIZED_DATA + | MESSAGE + | MIN + | MIN_ACTIVE_ROWVERSION + | MIN_CPU_PERCENT + | MIN_IOPS_PER_VOLUME + | MIN_MEMORY_PERCENT + | MINUTES + | MIRROR_ADDRESS + | MIXED_PAGE_ALLOCATION + | MODE + | MODIFY + | MOVE + | MULTI_USER + | NAME + | NESTED_TRIGGERS + | NEW_ACCOUNT + | NEW_BROKER + | NEW_PASSWORD + | NEXT + | NO + | NO_TRUNCATE + | NO_WAIT + | NOCOUNT + | NODES + | NOEXPAND + | NON_TRANSACTED_ACCESS + | NORECOMPUTE + | NORECOVERY + | NOWAIT + | NTILE + | NUMANODE + | NUMBER + | NUMERIC_ROUNDABORT + | OBJECT + | OFFLINE + | OFFSET + | OFFSETS + | OLD_ACCOUNT + | ONLINE + | ONLY + | OPEN_EXISTING + | OPTIMISTIC + | OPTIMIZE + | OUT + | OUTPUT + | OWNER + | PAGE + | PAGE_VERIFY + | PARAMETERIZATION + | PARTITION + | PARTITIONS + | PARTNER + | PATH + | POISON_MESSAGE_HANDLING + | POOL + | PORT + | PRECEDING + | PRIMARY_ROLE + | PRIOR + | PRIORITY + | PRIORITY_LEVEL + | PRIVATE + | PRIVATE_KEY + | PRIVILEGES + | PROCEDURE_NAME + | PROPERTY + | PROVIDER + | PROVIDER_KEY_NAME + | PUBLIC + | QUERY + | QUEUE + | QUEUE_DELAY + | QUOTED_IDENTIFIER + | R + | RANGE + | RANK + | RAW + | RC2 + | RC4 + | RC4_128 + | READ_COMMITTED_SNAPSHOT + | READ_ONLY + | READ_ONLY_ROUTING_LIST + | READ_WRITE + | READONLY + | REBUILD + | RECEIVE + | RECOMPILE + | RECOVERY + | RECURSIVE_TRIGGERS + | RELATIVE + | REMOTE + | REMOTE_SERVICE_NAME + | REMOVE + | REORGANIZE + | REPEATABLE + | REPLICA + | REQUEST_MAX_CPU_TIME_SEC + | REQUEST_MAX_MEMORY_GRANT_PERCENT + | REQUEST_MEMORY_GRANT_TIMEOUT_SEC + | REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT + | RESERVE_DISK_SPACE + | RESOURCE + | RESOURCE_MANAGER_LOCATION + | RESTRICTED_USER + | RETENTION + | RETURN + | RETURNS + | ROBUST + | ROOT + | ROUTE + | ROW + | ROW_NUMBER + | ROWCOUNT + | ROWGUID + | ROWS + | SAFETY + | SAMPLE + | SCHEMABINDING + | SCOPED + | SCROLL + | SCROLL_LOCKS + | SEARCH + | SECONDARY + | SECONDARY_ONLY + | SECONDARY_ROLE + | SECONDS + | SECRET + | SECURITY + | SECURITY_LOG + | SEEDING_MODE + | SELF + | SEMI_SENSITIVE + | SEND + | SENT + | SEQUENCE + | SERIALIZABLE + | SERVER + | SESSION_TIMEOUT + | SETERROR + | SHARE + | SHOWPLAN + | SID + | SID + | SIGNATURE + | SIMPLE + | SINGLE_USER + | SIZE + | SMALLINT + | SNAPSHOT + | SOURCE + | SPATIAL_WINDOW_MAX_CELLS + | SPLIT + | STANDBY + | START + | START_DATE + | STATE + | STATIC + | STATS_STREAM + | STATUS + | STDEV + | STDEVP + | STOPLIST + | STRING_AGG + | STUFF + | SUBJECT + | SUM + | SUSPEND + | SYMMETRIC + | SYNCHRONOUS_COMMIT + | SYNONYM + | SYSTEM + | TAKE + | TARGET + | TARGET_RECOVERY_TIME + | TB + | TEXTIMAGE_ON + | THROW + | TIES + | TIME + | TIMEOUT + | TIMER + | TINYINT + | TORN_PAGE_DETECTION + | TRANSFORM_NOISE_WORDS + | TRIPLE_DES + | TRIPLE_DES_3KEY + | TRUSTWORTHY + | TRY + | TSQL + | TWO_DIGIT_YEAR_CUTOFF + | TYPE + | TYPE_WARNING + | UNBOUNDED + | UNCOMMITTED + | UNKNOWN + | UNLIMITED + | USING + | VALID_XML + | VALIDATION + | VALUE + | VAR + | VARP + | VIEW_METADATA + | VIEWS + | WAIT + | WELL_FORMED_XML + | WORK + | WORKLOAD + | XML + | XMLNAMESPACES + ; + +// https://msdn.microsoft.com/en-us/library/ms188074.aspx +// Spaces are allowed for comparison operators. +comparison_operator + : '=' | '>' | '<' | '<' '=' | '>' '=' | '<' '>' | '!' '=' | '!' '>' | '!' '<' + ; + +assignment_operator + : '+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '^=' | '|=' + ; + +file_size + : DECIMAL( KB | MB | GB | TB | '%' )? + ; diff --git a/src/grammar/tsql/parser/TSqlLexer.js b/src/grammar/tsql/parser/TSqlLexer.js new file mode 100644 index 0000000..94a3171 --- /dev/null +++ b/src/grammar/tsql/parser/TSqlLexer.js @@ -0,0 +1,8175 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/tsql/TSqlLexer.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4'); + + + +var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", + "\u0002\u034a\u276b\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004", + "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t", + "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", + "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", + "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", + "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", + "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", + "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", + "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", + "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", + "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", + "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", + "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", + "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", + "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", + "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", + "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", + "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", + "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", + "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", + "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", + "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", + "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", + "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", + "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", + "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", + "\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", + "\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", + "\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", + "\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", + "\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", + "\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", + "\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", + "\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", + "\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", + "\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", + "\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", + "\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", + "\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", + "\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", + "\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", + "\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", + "\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", + "\u00c8\t\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t", + "\u00cb\u0004\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004", + "\u00cf\t\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t", + "\u00d2\u0004\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004", + "\u00d6\t\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t", + "\u00d9\u0004\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004", + "\u00dd\t\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t", + "\u00e0\u0004\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004", + "\u00e4\t\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t", + "\u00e7\u0004\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004", + "\u00eb\t\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t", + "\u00ee\u0004\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004", + "\u00f2\t\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t", + "\u00f5\u0004\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004", + "\u00f9\t\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t", + "\u00fc\u0004\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004", + "\u0100\t\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t", + "\u0103\u0004\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004", + "\u0107\t\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t", + "\u010a\u0004\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004", + "\u010e\t\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t", + "\u0111\u0004\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004", + "\u0115\t\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t", + "\u0118\u0004\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004", + "\u011c\t\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t", + "\u011f\u0004\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004", + "\u0123\t\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t", + "\u0126\u0004\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004", + "\u012a\t\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t", + "\u012d\u0004\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004", + "\u0131\t\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t", + "\u0134\u0004\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004", + "\u0138\t\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t", + "\u013b\u0004\u013c\t\u013c\u0004\u013d\t\u013d\u0004\u013e\t\u013e\u0004", + "\u013f\t\u013f\u0004\u0140\t\u0140\u0004\u0141\t\u0141\u0004\u0142\t", + "\u0142\u0004\u0143\t\u0143\u0004\u0144\t\u0144\u0004\u0145\t\u0145\u0004", + "\u0146\t\u0146\u0004\u0147\t\u0147\u0004\u0148\t\u0148\u0004\u0149\t", + "\u0149\u0004\u014a\t\u014a\u0004\u014b\t\u014b\u0004\u014c\t\u014c\u0004", + "\u014d\t\u014d\u0004\u014e\t\u014e\u0004\u014f\t\u014f\u0004\u0150\t", + "\u0150\u0004\u0151\t\u0151\u0004\u0152\t\u0152\u0004\u0153\t\u0153\u0004", + "\u0154\t\u0154\u0004\u0155\t\u0155\u0004\u0156\t\u0156\u0004\u0157\t", + "\u0157\u0004\u0158\t\u0158\u0004\u0159\t\u0159\u0004\u015a\t\u015a\u0004", + "\u015b\t\u015b\u0004\u015c\t\u015c\u0004\u015d\t\u015d\u0004\u015e\t", + "\u015e\u0004\u015f\t\u015f\u0004\u0160\t\u0160\u0004\u0161\t\u0161\u0004", + "\u0162\t\u0162\u0004\u0163\t\u0163\u0004\u0164\t\u0164\u0004\u0165\t", + "\u0165\u0004\u0166\t\u0166\u0004\u0167\t\u0167\u0004\u0168\t\u0168\u0004", + "\u0169\t\u0169\u0004\u016a\t\u016a\u0004\u016b\t\u016b\u0004\u016c\t", + "\u016c\u0004\u016d\t\u016d\u0004\u016e\t\u016e\u0004\u016f\t\u016f\u0004", + "\u0170\t\u0170\u0004\u0171\t\u0171\u0004\u0172\t\u0172\u0004\u0173\t", + "\u0173\u0004\u0174\t\u0174\u0004\u0175\t\u0175\u0004\u0176\t\u0176\u0004", + "\u0177\t\u0177\u0004\u0178\t\u0178\u0004\u0179\t\u0179\u0004\u017a\t", + "\u017a\u0004\u017b\t\u017b\u0004\u017c\t\u017c\u0004\u017d\t\u017d\u0004", + "\u017e\t\u017e\u0004\u017f\t\u017f\u0004\u0180\t\u0180\u0004\u0181\t", + "\u0181\u0004\u0182\t\u0182\u0004\u0183\t\u0183\u0004\u0184\t\u0184\u0004", + "\u0185\t\u0185\u0004\u0186\t\u0186\u0004\u0187\t\u0187\u0004\u0188\t", + "\u0188\u0004\u0189\t\u0189\u0004\u018a\t\u018a\u0004\u018b\t\u018b\u0004", + "\u018c\t\u018c\u0004\u018d\t\u018d\u0004\u018e\t\u018e\u0004\u018f\t", + "\u018f\u0004\u0190\t\u0190\u0004\u0191\t\u0191\u0004\u0192\t\u0192\u0004", + "\u0193\t\u0193\u0004\u0194\t\u0194\u0004\u0195\t\u0195\u0004\u0196\t", + "\u0196\u0004\u0197\t\u0197\u0004\u0198\t\u0198\u0004\u0199\t\u0199\u0004", + "\u019a\t\u019a\u0004\u019b\t\u019b\u0004\u019c\t\u019c\u0004\u019d\t", + "\u019d\u0004\u019e\t\u019e\u0004\u019f\t\u019f\u0004\u01a0\t\u01a0\u0004", + "\u01a1\t\u01a1\u0004\u01a2\t\u01a2\u0004\u01a3\t\u01a3\u0004\u01a4\t", + "\u01a4\u0004\u01a5\t\u01a5\u0004\u01a6\t\u01a6\u0004\u01a7\t\u01a7\u0004", + "\u01a8\t\u01a8\u0004\u01a9\t\u01a9\u0004\u01aa\t\u01aa\u0004\u01ab\t", + "\u01ab\u0004\u01ac\t\u01ac\u0004\u01ad\t\u01ad\u0004\u01ae\t\u01ae\u0004", + "\u01af\t\u01af\u0004\u01b0\t\u01b0\u0004\u01b1\t\u01b1\u0004\u01b2\t", + "\u01b2\u0004\u01b3\t\u01b3\u0004\u01b4\t\u01b4\u0004\u01b5\t\u01b5\u0004", + "\u01b6\t\u01b6\u0004\u01b7\t\u01b7\u0004\u01b8\t\u01b8\u0004\u01b9\t", + "\u01b9\u0004\u01ba\t\u01ba\u0004\u01bb\t\u01bb\u0004\u01bc\t\u01bc\u0004", + "\u01bd\t\u01bd\u0004\u01be\t\u01be\u0004\u01bf\t\u01bf\u0004\u01c0\t", + "\u01c0\u0004\u01c1\t\u01c1\u0004\u01c2\t\u01c2\u0004\u01c3\t\u01c3\u0004", + "\u01c4\t\u01c4\u0004\u01c5\t\u01c5\u0004\u01c6\t\u01c6\u0004\u01c7\t", + "\u01c7\u0004\u01c8\t\u01c8\u0004\u01c9\t\u01c9\u0004\u01ca\t\u01ca\u0004", + "\u01cb\t\u01cb\u0004\u01cc\t\u01cc\u0004\u01cd\t\u01cd\u0004\u01ce\t", + "\u01ce\u0004\u01cf\t\u01cf\u0004\u01d0\t\u01d0\u0004\u01d1\t\u01d1\u0004", + "\u01d2\t\u01d2\u0004\u01d3\t\u01d3\u0004\u01d4\t\u01d4\u0004\u01d5\t", + "\u01d5\u0004\u01d6\t\u01d6\u0004\u01d7\t\u01d7\u0004\u01d8\t\u01d8\u0004", + "\u01d9\t\u01d9\u0004\u01da\t\u01da\u0004\u01db\t\u01db\u0004\u01dc\t", + "\u01dc\u0004\u01dd\t\u01dd\u0004\u01de\t\u01de\u0004\u01df\t\u01df\u0004", + "\u01e0\t\u01e0\u0004\u01e1\t\u01e1\u0004\u01e2\t\u01e2\u0004\u01e3\t", + "\u01e3\u0004\u01e4\t\u01e4\u0004\u01e5\t\u01e5\u0004\u01e6\t\u01e6\u0004", + "\u01e7\t\u01e7\u0004\u01e8\t\u01e8\u0004\u01e9\t\u01e9\u0004\u01ea\t", + "\u01ea\u0004\u01eb\t\u01eb\u0004\u01ec\t\u01ec\u0004\u01ed\t\u01ed\u0004", + "\u01ee\t\u01ee\u0004\u01ef\t\u01ef\u0004\u01f0\t\u01f0\u0004\u01f1\t", + "\u01f1\u0004\u01f2\t\u01f2\u0004\u01f3\t\u01f3\u0004\u01f4\t\u01f4\u0004", + "\u01f5\t\u01f5\u0004\u01f6\t\u01f6\u0004\u01f7\t\u01f7\u0004\u01f8\t", + "\u01f8\u0004\u01f9\t\u01f9\u0004\u01fa\t\u01fa\u0004\u01fb\t\u01fb\u0004", + "\u01fc\t\u01fc\u0004\u01fd\t\u01fd\u0004\u01fe\t\u01fe\u0004\u01ff\t", + "\u01ff\u0004\u0200\t\u0200\u0004\u0201\t\u0201\u0004\u0202\t\u0202\u0004", + "\u0203\t\u0203\u0004\u0204\t\u0204\u0004\u0205\t\u0205\u0004\u0206\t", + "\u0206\u0004\u0207\t\u0207\u0004\u0208\t\u0208\u0004\u0209\t\u0209\u0004", + "\u020a\t\u020a\u0004\u020b\t\u020b\u0004\u020c\t\u020c\u0004\u020d\t", + "\u020d\u0004\u020e\t\u020e\u0004\u020f\t\u020f\u0004\u0210\t\u0210\u0004", + "\u0211\t\u0211\u0004\u0212\t\u0212\u0004\u0213\t\u0213\u0004\u0214\t", + "\u0214\u0004\u0215\t\u0215\u0004\u0216\t\u0216\u0004\u0217\t\u0217\u0004", + "\u0218\t\u0218\u0004\u0219\t\u0219\u0004\u021a\t\u021a\u0004\u021b\t", + "\u021b\u0004\u021c\t\u021c\u0004\u021d\t\u021d\u0004\u021e\t\u021e\u0004", + "\u021f\t\u021f\u0004\u0220\t\u0220\u0004\u0221\t\u0221\u0004\u0222\t", + "\u0222\u0004\u0223\t\u0223\u0004\u0224\t\u0224\u0004\u0225\t\u0225\u0004", + "\u0226\t\u0226\u0004\u0227\t\u0227\u0004\u0228\t\u0228\u0004\u0229\t", + "\u0229\u0004\u022a\t\u022a\u0004\u022b\t\u022b\u0004\u022c\t\u022c\u0004", + "\u022d\t\u022d\u0004\u022e\t\u022e\u0004\u022f\t\u022f\u0004\u0230\t", + "\u0230\u0004\u0231\t\u0231\u0004\u0232\t\u0232\u0004\u0233\t\u0233\u0004", + "\u0234\t\u0234\u0004\u0235\t\u0235\u0004\u0236\t\u0236\u0004\u0237\t", + "\u0237\u0004\u0238\t\u0238\u0004\u0239\t\u0239\u0004\u023a\t\u023a\u0004", + "\u023b\t\u023b\u0004\u023c\t\u023c\u0004\u023d\t\u023d\u0004\u023e\t", + "\u023e\u0004\u023f\t\u023f\u0004\u0240\t\u0240\u0004\u0241\t\u0241\u0004", + "\u0242\t\u0242\u0004\u0243\t\u0243\u0004\u0244\t\u0244\u0004\u0245\t", + "\u0245\u0004\u0246\t\u0246\u0004\u0247\t\u0247\u0004\u0248\t\u0248\u0004", + "\u0249\t\u0249\u0004\u024a\t\u024a\u0004\u024b\t\u024b\u0004\u024c\t", + "\u024c\u0004\u024d\t\u024d\u0004\u024e\t\u024e\u0004\u024f\t\u024f\u0004", + "\u0250\t\u0250\u0004\u0251\t\u0251\u0004\u0252\t\u0252\u0004\u0253\t", + "\u0253\u0004\u0254\t\u0254\u0004\u0255\t\u0255\u0004\u0256\t\u0256\u0004", + "\u0257\t\u0257\u0004\u0258\t\u0258\u0004\u0259\t\u0259\u0004\u025a\t", + "\u025a\u0004\u025b\t\u025b\u0004\u025c\t\u025c\u0004\u025d\t\u025d\u0004", + "\u025e\t\u025e\u0004\u025f\t\u025f\u0004\u0260\t\u0260\u0004\u0261\t", + "\u0261\u0004\u0262\t\u0262\u0004\u0263\t\u0263\u0004\u0264\t\u0264\u0004", + "\u0265\t\u0265\u0004\u0266\t\u0266\u0004\u0267\t\u0267\u0004\u0268\t", + "\u0268\u0004\u0269\t\u0269\u0004\u026a\t\u026a\u0004\u026b\t\u026b\u0004", + "\u026c\t\u026c\u0004\u026d\t\u026d\u0004\u026e\t\u026e\u0004\u026f\t", + "\u026f\u0004\u0270\t\u0270\u0004\u0271\t\u0271\u0004\u0272\t\u0272\u0004", + "\u0273\t\u0273\u0004\u0274\t\u0274\u0004\u0275\t\u0275\u0004\u0276\t", + "\u0276\u0004\u0277\t\u0277\u0004\u0278\t\u0278\u0004\u0279\t\u0279\u0004", + "\u027a\t\u027a\u0004\u027b\t\u027b\u0004\u027c\t\u027c\u0004\u027d\t", + "\u027d\u0004\u027e\t\u027e\u0004\u027f\t\u027f\u0004\u0280\t\u0280\u0004", + "\u0281\t\u0281\u0004\u0282\t\u0282\u0004\u0283\t\u0283\u0004\u0284\t", + "\u0284\u0004\u0285\t\u0285\u0004\u0286\t\u0286\u0004\u0287\t\u0287\u0004", + "\u0288\t\u0288\u0004\u0289\t\u0289\u0004\u028a\t\u028a\u0004\u028b\t", + "\u028b\u0004\u028c\t\u028c\u0004\u028d\t\u028d\u0004\u028e\t\u028e\u0004", + "\u028f\t\u028f\u0004\u0290\t\u0290\u0004\u0291\t\u0291\u0004\u0292\t", + "\u0292\u0004\u0293\t\u0293\u0004\u0294\t\u0294\u0004\u0295\t\u0295\u0004", + "\u0296\t\u0296\u0004\u0297\t\u0297\u0004\u0298\t\u0298\u0004\u0299\t", + "\u0299\u0004\u029a\t\u029a\u0004\u029b\t\u029b\u0004\u029c\t\u029c\u0004", + "\u029d\t\u029d\u0004\u029e\t\u029e\u0004\u029f\t\u029f\u0004\u02a0\t", + "\u02a0\u0004\u02a1\t\u02a1\u0004\u02a2\t\u02a2\u0004\u02a3\t\u02a3\u0004", + "\u02a4\t\u02a4\u0004\u02a5\t\u02a5\u0004\u02a6\t\u02a6\u0004\u02a7\t", + "\u02a7\u0004\u02a8\t\u02a8\u0004\u02a9\t\u02a9\u0004\u02aa\t\u02aa\u0004", + "\u02ab\t\u02ab\u0004\u02ac\t\u02ac\u0004\u02ad\t\u02ad\u0004\u02ae\t", + "\u02ae\u0004\u02af\t\u02af\u0004\u02b0\t\u02b0\u0004\u02b1\t\u02b1\u0004", + "\u02b2\t\u02b2\u0004\u02b3\t\u02b3\u0004\u02b4\t\u02b4\u0004\u02b5\t", + "\u02b5\u0004\u02b6\t\u02b6\u0004\u02b7\t\u02b7\u0004\u02b8\t\u02b8\u0004", + "\u02b9\t\u02b9\u0004\u02ba\t\u02ba\u0004\u02bb\t\u02bb\u0004\u02bc\t", + "\u02bc\u0004\u02bd\t\u02bd\u0004\u02be\t\u02be\u0004\u02bf\t\u02bf\u0004", + "\u02c0\t\u02c0\u0004\u02c1\t\u02c1\u0004\u02c2\t\u02c2\u0004\u02c3\t", + "\u02c3\u0004\u02c4\t\u02c4\u0004\u02c5\t\u02c5\u0004\u02c6\t\u02c6\u0004", + "\u02c7\t\u02c7\u0004\u02c8\t\u02c8\u0004\u02c9\t\u02c9\u0004\u02ca\t", + "\u02ca\u0004\u02cb\t\u02cb\u0004\u02cc\t\u02cc\u0004\u02cd\t\u02cd\u0004", + "\u02ce\t\u02ce\u0004\u02cf\t\u02cf\u0004\u02d0\t\u02d0\u0004\u02d1\t", + "\u02d1\u0004\u02d2\t\u02d2\u0004\u02d3\t\u02d3\u0004\u02d4\t\u02d4\u0004", + "\u02d5\t\u02d5\u0004\u02d6\t\u02d6\u0004\u02d7\t\u02d7\u0004\u02d8\t", + "\u02d8\u0004\u02d9\t\u02d9\u0004\u02da\t\u02da\u0004\u02db\t\u02db\u0004", + "\u02dc\t\u02dc\u0004\u02dd\t\u02dd\u0004\u02de\t\u02de\u0004\u02df\t", + "\u02df\u0004\u02e0\t\u02e0\u0004\u02e1\t\u02e1\u0004\u02e2\t\u02e2\u0004", + "\u02e3\t\u02e3\u0004\u02e4\t\u02e4\u0004\u02e5\t\u02e5\u0004\u02e6\t", + "\u02e6\u0004\u02e7\t\u02e7\u0004\u02e8\t\u02e8\u0004\u02e9\t\u02e9\u0004", + "\u02ea\t\u02ea\u0004\u02eb\t\u02eb\u0004\u02ec\t\u02ec\u0004\u02ed\t", + "\u02ed\u0004\u02ee\t\u02ee\u0004\u02ef\t\u02ef\u0004\u02f0\t\u02f0\u0004", + "\u02f1\t\u02f1\u0004\u02f2\t\u02f2\u0004\u02f3\t\u02f3\u0004\u02f4\t", + "\u02f4\u0004\u02f5\t\u02f5\u0004\u02f6\t\u02f6\u0004\u02f7\t\u02f7\u0004", + "\u02f8\t\u02f8\u0004\u02f9\t\u02f9\u0004\u02fa\t\u02fa\u0004\u02fb\t", + "\u02fb\u0004\u02fc\t\u02fc\u0004\u02fd\t\u02fd\u0004\u02fe\t\u02fe\u0004", + "\u02ff\t\u02ff\u0004\u0300\t\u0300\u0004\u0301\t\u0301\u0004\u0302\t", + "\u0302\u0004\u0303\t\u0303\u0004\u0304\t\u0304\u0004\u0305\t\u0305\u0004", + "\u0306\t\u0306\u0004\u0307\t\u0307\u0004\u0308\t\u0308\u0004\u0309\t", + "\u0309\u0004\u030a\t\u030a\u0004\u030b\t\u030b\u0004\u030c\t\u030c\u0004", + "\u030d\t\u030d\u0004\u030e\t\u030e\u0004\u030f\t\u030f\u0004\u0310\t", + "\u0310\u0004\u0311\t\u0311\u0004\u0312\t\u0312\u0004\u0313\t\u0313\u0004", + "\u0314\t\u0314\u0004\u0315\t\u0315\u0004\u0316\t\u0316\u0004\u0317\t", + "\u0317\u0004\u0318\t\u0318\u0004\u0319\t\u0319\u0004\u031a\t\u031a\u0004", + "\u031b\t\u031b\u0004\u031c\t\u031c\u0004\u031d\t\u031d\u0004\u031e\t", + "\u031e\u0004\u031f\t\u031f\u0004\u0320\t\u0320\u0004\u0321\t\u0321\u0004", + "\u0322\t\u0322\u0004\u0323\t\u0323\u0004\u0324\t\u0324\u0004\u0325\t", + "\u0325\u0004\u0326\t\u0326\u0004\u0327\t\u0327\u0004\u0328\t\u0328\u0004", + "\u0329\t\u0329\u0004\u032a\t\u032a\u0004\u032b\t\u032b\u0004\u032c\t", + "\u032c\u0004\u032d\t\u032d\u0004\u032e\t\u032e\u0004\u032f\t\u032f\u0004", + "\u0330\t\u0330\u0004\u0331\t\u0331\u0004\u0332\t\u0332\u0004\u0333\t", + "\u0333\u0004\u0334\t\u0334\u0004\u0335\t\u0335\u0004\u0336\t\u0336\u0004", + "\u0337\t\u0337\u0004\u0338\t\u0338\u0004\u0339\t\u0339\u0004\u033a\t", + "\u033a\u0004\u033b\t\u033b\u0004\u033c\t\u033c\u0004\u033d\t\u033d\u0004", + "\u033e\t\u033e\u0004\u033f\t\u033f\u0004\u0340\t\u0340\u0004\u0341\t", + "\u0341\u0004\u0342\t\u0342\u0004\u0343\t\u0343\u0004\u0344\t\u0344\u0004", + "\u0345\t\u0345\u0004\u0346\t\u0346\u0004\u0347\t\u0347\u0004\u0348\t", + "\u0348\u0004\u0349\t\u0349\u0004\u034a\t\u034a\u0004\u034b\t\u034b\u0004", + "\u034c\t\u034c\u0004\u034d\t\u034d\u0004\u034e\t\u034e\u0004\u034f\t", + "\u034f\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003", + "\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003", + "\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0003\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", + "\n\u0003\n\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0003\u000b\u0003", + "\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003", + "\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\r\u0003\r\u0003\r\u0003", + "\r\u0003\r\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003", + "\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011\u0003", + "\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", + "\u0011\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003", + "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003", + "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003", + "\u0013\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003", + "\u0019\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003", + "\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003", + "\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001c\u0003\u001c\u0003", + "\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003", + "\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", + "\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003", + "\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003 \u0003", + " \u0003 \u0003 \u0003 \u0003 \u0003!\u0003!\u0003!\u0003!\u0003!\u0003", + "!\u0003!\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003", + "#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003", + "#\u0003#\u0003$\u0003$\u0003$\u0003$\u0003$\u0003%\u0003%\u0003%\u0003", + "&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003\'\u0003\'\u0003\'\u0003\'", + "\u0003\'\u0003\'\u0003\'\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003", + "(\u0003(\u0003)\u0003)\u0003)\u0003)\u0003)\u0003*\u0003*\u0003*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003+\u0003", + "+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003", + "+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003-\u0003", + "-\u0003-\u0003-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003", + ".\u0003.\u0003.\u0003.\u0003.\u0003.\u0003/\u0003/\u0003/\u0003/\u0003", + "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u00030\u0003", + "0\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u0003", + "0\u00030\u00030\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u0003", + "1\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u0003", + "1\u00031\u00031\u00031\u00031\u00031\u00032\u00032\u00032\u00032\u0003", + "2\u00032\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u0003", + "4\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u0003", + "5\u00035\u00035\u00035\u00035\u00035\u00035\u00035\u00035\u00036\u0003", + "6\u00036\u00036\u00036\u00036\u00036\u00036\u00037\u00037\u00037\u0003", + "7\u00037\u00037\u00037\u00038\u00038\u00038\u00038\u00038\u00038\u0003", + "8\u00038\u00038\u00038\u00038\u00038\u00039\u00039\u00039\u00039\u0003", + "9\u00039\u00039\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003", + ":\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003", + ";\u0003;\u0003;\u0003;\u0003;\u0003<\u0003<\u0003<\u0003<\u0003<\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003", + "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003>\u0003>\u0003", + ">\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003", + "?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003", + "?\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003A\u0003", + "A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003B\u0003B\u0003", + "B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003", + "B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003C\u0003", + "C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", + "E\u0003E\u0003E\u0003E\u0003E\u0003F\u0003F\u0003F\u0003F\u0005F\u0958", + "\nF\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003G\u0003", + "G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003", + "L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003M\u0003M\u0003M\u0003M\u0003", + "M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003", + "M\u0003M\u0003M\u0003M\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003", + "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003O\u0003O\u0003O\u0003", + "O\u0003O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003", + "Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003", + "Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003S\u0003", + "S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003T\u0003T\u0003", + "T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003", + "T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003", + "U\u0003U\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", + "V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", + "W\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003Y\u0003", + "Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003", + "Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003Z\u0003", + "Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003", + "Z\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003\\\u0003", + "\\\u0003\\\u0003\\\u0003]\u0003]\u0003]\u0003]\u0003]\u0003^\u0003^", + "\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003", + "^\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003", + "_\u0003_\u0003_\u0003_\u0003`\u0003`\u0003`\u0003`\u0003`\u0003a\u0003", + "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003b\u0003b\u0003", + "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", + "c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003d\u0003d\u0003d\u0003", + "e\u0003e\u0003e\u0003f\u0003f\u0003f\u0003f\u0003f\u0003g\u0003g\u0003", + "g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003", + "h\u0003h\u0003h\u0003h\u0003h\u0003i\u0003i\u0003i\u0003i\u0003i\u0003", + "j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003", + "k\u0003k\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003", + "l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003n\u0003", + "n\u0003n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003o\u0003o\u0003o\u0003", + "o\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003", + "q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003", + "r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003", + "r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003", + "r\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003t\u0003", + "t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003", + "t\u0003t\u0003t\u0003t\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003", + "u\u0003u\u0005u\u0b1c\nu\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003", + "v\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003", + "w\u0003w\u0003x\u0003x\u0003x\u0003x\u0003x\u0003y\u0003y\u0003y\u0003", + "y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003z\u0003z\u0003", + "z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003", + "{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003", + "{\u0003{\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0003", + "|\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003", + "}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003", + "}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003~\u0003~\u0003", + "\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003", + "\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0081\u0003", + "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003", + "\u0081\u0003\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003", + "\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003", + "\u0082\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003\u0084\u0003\u0084\u0003", + "\u0084\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003", + "\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0087\u0003", + "\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003", + "\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0089\u0003\u0089\u0003", + "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003", + "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003", + "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008e\u0003", + "\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008f\u0003\u008f\u0003", + "\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003", + "\u008f\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", + "\u0090\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003", + "\u0092\u0003\u0092\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003", + "\u0093\u0003\u0093\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003", + "\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003", + "\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003", + "\u009a\u0003\u009a\u0003\u009a\u0003\u009b\u0003\u009b\u0003\u009b\u0003", + "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009d\u0003\u009d\u0003\u009d\u0003", + "\u009d\u0003\u009d\u0003\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003", + "\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u00a0\u0003", + "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003", + "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003", + "\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003", + "\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a5\u0005", + "\u00a5\u0cc2\n\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5", + "\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0005\u00a5\u0ccc\n", + "\u00a5\u0003\u00a6\u0005\u00a6\u0ccf\n\u00a6\u0003\u00a6\u0005\u00a6", + "\u0cd2\n\u00a6\u0003\u00a6\u0005\u00a6\u0cd5\n\u00a6\u0003\u00a6\u0005", + "\u00a6\u0cd8\n\u00a6\u0003\u00a6\u0005\u00a6\u0cdb\n\u00a6\u0003\u00a6", + "\u0003\u00a6\u0005\u00a6\u0cdf\n\u00a6\u0003\u00a6\u0005\u00a6\u0ce2", + "\n\u00a6\u0003\u00a6\u0005\u00a6\u0ce5\n\u00a6\u0003\u00a6\u0005\u00a6", + "\u0ce8\n\u00a6\u0003\u00a6\u0003\u00a6\u0005\u00a6\u0cec\n\u00a6\u0003", + "\u00a6\u0005\u00a6\u0cef\n\u00a6\u0003\u00a6\u0005\u00a6\u0cf2\n\u00a6", + "\u0003\u00a6\u0005\u00a6\u0cf5\n\u00a6\u0003\u00a6\u0003\u00a6\u0005", + "\u00a6\u0cf9\n\u00a6\u0003\u00a6\u0005\u00a6\u0cfc\n\u00a6\u0003\u00a6", + "\u0005\u00a6\u0cff\n\u00a6\u0003\u00a6\u0005\u00a6\u0d02\n\u00a6\u0003", + "\u00a6\u0003\u00a6\u0005\u00a6\u0d06\n\u00a6\u0003\u00a6\u0005\u00a6", + "\u0d09\n\u00a6\u0003\u00a6\u0005\u00a6\u0d0c\n\u00a6\u0003\u00a6\u0005", + "\u00a6\u0d0f\n\u00a6\u0003\u00a6\u0003\u00a6\u0005\u00a6\u0d13\n\u00a6", + "\u0003\u00a6\u0005\u00a6\u0d16\n\u00a6\u0003\u00a6\u0005\u00a6\u0d19", + "\n\u00a6\u0003\u00a6\u0005\u00a6\u0d1c\n\u00a6\u0003\u00a6\u0003\u00a6", + "\u0005\u00a6\u0d20\n\u00a6\u0003\u00a6\u0005\u00a6\u0d23\n\u00a6\u0003", + "\u00a6\u0005\u00a6\u0d26\n\u00a6\u0003\u00a6\u0005\u00a6\u0d29\n\u00a6", + "\u0003\u00a6\u0003\u00a6\u0005\u00a6\u0d2d\n\u00a6\u0003\u00a6\u0005", + "\u00a6\u0d30\n\u00a6\u0003\u00a6\u0005\u00a6\u0d33\n\u00a6\u0003\u00a6", + "\u0005\u00a6\u0d36\n\u00a6\u0003\u00a6\u0005\u00a6\u0d39\n\u00a6\u0003", + "\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a9\u0003\u00a9\u0003", + "\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003", + "\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003", + "\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ac\u0003\u00ac\u0003", + "\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003", + "\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003", + "\u00af\u0003\u00af\u0003\u00af\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", + "\u00b0\u0003\u00b0\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", + "\u00b5\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003", + "\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003", + "\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003", + "\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003", + "\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003", + "\u00b8\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003", + "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c4\u0003\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003", + "\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c8\u0003", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003", + "\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003", + "\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003", + "\u00d4\u0003\u00d4\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003", + "\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003", + "\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", + "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", + "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003", + "\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003", + "\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e4\u0003\u00e4\u0003", + "\u00e4\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003", + "\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003", + "\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", + "\u00ea\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003", + "\u00eb\u0003\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ed\u0003", + "\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ee\u0003", + "\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ef\u0003", + "\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003", + "\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003", + "\u00f1\u0003\u00f1\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003", + "\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f3\u0003\u00f3\u0003", + "\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003", + "\u00f3\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003", + "\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", + "\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003", + "\u00f6\u0003\u00f6\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003", + "\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003", + "\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003", + "\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003", + "\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fb\u0003", + "\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003", + "\u00fb\u0003\u00fb\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fd\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00ff\u0003", + "\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003", + "\u00ff\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003", + "\u0100\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0103\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0003\u0106\u0003\u0106\u0003\u0107\u0003\u0107\u0003", + "\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003", + "\u0107\u0003\u0107\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003", + "\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003", + "\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010e\u0003", + "\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003", + "\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0112\u0003\u0112\u0003", + "\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003", + "\u0112\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003", + "\u0113\u0003\u0114\u0003\u0114\u0003\u0114\u0003\u0114\u0003\u0114\u0003", + "\u0114\u0003\u0114\u0003\u0114\u0003\u0115\u0003\u0115\u0003\u0115\u0003", + "\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003", + "\u0117\u0003\u0117\u0003\u0117\u0003\u0118\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u0119\u0003\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0003", + "\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011b\u0003", + "\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003", + "\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003", + "\u011c\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003", + "\u011d\u0003\u011d\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003", + "\u011e\u0003\u011e\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003", + "\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u0120\u0003", + "\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003", + "\u0123\u0003\u0123\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003", + "\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003", + "\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0127\u0003", + "\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0003\u0127\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003", + "\u0128\u0003\u0128\u0003\u0128\u0003\u0129\u0003\u0129\u0003\u0129\u0003", + "\u0129\u0003\u0129\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003", + "\u012a\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003", + "\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003", + "\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012d\u0003\u012d\u0003", + "\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012e\u0003", + "\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0137\u0003\u0137\u0003\u0137\u0003", + "\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003", + "\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0138\u0003\u0138\u0003", + "\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003", + "\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u0139\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013b\u0003", + "\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013d\u0003\u013d\u0003", + "\u013d\u0003\u013d\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003", + "\u013e\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u0140\u0003\u0140\u0003", + "\u0140\u0003\u0140\u0003\u0140\u0003\u0141\u0003\u0141\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003", + "\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014b\u0003\u014b\u0003", + "\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003", + "\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014c\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003", + "\u014e\u0003\u014e\u0003\u014e\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0150\u0003\u0151\u0003\u0151\u0003\u0151\u0003", + "\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003", + "\u0151\u0003\u0151\u0003\u0151\u0003\u0152\u0003\u0152\u0003\u0152\u0003", + "\u0152\u0003\u0152\u0003\u0152\u0003\u0153\u0003\u0153\u0003\u0153\u0003", + "\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003", + "\u0153\u0003\u0153\u0003\u0153\u0003\u0154\u0003\u0154\u0003\u0154\u0003", + "\u0154\u0003\u0154\u0003\u0155\u0003\u0155\u0003\u0155\u0003\u0155\u0003", + "\u0155\u0003\u0155\u0003\u0155\u0003\u0156\u0003\u0156\u0003\u0156\u0003", + "\u0156\u0003\u0157\u0003\u0157\u0003\u0157\u0003\u0157\u0003\u0157\u0003", + "\u0157\u0003\u0157\u0003\u0157\u0003\u0157\u0003\u0158\u0003\u0158\u0003", + "\u0158\u0003\u0158\u0003\u0158\u0003\u0159\u0003\u0159\u0003\u0159\u0003", + "\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015c\u0003\u015c\u0003\u015c\u0003\u015c\u0003", + "\u015c\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003", + "\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003", + "\u015d\u0003\u015e\u0003\u015e\u0003\u015e\u0003\u015e\u0003\u015e\u0003", + "\u015e\u0003\u015e\u0003\u015e\u0003\u015e\u0003\u015f\u0003\u015f\u0003", + "\u015f\u0003\u015f\u0003\u015f\u0003\u015f\u0003\u015f\u0003\u015f\u0003", + "\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003", + "\u0160\u0003\u0160\u0003\u0160\u0003\u0161\u0003\u0161\u0003\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0163\u0003\u0163\u0003\u0163\u0003", + "\u0163\u0003\u0163\u0003\u0163\u0003\u0164\u0003\u0164\u0003\u0164\u0003", + "\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0165\u0003\u0165\u0003", + "\u0165\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0166\u0003", + "\u0166\u0003\u0166\u0003\u0166\u0003\u0166\u0003\u0166\u0003\u0166\u0003", + "\u0166\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003", + "\u0167\u0003\u0167\u0003\u0168\u0003\u0168\u0003\u0168\u0003\u0168\u0003", + "\u0168\u0003\u0168\u0003\u0168\u0003\u0169\u0003\u0169\u0003\u0169\u0003", + "\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003", + "\u0169\u0003\u0169\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016c\u0003\u016c\u0003", + "\u016c\u0003\u016c\u0003\u016c\u0003\u016d\u0003\u016d\u0003\u016d\u0003", + "\u016d\u0003\u016d\u0003\u016e\u0003\u016e\u0003\u016e\u0003\u016e\u0003", + "\u016e\u0003\u016e\u0003\u016e\u0003\u016f\u0003\u016f\u0003\u016f\u0003", + "\u016f\u0003\u016f\u0003\u016f\u0003\u016f\u0003\u016f\u0003\u0170\u0003", + "\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003", + "\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003", + "\u0170\u0003\u0170\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003", + "\u0171\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003", + "\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003", + "\u0173\u0003\u0173\u0003\u0173\u0003\u0173\u0003\u0173\u0003\u0173\u0003", + "\u0173\u0003\u0173\u0003\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003", + "\u0174\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003", + "\u0175\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003", + "\u0176\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0177\u0003", + "\u0177\u0003\u0177\u0003\u0177\u0003\u0178\u0003\u0178\u0003\u0178\u0003", + "\u0178\u0003\u0178\u0003\u0179\u0003\u0179\u0003\u0179\u0003\u0179\u0003", + "\u0179\u0003\u0179\u0003\u0179\u0003\u017a\u0003\u017a\u0003\u017a\u0003", + "\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017b\u0003", + "\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003", + "\u017b\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003", + "\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017d\u0003", + "\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003", + "\u017d\u0003\u017d\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0003\u017f\u0003\u017f\u0003\u017f\u0003", + "\u017f\u0003\u017f\u0003\u017f\u0003\u017f\u0003\u0180\u0003\u0180\u0003", + "\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003", + "\u0180\u0003\u0180\u0003\u0180\u0003\u0181\u0003\u0181\u0003\u0181\u0003", + "\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0003\u0182\u0003\u0182\u0003", + "\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003", + "\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003", + "\u0183\u0003\u0183\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003", + "\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0185\u0003\u0185\u0003", + "\u0185\u0003\u0185\u0003\u0185\u0003\u0185\u0003\u0185\u0003\u0185\u0003", + "\u0186\u0003\u0186\u0003\u0186\u0003\u0186\u0003\u0186\u0003\u0186\u0003", + "\u0186\u0003\u0186\u0003\u0186\u0003\u0187\u0003\u0187\u0003\u0187\u0003", + "\u0187\u0003\u0187\u0003\u0187\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003", + "\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018b\u0003", + "\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003", + "\u018c\u0003\u018c\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0003\u018d\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003", + "\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003", + "\u018e\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003", + "\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003", + "\u018f\u0003\u018f\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003", + "\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003", + "\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0191\u0003\u0191\u0003", + "\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003", + "\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003", + "\u0191\u0003\u0191\u0003\u0192\u0003\u0192\u0003\u0192\u0003\u0192\u0003", + "\u0192\u0003\u0192\u0003\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003", + "\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003", + "\u0193\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0195\u0003\u0195\u0003", + "\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0196\u0003\u0196\u0003", + "\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003", + "\u0196\u0003\u0196\u0003\u0196\u0003\u0197\u0003\u0197\u0003\u0197\u0003", + "\u0197\u0003\u0197\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003", + "\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003", + "\u0198\u0003\u0198\u0003\u0198\u0003\u0199\u0003\u0199\u0003\u0199\u0003", + "\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003", + "\u0199\u0003\u0199\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019b\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003", + "\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a5\u0003\u01a5\u0003", + "\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003", + "\u01a6\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003", + "\u01a7\u0003\u01a7\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003", + "\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003", + "\u01aa\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ac\u0003", + "\u01ac\u0003\u01ac\u0003\u01ac\u0005\u01ac\u1722\n\u01ac\u0003\u01ac", + "\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ad\u0003\u01ad", + "\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad", + "\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae", + "\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af", + "\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af", + "\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01b0", + "\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0", + "\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0", + "\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b1\u0003\u01b1\u0003\u01b1", + "\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1", + "\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2", + "\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2", + "\u0003\u01b2\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3", + "\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b4\u0003\u01b4\u0003\u01b4", + "\u0003\u01b4\u0003\u01b4\u0003\u01b4\u0003\u01b4\u0003\u01b4\u0003\u01b4", + "\u0003\u01b4\u0003\u01b4\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5", + "\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5", + "\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5", + "\u0003\u01b5\u0003\u01b5\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7", + "\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7", + "\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7", + "\u0003\u01b7\u0003\u01b7\u0003\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b8", + "\u0003\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b9\u0003\u01b9\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01ba\u0003\u01ba\u0003\u01ba", + "\u0003\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01bb", + "\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb", + "\u0003\u01bb\u0003\u01bc\u0003\u01bc\u0003\u01bc\u0003\u01bc\u0003\u01bc", + "\u0003\u01bc\u0003\u01bc\u0003\u01bd\u0003\u01bd\u0003\u01bd\u0003\u01bd", + "\u0003\u01bd\u0003\u01bd\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01be", + "\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01be", + "\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf", + "\u0003\u01bf\u0003\u01bf\u0003\u01c0\u0003\u01c0\u0003\u01c0\u0003\u01c0", + "\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1", + "\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c2", + "\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2", + "\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2", + "\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2", + "\u0003\u01c2\u0003\u01c2\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3", + "\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3", + "\u0003\u01c3\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4", + "\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4", + "\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c5\u0003\u01c5\u0003\u01c5", + "\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5", + "\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5", + "\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5", + "\u0003\u01c5\u0003\u01c5\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6", + "\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6", + "\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c7", + "\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c9\u0003\u01c9", + "\u0003\u01c9\u0003\u01c9\u0003\u01c9\u0003\u01c9\u0003\u01c9\u0003\u01c9", + "\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003\u01ca", + "\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003\u01cb\u0003\u01cb\u0003\u01cb", + "\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb", + "\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc", + "\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cd\u0003\u01cd\u0003\u01cd", + "\u0003\u01cd\u0003\u01cd\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce", + "\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce", + "\u0003\u01ce\u0003\u01ce\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf", + "\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf", + "\u0003\u01cf\u0003\u01cf\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0", + "\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0", + "\u0003\u01d0\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1", + "\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1", + "\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2", + "\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2", + "\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2", + "\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2", + "\u0003\u01d2\u0003\u01d2\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3", + "\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3", + "\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3", + "\u0003\u01d3\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003\u01d4", + "\u0003\u01d4\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5", + "\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5", + "\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5", + "\u0003\u01d5\u0003\u01d5\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d6", + "\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d7\u0003\u01d7", + "\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7", + "\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d8\u0003\u01d8\u0003\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d9\u0003\u01d9\u0003\u01d9\u0003\u01d9", + "\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da", + "\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da", + "\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01dc", + "\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0003\u01dd\u0003\u01dd", + "\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01de", + "\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de", + "\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de", + "\u0003\u01de\u0003\u01de\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df", + "\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01e0\u0003\u01e0", + "\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0", + "\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0", + "\u0003\u01e0\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1", + "\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e2\u0003\u01e2", + "\u0003\u01e2\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e3", + "\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e4\u0003\u01e4", + "\u0003\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e4", + "\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5", + "\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e6\u0003\u01e6\u0003\u01e6", + "\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6", + "\u0003\u01e6\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7", + "\u0003\u01e7\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003\u01e8", + "\u0003\u01e8\u0003\u01e8\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9", + "\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9", + "\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01ea\u0003\u01ea", + "\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea", + "\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea", + "\u0003\u01ea\u0003\u01ea\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb", + "\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb", + "\u0003\u01eb\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec", + "\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec", + "\u0003\u01ec\u0003\u01ec\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed", + "\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed", + "\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed", + "\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed", + "\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ee", + "\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee", + "\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ef\u0003\u01ef\u0003\u01ef", + "\u0003\u01ef\u0003\u01ef\u0003\u01ef\u0003\u01ef\u0003\u01ef\u0003\u01ef", + "\u0003\u01ef\u0003\u01ef\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003\u01f0", + "\u0003\u01f0\u0003\u01f0\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1", + "\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f2\u0003\u01f2\u0003\u01f2", + "\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2", + "\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f3\u0003\u01f3\u0003\u01f3", + "\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3", + "\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4", + "\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4", + "\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f5\u0003\u01f5\u0003\u01f5", + "\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5", + "\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f6", + "\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6", + "\u0003\u01f6\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7", + "\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7", + "\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7", + "\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7", + "\u0003\u01f7\u0003\u01f8\u0003\u01f8\u0003\u01f8\u0003\u01f8\u0003\u01f8", + "\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9", + "\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9", + "\u0003\u01f9\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa", + "\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fb", + "\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb", + "\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fc\u0003\u01fc", + "\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003\u01fc", + "\u0003\u01fc\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd", + "\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd", + "\u0003\u01fe\u0003\u01fe\u0003\u01fe\u0003\u01fe\u0003\u01fe\u0003\u01fe", + "\u0003\u01fe\u0003\u01ff\u0003\u01ff\u0003\u01ff\u0003\u01ff\u0003\u01ff", + "\u0003\u01ff\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200", + "\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200", + "\u0003\u0200\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0201", + "\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0202", + "\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0204\u0003\u0204\u0003\u0204\u0003\u0204\u0003\u0204\u0003\u0204", + "\u0003\u0204\u0003\u0205\u0003\u0205\u0003\u0205\u0003\u0205\u0003\u0205", + "\u0003\u0205\u0003\u0205\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206", + "\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206", + "\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0207\u0003\u0207\u0003\u0207", + "\u0003\u0207\u0003\u0207\u0003\u0207\u0003\u0207\u0003\u0207\u0003\u0207", + "\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0208", + "\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0209\u0003\u0209\u0003\u0209", + "\u0003\u020a\u0003\u020a\u0003\u020a\u0003\u020a\u0003\u020a\u0003\u020a", + "\u0003\u020a\u0003\u020a\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b", + "\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b", + "\u0003\u020b\u0003\u020c\u0003\u020c\u0003\u020c\u0003\u020c\u0003\u020c", + "\u0003\u020c\u0003\u020c\u0003\u020d\u0003\u020d\u0003\u020d\u0003\u020e", + "\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e", + "\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e", + "\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e", + "\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u020f", + "\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u0210\u0003\u0210\u0003\u0210", + "\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0210", + "\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0211\u0003\u0211\u0003\u0211", + "\u0003\u0211\u0003\u0211\u0003\u0212\u0003\u0212\u0003\u0212\u0003\u0212", + "\u0003\u0212\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213", + "\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213", + "\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213", + "\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0214\u0003\u0214", + "\u0003\u0214\u0003\u0214\u0003\u0214\u0003\u0215\u0003\u0215\u0003\u0215", + "\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215", + "\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215", + "\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215", + "\u0003\u0215\u0003\u0216\u0003\u0216\u0003\u0216\u0003\u0216\u0003\u0216", + "\u0003\u0216\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217", + "\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217", + "\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219", + "\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u021a\u0003\u021a", + "\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a", + "\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021b\u0003\u021b", + "\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021b", + "\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021c\u0003\u021c\u0003\u021c", + "\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c", + "\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c", + "\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021d", + "\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d", + "\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021e", + "\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e", + "\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021f\u0003\u021f\u0003\u021f", + "\u0003\u021f\u0003\u021f\u0003\u021f\u0003\u0220\u0003\u0220\u0003\u0220", + "\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0220", + "\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0221\u0003\u0221\u0003\u0221", + "\u0003\u0221\u0003\u0221\u0003\u0221\u0003\u0221\u0003\u0221\u0003\u0221", + "\u0003\u0222\u0003\u0222\u0003\u0222\u0003\u0222\u0003\u0223\u0003\u0223", + "\u0003\u0223\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224", + "\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0225", + "\u0003\u0225\u0003\u0225\u0003\u0225\u0003\u0226\u0003\u0226\u0003\u0226", + "\u0003\u0226\u0003\u0226\u0003\u0227\u0003\u0227\u0003\u0227\u0003\u0228", + "\u0003\u0228\u0003\u0228\u0003\u0228\u0003\u0228\u0003\u0229\u0003\u0229", + "\u0003\u0229\u0003\u0229\u0003\u0229\u0003\u0229\u0003\u0229\u0003\u0229", + "\u0003\u0229\u0003\u0229\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022a", + "\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022a", + "\u0003\u022a\u0003\u022b\u0003\u022b\u0003\u022b\u0003\u022b\u0003\u022b", + "\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c", + "\u0003\u022c\u0003\u022d\u0003\u022d\u0003\u022d\u0003\u022d\u0003\u022e", + "\u0003\u022e\u0003\u022e\u0003\u022e\u0003\u022e\u0003\u022f\u0003\u022f", + "\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u022f", + "\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u0230\u0003\u0230\u0003\u0230", + "\u0003\u0230\u0003\u0230\u0003\u0231\u0003\u0231\u0003\u0231\u0003\u0231", + "\u0003\u0231\u0003\u0231\u0003\u0232\u0003\u0232\u0003\u0232\u0003\u0232", + "\u0003\u0232\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233", + "\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0234\u0003\u0234", + "\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234", + "\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0235", + "\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235", + "\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235", + "\u0003\u0235\u0003\u0235\u0003\u0236\u0003\u0236\u0003\u0236\u0003\u0236", + "\u0003\u0236\u0003\u0236\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0237", + "\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0238", + "\u0003\u0238\u0003\u0238\u0003\u0238\u0003\u0238\u0003\u0239\u0003\u0239", + "\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239", + "\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239", + "\u0003\u0239\u0003\u0239\u0003\u023a\u0003\u023a\u0003\u023a\u0003\u023a", + "\u0003\u023a\u0003\u023a\u0003\u023b\u0003\u023b\u0003\u023b\u0003\u023b", + "\u0003\u023b\u0003\u023c\u0003\u023c\u0003\u023c\u0003\u023c\u0003\u023d", + "\u0003\u023d\u0003\u023d\u0003\u023d\u0003\u023d\u0003\u023d\u0003\u023d", + "\u0003\u023e\u0003\u023e\u0003\u023e\u0003\u023e\u0003\u023e\u0003\u023f", + "\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f", + "\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f", + "\u0003\u0240\u0003\u0240\u0003\u0240\u0003\u0240\u0003\u0241\u0003\u0241", + "\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241", + "\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241", + "\u0003\u0241\u0003\u0241\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0242", + "\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0243\u0003\u0243", + "\u0003\u0243\u0003\u0243\u0003\u0243\u0003\u0243\u0003\u0243\u0003\u0243", + "\u0003\u0243\u0003\u0243\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244", + "\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244", + "\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244", + "\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0245\u0003\u0245", + "\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245", + "\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245", + "\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0246", + "\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246", + "\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246", + "\u0003\u0246\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247", + "\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247", + "\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247", + "\u0003\u0247\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248", + "\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248", + "\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248", + "\u0003\u0248\u0003\u0248\u0003\u0249\u0003\u0249\u0003\u0249\u0003\u0249", + "\u0003\u0249\u0003\u0249\u0003\u0249\u0003\u024a\u0003\u024a\u0003\u024a", + "\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a", + "\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024b\u0003\u024b", + "\u0003\u024b\u0003\u024b\u0003\u024b\u0003\u024b\u0003\u024b\u0003\u024b", + "\u0003\u024c\u0003\u024c\u0003\u024c\u0003\u024d\u0003\u024d\u0003\u024d", + "\u0003\u024d\u0003\u024d\u0003\u024d\u0003\u024d\u0003\u024e\u0003\u024e", + "\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e", + "\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e", + "\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e", + "\u0003\u024e\u0003\u024e\u0003\u024f\u0003\u024f\u0003\u024f\u0003\u024f", + "\u0003\u024f\u0003\u024f\u0003\u024f\u0003\u024f\u0003\u0250\u0003\u0250", + "\u0003\u0250\u0003\u0250\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251", + "\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251", + "\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251", + "\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251", + "\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252", + "\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252", + "\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0253\u0003\u0253", + "\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253", + "\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253", + "\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253", + "\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254", + "\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254", + "\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254", + "\u0003\u0254\u0003\u0255\u0003\u0255\u0003\u0255\u0003\u0255\u0003\u0255", + "\u0003\u0255\u0003\u0255\u0003\u0255\u0003\u0256\u0003\u0256\u0003\u0256", + "\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256", + "\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256", + "\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257", + "\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257", + "\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257", + "\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0258\u0003\u0258", + "\u0003\u0258\u0003\u0258\u0003\u0258\u0003\u0259\u0003\u0259\u0003\u0259", + "\u0003\u0259\u0003\u0259\u0003\u0259\u0003\u0259\u0003\u025a\u0003\u025a", + "\u0003\u025a\u0003\u025a\u0003\u025a\u0003\u025b\u0003\u025b\u0003\u025b", + "\u0003\u025b\u0003\u025b\u0003\u025b\u0003\u025b\u0003\u025b\u0003\u025b", + "\u0003\u025b\u0003\u025b\u0003\u025c\u0003\u025c\u0003\u025c\u0003\u025c", + "\u0003\u025c\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d", + "\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d", + "\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025e", + "\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e", + "\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025f", + "\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f", + "\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u0260\u0003\u0260", + "\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260", + "\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0261", + "\u0003\u0261\u0003\u0261\u0003\u0261\u0003\u0261\u0003\u0262\u0003\u0262", + "\u0003\u0262\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263", + "\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263", + "\u0003\u0263\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264", + "\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0265\u0003\u0265\u0003\u0265", + "\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0266", + "\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0267", + "\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0267", + "\u0003\u0267\u0003\u0267\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268", + "\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268", + "\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268", + "\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268", + "\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269", + "\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269", + "\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a", + "\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026b", + "\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b", + "\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c", + "\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d", + "\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026e\u0003\u026e\u0003\u026e", + "\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026f\u0003\u026f", + "\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f", + "\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f", + "\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u0270", + "\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270", + "\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271", + "\u0003\u0271\u0003\u0271\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0272", + "\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0273\u0003\u0273\u0003\u0273", + "\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273", + "\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0274\u0003\u0274\u0003\u0274", + "\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0275\u0003\u0275", + "\u0003\u0275\u0003\u0275\u0003\u0275\u0003\u0276\u0003\u0276\u0003\u0276", + "\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276", + "\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0277", + "\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277", + "\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0278\u0003\u0278", + "\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278", + "\u0003\u0278\u0003\u0279\u0003\u0279\u0003\u0279\u0003\u0279\u0003\u027a", + "\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a", + "\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b", + "\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027c\u0003\u027c\u0003\u027c", + "\u0003\u027c\u0003\u027c\u0003\u027c\u0003\u027d\u0003\u027d\u0003\u027d", + "\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d", + "\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027e\u0003\u027e\u0003\u027e", + "\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e", + "\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e", + "\u0003\u027e\u0003\u027e\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u027f", + "\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u027f", + "\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280", + "\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0281", + "\u0003\u0281\u0003\u0281\u0003\u0281\u0003\u0281\u0003\u0281\u0003\u0281", + "\u0003\u0281\u0003\u0282\u0003\u0282\u0003\u0282\u0003\u0282\u0003\u0282", + "\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283", + "\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283", + "\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283", + "\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283", + "\u0003\u0284\u0003\u0284\u0003\u0284\u0003\u0284\u0003\u0284\u0003\u0285", + "\u0003\u0285\u0003\u0285\u0003\u0285\u0003\u0285\u0003\u0286\u0003\u0286", + "\u0003\u0286\u0003\u0286\u0003\u0286\u0003\u0286\u0003\u0286\u0003\u0286", + "\u0003\u0286\u0003\u0286\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287", + "\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287", + "\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0288\u0003\u0288\u0003\u0288", + "\u0003\u0288\u0003\u0288\u0003\u0288\u0003\u0289\u0003\u0289\u0003\u0289", + "\u0003\u0289\u0003\u0289\u0003\u0289\u0003\u0289\u0003\u0289\u0003\u0289", + "\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a", + "\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a", + "\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028b\u0003\u028b\u0003\u028b", + "\u0003\u028b\u0003\u028b\u0003\u028b\u0003\u028b\u0003\u028b\u0003\u028c", + "\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c", + "\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028d", + "\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028d", + "\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028e\u0003\u028e", + "\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e", + "\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e", + "\u0003\u028e\u0003\u028f\u0003\u028f\u0003\u028f\u0003\u028f\u0003\u028f", + "\u0003\u028f\u0003\u028f\u0003\u028f\u0003\u028f\u0003\u0290\u0003\u0290", + "\u0003\u0290\u0003\u0290\u0003\u0290\u0003\u0290\u0003\u0290\u0003\u0290", + "\u0003\u0290\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291", + "\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291", + "\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291", + "\u0003\u0291\u0003\u0292\u0003\u0292\u0003\u0292\u0003\u0292\u0003\u0292", + "\u0003\u0292\u0003\u0293\u0003\u0293\u0003\u0293\u0003\u0293\u0003\u0293", + "\u0003\u0293\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294", + "\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294", + "\u0003\u0294\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295", + "\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295", + "\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295", + "\u0003\u0295\u0003\u0296\u0003\u0296\u0003\u0296\u0003\u0296\u0003\u0296", + "\u0003\u0296\u0003\u0297\u0003\u0297\u0003\u0297\u0003\u0297\u0003\u0297", + "\u0003\u0298\u0003\u0298\u0003\u0298\u0003\u0298\u0003\u0299\u0003\u0299", + "\u0003\u0299\u0003\u0299\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029a", + "\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029b\u0003\u029b", + "\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b", + "\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b", + "\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b", + "\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029c\u0003\u029c", + "\u0003\u029c\u0003\u029c\u0003\u029c\u0003\u029c\u0003\u029c\u0003\u029c", + "\u0003\u029c\u0003\u029c\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d", + "\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d", + "\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d", + "\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d", + "\u0003\u029d\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e", + "\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e", + "\u0003\u029f\u0003\u029f\u0003\u029f\u0003\u029f\u0003\u029f\u0003\u029f", + "\u0003\u029f\u0003\u029f\u0003\u029f\u0003\u02a0\u0003\u02a0\u0003\u02a0", + "\u0003\u02a0\u0003\u02a0\u0003\u02a0\u0003\u02a0\u0003\u02a0\u0003\u02a1", + "\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a1", + "\u0003\u02a1\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2", + "\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a3", + "\u0003\u02a3\u0003\u02a3\u0003\u02a3\u0003\u02a3\u0003\u02a3\u0003\u02a3", + "\u0003\u02a3\u0003\u02a3\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4", + "\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4", + "\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4", + "\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a5\u0003\u02a5\u0003\u02a5", + "\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5", + "\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a6", + "\u0003\u02a6\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7", + "\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7", + "\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7", + "\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a8\u0003\u02a8\u0003\u02a8", + "\u0003\u02a8\u0003\u02a8\u0003\u02a8\u0003\u02a8\u0003\u02a9\u0003\u02a9", + "\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9", + "\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02aa\u0003\u02aa\u0003\u02aa", + "\u0003\u02aa\u0003\u02aa\u0003\u02aa\u0003\u02aa\u0003\u02aa\u0003\u02aa", + "\u0003\u02aa\u0003\u02aa\u0003\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ab", + "\u0003\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ac\u0003\u02ac", + "\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac", + "\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac", + "\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac", + "\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0", + "\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0", + "\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0", + "\u0003\u02b0\u0003\u02b0\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b1", + "\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b2", + "\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2", + "\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2", + "\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2", + "\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2", + "\u0003\u02b2\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3", + "\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3", + "\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b4", + "\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4", + "\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b5\u0003\u02b5\u0003\u02b5", + "\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b6\u0003\u02b6", + "\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b7\u0003\u02b7\u0003\u02b7", + "\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003\u02b8\u0003\u02b8\u0003\u02b8", + "\u0003\u02b8\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9", + "\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9", + "\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba", + "\u0003\u02ba\u0003\u02ba\u0003\u02bb\u0003\u02bb\u0003\u02bb\u0003\u02bb", + "\u0003\u02bb\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc", + "\u0003\u02bc\u0003\u02bc\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd", + "\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd", + "\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02be\u0003\u02be", + "\u0003\u02be\u0003\u02be\u0003\u02be\u0003\u02be\u0003\u02be\u0003\u02bf", + "\u0003\u02bf\u0003\u02bf\u0003\u02bf\u0003\u02bf\u0003\u02bf\u0003\u02bf", + "\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0", + "\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0", + "\u0003\u02c0\u0003\u02c1\u0003\u02c1\u0003\u02c1\u0003\u02c1\u0003\u02c1", + "\u0003\u02c1\u0003\u02c1\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2", + "\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2", + "\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3", + "\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3", + "\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c4\u0003\u02c4\u0003\u02c4", + "\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4", + "\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4", + "\u0003\u02c5\u0003\u02c5\u0003\u02c5\u0003\u02c5\u0003\u02c5\u0003\u02c5", + "\u0003\u02c5\u0003\u02c5\u0003\u02c6\u0003\u02c6\u0003\u02c6\u0003\u02c6", + "\u0003\u02c6\u0003\u02c6\u0003\u02c6\u0003\u02c7\u0003\u02c7\u0003\u02c7", + "\u0003\u02c7\u0003\u02c7\u0003\u02c7\u0003\u02c7\u0003\u02c7\u0003\u02c7", + "\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8", + "\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8", + "\u0003\u02c8\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9", + "\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9", + "\u0003\u02c9\u0003\u02c9\u0003\u02ca\u0003\u02ca\u0003\u02ca\u0003\u02ca", + "\u0003\u02ca\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb", + "\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb", + "\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cc\u0003\u02cc", + "\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cd\u0003\u02cd\u0003\u02cd", + "\u0003\u02cd\u0003\u02cd\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce", + "\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02cf", + "\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf", + "\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf", + "\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0", + "\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0", + "\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d1\u0003\u02d1", + "\u0003\u02d1\u0003\u02d1\u0003\u02d1\u0003\u02d1\u0003\u02d1\u0003\u02d1", + "\u0003\u02d1\u0003\u02d2\u0003\u02d2\u0003\u02d2\u0003\u02d2\u0003\u02d2", + "\u0003\u02d2\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d3", + "\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d4\u0003\u02d4", + "\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4", + "\u0003\u02d4\u0003\u02d4\u0003\u02d5\u0003\u02d5\u0003\u02d5\u0003\u02d5", + "\u0003\u02d5\u0003\u02d5\u0003\u02d5\u0003\u02d6\u0003\u02d6\u0003\u02d6", + "\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d6", + "\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d7\u0003\u02d7\u0003\u02d7", + "\u0003\u02d7\u0003\u02d7\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d8", + "\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d9", + "\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9", + "\u0003\u02d9\u0003\u02d9\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da", + "\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da", + "\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da", + "\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da", + "\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02db\u0003\u02db\u0003\u02db", + "\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02dc", + "\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc", + "\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dd\u0003\u02dd", + "\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02de", + "\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de", + "\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de", + "\u0003\u02df\u0003\u02df\u0003\u02df\u0003\u02df\u0003\u02df\u0003\u02df", + "\u0003\u02df\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0", + "\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0", + "\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1", + "\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2", + "\u0003\u02e2\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3", + "\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e4\u0003\u02e4", + "\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e4", + "\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e5\u0003\u02e5\u0003\u02e5", + "\u0003\u02e5\u0003\u02e5\u0003\u02e5\u0003\u02e6\u0003\u02e6\u0003\u02e6", + "\u0003\u02e6\u0003\u02e6\u0003\u02e6\u0003\u02e6\u0003\u02e6\u0003\u02e7", + "\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7", + "\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7", + "\u0003\u02e8\u0003\u02e8\u0003\u02e8\u0003\u02e8\u0003\u02e9\u0003\u02e9", + "\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9", + "\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea", + "\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02eb\u0003\u02eb", + "\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb", + "\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb", + "\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02ec", + "\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec", + "\u0003\u02ec\u0003\u02ed\u0003\u02ed\u0003\u02ed\u0003\u02ed\u0003\u02ed", + "\u0003\u02ed\u0003\u02ed\u0003\u02ee\u0003\u02ee\u0003\u02ee\u0003\u02ee", + "\u0003\u02ee\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef", + "\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef", + "\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef", + "\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02f0\u0003\u02f0", + "\u0003\u02f0\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1", + "\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1", + "\u0003\u02f1\u0003\u02f1\u0003\u02f2\u0003\u02f2\u0003\u02f2\u0003\u02f2", + "\u0003\u02f2\u0003\u02f2\u0003\u02f3\u0003\u02f3\u0003\u02f3\u0003\u02f3", + "\u0003\u02f3\u0003\u02f4\u0003\u02f4\u0003\u02f4\u0003\u02f4\u0003\u02f4", + "\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f5", + "\u0003\u02f5\u0003\u02f5\u0003\u02f6\u0003\u02f6\u0003\u02f6\u0003\u02f6", + "\u0003\u02f6\u0003\u02f6\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f7", + "\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f8\u0003\u02f8", + "\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8", + "\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8", + "\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8", + "\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9", + "\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9", + "\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9", + "\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02fa\u0003\u02fa", + "\u0003\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fa", + "\u0003\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fb\u0003\u02fb\u0003\u02fb", + "\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb", + "\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb", + "\u0003\u02fb\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc", + "\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc", + "\u0003\u02fc\u0003\u02fd\u0003\u02fd\u0003\u02fd\u0003\u02fd\u0003\u02fe", + "\u0003\u02fe\u0003\u02fe\u0003\u02fe\u0003\u02fe\u0003\u02ff\u0003\u02ff", + "\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff", + "\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff", + "\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff", + "\u0003\u02ff\u0003\u02ff\u0003\u0300\u0003\u0300\u0003\u0300\u0003\u0300", + "\u0003\u0300\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301", + "\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301", + "\u0003\u0301\u0003\u0301\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302", + "\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302", + "\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303", + "\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303", + "\u0003\u0304\u0003\u0304\u0003\u0304\u0003\u0304\u0003\u0304\u0003\u0304", + "\u0003\u0304\u0003\u0304\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305", + "\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305", + "\u0003\u0306\u0003\u0306\u0003\u0306\u0003\u0306\u0003\u0307\u0003\u0307", + "\u0003\u0307\u0003\u0307\u0003\u0307\u0003\u0307\u0003\u0308\u0003\u0308", + "\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308", + "\u0003\u0308\u0003\u0308\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309", + "\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309", + "\u0003\u0309\u0003\u030a\u0003\u030a\u0003\u030a\u0003\u030a\u0003\u030a", + "\u0003\u030a\u0003\u030b\u0003\u030b\u0003\u030b\u0003\u030b\u0003\u030c", + "\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030d\u0003\u030d", + "\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d", + "\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d", + "\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e", + "\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u0310", + "\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310", + "\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310", + "\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0311\u0003\u0311\u0003\u0311", + "\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311", + "\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311", + "\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311", + "\u0003\u0311\u0003\u0312\u0003\u0312\u0003\u0312\u0003\u0312\u0003\u0312", + "\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0313", + "\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0314\u0003\u0314\u0003\u0314", + "\u0003\u0314\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0315", + "\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0316\u0003\u0316\u0003\u0316", + "\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316", + "\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0317", + "\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0317", + "\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0318\u0003\u0318\u0003\u0318", + "\u0003\u0318\u0003\u0318\u0003\u0318\u0003\u0318\u0003\u0319\u0003\u0319", + "\u0003\u0319\u0003\u0319\u0003\u0319\u0003\u0319\u0003\u0319\u0003\u0319", + "\u0003\u031a\u0006\u031a\u2650\n\u031a\r\u031a\u000e\u031a\u2651\u0003", + "\u031a\u0003\u031a\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003", + "\u031b\u0007\u031b\u265b\n\u031b\f\u031b\u000e\u031b\u265e\u000b\u031b", + "\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031c", + "\u0003\u031c\u0003\u031c\u0003\u031c\u0007\u031c\u2669\n\u031c\f\u031c", + "\u000e\u031c\u266c\u000b\u031c\u0003\u031c\u0003\u031c\u0003\u031d\u0003", + "\u031d\u0006\u031d\u2672\n\u031d\r\u031d\u000e\u031d\u2673\u0003\u031d", + "\u0003\u031d\u0003\u031e\u0003\u031e\u0003\u031f\u0003\u031f\u0006\u031f", + "\u267c\n\u031f\r\u031f\u000e\u031f\u267d\u0003\u031f\u0003\u031f\u0003", + "\u0320\u0003\u0320\u0003\u0320\u0006\u0320\u2685\n\u0320\r\u0320\u000e", + "\u0320\u2686\u0003\u0321\u0006\u0321\u268a\n\u0321\r\u0321\u000e\u0321", + "\u268b\u0003\u0322\u0003\u0322\u0005\u0322\u2690\n\u0322\u0003\u0322", + "\u0003\u0322\u0007\u0322\u2694\n\u0322\f\u0322\u000e\u0322\u2697\u000b", + "\u0322\u0003\u0323\u0003\u0323\u0003\u0323\u0006\u0323\u269c\n\u0323", + "\r\u0323\u000e\u0323\u269d\u0003\u0323\u0003\u0323\u0003\u0323\u0003", + "\u0323\u0003\u0323\u0003\u0323\u0006\u0323\u26a6\n\u0323\r\u0323\u000e", + "\u0323\u26a7\u0003\u0323\u0003\u0323\u0006\u0323\u26ac\n\u0323\r\u0323", + "\u000e\u0323\u26ad\u0005\u0323\u26b0\n\u0323\u0003\u0323\u0005\u0323", + "\u26b3\n\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003", + "\u0324\u0003\u0324\u0006\u0324\u26bb\n\u0324\r\u0324\u000e\u0324\u26bc", + "\u0003\u0324\u0003\u0324\u0006\u0324\u26c1\n\u0324\r\u0324\u000e\u0324", + "\u26c2\u0005\u0324\u26c5\n\u0324\u0003\u0324\u0005\u0324\u26c8\n\u0324", + "\u0003\u0324\u0003\u0324\u0003\u0324\u0003\u0324\u0003\u0324\u0003\u0325", + "\u0005\u0325\u26d0\n\u0325\u0003\u0325\u0003\u0325\u0003\u0325\u0003", + "\u0325\u0007\u0325\u26d6\n\u0325\f\u0325\u000e\u0325\u26d9\u000b\u0325", + "\u0003\u0325\u0003\u0325\u0003\u0326\u0003\u0326\u0003\u0326\u0007\u0326", + "\u26e0\n\u0326\f\u0326\u000e\u0326\u26e3\u000b\u0326\u0003\u0327\u0003", + "\u0327\u0003\u0328\u0003\u0328\u0005\u0328\u26e9\n\u0328\u0003\u0328", + "\u0003\u0328\u0005\u0328\u26ed\n\u0328\u0003\u0328\u0006\u0328\u26f0", + "\n\u0328\r\u0328\u000e\u0328\u26f1\u0003\u0329\u0003\u0329\u0003\u032a", + "\u0003\u032a\u0003\u032b\u0003\u032b\u0003\u032c\u0003\u032c\u0003\u032d", + "\u0003\u032d\u0003\u032d\u0003\u032e\u0003\u032e\u0003\u032e\u0003\u032f", + "\u0003\u032f\u0003\u032f\u0003\u0330\u0003\u0330\u0003\u0330\u0003\u0331", + "\u0003\u0331\u0003\u0331\u0003\u0332\u0003\u0332\u0003\u0332\u0003\u0333", + "\u0003\u0333\u0003\u0333\u0003\u0334\u0003\u0334\u0003\u0334\u0003\u0335", + "\u0003\u0335\u0003\u0335\u0003\u0336\u0003\u0336\u0003\u0337\u0003\u0337", + "\u0003\u0338\u0003\u0338\u0003\u0339\u0003\u0339\u0003\u033a\u0003\u033a", + "\u0003\u033b\u0003\u033b\u0003\u033c\u0003\u033c\u0003\u033d\u0003\u033d", + "\u0003\u033e\u0003\u033e\u0003\u033f\u0003\u033f\u0003\u0340\u0003\u0340", + "\u0003\u0341\u0003\u0341\u0003\u0342\u0003\u0342\u0003\u0343\u0003\u0343", + "\u0003\u0344\u0003\u0344\u0003\u0345\u0003\u0345\u0003\u0346\u0003\u0346", + "\u0003\u0347\u0003\u0347\u0003\u0348\u0003\u0348\u0003\u0349\u0003\u0349", + "\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034b", + "\u0005\u034b\u2745\n\u034b\u0003\u034b\u0005\u034b\u2748\n\u034b\u0003", + "\u034b\u0003\u034b\u0003\u034c\u0006\u034c\u274d\n\u034c\r\u034c\u000e", + "\u034c\u274e\u0003\u034c\u0003\u034c\u0006\u034c\u2753\n\u034c\r\u034c", + "\u000e\u034c\u2754\u0003\u034c\u0006\u034c\u2758\n\u034c\r\u034c\u000e", + "\u034c\u2759\u0003\u034c\u0003\u034c\u0003\u034c\u0003\u034c\u0006\u034c", + "\u2760\n\u034c\r\u034c\u000e\u034c\u2761\u0005\u034c\u2764\n\u034c\u0003", + "\u034d\u0003\u034d\u0003\u034e\u0003\u034e\u0003\u034f\u0003\u034f\u0003", + "\u265c\u0002\u0350\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b", + "\u0007\r\b\u000f\t\u0011\n\u0013\u000b\u0015\f\u0017\r\u0019\u000e\u001b", + "\u000f\u001d\u0010\u001f\u0011!\u0012#\u0013%\u0014\'\u0015)\u0016+", + "\u0017-\u0018/\u00191\u001a3\u001b5\u001c7\u001d9\u001e;\u001f= ?!A", + "\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:s;u{?}@\u007f", + "A\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093", + "K\u0095L\u0097M\u0099N\u009bO\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7", + "U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb", + "_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cf", + "i\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3", + "s\u00e5t\u00e7u\u00e9v\u00ebw\u00edx\u00efy\u00f1z\u00f3{\u00f5|\u00f7", + "}\u00f9~\u00fb\u007f\u00fd\u0080\u00ff\u0081\u0101\u0082\u0103\u0083", + "\u0105\u0084\u0107\u0085\u0109\u0086\u010b\u0087\u010d\u0088\u010f\u0089", + "\u0111\u008a\u0113\u008b\u0115\u008c\u0117\u008d\u0119\u008e\u011b\u008f", + "\u011d\u0090\u011f\u0091\u0121\u0092\u0123\u0093\u0125\u0094\u0127\u0095", + "\u0129\u0096\u012b\u0097\u012d\u0098\u012f\u0099\u0131\u009a\u0133\u009b", + "\u0135\u009c\u0137\u009d\u0139\u009e\u013b\u009f\u013d\u00a0\u013f\u00a1", + "\u0141\u00a2\u0143\u00a3\u0145\u00a4\u0147\u00a5\u0149\u00a6\u014b\u00a7", + "\u014d\u00a8\u014f\u00a9\u0151\u00aa\u0153\u00ab\u0155\u00ac\u0157\u00ad", + "\u0159\u00ae\u015b\u00af\u015d\u00b0\u015f\u00b1\u0161\u00b2\u0163\u00b3", + "\u0165\u00b4\u0167\u00b5\u0169\u00b6\u016b\u00b7\u016d\u00b8\u016f\u00b9", + "\u0171\u00ba\u0173\u00bb\u0175\u00bc\u0177\u00bd\u0179\u00be\u017b\u00bf", + "\u017d\u00c0\u017f\u00c1\u0181\u00c2\u0183\u00c3\u0185\u00c4\u0187\u00c5", + "\u0189\u00c6\u018b\u00c7\u018d\u00c8\u018f\u00c9\u0191\u00ca\u0193\u00cb", + "\u0195\u00cc\u0197\u00cd\u0199\u00ce\u019b\u00cf\u019d\u00d0\u019f\u00d1", + "\u01a1\u00d2\u01a3\u00d3\u01a5\u00d4\u01a7\u00d5\u01a9\u00d6\u01ab\u00d7", + "\u01ad\u00d8\u01af\u00d9\u01b1\u00da\u01b3\u00db\u01b5\u00dc\u01b7\u00dd", + "\u01b9\u00de\u01bb\u00df\u01bd\u00e0\u01bf\u00e1\u01c1\u00e2\u01c3\u00e3", + "\u01c5\u00e4\u01c7\u00e5\u01c9\u00e6\u01cb\u00e7\u01cd\u00e8\u01cf\u00e9", + "\u01d1\u00ea\u01d3\u00eb\u01d5\u00ec\u01d7\u00ed\u01d9\u00ee\u01db\u00ef", + "\u01dd\u00f0\u01df\u00f1\u01e1\u00f2\u01e3\u00f3\u01e5\u00f4\u01e7\u00f5", + "\u01e9\u00f6\u01eb\u00f7\u01ed\u00f8\u01ef\u00f9\u01f1\u00fa\u01f3\u00fb", + "\u01f5\u00fc\u01f7\u00fd\u01f9\u00fe\u01fb\u00ff\u01fd\u0100\u01ff\u0101", + "\u0201\u0102\u0203\u0103\u0205\u0104\u0207\u0105\u0209\u0106\u020b\u0107", + "\u020d\u0108\u020f\u0109\u0211\u010a\u0213\u010b\u0215\u010c\u0217\u010d", + "\u0219\u010e\u021b\u010f\u021d\u0110\u021f\u0111\u0221\u0112\u0223\u0113", + "\u0225\u0114\u0227\u0115\u0229\u0116\u022b\u0117\u022d\u0118\u022f\u0119", + "\u0231\u011a\u0233\u011b\u0235\u011c\u0237\u011d\u0239\u011e\u023b\u011f", + "\u023d\u0120\u023f\u0121\u0241\u0122\u0243\u0123\u0245\u0124\u0247\u0125", + "\u0249\u0126\u024b\u0127\u024d\u0128\u024f\u0129\u0251\u012a\u0253\u012b", + "\u0255\u012c\u0257\u012d\u0259\u012e\u025b\u012f\u025d\u0130\u025f\u0131", + "\u0261\u0132\u0263\u0133\u0265\u0134\u0267\u0135\u0269\u0136\u026b\u0137", + "\u026d\u0138\u026f\u0139\u0271\u013a\u0273\u013b\u0275\u013c\u0277\u013d", + "\u0279\u013e\u027b\u013f\u027d\u0140\u027f\u0141\u0281\u0142\u0283\u0143", + "\u0285\u0144\u0287\u0145\u0289\u0146\u028b\u0147\u028d\u0148\u028f\u0149", + "\u0291\u014a\u0293\u014b\u0295\u014c\u0297\u014d\u0299\u014e\u029b\u014f", + "\u029d\u0150\u029f\u0151\u02a1\u0152\u02a3\u0153\u02a5\u0154\u02a7\u0155", + "\u02a9\u0156\u02ab\u0157\u02ad\u0158\u02af\u0159\u02b1\u015a\u02b3\u015b", + "\u02b5\u015c\u02b7\u015d\u02b9\u015e\u02bb\u015f\u02bd\u0160\u02bf\u0161", + "\u02c1\u0162\u02c3\u0163\u02c5\u0164\u02c7\u0165\u02c9\u0166\u02cb\u0167", + "\u02cd\u0168\u02cf\u0169\u02d1\u016a\u02d3\u016b\u02d5\u016c\u02d7\u016d", + "\u02d9\u016e\u02db\u016f\u02dd\u0170\u02df\u0171\u02e1\u0172\u02e3\u0173", + "\u02e5\u0174\u02e7\u0175\u02e9\u0176\u02eb\u0177\u02ed\u0178\u02ef\u0179", + "\u02f1\u017a\u02f3\u017b\u02f5\u017c\u02f7\u017d\u02f9\u017e\u02fb\u017f", + "\u02fd\u0180\u02ff\u0181\u0301\u0182\u0303\u0183\u0305\u0184\u0307\u0185", + "\u0309\u0186\u030b\u0187\u030d\u0188\u030f\u0189\u0311\u018a\u0313\u018b", + "\u0315\u018c\u0317\u018d\u0319\u018e\u031b\u018f\u031d\u0190\u031f\u0191", + "\u0321\u0192\u0323\u0193\u0325\u0194\u0327\u0195\u0329\u0196\u032b\u0197", + "\u032d\u0198\u032f\u0199\u0331\u019a\u0333\u019b\u0335\u019c\u0337\u019d", + "\u0339\u019e\u033b\u019f\u033d\u01a0\u033f\u01a1\u0341\u01a2\u0343\u01a3", + "\u0345\u01a4\u0347\u01a5\u0349\u01a6\u034b\u01a7\u034d\u01a8\u034f\u01a9", + "\u0351\u01aa\u0353\u01ab\u0355\u01ac\u0357\u01ad\u0359\u01ae\u035b\u01af", + "\u035d\u01b0\u035f\u01b1\u0361\u01b2\u0363\u01b3\u0365\u01b4\u0367\u01b5", + "\u0369\u01b6\u036b\u01b7\u036d\u01b8\u036f\u01b9\u0371\u01ba\u0373\u01bb", + "\u0375\u01bc\u0377\u01bd\u0379\u01be\u037b\u01bf\u037d\u01c0\u037f\u01c1", + "\u0381\u01c2\u0383\u01c3\u0385\u01c4\u0387\u01c5\u0389\u01c6\u038b\u01c7", + "\u038d\u01c8\u038f\u01c9\u0391\u01ca\u0393\u01cb\u0395\u01cc\u0397\u01cd", + "\u0399\u01ce\u039b\u01cf\u039d\u01d0\u039f\u01d1\u03a1\u01d2\u03a3\u01d3", + "\u03a5\u01d4\u03a7\u01d5\u03a9\u01d6\u03ab\u01d7\u03ad\u01d8\u03af\u01d9", + "\u03b1\u01da\u03b3\u01db\u03b5\u01dc\u03b7\u01dd\u03b9\u01de\u03bb\u01df", + "\u03bd\u01e0\u03bf\u01e1\u03c1\u01e2\u03c3\u01e3\u03c5\u01e4\u03c7\u01e5", + "\u03c9\u01e6\u03cb\u01e7\u03cd\u01e8\u03cf\u01e9\u03d1\u01ea\u03d3\u01eb", + "\u03d5\u01ec\u03d7\u01ed\u03d9\u01ee\u03db\u01ef\u03dd\u01f0\u03df\u01f1", + "\u03e1\u01f2\u03e3\u01f3\u03e5\u01f4\u03e7\u01f5\u03e9\u01f6\u03eb\u01f7", + "\u03ed\u01f8\u03ef\u01f9\u03f1\u01fa\u03f3\u01fb\u03f5\u01fc\u03f7\u01fd", + "\u03f9\u01fe\u03fb\u01ff\u03fd\u0200\u03ff\u0201\u0401\u0202\u0403\u0203", + "\u0405\u0204\u0407\u0205\u0409\u0206\u040b\u0207\u040d\u0208\u040f\u0209", + "\u0411\u020a\u0413\u020b\u0415\u020c\u0417\u020d\u0419\u020e\u041b\u020f", + "\u041d\u0210\u041f\u0211\u0421\u0212\u0423\u0213\u0425\u0214\u0427\u0215", + "\u0429\u0216\u042b\u0217\u042d\u0218\u042f\u0219\u0431\u021a\u0433\u021b", + "\u0435\u021c\u0437\u021d\u0439\u021e\u043b\u021f\u043d\u0220\u043f\u0221", + "\u0441\u0222\u0443\u0223\u0445\u0224\u0447\u0225\u0449\u0226\u044b\u0227", + "\u044d\u0228\u044f\u0229\u0451\u022a\u0453\u022b\u0455\u022c\u0457\u022d", + "\u0459\u022e\u045b\u022f\u045d\u0230\u045f\u0231\u0461\u0232\u0463\u0233", + "\u0465\u0234\u0467\u0235\u0469\u0236\u046b\u0237\u046d\u0238\u046f\u0239", + "\u0471\u023a\u0473\u023b\u0475\u023c\u0477\u023d\u0479\u023e\u047b\u023f", + "\u047d\u0240\u047f\u0241\u0481\u0242\u0483\u0243\u0485\u0244\u0487\u0245", + "\u0489\u0246\u048b\u0247\u048d\u0248\u048f\u0249\u0491\u024a\u0493\u024b", + "\u0495\u024c\u0497\u024d\u0499\u024e\u049b\u024f\u049d\u0250\u049f\u0251", + "\u04a1\u0252\u04a3\u0253\u04a5\u0254\u04a7\u0255\u04a9\u0256\u04ab\u0257", + "\u04ad\u0258\u04af\u0259\u04b1\u025a\u04b3\u025b\u04b5\u025c\u04b7\u025d", + "\u04b9\u025e\u04bb\u025f\u04bd\u0260\u04bf\u0261\u04c1\u0262\u04c3\u0263", + "\u04c5\u0264\u04c7\u0265\u04c9\u0266\u04cb\u0267\u04cd\u0268\u04cf\u0269", + "\u04d1\u026a\u04d3\u026b\u04d5\u026c\u04d7\u026d\u04d9\u026e\u04db\u026f", + "\u04dd\u0270\u04df\u0271\u04e1\u0272\u04e3\u0273\u04e5\u0274\u04e7\u0275", + "\u04e9\u0276\u04eb\u0277\u04ed\u0278\u04ef\u0279\u04f1\u027a\u04f3\u027b", + "\u04f5\u027c\u04f7\u027d\u04f9\u027e\u04fb\u027f\u04fd\u0280\u04ff\u0281", + "\u0501\u0282\u0503\u0283\u0505\u0284\u0507\u0285\u0509\u0286\u050b\u0287", + "\u050d\u0288\u050f\u0289\u0511\u028a\u0513\u028b\u0515\u028c\u0517\u028d", + "\u0519\u028e\u051b\u028f\u051d\u0290\u051f\u0291\u0521\u0292\u0523\u0293", + "\u0525\u0294\u0527\u0295\u0529\u0296\u052b\u0297\u052d\u0298\u052f\u0299", + "\u0531\u029a\u0533\u029b\u0535\u029c\u0537\u029d\u0539\u029e\u053b\u029f", + "\u053d\u02a0\u053f\u02a1\u0541\u02a2\u0543\u02a3\u0545\u02a4\u0547\u02a5", + "\u0549\u02a6\u054b\u02a7\u054d\u02a8\u054f\u02a9\u0551\u02aa\u0553\u02ab", + "\u0555\u02ac\u0557\u02ad\u0559\u02ae\u055b\u02af\u055d\u02b0\u055f\u02b1", + "\u0561\u02b2\u0563\u02b3\u0565\u02b4\u0567\u02b5\u0569\u02b6\u056b\u02b7", + "\u056d\u02b8\u056f\u02b9\u0571\u02ba\u0573\u02bb\u0575\u02bc\u0577\u02bd", + "\u0579\u02be\u057b\u02bf\u057d\u02c0\u057f\u02c1\u0581\u02c2\u0583\u02c3", + "\u0585\u02c4\u0587\u02c5\u0589\u02c6\u058b\u02c7\u058d\u02c8\u058f\u02c9", + "\u0591\u02ca\u0593\u02cb\u0595\u02cc\u0597\u02cd\u0599\u02ce\u059b\u02cf", + "\u059d\u02d0\u059f\u02d1\u05a1\u02d2\u05a3\u02d3\u05a5\u02d4\u05a7\u02d5", + "\u05a9\u02d6\u05ab\u02d7\u05ad\u02d8\u05af\u02d9\u05b1\u02da\u05b3\u02db", + "\u05b5\u02dc\u05b7\u02dd\u05b9\u02de\u05bb\u02df\u05bd\u02e0\u05bf\u02e1", + "\u05c1\u02e2\u05c3\u02e3\u05c5\u02e4\u05c7\u02e5\u05c9\u02e6\u05cb\u02e7", + "\u05cd\u02e8\u05cf\u02e9\u05d1\u02ea\u05d3\u02eb\u05d5\u02ec\u05d7\u02ed", + "\u05d9\u02ee\u05db\u02ef\u05dd\u02f0\u05df\u02f1\u05e1\u02f2\u05e3\u02f3", + "\u05e5\u02f4\u05e7\u02f5\u05e9\u02f6\u05eb\u02f7\u05ed\u02f8\u05ef\u02f9", + "\u05f1\u02fa\u05f3\u02fb\u05f5\u02fc\u05f7\u02fd\u05f9\u02fe\u05fb\u02ff", + "\u05fd\u0300\u05ff\u0301\u0601\u0302\u0603\u0303\u0605\u0304\u0607\u0305", + "\u0609\u0306\u060b\u0307\u060d\u0308\u060f\u0309\u0611\u030a\u0613\u030b", + "\u0615\u030c\u0617\u030d\u0619\u030e\u061b\u030f\u061d\u0310\u061f\u0311", + "\u0621\u0312\u0623\u0313\u0625\u0314\u0627\u0315\u0629\u0316\u062b\u0317", + "\u062d\u0318\u062f\u0319\u0631\u031a\u0633\u031b\u0635\u031c\u0637\u031d", + "\u0639\u031e\u063b\u031f\u063d\u0320\u063f\u0321\u0641\u0322\u0643\u0323", + "\u0645\u0324\u0647\u0325\u0649\u0326\u064b\u0327\u064d\u0328\u064f\u0329", + "\u0651\u032a\u0653\u032b\u0655\u032c\u0657\u032d\u0659\u032e\u065b\u032f", + "\u065d\u0330\u065f\u0331\u0661\u0332\u0663\u0333\u0665\u0334\u0667\u0335", + "\u0669\u0336\u066b\u0337\u066d\u0338\u066f\u0339\u0671\u033a\u0673\u033b", + "\u0675\u033c\u0677\u033d\u0679\u033e\u067b\u033f\u067d\u0340\u067f\u0341", + "\u0681\u0342\u0683\u0343\u0685\u0344\u0687\u0345\u0689\u0346\u068b\u0347", + "\u068d\u0348\u068f\u0349\u0691\u0002\u0693\u0002\u0695\u034a\u0697\u0002", + "\u0699\u0002\u069b\u0002\u069d\u0002\u0003\u0002\u0011\u0003\u0002)", + ")\u0004\u00022;CH\u0003\u0002<<\u0003\u0002$$\u0003\u0002C\\\u0005\u0002", + "\u000b\f\u000f\u000f\"\"\u0004\u0002\f\f\u000f\u000f\u0003\u0002__\u0006", + "\u0002%&2;B\\aa\u0005\u0002%%C\\aa\u0003\u000200\u0004\u0002--//\u0004", + "\u0002C\\aa\u0003\u00022;\f\u0002\u00c2\u00d8\u00da\u00f8\u00fa\u2001", + "\u2c02\u3001\u3042\u3191\u3302\u3381\u3402\u4001\u4e02\ud801\uf902\ufb01", + "\uff02\ufff2\u0002\u27af\u0002\u0003\u0003\u0002\u0002\u0002\u0002\u0005", + "\u0003\u0002\u0002\u0002\u0002\u0007\u0003\u0002\u0002\u0002\u0002\t", + "\u0003\u0002\u0002\u0002\u0002\u000b\u0003\u0002\u0002\u0002\u0002\r", + "\u0003\u0002\u0002\u0002\u0002\u000f\u0003\u0002\u0002\u0002\u0002\u0011", + "\u0003\u0002\u0002\u0002\u0002\u0013\u0003\u0002\u0002\u0002\u0002\u0015", + "\u0003\u0002\u0002\u0002\u0002\u0017\u0003\u0002\u0002\u0002\u0002\u0019", + "\u0003\u0002\u0002\u0002\u0002\u001b\u0003\u0002\u0002\u0002\u0002\u001d", + "\u0003\u0002\u0002\u0002\u0002\u001f\u0003\u0002\u0002\u0002\u0002!", + "\u0003\u0002\u0002\u0002\u0002#\u0003\u0002\u0002\u0002\u0002%\u0003", + "\u0002\u0002\u0002\u0002\'\u0003\u0002\u0002\u0002\u0002)\u0003\u0002", + "\u0002\u0002\u0002+\u0003\u0002\u0002\u0002\u0002-\u0003\u0002\u0002", + "\u0002\u0002/\u0003\u0002\u0002\u0002\u00021\u0003\u0002\u0002\u0002", + "\u00023\u0003\u0002\u0002\u0002\u00025\u0003\u0002\u0002\u0002\u0002", + "7\u0003\u0002\u0002\u0002\u00029\u0003\u0002\u0002\u0002\u0002;\u0003", + "\u0002\u0002\u0002\u0002=\u0003\u0002\u0002\u0002\u0002?\u0003\u0002", + "\u0002\u0002\u0002A\u0003\u0002\u0002\u0002\u0002C\u0003\u0002\u0002", + "\u0002\u0002E\u0003\u0002\u0002\u0002\u0002G\u0003\u0002\u0002\u0002", + "\u0002I\u0003\u0002\u0002\u0002\u0002K\u0003\u0002\u0002\u0002\u0002", + "M\u0003\u0002\u0002\u0002\u0002O\u0003\u0002\u0002\u0002\u0002Q\u0003", + "\u0002\u0002\u0002\u0002S\u0003\u0002\u0002\u0002\u0002U\u0003\u0002", + "\u0002\u0002\u0002W\u0003\u0002\u0002\u0002\u0002Y\u0003\u0002\u0002", + "\u0002\u0002[\u0003\u0002\u0002\u0002\u0002]\u0003\u0002\u0002\u0002", + "\u0002_\u0003\u0002\u0002\u0002\u0002a\u0003\u0002\u0002\u0002\u0002", + "c\u0003\u0002\u0002\u0002\u0002e\u0003\u0002\u0002\u0002\u0002g\u0003", + "\u0002\u0002\u0002\u0002i\u0003\u0002\u0002\u0002\u0002k\u0003\u0002", + "\u0002\u0002\u0002m\u0003\u0002\u0002\u0002\u0002o\u0003\u0002\u0002", + "\u0002\u0002q\u0003\u0002\u0002\u0002\u0002s\u0003\u0002\u0002\u0002", + "\u0002u\u0003\u0002\u0002\u0002\u0002w\u0003\u0002\u0002\u0002\u0002", + "y\u0003\u0002\u0002\u0002\u0002{\u0003\u0002\u0002\u0002\u0002}\u0003", + "\u0002\u0002\u0002\u0002\u007f\u0003\u0002\u0002\u0002\u0002\u0081\u0003", + "\u0002\u0002\u0002\u0002\u0083\u0003\u0002\u0002\u0002\u0002\u0085\u0003", + "\u0002\u0002\u0002\u0002\u0087\u0003\u0002\u0002\u0002\u0002\u0089\u0003", + "\u0002\u0002\u0002\u0002\u008b\u0003\u0002\u0002\u0002\u0002\u008d\u0003", + "\u0002\u0002\u0002\u0002\u008f\u0003\u0002\u0002\u0002\u0002\u0091\u0003", + "\u0002\u0002\u0002\u0002\u0093\u0003\u0002\u0002\u0002\u0002\u0095\u0003", + "\u0002\u0002\u0002\u0002\u0097\u0003\u0002\u0002\u0002\u0002\u0099\u0003", + "\u0002\u0002\u0002\u0002\u009b\u0003\u0002\u0002\u0002\u0002\u009d\u0003", + "\u0002\u0002\u0002\u0002\u009f\u0003\u0002\u0002\u0002\u0002\u00a1\u0003", + "\u0002\u0002\u0002\u0002\u00a3\u0003\u0002\u0002\u0002\u0002\u00a5\u0003", + "\u0002\u0002\u0002\u0002\u00a7\u0003\u0002\u0002\u0002\u0002\u00a9\u0003", + "\u0002\u0002\u0002\u0002\u00ab\u0003\u0002\u0002\u0002\u0002\u00ad\u0003", + "\u0002\u0002\u0002\u0002\u00af\u0003\u0002\u0002\u0002\u0002\u00b1\u0003", + "\u0002\u0002\u0002\u0002\u00b3\u0003\u0002\u0002\u0002\u0002\u00b5\u0003", + "\u0002\u0002\u0002\u0002\u00b7\u0003\u0002\u0002\u0002\u0002\u00b9\u0003", + "\u0002\u0002\u0002\u0002\u00bb\u0003\u0002\u0002\u0002\u0002\u00bd\u0003", + "\u0002\u0002\u0002\u0002\u00bf\u0003\u0002\u0002\u0002\u0002\u00c1\u0003", + "\u0002\u0002\u0002\u0002\u00c3\u0003\u0002\u0002\u0002\u0002\u00c5\u0003", + "\u0002\u0002\u0002\u0002\u00c7\u0003\u0002\u0002\u0002\u0002\u00c9\u0003", + "\u0002\u0002\u0002\u0002\u00cb\u0003\u0002\u0002\u0002\u0002\u00cd\u0003", + "\u0002\u0002\u0002\u0002\u00cf\u0003\u0002\u0002\u0002\u0002\u00d1\u0003", + "\u0002\u0002\u0002\u0002\u00d3\u0003\u0002\u0002\u0002\u0002\u00d5\u0003", + "\u0002\u0002\u0002\u0002\u00d7\u0003\u0002\u0002\u0002\u0002\u00d9\u0003", + "\u0002\u0002\u0002\u0002\u00db\u0003\u0002\u0002\u0002\u0002\u00dd\u0003", + "\u0002\u0002\u0002\u0002\u00df\u0003\u0002\u0002\u0002\u0002\u00e1\u0003", + "\u0002\u0002\u0002\u0002\u00e3\u0003\u0002\u0002\u0002\u0002\u00e5\u0003", + "\u0002\u0002\u0002\u0002\u00e7\u0003\u0002\u0002\u0002\u0002\u00e9\u0003", + "\u0002\u0002\u0002\u0002\u00eb\u0003\u0002\u0002\u0002\u0002\u00ed\u0003", + "\u0002\u0002\u0002\u0002\u00ef\u0003\u0002\u0002\u0002\u0002\u00f1\u0003", + "\u0002\u0002\u0002\u0002\u00f3\u0003\u0002\u0002\u0002\u0002\u00f5\u0003", + "\u0002\u0002\u0002\u0002\u00f7\u0003\u0002\u0002\u0002\u0002\u00f9\u0003", + "\u0002\u0002\u0002\u0002\u00fb\u0003\u0002\u0002\u0002\u0002\u00fd\u0003", + "\u0002\u0002\u0002\u0002\u00ff\u0003\u0002\u0002\u0002\u0002\u0101\u0003", + "\u0002\u0002\u0002\u0002\u0103\u0003\u0002\u0002\u0002\u0002\u0105\u0003", + "\u0002\u0002\u0002\u0002\u0107\u0003\u0002\u0002\u0002\u0002\u0109\u0003", + "\u0002\u0002\u0002\u0002\u010b\u0003\u0002\u0002\u0002\u0002\u010d\u0003", + "\u0002\u0002\u0002\u0002\u010f\u0003\u0002\u0002\u0002\u0002\u0111\u0003", + "\u0002\u0002\u0002\u0002\u0113\u0003\u0002\u0002\u0002\u0002\u0115\u0003", + "\u0002\u0002\u0002\u0002\u0117\u0003\u0002\u0002\u0002\u0002\u0119\u0003", + "\u0002\u0002\u0002\u0002\u011b\u0003\u0002\u0002\u0002\u0002\u011d\u0003", + "\u0002\u0002\u0002\u0002\u011f\u0003\u0002\u0002\u0002\u0002\u0121\u0003", + "\u0002\u0002\u0002\u0002\u0123\u0003\u0002\u0002\u0002\u0002\u0125\u0003", + "\u0002\u0002\u0002\u0002\u0127\u0003\u0002\u0002\u0002\u0002\u0129\u0003", + "\u0002\u0002\u0002\u0002\u012b\u0003\u0002\u0002\u0002\u0002\u012d\u0003", + "\u0002\u0002\u0002\u0002\u012f\u0003\u0002\u0002\u0002\u0002\u0131\u0003", + "\u0002\u0002\u0002\u0002\u0133\u0003\u0002\u0002\u0002\u0002\u0135\u0003", + "\u0002\u0002\u0002\u0002\u0137\u0003\u0002\u0002\u0002\u0002\u0139\u0003", + "\u0002\u0002\u0002\u0002\u013b\u0003\u0002\u0002\u0002\u0002\u013d\u0003", + "\u0002\u0002\u0002\u0002\u013f\u0003\u0002\u0002\u0002\u0002\u0141\u0003", + "\u0002\u0002\u0002\u0002\u0143\u0003\u0002\u0002\u0002\u0002\u0145\u0003", + "\u0002\u0002\u0002\u0002\u0147\u0003\u0002\u0002\u0002\u0002\u0149\u0003", + "\u0002\u0002\u0002\u0002\u014b\u0003\u0002\u0002\u0002\u0002\u014d\u0003", + "\u0002\u0002\u0002\u0002\u014f\u0003\u0002\u0002\u0002\u0002\u0151\u0003", + "\u0002\u0002\u0002\u0002\u0153\u0003\u0002\u0002\u0002\u0002\u0155\u0003", + "\u0002\u0002\u0002\u0002\u0157\u0003\u0002\u0002\u0002\u0002\u0159\u0003", + "\u0002\u0002\u0002\u0002\u015b\u0003\u0002\u0002\u0002\u0002\u015d\u0003", + "\u0002\u0002\u0002\u0002\u015f\u0003\u0002\u0002\u0002\u0002\u0161\u0003", + "\u0002\u0002\u0002\u0002\u0163\u0003\u0002\u0002\u0002\u0002\u0165\u0003", + "\u0002\u0002\u0002\u0002\u0167\u0003\u0002\u0002\u0002\u0002\u0169\u0003", + "\u0002\u0002\u0002\u0002\u016b\u0003\u0002\u0002\u0002\u0002\u016d\u0003", + "\u0002\u0002\u0002\u0002\u016f\u0003\u0002\u0002\u0002\u0002\u0171\u0003", + "\u0002\u0002\u0002\u0002\u0173\u0003\u0002\u0002\u0002\u0002\u0175\u0003", + "\u0002\u0002\u0002\u0002\u0177\u0003\u0002\u0002\u0002\u0002\u0179\u0003", + "\u0002\u0002\u0002\u0002\u017b\u0003\u0002\u0002\u0002\u0002\u017d\u0003", + "\u0002\u0002\u0002\u0002\u017f\u0003\u0002\u0002\u0002\u0002\u0181\u0003", + "\u0002\u0002\u0002\u0002\u0183\u0003\u0002\u0002\u0002\u0002\u0185\u0003", + "\u0002\u0002\u0002\u0002\u0187\u0003\u0002\u0002\u0002\u0002\u0189\u0003", + "\u0002\u0002\u0002\u0002\u018b\u0003\u0002\u0002\u0002\u0002\u018d\u0003", + "\u0002\u0002\u0002\u0002\u018f\u0003\u0002\u0002\u0002\u0002\u0191\u0003", + "\u0002\u0002\u0002\u0002\u0193\u0003\u0002\u0002\u0002\u0002\u0195\u0003", + "\u0002\u0002\u0002\u0002\u0197\u0003\u0002\u0002\u0002\u0002\u0199\u0003", + "\u0002\u0002\u0002\u0002\u019b\u0003\u0002\u0002\u0002\u0002\u019d\u0003", + "\u0002\u0002\u0002\u0002\u019f\u0003\u0002\u0002\u0002\u0002\u01a1\u0003", + "\u0002\u0002\u0002\u0002\u01a3\u0003\u0002\u0002\u0002\u0002\u01a5\u0003", + "\u0002\u0002\u0002\u0002\u01a7\u0003\u0002\u0002\u0002\u0002\u01a9\u0003", + "\u0002\u0002\u0002\u0002\u01ab\u0003\u0002\u0002\u0002\u0002\u01ad\u0003", + "\u0002\u0002\u0002\u0002\u01af\u0003\u0002\u0002\u0002\u0002\u01b1\u0003", + "\u0002\u0002\u0002\u0002\u01b3\u0003\u0002\u0002\u0002\u0002\u01b5\u0003", + "\u0002\u0002\u0002\u0002\u01b7\u0003\u0002\u0002\u0002\u0002\u01b9\u0003", + "\u0002\u0002\u0002\u0002\u01bb\u0003\u0002\u0002\u0002\u0002\u01bd\u0003", + "\u0002\u0002\u0002\u0002\u01bf\u0003\u0002\u0002\u0002\u0002\u01c1\u0003", + "\u0002\u0002\u0002\u0002\u01c3\u0003\u0002\u0002\u0002\u0002\u01c5\u0003", + "\u0002\u0002\u0002\u0002\u01c7\u0003\u0002\u0002\u0002\u0002\u01c9\u0003", + "\u0002\u0002\u0002\u0002\u01cb\u0003\u0002\u0002\u0002\u0002\u01cd\u0003", + "\u0002\u0002\u0002\u0002\u01cf\u0003\u0002\u0002\u0002\u0002\u01d1\u0003", + "\u0002\u0002\u0002\u0002\u01d3\u0003\u0002\u0002\u0002\u0002\u01d5\u0003", + "\u0002\u0002\u0002\u0002\u01d7\u0003\u0002\u0002\u0002\u0002\u01d9\u0003", + "\u0002\u0002\u0002\u0002\u01db\u0003\u0002\u0002\u0002\u0002\u01dd\u0003", + "\u0002\u0002\u0002\u0002\u01df\u0003\u0002\u0002\u0002\u0002\u01e1\u0003", + "\u0002\u0002\u0002\u0002\u01e3\u0003\u0002\u0002\u0002\u0002\u01e5\u0003", + "\u0002\u0002\u0002\u0002\u01e7\u0003\u0002\u0002\u0002\u0002\u01e9\u0003", + "\u0002\u0002\u0002\u0002\u01eb\u0003\u0002\u0002\u0002\u0002\u01ed\u0003", + "\u0002\u0002\u0002\u0002\u01ef\u0003\u0002\u0002\u0002\u0002\u01f1\u0003", + "\u0002\u0002\u0002\u0002\u01f3\u0003\u0002\u0002\u0002\u0002\u01f5\u0003", + "\u0002\u0002\u0002\u0002\u01f7\u0003\u0002\u0002\u0002\u0002\u01f9\u0003", + "\u0002\u0002\u0002\u0002\u01fb\u0003\u0002\u0002\u0002\u0002\u01fd\u0003", + "\u0002\u0002\u0002\u0002\u01ff\u0003\u0002\u0002\u0002\u0002\u0201\u0003", + "\u0002\u0002\u0002\u0002\u0203\u0003\u0002\u0002\u0002\u0002\u0205\u0003", + "\u0002\u0002\u0002\u0002\u0207\u0003\u0002\u0002\u0002\u0002\u0209\u0003", + "\u0002\u0002\u0002\u0002\u020b\u0003\u0002\u0002\u0002\u0002\u020d\u0003", + "\u0002\u0002\u0002\u0002\u020f\u0003\u0002\u0002\u0002\u0002\u0211\u0003", + "\u0002\u0002\u0002\u0002\u0213\u0003\u0002\u0002\u0002\u0002\u0215\u0003", + "\u0002\u0002\u0002\u0002\u0217\u0003\u0002\u0002\u0002\u0002\u0219\u0003", + "\u0002\u0002\u0002\u0002\u021b\u0003\u0002\u0002\u0002\u0002\u021d\u0003", + "\u0002\u0002\u0002\u0002\u021f\u0003\u0002\u0002\u0002\u0002\u0221\u0003", + "\u0002\u0002\u0002\u0002\u0223\u0003\u0002\u0002\u0002\u0002\u0225\u0003", + "\u0002\u0002\u0002\u0002\u0227\u0003\u0002\u0002\u0002\u0002\u0229\u0003", + "\u0002\u0002\u0002\u0002\u022b\u0003\u0002\u0002\u0002\u0002\u022d\u0003", + "\u0002\u0002\u0002\u0002\u022f\u0003\u0002\u0002\u0002\u0002\u0231\u0003", + "\u0002\u0002\u0002\u0002\u0233\u0003\u0002\u0002\u0002\u0002\u0235\u0003", + "\u0002\u0002\u0002\u0002\u0237\u0003\u0002\u0002\u0002\u0002\u0239\u0003", + "\u0002\u0002\u0002\u0002\u023b\u0003\u0002\u0002\u0002\u0002\u023d\u0003", + "\u0002\u0002\u0002\u0002\u023f\u0003\u0002\u0002\u0002\u0002\u0241\u0003", + "\u0002\u0002\u0002\u0002\u0243\u0003\u0002\u0002\u0002\u0002\u0245\u0003", + "\u0002\u0002\u0002\u0002\u0247\u0003\u0002\u0002\u0002\u0002\u0249\u0003", + "\u0002\u0002\u0002\u0002\u024b\u0003\u0002\u0002\u0002\u0002\u024d\u0003", + "\u0002\u0002\u0002\u0002\u024f\u0003\u0002\u0002\u0002\u0002\u0251\u0003", + "\u0002\u0002\u0002\u0002\u0253\u0003\u0002\u0002\u0002\u0002\u0255\u0003", + "\u0002\u0002\u0002\u0002\u0257\u0003\u0002\u0002\u0002\u0002\u0259\u0003", + "\u0002\u0002\u0002\u0002\u025b\u0003\u0002\u0002\u0002\u0002\u025d\u0003", + "\u0002\u0002\u0002\u0002\u025f\u0003\u0002\u0002\u0002\u0002\u0261\u0003", + "\u0002\u0002\u0002\u0002\u0263\u0003\u0002\u0002\u0002\u0002\u0265\u0003", + "\u0002\u0002\u0002\u0002\u0267\u0003\u0002\u0002\u0002\u0002\u0269\u0003", + "\u0002\u0002\u0002\u0002\u026b\u0003\u0002\u0002\u0002\u0002\u026d\u0003", + "\u0002\u0002\u0002\u0002\u026f\u0003\u0002\u0002\u0002\u0002\u0271\u0003", + "\u0002\u0002\u0002\u0002\u0273\u0003\u0002\u0002\u0002\u0002\u0275\u0003", + "\u0002\u0002\u0002\u0002\u0277\u0003\u0002\u0002\u0002\u0002\u0279\u0003", + "\u0002\u0002\u0002\u0002\u027b\u0003\u0002\u0002\u0002\u0002\u027d\u0003", + "\u0002\u0002\u0002\u0002\u027f\u0003\u0002\u0002\u0002\u0002\u0281\u0003", + "\u0002\u0002\u0002\u0002\u0283\u0003\u0002\u0002\u0002\u0002\u0285\u0003", + "\u0002\u0002\u0002\u0002\u0287\u0003\u0002\u0002\u0002\u0002\u0289\u0003", + "\u0002\u0002\u0002\u0002\u028b\u0003\u0002\u0002\u0002\u0002\u028d\u0003", + "\u0002\u0002\u0002\u0002\u028f\u0003\u0002\u0002\u0002\u0002\u0291\u0003", + "\u0002\u0002\u0002\u0002\u0293\u0003\u0002\u0002\u0002\u0002\u0295\u0003", + "\u0002\u0002\u0002\u0002\u0297\u0003\u0002\u0002\u0002\u0002\u0299\u0003", + "\u0002\u0002\u0002\u0002\u029b\u0003\u0002\u0002\u0002\u0002\u029d\u0003", + "\u0002\u0002\u0002\u0002\u029f\u0003\u0002\u0002\u0002\u0002\u02a1\u0003", + "\u0002\u0002\u0002\u0002\u02a3\u0003\u0002\u0002\u0002\u0002\u02a5\u0003", + "\u0002\u0002\u0002\u0002\u02a7\u0003\u0002\u0002\u0002\u0002\u02a9\u0003", + "\u0002\u0002\u0002\u0002\u02ab\u0003\u0002\u0002\u0002\u0002\u02ad\u0003", + "\u0002\u0002\u0002\u0002\u02af\u0003\u0002\u0002\u0002\u0002\u02b1\u0003", + "\u0002\u0002\u0002\u0002\u02b3\u0003\u0002\u0002\u0002\u0002\u02b5\u0003", + "\u0002\u0002\u0002\u0002\u02b7\u0003\u0002\u0002\u0002\u0002\u02b9\u0003", + "\u0002\u0002\u0002\u0002\u02bb\u0003\u0002\u0002\u0002\u0002\u02bd\u0003", + "\u0002\u0002\u0002\u0002\u02bf\u0003\u0002\u0002\u0002\u0002\u02c1\u0003", + "\u0002\u0002\u0002\u0002\u02c3\u0003\u0002\u0002\u0002\u0002\u02c5\u0003", + "\u0002\u0002\u0002\u0002\u02c7\u0003\u0002\u0002\u0002\u0002\u02c9\u0003", + "\u0002\u0002\u0002\u0002\u02cb\u0003\u0002\u0002\u0002\u0002\u02cd\u0003", + "\u0002\u0002\u0002\u0002\u02cf\u0003\u0002\u0002\u0002\u0002\u02d1\u0003", + "\u0002\u0002\u0002\u0002\u02d3\u0003\u0002\u0002\u0002\u0002\u02d5\u0003", + "\u0002\u0002\u0002\u0002\u02d7\u0003\u0002\u0002\u0002\u0002\u02d9\u0003", + "\u0002\u0002\u0002\u0002\u02db\u0003\u0002\u0002\u0002\u0002\u02dd\u0003", + "\u0002\u0002\u0002\u0002\u02df\u0003\u0002\u0002\u0002\u0002\u02e1\u0003", + "\u0002\u0002\u0002\u0002\u02e3\u0003\u0002\u0002\u0002\u0002\u02e5\u0003", + "\u0002\u0002\u0002\u0002\u02e7\u0003\u0002\u0002\u0002\u0002\u02e9\u0003", + "\u0002\u0002\u0002\u0002\u02eb\u0003\u0002\u0002\u0002\u0002\u02ed\u0003", + "\u0002\u0002\u0002\u0002\u02ef\u0003\u0002\u0002\u0002\u0002\u02f1\u0003", + "\u0002\u0002\u0002\u0002\u02f3\u0003\u0002\u0002\u0002\u0002\u02f5\u0003", + "\u0002\u0002\u0002\u0002\u02f7\u0003\u0002\u0002\u0002\u0002\u02f9\u0003", + "\u0002\u0002\u0002\u0002\u02fb\u0003\u0002\u0002\u0002\u0002\u02fd\u0003", + "\u0002\u0002\u0002\u0002\u02ff\u0003\u0002\u0002\u0002\u0002\u0301\u0003", + "\u0002\u0002\u0002\u0002\u0303\u0003\u0002\u0002\u0002\u0002\u0305\u0003", + "\u0002\u0002\u0002\u0002\u0307\u0003\u0002\u0002\u0002\u0002\u0309\u0003", + "\u0002\u0002\u0002\u0002\u030b\u0003\u0002\u0002\u0002\u0002\u030d\u0003", + "\u0002\u0002\u0002\u0002\u030f\u0003\u0002\u0002\u0002\u0002\u0311\u0003", + "\u0002\u0002\u0002\u0002\u0313\u0003\u0002\u0002\u0002\u0002\u0315\u0003", + "\u0002\u0002\u0002\u0002\u0317\u0003\u0002\u0002\u0002\u0002\u0319\u0003", + "\u0002\u0002\u0002\u0002\u031b\u0003\u0002\u0002\u0002\u0002\u031d\u0003", + "\u0002\u0002\u0002\u0002\u031f\u0003\u0002\u0002\u0002\u0002\u0321\u0003", + "\u0002\u0002\u0002\u0002\u0323\u0003\u0002\u0002\u0002\u0002\u0325\u0003", + "\u0002\u0002\u0002\u0002\u0327\u0003\u0002\u0002\u0002\u0002\u0329\u0003", + "\u0002\u0002\u0002\u0002\u032b\u0003\u0002\u0002\u0002\u0002\u032d\u0003", + "\u0002\u0002\u0002\u0002\u032f\u0003\u0002\u0002\u0002\u0002\u0331\u0003", + "\u0002\u0002\u0002\u0002\u0333\u0003\u0002\u0002\u0002\u0002\u0335\u0003", + "\u0002\u0002\u0002\u0002\u0337\u0003\u0002\u0002\u0002\u0002\u0339\u0003", + "\u0002\u0002\u0002\u0002\u033b\u0003\u0002\u0002\u0002\u0002\u033d\u0003", + "\u0002\u0002\u0002\u0002\u033f\u0003\u0002\u0002\u0002\u0002\u0341\u0003", + "\u0002\u0002\u0002\u0002\u0343\u0003\u0002\u0002\u0002\u0002\u0345\u0003", + "\u0002\u0002\u0002\u0002\u0347\u0003\u0002\u0002\u0002\u0002\u0349\u0003", + "\u0002\u0002\u0002\u0002\u034b\u0003\u0002\u0002\u0002\u0002\u034d\u0003", + "\u0002\u0002\u0002\u0002\u034f\u0003\u0002\u0002\u0002\u0002\u0351\u0003", + "\u0002\u0002\u0002\u0002\u0353\u0003\u0002\u0002\u0002\u0002\u0355\u0003", + "\u0002\u0002\u0002\u0002\u0357\u0003\u0002\u0002\u0002\u0002\u0359\u0003", + "\u0002\u0002\u0002\u0002\u035b\u0003\u0002\u0002\u0002\u0002\u035d\u0003", + "\u0002\u0002\u0002\u0002\u035f\u0003\u0002\u0002\u0002\u0002\u0361\u0003", + "\u0002\u0002\u0002\u0002\u0363\u0003\u0002\u0002\u0002\u0002\u0365\u0003", + "\u0002\u0002\u0002\u0002\u0367\u0003\u0002\u0002\u0002\u0002\u0369\u0003", + "\u0002\u0002\u0002\u0002\u036b\u0003\u0002\u0002\u0002\u0002\u036d\u0003", + "\u0002\u0002\u0002\u0002\u036f\u0003\u0002\u0002\u0002\u0002\u0371\u0003", + "\u0002\u0002\u0002\u0002\u0373\u0003\u0002\u0002\u0002\u0002\u0375\u0003", + "\u0002\u0002\u0002\u0002\u0377\u0003\u0002\u0002\u0002\u0002\u0379\u0003", + "\u0002\u0002\u0002\u0002\u037b\u0003\u0002\u0002\u0002\u0002\u037d\u0003", + "\u0002\u0002\u0002\u0002\u037f\u0003\u0002\u0002\u0002\u0002\u0381\u0003", + "\u0002\u0002\u0002\u0002\u0383\u0003\u0002\u0002\u0002\u0002\u0385\u0003", + "\u0002\u0002\u0002\u0002\u0387\u0003\u0002\u0002\u0002\u0002\u0389\u0003", + "\u0002\u0002\u0002\u0002\u038b\u0003\u0002\u0002\u0002\u0002\u038d\u0003", + "\u0002\u0002\u0002\u0002\u038f\u0003\u0002\u0002\u0002\u0002\u0391\u0003", + "\u0002\u0002\u0002\u0002\u0393\u0003\u0002\u0002\u0002\u0002\u0395\u0003", + "\u0002\u0002\u0002\u0002\u0397\u0003\u0002\u0002\u0002\u0002\u0399\u0003", + "\u0002\u0002\u0002\u0002\u039b\u0003\u0002\u0002\u0002\u0002\u039d\u0003", + "\u0002\u0002\u0002\u0002\u039f\u0003\u0002\u0002\u0002\u0002\u03a1\u0003", + "\u0002\u0002\u0002\u0002\u03a3\u0003\u0002\u0002\u0002\u0002\u03a5\u0003", + "\u0002\u0002\u0002\u0002\u03a7\u0003\u0002\u0002\u0002\u0002\u03a9\u0003", + "\u0002\u0002\u0002\u0002\u03ab\u0003\u0002\u0002\u0002\u0002\u03ad\u0003", + "\u0002\u0002\u0002\u0002\u03af\u0003\u0002\u0002\u0002\u0002\u03b1\u0003", + "\u0002\u0002\u0002\u0002\u03b3\u0003\u0002\u0002\u0002\u0002\u03b5\u0003", + "\u0002\u0002\u0002\u0002\u03b7\u0003\u0002\u0002\u0002\u0002\u03b9\u0003", + "\u0002\u0002\u0002\u0002\u03bb\u0003\u0002\u0002\u0002\u0002\u03bd\u0003", + "\u0002\u0002\u0002\u0002\u03bf\u0003\u0002\u0002\u0002\u0002\u03c1\u0003", + "\u0002\u0002\u0002\u0002\u03c3\u0003\u0002\u0002\u0002\u0002\u03c5\u0003", + "\u0002\u0002\u0002\u0002\u03c7\u0003\u0002\u0002\u0002\u0002\u03c9\u0003", + "\u0002\u0002\u0002\u0002\u03cb\u0003\u0002\u0002\u0002\u0002\u03cd\u0003", + "\u0002\u0002\u0002\u0002\u03cf\u0003\u0002\u0002\u0002\u0002\u03d1\u0003", + "\u0002\u0002\u0002\u0002\u03d3\u0003\u0002\u0002\u0002\u0002\u03d5\u0003", + "\u0002\u0002\u0002\u0002\u03d7\u0003\u0002\u0002\u0002\u0002\u03d9\u0003", + "\u0002\u0002\u0002\u0002\u03db\u0003\u0002\u0002\u0002\u0002\u03dd\u0003", + "\u0002\u0002\u0002\u0002\u03df\u0003\u0002\u0002\u0002\u0002\u03e1\u0003", + "\u0002\u0002\u0002\u0002\u03e3\u0003\u0002\u0002\u0002\u0002\u03e5\u0003", + "\u0002\u0002\u0002\u0002\u03e7\u0003\u0002\u0002\u0002\u0002\u03e9\u0003", + "\u0002\u0002\u0002\u0002\u03eb\u0003\u0002\u0002\u0002\u0002\u03ed\u0003", + "\u0002\u0002\u0002\u0002\u03ef\u0003\u0002\u0002\u0002\u0002\u03f1\u0003", + "\u0002\u0002\u0002\u0002\u03f3\u0003\u0002\u0002\u0002\u0002\u03f5\u0003", + "\u0002\u0002\u0002\u0002\u03f7\u0003\u0002\u0002\u0002\u0002\u03f9\u0003", + "\u0002\u0002\u0002\u0002\u03fb\u0003\u0002\u0002\u0002\u0002\u03fd\u0003", + "\u0002\u0002\u0002\u0002\u03ff\u0003\u0002\u0002\u0002\u0002\u0401\u0003", + "\u0002\u0002\u0002\u0002\u0403\u0003\u0002\u0002\u0002\u0002\u0405\u0003", + "\u0002\u0002\u0002\u0002\u0407\u0003\u0002\u0002\u0002\u0002\u0409\u0003", + "\u0002\u0002\u0002\u0002\u040b\u0003\u0002\u0002\u0002\u0002\u040d\u0003", + "\u0002\u0002\u0002\u0002\u040f\u0003\u0002\u0002\u0002\u0002\u0411\u0003", + "\u0002\u0002\u0002\u0002\u0413\u0003\u0002\u0002\u0002\u0002\u0415\u0003", + "\u0002\u0002\u0002\u0002\u0417\u0003\u0002\u0002\u0002\u0002\u0419\u0003", + "\u0002\u0002\u0002\u0002\u041b\u0003\u0002\u0002\u0002\u0002\u041d\u0003", + "\u0002\u0002\u0002\u0002\u041f\u0003\u0002\u0002\u0002\u0002\u0421\u0003", + "\u0002\u0002\u0002\u0002\u0423\u0003\u0002\u0002\u0002\u0002\u0425\u0003", + "\u0002\u0002\u0002\u0002\u0427\u0003\u0002\u0002\u0002\u0002\u0429\u0003", + "\u0002\u0002\u0002\u0002\u042b\u0003\u0002\u0002\u0002\u0002\u042d\u0003", + "\u0002\u0002\u0002\u0002\u042f\u0003\u0002\u0002\u0002\u0002\u0431\u0003", + "\u0002\u0002\u0002\u0002\u0433\u0003\u0002\u0002\u0002\u0002\u0435\u0003", + "\u0002\u0002\u0002\u0002\u0437\u0003\u0002\u0002\u0002\u0002\u0439\u0003", + "\u0002\u0002\u0002\u0002\u043b\u0003\u0002\u0002\u0002\u0002\u043d\u0003", + "\u0002\u0002\u0002\u0002\u043f\u0003\u0002\u0002\u0002\u0002\u0441\u0003", + "\u0002\u0002\u0002\u0002\u0443\u0003\u0002\u0002\u0002\u0002\u0445\u0003", + "\u0002\u0002\u0002\u0002\u0447\u0003\u0002\u0002\u0002\u0002\u0449\u0003", + "\u0002\u0002\u0002\u0002\u044b\u0003\u0002\u0002\u0002\u0002\u044d\u0003", + "\u0002\u0002\u0002\u0002\u044f\u0003\u0002\u0002\u0002\u0002\u0451\u0003", + "\u0002\u0002\u0002\u0002\u0453\u0003\u0002\u0002\u0002\u0002\u0455\u0003", + "\u0002\u0002\u0002\u0002\u0457\u0003\u0002\u0002\u0002\u0002\u0459\u0003", + "\u0002\u0002\u0002\u0002\u045b\u0003\u0002\u0002\u0002\u0002\u045d\u0003", + "\u0002\u0002\u0002\u0002\u045f\u0003\u0002\u0002\u0002\u0002\u0461\u0003", + "\u0002\u0002\u0002\u0002\u0463\u0003\u0002\u0002\u0002\u0002\u0465\u0003", + "\u0002\u0002\u0002\u0002\u0467\u0003\u0002\u0002\u0002\u0002\u0469\u0003", + "\u0002\u0002\u0002\u0002\u046b\u0003\u0002\u0002\u0002\u0002\u046d\u0003", + "\u0002\u0002\u0002\u0002\u046f\u0003\u0002\u0002\u0002\u0002\u0471\u0003", + "\u0002\u0002\u0002\u0002\u0473\u0003\u0002\u0002\u0002\u0002\u0475\u0003", + "\u0002\u0002\u0002\u0002\u0477\u0003\u0002\u0002\u0002\u0002\u0479\u0003", + "\u0002\u0002\u0002\u0002\u047b\u0003\u0002\u0002\u0002\u0002\u047d\u0003", + "\u0002\u0002\u0002\u0002\u047f\u0003\u0002\u0002\u0002\u0002\u0481\u0003", + "\u0002\u0002\u0002\u0002\u0483\u0003\u0002\u0002\u0002\u0002\u0485\u0003", + "\u0002\u0002\u0002\u0002\u0487\u0003\u0002\u0002\u0002\u0002\u0489\u0003", + "\u0002\u0002\u0002\u0002\u048b\u0003\u0002\u0002\u0002\u0002\u048d\u0003", + "\u0002\u0002\u0002\u0002\u048f\u0003\u0002\u0002\u0002\u0002\u0491\u0003", + "\u0002\u0002\u0002\u0002\u0493\u0003\u0002\u0002\u0002\u0002\u0495\u0003", + "\u0002\u0002\u0002\u0002\u0497\u0003\u0002\u0002\u0002\u0002\u0499\u0003", + "\u0002\u0002\u0002\u0002\u049b\u0003\u0002\u0002\u0002\u0002\u049d\u0003", + "\u0002\u0002\u0002\u0002\u049f\u0003\u0002\u0002\u0002\u0002\u04a1\u0003", + "\u0002\u0002\u0002\u0002\u04a3\u0003\u0002\u0002\u0002\u0002\u04a5\u0003", + "\u0002\u0002\u0002\u0002\u04a7\u0003\u0002\u0002\u0002\u0002\u04a9\u0003", + "\u0002\u0002\u0002\u0002\u04ab\u0003\u0002\u0002\u0002\u0002\u04ad\u0003", + "\u0002\u0002\u0002\u0002\u04af\u0003\u0002\u0002\u0002\u0002\u04b1\u0003", + "\u0002\u0002\u0002\u0002\u04b3\u0003\u0002\u0002\u0002\u0002\u04b5\u0003", + "\u0002\u0002\u0002\u0002\u04b7\u0003\u0002\u0002\u0002\u0002\u04b9\u0003", + "\u0002\u0002\u0002\u0002\u04bb\u0003\u0002\u0002\u0002\u0002\u04bd\u0003", + "\u0002\u0002\u0002\u0002\u04bf\u0003\u0002\u0002\u0002\u0002\u04c1\u0003", + "\u0002\u0002\u0002\u0002\u04c3\u0003\u0002\u0002\u0002\u0002\u04c5\u0003", + "\u0002\u0002\u0002\u0002\u04c7\u0003\u0002\u0002\u0002\u0002\u04c9\u0003", + "\u0002\u0002\u0002\u0002\u04cb\u0003\u0002\u0002\u0002\u0002\u04cd\u0003", + "\u0002\u0002\u0002\u0002\u04cf\u0003\u0002\u0002\u0002\u0002\u04d1\u0003", + "\u0002\u0002\u0002\u0002\u04d3\u0003\u0002\u0002\u0002\u0002\u04d5\u0003", + "\u0002\u0002\u0002\u0002\u04d7\u0003\u0002\u0002\u0002\u0002\u04d9\u0003", + "\u0002\u0002\u0002\u0002\u04db\u0003\u0002\u0002\u0002\u0002\u04dd\u0003", + "\u0002\u0002\u0002\u0002\u04df\u0003\u0002\u0002\u0002\u0002\u04e1\u0003", + "\u0002\u0002\u0002\u0002\u04e3\u0003\u0002\u0002\u0002\u0002\u04e5\u0003", + "\u0002\u0002\u0002\u0002\u04e7\u0003\u0002\u0002\u0002\u0002\u04e9\u0003", + "\u0002\u0002\u0002\u0002\u04eb\u0003\u0002\u0002\u0002\u0002\u04ed\u0003", + "\u0002\u0002\u0002\u0002\u04ef\u0003\u0002\u0002\u0002\u0002\u04f1\u0003", + "\u0002\u0002\u0002\u0002\u04f3\u0003\u0002\u0002\u0002\u0002\u04f5\u0003", + "\u0002\u0002\u0002\u0002\u04f7\u0003\u0002\u0002\u0002\u0002\u04f9\u0003", + "\u0002\u0002\u0002\u0002\u04fb\u0003\u0002\u0002\u0002\u0002\u04fd\u0003", + "\u0002\u0002\u0002\u0002\u04ff\u0003\u0002\u0002\u0002\u0002\u0501\u0003", + "\u0002\u0002\u0002\u0002\u0503\u0003\u0002\u0002\u0002\u0002\u0505\u0003", + "\u0002\u0002\u0002\u0002\u0507\u0003\u0002\u0002\u0002\u0002\u0509\u0003", + "\u0002\u0002\u0002\u0002\u050b\u0003\u0002\u0002\u0002\u0002\u050d\u0003", + "\u0002\u0002\u0002\u0002\u050f\u0003\u0002\u0002\u0002\u0002\u0511\u0003", + "\u0002\u0002\u0002\u0002\u0513\u0003\u0002\u0002\u0002\u0002\u0515\u0003", + "\u0002\u0002\u0002\u0002\u0517\u0003\u0002\u0002\u0002\u0002\u0519\u0003", + "\u0002\u0002\u0002\u0002\u051b\u0003\u0002\u0002\u0002\u0002\u051d\u0003", + "\u0002\u0002\u0002\u0002\u051f\u0003\u0002\u0002\u0002\u0002\u0521\u0003", + "\u0002\u0002\u0002\u0002\u0523\u0003\u0002\u0002\u0002\u0002\u0525\u0003", + "\u0002\u0002\u0002\u0002\u0527\u0003\u0002\u0002\u0002\u0002\u0529\u0003", + "\u0002\u0002\u0002\u0002\u052b\u0003\u0002\u0002\u0002\u0002\u052d\u0003", + "\u0002\u0002\u0002\u0002\u052f\u0003\u0002\u0002\u0002\u0002\u0531\u0003", + "\u0002\u0002\u0002\u0002\u0533\u0003\u0002\u0002\u0002\u0002\u0535\u0003", + "\u0002\u0002\u0002\u0002\u0537\u0003\u0002\u0002\u0002\u0002\u0539\u0003", + "\u0002\u0002\u0002\u0002\u053b\u0003\u0002\u0002\u0002\u0002\u053d\u0003", + "\u0002\u0002\u0002\u0002\u053f\u0003\u0002\u0002\u0002\u0002\u0541\u0003", + "\u0002\u0002\u0002\u0002\u0543\u0003\u0002\u0002\u0002\u0002\u0545\u0003", + "\u0002\u0002\u0002\u0002\u0547\u0003\u0002\u0002\u0002\u0002\u0549\u0003", + "\u0002\u0002\u0002\u0002\u054b\u0003\u0002\u0002\u0002\u0002\u054d\u0003", + "\u0002\u0002\u0002\u0002\u054f\u0003\u0002\u0002\u0002\u0002\u0551\u0003", + "\u0002\u0002\u0002\u0002\u0553\u0003\u0002\u0002\u0002\u0002\u0555\u0003", + "\u0002\u0002\u0002\u0002\u0557\u0003\u0002\u0002\u0002\u0002\u0559\u0003", + "\u0002\u0002\u0002\u0002\u055b\u0003\u0002\u0002\u0002\u0002\u055d\u0003", + "\u0002\u0002\u0002\u0002\u055f\u0003\u0002\u0002\u0002\u0002\u0561\u0003", + "\u0002\u0002\u0002\u0002\u0563\u0003\u0002\u0002\u0002\u0002\u0565\u0003", + "\u0002\u0002\u0002\u0002\u0567\u0003\u0002\u0002\u0002\u0002\u0569\u0003", + "\u0002\u0002\u0002\u0002\u056b\u0003\u0002\u0002\u0002\u0002\u056d\u0003", + "\u0002\u0002\u0002\u0002\u056f\u0003\u0002\u0002\u0002\u0002\u0571\u0003", + "\u0002\u0002\u0002\u0002\u0573\u0003\u0002\u0002\u0002\u0002\u0575\u0003", + "\u0002\u0002\u0002\u0002\u0577\u0003\u0002\u0002\u0002\u0002\u0579\u0003", + "\u0002\u0002\u0002\u0002\u057b\u0003\u0002\u0002\u0002\u0002\u057d\u0003", + "\u0002\u0002\u0002\u0002\u057f\u0003\u0002\u0002\u0002\u0002\u0581\u0003", + "\u0002\u0002\u0002\u0002\u0583\u0003\u0002\u0002\u0002\u0002\u0585\u0003", + "\u0002\u0002\u0002\u0002\u0587\u0003\u0002\u0002\u0002\u0002\u0589\u0003", + "\u0002\u0002\u0002\u0002\u058b\u0003\u0002\u0002\u0002\u0002\u058d\u0003", + "\u0002\u0002\u0002\u0002\u058f\u0003\u0002\u0002\u0002\u0002\u0591\u0003", + "\u0002\u0002\u0002\u0002\u0593\u0003\u0002\u0002\u0002\u0002\u0595\u0003", + "\u0002\u0002\u0002\u0002\u0597\u0003\u0002\u0002\u0002\u0002\u0599\u0003", + "\u0002\u0002\u0002\u0002\u059b\u0003\u0002\u0002\u0002\u0002\u059d\u0003", + "\u0002\u0002\u0002\u0002\u059f\u0003\u0002\u0002\u0002\u0002\u05a1\u0003", + "\u0002\u0002\u0002\u0002\u05a3\u0003\u0002\u0002\u0002\u0002\u05a5\u0003", + "\u0002\u0002\u0002\u0002\u05a7\u0003\u0002\u0002\u0002\u0002\u05a9\u0003", + "\u0002\u0002\u0002\u0002\u05ab\u0003\u0002\u0002\u0002\u0002\u05ad\u0003", + "\u0002\u0002\u0002\u0002\u05af\u0003\u0002\u0002\u0002\u0002\u05b1\u0003", + "\u0002\u0002\u0002\u0002\u05b3\u0003\u0002\u0002\u0002\u0002\u05b5\u0003", + "\u0002\u0002\u0002\u0002\u05b7\u0003\u0002\u0002\u0002\u0002\u05b9\u0003", + "\u0002\u0002\u0002\u0002\u05bb\u0003\u0002\u0002\u0002\u0002\u05bd\u0003", + "\u0002\u0002\u0002\u0002\u05bf\u0003\u0002\u0002\u0002\u0002\u05c1\u0003", + "\u0002\u0002\u0002\u0002\u05c3\u0003\u0002\u0002\u0002\u0002\u05c5\u0003", + "\u0002\u0002\u0002\u0002\u05c7\u0003\u0002\u0002\u0002\u0002\u05c9\u0003", + "\u0002\u0002\u0002\u0002\u05cb\u0003\u0002\u0002\u0002\u0002\u05cd\u0003", + "\u0002\u0002\u0002\u0002\u05cf\u0003\u0002\u0002\u0002\u0002\u05d1\u0003", + "\u0002\u0002\u0002\u0002\u05d3\u0003\u0002\u0002\u0002\u0002\u05d5\u0003", + "\u0002\u0002\u0002\u0002\u05d7\u0003\u0002\u0002\u0002\u0002\u05d9\u0003", + "\u0002\u0002\u0002\u0002\u05db\u0003\u0002\u0002\u0002\u0002\u05dd\u0003", + "\u0002\u0002\u0002\u0002\u05df\u0003\u0002\u0002\u0002\u0002\u05e1\u0003", + "\u0002\u0002\u0002\u0002\u05e3\u0003\u0002\u0002\u0002\u0002\u05e5\u0003", + "\u0002\u0002\u0002\u0002\u05e7\u0003\u0002\u0002\u0002\u0002\u05e9\u0003", + "\u0002\u0002\u0002\u0002\u05eb\u0003\u0002\u0002\u0002\u0002\u05ed\u0003", + "\u0002\u0002\u0002\u0002\u05ef\u0003\u0002\u0002\u0002\u0002\u05f1\u0003", + "\u0002\u0002\u0002\u0002\u05f3\u0003\u0002\u0002\u0002\u0002\u05f5\u0003", + "\u0002\u0002\u0002\u0002\u05f7\u0003\u0002\u0002\u0002\u0002\u05f9\u0003", + "\u0002\u0002\u0002\u0002\u05fb\u0003\u0002\u0002\u0002\u0002\u05fd\u0003", + "\u0002\u0002\u0002\u0002\u05ff\u0003\u0002\u0002\u0002\u0002\u0601\u0003", + "\u0002\u0002\u0002\u0002\u0603\u0003\u0002\u0002\u0002\u0002\u0605\u0003", + "\u0002\u0002\u0002\u0002\u0607\u0003\u0002\u0002\u0002\u0002\u0609\u0003", + "\u0002\u0002\u0002\u0002\u060b\u0003\u0002\u0002\u0002\u0002\u060d\u0003", + "\u0002\u0002\u0002\u0002\u060f\u0003\u0002\u0002\u0002\u0002\u0611\u0003", + "\u0002\u0002\u0002\u0002\u0613\u0003\u0002\u0002\u0002\u0002\u0615\u0003", + "\u0002\u0002\u0002\u0002\u0617\u0003\u0002\u0002\u0002\u0002\u0619\u0003", + "\u0002\u0002\u0002\u0002\u061b\u0003\u0002\u0002\u0002\u0002\u061d\u0003", + "\u0002\u0002\u0002\u0002\u061f\u0003\u0002\u0002\u0002\u0002\u0621\u0003", + "\u0002\u0002\u0002\u0002\u0623\u0003\u0002\u0002\u0002\u0002\u0625\u0003", + "\u0002\u0002\u0002\u0002\u0627\u0003\u0002\u0002\u0002\u0002\u0629\u0003", + "\u0002\u0002\u0002\u0002\u062b\u0003\u0002\u0002\u0002\u0002\u062d\u0003", + "\u0002\u0002\u0002\u0002\u062f\u0003\u0002\u0002\u0002\u0002\u0631\u0003", + "\u0002\u0002\u0002\u0002\u0633\u0003\u0002\u0002\u0002\u0002\u0635\u0003", + "\u0002\u0002\u0002\u0002\u0637\u0003\u0002\u0002\u0002\u0002\u0639\u0003", + "\u0002\u0002\u0002\u0002\u063b\u0003\u0002\u0002\u0002\u0002\u063d\u0003", + "\u0002\u0002\u0002\u0002\u063f\u0003\u0002\u0002\u0002\u0002\u0641\u0003", + "\u0002\u0002\u0002\u0002\u0643\u0003\u0002\u0002\u0002\u0002\u0645\u0003", + "\u0002\u0002\u0002\u0002\u0647\u0003\u0002\u0002\u0002\u0002\u0649\u0003", + "\u0002\u0002\u0002\u0002\u064b\u0003\u0002\u0002\u0002\u0002\u064d\u0003", + "\u0002\u0002\u0002\u0002\u064f\u0003\u0002\u0002\u0002\u0002\u0651\u0003", + "\u0002\u0002\u0002\u0002\u0653\u0003\u0002\u0002\u0002\u0002\u0655\u0003", + "\u0002\u0002\u0002\u0002\u0657\u0003\u0002\u0002\u0002\u0002\u0659\u0003", + "\u0002\u0002\u0002\u0002\u065b\u0003\u0002\u0002\u0002\u0002\u065d\u0003", + "\u0002\u0002\u0002\u0002\u065f\u0003\u0002\u0002\u0002\u0002\u0661\u0003", + "\u0002\u0002\u0002\u0002\u0663\u0003\u0002\u0002\u0002\u0002\u0665\u0003", + "\u0002\u0002\u0002\u0002\u0667\u0003\u0002\u0002\u0002\u0002\u0669\u0003", + "\u0002\u0002\u0002\u0002\u066b\u0003\u0002\u0002\u0002\u0002\u066d\u0003", + "\u0002\u0002\u0002\u0002\u066f\u0003\u0002\u0002\u0002\u0002\u0671\u0003", + "\u0002\u0002\u0002\u0002\u0673\u0003\u0002\u0002\u0002\u0002\u0675\u0003", + "\u0002\u0002\u0002\u0002\u0677\u0003\u0002\u0002\u0002\u0002\u0679\u0003", + "\u0002\u0002\u0002\u0002\u067b\u0003\u0002\u0002\u0002\u0002\u067d\u0003", + "\u0002\u0002\u0002\u0002\u067f\u0003\u0002\u0002\u0002\u0002\u0681\u0003", + "\u0002\u0002\u0002\u0002\u0683\u0003\u0002\u0002\u0002\u0002\u0685\u0003", + "\u0002\u0002\u0002\u0002\u0687\u0003\u0002\u0002\u0002\u0002\u0689\u0003", + "\u0002\u0002\u0002\u0002\u068b\u0003\u0002\u0002\u0002\u0002\u068d\u0003", + "\u0002\u0002\u0002\u0002\u068f\u0003\u0002\u0002\u0002\u0002\u0695\u0003", + "\u0002\u0002\u0002\u0003\u069f\u0003\u0002\u0002\u0002\u0005\u06a6\u0003", + "\u0002\u0002\u0002\u0007\u06aa\u0003\u0002\u0002\u0002\t\u06ae\u0003", + "\u0002\u0002\u0002\u000b\u06b2\u0003\u0002\u0002\u0002\r\u06c4\u0003", + "\u0002\u0002\u0002\u000f\u06de\u0003\u0002\u0002\u0002\u0011\u06f6\u0003", + "\u0002\u0002\u0002\u0013\u06fc\u0003\u0002\u0002\u0002\u0015\u0700\u0003", + "\u0002\u0002\u0002\u0017\u070a\u0003\u0002\u0002\u0002\u0019\u070e\u0003", + "\u0002\u0002\u0002\u001b\u0715\u0003\u0002\u0002\u0002\u001d\u0721\u0003", + "\u0002\u0002\u0002\u001f\u0724\u0003\u0002\u0002\u0002!\u0728\u0003", + "\u0002\u0002\u0002#\u0733\u0003\u0002\u0002\u0002%\u0747\u0003\u0002", + "\u0002\u0002\'\u0755\u0003\u0002\u0002\u0002)\u0764\u0003\u0002\u0002", + "\u0002+\u0780\u0003\u0002\u0002\u0002-\u078a\u0003\u0002\u0002\u0002", + "/\u079c\u0003\u0002\u0002\u00021\u079e\u0003\u0002\u0002\u00023\u07a5", + "\u0003\u0002\u0002\u00025\u07ac\u0003\u0002\u0002\u00027\u07b2\u0003", + "\u0002\u0002\u00029\u07ba\u0003\u0002\u0002\u0002;\u07c0\u0003\u0002", + "\u0002\u0002=\u07ca\u0003\u0002\u0002\u0002?\u07dd\u0003\u0002\u0002", + "\u0002A\u07e3\u0003\u0002\u0002\u0002C\u07ea\u0003\u0002\u0002\u0002", + "E\u07f1\u0003\u0002\u0002\u0002G\u07fd\u0003\u0002\u0002\u0002I\u0802", + "\u0003\u0002\u0002\u0002K\u0805\u0003\u0002\u0002\u0002M\u080b\u0003", + "\u0002\u0002\u0002O\u0812\u0003\u0002\u0002\u0002Q\u081a\u0003\u0002", + "\u0002\u0002S\u081f\u0003\u0002\u0002\u0002U\u082b\u0003\u0002\u0002", + "\u0002W\u0837\u0003\u0002\u0002\u0002Y\u083f\u0003\u0002\u0002\u0002", + "[\u0845\u0003\u0002\u0002\u0002]\u0850\u0003\u0002\u0002\u0002_\u085d", + "\u0003\u0002\u0002\u0002a\u086e\u0003\u0002\u0002\u0002c\u0882\u0003", + "\u0002\u0002\u0002e\u0888\u0003\u0002\u0002\u0002g\u0890\u0003\u0002", + "\u0002\u0002i\u089a\u0003\u0002\u0002\u0002k\u08a3\u0003\u0002\u0002", + "\u0002m\u08ab\u0003\u0002\u0002\u0002o\u08b2\u0003\u0002\u0002\u0002", + "q\u08be\u0003\u0002\u0002\u0002s\u08c5\u0003\u0002\u0002\u0002u\u08cd", + "\u0003\u0002\u0002\u0002w\u08db\u0003\u0002\u0002\u0002y\u08e6\u0003", + "\u0002\u0002\u0002{\u08f2\u0003\u0002\u0002\u0002}\u08fb\u0003\u0002", + "\u0002\u0002\u007f\u0909\u0003\u0002\u0002\u0002\u0081\u0911\u0003\u0002", + "\u0002\u0002\u0083\u091a\u0003\u0002\u0002\u0002\u0085\u092f\u0003\u0002", + "\u0002\u0002\u0087\u0938\u0003\u0002\u0002\u0002\u0089\u0946\u0003\u0002", + "\u0002\u0002\u008b\u0957\u0003\u0002\u0002\u0002\u008d\u0961\u0003\u0002", + "\u0002\u0002\u008f\u096b\u0003\u0002\u0002\u0002\u0091\u0972\u0003\u0002", + "\u0002\u0002\u0093\u0978\u0003\u0002\u0002\u0002\u0095\u0980\u0003\u0002", + "\u0002\u0002\u0097\u098d\u0003\u0002\u0002\u0002\u0099\u099a\u0003\u0002", + "\u0002\u0002\u009b\u09ac\u0003\u0002\u0002\u0002\u009d\u09b9\u0003\u0002", + "\u0002\u0002\u009f\u09c0\u0003\u0002\u0002\u0002\u00a1\u09c6\u0003\u0002", + "\u0002\u0002\u00a3\u09d7\u0003\u0002\u0002\u0002\u00a5\u09e3\u0003\u0002", + "\u0002\u0002\u00a7\u09ec\u0003\u0002\u0002\u0002\u00a9\u09ff\u0003\u0002", + "\u0002\u0002\u00ab\u0a04\u0003\u0002\u0002\u0002\u00ad\u0a0f\u0003\u0002", + "\u0002\u0002\u00af\u0a17\u0003\u0002\u0002\u0002\u00b1\u0a1f\u0003\u0002", + "\u0002\u0002\u00b3\u0a30\u0003\u0002\u0002\u0002\u00b5\u0a3f\u0003\u0002", + "\u0002\u0002\u00b7\u0a46\u0003\u0002\u0002\u0002\u00b9\u0a4b\u0003\u0002", + "\u0002\u0002\u00bb\u0a50\u0003\u0002\u0002\u0002\u00bd\u0a5c\u0003\u0002", + "\u0002\u0002\u00bf\u0a69\u0003\u0002\u0002\u0002\u00c1\u0a6e\u0003\u0002", + "\u0002\u0002\u00c3\u0a77\u0003\u0002\u0002\u0002\u00c5\u0a83\u0003\u0002", + "\u0002\u0002\u00c7\u0a8a\u0003\u0002\u0002\u0002\u00c9\u0a8d\u0003\u0002", + "\u0002\u0002\u00cb\u0a90\u0003\u0002\u0002\u0002\u00cd\u0a95\u0003\u0002", + "\u0002\u0002\u00cf\u0aa1\u0003\u0002\u0002\u0002\u00d1\u0aa6\u0003\u0002", + "\u0002\u0002\u00d3\u0aab\u0003\u0002\u0002\u0002\u00d5\u0ab3\u0003\u0002", + "\u0002\u0002\u00d7\u0ab7\u0003\u0002\u0002\u0002\u00d9\u0ac0\u0003\u0002", + "\u0002\u0002\u00db\u0ac7\u0003\u0002\u0002\u0002\u00dd\u0ace\u0003\u0002", + "\u0002\u0002\u00df\u0ad4\u0003\u0002\u0002\u0002\u00e1\u0ada\u0003\u0002", + "\u0002\u0002\u00e3\u0ae7\u0003\u0002\u0002\u0002\u00e5\u0afc\u0003\u0002", + "\u0002\u0002\u00e7\u0b03\u0003\u0002\u0002\u0002\u00e9\u0b13\u0003\u0002", + "\u0002\u0002\u00eb\u0b1d\u0003\u0002\u0002\u0002\u00ed\u0b24\u0003\u0002", + "\u0002\u0002\u00ef\u0b2f\u0003\u0002\u0002\u0002\u00f1\u0b34\u0003\u0002", + "\u0002\u0002\u00f3\u0b3e\u0003\u0002\u0002\u0002\u00f5\u0b47\u0003\u0002", + "\u0002\u0002\u00f7\u0b57\u0003\u0002\u0002\u0002\u00f9\u0b60\u0003\u0002", + "\u0002\u0002\u00fb\u0b76\u0003\u0002\u0002\u0002\u00fd\u0b7d\u0003\u0002", + "\u0002\u0002\u00ff\u0b83\u0003\u0002\u0002\u0002\u0101\u0b88\u0003\u0002", + "\u0002\u0002\u0103\u0b91\u0003\u0002\u0002\u0002\u0105\u0b9c\u0003\u0002", + "\u0002\u0002\u0107\u0baa\u0003\u0002\u0002\u0002\u0109\u0bae\u0003\u0002", + "\u0002\u0002\u010b\u0bb8\u0003\u0002\u0002\u0002\u010d\u0bd6\u0003\u0002", + "\u0002\u0002\u010f\u0bde\u0003\u0002\u0002\u0002\u0111\u0be7\u0003\u0002", + "\u0002\u0002\u0113\u0bf5\u0003\u0002\u0002\u0002\u0115\u0bfa\u0003\u0002", + "\u0002\u0002\u0117\u0bff\u0003\u0002\u0002\u0002\u0119\u0c08\u0003\u0002", + "\u0002\u0002\u011b\u0c0c\u0003\u0002\u0002\u0002\u011d\u0c11\u0003\u0002", + "\u0002\u0002\u011f\u0c1a\u0003\u0002\u0002\u0002\u0121\u0c20\u0003\u0002", + "\u0002\u0002\u0123\u0c26\u0003\u0002\u0002\u0002\u0125\u0c2d\u0003\u0002", + "\u0002\u0002\u0127\u0c34\u0003\u0002\u0002\u0002\u0129\u0c47\u0003\u0002", + "\u0002\u0002\u012b\u0c50\u0003\u0002\u0002\u0002\u012d\u0c5c\u0003\u0002", + "\u0002\u0002\u012f\u0c6c\u0003\u0002\u0002\u0002\u0131\u0c6f\u0003\u0002", + "\u0002\u0002\u0133\u0c73\u0003\u0002\u0002\u0002\u0135\u0c76\u0003\u0002", + "\u0002\u0002\u0137\u0c7e\u0003\u0002\u0002\u0002\u0139\u0c88\u0003\u0002", + "\u0002\u0002\u013b\u0c8e\u0003\u0002\u0002\u0002\u013d\u0c97\u0003\u0002", + "\u0002\u0002\u013f\u0c9c\u0003\u0002\u0002\u0002\u0141\u0ca2\u0003\u0002", + "\u0002\u0002\u0143\u0ca9\u0003\u0002\u0002\u0002\u0145\u0cb1\u0003\u0002", + "\u0002\u0002\u0147\u0cbb\u0003\u0002\u0002\u0002\u0149\u0cc1\u0003\u0002", + "\u0002\u0002\u014b\u0cce\u0003\u0002\u0002\u0002\u014d\u0d3a\u0003\u0002", + "\u0002\u0002\u014f\u0d3d\u0003\u0002\u0002\u0002\u0151\u0d44\u0003\u0002", + "\u0002\u0002\u0153\u0d49\u0003\u0002\u0002\u0002\u0155\u0d52\u0003\u0002", + "\u0002\u0002\u0157\u0d56\u0003\u0002\u0002\u0002\u0159\u0d5f\u0003\u0002", + "\u0002\u0002\u015b\u0d77\u0003\u0002\u0002\u0002\u015d\u0d7c\u0003\u0002", + "\u0002\u0002\u015f\u0d85\u0003\u0002\u0002\u0002\u0161\u0d8a\u0003\u0002", + "\u0002\u0002\u0163\u0d92\u0003\u0002\u0002\u0002\u0165\u0d9b\u0003\u0002", + "\u0002\u0002\u0167\u0da0\u0003\u0002\u0002\u0002\u0169\u0da7\u0003\u0002", + "\u0002\u0002\u016b\u0dad\u0003\u0002\u0002\u0002\u016d\u0db9\u0003\u0002", + "\u0002\u0002\u016f\u0dc7\u0003\u0002\u0002\u0002\u0171\u0dcc\u0003\u0002", + "\u0002\u0002\u0173\u0ddf\u0003\u0002\u0002\u0002\u0175\u0de3\u0003\u0002", + "\u0002\u0002\u0177\u0deb\u0003\u0002\u0002\u0002\u0179\u0df2\u0003\u0002", + "\u0002\u0002\u017b\u0dfd\u0003\u0002\u0002\u0002\u017d\u0e09\u0003\u0002", + "\u0002\u0002\u017f\u0e12\u0003\u0002\u0002\u0002\u0181\u0e27\u0003\u0002", + "\u0002\u0002\u0183\u0e36\u0003\u0002\u0002\u0002\u0185\u0e3f\u0003\u0002", + "\u0002\u0002\u0187\u0e5d\u0003\u0002\u0002\u0002\u0189\u0e6e\u0003\u0002", + "\u0002\u0002\u018b\u0e78\u0003\u0002\u0002\u0002\u018d\u0e7f\u0003\u0002", + "\u0002\u0002\u018f\u0e95\u0003\u0002\u0002\u0002\u0191\u0e9b\u0003\u0002", + "\u0002\u0002\u0193\u0eae\u0003\u0002\u0002\u0002\u0195\u0ec3\u0003\u0002", + "\u0002\u0002\u0197\u0ecc\u0003\u0002\u0002\u0002\u0199\u0ed3\u0003\u0002", + "\u0002\u0002\u019b\u0edf\u0003\u0002\u0002\u0002\u019d\u0ee8\u0003\u0002", + "\u0002\u0002\u019f\u0ef2\u0003\u0002\u0002\u0002\u01a1\u0efa\u0003\u0002", + "\u0002\u0002\u01a3\u0f03\u0003\u0002\u0002\u0002\u01a5\u0f0a\u0003\u0002", + "\u0002\u0002\u01a7\u0f17\u0003\u0002\u0002\u0002\u01a9\u0f1c\u0003\u0002", + "\u0002\u0002\u01ab\u0f25\u0003\u0002\u0002\u0002\u01ad\u0f2c\u0003\u0002", + "\u0002\u0002\u01af\u0f35\u0003\u0002\u0002\u0002\u01b1\u0f41\u0003\u0002", + "\u0002\u0002\u01b3\u0f50\u0003\u0002\u0002\u0002\u01b5\u0f5e\u0003\u0002", + "\u0002\u0002\u01b7\u0f62\u0003\u0002\u0002\u0002\u01b9\u0f6f\u0003\u0002", + "\u0002\u0002\u01bb\u0f74\u0003\u0002\u0002\u0002\u01bd\u0f79\u0003\u0002", + "\u0002\u0002\u01bf\u0f80\u0003\u0002\u0002\u0002\u01c1\u0f83\u0003\u0002", + "\u0002\u0002\u01c3\u0f87\u0003\u0002\u0002\u0002\u01c5\u0f8f\u0003\u0002", + "\u0002\u0002\u01c7\u0f9c\u0003\u0002\u0002\u0002\u01c9\u0f9f\u0003\u0002", + "\u0002\u0002\u01cb\u0faa\u0003\u0002\u0002\u0002\u01cd\u0faf\u0003\u0002", + "\u0002\u0002\u01cf\u0fbe\u0003\u0002\u0002\u0002\u01d1\u0fc8\u0003\u0002", + "\u0002\u0002\u01d3\u0fd3\u0003\u0002\u0002\u0002\u01d5\u0fdb\u0003\u0002", + "\u0002\u0002\u01d7\u0fe2\u0003\u0002\u0002\u0002\u01d9\u0fe5\u0003\u0002", + "\u0002\u0002\u01db\u0feb\u0003\u0002\u0002\u0002\u01dd\u0ff1\u0003\u0002", + "\u0002\u0002\u01df\u0ff6\u0003\u0002\u0002\u0002\u01e1\u0ffb\u0003\u0002", + "\u0002\u0002\u01e3\u1006\u0003\u0002\u0002\u0002\u01e5\u100e\u0003\u0002", + "\u0002\u0002\u01e7\u1017\u0003\u0002\u0002\u0002\u01e9\u101f\u0003\u0002", + "\u0002\u0002\u01eb\u102e\u0003\u0002\u0002\u0002\u01ed\u1036\u0003\u0002", + "\u0002\u0002\u01ef\u103d\u0003\u0002\u0002\u0002\u01f1\u1046\u0003\u0002", + "\u0002\u0002\u01f3\u104c\u0003\u0002\u0002\u0002\u01f5\u1051\u0003\u0002", + "\u0002\u0002\u01f7\u105a\u0003\u0002\u0002\u0002\u01f9\u1061\u0003\u0002", + "\u0002\u0002\u01fb\u106b\u0003\u0002\u0002\u0002\u01fd\u1075\u0003\u0002", + "\u0002\u0002\u01ff\u107d\u0003\u0002\u0002\u0002\u0201\u1083\u0003\u0002", + "\u0002\u0002\u0203\u1088\u0003\u0002\u0002\u0002\u0205\u1092\u0003\u0002", + "\u0002\u0002\u0207\u109a\u0003\u0002\u0002\u0002\u0209\u10a1\u0003\u0002", + "\u0002\u0002\u020b\u10a8\u0003\u0002\u0002\u0002\u020d\u10aa\u0003\u0002", + "\u0002\u0002\u020f\u10b4\u0003\u0002\u0002\u0002\u0211\u10b8\u0003\u0002", + "\u0002\u0002\u0213\u10bd\u0003\u0002\u0002\u0002\u0215\u10c6\u0003\u0002", + "\u0002\u0002\u0217\u10dc\u0003\u0002\u0002\u0002\u0219\u10e8\u0003\u0002", + "\u0002\u0002\u021b\u10f3\u0003\u0002\u0002\u0002\u021d\u10fe\u0003\u0002", + "\u0002\u0002\u021f\u1113\u0003\u0002\u0002\u0002\u0221\u112e\u0003\u0002", + "\u0002\u0002\u0223\u113a\u0003\u0002\u0002\u0002\u0225\u1143\u0003\u0002", + "\u0002\u0002\u0227\u1149\u0003\u0002\u0002\u0002\u0229\u1151\u0003\u0002", + "\u0002\u0002\u022b\u1159\u0003\u0002\u0002\u0002\u022d\u1162\u0003\u0002", + "\u0002\u0002\u022f\u1169\u0003\u0002\u0002\u0002\u0231\u1174\u0003\u0002", + "\u0002\u0002\u0233\u117b\u0003\u0002\u0002\u0002\u0235\u1183\u0003\u0002", + "\u0002\u0002\u0237\u118a\u0003\u0002\u0002\u0002\u0239\u1191\u0003\u0002", + "\u0002\u0002\u023b\u1198\u0003\u0002\u0002\u0002\u023d\u119e\u0003\u0002", + "\u0002\u0002\u023f\u11a7\u0003\u0002\u0002\u0002\u0241\u11ac\u0003\u0002", + "\u0002\u0002\u0243\u11b5\u0003\u0002\u0002\u0002\u0245\u11c0\u0003\u0002", + "\u0002\u0002\u0247\u11c8\u0003\u0002\u0002\u0002\u0249\u11d1\u0003\u0002", + "\u0002\u0002\u024b\u11da\u0003\u0002\u0002\u0002\u024d\u11e3\u0003\u0002", + "\u0002\u0002\u024f\u11ec\u0003\u0002\u0002\u0002\u0251\u11f3\u0003\u0002", + "\u0002\u0002\u0253\u11f8\u0003\u0002\u0002\u0002\u0255\u11fd\u0003\u0002", + "\u0002\u0002\u0257\u1202\u0003\u0002\u0002\u0002\u0259\u120c\u0003\u0002", + "\u0002\u0002\u025b\u1213\u0003\u0002\u0002\u0002\u025d\u121a\u0003\u0002", + "\u0002\u0002\u025f\u1228\u0003\u0002\u0002\u0002\u0261\u122f\u0003\u0002", + "\u0002\u0002\u0263\u1246\u0003\u0002\u0002\u0002\u0265\u1265\u0003\u0002", + "\u0002\u0002\u0267\u127d\u0003\u0002\u0002\u0002\u0269\u1284\u0003\u0002", + "\u0002\u0002\u026b\u128c\u0003\u0002\u0002\u0002\u026d\u129b\u0003\u0002", + "\u0002\u0002\u026f\u12a8\u0003\u0002\u0002\u0002\u0271\u12b0\u0003\u0002", + "\u0002\u0002\u0273\u12bd\u0003\u0002\u0002\u0002\u0275\u12c1\u0003\u0002", + "\u0002\u0002\u0277\u12c9\u0003\u0002\u0002\u0002\u0279\u12d2\u0003\u0002", + "\u0002\u0002\u027b\u12d6\u0003\u0002\u0002\u0002\u027d\u12db\u0003\u0002", + "\u0002\u0002\u027f\u12e4\u0003\u0002\u0002\u0002\u0281\u12e9\u0003\u0002", + "\u0002\u0002\u0283\u12f0\u0003\u0002\u0002\u0002\u0285\u12fe\u0003\u0002", + "\u0002\u0002\u0287\u1304\u0003\u0002\u0002\u0002\u0289\u1313\u0003\u0002", + "\u0002\u0002\u028b\u1321\u0003\u0002\u0002\u0002\u028d\u1333\u0003\u0002", + "\u0002\u0002\u028f\u133e\u0003\u0002\u0002\u0002\u0291\u1344\u0003\u0002", + "\u0002\u0002\u0293\u134a\u0003\u0002\u0002\u0002\u0295\u1350\u0003\u0002", + "\u0002\u0002\u0297\u1358\u0003\u0002\u0002\u0002\u0299\u1366\u0003\u0002", + "\u0002\u0002\u029b\u136b\u0003\u0002\u0002\u0002\u029d\u1373\u0003\u0002", + "\u0002\u0002\u029f\u1381\u0003\u0002\u0002\u0002\u02a1\u138b\u0003\u0002", + "\u0002\u0002\u02a3\u1397\u0003\u0002\u0002\u0002\u02a5\u139d\u0003\u0002", + "\u0002\u0002\u02a7\u13a9\u0003\u0002\u0002\u0002\u02a9\u13ae\u0003\u0002", + "\u0002\u0002\u02ab\u13b5\u0003\u0002\u0002\u0002\u02ad\u13b9\u0003\u0002", + "\u0002\u0002\u02af\u13c2\u0003\u0002\u0002\u0002\u02b1\u13c7\u0003\u0002", + "\u0002\u0002\u02b3\u13ca\u0003\u0002\u0002\u0002\u02b5\u13ce\u0003\u0002", + "\u0002\u0002\u02b7\u13de\u0003\u0002\u0002\u0002\u02b9\u13e3\u0003\u0002", + "\u0002\u0002\u02bb\u13ef\u0003\u0002\u0002\u0002\u02bd\u13f8\u0003\u0002", + "\u0002\u0002\u02bf\u1400\u0003\u0002\u0002\u0002\u02c1\u1409\u0003\u0002", + "\u0002\u0002\u02c3\u1411\u0003\u0002\u0002\u0002\u02c5\u141b\u0003\u0002", + "\u0002\u0002\u02c7\u1421\u0003\u0002\u0002\u0002\u02c9\u1428\u0003\u0002", + "\u0002\u0002\u02cb\u142f\u0003\u0002\u0002\u0002\u02cd\u1437\u0003\u0002", + "\u0002\u0002\u02cf\u143e\u0003\u0002\u0002\u0002\u02d1\u1445\u0003\u0002", + "\u0002\u0002\u02d3\u1450\u0003\u0002\u0002\u0002\u02d5\u1454\u0003\u0002", + "\u0002\u0002\u02d7\u1458\u0003\u0002\u0002\u0002\u02d9\u145d\u0003\u0002", + "\u0002\u0002\u02db\u1462\u0003\u0002\u0002\u0002\u02dd\u1469\u0003\u0002", + "\u0002\u0002\u02df\u1471\u0003\u0002\u0002\u0002\u02e1\u1480\u0003\u0002", + "\u0002\u0002\u02e3\u1485\u0003\u0002\u0002\u0002\u02e5\u1490\u0003\u0002", + "\u0002\u0002\u02e7\u1498\u0003\u0002\u0002\u0002\u02e9\u149d\u0003\u0002", + "\u0002\u0002\u02eb\u14a3\u0003\u0002\u0002\u0002\u02ed\u14a9\u0003\u0002", + "\u0002\u0002\u02ef\u14b1\u0003\u0002\u0002\u0002\u02f1\u14b6\u0003\u0002", + "\u0002\u0002\u02f3\u14bd\u0003\u0002\u0002\u0002\u02f5\u14c5\u0003\u0002", + "\u0002\u0002\u02f7\u14cd\u0003\u0002\u0002\u0002\u02f9\u14d7\u0003\u0002", + "\u0002\u0002\u02fb\u14e0\u0003\u0002\u0002\u0002\u02fd\u14f3\u0003\u0002", + "\u0002\u0002\u02ff\u14fa\u0003\u0002\u0002\u0002\u0301\u1505\u0003\u0002", + "\u0002\u0002\u0303\u150c\u0003\u0002\u0002\u0002\u0305\u1514\u0003\u0002", + "\u0002\u0002\u0307\u151c\u0003\u0002\u0002\u0002\u0309\u1524\u0003\u0002", + "\u0002\u0002\u030b\u152c\u0003\u0002\u0002\u0002\u030d\u1535\u0003\u0002", + "\u0002\u0002\u030f\u153b\u0003\u0002\u0002\u0002\u0311\u1545\u0003\u0002", + "\u0002\u0002\u0313\u154f\u0003\u0002\u0002\u0002\u0315\u1573\u0003\u0002", + "\u0002\u0002\u0317\u158c\u0003\u0002\u0002\u0002\u0319\u1594\u0003\u0002", + "\u0002\u0002\u031b\u15a6\u0003\u0002\u0002\u0002\u031d\u15b1\u0003\u0002", + "\u0002\u0002\u031f\u15be\u0003\u0002\u0002\u0002\u0321\u15cc\u0003\u0002", + "\u0002\u0002\u0323\u15dc\u0003\u0002\u0002\u0002\u0325\u15e2\u0003\u0002", + "\u0002\u0002\u0327\u15ed\u0003\u0002\u0002\u0002\u0329\u15f6\u0003\u0002", + "\u0002\u0002\u032b\u15fc\u0003\u0002\u0002\u0002\u032d\u1607\u0003\u0002", + "\u0002\u0002\u032f\u160c\u0003\u0002\u0002\u0002\u0331\u1619\u0003\u0002", + "\u0002\u0002\u0333\u1624\u0003\u0002\u0002\u0002\u0335\u163b\u0003\u0002", + "\u0002\u0002\u0337\u1647\u0003\u0002\u0002\u0002\u0339\u165e\u0003\u0002", + "\u0002\u0002\u033b\u167b\u0003\u0002\u0002\u0002\u033d\u1688\u0003\u0002", + "\u0002\u0002\u033f\u168c\u0003\u0002\u0002\u0002\u0341\u169c\u0003\u0002", + "\u0002\u0002\u0343\u16a9\u0003\u0002\u0002\u0002\u0345\u16b0\u0003\u0002", + "\u0002\u0002\u0347\u16be\u0003\u0002\u0002\u0002\u0349\u16ce\u0003\u0002", + "\u0002\u0002\u034b\u16d6\u0003\u0002\u0002\u0002\u034d\u16e3\u0003\u0002", + "\u0002\u0002\u034f\u16ea\u0003\u0002\u0002\u0002\u0351\u16fa\u0003\u0002", + "\u0002\u0002\u0353\u1706\u0003\u0002\u0002\u0002\u0355\u170d\u0003\u0002", + "\u0002\u0002\u0357\u1721\u0003\u0002\u0002\u0002\u0359\u1728\u0003\u0002", + "\u0002\u0002\u035b\u1730\u0003\u0002\u0002\u0002\u035d\u1736\u0003\u0002", + "\u0002\u0002\u035f\u1747\u0003\u0002\u0002\u0002\u0361\u1757\u0003\u0002", + "\u0002\u0002\u0363\u1760\u0003\u0002\u0002\u0002\u0365\u176d\u0003\u0002", + "\u0002\u0002\u0367\u1775\u0003\u0002\u0002\u0002\u0369\u1780\u0003\u0002", + "\u0002\u0002\u036b\u1792\u0003\u0002\u0002\u0002\u036d\u179c\u0003\u0002", + "\u0002\u0002\u036f\u17b0\u0003\u0002\u0002\u0002\u0371\u17b7\u0003\u0002", + "\u0002\u0002\u0373\u17cf\u0003\u0002\u0002\u0002\u0375\u17d7\u0003\u0002", + "\u0002\u0002\u0377\u17df\u0003\u0002\u0002\u0002\u0379\u17e6\u0003\u0002", + "\u0002\u0002\u037b\u17ec\u0003\u0002\u0002\u0002\u037d\u17f6\u0003\u0002", + "\u0002\u0002\u037f\u17fe\u0003\u0002\u0002\u0002\u0381\u1802\u0003\u0002", + "\u0002\u0002\u0383\u180d\u0003\u0002\u0002\u0002\u0385\u1822\u0003\u0002", + "\u0002\u0002\u0387\u182d\u0003\u0002\u0002\u0002\u0389\u183b\u0003\u0002", + "\u0002\u0002\u038b\u1852\u0003\u0002\u0002\u0002\u038d\u1861\u0003\u0002", + "\u0002\u0002\u038f\u1866\u0003\u0002\u0002\u0002\u0391\u1884\u0003\u0002", + "\u0002\u0002\u0393\u188c\u0003\u0002\u0002\u0002\u0395\u1895\u0003\u0002", + "\u0002\u0002\u0397\u189e\u0003\u0002\u0002\u0002\u0399\u18a7\u0003\u0002", + "\u0002\u0002\u039b\u18ac\u0003\u0002\u0002\u0002\u039d\u18b8\u0003\u0002", + "\u0002\u0002\u039f\u18c4\u0003\u0002\u0002\u0002\u03a1\u18cf\u0003\u0002", + "\u0002\u0002\u03a3\u18da\u0003\u0002\u0002\u0002\u03a5\u18f4\u0003\u0002", + "\u0002\u0002\u03a7\u1905\u0003\u0002\u0002\u0002\u03a9\u190b\u0003\u0002", + "\u0002\u0002\u03ab\u191e\u0003\u0002\u0002\u0002\u03ad\u1926\u0003\u0002", + "\u0002\u0002\u03af\u1931\u0003\u0002\u0002\u0002\u03b1\u193c\u0003\u0002", + "\u0002\u0002\u03b3\u1940\u0003\u0002\u0002\u0002\u03b5\u194c\u0003\u0002", + "\u0002\u0002\u03b7\u1951\u0003\u0002\u0002\u0002\u03b9\u1956\u0003\u0002", + "\u0002\u0002\u03bb\u195d\u0003\u0002\u0002\u0002\u03bd\u196c\u0003\u0002", + "\u0002\u0002\u03bf\u1974\u0003\u0002\u0002\u0002\u03c1\u1983\u0003\u0002", + "\u0002\u0002\u03c3\u198c\u0003\u0002\u0002\u0002\u03c5\u198f\u0003\u0002", + "\u0002\u0002\u03c7\u1998\u0003\u0002\u0002\u0002\u03c9\u19a0\u0003\u0002", + "\u0002\u0002\u03cb\u19a9\u0003\u0002\u0002\u0002\u03cd\u19b3\u0003\u0002", + "\u0002\u0002\u03cf\u19b9\u0003\u0002\u0002\u0002\u03d1\u19c0\u0003\u0002", + "\u0002\u0002\u03d3\u19ce\u0003\u0002\u0002\u0002\u03d5\u19de\u0003\u0002", + "\u0002\u0002\u03d7\u19e9\u0003\u0002\u0002\u0002\u03d9\u19f6\u0003\u0002", + "\u0002\u0002\u03db\u1a11\u0003\u0002\u0002\u0002\u03dd\u1a1b\u0003\u0002", + "\u0002\u0002\u03df\u1a26\u0003\u0002\u0002\u0002\u03e1\u1a2c\u0003\u0002", + "\u0002\u0002\u03e3\u1a33\u0003\u0002\u0002\u0002\u03e5\u1a3f\u0003\u0002", + "\u0002\u0002\u03e7\u1a48\u0003\u0002\u0002\u0002\u03e9\u1a57\u0003\u0002", + "\u0002\u0002\u03eb\u1a65\u0003\u0002\u0002\u0002\u03ed\u1a6d\u0003\u0002", + "\u0002\u0002\u03ef\u1a85\u0003\u0002\u0002\u0002\u03f1\u1a8a\u0003\u0002", + "\u0002\u0002\u03f3\u1a97\u0003\u0002\u0002\u0002\u03f5\u1aa1\u0003\u0002", + "\u0002\u0002\u03f7\u1aac\u0003\u0002\u0002\u0002\u03f9\u1ab5\u0003\u0002", + "\u0002\u0002\u03fb\u1ac0\u0003\u0002\u0002\u0002\u03fd\u1ac7\u0003\u0002", + "\u0002\u0002\u03ff\u1acd\u0003\u0002\u0002\u0002\u0401\u1ad9\u0003\u0002", + "\u0002\u0002\u0403\u1ae3\u0003\u0002\u0002\u0002\u0405\u1ae9\u0003\u0002", + "\u0002\u0002\u0407\u1b08\u0003\u0002\u0002\u0002\u0409\u1b0f\u0003\u0002", + "\u0002\u0002\u040b\u1b16\u0003\u0002\u0002\u0002\u040d\u1b23\u0003\u0002", + "\u0002\u0002\u040f\u1b2c\u0003\u0002\u0002\u0002\u0411\u1b35\u0003\u0002", + "\u0002\u0002\u0413\u1b38\u0003\u0002\u0002\u0002\u0415\u1b40\u0003\u0002", + "\u0002\u0002\u0417\u1b4b\u0003\u0002\u0002\u0002\u0419\u1b52\u0003\u0002", + "\u0002\u0002\u041b\u1b55\u0003\u0002\u0002\u0002\u041d\u1b68\u0003\u0002", + "\u0002\u0002\u041f\u1b71\u0003\u0002\u0002\u0002\u0421\u1b7d\u0003\u0002", + "\u0002\u0002\u0423\u1b82\u0003\u0002\u0002\u0002\u0425\u1b87\u0003\u0002", + "\u0002\u0002\u0427\u1b9c\u0003\u0002\u0002\u0002\u0429\u1ba1\u0003\u0002", + "\u0002\u0002\u042b\u1bb7\u0003\u0002\u0002\u0002\u042d\u1bbd\u0003\u0002", + "\u0002\u0002\u042f\u1bcc\u0003\u0002\u0002\u0002\u0431\u1bf2\u0003\u0002", + "\u0002\u0002\u0433\u1bfc\u0003\u0002\u0002\u0002\u0435\u1c08\u0003\u0002", + "\u0002\u0002\u0437\u1c13\u0003\u0002\u0002\u0002\u0439\u1c27\u0003\u0002", + "\u0002\u0002\u043b\u1c33\u0003\u0002\u0002\u0002\u043d\u1c3d\u0003\u0002", + "\u0002\u0002\u043f\u1c43\u0003\u0002\u0002\u0002\u0441\u1c4f\u0003\u0002", + "\u0002\u0002\u0443\u1c58\u0003\u0002\u0002\u0002\u0445\u1c5c\u0003\u0002", + "\u0002\u0002\u0447\u1c5f\u0003\u0002\u0002\u0002\u0449\u1c69\u0003\u0002", + "\u0002\u0002\u044b\u1c6d\u0003\u0002\u0002\u0002\u044d\u1c72\u0003\u0002", + "\u0002\u0002\u044f\u1c75\u0003\u0002\u0002\u0002\u0451\u1c7a\u0003\u0002", + "\u0002\u0002\u0453\u1c84\u0003\u0002\u0002\u0002\u0455\u1c8f\u0003\u0002", + "\u0002\u0002\u0457\u1c94\u0003\u0002\u0002\u0002\u0459\u1c9b\u0003\u0002", + "\u0002\u0002\u045b\u1c9f\u0003\u0002\u0002\u0002\u045d\u1ca4\u0003\u0002", + "\u0002\u0002\u045f\u1caf\u0003\u0002\u0002\u0002\u0461\u1cb4\u0003\u0002", + "\u0002\u0002\u0463\u1cba\u0003\u0002\u0002\u0002\u0465\u1cbf\u0003\u0002", + "\u0002\u0002\u0467\u1cc8\u0003\u0002\u0002\u0002\u0469\u1cd5\u0003\u0002", + "\u0002\u0002\u046b\u1ce4\u0003\u0002\u0002\u0002\u046d\u1cea\u0003\u0002", + "\u0002\u0002\u046f\u1cf3\u0003\u0002\u0002\u0002\u0471\u1cf8\u0003\u0002", + "\u0002\u0002\u0473\u1d08\u0003\u0002\u0002\u0002\u0475\u1d0e\u0003\u0002", + "\u0002\u0002\u0477\u1d13\u0003\u0002\u0002\u0002\u0479\u1d17\u0003\u0002", + "\u0002\u0002\u047b\u1d1e\u0003\u0002\u0002\u0002\u047d\u1d23\u0003\u0002", + "\u0002\u0002\u047f\u1d30\u0003\u0002\u0002\u0002\u0481\u1d34\u0003\u0002", + "\u0002\u0002\u0483\u1d44\u0003\u0002\u0002\u0002\u0485\u1d4c\u0003\u0002", + "\u0002\u0002\u0487\u1d56\u0003\u0002\u0002\u0002\u0489\u1d6a\u0003\u0002", + "\u0002\u0002\u048b\u1d7d\u0003\u0002\u0002\u0002\u048d\u1d8b\u0003\u0002", + "\u0002\u0002\u048f\u1d9d\u0003\u0002\u0002\u0002\u0491\u1db0\u0003\u0002", + "\u0002\u0002\u0493\u1db7\u0003\u0002\u0002\u0002\u0495\u1dc4\u0003\u0002", + "\u0002\u0002\u0497\u1dcc\u0003\u0002\u0002\u0002\u0499\u1dcf\u0003\u0002", + "\u0002\u0002\u049b\u1dd6\u0003\u0002\u0002\u0002\u049d\u1dec\u0003\u0002", + "\u0002\u0002\u049f\u1df4\u0003\u0002\u0002\u0002\u04a1\u1df8\u0003\u0002", + "\u0002\u0002\u04a3\u1e0e\u0003\u0002\u0002\u0002\u04a5\u1e1e\u0003\u0002", + "\u0002\u0002\u04a7\u1e32\u0003\u0002\u0002\u0002\u04a9\u1e45\u0003\u0002", + "\u0002\u0002\u04ab\u1e4d\u0003\u0002\u0002\u0002\u04ad\u1e5c\u0003\u0002", + "\u0002\u0002\u04af\u1e72\u0003\u0002\u0002\u0002\u04b1\u1e77\u0003\u0002", + "\u0002\u0002\u04b3\u1e7e\u0003\u0002\u0002\u0002\u04b5\u1e83\u0003\u0002", + "\u0002\u0002\u04b7\u1e8e\u0003\u0002\u0002\u0002\u04b9\u1e93\u0003\u0002", + "\u0002\u0002\u04bb\u1ea3\u0003\u0002\u0002\u0002\u04bd\u1eaf\u0003\u0002", + "\u0002\u0002\u04bf\u1eba\u0003\u0002\u0002\u0002\u04c1\u1ec7\u0003\u0002", + "\u0002\u0002\u04c3\u1ecc\u0003\u0002\u0002\u0002\u04c5\u1ecf\u0003\u0002", + "\u0002\u0002\u04c7\u1edb\u0003\u0002\u0002\u0002\u04c9\u1ee3\u0003\u0002", + "\u0002\u0002\u04cb\u1eeb\u0003\u0002\u0002\u0002\u04cd\u1ef1\u0003\u0002", + "\u0002\u0002\u04cf\u1efa\u0003\u0002\u0002\u0002\u04d1\u1f10\u0003\u0002", + "\u0002\u0002\u04d3\u1f1c\u0003\u0002\u0002\u0002\u04d5\u1f27\u0003\u0002", + "\u0002\u0002\u04d7\u1f2e\u0003\u0002\u0002\u0002\u04d9\u1f34\u0003\u0002", + "\u0002\u0002\u04db\u1f3d\u0003\u0002\u0002\u0002\u04dd\u1f44\u0003\u0002", + "\u0002\u0002\u04df\u1f57\u0003\u0002\u0002\u0002\u04e1\u1f5e\u0003\u0002", + "\u0002\u0002\u04e3\u1f66\u0003\u0002\u0002\u0002\u04e5\u1f6d\u0003\u0002", + "\u0002\u0002\u04e7\u1f79\u0003\u0002\u0002\u0002\u04e9\u1f80\u0003\u0002", + "\u0002\u0002\u04eb\u1f85\u0003\u0002\u0002\u0002\u04ed\u1f93\u0003\u0002", + "\u0002\u0002\u04ef\u1f9e\u0003\u0002\u0002\u0002\u04f1\u1fa7\u0003\u0002", + "\u0002\u0002\u04f3\u1fab\u0003\u0002\u0002\u0002\u04f5\u1fb2\u0003\u0002", + "\u0002\u0002\u04f7\u1fbb\u0003\u0002\u0002\u0002\u04f9\u1fc1\u0003\u0002", + "\u0002\u0002\u04fb\u1fcd\u0003\u0002\u0002\u0002\u04fd\u1fde\u0003\u0002", + "\u0002\u0002\u04ff\u1fe8\u0003\u0002\u0002\u0002\u0501\u1ff3\u0003\u0002", + "\u0002\u0002\u0503\u1ffb\u0003\u0002\u0002\u0002\u0505\u2000\u0003\u0002", + "\u0002\u0002\u0507\u2018\u0003\u0002\u0002\u0002\u0509\u201d\u0003\u0002", + "\u0002\u0002\u050b\u2022\u0003\u0002\u0002\u0002\u050d\u202c\u0003\u0002", + "\u0002\u0002\u050f\u2039\u0003\u0002\u0002\u0002\u0511\u203f\u0003\u0002", + "\u0002\u0002\u0513\u2048\u0003\u0002\u0002\u0002\u0515\u2057\u0003\u0002", + "\u0002\u0002\u0517\u205f\u0003\u0002\u0002\u0002\u0519\u206b\u0003\u0002", + "\u0002\u0002\u051b\u2076\u0003\u0002\u0002\u0002\u051d\u2085\u0003\u0002", + "\u0002\u0002\u051f\u208e\u0003\u0002\u0002\u0002\u0521\u2097\u0003\u0002", + "\u0002\u0002\u0523\u20a9\u0003\u0002\u0002\u0002\u0525\u20af\u0003\u0002", + "\u0002\u0002\u0527\u20b5\u0003\u0002\u0002\u0002\u0529\u20c1\u0003\u0002", + "\u0002\u0002\u052b\u20d3\u0003\u0002\u0002\u0002\u052d\u20d9\u0003\u0002", + "\u0002\u0002\u052f\u20de\u0003\u0002\u0002\u0002\u0531\u20e2\u0003\u0002", + "\u0002\u0002\u0533\u20e6\u0003\u0002\u0002\u0002\u0535\u20ee\u0003\u0002", + "\u0002\u0002\u0537\u2106\u0003\u0002\u0002\u0002\u0539\u2110\u0003\u0002", + "\u0002\u0002\u053b\u2127\u0003\u0002\u0002\u0002\u053d\u2132\u0003\u0002", + "\u0002\u0002\u053f\u213b\u0003\u0002\u0002\u0002\u0541\u2143\u0003\u0002", + "\u0002\u0002\u0543\u214b\u0003\u0002\u0002\u0002\u0545\u2155\u0003\u0002", + "\u0002\u0002\u0547\u215e\u0003\u0002\u0002\u0002\u0549\u2171\u0003\u0002", + "\u0002\u0002\u054b\u217a\u0003\u0002\u0002\u0002\u054d\u2181\u0003\u0002", + "\u0002\u0002\u054f\u2195\u0003\u0002\u0002\u0002\u0551\u219c\u0003\u0002", + "\u0002\u0002\u0553\u21a7\u0003\u0002\u0002\u0002\u0555\u21b2\u0003\u0002", + "\u0002\u0002\u0557\u21ba\u0003\u0002\u0002\u0002\u0559\u21d3\u0003\u0002", + "\u0002\u0002\u055b\u21f4\u0003\u0002\u0002\u0002\u055d\u2215\u0003\u0002", + "\u0002\u0002\u055f\u2241\u0003\u0002\u0002\u0002\u0561\u2254\u0003\u0002", + "\u0002\u0002\u0563\u225d\u0003\u0002\u0002\u0002\u0565\u2277\u0003\u0002", + "\u0002\u0002\u0567\u2287\u0003\u0002\u0002\u0002\u0569\u2291\u0003\u0002", + "\u0002\u0002\u056b\u2298\u0003\u0002\u0002\u0002\u056d\u229d\u0003\u0002", + "\u0002\u0002\u056f\u22a3\u0003\u0002\u0002\u0002\u0571\u22a7\u0003\u0002", + "\u0002\u0002\u0573\u22b2\u0003\u0002\u0002\u0002\u0575\u22ba\u0003\u0002", + "\u0002\u0002\u0577\u22bf\u0003\u0002\u0002\u0002\u0579\u22c6\u0003\u0002", + "\u0002\u0002\u057b\u22d4\u0003\u0002\u0002\u0002\u057d\u22db\u0003\u0002", + "\u0002\u0002\u057f\u22e2\u0003\u0002\u0002\u0002\u0581\u22ef\u0003\u0002", + "\u0002\u0002\u0583\u22f6\u0003\u0002\u0002\u0002\u0585\u2300\u0003\u0002", + "\u0002\u0002\u0587\u230f\u0003\u0002\u0002\u0002\u0589\u231e\u0003\u0002", + "\u0002\u0002\u058b\u2326\u0003\u0002\u0002\u0002\u058d\u232d\u0003\u0002", + "\u0002\u0002\u058f\u2336\u0003\u0002\u0002\u0002\u0591\u2343\u0003\u0002", + "\u0002\u0002\u0593\u2350\u0003\u0002\u0002\u0002\u0595\u2355\u0003\u0002", + "\u0002\u0002\u0597\u2364\u0003\u0002\u0002\u0002\u0599\u2369\u0003\u0002", + "\u0002\u0002\u059b\u236e\u0003\u0002\u0002\u0002\u059d\u2377\u0003\u0002", + "\u0002\u0002\u059f\u2384\u0003\u0002\u0002\u0002\u05a1\u2394\u0003\u0002", + "\u0002\u0002\u05a3\u239d\u0003\u0002\u0002\u0002\u05a5\u23a3\u0003\u0002", + "\u0002\u0002\u05a7\u23ac\u0003\u0002\u0002\u0002\u05a9\u23b6\u0003\u0002", + "\u0002\u0002\u05ab\u23bd\u0003\u0002\u0002\u0002\u05ad\u23c9\u0003\u0002", + "\u0002\u0002\u05af\u23ce\u0003\u0002\u0002\u0002\u05b1\u23d7\u0003\u0002", + "\u0002\u0002\u05b3\u23e0\u0003\u0002\u0002\u0002\u05b5\u23f9\u0003\u0002", + "\u0002\u0002\u05b7\u2401\u0003\u0002\u0002\u0002\u05b9\u240c\u0003\u0002", + "\u0002\u0002\u05bb\u2413\u0003\u0002\u0002\u0002\u05bd\u2420\u0003\u0002", + "\u0002\u0002\u05bf\u2427\u0003\u0002\u0002\u0002\u05c1\u2432\u0003\u0002", + "\u0002\u0002\u05c3\u2438\u0003\u0002\u0002\u0002\u05c5\u243f\u0003\u0002", + "\u0002\u0002\u05c7\u2448\u0003\u0002\u0002\u0002\u05c9\u2453\u0003\u0002", + "\u0002\u0002\u05cb\u2459\u0003\u0002\u0002\u0002\u05cd\u2461\u0003\u0002", + "\u0002\u0002\u05cf\u246e\u0003\u0002\u0002\u0002\u05d1\u2472\u0003\u0002", + "\u0002\u0002\u05d3\u247a\u0003\u0002\u0002\u0002\u05d5\u2484\u0003\u0002", + "\u0002\u0002\u05d7\u2497\u0003\u0002\u0002\u0002\u05d9\u249f\u0003\u0002", + "\u0002\u0002\u05db\u24a6\u0003\u0002\u0002\u0002\u05dd\u24ab\u0003\u0002", + "\u0002\u0002\u05df\u24c0\u0003\u0002\u0002\u0002\u05e1\u24c3\u0003\u0002", + "\u0002\u0002\u05e3\u24d0\u0003\u0002\u0002\u0002\u05e5\u24d6\u0003\u0002", + "\u0002\u0002\u05e7\u24db\u0003\u0002\u0002\u0002\u05e9\u24e0\u0003\u0002", + "\u0002\u0002\u05eb\u24e8\u0003\u0002\u0002\u0002\u05ed\u24ee\u0003\u0002", + "\u0002\u0002\u05ef\u24f6\u0003\u0002\u0002\u0002\u05f1\u250a\u0003\u0002", + "\u0002\u0002\u05f3\u2520\u0003\u0002\u0002\u0002\u05f5\u252b\u0003\u0002", + "\u0002\u0002\u05f7\u253b\u0003\u0002\u0002\u0002\u05f9\u2547\u0003\u0002", + "\u0002\u0002\u05fb\u254b\u0003\u0002\u0002\u0002\u05fd\u2550\u0003\u0002", + "\u0002\u0002\u05ff\u2566\u0003\u0002\u0002\u0002\u0601\u256b\u0003\u0002", + "\u0002\u0002\u0603\u2578\u0003\u0002\u0002\u0002\u0605\u2582\u0003\u0002", + "\u0002\u0002\u0607\u258e\u0003\u0002\u0002\u0002\u0609\u2596\u0003\u0002", + "\u0002\u0002\u060b\u25a0\u0003\u0002\u0002\u0002\u060d\u25a4\u0003\u0002", + "\u0002\u0002\u060f\u25aa\u0003\u0002\u0002\u0002\u0611\u25b4\u0003\u0002", + "\u0002\u0002\u0613\u25bf\u0003\u0002\u0002\u0002\u0615\u25c5\u0003\u0002", + "\u0002\u0002\u0617\u25c9\u0003\u0002\u0002\u0002\u0619\u25ce\u0003\u0002", + "\u0002\u0002\u061b\u25dc\u0003\u0002\u0002\u0002\u061d\u25e2\u0003\u0002", + "\u0002\u0002\u061f\u25e7\u0003\u0002\u0002\u0002\u0621\u25f7\u0003\u0002", + "\u0002\u0002\u0623\u260d\u0003\u0002\u0002\u0002\u0625\u2612\u0003\u0002", + "\u0002\u0002\u0627\u261b\u0003\u0002\u0002\u0002\u0629\u261f\u0003\u0002", + "\u0002\u0002\u062b\u2627\u0003\u0002\u0002\u0002\u062d\u2635\u0003\u0002", + "\u0002\u0002\u062f\u263f\u0003\u0002\u0002\u0002\u0631\u2646\u0003\u0002", + "\u0002\u0002\u0633\u264f\u0003\u0002\u0002\u0002\u0635\u2655\u0003\u0002", + "\u0002\u0002\u0637\u2664\u0003\u0002\u0002\u0002\u0639\u266f\u0003\u0002", + "\u0002\u0002\u063b\u2677\u0003\u0002\u0002\u0002\u063d\u2679\u0003\u0002", + "\u0002\u0002\u063f\u2681\u0003\u0002\u0002\u0002\u0641\u2689\u0003\u0002", + "\u0002\u0002\u0643\u268f\u0003\u0002\u0002\u0002\u0645\u2698\u0003\u0002", + "\u0002\u0002\u0647\u26b8\u0003\u0002\u0002\u0002\u0649\u26cf\u0003\u0002", + "\u0002\u0002\u064b\u26dc\u0003\u0002\u0002\u0002\u064d\u26e4\u0003\u0002", + "\u0002\u0002\u064f\u26e8\u0003\u0002\u0002\u0002\u0651\u26f3\u0003\u0002", + "\u0002\u0002\u0653\u26f5\u0003\u0002\u0002\u0002\u0655\u26f7\u0003\u0002", + "\u0002\u0002\u0657\u26f9\u0003\u0002\u0002\u0002\u0659\u26fb\u0003\u0002", + "\u0002\u0002\u065b\u26fe\u0003\u0002\u0002\u0002\u065d\u2701\u0003\u0002", + "\u0002\u0002\u065f\u2704\u0003\u0002\u0002\u0002\u0661\u2707\u0003\u0002", + "\u0002\u0002\u0663\u270a\u0003\u0002\u0002\u0002\u0665\u270d\u0003\u0002", + "\u0002\u0002\u0667\u2710\u0003\u0002\u0002\u0002\u0669\u2713\u0003\u0002", + "\u0002\u0002\u066b\u2716\u0003\u0002\u0002\u0002\u066d\u2718\u0003\u0002", + "\u0002\u0002\u066f\u271a\u0003\u0002\u0002\u0002\u0671\u271c\u0003\u0002", + "\u0002\u0002\u0673\u271e\u0003\u0002\u0002\u0002\u0675\u2720\u0003\u0002", + "\u0002\u0002\u0677\u2722\u0003\u0002\u0002\u0002\u0679\u2724\u0003\u0002", + "\u0002\u0002\u067b\u2726\u0003\u0002\u0002\u0002\u067d\u2728\u0003\u0002", + "\u0002\u0002\u067f\u272a\u0003\u0002\u0002\u0002\u0681\u272c\u0003\u0002", + "\u0002\u0002\u0683\u272e\u0003\u0002\u0002\u0002\u0685\u2730\u0003\u0002", + "\u0002\u0002\u0687\u2732\u0003\u0002\u0002\u0002\u0689\u2734\u0003\u0002", + "\u0002\u0002\u068b\u2736\u0003\u0002\u0002\u0002\u068d\u2738\u0003\u0002", + "\u0002\u0002\u068f\u273a\u0003\u0002\u0002\u0002\u0691\u273c\u0003\u0002", + "\u0002\u0002\u0693\u273e\u0003\u0002\u0002\u0002\u0695\u2744\u0003\u0002", + "\u0002\u0002\u0697\u2763\u0003\u0002\u0002\u0002\u0699\u2765\u0003\u0002", + "\u0002\u0002\u069b\u2767\u0003\u0002\u0002\u0002\u069d\u2769\u0003\u0002", + "\u0002\u0002\u069f\u06a0\u0007C\u0002\u0002\u06a0\u06a1\u0007D\u0002", + "\u0002\u06a1\u06a2\u0007U\u0002\u0002\u06a2\u06a3\u0007G\u0002\u0002", + "\u06a3\u06a4\u0007P\u0002\u0002\u06a4\u06a5\u0007V\u0002\u0002\u06a5", + "\u0004\u0003\u0002\u0002\u0002\u06a6\u06a7\u0007C\u0002\u0002\u06a7", + "\u06a8\u0007F\u0002\u0002\u06a8\u06a9\u0007F\u0002\u0002\u06a9\u0006", + "\u0003\u0002\u0002\u0002\u06aa\u06ab\u0007C\u0002\u0002\u06ab\u06ac", + "\u0007G\u0002\u0002\u06ac\u06ad\u0007U\u0002\u0002\u06ad\b\u0003\u0002", + "\u0002\u0002\u06ae\u06af\u0007C\u0002\u0002\u06af\u06b0\u0007N\u0002", + "\u0002\u06b0\u06b1\u0007N\u0002\u0002\u06b1\n\u0003\u0002\u0002\u0002", + "\u06b2\u06b3\u0007C\u0002\u0002\u06b3\u06b4\u0007N\u0002\u0002\u06b4", + "\u06b5\u0007N\u0002\u0002\u06b5\u06b6\u0007Q\u0002\u0002\u06b6\u06b7", + "\u0007Y\u0002\u0002\u06b7\u06b8\u0007a\u0002\u0002\u06b8\u06b9\u0007", + "E\u0002\u0002\u06b9\u06ba\u0007Q\u0002\u0002\u06ba\u06bb\u0007P\u0002", + "\u0002\u06bb\u06bc\u0007P\u0002\u0002\u06bc\u06bd\u0007G\u0002\u0002", + "\u06bd\u06be\u0007E\u0002\u0002\u06be\u06bf\u0007V\u0002\u0002\u06bf", + "\u06c0\u0007K\u0002\u0002\u06c0\u06c1\u0007Q\u0002\u0002\u06c1\u06c2", + "\u0007P\u0002\u0002\u06c2\u06c3\u0007U\u0002\u0002\u06c3\f\u0003\u0002", + "\u0002\u0002\u06c4\u06c5\u0007C\u0002\u0002\u06c5\u06c6\u0007N\u0002", + "\u0002\u06c6\u06c7\u0007N\u0002\u0002\u06c7\u06c8\u0007Q\u0002\u0002", + "\u06c8\u06c9\u0007Y\u0002\u0002\u06c9\u06ca\u0007a\u0002\u0002\u06ca", + "\u06cb\u0007O\u0002\u0002\u06cb\u06cc\u0007W\u0002\u0002\u06cc\u06cd", + "\u0007N\u0002\u0002\u06cd\u06ce\u0007V\u0002\u0002\u06ce\u06cf\u0007", + "K\u0002\u0002\u06cf\u06d0\u0007R\u0002\u0002\u06d0\u06d1\u0007N\u0002", + "\u0002\u06d1\u06d2\u0007G\u0002\u0002\u06d2\u06d3\u0007a\u0002\u0002", + "\u06d3\u06d4\u0007G\u0002\u0002\u06d4\u06d5\u0007X\u0002\u0002\u06d5", + "\u06d6\u0007G\u0002\u0002\u06d6\u06d7\u0007P\u0002\u0002\u06d7\u06d8", + "\u0007V\u0002\u0002\u06d8\u06d9\u0007a\u0002\u0002\u06d9\u06da\u0007", + "N\u0002\u0002\u06da\u06db\u0007Q\u0002\u0002\u06db\u06dc\u0007U\u0002", + "\u0002\u06dc\u06dd\u0007U\u0002\u0002\u06dd\u000e\u0003\u0002\u0002", + "\u0002\u06de\u06df\u0007C\u0002\u0002\u06df\u06e0\u0007N\u0002\u0002", + "\u06e0\u06e1\u0007N\u0002\u0002\u06e1\u06e2\u0007Q\u0002\u0002\u06e2", + "\u06e3\u0007Y\u0002\u0002\u06e3\u06e4\u0007a\u0002\u0002\u06e4\u06e5", + "\u0007U\u0002\u0002\u06e5\u06e6\u0007K\u0002\u0002\u06e6\u06e7\u0007", + "P\u0002\u0002\u06e7\u06e8\u0007I\u0002\u0002\u06e8\u06e9\u0007N\u0002", + "\u0002\u06e9\u06ea\u0007G\u0002\u0002\u06ea\u06eb\u0007a\u0002\u0002", + "\u06eb\u06ec\u0007G\u0002\u0002\u06ec\u06ed\u0007X\u0002\u0002\u06ed", + "\u06ee\u0007G\u0002\u0002\u06ee\u06ef\u0007P\u0002\u0002\u06ef\u06f0", + "\u0007V\u0002\u0002\u06f0\u06f1\u0007a\u0002\u0002\u06f1\u06f2\u0007", + "N\u0002\u0002\u06f2\u06f3\u0007Q\u0002\u0002\u06f3\u06f4\u0007U\u0002", + "\u0002\u06f4\u06f5\u0007U\u0002\u0002\u06f5\u0010\u0003\u0002\u0002", + "\u0002\u06f6\u06f7\u0007C\u0002\u0002\u06f7\u06f8\u0007N\u0002\u0002", + "\u06f8\u06f9\u0007V\u0002\u0002\u06f9\u06fa\u0007G\u0002\u0002\u06fa", + "\u06fb\u0007T\u0002\u0002\u06fb\u0012\u0003\u0002\u0002\u0002\u06fc", + "\u06fd\u0007C\u0002\u0002\u06fd\u06fe\u0007P\u0002\u0002\u06fe\u06ff", + "\u0007F\u0002\u0002\u06ff\u0014\u0003\u0002\u0002\u0002\u0700\u0701", + "\u0007C\u0002\u0002\u0701\u0702\u0007P\u0002\u0002\u0702\u0703\u0007", + "Q\u0002\u0002\u0703\u0704\u0007P\u0002\u0002\u0704\u0705\u0007[\u0002", + "\u0002\u0705\u0706\u0007O\u0002\u0002\u0706\u0707\u0007Q\u0002\u0002", + "\u0707\u0708\u0007W\u0002\u0002\u0708\u0709\u0007U\u0002\u0002\u0709", + "\u0016\u0003\u0002\u0002\u0002\u070a\u070b\u0007C\u0002\u0002\u070b", + "\u070c\u0007P\u0002\u0002\u070c\u070d\u0007[\u0002\u0002\u070d\u0018", + "\u0003\u0002\u0002\u0002\u070e\u070f\u0007C\u0002\u0002\u070f\u0710", + "\u0007R\u0002\u0002\u0710\u0711\u0007R\u0002\u0002\u0711\u0712\u0007", + "G\u0002\u0002\u0712\u0713\u0007P\u0002\u0002\u0713\u0714\u0007F\u0002", + "\u0002\u0714\u001a\u0003\u0002\u0002\u0002\u0715\u0716\u0007C\u0002", + "\u0002\u0716\u0717\u0007R\u0002\u0002\u0717\u0718\u0007R\u0002\u0002", + "\u0718\u0719\u0007N\u0002\u0002\u0719\u071a\u0007K\u0002\u0002\u071a", + "\u071b\u0007E\u0002\u0002\u071b\u071c\u0007C\u0002\u0002\u071c\u071d", + "\u0007V\u0002\u0002\u071d\u071e\u0007K\u0002\u0002\u071e\u071f\u0007", + "Q\u0002\u0002\u071f\u0720\u0007P\u0002\u0002\u0720\u001c\u0003\u0002", + "\u0002\u0002\u0721\u0722\u0007C\u0002\u0002\u0722\u0723\u0007U\u0002", + "\u0002\u0723\u001e\u0003\u0002\u0002\u0002\u0724\u0725\u0007C\u0002", + "\u0002\u0725\u0726\u0007U\u0002\u0002\u0726\u0727\u0007E\u0002\u0002", + "\u0727 \u0003\u0002\u0002\u0002\u0728\u0729\u0007C\u0002\u0002\u0729", + "\u072a\u0007U\u0002\u0002\u072a\u072b\u0007[\u0002\u0002\u072b\u072c", + "\u0007O\u0002\u0002\u072c\u072d\u0007O\u0002\u0002\u072d\u072e\u0007", + "G\u0002\u0002\u072e\u072f\u0007V\u0002\u0002\u072f\u0730\u0007T\u0002", + "\u0002\u0730\u0731\u0007K\u0002\u0002\u0731\u0732\u0007E\u0002\u0002", + "\u0732\"\u0003\u0002\u0002\u0002\u0733\u0734\u0007C\u0002\u0002\u0734", + "\u0735\u0007U\u0002\u0002\u0735\u0736\u0007[\u0002\u0002\u0736\u0737", + "\u0007P\u0002\u0002\u0737\u0738\u0007E\u0002\u0002\u0738\u0739\u0007", + "J\u0002\u0002\u0739\u073a\u0007T\u0002\u0002\u073a\u073b\u0007Q\u0002", + "\u0002\u073b\u073c\u0007P\u0002\u0002\u073c\u073d\u0007Q\u0002\u0002", + "\u073d\u073e\u0007W\u0002\u0002\u073e\u073f\u0007U\u0002\u0002\u073f", + "\u0740\u0007a\u0002\u0002\u0740\u0741\u0007E\u0002\u0002\u0741\u0742", + "\u0007Q\u0002\u0002\u0742\u0743\u0007O\u0002\u0002\u0743\u0744\u0007", + "O\u0002\u0002\u0744\u0745\u0007K\u0002\u0002\u0745\u0746\u0007V\u0002", + "\u0002\u0746$\u0003\u0002\u0002\u0002\u0747\u0748\u0007C\u0002\u0002", + "\u0748\u0749\u0007W\u0002\u0002\u0749\u074a\u0007V\u0002\u0002\u074a", + "\u074b\u0007J\u0002\u0002\u074b\u074c\u0007Q\u0002\u0002\u074c\u074d", + "\u0007T\u0002\u0002\u074d\u074e\u0007K\u0002\u0002\u074e\u074f\u0007", + "\\\u0002\u0002\u074f\u0750\u0007C\u0002\u0002\u0750\u0751\u0007V\u0002", + "\u0002\u0751\u0752\u0007K\u0002\u0002\u0752\u0753\u0007Q\u0002\u0002", + "\u0753\u0754\u0007P\u0002\u0002\u0754&\u0003\u0002\u0002\u0002\u0755", + "\u0756\u0007C\u0002\u0002\u0756\u0757\u0007W\u0002\u0002\u0757\u0758", + "\u0007V\u0002\u0002\u0758\u0759\u0007J\u0002\u0002\u0759\u075a\u0007", + "G\u0002\u0002\u075a\u075b\u0007P\u0002\u0002\u075b\u075c\u0007V\u0002", + "\u0002\u075c\u075d\u0007K\u0002\u0002\u075d\u075e\u0007E\u0002\u0002", + "\u075e\u075f\u0007C\u0002\u0002\u075f\u0760\u0007V\u0002\u0002\u0760", + "\u0761\u0007K\u0002\u0002\u0761\u0762\u0007Q\u0002\u0002\u0762\u0763", + "\u0007P\u0002\u0002\u0763(\u0003\u0002\u0002\u0002\u0764\u0765\u0007", + "C\u0002\u0002\u0765\u0766\u0007W\u0002\u0002\u0766\u0767\u0007V\u0002", + "\u0002\u0767\u0768\u0007Q\u0002\u0002\u0768\u0769\u0007O\u0002\u0002", + "\u0769\u076a\u0007C\u0002\u0002\u076a\u076b\u0007V\u0002\u0002\u076b", + "\u076c\u0007G\u0002\u0002\u076c\u076d\u0007F\u0002\u0002\u076d\u076e", + "\u0007a\u0002\u0002\u076e\u076f\u0007D\u0002\u0002\u076f\u0770\u0007", + "C\u0002\u0002\u0770\u0771\u0007E\u0002\u0002\u0771\u0772\u0007M\u0002", + "\u0002\u0772\u0773\u0007W\u0002\u0002\u0773\u0774\u0007R\u0002\u0002", + "\u0774\u0775\u0007a\u0002\u0002\u0775\u0776\u0007R\u0002\u0002\u0776", + "\u0777\u0007T\u0002\u0002\u0777\u0778\u0007G\u0002\u0002\u0778\u0779", + "\u0007H\u0002\u0002\u0779\u077a\u0007G\u0002\u0002\u077a\u077b\u0007", + "T\u0002\u0002\u077b\u077c\u0007G\u0002\u0002\u077c\u077d\u0007P\u0002", + "\u0002\u077d\u077e\u0007E\u0002\u0002\u077e\u077f\u0007G\u0002\u0002", + "\u077f*\u0003\u0002\u0002\u0002\u0780\u0781\u0007C\u0002\u0002\u0781", + "\u0782\u0007W\u0002\u0002\u0782\u0783\u0007V\u0002\u0002\u0783\u0784", + "\u0007Q\u0002\u0002\u0784\u0785\u0007O\u0002\u0002\u0785\u0786\u0007", + "C\u0002\u0002\u0786\u0787\u0007V\u0002\u0002\u0787\u0788\u0007K\u0002", + "\u0002\u0788\u0789\u0007E\u0002\u0002\u0789,\u0003\u0002\u0002\u0002", + "\u078a\u078b\u0007C\u0002\u0002\u078b\u078c\u0007X\u0002\u0002\u078c", + "\u078d\u0007C\u0002\u0002\u078d\u078e\u0007K\u0002\u0002\u078e\u078f", + "\u0007N\u0002\u0002\u078f\u0790\u0007C\u0002\u0002\u0790\u0791\u0007", + "D\u0002\u0002\u0791\u0792\u0007K\u0002\u0002\u0792\u0793\u0007N\u0002", + "\u0002\u0793\u0794\u0007K\u0002\u0002\u0794\u0795\u0007V\u0002\u0002", + "\u0795\u0796\u0007[\u0002\u0002\u0796\u0797\u0007a\u0002\u0002\u0797", + "\u0798\u0007O\u0002\u0002\u0798\u0799\u0007Q\u0002\u0002\u0799\u079a", + "\u0007F\u0002\u0002\u079a\u079b\u0007G\u0002\u0002\u079b.\u0003\u0002", + "\u0002\u0002\u079c\u079d\u0007^\u0002\u0002\u079d0\u0003\u0002\u0002", + "\u0002\u079e\u079f\u0007D\u0002\u0002\u079f\u07a0\u0007C\u0002\u0002", + "\u07a0\u07a1\u0007E\u0002\u0002\u07a1\u07a2\u0007M\u0002\u0002\u07a2", + "\u07a3\u0007W\u0002\u0002\u07a3\u07a4\u0007R\u0002\u0002\u07a42\u0003", + "\u0002\u0002\u0002\u07a5\u07a6\u0007D\u0002\u0002\u07a6\u07a7\u0007", + "G\u0002\u0002\u07a7\u07a8\u0007H\u0002\u0002\u07a8\u07a9\u0007Q\u0002", + "\u0002\u07a9\u07aa\u0007T\u0002\u0002\u07aa\u07ab\u0007G\u0002\u0002", + "\u07ab4\u0003\u0002\u0002\u0002\u07ac\u07ad\u0007D\u0002\u0002\u07ad", + "\u07ae\u0007G\u0002\u0002\u07ae\u07af\u0007I\u0002\u0002\u07af\u07b0", + "\u0007K\u0002\u0002\u07b0\u07b1\u0007P\u0002\u0002\u07b16\u0003\u0002", + "\u0002\u0002\u07b2\u07b3\u0007D\u0002\u0002\u07b3\u07b4\u0007G\u0002", + "\u0002\u07b4\u07b5\u0007V\u0002\u0002\u07b5\u07b6\u0007Y\u0002\u0002", + "\u07b6\u07b7\u0007G\u0002\u0002\u07b7\u07b8\u0007G\u0002\u0002\u07b8", + "\u07b9\u0007P\u0002\u0002\u07b98\u0003\u0002\u0002\u0002\u07ba\u07bb", + "\u0007D\u0002\u0002\u07bb\u07bc\u0007N\u0002\u0002\u07bc\u07bd\u0007", + "Q\u0002\u0002\u07bd\u07be\u0007E\u0002\u0002\u07be\u07bf\u0007M\u0002", + "\u0002\u07bf:\u0003\u0002\u0002\u0002\u07c0\u07c1\u0007D\u0002\u0002", + "\u07c1\u07c2\u0007N\u0002\u0002\u07c2\u07c3\u0007Q\u0002\u0002\u07c3", + "\u07c4\u0007E\u0002\u0002\u07c4\u07c5\u0007M\u0002\u0002\u07c5\u07c6", + "\u0007U\u0002\u0002\u07c6\u07c7\u0007K\u0002\u0002\u07c7\u07c8\u0007", + "\\\u0002\u0002\u07c8\u07c9\u0007G\u0002\u0002\u07c9<\u0003\u0002\u0002", + "\u0002\u07ca\u07cb\u0007D\u0002\u0002\u07cb\u07cc\u0007N\u0002\u0002", + "\u07cc\u07cd\u0007Q\u0002\u0002\u07cd\u07ce\u0007E\u0002\u0002\u07ce", + "\u07cf\u0007M\u0002\u0002\u07cf\u07d0\u0007K\u0002\u0002\u07d0\u07d1", + "\u0007P\u0002\u0002\u07d1\u07d2\u0007I\u0002\u0002\u07d2\u07d3\u0007", + "a\u0002\u0002\u07d3\u07d4\u0007J\u0002\u0002\u07d4\u07d5\u0007K\u0002", + "\u0002\u07d5\u07d6\u0007G\u0002\u0002\u07d6\u07d7\u0007T\u0002\u0002", + "\u07d7\u07d8\u0007C\u0002\u0002\u07d8\u07d9\u0007T\u0002\u0002\u07d9", + "\u07da\u0007E\u0002\u0002\u07da\u07db\u0007J\u0002\u0002\u07db\u07dc", + "\u0007[\u0002\u0002\u07dc>\u0003\u0002\u0002\u0002\u07dd\u07de\u0007", + "D\u0002\u0002\u07de\u07df\u0007T\u0002\u0002\u07df\u07e0\u0007G\u0002", + "\u0002\u07e0\u07e1\u0007C\u0002\u0002\u07e1\u07e2\u0007M\u0002\u0002", + "\u07e2@\u0003\u0002\u0002\u0002\u07e3\u07e4\u0007D\u0002\u0002\u07e4", + "\u07e5\u0007T\u0002\u0002\u07e5\u07e6\u0007Q\u0002\u0002\u07e6\u07e7", + "\u0007Y\u0002\u0002\u07e7\u07e8\u0007U\u0002\u0002\u07e8\u07e9\u0007", + "G\u0002\u0002\u07e9B\u0003\u0002\u0002\u0002\u07ea\u07eb\u0007D\u0002", + "\u0002\u07eb\u07ec\u0007W\u0002\u0002\u07ec\u07ed\u0007H\u0002\u0002", + "\u07ed\u07ee\u0007H\u0002\u0002\u07ee\u07ef\u0007G\u0002\u0002\u07ef", + "\u07f0\u0007T\u0002\u0002\u07f0D\u0003\u0002\u0002\u0002\u07f1\u07f2", + "\u0007D\u0002\u0002\u07f2\u07f3\u0007W\u0002\u0002\u07f3\u07f4\u0007", + "H\u0002\u0002\u07f4\u07f5\u0007H\u0002\u0002\u07f5\u07f6\u0007G\u0002", + "\u0002\u07f6\u07f7\u0007T\u0002\u0002\u07f7\u07f8\u0007E\u0002\u0002", + "\u07f8\u07f9\u0007Q\u0002\u0002\u07f9\u07fa\u0007W\u0002\u0002\u07fa", + "\u07fb\u0007P\u0002\u0002\u07fb\u07fc\u0007V\u0002\u0002\u07fcF\u0003", + "\u0002\u0002\u0002\u07fd\u07fe\u0007D\u0002\u0002\u07fe\u07ff\u0007", + "W\u0002\u0002\u07ff\u0800\u0007N\u0002\u0002\u0800\u0801\u0007M\u0002", + "\u0002\u0801H\u0003\u0002\u0002\u0002\u0802\u0803\u0007D\u0002\u0002", + "\u0803\u0804\u0007[\u0002\u0002\u0804J\u0003\u0002\u0002\u0002\u0805", + "\u0806\u0007E\u0002\u0002\u0806\u0807\u0007C\u0002\u0002\u0807\u0808", + "\u0007E\u0002\u0002\u0808\u0809\u0007J\u0002\u0002\u0809\u080a\u0007", + "G\u0002\u0002\u080aL\u0003\u0002\u0002\u0002\u080b\u080c\u0007E\u0002", + "\u0002\u080c\u080d\u0007C\u0002\u0002\u080d\u080e\u0007N\u0002\u0002", + "\u080e\u080f\u0007N\u0002\u0002\u080f\u0810\u0007G\u0002\u0002\u0810", + "\u0811\u0007F\u0002\u0002\u0811N\u0003\u0002\u0002\u0002\u0812\u0813", + "\u0007E\u0002\u0002\u0813\u0814\u0007C\u0002\u0002\u0814\u0815\u0007", + "U\u0002\u0002\u0815\u0816\u0007E\u0002\u0002\u0816\u0817\u0007C\u0002", + "\u0002\u0817\u0818\u0007F\u0002\u0002\u0818\u0819\u0007G\u0002\u0002", + "\u0819P\u0003\u0002\u0002\u0002\u081a\u081b\u0007E\u0002\u0002\u081b", + "\u081c\u0007C\u0002\u0002\u081c\u081d\u0007U\u0002\u0002\u081d\u081e", + "\u0007G\u0002\u0002\u081eR\u0003\u0002\u0002\u0002\u081f\u0820\u0007", + "E\u0002\u0002\u0820\u0821\u0007G\u0002\u0002\u0821\u0822\u0007T\u0002", + "\u0002\u0822\u0823\u0007V\u0002\u0002\u0823\u0824\u0007K\u0002\u0002", + "\u0824\u0825\u0007H\u0002\u0002\u0825\u0826\u0007K\u0002\u0002\u0826", + "\u0827\u0007E\u0002\u0002\u0827\u0828\u0007C\u0002\u0002\u0828\u0829", + "\u0007V\u0002\u0002\u0829\u082a\u0007G\u0002\u0002\u082aT\u0003\u0002", + "\u0002\u0002\u082b\u082c\u0007E\u0002\u0002\u082c\u082d\u0007J\u0002", + "\u0002\u082d\u082e\u0007C\u0002\u0002\u082e\u082f\u0007P\u0002\u0002", + "\u082f\u0830\u0007I\u0002\u0002\u0830\u0831\u0007G\u0002\u0002\u0831", + "\u0832\u0007V\u0002\u0002\u0832\u0833\u0007C\u0002\u0002\u0833\u0834", + "\u0007D\u0002\u0002\u0834\u0835\u0007N\u0002\u0002\u0835\u0836\u0007", + "G\u0002\u0002\u0836V\u0003\u0002\u0002\u0002\u0837\u0838\u0007E\u0002", + "\u0002\u0838\u0839\u0007J\u0002\u0002\u0839\u083a\u0007C\u0002\u0002", + "\u083a\u083b\u0007P\u0002\u0002\u083b\u083c\u0007I\u0002\u0002\u083c", + "\u083d\u0007G\u0002\u0002\u083d\u083e\u0007U\u0002\u0002\u083eX\u0003", + "\u0002\u0002\u0002\u083f\u0840\u0007E\u0002\u0002\u0840\u0841\u0007", + "J\u0002\u0002\u0841\u0842\u0007G\u0002\u0002\u0842\u0843\u0007E\u0002", + "\u0002\u0843\u0844\u0007M\u0002\u0002\u0844Z\u0003\u0002\u0002\u0002", + "\u0845\u0846\u0007E\u0002\u0002\u0846\u0847\u0007J\u0002\u0002\u0847", + "\u0848\u0007G\u0002\u0002\u0848\u0849\u0007E\u0002\u0002\u0849\u084a", + "\u0007M\u0002\u0002\u084a\u084b\u0007R\u0002\u0002\u084b\u084c\u0007", + "Q\u0002\u0002\u084c\u084d\u0007K\u0002\u0002\u084d\u084e\u0007P\u0002", + "\u0002\u084e\u084f\u0007V\u0002\u0002\u084f\\\u0003\u0002\u0002\u0002", + "\u0850\u0851\u0007E\u0002\u0002\u0851\u0852\u0007J\u0002\u0002\u0852", + "\u0853\u0007G\u0002\u0002\u0853\u0854\u0007E\u0002\u0002\u0854\u0855", + "\u0007M\u0002\u0002\u0855\u0856\u0007a\u0002\u0002\u0856\u0857\u0007", + "R\u0002\u0002\u0857\u0858\u0007Q\u0002\u0002\u0858\u0859\u0007N\u0002", + "\u0002\u0859\u085a\u0007K\u0002\u0002\u085a\u085b\u0007E\u0002\u0002", + "\u085b\u085c\u0007[\u0002\u0002\u085c^\u0003\u0002\u0002\u0002\u085d", + "\u085e\u0007E\u0002\u0002\u085e\u085f\u0007J\u0002\u0002\u085f\u0860", + "\u0007G\u0002\u0002\u0860\u0861\u0007E\u0002\u0002\u0861\u0862\u0007", + "M\u0002\u0002\u0862\u0863\u0007a\u0002\u0002\u0863\u0864\u0007G\u0002", + "\u0002\u0864\u0865\u0007Z\u0002\u0002\u0865\u0866\u0007R\u0002\u0002", + "\u0866\u0867\u0007K\u0002\u0002\u0867\u0868\u0007T\u0002\u0002\u0868", + "\u0869\u0007C\u0002\u0002\u0869\u086a\u0007V\u0002\u0002\u086a\u086b", + "\u0007K\u0002\u0002\u086b\u086c\u0007Q\u0002\u0002\u086c\u086d\u0007", + "P\u0002\u0002\u086d`\u0003\u0002\u0002\u0002\u086e\u086f\u0007E\u0002", + "\u0002\u086f\u0870\u0007N\u0002\u0002\u0870\u0871\u0007C\u0002\u0002", + "\u0871\u0872\u0007U\u0002\u0002\u0872\u0873\u0007U\u0002\u0002\u0873", + "\u0874\u0007K\u0002\u0002\u0874\u0875\u0007H\u0002\u0002\u0875\u0876", + "\u0007K\u0002\u0002\u0876\u0877\u0007G\u0002\u0002\u0877\u0878\u0007", + "T\u0002\u0002\u0878\u0879\u0007a\u0002\u0002\u0879\u087a\u0007H\u0002", + "\u0002\u087a\u087b\u0007W\u0002\u0002\u087b\u087c\u0007P\u0002\u0002", + "\u087c\u087d\u0007E\u0002\u0002\u087d\u087e\u0007V\u0002\u0002\u087e", + "\u087f\u0007K\u0002\u0002\u087f\u0880\u0007Q\u0002\u0002\u0880\u0881", + "\u0007P\u0002\u0002\u0881b\u0003\u0002\u0002\u0002\u0882\u0883\u0007", + "E\u0002\u0002\u0883\u0884\u0007N\u0002\u0002\u0884\u0885\u0007Q\u0002", + "\u0002\u0885\u0886\u0007U\u0002\u0002\u0886\u0887\u0007G\u0002\u0002", + "\u0887d\u0003\u0002\u0002\u0002\u0888\u0889\u0007E\u0002\u0002\u0889", + "\u088a\u0007N\u0002\u0002\u088a\u088b\u0007W\u0002\u0002\u088b\u088c", + "\u0007U\u0002\u0002\u088c\u088d\u0007V\u0002\u0002\u088d\u088e\u0007", + "G\u0002\u0002\u088e\u088f\u0007T\u0002\u0002\u088ff\u0003\u0002\u0002", + "\u0002\u0890\u0891\u0007E\u0002\u0002\u0891\u0892\u0007N\u0002\u0002", + "\u0892\u0893\u0007W\u0002\u0002\u0893\u0894\u0007U\u0002\u0002\u0894", + "\u0895\u0007V\u0002\u0002\u0895\u0896\u0007G\u0002\u0002\u0896\u0897", + "\u0007T\u0002\u0002\u0897\u0898\u0007G\u0002\u0002\u0898\u0899\u0007", + "F\u0002\u0002\u0899h\u0003\u0002\u0002\u0002\u089a\u089b\u0007E\u0002", + "\u0002\u089b\u089c\u0007Q\u0002\u0002\u089c\u089d\u0007C\u0002\u0002", + "\u089d\u089e\u0007N\u0002\u0002\u089e\u089f\u0007G\u0002\u0002\u089f", + "\u08a0\u0007U\u0002\u0002\u08a0\u08a1\u0007E\u0002\u0002\u08a1\u08a2", + "\u0007G\u0002\u0002\u08a2j\u0003\u0002\u0002\u0002\u08a3\u08a4\u0007", + "E\u0002\u0002\u08a4\u08a5\u0007Q\u0002\u0002\u08a5\u08a6\u0007N\u0002", + "\u0002\u08a6\u08a7\u0007N\u0002\u0002\u08a7\u08a8\u0007C\u0002\u0002", + "\u08a8\u08a9\u0007V\u0002\u0002\u08a9\u08aa\u0007G\u0002\u0002\u08aa", + "l\u0003\u0002\u0002\u0002\u08ab\u08ac\u0007E\u0002\u0002\u08ac\u08ad", + "\u0007Q\u0002\u0002\u08ad\u08ae\u0007N\u0002\u0002\u08ae\u08af\u0007", + "W\u0002\u0002\u08af\u08b0\u0007O\u0002\u0002\u08b0\u08b1\u0007P\u0002", + "\u0002\u08b1n\u0003\u0002\u0002\u0002\u08b2\u08b3\u0007E\u0002\u0002", + "\u08b3\u08b4\u0007Q\u0002\u0002\u08b4\u08b5\u0007O\u0002\u0002\u08b5", + "\u08b6\u0007R\u0002\u0002\u08b6\u08b7\u0007T\u0002\u0002\u08b7\u08b8", + "\u0007G\u0002\u0002\u08b8\u08b9\u0007U\u0002\u0002\u08b9\u08ba\u0007", + "U\u0002\u0002\u08ba\u08bb\u0007K\u0002\u0002\u08bb\u08bc\u0007Q\u0002", + "\u0002\u08bc\u08bd\u0007P\u0002\u0002\u08bdp\u0003\u0002\u0002\u0002", + "\u08be\u08bf\u0007E\u0002\u0002\u08bf\u08c0\u0007Q\u0002\u0002\u08c0", + "\u08c1\u0007O\u0002\u0002\u08c1\u08c2\u0007O\u0002\u0002\u08c2\u08c3", + "\u0007K\u0002\u0002\u08c3\u08c4\u0007V\u0002\u0002\u08c4r\u0003\u0002", + "\u0002\u0002\u08c5\u08c6\u0007E\u0002\u0002\u08c6\u08c7\u0007Q\u0002", + "\u0002\u08c7\u08c8\u0007O\u0002\u0002\u08c8\u08c9\u0007R\u0002\u0002", + "\u08c9\u08ca\u0007W\u0002\u0002\u08ca\u08cb\u0007V\u0002\u0002\u08cb", + "\u08cc\u0007G\u0002\u0002\u08cct\u0003\u0002\u0002\u0002\u08cd\u08ce", + "\u0007E\u0002\u0002\u08ce\u08cf\u0007Q\u0002\u0002\u08cf\u08d0\u0007", + "P\u0002\u0002\u08d0\u08d1\u0007H\u0002\u0002\u08d1\u08d2\u0007K\u0002", + "\u0002\u08d2\u08d3\u0007I\u0002\u0002\u08d3\u08d4\u0007W\u0002\u0002", + "\u08d4\u08d5\u0007T\u0002\u0002\u08d5\u08d6\u0007C\u0002\u0002\u08d6", + "\u08d7\u0007V\u0002\u0002\u08d7\u08d8\u0007K\u0002\u0002\u08d8\u08d9", + "\u0007Q\u0002\u0002\u08d9\u08da\u0007P\u0002\u0002\u08dav\u0003\u0002", + "\u0002\u0002\u08db\u08dc\u0007E\u0002\u0002\u08dc\u08dd\u0007Q\u0002", + "\u0002\u08dd\u08de\u0007P\u0002\u0002\u08de\u08df\u0007U\u0002\u0002", + "\u08df\u08e0\u0007V\u0002\u0002\u08e0\u08e1\u0007T\u0002\u0002\u08e1", + "\u08e2\u0007C\u0002\u0002\u08e2\u08e3\u0007K\u0002\u0002\u08e3\u08e4", + "\u0007P\u0002\u0002\u08e4\u08e5\u0007V\u0002\u0002\u08e5x\u0003\u0002", + "\u0002\u0002\u08e6\u08e7\u0007E\u0002\u0002\u08e7\u08e8\u0007Q\u0002", + "\u0002\u08e8\u08e9\u0007P\u0002\u0002\u08e9\u08ea\u0007V\u0002\u0002", + "\u08ea\u08eb\u0007C\u0002\u0002\u08eb\u08ec\u0007K\u0002\u0002\u08ec", + "\u08ed\u0007P\u0002\u0002\u08ed\u08ee\u0007O\u0002\u0002\u08ee\u08ef", + "\u0007G\u0002\u0002\u08ef\u08f0\u0007P\u0002\u0002\u08f0\u08f1\u0007", + "V\u0002\u0002\u08f1z\u0003\u0002\u0002\u0002\u08f2\u08f3\u0007E\u0002", + "\u0002\u08f3\u08f4\u0007Q\u0002\u0002\u08f4\u08f5\u0007P\u0002\u0002", + "\u08f5\u08f6\u0007V\u0002\u0002\u08f6\u08f7\u0007C\u0002\u0002\u08f7", + "\u08f8\u0007K\u0002\u0002\u08f8\u08f9\u0007P\u0002\u0002\u08f9\u08fa", + "\u0007U\u0002\u0002\u08fa|\u0003\u0002\u0002\u0002\u08fb\u08fc\u0007", + "E\u0002\u0002\u08fc\u08fd\u0007Q\u0002\u0002\u08fd\u08fe\u0007P\u0002", + "\u0002\u08fe\u08ff\u0007V\u0002\u0002\u08ff\u0900\u0007C\u0002\u0002", + "\u0900\u0901\u0007K\u0002\u0002\u0901\u0902\u0007P\u0002\u0002\u0902", + "\u0903\u0007U\u0002\u0002\u0903\u0904\u0007V\u0002\u0002\u0904\u0905", + "\u0007C\u0002\u0002\u0905\u0906\u0007D\u0002\u0002\u0906\u0907\u0007", + "N\u0002\u0002\u0907\u0908\u0007G\u0002\u0002\u0908~\u0003\u0002\u0002", + "\u0002\u0909\u090a\u0007E\u0002\u0002\u090a\u090b\u0007Q\u0002\u0002", + "\u090b\u090c\u0007P\u0002\u0002\u090c\u090d\u0007V\u0002\u0002\u090d", + "\u090e\u0007G\u0002\u0002\u090e\u090f\u0007Z\u0002\u0002\u090f\u0910", + "\u0007V\u0002\u0002\u0910\u0080\u0003\u0002\u0002\u0002\u0911\u0912", + "\u0007E\u0002\u0002\u0912\u0913\u0007Q\u0002\u0002\u0913\u0914\u0007", + "P\u0002\u0002\u0914\u0915\u0007V\u0002\u0002\u0915\u0916\u0007K\u0002", + "\u0002\u0916\u0917\u0007P\u0002\u0002\u0917\u0918\u0007W\u0002\u0002", + "\u0918\u0919\u0007G\u0002\u0002\u0919\u0082\u0003\u0002\u0002\u0002", + "\u091a\u091b\u0007E\u0002\u0002\u091b\u091c\u0007Q\u0002\u0002\u091c", + "\u091d\u0007P\u0002\u0002\u091d\u091e\u0007V\u0002\u0002\u091e\u091f", + "\u0007K\u0002\u0002\u091f\u0920\u0007P\u0002\u0002\u0920\u0921\u0007", + "W\u0002\u0002\u0921\u0922\u0007G\u0002\u0002\u0922\u0923\u0007a\u0002", + "\u0002\u0923\u0924\u0007C\u0002\u0002\u0924\u0925\u0007H\u0002\u0002", + "\u0925\u0926\u0007V\u0002\u0002\u0926\u0927\u0007G\u0002\u0002\u0927", + "\u0928\u0007T\u0002\u0002\u0928\u0929\u0007a\u0002\u0002\u0929\u092a", + "\u0007G\u0002\u0002\u092a\u092b\u0007T\u0002\u0002\u092b\u092c\u0007", + "T\u0002\u0002\u092c\u092d\u0007Q\u0002\u0002\u092d\u092e\u0007T\u0002", + "\u0002\u092e\u0084\u0003\u0002\u0002\u0002\u092f\u0930\u0007E\u0002", + "\u0002\u0930\u0931\u0007Q\u0002\u0002\u0931\u0932\u0007P\u0002\u0002", + "\u0932\u0933\u0007V\u0002\u0002\u0933\u0934\u0007T\u0002\u0002\u0934", + "\u0935\u0007C\u0002\u0002\u0935\u0936\u0007E\u0002\u0002\u0936\u0937", + "\u0007V\u0002\u0002\u0937\u0086\u0003\u0002\u0002\u0002\u0938\u0939", + "\u0007E\u0002\u0002\u0939\u093a\u0007Q\u0002\u0002\u093a\u093b\u0007", + "P\u0002\u0002\u093b\u093c\u0007V\u0002\u0002\u093c\u093d\u0007T\u0002", + "\u0002\u093d\u093e\u0007C\u0002\u0002\u093e\u093f\u0007E\u0002\u0002", + "\u093f\u0940\u0007V\u0002\u0002\u0940\u0941\u0007a\u0002\u0002\u0941", + "\u0942\u0007P\u0002\u0002\u0942\u0943\u0007C\u0002\u0002\u0943\u0944", + "\u0007O\u0002\u0002\u0944\u0945\u0007G\u0002\u0002\u0945\u0088\u0003", + "\u0002\u0002\u0002\u0946\u0947\u0007E\u0002\u0002\u0947\u0948\u0007", + "Q\u0002\u0002\u0948\u0949\u0007P\u0002\u0002\u0949\u094a\u0007X\u0002", + "\u0002\u094a\u094b\u0007G\u0002\u0002\u094b\u094c\u0007T\u0002\u0002", + "\u094c\u094d\u0007U\u0002\u0002\u094d\u094e\u0007C\u0002\u0002\u094e", + "\u094f\u0007V\u0002\u0002\u094f\u0950\u0007K\u0002\u0002\u0950\u0951", + "\u0007Q\u0002\u0002\u0951\u0952\u0007P\u0002\u0002\u0952\u008a\u0003", + "\u0002\u0002\u0002\u0953\u0954\u0007V\u0002\u0002\u0954\u0955\u0007", + "T\u0002\u0002\u0955\u0956\u0007[\u0002\u0002\u0956\u0958\u0007a\u0002", + "\u0002\u0957\u0953\u0003\u0002\u0002\u0002\u0957\u0958\u0003\u0002\u0002", + "\u0002\u0958\u0959\u0003\u0002\u0002\u0002\u0959\u095a\u0007E\u0002", + "\u0002\u095a\u095b\u0007Q\u0002\u0002\u095b\u095c\u0007P\u0002\u0002", + "\u095c\u095d\u0007X\u0002\u0002\u095d\u095e\u0007G\u0002\u0002\u095e", + "\u095f\u0007T\u0002\u0002\u095f\u0960\u0007V\u0002\u0002\u0960\u008c", + "\u0003\u0002\u0002\u0002\u0961\u0962\u0007E\u0002\u0002\u0962\u0963", + "\u0007Q\u0002\u0002\u0963\u0964\u0007R\u0002\u0002\u0964\u0965\u0007", + "[\u0002\u0002\u0965\u0966\u0007a\u0002\u0002\u0966\u0967\u0007Q\u0002", + "\u0002\u0967\u0968\u0007P\u0002\u0002\u0968\u0969\u0007N\u0002\u0002", + "\u0969\u096a\u0007[\u0002\u0002\u096a\u008e\u0003\u0002\u0002\u0002", + "\u096b\u096c\u0007E\u0002\u0002\u096c\u096d\u0007T\u0002\u0002\u096d", + "\u096e\u0007G\u0002\u0002\u096e\u096f\u0007C\u0002\u0002\u096f\u0970", + "\u0007V\u0002\u0002\u0970\u0971\u0007G\u0002\u0002\u0971\u0090\u0003", + "\u0002\u0002\u0002\u0972\u0973\u0007E\u0002\u0002\u0973\u0974\u0007", + "T\u0002\u0002\u0974\u0975\u0007Q\u0002\u0002\u0975\u0976\u0007U\u0002", + "\u0002\u0976\u0977\u0007U\u0002\u0002\u0977\u0092\u0003\u0002\u0002", + "\u0002\u0978\u0979\u0007E\u0002\u0002\u0979\u097a\u0007W\u0002\u0002", + "\u097a\u097b\u0007T\u0002\u0002\u097b\u097c\u0007T\u0002\u0002\u097c", + "\u097d\u0007G\u0002\u0002\u097d\u097e\u0007P\u0002\u0002\u097e\u097f", + "\u0007V\u0002\u0002\u097f\u0094\u0003\u0002\u0002\u0002\u0980\u0981", + "\u0007E\u0002\u0002\u0981\u0982\u0007W\u0002\u0002\u0982\u0983\u0007", + "T\u0002\u0002\u0983\u0984\u0007T\u0002\u0002\u0984\u0985\u0007G\u0002", + "\u0002\u0985\u0986\u0007P\u0002\u0002\u0986\u0987\u0007V\u0002\u0002", + "\u0987\u0988\u0007a\u0002\u0002\u0988\u0989\u0007F\u0002\u0002\u0989", + "\u098a\u0007C\u0002\u0002\u098a\u098b\u0007V\u0002\u0002\u098b\u098c", + "\u0007G\u0002\u0002\u098c\u0096\u0003\u0002\u0002\u0002\u098d\u098e", + "\u0007E\u0002\u0002\u098e\u098f\u0007W\u0002\u0002\u098f\u0990\u0007", + "T\u0002\u0002\u0990\u0991\u0007T\u0002\u0002\u0991\u0992\u0007G\u0002", + "\u0002\u0992\u0993\u0007P\u0002\u0002\u0993\u0994\u0007V\u0002\u0002", + "\u0994\u0995\u0007a\u0002\u0002\u0995\u0996\u0007V\u0002\u0002\u0996", + "\u0997\u0007K\u0002\u0002\u0997\u0998\u0007O\u0002\u0002\u0998\u0999", + "\u0007G\u0002\u0002\u0999\u0098\u0003\u0002\u0002\u0002\u099a\u099b", + "\u0007E\u0002\u0002\u099b\u099c\u0007W\u0002\u0002\u099c\u099d\u0007", + "T\u0002\u0002\u099d\u099e\u0007T\u0002\u0002\u099e\u099f\u0007G\u0002", + "\u0002\u099f\u09a0\u0007P\u0002\u0002\u09a0\u09a1\u0007V\u0002\u0002", + "\u09a1\u09a2\u0007a\u0002\u0002\u09a2\u09a3\u0007V\u0002\u0002\u09a3", + "\u09a4\u0007K\u0002\u0002\u09a4\u09a5\u0007O\u0002\u0002\u09a5\u09a6", + "\u0007G\u0002\u0002\u09a6\u09a7\u0007U\u0002\u0002\u09a7\u09a8\u0007", + "V\u0002\u0002\u09a8\u09a9\u0007C\u0002\u0002\u09a9\u09aa\u0007O\u0002", + "\u0002\u09aa\u09ab\u0007R\u0002\u0002\u09ab\u009a\u0003\u0002\u0002", + "\u0002\u09ac\u09ad\u0007E\u0002\u0002\u09ad\u09ae\u0007W\u0002\u0002", + "\u09ae\u09af\u0007T\u0002\u0002\u09af\u09b0\u0007T\u0002\u0002\u09b0", + "\u09b1\u0007G\u0002\u0002\u09b1\u09b2\u0007P\u0002\u0002\u09b2\u09b3", + "\u0007V\u0002\u0002\u09b3\u09b4\u0007a\u0002\u0002\u09b4\u09b5\u0007", + "W\u0002\u0002\u09b5\u09b6\u0007U\u0002\u0002\u09b6\u09b7\u0007G\u0002", + "\u0002\u09b7\u09b8\u0007T\u0002\u0002\u09b8\u009c\u0003\u0002\u0002", + "\u0002\u09b9\u09ba\u0007E\u0002\u0002\u09ba\u09bb\u0007W\u0002\u0002", + "\u09bb\u09bc\u0007T\u0002\u0002\u09bc\u09bd\u0007U\u0002\u0002\u09bd", + "\u09be\u0007Q\u0002\u0002\u09be\u09bf\u0007T\u0002\u0002\u09bf\u009e", + "\u0003\u0002\u0002\u0002\u09c0\u09c1\u0007E\u0002\u0002\u09c1\u09c2", + "\u0007[\u0002\u0002\u09c2\u09c3\u0007E\u0002\u0002\u09c3\u09c4\u0007", + "N\u0002\u0002\u09c4\u09c5\u0007G\u0002\u0002\u09c5\u00a0\u0003\u0002", + "\u0002\u0002\u09c6\u09c7\u0007F\u0002\u0002\u09c7\u09c8\u0007C\u0002", + "\u0002\u09c8\u09c9\u0007V\u0002\u0002\u09c9\u09ca\u0007C\u0002\u0002", + "\u09ca\u09cb\u0007a\u0002\u0002\u09cb\u09cc\u0007E\u0002\u0002\u09cc", + "\u09cd\u0007Q\u0002\u0002\u09cd\u09ce\u0007O\u0002\u0002\u09ce\u09cf", + "\u0007R\u0002\u0002\u09cf\u09d0\u0007T\u0002\u0002\u09d0\u09d1\u0007", + "G\u0002\u0002\u09d1\u09d2\u0007U\u0002\u0002\u09d2\u09d3\u0007U\u0002", + "\u0002\u09d3\u09d4\u0007K\u0002\u0002\u09d4\u09d5\u0007Q\u0002\u0002", + "\u09d5\u09d6\u0007P\u0002\u0002\u09d6\u00a2\u0003\u0002\u0002\u0002", + "\u09d7\u09d8\u0007F\u0002\u0002\u09d8\u09d9\u0007C\u0002\u0002\u09d9", + "\u09da\u0007V\u0002\u0002\u09da\u09db\u0007C\u0002\u0002\u09db\u09dc", + "\u0007a\u0002\u0002\u09dc\u09dd\u0007U\u0002\u0002\u09dd\u09de\u0007", + "Q\u0002\u0002\u09de\u09df\u0007W\u0002\u0002\u09df\u09e0\u0007T\u0002", + "\u0002\u09e0\u09e1\u0007E\u0002\u0002\u09e1\u09e2\u0007G\u0002\u0002", + "\u09e2\u00a4\u0003\u0002\u0002\u0002\u09e3\u09e4\u0007F\u0002\u0002", + "\u09e4\u09e5\u0007C\u0002\u0002\u09e5\u09e6\u0007V\u0002\u0002\u09e6", + "\u09e7\u0007C\u0002\u0002\u09e7\u09e8\u0007D\u0002\u0002\u09e8\u09e9", + "\u0007C\u0002\u0002\u09e9\u09ea\u0007U\u0002\u0002\u09ea\u09eb\u0007", + "G\u0002\u0002\u09eb\u00a6\u0003\u0002\u0002\u0002\u09ec\u09ed\u0007", + "F\u0002\u0002\u09ed\u09ee\u0007C\u0002\u0002\u09ee\u09ef\u0007V\u0002", + "\u0002\u09ef\u09f0\u0007C\u0002\u0002\u09f0\u09f1\u0007D\u0002\u0002", + "\u09f1\u09f2\u0007C\u0002\u0002\u09f2\u09f3\u0007U\u0002\u0002\u09f3", + "\u09f4\u0007G\u0002\u0002\u09f4\u09f5\u0007a\u0002\u0002\u09f5\u09f6", + "\u0007O\u0002\u0002\u09f6\u09f7\u0007K\u0002\u0002\u09f7\u09f8\u0007", + "T\u0002\u0002\u09f8\u09f9\u0007T\u0002\u0002\u09f9\u09fa\u0007Q\u0002", + "\u0002\u09fa\u09fb\u0007T\u0002\u0002\u09fb\u09fc\u0007K\u0002\u0002", + "\u09fc\u09fd\u0007P\u0002\u0002\u09fd\u09fe\u0007I\u0002\u0002\u09fe", + "\u00a8\u0003\u0002\u0002\u0002\u09ff\u0a00\u0007F\u0002\u0002\u0a00", + "\u0a01\u0007D\u0002\u0002\u0a01\u0a02\u0007E\u0002\u0002\u0a02\u0a03", + "\u0007E\u0002\u0002\u0a03\u00aa\u0003\u0002\u0002\u0002\u0a04\u0a05", + "\u0007F\u0002\u0002\u0a05\u0a06\u0007G\u0002\u0002\u0a06\u0a07\u0007", + "C\u0002\u0002\u0a07\u0a08\u0007N\u0002\u0002\u0a08\u0a09\u0007N\u0002", + "\u0002\u0a09\u0a0a\u0007Q\u0002\u0002\u0a0a\u0a0b\u0007E\u0002\u0002", + "\u0a0b\u0a0c\u0007C\u0002\u0002\u0a0c\u0a0d\u0007V\u0002\u0002\u0a0d", + "\u0a0e\u0007G\u0002\u0002\u0a0e\u00ac\u0003\u0002\u0002\u0002\u0a0f", + "\u0a10\u0007F\u0002\u0002\u0a10\u0a11\u0007G\u0002\u0002\u0a11\u0a12", + "\u0007E\u0002\u0002\u0a12\u0a13\u0007N\u0002\u0002\u0a13\u0a14\u0007", + "C\u0002\u0002\u0a14\u0a15\u0007T\u0002\u0002\u0a15\u0a16\u0007G\u0002", + "\u0002\u0a16\u00ae\u0003\u0002\u0002\u0002\u0a17\u0a18\u0007F\u0002", + "\u0002\u0a18\u0a19\u0007G\u0002\u0002\u0a19\u0a1a\u0007H\u0002\u0002", + "\u0a1a\u0a1b\u0007C\u0002\u0002\u0a1b\u0a1c\u0007W\u0002\u0002\u0a1c", + "\u0a1d\u0007N\u0002\u0002\u0a1d\u0a1e\u0007V\u0002\u0002\u0a1e\u00b0", + "\u0003\u0002\u0002\u0002\u0a1f\u0a20\u0007F\u0002\u0002\u0a20\u0a21", + "\u0007G\u0002\u0002\u0a21\u0a22\u0007H\u0002\u0002\u0a22\u0a23\u0007", + "C\u0002\u0002\u0a23\u0a24\u0007W\u0002\u0002\u0a24\u0a25\u0007N\u0002", + "\u0002\u0a25\u0a26\u0007V\u0002\u0002\u0a26\u0a27\u0007a\u0002\u0002", + "\u0a27\u0a28\u0007F\u0002\u0002\u0a28\u0a29\u0007C\u0002\u0002\u0a29", + "\u0a2a\u0007V\u0002\u0002\u0a2a\u0a2b\u0007C\u0002\u0002\u0a2b\u0a2c", + "\u0007D\u0002\u0002\u0a2c\u0a2d\u0007C\u0002\u0002\u0a2d\u0a2e\u0007", + "U\u0002\u0002\u0a2e\u0a2f\u0007G\u0002\u0002\u0a2f\u00b2\u0003\u0002", + "\u0002\u0002\u0a30\u0a31\u0007F\u0002\u0002\u0a31\u0a32\u0007G\u0002", + "\u0002\u0a32\u0a33\u0007H\u0002\u0002\u0a33\u0a34\u0007C\u0002\u0002", + "\u0a34\u0a35\u0007W\u0002\u0002\u0a35\u0a36\u0007N\u0002\u0002\u0a36", + "\u0a37\u0007V\u0002\u0002\u0a37\u0a38\u0007a\u0002\u0002\u0a38\u0a39", + "\u0007U\u0002\u0002\u0a39\u0a3a\u0007E\u0002\u0002\u0a3a\u0a3b\u0007", + "J\u0002\u0002\u0a3b\u0a3c\u0007G\u0002\u0002\u0a3c\u0a3d\u0007O\u0002", + "\u0002\u0a3d\u0a3e\u0007C\u0002\u0002\u0a3e\u00b4\u0003\u0002\u0002", + "\u0002\u0a3f\u0a40\u0007F\u0002\u0002\u0a40\u0a41\u0007G\u0002\u0002", + "\u0a41\u0a42\u0007N\u0002\u0002\u0a42\u0a43\u0007G\u0002\u0002\u0a43", + "\u0a44\u0007V\u0002\u0002\u0a44\u0a45\u0007G\u0002\u0002\u0a45\u00b6", + "\u0003\u0002\u0002\u0002\u0a46\u0a47\u0007F\u0002\u0002\u0a47\u0a48", + "\u0007G\u0002\u0002\u0a48\u0a49\u0007P\u0002\u0002\u0a49\u0a4a\u0007", + "[\u0002\u0002\u0a4a\u00b8\u0003\u0002\u0002\u0002\u0a4b\u0a4c\u0007", + "F\u0002\u0002\u0a4c\u0a4d\u0007G\u0002\u0002\u0a4d\u0a4e\u0007U\u0002", + "\u0002\u0a4e\u0a4f\u0007E\u0002\u0002\u0a4f\u00ba\u0003\u0002\u0002", + "\u0002\u0a50\u0a51\u0007F\u0002\u0002\u0a51\u0a52\u0007K\u0002\u0002", + "\u0a52\u0a53\u0007C\u0002\u0002\u0a53\u0a54\u0007I\u0002\u0002\u0a54", + "\u0a55\u0007P\u0002\u0002\u0a55\u0a56\u0007Q\u0002\u0002\u0a56\u0a57", + "\u0007U\u0002\u0002\u0a57\u0a58\u0007V\u0002\u0002\u0a58\u0a59\u0007", + "K\u0002\u0002\u0a59\u0a5a\u0007E\u0002\u0002\u0a5a\u0a5b\u0007U\u0002", + "\u0002\u0a5b\u00bc\u0003\u0002\u0002\u0002\u0a5c\u0a5d\u0007F\u0002", + "\u0002\u0a5d\u0a5e\u0007K\u0002\u0002\u0a5e\u0a5f\u0007H\u0002\u0002", + "\u0a5f\u0a60\u0007H\u0002\u0002\u0a60\u0a61\u0007G\u0002\u0002\u0a61", + "\u0a62\u0007T\u0002\u0002\u0a62\u0a63\u0007G\u0002\u0002\u0a63\u0a64", + "\u0007P\u0002\u0002\u0a64\u0a65\u0007V\u0002\u0002\u0a65\u0a66\u0007", + "K\u0002\u0002\u0a66\u0a67\u0007C\u0002\u0002\u0a67\u0a68\u0007N\u0002", + "\u0002\u0a68\u00be\u0003\u0002\u0002\u0002\u0a69\u0a6a\u0007F\u0002", + "\u0002\u0a6a\u0a6b\u0007K\u0002\u0002\u0a6b\u0a6c\u0007U\u0002\u0002", + "\u0a6c\u0a6d\u0007M\u0002\u0002\u0a6d\u00c0\u0003\u0002\u0002\u0002", + "\u0a6e\u0a6f\u0007F\u0002\u0002\u0a6f\u0a70\u0007K\u0002\u0002\u0a70", + "\u0a71\u0007U\u0002\u0002\u0a71\u0a72\u0007V\u0002\u0002\u0a72\u0a73", + "\u0007K\u0002\u0002\u0a73\u0a74\u0007P\u0002\u0002\u0a74\u0a75\u0007", + "E\u0002\u0002\u0a75\u0a76\u0007V\u0002\u0002\u0a76\u00c2\u0003\u0002", + "\u0002\u0002\u0a77\u0a78\u0007F\u0002\u0002\u0a78\u0a79\u0007K\u0002", + "\u0002\u0a79\u0a7a\u0007U\u0002\u0002\u0a7a\u0a7b\u0007V\u0002\u0002", + "\u0a7b\u0a7c\u0007T\u0002\u0002\u0a7c\u0a7d\u0007K\u0002\u0002\u0a7d", + "\u0a7e\u0007D\u0002\u0002\u0a7e\u0a7f\u0007W\u0002\u0002\u0a7f\u0a80", + "\u0007V\u0002\u0002\u0a80\u0a81\u0007G\u0002\u0002\u0a81\u0a82\u0007", + "F\u0002\u0002\u0a82\u00c4\u0003\u0002\u0002\u0002\u0a83\u0a84\u0007", + "F\u0002\u0002\u0a84\u0a85\u0007Q\u0002\u0002\u0a85\u0a86\u0007W\u0002", + "\u0002\u0a86\u0a87\u0007D\u0002\u0002\u0a87\u0a88\u0007N\u0002\u0002", + "\u0a88\u0a89\u0007G\u0002\u0002\u0a89\u00c6\u0003\u0002\u0002\u0002", + "\u0a8a\u0a8b\u0007^\u0002\u0002\u0a8b\u0a8c\u0007^\u0002\u0002\u0a8c", + "\u00c8\u0003\u0002\u0002\u0002\u0a8d\u0a8e\u00071\u0002\u0002\u0a8e", + "\u0a8f\u00071\u0002\u0002\u0a8f\u00ca\u0003\u0002\u0002\u0002\u0a90", + "\u0a91\u0007F\u0002\u0002\u0a91\u0a92\u0007T\u0002\u0002\u0a92\u0a93", + "\u0007Q\u0002\u0002\u0a93\u0a94\u0007R\u0002\u0002\u0a94\u00cc\u0003", + "\u0002\u0002\u0002\u0a95\u0a96\u0007F\u0002\u0002\u0a96\u0a97\u0007", + "V\u0002\u0002\u0a97\u0a98\u0007E\u0002\u0002\u0a98\u0a99\u0007a\u0002", + "\u0002\u0a99\u0a9a\u0007U\u0002\u0002\u0a9a\u0a9b\u0007W\u0002\u0002", + "\u0a9b\u0a9c\u0007R\u0002\u0002\u0a9c\u0a9d\u0007R\u0002\u0002\u0a9d", + "\u0a9e\u0007Q\u0002\u0002\u0a9e\u0a9f\u0007T\u0002\u0002\u0a9f\u0aa0", + "\u0007V\u0002\u0002\u0aa0\u00ce\u0003\u0002\u0002\u0002\u0aa1\u0aa2", + "\u0007F\u0002\u0002\u0aa2\u0aa3\u0007W\u0002\u0002\u0aa3\u0aa4\u0007", + "O\u0002\u0002\u0aa4\u0aa5\u0007R\u0002\u0002\u0aa5\u00d0\u0003\u0002", + "\u0002\u0002\u0aa6\u0aa7\u0007G\u0002\u0002\u0aa7\u0aa8\u0007N\u0002", + "\u0002\u0aa8\u0aa9\u0007U\u0002\u0002\u0aa9\u0aaa\u0007G\u0002\u0002", + "\u0aaa\u00d2\u0003\u0002\u0002\u0002\u0aab\u0aac\u0007G\u0002\u0002", + "\u0aac\u0aad\u0007P\u0002\u0002\u0aad\u0aae\u0007C\u0002\u0002\u0aae", + "\u0aaf\u0007D\u0002\u0002\u0aaf\u0ab0\u0007N\u0002\u0002\u0ab0\u0ab1", + "\u0007G\u0002\u0002\u0ab1\u0ab2\u0007F\u0002\u0002\u0ab2\u00d4\u0003", + "\u0002\u0002\u0002\u0ab3\u0ab4\u0007G\u0002\u0002\u0ab4\u0ab5\u0007", + "P\u0002\u0002\u0ab5\u0ab6\u0007F\u0002\u0002\u0ab6\u00d6\u0003\u0002", + "\u0002\u0002\u0ab7\u0ab8\u0007G\u0002\u0002\u0ab8\u0ab9\u0007P\u0002", + "\u0002\u0ab9\u0aba\u0007F\u0002\u0002\u0aba\u0abb\u0007R\u0002\u0002", + "\u0abb\u0abc\u0007Q\u0002\u0002\u0abc\u0abd\u0007K\u0002\u0002\u0abd", + "\u0abe\u0007P\u0002\u0002\u0abe\u0abf\u0007V\u0002\u0002\u0abf\u00d8", + "\u0003\u0002\u0002\u0002\u0ac0\u0ac1\u0007G\u0002\u0002\u0ac1\u0ac2", + "\u0007T\u0002\u0002\u0ac2\u0ac3\u0007T\u0002\u0002\u0ac3\u0ac4\u0007", + "N\u0002\u0002\u0ac4\u0ac5\u0007X\u0002\u0002\u0ac5\u0ac6\u0007N\u0002", + "\u0002\u0ac6\u00da\u0003\u0002\u0002\u0002\u0ac7\u0ac8\u0007G\u0002", + "\u0002\u0ac8\u0ac9\u0007U\u0002\u0002\u0ac9\u0aca\u0007E\u0002\u0002", + "\u0aca\u0acb\u0007C\u0002\u0002\u0acb\u0acc\u0007R\u0002\u0002\u0acc", + "\u0acd\u0007G\u0002\u0002\u0acd\u00dc\u0003\u0002\u0002\u0002\u0ace", + "\u0acf\u0007G\u0002\u0002\u0acf\u0ad0\u0007T\u0002\u0002\u0ad0\u0ad1", + "\u0007T\u0002\u0002\u0ad1\u0ad2\u0007Q\u0002\u0002\u0ad2\u0ad3\u0007", + "T\u0002\u0002\u0ad3\u00de\u0003\u0002\u0002\u0002\u0ad4\u0ad5\u0007", + "G\u0002\u0002\u0ad5\u0ad6\u0007X\u0002\u0002\u0ad6\u0ad7\u0007G\u0002", + "\u0002\u0ad7\u0ad8\u0007P\u0002\u0002\u0ad8\u0ad9\u0007V\u0002\u0002", + "\u0ad9\u00e0\u0003\u0002\u0002\u0002\u0ada\u0adb\u0007G\u0002\u0002", + "\u0adb\u0adc\u0007X\u0002\u0002\u0adc\u0add\u0007G\u0002\u0002\u0add", + "\u0ade\u0007P\u0002\u0002\u0ade\u0adf\u0007V\u0002\u0002\u0adf\u0ae0", + "\u0007F\u0002\u0002\u0ae0\u0ae1\u0007C\u0002\u0002\u0ae1\u0ae2\u0007", + "V\u0002\u0002\u0ae2\u0ae3\u0007C\u0002\u0002\u0ae3\u0ae4\u0003\u0002", + "\u0002\u0002\u0ae4\u0ae5\u0007*\u0002\u0002\u0ae5\u0ae6\u0007+\u0002", + "\u0002\u0ae6\u00e2\u0003\u0002\u0002\u0002\u0ae7\u0ae8\u0007G\u0002", + "\u0002\u0ae8\u0ae9\u0007X\u0002\u0002\u0ae9\u0aea\u0007G\u0002\u0002", + "\u0aea\u0aeb\u0007P\u0002\u0002\u0aeb\u0aec\u0007V\u0002\u0002\u0aec", + "\u0aed\u0007a\u0002\u0002\u0aed\u0aee\u0007T\u0002\u0002\u0aee\u0aef", + "\u0007G\u0002\u0002\u0aef\u0af0\u0007V\u0002\u0002\u0af0\u0af1\u0007", + "G\u0002\u0002\u0af1\u0af2\u0007P\u0002\u0002\u0af2\u0af3\u0007V\u0002", + "\u0002\u0af3\u0af4\u0007K\u0002\u0002\u0af4\u0af5\u0007Q\u0002\u0002", + "\u0af5\u0af6\u0007P\u0002\u0002\u0af6\u0af7\u0007a\u0002\u0002\u0af7", + "\u0af8\u0007O\u0002\u0002\u0af8\u0af9\u0007Q\u0002\u0002\u0af9\u0afa", + "\u0007F\u0002\u0002\u0afa\u0afb\u0007G\u0002\u0002\u0afb\u00e4\u0003", + "\u0002\u0002\u0002\u0afc\u0afd\u0007G\u0002\u0002\u0afd\u0afe\u0007", + "Z\u0002\u0002\u0afe\u0aff\u0007E\u0002\u0002\u0aff\u0b00\u0007G\u0002", + "\u0002\u0b00\u0b01\u0007R\u0002\u0002\u0b01\u0b02\u0007V\u0002\u0002", + "\u0b02\u00e6\u0003\u0002\u0002\u0002\u0b03\u0b04\u0007G\u0002\u0002", + "\u0b04\u0b05\u0007Z\u0002\u0002\u0b05\u0b06\u0007G\u0002\u0002\u0b06", + "\u0b07\u0007E\u0002\u0002\u0b07\u0b08\u0007W\u0002\u0002\u0b08\u0b09", + "\u0007V\u0002\u0002\u0b09\u0b0a\u0007C\u0002\u0002\u0b0a\u0b0b\u0007", + "D\u0002\u0002\u0b0b\u0b0c\u0007N\u0002\u0002\u0b0c\u0b0d\u0007G\u0002", + "\u0002\u0b0d\u0b0e\u0007a\u0002\u0002\u0b0e\u0b0f\u0007H\u0002\u0002", + "\u0b0f\u0b10\u0007K\u0002\u0002\u0b10\u0b11\u0007N\u0002\u0002\u0b11", + "\u0b12\u0007G\u0002\u0002\u0b12\u00e8\u0003\u0002\u0002\u0002\u0b13", + "\u0b14\u0007G\u0002\u0002\u0b14\u0b15\u0007Z\u0002\u0002\u0b15\u0b16", + "\u0007G\u0002\u0002\u0b16\u0b17\u0007E\u0002\u0002\u0b17\u0b1b\u0003", + "\u0002\u0002\u0002\u0b18\u0b19\u0007W\u0002\u0002\u0b19\u0b1a\u0007", + "V\u0002\u0002\u0b1a\u0b1c\u0007G\u0002\u0002\u0b1b\u0b18\u0003\u0002", + "\u0002\u0002\u0b1b\u0b1c\u0003\u0002\u0002\u0002\u0b1c\u00ea\u0003\u0002", + "\u0002\u0002\u0b1d\u0b1e\u0007G\u0002\u0002\u0b1e\u0b1f\u0007Z\u0002", + "\u0002\u0b1f\u0b20\u0007K\u0002\u0002\u0b20\u0b21\u0007U\u0002\u0002", + "\u0b21\u0b22\u0007V\u0002\u0002\u0b22\u0b23\u0007U\u0002\u0002\u0b23", + "\u00ec\u0003\u0002\u0002\u0002\u0b24\u0b25\u0007G\u0002\u0002\u0b25", + "\u0b26\u0007Z\u0002\u0002\u0b26\u0b27\u0007R\u0002\u0002\u0b27\u0b28", + "\u0007K\u0002\u0002\u0b28\u0b29\u0007T\u0002\u0002\u0b29\u0b2a\u0007", + "G\u0002\u0002\u0b2a\u0b2b\u0007F\u0002\u0002\u0b2b\u0b2c\u0007C\u0002", + "\u0002\u0b2c\u0b2d\u0007V\u0002\u0002\u0b2d\u0b2e\u0007G\u0002\u0002", + "\u0b2e\u00ee\u0003\u0002\u0002\u0002\u0b2f\u0b30\u0007G\u0002\u0002", + "\u0b30\u0b31\u0007Z\u0002\u0002\u0b31\u0b32\u0007K\u0002\u0002\u0b32", + "\u0b33\u0007V\u0002\u0002\u0b33\u00f0\u0003\u0002\u0002\u0002\u0b34", + "\u0b35\u0007G\u0002\u0002\u0b35\u0b36\u0007Z\u0002\u0002\u0b36\u0b37", + "\u0007V\u0002\u0002\u0b37\u0b38\u0007G\u0002\u0002\u0b38\u0b39\u0007", + "P\u0002\u0002\u0b39\u0b3a\u0007U\u0002\u0002\u0b3a\u0b3b\u0007K\u0002", + "\u0002\u0b3b\u0b3c\u0007Q\u0002\u0002\u0b3c\u0b3d\u0007P\u0002\u0002", + "\u0b3d\u00f2\u0003\u0002\u0002\u0002\u0b3e\u0b3f\u0007G\u0002\u0002", + "\u0b3f\u0b40\u0007Z\u0002\u0002\u0b40\u0b41\u0007V\u0002\u0002\u0b41", + "\u0b42\u0007G\u0002\u0002\u0b42\u0b43\u0007T\u0002\u0002\u0b43\u0b44", + "\u0007P\u0002\u0002\u0b44\u0b45\u0007C\u0002\u0002\u0b45\u0b46\u0007", + "N\u0002\u0002\u0b46\u00f4\u0003\u0002\u0002\u0002\u0b47\u0b48\u0007", + "G\u0002\u0002\u0b48\u0b49\u0007Z\u0002\u0002\u0b49\u0b4a\u0007V\u0002", + "\u0002\u0b4a\u0b4b\u0007G\u0002\u0002\u0b4b\u0b4c\u0007T\u0002\u0002", + "\u0b4c\u0b4d\u0007P\u0002\u0002\u0b4d\u0b4e\u0007C\u0002\u0002\u0b4e", + "\u0b4f\u0007N\u0002\u0002\u0b4f\u0b50\u0007a\u0002\u0002\u0b50\u0b51", + "\u0007C\u0002\u0002\u0b51\u0b52\u0007E\u0002\u0002\u0b52\u0b53\u0007", + "E\u0002\u0002\u0b53\u0b54\u0007G\u0002\u0002\u0b54\u0b55\u0007U\u0002", + "\u0002\u0b55\u0b56\u0007U\u0002\u0002\u0b56\u00f6\u0003\u0002\u0002", + "\u0002\u0b57\u0b58\u0007H\u0002\u0002\u0b58\u0b59\u0007C\u0002\u0002", + "\u0b59\u0b5a\u0007K\u0002\u0002\u0b5a\u0b5b\u0007N\u0002\u0002\u0b5b", + "\u0b5c\u0007Q\u0002\u0002\u0b5c\u0b5d\u0007X\u0002\u0002\u0b5d\u0b5e", + "\u0007G\u0002\u0002\u0b5e\u0b5f\u0007T\u0002\u0002\u0b5f\u00f8\u0003", + "\u0002\u0002\u0002\u0b60\u0b61\u0007H\u0002\u0002\u0b61\u0b62\u0007", + "C\u0002\u0002\u0b62\u0b63\u0007K\u0002\u0002\u0b63\u0b64\u0007N\u0002", + "\u0002\u0b64\u0b65\u0007W\u0002\u0002\u0b65\u0b66\u0007T\u0002\u0002", + "\u0b66\u0b67\u0007G\u0002\u0002\u0b67\u0b68\u0007E\u0002\u0002\u0b68", + "\u0b69\u0007Q\u0002\u0002\u0b69\u0b6a\u0007P\u0002\u0002\u0b6a\u0b6b", + "\u0007F\u0002\u0002\u0b6b\u0b6c\u0007K\u0002\u0002\u0b6c\u0b6d\u0007", + "V\u0002\u0002\u0b6d\u0b6e\u0007K\u0002\u0002\u0b6e\u0b6f\u0007Q\u0002", + "\u0002\u0b6f\u0b70\u0007P\u0002\u0002\u0b70\u0b71\u0007N\u0002\u0002", + "\u0b71\u0b72\u0007G\u0002\u0002\u0b72\u0b73\u0007X\u0002\u0002\u0b73", + "\u0b74\u0007G\u0002\u0002\u0b74\u0b75\u0007N\u0002\u0002\u0b75\u00fa", + "\u0003\u0002\u0002\u0002\u0b76\u0b77\u0007H\u0002\u0002\u0b77\u0b78", + "\u0007C\u0002\u0002\u0b78\u0b79\u0007P\u0002\u0002\u0b79\u0b7a\u0007", + "a\u0002\u0002\u0b7a\u0b7b\u0007K\u0002\u0002\u0b7b\u0b7c\u0007P\u0002", + "\u0002\u0b7c\u00fc\u0003\u0002\u0002\u0002\u0b7d\u0b7e\u0007H\u0002", + "\u0002\u0b7e\u0b7f\u0007G\u0002\u0002\u0b7f\u0b80\u0007V\u0002\u0002", + "\u0b80\u0b81\u0007E\u0002\u0002\u0b81\u0b82\u0007J\u0002\u0002\u0b82", + "\u00fe\u0003\u0002\u0002\u0002\u0b83\u0b84\u0007H\u0002\u0002\u0b84", + "\u0b85\u0007K\u0002\u0002\u0b85\u0b86\u0007N\u0002\u0002\u0b86\u0b87", + "\u0007G\u0002\u0002\u0b87\u0100\u0003\u0002\u0002\u0002\u0b88\u0b89", + "\u0007H\u0002\u0002\u0b89\u0b8a\u0007K\u0002\u0002\u0b8a\u0b8b\u0007", + "N\u0002\u0002\u0b8b\u0b8c\u0007G\u0002\u0002\u0b8c\u0b8d\u0007P\u0002", + "\u0002\u0b8d\u0b8e\u0007C\u0002\u0002\u0b8e\u0b8f\u0007O\u0002\u0002", + "\u0b8f\u0b90\u0007G\u0002\u0002\u0b90\u0102\u0003\u0002\u0002\u0002", + "\u0b91\u0b92\u0007H\u0002\u0002\u0b92\u0b93\u0007K\u0002\u0002\u0b93", + "\u0b94\u0007N\u0002\u0002\u0b94\u0b95\u0007N\u0002\u0002\u0b95\u0b96", + "\u0007H\u0002\u0002\u0b96\u0b97\u0007C\u0002\u0002\u0b97\u0b98\u0007", + "E\u0002\u0002\u0b98\u0b99\u0007V\u0002\u0002\u0b99\u0b9a\u0007Q\u0002", + "\u0002\u0b9a\u0b9b\u0007T\u0002\u0002\u0b9b\u0104\u0003\u0002\u0002", + "\u0002\u0b9c\u0b9d\u0007H\u0002\u0002\u0b9d\u0b9e\u0007K\u0002\u0002", + "\u0b9e\u0b9f\u0007N\u0002\u0002\u0b9f\u0ba0\u0007G\u0002\u0002\u0ba0", + "\u0ba1\u0007a\u0002\u0002\u0ba1\u0ba2\u0007U\u0002\u0002\u0ba2\u0ba3", + "\u0007P\u0002\u0002\u0ba3\u0ba4\u0007C\u0002\u0002\u0ba4\u0ba5\u0007", + "R\u0002\u0002\u0ba5\u0ba6\u0007U\u0002\u0002\u0ba6\u0ba7\u0007J\u0002", + "\u0002\u0ba7\u0ba8\u0007Q\u0002\u0002\u0ba8\u0ba9\u0007V\u0002\u0002", + "\u0ba9\u0106\u0003\u0002\u0002\u0002\u0baa\u0bab\u0007H\u0002\u0002", + "\u0bab\u0bac\u0007Q\u0002\u0002\u0bac\u0bad\u0007T\u0002\u0002\u0bad", + "\u0108\u0003\u0002\u0002\u0002\u0bae\u0baf\u0007H\u0002\u0002\u0baf", + "\u0bb0\u0007Q\u0002\u0002\u0bb0\u0bb1\u0007T\u0002\u0002\u0bb1\u0bb2", + "\u0007E\u0002\u0002\u0bb2\u0bb3\u0007G\u0002\u0002\u0bb3\u0bb4\u0007", + "U\u0002\u0002\u0bb4\u0bb5\u0007G\u0002\u0002\u0bb5\u0bb6\u0007G\u0002", + "\u0002\u0bb6\u0bb7\u0007M\u0002\u0002\u0bb7\u010a\u0003\u0002\u0002", + "\u0002\u0bb8\u0bb9\u0007H\u0002\u0002\u0bb9\u0bba\u0007Q\u0002\u0002", + "\u0bba\u0bbb\u0007T\u0002\u0002\u0bbb\u0bbc\u0007E\u0002\u0002\u0bbc", + "\u0bbd\u0007G\u0002\u0002\u0bbd\u0bbe\u0007a\u0002\u0002\u0bbe\u0bbf", + "\u0007U\u0002\u0002\u0bbf\u0bc0\u0007G\u0002\u0002\u0bc0\u0bc1\u0007", + "T\u0002\u0002\u0bc1\u0bc2\u0007X\u0002\u0002\u0bc2\u0bc3\u0007K\u0002", + "\u0002\u0bc3\u0bc4\u0007E\u0002\u0002\u0bc4\u0bc5\u0007G\u0002\u0002", + "\u0bc5\u0bc6\u0007a\u0002\u0002\u0bc6\u0bc7\u0007C\u0002\u0002\u0bc7", + "\u0bc8\u0007N\u0002\u0002\u0bc8\u0bc9\u0007N\u0002\u0002\u0bc9\u0bca", + "\u0007Q\u0002\u0002\u0bca\u0bcb\u0007Y\u0002\u0002\u0bcb\u0bcc\u0007", + "a\u0002\u0002\u0bcc\u0bcd\u0007F\u0002\u0002\u0bcd\u0bce\u0007C\u0002", + "\u0002\u0bce\u0bcf\u0007V\u0002\u0002\u0bcf\u0bd0\u0007C\u0002\u0002", + "\u0bd0\u0bd1\u0007a\u0002\u0002\u0bd1\u0bd2\u0007N\u0002\u0002\u0bd2", + "\u0bd3\u0007Q\u0002\u0002\u0bd3\u0bd4\u0007U\u0002\u0002\u0bd4\u0bd5", + "\u0007U\u0002\u0002\u0bd5\u010c\u0003\u0002\u0002\u0002\u0bd6\u0bd7", + "\u0007H\u0002\u0002\u0bd7\u0bd8\u0007Q\u0002\u0002\u0bd8\u0bd9\u0007", + "T\u0002\u0002\u0bd9\u0bda\u0007G\u0002\u0002\u0bda\u0bdb\u0007K\u0002", + "\u0002\u0bdb\u0bdc\u0007I\u0002\u0002\u0bdc\u0bdd\u0007P\u0002\u0002", + "\u0bdd\u010e\u0003\u0002\u0002\u0002\u0bde\u0bdf\u0007H\u0002\u0002", + "\u0bdf\u0be0\u0007T\u0002\u0002\u0be0\u0be1\u0007G\u0002\u0002\u0be1", + "\u0be2\u0007G\u0002\u0002\u0be2\u0be3\u0007V\u0002\u0002\u0be3\u0be4", + "\u0007G\u0002\u0002\u0be4\u0be5\u0007Z\u0002\u0002\u0be5\u0be6\u0007", + "V\u0002\u0002\u0be6\u0110\u0003\u0002\u0002\u0002\u0be7\u0be8\u0007", + "H\u0002\u0002\u0be8\u0be9\u0007T\u0002\u0002\u0be9\u0bea\u0007G\u0002", + "\u0002\u0bea\u0beb\u0007G\u0002\u0002\u0beb\u0bec\u0007V\u0002\u0002", + "\u0bec\u0bed\u0007G\u0002\u0002\u0bed\u0bee\u0007Z\u0002\u0002\u0bee", + "\u0bef\u0007V\u0002\u0002\u0bef\u0bf0\u0007V\u0002\u0002\u0bf0\u0bf1", + "\u0007C\u0002\u0002\u0bf1\u0bf2\u0007D\u0002\u0002\u0bf2\u0bf3\u0007", + "N\u0002\u0002\u0bf3\u0bf4\u0007G\u0002\u0002\u0bf4\u0112\u0003\u0002", + "\u0002\u0002\u0bf5\u0bf6\u0007H\u0002\u0002\u0bf6\u0bf7\u0007T\u0002", + "\u0002\u0bf7\u0bf8\u0007Q\u0002\u0002\u0bf8\u0bf9\u0007O\u0002\u0002", + "\u0bf9\u0114\u0003\u0002\u0002\u0002\u0bfa\u0bfb\u0007H\u0002\u0002", + "\u0bfb\u0bfc\u0007W\u0002\u0002\u0bfc\u0bfd\u0007N\u0002\u0002\u0bfd", + "\u0bfe\u0007N\u0002\u0002\u0bfe\u0116\u0003\u0002\u0002\u0002\u0bff", + "\u0c00\u0007H\u0002\u0002\u0c00\u0c01\u0007W\u0002\u0002\u0c01\u0c02", + "\u0007P\u0002\u0002\u0c02\u0c03\u0007E\u0002\u0002\u0c03\u0c04\u0007", + "V\u0002\u0002\u0c04\u0c05\u0007K\u0002\u0002\u0c05\u0c06\u0007Q\u0002", + "\u0002\u0c06\u0c07\u0007P\u0002\u0002\u0c07\u0118\u0003\u0002\u0002", + "\u0002\u0c08\u0c09\u0007I\u0002\u0002\u0c09\u0c0a\u0007G\u0002\u0002", + "\u0c0a\u0c0b\u0007V\u0002\u0002\u0c0b\u011a\u0003\u0002\u0002\u0002", + "\u0c0c\u0c0d\u0007I\u0002\u0002\u0c0d\u0c0e\u0007Q\u0002\u0002\u0c0e", + "\u0c0f\u0007V\u0002\u0002\u0c0f\u0c10\u0007Q\u0002\u0002\u0c10\u011c", + "\u0003\u0002\u0002\u0002\u0c11\u0c12\u0007I\u0002\u0002\u0c12\u0c13", + "\u0007Q\u0002\u0002\u0c13\u0c14\u0007X\u0002\u0002\u0c14\u0c15\u0007", + "G\u0002\u0002\u0c15\u0c16\u0007T\u0002\u0002\u0c16\u0c17\u0007P\u0002", + "\u0002\u0c17\u0c18\u0007Q\u0002\u0002\u0c18\u0c19\u0007T\u0002\u0002", + "\u0c19\u011e\u0003\u0002\u0002\u0002\u0c1a\u0c1b\u0007I\u0002\u0002", + "\u0c1b\u0c1c\u0007T\u0002\u0002\u0c1c\u0c1d\u0007C\u0002\u0002\u0c1d", + "\u0c1e\u0007P\u0002\u0002\u0c1e\u0c1f\u0007V\u0002\u0002\u0c1f\u0120", + "\u0003\u0002\u0002\u0002\u0c20\u0c21\u0007I\u0002\u0002\u0c21\u0c22", + "\u0007T\u0002\u0002\u0c22\u0c23\u0007Q\u0002\u0002\u0c23\u0c24\u0007", + "W\u0002\u0002\u0c24\u0c25\u0007R\u0002\u0002\u0c25\u0122\u0003\u0002", + "\u0002\u0002\u0c26\u0c27\u0007J\u0002\u0002\u0c27\u0c28\u0007C\u0002", + "\u0002\u0c28\u0c29\u0007X\u0002\u0002\u0c29\u0c2a\u0007K\u0002\u0002", + "\u0c2a\u0c2b\u0007P\u0002\u0002\u0c2b\u0c2c\u0007I\u0002\u0002\u0c2c", + "\u0124\u0003\u0002\u0002\u0002\u0c2d\u0c2e\u0007J\u0002\u0002\u0c2e", + "\u0c2f\u0007C\u0002\u0002\u0c2f\u0c30\u0007U\u0002\u0002\u0c30\u0c31", + "\u0007J\u0002\u0002\u0c31\u0c32\u0007G\u0002\u0002\u0c32\u0c33\u0007", + "F\u0002\u0002\u0c33\u0126\u0003\u0002\u0002\u0002\u0c34\u0c35\u0007", + "J\u0002\u0002\u0c35\u0c36\u0007G\u0002\u0002\u0c36\u0c37\u0007C\u0002", + "\u0002\u0c37\u0c38\u0007N\u0002\u0002\u0c38\u0c39\u0007V\u0002\u0002", + "\u0c39\u0c3a\u0007J\u0002\u0002\u0c3a\u0c3b\u0007E\u0002\u0002\u0c3b", + "\u0c3c\u0007J\u0002\u0002\u0c3c\u0c3d\u0007G\u0002\u0002\u0c3d\u0c3e", + "\u0007E\u0002\u0002\u0c3e\u0c3f\u0007M\u0002\u0002\u0c3f\u0c40\u0007", + "V\u0002\u0002\u0c40\u0c41\u0007K\u0002\u0002\u0c41\u0c42\u0007O\u0002", + "\u0002\u0c42\u0c43\u0007G\u0002\u0002\u0c43\u0c44\u0007Q\u0002\u0002", + "\u0c44\u0c45\u0007W\u0002\u0002\u0c45\u0c46\u0007V\u0002\u0002\u0c46", + "\u0128\u0003\u0002\u0002\u0002\u0c47\u0c48\u0007K\u0002\u0002\u0c48", + "\u0c49\u0007F\u0002\u0002\u0c49\u0c4a\u0007G\u0002\u0002\u0c4a\u0c4b", + "\u0007P\u0002\u0002\u0c4b\u0c4c\u0007V\u0002\u0002\u0c4c\u0c4d\u0007", + "K\u0002\u0002\u0c4d\u0c4e\u0007V\u0002\u0002\u0c4e\u0c4f\u0007[\u0002", + "\u0002\u0c4f\u012a\u0003\u0002\u0002\u0002\u0c50\u0c51\u0007K\u0002", + "\u0002\u0c51\u0c52\u0007F\u0002\u0002\u0c52\u0c53\u0007G\u0002\u0002", + "\u0c53\u0c54\u0007P\u0002\u0002\u0c54\u0c55\u0007V\u0002\u0002\u0c55", + "\u0c56\u0007K\u0002\u0002\u0c56\u0c57\u0007V\u0002\u0002\u0c57\u0c58", + "\u0007[\u0002\u0002\u0c58\u0c59\u0007E\u0002\u0002\u0c59\u0c5a\u0007", + "Q\u0002\u0002\u0c5a\u0c5b\u0007N\u0002\u0002\u0c5b\u012c\u0003\u0002", + "\u0002\u0002\u0c5c\u0c5d\u0007K\u0002\u0002\u0c5d\u0c5e\u0007F\u0002", + "\u0002\u0c5e\u0c5f\u0007G\u0002\u0002\u0c5f\u0c60\u0007P\u0002\u0002", + "\u0c60\u0c61\u0007V\u0002\u0002\u0c61\u0c62\u0007K\u0002\u0002\u0c62", + "\u0c63\u0007V\u0002\u0002\u0c63\u0c64\u0007[\u0002\u0002\u0c64\u0c65", + "\u0007a\u0002\u0002\u0c65\u0c66\u0007K\u0002\u0002\u0c66\u0c67\u0007", + "P\u0002\u0002\u0c67\u0c68\u0007U\u0002\u0002\u0c68\u0c69\u0007G\u0002", + "\u0002\u0c69\u0c6a\u0007T\u0002\u0002\u0c6a\u0c6b\u0007V\u0002\u0002", + "\u0c6b\u012e\u0003\u0002\u0002\u0002\u0c6c\u0c6d\u0007K\u0002\u0002", + "\u0c6d\u0c6e\u0007H\u0002\u0002\u0c6e\u0130\u0003\u0002\u0002\u0002", + "\u0c6f\u0c70\u0007K\u0002\u0002\u0c70\u0c71\u0007K\u0002\u0002\u0c71", + "\u0c72\u0007H\u0002\u0002\u0c72\u0132\u0003\u0002\u0002\u0002\u0c73", + "\u0c74\u0007K\u0002\u0002\u0c74\u0c75\u0007P\u0002\u0002\u0c75\u0134", + "\u0003\u0002\u0002\u0002\u0c76\u0c77\u0007K\u0002\u0002\u0c77\u0c78", + "\u0007P\u0002\u0002\u0c78\u0c79\u0007E\u0002\u0002\u0c79\u0c7a\u0007", + "N\u0002\u0002\u0c7a\u0c7b\u0007W\u0002\u0002\u0c7b\u0c7c\u0007F\u0002", + "\u0002\u0c7c\u0c7d\u0007G\u0002\u0002\u0c7d\u0136\u0003\u0002\u0002", + "\u0002\u0c7e\u0c7f\u0007K\u0002\u0002\u0c7f\u0c80\u0007P\u0002\u0002", + "\u0c80\u0c81\u0007E\u0002\u0002\u0c81\u0c82\u0007T\u0002\u0002\u0c82", + "\u0c83\u0007G\u0002\u0002\u0c83\u0c84\u0007O\u0002\u0002\u0c84\u0c85", + "\u0007G\u0002\u0002\u0c85\u0c86\u0007P\u0002\u0002\u0c86\u0c87\u0007", + "V\u0002\u0002\u0c87\u0138\u0003\u0002\u0002\u0002\u0c88\u0c89\u0007", + "K\u0002\u0002\u0c89\u0c8a\u0007P\u0002\u0002\u0c8a\u0c8b\u0007F\u0002", + "\u0002\u0c8b\u0c8c\u0007G\u0002\u0002\u0c8c\u0c8d\u0007Z\u0002\u0002", + "\u0c8d\u013a\u0003\u0002\u0002\u0002\u0c8e\u0c8f\u0007K\u0002\u0002", + "\u0c8f\u0c90\u0007P\u0002\u0002\u0c90\u0c91\u0007H\u0002\u0002\u0c91", + "\u0c92\u0007K\u0002\u0002\u0c92\u0c93\u0007P\u0002\u0002\u0c93\u0c94", + "\u0007K\u0002\u0002\u0c94\u0c95\u0007V\u0002\u0002\u0c95\u0c96\u0007", + "G\u0002\u0002\u0c96\u013c\u0003\u0002\u0002\u0002\u0c97\u0c98\u0007", + "K\u0002\u0002\u0c98\u0c99\u0007P\u0002\u0002\u0c99\u0c9a\u0007K\u0002", + "\u0002\u0c9a\u0c9b\u0007V\u0002\u0002\u0c9b\u013e\u0003\u0002\u0002", + "\u0002\u0c9c\u0c9d\u0007K\u0002\u0002\u0c9d\u0c9e\u0007P\u0002\u0002", + "\u0c9e\u0c9f\u0007P\u0002\u0002\u0c9f\u0ca0\u0007G\u0002\u0002\u0ca0", + "\u0ca1\u0007T\u0002\u0002\u0ca1\u0140\u0003\u0002\u0002\u0002\u0ca2", + "\u0ca3\u0007K\u0002\u0002\u0ca3\u0ca4\u0007P\u0002\u0002\u0ca4\u0ca5", + "\u0007U\u0002\u0002\u0ca5\u0ca6\u0007G\u0002\u0002\u0ca6\u0ca7\u0007", + "T\u0002\u0002\u0ca7\u0ca8\u0007V\u0002\u0002\u0ca8\u0142\u0003\u0002", + "\u0002\u0002\u0ca9\u0caa\u0007K\u0002\u0002\u0caa\u0cab\u0007P\u0002", + "\u0002\u0cab\u0cac\u0007U\u0002\u0002\u0cac\u0cad\u0007V\u0002\u0002", + "\u0cad\u0cae\u0007G\u0002\u0002\u0cae\u0caf\u0007C\u0002\u0002\u0caf", + "\u0cb0\u0007F\u0002\u0002\u0cb0\u0144\u0003\u0002\u0002\u0002\u0cb1", + "\u0cb2\u0007K\u0002\u0002\u0cb2\u0cb3\u0007P\u0002\u0002\u0cb3\u0cb4", + "\u0007V\u0002\u0002\u0cb4\u0cb5\u0007G\u0002\u0002\u0cb5\u0cb6\u0007", + "T\u0002\u0002\u0cb6\u0cb7\u0007U\u0002\u0002\u0cb7\u0cb8\u0007G\u0002", + "\u0002\u0cb8\u0cb9\u0007E\u0002\u0002\u0cb9\u0cba\u0007V\u0002\u0002", + "\u0cba\u0146\u0003\u0002\u0002\u0002\u0cbb\u0cbc\u0007K\u0002\u0002", + "\u0cbc\u0cbd\u0007P\u0002\u0002\u0cbd\u0cbe\u0007V\u0002\u0002\u0cbe", + "\u0cbf\u0007Q\u0002\u0002\u0cbf\u0148\u0003\u0002\u0002\u0002\u0cc0", + "\u0cc2\t\u0002\u0002\u0002\u0cc1\u0cc0\u0003\u0002\u0002\u0002\u0cc1", + "\u0cc2\u0003\u0002\u0002\u0002\u0cc2\u0cc3\u0003\u0002\u0002\u0002\u0cc3", + "\u0cc4\u0005\u0695\u034b\u0002\u0cc4\u0cc5\u0005\u066b\u0336\u0002\u0cc5", + "\u0cc6\u0005\u0695\u034b\u0002\u0cc6\u0cc7\u0005\u066b\u0336\u0002\u0cc7", + "\u0cc8\u0005\u0695\u034b\u0002\u0cc8\u0cc9\u0005\u066b\u0336\u0002\u0cc9", + "\u0ccb\u0005\u0695\u034b\u0002\u0cca\u0ccc\t\u0002\u0002\u0002\u0ccb", + "\u0cca\u0003\u0002\u0002\u0002\u0ccb\u0ccc\u0003\u0002\u0002\u0002\u0ccc", + "\u014a\u0003\u0002\u0002\u0002\u0ccd\u0ccf\t\u0002\u0002\u0002\u0cce", + "\u0ccd\u0003\u0002\u0002\u0002\u0cce\u0ccf\u0003\u0002\u0002\u0002\u0ccf", + "\u0cd1\u0003\u0002\u0002\u0002\u0cd0\u0cd2\t\u0003\u0002\u0002\u0cd1", + "\u0cd0\u0003\u0002\u0002\u0002\u0cd1\u0cd2\u0003\u0002\u0002\u0002\u0cd2", + "\u0cd4\u0003\u0002\u0002\u0002\u0cd3\u0cd5\t\u0003\u0002\u0002\u0cd4", + "\u0cd3\u0003\u0002\u0002\u0002\u0cd4\u0cd5\u0003\u0002\u0002\u0002\u0cd5", + "\u0cd7\u0003\u0002\u0002\u0002\u0cd6\u0cd8\t\u0003\u0002\u0002\u0cd7", + "\u0cd6\u0003\u0002\u0002\u0002\u0cd7\u0cd8\u0003\u0002\u0002\u0002\u0cd8", + "\u0cda\u0003\u0002\u0002\u0002\u0cd9\u0cdb\t\u0003\u0002\u0002\u0cda", + "\u0cd9\u0003\u0002\u0002\u0002\u0cda\u0cdb\u0003\u0002\u0002\u0002\u0cdb", + "\u0cdc\u0003\u0002\u0002\u0002\u0cdc\u0cde\t\u0004\u0002\u0002\u0cdd", + "\u0cdf\t\u0003\u0002\u0002\u0cde\u0cdd\u0003\u0002\u0002\u0002\u0cde", + "\u0cdf\u0003\u0002\u0002\u0002\u0cdf\u0ce1\u0003\u0002\u0002\u0002\u0ce0", + "\u0ce2\t\u0003\u0002\u0002\u0ce1\u0ce0\u0003\u0002\u0002\u0002\u0ce1", + "\u0ce2\u0003\u0002\u0002\u0002\u0ce2\u0ce4\u0003\u0002\u0002\u0002\u0ce3", + "\u0ce5\t\u0003\u0002\u0002\u0ce4\u0ce3\u0003\u0002\u0002\u0002\u0ce4", + "\u0ce5\u0003\u0002\u0002\u0002\u0ce5\u0ce7\u0003\u0002\u0002\u0002\u0ce6", + "\u0ce8\t\u0003\u0002\u0002\u0ce7\u0ce6\u0003\u0002\u0002\u0002\u0ce7", + "\u0ce8\u0003\u0002\u0002\u0002\u0ce8\u0ce9\u0003\u0002\u0002\u0002\u0ce9", + "\u0ceb\t\u0004\u0002\u0002\u0cea\u0cec\t\u0003\u0002\u0002\u0ceb\u0cea", + "\u0003\u0002\u0002\u0002\u0ceb\u0cec\u0003\u0002\u0002\u0002\u0cec\u0cee", + "\u0003\u0002\u0002\u0002\u0ced\u0cef\t\u0003\u0002\u0002\u0cee\u0ced", + "\u0003\u0002\u0002\u0002\u0cee\u0cef\u0003\u0002\u0002\u0002\u0cef\u0cf1", + "\u0003\u0002\u0002\u0002\u0cf0\u0cf2\t\u0003\u0002\u0002\u0cf1\u0cf0", + "\u0003\u0002\u0002\u0002\u0cf1\u0cf2\u0003\u0002\u0002\u0002\u0cf2\u0cf4", + "\u0003\u0002\u0002\u0002\u0cf3\u0cf5\t\u0003\u0002\u0002\u0cf4\u0cf3", + "\u0003\u0002\u0002\u0002\u0cf4\u0cf5\u0003\u0002\u0002\u0002\u0cf5\u0cf6", + "\u0003\u0002\u0002\u0002\u0cf6\u0cf8\t\u0004\u0002\u0002\u0cf7\u0cf9", + "\t\u0003\u0002\u0002\u0cf8\u0cf7\u0003\u0002\u0002\u0002\u0cf8\u0cf9", + "\u0003\u0002\u0002\u0002\u0cf9\u0cfb\u0003\u0002\u0002\u0002\u0cfa\u0cfc", + "\t\u0003\u0002\u0002\u0cfb\u0cfa\u0003\u0002\u0002\u0002\u0cfb\u0cfc", + "\u0003\u0002\u0002\u0002\u0cfc\u0cfe\u0003\u0002\u0002\u0002\u0cfd\u0cff", + "\t\u0003\u0002\u0002\u0cfe\u0cfd\u0003\u0002\u0002\u0002\u0cfe\u0cff", + "\u0003\u0002\u0002\u0002\u0cff\u0d01\u0003\u0002\u0002\u0002\u0d00\u0d02", + "\t\u0003\u0002\u0002\u0d01\u0d00\u0003\u0002\u0002\u0002\u0d01\u0d02", + "\u0003\u0002\u0002\u0002\u0d02\u0d03\u0003\u0002\u0002\u0002\u0d03\u0d05", + "\t\u0004\u0002\u0002\u0d04\u0d06\t\u0003\u0002\u0002\u0d05\u0d04\u0003", + "\u0002\u0002\u0002\u0d05\u0d06\u0003\u0002\u0002\u0002\u0d06\u0d08\u0003", + "\u0002\u0002\u0002\u0d07\u0d09\t\u0003\u0002\u0002\u0d08\u0d07\u0003", + "\u0002\u0002\u0002\u0d08\u0d09\u0003\u0002\u0002\u0002\u0d09\u0d0b\u0003", + "\u0002\u0002\u0002\u0d0a\u0d0c\t\u0003\u0002\u0002\u0d0b\u0d0a\u0003", + "\u0002\u0002\u0002\u0d0b\u0d0c\u0003\u0002\u0002\u0002\u0d0c\u0d0e\u0003", + "\u0002\u0002\u0002\u0d0d\u0d0f\t\u0003\u0002\u0002\u0d0e\u0d0d\u0003", + "\u0002\u0002\u0002\u0d0e\u0d0f\u0003\u0002\u0002\u0002\u0d0f\u0d10\u0003", + "\u0002\u0002\u0002\u0d10\u0d12\t\u0004\u0002\u0002\u0d11\u0d13\t\u0003", + "\u0002\u0002\u0d12\u0d11\u0003\u0002\u0002\u0002\u0d12\u0d13\u0003\u0002", + "\u0002\u0002\u0d13\u0d15\u0003\u0002\u0002\u0002\u0d14\u0d16\t\u0003", + "\u0002\u0002\u0d15\u0d14\u0003\u0002\u0002\u0002\u0d15\u0d16\u0003\u0002", + "\u0002\u0002\u0d16\u0d18\u0003\u0002\u0002\u0002\u0d17\u0d19\t\u0003", + "\u0002\u0002\u0d18\u0d17\u0003\u0002\u0002\u0002\u0d18\u0d19\u0003\u0002", + "\u0002\u0002\u0d19\u0d1b\u0003\u0002\u0002\u0002\u0d1a\u0d1c\t\u0003", + "\u0002\u0002\u0d1b\u0d1a\u0003\u0002\u0002\u0002\u0d1b\u0d1c\u0003\u0002", + "\u0002\u0002\u0d1c\u0d1d\u0003\u0002\u0002\u0002\u0d1d\u0d1f\t\u0004", + "\u0002\u0002\u0d1e\u0d20\t\u0003\u0002\u0002\u0d1f\u0d1e\u0003\u0002", + "\u0002\u0002\u0d1f\u0d20\u0003\u0002\u0002\u0002\u0d20\u0d22\u0003\u0002", + "\u0002\u0002\u0d21\u0d23\t\u0003\u0002\u0002\u0d22\u0d21\u0003\u0002", + "\u0002\u0002\u0d22\u0d23\u0003\u0002\u0002\u0002\u0d23\u0d25\u0003\u0002", + "\u0002\u0002\u0d24\u0d26\t\u0003\u0002\u0002\u0d25\u0d24\u0003\u0002", + "\u0002\u0002\u0d25\u0d26\u0003\u0002\u0002\u0002\u0d26\u0d28\u0003\u0002", + "\u0002\u0002\u0d27\u0d29\t\u0003\u0002\u0002\u0d28\u0d27\u0003\u0002", + "\u0002\u0002\u0d28\u0d29\u0003\u0002\u0002\u0002\u0d29\u0d2a\u0003\u0002", + "\u0002\u0002\u0d2a\u0d2c\t\u0004\u0002\u0002\u0d2b\u0d2d\t\u0003\u0002", + "\u0002\u0d2c\u0d2b\u0003\u0002\u0002\u0002\u0d2c\u0d2d\u0003\u0002\u0002", + "\u0002\u0d2d\u0d2f\u0003\u0002\u0002\u0002\u0d2e\u0d30\t\u0003\u0002", + "\u0002\u0d2f\u0d2e\u0003\u0002\u0002\u0002\u0d2f\u0d30\u0003\u0002\u0002", + "\u0002\u0d30\u0d32\u0003\u0002\u0002\u0002\u0d31\u0d33\t\u0003\u0002", + "\u0002\u0d32\u0d31\u0003\u0002\u0002\u0002\u0d32\u0d33\u0003\u0002\u0002", + "\u0002\u0d33\u0d35\u0003\u0002\u0002\u0002\u0d34\u0d36\t\u0003\u0002", + "\u0002\u0d35\u0d34\u0003\u0002\u0002\u0002\u0d35\u0d36\u0003\u0002\u0002", + "\u0002\u0d36\u0d38\u0003\u0002\u0002\u0002\u0d37\u0d39\t\u0002\u0002", + "\u0002\u0d38\u0d37\u0003\u0002\u0002\u0002\u0d38\u0d39\u0003\u0002\u0002", + "\u0002\u0d39\u014c\u0003\u0002\u0002\u0002\u0d3a\u0d3b\u0007K\u0002", + "\u0002\u0d3b\u0d3c\u0007U\u0002\u0002\u0d3c\u014e\u0003\u0002\u0002", + "\u0002\u0d3d\u0d3e\u0007K\u0002\u0002\u0d3e\u0d3f\u0007U\u0002\u0002", + "\u0d3f\u0d40\u0007P\u0002\u0002\u0d40\u0d41\u0007W\u0002\u0002\u0d41", + "\u0d42\u0007N\u0002\u0002\u0d42\u0d43\u0007N\u0002\u0002\u0d43\u0150", + "\u0003\u0002\u0002\u0002\u0d44\u0d45\u0007L\u0002\u0002\u0d45\u0d46", + "\u0007Q\u0002\u0002\u0d46\u0d47\u0007K\u0002\u0002\u0d47\u0d48\u0007", + "P\u0002\u0002\u0d48\u0152\u0003\u0002\u0002\u0002\u0d49\u0d4a\u0007", + "M\u0002\u0002\u0d4a\u0d4b\u0007G\u0002\u0002\u0d4b\u0d4c\u0007T\u0002", + "\u0002\u0d4c\u0d4d\u0007D\u0002\u0002\u0d4d\u0d4e\u0007G\u0002\u0002", + "\u0d4e\u0d4f\u0007T\u0002\u0002\u0d4f\u0d50\u0007Q\u0002\u0002\u0d50", + "\u0d51\u0007U\u0002\u0002\u0d51\u0154\u0003\u0002\u0002\u0002\u0d52", + "\u0d53\u0007M\u0002\u0002\u0d53\u0d54\u0007G\u0002\u0002\u0d54\u0d55", + "\u0007[\u0002\u0002\u0d55\u0156\u0003\u0002\u0002\u0002\u0d56\u0d57", + "\u0007M\u0002\u0002\u0d57\u0d58\u0007G\u0002\u0002\u0d58\u0d59\u0007", + "[\u0002\u0002\u0d59\u0d5a\u0007a\u0002\u0002\u0d5a\u0d5b\u0007R\u0002", + "\u0002\u0d5b\u0d5c\u0007C\u0002\u0002\u0d5c\u0d5d\u0007V\u0002\u0002", + "\u0d5d\u0d5e\u0007J\u0002\u0002\u0d5e\u0158\u0003\u0002\u0002\u0002", + "\u0d5f\u0d60\u0007M\u0002\u0002\u0d60\u0d61\u0007G\u0002\u0002\u0d61", + "\u0d62\u0007[\u0002\u0002\u0d62\u0d63\u0007a\u0002\u0002\u0d63\u0d64", + "\u0007U\u0002\u0002\u0d64\u0d65\u0007V\u0002\u0002\u0d65\u0d66\u0007", + "Q\u0002\u0002\u0d66\u0d67\u0007T\u0002\u0002\u0d67\u0d68\u0007G\u0002", + "\u0002\u0d68\u0d69\u0007a\u0002\u0002\u0d69\u0d6a\u0007R\u0002\u0002", + "\u0d6a\u0d6b\u0007T\u0002\u0002\u0d6b\u0d6c\u0007Q\u0002\u0002\u0d6c", + "\u0d6d\u0007X\u0002\u0002\u0d6d\u0d6e\u0007K\u0002\u0002\u0d6e\u0d6f", + "\u0007F\u0002\u0002\u0d6f\u0d70\u0007G\u0002\u0002\u0d70\u0d71\u0007", + "T\u0002\u0002\u0d71\u0d72\u0007a\u0002\u0002\u0d72\u0d73\u0007P\u0002", + "\u0002\u0d73\u0d74\u0007C\u0002\u0002\u0d74\u0d75\u0007O\u0002\u0002", + "\u0d75\u0d76\u0007G\u0002\u0002\u0d76\u015a\u0003\u0002\u0002\u0002", + "\u0d77\u0d78\u0007M\u0002\u0002\u0d78\u0d79\u0007K\u0002\u0002\u0d79", + "\u0d7a\u0007N\u0002\u0002\u0d7a\u0d7b\u0007N\u0002\u0002\u0d7b\u015c", + "\u0003\u0002\u0002\u0002\u0d7c\u0d7d\u0007N\u0002\u0002\u0d7d\u0d7e", + "\u0007C\u0002\u0002\u0d7e\u0d7f\u0007P\u0002\u0002\u0d7f\u0d80\u0007", + "I\u0002\u0002\u0d80\u0d81\u0007W\u0002\u0002\u0d81\u0d82\u0007C\u0002", + "\u0002\u0d82\u0d83\u0007I\u0002\u0002\u0d83\u0d84\u0007G\u0002\u0002", + "\u0d84\u015e\u0003\u0002\u0002\u0002\u0d85\u0d86\u0007N\u0002\u0002", + "\u0d86\u0d87\u0007G\u0002\u0002\u0d87\u0d88\u0007H\u0002\u0002\u0d88", + "\u0d89\u0007V\u0002\u0002\u0d89\u0160\u0003\u0002\u0002\u0002\u0d8a", + "\u0d8b\u0007N\u0002\u0002\u0d8b\u0d8c\u0007K\u0002\u0002\u0d8c\u0d8d", + "\u0007D\u0002\u0002\u0d8d\u0d8e\u0007T\u0002\u0002\u0d8e\u0d8f\u0007", + "C\u0002\u0002\u0d8f\u0d90\u0007T\u0002\u0002\u0d90\u0d91\u0007[\u0002", + "\u0002\u0d91\u0162\u0003\u0002\u0002\u0002\u0d92\u0d93\u0007N\u0002", + "\u0002\u0d93\u0d94\u0007K\u0002\u0002\u0d94\u0d95\u0007H\u0002\u0002", + "\u0d95\u0d96\u0007G\u0002\u0002\u0d96\u0d97\u0007V\u0002\u0002\u0d97", + "\u0d98\u0007K\u0002\u0002\u0d98\u0d99\u0007O\u0002\u0002\u0d99\u0d9a", + "\u0007G\u0002\u0002\u0d9a\u0164\u0003\u0002\u0002\u0002\u0d9b\u0d9c", + "\u0007N\u0002\u0002\u0d9c\u0d9d\u0007K\u0002\u0002\u0d9d\u0d9e\u0007", + "M\u0002\u0002\u0d9e\u0d9f\u0007G\u0002\u0002\u0d9f\u0166\u0003\u0002", + "\u0002\u0002\u0da0\u0da1\u0007N\u0002\u0002\u0da1\u0da2\u0007K\u0002", + "\u0002\u0da2\u0da3\u0007P\u0002\u0002\u0da3\u0da4\u0007G\u0002\u0002", + "\u0da4\u0da5\u0007P\u0002\u0002\u0da5\u0da6\u0007Q\u0002\u0002\u0da6", + "\u0168\u0003\u0002\u0002\u0002\u0da7\u0da8\u0007N\u0002\u0002\u0da8", + "\u0da9\u0007K\u0002\u0002\u0da9\u0daa\u0007P\u0002\u0002\u0daa\u0dab", + "\u0007W\u0002\u0002\u0dab\u0dac\u0007Z\u0002\u0002\u0dac\u016a\u0003", + "\u0002\u0002\u0002\u0dad\u0dae\u0007N\u0002\u0002\u0dae\u0daf\u0007", + "K\u0002\u0002\u0daf\u0db0\u0007U\u0002\u0002\u0db0\u0db1\u0007V\u0002", + "\u0002\u0db1\u0db2\u0007G\u0002\u0002\u0db2\u0db3\u0007P\u0002\u0002", + "\u0db3\u0db4\u0007G\u0002\u0002\u0db4\u0db5\u0007T\u0002\u0002\u0db5", + "\u0db6\u0007a\u0002\u0002\u0db6\u0db7\u0007K\u0002\u0002\u0db7\u0db8", + "\u0007R\u0002\u0002\u0db8\u016c\u0003\u0002\u0002\u0002\u0db9\u0dba", + "\u0007N\u0002\u0002\u0dba\u0dbb\u0007K\u0002\u0002\u0dbb\u0dbc\u0007", + "U\u0002\u0002\u0dbc\u0dbd\u0007V\u0002\u0002\u0dbd\u0dbe\u0007G\u0002", + "\u0002\u0dbe\u0dbf\u0007P\u0002\u0002\u0dbf\u0dc0\u0007G\u0002\u0002", + "\u0dc0\u0dc1\u0007T\u0002\u0002\u0dc1\u0dc2\u0007a\u0002\u0002\u0dc2", + "\u0dc3\u0007R\u0002\u0002\u0dc3\u0dc4\u0007Q\u0002\u0002\u0dc4\u0dc5", + "\u0007T\u0002\u0002\u0dc5\u0dc6\u0007V\u0002\u0002\u0dc6\u016e\u0003", + "\u0002\u0002\u0002\u0dc7\u0dc8\u0007N\u0002\u0002\u0dc8\u0dc9\u0007", + "Q\u0002\u0002\u0dc9\u0dca\u0007C\u0002\u0002\u0dca\u0dcb\u0007F\u0002", + "\u0002\u0dcb\u0170\u0003\u0002\u0002\u0002\u0dcc\u0dcd\u0007N\u0002", + "\u0002\u0dcd\u0dce\u0007Q\u0002\u0002\u0dce\u0dcf\u0007E\u0002\u0002", + "\u0dcf\u0dd0\u0007C\u0002\u0002\u0dd0\u0dd1\u0007N\u0002\u0002\u0dd1", + "\u0dd2\u0007a\u0002\u0002\u0dd2\u0dd3\u0007U\u0002\u0002\u0dd3\u0dd4", + "\u0007G\u0002\u0002\u0dd4\u0dd5\u0007T\u0002\u0002\u0dd5\u0dd6\u0007", + "X\u0002\u0002\u0dd6\u0dd7\u0007K\u0002\u0002\u0dd7\u0dd8\u0007E\u0002", + "\u0002\u0dd8\u0dd9\u0007G\u0002\u0002\u0dd9\u0dda\u0007a\u0002\u0002", + "\u0dda\u0ddb\u0007P\u0002\u0002\u0ddb\u0ddc\u0007C\u0002\u0002\u0ddc", + "\u0ddd\u0007O\u0002\u0002\u0ddd\u0dde\u0007G\u0002\u0002\u0dde\u0172", + "\u0003\u0002\u0002\u0002\u0ddf\u0de0\u0007N\u0002\u0002\u0de0\u0de1", + "\u0007Q\u0002\u0002\u0de1\u0de2\u0007I\u0002\u0002\u0de2\u0174\u0003", + "\u0002\u0002\u0002\u0de3\u0de4\u0007O\u0002\u0002\u0de4\u0de5\u0007", + "C\u0002\u0002\u0de5\u0de6\u0007V\u0002\u0002\u0de6\u0de7\u0007E\u0002", + "\u0002\u0de7\u0de8\u0007J\u0002\u0002\u0de8\u0de9\u0007G\u0002\u0002", + "\u0de9\u0dea\u0007F\u0002\u0002\u0dea\u0176\u0003\u0002\u0002\u0002", + "\u0deb\u0dec\u0007O\u0002\u0002\u0dec\u0ded\u0007C\u0002\u0002\u0ded", + "\u0dee\u0007U\u0002\u0002\u0dee\u0def\u0007V\u0002\u0002\u0def\u0df0", + "\u0007G\u0002\u0002\u0df0\u0df1\u0007T\u0002\u0002\u0df1\u0178\u0003", + "\u0002\u0002\u0002\u0df2\u0df3\u0007O\u0002\u0002\u0df3\u0df4\u0007", + "C\u0002\u0002\u0df4\u0df5\u0007Z\u0002\u0002\u0df5\u0df6\u0007a\u0002", + "\u0002\u0df6\u0df7\u0007O\u0002\u0002\u0df7\u0df8\u0007G\u0002\u0002", + "\u0df8\u0df9\u0007O\u0002\u0002\u0df9\u0dfa\u0007Q\u0002\u0002\u0dfa", + "\u0dfb\u0007T\u0002\u0002\u0dfb\u0dfc\u0007[\u0002\u0002\u0dfc\u017a", + "\u0003\u0002\u0002\u0002\u0dfd\u0dfe\u0007O\u0002\u0002\u0dfe\u0dff", + "\u0007C\u0002\u0002\u0dff\u0e00\u0007Z\u0002\u0002\u0e00\u0e01\u0007", + "V\u0002\u0002\u0e01\u0e02\u0007T\u0002\u0002\u0e02\u0e03\u0007C\u0002", + "\u0002\u0e03\u0e04\u0007P\u0002\u0002\u0e04\u0e05\u0007U\u0002\u0002", + "\u0e05\u0e06\u0007H\u0002\u0002\u0e06\u0e07\u0007G\u0002\u0002\u0e07", + "\u0e08\u0007T\u0002\u0002\u0e08\u017c\u0003\u0002\u0002\u0002\u0e09", + "\u0e0a\u0007O\u0002\u0002\u0e0a\u0e0b\u0007C\u0002\u0002\u0e0b\u0e0c", + "\u0007Z\u0002\u0002\u0e0c\u0e0d\u0007X\u0002\u0002\u0e0d\u0e0e\u0007", + "C\u0002\u0002\u0e0e\u0e0f\u0007N\u0002\u0002\u0e0f\u0e10\u0007W\u0002", + "\u0002\u0e10\u0e11\u0007G\u0002\u0002\u0e11\u017e\u0003\u0002\u0002", + "\u0002\u0e12\u0e13\u0007O\u0002\u0002\u0e13\u0e14\u0007C\u0002\u0002", + "\u0e14\u0e15\u0007Z\u0002\u0002\u0e15\u0e16\u0007a\u0002\u0002\u0e16", + "\u0e17\u0007F\u0002\u0002\u0e17\u0e18\u0007K\u0002\u0002\u0e18\u0e19", + "\u0007U\u0002\u0002\u0e19\u0e1a\u0007R\u0002\u0002\u0e1a\u0e1b\u0007", + "C\u0002\u0002\u0e1b\u0e1c\u0007V\u0002\u0002\u0e1c\u0e1d\u0007E\u0002", + "\u0002\u0e1d\u0e1e\u0007J\u0002\u0002\u0e1e\u0e1f\u0007a\u0002\u0002", + "\u0e1f\u0e20\u0007N\u0002\u0002\u0e20\u0e21\u0007C\u0002\u0002\u0e21", + "\u0e22\u0007V\u0002\u0002\u0e22\u0e23\u0007G\u0002\u0002\u0e23\u0e24", + "\u0007P\u0002\u0002\u0e24\u0e25\u0007E\u0002\u0002\u0e25\u0e26\u0007", + "[\u0002\u0002\u0e26\u0180\u0003\u0002\u0002\u0002\u0e27\u0e28\u0007", + "O\u0002\u0002\u0e28\u0e29\u0007C\u0002\u0002\u0e29\u0e2a\u0007Z\u0002", + "\u0002\u0e2a\u0e2b\u0007a\u0002\u0002\u0e2b\u0e2c\u0007G\u0002\u0002", + "\u0e2c\u0e2d\u0007X\u0002\u0002\u0e2d\u0e2e\u0007G\u0002\u0002\u0e2e", + "\u0e2f\u0007P\u0002\u0002\u0e2f\u0e30\u0007V\u0002\u0002\u0e30\u0e31", + "\u0007a\u0002\u0002\u0e31\u0e32\u0007U\u0002\u0002\u0e32\u0e33\u0007", + "K\u0002\u0002\u0e33\u0e34\u0007\\\u0002\u0002\u0e34\u0e35\u0007G\u0002", + "\u0002\u0e35\u0182\u0003\u0002\u0002\u0002\u0e36\u0e37\u0007O\u0002", + "\u0002\u0e37\u0e38\u0007C\u0002\u0002\u0e38\u0e39\u0007Z\u0002\u0002", + "\u0e39\u0e3a\u0007a\u0002\u0002\u0e3a\u0e3b\u0007U\u0002\u0002\u0e3b", + "\u0e3c\u0007K\u0002\u0002\u0e3c\u0e3d\u0007\\\u0002\u0002\u0e3d\u0e3e", + "\u0007G\u0002\u0002\u0e3e\u0184\u0003\u0002\u0002\u0002\u0e3f\u0e40", + "\u0007O\u0002\u0002\u0e40\u0e41\u0007C\u0002\u0002\u0e41\u0e42\u0007", + "Z\u0002\u0002\u0e42\u0e43\u0007a\u0002\u0002\u0e43\u0e44\u0007Q\u0002", + "\u0002\u0e44\u0e45\u0007W\u0002\u0002\u0e45\u0e46\u0007V\u0002\u0002", + "\u0e46\u0e47\u0007U\u0002\u0002\u0e47\u0e48\u0007V\u0002\u0002\u0e48", + "\u0e49\u0007C\u0002\u0002\u0e49\u0e4a\u0007P\u0002\u0002\u0e4a\u0e4b", + "\u0007F\u0002\u0002\u0e4b\u0e4c\u0007K\u0002\u0002\u0e4c\u0e4d\u0007", + "P\u0002\u0002\u0e4d\u0e4e\u0007I\u0002\u0002\u0e4e\u0e4f\u0007a\u0002", + "\u0002\u0e4f\u0e50\u0007K\u0002\u0002\u0e50\u0e51\u0007Q\u0002\u0002", + "\u0e51\u0e52\u0007a\u0002\u0002\u0e52\u0e53\u0007R\u0002\u0002\u0e53", + "\u0e54\u0007G\u0002\u0002\u0e54\u0e55\u0007T\u0002\u0002\u0e55\u0e56", + "\u0007a\u0002\u0002\u0e56\u0e57\u0007X\u0002\u0002\u0e57\u0e58\u0007", + "Q\u0002\u0002\u0e58\u0e59\u0007N\u0002\u0002\u0e59\u0e5a\u0007W\u0002", + "\u0002\u0e5a\u0e5b\u0007O\u0002\u0002\u0e5b\u0e5c\u0007G\u0002\u0002", + "\u0e5c\u0186\u0003\u0002\u0002\u0002\u0e5d\u0e5e\u0007O\u0002\u0002", + "\u0e5e\u0e5f\u0007G\u0002\u0002\u0e5f\u0e60\u0007F\u0002\u0002\u0e60", + "\u0e61\u0007K\u0002\u0002\u0e61\u0e62\u0007C\u0002\u0002\u0e62\u0e63", + "\u0007F\u0002\u0002\u0e63\u0e64\u0007G\u0002\u0002\u0e64\u0e65\u0007", + "U\u0002\u0002\u0e65\u0e66\u0007E\u0002\u0002\u0e66\u0e67\u0007T\u0002", + "\u0002\u0e67\u0e68\u0007K\u0002\u0002\u0e68\u0e69\u0007R\u0002\u0002", + "\u0e69\u0e6a\u0007V\u0002\u0002\u0e6a\u0e6b\u0007K\u0002\u0002\u0e6b", + "\u0e6c\u0007Q\u0002\u0002\u0e6c\u0e6d\u0007P\u0002\u0002\u0e6d\u0188", + "\u0003\u0002\u0002\u0002\u0e6e\u0e6f\u0007O\u0002\u0002\u0e6f\u0e70", + "\u0007G\u0002\u0002\u0e70\u0e71\u0007F\u0002\u0002\u0e71\u0e72\u0007", + "K\u0002\u0002\u0e72\u0e73\u0007C\u0002\u0002\u0e73\u0e74\u0007P\u0002", + "\u0002\u0e74\u0e75\u0007C\u0002\u0002\u0e75\u0e76\u0007O\u0002\u0002", + "\u0e76\u0e77\u0007G\u0002\u0002\u0e77\u018a\u0003\u0002\u0002\u0002", + "\u0e78\u0e79\u0007O\u0002\u0002\u0e79\u0e7a\u0007G\u0002\u0002\u0e7a", + "\u0e7b\u0007O\u0002\u0002\u0e7b\u0e7c\u0007D\u0002\u0002\u0e7c\u0e7d", + "\u0007G\u0002\u0002\u0e7d\u0e7e\u0007T\u0002\u0002\u0e7e\u018c\u0003", + "\u0002\u0002\u0002\u0e7f\u0e80\u0007O\u0002\u0002\u0e80\u0e81\u0007", + "G\u0002\u0002\u0e81\u0e82\u0007O\u0002\u0002\u0e82\u0e83\u0007Q\u0002", + "\u0002\u0e83\u0e84\u0007T\u0002\u0002\u0e84\u0e85\u0007[\u0002\u0002", + "\u0e85\u0e86\u0007a\u0002\u0002\u0e86\u0e87\u0007R\u0002\u0002\u0e87", + "\u0e88\u0007C\u0002\u0002\u0e88\u0e89\u0007T\u0002\u0002\u0e89\u0e8a", + "\u0007V\u0002\u0002\u0e8a\u0e8b\u0007K\u0002\u0002\u0e8b\u0e8c\u0007", + "V\u0002\u0002\u0e8c\u0e8d\u0007K\u0002\u0002\u0e8d\u0e8e\u0007Q\u0002", + "\u0002\u0e8e\u0e8f\u0007P\u0002\u0002\u0e8f\u0e90\u0007a\u0002\u0002", + "\u0e90\u0e91\u0007O\u0002\u0002\u0e91\u0e92\u0007Q\u0002\u0002\u0e92", + "\u0e93\u0007F\u0002\u0002\u0e93\u0e94\u0007G\u0002\u0002\u0e94\u018e", + "\u0003\u0002\u0002\u0002\u0e95\u0e96\u0007O\u0002\u0002\u0e96\u0e97", + "\u0007G\u0002\u0002\u0e97\u0e98\u0007T\u0002\u0002\u0e98\u0e99\u0007", + "I\u0002\u0002\u0e99\u0e9a\u0007G\u0002\u0002\u0e9a\u0190\u0003\u0002", + "\u0002\u0002\u0e9b\u0e9c\u0007O\u0002\u0002\u0e9c\u0e9d\u0007G\u0002", + "\u0002\u0e9d\u0e9e\u0007U\u0002\u0002\u0e9e\u0e9f\u0007U\u0002\u0002", + "\u0e9f\u0ea0\u0007C\u0002\u0002\u0ea0\u0ea1\u0007I\u0002\u0002\u0ea1", + "\u0ea2\u0007G\u0002\u0002\u0ea2\u0ea3\u0007a\u0002\u0002\u0ea3\u0ea4", + "\u0007H\u0002\u0002\u0ea4\u0ea5\u0007Q\u0002\u0002\u0ea5\u0ea6\u0007", + "T\u0002\u0002\u0ea6\u0ea7\u0007Y\u0002\u0002\u0ea7\u0ea8\u0007C\u0002", + "\u0002\u0ea8\u0ea9\u0007T\u0002\u0002\u0ea9\u0eaa\u0007F\u0002\u0002", + "\u0eaa\u0eab\u0007K\u0002\u0002\u0eab\u0eac\u0007P\u0002\u0002\u0eac", + "\u0ead\u0007I\u0002\u0002\u0ead\u0192\u0003\u0002\u0002\u0002\u0eae", + "\u0eaf\u0007O\u0002\u0002\u0eaf\u0eb0\u0007G\u0002\u0002\u0eb0\u0eb1", + "\u0007U\u0002\u0002\u0eb1\u0eb2\u0007U\u0002\u0002\u0eb2\u0eb3\u0007", + "C\u0002\u0002\u0eb3\u0eb4\u0007I\u0002\u0002\u0eb4\u0eb5\u0007G\u0002", + "\u0002\u0eb5\u0eb6\u0007a\u0002\u0002\u0eb6\u0eb7\u0007H\u0002\u0002", + "\u0eb7\u0eb8\u0007Q\u0002\u0002\u0eb8\u0eb9\u0007T\u0002\u0002\u0eb9", + "\u0eba\u0007Y\u0002\u0002\u0eba\u0ebb\u0007C\u0002\u0002\u0ebb\u0ebc", + "\u0007T\u0002\u0002\u0ebc\u0ebd\u0007F\u0002\u0002\u0ebd\u0ebe\u0007", + "a\u0002\u0002\u0ebe\u0ebf\u0007U\u0002\u0002\u0ebf\u0ec0\u0007K\u0002", + "\u0002\u0ec0\u0ec1\u0007\\\u0002\u0002\u0ec1\u0ec2\u0007G\u0002\u0002", + "\u0ec2\u0194\u0003\u0002\u0002\u0002\u0ec3\u0ec4\u0007O\u0002\u0002", + "\u0ec4\u0ec5\u0007K\u0002\u0002\u0ec5\u0ec6\u0007P\u0002\u0002\u0ec6", + "\u0ec7\u0007X\u0002\u0002\u0ec7\u0ec8\u0007C\u0002\u0002\u0ec8\u0ec9", + "\u0007N\u0002\u0002\u0ec9\u0eca\u0007W\u0002\u0002\u0eca\u0ecb\u0007", + "G\u0002\u0002\u0ecb\u0196\u0003\u0002\u0002\u0002\u0ecc\u0ecd\u0007", + "O\u0002\u0002\u0ecd\u0ece\u0007K\u0002\u0002\u0ece\u0ecf\u0007T\u0002", + "\u0002\u0ecf\u0ed0\u0007T\u0002\u0002\u0ed0\u0ed1\u0007Q\u0002\u0002", + "\u0ed1\u0ed2\u0007T\u0002\u0002\u0ed2\u0198\u0003\u0002\u0002\u0002", + "\u0ed3\u0ed4\u0007O\u0002\u0002\u0ed4\u0ed5\u0007W\u0002\u0002\u0ed5", + "\u0ed6\u0007U\u0002\u0002\u0ed6\u0ed7\u0007V\u0002\u0002\u0ed7\u0ed8", + "\u0007a\u0002\u0002\u0ed8\u0ed9\u0007E\u0002\u0002\u0ed9\u0eda\u0007", + "J\u0002\u0002\u0eda\u0edb\u0007C\u0002\u0002\u0edb\u0edc\u0007P\u0002", + "\u0002\u0edc\u0edd\u0007I\u0002\u0002\u0edd\u0ede\u0007G\u0002\u0002", + "\u0ede\u019a\u0003\u0002\u0002\u0002\u0edf\u0ee0\u0007P\u0002\u0002", + "\u0ee0\u0ee1\u0007C\u0002\u0002\u0ee1\u0ee2\u0007V\u0002\u0002\u0ee2", + "\u0ee3\u0007K\u0002\u0002\u0ee3\u0ee4\u0007Q\u0002\u0002\u0ee4\u0ee5", + "\u0007P\u0002\u0002\u0ee5\u0ee6\u0007C\u0002\u0002\u0ee6\u0ee7\u0007", + "N\u0002\u0002\u0ee7\u019c\u0003\u0002\u0002\u0002\u0ee8\u0ee9\u0007", + "P\u0002\u0002\u0ee9\u0eea\u0007G\u0002\u0002\u0eea\u0eeb\u0007I\u0002", + "\u0002\u0eeb\u0eec\u0007Q\u0002\u0002\u0eec\u0eed\u0007V\u0002\u0002", + "\u0eed\u0eee\u0007K\u0002\u0002\u0eee\u0eef\u0007C\u0002\u0002\u0eef", + "\u0ef0\u0007V\u0002\u0002\u0ef0\u0ef1\u0007G\u0002\u0002\u0ef1\u019e", + "\u0003\u0002\u0002\u0002\u0ef2\u0ef3\u0007P\u0002\u0002\u0ef3\u0ef4", + "\u0007Q\u0002\u0002\u0ef4\u0ef5\u0007E\u0002\u0002\u0ef5\u0ef6\u0007", + "J\u0002\u0002\u0ef6\u0ef7\u0007G\u0002\u0002\u0ef7\u0ef8\u0007E\u0002", + "\u0002\u0ef8\u0ef9\u0007M\u0002\u0002\u0ef9\u01a0\u0003\u0002\u0002", + "\u0002\u0efa\u0efb\u0007P\u0002\u0002\u0efb\u0efc\u0007Q\u0002\u0002", + "\u0efc\u0efd\u0007H\u0002\u0002\u0efd\u0efe\u0007Q\u0002\u0002\u0efe", + "\u0eff\u0007T\u0002\u0002\u0eff\u0f00\u0007O\u0002\u0002\u0f00\u0f01", + "\u0007C\u0002\u0002\u0f01\u0f02\u0007V\u0002\u0002\u0f02\u01a2\u0003", + "\u0002\u0002\u0002\u0f03\u0f04\u0007P\u0002\u0002\u0f04\u0f05\u0007", + "Q\u0002\u0002\u0f05\u0f06\u0007K\u0002\u0002\u0f06\u0f07\u0007P\u0002", + "\u0002\u0f07\u0f08\u0007K\u0002\u0002\u0f08\u0f09\u0007V\u0002\u0002", + "\u0f09\u01a4\u0003\u0002\u0002\u0002\u0f0a\u0f0b\u0007P\u0002\u0002", + "\u0f0b\u0f0c\u0007Q\u0002\u0002\u0f0c\u0f0d\u0007P\u0002\u0002\u0f0d", + "\u0f0e\u0007E\u0002\u0002\u0f0e\u0f0f\u0007N\u0002\u0002\u0f0f\u0f10", + "\u0007W\u0002\u0002\u0f10\u0f11\u0007U\u0002\u0002\u0f11\u0f12\u0007", + "V\u0002\u0002\u0f12\u0f13\u0007G\u0002\u0002\u0f13\u0f14\u0007T\u0002", + "\u0002\u0f14\u0f15\u0007G\u0002\u0002\u0f15\u0f16\u0007F\u0002\u0002", + "\u0f16\u01a6\u0003\u0002\u0002\u0002\u0f17\u0f18\u0007P\u0002\u0002", + "\u0f18\u0f19\u0007Q\u0002\u0002\u0f19\u0f1a\u0007P\u0002\u0002\u0f1a", + "\u0f1b\u0007G\u0002\u0002\u0f1b\u01a8\u0003\u0002\u0002\u0002\u0f1c", + "\u0f1d\u0007P\u0002\u0002\u0f1d\u0f1e\u0007Q\u0002\u0002\u0f1e\u0f1f", + "\u0007T\u0002\u0002\u0f1f\u0f20\u0007G\u0002\u0002\u0f20\u0f21\u0007", + "Y\u0002\u0002\u0f21\u0f22\u0007K\u0002\u0002\u0f22\u0f23\u0007P\u0002", + "\u0002\u0f23\u0f24\u0007F\u0002\u0002\u0f24\u01aa\u0003\u0002\u0002", + "\u0002\u0f25\u0f26\u0007P\u0002\u0002\u0f26\u0f27\u0007Q\u0002\u0002", + "\u0f27\u0f28\u0007U\u0002\u0002\u0f28\u0f29\u0007M\u0002\u0002\u0f29", + "\u0f2a\u0007K\u0002\u0002\u0f2a\u0f2b\u0007R\u0002\u0002\u0f2b\u01ac", + "\u0003\u0002\u0002\u0002\u0f2c\u0f2d\u0007P\u0002\u0002\u0f2d\u0f2e", + "\u0007Q\u0002\u0002\u0f2e\u0f2f\u0007W\u0002\u0002\u0f2f\u0f30\u0007", + "P\u0002\u0002\u0f30\u0f31\u0007N\u0002\u0002\u0f31\u0f32\u0007Q\u0002", + "\u0002\u0f32\u0f33\u0007C\u0002\u0002\u0f33\u0f34\u0007F\u0002\u0002", + "\u0f34\u01ae\u0003\u0002\u0002\u0002\u0f35\u0f36\u0007P\u0002\u0002", + "\u0f36\u0f37\u0007Q\u0002\u0002\u0f37\u0f38\u0007a\u0002\u0002\u0f38", + "\u0f39\u0007E\u0002\u0002\u0f39\u0f3a\u0007J\u0002\u0002\u0f3a\u0f3b", + "\u0007G\u0002\u0002\u0f3b\u0f3c\u0007E\u0002\u0002\u0f3c\u0f3d\u0007", + "M\u0002\u0002\u0f3d\u0f3e\u0007U\u0002\u0002\u0f3e\u0f3f\u0007W\u0002", + "\u0002\u0f3f\u0f40\u0007O\u0002\u0002\u0f40\u01b0\u0003\u0002\u0002", + "\u0002\u0f41\u0f42\u0007P\u0002\u0002\u0f42\u0f43\u0007Q\u0002\u0002", + "\u0f43\u0f44\u0007a\u0002\u0002\u0f44\u0f45\u0007E\u0002\u0002\u0f45", + "\u0f46\u0007Q\u0002\u0002\u0f46\u0f47\u0007O\u0002\u0002\u0f47\u0f48", + "\u0007R\u0002\u0002\u0f48\u0f49\u0007T\u0002\u0002\u0f49\u0f4a\u0007", + "G\u0002\u0002\u0f4a\u0f4b\u0007U\u0002\u0002\u0f4b\u0f4c\u0007U\u0002", + "\u0002\u0f4c\u0f4d\u0007K\u0002\u0002\u0f4d\u0f4e\u0007Q\u0002\u0002", + "\u0f4e\u0f4f\u0007P\u0002\u0002\u0f4f\u01b2\u0003\u0002\u0002\u0002", + "\u0f50\u0f51\u0007P\u0002\u0002\u0f51\u0f52\u0007Q\u0002\u0002\u0f52", + "\u0f53\u0007a\u0002\u0002\u0f53\u0f54\u0007G\u0002\u0002\u0f54\u0f55", + "\u0007X\u0002\u0002\u0f55\u0f56\u0007G\u0002\u0002\u0f56\u0f57\u0007", + "P\u0002\u0002\u0f57\u0f58\u0007V\u0002\u0002\u0f58\u0f59\u0007a\u0002", + "\u0002\u0f59\u0f5a\u0007N\u0002\u0002\u0f5a\u0f5b\u0007Q\u0002\u0002", + "\u0f5b\u0f5c\u0007U\u0002\u0002\u0f5c\u0f5d\u0007U\u0002\u0002\u0f5d", + "\u01b4\u0003\u0002\u0002\u0002\u0f5e\u0f5f\u0007P\u0002\u0002\u0f5f", + "\u0f60\u0007Q\u0002\u0002\u0f60\u0f61\u0007V\u0002\u0002\u0f61\u01b6", + "\u0003\u0002\u0002\u0002\u0f62\u0f63\u0007P\u0002\u0002\u0f63\u0f64", + "\u0007Q\u0002\u0002\u0f64\u0f65\u0007V\u0002\u0002\u0f65\u0f66\u0007", + "K\u0002\u0002\u0f66\u0f67\u0007H\u0002\u0002\u0f67\u0f68\u0007K\u0002", + "\u0002\u0f68\u0f69\u0007E\u0002\u0002\u0f69\u0f6a\u0007C\u0002\u0002", + "\u0f6a\u0f6b\u0007V\u0002\u0002\u0f6b\u0f6c\u0007K\u0002\u0002\u0f6c", + "\u0f6d\u0007Q\u0002\u0002\u0f6d\u0f6e\u0007P\u0002\u0002\u0f6e\u01b8", + "\u0003\u0002\u0002\u0002\u0f6f\u0f70\u0007P\u0002\u0002\u0f70\u0f71", + "\u0007V\u0002\u0002\u0f71\u0f72\u0007N\u0002\u0002\u0f72\u0f73\u0007", + "O\u0002\u0002\u0f73\u01ba\u0003\u0002\u0002\u0002\u0f74\u0f75\u0007", + "P\u0002\u0002\u0f75\u0f76\u0007W\u0002\u0002\u0f76\u0f77\u0007N\u0002", + "\u0002\u0f77\u0f78\u0007N\u0002\u0002\u0f78\u01bc\u0003\u0002\u0002", + "\u0002\u0f79\u0f7a\u0007P\u0002\u0002\u0f7a\u0f7b\u0007W\u0002\u0002", + "\u0f7b\u0f7c\u0007N\u0002\u0002\u0f7c\u0f7d\u0007N\u0002\u0002\u0f7d", + "\u0f7e\u0007K\u0002\u0002\u0f7e\u0f7f\u0007H\u0002\u0002\u0f7f\u01be", + "\u0003\u0002\u0002\u0002\u0f80\u0f81\u0007Q\u0002\u0002\u0f81\u0f82", + "\u0007H\u0002\u0002\u0f82\u01c0\u0003\u0002\u0002\u0002\u0f83\u0f84", + "\u0007Q\u0002\u0002\u0f84\u0f85\u0007H\u0002\u0002\u0f85\u0f86\u0007", + "H\u0002\u0002\u0f86\u01c2\u0003\u0002\u0002\u0002\u0f87\u0f88\u0007", + "Q\u0002\u0002\u0f88\u0f89\u0007H\u0002\u0002\u0f89\u0f8a\u0007H\u0002", + "\u0002\u0f8a\u0f8b\u0007U\u0002\u0002\u0f8b\u0f8c\u0007G\u0002\u0002", + "\u0f8c\u0f8d\u0007V\u0002\u0002\u0f8d\u0f8e\u0007U\u0002\u0002\u0f8e", + "\u01c4\u0003\u0002\u0002\u0002\u0f8f\u0f90\u0007Q\u0002\u0002\u0f90", + "\u0f91\u0007N\u0002\u0002\u0f91\u0f92\u0007F\u0002\u0002\u0f92\u0f93", + "\u0007a\u0002\u0002\u0f93\u0f94\u0007R\u0002\u0002\u0f94\u0f95\u0007", + "C\u0002\u0002\u0f95\u0f96\u0007U\u0002\u0002\u0f96\u0f97\u0007U\u0002", + "\u0002\u0f97\u0f98\u0007Y\u0002\u0002\u0f98\u0f99\u0007Q\u0002\u0002", + "\u0f99\u0f9a\u0007T\u0002\u0002\u0f9a\u0f9b\u0007F\u0002\u0002\u0f9b", + "\u01c6\u0003\u0002\u0002\u0002\u0f9c\u0f9d\u0007Q\u0002\u0002\u0f9d", + "\u0f9e\u0007P\u0002\u0002\u0f9e\u01c8\u0003\u0002\u0002\u0002\u0f9f", + "\u0fa0\u0007Q\u0002\u0002\u0fa0\u0fa1\u0007P\u0002\u0002\u0fa1\u0fa2", + "\u0007a\u0002\u0002\u0fa2\u0fa3\u0007H\u0002\u0002\u0fa3\u0fa4\u0007", + "C\u0002\u0002\u0fa4\u0fa5\u0007K\u0002\u0002\u0fa5\u0fa6\u0007N\u0002", + "\u0002\u0fa6\u0fa7\u0007W\u0002\u0002\u0fa7\u0fa8\u0007T\u0002\u0002", + "\u0fa8\u0fa9\u0007G\u0002\u0002\u0fa9\u01ca\u0003\u0002\u0002\u0002", + "\u0faa\u0fab\u0007Q\u0002\u0002\u0fab\u0fac\u0007R\u0002\u0002\u0fac", + "\u0fad\u0007G\u0002\u0002\u0fad\u0fae\u0007P\u0002\u0002\u0fae\u01cc", + "\u0003\u0002\u0002\u0002\u0faf\u0fb0\u0007Q\u0002\u0002\u0fb0\u0fb1", + "\u0007R\u0002\u0002\u0fb1\u0fb2\u0007G\u0002\u0002\u0fb2\u0fb3\u0007", + "P\u0002\u0002\u0fb3\u0fb4\u0007F\u0002\u0002\u0fb4\u0fb5\u0007C\u0002", + "\u0002\u0fb5\u0fb6\u0007V\u0002\u0002\u0fb6\u0fb7\u0007C\u0002\u0002", + "\u0fb7\u0fb8\u0007U\u0002\u0002\u0fb8\u0fb9\u0007Q\u0002\u0002\u0fb9", + "\u0fba\u0007W\u0002\u0002\u0fba\u0fbb\u0007T\u0002\u0002\u0fbb\u0fbc", + "\u0007E\u0002\u0002\u0fbc\u0fbd\u0007G\u0002\u0002\u0fbd\u01ce\u0003", + "\u0002\u0002\u0002\u0fbe\u0fbf\u0007Q\u0002\u0002\u0fbf\u0fc0\u0007", + "R\u0002\u0002\u0fc0\u0fc1\u0007G\u0002\u0002\u0fc1\u0fc2\u0007P\u0002", + "\u0002\u0fc2\u0fc3\u0007S\u0002\u0002\u0fc3\u0fc4\u0007W\u0002\u0002", + "\u0fc4\u0fc5\u0007G\u0002\u0002\u0fc5\u0fc6\u0007T\u0002\u0002\u0fc6", + "\u0fc7\u0007[\u0002\u0002\u0fc7\u01d0\u0003\u0002\u0002\u0002\u0fc8", + "\u0fc9\u0007Q\u0002\u0002\u0fc9\u0fca\u0007R\u0002\u0002\u0fca\u0fcb", + "\u0007G\u0002\u0002\u0fcb\u0fcc\u0007P\u0002\u0002\u0fcc\u0fcd\u0007", + "T\u0002\u0002\u0fcd\u0fce\u0007Q\u0002\u0002\u0fce\u0fcf\u0007Y\u0002", + "\u0002\u0fcf\u0fd0\u0007U\u0002\u0002\u0fd0\u0fd1\u0007G\u0002\u0002", + "\u0fd1\u0fd2\u0007V\u0002\u0002\u0fd2\u01d2\u0003\u0002\u0002\u0002", + "\u0fd3\u0fd4\u0007Q\u0002\u0002\u0fd4\u0fd5\u0007R\u0002\u0002\u0fd5", + "\u0fd6\u0007G\u0002\u0002\u0fd6\u0fd7\u0007P\u0002\u0002\u0fd7\u0fd8", + "\u0007Z\u0002\u0002\u0fd8\u0fd9\u0007O\u0002\u0002\u0fd9\u0fda\u0007", + "N\u0002\u0002\u0fda\u01d4\u0003\u0002\u0002\u0002\u0fdb\u0fdc\u0007", + "Q\u0002\u0002\u0fdc\u0fdd\u0007R\u0002\u0002\u0fdd\u0fde\u0007V\u0002", + "\u0002\u0fde\u0fdf\u0007K\u0002\u0002\u0fdf\u0fe0\u0007Q\u0002\u0002", + "\u0fe0\u0fe1\u0007P\u0002\u0002\u0fe1\u01d6\u0003\u0002\u0002\u0002", + "\u0fe2\u0fe3\u0007Q\u0002\u0002\u0fe3\u0fe4\u0007T\u0002\u0002\u0fe4", + "\u01d8\u0003\u0002\u0002\u0002\u0fe5\u0fe6\u0007Q\u0002\u0002\u0fe6", + "\u0fe7\u0007T\u0002\u0002\u0fe7\u0fe8\u0007F\u0002\u0002\u0fe8\u0fe9", + "\u0007G\u0002\u0002\u0fe9\u0fea\u0007T\u0002\u0002\u0fea\u01da\u0003", + "\u0002\u0002\u0002\u0feb\u0fec\u0007Q\u0002\u0002\u0fec\u0fed\u0007", + "W\u0002\u0002\u0fed\u0fee\u0007V\u0002\u0002\u0fee\u0fef\u0007G\u0002", + "\u0002\u0fef\u0ff0\u0007T\u0002\u0002\u0ff0\u01dc\u0003\u0002\u0002", + "\u0002\u0ff1\u0ff2\u0007Q\u0002\u0002\u0ff2\u0ff3\u0007X\u0002\u0002", + "\u0ff3\u0ff4\u0007G\u0002\u0002\u0ff4\u0ff5\u0007T\u0002\u0002\u0ff5", + "\u01de\u0003\u0002\u0002\u0002\u0ff6\u0ff7\u0007R\u0002\u0002\u0ff7", + "\u0ff8\u0007C\u0002\u0002\u0ff8\u0ff9\u0007I\u0002\u0002\u0ff9\u0ffa", + "\u0007G\u0002\u0002\u0ffa\u01e0\u0003\u0002\u0002\u0002\u0ffb\u0ffc", + "\u0007R\u0002\u0002\u0ffc\u0ffd\u0007C\u0002\u0002\u0ffd\u0ffe\u0007", + "T\u0002\u0002\u0ffe\u0fff\u0007C\u0002\u0002\u0fff\u1000\u0007O\u0002", + "\u0002\u1000\u1001\u0007a\u0002\u0002\u1001\u1002\u0007P\u0002\u0002", + "\u1002\u1003\u0007Q\u0002\u0002\u1003\u1004\u0007F\u0002\u0002\u1004", + "\u1005\u0007G\u0002\u0002\u1005\u01e2\u0003\u0002\u0002\u0002\u1006", + "\u1007\u0007R\u0002\u0002\u1007\u1008\u0007C\u0002\u0002\u1008\u1009", + "\u0007T\u0002\u0002\u1009\u100a\u0007V\u0002\u0002\u100a\u100b\u0007", + "K\u0002\u0002\u100b\u100c\u0007C\u0002\u0002\u100c\u100d\u0007N\u0002", + "\u0002\u100d\u01e4\u0003\u0002\u0002\u0002\u100e\u100f\u0007R\u0002", + "\u0002\u100f\u1010\u0007C\u0002\u0002\u1010\u1011\u0007U\u0002\u0002", + "\u1011\u1012\u0007U\u0002\u0002\u1012\u1013\u0007Y\u0002\u0002\u1013", + "\u1014\u0007Q\u0002\u0002\u1014\u1015\u0007T\u0002\u0002\u1015\u1016", + "\u0007F\u0002\u0002\u1016\u01e6\u0003\u0002\u0002\u0002\u1017\u1018", + "\u0007R\u0002\u0002\u1018\u1019\u0007G\u0002\u0002\u1019\u101a\u0007", + "T\u0002\u0002\u101a\u101b\u0007E\u0002\u0002\u101b\u101c\u0007G\u0002", + "\u0002\u101c\u101d\u0007P\u0002\u0002\u101d\u101e\u0007V\u0002\u0002", + "\u101e\u01e8\u0003\u0002\u0002\u0002\u101f\u1020\u0007R\u0002\u0002", + "\u1020\u1021\u0007G\u0002\u0002\u1021\u1022\u0007T\u0002\u0002\u1022", + "\u1023\u0007O\u0002\u0002\u1023\u1024\u0007K\u0002\u0002\u1024\u1025", + "\u0007U\u0002\u0002\u1025\u1026\u0007U\u0002\u0002\u1026\u1027\u0007", + "K\u0002\u0002\u1027\u1028\u0007Q\u0002\u0002\u1028\u1029\u0007P\u0002", + "\u0002\u1029\u102a\u0007a\u0002\u0002\u102a\u102b\u0007U\u0002\u0002", + "\u102b\u102c\u0007G\u0002\u0002\u102c\u102d\u0007V\u0002\u0002\u102d", + "\u01ea\u0003\u0002\u0002\u0002\u102e\u102f\u0007R\u0002\u0002\u102f", + "\u1030\u0007G\u0002\u0002\u1030\u1031\u0007T\u0002\u0002\u1031\u1032", + "\u0007a\u0002\u0002\u1032\u1033\u0007E\u0002\u0002\u1033\u1034\u0007", + "R\u0002\u0002\u1034\u1035\u0007W\u0002\u0002\u1035\u01ec\u0003\u0002", + "\u0002\u0002\u1036\u1037\u0007R\u0002\u0002\u1037\u1038\u0007G\u0002", + "\u0002\u1038\u1039\u0007T\u0002\u0002\u1039\u103a\u0007a\u0002\u0002", + "\u103a\u103b\u0007F\u0002\u0002\u103b\u103c\u0007D\u0002\u0002\u103c", + "\u01ee\u0003\u0002\u0002\u0002\u103d\u103e\u0007R\u0002\u0002\u103e", + "\u103f\u0007G\u0002\u0002\u103f\u1040\u0007T\u0002\u0002\u1040\u1041", + "\u0007a\u0002\u0002\u1041\u1042\u0007P\u0002\u0002\u1042\u1043\u0007", + "Q\u0002\u0002\u1043\u1044\u0007F\u0002\u0002\u1044\u1045\u0007G\u0002", + "\u0002\u1045\u01f0\u0003\u0002\u0002\u0002\u1046\u1047\u0007R\u0002", + "\u0002\u1047\u1048\u0007K\u0002\u0002\u1048\u1049\u0007X\u0002\u0002", + "\u1049\u104a\u0007Q\u0002\u0002\u104a\u104b\u0007V\u0002\u0002\u104b", + "\u01f2\u0003\u0002\u0002\u0002\u104c\u104d\u0007R\u0002\u0002\u104d", + "\u104e\u0007N\u0002\u0002\u104e\u104f\u0007C\u0002\u0002\u104f\u1050", + "\u0007P\u0002\u0002\u1050\u01f4\u0003\u0002\u0002\u0002\u1051\u1052", + "\u0007R\u0002\u0002\u1052\u1053\u0007N\u0002\u0002\u1053\u1054\u0007", + "C\u0002\u0002\u1054\u1055\u0007V\u0002\u0002\u1055\u1056\u0007H\u0002", + "\u0002\u1056\u1057\u0007Q\u0002\u0002\u1057\u1058\u0007T\u0002\u0002", + "\u1058\u1059\u0007O\u0002\u0002\u1059\u01f6\u0003\u0002\u0002\u0002", + "\u105a\u105b\u0007R\u0002\u0002\u105b\u105c\u0007Q\u0002\u0002\u105c", + "\u105d\u0007N\u0002\u0002\u105d\u105e\u0007K\u0002\u0002\u105e\u105f", + "\u0007E\u0002\u0002\u105f\u1060\u0007[\u0002\u0002\u1060\u01f8\u0003", + "\u0002\u0002\u0002\u1061\u1062\u0007R\u0002\u0002\u1062\u1063\u0007", + "T\u0002\u0002\u1063\u1064\u0007G\u0002\u0002\u1064\u1065\u0007E\u0002", + "\u0002\u1065\u1066\u0007K\u0002\u0002\u1066\u1067\u0007U\u0002\u0002", + "\u1067\u1068\u0007K\u0002\u0002\u1068\u1069\u0007Q\u0002\u0002\u1069", + "\u106a\u0007P\u0002\u0002\u106a\u01fa\u0003\u0002\u0002\u0002\u106b", + "\u106c\u0007R\u0002\u0002\u106c\u106d\u0007T\u0002\u0002\u106d\u106e", + "\u0007G\u0002\u0002\u106e\u106f\u0007F\u0002\u0002\u106f\u1070\u0007", + "K\u0002\u0002\u1070\u1071\u0007E\u0002\u0002\u1071\u1072\u0007C\u0002", + "\u0002\u1072\u1073\u0007V\u0002\u0002\u1073\u1074\u0007G\u0002\u0002", + "\u1074\u01fc\u0003\u0002\u0002\u0002\u1075\u1076\u0007R\u0002\u0002", + "\u1076\u1077\u0007T\u0002\u0002\u1077\u1078\u0007K\u0002\u0002\u1078", + "\u1079\u0007O\u0002\u0002\u1079\u107a\u0007C\u0002\u0002\u107a\u107b", + "\u0007T\u0002\u0002\u107b\u107c\u0007[\u0002\u0002\u107c\u01fe\u0003", + "\u0002\u0002\u0002\u107d\u107e\u0007R\u0002\u0002\u107e\u107f\u0007", + "T\u0002\u0002\u107f\u1080\u0007K\u0002\u0002\u1080\u1081\u0007P\u0002", + "\u0002\u1081\u1082\u0007V\u0002\u0002\u1082\u0200\u0003\u0002\u0002", + "\u0002\u1083\u1084\u0007R\u0002\u0002\u1084\u1085\u0007T\u0002\u0002", + "\u1085\u1086\u0007Q\u0002\u0002\u1086\u1087\u0007E\u0002\u0002\u1087", + "\u0202\u0003\u0002\u0002\u0002\u1088\u1089\u0007R\u0002\u0002\u1089", + "\u108a\u0007T\u0002\u0002\u108a\u108b\u0007Q\u0002\u0002\u108b\u108c", + "\u0007E\u0002\u0002\u108c\u108d\u0007G\u0002\u0002\u108d\u108e\u0007", + "F\u0002\u0002\u108e\u108f\u0007W\u0002\u0002\u108f\u1090\u0007T\u0002", + "\u0002\u1090\u1091\u0007G\u0002\u0002\u1091\u0204\u0003\u0002\u0002", + "\u0002\u1092\u1093\u0007R\u0002\u0002\u1093\u1094\u0007T\u0002\u0002", + "\u1094\u1095\u0007Q\u0002\u0002\u1095\u1096\u0007E\u0002\u0002\u1096", + "\u1097\u0007G\u0002\u0002\u1097\u1098\u0007U\u0002\u0002\u1098\u1099", + "\u0007U\u0002\u0002\u1099\u0206\u0003\u0002\u0002\u0002\u109a\u109b", + "\u0007R\u0002\u0002\u109b\u109c\u0007W\u0002\u0002\u109c\u109d\u0007", + "D\u0002\u0002\u109d\u109e\u0007N\u0002\u0002\u109e\u109f\u0007K\u0002", + "\u0002\u109f\u10a0\u0007E\u0002\u0002\u10a0\u0208\u0003\u0002\u0002", + "\u0002\u10a1\u10a2\u0007R\u0002\u0002\u10a2\u10a3\u0007[\u0002\u0002", + "\u10a3\u10a4\u0007V\u0002\u0002\u10a4\u10a5\u0007J\u0002\u0002\u10a5", + "\u10a6\u0007Q\u0002\u0002\u10a6\u10a7\u0007P\u0002\u0002\u10a7\u020a", + "\u0003\u0002\u0002\u0002\u10a8\u10a9\u0007T\u0002\u0002\u10a9\u020c", + "\u0003\u0002\u0002\u0002\u10aa\u10ab\u0007T\u0002\u0002\u10ab\u10ac", + "\u0007C\u0002\u0002\u10ac\u10ad\u0007K\u0002\u0002\u10ad\u10ae\u0007", + "U\u0002\u0002\u10ae\u10af\u0007G\u0002\u0002\u10af\u10b0\u0007T\u0002", + "\u0002\u10b0\u10b1\u0007T\u0002\u0002\u10b1\u10b2\u0007Q\u0002\u0002", + "\u10b2\u10b3\u0007T\u0002\u0002\u10b3\u020e\u0003\u0002\u0002\u0002", + "\u10b4\u10b5\u0007T\u0002\u0002\u10b5\u10b6\u0007C\u0002\u0002\u10b6", + "\u10b7\u0007Y\u0002\u0002\u10b7\u0210\u0003\u0002\u0002\u0002\u10b8", + "\u10b9\u0007T\u0002\u0002\u10b9\u10ba\u0007G\u0002\u0002\u10ba\u10bb", + "\u0007C\u0002\u0002\u10bb\u10bc\u0007F\u0002\u0002\u10bc\u0212\u0003", + "\u0002\u0002\u0002\u10bd\u10be\u0007T\u0002\u0002\u10be\u10bf\u0007", + "G\u0002\u0002\u10bf\u10c0\u0007C\u0002\u0002\u10c0\u10c1\u0007F\u0002", + "\u0002\u10c1\u10c2\u0007V\u0002\u0002\u10c2\u10c3\u0007G\u0002\u0002", + "\u10c3\u10c4\u0007Z\u0002\u0002\u10c4\u10c5\u0007V\u0002\u0002\u10c5", + "\u0214\u0003\u0002\u0002\u0002\u10c6\u10c7\u0007T\u0002\u0002\u10c7", + "\u10c8\u0007G\u0002\u0002\u10c8\u10c9\u0007C\u0002\u0002\u10c9\u10ca", + "\u0007F\u0002\u0002\u10ca\u10cb\u0007a\u0002\u0002\u10cb\u10cc\u0007", + "Y\u0002\u0002\u10cc\u10cd\u0007T\u0002\u0002\u10cd\u10ce\u0007K\u0002", + "\u0002\u10ce\u10cf\u0007V\u0002\u0002\u10cf\u10d0\u0007G\u0002\u0002", + "\u10d0\u10d1\u0007a\u0002\u0002\u10d1\u10d2\u0007H\u0002\u0002\u10d2", + "\u10d3\u0007K\u0002\u0002\u10d3\u10d4\u0007N\u0002\u0002\u10d4\u10d5", + "\u0007G\u0002\u0002\u10d5\u10d6\u0007I\u0002\u0002\u10d6\u10d7\u0007", + "T\u0002\u0002\u10d7\u10d8\u0007Q\u0002\u0002\u10d8\u10d9\u0007W\u0002", + "\u0002\u10d9\u10da\u0007R\u0002\u0002\u10da\u10db\u0007U\u0002\u0002", + "\u10db\u0216\u0003\u0002\u0002\u0002\u10dc\u10dd\u0007T\u0002\u0002", + "\u10dd\u10de\u0007G\u0002\u0002\u10de\u10df\u0007E\u0002\u0002\u10df", + "\u10e0\u0007Q\u0002\u0002\u10e0\u10e1\u0007P\u0002\u0002\u10e1\u10e2", + "\u0007H\u0002\u0002\u10e2\u10e3\u0007K\u0002\u0002\u10e3\u10e4\u0007", + "I\u0002\u0002\u10e4\u10e5\u0007W\u0002\u0002\u10e5\u10e6\u0007T\u0002", + "\u0002\u10e6\u10e7\u0007G\u0002\u0002\u10e7\u0218\u0003\u0002\u0002", + "\u0002\u10e8\u10e9\u0007T\u0002\u0002\u10e9\u10ea\u0007G\u0002\u0002", + "\u10ea\u10eb\u0007H\u0002\u0002\u10eb\u10ec\u0007G\u0002\u0002\u10ec", + "\u10ed\u0007T\u0002\u0002\u10ed\u10ee\u0007G\u0002\u0002\u10ee\u10ef", + "\u0007P\u0002\u0002\u10ef\u10f0\u0007E\u0002\u0002\u10f0\u10f1\u0007", + "G\u0002\u0002\u10f1\u10f2\u0007U\u0002\u0002\u10f2\u021a\u0003\u0002", + "\u0002\u0002\u10f3\u10f4\u0007T\u0002\u0002\u10f4\u10f5\u0007G\u0002", + "\u0002\u10f5\u10f6\u0007I\u0002\u0002\u10f6\u10f7\u0007G\u0002\u0002", + "\u10f7\u10f8\u0007P\u0002\u0002\u10f8\u10f9\u0007G\u0002\u0002\u10f9", + "\u10fa\u0007T\u0002\u0002\u10fa\u10fb\u0007C\u0002\u0002\u10fb\u10fc", + "\u0007V\u0002\u0002\u10fc\u10fd\u0007G\u0002\u0002\u10fd\u021c\u0003", + "\u0002\u0002\u0002\u10fe\u10ff\u0007T\u0002\u0002\u10ff\u1100\u0007", + "G\u0002\u0002\u1100\u1101\u0007N\u0002\u0002\u1101\u1102\u0007C\u0002", + "\u0002\u1102\u1103\u0007V\u0002\u0002\u1103\u1104\u0007G\u0002\u0002", + "\u1104\u1105\u0007F\u0002\u0002\u1105\u1106\u0007a\u0002\u0002\u1106", + "\u1107\u0007E\u0002\u0002\u1107\u1108\u0007Q\u0002\u0002\u1108\u1109", + "\u0007P\u0002\u0002\u1109\u110a\u0007X\u0002\u0002\u110a\u110b\u0007", + "G\u0002\u0002\u110b\u110c\u0007T\u0002\u0002\u110c\u110d\u0007U\u0002", + "\u0002\u110d\u110e\u0007C\u0002\u0002\u110e\u110f\u0007V\u0002\u0002", + "\u110f\u1110\u0007K\u0002\u0002\u1110\u1111\u0007Q\u0002\u0002\u1111", + "\u1112\u0007P\u0002\u0002\u1112\u021e\u0003\u0002\u0002\u0002\u1113", + "\u1114\u0007T\u0002\u0002\u1114\u1115\u0007G\u0002\u0002\u1115\u1116", + "\u0007N\u0002\u0002\u1116\u1117\u0007C\u0002\u0002\u1117\u1118\u0007", + "V\u0002\u0002\u1118\u1119\u0007G\u0002\u0002\u1119\u111a\u0007F\u0002", + "\u0002\u111a\u111b\u0007a\u0002\u0002\u111b\u111c\u0007E\u0002\u0002", + "\u111c\u111d\u0007Q\u0002\u0002\u111d\u111e\u0007P\u0002\u0002\u111e", + "\u111f\u0007X\u0002\u0002\u111f\u1120\u0007G\u0002\u0002\u1120\u1121", + "\u0007T\u0002\u0002\u1121\u1122\u0007U\u0002\u0002\u1122\u1123\u0007", + "C\u0002\u0002\u1123\u1124\u0007V\u0002\u0002\u1124\u1125\u0007K\u0002", + "\u0002\u1125\u1126\u0007Q\u0002\u0002\u1126\u1127\u0007P\u0002\u0002", + "\u1127\u1128\u0007a\u0002\u0002\u1128\u1129\u0007I\u0002\u0002\u1129", + "\u112a\u0007T\u0002\u0002\u112a\u112b\u0007Q\u0002\u0002\u112b\u112c", + "\u0007W\u0002\u0002\u112c\u112d\u0007R\u0002\u0002\u112d\u0220\u0003", + "\u0002\u0002\u0002\u112e\u112f\u0007T\u0002\u0002\u112f\u1130\u0007", + "G\u0002\u0002\u1130\u1131\u0007R\u0002\u0002\u1131\u1132\u0007N\u0002", + "\u0002\u1132\u1133\u0007K\u0002\u0002\u1133\u1134\u0007E\u0002\u0002", + "\u1134\u1135\u0007C\u0002\u0002\u1135\u1136\u0007V\u0002\u0002\u1136", + "\u1137\u0007K\u0002\u0002\u1137\u1138\u0007Q\u0002\u0002\u1138\u1139", + "\u0007P\u0002\u0002\u1139\u0222\u0003\u0002\u0002\u0002\u113a\u113b", + "\u0007T\u0002\u0002\u113b\u113c\u0007G\u0002\u0002\u113c\u113d\u0007", + "S\u0002\u0002\u113d\u113e\u0007W\u0002\u0002\u113e\u113f\u0007K\u0002", + "\u0002\u113f\u1140\u0007T\u0002\u0002\u1140\u1141\u0007G\u0002\u0002", + "\u1141\u1142\u0007F\u0002\u0002\u1142\u0224\u0003\u0002\u0002\u0002", + "\u1143\u1144\u0007T\u0002\u0002\u1144\u1145\u0007G\u0002\u0002\u1145", + "\u1146\u0007U\u0002\u0002\u1146\u1147\u0007G\u0002\u0002\u1147\u1148", + "\u0007V\u0002\u0002\u1148\u0226\u0003\u0002\u0002\u0002\u1149\u114a", + "\u0007T\u0002\u0002\u114a\u114b\u0007G\u0002\u0002\u114b\u114c\u0007", + "U\u0002\u0002\u114c\u114d\u0007V\u0002\u0002\u114d\u114e\u0007C\u0002", + "\u0002\u114e\u114f\u0007T\u0002\u0002\u114f\u1150\u0007V\u0002\u0002", + "\u1150\u0228\u0003\u0002\u0002\u0002\u1151\u1152\u0007T\u0002\u0002", + "\u1152\u1153\u0007G\u0002\u0002\u1153\u1154\u0007U\u0002\u0002\u1154", + "\u1155\u0007V\u0002\u0002\u1155\u1156\u0007Q\u0002\u0002\u1156\u1157", + "\u0007T\u0002\u0002\u1157\u1158\u0007G\u0002\u0002\u1158\u022a\u0003", + "\u0002\u0002\u0002\u1159\u115a\u0007T\u0002\u0002\u115a\u115b\u0007", + "G\u0002\u0002\u115b\u115c\u0007U\u0002\u0002\u115c\u115d\u0007V\u0002", + "\u0002\u115d\u115e\u0007T\u0002\u0002\u115e\u115f\u0007K\u0002\u0002", + "\u115f\u1160\u0007E\u0002\u0002\u1160\u1161\u0007V\u0002\u0002\u1161", + "\u022c\u0003\u0002\u0002\u0002\u1162\u1163\u0007T\u0002\u0002\u1163", + "\u1164\u0007G\u0002\u0002\u1164\u1165\u0007U\u0002\u0002\u1165\u1166", + "\u0007W\u0002\u0002\u1166\u1167\u0007O\u0002\u0002\u1167\u1168\u0007", + "G\u0002\u0002\u1168\u022e\u0003\u0002\u0002\u0002\u1169\u116a\u0007", + "T\u0002\u0002\u116a\u116b\u0007G\u0002\u0002\u116b\u116c\u0007V\u0002", + "\u0002\u116c\u116d\u0007C\u0002\u0002\u116d\u116e\u0007K\u0002\u0002", + "\u116e\u116f\u0007P\u0002\u0002\u116f\u1170\u0007F\u0002\u0002\u1170", + "\u1171\u0007C\u0002\u0002\u1171\u1172\u0007[\u0002\u0002\u1172\u1173", + "\u0007U\u0002\u0002\u1173\u0230\u0003\u0002\u0002\u0002\u1174\u1175", + "\u0007T\u0002\u0002\u1175\u1176\u0007G\u0002\u0002\u1176\u1177\u0007", + "V\u0002\u0002\u1177\u1178\u0007W\u0002\u0002\u1178\u1179\u0007T\u0002", + "\u0002\u1179\u117a\u0007P\u0002\u0002\u117a\u0232\u0003\u0002\u0002", + "\u0002\u117b\u117c\u0007T\u0002\u0002\u117c\u117d\u0007G\u0002\u0002", + "\u117d\u117e\u0007V\u0002\u0002\u117e\u117f\u0007W\u0002\u0002\u117f", + "\u1180\u0007T\u0002\u0002\u1180\u1181\u0007P\u0002\u0002\u1181\u1182", + "\u0007U\u0002\u0002\u1182\u0234\u0003\u0002\u0002\u0002\u1183\u1184", + "\u0007T\u0002\u0002\u1184\u1185\u0007G\u0002\u0002\u1185\u1186\u0007", + "X\u0002\u0002\u1186\u1187\u0007G\u0002\u0002\u1187\u1188\u0007T\u0002", + "\u0002\u1188\u1189\u0007V\u0002\u0002\u1189\u0236\u0003\u0002\u0002", + "\u0002\u118a\u118b\u0007T\u0002\u0002\u118b\u118c\u0007G\u0002\u0002", + "\u118c\u118d\u0007X\u0002\u0002\u118d\u118e\u0007Q\u0002\u0002\u118e", + "\u118f\u0007M\u0002\u0002\u118f\u1190\u0007G\u0002\u0002\u1190\u0238", + "\u0003\u0002\u0002\u0002\u1191\u1192\u0007T\u0002\u0002\u1192\u1193", + "\u0007G\u0002\u0002\u1193\u1194\u0007Y\u0002\u0002\u1194\u1195\u0007", + "K\u0002\u0002\u1195\u1196\u0007P\u0002\u0002\u1196\u1197\u0007F\u0002", + "\u0002\u1197\u023a\u0003\u0002\u0002\u0002\u1198\u1199\u0007T\u0002", + "\u0002\u1199\u119a\u0007K\u0002\u0002\u119a\u119b\u0007I\u0002\u0002", + "\u119b\u119c\u0007J\u0002\u0002\u119c\u119d\u0007V\u0002\u0002\u119d", + "\u023c\u0003\u0002\u0002\u0002\u119e\u119f\u0007T\u0002\u0002\u119f", + "\u11a0\u0007Q\u0002\u0002\u11a0\u11a1\u0007N\u0002\u0002\u11a1\u11a2", + "\u0007N\u0002\u0002\u11a2\u11a3\u0007D\u0002\u0002\u11a3\u11a4\u0007", + "C\u0002\u0002\u11a4\u11a5\u0007E\u0002\u0002\u11a5\u11a6\u0007M\u0002", + "\u0002\u11a6\u023e\u0003\u0002\u0002\u0002\u11a7\u11a8\u0007T\u0002", + "\u0002\u11a8\u11a9\u0007Q\u0002\u0002\u11a9\u11aa\u0007N\u0002\u0002", + "\u11aa\u11ab\u0007G\u0002\u0002\u11ab\u0240\u0003\u0002\u0002\u0002", + "\u11ac\u11ad\u0007T\u0002\u0002\u11ad\u11ae\u0007Q\u0002\u0002\u11ae", + "\u11af\u0007Y\u0002\u0002\u11af\u11b0\u0007E\u0002\u0002\u11b0\u11b1", + "\u0007Q\u0002\u0002\u11b1\u11b2\u0007W\u0002\u0002\u11b2\u11b3\u0007", + "P\u0002\u0002\u11b3\u11b4\u0007V\u0002\u0002\u11b4\u0242\u0003\u0002", + "\u0002\u0002\u11b5\u11b6\u0007T\u0002\u0002\u11b6\u11b7\u0007Q\u0002", + "\u0002\u11b7\u11b8\u0007Y\u0002\u0002\u11b8\u11b9\u0007I\u0002\u0002", + "\u11b9\u11ba\u0007W\u0002\u0002\u11ba\u11bb\u0007K\u0002\u0002\u11bb", + "\u11bc\u0007F\u0002\u0002\u11bc\u11bd\u0007E\u0002\u0002\u11bd\u11be", + "\u0007Q\u0002\u0002\u11be\u11bf\u0007N\u0002\u0002\u11bf\u0244\u0003", + "\u0002\u0002\u0002\u11c0\u11c1\u0007T\u0002\u0002\u11c1\u11c2\u0007", + "U\u0002\u0002\u11c2\u11c3\u0007C\u0002\u0002\u11c3\u11c4\u0007a\u0002", + "\u0002\u11c4\u11c5\u00077\u0002\u0002\u11c5\u11c6\u00073\u0002\u0002", + "\u11c6\u11c7\u00074\u0002\u0002\u11c7\u0246\u0003\u0002\u0002\u0002", + "\u11c8\u11c9\u0007T\u0002\u0002\u11c9\u11ca\u0007U\u0002\u0002\u11ca", + "\u11cb\u0007C\u0002\u0002\u11cb\u11cc\u0007a\u0002\u0002\u11cc\u11cd", + "\u00073\u0002\u0002\u11cd\u11ce\u00072\u0002\u0002\u11ce\u11cf\u0007", + "4\u0002\u0002\u11cf\u11d0\u00076\u0002\u0002\u11d0\u0248\u0003\u0002", + "\u0002\u0002\u11d1\u11d2\u0007T\u0002\u0002\u11d2\u11d3\u0007U\u0002", + "\u0002\u11d3\u11d4\u0007C\u0002\u0002\u11d4\u11d5\u0007a\u0002\u0002", + "\u11d5\u11d6\u00074\u0002\u0002\u11d6\u11d7\u00072\u0002\u0002\u11d7", + "\u11d8\u00076\u0002\u0002\u11d8\u11d9\u0007:\u0002\u0002\u11d9\u024a", + "\u0003\u0002\u0002\u0002\u11da\u11db\u0007T\u0002\u0002\u11db\u11dc", + "\u0007U\u0002\u0002\u11dc\u11dd\u0007C\u0002\u0002\u11dd\u11de\u0007", + "a\u0002\u0002\u11de\u11df\u00075\u0002\u0002\u11df\u11e0\u00072\u0002", + "\u0002\u11e0\u11e1\u00079\u0002\u0002\u11e1\u11e2\u00074\u0002\u0002", + "\u11e2\u024c\u0003\u0002\u0002\u0002\u11e3\u11e4\u0007T\u0002\u0002", + "\u11e4\u11e5\u0007U\u0002\u0002\u11e5\u11e6\u0007C\u0002\u0002\u11e6", + "\u11e7\u0007a\u0002\u0002\u11e7\u11e8\u00076\u0002\u0002\u11e8\u11e9", + "\u00072\u0002\u0002\u11e9\u11ea\u0007;\u0002\u0002\u11ea\u11eb\u0007", + "8\u0002\u0002\u11eb\u024e\u0003\u0002\u0002\u0002\u11ec\u11ed\u0007", + "U\u0002\u0002\u11ed\u11ee\u0007C\u0002\u0002\u11ee\u11ef\u0007H\u0002", + "\u0002\u11ef\u11f0\u0007G\u0002\u0002\u11f0\u11f1\u0007V\u0002\u0002", + "\u11f1\u11f2\u0007[\u0002\u0002\u11f2\u0250\u0003\u0002\u0002\u0002", + "\u11f3\u11f4\u0007T\u0002\u0002\u11f4\u11f5\u0007W\u0002\u0002\u11f5", + "\u11f6\u0007N\u0002\u0002\u11f6\u11f7\u0007G\u0002\u0002\u11f7\u0252", + "\u0003\u0002\u0002\u0002\u11f8\u11f9\u0007U\u0002\u0002\u11f9\u11fa", + "\u0007C\u0002\u0002\u11fa\u11fb\u0007H\u0002\u0002\u11fb\u11fc\u0007", + "G\u0002\u0002\u11fc\u0254\u0003\u0002\u0002\u0002\u11fd\u11fe\u0007", + "U\u0002\u0002\u11fe\u11ff\u0007C\u0002\u0002\u11ff\u1200\u0007X\u0002", + "\u0002\u1200\u1201\u0007G\u0002\u0002\u1201\u0256\u0003\u0002\u0002", + "\u0002\u1202\u1203\u0007U\u0002\u0002\u1203\u1204\u0007E\u0002\u0002", + "\u1204\u1205\u0007J\u0002\u0002\u1205\u1206\u0007G\u0002\u0002\u1206", + "\u1207\u0007F\u0002\u0002\u1207\u1208\u0007W\u0002\u0002\u1208\u1209", + "\u0007N\u0002\u0002\u1209\u120a\u0007G\u0002\u0002\u120a\u120b\u0007", + "T\u0002\u0002\u120b\u0258\u0003\u0002\u0002\u0002\u120c\u120d\u0007", + "U\u0002\u0002\u120d\u120e\u0007E\u0002\u0002\u120e\u120f\u0007J\u0002", + "\u0002\u120f\u1210\u0007G\u0002\u0002\u1210\u1211\u0007O\u0002\u0002", + "\u1211\u1212\u0007C\u0002\u0002\u1212\u025a\u0003\u0002\u0002\u0002", + "\u1213\u1214\u0007U\u0002\u0002\u1214\u1215\u0007E\u0002\u0002\u1215", + "\u1216\u0007J\u0002\u0002\u1216\u1217\u0007G\u0002\u0002\u1217\u1218", + "\u0007O\u0002\u0002\u1218\u1219\u0007G\u0002\u0002\u1219\u025c\u0003", + "\u0002\u0002\u0002\u121a\u121b\u0007U\u0002\u0002\u121b\u121c\u0007", + "G\u0002\u0002\u121c\u121d\u0007E\u0002\u0002\u121d\u121e\u0007W\u0002", + "\u0002\u121e\u121f\u0007T\u0002\u0002\u121f\u1220\u0007K\u0002\u0002", + "\u1220\u1221\u0007V\u0002\u0002\u1221\u1222\u0007[\u0002\u0002\u1222", + "\u1223\u0007C\u0002\u0002\u1223\u1224\u0007W\u0002\u0002\u1224\u1225", + "\u0007F\u0002\u0002\u1225\u1226\u0007K\u0002\u0002\u1226\u1227\u0007", + "V\u0002\u0002\u1227\u025e\u0003\u0002\u0002\u0002\u1228\u1229\u0007", + "U\u0002\u0002\u1229\u122a\u0007G\u0002\u0002\u122a\u122b\u0007N\u0002", + "\u0002\u122b\u122c\u0007G\u0002\u0002\u122c\u122d\u0007E\u0002\u0002", + "\u122d\u122e\u0007V\u0002\u0002\u122e\u0260\u0003\u0002\u0002\u0002", + "\u122f\u1230\u0007U\u0002\u0002\u1230\u1231\u0007G\u0002\u0002\u1231", + "\u1232\u0007O\u0002\u0002\u1232\u1233\u0007C\u0002\u0002\u1233\u1234", + "\u0007P\u0002\u0002\u1234\u1235\u0007V\u0002\u0002\u1235\u1236\u0007", + "K\u0002\u0002\u1236\u1237\u0007E\u0002\u0002\u1237\u1238\u0007M\u0002", + "\u0002\u1238\u1239\u0007G\u0002\u0002\u1239\u123a\u0007[\u0002\u0002", + "\u123a\u123b\u0007R\u0002\u0002\u123b\u123c\u0007J\u0002\u0002\u123c", + "\u123d\u0007T\u0002\u0002\u123d\u123e\u0007C\u0002\u0002\u123e\u123f", + "\u0007U\u0002\u0002\u123f\u1240\u0007G\u0002\u0002\u1240\u1241\u0007", + "V\u0002\u0002\u1241\u1242\u0007C\u0002\u0002\u1242\u1243\u0007D\u0002", + "\u0002\u1243\u1244\u0007N\u0002\u0002\u1244\u1245\u0007G\u0002\u0002", + "\u1245\u0262\u0003\u0002\u0002\u0002\u1246\u1247\u0007U\u0002\u0002", + "\u1247\u1248\u0007G\u0002\u0002\u1248\u1249\u0007O\u0002\u0002\u1249", + "\u124a\u0007C\u0002\u0002\u124a\u124b\u0007P\u0002\u0002\u124b\u124c", + "\u0007V\u0002\u0002\u124c\u124d\u0007K\u0002\u0002\u124d\u124e\u0007", + "E\u0002\u0002\u124e\u124f\u0007U\u0002\u0002\u124f\u1250\u0007K\u0002", + "\u0002\u1250\u1251\u0007O\u0002\u0002\u1251\u1252\u0007K\u0002\u0002", + "\u1252\u1253\u0007N\u0002\u0002\u1253\u1254\u0007C\u0002\u0002\u1254", + "\u1255\u0007T\u0002\u0002\u1255\u1256\u0007K\u0002\u0002\u1256\u1257", + "\u0007V\u0002\u0002\u1257\u1258\u0007[\u0002\u0002\u1258\u1259\u0007", + "F\u0002\u0002\u1259\u125a\u0007G\u0002\u0002\u125a\u125b\u0007V\u0002", + "\u0002\u125b\u125c\u0007C\u0002\u0002\u125c\u125d\u0007K\u0002\u0002", + "\u125d\u125e\u0007N\u0002\u0002\u125e\u125f\u0007U\u0002\u0002\u125f", + "\u1260\u0007V\u0002\u0002\u1260\u1261\u0007C\u0002\u0002\u1261\u1262", + "\u0007D\u0002\u0002\u1262\u1263\u0007N\u0002\u0002\u1263\u1264\u0007", + "G\u0002\u0002\u1264\u0264\u0003\u0002\u0002\u0002\u1265\u1266\u0007", + "U\u0002\u0002\u1266\u1267\u0007G\u0002\u0002\u1267\u1268\u0007O\u0002", + "\u0002\u1268\u1269\u0007C\u0002\u0002\u1269\u126a\u0007P\u0002\u0002", + "\u126a\u126b\u0007V\u0002\u0002\u126b\u126c\u0007K\u0002\u0002\u126c", + "\u126d\u0007E\u0002\u0002\u126d\u126e\u0007U\u0002\u0002\u126e\u126f", + "\u0007K\u0002\u0002\u126f\u1270\u0007O\u0002\u0002\u1270\u1271\u0007", + "K\u0002\u0002\u1271\u1272\u0007N\u0002\u0002\u1272\u1273\u0007C\u0002", + "\u0002\u1273\u1274\u0007T\u0002\u0002\u1274\u1275\u0007K\u0002\u0002", + "\u1275\u1276\u0007V\u0002\u0002\u1276\u1277\u0007[\u0002\u0002\u1277", + "\u1278\u0007V\u0002\u0002\u1278\u1279\u0007C\u0002\u0002\u1279\u127a", + "\u0007D\u0002\u0002\u127a\u127b\u0007N\u0002\u0002\u127b\u127c\u0007", + "G\u0002\u0002\u127c\u0266\u0003\u0002\u0002\u0002\u127d\u127e\u0007", + "U\u0002\u0002\u127e\u127f\u0007G\u0002\u0002\u127f\u1280\u0007T\u0002", + "\u0002\u1280\u1281\u0007X\u0002\u0002\u1281\u1282\u0007G\u0002\u0002", + "\u1282\u1283\u0007T\u0002\u0002\u1283\u0268\u0003\u0002\u0002\u0002", + "\u1284\u1285\u0007U\u0002\u0002\u1285\u1286\u0007G\u0002\u0002\u1286", + "\u1287\u0007T\u0002\u0002\u1287\u1288\u0007X\u0002\u0002\u1288\u1289", + "\u0007K\u0002\u0002\u1289\u128a\u0007E\u0002\u0002\u128a\u128b\u0007", + "G\u0002\u0002\u128b\u026a\u0003\u0002\u0002\u0002\u128c\u128d\u0007", + "U\u0002\u0002\u128d\u128e\u0007G\u0002\u0002\u128e\u128f\u0007T\u0002", + "\u0002\u128f\u1290\u0007X\u0002\u0002\u1290\u1291\u0007K\u0002\u0002", + "\u1291\u1292\u0007E\u0002\u0002\u1292\u1293\u0007G\u0002\u0002\u1293", + "\u1294\u0007a\u0002\u0002\u1294\u1295\u0007D\u0002\u0002\u1295\u1296", + "\u0007T\u0002\u0002\u1296\u1297\u0007Q\u0002\u0002\u1297\u1298\u0007", + "M\u0002\u0002\u1298\u1299\u0007G\u0002\u0002\u1299\u129a\u0007T\u0002", + "\u0002\u129a\u026c\u0003\u0002\u0002\u0002\u129b\u129c\u0007U\u0002", + "\u0002\u129c\u129d\u0007G\u0002\u0002\u129d\u129e\u0007T\u0002\u0002", + "\u129e\u129f\u0007X\u0002\u0002\u129f\u12a0\u0007K\u0002\u0002\u12a0", + "\u12a1\u0007E\u0002\u0002\u12a1\u12a2\u0007G\u0002\u0002\u12a2\u12a3", + "\u0007a\u0002\u0002\u12a3\u12a4\u0007P\u0002\u0002\u12a4\u12a5\u0007", + "C\u0002\u0002\u12a5\u12a6\u0007O\u0002\u0002\u12a6\u12a7\u0007G\u0002", + "\u0002\u12a7\u026e\u0003\u0002\u0002\u0002\u12a8\u12a9\u0007U\u0002", + "\u0002\u12a9\u12aa\u0007G\u0002\u0002\u12aa\u12ab\u0007U\u0002\u0002", + "\u12ab\u12ac\u0007U\u0002\u0002\u12ac\u12ad\u0007K\u0002\u0002\u12ad", + "\u12ae\u0007Q\u0002\u0002\u12ae\u12af\u0007P\u0002\u0002\u12af\u0270", + "\u0003\u0002\u0002\u0002\u12b0\u12b1\u0007U\u0002\u0002\u12b1\u12b2", + "\u0007G\u0002\u0002\u12b2\u12b3\u0007U\u0002\u0002\u12b3\u12b4\u0007", + "U\u0002\u0002\u12b4\u12b5\u0007K\u0002\u0002\u12b5\u12b6\u0007Q\u0002", + "\u0002\u12b6\u12b7\u0007P\u0002\u0002\u12b7\u12b8\u0007a\u0002\u0002", + "\u12b8\u12b9\u0007W\u0002\u0002\u12b9\u12ba\u0007U\u0002\u0002\u12ba", + "\u12bb\u0007G\u0002\u0002\u12bb\u12bc\u0007T\u0002\u0002\u12bc\u0272", + "\u0003\u0002\u0002\u0002\u12bd\u12be\u0007U\u0002\u0002\u12be\u12bf", + "\u0007G\u0002\u0002\u12bf\u12c0\u0007V\u0002\u0002\u12c0\u0274\u0003", + "\u0002\u0002\u0002\u12c1\u12c2\u0007U\u0002\u0002\u12c2\u12c3\u0007", + "G\u0002\u0002\u12c3\u12c4\u0007V\u0002\u0002\u12c4\u12c5\u0007W\u0002", + "\u0002\u12c5\u12c6\u0007U\u0002\u0002\u12c6\u12c7\u0007G\u0002\u0002", + "\u12c7\u12c8\u0007T\u0002\u0002\u12c8\u0276\u0003\u0002\u0002\u0002", + "\u12c9\u12ca\u0007U\u0002\u0002\u12ca\u12cb\u0007J\u0002\u0002\u12cb", + "\u12cc\u0007W\u0002\u0002\u12cc\u12cd\u0007V\u0002\u0002\u12cd\u12ce", + "\u0007F\u0002\u0002\u12ce\u12cf\u0007Q\u0002\u0002\u12cf\u12d0\u0007", + "Y\u0002\u0002\u12d0\u12d1\u0007P\u0002\u0002\u12d1\u0278\u0003\u0002", + "\u0002\u0002\u12d2\u12d3\u0007U\u0002\u0002\u12d3\u12d4\u0007K\u0002", + "\u0002\u12d4\u12d5\u0007F\u0002\u0002\u12d5\u027a\u0003\u0002\u0002", + "\u0002\u12d6\u12d7\u0007U\u0002\u0002\u12d7\u12d8\u0007M\u0002\u0002", + "\u12d8\u12d9\u0007K\u0002\u0002\u12d9\u12da\u0007R\u0002\u0002\u12da", + "\u027c\u0003\u0002\u0002\u0002\u12db\u12dc\u0007U\u0002\u0002\u12dc", + "\u12dd\u0007Q\u0002\u0002\u12dd\u12de\u0007H\u0002\u0002\u12de\u12df", + "\u0007V\u0002\u0002\u12df\u12e0\u0007P\u0002\u0002\u12e0\u12e1\u0007", + "W\u0002\u0002\u12e1\u12e2\u0007O\u0002\u0002\u12e2\u12e3\u0007C\u0002", + "\u0002\u12e3\u027e\u0003\u0002\u0002\u0002\u12e4\u12e5\u0007U\u0002", + "\u0002\u12e5\u12e6\u0007Q\u0002\u0002\u12e6\u12e7\u0007O\u0002\u0002", + "\u12e7\u12e8\u0007G\u0002\u0002\u12e8\u0280\u0003\u0002\u0002\u0002", + "\u12e9\u12ea\u0007U\u0002\u0002\u12ea\u12eb\u0007Q\u0002\u0002\u12eb", + "\u12ec\u0007W\u0002\u0002\u12ec\u12ed\u0007T\u0002\u0002\u12ed\u12ee", + "\u0007E\u0002\u0002\u12ee\u12ef\u0007G\u0002\u0002\u12ef\u0282\u0003", + "\u0002\u0002\u0002\u12f0\u12f1\u0007U\u0002\u0002\u12f1\u12f2\u0007", + "R\u0002\u0002\u12f2\u12f3\u0007G\u0002\u0002\u12f3\u12f4\u0007E\u0002", + "\u0002\u12f4\u12f5\u0007K\u0002\u0002\u12f5\u12f6\u0007H\u0002\u0002", + "\u12f6\u12f7\u0007K\u0002\u0002\u12f7\u12f8\u0007E\u0002\u0002\u12f8", + "\u12f9\u0007C\u0002\u0002\u12f9\u12fa\u0007V\u0002\u0002\u12fa\u12fb", + "\u0007K\u0002\u0002\u12fb\u12fc\u0007Q\u0002\u0002\u12fc\u12fd\u0007", + "P\u0002\u0002\u12fd\u0284\u0003\u0002\u0002\u0002\u12fe\u12ff\u0007", + "U\u0002\u0002\u12ff\u1300\u0007R\u0002\u0002\u1300\u1301\u0007N\u0002", + "\u0002\u1301\u1302\u0007K\u0002\u0002\u1302\u1303\u0007V\u0002\u0002", + "\u1303\u0286\u0003\u0002\u0002\u0002\u1304\u1305\u0007U\u0002\u0002", + "\u1305\u1306\u0007S\u0002\u0002\u1306\u1307\u0007N\u0002\u0002\u1307", + "\u1308\u0007F\u0002\u0002\u1308\u1309\u0007W\u0002\u0002\u1309\u130a", + "\u0007O\u0002\u0002\u130a\u130b\u0007R\u0002\u0002\u130b\u130c\u0007", + "G\u0002\u0002\u130c\u130d\u0007T\u0002\u0002\u130d\u130e\u0007H\u0002", + "\u0002\u130e\u130f\u0007N\u0002\u0002\u130f\u1310\u0007C\u0002\u0002", + "\u1310\u1311\u0007I\u0002\u0002\u1311\u1312\u0007U\u0002\u0002\u1312", + "\u0288\u0003\u0002\u0002\u0002\u1313\u1314\u0007U\u0002\u0002\u1314", + "\u1315\u0007S\u0002\u0002\u1315\u1316\u0007N\u0002\u0002\u1316\u1317", + "\u0007F\u0002\u0002\u1317\u1318\u0007W\u0002\u0002\u1318\u1319\u0007", + "O\u0002\u0002\u1319\u131a\u0007R\u0002\u0002\u131a\u131b\u0007G\u0002", + "\u0002\u131b\u131c\u0007T\u0002\u0002\u131c\u131d\u0007R\u0002\u0002", + "\u131d\u131e\u0007C\u0002\u0002\u131e\u131f\u0007V\u0002\u0002\u131f", + "\u1320\u0007J\u0002\u0002\u1320\u028a\u0003\u0002\u0002\u0002\u1321", + "\u1322\u0007U\u0002\u0002\u1322\u1323\u0007S\u0002\u0002\u1323\u1324", + "\u0007N\u0002\u0002\u1324\u1325\u0007F\u0002\u0002\u1325\u1326\u0007", + "W\u0002\u0002\u1326\u1327\u0007O\u0002\u0002\u1327\u1328\u0007R\u0002", + "\u0002\u1328\u1329\u0007G\u0002\u0002\u1329\u132a\u0007T\u0002\u0002", + "\u132a\u132b\u0007V\u0002\u0002\u132b\u132c\u0007K\u0002\u0002\u132c", + "\u132d\u0007O\u0002\u0002\u132d\u132e\u0007G\u0002\u0002\u132e\u132f", + "\u0007Q\u0002\u0002\u132f\u1330\u0007W\u0002\u0002\u1330\u1331\u0007", + "V\u0002\u0002\u1331\u1332\u0007U\u0002\u0002\u1332\u028c\u0003\u0002", + "\u0002\u0002\u1333\u1334\u0007U\u0002\u0002\u1334\u1335\u0007V\u0002", + "\u0002\u1335\u1336\u0007C\u0002\u0002\u1336\u1337\u0007V\u0002\u0002", + "\u1337\u1338\u0007K\u0002\u0002\u1338\u1339\u0007U\u0002\u0002\u1339", + "\u133a\u0007V\u0002\u0002\u133a\u133b\u0007K\u0002\u0002\u133b\u133c", + "\u0007E\u0002\u0002\u133c\u133d\u0007U\u0002\u0002\u133d\u028e\u0003", + "\u0002\u0002\u0002\u133e\u133f\u0007U\u0002\u0002\u133f\u1340\u0007", + "V\u0002\u0002\u1340\u1341\u0007C\u0002\u0002\u1341\u1342\u0007V\u0002", + "\u0002\u1342\u1343\u0007G\u0002\u0002\u1343\u0290\u0003\u0002\u0002", + "\u0002\u1344\u1345\u0007U\u0002\u0002\u1345\u1346\u0007V\u0002\u0002", + "\u1346\u1347\u0007C\u0002\u0002\u1347\u1348\u0007V\u0002\u0002\u1348", + "\u1349\u0007U\u0002\u0002\u1349\u0292\u0003\u0002\u0002\u0002\u134a", + "\u134b\u0007U\u0002\u0002\u134b\u134c\u0007V\u0002\u0002\u134c\u134d", + "\u0007C\u0002\u0002\u134d\u134e\u0007T\u0002\u0002\u134e\u134f\u0007", + "V\u0002\u0002\u134f\u0294\u0003\u0002\u0002\u0002\u1350\u1351\u0007", + "U\u0002\u0002\u1351\u1352\u0007V\u0002\u0002\u1352\u1353\u0007C\u0002", + "\u0002\u1353\u1354\u0007T\u0002\u0002\u1354\u1355\u0007V\u0002\u0002", + "\u1355\u1356\u0007G\u0002\u0002\u1356\u1357\u0007F\u0002\u0002\u1357", + "\u0296\u0003\u0002\u0002\u0002\u1358\u1359\u0007U\u0002\u0002\u1359", + "\u135a\u0007V\u0002\u0002\u135a\u135b\u0007C\u0002\u0002\u135b\u135c", + "\u0007T\u0002\u0002\u135c\u135d\u0007V\u0002\u0002\u135d\u135e\u0007", + "W\u0002\u0002\u135e\u135f\u0007R\u0002\u0002\u135f\u1360\u0007a\u0002", + "\u0002\u1360\u1361\u0007U\u0002\u0002\u1361\u1362\u0007V\u0002\u0002", + "\u1362\u1363\u0007C\u0002\u0002\u1363\u1364\u0007V\u0002\u0002\u1364", + "\u1365\u0007G\u0002\u0002\u1365\u0298\u0003\u0002\u0002\u0002\u1366", + "\u1367\u0007U\u0002\u0002\u1367\u1368\u0007V\u0002\u0002\u1368\u1369", + "\u0007Q\u0002\u0002\u1369\u136a\u0007R\u0002\u0002\u136a\u029a\u0003", + "\u0002\u0002\u0002\u136b\u136c\u0007U\u0002\u0002\u136c\u136d\u0007", + "V\u0002\u0002\u136d\u136e\u0007Q\u0002\u0002\u136e\u136f\u0007R\u0002", + "\u0002\u136f\u1370\u0007R\u0002\u0002\u1370\u1371\u0007G\u0002\u0002", + "\u1371\u1372\u0007F\u0002\u0002\u1372\u029c\u0003\u0002\u0002\u0002", + "\u1373\u1374\u0007U\u0002\u0002\u1374\u1375\u0007V\u0002\u0002\u1375", + "\u1376\u0007Q\u0002\u0002\u1376\u1377\u0007R\u0002\u0002\u1377\u1378", + "\u0007a\u0002\u0002\u1378\u1379\u0007Q\u0002\u0002\u1379\u137a\u0007", + "P\u0002\u0002\u137a\u137b\u0007a\u0002\u0002\u137b\u137c\u0007G\u0002", + "\u0002\u137c\u137d\u0007T\u0002\u0002\u137d\u137e\u0007T\u0002\u0002", + "\u137e\u137f\u0007Q\u0002\u0002\u137f\u1380\u0007T\u0002\u0002\u1380", + "\u029e\u0003\u0002\u0002\u0002\u1381\u1382\u0007U\u0002\u0002\u1382", + "\u1383\u0007W\u0002\u0002\u1383\u1384\u0007R\u0002\u0002\u1384\u1385", + "\u0007R\u0002\u0002\u1385\u1386\u0007Q\u0002\u0002\u1386\u1387\u0007", + "T\u0002\u0002\u1387\u1388\u0007V\u0002\u0002\u1388\u1389\u0007G\u0002", + "\u0002\u1389\u138a\u0007F\u0002\u0002\u138a\u02a0\u0003\u0002\u0002", + "\u0002\u138b\u138c\u0007U\u0002\u0002\u138c\u138d\u0007[\u0002\u0002", + "\u138d\u138e\u0007U\u0002\u0002\u138e\u138f\u0007V\u0002\u0002\u138f", + "\u1390\u0007G\u0002\u0002\u1390\u1391\u0007O\u0002\u0002\u1391\u1392", + "\u0007a\u0002\u0002\u1392\u1393\u0007W\u0002\u0002\u1393\u1394\u0007", + "U\u0002\u0002\u1394\u1395\u0007G\u0002\u0002\u1395\u1396\u0007T\u0002", + "\u0002\u1396\u02a2\u0003\u0002\u0002\u0002\u1397\u1398\u0007V\u0002", + "\u0002\u1398\u1399\u0007C\u0002\u0002\u1399\u139a\u0007D\u0002\u0002", + "\u139a\u139b\u0007N\u0002\u0002\u139b\u139c\u0007G\u0002\u0002\u139c", + "\u02a4\u0003\u0002\u0002\u0002\u139d\u139e\u0007V\u0002\u0002\u139e", + "\u139f\u0007C\u0002\u0002\u139f\u13a0\u0007D\u0002\u0002\u13a0\u13a1", + "\u0007N\u0002\u0002\u13a1\u13a2\u0007G\u0002\u0002\u13a2\u13a3\u0007", + "U\u0002\u0002\u13a3\u13a4\u0007C\u0002\u0002\u13a4\u13a5\u0007O\u0002", + "\u0002\u13a5\u13a6\u0007R\u0002\u0002\u13a6\u13a7\u0007N\u0002\u0002", + "\u13a7\u13a8\u0007G\u0002\u0002\u13a8\u02a6\u0003\u0002\u0002\u0002", + "\u13a9\u13aa\u0007V\u0002\u0002\u13aa\u13ab\u0007C\u0002\u0002\u13ab", + "\u13ac\u0007R\u0002\u0002\u13ac\u13ad\u0007G\u0002\u0002\u13ad\u02a8", + "\u0003\u0002\u0002\u0002\u13ae\u13af\u0007V\u0002\u0002\u13af\u13b0", + "\u0007C\u0002\u0002\u13b0\u13b1\u0007T\u0002\u0002\u13b1\u13b2\u0007", + "I\u0002\u0002\u13b2\u13b3\u0007G\u0002\u0002\u13b3\u13b4\u0007V\u0002", + "\u0002\u13b4\u02aa\u0003\u0002\u0002\u0002\u13b5\u13b6\u0007V\u0002", + "\u0002\u13b6\u13b7\u0007E\u0002\u0002\u13b7\u13b8\u0007R\u0002\u0002", + "\u13b8\u02ac\u0003\u0002\u0002\u0002\u13b9\u13ba\u0007V\u0002\u0002", + "\u13ba\u13bb\u0007G\u0002\u0002\u13bb\u13bc\u0007Z\u0002\u0002\u13bc", + "\u13bd\u0007V\u0002\u0002\u13bd\u13be\u0007U\u0002\u0002\u13be\u13bf", + "\u0007K\u0002\u0002\u13bf\u13c0\u0007\\\u0002\u0002\u13c0\u13c1\u0007", + "G\u0002\u0002\u13c1\u02ae\u0003\u0002\u0002\u0002\u13c2\u13c3\u0007", + "V\u0002\u0002\u13c3\u13c4\u0007J\u0002\u0002\u13c4\u13c5\u0007G\u0002", + "\u0002\u13c5\u13c6\u0007P\u0002\u0002\u13c6\u02b0\u0003\u0002\u0002", + "\u0002\u13c7\u13c8\u0007V\u0002\u0002\u13c8\u13c9\u0007Q\u0002\u0002", + "\u13c9\u02b2\u0003\u0002\u0002\u0002\u13ca\u13cb\u0007V\u0002\u0002", + "\u13cb\u13cc\u0007Q\u0002\u0002\u13cc\u13cd\u0007R\u0002\u0002\u13cd", + "\u02b4\u0003\u0002\u0002\u0002\u13ce\u13cf\u0007V\u0002\u0002\u13cf", + "\u13d0\u0007T\u0002\u0002\u13d0\u13d1\u0007C\u0002\u0002\u13d1\u13d2", + "\u0007E\u0002\u0002\u13d2\u13d3\u0007M\u0002\u0002\u13d3\u13d4\u0007", + "a\u0002\u0002\u13d4\u13d5\u0007E\u0002\u0002\u13d5\u13d6\u0007C\u0002", + "\u0002\u13d6\u13d7\u0007W\u0002\u0002\u13d7\u13d8\u0007U\u0002\u0002", + "\u13d8\u13d9\u0007C\u0002\u0002\u13d9\u13da\u0007N\u0002\u0002\u13da", + "\u13db\u0007K\u0002\u0002\u13db\u13dc\u0007V\u0002\u0002\u13dc\u13dd", + "\u0007[\u0002\u0002\u13dd\u02b6\u0003\u0002\u0002\u0002\u13de\u13df", + "\u0007V\u0002\u0002\u13df\u13e0\u0007T\u0002\u0002\u13e0\u13e1\u0007", + "C\u0002\u0002\u13e1\u13e2\u0007P\u0002\u0002\u13e2\u02b8\u0003\u0002", + "\u0002\u0002\u13e3\u13e4\u0007V\u0002\u0002\u13e4\u13e5\u0007T\u0002", + "\u0002\u13e5\u13e6\u0007C\u0002\u0002\u13e6\u13e7\u0007P\u0002\u0002", + "\u13e7\u13e8\u0007U\u0002\u0002\u13e8\u13e9\u0007C\u0002\u0002\u13e9", + "\u13ea\u0007E\u0002\u0002\u13ea\u13eb\u0007V\u0002\u0002\u13eb\u13ec", + "\u0007K\u0002\u0002\u13ec\u13ed\u0007Q\u0002\u0002\u13ed\u13ee\u0007", + "P\u0002\u0002\u13ee\u02ba\u0003\u0002\u0002\u0002\u13ef\u13f0\u0007", + "V\u0002\u0002\u13f0\u13f1\u0007T\u0002\u0002\u13f1\u13f2\u0007C\u0002", + "\u0002\u13f2\u13f3\u0007P\u0002\u0002\u13f3\u13f4\u0007U\u0002\u0002", + "\u13f4\u13f5\u0007H\u0002\u0002\u13f5\u13f6\u0007G\u0002\u0002\u13f6", + "\u13f7\u0007T\u0002\u0002\u13f7\u02bc\u0003\u0002\u0002\u0002\u13f8", + "\u13f9\u0007V\u0002\u0002\u13f9\u13fa\u0007T\u0002\u0002\u13fa\u13fb", + "\u0007K\u0002\u0002\u13fb\u13fc\u0007I\u0002\u0002\u13fc\u13fd\u0007", + "I\u0002\u0002\u13fd\u13fe\u0007G\u0002\u0002\u13fe\u13ff\u0007T\u0002", + "\u0002\u13ff\u02be\u0003\u0002\u0002\u0002\u1400\u1401\u0007V\u0002", + "\u0002\u1401\u1402\u0007T\u0002\u0002\u1402\u1403\u0007W\u0002\u0002", + "\u1403\u1404\u0007P\u0002\u0002\u1404\u1405\u0007E\u0002\u0002\u1405", + "\u1406\u0007C\u0002\u0002\u1406\u1407\u0007V\u0002\u0002\u1407\u1408", + "\u0007G\u0002\u0002\u1408\u02c0\u0003\u0002\u0002\u0002\u1409\u140a", + "\u0007V\u0002\u0002\u140a\u140b\u0007U\u0002\u0002\u140b\u140c\u0007", + "G\u0002\u0002\u140c\u140d\u0007S\u0002\u0002\u140d\u140e\u0007W\u0002", + "\u0002\u140e\u140f\u0007C\u0002\u0002\u140f\u1410\u0007N\u0002\u0002", + "\u1410\u02c2\u0003\u0002\u0002\u0002\u1411\u1412\u0007W\u0002\u0002", + "\u1412\u1413\u0007P\u0002\u0002\u1413\u1414\u0007E\u0002\u0002\u1414", + "\u1415\u0007J\u0002\u0002\u1415\u1416\u0007G\u0002\u0002\u1416\u1417", + "\u0007E\u0002\u0002\u1417\u1418\u0007M\u0002\u0002\u1418\u1419\u0007", + "G\u0002\u0002\u1419\u141a\u0007F\u0002\u0002\u141a\u02c4\u0003\u0002", + "\u0002\u0002\u141b\u141c\u0007W\u0002\u0002\u141c\u141d\u0007P\u0002", + "\u0002\u141d\u141e\u0007K\u0002\u0002\u141e\u141f\u0007Q\u0002\u0002", + "\u141f\u1420\u0007P\u0002\u0002\u1420\u02c6\u0003\u0002\u0002\u0002", + "\u1421\u1422\u0007W\u0002\u0002\u1422\u1423\u0007P\u0002\u0002\u1423", + "\u1424\u0007K\u0002\u0002\u1424\u1425\u0007S\u0002\u0002\u1425\u1426", + "\u0007W\u0002\u0002\u1426\u1427\u0007G\u0002\u0002\u1427\u02c8\u0003", + "\u0002\u0002\u0002\u1428\u1429\u0007W\u0002\u0002\u1429\u142a\u0007", + "P\u0002\u0002\u142a\u142b\u0007N\u0002\u0002\u142b\u142c\u0007Q\u0002", + "\u0002\u142c\u142d\u0007E\u0002\u0002\u142d\u142e\u0007M\u0002\u0002", + "\u142e\u02ca\u0003\u0002\u0002\u0002\u142f\u1430\u0007W\u0002\u0002", + "\u1430\u1431\u0007P\u0002\u0002\u1431\u1432\u0007R\u0002\u0002\u1432", + "\u1433\u0007K\u0002\u0002\u1433\u1434\u0007X\u0002\u0002\u1434\u1435", + "\u0007Q\u0002\u0002\u1435\u1436\u0007V\u0002\u0002\u1436\u02cc\u0003", + "\u0002\u0002\u0002\u1437\u1438\u0007W\u0002\u0002\u1438\u1439\u0007", + "P\u0002\u0002\u1439\u143a\u0007U\u0002\u0002\u143a\u143b\u0007C\u0002", + "\u0002\u143b\u143c\u0007H\u0002\u0002\u143c\u143d\u0007G\u0002\u0002", + "\u143d\u02ce\u0003\u0002\u0002\u0002\u143e\u143f\u0007W\u0002\u0002", + "\u143f\u1440\u0007R\u0002\u0002\u1440\u1441\u0007F\u0002\u0002\u1441", + "\u1442\u0007C\u0002\u0002\u1442\u1443\u0007V\u0002\u0002\u1443\u1444", + "\u0007G\u0002\u0002\u1444\u02d0\u0003\u0002\u0002\u0002\u1445\u1446", + "\u0007W\u0002\u0002\u1446\u1447\u0007R\u0002\u0002\u1447\u1448\u0007", + "F\u0002\u0002\u1448\u1449\u0007C\u0002\u0002\u1449\u144a\u0007V\u0002", + "\u0002\u144a\u144b\u0007G\u0002\u0002\u144b\u144c\u0007V\u0002\u0002", + "\u144c\u144d\u0007G\u0002\u0002\u144d\u144e\u0007Z\u0002\u0002\u144e", + "\u144f\u0007V\u0002\u0002\u144f\u02d2\u0003\u0002\u0002\u0002\u1450", + "\u1451\u0007W\u0002\u0002\u1451\u1452\u0007T\u0002\u0002\u1452\u1453", + "\u0007N\u0002\u0002\u1453\u02d4\u0003\u0002\u0002\u0002\u1454\u1455", + "\u0007W\u0002\u0002\u1455\u1456\u0007U\u0002\u0002\u1456\u1457\u0007", + "G\u0002\u0002\u1457\u02d6\u0003\u0002\u0002\u0002\u1458\u1459\u0007", + "W\u0002\u0002\u1459\u145a\u0007U\u0002\u0002\u145a\u145b\u0007G\u0002", + "\u0002\u145b\u145c\u0007F\u0002\u0002\u145c\u02d8\u0003\u0002\u0002", + "\u0002\u145d\u145e\u0007W\u0002\u0002\u145e\u145f\u0007U\u0002\u0002", + "\u145f\u1460\u0007G\u0002\u0002\u1460\u1461\u0007T\u0002\u0002\u1461", + "\u02da\u0003\u0002\u0002\u0002\u1462\u1463\u0007X\u0002\u0002\u1463", + "\u1464\u0007C\u0002\u0002\u1464\u1465\u0007N\u0002\u0002\u1465\u1466", + "\u0007W\u0002\u0002\u1466\u1467\u0007G\u0002\u0002\u1467\u1468\u0007", + "U\u0002\u0002\u1468\u02dc\u0003\u0002\u0002\u0002\u1469\u146a\u0007", + "X\u0002\u0002\u146a\u146b\u0007C\u0002\u0002\u146b\u146c\u0007T\u0002", + "\u0002\u146c\u146d\u0007[\u0002\u0002\u146d\u146e\u0007K\u0002\u0002", + "\u146e\u146f\u0007P\u0002\u0002\u146f\u1470\u0007I\u0002\u0002\u1470", + "\u02de\u0003\u0002\u0002\u0002\u1471\u1472\u0007X\u0002\u0002\u1472", + "\u1473\u0007G\u0002\u0002\u1473\u1474\u0007T\u0002\u0002\u1474\u1475", + "\u0007D\u0002\u0002\u1475\u1476\u0007Q\u0002\u0002\u1476\u1477\u0007", + "U\u0002\u0002\u1477\u1478\u0007G\u0002\u0002\u1478\u1479\u0007N\u0002", + "\u0002\u1479\u147a\u0007Q\u0002\u0002\u147a\u147b\u0007I\u0002\u0002", + "\u147b\u147c\u0007I\u0002\u0002\u147c\u147d\u0007K\u0002\u0002\u147d", + "\u147e\u0007P\u0002\u0002\u147e\u147f\u0007I\u0002\u0002\u147f\u02e0", + "\u0003\u0002\u0002\u0002\u1480\u1481\u0007X\u0002\u0002\u1481\u1482", + "\u0007K\u0002\u0002\u1482\u1483\u0007G\u0002\u0002\u1483\u1484\u0007", + "Y\u0002\u0002\u1484\u02e2\u0003\u0002\u0002\u0002\u1485\u1486\u0007", + "X\u0002\u0002\u1486\u1487\u0007K\u0002\u0002\u1487\u1488\u0007U\u0002", + "\u0002\u1488\u1489\u0007K\u0002\u0002\u1489\u148a\u0007D\u0002\u0002", + "\u148a\u148b\u0007K\u0002\u0002\u148b\u148c\u0007N\u0002\u0002\u148c", + "\u148d\u0007K\u0002\u0002\u148d\u148e\u0007V\u0002\u0002\u148e\u148f", + "\u0007[\u0002\u0002\u148f\u02e4\u0003\u0002\u0002\u0002\u1490\u1491", + "\u0007Y\u0002\u0002\u1491\u1492\u0007C\u0002\u0002\u1492\u1493\u0007", + "K\u0002\u0002\u1493\u1494\u0007V\u0002\u0002\u1494\u1495\u0007H\u0002", + "\u0002\u1495\u1496\u0007Q\u0002\u0002\u1496\u1497\u0007T\u0002\u0002", + "\u1497\u02e6\u0003\u0002\u0002\u0002\u1498\u1499\u0007Y\u0002\u0002", + "\u1499\u149a\u0007J\u0002\u0002\u149a\u149b\u0007G\u0002\u0002\u149b", + "\u149c\u0007P\u0002\u0002\u149c\u02e8\u0003\u0002\u0002\u0002\u149d", + "\u149e\u0007Y\u0002\u0002\u149e\u149f\u0007J\u0002\u0002\u149f\u14a0", + "\u0007G\u0002\u0002\u14a0\u14a1\u0007T\u0002\u0002\u14a1\u14a2\u0007", + "G\u0002\u0002\u14a2\u02ea\u0003\u0002\u0002\u0002\u14a3\u14a4\u0007", + "Y\u0002\u0002\u14a4\u14a5\u0007J\u0002\u0002\u14a5\u14a6\u0007K\u0002", + "\u0002\u14a6\u14a7\u0007N\u0002\u0002\u14a7\u14a8\u0007G\u0002\u0002", + "\u14a8\u02ec\u0003\u0002\u0002\u0002\u14a9\u14aa\u0007Y\u0002\u0002", + "\u14aa\u14ab\u0007K\u0002\u0002\u14ab\u14ac\u0007P\u0002\u0002\u14ac", + "\u14ad\u0007F\u0002\u0002\u14ad\u14ae\u0007Q\u0002\u0002\u14ae\u14af", + "\u0007Y\u0002\u0002\u14af\u14b0\u0007U\u0002\u0002\u14b0\u02ee\u0003", + "\u0002\u0002\u0002\u14b1\u14b2\u0007Y\u0002\u0002\u14b2\u14b3\u0007", + "K\u0002\u0002\u14b3\u14b4\u0007V\u0002\u0002\u14b4\u14b5\u0007J\u0002", + "\u0002\u14b5\u02f0\u0003\u0002\u0002\u0002\u14b6\u14b7\u0007Y\u0002", + "\u0002\u14b7\u14b8\u0007K\u0002\u0002\u14b8\u14b9\u0007V\u0002\u0002", + "\u14b9\u14ba\u0007J\u0002\u0002\u14ba\u14bb\u0007K\u0002\u0002\u14bb", + "\u14bc\u0007P\u0002\u0002\u14bc\u02f2\u0003\u0002\u0002\u0002\u14bd", + "\u14be\u0007Y\u0002\u0002\u14be\u14bf\u0007K\u0002\u0002\u14bf\u14c0", + "\u0007V\u0002\u0002\u14c0\u14c1\u0007J\u0002\u0002\u14c1\u14c2\u0007", + "Q\u0002\u0002\u14c2\u14c3\u0007W\u0002\u0002\u14c3\u14c4\u0007V\u0002", + "\u0002\u14c4\u02f4\u0003\u0002\u0002\u0002\u14c5\u14c6\u0007Y\u0002", + "\u0002\u14c6\u14c7\u0007K\u0002\u0002\u14c7\u14c8\u0007V\u0002\u0002", + "\u14c8\u14c9\u0007P\u0002\u0002\u14c9\u14ca\u0007G\u0002\u0002\u14ca", + "\u14cb\u0007U\u0002\u0002\u14cb\u14cc\u0007U\u0002\u0002\u14cc\u02f6", + "\u0003\u0002\u0002\u0002\u14cd\u14ce\u0007Y\u0002\u0002\u14ce\u14cf", + "\u0007T\u0002\u0002\u14cf\u14d0\u0007K\u0002\u0002\u14d0\u14d1\u0007", + "V\u0002\u0002\u14d1\u14d2\u0007G\u0002\u0002\u14d2\u14d3\u0007V\u0002", + "\u0002\u14d3\u14d4\u0007G\u0002\u0002\u14d4\u14d5\u0007Z\u0002\u0002", + "\u14d5\u14d6\u0007V\u0002\u0002\u14d6\u02f8\u0003\u0002\u0002\u0002", + "\u14d7\u14d8\u0007C\u0002\u0002\u14d8\u14d9\u0007D\u0002\u0002\u14d9", + "\u14da\u0007U\u0002\u0002\u14da\u14db\u0007Q\u0002\u0002\u14db\u14dc", + "\u0007N\u0002\u0002\u14dc\u14dd\u0007W\u0002\u0002\u14dd\u14de\u0007", + "V\u0002\u0002\u14de\u14df\u0007G\u0002\u0002\u14df\u02fa\u0003\u0002", + "\u0002\u0002\u14e0\u14e1\u0007C\u0002\u0002\u14e1\u14e2\u0007E\u0002", + "\u0002\u14e2\u14e3\u0007E\u0002\u0002\u14e3\u14e4\u0007G\u0002\u0002", + "\u14e4\u14e5\u0007P\u0002\u0002\u14e5\u14e6\u0007V\u0002\u0002\u14e6", + "\u14e7\u0007a\u0002\u0002\u14e7\u14e8\u0007U\u0002\u0002\u14e8\u14e9", + "\u0007G\u0002\u0002\u14e9\u14ea\u0007P\u0002\u0002\u14ea\u14eb\u0007", + "U\u0002\u0002\u14eb\u14ec\u0007K\u0002\u0002\u14ec\u14ed\u0007V\u0002", + "\u0002\u14ed\u14ee\u0007K\u0002\u0002\u14ee\u14ef\u0007X\u0002\u0002", + "\u14ef\u14f0\u0007K\u0002\u0002\u14f0\u14f1\u0007V\u0002\u0002\u14f1", + "\u14f2\u0007[\u0002\u0002\u14f2\u02fc\u0003\u0002\u0002\u0002\u14f3", + "\u14f4\u0007C\u0002\u0002\u14f4\u14f5\u0007E\u0002\u0002\u14f5\u14f6", + "\u0007V\u0002\u0002\u14f6\u14f7\u0007K\u0002\u0002\u14f7\u14f8\u0007", + "Q\u0002\u0002\u14f8\u14f9\u0007P\u0002\u0002\u14f9\u02fe\u0003\u0002", + "\u0002\u0002\u14fa\u14fb\u0007C\u0002\u0002\u14fb\u14fc\u0007E\u0002", + "\u0002\u14fc\u14fd\u0007V\u0002\u0002\u14fd\u14fe\u0007K\u0002\u0002", + "\u14fe\u14ff\u0007X\u0002\u0002\u14ff\u1500\u0007C\u0002\u0002\u1500", + "\u1501\u0007V\u0002\u0002\u1501\u1502\u0007K\u0002\u0002\u1502\u1503", + "\u0007Q\u0002\u0002\u1503\u1504\u0007P\u0002\u0002\u1504\u0300\u0003", + "\u0002\u0002\u0002\u1505\u1506\u0007C\u0002\u0002\u1506\u1507\u0007", + "E\u0002\u0002\u1507\u1508\u0007V\u0002\u0002\u1508\u1509\u0007K\u0002", + "\u0002\u1509\u150a\u0007X\u0002\u0002\u150a\u150b\u0007G\u0002\u0002", + "\u150b\u0302\u0003\u0002\u0002\u0002\u150c\u150d\u0007C\u0002\u0002", + "\u150d\u150e\u0007F\u0002\u0002\u150e\u150f\u0007F\u0002\u0002\u150f", + "\u1510\u0007T\u0002\u0002\u1510\u1511\u0007G\u0002\u0002\u1511\u1512", + "\u0007U\u0002\u0002\u1512\u1513\u0007U\u0002\u0002\u1513\u0304\u0003", + "\u0002\u0002\u0002\u1514\u1515\u0007C\u0002\u0002\u1515\u1516\u0007", + "G\u0002\u0002\u1516\u1517\u0007U\u0002\u0002\u1517\u1518\u0007a\u0002", + "\u0002\u1518\u1519\u00073\u0002\u0002\u1519\u151a\u00074\u0002\u0002", + "\u151a\u151b\u0007:\u0002\u0002\u151b\u0306\u0003\u0002\u0002\u0002", + "\u151c\u151d\u0007C\u0002\u0002\u151d\u151e\u0007G\u0002\u0002\u151e", + "\u151f\u0007U\u0002\u0002\u151f\u1520\u0007a\u0002\u0002\u1520\u1521", + "\u00073\u0002\u0002\u1521\u1522\u0007;\u0002\u0002\u1522\u1523\u0007", + "4\u0002\u0002\u1523\u0308\u0003\u0002\u0002\u0002\u1524\u1525\u0007", + "C\u0002\u0002\u1525\u1526\u0007G\u0002\u0002\u1526\u1527\u0007U\u0002", + "\u0002\u1527\u1528\u0007a\u0002\u0002\u1528\u1529\u00074\u0002\u0002", + "\u1529\u152a\u00077\u0002\u0002\u152a\u152b\u00078\u0002\u0002\u152b", + "\u030a\u0003\u0002\u0002\u0002\u152c\u152d\u0007C\u0002\u0002\u152d", + "\u152e\u0007H\u0002\u0002\u152e\u152f\u0007H\u0002\u0002\u152f\u1530", + "\u0007K\u0002\u0002\u1530\u1531\u0007P\u0002\u0002\u1531\u1532\u0007", + "K\u0002\u0002\u1532\u1533\u0007V\u0002\u0002\u1533\u1534\u0007[\u0002", + "\u0002\u1534\u030c\u0003\u0002\u0002\u0002\u1535\u1536\u0007C\u0002", + "\u0002\u1536\u1537\u0007H\u0002\u0002\u1537\u1538\u0007V\u0002\u0002", + "\u1538\u1539\u0007G\u0002\u0002\u1539\u153a\u0007T\u0002\u0002\u153a", + "\u030e\u0003\u0002\u0002\u0002\u153b\u153c\u0007C\u0002\u0002\u153c", + "\u153d\u0007I\u0002\u0002\u153d\u153e\u0007I\u0002\u0002\u153e\u153f", + "\u0007T\u0002\u0002\u153f\u1540\u0007G\u0002\u0002\u1540\u1541\u0007", + "I\u0002\u0002\u1541\u1542\u0007C\u0002\u0002\u1542\u1543\u0007V\u0002", + "\u0002\u1543\u1544\u0007G\u0002\u0002\u1544\u0310\u0003\u0002\u0002", + "\u0002\u1545\u1546\u0007C\u0002\u0002\u1546\u1547\u0007N\u0002\u0002", + "\u1547\u1548\u0007I\u0002\u0002\u1548\u1549\u0007Q\u0002\u0002\u1549", + "\u154a\u0007T\u0002\u0002\u154a\u154b\u0007K\u0002\u0002\u154b\u154c", + "\u0007V\u0002\u0002\u154c\u154d\u0007J\u0002\u0002\u154d\u154e\u0007", + "O\u0002\u0002\u154e\u0312\u0003\u0002\u0002\u0002\u154f\u1550\u0007", + "C\u0002\u0002\u1550\u1551\u0007N\u0002\u0002\u1551\u1552\u0007N\u0002", + "\u0002\u1552\u1553\u0007Q\u0002\u0002\u1553\u1554\u0007Y\u0002\u0002", + "\u1554\u1555\u0007a\u0002\u0002\u1555\u1556\u0007G\u0002\u0002\u1556", + "\u1557\u0007P\u0002\u0002\u1557\u1558\u0007E\u0002\u0002\u1558\u1559", + "\u0007T\u0002\u0002\u1559\u155a\u0007[\u0002\u0002\u155a\u155b\u0007", + "R\u0002\u0002\u155b\u155c\u0007V\u0002\u0002\u155c\u155d\u0007G\u0002", + "\u0002\u155d\u155e\u0007F\u0002\u0002\u155e\u155f\u0007a\u0002\u0002", + "\u155f\u1560\u0007X\u0002\u0002\u1560\u1561\u0007C\u0002\u0002\u1561", + "\u1562\u0007N\u0002\u0002\u1562\u1563\u0007W\u0002\u0002\u1563\u1564", + "\u0007G\u0002\u0002\u1564\u1565\u0007a\u0002\u0002\u1565\u1566\u0007", + "O\u0002\u0002\u1566\u1567\u0007Q\u0002\u0002\u1567\u1568\u0007F\u0002", + "\u0002\u1568\u1569\u0007K\u0002\u0002\u1569\u156a\u0007H\u0002\u0002", + "\u156a\u156b\u0007K\u0002\u0002\u156b\u156c\u0007E\u0002\u0002\u156c", + "\u156d\u0007C\u0002\u0002\u156d\u156e\u0007V\u0002\u0002\u156e\u156f", + "\u0007K\u0002\u0002\u156f\u1570\u0007Q\u0002\u0002\u1570\u1571\u0007", + "P\u0002\u0002\u1571\u1572\u0007U\u0002\u0002\u1572\u0314\u0003\u0002", + "\u0002\u0002\u1573\u1574\u0007C\u0002\u0002\u1574\u1575\u0007N\u0002", + "\u0002\u1575\u1576\u0007N\u0002\u0002\u1576\u1577\u0007Q\u0002\u0002", + "\u1577\u1578\u0007Y\u0002\u0002\u1578\u1579\u0007a\u0002\u0002\u1579", + "\u157a\u0007U\u0002\u0002\u157a\u157b\u0007P\u0002\u0002\u157b\u157c", + "\u0007C\u0002\u0002\u157c\u157d\u0007R\u0002\u0002\u157d\u157e\u0007", + "U\u0002\u0002\u157e\u157f\u0007J\u0002\u0002\u157f\u1580\u0007Q\u0002", + "\u0002\u1580\u1581\u0007V\u0002\u0002\u1581\u1582\u0007a\u0002\u0002", + "\u1582\u1583\u0007K\u0002\u0002\u1583\u1584\u0007U\u0002\u0002\u1584", + "\u1585\u0007Q\u0002\u0002\u1585\u1586\u0007N\u0002\u0002\u1586\u1587", + "\u0007C\u0002\u0002\u1587\u1588\u0007V\u0002\u0002\u1588\u1589\u0007", + "K\u0002\u0002\u1589\u158a\u0007Q\u0002\u0002\u158a\u158b\u0007P\u0002", + "\u0002\u158b\u0316\u0003\u0002\u0002\u0002\u158c\u158d\u0007C\u0002", + "\u0002\u158d\u158e\u0007N\u0002\u0002\u158e\u158f\u0007N\u0002\u0002", + "\u158f\u1590\u0007Q\u0002\u0002\u1590\u1591\u0007Y\u0002\u0002\u1591", + "\u1592\u0007G\u0002\u0002\u1592\u1593\u0007F\u0002\u0002\u1593\u0318", + "\u0003\u0002\u0002\u0002\u1594\u1595\u0007C\u0002\u0002\u1595\u1596", + "\u0007P\u0002\u0002\u1596\u1597\u0007U\u0002\u0002\u1597\u1598\u0007", + "K\u0002\u0002\u1598\u1599\u0007a\u0002\u0002\u1599\u159a\u0007P\u0002", + "\u0002\u159a\u159b\u0007W\u0002\u0002\u159b\u159c\u0007N\u0002\u0002", + "\u159c\u159d\u0007N\u0002\u0002\u159d\u159e\u0007a\u0002\u0002\u159e", + "\u159f\u0007F\u0002\u0002\u159f\u15a0\u0007G\u0002\u0002\u15a0\u15a1", + "\u0007H\u0002\u0002\u15a1\u15a2\u0007C\u0002\u0002\u15a2\u15a3\u0007", + "W\u0002\u0002\u15a3\u15a4\u0007N\u0002\u0002\u15a4\u15a5\u0007V\u0002", + "\u0002\u15a5\u031a\u0003\u0002\u0002\u0002\u15a6\u15a7\u0007C\u0002", + "\u0002\u15a7\u15a8\u0007P\u0002\u0002\u15a8\u15a9\u0007U\u0002\u0002", + "\u15a9\u15aa\u0007K\u0002\u0002\u15aa\u15ab\u0007a\u0002\u0002\u15ab", + "\u15ac\u0007P\u0002\u0002\u15ac\u15ad\u0007W\u0002\u0002\u15ad\u15ae", + "\u0007N\u0002\u0002\u15ae\u15af\u0007N\u0002\u0002\u15af\u15b0\u0007", + "U\u0002\u0002\u15b0\u031c\u0003\u0002\u0002\u0002\u15b1\u15b2\u0007", + "C\u0002\u0002\u15b2\u15b3\u0007P\u0002\u0002\u15b3\u15b4\u0007U\u0002", + "\u0002\u15b4\u15b5\u0007K\u0002\u0002\u15b5\u15b6\u0007a\u0002\u0002", + "\u15b6\u15b7\u0007R\u0002\u0002\u15b7\u15b8\u0007C\u0002\u0002\u15b8", + "\u15b9\u0007F\u0002\u0002\u15b9\u15ba\u0007F\u0002\u0002\u15ba\u15bb", + "\u0007K\u0002\u0002\u15bb\u15bc\u0007P\u0002\u0002\u15bc\u15bd\u0007", + "I\u0002\u0002\u15bd\u031e\u0003\u0002\u0002\u0002\u15be\u15bf\u0007", + "C\u0002\u0002\u15bf\u15c0\u0007P\u0002\u0002\u15c0\u15c1\u0007U\u0002", + "\u0002\u15c1\u15c2\u0007K\u0002\u0002\u15c2\u15c3\u0007a\u0002\u0002", + "\u15c3\u15c4\u0007Y\u0002\u0002\u15c4\u15c5\u0007C\u0002\u0002\u15c5", + "\u15c6\u0007T\u0002\u0002\u15c6\u15c7\u0007P\u0002\u0002\u15c7\u15c8", + "\u0007K\u0002\u0002\u15c8\u15c9\u0007P\u0002\u0002\u15c9\u15ca\u0007", + "I\u0002\u0002\u15ca\u15cb\u0007U\u0002\u0002\u15cb\u0320\u0003\u0002", + "\u0002\u0002\u15cc\u15cd\u0007C\u0002\u0002\u15cd\u15ce\u0007R\u0002", + "\u0002\u15ce\u15cf\u0007R\u0002\u0002\u15cf\u15d0\u0007N\u0002\u0002", + "\u15d0\u15d1\u0007K\u0002\u0002\u15d1\u15d2\u0007E\u0002\u0002\u15d2", + "\u15d3\u0007C\u0002\u0002\u15d3\u15d4\u0007V\u0002\u0002\u15d4\u15d5", + "\u0007K\u0002\u0002\u15d5\u15d6\u0007Q\u0002\u0002\u15d6\u15d7\u0007", + "P\u0002\u0002\u15d7\u15d8\u0007a\u0002\u0002\u15d8\u15d9\u0007N\u0002", + "\u0002\u15d9\u15da\u0007Q\u0002\u0002\u15da\u15db\u0007I\u0002\u0002", + "\u15db\u0322\u0003\u0002\u0002\u0002\u15dc\u15dd\u0007C\u0002\u0002", + "\u15dd\u15de\u0007R\u0002\u0002\u15de\u15df\u0007R\u0002\u0002\u15df", + "\u15e0\u0007N\u0002\u0002\u15e0\u15e1\u0007[\u0002\u0002\u15e1\u0324", + "\u0003\u0002\u0002\u0002\u15e2\u15e3\u0007C\u0002\u0002\u15e3\u15e4", + "\u0007T\u0002\u0002\u15e4\u15e5\u0007K\u0002\u0002\u15e5\u15e6\u0007", + "V\u0002\u0002\u15e6\u15e7\u0007J\u0002\u0002\u15e7\u15e8\u0007C\u0002", + "\u0002\u15e8\u15e9\u0007D\u0002\u0002\u15e9\u15ea\u0007Q\u0002\u0002", + "\u15ea\u15eb\u0007T\u0002\u0002\u15eb\u15ec\u0007V\u0002\u0002\u15ec", + "\u0326\u0003\u0002\u0002\u0002\u15ed\u15ee\u0007C\u0002\u0002\u15ee", + "\u15ef\u0007U\u0002\u0002\u15ef\u15f0\u0007U\u0002\u0002\u15f0\u15f1", + "\u0007G\u0002\u0002\u15f1\u15f2\u0007O\u0002\u0002\u15f2\u15f3\u0007", + "D\u0002\u0002\u15f3\u15f4\u0007N\u0002\u0002\u15f4\u15f5\u0007[\u0002", + "\u0002\u15f5\u0328\u0003\u0002\u0002\u0002\u15f6\u15f7\u0007C\u0002", + "\u0002\u15f7\u15f8\u0007W\u0002\u0002\u15f8\u15f9\u0007F\u0002\u0002", + "\u15f9\u15fa\u0007K\u0002\u0002\u15fa\u15fb\u0007V\u0002\u0002\u15fb", + "\u032a\u0003\u0002\u0002\u0002\u15fc\u15fd\u0007C\u0002\u0002\u15fd", + "\u15fe\u0007W\u0002\u0002\u15fe\u15ff\u0007F\u0002\u0002\u15ff\u1600", + "\u0007K\u0002\u0002\u1600\u1601\u0007V\u0002\u0002\u1601\u1602\u0007", + "a\u0002\u0002\u1602\u1603\u0007I\u0002\u0002\u1603\u1604\u0007W\u0002", + "\u0002\u1604\u1605\u0007K\u0002\u0002\u1605\u1606\u0007F\u0002\u0002", + "\u1606\u032c\u0003\u0002\u0002\u0002\u1607\u1608\u0007C\u0002\u0002", + "\u1608\u1609\u0007W\u0002\u0002\u1609\u160a\u0007V\u0002\u0002\u160a", + "\u160b\u0007Q\u0002\u0002\u160b\u032e\u0003\u0002\u0002\u0002\u160c", + "\u160d\u0007C\u0002\u0002\u160d\u160e\u0007W\u0002\u0002\u160e\u160f", + "\u0007V\u0002\u0002\u160f\u1610\u0007Q\u0002\u0002\u1610\u1611\u0007", + "a\u0002\u0002\u1611\u1612\u0007E\u0002\u0002\u1612\u1613\u0007N\u0002", + "\u0002\u1613\u1614\u0007G\u0002\u0002\u1614\u1615\u0007C\u0002\u0002", + "\u1615\u1616\u0007P\u0002\u0002\u1616\u1617\u0007W\u0002\u0002\u1617", + "\u1618\u0007R\u0002\u0002\u1618\u0330\u0003\u0002\u0002\u0002\u1619", + "\u161a\u0007C\u0002\u0002\u161a\u161b\u0007W\u0002\u0002\u161b\u161c", + "\u0007V\u0002\u0002\u161c\u161d\u0007Q\u0002\u0002\u161d\u161e\u0007", + "a\u0002\u0002\u161e\u161f\u0007E\u0002\u0002\u161f\u1620\u0007N\u0002", + "\u0002\u1620\u1621\u0007Q\u0002\u0002\u1621\u1622\u0007U\u0002\u0002", + "\u1622\u1623\u0007G\u0002\u0002\u1623\u0332\u0003\u0002\u0002\u0002", + "\u1624\u1625\u0007C\u0002\u0002\u1625\u1626\u0007W\u0002\u0002\u1626", + "\u1627\u0007V\u0002\u0002\u1627\u1628\u0007Q\u0002\u0002\u1628\u1629", + "\u0007a\u0002\u0002\u1629\u162a\u0007E\u0002\u0002\u162a\u162b\u0007", + "T\u0002\u0002\u162b\u162c\u0007G\u0002\u0002\u162c\u162d\u0007C\u0002", + "\u0002\u162d\u162e\u0007V\u0002\u0002\u162e\u162f\u0007G\u0002\u0002", + "\u162f\u1630\u0007a\u0002\u0002\u1630\u1631\u0007U\u0002\u0002\u1631", + "\u1632\u0007V\u0002\u0002\u1632\u1633\u0007C\u0002\u0002\u1633\u1634", + "\u0007V\u0002\u0002\u1634\u1635\u0007K\u0002\u0002\u1635\u1636\u0007", + "U\u0002\u0002\u1636\u1637\u0007V\u0002\u0002\u1637\u1638\u0007K\u0002", + "\u0002\u1638\u1639\u0007E\u0002\u0002\u1639\u163a\u0007U\u0002\u0002", + "\u163a\u0334\u0003\u0002\u0002\u0002\u163b\u163c\u0007C\u0002\u0002", + "\u163c\u163d\u0007W\u0002\u0002\u163d\u163e\u0007V\u0002\u0002\u163e", + "\u163f\u0007Q\u0002\u0002\u163f\u1640\u0007a\u0002\u0002\u1640\u1641", + "\u0007U\u0002\u0002\u1641\u1642\u0007J\u0002\u0002\u1642\u1643\u0007", + "T\u0002\u0002\u1643\u1644\u0007K\u0002\u0002\u1644\u1645\u0007P\u0002", + "\u0002\u1645\u1646\u0007M\u0002\u0002\u1646\u0336\u0003\u0002\u0002", + "\u0002\u1647\u1648\u0007C\u0002\u0002\u1648\u1649\u0007W\u0002\u0002", + "\u1649\u164a\u0007V\u0002\u0002\u164a\u164b\u0007Q\u0002\u0002\u164b", + "\u164c\u0007a\u0002\u0002\u164c\u164d\u0007W\u0002\u0002\u164d\u164e", + "\u0007R\u0002\u0002\u164e\u164f\u0007F\u0002\u0002\u164f\u1650\u0007", + "C\u0002\u0002\u1650\u1651\u0007V\u0002\u0002\u1651\u1652\u0007G\u0002", + "\u0002\u1652\u1653\u0007a\u0002\u0002\u1653\u1654\u0007U\u0002\u0002", + "\u1654\u1655\u0007V\u0002\u0002\u1655\u1656\u0007C\u0002\u0002\u1656", + "\u1657\u0007V\u0002\u0002\u1657\u1658\u0007K\u0002\u0002\u1658\u1659", + "\u0007U\u0002\u0002\u1659\u165a\u0007V\u0002\u0002\u165a\u165b\u0007", + "K\u0002\u0002\u165b\u165c\u0007E\u0002\u0002\u165c\u165d\u0007U\u0002", + "\u0002\u165d\u0338\u0003\u0002\u0002\u0002\u165e\u165f\u0007C\u0002", + "\u0002\u165f\u1660\u0007W\u0002\u0002\u1660\u1661\u0007V\u0002\u0002", + "\u1661\u1662\u0007Q\u0002\u0002\u1662\u1663\u0007a\u0002\u0002\u1663", + "\u1664\u0007W\u0002\u0002\u1664\u1665\u0007R\u0002\u0002\u1665\u1666", + "\u0007F\u0002\u0002\u1666\u1667\u0007C\u0002\u0002\u1667\u1668\u0007", + "V\u0002\u0002\u1668\u1669\u0007G\u0002\u0002\u1669\u166a\u0007a\u0002", + "\u0002\u166a\u166b\u0007U\u0002\u0002\u166b\u166c\u0007V\u0002\u0002", + "\u166c\u166d\u0007C\u0002\u0002\u166d\u166e\u0007V\u0002\u0002\u166e", + "\u166f\u0007K\u0002\u0002\u166f\u1670\u0007U\u0002\u0002\u1670\u1671", + "\u0007V\u0002\u0002\u1671\u1672\u0007K\u0002\u0002\u1672\u1673\u0007", + "E\u0002\u0002\u1673\u1674\u0007U\u0002\u0002\u1674\u1675\u0007a\u0002", + "\u0002\u1675\u1676\u0007C\u0002\u0002\u1676\u1677\u0007U\u0002\u0002", + "\u1677\u1678\u0007[\u0002\u0002\u1678\u1679\u0007P\u0002\u0002\u1679", + "\u167a\u0007E\u0002\u0002\u167a\u033a\u0003\u0002\u0002\u0002\u167b", + "\u167c\u0007C\u0002\u0002\u167c\u167d\u0007X\u0002\u0002\u167d\u167e", + "\u0007C\u0002\u0002\u167e\u167f\u0007K\u0002\u0002\u167f\u1680\u0007", + "N\u0002\u0002\u1680\u1681\u0007C\u0002\u0002\u1681\u1682\u0007D\u0002", + "\u0002\u1682\u1683\u0007K\u0002\u0002\u1683\u1684\u0007N\u0002\u0002", + "\u1684\u1685\u0007K\u0002\u0002\u1685\u1686\u0007V\u0002\u0002\u1686", + "\u1687\u0007[\u0002\u0002\u1687\u033c\u0003\u0002\u0002\u0002\u1688", + "\u1689\u0007C\u0002\u0002\u1689\u168a\u0007X\u0002\u0002\u168a\u168b", + "\u0007I\u0002\u0002\u168b\u033e\u0003\u0002\u0002\u0002\u168c\u168d", + "\u0007D\u0002\u0002\u168d\u168e\u0007C\u0002\u0002\u168e\u168f\u0007", + "E\u0002\u0002\u168f\u1690\u0007M\u0002\u0002\u1690\u1691\u0007W\u0002", + "\u0002\u1691\u1692\u0007R\u0002\u0002\u1692\u1693\u0007a\u0002\u0002", + "\u1693\u1694\u0007R\u0002\u0002\u1694\u1695\u0007T\u0002\u0002\u1695", + "\u1696\u0007K\u0002\u0002\u1696\u1697\u0007Q\u0002\u0002\u1697\u1698", + "\u0007T\u0002\u0002\u1698\u1699\u0007K\u0002\u0002\u1699\u169a\u0007", + "V\u0002\u0002\u169a\u169b\u0007[\u0002\u0002\u169b\u0340\u0003\u0002", + "\u0002\u0002\u169c\u169d\u0007D\u0002\u0002\u169d\u169e\u0007G\u0002", + "\u0002\u169e\u169f\u0007I\u0002\u0002\u169f\u16a0\u0007K\u0002\u0002", + "\u16a0\u16a1\u0007P\u0002\u0002\u16a1\u16a2\u0007a\u0002\u0002\u16a2", + "\u16a3\u0007F\u0002\u0002\u16a3\u16a4\u0007K\u0002\u0002\u16a4\u16a5", + "\u0007C\u0002\u0002\u16a5\u16a6\u0007N\u0002\u0002\u16a6\u16a7\u0007", + "Q\u0002\u0002\u16a7\u16a8\u0007I\u0002\u0002\u16a8\u0342\u0003\u0002", + "\u0002\u0002\u16a9\u16aa\u0007D\u0002\u0002\u16aa\u16ab\u0007K\u0002", + "\u0002\u16ab\u16ac\u0007I\u0002\u0002\u16ac\u16ad\u0007K\u0002\u0002", + "\u16ad\u16ae\u0007P\u0002\u0002\u16ae\u16af\u0007V\u0002\u0002\u16af", + "\u0344\u0003\u0002\u0002\u0002\u16b0\u16b1\u0007D\u0002\u0002\u16b1", + "\u16b2\u0007K\u0002\u0002\u16b2\u16b3\u0007P\u0002\u0002\u16b3\u16b4", + "\u0007C\u0002\u0002\u16b4\u16b5\u0007T\u0002\u0002\u16b5\u16b6\u0007", + "[\u0002\u0002\u16b6\u16b7\u0007\"\u0002\u0002\u16b7\u16b8\u0007D\u0002", + "\u0002\u16b8\u16b9\u0007C\u0002\u0002\u16b9\u16ba\u0007U\u0002\u0002", + "\u16ba\u16bb\u0007G\u0002\u0002\u16bb\u16bc\u00078\u0002\u0002\u16bc", + "\u16bd\u00076\u0002\u0002\u16bd\u0346\u0003\u0002\u0002\u0002\u16be", + "\u16bf\u0007D\u0002\u0002\u16bf\u16c0\u0007K\u0002\u0002\u16c0\u16c1", + "\u0007P\u0002\u0002\u16c1\u16c2\u0007C\u0002\u0002\u16c2\u16c3\u0007", + "T\u0002\u0002\u16c3\u16c4\u0007[\u0002\u0002\u16c4\u16c5\u0007a\u0002", + "\u0002\u16c5\u16c6\u0007E\u0002\u0002\u16c6\u16c7\u0007J\u0002\u0002", + "\u16c7\u16c8\u0007G\u0002\u0002\u16c8\u16c9\u0007E\u0002\u0002\u16c9", + "\u16ca\u0007M\u0002\u0002\u16ca\u16cb\u0007U\u0002\u0002\u16cb\u16cc", + "\u0007W\u0002\u0002\u16cc\u16cd\u0007O\u0002\u0002\u16cd\u0348\u0003", + "\u0002\u0002\u0002\u16ce\u16cf\u0007D\u0002\u0002\u16cf\u16d0\u0007", + "K\u0002\u0002\u16d0\u16d1\u0007P\u0002\u0002\u16d1\u16d2\u0007F\u0002", + "\u0002\u16d2\u16d3\u0007K\u0002\u0002\u16d3\u16d4\u0007P\u0002\u0002", + "\u16d4\u16d5\u0007I\u0002\u0002\u16d5\u034a\u0003\u0002\u0002\u0002", + "\u16d6\u16d7\u0007D\u0002\u0002\u16d7\u16d8\u0007N\u0002\u0002\u16d8", + "\u16d9\u0007Q\u0002\u0002\u16d9\u16da\u0007D\u0002\u0002\u16da\u16db", + "\u0007a\u0002\u0002\u16db\u16dc\u0007U\u0002\u0002\u16dc\u16dd\u0007", + "V\u0002\u0002\u16dd\u16de\u0007Q\u0002\u0002\u16de\u16df\u0007T\u0002", + "\u0002\u16df\u16e0\u0007C\u0002\u0002\u16e0\u16e1\u0007I\u0002\u0002", + "\u16e1\u16e2\u0007G\u0002\u0002\u16e2\u034c\u0003\u0002\u0002\u0002", + "\u16e3\u16e4\u0007D\u0002\u0002\u16e4\u16e5\u0007T\u0002\u0002\u16e5", + "\u16e6\u0007Q\u0002\u0002\u16e6\u16e7\u0007M\u0002\u0002\u16e7\u16e8", + "\u0007G\u0002\u0002\u16e8\u16e9\u0007T\u0002\u0002\u16e9\u034e\u0003", + "\u0002\u0002\u0002\u16ea\u16eb\u0007D\u0002\u0002\u16eb\u16ec\u0007", + "T\u0002\u0002\u16ec\u16ed\u0007Q\u0002\u0002\u16ed\u16ee\u0007M\u0002", + "\u0002\u16ee\u16ef\u0007G\u0002\u0002\u16ef\u16f0\u0007T\u0002\u0002", + "\u16f0\u16f1\u0007a\u0002\u0002\u16f1\u16f2\u0007K\u0002\u0002\u16f2", + "\u16f3\u0007P\u0002\u0002\u16f3\u16f4\u0007U\u0002\u0002\u16f4\u16f5", + "\u0007V\u0002\u0002\u16f5\u16f6\u0007C\u0002\u0002\u16f6\u16f7\u0007", + "P\u0002\u0002\u16f7\u16f8\u0007E\u0002\u0002\u16f8\u16f9\u0007G\u0002", + "\u0002\u16f9\u0350\u0003\u0002\u0002\u0002\u16fa\u16fb\u0007D\u0002", + "\u0002\u16fb\u16fc\u0007W\u0002\u0002\u16fc\u16fd\u0007N\u0002\u0002", + "\u16fd\u16fe\u0007M\u0002\u0002\u16fe\u16ff\u0007a\u0002\u0002\u16ff", + "\u1700\u0007N\u0002\u0002\u1700\u1701\u0007Q\u0002\u0002\u1701\u1702", + "\u0007I\u0002\u0002\u1702\u1703\u0007I\u0002\u0002\u1703\u1704\u0007", + "G\u0002\u0002\u1704\u1705\u0007F\u0002\u0002\u1705\u0352\u0003\u0002", + "\u0002\u0002\u1706\u1707\u0007E\u0002\u0002\u1707\u1708\u0007C\u0002", + "\u0002\u1708\u1709\u0007N\u0002\u0002\u1709\u170a\u0007N\u0002\u0002", + "\u170a\u170b\u0007G\u0002\u0002\u170b\u170c\u0007T\u0002\u0002\u170c", + "\u0354\u0003\u0002\u0002\u0002\u170d\u170e\u0007E\u0002\u0002\u170e", + "\u170f\u0007C\u0002\u0002\u170f\u1710\u0007R\u0002\u0002\u1710\u1711", + "\u0007a\u0002\u0002\u1711\u1712\u0007E\u0002\u0002\u1712\u1713\u0007", + "R\u0002\u0002\u1713\u1714\u0007W\u0002\u0002\u1714\u1715\u0007a\u0002", + "\u0002\u1715\u1716\u0007R\u0002\u0002\u1716\u1717\u0007G\u0002\u0002", + "\u1717\u1718\u0007T\u0002\u0002\u1718\u1719\u0007E\u0002\u0002\u1719", + "\u171a\u0007G\u0002\u0002\u171a\u171b\u0007P\u0002\u0002\u171b\u171c", + "\u0007V\u0002\u0002\u171c\u0356\u0003\u0002\u0002\u0002\u171d\u171e", + "\u0007V\u0002\u0002\u171e\u171f\u0007T\u0002\u0002\u171f\u1720\u0007", + "[\u0002\u0002\u1720\u1722\u0007a\u0002\u0002\u1721\u171d\u0003\u0002", + "\u0002\u0002\u1721\u1722\u0003\u0002\u0002\u0002\u1722\u1723\u0003\u0002", + "\u0002\u0002\u1723\u1724\u0007E\u0002\u0002\u1724\u1725\u0007C\u0002", + "\u0002\u1725\u1726\u0007U\u0002\u0002\u1726\u1727\u0007V\u0002\u0002", + "\u1727\u0358\u0003\u0002\u0002\u0002\u1728\u1729\u0007E\u0002\u0002", + "\u1729\u172a\u0007C\u0002\u0002\u172a\u172b\u0007V\u0002\u0002\u172b", + "\u172c\u0007C\u0002\u0002\u172c\u172d\u0007N\u0002\u0002\u172d\u172e", + "\u0007Q\u0002\u0002\u172e\u172f\u0007I\u0002\u0002\u172f\u035a\u0003", + "\u0002\u0002\u0002\u1730\u1731\u0007E\u0002\u0002\u1731\u1732\u0007", + "C\u0002\u0002\u1732\u1733\u0007V\u0002\u0002\u1733\u1734\u0007E\u0002", + "\u0002\u1734\u1735\u0007J\u0002\u0002\u1735\u035c\u0003\u0002\u0002", + "\u0002\u1736\u1737\u0007E\u0002\u0002\u1737\u1738\u0007J\u0002\u0002", + "\u1738\u1739\u0007C\u0002\u0002\u1739\u173a\u0007P\u0002\u0002\u173a", + "\u173b\u0007I\u0002\u0002\u173b\u173c\u0007G\u0002\u0002\u173c\u173d", + "\u0007a\u0002\u0002\u173d\u173e\u0007T\u0002\u0002\u173e\u173f\u0007", + "G\u0002\u0002\u173f\u1740\u0007V\u0002\u0002\u1740\u1741\u0007G\u0002", + "\u0002\u1741\u1742\u0007P\u0002\u0002\u1742\u1743\u0007V\u0002\u0002", + "\u1743\u1744\u0007K\u0002\u0002\u1744\u1745\u0007Q\u0002\u0002\u1745", + "\u1746\u0007P\u0002\u0002\u1746\u035e\u0003\u0002\u0002\u0002\u1747", + "\u1748\u0007E\u0002\u0002\u1748\u1749\u0007J\u0002\u0002\u1749\u174a", + "\u0007C\u0002\u0002\u174a\u174b\u0007P\u0002\u0002\u174b\u174c\u0007", + "I\u0002\u0002\u174c\u174d\u0007G\u0002\u0002\u174d\u174e\u0007a\u0002", + "\u0002\u174e\u174f\u0007V\u0002\u0002\u174f\u1750\u0007T\u0002\u0002", + "\u1750\u1751\u0007C\u0002\u0002\u1751\u1752\u0007E\u0002\u0002\u1752", + "\u1753\u0007M\u0002\u0002\u1753\u1754\u0007K\u0002\u0002\u1754\u1755", + "\u0007P\u0002\u0002\u1755\u1756\u0007I\u0002\u0002\u1756\u0360\u0003", + "\u0002\u0002\u0002\u1757\u1758\u0007E\u0002\u0002\u1758\u1759\u0007", + "J\u0002\u0002\u1759\u175a\u0007G\u0002\u0002\u175a\u175b\u0007E\u0002", + "\u0002\u175b\u175c\u0007M\u0002\u0002\u175c\u175d\u0007U\u0002\u0002", + "\u175d\u175e\u0007W\u0002\u0002\u175e\u175f\u0007O\u0002\u0002\u175f", + "\u0362\u0003\u0002\u0002\u0002\u1760\u1761\u0007E\u0002\u0002\u1761", + "\u1762\u0007J\u0002\u0002\u1762\u1763\u0007G\u0002\u0002\u1763\u1764", + "\u0007E\u0002\u0002\u1764\u1765\u0007M\u0002\u0002\u1765\u1766\u0007", + "U\u0002\u0002\u1766\u1767\u0007W\u0002\u0002\u1767\u1768\u0007O\u0002", + "\u0002\u1768\u1769\u0007a\u0002\u0002\u1769\u176a\u0007C\u0002\u0002", + "\u176a\u176b\u0007I\u0002\u0002\u176b\u176c\u0007I\u0002\u0002\u176c", + "\u0364\u0003\u0002\u0002\u0002\u176d\u176e\u0007E\u0002\u0002\u176e", + "\u176f\u0007N\u0002\u0002\u176f\u1770\u0007G\u0002\u0002\u1770\u1771", + "\u0007C\u0002\u0002\u1771\u1772\u0007P\u0002\u0002\u1772\u1773\u0007", + "W\u0002\u0002\u1773\u1774\u0007R\u0002\u0002\u1774\u0366\u0003\u0002", + "\u0002\u0002\u1775\u1776\u0007E\u0002\u0002\u1776\u1777\u0007Q\u0002", + "\u0002\u1777\u1778\u0007N\u0002\u0002\u1778\u1779\u0007N\u0002\u0002", + "\u1779\u177a\u0007G\u0002\u0002\u177a\u177b\u0007E\u0002\u0002\u177b", + "\u177c\u0007V\u0002\u0002\u177c\u177d\u0007K\u0002\u0002\u177d\u177e", + "\u0007Q\u0002\u0002\u177e\u177f\u0007P\u0002\u0002\u177f\u0368\u0003", + "\u0002\u0002\u0002\u1780\u1781\u0007E\u0002\u0002\u1781\u1782\u0007", + "Q\u0002\u0002\u1782\u1783\u0007N\u0002\u0002\u1783\u1784\u0007W\u0002", + "\u0002\u1784\u1785\u0007O\u0002\u0002\u1785\u1786\u0007P\u0002\u0002", + "\u1786\u1787\u0007a\u0002\u0002\u1787\u1788\u0007O\u0002\u0002\u1788", + "\u1789\u0007C\u0002\u0002\u1789\u178a\u0007U\u0002\u0002\u178a\u178b", + "\u0007V\u0002\u0002\u178b\u178c\u0007G\u0002\u0002\u178c\u178d\u0007", + "T\u0002\u0002\u178d\u178e\u0007a\u0002\u0002\u178e\u178f\u0007M\u0002", + "\u0002\u178f\u1790\u0007G\u0002\u0002\u1790\u1791\u0007[\u0002\u0002", + "\u1791\u036a\u0003\u0002\u0002\u0002\u1792\u1793\u0007E\u0002\u0002", + "\u1793\u1794\u0007Q\u0002\u0002\u1794\u1795\u0007O\u0002\u0002\u1795", + "\u1796\u0007O\u0002\u0002\u1796\u1797\u0007K\u0002\u0002\u1797\u1798", + "\u0007V\u0002\u0002\u1798\u1799\u0007V\u0002\u0002\u1799\u179a\u0007", + "G\u0002\u0002\u179a\u179b\u0007F\u0002\u0002\u179b\u036c\u0003\u0002", + "\u0002\u0002\u179c\u179d\u0007E\u0002\u0002\u179d\u179e\u0007Q\u0002", + "\u0002\u179e\u179f\u0007O\u0002\u0002\u179f\u17a0\u0007R\u0002\u0002", + "\u17a0\u17a1\u0007C\u0002\u0002\u17a1\u17a2\u0007V\u0002\u0002\u17a2", + "\u17a3\u0007K\u0002\u0002\u17a3\u17a4\u0007D\u0002\u0002\u17a4\u17a5", + "\u0007K\u0002\u0002\u17a5\u17a6\u0007N\u0002\u0002\u17a6\u17a7\u0007", + "K\u0002\u0002\u17a7\u17a8\u0007V\u0002\u0002\u17a8\u17a9\u0007[\u0002", + "\u0002\u17a9\u17aa\u0007a\u0002\u0002\u17aa\u17ab\u0007N\u0002\u0002", + "\u17ab\u17ac\u0007G\u0002\u0002\u17ac\u17ad\u0007X\u0002\u0002\u17ad", + "\u17ae\u0007G\u0002\u0002\u17ae\u17af\u0007N\u0002\u0002\u17af\u036e", + "\u0003\u0002\u0002\u0002\u17b0\u17b1\u0007E\u0002\u0002\u17b1\u17b2", + "\u0007Q\u0002\u0002\u17b2\u17b3\u0007P\u0002\u0002\u17b3\u17b4\u0007", + "E\u0002\u0002\u17b4\u17b5\u0007C\u0002\u0002\u17b5\u17b6\u0007V\u0002", + "\u0002\u17b6\u0370\u0003\u0002\u0002\u0002\u17b7\u17b8\u0007E\u0002", + "\u0002\u17b8\u17b9\u0007Q\u0002\u0002\u17b9\u17ba\u0007P\u0002\u0002", + "\u17ba\u17bb\u0007E\u0002\u0002\u17bb\u17bc\u0007C\u0002\u0002\u17bc", + "\u17bd\u0007V\u0002\u0002\u17bd\u17be\u0007a\u0002\u0002\u17be\u17bf", + "\u0007P\u0002\u0002\u17bf\u17c0\u0007W\u0002\u0002\u17c0\u17c1\u0007", + "N\u0002\u0002\u17c1\u17c2\u0007N\u0002\u0002\u17c2\u17c3\u0007a\u0002", + "\u0002\u17c3\u17c4\u0007[\u0002\u0002\u17c4\u17c5\u0007K\u0002\u0002", + "\u17c5\u17c6\u0007G\u0002\u0002\u17c6\u17c7\u0007N\u0002\u0002\u17c7", + "\u17c8\u0007F\u0002\u0002\u17c8\u17c9\u0007U\u0002\u0002\u17c9\u17ca", + "\u0007a\u0002\u0002\u17ca\u17cb\u0007P\u0002\u0002\u17cb\u17cc\u0007", + "W\u0002\u0002\u17cc\u17cd\u0007N\u0002\u0002\u17cd\u17ce\u0007N\u0002", + "\u0002\u17ce\u0372\u0003\u0002\u0002\u0002\u17cf\u17d0\u0007E\u0002", + "\u0002\u17d0\u17d1\u0007Q\u0002\u0002\u17d1\u17d2\u0007P\u0002\u0002", + "\u17d2\u17d3\u0007V\u0002\u0002\u17d3\u17d4\u0007G\u0002\u0002\u17d4", + "\u17d5\u0007P\u0002\u0002\u17d5\u17d6\u0007V\u0002\u0002\u17d6\u0374", + "\u0003\u0002\u0002\u0002\u17d7\u17d8\u0007E\u0002\u0002\u17d8\u17d9", + "\u0007Q\u0002\u0002\u17d9\u17da\u0007P\u0002\u0002\u17da\u17db\u0007", + "V\u0002\u0002\u17db\u17dc\u0007T\u0002\u0002\u17dc\u17dd\u0007Q\u0002", + "\u0002\u17dd\u17de\u0007N\u0002\u0002\u17de\u0376\u0003\u0002\u0002", + "\u0002\u17df\u17e0\u0007E\u0002\u0002\u17e0\u17e1\u0007Q\u0002\u0002", + "\u17e1\u17e2\u0007Q\u0002\u0002\u17e2\u17e3\u0007M\u0002\u0002\u17e3", + "\u17e4\u0007K\u0002\u0002\u17e4\u17e5\u0007G\u0002\u0002\u17e5\u0378", + "\u0003\u0002\u0002\u0002\u17e6\u17e7\u0007E\u0002\u0002\u17e7\u17e8", + "\u0007Q\u0002\u0002\u17e8\u17e9\u0007W\u0002\u0002\u17e9\u17ea\u0007", + "P\u0002\u0002\u17ea\u17eb\u0007V\u0002\u0002\u17eb\u037a\u0003\u0002", + "\u0002\u0002\u17ec\u17ed\u0007E\u0002\u0002\u17ed\u17ee\u0007Q\u0002", + "\u0002\u17ee\u17ef\u0007W\u0002\u0002\u17ef\u17f0\u0007P\u0002\u0002", + "\u17f0\u17f1\u0007V\u0002\u0002\u17f1\u17f2\u0007a\u0002\u0002\u17f2", + "\u17f3\u0007D\u0002\u0002\u17f3\u17f4\u0007K\u0002\u0002\u17f4\u17f5", + "\u0007I\u0002\u0002\u17f5\u037c\u0003\u0002\u0002\u0002\u17f6\u17f7", + "\u0007E\u0002\u0002\u17f7\u17f8\u0007Q\u0002\u0002\u17f8\u17f9\u0007", + "W\u0002\u0002\u17f9\u17fa\u0007P\u0002\u0002\u17fa\u17fb\u0007V\u0002", + "\u0002\u17fb\u17fc\u0007G\u0002\u0002\u17fc\u17fd\u0007T\u0002\u0002", + "\u17fd\u037e\u0003\u0002\u0002\u0002\u17fe\u17ff\u0007E\u0002\u0002", + "\u17ff\u1800\u0007R\u0002\u0002\u1800\u1801\u0007W\u0002\u0002\u1801", + "\u0380\u0003\u0002\u0002\u0002\u1802\u1803\u0007E\u0002\u0002\u1803", + "\u1804\u0007T\u0002\u0002\u1804\u1805\u0007G\u0002\u0002\u1805\u1806", + "\u0007C\u0002\u0002\u1806\u1807\u0007V\u0002\u0002\u1807\u1808\u0007", + "G\u0002\u0002\u1808\u1809\u0007a\u0002\u0002\u1809\u180a\u0007P\u0002", + "\u0002\u180a\u180b\u0007G\u0002\u0002\u180b\u180c\u0007Y\u0002\u0002", + "\u180c\u0382\u0003\u0002\u0002\u0002\u180d\u180e\u0007E\u0002\u0002", + "\u180e\u180f\u0007T\u0002\u0002\u180f\u1810\u0007G\u0002\u0002\u1810", + "\u1811\u0007C\u0002\u0002\u1811\u1812\u0007V\u0002\u0002\u1812\u1813", + "\u0007K\u0002\u0002\u1813\u1814\u0007Q\u0002\u0002\u1814\u1815\u0007", + "P\u0002\u0002\u1815\u1816\u0007a\u0002\u0002\u1816\u1817\u0007F\u0002", + "\u0002\u1817\u1818\u0007K\u0002\u0002\u1818\u1819\u0007U\u0002\u0002", + "\u1819\u181a\u0007R\u0002\u0002\u181a\u181b\u0007Q\u0002\u0002\u181b", + "\u181c\u0007U\u0002\u0002\u181c\u181d\u0007K\u0002\u0002\u181d\u181e", + "\u0007V\u0002\u0002\u181e\u181f\u0007K\u0002\u0002\u181f\u1820\u0007", + "Q\u0002\u0002\u1820\u1821\u0007P\u0002\u0002\u1821\u0384\u0003\u0002", + "\u0002\u0002\u1822\u1823\u0007E\u0002\u0002\u1823\u1824\u0007T\u0002", + "\u0002\u1824\u1825\u0007G\u0002\u0002\u1825\u1826\u0007F\u0002\u0002", + "\u1826\u1827\u0007G\u0002\u0002\u1827\u1828\u0007P\u0002\u0002\u1828", + "\u1829\u0007V\u0002\u0002\u1829\u182a\u0007K\u0002\u0002\u182a\u182b", + "\u0007C\u0002\u0002\u182b\u182c\u0007N\u0002\u0002\u182c\u0386\u0003", + "\u0002\u0002\u0002\u182d\u182e\u0007E\u0002\u0002\u182e\u182f\u0007", + "T\u0002\u0002\u182f\u1830\u0007[\u0002\u0002\u1830\u1831\u0007R\u0002", + "\u0002\u1831\u1832\u0007V\u0002\u0002\u1832\u1833\u0007Q\u0002\u0002", + "\u1833\u1834\u0007I\u0002\u0002\u1834\u1835\u0007T\u0002\u0002\u1835", + "\u1836\u0007C\u0002\u0002\u1836\u1837\u0007R\u0002\u0002\u1837\u1838", + "\u0007J\u0002\u0002\u1838\u1839\u0007K\u0002\u0002\u1839\u183a\u0007", + "E\u0002\u0002\u183a\u0388\u0003\u0002\u0002\u0002\u183b\u183c\u0007", + "E\u0002\u0002\u183c\u183d\u0007W\u0002\u0002\u183d\u183e\u0007T\u0002", + "\u0002\u183e\u183f\u0007U\u0002\u0002\u183f\u1840\u0007Q\u0002\u0002", + "\u1840\u1841\u0007T\u0002\u0002\u1841\u1842\u0007a\u0002\u0002\u1842", + "\u1843\u0007E\u0002\u0002\u1843\u1844\u0007N\u0002\u0002\u1844\u1845", + "\u0007Q\u0002\u0002\u1845\u1846\u0007U\u0002\u0002\u1846\u1847\u0007", + "G\u0002\u0002\u1847\u1848\u0007a\u0002\u0002\u1848\u1849\u0007Q\u0002", + "\u0002\u1849\u184a\u0007P\u0002\u0002\u184a\u184b\u0007a\u0002\u0002", + "\u184b\u184c\u0007E\u0002\u0002\u184c\u184d\u0007Q\u0002\u0002\u184d", + "\u184e\u0007O\u0002\u0002\u184e\u184f\u0007O\u0002\u0002\u184f\u1850", + "\u0007K\u0002\u0002\u1850\u1851\u0007V\u0002\u0002\u1851\u038a\u0003", + "\u0002\u0002\u0002\u1852\u1853\u0007E\u0002\u0002\u1853\u1854\u0007", + "W\u0002\u0002\u1854\u1855\u0007T\u0002\u0002\u1855\u1856\u0007U\u0002", + "\u0002\u1856\u1857\u0007Q\u0002\u0002\u1857\u1858\u0007T\u0002\u0002", + "\u1858\u1859\u0007a\u0002\u0002\u1859\u185a\u0007F\u0002\u0002\u185a", + "\u185b\u0007G\u0002\u0002\u185b\u185c\u0007H\u0002\u0002\u185c\u185d", + "\u0007C\u0002\u0002\u185d\u185e\u0007W\u0002\u0002\u185e\u185f\u0007", + "N\u0002\u0002\u185f\u1860\u0007V\u0002\u0002\u1860\u038c\u0003\u0002", + "\u0002\u0002\u1861\u1862\u0007F\u0002\u0002\u1862\u1863\u0007C\u0002", + "\u0002\u1863\u1864\u0007V\u0002\u0002\u1864\u1865\u0007C\u0002\u0002", + "\u1865\u038e\u0003\u0002\u0002\u0002\u1866\u1867\u0007F\u0002\u0002", + "\u1867\u1868\u0007C\u0002\u0002\u1868\u1869\u0007V\u0002\u0002\u1869", + "\u186a\u0007G\u0002\u0002\u186a\u186b\u0007a\u0002\u0002\u186b\u186c", + "\u0007E\u0002\u0002\u186c\u186d\u0007Q\u0002\u0002\u186d\u186e\u0007", + "T\u0002\u0002\u186e\u186f\u0007T\u0002\u0002\u186f\u1870\u0007G\u0002", + "\u0002\u1870\u1871\u0007N\u0002\u0002\u1871\u1872\u0007C\u0002\u0002", + "\u1872\u1873\u0007V\u0002\u0002\u1873\u1874\u0007K\u0002\u0002\u1874", + "\u1875\u0007Q\u0002\u0002\u1875\u1876\u0007P\u0002\u0002\u1876\u1877", + "\u0007a\u0002\u0002\u1877\u1878\u0007Q\u0002\u0002\u1878\u1879\u0007", + "R\u0002\u0002\u1879\u187a\u0007V\u0002\u0002\u187a\u187b\u0007K\u0002", + "\u0002\u187b\u187c\u0007O\u0002\u0002\u187c\u187d\u0007K\u0002\u0002", + "\u187d\u187e\u0007\\\u0002\u0002\u187e\u187f\u0007C\u0002\u0002\u187f", + "\u1880\u0007V\u0002\u0002\u1880\u1881\u0007K\u0002\u0002\u1881\u1882", + "\u0007Q\u0002\u0002\u1882\u1883\u0007P\u0002\u0002\u1883\u0390\u0003", + "\u0002\u0002\u0002\u1884\u1885\u0007F\u0002\u0002\u1885\u1886\u0007", + "C\u0002\u0002\u1886\u1887\u0007V\u0002\u0002\u1887\u1888\u0007G\u0002", + "\u0002\u1888\u1889\u0007C\u0002\u0002\u1889\u188a\u0007F\u0002\u0002", + "\u188a\u188b\u0007F\u0002\u0002\u188b\u0392\u0003\u0002\u0002\u0002", + "\u188c\u188d\u0007F\u0002\u0002\u188d\u188e\u0007C\u0002\u0002\u188e", + "\u188f\u0007V\u0002\u0002\u188f\u1890\u0007G\u0002\u0002\u1890\u1891", + "\u0007F\u0002\u0002\u1891\u1892\u0007K\u0002\u0002\u1892\u1893\u0007", + "H\u0002\u0002\u1893\u1894\u0007H\u0002\u0002\u1894\u0394\u0003\u0002", + "\u0002\u0002\u1895\u1896\u0007F\u0002\u0002\u1896\u1897\u0007C\u0002", + "\u0002\u1897\u1898\u0007V\u0002\u0002\u1898\u1899\u0007G\u0002\u0002", + "\u1899\u189a\u0007P\u0002\u0002\u189a\u189b\u0007C\u0002\u0002\u189b", + "\u189c\u0007O\u0002\u0002\u189c\u189d\u0007G\u0002\u0002\u189d\u0396", + "\u0003\u0002\u0002\u0002\u189e\u189f\u0007F\u0002\u0002\u189f\u18a0", + "\u0007C\u0002\u0002\u18a0\u18a1\u0007V\u0002\u0002\u18a1\u18a2\u0007", + "G\u0002\u0002\u18a2\u18a3\u0007R\u0002\u0002\u18a3\u18a4\u0007C\u0002", + "\u0002\u18a4\u18a5\u0007T\u0002\u0002\u18a5\u18a6\u0007V\u0002\u0002", + "\u18a6\u0398\u0003\u0002\u0002\u0002\u18a7\u18a8\u0007F\u0002\u0002", + "\u18a8\u18a9\u0007C\u0002\u0002\u18a9\u18aa\u0007[\u0002\u0002\u18aa", + "\u18ab\u0007U\u0002\u0002\u18ab\u039a\u0003\u0002\u0002\u0002\u18ac", + "\u18ad\u0007F\u0002\u0002\u18ad\u18ae\u0007D\u0002\u0002\u18ae\u18af", + "\u0007a\u0002\u0002\u18af\u18b0\u0007E\u0002\u0002\u18b0\u18b1\u0007", + "J\u0002\u0002\u18b1\u18b2\u0007C\u0002\u0002\u18b2\u18b3\u0007K\u0002", + "\u0002\u18b3\u18b4\u0007P\u0002\u0002\u18b4\u18b5\u0007K\u0002\u0002", + "\u18b5\u18b6\u0007P\u0002\u0002\u18b6\u18b7\u0007I\u0002\u0002\u18b7", + "\u039c\u0003\u0002\u0002\u0002\u18b8\u18b9\u0007F\u0002\u0002\u18b9", + "\u18ba\u0007D\u0002\u0002\u18ba\u18bb\u0007a\u0002\u0002\u18bb\u18bc", + "\u0007H\u0002\u0002\u18bc\u18bd\u0007C\u0002\u0002\u18bd\u18be\u0007", + "K\u0002\u0002\u18be\u18bf\u0007N\u0002\u0002\u18bf\u18c0\u0007Q\u0002", + "\u0002\u18c0\u18c1\u0007X\u0002\u0002\u18c1\u18c2\u0007G\u0002\u0002", + "\u18c2\u18c3\u0007T\u0002\u0002\u18c3\u039e\u0003\u0002\u0002\u0002", + "\u18c4\u18c5\u0007F\u0002\u0002\u18c5\u18c6\u0007G\u0002\u0002\u18c6", + "\u18c7\u0007E\u0002\u0002\u18c7\u18c8\u0007T\u0002\u0002\u18c8\u18c9", + "\u0007[\u0002\u0002\u18c9\u18ca\u0007R\u0002\u0002\u18ca\u18cb\u0007", + "V\u0002\u0002\u18cb\u18cc\u0007K\u0002\u0002\u18cc\u18cd\u0007Q\u0002", + "\u0002\u18cd\u18ce\u0007P\u0002\u0002\u18ce\u03a0\u0003\u0002\u0002", + "\u0002\u18cf\u18d0\t\u0005\u0002\u0002\u18d0\u18d1\u0007F\u0002\u0002", + "\u18d1\u18d2\u0007G\u0002\u0002\u18d2\u18d3\u0007H\u0002\u0002\u18d3", + "\u18d4\u0007C\u0002\u0002\u18d4\u18d5\u0007W\u0002\u0002\u18d5\u18d6", + "\u0007N\u0002\u0002\u18d6\u18d7\u0007V\u0002\u0002\u18d7\u18d8\u0003", + "\u0002\u0002\u0002\u18d8\u18d9\t\u0005\u0002\u0002\u18d9\u03a2\u0003", + "\u0002\u0002\u0002\u18da\u18db\u0007F\u0002\u0002\u18db\u18dc\u0007", + "G\u0002\u0002\u18dc\u18dd\u0007H\u0002\u0002\u18dd\u18de\u0007C\u0002", + "\u0002\u18de\u18df\u0007W\u0002\u0002\u18df\u18e0\u0007N\u0002\u0002", + "\u18e0\u18e1\u0007V\u0002\u0002\u18e1\u18e2\u0007a\u0002\u0002\u18e2", + "\u18e3\u0007H\u0002\u0002\u18e3\u18e4\u0007W\u0002\u0002\u18e4\u18e5", + "\u0007N\u0002\u0002\u18e5\u18e6\u0007N\u0002\u0002\u18e6\u18e7\u0007", + "V\u0002\u0002\u18e7\u18e8\u0007G\u0002\u0002\u18e8\u18e9\u0007Z\u0002", + "\u0002\u18e9\u18ea\u0007V\u0002\u0002\u18ea\u18eb\u0007a\u0002\u0002", + "\u18eb\u18ec\u0007N\u0002\u0002\u18ec\u18ed\u0007C\u0002\u0002\u18ed", + "\u18ee\u0007P\u0002\u0002\u18ee\u18ef\u0007I\u0002\u0002\u18ef\u18f0", + "\u0007W\u0002\u0002\u18f0\u18f1\u0007C\u0002\u0002\u18f1\u18f2\u0007", + "I\u0002\u0002\u18f2\u18f3\u0007G\u0002\u0002\u18f3\u03a4\u0003\u0002", + "\u0002\u0002\u18f4\u18f5\u0007F\u0002\u0002\u18f5\u18f6\u0007G\u0002", + "\u0002\u18f6\u18f7\u0007H\u0002\u0002\u18f7\u18f8\u0007C\u0002\u0002", + "\u18f8\u18f9\u0007W\u0002\u0002\u18f9\u18fa\u0007N\u0002\u0002\u18fa", + "\u18fb\u0007V\u0002\u0002\u18fb\u18fc\u0007a\u0002\u0002\u18fc\u18fd", + "\u0007N\u0002\u0002\u18fd\u18fe\u0007C\u0002\u0002\u18fe\u18ff\u0007", + "P\u0002\u0002\u18ff\u1900\u0007I\u0002\u0002\u1900\u1901\u0007W\u0002", + "\u0002\u1901\u1902\u0007C\u0002\u0002\u1902\u1903\u0007I\u0002\u0002", + "\u1903\u1904\u0007G\u0002\u0002\u1904\u03a6\u0003\u0002\u0002\u0002", + "\u1905\u1906\u0007F\u0002\u0002\u1906\u1907\u0007G\u0002\u0002\u1907", + "\u1908\u0007N\u0002\u0002\u1908\u1909\u0007C\u0002\u0002\u1909\u190a", + "\u0007[\u0002\u0002\u190a\u03a8\u0003\u0002\u0002\u0002\u190b\u190c", + "\u0007F\u0002\u0002\u190c\u190d\u0007G\u0002\u0002\u190d\u190e\u0007", + "N\u0002\u0002\u190e\u190f\u0007C\u0002\u0002\u190f\u1910\u0007[\u0002", + "\u0002\u1910\u1911\u0007G\u0002\u0002\u1911\u1912\u0007F\u0002\u0002", + "\u1912\u1913\u0007a\u0002\u0002\u1913\u1914\u0007F\u0002\u0002\u1914", + "\u1915\u0007W\u0002\u0002\u1915\u1916\u0007T\u0002\u0002\u1916\u1917", + "\u0007C\u0002\u0002\u1917\u1918\u0007D\u0002\u0002\u1918\u1919\u0007", + "K\u0002\u0002\u1919\u191a\u0007N\u0002\u0002\u191a\u191b\u0007K\u0002", + "\u0002\u191b\u191c\u0007V\u0002\u0002\u191c\u191d\u0007[\u0002\u0002", + "\u191d\u03aa\u0003\u0002\u0002\u0002\u191e\u191f\u0007F\u0002\u0002", + "\u191f\u1920\u0007G\u0002\u0002\u1920\u1921\u0007N\u0002\u0002\u1921", + "\u1922\u0007G\u0002\u0002\u1922\u1923\u0007V\u0002\u0002\u1923\u1924", + "\u0007G\u0002\u0002\u1924\u1925\u0007F\u0002\u0002\u1925\u03ac\u0003", + "\u0002\u0002\u0002\u1926\u1927\u0007F\u0002\u0002\u1927\u1928\u0007", + "G\u0002\u0002\u1928\u1929\u0007P\u0002\u0002\u1929\u192a\u0007U\u0002", + "\u0002\u192a\u192b\u0007G\u0002\u0002\u192b\u192c\u0007a\u0002\u0002", + "\u192c\u192d\u0007T\u0002\u0002\u192d\u192e\u0007C\u0002\u0002\u192e", + "\u192f\u0007P\u0002\u0002\u192f\u1930\u0007M\u0002\u0002\u1930\u03ae", + "\u0003\u0002\u0002\u0002\u1931\u1932\u0007F\u0002\u0002\u1932\u1933", + "\u0007G\u0002\u0002\u1933\u1934\u0007R\u0002\u0002\u1934\u1935\u0007", + "G\u0002\u0002\u1935\u1936\u0007P\u0002\u0002\u1936\u1937\u0007F\u0002", + "\u0002\u1937\u1938\u0007G\u0002\u0002\u1938\u1939\u0007P\u0002\u0002", + "\u1939\u193a\u0007V\u0002\u0002\u193a\u193b\u0007U\u0002\u0002\u193b", + "\u03b0\u0003\u0002\u0002\u0002\u193c\u193d\u0007F\u0002\u0002\u193d", + "\u193e\u0007G\u0002\u0002\u193e\u193f\u0007U\u0002\u0002\u193f\u03b2", + "\u0003\u0002\u0002\u0002\u1940\u1941\u0007F\u0002\u0002\u1941\u1942", + "\u0007G\u0002\u0002\u1942\u1943\u0007U\u0002\u0002\u1943\u1944\u0007", + "E\u0002\u0002\u1944\u1945\u0007T\u0002\u0002\u1945\u1946\u0007K\u0002", + "\u0002\u1946\u1947\u0007R\u0002\u0002\u1947\u1948\u0007V\u0002\u0002", + "\u1948\u1949\u0007K\u0002\u0002\u1949\u194a\u0007Q\u0002\u0002\u194a", + "\u194b\u0007P\u0002\u0002\u194b\u03b4\u0003\u0002\u0002\u0002\u194c", + "\u194d\u0007F\u0002\u0002\u194d\u194e\u0007G\u0002\u0002\u194e\u194f", + "\u0007U\u0002\u0002\u194f\u1950\u0007Z\u0002\u0002\u1950\u03b6\u0003", + "\u0002\u0002\u0002\u1951\u1952\u0007F\u0002\u0002\u1952\u1953\u0007", + "J\u0002\u0002\u1953\u1954\u0007E\u0002\u0002\u1954\u1955\u0007R\u0002", + "\u0002\u1955\u03b8\u0003\u0002\u0002\u0002\u1956\u1957\u0007F\u0002", + "\u0002\u1957\u1958\u0007K\u0002\u0002\u1958\u1959\u0007C\u0002\u0002", + "\u1959\u195a\u0007N\u0002\u0002\u195a\u195b\u0007Q\u0002\u0002\u195b", + "\u195c\u0007I\u0002\u0002\u195c\u03ba\u0003\u0002\u0002\u0002\u195d", + "\u195e\u0007F\u0002\u0002\u195e\u195f\u0007K\u0002\u0002\u195f\u1960", + "\u0007T\u0002\u0002\u1960\u1961\u0007G\u0002\u0002\u1961\u1962\u0007", + "E\u0002\u0002\u1962\u1963\u0007V\u0002\u0002\u1963\u1964\u0007Q\u0002", + "\u0002\u1964\u1965\u0007T\u0002\u0002\u1965\u1966\u0007[\u0002\u0002", + "\u1966\u1967\u0007a\u0002\u0002\u1967\u1968\u0007P\u0002\u0002\u1968", + "\u1969\u0007C\u0002\u0002\u1969\u196a\u0007O\u0002\u0002\u196a\u196b", + "\u0007G\u0002\u0002\u196b\u03bc\u0003\u0002\u0002\u0002\u196c\u196d", + "\u0007F\u0002\u0002\u196d\u196e\u0007K\u0002\u0002\u196e\u196f\u0007", + "U\u0002\u0002\u196f\u1970\u0007C\u0002\u0002\u1970\u1971\u0007D\u0002", + "\u0002\u1971\u1972\u0007N\u0002\u0002\u1972\u1973\u0007G\u0002\u0002", + "\u1973\u03be\u0003\u0002\u0002\u0002\u1974\u1975\u0007F\u0002\u0002", + "\u1975\u1976\u0007K\u0002\u0002\u1976\u1977\u0007U\u0002\u0002\u1977", + "\u1978\u0007C\u0002\u0002\u1978\u1979\u0007D\u0002\u0002\u1979\u197a", + "\u0007N\u0002\u0002\u197a\u197b\u0007G\u0002\u0002\u197b\u197c\u0007", + "a\u0002\u0002\u197c\u197d\u0007D\u0002\u0002\u197d\u197e\u0007T\u0002", + "\u0002\u197e\u197f\u0007Q\u0002\u0002\u197f\u1980\u0007M\u0002\u0002", + "\u1980\u1981\u0007G\u0002\u0002\u1981\u1982\u0007T\u0002\u0002\u1982", + "\u03c0\u0003\u0002\u0002\u0002\u1983\u1984\u0007F\u0002\u0002\u1984", + "\u1985\u0007K\u0002\u0002\u1985\u1986\u0007U\u0002\u0002\u1986\u1987", + "\u0007C\u0002\u0002\u1987\u1988\u0007D\u0002\u0002\u1988\u1989\u0007", + "N\u0002\u0002\u1989\u198a\u0007G\u0002\u0002\u198a\u198b\u0007F\u0002", + "\u0002\u198b\u03c2\u0003\u0002\u0002\u0002\u198c\u198d\t\u0006\u0002", + "\u0002\u198d\u198e\t\u0004\u0002\u0002\u198e\u03c4\u0003\u0002\u0002", + "\u0002\u198f\u1990\u0007F\u0002\u0002\u1990\u1991\u0007Q\u0002\u0002", + "\u1991\u1992\u0007E\u0002\u0002\u1992\u1993\u0007W\u0002\u0002\u1993", + "\u1994\u0007O\u0002\u0002\u1994\u1995\u0007G\u0002\u0002\u1995\u1996", + "\u0007P\u0002\u0002\u1996\u1997\u0007V\u0002\u0002\u1997\u03c6\u0003", + "\u0002\u0002\u0002\u1998\u1999\u0007F\u0002\u0002\u1999\u199a\u0007", + "[\u0002\u0002\u199a\u199b\u0007P\u0002\u0002\u199b\u199c\u0007C\u0002", + "\u0002\u199c\u199d\u0007O\u0002\u0002\u199d\u199e\u0007K\u0002\u0002", + "\u199e\u199f\u0007E\u0002\u0002\u199f\u03c8\u0003\u0002\u0002\u0002", + "\u19a0\u19a1\u0007G\u0002\u0002\u19a1\u19a2\u0007N\u0002\u0002\u19a2", + "\u19a3\u0007G\u0002\u0002\u19a3\u19a4\u0007O\u0002\u0002\u19a4\u19a5", + "\u0007G\u0002\u0002\u19a5\u19a6\u0007P\u0002\u0002\u19a6\u19a7\u0007", + "V\u0002\u0002\u19a7\u19a8\u0007U\u0002\u0002\u19a8\u03ca\u0003\u0002", + "\u0002\u0002\u19a9\u19aa\u0007G\u0002\u0002\u19aa\u19ab\u0007O\u0002", + "\u0002\u19ab\u19ac\u0007G\u0002\u0002\u19ac\u19ad\u0007T\u0002\u0002", + "\u19ad\u19ae\u0007I\u0002\u0002\u19ae\u19af\u0007G\u0002\u0002\u19af", + "\u19b0\u0007P\u0002\u0002\u19b0\u19b1\u0007E\u0002\u0002\u19b1\u19b2", + "\u0007[\u0002\u0002\u19b2\u03cc\u0003\u0002\u0002\u0002\u19b3\u19b4", + "\u0007G\u0002\u0002\u19b4\u19b5\u0007O\u0002\u0002\u19b5\u19b6\u0007", + "R\u0002\u0002\u19b6\u19b7\u0007V\u0002\u0002\u19b7\u19b8\u0007[\u0002", + "\u0002\u19b8\u03ce\u0003\u0002\u0002\u0002\u19b9\u19ba\u0007G\u0002", + "\u0002\u19ba\u19bb\u0007P\u0002\u0002\u19bb\u19bc\u0007C\u0002\u0002", + "\u19bc\u19bd\u0007D\u0002\u0002\u19bd\u19be\u0007N\u0002\u0002\u19be", + "\u19bf\u0007G\u0002\u0002\u19bf\u03d0\u0003\u0002\u0002\u0002\u19c0", + "\u19c1\u0007G\u0002\u0002\u19c1\u19c2\u0007P\u0002\u0002\u19c2\u19c3", + "\u0007C\u0002\u0002\u19c3\u19c4\u0007D\u0002\u0002\u19c4\u19c5\u0007", + "N\u0002\u0002\u19c5\u19c6\u0007G\u0002\u0002\u19c6\u19c7\u0007a\u0002", + "\u0002\u19c7\u19c8\u0007D\u0002\u0002\u19c8\u19c9\u0007T\u0002\u0002", + "\u19c9\u19ca\u0007Q\u0002\u0002\u19ca\u19cb\u0007M\u0002\u0002\u19cb", + "\u19cc\u0007G\u0002\u0002\u19cc\u19cd\u0007T\u0002\u0002\u19cd\u03d2", + "\u0003\u0002\u0002\u0002\u19ce\u19cf\u0007G\u0002\u0002\u19cf\u19d0", + "\u0007P\u0002\u0002\u19d0\u19d1\u0007E\u0002\u0002\u19d1\u19d2\u0007", + "T\u0002\u0002\u19d2\u19d3\u0007[\u0002\u0002\u19d3\u19d4\u0007R\u0002", + "\u0002\u19d4\u19d5\u0007V\u0002\u0002\u19d5\u19d6\u0007G\u0002\u0002", + "\u19d6\u19d7\u0007F\u0002\u0002\u19d7\u19d8\u0007a\u0002\u0002\u19d8", + "\u19d9\u0007X\u0002\u0002\u19d9\u19da\u0007C\u0002\u0002\u19da\u19db", + "\u0007N\u0002\u0002\u19db\u19dc\u0007W\u0002\u0002\u19dc\u19dd\u0007", + "G\u0002\u0002\u19dd\u03d4\u0003\u0002\u0002\u0002\u19de\u19df\u0007", + "G\u0002\u0002\u19df\u19e0\u0007P\u0002\u0002\u19e0\u19e1\u0007E\u0002", + "\u0002\u19e1\u19e2\u0007T\u0002\u0002\u19e2\u19e3\u0007[\u0002\u0002", + "\u19e3\u19e4\u0007R\u0002\u0002\u19e4\u19e5\u0007V\u0002\u0002\u19e5", + "\u19e6\u0007K\u0002\u0002\u19e6\u19e7\u0007Q\u0002\u0002\u19e7\u19e8", + "\u0007P\u0002\u0002\u19e8\u03d6\u0003\u0002\u0002\u0002\u19e9\u19ea", + "\u0007G\u0002\u0002\u19ea\u19eb\u0007P\u0002\u0002\u19eb\u19ec\u0007", + "F\u0002\u0002\u19ec\u19ed\u0007R\u0002\u0002\u19ed\u19ee\u0007Q\u0002", + "\u0002\u19ee\u19ef\u0007K\u0002\u0002\u19ef\u19f0\u0007P\u0002\u0002", + "\u19f0\u19f1\u0007V\u0002\u0002\u19f1\u19f2\u0007a\u0002\u0002\u19f2", + "\u19f3\u0007W\u0002\u0002\u19f3\u19f4\u0007T\u0002\u0002\u19f4\u19f5", + "\u0007N\u0002\u0002\u19f5\u03d8\u0003\u0002\u0002\u0002\u19f6\u19f7", + "\u0007G\u0002\u0002\u19f7\u19f8\u0007T\u0002\u0002\u19f8\u19f9\u0007", + "T\u0002\u0002\u19f9\u19fa\u0007Q\u0002\u0002\u19fa\u19fb\u0007T\u0002", + "\u0002\u19fb\u19fc\u0007a\u0002\u0002\u19fc\u19fd\u0007D\u0002\u0002", + "\u19fd\u19fe\u0007T\u0002\u0002\u19fe\u19ff\u0007Q\u0002\u0002\u19ff", + "\u1a00\u0007M\u0002\u0002\u1a00\u1a01\u0007G\u0002\u0002\u1a01\u1a02", + "\u0007T\u0002\u0002\u1a02\u1a03\u0007a\u0002\u0002\u1a03\u1a04\u0007", + "E\u0002\u0002\u1a04\u1a05\u0007Q\u0002\u0002\u1a05\u1a06\u0007P\u0002", + "\u0002\u1a06\u1a07\u0007X\u0002\u0002\u1a07\u1a08\u0007G\u0002\u0002", + "\u1a08\u1a09\u0007T\u0002\u0002\u1a09\u1a0a\u0007U\u0002\u0002\u1a0a", + "\u1a0b\u0007C\u0002\u0002\u1a0b\u1a0c\u0007V\u0002\u0002\u1a0c\u1a0d", + "\u0007K\u0002\u0002\u1a0d\u1a0e\u0007Q\u0002\u0002\u1a0e\u1a0f\u0007", + "P\u0002\u0002\u1a0f\u1a10\u0007U\u0002\u0002\u1a10\u03da\u0003\u0002", + "\u0002\u0002\u1a11\u1a12\u0007G\u0002\u0002\u1a12\u1a13\u0007Z\u0002", + "\u0002\u1a13\u1a14\u0007E\u0002\u0002\u1a14\u1a15\u0007N\u0002\u0002", + "\u1a15\u1a16\u0007W\u0002\u0002\u1a16\u1a17\u0007U\u0002\u0002\u1a17", + "\u1a18\u0007K\u0002\u0002\u1a18\u1a19\u0007X\u0002\u0002\u1a19\u1a1a", + "\u0007G\u0002\u0002\u1a1a\u03dc\u0003\u0002\u0002\u0002\u1a1b\u1a1c", + "\u0007G\u0002\u0002\u1a1c\u1a1d\u0007Z\u0002\u0002\u1a1d\u1a1e\u0007", + "G\u0002\u0002\u1a1e\u1a1f\u0007E\u0002\u0002\u1a1f\u1a20\u0007W\u0002", + "\u0002\u1a20\u1a21\u0007V\u0002\u0002\u1a21\u1a22\u0007C\u0002\u0002", + "\u1a22\u1a23\u0007D\u0002\u0002\u1a23\u1a24\u0007N\u0002\u0002\u1a24", + "\u1a25\u0007G\u0002\u0002\u1a25\u03de\u0003\u0002\u0002\u0002\u1a26", + "\u1a27\u0007G\u0002\u0002\u1a27\u1a28\u0007Z\u0002\u0002\u1a28\u1a29", + "\u0007K\u0002\u0002\u1a29\u1a2a\u0007U\u0002\u0002\u1a2a\u1a2b\u0007", + "V\u0002\u0002\u1a2b\u03e0\u0003\u0002\u0002\u0002\u1a2c\u1a2d\u0007", + "G\u0002\u0002\u1a2d\u1a2e\u0007Z\u0002\u0002\u1a2e\u1a2f\u0007R\u0002", + "\u0002\u1a2f\u1a30\u0007C\u0002\u0002\u1a30\u1a31\u0007P\u0002\u0002", + "\u1a31\u1a32\u0007F\u0002\u0002\u1a32\u03e2\u0003\u0002\u0002\u0002", + "\u1a33\u1a34\u0007G\u0002\u0002\u1a34\u1a35\u0007Z\u0002\u0002\u1a35", + "\u1a36\u0007R\u0002\u0002\u1a36\u1a37\u0007K\u0002\u0002\u1a37\u1a38", + "\u0007T\u0002\u0002\u1a38\u1a39\u0007[\u0002\u0002\u1a39\u1a3a\u0007", + "a\u0002\u0002\u1a3a\u1a3b\u0007F\u0002\u0002\u1a3b\u1a3c\u0007C\u0002", + "\u0002\u1a3c\u1a3d\u0007V\u0002\u0002\u1a3d\u1a3e\u0007G\u0002\u0002", + "\u1a3e\u03e4\u0003\u0002\u0002\u0002\u1a3f\u1a40\u0007G\u0002\u0002", + "\u1a40\u1a41\u0007Z\u0002\u0002\u1a41\u1a42\u0007R\u0002\u0002\u1a42", + "\u1a43\u0007N\u0002\u0002\u1a43\u1a44\u0007K\u0002\u0002\u1a44\u1a45", + "\u0007E\u0002\u0002\u1a45\u1a46\u0007K\u0002\u0002\u1a46\u1a47\u0007", + "V\u0002\u0002\u1a47\u03e6\u0003\u0002\u0002\u0002\u1a48\u1a49\u0007", + "H\u0002\u0002\u1a49\u1a4a\u0007C\u0002\u0002\u1a4a\u1a4b\u0007K\u0002", + "\u0002\u1a4b\u1a4c\u0007N\u0002\u0002\u1a4c\u1a4d\u0007a\u0002\u0002", + "\u1a4d\u1a4e\u0007Q\u0002\u0002\u1a4e\u1a4f\u0007R\u0002\u0002\u1a4f", + "\u1a50\u0007G\u0002\u0002\u1a50\u1a51\u0007T\u0002\u0002\u1a51\u1a52", + "\u0007C\u0002\u0002\u1a52\u1a53\u0007V\u0002\u0002\u1a53\u1a54\u0007", + "K\u0002\u0002\u1a54\u1a55\u0007Q\u0002\u0002\u1a55\u1a56\u0007P\u0002", + "\u0002\u1a56\u03e8\u0003\u0002\u0002\u0002\u1a57\u1a58\u0007H\u0002", + "\u0002\u1a58\u1a59\u0007C\u0002\u0002\u1a59\u1a5a\u0007K\u0002\u0002", + "\u1a5a\u1a5b\u0007N\u0002\u0002\u1a5b\u1a5c\u0007Q\u0002\u0002\u1a5c", + "\u1a5d\u0007X\u0002\u0002\u1a5d\u1a5e\u0007G\u0002\u0002\u1a5e\u1a5f", + "\u0007T\u0002\u0002\u1a5f\u1a60\u0007a\u0002\u0002\u1a60\u1a61\u0007", + "O\u0002\u0002\u1a61\u1a62\u0007Q\u0002\u0002\u1a62\u1a63\u0007F\u0002", + "\u0002\u1a63\u1a64\u0007G\u0002\u0002\u1a64\u03ea\u0003\u0002\u0002", + "\u0002\u1a65\u1a66\u0007H\u0002\u0002\u1a66\u1a67\u0007C\u0002\u0002", + "\u1a67\u1a68\u0007K\u0002\u0002\u1a68\u1a69\u0007N\u0002\u0002\u1a69", + "\u1a6a\u0007W\u0002\u0002\u1a6a\u1a6b\u0007T\u0002\u0002\u1a6b\u1a6c", + "\u0007G\u0002\u0002\u1a6c\u03ec\u0003\u0002\u0002\u0002\u1a6d\u1a6e", + "\u0007H\u0002\u0002\u1a6e\u1a6f\u0007C\u0002\u0002\u1a6f\u1a70\u0007", + "K\u0002\u0002\u1a70\u1a71\u0007N\u0002\u0002\u1a71\u1a72\u0007W\u0002", + "\u0002\u1a72\u1a73\u0007T\u0002\u0002\u1a73\u1a74\u0007G\u0002\u0002", + "\u1a74\u1a75\u0007a\u0002\u0002\u1a75\u1a76\u0007E\u0002\u0002\u1a76", + "\u1a77\u0007Q\u0002\u0002\u1a77\u1a78\u0007P\u0002\u0002\u1a78\u1a79", + "\u0007F\u0002\u0002\u1a79\u1a7a\u0007K\u0002\u0002\u1a7a\u1a7b\u0007", + "V\u0002\u0002\u1a7b\u1a7c\u0007K\u0002\u0002\u1a7c\u1a7d\u0007Q\u0002", + "\u0002\u1a7d\u1a7e\u0007P\u0002\u0002\u1a7e\u1a7f\u0007a\u0002\u0002", + "\u1a7f\u1a80\u0007N\u0002\u0002\u1a80\u1a81\u0007G\u0002\u0002\u1a81", + "\u1a82\u0007X\u0002\u0002\u1a82\u1a83\u0007G\u0002\u0002\u1a83\u1a84", + "\u0007N\u0002\u0002\u1a84\u03ee\u0003\u0002\u0002\u0002\u1a85\u1a86", + "\u0007H\u0002\u0002\u1a86\u1a87\u0007C\u0002\u0002\u1a87\u1a88\u0007", + "U\u0002\u0002\u1a88\u1a89\u0007V\u0002\u0002\u1a89\u03f0\u0003\u0002", + "\u0002\u0002\u1a8a\u1a8b\u0007H\u0002\u0002\u1a8b\u1a8c\u0007C\u0002", + "\u0002\u1a8c\u1a8d\u0007U\u0002\u0002\u1a8d\u1a8e\u0007V\u0002\u0002", + "\u1a8e\u1a8f\u0007a\u0002\u0002\u1a8f\u1a90\u0007H\u0002\u0002\u1a90", + "\u1a91\u0007Q\u0002\u0002\u1a91\u1a92\u0007T\u0002\u0002\u1a92\u1a93", + "\u0007Y\u0002\u0002\u1a93\u1a94\u0007C\u0002\u0002\u1a94\u1a95\u0007", + "T\u0002\u0002\u1a95\u1a96\u0007F\u0002\u0002\u1a96\u03f2\u0003\u0002", + "\u0002\u0002\u1a97\u1a98\u0007H\u0002\u0002\u1a98\u1a99\u0007K\u0002", + "\u0002\u1a99\u1a9a\u0007N\u0002\u0002\u1a9a\u1a9b\u0007G\u0002\u0002", + "\u1a9b\u1a9c\u0007I\u0002\u0002\u1a9c\u1a9d\u0007T\u0002\u0002\u1a9d", + "\u1a9e\u0007Q\u0002\u0002\u1a9e\u1a9f\u0007W\u0002\u0002\u1a9f\u1aa0", + "\u0007R\u0002\u0002\u1aa0\u03f4\u0003\u0002\u0002\u0002\u1aa1\u1aa2", + "\u0007H\u0002\u0002\u1aa2\u1aa3\u0007K\u0002\u0002\u1aa3\u1aa4\u0007", + "N\u0002\u0002\u1aa4\u1aa5\u0007G\u0002\u0002\u1aa5\u1aa6\u0007I\u0002", + "\u0002\u1aa6\u1aa7\u0007T\u0002\u0002\u1aa7\u1aa8\u0007Q\u0002\u0002", + "\u1aa8\u1aa9\u0007Y\u0002\u0002\u1aa9\u1aaa\u0007V\u0002\u0002\u1aaa", + "\u1aab\u0007J\u0002\u0002\u1aab\u03f6\u0003\u0002\u0002\u0002\u1aac", + "\u1aad\u0007H\u0002\u0002\u1aad\u1aae\u0007K\u0002\u0002\u1aae\u1aaf", + "\u0007N\u0002\u0002\u1aaf\u1ab0\u0007G\u0002\u0002\u1ab0\u1ab1\u0007", + "R\u0002\u0002\u1ab1\u1ab2\u0007C\u0002\u0002\u1ab2\u1ab3\u0007V\u0002", + "\u0002\u1ab3\u1ab4\u0007J\u0002\u0002\u1ab4\u03f8\u0003\u0002\u0002", + "\u0002\u1ab5\u1ab6\u0007H\u0002\u0002\u1ab6\u1ab7\u0007K\u0002\u0002", + "\u1ab7\u1ab8\u0007N\u0002\u0002\u1ab8\u1ab9\u0007G\u0002\u0002\u1ab9", + "\u1aba\u0007U\u0002\u0002\u1aba\u1abb\u0007V\u0002\u0002\u1abb\u1abc", + "\u0007T\u0002\u0002\u1abc\u1abd\u0007G\u0002\u0002\u1abd\u1abe\u0007", + "C\u0002\u0002\u1abe\u1abf\u0007O\u0002\u0002\u1abf\u03fa\u0003\u0002", + "\u0002\u0002\u1ac0\u1ac1\u0007H\u0002\u0002\u1ac1\u1ac2\u0007K\u0002", + "\u0002\u1ac2\u1ac3\u0007N\u0002\u0002\u1ac3\u1ac4\u0007V\u0002\u0002", + "\u1ac4\u1ac5\u0007G\u0002\u0002\u1ac5\u1ac6\u0007T\u0002\u0002\u1ac6", + "\u03fc\u0003\u0002\u0002\u0002\u1ac7\u1ac8\u0007H\u0002\u0002\u1ac8", + "\u1ac9\u0007K\u0002\u0002\u1ac9\u1aca\u0007T\u0002\u0002\u1aca\u1acb", + "\u0007U\u0002\u0002\u1acb\u1acc\u0007V\u0002\u0002\u1acc\u03fe\u0003", + "\u0002\u0002\u0002\u1acd\u1ace\u0007H\u0002\u0002\u1ace\u1acf\u0007", + "K\u0002\u0002\u1acf\u1ad0\u0007T\u0002\u0002\u1ad0\u1ad1\u0007U\u0002", + "\u0002\u1ad1\u1ad2\u0007V\u0002\u0002\u1ad2\u1ad3\u0007a\u0002\u0002", + "\u1ad3\u1ad4\u0007X\u0002\u0002\u1ad4\u1ad5\u0007C\u0002\u0002\u1ad5", + "\u1ad6\u0007N\u0002\u0002\u1ad6\u1ad7\u0007W\u0002\u0002\u1ad7\u1ad8", + "\u0007G\u0002\u0002\u1ad8\u0400\u0003\u0002\u0002\u0002\u1ad9\u1ada", + "\u0007H\u0002\u0002\u1ada\u1adb\u0007Q\u0002\u0002\u1adb\u1adc\u0007", + "N\u0002\u0002\u1adc\u1add\u0007N\u0002\u0002\u1add\u1ade\u0007Q\u0002", + "\u0002\u1ade\u1adf\u0007Y\u0002\u0002\u1adf\u1ae0\u0007K\u0002\u0002", + "\u1ae0\u1ae1\u0007P\u0002\u0002\u1ae1\u1ae2\u0007I\u0002\u0002\u1ae2", + "\u0402\u0003\u0002\u0002\u0002\u1ae3\u1ae4\u0007H\u0002\u0002\u1ae4", + "\u1ae5\u0007Q\u0002\u0002\u1ae5\u1ae6\u0007T\u0002\u0002\u1ae6\u1ae7", + "\u0007E\u0002\u0002\u1ae7\u1ae8\u0007G\u0002\u0002\u1ae8\u0404\u0003", + "\u0002\u0002\u0002\u1ae9\u1aea\u0007H\u0002\u0002\u1aea\u1aeb\u0007", + "Q\u0002\u0002\u1aeb\u1aec\u0007T\u0002\u0002\u1aec\u1aed\u0007E\u0002", + "\u0002\u1aed\u1aee\u0007G\u0002\u0002\u1aee\u1aef\u0007a\u0002\u0002", + "\u1aef\u1af0\u0007H\u0002\u0002\u1af0\u1af1\u0007C\u0002\u0002\u1af1", + "\u1af2\u0007K\u0002\u0002\u1af2\u1af3\u0007N\u0002\u0002\u1af3\u1af4", + "\u0007Q\u0002\u0002\u1af4\u1af5\u0007X\u0002\u0002\u1af5\u1af6\u0007", + "G\u0002\u0002\u1af6\u1af7\u0007T\u0002\u0002\u1af7\u1af8\u0007a\u0002", + "\u0002\u1af8\u1af9\u0007C\u0002\u0002\u1af9\u1afa\u0007N\u0002\u0002", + "\u1afa\u1afb\u0007N\u0002\u0002\u1afb\u1afc\u0007Q\u0002\u0002\u1afc", + "\u1afd\u0007Y\u0002\u0002\u1afd\u1afe\u0007a\u0002\u0002\u1afe\u1aff", + "\u0007F\u0002\u0002\u1aff\u1b00\u0007C\u0002\u0002\u1b00\u1b01\u0007", + "V\u0002\u0002\u1b01\u1b02\u0007C\u0002\u0002\u1b02\u1b03\u0007a\u0002", + "\u0002\u1b03\u1b04\u0007N\u0002\u0002\u1b04\u1b05\u0007Q\u0002\u0002", + "\u1b05\u1b06\u0007U\u0002\u0002\u1b06\u1b07\u0007U\u0002\u0002\u1b07", + "\u0406\u0003\u0002\u0002\u0002\u1b08\u1b09\u0007H\u0002\u0002\u1b09", + "\u1b0a\u0007Q\u0002\u0002\u1b0a\u1b0b\u0007T\u0002\u0002\u1b0b\u1b0c", + "\u0007E\u0002\u0002\u1b0c\u1b0d\u0007G\u0002\u0002\u1b0d\u1b0e\u0007", + "F\u0002\u0002\u1b0e\u0408\u0003\u0002\u0002\u0002\u1b0f\u1b10\u0007", + "H\u0002\u0002\u1b10\u1b11\u0007Q\u0002\u0002\u1b11\u1b12\u0007T\u0002", + "\u0002\u1b12\u1b13\u0007O\u0002\u0002\u1b13\u1b14\u0007C\u0002\u0002", + "\u1b14\u1b15\u0007V\u0002\u0002\u1b15\u040a\u0003\u0002\u0002\u0002", + "\u1b16\u1b17\u0007H\u0002\u0002\u1b17\u1b18\u0007Q\u0002\u0002\u1b18", + "\u1b19\u0007T\u0002\u0002\u1b19\u1b1a\u0007Y\u0002\u0002\u1b1a\u1b1b", + "\u0007C\u0002\u0002\u1b1b\u1b1c\u0007T\u0002\u0002\u1b1c\u1b1d\u0007", + "F\u0002\u0002\u1b1d\u1b1e\u0007a\u0002\u0002\u1b1e\u1b1f\u0007Q\u0002", + "\u0002\u1b1f\u1b20\u0007P\u0002\u0002\u1b20\u1b21\u0007N\u0002\u0002", + "\u1b21\u1b22\u0007[\u0002\u0002\u1b22\u040c\u0003\u0002\u0002\u0002", + "\u1b23\u1b24\u0007H\u0002\u0002\u1b24\u1b25\u0007W\u0002\u0002\u1b25", + "\u1b26\u0007N\u0002\u0002\u1b26\u1b27\u0007N\u0002\u0002\u1b27\u1b28", + "\u0007U\u0002\u0002\u1b28\u1b29\u0007E\u0002\u0002\u1b29\u1b2a\u0007", + "C\u0002\u0002\u1b2a\u1b2b\u0007P\u0002\u0002\u1b2b\u040e\u0003\u0002", + "\u0002\u0002\u1b2c\u1b2d\u0007H\u0002\u0002\u1b2d\u1b2e\u0007W\u0002", + "\u0002\u1b2e\u1b2f\u0007N\u0002\u0002\u1b2f\u1b30\u0007N\u0002\u0002", + "\u1b30\u1b31\u0007V\u0002\u0002\u1b31\u1b32\u0007G\u0002\u0002\u1b32", + "\u1b33\u0007Z\u0002\u0002\u1b33\u1b34\u0007V\u0002\u0002\u1b34\u0410", + "\u0003\u0002\u0002\u0002\u1b35\u1b36\u0007I\u0002\u0002\u1b36\u1b37", + "\u0007D\u0002\u0002\u1b37\u0412\u0003\u0002\u0002\u0002\u1b38\u1b39", + "\u0007I\u0002\u0002\u1b39\u1b3a\u0007G\u0002\u0002\u1b3a\u1b3b\u0007", + "V\u0002\u0002\u1b3b\u1b3c\u0007F\u0002\u0002\u1b3c\u1b3d\u0007C\u0002", + "\u0002\u1b3d\u1b3e\u0007V\u0002\u0002\u1b3e\u1b3f\u0007G\u0002\u0002", + "\u1b3f\u0414\u0003\u0002\u0002\u0002\u1b40\u1b41\u0007I\u0002\u0002", + "\u1b41\u1b42\u0007G\u0002\u0002\u1b42\u1b43\u0007V\u0002\u0002\u1b43", + "\u1b44\u0007W\u0002\u0002\u1b44\u1b45\u0007V\u0002\u0002\u1b45\u1b46", + "\u0007E\u0002\u0002\u1b46\u1b47\u0007F\u0002\u0002\u1b47\u1b48\u0007", + "C\u0002\u0002\u1b48\u1b49\u0007V\u0002\u0002\u1b49\u1b4a\u0007G\u0002", + "\u0002\u1b4a\u0416\u0003\u0002\u0002\u0002\u1b4b\u1b4c\u0007I\u0002", + "\u0002\u1b4c\u1b4d\u0007N\u0002\u0002\u1b4d\u1b4e\u0007Q\u0002\u0002", + "\u1b4e\u1b4f\u0007D\u0002\u0002\u1b4f\u1b50\u0007C\u0002\u0002\u1b50", + "\u1b51\u0007N\u0002\u0002\u1b51\u0418\u0003\u0002\u0002\u0002\u1b52", + "\u1b53\u0007I\u0002\u0002\u1b53\u1b54\u0007Q\u0002\u0002\u1b54\u041a", + "\u0003\u0002\u0002\u0002\u1b55\u1b56\u0007I\u0002\u0002\u1b56\u1b57", + "\u0007T\u0002\u0002\u1b57\u1b58\u0007Q\u0002\u0002\u1b58\u1b59\u0007", + "W\u0002\u0002\u1b59\u1b5a\u0007R\u0002\u0002\u1b5a\u1b5b\u0007a\u0002", + "\u0002\u1b5b\u1b5c\u0007O\u0002\u0002\u1b5c\u1b5d\u0007C\u0002\u0002", + "\u1b5d\u1b5e\u0007Z\u0002\u0002\u1b5e\u1b5f\u0007a\u0002\u0002\u1b5f", + "\u1b60\u0007T\u0002\u0002\u1b60\u1b61\u0007G\u0002\u0002\u1b61\u1b62", + "\u0007S\u0002\u0002\u1b62\u1b63\u0007W\u0002\u0002\u1b63\u1b64\u0007", + "G\u0002\u0002\u1b64\u1b65\u0007U\u0002\u0002\u1b65\u1b66\u0007V\u0002", + "\u0002\u1b66\u1b67\u0007U\u0002\u0002\u1b67\u041c\u0003\u0002\u0002", + "\u0002\u1b68\u1b69\u0007I\u0002\u0002\u1b69\u1b6a\u0007T\u0002\u0002", + "\u1b6a\u1b6b\u0007Q\u0002\u0002\u1b6b\u1b6c\u0007W\u0002\u0002\u1b6c", + "\u1b6d\u0007R\u0002\u0002\u1b6d\u1b6e\u0007K\u0002\u0002\u1b6e\u1b6f", + "\u0007P\u0002\u0002\u1b6f\u1b70\u0007I\u0002\u0002\u1b70\u041e\u0003", + "\u0002\u0002\u0002\u1b71\u1b72\u0007I\u0002\u0002\u1b72\u1b73\u0007", + "T\u0002\u0002\u1b73\u1b74\u0007Q\u0002\u0002\u1b74\u1b75\u0007W\u0002", + "\u0002\u1b75\u1b76\u0007R\u0002\u0002\u1b76\u1b77\u0007K\u0002\u0002", + "\u1b77\u1b78\u0007P\u0002\u0002\u1b78\u1b79\u0007I\u0002\u0002\u1b79", + "\u1b7a\u0007a\u0002\u0002\u1b7a\u1b7b\u0007K\u0002\u0002\u1b7b\u1b7c", + "\u0007F\u0002\u0002\u1b7c\u0420\u0003\u0002\u0002\u0002\u1b7d\u1b7e", + "\u0007J\u0002\u0002\u1b7e\u1b7f\u0007C\u0002\u0002\u1b7f\u1b80\u0007", + "F\u0002\u0002\u1b80\u1b81\u0007T\u0002\u0002\u1b81\u0422\u0003\u0002", + "\u0002\u0002\u1b82\u1b83\u0007J\u0002\u0002\u1b83\u1b84\u0007C\u0002", + "\u0002\u1b84\u1b85\u0007U\u0002\u0002\u1b85\u1b86\u0007J\u0002\u0002", + "\u1b86\u0424\u0003\u0002\u0002\u0002\u1b87\u1b88\u0007J\u0002\u0002", + "\u1b88\u1b89\u0007G\u0002\u0002\u1b89\u1b8a\u0007C\u0002\u0002\u1b8a", + "\u1b8b\u0007N\u0002\u0002\u1b8b\u1b8c\u0007V\u0002\u0002\u1b8c\u1b8d", + "\u0007J\u0002\u0002\u1b8d\u1b8e\u0007a\u0002\u0002\u1b8e\u1b8f\u0007", + "E\u0002\u0002\u1b8f\u1b90\u0007J\u0002\u0002\u1b90\u1b91\u0007G\u0002", + "\u0002\u1b91\u1b92\u0007E\u0002\u0002\u1b92\u1b93\u0007M\u0002\u0002", + "\u1b93\u1b94\u0007a\u0002\u0002\u1b94\u1b95\u0007V\u0002\u0002\u1b95", + "\u1b96\u0007K\u0002\u0002\u1b96\u1b97\u0007O\u0002\u0002\u1b97\u1b98", + "\u0007G\u0002\u0002\u1b98\u1b99\u0007Q\u0002\u0002\u1b99\u1b9a\u0007", + "W\u0002\u0002\u1b9a\u1b9b\u0007V\u0002\u0002\u1b9b\u0426\u0003\u0002", + "\u0002\u0002\u1b9c\u1b9d\u0007J\u0002\u0002\u1b9d\u1b9e\u0007K\u0002", + "\u0002\u1b9e\u1b9f\u0007I\u0002\u0002\u1b9f\u1ba0\u0007J\u0002\u0002", + "\u1ba0\u0428\u0003\u0002\u0002\u0002\u1ba1\u1ba2\u0007J\u0002\u0002", + "\u1ba2\u1ba3\u0007Q\u0002\u0002\u1ba3\u1ba4\u0007P\u0002\u0002\u1ba4", + "\u1ba5\u0007Q\u0002\u0002\u1ba5\u1ba6\u0007T\u0002\u0002\u1ba6\u1ba7", + "\u0007a\u0002\u0002\u1ba7\u1ba8\u0007D\u0002\u0002\u1ba8\u1ba9\u0007", + "T\u0002\u0002\u1ba9\u1baa\u0007Q\u0002\u0002\u1baa\u1bab\u0007M\u0002", + "\u0002\u1bab\u1bac\u0007G\u0002\u0002\u1bac\u1bad\u0007T\u0002\u0002", + "\u1bad\u1bae\u0007a\u0002\u0002\u1bae\u1baf\u0007R\u0002\u0002\u1baf", + "\u1bb0\u0007T\u0002\u0002\u1bb0\u1bb1\u0007K\u0002\u0002\u1bb1\u1bb2", + "\u0007Q\u0002\u0002\u1bb2\u1bb3\u0007T\u0002\u0002\u1bb3\u1bb4\u0007", + "K\u0002\u0002\u1bb4\u1bb5\u0007V\u0002\u0002\u1bb5\u1bb6\u0007[\u0002", + "\u0002\u1bb6\u042a\u0003\u0002\u0002\u0002\u1bb7\u1bb8\u0007J\u0002", + "\u0002\u1bb8\u1bb9\u0007Q\u0002\u0002\u1bb9\u1bba\u0007W\u0002\u0002", + "\u1bba\u1bbb\u0007T\u0002\u0002\u1bbb\u1bbc\u0007U\u0002\u0002\u1bbc", + "\u042c\u0003\u0002\u0002\u0002\u1bbd\u1bbe\u0007K\u0002\u0002\u1bbe", + "\u1bbf\u0007F\u0002\u0002\u1bbf\u1bc0\u0007G\u0002\u0002\u1bc0\u1bc1", + "\u0007P\u0002\u0002\u1bc1\u1bc2\u0007V\u0002\u0002\u1bc2\u1bc3\u0007", + "K\u0002\u0002\u1bc3\u1bc4\u0007V\u0002\u0002\u1bc4\u1bc5\u0007[\u0002", + "\u0002\u1bc5\u1bc6\u0007a\u0002\u0002\u1bc6\u1bc7\u0007X\u0002\u0002", + "\u1bc7\u1bc8\u0007C\u0002\u0002\u1bc8\u1bc9\u0007N\u0002\u0002\u1bc9", + "\u1bca\u0007W\u0002\u0002\u1bca\u1bcb\u0007G\u0002\u0002\u1bcb\u042e", + "\u0003\u0002\u0002\u0002\u1bcc\u1bcd\u0007K\u0002\u0002\u1bcd\u1bce", + "\u0007I\u0002\u0002\u1bce\u1bcf\u0007P\u0002\u0002\u1bcf\u1bd0\u0007", + "Q\u0002\u0002\u1bd0\u1bd1\u0007T\u0002\u0002\u1bd1\u1bd2\u0007G\u0002", + "\u0002\u1bd2\u1bd3\u0007a\u0002\u0002\u1bd3\u1bd4\u0007P\u0002\u0002", + "\u1bd4\u1bd5\u0007Q\u0002\u0002\u1bd5\u1bd6\u0007P\u0002\u0002\u1bd6", + "\u1bd7\u0007E\u0002\u0002\u1bd7\u1bd8\u0007N\u0002\u0002\u1bd8\u1bd9", + "\u0007W\u0002\u0002\u1bd9\u1bda\u0007U\u0002\u0002\u1bda\u1bdb\u0007", + "V\u0002\u0002\u1bdb\u1bdc\u0007G\u0002\u0002\u1bdc\u1bdd\u0007T\u0002", + "\u0002\u1bdd\u1bde\u0007G\u0002\u0002\u1bde\u1bdf\u0007F\u0002\u0002", + "\u1bdf\u1be0\u0007a\u0002\u0002\u1be0\u1be1\u0007E\u0002\u0002\u1be1", + "\u1be2\u0007Q\u0002\u0002\u1be2\u1be3\u0007N\u0002\u0002\u1be3\u1be4", + "\u0007W\u0002\u0002\u1be4\u1be5\u0007O\u0002\u0002\u1be5\u1be6\u0007", + "P\u0002\u0002\u1be6\u1be7\u0007U\u0002\u0002\u1be7\u1be8\u0007V\u0002", + "\u0002\u1be8\u1be9\u0007Q\u0002\u0002\u1be9\u1bea\u0007T\u0002\u0002", + "\u1bea\u1beb\u0007G\u0002\u0002\u1beb\u1bec\u0007a\u0002\u0002\u1bec", + "\u1bed\u0007K\u0002\u0002\u1bed\u1bee\u0007P\u0002\u0002\u1bee\u1bef", + "\u0007F\u0002\u0002\u1bef\u1bf0\u0007G\u0002\u0002\u1bf0\u1bf1\u0007", + "Z\u0002\u0002\u1bf1\u0430\u0003\u0002\u0002\u0002\u1bf2\u1bf3\u0007", + "K\u0002\u0002\u1bf3\u1bf4\u0007O\u0002\u0002\u1bf4\u1bf5\u0007O\u0002", + "\u0002\u1bf5\u1bf6\u0007G\u0002\u0002\u1bf6\u1bf7\u0007F\u0002\u0002", + "\u1bf7\u1bf8\u0007K\u0002\u0002\u1bf8\u1bf9\u0007C\u0002\u0002\u1bf9", + "\u1bfa\u0007V\u0002\u0002\u1bfa\u1bfb\u0007G\u0002\u0002\u1bfb\u0432", + "\u0003\u0002\u0002\u0002\u1bfc\u1bfd\u0007K\u0002\u0002\u1bfd\u1bfe", + "\u0007O\u0002\u0002\u1bfe\u1bff\u0007R\u0002\u0002\u1bff\u1c00\u0007", + "G\u0002\u0002\u1c00\u1c01\u0007T\u0002\u0002\u1c01\u1c02\u0007U\u0002", + "\u0002\u1c02\u1c03\u0007Q\u0002\u0002\u1c03\u1c04\u0007P\u0002\u0002", + "\u1c04\u1c05\u0007C\u0002\u0002\u1c05\u1c06\u0007V\u0002\u0002\u1c06", + "\u1c07\u0007G\u0002\u0002\u1c07\u0434\u0003\u0002\u0002\u0002\u1c08", + "\u1c09\u0007K\u0002\u0002\u1c09\u1c0a\u0007O\u0002\u0002\u1c0a\u1c0b", + "\u0007R\u0002\u0002\u1c0b\u1c0c\u0007Q\u0002\u0002\u1c0c\u1c0d\u0007", + "T\u0002\u0002\u1c0d\u1c0e\u0007V\u0002\u0002\u1c0e\u1c0f\u0007C\u0002", + "\u0002\u1c0f\u1c10\u0007P\u0002\u0002\u1c10\u1c11\u0007E\u0002\u0002", + "\u1c11\u1c12\u0007G\u0002\u0002\u1c12\u0436\u0003\u0002\u0002\u0002", + "\u1c13\u1c14\u0007K\u0002\u0002\u1c14\u1c15\u0007P\u0002\u0002\u1c15", + "\u1c16\u0007E\u0002\u0002\u1c16\u1c17\u0007N\u0002\u0002\u1c17\u1c18", + "\u0007W\u0002\u0002\u1c18\u1c19\u0007F\u0002\u0002\u1c19\u1c1a\u0007", + "G\u0002\u0002\u1c1a\u1c1b\u0007a\u0002\u0002\u1c1b\u1c1c\u0007P\u0002", + "\u0002\u1c1c\u1c1d\u0007W\u0002\u0002\u1c1d\u1c1e\u0007N\u0002\u0002", + "\u1c1e\u1c1f\u0007N\u0002\u0002\u1c1f\u1c20\u0007a\u0002\u0002\u1c20", + "\u1c21\u0007X\u0002\u0002\u1c21\u1c22\u0007C\u0002\u0002\u1c22\u1c23", + "\u0007N\u0002\u0002\u1c23\u1c24\u0007W\u0002\u0002\u1c24\u1c25\u0007", + "G\u0002\u0002\u1c25\u1c26\u0007U\u0002\u0002\u1c26\u0438\u0003\u0002", + "\u0002\u0002\u1c27\u1c28\u0007K\u0002\u0002\u1c28\u1c29\u0007P\u0002", + "\u0002\u1c29\u1c2a\u0007E\u0002\u0002\u1c2a\u1c2b\u0007T\u0002\u0002", + "\u1c2b\u1c2c\u0007G\u0002\u0002\u1c2c\u1c2d\u0007O\u0002\u0002\u1c2d", + "\u1c2e\u0007G\u0002\u0002\u1c2e\u1c2f\u0007P\u0002\u0002\u1c2f\u1c30", + "\u0007V\u0002\u0002\u1c30\u1c31\u0007C\u0002\u0002\u1c31\u1c32\u0007", + "N\u0002\u0002\u1c32\u043a\u0003\u0002\u0002\u0002\u1c33\u1c34\u0007", + "K\u0002\u0002\u1c34\u1c35\u0007P\u0002\u0002\u1c35\u1c36\u0007K\u0002", + "\u0002\u1c36\u1c37\u0007V\u0002\u0002\u1c37\u1c38\u0007K\u0002\u0002", + "\u1c38\u1c39\u0007C\u0002\u0002\u1c39\u1c3a\u0007V\u0002\u0002\u1c3a", + "\u1c3b\u0007Q\u0002\u0002\u1c3b\u1c3c\u0007T\u0002\u0002\u1c3c\u043c", + "\u0003\u0002\u0002\u0002\u1c3d\u1c3e\u0007K\u0002\u0002\u1c3e\u1c3f", + "\u0007P\u0002\u0002\u1c3f\u1c40\u0007R\u0002\u0002\u1c40\u1c41\u0007", + "W\u0002\u0002\u1c41\u1c42\u0007V\u0002\u0002\u1c42\u043e\u0003\u0002", + "\u0002\u0002\u1c43\u1c44\u0007K\u0002\u0002\u1c44\u1c45\u0007P\u0002", + "\u0002\u1c45\u1c46\u0007U\u0002\u0002\u1c46\u1c47\u0007G\u0002\u0002", + "\u1c47\u1c48\u0007P\u0002\u0002\u1c48\u1c49\u0007U\u0002\u0002\u1c49", + "\u1c4a\u0007K\u0002\u0002\u1c4a\u1c4b\u0007V\u0002\u0002\u1c4b\u1c4c", + "\u0007K\u0002\u0002\u1c4c\u1c4d\u0007X\u0002\u0002\u1c4d\u1c4e\u0007", + "G\u0002\u0002\u1c4e\u0440\u0003\u0002\u0002\u0002\u1c4f\u1c50\u0007", + "K\u0002\u0002\u1c50\u1c51\u0007P\u0002\u0002\u1c51\u1c52\u0007U\u0002", + "\u0002\u1c52\u1c53\u0007G\u0002\u0002\u1c53\u1c54\u0007T\u0002\u0002", + "\u1c54\u1c55\u0007V\u0002\u0002\u1c55\u1c56\u0007G\u0002\u0002\u1c56", + "\u1c57\u0007F\u0002\u0002\u1c57\u0442\u0003\u0002\u0002\u0002\u1c58", + "\u1c59\u0007K\u0002\u0002\u1c59\u1c5a\u0007P\u0002\u0002\u1c5a\u1c5b", + "\u0007V\u0002\u0002\u1c5b\u0444\u0003\u0002\u0002\u0002\u1c5c\u1c5d", + "\u0007K\u0002\u0002\u1c5d\u1c5e\u0007R\u0002\u0002\u1c5e\u0446\u0003", + "\u0002\u0002\u0002\u1c5f\u1c60\u0007K\u0002\u0002\u1c60\u1c61\u0007", + "U\u0002\u0002\u1c61\u1c62\u0007Q\u0002\u0002\u1c62\u1c63\u0007N\u0002", + "\u0002\u1c63\u1c64\u0007C\u0002\u0002\u1c64\u1c65\u0007V\u0002\u0002", + "\u1c65\u1c66\u0007K\u0002\u0002\u1c66\u1c67\u0007Q\u0002\u0002\u1c67", + "\u1c68\u0007P\u0002\u0002\u1c68\u0448\u0003\u0002\u0002\u0002\u1c69", + "\u1c6a\u0007L\u0002\u0002\u1c6a\u1c6b\u0007Q\u0002\u0002\u1c6b\u1c6c", + "\u0007D\u0002\u0002\u1c6c\u044a\u0003\u0002\u0002\u0002\u1c6d\u1c6e", + "\u0007L\u0002\u0002\u1c6e\u1c6f\u0007U\u0002\u0002\u1c6f\u1c70\u0007", + "Q\u0002\u0002\u1c70\u1c71\u0007P\u0002\u0002\u1c71\u044c\u0003\u0002", + "\u0002\u0002\u1c72\u1c73\u0007M\u0002\u0002\u1c73\u1c74\u0007D\u0002", + "\u0002\u1c74\u044e\u0003\u0002\u0002\u0002\u1c75\u1c76\u0007M\u0002", + "\u0002\u1c76\u1c77\u0007G\u0002\u0002\u1c77\u1c78\u0007G\u0002\u0002", + "\u1c78\u1c79\u0007R\u0002\u0002\u1c79\u0450\u0003\u0002\u0002\u0002", + "\u1c7a\u1c7b\u0007M\u0002\u0002\u1c7b\u1c7c\u0007G\u0002\u0002\u1c7c", + "\u1c7d\u0007G\u0002\u0002\u1c7d\u1c7e\u0007R\u0002\u0002\u1c7e\u1c7f", + "\u0007H\u0002\u0002\u1c7f\u1c80\u0007K\u0002\u0002\u1c80\u1c81\u0007", + "Z\u0002\u0002\u1c81\u1c82\u0007G\u0002\u0002\u1c82\u1c83\u0007F\u0002", + "\u0002\u1c83\u0452\u0003\u0002\u0002\u0002\u1c84\u1c85\u0007M\u0002", + "\u0002\u1c85\u1c86\u0007G\u0002\u0002\u1c86\u1c87\u0007[\u0002\u0002", + "\u1c87\u1c88\u0007a\u0002\u0002\u1c88\u1c89\u0007U\u0002\u0002\u1c89", + "\u1c8a\u0007Q\u0002\u0002\u1c8a\u1c8b\u0007W\u0002\u0002\u1c8b\u1c8c", + "\u0007T\u0002\u0002\u1c8c\u1c8d\u0007E\u0002\u0002\u1c8d\u1c8e\u0007", + "G\u0002\u0002\u1c8e\u0454\u0003\u0002\u0002\u0002\u1c8f\u1c90\u0007", + "M\u0002\u0002\u1c90\u1c91\u0007G\u0002\u0002\u1c91\u1c92\u0007[\u0002", + "\u0002\u1c92\u1c93\u0007U\u0002\u0002\u1c93\u0456\u0003\u0002\u0002", + "\u0002\u1c94\u1c95\u0007M\u0002\u0002\u1c95\u1c96\u0007G\u0002\u0002", + "\u1c96\u1c97\u0007[\u0002\u0002\u1c97\u1c98\u0007U\u0002\u0002\u1c98", + "\u1c99\u0007G\u0002\u0002\u1c99\u1c9a\u0007V\u0002\u0002\u1c9a\u0458", + "\u0003\u0002\u0002\u0002\u1c9b\u1c9c\u0007N\u0002\u0002\u1c9c\u1c9d", + "\u0007C\u0002\u0002\u1c9d\u1c9e\u0007I\u0002\u0002\u1c9e\u045a\u0003", + "\u0002\u0002\u0002\u1c9f\u1ca0\u0007N\u0002\u0002\u1ca0\u1ca1\u0007", + "C\u0002\u0002\u1ca1\u1ca2\u0007U\u0002\u0002\u1ca2\u1ca3\u0007V\u0002", + "\u0002\u1ca3\u045c\u0003\u0002\u0002\u0002\u1ca4\u1ca5\u0007N\u0002", + "\u0002\u1ca5\u1ca6\u0007C\u0002\u0002\u1ca6\u1ca7\u0007U\u0002\u0002", + "\u1ca7\u1ca8\u0007V\u0002\u0002\u1ca8\u1ca9\u0007a\u0002\u0002\u1ca9", + "\u1caa\u0007X\u0002\u0002\u1caa\u1cab\u0007C\u0002\u0002\u1cab\u1cac", + "\u0007N\u0002\u0002\u1cac\u1cad\u0007W\u0002\u0002\u1cad\u1cae\u0007", + "G\u0002\u0002\u1cae\u045e\u0003\u0002\u0002\u0002\u1caf\u1cb0\u0007", + "N\u0002\u0002\u1cb0\u1cb1\u0007G\u0002\u0002\u1cb1\u1cb2\u0007C\u0002", + "\u0002\u1cb2\u1cb3\u0007F\u0002\u0002\u1cb3\u0460\u0003\u0002\u0002", + "\u0002\u1cb4\u1cb5\u0007N\u0002\u0002\u1cb5\u1cb6\u0007G\u0002\u0002", + "\u1cb6\u1cb7\u0007X\u0002\u0002\u1cb7\u1cb8\u0007G\u0002\u0002\u1cb8", + "\u1cb9\u0007N\u0002\u0002\u1cb9\u0462\u0003\u0002\u0002\u0002\u1cba", + "\u1cbb\u0007N\u0002\u0002\u1cbb\u1cbc\u0007K\u0002\u0002\u1cbc\u1cbd", + "\u0007U\u0002\u0002\u1cbd\u1cbe\u0007V\u0002\u0002\u1cbe\u0464\u0003", + "\u0002\u0002\u0002\u1cbf\u1cc0\u0007N\u0002\u0002\u1cc0\u1cc1\u0007", + "K\u0002\u0002\u1cc1\u1cc2\u0007U\u0002\u0002\u1cc2\u1cc3\u0007V\u0002", + "\u0002\u1cc3\u1cc4\u0007G\u0002\u0002\u1cc4\u1cc5\u0007P\u0002\u0002", + "\u1cc5\u1cc6\u0007G\u0002\u0002\u1cc6\u1cc7\u0007T\u0002\u0002\u1cc7", + "\u0466\u0003\u0002\u0002\u0002\u1cc8\u1cc9\u0007N\u0002\u0002\u1cc9", + "\u1cca\u0007K\u0002\u0002\u1cca\u1ccb\u0007U\u0002\u0002\u1ccb\u1ccc", + "\u0007V\u0002\u0002\u1ccc\u1ccd\u0007G\u0002\u0002\u1ccd\u1cce\u0007", + "P\u0002\u0002\u1cce\u1ccf\u0007G\u0002\u0002\u1ccf\u1cd0\u0007T\u0002", + "\u0002\u1cd0\u1cd1\u0007a\u0002\u0002\u1cd1\u1cd2\u0007W\u0002\u0002", + "\u1cd2\u1cd3\u0007T\u0002\u0002\u1cd3\u1cd4\u0007N\u0002\u0002\u1cd4", + "\u0468\u0003\u0002\u0002\u0002\u1cd5\u1cd6\u0007N\u0002\u0002\u1cd6", + "\u1cd7\u0007Q\u0002\u0002\u1cd7\u1cd8\u0007D\u0002\u0002\u1cd8\u1cd9", + "\u0007a\u0002\u0002\u1cd9\u1cda\u0007E\u0002\u0002\u1cda\u1cdb\u0007", + "Q\u0002\u0002\u1cdb\u1cdc\u0007O\u0002\u0002\u1cdc\u1cdd\u0007R\u0002", + "\u0002\u1cdd\u1cde\u0007C\u0002\u0002\u1cde\u1cdf\u0007E\u0002\u0002", + "\u1cdf\u1ce0\u0007V\u0002\u0002\u1ce0\u1ce1\u0007K\u0002\u0002\u1ce1", + "\u1ce2\u0007Q\u0002\u0002\u1ce2\u1ce3\u0007P\u0002\u0002\u1ce3\u046a", + "\u0003\u0002\u0002\u0002\u1ce4\u1ce5\u0007N\u0002\u0002\u1ce5\u1ce6", + "\u0007Q\u0002\u0002\u1ce6\u1ce7\u0007E\u0002\u0002\u1ce7\u1ce8\u0007", + "C\u0002\u0002\u1ce8\u1ce9\u0007N\u0002\u0002\u1ce9\u046c\u0003\u0002", + "\u0002\u0002\u1cea\u1ceb\u0007N\u0002\u0002\u1ceb\u1cec\u0007Q\u0002", + "\u0002\u1cec\u1ced\u0007E\u0002\u0002\u1ced\u1cee\u0007C\u0002\u0002", + "\u1cee\u1cef\u0007V\u0002\u0002\u1cef\u1cf0\u0007K\u0002\u0002\u1cf0", + "\u1cf1\u0007Q\u0002\u0002\u1cf1\u1cf2\u0007P\u0002\u0002\u1cf2\u046e", + "\u0003\u0002\u0002\u0002\u1cf3\u1cf4\u0007N\u0002\u0002\u1cf4\u1cf5", + "\u0007Q\u0002\u0002\u1cf5\u1cf6\u0007E\u0002\u0002\u1cf6\u1cf7\u0007", + "M\u0002\u0002\u1cf7\u0470\u0003\u0002\u0002\u0002\u1cf8\u1cf9\u0007", + "N\u0002\u0002\u1cf9\u1cfa\u0007Q\u0002\u0002\u1cfa\u1cfb\u0007E\u0002", + "\u0002\u1cfb\u1cfc\u0007M\u0002\u0002\u1cfc\u1cfd\u0007a\u0002\u0002", + "\u1cfd\u1cfe\u0007G\u0002\u0002\u1cfe\u1cff\u0007U\u0002\u0002\u1cff", + "\u1d00\u0007E\u0002\u0002\u1d00\u1d01\u0007C\u0002\u0002\u1d01\u1d02", + "\u0007N\u0002\u0002\u1d02\u1d03\u0007C\u0002\u0002\u1d03\u1d04\u0007", + "V\u0002\u0002\u1d04\u1d05\u0007K\u0002\u0002\u1d05\u1d06\u0007Q\u0002", + "\u0002\u1d06\u1d07\u0007P\u0002\u0002\u1d07\u0472\u0003\u0002\u0002", + "\u0002\u1d08\u1d09\u0007N\u0002\u0002\u1d09\u1d0a\u0007Q\u0002\u0002", + "\u1d0a\u1d0b\u0007I\u0002\u0002\u1d0b\u1d0c\u0007K\u0002\u0002\u1d0c", + "\u1d0d\u0007P\u0002\u0002\u1d0d\u0474\u0003\u0002\u0002\u0002\u1d0e", + "\u1d0f\u0007N\u0002\u0002\u1d0f\u1d10\u0007Q\u0002\u0002\u1d10\u1d11", + "\u0007Q\u0002\u0002\u1d11\u1d12\u0007R\u0002\u0002\u1d12\u0476\u0003", + "\u0002\u0002\u0002\u1d13\u1d14\u0007N\u0002\u0002\u1d14\u1d15\u0007", + "Q\u0002\u0002\u1d15\u1d16\u0007Y\u0002\u0002\u1d16\u0478\u0003\u0002", + "\u0002\u0002\u1d17\u1d18\u0007O\u0002\u0002\u1d18\u1d19\u0007C\u0002", + "\u0002\u1d19\u1d1a\u0007P\u0002\u0002\u1d1a\u1d1b\u0007W\u0002\u0002", + "\u1d1b\u1d1c\u0007C\u0002\u0002\u1d1c\u1d1d\u0007N\u0002\u0002\u1d1d", + "\u047a\u0003\u0002\u0002\u0002\u1d1e\u1d1f\u0007O\u0002\u0002\u1d1f", + "\u1d20\u0007C\u0002\u0002\u1d20\u1d21\u0007T\u0002\u0002\u1d21\u1d22", + "\u0007M\u0002\u0002\u1d22\u047c\u0003\u0002\u0002\u0002\u1d23\u1d24", + "\u0007O\u0002\u0002\u1d24\u1d25\u0007C\u0002\u0002\u1d25\u1d26\u0007", + "V\u0002\u0002\u1d26\u1d27\u0007G\u0002\u0002\u1d27\u1d28\u0007T\u0002", + "\u0002\u1d28\u1d29\u0007K\u0002\u0002\u1d29\u1d2a\u0007C\u0002\u0002", + "\u1d2a\u1d2b\u0007N\u0002\u0002\u1d2b\u1d2c\u0007K\u0002\u0002\u1d2c", + "\u1d2d\u0007\\\u0002\u0002\u1d2d\u1d2e\u0007G\u0002\u0002\u1d2e\u1d2f", + "\u0007F\u0002\u0002\u1d2f\u047e\u0003\u0002\u0002\u0002\u1d30\u1d31", + "\u0007O\u0002\u0002\u1d31\u1d32\u0007C\u0002\u0002\u1d32\u1d33\u0007", + "Z\u0002\u0002\u1d33\u0480\u0003\u0002\u0002\u0002\u1d34\u1d35\u0007", + "O\u0002\u0002\u1d35\u1d36\u0007C\u0002\u0002\u1d36\u1d37\u0007Z\u0002", + "\u0002\u1d37\u1d38\u0007a\u0002\u0002\u1d38\u1d39\u0007E\u0002\u0002", + "\u1d39\u1d3a\u0007R\u0002\u0002\u1d3a\u1d3b\u0007W\u0002\u0002\u1d3b", + "\u1d3c\u0007a\u0002\u0002\u1d3c\u1d3d\u0007R\u0002\u0002\u1d3d\u1d3e", + "\u0007G\u0002\u0002\u1d3e\u1d3f\u0007T\u0002\u0002\u1d3f\u1d40\u0007", + "E\u0002\u0002\u1d40\u1d41\u0007G\u0002\u0002\u1d41\u1d42\u0007P\u0002", + "\u0002\u1d42\u1d43\u0007V\u0002\u0002\u1d43\u0482\u0003\u0002\u0002", + "\u0002\u1d44\u1d45\u0007O\u0002\u0002\u1d45\u1d46\u0007C\u0002\u0002", + "\u1d46\u1d47\u0007Z\u0002\u0002\u1d47\u1d48\u0007a\u0002\u0002\u1d48", + "\u1d49\u0007F\u0002\u0002\u1d49\u1d4a\u0007Q\u0002\u0002\u1d4a\u1d4b", + "\u0007R\u0002\u0002\u1d4b\u0484\u0003\u0002\u0002\u0002\u1d4c\u1d4d", + "\u0007O\u0002\u0002\u1d4d\u1d4e\u0007C\u0002\u0002\u1d4e\u1d4f\u0007", + "Z\u0002\u0002\u1d4f\u1d50\u0007a\u0002\u0002\u1d50\u1d51\u0007H\u0002", + "\u0002\u1d51\u1d52\u0007K\u0002\u0002\u1d52\u1d53\u0007N\u0002\u0002", + "\u1d53\u1d54\u0007G\u0002\u0002\u1d54\u1d55\u0007U\u0002\u0002\u1d55", + "\u0486\u0003\u0002\u0002\u0002\u1d56\u1d57\u0007O\u0002\u0002\u1d57", + "\u1d58\u0007C\u0002\u0002\u1d58\u1d59\u0007Z\u0002\u0002\u1d59\u1d5a", + "\u0007a\u0002\u0002\u1d5a\u1d5b\u0007K\u0002\u0002\u1d5b\u1d5c\u0007", + "Q\u0002\u0002\u1d5c\u1d5d\u0007R\u0002\u0002\u1d5d\u1d5e\u0007U\u0002", + "\u0002\u1d5e\u1d5f\u0007a\u0002\u0002\u1d5f\u1d60\u0007R\u0002\u0002", + "\u1d60\u1d61\u0007G\u0002\u0002\u1d61\u1d62\u0007T\u0002\u0002\u1d62", + "\u1d63\u0007a\u0002\u0002\u1d63\u1d64\u0007X\u0002\u0002\u1d64\u1d65", + "\u0007Q\u0002\u0002\u1d65\u1d66\u0007N\u0002\u0002\u1d66\u1d67\u0007", + "W\u0002\u0002\u1d67\u1d68\u0007O\u0002\u0002\u1d68\u1d69\u0007G\u0002", + "\u0002\u1d69\u0488\u0003\u0002\u0002\u0002\u1d6a\u1d6b\u0007O\u0002", + "\u0002\u1d6b\u1d6c\u0007C\u0002\u0002\u1d6c\u1d6d\u0007Z\u0002\u0002", + "\u1d6d\u1d6e\u0007a\u0002\u0002\u1d6e\u1d6f\u0007O\u0002\u0002\u1d6f", + "\u1d70\u0007G\u0002\u0002\u1d70\u1d71\u0007O\u0002\u0002\u1d71\u1d72", + "\u0007Q\u0002\u0002\u1d72\u1d73\u0007T\u0002\u0002\u1d73\u1d74\u0007", + "[\u0002\u0002\u1d74\u1d75\u0007a\u0002\u0002\u1d75\u1d76\u0007R\u0002", + "\u0002\u1d76\u1d77\u0007G\u0002\u0002\u1d77\u1d78\u0007T\u0002\u0002", + "\u1d78\u1d79\u0007E\u0002\u0002\u1d79\u1d7a\u0007G\u0002\u0002\u1d7a", + "\u1d7b\u0007P\u0002\u0002\u1d7b\u1d7c\u0007V\u0002\u0002\u1d7c\u048a", + "\u0003\u0002\u0002\u0002\u1d7d\u1d7e\u0007O\u0002\u0002\u1d7e\u1d7f", + "\u0007C\u0002\u0002\u1d7f\u1d80\u0007Z\u0002\u0002\u1d80\u1d81\u0007", + "a\u0002\u0002\u1d81\u1d82\u0007R\u0002\u0002\u1d82\u1d83\u0007T\u0002", + "\u0002\u1d83\u1d84\u0007Q\u0002\u0002\u1d84\u1d85\u0007E\u0002\u0002", + "\u1d85\u1d86\u0007G\u0002\u0002\u1d86\u1d87\u0007U\u0002\u0002\u1d87", + "\u1d88\u0007U\u0002\u0002\u1d88\u1d89\u0007G\u0002\u0002\u1d89\u1d8a", + "\u0007U\u0002\u0002\u1d8a\u048c\u0003\u0002\u0002\u0002\u1d8b\u1d8c", + "\u0007O\u0002\u0002\u1d8c\u1d8d\u0007C\u0002\u0002\u1d8d\u1d8e\u0007", + "Z\u0002\u0002\u1d8e\u1d8f\u0007a\u0002\u0002\u1d8f\u1d90\u0007S\u0002", + "\u0002\u1d90\u1d91\u0007W\u0002\u0002\u1d91\u1d92\u0007G\u0002\u0002", + "\u1d92\u1d93\u0007W\u0002\u0002\u1d93\u1d94\u0007G\u0002\u0002\u1d94", + "\u1d95\u0007a\u0002\u0002\u1d95\u1d96\u0007T\u0002\u0002\u1d96\u1d97", + "\u0007G\u0002\u0002\u1d97\u1d98\u0007C\u0002\u0002\u1d98\u1d99\u0007", + "F\u0002\u0002\u1d99\u1d9a\u0007G\u0002\u0002\u1d9a\u1d9b\u0007T\u0002", + "\u0002\u1d9b\u1d9c\u0007U\u0002\u0002\u1d9c\u048e\u0003\u0002\u0002", + "\u0002\u1d9d\u1d9e\u0007O\u0002\u0002\u1d9e\u1d9f\u0007C\u0002\u0002", + "\u1d9f\u1da0\u0007Z\u0002\u0002\u1da0\u1da1\u0007a\u0002\u0002\u1da1", + "\u1da2\u0007T\u0002\u0002\u1da2\u1da3\u0007Q\u0002\u0002\u1da3\u1da4", + "\u0007N\u0002\u0002\u1da4\u1da5\u0007N\u0002\u0002\u1da5\u1da6\u0007", + "Q\u0002\u0002\u1da6\u1da7\u0007X\u0002\u0002\u1da7\u1da8\u0007G\u0002", + "\u0002\u1da8\u1da9\u0007T\u0002\u0002\u1da9\u1daa\u0007a\u0002\u0002", + "\u1daa\u1dab\u0007H\u0002\u0002\u1dab\u1dac\u0007K\u0002\u0002\u1dac", + "\u1dad\u0007N\u0002\u0002\u1dad\u1dae\u0007G\u0002\u0002\u1dae\u1daf", + "\u0007U\u0002\u0002\u1daf\u0490\u0003\u0002\u0002\u0002\u1db0\u1db1", + "\u0007O\u0002\u0002\u1db1\u1db2\u0007C\u0002\u0002\u1db2\u1db3\u0007", + "Z\u0002\u0002\u1db3\u1db4\u0007F\u0002\u0002\u1db4\u1db5\u0007Q\u0002", + "\u0002\u1db5\u1db6\u0007R\u0002\u0002\u1db6\u0492\u0003\u0002\u0002", + "\u0002\u1db7\u1db8\u0007O\u0002\u0002\u1db8\u1db9\u0007C\u0002\u0002", + "\u1db9\u1dba\u0007Z\u0002\u0002\u1dba\u1dbb\u0007T\u0002\u0002\u1dbb", + "\u1dbc\u0007G\u0002\u0002\u1dbc\u1dbd\u0007E\u0002\u0002\u1dbd\u1dbe", + "\u0007W\u0002\u0002\u1dbe\u1dbf\u0007T\u0002\u0002\u1dbf\u1dc0\u0007", + "U\u0002\u0002\u1dc0\u1dc1\u0007K\u0002\u0002\u1dc1\u1dc2\u0007Q\u0002", + "\u0002\u1dc2\u1dc3\u0007P\u0002\u0002\u1dc3\u0494\u0003\u0002\u0002", + "\u0002\u1dc4\u1dc5\u0007O\u0002\u0002\u1dc5\u1dc6\u0007C\u0002\u0002", + "\u1dc6\u1dc7\u0007Z\u0002\u0002\u1dc7\u1dc8\u0007U\u0002\u0002\u1dc8", + "\u1dc9\u0007K\u0002\u0002\u1dc9\u1dca\u0007\\\u0002\u0002\u1dca\u1dcb", + "\u0007G\u0002\u0002\u1dcb\u0496\u0003\u0002\u0002\u0002\u1dcc\u1dcd", + "\u0007O\u0002\u0002\u1dcd\u1dce\u0007D\u0002\u0002\u1dce\u0498\u0003", + "\u0002\u0002\u0002\u1dcf\u1dd0\u0007O\u0002\u0002\u1dd0\u1dd1\u0007", + "G\u0002\u0002\u1dd1\u1dd2\u0007F\u0002\u0002\u1dd2\u1dd3\u0007K\u0002", + "\u0002\u1dd3\u1dd4\u0007W\u0002\u0002\u1dd4\u1dd5\u0007O\u0002\u0002", + "\u1dd5\u049a\u0003\u0002\u0002\u0002\u1dd6\u1dd7\u0007O\u0002\u0002", + "\u1dd7\u1dd8\u0007G\u0002\u0002\u1dd8\u1dd9\u0007O\u0002\u0002\u1dd9", + "\u1dda\u0007Q\u0002\u0002\u1dda\u1ddb\u0007T\u0002\u0002\u1ddb\u1ddc", + "\u0007[\u0002\u0002\u1ddc\u1ddd\u0007a\u0002\u0002\u1ddd\u1dde\u0007", + "Q\u0002\u0002\u1dde\u1ddf\u0007R\u0002\u0002\u1ddf\u1de0\u0007V\u0002", + "\u0002\u1de0\u1de1\u0007K\u0002\u0002\u1de1\u1de2\u0007O\u0002\u0002", + "\u1de2\u1de3\u0007K\u0002\u0002\u1de3\u1de4\u0007\\\u0002\u0002\u1de4", + "\u1de5\u0007G\u0002\u0002\u1de5\u1de6\u0007F\u0002\u0002\u1de6\u1de7", + "\u0007a\u0002\u0002\u1de7\u1de8\u0007F\u0002\u0002\u1de8\u1de9\u0007", + "C\u0002\u0002\u1de9\u1dea\u0007V\u0002\u0002\u1dea\u1deb\u0007C\u0002", + "\u0002\u1deb\u049c\u0003\u0002\u0002\u0002\u1dec\u1ded\u0007O\u0002", + "\u0002\u1ded\u1dee\u0007G\u0002\u0002\u1dee\u1def\u0007U\u0002\u0002", + "\u1def\u1df0\u0007U\u0002\u0002\u1df0\u1df1\u0007C\u0002\u0002\u1df1", + "\u1df2\u0007I\u0002\u0002\u1df2\u1df3\u0007G\u0002\u0002\u1df3\u049e", + "\u0003\u0002\u0002\u0002\u1df4\u1df5\u0007O\u0002\u0002\u1df5\u1df6", + "\u0007K\u0002\u0002\u1df6\u1df7\u0007P\u0002\u0002\u1df7\u04a0\u0003", + "\u0002\u0002\u0002\u1df8\u1df9\u0007O\u0002\u0002\u1df9\u1dfa\u0007", + "K\u0002\u0002\u1dfa\u1dfb\u0007P\u0002\u0002\u1dfb\u1dfc\u0007a\u0002", + "\u0002\u1dfc\u1dfd\u0007C\u0002\u0002\u1dfd\u1dfe\u0007E\u0002\u0002", + "\u1dfe\u1dff\u0007V\u0002\u0002\u1dff\u1e00\u0007K\u0002\u0002\u1e00", + "\u1e01\u0007X\u0002\u0002\u1e01\u1e02\u0007G\u0002\u0002\u1e02\u1e03", + "\u0007a\u0002\u0002\u1e03\u1e04\u0007T\u0002\u0002\u1e04\u1e05\u0007", + "Q\u0002\u0002\u1e05\u1e06\u0007Y\u0002\u0002\u1e06\u1e07\u0007X\u0002", + "\u0002\u1e07\u1e08\u0007G\u0002\u0002\u1e08\u1e09\u0007T\u0002\u0002", + "\u1e09\u1e0a\u0007U\u0002\u0002\u1e0a\u1e0b\u0007K\u0002\u0002\u1e0b", + "\u1e0c\u0007Q\u0002\u0002\u1e0c\u1e0d\u0007P\u0002\u0002\u1e0d\u04a2", + "\u0003\u0002\u0002\u0002\u1e0e\u1e0f\u0007O\u0002\u0002\u1e0f\u1e10", + "\u0007K\u0002\u0002\u1e10\u1e11\u0007P\u0002\u0002\u1e11\u1e12\u0007", + "a\u0002\u0002\u1e12\u1e13\u0007E\u0002\u0002\u1e13\u1e14\u0007R\u0002", + "\u0002\u1e14\u1e15\u0007W\u0002\u0002\u1e15\u1e16\u0007a\u0002\u0002", + "\u1e16\u1e17\u0007R\u0002\u0002\u1e17\u1e18\u0007G\u0002\u0002\u1e18", + "\u1e19\u0007T\u0002\u0002\u1e19\u1e1a\u0007E\u0002\u0002\u1e1a\u1e1b", + "\u0007G\u0002\u0002\u1e1b\u1e1c\u0007P\u0002\u0002\u1e1c\u1e1d\u0007", + "V\u0002\u0002\u1e1d\u04a4\u0003\u0002\u0002\u0002\u1e1e\u1e1f\u0007", + "O\u0002\u0002\u1e1f\u1e20\u0007K\u0002\u0002\u1e20\u1e21\u0007P\u0002", + "\u0002\u1e21\u1e22\u0007a\u0002\u0002\u1e22\u1e23\u0007K\u0002\u0002", + "\u1e23\u1e24\u0007Q\u0002\u0002\u1e24\u1e25\u0007R\u0002\u0002\u1e25", + "\u1e26\u0007U\u0002\u0002\u1e26\u1e27\u0007a\u0002\u0002\u1e27\u1e28", + "\u0007R\u0002\u0002\u1e28\u1e29\u0007G\u0002\u0002\u1e29\u1e2a\u0007", + "T\u0002\u0002\u1e2a\u1e2b\u0007a\u0002\u0002\u1e2b\u1e2c\u0007X\u0002", + "\u0002\u1e2c\u1e2d\u0007Q\u0002\u0002\u1e2d\u1e2e\u0007N\u0002\u0002", + "\u1e2e\u1e2f\u0007W\u0002\u0002\u1e2f\u1e30\u0007O\u0002\u0002\u1e30", + "\u1e31\u0007G\u0002\u0002\u1e31\u04a6\u0003\u0002\u0002\u0002\u1e32", + "\u1e33\u0007O\u0002\u0002\u1e33\u1e34\u0007K\u0002\u0002\u1e34\u1e35", + "\u0007P\u0002\u0002\u1e35\u1e36\u0007a\u0002\u0002\u1e36\u1e37\u0007", + "O\u0002\u0002\u1e37\u1e38\u0007G\u0002\u0002\u1e38\u1e39\u0007O\u0002", + "\u0002\u1e39\u1e3a\u0007Q\u0002\u0002\u1e3a\u1e3b\u0007T\u0002\u0002", + "\u1e3b\u1e3c\u0007[\u0002\u0002\u1e3c\u1e3d\u0007a\u0002\u0002\u1e3d", + "\u1e3e\u0007R\u0002\u0002\u1e3e\u1e3f\u0007G\u0002\u0002\u1e3f\u1e40", + "\u0007T\u0002\u0002\u1e40\u1e41\u0007E\u0002\u0002\u1e41\u1e42\u0007", + "G\u0002\u0002\u1e42\u1e43\u0007P\u0002\u0002\u1e43\u1e44\u0007V\u0002", + "\u0002\u1e44\u04a8\u0003\u0002\u0002\u0002\u1e45\u1e46\u0007O\u0002", + "\u0002\u1e46\u1e47\u0007K\u0002\u0002\u1e47\u1e48\u0007P\u0002\u0002", + "\u1e48\u1e49\u0007W\u0002\u0002\u1e49\u1e4a\u0007V\u0002\u0002\u1e4a", + "\u1e4b\u0007G\u0002\u0002\u1e4b\u1e4c\u0007U\u0002\u0002\u1e4c\u04aa", + "\u0003\u0002\u0002\u0002\u1e4d\u1e4e\u0007O\u0002\u0002\u1e4e\u1e4f", + "\u0007K\u0002\u0002\u1e4f\u1e50\u0007T\u0002\u0002\u1e50\u1e51\u0007", + "T\u0002\u0002\u1e51\u1e52\u0007Q\u0002\u0002\u1e52\u1e53\u0007T\u0002", + "\u0002\u1e53\u1e54\u0007a\u0002\u0002\u1e54\u1e55\u0007C\u0002\u0002", + "\u1e55\u1e56\u0007F\u0002\u0002\u1e56\u1e57\u0007F\u0002\u0002\u1e57", + "\u1e58\u0007T\u0002\u0002\u1e58\u1e59\u0007G\u0002\u0002\u1e59\u1e5a", + "\u0007U\u0002\u0002\u1e5a\u1e5b\u0007U\u0002\u0002\u1e5b\u04ac\u0003", + "\u0002\u0002\u0002\u1e5c\u1e5d\u0007O\u0002\u0002\u1e5d\u1e5e\u0007", + "K\u0002\u0002\u1e5e\u1e5f\u0007Z\u0002\u0002\u1e5f\u1e60\u0007G\u0002", + "\u0002\u1e60\u1e61\u0007F\u0002\u0002\u1e61\u1e62\u0007a\u0002\u0002", + "\u1e62\u1e63\u0007R\u0002\u0002\u1e63\u1e64\u0007C\u0002\u0002\u1e64", + "\u1e65\u0007I\u0002\u0002\u1e65\u1e66\u0007G\u0002\u0002\u1e66\u1e67", + "\u0007a\u0002\u0002\u1e67\u1e68\u0007C\u0002\u0002\u1e68\u1e69\u0007", + "N\u0002\u0002\u1e69\u1e6a\u0007N\u0002\u0002\u1e6a\u1e6b\u0007Q\u0002", + "\u0002\u1e6b\u1e6c\u0007E\u0002\u0002\u1e6c\u1e6d\u0007C\u0002\u0002", + "\u1e6d\u1e6e\u0007V\u0002\u0002\u1e6e\u1e6f\u0007K\u0002\u0002\u1e6f", + "\u1e70\u0007Q\u0002\u0002\u1e70\u1e71\u0007P\u0002\u0002\u1e71\u04ae", + "\u0003\u0002\u0002\u0002\u1e72\u1e73\u0007O\u0002\u0002\u1e73\u1e74", + "\u0007Q\u0002\u0002\u1e74\u1e75\u0007F\u0002\u0002\u1e75\u1e76\u0007", + "G\u0002\u0002\u1e76\u04b0\u0003\u0002\u0002\u0002\u1e77\u1e78\u0007", + "O\u0002\u0002\u1e78\u1e79\u0007Q\u0002\u0002\u1e79\u1e7a\u0007F\u0002", + "\u0002\u1e7a\u1e7b\u0007K\u0002\u0002\u1e7b\u1e7c\u0007H\u0002\u0002", + "\u1e7c\u1e7d\u0007[\u0002\u0002\u1e7d\u04b2\u0003\u0002\u0002\u0002", + "\u1e7e\u1e7f\u0007O\u0002\u0002\u1e7f\u1e80\u0007Q\u0002\u0002\u1e80", + "\u1e81\u0007X\u0002\u0002\u1e81\u1e82\u0007G\u0002\u0002\u1e82\u04b4", + "\u0003\u0002\u0002\u0002\u1e83\u1e84\u0007O\u0002\u0002\u1e84\u1e85", + "\u0007W\u0002\u0002\u1e85\u1e86\u0007N\u0002\u0002\u1e86\u1e87\u0007", + "V\u0002\u0002\u1e87\u1e88\u0007K\u0002\u0002\u1e88\u1e89\u0007a\u0002", + "\u0002\u1e89\u1e8a\u0007W\u0002\u0002\u1e8a\u1e8b\u0007U\u0002\u0002", + "\u1e8b\u1e8c\u0007G\u0002\u0002\u1e8c\u1e8d\u0007T\u0002\u0002\u1e8d", + "\u04b6\u0003\u0002\u0002\u0002\u1e8e\u1e8f\u0007P\u0002\u0002\u1e8f", + "\u1e90\u0007C\u0002\u0002\u1e90\u1e91\u0007O\u0002\u0002\u1e91\u1e92", + "\u0007G\u0002\u0002\u1e92\u04b8\u0003\u0002\u0002\u0002\u1e93\u1e94", + "\u0007P\u0002\u0002\u1e94\u1e95\u0007G\u0002\u0002\u1e95\u1e96\u0007", + "U\u0002\u0002\u1e96\u1e97\u0007V\u0002\u0002\u1e97\u1e98\u0007G\u0002", + "\u0002\u1e98\u1e99\u0007F\u0002\u0002\u1e99\u1e9a\u0007a\u0002\u0002", + "\u1e9a\u1e9b\u0007V\u0002\u0002\u1e9b\u1e9c\u0007T\u0002\u0002\u1e9c", + "\u1e9d\u0007K\u0002\u0002\u1e9d\u1e9e\u0007I\u0002\u0002\u1e9e\u1e9f", + "\u0007I\u0002\u0002\u1e9f\u1ea0\u0007G\u0002\u0002\u1ea0\u1ea1\u0007", + "T\u0002\u0002\u1ea1\u1ea2\u0007U\u0002\u0002\u1ea2\u04ba\u0003\u0002", + "\u0002\u0002\u1ea3\u1ea4\u0007P\u0002\u0002\u1ea4\u1ea5\u0007G\u0002", + "\u0002\u1ea5\u1ea6\u0007Y\u0002\u0002\u1ea6\u1ea7\u0007a\u0002\u0002", + "\u1ea7\u1ea8\u0007C\u0002\u0002\u1ea8\u1ea9\u0007E\u0002\u0002\u1ea9", + "\u1eaa\u0007E\u0002\u0002\u1eaa\u1eab\u0007Q\u0002\u0002\u1eab\u1eac", + "\u0007W\u0002\u0002\u1eac\u1ead\u0007P\u0002\u0002\u1ead\u1eae\u0007", + "V\u0002\u0002\u1eae\u04bc\u0003\u0002\u0002\u0002\u1eaf\u1eb0\u0007", + "P\u0002\u0002\u1eb0\u1eb1\u0007G\u0002\u0002\u1eb1\u1eb2\u0007Y\u0002", + "\u0002\u1eb2\u1eb3\u0007a\u0002\u0002\u1eb3\u1eb4\u0007D\u0002\u0002", + "\u1eb4\u1eb5\u0007T\u0002\u0002\u1eb5\u1eb6\u0007Q\u0002\u0002\u1eb6", + "\u1eb7\u0007M\u0002\u0002\u1eb7\u1eb8\u0007G\u0002\u0002\u1eb8\u1eb9", + "\u0007T\u0002\u0002\u1eb9\u04be\u0003\u0002\u0002\u0002\u1eba\u1ebb", + "\u0007P\u0002\u0002\u1ebb\u1ebc\u0007G\u0002\u0002\u1ebc\u1ebd\u0007", + "Y\u0002\u0002\u1ebd\u1ebe\u0007a\u0002\u0002\u1ebe\u1ebf\u0007R\u0002", + "\u0002\u1ebf\u1ec0\u0007C\u0002\u0002\u1ec0\u1ec1\u0007U\u0002\u0002", + "\u1ec1\u1ec2\u0007U\u0002\u0002\u1ec2\u1ec3\u0007Y\u0002\u0002\u1ec3", + "\u1ec4\u0007Q\u0002\u0002\u1ec4\u1ec5\u0007T\u0002\u0002\u1ec5\u1ec6", + "\u0007F\u0002\u0002\u1ec6\u04c0\u0003\u0002\u0002\u0002\u1ec7\u1ec8", + "\u0007P\u0002\u0002\u1ec8\u1ec9\u0007G\u0002\u0002\u1ec9\u1eca\u0007", + "Z\u0002\u0002\u1eca\u1ecb\u0007V\u0002\u0002\u1ecb\u04c2\u0003\u0002", + "\u0002\u0002\u1ecc\u1ecd\u0007P\u0002\u0002\u1ecd\u1ece\u0007Q\u0002", + "\u0002\u1ece\u04c4\u0003\u0002\u0002\u0002\u1ecf\u1ed0\u0007P\u0002", + "\u0002\u1ed0\u1ed1\u0007Q\u0002\u0002\u1ed1\u1ed2\u0007a\u0002\u0002", + "\u1ed2\u1ed3\u0007V\u0002\u0002\u1ed3\u1ed4\u0007T\u0002\u0002\u1ed4", + "\u1ed5\u0007W\u0002\u0002\u1ed5\u1ed6\u0007P\u0002\u0002\u1ed6\u1ed7", + "\u0007E\u0002\u0002\u1ed7\u1ed8\u0007C\u0002\u0002\u1ed8\u1ed9\u0007", + "V\u0002\u0002\u1ed9\u1eda\u0007G\u0002\u0002\u1eda\u04c6\u0003\u0002", + "\u0002\u0002\u1edb\u1edc\u0007P\u0002\u0002\u1edc\u1edd\u0007Q\u0002", + "\u0002\u1edd\u1ede\u0007a\u0002\u0002\u1ede\u1edf\u0007Y\u0002\u0002", + "\u1edf\u1ee0\u0007C\u0002\u0002\u1ee0\u1ee1\u0007K\u0002\u0002\u1ee1", + "\u1ee2\u0007V\u0002\u0002\u1ee2\u04c8\u0003\u0002\u0002\u0002\u1ee3", + "\u1ee4\u0007P\u0002\u0002\u1ee4\u1ee5\u0007Q\u0002\u0002\u1ee5\u1ee6", + "\u0007E\u0002\u0002\u1ee6\u1ee7\u0007Q\u0002\u0002\u1ee7\u1ee8\u0007", + "W\u0002\u0002\u1ee8\u1ee9\u0007P\u0002\u0002\u1ee9\u1eea\u0007V\u0002", + "\u0002\u1eea\u04ca\u0003\u0002\u0002\u0002\u1eeb\u1eec\u0007P\u0002", + "\u0002\u1eec\u1eed\u0007Q\u0002\u0002\u1eed\u1eee\u0007F\u0002\u0002", + "\u1eee\u1eef\u0007G\u0002\u0002\u1eef\u1ef0\u0007U\u0002\u0002\u1ef0", + "\u04cc\u0003\u0002\u0002\u0002\u1ef1\u1ef2\u0007P\u0002\u0002\u1ef2", + "\u1ef3\u0007Q\u0002\u0002\u1ef3\u1ef4\u0007G\u0002\u0002\u1ef4\u1ef5", + "\u0007Z\u0002\u0002\u1ef5\u1ef6\u0007R\u0002\u0002\u1ef6\u1ef7\u0007", + "C\u0002\u0002\u1ef7\u1ef8\u0007P\u0002\u0002\u1ef8\u1ef9\u0007F\u0002", + "\u0002\u1ef9\u04ce\u0003\u0002\u0002\u0002\u1efa\u1efb\u0007P\u0002", + "\u0002\u1efb\u1efc\u0007Q\u0002\u0002\u1efc\u1efd\u0007P\u0002\u0002", + "\u1efd\u1efe\u0007a\u0002\u0002\u1efe\u1eff\u0007V\u0002\u0002\u1eff", + "\u1f00\u0007T\u0002\u0002\u1f00\u1f01\u0007C\u0002\u0002\u1f01\u1f02", + "\u0007P\u0002\u0002\u1f02\u1f03\u0007U\u0002\u0002\u1f03\u1f04\u0007", + "C\u0002\u0002\u1f04\u1f05\u0007E\u0002\u0002\u1f05\u1f06\u0007V\u0002", + "\u0002\u1f06\u1f07\u0007G\u0002\u0002\u1f07\u1f08\u0007F\u0002\u0002", + "\u1f08\u1f09\u0007a\u0002\u0002\u1f09\u1f0a\u0007C\u0002\u0002\u1f0a", + "\u1f0b\u0007E\u0002\u0002\u1f0b\u1f0c\u0007E\u0002\u0002\u1f0c\u1f0d", + "\u0007G\u0002\u0002\u1f0d\u1f0e\u0007U\u0002\u0002\u1f0e\u1f0f\u0007", + "U\u0002\u0002\u1f0f\u04d0\u0003\u0002\u0002\u0002\u1f10\u1f11\u0007", + "P\u0002\u0002\u1f11\u1f12\u0007Q\u0002\u0002\u1f12\u1f13\u0007T\u0002", + "\u0002\u1f13\u1f14\u0007G\u0002\u0002\u1f14\u1f15\u0007E\u0002\u0002", + "\u1f15\u1f16\u0007Q\u0002\u0002\u1f16\u1f17\u0007O\u0002\u0002\u1f17", + "\u1f18\u0007R\u0002\u0002\u1f18\u1f19\u0007W\u0002\u0002\u1f19\u1f1a", + "\u0007V\u0002\u0002\u1f1a\u1f1b\u0007G\u0002\u0002\u1f1b\u04d2\u0003", + "\u0002\u0002\u0002\u1f1c\u1f1d\u0007P\u0002\u0002\u1f1d\u1f1e\u0007", + "Q\u0002\u0002\u1f1e\u1f1f\u0007T\u0002\u0002\u1f1f\u1f20\u0007G\u0002", + "\u0002\u1f20\u1f21\u0007E\u0002\u0002\u1f21\u1f22\u0007Q\u0002\u0002", + "\u1f22\u1f23\u0007X\u0002\u0002\u1f23\u1f24\u0007G\u0002\u0002\u1f24", + "\u1f25\u0007T\u0002\u0002\u1f25\u1f26\u0007[\u0002\u0002\u1f26\u04d4", + "\u0003\u0002\u0002\u0002\u1f27\u1f28\u0007P\u0002\u0002\u1f28\u1f29", + "\u0007Q\u0002\u0002\u1f29\u1f2a\u0007Y\u0002\u0002\u1f2a\u1f2b\u0007", + "C\u0002\u0002\u1f2b\u1f2c\u0007K\u0002\u0002\u1f2c\u1f2d\u0007V\u0002", + "\u0002\u1f2d\u04d6\u0003\u0002\u0002\u0002\u1f2e\u1f2f\u0007P\u0002", + "\u0002\u1f2f\u1f30\u0007V\u0002\u0002\u1f30\u1f31\u0007K\u0002\u0002", + "\u1f31\u1f32\u0007N\u0002\u0002\u1f32\u1f33\u0007G\u0002\u0002\u1f33", + "\u04d8\u0003\u0002\u0002\u0002\u1f34\u1f35\u0007P\u0002\u0002\u1f35", + "\u1f36\u0007W\u0002\u0002\u1f36\u1f37\u0007O\u0002\u0002\u1f37\u1f38", + "\u0007C\u0002\u0002\u1f38\u1f39\u0007P\u0002\u0002\u1f39\u1f3a\u0007", + "Q\u0002\u0002\u1f3a\u1f3b\u0007F\u0002\u0002\u1f3b\u1f3c\u0007G\u0002", + "\u0002\u1f3c\u04da\u0003\u0002\u0002\u0002\u1f3d\u1f3e\u0007P\u0002", + "\u0002\u1f3e\u1f3f\u0007W\u0002\u0002\u1f3f\u1f40\u0007O\u0002\u0002", + "\u1f40\u1f41\u0007D\u0002\u0002\u1f41\u1f42\u0007G\u0002\u0002\u1f42", + "\u1f43\u0007T\u0002\u0002\u1f43\u04dc\u0003\u0002\u0002\u0002\u1f44", + "\u1f45\u0007P\u0002\u0002\u1f45\u1f46\u0007W\u0002\u0002\u1f46\u1f47", + "\u0007O\u0002\u0002\u1f47\u1f48\u0007G\u0002\u0002\u1f48\u1f49\u0007", + "T\u0002\u0002\u1f49\u1f4a\u0007K\u0002\u0002\u1f4a\u1f4b\u0007E\u0002", + "\u0002\u1f4b\u1f4c\u0007a\u0002\u0002\u1f4c\u1f4d\u0007T\u0002\u0002", + "\u1f4d\u1f4e\u0007Q\u0002\u0002\u1f4e\u1f4f\u0007W\u0002\u0002\u1f4f", + "\u1f50\u0007P\u0002\u0002\u1f50\u1f51\u0007F\u0002\u0002\u1f51\u1f52", + "\u0007C\u0002\u0002\u1f52\u1f53\u0007D\u0002\u0002\u1f53\u1f54\u0007", + "Q\u0002\u0002\u1f54\u1f55\u0007T\u0002\u0002\u1f55\u1f56\u0007V\u0002", + "\u0002\u1f56\u04de\u0003\u0002\u0002\u0002\u1f57\u1f58\u0007Q\u0002", + "\u0002\u1f58\u1f59\u0007D\u0002\u0002\u1f59\u1f5a\u0007L\u0002\u0002", + "\u1f5a\u1f5b\u0007G\u0002\u0002\u1f5b\u1f5c\u0007E\u0002\u0002\u1f5c", + "\u1f5d\u0007V\u0002\u0002\u1f5d\u04e0\u0003\u0002\u0002\u0002\u1f5e", + "\u1f5f\u0007Q\u0002\u0002\u1f5f\u1f60\u0007H\u0002\u0002\u1f60\u1f61", + "\u0007H\u0002\u0002\u1f61\u1f62\u0007N\u0002\u0002\u1f62\u1f63\u0007", + "K\u0002\u0002\u1f63\u1f64\u0007P\u0002\u0002\u1f64\u1f65\u0007G\u0002", + "\u0002\u1f65\u04e2\u0003\u0002\u0002\u0002\u1f66\u1f67\u0007Q\u0002", + "\u0002\u1f67\u1f68\u0007H\u0002\u0002\u1f68\u1f69\u0007H\u0002\u0002", + "\u1f69\u1f6a\u0007U\u0002\u0002\u1f6a\u1f6b\u0007G\u0002\u0002\u1f6b", + "\u1f6c\u0007V\u0002\u0002\u1f6c\u04e4\u0003\u0002\u0002\u0002\u1f6d", + "\u1f6e\u0007Q\u0002\u0002\u1f6e\u1f6f\u0007N\u0002\u0002\u1f6f\u1f70", + "\u0007F\u0002\u0002\u1f70\u1f71\u0007a\u0002\u0002\u1f71\u1f72\u0007", + "C\u0002\u0002\u1f72\u1f73\u0007E\u0002\u0002\u1f73\u1f74\u0007E\u0002", + "\u0002\u1f74\u1f75\u0007Q\u0002\u0002\u1f75\u1f76\u0007W\u0002\u0002", + "\u1f76\u1f77\u0007P\u0002\u0002\u1f77\u1f78\u0007V\u0002\u0002\u1f78", + "\u04e6\u0003\u0002\u0002\u0002\u1f79\u1f7a\u0007Q\u0002\u0002\u1f7a", + "\u1f7b\u0007P\u0002\u0002\u1f7b\u1f7c\u0007N\u0002\u0002\u1f7c\u1f7d", + "\u0007K\u0002\u0002\u1f7d\u1f7e\u0007P\u0002\u0002\u1f7e\u1f7f\u0007", + "G\u0002\u0002\u1f7f\u04e8\u0003\u0002\u0002\u0002\u1f80\u1f81\u0007", + "Q\u0002\u0002\u1f81\u1f82\u0007P\u0002\u0002\u1f82\u1f83\u0007N\u0002", + "\u0002\u1f83\u1f84\u0007[\u0002\u0002\u1f84\u04ea\u0003\u0002\u0002", + "\u0002\u1f85\u1f86\u0007Q\u0002\u0002\u1f86\u1f87\u0007R\u0002\u0002", + "\u1f87\u1f88\u0007G\u0002\u0002\u1f88\u1f89\u0007P\u0002\u0002\u1f89", + "\u1f8a\u0007a\u0002\u0002\u1f8a\u1f8b\u0007G\u0002\u0002\u1f8b\u1f8c", + "\u0007Z\u0002\u0002\u1f8c\u1f8d\u0007K\u0002\u0002\u1f8d\u1f8e\u0007", + "U\u0002\u0002\u1f8e\u1f8f\u0007V\u0002\u0002\u1f8f\u1f90\u0007K\u0002", + "\u0002\u1f90\u1f91\u0007P\u0002\u0002\u1f91\u1f92\u0007I\u0002\u0002", + "\u1f92\u04ec\u0003\u0002\u0002\u0002\u1f93\u1f94\u0007Q\u0002\u0002", + "\u1f94\u1f95\u0007R\u0002\u0002\u1f95\u1f96\u0007V\u0002\u0002\u1f96", + "\u1f97\u0007K\u0002\u0002\u1f97\u1f98\u0007O\u0002\u0002\u1f98\u1f99", + "\u0007K\u0002\u0002\u1f99\u1f9a\u0007U\u0002\u0002\u1f9a\u1f9b\u0007", + "V\u0002\u0002\u1f9b\u1f9c\u0007K\u0002\u0002\u1f9c\u1f9d\u0007E\u0002", + "\u0002\u1f9d\u04ee\u0003\u0002\u0002\u0002\u1f9e\u1f9f\u0007Q\u0002", + "\u0002\u1f9f\u1fa0\u0007R\u0002\u0002\u1fa0\u1fa1\u0007V\u0002\u0002", + "\u1fa1\u1fa2\u0007K\u0002\u0002\u1fa2\u1fa3\u0007O\u0002\u0002\u1fa3", + "\u1fa4\u0007K\u0002\u0002\u1fa4\u1fa5\u0007\\\u0002\u0002\u1fa5\u1fa6", + "\u0007G\u0002\u0002\u1fa6\u04f0\u0003\u0002\u0002\u0002\u1fa7\u1fa8", + "\u0007Q\u0002\u0002\u1fa8\u1fa9\u0007W\u0002\u0002\u1fa9\u1faa\u0007", + "V\u0002\u0002\u1faa\u04f2\u0003\u0002\u0002\u0002\u1fab\u1fac\u0007", + "Q\u0002\u0002\u1fac\u1fad\u0007W\u0002\u0002\u1fad\u1fae\u0007V\u0002", + "\u0002\u1fae\u1faf\u0007R\u0002\u0002\u1faf\u1fb0\u0007W\u0002\u0002", + "\u1fb0\u1fb1\u0007V\u0002\u0002\u1fb1\u04f4\u0003\u0002\u0002\u0002", + "\u1fb2\u1fb3\u0007Q\u0002\u0002\u1fb3\u1fb4\u0007X\u0002\u0002\u1fb4", + "\u1fb5\u0007G\u0002\u0002\u1fb5\u1fb6\u0007T\u0002\u0002\u1fb6\u1fb7", + "\u0007T\u0002\u0002\u1fb7\u1fb8\u0007K\u0002\u0002\u1fb8\u1fb9\u0007", + "F\u0002\u0002\u1fb9\u1fba\u0007G\u0002\u0002\u1fba\u04f6\u0003\u0002", + "\u0002\u0002\u1fbb\u1fbc\u0007Q\u0002\u0002\u1fbc\u1fbd\u0007Y\u0002", + "\u0002\u1fbd\u1fbe\u0007P\u0002\u0002\u1fbe\u1fbf\u0007G\u0002\u0002", + "\u1fbf\u1fc0\u0007T\u0002\u0002\u1fc0\u04f8\u0003\u0002\u0002\u0002", + "\u1fc1\u1fc2\u0007R\u0002\u0002\u1fc2\u1fc3\u0007C\u0002\u0002\u1fc3", + "\u1fc4\u0007I\u0002\u0002\u1fc4\u1fc5\u0007G\u0002\u0002\u1fc5\u1fc6", + "\u0007a\u0002\u0002\u1fc6\u1fc7\u0007X\u0002\u0002\u1fc7\u1fc8\u0007", + "G\u0002\u0002\u1fc8\u1fc9\u0007T\u0002\u0002\u1fc9\u1fca\u0007K\u0002", + "\u0002\u1fca\u1fcb\u0007H\u0002\u0002\u1fcb\u1fcc\u0007[\u0002\u0002", + "\u1fcc\u04fa\u0003\u0002\u0002\u0002\u1fcd\u1fce\u0007R\u0002\u0002", + "\u1fce\u1fcf\u0007C\u0002\u0002\u1fcf\u1fd0\u0007T\u0002\u0002\u1fd0", + "\u1fd1\u0007C\u0002\u0002\u1fd1\u1fd2\u0007O\u0002\u0002\u1fd2\u1fd3", + "\u0007G\u0002\u0002\u1fd3\u1fd4\u0007V\u0002\u0002\u1fd4\u1fd5\u0007", + "G\u0002\u0002\u1fd5\u1fd6\u0007T\u0002\u0002\u1fd6\u1fd7\u0007K\u0002", + "\u0002\u1fd7\u1fd8\u0007\\\u0002\u0002\u1fd8\u1fd9\u0007C\u0002\u0002", + "\u1fd9\u1fda\u0007V\u0002\u0002\u1fda\u1fdb\u0007K\u0002\u0002\u1fdb", + "\u1fdc\u0007Q\u0002\u0002\u1fdc\u1fdd\u0007P\u0002\u0002\u1fdd\u04fc", + "\u0003\u0002\u0002\u0002\u1fde\u1fdf\u0007R\u0002\u0002\u1fdf\u1fe0", + "\u0007C\u0002\u0002\u1fe0\u1fe1\u0007T\u0002\u0002\u1fe1\u1fe2\u0007", + "V\u0002\u0002\u1fe2\u1fe3\u0007K\u0002\u0002\u1fe3\u1fe4\u0007V\u0002", + "\u0002\u1fe4\u1fe5\u0007K\u0002\u0002\u1fe5\u1fe6\u0007Q\u0002\u0002", + "\u1fe6\u1fe7\u0007P\u0002\u0002\u1fe7\u04fe\u0003\u0002\u0002\u0002", + "\u1fe8\u1fe9\u0007R\u0002\u0002\u1fe9\u1fea\u0007C\u0002\u0002\u1fea", + "\u1feb\u0007T\u0002\u0002\u1feb\u1fec\u0007V\u0002\u0002\u1fec\u1fed", + "\u0007K\u0002\u0002\u1fed\u1fee\u0007V\u0002\u0002\u1fee\u1fef\u0007", + "K\u0002\u0002\u1fef\u1ff0\u0007Q\u0002\u0002\u1ff0\u1ff1\u0007P\u0002", + "\u0002\u1ff1\u1ff2\u0007U\u0002\u0002\u1ff2\u0500\u0003\u0002\u0002", + "\u0002\u1ff3\u1ff4\u0007R\u0002\u0002\u1ff4\u1ff5\u0007C\u0002\u0002", + "\u1ff5\u1ff6\u0007T\u0002\u0002\u1ff6\u1ff7\u0007V\u0002\u0002\u1ff7", + "\u1ff8\u0007P\u0002\u0002\u1ff8\u1ff9\u0007G\u0002\u0002\u1ff9\u1ffa", + "\u0007T\u0002\u0002\u1ffa\u0502\u0003\u0002\u0002\u0002\u1ffb\u1ffc", + "\u0007R\u0002\u0002\u1ffc\u1ffd\u0007C\u0002\u0002\u1ffd\u1ffe\u0007", + "V\u0002\u0002\u1ffe\u1fff\u0007J\u0002\u0002\u1fff\u0504\u0003\u0002", + "\u0002\u0002\u2000\u2001\u0007R\u0002\u0002\u2001\u2002\u0007Q\u0002", + "\u0002\u2002\u2003\u0007K\u0002\u0002\u2003\u2004\u0007U\u0002\u0002", + "\u2004\u2005\u0007Q\u0002\u0002\u2005\u2006\u0007P\u0002\u0002\u2006", + "\u2007\u0007a\u0002\u0002\u2007\u2008\u0007O\u0002\u0002\u2008\u2009", + "\u0007G\u0002\u0002\u2009\u200a\u0007U\u0002\u0002\u200a\u200b\u0007", + "U\u0002\u0002\u200b\u200c\u0007C\u0002\u0002\u200c\u200d\u0007I\u0002", + "\u0002\u200d\u200e\u0007G\u0002\u0002\u200e\u200f\u0007a\u0002\u0002", + "\u200f\u2010\u0007J\u0002\u0002\u2010\u2011\u0007C\u0002\u0002\u2011", + "\u2012\u0007P\u0002\u0002\u2012\u2013\u0007F\u0002\u0002\u2013\u2014", + "\u0007N\u0002\u0002\u2014\u2015\u0007K\u0002\u0002\u2015\u2016\u0007", + "P\u0002\u0002\u2016\u2017\u0007I\u0002\u0002\u2017\u0506\u0003\u0002", + "\u0002\u0002\u2018\u2019\u0007R\u0002\u0002\u2019\u201a\u0007Q\u0002", + "\u0002\u201a\u201b\u0007Q\u0002\u0002\u201b\u201c\u0007N\u0002\u0002", + "\u201c\u0508\u0003\u0002\u0002\u0002\u201d\u201e\u0007R\u0002\u0002", + "\u201e\u201f\u0007Q\u0002\u0002\u201f\u2020\u0007T\u0002\u0002\u2020", + "\u2021\u0007V\u0002\u0002\u2021\u050a\u0003\u0002\u0002\u0002\u2022", + "\u2023\u0007R\u0002\u0002\u2023\u2024\u0007T\u0002\u0002\u2024\u2025", + "\u0007G\u0002\u0002\u2025\u2026\u0007E\u0002\u0002\u2026\u2027\u0007", + "G\u0002\u0002\u2027\u2028\u0007F\u0002\u0002\u2028\u2029\u0007K\u0002", + "\u0002\u2029\u202a\u0007P\u0002\u0002\u202a\u202b\u0007I\u0002\u0002", + "\u202b\u050c\u0003\u0002\u0002\u0002\u202c\u202d\u0007R\u0002\u0002", + "\u202d\u202e\u0007T\u0002\u0002\u202e\u202f\u0007K\u0002\u0002\u202f", + "\u2030\u0007O\u0002\u0002\u2030\u2031\u0007C\u0002\u0002\u2031\u2032", + "\u0007T\u0002\u0002\u2032\u2033\u0007[\u0002\u0002\u2033\u2034\u0007", + "a\u0002\u0002\u2034\u2035\u0007T\u0002\u0002\u2035\u2036\u0007Q\u0002", + "\u0002\u2036\u2037\u0007N\u0002\u0002\u2037\u2038\u0007G\u0002\u0002", + "\u2038\u050e\u0003\u0002\u0002\u0002\u2039\u203a\u0007R\u0002\u0002", + "\u203a\u203b\u0007T\u0002\u0002\u203b\u203c\u0007K\u0002\u0002\u203c", + "\u203d\u0007Q\u0002\u0002\u203d\u203e\u0007T\u0002\u0002\u203e\u0510", + "\u0003\u0002\u0002\u0002\u203f\u2040\u0007R\u0002\u0002\u2040\u2041", + "\u0007T\u0002\u0002\u2041\u2042\u0007K\u0002\u0002\u2042\u2043\u0007", + "Q\u0002\u0002\u2043\u2044\u0007T\u0002\u0002\u2044\u2045\u0007K\u0002", + "\u0002\u2045\u2046\u0007V\u0002\u0002\u2046\u2047\u0007[\u0002\u0002", + "\u2047\u0512\u0003\u0002\u0002\u0002\u2048\u2049\u0007R\u0002\u0002", + "\u2049\u204a\u0007T\u0002\u0002\u204a\u204b\u0007K\u0002\u0002\u204b", + "\u204c\u0007Q\u0002\u0002\u204c\u204d\u0007T\u0002\u0002\u204d\u204e", + "\u0007K\u0002\u0002\u204e\u204f\u0007V\u0002\u0002\u204f\u2050\u0007", + "[\u0002\u0002\u2050\u2051\u0007a\u0002\u0002\u2051\u2052\u0007N\u0002", + "\u0002\u2052\u2053\u0007G\u0002\u0002\u2053\u2054\u0007X\u0002\u0002", + "\u2054\u2055\u0007G\u0002\u0002\u2055\u2056\u0007N\u0002\u0002\u2056", + "\u0514\u0003\u0002\u0002\u0002\u2057\u2058\u0007R\u0002\u0002\u2058", + "\u2059\u0007T\u0002\u0002\u2059\u205a\u0007K\u0002\u0002\u205a\u205b", + "\u0007X\u0002\u0002\u205b\u205c\u0007C\u0002\u0002\u205c\u205d\u0007", + "V\u0002\u0002\u205d\u205e\u0007G\u0002\u0002\u205e\u0516\u0003\u0002", + "\u0002\u0002\u205f\u2060\u0007R\u0002\u0002\u2060\u2061\u0007T\u0002", + "\u0002\u2061\u2062\u0007K\u0002\u0002\u2062\u2063\u0007X\u0002\u0002", + "\u2063\u2064\u0007C\u0002\u0002\u2064\u2065\u0007V\u0002\u0002\u2065", + "\u2066\u0007G\u0002\u0002\u2066\u2067\u0007a\u0002\u0002\u2067\u2068", + "\u0007M\u0002\u0002\u2068\u2069\u0007G\u0002\u0002\u2069\u206a\u0007", + "[\u0002\u0002\u206a\u0518\u0003\u0002\u0002\u0002\u206b\u206c\u0007", + "R\u0002\u0002\u206c\u206d\u0007T\u0002\u0002\u206d\u206e\u0007K\u0002", + "\u0002\u206e\u206f\u0007X\u0002\u0002\u206f\u2070\u0007K\u0002\u0002", + "\u2070\u2071\u0007N\u0002\u0002\u2071\u2072\u0007G\u0002\u0002\u2072", + "\u2073\u0007I\u0002\u0002\u2073\u2074\u0007G\u0002\u0002\u2074\u2075", + "\u0007U\u0002\u0002\u2075\u051a\u0003\u0002\u0002\u0002\u2076\u2077", + "\u0007R\u0002\u0002\u2077\u2078\u0007T\u0002\u0002\u2078\u2079\u0007", + "Q\u0002\u0002\u2079\u207a\u0007E\u0002\u0002\u207a\u207b\u0007G\u0002", + "\u0002\u207b\u207c\u0007F\u0002\u0002\u207c\u207d\u0007W\u0002\u0002", + "\u207d\u207e\u0007T\u0002\u0002\u207e\u207f\u0007G\u0002\u0002\u207f", + "\u2080\u0007a\u0002\u0002\u2080\u2081\u0007P\u0002\u0002\u2081\u2082", + "\u0007C\u0002\u0002\u2082\u2083\u0007O\u0002\u0002\u2083\u2084\u0007", + "G\u0002\u0002\u2084\u051c\u0003\u0002\u0002\u0002\u2085\u2086\u0007", + "R\u0002\u0002\u2086\u2087\u0007T\u0002\u0002\u2087\u2088\u0007Q\u0002", + "\u0002\u2088\u2089\u0007R\u0002\u0002\u2089\u208a\u0007G\u0002\u0002", + "\u208a\u208b\u0007T\u0002\u0002\u208b\u208c\u0007V\u0002\u0002\u208c", + "\u208d\u0007[\u0002\u0002\u208d\u051e\u0003\u0002\u0002\u0002\u208e", + "\u208f\u0007R\u0002\u0002\u208f\u2090\u0007T\u0002\u0002\u2090\u2091", + "\u0007Q\u0002\u0002\u2091\u2092\u0007X\u0002\u0002\u2092\u2093\u0007", + "K\u0002\u0002\u2093\u2094\u0007F\u0002\u0002\u2094\u2095\u0007G\u0002", + "\u0002\u2095\u2096\u0007T\u0002\u0002\u2096\u0520\u0003\u0002\u0002", + "\u0002\u2097\u2098\u0007R\u0002\u0002\u2098\u2099\u0007T\u0002\u0002", + "\u2099\u209a\u0007Q\u0002\u0002\u209a\u209b\u0007X\u0002\u0002\u209b", + "\u209c\u0007K\u0002\u0002\u209c\u209d\u0007F\u0002\u0002\u209d\u209e", + "\u0007G\u0002\u0002\u209e\u209f\u0007T\u0002\u0002\u209f\u20a0\u0007", + "a\u0002\u0002\u20a0\u20a1\u0007M\u0002\u0002\u20a1\u20a2\u0007G\u0002", + "\u0002\u20a2\u20a3\u0007[\u0002\u0002\u20a3\u20a4\u0007a\u0002\u0002", + "\u20a4\u20a5\u0007P\u0002\u0002\u20a5\u20a6\u0007C\u0002\u0002\u20a6", + "\u20a7\u0007O\u0002\u0002\u20a7\u20a8\u0007G\u0002\u0002\u20a8\u0522", + "\u0003\u0002\u0002\u0002\u20a9\u20aa\u0007S\u0002\u0002\u20aa\u20ab", + "\u0007W\u0002\u0002\u20ab\u20ac\u0007G\u0002\u0002\u20ac\u20ad\u0007", + "T\u0002\u0002\u20ad\u20ae\u0007[\u0002\u0002\u20ae\u0524\u0003\u0002", + "\u0002\u0002\u20af\u20b0\u0007S\u0002\u0002\u20b0\u20b1\u0007W\u0002", + "\u0002\u20b1\u20b2\u0007G\u0002\u0002\u20b2\u20b3\u0007W\u0002\u0002", + "\u20b3\u20b4\u0007G\u0002\u0002\u20b4\u0526\u0003\u0002\u0002\u0002", + "\u20b5\u20b6\u0007S\u0002\u0002\u20b6\u20b7\u0007W\u0002\u0002\u20b7", + "\u20b8\u0007G\u0002\u0002\u20b8\u20b9\u0007W\u0002\u0002\u20b9\u20ba", + "\u0007G\u0002\u0002\u20ba\u20bb\u0007a\u0002\u0002\u20bb\u20bc\u0007", + "F\u0002\u0002\u20bc\u20bd\u0007G\u0002\u0002\u20bd\u20be\u0007N\u0002", + "\u0002\u20be\u20bf\u0007C\u0002\u0002\u20bf\u20c0\u0007[\u0002\u0002", + "\u20c0\u0528\u0003\u0002\u0002\u0002\u20c1\u20c2\u0007S\u0002\u0002", + "\u20c2\u20c3\u0007W\u0002\u0002\u20c3\u20c4\u0007Q\u0002\u0002\u20c4", + "\u20c5\u0007V\u0002\u0002\u20c5\u20c6\u0007G\u0002\u0002\u20c6\u20c7", + "\u0007F\u0002\u0002\u20c7\u20c8\u0007a\u0002\u0002\u20c8\u20c9\u0007", + "K\u0002\u0002\u20c9\u20ca\u0007F\u0002\u0002\u20ca\u20cb\u0007G\u0002", + "\u0002\u20cb\u20cc\u0007P\u0002\u0002\u20cc\u20cd\u0007V\u0002\u0002", + "\u20cd\u20ce\u0007K\u0002\u0002\u20ce\u20cf\u0007H\u0002\u0002\u20cf", + "\u20d0\u0007K\u0002\u0002\u20d0\u20d1\u0007G\u0002\u0002\u20d1\u20d2", + "\u0007T\u0002\u0002\u20d2\u052a\u0003\u0002\u0002\u0002\u20d3\u20d4", + "\u0007T\u0002\u0002\u20d4\u20d5\u0007C\u0002\u0002\u20d5\u20d6\u0007", + "P\u0002\u0002\u20d6\u20d7\u0007I\u0002\u0002\u20d7\u20d8\u0007G\u0002", + "\u0002\u20d8\u052c\u0003\u0002\u0002\u0002\u20d9\u20da\u0007T\u0002", + "\u0002\u20da\u20db\u0007C\u0002\u0002\u20db\u20dc\u0007P\u0002\u0002", + "\u20dc\u20dd\u0007M\u0002\u0002\u20dd\u052e\u0003\u0002\u0002\u0002", + "\u20de\u20df\u0007T\u0002\u0002\u20df\u20e0\u0007E\u0002\u0002\u20e0", + "\u20e1\u00074\u0002\u0002\u20e1\u0530\u0003\u0002\u0002\u0002\u20e2", + "\u20e3\u0007T\u0002\u0002\u20e3\u20e4\u0007E\u0002\u0002\u20e4\u20e5", + "\u00076\u0002\u0002\u20e5\u0532\u0003\u0002\u0002\u0002\u20e6\u20e7", + "\u0007T\u0002\u0002\u20e7\u20e8\u0007E\u0002\u0002\u20e8\u20e9\u0007", + "6\u0002\u0002\u20e9\u20ea\u0007a\u0002\u0002\u20ea\u20eb\u00073\u0002", + "\u0002\u20eb\u20ec\u00074\u0002\u0002\u20ec\u20ed\u0007:\u0002\u0002", + "\u20ed\u0534\u0003\u0002\u0002\u0002\u20ee\u20ef\u0007T\u0002\u0002", + "\u20ef\u20f0\u0007G\u0002\u0002\u20f0\u20f1\u0007C\u0002\u0002\u20f1", + "\u20f2\u0007F\u0002\u0002\u20f2\u20f3\u0007a\u0002\u0002\u20f3\u20f4", + "\u0007E\u0002\u0002\u20f4\u20f5\u0007Q\u0002\u0002\u20f5\u20f6\u0007", + "O\u0002\u0002\u20f6\u20f7\u0007O\u0002\u0002\u20f7\u20f8\u0007K\u0002", + "\u0002\u20f8\u20f9\u0007V\u0002\u0002\u20f9\u20fa\u0007V\u0002\u0002", + "\u20fa\u20fb\u0007G\u0002\u0002\u20fb\u20fc\u0007F\u0002\u0002\u20fc", + "\u20fd\u0007a\u0002\u0002\u20fd\u20fe\u0007U\u0002\u0002\u20fe\u20ff", + "\u0007P\u0002\u0002\u20ff\u2100\u0007C\u0002\u0002\u2100\u2101\u0007", + "R\u0002\u0002\u2101\u2102\u0007U\u0002\u0002\u2102\u2103\u0007J\u0002", + "\u0002\u2103\u2104\u0007Q\u0002\u0002\u2104\u2105\u0007V\u0002\u0002", + "\u2105\u0536\u0003\u0002\u0002\u0002\u2106\u2107\u0007T\u0002\u0002", + "\u2107\u2108\u0007G\u0002\u0002\u2108\u2109\u0007C\u0002\u0002\u2109", + "\u210a\u0007F\u0002\u0002\u210a\u210b\u0007a\u0002\u0002\u210b\u210c", + "\u0007Q\u0002\u0002\u210c\u210d\u0007P\u0002\u0002\u210d\u210e\u0007", + "N\u0002\u0002\u210e\u210f\u0007[\u0002\u0002\u210f\u0538\u0003\u0002", + "\u0002\u0002\u2110\u2111\u0007T\u0002\u0002\u2111\u2112\u0007G\u0002", + "\u0002\u2112\u2113\u0007C\u0002\u0002\u2113\u2114\u0007F\u0002\u0002", + "\u2114\u2115\u0007a\u0002\u0002\u2115\u2116\u0007Q\u0002\u0002\u2116", + "\u2117\u0007P\u0002\u0002\u2117\u2118\u0007N\u0002\u0002\u2118\u2119", + "\u0007[\u0002\u0002\u2119\u211a\u0007a\u0002\u0002\u211a\u211b\u0007", + "T\u0002\u0002\u211b\u211c\u0007Q\u0002\u0002\u211c\u211d\u0007W\u0002", + "\u0002\u211d\u211e\u0007V\u0002\u0002\u211e\u211f\u0007K\u0002\u0002", + "\u211f\u2120\u0007P\u0002\u0002\u2120\u2121\u0007I\u0002\u0002\u2121", + "\u2122\u0007a\u0002\u0002\u2122\u2123\u0007N\u0002\u0002\u2123\u2124", + "\u0007K\u0002\u0002\u2124\u2125\u0007U\u0002\u0002\u2125\u2126\u0007", + "V\u0002\u0002\u2126\u053a\u0003\u0002\u0002\u0002\u2127\u2128\u0007", + "T\u0002\u0002\u2128\u2129\u0007G\u0002\u0002\u2129\u212a\u0007C\u0002", + "\u0002\u212a\u212b\u0007F\u0002\u0002\u212b\u212c\u0007a\u0002\u0002", + "\u212c\u212d\u0007Y\u0002\u0002\u212d\u212e\u0007T\u0002\u0002\u212e", + "\u212f\u0007K\u0002\u0002\u212f\u2130\u0007V\u0002\u0002\u2130\u2131", + "\u0007G\u0002\u0002\u2131\u053c\u0003\u0002\u0002\u0002\u2132\u2133", + "\u0007T\u0002\u0002\u2133\u2134\u0007G\u0002\u0002\u2134\u2135\u0007", + "C\u0002\u0002\u2135\u2136\u0007F\u0002\u0002\u2136\u2137\u0007Q\u0002", + "\u0002\u2137\u2138\u0007P\u0002\u0002\u2138\u2139\u0007N\u0002\u0002", + "\u2139\u213a\u0007[\u0002\u0002\u213a\u053e\u0003\u0002\u0002\u0002", + "\u213b\u213c\u0007T\u0002\u0002\u213c\u213d\u0007G\u0002\u0002\u213d", + "\u213e\u0007D\u0002\u0002\u213e\u213f\u0007W\u0002\u0002\u213f\u2140", + "\u0007K\u0002\u0002\u2140\u2141\u0007N\u0002\u0002\u2141\u2142\u0007", + "F\u0002\u0002\u2142\u0540\u0003\u0002\u0002\u0002\u2143\u2144\u0007", + "T\u0002\u0002\u2144\u2145\u0007G\u0002\u0002\u2145\u2146\u0007E\u0002", + "\u0002\u2146\u2147\u0007G\u0002\u0002\u2147\u2148\u0007K\u0002\u0002", + "\u2148\u2149\u0007X\u0002\u0002\u2149\u214a\u0007G\u0002\u0002\u214a", + "\u0542\u0003\u0002\u0002\u0002\u214b\u214c\u0007T\u0002\u0002\u214c", + "\u214d\u0007G\u0002\u0002\u214d\u214e\u0007E\u0002\u0002\u214e\u214f", + "\u0007Q\u0002\u0002\u214f\u2150\u0007O\u0002\u0002\u2150\u2151\u0007", + "R\u0002\u0002\u2151\u2152\u0007K\u0002\u0002\u2152\u2153\u0007N\u0002", + "\u0002\u2153\u2154\u0007G\u0002\u0002\u2154\u0544\u0003\u0002\u0002", + "\u0002\u2155\u2156\u0007T\u0002\u0002\u2156\u2157\u0007G\u0002\u0002", + "\u2157\u2158\u0007E\u0002\u0002\u2158\u2159\u0007Q\u0002\u0002\u2159", + "\u215a\u0007X\u0002\u0002\u215a\u215b\u0007G\u0002\u0002\u215b\u215c", + "\u0007T\u0002\u0002\u215c\u215d\u0007[\u0002\u0002\u215d\u0546\u0003", + "\u0002\u0002\u0002\u215e\u215f\u0007T\u0002\u0002\u215f\u2160\u0007", + "G\u0002\u0002\u2160\u2161\u0007E\u0002\u0002\u2161\u2162\u0007W\u0002", + "\u0002\u2162\u2163\u0007T\u0002\u0002\u2163\u2164\u0007U\u0002\u0002", + "\u2164\u2165\u0007K\u0002\u0002\u2165\u2166\u0007X\u0002\u0002\u2166", + "\u2167\u0007G\u0002\u0002\u2167\u2168\u0007a\u0002\u0002\u2168\u2169", + "\u0007V\u0002\u0002\u2169\u216a\u0007T\u0002\u0002\u216a\u216b\u0007", + "K\u0002\u0002\u216b\u216c\u0007I\u0002\u0002\u216c\u216d\u0007I\u0002", + "\u0002\u216d\u216e\u0007G\u0002\u0002\u216e\u216f\u0007T\u0002\u0002", + "\u216f\u2170\u0007U\u0002\u0002\u2170\u0548\u0003\u0002\u0002\u0002", + "\u2171\u2172\u0007T\u0002\u0002\u2172\u2173\u0007G\u0002\u0002\u2173", + "\u2174\u0007N\u0002\u0002\u2174\u2175\u0007C\u0002\u0002\u2175\u2176", + "\u0007V\u0002\u0002\u2176\u2177\u0007K\u0002\u0002\u2177\u2178\u0007", + "X\u0002\u0002\u2178\u2179\u0007G\u0002\u0002\u2179\u054a\u0003\u0002", + "\u0002\u0002\u217a\u217b\u0007T\u0002\u0002\u217b\u217c\u0007G\u0002", + "\u0002\u217c\u217d\u0007O\u0002\u0002\u217d\u217e\u0007Q\u0002\u0002", + "\u217e\u217f\u0007V\u0002\u0002\u217f\u2180\u0007G\u0002\u0002\u2180", + "\u054c\u0003\u0002\u0002\u0002\u2181\u2182\u0007T\u0002\u0002\u2182", + "\u2183\u0007G\u0002\u0002\u2183\u2184\u0007O\u0002\u0002\u2184\u2185", + "\u0007Q\u0002\u0002\u2185\u2186\u0007V\u0002\u0002\u2186\u2187\u0007", + "G\u0002\u0002\u2187\u2188\u0007a\u0002\u0002\u2188\u2189\u0007U\u0002", + "\u0002\u2189\u218a\u0007G\u0002\u0002\u218a\u218b\u0007T\u0002\u0002", + "\u218b\u218c\u0007X\u0002\u0002\u218c\u218d\u0007K\u0002\u0002\u218d", + "\u218e\u0007E\u0002\u0002\u218e\u218f\u0007G\u0002\u0002\u218f\u2190", + "\u0007a\u0002\u0002\u2190\u2191\u0007P\u0002\u0002\u2191\u2192\u0007", + "C\u0002\u0002\u2192\u2193\u0007O\u0002\u0002\u2193\u2194\u0007G\u0002", + "\u0002\u2194\u054e\u0003\u0002\u0002\u0002\u2195\u2196\u0007T\u0002", + "\u0002\u2196\u2197\u0007G\u0002\u0002\u2197\u2198\u0007O\u0002\u0002", + "\u2198\u2199\u0007Q\u0002\u0002\u2199\u219a\u0007X\u0002\u0002\u219a", + "\u219b\u0007G\u0002\u0002\u219b\u0550\u0003\u0002\u0002\u0002\u219c", + "\u219d\u0007T\u0002\u0002\u219d\u219e\u0007G\u0002\u0002\u219e\u219f", + "\u0007Q\u0002\u0002\u219f\u21a0\u0007T\u0002\u0002\u21a0\u21a1\u0007", + "I\u0002\u0002\u21a1\u21a2\u0007C\u0002\u0002\u21a2\u21a3\u0007P\u0002", + "\u0002\u21a3\u21a4\u0007K\u0002\u0002\u21a4\u21a5\u0007\\\u0002\u0002", + "\u21a5\u21a6\u0007G\u0002\u0002\u21a6\u0552\u0003\u0002\u0002\u0002", + "\u21a7\u21a8\u0007T\u0002\u0002\u21a8\u21a9\u0007G\u0002\u0002\u21a9", + "\u21aa\u0007R\u0002\u0002\u21aa\u21ab\u0007G\u0002\u0002\u21ab\u21ac", + "\u0007C\u0002\u0002\u21ac\u21ad\u0007V\u0002\u0002\u21ad\u21ae\u0007", + "C\u0002\u0002\u21ae\u21af\u0007D\u0002\u0002\u21af\u21b0\u0007N\u0002", + "\u0002\u21b0\u21b1\u0007G\u0002\u0002\u21b1\u0554\u0003\u0002\u0002", + "\u0002\u21b2\u21b3\u0007T\u0002\u0002\u21b3\u21b4\u0007G\u0002\u0002", + "\u21b4\u21b5\u0007R\u0002\u0002\u21b5\u21b6\u0007N\u0002\u0002\u21b6", + "\u21b7\u0007K\u0002\u0002\u21b7\u21b8\u0007E\u0002\u0002\u21b8\u21b9", + "\u0007C\u0002\u0002\u21b9\u0556\u0003\u0002\u0002\u0002\u21ba\u21bb", + "\u0007T\u0002\u0002\u21bb\u21bc\u0007G\u0002\u0002\u21bc\u21bd\u0007", + "S\u0002\u0002\u21bd\u21be\u0007W\u0002\u0002\u21be\u21bf\u0007G\u0002", + "\u0002\u21bf\u21c0\u0007U\u0002\u0002\u21c0\u21c1\u0007V\u0002\u0002", + "\u21c1\u21c2\u0007a\u0002\u0002\u21c2\u21c3\u0007O\u0002\u0002\u21c3", + "\u21c4\u0007C\u0002\u0002\u21c4\u21c5\u0007Z\u0002\u0002\u21c5\u21c6", + "\u0007a\u0002\u0002\u21c6\u21c7\u0007E\u0002\u0002\u21c7\u21c8\u0007", + "R\u0002\u0002\u21c8\u21c9\u0007W\u0002\u0002\u21c9\u21ca\u0007a\u0002", + "\u0002\u21ca\u21cb\u0007V\u0002\u0002\u21cb\u21cc\u0007K\u0002\u0002", + "\u21cc\u21cd\u0007O\u0002\u0002\u21cd\u21ce\u0007G\u0002\u0002\u21ce", + "\u21cf\u0007a\u0002\u0002\u21cf\u21d0\u0007U\u0002\u0002\u21d0\u21d1", + "\u0007G\u0002\u0002\u21d1\u21d2\u0007E\u0002\u0002\u21d2\u0558\u0003", + "\u0002\u0002\u0002\u21d3\u21d4\u0007T\u0002\u0002\u21d4\u21d5\u0007", + "G\u0002\u0002\u21d5\u21d6\u0007S\u0002\u0002\u21d6\u21d7\u0007W\u0002", + "\u0002\u21d7\u21d8\u0007G\u0002\u0002\u21d8\u21d9\u0007U\u0002\u0002", + "\u21d9\u21da\u0007V\u0002\u0002\u21da\u21db\u0007a\u0002\u0002\u21db", + "\u21dc\u0007O\u0002\u0002\u21dc\u21dd\u0007C\u0002\u0002\u21dd\u21de", + "\u0007Z\u0002\u0002\u21de\u21df\u0007a\u0002\u0002\u21df\u21e0\u0007", + "O\u0002\u0002\u21e0\u21e1\u0007G\u0002\u0002\u21e1\u21e2\u0007O\u0002", + "\u0002\u21e2\u21e3\u0007Q\u0002\u0002\u21e3\u21e4\u0007T\u0002\u0002", + "\u21e4\u21e5\u0007[\u0002\u0002\u21e5\u21e6\u0007a\u0002\u0002\u21e6", + "\u21e7\u0007I\u0002\u0002\u21e7\u21e8\u0007T\u0002\u0002\u21e8\u21e9", + "\u0007C\u0002\u0002\u21e9\u21ea\u0007P\u0002\u0002\u21ea\u21eb\u0007", + "V\u0002\u0002\u21eb\u21ec\u0007a\u0002\u0002\u21ec\u21ed\u0007R\u0002", + "\u0002\u21ed\u21ee\u0007G\u0002\u0002\u21ee\u21ef\u0007T\u0002\u0002", + "\u21ef\u21f0\u0007E\u0002\u0002\u21f0\u21f1\u0007G\u0002\u0002\u21f1", + "\u21f2\u0007P\u0002\u0002\u21f2\u21f3\u0007V\u0002\u0002\u21f3\u055a", + "\u0003\u0002\u0002\u0002\u21f4\u21f5\u0007T\u0002\u0002\u21f5\u21f6", + "\u0007G\u0002\u0002\u21f6\u21f7\u0007S\u0002\u0002\u21f7\u21f8\u0007", + "W\u0002\u0002\u21f8\u21f9\u0007G\u0002\u0002\u21f9\u21fa\u0007U\u0002", + "\u0002\u21fa\u21fb\u0007V\u0002\u0002\u21fb\u21fc\u0007a\u0002\u0002", + "\u21fc\u21fd\u0007O\u0002\u0002\u21fd\u21fe\u0007G\u0002\u0002\u21fe", + "\u21ff\u0007O\u0002\u0002\u21ff\u2200\u0007Q\u0002\u0002\u2200\u2201", + "\u0007T\u0002\u0002\u2201\u2202\u0007[\u0002\u0002\u2202\u2203\u0007", + "a\u0002\u0002\u2203\u2204\u0007I\u0002\u0002\u2204\u2205\u0007T\u0002", + "\u0002\u2205\u2206\u0007C\u0002\u0002\u2206\u2207\u0007P\u0002\u0002", + "\u2207\u2208\u0007V\u0002\u0002\u2208\u2209\u0007a\u0002\u0002\u2209", + "\u220a\u0007V\u0002\u0002\u220a\u220b\u0007K\u0002\u0002\u220b\u220c", + "\u0007O\u0002\u0002\u220c\u220d\u0007G\u0002\u0002\u220d\u220e\u0007", + "Q\u0002\u0002\u220e\u220f\u0007W\u0002\u0002\u220f\u2210\u0007V\u0002", + "\u0002\u2210\u2211\u0007a\u0002\u0002\u2211\u2212\u0007U\u0002\u0002", + "\u2212\u2213\u0007G\u0002\u0002\u2213\u2214\u0007E\u0002\u0002\u2214", + "\u055c\u0003\u0002\u0002\u0002\u2215\u2216\u0007T\u0002\u0002\u2216", + "\u2217\u0007G\u0002\u0002\u2217\u2218\u0007S\u0002\u0002\u2218\u2219", + "\u0007W\u0002\u0002\u2219\u221a\u0007K\u0002\u0002\u221a\u221b\u0007", + "T\u0002\u0002\u221b\u221c\u0007G\u0002\u0002\u221c\u221d\u0007F\u0002", + "\u0002\u221d\u221e\u0007a\u0002\u0002\u221e\u221f\u0007U\u0002\u0002", + "\u221f\u2220\u0007[\u0002\u0002\u2220\u2221\u0007P\u0002\u0002\u2221", + "\u2222\u0007E\u0002\u0002\u2222\u2223\u0007J\u0002\u0002\u2223\u2224", + "\u0007T\u0002\u0002\u2224\u2225\u0007Q\u0002\u0002\u2225\u2226\u0007", + "P\u0002\u0002\u2226\u2227\u0007K\u0002\u0002\u2227\u2228\u0007\\\u0002", + "\u0002\u2228\u2229\u0007G\u0002\u0002\u2229\u222a\u0007F\u0002\u0002", + "\u222a\u222b\u0007a\u0002\u0002\u222b\u222c\u0007U\u0002\u0002\u222c", + "\u222d\u0007G\u0002\u0002\u222d\u222e\u0007E\u0002\u0002\u222e\u222f", + "\u0007Q\u0002\u0002\u222f\u2230\u0007P\u0002\u0002\u2230\u2231\u0007", + "F\u0002\u0002\u2231\u2232\u0007C\u0002\u0002\u2232\u2233\u0007T\u0002", + "\u0002\u2233\u2234\u0007K\u0002\u0002\u2234\u2235\u0007G\u0002\u0002", + "\u2235\u2236\u0007U\u0002\u0002\u2236\u2237\u0007a\u0002\u0002\u2237", + "\u2238\u0007V\u0002\u0002\u2238\u2239\u0007Q\u0002\u0002\u2239\u223a", + "\u0007a\u0002\u0002\u223a\u223b\u0007E\u0002\u0002\u223b\u223c\u0007", + "Q\u0002\u0002\u223c\u223d\u0007O\u0002\u0002\u223d\u223e\u0007O\u0002", + "\u0002\u223e\u223f\u0007K\u0002\u0002\u223f\u2240\u0007V\u0002\u0002", + "\u2240\u055e\u0003\u0002\u0002\u0002\u2241\u2242\u0007T\u0002\u0002", + "\u2242\u2243\u0007G\u0002\u0002\u2243\u2244\u0007U\u0002\u0002\u2244", + "\u2245\u0007G\u0002\u0002\u2245\u2246\u0007T\u0002\u0002\u2246\u2247", + "\u0007X\u0002\u0002\u2247\u2248\u0007G\u0002\u0002\u2248\u2249\u0007", + "a\u0002\u0002\u2249\u224a\u0007F\u0002\u0002\u224a\u224b\u0007K\u0002", + "\u0002\u224b\u224c\u0007U\u0002\u0002\u224c\u224d\u0007M\u0002\u0002", + "\u224d\u224e\u0007a\u0002\u0002\u224e\u224f\u0007U\u0002\u0002\u224f", + "\u2250\u0007R\u0002\u0002\u2250\u2251\u0007C\u0002\u0002\u2251\u2252", + "\u0007E\u0002\u0002\u2252\u2253\u0007G\u0002\u0002\u2253\u0560\u0003", + "\u0002\u0002\u0002\u2254\u2255\u0007T\u0002\u0002\u2255\u2256\u0007", + "G\u0002\u0002\u2256\u2257\u0007U\u0002\u0002\u2257\u2258\u0007Q\u0002", + "\u0002\u2258\u2259\u0007W\u0002\u0002\u2259\u225a\u0007T\u0002\u0002", + "\u225a\u225b\u0007E\u0002\u0002\u225b\u225c\u0007G\u0002\u0002\u225c", + "\u0562\u0003\u0002\u0002\u0002\u225d\u225e\u0007T\u0002\u0002\u225e", + "\u225f\u0007G\u0002\u0002\u225f\u2260\u0007U\u0002\u0002\u2260\u2261", + "\u0007Q\u0002\u0002\u2261\u2262\u0007W\u0002\u0002\u2262\u2263\u0007", + "T\u0002\u0002\u2263\u2264\u0007E\u0002\u0002\u2264\u2265\u0007G\u0002", + "\u0002\u2265\u2266\u0007a\u0002\u0002\u2266\u2267\u0007O\u0002\u0002", + "\u2267\u2268\u0007C\u0002\u0002\u2268\u2269\u0007P\u0002\u0002\u2269", + "\u226a\u0007C\u0002\u0002\u226a\u226b\u0007I\u0002\u0002\u226b\u226c", + "\u0007G\u0002\u0002\u226c\u226d\u0007T\u0002\u0002\u226d\u226e\u0007", + "a\u0002\u0002\u226e\u226f\u0007N\u0002\u0002\u226f\u2270\u0007Q\u0002", + "\u0002\u2270\u2271\u0007E\u0002\u0002\u2271\u2272\u0007C\u0002\u0002", + "\u2272\u2273\u0007V\u0002\u0002\u2273\u2274\u0007K\u0002\u0002\u2274", + "\u2275\u0007Q\u0002\u0002\u2275\u2276\u0007P\u0002\u0002\u2276\u0564", + "\u0003\u0002\u0002\u0002\u2277\u2278\u0007T\u0002\u0002\u2278\u2279", + "\u0007G\u0002\u0002\u2279\u227a\u0007U\u0002\u0002\u227a\u227b\u0007", + "V\u0002\u0002\u227b\u227c\u0007T\u0002\u0002\u227c\u227d\u0007K\u0002", + "\u0002\u227d\u227e\u0007E\u0002\u0002\u227e\u227f\u0007V\u0002\u0002", + "\u227f\u2280\u0007G\u0002\u0002\u2280\u2281\u0007F\u0002\u0002\u2281", + "\u2282\u0007a\u0002\u0002\u2282\u2283\u0007W\u0002\u0002\u2283\u2284", + "\u0007U\u0002\u0002\u2284\u2285\u0007G\u0002\u0002\u2285\u2286\u0007", + "T\u0002\u0002\u2286\u0566\u0003\u0002\u0002\u0002\u2287\u2288\u0007", + "T\u0002\u0002\u2288\u2289\u0007G\u0002\u0002\u2289\u228a\u0007V\u0002", + "\u0002\u228a\u228b\u0007G\u0002\u0002\u228b\u228c\u0007P\u0002\u0002", + "\u228c\u228d\u0007V\u0002\u0002\u228d\u228e\u0007K\u0002\u0002\u228e", + "\u228f\u0007Q\u0002\u0002\u228f\u2290\u0007P\u0002\u0002\u2290\u0568", + "\u0003\u0002\u0002\u0002\u2291\u2292\u0007T\u0002\u0002\u2292\u2293", + "\u0007Q\u0002\u0002\u2293\u2294\u0007D\u0002\u0002\u2294\u2295\u0007", + "W\u0002\u0002\u2295\u2296\u0007U\u0002\u0002\u2296\u2297\u0007V\u0002", + "\u0002\u2297\u056a\u0003\u0002\u0002\u0002\u2298\u2299\u0007T\u0002", + "\u0002\u2299\u229a\u0007Q\u0002\u0002\u229a\u229b\u0007Q\u0002\u0002", + "\u229b\u229c\u0007V\u0002\u0002\u229c\u056c\u0003\u0002\u0002\u0002", + "\u229d\u229e\u0007T\u0002\u0002\u229e\u229f\u0007Q\u0002\u0002\u229f", + "\u22a0\u0007W\u0002\u0002\u22a0\u22a1\u0007V\u0002\u0002\u22a1\u22a2", + "\u0007G\u0002\u0002\u22a2\u056e\u0003\u0002\u0002\u0002\u22a3\u22a4", + "\u0007T\u0002\u0002\u22a4\u22a5\u0007Q\u0002\u0002\u22a5\u22a6\u0007", + "Y\u0002\u0002\u22a6\u0570\u0003\u0002\u0002\u0002\u22a7\u22a8\u0007", + "T\u0002\u0002\u22a8\u22a9\u0007Q\u0002\u0002\u22a9\u22aa\u0007Y\u0002", + "\u0002\u22aa\u22ab\u0007a\u0002\u0002\u22ab\u22ac\u0007P\u0002\u0002", + "\u22ac\u22ad\u0007W\u0002\u0002\u22ad\u22ae\u0007O\u0002\u0002\u22ae", + "\u22af\u0007D\u0002\u0002\u22af\u22b0\u0007G\u0002\u0002\u22b0\u22b1", + "\u0007T\u0002\u0002\u22b1\u0572\u0003\u0002\u0002\u0002\u22b2\u22b3", + "\u0007T\u0002\u0002\u22b3\u22b4\u0007Q\u0002\u0002\u22b4\u22b5\u0007", + "Y\u0002\u0002\u22b5\u22b6\u0007I\u0002\u0002\u22b6\u22b7\u0007W\u0002", + "\u0002\u22b7\u22b8\u0007K\u0002\u0002\u22b8\u22b9\u0007F\u0002\u0002", + "\u22b9\u0574\u0003\u0002\u0002\u0002\u22ba\u22bb\u0007T\u0002\u0002", + "\u22bb\u22bc\u0007Q\u0002\u0002\u22bc\u22bd\u0007Y\u0002\u0002\u22bd", + "\u22be\u0007U\u0002\u0002\u22be\u0576\u0003\u0002\u0002\u0002\u22bf", + "\u22c0\u0007U\u0002\u0002\u22c0\u22c1\u0007C\u0002\u0002\u22c1\u22c2", + "\u0007O\u0002\u0002\u22c2\u22c3\u0007R\u0002\u0002\u22c3\u22c4\u0007", + "N\u0002\u0002\u22c4\u22c5\u0007G\u0002\u0002\u22c5\u0578\u0003\u0002", + "\u0002\u0002\u22c6\u22c7\u0007U\u0002\u0002\u22c7\u22c8\u0007E\u0002", + "\u0002\u22c8\u22c9\u0007J\u0002\u0002\u22c9\u22ca\u0007G\u0002\u0002", + "\u22ca\u22cb\u0007O\u0002\u0002\u22cb\u22cc\u0007C\u0002\u0002\u22cc", + "\u22cd\u0007D\u0002\u0002\u22cd\u22ce\u0007K\u0002\u0002\u22ce\u22cf", + "\u0007P\u0002\u0002\u22cf\u22d0\u0007F\u0002\u0002\u22d0\u22d1\u0007", + "K\u0002\u0002\u22d1\u22d2\u0007P\u0002\u0002\u22d2\u22d3\u0007I\u0002", + "\u0002\u22d3\u057a\u0003\u0002\u0002\u0002\u22d4\u22d5\u0007U\u0002", + "\u0002\u22d5\u22d6\u0007E\u0002\u0002\u22d6\u22d7\u0007Q\u0002\u0002", + "\u22d7\u22d8\u0007R\u0002\u0002\u22d8\u22d9\u0007G\u0002\u0002\u22d9", + "\u22da\u0007F\u0002\u0002\u22da\u057c\u0003\u0002\u0002\u0002\u22db", + "\u22dc\u0007U\u0002\u0002\u22dc\u22dd\u0007E\u0002\u0002\u22dd\u22de", + "\u0007T\u0002\u0002\u22de\u22df\u0007Q\u0002\u0002\u22df\u22e0\u0007", + "N\u0002\u0002\u22e0\u22e1\u0007N\u0002\u0002\u22e1\u057e\u0003\u0002", + "\u0002\u0002\u22e2\u22e3\u0007U\u0002\u0002\u22e3\u22e4\u0007E\u0002", + "\u0002\u22e4\u22e5\u0007T\u0002\u0002\u22e5\u22e6\u0007Q\u0002\u0002", + "\u22e6\u22e7\u0007N\u0002\u0002\u22e7\u22e8\u0007N\u0002\u0002\u22e8", + "\u22e9\u0007a\u0002\u0002\u22e9\u22ea\u0007N\u0002\u0002\u22ea\u22eb", + "\u0007Q\u0002\u0002\u22eb\u22ec\u0007E\u0002\u0002\u22ec\u22ed\u0007", + "M\u0002\u0002\u22ed\u22ee\u0007U\u0002\u0002\u22ee\u0580\u0003\u0002", + "\u0002\u0002\u22ef\u22f0\u0007U\u0002\u0002\u22f0\u22f1\u0007G\u0002", + "\u0002\u22f1\u22f2\u0007C\u0002\u0002\u22f2\u22f3\u0007T\u0002\u0002", + "\u22f3\u22f4\u0007E\u0002\u0002\u22f4\u22f5\u0007J\u0002\u0002\u22f5", + "\u0582\u0003\u0002\u0002\u0002\u22f6\u22f7\u0007U\u0002\u0002\u22f7", + "\u22f8\u0007G\u0002\u0002\u22f8\u22f9\u0007E\u0002\u0002\u22f9\u22fa", + "\u0007Q\u0002\u0002\u22fa\u22fb\u0007P\u0002\u0002\u22fb\u22fc\u0007", + "F\u0002\u0002\u22fc\u22fd\u0007C\u0002\u0002\u22fd\u22fe\u0007T\u0002", + "\u0002\u22fe\u22ff\u0007[\u0002\u0002\u22ff\u0584\u0003\u0002\u0002", + "\u0002\u2300\u2301\u0007U\u0002\u0002\u2301\u2302\u0007G\u0002\u0002", + "\u2302\u2303\u0007E\u0002\u0002\u2303\u2304\u0007Q\u0002\u0002\u2304", + "\u2305\u0007P\u0002\u0002\u2305\u2306\u0007F\u0002\u0002\u2306\u2307", + "\u0007C\u0002\u0002\u2307\u2308\u0007T\u0002\u0002\u2308\u2309\u0007", + "[\u0002\u0002\u2309\u230a\u0007a\u0002\u0002\u230a\u230b\u0007Q\u0002", + "\u0002\u230b\u230c\u0007P\u0002\u0002\u230c\u230d\u0007N\u0002\u0002", + "\u230d\u230e\u0007[\u0002\u0002\u230e\u0586\u0003\u0002\u0002\u0002", + "\u230f\u2310\u0007U\u0002\u0002\u2310\u2311\u0007G\u0002\u0002\u2311", + "\u2312\u0007E\u0002\u0002\u2312\u2313\u0007Q\u0002\u0002\u2313\u2314", + "\u0007P\u0002\u0002\u2314\u2315\u0007F\u0002\u0002\u2315\u2316\u0007", + "C\u0002\u0002\u2316\u2317\u0007T\u0002\u0002\u2317\u2318\u0007[\u0002", + "\u0002\u2318\u2319\u0007a\u0002\u0002\u2319\u231a\u0007T\u0002\u0002", + "\u231a\u231b\u0007Q\u0002\u0002\u231b\u231c\u0007N\u0002\u0002\u231c", + "\u231d\u0007G\u0002\u0002\u231d\u0588\u0003\u0002\u0002\u0002\u231e", + "\u231f\u0007U\u0002\u0002\u231f\u2320\u0007G\u0002\u0002\u2320\u2321", + "\u0007E\u0002\u0002\u2321\u2322\u0007Q\u0002\u0002\u2322\u2323\u0007", + "P\u0002\u0002\u2323\u2324\u0007F\u0002\u0002\u2324\u2325\u0007U\u0002", + "\u0002\u2325\u058a\u0003\u0002\u0002\u0002\u2326\u2327\u0007U\u0002", + "\u0002\u2327\u2328\u0007G\u0002\u0002\u2328\u2329\u0007E\u0002\u0002", + "\u2329\u232a\u0007T\u0002\u0002\u232a\u232b\u0007G\u0002\u0002\u232b", + "\u232c\u0007V\u0002\u0002\u232c\u058c\u0003\u0002\u0002\u0002\u232d", + "\u232e\u0007U\u0002\u0002\u232e\u232f\u0007G\u0002\u0002\u232f\u2330", + "\u0007E\u0002\u0002\u2330\u2331\u0007W\u0002\u0002\u2331\u2332\u0007", + "T\u0002\u0002\u2332\u2333\u0007K\u0002\u0002\u2333\u2334\u0007V\u0002", + "\u0002\u2334\u2335\u0007[\u0002\u0002\u2335\u058e\u0003\u0002\u0002", + "\u0002\u2336\u2337\u0007U\u0002\u0002\u2337\u2338\u0007G\u0002\u0002", + "\u2338\u2339\u0007E\u0002\u0002\u2339\u233a\u0007W\u0002\u0002\u233a", + "\u233b\u0007T\u0002\u0002\u233b\u233c\u0007K\u0002\u0002\u233c\u233d", + "\u0007V\u0002\u0002\u233d\u233e\u0007[\u0002\u0002\u233e\u233f\u0007", + "a\u0002\u0002\u233f\u2340\u0007N\u0002\u0002\u2340\u2341\u0007Q\u0002", + "\u0002\u2341\u2342\u0007I\u0002\u0002\u2342\u0590\u0003\u0002\u0002", + "\u0002\u2343\u2344\u0007U\u0002\u0002\u2344\u2345\u0007G\u0002\u0002", + "\u2345\u2346\u0007G\u0002\u0002\u2346\u2347\u0007F\u0002\u0002\u2347", + "\u2348\u0007K\u0002\u0002\u2348\u2349\u0007P\u0002\u0002\u2349\u234a", + "\u0007I\u0002\u0002\u234a\u234b\u0007a\u0002\u0002\u234b\u234c\u0007", + "O\u0002\u0002\u234c\u234d\u0007Q\u0002\u0002\u234d\u234e\u0007F\u0002", + "\u0002\u234e\u234f\u0007G\u0002\u0002\u234f\u0592\u0003\u0002\u0002", + "\u0002\u2350\u2351\u0007U\u0002\u0002\u2351\u2352\u0007G\u0002\u0002", + "\u2352\u2353\u0007N\u0002\u0002\u2353\u2354\u0007H\u0002\u0002\u2354", + "\u0594\u0003\u0002\u0002\u0002\u2355\u2356\u0007U\u0002\u0002\u2356", + "\u2357\u0007G\u0002\u0002\u2357\u2358\u0007O\u0002\u0002\u2358\u2359", + "\u0007K\u0002\u0002\u2359\u235a\u0007a\u0002\u0002\u235a\u235b\u0007", + "U\u0002\u0002\u235b\u235c\u0007G\u0002\u0002\u235c\u235d\u0007P\u0002", + "\u0002\u235d\u235e\u0007U\u0002\u0002\u235e\u235f\u0007K\u0002\u0002", + "\u235f\u2360\u0007V\u0002\u0002\u2360\u2361\u0007K\u0002\u0002\u2361", + "\u2362\u0007X\u0002\u0002\u2362\u2363\u0007G\u0002\u0002\u2363\u0596", + "\u0003\u0002\u0002\u0002\u2364\u2365\u0007U\u0002\u0002\u2365\u2366", + "\u0007G\u0002\u0002\u2366\u2367\u0007P\u0002\u0002\u2367\u2368\u0007", + "F\u0002\u0002\u2368\u0598\u0003\u0002\u0002\u0002\u2369\u236a\u0007", + "U\u0002\u0002\u236a\u236b\u0007G\u0002\u0002\u236b\u236c\u0007P\u0002", + "\u0002\u236c\u236d\u0007V\u0002\u0002\u236d\u059a\u0003\u0002\u0002", + "\u0002\u236e\u236f\u0007U\u0002\u0002\u236f\u2370\u0007G\u0002\u0002", + "\u2370\u2371\u0007S\u0002\u0002\u2371\u2372\u0007W\u0002\u0002\u2372", + "\u2373\u0007G\u0002\u0002\u2373\u2374\u0007P\u0002\u0002\u2374\u2375", + "\u0007E\u0002\u0002\u2375\u2376\u0007G\u0002\u0002\u2376\u059c\u0003", + "\u0002\u0002\u0002\u2377\u2378\u0007U\u0002\u0002\u2378\u2379\u0007", + "G\u0002\u0002\u2379\u237a\u0007T\u0002\u0002\u237a\u237b\u0007K\u0002", + "\u0002\u237b\u237c\u0007C\u0002\u0002\u237c\u237d\u0007N\u0002\u0002", + "\u237d\u237e\u0007K\u0002\u0002\u237e\u237f\u0007\\\u0002\u0002\u237f", + "\u2380\u0007C\u0002\u0002\u2380\u2381\u0007D\u0002\u0002\u2381\u2382", + "\u0007N\u0002\u0002\u2382\u2383\u0007G\u0002\u0002\u2383\u059e\u0003", + "\u0002\u0002\u0002\u2384\u2385\u0007U\u0002\u0002\u2385\u2386\u0007", + "G\u0002\u0002\u2386\u2387\u0007U\u0002\u0002\u2387\u2388\u0007U\u0002", + "\u0002\u2388\u2389\u0007K\u0002\u0002\u2389\u238a\u0007Q\u0002\u0002", + "\u238a\u238b\u0007P\u0002\u0002\u238b\u238c\u0007a\u0002\u0002\u238c", + "\u238d\u0007V\u0002\u0002\u238d\u238e\u0007K\u0002\u0002\u238e\u238f", + "\u0007O\u0002\u0002\u238f\u2390\u0007G\u0002\u0002\u2390\u2391\u0007", + "Q\u0002\u0002\u2391\u2392\u0007W\u0002\u0002\u2392\u2393\u0007V\u0002", + "\u0002\u2393\u05a0\u0003\u0002\u0002\u0002\u2394\u2395\u0007U\u0002", + "\u0002\u2395\u2396\u0007G\u0002\u0002\u2396\u2397\u0007V\u0002\u0002", + "\u2397\u2398\u0007G\u0002\u0002\u2398\u2399\u0007T\u0002\u0002\u2399", + "\u239a\u0007T\u0002\u0002\u239a\u239b\u0007Q\u0002\u0002\u239b\u239c", + "\u0007T\u0002\u0002\u239c\u05a2\u0003\u0002\u0002\u0002\u239d\u239e", + "\u0007U\u0002\u0002\u239e\u239f\u0007J\u0002\u0002\u239f\u23a0\u0007", + "C\u0002\u0002\u23a0\u23a1\u0007T\u0002\u0002\u23a1\u23a2\u0007G\u0002", + "\u0002\u23a2\u05a4\u0003\u0002\u0002\u0002\u23a3\u23a4\u0007U\u0002", + "\u0002\u23a4\u23a5\u0007J\u0002\u0002\u23a5\u23a6\u0007Q\u0002\u0002", + "\u23a6\u23a7\u0007Y\u0002\u0002\u23a7\u23a8\u0007R\u0002\u0002\u23a8", + "\u23a9\u0007N\u0002\u0002\u23a9\u23aa\u0007C\u0002\u0002\u23aa\u23ab", + "\u0007P\u0002\u0002\u23ab\u05a6\u0003\u0002\u0002\u0002\u23ac\u23ad", + "\u0007U\u0002\u0002\u23ad\u23ae\u0007K\u0002\u0002\u23ae\u23af\u0007", + "I\u0002\u0002\u23af\u23b0\u0007P\u0002\u0002\u23b0\u23b1\u0007C\u0002", + "\u0002\u23b1\u23b2\u0007V\u0002\u0002\u23b2\u23b3\u0007W\u0002\u0002", + "\u23b3\u23b4\u0007T\u0002\u0002\u23b4\u23b5\u0007G\u0002\u0002\u23b5", + "\u05a8\u0003\u0002\u0002\u0002\u23b6\u23b7\u0007U\u0002\u0002\u23b7", + "\u23b8\u0007K\u0002\u0002\u23b8\u23b9\u0007O\u0002\u0002\u23b9\u23ba", + "\u0007R\u0002\u0002\u23ba\u23bb\u0007N\u0002\u0002\u23bb\u23bc\u0007", + "G\u0002\u0002\u23bc\u05aa\u0003\u0002\u0002\u0002\u23bd\u23be\u0007", + "U\u0002\u0002\u23be\u23bf\u0007K\u0002\u0002\u23bf\u23c0\u0007P\u0002", + "\u0002\u23c0\u23c1\u0007I\u0002\u0002\u23c1\u23c2\u0007N\u0002\u0002", + "\u23c2\u23c3\u0007G\u0002\u0002\u23c3\u23c4\u0007a\u0002\u0002\u23c4", + "\u23c5\u0007W\u0002\u0002\u23c5\u23c6\u0007U\u0002\u0002\u23c6\u23c7", + "\u0007G\u0002\u0002\u23c7\u23c8\u0007T\u0002\u0002\u23c8\u05ac\u0003", + "\u0002\u0002\u0002\u23c9\u23ca\u0007U\u0002\u0002\u23ca\u23cb\u0007", + "K\u0002\u0002\u23cb\u23cc\u0007\\\u0002\u0002\u23cc\u23cd\u0007G\u0002", + "\u0002\u23cd\u05ae\u0003\u0002\u0002\u0002\u23ce\u23cf\u0007U\u0002", + "\u0002\u23cf\u23d0\u0007O\u0002\u0002\u23d0\u23d1\u0007C\u0002\u0002", + "\u23d1\u23d2\u0007N\u0002\u0002\u23d2\u23d3\u0007N\u0002\u0002\u23d3", + "\u23d4\u0007K\u0002\u0002\u23d4\u23d5\u0007P\u0002\u0002\u23d5\u23d6", + "\u0007V\u0002\u0002\u23d6\u05b0\u0003\u0002\u0002\u0002\u23d7\u23d8", + "\u0007U\u0002\u0002\u23d8\u23d9\u0007P\u0002\u0002\u23d9\u23da\u0007", + "C\u0002\u0002\u23da\u23db\u0007R\u0002\u0002\u23db\u23dc\u0007U\u0002", + "\u0002\u23dc\u23dd\u0007J\u0002\u0002\u23dd\u23de\u0007Q\u0002\u0002", + "\u23de\u23df\u0007V\u0002\u0002\u23df\u05b2\u0003\u0002\u0002\u0002", + "\u23e0\u23e1\u0007U\u0002\u0002\u23e1\u23e2\u0007R\u0002\u0002\u23e2", + "\u23e3\u0007C\u0002\u0002\u23e3\u23e4\u0007V\u0002\u0002\u23e4\u23e5", + "\u0007K\u0002\u0002\u23e5\u23e6\u0007C\u0002\u0002\u23e6\u23e7\u0007", + "N\u0002\u0002\u23e7\u23e8\u0007a\u0002\u0002\u23e8\u23e9\u0007Y\u0002", + "\u0002\u23e9\u23ea\u0007K\u0002\u0002\u23ea\u23eb\u0007P\u0002\u0002", + "\u23eb\u23ec\u0007F\u0002\u0002\u23ec\u23ed\u0007Q\u0002\u0002\u23ed", + "\u23ee\u0007Y\u0002\u0002\u23ee\u23ef\u0007a\u0002\u0002\u23ef\u23f0", + "\u0007O\u0002\u0002\u23f0\u23f1\u0007C\u0002\u0002\u23f1\u23f2\u0007", + "Z\u0002\u0002\u23f2\u23f3\u0007a\u0002\u0002\u23f3\u23f4\u0007E\u0002", + "\u0002\u23f4\u23f5\u0007G\u0002\u0002\u23f5\u23f6\u0007N\u0002\u0002", + "\u23f6\u23f7\u0007N\u0002\u0002\u23f7\u23f8\u0007U\u0002\u0002\u23f8", + "\u05b4\u0003\u0002\u0002\u0002\u23f9\u23fa\u0007U\u0002\u0002\u23fa", + "\u23fb\u0007V\u0002\u0002\u23fb\u23fc\u0007C\u0002\u0002\u23fc\u23fd", + "\u0007P\u0002\u0002\u23fd\u23fe\u0007F\u0002\u0002\u23fe\u23ff\u0007", + "D\u0002\u0002\u23ff\u2400\u0007[\u0002\u0002\u2400\u05b6\u0003\u0002", + "\u0002\u0002\u2401\u2402\u0007U\u0002\u0002\u2402\u2403\u0007V\u0002", + "\u0002\u2403\u2404\u0007C\u0002\u0002\u2404\u2405\u0007T\u0002\u0002", + "\u2405\u2406\u0007V\u0002\u0002\u2406\u2407\u0007a\u0002\u0002\u2407", + "\u2408\u0007F\u0002\u0002\u2408\u2409\u0007C\u0002\u0002\u2409\u240a", + "\u0007V\u0002\u0002\u240a\u240b\u0007G\u0002\u0002\u240b\u05b8\u0003", + "\u0002\u0002\u0002\u240c\u240d\u0007U\u0002\u0002\u240d\u240e\u0007", + "V\u0002\u0002\u240e\u240f\u0007C\u0002\u0002\u240f\u2410\u0007V\u0002", + "\u0002\u2410\u2411\u0007K\u0002\u0002\u2411\u2412\u0007E\u0002\u0002", + "\u2412\u05ba\u0003\u0002\u0002\u0002\u2413\u2414\u0007U\u0002\u0002", + "\u2414\u2415\u0007V\u0002\u0002\u2415\u2416\u0007C\u0002\u0002\u2416", + "\u2417\u0007V\u0002\u0002\u2417\u2418\u0007U\u0002\u0002\u2418\u2419", + "\u0007a\u0002\u0002\u2419\u241a\u0007U\u0002\u0002\u241a\u241b\u0007", + "V\u0002\u0002\u241b\u241c\u0007T\u0002\u0002\u241c\u241d\u0007G\u0002", + "\u0002\u241d\u241e\u0007C\u0002\u0002\u241e\u241f\u0007O\u0002\u0002", + "\u241f\u05bc\u0003\u0002\u0002\u0002\u2420\u2421\u0007U\u0002\u0002", + "\u2421\u2422\u0007V\u0002\u0002\u2422\u2423\u0007C\u0002\u0002\u2423", + "\u2424\u0007V\u0002\u0002\u2424\u2425\u0007W\u0002\u0002\u2425\u2426", + "\u0007U\u0002\u0002\u2426\u05be\u0003\u0002\u0002\u0002\u2427\u2428", + "\u0007U\u0002\u0002\u2428\u2429\u0007V\u0002\u0002\u2429\u242a\u0007", + "C\u0002\u0002\u242a\u242b\u0007V\u0002\u0002\u242b\u242c\u0007W\u0002", + "\u0002\u242c\u242d\u0007U\u0002\u0002\u242d\u242e\u0007Q\u0002\u0002", + "\u242e\u242f\u0007P\u0002\u0002\u242f\u2430\u0007N\u0002\u0002\u2430", + "\u2431\u0007[\u0002\u0002\u2431\u05c0\u0003\u0002\u0002\u0002\u2432", + "\u2433\u0007U\u0002\u0002\u2433\u2434\u0007V\u0002\u0002\u2434\u2435", + "\u0007F\u0002\u0002\u2435\u2436\u0007G\u0002\u0002\u2436\u2437\u0007", + "X\u0002\u0002\u2437\u05c2\u0003\u0002\u0002\u0002\u2438\u2439\u0007", + "U\u0002\u0002\u2439\u243a\u0007V\u0002\u0002\u243a\u243b\u0007F\u0002", + "\u0002\u243b\u243c\u0007G\u0002\u0002\u243c\u243d\u0007X\u0002\u0002", + "\u243d\u243e\u0007R\u0002\u0002\u243e\u05c4\u0003\u0002\u0002\u0002", + "\u243f\u2440\u0007U\u0002\u0002\u2440\u2441\u0007V\u0002\u0002\u2441", + "\u2442\u0007Q\u0002\u0002\u2442\u2443\u0007R\u0002\u0002\u2443\u2444", + "\u0007N\u0002\u0002\u2444\u2445\u0007K\u0002\u0002\u2445\u2446\u0007", + "U\u0002\u0002\u2446\u2447\u0007V\u0002\u0002\u2447\u05c6\u0003\u0002", + "\u0002\u0002\u2448\u2449\u0007U\u0002\u0002\u2449\u244a\u0007V\u0002", + "\u0002\u244a\u244b\u0007T\u0002\u0002\u244b\u244c\u0007K\u0002\u0002", + "\u244c\u244d\u0007P\u0002\u0002\u244d\u244e\u0007I\u0002\u0002\u244e", + "\u244f\u0007a\u0002\u0002\u244f\u2450\u0007C\u0002\u0002\u2450\u2451", + "\u0007I\u0002\u0002\u2451\u2452\u0007I\u0002\u0002\u2452\u05c8\u0003", + "\u0002\u0002\u0002\u2453\u2454\u0007U\u0002\u0002\u2454\u2455\u0007", + "V\u0002\u0002\u2455\u2456\u0007W\u0002\u0002\u2456\u2457\u0007H\u0002", + "\u0002\u2457\u2458\u0007H\u0002\u0002\u2458\u05ca\u0003\u0002\u0002", + "\u0002\u2459\u245a\u0007U\u0002\u0002\u245a\u245b\u0007W\u0002\u0002", + "\u245b\u245c\u0007D\u0002\u0002\u245c\u245d\u0007L\u0002\u0002\u245d", + "\u245e\u0007G\u0002\u0002\u245e\u245f\u0007E\u0002\u0002\u245f\u2460", + "\u0007V\u0002\u0002\u2460\u05cc\u0003\u0002\u0002\u0002\u2461\u2462", + "\u0007U\u0002\u0002\u2462\u2463\u0007W\u0002\u0002\u2463\u2464\u0007", + "D\u0002\u0002\u2464\u2465\u0007U\u0002\u0002\u2465\u2466\u0007E\u0002", + "\u0002\u2466\u2467\u0007T\u0002\u0002\u2467\u2468\u0007K\u0002\u0002", + "\u2468\u2469\u0007R\u0002\u0002\u2469\u246a\u0007V\u0002\u0002\u246a", + "\u246b\u0007K\u0002\u0002\u246b\u246c\u0007Q\u0002\u0002\u246c\u246d", + "\u0007P\u0002\u0002\u246d\u05ce\u0003\u0002\u0002\u0002\u246e\u246f", + "\u0007U\u0002\u0002\u246f\u2470\u0007W\u0002\u0002\u2470\u2471\u0007", + "O\u0002\u0002\u2471\u05d0\u0003\u0002\u0002\u0002\u2472\u2473\u0007", + "U\u0002\u0002\u2473\u2474\u0007W\u0002\u0002\u2474\u2475\u0007U\u0002", + "\u0002\u2475\u2476\u0007R\u0002\u0002\u2476\u2477\u0007G\u0002\u0002", + "\u2477\u2478\u0007P\u0002\u0002\u2478\u2479\u0007F\u0002\u0002\u2479", + "\u05d2\u0003\u0002\u0002\u0002\u247a\u247b\u0007U\u0002\u0002\u247b", + "\u247c\u0007[\u0002\u0002\u247c\u247d\u0007O\u0002\u0002\u247d\u247e", + "\u0007O\u0002\u0002\u247e\u247f\u0007G\u0002\u0002\u247f\u2480\u0007", + "V\u0002\u0002\u2480\u2481\u0007T\u0002\u0002\u2481\u2482\u0007K\u0002", + "\u0002\u2482\u2483\u0007E\u0002\u0002\u2483\u05d4\u0003\u0002\u0002", + "\u0002\u2484\u2485\u0007U\u0002\u0002\u2485\u2486\u0007[\u0002\u0002", + "\u2486\u2487\u0007P\u0002\u0002\u2487\u2488\u0007E\u0002\u0002\u2488", + "\u2489\u0007J\u0002\u0002\u2489\u248a\u0007T\u0002\u0002\u248a\u248b", + "\u0007Q\u0002\u0002\u248b\u248c\u0007P\u0002\u0002\u248c\u248d\u0007", + "Q\u0002\u0002\u248d\u248e\u0007W\u0002\u0002\u248e\u248f\u0007U\u0002", + "\u0002\u248f\u2490\u0007a\u0002\u0002\u2490\u2491\u0007E\u0002\u0002", + "\u2491\u2492\u0007Q\u0002\u0002\u2492\u2493\u0007O\u0002\u0002\u2493", + "\u2494\u0007O\u0002\u0002\u2494\u2495\u0007K\u0002\u0002\u2495\u2496", + "\u0007V\u0002\u0002\u2496\u05d6\u0003\u0002\u0002\u0002\u2497\u2498", + "\u0007U\u0002\u0002\u2498\u2499\u0007[\u0002\u0002\u2499\u249a\u0007", + "P\u0002\u0002\u249a\u249b\u0007Q\u0002\u0002\u249b\u249c\u0007P\u0002", + "\u0002\u249c\u249d\u0007[\u0002\u0002\u249d\u249e\u0007O\u0002\u0002", + "\u249e\u05d8\u0003\u0002\u0002\u0002\u249f\u24a0\u0007U\u0002\u0002", + "\u24a0\u24a1\u0007[\u0002\u0002\u24a1\u24a2\u0007U\u0002\u0002\u24a2", + "\u24a3\u0007V\u0002\u0002\u24a3\u24a4\u0007G\u0002\u0002\u24a4\u24a5", + "\u0007O\u0002\u0002\u24a5\u05da\u0003\u0002\u0002\u0002\u24a6\u24a7", + "\u0007V\u0002\u0002\u24a7\u24a8\u0007C\u0002\u0002\u24a8\u24a9\u0007", + "M\u0002\u0002\u24a9\u24aa\u0007G\u0002\u0002\u24aa\u05dc\u0003\u0002", + "\u0002\u0002\u24ab\u24ac\u0007V\u0002\u0002\u24ac\u24ad\u0007C\u0002", + "\u0002\u24ad\u24ae\u0007T\u0002\u0002\u24ae\u24af\u0007I\u0002\u0002", + "\u24af\u24b0\u0007G\u0002\u0002\u24b0\u24b1\u0007V\u0002\u0002\u24b1", + "\u24b2\u0007a\u0002\u0002\u24b2\u24b3\u0007T\u0002\u0002\u24b3\u24b4", + "\u0007G\u0002\u0002\u24b4\u24b5\u0007E\u0002\u0002\u24b5\u24b6\u0007", + "Q\u0002\u0002\u24b6\u24b7\u0007X\u0002\u0002\u24b7\u24b8\u0007G\u0002", + "\u0002\u24b8\u24b9\u0007T\u0002\u0002\u24b9\u24ba\u0007[\u0002\u0002", + "\u24ba\u24bb\u0007a\u0002\u0002\u24bb\u24bc\u0007V\u0002\u0002\u24bc", + "\u24bd\u0007K\u0002\u0002\u24bd\u24be\u0007O\u0002\u0002\u24be\u24bf", + "\u0007G\u0002\u0002\u24bf\u05de\u0003\u0002\u0002\u0002\u24c0\u24c1", + "\u0007V\u0002\u0002\u24c1\u24c2\u0007D\u0002\u0002\u24c2\u05e0\u0003", + "\u0002\u0002\u0002\u24c3\u24c4\u0007V\u0002\u0002\u24c4\u24c5\u0007", + "G\u0002\u0002\u24c5\u24c6\u0007Z\u0002\u0002\u24c6\u24c7\u0007V\u0002", + "\u0002\u24c7\u24c8\u0007K\u0002\u0002\u24c8\u24c9\u0007O\u0002\u0002", + "\u24c9\u24ca\u0007C\u0002\u0002\u24ca\u24cb\u0007I\u0002\u0002\u24cb", + "\u24cc\u0007G\u0002\u0002\u24cc\u24cd\u0007a\u0002\u0002\u24cd\u24ce", + "\u0007Q\u0002\u0002\u24ce\u24cf\u0007P\u0002\u0002\u24cf\u05e2\u0003", + "\u0002\u0002\u0002\u24d0\u24d1\u0007V\u0002\u0002\u24d1\u24d2\u0007", + "J\u0002\u0002\u24d2\u24d3\u0007T\u0002\u0002\u24d3\u24d4\u0007Q\u0002", + "\u0002\u24d4\u24d5\u0007Y\u0002\u0002\u24d5\u05e4\u0003\u0002\u0002", + "\u0002\u24d6\u24d7\u0007V\u0002\u0002\u24d7\u24d8\u0007K\u0002\u0002", + "\u24d8\u24d9\u0007G\u0002\u0002\u24d9\u24da\u0007U\u0002\u0002\u24da", + "\u05e6\u0003\u0002\u0002\u0002\u24db\u24dc\u0007V\u0002\u0002\u24dc", + "\u24dd\u0007K\u0002\u0002\u24dd\u24de\u0007O\u0002\u0002\u24de\u24df", + "\u0007G\u0002\u0002\u24df\u05e8\u0003\u0002\u0002\u0002\u24e0\u24e1", + "\u0007V\u0002\u0002\u24e1\u24e2\u0007K\u0002\u0002\u24e2\u24e3\u0007", + "O\u0002\u0002\u24e3\u24e4\u0007G\u0002\u0002\u24e4\u24e5\u0007Q\u0002", + "\u0002\u24e5\u24e6\u0007W\u0002\u0002\u24e6\u24e7\u0007V\u0002\u0002", + "\u24e7\u05ea\u0003\u0002\u0002\u0002\u24e8\u24e9\u0007V\u0002\u0002", + "\u24e9\u24ea\u0007K\u0002\u0002\u24ea\u24eb\u0007O\u0002\u0002\u24eb", + "\u24ec\u0007G\u0002\u0002\u24ec\u24ed\u0007T\u0002\u0002\u24ed\u05ec", + "\u0003\u0002\u0002\u0002\u24ee\u24ef\u0007V\u0002\u0002\u24ef\u24f0", + "\u0007K\u0002\u0002\u24f0\u24f1\u0007P\u0002\u0002\u24f1\u24f2\u0007", + "[\u0002\u0002\u24f2\u24f3\u0007K\u0002\u0002\u24f3\u24f4\u0007P\u0002", + "\u0002\u24f4\u24f5\u0007V\u0002\u0002\u24f5\u05ee\u0003\u0002\u0002", + "\u0002\u24f6\u24f7\u0007V\u0002\u0002\u24f7\u24f8\u0007Q\u0002\u0002", + "\u24f8\u24f9\u0007T\u0002\u0002\u24f9\u24fa\u0007P\u0002\u0002\u24fa", + "\u24fb\u0007a\u0002\u0002\u24fb\u24fc\u0007R\u0002\u0002\u24fc\u24fd", + "\u0007C\u0002\u0002\u24fd\u24fe\u0007I\u0002\u0002\u24fe\u24ff\u0007", + "G\u0002\u0002\u24ff\u2500\u0007a\u0002\u0002\u2500\u2501\u0007F\u0002", + "\u0002\u2501\u2502\u0007G\u0002\u0002\u2502\u2503\u0007V\u0002\u0002", + "\u2503\u2504\u0007G\u0002\u0002\u2504\u2505\u0007E\u0002\u0002\u2505", + "\u2506\u0007V\u0002\u0002\u2506\u2507\u0007K\u0002\u0002\u2507\u2508", + "\u0007Q\u0002\u0002\u2508\u2509\u0007P\u0002\u0002\u2509\u05f0\u0003", + "\u0002\u0002\u0002\u250a\u250b\u0007V\u0002\u0002\u250b\u250c\u0007", + "T\u0002\u0002\u250c\u250d\u0007C\u0002\u0002\u250d\u250e\u0007P\u0002", + "\u0002\u250e\u250f\u0007U\u0002\u0002\u250f\u2510\u0007H\u0002\u0002", + "\u2510\u2511\u0007Q\u0002\u0002\u2511\u2512\u0007T\u0002\u0002\u2512", + "\u2513\u0007O\u0002\u0002\u2513\u2514\u0007a\u0002\u0002\u2514\u2515", + "\u0007P\u0002\u0002\u2515\u2516\u0007Q\u0002\u0002\u2516\u2517\u0007", + "K\u0002\u0002\u2517\u2518\u0007U\u0002\u0002\u2518\u2519\u0007G\u0002", + "\u0002\u2519\u251a\u0007a\u0002\u0002\u251a\u251b\u0007Y\u0002\u0002", + "\u251b\u251c\u0007Q\u0002\u0002\u251c\u251d\u0007T\u0002\u0002\u251d", + "\u251e\u0007F\u0002\u0002\u251e\u251f\u0007U\u0002\u0002\u251f\u05f2", + "\u0003\u0002\u0002\u0002\u2520\u2521\u0007V\u0002\u0002\u2521\u2522", + "\u0007T\u0002\u0002\u2522\u2523\u0007K\u0002\u0002\u2523\u2524\u0007", + "R\u0002\u0002\u2524\u2525\u0007N\u0002\u0002\u2525\u2526\u0007G\u0002", + "\u0002\u2526\u2527\u0007a\u0002\u0002\u2527\u2528\u0007F\u0002\u0002", + "\u2528\u2529\u0007G\u0002\u0002\u2529\u252a\u0007U\u0002\u0002\u252a", + "\u05f4\u0003\u0002\u0002\u0002\u252b\u252c\u0007V\u0002\u0002\u252c", + "\u252d\u0007T\u0002\u0002\u252d\u252e\u0007K\u0002\u0002\u252e\u252f", + "\u0007R\u0002\u0002\u252f\u2530\u0007N\u0002\u0002\u2530\u2531\u0007", + "G\u0002\u0002\u2531\u2532\u0007a\u0002\u0002\u2532\u2533\u0007F\u0002", + "\u0002\u2533\u2534\u0007G\u0002\u0002\u2534\u2535\u0007U\u0002\u0002", + "\u2535\u2536\u0007a\u0002\u0002\u2536\u2537\u00075\u0002\u0002\u2537", + "\u2538\u0007M\u0002\u0002\u2538\u2539\u0007G\u0002\u0002\u2539\u253a", + "\u0007[\u0002\u0002\u253a\u05f6\u0003\u0002\u0002\u0002\u253b\u253c", + "\u0007V\u0002\u0002\u253c\u253d\u0007T\u0002\u0002\u253d\u253e\u0007", + "W\u0002\u0002\u253e\u253f\u0007U\u0002\u0002\u253f\u2540\u0007V\u0002", + "\u0002\u2540\u2541\u0007Y\u0002\u0002\u2541\u2542\u0007Q\u0002\u0002", + "\u2542\u2543\u0007T\u0002\u0002\u2543\u2544\u0007V\u0002\u0002\u2544", + "\u2545\u0007J\u0002\u0002\u2545\u2546\u0007[\u0002\u0002\u2546\u05f8", + "\u0003\u0002\u0002\u0002\u2547\u2548\u0007V\u0002\u0002\u2548\u2549", + "\u0007T\u0002\u0002\u2549\u254a\u0007[\u0002\u0002\u254a\u05fa\u0003", + "\u0002\u0002\u0002\u254b\u254c\u0007V\u0002\u0002\u254c\u254d\u0007", + "U\u0002\u0002\u254d\u254e\u0007S\u0002\u0002\u254e\u254f\u0007N\u0002", + "\u0002\u254f\u05fc\u0003\u0002\u0002\u0002\u2550\u2551\u0007V\u0002", + "\u0002\u2551\u2552\u0007Y\u0002\u0002\u2552\u2553\u0007Q\u0002\u0002", + "\u2553\u2554\u0007a\u0002\u0002\u2554\u2555\u0007F\u0002\u0002\u2555", + "\u2556\u0007K\u0002\u0002\u2556\u2557\u0007I\u0002\u0002\u2557\u2558", + "\u0007K\u0002\u0002\u2558\u2559\u0007V\u0002\u0002\u2559\u255a\u0007", + "a\u0002\u0002\u255a\u255b\u0007[\u0002\u0002\u255b\u255c\u0007G\u0002", + "\u0002\u255c\u255d\u0007C\u0002\u0002\u255d\u255e\u0007T\u0002\u0002", + "\u255e\u255f\u0007a\u0002\u0002\u255f\u2560\u0007E\u0002\u0002\u2560", + "\u2561\u0007W\u0002\u0002\u2561\u2562\u0007V\u0002\u0002\u2562\u2563", + "\u0007Q\u0002\u0002\u2563\u2564\u0007H\u0002\u0002\u2564\u2565\u0007", + "H\u0002\u0002\u2565\u05fe\u0003\u0002\u0002\u0002\u2566\u2567\u0007", + "V\u0002\u0002\u2567\u2568\u0007[\u0002\u0002\u2568\u2569\u0007R\u0002", + "\u0002\u2569\u256a\u0007G\u0002\u0002\u256a\u0600\u0003\u0002\u0002", + "\u0002\u256b\u256c\u0007V\u0002\u0002\u256c\u256d\u0007[\u0002\u0002", + "\u256d\u256e\u0007R\u0002\u0002\u256e\u256f\u0007G\u0002\u0002\u256f", + "\u2570\u0007a\u0002\u0002\u2570\u2571\u0007Y\u0002\u0002\u2571\u2572", + "\u0007C\u0002\u0002\u2572\u2573\u0007T\u0002\u0002\u2573\u2574\u0007", + "P\u0002\u0002\u2574\u2575\u0007K\u0002\u0002\u2575\u2576\u0007P\u0002", + "\u0002\u2576\u2577\u0007I\u0002\u0002\u2577\u0602\u0003\u0002\u0002", + "\u0002\u2578\u2579\u0007W\u0002\u0002\u2579\u257a\u0007P\u0002\u0002", + "\u257a\u257b\u0007D\u0002\u0002\u257b\u257c\u0007Q\u0002\u0002\u257c", + "\u257d\u0007W\u0002\u0002\u257d\u257e\u0007P\u0002\u0002\u257e\u257f", + "\u0007F\u0002\u0002\u257f\u2580\u0007G\u0002\u0002\u2580\u2581\u0007", + "F\u0002\u0002\u2581\u0604\u0003\u0002\u0002\u0002\u2582\u2583\u0007", + "W\u0002\u0002\u2583\u2584\u0007P\u0002\u0002\u2584\u2585\u0007E\u0002", + "\u0002\u2585\u2586\u0007Q\u0002\u0002\u2586\u2587\u0007O\u0002\u0002", + "\u2587\u2588\u0007O\u0002\u0002\u2588\u2589\u0007K\u0002\u0002\u2589", + "\u258a\u0007V\u0002\u0002\u258a\u258b\u0007V\u0002\u0002\u258b\u258c", + "\u0007G\u0002\u0002\u258c\u258d\u0007F\u0002\u0002\u258d\u0606\u0003", + "\u0002\u0002\u0002\u258e\u258f\u0007W\u0002\u0002\u258f\u2590\u0007", + "P\u0002\u0002\u2590\u2591\u0007M\u0002\u0002\u2591\u2592\u0007P\u0002", + "\u0002\u2592\u2593\u0007Q\u0002\u0002\u2593\u2594\u0007Y\u0002\u0002", + "\u2594\u2595\u0007P\u0002\u0002\u2595\u0608\u0003\u0002\u0002\u0002", + "\u2596\u2597\u0007W\u0002\u0002\u2597\u2598\u0007P\u0002\u0002\u2598", + "\u2599\u0007N\u0002\u0002\u2599\u259a\u0007K\u0002\u0002\u259a\u259b", + "\u0007O\u0002\u0002\u259b\u259c\u0007K\u0002\u0002\u259c\u259d\u0007", + "V\u0002\u0002\u259d\u259e\u0007G\u0002\u0002\u259e\u259f\u0007F\u0002", + "\u0002\u259f\u060a\u0003\u0002\u0002\u0002\u25a0\u25a1\u0007W\u0002", + "\u0002\u25a1\u25a2\u0007Q\u0002\u0002\u25a2\u25a3\u0007Y\u0002\u0002", + "\u25a3\u060c\u0003\u0002\u0002\u0002\u25a4\u25a5\u0007W\u0002\u0002", + "\u25a5\u25a6\u0007U\u0002\u0002\u25a6\u25a7\u0007K\u0002\u0002\u25a7", + "\u25a8\u0007P\u0002\u0002\u25a8\u25a9\u0007I\u0002\u0002\u25a9\u060e", + "\u0003\u0002\u0002\u0002\u25aa\u25ab\u0007X\u0002\u0002\u25ab\u25ac", + "\u0007C\u0002\u0002\u25ac\u25ad\u0007N\u0002\u0002\u25ad\u25ae\u0007", + "K\u0002\u0002\u25ae\u25af\u0007F\u0002\u0002\u25af\u25b0\u0007a\u0002", + "\u0002\u25b0\u25b1\u0007Z\u0002\u0002\u25b1\u25b2\u0007O\u0002\u0002", + "\u25b2\u25b3\u0007N\u0002\u0002\u25b3\u0610\u0003\u0002\u0002\u0002", + "\u25b4\u25b5\u0007X\u0002\u0002\u25b5\u25b6\u0007C\u0002\u0002\u25b6", + "\u25b7\u0007N\u0002\u0002\u25b7\u25b8\u0007K\u0002\u0002\u25b8\u25b9", + "\u0007F\u0002\u0002\u25b9\u25ba\u0007C\u0002\u0002\u25ba\u25bb\u0007", + "V\u0002\u0002\u25bb\u25bc\u0007K\u0002\u0002\u25bc\u25bd\u0007Q\u0002", + "\u0002\u25bd\u25be\u0007P\u0002\u0002\u25be\u0612\u0003\u0002\u0002", + "\u0002\u25bf\u25c0\u0007X\u0002\u0002\u25c0\u25c1\u0007C\u0002\u0002", + "\u25c1\u25c2\u0007N\u0002\u0002\u25c2\u25c3\u0007W\u0002\u0002\u25c3", + "\u25c4\u0007G\u0002\u0002\u25c4\u0614\u0003\u0002\u0002\u0002\u25c5", + "\u25c6\u0007X\u0002\u0002\u25c6\u25c7\u0007C\u0002\u0002\u25c7\u25c8", + "\u0007T\u0002\u0002\u25c8\u0616\u0003\u0002\u0002\u0002\u25c9\u25ca", + "\u0007X\u0002\u0002\u25ca\u25cb\u0007C\u0002\u0002\u25cb\u25cc\u0007", + "T\u0002\u0002\u25cc\u25cd\u0007R\u0002\u0002\u25cd\u0618\u0003\u0002", + "\u0002\u0002\u25ce\u25cf\u0007X\u0002\u0002\u25cf\u25d0\u0007K\u0002", + "\u0002\u25d0\u25d1\u0007G\u0002\u0002\u25d1\u25d2\u0007Y\u0002\u0002", + "\u25d2\u25d3\u0007a\u0002\u0002\u25d3\u25d4\u0007O\u0002\u0002\u25d4", + "\u25d5\u0007G\u0002\u0002\u25d5\u25d6\u0007V\u0002\u0002\u25d6\u25d7", + "\u0007C\u0002\u0002\u25d7\u25d8\u0007F\u0002\u0002\u25d8\u25d9\u0007", + "C\u0002\u0002\u25d9\u25da\u0007V\u0002\u0002\u25da\u25db\u0007C\u0002", + "\u0002\u25db\u061a\u0003\u0002\u0002\u0002\u25dc\u25dd\u0007X\u0002", + "\u0002\u25dd\u25de\u0007K\u0002\u0002\u25de\u25df\u0007G\u0002\u0002", + "\u25df\u25e0\u0007Y\u0002\u0002\u25e0\u25e1\u0007U\u0002\u0002\u25e1", + "\u061c\u0003\u0002\u0002\u0002\u25e2\u25e3\u0007Y\u0002\u0002\u25e3", + "\u25e4\u0007C\u0002\u0002\u25e4\u25e5\u0007K\u0002\u0002\u25e5\u25e6", + "\u0007V\u0002\u0002\u25e6\u061e\u0003\u0002\u0002\u0002\u25e7\u25e8", + "\u0007Y\u0002\u0002\u25e8\u25e9\u0007G\u0002\u0002\u25e9\u25ea\u0007", + "N\u0002\u0002\u25ea\u25eb\u0007N\u0002\u0002\u25eb\u25ec\u0007a\u0002", + "\u0002\u25ec\u25ed\u0007H\u0002\u0002\u25ed\u25ee\u0007Q\u0002\u0002", + "\u25ee\u25ef\u0007T\u0002\u0002\u25ef\u25f0\u0007O\u0002\u0002\u25f0", + "\u25f1\u0007G\u0002\u0002\u25f1\u25f2\u0007F\u0002\u0002\u25f2\u25f3", + "\u0007a\u0002\u0002\u25f3\u25f4\u0007Z\u0002\u0002\u25f4\u25f5\u0007", + "O\u0002\u0002\u25f5\u25f6\u0007N\u0002\u0002\u25f6\u0620\u0003\u0002", + "\u0002\u0002\u25f7\u25f8\u0007Y\u0002\u0002\u25f8\u25f9\u0007K\u0002", + "\u0002\u25f9\u25fa\u0007V\u0002\u0002\u25fa\u25fb\u0007J\u0002\u0002", + "\u25fb\u25fc\u0007Q\u0002\u0002\u25fc\u25fd\u0007W\u0002\u0002\u25fd", + "\u25fe\u0007V\u0002\u0002\u25fe\u25ff\u0007a\u0002\u0002\u25ff\u2600", + "\u0007C\u0002\u0002\u2600\u2601\u0007T\u0002\u0002\u2601\u2602\u0007", + "T\u0002\u0002\u2602\u2603\u0007C\u0002\u0002\u2603\u2604\u0007[\u0002", + "\u0002\u2604\u2605\u0007a\u0002\u0002\u2605\u2606\u0007Y\u0002\u0002", + "\u2606\u2607\u0007T\u0002\u0002\u2607\u2608\u0007C\u0002\u0002\u2608", + "\u2609\u0007R\u0002\u0002\u2609\u260a\u0007R\u0002\u0002\u260a\u260b", + "\u0007G\u0002\u0002\u260b\u260c\u0007T\u0002\u0002\u260c\u0622\u0003", + "\u0002\u0002\u0002\u260d\u260e\u0007Y\u0002\u0002\u260e\u260f\u0007", + "Q\u0002\u0002\u260f\u2610\u0007T\u0002\u0002\u2610\u2611\u0007M\u0002", + "\u0002\u2611\u0624\u0003\u0002\u0002\u0002\u2612\u2613\u0007Y\u0002", + "\u0002\u2613\u2614\u0007Q\u0002\u0002\u2614\u2615\u0007T\u0002\u0002", + "\u2615\u2616\u0007M\u0002\u0002\u2616\u2617\u0007N\u0002\u0002\u2617", + "\u2618\u0007Q\u0002\u0002\u2618\u2619\u0007C\u0002\u0002\u2619\u261a", + "\u0007F\u0002\u0002\u261a\u0626\u0003\u0002\u0002\u0002\u261b\u261c", + "\u0007Z\u0002\u0002\u261c\u261d\u0007O\u0002\u0002\u261d\u261e\u0007", + "N\u0002\u0002\u261e\u0628\u0003\u0002\u0002\u0002\u261f\u2620\u0007", + "Z\u0002\u0002\u2620\u2621\u0007O\u0002\u0002\u2621\u2622\u0007N\u0002", + "\u0002\u2622\u2623\u0007F\u0002\u0002\u2623\u2624\u0007C\u0002\u0002", + "\u2624\u2625\u0007V\u0002\u0002\u2625\u2626\u0007C\u0002\u0002\u2626", + "\u062a\u0003\u0002\u0002\u0002\u2627\u2628\u0007Z\u0002\u0002\u2628", + "\u2629\u0007O\u0002\u0002\u2629\u262a\u0007N\u0002\u0002\u262a\u262b", + "\u0007P\u0002\u0002\u262b\u262c\u0007C\u0002\u0002\u262c\u262d\u0007", + "O\u0002\u0002\u262d\u262e\u0007G\u0002\u0002\u262e\u262f\u0007U\u0002", + "\u0002\u262f\u2630\u0007R\u0002\u0002\u2630\u2631\u0007C\u0002\u0002", + "\u2631\u2632\u0007E\u0002\u0002\u2632\u2633\u0007G\u0002\u0002\u2633", + "\u2634\u0007U\u0002\u0002\u2634\u062c\u0003\u0002\u0002\u0002\u2635", + "\u2636\u0007Z\u0002\u0002\u2636\u2637\u0007O\u0002\u0002\u2637\u2638", + "\u0007N\u0002\u0002\u2638\u2639\u0007U\u0002\u0002\u2639\u263a\u0007", + "E\u0002\u0002\u263a\u263b\u0007J\u0002\u0002\u263b\u263c\u0007G\u0002", + "\u0002\u263c\u263d\u0007O\u0002\u0002\u263d\u263e\u0007C\u0002\u0002", + "\u263e\u062e\u0003\u0002\u0002\u0002\u263f\u2640\u0007Z\u0002\u0002", + "\u2640\u2641\u0007U\u0002\u0002\u2641\u2642\u0007K\u0002\u0002\u2642", + "\u2643\u0007P\u0002\u0002\u2643\u2644\u0007K\u0002\u0002\u2644\u2645", + "\u0007N\u0002\u0002\u2645\u0630\u0003\u0002\u0002\u0002\u2646\u2647", + "\u0007&\u0002\u0002\u2647\u2648\u0007C\u0002\u0002\u2648\u2649\u0007", + "E\u0002\u0002\u2649\u264a\u0007V\u0002\u0002\u264a\u264b\u0007K\u0002", + "\u0002\u264b\u264c\u0007Q\u0002\u0002\u264c\u264d\u0007P\u0002\u0002", + "\u264d\u0632\u0003\u0002\u0002\u0002\u264e\u2650\t\u0007\u0002\u0002", + "\u264f\u264e\u0003\u0002\u0002\u0002\u2650\u2651\u0003\u0002\u0002\u0002", + "\u2651\u264f\u0003\u0002\u0002\u0002\u2651\u2652\u0003\u0002\u0002\u0002", + "\u2652\u2653\u0003\u0002\u0002\u0002\u2653\u2654\b\u031a\u0002\u0002", + "\u2654\u0634\u0003\u0002\u0002\u0002\u2655\u2656\u00071\u0002\u0002", + "\u2656\u2657\u0007,\u0002\u0002\u2657\u265c\u0003\u0002\u0002\u0002", + "\u2658\u265b\u0005\u0635\u031b\u0002\u2659\u265b\u000b\u0002\u0002\u0002", + "\u265a\u2658\u0003\u0002\u0002\u0002\u265a\u2659\u0003\u0002\u0002\u0002", + "\u265b\u265e\u0003\u0002\u0002\u0002\u265c\u265d\u0003\u0002\u0002\u0002", + "\u265c\u265a\u0003\u0002\u0002\u0002\u265d\u265f\u0003\u0002\u0002\u0002", + "\u265e\u265c\u0003\u0002\u0002\u0002\u265f\u2660\u0007,\u0002\u0002", + "\u2660\u2661\u00071\u0002\u0002\u2661\u2662\u0003\u0002\u0002\u0002", + "\u2662\u2663\b\u031b\u0003\u0002\u2663\u0636\u0003\u0002\u0002\u0002", + "\u2664\u2665\u0007/\u0002\u0002\u2665\u2666\u0007/\u0002\u0002\u2666", + "\u266a\u0003\u0002\u0002\u0002\u2667\u2669\n\b\u0002\u0002\u2668\u2667", + "\u0003\u0002\u0002\u0002\u2669\u266c\u0003\u0002\u0002\u0002\u266a\u2668", + "\u0003\u0002\u0002\u0002\u266a\u266b\u0003\u0002\u0002\u0002\u266b\u266d", + "\u0003\u0002\u0002\u0002\u266c\u266a\u0003\u0002\u0002\u0002\u266d\u266e", + "\b\u031c\u0003\u0002\u266e\u0638\u0003\u0002\u0002\u0002\u266f\u2671", + "\u0007$\u0002\u0002\u2670\u2672\n\u0005\u0002\u0002\u2671\u2670\u0003", + "\u0002\u0002\u0002\u2672\u2673\u0003\u0002\u0002\u0002\u2673\u2671\u0003", + "\u0002\u0002\u0002\u2673\u2674\u0003\u0002\u0002\u0002\u2674\u2675\u0003", + "\u0002\u0002\u0002\u2675\u2676\u0007$\u0002\u0002\u2676\u063a\u0003", + "\u0002\u0002\u0002\u2677\u2678\u0007)\u0002\u0002\u2678\u063c\u0003", + "\u0002\u0002\u0002\u2679\u267b\u0007]\u0002\u0002\u267a\u267c\n\t\u0002", + "\u0002\u267b\u267a\u0003\u0002\u0002\u0002\u267c\u267d\u0003\u0002\u0002", + "\u0002\u267d\u267b\u0003\u0002\u0002\u0002\u267d\u267e\u0003\u0002\u0002", + "\u0002\u267e\u267f\u0003\u0002\u0002\u0002\u267f\u2680\u0007_\u0002", + "\u0002\u2680\u063e\u0003\u0002\u0002\u0002\u2681\u2684\u0007B\u0002", + "\u0002\u2682\u2685\t\n\u0002\u0002\u2683\u2685\u0005\u069d\u034f\u0002", + "\u2684\u2682\u0003\u0002\u0002\u0002\u2684\u2683\u0003\u0002\u0002\u0002", + "\u2685\u2686\u0003\u0002\u0002\u0002\u2686\u2684\u0003\u0002\u0002\u0002", + "\u2686\u2687\u0003\u0002\u0002\u0002\u2687\u0640\u0003\u0002\u0002\u0002", + "\u2688\u268a\u0005\u069b\u034e\u0002\u2689\u2688\u0003\u0002\u0002\u0002", + "\u268a\u268b\u0003\u0002\u0002\u0002\u268b\u2689\u0003\u0002\u0002\u0002", + "\u268b\u268c\u0003\u0002\u0002\u0002\u268c\u0642\u0003\u0002\u0002\u0002", + "\u268d\u2690\t\u000b\u0002\u0002\u268e\u2690\u0005\u069d\u034f\u0002", + "\u268f\u268d\u0003\u0002\u0002\u0002\u268f\u268e\u0003\u0002\u0002\u0002", + "\u2690\u2695\u0003\u0002\u0002\u0002\u2691\u2694\t\n\u0002\u0002\u2692", + "\u2694\u0005\u069d\u034f\u0002\u2693\u2691\u0003\u0002\u0002\u0002\u2693", + "\u2692\u0003\u0002\u0002\u0002\u2694\u2697\u0003\u0002\u0002\u0002\u2695", + "\u2693\u0003\u0002\u0002\u0002\u2695\u2696\u0003\u0002\u0002\u0002\u2696", + "\u0644\u0003\u0002\u0002\u0002\u2697\u2695\u0003\u0002\u0002\u0002\u2698", + "\u2699\u0007)\u0002\u0002\u2699\u269b\t\u0006\u0002\u0002\u269a\u269c", + "\t\u0006\u0002\u0002\u269b\u269a\u0003\u0002\u0002\u0002\u269c\u269d", + "\u0003\u0002\u0002\u0002\u269d\u269b\u0003\u0002\u0002\u0002\u269d\u269e", + "\u0003\u0002\u0002\u0002\u269e\u269f\u0003\u0002\u0002\u0002\u269f\u26a0", + "\t\u0004\u0002\u0002\u26a0\u26a1\u0003\u0002\u0002\u0002\u26a1\u26a2", + "\u00071\u0002\u0002\u26a2\u26a3\u00071\u0002\u0002\u26a3\u26b2\u0003", + "\u0002\u0002\u0002\u26a4\u26a6\t\u0006\u0002\u0002\u26a5\u26a4\u0003", + "\u0002\u0002\u0002\u26a6\u26a7\u0003\u0002\u0002\u0002\u26a7\u26a5\u0003", + "\u0002\u0002\u0002\u26a7\u26a8\u0003\u0002\u0002\u0002\u26a8\u26a9\u0003", + "\u0002\u0002\u0002\u26a9\u26b0\t\f\u0002\u0002\u26aa\u26ac\t\u0006\u0002", + "\u0002\u26ab\u26aa\u0003\u0002\u0002\u0002\u26ac\u26ad\u0003\u0002\u0002", + "\u0002\u26ad\u26ab\u0003\u0002\u0002\u0002\u26ad\u26ae\u0003\u0002\u0002", + "\u0002\u26ae\u26b0\u0003\u0002\u0002\u0002\u26af\u26a5\u0003\u0002\u0002", + "\u0002\u26af\u26ab\u0003\u0002\u0002\u0002\u26b0\u26b3\u0003\u0002\u0002", + "\u0002\u26b1\u26b3\u0005\u0149\u00a5\u0002\u26b2\u26af\u0003\u0002\u0002", + "\u0002\u26b2\u26b1\u0003\u0002\u0002\u0002\u26b3\u26b4\u0003\u0002\u0002", + "\u0002\u26b4\u26b5\t\u0004\u0002\u0002\u26b5\u26b6\u0005\u0641\u0321", + "\u0002\u26b6\u26b7\u0007)\u0002\u0002\u26b7\u0646\u0003\u0002\u0002", + "\u0002\u26b8\u26c7\u0007)\u0002\u0002\u26b9\u26bb\t\u0006\u0002\u0002", + "\u26ba\u26b9\u0003\u0002\u0002\u0002\u26bb\u26bc\u0003\u0002\u0002\u0002", + "\u26bc\u26ba\u0003\u0002\u0002\u0002\u26bc\u26bd\u0003\u0002\u0002\u0002", + "\u26bd\u26be\u0003\u0002\u0002\u0002\u26be\u26c5\t\f\u0002\u0002\u26bf", + "\u26c1\t\u0006\u0002\u0002\u26c0\u26bf\u0003\u0002\u0002\u0002\u26c1", + "\u26c2\u0003\u0002\u0002\u0002\u26c2\u26c0\u0003\u0002\u0002\u0002\u26c2", + "\u26c3\u0003\u0002\u0002\u0002\u26c3\u26c5\u0003\u0002\u0002\u0002\u26c4", + "\u26ba\u0003\u0002\u0002\u0002\u26c4\u26c0\u0003\u0002\u0002\u0002\u26c5", + "\u26c8\u0003\u0002\u0002\u0002\u26c6\u26c8\u0005\u0149\u00a5\u0002\u26c7", + "\u26c4\u0003\u0002\u0002\u0002\u26c7\u26c6\u0003\u0002\u0002\u0002\u26c8", + "\u26c9\u0003\u0002\u0002\u0002\u26c9\u26ca\t\u0004\u0002\u0002\u26ca", + "\u26cb\u0005\u0641\u0321\u0002\u26cb\u26cc\u0003\u0002\u0002\u0002\u26cc", + "\u26cd\u0007)\u0002\u0002\u26cd\u0648\u0003\u0002\u0002\u0002\u26ce", + "\u26d0\u0007P\u0002\u0002\u26cf\u26ce\u0003\u0002\u0002\u0002\u26cf", + "\u26d0\u0003\u0002\u0002\u0002\u26d0\u26d1\u0003\u0002\u0002\u0002\u26d1", + "\u26d7\u0007)\u0002\u0002\u26d2\u26d6\n\u0002\u0002\u0002\u26d3\u26d4", + "\u0007)\u0002\u0002\u26d4\u26d6\u0007)\u0002\u0002\u26d5\u26d2\u0003", + "\u0002\u0002\u0002\u26d5\u26d3\u0003\u0002\u0002\u0002\u26d6\u26d9\u0003", + "\u0002\u0002\u0002\u26d7\u26d5\u0003\u0002\u0002\u0002\u26d7\u26d8\u0003", + "\u0002\u0002\u0002\u26d8\u26da\u0003\u0002\u0002\u0002\u26d9\u26d7\u0003", + "\u0002\u0002\u0002\u26da\u26db\u0007)\u0002\u0002\u26db\u064a\u0003", + "\u0002\u0002\u0002\u26dc\u26dd\u00072\u0002\u0002\u26dd\u26e1\u0007", + "Z\u0002\u0002\u26de\u26e0\u0005\u0699\u034d\u0002\u26df\u26de\u0003", + "\u0002\u0002\u0002\u26e0\u26e3\u0003\u0002\u0002\u0002\u26e1\u26df\u0003", + "\u0002\u0002\u0002\u26e1\u26e2\u0003\u0002\u0002\u0002\u26e2\u064c\u0003", + "\u0002\u0002\u0002\u26e3\u26e1\u0003\u0002\u0002\u0002\u26e4\u26e5\u0005", + "\u0697\u034c\u0002\u26e5\u064e\u0003\u0002\u0002\u0002\u26e6\u26e9\u0005", + "\u0641\u0321\u0002\u26e7\u26e9\u0005\u0697\u034c\u0002\u26e8\u26e6\u0003", + "\u0002\u0002\u0002\u26e8\u26e7\u0003\u0002\u0002\u0002\u26e9\u26ea\u0003", + "\u0002\u0002\u0002\u26ea\u26ec\u0007G\u0002\u0002\u26eb\u26ed\t\r\u0002", + "\u0002\u26ec\u26eb\u0003\u0002\u0002\u0002\u26ec\u26ed\u0003\u0002\u0002", + "\u0002\u26ed\u26ef\u0003\u0002\u0002\u0002\u26ee\u26f0\u0005\u069b\u034e", + "\u0002\u26ef\u26ee\u0003\u0002\u0002\u0002\u26f0\u26f1\u0003\u0002\u0002", + "\u0002\u26f1\u26ef\u0003\u0002\u0002\u0002\u26f1\u26f2\u0003\u0002\u0002", + "\u0002\u26f2\u0650\u0003\u0002\u0002\u0002\u26f3\u26f4\u0007?\u0002", + "\u0002\u26f4\u0652\u0003\u0002\u0002\u0002\u26f5\u26f6\u0007@\u0002", + "\u0002\u26f6\u0654\u0003\u0002\u0002\u0002\u26f7\u26f8\u0007>\u0002", + "\u0002\u26f8\u0656\u0003\u0002\u0002\u0002\u26f9\u26fa\u0007#\u0002", + "\u0002\u26fa\u0658\u0003\u0002\u0002\u0002\u26fb\u26fc\u0007-\u0002", + "\u0002\u26fc\u26fd\u0007?\u0002\u0002\u26fd\u065a\u0003\u0002\u0002", + "\u0002\u26fe\u26ff\u0007/\u0002\u0002\u26ff\u2700\u0007?\u0002\u0002", + "\u2700\u065c\u0003\u0002\u0002\u0002\u2701\u2702\u0007,\u0002\u0002", + "\u2702\u2703\u0007?\u0002\u0002\u2703\u065e\u0003\u0002\u0002\u0002", + "\u2704\u2705\u00071\u0002\u0002\u2705\u2706\u0007?\u0002\u0002\u2706", + "\u0660\u0003\u0002\u0002\u0002\u2707\u2708\u0007\'\u0002\u0002\u2708", + "\u2709\u0007?\u0002\u0002\u2709\u0662\u0003\u0002\u0002\u0002\u270a", + "\u270b\u0007(\u0002\u0002\u270b\u270c\u0007?\u0002\u0002\u270c\u0664", + "\u0003\u0002\u0002\u0002\u270d\u270e\u0007`\u0002\u0002\u270e\u270f", + "\u0007?\u0002\u0002\u270f\u0666\u0003\u0002\u0002\u0002\u2710\u2711", + "\u0007~\u0002\u0002\u2711\u2712\u0007?\u0002\u0002\u2712\u0668\u0003", + "\u0002\u0002\u0002\u2713\u2714\u0007~\u0002\u0002\u2714\u2715\u0007", + "~\u0002\u0002\u2715\u066a\u0003\u0002\u0002\u0002\u2716\u2717\u0007", + "0\u0002\u0002\u2717\u066c\u0003\u0002\u0002\u0002\u2718\u2719\u0007", + "a\u0002\u0002\u2719\u066e\u0003\u0002\u0002\u0002\u271a\u271b\u0007", + "B\u0002\u0002\u271b\u0670\u0003\u0002\u0002\u0002\u271c\u271d\u0007", + "%\u0002\u0002\u271d\u0672\u0003\u0002\u0002\u0002\u271e\u271f\u0007", + "&\u0002\u0002\u271f\u0674\u0003\u0002\u0002\u0002\u2720\u2721\u0007", + "*\u0002\u0002\u2721\u0676\u0003\u0002\u0002\u0002\u2722\u2723\u0007", + "+\u0002\u0002\u2723\u0678\u0003\u0002\u0002\u0002\u2724\u2725\u0007", + ".\u0002\u0002\u2725\u067a\u0003\u0002\u0002\u0002\u2726\u2727\u0007", + "=\u0002\u0002\u2727\u067c\u0003\u0002\u0002\u0002\u2728\u2729\u0007", + "<\u0002\u0002\u2729\u067e\u0003\u0002\u0002\u0002\u272a\u272b\u0007", + ",\u0002\u0002\u272b\u0680\u0003\u0002\u0002\u0002\u272c\u272d\u0007", + "1\u0002\u0002\u272d\u0682\u0003\u0002\u0002\u0002\u272e\u272f\u0007", + "\'\u0002\u0002\u272f\u0684\u0003\u0002\u0002\u0002\u2730\u2731\u0007", + "-\u0002\u0002\u2731\u0686\u0003\u0002\u0002\u0002\u2732\u2733\u0007", + "/\u0002\u0002\u2733\u0688\u0003\u0002\u0002\u0002\u2734\u2735\u0007", + "\u0080\u0002\u0002\u2735\u068a\u0003\u0002\u0002\u0002\u2736\u2737\u0007", + "~\u0002\u0002\u2737\u068c\u0003\u0002\u0002\u0002\u2738\u2739\u0007", + "(\u0002\u0002\u2739\u068e\u0003\u0002\u0002\u0002\u273a\u273b\u0007", + "`\u0002\u0002\u273b\u0690\u0003\u0002\u0002\u0002\u273c\u273d\t\u000e", + "\u0002\u0002\u273d\u0692\u0003\u0002\u0002\u0002\u273e\u273f\t\u0003", + "\u0002\u0002\u273f\u2740\t\u0003\u0002\u0002\u2740\u2741\t\u0003\u0002", + "\u0002\u2741\u2742\t\u0003\u0002\u0002\u2742\u0694\u0003\u0002\u0002", + "\u0002\u2743\u2745\t\u000f\u0002\u0002\u2744\u2743\u0003\u0002\u0002", + "\u0002\u2744\u2745\u0003\u0002\u0002\u0002\u2745\u2747\u0003\u0002\u0002", + "\u0002\u2746\u2748\t\u000f\u0002\u0002\u2747\u2746\u0003\u0002\u0002", + "\u0002\u2747\u2748\u0003\u0002\u0002\u0002\u2748\u2749\u0003\u0002\u0002", + "\u0002\u2749\u274a\t\u000f\u0002\u0002\u274a\u0696\u0003\u0002\u0002", + "\u0002\u274b\u274d\u0005\u069b\u034e\u0002\u274c\u274b\u0003\u0002\u0002", + "\u0002\u274d\u274e\u0003\u0002\u0002\u0002\u274e\u274c\u0003\u0002\u0002", + "\u0002\u274e\u274f\u0003\u0002\u0002\u0002\u274f\u2750\u0003\u0002\u0002", + "\u0002\u2750\u2752\u00070\u0002\u0002\u2751\u2753\u0005\u069b\u034e", + "\u0002\u2752\u2751\u0003\u0002\u0002\u0002\u2753\u2754\u0003\u0002\u0002", + "\u0002\u2754\u2752\u0003\u0002\u0002\u0002\u2754\u2755\u0003\u0002\u0002", + "\u0002\u2755\u2764\u0003\u0002\u0002\u0002\u2756\u2758\u0005\u069b\u034e", + "\u0002\u2757\u2756\u0003\u0002\u0002\u0002\u2758\u2759\u0003\u0002\u0002", + "\u0002\u2759\u2757\u0003\u0002\u0002\u0002\u2759\u275a\u0003\u0002\u0002", + "\u0002\u275a\u275b\u0003\u0002\u0002\u0002\u275b\u275c\u00070\u0002", + "\u0002\u275c\u2764\u0003\u0002\u0002\u0002\u275d\u275f\u00070\u0002", + "\u0002\u275e\u2760\u0005\u069b\u034e\u0002\u275f\u275e\u0003\u0002\u0002", + "\u0002\u2760\u2761\u0003\u0002\u0002\u0002\u2761\u275f\u0003\u0002\u0002", + "\u0002\u2761\u2762\u0003\u0002\u0002\u0002\u2762\u2764\u0003\u0002\u0002", + "\u0002\u2763\u274c\u0003\u0002\u0002\u0002\u2763\u2757\u0003\u0002\u0002", + "\u0002\u2763\u275d\u0003\u0002\u0002\u0002\u2764\u0698\u0003\u0002\u0002", + "\u0002\u2765\u2766\t\u0003\u0002\u0002\u2766\u069a\u0003\u0002\u0002", + "\u0002\u2767\u2768\t\u000f\u0002\u0002\u2768\u069c\u0003\u0002\u0002", + "\u0002\u2769\u276a\t\u0010\u0002\u0002\u276a\u069e\u0003\u0002\u0002", + "\u0002M\u0002\u0957\u0b1b\u0cc1\u0ccb\u0cce\u0cd1\u0cd4\u0cd7\u0cda", + "\u0cde\u0ce1\u0ce4\u0ce7\u0ceb\u0cee\u0cf1\u0cf4\u0cf8\u0cfb\u0cfe\u0d01", + "\u0d05\u0d08\u0d0b\u0d0e\u0d12\u0d15\u0d18\u0d1b\u0d1f\u0d22\u0d25\u0d28", + "\u0d2c\u0d2f\u0d32\u0d35\u0d38\u1721\u2651\u265a\u265c\u266a\u2673\u267d", + "\u2684\u2686\u268b\u268f\u2693\u2695\u269d\u26a7\u26ad\u26af\u26b2\u26bc", + "\u26c2\u26c4\u26c7\u26cf\u26d5\u26d7\u26e1\u26e8\u26ec\u26f1\u2744\u2747", + "\u274e\u2754\u2759\u2761\u2763\u0004\b\u0002\u0002\u0002\u0003\u0002"].join(""); + + +var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); + +function TSqlLexer(input) { + antlr4.Lexer.call(this, input); + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); + return this; +} + +TSqlLexer.prototype = Object.create(antlr4.Lexer.prototype); +TSqlLexer.prototype.constructor = TSqlLexer; + +Object.defineProperty(TSqlLexer.prototype, "atn", { + get : function() { + return atn; + } +}); + +TSqlLexer.EOF = antlr4.Token.EOF; +TSqlLexer.ABSENT = 1; +TSqlLexer.ADD = 2; +TSqlLexer.AES = 3; +TSqlLexer.ALL = 4; +TSqlLexer.ALLOW_CONNECTIONS = 5; +TSqlLexer.ALLOW_MULTIPLE_EVENT_LOSS = 6; +TSqlLexer.ALLOW_SINGLE_EVENT_LOSS = 7; +TSqlLexer.ALTER = 8; +TSqlLexer.AND = 9; +TSqlLexer.ANONYMOUS = 10; +TSqlLexer.ANY = 11; +TSqlLexer.APPEND = 12; +TSqlLexer.APPLICATION = 13; +TSqlLexer.AS = 14; +TSqlLexer.ASC = 15; +TSqlLexer.ASYMMETRIC = 16; +TSqlLexer.ASYNCHRONOUS_COMMIT = 17; +TSqlLexer.AUTHORIZATION = 18; +TSqlLexer.AUTHENTICATION = 19; +TSqlLexer.AUTOMATED_BACKUP_PREFERENCE = 20; +TSqlLexer.AUTOMATIC = 21; +TSqlLexer.AVAILABILITY_MODE = 22; +TSqlLexer.BACKSLASH = 23; +TSqlLexer.BACKUP = 24; +TSqlLexer.BEFORE = 25; +TSqlLexer.BEGIN = 26; +TSqlLexer.BETWEEN = 27; +TSqlLexer.BLOCK = 28; +TSqlLexer.BLOCKSIZE = 29; +TSqlLexer.BLOCKING_HIERARCHY = 30; +TSqlLexer.BREAK = 31; +TSqlLexer.BROWSE = 32; +TSqlLexer.BUFFER = 33; +TSqlLexer.BUFFERCOUNT = 34; +TSqlLexer.BULK = 35; +TSqlLexer.BY = 36; +TSqlLexer.CACHE = 37; +TSqlLexer.CALLED = 38; +TSqlLexer.CASCADE = 39; +TSqlLexer.CASE = 40; +TSqlLexer.CERTIFICATE = 41; +TSqlLexer.CHANGETABLE = 42; +TSqlLexer.CHANGES = 43; +TSqlLexer.CHECK = 44; +TSqlLexer.CHECKPOINT = 45; +TSqlLexer.CHECK_POLICY = 46; +TSqlLexer.CHECK_EXPIRATION = 47; +TSqlLexer.CLASSIFIER_FUNCTION = 48; +TSqlLexer.CLOSE = 49; +TSqlLexer.CLUSTER = 50; +TSqlLexer.CLUSTERED = 51; +TSqlLexer.COALESCE = 52; +TSqlLexer.COLLATE = 53; +TSqlLexer.COLUMN = 54; +TSqlLexer.COMPRESSION = 55; +TSqlLexer.COMMIT = 56; +TSqlLexer.COMPUTE = 57; +TSqlLexer.CONFIGURATION = 58; +TSqlLexer.CONSTRAINT = 59; +TSqlLexer.CONTAINMENT = 60; +TSqlLexer.CONTAINS = 61; +TSqlLexer.CONTAINSTABLE = 62; +TSqlLexer.CONTEXT = 63; +TSqlLexer.CONTINUE = 64; +TSqlLexer.CONTINUE_AFTER_ERROR = 65; +TSqlLexer.CONTRACT = 66; +TSqlLexer.CONTRACT_NAME = 67; +TSqlLexer.CONVERSATION = 68; +TSqlLexer.CONVERT = 69; +TSqlLexer.COPY_ONLY = 70; +TSqlLexer.CREATE = 71; +TSqlLexer.CROSS = 72; +TSqlLexer.CURRENT = 73; +TSqlLexer.CURRENT_DATE = 74; +TSqlLexer.CURRENT_TIME = 75; +TSqlLexer.CURRENT_TIMESTAMP = 76; +TSqlLexer.CURRENT_USER = 77; +TSqlLexer.CURSOR = 78; +TSqlLexer.CYCLE = 79; +TSqlLexer.DATA_COMPRESSION = 80; +TSqlLexer.DATA_SOURCE = 81; +TSqlLexer.DATABASE = 82; +TSqlLexer.DATABASE_MIRRORING = 83; +TSqlLexer.DBCC = 84; +TSqlLexer.DEALLOCATE = 85; +TSqlLexer.DECLARE = 86; +TSqlLexer.DEFAULT = 87; +TSqlLexer.DEFAULT_DATABASE = 88; +TSqlLexer.DEFAULT_SCHEMA = 89; +TSqlLexer.DELETE = 90; +TSqlLexer.DENY = 91; +TSqlLexer.DESC = 92; +TSqlLexer.DIAGNOSTICS = 93; +TSqlLexer.DIFFERENTIAL = 94; +TSqlLexer.DISK = 95; +TSqlLexer.DISTINCT = 96; +TSqlLexer.DISTRIBUTED = 97; +TSqlLexer.DOUBLE = 98; +TSqlLexer.DOUBLE_BACK_SLASH = 99; +TSqlLexer.DOUBLE_FORWARD_SLASH = 100; +TSqlLexer.DROP = 101; +TSqlLexer.DTC_SUPPORT = 102; +TSqlLexer.DUMP = 103; +TSqlLexer.ELSE = 104; +TSqlLexer.ENABLED = 105; +TSqlLexer.END = 106; +TSqlLexer.ENDPOINT = 107; +TSqlLexer.ERRLVL = 108; +TSqlLexer.ESCAPE = 109; +TSqlLexer.ERROR = 110; +TSqlLexer.EVENT = 111; +TSqlLexer.EVENTDATA = 112; +TSqlLexer.EVENT_RETENTION_MODE = 113; +TSqlLexer.EXCEPT = 114; +TSqlLexer.EXECUTABLE_FILE = 115; +TSqlLexer.EXECUTE = 116; +TSqlLexer.EXISTS = 117; +TSqlLexer.EXPIREDATE = 118; +TSqlLexer.EXIT = 119; +TSqlLexer.EXTENSION = 120; +TSqlLexer.EXTERNAL = 121; +TSqlLexer.EXTERNAL_ACCESS = 122; +TSqlLexer.FAILOVER = 123; +TSqlLexer.FAILURECONDITIONLEVEL = 124; +TSqlLexer.FAN_IN = 125; +TSqlLexer.FETCH = 126; +TSqlLexer.FILE = 127; +TSqlLexer.FILENAME = 128; +TSqlLexer.FILLFACTOR = 129; +TSqlLexer.FILE_SNAPSHOT = 130; +TSqlLexer.FOR = 131; +TSqlLexer.FORCESEEK = 132; +TSqlLexer.FORCE_SERVICE_ALLOW_DATA_LOSS = 133; +TSqlLexer.FOREIGN = 134; +TSqlLexer.FREETEXT = 135; +TSqlLexer.FREETEXTTABLE = 136; +TSqlLexer.FROM = 137; +TSqlLexer.FULL = 138; +TSqlLexer.FUNCTION = 139; +TSqlLexer.GET = 140; +TSqlLexer.GOTO = 141; +TSqlLexer.GOVERNOR = 142; +TSqlLexer.GRANT = 143; +TSqlLexer.GROUP = 144; +TSqlLexer.HAVING = 145; +TSqlLexer.HASHED = 146; +TSqlLexer.HEALTHCHECKTIMEOUT = 147; +TSqlLexer.IDENTITY = 148; +TSqlLexer.IDENTITYCOL = 149; +TSqlLexer.IDENTITY_INSERT = 150; +TSqlLexer.IF = 151; +TSqlLexer.IIF = 152; +TSqlLexer.IN = 153; +TSqlLexer.INCLUDE = 154; +TSqlLexer.INCREMENT = 155; +TSqlLexer.INDEX = 156; +TSqlLexer.INFINITE = 157; +TSqlLexer.INIT = 158; +TSqlLexer.INNER = 159; +TSqlLexer.INSERT = 160; +TSqlLexer.INSTEAD = 161; +TSqlLexer.INTERSECT = 162; +TSqlLexer.INTO = 163; +TSqlLexer.IPV4_ADDR = 164; +TSqlLexer.IPV6_ADDR = 165; +TSqlLexer.IS = 166; +TSqlLexer.ISNULL = 167; +TSqlLexer.JOIN = 168; +TSqlLexer.KERBEROS = 169; +TSqlLexer.KEY = 170; +TSqlLexer.KEY_PATH = 171; +TSqlLexer.KEY_STORE_PROVIDER_NAME = 172; +TSqlLexer.KILL = 173; +TSqlLexer.LANGUAGE = 174; +TSqlLexer.LEFT = 175; +TSqlLexer.LIBRARY = 176; +TSqlLexer.LIFETIME = 177; +TSqlLexer.LIKE = 178; +TSqlLexer.LINENO = 179; +TSqlLexer.LINUX = 180; +TSqlLexer.LISTENER_IP = 181; +TSqlLexer.LISTENER_PORT = 182; +TSqlLexer.LOAD = 183; +TSqlLexer.LOCAL_SERVICE_NAME = 184; +TSqlLexer.LOG = 185; +TSqlLexer.MATCHED = 186; +TSqlLexer.MASTER = 187; +TSqlLexer.MAX_MEMORY = 188; +TSqlLexer.MAXTRANSFER = 189; +TSqlLexer.MAXVALUE = 190; +TSqlLexer.MAX_DISPATCH_LATENCY = 191; +TSqlLexer.MAX_EVENT_SIZE = 192; +TSqlLexer.MAX_SIZE = 193; +TSqlLexer.MAX_OUTSTANDING_IO_PER_VOLUME = 194; +TSqlLexer.MEDIADESCRIPTION = 195; +TSqlLexer.MEDIANAME = 196; +TSqlLexer.MEMBER = 197; +TSqlLexer.MEMORY_PARTITION_MODE = 198; +TSqlLexer.MERGE = 199; +TSqlLexer.MESSAGE_FORWARDING = 200; +TSqlLexer.MESSAGE_FORWARD_SIZE = 201; +TSqlLexer.MINVALUE = 202; +TSqlLexer.MIRROR = 203; +TSqlLexer.MUST_CHANGE = 204; +TSqlLexer.NATIONAL = 205; +TSqlLexer.NEGOTIATE = 206; +TSqlLexer.NOCHECK = 207; +TSqlLexer.NOFORMAT = 208; +TSqlLexer.NOINIT = 209; +TSqlLexer.NONCLUSTERED = 210; +TSqlLexer.NONE = 211; +TSqlLexer.NOREWIND = 212; +TSqlLexer.NOSKIP = 213; +TSqlLexer.NOUNLOAD = 214; +TSqlLexer.NO_CHECKSUM = 215; +TSqlLexer.NO_COMPRESSION = 216; +TSqlLexer.NO_EVENT_LOSS = 217; +TSqlLexer.NOT = 218; +TSqlLexer.NOTIFICATION = 219; +TSqlLexer.NTLM = 220; +TSqlLexer.NULL = 221; +TSqlLexer.NULLIF = 222; +TSqlLexer.OF = 223; +TSqlLexer.OFF = 224; +TSqlLexer.OFFSETS = 225; +TSqlLexer.OLD_PASSWORD = 226; +TSqlLexer.ON = 227; +TSqlLexer.ON_FAILURE = 228; +TSqlLexer.OPEN = 229; +TSqlLexer.OPENDATASOURCE = 230; +TSqlLexer.OPENQUERY = 231; +TSqlLexer.OPENROWSET = 232; +TSqlLexer.OPENXML = 233; +TSqlLexer.OPTION = 234; +TSqlLexer.OR = 235; +TSqlLexer.ORDER = 236; +TSqlLexer.OUTER = 237; +TSqlLexer.OVER = 238; +TSqlLexer.PAGE = 239; +TSqlLexer.PARAM_NODE = 240; +TSqlLexer.PARTIAL = 241; +TSqlLexer.PASSWORD = 242; +TSqlLexer.PERCENT = 243; +TSqlLexer.PERMISSION_SET = 244; +TSqlLexer.PER_CPU = 245; +TSqlLexer.PER_DB = 246; +TSqlLexer.PER_NODE = 247; +TSqlLexer.PIVOT = 248; +TSqlLexer.PLAN = 249; +TSqlLexer.PLATFORM = 250; +TSqlLexer.POLICY = 251; +TSqlLexer.PRECISION = 252; +TSqlLexer.PREDICATE = 253; +TSqlLexer.PRIMARY = 254; +TSqlLexer.PRINT = 255; +TSqlLexer.PROC = 256; +TSqlLexer.PROCEDURE = 257; +TSqlLexer.PROCESS = 258; +TSqlLexer.PUBLIC = 259; +TSqlLexer.PYTHON = 260; +TSqlLexer.R = 261; +TSqlLexer.RAISERROR = 262; +TSqlLexer.RAW = 263; +TSqlLexer.READ = 264; +TSqlLexer.READTEXT = 265; +TSqlLexer.READ_WRITE_FILEGROUPS = 266; +TSqlLexer.RECONFIGURE = 267; +TSqlLexer.REFERENCES = 268; +TSqlLexer.REGENERATE = 269; +TSqlLexer.RELATED_CONVERSATION = 270; +TSqlLexer.RELATED_CONVERSATION_GROUP = 271; +TSqlLexer.REPLICATION = 272; +TSqlLexer.REQUIRED = 273; +TSqlLexer.RESET = 274; +TSqlLexer.RESTART = 275; +TSqlLexer.RESTORE = 276; +TSqlLexer.RESTRICT = 277; +TSqlLexer.RESUME = 278; +TSqlLexer.RETAINDAYS = 279; +TSqlLexer.RETURN = 280; +TSqlLexer.RETURNS = 281; +TSqlLexer.REVERT = 282; +TSqlLexer.REVOKE = 283; +TSqlLexer.REWIND = 284; +TSqlLexer.RIGHT = 285; +TSqlLexer.ROLLBACK = 286; +TSqlLexer.ROLE = 287; +TSqlLexer.ROWCOUNT = 288; +TSqlLexer.ROWGUIDCOL = 289; +TSqlLexer.RSA_512 = 290; +TSqlLexer.RSA_1024 = 291; +TSqlLexer.RSA_2048 = 292; +TSqlLexer.RSA_3072 = 293; +TSqlLexer.RSA_4096 = 294; +TSqlLexer.SAFETY = 295; +TSqlLexer.RULE = 296; +TSqlLexer.SAFE = 297; +TSqlLexer.SAVE = 298; +TSqlLexer.SCHEDULER = 299; +TSqlLexer.SCHEMA = 300; +TSqlLexer.SCHEME = 301; +TSqlLexer.SECURITYAUDIT = 302; +TSqlLexer.SELECT = 303; +TSqlLexer.SEMANTICKEYPHRASETABLE = 304; +TSqlLexer.SEMANTICSIMILARITYDETAILSTABLE = 305; +TSqlLexer.SEMANTICSIMILARITYTABLE = 306; +TSqlLexer.SERVER = 307; +TSqlLexer.SERVICE = 308; +TSqlLexer.SERVICE_BROKER = 309; +TSqlLexer.SERVICE_NAME = 310; +TSqlLexer.SESSION = 311; +TSqlLexer.SESSION_USER = 312; +TSqlLexer.SET = 313; +TSqlLexer.SETUSER = 314; +TSqlLexer.SHUTDOWN = 315; +TSqlLexer.SID = 316; +TSqlLexer.SKIP_KEYWORD = 317; +TSqlLexer.SOFTNUMA = 318; +TSqlLexer.SOME = 319; +TSqlLexer.SOURCE = 320; +TSqlLexer.SPECIFICATION = 321; +TSqlLexer.SPLIT = 322; +TSqlLexer.SQLDUMPERFLAGS = 323; +TSqlLexer.SQLDUMPERPATH = 324; +TSqlLexer.SQLDUMPERTIMEOUT = 325; +TSqlLexer.STATISTICS = 326; +TSqlLexer.STATE = 327; +TSqlLexer.STATS = 328; +TSqlLexer.START = 329; +TSqlLexer.STARTED = 330; +TSqlLexer.STARTUP_STATE = 331; +TSqlLexer.STOP = 332; +TSqlLexer.STOPPED = 333; +TSqlLexer.STOP_ON_ERROR = 334; +TSqlLexer.SUPPORTED = 335; +TSqlLexer.SYSTEM_USER = 336; +TSqlLexer.TABLE = 337; +TSqlLexer.TABLESAMPLE = 338; +TSqlLexer.TAPE = 339; +TSqlLexer.TARGET = 340; +TSqlLexer.TCP = 341; +TSqlLexer.TEXTSIZE = 342; +TSqlLexer.THEN = 343; +TSqlLexer.TO = 344; +TSqlLexer.TOP = 345; +TSqlLexer.TRACK_CAUSALITY = 346; +TSqlLexer.TRAN = 347; +TSqlLexer.TRANSACTION = 348; +TSqlLexer.TRANSFER = 349; +TSqlLexer.TRIGGER = 350; +TSqlLexer.TRUNCATE = 351; +TSqlLexer.TSEQUAL = 352; +TSqlLexer.UNCHECKED = 353; +TSqlLexer.UNION = 354; +TSqlLexer.UNIQUE = 355; +TSqlLexer.UNLOCK = 356; +TSqlLexer.UNPIVOT = 357; +TSqlLexer.UNSAFE = 358; +TSqlLexer.UPDATE = 359; +TSqlLexer.UPDATETEXT = 360; +TSqlLexer.URL = 361; +TSqlLexer.USE = 362; +TSqlLexer.USED = 363; +TSqlLexer.USER = 364; +TSqlLexer.VALUES = 365; +TSqlLexer.VARYING = 366; +TSqlLexer.VERBOSELOGGING = 367; +TSqlLexer.VIEW = 368; +TSqlLexer.VISIBILITY = 369; +TSqlLexer.WAITFOR = 370; +TSqlLexer.WHEN = 371; +TSqlLexer.WHERE = 372; +TSqlLexer.WHILE = 373; +TSqlLexer.WINDOWS = 374; +TSqlLexer.WITH = 375; +TSqlLexer.WITHIN = 376; +TSqlLexer.WITHOUT = 377; +TSqlLexer.WITNESS = 378; +TSqlLexer.WRITETEXT = 379; +TSqlLexer.ABSOLUTE = 380; +TSqlLexer.ACCENT_SENSITIVITY = 381; +TSqlLexer.ACTION = 382; +TSqlLexer.ACTIVATION = 383; +TSqlLexer.ACTIVE = 384; +TSqlLexer.ADDRESS = 385; +TSqlLexer.AES_128 = 386; +TSqlLexer.AES_192 = 387; +TSqlLexer.AES_256 = 388; +TSqlLexer.AFFINITY = 389; +TSqlLexer.AFTER = 390; +TSqlLexer.AGGREGATE = 391; +TSqlLexer.ALGORITHM = 392; +TSqlLexer.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = 393; +TSqlLexer.ALLOW_SNAPSHOT_ISOLATION = 394; +TSqlLexer.ALLOWED = 395; +TSqlLexer.ANSI_NULL_DEFAULT = 396; +TSqlLexer.ANSI_NULLS = 397; +TSqlLexer.ANSI_PADDING = 398; +TSqlLexer.ANSI_WARNINGS = 399; +TSqlLexer.APPLICATION_LOG = 400; +TSqlLexer.APPLY = 401; +TSqlLexer.ARITHABORT = 402; +TSqlLexer.ASSEMBLY = 403; +TSqlLexer.AUDIT = 404; +TSqlLexer.AUDIT_GUID = 405; +TSqlLexer.AUTO = 406; +TSqlLexer.AUTO_CLEANUP = 407; +TSqlLexer.AUTO_CLOSE = 408; +TSqlLexer.AUTO_CREATE_STATISTICS = 409; +TSqlLexer.AUTO_SHRINK = 410; +TSqlLexer.AUTO_UPDATE_STATISTICS = 411; +TSqlLexer.AUTO_UPDATE_STATISTICS_ASYNC = 412; +TSqlLexer.AVAILABILITY = 413; +TSqlLexer.AVG = 414; +TSqlLexer.BACKUP_PRIORITY = 415; +TSqlLexer.BEGIN_DIALOG = 416; +TSqlLexer.BIGINT = 417; +TSqlLexer.BINARY_BASE64 = 418; +TSqlLexer.BINARY_CHECKSUM = 419; +TSqlLexer.BINDING = 420; +TSqlLexer.BLOB_STORAGE = 421; +TSqlLexer.BROKER = 422; +TSqlLexer.BROKER_INSTANCE = 423; +TSqlLexer.BULK_LOGGED = 424; +TSqlLexer.CALLER = 425; +TSqlLexer.CAP_CPU_PERCENT = 426; +TSqlLexer.CAST = 427; +TSqlLexer.CATALOG = 428; +TSqlLexer.CATCH = 429; +TSqlLexer.CHANGE_RETENTION = 430; +TSqlLexer.CHANGE_TRACKING = 431; +TSqlLexer.CHECKSUM = 432; +TSqlLexer.CHECKSUM_AGG = 433; +TSqlLexer.CLEANUP = 434; +TSqlLexer.COLLECTION = 435; +TSqlLexer.COLUMN_MASTER_KEY = 436; +TSqlLexer.COMMITTED = 437; +TSqlLexer.COMPATIBILITY_LEVEL = 438; +TSqlLexer.CONCAT = 439; +TSqlLexer.CONCAT_NULL_YIELDS_NULL = 440; +TSqlLexer.CONTENT = 441; +TSqlLexer.CONTROL = 442; +TSqlLexer.COOKIE = 443; +TSqlLexer.COUNT = 444; +TSqlLexer.COUNT_BIG = 445; +TSqlLexer.COUNTER = 446; +TSqlLexer.CPU = 447; +TSqlLexer.CREATE_NEW = 448; +TSqlLexer.CREATION_DISPOSITION = 449; +TSqlLexer.CREDENTIAL = 450; +TSqlLexer.CRYPTOGRAPHIC = 451; +TSqlLexer.CURSOR_CLOSE_ON_COMMIT = 452; +TSqlLexer.CURSOR_DEFAULT = 453; +TSqlLexer.DATA = 454; +TSqlLexer.DATE_CORRELATION_OPTIMIZATION = 455; +TSqlLexer.DATEADD = 456; +TSqlLexer.DATEDIFF = 457; +TSqlLexer.DATENAME = 458; +TSqlLexer.DATEPART = 459; +TSqlLexer.DAYS = 460; +TSqlLexer.DB_CHAINING = 461; +TSqlLexer.DB_FAILOVER = 462; +TSqlLexer.DECRYPTION = 463; +TSqlLexer.DEFAULT_DOUBLE_QUOTE = 464; +TSqlLexer.DEFAULT_FULLTEXT_LANGUAGE = 465; +TSqlLexer.DEFAULT_LANGUAGE = 466; +TSqlLexer.DELAY = 467; +TSqlLexer.DELAYED_DURABILITY = 468; +TSqlLexer.DELETED = 469; +TSqlLexer.DENSE_RANK = 470; +TSqlLexer.DEPENDENTS = 471; +TSqlLexer.DES = 472; +TSqlLexer.DESCRIPTION = 473; +TSqlLexer.DESX = 474; +TSqlLexer.DHCP = 475; +TSqlLexer.DIALOG = 476; +TSqlLexer.DIRECTORY_NAME = 477; +TSqlLexer.DISABLE = 478; +TSqlLexer.DISABLE_BROKER = 479; +TSqlLexer.DISABLED = 480; +TSqlLexer.DISK_DRIVE = 481; +TSqlLexer.DOCUMENT = 482; +TSqlLexer.DYNAMIC = 483; +TSqlLexer.ELEMENTS = 484; +TSqlLexer.EMERGENCY = 485; +TSqlLexer.EMPTY = 486; +TSqlLexer.ENABLE = 487; +TSqlLexer.ENABLE_BROKER = 488; +TSqlLexer.ENCRYPTED_VALUE = 489; +TSqlLexer.ENCRYPTION = 490; +TSqlLexer.ENDPOINT_URL = 491; +TSqlLexer.ERROR_BROKER_CONVERSATIONS = 492; +TSqlLexer.EXCLUSIVE = 493; +TSqlLexer.EXECUTABLE = 494; +TSqlLexer.EXIST = 495; +TSqlLexer.EXPAND = 496; +TSqlLexer.EXPIRY_DATE = 497; +TSqlLexer.EXPLICIT = 498; +TSqlLexer.FAIL_OPERATION = 499; +TSqlLexer.FAILOVER_MODE = 500; +TSqlLexer.FAILURE = 501; +TSqlLexer.FAILURE_CONDITION_LEVEL = 502; +TSqlLexer.FAST = 503; +TSqlLexer.FAST_FORWARD = 504; +TSqlLexer.FILEGROUP = 505; +TSqlLexer.FILEGROWTH = 506; +TSqlLexer.FILEPATH = 507; +TSqlLexer.FILESTREAM = 508; +TSqlLexer.FILTER = 509; +TSqlLexer.FIRST = 510; +TSqlLexer.FIRST_VALUE = 511; +TSqlLexer.FOLLOWING = 512; +TSqlLexer.FORCE = 513; +TSqlLexer.FORCE_FAILOVER_ALLOW_DATA_LOSS = 514; +TSqlLexer.FORCED = 515; +TSqlLexer.FORMAT = 516; +TSqlLexer.FORWARD_ONLY = 517; +TSqlLexer.FULLSCAN = 518; +TSqlLexer.FULLTEXT = 519; +TSqlLexer.GB = 520; +TSqlLexer.GETDATE = 521; +TSqlLexer.GETUTCDATE = 522; +TSqlLexer.GLOBAL = 523; +TSqlLexer.GO = 524; +TSqlLexer.GROUP_MAX_REQUESTS = 525; +TSqlLexer.GROUPING = 526; +TSqlLexer.GROUPING_ID = 527; +TSqlLexer.HADR = 528; +TSqlLexer.HASH = 529; +TSqlLexer.HEALTH_CHECK_TIMEOUT = 530; +TSqlLexer.HIGH = 531; +TSqlLexer.HONOR_BROKER_PRIORITY = 532; +TSqlLexer.HOURS = 533; +TSqlLexer.IDENTITY_VALUE = 534; +TSqlLexer.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX = 535; +TSqlLexer.IMMEDIATE = 536; +TSqlLexer.IMPERSONATE = 537; +TSqlLexer.IMPORTANCE = 538; +TSqlLexer.INCLUDE_NULL_VALUES = 539; +TSqlLexer.INCREMENTAL = 540; +TSqlLexer.INITIATOR = 541; +TSqlLexer.INPUT = 542; +TSqlLexer.INSENSITIVE = 543; +TSqlLexer.INSERTED = 544; +TSqlLexer.INT = 545; +TSqlLexer.IP = 546; +TSqlLexer.ISOLATION = 547; +TSqlLexer.JOB = 548; +TSqlLexer.JSON = 549; +TSqlLexer.KB = 550; +TSqlLexer.KEEP = 551; +TSqlLexer.KEEPFIXED = 552; +TSqlLexer.KEY_SOURCE = 553; +TSqlLexer.KEYS = 554; +TSqlLexer.KEYSET = 555; +TSqlLexer.LAG = 556; +TSqlLexer.LAST = 557; +TSqlLexer.LAST_VALUE = 558; +TSqlLexer.LEAD = 559; +TSqlLexer.LEVEL = 560; +TSqlLexer.LIST = 561; +TSqlLexer.LISTENER = 562; +TSqlLexer.LISTENER_URL = 563; +TSqlLexer.LOB_COMPACTION = 564; +TSqlLexer.LOCAL = 565; +TSqlLexer.LOCATION = 566; +TSqlLexer.LOCK = 567; +TSqlLexer.LOCK_ESCALATION = 568; +TSqlLexer.LOGIN = 569; +TSqlLexer.LOOP = 570; +TSqlLexer.LOW = 571; +TSqlLexer.MANUAL = 572; +TSqlLexer.MARK = 573; +TSqlLexer.MATERIALIZED = 574; +TSqlLexer.MAX = 575; +TSqlLexer.MAX_CPU_PERCENT = 576; +TSqlLexer.MAX_DOP = 577; +TSqlLexer.MAX_FILES = 578; +TSqlLexer.MAX_IOPS_PER_VOLUME = 579; +TSqlLexer.MAX_MEMORY_PERCENT = 580; +TSqlLexer.MAX_PROCESSES = 581; +TSqlLexer.MAX_QUEUE_READERS = 582; +TSqlLexer.MAX_ROLLOVER_FILES = 583; +TSqlLexer.MAXDOP = 584; +TSqlLexer.MAXRECURSION = 585; +TSqlLexer.MAXSIZE = 586; +TSqlLexer.MB = 587; +TSqlLexer.MEDIUM = 588; +TSqlLexer.MEMORY_OPTIMIZED_DATA = 589; +TSqlLexer.MESSAGE = 590; +TSqlLexer.MIN = 591; +TSqlLexer.MIN_ACTIVE_ROWVERSION = 592; +TSqlLexer.MIN_CPU_PERCENT = 593; +TSqlLexer.MIN_IOPS_PER_VOLUME = 594; +TSqlLexer.MIN_MEMORY_PERCENT = 595; +TSqlLexer.MINUTES = 596; +TSqlLexer.MIRROR_ADDRESS = 597; +TSqlLexer.MIXED_PAGE_ALLOCATION = 598; +TSqlLexer.MODE = 599; +TSqlLexer.MODIFY = 600; +TSqlLexer.MOVE = 601; +TSqlLexer.MULTI_USER = 602; +TSqlLexer.NAME = 603; +TSqlLexer.NESTED_TRIGGERS = 604; +TSqlLexer.NEW_ACCOUNT = 605; +TSqlLexer.NEW_BROKER = 606; +TSqlLexer.NEW_PASSWORD = 607; +TSqlLexer.NEXT = 608; +TSqlLexer.NO = 609; +TSqlLexer.NO_TRUNCATE = 610; +TSqlLexer.NO_WAIT = 611; +TSqlLexer.NOCOUNT = 612; +TSqlLexer.NODES = 613; +TSqlLexer.NOEXPAND = 614; +TSqlLexer.NON_TRANSACTED_ACCESS = 615; +TSqlLexer.NORECOMPUTE = 616; +TSqlLexer.NORECOVERY = 617; +TSqlLexer.NOWAIT = 618; +TSqlLexer.NTILE = 619; +TSqlLexer.NUMANODE = 620; +TSqlLexer.NUMBER = 621; +TSqlLexer.NUMERIC_ROUNDABORT = 622; +TSqlLexer.OBJECT = 623; +TSqlLexer.OFFLINE = 624; +TSqlLexer.OFFSET = 625; +TSqlLexer.OLD_ACCOUNT = 626; +TSqlLexer.ONLINE = 627; +TSqlLexer.ONLY = 628; +TSqlLexer.OPEN_EXISTING = 629; +TSqlLexer.OPTIMISTIC = 630; +TSqlLexer.OPTIMIZE = 631; +TSqlLexer.OUT = 632; +TSqlLexer.OUTPUT = 633; +TSqlLexer.OVERRIDE = 634; +TSqlLexer.OWNER = 635; +TSqlLexer.PAGE_VERIFY = 636; +TSqlLexer.PARAMETERIZATION = 637; +TSqlLexer.PARTITION = 638; +TSqlLexer.PARTITIONS = 639; +TSqlLexer.PARTNER = 640; +TSqlLexer.PATH = 641; +TSqlLexer.POISON_MESSAGE_HANDLING = 642; +TSqlLexer.POOL = 643; +TSqlLexer.PORT = 644; +TSqlLexer.PRECEDING = 645; +TSqlLexer.PRIMARY_ROLE = 646; +TSqlLexer.PRIOR = 647; +TSqlLexer.PRIORITY = 648; +TSqlLexer.PRIORITY_LEVEL = 649; +TSqlLexer.PRIVATE = 650; +TSqlLexer.PRIVATE_KEY = 651; +TSqlLexer.PRIVILEGES = 652; +TSqlLexer.PROCEDURE_NAME = 653; +TSqlLexer.PROPERTY = 654; +TSqlLexer.PROVIDER = 655; +TSqlLexer.PROVIDER_KEY_NAME = 656; +TSqlLexer.QUERY = 657; +TSqlLexer.QUEUE = 658; +TSqlLexer.QUEUE_DELAY = 659; +TSqlLexer.QUOTED_IDENTIFIER = 660; +TSqlLexer.RANGE = 661; +TSqlLexer.RANK = 662; +TSqlLexer.RC2 = 663; +TSqlLexer.RC4 = 664; +TSqlLexer.RC4_128 = 665; +TSqlLexer.READ_COMMITTED_SNAPSHOT = 666; +TSqlLexer.READ_ONLY = 667; +TSqlLexer.READ_ONLY_ROUTING_LIST = 668; +TSqlLexer.READ_WRITE = 669; +TSqlLexer.READONLY = 670; +TSqlLexer.REBUILD = 671; +TSqlLexer.RECEIVE = 672; +TSqlLexer.RECOMPILE = 673; +TSqlLexer.RECOVERY = 674; +TSqlLexer.RECURSIVE_TRIGGERS = 675; +TSqlLexer.RELATIVE = 676; +TSqlLexer.REMOTE = 677; +TSqlLexer.REMOTE_SERVICE_NAME = 678; +TSqlLexer.REMOVE = 679; +TSqlLexer.REORGANIZE = 680; +TSqlLexer.REPEATABLE = 681; +TSqlLexer.REPLICA = 682; +TSqlLexer.REQUEST_MAX_CPU_TIME_SEC = 683; +TSqlLexer.REQUEST_MAX_MEMORY_GRANT_PERCENT = 684; +TSqlLexer.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 685; +TSqlLexer.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 686; +TSqlLexer.RESERVE_DISK_SPACE = 687; +TSqlLexer.RESOURCE = 688; +TSqlLexer.RESOURCE_MANAGER_LOCATION = 689; +TSqlLexer.RESTRICTED_USER = 690; +TSqlLexer.RETENTION = 691; +TSqlLexer.ROBUST = 692; +TSqlLexer.ROOT = 693; +TSqlLexer.ROUTE = 694; +TSqlLexer.ROW = 695; +TSqlLexer.ROW_NUMBER = 696; +TSqlLexer.ROWGUID = 697; +TSqlLexer.ROWS = 698; +TSqlLexer.SAMPLE = 699; +TSqlLexer.SCHEMABINDING = 700; +TSqlLexer.SCOPED = 701; +TSqlLexer.SCROLL = 702; +TSqlLexer.SCROLL_LOCKS = 703; +TSqlLexer.SEARCH = 704; +TSqlLexer.SECONDARY = 705; +TSqlLexer.SECONDARY_ONLY = 706; +TSqlLexer.SECONDARY_ROLE = 707; +TSqlLexer.SECONDS = 708; +TSqlLexer.SECRET = 709; +TSqlLexer.SECURITY = 710; +TSqlLexer.SECURITY_LOG = 711; +TSqlLexer.SEEDING_MODE = 712; +TSqlLexer.SELF = 713; +TSqlLexer.SEMI_SENSITIVE = 714; +TSqlLexer.SEND = 715; +TSqlLexer.SENT = 716; +TSqlLexer.SEQUENCE = 717; +TSqlLexer.SERIALIZABLE = 718; +TSqlLexer.SESSION_TIMEOUT = 719; +TSqlLexer.SETERROR = 720; +TSqlLexer.SHARE = 721; +TSqlLexer.SHOWPLAN = 722; +TSqlLexer.SIGNATURE = 723; +TSqlLexer.SIMPLE = 724; +TSqlLexer.SINGLE_USER = 725; +TSqlLexer.SIZE = 726; +TSqlLexer.SMALLINT = 727; +TSqlLexer.SNAPSHOT = 728; +TSqlLexer.SPATIAL_WINDOW_MAX_CELLS = 729; +TSqlLexer.STANDBY = 730; +TSqlLexer.START_DATE = 731; +TSqlLexer.STATIC = 732; +TSqlLexer.STATS_STREAM = 733; +TSqlLexer.STATUS = 734; +TSqlLexer.STATUSONLY = 735; +TSqlLexer.STDEV = 736; +TSqlLexer.STDEVP = 737; +TSqlLexer.STOPLIST = 738; +TSqlLexer.STRING_AGG = 739; +TSqlLexer.STUFF = 740; +TSqlLexer.SUBJECT = 741; +TSqlLexer.SUBSCRIPTION = 742; +TSqlLexer.SUM = 743; +TSqlLexer.SUSPEND = 744; +TSqlLexer.SYMMETRIC = 745; +TSqlLexer.SYNCHRONOUS_COMMIT = 746; +TSqlLexer.SYNONYM = 747; +TSqlLexer.SYSTEM = 748; +TSqlLexer.TAKE = 749; +TSqlLexer.TARGET_RECOVERY_TIME = 750; +TSqlLexer.TB = 751; +TSqlLexer.TEXTIMAGE_ON = 752; +TSqlLexer.THROW = 753; +TSqlLexer.TIES = 754; +TSqlLexer.TIME = 755; +TSqlLexer.TIMEOUT = 756; +TSqlLexer.TIMER = 757; +TSqlLexer.TINYINT = 758; +TSqlLexer.TORN_PAGE_DETECTION = 759; +TSqlLexer.TRANSFORM_NOISE_WORDS = 760; +TSqlLexer.TRIPLE_DES = 761; +TSqlLexer.TRIPLE_DES_3KEY = 762; +TSqlLexer.TRUSTWORTHY = 763; +TSqlLexer.TRY = 764; +TSqlLexer.TSQL = 765; +TSqlLexer.TWO_DIGIT_YEAR_CUTOFF = 766; +TSqlLexer.TYPE = 767; +TSqlLexer.TYPE_WARNING = 768; +TSqlLexer.UNBOUNDED = 769; +TSqlLexer.UNCOMMITTED = 770; +TSqlLexer.UNKNOWN = 771; +TSqlLexer.UNLIMITED = 772; +TSqlLexer.UOW = 773; +TSqlLexer.USING = 774; +TSqlLexer.VALID_XML = 775; +TSqlLexer.VALIDATION = 776; +TSqlLexer.VALUE = 777; +TSqlLexer.VAR = 778; +TSqlLexer.VARP = 779; +TSqlLexer.VIEW_METADATA = 780; +TSqlLexer.VIEWS = 781; +TSqlLexer.WAIT = 782; +TSqlLexer.WELL_FORMED_XML = 783; +TSqlLexer.WITHOUT_ARRAY_WRAPPER = 784; +TSqlLexer.WORK = 785; +TSqlLexer.WORKLOAD = 786; +TSqlLexer.XML = 787; +TSqlLexer.XMLDATA = 788; +TSqlLexer.XMLNAMESPACES = 789; +TSqlLexer.XMLSCHEMA = 790; +TSqlLexer.XSINIL = 791; +TSqlLexer.DOLLAR_ACTION = 792; +TSqlLexer.SPACE = 793; +TSqlLexer.COMMENT = 794; +TSqlLexer.LINE_COMMENT = 795; +TSqlLexer.DOUBLE_QUOTE_ID = 796; +TSqlLexer.SINGLE_QUOTE = 797; +TSqlLexer.SQUARE_BRACKET_ID = 798; +TSqlLexer.LOCAL_ID = 799; +TSqlLexer.DECIMAL = 800; +TSqlLexer.ID = 801; +TSqlLexer.QUOTED_URL = 802; +TSqlLexer.QUOTED_HOST_AND_PORT = 803; +TSqlLexer.STRING = 804; +TSqlLexer.BINARY = 805; +TSqlLexer.FLOAT = 806; +TSqlLexer.REAL = 807; +TSqlLexer.EQUAL = 808; +TSqlLexer.GREATER = 809; +TSqlLexer.LESS = 810; +TSqlLexer.EXCLAMATION = 811; +TSqlLexer.PLUS_ASSIGN = 812; +TSqlLexer.MINUS_ASSIGN = 813; +TSqlLexer.MULT_ASSIGN = 814; +TSqlLexer.DIV_ASSIGN = 815; +TSqlLexer.MOD_ASSIGN = 816; +TSqlLexer.AND_ASSIGN = 817; +TSqlLexer.XOR_ASSIGN = 818; +TSqlLexer.OR_ASSIGN = 819; +TSqlLexer.DOUBLE_BAR = 820; +TSqlLexer.DOT = 821; +TSqlLexer.UNDERLINE = 822; +TSqlLexer.AT = 823; +TSqlLexer.SHARP = 824; +TSqlLexer.DOLLAR = 825; +TSqlLexer.LR_BRACKET = 826; +TSqlLexer.RR_BRACKET = 827; +TSqlLexer.COMMA = 828; +TSqlLexer.SEMI = 829; +TSqlLexer.COLON = 830; +TSqlLexer.STAR = 831; +TSqlLexer.DIVIDE = 832; +TSqlLexer.MODULE = 833; +TSqlLexer.PLUS = 834; +TSqlLexer.MINUS = 835; +TSqlLexer.BIT_NOT = 836; +TSqlLexer.BIT_OR = 837; +TSqlLexer.BIT_AND = 838; +TSqlLexer.BIT_XOR = 839; +TSqlLexer.IPV4_OCTECT = 840; + +TSqlLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + +TSqlLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; + +TSqlLexer.prototype.literalNames = [ null, "'ABSENT'", "'ADD'", "'AES'", + "'ALL'", "'ALLOW_CONNECTIONS'", "'ALLOW_MULTIPLE_EVENT_LOSS'", + "'ALLOW_SINGLE_EVENT_LOSS'", "'ALTER'", + "'AND'", "'ANONYMOUS'", "'ANY'", "'APPEND'", + "'APPLICATION'", "'AS'", "'ASC'", "'ASYMMETRIC'", + "'ASYNCHRONOUS_COMMIT'", "'AUTHORIZATION'", + "'AUTHENTICATION'", "'AUTOMATED_BACKUP_PREFERENCE'", + "'AUTOMATIC'", "'AVAILABILITY_MODE'", + "'\\'", "'BACKUP'", "'BEFORE'", "'BEGIN'", + "'BETWEEN'", "'BLOCK'", "'BLOCKSIZE'", + "'BLOCKING_HIERARCHY'", "'BREAK'", + "'BROWSE'", "'BUFFER'", "'BUFFERCOUNT'", + "'BULK'", "'BY'", "'CACHE'", "'CALLED'", + "'CASCADE'", "'CASE'", "'CERTIFICATE'", + "'CHANGETABLE'", "'CHANGES'", "'CHECK'", + "'CHECKPOINT'", "'CHECK_POLICY'", "'CHECK_EXPIRATION'", + "'CLASSIFIER_FUNCTION'", "'CLOSE'", + "'CLUSTER'", "'CLUSTERED'", "'COALESCE'", + "'COLLATE'", "'COLUMN'", "'COMPRESSION'", + "'COMMIT'", "'COMPUTE'", "'CONFIGURATION'", + "'CONSTRAINT'", "'CONTAINMENT'", "'CONTAINS'", + "'CONTAINSTABLE'", "'CONTEXT'", "'CONTINUE'", + "'CONTINUE_AFTER_ERROR'", "'CONTRACT'", + "'CONTRACT_NAME'", "'CONVERSATION'", + null, "'COPY_ONLY'", "'CREATE'", "'CROSS'", + "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_TIME'", + "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", + "'CURSOR'", "'CYCLE'", "'DATA_COMPRESSION'", + "'DATA_SOURCE'", "'DATABASE'", "'DATABASE_MIRRORING'", + "'DBCC'", "'DEALLOCATE'", "'DECLARE'", + "'DEFAULT'", "'DEFAULT_DATABASE'", + "'DEFAULT_SCHEMA'", "'DELETE'", "'DENY'", + "'DESC'", "'DIAGNOSTICS'", "'DIFFERENTIAL'", + "'DISK'", "'DISTINCT'", "'DISTRIBUTED'", + "'DOUBLE'", "'\\\\'", "'//'", "'DROP'", + "'DTC_SUPPORT'", "'DUMP'", "'ELSE'", + "'ENABLED'", "'END'", "'ENDPOINT'", + "'ERRLVL'", "'ESCAPE'", "'ERROR'", + "'EVENT'", null, "'EVENT_RETENTION_MODE'", + "'EXCEPT'", "'EXECUTABLE_FILE'", null, + "'EXISTS'", "'EXPIREDATE'", "'EXIT'", + "'EXTENSION'", "'EXTERNAL'", "'EXTERNAL_ACCESS'", + "'FAILOVER'", "'FAILURECONDITIONLEVEL'", + "'FAN_IN'", "'FETCH'", "'FILE'", "'FILENAME'", + "'FILLFACTOR'", "'FILE_SNAPSHOT'", + "'FOR'", "'FORCESEEK'", "'FORCE_SERVICE_ALLOW_DATA_LOSS'", + "'FOREIGN'", "'FREETEXT'", "'FREETEXTTABLE'", + "'FROM'", "'FULL'", "'FUNCTION'", "'GET'", + "'GOTO'", "'GOVERNOR'", "'GRANT'", + "'GROUP'", "'HAVING'", "'HASHED'", + "'HEALTHCHECKTIMEOUT'", "'IDENTITY'", + "'IDENTITYCOL'", "'IDENTITY_INSERT'", + "'IF'", "'IIF'", "'IN'", "'INCLUDE'", + "'INCREMENT'", "'INDEX'", "'INFINITE'", + "'INIT'", "'INNER'", "'INSERT'", "'INSTEAD'", + "'INTERSECT'", "'INTO'", null, null, + "'IS'", "'ISNULL'", "'JOIN'", "'KERBEROS'", + "'KEY'", "'KEY_PATH'", "'KEY_STORE_PROVIDER_NAME'", + "'KILL'", "'LANGUAGE'", "'LEFT'", "'LIBRARY'", + "'LIFETIME'", "'LIKE'", "'LINENO'", + "'LINUX'", "'LISTENER_IP'", "'LISTENER_PORT'", + "'LOAD'", "'LOCAL_SERVICE_NAME'", "'LOG'", + "'MATCHED'", "'MASTER'", "'MAX_MEMORY'", + "'MAXTRANSFER'", "'MAXVALUE'", "'MAX_DISPATCH_LATENCY'", + "'MAX_EVENT_SIZE'", "'MAX_SIZE'", "'MAX_OUTSTANDING_IO_PER_VOLUME'", + "'MEDIADESCRIPTION'", "'MEDIANAME'", + "'MEMBER'", "'MEMORY_PARTITION_MODE'", + "'MERGE'", "'MESSAGE_FORWARDING'", + "'MESSAGE_FORWARD_SIZE'", "'MINVALUE'", + "'MIRROR'", "'MUST_CHANGE'", "'NATIONAL'", + "'NEGOTIATE'", "'NOCHECK'", "'NOFORMAT'", + "'NOINIT'", "'NONCLUSTERED'", "'NONE'", + "'NOREWIND'", "'NOSKIP'", "'NOUNLOAD'", + "'NO_CHECKSUM'", "'NO_COMPRESSION'", + "'NO_EVENT_LOSS'", "'NOT'", "'NOTIFICATION'", + "'NTLM'", "'NULL'", "'NULLIF'", "'OF'", + "'OFF'", "'OFFSETS'", "'OLD_PASSWORD'", + "'ON'", "'ON_FAILURE'", "'OPEN'", "'OPENDATASOURCE'", + "'OPENQUERY'", "'OPENROWSET'", "'OPENXML'", + "'OPTION'", "'OR'", "'ORDER'", "'OUTER'", + "'OVER'", "'PAGE'", "'PARAM_NODE'", + "'PARTIAL'", "'PASSWORD'", "'PERCENT'", + "'PERMISSION_SET'", "'PER_CPU'", "'PER_DB'", + "'PER_NODE'", "'PIVOT'", "'PLAN'", + "'PLATFORM'", "'POLICY'", "'PRECISION'", + "'PREDICATE'", "'PRIMARY'", "'PRINT'", + "'PROC'", "'PROCEDURE'", "'PROCESS'", + "'PUBLIC'", "'PYTHON'", "'R'", "'RAISERROR'", + "'RAW'", "'READ'", "'READTEXT'", "'READ_WRITE_FILEGROUPS'", + "'RECONFIGURE'", "'REFERENCES'", "'REGENERATE'", + "'RELATED_CONVERSATION'", "'RELATED_CONVERSATION_GROUP'", + "'REPLICATION'", "'REQUIRED'", "'RESET'", + "'RESTART'", "'RESTORE'", "'RESTRICT'", + "'RESUME'", "'RETAINDAYS'", "'RETURN'", + "'RETURNS'", "'REVERT'", "'REVOKE'", + "'REWIND'", "'RIGHT'", "'ROLLBACK'", + "'ROLE'", "'ROWCOUNT'", "'ROWGUIDCOL'", + "'RSA_512'", "'RSA_1024'", "'RSA_2048'", + "'RSA_3072'", "'RSA_4096'", "'SAFETY'", + "'RULE'", "'SAFE'", "'SAVE'", "'SCHEDULER'", + "'SCHEMA'", "'SCHEME'", "'SECURITYAUDIT'", + "'SELECT'", "'SEMANTICKEYPHRASETABLE'", + "'SEMANTICSIMILARITYDETAILSTABLE'", + "'SEMANTICSIMILARITYTABLE'", "'SERVER'", + "'SERVICE'", "'SERVICE_BROKER'", "'SERVICE_NAME'", + "'SESSION'", "'SESSION_USER'", "'SET'", + "'SETUSER'", "'SHUTDOWN'", "'SID'", + "'SKIP'", "'SOFTNUMA'", "'SOME'", "'SOURCE'", + "'SPECIFICATION'", "'SPLIT'", "'SQLDUMPERFLAGS'", + "'SQLDUMPERPATH'", "'SQLDUMPERTIMEOUTS'", + "'STATISTICS'", "'STATE'", "'STATS'", + "'START'", "'STARTED'", "'STARTUP_STATE'", + "'STOP'", "'STOPPED'", "'STOP_ON_ERROR'", + "'SUPPORTED'", "'SYSTEM_USER'", "'TABLE'", + "'TABLESAMPLE'", "'TAPE'", "'TARGET'", + "'TCP'", "'TEXTSIZE'", "'THEN'", "'TO'", + "'TOP'", "'TRACK_CAUSALITY'", "'TRAN'", + "'TRANSACTION'", "'TRANSFER'", "'TRIGGER'", + "'TRUNCATE'", "'TSEQUAL'", "'UNCHECKED'", + "'UNION'", "'UNIQUE'", "'UNLOCK'", + "'UNPIVOT'", "'UNSAFE'", "'UPDATE'", + "'UPDATETEXT'", "'URL'", "'USE'", "'USED'", + "'USER'", "'VALUES'", "'VARYING'", + "'VERBOSELOGGING'", "'VIEW'", "'VISIBILITY'", + "'WAITFOR'", "'WHEN'", "'WHERE'", "'WHILE'", + "'WINDOWS'", "'WITH'", "'WITHIN'", + "'WITHOUT'", "'WITNESS'", "'WRITETEXT'", + "'ABSOLUTE'", "'ACCENT_SENSITIVITY'", + "'ACTION'", "'ACTIVATION'", "'ACTIVE'", + "'ADDRESS'", "'AES_128'", "'AES_192'", + "'AES_256'", "'AFFINITY'", "'AFTER'", + "'AGGREGATE'", "'ALGORITHM'", "'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'", + "'ALLOW_SNAPSHOT_ISOLATION'", "'ALLOWED'", + "'ANSI_NULL_DEFAULT'", "'ANSI_NULLS'", + "'ANSI_PADDING'", "'ANSI_WARNINGS'", + "'APPLICATION_LOG'", "'APPLY'", "'ARITHABORT'", + "'ASSEMBLY'", "'AUDIT'", "'AUDIT_GUID'", + "'AUTO'", "'AUTO_CLEANUP'", "'AUTO_CLOSE'", + "'AUTO_CREATE_STATISTICS'", "'AUTO_SHRINK'", + "'AUTO_UPDATE_STATISTICS'", "'AUTO_UPDATE_STATISTICS_ASYNC'", + "'AVAILABILITY'", "'AVG'", "'BACKUP_PRIORITY'", + "'BEGIN_DIALOG'", "'BIGINT'", "'BINARY BASE64'", + "'BINARY_CHECKSUM'", "'BINDING'", "'BLOB_STORAGE'", + "'BROKER'", "'BROKER_INSTANCE'", "'BULK_LOGGED'", + "'CALLER'", "'CAP_CPU_PERCENT'", null, + "'CATALOG'", "'CATCH'", "'CHANGE_RETENTION'", + "'CHANGE_TRACKING'", "'CHECKSUM'", + "'CHECKSUM_AGG'", "'CLEANUP'", "'COLLECTION'", + "'COLUMN_MASTER_KEY'", "'COMMITTED'", + "'COMPATIBILITY_LEVEL'", "'CONCAT'", + "'CONCAT_NULL_YIELDS_NULL'", "'CONTENT'", + "'CONTROL'", "'COOKIE'", "'COUNT'", + "'COUNT_BIG'", "'COUNTER'", "'CPU'", + "'CREATE_NEW'", "'CREATION_DISPOSITION'", + "'CREDENTIAL'", "'CRYPTOGRAPHIC'", + "'CURSOR_CLOSE_ON_COMMIT'", "'CURSOR_DEFAULT'", + "'DATA'", "'DATE_CORRELATION_OPTIMIZATION'", + "'DATEADD'", "'DATEDIFF'", "'DATENAME'", + "'DATEPART'", "'DAYS'", "'DB_CHAINING'", + "'DB_FAILOVER'", "'DECRYPTION'", null, + "'DEFAULT_FULLTEXT_LANGUAGE'", "'DEFAULT_LANGUAGE'", + "'DELAY'", "'DELAYED_DURABILITY'", + "'DELETED'", "'DENSE_RANK'", "'DEPENDENTS'", + "'DES'", "'DESCRIPTION'", "'DESX'", + "'DHCP'", "'DIALOG'", "'DIRECTORY_NAME'", + "'DISABLE'", "'DISABLE_BROKER'", "'DISABLED'", + null, "'DOCUMENT'", "'DYNAMIC'", "'ELEMENTS'", + "'EMERGENCY'", "'EMPTY'", "'ENABLE'", + "'ENABLE_BROKER'", "'ENCRYPTED_VALUE'", + "'ENCRYPTION'", "'ENDPOINT_URL'", "'ERROR_BROKER_CONVERSATIONS'", + "'EXCLUSIVE'", "'EXECUTABLE'", "'EXIST'", + "'EXPAND'", "'EXPIRY_DATE'", "'EXPLICIT'", + "'FAIL_OPERATION'", "'FAILOVER_MODE'", + "'FAILURE'", "'FAILURE_CONDITION_LEVEL'", + "'FAST'", "'FAST_FORWARD'", "'FILEGROUP'", + "'FILEGROWTH'", "'FILEPATH'", "'FILESTREAM'", + "'FILTER'", "'FIRST'", "'FIRST_VALUE'", + "'FOLLOWING'", "'FORCE'", "'FORCE_FAILOVER_ALLOW_DATA_LOSS'", + "'FORCED'", "'FORMAT'", "'FORWARD_ONLY'", + "'FULLSCAN'", "'FULLTEXT'", "'GB'", + "'GETDATE'", "'GETUTCDATE'", "'GLOBAL'", + "'GO'", "'GROUP_MAX_REQUESTS'", "'GROUPING'", + "'GROUPING_ID'", "'HADR'", "'HASH'", + "'HEALTH_CHECK_TIMEOUT'", "'HIGH'", + "'HONOR_BROKER_PRIORITY'", "'HOURS'", + "'IDENTITY_VALUE'", "'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'", + "'IMMEDIATE'", "'IMPERSONATE'", "'IMPORTANCE'", + "'INCLUDE_NULL_VALUES'", "'INCREMENTAL'", + "'INITIATOR'", "'INPUT'", "'INSENSITIVE'", + "'INSERTED'", "'INT'", "'IP'", "'ISOLATION'", + "'JOB'", "'JSON'", "'KB'", "'KEEP'", + "'KEEPFIXED'", "'KEY_SOURCE'", "'KEYS'", + "'KEYSET'", "'LAG'", "'LAST'", "'LAST_VALUE'", + "'LEAD'", "'LEVEL'", "'LIST'", "'LISTENER'", + "'LISTENER_URL'", "'LOB_COMPACTION'", + "'LOCAL'", "'LOCATION'", "'LOCK'", + "'LOCK_ESCALATION'", "'LOGIN'", "'LOOP'", + "'LOW'", "'MANUAL'", "'MARK'", "'MATERIALIZED'", + "'MAX'", "'MAX_CPU_PERCENT'", "'MAX_DOP'", + "'MAX_FILES'", "'MAX_IOPS_PER_VOLUME'", + "'MAX_MEMORY_PERCENT'", "'MAX_PROCESSES'", + "'MAX_QUEUE_READERS'", "'MAX_ROLLOVER_FILES'", + "'MAXDOP'", "'MAXRECURSION'", "'MAXSIZE'", + "'MB'", "'MEDIUM'", "'MEMORY_OPTIMIZED_DATA'", + "'MESSAGE'", "'MIN'", "'MIN_ACTIVE_ROWVERSION'", + "'MIN_CPU_PERCENT'", "'MIN_IOPS_PER_VOLUME'", + "'MIN_MEMORY_PERCENT'", "'MINUTES'", + "'MIRROR_ADDRESS'", "'MIXED_PAGE_ALLOCATION'", + "'MODE'", "'MODIFY'", "'MOVE'", "'MULTI_USER'", + "'NAME'", "'NESTED_TRIGGERS'", "'NEW_ACCOUNT'", + "'NEW_BROKER'", "'NEW_PASSWORD'", "'NEXT'", + "'NO'", "'NO_TRUNCATE'", "'NO_WAIT'", + "'NOCOUNT'", "'NODES'", "'NOEXPAND'", + "'NON_TRANSACTED_ACCESS'", "'NORECOMPUTE'", + "'NORECOVERY'", "'NOWAIT'", "'NTILE'", + "'NUMANODE'", "'NUMBER'", "'NUMERIC_ROUNDABORT'", + "'OBJECT'", "'OFFLINE'", "'OFFSET'", + "'OLD_ACCOUNT'", "'ONLINE'", "'ONLY'", + "'OPEN_EXISTING'", "'OPTIMISTIC'", + "'OPTIMIZE'", "'OUT'", "'OUTPUT'", + "'OVERRIDE'", "'OWNER'", "'PAGE_VERIFY'", + "'PARAMETERIZATION'", "'PARTITION'", + "'PARTITIONS'", "'PARTNER'", "'PATH'", + "'POISON_MESSAGE_HANDLING'", "'POOL'", + "'PORT'", "'PRECEDING'", "'PRIMARY_ROLE'", + "'PRIOR'", "'PRIORITY'", "'PRIORITY_LEVEL'", + "'PRIVATE'", "'PRIVATE_KEY'", "'PRIVILEGES'", + "'PROCEDURE_NAME'", "'PROPERTY'", "'PROVIDER'", + "'PROVIDER_KEY_NAME'", "'QUERY'", "'QUEUE'", + "'QUEUE_DELAY'", "'QUOTED_IDENTIFIER'", + "'RANGE'", "'RANK'", "'RC2'", "'RC4'", + "'RC4_128'", "'READ_COMMITTED_SNAPSHOT'", + "'READ_ONLY'", "'READ_ONLY_ROUTING_LIST'", + "'READ_WRITE'", "'READONLY'", "'REBUILD'", + "'RECEIVE'", "'RECOMPILE'", "'RECOVERY'", + "'RECURSIVE_TRIGGERS'", "'RELATIVE'", + "'REMOTE'", "'REMOTE_SERVICE_NAME'", + "'REMOVE'", "'REORGANIZE'", "'REPEATABLE'", + "'REPLICA'", "'REQUEST_MAX_CPU_TIME_SEC'", + "'REQUEST_MAX_MEMORY_GRANT_PERCENT'", + "'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'", + "'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'", + "'RESERVE_DISK_SPACE'", "'RESOURCE'", + "'RESOURCE_MANAGER_LOCATION'", "'RESTRICTED_USER'", + "'RETENTION'", "'ROBUST'", "'ROOT'", + "'ROUTE'", "'ROW'", "'ROW_NUMBER'", + "'ROWGUID'", "'ROWS'", "'SAMPLE'", + "'SCHEMABINDING'", "'SCOPED'", "'SCROLL'", + "'SCROLL_LOCKS'", "'SEARCH'", "'SECONDARY'", + "'SECONDARY_ONLY'", "'SECONDARY_ROLE'", + "'SECONDS'", "'SECRET'", "'SECURITY'", + "'SECURITY_LOG'", "'SEEDING_MODE'", + "'SELF'", "'SEMI_SENSITIVE'", "'SEND'", + "'SENT'", "'SEQUENCE'", "'SERIALIZABLE'", + "'SESSION_TIMEOUT'", "'SETERROR'", + "'SHARE'", "'SHOWPLAN'", "'SIGNATURE'", + "'SIMPLE'", "'SINGLE_USER'", "'SIZE'", + "'SMALLINT'", "'SNAPSHOT'", "'SPATIAL_WINDOW_MAX_CELLS'", + "'STANDBY'", "'START_DATE'", "'STATIC'", + "'STATS_STREAM'", "'STATUS'", "'STATUSONLY'", + "'STDEV'", "'STDEVP'", "'STOPLIST'", + "'STRING_AGG'", "'STUFF'", "'SUBJECT'", + "'SUBSCRIPTION'", "'SUM'", "'SUSPEND'", + "'SYMMETRIC'", "'SYNCHRONOUS_COMMIT'", + "'SYNONYM'", "'SYSTEM'", "'TAKE'", + "'TARGET_RECOVERY_TIME'", "'TB'", "'TEXTIMAGE_ON'", + "'THROW'", "'TIES'", "'TIME'", "'TIMEOUT'", + "'TIMER'", "'TINYINT'", "'TORN_PAGE_DETECTION'", + "'TRANSFORM_NOISE_WORDS'", "'TRIPLE_DES'", + "'TRIPLE_DES_3KEY'", "'TRUSTWORTHY'", + "'TRY'", "'TSQL'", "'TWO_DIGIT_YEAR_CUTOFF'", + "'TYPE'", "'TYPE_WARNING'", "'UNBOUNDED'", + "'UNCOMMITTED'", "'UNKNOWN'", "'UNLIMITED'", + "'UOW'", "'USING'", "'VALID_XML'", + "'VALIDATION'", "'VALUE'", "'VAR'", + "'VARP'", "'VIEW_METADATA'", "'VIEWS'", + "'WAIT'", "'WELL_FORMED_XML'", "'WITHOUT_ARRAY_WRAPPER'", + "'WORK'", "'WORKLOAD'", "'XML'", "'XMLDATA'", + "'XMLNAMESPACES'", "'XMLSCHEMA'", "'XSINIL'", + "'$ACTION'", null, null, null, null, + "'''", null, null, null, null, null, + null, null, null, null, null, "'='", + "'>'", "'<'", "'!'", "'+='", "'-='", + "'*='", "'/='", "'%='", "'&='", "'^='", + "'|='", "'||'", "'.'", "'_'", "'@'", + "'#'", "'$'", "'('", "')'", "','", + "';'", "':'", "'*'", "'/'", "'%'", + "'+'", "'-'", "'~'", "'|'", "'&'", + "'^'" ]; + +TSqlLexer.prototype.symbolicNames = [ null, "ABSENT", "ADD", "AES", "ALL", + "ALLOW_CONNECTIONS", "ALLOW_MULTIPLE_EVENT_LOSS", + "ALLOW_SINGLE_EVENT_LOSS", "ALTER", + "AND", "ANONYMOUS", "ANY", "APPEND", + "APPLICATION", "AS", "ASC", "ASYMMETRIC", + "ASYNCHRONOUS_COMMIT", "AUTHORIZATION", + "AUTHENTICATION", "AUTOMATED_BACKUP_PREFERENCE", + "AUTOMATIC", "AVAILABILITY_MODE", + "BACKSLASH", "BACKUP", "BEFORE", "BEGIN", + "BETWEEN", "BLOCK", "BLOCKSIZE", "BLOCKING_HIERARCHY", + "BREAK", "BROWSE", "BUFFER", "BUFFERCOUNT", + "BULK", "BY", "CACHE", "CALLED", "CASCADE", + "CASE", "CERTIFICATE", "CHANGETABLE", + "CHANGES", "CHECK", "CHECKPOINT", + "CHECK_POLICY", "CHECK_EXPIRATION", + "CLASSIFIER_FUNCTION", "CLOSE", "CLUSTER", + "CLUSTERED", "COALESCE", "COLLATE", + "COLUMN", "COMPRESSION", "COMMIT", + "COMPUTE", "CONFIGURATION", "CONSTRAINT", + "CONTAINMENT", "CONTAINS", "CONTAINSTABLE", + "CONTEXT", "CONTINUE", "CONTINUE_AFTER_ERROR", + "CONTRACT", "CONTRACT_NAME", "CONVERSATION", + "CONVERT", "COPY_ONLY", "CREATE", + "CROSS", "CURRENT", "CURRENT_DATE", + "CURRENT_TIME", "CURRENT_TIMESTAMP", + "CURRENT_USER", "CURSOR", "CYCLE", + "DATA_COMPRESSION", "DATA_SOURCE", + "DATABASE", "DATABASE_MIRRORING", + "DBCC", "DEALLOCATE", "DECLARE", "DEFAULT", + "DEFAULT_DATABASE", "DEFAULT_SCHEMA", + "DELETE", "DENY", "DESC", "DIAGNOSTICS", + "DIFFERENTIAL", "DISK", "DISTINCT", + "DISTRIBUTED", "DOUBLE", "DOUBLE_BACK_SLASH", + "DOUBLE_FORWARD_SLASH", "DROP", "DTC_SUPPORT", + "DUMP", "ELSE", "ENABLED", "END", + "ENDPOINT", "ERRLVL", "ESCAPE", "ERROR", + "EVENT", "EVENTDATA", "EVENT_RETENTION_MODE", + "EXCEPT", "EXECUTABLE_FILE", "EXECUTE", + "EXISTS", "EXPIREDATE", "EXIT", "EXTENSION", + "EXTERNAL", "EXTERNAL_ACCESS", "FAILOVER", + "FAILURECONDITIONLEVEL", "FAN_IN", + "FETCH", "FILE", "FILENAME", "FILLFACTOR", + "FILE_SNAPSHOT", "FOR", "FORCESEEK", + "FORCE_SERVICE_ALLOW_DATA_LOSS", "FOREIGN", + "FREETEXT", "FREETEXTTABLE", "FROM", + "FULL", "FUNCTION", "GET", "GOTO", + "GOVERNOR", "GRANT", "GROUP", "HAVING", + "HASHED", "HEALTHCHECKTIMEOUT", "IDENTITY", + "IDENTITYCOL", "IDENTITY_INSERT", + "IF", "IIF", "IN", "INCLUDE", "INCREMENT", + "INDEX", "INFINITE", "INIT", "INNER", + "INSERT", "INSTEAD", "INTERSECT", + "INTO", "IPV4_ADDR", "IPV6_ADDR", + "IS", "ISNULL", "JOIN", "KERBEROS", + "KEY", "KEY_PATH", "KEY_STORE_PROVIDER_NAME", + "KILL", "LANGUAGE", "LEFT", "LIBRARY", + "LIFETIME", "LIKE", "LINENO", "LINUX", + "LISTENER_IP", "LISTENER_PORT", "LOAD", + "LOCAL_SERVICE_NAME", "LOG", "MATCHED", + "MASTER", "MAX_MEMORY", "MAXTRANSFER", + "MAXVALUE", "MAX_DISPATCH_LATENCY", + "MAX_EVENT_SIZE", "MAX_SIZE", "MAX_OUTSTANDING_IO_PER_VOLUME", + "MEDIADESCRIPTION", "MEDIANAME", "MEMBER", + "MEMORY_PARTITION_MODE", "MERGE", + "MESSAGE_FORWARDING", "MESSAGE_FORWARD_SIZE", + "MINVALUE", "MIRROR", "MUST_CHANGE", + "NATIONAL", "NEGOTIATE", "NOCHECK", + "NOFORMAT", "NOINIT", "NONCLUSTERED", + "NONE", "NOREWIND", "NOSKIP", "NOUNLOAD", + "NO_CHECKSUM", "NO_COMPRESSION", "NO_EVENT_LOSS", + "NOT", "NOTIFICATION", "NTLM", "NULL", + "NULLIF", "OF", "OFF", "OFFSETS", + "OLD_PASSWORD", "ON", "ON_FAILURE", + "OPEN", "OPENDATASOURCE", "OPENQUERY", + "OPENROWSET", "OPENXML", "OPTION", + "OR", "ORDER", "OUTER", "OVER", "PAGE", + "PARAM_NODE", "PARTIAL", "PASSWORD", + "PERCENT", "PERMISSION_SET", "PER_CPU", + "PER_DB", "PER_NODE", "PIVOT", "PLAN", + "PLATFORM", "POLICY", "PRECISION", + "PREDICATE", "PRIMARY", "PRINT", "PROC", + "PROCEDURE", "PROCESS", "PUBLIC", + "PYTHON", "R", "RAISERROR", "RAW", + "READ", "READTEXT", "READ_WRITE_FILEGROUPS", + "RECONFIGURE", "REFERENCES", "REGENERATE", + "RELATED_CONVERSATION", "RELATED_CONVERSATION_GROUP", + "REPLICATION", "REQUIRED", "RESET", + "RESTART", "RESTORE", "RESTRICT", + "RESUME", "RETAINDAYS", "RETURN", + "RETURNS", "REVERT", "REVOKE", "REWIND", + "RIGHT", "ROLLBACK", "ROLE", "ROWCOUNT", + "ROWGUIDCOL", "RSA_512", "RSA_1024", + "RSA_2048", "RSA_3072", "RSA_4096", + "SAFETY", "RULE", "SAFE", "SAVE", + "SCHEDULER", "SCHEMA", "SCHEME", "SECURITYAUDIT", + "SELECT", "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", + "SEMANTICSIMILARITYTABLE", "SERVER", + "SERVICE", "SERVICE_BROKER", "SERVICE_NAME", + "SESSION", "SESSION_USER", "SET", + "SETUSER", "SHUTDOWN", "SID", "SKIP_KEYWORD", + "SOFTNUMA", "SOME", "SOURCE", "SPECIFICATION", + "SPLIT", "SQLDUMPERFLAGS", "SQLDUMPERPATH", + "SQLDUMPERTIMEOUT", "STATISTICS", + "STATE", "STATS", "START", "STARTED", + "STARTUP_STATE", "STOP", "STOPPED", + "STOP_ON_ERROR", "SUPPORTED", "SYSTEM_USER", + "TABLE", "TABLESAMPLE", "TAPE", "TARGET", + "TCP", "TEXTSIZE", "THEN", "TO", "TOP", + "TRACK_CAUSALITY", "TRAN", "TRANSACTION", + "TRANSFER", "TRIGGER", "TRUNCATE", + "TSEQUAL", "UNCHECKED", "UNION", "UNIQUE", + "UNLOCK", "UNPIVOT", "UNSAFE", "UPDATE", + "UPDATETEXT", "URL", "USE", "USED", + "USER", "VALUES", "VARYING", "VERBOSELOGGING", + "VIEW", "VISIBILITY", "WAITFOR", "WHEN", + "WHERE", "WHILE", "WINDOWS", "WITH", + "WITHIN", "WITHOUT", "WITNESS", "WRITETEXT", + "ABSOLUTE", "ACCENT_SENSITIVITY", + "ACTION", "ACTIVATION", "ACTIVE", + "ADDRESS", "AES_128", "AES_192", "AES_256", + "AFFINITY", "AFTER", "AGGREGATE", + "ALGORITHM", "ALLOW_ENCRYPTED_VALUE_MODIFICATIONS", + "ALLOW_SNAPSHOT_ISOLATION", "ALLOWED", + "ANSI_NULL_DEFAULT", "ANSI_NULLS", + "ANSI_PADDING", "ANSI_WARNINGS", "APPLICATION_LOG", + "APPLY", "ARITHABORT", "ASSEMBLY", + "AUDIT", "AUDIT_GUID", "AUTO", "AUTO_CLEANUP", + "AUTO_CLOSE", "AUTO_CREATE_STATISTICS", + "AUTO_SHRINK", "AUTO_UPDATE_STATISTICS", + "AUTO_UPDATE_STATISTICS_ASYNC", "AVAILABILITY", + "AVG", "BACKUP_PRIORITY", "BEGIN_DIALOG", + "BIGINT", "BINARY_BASE64", "BINARY_CHECKSUM", + "BINDING", "BLOB_STORAGE", "BROKER", + "BROKER_INSTANCE", "BULK_LOGGED", + "CALLER", "CAP_CPU_PERCENT", "CAST", + "CATALOG", "CATCH", "CHANGE_RETENTION", + "CHANGE_TRACKING", "CHECKSUM", "CHECKSUM_AGG", + "CLEANUP", "COLLECTION", "COLUMN_MASTER_KEY", + "COMMITTED", "COMPATIBILITY_LEVEL", + "CONCAT", "CONCAT_NULL_YIELDS_NULL", + "CONTENT", "CONTROL", "COOKIE", "COUNT", + "COUNT_BIG", "COUNTER", "CPU", "CREATE_NEW", + "CREATION_DISPOSITION", "CREDENTIAL", + "CRYPTOGRAPHIC", "CURSOR_CLOSE_ON_COMMIT", + "CURSOR_DEFAULT", "DATA", "DATE_CORRELATION_OPTIMIZATION", + "DATEADD", "DATEDIFF", "DATENAME", + "DATEPART", "DAYS", "DB_CHAINING", + "DB_FAILOVER", "DECRYPTION", "DEFAULT_DOUBLE_QUOTE", + "DEFAULT_FULLTEXT_LANGUAGE", "DEFAULT_LANGUAGE", + "DELAY", "DELAYED_DURABILITY", "DELETED", + "DENSE_RANK", "DEPENDENTS", "DES", + "DESCRIPTION", "DESX", "DHCP", "DIALOG", + "DIRECTORY_NAME", "DISABLE", "DISABLE_BROKER", + "DISABLED", "DISK_DRIVE", "DOCUMENT", + "DYNAMIC", "ELEMENTS", "EMERGENCY", + "EMPTY", "ENABLE", "ENABLE_BROKER", + "ENCRYPTED_VALUE", "ENCRYPTION", "ENDPOINT_URL", + "ERROR_BROKER_CONVERSATIONS", "EXCLUSIVE", + "EXECUTABLE", "EXIST", "EXPAND", "EXPIRY_DATE", + "EXPLICIT", "FAIL_OPERATION", "FAILOVER_MODE", + "FAILURE", "FAILURE_CONDITION_LEVEL", + "FAST", "FAST_FORWARD", "FILEGROUP", + "FILEGROWTH", "FILEPATH", "FILESTREAM", + "FILTER", "FIRST", "FIRST_VALUE", + "FOLLOWING", "FORCE", "FORCE_FAILOVER_ALLOW_DATA_LOSS", + "FORCED", "FORMAT", "FORWARD_ONLY", + "FULLSCAN", "FULLTEXT", "GB", "GETDATE", + "GETUTCDATE", "GLOBAL", "GO", "GROUP_MAX_REQUESTS", + "GROUPING", "GROUPING_ID", "HADR", + "HASH", "HEALTH_CHECK_TIMEOUT", "HIGH", + "HONOR_BROKER_PRIORITY", "HOURS", + "IDENTITY_VALUE", "IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX", + "IMMEDIATE", "IMPERSONATE", "IMPORTANCE", + "INCLUDE_NULL_VALUES", "INCREMENTAL", + "INITIATOR", "INPUT", "INSENSITIVE", + "INSERTED", "INT", "IP", "ISOLATION", + "JOB", "JSON", "KB", "KEEP", "KEEPFIXED", + "KEY_SOURCE", "KEYS", "KEYSET", "LAG", + "LAST", "LAST_VALUE", "LEAD", "LEVEL", + "LIST", "LISTENER", "LISTENER_URL", + "LOB_COMPACTION", "LOCAL", "LOCATION", + "LOCK", "LOCK_ESCALATION", "LOGIN", + "LOOP", "LOW", "MANUAL", "MARK", "MATERIALIZED", + "MAX", "MAX_CPU_PERCENT", "MAX_DOP", + "MAX_FILES", "MAX_IOPS_PER_VOLUME", + "MAX_MEMORY_PERCENT", "MAX_PROCESSES", + "MAX_QUEUE_READERS", "MAX_ROLLOVER_FILES", + "MAXDOP", "MAXRECURSION", "MAXSIZE", + "MB", "MEDIUM", "MEMORY_OPTIMIZED_DATA", + "MESSAGE", "MIN", "MIN_ACTIVE_ROWVERSION", + "MIN_CPU_PERCENT", "MIN_IOPS_PER_VOLUME", + "MIN_MEMORY_PERCENT", "MINUTES", "MIRROR_ADDRESS", + "MIXED_PAGE_ALLOCATION", "MODE", "MODIFY", + "MOVE", "MULTI_USER", "NAME", "NESTED_TRIGGERS", + "NEW_ACCOUNT", "NEW_BROKER", "NEW_PASSWORD", + "NEXT", "NO", "NO_TRUNCATE", "NO_WAIT", + "NOCOUNT", "NODES", "NOEXPAND", "NON_TRANSACTED_ACCESS", + "NORECOMPUTE", "NORECOVERY", "NOWAIT", + "NTILE", "NUMANODE", "NUMBER", "NUMERIC_ROUNDABORT", + "OBJECT", "OFFLINE", "OFFSET", "OLD_ACCOUNT", + "ONLINE", "ONLY", "OPEN_EXISTING", + "OPTIMISTIC", "OPTIMIZE", "OUT", "OUTPUT", + "OVERRIDE", "OWNER", "PAGE_VERIFY", + "PARAMETERIZATION", "PARTITION", "PARTITIONS", + "PARTNER", "PATH", "POISON_MESSAGE_HANDLING", + "POOL", "PORT", "PRECEDING", "PRIMARY_ROLE", + "PRIOR", "PRIORITY", "PRIORITY_LEVEL", + "PRIVATE", "PRIVATE_KEY", "PRIVILEGES", + "PROCEDURE_NAME", "PROPERTY", "PROVIDER", + "PROVIDER_KEY_NAME", "QUERY", "QUEUE", + "QUEUE_DELAY", "QUOTED_IDENTIFIER", + "RANGE", "RANK", "RC2", "RC4", "RC4_128", + "READ_COMMITTED_SNAPSHOT", "READ_ONLY", + "READ_ONLY_ROUTING_LIST", "READ_WRITE", + "READONLY", "REBUILD", "RECEIVE", + "RECOMPILE", "RECOVERY", "RECURSIVE_TRIGGERS", + "RELATIVE", "REMOTE", "REMOTE_SERVICE_NAME", + "REMOVE", "REORGANIZE", "REPEATABLE", + "REPLICA", "REQUEST_MAX_CPU_TIME_SEC", + "REQUEST_MAX_MEMORY_GRANT_PERCENT", + "REQUEST_MEMORY_GRANT_TIMEOUT_SEC", + "REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT", + "RESERVE_DISK_SPACE", "RESOURCE", + "RESOURCE_MANAGER_LOCATION", "RESTRICTED_USER", + "RETENTION", "ROBUST", "ROOT", "ROUTE", + "ROW", "ROW_NUMBER", "ROWGUID", "ROWS", + "SAMPLE", "SCHEMABINDING", "SCOPED", + "SCROLL", "SCROLL_LOCKS", "SEARCH", + "SECONDARY", "SECONDARY_ONLY", "SECONDARY_ROLE", + "SECONDS", "SECRET", "SECURITY", "SECURITY_LOG", + "SEEDING_MODE", "SELF", "SEMI_SENSITIVE", + "SEND", "SENT", "SEQUENCE", "SERIALIZABLE", + "SESSION_TIMEOUT", "SETERROR", "SHARE", + "SHOWPLAN", "SIGNATURE", "SIMPLE", + "SINGLE_USER", "SIZE", "SMALLINT", + "SNAPSHOT", "SPATIAL_WINDOW_MAX_CELLS", + "STANDBY", "START_DATE", "STATIC", + "STATS_STREAM", "STATUS", "STATUSONLY", + "STDEV", "STDEVP", "STOPLIST", "STRING_AGG", + "STUFF", "SUBJECT", "SUBSCRIPTION", + "SUM", "SUSPEND", "SYMMETRIC", "SYNCHRONOUS_COMMIT", + "SYNONYM", "SYSTEM", "TAKE", "TARGET_RECOVERY_TIME", + "TB", "TEXTIMAGE_ON", "THROW", "TIES", + "TIME", "TIMEOUT", "TIMER", "TINYINT", + "TORN_PAGE_DETECTION", "TRANSFORM_NOISE_WORDS", + "TRIPLE_DES", "TRIPLE_DES_3KEY", "TRUSTWORTHY", + "TRY", "TSQL", "TWO_DIGIT_YEAR_CUTOFF", + "TYPE", "TYPE_WARNING", "UNBOUNDED", + "UNCOMMITTED", "UNKNOWN", "UNLIMITED", + "UOW", "USING", "VALID_XML", "VALIDATION", + "VALUE", "VAR", "VARP", "VIEW_METADATA", + "VIEWS", "WAIT", "WELL_FORMED_XML", + "WITHOUT_ARRAY_WRAPPER", "WORK", "WORKLOAD", + "XML", "XMLDATA", "XMLNAMESPACES", + "XMLSCHEMA", "XSINIL", "DOLLAR_ACTION", + "SPACE", "COMMENT", "LINE_COMMENT", + "DOUBLE_QUOTE_ID", "SINGLE_QUOTE", + "SQUARE_BRACKET_ID", "LOCAL_ID", "DECIMAL", + "ID", "QUOTED_URL", "QUOTED_HOST_AND_PORT", + "STRING", "BINARY", "FLOAT", "REAL", + "EQUAL", "GREATER", "LESS", "EXCLAMATION", + "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", + "DIV_ASSIGN", "MOD_ASSIGN", "AND_ASSIGN", + "XOR_ASSIGN", "OR_ASSIGN", "DOUBLE_BAR", + "DOT", "UNDERLINE", "AT", "SHARP", + "DOLLAR", "LR_BRACKET", "RR_BRACKET", + "COMMA", "SEMI", "COLON", "STAR", + "DIVIDE", "MODULE", "PLUS", "MINUS", + "BIT_NOT", "BIT_OR", "BIT_AND", "BIT_XOR", + "IPV4_OCTECT" ]; + +TSqlLexer.prototype.ruleNames = [ "ABSENT", "ADD", "AES", "ALL", "ALLOW_CONNECTIONS", + "ALLOW_MULTIPLE_EVENT_LOSS", "ALLOW_SINGLE_EVENT_LOSS", + "ALTER", "AND", "ANONYMOUS", "ANY", "APPEND", + "APPLICATION", "AS", "ASC", "ASYMMETRIC", + "ASYNCHRONOUS_COMMIT", "AUTHORIZATION", + "AUTHENTICATION", "AUTOMATED_BACKUP_PREFERENCE", + "AUTOMATIC", "AVAILABILITY_MODE", "BACKSLASH", + "BACKUP", "BEFORE", "BEGIN", "BETWEEN", + "BLOCK", "BLOCKSIZE", "BLOCKING_HIERARCHY", + "BREAK", "BROWSE", "BUFFER", "BUFFERCOUNT", + "BULK", "BY", "CACHE", "CALLED", "CASCADE", + "CASE", "CERTIFICATE", "CHANGETABLE", + "CHANGES", "CHECK", "CHECKPOINT", "CHECK_POLICY", + "CHECK_EXPIRATION", "CLASSIFIER_FUNCTION", + "CLOSE", "CLUSTER", "CLUSTERED", "COALESCE", + "COLLATE", "COLUMN", "COMPRESSION", "COMMIT", + "COMPUTE", "CONFIGURATION", "CONSTRAINT", + "CONTAINMENT", "CONTAINS", "CONTAINSTABLE", + "CONTEXT", "CONTINUE", "CONTINUE_AFTER_ERROR", + "CONTRACT", "CONTRACT_NAME", "CONVERSATION", + "CONVERT", "COPY_ONLY", "CREATE", "CROSS", + "CURRENT", "CURRENT_DATE", "CURRENT_TIME", + "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", + "CYCLE", "DATA_COMPRESSION", "DATA_SOURCE", + "DATABASE", "DATABASE_MIRRORING", "DBCC", + "DEALLOCATE", "DECLARE", "DEFAULT", "DEFAULT_DATABASE", + "DEFAULT_SCHEMA", "DELETE", "DENY", "DESC", + "DIAGNOSTICS", "DIFFERENTIAL", "DISK", + "DISTINCT", "DISTRIBUTED", "DOUBLE", "DOUBLE_BACK_SLASH", + "DOUBLE_FORWARD_SLASH", "DROP", "DTC_SUPPORT", + "DUMP", "ELSE", "ENABLED", "END", "ENDPOINT", + "ERRLVL", "ESCAPE", "ERROR", "EVENT", + "EVENTDATA", "EVENT_RETENTION_MODE", "EXCEPT", + "EXECUTABLE_FILE", "EXECUTE", "EXISTS", + "EXPIREDATE", "EXIT", "EXTENSION", "EXTERNAL", + "EXTERNAL_ACCESS", "FAILOVER", "FAILURECONDITIONLEVEL", + "FAN_IN", "FETCH", "FILE", "FILENAME", + "FILLFACTOR", "FILE_SNAPSHOT", "FOR", + "FORCESEEK", "FORCE_SERVICE_ALLOW_DATA_LOSS", + "FOREIGN", "FREETEXT", "FREETEXTTABLE", + "FROM", "FULL", "FUNCTION", "GET", "GOTO", + "GOVERNOR", "GRANT", "GROUP", "HAVING", + "HASHED", "HEALTHCHECKTIMEOUT", "IDENTITY", + "IDENTITYCOL", "IDENTITY_INSERT", "IF", + "IIF", "IN", "INCLUDE", "INCREMENT", "INDEX", + "INFINITE", "INIT", "INNER", "INSERT", + "INSTEAD", "INTERSECT", "INTO", "IPV4_ADDR", + "IPV6_ADDR", "IS", "ISNULL", "JOIN", "KERBEROS", + "KEY", "KEY_PATH", "KEY_STORE_PROVIDER_NAME", + "KILL", "LANGUAGE", "LEFT", "LIBRARY", + "LIFETIME", "LIKE", "LINENO", "LINUX", + "LISTENER_IP", "LISTENER_PORT", "LOAD", + "LOCAL_SERVICE_NAME", "LOG", "MATCHED", + "MASTER", "MAX_MEMORY", "MAXTRANSFER", + "MAXVALUE", "MAX_DISPATCH_LATENCY", "MAX_EVENT_SIZE", + "MAX_SIZE", "MAX_OUTSTANDING_IO_PER_VOLUME", + "MEDIADESCRIPTION", "MEDIANAME", "MEMBER", + "MEMORY_PARTITION_MODE", "MERGE", "MESSAGE_FORWARDING", + "MESSAGE_FORWARD_SIZE", "MINVALUE", "MIRROR", + "MUST_CHANGE", "NATIONAL", "NEGOTIATE", + "NOCHECK", "NOFORMAT", "NOINIT", "NONCLUSTERED", + "NONE", "NOREWIND", "NOSKIP", "NOUNLOAD", + "NO_CHECKSUM", "NO_COMPRESSION", "NO_EVENT_LOSS", + "NOT", "NOTIFICATION", "NTLM", "NULL", + "NULLIF", "OF", "OFF", "OFFSETS", "OLD_PASSWORD", + "ON", "ON_FAILURE", "OPEN", "OPENDATASOURCE", + "OPENQUERY", "OPENROWSET", "OPENXML", + "OPTION", "OR", "ORDER", "OUTER", "OVER", + "PAGE", "PARAM_NODE", "PARTIAL", "PASSWORD", + "PERCENT", "PERMISSION_SET", "PER_CPU", + "PER_DB", "PER_NODE", "PIVOT", "PLAN", + "PLATFORM", "POLICY", "PRECISION", "PREDICATE", + "PRIMARY", "PRINT", "PROC", "PROCEDURE", + "PROCESS", "PUBLIC", "PYTHON", "R", "RAISERROR", + "RAW", "READ", "READTEXT", "READ_WRITE_FILEGROUPS", + "RECONFIGURE", "REFERENCES", "REGENERATE", + "RELATED_CONVERSATION", "RELATED_CONVERSATION_GROUP", + "REPLICATION", "REQUIRED", "RESET", "RESTART", + "RESTORE", "RESTRICT", "RESUME", "RETAINDAYS", + "RETURN", "RETURNS", "REVERT", "REVOKE", + "REWIND", "RIGHT", "ROLLBACK", "ROLE", + "ROWCOUNT", "ROWGUIDCOL", "RSA_512", "RSA_1024", + "RSA_2048", "RSA_3072", "RSA_4096", "SAFETY", + "RULE", "SAFE", "SAVE", "SCHEDULER", "SCHEMA", + "SCHEME", "SECURITYAUDIT", "SELECT", "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", "SEMANTICSIMILARITYTABLE", + "SERVER", "SERVICE", "SERVICE_BROKER", + "SERVICE_NAME", "SESSION", "SESSION_USER", + "SET", "SETUSER", "SHUTDOWN", "SID", "SKIP_KEYWORD", + "SOFTNUMA", "SOME", "SOURCE", "SPECIFICATION", + "SPLIT", "SQLDUMPERFLAGS", "SQLDUMPERPATH", + "SQLDUMPERTIMEOUT", "STATISTICS", "STATE", + "STATS", "START", "STARTED", "STARTUP_STATE", + "STOP", "STOPPED", "STOP_ON_ERROR", "SUPPORTED", + "SYSTEM_USER", "TABLE", "TABLESAMPLE", + "TAPE", "TARGET", "TCP", "TEXTSIZE", "THEN", + "TO", "TOP", "TRACK_CAUSALITY", "TRAN", + "TRANSACTION", "TRANSFER", "TRIGGER", + "TRUNCATE", "TSEQUAL", "UNCHECKED", "UNION", + "UNIQUE", "UNLOCK", "UNPIVOT", "UNSAFE", + "UPDATE", "UPDATETEXT", "URL", "USE", + "USED", "USER", "VALUES", "VARYING", "VERBOSELOGGING", + "VIEW", "VISIBILITY", "WAITFOR", "WHEN", + "WHERE", "WHILE", "WINDOWS", "WITH", "WITHIN", + "WITHOUT", "WITNESS", "WRITETEXT", "ABSOLUTE", + "ACCENT_SENSITIVITY", "ACTION", "ACTIVATION", + "ACTIVE", "ADDRESS", "AES_128", "AES_192", + "AES_256", "AFFINITY", "AFTER", "AGGREGATE", + "ALGORITHM", "ALLOW_ENCRYPTED_VALUE_MODIFICATIONS", + "ALLOW_SNAPSHOT_ISOLATION", "ALLOWED", + "ANSI_NULL_DEFAULT", "ANSI_NULLS", "ANSI_PADDING", + "ANSI_WARNINGS", "APPLICATION_LOG", "APPLY", + "ARITHABORT", "ASSEMBLY", "AUDIT", "AUDIT_GUID", + "AUTO", "AUTO_CLEANUP", "AUTO_CLOSE", + "AUTO_CREATE_STATISTICS", "AUTO_SHRINK", + "AUTO_UPDATE_STATISTICS", "AUTO_UPDATE_STATISTICS_ASYNC", + "AVAILABILITY", "AVG", "BACKUP_PRIORITY", + "BEGIN_DIALOG", "BIGINT", "BINARY_BASE64", + "BINARY_CHECKSUM", "BINDING", "BLOB_STORAGE", + "BROKER", "BROKER_INSTANCE", "BULK_LOGGED", + "CALLER", "CAP_CPU_PERCENT", "CAST", "CATALOG", + "CATCH", "CHANGE_RETENTION", "CHANGE_TRACKING", + "CHECKSUM", "CHECKSUM_AGG", "CLEANUP", + "COLLECTION", "COLUMN_MASTER_KEY", "COMMITTED", + "COMPATIBILITY_LEVEL", "CONCAT", "CONCAT_NULL_YIELDS_NULL", + "CONTENT", "CONTROL", "COOKIE", "COUNT", + "COUNT_BIG", "COUNTER", "CPU", "CREATE_NEW", + "CREATION_DISPOSITION", "CREDENTIAL", + "CRYPTOGRAPHIC", "CURSOR_CLOSE_ON_COMMIT", + "CURSOR_DEFAULT", "DATA", "DATE_CORRELATION_OPTIMIZATION", + "DATEADD", "DATEDIFF", "DATENAME", "DATEPART", + "DAYS", "DB_CHAINING", "DB_FAILOVER", + "DECRYPTION", "DEFAULT_DOUBLE_QUOTE", + "DEFAULT_FULLTEXT_LANGUAGE", "DEFAULT_LANGUAGE", + "DELAY", "DELAYED_DURABILITY", "DELETED", + "DENSE_RANK", "DEPENDENTS", "DES", "DESCRIPTION", + "DESX", "DHCP", "DIALOG", "DIRECTORY_NAME", + "DISABLE", "DISABLE_BROKER", "DISABLED", + "DISK_DRIVE", "DOCUMENT", "DYNAMIC", "ELEMENTS", + "EMERGENCY", "EMPTY", "ENABLE", "ENABLE_BROKER", + "ENCRYPTED_VALUE", "ENCRYPTION", "ENDPOINT_URL", + "ERROR_BROKER_CONVERSATIONS", "EXCLUSIVE", + "EXECUTABLE", "EXIST", "EXPAND", "EXPIRY_DATE", + "EXPLICIT", "FAIL_OPERATION", "FAILOVER_MODE", + "FAILURE", "FAILURE_CONDITION_LEVEL", + "FAST", "FAST_FORWARD", "FILEGROUP", "FILEGROWTH", + "FILEPATH", "FILESTREAM", "FILTER", "FIRST", + "FIRST_VALUE", "FOLLOWING", "FORCE", "FORCE_FAILOVER_ALLOW_DATA_LOSS", + "FORCED", "FORMAT", "FORWARD_ONLY", "FULLSCAN", + "FULLTEXT", "GB", "GETDATE", "GETUTCDATE", + "GLOBAL", "GO", "GROUP_MAX_REQUESTS", + "GROUPING", "GROUPING_ID", "HADR", "HASH", + "HEALTH_CHECK_TIMEOUT", "HIGH", "HONOR_BROKER_PRIORITY", + "HOURS", "IDENTITY_VALUE", "IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX", + "IMMEDIATE", "IMPERSONATE", "IMPORTANCE", + "INCLUDE_NULL_VALUES", "INCREMENTAL", + "INITIATOR", "INPUT", "INSENSITIVE", "INSERTED", + "INT", "IP", "ISOLATION", "JOB", "JSON", + "KB", "KEEP", "KEEPFIXED", "KEY_SOURCE", + "KEYS", "KEYSET", "LAG", "LAST", "LAST_VALUE", + "LEAD", "LEVEL", "LIST", "LISTENER", "LISTENER_URL", + "LOB_COMPACTION", "LOCAL", "LOCATION", + "LOCK", "LOCK_ESCALATION", "LOGIN", "LOOP", + "LOW", "MANUAL", "MARK", "MATERIALIZED", + "MAX", "MAX_CPU_PERCENT", "MAX_DOP", "MAX_FILES", + "MAX_IOPS_PER_VOLUME", "MAX_MEMORY_PERCENT", + "MAX_PROCESSES", "MAX_QUEUE_READERS", + "MAX_ROLLOVER_FILES", "MAXDOP", "MAXRECURSION", + "MAXSIZE", "MB", "MEDIUM", "MEMORY_OPTIMIZED_DATA", + "MESSAGE", "MIN", "MIN_ACTIVE_ROWVERSION", + "MIN_CPU_PERCENT", "MIN_IOPS_PER_VOLUME", + "MIN_MEMORY_PERCENT", "MINUTES", "MIRROR_ADDRESS", + "MIXED_PAGE_ALLOCATION", "MODE", "MODIFY", + "MOVE", "MULTI_USER", "NAME", "NESTED_TRIGGERS", + "NEW_ACCOUNT", "NEW_BROKER", "NEW_PASSWORD", + "NEXT", "NO", "NO_TRUNCATE", "NO_WAIT", + "NOCOUNT", "NODES", "NOEXPAND", "NON_TRANSACTED_ACCESS", + "NORECOMPUTE", "NORECOVERY", "NOWAIT", + "NTILE", "NUMANODE", "NUMBER", "NUMERIC_ROUNDABORT", + "OBJECT", "OFFLINE", "OFFSET", "OLD_ACCOUNT", + "ONLINE", "ONLY", "OPEN_EXISTING", "OPTIMISTIC", + "OPTIMIZE", "OUT", "OUTPUT", "OVERRIDE", + "OWNER", "PAGE_VERIFY", "PARAMETERIZATION", + "PARTITION", "PARTITIONS", "PARTNER", + "PATH", "POISON_MESSAGE_HANDLING", "POOL", + "PORT", "PRECEDING", "PRIMARY_ROLE", "PRIOR", + "PRIORITY", "PRIORITY_LEVEL", "PRIVATE", + "PRIVATE_KEY", "PRIVILEGES", "PROCEDURE_NAME", + "PROPERTY", "PROVIDER", "PROVIDER_KEY_NAME", + "QUERY", "QUEUE", "QUEUE_DELAY", "QUOTED_IDENTIFIER", + "RANGE", "RANK", "RC2", "RC4", "RC4_128", + "READ_COMMITTED_SNAPSHOT", "READ_ONLY", + "READ_ONLY_ROUTING_LIST", "READ_WRITE", + "READONLY", "REBUILD", "RECEIVE", "RECOMPILE", + "RECOVERY", "RECURSIVE_TRIGGERS", "RELATIVE", + "REMOTE", "REMOTE_SERVICE_NAME", "REMOVE", + "REORGANIZE", "REPEATABLE", "REPLICA", + "REQUEST_MAX_CPU_TIME_SEC", "REQUEST_MAX_MEMORY_GRANT_PERCENT", + "REQUEST_MEMORY_GRANT_TIMEOUT_SEC", "REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT", + "RESERVE_DISK_SPACE", "RESOURCE", "RESOURCE_MANAGER_LOCATION", + "RESTRICTED_USER", "RETENTION", "ROBUST", + "ROOT", "ROUTE", "ROW", "ROW_NUMBER", + "ROWGUID", "ROWS", "SAMPLE", "SCHEMABINDING", + "SCOPED", "SCROLL", "SCROLL_LOCKS", "SEARCH", + "SECONDARY", "SECONDARY_ONLY", "SECONDARY_ROLE", + "SECONDS", "SECRET", "SECURITY", "SECURITY_LOG", + "SEEDING_MODE", "SELF", "SEMI_SENSITIVE", + "SEND", "SENT", "SEQUENCE", "SERIALIZABLE", + "SESSION_TIMEOUT", "SETERROR", "SHARE", + "SHOWPLAN", "SIGNATURE", "SIMPLE", "SINGLE_USER", + "SIZE", "SMALLINT", "SNAPSHOT", "SPATIAL_WINDOW_MAX_CELLS", + "STANDBY", "START_DATE", "STATIC", "STATS_STREAM", + "STATUS", "STATUSONLY", "STDEV", "STDEVP", + "STOPLIST", "STRING_AGG", "STUFF", "SUBJECT", + "SUBSCRIPTION", "SUM", "SUSPEND", "SYMMETRIC", + "SYNCHRONOUS_COMMIT", "SYNONYM", "SYSTEM", + "TAKE", "TARGET_RECOVERY_TIME", "TB", + "TEXTIMAGE_ON", "THROW", "TIES", "TIME", + "TIMEOUT", "TIMER", "TINYINT", "TORN_PAGE_DETECTION", + "TRANSFORM_NOISE_WORDS", "TRIPLE_DES", + "TRIPLE_DES_3KEY", "TRUSTWORTHY", "TRY", + "TSQL", "TWO_DIGIT_YEAR_CUTOFF", "TYPE", + "TYPE_WARNING", "UNBOUNDED", "UNCOMMITTED", + "UNKNOWN", "UNLIMITED", "UOW", "USING", + "VALID_XML", "VALIDATION", "VALUE", "VAR", + "VARP", "VIEW_METADATA", "VIEWS", "WAIT", + "WELL_FORMED_XML", "WITHOUT_ARRAY_WRAPPER", + "WORK", "WORKLOAD", "XML", "XMLDATA", + "XMLNAMESPACES", "XMLSCHEMA", "XSINIL", + "DOLLAR_ACTION", "SPACE", "COMMENT", "LINE_COMMENT", + "DOUBLE_QUOTE_ID", "SINGLE_QUOTE", "SQUARE_BRACKET_ID", + "LOCAL_ID", "DECIMAL", "ID", "QUOTED_URL", + "QUOTED_HOST_AND_PORT", "STRING", "BINARY", + "FLOAT", "REAL", "EQUAL", "GREATER", "LESS", + "EXCLAMATION", "PLUS_ASSIGN", "MINUS_ASSIGN", + "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", + "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", + "DOUBLE_BAR", "DOT", "UNDERLINE", "AT", + "SHARP", "DOLLAR", "LR_BRACKET", "RR_BRACKET", + "COMMA", "SEMI", "COLON", "STAR", "DIVIDE", + "MODULE", "PLUS", "MINUS", "BIT_NOT", + "BIT_OR", "BIT_AND", "BIT_XOR", "LETTER", + "IPV6_OCTECT", "IPV4_OCTECT", "DEC_DOT_DEC", + "HEX_DIGIT", "DEC_DIGIT", "FullWidthLetter" ]; + +TSqlLexer.prototype.grammarFileName = "TSqlLexer.g4"; + + +exports.TSqlLexer = TSqlLexer; + diff --git a/src/grammar/tsql/parser/TSqlLexer.tokens b/src/grammar/tsql/parser/TSqlLexer.tokens new file mode 100644 index 0000000..5d9475f --- /dev/null +++ b/src/grammar/tsql/parser/TSqlLexer.tokens @@ -0,0 +1,1657 @@ +ABSENT=1 +ADD=2 +AES=3 +ALL=4 +ALLOW_CONNECTIONS=5 +ALLOW_MULTIPLE_EVENT_LOSS=6 +ALLOW_SINGLE_EVENT_LOSS=7 +ALTER=8 +AND=9 +ANONYMOUS=10 +ANY=11 +APPEND=12 +APPLICATION=13 +AS=14 +ASC=15 +ASYMMETRIC=16 +ASYNCHRONOUS_COMMIT=17 +AUTHORIZATION=18 +AUTHENTICATION=19 +AUTOMATED_BACKUP_PREFERENCE=20 +AUTOMATIC=21 +AVAILABILITY_MODE=22 +BACKSLASH=23 +BACKUP=24 +BEFORE=25 +BEGIN=26 +BETWEEN=27 +BLOCK=28 +BLOCKSIZE=29 +BLOCKING_HIERARCHY=30 +BREAK=31 +BROWSE=32 +BUFFER=33 +BUFFERCOUNT=34 +BULK=35 +BY=36 +CACHE=37 +CALLED=38 +CASCADE=39 +CASE=40 +CERTIFICATE=41 +CHANGETABLE=42 +CHANGES=43 +CHECK=44 +CHECKPOINT=45 +CHECK_POLICY=46 +CHECK_EXPIRATION=47 +CLASSIFIER_FUNCTION=48 +CLOSE=49 +CLUSTER=50 +CLUSTERED=51 +COALESCE=52 +COLLATE=53 +COLUMN=54 +COMPRESSION=55 +COMMIT=56 +COMPUTE=57 +CONFIGURATION=58 +CONSTRAINT=59 +CONTAINMENT=60 +CONTAINS=61 +CONTAINSTABLE=62 +CONTEXT=63 +CONTINUE=64 +CONTINUE_AFTER_ERROR=65 +CONTRACT=66 +CONTRACT_NAME=67 +CONVERSATION=68 +CONVERT=69 +COPY_ONLY=70 +CREATE=71 +CROSS=72 +CURRENT=73 +CURRENT_DATE=74 +CURRENT_TIME=75 +CURRENT_TIMESTAMP=76 +CURRENT_USER=77 +CURSOR=78 +CYCLE=79 +DATA_COMPRESSION=80 +DATA_SOURCE=81 +DATABASE=82 +DATABASE_MIRRORING=83 +DBCC=84 +DEALLOCATE=85 +DECLARE=86 +DEFAULT=87 +DEFAULT_DATABASE=88 +DEFAULT_SCHEMA=89 +DELETE=90 +DENY=91 +DESC=92 +DIAGNOSTICS=93 +DIFFERENTIAL=94 +DISK=95 +DISTINCT=96 +DISTRIBUTED=97 +DOUBLE=98 +DOUBLE_BACK_SLASH=99 +DOUBLE_FORWARD_SLASH=100 +DROP=101 +DTC_SUPPORT=102 +DUMP=103 +ELSE=104 +ENABLED=105 +END=106 +ENDPOINT=107 +ERRLVL=108 +ESCAPE=109 +ERROR=110 +EVENT=111 +EVENTDATA=112 +EVENT_RETENTION_MODE=113 +EXCEPT=114 +EXECUTABLE_FILE=115 +EXECUTE=116 +EXISTS=117 +EXPIREDATE=118 +EXIT=119 +EXTENSION=120 +EXTERNAL=121 +EXTERNAL_ACCESS=122 +FAILOVER=123 +FAILURECONDITIONLEVEL=124 +FAN_IN=125 +FETCH=126 +FILE=127 +FILENAME=128 +FILLFACTOR=129 +FILE_SNAPSHOT=130 +FOR=131 +FORCESEEK=132 +FORCE_SERVICE_ALLOW_DATA_LOSS=133 +FOREIGN=134 +FREETEXT=135 +FREETEXTTABLE=136 +FROM=137 +FULL=138 +FUNCTION=139 +GET=140 +GOTO=141 +GOVERNOR=142 +GRANT=143 +GROUP=144 +HAVING=145 +HASHED=146 +HEALTHCHECKTIMEOUT=147 +IDENTITY=148 +IDENTITYCOL=149 +IDENTITY_INSERT=150 +IF=151 +IIF=152 +IN=153 +INCLUDE=154 +INCREMENT=155 +INDEX=156 +INFINITE=157 +INIT=158 +INNER=159 +INSERT=160 +INSTEAD=161 +INTERSECT=162 +INTO=163 +IPV4_ADDR=164 +IPV6_ADDR=165 +IS=166 +ISNULL=167 +JOIN=168 +KERBEROS=169 +KEY=170 +KEY_PATH=171 +KEY_STORE_PROVIDER_NAME=172 +KILL=173 +LANGUAGE=174 +LEFT=175 +LIBRARY=176 +LIFETIME=177 +LIKE=178 +LINENO=179 +LINUX=180 +LISTENER_IP=181 +LISTENER_PORT=182 +LOAD=183 +LOCAL_SERVICE_NAME=184 +LOG=185 +MATCHED=186 +MASTER=187 +MAX_MEMORY=188 +MAXTRANSFER=189 +MAXVALUE=190 +MAX_DISPATCH_LATENCY=191 +MAX_EVENT_SIZE=192 +MAX_SIZE=193 +MAX_OUTSTANDING_IO_PER_VOLUME=194 +MEDIADESCRIPTION=195 +MEDIANAME=196 +MEMBER=197 +MEMORY_PARTITION_MODE=198 +MERGE=199 +MESSAGE_FORWARDING=200 +MESSAGE_FORWARD_SIZE=201 +MINVALUE=202 +MIRROR=203 +MUST_CHANGE=204 +NATIONAL=205 +NEGOTIATE=206 +NOCHECK=207 +NOFORMAT=208 +NOINIT=209 +NONCLUSTERED=210 +NONE=211 +NOREWIND=212 +NOSKIP=213 +NOUNLOAD=214 +NO_CHECKSUM=215 +NO_COMPRESSION=216 +NO_EVENT_LOSS=217 +NOT=218 +NOTIFICATION=219 +NTLM=220 +NULL=221 +NULLIF=222 +OF=223 +OFF=224 +OFFSETS=225 +OLD_PASSWORD=226 +ON=227 +ON_FAILURE=228 +OPEN=229 +OPENDATASOURCE=230 +OPENQUERY=231 +OPENROWSET=232 +OPENXML=233 +OPTION=234 +OR=235 +ORDER=236 +OUTER=237 +OVER=238 +PAGE=239 +PARAM_NODE=240 +PARTIAL=241 +PASSWORD=242 +PERCENT=243 +PERMISSION_SET=244 +PER_CPU=245 +PER_DB=246 +PER_NODE=247 +PIVOT=248 +PLAN=249 +PLATFORM=250 +POLICY=251 +PRECISION=252 +PREDICATE=253 +PRIMARY=254 +PRINT=255 +PROC=256 +PROCEDURE=257 +PROCESS=258 +PUBLIC=259 +PYTHON=260 +R=261 +RAISERROR=262 +RAW=263 +READ=264 +READTEXT=265 +READ_WRITE_FILEGROUPS=266 +RECONFIGURE=267 +REFERENCES=268 +REGENERATE=269 +RELATED_CONVERSATION=270 +RELATED_CONVERSATION_GROUP=271 +REPLICATION=272 +REQUIRED=273 +RESET=274 +RESTART=275 +RESTORE=276 +RESTRICT=277 +RESUME=278 +RETAINDAYS=279 +RETURN=280 +RETURNS=281 +REVERT=282 +REVOKE=283 +REWIND=284 +RIGHT=285 +ROLLBACK=286 +ROLE=287 +ROWCOUNT=288 +ROWGUIDCOL=289 +RSA_512=290 +RSA_1024=291 +RSA_2048=292 +RSA_3072=293 +RSA_4096=294 +SAFETY=295 +RULE=296 +SAFE=297 +SAVE=298 +SCHEDULER=299 +SCHEMA=300 +SCHEME=301 +SECURITYAUDIT=302 +SELECT=303 +SEMANTICKEYPHRASETABLE=304 +SEMANTICSIMILARITYDETAILSTABLE=305 +SEMANTICSIMILARITYTABLE=306 +SERVER=307 +SERVICE=308 +SERVICE_BROKER=309 +SERVICE_NAME=310 +SESSION=311 +SESSION_USER=312 +SET=313 +SETUSER=314 +SHUTDOWN=315 +SID=316 +SKIP_KEYWORD=317 +SOFTNUMA=318 +SOME=319 +SOURCE=320 +SPECIFICATION=321 +SPLIT=322 +SQLDUMPERFLAGS=323 +SQLDUMPERPATH=324 +SQLDUMPERTIMEOUT=325 +STATISTICS=326 +STATE=327 +STATS=328 +START=329 +STARTED=330 +STARTUP_STATE=331 +STOP=332 +STOPPED=333 +STOP_ON_ERROR=334 +SUPPORTED=335 +SYSTEM_USER=336 +TABLE=337 +TABLESAMPLE=338 +TAPE=339 +TARGET=340 +TCP=341 +TEXTSIZE=342 +THEN=343 +TO=344 +TOP=345 +TRACK_CAUSALITY=346 +TRAN=347 +TRANSACTION=348 +TRANSFER=349 +TRIGGER=350 +TRUNCATE=351 +TSEQUAL=352 +UNCHECKED=353 +UNION=354 +UNIQUE=355 +UNLOCK=356 +UNPIVOT=357 +UNSAFE=358 +UPDATE=359 +UPDATETEXT=360 +URL=361 +USE=362 +USED=363 +USER=364 +VALUES=365 +VARYING=366 +VERBOSELOGGING=367 +VIEW=368 +VISIBILITY=369 +WAITFOR=370 +WHEN=371 +WHERE=372 +WHILE=373 +WINDOWS=374 +WITH=375 +WITHIN=376 +WITHOUT=377 +WITNESS=378 +WRITETEXT=379 +ABSOLUTE=380 +ACCENT_SENSITIVITY=381 +ACTION=382 +ACTIVATION=383 +ACTIVE=384 +ADDRESS=385 +AES_128=386 +AES_192=387 +AES_256=388 +AFFINITY=389 +AFTER=390 +AGGREGATE=391 +ALGORITHM=392 +ALLOW_ENCRYPTED_VALUE_MODIFICATIONS=393 +ALLOW_SNAPSHOT_ISOLATION=394 +ALLOWED=395 +ANSI_NULL_DEFAULT=396 +ANSI_NULLS=397 +ANSI_PADDING=398 +ANSI_WARNINGS=399 +APPLICATION_LOG=400 +APPLY=401 +ARITHABORT=402 +ASSEMBLY=403 +AUDIT=404 +AUDIT_GUID=405 +AUTO=406 +AUTO_CLEANUP=407 +AUTO_CLOSE=408 +AUTO_CREATE_STATISTICS=409 +AUTO_SHRINK=410 +AUTO_UPDATE_STATISTICS=411 +AUTO_UPDATE_STATISTICS_ASYNC=412 +AVAILABILITY=413 +AVG=414 +BACKUP_PRIORITY=415 +BEGIN_DIALOG=416 +BIGINT=417 +BINARY_BASE64=418 +BINARY_CHECKSUM=419 +BINDING=420 +BLOB_STORAGE=421 +BROKER=422 +BROKER_INSTANCE=423 +BULK_LOGGED=424 +CALLER=425 +CAP_CPU_PERCENT=426 +CAST=427 +CATALOG=428 +CATCH=429 +CHANGE_RETENTION=430 +CHANGE_TRACKING=431 +CHECKSUM=432 +CHECKSUM_AGG=433 +CLEANUP=434 +COLLECTION=435 +COLUMN_MASTER_KEY=436 +COMMITTED=437 +COMPATIBILITY_LEVEL=438 +CONCAT=439 +CONCAT_NULL_YIELDS_NULL=440 +CONTENT=441 +CONTROL=442 +COOKIE=443 +COUNT=444 +COUNT_BIG=445 +COUNTER=446 +CPU=447 +CREATE_NEW=448 +CREATION_DISPOSITION=449 +CREDENTIAL=450 +CRYPTOGRAPHIC=451 +CURSOR_CLOSE_ON_COMMIT=452 +CURSOR_DEFAULT=453 +DATA=454 +DATE_CORRELATION_OPTIMIZATION=455 +DATEADD=456 +DATEDIFF=457 +DATENAME=458 +DATEPART=459 +DAYS=460 +DB_CHAINING=461 +DB_FAILOVER=462 +DECRYPTION=463 +DEFAULT_DOUBLE_QUOTE=464 +DEFAULT_FULLTEXT_LANGUAGE=465 +DEFAULT_LANGUAGE=466 +DELAY=467 +DELAYED_DURABILITY=468 +DELETED=469 +DENSE_RANK=470 +DEPENDENTS=471 +DES=472 +DESCRIPTION=473 +DESX=474 +DHCP=475 +DIALOG=476 +DIRECTORY_NAME=477 +DISABLE=478 +DISABLE_BROKER=479 +DISABLED=480 +DISK_DRIVE=481 +DOCUMENT=482 +DYNAMIC=483 +ELEMENTS=484 +EMERGENCY=485 +EMPTY=486 +ENABLE=487 +ENABLE_BROKER=488 +ENCRYPTED_VALUE=489 +ENCRYPTION=490 +ENDPOINT_URL=491 +ERROR_BROKER_CONVERSATIONS=492 +EXCLUSIVE=493 +EXECUTABLE=494 +EXIST=495 +EXPAND=496 +EXPIRY_DATE=497 +EXPLICIT=498 +FAIL_OPERATION=499 +FAILOVER_MODE=500 +FAILURE=501 +FAILURE_CONDITION_LEVEL=502 +FAST=503 +FAST_FORWARD=504 +FILEGROUP=505 +FILEGROWTH=506 +FILEPATH=507 +FILESTREAM=508 +FILTER=509 +FIRST=510 +FIRST_VALUE=511 +FOLLOWING=512 +FORCE=513 +FORCE_FAILOVER_ALLOW_DATA_LOSS=514 +FORCED=515 +FORMAT=516 +FORWARD_ONLY=517 +FULLSCAN=518 +FULLTEXT=519 +GB=520 +GETDATE=521 +GETUTCDATE=522 +GLOBAL=523 +GO=524 +GROUP_MAX_REQUESTS=525 +GROUPING=526 +GROUPING_ID=527 +HADR=528 +HASH=529 +HEALTH_CHECK_TIMEOUT=530 +HIGH=531 +HONOR_BROKER_PRIORITY=532 +HOURS=533 +IDENTITY_VALUE=534 +IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX=535 +IMMEDIATE=536 +IMPERSONATE=537 +IMPORTANCE=538 +INCLUDE_NULL_VALUES=539 +INCREMENTAL=540 +INITIATOR=541 +INPUT=542 +INSENSITIVE=543 +INSERTED=544 +INT=545 +IP=546 +ISOLATION=547 +JOB=548 +JSON=549 +KB=550 +KEEP=551 +KEEPFIXED=552 +KEY_SOURCE=553 +KEYS=554 +KEYSET=555 +LAG=556 +LAST=557 +LAST_VALUE=558 +LEAD=559 +LEVEL=560 +LIST=561 +LISTENER=562 +LISTENER_URL=563 +LOB_COMPACTION=564 +LOCAL=565 +LOCATION=566 +LOCK=567 +LOCK_ESCALATION=568 +LOGIN=569 +LOOP=570 +LOW=571 +MANUAL=572 +MARK=573 +MATERIALIZED=574 +MAX=575 +MAX_CPU_PERCENT=576 +MAX_DOP=577 +MAX_FILES=578 +MAX_IOPS_PER_VOLUME=579 +MAX_MEMORY_PERCENT=580 +MAX_PROCESSES=581 +MAX_QUEUE_READERS=582 +MAX_ROLLOVER_FILES=583 +MAXDOP=584 +MAXRECURSION=585 +MAXSIZE=586 +MB=587 +MEDIUM=588 +MEMORY_OPTIMIZED_DATA=589 +MESSAGE=590 +MIN=591 +MIN_ACTIVE_ROWVERSION=592 +MIN_CPU_PERCENT=593 +MIN_IOPS_PER_VOLUME=594 +MIN_MEMORY_PERCENT=595 +MINUTES=596 +MIRROR_ADDRESS=597 +MIXED_PAGE_ALLOCATION=598 +MODE=599 +MODIFY=600 +MOVE=601 +MULTI_USER=602 +NAME=603 +NESTED_TRIGGERS=604 +NEW_ACCOUNT=605 +NEW_BROKER=606 +NEW_PASSWORD=607 +NEXT=608 +NO=609 +NO_TRUNCATE=610 +NO_WAIT=611 +NOCOUNT=612 +NODES=613 +NOEXPAND=614 +NON_TRANSACTED_ACCESS=615 +NORECOMPUTE=616 +NORECOVERY=617 +NOWAIT=618 +NTILE=619 +NUMANODE=620 +NUMBER=621 +NUMERIC_ROUNDABORT=622 +OBJECT=623 +OFFLINE=624 +OFFSET=625 +OLD_ACCOUNT=626 +ONLINE=627 +ONLY=628 +OPEN_EXISTING=629 +OPTIMISTIC=630 +OPTIMIZE=631 +OUT=632 +OUTPUT=633 +OVERRIDE=634 +OWNER=635 +PAGE_VERIFY=636 +PARAMETERIZATION=637 +PARTITION=638 +PARTITIONS=639 +PARTNER=640 +PATH=641 +POISON_MESSAGE_HANDLING=642 +POOL=643 +PORT=644 +PRECEDING=645 +PRIMARY_ROLE=646 +PRIOR=647 +PRIORITY=648 +PRIORITY_LEVEL=649 +PRIVATE=650 +PRIVATE_KEY=651 +PRIVILEGES=652 +PROCEDURE_NAME=653 +PROPERTY=654 +PROVIDER=655 +PROVIDER_KEY_NAME=656 +QUERY=657 +QUEUE=658 +QUEUE_DELAY=659 +QUOTED_IDENTIFIER=660 +RANGE=661 +RANK=662 +RC2=663 +RC4=664 +RC4_128=665 +READ_COMMITTED_SNAPSHOT=666 +READ_ONLY=667 +READ_ONLY_ROUTING_LIST=668 +READ_WRITE=669 +READONLY=670 +REBUILD=671 +RECEIVE=672 +RECOMPILE=673 +RECOVERY=674 +RECURSIVE_TRIGGERS=675 +RELATIVE=676 +REMOTE=677 +REMOTE_SERVICE_NAME=678 +REMOVE=679 +REORGANIZE=680 +REPEATABLE=681 +REPLICA=682 +REQUEST_MAX_CPU_TIME_SEC=683 +REQUEST_MAX_MEMORY_GRANT_PERCENT=684 +REQUEST_MEMORY_GRANT_TIMEOUT_SEC=685 +REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT=686 +RESERVE_DISK_SPACE=687 +RESOURCE=688 +RESOURCE_MANAGER_LOCATION=689 +RESTRICTED_USER=690 +RETENTION=691 +ROBUST=692 +ROOT=693 +ROUTE=694 +ROW=695 +ROW_NUMBER=696 +ROWGUID=697 +ROWS=698 +SAMPLE=699 +SCHEMABINDING=700 +SCOPED=701 +SCROLL=702 +SCROLL_LOCKS=703 +SEARCH=704 +SECONDARY=705 +SECONDARY_ONLY=706 +SECONDARY_ROLE=707 +SECONDS=708 +SECRET=709 +SECURITY=710 +SECURITY_LOG=711 +SEEDING_MODE=712 +SELF=713 +SEMI_SENSITIVE=714 +SEND=715 +SENT=716 +SEQUENCE=717 +SERIALIZABLE=718 +SESSION_TIMEOUT=719 +SETERROR=720 +SHARE=721 +SHOWPLAN=722 +SIGNATURE=723 +SIMPLE=724 +SINGLE_USER=725 +SIZE=726 +SMALLINT=727 +SNAPSHOT=728 +SPATIAL_WINDOW_MAX_CELLS=729 +STANDBY=730 +START_DATE=731 +STATIC=732 +STATS_STREAM=733 +STATUS=734 +STATUSONLY=735 +STDEV=736 +STDEVP=737 +STOPLIST=738 +STRING_AGG=739 +STUFF=740 +SUBJECT=741 +SUBSCRIPTION=742 +SUM=743 +SUSPEND=744 +SYMMETRIC=745 +SYNCHRONOUS_COMMIT=746 +SYNONYM=747 +SYSTEM=748 +TAKE=749 +TARGET_RECOVERY_TIME=750 +TB=751 +TEXTIMAGE_ON=752 +THROW=753 +TIES=754 +TIME=755 +TIMEOUT=756 +TIMER=757 +TINYINT=758 +TORN_PAGE_DETECTION=759 +TRANSFORM_NOISE_WORDS=760 +TRIPLE_DES=761 +TRIPLE_DES_3KEY=762 +TRUSTWORTHY=763 +TRY=764 +TSQL=765 +TWO_DIGIT_YEAR_CUTOFF=766 +TYPE=767 +TYPE_WARNING=768 +UNBOUNDED=769 +UNCOMMITTED=770 +UNKNOWN=771 +UNLIMITED=772 +UOW=773 +USING=774 +VALID_XML=775 +VALIDATION=776 +VALUE=777 +VAR=778 +VARP=779 +VIEW_METADATA=780 +VIEWS=781 +WAIT=782 +WELL_FORMED_XML=783 +WITHOUT_ARRAY_WRAPPER=784 +WORK=785 +WORKLOAD=786 +XML=787 +XMLDATA=788 +XMLNAMESPACES=789 +XMLSCHEMA=790 +XSINIL=791 +DOLLAR_ACTION=792 +SPACE=793 +COMMENT=794 +LINE_COMMENT=795 +DOUBLE_QUOTE_ID=796 +SINGLE_QUOTE=797 +SQUARE_BRACKET_ID=798 +LOCAL_ID=799 +DECIMAL=800 +ID=801 +QUOTED_URL=802 +QUOTED_HOST_AND_PORT=803 +STRING=804 +BINARY=805 +FLOAT=806 +REAL=807 +EQUAL=808 +GREATER=809 +LESS=810 +EXCLAMATION=811 +PLUS_ASSIGN=812 +MINUS_ASSIGN=813 +MULT_ASSIGN=814 +DIV_ASSIGN=815 +MOD_ASSIGN=816 +AND_ASSIGN=817 +XOR_ASSIGN=818 +OR_ASSIGN=819 +DOUBLE_BAR=820 +DOT=821 +UNDERLINE=822 +AT=823 +SHARP=824 +DOLLAR=825 +LR_BRACKET=826 +RR_BRACKET=827 +COMMA=828 +SEMI=829 +COLON=830 +STAR=831 +DIVIDE=832 +MODULE=833 +PLUS=834 +MINUS=835 +BIT_NOT=836 +BIT_OR=837 +BIT_AND=838 +BIT_XOR=839 +IPV4_OCTECT=840 +'ABSENT'=1 +'ADD'=2 +'AES'=3 +'ALL'=4 +'ALLOW_CONNECTIONS'=5 +'ALLOW_MULTIPLE_EVENT_LOSS'=6 +'ALLOW_SINGLE_EVENT_LOSS'=7 +'ALTER'=8 +'AND'=9 +'ANONYMOUS'=10 +'ANY'=11 +'APPEND'=12 +'APPLICATION'=13 +'AS'=14 +'ASC'=15 +'ASYMMETRIC'=16 +'ASYNCHRONOUS_COMMIT'=17 +'AUTHORIZATION'=18 +'AUTHENTICATION'=19 +'AUTOMATED_BACKUP_PREFERENCE'=20 +'AUTOMATIC'=21 +'AVAILABILITY_MODE'=22 +'\\'=23 +'BACKUP'=24 +'BEFORE'=25 +'BEGIN'=26 +'BETWEEN'=27 +'BLOCK'=28 +'BLOCKSIZE'=29 +'BLOCKING_HIERARCHY'=30 +'BREAK'=31 +'BROWSE'=32 +'BUFFER'=33 +'BUFFERCOUNT'=34 +'BULK'=35 +'BY'=36 +'CACHE'=37 +'CALLED'=38 +'CASCADE'=39 +'CASE'=40 +'CERTIFICATE'=41 +'CHANGETABLE'=42 +'CHANGES'=43 +'CHECK'=44 +'CHECKPOINT'=45 +'CHECK_POLICY'=46 +'CHECK_EXPIRATION'=47 +'CLASSIFIER_FUNCTION'=48 +'CLOSE'=49 +'CLUSTER'=50 +'CLUSTERED'=51 +'COALESCE'=52 +'COLLATE'=53 +'COLUMN'=54 +'COMPRESSION'=55 +'COMMIT'=56 +'COMPUTE'=57 +'CONFIGURATION'=58 +'CONSTRAINT'=59 +'CONTAINMENT'=60 +'CONTAINS'=61 +'CONTAINSTABLE'=62 +'CONTEXT'=63 +'CONTINUE'=64 +'CONTINUE_AFTER_ERROR'=65 +'CONTRACT'=66 +'CONTRACT_NAME'=67 +'CONVERSATION'=68 +'COPY_ONLY'=70 +'CREATE'=71 +'CROSS'=72 +'CURRENT'=73 +'CURRENT_DATE'=74 +'CURRENT_TIME'=75 +'CURRENT_TIMESTAMP'=76 +'CURRENT_USER'=77 +'CURSOR'=78 +'CYCLE'=79 +'DATA_COMPRESSION'=80 +'DATA_SOURCE'=81 +'DATABASE'=82 +'DATABASE_MIRRORING'=83 +'DBCC'=84 +'DEALLOCATE'=85 +'DECLARE'=86 +'DEFAULT'=87 +'DEFAULT_DATABASE'=88 +'DEFAULT_SCHEMA'=89 +'DELETE'=90 +'DENY'=91 +'DESC'=92 +'DIAGNOSTICS'=93 +'DIFFERENTIAL'=94 +'DISK'=95 +'DISTINCT'=96 +'DISTRIBUTED'=97 +'DOUBLE'=98 +'\\\\'=99 +'//'=100 +'DROP'=101 +'DTC_SUPPORT'=102 +'DUMP'=103 +'ELSE'=104 +'ENABLED'=105 +'END'=106 +'ENDPOINT'=107 +'ERRLVL'=108 +'ESCAPE'=109 +'ERROR'=110 +'EVENT'=111 +'EVENT_RETENTION_MODE'=113 +'EXCEPT'=114 +'EXECUTABLE_FILE'=115 +'EXISTS'=117 +'EXPIREDATE'=118 +'EXIT'=119 +'EXTENSION'=120 +'EXTERNAL'=121 +'EXTERNAL_ACCESS'=122 +'FAILOVER'=123 +'FAILURECONDITIONLEVEL'=124 +'FAN_IN'=125 +'FETCH'=126 +'FILE'=127 +'FILENAME'=128 +'FILLFACTOR'=129 +'FILE_SNAPSHOT'=130 +'FOR'=131 +'FORCESEEK'=132 +'FORCE_SERVICE_ALLOW_DATA_LOSS'=133 +'FOREIGN'=134 +'FREETEXT'=135 +'FREETEXTTABLE'=136 +'FROM'=137 +'FULL'=138 +'FUNCTION'=139 +'GET'=140 +'GOTO'=141 +'GOVERNOR'=142 +'GRANT'=143 +'GROUP'=144 +'HAVING'=145 +'HASHED'=146 +'HEALTHCHECKTIMEOUT'=147 +'IDENTITY'=148 +'IDENTITYCOL'=149 +'IDENTITY_INSERT'=150 +'IF'=151 +'IIF'=152 +'IN'=153 +'INCLUDE'=154 +'INCREMENT'=155 +'INDEX'=156 +'INFINITE'=157 +'INIT'=158 +'INNER'=159 +'INSERT'=160 +'INSTEAD'=161 +'INTERSECT'=162 +'INTO'=163 +'IS'=166 +'ISNULL'=167 +'JOIN'=168 +'KERBEROS'=169 +'KEY'=170 +'KEY_PATH'=171 +'KEY_STORE_PROVIDER_NAME'=172 +'KILL'=173 +'LANGUAGE'=174 +'LEFT'=175 +'LIBRARY'=176 +'LIFETIME'=177 +'LIKE'=178 +'LINENO'=179 +'LINUX'=180 +'LISTENER_IP'=181 +'LISTENER_PORT'=182 +'LOAD'=183 +'LOCAL_SERVICE_NAME'=184 +'LOG'=185 +'MATCHED'=186 +'MASTER'=187 +'MAX_MEMORY'=188 +'MAXTRANSFER'=189 +'MAXVALUE'=190 +'MAX_DISPATCH_LATENCY'=191 +'MAX_EVENT_SIZE'=192 +'MAX_SIZE'=193 +'MAX_OUTSTANDING_IO_PER_VOLUME'=194 +'MEDIADESCRIPTION'=195 +'MEDIANAME'=196 +'MEMBER'=197 +'MEMORY_PARTITION_MODE'=198 +'MERGE'=199 +'MESSAGE_FORWARDING'=200 +'MESSAGE_FORWARD_SIZE'=201 +'MINVALUE'=202 +'MIRROR'=203 +'MUST_CHANGE'=204 +'NATIONAL'=205 +'NEGOTIATE'=206 +'NOCHECK'=207 +'NOFORMAT'=208 +'NOINIT'=209 +'NONCLUSTERED'=210 +'NONE'=211 +'NOREWIND'=212 +'NOSKIP'=213 +'NOUNLOAD'=214 +'NO_CHECKSUM'=215 +'NO_COMPRESSION'=216 +'NO_EVENT_LOSS'=217 +'NOT'=218 +'NOTIFICATION'=219 +'NTLM'=220 +'NULL'=221 +'NULLIF'=222 +'OF'=223 +'OFF'=224 +'OFFSETS'=225 +'OLD_PASSWORD'=226 +'ON'=227 +'ON_FAILURE'=228 +'OPEN'=229 +'OPENDATASOURCE'=230 +'OPENQUERY'=231 +'OPENROWSET'=232 +'OPENXML'=233 +'OPTION'=234 +'OR'=235 +'ORDER'=236 +'OUTER'=237 +'OVER'=238 +'PAGE'=239 +'PARAM_NODE'=240 +'PARTIAL'=241 +'PASSWORD'=242 +'PERCENT'=243 +'PERMISSION_SET'=244 +'PER_CPU'=245 +'PER_DB'=246 +'PER_NODE'=247 +'PIVOT'=248 +'PLAN'=249 +'PLATFORM'=250 +'POLICY'=251 +'PRECISION'=252 +'PREDICATE'=253 +'PRIMARY'=254 +'PRINT'=255 +'PROC'=256 +'PROCEDURE'=257 +'PROCESS'=258 +'PUBLIC'=259 +'PYTHON'=260 +'R'=261 +'RAISERROR'=262 +'RAW'=263 +'READ'=264 +'READTEXT'=265 +'READ_WRITE_FILEGROUPS'=266 +'RECONFIGURE'=267 +'REFERENCES'=268 +'REGENERATE'=269 +'RELATED_CONVERSATION'=270 +'RELATED_CONVERSATION_GROUP'=271 +'REPLICATION'=272 +'REQUIRED'=273 +'RESET'=274 +'RESTART'=275 +'RESTORE'=276 +'RESTRICT'=277 +'RESUME'=278 +'RETAINDAYS'=279 +'RETURN'=280 +'RETURNS'=281 +'REVERT'=282 +'REVOKE'=283 +'REWIND'=284 +'RIGHT'=285 +'ROLLBACK'=286 +'ROLE'=287 +'ROWCOUNT'=288 +'ROWGUIDCOL'=289 +'RSA_512'=290 +'RSA_1024'=291 +'RSA_2048'=292 +'RSA_3072'=293 +'RSA_4096'=294 +'SAFETY'=295 +'RULE'=296 +'SAFE'=297 +'SAVE'=298 +'SCHEDULER'=299 +'SCHEMA'=300 +'SCHEME'=301 +'SECURITYAUDIT'=302 +'SELECT'=303 +'SEMANTICKEYPHRASETABLE'=304 +'SEMANTICSIMILARITYDETAILSTABLE'=305 +'SEMANTICSIMILARITYTABLE'=306 +'SERVER'=307 +'SERVICE'=308 +'SERVICE_BROKER'=309 +'SERVICE_NAME'=310 +'SESSION'=311 +'SESSION_USER'=312 +'SET'=313 +'SETUSER'=314 +'SHUTDOWN'=315 +'SID'=316 +'SKIP'=317 +'SOFTNUMA'=318 +'SOME'=319 +'SOURCE'=320 +'SPECIFICATION'=321 +'SPLIT'=322 +'SQLDUMPERFLAGS'=323 +'SQLDUMPERPATH'=324 +'SQLDUMPERTIMEOUTS'=325 +'STATISTICS'=326 +'STATE'=327 +'STATS'=328 +'START'=329 +'STARTED'=330 +'STARTUP_STATE'=331 +'STOP'=332 +'STOPPED'=333 +'STOP_ON_ERROR'=334 +'SUPPORTED'=335 +'SYSTEM_USER'=336 +'TABLE'=337 +'TABLESAMPLE'=338 +'TAPE'=339 +'TARGET'=340 +'TCP'=341 +'TEXTSIZE'=342 +'THEN'=343 +'TO'=344 +'TOP'=345 +'TRACK_CAUSALITY'=346 +'TRAN'=347 +'TRANSACTION'=348 +'TRANSFER'=349 +'TRIGGER'=350 +'TRUNCATE'=351 +'TSEQUAL'=352 +'UNCHECKED'=353 +'UNION'=354 +'UNIQUE'=355 +'UNLOCK'=356 +'UNPIVOT'=357 +'UNSAFE'=358 +'UPDATE'=359 +'UPDATETEXT'=360 +'URL'=361 +'USE'=362 +'USED'=363 +'USER'=364 +'VALUES'=365 +'VARYING'=366 +'VERBOSELOGGING'=367 +'VIEW'=368 +'VISIBILITY'=369 +'WAITFOR'=370 +'WHEN'=371 +'WHERE'=372 +'WHILE'=373 +'WINDOWS'=374 +'WITH'=375 +'WITHIN'=376 +'WITHOUT'=377 +'WITNESS'=378 +'WRITETEXT'=379 +'ABSOLUTE'=380 +'ACCENT_SENSITIVITY'=381 +'ACTION'=382 +'ACTIVATION'=383 +'ACTIVE'=384 +'ADDRESS'=385 +'AES_128'=386 +'AES_192'=387 +'AES_256'=388 +'AFFINITY'=389 +'AFTER'=390 +'AGGREGATE'=391 +'ALGORITHM'=392 +'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'=393 +'ALLOW_SNAPSHOT_ISOLATION'=394 +'ALLOWED'=395 +'ANSI_NULL_DEFAULT'=396 +'ANSI_NULLS'=397 +'ANSI_PADDING'=398 +'ANSI_WARNINGS'=399 +'APPLICATION_LOG'=400 +'APPLY'=401 +'ARITHABORT'=402 +'ASSEMBLY'=403 +'AUDIT'=404 +'AUDIT_GUID'=405 +'AUTO'=406 +'AUTO_CLEANUP'=407 +'AUTO_CLOSE'=408 +'AUTO_CREATE_STATISTICS'=409 +'AUTO_SHRINK'=410 +'AUTO_UPDATE_STATISTICS'=411 +'AUTO_UPDATE_STATISTICS_ASYNC'=412 +'AVAILABILITY'=413 +'AVG'=414 +'BACKUP_PRIORITY'=415 +'BEGIN_DIALOG'=416 +'BIGINT'=417 +'BINARY BASE64'=418 +'BINARY_CHECKSUM'=419 +'BINDING'=420 +'BLOB_STORAGE'=421 +'BROKER'=422 +'BROKER_INSTANCE'=423 +'BULK_LOGGED'=424 +'CALLER'=425 +'CAP_CPU_PERCENT'=426 +'CATALOG'=428 +'CATCH'=429 +'CHANGE_RETENTION'=430 +'CHANGE_TRACKING'=431 +'CHECKSUM'=432 +'CHECKSUM_AGG'=433 +'CLEANUP'=434 +'COLLECTION'=435 +'COLUMN_MASTER_KEY'=436 +'COMMITTED'=437 +'COMPATIBILITY_LEVEL'=438 +'CONCAT'=439 +'CONCAT_NULL_YIELDS_NULL'=440 +'CONTENT'=441 +'CONTROL'=442 +'COOKIE'=443 +'COUNT'=444 +'COUNT_BIG'=445 +'COUNTER'=446 +'CPU'=447 +'CREATE_NEW'=448 +'CREATION_DISPOSITION'=449 +'CREDENTIAL'=450 +'CRYPTOGRAPHIC'=451 +'CURSOR_CLOSE_ON_COMMIT'=452 +'CURSOR_DEFAULT'=453 +'DATA'=454 +'DATE_CORRELATION_OPTIMIZATION'=455 +'DATEADD'=456 +'DATEDIFF'=457 +'DATENAME'=458 +'DATEPART'=459 +'DAYS'=460 +'DB_CHAINING'=461 +'DB_FAILOVER'=462 +'DECRYPTION'=463 +'DEFAULT_FULLTEXT_LANGUAGE'=465 +'DEFAULT_LANGUAGE'=466 +'DELAY'=467 +'DELAYED_DURABILITY'=468 +'DELETED'=469 +'DENSE_RANK'=470 +'DEPENDENTS'=471 +'DES'=472 +'DESCRIPTION'=473 +'DESX'=474 +'DHCP'=475 +'DIALOG'=476 +'DIRECTORY_NAME'=477 +'DISABLE'=478 +'DISABLE_BROKER'=479 +'DISABLED'=480 +'DOCUMENT'=482 +'DYNAMIC'=483 +'ELEMENTS'=484 +'EMERGENCY'=485 +'EMPTY'=486 +'ENABLE'=487 +'ENABLE_BROKER'=488 +'ENCRYPTED_VALUE'=489 +'ENCRYPTION'=490 +'ENDPOINT_URL'=491 +'ERROR_BROKER_CONVERSATIONS'=492 +'EXCLUSIVE'=493 +'EXECUTABLE'=494 +'EXIST'=495 +'EXPAND'=496 +'EXPIRY_DATE'=497 +'EXPLICIT'=498 +'FAIL_OPERATION'=499 +'FAILOVER_MODE'=500 +'FAILURE'=501 +'FAILURE_CONDITION_LEVEL'=502 +'FAST'=503 +'FAST_FORWARD'=504 +'FILEGROUP'=505 +'FILEGROWTH'=506 +'FILEPATH'=507 +'FILESTREAM'=508 +'FILTER'=509 +'FIRST'=510 +'FIRST_VALUE'=511 +'FOLLOWING'=512 +'FORCE'=513 +'FORCE_FAILOVER_ALLOW_DATA_LOSS'=514 +'FORCED'=515 +'FORMAT'=516 +'FORWARD_ONLY'=517 +'FULLSCAN'=518 +'FULLTEXT'=519 +'GB'=520 +'GETDATE'=521 +'GETUTCDATE'=522 +'GLOBAL'=523 +'GO'=524 +'GROUP_MAX_REQUESTS'=525 +'GROUPING'=526 +'GROUPING_ID'=527 +'HADR'=528 +'HASH'=529 +'HEALTH_CHECK_TIMEOUT'=530 +'HIGH'=531 +'HONOR_BROKER_PRIORITY'=532 +'HOURS'=533 +'IDENTITY_VALUE'=534 +'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'=535 +'IMMEDIATE'=536 +'IMPERSONATE'=537 +'IMPORTANCE'=538 +'INCLUDE_NULL_VALUES'=539 +'INCREMENTAL'=540 +'INITIATOR'=541 +'INPUT'=542 +'INSENSITIVE'=543 +'INSERTED'=544 +'INT'=545 +'IP'=546 +'ISOLATION'=547 +'JOB'=548 +'JSON'=549 +'KB'=550 +'KEEP'=551 +'KEEPFIXED'=552 +'KEY_SOURCE'=553 +'KEYS'=554 +'KEYSET'=555 +'LAG'=556 +'LAST'=557 +'LAST_VALUE'=558 +'LEAD'=559 +'LEVEL'=560 +'LIST'=561 +'LISTENER'=562 +'LISTENER_URL'=563 +'LOB_COMPACTION'=564 +'LOCAL'=565 +'LOCATION'=566 +'LOCK'=567 +'LOCK_ESCALATION'=568 +'LOGIN'=569 +'LOOP'=570 +'LOW'=571 +'MANUAL'=572 +'MARK'=573 +'MATERIALIZED'=574 +'MAX'=575 +'MAX_CPU_PERCENT'=576 +'MAX_DOP'=577 +'MAX_FILES'=578 +'MAX_IOPS_PER_VOLUME'=579 +'MAX_MEMORY_PERCENT'=580 +'MAX_PROCESSES'=581 +'MAX_QUEUE_READERS'=582 +'MAX_ROLLOVER_FILES'=583 +'MAXDOP'=584 +'MAXRECURSION'=585 +'MAXSIZE'=586 +'MB'=587 +'MEDIUM'=588 +'MEMORY_OPTIMIZED_DATA'=589 +'MESSAGE'=590 +'MIN'=591 +'MIN_ACTIVE_ROWVERSION'=592 +'MIN_CPU_PERCENT'=593 +'MIN_IOPS_PER_VOLUME'=594 +'MIN_MEMORY_PERCENT'=595 +'MINUTES'=596 +'MIRROR_ADDRESS'=597 +'MIXED_PAGE_ALLOCATION'=598 +'MODE'=599 +'MODIFY'=600 +'MOVE'=601 +'MULTI_USER'=602 +'NAME'=603 +'NESTED_TRIGGERS'=604 +'NEW_ACCOUNT'=605 +'NEW_BROKER'=606 +'NEW_PASSWORD'=607 +'NEXT'=608 +'NO'=609 +'NO_TRUNCATE'=610 +'NO_WAIT'=611 +'NOCOUNT'=612 +'NODES'=613 +'NOEXPAND'=614 +'NON_TRANSACTED_ACCESS'=615 +'NORECOMPUTE'=616 +'NORECOVERY'=617 +'NOWAIT'=618 +'NTILE'=619 +'NUMANODE'=620 +'NUMBER'=621 +'NUMERIC_ROUNDABORT'=622 +'OBJECT'=623 +'OFFLINE'=624 +'OFFSET'=625 +'OLD_ACCOUNT'=626 +'ONLINE'=627 +'ONLY'=628 +'OPEN_EXISTING'=629 +'OPTIMISTIC'=630 +'OPTIMIZE'=631 +'OUT'=632 +'OUTPUT'=633 +'OVERRIDE'=634 +'OWNER'=635 +'PAGE_VERIFY'=636 +'PARAMETERIZATION'=637 +'PARTITION'=638 +'PARTITIONS'=639 +'PARTNER'=640 +'PATH'=641 +'POISON_MESSAGE_HANDLING'=642 +'POOL'=643 +'PORT'=644 +'PRECEDING'=645 +'PRIMARY_ROLE'=646 +'PRIOR'=647 +'PRIORITY'=648 +'PRIORITY_LEVEL'=649 +'PRIVATE'=650 +'PRIVATE_KEY'=651 +'PRIVILEGES'=652 +'PROCEDURE_NAME'=653 +'PROPERTY'=654 +'PROVIDER'=655 +'PROVIDER_KEY_NAME'=656 +'QUERY'=657 +'QUEUE'=658 +'QUEUE_DELAY'=659 +'QUOTED_IDENTIFIER'=660 +'RANGE'=661 +'RANK'=662 +'RC2'=663 +'RC4'=664 +'RC4_128'=665 +'READ_COMMITTED_SNAPSHOT'=666 +'READ_ONLY'=667 +'READ_ONLY_ROUTING_LIST'=668 +'READ_WRITE'=669 +'READONLY'=670 +'REBUILD'=671 +'RECEIVE'=672 +'RECOMPILE'=673 +'RECOVERY'=674 +'RECURSIVE_TRIGGERS'=675 +'RELATIVE'=676 +'REMOTE'=677 +'REMOTE_SERVICE_NAME'=678 +'REMOVE'=679 +'REORGANIZE'=680 +'REPEATABLE'=681 +'REPLICA'=682 +'REQUEST_MAX_CPU_TIME_SEC'=683 +'REQUEST_MAX_MEMORY_GRANT_PERCENT'=684 +'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'=685 +'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'=686 +'RESERVE_DISK_SPACE'=687 +'RESOURCE'=688 +'RESOURCE_MANAGER_LOCATION'=689 +'RESTRICTED_USER'=690 +'RETENTION'=691 +'ROBUST'=692 +'ROOT'=693 +'ROUTE'=694 +'ROW'=695 +'ROW_NUMBER'=696 +'ROWGUID'=697 +'ROWS'=698 +'SAMPLE'=699 +'SCHEMABINDING'=700 +'SCOPED'=701 +'SCROLL'=702 +'SCROLL_LOCKS'=703 +'SEARCH'=704 +'SECONDARY'=705 +'SECONDARY_ONLY'=706 +'SECONDARY_ROLE'=707 +'SECONDS'=708 +'SECRET'=709 +'SECURITY'=710 +'SECURITY_LOG'=711 +'SEEDING_MODE'=712 +'SELF'=713 +'SEMI_SENSITIVE'=714 +'SEND'=715 +'SENT'=716 +'SEQUENCE'=717 +'SERIALIZABLE'=718 +'SESSION_TIMEOUT'=719 +'SETERROR'=720 +'SHARE'=721 +'SHOWPLAN'=722 +'SIGNATURE'=723 +'SIMPLE'=724 +'SINGLE_USER'=725 +'SIZE'=726 +'SMALLINT'=727 +'SNAPSHOT'=728 +'SPATIAL_WINDOW_MAX_CELLS'=729 +'STANDBY'=730 +'START_DATE'=731 +'STATIC'=732 +'STATS_STREAM'=733 +'STATUS'=734 +'STATUSONLY'=735 +'STDEV'=736 +'STDEVP'=737 +'STOPLIST'=738 +'STRING_AGG'=739 +'STUFF'=740 +'SUBJECT'=741 +'SUBSCRIPTION'=742 +'SUM'=743 +'SUSPEND'=744 +'SYMMETRIC'=745 +'SYNCHRONOUS_COMMIT'=746 +'SYNONYM'=747 +'SYSTEM'=748 +'TAKE'=749 +'TARGET_RECOVERY_TIME'=750 +'TB'=751 +'TEXTIMAGE_ON'=752 +'THROW'=753 +'TIES'=754 +'TIME'=755 +'TIMEOUT'=756 +'TIMER'=757 +'TINYINT'=758 +'TORN_PAGE_DETECTION'=759 +'TRANSFORM_NOISE_WORDS'=760 +'TRIPLE_DES'=761 +'TRIPLE_DES_3KEY'=762 +'TRUSTWORTHY'=763 +'TRY'=764 +'TSQL'=765 +'TWO_DIGIT_YEAR_CUTOFF'=766 +'TYPE'=767 +'TYPE_WARNING'=768 +'UNBOUNDED'=769 +'UNCOMMITTED'=770 +'UNKNOWN'=771 +'UNLIMITED'=772 +'UOW'=773 +'USING'=774 +'VALID_XML'=775 +'VALIDATION'=776 +'VALUE'=777 +'VAR'=778 +'VARP'=779 +'VIEW_METADATA'=780 +'VIEWS'=781 +'WAIT'=782 +'WELL_FORMED_XML'=783 +'WITHOUT_ARRAY_WRAPPER'=784 +'WORK'=785 +'WORKLOAD'=786 +'XML'=787 +'XMLDATA'=788 +'XMLNAMESPACES'=789 +'XMLSCHEMA'=790 +'XSINIL'=791 +'$ACTION'=792 +'\''=797 +'='=808 +'>'=809 +'<'=810 +'!'=811 +'+='=812 +'-='=813 +'*='=814 +'/='=815 +'%='=816 +'&='=817 +'^='=818 +'|='=819 +'||'=820 +'.'=821 +'_'=822 +'@'=823 +'#'=824 +'$'=825 +'('=826 +')'=827 +','=828 +';'=829 +':'=830 +'*'=831 +'/'=832 +'%'=833 +'+'=834 +'-'=835 +'~'=836 +'|'=837 +'&'=838 +'^'=839 diff --git a/src/grammar/tsql/parser/TSqlParser.js b/src/grammar/tsql/parser/TSqlParser.js new file mode 100644 index 0000000..78a5a88 --- /dev/null +++ b/src/grammar/tsql/parser/TSqlParser.js @@ -0,0 +1,126333 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/tsql/TSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); +var TSqlParserListener = require('./TSqlParserListener').TSqlParserListener; +var TSqlParserVisitor = require('./TSqlParserVisitor').TSqlParserVisitor; + +var grammarFileName = "TSqlParser.g4"; + + +var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", + "\u0003\u034a\u2a08\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", + "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", + "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", + "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", + "\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013\u0004\u0014", + "\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017\t\u0017", + "\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a\u0004\u001b", + "\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e\t\u001e", + "\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#\t#\u0004", + "$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004*\t*\u0004", + "+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u00041\t1\u0004", + "2\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u00048\t8\u0004", + "9\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004?\t?\u0004", + "@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004F\tF\u0004", + "G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004M\tM\u0004", + "N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004T\tT\u0004", + "U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004[\t[\u0004", + "\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004b\tb\u0004", + "c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004i\ti\u0004", + "j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004p\tp\u0004", + "q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004w\tw\u0004", + "x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004~\t~\u0004", + "\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004\u0082\t", + "\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t\u0085\u0004", + "\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004\u0089\t", + "\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t\u008c\u0004", + "\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004\u0090\t", + "\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t\u0093\u0004", + "\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004\u0097\t", + "\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t\u009a\u0004", + "\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004\u009e\t", + "\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t\u00a1\u0004", + "\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004\u00a5\t", + "\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t\u00a8\u0004", + "\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004\u00ac\t", + "\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t\u00af\u0004", + "\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004\u00b3\t", + "\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t\u00b6\u0004", + "\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004\u00ba\t", + "\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t\u00bd\u0004", + "\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004\u00c1\t", + "\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t\u00c4\u0004", + "\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004\u00c8\t", + "\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t\u00cb\u0004", + "\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004\u00cf\t", + "\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t\u00d2\u0004", + "\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004\u00d6\t", + "\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t\u00d9\u0004", + "\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004\u00dd\t", + "\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t\u00e0\u0004", + "\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004\u00e4\t", + "\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t\u00e7\u0004", + "\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004\u00eb\t", + "\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t\u00ee\u0004", + "\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004\u00f2\t", + "\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t\u00f5\u0004", + "\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004\u00f9\t", + "\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t\u00fc\u0004", + "\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004\u0100\t", + "\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t\u0103\u0004", + "\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004\u0107\t", + "\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t\u010a\u0004", + "\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004\u010e\t", + "\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t\u0111\u0004", + "\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004\u0115\t", + "\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t\u0118\u0004", + "\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004\u011c\t", + "\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t\u011f\u0004", + "\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004\u0123\t", + "\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t\u0126\u0004", + "\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004\u012a\t", + "\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t\u012d\u0004", + "\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004\u0131\t", + "\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t\u0134\u0004", + "\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004\u0138\t", + "\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t\u013b\u0004", + "\u013c\t\u013c\u0004\u013d\t\u013d\u0004\u013e\t\u013e\u0004\u013f\t", + "\u013f\u0004\u0140\t\u0140\u0004\u0141\t\u0141\u0004\u0142\t\u0142\u0004", + "\u0143\t\u0143\u0004\u0144\t\u0144\u0004\u0145\t\u0145\u0004\u0146\t", + "\u0146\u0004\u0147\t\u0147\u0004\u0148\t\u0148\u0004\u0149\t\u0149\u0004", + "\u014a\t\u014a\u0004\u014b\t\u014b\u0004\u014c\t\u014c\u0004\u014d\t", + "\u014d\u0004\u014e\t\u014e\u0004\u014f\t\u014f\u0004\u0150\t\u0150\u0004", + "\u0151\t\u0151\u0004\u0152\t\u0152\u0004\u0153\t\u0153\u0004\u0154\t", + "\u0154\u0004\u0155\t\u0155\u0004\u0156\t\u0156\u0004\u0157\t\u0157\u0004", + "\u0158\t\u0158\u0004\u0159\t\u0159\u0004\u015a\t\u015a\u0004\u015b\t", + "\u015b\u0004\u015c\t\u015c\u0004\u015d\t\u015d\u0004\u015e\t\u015e\u0004", + "\u015f\t\u015f\u0004\u0160\t\u0160\u0004\u0161\t\u0161\u0004\u0162\t", + "\u0162\u0004\u0163\t\u0163\u0004\u0164\t\u0164\u0004\u0165\t\u0165\u0004", + "\u0166\t\u0166\u0004\u0167\t\u0167\u0004\u0168\t\u0168\u0004\u0169\t", + "\u0169\u0004\u016a\t\u016a\u0004\u016b\t\u016b\u0004\u016c\t\u016c\u0004", + "\u016d\t\u016d\u0004\u016e\t\u016e\u0004\u016f\t\u016f\u0004\u0170\t", + "\u0170\u0004\u0171\t\u0171\u0004\u0172\t\u0172\u0004\u0173\t\u0173\u0004", + "\u0174\t\u0174\u0004\u0175\t\u0175\u0004\u0176\t\u0176\u0004\u0177\t", + "\u0177\u0004\u0178\t\u0178\u0004\u0179\t\u0179\u0004\u017a\t\u017a\u0004", + "\u017b\t\u017b\u0004\u017c\t\u017c\u0004\u017d\t\u017d\u0004\u017e\t", + "\u017e\u0004\u017f\t\u017f\u0004\u0180\t\u0180\u0004\u0181\t\u0181\u0004", + "\u0182\t\u0182\u0004\u0183\t\u0183\u0004\u0184\t\u0184\u0004\u0185\t", + "\u0185\u0004\u0186\t\u0186\u0004\u0187\t\u0187\u0004\u0188\t\u0188\u0004", + "\u0189\t\u0189\u0004\u018a\t\u018a\u0004\u018b\t\u018b\u0004\u018c\t", + "\u018c\u0004\u018d\t\u018d\u0004\u018e\t\u018e\u0004\u018f\t\u018f\u0004", + "\u0190\t\u0190\u0004\u0191\t\u0191\u0004\u0192\t\u0192\u0004\u0193\t", + "\u0193\u0004\u0194\t\u0194\u0004\u0195\t\u0195\u0004\u0196\t\u0196\u0004", + "\u0197\t\u0197\u0004\u0198\t\u0198\u0004\u0199\t\u0199\u0004\u019a\t", + "\u019a\u0004\u019b\t\u019b\u0004\u019c\t\u019c\u0004\u019d\t\u019d\u0004", + "\u019e\t\u019e\u0004\u019f\t\u019f\u0004\u01a0\t\u01a0\u0004\u01a1\t", + "\u01a1\u0004\u01a2\t\u01a2\u0004\u01a3\t\u01a3\u0004\u01a4\t\u01a4\u0004", + "\u01a5\t\u01a5\u0004\u01a6\t\u01a6\u0004\u01a7\t\u01a7\u0004\u01a8\t", + "\u01a8\u0004\u01a9\t\u01a9\u0004\u01aa\t\u01aa\u0004\u01ab\t\u01ab\u0004", + "\u01ac\t\u01ac\u0004\u01ad\t\u01ad\u0004\u01ae\t\u01ae\u0004\u01af\t", + "\u01af\u0004\u01b0\t\u01b0\u0004\u01b1\t\u01b1\u0004\u01b2\t\u01b2\u0004", + "\u01b3\t\u01b3\u0004\u01b4\t\u01b4\u0004\u01b5\t\u01b5\u0004\u01b6\t", + "\u01b6\u0004\u01b7\t\u01b7\u0004\u01b8\t\u01b8\u0004\u01b9\t\u01b9\u0004", + "\u01ba\t\u01ba\u0004\u01bb\t\u01bb\u0004\u01bc\t\u01bc\u0004\u01bd\t", + "\u01bd\u0004\u01be\t\u01be\u0004\u01bf\t\u01bf\u0004\u01c0\t\u01c0\u0004", + "\u01c1\t\u01c1\u0004\u01c2\t\u01c2\u0004\u01c3\t\u01c3\u0004\u01c4\t", + "\u01c4\u0004\u01c5\t\u01c5\u0004\u01c6\t\u01c6\u0004\u01c7\t\u01c7\u0004", + "\u01c8\t\u01c8\u0004\u01c9\t\u01c9\u0004\u01ca\t\u01ca\u0004\u01cb\t", + "\u01cb\u0004\u01cc\t\u01cc\u0004\u01cd\t\u01cd\u0004\u01ce\t\u01ce\u0004", + "\u01cf\t\u01cf\u0004\u01d0\t\u01d0\u0004\u01d1\t\u01d1\u0004\u01d2\t", + "\u01d2\u0004\u01d3\t\u01d3\u0004\u01d4\t\u01d4\u0004\u01d5\t\u01d5\u0004", + "\u01d6\t\u01d6\u0004\u01d7\t\u01d7\u0004\u01d8\t\u01d8\u0004\u01d9\t", + "\u01d9\u0004\u01da\t\u01da\u0004\u01db\t\u01db\u0004\u01dc\t\u01dc\u0004", + "\u01dd\t\u01dd\u0004\u01de\t\u01de\u0004\u01df\t\u01df\u0004\u01e0\t", + "\u01e0\u0004\u01e1\t\u01e1\u0004\u01e2\t\u01e2\u0004\u01e3\t\u01e3\u0004", + "\u01e4\t\u01e4\u0004\u01e5\t\u01e5\u0004\u01e6\t\u01e6\u0004\u01e7\t", + "\u01e7\u0004\u01e8\t\u01e8\u0003\u0002\u0007\u0002\u03d2\n\u0002\f\u0002", + "\u000e\u0002\u03d5\u000b\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003", + "\u0003\u0007\u0003\u03db\n\u0003\f\u0003\u000e\u0003\u03de\u000b\u0003", + "\u0003\u0003\u0005\u0003\u03e1\n\u0003\u0003\u0003\u0003\u0003\u0007", + "\u0003\u03e5\n\u0003\f\u0003\u000e\u0003\u03e8\u000b\u0003\u0005\u0003", + "\u03ea\n\u0003\u0003\u0004\u0003\u0004\u0005\u0004\u03ee\n\u0004\u0006", + "\u0004\u03f0\n\u0004\r\u0004\u000e\u0004\u03f1\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005", + "\u03fb\n\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0005\u0006\u0402\n\u0006\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0005\u0007\u04a3\n\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005", + "\b\u04aa\n\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t", + "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u04b8\n\t\u0003\n\u0003", + "\n\u0005\n\u04bc\n\n\u0003\n\u0005\n\u04bf\n\n\u0003\n\u0003\n\u0005", + "\n\u04c3\n\n\u0003\u000b\u0003\u000b\u0005\u000b\u04c7\n\u000b\u0003", + "\f\u0003\f\u0005\f\u04cb\n\f\u0003\r\u0003\r\u0003\r\u0005\r\u04d0\n", + "\r\u0003\r\u0003\r\u0003\r\u0005\r\u04d5\n\r\u0005\r\u04d7\n\r\u0003", + "\u000e\u0003\u000e\u0005\u000e\u04db\n\u000e\u0003\u000e\u0005\u000e", + "\u04de\n\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003", + "\u000f\u0005\u000f\u04e5\n\u000f\u0003\u000f\u0005\u000f\u04e8\n\u000f", + "\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010", + "\u0003\u0010\u0005\u0010\u04f1\n\u0010\u0003\u0010\u0005\u0010\u04f4", + "\n\u0010\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003\u0013", + "\u0003\u0013\u0003\u0014\u0003\u0014\u0003\u0014\u0005\u0014\u04ff\n", + "\u0014\u0003\u0014\u0005\u0014\u0502\n\u0014\u0003\u0014\u0003\u0014", + "\u0003\u0014\u0005\u0014\u0507\n\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0005\u0014\u050c\n\u0014\u0003\u0014\u0005\u0014\u050f\n\u0014", + "\u0003\u0014\u0003\u0014\u0003\u0014\u0005\u0014\u0514\n\u0014\u0003", + "\u0015\u0003\u0015\u0005\u0015\u0518\n\u0015\u0003\u0015\u0005\u0015", + "\u051b\n\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u051f\n\u0015\u0003", + "\u0015\u0005\u0015\u0522\n\u0015\u0003\u0015\u0005\u0015\u0525\n\u0015", + "\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0005\u0016", + "\u052c\n\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u0530\n\u0016\u0005", + "\u0016\u0532\n\u0016\u0003\u0017\u0003\u0017\u0003\u0017\u0005\u0017", + "\u0537\n\u0017\u0003\u0017\u0003\u0017\u0007\u0017\u053b\n\u0017\f\u0017", + "\u000e\u0017\u053e\u000b\u0017\u0003\u0017\u0005\u0017\u0541\n\u0017", + "\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018", + "\u0003\u0018\u0003\u0018\u0003\u0018\u0007\u0018\u054c\n\u0018\f\u0018", + "\u000e\u0018\u054f\u000b\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0005", + "\u0018\u0554\n\u0018\u0003\u0018\u0005\u0018\u0557\n\u0018\u0003\u0018", + "\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0007\u0018\u055e\n", + "\u0018\f\u0018\u000e\u0018\u0561\u000b\u0018\u0005\u0018\u0563\n\u0018", + "\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a", + "\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a", + "\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a", + "\u0005\u001a\u0577\n\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003", + "\u001b\u0003\u001b\u0003\u001b\u0005\u001b\u057f\n\u001b\u0003\u001b", + "\u0003\u001b\u0003\u001b\u0005\u001b\u0584\n\u001b\u0003\u001b\u0005", + "\u001b\u0587\n\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0005\u001b", + "\u058c\n\u001b\u0003\u001b\u0005\u001b\u058f\n\u001b\u0003\u001b\u0003", + "\u001b\u0003\u001b\u0005\u001b\u0594\n\u001b\u0003\u001c\u0003\u001c", + "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0005\u001c\u059c\n", + "\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0005\u001c\u05a1\n\u001c", + "\u0003\u001c\u0005\u001c\u05a4\n\u001c\u0003\u001c\u0003\u001c\u0003", + "\u001c\u0005\u001c\u05a9\n\u001c\u0003\u001d\u0003\u001d\u0003\u001d", + "\u0003\u001d\u0005\u001d\u05af\n\u001d\u0003\u001d\u0003\u001d\u0003", + "\u001d\u0005\u001d\u05b4\n\u001d\u0003\u001d\u0003\u001d\u0003\u001e", + "\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f", + "\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003!\u0005!\u05c5\n", + "!\u0003!\u0005!\u05c8\n!\u0003!\u0005!\u05cb\n!\u0003!\u0005!\u05ce", + "\n!\u0003\"\u0003\"\u0003\"\u0005\"\u05d3\n\"\u0003#\u0003#\u0003$\u0003", + "$\u0003$\u0003%\u0003%\u0005%\u05dc\n%\u0003&\u0003&\u0003\'\u0003\'", + "\u0003\'\u0003(\u0003(\u0003(\u0003(\u0003)\u0003)\u0003)\u0003)\u0005", + ")\u05eb\n)\u0003*\u0003*\u0003+\u0003+\u0003+\u0003,\u0003,\u0003-\u0003", + "-\u0003-\u0003.\u0003.\u0003/\u0003/\u0003/\u0005/\u05fc\n/\u00030\u0003", + "0\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00050\u0607\n0\u0003", + "0\u00030\u00070\u060b\n0\f0\u000e0\u060e\u000b0\u00031\u00031\u0003", + "1\u00031\u00032\u00032\u00033\u00033\u00034\u00034\u00034\u00034\u0005", + "4\u061c\n4\u00035\u00035\u00036\u00036\u00036\u00037\u00037\u00038\u0003", + "8\u00038\u00038\u00038\u00038\u00058\u062b\n8\u00039\u00039\u0003:\u0003", + ":\u0003:\u0003:\u0003:\u0005:\u0634\n:\u0003:\u0003:\u0005:\u0638\n", + ":\u0003:\u0006:\u063b\n:\r:\u000e:\u063c\u0003:\u0003:\u0003:\u0003", + ":\u0005:\u0643\n:\u0003;\u0003;\u0003;\u0003;\u0005;\u0649\n;\u0003", + ";\u0005;\u064c\n;\u0003;\u0006;\u064f\n;\r;\u000e;\u0650\u0003;\u0003", + ";\u0003;\u0005;\u0656\n;\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0005", + "<\u065e\n<\u0003=\u0003=\u0003=\u0003=\u0003>\u0003>\u0003>\u0003>\u0005", + ">\u0668\n>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003?\u0003?\u0003@\u0003", + "@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0005@\u067b", + "\n@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0005A\u0683\nA\u0003", + "A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003", + "A\u0005A\u0690\nA\u0005A\u0692\nA\u0003A\u0003A\u0003A\u0003A\u0003", + "A\u0003A\u0003A\u0003A\u0003A\u0003A\u0005A\u069e\nA\u0005A\u06a0\n", + "A\u0003A\u0003A\u0003A\u0003A\u0003A\u0005A\u06a7\nA\u0003B\u0003B\u0003", + "B\u0003B\u0003B\u0003B\u0003B\u0005B\u06b0\nB\u0003C\u0003C\u0003C\u0003", + "C\u0005C\u06b6\nC\u0003C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003D\u0005", + "D\u06bf\nD\u0003E\u0003E\u0003F\u0003F\u0003F\u0003G\u0003G\u0003G\u0003", + "G\u0003H\u0003H\u0003H\u0003H\u0005H\u06ce\nH\u0003H\u0003H\u0003H\u0003", + "H\u0003I\u0003I\u0003I\u0003I\u0005I\u06d8\nI\u0003I\u0003I\u0003I\u0003", + "I\u0003J\u0003J\u0003J\u0003J\u0005J\u06e2\nJ\u0003J\u0003J\u0003J\u0003", + "J\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0005K\u070a\nK\u0003L\u0003L\u0003L\u0003", + "L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003", + "L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0005L\u0721\nL\u0003", + "M\u0003M\u0003N\u0003N\u0003O\u0003O\u0003O\u0003O\u0003O\u0003P\u0003", + "P\u0003P\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0005R\u0745\nR\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0005R\u0757\nR\u0003R\u0005R\u075a\nR\u0003R\u0003R\u0003", + "R\u0005R\u075f\nR\u0003R\u0005R\u0762\nR\u0003R\u0003R\u0003R\u0005", + "R\u0767\nR\u0003R\u0005R\u076a\nR\u0003R\u0003R\u0003R\u0005R\u076f", + "\nR\u0003R\u0005R\u0772\nR\u0003R\u0003R\u0003R\u0005R\u0777\nR\u0003", + "R\u0005R\u077a\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u0782", + "\nR\u0003R\u0005R\u0785\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0005R\u078d\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0005R\u079a\nR\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0005R\u07a5\nR\u0003R\u0007R\u07a8\n", + "R\fR\u000eR\u07ab\u000bR\u0003R\u0005R\u07ae\nR\u0003R\u0003R\u0003", + "R\u0003R\u0005R\u07b4\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0005R\u07cb\nR\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u07d7\nR\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u07e2\nR\u0003", + "R\u0007R\u07e5\nR\fR\u000eR\u07e8\u000bR\u0003R\u0005R\u07eb\nR\u0003", + "R\u0003R\u0003R\u0003R\u0005R\u07f1\nR\u0005R\u07f3\nR\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005", + "R\u0800\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0006R\u0815\nR\rR\u000eR\u0816\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0005R\u081e\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005", + "R\u0827\nR\u0003R\u0003R\u0003R\u0005R\u082c\nR\u0003R\u0005R\u082f", + "\nR\u0003R\u0003R\u0003R\u0005R\u0834\nR\u0003R\u0005R\u0837\nR\u0003", + "R\u0003R\u0003R\u0005R\u083c\nR\u0003R\u0006R\u083f\nR\rR\u000eR\u0840", + "\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u085d\nR\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0005R\u0864\nR\u0003R\u0006R\u0867\nR\rR\u000e", + "R\u0868\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u0870\nR\u0005R\u0872", + "\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005", + "R\u087d\nR\u0003R\u0003R\u0003R\u0003R\u0005R\u0883\nR\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0005R\u0892\nR\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003", + "S\u0003S\u0003S\u0003S\u0003S\u0003S\u0005S\u08a0\nS\u0003S\u0005S\u08a3", + "\nS\u0005S\u08a5\nS\u0003S\u0003S\u0003S\u0005S\u08aa\nS\u0003S\u0003", + "S\u0005S\u08ae\nS\u0003S\u0005S\u08b1\nS\u0005S\u08b3\nS\u0003S\u0003", + "S\u0003S\u0003S\u0005S\u08b9\nS\u0003S\u0005S\u08bc\nS\u0005S\u08be", + "\nS\u0003S\u0003S\u0003S\u0003S\u0005S\u08c4\nS\u0005S\u08c6\nS\u0003", + "S\u0003S\u0003T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003", + "U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0005", + "U\u08dc\nU\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u08e4\n", + "U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u08ec\nU\u0006U\u08ee", + "\nU\rU\u000eU\u08ef\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003", + "U\u0005U\u08f9\nU\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", + "V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", + "V\u0003V\u0005V\u090e\nV\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003", + "W\u0003W\u0003W\u0003W\u0003W\u0005W\u091b\nW\u0003W\u0003W\u0003W\u0003", + "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0005", + "W\u092a\nW\u0006W\u092c\nW\rW\u000eW\u092d\u0003X\u0003X\u0003X\u0003", + "X\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003", + "Z\u0003Z\u0003Z\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003\\\u0003\\", + "\u0003\\\u0003]\u0003]\u0003]\u0003]\u0003]\u0003^\u0003^\u0003^\u0003", + "^\u0005^\u0951\n^\u0003^\u0005^\u0954\n^\u0003^\u0006^\u0957\n^\r^\u000e", + "^\u0958\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003`\u0003`\u0003", + "`\u0003`\u0003`\u0003`\u0003a\u0003a\u0003a\u0003a\u0005a\u096b\na\u0003", + "a\u0005a\u096e\na\u0003a\u0003a\u0003a\u0005a\u0973\na\u0003a\u0003", + "a\u0003b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003c\u0003c\u0003c\u0003", + "c\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003e\u0003", + "e\u0003e\u0003e\u0005e\u098d\ne\u0003f\u0003f\u0003f\u0003f\u0003f\u0003", + "f\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0005g\u099b\ng\u0003g\u0003", + "g\u0003g\u0005g\u09a0\ng\u0003g\u0003g\u0003h\u0003h\u0003h\u0003h\u0005", + "h\u09a8\nh\u0003h\u0006h\u09ab\nh\rh\u000eh\u09ac\u0003h\u0003h\u0003", + "h\u0003h\u0003h\u0005h\u09b4\nh\u0003i\u0003i\u0003i\u0003i\u0003i\u0003", + "i\u0003i\u0003j\u0003j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003k\u0003", + "k\u0003k\u0003k\u0003k\u0005k\u09c9\nk\u0003k\u0003k\u0003l\u0003l\u0003", + "l\u0003l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003n\u0003n\u0003n\u0003", + "n\u0003o\u0003o\u0003o\u0003o\u0003o\u0003p\u0003p\u0003p\u0003p\u0003", + "p\u0003q\u0003q\u0003q\u0003q\u0003q\u0003r\u0003r\u0003r\u0003r\u0003", + "r\u0005r\u09ee\nr\u0003r\u0003r\u0003r\u0005r\u09f3\nr\u0003r\u0003", + "r\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003t\u0003t\u0003", + "t\u0003t\u0003u\u0003u\u0003u\u0003u\u0005u\u0a06\nu\u0003u\u0003u\u0003", + "v\u0003v\u0003v\u0003v\u0003w\u0003w\u0003w\u0003w\u0005w\u0a12\nw\u0003", + "w\u0005w\u0a15\nw\u0003w\u0003w\u0003w\u0005w\u0a1a\nw\u0003w\u0005", + "w\u0a1d\nw\u0003x\u0003x\u0003x\u0003x\u0005x\u0a23\nx\u0003x\u0003", + "x\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003z\u0003z\u0003", + "z\u0003z\u0005z\u0a32\nz\u0003z\u0003z\u0003z\u0005z\u0a37\nz\u0003", + "z\u0003z\u0003{\u0003{\u0003{\u0003{\u0005{\u0a3f\n{\u0003{\u0005{\u0a42", + "\n{\u0003{\u0003{\u0003{\u0005{\u0a47\n{\u0003{\u0003{\u0003{\u0005", + "{\u0a4c\n{\u0003{\u0005{\u0a4f\n{\u0003|\u0003|\u0003|\u0003|\u0003", + "|\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003", + "~\u0003~\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u0080", + "\u0003\u0080\u0005\u0080\u0a67\n\u0080\u0003\u0080\u0003\u0080\u0003", + "\u0080\u0003\u0080\u0003\u0080\u0005\u0080\u0a6e\n\u0080\u0003\u0080", + "\u0003\u0080\u0003\u0080\u0005\u0080\u0a73\n\u0080\u0003\u0080\u0003", + "\u0080\u0003\u0080\u0005\u0080\u0a78\n\u0080\u0003\u0080\u0003\u0080", + "\u0003\u0080\u0006\u0080\u0a7d\n\u0080\r\u0080\u000e\u0080\u0a7e\u0003", + "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0005\u0081\u0a86", + "\n\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0082", + "\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082", + "\u0005\u0082\u0a93\n\u0082\u0003\u0083\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0005\u0083\u0a99\n\u0083\u0003\u0083\u0003\u0083\u0003\u0083", + "\u0005\u0083\u0a9e\n\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003", + "\u0084\u0003\u0084\u0003\u0084\u0005\u0084\u0aa6\n\u0084\u0003\u0084", + "\u0003\u0084\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085", + "\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086", + "\u0003\u0086\u0005\u0086\u0ab6\n\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0087\u0003\u0087\u0003\u0087\u0005\u0087\u0abd\n\u0087\u0003\u0087", + "\u0003\u0087\u0003\u0087\u0005\u0087\u0ac2\n\u0087\u0003\u0087\u0006", + "\u0087\u0ac5\n\u0087\r\u0087\u000e\u0087\u0ac6\u0003\u0087\u0005\u0087", + "\u0aca\n\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0005", + "\u0087\u0ad0\n\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087", + "\u0005\u0087\u0ad6\n\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0005", + "\u0088\u0adb\n\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0005\u0088", + "\u0ae0\n\u0088\u0003\u0088\u0006\u0088\u0ae3\n\u0088\r\u0088\u000e\u0088", + "\u0ae4\u0003\u0088\u0005\u0088\u0ae8\n\u0088\u0003\u0088\u0003\u0088", + "\u0003\u0088\u0003\u0088\u0005\u0088\u0aee\n\u0088\u0003\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0005\u0088\u0af4\n\u0088\u0003\u0089", + "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089", + "\u0003\u0089\u0003\u0089\u0005\u0089\u0aff\n\u0089\u0003\u0089\u0005", + "\u0089\u0b02\n\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a", + "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u0b0c\n", + "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u0b12", + "\n\u008a\u0006\u008a\u0b14\n\u008a\r\u008a\u000e\u008a\u0b15\u0003\u008a", + "\u0003\u008a\u0005\u008a\u0b1a\n\u008a\u0003\u008b\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0005\u008c\u0b37\n\u008c\u0003\u008d\u0003\u008d\u0003\u008d", + "\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d", + "\u0003\u008d\u0003\u008d\u0005\u008d\u0b44\n\u008d\u0003\u008d\u0003", + "\u008d\u0003\u008d\u0003\u008d\u0005\u008d\u0b4a\n\u008d\u0003\u008e", + "\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e", + "\u0003\u008e\u0005\u008e\u0b54\n\u008e\u0003\u008e\u0005\u008e\u0b57", + "\n\u008e\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f", + "\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u0090\u0003\u0090", + "\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090", + "\u0003\u0090\u0005\u0090\u0b6b\n\u0090\u0003\u0090\u0003\u0090\u0005", + "\u0090\u0b6f\n\u0090\u0003\u0090\u0003\u0090\u0005\u0090\u0b73\n\u0090", + "\u0003\u0090\u0006\u0090\u0b76\n\u0090\r\u0090\u000e\u0090\u0b77\u0003", + "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0005\u0091\u0b87\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0091\u0005\u0091\u0b8e\n\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005", + "\u0091\u0b97\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0007\u0091\u0b9d\n\u0091\f\u0091\u000e\u0091\u0ba0\u000b\u0091\u0005", + "\u0091\u0ba2\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091", + "\u0ba7\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0bac", + "\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0006\u0091", + "\u0bb2\n\u0091\r\u0091\u000e\u0091\u0bb3\u0003\u0091\u0003\u0091\u0006", + "\u0091\u0bb8\n\u0091\r\u0091\u000e\u0091\u0bb9\u0003\u0091\u0003\u0091", + "\u0005\u0091\u0bbe\n\u0091\u0003\u0091\u0003\u0091\u0007\u0091\u0bc2", + "\n\u0091\f\u0091\u000e\u0091\u0bc5\u000b\u0091\u0007\u0091\u0bc7\n\u0091", + "\f\u0091\u000e\u0091\u0bca\u000b\u0091\u0003\u0091\u0005\u0091\u0bcd", + "\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0005\u0091\u0bd4\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0007\u0091\u0bda\n\u0091\f\u0091\u000e\u0091\u0bdd\u000b\u0091", + "\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091", + "\u0be4\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0bed\n\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0091\u0005\u0091\u0bf2\n\u0091\u0003\u0091\u0003", + "\u0091\u0005\u0091\u0bf6\n\u0091\u0003\u0091\u0005\u0091\u0bf9\n\u0091", + "\u0006\u0091\u0bfb\n\u0091\r\u0091\u000e\u0091\u0bfc\u0003\u0091\u0003", + "\u0091\u0007\u0091\u0c01\n\u0091\f\u0091\u000e\u0091\u0c04\u000b\u0091", + "\u0007\u0091\u0c06\n\u0091\f\u0091\u000e\u0091\u0c09\u000b\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c10", + "\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0007\u0091", + "\u0c16\n\u0091\f\u0091\u000e\u0091\u0c19\u000b\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0005\u0091\u0c1e\n\u0091\u0003\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0091\u0005\u0091\u0c24\n\u0091\u0003\u0091\u0005", + "\u0091\u0c27\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091", + "\u0c2c\n\u0091\u0003\u0091\u0005\u0091\u0c2f\n\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c36\n\u0091", + "\u0005\u0091\u0c38\n\u0091\u0003\u0091\u0005\u0091\u0c3b\n\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c41\n\u0091", + "\u0003\u0091\u0005\u0091\u0c44\n\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0005\u0091\u0c49\n\u0091\u0003\u0091\u0005\u0091\u0c4c\n\u0091", + "\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c51\n\u0091\u0003", + "\u0091\u0005\u0091\u0c54\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0005\u0091\u0c59\n\u0091\u0003\u0091\u0005\u0091\u0c5c\n\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c61\n\u0091\u0003\u0092", + "\u0005\u0092\u0c64\n\u0092\u0003\u0092\u0005\u0092\u0c67\n\u0092\u0003", + "\u0092\u0005\u0092\u0c6a\n\u0092\u0003\u0092\u0003\u0092\u0003\u0092", + "\u0003\u0092\u0003\u0092\u0005\u0092\u0c71\n\u0092\u0006\u0092\u0c73", + "\n\u0092\r\u0092\u000e\u0092\u0c74\u0003\u0093\u0003\u0093\u0003\u0093", + "\u0003\u0093\u0003\u0093\u0005\u0093\u0c7c\n\u0093\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0c83\n\u0094", + "\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0c89\n", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0005", + "\u0094\u0c96\n\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0c9a\n\u0094", + "\u0003\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0c9f\n\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0005\u0094\u0ca9\n\u0094\u0003\u0094\u0003\u0094", + "\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0005\u0094", + "\u0cb2\n\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0cb6\n\u0094\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0005\u0095\u0cc2\n\u0095", + "\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0005\u0095\u0cc8\n", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0006\u0095\u0ccd\n\u0095", + "\r\u0095\u000e\u0095\u0cce\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0005\u0095\u0ce3\n\u0095\u0003\u0095", + "\u0003\u0095\u0005\u0095\u0ce7\n\u0095\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0005\u0096\u0cef\n\u0096", + "\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096", + "\u0003\u0096\u0005\u0096\u0cf8\n\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0005\u0096\u0cfe\n\u0096\u0003\u0096\u0003\u0096", + "\u0003\u0096\u0003\u0096\u0005\u0096\u0d04\n\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0006\u0096\u0d0c", + "\n\u0096\r\u0096\u000e\u0096\u0d0d\u0003\u0096\u0003\u0096\u0003\u0097", + "\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0005\u0097", + "\u0d18\n\u0097\u0003\u0097\u0003\u0097\u0005\u0097\u0d1c\n\u0097\u0003", + "\u0097\u0005\u0097\u0d1f\n\u0097\u0003\u0097\u0003\u0097\u0005\u0097", + "\u0d23\n\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0005\u0097\u0d28", + "\n\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0005\u0097", + "\u0d2e\n\u0097\u0003\u0097\u0005\u0097\u0d31\n\u0097\u0003\u0097\u0003", + "\u0097\u0005\u0097\u0d35\n\u0097\u0003\u0097\u0003\u0097\u0003\u0097", + "\u0003\u0097\u0003\u0097\u0003\u0097\u0006\u0097\u0d3d\n\u0097\r\u0097", + "\u000e\u0097\u0d3e\u0003\u0097\u0005\u0097\u0d42\n\u0097\u0003\u0098", + "\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0005\u0098", + "\u0d4a\n\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0005\u0098\u0d52\n\u0098\u0003\u0098\u0003\u0098", + "\u0003\u0098\u0003\u0098\u0003\u0098\u0005\u0098\u0d59\n\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0006\u0098\u0d60", + "\n\u0098\r\u0098\u000e\u0098\u0d61\u0005\u0098\u0d64\n\u0098\u0003\u0098", + "\u0003\u0098\u0003\u0098\u0005\u0098\u0d69\n\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0098\u0005\u0098\u0d6f\n\u0098\u0003\u0098", + "\u0006\u0098\u0d72\n\u0098\r\u0098\u000e\u0098\u0d73\u0005\u0098\u0d76", + "\n\u0098\u0003\u0098\u0005\u0098\u0d79\n\u0098\u0003\u0098\u0003\u0098", + "\u0003\u0098\u0005\u0098\u0d7e\n\u0098\u0003\u0098\u0005\u0098\u0d81", + "\n\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0005\u0098\u0d86\n\u0098", + "\u0003\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099", + "\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099", + "\u0003\u0099\u0005\u0099\u0d95\n\u0099\u0003\u0099\u0003\u0099\u0003", + "\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0d9c\n\u0099\u0003\u0099", + "\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0006\u0099\u0da3\n", + "\u0099\r\u0099\u000e\u0099\u0da4\u0005\u0099\u0da7\n\u0099\u0003\u0099", + "\u0003\u0099\u0003\u0099\u0005\u0099\u0dac\n\u0099\u0003\u0099\u0003", + "\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0db2\n\u0099\u0003\u0099", + "\u0006\u0099\u0db5\n\u0099\r\u0099\u000e\u0099\u0db6\u0005\u0099\u0db9", + "\n\u0099\u0003\u0099\u0005\u0099\u0dbc\n\u0099\u0003\u0099\u0003\u0099", + "\u0003\u0099\u0005\u0099\u0dc1\n\u0099\u0003\u0099\u0005\u0099\u0dc4", + "\n\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0dc9\n\u0099", + "\u0003\u0099\u0003\u0099\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0005\u009a", + "\u0dd6\n\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0005\u009a\u0ddb", + "\n\u009a\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b", + "\u0003\u009b\u0003\u009b\u0005\u009b\u0de4\n\u009b\u0003\u009b\u0003", + "\u009b\u0003\u009b\u0005\u009b\u0de9\n\u009b\u0003\u009b\u0003\u009b", + "\u0003\u009b\u0003\u009b\u0005\u009b\u0def\n\u009b\u0003\u009b\u0003", + "\u009b\u0005\u009b\u0df3\n\u009b\u0003\u009b\u0003\u009b\u0005\u009b", + "\u0df7\n\u009b\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0005\u009c\u0e08", + "\n\u009c\u0005\u009c\u0e0a\n\u009c\u0003\u009d\u0003\u009d\u0003\u009d", + "\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0005\u009d", + "\u0e14\n\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0005\u009d\u0e19", + "\n\u009d\u0005\u009d\u0e1b\n\u009d\u0003\u009d\u0003\u009d\u0005\u009d", + "\u0e1f\n\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0005", + "\u009e\u0e25\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e", + "\u0003\u009e\u0003\u009e\u0005\u009e\u0e2d\n\u009e\u0003\u009e\u0007", + "\u009e\u0e30\n\u009e\f\u009e\u000e\u009e\u0e33\u000b\u009e\u0005\u009e", + "\u0e35\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0007", + "\u009e\u0e3b\n\u009e\f\u009e\u000e\u009e\u0e3e\u000b\u009e\u0005\u009e", + "\u0e40\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0e45", + "\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0e4a\n\u009e", + "\u0003\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0e4f\n\u009e\u0003", + "\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0e54\n\u009e\u0003\u009e", + "\u0003\u009e\u0003\u009e\u0005\u009e\u0e59\n\u009e\u0003\u009e\u0003", + "\u009e\u0003\u009e\u0005\u009e\u0e5e\n\u009e\u0003\u009e\u0003\u009e", + "\u0005\u009e\u0e62\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0005", + "\u009e\u0e67\n\u009e\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f", + "\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f", + "\u0e72\n\u009f\u0003\u009f\u0007\u009f\u0e75\n\u009f\f\u009f\u000e\u009f", + "\u0e78\u000b\u009f\u0005\u009f\u0e7a\n\u009f\u0003\u009f\u0005\u009f", + "\u0e7d\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0e82", + "\n\u009f\u0003\u009f\u0005\u009f\u0e85\n\u009f\u0003\u009f\u0003\u009f", + "\u0003\u009f\u0005\u009f\u0e8a\n\u009f\u0003\u009f\u0005\u009f\u0e8d", + "\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0e92\n\u009f", + "\u0003\u009f\u0005\u009f\u0e95\n\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0005\u009f\u0e9a\n\u009f\u0003\u009f\u0005\u009f\u0e9d\n\u009f", + "\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0ea2\n\u009f\u0003", + "\u009f\u0005\u009f\u0ea5\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f", + "\u0005\u009f\u0eaa\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0005\u009f\u0eb0\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f", + "\u0005\u009f\u0eb5\n\u009f\u0003\u009f\u0005\u009f\u0eb8\n\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0ebd\n\u009f\u0003\u009f", + "\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0ec4\n", + "\u009f\u0005\u009f\u0ec6\n\u009f\u0003\u00a0\u0003\u00a0\u0003\u00a0", + "\u0003\u00a0\u0005\u00a0\u0ecc\n\u00a0\u0003\u00a0\u0003\u00a0\u0003", + "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005\u00a0\u0ed5", + "\n\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005\u00a0\u0eda\n\u00a0", + "\u0005\u00a0\u0edc\n\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003", + "\u00a1\u0005\u00a1\u0ee8\n\u00a1\u0003\u00a2\u0003\u00a2\u0003\u00a2", + "\u0003\u00a2\u0005\u00a2\u0eee\n\u00a2\u0003\u00a2\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0007", + "\u00a2\u0ef8\n\u00a2\f\u00a2\u000e\u00a2\u0efb\u000b\u00a2\u0005\u00a2", + "\u0efd\n\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0005\u00a2\u0f02", + "\n\u00a2\u0005\u00a2\u0f04\n\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3", + "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3", + "\u0f0e\n\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3\u0f13", + "\n\u00a3\u0005\u00a3\u0f15\n\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3", + "\u0f19\n\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0005", + "\u00a4\u0f1f\n\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0005\u00a4\u0f31\n\u00a4\u0005\u00a4\u0f33\n\u00a4\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0005", + "\u00a6\u0f42\n\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", + "\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", + "\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", + "\u0005\u00a6\u0f54\n\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003", + "\u00a6\u0003\u00a6\u0003\u00a6\u0005\u00a6\u0f5c\n\u00a6\u0003\u00a7", + "\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7", + "\u0003\u00a7\u0005\u00a7\u0f66\n\u00a7\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0005", + "\u00a8\u0f76\n\u00a8\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9", + "\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9", + "\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa", + "\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0005\u00aa\u0f8b\n\u00aa\u0003", + "\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003", + "\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u0f96\n\u00ab\u0003\u00ab", + "\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u0f9c\n\u00ab\u0003", + "\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003", + "\u00ac\u0005\u00ac\u0fa5\n\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac", + "\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0005\u00ac\u0fae\n", + "\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0005\u00ac\u0fb4", + "\n\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0003\u00ad\u0005\u00ad\u0fbd\n\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0005\u00ad\u0fc2\n\u00ad\u0003\u00ad\u0005\u00ad", + "\u0fc5\n\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad\u0fca", + "\n\u00ad\u0003\u00ad\u0005\u00ad\u0fcd\n\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0005\u00ad\u0fd2\n\u00ad\u0003\u00ad\u0005\u00ad\u0fd5", + "\n\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0005\u00ad\u0fdd\n\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0005\u00ad\u0fe3\n\u00ad\u0006\u00ad\u0fe5\n\u00ad", + "\r\u00ad\u000e\u00ad\u0fe6\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0005\u00ad\u0fee\n\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0003\u00ad\u0005\u00ad\u0ff4\n\u00ad\u0006\u00ad\u0ff6", + "\n\u00ad\r\u00ad\u000e\u00ad\u0ff7\u0003\u00ad\u0005\u00ad\u0ffb\n\u00ad", + "\u0005\u00ad\u0ffd\n\u00ad\u0003\u00ad\u0005\u00ad\u1000\n\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad\u1005\n\u00ad\u0003\u00ad", + "\u0005\u00ad\u1008\n\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005", + "\u00ad\u100d\n\u00ad\u0003\u00ad\u0005\u00ad\u1010\n\u00ad\u0003\u00ad", + "\u0003\u00ad\u0003\u00ad\u0005\u00ad\u1015\n\u00ad\u0003\u00ad\u0005", + "\u00ad\u1018\n\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad", + "\u101d\n\u00ad\u0003\u00ad\u0005\u00ad\u1020\n\u00ad\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0005", + "\u00ae\u102f\n\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae", + "\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0005\u00ae", + "\u103a\n\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003", + "\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0005", + "\u00af\u1046\n\u00af\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0", + "\u0003\u00b0\u0005\u00b0\u104d\n\u00b0\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0005\u00b1\u1054\n\u00b1\u0003\u00b1", + "\u0003\u00b1\u0005\u00b1\u1058\n\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0005\u00b1\u105d\n\u00b1\u0003\u00b1\u0005\u00b1\u1060\n\u00b1", + "\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0005\u00b1\u1065\n\u00b1\u0003", + "\u00b1\u0005\u00b1\u1068\n\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1", + "\u0005\u00b1\u106d\n\u00b1\u0003\u00b1\u0005\u00b1\u1070\n\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0005\u00b1\u1079\n\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2", + "\u0003\u00b2\u0003\u00b2\u0005\u00b2\u1080\n\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003", + "\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0005", + "\u00b3\u108f\n\u00b3\u0003\u00b3\u0003\u00b3\u0005\u00b3\u1093\n\u00b3", + "\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0005\u00b3\u1098\n\u00b3\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0005\u00b4\u10a3\n\u00b4\u0003\u00b4", + "\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4", + "\u0003\u00b4\u0005\u00b4\u10ad\n\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0005\u00b4\u10b9\n\u00b4\u0003\u00b4\u0003\u00b4", + "\u0003\u00b4\u0003\u00b4\u0007\u00b4\u10bf\n\u00b4\f\u00b4\u000e\u00b4", + "\u10c2\u000b\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", + "\u00b5\u0005\u00b5\u10c9\n\u00b5\u0003\u00b6\u0003\u00b6\u0003\u00b6", + "\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u10d2\n", + "\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u10d7\n\u00b6", + "\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7", + "\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0005\u00b7\u10e2\n\u00b7\u0003", + "\u00b7\u0005\u00b7\u10e5\n\u00b7\u0003\u00b7\u0003\u00b7\u0005\u00b7", + "\u10e9\n\u00b7\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003", + "\u00b8\u0003\u00b8\u0005\u00b8\u10f1\n\u00b8\u0003\u00b8\u0003\u00b8", + "\u0005\u00b8\u10f5\n\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u10f9", + "\n\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0003\u00b8\u0005\u00b8\u1101\n\u00b8\u0003\u00b8\u0006\u00b8\u1104", + "\n\u00b8\r\u00b8\u000e\u00b8\u1105\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u110e\n\u00b8\u0003", + "\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u1113\n\u00b8\u0003\u00b8", + "\u0003\u00b8\u0007\u00b8\u1117\n\u00b8\f\u00b8\u000e\u00b8\u111a\u000b", + "\u00b8\u0006\u00b8\u111c\n\u00b8\r\u00b8\u000e\u00b8\u111d\u0003\u00b8", + "\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0005\u00b8\u1127\n\u00b8\u0003\u00b8\u0005\u00b8\u112a\n\u00b8\u0003", + "\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u112f\n\u00b8\u0003\u00b9", + "\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u1136\n", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u113c", + "\n\u00b9\u0005\u00b9\u113e\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0005\u00b9\u1143\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0005\u00b9\u1149\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0003\u00b9\u0005\u00b9\u114f\n\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0005\u00b9\u1154\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0003\u00b9\u0005\u00b9\u115a\n\u00b9\u0003\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1161\n\u00ba\u0003\u00ba", + "\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1166\n\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0005\u00ba\u116b\n\u00ba\u0003\u00ba\u0003\u00ba", + "\u0003\u00ba\u0005\u00ba\u1170\n\u00ba\u0003\u00ba\u0005\u00ba\u1173", + "\n\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1177\n\u00ba\u0003\u00ba", + "\u0003\u00ba\u0005\u00ba\u117b\n\u00ba\u0003\u00ba\u0003\u00ba\u0005", + "\u00ba\u117f\n\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1183\n\u00ba", + "\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1188\n\u00ba\u0003", + "\u00ba\u0003\u00ba\u0005\u00ba\u118c\n\u00ba\u0003\u00ba\u0003\u00ba", + "\u0005\u00ba\u1190\n\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u119a", + "\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb", + "\u11a0\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0005\u00bb\u11a7\n\u00bb\u0003\u00bb\u0005\u00bb\u11aa\n\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11b0\n", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11b6", + "\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0007\u00bb\u11bb\n\u00bb", + "\f\u00bb\u000e\u00bb\u11be\u000b\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0005\u00bb\u11c3\n\u00bb\u0005\u00bb\u11c5\n\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11ca\n\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11d0\n\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11d6\n\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0007\u00bb\u11db\n\u00bb\f\u00bb\u000e", + "\u00bb\u11de\u000b\u00bb\u0003\u00bb\u0005\u00bb\u11e1\n\u00bb\u0003", + "\u00bb\u0003\u00bb\u0005\u00bb\u11e5\n\u00bb\u0003\u00bb\u0005\u00bb", + "\u11e8\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0005\u00bb\u11f6\n\u00bb\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0005\u00bb\u11fb\n\u00bb\u0003\u00bb\u0003\u00bb\u0005", + "\u00bb\u11ff\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0005\u00bb\u120c\n\u00bb\u0003\u00bb\u0005\u00bb\u120f", + "\n\u00bb\u0005\u00bb\u1211\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u1219\n\u00bb\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0005\u00bc\u1223\n\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0003\u00bc\u0005\u00bc\u1229\n\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc\u1230\n\u00bc", + "\u0003\u00bc\u0005\u00bc\u1233\n\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0005\u00bc\u1239\n\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0003\u00bc\u0005\u00bc\u123f\n\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0007\u00bc\u1244\n\u00bc\f\u00bc\u000e\u00bc\u1247", + "\u000b\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc\u124c\n", + "\u00bc\u0005\u00bc\u124e\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", + "\u0005\u00bc\u1253\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0005\u00bc\u1259\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0005\u00bc\u125f\n\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0005\u00bc\u1265\n\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0007\u00bc\u126a\n\u00bc\f\u00bc\u000e\u00bc\u126d\u000b", + "\u00bc\u0003\u00bc\u0005\u00bc\u1270\n\u00bc\u0003\u00bc\u0003\u00bc", + "\u0005\u00bc\u1274\n\u00bc\u0003\u00bc\u0005\u00bc\u1277\n\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005", + "\u00bc\u1285\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc", + "\u128a\n\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc\u128e\n\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc\u129b", + "\n\u00bc\u0003\u00bc\u0005\u00bc\u129e\n\u00bc\u0005\u00bc\u12a0\n\u00bc", + "\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", + "\u0005\u00bc\u12a8\n\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0005", + "\u00bd\u12b3\n\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd", + "\u0003\u00bd\u0007\u00bd\u12ba\n\u00bd\f\u00bd\u000e\u00bd\u12bd\u000b", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0005\u00bd\u12c5\n\u00bd\u0003\u00be\u0003\u00be\u0003\u00be", + "\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be", + "\u0005\u00be\u12d0\n\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0007\u00be\u12d7\n\u00be\f\u00be\u000e\u00be\u12da", + "\u000b\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be", + "\u0003\u00be\u0005\u00be\u12e2\n\u00be\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0005\u00bf\u12ee\n\u00bf\u0003\u00bf\u0003\u00bf", + "\u0005\u00bf\u12f2\n\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0006", + "\u00bf\u12f7\n\u00bf\r\u00bf\u000e\u00bf\u12f8\u0005\u00bf\u12fb\n\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0005\u00bf\u1300\n\u00bf\u0003", + "\u00bf\u0003\u00bf\u0005\u00bf\u1304\n\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0006\u00bf\u1309\n\u00bf\r\u00bf\u000e\u00bf\u130a\u0005", + "\u00bf\u130d\n\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0005\u00bf\u131b\n\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0005\u00bf\u1320\n\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0005\u00bf\u1336\n\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0005\u00bf\u134c", + "\n\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0005\u00bf\u1351\n\u00bf", + "\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0", + "\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0005\u00c0", + "\u135e\n\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0005\u00c1\u1366\n\u00c1\u0003\u00c2\u0003\u00c2", + "\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2", + "\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3", + "\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0005\u00c3\u137a\n", + "\u00c3\u0003\u00c3\u0005\u00c3\u137d\n\u00c3\u0003\u00c3\u0003\u00c3", + "\u0007\u00c3\u1381\n\u00c3\f\u00c3\u000e\u00c3\u1384\u000b\u00c3\u0003", + "\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0005\u00c4\u138b", + "\n\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4", + "\u0005\u00c4\u1392\n\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0005", + "\u00c4\u1397\n\u00c4\u0003\u00c4\u0003\u00c4\u0005\u00c4\u139b\n\u00c4", + "\u0006\u00c4\u139d\n\u00c4\r\u00c4\u000e\u00c4\u139e\u0003\u00c4\u0005", + "\u00c4\u13a2\n\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5", + "\u0003\u00c5\u0005\u00c5\u13a9\n\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0005\u00c5\u13bb\n\u00c5\u0005\u00c5\u13bd\n\u00c5", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0005\u00c6\u13d1\n\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0005\u00c7\u13d9\n\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0005\u00c7\u13de\n\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0005\u00c7\u13f0\n\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7", + "\u0005\u00c7\u13ff\n\u00c7\u0005\u00c7\u1401\n\u00c7\u0003\u00c8\u0003", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u1408\n\u00c8", + "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8", + "\u140f\n\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u1414", + "\n\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u1419\n\u00c8", + "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u141f\n", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u1424\n\u00c8", + "\u0005\u00c8\u1426\n\u00c8\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0005\u00c9\u142d\n\u00c9\u0003\u00c9\u0003\u00c9", + "\u0003\u00c9\u0003\u00c9\u0005\u00c9\u1433\n\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0005\u00c9\u1439\n\u00c9\u0003\u00c9", + "\u0005\u00c9\u143c\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0005\u00c9\u1442\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9", + "\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0006\u00c9\u144a\n\u00c9\r\u00c9", + "\u000e\u00c9\u144b\u0003\u00c9\u0005\u00c9\u144f\n\u00c9\u0003\u00c9", + "\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0005\u00c9\u1456\n", + "\u00c9\u0003\u00c9\u0005\u00c9\u1459\n\u00c9\u0003\u00c9\u0003\u00c9", + "\u0003\u00c9\u0006\u00c9\u145e\n\u00c9\r\u00c9\u000e\u00c9\u145f\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005", + "\u00ca\u1468\n\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u146c\n\u00ca", + "\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u1472\n", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0007\u00ca\u1477\n\u00ca", + "\f\u00ca\u000e\u00ca\u147a\u000b\u00ca\u0005\u00ca\u147c\n\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u1483", + "\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca", + "\u1489\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0005\u00ca\u1490\n\u00ca\u0003\u00ca\u0005\u00ca\u1493\n\u00ca", + "\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u1499\n", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0007\u00ca\u149e\n\u00ca", + "\f\u00ca\u000e\u00ca\u14a1\u000b\u00ca\u0005\u00ca\u14a3\n\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005", + "\u00ca\u14ab\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca", + "\u0005\u00ca\u14b1\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0005\u00ca\u14b8\n\u00ca\u0003\u00ca\u0005\u00ca", + "\u14bb\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005", + "\u00ca\u14c1\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0007\u00ca", + "\u14c6\n\u00ca\f\u00ca\u000e\u00ca\u14c9\u000b\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u14d0\n\u00ca", + "\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca", + "\u0005\u00ca\u14d8\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0005\u00ca\u14de\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca", + "\u0007\u00ca\u14e3\n\u00ca\f\u00ca\u000e\u00ca\u14e6\u000b\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0005\u00ca\u14ef\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca", + "\u0005\u00ca\u14f4\n\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u14fe", + "\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", + "\u1504\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005", + "\u00cb\u1510\n\u00cb\u0005\u00cb\u1512\n\u00cb\u0003\u00cc\u0003\u00cc", + "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u1519\n\u00cc\u0003", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u151f\n\u00cc", + "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u1525\n", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u152b", + "\n\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0006\u00cc\u1530\n\u00cc", + "\r\u00cc\u000e\u00cc\u1531\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00cd\u0005\u00cd\u1539\n\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0005\u00cd\u1541\n", + "\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0005\u00cd\u1547", + "\n\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00cd\u0006\u00cd\u1555\n\u00cd\r\u00cd\u000e\u00cd\u1556\u0003", + "\u00cd\u0005\u00cd\u155a\n\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd", + "\u0005\u00cd\u155f\n\u00cd\u0005\u00cd\u1561\n\u00cd\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0005\u00ce\u156d\n\u00ce\u0003\u00ce", + "\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0005\u00ce\u1573\n\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0006", + "\u00ce\u1581\n\u00ce\r\u00ce\u000e\u00ce\u1582\u0003\u00ce\u0005\u00ce", + "\u1586\n\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0005\u00ce\u158b", + "\n\u00ce\u0003\u00ce\u0005\u00ce\u158e\n\u00ce\u0003\u00ce\u0003\u00ce", + "\u0003\u00ce\u0005\u00ce\u1593\n\u00ce\u0005\u00ce\u1595\n\u00ce\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0005\u00cf\u159e\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0005\u00cf\u15a5\n\u00cf\u0003\u00d0\u0003", + "\u00d0\u0003\u00d0\u0003\u00d0\u0005\u00d0\u15ab\n\u00d0\u0003\u00d0", + "\u0005\u00d0\u15ae\n\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0005", + "\u00d0\u15b3\n\u00d0\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0005\u00d1\u15ba\n\u00d1\u0005\u00d1\u15bc\n\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0005\u00d1\u15c2\n\u00d1", + "\u0005\u00d1\u15c4\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0005\u00d1\u15cc\n\u00d1\u0005\u00d1", + "\u15ce\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0005", + "\u00d1\u15d4\n\u00d1\u0005\u00d1\u15d6\n\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0005\u00d1\u15dc\n\u00d1\u0005\u00d1\u15de", + "\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0005\u00d1\u15e5\n\u00d1\u0003\u00d1\u0005\u00d1\u15e8\n\u00d1\u0005", + "\u00d1\u15ea\n\u00d1\u0003\u00d1\u0005\u00d1\u15ed\n\u00d1\u0003\u00d1", + "\u0003\u00d1\u0005\u00d1\u15f1\n\u00d1\u0005\u00d1\u15f3\n\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0005\u00d1\u15fc\n\u00d1\u0003\u00d2\u0003\u00d2\u0003\u00d2", + "\u0003\u00d2\u0005\u00d2\u1602\n\u00d2\u0003\u00d2\u0003\u00d2\u0005", + "\u00d2\u1606\n\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3", + "\u0003\u00d3\u0003\u00d3\u0005\u00d3\u160e\n\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0005\u00d3\u1615\n\u00d3", + "\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0005\u00d3\u161b\n", + "\u00d3\u0005\u00d3\u161d\n\u00d3\u0003\u00d4\u0003\u00d4\u0003\u00d4", + "\u0003\u00d4\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5", + "\u0005\u00d5\u1628\n\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0005", + "\u00d5\u162d\n\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5", + "\u0005\u00d5\u1633\n\u00d5\u0006\u00d5\u1635\n\u00d5\r\u00d5\u000e\u00d5", + "\u1636\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", + "\u00d6\u0003\u00d6\u0003\u00d6\u0005\u00d6\u1641\n\u00d6\u0003\u00d7", + "\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005\u00d7", + "\u1649\n\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", + "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005", + "\u00d7\u1655\n\u00d7\u0003\u00d8\u0005\u00d8\u1658\n\u00d8\u0003\u00d8", + "\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8", + "\u1660\n\u00d8\u0005\u00d8\u1662\n\u00d8\u0003\u00d8\u0005\u00d8\u1665", + "\n\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8\u1669\n\u00d8\u0003\u00d8", + "\u0005\u00d8\u166c\n\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8\u1676", + "\n\u00d8\u0003\u00d8\u0003\u00d8\u0007\u00d8\u167a\n\u00d8\f\u00d8\u000e", + "\u00d8\u167d\u000b\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8", + "\u0003\u00d8\u0005\u00d8\u1684\n\u00d8\u0003\u00d8\u0003\u00d8\u0005", + "\u00d8\u1688\n\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8\u168c\n\u00d8", + "\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8", + "\u0003\u00d8\u0005\u00d8\u1695\n\u00d8\u0003\u00d8\u0003\u00d8\u0007", + "\u00d8\u1699\n\u00d8\f\u00d8\u000e\u00d8\u169c\u000b\u00d8\u0003\u00d8", + "\u0005\u00d8\u169f\n\u00d8\u0003\u00d8\u0005\u00d8\u16a2\n\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0007\u00d9\u16ab\n\u00d9\f\u00d9\u000e\u00d9\u16ae\u000b\u00d9", + "\u0003\u00d9\u0005\u00d9\u16b1\n\u00d9\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0005\u00da\u16b8\n\u00da\u0003\u00da", + "\u0003\u00da\u0003\u00da\u0005\u00da\u16bd\n\u00da\u0003\u00db\u0005", + "\u00db\u16c0\n\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db", + "\u0003\u00db\u0003\u00db\u0005\u00db\u16c8\n\u00db\u0003\u00db\u0003", + "\u00db\u0005\u00db\u16cc\n\u00db\u0003\u00db\u0005\u00db\u16cf\n\u00db", + "\u0003\u00db\u0003\u00db\u0005\u00db\u16d3\n\u00db\u0003\u00db\u0005", + "\u00db\u16d6\n\u00db\u0003\u00db\u0003\u00db\u0005\u00db\u16da\n\u00db", + "\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0005\u00db", + "\u16e1\n\u00db\u0003\u00db\u0003\u00db\u0005\u00db\u16e5\n\u00db\u0005", + "\u00db\u16e7\n\u00db\u0005\u00db\u16e9\n\u00db\u0003\u00db\u0005\u00db", + "\u16ec\n\u00db\u0003\u00db\u0005\u00db\u16ef\n\u00db\u0003\u00db\u0005", + "\u00db\u16f2\n\u00db\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc", + "\u0005\u00dc\u16f8\n\u00dc\u0003\u00dd\u0005\u00dd\u16fb\n\u00dd\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0005", + "\u00dd\u1703\n\u00dd\u0005\u00dd\u1705\n\u00dd\u0003\u00dd\u0005\u00dd", + "\u1708\n\u00dd\u0003\u00dd\u0003\u00dd\u0005\u00dd\u170c\n\u00dd\u0003", + "\u00dd\u0005\u00dd\u170f\n\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd", + "\u0003\u00dd\u0005\u00dd\u1715\n\u00dd\u0003\u00dd\u0005\u00dd\u1718", + "\n\u00dd\u0003\u00dd\u0003\u00dd\u0005\u00dd\u171c\n\u00dd\u0003\u00dd", + "\u0005\u00dd\u171f\n\u00dd\u0003\u00dd\u0005\u00dd\u1722\n\u00dd\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0005\u00de\u1729", + "\n\u00de\u0003\u00df\u0005\u00df\u172c\n\u00df\u0003\u00df\u0003\u00df", + "\u0003\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u1733\n\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u1739\n\u00df", + "\u0007\u00df\u173b\n\u00df\f\u00df\u000e\u00df\u173e\u000b\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003", + "\u00df\u0005\u00df\u1747\n\u00df\u0003\u00df\u0005\u00df\u174a\n\u00df", + "\u0003\u00e0\u0005\u00e0\u174d\n\u00e0\u0003\u00e0\u0003\u00e0\u0005", + "\u00e0\u1751\n\u00e0\u0003\u00e0\u0005\u00e0\u1754\n\u00e0\u0003\u00e0", + "\u0005\u00e0\u1757\n\u00e0\u0003\u00e0\u0005\u00e0\u175a\n\u00e0\u0003", + "\u00e1\u0003\u00e1\u0005\u00e1\u175e\n\u00e1\u0003\u00e2\u0005\u00e2", + "\u1761\n\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0003\u00e2\u0005\u00e2\u1769\n\u00e2\u0005\u00e2\u176b\n\u00e2", + "\u0003\u00e2\u0003\u00e2\u0005\u00e2\u176f\n\u00e2\u0003\u00e2\u0005", + "\u00e2\u1772\n\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2", + "\u0007\u00e2\u1778\n\u00e2\f\u00e2\u000e\u00e2\u177b\u000b\u00e2\u0003", + "\u00e2\u0005\u00e2\u177e\n\u00e2\u0003\u00e2\u0003\u00e2\u0005\u00e2", + "\u1782\n\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0005\u00e2\u1789\n\u00e2\u0003\u00e2\u0003\u00e2\u0005\u00e2", + "\u178d\n\u00e2\u0005\u00e2\u178f\n\u00e2\u0005\u00e2\u1791\n\u00e2\u0003", + "\u00e2\u0005\u00e2\u1794\n\u00e2\u0003\u00e2\u0005\u00e2\u1797\n\u00e2", + "\u0003\u00e2\u0005\u00e2\u179a\n\u00e2\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0007\u00e3\u17a0\n\u00e3\f\u00e3\u000e\u00e3\u17a3", + "\u000b\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0005\u00e3\u17a8\n", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0005\u00e3\u17ae", + "\n\u00e3\u0005\u00e3\u17b0\n\u00e3\u0003\u00e4\u0003\u00e4\u0005\u00e4", + "\u17b4\n\u00e4\u0003\u00e4\u0005\u00e4\u17b7\n\u00e4\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0005\u00e5\u17bc\n\u00e5\u0003\u00e5\u0003\u00e5", + "\u0003\u00e5\u0005\u00e5\u17c1\n\u00e5\u0003\u00e5\u0005\u00e5\u17c4", + "\n\u00e5\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6", + "\u0003\u00e6\u0005\u00e6\u17cc\n\u00e6\u0003\u00e6\u0003\u00e6\u0005", + "\u00e6\u17d0\n\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0007\u00e6", + "\u17d5\n\u00e6\f\u00e6\u000e\u00e6\u17d8\u000b\u00e6\u0005\u00e6\u17da", + "\n\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6", + "\u0007\u00e6\u17e1\n\u00e6\f\u00e6\u000e\u00e6\u17e4\u000b\u00e6\u0005", + "\u00e6\u17e6\n\u00e6\u0003\u00e6\u0003\u00e6\u0005\u00e6\u17ea\n\u00e6", + "\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0007\u00e6\u17f0\n", + "\u00e6\f\u00e6\u000e\u00e6\u17f3\u000b\u00e6\u0005\u00e6\u17f5\n\u00e6", + "\u0003\u00e7\u0003\u00e7\u0005\u00e7\u17f9\n\u00e7\u0003\u00e7\u0005", + "\u00e7\u17fc\n\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7", + "\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7", + "\u0003\u00e7\u0003\u00e7\u0005\u00e7\u180a\n\u00e7\u0003\u00e7\u0003", + "\u00e7\u0005\u00e7\u180e\n\u00e7\u0003\u00e7\u0005\u00e7\u1811\n\u00e7", + "\u0003\u00e7\u0003\u00e7\u0005\u00e7\u1815\n\u00e7\u0003\u00e7\u0005", + "\u00e7\u1818\n\u00e7\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0005\u00e8", + "\u181d\n\u00e8\u0003\u00e8\u0005\u00e8\u1820\n\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0005\u00e8\u1826\n\u00e8\u0003\u00e8", + "\u0005\u00e8\u1829\n\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0007", + "\u00e8\u182e\n\u00e8\f\u00e8\u000e\u00e8\u1831\u000b\u00e8\u0003\u00e8", + "\u0005\u00e8\u1834\n\u00e8\u0005\u00e8\u1836\n\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0007\u00e8\u183c\n\u00e8\f\u00e8\u000e", + "\u00e8\u183f\u000b\u00e8\u0005\u00e8\u1841\n\u00e8\u0003\u00e8\u0003", + "\u00e8\u0005\u00e8\u1845\n\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8", + "\u0003\u00e9\u0003\u00e9\u0005\u00e9\u184c\n\u00e9\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0005\u00ea\u1851\n\u00ea\u0003\u00ea\u0005\u00ea", + "\u1854\n\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0007\u00ea\u185e\n\u00ea", + "\f\u00ea\u000e\u00ea\u1861\u000b\u00ea\u0005\u00ea\u1863\n\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0005\u00ea\u1869\n\u00ea", + "\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0007\u00ea\u186e\n\u00ea\f\u00ea", + "\u000e\u00ea\u1871\u000b\u00ea\u0003\u00ea\u0003\u00ea\u0005\u00ea\u1875", + "\n\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0005\u00ea\u187a\n\u00ea", + "\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00eb\u0003\u00eb\u0005\u00eb", + "\u1881\n\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0005\u00ed\u1888\n\u00ed\u0003\u00ed\u0005\u00ed\u188b\n\u00ed", + "\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed", + "\u0005\u00ed\u1893\n\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0007\u00ed\u1899\n\u00ed\f\u00ed\u000e\u00ed\u189c\u000b\u00ed", + "\u0005\u00ed\u189e\n\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0007\u00ed\u18a4\n\u00ed\f\u00ed\u000e\u00ed\u18a7\u000b\u00ed", + "\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ee\u0003\u00ee\u0003\u00ef", + "\u0003\u00ef\u0003\u00ef\u0005\u00ef\u18b1\n\u00ef\u0003\u00ef\u0005", + "\u00ef\u18b4\n\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef", + "\u0003\u00ef\u0003\u00ef\u0007\u00ef\u18bc\n\u00ef\f\u00ef\u000e\u00ef", + "\u18bf\u000b\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0005", + "\u00ef\u18c5\n\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0005\u00ef", + "\u18ca\n\u00ef\u0003\u00ef\u0005\u00ef\u18cd\n\u00ef\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0007\u00f0\u18d5", + "\n\u00f0\f\u00f0\u000e\u00f0\u18d8\u000b\u00f0\u0005\u00f0\u18da\n\u00f0", + "\u0003\u00f0\u0005\u00f0\u18dd\n\u00f0\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0005\u00f0\u18e5\n\u00f0", + "\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1", + "\u0003\u00f1\u0007\u00f1\u18ee\n\u00f1\f\u00f1\u000e\u00f1\u18f1\u000b", + "\u00f1\u0005\u00f1\u18f3\n\u00f1\u0003\u00f1\u0005\u00f1\u18f6\n\u00f1", + "\u0003\u00f1\u0003\u00f1\u0007\u00f1\u18fa\n\u00f1\f\u00f1\u000e\u00f1", + "\u18fd\u000b\u00f1\u0003\u00f1\u0003\u00f1\u0005\u00f1\u1901\n\u00f1", + "\u0003\u00f1\u0003\u00f1\u0005\u00f1\u1905\n\u00f1\u0003\u00f2\u0003", + "\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0007\u00f2\u190d", + "\n\u00f2\f\u00f2\u000e\u00f2\u1910\u000b\u00f2\u0005\u00f2\u1912\n\u00f2", + "\u0003\u00f2\u0005\u00f2\u1915\n\u00f2\u0003\u00f2\u0003\u00f2\u0007", + "\u00f2\u1919\n\u00f2\f\u00f2\u000e\u00f2\u191c\u000b\u00f2\u0003\u00f2", + "\u0003\u00f2\u0003\u00f2\u0005\u00f2\u1921\n\u00f2\u0003\u00f2\u0003", + "\u00f2\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0005\u00f3\u1929", + "\n\u00f3\u0003\u00f3\u0005\u00f3\u192c\n\u00f3\u0003\u00f3\u0003\u00f3", + "\u0005\u00f3\u1930\n\u00f3\u0003\u00f3\u0003\u00f3\u0005\u00f3\u1934", + "\n\u00f3\u0003\u00f3\u0005\u00f3\u1937\n\u00f3\u0003\u00f4\u0003\u00f4", + "\u0003\u00f4\u0005\u00f4\u193c\n\u00f4\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0005\u00f5\u194a\n\u00f5", + "\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6", + "\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6", + "\u0003\u00f6\u0003\u00f6\u0005\u00f6\u195a\n\u00f6\u0003\u00f6\u0003", + "\u00f6\u0005\u00f6\u195e\n\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6", + "\u0003\u00f6\u0005\u00f6\u1964\n\u00f6\u0005\u00f6\u1966\n\u00f6\u0003", + "\u00f6\u0005\u00f6\u1969\n\u00f6\u0003\u00f7\u0003\u00f7\u0005\u00f7", + "\u196d\n\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0005\u00f7\u1972", + "\n\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0005\u00f7\u1977\n\u00f7", + "\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8", + "\u0005\u00f8\u197f\n\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0005", + "\u00f8\u1984\n\u00f8\u0003\u00f8\u0007\u00f8\u1987\n\u00f8\f\u00f8\u000e", + "\u00f8\u198a\u000b\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0005\u00f8", + "\u198f\n\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0005\u00f8\u1994", + "\n\u00f8\u0003\u00f8\u0005\u00f8\u1997\n\u00f8\u0003\u00f9\u0003\u00f9", + "\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0007\u00f9\u199e\n\u00f9\f\u00f9", + "\u000e\u00f9\u19a1\u000b\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003", + "\u00f9\u0003\u00f9\u0007\u00f9\u19a8\n\u00f9\f\u00f9\u000e\u00f9\u19ab", + "\u000b\u00f9\u0005\u00f9\u19ad\n\u00f9\u0003\u00fa\u0003\u00fa\u0003", + "\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0005\u00fa\u19b6", + "\n\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0007\u00fa", + "\u19bc\n\u00fa\f\u00fa\u000e\u00fa\u19bf\u000b\u00fa\u0005\u00fa\u19c1", + "\n\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa", + "\u0005\u00fa\u19c8\n\u00fa\u0003\u00fa\u0005\u00fa\u19cb\n\u00fa\u0003", + "\u00fb\u0003\u00fb\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0005\u00fc\u19f9\n\u00fc\u0003\u00fc\u0003\u00fc", + "\u0005\u00fc\u19fd\n\u00fc\u0003\u00fc\u0005\u00fc\u1a00\n\u00fc\u0003", + "\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0005\u00fd\u1a06\n\u00fd", + "\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd", + "\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0005\u00fd\u1a12\n", + "\u00fd\u0005\u00fd\u1a14\n\u00fd\u0003\u00fd\u0005\u00fd\u1a17\n\u00fd", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0005\u00fe", + "\u1a30\n\u00fe\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003", + "\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0005\u00ff\u1a3b", + "\n\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff", + "\u0003\u00ff\u0005\u00ff\u1a43\n\u00ff\u0003\u0100\u0003\u0100\u0003", + "\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0007\u0100\u1a4c", + "\n\u0100\f\u0100\u000e\u0100\u1a4f\u000b\u0100\u0007\u0100\u1a51\n\u0100", + "\f\u0100\u000e\u0100\u1a54\u000b\u0100\u0005\u0100\u1a56\n\u0100\u0003", + "\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0005", + "\u0101\u1a5e\n\u0101\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102", + "\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0005\u0103\u1a68\n", + "\u0103\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005", + "\u0104\u1a6f\n\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104", + "\u0003\u0104\u0005\u0104\u1a76\n\u0104\u0005\u0104\u1a78\n\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1a84\n\u0104", + "\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104", + "\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1a8f\n\u0104\u0003", + "\u0104\u0003\u0104\u0005\u0104\u1a93\n\u0104\u0003\u0104\u0003\u0104", + "\u0003\u0104\u0005\u0104\u1a98\n\u0104\u0003\u0104\u0005\u0104\u1a9b", + "\n\u0104\u0005\u0104\u1a9d\n\u0104\u0003\u0104\u0005\u0104\u1aa0\n\u0104", + "\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104", + "\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1aac\n", + "\u0104\u0005\u0104\u1aae\n\u0104\u0005\u0104\u1ab0\n\u0104\u0003\u0104", + "\u0005\u0104\u1ab3\n\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005", + "\u0104\u1ab8\n\u0104\u0003\u0104\u0005\u0104\u1abb\n\u0104\u0003\u0104", + "\u0003\u0104\u0003\u0104\u0005\u0104\u1ac0\n\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0005\u0104\u1aca\n\u0104\u0003\u0104\u0003\u0104\u0005\u0104", + "\u1ace\n\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1ad3", + "\n\u0104\u0003\u0104\u0005\u0104\u1ad6\n\u0104\u0005\u0104\u1ad8\n\u0104", + "\u0003\u0104\u0005\u0104\u1adb\n\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0005\u0104\u1ae7\n\u0104\u0005\u0104\u1ae9\n\u0104", + "\u0005\u0104\u1aeb\n\u0104\u0003\u0104\u0005\u0104\u1aee\n\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1af4\n\u0104", + "\u0003\u0105\u0003\u0105\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0106", + "\u0003\u0106\u0003\u0106\u0005\u0106\u1afe\n\u0106\u0003\u0107\u0003", + "\u0107\u0003\u0108\u0003\u0108\u0003\u0109\u0003\u0109\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0005\u010a\u1b12", + "\n\u010a\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0005\u010b", + "\u1b18\n\u010b\u0003\u010c\u0003\u010c\u0003\u010d\u0003\u010d\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010e\u0003\u010e\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u0110\u0003\u0110\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0005\u0111\u1b31\n\u0111\u0005\u0111\u1b33\n\u0111\u0003\u0112", + "\u0003\u0112\u0003\u0112\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0114", + "\u0003\u0114\u0003\u0115\u0003\u0115\u0003\u0116\u0003\u0116\u0003\u0117", + "\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0118\u0003\u0118\u0003\u0118", + "\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0005\u0118", + "\u1b4d\n\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0005", + "\u0118\u1b53\n\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118", + "\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0005\u0118", + "\u1b5e\n\u0118\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u0119\u0005\u0119\u1b66\n\u0119\u0003\u0119\u0005\u0119", + "\u1b69\n\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011b\u0003", + "\u011b\u0003\u011b\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003", + "\u011c\u0003\u011c\u0005\u011c\u1b77\n\u011c\u0003\u011d\u0003\u011d", + "\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0005\u011d\u1b7f\n", + "\u011d\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0005", + "\u011e\u1b86\n\u011e\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f", + "\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f", + "\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f", + "\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0005\u011f", + "\u1b9d\n\u011f\u0003\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0003", + "\u0120\u0003\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0005\u0121\u1baa\n\u0121\u0003\u0122\u0003\u0122\u0003\u0122", + "\u0003\u0122\u0005\u0122\u1bb0\n\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0007\u0122\u1bb5\n\u0122\f\u0122\u000e\u0122\u1bb8\u000b\u0122", + "\u0003\u0122\u0003\u0122\u0003\u0122\u0007\u0122\u1bbd\n\u0122\f\u0122", + "\u000e\u0122\u1bc0\u000b\u0122\u0005\u0122\u1bc2\n\u0122\u0003\u0122", + "\u0005\u0122\u1bc5\n\u0122\u0003\u0123\u0003\u0123\u0003\u0123\u0003", + "\u0123\u0003\u0124\u0003\u0124\u0003\u0124\u0005\u0124\u1bce\n\u0124", + "\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0005\u0125\u1bd8\n\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0007\u0125\u1bdd\n\u0125\f\u0125\u000e\u0125\u1be0", + "\u000b\u0125\u0003\u0125\u0005\u0125\u1be3\n\u0125\u0003\u0126\u0003", + "\u0126\u0005\u0126\u1be7\n\u0126\u0003\u0127\u0003\u0127\u0003\u0127", + "\u0003\u0127\u0005\u0127\u1bed\n\u0127\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0007\u0127\u1bf2\n\u0127\f\u0127\u000e\u0127\u1bf5\u000b\u0127", + "\u0003\u0127\u0005\u0127\u1bf8\n\u0127\u0003\u0128\u0003\u0128\u0003", + "\u0128\u0003\u0128\u0005\u0128\u1bfe\n\u0128\u0003\u0128\u0003\u0128", + "\u0003\u0128\u0007\u0128\u1c03\n\u0128\f\u0128\u000e\u0128\u1c06\u000b", + "\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0005\u0128\u1c0c", + "\n\u0128\u0003\u0128\u0005\u0128\u1c0f\n\u0128\u0003\u0129\u0003\u0129", + "\u0003\u0129\u0003\u0129\u0005\u0129\u1c15\n\u0129\u0003\u0129\u0003", + "\u0129\u0003\u0129\u0007\u0129\u1c1a\n\u0129\f\u0129\u000e\u0129\u1c1d", + "\u000b\u0129\u0003\u0129\u0005\u0129\u1c20\n\u0129\u0003\u012a\u0003", + "\u012a\u0003\u012a\u0005\u012a\u1c25\n\u012a\u0003\u012a\u0003\u012a", + "\u0003\u012a\u0005\u012a\u1c2a\n\u012a\u0003\u012a\u0006\u012a\u1c2d", + "\n\u012a\r\u012a\u000e\u012a\u1c2e\u0003\u012a\u0003\u012a\u0003\u012b", + "\u0003\u012b\u0003\u012b\u0003\u012b\u0005\u012b\u1c37\n\u012b\u0003", + "\u012b\u0003\u012b\u0005\u012b\u1c3b\n\u012b\u0003\u012c\u0003\u012c", + "\u0003\u012c\u0003\u012c\u0005\u012c\u1c41\n\u012c\u0003\u012c\u0003", + "\u012c\u0003\u012c\u0007\u012c\u1c46\n\u012c\f\u012c\u000e\u012c\u1c49", + "\u000b\u012c\u0003\u012c\u0005\u012c\u1c4c\n\u012c\u0003\u012d\u0003", + "\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0005", + "\u012d\u1c55\n\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d", + "\u0003\u012d\u0003\u012d\u0005\u012d\u1c5d\n\u012d\u0003\u012e\u0003", + "\u012e\u0003\u012e\u0003\u012e\u0005\u012e\u1c63\n\u012e\u0003\u012e", + "\u0003\u012e\u0003\u012f\u0003\u012f\u0005\u012f\u1c69\n\u012f\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0005\u0131\u1c7a\n\u0131\u0003\u0131", + "\u0003\u0131\u0005\u0131\u1c7e\n\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u1c86\n\u0132", + "\u0003\u0132\u0003\u0132\u0005\u0132\u1c8a\n\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0007\u0132\u1c90\n\u0132\f\u0132\u000e", + "\u0132\u1c93\u000b\u0132\u0003\u0132\u0005\u0132\u1c96\n\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u1c9b\n\u0132\u0003\u0132", + "\u0003\u0132\u0005\u0132\u1c9f\n\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u1ca6\n\u0132\u0003\u0132", + "\u0003\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u1cac\n\u0132\u0005", + "\u0132\u1cae\n\u0132\u0003\u0133\u0003\u0133\u0005\u0133\u1cb2\n\u0133", + "\u0003\u0133\u0003\u0133\u0005\u0133\u1cb6\n\u0133\u0003\u0133\u0003", + "\u0133\u0005\u0133\u1cba\n\u0133\u0003\u0133\u0005\u0133\u1cbd\n\u0133", + "\u0003\u0133\u0003\u0133\u0005\u0133\u1cc1\n\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0005\u0133\u1cc7\n\u0133\u0003\u0133", + "\u0003\u0133\u0005\u0133\u1ccb\n\u0133\u0005\u0133\u1ccd\n\u0133\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1cd4", + "\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0007\u0134\u1cd9\n\u0134", + "\f\u0134\u000e\u0134\u1cdc\u000b\u0134\u0005\u0134\u1cde\n\u0134\u0003", + "\u0134\u0005\u0134\u1ce1\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134", + "\u0007\u0134\u1ce6\n\u0134\f\u0134\u000e\u0134\u1ce9\u000b\u0134\u0003", + "\u0134\u0003\u0134\u0005\u0134\u1ced\n\u0134\u0003\u0134\u0006\u0134", + "\u1cf0\n\u0134\r\u0134\u000e\u0134\u1cf1\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1cf6\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134", + "\u0005\u0134\u1cfc\n\u0134\u0006\u0134\u1cfe\n\u0134\r\u0134\u000e\u0134", + "\u1cff\u0005\u0134\u1d02\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134", + "\u0005\u0134\u1d07\n\u0134\u0003\u0134\u0006\u0134\u1d0a\n\u0134\r\u0134", + "\u000e\u0134\u1d0b\u0006\u0134\u1d0e\n\u0134\r\u0134\u000e\u0134\u1d0f", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d15\n\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d1b\n\u0134", + "\u0006\u0134\u1d1d\n\u0134\r\u0134\u000e\u0134\u1d1e\u0006\u0134\u1d21", + "\n\u0134\r\u0134\u000e\u0134\u1d22\u0005\u0134\u1d25\n\u0134\u0003\u0134", + "\u0003\u0134\u0005\u0134\u1d29\n\u0134\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1d2d\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d31\n\u0134", + "\u0003\u0134\u0003\u0134\u0005\u0134\u1d35\n\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d3b\n\u0134\u0003\u0134", + "\u0005\u0134\u1d3e\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0005\u0134\u1d44\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134", + "\u1d48\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d4c\n\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d52\n\u0134", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d58\n", + "\u0134\u0005\u0134\u1d5a\n\u0134\u0003\u0134\u0005\u0134\u1d5d\n\u0134", + "\u0003\u0134\u0003\u0134\u0005\u0134\u1d61\n\u0134\u0003\u0134\u0003", + "\u0134\u0005\u0134\u1d65\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134", + "\u1d69\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1d6f\n\u0134\u0003\u0134\u0005\u0134\u1d72\n\u0134\u0003\u0134", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d78\n\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d7e\n\u0134", + "\u0003\u0134\u0005\u0134\u1d81\n\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0005\u0134\u1d87\n\u0134\u0003\u0134\u0005\u0134", + "\u1d8a\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1d90\n\u0134\u0003\u0134\u0005\u0134\u1d93\n\u0134\u0003\u0134", + "\u0003\u0134\u0005\u0134\u1d97\n\u0134\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1d9b\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d9f\n\u0134", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1da4\n\u0134\u0003", + "\u0134\u0005\u0134\u1da7\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134", + "\u1dab\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1daf\n\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1dc0\n\u0134\u0007\u0134", + "\u1dc2\n\u0134\f\u0134\u000e\u0134\u1dc5\u000b\u0134\u0005\u0134\u1dc7", + "\n\u0134\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135", + "\u0005\u0135\u1dce\n\u0135\u0003\u0135\u0006\u0135\u1dd1\n\u0135\r\u0135", + "\u000e\u0135\u1dd2\u0003\u0135\u0003\u0135\u0005\u0135\u1dd7\n\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1ddd\n", + "\u0135\u0006\u0135\u1ddf\n\u0135\r\u0135\u000e\u0135\u1de0\u0005\u0135", + "\u1de3\n\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1de8", + "\n\u0135\u0003\u0135\u0006\u0135\u1deb\n\u0135\r\u0135\u000e\u0135\u1dec", + "\u0006\u0135\u1def\n\u0135\r\u0135\u000e\u0135\u1df0\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0005\u0135\u1df6\n\u0135\u0003\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1dfc\n\u0135\u0006\u0135\u1dfe", + "\n\u0135\r\u0135\u000e\u0135\u1dff\u0006\u0135\u1e02\n\u0135\r\u0135", + "\u000e\u0135\u1e03\u0005\u0135\u1e06\n\u0135\u0003\u0135\u0003\u0135", + "\u0005\u0135\u1e0a\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e0e", + "\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e12\n\u0135\u0003\u0135", + "\u0003\u0135\u0005\u0135\u1e16\n\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0005\u0135\u1e1c\n\u0135\u0003\u0135\u0005\u0135", + "\u1e1f\n\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005", + "\u0135\u1e25\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e29\n\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1e2d\n\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e33\n\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e39\n\u0135\u0005", + "\u0135\u1e3b\n\u0135\u0003\u0135\u0005\u0135\u1e3e\n\u0135\u0003\u0135", + "\u0003\u0135\u0005\u0135\u1e42\n\u0135\u0003\u0135\u0003\u0135\u0005", + "\u0135\u1e46\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e4a\n\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e50\n", + "\u0135\u0003\u0135\u0005\u0135\u1e53\n\u0135\u0003\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1e59\n\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e5f\n\u0135\u0003\u0135", + "\u0005\u0135\u1e62\n\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0005\u0135\u1e68\n\u0135\u0003\u0135\u0005\u0135\u1e6b\n\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e71\n", + "\u0135\u0003\u0135\u0005\u0135\u1e74\n\u0135\u0003\u0135\u0003\u0135", + "\u0005\u0135\u1e78\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e7c", + "\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e80\n\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1e85\n\u0135\u0003\u0135\u0005", + "\u0135\u1e88\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e8c\n\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1e90\n\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e96\n\u0135\u0003\u0135", + "\u0005\u0135\u1e99\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e9d", + "\n\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1eae\n", + "\u0135\u0007\u0135\u1eb0\n\u0135\f\u0135\u000e\u0135\u1eb3\u000b\u0135", + "\u0005\u0135\u1eb5\n\u0135\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0005\u0136\u1ec3\n\u0136\u0003\u0136", + "\u0003\u0136\u0003\u0136\u0003\u0136\u0005\u0136\u1ec9\n\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0005", + "\u0136\u1ed1\n\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136", + "\u0003\u0136\u0006\u0136\u1ed8\n\u0136\r\u0136\u000e\u0136\u1ed9\u0003", + "\u0136\u0005\u0136\u1edd\n\u0136\u0003\u0137\u0003\u0137\u0003\u0137", + "\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137", + "\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0138\u0003\u0138", + "\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138", + "\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138", + "\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0005\u0139\u1efe\n", + "\u0139\u0003\u013a\u0003\u013a\u0005\u013a\u1f02\n\u013a\u0003\u013a", + "\u0003\u013a\u0005\u013a\u1f06\n\u013a\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013b\u0003\u013b\u0005\u013b\u1f0d\n\u013b\u0003\u013c", + "\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013d\u0003\u013d\u0003\u013d", + "\u0003\u013e\u0003\u013e\u0005\u013e\u1f18\n\u013e\u0003\u013e\u0003", + "\u013e\u0005\u013e\u1f1c\n\u013e\u0003\u013e\u0003\u013e\u0003\u013e", + "\u0007\u013e\u1f21\n\u013e\f\u013e\u000e\u013e\u1f24\u000b\u013e\u0005", + "\u013e\u1f26\n\u013e\u0003\u013e\u0005\u013e\u1f29\n\u013e\u0003\u013e", + "\u0003\u013e\u0003\u013e\u0003\u013e\u0007\u013e\u1f2f\n\u013e\f\u013e", + "\u000e\u013e\u1f32\u000b\u013e\u0003\u013e\u0003\u013e\u0005\u013e\u1f36", + "\n\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0005\u013e\u1f3b\n\u013e", + "\u0003\u013e\u0005\u013e\u1f3e\n\u013e\u0005\u013e\u1f40\n\u013e\u0003", + "\u013f\u0003\u013f\u0005\u013f\u1f44\n\u013f\u0003\u013f\u0003\u013f", + "\u0005\u013f\u1f48\n\u013f\u0003\u013f\u0005\u013f\u1f4b\n\u013f\u0003", + "\u013f\u0003\u013f\u0005\u013f\u1f4f\n\u013f\u0003\u0140\u0003\u0140", + "\u0003\u0141\u0003\u0141\u0005\u0141\u1f55\n\u0141\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0005\u0141\u1f5a\n\u0141\u0003\u0141\u0003\u0141", + "\u0003\u0141\u0003\u0141\u0003\u0141\u0005\u0141\u1f61\n\u0141\u0005", + "\u0141\u1f63\n\u0141\u0003\u0141\u0003\u0141\u0005\u0141\u1f67\n\u0141", + "\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0007\u0141\u1f6d\n", + "\u0141\f\u0141\u000e\u0141\u1f70\u000b\u0141\u0003\u0141\u0003\u0141", + "\u0003\u0141\u0005\u0141\u1f75\n\u0141\u0003\u0141\u0003\u0141\u0005", + "\u0141\u1f79\n\u0141\u0003\u0141\u0005\u0141\u1f7c\n\u0141\u0003\u0141", + "\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141", + "\u0005\u0141\u1f85\n\u0141\u0003\u0141\u0005\u0141\u1f88\n\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0005\u0141\u1f8e\n\u0141", + "\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0005\u0142", + "\u1f95\n\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0005\u0142\u1f9a", + "\n\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142", + "\u0003\u0142\u0005\u0142\u1fa2\n\u0142\u0003\u0143\u0003\u0143\u0003", + "\u0143\u0005\u0143\u1fa7\n\u0143\u0003\u0143\u0003\u0143\u0003\u0143", + "\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143", + "\u0003\u0143\u0005\u0143\u1fb3\n\u0143\u0005\u0143\u1fb5\n\u0143\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0005\u0144\u1fc0\n\u0144\u0003\u0145", + "\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0005\u0145\u1fc7\n", + "\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0145\u0007\u0145\u1fcf\n\u0145\f\u0145\u000e\u0145\u1fd2\u000b\u0145", + "\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0147\u0003\u0147", + "\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147", + "\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147", + "\u0003\u0147\u0003\u0147\u0005\u0147\u1fe8\n\u0147\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0005\u0148\u1ff5\n\u0148", + "\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149", + "\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149", + "\u0003\u0149\u0003\u0149\u0005\u0149\u2005\n\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0005\u0149\u200a\n\u0149\u0003\u0149\u0003\u0149", + "\u0003\u0149\u0003\u0149\u0003\u0149\u0005\u0149\u2011\n\u0149\u0003", + "\u0149\u0005\u0149\u2014\n\u0149\u0006\u0149\u2016\n\u0149\r\u0149\u000e", + "\u0149\u2017\u0005\u0149\u201a\n\u0149\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0005\u014a\u202b\n\u014a\u0003\u014b\u0003\u014b\u0003\u014c", + "\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c", + "\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0005\u014c\u203a\n", + "\u014c\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0005\u014d\u2042\n\u014d\u0003\u014d\u0003\u014d\u0003\u014d", + "\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0005\u014d\u204b\n", + "\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0005\u014d\u2053\n\u014d\u0003\u014e\u0003\u014e\u0003\u014e", + "\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0005\u014e\u205c\n", + "\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003", + "\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0005\u014e\u2067\n\u014e", + "\u0003\u014e\u0003\u014e\u0005\u014e\u206b\n\u014e\u0005\u014e\u206d", + "\n\u014e\u0005\u014e\u206f\n\u014e\u0003\u014f\u0003\u014f\u0003\u014f", + "\u0003\u014f\u0005\u014f\u2075\n\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0005\u014f\u207a\n\u014f\u0003\u014f\u0003\u014f\u0003\u014f", + "\u0003\u014f\u0003\u014f\u0005\u014f\u2081\n\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0005\u014f\u208e\n\u014f", + "\u0005\u014f\u2090\n\u014f\u0005\u014f\u2092\n\u014f\u0003\u014f\u0005", + "\u014f\u2095\n\u014f\u0003\u014f\u0005\u014f\u2098\n\u014f\u0003\u0150", + "\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0005\u0150\u209f\n", + "\u0150\u0003\u0150\u0005\u0150\u20a2\n\u0150\u0003\u0150\u0003\u0150", + "\u0003\u0150\u0003\u0150\u0005\u0150\u20a8\n\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0005\u0150\u20ad\n\u0150\u0005\u0150\u20af\n\u0150", + "\u0003\u0150\u0005\u0150\u20b2\n\u0150\u0003\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0005\u0150\u20b8\n\u0150\u0003\u0150\u0003\u0150", + "\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0005\u0150\u20c0\n", + "\u0150\u0005\u0150\u20c2\n\u0150\u0003\u0150\u0005\u0150\u20c5\n\u0150", + "\u0003\u0150\u0003\u0150\u0005\u0150\u20c9\n\u0150\u0003\u0150\u0005", + "\u0150\u20cc\n\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150", + "\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0005\u0150\u20d6\n", + "\u0150\u0003\u0150\u0005\u0150\u20d9\n\u0150\u0003\u0150\u0003\u0150", + "\u0005\u0150\u20dd\n\u0150\u0003\u0150\u0005\u0150\u20e0\n\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0005\u0150\u20e6\n\u0150", + "\u0003\u0150\u0005\u0150\u20e9\n\u0150\u0005\u0150\u20eb\n\u0150\u0003", + "\u0151\u0003\u0151\u0005\u0151\u20ef\n\u0151\u0003\u0152\u0003\u0152", + "\u0003\u0152\u0005\u0152\u20f4\n\u0152\u0003\u0153\u0003\u0153\u0005", + "\u0153\u20f8\n\u0153\u0003\u0154\u0003\u0154\u0003\u0154\u0005\u0154", + "\u20fd\n\u0154\u0003\u0155\u0003\u0155\u0003\u0155\u0005\u0155\u2102", + "\n\u0155\u0003\u0156\u0003\u0156\u0003\u0156\u0003\u0156\u0003\u0156", + "\u0003\u0156\u0005\u0156\u210a\n\u0156\u0003\u0156\u0003\u0156\u0005", + "\u0156\u210e\n\u0156\u0003\u0156\u0005\u0156\u2111\n\u0156\u0003\u0157", + "\u0003\u0157\u0003\u0157\u0005\u0157\u2116\n\u0157\u0003\u0158\u0003", + "\u0158\u0003\u0158\u0003\u0158\u0003\u0159\u0003\u0159\u0005\u0159\u211e", + "\n\u0159\u0003\u0159\u0003\u0159\u0003\u0159\u0005\u0159\u2123\n\u0159", + "\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015b", + "\u0003\u015b\u0003\u015b\u0005\u015b\u212d\n\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015c\u0003\u015c\u0003\u015c\u0003\u015c\u0003", + "\u015d\u0003\u015d\u0005\u015d\u2138\n\u015d\u0003\u015d\u0007\u015d", + "\u213b\n\u015d\f\u015d\u000e\u015d\u213e\u000b\u015d\u0003\u015e\u0003", + "\u015e\u0003\u015e\u0005\u015e\u2143\n\u015e\u0003\u015f\u0003\u015f", + "\u0003\u015f\u0003\u015f\u0005\u015f\u2149\n\u015f\u0003\u015f\u0003", + "\u015f\u0005\u015f\u214d\n\u015f\u0003\u015f\u0005\u015f\u2150\n\u015f", + "\u0003\u015f\u0003\u015f\u0005\u015f\u2154\n\u015f\u0003\u015f\u0003", + "\u015f\u0005\u015f\u2158\n\u015f\u0003\u015f\u0003\u015f\u0003\u015f", + "\u0003\u015f\u0003\u015f\u0003\u015f\u0005\u015f\u2160\n\u015f\u0003", + "\u015f\u0003\u015f\u0003\u015f\u0005\u015f\u2165\n\u015f\u0005\u015f", + "\u2167\n\u015f\u0003\u015f\u0005\u015f\u216a\n\u015f\u0003\u015f\u0007", + "\u015f\u216d\n\u015f\f\u015f\u000e\u015f\u2170\u000b\u015f\u0003\u0160", + "\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0005\u0160", + "\u2178\n\u0160\u0003\u0161\u0003\u0161\u0005\u0161\u217c\n\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0005\u0161\u2181\n\u0161\u0003\u0161", + "\u0005\u0161\u2184\n\u0161\u0003\u0161\u0005\u0161\u2187\n\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0005\u0161\u218d\n\u0161", + "\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161", + "\u0005\u0161\u2195\n\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0005\u0161\u219d\n\u0161\u0003\u0161", + "\u0005\u0161\u21a0\n\u0161\u0003\u0161\u0005\u0161\u21a3\n\u0161\u0003", + "\u0162\u0003\u0162\u0005\u0162\u21a7\n\u0162\u0003\u0162\u0003\u0162", + "\u0003\u0162\u0005\u0162\u21ac\n\u0162\u0003\u0162\u0005\u0162\u21af", + "\n\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0005\u0162", + "\u21b5\n\u0162\u0003\u0162\u0003\u0162\u0005\u0162\u21b9\n\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0005\u0162\u21bf\n\u0162", + "\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162", + "\u0005\u0162\u21c7\n\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0006\u0162\u21cd\n\u0162\r\u0162\u000e\u0162\u21ce\u0003\u0162", + "\u0005\u0162\u21d2\n\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0005\u0162\u21e1\n\u0162", + "\u0003\u0162\u0005\u0162\u21e4\n\u0162\u0003\u0162\u0005\u0162\u21e7", + "\n\u0162\u0005\u0162\u21e9\n\u0162\u0003\u0163\u0003\u0163\u0003\u0163", + "\u0003\u0163\u0003\u0163\u0003\u0163\u0003\u0163\u0003\u0163\u0003\u0163", + "\u0005\u0163\u21f4\n\u0163\u0003\u0164\u0003\u0164\u0003\u0164\u0003", + "\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0005", + "\u0164\u21ff\n\u0164\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0165", + "\u0003\u0165\u0007\u0165\u2206\n\u0165\f\u0165\u000e\u0165\u2209\u000b", + "\u0165\u0003\u0165\u0003\u0165\u0003\u0166\u0003\u0166\u0003\u0166\u0003", + "\u0166\u0003\u0166\u0005\u0166\u2212\n\u0166\u0003\u0167\u0003\u0167", + "\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167", + "\u0005\u0167\u221c\n\u0167\u0005\u0167\u221e\n\u0167\u0005\u0167\u2220", + "\n\u0167\u0003\u0167\u0005\u0167\u2223\n\u0167\u0003\u0167\u0005\u0167", + "\u2226\n\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003", + "\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0005\u0167\u2231", + "\n\u0167\u0005\u0167\u2233\n\u0167\u0005\u0167\u2235\n\u0167\u0003\u0167", + "\u0005\u0167\u2238\n\u0167\u0003\u0168\u0007\u0168\u223b\n\u0168\f\u0168", + "\u000e\u0168\u223e\u000b\u0168\u0003\u0168\u0003\u0168\u0003\u0168\u0003", + "\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0005\u0169\u2248", + "\n\u0169\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a", + "\u0003\u016a\u0003\u016a\u0005\u016a\u2251\n\u016a\u0003\u016a\u0005", + "\u016a\u2254\n\u016a\u0003\u016a\u0005\u016a\u2257\n\u016a\u0003\u016a", + "\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a\u0007\u016a\u225e\n", + "\u016a\f\u016a\u000e\u016a\u2261\u000b\u016a\u0005\u016a\u2263\n\u016a", + "\u0003\u016a\u0005\u016a\u2266\n\u016a\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0005\u016b\u226d\n\u016b\u0003\u016b", + "\u0005\u016b\u2270\n\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0005\u016b\u227f\n\u016b", + "\u0003\u016b\u0005\u016b\u2282\n\u016b\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0005\u016b\u2289\n\u016b\u0003\u016b", + "\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b", + "\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b", + "\u0003\u016b\u0005\u016b\u2299\n\u016b\u0003\u016c\u0003\u016c\u0005", + "\u016c\u229d\n\u016c\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d", + "\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0005\u016d\u22a7\n", + "\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003", + "\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003", + "\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0007", + "\u016d\u22ba\n\u016d\f\u016d\u000e\u016d\u22bd\u000b\u016d\u0003\u016e", + "\u0003\u016e\u0003\u016e\u0003\u016e\u0005\u016e\u22c3\n\u016e\u0003", + "\u016f\u0003\u016f\u0003\u016f\u0006\u016f\u22c8\n\u016f\r\u016f\u000e", + "\u016f\u22c9\u0003\u016f\u0003\u016f\u0005\u016f\u22ce\n\u016f\u0003", + "\u016f\u0003\u016f\u0003\u016f\u0003\u016f\u0006\u016f\u22d4\n\u016f", + "\r\u016f\u000e\u016f\u22d5\u0003\u016f\u0003\u016f\u0005\u016f\u22da", + "\n\u016f\u0003\u016f\u0003\u016f\u0005\u016f\u22de\n\u016f\u0003\u0170", + "\u0003\u0170\u0003\u0170\u0003\u0170\u0005\u0170\u22e4\n\u0170\u0003", + "\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003", + "\u0171\u0003\u0171\u0005\u0171\u22ee\n\u0171\u0003\u0172\u0003\u0172", + "\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172", + "\u0005\u0172\u22f8\n\u0172\u0003\u0173\u0003\u0173\u0003\u0174\u0003", + "\u0174\u0003\u0174\u0005\u0174\u22ff\n\u0174\u0003\u0174\u0003\u0174", + "\u0003\u0174\u0007\u0174\u2304\n\u0174\f\u0174\u000e\u0174\u2307\u000b", + "\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003", + "\u0174\u0005\u0174\u230f\n\u0174\u0003\u0174\u0003\u0174\u0003\u0174", + "\u0003\u0174\u0003\u0174\u0005\u0174\u2316\n\u0174\u0003\u0175\u0003", + "\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0005\u0175\u231d\n\u0175", + "\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0176", + "\u0003\u0176\u0005\u0176\u2326\n\u0176\u0003\u0176\u0003\u0176\u0005", + "\u0176\u232a\n\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176", + "\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0005\u0176\u2334\n", + "\u0176\u0003\u0177\u0003\u0177\u0003\u0177\u0007\u0177\u2339\n\u0177", + "\f\u0177\u000e\u0177\u233c\u000b\u0177\u0003\u0178\u0003\u0178\u0003", + "\u0178\u0007\u0178\u2341\n\u0178\f\u0178\u000e\u0178\u2344\u000b\u0178", + "\u0003\u0179\u0003\u0179\u0003\u0179\u0007\u0179\u2349\n\u0179\f\u0179", + "\u000e\u0179\u234c\u000b\u0179\u0003\u017a\u0005\u017a\u234f\n\u017a", + "\u0003\u017a\u0003\u017a\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0003\u017b\u0003\u017b\u0005\u017b\u2365\n\u017b\u0003\u017b\u0003", + "\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0005", + "\u017b\u236e\n\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0005\u017b\u2374\n\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003", + "\u017b\u0005\u017b\u237a\n\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0003\u017b\u0005\u017b\u2380\n\u017b\u0003\u017b\u0003\u017b\u0003", + "\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0005", + "\u017b\u238a\n\u017b\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c", + "\u0003\u017c\u0005\u017c\u2391\n\u017c\u0003\u017c\u0007\u017c\u2394", + "\n\u017c\f\u017c\u000e\u017c\u2397\u000b\u017c\u0003\u017d\u0003\u017d", + "\u0005\u017d\u239b\n\u017d\u0003\u017d\u0003\u017d\u0005\u017d\u239f", + "\n\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d", + "\u0005\u017d\u23a6\n\u017d\u0003\u017e\u0003\u017e\u0005\u017e\u23aa", + "\n\u017e\u0003\u017e\u0005\u017e\u23ad\n\u017e\u0003\u017e\u0003\u017e", + "\u0003\u017e\u0005\u017e\u23b2\n\u017e\u0003\u017e\u0003\u017e\u0005", + "\u017e\u23b6\n\u017e\u0003\u017e\u0003\u017e\u0005\u017e\u23ba\n\u017e", + "\u0003\u017e\u0003\u017e\u0003\u017e\u0005\u017e\u23bf\n\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0007\u017e\u23c4\n\u017e\f\u017e\u000e", + "\u017e\u23c7\u000b\u017e\u0005\u017e\u23c9\n\u017e\u0003\u017e\u0003", + "\u017e\u0005\u017e\u23cd\n\u017e\u0003\u017f\u0003\u017f\u0003\u017f", + "\u0005\u017f\u23d2\n\u017f\u0003\u017f\u0003\u017f\u0005\u017f\u23d6", + "\n\u017f\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180", + "\u0003\u0180\u0003\u0180\u0005\u0180\u23df\n\u0180\u0003\u0181\u0003", + "\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0005\u0181\u23e6\n\u0181", + "\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0007\u0182", + "\u23ed\n\u0182\f\u0182\u000e\u0182\u23f0\u000b\u0182\u0003\u0182\u0003", + "\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003", + "\u0182\u0003\u0182\u0005\u0182\u23fb\n\u0182\u0005\u0182\u23fd\n\u0182", + "\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183", + "\u0003\u0183\u0003\u0183\u0005\u0183\u2407\n\u0183\u0003\u0183\u0005", + "\u0183\u240a\n\u0183\u0003\u0183\u0007\u0183\u240d\n\u0183\f\u0183\u000e", + "\u0183\u2410\u000b\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183", + "\u0003\u0183\u0003\u0183\u0005\u0183\u2418\n\u0183\u0005\u0183\u241a", + "\n\u0183\u0005\u0183\u241c\n\u0183\u0003\u0183\u0003\u0183\u0003\u0183", + "\u0005\u0183\u2421\n\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003", + "\u0183\u0007\u0183\u2427\n\u0183\f\u0183\u000e\u0183\u242a\u000b\u0183", + "\u0003\u0183\u0003\u0183\u0005\u0183\u242e\n\u0183\u0003\u0183\u0003", + "\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0005\u0183\u2436", + "\n\u0183\u0003\u0183\u0007\u0183\u2439\n\u0183\f\u0183\u000e\u0183\u243c", + "\u000b\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0005\u0183\u2441\n", + "\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003", + "\u0183\u0003\u0183\u0003\u0183\u0005\u0183\u244b\n\u0183\u0005\u0183", + "\u244d\n\u0183\u0003\u0183\u0003\u0183\u0005\u0183\u2451\n\u0183\u0003", + "\u0183\u0003\u0183\u0005\u0183\u2455\n\u0183\u0005\u0183\u2457\n\u0183", + "\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184", + "\u0003\u0184\u0005\u0184\u2460\n\u0184\u0005\u0184\u2462\n\u0184\u0003", + "\u0185\u0003\u0185\u0005\u0185\u2466\n\u0185\u0003\u0186\u0003\u0186", + "\u0003\u0187\u0003\u0187\u0003\u0187\u0003\u0187\u0003\u0187\u0007\u0187", + "\u246f\n\u0187\f\u0187\u000e\u0187\u2472\u000b\u0187\u0003\u0187\u0003", + "\u0187\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0007\u0188\u2491\n\u0188", + "\f\u0188\u000e\u0188\u2494\u000b\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0005\u0188\u24a3", + "\n\u0188\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189", + "\u0005\u0189\u24aa\n\u0189\u0005\u0189\u24ac\n\u0189\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0007\u018a\u24b1\n\u018a\f\u018a\u000e\u018a\u24b4", + "\u000b\u018a\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0007\u018b", + "\u24ba\n\u018b\f\u018b\u000e\u018b\u24bd\u000b\u018b\u0003\u018b\u0003", + "\u018b\u0003\u018c\u0003\u018c\u0003\u018c\u0005\u018c\u24c4\n\u018c", + "\u0003\u018c\u0003\u018c\u0003\u018d\u0003\u018d\u0003\u018d\u0005\u018d", + "\u24cb\n\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0005\u018d\u24d2\n\u018d\u0003\u018d\u0005\u018d\u24d5\n\u018d", + "\u0003\u018d\u0005\u018d\u24d8\n\u018d\u0003\u018e\u0003\u018e\u0003", + "\u018e\u0003\u018e\u0003\u018e\u0005\u018e\u24df\n\u018e\u0003\u018e", + "\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0005\u018e\u24e6\n", + "\u018e\u0003\u018e\u0005\u018e\u24e9\n\u018e\u0005\u018e\u24eb\n\u018e", + "\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f", + "\u0005\u018f\u24f3\n\u018f\u0005\u018f\u24f5\n\u018f\u0003\u0190\u0003", + "\u0190\u0003\u0190\u0003\u0190\u0005\u0190\u24fb\n\u0190\u0003\u0191", + "\u0003\u0191\u0003\u0191\u0007\u0191\u2500\n\u0191\f\u0191\u000e\u0191", + "\u2503\u000b\u0191\u0003\u0192\u0003\u0192\u0003\u0192\u0003\u0192\u0003", + "\u0192\u0005\u0192\u250a\n\u0192\u0003\u0193\u0003\u0193\u0007\u0193", + "\u250e\n\u0193\f\u0193\u000e\u0193\u2511\u000b\u0193\u0003\u0194\u0003", + "\u0194\u0005\u0194\u2515\n\u0194\u0003\u0194\u0003\u0194\u0005\u0194", + "\u2519\n\u0194\u0003\u0194\u0003\u0194\u0005\u0194\u251d\n\u0194\u0003", + "\u0194\u0003\u0194\u0003\u0194\u0005\u0194\u2522\n\u0194\u0005\u0194", + "\u2524\n\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0005\u0194\u252c\n\u0194\u0005\u0194\u252e\n\u0194", + "\u0003\u0194\u0003\u0194\u0005\u0194\u2532\n\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0005\u0194\u2539\n\u0194", + "\u0005\u0194\u253b\n\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0005\u0194\u2542\n\u0194\u0005\u0194\u2544\n\u0194", + "\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0195", + "\u0003\u0195\u0005\u0195\u254d\n\u0195\u0003\u0195\u0003\u0195\u0003", + "\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0005\u0195\u2555\n\u0195", + "\u0003\u0196\u0003\u0196\u0003\u0196\u0007\u0196\u255a\n\u0196\f\u0196", + "\u000e\u0196\u255d\u000b\u0196\u0003\u0197\u0003\u0197\u0003\u0197\u0005", + "\u0197\u2562\n\u0197\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198", + "\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0199\u0005\u0199", + "\u256d\n\u0199\u0003\u0199\u0003\u0199\u0005\u0199\u2571\n\u0199\u0005", + "\u0199\u2573\n\u0199\u0003\u0199\u0005\u0199\u2576\n\u0199\u0003\u0199", + "\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199", + "\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199", + "\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199", + "\u0003\u0199\u0003\u0199\u0003\u0199\u0005\u0199\u258e\n\u0199\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0007\u019c\u25a5\n\u019c\f\u019c\u000e", + "\u019c\u25a8\u000b\u019c\u0003\u019d\u0003\u019d\u0005\u019d\u25ac\n", + "\u019d\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0007\u019e\u25be", + "\n\u019e\f\u019e\u000e\u019e\u25c1\u000b\u019e\u0003\u019e\u0005\u019e", + "\u25c4\n\u019e\u0003\u019e\u0003\u019e\u0005\u019e\u25c8\n\u019e\u0003", + "\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0005\u01a0\u25d8\n\u01a0\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0005\u01a1\u25ec\n", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0005\u01a1\u2626\n\u01a1\u0003\u01a1", + "\u0003\u01a1\u0005\u01a1\u262a\n\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0005\u01a1\u265a\n\u01a1\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1", + "\u0005\u01a1\u266a\n\u01a1\u0005\u01a1\u266c\n\u01a1\u0003\u01a2\u0003", + "\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0005\u01a2\u2673\n\u01a2", + "\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0005\u01a3\u2679\n", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0005", + "\u01a3\u2686\n\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3", + "\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3", + "\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0005\u01a3\u2695\n\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0005\u01a3\u26a0\n\u01a3\u0003\u01a4", + "\u0003\u01a4\u0003\u01a4\u0005\u01a4\u26a5\n\u01a4\u0003\u01a4\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a4\u0005\u01a4\u26af\n\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4", + "\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0005\u01a4\u26b8\n", + "\u01a4\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003", + "\u01a5\u0003\u01a5\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003", + "\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01a9\u0003\u01a9\u0003\u01aa\u0005\u01aa\u26da\n\u01aa\u0003\u01aa", + "\u0003\u01aa\u0003\u01ab\u0005\u01ab\u26df\n\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ac\u0003\u01ac\u0005\u01ac\u26e5\n\u01ac\u0003\u01ad", + "\u0005\u01ad\u26e8\n\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0005", + "\u01ad\u26ed\n\u01ad\u0003\u01ad\u0007\u01ad\u26f0\n\u01ad\f\u01ad\u000e", + "\u01ad\u26f3\u000b\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ae\u0003\u01ae", + "\u0003\u01ae\u0003\u01ae\u0005\u01ae\u26fb\n\u01ae\u0003\u01ae\u0007", + "\u01ae\u26fe\n\u01ae\f\u01ae\u000e\u01ae\u2701\u000b\u01ae\u0003\u01ae", + "\u0003\u01ae\u0003\u01af\u0005\u01af\u2706\n\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0007\u01af\u270d\n\u01af", + "\f\u01af\u000e\u01af\u2710\u000b\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0007\u01af\u2717\n\u01af\f\u01af\u000e", + "\u01af\u271a\u000b\u01af\u0005\u01af\u271c\n\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0007\u01af\u2728\n\u01af\f\u01af\u000e", + "\u01af\u272b\u000b\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0005\u01af", + "\u2730\n\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0005\u01af\u2738\n\u01af\u0003\u01b0\u0003\u01b0", + "\u0005\u01b0\u273c\n\u01b0\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003", + "\u01b1\u0007\u01b1\u2742\n\u01b1\f\u01b1\u000e\u01b1\u2745\u000b\u01b1", + "\u0003\u01b1\u0003\u01b1\u0003\u01b2\u0003\u01b2\u0005\u01b2\u274b\n", + "\u01b2\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003", + "\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0007\u01b3\u2756\n\u01b3", + "\f\u01b3\u000e\u01b3\u2759\u000b\u01b3\u0003\u01b4\u0003\u01b4\u0003", + "\u01b4\u0007\u01b4\u275e\n\u01b4\f\u01b4\u000e\u01b4\u2761\u000b\u01b4", + "\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5", + "\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0005\u01b5\u276d\n", + "\u01b5\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0005", + "\u01b6\u2774\n\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0005\u01b6\u277a\n\u01b6\u0003\u01b6\u0003\u01b6\u0005\u01b6\u277e", + "\n\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0005\u01b6\u278f\n", + "\u01b6\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003", + "\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003", + "\u01b7\u0003\u01b7\u0005\u01b7\u279e\n\u01b7\u0005\u01b7\u27a0\n\u01b7", + "\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0005\u01b7\u27a5\n\u01b7\u0003", + "\u01b8\u0005\u01b8\u27a8\n\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0005\u01b9\u27b1\n", + "\u01b9\u0003\u01b9\u0005\u01b9\u27b4\n\u01b9\u0003\u01b9\u0005\u01b9", + "\u27b7\n\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01ba\u0003\u01ba\u0003", + "\u01ba\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003", + "\u01bb\u0005\u01bb\u27c4\n\u01bb\u0003\u01bc\u0003\u01bc\u0005\u01bc", + "\u27c8\n\u01bc\u0003\u01bd\u0003\u01bd\u0003\u01bd\u0003\u01bd\u0003", + "\u01bd\u0003\u01bd\u0005\u01bd\u27d0\n\u01bd\u0003\u01be\u0003\u01be", + "\u0003\u01be\u0003\u01be\u0005\u01be\u27d6\n\u01be\u0003\u01bf\u0003", + "\u01bf\u0003\u01bf\u0003\u01bf\u0007\u01bf\u27dc\n\u01bf\f\u01bf\u000e", + "\u01bf\u27df\u000b\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf", + "\u0005\u01bf\u27e5\n\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003", + "\u01bf\u0005\u01bf\u27eb\n\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf", + "\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf", + "\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0005\u01bf\u27fa\n", + "\u01bf\u0003\u01c0\u0003\u01c0\u0003\u01c0\u0003\u01c0\u0003\u01c0\u0003", + "\u01c0\u0003\u01c0\u0005\u01c0\u2803\n\u01c0\u0003\u01c0\u0003\u01c0", + "\u0003\u01c1\u0003\u01c1\u0005\u01c1\u2809\n\u01c1\u0003\u01c2\u0003", + "\u01c2\u0003\u01c2\u0003\u01c2\u0005\u01c2\u280f\n\u01c2\u0003\u01c2", + "\u0005\u01c2\u2812\n\u01c2\u0003\u01c2\u0003\u01c2\u0005\u01c2\u2816", + "\n\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0007\u01c2\u281b\n\u01c2", + "\f\u01c2\u000e\u01c2\u281e\u000b\u01c2\u0003\u01c3\u0003\u01c3\u0003", + "\u01c3\u0003\u01c3\u0003\u01c3\u0005\u01c3\u2825\n\u01c3\u0003\u01c3", + "\u0005\u01c3\u2828\n\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003", + "\u01c3\u0005\u01c3\u282e\n\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3", + "\u0003\u01c3\u0005\u01c3\u2834\n\u01c3\u0005\u01c3\u2836\n\u01c3\u0003", + "\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0005\u01c3\u283c\n\u01c3", + "\u0003\u01c3\u0005\u01c3\u283f\n\u01c3\u0005\u01c3\u2841\n\u01c3\u0003", + "\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0005\u01c3\u2847\n\u01c3", + "\u0005\u01c3\u2849\n\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c4\u0003", + "\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003", + "\u01c4\u0003\u01c4\u0003\u01c4\u0005\u01c4\u2857\n\u01c4\u0003\u01c4", + "\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0005\u01c4\u285e\n", + "\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003", + "\u01c5\u0003\u01c5\u0005\u01c5\u2867\n\u01c5\u0003\u01c6\u0003\u01c6", + "\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0005\u01c6\u286e\n\u01c6\u0003", + "\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003", + "\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0005\u01c7\u287a\n\u01c7", + "\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0005\u01c7", + "\u2881\n\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c8\u0003\u01c8\u0003", + "\u01c8\u0005\u01c8\u2888\n\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0005\u01c8\u288f\n\u01c8\u0003\u01c8\u0003", + "\u01c8\u0003\u01c8\u0003\u01c8\u0005\u01c8\u2895\n\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0005\u01c8\u289c\n", + "\u01c8\u0003\u01c8\u0005\u01c8\u289f\n\u01c8\u0003\u01c9\u0003\u01c9", + "\u0003\u01c9\u0005\u01c9\u28a4\n\u01c9\u0003\u01c9\u0003\u01c9\u0003", + "\u01ca\u0003\u01ca\u0003\u01ca\u0005\u01ca\u28ab\n\u01ca\u0003\u01ca", + "\u0003\u01ca\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0005\u01cb", + "\u28b3\n\u01cb\u0003\u01cb\u0003\u01cb\u0005\u01cb\u28b7\n\u01cb\u0003", + "\u01cb\u0005\u01cb\u28ba\n\u01cb\u0003\u01cc\u0003\u01cc\u0003\u01cc", + "\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0005\u01cc\u28c2\n\u01cc\u0003", + "\u01cc\u0003\u01cc\u0005\u01cc\u28c6\n\u01cc\u0003\u01cc\u0005\u01cc", + "\u28c9\n\u01cc\u0003\u01cd\u0003\u01cd\u0005\u01cd\u28cd\n\u01cd\u0003", + "\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28d2\n\u01ce\u0003\u01ce", + "\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28d8\n\u01ce\u0003", + "\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28de\n\u01ce", + "\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28e4\n", + "\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28ea", + "\n\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce", + "\u28f0\n\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005", + "\u01ce\u28f6\n\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce", + "\u0005\u01ce\u28fc\n\u01ce\u0003\u01ce\u0005\u01ce\u28ff\n\u01ce\u0003", + "\u01cf\u0003\u01cf\u0005\u01cf\u2903\n\u01cf\u0003\u01cf\u0003\u01cf", + "\u0003\u01cf\u0005\u01cf\u2908\n\u01cf\u0007\u01cf\u290a\n\u01cf\f\u01cf", + "\u000e\u01cf\u290d\u000b\u01cf\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0007", + "\u01d0\u2912\n\u01d0\f\u01d0\u000e\u01d0\u2915\u000b\u01d0\u0003\u01d1", + "\u0003\u01d1\u0005\u01d1\u2919\n\u01d1\u0003\u01d2\u0003\u01d2\u0003", + "\u01d3\u0003\u01d3\u0003\u01d4\u0005\u01d4\u2920\n\u01d4\u0003\u01d4", + "\u0003\u01d4\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5", + "\u0005\u01d5\u2929\n\u01d5\u0005\u01d5\u292b\n\u01d5\u0003\u01d6\u0003", + "\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0005\u01d6\u2932\n\u01d6", + "\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7", + "\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0005\u01d7\u293e\n", + "\u01d7\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0005\u01d8\u2943\n\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0005\u01d8\u294e\n\u01d8\u0003", + "\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003", + "\u01d8\u0003\u01d8\u0005\u01d8\u2958\n\u01d8\u0005\u01d8\u295a\n\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0005\u01d8\u2960\n", + "\u01d8\u0005\u01d8\u2962\n\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8", + "\u0005\u01d8\u2967\n\u01d8\u0005\u01d8\u2969\n\u01d8\u0003\u01d8\u0005", + "\u01d8\u296c\n\u01d8\u0003\u01d9\u0003\u01d9\u0005\u01d9\u2970\n\u01d9", + "\u0003\u01da\u0003\u01da\u0005\u01da\u2974\n\u01da\u0003\u01db\u0003", + "\u01db\u0003\u01db\u0003\u01db\u0005\u01db\u297a\n\u01db\u0003\u01db", + "\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db", + "\u0005\u01db\u2983\n\u01db\u0003\u01db\u0005\u01db\u2986\n\u01db\u0005", + "\u01db\u2988\n\u01db\u0003\u01dc\u0005\u01dc\u298b\n\u01dc\u0003\u01dc", + "\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0005\u01dc\u2991\n\u01dc\u0003", + "\u01dc\u0003\u01dc\u0005\u01dc\u2995\n\u01dc\u0003\u01dc\u0005\u01dc", + "\u2998\n\u01dc\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003", + "\u01dd\u0003\u01dd\u0003\u01dd\u0005\u01dd\u29a1\n\u01dd\u0003\u01de", + "\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de", + "\u0005\u01de\u29aa\n\u01de\u0003\u01df\u0003\u01df\u0003\u01df\u0003", + "\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003", + "\u01df\u0005\u01df\u29b6\n\u01df\u0003\u01df\u0005\u01df\u29b9\n\u01df", + "\u0003\u01e0\u0003\u01e0\u0005\u01e0\u29bd\n\u01e0\u0003\u01e0\u0003", + "\u01e0\u0003\u01e0\u0003\u01e0\u0005\u01e0\u29c3\n\u01e0\u0003\u01e0", + "\u0005\u01e0\u29c6\n\u01e0\u0003\u01e0\u0003\u01e0\u0005\u01e0\u29ca", + "\n\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0005\u01e0", + "\u29d0\n\u01e0\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0005\u01e1\u29d5", + "\n\u01e1\u0003\u01e2\u0003\u01e2\u0003\u01e2\u0005\u01e2\u29da\n\u01e2", + "\u0003\u01e2\u0003\u01e2\u0005\u01e2\u29de\n\u01e2\u0003\u01e2\u0003", + "\u01e2\u0005\u01e2\u29e2\n\u01e2\u0003\u01e2\u0003\u01e2\u0005\u01e2", + "\u29e6\n\u01e2\u0003\u01e3\u0003\u01e3\u0003\u01e4\u0003\u01e4\u0003", + "\u01e4\u0005\u01e4\u29ed\n\u01e4\u0003\u01e5\u0003\u01e5\u0003\u01e6", + "\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6", + "\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6", + "\u0003\u01e6\u0003\u01e6\u0005\u01e6\u2a00\n\u01e6\u0003\u01e7\u0003", + "\u01e7\u0003\u01e8\u0003\u01e8\u0005\u01e8\u2a06\n\u01e8\u0003\u01e8", + "\u0002\u0004^\u02d8\u01e9\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012", + "\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ", + "\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e", + "\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6", + "\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be", + "\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6", + "\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee", + "\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106", + "\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e", + "\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136", + "\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e", + "\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166", + "\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e", + "\u0180\u0182\u0184\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196", + "\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae", + "\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6", + "\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01de", + "\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f0\u01f2\u01f4\u01f6", + "\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e", + "\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226", + "\u0228\u022a\u022c\u022e\u0230\u0232\u0234\u0236\u0238\u023a\u023c\u023e", + "\u0240\u0242\u0244\u0246\u0248\u024a\u024c\u024e\u0250\u0252\u0254\u0256", + "\u0258\u025a\u025c\u025e\u0260\u0262\u0264\u0266\u0268\u026a\u026c\u026e", + "\u0270\u0272\u0274\u0276\u0278\u027a\u027c\u027e\u0280\u0282\u0284\u0286", + "\u0288\u028a\u028c\u028e\u0290\u0292\u0294\u0296\u0298\u029a\u029c\u029e", + "\u02a0\u02a2\u02a4\u02a6\u02a8\u02aa\u02ac\u02ae\u02b0\u02b2\u02b4\u02b6", + "\u02b8\u02ba\u02bc\u02be\u02c0\u02c2\u02c4\u02c6\u02c8\u02ca\u02cc\u02ce", + "\u02d0\u02d2\u02d4\u02d6\u02d8\u02da\u02dc\u02de\u02e0\u02e2\u02e4\u02e6", + "\u02e8\u02ea\u02ec\u02ee\u02f0\u02f2\u02f4\u02f6\u02f8\u02fa\u02fc\u02fe", + "\u0300\u0302\u0304\u0306\u0308\u030a\u030c\u030e\u0310\u0312\u0314\u0316", + "\u0318\u031a\u031c\u031e\u0320\u0322\u0324\u0326\u0328\u032a\u032c\u032e", + "\u0330\u0332\u0334\u0336\u0338\u033a\u033c\u033e\u0340\u0342\u0344\u0346", + "\u0348\u034a\u034c\u034e\u0350\u0352\u0354\u0356\u0358\u035a\u035c\u035e", + "\u0360\u0362\u0364\u0366\u0368\u036a\u036c\u036e\u0370\u0372\u0374\u0376", + "\u0378\u037a\u037c\u037e\u0380\u0382\u0384\u0386\u0388\u038a\u038c\u038e", + "\u0390\u0392\u0394\u0396\u0398\u039a\u039c\u039e\u03a0\u03a2\u03a4\u03a6", + "\u03a8\u03aa\u03ac\u03ae\u03b0\u03b2\u03b4\u03b6\u03b8\u03ba\u03bc\u03be", + "\u03c0\u03c2\u03c4\u03c6\u03c8\u03ca\u03cc\u03ce\u0002\u008b\u0003\u0002", + "\u0321\u0322\u0004\u0002\u0321\u0321\u0326\u0326\u0004\u0002\u01d5\u01d5", + "\u02f5\u02f6\u0004\u0002\u0321\u0322\u0326\u0326\u0004\u0002\u00bb\u00bb", + "\u02d2\u02d2\u0005\u0002\u031e\u031e\u0321\u0321\u0326\u0326\u0005\u0002", + "||\u012b\u012b\u0168\u0168\u0004\u0002\u00e2\u00e2\u00e5\u00e5\u0003", + "\u0002\u0326\u0327\u0003\u0002\u0124\u0128\u0004\u0002\u01c2\u01c2\u0277", + "\u0277\u0004\u0002\u012e\u012e\u0271\u0271\u0005\u0002TT\u012e\u012e", + "\u0271\u0271\u0005\u0002\u00d5\u00d5\u0100\u0100\u02c3\u02c4\u0004\u0002", + "\u0013\u0013\u02ec\u02ec\u0004\u0002\u0017\u0017\u023e\u023e\u0004\u0002", + "\u0006\u0006\u029f\u029f\u0005\u0002\u0006\u0006\u0263\u0263\u029d\u029d", + "\u0004\u0002\n\nII\u0004\u0002\u0004\u0004gg\u0004\u0002\u01ef\u01ef", + "\u02d3\u02d3\u0004\u0002\u01e0\u01e0\u01e9\u01e9\u0004\u0002\u0322\u0322", + "\u0326\u0326\u0004\u0002\u0228\u0228\u024d\u024d\u0004\u0002\b\t\u00db", + "\u00db\u0005\u0002\u00d5\u00d5\u00f7\u00f7\u00f9\u00f9\u0004\u0002\u014b", + "\u014b\u014e\u014e\u0004\u0002\u000b\u000b\u00ed\u00ed\u0003\u0002\u0324", + "\u0325\u0004\u0002\u0004\u0004\u013b\u013b\u0004\u0002\u00b6\u00b6\u0178", + "\u0178\u0003\u0002\u0106\u0107\u0004\u0002\u0322\u0322\u0326\u0327\u0004", + "\u0002\u00ce\u00ce\u0166\u0166\u0004\u0002\u00c9\u00c9\u0144\u0144\u0004", + "\u0002\u010d\u010d\u01e0\u01e0\u0004\u0002\u0324\u0324\u0326\u0326\u0004", + "\u0002]]\u0091\u0091\u0006\u0002\\\\\u00a2\u00a2\u0131\u0131\u0169\u0169", + "\u0004\u0002\u001e\u001e\u01ff\u01ff\u0004\u0002\u00a2\u00a2\u0169\u0169", + "\u0004\u0002\\\\\u0169\u0169\u0005\u0002\u020a\u020a\u024d\u024d\u02f1", + "\u02f1\u0004\u0002\u0306\u0306\u0322\u0322\u0005\u0002BB\u013d\u013d", + "\u01f5\u01f5\u0004\u0002YY\u0326\u0326\u0004\u0002YY\u0322\u0322\u0004", + "\u0002\u0237\u0237\u0326\u0326\u0005\u0002\u020a\u020a\u0228\u0228\u024d", + "\u024d\u0007\u0002\u0184\u0186\u01da\u01da\u01dc\u01dc\u0299\u029b\u02fb", + "\u02fc\u0004\u0002\u0085\u0085\u008b\u008b\u0005\u0002\u0215\u0215\u023d", + "\u023d\u024e\u024e\u0005\u0002\r\r\u0156\u0156\u021f\u021f\u0004\u0002", + "\u00d5\u00d5\u00f3\u00f3\u0003\u0002\u0102\u0103\u0005\u0002\\\\\u00a2", + "\u00a2\u0169\u0169\u0004\u0002\u0085\u0085\u0188\u0188\u0004\u0002\u027a", + "\u027b\u02a0\u02a0\u0004\u0002\u00f5\u00f5\u02bc\u02bc\u0004\u0002\u0006", + "\u0006\u009e\u009e\u0005\u0002\u01ec\u01ec\u02be\u02be\u030e\u030e\u0005", + "\u0002\u0153\u0153\u0198\u0198\u01e0\u01e0\u0005\u0002\u01ce\u01ce\u0217", + "\u0217\u0256\u0256\u0004\u0002\u020d\u020d\u0237\u0237\u0004\u0002\u0006", + "\u0006\u00a6\u00a7\u0005\u0002\u00ab\u00ab\u00d0\u00d0\u00de\u00de\u0005", + "\u0002\u0113\u0113\u0151\u0151\u01e2\u01e2\u0004\u0002kk\u01e2\u01e2", + "\u0005\u0002\u0006\u0006\u017c\u017c\u0282\u0282\u0004\u0002\u008c\u008c", + "\u00e2\u00e2\u0005\u0002\u01e7\u01e7\u0272\u0272\u0275\u0275\u0004\u0002", + "\u029d\u029d\u029f\u029f\u0005\u0002\u025c\u025c\u02b4\u02b4\u02d7\u02d7", + "\u0005\u0002\u018d\u018d\u01e2\u01e2\u0205\u0205\u0004\u0002\u0118\u0118", + "\u02ea\u02ea\u0004\u0002\u0205\u0205\u02d6\u02d6\u0005\u0002\u008c\u008c", + "\u01aa\u01aa\u02d6\u02d6\u0005\u0002\u00d5\u00d5\u01b2\u01b2\u02f9\u02f9", + "\u0004\u0002\u0256\u0256\u02c6\u02c6\u0004\u0002\u0081\u0081\u01fb\u01fb", + "\u0005\u0002aa\u0155\u0155\u016b\u016b\u0004\u000299\u00da\u00da\u0004", + "\u0002\u00a0\u00a0\u00d3\u00d3\u0004\u0002\u00d7\u00d7\u013f\u013f\u0004", + "\u0002\u00d2\u00d2\u0206\u0206\u0004\u0002\u00d9\u00d9\u01b2\u01b2\u0004", + "\u0002CC\u0150\u0150\u0004\u0002\u00d6\u00d6\u011e\u011e\u0004\u0002", + "\u00b9\u00b9\u00d8\u00d8\u0004\u0002\u0184\u0186\u02fc\u02fc\u0004\u0002", + "\u016e\u016e\u023b\u023b\u0003\u0002\u027a\u027b\u0004\u0002\u0081\u0081", + "\u0327\u0327\u0004\u0002\u01d1\u01d1\u01ec\u01ec\u0004\u0002\u01f3\u01f3", + "\u02dd\u02dd\u0004\u0002\u0153\u0153\u0172\u0172\u0003\u0002\u015d\u015e", + "\u0006\u0002\u01ab\u01ab\u027d\u027d\u02cb\u02cb\u0326\u0326\u0004\u0002", + "\u01bb\u01bb\u01e4\u01e4\u0004\u0002\u0010\u0010;;\u0004\u0002\u0221", + "\u0221\u02cc\u02cc\u0004\u0002\u0207\u0207\u02c0\u02c0\u0006\u0002\u01e5", + "\u01e5\u01fa\u01fa\u022d\u022d\u02de\u02de\u0005\u0002\u0278\u0278\u029d", + "\u029d\u02c1\u02c1\u0004\u0002\u017e\u017e\u02a6\u02a6\u0003\u0002\u0341", + "\u0343\u0005\u0002\u0336\u0336\u0344\u0345\u0347\u0349\u0003\u0002\u0344", + "\u0345\u0005\u0002\u0006\u0006\r\r\u0141\u0141\u0004\u0002\u0006\u0006", + "bb\u0003\u0002\u0328\u0329\u0004\u0002\u02b9\u02b9\u02bc\u02bc\u0004", + "\u0002\u0200\u0200\u0262\u0262\u0004\u0002\u0003\u0003\u0319\u0319\u0004", + "\u0002\u0198\u0198\u0283\u0283\u0004\u0002\u0011\u0011^^\u0004\u0002", + "\u00ee\u00ee\u0213\u0213\u0005\u0002\u00c9\u00c9\u01b9\u01b9\u0213\u0213", + "\u0005\u0002\u00c9\u00c9\u0213\u0213\u023c\u023c\u0004\u0002\u00df\u00df", + "\u0321\u0322\u0005\u0002\u008c\u008c\u00b1\u00b1\u011f\u011f\u0006\u0002", + "\u00c9\u00c9\u0213\u0213\u023c\u023c\u02a7\u02a7\u0004\u0002\u0321\u0321", + "\u0323\u0323\u0005\u0002\u01d8\u01d8\u0298\u0298\u02ba\u02ba\b\u0002", + "\u01a0\u01a0\u0241\u0241\u0251\u0251\u02e2\u02e3\u02e9\u02e9\u030c\u030d", + "\u0003\u0002\u01be\u01bf\u0004\u0002\u0201\u0201\u0230\u0230\u0004\u0002", + "\u022e\u022e\u0231\u0231\u0004\u0002\u0297\u0297\u02bc\u02bc\u0005\u0002", + "\u008c\u008c\u00e2\u00e2\u029d\u029d\u0004\u000255\u00d4\u00d4\u0003", + "\u0002\u0110\u0111\u0004\u0002\u0241\u0241\u0322\u0322\u0004\u0002\u0322", + "\u0322\u0328\u0328$\u0002((RRrr\u0082\u0083\u0086\u0086\u00a0\u00a0", + "\u00ac\u00ac\u00bd\u00be\u00e3\u00e3\u00f1\u00f1\u0105\u0105\u0107\u0107", + "\u0109\u0109\u011a\u011b\u0122\u0122\u0129\u0129\u0135\u0135\u013e\u013e", + "\u0142\u0142\u0144\u0144\u0149\u0149\u014b\u014b\u0156\u0156\u017e\u01e5", + "\u01e7\u021c\u021e\u0225\u0228\u027b\u027d\u02e0\u02e2\u02e7\u02e9\u0306", + "\u0308\u0311\u0313\u0315\u0317\u0317\u0323\u0323\u0003\u0002\u032e\u0335", + "\u0007\u0002\u020a\u020a\u0228\u0228\u024d\u024d\u02f1\u02f1\u0343\u0343", + "\u0002\u30e6\u0002\u03d3\u0003\u0002\u0002\u0002\u0004\u03e9\u0003\u0002", + "\u0002\u0002\u0006\u03ef\u0003\u0002\u0002\u0002\b\u03fa\u0003\u0002", + "\u0002\u0002\n\u0401\u0003\u0002\u0002\u0002\f\u04a2\u0003\u0002\u0002", + "\u0002\u000e\u04a9\u0003\u0002\u0002\u0002\u0010\u04b7\u0003\u0002\u0002", + "\u0002\u0012\u04b9\u0003\u0002\u0002\u0002\u0014\u04c4\u0003\u0002\u0002", + "\u0002\u0016\u04c8\u0003\u0002\u0002\u0002\u0018\u04d6\u0003\u0002\u0002", + "\u0002\u001a\u04d8\u0003\u0002\u0002\u0002\u001c\u04df\u0003\u0002\u0002", + "\u0002\u001e\u04e9\u0003\u0002\u0002\u0002 \u04f5\u0003\u0002\u0002", + "\u0002\"\u04f7\u0003\u0002\u0002\u0002$\u04f9\u0003\u0002\u0002\u0002", + "&\u04fb\u0003\u0002\u0002\u0002(\u0515\u0003\u0002\u0002\u0002*\u0526", + "\u0003\u0002\u0002\u0002,\u0533\u0003\u0002\u0002\u0002.\u0562\u0003", + "\u0002\u0002\u00020\u0564\u0003\u0002\u0002\u00022\u0576\u0003\u0002", + "\u0002\u00024\u0578\u0003\u0002\u0002\u00026\u0595\u0003\u0002\u0002", + "\u00028\u05aa\u0003\u0002\u0002\u0002:\u05b7\u0003\u0002\u0002\u0002", + "<\u05bc\u0003\u0002\u0002\u0002>\u05c0\u0003\u0002\u0002\u0002@\u05c4", + "\u0003\u0002\u0002\u0002B\u05cf\u0003\u0002\u0002\u0002D\u05d4\u0003", + "\u0002\u0002\u0002F\u05d6\u0003\u0002\u0002\u0002H\u05db\u0003\u0002", + "\u0002\u0002J\u05dd\u0003\u0002\u0002\u0002L\u05df\u0003\u0002\u0002", + "\u0002N\u05e2\u0003\u0002\u0002\u0002P\u05e6\u0003\u0002\u0002\u0002", + "R\u05ec\u0003\u0002\u0002\u0002T\u05ee\u0003\u0002\u0002\u0002V\u05f1", + "\u0003\u0002\u0002\u0002X\u05f3\u0003\u0002\u0002\u0002Z\u05f6\u0003", + "\u0002\u0002\u0002\\\u05fb\u0003\u0002\u0002\u0002^\u0606\u0003\u0002", + "\u0002\u0002`\u060f\u0003\u0002\u0002\u0002b\u0613\u0003\u0002\u0002", + "\u0002d\u0615\u0003\u0002\u0002\u0002f\u061b\u0003\u0002\u0002\u0002", + "h\u061d\u0003\u0002\u0002\u0002j\u061f\u0003\u0002\u0002\u0002l\u0622", + "\u0003\u0002\u0002\u0002n\u062a\u0003\u0002\u0002\u0002p\u062c\u0003", + "\u0002\u0002\u0002r\u062e\u0003\u0002\u0002\u0002t\u0644\u0003\u0002", + "\u0002\u0002v\u0657\u0003\u0002\u0002\u0002x\u065f\u0003\u0002\u0002", + "\u0002z\u0663\u0003\u0002\u0002\u0002|\u066b\u0003\u0002\u0002\u0002", + "~\u067a\u0003\u0002\u0002\u0002\u0080\u067c\u0003\u0002\u0002\u0002", + "\u0082\u06a8\u0003\u0002\u0002\u0002\u0084\u06b1\u0003\u0002\u0002\u0002", + "\u0086\u06be\u0003\u0002\u0002\u0002\u0088\u06c0\u0003\u0002\u0002\u0002", + "\u008a\u06c2\u0003\u0002\u0002\u0002\u008c\u06c5\u0003\u0002\u0002\u0002", + "\u008e\u06c9\u0003\u0002\u0002\u0002\u0090\u06d3\u0003\u0002\u0002\u0002", + "\u0092\u06dd\u0003\u0002\u0002\u0002\u0094\u0709\u0003\u0002\u0002\u0002", + "\u0096\u0720\u0003\u0002\u0002\u0002\u0098\u0722\u0003\u0002\u0002\u0002", + "\u009a\u0724\u0003\u0002\u0002\u0002\u009c\u0726\u0003\u0002\u0002\u0002", + "\u009e\u072b\u0003\u0002\u0002\u0002\u00a0\u072e\u0003\u0002\u0002\u0002", + "\u00a2\u0891\u0003\u0002\u0002\u0002\u00a4\u0893\u0003\u0002\u0002\u0002", + "\u00a6\u08c9\u0003\u0002\u0002\u0002\u00a8\u08ce\u0003\u0002\u0002\u0002", + "\u00aa\u08fa\u0003\u0002\u0002\u0002\u00ac\u0911\u0003\u0002\u0002\u0002", + "\u00ae\u092f\u0003\u0002\u0002\u0002\u00b0\u0933\u0003\u0002\u0002\u0002", + "\u00b2\u0939\u0003\u0002\u0002\u0002\u00b4\u093f\u0003\u0002\u0002\u0002", + "\u00b6\u0943\u0003\u0002\u0002\u0002\u00b8\u0947\u0003\u0002\u0002\u0002", + "\u00ba\u094c\u0003\u0002\u0002\u0002\u00bc\u095a\u0003\u0002\u0002\u0002", + "\u00be\u0960\u0003\u0002\u0002\u0002\u00c0\u0966\u0003\u0002\u0002\u0002", + "\u00c2\u0976\u0003\u0002\u0002\u0002\u00c4\u097a\u0003\u0002\u0002\u0002", + "\u00c6\u0980\u0003\u0002\u0002\u0002\u00c8\u0986\u0003\u0002\u0002\u0002", + "\u00ca\u098e\u0003\u0002\u0002\u0002\u00cc\u0994\u0003\u0002\u0002\u0002", + "\u00ce\u09a3\u0003\u0002\u0002\u0002\u00d0\u09b5\u0003\u0002\u0002\u0002", + "\u00d2\u09bc\u0003\u0002\u0002\u0002\u00d4\u09c1\u0003\u0002\u0002\u0002", + "\u00d6\u09cc\u0003\u0002\u0002\u0002\u00d8\u09d1\u0003\u0002\u0002\u0002", + "\u00da\u09d5\u0003\u0002\u0002\u0002\u00dc\u09d9\u0003\u0002\u0002\u0002", + "\u00de\u09de\u0003\u0002\u0002\u0002\u00e0\u09e3\u0003\u0002\u0002\u0002", + "\u00e2\u09e8\u0003\u0002\u0002\u0002\u00e4\u09f6\u0003\u0002\u0002\u0002", + "\u00e6\u09fc\u0003\u0002\u0002\u0002\u00e8\u0a01\u0003\u0002\u0002\u0002", + "\u00ea\u0a09\u0003\u0002\u0002\u0002\u00ec\u0a0d\u0003\u0002\u0002\u0002", + "\u00ee\u0a1e\u0003\u0002\u0002\u0002\u00f0\u0a26\u0003\u0002\u0002\u0002", + "\u00f2\u0a2c\u0003\u0002\u0002\u0002\u00f4\u0a3a\u0003\u0002\u0002\u0002", + "\u00f6\u0a50\u0003\u0002\u0002\u0002\u00f8\u0a55\u0003\u0002\u0002\u0002", + "\u00fa\u0a5b\u0003\u0002\u0002\u0002\u00fc\u0a60\u0003\u0002\u0002\u0002", + "\u00fe\u0a64\u0003\u0002\u0002\u0002\u0100\u0a80\u0003\u0002\u0002\u0002", + "\u0102\u0a8b\u0003\u0002\u0002\u0002\u0104\u0a94\u0003\u0002\u0002\u0002", + "\u0106\u0aa1\u0003\u0002\u0002\u0002\u0108\u0aa9\u0003\u0002\u0002\u0002", + "\u010a\u0aae\u0003\u0002\u0002\u0002\u010c\u0ab9\u0003\u0002\u0002\u0002", + "\u010e\u0ad7\u0003\u0002\u0002\u0002\u0110\u0af5\u0003\u0002\u0002\u0002", + "\u0112\u0b03\u0003\u0002\u0002\u0002\u0114\u0b1b\u0003\u0002\u0002\u0002", + "\u0116\u0b2b\u0003\u0002\u0002\u0002\u0118\u0b38\u0003\u0002\u0002\u0002", + "\u011a\u0b4b\u0003\u0002\u0002\u0002\u011c\u0b58\u0003\u0002\u0002\u0002", + "\u011e\u0b61\u0003\u0002\u0002\u0002\u0120\u0b7f\u0003\u0002\u0002\u0002", + "\u0122\u0c72\u0003\u0002\u0002\u0002\u0124\u0c7b\u0003\u0002\u0002\u0002", + "\u0126\u0cb5\u0003\u0002\u0002\u0002\u0128\u0ce6\u0003\u0002\u0002\u0002", + "\u012a\u0ce8\u0003\u0002\u0002\u0002\u012c\u0d11\u0003\u0002\u0002\u0002", + "\u012e\u0d43\u0003\u0002\u0002\u0002\u0130\u0d89\u0003\u0002\u0002\u0002", + "\u0132\u0dcc\u0003\u0002\u0002\u0002\u0134\u0ddc\u0003\u0002\u0002\u0002", + "\u0136\u0df8\u0003\u0002\u0002\u0002\u0138\u0e0b\u0003\u0002\u0002\u0002", + "\u013a\u0e20\u0003\u0002\u0002\u0002\u013c\u0e68\u0003\u0002\u0002\u0002", + "\u013e\u0ec7\u0003\u0002\u0002\u0002\u0140\u0edd\u0003\u0002\u0002\u0002", + "\u0142\u0ee9\u0003\u0002\u0002\u0002\u0144\u0f05\u0003\u0002\u0002\u0002", + "\u0146\u0f1a\u0003\u0002\u0002\u0002\u0148\u0f34\u0003\u0002\u0002\u0002", + "\u014a\u0f3d\u0003\u0002\u0002\u0002\u014c\u0f5d\u0003\u0002\u0002\u0002", + "\u014e\u0f67\u0003\u0002\u0002\u0002\u0150\u0f77\u0003\u0002\u0002\u0002", + "\u0152\u0f83\u0003\u0002\u0002\u0002\u0154\u0f8c\u0003\u0002\u0002\u0002", + "\u0156\u0f9d\u0003\u0002\u0002\u0002\u0158\u0fb5\u0003\u0002\u0002\u0002", + "\u015a\u1021\u0003\u0002\u0002\u0002\u015c\u103b\u0003\u0002\u0002\u0002", + "\u015e\u1047\u0003\u0002\u0002\u0002\u0160\u104e\u0003\u0002\u0002\u0002", + "\u0162\u107a\u0003\u0002\u0002\u0002\u0164\u1085\u0003\u0002\u0002\u0002", + "\u0166\u1099\u0003\u0002\u0002\u0002\u0168\u10c3\u0003\u0002\u0002\u0002", + "\u016a\u10ca\u0003\u0002\u0002\u0002\u016c\u10d8\u0003\u0002\u0002\u0002", + "\u016e\u10ea\u0003\u0002\u0002\u0002\u0170\u1130\u0003\u0002\u0002\u0002", + "\u0172\u115b\u0003\u0002\u0002\u0002\u0174\u1191\u0003\u0002\u0002\u0002", + "\u0176\u121a\u0003\u0002\u0002\u0002\u0178\u12a9\u0003\u0002\u0002\u0002", + "\u017a\u12c6\u0003\u0002\u0002\u0002\u017c\u12e3\u0003\u0002\u0002\u0002", + "\u017e\u1352\u0003\u0002\u0002\u0002\u0180\u135f\u0003\u0002\u0002\u0002", + "\u0182\u1367\u0003\u0002\u0002\u0002\u0184\u136f\u0003\u0002\u0002\u0002", + "\u0186\u1385\u0003\u0002\u0002\u0002\u0188\u13a3\u0003\u0002\u0002\u0002", + "\u018a\u13be\u0003\u0002\u0002\u0002\u018c\u13d2\u0003\u0002\u0002\u0002", + "\u018e\u1402\u0003\u0002\u0002\u0002\u0190\u1427\u0003\u0002\u0002\u0002", + "\u0192\u14f3\u0003\u0002\u0002\u0002\u0194\u1511\u0003\u0002\u0002\u0002", + "\u0196\u1513\u0003\u0002\u0002\u0002\u0198\u1533\u0003\u0002\u0002\u0002", + "\u019a\u1562\u0003\u0002\u0002\u0002\u019c\u1596\u0003\u0002\u0002\u0002", + "\u019e\u15a6\u0003\u0002\u0002\u0002\u01a0\u15b4\u0003\u0002\u0002\u0002", + "\u01a2\u15fd\u0003\u0002\u0002\u0002\u01a4\u161c\u0003\u0002\u0002\u0002", + "\u01a6\u161e\u0003\u0002\u0002\u0002\u01a8\u1622\u0003\u0002\u0002\u0002", + "\u01aa\u1640\u0003\u0002\u0002\u0002\u01ac\u1642\u0003\u0002\u0002\u0002", + "\u01ae\u1657\u0003\u0002\u0002\u0002\u01b0\u16b0\u0003\u0002\u0002\u0002", + "\u01b2\u16b2\u0003\u0002\u0002\u0002\u01b4\u16bf\u0003\u0002\u0002\u0002", + "\u01b6\u16f7\u0003\u0002\u0002\u0002\u01b8\u16fa\u0003\u0002\u0002\u0002", + "\u01ba\u1728\u0003\u0002\u0002\u0002\u01bc\u172b\u0003\u0002\u0002\u0002", + "\u01be\u174c\u0003\u0002\u0002\u0002\u01c0\u175d\u0003\u0002\u0002\u0002", + "\u01c2\u1760\u0003\u0002\u0002\u0002\u01c4\u179b\u0003\u0002\u0002\u0002", + "\u01c6\u17b3\u0003\u0002\u0002\u0002\u01c8\u17c3\u0003\u0002\u0002\u0002", + "\u01ca\u17c5\u0003\u0002\u0002\u0002\u01cc\u17f6\u0003\u0002\u0002\u0002", + "\u01ce\u181f\u0003\u0002\u0002\u0002\u01d0\u184b\u0003\u0002\u0002\u0002", + "\u01d2\u1853\u0003\u0002\u0002\u0002\u01d4\u1880\u0003\u0002\u0002\u0002", + "\u01d6\u1882\u0003\u0002\u0002\u0002\u01d8\u188a\u0003\u0002\u0002\u0002", + "\u01da\u18ab\u0003\u0002\u0002\u0002\u01dc\u18b3\u0003\u0002\u0002\u0002", + "\u01de\u18ce\u0003\u0002\u0002\u0002\u01e0\u18e6\u0003\u0002\u0002\u0002", + "\u01e2\u1906\u0003\u0002\u0002\u0002\u01e4\u1924\u0003\u0002\u0002\u0002", + "\u01e6\u193b\u0003\u0002\u0002\u0002\u01e8\u1949\u0003\u0002\u0002\u0002", + "\u01ea\u194b\u0003\u0002\u0002\u0002\u01ec\u196a\u0003\u0002\u0002\u0002", + "\u01ee\u1978\u0003\u0002\u0002\u0002\u01f0\u1998\u0003\u0002\u0002\u0002", + "\u01f2\u19ae\u0003\u0002\u0002\u0002\u01f4\u19cc\u0003\u0002\u0002\u0002", + "\u01f6\u19ce\u0003\u0002\u0002\u0002\u01f8\u1a01\u0003\u0002\u0002\u0002", + "\u01fa\u1a2f\u0003\u0002\u0002\u0002\u01fc\u1a42\u0003\u0002\u0002\u0002", + "\u01fe\u1a44\u0003\u0002\u0002\u0002\u0200\u1a5d\u0003\u0002\u0002\u0002", + "\u0202\u1a5f\u0003\u0002\u0002\u0002\u0204\u1a67\u0003\u0002\u0002\u0002", + "\u0206\u1a69\u0003\u0002\u0002\u0002\u0208\u1af5\u0003\u0002\u0002\u0002", + "\u020a\u1afd\u0003\u0002\u0002\u0002\u020c\u1aff\u0003\u0002\u0002\u0002", + "\u020e\u1b01\u0003\u0002\u0002\u0002\u0210\u1b03\u0003\u0002\u0002\u0002", + "\u0212\u1b11\u0003\u0002\u0002\u0002\u0214\u1b17\u0003\u0002\u0002\u0002", + "\u0216\u1b19\u0003\u0002\u0002\u0002\u0218\u1b1b\u0003\u0002\u0002\u0002", + "\u021a\u1b20\u0003\u0002\u0002\u0002\u021c\u1b22\u0003\u0002\u0002\u0002", + "\u021e\u1b26\u0003\u0002\u0002\u0002\u0220\u1b32\u0003\u0002\u0002\u0002", + "\u0222\u1b34\u0003\u0002\u0002\u0002\u0224\u1b37\u0003\u0002\u0002\u0002", + "\u0226\u1b3a\u0003\u0002\u0002\u0002\u0228\u1b3c\u0003\u0002\u0002\u0002", + "\u022a\u1b3e\u0003\u0002\u0002\u0002\u022c\u1b40\u0003\u0002\u0002\u0002", + "\u022e\u1b5d\u0003\u0002\u0002\u0002\u0230\u1b5f\u0003\u0002\u0002\u0002", + "\u0232\u1b6a\u0003\u0002\u0002\u0002\u0234\u1b6d\u0003\u0002\u0002\u0002", + "\u0236\u1b76\u0003\u0002\u0002\u0002\u0238\u1b7e\u0003\u0002\u0002\u0002", + "\u023a\u1b85\u0003\u0002\u0002\u0002\u023c\u1b9c\u0003\u0002\u0002\u0002", + "\u023e\u1b9e\u0003\u0002\u0002\u0002\u0240\u1ba9\u0003\u0002\u0002\u0002", + "\u0242\u1bab\u0003\u0002\u0002\u0002\u0244\u1bc6\u0003\u0002\u0002\u0002", + "\u0246\u1bcd\u0003\u0002\u0002\u0002\u0248\u1bd3\u0003\u0002\u0002\u0002", + "\u024a\u1be6\u0003\u0002\u0002\u0002\u024c\u1be8\u0003\u0002\u0002\u0002", + "\u024e\u1bf9\u0003\u0002\u0002\u0002\u0250\u1c10\u0003\u0002\u0002\u0002", + "\u0252\u1c21\u0003\u0002\u0002\u0002\u0254\u1c32\u0003\u0002\u0002\u0002", + "\u0256\u1c3c\u0003\u0002\u0002\u0002\u0258\u1c4d\u0003\u0002\u0002\u0002", + "\u025a\u1c5e\u0003\u0002\u0002\u0002\u025c\u1c68\u0003\u0002\u0002\u0002", + "\u025e\u1c6a\u0003\u0002\u0002\u0002\u0260\u1c71\u0003\u0002\u0002\u0002", + "\u0262\u1cad\u0003\u0002\u0002\u0002\u0264\u1ccc\u0003\u0002\u0002\u0002", + "\u0266\u1cce\u0003\u0002\u0002\u0002\u0268\u1dc8\u0003\u0002\u0002\u0002", + "\u026a\u1eb6\u0003\u0002\u0002\u0002\u026c\u1ede\u0003\u0002\u0002\u0002", + "\u026e\u1eeb\u0003\u0002\u0002\u0002\u0270\u1ef9\u0003\u0002\u0002\u0002", + "\u0272\u1f01\u0003\u0002\u0002\u0002\u0274\u1f07\u0003\u0002\u0002\u0002", + "\u0276\u1f0e\u0003\u0002\u0002\u0002\u0278\u1f12\u0003\u0002\u0002\u0002", + "\u027a\u1f3f\u0003\u0002\u0002\u0002\u027c\u1f43\u0003\u0002\u0002\u0002", + "\u027e\u1f50\u0003\u0002\u0002\u0002\u0280\u1f8d\u0003\u0002\u0002\u0002", + "\u0282\u1f8f\u0003\u0002\u0002\u0002\u0284\u1fb4\u0003\u0002\u0002\u0002", + "\u0286\u1fb6\u0003\u0002\u0002\u0002\u0288\u1fc6\u0003\u0002\u0002\u0002", + "\u028a\u1fd3\u0003\u0002\u0002\u0002\u028c\u1fe7\u0003\u0002\u0002\u0002", + "\u028e\u1ff4\u0003\u0002\u0002\u0002\u0290\u2019\u0003\u0002\u0002\u0002", + "\u0292\u202a\u0003\u0002\u0002\u0002\u0294\u202c\u0003\u0002\u0002\u0002", + "\u0296\u2039\u0003\u0002\u0002\u0002\u0298\u2052\u0003\u0002\u0002\u0002", + "\u029a\u206e\u0003\u0002\u0002\u0002\u029c\u2097\u0003\u0002\u0002\u0002", + "\u029e\u20ea\u0003\u0002\u0002\u0002\u02a0\u20ec\u0003\u0002\u0002\u0002", + "\u02a2\u20f0\u0003\u0002\u0002\u0002\u02a4\u20f5\u0003\u0002\u0002\u0002", + "\u02a6\u20f9\u0003\u0002\u0002\u0002\u02a8\u20fe\u0003\u0002\u0002\u0002", + "\u02aa\u2103\u0003\u0002\u0002\u0002\u02ac\u2112\u0003\u0002\u0002\u0002", + "\u02ae\u2117\u0003\u0002\u0002\u0002\u02b0\u211b\u0003\u0002\u0002\u0002", + "\u02b2\u2124\u0003\u0002\u0002\u0002\u02b4\u2129\u0003\u0002\u0002\u0002", + "\u02b6\u2131\u0003\u0002\u0002\u0002\u02b8\u2135\u0003\u0002\u0002\u0002", + "\u02ba\u2142\u0003\u0002\u0002\u0002\u02bc\u2144\u0003\u0002\u0002\u0002", + "\u02be\u2171\u0003\u0002\u0002\u0002\u02c0\u217b\u0003\u0002\u0002\u0002", + "\u02c2\u21a6\u0003\u0002\u0002\u0002\u02c4\u21ea\u0003\u0002\u0002\u0002", + "\u02c6\u21f5\u0003\u0002\u0002\u0002\u02c8\u2200\u0003\u0002\u0002\u0002", + "\u02ca\u220c\u0003\u0002\u0002\u0002\u02cc\u2213\u0003\u0002\u0002\u0002", + "\u02ce\u223c\u0003\u0002\u0002\u0002\u02d0\u2247\u0003\u0002\u0002\u0002", + "\u02d2\u2249\u0003\u0002\u0002\u0002\u02d4\u2298\u0003\u0002\u0002\u0002", + "\u02d6\u229c\u0003\u0002\u0002\u0002\u02d8\u22a6\u0003\u0002\u0002\u0002", + "\u02da\u22c2\u0003\u0002\u0002\u0002\u02dc\u22dd\u0003\u0002\u0002\u0002", + "\u02de\u22e3\u0003\u0002\u0002\u0002\u02e0\u22ed\u0003\u0002\u0002\u0002", + "\u02e2\u22f7\u0003\u0002\u0002\u0002\u02e4\u22f9\u0003\u0002\u0002\u0002", + "\u02e6\u2315\u0003\u0002\u0002\u0002\u02e8\u2317\u0003\u0002\u0002\u0002", + "\u02ea\u2333\u0003\u0002\u0002\u0002\u02ec\u2335\u0003\u0002\u0002\u0002", + "\u02ee\u233d\u0003\u0002\u0002\u0002\u02f0\u2345\u0003\u0002\u0002\u0002", + "\u02f2\u234e\u0003\u0002\u0002\u0002\u02f4\u2389\u0003\u0002\u0002\u0002", + "\u02f6\u2390\u0003\u0002\u0002\u0002\u02f8\u239e\u0003\u0002\u0002\u0002", + "\u02fa\u23a7\u0003\u0002\u0002\u0002\u02fc\u23ce\u0003\u0002\u0002\u0002", + "\u02fe\u23de\u0003\u0002\u0002\u0002\u0300\u23e5\u0003\u0002\u0002\u0002", + "\u0302\u23e7\u0003\u0002\u0002\u0002\u0304\u2456\u0003\u0002\u0002\u0002", + "\u0306\u2458\u0003\u0002\u0002\u0002\u0308\u2463\u0003\u0002\u0002\u0002", + "\u030a\u2467\u0003\u0002\u0002\u0002\u030c\u2469\u0003\u0002\u0002\u0002", + "\u030e\u24a2\u0003\u0002\u0002\u0002\u0310\u24a4\u0003\u0002\u0002\u0002", + "\u0312\u24ad\u0003\u0002\u0002\u0002\u0314\u24b5\u0003\u0002\u0002\u0002", + "\u0316\u24c3\u0003\u0002\u0002\u0002\u0318\u24d4\u0003\u0002\u0002\u0002", + "\u031a\u24ea\u0003\u0002\u0002\u0002\u031c\u24f4\u0003\u0002\u0002\u0002", + "\u031e\u24fa\u0003\u0002\u0002\u0002\u0320\u24fc\u0003\u0002\u0002\u0002", + "\u0322\u2509\u0003\u0002\u0002\u0002\u0324\u250b\u0003\u0002\u0002\u0002", + "\u0326\u2543\u0003\u0002\u0002\u0002\u0328\u2545\u0003\u0002\u0002\u0002", + "\u032a\u2556\u0003\u0002\u0002\u0002\u032c\u255e\u0003\u0002\u0002\u0002", + "\u032e\u2563\u0003\u0002\u0002\u0002\u0330\u258d\u0003\u0002\u0002\u0002", + "\u0332\u258f\u0003\u0002\u0002\u0002\u0334\u2597\u0003\u0002\u0002\u0002", + "\u0336\u25a1\u0003\u0002\u0002\u0002\u0338\u25a9\u0003\u0002\u0002\u0002", + "\u033a\u25c7\u0003\u0002\u0002\u0002\u033c\u25c9\u0003\u0002\u0002\u0002", + "\u033e\u25d7\u0003\u0002\u0002\u0002\u0340\u266b\u0003\u0002\u0002\u0002", + "\u0342\u2672\u0003\u0002\u0002\u0002\u0344\u269f\u0003\u0002\u0002\u0002", + "\u0346\u26b7\u0003\u0002\u0002\u0002\u0348\u26b9\u0003\u0002\u0002\u0002", + "\u034a\u26c0\u0003\u0002\u0002\u0002\u034c\u26c7\u0003\u0002\u0002\u0002", + "\u034e\u26ce\u0003\u0002\u0002\u0002\u0350\u26d3\u0003\u0002\u0002\u0002", + "\u0352\u26d9\u0003\u0002\u0002\u0002\u0354\u26de\u0003\u0002\u0002\u0002", + "\u0356\u26e2\u0003\u0002\u0002\u0002\u0358\u26e7\u0003\u0002\u0002\u0002", + "\u035a\u26f6\u0003\u0002\u0002\u0002\u035c\u2705\u0003\u0002\u0002\u0002", + "\u035e\u273b\u0003\u0002\u0002\u0002\u0360\u273d\u0003\u0002\u0002\u0002", + "\u0362\u274a\u0003\u0002\u0002\u0002\u0364\u274c\u0003\u0002\u0002\u0002", + "\u0366\u275a\u0003\u0002\u0002\u0002\u0368\u276c\u0003\u0002\u0002\u0002", + "\u036a\u278e\u0003\u0002\u0002\u0002\u036c\u27a4\u0003\u0002\u0002\u0002", + "\u036e\u27a7\u0003\u0002\u0002\u0002\u0370\u27ab\u0003\u0002\u0002\u0002", + "\u0372\u27ba\u0003\u0002\u0002\u0002\u0374\u27c3\u0003\u0002\u0002\u0002", + "\u0376\u27c7\u0003\u0002\u0002\u0002\u0378\u27cf\u0003\u0002\u0002\u0002", + "\u037a\u27d5\u0003\u0002\u0002\u0002\u037c\u27f9\u0003\u0002\u0002\u0002", + "\u037e\u27fb\u0003\u0002\u0002\u0002\u0380\u2808\u0003\u0002\u0002\u0002", + "\u0382\u280a\u0003\u0002\u0002\u0002\u0384\u281f\u0003\u0002\u0002\u0002", + "\u0386\u285d\u0003\u0002\u0002\u0002\u0388\u2866\u0003\u0002\u0002\u0002", + "\u038a\u286d\u0003\u0002\u0002\u0002\u038c\u2880\u0003\u0002\u0002\u0002", + "\u038e\u289e\u0003\u0002\u0002\u0002\u0390\u28a3\u0003\u0002\u0002\u0002", + "\u0392\u28aa\u0003\u0002\u0002\u0002\u0394\u28b9\u0003\u0002\u0002\u0002", + "\u0396\u28c8\u0003\u0002\u0002\u0002\u0398\u28cc\u0003\u0002\u0002\u0002", + "\u039a\u28fe\u0003\u0002\u0002\u0002\u039c\u2900\u0003\u0002\u0002\u0002", + "\u039e\u290e\u0003\u0002\u0002\u0002\u03a0\u2918\u0003\u0002\u0002\u0002", + "\u03a2\u291a\u0003\u0002\u0002\u0002\u03a4\u291c\u0003\u0002\u0002\u0002", + "\u03a6\u291f\u0003\u0002\u0002\u0002\u03a8\u292a\u0003\u0002\u0002\u0002", + "\u03aa\u2931\u0003\u0002\u0002\u0002\u03ac\u2933\u0003\u0002\u0002\u0002", + "\u03ae\u293f\u0003\u0002\u0002\u0002\u03b0\u296f\u0003\u0002\u0002\u0002", + "\u03b2\u2973\u0003\u0002\u0002\u0002\u03b4\u2975\u0003\u0002\u0002\u0002", + "\u03b6\u298a\u0003\u0002\u0002\u0002\u03b8\u2999\u0003\u0002\u0002\u0002", + "\u03ba\u29a9\u0003\u0002\u0002\u0002\u03bc\u29ab\u0003\u0002\u0002\u0002", + "\u03be\u29cf\u0003\u0002\u0002\u0002\u03c0\u29d4\u0003\u0002\u0002\u0002", + "\u03c2\u29e5\u0003\u0002\u0002\u0002\u03c4\u29e7\u0003\u0002\u0002\u0002", + "\u03c6\u29ec\u0003\u0002\u0002\u0002\u03c8\u29ee\u0003\u0002\u0002\u0002", + "\u03ca\u29ff\u0003\u0002\u0002\u0002\u03cc\u2a01\u0003\u0002\u0002\u0002", + "\u03ce\u2a03\u0003\u0002\u0002\u0002\u03d0\u03d2\u0005\u0004\u0003\u0002", + "\u03d1\u03d0\u0003\u0002\u0002\u0002\u03d2\u03d5\u0003\u0002\u0002\u0002", + "\u03d3\u03d1\u0003\u0002\u0002\u0002\u03d3\u03d4\u0003\u0002\u0002\u0002", + "\u03d4\u03d6\u0003\u0002\u0002\u0002\u03d5\u03d3\u0003\u0002\u0002\u0002", + "\u03d6\u03d7\u0007\u0002\u0002\u0003\u03d7\u0003\u0003\u0002\u0002\u0002", + "\u03d8\u03dc\u0005\u027a\u013e\u0002\u03d9\u03db\u0005\u02a0\u0151\u0002", + "\u03da\u03d9\u0003\u0002\u0002\u0002\u03db\u03de\u0003\u0002\u0002\u0002", + "\u03dc\u03da\u0003\u0002\u0002\u0002\u03dc\u03dd\u0003\u0002\u0002\u0002", + "\u03dd\u03ea\u0003\u0002\u0002\u0002\u03de\u03dc\u0003\u0002\u0002\u0002", + "\u03df\u03e1\u0005\u027a\u013e\u0002\u03e0\u03df\u0003\u0002\u0002\u0002", + "\u03e0\u03e1\u0003\u0002\u0002\u0002\u03e1\u03e2\u0003\u0002\u0002\u0002", + "\u03e2\u03e6\u0005\u0006\u0004\u0002\u03e3\u03e5\u0005\u02a0\u0151\u0002", + "\u03e4\u03e3\u0003\u0002\u0002\u0002\u03e5\u03e8\u0003\u0002\u0002\u0002", + "\u03e6\u03e4\u0003\u0002\u0002\u0002\u03e6\u03e7\u0003\u0002\u0002\u0002", + "\u03e7\u03ea\u0003\u0002\u0002\u0002\u03e8\u03e6\u0003\u0002\u0002\u0002", + "\u03e9\u03d8\u0003\u0002\u0002\u0002\u03e9\u03e0\u0003\u0002\u0002\u0002", + "\u03ea\u0005\u0003\u0002\u0002\u0002\u03eb\u03ed\u0005\b\u0005\u0002", + "\u03ec\u03ee\u0007\u033f\u0002\u0002\u03ed\u03ec\u0003\u0002\u0002\u0002", + "\u03ed\u03ee\u0003\u0002\u0002\u0002\u03ee\u03f0\u0003\u0002\u0002\u0002", + "\u03ef\u03eb\u0003\u0002\u0002\u0002\u03f0\u03f1\u0003\u0002\u0002\u0002", + "\u03f1\u03ef\u0003\u0002\u0002\u0002\u03f1\u03f2\u0003\u0002\u0002\u0002", + "\u03f2\u0007\u0003\u0002\u0002\u0002\u03f3\u03fb\u0005\n\u0006\u0002", + "\u03f4\u03fb\u0005\f\u0007\u0002\u03f5\u03fb\u0005\u0010\t\u0002\u03f6", + "\u03fb\u0005\u02aa\u0156\u0002\u03f7\u03fb\u00050\u0019\u0002\u03f8", + "\u03fb\u00052\u001a\u0002\u03f9\u03fb\u0005\u000e\b\u0002\u03fa\u03f3", + "\u0003\u0002\u0002\u0002\u03fa\u03f4\u0003\u0002\u0002\u0002\u03fa\u03f5", + "\u0003\u0002\u0002\u0002\u03fa\u03f6\u0003\u0002\u0002\u0002\u03fa\u03f7", + "\u0003\u0002\u0002\u0002\u03fa\u03f8\u0003\u0002\u0002\u0002\u03fa\u03f9", + "\u0003\u0002\u0002\u0002\u03fb\t\u0003\u0002\u0002\u0002\u03fc\u0402", + "\u0005\u01ae\u00d8\u0002\u03fd\u0402\u0005\u01b4\u00db\u0002\u03fe\u0402", + "\u0005\u01b8\u00dd\u0002\u03ff\u0402\u0005\u01be\u00e0\u0002\u0400\u0402", + "\u0005\u01c2\u00e2\u0002\u0401\u03fc\u0003\u0002\u0002\u0002\u0401\u03fd", + "\u0003\u0002\u0002\u0002\u0401\u03fe\u0003\u0002\u0002\u0002\u0401\u03ff", + "\u0003\u0002\u0002\u0002\u0401\u0400\u0003\u0002\u0002\u0002\u0402\u000b", + "\u0003\u0002\u0002\u0002\u0403\u04a3\u00054\u001b\u0002\u0404\u04a3", + "\u0005<\u001f\u0002\u0405\u04a3\u0005v<\u0002\u0406\u04a3\u0005\u0084", + "C\u0002\u0407\u04a3\u0005\u0090I\u0002\u0408\u04a3\u0005\u0092J\u0002", + "\u0409\u04a3\u0005\u008eH\u0002\u040a\u04a3\u0005\u009eP\u0002\u040b", + "\u04a3\u0005\u00a8U\u0002\u040c\u04a3\u0005\u00aaV\u0002\u040d\u04a3", + "\u0005\u0116\u008c\u0002\u040e\u04a3\u0005\u011a\u008e\u0002\u040f\u04a3", + "\u0005\u01f8\u00fd\u0002\u0410\u04a3\u0005\u015c\u00af\u0002\u0411\u04a3", + "\u0005\u0206\u0104\u0002\u0412\u04a3\u0005\u0120\u0091\u0002\u0413\u04a3", + "\u0005\u0128\u0095\u0002\u0414\u04a3\u0005\u012a\u0096\u0002\u0415\u04a3", + "\u0005\u012e\u0098\u0002\u0416\u04a3\u0005\u0132\u009a\u0002\u0417\u04a3", + "\u0005\u0136\u009c\u0002\u0418\u04a3\u0005\u013e\u00a0\u0002\u0419\u04a3", + "\u0005\u0142\u00a2\u0002\u041a\u04a3\u0005\u013a\u009e\u0002\u041b\u04a3", + "\u0005\u014a\u00a6\u0002\u041c\u04a3\u0005\u0146\u00a4\u0002\u041d\u04a3", + "\u0005\u014e\u00a8\u0002\u041e\u04a3\u0005\u0150\u00a9\u0002\u041f\u04a3", + "\u0005\u0152\u00aa\u0002\u0420\u04a3\u0005\u0154\u00ab\u0002\u0421\u04a3", + "\u0005\u015a\u00ae\u0002\u0422\u04a3\u0005\u016a\u00b6\u0002\u0423\u04a3", + "\u0005\u0164\u00b3\u0002\u0424\u04a3\u0005\u0170\u00b9\u0002\u0425\u04a3", + "\u0005\u0174\u00bb\u0002\u0426\u04a3\u0005\u0178\u00bd\u0002\u0427\u04a3", + "\u0005\u017c\u00bf\u0002\u0428\u04a3\u0005\u017e\u00c0\u0002\u0429\u04a3", + "\u0005\u0182\u00c2\u0002\u042a\u04a3\u0005\u0184\u00c3\u0002\u042b\u04a3", + "\u0005\u0188\u00c5\u0002\u042c\u04a3\u0005\u018a\u00c6\u0002\u042d\u04a3", + "\u0005\u01f6\u00fc\u0002\u042e\u04a3\u0005\u0190\u00c9\u0002\u042f\u04a3", + "\u0005\u0196\u00cc\u0002\u0430\u04a3\u0005\u0198\u00cd\u0002\u0431\u04a3", + "\u00056\u001c\u0002\u0432\u04a3\u0005r:\u0002\u0433\u04a3\u0005\u0080", + "A\u0002\u0434\u04a3\u0005\u00acW\u0002\u0435\u04a3\u0005\u0114\u008b", + "\u0002\u0436\u04a3\u0005\u0118\u008d\u0002\u0437\u04a3\u0005\u011c\u008f", + "\u0002\u0438\u04a3\u0005\u01ca\u00e6\u0002\u0439\u04a3\u0005\u015e\u00b0", + "\u0002\u043a\u04a3\u0005\u011e\u0090\u0002\u043b\u04a3\u0005\u012c\u0097", + "\u0002\u043c\u04a3\u0005\u0130\u0099\u0002\u043d\u04a3\u0005\u0134\u009b", + "\u0002\u043e\u04a3\u0005\u0138\u009d\u0002\u043f\u04a3\u0005\u01cc\u00e7", + "\u0002\u0440\u04a3\u0005\u0140\u00a1\u0002\u0441\u04a3\u0005\u0144\u00a3", + "\u0002\u0442\u04a3\u0005\u013c\u009f\u0002\u0443\u04a3\u0005\u014c\u00a7", + "\u0002\u0444\u04a3\u0005\u0148\u00a5\u0002\u0445\u04a3\u0005\u00a4S", + "\u0002\u0446\u04a3\u0005\u01dc\u00ef\u0002\u0447\u04a3\u0005\u01ce\u00e8", + "\u0002\u0448\u04a3\u0005\u01d0\u00e9\u0002\u0449\u04a3\u0005\u0156\u00ac", + "\u0002\u044a\u04a3\u0005\u0158\u00ad\u0002\u044b\u04a3\u0005\u0160\u00b1", + "\u0002\u044c\u04a3\u0005\u0162\u00b2\u0002\u044d\u04a3\u0005\u0166\u00b4", + "\u0002\u044e\u04a3\u0005\u0168\u00b5\u0002\u044f\u04a3\u0005\u016c\u00b7", + "\u0002\u0450\u04a3\u0005\u016e\u00b8\u0002\u0451\u04a3\u0005\u0172\u00ba", + "\u0002\u0452\u04a3\u0005\u0176\u00bc\u0002\u0453\u04a3\u0005\u017a\u00be", + "\u0002\u0454\u04a3\u0005\u0180\u00c1\u0002\u0455\u04a3\u0005\u0186\u00c4", + "\u0002\u0456\u04a3\u0005\u01ea\u00f6\u0002\u0457\u04a3\u0005\u018c\u00c7", + "\u0002\u0458\u04a3\u0005\u018e\u00c8\u0002\u0459\u04a3\u0005\u01ee\u00f8", + "\u0002\u045a\u04a3\u0005\u0258\u012d\u0002\u045b\u04a3\u0005\u0192\u00ca", + "\u0002\u045c\u04a3\u0005\u0194\u00cb\u0002\u045d\u04a3\u0005\u01f2\u00fa", + "\u0002\u045e\u04a3\u0005\u019a\u00ce\u0002\u045f\u04a3\u0005\u019c\u00cf", + "\u0002\u0460\u04a3\u00058\u001d\u0002\u0461\u04a3\u0005:\u001e\u0002", + "\u0462\u04a3\u0005t;\u0002\u0463\u04a3\u0005\u0082B\u0002\u0464\u04a3", + "\u0005\u009cO\u0002\u0465\u04a3\u0005\u00a6T\u0002\u0466\u04a3\u0005", + "\u00aeX\u0002\u0467\u04a3\u0005\u00b0Y\u0002\u0468\u04a3\u0005\u00b2", + "Z\u0002\u0469\u04a3\u0005\u00b4[\u0002\u046a\u04a3\u0005\u00b6\\\u0002", + "\u046b\u04a3\u0005\u00b8]\u0002\u046c\u04a3\u0005\u00ba^\u0002\u046d", + "\u04a3\u0005\u00bc_\u0002\u046e\u04a3\u0005\u00be`\u0002\u046f\u04a3", + "\u0005\u00e8u\u0002\u0470\u04a3\u0005\u00c0a\u0002\u0471\u04a3\u0005", + "\u00c2b\u0002\u0472\u04a3\u0005\u00ceh\u0002\u0473\u04a3\u0005\u00d0", + "i\u0002\u0474\u04a3\u0005\u00c4c\u0002\u0475\u04a3\u0005\u00c6d\u0002", + "\u0476\u04a3\u0005\u00c8e\u0002\u0477\u04a3\u0005\u00caf\u0002\u0478", + "\u04a3\u0005\u00ccg\u0002\u0479\u04a3\u0005\u00d2j\u0002\u047a\u04a3", + "\u0005\u00d4k\u0002\u047b\u04a3\u0005\u00d6l\u0002\u047c\u04a3\u0005", + "\u0250\u0129\u0002\u047d\u04a3\u0005\u0242\u0122\u0002\u047e\u04a3\u0005", + "\u00d8m\u0002\u047f\u04a3\u0005\u00dan\u0002\u0480\u04a3\u0005\u00dc", + "o\u0002\u0481\u04a3\u0005\u00dep\u0002\u0482\u04a3\u0005\u00e0q\u0002", + "\u0483\u04a3\u0005\u0248\u0125\u0002\u0484\u04a3\u0005\u00e2r\u0002", + "\u0485\u04a3\u0005\u00e4s\u0002\u0486\u04a3\u0005\u00e6t\u0002\u0487", + "\u04a3\u0005\u00eav\u0002\u0488\u04a3\u0005\u00ecw\u0002\u0489\u04a3", + "\u0005\u00eex\u0002\u048a\u04a3\u0005\u00f0y\u0002\u048b\u04a3\u0005", + "\u00f2z\u0002\u048c\u04a3\u0005\u00f4{\u0002\u048d\u04a3\u0005\u00f6", + "|\u0002\u048e\u04a3\u0005\u00f8}\u0002\u048f\u04a3\u0005\u00fa~\u0002", + "\u0490\u04a3\u0005\u00fc\u007f\u0002\u0491\u04a3\u0005\u00fe\u0080\u0002", + "\u0492\u04a3\u0005\u0252\u012a\u0002\u0493\u04a3\u0005\u0100\u0081\u0002", + "\u0494\u04a3\u0005\u0102\u0082\u0002\u0495\u04a3\u0005\u0104\u0083\u0002", + "\u0496\u04a3\u0005\u0254\u012b\u0002\u0497\u04a3\u0005\u024a\u0126\u0002", + "\u0498\u04a3\u0005\u025a\u012e\u0002\u0499\u04a3\u0005\u0106\u0084\u0002", + "\u049a\u04a3\u0005\u0256\u012c\u0002\u049b\u04a3\u0005\u0108\u0085\u0002", + "\u049c\u04a3\u0005\u010a\u0086\u0002\u049d\u04a3\u0005\u010c\u0087\u0002", + "\u049e\u04a3\u0005\u010e\u0088\u0002\u049f\u04a3\u0005\u0110\u0089\u0002", + "\u04a0\u04a3\u0005\u0112\u008a\u0002\u04a1\u04a3\u0005\u01ec\u00f7\u0002", + "\u04a2\u0403\u0003\u0002\u0002\u0002\u04a2\u0404\u0003\u0002\u0002\u0002", + "\u04a2\u0405\u0003\u0002\u0002\u0002\u04a2\u0406\u0003\u0002\u0002\u0002", + "\u04a2\u0407\u0003\u0002\u0002\u0002\u04a2\u0408\u0003\u0002\u0002\u0002", + "\u04a2\u0409\u0003\u0002\u0002\u0002\u04a2\u040a\u0003\u0002\u0002\u0002", + "\u04a2\u040b\u0003\u0002\u0002\u0002\u04a2\u040c\u0003\u0002\u0002\u0002", + "\u04a2\u040d\u0003\u0002\u0002\u0002\u04a2\u040e\u0003\u0002\u0002\u0002", + "\u04a2\u040f\u0003\u0002\u0002\u0002\u04a2\u0410\u0003\u0002\u0002\u0002", + "\u04a2\u0411\u0003\u0002\u0002\u0002\u04a2\u0412\u0003\u0002\u0002\u0002", + "\u04a2\u0413\u0003\u0002\u0002\u0002\u04a2\u0414\u0003\u0002\u0002\u0002", + "\u04a2\u0415\u0003\u0002\u0002\u0002\u04a2\u0416\u0003\u0002\u0002\u0002", + "\u04a2\u0417\u0003\u0002\u0002\u0002\u04a2\u0418\u0003\u0002\u0002\u0002", + "\u04a2\u0419\u0003\u0002\u0002\u0002\u04a2\u041a\u0003\u0002\u0002\u0002", + "\u04a2\u041b\u0003\u0002\u0002\u0002\u04a2\u041c\u0003\u0002\u0002\u0002", + "\u04a2\u041d\u0003\u0002\u0002\u0002\u04a2\u041e\u0003\u0002\u0002\u0002", + "\u04a2\u041f\u0003\u0002\u0002\u0002\u04a2\u0420\u0003\u0002\u0002\u0002", + "\u04a2\u0421\u0003\u0002\u0002\u0002\u04a2\u0422\u0003\u0002\u0002\u0002", + "\u04a2\u0423\u0003\u0002\u0002\u0002\u04a2\u0424\u0003\u0002\u0002\u0002", + "\u04a2\u0425\u0003\u0002\u0002\u0002\u04a2\u0426\u0003\u0002\u0002\u0002", + "\u04a2\u0427\u0003\u0002\u0002\u0002\u04a2\u0428\u0003\u0002\u0002\u0002", + "\u04a2\u0429\u0003\u0002\u0002\u0002\u04a2\u042a\u0003\u0002\u0002\u0002", + "\u04a2\u042b\u0003\u0002\u0002\u0002\u04a2\u042c\u0003\u0002\u0002\u0002", + "\u04a2\u042d\u0003\u0002\u0002\u0002\u04a2\u042e\u0003\u0002\u0002\u0002", + "\u04a2\u042f\u0003\u0002\u0002\u0002\u04a2\u0430\u0003\u0002\u0002\u0002", + "\u04a2\u0431\u0003\u0002\u0002\u0002\u04a2\u0432\u0003\u0002\u0002\u0002", + "\u04a2\u0433\u0003\u0002\u0002\u0002\u04a2\u0434\u0003\u0002\u0002\u0002", + "\u04a2\u0435\u0003\u0002\u0002\u0002\u04a2\u0436\u0003\u0002\u0002\u0002", + "\u04a2\u0437\u0003\u0002\u0002\u0002\u04a2\u0438\u0003\u0002\u0002\u0002", + "\u04a2\u0439\u0003\u0002\u0002\u0002\u04a2\u043a\u0003\u0002\u0002\u0002", + "\u04a2\u043b\u0003\u0002\u0002\u0002\u04a2\u043c\u0003\u0002\u0002\u0002", + "\u04a2\u043d\u0003\u0002\u0002\u0002\u04a2\u043e\u0003\u0002\u0002\u0002", + "\u04a2\u043f\u0003\u0002\u0002\u0002\u04a2\u0440\u0003\u0002\u0002\u0002", + "\u04a2\u0441\u0003\u0002\u0002\u0002\u04a2\u0442\u0003\u0002\u0002\u0002", + "\u04a2\u0443\u0003\u0002\u0002\u0002\u04a2\u0444\u0003\u0002\u0002\u0002", + "\u04a2\u0445\u0003\u0002\u0002\u0002\u04a2\u0446\u0003\u0002\u0002\u0002", + "\u04a2\u0447\u0003\u0002\u0002\u0002\u04a2\u0448\u0003\u0002\u0002\u0002", + "\u04a2\u0449\u0003\u0002\u0002\u0002\u04a2\u044a\u0003\u0002\u0002\u0002", + "\u04a2\u044b\u0003\u0002\u0002\u0002\u04a2\u044c\u0003\u0002\u0002\u0002", + "\u04a2\u044d\u0003\u0002\u0002\u0002\u04a2\u044e\u0003\u0002\u0002\u0002", + "\u04a2\u044f\u0003\u0002\u0002\u0002\u04a2\u0450\u0003\u0002\u0002\u0002", + "\u04a2\u0451\u0003\u0002\u0002\u0002\u04a2\u0452\u0003\u0002\u0002\u0002", + "\u04a2\u0453\u0003\u0002\u0002\u0002\u04a2\u0454\u0003\u0002\u0002\u0002", + "\u04a2\u0455\u0003\u0002\u0002\u0002\u04a2\u0456\u0003\u0002\u0002\u0002", + "\u04a2\u0457\u0003\u0002\u0002\u0002\u04a2\u0458\u0003\u0002\u0002\u0002", + "\u04a2\u0459\u0003\u0002\u0002\u0002\u04a2\u045a\u0003\u0002\u0002\u0002", + "\u04a2\u045b\u0003\u0002\u0002\u0002\u04a2\u045c\u0003\u0002\u0002\u0002", + "\u04a2\u045d\u0003\u0002\u0002\u0002\u04a2\u045e\u0003\u0002\u0002\u0002", + "\u04a2\u045f\u0003\u0002\u0002\u0002\u04a2\u0460\u0003\u0002\u0002\u0002", + "\u04a2\u0461\u0003\u0002\u0002\u0002\u04a2\u0462\u0003\u0002\u0002\u0002", + "\u04a2\u0463\u0003\u0002\u0002\u0002\u04a2\u0464\u0003\u0002\u0002\u0002", + "\u04a2\u0465\u0003\u0002\u0002\u0002\u04a2\u0466\u0003\u0002\u0002\u0002", + "\u04a2\u0467\u0003\u0002\u0002\u0002\u04a2\u0468\u0003\u0002\u0002\u0002", + "\u04a2\u0469\u0003\u0002\u0002\u0002\u04a2\u046a\u0003\u0002\u0002\u0002", + "\u04a2\u046b\u0003\u0002\u0002\u0002\u04a2\u046c\u0003\u0002\u0002\u0002", + "\u04a2\u046d\u0003\u0002\u0002\u0002\u04a2\u046e\u0003\u0002\u0002\u0002", + "\u04a2\u046f\u0003\u0002\u0002\u0002\u04a2\u0470\u0003\u0002\u0002\u0002", + "\u04a2\u0471\u0003\u0002\u0002\u0002\u04a2\u0472\u0003\u0002\u0002\u0002", + "\u04a2\u0473\u0003\u0002\u0002\u0002\u04a2\u0474\u0003\u0002\u0002\u0002", + "\u04a2\u0475\u0003\u0002\u0002\u0002\u04a2\u0476\u0003\u0002\u0002\u0002", + "\u04a2\u0477\u0003\u0002\u0002\u0002\u04a2\u0478\u0003\u0002\u0002\u0002", + "\u04a2\u0479\u0003\u0002\u0002\u0002\u04a2\u047a\u0003\u0002\u0002\u0002", + "\u04a2\u047b\u0003\u0002\u0002\u0002\u04a2\u047c\u0003\u0002\u0002\u0002", + "\u04a2\u047d\u0003\u0002\u0002\u0002\u04a2\u047e\u0003\u0002\u0002\u0002", + "\u04a2\u047f\u0003\u0002\u0002\u0002\u04a2\u0480\u0003\u0002\u0002\u0002", + "\u04a2\u0481\u0003\u0002\u0002\u0002\u04a2\u0482\u0003\u0002\u0002\u0002", + "\u04a2\u0483\u0003\u0002\u0002\u0002\u04a2\u0484\u0003\u0002\u0002\u0002", + "\u04a2\u0485\u0003\u0002\u0002\u0002\u04a2\u0486\u0003\u0002\u0002\u0002", + "\u04a2\u0487\u0003\u0002\u0002\u0002\u04a2\u0488\u0003\u0002\u0002\u0002", + "\u04a2\u0489\u0003\u0002\u0002\u0002\u04a2\u048a\u0003\u0002\u0002\u0002", + "\u04a2\u048b\u0003\u0002\u0002\u0002\u04a2\u048c\u0003\u0002\u0002\u0002", + "\u04a2\u048d\u0003\u0002\u0002\u0002\u04a2\u048e\u0003\u0002\u0002\u0002", + "\u04a2\u048f\u0003\u0002\u0002\u0002\u04a2\u0490\u0003\u0002\u0002\u0002", + "\u04a2\u0491\u0003\u0002\u0002\u0002\u04a2\u0492\u0003\u0002\u0002\u0002", + "\u04a2\u0493\u0003\u0002\u0002\u0002\u04a2\u0494\u0003\u0002\u0002\u0002", + "\u04a2\u0495\u0003\u0002\u0002\u0002\u04a2\u0496\u0003\u0002\u0002\u0002", + "\u04a2\u0497\u0003\u0002\u0002\u0002\u04a2\u0498\u0003\u0002\u0002\u0002", + "\u04a2\u0499\u0003\u0002\u0002\u0002\u04a2\u049a\u0003\u0002\u0002\u0002", + "\u04a2\u049b\u0003\u0002\u0002\u0002\u04a2\u049c\u0003\u0002\u0002\u0002", + "\u04a2\u049d\u0003\u0002\u0002\u0002\u04a2\u049e\u0003\u0002\u0002\u0002", + "\u04a2\u049f\u0003\u0002\u0002\u0002\u04a2\u04a0\u0003\u0002\u0002\u0002", + "\u04a2\u04a1\u0003\u0002\u0002\u0002\u04a3\r\u0003\u0002\u0002\u0002", + "\u04a4\u04aa\u0005\u0266\u0134\u0002\u04a5\u04aa\u0005\u0268\u0135\u0002", + "\u04a6\u04aa\u0005\u026a\u0136\u0002\u04a7\u04aa\u0005\u026c\u0137\u0002", + "\u04a8\u04aa\u0005\u026e\u0138\u0002\u04a9\u04a4\u0003\u0002\u0002\u0002", + "\u04a9\u04a5\u0003\u0002\u0002\u0002\u04a9\u04a6\u0003\u0002\u0002\u0002", + "\u04a9\u04a7\u0003\u0002\u0002\u0002\u04a9\u04a8\u0003\u0002\u0002\u0002", + "\u04aa\u000f\u0003\u0002\u0002\u0002\u04ab\u04b8\u0005\u0012\n\u0002", + "\u04ac\u04b8\u0005\u0014\u000b\u0002\u04ad\u04b8\u0005\u0016\f\u0002", + "\u04ae\u04b8\u0005\u0018\r\u0002\u04af\u04b8\u0005\u001c\u000f\u0002", + "\u04b0\u04b8\u0005\u001a\u000e\u0002\u04b1\u04b8\u0005\u001e\u0010\u0002", + "\u04b2\u04b8\u0005&\u0014\u0002\u04b3\u04b8\u0005(\u0015\u0002\u04b4", + "\u04b8\u0005*\u0016\u0002\u04b5\u04b8\u0005,\u0017\u0002\u04b6\u04b8", + "\u0005.\u0018\u0002\u04b7\u04ab\u0003\u0002\u0002\u0002\u04b7\u04ac", + "\u0003\u0002\u0002\u0002\u04b7\u04ad\u0003\u0002\u0002\u0002\u04b7\u04ae", + "\u0003\u0002\u0002\u0002\u04b7\u04af\u0003\u0002\u0002\u0002\u04b7\u04b0", + "\u0003\u0002\u0002\u0002\u04b7\u04b1\u0003\u0002\u0002\u0002\u04b7\u04b2", + "\u0003\u0002\u0002\u0002\u04b7\u04b3\u0003\u0002\u0002\u0002\u04b7\u04b4", + "\u0003\u0002\u0002\u0002\u04b7\u04b5\u0003\u0002\u0002\u0002\u04b7\u04b6", + "\u0003\u0002\u0002\u0002\u04b8\u0011\u0003\u0002\u0002\u0002\u04b9\u04bb", + "\u0007\u001c\u0002\u0002\u04ba\u04bc\u0007\u033f\u0002\u0002\u04bb\u04ba", + "\u0003\u0002\u0002\u0002\u04bb\u04bc\u0003\u0002\u0002\u0002\u04bc\u04be", + "\u0003\u0002\u0002\u0002\u04bd\u04bf\u0005\u0006\u0004\u0002\u04be\u04bd", + "\u0003\u0002\u0002\u0002\u04be\u04bf\u0003\u0002\u0002\u0002\u04bf\u04c0", + "\u0003\u0002\u0002\u0002\u04c0\u04c2\u0007l\u0002\u0002\u04c1\u04c3", + "\u0007\u033f\u0002\u0002\u04c2\u04c1\u0003\u0002\u0002\u0002\u04c2\u04c3", + "\u0003\u0002\u0002\u0002\u04c3\u0013\u0003\u0002\u0002\u0002\u04c4\u04c6", + "\u0007!\u0002\u0002\u04c5\u04c7\u0007\u033f\u0002\u0002\u04c6\u04c5", + "\u0003\u0002\u0002\u0002\u04c6\u04c7\u0003\u0002\u0002\u0002\u04c7\u0015", + "\u0003\u0002\u0002\u0002\u04c8\u04ca\u0007B\u0002\u0002\u04c9\u04cb", + "\u0007\u033f\u0002\u0002\u04ca\u04c9\u0003\u0002\u0002\u0002\u04ca\u04cb", + "\u0003\u0002\u0002\u0002\u04cb\u0017\u0003\u0002\u0002\u0002\u04cc\u04cd", + "\u0007\u008f\u0002\u0002\u04cd\u04cf\u0005\u03c6\u01e4\u0002\u04ce\u04d0", + "\u0007\u033f\u0002\u0002\u04cf\u04ce\u0003\u0002\u0002\u0002\u04cf\u04d0", + "\u0003\u0002\u0002\u0002\u04d0\u04d7\u0003\u0002\u0002\u0002\u04d1\u04d2", + "\u0005\u03c6\u01e4\u0002\u04d2\u04d4\u0007\u0340\u0002\u0002\u04d3\u04d5", + "\u0007\u033f\u0002\u0002\u04d4\u04d3\u0003\u0002\u0002\u0002\u04d4\u04d5", + "\u0003\u0002\u0002\u0002\u04d5\u04d7\u0003\u0002\u0002\u0002\u04d6\u04cc", + "\u0003\u0002\u0002\u0002\u04d6\u04d1\u0003\u0002\u0002\u0002\u04d7\u0019", + "\u0003\u0002\u0002\u0002\u04d8\u04da\u0007\u011a\u0002\u0002\u04d9\u04db", + "\u0005\u02d8\u016d\u0002\u04da\u04d9\u0003\u0002\u0002\u0002\u04da\u04db", + "\u0003\u0002\u0002\u0002\u04db\u04dd\u0003\u0002\u0002\u0002\u04dc\u04de", + "\u0007\u033f\u0002\u0002\u04dd\u04dc\u0003\u0002\u0002\u0002\u04dd\u04de", + "\u0003\u0002\u0002\u0002\u04de\u001b\u0003\u0002\u0002\u0002\u04df\u04e0", + "\u0007\u0099\u0002\u0002\u04e0\u04e1\u0005\u02ee\u0178\u0002\u04e1\u04e4", + "\u0005\b\u0005\u0002\u04e2\u04e3\u0007j\u0002\u0002\u04e3\u04e5\u0005", + "\b\u0005\u0002\u04e4\u04e2\u0003\u0002\u0002\u0002\u04e4\u04e5\u0003", + "\u0002\u0002\u0002\u04e5\u04e7\u0003\u0002\u0002\u0002\u04e6\u04e8\u0007", + "\u033f\u0002\u0002\u04e7\u04e6\u0003\u0002\u0002\u0002\u04e7\u04e8\u0003", + "\u0002\u0002\u0002\u04e8\u001d\u0003\u0002\u0002\u0002\u04e9\u04f0\u0007", + "\u02f3\u0002\u0002\u04ea\u04eb\u0005 \u0011\u0002\u04eb\u04ec\u0007", + "\u033e\u0002\u0002\u04ec\u04ed\u0005\"\u0012\u0002\u04ed\u04ee\u0007", + "\u033e\u0002\u0002\u04ee\u04ef\u0005$\u0013\u0002\u04ef\u04f1\u0003", + "\u0002\u0002\u0002\u04f0\u04ea\u0003\u0002\u0002\u0002\u04f0\u04f1\u0003", + "\u0002\u0002\u0002\u04f1\u04f3\u0003\u0002\u0002\u0002\u04f2\u04f4\u0007", + "\u033f\u0002\u0002\u04f3\u04f2\u0003\u0002\u0002\u0002\u04f3\u04f4\u0003", + "\u0002\u0002\u0002\u04f4\u001f\u0003\u0002\u0002\u0002\u04f5\u04f6\t", + "\u0002\u0002\u0002\u04f6!\u0003\u0002\u0002\u0002\u04f7\u04f8\t\u0003", + "\u0002\u0002\u04f8#\u0003\u0002\u0002\u0002\u04f9\u04fa\t\u0002\u0002", + "\u0002\u04fa%\u0003\u0002\u0002\u0002\u04fb\u04fc\u0007\u001c\u0002", + "\u0002\u04fc\u04fe\u0007\u02fe\u0002\u0002\u04fd\u04ff\u0007\u033f\u0002", + "\u0002\u04fe\u04fd\u0003\u0002\u0002\u0002\u04fe\u04ff\u0003\u0002\u0002", + "\u0002\u04ff\u0501\u0003\u0002\u0002\u0002\u0500\u0502\u0005\u0006\u0004", + "\u0002\u0501\u0500\u0003\u0002\u0002\u0002\u0501\u0502\u0003\u0002\u0002", + "\u0002\u0502\u0503\u0003\u0002\u0002\u0002\u0503\u0504\u0007l\u0002", + "\u0002\u0504\u0506\u0007\u02fe\u0002\u0002\u0505\u0507\u0007\u033f\u0002", + "\u0002\u0506\u0505\u0003\u0002\u0002\u0002\u0506\u0507\u0003\u0002\u0002", + "\u0002\u0507\u0508\u0003\u0002\u0002\u0002\u0508\u0509\u0007\u001c\u0002", + "\u0002\u0509\u050b\u0007\u01af\u0002\u0002\u050a\u050c\u0007\u033f\u0002", + "\u0002\u050b\u050a\u0003\u0002\u0002\u0002\u050b\u050c\u0003\u0002\u0002", + "\u0002\u050c\u050e\u0003\u0002\u0002\u0002\u050d\u050f\u0005\u0006\u0004", + "\u0002\u050e\u050d\u0003\u0002\u0002\u0002\u050e\u050f\u0003\u0002\u0002", + "\u0002\u050f\u0510\u0003\u0002\u0002\u0002\u0510\u0511\u0007l\u0002", + "\u0002\u0511\u0513\u0007\u01af\u0002\u0002\u0512\u0514\u0007\u033f\u0002", + "\u0002\u0513\u0512\u0003\u0002\u0002\u0002\u0513\u0514\u0003\u0002\u0002", + "\u0002\u0514\'\u0003\u0002\u0002\u0002\u0515\u0517\u0007\u0174\u0002", + "\u0002\u0516\u0518\u0005\u01bc\u00df\u0002\u0517\u0516\u0003\u0002\u0002", + "\u0002\u0517\u0518\u0003\u0002\u0002\u0002\u0518\u051a\u0003\u0002\u0002", + "\u0002\u0519\u051b\u0007\u033e\u0002\u0002\u051a\u0519\u0003\u0002\u0002", + "\u0002\u051a\u051b\u0003\u0002\u0002\u0002\u051b\u051e\u0003\u0002\u0002", + "\u0002\u051c\u051d\t\u0004\u0002\u0002\u051d\u051f\u0005\u01c0\u00e1", + "\u0002\u051e\u051c\u0003\u0002\u0002\u0002\u051e\u051f\u0003\u0002\u0002", + "\u0002\u051f\u0521\u0003\u0002\u0002\u0002\u0520\u0522\u0005\u02d8\u016d", + "\u0002\u0521\u0520\u0003\u0002\u0002\u0002\u0521\u0522\u0003\u0002\u0002", + "\u0002\u0522\u0524\u0003\u0002\u0002\u0002\u0523\u0525\u0007\u033f\u0002", + "\u0002\u0524\u0523\u0003\u0002\u0002\u0002\u0524\u0525\u0003\u0002\u0002", + "\u0002\u0525)\u0003\u0002\u0002\u0002\u0526\u0527\u0007\u0177\u0002", + "\u0002\u0527\u0531\u0005\u02ee\u0178\u0002\u0528\u0532\u0005\b\u0005", + "\u0002\u0529\u052b\u0007!\u0002\u0002\u052a\u052c\u0007\u033f\u0002", + "\u0002\u052b\u052a\u0003\u0002\u0002\u0002\u052b\u052c\u0003\u0002\u0002", + "\u0002\u052c\u0532\u0003\u0002\u0002\u0002\u052d\u052f\u0007B\u0002", + "\u0002\u052e\u0530\u0007\u033f\u0002\u0002\u052f\u052e\u0003\u0002\u0002", + "\u0002\u052f\u0530\u0003\u0002\u0002\u0002\u0530\u0532\u0003\u0002\u0002", + "\u0002\u0531\u0528\u0003\u0002\u0002\u0002\u0531\u0529\u0003\u0002\u0002", + "\u0002\u0531\u052d\u0003\u0002\u0002\u0002\u0532+\u0003\u0002\u0002", + "\u0002\u0533\u0536\u0007\u0101\u0002\u0002\u0534\u0537\u0005\u02d8\u016d", + "\u0002\u0535\u0537\u0007\u031e\u0002\u0002\u0536\u0534\u0003\u0002\u0002", + "\u0002\u0536\u0535\u0003\u0002\u0002\u0002\u0537\u053c\u0003\u0002\u0002", + "\u0002\u0538\u0539\u0007\u033e\u0002\u0002\u0539\u053b\u0007\u0321\u0002", + "\u0002\u053a\u0538\u0003\u0002\u0002\u0002\u053b\u053e\u0003\u0002\u0002", + "\u0002\u053c\u053a\u0003\u0002\u0002\u0002\u053c\u053d\u0003\u0002\u0002", + "\u0002\u053d\u0540\u0003\u0002\u0002\u0002\u053e\u053c\u0003\u0002\u0002", + "\u0002\u053f\u0541\u0007\u033f\u0002\u0002\u0540\u053f\u0003\u0002\u0002", + "\u0002\u0540\u0541\u0003\u0002\u0002\u0002\u0541-\u0003\u0002\u0002", + "\u0002\u0542\u0543\u0007\u0108\u0002\u0002\u0543\u0544\u0007\u033c\u0002", + "\u0002\u0544\u0545\t\u0005\u0002\u0002\u0545\u0546\u0007\u033e\u0002", + "\u0002\u0546\u0547\u0005\u02d6\u016c\u0002\u0547\u0548\u0007\u033e\u0002", + "\u0002\u0548\u054d\u0005\u02d6\u016c\u0002\u0549\u054a\u0007\u033e\u0002", + "\u0002\u054a\u054c\u0005\u02d6\u016c\u0002\u054b\u0549\u0003\u0002\u0002", + "\u0002\u054c\u054f\u0003\u0002\u0002\u0002\u054d\u054b\u0003\u0002\u0002", + "\u0002\u054d\u054e\u0003\u0002\u0002\u0002\u054e\u0550\u0003\u0002\u0002", + "\u0002\u054f\u054d\u0003\u0002\u0002\u0002\u0550\u0553\u0007\u033d\u0002", + "\u0002\u0551\u0552\u0007\u0179\u0002\u0002\u0552\u0554\t\u0006\u0002", + "\u0002\u0553\u0551\u0003\u0002\u0002\u0002\u0553\u0554\u0003\u0002\u0002", + "\u0002\u0554\u0556\u0003\u0002\u0002\u0002\u0555\u0557\u0007\u033f\u0002", + "\u0002\u0556\u0555\u0003\u0002\u0002\u0002\u0556\u0557\u0003\u0002\u0002", + "\u0002\u0557\u0563\u0003\u0002\u0002\u0002\u0558\u0559\u0007\u0108\u0002", + "\u0002\u0559\u055a\u0007\u0322\u0002\u0002\u055a\u055f\t\u0007\u0002", + "\u0002\u055b\u055c\u0007\u033e\u0002\u0002\u055c\u055e\t\u0005\u0002", + "\u0002\u055d\u055b\u0003\u0002\u0002\u0002\u055e\u0561\u0003\u0002\u0002", + "\u0002\u055f\u055d\u0003\u0002\u0002\u0002\u055f\u0560\u0003\u0002\u0002", + "\u0002\u0560\u0563\u0003\u0002\u0002\u0002\u0561\u055f\u0003\u0002\u0002", + "\u0002\u0562\u0542\u0003\u0002\u0002\u0002\u0562\u0558\u0003\u0002\u0002", + "\u0002\u0563/\u0003\u0002\u0002\u0002\u0564\u0565\u0007\u033f\u0002", + "\u0002\u05651\u0003\u0002\u0002\u0002\u0566\u0577\u0005\u0262\u0132", + "\u0002\u0567\u0577\u0005\u0264\u0133\u0002\u0568\u0577\u0005\u01aa\u00d6", + "\u0002\u0569\u0577\u0005\u01a8\u00d5\u0002\u056a\u0577\u0005\u019e\u00d0", + "\u0002\u056b\u0577\u0005\u01a2\u00d2\u0002\u056c\u0577\u0005\u0278\u013d", + "\u0002\u056d\u0577\u0005\u0270\u0139\u0002\u056e\u0577\u0005\u01ac\u00d7", + "\u0002\u056f\u0577\u0005\u0280\u0141\u0002\u0570\u0577\u0005\u029c\u014f", + "\u0002\u0571\u0577\u0005\u029e\u0150\u0002\u0572\u0577\u0005\u02a2\u0152", + "\u0002\u0573\u0577\u0005\u02a4\u0153\u0002\u0574\u0577\u0005\u02a6\u0154", + "\u0002\u0575\u0577\u0005\u02a8\u0155\u0002\u0576\u0566\u0003\u0002\u0002", + "\u0002\u0576\u0567\u0003\u0002\u0002\u0002\u0576\u0568\u0003\u0002\u0002", + "\u0002\u0576\u0569\u0003\u0002\u0002\u0002\u0576\u056a\u0003\u0002\u0002", + "\u0002\u0576\u056b\u0003\u0002\u0002\u0002\u0576\u056c\u0003\u0002\u0002", + "\u0002\u0576\u056d\u0003\u0002\u0002\u0002\u0576\u056e\u0003\u0002\u0002", + "\u0002\u0576\u056f\u0003\u0002\u0002\u0002\u0576\u0570\u0003\u0002\u0002", + "\u0002\u0576\u0571\u0003\u0002\u0002\u0002\u0576\u0572\u0003\u0002\u0002", + "\u0002\u0576\u0573\u0003\u0002\u0002\u0002\u0576\u0574\u0003\u0002\u0002", + "\u0002\u0576\u0575\u0003\u0002\u0002\u0002\u05773\u0003\u0002\u0002", + "\u0002\u0578\u0579\u0007\n\u0002\u0002\u0579\u057a\u0007\u000f\u0002", + "\u0002\u057a\u057b\u0007\u0121\u0002\u0002\u057b\u057c\u0005\u03c6\u01e4", + "\u0002\u057c\u0583\u0007\u0179\u0002\u0002\u057d\u057f\u0007\u033e\u0002", + "\u0002\u057e\u057d\u0003\u0002\u0002\u0002\u057e\u057f\u0003\u0002\u0002", + "\u0002\u057f\u0580\u0003\u0002\u0002\u0002\u0580\u0581\u0007\u025d\u0002", + "\u0002\u0581\u0582\u0007\u032a\u0002\u0002\u0582\u0584\u0005\u03c6\u01e4", + "\u0002\u0583\u057e\u0003\u0002\u0002\u0002\u0583\u0584\u0003\u0002\u0002", + "\u0002\u0584\u058b\u0003\u0002\u0002\u0002\u0585\u0587\u0007\u033e\u0002", + "\u0002\u0586\u0585\u0003\u0002\u0002\u0002\u0586\u0587\u0003\u0002\u0002", + "\u0002\u0587\u0588\u0003\u0002\u0002\u0002\u0588\u0589\u0007\u00f4\u0002", + "\u0002\u0589\u058a\u0007\u032a\u0002\u0002\u058a\u058c\u0007\u0326\u0002", + "\u0002\u058b\u0586\u0003\u0002\u0002\u0002\u058b\u058c\u0003\u0002\u0002", + "\u0002\u058c\u0593\u0003\u0002\u0002\u0002\u058d\u058f\u0007\u033e\u0002", + "\u0002\u058e\u058d\u0003\u0002\u0002\u0002\u058e\u058f\u0003\u0002\u0002", + "\u0002\u058f\u0590\u0003\u0002\u0002\u0002\u0590\u0591\u0007[\u0002", + "\u0002\u0591\u0592\u0007\u032a\u0002\u0002\u0592\u0594\u0005\u03c6\u01e4", + "\u0002\u0593\u058e\u0003\u0002\u0002\u0002\u0593\u0594\u0003\u0002\u0002", + "\u0002\u05945\u0003\u0002\u0002\u0002\u0595\u0596\u0007I\u0002\u0002", + "\u0596\u0597\u0007\u000f\u0002\u0002\u0597\u0598\u0007\u0121\u0002\u0002", + "\u0598\u0599\u0005\u03c6\u01e4\u0002\u0599\u05a0\u0007\u0179\u0002\u0002", + "\u059a\u059c\u0007\u033e\u0002\u0002\u059b\u059a\u0003\u0002\u0002\u0002", + "\u059b\u059c\u0003\u0002\u0002\u0002\u059c\u059d\u0003\u0002\u0002\u0002", + "\u059d\u059e\u0007\u00f4\u0002\u0002\u059e\u059f\u0007\u032a\u0002\u0002", + "\u059f\u05a1\u0007\u0326\u0002\u0002\u05a0\u059b\u0003\u0002\u0002\u0002", + "\u05a0\u05a1\u0003\u0002\u0002\u0002\u05a1\u05a8\u0003\u0002\u0002\u0002", + "\u05a2\u05a4\u0007\u033e\u0002\u0002\u05a3\u05a2\u0003\u0002\u0002\u0002", + "\u05a3\u05a4\u0003\u0002\u0002\u0002\u05a4\u05a5\u0003\u0002\u0002\u0002", + "\u05a5\u05a6\u0007[\u0002\u0002\u05a6\u05a7\u0007\u032a\u0002\u0002", + "\u05a7\u05a9\u0005\u03c6\u01e4\u0002\u05a8\u05a3\u0003\u0002\u0002\u0002", + "\u05a8\u05a9\u0003\u0002\u0002\u0002\u05a97\u0003\u0002\u0002\u0002", + "\u05aa\u05ab\u0007g\u0002\u0002\u05ab\u05ae\u0007\u0189\u0002\u0002", + "\u05ac\u05ad\u0007\u0099\u0002\u0002\u05ad\u05af\u0007w\u0002\u0002", + "\u05ae\u05ac\u0003\u0002\u0002\u0002\u05ae\u05af\u0003\u0002\u0002\u0002", + "\u05af\u05b3\u0003\u0002\u0002\u0002\u05b0\u05b1\u0005\u03c6\u01e4\u0002", + "\u05b1\u05b2\u0007\u0337\u0002\u0002\u05b2\u05b4\u0003\u0002\u0002\u0002", + "\u05b3\u05b0\u0003\u0002\u0002\u0002\u05b3\u05b4\u0003\u0002\u0002\u0002", + "\u05b4\u05b5\u0003\u0002\u0002\u0002\u05b5\u05b6\u0005\u03c6\u01e4\u0002", + "\u05b69\u0003\u0002\u0002\u0002\u05b7\u05b8\u0007g\u0002\u0002\u05b8", + "\u05b9\u0007\u000f\u0002\u0002\u05b9\u05ba\u0007\u0121\u0002\u0002\u05ba", + "\u05bb\u0005\u03c6\u01e4\u0002\u05bb;\u0003\u0002\u0002\u0002\u05bc", + "\u05bd\u0005> \u0002\u05bd\u05be\u0005\u03c6\u01e4\u0002\u05be\u05bf", + "\u0005@!\u0002\u05bf=\u0003\u0002\u0002\u0002\u05c0\u05c1\u0007\n\u0002", + "\u0002\u05c1\u05c2\u0007\u0195\u0002\u0002\u05c2?\u0003\u0002\u0002", + "\u0002\u05c3\u05c5\u0005B\"\u0002\u05c4\u05c3\u0003\u0002\u0002\u0002", + "\u05c4\u05c5\u0003\u0002\u0002\u0002\u05c5\u05c7\u0003\u0002\u0002\u0002", + "\u05c6\u05c8\u0005X-\u0002\u05c7\u05c6\u0003\u0002\u0002\u0002\u05c7", + "\u05c8\u0003\u0002\u0002\u0002\u05c8\u05ca\u0003\u0002\u0002\u0002\u05c9", + "\u05cb\u0005F$\u0002\u05ca\u05c9\u0003\u0002\u0002\u0002\u05ca\u05cb", + "\u0003\u0002\u0002\u0002\u05cb\u05cd\u0003\u0002\u0002\u0002\u05cc\u05ce", + "\u0005L\'\u0002\u05cd\u05cc\u0003\u0002\u0002\u0002\u05cd\u05ce\u0003", + "\u0002\u0002\u0002\u05ceA\u0003\u0002\u0002\u0002\u05cf\u05d2\u0005", + "D#\u0002\u05d0\u05d3\u0005\\/\u0002\u05d1\u05d3\u0005T+\u0002\u05d2", + "\u05d0\u0003\u0002\u0002\u0002\u05d2\u05d1\u0003\u0002\u0002\u0002\u05d3", + "C\u0003\u0002\u0002\u0002\u05d4\u05d5\u0007\u008b\u0002\u0002\u05d5", + "E\u0003\u0002\u0002\u0002\u05d6\u05d7\u0005J&\u0002\u05d7\u05d8\u0005", + "H%\u0002\u05d8G\u0003\u0002\u0002\u0002\u05d9\u05dc\u0007\u0006\u0002", + "\u0002\u05da\u05dc\u0005n8\u0002\u05db\u05d9\u0003\u0002\u0002\u0002", + "\u05db\u05da\u0003\u0002\u0002\u0002\u05dcI\u0003\u0002\u0002\u0002", + "\u05dd\u05de\u0007g\u0002\u0002\u05deK\u0003\u0002\u0002\u0002\u05df", + "\u05e0\u0005N(\u0002\u05e0\u05e1\u0005P)\u0002\u05e1M\u0003\u0002\u0002", + "\u0002\u05e2\u05e3\u0007\u0004\u0002\u0002\u05e3\u05e4\u0007\u0081\u0002", + "\u0002\u05e4\u05e5\u0007\u008b\u0002\u0002\u05e5O\u0003\u0002\u0002", + "\u0002\u05e6\u05ea\u0005R*\u0002\u05e7\u05e8\u0005V,\u0002\u05e8\u05e9", + "\u0005\u03c6\u01e4\u0002\u05e9\u05eb\u0003\u0002\u0002\u0002\u05ea\u05e7", + "\u0003\u0002\u0002\u0002\u05ea\u05eb\u0003\u0002\u0002\u0002\u05ebQ", + "\u0003\u0002\u0002\u0002\u05ec\u05ed\u0007\u0326\u0002\u0002\u05edS", + "\u0003\u0002\u0002\u0002\u05ee\u05ef\u0005V,\u0002\u05ef\u05f0\u0005", + "\u03c6\u01e4\u0002\u05f0U\u0003\u0002\u0002\u0002\u05f1\u05f2\u0007", + "\u0010\u0002\u0002\u05f2W\u0003\u0002\u0002\u0002\u05f3\u05f4\u0005", + "Z.\u0002\u05f4\u05f5\u0005^0\u0002\u05f5Y\u0003\u0002\u0002\u0002\u05f6", + "\u05f7\u0007\u0179\u0002\u0002\u05f7[\u0003\u0002\u0002\u0002\u05f8", + "\u05fc\u0005`1\u0002\u05f9\u05fc\u0005j6\u0002\u05fa\u05fc\u0007\u0326", + "\u0002\u0002\u05fb\u05f8\u0003\u0002\u0002\u0002\u05fb\u05f9\u0003\u0002", + "\u0002\u0002\u05fb\u05fa\u0003\u0002\u0002\u0002\u05fc]\u0003\u0002", + "\u0002\u0002\u05fd\u05fe\b0\u0001\u0002\u05fe\u05ff\u0007\u00f6\u0002", + "\u0002\u05ff\u0600\u0007\u032a\u0002\u0002\u0600\u0607\t\b\u0002\u0002", + "\u0601\u0602\u0007\u0173\u0002\u0002\u0602\u0603\u0007\u032a\u0002\u0002", + "\u0603\u0607\t\t\u0002\u0002\u0604\u0605\u0007\u0163\u0002\u0002\u0605", + "\u0607\u0007\u01c8\u0002\u0002\u0606\u05fd\u0003\u0002\u0002\u0002\u0606", + "\u0601\u0003\u0002\u0002\u0002\u0606\u0604\u0003\u0002\u0002\u0002\u0607", + "\u060c\u0003\u0002\u0002\u0002\u0608\u0609\f\u0003\u0002\u0002\u0609", + "\u060b\u0007\u033e\u0002\u0002\u060a\u0608\u0003\u0002\u0002\u0002\u060b", + "\u060e\u0003\u0002\u0002\u0002\u060c\u060a\u0003\u0002\u0002\u0002\u060c", + "\u060d\u0003\u0002\u0002\u0002\u060d_\u0003\u0002\u0002\u0002\u060e", + "\u060c\u0003\u0002\u0002\u0002\u060f\u0610\u0005d3\u0002\u0610\u0611", + "\u0005b2\u0002\u0611\u0612\u0005f4\u0002\u0612a\u0003\u0002\u0002\u0002", + "\u0613\u0614\u0005\u03c6\u01e4\u0002\u0614c\u0003\u0002\u0002\u0002", + "\u0615\u0616\u0007e\u0002\u0002\u0616e\u0003\u0002\u0002\u0002\u0617", + "\u0618\u0005h5\u0002\u0618\u0619\u0005f4\u0002\u0619\u061c\u0003\u0002", + "\u0002\u0002\u061a\u061c\u0005\u03c6\u01e4\u0002\u061b\u0617\u0003\u0002", + "\u0002\u0002\u061b\u061a\u0003\u0002\u0002\u0002\u061cg\u0003\u0002", + "\u0002\u0002\u061d\u061e\u0007\u0019\u0002\u0002\u061ei\u0003\u0002", + "\u0002\u0002\u061f\u0620\u0005l7\u0002\u0620\u0621\u0005f4\u0002\u0621", + "k\u0003\u0002\u0002\u0002\u0622\u0623\u0007\u01e3\u0002\u0002\u0623", + "m\u0003\u0002\u0002\u0002\u0624\u0625\u0005p9\u0002\u0625\u0626\u0005", + "j6\u0002\u0626\u0627\u0007\u031f\u0002\u0002\u0627\u0628\u0007\u033e", + "\u0002\u0002\u0628\u062b\u0003\u0002\u0002\u0002\u0629\u062b\u0005j", + "6\u0002\u062a\u0624\u0003\u0002\u0002\u0002\u062a\u0629\u0003\u0002", + "\u0002\u0002\u062bo\u0003\u0002\u0002\u0002\u062c\u062d\u0007\u031f", + "\u0002\u0002\u062dq\u0003\u0002\u0002\u0002\u062e\u062f\u0007I\u0002", + "\u0002\u062f\u0630\u0007\u0195\u0002\u0002\u0630\u0633\u0005\u03c6\u01e4", + "\u0002\u0631\u0632\u0007\u0014\u0002\u0002\u0632\u0634\u0005\u03c6\u01e4", + "\u0002\u0633\u0631\u0003\u0002\u0002\u0002\u0633\u0634\u0003\u0002\u0002", + "\u0002\u0634\u0635\u0003\u0002\u0002\u0002\u0635\u063a\u0007\u008b\u0002", + "\u0002\u0636\u0638\u0007\u033e\u0002\u0002\u0637\u0636\u0003\u0002\u0002", + "\u0002\u0637\u0638\u0003\u0002\u0002\u0002\u0638\u0639\u0003\u0002\u0002", + "\u0002\u0639\u063b\t\n\u0002\u0002\u063a\u0637\u0003\u0002\u0002\u0002", + "\u063b\u063c\u0003\u0002\u0002\u0002\u063c\u063a\u0003\u0002\u0002\u0002", + "\u063c\u063d\u0003\u0002\u0002\u0002\u063d\u0642\u0003\u0002\u0002\u0002", + "\u063e\u063f\u0007\u0179\u0002\u0002\u063f\u0640\u0007\u00f6\u0002\u0002", + "\u0640\u0641\u0007\u032a\u0002\u0002\u0641\u0643\t\b\u0002\u0002\u0642", + "\u063e\u0003\u0002\u0002\u0002\u0642\u0643\u0003\u0002\u0002\u0002\u0643", + "s\u0003\u0002\u0002\u0002\u0644\u0645\u0007g\u0002\u0002\u0645\u0648", + "\u0007\u0195\u0002\u0002\u0646\u0647\u0007\u0099\u0002\u0002\u0647\u0649", + "\u0007w\u0002\u0002\u0648\u0646\u0003\u0002\u0002\u0002\u0648\u0649", + "\u0003\u0002\u0002\u0002\u0649\u064e\u0003\u0002\u0002\u0002\u064a\u064c", + "\u0007\u033e\u0002\u0002\u064b\u064a\u0003\u0002\u0002\u0002\u064b\u064c", + "\u0003\u0002\u0002\u0002\u064c\u064d\u0003\u0002\u0002\u0002\u064d\u064f", + "\u0005\u03c6\u01e4\u0002\u064e\u064b\u0003\u0002\u0002\u0002\u064f\u0650", + "\u0003\u0002\u0002\u0002\u0650\u064e\u0003\u0002\u0002\u0002\u0650\u0651", + "\u0003\u0002\u0002\u0002\u0651\u0655\u0003\u0002\u0002\u0002\u0652\u0653", + "\u0007\u0179\u0002\u0002\u0653\u0654\u0007\u0263\u0002\u0002\u0654\u0656", + "\u0007\u01d9\u0002\u0002\u0655\u0652\u0003\u0002\u0002\u0002\u0655\u0656", + "\u0003\u0002\u0002\u0002\u0656u\u0003\u0002\u0002\u0002\u0657\u0658", + "\u0005x=\u0002\u0658\u065d\u0005\u03c6\u01e4\u0002\u0659\u065e\u0005", + "z>\u0002\u065a\u065b\u0007\u02a9\u0002\u0002\u065b\u065c\u0007\u028c", + "\u0002\u0002\u065c\u065e\u0007\u00ac\u0002\u0002\u065d\u0659\u0003\u0002", + "\u0002\u0002\u065d\u065a\u0003\u0002\u0002\u0002\u065ew\u0003\u0002", + "\u0002\u0002\u065f\u0660\u0007\n\u0002\u0002\u0660\u0661\u0007\u0012", + "\u0002\u0002\u0661\u0662\u0007\u00ac\u0002\u0002\u0662y\u0003\u0002", + "\u0002\u0002\u0663\u0664\u0005|?\u0002\u0664\u0667\u0005~@\u0002\u0665", + "\u0666\u0007\u033e\u0002\u0002\u0666\u0668\u0005~@\u0002\u0667\u0665", + "\u0003\u0002\u0002\u0002\u0667\u0668\u0003\u0002\u0002\u0002\u0668\u0669", + "\u0003\u0002\u0002\u0002\u0669\u066a\u0007\u033d\u0002\u0002\u066a{", + "\u0003\u0002\u0002\u0002\u066b\u066c\u0007\u0179\u0002\u0002\u066c\u066d", + "\u0007\u028c\u0002\u0002\u066d\u066e\u0007\u00ac\u0002\u0002\u066e\u066f", + "\u0007\u033c\u0002\u0002\u066f}\u0003\u0002\u0002\u0002\u0670\u0671", + "\u0007\u01d1\u0002\u0002\u0671\u0672\u0007&\u0002\u0002\u0672\u0673", + "\u0007\u00f4\u0002\u0002\u0673\u0674\u0007\u032a\u0002\u0002\u0674\u067b", + "\u0007\u0326\u0002\u0002\u0675\u0676\u0007\u01ec\u0002\u0002\u0676\u0677", + "\u0007&\u0002\u0002\u0677\u0678\u0007\u00f4\u0002\u0002\u0678\u0679", + "\u0007\u032a\u0002\u0002\u0679\u067b\u0007\u0326\u0002\u0002\u067a\u0670", + "\u0003\u0002\u0002\u0002\u067a\u0675\u0003\u0002\u0002\u0002\u067b\u007f", + "\u0003\u0002\u0002\u0002\u067c\u067d\u0007I\u0002\u0002\u067d\u067e", + "\u0007\u0012\u0002\u0002\u067e\u067f\u0007\u00ac\u0002\u0002\u067f\u0682", + "\u0005\u03c6\u01e4\u0002\u0680\u0681\u0007\u0014\u0002\u0002\u0681\u0683", + "\u0005\u03c6\u01e4\u0002\u0682\u0680\u0003\u0002\u0002\u0002\u0682\u0683", + "\u0003\u0002\u0002\u0002\u0683\u0691\u0003\u0002\u0002\u0002\u0684\u068f", + "\u0007\u008b\u0002\u0002\u0685\u0686\u0007\u0081\u0002\u0002\u0686\u0687", + "\u0007\u032a\u0002\u0002\u0687\u0690\u0007\u0326\u0002\u0002\u0688\u0689", + "\u0007u\u0002\u0002\u0689\u068a\u0007\u032a\u0002\u0002\u068a\u0690", + "\u0007\u0326\u0002\u0002\u068b\u068c\u0007\u0195\u0002\u0002\u068c\u0690", + "\u0005\u03c6\u01e4\u0002\u068d\u068e\u0007\u0291\u0002\u0002\u068e\u0690", + "\u0005\u03c6\u01e4\u0002\u068f\u0685\u0003\u0002\u0002\u0002\u068f\u0688", + "\u0003\u0002\u0002\u0002\u068f\u068b\u0003\u0002\u0002\u0002\u068f\u068d", + "\u0003\u0002\u0002\u0002\u0690\u0692\u0003\u0002\u0002\u0002\u0691\u0684", + "\u0003\u0002\u0002\u0002\u0691\u0692\u0003\u0002\u0002\u0002\u0692\u069f", + "\u0003\u0002\u0002\u0002\u0693\u069d\u0007\u0179\u0002\u0002\u0694\u0695", + "\u0007\u018a\u0002\u0002\u0695\u0696\u0007\u032a\u0002\u0002\u0696\u069e", + "\t\u000b\u0002\u0002\u0697\u0698\u0007\u0292\u0002\u0002\u0698\u0699", + "\u0007\u032a\u0002\u0002\u0699\u069e\u0007\u0326\u0002\u0002\u069a\u069b", + "\u0007\u01c3\u0002\u0002\u069b\u069c\u0007\u032a\u0002\u0002\u069c\u069e", + "\t\f\u0002\u0002\u069d\u0694\u0003\u0002\u0002\u0002\u069d\u0697\u0003", + "\u0002\u0002\u0002\u069d\u069a\u0003\u0002\u0002\u0002\u069e\u06a0\u0003", + "\u0002\u0002\u0002\u069f\u0693\u0003\u0002\u0002\u0002\u069f\u06a0\u0003", + "\u0002\u0002\u0002\u06a0\u06a6\u0003\u0002\u0002\u0002\u06a1\u06a2\u0007", + "\u01ec\u0002\u0002\u06a2\u06a3\u0007&\u0002\u0002\u06a3\u06a4\u0007", + "\u00f4\u0002\u0002\u06a4\u06a5\u0007\u032a\u0002\u0002\u06a5\u06a7\u0007", + "\u0326\u0002\u0002\u06a6\u06a1\u0003\u0002\u0002\u0002\u06a6\u06a7\u0003", + "\u0002\u0002\u0002\u06a7\u0081\u0003\u0002\u0002\u0002\u06a8\u06a9\u0007", + "g\u0002\u0002\u06a9\u06aa\u0007\u0012\u0002\u0002\u06aa\u06ab\u0007", + "\u00ac\u0002\u0002\u06ab\u06af\u0005\u03c6\u01e4\u0002\u06ac\u06ad\u0007", + "\u02a9\u0002\u0002\u06ad\u06ae\u0007\u0291\u0002\u0002\u06ae\u06b0\u0007", + "\u00ac\u0002\u0002\u06af\u06ac\u0003\u0002\u0002\u0002\u06af\u06b0\u0003", + "\u0002\u0002\u0002\u06b0\u0083\u0003\u0002\u0002\u0002\u06b1\u06b5\u0005", + "\u008cG\u0002\u06b2\u06b3\u0005\u0094K\u0002\u06b3\u06b4\u0005\u008a", + "F\u0002\u06b4\u06b6\u0003\u0002\u0002\u0002\u06b5\u06b2\u0003\u0002", + "\u0002\u0002\u06b5\u06b6\u0003\u0002\u0002\u0002\u06b6\u06b7\u0003\u0002", + "\u0002\u0002\u06b7\u06b8\u0005\u0386\u01c4\u0002\u06b8\u06b9\u0005\u0088", + "E\u0002\u06b9\u06ba\u0005\u0086D\u0002\u06ba\u0085\u0003\u0002\u0002", + "\u0002\u06bb\u06bf\u0005\u03c6\u01e4\u0002\u06bc\u06bd\u0007\u012e\u0002", + "\u0002\u06bd\u06bf\u0007\u027d\u0002\u0002\u06be\u06bb\u0003\u0002\u0002", + "\u0002\u06be\u06bc\u0003\u0002\u0002\u0002\u06bf\u0087\u0003\u0002\u0002", + "\u0002\u06c0\u06c1\u0007\u015a\u0002\u0002\u06c1\u0089\u0003\u0002\u0002", + "\u0002\u06c2\u06c3\u0007\u0340\u0002\u0002\u06c3\u06c4\u0007\u0340\u0002", + "\u0002\u06c4\u008b\u0003\u0002\u0002\u0002\u06c5\u06c6\u0007\n\u0002", + "\u0002\u06c6\u06c7\u0007\u0014\u0002\u0002\u06c7\u06c8\u0007\u00e5\u0002", + "\u0002\u06c8\u008d\u0003\u0002\u0002\u0002\u06c9\u06cd\u0005\u008cG", + "\u0002\u06ca\u06cb\u0005\u0096L\u0002\u06cb\u06cc\u0005\u008aF\u0002", + "\u06cc\u06ce\u0003\u0002\u0002\u0002\u06cd\u06ca\u0003\u0002\u0002\u0002", + "\u06cd\u06ce\u0003\u0002\u0002\u0002\u06ce\u06cf\u0003\u0002\u0002\u0002", + "\u06cf\u06d0\u0005\u0386\u01c4\u0002\u06d0\u06d1\u0005\u0088E\u0002", + "\u06d1\u06d2\u0005\u0086D\u0002\u06d2\u008f\u0003\u0002\u0002\u0002", + "\u06d3\u06d7\u0005\u008cG\u0002\u06d4\u06d5\u0005\u0098M\u0002\u06d5", + "\u06d6\u0005\u008aF\u0002\u06d6\u06d8\u0003\u0002\u0002\u0002\u06d7", + "\u06d4\u0003\u0002\u0002\u0002\u06d7\u06d8\u0003\u0002\u0002\u0002\u06d8", + "\u06d9\u0003\u0002\u0002\u0002\u06d9\u06da\u0005\u0388\u01c5\u0002\u06da", + "\u06db\u0005\u0088E\u0002\u06db\u06dc\u0005\u0086D\u0002\u06dc\u0091", + "\u0003\u0002\u0002\u0002\u06dd\u06e1\u0005\u008cG\u0002\u06de\u06df", + "\u0005\u009aN\u0002\u06df\u06e0\u0005\u008aF\u0002\u06e0\u06e2\u0003", + "\u0002\u0002\u0002\u06e1\u06de\u0003\u0002\u0002\u0002\u06e1\u06e2\u0003", + "\u0002\u0002\u0002\u06e2\u06e3\u0003\u0002\u0002\u0002\u06e3\u06e4\u0005", + "\u038a\u01c6\u0002\u06e4\u06e5\u0005\u0088E\u0002\u06e5\u06e6\u0005", + "\u0086D\u0002\u06e6\u0093\u0003\u0002\u0002\u0002\u06e7\u070a\u0007", + "\u0271\u0002\u0002\u06e8\u070a\u0007\u0195\u0002\u0002\u06e9\u06ea\u0007", + "\u0012\u0002\u0002\u06ea\u070a\u0007\u00ac\u0002\u0002\u06eb\u06ec\u0007", + "\u019f\u0002\u0002\u06ec\u070a\u0007\u0092\u0002\u0002\u06ed\u070a\u0007", + "+\u0002\u0002\u06ee\u070a\u0007D\u0002\u0002\u06ef\u070a\u0007\u0301", + "\u0002\u0002\u06f0\u070a\u0007T\u0002\u0002\u06f1\u070a\u0007m\u0002", + "\u0002\u06f2\u06f3\u0007\u0209\u0002\u0002\u06f3\u070a\u0007\u01ae\u0002", + "\u0002\u06f4\u06f5\u0007\u0209\u0002\u0002\u06f5\u070a\u0007\u02e4\u0002", + "\u0002\u06f6\u06f7\u0007\u0250\u0002\u0002\u06f7\u070a\u0007\u0301\u0002", + "\u0002\u06f8\u06f9\u0007\u02a7\u0002\u0002\u06f9\u06fa\u0007\u0136\u0002", + "\u0002\u06fa\u070a\u0007\u01a6\u0002\u0002\u06fb\u070a\u0007\u0121\u0002", + "\u0002\u06fc\u070a\u0007\u02b8\u0002\u0002\u06fd\u070a\u0007\u012e\u0002", + "\u0002\u06fe\u06ff\u0007\u02c2\u0002\u0002\u06ff\u0700\u0007\u0290\u0002", + "\u0002\u0700\u070a\u0007\u0233\u0002\u0002\u0701\u0702\u0007\u0135\u0002", + "\u0002\u0702\u070a\u0007\u0121\u0002\u0002\u0703\u070a\u0007\u0136\u0002", + "\u0002\u0704\u0705\u0007\u02eb\u0002\u0002\u0705\u070a\u0007\u00ac\u0002", + "\u0002\u0706\u0707\u0007\u0315\u0002\u0002\u0707\u0708\u0007\u012e\u0002", + "\u0002\u0708\u070a\u0007\u01b5\u0002\u0002\u0709\u06e7\u0003\u0002\u0002", + "\u0002\u0709\u06e8\u0003\u0002\u0002\u0002\u0709\u06e9\u0003\u0002\u0002", + "\u0002\u0709\u06eb\u0003\u0002\u0002\u0002\u0709\u06ed\u0003\u0002\u0002", + "\u0002\u0709\u06ee\u0003\u0002\u0002\u0002\u0709\u06ef\u0003\u0002\u0002", + "\u0002\u0709\u06f0\u0003\u0002\u0002\u0002\u0709\u06f1\u0003\u0002\u0002", + "\u0002\u0709\u06f2\u0003\u0002\u0002\u0002\u0709\u06f4\u0003\u0002\u0002", + "\u0002\u0709\u06f6\u0003\u0002\u0002\u0002\u0709\u06f8\u0003\u0002\u0002", + "\u0002\u0709\u06fb\u0003\u0002\u0002\u0002\u0709\u06fc\u0003\u0002\u0002", + "\u0002\u0709\u06fd\u0003\u0002\u0002\u0002\u0709\u06fe\u0003\u0002\u0002", + "\u0002\u0709\u0701\u0003\u0002\u0002\u0002\u0709\u0703\u0003\u0002\u0002", + "\u0002\u0709\u0704\u0003\u0002\u0002\u0002\u0709\u0706\u0003\u0002\u0002", + "\u0002\u070a\u0095\u0003\u0002\u0002\u0002\u070b\u0721\u0007\u0271\u0002", + "\u0002\u070c\u0721\u0007\u0195\u0002\u0002\u070d\u070e\u0007\u0012\u0002", + "\u0002\u070e\u0721\u0007\u00ac\u0002\u0002\u070f\u0721\u0007+\u0002", + "\u0002\u0710\u0721\u0007\u0301\u0002\u0002\u0711\u0721\u0007T\u0002", + "\u0002\u0712\u0713\u0007\u0209\u0002\u0002\u0713\u0721\u0007\u01ae\u0002", + "\u0002\u0714\u0715\u0007\u0209\u0002\u0002\u0715\u0721\u0007\u02e4\u0002", + "\u0002\u0716\u0721\u0007\u0121\u0002\u0002\u0717\u0721\u0007\u012e\u0002", + "\u0002\u0718\u0719\u0007\u02c2\u0002\u0002\u0719\u071a\u0007\u0290\u0002", + "\u0002\u071a\u0721\u0007\u0233\u0002\u0002\u071b\u071c\u0007\u02eb\u0002", + "\u0002\u071c\u0721\u0007\u00ac\u0002\u0002\u071d\u071e\u0007\u0315\u0002", + "\u0002\u071e\u071f\u0007\u012e\u0002\u0002\u071f\u0721\u0007\u01b5\u0002", + "\u0002\u0720\u070b\u0003\u0002\u0002\u0002\u0720\u070c\u0003\u0002\u0002", + "\u0002\u0720\u070d\u0003\u0002\u0002\u0002\u0720\u070f\u0003\u0002\u0002", + "\u0002\u0720\u0710\u0003\u0002\u0002\u0002\u0720\u0711\u0003\u0002\u0002", + "\u0002\u0720\u0712\u0003\u0002\u0002\u0002\u0720\u0714\u0003\u0002\u0002", + "\u0002\u0720\u0716\u0003\u0002\u0002\u0002\u0720\u0717\u0003\u0002\u0002", + "\u0002\u0720\u0718\u0003\u0002\u0002\u0002\u0720\u071b\u0003\u0002\u0002", + "\u0002\u0720\u071d\u0003\u0002\u0002\u0002\u0721\u0097\u0003\u0002\u0002", + "\u0002\u0722\u0723\t\r\u0002\u0002\u0723\u0099\u0003\u0002\u0002\u0002", + "\u0724\u0725\t\u000e\u0002\u0002\u0725\u009b\u0003\u0002\u0002\u0002", + "\u0726\u0727\u0007g\u0002\u0002\u0727\u0728\u0007\u019f\u0002\u0002", + "\u0728\u0729\u0007\u0092\u0002\u0002\u0729\u072a\u0005\u03c6\u01e4\u0002", + "\u072a\u009d\u0003\u0002\u0002\u0002\u072b\u072c\u0005\u00a0Q\u0002", + "\u072c\u072d\u0005\u00a2R\u0002\u072d\u009f\u0003\u0002\u0002\u0002", + "\u072e\u072f\u0007\n\u0002\u0002\u072f\u0730\u0007\u019f\u0002\u0002", + "\u0730\u0731\u0007\u0092\u0002\u0002\u0731\u0732\u0005\u03c6\u01e4\u0002", + "\u0732\u00a1\u0003\u0002\u0002\u0002\u0733\u0734\u0007\u013b\u0002\u0002", + "\u0734\u0744\u0007\u033c\u0002\u0002\u0735\u0736\u0007\u0016\u0002\u0002", + "\u0736\u0737\u0007\u032a\u0002\u0002\u0737\u0745\t\u000f\u0002\u0002", + "\u0738\u0739\u0007\u01f8\u0002\u0002\u0739\u073a\u0007\u032a\u0002\u0002", + "\u073a\u0745\u0007\u0322\u0002\u0002\u073b\u073c\u0007\u0214\u0002\u0002", + "\u073c\u073d\u0007\u032a\u0002\u0002\u073d\u0745\u0007\u0322\u0002\u0002", + "\u073e\u073f\u0007\u01d0\u0002\u0002\u073f\u0740\u0007\u032a\u0002\u0002", + "\u0740\u0745\t\t\u0002\u0002\u0741\u0742\u0007\u02b0\u0002\u0002\u0742", + "\u0743\u0007\u032a\u0002\u0002\u0743\u0745\u0007\u0322\u0002\u0002\u0744", + "\u0735\u0003\u0002\u0002\u0002\u0744\u0738\u0003\u0002\u0002\u0002\u0744", + "\u073b\u0003\u0002\u0002\u0002\u0744\u073e\u0003\u0002\u0002\u0002\u0744", + "\u0741\u0003\u0002\u0002\u0002\u0745\u0746\u0003\u0002\u0002\u0002\u0746", + "\u0892\u0007\u033d\u0002\u0002\u0747\u0748\u0007\u0004\u0002\u0002\u0748", + "\u0749\u0007T\u0002\u0002\u0749\u0892\u0005\u03c6\u01e4\u0002\u074a", + "\u074b\u0007\u02a9\u0002\u0002\u074b\u074c\u0007T\u0002\u0002\u074c", + "\u0892\u0005\u03c6\u01e4\u0002\u074d\u074e\u0007\u0004\u0002\u0002\u074e", + "\u074f\u0007\u02ac\u0002\u0002\u074f\u0750\u0007\u00e5\u0002\u0002\u0750", + "\u0751\u0007\u0326\u0002\u0002\u0751\u0752\u0007\u0179\u0002\u0002\u0752", + "\u0756\u0007\u033c\u0002\u0002\u0753\u0754\u0007\u01ed\u0002\u0002\u0754", + "\u0755\u0007\u032a\u0002\u0002\u0755\u0757\u0007\u0326\u0002\u0002\u0756", + "\u0753\u0003\u0002\u0002\u0002\u0756\u0757\u0003\u0002\u0002\u0002\u0757", + "\u075e\u0003\u0002\u0002\u0002\u0758\u075a\u0007\u033e\u0002\u0002\u0759", + "\u0758\u0003\u0002\u0002\u0002\u0759\u075a\u0003\u0002\u0002\u0002\u075a", + "\u075b\u0003\u0002\u0002\u0002\u075b\u075c\u0007\u0018\u0002\u0002\u075c", + "\u075d\u0007\u032a\u0002\u0002\u075d\u075f\t\u0010\u0002\u0002\u075e", + "\u0759\u0003\u0002\u0002\u0002\u075e\u075f\u0003\u0002\u0002\u0002\u075f", + "\u0766\u0003\u0002\u0002\u0002\u0760\u0762\u0007\u033e\u0002\u0002\u0761", + "\u0760\u0003\u0002\u0002\u0002\u0761\u0762\u0003\u0002\u0002\u0002\u0762", + "\u0763\u0003\u0002\u0002\u0002\u0763\u0764\u0007\u01f6\u0002\u0002\u0764", + "\u0765\u0007\u032a\u0002\u0002\u0765\u0767\t\u0011\u0002\u0002\u0766", + "\u0761\u0003\u0002\u0002\u0002\u0766\u0767\u0003\u0002\u0002\u0002\u0767", + "\u076e\u0003\u0002\u0002\u0002\u0768\u076a\u0007\u033e\u0002\u0002\u0769", + "\u0768\u0003\u0002\u0002\u0002\u0769\u076a\u0003\u0002\u0002\u0002\u076a", + "\u076b\u0003\u0002\u0002\u0002\u076b\u076c\u0007\u02ca\u0002\u0002\u076c", + "\u076d\u0007\u032a\u0002\u0002\u076d\u076f\t\u0011\u0002\u0002\u076e", + "\u0769\u0003\u0002\u0002\u0002\u076e\u076f\u0003\u0002\u0002\u0002\u076f", + "\u0776\u0003\u0002\u0002\u0002\u0770\u0772\u0007\u033e\u0002\u0002\u0771", + "\u0770\u0003\u0002\u0002\u0002\u0771\u0772\u0003\u0002\u0002\u0002\u0772", + "\u0773\u0003\u0002\u0002\u0002\u0773\u0774\u0007\u01a1\u0002\u0002\u0774", + "\u0775\u0007\u032a\u0002\u0002\u0775\u0777\u0007\u0322\u0002\u0002\u0776", + "\u0771\u0003\u0002\u0002\u0002\u0776\u0777\u0003\u0002\u0002\u0002\u0777", + "\u0781\u0003\u0002\u0002\u0002\u0778\u077a\u0007\u033e\u0002\u0002\u0779", + "\u0778\u0003\u0002\u0002\u0002\u0779\u077a\u0003\u0002\u0002\u0002\u077a", + "\u077b\u0003\u0002\u0002\u0002\u077b\u077c\u0007\u0288\u0002\u0002\u077c", + "\u077d\u0007\u033c\u0002\u0002\u077d\u077e\u0007\u0007\u0002\u0002\u077e", + "\u077f\u0007\u032a\u0002\u0002\u077f\u0780\t\u0012\u0002\u0002\u0780", + "\u0782\u0007\u033d\u0002\u0002\u0781\u0779\u0003\u0002\u0002\u0002\u0781", + "\u0782\u0003\u0002\u0002\u0002\u0782\u078c\u0003\u0002\u0002\u0002\u0783", + "\u0785\u0007\u033e\u0002\u0002\u0784\u0783\u0003\u0002\u0002\u0002\u0784", + "\u0785\u0003\u0002\u0002\u0002\u0785\u0786\u0003\u0002\u0002\u0002\u0786", + "\u0787\u0007\u02c5\u0002\u0002\u0787\u0788\u0007\u033c\u0002\u0002\u0788", + "\u0789\u0007\u0007\u0002\u0002\u0789\u078a\u0007\u032a\u0002\u0002\u078a", + "\u078b\u0007\u029d\u0002\u0002\u078b\u078d\u0007\u033d\u0002\u0002\u078c", + "\u0784\u0003\u0002\u0002\u0002\u078c\u078d\u0003\u0002\u0002\u0002\u078d", + "\u078e\u0003\u0002\u0002\u0002\u078e\u0892\u0007\u033d\u0002\u0002\u078f", + "\u0790\u0007\u02c5\u0002\u0002\u0790\u0799\u0007\u033c\u0002\u0002\u0791", + "\u0792\u0007\u0007\u0002\u0002\u0792\u0793\u0007\u032a\u0002\u0002\u0793", + "\u079a\t\u0013\u0002\u0002\u0794\u0795\u0007\u029e\u0002\u0002\u0795", + "\u0796\u0007\u032a\u0002\u0002\u0796\u0797\u0007\u033c\u0002\u0002\u0797", + "\u0798\u0007\u0326\u0002\u0002\u0798\u079a\u0007\u033d\u0002\u0002\u0799", + "\u0791\u0003\u0002\u0002\u0002\u0799\u0794\u0003\u0002\u0002\u0002\u079a", + "\u0892\u0003\u0002\u0002\u0002\u079b\u079c\u0007\u0288\u0002\u0002\u079c", + "\u07b3\u0007\u033c\u0002\u0002\u079d\u079e\u0007\u0007\u0002\u0002\u079e", + "\u079f\u0007\u032a\u0002\u0002\u079f\u07b4\t\u0013\u0002\u0002\u07a0", + "\u07a1\u0007\u029e\u0002\u0002\u07a1\u07a2\u0007\u032a\u0002\u0002\u07a2", + "\u07ad\u0007\u033c\u0002\u0002\u07a3\u07a5\u0007\u033e\u0002\u0002\u07a4", + "\u07a3\u0003\u0002\u0002\u0002\u07a4\u07a5\u0003\u0002\u0002\u0002\u07a5", + "\u07a6\u0003\u0002\u0002\u0002\u07a6\u07a8\u0007\u0326\u0002\u0002\u07a7", + "\u07a4\u0003\u0002\u0002\u0002\u07a8\u07ab\u0003\u0002\u0002\u0002\u07a9", + "\u07a7\u0003\u0002\u0002\u0002\u07a9\u07aa\u0003\u0002\u0002\u0002\u07aa", + "\u07ae\u0003\u0002\u0002\u0002\u07ab\u07a9\u0003\u0002\u0002\u0002\u07ac", + "\u07ae\u0007\u00d5\u0002\u0002\u07ad\u07a9\u0003\u0002\u0002\u0002\u07ad", + "\u07ac\u0003\u0002\u0002\u0002\u07ae\u07af\u0003\u0002\u0002\u0002\u07af", + "\u07b4\u0007\u033d\u0002\u0002\u07b0\u07b1\u0007\u02d1\u0002\u0002\u07b1", + "\u07b2\u0007\u032a\u0002\u0002\u07b2\u07b4\u0007\u0322\u0002\u0002\u07b3", + "\u079d\u0003\u0002\u0002\u0002\u07b3\u07a0\u0003\u0002\u0002\u0002\u07b3", + "\u07b0\u0003\u0002\u0002\u0002\u07b4\u0892\u0003\u0002\u0002\u0002\u07b5", + "\u07b6\u0007\u025a\u0002\u0002\u07b6\u07b7\u0007\u02ac\u0002\u0002\u07b7", + "\u07b8\u0007\u00e5\u0002\u0002\u07b8\u07f2\u0007\u0326\u0002\u0002\u07b9", + "\u07ba\u0007\u0179\u0002\u0002\u07ba\u07ca\u0007\u033c\u0002\u0002\u07bb", + "\u07bc\u0007\u01ed\u0002\u0002\u07bc\u07bd\u0007\u032a\u0002\u0002\u07bd", + "\u07cb\u0007\u0326\u0002\u0002\u07be\u07bf\u0007\u0018\u0002\u0002\u07bf", + "\u07c0\u0007\u032a\u0002\u0002\u07c0\u07cb\t\u0010\u0002\u0002\u07c1", + "\u07c2\u0007\u01f6\u0002\u0002\u07c2\u07c3\u0007\u032a\u0002\u0002\u07c3", + "\u07cb\t\u0011\u0002\u0002\u07c4\u07c5\u0007\u02ca\u0002\u0002\u07c5", + "\u07c6\u0007\u032a\u0002\u0002\u07c6\u07cb\t\u0011\u0002\u0002\u07c7", + "\u07c8\u0007\u01a1\u0002\u0002\u07c8\u07c9\u0007\u032a\u0002\u0002\u07c9", + "\u07cb\u0007\u0322\u0002\u0002\u07ca\u07bb\u0003\u0002\u0002\u0002\u07ca", + "\u07be\u0003\u0002\u0002\u0002\u07ca\u07c1\u0003\u0002\u0002\u0002\u07ca", + "\u07c4\u0003\u0002\u0002\u0002\u07ca\u07c7\u0003\u0002\u0002\u0002\u07cb", + "\u07f3\u0003\u0002\u0002\u0002\u07cc\u07cd\u0007\u02c5\u0002\u0002\u07cd", + "\u07d6\u0007\u033c\u0002\u0002\u07ce\u07cf\u0007\u0007\u0002\u0002\u07cf", + "\u07d0\u0007\u032a\u0002\u0002\u07d0\u07d7\t\u0013\u0002\u0002\u07d1", + "\u07d2\u0007\u029e\u0002\u0002\u07d2\u07d3\u0007\u032a\u0002\u0002\u07d3", + "\u07d4\u0007\u033c\u0002\u0002\u07d4\u07d5\u0007\u0326\u0002\u0002\u07d5", + "\u07d7\u0007\u033d\u0002\u0002\u07d6\u07ce\u0003\u0002\u0002\u0002\u07d6", + "\u07d1\u0003\u0002\u0002\u0002\u07d7\u07f3\u0003\u0002\u0002\u0002\u07d8", + "\u07d9\u0007\u0288\u0002\u0002\u07d9\u07f0\u0007\u033c\u0002\u0002\u07da", + "\u07db\u0007\u0007\u0002\u0002\u07db\u07dc\u0007\u032a\u0002\u0002\u07dc", + "\u07f1\t\u0013\u0002\u0002\u07dd\u07de\u0007\u029e\u0002\u0002\u07de", + "\u07df\u0007\u032a\u0002\u0002\u07df\u07ea\u0007\u033c\u0002\u0002\u07e0", + "\u07e2\u0007\u033e\u0002\u0002\u07e1\u07e0\u0003\u0002\u0002\u0002\u07e1", + "\u07e2\u0003\u0002\u0002\u0002\u07e2\u07e3\u0003\u0002\u0002\u0002\u07e3", + "\u07e5\u0007\u0326\u0002\u0002\u07e4\u07e1\u0003\u0002\u0002\u0002\u07e5", + "\u07e8\u0003\u0002\u0002\u0002\u07e6\u07e4\u0003\u0002\u0002\u0002\u07e6", + "\u07e7\u0003\u0002\u0002\u0002\u07e7\u07eb\u0003\u0002\u0002\u0002\u07e8", + "\u07e6\u0003\u0002\u0002\u0002\u07e9\u07eb\u0007\u00d5\u0002\u0002\u07ea", + "\u07e6\u0003\u0002\u0002\u0002\u07ea\u07e9\u0003\u0002\u0002\u0002\u07eb", + "\u07ec\u0003\u0002\u0002\u0002\u07ec\u07f1\u0007\u033d\u0002\u0002\u07ed", + "\u07ee\u0007\u02d1\u0002\u0002\u07ee\u07ef\u0007\u032a\u0002\u0002\u07ef", + "\u07f1\u0007\u0322\u0002\u0002\u07f0\u07da\u0003\u0002\u0002\u0002\u07f0", + "\u07dd\u0003\u0002\u0002\u0002\u07f0\u07ed\u0003\u0002\u0002\u0002\u07f1", + "\u07f3\u0003\u0002\u0002\u0002\u07f2\u07b9\u0003\u0002\u0002\u0002\u07f2", + "\u07cc\u0003\u0002\u0002\u0002\u07f2\u07d8\u0003\u0002\u0002\u0002\u07f3", + "\u07f4\u0003\u0002\u0002\u0002\u07f4\u0892\u0007\u033d\u0002\u0002\u07f5", + "\u07f6\u0007\u02a9\u0002\u0002\u07f6\u07f7\u0007\u02ac\u0002\u0002\u07f7", + "\u07f8\u0007\u00e5\u0002\u0002\u07f8\u0892\u0007\u0326\u0002\u0002\u07f9", + "\u0892\u0007\u00aa\u0002\u0002\u07fa\u07fb\u0007\u00aa\u0002\u0002\u07fb", + "\u07fc\u0007\u019f\u0002\u0002\u07fc\u07fd\u0007\u0092\u0002\u0002\u07fd", + "\u0814\u0007\u00e5\u0002\u0002\u07fe\u0800\u0007\u033e\u0002\u0002\u07ff", + "\u07fe\u0003\u0002\u0002\u0002\u07ff\u0800\u0003\u0002\u0002\u0002\u0800", + "\u0801\u0003\u0002\u0002\u0002\u0801\u0802\u0007\u0326\u0002\u0002\u0802", + "\u0803\u0007\u0179\u0002\u0002\u0803\u0804\u0007\u033c\u0002\u0002\u0804", + "\u0805\u0007\u0235\u0002\u0002\u0805\u0806\u0007\u032a\u0002\u0002\u0806", + "\u0807\u0007\u0326\u0002\u0002\u0807\u0808\u0007\u033e\u0002\u0002\u0808", + "\u0809\u0007\u0018\u0002\u0002\u0809\u080a\u0007\u032a\u0002\u0002\u080a", + "\u080b\t\u0010\u0002\u0002\u080b\u080c\u0007\u033e\u0002\u0002\u080c", + "\u080d\u0007\u01f6\u0002\u0002\u080d\u080e\u0007\u032a\u0002\u0002\u080e", + "\u080f\u0007\u023e\u0002\u0002\u080f\u0810\u0007\u033e\u0002\u0002\u0810", + "\u0811\u0007\u02ca\u0002\u0002\u0811\u0812\u0007\u032a\u0002\u0002\u0812", + "\u0813\t\u0011\u0002\u0002\u0813\u0815\u0007\u033d\u0002\u0002\u0814", + "\u07ff\u0003\u0002\u0002\u0002\u0815\u0816\u0003\u0002\u0002\u0002\u0816", + "\u0814\u0003\u0002\u0002\u0002\u0816\u0817\u0003\u0002\u0002\u0002\u0817", + "\u0892\u0003\u0002\u0002\u0002\u0818\u0819\u0007\u025a\u0002\u0002\u0819", + "\u081a\u0007\u019f\u0002\u0002\u081a\u081b\u0007\u0092\u0002\u0002\u081b", + "\u083e\u0007\u00e5\u0002\u0002\u081c\u081e\u0007\u033e\u0002\u0002\u081d", + "\u081c\u0003\u0002\u0002\u0002\u081d\u081e\u0003\u0002\u0002\u0002\u081e", + "\u081f\u0003\u0002\u0002\u0002\u081f\u0820\u0007\u0326\u0002\u0002\u0820", + "\u0821\u0007\u0179\u0002\u0002\u0821\u0822\u0007\u033c\u0002\u0002\u0822", + "\u0823\u0007\u0235\u0002\u0002\u0823\u0824\u0007\u032a\u0002\u0002\u0824", + "\u082b\u0007\u0326\u0002\u0002\u0825\u0827\u0007\u033e\u0002\u0002\u0826", + "\u0825\u0003\u0002\u0002\u0002\u0826\u0827\u0003\u0002\u0002\u0002\u0827", + "\u0828\u0003\u0002\u0002\u0002\u0828\u0829\u0007\u0018\u0002\u0002\u0829", + "\u082a\u0007\u032a\u0002\u0002\u082a\u082c\t\u0010\u0002\u0002\u082b", + "\u0826\u0003\u0002\u0002\u0002\u082b\u082c\u0003\u0002\u0002\u0002\u082c", + "\u0833\u0003\u0002\u0002\u0002\u082d\u082f\u0007\u033e\u0002\u0002\u082e", + "\u082d\u0003\u0002\u0002\u0002\u082e\u082f\u0003\u0002\u0002\u0002\u082f", + "\u0830\u0003\u0002\u0002\u0002\u0830\u0831\u0007\u01f6\u0002\u0002\u0831", + "\u0832\u0007\u032a\u0002\u0002\u0832\u0834\u0007\u023e\u0002\u0002\u0833", + "\u082e\u0003\u0002\u0002\u0002\u0833\u0834\u0003\u0002\u0002\u0002\u0834", + "\u083b\u0003\u0002\u0002\u0002\u0835\u0837\u0007\u033e\u0002\u0002\u0836", + "\u0835\u0003\u0002\u0002\u0002\u0836\u0837\u0003\u0002\u0002\u0002\u0837", + "\u0838\u0003\u0002\u0002\u0002\u0838\u0839\u0007\u02ca\u0002\u0002\u0839", + "\u083a\u0007\u032a\u0002\u0002\u083a\u083c\t\u0011\u0002\u0002\u083b", + "\u0836\u0003\u0002\u0002\u0002\u083b\u083c\u0003\u0002\u0002\u0002\u083c", + "\u083d\u0003\u0002\u0002\u0002\u083d\u083f\u0007\u033d\u0002\u0002\u083e", + "\u081d\u0003\u0002\u0002\u0002\u083f\u0840\u0003\u0002\u0002\u0002\u0840", + "\u083e\u0003\u0002\u0002\u0002\u0840\u0841\u0003\u0002\u0002\u0002\u0841", + "\u0892\u0003\u0002\u0002\u0002\u0842\u0843\u0007\u0091\u0002\u0002\u0843", + "\u0844\u0007I\u0002\u0002\u0844\u0845\u0007\r\u0002\u0002\u0845\u0892", + "\u0007T\u0002\u0002\u0846\u0847\u0007]\u0002\u0002\u0847\u0848\u0007", + "I\u0002\u0002\u0848\u0849\u0007\r\u0002\u0002\u0849\u0892\u0007T\u0002", + "\u0002\u084a\u0892\u0007}\u0002\u0002\u084b\u0892\u0007\u0204\u0002", + "\u0002\u084c\u084d\u0007\u0004\u0002\u0002\u084d\u084e\u0007\u0234\u0002", + "\u0002\u084e\u084f\u0007\u0326\u0002\u0002\u084f\u0871\u0007\u033c\u0002", + "\u0002\u0850\u0851\u0007\u0179\u0002\u0002\u0851\u0852\u0007\u01dd\u0002", + "\u0002\u0852\u0853\u0007\u00e5\u0002\u0002\u0853\u0854\u0007\u033c\u0002", + "\u0002\u0854\u0855\u0007\u00a6\u0002\u0002\u0855\u0856\u0007\u00a6\u0002", + "\u0002\u0856\u0857\u0003\u0002\u0002\u0002\u0857\u0872\u0007\u033d\u0002", + "\u0002\u0858\u0859\u0007\u0179\u0002\u0002\u0859\u085a\u0007\u0224\u0002", + "\u0002\u085a\u0866\u0007\u033c\u0002\u0002\u085b\u085d\u0007\u033e\u0002", + "\u0002\u085c\u085b\u0003\u0002\u0002\u0002\u085c\u085d\u0003\u0002\u0002", + "\u0002\u085d\u085e\u0003\u0002\u0002\u0002\u085e\u0863\u0007\u033c\u0002", + "\u0002\u085f\u0860\u0007\u00a6\u0002\u0002\u0860\u0861\u0007\u033e\u0002", + "\u0002\u0861\u0864\u0007\u00a6\u0002\u0002\u0862\u0864\u0007\u00a7\u0002", + "\u0002\u0863\u085f\u0003\u0002\u0002\u0002\u0863\u0862\u0003\u0002\u0002", + "\u0002\u0864\u0865\u0003\u0002\u0002\u0002\u0865\u0867\u0007\u033d\u0002", + "\u0002\u0866\u085c\u0003\u0002\u0002\u0002\u0867\u0868\u0003\u0002\u0002", + "\u0002\u0868\u0866\u0003\u0002\u0002\u0002\u0868\u0869\u0003\u0002\u0002", + "\u0002\u0869\u086a\u0003\u0002\u0002\u0002\u086a\u086f\u0007\u033d\u0002", + "\u0002\u086b\u086c\u0007\u033e\u0002\u0002\u086c\u086d\u0007\u0286\u0002", + "\u0002\u086d\u086e\u0007\u032a\u0002\u0002\u086e\u0870\u0007\u0322\u0002", + "\u0002\u086f\u086b\u0003\u0002\u0002\u0002\u086f\u0870\u0003\u0002\u0002", + "\u0002\u0870\u0872\u0003\u0002\u0002\u0002\u0871\u0850\u0003\u0002\u0002", + "\u0002\u0871\u0858\u0003\u0002\u0002\u0002\u0872\u0873\u0003\u0002\u0002", + "\u0002\u0873\u0892\u0007\u033d\u0002\u0002\u0874\u0875\u0007\u025a\u0002", + "\u0002\u0875\u0882\u0007\u0234\u0002\u0002\u0876\u0877\u0007\u0004\u0002", + "\u0002\u0877\u0878\u0007\u0224\u0002\u0002\u0878\u087c\u0007\u033c\u0002", + "\u0002\u0879\u087a\u0007\u00a6\u0002\u0002\u087a\u087d\u0007\u00a6\u0002", + "\u0002\u087b\u087d\u0007\u00a7\u0002\u0002\u087c\u0879\u0003\u0002\u0002", + "\u0002\u087c\u087b\u0003\u0002\u0002\u0002\u087d\u087e\u0003\u0002\u0002", + "\u0002\u087e\u0883\u0007\u033d\u0002\u0002\u087f\u0880\u0007\u0286\u0002", + "\u0002\u0880\u0881\u0007\u032a\u0002\u0002\u0881\u0883\u0007\u0322\u0002", + "\u0002\u0882\u0876\u0003\u0002\u0002\u0002\u0882\u087f\u0003\u0002\u0002", + "\u0002\u0883\u0892\u0003\u0002\u0002\u0002\u0884\u0885\u0007\u0115\u0002", + "\u0002\u0885\u0886\u0007\u0234\u0002\u0002\u0886\u0892\u0007\u0326\u0002", + "\u0002\u0887\u0888\u0007\u02a9\u0002\u0002\u0888\u0889\u0007\u0234\u0002", + "\u0002\u0889\u0892\u0007\u0326\u0002\u0002\u088a\u0892\u0007\u0272\u0002", + "\u0002\u088b\u088c\u0007\u0179\u0002\u0002\u088c\u088d\u0007\u033c\u0002", + "\u0002\u088d\u088e\u0007h\u0002\u0002\u088e\u088f\u0007\u032a\u0002", + "\u0002\u088f\u0890\u0007\u00f8\u0002\u0002\u0890\u0892\u0007\u033d\u0002", + "\u0002\u0891\u0733\u0003\u0002\u0002\u0002\u0891\u0747\u0003\u0002\u0002", + "\u0002\u0891\u074a\u0003\u0002\u0002\u0002\u0891\u074d\u0003\u0002\u0002", + "\u0002\u0891\u078f\u0003\u0002\u0002\u0002\u0891\u079b\u0003\u0002\u0002", + "\u0002\u0891\u07b5\u0003\u0002\u0002\u0002\u0891\u07f5\u0003\u0002\u0002", + "\u0002\u0891\u07f9\u0003\u0002\u0002\u0002\u0891\u07fa\u0003\u0002\u0002", + "\u0002\u0891\u0818\u0003\u0002\u0002\u0002\u0891\u0842\u0003\u0002\u0002", + "\u0002\u0891\u0846\u0003\u0002\u0002\u0002\u0891\u084a\u0003\u0002\u0002", + "\u0002\u0891\u084b\u0003\u0002\u0002\u0002\u0891\u084c\u0003\u0002\u0002", + "\u0002\u0891\u0874\u0003\u0002\u0002\u0002\u0891\u0884\u0003\u0002\u0002", + "\u0002\u0891\u0887\u0003\u0002\u0002\u0002\u0891\u088a\u0003\u0002\u0002", + "\u0002\u0891\u088b\u0003\u0002\u0002\u0002\u0892\u00a3\u0003\u0002\u0002", + "\u0002\u0893\u0894\t\u0014\u0002\u0002\u0894\u0895\u0007\u01a8\u0002", + "\u0002\u0895\u0896\u0007\u028a\u0002\u0002\u0896\u0897\u0005\u03c6\u01e4", + "\u0002\u0897\u0898\u0007\u0085\u0002\u0002\u0898\u0899\u0007F\u0002", + "\u0002\u0899\u089a\u0007\u013b\u0002\u0002\u089a\u08a4\u0007\u033c\u0002", + "\u0002\u089b\u089c\u0007E\u0002\u0002\u089c\u089f\u0007\u032a\u0002", + "\u0002\u089d\u08a0\u0005\u03c6\u01e4\u0002\u089e\u08a0\u0007\r\u0002", + "\u0002\u089f\u089d\u0003\u0002\u0002\u0002\u089f\u089e\u0003\u0002\u0002", + "\u0002\u08a0\u08a2\u0003\u0002\u0002\u0002\u08a1\u08a3\u0007\u033e\u0002", + "\u0002\u08a2\u08a1\u0003\u0002\u0002\u0002\u08a2\u08a3\u0003\u0002\u0002", + "\u0002\u08a3\u08a5\u0003\u0002\u0002\u0002\u08a4\u089b\u0003\u0002\u0002", + "\u0002\u08a4\u08a5\u0003\u0002\u0002\u0002\u08a5\u08b2\u0003\u0002\u0002", + "\u0002\u08a6\u08a7\u0007\u00ba\u0002\u0002\u08a7\u08ad\u0007\u032a\u0002", + "\u0002\u08a8\u08aa\u0007f\u0002\u0002\u08a9\u08a8\u0003\u0002\u0002", + "\u0002\u08a9\u08aa\u0003\u0002\u0002\u0002\u08aa\u08ab\u0003\u0002\u0002", + "\u0002\u08ab\u08ae\u0005\u03c6\u01e4\u0002\u08ac\u08ae\u0007\r\u0002", + "\u0002\u08ad\u08a9\u0003\u0002\u0002\u0002\u08ad\u08ac\u0003\u0002\u0002", + "\u0002\u08ae\u08b0\u0003\u0002\u0002\u0002\u08af\u08b1\u0007\u033e\u0002", + "\u0002\u08b0\u08af\u0003\u0002\u0002\u0002\u08b0\u08b1\u0003\u0002\u0002", + "\u0002\u08b1\u08b3\u0003\u0002\u0002\u0002\u08b2\u08a6\u0003\u0002\u0002", + "\u0002\u08b2\u08b3\u0003\u0002\u0002\u0002\u08b3\u08bd\u0003\u0002\u0002", + "\u0002\u08b4\u08b5\u0007\u02a8\u0002\u0002\u08b5\u08b8\u0007\u032a\u0002", + "\u0002\u08b6\u08b9\u0007\u0326\u0002\u0002\u08b7\u08b9\u0007\r\u0002", + "\u0002\u08b8\u08b6\u0003\u0002\u0002\u0002\u08b8\u08b7\u0003\u0002\u0002", + "\u0002\u08b9\u08bb\u0003\u0002\u0002\u0002\u08ba\u08bc\u0007\u033e\u0002", + "\u0002\u08bb\u08ba\u0003\u0002\u0002\u0002\u08bb\u08bc\u0003\u0002\u0002", + "\u0002\u08bc\u08be\u0003\u0002\u0002\u0002\u08bd\u08b4\u0003\u0002\u0002", + "\u0002\u08bd\u08be\u0003\u0002\u0002\u0002\u08be\u08c5\u0003\u0002\u0002", + "\u0002\u08bf\u08c0\u0007\u028b\u0002\u0002\u08c0\u08c3\u0007\u032a\u0002", + "\u0002\u08c1\u08c4\u0007\u0322\u0002\u0002\u08c2\u08c4\u0007Y\u0002", + "\u0002\u08c3\u08c1\u0003\u0002\u0002\u0002\u08c3\u08c2\u0003\u0002\u0002", + "\u0002\u08c4\u08c6\u0003\u0002\u0002\u0002\u08c5\u08bf\u0003\u0002\u0002", + "\u0002\u08c5\u08c6\u0003\u0002\u0002\u0002\u08c6\u08c7\u0003\u0002\u0002", + "\u0002\u08c7\u08c8\u0007\u033d\u0002\u0002\u08c8\u00a5\u0003\u0002\u0002", + "\u0002\u08c9\u08ca\u0007g\u0002\u0002\u08ca\u08cb\u0007\u01a8\u0002", + "\u0002\u08cb\u08cc\u0007\u028a\u0002\u0002\u08cc\u08cd\u0005\u03c6\u01e4", + "\u0002\u08cd\u00a7\u0003\u0002\u0002\u0002\u08ce\u08cf\u0007\n\u0002", + "\u0002\u08cf\u08d0\u0007+\u0002\u0002\u08d0\u08f8\u0005\u03c6\u01e4", + "\u0002\u08d1\u08d2\u0007\u02a9\u0002\u0002\u08d2\u08f9\u0007\u028d\u0002", + "\u0002\u08d3\u08d4\u0007\u0179\u0002\u0002\u08d4\u08d5\u0007\u028c\u0002", + "\u0002\u08d5\u08d6\u0007\u00ac\u0002\u0002\u08d6\u08ed\u0007\u033c\u0002", + "\u0002\u08d7\u08d8\u0007\u0081\u0002\u0002\u08d8\u08d9\u0007\u032a\u0002", + "\u0002\u08d9\u08db\u0007\u0326\u0002\u0002\u08da\u08dc\u0007\u033e\u0002", + "\u0002\u08db\u08da\u0003\u0002\u0002\u0002\u08db\u08dc\u0003\u0002\u0002", + "\u0002\u08dc\u08ee\u0003\u0002\u0002\u0002\u08dd\u08de\u0007\u01d1\u0002", + "\u0002\u08de\u08df\u0007&\u0002\u0002\u08df\u08e0\u0007\u00f4\u0002", + "\u0002\u08e0\u08e1\u0007\u032a\u0002\u0002\u08e1\u08e3\u0007\u0326\u0002", + "\u0002\u08e2\u08e4\u0007\u033e\u0002\u0002\u08e3\u08e2\u0003\u0002\u0002", + "\u0002\u08e3\u08e4\u0003\u0002\u0002\u0002\u08e4\u08ee\u0003\u0002\u0002", + "\u0002\u08e5\u08e6\u0007\u01ec\u0002\u0002\u08e6\u08e7\u0007&\u0002", + "\u0002\u08e7\u08e8\u0007\u00f4\u0002\u0002\u08e8\u08e9\u0007\u032a\u0002", + "\u0002\u08e9\u08eb\u0007\u0326\u0002\u0002\u08ea\u08ec\u0007\u033e\u0002", + "\u0002\u08eb\u08ea\u0003\u0002\u0002\u0002\u08eb\u08ec\u0003\u0002\u0002", + "\u0002\u08ec\u08ee\u0003\u0002\u0002\u0002\u08ed\u08d7\u0003\u0002\u0002", + "\u0002\u08ed\u08dd\u0003\u0002\u0002\u0002\u08ed\u08e5\u0003\u0002\u0002", + "\u0002\u08ee\u08ef\u0003\u0002\u0002\u0002\u08ef\u08ed\u0003\u0002\u0002", + "\u0002\u08ef\u08f0\u0003\u0002\u0002\u0002\u08f0\u08f1\u0003\u0002\u0002", + "\u0002\u08f1\u08f9\u0007\u033d\u0002\u0002\u08f2\u08f3\u0007\u0179\u0002", + "\u0002\u08f3\u08f4\u0007\u0182\u0002\u0002\u08f4\u08f5\u0007\u0085\u0002", + "\u0002\u08f5\u08f6\u0007\u01a2\u0002\u0002\u08f6\u08f7\u0007\u032a\u0002", + "\u0002\u08f7\u08f9\t\t\u0002\u0002\u08f8\u08d1\u0003\u0002\u0002\u0002", + "\u08f8\u08d3\u0003\u0002\u0002\u0002\u08f8\u08f2\u0003\u0002\u0002\u0002", + "\u08f9\u00a9\u0003\u0002\u0002\u0002\u08fa\u08fb\u0007\n\u0002\u0002", + "\u08fb\u08fc\u00078\u0002\u0002\u08fc\u08fd\u0007\u01ec\u0002\u0002", + "\u08fd\u08fe\u0007\u00ac\u0002\u0002\u08fe\u08ff\u0005\u03c6\u01e4\u0002", + "\u08ff\u0900\t\u0015\u0002\u0002\u0900\u0901\u0007\u030b\u0002\u0002", + "\u0901\u0902\u0007\u033c\u0002\u0002\u0902\u0903\u0007\u01b6\u0002\u0002", + "\u0903\u0904\u0007\u032a\u0002\u0002\u0904\u090d\u0005\u03c6\u01e4\u0002", + "\u0905\u0906\u0007\u033e\u0002\u0002\u0906\u0907\u0007\u018a\u0002\u0002", + "\u0907\u0908\u0007\u032a\u0002\u0002\u0908\u0909\u0007\u0326\u0002\u0002", + "\u0909\u090a\u0007\u033e\u0002\u0002\u090a\u090b\u0007\u01eb\u0002\u0002", + "\u090b\u090c\u0007\u032a\u0002\u0002\u090c\u090e\u0007\u0327\u0002\u0002", + "\u090d\u0905\u0003\u0002\u0002\u0002\u090d\u090e\u0003\u0002\u0002\u0002", + "\u090e\u090f\u0003\u0002\u0002\u0002\u090f\u0910\u0007\u033d\u0002\u0002", + "\u0910\u00ab\u0003\u0002\u0002\u0002\u0911\u0912\u0007I\u0002\u0002", + "\u0912\u0913\u00078\u0002\u0002\u0913\u0914\u0007\u01ec\u0002\u0002", + "\u0914\u0915\u0007\u00ac\u0002\u0002\u0915\u0916\u0005\u03c6\u01e4\u0002", + "\u0916\u0917\u0007\u0179\u0002\u0002\u0917\u092b\u0007\u016f\u0002\u0002", + "\u0918\u091a\u0007\u033c\u0002\u0002\u0919\u091b\u0007\u033e\u0002\u0002", + "\u091a\u0919\u0003\u0002\u0002\u0002\u091a\u091b\u0003\u0002\u0002\u0002", + "\u091b\u091c\u0003\u0002\u0002\u0002\u091c\u091d\u0007\u01b6\u0002\u0002", + "\u091d\u091e\u0007\u032a\u0002\u0002\u091e\u091f\u0005\u03c6\u01e4\u0002", + "\u091f\u0920\u0007\u033e\u0002\u0002\u0920\u0921\u0007\u018a\u0002\u0002", + "\u0921\u0922\u0007\u032a\u0002\u0002\u0922\u0923\u0007\u0326\u0002\u0002", + "\u0923\u0924\u0007\u033e\u0002\u0002\u0924\u0925\u0007\u01eb\u0002\u0002", + "\u0925\u0926\u0007\u032a\u0002\u0002\u0926\u0927\u0007\u0327\u0002\u0002", + "\u0927\u0929\u0007\u033d\u0002\u0002\u0928\u092a\u0007\u033e\u0002\u0002", + "\u0929\u0928\u0003\u0002\u0002\u0002\u0929\u092a\u0003\u0002\u0002\u0002", + "\u092a\u092c\u0003\u0002\u0002\u0002\u092b\u0918\u0003\u0002\u0002\u0002", + "\u092c\u092d\u0003\u0002\u0002\u0002\u092d\u092b\u0003\u0002\u0002\u0002", + "\u092d\u092e\u0003\u0002\u0002\u0002\u092e\u00ad\u0003\u0002\u0002\u0002", + "\u092f\u0930\u0007g\u0002\u0002\u0930\u0931\u0007+\u0002\u0002\u0931", + "\u0932\u0005\u03c6\u01e4\u0002\u0932\u00af\u0003\u0002\u0002\u0002\u0933", + "\u0934\u0007g\u0002\u0002\u0934\u0935\u00078\u0002\u0002\u0935\u0936", + "\u0007\u01ec\u0002\u0002\u0936\u0937\u0007\u00ac\u0002\u0002\u0937\u0938", + "\u0005\u03c6\u01e4\u0002\u0938\u00b1\u0003\u0002\u0002\u0002\u0939\u093a", + "\u0007g\u0002\u0002\u093a\u093b\u00078\u0002\u0002\u093b\u093c\u0007", + "\u00bd\u0002\u0002\u093c\u093d\u0007\u00ac\u0002\u0002\u093d\u093e\u0005", + "\u03c6\u01e4\u0002\u093e\u00b3\u0003\u0002\u0002\u0002\u093f\u0940\u0007", + "g\u0002\u0002\u0940\u0941\u0007D\u0002\u0002\u0941\u0942\u0005\u03c6", + "\u01e4\u0002\u0942\u00b5\u0003\u0002\u0002\u0002\u0943\u0944\u0007g", + "\u0002\u0002\u0944\u0945\u0007\u01c4\u0002\u0002\u0945\u0946\u0005\u03c6", + "\u01e4\u0002\u0946\u00b7\u0003\u0002\u0002\u0002\u0947\u0948\u0007g", + "\u0002\u0002\u0948\u0949\u0007\u01c5\u0002\u0002\u0949\u094a\u0007\u0291", + "\u0002\u0002\u094a\u094b\u0005\u03c6\u01e4\u0002\u094b\u00b9\u0003\u0002", + "\u0002\u0002\u094c\u094d\u0007g\u0002\u0002\u094d\u0950\u0007T\u0002", + "\u0002\u094e\u094f\u0007\u0099\u0002\u0002\u094f\u0951\u0007w\u0002", + "\u0002\u0950\u094e\u0003\u0002\u0002\u0002\u0950\u0951\u0003\u0002\u0002", + "\u0002\u0951\u0956\u0003\u0002\u0002\u0002\u0952\u0954\u0007\u033e\u0002", + "\u0002\u0953\u0952\u0003\u0002\u0002\u0002\u0953\u0954\u0003\u0002\u0002", + "\u0002\u0954\u0955\u0003\u0002\u0002\u0002\u0955\u0957\u0005\u03c6\u01e4", + "\u0002\u0956\u0953\u0003\u0002\u0002\u0002\u0957\u0958\u0003\u0002\u0002", + "\u0002\u0958\u0956\u0003\u0002\u0002\u0002\u0958\u0959\u0003\u0002\u0002", + "\u0002\u0959\u00bb\u0003\u0002\u0002\u0002\u095a\u095b\u0007g\u0002", + "\u0002\u095b\u095c\u0007T\u0002\u0002\u095c\u095d\u0007\u0196\u0002", + "\u0002\u095d\u095e\u0007\u0143\u0002\u0002\u095e\u095f\u0005\u03c6\u01e4", + "\u0002\u095f\u00bd\u0003\u0002\u0002\u0002\u0960\u0961\u0007g\u0002", + "\u0002\u0961\u0962\u0007T\u0002\u0002\u0962\u0963\u0007\u02bf\u0002", + "\u0002\u0963\u0964\u0007\u01c4\u0002\u0002\u0964\u0965\u0005\u03c6\u01e4", + "\u0002\u0965\u00bf\u0003\u0002\u0002\u0002\u0966\u0967\u0007g\u0002", + "\u0002\u0967\u096a\u0007Y\u0002\u0002\u0968\u0969\u0007\u0099\u0002", + "\u0002\u0969\u096b\u0007w\u0002\u0002\u096a\u0968\u0003\u0002\u0002", + "\u0002\u096a\u096b\u0003\u0002\u0002\u0002\u096b\u096d\u0003\u0002\u0002", + "\u0002\u096c\u096e\u0007\u033e\u0002\u0002\u096d\u096c\u0003\u0002\u0002", + "\u0002\u096d\u096e\u0003\u0002\u0002\u0002\u096e\u0972\u0003\u0002\u0002", + "\u0002\u096f\u0970\u0005\u03c6\u01e4\u0002\u0970\u0971\u0007\u0337\u0002", + "\u0002\u0971\u0973\u0003\u0002\u0002\u0002\u0972\u096f\u0003\u0002\u0002", + "\u0002\u0972\u0973\u0003\u0002\u0002\u0002\u0973\u0974\u0003\u0002\u0002", + "\u0002\u0974\u0975\u0005\u03c6\u01e4\u0002\u0975\u00c1\u0003\u0002\u0002", + "\u0002\u0976\u0977\u0007g\u0002\u0002\u0977\u0978\u0007m\u0002\u0002", + "\u0978\u0979\u0005\u03c6\u01e4\u0002\u0979\u00c3\u0003\u0002\u0002\u0002", + "\u097a\u097b\u0007g\u0002\u0002\u097b\u097c\u0007{\u0002\u0002\u097c", + "\u097d\u0007\u01c8\u0002\u0002\u097d\u097e\u0007\u0142\u0002\u0002\u097e", + "\u097f\u0005\u03c6\u01e4\u0002\u097f\u00c5\u0003\u0002\u0002\u0002\u0980", + "\u0981\u0007g\u0002\u0002\u0981\u0982\u0007{\u0002\u0002\u0982\u0983", + "\u0007\u0081\u0002\u0002\u0983\u0984\u0007\u0206\u0002\u0002\u0984\u0985", + "\u0005\u03c6\u01e4\u0002\u0985\u00c7\u0003\u0002\u0002\u0002\u0986\u0987", + "\u0007g\u0002\u0002\u0987\u0988\u0007{\u0002\u0002\u0988\u0989\u0007", + "\u00b2\u0002\u0002\u0989\u098c\u0005\u03c6\u01e4\u0002\u098a\u098b\u0007", + "\u0014\u0002\u0002\u098b\u098d\u0005\u03c6\u01e4\u0002\u098c\u098a\u0003", + "\u0002\u0002\u0002\u098c\u098d\u0003\u0002\u0002\u0002\u098d\u00c9\u0003", + "\u0002\u0002\u0002\u098e\u098f\u0007g\u0002\u0002\u098f\u0990\u0007", + "{\u0002\u0002\u0990\u0991\u0007\u02b2\u0002\u0002\u0991\u0992\u0007", + "\u0285\u0002\u0002\u0992\u0993\u0005\u03c6\u01e4\u0002\u0993\u00cb\u0003", + "\u0002\u0002\u0002\u0994\u0995\u0007g\u0002\u0002\u0995\u0996\u0007", + "{\u0002\u0002\u0996\u099a\u0007\u0153\u0002\u0002\u0997\u0998\u0005", + "\u03c6\u01e4\u0002\u0998\u0999\u0007\u0337\u0002\u0002\u0999\u099b\u0003", + "\u0002\u0002\u0002\u099a\u0997\u0003\u0002\u0002\u0002\u099a\u099b\u0003", + "\u0002\u0002\u0002\u099b\u099f\u0003\u0002\u0002\u0002\u099c\u099d\u0005", + "\u03c6\u01e4\u0002\u099d\u099e\u0007\u0337\u0002\u0002\u099e\u09a0\u0003", + "\u0002\u0002\u0002\u099f\u099c\u0003\u0002\u0002\u0002\u099f\u09a0\u0003", + "\u0002\u0002\u0002\u09a0\u09a1\u0003\u0002\u0002\u0002\u09a1\u09a2\u0005", + "\u03c6\u01e4\u0002\u09a2\u00cd\u0003\u0002\u0002\u0002\u09a3\u09a4\u0007", + "g\u0002\u0002\u09a4\u09a5\u0007q\u0002\u0002\u09a5\u09aa\u0007\u00dd", + "\u0002\u0002\u09a6\u09a8\u0007\u033e\u0002\u0002\u09a7\u09a6\u0003\u0002", + "\u0002\u0002\u09a7\u09a8\u0003\u0002\u0002\u0002\u09a8\u09a9\u0003\u0002", + "\u0002\u0002\u09a9\u09ab\u0005\u03c6\u01e4\u0002\u09aa\u09a7\u0003\u0002", + "\u0002\u0002\u09ab\u09ac\u0003\u0002\u0002\u0002\u09ac\u09aa\u0003\u0002", + "\u0002\u0002\u09ac\u09ad\u0003\u0002\u0002\u0002\u09ad\u09ae\u0003\u0002", + "\u0002\u0002\u09ae\u09b3\u0007\u00e5\u0002\u0002\u09af\u09b4\u0007\u0135", + "\u0002\u0002\u09b0\u09b4\u0007T\u0002\u0002\u09b1\u09b2\u0007\u0294", + "\u0002\u0002\u09b2\u09b4\u0005\u03c6\u01e4\u0002\u09b3\u09af\u0003\u0002", + "\u0002\u0002\u09b3\u09b0\u0003\u0002\u0002\u0002\u09b3\u09b1\u0003\u0002", + "\u0002\u0002\u09b4\u00cf\u0003\u0002\u0002\u0002\u09b5\u09b6\u0007g", + "\u0002\u0002\u09b6\u09b7\u0007q\u0002\u0002\u09b7\u09b8\u0007\u0139", + "\u0002\u0002\u09b8\u09b9\u0005\u03c6\u01e4\u0002\u09b9\u09ba\u0007\u00e5", + "\u0002\u0002\u09ba\u09bb\u0007\u0135\u0002\u0002\u09bb\u00d1\u0003\u0002", + "\u0002\u0002\u09bc\u09bd\u0007g\u0002\u0002\u09bd\u09be\u0007\u0209", + "\u0002\u0002\u09be\u09bf\u0007\u01ae\u0002\u0002\u09bf\u09c0\u0005\u03c6", + "\u01e4\u0002\u09c0\u00d3\u0003\u0002\u0002\u0002\u09c1\u09c2\u0007g", + "\u0002\u0002\u09c2\u09c3\u0007\u0209\u0002\u0002\u09c3\u09c4\u0007\u009e", + "\u0002\u0002\u09c4\u09c8\u0007\u00e5\u0002\u0002\u09c5\u09c6\u0005\u03c6", + "\u01e4\u0002\u09c6\u09c7\u0007\u0337\u0002\u0002\u09c7\u09c9\u0003\u0002", + "\u0002\u0002\u09c8\u09c5\u0003\u0002\u0002\u0002\u09c8\u09c9\u0003\u0002", + "\u0002\u0002\u09c9\u09ca\u0003\u0002\u0002\u0002\u09ca\u09cb\u0005\u03c6", + "\u01e4\u0002\u09cb\u00d5\u0003\u0002\u0002\u0002\u09cc\u09cd\u0007g", + "\u0002\u0002\u09cd\u09ce\u0007\u0209\u0002\u0002\u09ce\u09cf\u0007\u02e4", + "\u0002\u0002\u09cf\u09d0\u0005\u03c6\u01e4\u0002\u09d0\u00d7\u0003\u0002", + "\u0002\u0002\u09d1\u09d2\u0007g\u0002\u0002\u09d2\u09d3\u0007\u023b", + "\u0002\u0002\u09d3\u09d4\u0005\u03c6\u01e4\u0002\u09d4\u00d9\u0003\u0002", + "\u0002\u0002\u09d5\u09d6\u0007g\u0002\u0002\u09d6\u09d7\u0007\u00bd", + "\u0002\u0002\u09d7\u09d8\u0007\u00ac\u0002\u0002\u09d8\u00db\u0003\u0002", + "\u0002\u0002\u09d9\u09da\u0007g\u0002\u0002\u09da\u09db\u0007\u0250", + "\u0002\u0002\u09db\u09dc\u0007\u0301\u0002\u0002\u09dc\u09dd\u0005\u03c6", + "\u01e4\u0002\u09dd\u00dd\u0003\u0002\u0002\u0002\u09de\u09df\u0007g", + "\u0002\u0002\u09df\u09e0\u0007\u0280\u0002\u0002\u09e0\u09e1\u0007\u008d", + "\u0002\u0002\u09e1\u09e2\u0005\u03c6\u01e4\u0002\u09e2\u00df\u0003\u0002", + "\u0002\u0002\u09e3\u09e4\u0007g\u0002\u0002\u09e4\u09e5\u0007\u0280", + "\u0002\u0002\u09e5\u09e6\u0007\u012f\u0002\u0002\u09e6\u09e7\u0005\u03c6", + "\u01e4\u0002\u09e7\u00e1\u0003\u0002\u0002\u0002\u09e8\u09e9\u0007g", + "\u0002\u0002\u09e9\u09ed\u0007\u0294\u0002\u0002\u09ea\u09eb\u0005\u03c6", + "\u01e4\u0002\u09eb\u09ec\u0007\u0337\u0002\u0002\u09ec\u09ee\u0003\u0002", + "\u0002\u0002\u09ed\u09ea\u0003\u0002\u0002\u0002\u09ed\u09ee\u0003\u0002", + "\u0002\u0002\u09ee\u09f2\u0003\u0002\u0002\u0002\u09ef\u09f0\u0005\u03c6", + "\u01e4\u0002\u09f0\u09f1\u0007\u0337\u0002\u0002\u09f1\u09f3\u0003\u0002", + "\u0002\u0002\u09f2\u09ef\u0003\u0002\u0002\u0002\u09f2\u09f3\u0003\u0002", + "\u0002\u0002\u09f3\u09f4\u0003\u0002\u0002\u0002\u09f4\u09f5\u0005\u03c6", + "\u01e4\u0002\u09f5\u00e3\u0003\u0002\u0002\u0002\u09f6\u09f7\u0007g", + "\u0002\u0002\u09f7\u09f8\u0007\u02a7\u0002\u0002\u09f8\u09f9\u0007\u0136", + "\u0002\u0002\u09f9\u09fa\u0007\u01a6\u0002\u0002\u09fa\u09fb\u0005\u03c6", + "\u01e4\u0002\u09fb\u00e5\u0003\u0002\u0002\u0002\u09fc\u09fd\u0007g", + "\u0002\u0002\u09fd\u09fe\u0007\u02b2\u0002\u0002\u09fe\u09ff\u0007\u0285", + "\u0002\u0002\u09ff\u0a00\u0005\u03c6\u01e4\u0002\u0a00\u00e7\u0003\u0002", + "\u0002\u0002\u0a01\u0a02\u0007g\u0002\u0002\u0a02\u0a05\u0007\u0121", + "\u0002\u0002\u0a03\u0a04\u0007\u0099\u0002\u0002\u0a04\u0a06\u0007w", + "\u0002\u0002\u0a05\u0a03\u0003\u0002\u0002\u0002\u0a05\u0a06\u0003\u0002", + "\u0002\u0002\u0a06\u0a07\u0003\u0002\u0002\u0002\u0a07\u0a08\u0005\u03c6", + "\u01e4\u0002\u0a08\u00e9\u0003\u0002\u0002\u0002\u0a09\u0a0a\u0007g", + "\u0002\u0002\u0a0a\u0a0b\u0007\u02b8\u0002\u0002\u0a0b\u0a0c\u0005\u03c6", + "\u01e4\u0002\u0a0c\u00eb\u0003\u0002\u0002\u0002\u0a0d\u0a0e\u0007g", + "\u0002\u0002\u0a0e\u0a11\u0007\u012a\u0002\u0002\u0a0f\u0a10\u0007\u0099", + "\u0002\u0002\u0a10\u0a12\u0007w\u0002\u0002\u0a11\u0a0f\u0003\u0002", + "\u0002\u0002\u0a11\u0a12\u0003\u0002\u0002\u0002\u0a12\u0a1c\u0003\u0002", + "\u0002\u0002\u0a13\u0a15\u0007\u033e\u0002\u0002\u0a14\u0a13\u0003\u0002", + "\u0002\u0002\u0a14\u0a15\u0003\u0002\u0002\u0002\u0a15\u0a19\u0003\u0002", + "\u0002\u0002\u0a16\u0a17\u0005\u03c6\u01e4\u0002\u0a17\u0a18\u0007\u0337", + "\u0002\u0002\u0a18\u0a1a\u0003\u0002\u0002\u0002\u0a19\u0a16\u0003\u0002", + "\u0002\u0002\u0a19\u0a1a\u0003\u0002\u0002\u0002\u0a1a\u0a1b\u0003\u0002", + "\u0002\u0002\u0a1b\u0a1d\u0005\u03c6\u01e4\u0002\u0a1c\u0a14\u0003\u0002", + "\u0002\u0002\u0a1c\u0a1d\u0003\u0002\u0002\u0002\u0a1d\u00ed\u0003\u0002", + "\u0002\u0002\u0a1e\u0a1f\u0007g\u0002\u0002\u0a1f\u0a22\u0007\u012e", + "\u0002\u0002\u0a20\u0a21\u0007\u0099\u0002\u0002\u0a21\u0a23\u0007w", + "\u0002\u0002\u0a22\u0a20\u0003\u0002\u0002\u0002\u0a22\u0a23\u0003\u0002", + "\u0002\u0002\u0a23\u0a24\u0003\u0002\u0002\u0002\u0a24\u0a25\u0005\u03c6", + "\u01e4\u0002\u0a25\u00ef\u0003\u0002\u0002\u0002\u0a26\u0a27\u0007g", + "\u0002\u0002\u0a27\u0a28\u0007\u02c2\u0002\u0002\u0a28\u0a29\u0007\u0290", + "\u0002\u0002\u0a29\u0a2a\u0007\u0233\u0002\u0002\u0a2a\u0a2b\u0005\u03c6", + "\u01e4\u0002\u0a2b\u00f1\u0003\u0002\u0002\u0002\u0a2c\u0a2d\u0007g", + "\u0002\u0002\u0a2d\u0a2e\u0007\u02c8\u0002\u0002\u0a2e\u0a31\u0007\u00fd", + "\u0002\u0002\u0a2f\u0a30\u0007\u0099\u0002\u0002\u0a30\u0a32\u0007w", + "\u0002\u0002\u0a31\u0a2f\u0003\u0002\u0002\u0002\u0a31\u0a32\u0003\u0002", + "\u0002\u0002\u0a32\u0a36\u0003\u0002\u0002\u0002\u0a33\u0a34\u0005\u03c6", + "\u01e4\u0002\u0a34\u0a35\u0007\u0337\u0002\u0002\u0a35\u0a37\u0003\u0002", + "\u0002\u0002\u0a36\u0a33\u0003\u0002\u0002\u0002\u0a36\u0a37\u0003\u0002", + "\u0002\u0002\u0a37\u0a38\u0003\u0002\u0002\u0002\u0a38\u0a39\u0005\u03c6", + "\u01e4\u0002\u0a39\u00f3\u0003\u0002\u0002\u0002\u0a3a\u0a3b\u0007g", + "\u0002\u0002\u0a3b\u0a3e\u0007\u02cf\u0002\u0002\u0a3c\u0a3d\u0007\u0099", + "\u0002\u0002\u0a3d\u0a3f\u0007w\u0002\u0002\u0a3e\u0a3c\u0003\u0002", + "\u0002\u0002\u0a3e\u0a3f\u0003\u0002\u0002\u0002\u0a3f\u0a4e\u0003\u0002", + "\u0002\u0002\u0a40\u0a42\u0007\u033e\u0002\u0002\u0a41\u0a40\u0003\u0002", + "\u0002\u0002\u0a41\u0a42\u0003\u0002\u0002\u0002\u0a42\u0a46\u0003\u0002", + "\u0002\u0002\u0a43\u0a44\u0005\u03c6\u01e4\u0002\u0a44\u0a45\u0007\u0337", + "\u0002\u0002\u0a45\u0a47\u0003\u0002\u0002\u0002\u0a46\u0a43\u0003\u0002", + "\u0002\u0002\u0a46\u0a47\u0003\u0002\u0002\u0002\u0a47\u0a4b\u0003\u0002", + "\u0002\u0002\u0a48\u0a49\u0005\u03c6\u01e4\u0002\u0a49\u0a4a\u0007\u0337", + "\u0002\u0002\u0a4a\u0a4c\u0003\u0002\u0002\u0002\u0a4b\u0a48\u0003\u0002", + "\u0002\u0002\u0a4b\u0a4c\u0003\u0002\u0002\u0002\u0a4c\u0a4d\u0003\u0002", + "\u0002\u0002\u0a4d\u0a4f\u0005\u03c6\u01e4\u0002\u0a4e\u0a41\u0003\u0002", + "\u0002\u0002\u0a4e\u0a4f\u0003\u0002\u0002\u0002\u0a4f\u00f5\u0003\u0002", + "\u0002\u0002\u0a50\u0a51\u0007g\u0002\u0002\u0a51\u0a52\u0007\u0135", + "\u0002\u0002\u0a52\u0a53\u0007\u0196\u0002\u0002\u0a53\u0a54\u0005\u03c6", + "\u01e4\u0002\u0a54\u00f7\u0003\u0002\u0002\u0002\u0a55\u0a56\u0007g", + "\u0002\u0002\u0a56\u0a57\u0007\u0135\u0002\u0002\u0a57\u0a58\u0007\u0196", + "\u0002\u0002\u0a58\u0a59\u0007\u0143\u0002\u0002\u0a59\u0a5a\u0005\u03c6", + "\u01e4\u0002\u0a5a\u00f9\u0003\u0002\u0002\u0002\u0a5b\u0a5c\u0007g", + "\u0002\u0002\u0a5c\u0a5d\u0007\u0135\u0002\u0002\u0a5d\u0a5e\u0007\u0121", + "\u0002\u0002\u0a5e\u0a5f\u0005\u03c6\u01e4\u0002\u0a5f\u00fb\u0003\u0002", + "\u0002\u0002\u0a60\u0a61\u0007g\u0002\u0002\u0a61\u0a62\u0007\u0136", + "\u0002\u0002\u0a62\u0a63\u0005\u03c6\u01e4\u0002\u0a63\u00fd\u0003\u0002", + "\u0002\u0002\u0a64\u0a66\u0007g\u0002\u0002\u0a65\u0a67\u0007\u01c0", + "\u0002\u0002\u0a66\u0a65\u0003\u0002\u0002\u0002\u0a66\u0a67\u0003\u0002", + "\u0002\u0002\u0a67\u0a68\u0003\u0002\u0002\u0002\u0a68\u0a69\u0007\u02d5", + "\u0002\u0002\u0a69\u0a6d\u0007\u008b\u0002\u0002\u0a6a\u0a6b\u0005\u03c6", + "\u01e4\u0002\u0a6b\u0a6c\u0007\u0337\u0002\u0002\u0a6c\u0a6e\u0003\u0002", + "\u0002\u0002\u0a6d\u0a6a\u0003\u0002\u0002\u0002\u0a6d\u0a6e\u0003\u0002", + "\u0002\u0002\u0a6e\u0a6f\u0003\u0002\u0002\u0002\u0a6f\u0a70\u0005\u03c6", + "\u01e4\u0002\u0a70\u0a7c\u0007&\u0002\u0002\u0a71\u0a73\u0007\u033e", + "\u0002\u0002\u0a72\u0a71\u0003\u0002\u0002\u0002\u0a72\u0a73\u0003\u0002", + "\u0002\u0002\u0a73\u0a74\u0003\u0002\u0002\u0002\u0a74\u0a75\u0007+", + "\u0002\u0002\u0a75\u0a7d\u0005\u03c6\u01e4\u0002\u0a76\u0a78\u0007\u033e", + "\u0002\u0002\u0a77\u0a76\u0003\u0002\u0002\u0002\u0a77\u0a78\u0003\u0002", + "\u0002\u0002\u0a78\u0a79\u0003\u0002\u0002\u0002\u0a79\u0a7a\u0007\u0012", + "\u0002\u0002\u0a7a\u0a7b\u0007\u00ac\u0002\u0002\u0a7b\u0a7d\u0005\u03c6", + "\u01e4\u0002\u0a7c\u0a72\u0003\u0002\u0002\u0002\u0a7c\u0a77\u0003\u0002", + "\u0002\u0002\u0a7d\u0a7e\u0003\u0002\u0002\u0002\u0a7e\u0a7c\u0003\u0002", + "\u0002\u0002\u0a7e\u0a7f\u0003\u0002\u0002\u0002\u0a7f\u00ff\u0003\u0002", + "\u0002\u0002\u0a80\u0a81\u0007g\u0002\u0002\u0a81\u0a85\u0007\u0148", + "\u0002\u0002\u0a82\u0a83\u0005\u03c6\u01e4\u0002\u0a83\u0a84\u0007\u0337", + "\u0002\u0002\u0a84\u0a86\u0003\u0002\u0002\u0002\u0a85\u0a82\u0003\u0002", + "\u0002\u0002\u0a85\u0a86\u0003\u0002\u0002\u0002\u0a86\u0a87\u0003\u0002", + "\u0002\u0002\u0a87\u0a88\u0005\u03c6\u01e4\u0002\u0a88\u0a89\u0007\u0337", + "\u0002\u0002\u0a89\u0a8a\u0005\u03c6\u01e4\u0002\u0a8a\u0101\u0003\u0002", + "\u0002\u0002\u0a8b\u0a8c\u0007g\u0002\u0002\u0a8c\u0a8d\u0007\u02eb", + "\u0002\u0002\u0a8d\u0a8e\u0007\u00ac\u0002\u0002\u0a8e\u0a92\u0005\u03c6", + "\u01e4\u0002\u0a8f\u0a90\u0007\u02a9\u0002\u0002\u0a90\u0a91\u0007\u0291", + "\u0002\u0002\u0a91\u0a93\u0007\u00ac\u0002\u0002\u0a92\u0a8f\u0003\u0002", + "\u0002\u0002\u0a92\u0a93\u0003\u0002\u0002\u0002\u0a93\u0103\u0003\u0002", + "\u0002\u0002\u0a94\u0a95\u0007g\u0002\u0002\u0a95\u0a98\u0007\u02ed", + "\u0002\u0002\u0a96\u0a97\u0007\u0099\u0002\u0002\u0a97\u0a99\u0007w", + "\u0002\u0002\u0a98\u0a96\u0003\u0002\u0002\u0002\u0a98\u0a99\u0003\u0002", + "\u0002\u0002\u0a99\u0a9d\u0003\u0002\u0002\u0002\u0a9a\u0a9b\u0005\u03c6", + "\u01e4\u0002\u0a9b\u0a9c\u0007\u0337\u0002\u0002\u0a9c\u0a9e\u0003\u0002", + "\u0002\u0002\u0a9d\u0a9a\u0003\u0002\u0002\u0002\u0a9d\u0a9e\u0003\u0002", + "\u0002\u0002\u0a9e\u0a9f\u0003\u0002\u0002\u0002\u0a9f\u0aa0\u0005\u03c6", + "\u01e4\u0002\u0aa0\u0105\u0003\u0002\u0002\u0002\u0aa1\u0aa2\u0007g", + "\u0002\u0002\u0aa2\u0aa5\u0007\u016e\u0002\u0002\u0aa3\u0aa4\u0007\u0099", + "\u0002\u0002\u0aa4\u0aa6\u0007w\u0002\u0002\u0aa5\u0aa3\u0003\u0002", + "\u0002\u0002\u0aa5\u0aa6\u0003\u0002\u0002\u0002\u0aa6\u0aa7\u0003\u0002", + "\u0002\u0002\u0aa7\u0aa8\u0005\u03c6\u01e4\u0002\u0aa8\u0107\u0003\u0002", + "\u0002\u0002\u0aa9\u0aaa\u0007g\u0002\u0002\u0aaa\u0aab\u0007\u0314", + "\u0002\u0002\u0aab\u0aac\u0007\u0092\u0002\u0002\u0aac\u0aad\u0005\u03c6", + "\u01e4\u0002\u0aad\u0109\u0003\u0002\u0002\u0002\u0aae\u0aaf\u0007g", + "\u0002\u0002\u0aaf\u0ab0\u0007\u0315\u0002\u0002\u0ab0\u0ab1\u0007\u012e", + "\u0002\u0002\u0ab1\u0ab5\u0007\u01b5\u0002\u0002\u0ab2\u0ab3\u0005\u03c6", + "\u01e4\u0002\u0ab3\u0ab4\u0007\u0337\u0002\u0002\u0ab4\u0ab6\u0003\u0002", + "\u0002\u0002\u0ab5\u0ab2\u0003\u0002\u0002\u0002\u0ab5\u0ab6\u0003\u0002", + "\u0002\u0002\u0ab6\u0ab7\u0003\u0002\u0002\u0002\u0ab7\u0ab8\u0005\u03c6", + "\u01e4\u0002\u0ab8\u010b\u0003\u0002\u0002\u0002\u0ab9\u0aba\u0007\u01e0", + "\u0002\u0002\u0aba\u0ac9\u0007\u0160\u0002\u0002\u0abb\u0abd\u0007\u033e", + "\u0002\u0002\u0abc\u0abb\u0003\u0002\u0002\u0002\u0abc\u0abd\u0003\u0002", + "\u0002\u0002\u0abd\u0ac1\u0003\u0002\u0002\u0002\u0abe\u0abf\u0005\u03c6", + "\u01e4\u0002\u0abf\u0ac0\u0007\u0337\u0002\u0002\u0ac0\u0ac2\u0003\u0002", + "\u0002\u0002\u0ac1\u0abe\u0003\u0002\u0002\u0002\u0ac1\u0ac2\u0003\u0002", + "\u0002\u0002\u0ac2\u0ac3\u0003\u0002\u0002\u0002\u0ac3\u0ac5\u0005\u03c6", + "\u01e4\u0002\u0ac4\u0abc\u0003\u0002\u0002\u0002\u0ac5\u0ac6\u0003\u0002", + "\u0002\u0002\u0ac6\u0ac4\u0003\u0002\u0002\u0002\u0ac6\u0ac7\u0003\u0002", + "\u0002\u0002\u0ac7\u0aca\u0003\u0002\u0002\u0002\u0ac8\u0aca\u0007\u0006", + "\u0002\u0002\u0ac9\u0ac4\u0003\u0002\u0002\u0002\u0ac9\u0ac8\u0003\u0002", + "\u0002\u0002\u0aca\u0acb\u0003\u0002\u0002\u0002\u0acb\u0ad5\u0007\u00e5", + "\u0002\u0002\u0acc\u0acd\u0005\u03c6\u01e4\u0002\u0acd\u0ace\u0007\u0337", + "\u0002\u0002\u0ace\u0ad0\u0003\u0002\u0002\u0002\u0acf\u0acc\u0003\u0002", + "\u0002\u0002\u0acf\u0ad0\u0003\u0002\u0002\u0002\u0ad0\u0ad1\u0003\u0002", + "\u0002\u0002\u0ad1\u0ad6\u0005\u03c6\u01e4\u0002\u0ad2\u0ad6\u0007T", + "\u0002\u0002\u0ad3\u0ad4\u0007\u0006\u0002\u0002\u0ad4\u0ad6\u0007\u0135", + "\u0002\u0002\u0ad5\u0acf\u0003\u0002\u0002\u0002\u0ad5\u0ad2\u0003\u0002", + "\u0002\u0002\u0ad5\u0ad3\u0003\u0002\u0002\u0002\u0ad6\u010d\u0003\u0002", + "\u0002\u0002\u0ad7\u0ad8\u0007\u01e9\u0002\u0002\u0ad8\u0ae7\u0007\u0160", + "\u0002\u0002\u0ad9\u0adb\u0007\u033e\u0002\u0002\u0ada\u0ad9\u0003\u0002", + "\u0002\u0002\u0ada\u0adb\u0003\u0002\u0002\u0002\u0adb\u0adf\u0003\u0002", + "\u0002\u0002\u0adc\u0add\u0005\u03c6\u01e4\u0002\u0add\u0ade\u0007\u0337", + "\u0002\u0002\u0ade\u0ae0\u0003\u0002\u0002\u0002\u0adf\u0adc\u0003\u0002", + "\u0002\u0002\u0adf\u0ae0\u0003\u0002\u0002\u0002\u0ae0\u0ae1\u0003\u0002", + "\u0002\u0002\u0ae1\u0ae3\u0005\u03c6\u01e4\u0002\u0ae2\u0ada\u0003\u0002", + "\u0002\u0002\u0ae3\u0ae4\u0003\u0002\u0002\u0002\u0ae4\u0ae2\u0003\u0002", + "\u0002\u0002\u0ae4\u0ae5\u0003\u0002\u0002\u0002\u0ae5\u0ae8\u0003\u0002", + "\u0002\u0002\u0ae6\u0ae8\u0007\u0006\u0002\u0002\u0ae7\u0ae2\u0003\u0002", + "\u0002\u0002\u0ae7\u0ae6\u0003\u0002\u0002\u0002\u0ae8\u0ae9\u0003\u0002", + "\u0002\u0002\u0ae9\u0af3\u0007\u00e5\u0002\u0002\u0aea\u0aeb\u0005\u03c6", + "\u01e4\u0002\u0aeb\u0aec\u0007\u0337\u0002\u0002\u0aec\u0aee\u0003\u0002", + "\u0002\u0002\u0aed\u0aea\u0003\u0002\u0002\u0002\u0aed\u0aee\u0003\u0002", + "\u0002\u0002\u0aee\u0aef\u0003\u0002\u0002\u0002\u0aef\u0af4\u0005\u03c6", + "\u01e4\u0002\u0af0\u0af4\u0007T\u0002\u0002\u0af1\u0af2\u0007\u0006", + "\u0002\u0002\u0af2\u0af4\u0007\u0135\u0002\u0002\u0af3\u0aed\u0003\u0002", + "\u0002\u0002\u0af3\u0af0\u0003\u0002\u0002\u0002\u0af3\u0af1\u0003\u0002", + "\u0002\u0002\u0af4\u010f\u0003\u0002\u0002\u0002\u0af5\u0af6\u0007\u0239", + "\u0002\u0002\u0af6\u0af7\u0007\u0153\u0002\u0002\u0af7\u0af8\u0005\u038e", + "\u01c8\u0002\u0af8\u0af9\u0007\u009b\u0002\u0002\u0af9\u0afa\t\u0016", + "\u0002\u0002\u0afa\u0afe\u0007\u0259\u0002\u0002\u0afb\u0afc\u0007\u0310", + "\u0002\u0002\u0afc\u0aff\u0007\u0322\u0002\u0002\u0afd\u0aff\u0007\u026c", + "\u0002\u0002\u0afe\u0afb\u0003\u0002\u0002\u0002\u0afe\u0afd\u0003\u0002", + "\u0002\u0002\u0afe\u0aff\u0003\u0002\u0002\u0002\u0aff\u0b01\u0003\u0002", + "\u0002\u0002\u0b00\u0b02\u0007\u033f\u0002\u0002\u0b01\u0b00\u0003\u0002", + "\u0002\u0002\u0b01\u0b02\u0003\u0002\u0002\u0002\u0b02\u0111\u0003\u0002", + "\u0002\u0002\u0b03\u0b04\u0007\u0161\u0002\u0002\u0b04\u0b05\u0007\u0153", + "\u0002\u0002\u0b05\u0b19\u0005\u038e\u01c8\u0002\u0b06\u0b07\u0007\u0179", + "\u0002\u0002\u0b07\u0b08\u0007\u033c\u0002\u0002\u0b08\u0b09\u0007\u0281", + "\u0002\u0002\u0b09\u0b13\u0007\u033c\u0002\u0002\u0b0a\u0b0c\u0007\u033e", + "\u0002\u0002\u0b0b\u0b0a\u0003\u0002\u0002\u0002\u0b0b\u0b0c\u0003\u0002", + "\u0002\u0002\u0b0c\u0b11\u0003\u0002\u0002\u0002\u0b0d\u0b12\u0007\u0322", + "\u0002\u0002\u0b0e\u0b0f\u0007\u0322\u0002\u0002\u0b0f\u0b10\u0007\u015a", + "\u0002\u0002\u0b10\u0b12\u0007\u0322\u0002\u0002\u0b11\u0b0d\u0003\u0002", + "\u0002\u0002\u0b11\u0b0e\u0003\u0002\u0002\u0002\u0b12\u0b14\u0003\u0002", + "\u0002\u0002\u0b13\u0b0b\u0003\u0002\u0002\u0002\u0b14\u0b15\u0003\u0002", + "\u0002\u0002\u0b15\u0b13\u0003\u0002\u0002\u0002\u0b15\u0b16\u0003\u0002", + "\u0002\u0002\u0b16\u0b17\u0003\u0002\u0002\u0002\u0b17\u0b18\u0007\u033d", + "\u0002\u0002\u0b18\u0b1a\u0007\u033d\u0002\u0002\u0b19\u0b06\u0003\u0002", + "\u0002\u0002\u0b19\u0b1a\u0003\u0002\u0002\u0002\u0b1a\u0113\u0003\u0002", + "\u0002\u0002\u0b1b\u0b1c\u0007I\u0002\u0002\u0b1c\u0b1d\u00078\u0002", + "\u0002\u0b1d\u0b1e\u0007\u00bd\u0002\u0002\u0b1e\u0b1f\u0007\u00ac\u0002", + "\u0002\u0b1f\u0b20\u0005\u03c6\u01e4\u0002\u0b20\u0b21\u0007\u0179\u0002", + "\u0002\u0b21\u0b22\u0007\u033c\u0002\u0002\u0b22\u0b23\u0007\u00ae\u0002", + "\u0002\u0b23\u0b24\u0007\u032a\u0002\u0002\u0b24\u0b25\u0007\u0326\u0002", + "\u0002\u0b25\u0b26\u0007\u033e\u0002\u0002\u0b26\u0b27\u0007\u00ad\u0002", + "\u0002\u0b27\u0b28\u0007\u032a\u0002\u0002\u0b28\u0b29\u0007\u0326\u0002", + "\u0002\u0b29\u0b2a\u0007\u033d\u0002\u0002\u0b2a\u0115\u0003\u0002\u0002", + "\u0002\u0b2b\u0b2c\u0007\n\u0002\u0002\u0b2c\u0b2d\u0007\u01c4\u0002", + "\u0002\u0b2d\u0b2e\u0005\u03c6\u01e4\u0002\u0b2e\u0b2f\u0007\u0179\u0002", + "\u0002\u0b2f\u0b30\u0007\u0096\u0002\u0002\u0b30\u0b31\u0007\u032a\u0002", + "\u0002\u0b31\u0b36\u0007\u0326\u0002\u0002\u0b32\u0b33\u0007\u033e\u0002", + "\u0002\u0b33\u0b34\u0007\u02c7\u0002\u0002\u0b34\u0b35\u0007\u032a\u0002", + "\u0002\u0b35\u0b37\u0007\u0326\u0002\u0002\u0b36\u0b32\u0003\u0002\u0002", + "\u0002\u0b36\u0b37\u0003\u0002\u0002\u0002\u0b37\u0117\u0003\u0002\u0002", + "\u0002\u0b38\u0b39\u0007I\u0002\u0002\u0b39\u0b3a\u0007\u01c4\u0002", + "\u0002\u0b3a\u0b3b\u0005\u03c6\u01e4\u0002\u0b3b\u0b3c\u0007\u0179\u0002", + "\u0002\u0b3c\u0b3d\u0007\u0096\u0002\u0002\u0b3d\u0b3e\u0007\u032a\u0002", + "\u0002\u0b3e\u0b43\u0007\u0326\u0002\u0002\u0b3f\u0b40\u0007\u033e\u0002", + "\u0002\u0b40\u0b41\u0007\u02c7\u0002\u0002\u0b41\u0b42\u0007\u032a\u0002", + "\u0002\u0b42\u0b44\u0007\u0326\u0002\u0002\u0b43\u0b3f\u0003\u0002\u0002", + "\u0002\u0b43\u0b44\u0003\u0002\u0002\u0002\u0b44\u0b49\u0003\u0002\u0002", + "\u0002\u0b45\u0b46\u0007\u0085\u0002\u0002\u0b46\u0b47\u0007\u01c5\u0002", + "\u0002\u0b47\u0b48\u0007\u0291\u0002\u0002\u0b48\u0b4a\u0005\u03c6\u01e4", + "\u0002\u0b49\u0b45\u0003\u0002\u0002\u0002\u0b49\u0b4a\u0003\u0002\u0002", + "\u0002\u0b4a\u0119\u0003\u0002\u0002\u0002\u0b4b\u0b4c\u0007\n\u0002", + "\u0002\u0b4c\u0b4d\u0007\u01c5\u0002\u0002\u0b4d\u0b4e\u0007\u0291\u0002", + "\u0002\u0b4e\u0b53\u0005\u03c6\u01e4\u0002\u0b4f\u0b50\u0007\u008b\u0002", + "\u0002\u0b50\u0b51\u0007\u0081\u0002\u0002\u0b51\u0b52\u0007\u032a\u0002", + "\u0002\u0b52\u0b54\u0007\u0326\u0002\u0002\u0b53\u0b4f\u0003\u0002\u0002", + "\u0002\u0b53\u0b54\u0003\u0002\u0002\u0002\u0b54\u0b56\u0003\u0002\u0002", + "\u0002\u0b55\u0b57\t\u0017\u0002\u0002\u0b56\u0b55\u0003\u0002\u0002", + "\u0002\u0b56\u0b57\u0003\u0002\u0002\u0002\u0b57\u011b\u0003\u0002\u0002", + "\u0002\u0b58\u0b59\u0007I\u0002\u0002\u0b59\u0b5a\u0007\u01c5\u0002", + "\u0002\u0b5a\u0b5b\u0007\u0291\u0002\u0002\u0b5b\u0b5c\u0005\u03c6\u01e4", + "\u0002\u0b5c\u0b5d\u0007\u008b\u0002\u0002\u0b5d\u0b5e\u0007\u0081\u0002", + "\u0002\u0b5e\u0b5f\u0007\u032a\u0002\u0002\u0b5f\u0b60\u0007\u0326\u0002", + "\u0002\u0b60\u011d\u0003\u0002\u0002\u0002\u0b61\u0b62\u0007I\u0002", + "\u0002\u0b62\u0b63\u0007q\u0002\u0002\u0b63\u0b64\u0007\u00dd\u0002", + "\u0002\u0b64\u0b65\u0005\u03c6\u01e4\u0002\u0b65\u0b6a\u0007\u00e5\u0002", + "\u0002\u0b66\u0b6b\u0007\u0135\u0002\u0002\u0b67\u0b6b\u0007T\u0002", + "\u0002\u0b68\u0b69\u0007\u0294\u0002\u0002\u0b69\u0b6b\u0005\u03c6\u01e4", + "\u0002\u0b6a\u0b66\u0003\u0002\u0002\u0002\u0b6a\u0b67\u0003\u0002\u0002", + "\u0002\u0b6a\u0b68\u0003\u0002\u0002\u0002\u0b6b\u0b6e\u0003\u0002\u0002", + "\u0002\u0b6c\u0b6d\u0007\u0179\u0002\u0002\u0b6d\u0b6f\u0007\u007f\u0002", + "\u0002\u0b6e\u0b6c\u0003\u0002\u0002\u0002\u0b6e\u0b6f\u0003\u0002\u0002", + "\u0002\u0b6f\u0b70\u0003\u0002\u0002\u0002\u0b70\u0b75\u0007\u0085\u0002", + "\u0002\u0b71\u0b73\u0007\u033e\u0002\u0002\u0b72\u0b71\u0003\u0002\u0002", + "\u0002\u0b72\u0b73\u0003\u0002\u0002\u0002\u0b73\u0b74\u0003\u0002\u0002", + "\u0002\u0b74\u0b76\u0005\u03c6\u01e4\u0002\u0b75\u0b72\u0003\u0002\u0002", + "\u0002\u0b76\u0b77\u0003\u0002\u0002\u0002\u0b77\u0b75\u0003\u0002\u0002", + "\u0002\u0b77\u0b78\u0003\u0002\u0002\u0002\u0b78\u0b79\u0003\u0002\u0002", + "\u0002\u0b79\u0b7a\u0007\u015a\u0002\u0002\u0b7a\u0b7b\u0007\u0136\u0002", + "\u0002\u0b7b\u0b7c\u0007\u0326\u0002\u0002\u0b7c\u0b7d\u0007\u033e\u0002", + "\u0002\u0b7d\u0b7e\u0007\u0326\u0002\u0002\u0b7e\u011f\u0003\u0002\u0002", + "\u0002\u0b7f\u0b80\t\u0014\u0002\u0002\u0b80\u0b81\u0007q\u0002\u0002", + "\u0b81\u0b82\u0007\u0139\u0002\u0002\u0b82\u0b83\u0005\u03c6\u01e4\u0002", + "\u0b83\u0b84\u0007\u00e5\u0002\u0002\u0b84\u0bc8\u0007\u0135\u0002\u0002", + "\u0b85\u0b87\u0007\u033e\u0002\u0002\u0b86\u0b85\u0003\u0002\u0002\u0002", + "\u0b86\u0b87\u0003\u0002\u0002\u0002\u0b87\u0b88\u0003\u0002\u0002\u0002", + "\u0b88\u0b89\u0007\u0004\u0002\u0002\u0b89\u0b8d\u0007q\u0002\u0002", + "\u0b8a\u0b8b\u0005\u03c6\u01e4\u0002\u0b8b\u0b8c\u0007\u0337\u0002\u0002", + "\u0b8c\u0b8e\u0003\u0002\u0002\u0002\u0b8d\u0b8a\u0003\u0002\u0002\u0002", + "\u0b8d\u0b8e\u0003\u0002\u0002\u0002\u0b8e\u0b8f\u0003\u0002\u0002\u0002", + "\u0b8f\u0b90\u0005\u03c6\u01e4\u0002\u0b90\u0b91\u0007\u0337\u0002\u0002", + "\u0b91\u0b92\u0005\u03c6\u01e4\u0002\u0b92\u0bc3\u0003\u0002\u0002\u0002", + "\u0b93\u0ba1\u0007\u033c\u0002\u0002\u0b94\u0b9e\u0007\u013b\u0002\u0002", + "\u0b95\u0b97\u0007\u033e\u0002\u0002\u0b96\u0b95\u0003\u0002\u0002\u0002", + "\u0b96\u0b97\u0003\u0002\u0002\u0002\u0b97\u0b98\u0003\u0002\u0002\u0002", + "\u0b98\u0b99\u0005\u03c6\u01e4\u0002\u0b99\u0b9a\u0007\u032a\u0002\u0002", + "\u0b9a\u0b9b\t\u0018\u0002\u0002\u0b9b\u0b9d\u0003\u0002\u0002\u0002", + "\u0b9c\u0b96\u0003\u0002\u0002\u0002\u0b9d\u0ba0\u0003\u0002\u0002\u0002", + "\u0b9e\u0b9c\u0003\u0002\u0002\u0002\u0b9e\u0b9f\u0003\u0002\u0002\u0002", + "\u0b9f\u0ba2\u0003\u0002\u0002\u0002\u0ba0\u0b9e\u0003\u0002\u0002\u0002", + "\u0ba1\u0b94\u0003\u0002\u0002\u0002\u0ba1\u0ba2\u0003\u0002\u0002\u0002", + "\u0ba2\u0bb7\u0003\u0002\u0002\u0002\u0ba3\u0ba4\u0007\u0180\u0002\u0002", + "\u0ba4\u0bb1\u0007\u033c\u0002\u0002\u0ba5\u0ba7\u0007\u033e\u0002\u0002", + "\u0ba6\u0ba5\u0003\u0002\u0002\u0002\u0ba6\u0ba7\u0003\u0002\u0002\u0002", + "\u0ba7\u0bab\u0003\u0002\u0002\u0002\u0ba8\u0ba9\u0005\u03c6\u01e4\u0002", + "\u0ba9\u0baa\u0007\u0337\u0002\u0002\u0baa\u0bac\u0003\u0002\u0002\u0002", + "\u0bab\u0ba8\u0003\u0002\u0002\u0002\u0bab\u0bac\u0003\u0002\u0002\u0002", + "\u0bac\u0bad\u0003\u0002\u0002\u0002\u0bad\u0bae\u0005\u03c6\u01e4\u0002", + "\u0bae\u0baf\u0007\u0337\u0002\u0002\u0baf\u0bb0\u0005\u03c6\u01e4\u0002", + "\u0bb0\u0bb2\u0003\u0002\u0002\u0002\u0bb1\u0ba6\u0003\u0002\u0002\u0002", + "\u0bb2\u0bb3\u0003\u0002\u0002\u0002\u0bb3\u0bb1\u0003\u0002\u0002\u0002", + "\u0bb3\u0bb4\u0003\u0002\u0002\u0002\u0bb4\u0bb5\u0003\u0002\u0002\u0002", + "\u0bb5\u0bb6\u0007\u033d\u0002\u0002\u0bb6\u0bb8\u0003\u0002\u0002\u0002", + "\u0bb7\u0ba3\u0003\u0002\u0002\u0002\u0bb8\u0bb9\u0003\u0002\u0002\u0002", + "\u0bb9\u0bb7\u0003\u0002\u0002\u0002\u0bb9\u0bba\u0003\u0002\u0002\u0002", + "\u0bba\u0bbd\u0003\u0002\u0002\u0002\u0bbb\u0bbc\u0007\u0176\u0002\u0002", + "\u0bbc\u0bbe\u0005\u0122\u0092\u0002\u0bbd\u0bbb\u0003\u0002\u0002\u0002", + "\u0bbd\u0bbe\u0003\u0002\u0002\u0002\u0bbe\u0bbf\u0003\u0002\u0002\u0002", + "\u0bbf\u0bc0\u0007\u033d\u0002\u0002\u0bc0\u0bc2\u0003\u0002\u0002\u0002", + "\u0bc1\u0b93\u0003\u0002\u0002\u0002\u0bc2\u0bc5\u0003\u0002\u0002\u0002", + "\u0bc3\u0bc1\u0003\u0002\u0002\u0002\u0bc3\u0bc4\u0003\u0002\u0002\u0002", + "\u0bc4\u0bc7\u0003\u0002\u0002\u0002\u0bc5\u0bc3\u0003\u0002\u0002\u0002", + "\u0bc6\u0b86\u0003\u0002\u0002\u0002\u0bc7\u0bca\u0003\u0002\u0002\u0002", + "\u0bc8\u0bc6\u0003\u0002\u0002\u0002\u0bc8\u0bc9\u0003\u0002\u0002\u0002", + "\u0bc9\u0bdb\u0003\u0002\u0002\u0002\u0bca\u0bc8\u0003\u0002\u0002\u0002", + "\u0bcb\u0bcd\u0007\u033e\u0002\u0002\u0bcc\u0bcb\u0003\u0002\u0002\u0002", + "\u0bcc\u0bcd\u0003\u0002\u0002\u0002\u0bcd\u0bce\u0003\u0002\u0002\u0002", + "\u0bce\u0bcf\u0007g\u0002\u0002\u0bcf\u0bd3\u0007q\u0002\u0002\u0bd0", + "\u0bd1\u0005\u03c6\u01e4\u0002\u0bd1\u0bd2\u0007\u0337\u0002\u0002\u0bd2", + "\u0bd4\u0003\u0002\u0002\u0002\u0bd3\u0bd0\u0003\u0002\u0002\u0002\u0bd3", + "\u0bd4\u0003\u0002\u0002\u0002\u0bd4\u0bd5\u0003\u0002\u0002\u0002\u0bd5", + "\u0bd6\u0005\u03c6\u01e4\u0002\u0bd6\u0bd7\u0007\u0337\u0002\u0002\u0bd7", + "\u0bd8\u0005\u03c6\u01e4\u0002\u0bd8\u0bda\u0003\u0002\u0002\u0002\u0bd9", + "\u0bcc\u0003\u0002\u0002\u0002\u0bda\u0bdd\u0003\u0002\u0002\u0002\u0bdb", + "\u0bd9\u0003\u0002\u0002\u0002\u0bdb\u0bdc\u0003\u0002\u0002\u0002\u0bdc", + "\u0c07\u0003\u0002\u0002\u0002\u0bdd\u0bdb\u0003\u0002\u0002\u0002\u0bde", + "\u0bdf\u0007\u0004\u0002\u0002\u0bdf\u0be3\u0007\u0156\u0002\u0002\u0be0", + "\u0be1\u0005\u03c6\u01e4\u0002\u0be1\u0be2\u0007\u0337\u0002\u0002\u0be2", + "\u0be4\u0003\u0002\u0002\u0002\u0be3\u0be0\u0003\u0002\u0002\u0002\u0be3", + "\u0be4\u0003\u0002\u0002\u0002\u0be4\u0be5\u0003\u0002\u0002\u0002\u0be5", + "\u0be6\u0005\u03c6\u01e4\u0002\u0be6\u0be7\u0007\u0337\u0002\u0002\u0be7", + "\u0be8\u0005\u03c6\u01e4\u0002\u0be8\u0c02\u0003\u0002\u0002\u0002\u0be9", + "\u0bea\u0007\u033c\u0002\u0002\u0bea\u0bfa\u0007\u013b\u0002\u0002\u0beb", + "\u0bed\u0007\u033e\u0002\u0002\u0bec\u0beb\u0003\u0002\u0002\u0002\u0bec", + "\u0bed\u0003\u0002\u0002\u0002\u0bed\u0bee\u0003\u0002\u0002\u0002\u0bee", + "\u0bef\u0005\u03c6\u01e4\u0002\u0bef\u0bf8\u0007\u032a\u0002\u0002\u0bf0", + "\u0bf2\u0007\u033c\u0002\u0002\u0bf1\u0bf0\u0003\u0002\u0002\u0002\u0bf1", + "\u0bf2\u0003\u0002\u0002\u0002\u0bf2\u0bf3\u0003\u0002\u0002\u0002\u0bf3", + "\u0bf5\u0007\u0322\u0002\u0002\u0bf4\u0bf6\u0007\u033d\u0002\u0002\u0bf5", + "\u0bf4\u0003\u0002\u0002\u0002\u0bf5\u0bf6\u0003\u0002\u0002\u0002\u0bf6", + "\u0bf9\u0003\u0002\u0002\u0002\u0bf7\u0bf9\u0007\u0326\u0002\u0002\u0bf8", + "\u0bf1\u0003\u0002\u0002\u0002\u0bf8\u0bf7\u0003\u0002\u0002\u0002\u0bf9", + "\u0bfb\u0003\u0002\u0002\u0002\u0bfa\u0bec\u0003\u0002\u0002\u0002\u0bfb", + "\u0bfc\u0003\u0002\u0002\u0002\u0bfc\u0bfa\u0003\u0002\u0002\u0002\u0bfc", + "\u0bfd\u0003\u0002\u0002\u0002\u0bfd\u0bfe\u0003\u0002\u0002\u0002\u0bfe", + "\u0bff\u0007\u033d\u0002\u0002\u0bff\u0c01\u0003\u0002\u0002\u0002\u0c00", + "\u0be9\u0003\u0002\u0002\u0002\u0c01\u0c04\u0003\u0002\u0002\u0002\u0c02", + "\u0c00\u0003\u0002\u0002\u0002\u0c02\u0c03\u0003\u0002\u0002\u0002\u0c03", + "\u0c06\u0003\u0002\u0002\u0002\u0c04\u0c02\u0003\u0002\u0002\u0002\u0c05", + "\u0bde\u0003\u0002\u0002\u0002\u0c06\u0c09\u0003\u0002\u0002\u0002\u0c07", + "\u0c05\u0003\u0002\u0002\u0002\u0c07\u0c08\u0003\u0002\u0002\u0002\u0c08", + "\u0c17\u0003\u0002\u0002\u0002\u0c09\u0c07\u0003\u0002\u0002\u0002\u0c0a", + "\u0c0b\u0007g\u0002\u0002\u0c0b\u0c0f\u0007\u0156\u0002\u0002\u0c0c", + "\u0c0d\u0005\u03c6\u01e4\u0002\u0c0d\u0c0e\u0007\u0337\u0002\u0002\u0c0e", + "\u0c10\u0003\u0002\u0002\u0002\u0c0f\u0c0c\u0003\u0002\u0002\u0002\u0c0f", + "\u0c10\u0003\u0002\u0002\u0002\u0c10\u0c11\u0003\u0002\u0002\u0002\u0c11", + "\u0c12\u0005\u03c6\u01e4\u0002\u0c12\u0c13\u0007\u0337\u0002\u0002\u0c13", + "\u0c14\u0005\u03c6\u01e4\u0002\u0c14\u0c16\u0003\u0002\u0002\u0002\u0c15", + "\u0c0a\u0003\u0002\u0002\u0002\u0c16\u0c19\u0003\u0002\u0002\u0002\u0c17", + "\u0c15\u0003\u0002\u0002\u0002\u0c17\u0c18\u0003\u0002\u0002\u0002\u0c18", + "\u0c5b\u0003\u0002\u0002\u0002\u0c19\u0c17\u0003\u0002\u0002\u0002\u0c1a", + "\u0c1b\u0007\u0179\u0002\u0002\u0c1b\u0c23\u0007\u033c\u0002\u0002\u0c1c", + "\u0c1e\u0007\u033e\u0002\u0002\u0c1d\u0c1c\u0003\u0002\u0002\u0002\u0c1d", + "\u0c1e\u0003\u0002\u0002\u0002\u0c1e\u0c1f\u0003\u0002\u0002\u0002\u0c1f", + "\u0c20\u0007\u00be\u0002\u0002\u0c20\u0c21\u0007\u032a\u0002\u0002\u0c21", + "\u0c22\u0007\u0322\u0002\u0002\u0c22\u0c24\t\u0019\u0002\u0002\u0c23", + "\u0c1d\u0003\u0002\u0002\u0002\u0c23\u0c24\u0003\u0002\u0002\u0002\u0c24", + "\u0c2b\u0003\u0002\u0002\u0002\u0c25\u0c27\u0007\u033e\u0002\u0002\u0c26", + "\u0c25\u0003\u0002\u0002\u0002\u0c26\u0c27\u0003\u0002\u0002\u0002\u0c27", + "\u0c28\u0003\u0002\u0002\u0002\u0c28\u0c29\u0007s\u0002\u0002\u0c29", + "\u0c2a\u0007\u032a\u0002\u0002\u0c2a\u0c2c\t\u001a\u0002\u0002\u0c2b", + "\u0c26\u0003\u0002\u0002\u0002\u0c2b\u0c2c\u0003\u0002\u0002\u0002\u0c2c", + "\u0c37\u0003\u0002\u0002\u0002\u0c2d\u0c2f\u0007\u033e\u0002\u0002\u0c2e", + "\u0c2d\u0003\u0002\u0002\u0002\u0c2e\u0c2f\u0003\u0002\u0002\u0002\u0c2f", + "\u0c30\u0003\u0002\u0002\u0002\u0c30\u0c31\u0007\u00c1\u0002\u0002\u0c31", + "\u0c35\u0007\u032a\u0002\u0002\u0c32\u0c33\u0007\u0322\u0002\u0002\u0c33", + "\u0c36\u0007\u02c6\u0002\u0002\u0c34\u0c36\u0007\u009f\u0002\u0002\u0c35", + "\u0c32\u0003\u0002\u0002\u0002\u0c35\u0c34\u0003\u0002\u0002\u0002\u0c36", + "\u0c38\u0003\u0002\u0002\u0002\u0c37\u0c2e\u0003\u0002\u0002\u0002\u0c37", + "\u0c38\u0003\u0002\u0002\u0002\u0c38\u0c40\u0003\u0002\u0002\u0002\u0c39", + "\u0c3b\u0007\u033e\u0002\u0002\u0c3a\u0c39\u0003\u0002\u0002\u0002\u0c3a", + "\u0c3b\u0003\u0002\u0002\u0002\u0c3b\u0c3c\u0003\u0002\u0002\u0002\u0c3c", + "\u0c3d\u0007\u00c2\u0002\u0002\u0c3d\u0c3e\u0007\u032a\u0002\u0002\u0c3e", + "\u0c3f\u0007\u0322\u0002\u0002\u0c3f\u0c41\t\u0019\u0002\u0002\u0c40", + "\u0c3a\u0003\u0002\u0002\u0002\u0c40\u0c41\u0003\u0002\u0002\u0002\u0c41", + "\u0c48\u0003\u0002\u0002\u0002\u0c42\u0c44\u0007\u033e\u0002\u0002\u0c43", + "\u0c42\u0003\u0002\u0002\u0002\u0c43\u0c44\u0003\u0002\u0002\u0002\u0c44", + "\u0c45\u0003\u0002\u0002\u0002\u0c45\u0c46\u0007\u00c8\u0002\u0002\u0c46", + "\u0c47\u0007\u032a\u0002\u0002\u0c47\u0c49\t\u001b\u0002\u0002\u0c48", + "\u0c43\u0003\u0002\u0002\u0002\u0c48\u0c49\u0003\u0002\u0002\u0002\u0c49", + "\u0c50\u0003\u0002\u0002\u0002\u0c4a\u0c4c\u0007\u033e\u0002\u0002\u0c4b", + "\u0c4a\u0003\u0002\u0002\u0002\u0c4b\u0c4c\u0003\u0002\u0002\u0002\u0c4c", + "\u0c4d\u0003\u0002\u0002\u0002\u0c4d\u0c4e\u0007\u015c\u0002\u0002\u0c4e", + "\u0c4f\u0007\u032a\u0002\u0002\u0c4f\u0c51\t\t\u0002\u0002\u0c50\u0c4b", + "\u0003\u0002\u0002\u0002\u0c50\u0c51\u0003\u0002\u0002\u0002\u0c51\u0c58", + "\u0003\u0002\u0002\u0002\u0c52\u0c54\u0007\u033e\u0002\u0002\u0c53\u0c52", + "\u0003\u0002\u0002\u0002\u0c53\u0c54\u0003\u0002\u0002\u0002\u0c54\u0c55", + "\u0003\u0002\u0002\u0002\u0c55\u0c56\u0007\u014d\u0002\u0002\u0c56\u0c57", + "\u0007\u032a\u0002\u0002\u0c57\u0c59\t\t\u0002\u0002\u0c58\u0c53\u0003", + "\u0002\u0002\u0002\u0c58\u0c59\u0003\u0002\u0002\u0002\u0c59\u0c5a\u0003", + "\u0002\u0002\u0002\u0c5a\u0c5c\u0007\u033d\u0002\u0002\u0c5b\u0c1a\u0003", + "\u0002\u0002\u0002\u0c5b\u0c5c\u0003\u0002\u0002\u0002\u0c5c\u0c60\u0003", + "\u0002\u0002\u0002\u0c5d\u0c5e\u0007\u0149\u0002\u0002\u0c5e\u0c5f\u0007", + "\u032a\u0002\u0002\u0c5f\u0c61\t\u001c\u0002\u0002\u0c60\u0c5d\u0003", + "\u0002\u0002\u0002\u0c60\u0c61\u0003\u0002\u0002\u0002\u0c61\u0121\u0003", + "\u0002\u0002\u0002\u0c62\u0c64\u0007\u033e\u0002\u0002\u0c63\u0c62\u0003", + "\u0002\u0002\u0002\u0c63\u0c64\u0003\u0002\u0002\u0002\u0c64\u0c66\u0003", + "\u0002\u0002\u0002\u0c65\u0c67\t\u001d\u0002\u0002\u0c66\u0c65\u0003", + "\u0002\u0002\u0002\u0c66\u0c67\u0003\u0002\u0002\u0002\u0c67\u0c69\u0003", + "\u0002\u0002\u0002\u0c68\u0c6a\u0007\u00dc\u0002\u0002\u0c69\u0c68\u0003", + "\u0002\u0002\u0002\u0c69\u0c6a\u0003\u0002\u0002\u0002\u0c6a\u0c70\u0003", + "\u0002\u0002\u0002\u0c6b\u0c71\u0005\u0124\u0093\u0002\u0c6c\u0c6d\u0007", + "\u033c\u0002\u0002\u0c6d\u0c6e\u0005\u0122\u0092\u0002\u0c6e\u0c6f\u0007", + "\u033d\u0002\u0002\u0c6f\u0c71\u0003\u0002\u0002\u0002\u0c70\u0c6b\u0003", + "\u0002\u0002\u0002\u0c70\u0c6c\u0003\u0002\u0002\u0002\u0c71\u0c73\u0003", + "\u0002\u0002\u0002\u0c72\u0c63\u0003\u0002\u0002\u0002\u0c73\u0c74\u0003", + "\u0002\u0002\u0002\u0c74\u0c72\u0003\u0002\u0002\u0002\u0c74\u0c75\u0003", + "\u0002\u0002\u0002\u0c75\u0123\u0003\u0002\u0002\u0002\u0c76\u0c7c\u0005", + "\u0126\u0094\u0002\u0c77\u0c78\u0007\u033c\u0002\u0002\u0c78\u0c79\u0005", + "\u0122\u0092\u0002\u0c79\u0c7a\u0007\u033d\u0002\u0002\u0c7a\u0c7c\u0003", + "\u0002\u0002\u0002\u0c7b\u0c76\u0003\u0002\u0002\u0002\u0c7b\u0c77\u0003", + "\u0002\u0002\u0002\u0c7c\u0125\u0003\u0002\u0002\u0002\u0c7d\u0c9a\u0005", + "\u03c6\u01e4\u0002\u0c7e\u0c89\u0005\u03c6\u01e4\u0002\u0c7f\u0c80\u0005", + "\u03c6\u01e4\u0002\u0c80\u0c81\u0007\u0337\u0002\u0002\u0c81\u0c83\u0003", + "\u0002\u0002\u0002\u0c82\u0c7f\u0003\u0002\u0002\u0002\u0c82\u0c83\u0003", + "\u0002\u0002\u0002\u0c83\u0c84\u0003\u0002\u0002\u0002\u0c84\u0c85\u0005", + "\u03c6\u01e4\u0002\u0c85\u0c86\u0007\u0337\u0002\u0002\u0c86\u0c87\u0005", + "\u03c6\u01e4\u0002\u0c87\u0c89\u0003\u0002\u0002\u0002\u0c88\u0c7e\u0003", + "\u0002\u0002\u0002\u0c88\u0c82\u0003\u0002\u0002\u0002\u0c89\u0c95\u0003", + "\u0002\u0002\u0002\u0c8a\u0c96\u0007\u032a\u0002\u0002\u0c8b\u0c8c\u0007", + "\u032c\u0002\u0002\u0c8c\u0c96\u0007\u032b\u0002\u0002\u0c8d\u0c8e\u0007", + "\u032d\u0002\u0002\u0c8e\u0c96\u0007\u032a\u0002\u0002\u0c8f\u0c96\u0007", + "\u032b\u0002\u0002\u0c90\u0c91\u0007\u032b\u0002\u0002\u0c91\u0c96\u0007", + "\u032a\u0002\u0002\u0c92\u0c96\u0007\u032c\u0002\u0002\u0c93\u0c94\u0007", + "\u032c\u0002\u0002\u0c94\u0c96\u0007\u032a\u0002\u0002\u0c95\u0c8a\u0003", + "\u0002\u0002\u0002\u0c95\u0c8b\u0003\u0002\u0002\u0002\u0c95\u0c8d\u0003", + "\u0002\u0002\u0002\u0c95\u0c8f\u0003\u0002\u0002\u0002\u0c95\u0c90\u0003", + "\u0002\u0002\u0002\u0c95\u0c92\u0003\u0002\u0002\u0002\u0c95\u0c93\u0003", + "\u0002\u0002\u0002\u0c96\u0c97\u0003\u0002\u0002\u0002\u0c97\u0c98\t", + "\u0018\u0002\u0002\u0c98\u0c9a\u0003\u0002\u0002\u0002\u0c99\u0c7d\u0003", + "\u0002\u0002\u0002\u0c99\u0c88\u0003\u0002\u0002\u0002\u0c9a\u0cb6\u0003", + "\u0002\u0002\u0002\u0c9b\u0c9c\u0005\u03c6\u01e4\u0002\u0c9c\u0c9d\u0007", + "\u0337\u0002\u0002\u0c9d\u0c9f\u0003\u0002\u0002\u0002\u0c9e\u0c9b\u0003", + "\u0002\u0002\u0002\u0c9e\u0c9f\u0003\u0002\u0002\u0002\u0c9f\u0ca0\u0003", + "\u0002\u0002\u0002\u0ca0\u0ca1\u0005\u03c6\u01e4\u0002\u0ca1\u0ca2\u0007", + "\u0337\u0002\u0002\u0ca2\u0ca3\u0005\u03c6\u01e4\u0002\u0ca3\u0cb1\u0007", + "\u033c\u0002\u0002\u0ca4\u0cb2\u0005\u03c6\u01e4\u0002\u0ca5\u0ca6\u0005", + "\u03c6\u01e4\u0002\u0ca6\u0ca7\u0007\u0337\u0002\u0002\u0ca7\u0ca9\u0003", + "\u0002\u0002\u0002\u0ca8\u0ca5\u0003\u0002\u0002\u0002\u0ca8\u0ca9\u0003", + "\u0002\u0002\u0002\u0ca9\u0caa\u0003\u0002\u0002\u0002\u0caa\u0cab\u0005", + "\u03c6\u01e4\u0002\u0cab\u0cac\u0007\u0337\u0002\u0002\u0cac\u0cad\u0005", + "\u03c6\u01e4\u0002\u0cad\u0cae\u0003\u0002\u0002\u0002\u0cae\u0caf\u0007", + "\u033e\u0002\u0002\u0caf\u0cb0\t\u0018\u0002\u0002\u0cb0\u0cb2\u0003", + "\u0002\u0002\u0002\u0cb1\u0ca4\u0003\u0002\u0002\u0002\u0cb1\u0ca8\u0003", + "\u0002\u0002\u0002\u0cb2\u0cb3\u0003\u0002\u0002\u0002\u0cb3\u0cb4\u0007", + "\u033d\u0002\u0002\u0cb4\u0cb6\u0003\u0002\u0002\u0002\u0cb5\u0c99\u0003", + "\u0002\u0002\u0002\u0cb5\u0c9e\u0003\u0002\u0002\u0002\u0cb6\u0127\u0003", + "\u0002\u0002\u0002\u0cb7\u0cb8\u0007\n\u0002\u0002\u0cb8\u0cb9\u0007", + "{\u0002\u0002\u0cb9\u0cba\u0007\u01c8\u0002\u0002\u0cba\u0cbb\u0007", + "\u0142\u0002\u0002\u0cbb\u0cbc\u0005\u03c6\u01e4\u0002\u0cbc\u0ccc\u0007", + "\u013b\u0002\u0002\u0cbd\u0cbe\u0007\u0238\u0002\u0002\u0cbe\u0cbf\u0007", + "\u032a\u0002\u0002\u0cbf\u0cc1\t\u001e\u0002\u0002\u0cc0\u0cc2\u0007", + "\u033e\u0002\u0002\u0cc1\u0cc0\u0003\u0002\u0002\u0002\u0cc1\u0cc2\u0003", + "\u0002\u0002\u0002\u0cc2\u0ccd\u0003\u0002\u0002\u0002\u0cc3\u0cc4\u0007", + "\u02b3\u0002\u0002\u0cc4\u0cc5\u0007\u032a\u0002\u0002\u0cc5\u0cc7\t", + "\u001e\u0002\u0002\u0cc6\u0cc8\u0007\u033e\u0002\u0002\u0cc7\u0cc6\u0003", + "\u0002\u0002\u0002\u0cc7\u0cc8\u0003\u0002\u0002\u0002\u0cc8\u0ccd\u0003", + "\u0002\u0002\u0002\u0cc9\u0cca\u0007\u01c4\u0002\u0002\u0cca\u0ccb\u0007", + "\u032a\u0002\u0002\u0ccb\u0ccd\u0005\u03c6\u01e4\u0002\u0ccc\u0cbd\u0003", + "\u0002\u0002\u0002\u0ccc\u0cc3\u0003\u0002\u0002\u0002\u0ccc\u0cc9\u0003", + "\u0002\u0002\u0002\u0ccd\u0cce\u0003\u0002\u0002\u0002\u0cce\u0ccc\u0003", + "\u0002\u0002\u0002\u0cce\u0ccf\u0003\u0002\u0002\u0002\u0ccf\u0ce7\u0003", + "\u0002\u0002\u0002\u0cd0\u0cd1\u0007\n\u0002\u0002\u0cd1\u0cd2\u0007", + "{\u0002\u0002\u0cd2\u0cd3\u0007\u01c8\u0002\u0002\u0cd3\u0cd4\u0007", + "\u0142\u0002\u0002\u0cd4\u0cd5\u0005\u03c6\u01e4\u0002\u0cd5\u0cd6\u0007", + "\u0179\u0002\u0002\u0cd6\u0cd7\u0007\u033c\u0002\u0002\u0cd7\u0cd8\u0007", + "\u0301\u0002\u0002\u0cd8\u0cd9\u0007\u032a\u0002\u0002\u0cd9\u0cda\u0007", + "\u01a7\u0002\u0002\u0cda\u0cdb\u0007\u033e\u0002\u0002\u0cdb\u0cdc\u0007", + "\u0238\u0002\u0002\u0cdc\u0cdd\u0007\u032a\u0002\u0002\u0cdd\u0ce2\u0007", + "\u0326\u0002\u0002\u0cde\u0cdf\u0007\u033e\u0002\u0002\u0cdf\u0ce0\u0007", + "\u01c4\u0002\u0002\u0ce0\u0ce1\u0007\u032a\u0002\u0002\u0ce1\u0ce3\u0005", + "\u03c6\u01e4\u0002\u0ce2\u0cde\u0003\u0002\u0002\u0002\u0ce2\u0ce3\u0003", + "\u0002\u0002\u0002\u0ce3\u0ce4\u0003\u0002\u0002\u0002\u0ce4\u0ce5\u0007", + "\u033d\u0002\u0002\u0ce5\u0ce7\u0003\u0002\u0002\u0002\u0ce6\u0cb7\u0003", + "\u0002\u0002\u0002\u0ce6\u0cd0\u0003\u0002\u0002\u0002\u0ce7\u0129\u0003", + "\u0002\u0002\u0002\u0ce8\u0ce9\u0007\n\u0002\u0002\u0ce9\u0cea\u0007", + "{\u0002\u0002\u0cea\u0ceb\u0007\u00b2\u0002\u0002\u0ceb\u0cee\u0005", + "\u03c6\u01e4\u0002\u0cec\u0ced\u0007\u0014\u0002\u0002\u0ced\u0cef\u0005", + "\u03c6\u01e4\u0002\u0cee\u0cec\u0003\u0002\u0002\u0002\u0cee\u0cef\u0003", + "\u0002\u0002\u0002\u0cef\u0cf0\u0003\u0002\u0002\u0002\u0cf0\u0cf1\t", + "\u001f\u0002\u0002\u0cf1\u0cf2\u0007\u033c\u0002\u0002\u0cf2\u0cf3\u0007", + "\u01bb\u0002\u0002\u0cf3\u0cf7\u0007\u032a\u0002\u0002\u0cf4\u0cf8\u0007", + "\u0326\u0002\u0002\u0cf5\u0cf8\u0007\u0327\u0002\u0002\u0cf6\u0cf8\u0007", + "\u00d5\u0002\u0002\u0cf7\u0cf4\u0003\u0002\u0002\u0002\u0cf7\u0cf5\u0003", + "\u0002\u0002\u0002\u0cf7\u0cf6\u0003\u0002\u0002\u0002\u0cf8\u0cf9\u0003", + "\u0002\u0002\u0002\u0cf9\u0cfa\u0007\u033e\u0002\u0002\u0cfa\u0cfb\u0007", + "\u00fc\u0002\u0002\u0cfb\u0cfd\u0007\u032a\u0002\u0002\u0cfc\u0cfe\t", + " \u0002\u0002\u0cfd\u0cfc\u0003\u0002\u0002\u0002\u0cfd\u0cfe\u0003", + "\u0002\u0002\u0002\u0cfe\u0cff\u0003\u0002\u0002\u0002\u0cff\u0d00\u0007", + "\u033d\u0002\u0002\u0d00\u0d01\u0003\u0002\u0002\u0002\u0d01\u0d0b\u0007", + "\u0179\u0002\u0002\u0d02\u0d04\u0007\u033e\u0002\u0002\u0d03\u0d02\u0003", + "\u0002\u0002\u0002\u0d03\u0d04\u0003\u0002\u0002\u0002\u0d04\u0d05\u0003", + "\u0002\u0002\u0002\u0d05\u0d06\u0007\u00b0\u0002\u0002\u0d06\u0d07\u0007", + "\u032a\u0002\u0002\u0d07\u0d0c\t!\u0002\u0002\u0d08\u0d09\u0007S\u0002", + "\u0002\u0d09\u0d0a\u0007\u032a\u0002\u0002\u0d0a\u0d0c\u0005\u03c6\u01e4", + "\u0002\u0d0b\u0d03\u0003\u0002\u0002\u0002\u0d0b\u0d08\u0003\u0002\u0002", + "\u0002\u0d0c\u0d0d\u0003\u0002\u0002\u0002\u0d0d\u0d0b\u0003\u0002\u0002", + "\u0002\u0d0d\u0d0e\u0003\u0002\u0002\u0002\u0d0e\u0d0f\u0003\u0002\u0002", + "\u0002\u0d0f\u0d10\u0007\u033d\u0002\u0002\u0d10\u012b\u0003\u0002\u0002", + "\u0002\u0d11\u0d12\u0007I\u0002\u0002\u0d12\u0d13\u0007{\u0002\u0002", + "\u0d13\u0d14\u0007\u00b2\u0002\u0002\u0d14\u0d17\u0005\u03c6\u01e4\u0002", + "\u0d15\u0d16\u0007\u0014\u0002\u0002\u0d16\u0d18\u0005\u03c6\u01e4\u0002", + "\u0d17\u0d15\u0003\u0002\u0002\u0002\u0d17\u0d18\u0003\u0002\u0002\u0002", + "\u0d18\u0d19\u0003\u0002\u0002\u0002\u0d19\u0d1b\u0007\u008b\u0002\u0002", + "\u0d1a\u0d1c\u0007\u033e\u0002\u0002\u0d1b\u0d1a\u0003\u0002\u0002\u0002", + "\u0d1b\u0d1c\u0003\u0002\u0002\u0002\u0d1c\u0d1e\u0003\u0002\u0002\u0002", + "\u0d1d\u0d1f\u0007\u033c\u0002\u0002\u0d1e\u0d1d\u0003\u0002\u0002\u0002", + "\u0d1e\u0d1f\u0003\u0002\u0002\u0002\u0d1f\u0d22\u0003\u0002\u0002\u0002", + "\u0d20\u0d21\u0007\u01bb\u0002\u0002\u0d21\u0d23\u0007\u032a\u0002\u0002", + "\u0d22\u0d20\u0003\u0002\u0002\u0002\u0d22\u0d23\u0003\u0002\u0002\u0002", + "\u0d23\u0d27\u0003\u0002\u0002\u0002\u0d24\u0d28\u0007\u0326\u0002\u0002", + "\u0d25\u0d28\u0007\u0327\u0002\u0002\u0d26\u0d28\u0007\u00d5\u0002\u0002", + "\u0d27\u0d24\u0003\u0002\u0002\u0002\u0d27\u0d25\u0003\u0002\u0002\u0002", + "\u0d27\u0d26\u0003\u0002\u0002\u0002\u0d28\u0d30\u0003\u0002\u0002\u0002", + "\u0d29\u0d2a\u0007\u033e\u0002\u0002\u0d2a\u0d2b\u0007\u00fc\u0002\u0002", + "\u0d2b\u0d2d\u0007\u032a\u0002\u0002\u0d2c\u0d2e\t \u0002\u0002\u0d2d", + "\u0d2c\u0003\u0002\u0002\u0002\u0d2d\u0d2e\u0003\u0002\u0002\u0002\u0d2e", + "\u0d2f\u0003\u0002\u0002\u0002\u0d2f\u0d31\u0007\u033d\u0002\u0002\u0d30", + "\u0d29\u0003\u0002\u0002\u0002\u0d30\u0d31\u0003\u0002\u0002\u0002\u0d31", + "\u0d41\u0003\u0002\u0002\u0002\u0d32\u0d3c\u0007\u0179\u0002\u0002\u0d33", + "\u0d35\u0007\u033e\u0002\u0002\u0d34\u0d33\u0003\u0002\u0002\u0002\u0d34", + "\u0d35\u0003\u0002\u0002\u0002\u0d35\u0d36\u0003\u0002\u0002\u0002\u0d36", + "\u0d37\u0007\u00b0\u0002\u0002\u0d37\u0d38\u0007\u032a\u0002\u0002\u0d38", + "\u0d3d\t!\u0002\u0002\u0d39\u0d3a\u0007S\u0002\u0002\u0d3a\u0d3b\u0007", + "\u032a\u0002\u0002\u0d3b\u0d3d\u0005\u03c6\u01e4\u0002\u0d3c\u0d34\u0003", + "\u0002\u0002\u0002\u0d3c\u0d39\u0003\u0002\u0002\u0002\u0d3d\u0d3e\u0003", + "\u0002\u0002\u0002\u0d3e\u0d3c\u0003\u0002\u0002\u0002\u0d3e\u0d3f\u0003", + "\u0002\u0002\u0002\u0d3f\u0d40\u0003\u0002\u0002\u0002\u0d40\u0d42\u0007", + "\u033d\u0002\u0002\u0d41\u0d32\u0003\u0002\u0002\u0002\u0d41\u0d42\u0003", + "\u0002\u0002\u0002\u0d42\u012d\u0003\u0002\u0002\u0002\u0d43\u0d44\u0007", + "\n\u0002\u0002\u0d44\u0d45\u0007{\u0002\u0002\u0d45\u0d46\u0007\u02b2", + "\u0002\u0002\u0d46\u0d49\u0007\u0285\u0002\u0002\u0d47\u0d4a\u0005\u03c6", + "\u01e4\u0002\u0d48\u0d4a\u0007\u01d2\u0002\u0002\u0d49\u0d47\u0003\u0002", + "\u0002\u0002\u0d49\u0d48\u0003\u0002\u0002\u0002\u0d4a\u0d4b\u0003\u0002", + "\u0002\u0002\u0d4b\u0d4c\u0007\u0179\u0002\u0002\u0d4c\u0d4d\u0007\u033c", + "\u0002\u0002\u0d4d\u0d4e\u0007\u0242\u0002\u0002\u0d4e\u0d4f\u0007\u032a", + "\u0002\u0002\u0d4f\u0d75\u0007\u0322\u0002\u0002\u0d50\u0d52\u0007\u033e", + "\u0002\u0002\u0d51\u0d50\u0003\u0002\u0002\u0002\u0d51\u0d52\u0003\u0002", + "\u0002\u0002\u0d52\u0d53\u0003\u0002\u0002\u0002\u0d53\u0d54\u0007\u0187", + "\u0002\u0002\u0d54\u0d55\u0007\u01c1\u0002\u0002\u0d55\u0d63\u0007\u032a", + "\u0002\u0002\u0d56\u0d64\u0007\u0198\u0002\u0002\u0d57\u0d59\u0007\u033e", + "\u0002\u0002\u0d58\u0d57\u0003\u0002\u0002\u0002\u0d58\u0d59\u0003\u0002", + "\u0002\u0002\u0d59\u0d5a\u0003\u0002\u0002\u0002\u0d5a\u0d5b\u0007\u0322", + "\u0002\u0002\u0d5b\u0d5c\u0007\u015a\u0002\u0002\u0d5c\u0d60\u0007\u0322", + "\u0002\u0002\u0d5d\u0d5e\u0007\u033e\u0002\u0002\u0d5e\u0d60\u0007\u0322", + "\u0002\u0002\u0d5f\u0d58\u0003\u0002\u0002\u0002\u0d5f\u0d5d\u0003\u0002", + "\u0002\u0002\u0d60\u0d61\u0003\u0002\u0002\u0002\u0d61\u0d5f\u0003\u0002", + "\u0002\u0002\u0d61\u0d62\u0003\u0002\u0002\u0002\u0d62\u0d64\u0003\u0002", + "\u0002\u0002\u0d63\u0d56\u0003\u0002\u0002\u0002\u0d63\u0d5f\u0003\u0002", + "\u0002\u0002\u0d64\u0d76\u0003\u0002\u0002\u0002\u0d65\u0d66\u0007\u026e", + "\u0002\u0002\u0d66\u0d71\u0007\u032a\u0002\u0002\u0d67\u0d69\u0007\u033e", + "\u0002\u0002\u0d68\u0d67\u0003\u0002\u0002\u0002\u0d68\u0d69\u0003\u0002", + "\u0002\u0002\u0d69\u0d6a\u0003\u0002\u0002\u0002\u0d6a\u0d6b\u0007\u0322", + "\u0002\u0002\u0d6b\u0d6c\u0007\u015a\u0002\u0002\u0d6c\u0d72\u0007\u0322", + "\u0002\u0002\u0d6d\u0d6f\u0007\u033e\u0002\u0002\u0d6e\u0d6d\u0003\u0002", + "\u0002\u0002\u0d6e\u0d6f\u0003\u0002\u0002\u0002\u0d6f\u0d70\u0003\u0002", + "\u0002\u0002\u0d70\u0d72\u0007\u0322\u0002\u0002\u0d71\u0d68\u0003\u0002", + "\u0002\u0002\u0d71\u0d6e\u0003\u0002\u0002\u0002\u0d72\u0d73\u0003\u0002", + "\u0002\u0002\u0d73\u0d71\u0003\u0002\u0002\u0002\u0d73\u0d74\u0003\u0002", + "\u0002\u0002\u0d74\u0d76\u0003\u0002\u0002\u0002\u0d75\u0d51\u0003\u0002", + "\u0002\u0002\u0d75\u0d65\u0003\u0002\u0002\u0002\u0d76\u0d7d\u0003\u0002", + "\u0002\u0002\u0d77\u0d79\u0007\u033e\u0002\u0002\u0d78\u0d77\u0003\u0002", + "\u0002\u0002\u0d78\u0d79\u0003\u0002\u0002\u0002\u0d79\u0d7a\u0003\u0002", + "\u0002\u0002\u0d7a\u0d7b\u0007\u0246\u0002\u0002\u0d7b\u0d7c\u0007\u032a", + "\u0002\u0002\u0d7c\u0d7e\u0007\u0322\u0002\u0002\u0d7d\u0d78\u0003\u0002", + "\u0002\u0002\u0d7d\u0d7e\u0003\u0002\u0002\u0002\u0d7e\u0d85\u0003\u0002", + "\u0002\u0002\u0d7f\u0d81\u0007\u033e\u0002\u0002\u0d80\u0d7f\u0003\u0002", + "\u0002\u0002\u0d80\u0d81\u0003\u0002\u0002\u0002\u0d81\u0d82\u0003\u0002", + "\u0002\u0002\u0d82\u0d83\u0007\u0247\u0002\u0002\u0d83\u0d84\u0007\u032a", + "\u0002\u0002\u0d84\u0d86\u0007\u0322\u0002\u0002\u0d85\u0d80\u0003\u0002", + "\u0002\u0002\u0d85\u0d86\u0003\u0002\u0002\u0002\u0d86\u0d87\u0003\u0002", + "\u0002\u0002\u0d87\u0d88\u0007\u033d\u0002\u0002\u0d88\u012f\u0003\u0002", + "\u0002\u0002\u0d89\u0d8a\u0007I\u0002\u0002\u0d8a\u0d8b\u0007{\u0002", + "\u0002\u0d8b\u0d8c\u0007\u02b2\u0002\u0002\u0d8c\u0d8d\u0007\u0285\u0002", + "\u0002\u0d8d\u0d8e\u0005\u03c6\u01e4\u0002\u0d8e\u0d8f\u0007\u0179\u0002", + "\u0002\u0d8f\u0d90\u0007\u033c\u0002\u0002\u0d90\u0d91\u0007\u0242\u0002", + "\u0002\u0d91\u0d92\u0007\u032a\u0002\u0002\u0d92\u0db8\u0007\u0322\u0002", + "\u0002\u0d93\u0d95\u0007\u033e\u0002\u0002\u0d94\u0d93\u0003\u0002\u0002", + "\u0002\u0d94\u0d95\u0003\u0002\u0002\u0002\u0d95\u0d96\u0003\u0002\u0002", + "\u0002\u0d96\u0d97\u0007\u0187\u0002\u0002\u0d97\u0d98\u0007\u01c1\u0002", + "\u0002\u0d98\u0da6\u0007\u032a\u0002\u0002\u0d99\u0da7\u0007\u0198\u0002", + "\u0002\u0d9a\u0d9c\u0007\u033e\u0002\u0002\u0d9b\u0d9a\u0003\u0002\u0002", + "\u0002\u0d9b\u0d9c\u0003\u0002\u0002\u0002\u0d9c\u0d9d\u0003\u0002\u0002", + "\u0002\u0d9d\u0d9e\u0007\u0322\u0002\u0002\u0d9e\u0d9f\u0007\u015a\u0002", + "\u0002\u0d9f\u0da3\u0007\u0322\u0002\u0002\u0da0\u0da1\u0007\u033e\u0002", + "\u0002\u0da1\u0da3\u0007\u0322\u0002\u0002\u0da2\u0d9b\u0003\u0002\u0002", + "\u0002\u0da2\u0da0\u0003\u0002\u0002\u0002\u0da3\u0da4\u0003\u0002\u0002", + "\u0002\u0da4\u0da2\u0003\u0002\u0002\u0002\u0da4\u0da5\u0003\u0002\u0002", + "\u0002\u0da5\u0da7\u0003\u0002\u0002\u0002\u0da6\u0d99\u0003\u0002\u0002", + "\u0002\u0da6\u0da2\u0003\u0002\u0002\u0002\u0da7\u0db9\u0003\u0002\u0002", + "\u0002\u0da8\u0da9\u0007\u026e\u0002\u0002\u0da9\u0db4\u0007\u032a\u0002", + "\u0002\u0daa\u0dac\u0007\u033e\u0002\u0002\u0dab\u0daa\u0003\u0002\u0002", + "\u0002\u0dab\u0dac\u0003\u0002\u0002\u0002\u0dac\u0dad\u0003\u0002\u0002", + "\u0002\u0dad\u0dae\u0007\u0322\u0002\u0002\u0dae\u0daf\u0007\u015a\u0002", + "\u0002\u0daf\u0db5\u0007\u0322\u0002\u0002\u0db0\u0db2\u0007\u033e\u0002", + "\u0002\u0db1\u0db0\u0003\u0002\u0002\u0002\u0db1\u0db2\u0003\u0002\u0002", + "\u0002\u0db2\u0db3\u0003\u0002\u0002\u0002\u0db3\u0db5\u0007\u0322\u0002", + "\u0002\u0db4\u0dab\u0003\u0002\u0002\u0002\u0db4\u0db1\u0003\u0002\u0002", + "\u0002\u0db5\u0db6\u0003\u0002\u0002\u0002\u0db6\u0db4\u0003\u0002\u0002", + "\u0002\u0db6\u0db7\u0003\u0002\u0002\u0002\u0db7\u0db9\u0003\u0002\u0002", + "\u0002\u0db8\u0d94\u0003\u0002\u0002\u0002\u0db8\u0da8\u0003\u0002\u0002", + "\u0002\u0db9\u0dc0\u0003\u0002\u0002\u0002\u0dba\u0dbc\u0007\u033e\u0002", + "\u0002\u0dbb\u0dba\u0003\u0002\u0002\u0002\u0dbb\u0dbc\u0003\u0002\u0002", + "\u0002\u0dbc\u0dbd\u0003\u0002\u0002\u0002\u0dbd\u0dbe\u0007\u0246\u0002", + "\u0002\u0dbe\u0dbf\u0007\u032a\u0002\u0002\u0dbf\u0dc1\u0007\u0322\u0002", + "\u0002\u0dc0\u0dbb\u0003\u0002\u0002\u0002\u0dc0\u0dc1\u0003\u0002\u0002", + "\u0002\u0dc1\u0dc8\u0003\u0002\u0002\u0002\u0dc2\u0dc4\u0007\u033e\u0002", + "\u0002\u0dc3\u0dc2\u0003\u0002\u0002\u0002\u0dc3\u0dc4\u0003\u0002\u0002", + "\u0002\u0dc4\u0dc5\u0003\u0002\u0002\u0002\u0dc5\u0dc6\u0007\u0247\u0002", + "\u0002\u0dc6\u0dc7\u0007\u032a\u0002\u0002\u0dc7\u0dc9\u0007\u0322\u0002", + "\u0002\u0dc8\u0dc3\u0003\u0002\u0002\u0002\u0dc8\u0dc9\u0003\u0002\u0002", + "\u0002\u0dc9\u0dca\u0003\u0002\u0002\u0002\u0dca\u0dcb\u0007\u033d\u0002", + "\u0002\u0dcb\u0131\u0003\u0002\u0002\u0002\u0dcc\u0dcd\u0007\n\u0002", + "\u0002\u0dcd\u0dce\u0007\u0209\u0002\u0002\u0dce\u0dcf\u0007\u01ae\u0002", + "\u0002\u0dcf\u0dda\u0005\u03c6\u01e4\u0002\u0dd0\u0dd5\u0007\u02a1\u0002", + "\u0002\u0dd1\u0dd2\u0007\u0179\u0002\u0002\u0dd2\u0dd3\u0007\u017f\u0002", + "\u0002\u0dd3\u0dd4\u0007\u032a\u0002\u0002\u0dd4\u0dd6\t\t\u0002\u0002", + "\u0dd5\u0dd1\u0003\u0002\u0002\u0002\u0dd5\u0dd6\u0003\u0002\u0002\u0002", + "\u0dd6\u0ddb\u0003\u0002\u0002\u0002\u0dd7\u0ddb\u0007\u02aa\u0002\u0002", + "\u0dd8\u0dd9\u0007\u0010\u0002\u0002\u0dd9\u0ddb\u0007Y\u0002\u0002", + "\u0dda\u0dd0\u0003\u0002\u0002\u0002\u0dda\u0dd7\u0003\u0002\u0002\u0002", + "\u0dda\u0dd8\u0003\u0002\u0002\u0002\u0ddb\u0133\u0003\u0002\u0002\u0002", + "\u0ddc\u0ddd\u0007I\u0002\u0002\u0ddd\u0dde\u0007\u0209\u0002\u0002", + "\u0dde\u0ddf\u0007\u01ae\u0002\u0002\u0ddf\u0de3\u0005\u03c6\u01e4\u0002", + "\u0de0\u0de1\u0007\u00e5\u0002\u0002\u0de1\u0de2\u0007\u01fb\u0002\u0002", + "\u0de2\u0de4\u0005\u03c6\u01e4\u0002\u0de3\u0de0\u0003\u0002\u0002\u0002", + "\u0de3\u0de4\u0003\u0002\u0002\u0002\u0de4\u0de8\u0003\u0002\u0002\u0002", + "\u0de5\u0de6\u0007\u009b\u0002\u0002\u0de6\u0de7\u0007\u0283\u0002\u0002", + "\u0de7\u0de9\u0007\u0326\u0002\u0002\u0de8\u0de5\u0003\u0002\u0002\u0002", + "\u0de8\u0de9\u0003\u0002\u0002\u0002\u0de9\u0dee\u0003\u0002\u0002\u0002", + "\u0dea\u0deb\u0007\u0179\u0002\u0002\u0deb\u0dec\u0007\u017f\u0002\u0002", + "\u0dec\u0ded\u0007\u032a\u0002\u0002\u0ded\u0def\t\t\u0002\u0002\u0dee", + "\u0dea\u0003\u0002\u0002\u0002\u0dee\u0def\u0003\u0002\u0002\u0002\u0def", + "\u0df2\u0003\u0002\u0002\u0002\u0df0\u0df1\u0007\u0010\u0002\u0002\u0df1", + "\u0df3\u0007Y\u0002\u0002\u0df2\u0df0\u0003\u0002\u0002\u0002\u0df2", + "\u0df3\u0003\u0002\u0002\u0002\u0df3\u0df6\u0003\u0002\u0002\u0002\u0df4", + "\u0df5\u0007\u0014\u0002\u0002\u0df5\u0df7\u0005\u03c6\u01e4\u0002\u0df6", + "\u0df4\u0003\u0002\u0002\u0002\u0df6\u0df7\u0003\u0002\u0002\u0002\u0df7", + "\u0135\u0003\u0002\u0002\u0002\u0df8\u0df9\u0007\n\u0002\u0002\u0df9", + "\u0dfa\u0007\u0209\u0002\u0002\u0dfa\u0dfb\u0007\u02e4\u0002\u0002\u0dfb", + "\u0e09\u0005\u03c6\u01e4\u0002\u0dfc\u0dfd\u0007\u0004\u0002\u0002\u0dfd", + "\u0dfe\u0007\u0326\u0002\u0002\u0dfe\u0dff\u0007\u00b0\u0002\u0002\u0dff", + "\u0e0a\t\"\u0002\u0002\u0e00\u0e07\u0007g\u0002\u0002\u0e01\u0e02\u0007", + "\u0326\u0002\u0002\u0e02\u0e03\u0007\u00b0\u0002\u0002\u0e03\u0e08\t", + "\"\u0002\u0002\u0e04\u0e05\u0007\u0006\u0002\u0002\u0e05\u0e08\t\"\u0002", + "\u0002\u0e06\u0e08\u0007\u0006\u0002\u0002\u0e07\u0e01\u0003\u0002\u0002", + "\u0002\u0e07\u0e04\u0003\u0002\u0002\u0002\u0e07\u0e06\u0003\u0002\u0002", + "\u0002\u0e08\u0e0a\u0003\u0002\u0002\u0002\u0e09\u0dfc\u0003\u0002\u0002", + "\u0002\u0e09\u0e00\u0003\u0002\u0002\u0002\u0e0a\u0137\u0003\u0002\u0002", + "\u0002\u0e0b\u0e0c\u0007I\u0002\u0002\u0e0c\u0e0d\u0007\u0209\u0002", + "\u0002\u0e0d\u0e0e\u0007\u02e4\u0002\u0002\u0e0e\u0e1a\u0005\u03c6\u01e4", + "\u0002\u0e0f\u0e18\u0007\u008b\u0002\u0002\u0e10\u0e11\u0005\u03c6\u01e4", + "\u0002\u0e11\u0e12\u0007\u0337\u0002\u0002\u0e12\u0e14\u0003\u0002\u0002", + "\u0002\u0e13\u0e10\u0003\u0002\u0002\u0002\u0e13\u0e14\u0003\u0002\u0002", + "\u0002\u0e14\u0e15\u0003\u0002\u0002\u0002\u0e15\u0e19\u0005\u03c6\u01e4", + "\u0002\u0e16\u0e17\u0007\u02ee\u0002\u0002\u0e17\u0e19\u0007\u02e4\u0002", + "\u0002\u0e18\u0e13\u0003\u0002\u0002\u0002\u0e18\u0e16\u0003\u0002\u0002", + "\u0002\u0e19\u0e1b\u0003\u0002\u0002\u0002\u0e1a\u0e0f\u0003\u0002\u0002", + "\u0002\u0e1a\u0e1b\u0003\u0002\u0002\u0002\u0e1b\u0e1e\u0003\u0002\u0002", + "\u0002\u0e1c\u0e1d\u0007\u0014\u0002\u0002\u0e1d\u0e1f\u0005\u03c6\u01e4", + "\u0002\u0e1e\u0e1c\u0003\u0002\u0002\u0002\u0e1e\u0e1f\u0003\u0002\u0002", + "\u0002\u0e1f\u0139\u0003\u0002\u0002\u0002\u0e20\u0e21\u0007\n\u0002", + "\u0002\u0e21\u0e22\u0007\u023b\u0002\u0002\u0e22\u0e66\u0005\u03c6\u01e4", + "\u0002\u0e23\u0e25\t\u0017\u0002\u0002\u0e24\u0e23\u0003\u0002\u0002", + "\u0002\u0e24\u0e25\u0003\u0002\u0002\u0002\u0e25\u0e67\u0003\u0002\u0002", + "\u0002\u0e26\u0e34\u0007\u0179\u0002\u0002\u0e27\u0e28\u0007\u00f4\u0002", + "\u0002\u0e28\u0e2c\u0007\u032a\u0002\u0002\u0e29\u0e2d\u0007\u0326\u0002", + "\u0002\u0e2a\u0e2b\u0007\u0327\u0002\u0002\u0e2b\u0e2d\u0007\u0094\u0002", + "\u0002\u0e2c\u0e29\u0003\u0002\u0002\u0002\u0e2c\u0e2a\u0003\u0002\u0002", + "\u0002\u0e2d\u0e31\u0003\u0002\u0002\u0002\u0e2e\u0e30\t#\u0002\u0002", + "\u0e2f\u0e2e\u0003\u0002\u0002\u0002\u0e30\u0e33\u0003\u0002\u0002\u0002", + "\u0e31\u0e2f\u0003\u0002\u0002\u0002\u0e31\u0e32\u0003\u0002\u0002\u0002", + "\u0e32\u0e35\u0003\u0002\u0002\u0002\u0e33\u0e31\u0003\u0002\u0002\u0002", + "\u0e34\u0e27\u0003\u0002\u0002\u0002\u0e34\u0e35\u0003\u0002\u0002\u0002", + "\u0e35\u0e3f\u0003\u0002\u0002\u0002\u0e36\u0e37\u0007\u00e4\u0002\u0002", + "\u0e37\u0e38\u0007\u032a\u0002\u0002\u0e38\u0e3c\u0007\u0326\u0002\u0002", + "\u0e39\u0e3b\t#\u0002\u0002\u0e3a\u0e39\u0003\u0002\u0002\u0002\u0e3b", + "\u0e3e\u0003\u0002\u0002\u0002\u0e3c\u0e3a\u0003\u0002\u0002\u0002\u0e3c", + "\u0e3d\u0003\u0002\u0002\u0002\u0e3d\u0e40\u0003\u0002\u0002\u0002\u0e3e", + "\u0e3c\u0003\u0002\u0002\u0002\u0e3f\u0e36\u0003\u0002\u0002\u0002\u0e3f", + "\u0e40\u0003\u0002\u0002\u0002\u0e40\u0e44\u0003\u0002\u0002\u0002\u0e41", + "\u0e42\u0007Z\u0002\u0002\u0e42\u0e43\u0007\u032a\u0002\u0002\u0e43", + "\u0e45\u0005\u03c6\u01e4\u0002\u0e44\u0e41\u0003\u0002\u0002\u0002\u0e44", + "\u0e45\u0003\u0002\u0002\u0002\u0e45\u0e49\u0003\u0002\u0002\u0002\u0e46", + "\u0e47\u0007\u01d4\u0002\u0002\u0e47\u0e48\u0007\u032a\u0002\u0002\u0e48", + "\u0e4a\u0005\u03c6\u01e4\u0002\u0e49\u0e46\u0003\u0002\u0002\u0002\u0e49", + "\u0e4a\u0003\u0002\u0002\u0002\u0e4a\u0e4e\u0003\u0002\u0002\u0002\u0e4b", + "\u0e4c\u0007\u025d\u0002\u0002\u0e4c\u0e4d\u0007\u032a\u0002\u0002\u0e4d", + "\u0e4f\u0005\u03c6\u01e4\u0002\u0e4e\u0e4b\u0003\u0002\u0002\u0002\u0e4e", + "\u0e4f\u0003\u0002\u0002\u0002\u0e4f\u0e53\u0003\u0002\u0002\u0002\u0e50", + "\u0e51\u00070\u0002\u0002\u0e51\u0e52\u0007\u032a\u0002\u0002\u0e52", + "\u0e54\t\t\u0002\u0002\u0e53\u0e50\u0003\u0002\u0002\u0002\u0e53\u0e54", + "\u0003\u0002\u0002\u0002\u0e54\u0e58\u0003\u0002\u0002\u0002\u0e55\u0e56", + "\u00071\u0002\u0002\u0e56\u0e57\u0007\u032a\u0002\u0002\u0e57\u0e59", + "\t\t\u0002\u0002\u0e58\u0e55\u0003\u0002\u0002\u0002\u0e58\u0e59\u0003", + "\u0002\u0002\u0002\u0e59\u0e5d\u0003\u0002\u0002\u0002\u0e5a\u0e5b\u0007", + "\u01c4\u0002\u0002\u0e5b\u0e5c\u0007\u032a\u0002\u0002\u0e5c\u0e5e\u0005", + "\u03c6\u01e4\u0002\u0e5d\u0e5a\u0003\u0002\u0002\u0002\u0e5d\u0e5e\u0003", + "\u0002\u0002\u0002\u0e5e\u0e61\u0003\u0002\u0002\u0002\u0e5f\u0e60\u0007", + "\u0263\u0002\u0002\u0e60\u0e62\u0007\u01c4\u0002\u0002\u0e61\u0e5f\u0003", + "\u0002\u0002\u0002\u0e61\u0e62\u0003\u0002\u0002\u0002\u0e62\u0e67\u0003", + "\u0002\u0002\u0002\u0e63\u0e64\t\u0015\u0002\u0002\u0e64\u0e65\u0007", + "\u01c4\u0002\u0002\u0e65\u0e67\u0005\u03c6\u01e4\u0002\u0e66\u0e24\u0003", + "\u0002\u0002\u0002\u0e66\u0e26\u0003\u0002\u0002\u0002\u0e66\u0e63\u0003", + "\u0002\u0002\u0002\u0e67\u013b\u0003\u0002\u0002\u0002\u0e68\u0e69\u0007", + "I\u0002\u0002\u0e69\u0e6a\u0007\u023b\u0002\u0002\u0e6a\u0ec5\u0005", + "\u03c6\u01e4\u0002\u0e6b\u0e79\u0007\u0179\u0002\u0002\u0e6c\u0e6d\u0007", + "\u00f4\u0002\u0002\u0e6d\u0e71\u0007\u032a\u0002\u0002\u0e6e\u0e72\u0007", + "\u0326\u0002\u0002\u0e6f\u0e70\u0007\u0327\u0002\u0002\u0e70\u0e72\u0007", + "\u0094\u0002\u0002\u0e71\u0e6e\u0003\u0002\u0002\u0002\u0e71\u0e6f\u0003", + "\u0002\u0002\u0002\u0e72\u0e76\u0003\u0002\u0002\u0002\u0e73\u0e75\t", + "#\u0002\u0002\u0e74\u0e73\u0003\u0002\u0002\u0002\u0e75\u0e78\u0003", + "\u0002\u0002\u0002\u0e76\u0e74\u0003\u0002\u0002\u0002\u0e76\u0e77\u0003", + "\u0002\u0002\u0002\u0e77\u0e7a\u0003\u0002\u0002\u0002\u0e78\u0e76\u0003", + "\u0002\u0002\u0002\u0e79\u0e6c\u0003\u0002\u0002\u0002\u0e79\u0e7a\u0003", + "\u0002\u0002\u0002\u0e7a\u0e81\u0003\u0002\u0002\u0002\u0e7b\u0e7d\u0007", + "\u033e\u0002\u0002\u0e7c\u0e7b\u0003\u0002\u0002\u0002\u0e7c\u0e7d\u0003", + "\u0002\u0002\u0002\u0e7d\u0e7e\u0003\u0002\u0002\u0002\u0e7e\u0e7f\u0007", + "\u013e\u0002\u0002\u0e7f\u0e80\u0007\u032a\u0002\u0002\u0e80\u0e82\u0007", + "\u0327\u0002\u0002\u0e81\u0e7c\u0003\u0002\u0002\u0002\u0e81\u0e82\u0003", + "\u0002\u0002\u0002\u0e82\u0e89\u0003\u0002\u0002\u0002\u0e83\u0e85\u0007", + "\u033e\u0002\u0002\u0e84\u0e83\u0003\u0002\u0002\u0002\u0e84\u0e85\u0003", + "\u0002\u0002\u0002\u0e85\u0e86\u0003\u0002\u0002\u0002\u0e86\u0e87\u0007", + "Z\u0002\u0002\u0e87\u0e88\u0007\u032a\u0002\u0002\u0e88\u0e8a\u0005", + "\u03c6\u01e4\u0002\u0e89\u0e84\u0003\u0002\u0002\u0002\u0e89\u0e8a\u0003", + "\u0002\u0002\u0002\u0e8a\u0e91\u0003\u0002\u0002\u0002\u0e8b\u0e8d\u0007", + "\u033e\u0002\u0002\u0e8c\u0e8b\u0003\u0002\u0002\u0002\u0e8c\u0e8d\u0003", + "\u0002\u0002\u0002\u0e8d\u0e8e\u0003\u0002\u0002\u0002\u0e8e\u0e8f\u0007", + "\u01d4\u0002\u0002\u0e8f\u0e90\u0007\u032a\u0002\u0002\u0e90\u0e92\u0005", + "\u03c6\u01e4\u0002\u0e91\u0e8c\u0003\u0002\u0002\u0002\u0e91\u0e92\u0003", + "\u0002\u0002\u0002\u0e92\u0e99\u0003\u0002\u0002\u0002\u0e93\u0e95\u0007", + "\u033e\u0002\u0002\u0e94\u0e93\u0003\u0002\u0002\u0002\u0e94\u0e95\u0003", + "\u0002\u0002\u0002\u0e95\u0e96\u0003\u0002\u0002\u0002\u0e96\u0e97\u0007", + "1\u0002\u0002\u0e97\u0e98\u0007\u032a\u0002\u0002\u0e98\u0e9a\t\t\u0002", + "\u0002\u0e99\u0e94\u0003\u0002\u0002\u0002\u0e99\u0e9a\u0003\u0002\u0002", + "\u0002\u0e9a\u0ea1\u0003\u0002\u0002\u0002\u0e9b\u0e9d\u0007\u033e\u0002", + "\u0002\u0e9c\u0e9b\u0003\u0002\u0002\u0002\u0e9c\u0e9d\u0003\u0002\u0002", + "\u0002\u0e9d\u0e9e\u0003\u0002\u0002\u0002\u0e9e\u0e9f\u00070\u0002", + "\u0002\u0e9f\u0ea0\u0007\u032a\u0002\u0002\u0ea0\u0ea2\t\t\u0002\u0002", + "\u0ea1\u0e9c\u0003\u0002\u0002\u0002\u0ea1\u0ea2\u0003\u0002\u0002\u0002", + "\u0ea2\u0ea9\u0003\u0002\u0002\u0002\u0ea3\u0ea5\u0007\u033e\u0002\u0002", + "\u0ea4\u0ea3\u0003\u0002\u0002\u0002\u0ea4\u0ea5\u0003\u0002\u0002\u0002", + "\u0ea5\u0ea6\u0003\u0002\u0002\u0002\u0ea6\u0ea7\u0007\u01c4\u0002\u0002", + "\u0ea7\u0ea8\u0007\u032a\u0002\u0002\u0ea8\u0eaa\u0005\u03c6\u01e4\u0002", + "\u0ea9\u0ea4\u0003\u0002\u0002\u0002\u0ea9\u0eaa\u0003\u0002\u0002\u0002", + "\u0eaa\u0ec6\u0003\u0002\u0002\u0002\u0eab\u0ec3\u0007\u008b\u0002\u0002", + "\u0eac\u0ead\u0007\u0178\u0002\u0002\u0ead\u0eb4\u0007\u0179\u0002\u0002", + "\u0eae\u0eb0\u0007\u033e\u0002\u0002\u0eaf\u0eae\u0003\u0002\u0002\u0002", + "\u0eaf\u0eb0\u0003\u0002\u0002\u0002\u0eb0\u0eb1\u0003\u0002\u0002\u0002", + "\u0eb1\u0eb2\u0007Z\u0002\u0002\u0eb2\u0eb3\u0007\u032a\u0002\u0002", + "\u0eb3\u0eb5\u0005\u03c6\u01e4\u0002\u0eb4\u0eaf\u0003\u0002\u0002\u0002", + "\u0eb4\u0eb5\u0003\u0002\u0002\u0002\u0eb5\u0ebc\u0003\u0002\u0002\u0002", + "\u0eb6\u0eb8\u0007\u033e\u0002\u0002\u0eb7\u0eb6\u0003\u0002\u0002\u0002", + "\u0eb7\u0eb8\u0003\u0002\u0002\u0002\u0eb8\u0eb9\u0003\u0002\u0002\u0002", + "\u0eb9\u0eba\u0007\u01d4\u0002\u0002\u0eba\u0ebb\u0007\u032a\u0002\u0002", + "\u0ebb\u0ebd\u0007\u0326\u0002\u0002\u0ebc\u0eb7\u0003\u0002\u0002\u0002", + "\u0ebc\u0ebd\u0003\u0002\u0002\u0002\u0ebd\u0ec4\u0003\u0002\u0002\u0002", + "\u0ebe\u0ebf\u0007+\u0002\u0002\u0ebf\u0ec4\u0005\u03c6\u01e4\u0002", + "\u0ec0\u0ec1\u0007\u0012\u0002\u0002\u0ec1\u0ec2\u0007\u00ac\u0002\u0002", + "\u0ec2\u0ec4\u0005\u03c6\u01e4\u0002\u0ec3\u0eac\u0003\u0002\u0002\u0002", + "\u0ec3\u0ebe\u0003\u0002\u0002\u0002\u0ec3\u0ec0\u0003\u0002\u0002\u0002", + "\u0ec4\u0ec6\u0003\u0002\u0002\u0002\u0ec5\u0e6b\u0003\u0002\u0002\u0002", + "\u0ec5\u0eab\u0003\u0002\u0002\u0002\u0ec6\u013d\u0003\u0002\u0002\u0002", + "\u0ec7\u0ec8\u0007\n\u0002\u0002\u0ec8\u0ec9\u0007\u023b\u0002\u0002", + "\u0ec9\u0edb\u0005\u03c6\u01e4\u0002\u0eca\u0ecc\t\u0017\u0002\u0002", + "\u0ecb\u0eca\u0003\u0002\u0002\u0002\u0ecb\u0ecc\u0003\u0002\u0002\u0002", + "\u0ecc\u0edc\u0003\u0002\u0002\u0002\u0ecd\u0ed9\u0007\u0179\u0002\u0002", + "\u0ece\u0ecf\u0007\u00f4\u0002\u0002\u0ecf\u0ed0\u0007\u032a\u0002\u0002", + "\u0ed0\u0ed4\u0007\u0326\u0002\u0002\u0ed1\u0ed2\u0007\u00e4\u0002\u0002", + "\u0ed2\u0ed3\u0007\u032a\u0002\u0002\u0ed3\u0ed5\u0007\u0326\u0002\u0002", + "\u0ed4\u0ed1\u0003\u0002\u0002\u0002\u0ed4\u0ed5\u0003\u0002\u0002\u0002", + "\u0ed5\u0eda\u0003\u0002\u0002\u0002\u0ed6\u0ed7\u0007\u025d\u0002\u0002", + "\u0ed7\u0ed8\u0007\u032a\u0002\u0002\u0ed8\u0eda\u0005\u03c6\u01e4\u0002", + "\u0ed9\u0ece\u0003\u0002\u0002\u0002\u0ed9\u0ed6\u0003\u0002\u0002\u0002", + "\u0eda\u0edc\u0003\u0002\u0002\u0002\u0edb\u0ecb\u0003\u0002\u0002\u0002", + "\u0edb\u0ecd\u0003\u0002\u0002\u0002\u0edc\u013f\u0003\u0002\u0002\u0002", + "\u0edd\u0ede\u0007I\u0002\u0002\u0ede\u0edf\u0007\u023b\u0002\u0002", + "\u0edf\u0ee0\u0005\u03c6\u01e4\u0002\u0ee0\u0ee1\u0007\u0179\u0002\u0002", + "\u0ee1\u0ee2\u0007\u00f4\u0002\u0002\u0ee2\u0ee3\u0007\u032a\u0002\u0002", + "\u0ee3\u0ee7\u0007\u0326\u0002\u0002\u0ee4\u0ee5\u0007\u013e\u0002\u0002", + "\u0ee5\u0ee6\u0007\u032a\u0002\u0002\u0ee6\u0ee8\u0007\u0327\u0002\u0002", + "\u0ee7\u0ee4\u0003\u0002\u0002\u0002\u0ee7\u0ee8\u0003\u0002\u0002\u0002", + "\u0ee8\u0141\u0003\u0002\u0002\u0002\u0ee9\u0eea\u0007\n\u0002\u0002", + "\u0eea\u0eeb\u0007\u023b\u0002\u0002\u0eeb\u0f03\u0005\u03c6\u01e4\u0002", + "\u0eec\u0eee\t\u0017\u0002\u0002\u0eed\u0eec\u0003\u0002\u0002\u0002", + "\u0eed\u0eee\u0003\u0002\u0002\u0002\u0eee\u0f04\u0003\u0002\u0002\u0002", + "\u0eef\u0f01\u0007\u0179\u0002\u0002\u0ef0\u0ef1\u0007\u00f4\u0002\u0002", + "\u0ef1\u0ef2\u0007\u032a\u0002\u0002\u0ef2\u0efc\u0007\u0326\u0002\u0002", + "\u0ef3\u0ef4\u0007\u00e4\u0002\u0002\u0ef4\u0ef5\u0007\u032a\u0002\u0002", + "\u0ef5\u0ef9\u0007\u0326\u0002\u0002\u0ef6\u0ef8\t#\u0002\u0002\u0ef7", + "\u0ef6\u0003\u0002\u0002\u0002\u0ef8\u0efb\u0003\u0002\u0002\u0002\u0ef9", + "\u0ef7\u0003\u0002\u0002\u0002\u0ef9\u0efa\u0003\u0002\u0002\u0002\u0efa", + "\u0efd\u0003\u0002\u0002\u0002\u0efb\u0ef9\u0003\u0002\u0002\u0002\u0efc", + "\u0ef3\u0003\u0002\u0002\u0002\u0efc\u0efd\u0003\u0002\u0002\u0002\u0efd", + "\u0f02\u0003\u0002\u0002\u0002\u0efe\u0eff\u0007\u025d\u0002\u0002\u0eff", + "\u0f00\u0007\u032a\u0002\u0002\u0f00\u0f02\u0005\u03c6\u01e4\u0002\u0f01", + "\u0ef0\u0003\u0002\u0002\u0002\u0f01\u0efe\u0003\u0002\u0002\u0002\u0f02", + "\u0f04\u0003\u0002\u0002\u0002\u0f03\u0eed\u0003\u0002\u0002\u0002\u0f03", + "\u0eef\u0003\u0002\u0002\u0002\u0f04\u0143\u0003\u0002\u0002\u0002\u0f05", + "\u0f06\u0007I\u0002\u0002\u0f06\u0f07\u0007\u023b\u0002\u0002\u0f07", + "\u0f18\u0005\u03c6\u01e4\u0002\u0f08\u0f09\u0007\u0179\u0002\u0002\u0f09", + "\u0f0a\u0007\u00f4\u0002\u0002\u0f0a\u0f0b\u0007\u032a\u0002\u0002\u0f0b", + "\u0f0d\u0007\u0326\u0002\u0002\u0f0c\u0f0e\u0007\u00ce\u0002\u0002\u0f0d", + "\u0f0c\u0003\u0002\u0002\u0002\u0f0d\u0f0e\u0003\u0002\u0002\u0002\u0f0e", + "\u0f14\u0003\u0002\u0002\u0002\u0f0f\u0f10\u00070\u0002\u0002\u0f10", + "\u0f12\u0007\u032a\u0002\u0002\u0f11\u0f13\t\t\u0002\u0002\u0f12\u0f11", + "\u0003\u0002\u0002\u0002\u0f12\u0f13\u0003\u0002\u0002\u0002\u0f13\u0f15", + "\u0003\u0002\u0002\u0002\u0f14\u0f0f\u0003\u0002\u0002\u0002\u0f14\u0f15", + "\u0003\u0002\u0002\u0002\u0f15\u0f19\u0003\u0002\u0002\u0002\u0f16\u0f17", + "\u0007\u008b\u0002\u0002\u0f17\u0f19\u0007\u0178\u0002\u0002\u0f18\u0f08", + "\u0003\u0002\u0002\u0002\u0f18\u0f16\u0003\u0002\u0002\u0002\u0f19\u0145", + "\u0003\u0002\u0002\u0002\u0f1a\u0f1b\u0007\n\u0002\u0002\u0f1b\u0f1c", + "\u0007\u00bd\u0002\u0002\u0f1c\u0f32\u0007\u00ac\u0002\u0002\u0f1d\u0f1f", + "\u0007\u0203\u0002\u0002\u0f1e\u0f1d\u0003\u0002\u0002\u0002\u0f1e\u0f1f", + "\u0003\u0002\u0002\u0002\u0f1f\u0f20\u0003\u0002\u0002\u0002\u0f20\u0f21", + "\u0007\u010f\u0002\u0002\u0f21\u0f22\u0007\u0179\u0002\u0002\u0f22\u0f23", + "\u0007\u01ec\u0002\u0002\u0f23\u0f24\u0007&\u0002\u0002\u0f24\u0f25", + "\u0007\u00f4\u0002\u0002\u0f25\u0f26\u0007\u032a\u0002\u0002\u0f26\u0f33", + "\u0007\u0326\u0002\u0002\u0f27\u0f28\t\u0015\u0002\u0002\u0f28\u0f29", + "\u0007\u01ec\u0002\u0002\u0f29\u0f30\u0007&\u0002\u0002\u0f2a\u0f2b", + "\u0007\u0136\u0002\u0002\u0f2b\u0f2c\u0007\u00bd\u0002\u0002\u0f2c\u0f31", + "\u0007\u00ac\u0002\u0002\u0f2d\u0f2e\u0007\u00f4\u0002\u0002\u0f2e\u0f2f", + "\u0007\u032a\u0002\u0002\u0f2f\u0f31\u0007\u0326\u0002\u0002\u0f30\u0f2a", + "\u0003\u0002\u0002\u0002\u0f30\u0f2d\u0003\u0002\u0002\u0002\u0f31\u0f33", + "\u0003\u0002\u0002\u0002\u0f32\u0f1e\u0003\u0002\u0002\u0002\u0f32\u0f27", + "\u0003\u0002\u0002\u0002\u0f33\u0147\u0003\u0002\u0002\u0002\u0f34\u0f35", + "\u0007I\u0002\u0002\u0f35\u0f36\u0007\u00bd\u0002\u0002\u0f36\u0f37", + "\u0007\u00ac\u0002\u0002\u0f37\u0f38\u0007\u01ec\u0002\u0002\u0f38\u0f39", + "\u0007&\u0002\u0002\u0f39\u0f3a\u0007\u00f4\u0002\u0002\u0f3a\u0f3b", + "\u0007\u032a\u0002\u0002\u0f3b\u0f3c\u0007\u0326\u0002\u0002\u0f3c\u0149", + "\u0003\u0002\u0002\u0002\u0f3d\u0f3e\u0007\n\u0002\u0002\u0f3e\u0f3f", + "\u0007\u00bd\u0002\u0002\u0f3f\u0f5b\u0007\u00ac\u0002\u0002\u0f40\u0f42", + "\u0007\u0203\u0002\u0002\u0f41\u0f40\u0003\u0002\u0002\u0002\u0f41\u0f42", + "\u0003\u0002\u0002\u0002\u0f42\u0f43\u0003\u0002\u0002\u0002\u0f43\u0f44", + "\u0007\u010f\u0002\u0002\u0f44\u0f45\u0007\u0179\u0002\u0002\u0f45\u0f46", + "\u0007\u01ec\u0002\u0002\u0f46\u0f47\u0007&\u0002\u0002\u0f47\u0f48", + "\u0007\u00f4\u0002\u0002\u0f48\u0f49\u0007\u032a\u0002\u0002\u0f49\u0f5c", + "\u0007\u0326\u0002\u0002\u0f4a\u0f4b\u0007\u0004\u0002\u0002\u0f4b\u0f4c", + "\u0007\u01ec\u0002\u0002\u0f4c\u0f53\u0007&\u0002\u0002\u0f4d\u0f4e", + "\u0007\u0136\u0002\u0002\u0f4e\u0f4f\u0007\u00bd\u0002\u0002\u0f4f\u0f54", + "\u0007\u00ac\u0002\u0002\u0f50\u0f51\u0007\u00f4\u0002\u0002\u0f51\u0f52", + "\u0007\u032a\u0002\u0002\u0f52\u0f54\u0007\u0326\u0002\u0002\u0f53\u0f4d", + "\u0003\u0002\u0002\u0002\u0f53\u0f50\u0003\u0002\u0002\u0002\u0f54\u0f5c", + "\u0003\u0002\u0002\u0002\u0f55\u0f56\u0007g\u0002\u0002\u0f56\u0f57", + "\u0007\u01ec\u0002\u0002\u0f57\u0f58\u0007&\u0002\u0002\u0f58\u0f59", + "\u0007\u00f4\u0002\u0002\u0f59\u0f5a\u0007\u032a\u0002\u0002\u0f5a\u0f5c", + "\u0007\u0326\u0002\u0002\u0f5b\u0f41\u0003\u0002\u0002\u0002\u0f5b\u0f4a", + "\u0003\u0002\u0002\u0002\u0f5b\u0f55\u0003\u0002\u0002\u0002\u0f5c\u014b", + "\u0003\u0002\u0002\u0002\u0f5d\u0f5e\u0007I\u0002\u0002\u0f5e\u0f5f", + "\u0007\u00bd\u0002\u0002\u0f5f\u0f65\u0007\u00ac\u0002\u0002\u0f60\u0f61", + "\u0007\u01ec\u0002\u0002\u0f61\u0f62\u0007&\u0002\u0002\u0f62\u0f63", + "\u0007\u00f4\u0002\u0002\u0f63\u0f64\u0007\u032a\u0002\u0002\u0f64\u0f66", + "\u0007\u0326\u0002\u0002\u0f65\u0f60\u0003\u0002\u0002\u0002\u0f65\u0f66", + "\u0003\u0002\u0002\u0002\u0f66\u014d\u0003\u0002\u0002\u0002\u0f67\u0f68", + "\u0007\n\u0002\u0002\u0f68\u0f69\u0007\u0250\u0002\u0002\u0f69\u0f6a", + "\u0007\u0301\u0002\u0002\u0f6a\u0f6b\u0005\u03c6\u01e4\u0002\u0f6b\u0f6c", + "\u0007\u030a\u0002\u0002\u0f6c\u0f75\u0007\u032a\u0002\u0002\u0f6d\u0f76", + "\u0007\u00d5\u0002\u0002\u0f6e\u0f76\u0007\u01e8\u0002\u0002\u0f6f\u0f76", + "\u0007\u0311\u0002\u0002\u0f70\u0f71\u0007\u0309\u0002\u0002\u0f71\u0f72", + "\u0007\u0179\u0002\u0002\u0f72\u0f73\u0007\u012e\u0002\u0002\u0f73\u0f74", + "\u0007\u01b5\u0002\u0002\u0f74\u0f76\u0005\u03c6\u01e4\u0002\u0f75\u0f6d", + "\u0003\u0002\u0002\u0002\u0f75\u0f6e\u0003\u0002\u0002\u0002\u0f75\u0f6f", + "\u0003\u0002\u0002\u0002\u0f75\u0f70\u0003\u0002\u0002\u0002\u0f76\u014f", + "\u0003\u0002\u0002\u0002\u0f77\u0f78\u0007\n\u0002\u0002\u0f78\u0f79", + "\u0007\u0280\u0002\u0002\u0f79\u0f7a\u0007\u008d\u0002\u0002\u0f7a\u0f7b", + "\u0005\u03c6\u01e4\u0002\u0f7b\u0f7c\u0007\u033c\u0002\u0002\u0f7c\u0f7d", + "\u0007\u033d\u0002\u0002\u0f7d\u0f7e\t$\u0002\u0002\u0f7e\u0f7f\u0007", + "\u0297\u0002\u0002\u0f7f\u0f80\u0007\u033c\u0002\u0002\u0f80\u0f81\u0007", + "\u0322\u0002\u0002\u0f81\u0f82\u0007\u033d\u0002\u0002\u0f82\u0151\u0003", + "\u0002\u0002\u0002\u0f83\u0f84\u0007\n\u0002\u0002\u0f84\u0f85\u0007", + "\u0280\u0002\u0002\u0f85\u0f86\u0007\u012f\u0002\u0002\u0f86\u0f87\u0005", + "\u03c6\u01e4\u0002\u0f87\u0f88\u0007\u0262\u0002\u0002\u0f88\u0f8a\u0007", + "\u016d\u0002\u0002\u0f89\u0f8b\u0005\u03c6\u01e4\u0002\u0f8a\u0f89\u0003", + "\u0002\u0002\u0002\u0f8a\u0f8b\u0003\u0002\u0002\u0002\u0f8b\u0153\u0003", + "\u0002\u0002\u0002\u0f8c\u0f8d\u0007\n\u0002\u0002\u0f8d\u0f8e\u0007", + "\u02a7\u0002\u0002\u0f8e\u0f8f\u0007\u0136\u0002\u0002\u0f8f\u0f90\u0007", + "\u01a6\u0002\u0002\u0f90\u0f91\u0005\u03c6\u01e4\u0002\u0f91\u0f95\u0007", + "\u0179\u0002\u0002\u0f92\u0f93\u0007\u016e\u0002\u0002\u0f93\u0f94\u0007", + "\u032a\u0002\u0002\u0f94\u0f96\u0005\u03c6\u01e4\u0002\u0f95\u0f92\u0003", + "\u0002\u0002\u0002\u0f95\u0f96\u0003\u0002\u0002\u0002\u0f96\u0f9b\u0003", + "\u0002\u0002\u0002\u0f97\u0f98\u0007\u033e\u0002\u0002\u0f98\u0f99\u0007", + "\f\u0002\u0002\u0f99\u0f9a\u0007\u032a\u0002\u0002\u0f9a\u0f9c\t\t\u0002", + "\u0002\u0f9b\u0f97\u0003\u0002\u0002\u0002\u0f9b\u0f9c\u0003\u0002\u0002", + "\u0002\u0f9c\u0155\u0003\u0002\u0002\u0002\u0f9d\u0f9e\u0007I\u0002", + "\u0002\u0f9e\u0f9f\u0007\u02a7\u0002\u0002\u0f9f\u0fa0\u0007\u0136\u0002", + "\u0002\u0fa0\u0fa1\u0007\u01a6\u0002\u0002\u0fa1\u0fa4\u0005\u03c6\u01e4", + "\u0002\u0fa2\u0fa3\u0007\u0014\u0002\u0002\u0fa3\u0fa5\u0005\u03c6\u01e4", + "\u0002\u0fa4\u0fa2\u0003\u0002\u0002\u0002\u0fa4\u0fa5\u0003\u0002\u0002", + "\u0002\u0fa5\u0fa6\u0003\u0002\u0002\u0002\u0fa6\u0fa7\u0007\u015a\u0002", + "\u0002\u0fa7\u0fa8\u0007\u0136\u0002\u0002\u0fa8\u0fa9\u0007\u0326\u0002", + "\u0002\u0fa9\u0fad\u0007\u0179\u0002\u0002\u0faa\u0fab\u0007\u016e\u0002", + "\u0002\u0fab\u0fac\u0007\u032a\u0002\u0002\u0fac\u0fae\u0005\u03c6\u01e4", + "\u0002\u0fad\u0faa\u0003\u0002\u0002\u0002\u0fad\u0fae\u0003\u0002\u0002", + "\u0002\u0fae\u0fb3\u0003\u0002\u0002\u0002\u0faf\u0fb0\u0007\u033e\u0002", + "\u0002\u0fb0\u0fb1\u0007\f\u0002\u0002\u0fb1\u0fb2\u0007\u032a\u0002", + "\u0002\u0fb2\u0fb4\t\t\u0002\u0002\u0fb3\u0faf\u0003\u0002\u0002\u0002", + "\u0fb3\u0fb4\u0003\u0002\u0002\u0002\u0fb4\u0157\u0003\u0002\u0002\u0002", + "\u0fb5\u0fb6\u0007I\u0002\u0002\u0fb6\u0fb7\u0007\u02b2\u0002\u0002", + "\u0fb7\u0fb8\u0007\u0285\u0002\u0002\u0fb8\u101f\u0005\u03c6\u01e4\u0002", + "\u0fb9\u0fba\u0007\u0179\u0002\u0002\u0fba\u0fc1\u0007\u033c\u0002\u0002", + "\u0fbb\u0fbd\u0007\u033e\u0002\u0002\u0fbc\u0fbb\u0003\u0002\u0002\u0002", + "\u0fbc\u0fbd\u0003\u0002\u0002\u0002\u0fbd\u0fbe\u0003\u0002\u0002\u0002", + "\u0fbe\u0fbf\u0007\u0253\u0002\u0002\u0fbf\u0fc0\u0007\u032a\u0002\u0002", + "\u0fc0\u0fc2\u0007\u0322\u0002\u0002\u0fc1\u0fbc\u0003\u0002\u0002\u0002", + "\u0fc1\u0fc2\u0003\u0002\u0002\u0002\u0fc2\u0fc9\u0003\u0002\u0002\u0002", + "\u0fc3\u0fc5\u0007\u033e\u0002\u0002\u0fc4\u0fc3\u0003\u0002\u0002\u0002", + "\u0fc4\u0fc5\u0003\u0002\u0002\u0002\u0fc5\u0fc6\u0003\u0002\u0002\u0002", + "\u0fc6\u0fc7\u0007\u0242\u0002\u0002\u0fc7\u0fc8\u0007\u032a\u0002\u0002", + "\u0fc8\u0fca\u0007\u0322\u0002\u0002\u0fc9\u0fc4\u0003\u0002\u0002\u0002", + "\u0fc9\u0fca\u0003\u0002\u0002\u0002\u0fca\u0fd1\u0003\u0002\u0002\u0002", + "\u0fcb\u0fcd\u0007\u033e\u0002\u0002\u0fcc\u0fcb\u0003\u0002\u0002\u0002", + "\u0fcc\u0fcd\u0003\u0002\u0002\u0002\u0fcd\u0fce\u0003\u0002\u0002\u0002", + "\u0fce\u0fcf\u0007\u01ac\u0002\u0002\u0fcf\u0fd0\u0007\u032a\u0002\u0002", + "\u0fd0\u0fd2\u0007\u0322\u0002\u0002\u0fd1\u0fcc\u0003\u0002\u0002\u0002", + "\u0fd1\u0fd2\u0003\u0002\u0002\u0002\u0fd2\u0ffc\u0003\u0002\u0002\u0002", + "\u0fd3\u0fd5\u0007\u033e\u0002\u0002\u0fd4\u0fd3\u0003\u0002\u0002\u0002", + "\u0fd4\u0fd5\u0003\u0002\u0002\u0002\u0fd5\u0fd6\u0003\u0002\u0002\u0002", + "\u0fd6\u0fd7\u0007\u0187\u0002\u0002\u0fd7\u0fd8\u0007\u012d\u0002\u0002", + "\u0fd8\u0ffa\u0007\u032a\u0002\u0002\u0fd9\u0ffb\u0007\u0198\u0002\u0002", + "\u0fda\u0fe4\u0007\u033c\u0002\u0002\u0fdb\u0fdd\u0007\u033e\u0002\u0002", + "\u0fdc\u0fdb\u0003\u0002\u0002\u0002\u0fdc\u0fdd\u0003\u0002\u0002\u0002", + "\u0fdd\u0fe2\u0003\u0002\u0002\u0002\u0fde\u0fe3\u0007\u0322\u0002\u0002", + "\u0fdf\u0fe0\u0007\u0322\u0002\u0002\u0fe0\u0fe1\u0007\u015a\u0002\u0002", + "\u0fe1\u0fe3\u0007\u0322\u0002\u0002\u0fe2\u0fde\u0003\u0002\u0002\u0002", + "\u0fe2\u0fdf\u0003\u0002\u0002\u0002\u0fe3\u0fe5\u0003\u0002\u0002\u0002", + "\u0fe4\u0fdc\u0003\u0002\u0002\u0002\u0fe5\u0fe6\u0003\u0002\u0002\u0002", + "\u0fe6\u0fe4\u0003\u0002\u0002\u0002\u0fe6\u0fe7\u0003\u0002\u0002\u0002", + "\u0fe7\u0fe8\u0003\u0002\u0002\u0002\u0fe8\u0ffb\u0007\u033d\u0002\u0002", + "\u0fe9\u0fea\u0007\u026e\u0002\u0002\u0fea\u0feb\u0007\u032a\u0002\u0002", + "\u0feb\u0ff5\u0007\u033c\u0002\u0002\u0fec\u0fee\u0007\u033e\u0002\u0002", + "\u0fed\u0fec\u0003\u0002\u0002\u0002\u0fed\u0fee\u0003\u0002\u0002\u0002", + "\u0fee\u0ff3\u0003\u0002\u0002\u0002\u0fef\u0ff4\u0007\u0322\u0002\u0002", + "\u0ff0\u0ff1\u0007\u0322\u0002\u0002\u0ff1\u0ff2\u0007\u015a\u0002\u0002", + "\u0ff2\u0ff4\u0007\u0322\u0002\u0002\u0ff3\u0fef\u0003\u0002\u0002\u0002", + "\u0ff3\u0ff0\u0003\u0002\u0002\u0002\u0ff4\u0ff6\u0003\u0002\u0002\u0002", + "\u0ff5\u0fed\u0003\u0002\u0002\u0002\u0ff6\u0ff7\u0003\u0002\u0002\u0002", + "\u0ff7\u0ff5\u0003\u0002\u0002\u0002\u0ff7\u0ff8\u0003\u0002\u0002\u0002", + "\u0ff8\u0ff9\u0003\u0002\u0002\u0002\u0ff9\u0ffb\u0007\u033d\u0002\u0002", + "\u0ffa\u0fd9\u0003\u0002\u0002\u0002\u0ffa\u0fda\u0003\u0002\u0002\u0002", + "\u0ffa\u0fe9\u0003\u0002\u0002\u0002\u0ffb\u0ffd\u0003\u0002\u0002\u0002", + "\u0ffc\u0fd4\u0003\u0002\u0002\u0002\u0ffc\u0ffd\u0003\u0002\u0002\u0002", + "\u0ffd\u1004\u0003\u0002\u0002\u0002\u0ffe\u1000\u0007\u033e\u0002\u0002", + "\u0fff\u0ffe\u0003\u0002\u0002\u0002\u0fff\u1000\u0003\u0002\u0002\u0002", + "\u1000\u1001\u0003\u0002\u0002\u0002\u1001\u1002\u0007\u0255\u0002\u0002", + "\u1002\u1003\u0007\u032a\u0002\u0002\u1003\u1005\u0007\u0322\u0002\u0002", + "\u1004\u0fff\u0003\u0002\u0002\u0002\u1004\u1005\u0003\u0002\u0002\u0002", + "\u1005\u100c\u0003\u0002\u0002\u0002\u1006\u1008\u0007\u033e\u0002\u0002", + "\u1007\u1006\u0003\u0002\u0002\u0002\u1007\u1008\u0003\u0002\u0002\u0002", + "\u1008\u1009\u0003\u0002\u0002\u0002\u1009\u100a\u0007\u0246\u0002\u0002", + "\u100a\u100b\u0007\u032a\u0002\u0002\u100b\u100d\u0007\u0322\u0002\u0002", + "\u100c\u1007\u0003\u0002\u0002\u0002\u100c\u100d\u0003\u0002\u0002\u0002", + "\u100d\u1014\u0003\u0002\u0002\u0002\u100e\u1010\u0007\u033e\u0002\u0002", + "\u100f\u100e\u0003\u0002\u0002\u0002\u100f\u1010\u0003\u0002\u0002\u0002", + "\u1010\u1011\u0003\u0002\u0002\u0002\u1011\u1012\u0007\u0254\u0002\u0002", + "\u1012\u1013\u0007\u032a\u0002\u0002\u1013\u1015\u0007\u0322\u0002\u0002", + "\u1014\u100f\u0003\u0002\u0002\u0002\u1014\u1015\u0003\u0002\u0002\u0002", + "\u1015\u101c\u0003\u0002\u0002\u0002\u1016\u1018\u0007\u033e\u0002\u0002", + "\u1017\u1016\u0003\u0002\u0002\u0002\u1017\u1018\u0003\u0002\u0002\u0002", + "\u1018\u1019\u0003\u0002\u0002\u0002\u1019\u101a\u0007\u0245\u0002\u0002", + "\u101a\u101b\u0007\u032a\u0002\u0002\u101b\u101d\u0007\u0322\u0002\u0002", + "\u101c\u1017\u0003\u0002\u0002\u0002\u101c\u101d\u0003\u0002\u0002\u0002", + "\u101d\u101e\u0003\u0002\u0002\u0002\u101e\u1020\u0007\u033d\u0002\u0002", + "\u101f\u0fb9\u0003\u0002\u0002\u0002\u101f\u1020\u0003\u0002\u0002\u0002", + "\u1020\u0159\u0003\u0002\u0002\u0002\u1021\u1022\u0007\n\u0002\u0002", + "\u1022\u1023\u0007\u02b2\u0002\u0002\u1023\u1039\u0007\u0090\u0002\u0002", + "\u1024\u103a\t%\u0002\u0002\u1025\u1026\u0007\u0179\u0002\u0002\u1026", + "\u1027\u0007\u033c\u0002\u0002\u1027\u1028\u00072\u0002\u0002\u1028", + "\u102e\u0007\u032a\u0002\u0002\u1029\u102a\u0005\u03c6\u01e4\u0002\u102a", + "\u102b\u0007\u0337\u0002\u0002\u102b\u102c\u0005\u03c6\u01e4\u0002\u102c", + "\u102f\u0003\u0002\u0002\u0002\u102d\u102f\u0007\u00df\u0002\u0002\u102e", + "\u1029\u0003\u0002\u0002\u0002\u102e\u102d\u0003\u0002\u0002\u0002\u102f", + "\u1030\u0003\u0002\u0002\u0002\u1030\u103a\u0007\u033d\u0002\u0002\u1031", + "\u1032\u0007\u0114\u0002\u0002\u1032\u103a\u0007\u0148\u0002\u0002\u1033", + "\u1034\u0007\u0179\u0002\u0002\u1034\u1035\u0007\u033c\u0002\u0002\u1035", + "\u1036\u0007\u00c4\u0002\u0002\u1036\u1037\u0007\u032a\u0002\u0002\u1037", + "\u1038\u0007\u0322\u0002\u0002\u1038\u103a\u0007\u033d\u0002\u0002\u1039", + "\u1024\u0003\u0002\u0002\u0002\u1039\u1025\u0003\u0002\u0002\u0002\u1039", + "\u1031\u0003\u0002\u0002\u0002\u1039\u1033\u0003\u0002\u0002\u0002\u103a", + "\u015b\u0003\u0002\u0002\u0002\u103b\u103c\u0007\n\u0002\u0002\u103c", + "\u103d\u0007\u0121\u0002\u0002\u103d\u1045\u0005\u03c6\u01e4\u0002\u103e", + "\u103f\t\u0015\u0002\u0002\u103f\u1040\u0007\u00c7\u0002\u0002\u1040", + "\u1046\u0005\u03c6\u01e4\u0002\u1041\u1042\u0007\u0179\u0002\u0002\u1042", + "\u1043\u0007\u025d\u0002\u0002\u1043\u1044\u0007\u032a\u0002\u0002\u1044", + "\u1046\u0005\u03c6\u01e4\u0002\u1045\u103e\u0003\u0002\u0002\u0002\u1045", + "\u1041\u0003\u0002\u0002\u0002\u1046\u015d\u0003\u0002\u0002\u0002\u1047", + "\u1048\u0007I\u0002\u0002\u1048\u1049\u0007\u0121\u0002\u0002\u1049", + "\u104c\u0005\u03c6\u01e4\u0002\u104a\u104b\u0007\u0014\u0002\u0002\u104b", + "\u104d\u0005\u03c6\u01e4\u0002\u104c\u104a\u0003\u0002\u0002\u0002\u104c", + "\u104d\u0003\u0002\u0002\u0002\u104d\u015f\u0003\u0002\u0002\u0002\u104e", + "\u104f\u0007I\u0002\u0002\u104f\u1050\u0007\u02b8\u0002\u0002\u1050", + "\u1053\u0005\u03c6\u01e4\u0002\u1051\u1052\u0007\u0014\u0002\u0002\u1052", + "\u1054\u0005\u03c6\u01e4\u0002\u1053\u1051\u0003\u0002\u0002\u0002\u1053", + "\u1054\u0003\u0002\u0002\u0002\u1054\u1055\u0003\u0002\u0002\u0002\u1055", + "\u105c\u0007\u0179\u0002\u0002\u1056\u1058\u0007\u033e\u0002\u0002\u1057", + "\u1056\u0003\u0002\u0002\u0002\u1057\u1058\u0003\u0002\u0002\u0002\u1058", + "\u1059\u0003\u0002\u0002\u0002\u1059\u105a\u0007\u0138\u0002\u0002\u105a", + "\u105b\u0007\u032a\u0002\u0002\u105b\u105d\u0007\u0326\u0002\u0002\u105c", + "\u1057\u0003\u0002\u0002\u0002\u105c\u105d\u0003\u0002\u0002\u0002\u105d", + "\u1064\u0003\u0002\u0002\u0002\u105e\u1060\u0007\u033e\u0002\u0002\u105f", + "\u105e\u0003\u0002\u0002\u0002\u105f\u1060\u0003\u0002\u0002\u0002\u1060", + "\u1061\u0003\u0002\u0002\u0002\u1061\u1062\u0007\u01a9\u0002\u0002\u1062", + "\u1063\u0007\u032a\u0002\u0002\u1063\u1065\u0007\u0326\u0002\u0002\u1064", + "\u105f\u0003\u0002\u0002\u0002\u1064\u1065\u0003\u0002\u0002\u0002\u1065", + "\u106c\u0003\u0002\u0002\u0002\u1066\u1068\u0007\u033e\u0002\u0002\u1067", + "\u1066\u0003\u0002\u0002\u0002\u1067\u1068\u0003\u0002\u0002\u0002\u1068", + "\u1069\u0003\u0002\u0002\u0002\u1069\u106a\u0007\u00b3\u0002\u0002\u106a", + "\u106b\u0007\u032a\u0002\u0002\u106b\u106d\u0007\u0322\u0002\u0002\u106c", + "\u1067\u0003\u0002\u0002\u0002\u106c\u106d\u0003\u0002\u0002\u0002\u106d", + "\u106f\u0003\u0002\u0002\u0002\u106e\u1070\u0007\u033e\u0002\u0002\u106f", + "\u106e\u0003\u0002\u0002\u0002\u106f\u1070\u0003\u0002\u0002\u0002\u1070", + "\u1071\u0003\u0002\u0002\u0002\u1071\u1072\u0007\u0183\u0002\u0002\u1072", + "\u1073\u0007\u032a\u0002\u0002\u1073\u1078\t&\u0002\u0002\u1074\u1075", + "\u0007\u033e\u0002\u0002\u1075\u1076\u0007\u0257\u0002\u0002\u1076\u1077", + "\u0007\u032a\u0002\u0002\u1077\u1079\t&\u0002\u0002\u1078\u1074\u0003", + "\u0002\u0002\u0002\u1078\u1079\u0003\u0002\u0002\u0002\u1079\u0161\u0003", + "\u0002\u0002\u0002\u107a\u107b\u0007I\u0002\u0002\u107b\u107f\u0007", + "\u012a\u0002\u0002\u107c\u107d\u0005\u03c6\u01e4\u0002\u107d\u107e\u0007", + "\u0337\u0002\u0002\u107e\u1080\u0003\u0002\u0002\u0002\u107f\u107c\u0003", + "\u0002\u0002\u0002\u107f\u1080\u0003\u0002\u0002\u0002\u1080\u1081\u0003", + "\u0002\u0002\u0002\u1081\u1082\u0005\u03c6\u01e4\u0002\u1082\u1083\u0007", + "\u0010\u0002\u0002\u1083\u1084\u0005\u02ee\u0178\u0002\u1084\u0163\u0003", + "\u0002\u0002\u0002\u1085\u1086\u0007\n\u0002\u0002\u1086\u1087\u0007", + "\u012e\u0002\u0002\u1087\u1088\u0005\u03c6\u01e4\u0002\u1088\u1092\u0007", + "\u015f\u0002\u0002\u1089\u108f\u0007\u0271\u0002\u0002\u108a\u108f\u0007", + "\u0301\u0002\u0002\u108b\u108c\u0007\u0315\u0002\u0002\u108c\u108d\u0007", + "\u012e\u0002\u0002\u108d\u108f\u0007\u01b5\u0002\u0002\u108e\u1089\u0003", + "\u0002\u0002\u0002\u108e\u108a\u0003\u0002\u0002\u0002\u108e\u108b\u0003", + "\u0002\u0002\u0002\u108f\u1090\u0003\u0002\u0002\u0002\u1090\u1091\u0007", + "\u0340\u0002\u0002\u1091\u1093\u0007\u0340\u0002\u0002\u1092\u108e\u0003", + "\u0002\u0002\u0002\u1092\u1093\u0003\u0002\u0002\u0002\u1093\u1094\u0003", + "\u0002\u0002\u0002\u1094\u1097\u0005\u03c6\u01e4\u0002\u1095\u1096\u0007", + "\u0337\u0002\u0002\u1096\u1098\u0005\u03c6\u01e4\u0002\u1097\u1095\u0003", + "\u0002\u0002\u0002\u1097\u1098\u0003\u0002\u0002\u0002\u1098\u0165\u0003", + "\u0002\u0002\u0002\u1099\u109a\u0007I\u0002\u0002\u109a\u10a2\u0007", + "\u012e\u0002\u0002\u109b\u10a3\u0005\u03c6\u01e4\u0002\u109c\u109d\u0007", + "\u0014\u0002\u0002\u109d\u10a3\u0005\u03c6\u01e4\u0002\u109e\u109f\u0005", + "\u03c6\u01e4\u0002\u109f\u10a0\u0007\u0014\u0002\u0002\u10a0\u10a1\u0005", + "\u03c6\u01e4\u0002\u10a1\u10a3\u0003\u0002\u0002\u0002\u10a2\u109b\u0003", + "\u0002\u0002\u0002\u10a2\u109c\u0003\u0002\u0002\u0002\u10a2\u109e\u0003", + "\u0002\u0002\u0002\u10a3\u10c0\u0003\u0002\u0002\u0002\u10a4\u10bf\u0005", + "\u01ee\u00f8\u0002\u10a5\u10bf\u0005\u01f2\u00fa\u0002\u10a6\u10a7\t", + "\'\u0002\u0002\u10a7\u10a8\t(\u0002\u0002\u10a8\u10ac\u0007\u00e5\u0002", + "\u0002\u10a9\u10aa\u0007\u012e\u0002\u0002\u10aa\u10ab\u0007\u0340\u0002", + "\u0002\u10ab\u10ad\u0007\u0340\u0002\u0002\u10ac\u10a9\u0003\u0002\u0002", + "\u0002\u10ac\u10ad\u0003\u0002\u0002\u0002\u10ad\u10ae\u0003\u0002\u0002", + "\u0002\u10ae\u10af\u0005\u03c6\u01e4\u0002\u10af\u10b0\u0007\u015a\u0002", + "\u0002\u10b0\u10b1\u0005\u03c6\u01e4\u0002\u10b1\u10bf\u0003\u0002\u0002", + "\u0002\u10b2\u10b3\u0007\u011d\u0002\u0002\u10b3\u10b4\t(\u0002\u0002", + "\u10b4\u10b8\u0007\u00e5\u0002\u0002\u10b5\u10b6\u0007\u012e\u0002\u0002", + "\u10b6\u10b7\u0007\u0340\u0002\u0002\u10b7\u10b9\u0007\u0340\u0002\u0002", + "\u10b8\u10b5\u0003\u0002\u0002\u0002\u10b8\u10b9\u0003\u0002\u0002\u0002", + "\u10b9\u10ba\u0003\u0002\u0002\u0002\u10ba\u10bb\u0005\u03c6\u01e4\u0002", + "\u10bb\u10bc\u0007\u008b\u0002\u0002\u10bc\u10bd\u0005\u03c6\u01e4\u0002", + "\u10bd\u10bf\u0003\u0002\u0002\u0002\u10be\u10a4\u0003\u0002\u0002\u0002", + "\u10be\u10a5\u0003\u0002\u0002\u0002\u10be\u10a6\u0003\u0002\u0002\u0002", + "\u10be\u10b2\u0003\u0002\u0002\u0002\u10bf\u10c2\u0003\u0002\u0002\u0002", + "\u10c0\u10be\u0003\u0002\u0002\u0002\u10c0\u10c1\u0003\u0002\u0002\u0002", + "\u10c1\u0167\u0003\u0002\u0002\u0002\u10c2\u10c0\u0003\u0002\u0002\u0002", + "\u10c3\u10c4\u0007I\u0002\u0002\u10c4\u10c5\u0007\u012e\u0002\u0002", + "\u10c5\u10c8\u0005\u03c6\u01e4\u0002\u10c6\u10c7\u0007\u0014\u0002\u0002", + "\u10c7\u10c9\u0005\u03c6\u01e4\u0002\u10c8\u10c6\u0003\u0002\u0002\u0002", + "\u10c8\u10c9\u0003\u0002\u0002\u0002\u10c9\u0169\u0003\u0002\u0002\u0002", + "\u10ca\u10cb\u0007\n\u0002\u0002\u10cb\u10cc\u0007\u012e\u0002\u0002", + "\u10cc\u10cd\u0005\u03c6\u01e4\u0002\u10cd\u10d1\u0007\u015f\u0002\u0002", + "\u10ce\u10cf\u0007\u0271\u0002\u0002\u10cf\u10d0\u0007\u0340\u0002\u0002", + "\u10d0\u10d2\u0007\u0340\u0002\u0002\u10d1\u10ce\u0003\u0002\u0002\u0002", + "\u10d1\u10d2\u0003\u0002\u0002\u0002\u10d2\u10d3\u0003\u0002\u0002\u0002", + "\u10d3\u10d6\u0005\u03c6\u01e4\u0002\u10d4\u10d5\u0007\u0337\u0002\u0002", + "\u10d5\u10d7\u0007\u0323\u0002\u0002\u10d6\u10d4\u0003\u0002\u0002\u0002", + "\u10d6\u10d7\u0003\u0002\u0002\u0002\u10d7\u016b\u0003\u0002\u0002\u0002", + "\u10d8\u10d9\u0007I\u0002\u0002\u10d9\u10da\u0007\u02c2\u0002\u0002", + "\u10da\u10db\u0007\u0290\u0002\u0002\u10db\u10dc\u0007\u0233\u0002\u0002", + "\u10dc\u10e4\u0005\u03c6\u01e4\u0002\u10dd\u10e1\u0007\u008b\u0002\u0002", + "\u10de\u10df\u0005\u03c6\u01e4\u0002\u10df\u10e0\u0007\u0337\u0002\u0002", + "\u10e0\u10e2\u0003\u0002\u0002\u0002\u10e1\u10de\u0003\u0002\u0002\u0002", + "\u10e1\u10e2\u0003\u0002\u0002\u0002\u10e2\u10e3\u0003\u0002\u0002\u0002", + "\u10e3\u10e5\u0005\u03c6\u01e4\u0002\u10e4\u10dd\u0003\u0002\u0002\u0002", + "\u10e4\u10e5\u0003\u0002\u0002\u0002\u10e5\u10e8\u0003\u0002\u0002\u0002", + "\u10e6\u10e7\u0007\u0014\u0002\u0002\u10e7\u10e9\u0005\u03c6\u01e4\u0002", + "\u10e8\u10e6\u0003\u0002\u0002\u0002\u10e8\u10e9\u0003\u0002\u0002\u0002", + "\u10e9\u016d\u0003\u0002\u0002\u0002\u10ea\u10eb\u0007I\u0002\u0002", + "\u10eb\u10ec\u0007\u02c8\u0002\u0002\u10ec\u10f0\u0007\u00fd\u0002\u0002", + "\u10ed\u10ee\u0005\u03c6\u01e4\u0002\u10ee\u10ef\u0007\u0337\u0002\u0002", + "\u10ef\u10f1\u0003\u0002\u0002\u0002\u10f0\u10ed\u0003\u0002\u0002\u0002", + "\u10f0\u10f1\u0003\u0002\u0002\u0002\u10f1\u10f2\u0003\u0002\u0002\u0002", + "\u10f2\u111b\u0005\u03c6\u01e4\u0002\u10f3\u10f5\u0007\u033e\u0002\u0002", + "\u10f4\u10f3\u0003\u0002\u0002\u0002\u10f4\u10f5\u0003\u0002\u0002\u0002", + "\u10f5\u10f6\u0003\u0002\u0002\u0002\u10f6\u10f8\u0007\u0004\u0002\u0002", + "\u10f7\u10f9\t)\u0002\u0002\u10f8\u10f7\u0003\u0002\u0002\u0002\u10f8", + "\u10f9\u0003\u0002\u0002\u0002\u10f9\u10fa\u0003\u0002\u0002\u0002\u10fa", + "\u10fb\u0007\u00ff\u0002\u0002\u10fb\u10fc\u0005\u03c6\u01e4\u0002\u10fc", + "\u10fd\u0007\u0337\u0002\u0002\u10fd\u10fe\u0005\u03c6\u01e4\u0002\u10fe", + "\u1103\u0007\u033c\u0002\u0002\u10ff\u1101\u0007\u033e\u0002\u0002\u1100", + "\u10ff\u0003\u0002\u0002\u0002\u1100\u1101\u0003\u0002\u0002\u0002\u1101", + "\u1102\u0003\u0002\u0002\u0002\u1102\u1104\u0005\u03c6\u01e4\u0002\u1103", + "\u1100\u0003\u0002\u0002\u0002\u1104\u1105\u0003\u0002\u0002\u0002\u1105", + "\u1103\u0003\u0002\u0002\u0002\u1105\u1106\u0003\u0002\u0002\u0002\u1106", + "\u1107\u0003\u0002\u0002\u0002\u1107\u1108\u0007\u033d\u0002\u0002\u1108", + "\u1109\u0007\u00e5\u0002\u0002\u1109\u110a\u0005\u03c6\u01e4\u0002\u110a", + "\u110b\u0007\u0337\u0002\u0002\u110b\u1118\u0005\u03c6\u01e4\u0002\u110c", + "\u110e\u0007\u033e\u0002\u0002\u110d\u110c\u0003\u0002\u0002\u0002\u110d", + "\u110e\u0003\u0002\u0002\u0002\u110e\u110f\u0003\u0002\u0002\u0002\u110f", + "\u1110\u0007\u0188\u0002\u0002\u1110\u1117\t*\u0002\u0002\u1111\u1113", + "\u0007\u033e\u0002\u0002\u1112\u1111\u0003\u0002\u0002\u0002\u1112\u1113", + "\u0003\u0002\u0002\u0002\u1113\u1114\u0003\u0002\u0002\u0002\u1114\u1115", + "\u0007\u001b\u0002\u0002\u1115\u1117\t+\u0002\u0002\u1116\u110d\u0003", + "\u0002\u0002\u0002\u1116\u1112\u0003\u0002\u0002\u0002\u1117\u111a\u0003", + "\u0002\u0002\u0002\u1118\u1116\u0003\u0002\u0002\u0002\u1118\u1119\u0003", + "\u0002\u0002\u0002\u1119\u111c\u0003\u0002\u0002\u0002\u111a\u1118\u0003", + "\u0002\u0002\u0002\u111b\u10f4\u0003\u0002\u0002\u0002\u111c\u111d\u0003", + "\u0002\u0002\u0002\u111d\u111b\u0003\u0002\u0002\u0002\u111d\u111e\u0003", + "\u0002\u0002\u0002\u111e\u1129\u0003\u0002\u0002\u0002\u111f\u1120\u0007", + "\u0179\u0002\u0002\u1120\u1121\u0007\u033c\u0002\u0002\u1121\u1122\u0007", + "\u0149\u0002\u0002\u1122\u1123\u0007\u032a\u0002\u0002\u1123\u1126\t", + "\t\u0002\u0002\u1124\u1125\u0007\u02be\u0002\u0002\u1125\u1127\t\t\u0002", + "\u0002\u1126\u1124\u0003\u0002\u0002\u0002\u1126\u1127\u0003\u0002\u0002", + "\u0002\u1127\u1128\u0003\u0002\u0002\u0002\u1128\u112a\u0007\u033d\u0002", + "\u0002\u1129\u111f\u0003\u0002\u0002\u0002\u1129\u112a\u0003\u0002\u0002", + "\u0002\u112a\u112e\u0003\u0002\u0002\u0002\u112b\u112c\u0007\u00dc\u0002", + "\u0002\u112c\u112d\u0007\u0085\u0002\u0002\u112d\u112f\u0007\u0112\u0002", + "\u0002\u112e\u112b\u0003\u0002\u0002\u0002\u112e\u112f\u0003\u0002\u0002", + "\u0002\u112f\u016f\u0003\u0002\u0002\u0002\u1130\u1131\u0007\n\u0002", + "\u0002\u1131\u1135\u0007\u02cf\u0002\u0002\u1132\u1133\u0005\u03c6\u01e4", + "\u0002\u1133\u1134\u0007\u0337\u0002\u0002\u1134\u1136\u0003\u0002\u0002", + "\u0002\u1135\u1132\u0003\u0002\u0002\u0002\u1135\u1136\u0003\u0002\u0002", + "\u0002\u1136\u1137\u0003\u0002\u0002\u0002\u1137\u113d\u0005\u03c6\u01e4", + "\u0002\u1138\u113b\u0007\u0115\u0002\u0002\u1139\u113a\u0007\u0179\u0002", + "\u0002\u113a\u113c\u0007\u0322\u0002\u0002\u113b\u1139\u0003\u0002\u0002", + "\u0002\u113b\u113c\u0003\u0002\u0002\u0002\u113c\u113e\u0003\u0002\u0002", + "\u0002\u113d\u1138\u0003\u0002\u0002\u0002\u113d\u113e\u0003\u0002\u0002", + "\u0002\u113e\u1142\u0003\u0002\u0002\u0002\u113f\u1140\u0007\u009d\u0002", + "\u0002\u1140\u1141\u0007&\u0002\u0002\u1141\u1143\u0007\u0322\u0002", + "\u0002\u1142\u113f\u0003\u0002\u0002\u0002\u1142\u1143\u0003\u0002\u0002", + "\u0002\u1143\u1148\u0003\u0002\u0002\u0002\u1144\u1145\u0007\u00cc\u0002", + "\u0002\u1145\u1149\u0007\u0322\u0002\u0002\u1146\u1147\u0007\u0263\u0002", + "\u0002\u1147\u1149\u0007\u00cc\u0002\u0002\u1148\u1144\u0003\u0002\u0002", + "\u0002\u1148\u1146\u0003\u0002\u0002\u0002\u1148\u1149\u0003\u0002\u0002", + "\u0002\u1149\u114e\u0003\u0002\u0002\u0002\u114a\u114b\u0007\u00c0\u0002", + "\u0002\u114b\u114f\u0007\u0322\u0002\u0002\u114c\u114d\u0007\u0263\u0002", + "\u0002\u114d\u114f\u0007\u00c0\u0002\u0002\u114e\u114a\u0003\u0002\u0002", + "\u0002\u114e\u114c\u0003\u0002\u0002\u0002\u114e\u114f\u0003\u0002\u0002", + "\u0002\u114f\u1153\u0003\u0002\u0002\u0002\u1150\u1154\u0007Q\u0002", + "\u0002\u1151\u1152\u0007\u0263\u0002\u0002\u1152\u1154\u0007Q\u0002", + "\u0002\u1153\u1150\u0003\u0002\u0002\u0002\u1153\u1151\u0003\u0002\u0002", + "\u0002\u1153\u1154\u0003\u0002\u0002\u0002\u1154\u1159\u0003\u0002\u0002", + "\u0002\u1155\u1156\u0007\'\u0002\u0002\u1156\u115a\u0007\u0322\u0002", + "\u0002\u1157\u1158\u0007\u0263\u0002\u0002\u1158\u115a\u0007\'\u0002", + "\u0002\u1159\u1155\u0003\u0002\u0002\u0002\u1159\u1157\u0003\u0002\u0002", + "\u0002\u1159\u115a\u0003\u0002\u0002\u0002\u115a\u0171\u0003\u0002\u0002", + "\u0002\u115b\u115c\u0007I\u0002\u0002\u115c\u1160\u0007\u02cf\u0002", + "\u0002\u115d\u115e\u0005\u03c6\u01e4\u0002\u115e\u115f\u0007\u0337\u0002", + "\u0002\u115f\u1161\u0003\u0002\u0002\u0002\u1160\u115d\u0003\u0002\u0002", + "\u0002\u1160\u1161\u0003\u0002\u0002\u0002\u1161\u1162\u0003\u0002\u0002", + "\u0002\u1162\u1165\u0005\u03c6\u01e4\u0002\u1163\u1164\u0007\u0010\u0002", + "\u0002\u1164\u1166\u0005\u03be\u01e0\u0002\u1165\u1163\u0003\u0002\u0002", + "\u0002\u1165\u1166\u0003\u0002\u0002\u0002\u1166\u116a\u0003\u0002\u0002", + "\u0002\u1167\u1168\u0007\u014b\u0002\u0002\u1168\u1169\u0007\u0179\u0002", + "\u0002\u1169\u116b\u0007\u0322\u0002\u0002\u116a\u1167\u0003\u0002\u0002", + "\u0002\u116a\u116b\u0003\u0002\u0002\u0002\u116b\u1172\u0003\u0002\u0002", + "\u0002\u116c\u116d\u0007\u009d\u0002\u0002\u116d\u116f\u0007&\u0002", + "\u0002\u116e\u1170\u0007\u0345\u0002\u0002\u116f\u116e\u0003\u0002\u0002", + "\u0002\u116f\u1170\u0003\u0002\u0002\u0002\u1170\u1171\u0003\u0002\u0002", + "\u0002\u1171\u1173\u0007\u0322\u0002\u0002\u1172\u116c\u0003\u0002\u0002", + "\u0002\u1172\u1173\u0003\u0002\u0002\u0002\u1173\u117a\u0003\u0002\u0002", + "\u0002\u1174\u1176\u0007\u00cc\u0002\u0002\u1175\u1177\u0007\u0322\u0002", + "\u0002\u1176\u1175\u0003\u0002\u0002\u0002\u1176\u1177\u0003\u0002\u0002", + "\u0002\u1177\u117b\u0003\u0002\u0002\u0002\u1178\u1179\u0007\u0263\u0002", + "\u0002\u1179\u117b\u0007\u00cc\u0002\u0002\u117a\u1174\u0003\u0002\u0002", + "\u0002\u117a\u1178\u0003\u0002\u0002\u0002\u117a\u117b\u0003\u0002\u0002", + "\u0002\u117b\u1182\u0003\u0002\u0002\u0002\u117c\u117e\u0007\u00c0\u0002", + "\u0002\u117d\u117f\u0007\u0322\u0002\u0002\u117e\u117d\u0003\u0002\u0002", + "\u0002\u117e\u117f\u0003\u0002\u0002\u0002\u117f\u1183\u0003\u0002\u0002", + "\u0002\u1180\u1181\u0007\u0263\u0002\u0002\u1181\u1183\u0007\u00c0\u0002", + "\u0002\u1182\u117c\u0003\u0002\u0002\u0002\u1182\u1180\u0003\u0002\u0002", + "\u0002\u1182\u1183\u0003\u0002\u0002\u0002\u1183\u1187\u0003\u0002\u0002", + "\u0002\u1184\u1188\u0007Q\u0002\u0002\u1185\u1186\u0007\u0263\u0002", + "\u0002\u1186\u1188\u0007Q\u0002\u0002\u1187\u1184\u0003\u0002\u0002", + "\u0002\u1187\u1185\u0003\u0002\u0002\u0002\u1187\u1188\u0003\u0002\u0002", + "\u0002\u1188\u118f\u0003\u0002\u0002\u0002\u1189\u118b\u0007\'\u0002", + "\u0002\u118a\u118c\u0007\u0322\u0002\u0002\u118b\u118a\u0003\u0002\u0002", + "\u0002\u118b\u118c\u0003\u0002\u0002\u0002\u118c\u1190\u0003\u0002\u0002", + "\u0002\u118d\u118e\u0007\u0263\u0002\u0002\u118e\u1190\u0007\'\u0002", + "\u0002\u118f\u1189\u0003\u0002\u0002\u0002\u118f\u118d\u0003\u0002\u0002", + "\u0002\u118f\u1190\u0003\u0002\u0002\u0002\u1190\u0173\u0003\u0002\u0002", + "\u0002\u1191\u1192\u0007\n\u0002\u0002\u1192\u1193\u0007\u0135\u0002", + "\u0002\u1193\u1194\u0007\u0196\u0002\u0002\u1194\u1218\u0005\u03c6\u01e4", + "\u0002\u1195\u11c2\u0007\u015a\u0002\u0002\u1196\u1197\u0007\u0081\u0002", + "\u0002\u1197\u11bc\u0007\u033c\u0002\u0002\u1198\u119a\u0007\u033e\u0002", + "\u0002\u1199\u1198\u0003\u0002\u0002\u0002\u1199\u119a\u0003\u0002\u0002", + "\u0002\u119a\u119b\u0003\u0002\u0002\u0002\u119b\u119c\u0007\u01fd\u0002", + "\u0002\u119c\u119d\u0007\u032a\u0002\u0002\u119d\u11bb\u0007\u0326\u0002", + "\u0002\u119e\u11a0\u0007\u033e\u0002\u0002\u119f\u119e\u0003\u0002\u0002", + "\u0002\u119f\u11a0\u0003\u0002\u0002\u0002\u11a0\u11a1\u0003\u0002\u0002", + "\u0002\u11a1\u11a2\u0007\u024c\u0002\u0002\u11a2\u11a6\u0007\u032a\u0002", + "\u0002\u11a3\u11a4\u0007\u0322\u0002\u0002\u11a4\u11a7\t,\u0002\u0002", + "\u11a5\u11a7\u0007\u0306\u0002\u0002\u11a6\u11a3\u0003\u0002\u0002\u0002", + "\u11a6\u11a5\u0003\u0002\u0002\u0002\u11a7\u11bb\u0003\u0002\u0002\u0002", + "\u11a8\u11aa\u0007\u033e\u0002\u0002\u11a9\u11a8\u0003\u0002\u0002\u0002", + "\u11a9\u11aa\u0003\u0002\u0002\u0002\u11aa\u11ab\u0003\u0002\u0002\u0002", + "\u11ab\u11ac\u0007\u0249\u0002\u0002\u11ac\u11ad\u0007\u032a\u0002\u0002", + "\u11ad\u11bb\t-\u0002\u0002\u11ae\u11b0\u0007\u033e\u0002\u0002\u11af", + "\u11ae\u0003\u0002\u0002\u0002\u11af\u11b0\u0003\u0002\u0002\u0002\u11b0", + "\u11b1\u0003\u0002\u0002\u0002\u11b1\u11b2\u0007\u0244\u0002\u0002\u11b2", + "\u11b3\u0007\u032a\u0002\u0002\u11b3\u11bb\u0007\u0322\u0002\u0002\u11b4", + "\u11b6\u0007\u033e\u0002\u0002\u11b5\u11b4\u0003\u0002\u0002\u0002\u11b5", + "\u11b6\u0003\u0002\u0002\u0002\u11b6\u11b7\u0003\u0002\u0002\u0002\u11b7", + "\u11b8\u0007\u02b1\u0002\u0002\u11b8\u11b9\u0007\u032a\u0002\u0002\u11b9", + "\u11bb\t\t\u0002\u0002\u11ba\u1199\u0003\u0002\u0002\u0002\u11ba\u119f", + "\u0003\u0002\u0002\u0002\u11ba\u11a9\u0003\u0002\u0002\u0002\u11ba\u11af", + "\u0003\u0002\u0002\u0002\u11ba\u11b5\u0003\u0002\u0002\u0002\u11bb\u11be", + "\u0003\u0002\u0002\u0002\u11bc\u11ba\u0003\u0002\u0002\u0002\u11bc\u11bd", + "\u0003\u0002\u0002\u0002\u11bd\u11bf\u0003\u0002\u0002\u0002\u11be\u11bc", + "\u0003\u0002\u0002\u0002\u11bf\u11c3\u0007\u033d\u0002\u0002\u11c0\u11c3", + "\u0007\u0192\u0002\u0002\u11c1\u11c3\u0007\u02c9\u0002\u0002\u11c2\u1196", + "\u0003\u0002\u0002\u0002\u11c2\u11c0\u0003\u0002\u0002\u0002\u11c2\u11c1", + "\u0003\u0002\u0002\u0002\u11c3\u11c5\u0003\u0002\u0002\u0002\u11c4\u1195", + "\u0003\u0002\u0002\u0002\u11c4\u11c5\u0003\u0002\u0002\u0002\u11c5\u11e0", + "\u0003\u0002\u0002\u0002\u11c6\u11c7\u0007\u0179\u0002\u0002\u11c7\u11dc", + "\u0007\u033c\u0002\u0002\u11c8\u11ca\u0007\u033e\u0002\u0002\u11c9\u11c8", + "\u0003\u0002\u0002\u0002\u11c9\u11ca\u0003\u0002\u0002\u0002\u11ca\u11cb", + "\u0003\u0002\u0002\u0002\u11cb\u11cc\u0007\u0295\u0002\u0002\u11cc\u11cd", + "\u0007\u032a\u0002\u0002\u11cd\u11db\u0007\u0322\u0002\u0002\u11ce\u11d0", + "\u0007\u033e\u0002\u0002\u11cf\u11ce\u0003\u0002\u0002\u0002\u11cf\u11d0", + "\u0003\u0002\u0002\u0002\u11d0\u11d1\u0003\u0002\u0002\u0002\u11d1\u11d2", + "\u0007\u00e6\u0002\u0002\u11d2\u11d3\u0007\u032a\u0002\u0002\u11d3\u11db", + "\t.\u0002\u0002\u11d4\u11d6\u0007\u033e\u0002\u0002\u11d5\u11d4\u0003", + "\u0002\u0002\u0002\u11d5\u11d6\u0003\u0002\u0002\u0002\u11d6\u11d7\u0003", + "\u0002\u0002\u0002\u11d7\u11d8\u0007\u0149\u0002\u0002\u11d8\u11d9\u0007", + "\u032a\u0002\u0002\u11d9\u11db\t\t\u0002\u0002\u11da\u11c9\u0003\u0002", + "\u0002\u0002\u11da\u11cf\u0003\u0002\u0002\u0002\u11da\u11d5\u0003\u0002", + "\u0002\u0002\u11db\u11de\u0003\u0002\u0002\u0002\u11dc\u11da\u0003\u0002", + "\u0002\u0002\u11dc\u11dd\u0003\u0002\u0002\u0002\u11dd\u11df\u0003\u0002", + "\u0002\u0002\u11de\u11dc\u0003\u0002\u0002\u0002\u11df\u11e1\u0007\u033d", + "\u0002\u0002\u11e0\u11c6\u0003\u0002\u0002\u0002\u11e0\u11e1\u0003\u0002", + "\u0002\u0002\u11e1\u1210\u0003\u0002\u0002\u0002\u11e2\u120e\u0007\u0176", + "\u0002\u0002\u11e3\u11e5\u0007\u033e\u0002\u0002\u11e4\u11e3\u0003\u0002", + "\u0002\u0002\u11e4\u11e5\u0003\u0002\u0002\u0002\u11e5\u11e7\u0003\u0002", + "\u0002\u0002\u11e6\u11e8\u0007\u00dc\u0002\u0002\u11e7\u11e6\u0003\u0002", + "\u0002\u0002\u11e7\u11e8\u0003\u0002\u0002\u0002\u11e8\u11e9\u0003\u0002", + "\u0002\u0002\u11e9\u11f5\u0005\u03c6\u01e4\u0002\u11ea\u11f6\u0007\u032a", + "\u0002\u0002\u11eb\u11ec\u0007\u032c\u0002\u0002\u11ec\u11f6\u0007\u032b", + "\u0002\u0002\u11ed\u11ee\u0007\u032d\u0002\u0002\u11ee\u11f6\u0007\u032a", + "\u0002\u0002\u11ef\u11f6\u0007\u032b\u0002\u0002\u11f0\u11f1\u0007\u032b", + "\u0002\u0002\u11f1\u11f6\u0007\u032a\u0002\u0002\u11f2\u11f6\u0007\u032c", + "\u0002\u0002\u11f3\u11f4\u0007\u032c\u0002\u0002\u11f4\u11f6\u0007\u032a", + "\u0002\u0002\u11f5\u11ea\u0003\u0002\u0002\u0002\u11f5\u11eb\u0003\u0002", + "\u0002\u0002\u11f5\u11ed\u0003\u0002\u0002\u0002\u11f5\u11ef\u0003\u0002", + "\u0002\u0002\u11f5\u11f0\u0003\u0002\u0002\u0002\u11f5\u11f2\u0003\u0002", + "\u0002\u0002\u11f5\u11f3\u0003\u0002\u0002\u0002\u11f6\u11f7\u0003\u0002", + "\u0002\u0002\u11f7\u11f8\t\u0018\u0002\u0002\u11f8\u120f\u0003\u0002", + "\u0002\u0002\u11f9\u11fb\u0007\u033e\u0002\u0002\u11fa\u11f9\u0003\u0002", + "\u0002\u0002\u11fa\u11fb\u0003\u0002\u0002\u0002\u11fb\u11fc\u0003\u0002", + "\u0002\u0002\u11fc\u11fe\t\u001d\u0002\u0002\u11fd\u11ff\u0007\u00dc", + "\u0002\u0002\u11fe\u11fd\u0003\u0002\u0002\u0002\u11fe\u11ff\u0003\u0002", + "\u0002\u0002\u11ff\u120b\u0003\u0002\u0002\u0002\u1200\u120c\u0007\u032a", + "\u0002\u0002\u1201\u1202\u0007\u032c\u0002\u0002\u1202\u120c\u0007\u032b", + "\u0002\u0002\u1203\u1204\u0007\u032d\u0002\u0002\u1204\u120c\u0007\u032a", + "\u0002\u0002\u1205\u120c\u0007\u032b\u0002\u0002\u1206\u1207\u0007\u032b", + "\u0002\u0002\u1207\u120c\u0007\u032a\u0002\u0002\u1208\u120c\u0007\u032c", + "\u0002\u0002\u1209\u120a\u0007\u032c\u0002\u0002\u120a\u120c\u0007\u032a", + "\u0002\u0002\u120b\u1200\u0003\u0002\u0002\u0002\u120b\u1201\u0003\u0002", + "\u0002\u0002\u120b\u1203\u0003\u0002\u0002\u0002\u120b\u1205\u0003\u0002", + "\u0002\u0002\u120b\u1206\u0003\u0002\u0002\u0002\u120b\u1208\u0003\u0002", + "\u0002\u0002\u120b\u1209\u0003\u0002\u0002\u0002\u120c\u120d\u0003\u0002", + "\u0002\u0002\u120d\u120f\t\u0018\u0002\u0002\u120e\u11e4\u0003\u0002", + "\u0002\u0002\u120e\u11fa\u0003\u0002\u0002\u0002\u120f\u1211\u0003\u0002", + "\u0002\u0002\u1210\u11e2\u0003\u0002\u0002\u0002\u1210\u1211\u0003\u0002", + "\u0002\u0002\u1211\u1219\u0003\u0002\u0002\u0002\u1212\u1213\u0007\u02a9", + "\u0002\u0002\u1213\u1219\u0007\u0176\u0002\u0002\u1214\u1215\u0007\u025a", + "\u0002\u0002\u1215\u1216\u0007\u025d\u0002\u0002\u1216\u1217\u0007\u032a", + "\u0002\u0002\u1217\u1219\u0005\u03c6\u01e4\u0002\u1218\u11c4\u0003\u0002", + "\u0002\u0002\u1218\u1212\u0003\u0002\u0002\u0002\u1218\u1214\u0003\u0002", + "\u0002\u0002\u1219\u0175\u0003\u0002\u0002\u0002\u121a\u121b\u0007I", + "\u0002\u0002\u121b\u121c\u0007\u0135\u0002\u0002\u121c\u121d\u0007\u0196", + "\u0002\u0002\u121d\u12a7\u0005\u03c6\u01e4\u0002\u121e\u124b\u0007\u015a", + "\u0002\u0002\u121f\u1220\u0007\u0081\u0002\u0002\u1220\u1245\u0007\u033c", + "\u0002\u0002\u1221\u1223\u0007\u033e\u0002\u0002\u1222\u1221\u0003\u0002", + "\u0002\u0002\u1222\u1223\u0003\u0002\u0002\u0002\u1223\u1224\u0003\u0002", + "\u0002\u0002\u1224\u1225\u0007\u01fd\u0002\u0002\u1225\u1226\u0007\u032a", + "\u0002\u0002\u1226\u1244\u0007\u0326\u0002\u0002\u1227\u1229\u0007\u033e", + "\u0002\u0002\u1228\u1227\u0003\u0002\u0002\u0002\u1228\u1229\u0003\u0002", + "\u0002\u0002\u1229\u122a\u0003\u0002\u0002\u0002\u122a\u122b\u0007\u024c", + "\u0002\u0002\u122b\u122f\u0007\u032a\u0002\u0002\u122c\u122d\u0007\u0322", + "\u0002\u0002\u122d\u1230\t,\u0002\u0002\u122e\u1230\u0007\u0306\u0002", + "\u0002\u122f\u122c\u0003\u0002\u0002\u0002\u122f\u122e\u0003\u0002\u0002", + "\u0002\u1230\u1244\u0003\u0002\u0002\u0002\u1231\u1233\u0007\u033e\u0002", + "\u0002\u1232\u1231\u0003\u0002\u0002\u0002\u1232\u1233\u0003\u0002\u0002", + "\u0002\u1233\u1234\u0003\u0002\u0002\u0002\u1234\u1235\u0007\u0249\u0002", + "\u0002\u1235\u1236\u0007\u032a\u0002\u0002\u1236\u1244\t-\u0002\u0002", + "\u1237\u1239\u0007\u033e\u0002\u0002\u1238\u1237\u0003\u0002\u0002\u0002", + "\u1238\u1239\u0003\u0002\u0002\u0002\u1239\u123a\u0003\u0002\u0002\u0002", + "\u123a\u123b\u0007\u0244\u0002\u0002\u123b\u123c\u0007\u032a\u0002\u0002", + "\u123c\u1244\u0007\u0322\u0002\u0002\u123d\u123f\u0007\u033e\u0002\u0002", + "\u123e\u123d\u0003\u0002\u0002\u0002\u123e\u123f\u0003\u0002\u0002\u0002", + "\u123f\u1240\u0003\u0002\u0002\u0002\u1240\u1241\u0007\u02b1\u0002\u0002", + "\u1241\u1242\u0007\u032a\u0002\u0002\u1242\u1244\t\t\u0002\u0002\u1243", + "\u1222\u0003\u0002\u0002\u0002\u1243\u1228\u0003\u0002\u0002\u0002\u1243", + "\u1232\u0003\u0002\u0002\u0002\u1243\u1238\u0003\u0002\u0002\u0002\u1243", + "\u123e\u0003\u0002\u0002\u0002\u1244\u1247\u0003\u0002\u0002\u0002\u1245", + "\u1243\u0003\u0002\u0002\u0002\u1245\u1246\u0003\u0002\u0002\u0002\u1246", + "\u1248\u0003\u0002\u0002\u0002\u1247\u1245\u0003\u0002\u0002\u0002\u1248", + "\u124c\u0007\u033d\u0002\u0002\u1249\u124c\u0007\u0192\u0002\u0002\u124a", + "\u124c\u0007\u02c9\u0002\u0002\u124b\u121f\u0003\u0002\u0002\u0002\u124b", + "\u1249\u0003\u0002\u0002\u0002\u124b\u124a\u0003\u0002\u0002\u0002\u124c", + "\u124e\u0003\u0002\u0002\u0002\u124d\u121e\u0003\u0002\u0002\u0002\u124d", + "\u124e\u0003\u0002\u0002\u0002\u124e\u126f\u0003\u0002\u0002\u0002\u124f", + "\u1250\u0007\u0179\u0002\u0002\u1250\u126b\u0007\u033c\u0002\u0002\u1251", + "\u1253\u0007\u033e\u0002\u0002\u1252\u1251\u0003\u0002\u0002\u0002\u1252", + "\u1253\u0003\u0002\u0002\u0002\u1253\u1254\u0003\u0002\u0002\u0002\u1254", + "\u1255\u0007\u0295\u0002\u0002\u1255\u1256\u0007\u032a\u0002\u0002\u1256", + "\u126a\u0007\u0322\u0002\u0002\u1257\u1259\u0007\u033e\u0002\u0002\u1258", + "\u1257\u0003\u0002\u0002\u0002\u1258\u1259\u0003\u0002\u0002\u0002\u1259", + "\u125a\u0003\u0002\u0002\u0002\u125a\u125b\u0007\u00e6\u0002\u0002\u125b", + "\u125c\u0007\u032a\u0002\u0002\u125c\u126a\t.\u0002\u0002\u125d\u125f", + "\u0007\u033e\u0002\u0002\u125e\u125d\u0003\u0002\u0002\u0002\u125e\u125f", + "\u0003\u0002\u0002\u0002\u125f\u1260\u0003\u0002\u0002\u0002\u1260\u1261", + "\u0007\u0149\u0002\u0002\u1261\u1262\u0007\u032a\u0002\u0002\u1262\u126a", + "\t\t\u0002\u0002\u1263\u1265\u0007\u033e\u0002\u0002\u1264\u1263\u0003", + "\u0002\u0002\u0002\u1264\u1265\u0003\u0002\u0002\u0002\u1265\u1266\u0003", + "\u0002\u0002\u0002\u1266\u1267\u0007\u0197\u0002\u0002\u1267\u1268\u0007", + "\u032a\u0002\u0002\u1268\u126a\u0005\u03c6\u01e4\u0002\u1269\u1252\u0003", + "\u0002\u0002\u0002\u1269\u1258\u0003\u0002\u0002\u0002\u1269\u125e\u0003", + "\u0002\u0002\u0002\u1269\u1264\u0003\u0002\u0002\u0002\u126a\u126d\u0003", + "\u0002\u0002\u0002\u126b\u1269\u0003\u0002\u0002\u0002\u126b\u126c\u0003", + "\u0002\u0002\u0002\u126c\u126e\u0003\u0002\u0002\u0002\u126d\u126b\u0003", + "\u0002\u0002\u0002\u126e\u1270\u0007\u033d\u0002\u0002\u126f\u124f\u0003", + "\u0002\u0002\u0002\u126f\u1270\u0003\u0002\u0002\u0002\u1270\u129f\u0003", + "\u0002\u0002\u0002\u1271\u129d\u0007\u0176\u0002\u0002\u1272\u1274\u0007", + "\u033e\u0002\u0002\u1273\u1272\u0003\u0002\u0002\u0002\u1273\u1274\u0003", + "\u0002\u0002\u0002\u1274\u1276\u0003\u0002\u0002\u0002\u1275\u1277\u0007", + "\u00dc\u0002\u0002\u1276\u1275\u0003\u0002\u0002\u0002\u1276\u1277\u0003", + "\u0002\u0002\u0002\u1277\u1278\u0003\u0002\u0002\u0002\u1278\u1284\u0005", + "\u03c6\u01e4\u0002\u1279\u1285\u0007\u032a\u0002\u0002\u127a\u127b\u0007", + "\u032c\u0002\u0002\u127b\u1285\u0007\u032b\u0002\u0002\u127c\u127d\u0007", + "\u032d\u0002\u0002\u127d\u1285\u0007\u032a\u0002\u0002\u127e\u1285\u0007", + "\u032b\u0002\u0002\u127f\u1280\u0007\u032b\u0002\u0002\u1280\u1285\u0007", + "\u032a\u0002\u0002\u1281\u1285\u0007\u032c\u0002\u0002\u1282\u1283\u0007", + "\u032c\u0002\u0002\u1283\u1285\u0007\u032a\u0002\u0002\u1284\u1279\u0003", + "\u0002\u0002\u0002\u1284\u127a\u0003\u0002\u0002\u0002\u1284\u127c\u0003", + "\u0002\u0002\u0002\u1284\u127e\u0003\u0002\u0002\u0002\u1284\u127f\u0003", + "\u0002\u0002\u0002\u1284\u1281\u0003\u0002\u0002\u0002\u1284\u1282\u0003", + "\u0002\u0002\u0002\u1285\u1286\u0003\u0002\u0002\u0002\u1286\u1287\t", + "\u0018\u0002\u0002\u1287\u129e\u0003\u0002\u0002\u0002\u1288\u128a\u0007", + "\u033e\u0002\u0002\u1289\u1288\u0003\u0002\u0002\u0002\u1289\u128a\u0003", + "\u0002\u0002\u0002\u128a\u128b\u0003\u0002\u0002\u0002\u128b\u128d\t", + "\u001d\u0002\u0002\u128c\u128e\u0007\u00dc\u0002\u0002\u128d\u128c\u0003", + "\u0002\u0002\u0002\u128d\u128e\u0003\u0002\u0002\u0002\u128e\u129a\u0003", + "\u0002\u0002\u0002\u128f\u129b\u0007\u032a\u0002\u0002\u1290\u1291\u0007", + "\u032c\u0002\u0002\u1291\u129b\u0007\u032b\u0002\u0002\u1292\u1293\u0007", + "\u032d\u0002\u0002\u1293\u129b\u0007\u032a\u0002\u0002\u1294\u129b\u0007", + "\u032b\u0002\u0002\u1295\u1296\u0007\u032b\u0002\u0002\u1296\u129b\u0007", + "\u032a\u0002\u0002\u1297\u129b\u0007\u032c\u0002\u0002\u1298\u1299\u0007", + "\u032c\u0002\u0002\u1299\u129b\u0007\u032a\u0002\u0002\u129a\u128f\u0003", + "\u0002\u0002\u0002\u129a\u1290\u0003\u0002\u0002\u0002\u129a\u1292\u0003", + "\u0002\u0002\u0002\u129a\u1294\u0003\u0002\u0002\u0002\u129a\u1295\u0003", + "\u0002\u0002\u0002\u129a\u1297\u0003\u0002\u0002\u0002\u129a\u1298\u0003", + "\u0002\u0002\u0002\u129b\u129c\u0003\u0002\u0002\u0002\u129c\u129e\t", + "\u0018\u0002\u0002\u129d\u1273\u0003\u0002\u0002\u0002\u129d\u1289\u0003", + "\u0002\u0002\u0002\u129e\u12a0\u0003\u0002\u0002\u0002\u129f\u1271\u0003", + "\u0002\u0002\u0002\u129f\u12a0\u0003\u0002\u0002\u0002\u12a0\u12a8\u0003", + "\u0002\u0002\u0002\u12a1\u12a2\u0007\u02a9\u0002\u0002\u12a2\u12a8\u0007", + "\u0176\u0002\u0002\u12a3\u12a4\u0007\u025a\u0002\u0002\u12a4\u12a5\u0007", + "\u025d\u0002\u0002\u12a5\u12a6\u0007\u032a\u0002\u0002\u12a6\u12a8\u0005", + "\u03c6\u01e4\u0002\u12a7\u124d\u0003\u0002\u0002\u0002\u12a7\u12a1\u0003", + "\u0002\u0002\u0002\u12a7\u12a3\u0003\u0002\u0002\u0002\u12a8\u0177\u0003", + "\u0002\u0002\u0002\u12a9\u12aa\u0007\n\u0002\u0002\u12aa\u12ab\u0007", + "\u0135\u0002\u0002\u12ab\u12ac\u0007\u0196\u0002\u0002\u12ac\u12ad\u0007", + "\u0143\u0002\u0002\u12ad\u12b2\u0005\u03c6\u01e4\u0002\u12ae\u12af\u0007", + "\u0085\u0002\u0002\u12af\u12b0\u0007\u0135\u0002\u0002\u12b0\u12b1\u0007", + "\u0196\u0002\u0002\u12b1\u12b3\u0005\u03c6\u01e4\u0002\u12b2\u12ae\u0003", + "\u0002\u0002\u0002\u12b2\u12b3\u0003\u0002\u0002\u0002\u12b3\u12bb\u0003", + "\u0002\u0002\u0002\u12b4\u12b5\t\u0015\u0002\u0002\u12b5\u12b6\u0007", + "\u033c\u0002\u0002\u12b6\u12b7\u0005\u03c6\u01e4\u0002\u12b7\u12b8\u0007", + "\u033d\u0002\u0002\u12b8\u12ba\u0003\u0002\u0002\u0002\u12b9\u12b4\u0003", + "\u0002\u0002\u0002\u12ba\u12bd\u0003\u0002\u0002\u0002\u12bb\u12b9\u0003", + "\u0002\u0002\u0002\u12bb\u12bc\u0003\u0002\u0002\u0002\u12bc\u12c4\u0003", + "\u0002\u0002\u0002\u12bd\u12bb\u0003\u0002\u0002\u0002\u12be\u12bf\u0007", + "\u0179\u0002\u0002\u12bf\u12c0\u0007\u033c\u0002\u0002\u12c0\u12c1\u0007", + "\u0149\u0002\u0002\u12c1\u12c2\u0007\u032a\u0002\u0002\u12c2\u12c3\t", + "\t\u0002\u0002\u12c3\u12c5\u0007\u033d\u0002\u0002\u12c4\u12be\u0003", + "\u0002\u0002\u0002\u12c4\u12c5\u0003\u0002\u0002\u0002\u12c5\u0179\u0003", + "\u0002\u0002\u0002\u12c6\u12c7\u0007I\u0002\u0002\u12c7\u12c8\u0007", + "\u0135\u0002\u0002\u12c8\u12c9\u0007\u0196\u0002\u0002\u12c9\u12ca\u0007", + "\u0143\u0002\u0002\u12ca\u12cf\u0005\u03c6\u01e4\u0002\u12cb\u12cc\u0007", + "\u0085\u0002\u0002\u12cc\u12cd\u0007\u0135\u0002\u0002\u12cd\u12ce\u0007", + "\u0196\u0002\u0002\u12ce\u12d0\u0005\u03c6\u01e4\u0002\u12cf\u12cb\u0003", + "\u0002\u0002\u0002\u12cf\u12d0\u0003\u0002\u0002\u0002\u12d0\u12d8\u0003", + "\u0002\u0002\u0002\u12d1\u12d2\u0007\u0004\u0002\u0002\u12d2\u12d3\u0007", + "\u033c\u0002\u0002\u12d3\u12d4\u0005\u03c6\u01e4\u0002\u12d4\u12d5\u0007", + "\u033d\u0002\u0002\u12d5\u12d7\u0003\u0002\u0002\u0002\u12d6\u12d1\u0003", + "\u0002\u0002\u0002\u12d7\u12da\u0003\u0002\u0002\u0002\u12d8\u12d6\u0003", + "\u0002\u0002\u0002\u12d8\u12d9\u0003\u0002\u0002\u0002\u12d9\u12e1\u0003", + "\u0002\u0002\u0002\u12da\u12d8\u0003\u0002\u0002\u0002\u12db\u12dc\u0007", + "\u0179\u0002\u0002\u12dc\u12dd\u0007\u033c\u0002\u0002\u12dd\u12de\u0007", + "\u0149\u0002\u0002\u12de\u12df\u0007\u032a\u0002\u0002\u12df\u12e0\t", + "\t\u0002\u0002\u12e0\u12e2\u0007\u033d\u0002\u0002\u12e1\u12db\u0003", + "\u0002\u0002\u0002\u12e1\u12e2\u0003\u0002\u0002\u0002\u12e2\u017b\u0003", + "\u0002\u0002\u0002\u12e3\u12e4\u0007\n\u0002\u0002\u12e4\u12e5\u0007", + "\u0135\u0002\u0002\u12e5\u12e6\u0007<\u0002\u0002\u12e6\u1350\u0007", + "\u013b\u0002\u0002\u12e7\u12e8\u0007\u0104\u0002\u0002\u12e8\u130c\u0007", + "\u0187\u0002\u0002\u12e9\u12ea\u0007\u01c1\u0002\u0002\u12ea\u12fa\u0007", + "\u032a\u0002\u0002\u12eb\u12fb\u0007\u0198\u0002\u0002\u12ec\u12ee\u0007", + "\u033e\u0002\u0002\u12ed\u12ec\u0003\u0002\u0002\u0002\u12ed\u12ee\u0003", + "\u0002\u0002\u0002\u12ee\u12ef\u0003\u0002\u0002\u0002\u12ef\u12f7\u0007", + "\u0322\u0002\u0002\u12f0\u12f2\u0007\u033e\u0002\u0002\u12f1\u12f0\u0003", + "\u0002\u0002\u0002\u12f1\u12f2\u0003\u0002\u0002\u0002\u12f2\u12f3\u0003", + "\u0002\u0002\u0002\u12f3\u12f4\u0007\u0322\u0002\u0002\u12f4\u12f5\u0007", + "\u015a\u0002\u0002\u12f5\u12f7\u0007\u0322\u0002\u0002\u12f6\u12ed\u0003", + "\u0002\u0002\u0002\u12f6\u12f1\u0003\u0002\u0002\u0002\u12f7\u12f8\u0003", + "\u0002\u0002\u0002\u12f8\u12f6\u0003\u0002\u0002\u0002\u12f8\u12f9\u0003", + "\u0002\u0002\u0002\u12f9\u12fb\u0003\u0002\u0002\u0002\u12fa\u12eb\u0003", + "\u0002\u0002\u0002\u12fa\u12f6\u0003\u0002\u0002\u0002\u12fb\u130d\u0003", + "\u0002\u0002\u0002\u12fc\u12fd\u0007\u026e\u0002\u0002\u12fd\u1308\u0007", + "\u032a\u0002\u0002\u12fe\u1300\u0007\u033e\u0002\u0002\u12ff\u12fe\u0003", + "\u0002\u0002\u0002\u12ff\u1300\u0003\u0002\u0002\u0002\u1300\u1301\u0003", + "\u0002\u0002\u0002\u1301\u1309\u0007\u0322\u0002\u0002\u1302\u1304\u0007", + "\u033e\u0002\u0002\u1303\u1302\u0003\u0002\u0002\u0002\u1303\u1304\u0003", + "\u0002\u0002\u0002\u1304\u1305\u0003\u0002\u0002\u0002\u1305\u1306\u0007", + "\u0322\u0002\u0002\u1306\u1307\u0007\u015a\u0002\u0002\u1307\u1309\u0007", + "\u0322\u0002\u0002\u1308\u12ff\u0003\u0002\u0002\u0002\u1308\u1303\u0003", + "\u0002\u0002\u0002\u1309\u130a\u0003\u0002\u0002\u0002\u130a\u1308\u0003", + "\u0002\u0002\u0002\u130a\u130b\u0003\u0002\u0002\u0002\u130b\u130d\u0003", + "\u0002\u0002\u0002\u130c\u12e9\u0003\u0002\u0002\u0002\u130c\u12fc\u0003", + "\u0002\u0002\u0002\u130d\u1351\u0003\u0002\u0002\u0002\u130e\u130f\u0007", + "_\u0002\u0002\u130f\u131f\u0007\u00bb\u0002\u0002\u1310\u1320\u0007", + "\u00e5\u0002\u0002\u1311\u1320\u0007\u00e2\u0002\u0002\u1312\u1313\u0007", + "\u0283\u0002\u0002\u1313\u1314\u0007\u032a\u0002\u0002\u1314\u1320\t", + "/\u0002\u0002\u1315\u1316\u0007\u00c3\u0002\u0002\u1316\u131a\u0007", + "\u032a\u0002\u0002\u1317\u1318\u0007\u0322\u0002\u0002\u1318\u131b\u0007", + "\u024d\u0002\u0002\u1319\u131b\u0007Y\u0002\u0002\u131a\u1317\u0003", + "\u0002\u0002\u0002\u131a\u1319\u0003\u0002\u0002\u0002\u131b\u1320\u0003", + "\u0002\u0002\u0002\u131c\u131d\u0007\u0244\u0002\u0002\u131d\u131e\u0007", + "\u032a\u0002\u0002\u131e\u1320\t0\u0002\u0002\u131f\u1310\u0003\u0002", + "\u0002\u0002\u131f\u1311\u0003\u0002\u0002\u0002\u131f\u1312\u0003\u0002", + "\u0002\u0002\u131f\u1315\u0003\u0002\u0002\u0002\u131f\u131c\u0003\u0002", + "\u0002\u0002\u1320\u1351\u0003\u0002\u0002\u0002\u1321\u1322\u0007}", + "\u0002\u0002\u1322\u1323\u00074\u0002\u0002\u1323\u1335\u0007\u0290", + "\u0002\u0002\u1324\u1325\u0007\u0171\u0002\u0002\u1325\u1326\u0007\u032a", + "\u0002\u0002\u1326\u1336\t/\u0002\u0002\u1327\u1328\u0007\u0145\u0002", + "\u0002\u1328\u1329\u0007\u032a\u0002\u0002\u1329\u1336\t/\u0002\u0002", + "\u132a\u132b\u0007\u0146\u0002\u0002\u132b\u132c\u0007\u032a\u0002\u0002", + "\u132c\u1336\t/\u0002\u0002\u132d\u132e\u0007\u0147\u0002\u0002\u132e", + "\u1336\t/\u0002\u0002\u132f\u1330\u0007~\u0002\u0002\u1330\u1331\u0007", + "\u032a\u0002\u0002\u1331\u1336\t/\u0002\u0002\u1332\u1333\u0007\u0095", + "\u0002\u0002\u1333\u1334\u0007\u032a\u0002\u0002\u1334\u1336\t0\u0002", + "\u0002\u1335\u1324\u0003\u0002\u0002\u0002\u1335\u1327\u0003\u0002\u0002", + "\u0002\u1335\u132a\u0003\u0002\u0002\u0002\u1335\u132d\u0003\u0002\u0002", + "\u0002\u1335\u132f\u0003\u0002\u0002\u0002\u1335\u1332\u0003\u0002\u0002", + "\u0002\u1336\u1351\u0003\u0002\u0002\u0002\u1337\u1338\u0007\u0212\u0002", + "\u0002\u1338\u1339\u00074\u0002\u0002\u1339\u133a\u0007A\u0002\u0002", + "\u133a\u133b\u0007\u032a\u0002\u0002\u133b\u1351\t1\u0002\u0002\u133c", + "\u133d\u0007#\u0002\u0002\u133d\u133e\u0007\u0285\u0002\u0002\u133e", + "\u134b\u0007z\u0002\u0002\u133f\u1340\u0007\u00e5\u0002\u0002\u1340", + "\u1341\u0007\u033c\u0002\u0002\u1341\u1342\u0007\u0082\u0002\u0002\u1342", + "\u1343\u0007\u032a\u0002\u0002\u1343\u1344\u0007\u0326\u0002\u0002\u1344", + "\u1345\u0007\u033e\u0002\u0002\u1345\u1346\u0007\u02d8\u0002\u0002\u1346", + "\u1347\u0007\u032a\u0002\u0002\u1347\u1348\u0007\u0322\u0002\u0002\u1348", + "\u1349\t2\u0002\u0002\u1349\u134c\u0007\u033d\u0002\u0002\u134a\u134c", + "\u0007\u00e2\u0002\u0002\u134b\u133f\u0003\u0002\u0002\u0002\u134b\u134a", + "\u0003\u0002\u0002\u0002\u134c\u1351\u0003\u0002\u0002\u0002\u134d\u134e", + "\u0007\u013b\u0002\u0002\u134e\u134f\u0007\u0140\u0002\u0002\u134f\u1351", + "\t\t\u0002\u0002\u1350\u12e7\u0003\u0002\u0002\u0002\u1350\u130e\u0003", + "\u0002\u0002\u0002\u1350\u1321\u0003\u0002\u0002\u0002\u1350\u1337\u0003", + "\u0002\u0002\u0002\u1350\u133c\u0003\u0002\u0002\u0002\u1350\u134d\u0003", + "\u0002\u0002\u0002\u1351\u017d\u0003\u0002\u0002\u0002\u1352\u1353\u0007", + "\n\u0002\u0002\u1353\u1354\u0007\u0135\u0002\u0002\u1354\u1355\u0007", + "\u0121\u0002\u0002\u1355\u135d\u0005\u03c6\u01e4\u0002\u1356\u1357\t", + "\u0015\u0002\u0002\u1357\u1358\u0007\u00c7\u0002\u0002\u1358\u135e\u0005", + "\u03c6\u01e4\u0002\u1359\u135a\u0007\u0179\u0002\u0002\u135a\u135b\u0007", + "\u025d\u0002\u0002\u135b\u135c\u0007\u032a\u0002\u0002\u135c\u135e\u0005", + "\u03c6\u01e4\u0002\u135d\u1356\u0003\u0002\u0002\u0002\u135d\u1359\u0003", + "\u0002\u0002\u0002\u135e\u017f\u0003\u0002\u0002\u0002\u135f\u1360\u0007", + "I\u0002\u0002\u1360\u1361\u0007\u0135\u0002\u0002\u1361\u1362\u0007", + "\u0121\u0002\u0002\u1362\u1365\u0005\u03c6\u01e4\u0002\u1363\u1364\u0007", + "\u0014\u0002\u0002\u1364\u1366\u0005\u03c6\u01e4\u0002\u1365\u1363\u0003", + "\u0002\u0002\u0002\u1365\u1366\u0003\u0002\u0002\u0002\u1366\u0181\u0003", + "\u0002\u0002\u0002\u1367\u1368\u0007\n\u0002\u0002\u1368\u1369\u0007", + "\u0135\u0002\u0002\u1369\u136a\u0007\u0121\u0002\u0002\u136a\u136b\u0005", + "\u03c6\u01e4\u0002\u136b\u136c\t\u0015\u0002\u0002\u136c\u136d\u0007", + "\u00c7\u0002\u0002\u136d\u136e\u0005\u03c6\u01e4\u0002\u136e\u0183\u0003", + "\u0002\u0002\u0002\u136f\u1370\u0007\n\u0002\u0002\u1370\u1371\u0007", + "\u0136\u0002\u0002\u1371\u1379\u0005\u03c6\u01e4\u0002\u1372\u1373\u0007", + "\u00e5\u0002\u0002\u1373\u1374\u0007\u0294\u0002\u0002\u1374\u1375\u0005", + "\u03c6\u01e4\u0002\u1375\u1376\u0007\u0337\u0002\u0002\u1376\u1377\u0003", + "\u0002\u0002\u0002\u1377\u1378\u0005\u03c6\u01e4\u0002\u1378\u137a\u0003", + "\u0002\u0002\u0002\u1379\u1372\u0003\u0002\u0002\u0002\u1379\u137a\u0003", + "\u0002\u0002\u0002\u137a\u1382\u0003\u0002\u0002\u0002\u137b\u137d\u0007", + "\u033e\u0002\u0002\u137c\u137b\u0003\u0002\u0002\u0002\u137c\u137d\u0003", + "\u0002\u0002\u0002\u137d\u137e\u0003\u0002\u0002\u0002\u137e\u137f\t", + "\u0015\u0002\u0002\u137f\u1381\u0005\u03c6\u01e4\u0002\u1380\u137c\u0003", + "\u0002\u0002\u0002\u1381\u1384\u0003\u0002\u0002\u0002\u1382\u1380\u0003", + "\u0002\u0002\u0002\u1382\u1383\u0003\u0002\u0002\u0002\u1383\u0185\u0003", + "\u0002\u0002\u0002\u1384\u1382\u0003\u0002\u0002\u0002\u1385\u1386\u0007", + "I\u0002\u0002\u1386\u1387\u0007\u0136\u0002\u0002\u1387\u138a\u0005", + "\u03c6\u01e4\u0002\u1388\u1389\u0007\u0014\u0002\u0002\u1389\u138b\u0005", + "\u03c6\u01e4\u0002\u138a\u1388\u0003\u0002\u0002\u0002\u138a\u138b\u0003", + "\u0002\u0002\u0002\u138b\u138c\u0003\u0002\u0002\u0002\u138c\u138d\u0007", + "\u00e5\u0002\u0002\u138d\u1391\u0007\u0294\u0002\u0002\u138e\u138f\u0005", + "\u03c6\u01e4\u0002\u138f\u1390\u0007\u0337\u0002\u0002\u1390\u1392\u0003", + "\u0002\u0002\u0002\u1391\u138e\u0003\u0002\u0002\u0002\u1391\u1392\u0003", + "\u0002\u0002\u0002\u1392\u1393\u0003\u0002\u0002\u0002\u1393\u13a1\u0005", + "\u03c6\u01e4\u0002\u1394\u139c\u0007\u033c\u0002\u0002\u1395\u1397\u0007", + "\u033e\u0002\u0002\u1396\u1395\u0003\u0002\u0002\u0002\u1396\u1397\u0003", + "\u0002\u0002\u0002\u1397\u139a\u0003\u0002\u0002\u0002\u1398\u139b\u0005", + "\u03c6\u01e4\u0002\u1399\u139b\u0007Y\u0002\u0002\u139a\u1398\u0003", + "\u0002\u0002\u0002\u139a\u1399\u0003\u0002\u0002\u0002\u139b\u139d\u0003", + "\u0002\u0002\u0002\u139c\u1396\u0003\u0002\u0002\u0002\u139d\u139e\u0003", + "\u0002\u0002\u0002\u139e\u139c\u0003\u0002\u0002\u0002\u139e\u139f\u0003", + "\u0002\u0002\u0002\u139f\u13a0\u0003\u0002\u0002\u0002\u13a0\u13a2\u0007", + "\u033d\u0002\u0002\u13a1\u1394\u0003\u0002\u0002\u0002\u13a1\u13a2\u0003", + "\u0002\u0002\u0002\u13a2\u0187\u0003\u0002\u0002\u0002\u13a3\u13a4\u0007", + "\n\u0002\u0002\u13a4\u13a5\u0007\u0136\u0002\u0002\u13a5\u13a6\u0007", + "\u00bd\u0002\u0002\u13a6\u13bc\u0007\u00ac\u0002\u0002\u13a7\u13a9\u0007", + "\u0203\u0002\u0002\u13a8\u13a7\u0003\u0002\u0002\u0002\u13a8\u13a9\u0003", + "\u0002\u0002\u0002\u13a9\u13aa\u0003\u0002\u0002\u0002\u13aa\u13bd\u0007", + "\u010f\u0002\u0002\u13ab\u13ba\u0007\u0179\u0002\u0002\u13ac\u13ad\u0007", + "\u0274\u0002\u0002\u13ad\u13ae\u0007\u032a\u0002\u0002\u13ae\u13af\u0007", + "\u0326\u0002\u0002\u13af\u13b0\u0007\u033e\u0002\u0002\u13b0\u13b1\u0007", + "\u00e4\u0002\u0002\u13b1\u13b2\u0007\u032a\u0002\u0002\u13b2\u13bb\u0007", + "\u0326\u0002\u0002\u13b3\u13b4\u0007\u025f\u0002\u0002\u13b4\u13b5\u0007", + "\u032a\u0002\u0002\u13b5\u13b6\u0007\u0326\u0002\u0002\u13b6\u13b7\u0007", + "\u033e\u0002\u0002\u13b7\u13b8\u0007\u0261\u0002\u0002\u13b8\u13b9\u0007", + "\u032a\u0002\u0002\u13b9\u13bb\u0007\u0326\u0002\u0002\u13ba\u13ac\u0003", + "\u0002\u0002\u0002\u13ba\u13b3\u0003\u0002\u0002\u0002\u13ba\u13bb\u0003", + "\u0002\u0002\u0002\u13bb\u13bd\u0003\u0002\u0002\u0002\u13bc\u13a8\u0003", + "\u0002\u0002\u0002\u13bc\u13ab\u0003\u0002\u0002\u0002\u13bd\u0189\u0003", + "\u0002\u0002\u0002\u13be\u13bf\u0007\n\u0002\u0002\u13bf\u13c0\u0007", + "\u02eb\u0002\u0002\u13c0\u13c1\u0007\u00ac\u0002\u0002\u13c1\u13c2\u0005", + "\u03c6\u01e4\u0002\u13c2\u13c3\t\u0015\u0002\u0002\u13c3\u13c4\u0007", + "\u01ec\u0002\u0002\u13c4\u13d0\u0007&\u0002\u0002\u13c5\u13c6\u0007", + "+\u0002\u0002\u13c6\u13d1\u0005\u03c6\u01e4\u0002\u13c7\u13c8\u0007", + "\u00f4\u0002\u0002\u13c8\u13c9\u0007\u032a\u0002\u0002\u13c9\u13d1\u0007", + "\u0326\u0002\u0002\u13ca\u13cb\u0007\u02eb\u0002\u0002\u13cb\u13cc\u0007", + "\u00ac\u0002\u0002\u13cc\u13d1\u0005\u03c6\u01e4\u0002\u13cd\u13ce\u0007", + "\u0012\u0002\u0002\u13ce\u13cf\u0007\u00ac\u0002\u0002\u13cf\u13d1\u0005", + "\u03c6\u01e4\u0002\u13d0\u13c5\u0003\u0002\u0002\u0002\u13d0\u13c7\u0003", + "\u0002\u0002\u0002\u13d0\u13ca\u0003\u0002\u0002\u0002\u13d0\u13cd\u0003", + "\u0002\u0002\u0002\u13d1\u018b\u0003\u0002\u0002\u0002\u13d2\u13d3\u0007", + "\n\u0002\u0002\u13d3\u13d4\u0007\u02eb\u0002\u0002\u13d4\u13d5\u0007", + "\u00ac\u0002\u0002\u13d5\u13d8\u0005\u03c6\u01e4\u0002\u13d6\u13d7\u0007", + "\u0014\u0002\u0002\u13d7\u13d9\u0005\u03c6\u01e4\u0002\u13d8\u13d6\u0003", + "\u0002\u0002\u0002\u13d8\u13d9\u0003\u0002\u0002\u0002\u13d9\u13dd\u0003", + "\u0002\u0002\u0002\u13da\u13db\u0007\u008b\u0002\u0002\u13db\u13dc\u0007", + "\u0291\u0002\u0002\u13dc\u13de\u0005\u03c6\u01e4\u0002\u13dd\u13da\u0003", + "\u0002\u0002\u0002\u13dd\u13de\u0003\u0002\u0002\u0002\u13de\u13df\u0003", + "\u0002\u0002\u0002\u13df\u1400\u0007\u0179\u0002\u0002\u13e0\u13e1\u0007", + "\u022b\u0002\u0002\u13e1\u13e2\u0007\u032a\u0002\u0002\u13e2\u13f0\u0007", + "\u0326\u0002\u0002\u13e3\u13e4\u0007\u018a\u0002\u0002\u13e4\u13e5\u0007", + "\u032a\u0002\u0002\u13e5\u13f0\t3\u0002\u0002\u13e6\u13e7\u0007\u0218", + "\u0002\u0002\u13e7\u13e8\u0007\u032a\u0002\u0002\u13e8\u13f0\u0007\u0326", + "\u0002\u0002\u13e9\u13ea\u0007\u0292\u0002\u0002\u13ea\u13eb\u0007\u032a", + "\u0002\u0002\u13eb\u13f0\u0007\u0326\u0002\u0002\u13ec\u13ed\u0007\u01c3", + "\u0002\u0002\u13ed\u13ee\u0007\u032a\u0002\u0002\u13ee\u13f0\t\f\u0002", + "\u0002\u13ef\u13e0\u0003\u0002\u0002\u0002\u13ef\u13e3\u0003\u0002\u0002", + "\u0002\u13ef\u13e6\u0003\u0002\u0002\u0002\u13ef\u13e9\u0003\u0002\u0002", + "\u0002\u13ef\u13ec\u0003\u0002\u0002\u0002\u13f0\u1401\u0003\u0002\u0002", + "\u0002\u13f1\u13f2\u0007\u01ec\u0002\u0002\u13f2\u13fe\u0007&\u0002", + "\u0002\u13f3\u13f4\u0007+\u0002\u0002\u13f4\u13ff\u0005\u03c6\u01e4", + "\u0002\u13f5\u13f6\u0007\u00f4\u0002\u0002\u13f6\u13f7\u0007\u032a\u0002", + "\u0002\u13f7\u13ff\u0007\u0326\u0002\u0002\u13f8\u13f9\u0007\u02eb\u0002", + "\u0002\u13f9\u13fa\u0007\u00ac\u0002\u0002\u13fa\u13ff\u0005\u03c6\u01e4", + "\u0002\u13fb\u13fc\u0007\u0012\u0002\u0002\u13fc\u13fd\u0007\u00ac\u0002", + "\u0002\u13fd\u13ff\u0005\u03c6\u01e4\u0002\u13fe\u13f3\u0003\u0002\u0002", + "\u0002\u13fe\u13f5\u0003\u0002\u0002\u0002\u13fe\u13f8\u0003\u0002\u0002", + "\u0002\u13fe\u13fb\u0003\u0002\u0002\u0002\u13ff\u1401\u0003\u0002\u0002", + "\u0002\u1400\u13ef\u0003\u0002\u0002\u0002\u1400\u13f1\u0003\u0002\u0002", + "\u0002\u1401\u018d\u0003\u0002\u0002\u0002\u1402\u1403\u0007I\u0002", + "\u0002\u1403\u1407\u0007\u02ed\u0002\u0002\u1404\u1405\u0005\u03c6\u01e4", + "\u0002\u1405\u1406\u0007\u0337\u0002\u0002\u1406\u1408\u0003\u0002\u0002", + "\u0002\u1407\u1404\u0003\u0002\u0002\u0002\u1407\u1408\u0003\u0002\u0002", + "\u0002\u1408\u1409\u0003\u0002\u0002\u0002\u1409\u140a\u0005\u03c6\u01e4", + "\u0002\u140a\u1425\u0007\u0085\u0002\u0002\u140b\u140c\u0005\u03c6\u01e4", + "\u0002\u140c\u140d\u0007\u0337\u0002\u0002\u140d\u140f\u0003\u0002\u0002", + "\u0002\u140e\u140b\u0003\u0002\u0002\u0002\u140e\u140f\u0003\u0002\u0002", + "\u0002\u140f\u1413\u0003\u0002\u0002\u0002\u1410\u1411\u0005\u03c6\u01e4", + "\u0002\u1411\u1412\u0007\u0337\u0002\u0002\u1412\u1414\u0003\u0002\u0002", + "\u0002\u1413\u1410\u0003\u0002\u0002\u0002\u1413\u1414\u0003\u0002\u0002", + "\u0002\u1414\u1418\u0003\u0002\u0002\u0002\u1415\u1416\u0005\u03c6\u01e4", + "\u0002\u1416\u1417\u0007\u0337\u0002\u0002\u1417\u1419\u0003\u0002\u0002", + "\u0002\u1418\u1415\u0003\u0002\u0002\u0002\u1418\u1419\u0003\u0002\u0002", + "\u0002\u1419\u141a\u0003\u0002\u0002\u0002\u141a\u1426\u0005\u03c6\u01e4", + "\u0002\u141b\u141c\u0005\u03c6\u01e4\u0002\u141c\u141d\u0007\u0337\u0002", + "\u0002\u141d\u141f\u0003\u0002\u0002\u0002\u141e\u141b\u0003\u0002\u0002", + "\u0002\u141e\u141f\u0003\u0002\u0002\u0002\u141f\u1423\u0003\u0002\u0002", + "\u0002\u1420\u1421\u0005\u03c6\u01e4\u0002\u1421\u1422\u0007\u0337\u0002", + "\u0002\u1422\u1424\u0003\u0002\u0002\u0002\u1423\u1420\u0003\u0002\u0002", + "\u0002\u1423\u1424\u0003\u0002\u0002\u0002\u1424\u1426\u0003\u0002\u0002", + "\u0002\u1425\u140e\u0003\u0002\u0002\u0002\u1425\u141e\u0003\u0002\u0002", + "\u0002\u1426\u018f\u0003\u0002\u0002\u0002\u1427\u1428\u0007\n\u0002", + "\u0002\u1428\u1429\u0007\u016e\u0002\u0002\u1429\u142a\u0005\u03c6\u01e4", + "\u0002\u142a\u145d\u0007\u0179\u0002\u0002\u142b\u142d\u0007\u033e\u0002", + "\u0002\u142c\u142b\u0003\u0002\u0002\u0002\u142c\u142d\u0003\u0002\u0002", + "\u0002\u142d\u142e\u0003\u0002\u0002\u0002\u142e\u142f\u0007\u025d\u0002", + "\u0002\u142f\u1430\u0007\u032a\u0002\u0002\u1430\u145e\u0005\u03c6\u01e4", + "\u0002\u1431\u1433\u0007\u033e\u0002\u0002\u1432\u1431\u0003\u0002\u0002", + "\u0002\u1432\u1433\u0003\u0002\u0002\u0002\u1433\u1434\u0003\u0002\u0002", + "\u0002\u1434\u1435\u0007[\u0002\u0002\u1435\u1438\u0007\u032a\u0002", + "\u0002\u1436\u1439\u0005\u03c6\u01e4\u0002\u1437\u1439\u0007\u00df\u0002", + "\u0002\u1438\u1436\u0003\u0002\u0002\u0002\u1438\u1437\u0003\u0002\u0002", + "\u0002\u1439\u145e\u0003\u0002\u0002\u0002\u143a\u143c\u0007\u033e\u0002", + "\u0002\u143b\u143a\u0003\u0002\u0002\u0002\u143b\u143c\u0003\u0002\u0002", + "\u0002\u143c\u143d\u0003\u0002\u0002\u0002\u143d\u143e\u0007\u023b\u0002", + "\u0002\u143e\u143f\u0007\u032a\u0002\u0002\u143f\u145e\u0005\u03c6\u01e4", + "\u0002\u1440\u1442\u0007\u033e\u0002\u0002\u1441\u1440\u0003\u0002\u0002", + "\u0002\u1441\u1442\u0003\u0002\u0002\u0002\u1442\u1443\u0003\u0002\u0002", + "\u0002\u1443\u1444\u0007\u00f4\u0002\u0002\u1444\u1445\u0007\u032a\u0002", + "\u0002\u1445\u1449\u0007\u0326\u0002\u0002\u1446\u1447\u0007\u00e4\u0002", + "\u0002\u1447\u1448\u0007\u032a\u0002\u0002\u1448\u144a\u0007\u0326\u0002", + "\u0002\u1449\u1446\u0003\u0002\u0002\u0002\u144a\u144b\u0003\u0002\u0002", + "\u0002\u144b\u1449\u0003\u0002\u0002\u0002\u144b\u144c\u0003\u0002\u0002", + "\u0002\u144c\u145e\u0003\u0002\u0002\u0002\u144d\u144f\u0007\u033e\u0002", + "\u0002\u144e\u144d\u0003\u0002\u0002\u0002\u144e\u144f\u0003\u0002\u0002", + "\u0002\u144f\u1450\u0003\u0002\u0002\u0002\u1450\u1451\u0007\u01d4\u0002", + "\u0002\u1451\u1455\u0007\u032a\u0002\u0002\u1452\u1456\u0007\u00d5\u0002", + "\u0002\u1453\u1456\u0007\u0322\u0002\u0002\u1454\u1456\u0005\u03c6\u01e4", + "\u0002\u1455\u1452\u0003\u0002\u0002\u0002\u1455\u1453\u0003\u0002\u0002", + "\u0002\u1455\u1454\u0003\u0002\u0002\u0002\u1456\u145e\u0003\u0002\u0002", + "\u0002\u1457\u1459\u0007\u033e\u0002\u0002\u1458\u1457\u0003\u0002\u0002", + "\u0002\u1458\u1459\u0003\u0002\u0002\u0002\u1459\u145a\u0003\u0002\u0002", + "\u0002\u145a\u145b\u0007\u018b\u0002\u0002\u145b\u145c\u0007\u032a\u0002", + "\u0002\u145c\u145e\t\t\u0002\u0002\u145d\u142c\u0003\u0002\u0002\u0002", + "\u145d\u1432\u0003\u0002\u0002\u0002\u145d\u143b\u0003\u0002\u0002\u0002", + "\u145d\u1441\u0003\u0002\u0002\u0002\u145d\u144e\u0003\u0002\u0002\u0002", + "\u145d\u1458\u0003\u0002\u0002\u0002\u145e\u145f\u0003\u0002\u0002\u0002", + "\u145f\u145d\u0003\u0002\u0002\u0002\u145f\u1460\u0003\u0002\u0002\u0002", + "\u1460\u0191\u0003\u0002\u0002\u0002\u1461\u1462\u0007I\u0002\u0002", + "\u1462\u1463\u0007\u016e\u0002\u0002\u1463\u1467\u0005\u03c6\u01e4\u0002", + "\u1464\u1465\t4\u0002\u0002\u1465\u1466\u0007\u023b\u0002\u0002\u1466", + "\u1468\u0005\u03c6\u01e4\u0002\u1467\u1464\u0003\u0002\u0002\u0002\u1467", + "\u1468\u0003\u0002\u0002\u0002\u1468\u147b\u0003\u0002\u0002\u0002\u1469", + "\u1478\u0007\u0179\u0002\u0002\u146a\u146c\u0007\u033e\u0002\u0002\u146b", + "\u146a\u0003\u0002\u0002\u0002\u146b\u146c\u0003\u0002\u0002\u0002\u146c", + "\u146d\u0003\u0002\u0002\u0002\u146d\u146e\u0007[\u0002\u0002\u146e", + "\u146f\u0007\u032a\u0002\u0002\u146f\u1477\u0005\u03c6\u01e4\u0002\u1470", + "\u1472\u0007\u033e\u0002\u0002\u1471\u1470\u0003\u0002\u0002\u0002\u1471", + "\u1472\u0003\u0002\u0002\u0002\u1472\u1473\u0003\u0002\u0002\u0002\u1473", + "\u1474\u0007\u018b\u0002\u0002\u1474\u1475\u0007\u032a\u0002\u0002\u1475", + "\u1477\t\t\u0002\u0002\u1476\u146b\u0003\u0002\u0002\u0002\u1476\u1471", + "\u0003\u0002\u0002\u0002\u1477\u147a\u0003\u0002\u0002\u0002\u1478\u1476", + "\u0003\u0002\u0002\u0002\u1478\u1479\u0003\u0002\u0002\u0002\u1479\u147c", + "\u0003\u0002\u0002\u0002\u147a\u1478\u0003\u0002\u0002\u0002\u147b\u1469", + "\u0003\u0002\u0002\u0002\u147b\u147c\u0003\u0002\u0002\u0002\u147c\u14f4", + "\u0003\u0002\u0002\u0002\u147d\u147e\u0007I\u0002\u0002\u147e\u14cf", + "\u0007\u016e\u0002\u0002\u147f\u14a2\u0005\u03c6\u01e4\u0002\u1480\u149f", + "\u0007\u0179\u0002\u0002\u1481\u1483\u0007\u033e\u0002\u0002\u1482\u1481", + "\u0003\u0002\u0002\u0002\u1482\u1483\u0003\u0002\u0002\u0002\u1483\u1484", + "\u0003\u0002\u0002\u0002\u1484\u1485\u0007[\u0002\u0002\u1485\u1486", + "\u0007\u032a\u0002\u0002\u1486\u149e\u0005\u03c6\u01e4\u0002\u1487\u1489", + "\u0007\u033e\u0002\u0002\u1488\u1487\u0003\u0002\u0002\u0002\u1488\u1489", + "\u0003\u0002\u0002\u0002\u1489\u148a\u0003\u0002\u0002\u0002\u148a\u148b", + "\u0007\u01d4\u0002\u0002\u148b\u148f\u0007\u032a\u0002\u0002\u148c\u1490", + "\u0007\u00d5\u0002\u0002\u148d\u1490\u0007\u0322\u0002\u0002\u148e\u1490", + "\u0005\u03c6\u01e4\u0002\u148f\u148c\u0003\u0002\u0002\u0002\u148f\u148d", + "\u0003\u0002\u0002\u0002\u148f\u148e\u0003\u0002\u0002\u0002\u1490\u149e", + "\u0003\u0002\u0002\u0002\u1491\u1493\u0007\u033e\u0002\u0002\u1492\u1491", + "\u0003\u0002\u0002\u0002\u1492\u1493\u0003\u0002\u0002\u0002\u1493\u1494", + "\u0003\u0002\u0002\u0002\u1494\u1495\u0007\u013e\u0002\u0002\u1495\u1496", + "\u0007\u032a\u0002\u0002\u1496\u149e\u0007\u0327\u0002\u0002\u1497\u1499", + "\u0007\u033e\u0002\u0002\u1498\u1497\u0003\u0002\u0002\u0002\u1498\u1499", + "\u0003\u0002\u0002\u0002\u1499\u149a\u0003\u0002\u0002\u0002\u149a\u149b", + "\u0007\u018b\u0002\u0002\u149b\u149c\u0007\u032a\u0002\u0002\u149c\u149e", + "\t\t\u0002\u0002\u149d\u1482\u0003\u0002\u0002\u0002\u149d\u1488\u0003", + "\u0002\u0002\u0002\u149d\u1492\u0003\u0002\u0002\u0002\u149d\u1498\u0003", + "\u0002\u0002\u0002\u149e\u14a1\u0003\u0002\u0002\u0002\u149f\u149d\u0003", + "\u0002\u0002\u0002\u149f\u14a0\u0003\u0002\u0002\u0002\u14a0\u14a3\u0003", + "\u0002\u0002\u0002\u14a1\u149f\u0003\u0002\u0002\u0002\u14a2\u1480\u0003", + "\u0002\u0002\u0002\u14a2\u14a3\u0003\u0002\u0002\u0002\u14a3\u14d0\u0003", + "\u0002\u0002\u0002\u14a4\u14a5\u0005\u03c6\u01e4\u0002\u14a5\u14a6\u0007", + "\u0179\u0002\u0002\u14a6\u14a7\u0007\u00f4\u0002\u0002\u14a7\u14a8\u0007", + "\u032a\u0002\u0002\u14a8\u14c7\u0007\u0326\u0002\u0002\u14a9\u14ab\u0007", + "\u033e\u0002\u0002\u14aa\u14a9\u0003\u0002\u0002\u0002\u14aa\u14ab\u0003", + "\u0002\u0002\u0002\u14ab\u14ac\u0003\u0002\u0002\u0002\u14ac\u14ad\u0007", + "[\u0002\u0002\u14ad\u14ae\u0007\u032a\u0002\u0002\u14ae\u14c6\u0005", + "\u03c6\u01e4\u0002\u14af\u14b1\u0007\u033e\u0002\u0002\u14b0\u14af\u0003", + "\u0002\u0002\u0002\u14b0\u14b1\u0003\u0002\u0002\u0002\u14b1\u14b2\u0003", + "\u0002\u0002\u0002\u14b2\u14b3\u0007\u01d4\u0002\u0002\u14b3\u14b7\u0007", + "\u032a\u0002\u0002\u14b4\u14b8\u0007\u00d5\u0002\u0002\u14b5\u14b8\u0007", + "\u0322\u0002\u0002\u14b6\u14b8\u0005\u03c6\u01e4\u0002\u14b7\u14b4\u0003", + "\u0002\u0002\u0002\u14b7\u14b5\u0003\u0002\u0002\u0002\u14b7\u14b6\u0003", + "\u0002\u0002\u0002\u14b8\u14c6\u0003\u0002\u0002\u0002\u14b9\u14bb\u0007", + "\u033e\u0002\u0002\u14ba\u14b9\u0003\u0002\u0002\u0002\u14ba\u14bb\u0003", + "\u0002\u0002\u0002\u14bb\u14bc\u0003\u0002\u0002\u0002\u14bc\u14bd\u0007", + "\u013e\u0002\u0002\u14bd\u14be\u0007\u032a\u0002\u0002\u14be\u14c6\u0007", + "\u0327\u0002\u0002\u14bf\u14c1\u0007\u033e\u0002\u0002\u14c0\u14bf\u0003", + "\u0002\u0002\u0002\u14c0\u14c1\u0003\u0002\u0002\u0002\u14c1\u14c2\u0003", + "\u0002\u0002\u0002\u14c2\u14c3\u0007\u018b\u0002\u0002\u14c3\u14c4\u0007", + "\u032a\u0002\u0002\u14c4\u14c6\t\t\u0002\u0002\u14c5\u14aa\u0003\u0002", + "\u0002\u0002\u14c5\u14b0\u0003\u0002\u0002\u0002\u14c5\u14ba\u0003\u0002", + "\u0002\u0002\u14c5\u14c0\u0003\u0002\u0002\u0002\u14c6\u14c9\u0003\u0002", + "\u0002\u0002\u14c7\u14c5\u0003\u0002\u0002\u0002\u14c7\u14c8\u0003\u0002", + "\u0002\u0002\u14c8\u14d0\u0003\u0002\u0002\u0002\u14c9\u14c7\u0003\u0002", + "\u0002\u0002\u14ca\u14cb\u0005\u03c6\u01e4\u0002\u14cb\u14cc\u0007\u008b", + "\u0002\u0002\u14cc\u14cd\u0007{\u0002\u0002\u14cd\u14ce\u0007\u0291", + "\u0002\u0002\u14ce\u14d0\u0003\u0002\u0002\u0002\u14cf\u147f\u0003\u0002", + "\u0002\u0002\u14cf\u14a4\u0003\u0002\u0002\u0002\u14cf\u14ca\u0003\u0002", + "\u0002\u0002\u14d0\u14f4\u0003\u0002\u0002\u0002\u14d1\u14d2\u0007I", + "\u0002\u0002\u14d2\u14d3\u0007\u016e\u0002\u0002\u14d3\u14ee\u0005\u03c6", + "\u01e4\u0002\u14d4\u14d5\u0007\u017b\u0002\u0002\u14d5\u14e4\u0007\u023b", + "\u0002\u0002\u14d6\u14d8\u0007\u033e\u0002\u0002\u14d7\u14d6\u0003\u0002", + "\u0002\u0002\u14d7\u14d8\u0003\u0002\u0002\u0002\u14d8\u14d9\u0003\u0002", + "\u0002\u0002\u14d9\u14da\u0007[\u0002\u0002\u14da\u14db\u0007\u032a", + "\u0002\u0002\u14db\u14e3\u0005\u03c6\u01e4\u0002\u14dc\u14de\u0007\u033e", + "\u0002\u0002\u14dd\u14dc\u0003\u0002\u0002\u0002\u14dd\u14de\u0003\u0002", + "\u0002\u0002\u14de\u14df\u0003\u0002\u0002\u0002\u14df\u14e0\u0007\u018b", + "\u0002\u0002\u14e0\u14e1\u0007\u032a\u0002\u0002\u14e1\u14e3\t\t\u0002", + "\u0002\u14e2\u14d7\u0003\u0002\u0002\u0002\u14e2\u14dd\u0003\u0002\u0002", + "\u0002\u14e3\u14e6\u0003\u0002\u0002\u0002\u14e4\u14e2\u0003\u0002\u0002", + "\u0002\u14e4\u14e5\u0003\u0002\u0002\u0002\u14e5\u14ef\u0003\u0002\u0002", + "\u0002\u14e6\u14e4\u0003\u0002\u0002\u0002\u14e7\u14e8\t4\u0002\u0002", + "\u14e8\u14e9\u0007+\u0002\u0002\u14e9\u14ef\u0005\u03c6\u01e4\u0002", + "\u14ea\u14eb\t4\u0002\u0002\u14eb\u14ec\u0007\u0012\u0002\u0002\u14ec", + "\u14ed\u0007\u00ac\u0002\u0002\u14ed\u14ef\u0005\u03c6\u01e4\u0002\u14ee", + "\u14d4\u0003\u0002\u0002\u0002\u14ee\u14e7\u0003\u0002\u0002\u0002\u14ee", + "\u14ea\u0003\u0002\u0002\u0002\u14ef\u14f4\u0003\u0002\u0002\u0002\u14f0", + "\u14f1\u0007I\u0002\u0002\u14f1\u14f2\u0007\u016e\u0002\u0002\u14f2", + "\u14f4\u0005\u03c6\u01e4\u0002\u14f3\u1461\u0003\u0002\u0002\u0002\u14f3", + "\u147d\u0003\u0002\u0002\u0002\u14f3\u14d1\u0003\u0002\u0002\u0002\u14f3", + "\u14f0\u0003\u0002\u0002\u0002\u14f4\u0193\u0003\u0002\u0002\u0002\u14f5", + "\u14f6\u0007I\u0002\u0002\u14f6\u14f7\u0007\u016e\u0002\u0002\u14f7", + "\u14fd\u0005\u03c6\u01e4\u0002\u14f8\u14f9\t4\u0002\u0002\u14f9\u14fa", + "\u0007\u023b\u0002\u0002\u14fa\u14fe\u0005\u03c6\u01e4\u0002\u14fb\u14fc", + "\u0007\u017b\u0002\u0002\u14fc\u14fe\u0007\u023b\u0002\u0002\u14fd\u14f8", + "\u0003\u0002\u0002\u0002\u14fd\u14fb\u0003\u0002\u0002\u0002\u14fd\u14fe", + "\u0003\u0002\u0002\u0002\u14fe\u1503\u0003\u0002\u0002\u0002\u14ff\u1500", + "\u0007\u0179\u0002\u0002\u1500\u1501\u0007[\u0002\u0002\u1501\u1502", + "\u0007\u032a\u0002\u0002\u1502\u1504\u0005\u03c6\u01e4\u0002\u1503\u14ff", + "\u0003\u0002\u0002\u0002\u1503\u1504\u0003\u0002\u0002\u0002\u1504\u1512", + "\u0003\u0002\u0002\u0002\u1505\u1506\u0007I\u0002\u0002\u1506\u1507", + "\u0007\u016e\u0002\u0002\u1507\u1508\u0005\u03c6\u01e4\u0002\u1508\u1509", + "\u0007\u008b\u0002\u0002\u1509\u150a\u0007{\u0002\u0002\u150a\u150f", + "\u0007\u0291\u0002\u0002\u150b\u150c\u0007\u0179\u0002\u0002\u150c\u150d", + "\u0007[\u0002\u0002\u150d\u150e\u0007\u032a\u0002\u0002\u150e\u1510", + "\u0005\u03c6\u01e4\u0002\u150f\u150b\u0003\u0002\u0002\u0002\u150f\u1510", + "\u0003\u0002\u0002\u0002\u1510\u1512\u0003\u0002\u0002\u0002\u1511\u14f5", + "\u0003\u0002\u0002\u0002\u1511\u1505\u0003\u0002\u0002\u0002\u1512\u0195", + "\u0003\u0002\u0002\u0002\u1513\u1514\u0007\n\u0002\u0002\u1514\u1515", + "\u0007\u016e\u0002\u0002\u1515\u1516\u0005\u03c6\u01e4\u0002\u1516\u152f", + "\u0007\u0179\u0002\u0002\u1517\u1519\u0007\u033e\u0002\u0002\u1518\u1517", + "\u0003\u0002\u0002\u0002\u1518\u1519\u0003\u0002\u0002\u0002\u1519\u151a", + "\u0003\u0002\u0002\u0002\u151a\u151b\u0007\u025d\u0002\u0002\u151b\u151c", + "\u0007\u032a\u0002\u0002\u151c\u1530\u0005\u03c6\u01e4\u0002\u151d\u151f", + "\u0007\u033e\u0002\u0002\u151e\u151d\u0003\u0002\u0002\u0002\u151e\u151f", + "\u0003\u0002\u0002\u0002\u151f\u1520\u0003\u0002\u0002\u0002\u1520\u1521", + "\u0007[\u0002\u0002\u1521\u1522\u0007\u032a\u0002\u0002\u1522\u1530", + "\u0005\u03c6\u01e4\u0002\u1523\u1525\u0007\u033e\u0002\u0002\u1524\u1523", + "\u0003\u0002\u0002\u0002\u1524\u1525\u0003\u0002\u0002\u0002\u1525\u1526", + "\u0003\u0002\u0002\u0002\u1526\u1527\u0007\u023b\u0002\u0002\u1527\u1528", + "\u0007\u032a\u0002\u0002\u1528\u1530\u0005\u03c6\u01e4\u0002\u1529\u152b", + "\u0007\u033e\u0002\u0002\u152a\u1529\u0003\u0002\u0002\u0002\u152a\u152b", + "\u0003\u0002\u0002\u0002\u152b\u152c\u0003\u0002\u0002\u0002\u152c\u152d", + "\u0007\u018b\u0002\u0002\u152d\u152e\u0007\u032a\u0002\u0002\u152e\u1530", + "\t\t\u0002\u0002\u152f\u1518\u0003\u0002\u0002\u0002\u152f\u151e\u0003", + "\u0002\u0002\u0002\u152f\u1524\u0003\u0002\u0002\u0002\u152f\u152a\u0003", + "\u0002\u0002\u0002\u1530\u1531\u0003\u0002\u0002\u0002\u1531\u152f\u0003", + "\u0002\u0002\u0002\u1531\u1532\u0003\u0002\u0002\u0002\u1532\u0197\u0003", + "\u0002\u0002\u0002\u1533\u1534\u0007\n\u0002\u0002\u1534\u1535\u0007", + "\u0314\u0002\u0002\u1535\u1538\u0007\u0092\u0002\u0002\u1536\u1539\u0005", + "\u03c6\u01e4\u0002\u1537\u1539\u0007\u01d2\u0002\u0002\u1538\u1536\u0003", + "\u0002\u0002\u0002\u1538\u1537\u0003\u0002\u0002\u0002\u1539\u1559\u0003", + "\u0002\u0002\u0002\u153a\u153b\u0007\u0179\u0002\u0002\u153b\u1554\u0007", + "\u033c\u0002\u0002\u153c\u153d\u0007\u021c\u0002\u0002\u153d\u153e\u0007", + "\u032a\u0002\u0002\u153e\u1555\t5\u0002\u0002\u153f\u1541\u0007\u033e", + "\u0002\u0002\u1540\u153f\u0003\u0002\u0002\u0002\u1540\u1541\u0003\u0002", + "\u0002\u0002\u1541\u1542\u0003\u0002\u0002\u0002\u1542\u1543\u0007\u02ae", + "\u0002\u0002\u1543\u1544\u0007\u032a\u0002\u0002\u1544\u1555\u0007\u0322", + "\u0002\u0002\u1545\u1547\u0007\u033e\u0002\u0002\u1546\u1545\u0003\u0002", + "\u0002\u0002\u1546\u1547\u0003\u0002\u0002\u0002\u1547\u1548\u0003\u0002", + "\u0002\u0002\u1548\u1549\u0007\u02ad\u0002\u0002\u1549\u154a\u0007\u032a", + "\u0002\u0002\u154a\u1555\u0007\u0322\u0002\u0002\u154b\u154c\u0007\u02af", + "\u0002\u0002\u154c\u154d\u0007\u032a\u0002\u0002\u154d\u1555\u0007\u0322", + "\u0002\u0002\u154e\u154f\u0007\u0243\u0002\u0002\u154f\u1550\u0007\u032a", + "\u0002\u0002\u1550\u1555\u0007\u0322\u0002\u0002\u1551\u1552\u0007\u020f", + "\u0002\u0002\u1552\u1553\u0007\u032a\u0002\u0002\u1553\u1555\u0007\u0322", + "\u0002\u0002\u1554\u153c\u0003\u0002\u0002\u0002\u1554\u1540\u0003\u0002", + "\u0002\u0002\u1554\u1546\u0003\u0002\u0002\u0002\u1554\u154b\u0003\u0002", + "\u0002\u0002\u1554\u154e\u0003\u0002\u0002\u0002\u1554\u1551\u0003\u0002", + "\u0002\u0002\u1555\u1556\u0003\u0002\u0002\u0002\u1556\u1554\u0003\u0002", + "\u0002\u0002\u1556\u1557\u0003\u0002\u0002\u0002\u1557\u1558\u0003\u0002", + "\u0002\u0002\u1558\u155a\u0007\u033d\u0002\u0002\u1559\u153a\u0003\u0002", + "\u0002\u0002\u1559\u155a\u0003\u0002\u0002\u0002\u155a\u1560\u0003\u0002", + "\u0002\u0002\u155b\u155e\u0007\u0308\u0002\u0002\u155c\u155f\u0005\u03c6", + "\u01e4\u0002\u155d\u155f\u0007\u01d2\u0002\u0002\u155e\u155c\u0003\u0002", + "\u0002\u0002\u155e\u155d\u0003\u0002\u0002\u0002\u155f\u1561\u0003\u0002", + "\u0002\u0002\u1560\u155b\u0003\u0002\u0002\u0002\u1560\u1561\u0003\u0002", + "\u0002\u0002\u1561\u0199\u0003\u0002\u0002\u0002\u1562\u1563\u0007I", + "\u0002\u0002\u1563\u1564\u0007\u0314\u0002\u0002\u1564\u1565\u0007\u0092", + "\u0002\u0002\u1565\u1585\u0005\u03c6\u01e4\u0002\u1566\u1567\u0007\u0179", + "\u0002\u0002\u1567\u1580\u0007\u033c\u0002\u0002\u1568\u1569\u0007\u021c", + "\u0002\u0002\u1569\u156a\u0007\u032a\u0002\u0002\u156a\u1581\t5\u0002", + "\u0002\u156b\u156d\u0007\u033e\u0002\u0002\u156c\u156b\u0003\u0002\u0002", + "\u0002\u156c\u156d\u0003\u0002\u0002\u0002\u156d\u156e\u0003\u0002\u0002", + "\u0002\u156e\u156f\u0007\u02ae\u0002\u0002\u156f\u1570\u0007\u032a\u0002", + "\u0002\u1570\u1581\u0007\u0322\u0002\u0002\u1571\u1573\u0007\u033e\u0002", + "\u0002\u1572\u1571\u0003\u0002\u0002\u0002\u1572\u1573\u0003\u0002\u0002", + "\u0002\u1573\u1574\u0003\u0002\u0002\u0002\u1574\u1575\u0007\u02ad\u0002", + "\u0002\u1575\u1576\u0007\u032a\u0002\u0002\u1576\u1581\u0007\u0322\u0002", + "\u0002\u1577\u1578\u0007\u02af\u0002\u0002\u1578\u1579\u0007\u032a\u0002", + "\u0002\u1579\u1581\u0007\u0322\u0002\u0002\u157a\u157b\u0007\u0243\u0002", + "\u0002\u157b\u157c\u0007\u032a\u0002\u0002\u157c\u1581\u0007\u0322\u0002", + "\u0002\u157d\u157e\u0007\u020f\u0002\u0002\u157e\u157f\u0007\u032a\u0002", + "\u0002\u157f\u1581\u0007\u0322\u0002\u0002\u1580\u1568\u0003\u0002\u0002", + "\u0002\u1580\u156c\u0003\u0002\u0002\u0002\u1580\u1572\u0003\u0002\u0002", + "\u0002\u1580\u1577\u0003\u0002\u0002\u0002\u1580\u157a\u0003\u0002\u0002", + "\u0002\u1580\u157d\u0003\u0002\u0002\u0002\u1581\u1582\u0003\u0002\u0002", + "\u0002\u1582\u1580\u0003\u0002\u0002\u0002\u1582\u1583\u0003\u0002\u0002", + "\u0002\u1583\u1584\u0003\u0002\u0002\u0002\u1584\u1586\u0007\u033d\u0002", + "\u0002\u1585\u1566\u0003\u0002\u0002\u0002\u1585\u1586\u0003\u0002\u0002", + "\u0002\u1586\u1594\u0003\u0002\u0002\u0002\u1587\u158a\u0007\u0308\u0002", + "\u0002\u1588\u158b\u0005\u03c6\u01e4\u0002\u1589\u158b\u0007\u01d2\u0002", + "\u0002\u158a\u1588\u0003\u0002\u0002\u0002\u158a\u1589\u0003\u0002\u0002", + "\u0002\u158a\u158b\u0003\u0002\u0002\u0002\u158b\u1592\u0003\u0002\u0002", + "\u0002\u158c\u158e\u0007\u033e\u0002\u0002\u158d\u158c\u0003\u0002\u0002", + "\u0002\u158d\u158e\u0003\u0002\u0002\u0002\u158e\u158f\u0003\u0002\u0002", + "\u0002\u158f\u1590\u0007{\u0002\u0002\u1590\u1593\u0005\u03c6\u01e4", + "\u0002\u1591\u1593\u0007\u01d2\u0002\u0002\u1592\u158d\u0003\u0002\u0002", + "\u0002\u1592\u1591\u0003\u0002\u0002\u0002\u1592\u1593\u0003\u0002\u0002", + "\u0002\u1593\u1595\u0003\u0002\u0002\u0002\u1594\u1587\u0003\u0002\u0002", + "\u0002\u1594\u1595\u0003\u0002\u0002\u0002\u1595\u019b\u0003\u0002\u0002", + "\u0002\u1596\u1597\u0007I\u0002\u0002\u1597\u1598\u0007\u0315\u0002", + "\u0002\u1598\u1599\u0007\u012e\u0002\u0002\u1599\u159d\u0007\u01b5\u0002", + "\u0002\u159a\u159b\u0005\u03c6\u01e4\u0002\u159b\u159c\u0007\u0337\u0002", + "\u0002\u159c\u159e\u0003\u0002\u0002\u0002\u159d\u159a\u0003\u0002\u0002", + "\u0002\u159d\u159e\u0003\u0002\u0002\u0002\u159e\u159f\u0003\u0002\u0002", + "\u0002\u159f\u15a0\u0005\u03c6\u01e4\u0002\u15a0\u15a4\u0007\u0010\u0002", + "\u0002\u15a1\u15a5\u0007\u0326\u0002\u0002\u15a2\u15a5\u0005\u03c6\u01e4", + "\u0002\u15a3\u15a5\u0007\u0321\u0002\u0002\u15a4\u15a1\u0003\u0002\u0002", + "\u0002\u15a4\u15a2\u0003\u0002\u0002\u0002\u15a4\u15a3\u0003\u0002\u0002", + "\u0002\u15a5\u019d\u0003\u0002\u0002\u0002\u15a6\u15a7\u0007I\u0002", + "\u0002\u15a7\u15aa\u0007\u0294\u0002\u0002\u15a8\u15ab\u0005\u038c\u01c7", + "\u0002\u15a9\u15ab\u0005\u03c6\u01e4\u0002\u15aa\u15a8\u0003\u0002\u0002", + "\u0002\u15aa\u15a9\u0003\u0002\u0002\u0002\u15ab\u15ad\u0003\u0002\u0002", + "\u0002\u15ac\u15ae\u0005\u01a0\u00d1\u0002\u15ad\u15ac\u0003\u0002\u0002", + "\u0002\u15ad\u15ae\u0003\u0002\u0002\u0002\u15ae\u15b2\u0003\u0002\u0002", + "\u0002\u15af\u15b0\u0007\u00e5\u0002\u0002\u15b0\u15b3\u0005\u03c6\u01e4", + "\u0002\u15b1\u15b3\u0007Y\u0002\u0002\u15b2\u15af\u0003\u0002\u0002", + "\u0002\u15b2\u15b1\u0003\u0002\u0002\u0002\u15b2\u15b3\u0003\u0002\u0002", + "\u0002\u15b3\u019f\u0003\u0002\u0002\u0002\u15b4\u15bb\u0007\u0179\u0002", + "\u0002\u15b5\u15b6\u0007\u02e0\u0002\u0002\u15b6\u15b7\u0007\u032a\u0002", + "\u0002\u15b7\u15b9\t\t\u0002\u0002\u15b8\u15ba\u0007\u033e\u0002\u0002", + "\u15b9\u15b8\u0003\u0002\u0002\u0002\u15b9\u15ba\u0003\u0002\u0002\u0002", + "\u15ba\u15bc\u0003\u0002\u0002\u0002\u15bb\u15b5\u0003\u0002\u0002\u0002", + "\u15bb\u15bc\u0003\u0002\u0002\u0002\u15bc\u15c3\u0003\u0002\u0002\u0002", + "\u15bd\u15be\u0007\u02b5\u0002\u0002\u15be\u15bf\u0007\u032a\u0002\u0002", + "\u15bf\u15c1\t\t\u0002\u0002\u15c0\u15c2\u0007\u033e\u0002\u0002\u15c1", + "\u15c0\u0003\u0002\u0002\u0002\u15c1\u15c2\u0003\u0002\u0002\u0002\u15c2", + "\u15c4\u0003\u0002\u0002\u0002\u15c3\u15bd\u0003\u0002\u0002\u0002\u15c3", + "\u15c4\u0003\u0002\u0002\u0002\u15c4\u15f2\u0003\u0002\u0002\u0002\u15c5", + "\u15c6\u0007\u0181\u0002\u0002\u15c6\u15ec\u0007\u033c\u0002\u0002\u15c7", + "\u15c8\u0007\u02e0\u0002\u0002\u15c8\u15c9\u0007\u032a\u0002\u0002\u15c9", + "\u15cb\t\t\u0002\u0002\u15ca\u15cc\u0007\u033e\u0002\u0002\u15cb\u15ca", + "\u0003\u0002\u0002\u0002\u15cb\u15cc\u0003\u0002\u0002\u0002\u15cc\u15ce", + "\u0003\u0002\u0002\u0002\u15cd\u15c7\u0003\u0002\u0002\u0002\u15cd\u15ce", + "\u0003\u0002\u0002\u0002\u15ce\u15d5\u0003\u0002\u0002\u0002\u15cf\u15d0", + "\u0007\u028f\u0002\u0002\u15d0\u15d1\u0007\u032a\u0002\u0002\u15d1\u15d3", + "\u0005\u0394\u01cb\u0002\u15d2\u15d4\u0007\u033e\u0002\u0002\u15d3\u15d2", + "\u0003\u0002\u0002\u0002\u15d3\u15d4\u0003\u0002\u0002\u0002\u15d4\u15d6", + "\u0003\u0002\u0002\u0002\u15d5\u15cf\u0003\u0002\u0002\u0002\u15d5\u15d6", + "\u0003\u0002\u0002\u0002\u15d6\u15dd\u0003\u0002\u0002\u0002\u15d7\u15d8", + "\u0007\u0248\u0002\u0002\u15d8\u15d9\u0007\u032a\u0002\u0002\u15d9\u15db", + "\u0007\u0322\u0002\u0002\u15da\u15dc\u0007\u033e\u0002\u0002\u15db\u15da", + "\u0003\u0002\u0002\u0002\u15db\u15dc\u0003\u0002\u0002\u0002\u15dc\u15de", + "\u0003\u0002\u0002\u0002\u15dd\u15d7\u0003\u0002\u0002\u0002\u15dd\u15de", + "\u0003\u0002\u0002\u0002\u15de\u15e9\u0003\u0002\u0002\u0002\u15df\u15e0", + "\u0007v\u0002\u0002\u15e0\u15e4\u0007\u0010\u0002\u0002\u15e1\u15e5", + "\u0007\u02cb\u0002\u0002\u15e2\u15e5\u0007\u0326\u0002\u0002\u15e3\u15e5", + "\u0007\u027d\u0002\u0002\u15e4\u15e1\u0003\u0002\u0002\u0002\u15e4\u15e2", + "\u0003\u0002\u0002\u0002\u15e4\u15e3\u0003\u0002\u0002\u0002\u15e5\u15e7", + "\u0003\u0002\u0002\u0002\u15e6\u15e8\u0007\u033e\u0002\u0002\u15e7\u15e6", + "\u0003\u0002\u0002\u0002\u15e7\u15e8\u0003\u0002\u0002\u0002\u15e8\u15ea", + "\u0003\u0002\u0002\u0002\u15e9\u15df\u0003\u0002\u0002\u0002\u15e9\u15ea", + "\u0003\u0002\u0002\u0002\u15ea\u15ed\u0003\u0002\u0002\u0002\u15eb\u15ed", + "\u0007g\u0002\u0002\u15ec\u15cd\u0003\u0002\u0002\u0002\u15ec\u15eb", + "\u0003\u0002\u0002\u0002\u15ed\u15ee\u0003\u0002\u0002\u0002\u15ee\u15f0", + "\u0007\u033d\u0002\u0002\u15ef\u15f1\u0007\u033e\u0002\u0002\u15f0\u15ef", + "\u0003\u0002\u0002\u0002\u15f0\u15f1\u0003\u0002\u0002\u0002\u15f1\u15f3", + "\u0003\u0002\u0002\u0002\u15f2\u15c5\u0003\u0002\u0002\u0002\u15f2\u15f3", + "\u0003\u0002\u0002\u0002\u15f3\u15fb\u0003\u0002\u0002\u0002\u15f4\u15f5", + "\u0007\u0284\u0002\u0002\u15f5\u15f6\u0007\u033c\u0002\u0002\u15f6\u15f7", + "\u0007\u02e0\u0002\u0002\u15f7\u15f8\u0007\u032a\u0002\u0002\u15f8\u15f9", + "\t\t\u0002\u0002\u15f9\u15fa\u0003\u0002\u0002\u0002\u15fa\u15fc\u0007", + "\u033d\u0002\u0002\u15fb\u15f4\u0003\u0002\u0002\u0002\u15fb\u15fc\u0003", + "\u0002\u0002\u0002\u15fc\u01a1\u0003\u0002\u0002\u0002\u15fd\u15fe\u0007", + "\n\u0002\u0002\u15fe\u1601\u0007\u0294\u0002\u0002\u15ff\u1602\u0005", + "\u038c\u01c7\u0002\u1600\u1602\u0005\u03c6\u01e4\u0002\u1601\u15ff\u0003", + "\u0002\u0002\u0002\u1601\u1600\u0003\u0002\u0002\u0002\u1602\u1605\u0003", + "\u0002\u0002\u0002\u1603\u1606\u0005\u01a0\u00d1\u0002\u1604\u1606\u0005", + "\u01a4\u00d3\u0002\u1605\u1603\u0003\u0002\u0002\u0002\u1605\u1604\u0003", + "\u0002\u0002\u0002\u1606\u01a3\u0003\u0002\u0002\u0002\u1607\u160d\u0007", + "\u02a1\u0002\u0002\u1608\u1609\u0007\u0179\u0002\u0002\u1609\u160a\u0007", + "\u033c\u0002\u0002\u160a\u160b\u0005\u01a6\u00d4\u0002\u160b\u160c\u0007", + "\u033d\u0002\u0002\u160c\u160e\u0003\u0002\u0002\u0002\u160d\u1608\u0003", + "\u0002\u0002\u0002\u160d\u160e\u0003\u0002\u0002\u0002\u160e\u161d\u0003", + "\u0002\u0002\u0002\u160f\u1614\u0007\u02aa\u0002\u0002\u1610\u1611\u0007", + "\u0179\u0002\u0002\u1611\u1612\u0007\u0236\u0002\u0002\u1612\u1613\u0007", + "\u032a\u0002\u0002\u1613\u1615\t\t\u0002\u0002\u1614\u1610\u0003\u0002", + "\u0002\u0002\u1614\u1615\u0003\u0002\u0002\u0002\u1615\u161d\u0003\u0002", + "\u0002\u0002\u1616\u1617\u0007\u025b\u0002\u0002\u1617\u161a\u0007\u015a", + "\u0002\u0002\u1618\u161b\u0005\u03c6\u01e4\u0002\u1619\u161b\u0007Y", + "\u0002\u0002\u161a\u1618\u0003\u0002\u0002\u0002\u161a\u1619\u0003\u0002", + "\u0002\u0002\u161b\u161d\u0003\u0002\u0002\u0002\u161c\u1607\u0003\u0002", + "\u0002\u0002\u161c\u160f\u0003\u0002\u0002\u0002\u161c\u1616\u0003\u0002", + "\u0002\u0002\u161d\u01a5\u0003\u0002\u0002\u0002\u161e\u161f\u0007\u024a", + "\u0002\u0002\u161f\u1620\u0007\u032a\u0002\u0002\u1620\u1621\u0007\u0322", + "\u0002\u0002\u1621\u01a7\u0003\u0002\u0002\u0002\u1622\u1623\u0007I", + "\u0002\u0002\u1623\u1624\u0007D\u0002\u0002\u1624\u1627\u0005\u03b0", + "\u01d9\u0002\u1625\u1626\u0007\u0014\u0002\u0002\u1626\u1628\u0005\u03c6", + "\u01e4\u0002\u1627\u1625\u0003\u0002\u0002\u0002\u1627\u1628\u0003\u0002", + "\u0002\u0002\u1628\u1629\u0003\u0002\u0002\u0002\u1629\u1634\u0007\u033c", + "\u0002\u0002\u162a\u162d\u0005\u03c6\u01e4\u0002\u162b\u162d\u0007Y", + "\u0002\u0002\u162c\u162a\u0003\u0002\u0002\u0002\u162c\u162b\u0003\u0002", + "\u0002\u0002\u162d\u162e\u0003\u0002\u0002\u0002\u162e\u162f\u0007\u02ce", + "\u0002\u0002\u162f\u1630\u0007&\u0002\u0002\u1630\u1632\t6\u0002\u0002", + "\u1631\u1633\u0007\u033e\u0002\u0002\u1632\u1631\u0003\u0002\u0002\u0002", + "\u1632\u1633\u0003\u0002\u0002\u0002\u1633\u1635\u0003\u0002\u0002\u0002", + "\u1634\u162c\u0003\u0002\u0002\u0002\u1635\u1636\u0003\u0002\u0002\u0002", + "\u1636\u1634\u0003\u0002\u0002\u0002\u1636\u1637\u0003\u0002\u0002\u0002", + "\u1637\u1638\u0003\u0002\u0002\u0002\u1638\u1639\u0007\u033d\u0002\u0002", + "\u1639\u01a9\u0003\u0002\u0002\u0002\u163a\u1641\u0005\u03ac\u01d7\u0002", + "\u163b\u1641\u0005\u03ae\u01d8\u0002\u163c\u1641\u0005\u03b4\u01db\u0002", + "\u163d\u1641\u0005\u03b8\u01dd\u0002\u163e\u1641\u0005\u03bc\u01df\u0002", + "\u163f\u1641\u0005\u03b6\u01dc\u0002\u1640\u163a\u0003\u0002\u0002\u0002", + "\u1640\u163b\u0003\u0002\u0002\u0002\u1640\u163c\u0003\u0002\u0002\u0002", + "\u1640\u163d\u0003\u0002\u0002\u0002\u1640\u163e\u0003\u0002\u0002\u0002", + "\u1640\u163f\u0003\u0002\u0002\u0002\u1641\u01ab\u0003\u0002\u0002\u0002", + "\u1642\u1643\u0007I\u0002\u0002\u1643\u1644\u0007\u0250\u0002\u0002", + "\u1644\u1645\u0007\u0301\u0002\u0002\u1645\u1648\u0005\u03c6\u01e4\u0002", + "\u1646\u1647\u0007\u0014\u0002\u0002\u1647\u1649\u0005\u03c6\u01e4\u0002", + "\u1648\u1646\u0003\u0002\u0002\u0002\u1648\u1649\u0003\u0002\u0002\u0002", + "\u1649\u164a\u0003\u0002\u0002\u0002\u164a\u164b\u0007\u030a\u0002\u0002", + "\u164b\u1654\u0007\u032a\u0002\u0002\u164c\u1655\u0007\u00d5\u0002\u0002", + "\u164d\u1655\u0007\u01e8\u0002\u0002\u164e\u1655\u0007\u0311\u0002\u0002", + "\u164f\u1650\u0007\u0309\u0002\u0002\u1650\u1651\u0007\u0179\u0002\u0002", + "\u1651\u1652\u0007\u012e\u0002\u0002\u1652\u1653\u0007\u01b5\u0002\u0002", + "\u1653\u1655\u0005\u03c6\u01e4\u0002\u1654\u164c\u0003\u0002\u0002\u0002", + "\u1654\u164d\u0003\u0002\u0002\u0002\u1654\u164e\u0003\u0002\u0002\u0002", + "\u1654\u164f\u0003\u0002\u0002\u0002\u1655\u01ad\u0003\u0002\u0002\u0002", + "\u1656\u1658\u0005\u02e6\u0174\u0002\u1657\u1656\u0003\u0002\u0002\u0002", + "\u1657\u1658\u0003\u0002\u0002\u0002\u1658\u1659\u0003\u0002\u0002\u0002", + "\u1659\u1661\u0007\u00c9\u0002\u0002\u165a\u165b\u0007\u015b\u0002\u0002", + "\u165b\u165c\u0007\u033c\u0002\u0002\u165c\u165d\u0005\u02d8\u016d\u0002", + "\u165d\u165f\u0007\u033d\u0002\u0002\u165e\u1660\u0007\u00f5\u0002\u0002", + "\u165f\u165e\u0003\u0002\u0002\u0002\u165f\u1660\u0003\u0002\u0002\u0002", + "\u1660\u1662\u0003\u0002\u0002\u0002\u1661\u165a\u0003\u0002\u0002\u0002", + "\u1661\u1662\u0003\u0002\u0002\u0002\u1662\u1664\u0003\u0002\u0002\u0002", + "\u1663\u1665\u0007\u00a5\u0002\u0002\u1664\u1663\u0003\u0002\u0002\u0002", + "\u1664\u1665\u0003\u0002\u0002\u0002\u1665\u1666\u0003\u0002\u0002\u0002", + "\u1666\u1668\u0005\u0398\u01cd\u0002\u1667\u1669\u0005\u035a\u01ae\u0002", + "\u1668\u1667\u0003\u0002\u0002\u0002\u1668\u1669\u0003\u0002\u0002\u0002", + "\u1669\u166b\u0003\u0002\u0002\u0002\u166a\u166c\u0005\u0354\u01ab\u0002", + "\u166b\u166a\u0003\u0002\u0002\u0002\u166b\u166c\u0003\u0002\u0002\u0002", + "\u166c\u166d\u0003\u0002\u0002\u0002\u166d\u166e\u0007\u0308\u0002\u0002", + "\u166e\u166f\u0005\u0320\u0191\u0002\u166f\u1670\u0007\u00e5\u0002\u0002", + "\u1670\u167b\u0005\u02ee\u0178\u0002\u1671\u1672\u0007\u0175\u0002\u0002", + "\u1672\u1675\u0007\u00bc\u0002\u0002\u1673\u1674\u0007\u000b\u0002\u0002", + "\u1674\u1676\u0005\u02ee\u0178\u0002\u1675\u1673\u0003\u0002\u0002\u0002", + "\u1675\u1676\u0003\u0002\u0002\u0002\u1676\u1677\u0003\u0002\u0002\u0002", + "\u1677\u1678\u0007\u0159\u0002\u0002\u1678\u167a\u0005\u01b0\u00d9\u0002", + "\u1679\u1671\u0003\u0002\u0002\u0002\u167a\u167d\u0003\u0002\u0002\u0002", + "\u167b\u1679\u0003\u0002\u0002\u0002\u167b\u167c\u0003\u0002\u0002\u0002", + "\u167c\u168b\u0003\u0002\u0002\u0002\u167d\u167b\u0003\u0002\u0002\u0002", + "\u167e\u167f\u0007\u0175\u0002\u0002\u167f\u1680\u0007\u00dc\u0002\u0002", + "\u1680\u1683\u0007\u00bc\u0002\u0002\u1681\u1682\u0007&\u0002\u0002", + "\u1682\u1684\u0007\u0156\u0002\u0002\u1683\u1681\u0003\u0002\u0002\u0002", + "\u1683\u1684\u0003\u0002\u0002\u0002\u1684\u1687\u0003\u0002\u0002\u0002", + "\u1685\u1686\u0007\u000b\u0002\u0002\u1686\u1688\u0005\u02ee\u0178\u0002", + "\u1687\u1685\u0003\u0002\u0002\u0002\u1687\u1688\u0003\u0002\u0002\u0002", + "\u1688\u1689\u0003\u0002\u0002\u0002\u1689\u168a\u0007\u0159\u0002\u0002", + "\u168a\u168c\u0005\u01b2\u00da\u0002\u168b\u167e\u0003\u0002\u0002\u0002", + "\u168b\u168c\u0003\u0002\u0002\u0002\u168c\u169a\u0003\u0002\u0002\u0002", + "\u168d\u168e\u0007\u0175\u0002\u0002\u168e\u168f\u0007\u00dc\u0002\u0002", + "\u168f\u1690\u0007\u00bc\u0002\u0002\u1690\u1691\u0007&\u0002\u0002", + "\u1691\u1694\u0007\u0142\u0002\u0002\u1692\u1693\u0007\u000b\u0002\u0002", + "\u1693\u1695\u0005\u02ee\u0178\u0002\u1694\u1692\u0003\u0002\u0002\u0002", + "\u1694\u1695\u0003\u0002\u0002\u0002\u1695\u1696\u0003\u0002\u0002\u0002", + "\u1696\u1697\u0007\u0159\u0002\u0002\u1697\u1699\u0005\u01b0\u00d9\u0002", + "\u1698\u168d\u0003\u0002\u0002\u0002\u1699\u169c\u0003\u0002\u0002\u0002", + "\u169a\u1698\u0003\u0002\u0002\u0002\u169a\u169b\u0003\u0002\u0002\u0002", + "\u169b\u169e\u0003\u0002\u0002\u0002\u169c\u169a\u0003\u0002\u0002\u0002", + "\u169d\u169f\u0005\u01c4\u00e3\u0002\u169e\u169d\u0003\u0002\u0002\u0002", + "\u169e\u169f\u0003\u0002\u0002\u0002\u169f\u16a1\u0003\u0002\u0002\u0002", + "\u16a0\u16a2\u0005\u030c\u0187\u0002\u16a1\u16a0\u0003\u0002\u0002\u0002", + "\u16a1\u16a2\u0003\u0002\u0002\u0002\u16a2\u16a3\u0003\u0002\u0002\u0002", + "\u16a3\u16a4\u0007\u033f\u0002\u0002\u16a4\u01af\u0003\u0002\u0002\u0002", + "\u16a5\u16a6\u0007\u0169\u0002\u0002\u16a6\u16a7\u0007\u013b\u0002\u0002", + "\u16a7\u16ac\u0005\u02ea\u0176\u0002\u16a8\u16a9\u0007\u033e\u0002\u0002", + "\u16a9\u16ab\u0005\u02ea\u0176\u0002\u16aa\u16a8\u0003\u0002\u0002\u0002", + "\u16ab\u16ae\u0003\u0002\u0002\u0002\u16ac\u16aa\u0003\u0002\u0002\u0002", + "\u16ac\u16ad\u0003\u0002\u0002\u0002\u16ad\u16b1\u0003\u0002\u0002\u0002", + "\u16ae\u16ac\u0003\u0002\u0002\u0002\u16af\u16b1\u0007\\\u0002\u0002", + "\u16b0\u16a5\u0003\u0002\u0002\u0002\u16b0\u16af\u0003\u0002\u0002\u0002", + "\u16b1\u01b1\u0003\u0002\u0002\u0002\u16b2\u16b7\u0007\u00a2\u0002\u0002", + "\u16b3\u16b4\u0007\u033c\u0002\u0002\u16b4\u16b5\u0005\u039e\u01d0\u0002", + "\u16b5\u16b6\u0007\u033d\u0002\u0002\u16b6\u16b8\u0003\u0002\u0002\u0002", + "\u16b7\u16b3\u0003\u0002\u0002\u0002\u16b7\u16b8\u0003\u0002\u0002\u0002", + "\u16b8\u16bc\u0003\u0002\u0002\u0002\u16b9\u16bd\u0005\u0364\u01b3\u0002", + "\u16ba\u16bb\u0007Y\u0002\u0002\u16bb\u16bd\u0007\u016f\u0002\u0002", + "\u16bc\u16b9\u0003\u0002\u0002\u0002\u16bc\u16ba\u0003\u0002\u0002\u0002", + "\u16bd\u01b3\u0003\u0002\u0002\u0002\u16be\u16c0\u0005\u02e6\u0174\u0002", + "\u16bf\u16be\u0003\u0002\u0002\u0002\u16bf\u16c0\u0003\u0002\u0002\u0002", + "\u16c0\u16c1\u0003\u0002\u0002\u0002\u16c1\u16cb\u0007\\\u0002\u0002", + "\u16c2\u16c3\u0007\u015b\u0002\u0002\u16c3\u16c4\u0007\u033c\u0002\u0002", + "\u16c4\u16c5\u0005\u02d8\u016d\u0002\u16c5\u16c7\u0007\u033d\u0002\u0002", + "\u16c6\u16c8\u0007\u00f5\u0002\u0002\u16c7\u16c6\u0003\u0002\u0002\u0002", + "\u16c7\u16c8\u0003\u0002\u0002\u0002\u16c8\u16cc\u0003\u0002\u0002\u0002", + "\u16c9\u16ca\u0007\u015b\u0002\u0002\u16ca\u16cc\u0007\u0322\u0002\u0002", + "\u16cb\u16c2\u0003\u0002\u0002\u0002\u16cb\u16c9\u0003\u0002\u0002\u0002", + "\u16cb\u16cc\u0003\u0002\u0002\u0002\u16cc\u16ce\u0003\u0002\u0002\u0002", + "\u16cd\u16cf\u0007\u008b\u0002\u0002\u16ce\u16cd\u0003\u0002\u0002\u0002", + "\u16ce\u16cf\u0003\u0002\u0002\u0002\u16cf\u16d0\u0003\u0002\u0002\u0002", + "\u16d0\u16d2\u0005\u01b6\u00dc\u0002\u16d1\u16d3\u0005\u035a\u01ae\u0002", + "\u16d2\u16d1\u0003\u0002\u0002\u0002\u16d2\u16d3\u0003\u0002\u0002\u0002", + "\u16d3\u16d5\u0003\u0002\u0002\u0002\u16d4\u16d6\u0005\u01c4\u00e3\u0002", + "\u16d5\u16d4\u0003\u0002\u0002\u0002\u16d5\u16d6\u0003\u0002\u0002\u0002", + "\u16d6\u16d9\u0003\u0002\u0002\u0002\u16d7\u16d8\u0007\u008b\u0002\u0002", + "\u16d8\u16da\u0005\u0320\u0191\u0002\u16d9\u16d7\u0003\u0002\u0002\u0002", + "\u16d9\u16da\u0003\u0002\u0002\u0002\u16da\u16e8\u0003\u0002\u0002\u0002", + "\u16db\u16e6\u0007\u0176\u0002\u0002\u16dc\u16e7\u0005\u02ee\u0178\u0002", + "\u16dd\u16de\u0007K\u0002\u0002\u16de\u16e4\u0007\u00e1\u0002\u0002", + "\u16df\u16e1\u0007\u020d\u0002\u0002\u16e0\u16df\u0003\u0002\u0002\u0002", + "\u16e0\u16e1\u0003\u0002\u0002\u0002\u16e1\u16e2\u0003\u0002\u0002\u0002", + "\u16e2\u16e5\u0005\u03a0\u01d1\u0002\u16e3\u16e5\u0007\u0321\u0002\u0002", + "\u16e4\u16e0\u0003\u0002\u0002\u0002\u16e4\u16e3\u0003\u0002\u0002\u0002", + "\u16e5\u16e7\u0003\u0002\u0002\u0002\u16e6\u16dc\u0003\u0002\u0002\u0002", + "\u16e6\u16dd\u0003\u0002\u0002\u0002\u16e7\u16e9\u0003\u0002\u0002\u0002", + "\u16e8\u16db\u0003\u0002\u0002\u0002\u16e8\u16e9\u0003\u0002\u0002\u0002", + "\u16e9\u16eb\u0003\u0002\u0002\u0002\u16ea\u16ec\u0005\u0304\u0183\u0002", + "\u16eb\u16ea\u0003\u0002\u0002\u0002\u16eb\u16ec\u0003\u0002\u0002\u0002", + "\u16ec\u16ee\u0003\u0002\u0002\u0002\u16ed\u16ef\u0005\u030c\u0187\u0002", + "\u16ee\u16ed\u0003\u0002\u0002\u0002\u16ee\u16ef\u0003\u0002\u0002\u0002", + "\u16ef\u16f1\u0003\u0002\u0002\u0002\u16f0\u16f2\u0007\u033f\u0002\u0002", + "\u16f1\u16f0\u0003\u0002\u0002\u0002\u16f1\u16f2\u0003\u0002\u0002\u0002", + "\u16f2\u01b5\u0003\u0002\u0002\u0002\u16f3\u16f8\u0005\u0398\u01cd\u0002", + "\u16f4\u16f8\u0005\u0356\u01ac\u0002\u16f5\u16f8\u0005\u025c\u012f\u0002", + "\u16f6\u16f8\u0007\u0321\u0002\u0002\u16f7\u16f3\u0003\u0002\u0002\u0002", + "\u16f7\u16f4\u0003\u0002\u0002\u0002\u16f7\u16f5\u0003\u0002\u0002\u0002", + "\u16f7\u16f6\u0003\u0002\u0002\u0002\u16f8\u01b7\u0003\u0002\u0002\u0002", + "\u16f9\u16fb\u0005\u02e6\u0174\u0002\u16fa\u16f9\u0003\u0002\u0002\u0002", + "\u16fa\u16fb\u0003\u0002\u0002\u0002\u16fb\u16fc\u0003\u0002\u0002\u0002", + "\u16fc\u1704\u0007\u00a2\u0002\u0002\u16fd\u16fe\u0007\u015b\u0002\u0002", + "\u16fe\u16ff\u0007\u033c\u0002\u0002\u16ff\u1700\u0005\u02d8\u016d\u0002", + "\u1700\u1702\u0007\u033d\u0002\u0002\u1701\u1703\u0007\u00f5\u0002\u0002", + "\u1702\u1701\u0003\u0002\u0002\u0002\u1702\u1703\u0003\u0002\u0002\u0002", + "\u1703\u1705\u0003\u0002\u0002\u0002\u1704\u16fd\u0003\u0002\u0002\u0002", + "\u1704\u1705\u0003\u0002\u0002\u0002\u1705\u1707\u0003\u0002\u0002\u0002", + "\u1706\u1708\u0007\u00a5\u0002\u0002\u1707\u1706\u0003\u0002\u0002\u0002", + "\u1707\u1708\u0003\u0002\u0002\u0002\u1708\u170b\u0003\u0002\u0002\u0002", + "\u1709\u170c\u0005\u0398\u01cd\u0002\u170a\u170c\u0005\u025c\u012f\u0002", + "\u170b\u1709\u0003\u0002\u0002\u0002\u170b\u170a\u0003\u0002\u0002\u0002", + "\u170c\u170e\u0003\u0002\u0002\u0002\u170d\u170f\u0005\u035a\u01ae\u0002", + "\u170e\u170d\u0003\u0002\u0002\u0002\u170e\u170f\u0003\u0002\u0002\u0002", + "\u170f\u1714\u0003\u0002\u0002\u0002\u1710\u1711\u0007\u033c\u0002\u0002", + "\u1711\u1712\u0005\u039e\u01d0\u0002\u1712\u1713\u0007\u033d\u0002\u0002", + "\u1713\u1715\u0003\u0002\u0002\u0002\u1714\u1710\u0003\u0002\u0002\u0002", + "\u1714\u1715\u0003\u0002\u0002\u0002\u1715\u1717\u0003\u0002\u0002\u0002", + "\u1716\u1718\u0005\u01c4\u00e3\u0002\u1717\u1716\u0003\u0002\u0002\u0002", + "\u1717\u1718\u0003\u0002\u0002\u0002\u1718\u1719\u0003\u0002\u0002\u0002", + "\u1719\u171b\u0005\u01ba\u00de\u0002\u171a\u171c\u0005\u0304\u0183\u0002", + "\u171b\u171a\u0003\u0002\u0002\u0002\u171b\u171c\u0003\u0002\u0002\u0002", + "\u171c\u171e\u0003\u0002\u0002\u0002\u171d\u171f\u0005\u030c\u0187\u0002", + "\u171e\u171d\u0003\u0002\u0002\u0002\u171e\u171f\u0003\u0002\u0002\u0002", + "\u171f\u1721\u0003\u0002\u0002\u0002\u1720\u1722\u0007\u033f\u0002\u0002", + "\u1721\u1720\u0003\u0002\u0002\u0002\u1721\u1722\u0003\u0002\u0002\u0002", + "\u1722\u01b9\u0003\u0002\u0002\u0002\u1723\u1729\u0005\u0364\u01b3\u0002", + "\u1724\u1729\u0005\u033e\u01a0\u0002\u1725\u1729\u0005\u0278\u013d\u0002", + "\u1726\u1727\u0007Y\u0002\u0002\u1727\u1729\u0007\u016f\u0002\u0002", + "\u1728\u1723\u0003\u0002\u0002\u0002\u1728\u1724\u0003\u0002\u0002\u0002", + "\u1728\u1725\u0003\u0002\u0002\u0002\u1728\u1726\u0003\u0002\u0002\u0002", + "\u1729\u01bb\u0003\u0002\u0002\u0002\u172a\u172c\u0007\u033c\u0002\u0002", + "\u172b\u172a\u0003\u0002\u0002\u0002\u172b\u172c\u0003\u0002\u0002\u0002", + "\u172c\u172d\u0003\u0002\u0002\u0002\u172d\u1732\u0007\u02a2\u0002\u0002", + "\u172e\u1733\u0007\u0006\u0002\u0002\u172f\u1733\u0007b\u0002\u0002", + "\u1730\u1733\u0005\u02fc\u017f\u0002\u1731\u1733\u0007\u0341\u0002\u0002", + "\u1732\u172e\u0003\u0002\u0002\u0002\u1732\u172f\u0003\u0002\u0002\u0002", + "\u1732\u1730\u0003\u0002\u0002\u0002\u1732\u1731\u0003\u0002\u0002\u0002", + "\u1733\u173c\u0003\u0002\u0002\u0002\u1734\u1735\u0007\u0321\u0002\u0002", + "\u1735\u1736\u0007\u032a\u0002\u0002\u1736\u1738\u0005\u02d8\u016d\u0002", + "\u1737\u1739\u0007\u033e\u0002\u0002\u1738\u1737\u0003\u0002\u0002\u0002", + "\u1738\u1739\u0003\u0002\u0002\u0002\u1739\u173b\u0003\u0002\u0002\u0002", + "\u173a\u1734\u0003\u0002\u0002\u0002\u173b\u173e\u0003\u0002\u0002\u0002", + "\u173c\u173a\u0003\u0002\u0002\u0002\u173c\u173d\u0003\u0002\u0002\u0002", + "\u173d\u173f\u0003\u0002\u0002\u0002\u173e\u173c\u0003\u0002\u0002\u0002", + "\u173f\u1740\u0007\u008b\u0002\u0002\u1740\u1746\u0005\u038c\u01c7\u0002", + "\u1741\u1742\u0007\u00a5\u0002\u0002\u1742\u1743\u0005\u03c6\u01e4\u0002", + "\u1743\u1744\u0007\u0176\u0002\u0002\u1744\u1745\u0005\u02ee\u0178\u0002", + "\u1745\u1747\u0003\u0002\u0002\u0002\u1746\u1741\u0003\u0002\u0002\u0002", + "\u1746\u1747\u0003\u0002\u0002\u0002\u1747\u1749\u0003\u0002\u0002\u0002", + "\u1748\u174a\u0007\u033d\u0002\u0002\u1749\u1748\u0003\u0002\u0002\u0002", + "\u1749\u174a\u0003\u0002\u0002\u0002\u174a\u01bd\u0003\u0002\u0002\u0002", + "\u174b\u174d\u0005\u02e6\u0174\u0002\u174c\u174b\u0003\u0002\u0002\u0002", + "\u174c\u174d\u0003\u0002\u0002\u0002\u174d\u174e\u0003\u0002\u0002\u0002", + "\u174e\u1750\u0005\u02f6\u017c\u0002\u174f\u1751\u0005\u0302\u0182\u0002", + "\u1750\u174f\u0003\u0002\u0002\u0002\u1750\u1751\u0003\u0002\u0002\u0002", + "\u1751\u1753\u0003\u0002\u0002\u0002\u1752\u1754\u0005\u0304\u0183\u0002", + "\u1753\u1752\u0003\u0002\u0002\u0002\u1753\u1754\u0003\u0002\u0002\u0002", + "\u1754\u1756\u0003\u0002\u0002\u0002\u1755\u1757\u0005\u030c\u0187\u0002", + "\u1756\u1755\u0003\u0002\u0002\u0002\u1756\u1757\u0003\u0002\u0002\u0002", + "\u1757\u1759\u0003\u0002\u0002\u0002\u1758\u175a\u0007\u033f\u0002\u0002", + "\u1759\u1758\u0003\u0002\u0002\u0002\u1759\u175a\u0003\u0002\u0002\u0002", + "\u175a\u01bf\u0003\u0002\u0002\u0002\u175b\u175e\u0007\u0321\u0002\u0002", + "\u175c\u175e\u0005\u03c2\u01e2\u0002\u175d\u175b\u0003\u0002\u0002\u0002", + "\u175d\u175c\u0003\u0002\u0002\u0002\u175e\u01c1\u0003\u0002\u0002\u0002", + "\u175f\u1761\u0005\u02e6\u0174\u0002\u1760\u175f\u0003\u0002\u0002\u0002", + "\u1760\u1761\u0003\u0002\u0002\u0002\u1761\u1762\u0003\u0002\u0002\u0002", + "\u1762\u176a\u0007\u0169\u0002\u0002\u1763\u1764\u0007\u015b\u0002\u0002", + "\u1764\u1765\u0007\u033c\u0002\u0002\u1765\u1766\u0005\u02d8\u016d\u0002", + "\u1766\u1768\u0007\u033d\u0002\u0002\u1767\u1769\u0007\u00f5\u0002\u0002", + "\u1768\u1767\u0003\u0002\u0002\u0002\u1768\u1769\u0003\u0002\u0002\u0002", + "\u1769\u176b\u0003\u0002\u0002\u0002\u176a\u1763\u0003\u0002\u0002\u0002", + "\u176a\u176b\u0003\u0002\u0002\u0002\u176b\u176e\u0003\u0002\u0002\u0002", + "\u176c\u176f\u0005\u0398\u01cd\u0002\u176d\u176f\u0005\u025c\u012f\u0002", + "\u176e\u176c\u0003\u0002\u0002\u0002\u176e\u176d\u0003\u0002\u0002\u0002", + "\u176f\u1771\u0003\u0002\u0002\u0002\u1770\u1772\u0005\u0358\u01ad\u0002", + "\u1771\u1770\u0003\u0002\u0002\u0002\u1771\u1772\u0003\u0002\u0002\u0002", + "\u1772\u1773\u0003\u0002\u0002\u0002\u1773\u1774\u0007\u013b\u0002\u0002", + "\u1774\u1779\u0005\u02ea\u0176\u0002\u1775\u1776\u0007\u033e\u0002\u0002", + "\u1776\u1778\u0005\u02ea\u0176\u0002\u1777\u1775\u0003\u0002\u0002\u0002", + "\u1778\u177b\u0003\u0002\u0002\u0002\u1779\u1777\u0003\u0002\u0002\u0002", + "\u1779\u177a\u0003\u0002\u0002\u0002\u177a\u177d\u0003\u0002\u0002\u0002", + "\u177b\u1779\u0003\u0002\u0002\u0002\u177c\u177e\u0005\u01c4\u00e3\u0002", + "\u177d\u177c\u0003\u0002\u0002\u0002\u177d\u177e\u0003\u0002\u0002\u0002", + "\u177e\u1781\u0003\u0002\u0002\u0002\u177f\u1780\u0007\u008b\u0002\u0002", + "\u1780\u1782\u0005\u0320\u0191\u0002\u1781\u177f\u0003\u0002\u0002\u0002", + "\u1781\u1782\u0003\u0002\u0002\u0002\u1782\u1790\u0003\u0002\u0002\u0002", + "\u1783\u178e\u0007\u0176\u0002\u0002\u1784\u178f\u0005\u02ec\u0177\u0002", + "\u1785\u1786\u0007K\u0002\u0002\u1786\u178c\u0007\u00e1\u0002\u0002", + "\u1787\u1789\u0007\u020d\u0002\u0002\u1788\u1787\u0003\u0002\u0002\u0002", + "\u1788\u1789\u0003\u0002\u0002\u0002\u1789\u178a\u0003\u0002\u0002\u0002", + "\u178a\u178d\u0005\u03a0\u01d1\u0002\u178b\u178d\u0007\u0321\u0002\u0002", + "\u178c\u1788\u0003\u0002\u0002\u0002\u178c\u178b\u0003\u0002\u0002\u0002", + "\u178d\u178f\u0003\u0002\u0002\u0002\u178e\u1784\u0003\u0002\u0002\u0002", + "\u178e\u1785\u0003\u0002\u0002\u0002\u178f\u1791\u0003\u0002\u0002\u0002", + "\u1790\u1783\u0003\u0002\u0002\u0002\u1790\u1791\u0003\u0002\u0002\u0002", + "\u1791\u1793\u0003\u0002\u0002\u0002\u1792\u1794\u0005\u0304\u0183\u0002", + "\u1793\u1792\u0003\u0002\u0002\u0002\u1793\u1794\u0003\u0002\u0002\u0002", + "\u1794\u1796\u0003\u0002\u0002\u0002\u1795\u1797\u0005\u030c\u0187\u0002", + "\u1796\u1795\u0003\u0002\u0002\u0002\u1796\u1797\u0003\u0002\u0002\u0002", + "\u1797\u1799\u0003\u0002\u0002\u0002\u1798\u179a\u0007\u033f\u0002\u0002", + "\u1799\u1798\u0003\u0002\u0002\u0002\u1799\u179a\u0003\u0002\u0002\u0002", + "\u179a\u01c3\u0003\u0002\u0002\u0002\u179b\u179c\u0007\u027b\u0002\u0002", + "\u179c\u17a1\u0005\u01c6\u00e4\u0002\u179d\u179e\u0007\u033e\u0002\u0002", + "\u179e\u17a0\u0005\u01c6\u00e4\u0002\u179f\u179d\u0003\u0002\u0002\u0002", + "\u17a0\u17a3\u0003\u0002\u0002\u0002\u17a1\u179f\u0003\u0002\u0002\u0002", + "\u17a1\u17a2\u0003\u0002\u0002\u0002\u17a2\u17af\u0003\u0002\u0002\u0002", + "\u17a3\u17a1\u0003\u0002\u0002\u0002\u17a4\u17a7\u0007\u00a5\u0002\u0002", + "\u17a5\u17a8\u0007\u0321\u0002\u0002\u17a6\u17a8\u0005\u038e\u01c8\u0002", + "\u17a7\u17a5\u0003\u0002\u0002\u0002\u17a7\u17a6\u0003\u0002\u0002\u0002", + "\u17a8\u17ad\u0003\u0002\u0002\u0002\u17a9\u17aa\u0007\u033c\u0002\u0002", + "\u17aa\u17ab\u0005\u039e\u01d0\u0002\u17ab\u17ac\u0007\u033d\u0002\u0002", + "\u17ac\u17ae\u0003\u0002\u0002\u0002\u17ad\u17a9\u0003\u0002\u0002\u0002", + "\u17ad\u17ae\u0003\u0002\u0002\u0002\u17ae\u17b0\u0003\u0002\u0002\u0002", + "\u17af\u17a4\u0003\u0002\u0002\u0002\u17af\u17b0\u0003\u0002\u0002\u0002", + "\u17b0\u01c5\u0003\u0002\u0002\u0002\u17b1\u17b4\u0005\u01c8\u00e5\u0002", + "\u17b2\u17b4\u0005\u02d8\u016d\u0002\u17b3\u17b1\u0003\u0002\u0002\u0002", + "\u17b3\u17b2\u0003\u0002\u0002\u0002\u17b4\u17b6\u0003\u0002\u0002\u0002", + "\u17b5\u17b7\u0005\u0352\u01aa\u0002\u17b6\u17b5\u0003\u0002\u0002\u0002", + "\u17b6\u17b7\u0003\u0002\u0002\u0002\u17b7\u01c7\u0003\u0002\u0002\u0002", + "\u17b8\u17bc\u0007\u01d7\u0002\u0002\u17b9\u17bc\u0007\u0222\u0002\u0002", + "\u17ba\u17bc\u0005\u038e\u01c8\u0002\u17bb\u17b8\u0003\u0002\u0002\u0002", + "\u17bb\u17b9\u0003\u0002\u0002\u0002\u17bb\u17ba\u0003\u0002\u0002\u0002", + "\u17bc\u17bd\u0003\u0002\u0002\u0002\u17bd\u17c0\u0007\u0337\u0002\u0002", + "\u17be\u17c1\u0007\u0341\u0002\u0002\u17bf\u17c1\u0005\u03c6\u01e4\u0002", + "\u17c0\u17be\u0003\u0002\u0002\u0002\u17c0\u17bf\u0003\u0002\u0002\u0002", + "\u17c1\u17c4\u0003\u0002\u0002\u0002\u17c2\u17c4\u0007\u031a\u0002\u0002", + "\u17c3\u17bb\u0003\u0002\u0002\u0002\u17c3\u17c2\u0003\u0002\u0002\u0002", + "\u17c4\u01c9\u0003\u0002\u0002\u0002\u17c5\u17c6\u0007I\u0002\u0002", + "\u17c6\u17c7\u0007T\u0002\u0002\u17c7\u17cb\u0005\u03c6\u01e4\u0002", + "\u17c8\u17c9\u0007>\u0002\u0002\u17c9\u17ca\u0007\u032a\u0002\u0002", + "\u17ca\u17cc\t7\u0002\u0002\u17cb\u17c8\u0003\u0002\u0002\u0002\u17cb", + "\u17cc\u0003\u0002\u0002\u0002\u17cc\u17d9\u0003\u0002\u0002\u0002\u17cd", + "\u17cf\u0007\u00e5\u0002\u0002\u17ce\u17d0\u0007\u0100\u0002\u0002\u17cf", + "\u17ce\u0003\u0002\u0002\u0002\u17cf\u17d0\u0003\u0002\u0002\u0002\u17d0", + "\u17d1\u0003\u0002\u0002\u0002\u17d1\u17d6\u0005\u0380\u01c1\u0002\u17d2", + "\u17d3\u0007\u033e\u0002\u0002\u17d3\u17d5\u0005\u0380\u01c1\u0002\u17d4", + "\u17d2\u0003\u0002\u0002\u0002\u17d5\u17d8\u0003\u0002\u0002\u0002\u17d6", + "\u17d4\u0003\u0002\u0002\u0002\u17d6\u17d7\u0003\u0002\u0002\u0002\u17d7", + "\u17da\u0003\u0002\u0002\u0002\u17d8\u17d6\u0003\u0002\u0002\u0002\u17d9", + "\u17cd\u0003\u0002\u0002\u0002\u17d9\u17da\u0003\u0002\u0002\u0002\u17da", + "\u17e5\u0003\u0002\u0002\u0002\u17db\u17dc\u0007\u00bb\u0002\u0002\u17dc", + "\u17dd\u0007\u00e5\u0002\u0002\u17dd\u17e2\u0005\u0380\u01c1\u0002\u17de", + "\u17df\u0007\u033e\u0002\u0002\u17df\u17e1\u0005\u0380\u01c1\u0002\u17e0", + "\u17de\u0003\u0002\u0002\u0002\u17e1\u17e4\u0003\u0002\u0002\u0002\u17e2", + "\u17e0\u0003\u0002\u0002\u0002\u17e2\u17e3\u0003\u0002\u0002\u0002\u17e3", + "\u17e6\u0003\u0002\u0002\u0002\u17e4\u17e2\u0003\u0002\u0002\u0002\u17e5", + "\u17db\u0003\u0002\u0002\u0002\u17e5\u17e6\u0003\u0002\u0002\u0002\u17e6", + "\u17e9\u0003\u0002\u0002\u0002\u17e7\u17e8\u00077\u0002\u0002\u17e8", + "\u17ea\u0005\u03c6\u01e4\u0002\u17e9\u17e7\u0003\u0002\u0002\u0002\u17e9", + "\u17ea\u0003\u0002\u0002\u0002\u17ea\u17f4\u0003\u0002\u0002\u0002\u17eb", + "\u17ec\u0007\u0179\u0002\u0002\u17ec\u17f1\u0005\u037c\u01bf\u0002\u17ed", + "\u17ee\u0007\u033e\u0002\u0002\u17ee\u17f0\u0005\u037c\u01bf\u0002\u17ef", + "\u17ed\u0003\u0002\u0002\u0002\u17f0\u17f3\u0003\u0002\u0002\u0002\u17f1", + "\u17ef\u0003\u0002\u0002\u0002\u17f1\u17f2\u0003\u0002\u0002\u0002\u17f2", + "\u17f5\u0003\u0002\u0002\u0002\u17f3\u17f1\u0003\u0002\u0002\u0002\u17f4", + "\u17eb\u0003\u0002\u0002\u0002\u17f4\u17f5\u0003\u0002\u0002\u0002\u17f5", + "\u01cb\u0003\u0002\u0002\u0002\u17f6\u17f8\u0007I\u0002\u0002\u17f7", + "\u17f9\u0007\u0165\u0002\u0002\u17f8\u17f7\u0003\u0002\u0002\u0002\u17f8", + "\u17f9\u0003\u0002\u0002\u0002\u17f9\u17fb\u0003\u0002\u0002\u0002\u17fa", + "\u17fc\u0005\u03a4\u01d3\u0002\u17fb\u17fa\u0003\u0002\u0002\u0002\u17fb", + "\u17fc\u0003\u0002\u0002\u0002\u17fc\u17fd\u0003\u0002\u0002\u0002\u17fd", + "\u17fe\u0007\u009e\u0002\u0002\u17fe\u17ff\u0005\u03c6\u01e4\u0002\u17ff", + "\u1800\u0007\u00e5\u0002\u0002\u1800\u1801\u0005\u0338\u019d\u0002\u1801", + "\u1802\u0007\u033c\u0002\u0002\u1802\u1803\u0005\u039c\u01cf\u0002\u1803", + "\u1809\u0007\u033d\u0002\u0002\u1804\u1805\u0007\u009c\u0002\u0002\u1805", + "\u1806\u0007\u033c\u0002\u0002\u1806\u1807\u0005\u039e\u01d0\u0002\u1807", + "\u1808\u0007\u033d\u0002\u0002\u1808\u180a\u0003\u0002\u0002\u0002\u1809", + "\u1804\u0003\u0002\u0002\u0002\u1809\u180a\u0003\u0002\u0002\u0002\u180a", + "\u180d\u0003\u0002\u0002\u0002\u180b\u180c\u0007\u0176\u0002\u0002\u180c", + "\u180e\u0005\u02ee\u0178\u0002\u180d\u180b\u0003\u0002\u0002\u0002\u180d", + "\u180e\u0003\u0002\u0002\u0002\u180e\u1810\u0003\u0002\u0002\u0002\u180f", + "\u1811\u0005\u02c8\u0165\u0002\u1810\u180f\u0003\u0002\u0002\u0002\u1810", + "\u1811\u0003\u0002\u0002\u0002\u1811\u1814\u0003\u0002\u0002\u0002\u1812", + "\u1813\u0007\u00e5\u0002\u0002\u1813\u1815\u0005\u03c6\u01e4\u0002\u1814", + "\u1812\u0003\u0002\u0002\u0002\u1814\u1815\u0003\u0002\u0002\u0002\u1815", + "\u1817\u0003\u0002\u0002\u0002\u1816\u1818\u0007\u033f\u0002\u0002\u1817", + "\u1816\u0003\u0002\u0002\u0002\u1817\u1818\u0003\u0002\u0002\u0002\u1818", + "\u01cd\u0003\u0002\u0002\u0002\u1819\u181c\u0007I\u0002\u0002\u181a", + "\u181b\u0007\u00ed\u0002\u0002\u181b\u181d\u0007\n\u0002\u0002\u181c", + "\u181a\u0003\u0002\u0002\u0002\u181c\u181d\u0003\u0002\u0002\u0002\u181d", + "\u1820\u0003\u0002\u0002\u0002\u181e\u1820\u0007\n\u0002\u0002\u181f", + "\u1819\u0003\u0002\u0002\u0002\u181f\u181e\u0003\u0002\u0002\u0002\u1820", + "\u1821\u0003\u0002\u0002\u0002\u1821\u1822\t8\u0002\u0002\u1822\u1825", + "\u0005\u0392\u01ca\u0002\u1823\u1824\u0007\u033f\u0002\u0002\u1824\u1826", + "\u0007\u0322\u0002\u0002\u1825\u1823\u0003\u0002\u0002\u0002\u1825\u1826", + "\u0003\u0002\u0002\u0002\u1826\u1835\u0003\u0002\u0002\u0002\u1827\u1829", + "\u0007\u033c\u0002\u0002\u1828\u1827\u0003\u0002\u0002\u0002\u1828\u1829", + "\u0003\u0002\u0002\u0002\u1829\u182a\u0003\u0002\u0002\u0002\u182a\u182f", + "\u0005\u01e4\u00f3\u0002\u182b\u182c\u0007\u033e\u0002\u0002\u182c\u182e", + "\u0005\u01e4\u00f3\u0002\u182d\u182b\u0003\u0002\u0002\u0002\u182e\u1831", + "\u0003\u0002\u0002\u0002\u182f\u182d\u0003\u0002\u0002\u0002\u182f\u1830", + "\u0003\u0002\u0002\u0002\u1830\u1833\u0003\u0002\u0002\u0002\u1831\u182f", + "\u0003\u0002\u0002\u0002\u1832\u1834\u0007\u033d\u0002\u0002\u1833\u1832", + "\u0003\u0002\u0002\u0002\u1833\u1834\u0003\u0002\u0002\u0002\u1834\u1836", + "\u0003\u0002\u0002\u0002\u1835\u1828\u0003\u0002\u0002\u0002\u1835\u1836", + "\u0003\u0002\u0002\u0002\u1836\u1840\u0003\u0002\u0002\u0002\u1837\u1838", + "\u0007\u0179\u0002\u0002\u1838\u183d\u0005\u01e6\u00f4\u0002\u1839\u183a", + "\u0007\u033e\u0002\u0002\u183a\u183c\u0005\u01e6\u00f4\u0002\u183b\u1839", + "\u0003\u0002\u0002\u0002\u183c\u183f\u0003\u0002\u0002\u0002\u183d\u183b", + "\u0003\u0002\u0002\u0002\u183d\u183e\u0003\u0002\u0002\u0002\u183e\u1841", + "\u0003\u0002\u0002\u0002\u183f\u183d\u0003\u0002\u0002\u0002\u1840\u1837", + "\u0003\u0002\u0002\u0002\u1840\u1841\u0003\u0002\u0002\u0002\u1841\u1844", + "\u0003\u0002\u0002\u0002\u1842\u1843\u0007\u0085\u0002\u0002\u1843\u1845", + "\u0007\u0112\u0002\u0002\u1844\u1842\u0003\u0002\u0002\u0002\u1844\u1845", + "\u0003\u0002\u0002\u0002\u1845\u1846\u0003\u0002\u0002\u0002\u1846\u1847", + "\u0007\u0010\u0002\u0002\u1847\u1848\u0005\u0006\u0004\u0002\u1848\u01cf", + "\u0003\u0002\u0002\u0002\u1849\u184c\u0005\u01d2\u00ea\u0002\u184a\u184c", + "\u0005\u01d8\u00ed\u0002\u184b\u1849\u0003\u0002\u0002\u0002\u184b\u184a", + "\u0003\u0002\u0002\u0002\u184c\u01d1\u0003\u0002\u0002\u0002\u184d\u1850", + "\u0007I\u0002\u0002\u184e\u184f\u0007\u00ed\u0002\u0002\u184f\u1851", + "\u0007\n\u0002\u0002\u1850\u184e\u0003\u0002\u0002\u0002\u1850\u1851", + "\u0003\u0002\u0002\u0002\u1851\u1854\u0003\u0002\u0002\u0002\u1852\u1854", + "\u0007\n\u0002\u0002\u1853\u184d\u0003\u0002\u0002\u0002\u1853\u1852", + "\u0003\u0002\u0002\u0002\u1854\u1855\u0003\u0002\u0002\u0002\u1855\u1856", + "\u0007\u0160\u0002\u0002\u1856\u1857\u0005\u0390\u01c9\u0002\u1857\u1858", + "\u0007\u00e5\u0002\u0002\u1858\u1862\u0005\u038e\u01c8\u0002\u1859\u185a", + "\u0007\u0179\u0002\u0002\u185a\u185f\u0005\u01d4\u00eb\u0002\u185b\u185c", + "\u0007\u033e\u0002\u0002\u185c\u185e\u0005\u01d4\u00eb\u0002\u185d\u185b", + "\u0003\u0002\u0002\u0002\u185e\u1861\u0003\u0002\u0002\u0002\u185f\u185d", + "\u0003\u0002\u0002\u0002\u185f\u1860\u0003\u0002\u0002\u0002\u1860\u1863", + "\u0003\u0002\u0002\u0002\u1861\u185f\u0003\u0002\u0002\u0002\u1862\u1859", + "\u0003\u0002\u0002\u0002\u1862\u1863\u0003\u0002\u0002\u0002\u1863\u1868", + "\u0003\u0002\u0002\u0002\u1864\u1869\u0007\u0085\u0002\u0002\u1865\u1869", + "\u0007\u0188\u0002\u0002\u1866\u1867\u0007\u00a3\u0002\u0002\u1867\u1869", + "\u0007\u00e1\u0002\u0002\u1868\u1864\u0003\u0002\u0002\u0002\u1868\u1865", + "\u0003\u0002\u0002\u0002\u1868\u1866\u0003\u0002\u0002\u0002\u1869\u186a", + "\u0003\u0002\u0002\u0002\u186a\u186f\u0005\u01d6\u00ec\u0002\u186b\u186c", + "\u0007\u033e\u0002\u0002\u186c\u186e\u0005\u01d6\u00ec\u0002\u186d\u186b", + "\u0003\u0002\u0002\u0002\u186e\u1871\u0003\u0002\u0002\u0002\u186f\u186d", + "\u0003\u0002\u0002\u0002\u186f\u1870\u0003\u0002\u0002\u0002\u1870\u1874", + "\u0003\u0002\u0002\u0002\u1871\u186f\u0003\u0002\u0002\u0002\u1872\u1873", + "\u0007\u0179\u0002\u0002\u1873\u1875\u0007\u000e\u0002\u0002\u1874\u1872", + "\u0003\u0002\u0002\u0002\u1874\u1875\u0003\u0002\u0002\u0002\u1875\u1879", + "\u0003\u0002\u0002\u0002\u1876\u1877\u0007\u00dc\u0002\u0002\u1877\u1878", + "\u0007\u0085\u0002\u0002\u1878\u187a\u0007\u0112\u0002\u0002\u1879\u1876", + "\u0003\u0002\u0002\u0002\u1879\u187a\u0003\u0002\u0002\u0002\u187a\u187b", + "\u0003\u0002\u0002\u0002\u187b\u187c\u0007\u0010\u0002\u0002\u187c\u187d", + "\u0005\u0006\u0004\u0002\u187d\u01d3\u0003\u0002\u0002\u0002\u187e\u1881", + "\u0007\u01ec\u0002\u0002\u187f\u1881\u0005\u02ae\u0158\u0002\u1880\u187e", + "\u0003\u0002\u0002\u0002\u1880\u187f\u0003\u0002\u0002\u0002\u1881\u01d5", + "\u0003\u0002\u0002\u0002\u1882\u1883\t9\u0002\u0002\u1883\u01d7\u0003", + "\u0002\u0002\u0002\u1884\u1887\u0007I\u0002\u0002\u1885\u1886\u0007", + "\u00ed\u0002\u0002\u1886\u1888\u0007\n\u0002\u0002\u1887\u1885\u0003", + "\u0002\u0002\u0002\u1887\u1888\u0003\u0002\u0002\u0002\u1888\u188b\u0003", + "\u0002\u0002\u0002\u1889\u188b\u0007\n\u0002\u0002\u188a\u1884\u0003", + "\u0002\u0002\u0002\u188a\u1889\u0003\u0002\u0002\u0002\u188b\u188c\u0003", + "\u0002\u0002\u0002\u188c\u188d\u0007\u0160\u0002\u0002\u188d\u188e\u0005", + "\u03c8\u01e5\u0002\u188e\u1892\u0007\u00e5\u0002\u0002\u188f\u1890\u0007", + "\u0006\u0002\u0002\u1890\u1893\u0007\u0135\u0002\u0002\u1891\u1893\u0007", + "T\u0002\u0002\u1892\u188f\u0003\u0002\u0002\u0002\u1892\u1891\u0003", + "\u0002\u0002\u0002\u1893\u189d\u0003\u0002\u0002\u0002\u1894\u1895\u0007", + "\u0179\u0002\u0002\u1895\u189a\u0005\u01d4\u00eb\u0002\u1896\u1897\u0007", + "\u033e\u0002\u0002\u1897\u1899\u0005\u01d4\u00eb\u0002\u1898\u1896\u0003", + "\u0002\u0002\u0002\u1899\u189c\u0003\u0002\u0002\u0002\u189a\u1898\u0003", + "\u0002\u0002\u0002\u189a\u189b\u0003\u0002\u0002\u0002\u189b\u189e\u0003", + "\u0002\u0002\u0002\u189c\u189a\u0003\u0002\u0002\u0002\u189d\u1894\u0003", + "\u0002\u0002\u0002\u189d\u189e\u0003\u0002\u0002\u0002\u189e\u189f\u0003", + "\u0002\u0002\u0002\u189f\u18a0\t:\u0002\u0002\u18a0\u18a5\u0005\u01da", + "\u00ee\u0002\u18a1\u18a2\u0007\u033e\u0002\u0002\u18a2\u18a4\u0005\u01d6", + "\u00ec\u0002\u18a3\u18a1\u0003\u0002\u0002\u0002\u18a4\u18a7\u0003\u0002", + "\u0002\u0002\u18a5\u18a3\u0003\u0002\u0002\u0002\u18a5\u18a6\u0003\u0002", + "\u0002\u0002\u18a6\u18a8\u0003\u0002\u0002\u0002\u18a7\u18a5\u0003\u0002", + "\u0002\u0002\u18a8\u18a9\u0007\u0010\u0002\u0002\u18a9\u18aa\u0005\u0006", + "\u0004\u0002\u18aa\u01d9\u0003\u0002\u0002\u0002\u18ab\u18ac\u0005\u03c8", + "\u01e5\u0002\u18ac\u01db\u0003\u0002\u0002\u0002\u18ad\u18b0\u0007I", + "\u0002\u0002\u18ae\u18af\u0007\u00ed\u0002\u0002\u18af\u18b1\u0007\n", + "\u0002\u0002\u18b0\u18ae\u0003\u0002\u0002\u0002\u18b0\u18b1\u0003\u0002", + "\u0002\u0002\u18b1\u18b4\u0003\u0002\u0002\u0002\u18b2\u18b4\u0007\n", + "\u0002\u0002\u18b3\u18ad\u0003\u0002\u0002\u0002\u18b3\u18b2\u0003\u0002", + "\u0002\u0002\u18b4\u18b5\u0003\u0002\u0002\u0002\u18b5\u18b6\u0007\u008d", + "\u0002\u0002\u18b6\u18c4\u0005\u0392\u01ca\u0002\u18b7\u18b8\u0007\u033c", + "\u0002\u0002\u18b8\u18bd\u0005\u01e4\u00f3\u0002\u18b9\u18ba\u0007\u033e", + "\u0002\u0002\u18ba\u18bc\u0005\u01e4\u00f3\u0002\u18bb\u18b9\u0003\u0002", + "\u0002\u0002\u18bc\u18bf\u0003\u0002\u0002\u0002\u18bd\u18bb\u0003\u0002", + "\u0002\u0002\u18bd\u18be\u0003\u0002\u0002\u0002\u18be\u18c0\u0003\u0002", + "\u0002\u0002\u18bf\u18bd\u0003\u0002\u0002\u0002\u18c0\u18c1\u0007\u033d", + "\u0002\u0002\u18c1\u18c5\u0003\u0002\u0002\u0002\u18c2\u18c3\u0007\u033c", + "\u0002\u0002\u18c3\u18c5\u0007\u033d\u0002\u0002\u18c4\u18b7\u0003\u0002", + "\u0002\u0002\u18c4\u18c2\u0003\u0002\u0002\u0002\u18c5\u18c9\u0003\u0002", + "\u0002\u0002\u18c6\u18ca\u0005\u01de\u00f0\u0002\u18c7\u18ca\u0005\u01e0", + "\u00f1\u0002\u18c8\u18ca\u0005\u01e2\u00f2\u0002\u18c9\u18c6\u0003\u0002", + "\u0002\u0002\u18c9\u18c7\u0003\u0002\u0002\u0002\u18c9\u18c8\u0003\u0002", + "\u0002\u0002\u18ca\u18cc\u0003\u0002\u0002\u0002\u18cb\u18cd\u0007\u033f", + "\u0002\u0002\u18cc\u18cb\u0003\u0002\u0002\u0002\u18cc\u18cd\u0003\u0002", + "\u0002\u0002\u18cd\u01dd\u0003\u0002\u0002\u0002\u18ce\u18cf\u0007\u011b", + "\u0002\u0002\u18cf\u18d9\u0007\u0153\u0002\u0002\u18d0\u18d1\u0007\u0179", + "\u0002\u0002\u18d1\u18d6\u0005\u01e8\u00f5\u0002\u18d2\u18d3\u0007\u033e", + "\u0002\u0002\u18d3\u18d5\u0005\u01e8\u00f5\u0002\u18d4\u18d2\u0003\u0002", + "\u0002\u0002\u18d5\u18d8\u0003\u0002\u0002\u0002\u18d6\u18d4\u0003\u0002", + "\u0002\u0002\u18d6\u18d7\u0003\u0002\u0002\u0002\u18d7\u18da\u0003\u0002", + "\u0002\u0002\u18d8\u18d6\u0003\u0002\u0002\u0002\u18d9\u18d0\u0003\u0002", + "\u0002\u0002\u18d9\u18da\u0003\u0002\u0002\u0002\u18da\u18dc\u0003\u0002", + "\u0002\u0002\u18db\u18dd\u0007\u0010\u0002\u0002\u18dc\u18db\u0003\u0002", + "\u0002\u0002\u18dc\u18dd\u0003\u0002\u0002\u0002\u18dd\u18de\u0003\u0002", + "\u0002\u0002\u18de\u18e4\u0007\u011a\u0002\u0002\u18df\u18e0\u0007\u033c", + "\u0002\u0002\u18e0\u18e1\u0005\u01be\u00e0\u0002\u18e1\u18e2\u0007\u033d", + "\u0002\u0002\u18e2\u18e5\u0003\u0002\u0002\u0002\u18e3\u18e5\u0005\u01be", + "\u00e0\u0002\u18e4\u18df\u0003\u0002\u0002\u0002\u18e4\u18e3\u0003\u0002", + "\u0002\u0002\u18e5\u01df\u0003\u0002\u0002\u0002\u18e6\u18e7\u0007\u011b", + "\u0002\u0002\u18e7\u18e8\u0007\u0321\u0002\u0002\u18e8\u18f2\u0005\u02b2", + "\u015a\u0002\u18e9\u18ea\u0007\u0179\u0002\u0002\u18ea\u18ef\u0005\u01e8", + "\u00f5\u0002\u18eb\u18ec\u0007\u033e\u0002\u0002\u18ec\u18ee\u0005\u01e8", + "\u00f5\u0002\u18ed\u18eb\u0003\u0002\u0002\u0002\u18ee\u18f1\u0003\u0002", + "\u0002\u0002\u18ef\u18ed\u0003\u0002\u0002\u0002\u18ef\u18f0\u0003\u0002", + "\u0002\u0002\u18f0\u18f3\u0003\u0002\u0002\u0002\u18f1\u18ef\u0003\u0002", + "\u0002\u0002\u18f2\u18e9\u0003\u0002\u0002\u0002\u18f2\u18f3\u0003\u0002", + "\u0002\u0002\u18f3\u18f5\u0003\u0002\u0002\u0002\u18f4\u18f6\u0007\u0010", + "\u0002\u0002\u18f5\u18f4\u0003\u0002\u0002\u0002\u18f5\u18f6\u0003\u0002", + "\u0002\u0002\u18f6\u18f7\u0003\u0002\u0002\u0002\u18f7\u18fb\u0007\u001c", + "\u0002\u0002\u18f8\u18fa\u0005\b\u0005\u0002\u18f9\u18f8\u0003\u0002", + "\u0002\u0002\u18fa\u18fd\u0003\u0002\u0002\u0002\u18fb\u18f9\u0003\u0002", + "\u0002\u0002\u18fb\u18fc\u0003\u0002\u0002\u0002\u18fc\u18fe\u0003\u0002", + "\u0002\u0002\u18fd\u18fb\u0003\u0002\u0002\u0002\u18fe\u1900\u0007\u011a", + "\u0002\u0002\u18ff\u1901\u0007\u033f\u0002\u0002\u1900\u18ff\u0003\u0002", + "\u0002\u0002\u1900\u1901\u0003\u0002\u0002\u0002\u1901\u1902\u0003\u0002", + "\u0002\u0002\u1902\u1904\u0007l\u0002\u0002\u1903\u1905\u0007\u033f", + "\u0002\u0002\u1904\u1903\u0003\u0002\u0002\u0002\u1904\u1905\u0003\u0002", + "\u0002\u0002\u1905\u01e1\u0003\u0002\u0002\u0002\u1906\u1907\u0007\u011b", + "\u0002\u0002\u1907\u1911\u0005\u03be\u01e0\u0002\u1908\u1909\u0007\u0179", + "\u0002\u0002\u1909\u190e\u0005\u01e8\u00f5\u0002\u190a\u190b\u0007\u033e", + "\u0002\u0002\u190b\u190d\u0005\u01e8\u00f5\u0002\u190c\u190a\u0003\u0002", + "\u0002\u0002\u190d\u1910\u0003\u0002\u0002\u0002\u190e\u190c\u0003\u0002", + "\u0002\u0002\u190e\u190f\u0003\u0002\u0002\u0002\u190f\u1912\u0003\u0002", + "\u0002\u0002\u1910\u190e\u0003\u0002\u0002\u0002\u1911\u1908\u0003\u0002", + "\u0002\u0002\u1911\u1912\u0003\u0002\u0002\u0002\u1912\u1914\u0003\u0002", + "\u0002\u0002\u1913\u1915\u0007\u0010\u0002\u0002\u1914\u1913\u0003\u0002", + "\u0002\u0002\u1914\u1915\u0003\u0002\u0002\u0002\u1915\u1916\u0003\u0002", + "\u0002\u0002\u1916\u191a\u0007\u001c\u0002\u0002\u1917\u1919\u0005\b", + "\u0005\u0002\u1918\u1917\u0003\u0002\u0002\u0002\u1919\u191c\u0003\u0002", + "\u0002\u0002\u191a\u1918\u0003\u0002\u0002\u0002\u191a\u191b\u0003\u0002", + "\u0002\u0002\u191b\u191d\u0003\u0002\u0002\u0002\u191c\u191a\u0003\u0002", + "\u0002\u0002\u191d\u191e\u0007\u011a\u0002\u0002\u191e\u1920\u0005\u02d8", + "\u016d\u0002\u191f\u1921\u0007\u033f\u0002\u0002\u1920\u191f\u0003\u0002", + "\u0002\u0002\u1920\u1921\u0003\u0002\u0002\u0002\u1921\u1922\u0003\u0002", + "\u0002\u0002\u1922\u1923\u0007l\u0002\u0002\u1923\u01e3\u0003\u0002", + "\u0002\u0002\u1924\u1928\u0007\u0321\u0002\u0002\u1925\u1926\u0005\u03c6", + "\u01e4\u0002\u1926\u1927\u0007\u0337\u0002\u0002\u1927\u1929\u0003\u0002", + "\u0002\u0002\u1928\u1925\u0003\u0002\u0002\u0002\u1928\u1929\u0003\u0002", + "\u0002\u0002\u1929\u192b\u0003\u0002\u0002\u0002\u192a\u192c\u0007\u0010", + "\u0002\u0002\u192b\u192a\u0003\u0002\u0002\u0002\u192b\u192c\u0003\u0002", + "\u0002\u0002\u192c\u192d\u0003\u0002\u0002\u0002\u192d\u192f\u0005\u03be", + "\u01e0\u0002\u192e\u1930\u0007\u0170\u0002\u0002\u192f\u192e\u0003\u0002", + "\u0002\u0002\u192f\u1930\u0003\u0002\u0002\u0002\u1930\u1933\u0003\u0002", + "\u0002\u0002\u1931\u1932\u0007\u032a\u0002\u0002\u1932\u1934\u0005\u03c0", + "\u01e1\u0002\u1933\u1931\u0003\u0002\u0002\u0002\u1933\u1934\u0003\u0002", + "\u0002\u0002\u1934\u1936\u0003\u0002\u0002\u0002\u1935\u1937\t;\u0002", + "\u0002\u1936\u1935\u0003\u0002\u0002\u0002\u1936\u1937\u0003\u0002\u0002", + "\u0002\u1937\u01e5\u0003\u0002\u0002\u0002\u1938\u193c\u0007\u01ec\u0002", + "\u0002\u1939\u193c\u0007\u02a3\u0002\u0002\u193a\u193c\u0005\u02ae\u0158", + "\u0002\u193b\u1938\u0003\u0002\u0002\u0002\u193b\u1939\u0003\u0002\u0002", + "\u0002\u193b\u193a\u0003\u0002\u0002\u0002\u193c\u01e7\u0003\u0002\u0002", + "\u0002\u193d\u194a\u0007\u01ec\u0002\u0002\u193e\u194a\u0007\u02be\u0002", + "\u0002\u193f\u1940\u0007\u011b\u0002\u0002\u1940\u1941\u0007\u00df\u0002", + "\u0002\u1941\u1942\u0007\u00e5\u0002\u0002\u1942\u1943\u0007\u00df\u0002", + "\u0002\u1943\u194a\u0007\u0220\u0002\u0002\u1944\u1945\u0007(\u0002", + "\u0002\u1945\u1946\u0007\u00e5\u0002\u0002\u1946\u1947\u0007\u00df\u0002", + "\u0002\u1947\u194a\u0007\u0220\u0002\u0002\u1948\u194a\u0005\u02ae\u0158", + "\u0002\u1949\u193d\u0003\u0002\u0002\u0002\u1949\u193e\u0003\u0002\u0002", + "\u0002\u1949\u193f\u0003\u0002\u0002\u0002\u1949\u1944\u0003\u0002\u0002", + "\u0002\u1949\u1948\u0003\u0002\u0002\u0002\u194a\u01e9\u0003\u0002\u0002", + "\u0002\u194b\u194c\u0007I\u0002\u0002\u194c\u194d\u0007\u0148\u0002", + "\u0002\u194d\u194e\u0005\u03c6\u01e4\u0002\u194e\u194f\u0007\u00e5\u0002", + "\u0002\u194f\u1950\u0005\u0338\u019d\u0002\u1950\u1951\u0007\u033c\u0002", + "\u0002\u1951\u1952\u0005\u039e\u01d0\u0002\u1952\u1965\u0007\u033d\u0002", + "\u0002\u1953\u1959\u0007\u0179\u0002\u0002\u1954\u195a\u0007\u0208\u0002", + "\u0002\u1955\u1956\u0007\u02bd\u0002\u0002\u1956\u1957\u0007\u0322\u0002", + "\u0002\u1957\u195a\t<\u0002\u0002\u1958\u195a\u0007\u02df\u0002\u0002", + "\u1959\u1954\u0003\u0002\u0002\u0002\u1959\u1955\u0003\u0002\u0002\u0002", + "\u1959\u1958\u0003\u0002\u0002\u0002\u195a\u195d\u0003\u0002\u0002\u0002", + "\u195b\u195c\u0007\u033e\u0002\u0002\u195c\u195e\u0007\u026a\u0002\u0002", + "\u195d\u195b\u0003\u0002\u0002\u0002\u195d\u195e\u0003\u0002\u0002\u0002", + "\u195e\u1963\u0003\u0002\u0002\u0002\u195f\u1960\u0007\u033e\u0002\u0002", + "\u1960\u1961\u0007\u021e\u0002\u0002\u1961\u1962\u0007\u032a\u0002\u0002", + "\u1962\u1964\u0005\u03a2\u01d2\u0002\u1963\u195f\u0003\u0002\u0002\u0002", + "\u1963\u1964\u0003\u0002\u0002\u0002\u1964\u1966\u0003\u0002\u0002\u0002", + "\u1965\u1953\u0003\u0002\u0002\u0002\u1965\u1966\u0003\u0002\u0002\u0002", + "\u1966\u1968\u0003\u0002\u0002\u0002\u1967\u1969\u0007\u033f\u0002\u0002", + "\u1968\u1967\u0003\u0002\u0002\u0002\u1968\u1969\u0003\u0002\u0002\u0002", + "\u1969\u01eb\u0003\u0002\u0002\u0002\u196a\u196c\u0007\u0169\u0002\u0002", + "\u196b\u196d\t=\u0002\u0002\u196c\u196b\u0003\u0002\u0002\u0002\u196c", + "\u196d\u0003\u0002\u0002\u0002\u196d\u196e\u0003\u0002\u0002\u0002\u196e", + "\u196f\u0007\u0148\u0002\u0002\u196f\u1971\u0005\u038c\u01c7\u0002\u1970", + "\u1972\u0005\u03c6\u01e4\u0002\u1971\u1970\u0003\u0002\u0002\u0002\u1971", + "\u1972\u0003\u0002\u0002\u0002\u1972\u1976\u0003\u0002\u0002\u0002\u1973", + "\u1974\u0007\u0308\u0002\u0002\u1974\u1975\u0007\u0322\u0002\u0002\u1975", + "\u1977\u0007\u016f\u0002\u0002\u1976\u1973\u0003\u0002\u0002\u0002\u1976", + "\u1977\u0003\u0002\u0002\u0002\u1977\u01ed\u0003\u0002\u0002\u0002\u1978", + "\u1979\u0007I\u0002\u0002\u1979\u197a\u0007\u0153\u0002\u0002\u197a", + "\u197b\u0005\u038e\u01c8\u0002\u197b\u197c\u0007\u033c\u0002\u0002\u197c", + "\u197e\u0005\u02b8\u015d\u0002\u197d\u197f\u0007\u033e\u0002\u0002\u197e", + "\u197d\u0003\u0002\u0002\u0002\u197e\u197f\u0003\u0002\u0002\u0002\u197f", + "\u1980\u0003\u0002\u0002\u0002\u1980\u1983\u0007\u033d\u0002\u0002\u1981", + "\u1982\u0007\u0239\u0002\u0002\u1982\u1984\u0005\u03c8\u01e5\u0002\u1983", + "\u1981\u0003\u0002\u0002\u0002\u1983\u1984\u0003\u0002\u0002\u0002\u1984", + "\u1988\u0003\u0002\u0002\u0002\u1985\u1987\u0005\u01f0\u00f9\u0002\u1986", + "\u1985\u0003\u0002\u0002\u0002\u1987\u198a\u0003\u0002\u0002\u0002\u1988", + "\u1986\u0003\u0002\u0002\u0002\u1988\u1989\u0003\u0002\u0002\u0002\u1989", + "\u198e\u0003\u0002\u0002\u0002\u198a\u1988\u0003\u0002\u0002\u0002\u198b", + "\u198c\u0007\u00e5\u0002\u0002\u198c\u198f\u0005\u03c6\u01e4\u0002\u198d", + "\u198f\u0007Y\u0002\u0002\u198e\u198b\u0003\u0002\u0002\u0002\u198e", + "\u198d\u0003\u0002\u0002\u0002\u198e\u198f\u0003\u0002\u0002\u0002\u198f", + "\u1993\u0003\u0002\u0002\u0002\u1990\u1991\u0007\u02f2\u0002\u0002\u1991", + "\u1994\u0005\u03c6\u01e4\u0002\u1992\u1994\u0007Y\u0002\u0002\u1993", + "\u1990\u0003\u0002\u0002\u0002\u1993\u1992\u0003\u0002\u0002\u0002\u1993", + "\u1994\u0003\u0002\u0002\u0002\u1994\u1996\u0003\u0002\u0002\u0002\u1995", + "\u1997\u0007\u033f\u0002\u0002\u1996\u1995\u0003\u0002\u0002\u0002\u1996", + "\u1997\u0003\u0002\u0002\u0002\u1997\u01ef\u0003\u0002\u0002\u0002\u1998", + "\u19ac\u0007\u0179\u0002\u0002\u1999\u199a\u0007\u033c\u0002\u0002\u199a", + "\u199f\u0005\u02ca\u0166\u0002\u199b\u199c\u0007\u033e\u0002\u0002\u199c", + "\u199e\u0005\u02ca\u0166\u0002\u199d\u199b\u0003\u0002\u0002\u0002\u199e", + "\u19a1\u0003\u0002\u0002\u0002\u199f\u199d\u0003\u0002\u0002\u0002\u199f", + "\u19a0\u0003\u0002\u0002\u0002\u19a0\u19a2\u0003\u0002\u0002\u0002\u19a1", + "\u199f\u0003\u0002\u0002\u0002\u19a2\u19a3\u0007\u033d\u0002\u0002\u19a3", + "\u19ad\u0003\u0002\u0002\u0002\u19a4\u19a9\u0005\u02ca\u0166\u0002\u19a5", + "\u19a6\u0007\u033e\u0002\u0002\u19a6\u19a8\u0005\u02ca\u0166\u0002\u19a7", + "\u19a5\u0003\u0002\u0002\u0002\u19a8\u19ab\u0003\u0002\u0002\u0002\u19a9", + "\u19a7\u0003\u0002\u0002\u0002\u19a9\u19aa\u0003\u0002\u0002\u0002\u19aa", + "\u19ad\u0003\u0002\u0002\u0002\u19ab\u19a9\u0003\u0002\u0002\u0002\u19ac", + "\u1999\u0003\u0002\u0002\u0002\u19ac\u19a4\u0003\u0002\u0002\u0002\u19ad", + "\u01f1\u0003\u0002\u0002\u0002\u19ae\u19af\u0007I\u0002\u0002\u19af", + "\u19b0\u0007\u0172\u0002\u0002\u19b0\u19b5\u0005\u0390\u01c9\u0002\u19b1", + "\u19b2\u0007\u033c\u0002\u0002\u19b2\u19b3\u0005\u039e\u01d0\u0002\u19b3", + "\u19b4\u0007\u033d\u0002\u0002\u19b4\u19b6\u0003\u0002\u0002\u0002\u19b5", + "\u19b1\u0003\u0002\u0002\u0002\u19b5\u19b6\u0003\u0002\u0002\u0002\u19b6", + "\u19c0\u0003\u0002\u0002\u0002\u19b7\u19b8\u0007\u0179\u0002\u0002\u19b8", + "\u19bd\u0005\u01f4\u00fb\u0002\u19b9\u19ba\u0007\u033e\u0002\u0002\u19ba", + "\u19bc\u0005\u01f4\u00fb\u0002\u19bb\u19b9\u0003\u0002\u0002\u0002\u19bc", + "\u19bf\u0003\u0002\u0002\u0002\u19bd\u19bb\u0003\u0002\u0002\u0002\u19bd", + "\u19be\u0003\u0002\u0002\u0002\u19be\u19c1\u0003\u0002\u0002\u0002\u19bf", + "\u19bd\u0003\u0002\u0002\u0002\u19c0\u19b7\u0003\u0002\u0002\u0002\u19c0", + "\u19c1\u0003\u0002\u0002\u0002\u19c1\u19c2\u0003\u0002\u0002\u0002\u19c2", + "\u19c3\u0007\u0010\u0002\u0002\u19c3\u19c7\u0005\u01be\u00e0\u0002\u19c4", + "\u19c5\u0007\u0179\u0002\u0002\u19c5\u19c6\u0007.\u0002\u0002\u19c6", + "\u19c8\u0007\u00ec\u0002\u0002\u19c7\u19c4\u0003\u0002\u0002\u0002\u19c7", + "\u19c8\u0003\u0002\u0002\u0002\u19c8\u19ca\u0003\u0002\u0002\u0002\u19c9", + "\u19cb\u0007\u033f\u0002\u0002\u19ca\u19c9\u0003\u0002\u0002\u0002\u19ca", + "\u19cb\u0003\u0002\u0002\u0002\u19cb\u01f3\u0003\u0002\u0002\u0002\u19cc", + "\u19cd\t>\u0002\u0002\u19cd\u01f5\u0003\u0002\u0002\u0002\u19ce\u19cf", + "\u0007\n\u0002\u0002\u19cf\u19d0\u0007\u0153\u0002\u0002\u19d0\u19fc", + "\u0005\u038e\u01c8\u0002\u19d1\u19d2\u0007\u013b\u0002\u0002\u19d2\u19d3", + "\u0007\u033c\u0002\u0002\u19d3\u19d4\u0007\u023a\u0002\u0002\u19d4\u19d5", + "\u0007\u032a\u0002\u0002\u19d5\u19d6\t?\u0002\u0002\u19d6\u19fd\u0007", + "\u033d\u0002\u0002\u19d7\u19d8\u0007\u0004\u0002\u0002\u19d8\u19fd\u0005", + "\u02ba\u015e\u0002\u19d9\u19da\u0007\n\u0002\u0002\u19da\u19db\u0007", + "8\u0002\u0002\u19db\u19fd\u0005\u02bc\u015f\u0002\u19dc\u19dd\u0007", + "g\u0002\u0002\u19dd\u19de\u00078\u0002\u0002\u19de\u19fd\u0005\u03c6", + "\u01e4\u0002\u19df\u19e0\u0007g\u0002\u0002\u19e0\u19e1\u0007=\u0002", + "\u0002\u19e1\u19fd\u0005\u03c6\u01e4\u0002\u19e2\u19e3\u0007\u0179\u0002", + "\u0002\u19e3\u19e4\u0007.\u0002\u0002\u19e4\u19e5\u0007\u0004\u0002", + "\u0002\u19e5\u19e6\u0007=\u0002\u0002\u19e6\u19e7\u0005\u03c6\u01e4", + "\u0002\u19e7\u19e8\u0007\u0088\u0002\u0002\u19e8\u19e9\u0007\u00ac\u0002", + "\u0002\u19e9\u19ea\u0007\u033c\u0002\u0002\u19ea\u19eb\u0005\u039e\u01d0", + "\u0002\u19eb\u19ec\u0007\u033d\u0002\u0002\u19ec\u19ed\u0007\u010e\u0002", + "\u0002\u19ed\u19ee\u0005\u038e\u01c8\u0002\u19ee\u19ef\u0007\u033c\u0002", + "\u0002\u19ef\u19f0\u0005\u039e\u01d0\u0002\u19f0\u19f1\u0007\u033d\u0002", + "\u0002\u19f1\u19fd\u0003\u0002\u0002\u0002\u19f2\u19f3\u0007.\u0002", + "\u0002\u19f3\u19f4\u0007=\u0002\u0002\u19f4\u19fd\u0005\u03c6\u01e4", + "\u0002\u19f5\u19f6\t\u0017\u0002\u0002\u19f6\u19f8\u0007\u0160\u0002", + "\u0002\u19f7\u19f9\u0005\u03c6\u01e4\u0002\u19f8\u19f7\u0003\u0002\u0002", + "\u0002\u19f8\u19f9\u0003\u0002\u0002\u0002\u19f9\u19fd\u0003\u0002\u0002", + "\u0002\u19fa\u19fb\u0007\u02a1\u0002\u0002\u19fb\u19fd\u0005\u01f0\u00f9", + "\u0002\u19fc\u19d1\u0003\u0002\u0002\u0002\u19fc\u19d7\u0003\u0002\u0002", + "\u0002\u19fc\u19d9\u0003\u0002\u0002\u0002\u19fc\u19dc\u0003\u0002\u0002", + "\u0002\u19fc\u19df\u0003\u0002\u0002\u0002\u19fc\u19e2\u0003\u0002\u0002", + "\u0002\u19fc\u19f2\u0003\u0002\u0002\u0002\u19fc\u19f5\u0003\u0002\u0002", + "\u0002\u19fc\u19fa\u0003\u0002\u0002\u0002\u19fd\u19ff\u0003\u0002\u0002", + "\u0002\u19fe\u1a00\u0007\u033f\u0002\u0002\u19ff\u19fe\u0003\u0002\u0002", + "\u0002\u19ff\u1a00\u0003\u0002\u0002\u0002\u1a00\u01f7\u0003\u0002\u0002", + "\u0002\u1a01\u1a02\u0007\n\u0002\u0002\u1a02\u1a05\u0007T\u0002\u0002", + "\u1a03\u1a06\u0005\u03c6\u01e4\u0002\u1a04\u1a06\u0007K\u0002\u0002", + "\u1a05\u1a03\u0003\u0002\u0002\u0002\u1a05\u1a04\u0003\u0002\u0002\u0002", + "\u1a06\u1a13\u0003\u0002\u0002\u0002\u1a07\u1a08\u0007\u025a\u0002\u0002", + "\u1a08\u1a09\u0007\u025d\u0002\u0002\u1a09\u1a0a\u0007\u032a\u0002\u0002", + "\u1a0a\u1a14\u0005\u03c6\u01e4\u0002\u1a0b\u1a0c\u00077\u0002\u0002", + "\u1a0c\u1a14\u0005\u03c6\u01e4\u0002\u1a0d\u1a0e\u0007\u013b\u0002\u0002", + "\u1a0e\u1a11\u0005\u01fa\u00fe\u0002\u1a0f\u1a10\u0007\u0179\u0002\u0002", + "\u1a10\u1a12\u0005\u0240\u0121\u0002\u1a11\u1a0f\u0003\u0002\u0002\u0002", + "\u1a11\u1a12\u0003\u0002\u0002\u0002\u1a12\u1a14\u0003\u0002\u0002\u0002", + "\u1a13\u1a07\u0003\u0002\u0002\u0002\u1a13\u1a0b\u0003\u0002\u0002\u0002", + "\u1a13\u1a0d\u0003\u0002\u0002\u0002\u1a14\u1a16\u0003\u0002\u0002\u0002", + "\u1a15\u1a17\u0007\u033f\u0002\u0002\u1a16\u1a15\u0003\u0002\u0002\u0002", + "\u1a16\u1a17\u0003\u0002\u0002\u0002\u1a17\u01f9\u0003\u0002\u0002\u0002", + "\u1a18\u1a30\u0005\u01fc\u00ff\u0002\u1a19\u1a30\u0005\u01fe\u0100\u0002", + "\u1a1a\u1a30\u0005\u0202\u0102\u0002\u1a1b\u1a30\u0005\u0204\u0103\u0002", + "\u1a1c\u1a30\u0005\u0208\u0105\u0002\u1a1d\u1a30\u0005\u0222\u0112\u0002", + "\u1a1e\u1a30\u0005\u0224\u0113\u0002\u1a1f\u1a30\u0005\u0226\u0114\u0002", + "\u1a20\u1a30\u0005\u0228\u0115\u0002\u1a21\u1a30\u0005\u022a\u0116\u0002", + "\u1a22\u1a30\u0005\u022c\u0117\u0002\u1a23\u1a30\u0005\u022e\u0118\u0002", + "\u1a24\u1a25\u0007\u01fe\u0002\u0002\u1a25\u1a30\u0005\u037e\u01c0\u0002", + "\u1a26\u1a30\u0005\u0230\u0119\u0002\u1a27\u1a30\u0005\u0232\u011a\u0002", + "\u1a28\u1a30\u0005\u0234\u011b\u0002\u1a29\u1a30\u0005\u0236\u011c\u0002", + "\u1a2a\u1a30\u0005\u0238\u011d\u0002\u1a2b\u1a30\u0005\u023a\u011e\u0002", + "\u1a2c\u1a30\u0005\u023c\u011f\u0002\u1a2d\u1a30\u0005\u023e\u0120\u0002", + "\u1a2e\u1a30\u0005\u0240\u0121\u0002\u1a2f\u1a18\u0003\u0002\u0002\u0002", + "\u1a2f\u1a19\u0003\u0002\u0002\u0002\u1a2f\u1a1a\u0003\u0002\u0002\u0002", + "\u1a2f\u1a1b\u0003\u0002\u0002\u0002\u1a2f\u1a1c\u0003\u0002\u0002\u0002", + "\u1a2f\u1a1d\u0003\u0002\u0002\u0002\u1a2f\u1a1e\u0003\u0002\u0002\u0002", + "\u1a2f\u1a1f\u0003\u0002\u0002\u0002\u1a2f\u1a20\u0003\u0002\u0002\u0002", + "\u1a2f\u1a21\u0003\u0002\u0002\u0002\u1a2f\u1a22\u0003\u0002\u0002\u0002", + "\u1a2f\u1a23\u0003\u0002\u0002\u0002\u1a2f\u1a24\u0003\u0002\u0002\u0002", + "\u1a2f\u1a26\u0003\u0002\u0002\u0002\u1a2f\u1a27\u0003\u0002\u0002\u0002", + "\u1a2f\u1a28\u0003\u0002\u0002\u0002\u1a2f\u1a29\u0003\u0002\u0002\u0002", + "\u1a2f\u1a2a\u0003\u0002\u0002\u0002\u1a2f\u1a2b\u0003\u0002\u0002\u0002", + "\u1a2f\u1a2c\u0003\u0002\u0002\u0002\u1a2f\u1a2d\u0003\u0002\u0002\u0002", + "\u1a2f\u1a2e\u0003\u0002\u0002\u0002\u1a30\u01fb\u0003\u0002\u0002\u0002", + "\u1a31\u1a32\u0007\u019a\u0002\u0002\u1a32\u1a43\u0005\u03a2\u01d2\u0002", + "\u1a33\u1a34\u0007\u019b\u0002\u0002\u1a34\u1a43\u0007\u00e2\u0002\u0002", + "\u1a35\u1a3a\u0007\u00e5\u0002\u0002\u1a36\u1a37\u0007\u021e\u0002\u0002", + "\u1a37\u1a38\u0007\u032a\u0002\u0002\u1a38\u1a3b\u0007\u00e5\u0002\u0002", + "\u1a39\u1a3b\u0007\u00e2\u0002\u0002\u1a3a\u1a36\u0003\u0002\u0002\u0002", + "\u1a3a\u1a39\u0003\u0002\u0002\u0002\u1a3b\u1a43\u0003\u0002\u0002\u0002", + "\u1a3c\u1a3d\u0007\u019c\u0002\u0002\u1a3d\u1a43\u0005\u03a2\u01d2\u0002", + "\u1a3e\u1a3f\u0007\u019d\u0002\u0002\u1a3f\u1a43\u0005\u03a2\u01d2\u0002", + "\u1a40\u1a41\u0007\u019e\u0002\u0002\u1a41\u1a43\t\t\u0002\u0002\u1a42", + "\u1a31\u0003\u0002\u0002\u0002\u1a42\u1a33\u0003\u0002\u0002\u0002\u1a42", + "\u1a35\u0003\u0002\u0002\u0002\u1a42\u1a3c\u0003\u0002\u0002\u0002\u1a42", + "\u1a3e\u0003\u0002\u0002\u0002\u1a42\u1a40\u0003\u0002\u0002\u0002\u1a43", + "\u01fd\u0003\u0002\u0002\u0002\u1a44\u1a45\u0007\u01b1\u0002\u0002\u1a45", + "\u1a55\u0007\u032a\u0002\u0002\u1a46\u1a56\u0007\u00e2\u0002\u0002\u1a47", + "\u1a52\u0007\u00e5\u0002\u0002\u1a48\u1a4d\u0005\u0200\u0101\u0002\u1a49", + "\u1a4a\u0007\u033e\u0002\u0002\u1a4a\u1a4c\u0005\u0200\u0101\u0002\u1a4b", + "\u1a49\u0003\u0002\u0002\u0002\u1a4c\u1a4f\u0003\u0002\u0002\u0002\u1a4d", + "\u1a4b\u0003\u0002\u0002\u0002\u1a4d\u1a4e\u0003\u0002\u0002\u0002\u1a4e", + "\u1a51\u0003\u0002\u0002\u0002\u1a4f\u1a4d\u0003\u0002\u0002\u0002\u1a50", + "\u1a48\u0003\u0002\u0002\u0002\u1a51\u1a54\u0003\u0002\u0002\u0002\u1a52", + "\u1a50\u0003\u0002\u0002\u0002\u1a52\u1a53\u0003\u0002\u0002\u0002\u1a53", + "\u1a56\u0003\u0002\u0002\u0002\u1a54\u1a52\u0003\u0002\u0002\u0002\u1a55", + "\u1a46\u0003\u0002\u0002\u0002\u1a55\u1a47\u0003\u0002\u0002\u0002\u1a56", + "\u01ff\u0003\u0002\u0002\u0002\u1a57\u1a58\u0007\u0199\u0002\u0002\u1a58", + "\u1a59\u0007\u032a\u0002\u0002\u1a59\u1a5e\u0005\u03a2\u01d2\u0002\u1a5a", + "\u1a5b\u0007\u01b0\u0002\u0002\u1a5b\u1a5c\u0007\u032a\u0002\u0002\u1a5c", + "\u1a5e\t@\u0002\u0002\u1a5d\u1a57\u0003\u0002\u0002\u0002\u1a5d\u1a5a", + "\u0003\u0002\u0002\u0002\u1a5e\u0201\u0003\u0002\u0002\u0002\u1a5f\u1a60", + "\u0007>\u0002\u0002\u1a60\u1a61\u0007\u032a\u0002\u0002\u1a61\u1a62", + "\t7\u0002\u0002\u1a62\u0203\u0003\u0002\u0002\u0002\u1a63\u1a64\u0007", + "\u01c6\u0002\u0002\u1a64\u1a68\u0005\u03a2\u01d2\u0002\u1a65\u1a66\u0007", + "\u01c7\u0002\u0002\u1a66\u1a68\tA\u0002\u0002\u1a67\u1a63\u0003\u0002", + "\u0002\u0002\u1a67\u1a65\u0003\u0002\u0002\u0002\u1a68\u0205\u0003\u0002", + "\u0002\u0002\u1a69\u1a6a\u0007\n\u0002\u0002\u1a6a\u1a6b\u0007m\u0002", + "\u0002\u1a6b\u1a6e\u0005\u03c6\u01e4\u0002\u1a6c\u1a6d\u0007\u0014\u0002", + "\u0002\u1a6d\u1a6f\u0005\u03c6\u01e4\u0002\u1a6e\u1a6c\u0003\u0002\u0002", + "\u0002\u1a6e\u1a6f\u0003\u0002\u0002\u0002\u1a6f\u1a77\u0003\u0002\u0002", + "\u0002\u1a70\u1a71\u0007\u0149\u0002\u0002\u1a71\u1a75\u0007\u032a\u0002", + "\u0002\u1a72\u1a76\u0007\u014c\u0002\u0002\u1a73\u1a76\u0007\u014f\u0002", + "\u0002\u1a74\u1a76\u0007\u01e2\u0002\u0002\u1a75\u1a72\u0003\u0002\u0002", + "\u0002\u1a75\u1a73\u0003\u0002\u0002\u0002\u1a75\u1a74\u0003\u0002\u0002", + "\u0002\u1a76\u1a78\u0003\u0002\u0002\u0002\u1a77\u1a70\u0003\u0002\u0002", + "\u0002\u1a77\u1a78\u0003\u0002\u0002\u0002\u1a78\u1a79\u0003\u0002\u0002", + "\u0002\u1a79\u1a7a\u0007\u0010\u0002\u0002\u1a7a\u1a7b\u0007\u0157\u0002", + "\u0002\u1a7b\u1a7c\u0007\u033c\u0002\u0002\u1a7c\u1a7d\u0007\u00b8\u0002", + "\u0002\u1a7d\u1a7e\u0007\u032a\u0002\u0002\u1a7e\u1a83\u0007\u0322\u0002", + "\u0002\u1a7f\u1a80\u0007\u033e\u0002\u0002\u1a80\u1a81\u0007\u00b7\u0002", + "\u0002\u1a81\u1a82\u0007\u032a\u0002\u0002\u1a82\u1a84\tB\u0002\u0002", + "\u1a83\u1a7f\u0003\u0002\u0002\u0002\u1a83\u1a84\u0003\u0002\u0002\u0002", + "\u1a84\u1a85\u0003\u0002\u0002\u0002\u1a85\u1af3\u0007\u033d\u0002\u0002", + "\u1a86\u1af4\u0007\u02ff\u0002\u0002\u1a87\u1a88\u0007\u0085\u0002\u0002", + "\u1a88\u1a89\u0007\u0137\u0002\u0002\u1a89\u1a8a\u0007\u033c\u0002\u0002", + "\u1a8a\u1a8b\u0007\u0015\u0002\u0002\u1a8b\u1a9c\u0007\u032a\u0002\u0002", + "\u1a8c\u1a8e\u0007\u0178\u0002\u0002\u1a8d\u1a8f\tC\u0002\u0002\u1a8e", + "\u1a8d\u0003\u0002\u0002\u0002\u1a8e\u1a8f\u0003\u0002\u0002\u0002\u1a8f", + "\u1a92\u0003\u0002\u0002\u0002\u1a90\u1a91\u0007+\u0002\u0002\u1a91", + "\u1a93\u0005\u03c6\u01e4\u0002\u1a92\u1a90\u0003\u0002\u0002\u0002\u1a92", + "\u1a93\u0003\u0002\u0002\u0002\u1a93\u1a9d\u0003\u0002\u0002\u0002\u1a94", + "\u1a95\u0007+\u0002\u0002\u1a95\u1a97\u0005\u03c6\u01e4\u0002\u1a96", + "\u1a98\u0007\u0178\u0002\u0002\u1a97\u1a96\u0003\u0002\u0002\u0002\u1a97", + "\u1a98\u0003\u0002\u0002\u0002\u1a98\u1a9a\u0003\u0002\u0002\u0002\u1a99", + "\u1a9b\tC\u0002\u0002\u1a9a\u1a99\u0003\u0002\u0002\u0002\u1a9a\u1a9b", + "\u0003\u0002\u0002\u0002\u1a9b\u1a9d\u0003\u0002\u0002\u0002\u1a9c\u1a8c", + "\u0003\u0002\u0002\u0002\u1a9c\u1a94\u0003\u0002\u0002\u0002\u1a9d\u1aaf", + "\u0003\u0002\u0002\u0002\u1a9e\u1aa0\u0007\u033e\u0002\u0002\u1a9f\u1a9e", + "\u0003\u0002\u0002\u0002\u1a9f\u1aa0\u0003\u0002\u0002\u0002\u1aa0\u1aa1", + "\u0003\u0002\u0002\u0002\u1aa1\u1aa2\u0007\u01ec\u0002\u0002\u1aa2\u1aa3", + "\u0007\u032a\u0002\u0002\u1aa3\u1aad\tD\u0002\u0002\u1aa4\u1aab\u0007", + "\u018a\u0002\u0002\u1aa5\u1aac\u0007\u0005\u0002\u0002\u1aa6\u1aac\u0007", + "\u029a\u0002\u0002\u1aa7\u1aa8\u0007\u0005\u0002\u0002\u1aa8\u1aac\u0007", + "\u029a\u0002\u0002\u1aa9\u1aaa\u0007\u029a\u0002\u0002\u1aaa\u1aac\u0007", + "\u0005\u0002\u0002\u1aab\u1aa5\u0003\u0002\u0002\u0002\u1aab\u1aa6\u0003", + "\u0002\u0002\u0002\u1aab\u1aa7\u0003\u0002\u0002\u0002\u1aab\u1aa9\u0003", + "\u0002\u0002\u0002\u1aac\u1aae\u0003\u0002\u0002\u0002\u1aad\u1aa4\u0003", + "\u0002\u0002\u0002\u1aad\u1aae\u0003\u0002\u0002\u0002\u1aae\u1ab0\u0003", + "\u0002\u0002\u0002\u1aaf\u1a9f\u0003\u0002\u0002\u0002\u1aaf\u1ab0\u0003", + "\u0002\u0002\u0002\u1ab0\u1ab7\u0003\u0002\u0002\u0002\u1ab1\u1ab3\u0007", + "\u033e\u0002\u0002\u1ab2\u1ab1\u0003\u0002\u0002\u0002\u1ab2\u1ab3\u0003", + "\u0002\u0002\u0002\u1ab3\u1ab4\u0003\u0002\u0002\u0002\u1ab4\u1ab5\u0007", + "\u00ca\u0002\u0002\u1ab5\u1ab6\u0007\u032a\u0002\u0002\u1ab6\u1ab8\t", + "E\u0002\u0002\u1ab7\u1ab2\u0003\u0002\u0002\u0002\u1ab7\u1ab8\u0003", + "\u0002\u0002\u0002\u1ab8\u1abf\u0003\u0002\u0002\u0002\u1ab9\u1abb\u0007", + "\u033e\u0002\u0002\u1aba\u1ab9\u0003\u0002\u0002\u0002\u1aba\u1abb\u0003", + "\u0002\u0002\u0002\u1abb\u1abc\u0003\u0002\u0002\u0002\u1abc\u1abd\u0007", + "\u00cb\u0002\u0002\u1abd\u1abe\u0007\u032a\u0002\u0002\u1abe\u1ac0\u0007", + "\u0322\u0002\u0002\u1abf\u1aba\u0003\u0002\u0002\u0002\u1abf\u1ac0\u0003", + "\u0002\u0002\u0002\u1ac0\u1ac1\u0003\u0002\u0002\u0002\u1ac1\u1af4\u0007", + "\u033d\u0002\u0002\u1ac2\u1ac3\u0007\u0085\u0002\u0002\u1ac3\u1ac4\u0007", + "U\u0002\u0002\u1ac4\u1ac5\u0007\u033c\u0002\u0002\u1ac5\u1ac6\u0007", + "\u0015\u0002\u0002\u1ac6\u1ad7\u0007\u032a\u0002\u0002\u1ac7\u1ac9\u0007", + "\u0178\u0002\u0002\u1ac8\u1aca\tC\u0002\u0002\u1ac9\u1ac8\u0003\u0002", + "\u0002\u0002\u1ac9\u1aca\u0003\u0002\u0002\u0002\u1aca\u1acd\u0003\u0002", + "\u0002\u0002\u1acb\u1acc\u0007+\u0002\u0002\u1acc\u1ace\u0005\u03c6", + "\u01e4\u0002\u1acd\u1acb\u0003\u0002\u0002\u0002\u1acd\u1ace\u0003\u0002", + "\u0002\u0002\u1ace\u1ad8\u0003\u0002\u0002\u0002\u1acf\u1ad0\u0007+", + "\u0002\u0002\u1ad0\u1ad2\u0005\u03c6\u01e4\u0002\u1ad1\u1ad3\u0007\u0178", + "\u0002\u0002\u1ad2\u1ad1\u0003\u0002\u0002\u0002\u1ad2\u1ad3\u0003\u0002", + "\u0002\u0002\u1ad3\u1ad5\u0003\u0002\u0002\u0002\u1ad4\u1ad6\tC\u0002", + "\u0002\u1ad5\u1ad4\u0003\u0002\u0002\u0002\u1ad5\u1ad6\u0003\u0002\u0002", + "\u0002\u1ad6\u1ad8\u0003\u0002\u0002\u0002\u1ad7\u1ac7\u0003\u0002\u0002", + "\u0002\u1ad7\u1acf\u0003\u0002\u0002\u0002\u1ad8\u1aea\u0003\u0002\u0002", + "\u0002\u1ad9\u1adb\u0007\u033e\u0002\u0002\u1ada\u1ad9\u0003\u0002\u0002", + "\u0002\u1ada\u1adb\u0003\u0002\u0002\u0002\u1adb\u1adc\u0003\u0002\u0002", + "\u0002\u1adc\u1add\u0007\u01ec\u0002\u0002\u1add\u1ade\u0007\u032a\u0002", + "\u0002\u1ade\u1ae8\tD\u0002\u0002\u1adf\u1ae6\u0007\u018a\u0002\u0002", + "\u1ae0\u1ae7\u0007\u0005\u0002\u0002\u1ae1\u1ae7\u0007\u029a\u0002\u0002", + "\u1ae2\u1ae3\u0007\u0005\u0002\u0002\u1ae3\u1ae7\u0007\u029a\u0002\u0002", + "\u1ae4\u1ae5\u0007\u029a\u0002\u0002\u1ae5\u1ae7\u0007\u0005\u0002\u0002", + "\u1ae6\u1ae0\u0003\u0002\u0002\u0002\u1ae6\u1ae1\u0003\u0002\u0002\u0002", + "\u1ae6\u1ae2\u0003\u0002\u0002\u0002\u1ae6\u1ae4\u0003\u0002\u0002\u0002", + "\u1ae7\u1ae9\u0003\u0002\u0002\u0002\u1ae8\u1adf\u0003\u0002\u0002\u0002", + "\u1ae8\u1ae9\u0003\u0002\u0002\u0002\u1ae9\u1aeb\u0003\u0002\u0002\u0002", + "\u1aea\u1ada\u0003\u0002\u0002\u0002\u1aea\u1aeb\u0003\u0002\u0002\u0002", + "\u1aeb\u1aed\u0003\u0002\u0002\u0002\u1aec\u1aee\u0007\u033e\u0002\u0002", + "\u1aed\u1aec\u0003\u0002\u0002\u0002\u1aed\u1aee\u0003\u0002\u0002\u0002", + "\u1aee\u1aef\u0003\u0002\u0002\u0002\u1aef\u1af0\u0007\u0121\u0002\u0002", + "\u1af0\u1af1\u0007\u032a\u0002\u0002\u1af1\u1af2\tF\u0002\u0002\u1af2", + "\u1af4\u0007\u033d\u0002\u0002\u1af3\u1a86\u0003\u0002\u0002\u0002\u1af3", + "\u1a87\u0003\u0002\u0002\u0002\u1af3\u1ac2\u0003\u0002\u0002\u0002\u1af4", + "\u0207\u0003\u0002\u0002\u0002\u1af5\u1af6\u0005\u020a\u0106\u0002\u1af6", + "\u0209\u0003\u0002\u0002\u0002\u1af7\u1af8\u0005\u020c\u0107\u0002\u1af8", + "\u1af9\u0005\u0212\u010a\u0002\u1af9\u1afe\u0003\u0002\u0002\u0002\u1afa", + "\u1afb\u0005\u020e\u0108\u0002\u1afb\u1afc\u0005\u0214\u010b\u0002\u1afc", + "\u1afe\u0003\u0002\u0002\u0002\u1afd\u1af7\u0003\u0002\u0002\u0002\u1afd", + "\u1afa\u0003\u0002\u0002\u0002\u1afe\u020b\u0003\u0002\u0002\u0002\u1aff", + "\u1b00\u0007\u0282\u0002\u0002\u1b00\u020d\u0003\u0002\u0002\u0002\u1b01", + "\u1b02\u0007\u017c\u0002\u0002\u1b02\u020f\u0003\u0002\u0002\u0002\u1b03", + "\u1b04\u0007\u032a\u0002\u0002\u1b04\u0211\u0003\u0002\u0002\u0002\u1b05", + "\u1b06\u0005\u0210\u0109\u0002\u1b06\u1b07\u0005\u0218\u010d\u0002\u1b07", + "\u1b12\u0003\u0002\u0002\u0002\u1b08\u1b12\u0007}\u0002\u0002\u1b09", + "\u1b12\u0007\u0087\u0002\u0002\u1b0a\u1b12\u0007\u00e2\u0002\u0002\u1b0b", + "\u1b12\u0007\u0118\u0002\u0002\u1b0c\u1b0d\u0007\u0129\u0002\u0002\u1b0d", + "\u1b12\tG\u0002\u0002\u1b0e\u1b12\u0007\u02ea\u0002\u0002\u1b0f\u1b10", + "\u0007\u02f6\u0002\u0002\u1b10\u1b12\u0007\u0322\u0002\u0002\u1b11\u1b05", + "\u0003\u0002\u0002\u0002\u1b11\u1b08\u0003\u0002\u0002\u0002\u1b11\u1b09", + "\u0003\u0002\u0002\u0002\u1b11\u1b0a\u0003\u0002\u0002\u0002\u1b11\u1b0b", + "\u0003\u0002\u0002\u0002\u1b11\u1b0c\u0003\u0002\u0002\u0002\u1b11\u1b0e", + "\u0003\u0002\u0002\u0002\u1b11\u1b0f\u0003\u0002\u0002\u0002\u1b12\u0213", + "\u0003\u0002\u0002\u0002\u1b13\u1b14\u0005\u0210\u0109\u0002\u1b14\u1b15", + "\u0005\u0216\u010c\u0002\u1b15\u1b18\u0003\u0002\u0002\u0002\u1b16\u1b18", + "\u0007\u00e2\u0002\u0002\u1b17\u1b13\u0003\u0002\u0002\u0002\u1b17\u1b16", + "\u0003\u0002\u0002\u0002\u1b18\u0215\u0003\u0002\u0002\u0002\u1b19\u1b1a", + "\u0005\u0218\u010d\u0002\u1b1a\u0217\u0003\u0002\u0002\u0002\u1b1b\u1b1c", + "\u0005\u021c\u010f\u0002\u1b1c\u1b1d\u0005\u0220\u0111\u0002\u1b1d\u1b1e", + "\u0005\u021a\u010e\u0002\u1b1e\u1b1f\u0005\u021e\u0110\u0002\u1b1f\u0219", + "\u0003\u0002\u0002\u0002\u1b20\u1b21\u0007\u0340\u0002\u0002\u1b21\u021b", + "\u0003\u0002\u0002\u0002\u1b22\u1b23\u0007\u0157\u0002\u0002\u1b23\u1b24", + "\u0007\u0340\u0002\u0002\u1b24\u1b25\u0007f\u0002\u0002\u1b25\u021d", + "\u0003\u0002\u0002\u0002\u1b26\u1b27\u0007\u0322\u0002\u0002\u1b27\u021f", + "\u0003\u0002\u0002\u0002\u1b28\u1b29\u0005\u03c6\u01e4\u0002\u1b29\u1b2a", + "\u0007\u0337\u0002\u0002\u1b2a\u1b2b\u0005\u0220\u0111\u0002\u1b2b\u1b33", + "\u0003\u0002\u0002\u0002\u1b2c\u1b2d\u0005\u03c6\u01e4\u0002\u1b2d\u1b2e", + "\u0007\u0337\u0002\u0002\u1b2e\u1b31\u0003\u0002\u0002\u0002\u1b2f\u1b31", + "\u0005\u03c6\u01e4\u0002\u1b30\u1b2c\u0003\u0002\u0002\u0002\u1b30\u1b2f", + "\u0003\u0002\u0002\u0002\u1b31\u1b33\u0003\u0002\u0002\u0002\u1b32\u1b28", + "\u0003\u0002\u0002\u0002\u1b32\u1b30\u0003\u0002\u0002\u0002\u1b33\u0221", + "\u0003\u0002\u0002\u0002\u1b34\u1b35\u0007\u01c9\u0002\u0002\u1b35\u1b36", + "\u0005\u03a2\u01d2\u0002\u1b36\u0223\u0003\u0002\u0002\u0002\u1b37\u1b38", + "\u0007\u01ec\u0002\u0002\u1b38\u1b39\u0005\u03a2\u01d2\u0002\u1b39\u0225", + "\u0003\u0002\u0002\u0002\u1b3a\u1b3b\tH\u0002\u0002\u1b3b\u0227\u0003", + "\u0002\u0002\u0002\u1b3c\u1b3d\tI\u0002\u0002\u1b3d\u0229\u0003\u0002", + "\u0002\u0002\u1b3e\u1b3f\tJ\u0002\u0002\u1b3f\u022b\u0003\u0002\u0002", + "\u0002\u1b40\u1b41\u0007\u01d6\u0002\u0002\u1b41\u1b42\u0007\u032a\u0002", + "\u0002\u1b42\u1b43\tK\u0002\u0002\u1b43\u022d\u0003\u0002\u0002\u0002", + "\u1b44\u1b45\u0007\u01cf\u0002\u0002\u1b45\u1b5e\u0005\u03a2\u01d2\u0002", + "\u1b46\u1b47\u0007\u02fd\u0002\u0002\u1b47\u1b5e\u0005\u03a2\u01d2\u0002", + "\u1b48\u1b49\u0007\u01d4\u0002\u0002\u1b49\u1b4c\u0007\u032a\u0002\u0002", + "\u1b4a\u1b4d\u0005\u03c6\u01e4\u0002\u1b4b\u1b4d\u0007\u0326\u0002\u0002", + "\u1b4c\u1b4a\u0003\u0002\u0002\u0002\u1b4c\u1b4b\u0003\u0002\u0002\u0002", + "\u1b4d\u1b5e\u0003\u0002\u0002\u0002\u1b4e\u1b4f\u0007\u01d3\u0002\u0002", + "\u1b4f\u1b52\u0007\u032a\u0002\u0002\u1b50\u1b53\u0005\u03c6\u01e4\u0002", + "\u1b51\u1b53\u0007\u0326\u0002\u0002\u1b52\u1b50\u0003\u0002\u0002\u0002", + "\u1b52\u1b51\u0003\u0002\u0002\u0002\u1b53\u1b5e\u0003\u0002\u0002\u0002", + "\u1b54\u1b55\u0007\u025e\u0002\u0002\u1b55\u1b56\u0007\u032a\u0002\u0002", + "\u1b56\u1b5e\t\t\u0002\u0002\u1b57\u1b58\u0007\u02fa\u0002\u0002\u1b58", + "\u1b59\u0007\u032a\u0002\u0002\u1b59\u1b5e\t\t\u0002\u0002\u1b5a\u1b5b", + "\u0007\u0300\u0002\u0002\u1b5b\u1b5c\u0007\u032a\u0002\u0002\u1b5c\u1b5e", + "\u0007\u0322\u0002\u0002\u1b5d\u1b44\u0003\u0002\u0002\u0002\u1b5d\u1b46", + "\u0003\u0002\u0002\u0002\u1b5d\u1b48\u0003\u0002\u0002\u0002\u1b5d\u1b4e", + "\u0003\u0002\u0002\u0002\u1b5d\u1b54\u0003\u0002\u0002\u0002\u1b5d\u1b57", + "\u0003\u0002\u0002\u0002\u1b5d\u1b5a\u0003\u0002\u0002\u0002\u1b5e\u022f", + "\u0003\u0002\u0002\u0002\u1b5f\u1b68\u0007\u0212\u0002\u0002\u1b60\u1b61", + "\u0007\u019f\u0002\u0002\u1b61\u1b62\u0007\u0092\u0002\u0002\u1b62\u1b63", + "\u0007\u032a\u0002\u0002\u1b63\u1b66\u0005\u03c6\u01e4\u0002\u1b64\u1b66", + "\u0007\u00e2\u0002\u0002\u1b65\u1b60\u0003\u0002\u0002\u0002\u1b65\u1b64", + "\u0003\u0002\u0002\u0002\u1b66\u1b69\u0003\u0002\u0002\u0002\u1b67\u1b69", + "\tL\u0002\u0002\u1b68\u1b65\u0003\u0002\u0002\u0002\u1b68\u1b67\u0003", + "\u0002\u0002\u0002\u1b69\u0231\u0003\u0002\u0002\u0002\u1b6a\u1b6b\u0007", + "\u0258\u0002\u0002\u1b6b\u1b6c\t\t\u0002\u0002\u1b6c\u0233\u0003\u0002", + "\u0002\u0002\u1b6d\u1b6e\u0007\u027f\u0002\u0002\u1b6e\u1b6f\tM\u0002", + "\u0002\u1b6f\u0235\u0003\u0002\u0002\u0002\u1b70\u1b71\u0007\u02a4\u0002", + "\u0002\u1b71\u1b77\tN\u0002\u0002\u1b72\u1b73\u0007\u02f9\u0002\u0002", + "\u1b73\u1b77\u0005\u03a2\u01d2\u0002\u1b74\u1b75\u0007\u027e\u0002\u0002", + "\u1b75\u1b77\tO\u0002\u0002\u1b76\u1b70\u0003\u0002\u0002\u0002\u1b76", + "\u1b72\u0003\u0002\u0002\u0002\u1b76\u1b74\u0003\u0002\u0002\u0002\u1b77", + "\u0237\u0003\u0002\u0002\u0002\u1b78\u1b7f\u0007\u01ea\u0002\u0002\u1b79", + "\u1b7f\u0007\u01e1\u0002\u0002\u1b7a\u1b7f\u0007\u0260\u0002\u0002\u1b7b", + "\u1b7f\u0007\u01ee\u0002\u0002\u1b7c\u1b7d\u0007\u0216\u0002\u0002\u1b7d", + "\u1b7f\u0005\u03a2\u01d2\u0002\u1b7e\u1b78\u0003\u0002\u0002\u0002\u1b7e", + "\u1b79\u0003\u0002\u0002\u0002\u1b7e\u1b7a\u0003\u0002\u0002\u0002\u1b7e", + "\u1b7b\u0003\u0002\u0002\u0002\u1b7e\u1b7c\u0003\u0002\u0002\u0002\u1b7f", + "\u0239\u0003\u0002\u0002\u0002\u1b80\u1b81\u0007\u018c\u0002\u0002\u1b81", + "\u1b86\u0005\u03a2\u01d2\u0002\u1b82\u1b83\u0007\u029c\u0002\u0002\u1b83", + "\u1b86\t\t\u0002\u0002\u1b84\u1b86\t\t\u0002\u0002\u1b85\u1b80\u0003", + "\u0002\u0002\u0002\u1b85\u1b82\u0003\u0002\u0002\u0002\u1b85\u1b84\u0003", + "\u0002\u0002\u0002\u1b86\u023b\u0003\u0002\u0002\u0002\u1b87\u1b88\u0007", + "\u018e\u0002\u0002\u1b88\u1b9d\u0005\u03a2\u01d2\u0002\u1b89\u1b8a\u0007", + "\u018f\u0002\u0002\u1b8a\u1b9d\u0005\u03a2\u01d2\u0002\u1b8b\u1b8c\u0007", + "\u0190\u0002\u0002\u1b8c\u1b9d\u0005\u03a2\u01d2\u0002\u1b8d\u1b8e\u0007", + "\u0191\u0002\u0002\u1b8e\u1b9d\u0005\u03a2\u01d2\u0002\u1b8f\u1b90\u0007", + "\u0194\u0002\u0002\u1b90\u1b9d\u0005\u03a2\u01d2\u0002\u1b91\u1b92\u0007", + "\u01b8\u0002\u0002\u1b92\u1b93\u0007\u032a\u0002\u0002\u1b93\u1b9d\u0007", + "\u0322\u0002\u0002\u1b94\u1b95\u0007\u01ba\u0002\u0002\u1b95\u1b9d\u0005", + "\u03a2\u01d2\u0002\u1b96\u1b97\u0007\u0270\u0002\u0002\u1b97\u1b9d\u0005", + "\u03a2\u01d2\u0002\u1b98\u1b99\u0007\u0296\u0002\u0002\u1b99\u1b9d\u0005", + "\u03a2\u01d2\u0002\u1b9a\u1b9b\u0007\u02a5\u0002\u0002\u1b9b\u1b9d\u0005", + "\u03a2\u01d2\u0002\u1b9c\u1b87\u0003\u0002\u0002\u0002\u1b9c\u1b89\u0003", + "\u0002\u0002\u0002\u1b9c\u1b8b\u0003\u0002\u0002\u0002\u1b9c\u1b8d\u0003", + "\u0002\u0002\u0002\u1b9c\u1b8f\u0003\u0002\u0002\u0002\u1b9c\u1b91\u0003", + "\u0002\u0002\u0002\u1b9c\u1b94\u0003\u0002\u0002\u0002\u1b9c\u1b96\u0003", + "\u0002\u0002\u0002\u1b9c\u1b98\u0003\u0002\u0002\u0002\u1b9c\u1b9a\u0003", + "\u0002\u0002\u0002\u1b9d\u023d\u0003\u0002\u0002\u0002\u1b9e\u1b9f\u0007", + "\u02f0\u0002\u0002\u1b9f\u1ba0\u0007\u032a\u0002\u0002\u1ba0\u1ba1\u0007", + "\u0322\u0002\u0002\u1ba1\u1ba2\tP\u0002\u0002\u1ba2\u023f\u0003\u0002", + "\u0002\u0002\u1ba3\u1ba4\u0007\u0120\u0002\u0002\u1ba4\u1ba5\u0007\u0188", + "\u0002\u0002\u1ba5\u1baa\u0007\u0322\u0002\u0002\u1ba6\u1ba7\u0007\u0120", + "\u0002\u0002\u1ba7\u1baa\u0007\u021a\u0002\u0002\u1ba8\u1baa\u0007\u0265", + "\u0002\u0002\u1ba9\u1ba3\u0003\u0002\u0002\u0002\u1ba9\u1ba6\u0003\u0002", + "\u0002\u0002\u1ba9\u1ba8\u0003\u0002\u0002\u0002\u1baa\u0241\u0003\u0002", + "\u0002\u0002\u1bab\u1bac\u0007g\u0002\u0002\u1bac\u1baf\u0007\u009e", + "\u0002\u0002\u1bad\u1bae\u0007\u0099\u0002\u0002\u1bae\u1bb0\u0007w", + "\u0002\u0002\u1baf\u1bad\u0003\u0002\u0002\u0002\u1baf\u1bb0\u0003\u0002", + "\u0002\u0002\u1bb0\u1bc1\u0003\u0002\u0002\u0002\u1bb1\u1bb6\u0005\u0244", + "\u0123\u0002\u1bb2\u1bb3\u0007\u033e\u0002\u0002\u1bb3\u1bb5\u0005\u0244", + "\u0123\u0002\u1bb4\u1bb2\u0003\u0002\u0002\u0002\u1bb5\u1bb8\u0003\u0002", + "\u0002\u0002\u1bb6\u1bb4\u0003\u0002\u0002\u0002\u1bb6\u1bb7\u0003\u0002", + "\u0002\u0002\u1bb7\u1bc2\u0003\u0002\u0002\u0002\u1bb8\u1bb6\u0003\u0002", + "\u0002\u0002\u1bb9\u1bbe\u0005\u0246\u0124\u0002\u1bba\u1bbb\u0007\u033e", + "\u0002\u0002\u1bbb\u1bbd\u0005\u0246\u0124\u0002\u1bbc\u1bba\u0003\u0002", + "\u0002\u0002\u1bbd\u1bc0\u0003\u0002\u0002\u0002\u1bbe\u1bbc\u0003\u0002", + "\u0002\u0002\u1bbe\u1bbf\u0003\u0002\u0002\u0002\u1bbf\u1bc2\u0003\u0002", + "\u0002\u0002\u1bc0\u1bbe\u0003\u0002\u0002\u0002\u1bc1\u1bb1\u0003\u0002", + "\u0002\u0002\u1bc1\u1bb9\u0003\u0002\u0002\u0002\u1bc2\u1bc4\u0003\u0002", + "\u0002\u0002\u1bc3\u1bc5\u0007\u033f\u0002\u0002\u1bc4\u1bc3\u0003\u0002", + "\u0002\u0002\u1bc4\u1bc5\u0003\u0002\u0002\u0002\u1bc5\u0243\u0003\u0002", + "\u0002\u0002\u1bc6\u1bc7\u0005\u03c6\u01e4\u0002\u1bc7\u1bc8\u0007\u00e5", + "\u0002\u0002\u1bc8\u1bc9\u0005\u038c\u01c7\u0002\u1bc9\u0245\u0003\u0002", + "\u0002\u0002\u1bca\u1bcb\u0005\u03c6\u01e4\u0002\u1bcb\u1bcc\u0007\u0337", + "\u0002\u0002\u1bcc\u1bce\u0003\u0002\u0002\u0002\u1bcd\u1bca\u0003\u0002", + "\u0002\u0002\u1bcd\u1bce\u0003\u0002\u0002\u0002\u1bce\u1bcf\u0003\u0002", + "\u0002\u0002\u1bcf\u1bd0\u0005\u03c6\u01e4\u0002\u1bd0\u1bd1\u0007\u0337", + "\u0002\u0002\u1bd1\u1bd2\u0005\u03c6\u01e4\u0002\u1bd2\u0247\u0003\u0002", + "\u0002\u0002\u1bd3\u1bd4\u0007g\u0002\u0002\u1bd4\u1bd7\t8\u0002\u0002", + "\u1bd5\u1bd6\u0007\u0099\u0002\u0002\u1bd6\u1bd8\u0007w\u0002\u0002", + "\u1bd7\u1bd5\u0003\u0002\u0002\u0002\u1bd7\u1bd8\u0003\u0002\u0002\u0002", + "\u1bd8\u1bd9\u0003\u0002\u0002\u0002\u1bd9\u1bde\u0005\u0392\u01ca\u0002", + "\u1bda\u1bdb\u0007\u033e\u0002\u0002\u1bdb\u1bdd\u0005\u0392\u01ca\u0002", + "\u1bdc\u1bda\u0003\u0002\u0002\u0002\u1bdd\u1be0\u0003\u0002\u0002\u0002", + "\u1bde\u1bdc\u0003\u0002\u0002\u0002\u1bde\u1bdf\u0003\u0002\u0002\u0002", + "\u1bdf\u1be2\u0003\u0002\u0002\u0002\u1be0\u1bde\u0003\u0002\u0002\u0002", + "\u1be1\u1be3\u0007\u033f\u0002\u0002\u1be2\u1be1\u0003\u0002\u0002\u0002", + "\u1be2\u1be3\u0003\u0002\u0002\u0002\u1be3\u0249\u0003\u0002\u0002\u0002", + "\u1be4\u1be7\u0005\u024c\u0127\u0002\u1be5\u1be7\u0005\u024e\u0128\u0002", + "\u1be6\u1be4\u0003\u0002\u0002\u0002\u1be6\u1be5\u0003\u0002\u0002\u0002", + "\u1be7\u024b\u0003\u0002\u0002\u0002\u1be8\u1be9\u0007g\u0002\u0002", + "\u1be9\u1bec\u0007\u0160\u0002\u0002\u1bea\u1beb\u0007\u0099\u0002\u0002", + "\u1beb\u1bed\u0007w\u0002\u0002\u1bec\u1bea\u0003\u0002\u0002\u0002", + "\u1bec\u1bed\u0003\u0002\u0002\u0002\u1bed\u1bee\u0003\u0002\u0002\u0002", + "\u1bee\u1bf3\u0005\u0390\u01c9\u0002\u1bef\u1bf0\u0007\u033e\u0002\u0002", + "\u1bf0\u1bf2\u0005\u0390\u01c9\u0002\u1bf1\u1bef\u0003\u0002\u0002\u0002", + "\u1bf2\u1bf5\u0003\u0002\u0002\u0002\u1bf3\u1bf1\u0003\u0002\u0002\u0002", + "\u1bf3\u1bf4\u0003\u0002\u0002\u0002\u1bf4\u1bf7\u0003\u0002\u0002\u0002", + "\u1bf5\u1bf3\u0003\u0002\u0002\u0002\u1bf6\u1bf8\u0007\u033f\u0002\u0002", + "\u1bf7\u1bf6\u0003\u0002\u0002\u0002\u1bf7\u1bf8\u0003\u0002\u0002\u0002", + "\u1bf8\u024d\u0003\u0002\u0002\u0002\u1bf9\u1bfa\u0007g\u0002\u0002", + "\u1bfa\u1bfd\u0007\u0160\u0002\u0002\u1bfb\u1bfc\u0007\u0099\u0002\u0002", + "\u1bfc\u1bfe\u0007w\u0002\u0002\u1bfd\u1bfb\u0003\u0002\u0002\u0002", + "\u1bfd\u1bfe\u0003\u0002\u0002\u0002\u1bfe\u1bff\u0003\u0002\u0002\u0002", + "\u1bff\u1c04\u0005\u0390\u01c9\u0002\u1c00\u1c01\u0007\u033e\u0002\u0002", + "\u1c01\u1c03\u0005\u0390\u01c9\u0002\u1c02\u1c00\u0003\u0002\u0002\u0002", + "\u1c03\u1c06\u0003\u0002\u0002\u0002\u1c04\u1c02\u0003\u0002\u0002\u0002", + "\u1c04\u1c05\u0003\u0002\u0002\u0002\u1c05\u1c07\u0003\u0002\u0002\u0002", + "\u1c06\u1c04\u0003\u0002\u0002\u0002\u1c07\u1c0b\u0007\u00e5\u0002\u0002", + "\u1c08\u1c0c\u0007T\u0002\u0002\u1c09\u1c0a\u0007\u0006\u0002\u0002", + "\u1c0a\u1c0c\u0007\u0135\u0002\u0002\u1c0b\u1c08\u0003\u0002\u0002\u0002", + "\u1c0b\u1c09\u0003\u0002\u0002\u0002\u1c0c\u1c0e\u0003\u0002\u0002\u0002", + "\u1c0d\u1c0f\u0007\u033f\u0002\u0002\u1c0e\u1c0d\u0003\u0002\u0002\u0002", + "\u1c0e\u1c0f\u0003\u0002\u0002\u0002\u1c0f\u024f\u0003\u0002\u0002\u0002", + "\u1c10\u1c11\u0007g\u0002\u0002\u1c11\u1c14\u0007\u008d\u0002\u0002", + "\u1c12\u1c13\u0007\u0099\u0002\u0002\u1c13\u1c15\u0007w\u0002\u0002", + "\u1c14\u1c12\u0003\u0002\u0002\u0002\u1c14\u1c15\u0003\u0002\u0002\u0002", + "\u1c15\u1c16\u0003\u0002\u0002\u0002\u1c16\u1c1b\u0005\u0392\u01ca\u0002", + "\u1c17\u1c18\u0007\u033e\u0002\u0002\u1c18\u1c1a\u0005\u0392\u01ca\u0002", + "\u1c19\u1c17\u0003\u0002\u0002\u0002\u1c1a\u1c1d\u0003\u0002\u0002\u0002", + "\u1c1b\u1c19\u0003\u0002\u0002\u0002\u1c1b\u1c1c\u0003\u0002\u0002\u0002", + "\u1c1c\u1c1f\u0003\u0002\u0002\u0002\u1c1d\u1c1b\u0003\u0002\u0002\u0002", + "\u1c1e\u1c20\u0007\u033f\u0002\u0002\u1c1f\u1c1e\u0003\u0002\u0002\u0002", + "\u1c1f\u1c20\u0003\u0002\u0002\u0002\u1c20\u0251\u0003\u0002\u0002\u0002", + "\u1c21\u1c22\u0007g\u0002\u0002\u1c22\u1c2c\u0007\u0148\u0002\u0002", + "\u1c23\u1c25\u0007\u033e\u0002\u0002\u1c24\u1c23\u0003\u0002\u0002\u0002", + "\u1c24\u1c25\u0003\u0002\u0002\u0002\u1c25\u1c29\u0003\u0002\u0002\u0002", + "\u1c26\u1c27\u0005\u038e\u01c8\u0002\u1c27\u1c28\u0007\u0337\u0002\u0002", + "\u1c28\u1c2a\u0003\u0002\u0002\u0002\u1c29\u1c26\u0003\u0002\u0002\u0002", + "\u1c29\u1c2a\u0003\u0002\u0002\u0002\u1c2a\u1c2b\u0003\u0002\u0002\u0002", + "\u1c2b\u1c2d\u0005\u03c6\u01e4\u0002\u1c2c\u1c24\u0003\u0002\u0002\u0002", + "\u1c2d\u1c2e\u0003\u0002\u0002\u0002\u1c2e\u1c2c\u0003\u0002\u0002\u0002", + "\u1c2e\u1c2f\u0003\u0002\u0002\u0002\u1c2f\u1c30\u0003\u0002\u0002\u0002", + "\u1c30\u1c31\u0007\u033f\u0002\u0002\u1c31\u0253\u0003\u0002\u0002\u0002", + "\u1c32\u1c33\u0007g\u0002\u0002\u1c33\u1c36\u0007\u0153\u0002\u0002", + "\u1c34\u1c35\u0007\u0099\u0002\u0002\u1c35\u1c37\u0007w\u0002\u0002", + "\u1c36\u1c34\u0003\u0002\u0002\u0002\u1c36\u1c37\u0003\u0002\u0002\u0002", + "\u1c37\u1c38\u0003\u0002\u0002\u0002\u1c38\u1c3a\u0005\u038e\u01c8\u0002", + "\u1c39\u1c3b\u0007\u033f\u0002\u0002\u1c3a\u1c39\u0003\u0002\u0002\u0002", + "\u1c3a\u1c3b\u0003\u0002\u0002\u0002\u1c3b\u0255\u0003\u0002\u0002\u0002", + "\u1c3c\u1c3d\u0007g\u0002\u0002\u1c3d\u1c40\u0007\u0172\u0002\u0002", + "\u1c3e\u1c3f\u0007\u0099\u0002\u0002\u1c3f\u1c41\u0007w\u0002\u0002", + "\u1c40\u1c3e\u0003\u0002\u0002\u0002\u1c40\u1c41\u0003\u0002\u0002\u0002", + "\u1c41\u1c42\u0003\u0002\u0002\u0002\u1c42\u1c47\u0005\u0390\u01c9\u0002", + "\u1c43\u1c44\u0007\u033e\u0002\u0002\u1c44\u1c46\u0005\u0390\u01c9\u0002", + "\u1c45\u1c43\u0003\u0002\u0002\u0002\u1c46\u1c49\u0003\u0002\u0002\u0002", + "\u1c47\u1c45\u0003\u0002\u0002\u0002\u1c47\u1c48\u0003\u0002\u0002\u0002", + "\u1c48\u1c4b\u0003\u0002\u0002\u0002\u1c49\u1c47\u0003\u0002\u0002\u0002", + "\u1c4a\u1c4c\u0007\u033f\u0002\u0002\u1c4b\u1c4a\u0003\u0002\u0002\u0002", + "\u1c4b\u1c4c\u0003\u0002\u0002\u0002\u1c4c\u0257\u0003\u0002\u0002\u0002", + "\u1c4d\u1c4e\u0007I\u0002\u0002\u1c4e\u1c4f\u0007\u0301\u0002\u0002", + "\u1c4f\u1c54\u0005\u0390\u01c9\u0002\u1c50\u1c51\u0007\u008b\u0002\u0002", + "\u1c51\u1c52\u0005\u03be\u01e0\u0002\u1c52\u1c53\u0005\u03c0\u01e1\u0002", + "\u1c53\u1c55\u0003\u0002\u0002\u0002\u1c54\u1c50\u0003\u0002\u0002\u0002", + "\u1c54\u1c55\u0003\u0002\u0002\u0002\u1c55\u1c5c\u0003\u0002\u0002\u0002", + "\u1c56\u1c57\u0007\u0010\u0002\u0002\u1c57\u1c58\u0007\u0153\u0002\u0002", + "\u1c58\u1c59\u0007\u033c\u0002\u0002\u1c59\u1c5a\u0005\u02b8\u015d\u0002", + "\u1c5a\u1c5b\u0007\u033d\u0002\u0002\u1c5b\u1c5d\u0003\u0002\u0002\u0002", + "\u1c5c\u1c56\u0003\u0002\u0002\u0002\u1c5c\u1c5d\u0003\u0002\u0002\u0002", + "\u1c5d\u0259\u0003\u0002\u0002\u0002\u1c5e\u1c5f\u0007g\u0002\u0002", + "\u1c5f\u1c62\u0007\u0301\u0002\u0002\u1c60\u1c61\u0007\u0099\u0002\u0002", + "\u1c61\u1c63\u0007w\u0002\u0002\u1c62\u1c60\u0003\u0002\u0002\u0002", + "\u1c62\u1c63\u0003\u0002\u0002\u0002\u1c63\u1c64\u0003\u0002\u0002\u0002", + "\u1c64\u1c65\u0005\u0390\u01c9\u0002\u1c65\u025b\u0003\u0002\u0002\u0002", + "\u1c66\u1c69\u0005\u025e\u0130\u0002\u1c67\u1c69\u0005\u0260\u0131\u0002", + "\u1c68\u1c66\u0003\u0002\u0002\u0002\u1c68\u1c67\u0003\u0002\u0002\u0002", + "\u1c69\u025d\u0003\u0002\u0002\u0002\u1c6a\u1c6b\u0007\u00e9\u0002\u0002", + "\u1c6b\u1c6c\u0007\u033c\u0002\u0002\u1c6c\u1c6d\u0005\u03c6\u01e4\u0002", + "\u1c6d\u1c6e\u0007\u033e\u0002\u0002\u1c6e\u1c6f\u0007\u0326\u0002\u0002", + "\u1c6f\u1c70\u0007\u033d\u0002\u0002\u1c70\u025f\u0003\u0002\u0002\u0002", + "\u1c71\u1c72\u0007\u00e8\u0002\u0002\u1c72\u1c73\u0007\u033c\u0002\u0002", + "\u1c73\u1c74\u0007\u0326\u0002\u0002\u1c74\u1c75\u0007\u033e\u0002\u0002", + "\u1c75\u1c76\u0007\u0326\u0002\u0002\u1c76\u1c77\u0007\u033d\u0002\u0002", + "\u1c77\u1c79\u0007\u0337\u0002\u0002\u1c78\u1c7a\u0005\u03c6\u01e4\u0002", + "\u1c79\u1c78\u0003\u0002\u0002\u0002\u1c79\u1c7a\u0003\u0002\u0002\u0002", + "\u1c7a\u1c7b\u0003\u0002\u0002\u0002\u1c7b\u1c7d\u0007\u0337\u0002\u0002", + "\u1c7c\u1c7e\u0005\u03c6\u01e4\u0002\u1c7d\u1c7c\u0003\u0002\u0002\u0002", + "\u1c7d\u1c7e\u0003\u0002\u0002\u0002\u1c7e\u1c7f\u0003\u0002\u0002\u0002", + "\u1c7f\u1c80\u0007\u0337\u0002\u0002\u1c80\u1c81\u0005\u03c6\u01e4\u0002", + "\u1c81\u0261\u0003\u0002\u0002\u0002\u1c82\u1c83\u0007X\u0002\u0002", + "\u1c83\u1c85\u0007\u0321\u0002\u0002\u1c84\u1c86\u0007\u0010\u0002\u0002", + "\u1c85\u1c84\u0003\u0002\u0002\u0002\u1c85\u1c86\u0003\u0002\u0002\u0002", + "\u1c86\u1c87\u0003\u0002\u0002\u0002\u1c87\u1c89\u0005\u02b2\u015a\u0002", + "\u1c88\u1c8a\u0007\u033f\u0002\u0002\u1c89\u1c88\u0003\u0002\u0002\u0002", + "\u1c89\u1c8a\u0003\u0002\u0002\u0002\u1c8a\u1cae\u0003\u0002\u0002\u0002", + "\u1c8b\u1c8c\u0007X\u0002\u0002\u1c8c\u1c91\u0005\u02b0\u0159\u0002", + "\u1c8d\u1c8e\u0007\u033e\u0002\u0002\u1c8e\u1c90\u0005\u02b0\u0159\u0002", + "\u1c8f\u1c8d\u0003\u0002\u0002\u0002\u1c90\u1c93\u0003\u0002\u0002\u0002", + "\u1c91\u1c8f\u0003\u0002\u0002\u0002\u1c91\u1c92\u0003\u0002\u0002\u0002", + "\u1c92\u1c95\u0003\u0002\u0002\u0002\u1c93\u1c91\u0003\u0002\u0002\u0002", + "\u1c94\u1c96\u0007\u033f\u0002\u0002\u1c95\u1c94\u0003\u0002\u0002\u0002", + "\u1c95\u1c96\u0003\u0002\u0002\u0002\u1c96\u1cae\u0003\u0002\u0002\u0002", + "\u1c97\u1c98\u0007X\u0002\u0002\u1c98\u1c9a\u0007\u0321\u0002\u0002", + "\u1c99\u1c9b\u0007\u0010\u0002\u0002\u1c9a\u1c99\u0003\u0002\u0002\u0002", + "\u1c9a\u1c9b\u0003\u0002\u0002\u0002\u1c9b\u1c9c\u0003\u0002\u0002\u0002", + "\u1c9c\u1c9e\u0005\u02b4\u015b\u0002\u1c9d\u1c9f\u0007\u033f\u0002\u0002", + "\u1c9e\u1c9d\u0003\u0002\u0002\u0002\u1c9e\u1c9f\u0003\u0002\u0002\u0002", + "\u1c9f\u1cae\u0003\u0002\u0002\u0002\u1ca0\u1ca1\u0007\u0179\u0002\u0002", + "\u1ca1\u1ca2\u0007\u0317\u0002\u0002\u1ca2\u1ca3\u0007\u033c\u0002\u0002", + "\u1ca3\u1ca5\u0007\u0326\u0002\u0002\u1ca4\u1ca6\u0007\u033e\u0002\u0002", + "\u1ca5\u1ca4\u0003\u0002\u0002\u0002\u1ca5\u1ca6\u0003\u0002\u0002\u0002", + "\u1ca6\u1ca7\u0003\u0002\u0002\u0002\u1ca7\u1ca8\u0007\u0010\u0002\u0002", + "\u1ca8\u1ca9\u0005\u03c6\u01e4\u0002\u1ca9\u1cab\u0007\u033d\u0002\u0002", + "\u1caa\u1cac\u0007\u033f\u0002\u0002\u1cab\u1caa\u0003\u0002\u0002\u0002", + "\u1cab\u1cac\u0003\u0002\u0002\u0002\u1cac\u1cae\u0003\u0002\u0002\u0002", + "\u1cad\u1c82\u0003\u0002\u0002\u0002\u1cad\u1c8b\u0003\u0002\u0002\u0002", + "\u1cad\u1c97\u0003\u0002\u0002\u0002\u1cad\u1ca0\u0003\u0002\u0002\u0002", + "\u1cae\u0263\u0003\u0002\u0002\u0002\u1caf\u1cb1\u00073\u0002\u0002", + "\u1cb0\u1cb2\u0007\u020d\u0002\u0002\u1cb1\u1cb0\u0003\u0002\u0002\u0002", + "\u1cb1\u1cb2\u0003\u0002\u0002\u0002\u1cb2\u1cb3\u0003\u0002\u0002\u0002", + "\u1cb3\u1cb5\u0005\u03a0\u01d1\u0002\u1cb4\u1cb6\u0007\u033f\u0002\u0002", + "\u1cb5\u1cb4\u0003\u0002\u0002\u0002\u1cb5\u1cb6\u0003\u0002\u0002\u0002", + "\u1cb6\u1ccd\u0003\u0002\u0002\u0002\u1cb7\u1cb9\u0007W\u0002\u0002", + "\u1cb8\u1cba\u0007\u020d\u0002\u0002\u1cb9\u1cb8\u0003\u0002\u0002\u0002", + "\u1cb9\u1cba\u0003\u0002\u0002\u0002\u1cba\u1cbc\u0003\u0002\u0002\u0002", + "\u1cbb\u1cbd\u0007P\u0002\u0002\u1cbc\u1cbb\u0003\u0002\u0002\u0002", + "\u1cbc\u1cbd\u0003\u0002\u0002\u0002\u1cbd\u1cbe\u0003\u0002\u0002\u0002", + "\u1cbe\u1cc0\u0005\u03a0\u01d1\u0002\u1cbf\u1cc1\u0007\u033f\u0002\u0002", + "\u1cc0\u1cbf\u0003\u0002\u0002\u0002\u1cc0\u1cc1\u0003\u0002\u0002\u0002", + "\u1cc1\u1ccd\u0003\u0002\u0002\u0002\u1cc2\u1ccd\u0005\u02cc\u0167\u0002", + "\u1cc3\u1ccd\u0005\u02d2\u016a\u0002\u1cc4\u1cc6\u0007\u00e7\u0002\u0002", + "\u1cc5\u1cc7\u0007\u020d\u0002\u0002\u1cc6\u1cc5\u0003\u0002\u0002\u0002", + "\u1cc6\u1cc7\u0003\u0002\u0002\u0002\u1cc7\u1cc8\u0003\u0002\u0002\u0002", + "\u1cc8\u1cca\u0005\u03a0\u01d1\u0002\u1cc9\u1ccb\u0007\u033f\u0002\u0002", + "\u1cca\u1cc9\u0003\u0002\u0002\u0002\u1cca\u1ccb\u0003\u0002\u0002\u0002", + "\u1ccb\u1ccd\u0003\u0002\u0002\u0002\u1ccc\u1caf\u0003\u0002\u0002\u0002", + "\u1ccc\u1cb7\u0003\u0002\u0002\u0002\u1ccc\u1cc2\u0003\u0002\u0002\u0002", + "\u1ccc\u1cc3\u0003\u0002\u0002\u0002\u1ccc\u1cc4\u0003\u0002\u0002\u0002", + "\u1ccd\u0265\u0003\u0002\u0002\u0002\u1cce\u1ccf\u0007\u001a\u0002\u0002", + "\u1ccf\u1cd0\u0007T\u0002\u0002\u1cd0\u1cdd\u0005\u03c6\u01e4\u0002", + "\u1cd1\u1cda\u0007\u010c\u0002\u0002\u1cd2\u1cd4\u0007\u033e\u0002\u0002", + "\u1cd3\u1cd2\u0003\u0002\u0002\u0002\u1cd3\u1cd4\u0003\u0002\u0002\u0002", + "\u1cd4\u1cd5\u0003\u0002\u0002\u0002\u1cd5\u1cd6\tQ\u0002\u0002\u1cd6", + "\u1cd7\u0007\u032a\u0002\u0002\u1cd7\u1cd9\u0007\u0326\u0002\u0002\u1cd8", + "\u1cd3\u0003\u0002\u0002\u0002\u1cd9\u1cdc\u0003\u0002\u0002\u0002\u1cda", + "\u1cd8\u0003\u0002\u0002\u0002\u1cda\u1cdb\u0003\u0002\u0002\u0002\u1cdb", + "\u1cde\u0003\u0002\u0002\u0002\u1cdc\u1cda\u0003\u0002\u0002\u0002\u1cdd", + "\u1cd1\u0003\u0002\u0002\u0002\u1cdd\u1cde\u0003\u0002\u0002\u0002\u1cde", + "\u1ce7\u0003\u0002\u0002\u0002\u1cdf\u1ce1\u0007\u033e\u0002\u0002\u1ce0", + "\u1cdf\u0003\u0002\u0002\u0002\u1ce0\u1ce1\u0003\u0002\u0002\u0002\u1ce1", + "\u1ce2\u0003\u0002\u0002\u0002\u1ce2\u1ce3\tQ\u0002\u0002\u1ce3\u1ce4", + "\u0007\u032a\u0002\u0002\u1ce4\u1ce6\u0007\u0326\u0002\u0002\u1ce5\u1ce0", + "\u0003\u0002\u0002\u0002\u1ce6\u1ce9\u0003\u0002\u0002\u0002\u1ce7\u1ce5", + "\u0003\u0002\u0002\u0002\u1ce7\u1ce8\u0003\u0002\u0002\u0002\u1ce8\u1d01", + "\u0003\u0002\u0002\u0002\u1ce9\u1ce7\u0003\u0002\u0002\u0002\u1cea\u1cef", + "\u0007\u015a\u0002\u0002\u1ceb\u1ced\u0007\u033e\u0002\u0002\u1cec\u1ceb", + "\u0003\u0002\u0002\u0002\u1cec\u1ced\u0003\u0002\u0002\u0002\u1ced\u1cee", + "\u0003\u0002\u0002\u0002\u1cee\u1cf0\u0005\u03c6\u01e4\u0002\u1cef\u1cec", + "\u0003\u0002\u0002\u0002\u1cf0\u1cf1\u0003\u0002\u0002\u0002\u1cf1\u1cef", + "\u0003\u0002\u0002\u0002\u1cf1\u1cf2\u0003\u0002\u0002\u0002\u1cf2\u1d02", + "\u0003\u0002\u0002\u0002\u1cf3\u1cfd\u0007\u015a\u0002\u0002\u1cf4\u1cf6", + "\u0007\u033e\u0002\u0002\u1cf5\u1cf4\u0003\u0002\u0002\u0002\u1cf5\u1cf6", + "\u0003\u0002\u0002\u0002\u1cf6\u1cf7\u0003\u0002\u0002\u0002\u1cf7\u1cf8", + "\tR\u0002\u0002\u1cf8\u1cfb\u0007\u032a\u0002\u0002\u1cf9\u1cfc\u0007", + "\u0326\u0002\u0002\u1cfa\u1cfc\u0005\u03c6\u01e4\u0002\u1cfb\u1cf9\u0003", + "\u0002\u0002\u0002\u1cfb\u1cfa\u0003\u0002\u0002\u0002\u1cfc\u1cfe\u0003", + "\u0002\u0002\u0002\u1cfd\u1cf5\u0003\u0002\u0002\u0002\u1cfe\u1cff\u0003", + "\u0002\u0002\u0002\u1cff\u1cfd\u0003\u0002\u0002\u0002\u1cff\u1d00\u0003", + "\u0002\u0002\u0002\u1d00\u1d02\u0003\u0002\u0002\u0002\u1d01\u1cea\u0003", + "\u0002\u0002\u0002\u1d01\u1cf3\u0003\u0002\u0002\u0002\u1d02\u1d24\u0003", + "\u0002\u0002\u0002\u1d03\u1d04\u0007\u00cd\u0002\u0002\u1d04\u1d09\u0007", + "\u015a\u0002\u0002\u1d05\u1d07\u0007\u033e\u0002\u0002\u1d06\u1d05\u0003", + "\u0002\u0002\u0002\u1d06\u1d07\u0003\u0002\u0002\u0002\u1d07\u1d08\u0003", + "\u0002\u0002\u0002\u1d08\u1d0a\u0005\u03c6\u01e4\u0002\u1d09\u1d06\u0003", + "\u0002\u0002\u0002\u1d0a\u1d0b\u0003\u0002\u0002\u0002\u1d0b\u1d09\u0003", + "\u0002\u0002\u0002\u1d0b\u1d0c\u0003\u0002\u0002\u0002\u1d0c\u1d0e\u0003", + "\u0002\u0002\u0002\u1d0d\u1d03\u0003\u0002\u0002\u0002\u1d0e\u1d0f\u0003", + "\u0002\u0002\u0002\u1d0f\u1d0d\u0003\u0002\u0002\u0002\u1d0f\u1d10\u0003", + "\u0002\u0002\u0002\u1d10\u1d25\u0003\u0002\u0002\u0002\u1d11\u1d12\u0007", + "\u00cd\u0002\u0002\u1d12\u1d1c\u0007\u015a\u0002\u0002\u1d13\u1d15\u0007", + "\u033e\u0002\u0002\u1d14\u1d13\u0003\u0002\u0002\u0002\u1d14\u1d15\u0003", + "\u0002\u0002\u0002\u1d15\u1d16\u0003\u0002\u0002\u0002\u1d16\u1d17\t", + "R\u0002\u0002\u1d17\u1d1a\u0007\u032a\u0002\u0002\u1d18\u1d1b\u0007", + "\u0326\u0002\u0002\u1d19\u1d1b\u0005\u03c6\u01e4\u0002\u1d1a\u1d18\u0003", + "\u0002\u0002\u0002\u1d1a\u1d19\u0003\u0002\u0002\u0002\u1d1b\u1d1d\u0003", + "\u0002\u0002\u0002\u1d1c\u1d14\u0003\u0002\u0002\u0002\u1d1d\u1d1e\u0003", + "\u0002\u0002\u0002\u1d1e\u1d1c\u0003\u0002\u0002\u0002\u1d1e\u1d1f\u0003", + "\u0002\u0002\u0002\u1d1f\u1d21\u0003\u0002\u0002\u0002\u1d20\u1d11\u0003", + "\u0002\u0002\u0002\u1d21\u1d22\u0003\u0002\u0002\u0002\u1d22\u1d20\u0003", + "\u0002\u0002\u0002\u1d22\u1d23\u0003\u0002\u0002\u0002\u1d23\u1d25\u0003", + "\u0002\u0002\u0002\u1d24\u1d0d\u0003\u0002\u0002\u0002\u1d24\u1d20\u0003", + "\u0002\u0002\u0002\u1d24\u1d25\u0003\u0002\u0002\u0002\u1d25\u1dc6\u0003", + "\u0002\u0002\u0002\u1d26\u1dc3\u0007\u0179\u0002\u0002\u1d27\u1d29\u0007", + "\u033e\u0002\u0002\u1d28\u1d27\u0003\u0002\u0002\u0002\u1d28\u1d29\u0003", + "\u0002\u0002\u0002\u1d29\u1d2a\u0003\u0002\u0002\u0002\u1d2a\u1dc2\u0007", + "`\u0002\u0002\u1d2b\u1d2d\u0007\u033e\u0002\u0002\u1d2c\u1d2b\u0003", + "\u0002\u0002\u0002\u1d2c\u1d2d\u0003\u0002\u0002\u0002\u1d2d\u1d2e\u0003", + "\u0002\u0002\u0002\u1d2e\u1dc2\u0007H\u0002\u0002\u1d2f\u1d31\u0007", + "\u033e\u0002\u0002\u1d30\u1d2f\u0003\u0002\u0002\u0002\u1d30\u1d31\u0003", + "\u0002\u0002\u0002\u1d31\u1d32\u0003\u0002\u0002\u0002\u1d32\u1dc2\t", + "S\u0002\u0002\u1d33\u1d35\u0007\u033e\u0002\u0002\u1d34\u1d33\u0003", + "\u0002\u0002\u0002\u1d34\u1d35\u0003\u0002\u0002\u0002\u1d35\u1d36\u0003", + "\u0002\u0002\u0002\u1d36\u1d37\u0007\u01db\u0002\u0002\u1d37\u1d3a\u0007", + "\u032a\u0002\u0002\u1d38\u1d3b\u0007\u0326\u0002\u0002\u1d39\u1d3b\u0005", + "\u03c6\u01e4\u0002\u1d3a\u1d38\u0003\u0002\u0002\u0002\u1d3a\u1d39\u0003", + "\u0002\u0002\u0002\u1d3b\u1dc2\u0003\u0002\u0002\u0002\u1d3c\u1d3e\u0007", + "\u033e\u0002\u0002\u1d3d\u1d3c\u0003\u0002\u0002\u0002\u1d3d\u1d3e\u0003", + "\u0002\u0002\u0002\u1d3e\u1d3f\u0003\u0002\u0002\u0002\u1d3f\u1d40\u0007", + "\u025d\u0002\u0002\u1d40\u1d41\u0007\u032a\u0002\u0002\u1d41\u1dc2\u0005", + "\u03c6\u01e4\u0002\u1d42\u1d44\u0007\u033e\u0002\u0002\u1d43\u1d42\u0003", + "\u0002\u0002\u0002\u1d43\u1d44\u0003\u0002\u0002\u0002\u1d44\u1d45\u0003", + "\u0002\u0002\u0002\u1d45\u1dc2\u0007\u01c4\u0002\u0002\u1d46\u1d48\u0007", + "\u033e\u0002\u0002\u1d47\u1d46\u0003\u0002\u0002\u0002\u1d47\u1d48\u0003", + "\u0002\u0002\u0002\u1d48\u1d49\u0003\u0002\u0002\u0002\u1d49\u1dc2\u0007", + "\u0084\u0002\u0002\u1d4a\u1d4c\u0007\u033e\u0002\u0002\u1d4b\u1d4a\u0003", + "\u0002\u0002\u0002\u1d4b\u1d4c\u0003\u0002\u0002\u0002\u1d4c\u1d59\u0003", + "\u0002\u0002\u0002\u1d4d\u1d4e\u0007x\u0002\u0002\u1d4e\u1d51\u0007", + "\u032a\u0002\u0002\u1d4f\u1d52\u0007\u0326\u0002\u0002\u1d50\u1d52\u0005", + "\u03c6\u01e4\u0002\u1d51\u1d4f\u0003\u0002\u0002\u0002\u1d51\u1d50\u0003", + "\u0002\u0002\u0002\u1d52\u1d5a\u0003\u0002\u0002\u0002\u1d53\u1d54\u0007", + "\u0119\u0002\u0002\u1d54\u1d57\u0007\u032a\u0002\u0002\u1d55\u1d58\u0007", + "\u0322\u0002\u0002\u1d56\u1d58\u0005\u03c6\u01e4\u0002\u1d57\u1d55\u0003", + "\u0002\u0002\u0002\u1d57\u1d56\u0003\u0002\u0002\u0002\u1d58\u1d5a\u0003", + "\u0002\u0002\u0002\u1d59\u1d4d\u0003\u0002\u0002\u0002\u1d59\u1d53\u0003", + "\u0002\u0002\u0002\u1d5a\u1dc2\u0003\u0002\u0002\u0002\u1d5b\u1d5d\u0007", + "\u033e\u0002\u0002\u1d5c\u1d5b\u0003\u0002\u0002\u0002\u1d5c\u1d5d\u0003", + "\u0002\u0002\u0002\u1d5d\u1d5e\u0003\u0002\u0002\u0002\u1d5e\u1dc2\t", + "T\u0002\u0002\u1d5f\u1d61\u0007\u033e\u0002\u0002\u1d60\u1d5f\u0003", + "\u0002\u0002\u0002\u1d60\u1d61\u0003\u0002\u0002\u0002\u1d61\u1d62\u0003", + "\u0002\u0002\u0002\u1d62\u1dc2\tU\u0002\u0002\u1d63\u1d65\u0007\u033e", + "\u0002\u0002\u1d64\u1d63\u0003\u0002\u0002\u0002\u1d64\u1d65\u0003\u0002", + "\u0002\u0002\u1d65\u1d66\u0003\u0002\u0002\u0002\u1d66\u1dc2\tV\u0002", + "\u0002\u1d67\u1d69\u0007\u033e\u0002\u0002\u1d68\u1d67\u0003\u0002\u0002", + "\u0002\u1d68\u1d69\u0003\u0002\u0002\u0002\u1d69\u1d6a\u0003\u0002\u0002", + "\u0002\u1d6a\u1d6b\u0007\u00c5\u0002\u0002\u1d6b\u1d6e\u0007\u032a\u0002", + "\u0002\u1d6c\u1d6f\u0007\u0326\u0002\u0002\u1d6d\u1d6f\u0005\u03c6\u01e4", + "\u0002\u1d6e\u1d6c\u0003\u0002\u0002\u0002\u1d6e\u1d6d\u0003\u0002\u0002", + "\u0002\u1d6f\u1dc2\u0003\u0002\u0002\u0002\u1d70\u1d72\u0007\u033e\u0002", + "\u0002\u1d71\u1d70\u0003\u0002\u0002\u0002\u1d71\u1d72\u0003\u0002\u0002", + "\u0002\u1d72\u1d73\u0003\u0002\u0002\u0002\u1d73\u1d74\u0007\u00c6\u0002", + "\u0002\u1d74\u1d75\u0007\u032a\u0002\u0002\u1d75\u1dc2\u0007\u0326\u0002", + "\u0002\u1d76\u1d78\u0007\u033e\u0002\u0002\u1d77\u1d76\u0003\u0002\u0002", + "\u0002\u1d77\u1d78\u0003\u0002\u0002\u0002\u1d78\u1d79\u0003\u0002\u0002", + "\u0002\u1d79\u1d7a\u0007\u001f\u0002\u0002\u1d7a\u1d7d\u0007\u032a\u0002", + "\u0002\u1d7b\u1d7e\u0007\u0322\u0002\u0002\u1d7c\u1d7e\u0005\u03c6\u01e4", + "\u0002\u1d7d\u1d7b\u0003\u0002\u0002\u0002\u1d7d\u1d7c\u0003\u0002\u0002", + "\u0002\u1d7e\u1dc2\u0003\u0002\u0002\u0002\u1d7f\u1d81\u0007\u033e\u0002", + "\u0002\u1d80\u1d7f\u0003\u0002\u0002\u0002\u1d80\u1d81\u0003\u0002\u0002", + "\u0002\u1d81\u1d82\u0003\u0002\u0002\u0002\u1d82\u1d83\u0007$\u0002", + "\u0002\u1d83\u1d86\u0007\u032a\u0002\u0002\u1d84\u1d87\u0007\u0322\u0002", + "\u0002\u1d85\u1d87\u0005\u03c6\u01e4\u0002\u1d86\u1d84\u0003\u0002\u0002", + "\u0002\u1d86\u1d85\u0003\u0002\u0002\u0002\u1d87\u1dc2\u0003\u0002\u0002", + "\u0002\u1d88\u1d8a\u0007\u033e\u0002\u0002\u1d89\u1d88\u0003\u0002\u0002", + "\u0002\u1d89\u1d8a\u0003\u0002\u0002\u0002\u1d8a\u1d8b\u0003\u0002\u0002", + "\u0002\u1d8b\u1d8c\u0007\u00bf\u0002\u0002\u1d8c\u1d8f\u0007\u032a\u0002", + "\u0002\u1d8d\u1d90\u0007\u0322\u0002\u0002\u1d8e\u1d90\u0005\u03c6\u01e4", + "\u0002\u1d8f\u1d8d\u0003\u0002\u0002\u0002\u1d8f\u1d8e\u0003\u0002\u0002", + "\u0002\u1d90\u1dc2\u0003\u0002\u0002\u0002\u1d91\u1d93\u0007\u033e\u0002", + "\u0002\u1d92\u1d91\u0003\u0002\u0002\u0002\u1d92\u1d93\u0003\u0002\u0002", + "\u0002\u1d93\u1d94\u0003\u0002\u0002\u0002\u1d94\u1dc2\tW\u0002\u0002", + "\u1d95\u1d97\u0007\u033e\u0002\u0002\u1d96\u1d95\u0003\u0002\u0002\u0002", + "\u1d96\u1d97\u0003\u0002\u0002\u0002\u1d97\u1d98\u0003\u0002\u0002\u0002", + "\u1d98\u1dc2\tX\u0002\u0002\u1d99\u1d9b\u0007\u033e\u0002\u0002\u1d9a", + "\u1d99\u0003\u0002\u0002\u0002\u1d9a\u1d9b\u0003\u0002\u0002\u0002\u1d9b", + "\u1d9c\u0003\u0002\u0002\u0002\u1d9c\u1dc2\u0007\u0115\u0002\u0002\u1d9d", + "\u1d9f\u0007\u033e\u0002\u0002\u1d9e\u1d9d\u0003\u0002\u0002\u0002\u1d9e", + "\u1d9f\u0003\u0002\u0002\u0002\u1d9f\u1da0\u0003\u0002\u0002\u0002\u1da0", + "\u1da3\u0007\u014a\u0002\u0002\u1da1\u1da2\u0007\u032a\u0002\u0002\u1da2", + "\u1da4\u0007\u0322\u0002\u0002\u1da3\u1da1\u0003\u0002\u0002\u0002\u1da3", + "\u1da4\u0003\u0002\u0002\u0002\u1da4\u1dc2\u0003\u0002\u0002\u0002\u1da5", + "\u1da7\u0007\u033e\u0002\u0002\u1da6\u1da5\u0003\u0002\u0002\u0002\u1da6", + "\u1da7\u0003\u0002\u0002\u0002\u1da7\u1da8\u0003\u0002\u0002\u0002\u1da8", + "\u1dc2\tY\u0002\u0002\u1da9\u1dab\u0007\u033e\u0002\u0002\u1daa\u1da9", + "\u0003\u0002\u0002\u0002\u1daa\u1dab\u0003\u0002\u0002\u0002\u1dab\u1dac", + "\u0003\u0002\u0002\u0002\u1dac\u1dc2\tZ\u0002\u0002\u1dad\u1daf\u0007", + "\u033e\u0002\u0002\u1dae\u1dad\u0003\u0002\u0002\u0002\u1dae\u1daf\u0003", + "\u0002\u0002\u0002\u1daf\u1db0\u0003\u0002\u0002\u0002\u1db0\u1db1\u0007", + "\u01ec\u0002\u0002\u1db1\u1db2\u0007\u033c\u0002\u0002\u1db2\u1db3\u0007", + "\u018a\u0002\u0002\u1db3\u1db4\u0007\u032a\u0002\u0002\u1db4\u1db5\t", + "[\u0002\u0002\u1db5\u1db6\u0007\u033e\u0002\u0002\u1db6\u1db7\u0007", + "\u0135\u0002\u0002\u1db7\u1db8\u0007+\u0002\u0002\u1db8\u1dbf\u0007", + "\u032a\u0002\u0002\u1db9\u1dc0\u0005\u03c6\u01e4\u0002\u1dba\u1dbb\u0007", + "\u0135\u0002\u0002\u1dbb\u1dbc\u0007\u0012\u0002\u0002\u1dbc\u1dbd\u0007", + "\u00ac\u0002\u0002\u1dbd\u1dbe\u0007\u032a\u0002\u0002\u1dbe\u1dc0\u0005", + "\u03c6\u01e4\u0002\u1dbf\u1db9\u0003\u0002\u0002\u0002\u1dbf\u1dba\u0003", + "\u0002\u0002\u0002\u1dc0\u1dc2\u0003\u0002\u0002\u0002\u1dc1\u1d28\u0003", + "\u0002\u0002\u0002\u1dc1\u1d2c\u0003\u0002\u0002\u0002\u1dc1\u1d30\u0003", + "\u0002\u0002\u0002\u1dc1\u1d34\u0003\u0002\u0002\u0002\u1dc1\u1d3d\u0003", + "\u0002\u0002\u0002\u1dc1\u1d43\u0003\u0002\u0002\u0002\u1dc1\u1d47\u0003", + "\u0002\u0002\u0002\u1dc1\u1d4b\u0003\u0002\u0002\u0002\u1dc1\u1d5c\u0003", + "\u0002\u0002\u0002\u1dc1\u1d60\u0003\u0002\u0002\u0002\u1dc1\u1d64\u0003", + "\u0002\u0002\u0002\u1dc1\u1d68\u0003\u0002\u0002\u0002\u1dc1\u1d71\u0003", + "\u0002\u0002\u0002\u1dc1\u1d77\u0003\u0002\u0002\u0002\u1dc1\u1d80\u0003", + "\u0002\u0002\u0002\u1dc1\u1d89\u0003\u0002\u0002\u0002\u1dc1\u1d92\u0003", + "\u0002\u0002\u0002\u1dc1\u1d96\u0003\u0002\u0002\u0002\u1dc1\u1d9a\u0003", + "\u0002\u0002\u0002\u1dc1\u1d9e\u0003\u0002\u0002\u0002\u1dc1\u1da6\u0003", + "\u0002\u0002\u0002\u1dc1\u1daa\u0003\u0002\u0002\u0002\u1dc1\u1dae\u0003", + "\u0002\u0002\u0002\u1dc2\u1dc5\u0003\u0002\u0002\u0002\u1dc3\u1dc1\u0003", + "\u0002\u0002\u0002\u1dc3\u1dc4\u0003\u0002\u0002\u0002\u1dc4\u1dc7\u0003", + "\u0002\u0002\u0002\u1dc5\u1dc3\u0003\u0002\u0002\u0002\u1dc6\u1d26\u0003", + "\u0002\u0002\u0002\u1dc6\u1dc7\u0003\u0002\u0002\u0002\u1dc7\u0267\u0003", + "\u0002\u0002\u0002\u1dc8\u1dc9\u0007\u001a\u0002\u0002\u1dc9\u1dca\u0007", + "\u00bb\u0002\u0002\u1dca\u1de2\u0005\u03c6\u01e4\u0002\u1dcb\u1dd0\u0007", + "\u015a\u0002\u0002\u1dcc\u1dce\u0007\u033e\u0002\u0002\u1dcd\u1dcc\u0003", + "\u0002\u0002\u0002\u1dcd\u1dce\u0003\u0002\u0002\u0002\u1dce\u1dcf\u0003", + "\u0002\u0002\u0002\u1dcf\u1dd1\u0005\u03c6\u01e4\u0002\u1dd0\u1dcd\u0003", + "\u0002\u0002\u0002\u1dd1\u1dd2\u0003\u0002\u0002\u0002\u1dd2\u1dd0\u0003", + "\u0002\u0002\u0002\u1dd2\u1dd3\u0003\u0002\u0002\u0002\u1dd3\u1de3\u0003", + "\u0002\u0002\u0002\u1dd4\u1dde\u0007\u015a\u0002\u0002\u1dd5\u1dd7\u0007", + "\u033e\u0002\u0002\u1dd6\u1dd5\u0003\u0002\u0002\u0002\u1dd6\u1dd7\u0003", + "\u0002\u0002\u0002\u1dd7\u1dd8\u0003\u0002\u0002\u0002\u1dd8\u1dd9\t", + "R\u0002\u0002\u1dd9\u1ddc\u0007\u032a\u0002\u0002\u1dda\u1ddd\u0007", + "\u0326\u0002\u0002\u1ddb\u1ddd\u0005\u03c6\u01e4\u0002\u1ddc\u1dda\u0003", + "\u0002\u0002\u0002\u1ddc\u1ddb\u0003\u0002\u0002\u0002\u1ddd\u1ddf\u0003", + "\u0002\u0002\u0002\u1dde\u1dd6\u0003\u0002\u0002\u0002\u1ddf\u1de0\u0003", + "\u0002\u0002\u0002\u1de0\u1dde\u0003\u0002\u0002\u0002\u1de0\u1de1\u0003", + "\u0002\u0002\u0002\u1de1\u1de3\u0003\u0002\u0002\u0002\u1de2\u1dcb\u0003", + "\u0002\u0002\u0002\u1de2\u1dd4\u0003\u0002\u0002\u0002\u1de3\u1e05\u0003", + "\u0002\u0002\u0002\u1de4\u1de5\u0007\u00cd\u0002\u0002\u1de5\u1dea\u0007", + "\u015a\u0002\u0002\u1de6\u1de8\u0007\u033e\u0002\u0002\u1de7\u1de6\u0003", + "\u0002\u0002\u0002\u1de7\u1de8\u0003\u0002\u0002\u0002\u1de8\u1de9\u0003", + "\u0002\u0002\u0002\u1de9\u1deb\u0005\u03c6\u01e4\u0002\u1dea\u1de7\u0003", + "\u0002\u0002\u0002\u1deb\u1dec\u0003\u0002\u0002\u0002\u1dec\u1dea\u0003", + "\u0002\u0002\u0002\u1dec\u1ded\u0003\u0002\u0002\u0002\u1ded\u1def\u0003", + "\u0002\u0002\u0002\u1dee\u1de4\u0003\u0002\u0002\u0002\u1def\u1df0\u0003", + "\u0002\u0002\u0002\u1df0\u1dee\u0003\u0002\u0002\u0002\u1df0\u1df1\u0003", + "\u0002\u0002\u0002\u1df1\u1e06\u0003\u0002\u0002\u0002\u1df2\u1df3\u0007", + "\u00cd\u0002\u0002\u1df3\u1dfd\u0007\u015a\u0002\u0002\u1df4\u1df6\u0007", + "\u033e\u0002\u0002\u1df5\u1df4\u0003\u0002\u0002\u0002\u1df5\u1df6\u0003", + "\u0002\u0002\u0002\u1df6\u1df7\u0003\u0002\u0002\u0002\u1df7\u1df8\t", + "R\u0002\u0002\u1df8\u1dfb\u0007\u032a\u0002\u0002\u1df9\u1dfc\u0007", + "\u0326\u0002\u0002\u1dfa\u1dfc\u0005\u03c6\u01e4\u0002\u1dfb\u1df9\u0003", + "\u0002\u0002\u0002\u1dfb\u1dfa\u0003\u0002\u0002\u0002\u1dfc\u1dfe\u0003", + "\u0002\u0002\u0002\u1dfd\u1df5\u0003\u0002\u0002\u0002\u1dfe\u1dff\u0003", + "\u0002\u0002\u0002\u1dff\u1dfd\u0003\u0002\u0002\u0002\u1dff\u1e00\u0003", + "\u0002\u0002\u0002\u1e00\u1e02\u0003\u0002\u0002\u0002\u1e01\u1df2\u0003", + "\u0002\u0002\u0002\u1e02\u1e03\u0003\u0002\u0002\u0002\u1e03\u1e01\u0003", + "\u0002\u0002\u0002\u1e03\u1e04\u0003\u0002\u0002\u0002\u1e04\u1e06\u0003", + "\u0002\u0002\u0002\u1e05\u1dee\u0003\u0002\u0002\u0002\u1e05\u1e01\u0003", + "\u0002\u0002\u0002\u1e05\u1e06\u0003\u0002\u0002\u0002\u1e06\u1eb4\u0003", + "\u0002\u0002\u0002\u1e07\u1eb1\u0007\u0179\u0002\u0002\u1e08\u1e0a\u0007", + "\u033e\u0002\u0002\u1e09\u1e08\u0003\u0002\u0002\u0002\u1e09\u1e0a\u0003", + "\u0002\u0002\u0002\u1e0a\u1e0b\u0003\u0002\u0002\u0002\u1e0b\u1eb0\u0007", + "`\u0002\u0002\u1e0c\u1e0e\u0007\u033e\u0002\u0002\u1e0d\u1e0c\u0003", + "\u0002\u0002\u0002\u1e0d\u1e0e\u0003\u0002\u0002\u0002\u1e0e\u1e0f\u0003", + "\u0002\u0002\u0002\u1e0f\u1eb0\u0007H\u0002\u0002\u1e10\u1e12\u0007", + "\u033e\u0002\u0002\u1e11\u1e10\u0003\u0002\u0002\u0002\u1e11\u1e12\u0003", + "\u0002\u0002\u0002\u1e12\u1e13\u0003\u0002\u0002\u0002\u1e13\u1eb0\t", + "S\u0002\u0002\u1e14\u1e16\u0007\u033e\u0002\u0002\u1e15\u1e14\u0003", + "\u0002\u0002\u0002\u1e15\u1e16\u0003\u0002\u0002\u0002\u1e16\u1e17\u0003", + "\u0002\u0002\u0002\u1e17\u1e18\u0007\u01db\u0002\u0002\u1e18\u1e1b\u0007", + "\u032a\u0002\u0002\u1e19\u1e1c\u0007\u0326\u0002\u0002\u1e1a\u1e1c\u0005", + "\u03c6\u01e4\u0002\u1e1b\u1e19\u0003\u0002\u0002\u0002\u1e1b\u1e1a\u0003", + "\u0002\u0002\u0002\u1e1c\u1eb0\u0003\u0002\u0002\u0002\u1e1d\u1e1f\u0007", + "\u033e\u0002\u0002\u1e1e\u1e1d\u0003\u0002\u0002\u0002\u1e1e\u1e1f\u0003", + "\u0002\u0002\u0002\u1e1f\u1e20\u0003\u0002\u0002\u0002\u1e20\u1e21\u0007", + "\u025d\u0002\u0002\u1e21\u1e22\u0007\u032a\u0002\u0002\u1e22\u1eb0\u0005", + "\u03c6\u01e4\u0002\u1e23\u1e25\u0007\u033e\u0002\u0002\u1e24\u1e23\u0003", + "\u0002\u0002\u0002\u1e24\u1e25\u0003\u0002\u0002\u0002\u1e25\u1e26\u0003", + "\u0002\u0002\u0002\u1e26\u1eb0\u0007\u01c4\u0002\u0002\u1e27\u1e29\u0007", + "\u033e\u0002\u0002\u1e28\u1e27\u0003\u0002\u0002\u0002\u1e28\u1e29\u0003", + "\u0002\u0002\u0002\u1e29\u1e2a\u0003\u0002\u0002\u0002\u1e2a\u1eb0\u0007", + "\u0084\u0002\u0002\u1e2b\u1e2d\u0007\u033e\u0002\u0002\u1e2c\u1e2b\u0003", + "\u0002\u0002\u0002\u1e2c\u1e2d\u0003\u0002\u0002\u0002\u1e2d\u1e3a\u0003", + "\u0002\u0002\u0002\u1e2e\u1e2f\u0007x\u0002\u0002\u1e2f\u1e32\u0007", + "\u032a\u0002\u0002\u1e30\u1e33\u0007\u0326\u0002\u0002\u1e31\u1e33\u0005", + "\u03c6\u01e4\u0002\u1e32\u1e30\u0003\u0002\u0002\u0002\u1e32\u1e31\u0003", + "\u0002\u0002\u0002\u1e33\u1e3b\u0003\u0002\u0002\u0002\u1e34\u1e35\u0007", + "\u0119\u0002\u0002\u1e35\u1e38\u0007\u032a\u0002\u0002\u1e36\u1e39\u0007", + "\u0322\u0002\u0002\u1e37\u1e39\u0005\u03c6\u01e4\u0002\u1e38\u1e36\u0003", + "\u0002\u0002\u0002\u1e38\u1e37\u0003\u0002\u0002\u0002\u1e39\u1e3b\u0003", + "\u0002\u0002\u0002\u1e3a\u1e2e\u0003\u0002\u0002\u0002\u1e3a\u1e34\u0003", + "\u0002\u0002\u0002\u1e3b\u1eb0\u0003\u0002\u0002\u0002\u1e3c\u1e3e\u0007", + "\u033e\u0002\u0002\u1e3d\u1e3c\u0003\u0002\u0002\u0002\u1e3d\u1e3e\u0003", + "\u0002\u0002\u0002\u1e3e\u1e3f\u0003\u0002\u0002\u0002\u1e3f\u1eb0\t", + "T\u0002\u0002\u1e40\u1e42\u0007\u033e\u0002\u0002\u1e41\u1e40\u0003", + "\u0002\u0002\u0002\u1e41\u1e42\u0003\u0002\u0002\u0002\u1e42\u1e43\u0003", + "\u0002\u0002\u0002\u1e43\u1eb0\tU\u0002\u0002\u1e44\u1e46\u0007\u033e", + "\u0002\u0002\u1e45\u1e44\u0003\u0002\u0002\u0002\u1e45\u1e46\u0003\u0002", + "\u0002\u0002\u1e46\u1e47\u0003\u0002\u0002\u0002\u1e47\u1eb0\tV\u0002", + "\u0002\u1e48\u1e4a\u0007\u033e\u0002\u0002\u1e49\u1e48\u0003\u0002\u0002", + "\u0002\u1e49\u1e4a\u0003\u0002\u0002\u0002\u1e4a\u1e4b\u0003\u0002\u0002", + "\u0002\u1e4b\u1e4c\u0007\u00c5\u0002\u0002\u1e4c\u1e4f\u0007\u032a\u0002", + "\u0002\u1e4d\u1e50\u0007\u0326\u0002\u0002\u1e4e\u1e50\u0005\u03c6\u01e4", + "\u0002\u1e4f\u1e4d\u0003\u0002\u0002\u0002\u1e4f\u1e4e\u0003\u0002\u0002", + "\u0002\u1e50\u1eb0\u0003\u0002\u0002\u0002\u1e51\u1e53\u0007\u033e\u0002", + "\u0002\u1e52\u1e51\u0003\u0002\u0002\u0002\u1e52\u1e53\u0003\u0002\u0002", + "\u0002\u1e53\u1e54\u0003\u0002\u0002\u0002\u1e54\u1e55\u0007\u00c6\u0002", + "\u0002\u1e55\u1e56\u0007\u032a\u0002\u0002\u1e56\u1eb0\u0007\u0326\u0002", + "\u0002\u1e57\u1e59\u0007\u033e\u0002\u0002\u1e58\u1e57\u0003\u0002\u0002", + "\u0002\u1e58\u1e59\u0003\u0002\u0002\u0002\u1e59\u1e5a\u0003\u0002\u0002", + "\u0002\u1e5a\u1e5b\u0007\u001f\u0002\u0002\u1e5b\u1e5e\u0007\u032a\u0002", + "\u0002\u1e5c\u1e5f\u0007\u0322\u0002\u0002\u1e5d\u1e5f\u0005\u03c6\u01e4", + "\u0002\u1e5e\u1e5c\u0003\u0002\u0002\u0002\u1e5e\u1e5d\u0003\u0002\u0002", + "\u0002\u1e5f\u1eb0\u0003\u0002\u0002\u0002\u1e60\u1e62\u0007\u033e\u0002", + "\u0002\u1e61\u1e60\u0003\u0002\u0002\u0002\u1e61\u1e62\u0003\u0002\u0002", + "\u0002\u1e62\u1e63\u0003\u0002\u0002\u0002\u1e63\u1e64\u0007$\u0002", + "\u0002\u1e64\u1e67\u0007\u032a\u0002\u0002\u1e65\u1e68\u0007\u0322\u0002", + "\u0002\u1e66\u1e68\u0005\u03c6\u01e4\u0002\u1e67\u1e65\u0003\u0002\u0002", + "\u0002\u1e67\u1e66\u0003\u0002\u0002\u0002\u1e68\u1eb0\u0003\u0002\u0002", + "\u0002\u1e69\u1e6b\u0007\u033e\u0002\u0002\u1e6a\u1e69\u0003\u0002\u0002", + "\u0002\u1e6a\u1e6b\u0003\u0002\u0002\u0002\u1e6b\u1e6c\u0003\u0002\u0002", + "\u0002\u1e6c\u1e6d\u0007\u00bf\u0002\u0002\u1e6d\u1e70\u0007\u032a\u0002", + "\u0002\u1e6e\u1e71\u0007\u0322\u0002\u0002\u1e6f\u1e71\u0005\u03c6\u01e4", + "\u0002\u1e70\u1e6e\u0003\u0002\u0002\u0002\u1e70\u1e6f\u0003\u0002\u0002", + "\u0002\u1e71\u1eb0\u0003\u0002\u0002\u0002\u1e72\u1e74\u0007\u033e\u0002", + "\u0002\u1e73\u1e72\u0003\u0002\u0002\u0002\u1e73\u1e74\u0003\u0002\u0002", + "\u0002\u1e74\u1e75\u0003\u0002\u0002\u0002\u1e75\u1eb0\tW\u0002\u0002", + "\u1e76\u1e78\u0007\u033e\u0002\u0002\u1e77\u1e76\u0003\u0002\u0002\u0002", + "\u1e77\u1e78\u0003\u0002\u0002\u0002\u1e78\u1e79\u0003\u0002\u0002\u0002", + "\u1e79\u1eb0\tX\u0002\u0002\u1e7a\u1e7c\u0007\u033e\u0002\u0002\u1e7b", + "\u1e7a\u0003\u0002\u0002\u0002\u1e7b\u1e7c\u0003\u0002\u0002\u0002\u1e7c", + "\u1e7d\u0003\u0002\u0002\u0002\u1e7d\u1eb0\u0007\u0115\u0002\u0002\u1e7e", + "\u1e80\u0007\u033e\u0002\u0002\u1e7f\u1e7e\u0003\u0002\u0002\u0002\u1e7f", + "\u1e80\u0003\u0002\u0002\u0002\u1e80\u1e81\u0003\u0002\u0002\u0002\u1e81", + "\u1e84\u0007\u014a\u0002\u0002\u1e82\u1e83\u0007\u032a\u0002\u0002\u1e83", + "\u1e85\u0007\u0322\u0002\u0002\u1e84\u1e82\u0003\u0002\u0002\u0002\u1e84", + "\u1e85\u0003\u0002\u0002\u0002\u1e85\u1eb0\u0003\u0002\u0002\u0002\u1e86", + "\u1e88\u0007\u033e\u0002\u0002\u1e87\u1e86\u0003\u0002\u0002\u0002\u1e87", + "\u1e88\u0003\u0002\u0002\u0002\u1e88\u1e89\u0003\u0002\u0002\u0002\u1e89", + "\u1eb0\tY\u0002\u0002\u1e8a\u1e8c\u0007\u033e\u0002\u0002\u1e8b\u1e8a", + "\u0003\u0002\u0002\u0002\u1e8b\u1e8c\u0003\u0002\u0002\u0002\u1e8c\u1e8d", + "\u0003\u0002\u0002\u0002\u1e8d\u1eb0\tZ\u0002\u0002\u1e8e\u1e90\u0007", + "\u033e\u0002\u0002\u1e8f\u1e8e\u0003\u0002\u0002\u0002\u1e8f\u1e90\u0003", + "\u0002\u0002\u0002\u1e90\u1e95\u0003\u0002\u0002\u0002\u1e91\u1e96\u0007", + "\u026b\u0002\u0002\u1e92\u1e93\u0007\u02dc\u0002\u0002\u1e93\u1e94\u0007", + "\u032a\u0002\u0002\u1e94\u1e96\u0007\u0326\u0002\u0002\u1e95\u1e91\u0003", + "\u0002\u0002\u0002\u1e95\u1e92\u0003\u0002\u0002\u0002\u1e96\u1eb0\u0003", + "\u0002\u0002\u0002\u1e97\u1e99\u0007\u033e\u0002\u0002\u1e98\u1e97\u0003", + "\u0002\u0002\u0002\u1e98\u1e99\u0003\u0002\u0002\u0002\u1e99\u1e9a\u0003", + "\u0002\u0002\u0002\u1e9a\u1eb0\u0007\u0264\u0002\u0002\u1e9b\u1e9d\u0007", + "\u033e\u0002\u0002\u1e9c\u1e9b\u0003\u0002\u0002\u0002\u1e9c\u1e9d\u0003", + "\u0002\u0002\u0002\u1e9d\u1e9e\u0003\u0002\u0002\u0002\u1e9e\u1e9f\u0007", + "\u01ec\u0002\u0002\u1e9f\u1ea0\u0007\u033c\u0002\u0002\u1ea0\u1ea1\u0007", + "\u018a\u0002\u0002\u1ea1\u1ea2\u0007\u032a\u0002\u0002\u1ea2\u1ea3\t", + "[\u0002\u0002\u1ea3\u1ea4\u0007\u033e\u0002\u0002\u1ea4\u1ea5\u0007", + "\u0135\u0002\u0002\u1ea5\u1ea6\u0007+\u0002\u0002\u1ea6\u1ead\u0007", + "\u032a\u0002\u0002\u1ea7\u1eae\u0005\u03c6\u01e4\u0002\u1ea8\u1ea9\u0007", + "\u0135\u0002\u0002\u1ea9\u1eaa\u0007\u0012\u0002\u0002\u1eaa\u1eab\u0007", + "\u00ac\u0002\u0002\u1eab\u1eac\u0007\u032a\u0002\u0002\u1eac\u1eae\u0005", + "\u03c6\u01e4\u0002\u1ead\u1ea7\u0003\u0002\u0002\u0002\u1ead\u1ea8\u0003", + "\u0002\u0002\u0002\u1eae\u1eb0\u0003\u0002\u0002\u0002\u1eaf\u1e09\u0003", + "\u0002\u0002\u0002\u1eaf\u1e0d\u0003\u0002\u0002\u0002\u1eaf\u1e11\u0003", + "\u0002\u0002\u0002\u1eaf\u1e15\u0003\u0002\u0002\u0002\u1eaf\u1e1e\u0003", + "\u0002\u0002\u0002\u1eaf\u1e24\u0003\u0002\u0002\u0002\u1eaf\u1e28\u0003", + "\u0002\u0002\u0002\u1eaf\u1e2c\u0003\u0002\u0002\u0002\u1eaf\u1e3d\u0003", + "\u0002\u0002\u0002\u1eaf\u1e41\u0003\u0002\u0002\u0002\u1eaf\u1e45\u0003", + "\u0002\u0002\u0002\u1eaf\u1e49\u0003\u0002\u0002\u0002\u1eaf\u1e52\u0003", + "\u0002\u0002\u0002\u1eaf\u1e58\u0003\u0002\u0002\u0002\u1eaf\u1e61\u0003", + "\u0002\u0002\u0002\u1eaf\u1e6a\u0003\u0002\u0002\u0002\u1eaf\u1e73\u0003", + "\u0002\u0002\u0002\u1eaf\u1e77\u0003\u0002\u0002\u0002\u1eaf\u1e7b\u0003", + "\u0002\u0002\u0002\u1eaf\u1e7f\u0003\u0002\u0002\u0002\u1eaf\u1e87\u0003", + "\u0002\u0002\u0002\u1eaf\u1e8b\u0003\u0002\u0002\u0002\u1eaf\u1e8f\u0003", + "\u0002\u0002\u0002\u1eaf\u1e98\u0003\u0002\u0002\u0002\u1eaf\u1e9c\u0003", + "\u0002\u0002\u0002\u1eb0\u1eb3\u0003\u0002\u0002\u0002\u1eb1\u1eaf\u0003", + "\u0002\u0002\u0002\u1eb1\u1eb2\u0003\u0002\u0002\u0002\u1eb2\u1eb5\u0003", + "\u0002\u0002\u0002\u1eb3\u1eb1\u0003\u0002\u0002\u0002\u1eb4\u1e07\u0003", + "\u0002\u0002\u0002\u1eb4\u1eb5\u0003\u0002\u0002\u0002\u1eb5\u0269\u0003", + "\u0002\u0002\u0002\u1eb6\u1eb7\u0007\u001a\u0002\u0002\u1eb7\u1eb8\u0007", + "+\u0002\u0002\u1eb8\u1eb9\u0005\u03c6\u01e4\u0002\u1eb9\u1eba\u0007", + "\u015a\u0002\u0002\u1eba\u1ebb\u0007\u0081\u0002\u0002\u1ebb\u1ebc\u0007", + "\u032a\u0002\u0002\u1ebc\u1edc\u0007\u0326\u0002\u0002\u1ebd\u1ebe\u0007", + "\u0179\u0002\u0002\u1ebe\u1ebf\u0007\u028c\u0002\u0002\u1ebf\u1ec0\u0007", + "\u00ac\u0002\u0002\u1ec0\u1ed7\u0007\u033c\u0002\u0002\u1ec1\u1ec3\u0007", + "\u033e\u0002\u0002\u1ec2\u1ec1\u0003\u0002\u0002\u0002\u1ec2\u1ec3\u0003", + "\u0002\u0002\u0002\u1ec3\u1ec4\u0003\u0002\u0002\u0002\u1ec4\u1ec5\u0007", + "\u0081\u0002\u0002\u1ec5\u1ec6\u0007\u032a\u0002\u0002\u1ec6\u1ed8\u0007", + "\u0326\u0002\u0002\u1ec7\u1ec9\u0007\u033e\u0002\u0002\u1ec8\u1ec7\u0003", + "\u0002\u0002\u0002\u1ec8\u1ec9\u0003\u0002\u0002\u0002\u1ec9\u1eca\u0003", + "\u0002\u0002\u0002\u1eca\u1ecb\u0007\u01ec\u0002\u0002\u1ecb\u1ecc\u0007", + "&\u0002\u0002\u1ecc\u1ecd\u0007\u00f4\u0002\u0002\u1ecd\u1ece\u0007", + "\u032a\u0002\u0002\u1ece\u1ed8\u0007\u0326\u0002\u0002\u1ecf\u1ed1\u0007", + "\u033e\u0002\u0002\u1ed0\u1ecf\u0003\u0002\u0002\u0002\u1ed0\u1ed1\u0003", + "\u0002\u0002\u0002\u1ed1\u1ed2\u0003\u0002\u0002\u0002\u1ed2\u1ed3\u0007", + "\u01d1\u0002\u0002\u1ed3\u1ed4\u0007&\u0002\u0002\u1ed4\u1ed5\u0007", + "\u00f4\u0002\u0002\u1ed5\u1ed6\u0007\u032a\u0002\u0002\u1ed6\u1ed8\u0007", + "\u0326\u0002\u0002\u1ed7\u1ec2\u0003\u0002\u0002\u0002\u1ed7\u1ec8\u0003", + "\u0002\u0002\u0002\u1ed7\u1ed0\u0003\u0002\u0002\u0002\u1ed8\u1ed9\u0003", + "\u0002\u0002\u0002\u1ed9\u1ed7\u0003\u0002\u0002\u0002\u1ed9\u1eda\u0003", + "\u0002\u0002\u0002\u1eda\u1edb\u0003\u0002\u0002\u0002\u1edb\u1edd\u0007", + "\u033d\u0002\u0002\u1edc\u1ebd\u0003\u0002\u0002\u0002\u1edc\u1edd\u0003", + "\u0002\u0002\u0002\u1edd\u026b\u0003\u0002\u0002\u0002\u1ede\u1edf\u0007", + "\u001a\u0002\u0002\u1edf\u1ee0\u0007\u00bd\u0002\u0002\u1ee0\u1ee1\u0007", + "\u00ac\u0002\u0002\u1ee1\u1ee2\u0007\u015a\u0002\u0002\u1ee2\u1ee3\u0007", + "\u0081\u0002\u0002\u1ee3\u1ee4\u0007\u032a\u0002\u0002\u1ee4\u1ee5\u0007", + "\u0326\u0002\u0002\u1ee5\u1ee6\u0007\u01ec\u0002\u0002\u1ee6\u1ee7\u0007", + "&\u0002\u0002\u1ee7\u1ee8\u0007\u00f4\u0002\u0002\u1ee8\u1ee9\u0007", + "\u032a\u0002\u0002\u1ee9\u1eea\u0007\u0326\u0002\u0002\u1eea\u026d\u0003", + "\u0002\u0002\u0002\u1eeb\u1eec\u0007\u001a\u0002\u0002\u1eec\u1eed\u0007", + "\u0136\u0002\u0002\u1eed\u1eee\u0007\u00bd\u0002\u0002\u1eee\u1eef\u0007", + "\u00ac\u0002\u0002\u1eef\u1ef0\u0007\u015a\u0002\u0002\u1ef0\u1ef1\u0007", + "\u0081\u0002\u0002\u1ef1\u1ef2\u0007\u032a\u0002\u0002\u1ef2\u1ef3\u0007", + "\u0326\u0002\u0002\u1ef3\u1ef4\u0007\u01ec\u0002\u0002\u1ef4\u1ef5\u0007", + "&\u0002\u0002\u1ef5\u1ef6\u0007\u00f4\u0002\u0002\u1ef6\u1ef7\u0007", + "\u032a\u0002\u0002\u1ef7\u1ef8\u0007\u0326\u0002\u0002\u1ef8\u026f\u0003", + "\u0002\u0002\u0002\u1ef9\u1efd\u0007\u00af\u0002\u0002\u1efa\u1efe\u0005", + "\u0272\u013a\u0002\u1efb\u1efe\u0005\u0274\u013b\u0002\u1efc\u1efe\u0005", + "\u0276\u013c\u0002\u1efd\u1efa\u0003\u0002\u0002\u0002\u1efd\u1efb\u0003", + "\u0002\u0002\u0002\u1efd\u1efc\u0003\u0002\u0002\u0002\u1efe\u0271\u0003", + "\u0002\u0002\u0002\u1eff\u1f02\t\u0018\u0002\u0002\u1f00\u1f02\u0007", + "\u0307\u0002\u0002\u1f01\u1eff\u0003\u0002\u0002\u0002\u1f01\u1f00\u0003", + "\u0002\u0002\u0002\u1f02\u1f05\u0003\u0002\u0002\u0002\u1f03\u1f04\u0007", + "\u0179\u0002\u0002\u1f04\u1f06\u0007\u02e1\u0002\u0002\u1f05\u1f03\u0003", + "\u0002\u0002\u0002\u1f05\u1f06\u0003\u0002\u0002\u0002\u1f06\u0273\u0003", + "\u0002\u0002\u0002\u1f07\u1f08\u0007\u0293\u0002\u0002\u1f08\u1f09\u0007", + "\u00dd\u0002\u0002\u1f09\u1f0c\u0007\u02e8\u0002\u0002\u1f0a\u1f0d\u0007", + "\u0006\u0002\u0002\u1f0b\u1f0d\u0007\u0322\u0002\u0002\u1f0c\u1f0a\u0003", + "\u0002\u0002\u0002\u1f0c\u1f0b\u0003\u0002\u0002\u0002\u1f0d\u0275\u0003", + "\u0002\u0002\u0002\u1f0e\u1f0f\u0007\u014a\u0002\u0002\u1f0f\u1f10\u0007", + "\u0226\u0002\u0002\u1f10\u1f11\u0007\u0322\u0002\u0002\u1f11\u0277\u0003", + "\u0002\u0002\u0002\u1f12\u1f13\u0007v\u0002\u0002\u1f13\u1f14\u0005", + "\u027a\u013e\u0002\u1f14\u0279\u0003\u0002\u0002\u0002\u1f15\u1f16\u0007", + "\u0321\u0002\u0002\u1f16\u1f18\u0007\u032a\u0002\u0002\u1f17\u1f15\u0003", + "\u0002\u0002\u0002\u1f17\u1f18\u0003\u0002\u0002\u0002\u1f18\u1f1b\u0003", + "\u0002\u0002\u0002\u1f19\u1f1c\u0005\u0396\u01cc\u0002\u1f1a\u1f1c\u0005", + "\u02d8\u016d\u0002\u1f1b\u1f19\u0003\u0002\u0002\u0002\u1f1b\u1f1a\u0003", + "\u0002\u0002\u0002\u1f1c\u1f25\u0003\u0002\u0002\u0002\u1f1d\u1f22\u0005", + "\u027c\u013f\u0002\u1f1e\u1f1f\u0007\u033e\u0002\u0002\u1f1f\u1f21\u0005", + "\u027c\u013f\u0002\u1f20\u1f1e\u0003\u0002\u0002\u0002\u1f21\u1f24\u0003", + "\u0002\u0002\u0002\u1f22\u1f20\u0003\u0002\u0002\u0002\u1f22\u1f23\u0003", + "\u0002\u0002\u0002\u1f23\u1f26\u0003\u0002\u0002\u0002\u1f24\u1f22\u0003", + "\u0002\u0002\u0002\u1f25\u1f1d\u0003\u0002\u0002\u0002\u1f25\u1f26\u0003", + "\u0002\u0002\u0002\u1f26\u1f28\u0003\u0002\u0002\u0002\u1f27\u1f29\u0007", + "\u033f\u0002\u0002\u1f28\u1f27\u0003\u0002\u0002\u0002\u1f28\u1f29\u0003", + "\u0002\u0002\u0002\u1f29\u1f40\u0003\u0002\u0002\u0002\u1f2a\u1f2b\u0007", + "\u033c\u0002\u0002\u1f2b\u1f30\u0005\u027e\u0140\u0002\u1f2c\u1f2d\u0007", + "\u0344\u0002\u0002\u1f2d\u1f2f\u0005\u027e\u0140\u0002\u1f2e\u1f2c\u0003", + "\u0002\u0002\u0002\u1f2f\u1f32\u0003\u0002\u0002\u0002\u1f30\u1f2e\u0003", + "\u0002\u0002\u0002\u1f30\u1f31\u0003\u0002\u0002\u0002\u1f31\u1f33\u0003", + "\u0002\u0002\u0002\u1f32\u1f30\u0003\u0002\u0002\u0002\u1f33\u1f3a\u0007", + "\u033d\u0002\u0002\u1f34\u1f36\u0007\u0010\u0002\u0002\u1f35\u1f34\u0003", + "\u0002\u0002\u0002\u1f35\u1f36\u0003\u0002\u0002\u0002\u1f36\u1f37\u0003", + "\u0002\u0002\u0002\u1f37\u1f38\t\\\u0002\u0002\u1f38\u1f39\u0007\u032a", + "\u0002\u0002\u1f39\u1f3b\u0007\u0326\u0002\u0002\u1f3a\u1f35\u0003\u0002", + "\u0002\u0002\u1f3a\u1f3b\u0003\u0002\u0002\u0002\u1f3b\u1f3d\u0003\u0002", + "\u0002\u0002\u1f3c\u1f3e\u0007\u033f\u0002\u0002\u1f3d\u1f3c\u0003\u0002", + "\u0002\u0002\u1f3d\u1f3e\u0003\u0002\u0002\u0002\u1f3e\u1f40\u0003\u0002", + "\u0002\u0002\u1f3f\u1f17\u0003\u0002\u0002\u0002\u1f3f\u1f2a\u0003\u0002", + "\u0002\u0002\u1f40\u027b\u0003\u0002\u0002\u0002\u1f41\u1f42\u0007\u0321", + "\u0002\u0002\u1f42\u1f44\u0007\u032a\u0002\u0002\u1f43\u1f41\u0003\u0002", + "\u0002\u0002\u1f43\u1f44\u0003\u0002\u0002\u0002\u1f44\u1f4e\u0003\u0002", + "\u0002\u0002\u1f45\u1f48\u0005\u02d6\u016c\u0002\u1f46\u1f48\u0005\u03c6", + "\u01e4\u0002\u1f47\u1f45\u0003\u0002\u0002\u0002\u1f47\u1f46\u0003\u0002", + "\u0002\u0002\u1f48\u1f4a\u0003\u0002\u0002\u0002\u1f49\u1f4b\t]\u0002", + "\u0002\u1f4a\u1f49\u0003\u0002\u0002\u0002\u1f4a\u1f4b\u0003\u0002\u0002", + "\u0002\u1f4b\u1f4f\u0003\u0002\u0002\u0002\u1f4c\u1f4f\u0007Y\u0002", + "\u0002\u1f4d\u1f4f\u0007\u00df\u0002\u0002\u1f4e\u1f47\u0003\u0002\u0002", + "\u0002\u1f4e\u1f4c\u0003\u0002\u0002\u0002\u1f4e\u1f4d\u0003\u0002\u0002", + "\u0002\u1f4f\u027d\u0003\u0002\u0002\u0002\u1f50\u1f51\t\u0003\u0002", + "\u0002\u1f51\u027f\u0003\u0002\u0002\u0002\u1f52\u1f54\u0005\u02ae\u0158", + "\u0002\u1f53\u1f55\u0007\u033f\u0002\u0002\u1f54\u1f53\u0003\u0002\u0002", + "\u0002\u1f54\u1f55\u0003\u0002\u0002\u0002\u1f55\u1f8e\u0003\u0002\u0002", + "\u0002\u1f56\u1f62\u0007\u0091\u0002\u0002\u1f57\u1f59\u0007\u0006\u0002", + "\u0002\u1f58\u1f5a\u0007\u028e\u0002\u0002\u1f59\u1f58\u0003\u0002\u0002", + "\u0002\u1f59\u1f5a\u0003\u0002\u0002\u0002\u1f5a\u1f63\u0003\u0002\u0002", + "\u0002\u1f5b\u1f60\u0005\u029a\u014e\u0002\u1f5c\u1f5d\u0007\u033c\u0002", + "\u0002\u1f5d\u1f5e\u0005\u039e\u01d0\u0002\u1f5e\u1f5f\u0007\u033d\u0002", + "\u0002\u1f5f\u1f61\u0003\u0002\u0002\u0002\u1f60\u1f5c\u0003\u0002\u0002", + "\u0002\u1f60\u1f61\u0003\u0002\u0002\u0002\u1f61\u1f63\u0003\u0002\u0002", + "\u0002\u1f62\u1f57\u0003\u0002\u0002\u0002\u1f62\u1f5b\u0003\u0002\u0002", + "\u0002\u1f63\u1f66\u0003\u0002\u0002\u0002\u1f64\u1f65\u0007\u00e5\u0002", + "\u0002\u1f65\u1f67\u0005\u038e\u01c8\u0002\u1f66\u1f64\u0003\u0002\u0002", + "\u0002\u1f66\u1f67\u0003\u0002\u0002\u0002\u1f67\u1f68\u0003\u0002\u0002", + "\u0002\u1f68\u1f69\u0007\u015a\u0002\u0002\u1f69\u1f6e\u0005\u03c6\u01e4", + "\u0002\u1f6a\u1f6b\u0007\u033e\u0002\u0002\u1f6b\u1f6d\u0005\u03c6\u01e4", + "\u0002\u1f6c\u1f6a\u0003\u0002\u0002\u0002\u1f6d\u1f70\u0003\u0002\u0002", + "\u0002\u1f6e\u1f6c\u0003\u0002\u0002\u0002\u1f6e\u1f6f\u0003\u0002\u0002", + "\u0002\u1f6f\u1f74\u0003\u0002\u0002\u0002\u1f70\u1f6e\u0003\u0002\u0002", + "\u0002\u1f71\u1f72\u0007\u0179\u0002\u0002\u1f72\u1f73\u0007\u0091\u0002", + "\u0002\u1f73\u1f75\u0007\u00ec\u0002\u0002\u1f74\u1f71\u0003\u0002\u0002", + "\u0002\u1f74\u1f75\u0003\u0002\u0002\u0002\u1f75\u1f78\u0003\u0002\u0002", + "\u0002\u1f76\u1f77\u0007\u0010\u0002\u0002\u1f77\u1f79\u0005\u03c6\u01e4", + "\u0002\u1f78\u1f76\u0003\u0002\u0002\u0002\u1f78\u1f79\u0003\u0002\u0002", + "\u0002\u1f79\u1f7b\u0003\u0002\u0002\u0002\u1f7a\u1f7c\u0007\u033f\u0002", + "\u0002\u1f7b\u1f7a\u0003\u0002\u0002\u0002\u1f7b\u1f7c\u0003\u0002\u0002", + "\u0002\u1f7c\u1f8e\u0003\u0002\u0002\u0002\u1f7d\u1f84\u0007\u011c\u0002", + "\u0002\u1f7e\u1f7f\u0007\u033c\u0002\u0002\u1f7f\u1f80\u0007\u0179\u0002", + "\u0002\u1f80\u1f81\u0007\u01bd\u0002\u0002\u1f81\u1f82\u0007\u032a\u0002", + "\u0002\u1f82\u1f83\u0007\u0321\u0002\u0002\u1f83\u1f85\u0007\u033d\u0002", + "\u0002\u1f84\u1f7e\u0003\u0002\u0002\u0002\u1f84\u1f85\u0003\u0002\u0002", + "\u0002\u1f85\u1f87\u0003\u0002\u0002\u0002\u1f86\u1f88\u0007\u033f\u0002", + "\u0002\u1f87\u1f86\u0003\u0002\u0002\u0002\u1f87\u1f88\u0003\u0002\u0002", + "\u0002\u1f88\u1f8e\u0003\u0002\u0002\u0002\u1f89\u1f8e\u0005\u028c\u0147", + "\u0002\u1f8a\u1f8e\u0005\u028e\u0148\u0002\u1f8b\u1f8e\u0005\u0290\u0149", + "\u0002\u1f8c\u1f8e\u0005\u0282\u0142\u0002\u1f8d\u1f52\u0003\u0002\u0002", + "\u0002\u1f8d\u1f56\u0003\u0002\u0002\u0002\u1f8d\u1f7d\u0003\u0002\u0002", + "\u0002\u1f8d\u1f89\u0003\u0002\u0002\u0002\u1f8d\u1f8a\u0003\u0002\u0002", + "\u0002\u1f8d\u1f8b\u0003\u0002\u0002\u0002\u1f8d\u1f8c\u0003\u0002\u0002", + "\u0002\u1f8e\u0281\u0003\u0002\u0002\u0002\u1f8f\u1f90\u0007I\u0002", + "\u0002\u1f90\u1f91\u0007+\u0002\u0002\u1f91\u1f94\u0005\u03c6\u01e4", + "\u0002\u1f92\u1f93\u0007\u0014\u0002\u0002\u1f93\u1f95\u0005\u03c6\u01e4", + "\u0002\u1f94\u1f92\u0003\u0002\u0002\u0002\u1f94\u1f95\u0003\u0002\u0002", + "\u0002\u1f95\u1f99\u0003\u0002\u0002\u0002\u1f96\u1f97\u0007\u008b\u0002", + "\u0002\u1f97\u1f9a\u0005\u0284\u0143\u0002\u1f98\u1f9a\u0005\u0288\u0145", + "\u0002\u1f99\u1f96\u0003\u0002\u0002\u0002\u1f99\u1f98\u0003\u0002\u0002", + "\u0002\u1f9a\u1fa1\u0003\u0002\u0002\u0002\u1f9b\u1f9c\u0007\u0182\u0002", + "\u0002\u1f9c\u1f9d\u0007\u0085\u0002\u0002\u1f9d\u1f9e\u0007\u001c\u0002", + "\u0002\u1f9e\u1f9f\u0007\u01de\u0002\u0002\u1f9f\u1fa0\u0007\u032a\u0002", + "\u0002\u1fa0\u1fa2\t\t\u0002\u0002\u1fa1\u1f9b\u0003\u0002\u0002\u0002", + "\u1fa1\u1fa2\u0003\u0002\u0002\u0002\u1fa2\u0283\u0003\u0002\u0002\u0002", + "\u1fa3\u1fa4\u0007\u0195\u0002\u0002\u1fa4\u1fb5\u0005\u03c6\u01e4\u0002", + "\u1fa5\u1fa7\u0007\u01f0\u0002\u0002\u1fa6\u1fa5\u0003\u0002\u0002\u0002", + "\u1fa6\u1fa7\u0003\u0002\u0002\u0002\u1fa7\u1fa8\u0003\u0002\u0002\u0002", + "\u1fa8\u1fa9\u0007\u0081\u0002\u0002\u1fa9\u1faa\u0007\u032a\u0002\u0002", + "\u1faa\u1fb2\u0007\u0326\u0002\u0002\u1fab\u1fac\u0007\u0179\u0002\u0002", + "\u1fac\u1fad\u0007\u028c\u0002\u0002\u1fad\u1fae\u0007\u00ac\u0002\u0002", + "\u1fae\u1faf\u0007\u033c\u0002\u0002\u1faf\u1fb0\u0005\u0286\u0144\u0002", + "\u1fb0\u1fb1\u0007\u033d\u0002\u0002\u1fb1\u1fb3\u0003\u0002\u0002\u0002", + "\u1fb2\u1fab\u0003\u0002\u0002\u0002\u1fb2\u1fb3\u0003\u0002\u0002\u0002", + "\u1fb3\u1fb5\u0003\u0002\u0002\u0002\u1fb4\u1fa3\u0003\u0002\u0002\u0002", + "\u1fb4\u1fa6\u0003\u0002\u0002\u0002\u1fb5\u0285\u0003\u0002\u0002\u0002", + "\u1fb6\u1fb7\t^\u0002\u0002\u1fb7\u1fb8\u0007\u032a\u0002\u0002\u1fb8", + "\u1fbf\u0007\u0326\u0002\u0002\u1fb9\u1fba\u0007\u033e\u0002\u0002\u1fba", + "\u1fbb\t_\u0002\u0002\u1fbb\u1fbc\u0007&\u0002\u0002\u1fbc\u1fbd\u0007", + "\u00f4\u0002\u0002\u1fbd\u1fbe\u0007\u032a\u0002\u0002\u1fbe\u1fc0\u0007", + "\u0326\u0002\u0002\u1fbf\u1fb9\u0003\u0002\u0002\u0002\u1fbf\u1fc0\u0003", + "\u0002\u0002\u0002\u1fc0\u0287\u0003\u0002\u0002\u0002\u1fc1\u1fc2\u0007", + "\u01ec\u0002\u0002\u1fc2\u1fc3\u0007&\u0002\u0002\u1fc3\u1fc4\u0007", + "\u00f4\u0002\u0002\u1fc4\u1fc5\u0007\u032a\u0002\u0002\u1fc5\u1fc7\u0007", + "\u0326\u0002\u0002\u1fc6\u1fc1\u0003\u0002\u0002\u0002\u1fc6\u1fc7\u0003", + "\u0002\u0002\u0002\u1fc7\u1fc8\u0003\u0002\u0002\u0002\u1fc8\u1fc9\u0007", + "\u0179\u0002\u0002\u1fc9\u1fca\u0007\u02e7\u0002\u0002\u1fca\u1fcb\u0007", + "\u032a\u0002\u0002\u1fcb\u1fd0\u0007\u0326\u0002\u0002\u1fcc\u1fcd\u0007", + "\u033e\u0002\u0002\u1fcd\u1fcf\u0005\u028a\u0146\u0002\u1fce\u1fcc\u0003", + "\u0002\u0002\u0002\u1fcf\u1fd2\u0003\u0002\u0002\u0002\u1fd0\u1fce\u0003", + "\u0002\u0002\u0002\u1fd0\u1fd1\u0003\u0002\u0002\u0002\u1fd1\u0289\u0003", + "\u0002\u0002\u0002\u1fd2\u1fd0\u0003\u0002\u0002\u0002\u1fd3\u1fd4\t", + "`\u0002\u0002\u1fd4\u1fd5\u0007\u032a\u0002\u0002\u1fd5\u1fd6\u0007", + "\u0326\u0002\u0002\u1fd6\u028b\u0003\u0002\u0002\u0002\u1fd7\u1fd8\u0007", + "\u00e7\u0002\u0002\u1fd8\u1fd9\u0007\u02eb\u0002\u0002\u1fd9\u1fda\u0007", + "\u00ac\u0002\u0002\u1fda\u1fdb\u0005\u03c6\u01e4\u0002\u1fdb\u1fdc\u0007", + "\u01d1\u0002\u0002\u1fdc\u1fdd\u0007&\u0002\u0002\u1fdd\u1fde\u0005", + "\u0298\u014d\u0002\u1fde\u1fe8\u0003\u0002\u0002\u0002\u1fdf\u1fe0\u0007", + "\u00e7\u0002\u0002\u1fe0\u1fe1\u0007\u00bd\u0002\u0002\u1fe1\u1fe2\u0007", + "\u00ac\u0002\u0002\u1fe2\u1fe3\u0007\u01d1\u0002\u0002\u1fe3\u1fe4\u0007", + "&\u0002\u0002\u1fe4\u1fe5\u0007\u00f4\u0002\u0002\u1fe5\u1fe6\u0007", + "\u032a\u0002\u0002\u1fe6\u1fe8\u0007\u0326\u0002\u0002\u1fe7\u1fd7\u0003", + "\u0002\u0002\u0002\u1fe7\u1fdf\u0003\u0002\u0002\u0002\u1fe8\u028d\u0003", + "\u0002\u0002\u0002\u1fe9\u1fea\u00073\u0002\u0002\u1fea\u1feb\u0007", + "\u02eb\u0002\u0002\u1feb\u1fec\u0007\u00ac\u0002\u0002\u1fec\u1ff5\u0005", + "\u03c6\u01e4\u0002\u1fed\u1fee\u00073\u0002\u0002\u1fee\u1fef\u0007", + "\u0006\u0002\u0002\u1fef\u1ff0\u0007\u02eb\u0002\u0002\u1ff0\u1ff5\u0007", + "\u022c\u0002\u0002\u1ff1\u1ff2\u00073\u0002\u0002\u1ff2\u1ff3\u0007", + "\u00bd\u0002\u0002\u1ff3\u1ff5\u0007\u00ac\u0002\u0002\u1ff4\u1fe9\u0003", + "\u0002\u0002\u0002\u1ff4\u1fed\u0003\u0002\u0002\u0002\u1ff4\u1ff1\u0003", + "\u0002\u0002\u0002\u1ff5\u028f\u0003\u0002\u0002\u0002\u1ff6\u1ff7\u0007", + "I\u0002\u0002\u1ff7\u1ff8\u0007\u00bd\u0002\u0002\u1ff8\u1ff9\u0007", + "\u00ac\u0002\u0002\u1ff9\u1ffa\u0007\u01ec\u0002\u0002\u1ffa\u1ffb\u0007", + "&\u0002\u0002\u1ffb\u1ffc\u0007\u00f4\u0002\u0002\u1ffc\u1ffd\u0007", + "\u032a\u0002\u0002\u1ffd\u201a\u0007\u0326\u0002\u0002\u1ffe\u1fff\u0007", + "I\u0002\u0002\u1fff\u2000\u0007\u02eb\u0002\u0002\u2000\u2001\u0007", + "\u00ac\u0002\u0002\u2001\u2004\u0005\u03c6\u01e4\u0002\u2002\u2003\u0007", + "\u0014\u0002\u0002\u2003\u2005\u0005\u03c6\u01e4\u0002\u2004\u2002\u0003", + "\u0002\u0002\u0002\u2004\u2005\u0003\u0002\u0002\u0002\u2005\u2009\u0003", + "\u0002\u0002\u0002\u2006\u2007\u0007\u008b\u0002\u0002\u2007\u2008\u0007", + "\u0291\u0002\u0002\u2008\u200a\u0005\u03c6\u01e4\u0002\u2009\u2006\u0003", + "\u0002\u0002\u0002\u2009\u200a\u0003\u0002\u0002\u0002\u200a\u200b\u0003", + "\u0002\u0002\u0002\u200b\u2015\u0007\u0179\u0002\u0002\u200c\u2011\u0005", + "\u0292\u014a\u0002\u200d\u200e\u0007\u01ec\u0002\u0002\u200e\u200f\u0007", + "&\u0002\u0002\u200f\u2011\u0005\u0296\u014c\u0002\u2010\u200c\u0003", + "\u0002\u0002\u0002\u2010\u200d\u0003\u0002\u0002\u0002\u2011\u2013\u0003", + "\u0002\u0002\u0002\u2012\u2014\u0007\u033e\u0002\u0002\u2013\u2012\u0003", + "\u0002\u0002\u0002\u2013\u2014\u0003\u0002\u0002\u0002\u2014\u2016\u0003", + "\u0002\u0002\u0002\u2015\u2010\u0003\u0002\u0002\u0002\u2016\u2017\u0003", + "\u0002\u0002\u0002\u2017\u2015\u0003\u0002\u0002\u0002\u2017\u2018\u0003", + "\u0002\u0002\u0002\u2018\u201a\u0003\u0002\u0002\u0002\u2019\u1ff6\u0003", + "\u0002\u0002\u0002\u2019\u1ffe\u0003\u0002\u0002\u0002\u201a\u0291\u0003", + "\u0002\u0002\u0002\u201b\u201c\u0007\u022b\u0002\u0002\u201c\u201d\u0007", + "\u032a\u0002\u0002\u201d\u202b\u0007\u0326\u0002\u0002\u201e\u201f\u0007", + "\u018a\u0002\u0002\u201f\u2020\u0007\u032a\u0002\u0002\u2020\u202b\u0005", + "\u0294\u014b\u0002\u2021\u2022\u0007\u0218\u0002\u0002\u2022\u2023\u0007", + "\u032a\u0002\u0002\u2023\u202b\u0007\u0326\u0002\u0002\u2024\u2025\u0007", + "\u0292\u0002\u0002\u2025\u2026\u0007\u032a\u0002\u0002\u2026\u202b\u0007", + "\u0326\u0002\u0002\u2027\u2028\u0007\u01c3\u0002\u0002\u2028\u2029\u0007", + "\u032a\u0002\u0002\u2029\u202b\t\f\u0002\u0002\u202a\u201b\u0003\u0002", + "\u0002\u0002\u202a\u201e\u0003\u0002\u0002\u0002\u202a\u2021\u0003\u0002", + "\u0002\u0002\u202a\u2024\u0003\u0002\u0002\u0002\u202a\u2027\u0003\u0002", + "\u0002\u0002\u202b\u0293\u0003\u0002\u0002\u0002\u202c\u202d\t3\u0002", + "\u0002\u202d\u0295\u0003\u0002\u0002\u0002\u202e\u202f\u0007+\u0002", + "\u0002\u202f\u203a\u0005\u03c6\u01e4\u0002\u2030\u2031\u0007\u0012\u0002", + "\u0002\u2031\u2032\u0007\u00ac\u0002\u0002\u2032\u203a\u0005\u03c6\u01e4", + "\u0002\u2033\u2034\u0007\u02eb\u0002\u0002\u2034\u2035\u0007\u00ac\u0002", + "\u0002\u2035\u203a\u0005\u03c6\u01e4\u0002\u2036\u2037\u0007\u00f4\u0002", + "\u0002\u2037\u2038\u0007\u032a\u0002\u0002\u2038\u203a\u0007\u0326\u0002", + "\u0002\u2039\u202e\u0003\u0002\u0002\u0002\u2039\u2030\u0003\u0002\u0002", + "\u0002\u2039\u2033\u0003\u0002\u0002\u0002\u2039\u2036\u0003\u0002\u0002", + "\u0002\u203a\u0297\u0003\u0002\u0002\u0002\u203b\u203c\u0007+\u0002", + "\u0002\u203c\u2041\u0005\u03c6\u01e4\u0002\u203d\u203e\u0007\u0179\u0002", + "\u0002\u203e\u203f\u0007\u00f4\u0002\u0002\u203f\u2040\u0007\u032a\u0002", + "\u0002\u2040\u2042\u0007\u0326\u0002\u0002\u2041\u203d\u0003\u0002\u0002", + "\u0002\u2041\u2042\u0003\u0002\u0002\u0002\u2042\u2053\u0003\u0002\u0002", + "\u0002\u2043\u2044\u0007\u0012\u0002\u0002\u2044\u2045\u0007\u00ac\u0002", + "\u0002\u2045\u204a\u0005\u03c6\u01e4\u0002\u2046\u2047\u0007\u0179\u0002", + "\u0002\u2047\u2048\u0007\u00f4\u0002\u0002\u2048\u2049\u0007\u032a\u0002", + "\u0002\u2049\u204b\u0007\u0326\u0002\u0002\u204a\u2046\u0003\u0002\u0002", + "\u0002\u204a\u204b\u0003\u0002\u0002\u0002\u204b\u2053\u0003\u0002\u0002", + "\u0002\u204c\u204d\u0007\u02eb\u0002\u0002\u204d\u204e\u0007\u00ac\u0002", + "\u0002\u204e\u2053\u0005\u03c6\u01e4\u0002\u204f\u2050\u0007\u00f4\u0002", + "\u0002\u2050\u2051\u0007\u032a\u0002\u0002\u2051\u2053\u0007\u0326\u0002", + "\u0002\u2052\u203b\u0003\u0002\u0002\u0002\u2052\u2043\u0003\u0002\u0002", + "\u0002\u2052\u204c\u0003\u0002\u0002\u0002\u2052\u204f\u0003\u0002\u0002", + "\u0002\u2053\u0299\u0003\u0002\u0002\u0002\u2054\u206f\u0007v\u0002", + "\u0002\u2055\u2056\u0007\u0172\u0002\u0002\u2056\u206f\u0005\u03c6\u01e4", + "\u0002\u2057\u2058\u0007\u02ef\u0002\u0002\u2058\u206f\u0005\u03c6\u01e4", + "\u0002\u2059\u205b\u0007\u01bc\u0002\u0002\u205a\u205c\u0005\u03c6\u01e4", + "\u0002\u205b\u205a\u0003\u0002\u0002\u0002\u205b\u205c\u0003\u0002\u0002", + "\u0002\u205c\u206f\u0003\u0002\u0002\u0002\u205d\u205e\u0007I\u0002", + "\u0002\u205e\u206f\ta\u0002\u0002\u205f\u206f\u0007\u02d4\u0002\u0002", + "\u2060\u206f\u0007\u021b\u0002\u0002\u2061\u206f\u0007\u0131\u0002\u0002", + "\u2062\u206f\u0007\u010e\u0002\u0002\u2063\u206f\u0007\u00a2\u0002\u0002", + "\u2064\u206c\u0007\n\u0002\u0002\u2065\u2067\u0007\r\u0002\u0002\u2066", + "\u2065\u0003\u0002\u0002\u0002\u2066\u2067\u0003\u0002\u0002\u0002\u2067", + "\u206a\u0003\u0002\u0002\u0002\u2068\u206b\u0005\u03c6\u01e4\u0002\u2069", + "\u206b\u0007T\u0002\u0002\u206a\u2068\u0003\u0002\u0002\u0002\u206a", + "\u2069\u0003\u0002\u0002\u0002\u206b\u206d\u0003\u0002\u0002\u0002\u206c", + "\u2066\u0003\u0002\u0002\u0002\u206c\u206d\u0003\u0002\u0002\u0002\u206d", + "\u206f\u0003\u0002\u0002\u0002\u206e\u2054\u0003\u0002\u0002\u0002\u206e", + "\u2055\u0003\u0002\u0002\u0002\u206e\u2057\u0003\u0002\u0002\u0002\u206e", + "\u2059\u0003\u0002\u0002\u0002\u206e\u205d\u0003\u0002\u0002\u0002\u206e", + "\u205f\u0003\u0002\u0002\u0002\u206e\u2060\u0003\u0002\u0002\u0002\u206e", + "\u2061\u0003\u0002\u0002\u0002\u206e\u2062\u0003\u0002\u0002\u0002\u206e", + "\u2063\u0003\u0002\u0002\u0002\u206e\u2064\u0003\u0002\u0002\u0002\u206f", + "\u029b\u0003\u0002\u0002\u0002\u2070\u2071\u0007\u013b\u0002\u0002\u2071", + "\u2074\u0007\u0321\u0002\u0002\u2072\u2073\u0007\u0337\u0002\u0002\u2073", + "\u2075\u0005\u03c6\u01e4\u0002\u2074\u2072\u0003\u0002\u0002\u0002\u2074", + "\u2075\u0003\u0002\u0002\u0002\u2075\u2076\u0003\u0002\u0002\u0002\u2076", + "\u2077\u0007\u032a\u0002\u0002\u2077\u2079\u0005\u02d8\u016d\u0002\u2078", + "\u207a\u0007\u033f\u0002\u0002\u2079\u2078\u0003\u0002\u0002\u0002\u2079", + "\u207a\u0003\u0002\u0002\u0002\u207a\u2098\u0003\u0002\u0002\u0002\u207b", + "\u207c\u0007\u013b\u0002\u0002\u207c\u207d\u0007\u0321\u0002\u0002\u207d", + "\u207e\u0005\u03cc\u01e7\u0002\u207e\u2080\u0005\u02d8\u016d\u0002\u207f", + "\u2081\u0007\u033f\u0002\u0002\u2080\u207f\u0003\u0002\u0002\u0002\u2080", + "\u2081\u0003\u0002\u0002\u0002\u2081\u2098\u0003\u0002\u0002\u0002\u2082", + "\u2083\u0007\u013b\u0002\u0002\u2083\u2084\u0007\u0321\u0002\u0002\u2084", + "\u2085\u0007\u032a\u0002\u0002\u2085\u2086\u0007P\u0002\u0002\u2086", + "\u2091\u0005\u02ce\u0168\u0002\u2087\u208f\u0007\u0085\u0002\u0002\u2088", + "\u2089\u0007\u010a\u0002\u0002\u2089\u2090\u0007\u0276\u0002\u0002\u208a", + "\u208d\u0007\u0169\u0002\u0002\u208b\u208c\u0007\u00e1\u0002\u0002\u208c", + "\u208e\u0005\u039e\u01d0\u0002\u208d\u208b\u0003\u0002\u0002\u0002\u208d", + "\u208e\u0003\u0002\u0002\u0002\u208e\u2090\u0003\u0002\u0002\u0002\u208f", + "\u2088\u0003\u0002\u0002\u0002\u208f\u208a\u0003\u0002\u0002\u0002\u2090", + "\u2092\u0003\u0002\u0002\u0002\u2091\u2087\u0003\u0002\u0002\u0002\u2091", + "\u2092\u0003\u0002\u0002\u0002\u2092\u2094\u0003\u0002\u0002\u0002\u2093", + "\u2095\u0007\u033f\u0002\u0002\u2094\u2093\u0003\u0002\u0002\u0002\u2094", + "\u2095\u0003\u0002\u0002\u0002\u2095\u2098\u0003\u0002\u0002\u0002\u2096", + "\u2098\u0005\u02d4\u016b\u0002\u2097\u2070\u0003\u0002\u0002\u0002\u2097", + "\u207b\u0003\u0002\u0002\u0002\u2097\u2082\u0003\u0002\u0002\u0002\u2097", + "\u2096\u0003\u0002\u0002\u0002\u2098\u029d\u0003\u0002\u0002\u0002\u2099", + "\u209a\u0007\u001c\u0002\u0002\u209a\u209b\u0007c\u0002\u0002\u209b", + "\u209e\tb\u0002\u0002\u209c\u209f\u0005\u03c6\u01e4\u0002\u209d\u209f", + "\u0007\u0321\u0002\u0002\u209e\u209c\u0003\u0002\u0002\u0002\u209e\u209d", + "\u0003\u0002\u0002\u0002\u209e\u209f\u0003\u0002\u0002\u0002\u209f\u20a1", + "\u0003\u0002\u0002\u0002\u20a0\u20a2\u0007\u033f\u0002\u0002\u20a1\u20a0", + "\u0003\u0002\u0002\u0002\u20a1\u20a2\u0003\u0002\u0002\u0002\u20a2\u20eb", + "\u0003\u0002\u0002\u0002\u20a3\u20a4\u0007\u001c\u0002\u0002\u20a4\u20ae", + "\tb\u0002\u0002\u20a5\u20a8\u0005\u03c6\u01e4\u0002\u20a6\u20a8\u0007", + "\u0321\u0002\u0002\u20a7\u20a5\u0003\u0002\u0002\u0002\u20a7\u20a6\u0003", + "\u0002\u0002\u0002\u20a8\u20ac\u0003\u0002\u0002\u0002\u20a9\u20aa\u0007", + "\u0179\u0002\u0002\u20aa\u20ab\u0007\u023f\u0002\u0002\u20ab\u20ad\u0007", + "\u0326\u0002\u0002\u20ac\u20a9\u0003\u0002\u0002\u0002\u20ac\u20ad\u0003", + "\u0002\u0002\u0002\u20ad\u20af\u0003\u0002\u0002\u0002\u20ae\u20a7\u0003", + "\u0002\u0002\u0002\u20ae\u20af\u0003\u0002\u0002\u0002\u20af\u20b1\u0003", + "\u0002\u0002\u0002\u20b0\u20b2\u0007\u033f\u0002\u0002\u20b1\u20b0\u0003", + "\u0002\u0002\u0002\u20b1\u20b2\u0003\u0002\u0002\u0002\u20b2\u20eb\u0003", + "\u0002\u0002\u0002\u20b3\u20b4\u0007:\u0002\u0002\u20b4\u20c1\tb\u0002", + "\u0002\u20b5\u20b8\u0005\u03c6\u01e4\u0002\u20b6\u20b8\u0007\u0321\u0002", + "\u0002\u20b7\u20b5\u0003\u0002\u0002\u0002\u20b7\u20b6\u0003\u0002\u0002", + "\u0002\u20b8\u20bf\u0003\u0002\u0002\u0002\u20b9\u20ba\u0007\u0179\u0002", + "\u0002\u20ba\u20bb\u0007\u033c\u0002\u0002\u20bb\u20bc\u0007\u01d6\u0002", + "\u0002\u20bc\u20bd\u0007\u032a\u0002\u0002\u20bd\u20be\t\t\u0002\u0002", + "\u20be\u20c0\u0007\u033d\u0002\u0002\u20bf\u20b9\u0003\u0002\u0002\u0002", + "\u20bf\u20c0\u0003\u0002\u0002\u0002\u20c0\u20c2\u0003\u0002\u0002\u0002", + "\u20c1\u20b7\u0003\u0002\u0002\u0002\u20c1\u20c2\u0003\u0002\u0002\u0002", + "\u20c2\u20c4\u0003\u0002\u0002\u0002\u20c3\u20c5\u0007\u033f\u0002\u0002", + "\u20c4\u20c3\u0003\u0002\u0002\u0002\u20c4\u20c5\u0003\u0002\u0002\u0002", + "\u20c5\u20eb\u0003\u0002\u0002\u0002\u20c6\u20c8\u0007:\u0002\u0002", + "\u20c7\u20c9\u0007\u0313\u0002\u0002\u20c8\u20c7\u0003\u0002\u0002\u0002", + "\u20c8\u20c9\u0003\u0002\u0002\u0002\u20c9\u20cb\u0003\u0002\u0002\u0002", + "\u20ca\u20cc\u0007\u033f\u0002\u0002\u20cb\u20ca\u0003\u0002\u0002\u0002", + "\u20cb\u20cc\u0003\u0002\u0002\u0002\u20cc\u20eb\u0003\u0002\u0002\u0002", + "\u20cd\u20ce\u0007:\u0002\u0002\u20ce\u20eb\u0005\u03c6\u01e4\u0002", + "\u20cf\u20d0\u0007\u0120\u0002\u0002\u20d0\u20eb\u0005\u03c6\u01e4\u0002", + "\u20d1\u20d2\u0007\u0120\u0002\u0002\u20d2\u20d5\tb\u0002\u0002\u20d3", + "\u20d6\u0005\u03c6\u01e4\u0002\u20d4\u20d6\u0007\u0321\u0002\u0002\u20d5", + "\u20d3\u0003\u0002\u0002\u0002\u20d5\u20d4\u0003\u0002\u0002\u0002\u20d5", + "\u20d6\u0003\u0002\u0002\u0002\u20d6\u20d8\u0003\u0002\u0002\u0002\u20d7", + "\u20d9\u0007\u033f\u0002\u0002\u20d8\u20d7\u0003\u0002\u0002\u0002\u20d8", + "\u20d9\u0003\u0002\u0002\u0002\u20d9\u20eb\u0003\u0002\u0002\u0002\u20da", + "\u20dc\u0007\u0120\u0002\u0002\u20db\u20dd\u0007\u0313\u0002\u0002\u20dc", + "\u20db\u0003\u0002\u0002\u0002\u20dc\u20dd\u0003\u0002\u0002\u0002\u20dd", + "\u20df\u0003\u0002\u0002\u0002\u20de\u20e0\u0007\u033f\u0002\u0002\u20df", + "\u20de\u0003\u0002\u0002\u0002\u20df\u20e0\u0003\u0002\u0002\u0002\u20e0", + "\u20eb\u0003\u0002\u0002\u0002\u20e1\u20e2\u0007\u012c\u0002\u0002\u20e2", + "\u20e5\tb\u0002\u0002\u20e3\u20e6\u0005\u03c6\u01e4\u0002\u20e4\u20e6", + "\u0007\u0321\u0002\u0002\u20e5\u20e3\u0003\u0002\u0002\u0002\u20e5\u20e4", + "\u0003\u0002\u0002\u0002\u20e5\u20e6\u0003\u0002\u0002\u0002\u20e6\u20e8", + "\u0003\u0002\u0002\u0002\u20e7\u20e9\u0007\u033f\u0002\u0002\u20e8\u20e7", + "\u0003\u0002\u0002\u0002\u20e8\u20e9\u0003\u0002\u0002\u0002\u20e9\u20eb", + "\u0003\u0002\u0002\u0002\u20ea\u2099\u0003\u0002\u0002\u0002\u20ea\u20a3", + "\u0003\u0002\u0002\u0002\u20ea\u20b3\u0003\u0002\u0002\u0002\u20ea\u20c6", + "\u0003\u0002\u0002\u0002\u20ea\u20cd\u0003\u0002\u0002\u0002\u20ea\u20cf", + "\u0003\u0002\u0002\u0002\u20ea\u20d1\u0003\u0002\u0002\u0002\u20ea\u20da", + "\u0003\u0002\u0002\u0002\u20ea\u20e1\u0003\u0002\u0002\u0002\u20eb\u029f", + "\u0003\u0002\u0002\u0002\u20ec\u20ee\u0007\u020e\u0002\u0002\u20ed\u20ef", + "\u0007\u0322\u0002\u0002\u20ee\u20ed\u0003\u0002\u0002\u0002\u20ee\u20ef", + "\u0003\u0002\u0002\u0002\u20ef\u02a1\u0003\u0002\u0002\u0002\u20f0\u20f1", + "\u0007\u016c\u0002\u0002\u20f1\u20f3\u0005\u03c6\u01e4\u0002\u20f2\u20f4", + "\u0007\u033f\u0002\u0002\u20f3\u20f2\u0003\u0002\u0002\u0002\u20f3\u20f4", + "\u0003\u0002\u0002\u0002\u20f4\u02a3\u0003\u0002\u0002\u0002\u20f5\u20f7", + "\u0007\u013c\u0002\u0002\u20f6\u20f8\u0007\u0326\u0002\u0002\u20f7\u20f6", + "\u0003\u0002\u0002\u0002\u20f7\u20f8\u0003\u0002\u0002\u0002\u20f8\u02a5", + "\u0003\u0002\u0002\u0002\u20f9\u20fc\u0007\u010d\u0002\u0002\u20fa\u20fb", + "\u0007\u0179\u0002\u0002\u20fb\u20fd\u0007\u027c\u0002\u0002\u20fc\u20fa", + "\u0003\u0002\u0002\u0002\u20fc\u20fd\u0003\u0002\u0002\u0002\u20fd\u02a7", + "\u0003\u0002\u0002\u0002\u20fe\u2101\u0007\u013d\u0002\u0002\u20ff\u2100", + "\u0007\u0179\u0002\u0002\u2100\u2102\u0007\u026c\u0002\u0002\u2101\u20ff", + "\u0003\u0002\u0002\u0002\u2101\u2102\u0003\u0002\u0002\u0002\u2102\u02a9", + "\u0003\u0002\u0002\u0002\u2103\u2104\u0007V\u0002\u0002\u2104\u2109", + "\u0005\u03c8\u01e5\u0002\u2105\u2106\u0007\u033c\u0002\u0002\u2106\u2107", + "\u0005\u0366\u01b4\u0002\u2107\u2108\u0007\u033d\u0002\u0002\u2108\u210a", + "\u0003\u0002\u0002\u0002\u2109\u2105\u0003\u0002\u0002\u0002\u2109\u210a", + "\u0003\u0002\u0002\u0002\u210a\u210d\u0003\u0002\u0002\u0002\u210b\u210c", + "\u0007\u0179\u0002\u0002\u210c\u210e\u0005\u02ac\u0157\u0002\u210d\u210b", + "\u0003\u0002\u0002\u0002\u210d\u210e\u0003\u0002\u0002\u0002\u210e\u2110", + "\u0003\u0002\u0002\u0002\u210f\u2111\u0007\u033f\u0002\u0002\u2110\u210f", + "\u0003\u0002\u0002\u0002\u2110\u2111\u0003\u0002\u0002\u0002\u2111\u02ab", + "\u0003\u0002\u0002\u0002\u2112\u2115\u0005\u03c8\u01e5\u0002\u2113\u2114", + "\u0007\u033e\u0002\u0002\u2114\u2116\u0005\u03c8\u01e5\u0002\u2115\u2113", + "\u0003\u0002\u0002\u0002\u2115\u2116\u0003\u0002\u0002\u0002\u2116\u02ad", + "\u0003\u0002\u0002\u0002\u2117\u2118\u0007v\u0002\u0002\u2118\u2119", + "\u0007\u0010\u0002\u0002\u2119\u211a\tc\u0002\u0002\u211a\u02af\u0003", + "\u0002\u0002\u0002\u211b\u211d\u0007\u0321\u0002\u0002\u211c\u211e\u0007", + "\u0010\u0002\u0002\u211d\u211c\u0003\u0002\u0002\u0002\u211d\u211e\u0003", + "\u0002\u0002\u0002\u211e\u211f\u0003\u0002\u0002\u0002\u211f\u2122\u0005", + "\u03be\u01e0\u0002\u2120\u2121\u0007\u032a\u0002\u0002\u2121\u2123\u0005", + "\u02d8\u016d\u0002\u2122\u2120\u0003\u0002\u0002\u0002\u2122\u2123\u0003", + "\u0002\u0002\u0002\u2123\u02b1\u0003\u0002\u0002\u0002\u2124\u2125\u0007", + "\u0153\u0002\u0002\u2125\u2126\u0007\u033c\u0002\u0002\u2126\u2127\u0005", + "\u02b8\u015d\u0002\u2127\u2128\u0007\u033d\u0002\u0002\u2128\u02b3\u0003", + "\u0002\u0002\u0002\u2129\u212a\u0007\u0315\u0002\u0002\u212a\u212c\u0007", + "\u033c\u0002\u0002\u212b\u212d\td\u0002\u0002\u212c\u212b\u0003\u0002", + "\u0002\u0002\u212c\u212d\u0003\u0002\u0002\u0002\u212d\u212e\u0003\u0002", + "\u0002\u0002\u212e\u212f\u0005\u02b6\u015c\u0002\u212f\u2130\u0007\u033d", + "\u0002\u0002\u2130\u02b5\u0003\u0002\u0002\u0002\u2131\u2132\u0007\u0323", + "\u0002\u0002\u2132\u2133\u0007\u0337\u0002\u0002\u2133\u2134\u0007\u0323", + "\u0002\u0002\u2134\u02b7\u0003\u0002\u0002\u0002\u2135\u213c\u0005\u02ba", + "\u015e\u0002\u2136\u2138\u0007\u033e\u0002\u0002\u2137\u2136\u0003\u0002", + "\u0002\u0002\u2137\u2138\u0003\u0002\u0002\u0002\u2138\u2139\u0003\u0002", + "\u0002\u0002\u2139\u213b\u0005\u02ba\u015e\u0002\u213a\u2137\u0003\u0002", + "\u0002\u0002\u213b\u213e\u0003\u0002\u0002\u0002\u213c\u213a\u0003\u0002", + "\u0002\u0002\u213c\u213d\u0003\u0002\u0002\u0002\u213d\u02b9\u0003\u0002", + "\u0002\u0002\u213e\u213c\u0003\u0002\u0002\u0002\u213f\u2143\u0005\u02bc", + "\u015f\u0002\u2140\u2143\u0005\u02be\u0160\u0002\u2141\u2143\u0005\u02c2", + "\u0162\u0002\u2142\u213f\u0003\u0002\u0002\u0002\u2142\u2140\u0003\u0002", + "\u0002\u0002\u2142\u2141\u0003\u0002\u0002\u0002\u2143\u02bb\u0003\u0002", + "\u0002\u0002\u2144\u2148\u0005\u03c6\u01e4\u0002\u2145\u2149\u0005\u03be", + "\u01e0\u0002\u2146\u2147\u0007\u0010\u0002\u0002\u2147\u2149\u0005\u02d8", + "\u016d\u0002\u2148\u2145\u0003\u0002\u0002\u0002\u2148\u2146\u0003\u0002", + "\u0002\u0002\u2149\u214c\u0003\u0002\u0002\u0002\u214a\u214b\u00077", + "\u0002\u0002\u214b\u214d\u0005\u03c6\u01e4\u0002\u214c\u214a\u0003\u0002", + "\u0002\u0002\u214c\u214d\u0003\u0002\u0002\u0002\u214d\u214f\u0003\u0002", + "\u0002\u0002\u214e\u2150\u0005\u03a6\u01d4\u0002\u214f\u214e\u0003\u0002", + "\u0002\u0002\u214f\u2150\u0003\u0002\u0002\u0002\u2150\u2166\u0003\u0002", + "\u0002\u0002\u2151\u2152\u0007=\u0002\u0002\u2152\u2154\u0005\u03c6", + "\u01e4\u0002\u2153\u2151\u0003\u0002\u0002\u0002\u2153\u2154\u0003\u0002", + "\u0002\u0002\u2154\u2155\u0003\u0002\u0002\u0002\u2155\u2157\u0005\u03a8", + "\u01d5\u0002\u2156\u2158\u0005\u03a8\u01d5\u0002\u2157\u2156\u0003\u0002", + "\u0002\u0002\u2157\u2158\u0003\u0002\u0002\u0002\u2158\u2167\u0003\u0002", + "\u0002\u0002\u2159\u215f\u0007\u0096\u0002\u0002\u215a\u215b\u0007\u033c", + "\u0002\u0002\u215b\u215c\u0007\u0322\u0002\u0002\u215c\u215d\u0007\u033e", + "\u0002\u0002\u215d\u215e\u0007\u0322\u0002\u0002\u215e\u2160\u0007\u033d", + "\u0002\u0002\u215f\u215a\u0003\u0002\u0002\u0002\u215f\u2160\u0003\u0002", + "\u0002\u0002\u2160\u2164\u0003\u0002\u0002\u0002\u2161\u2162\u0007\u00dc", + "\u0002\u0002\u2162\u2163\u0007\u0085\u0002\u0002\u2163\u2165\u0007\u0112", + "\u0002\u0002\u2164\u2161\u0003\u0002\u0002\u0002\u2164\u2165\u0003\u0002", + "\u0002\u0002\u2165\u2167\u0003\u0002\u0002\u0002\u2166\u2153\u0003\u0002", + "\u0002\u0002\u2166\u2159\u0003\u0002\u0002\u0002\u2166\u2167\u0003\u0002", + "\u0002\u0002\u2167\u2169\u0003\u0002\u0002\u0002\u2168\u216a\u0007\u0123", + "\u0002\u0002\u2169\u2168\u0003\u0002\u0002\u0002\u2169\u216a\u0003\u0002", + "\u0002\u0002\u216a\u216e\u0003\u0002\u0002\u0002\u216b\u216d\u0005\u02c0", + "\u0161\u0002\u216c\u216b\u0003\u0002\u0002\u0002\u216d\u2170\u0003\u0002", + "\u0002\u0002\u216e\u216c\u0003\u0002\u0002\u0002\u216e\u216f\u0003\u0002", + "\u0002\u0002\u216f\u02bd\u0003\u0002\u0002\u0002\u2170\u216e\u0003\u0002", + "\u0002\u0002\u2171\u2172\u0005\u03c6\u01e4\u0002\u2172\u2173\te\u0002", + "\u0002\u2173\u2177\u0005\u02d8\u016d\u0002\u2174\u2178\u0007\u0240\u0002", + "\u0002\u2175\u2176\u0007\u00dc\u0002\u0002\u2176\u2178\u0007\u0240\u0002", + "\u0002\u2177\u2174\u0003\u0002\u0002\u0002\u2177\u2175\u0003\u0002\u0002", + "\u0002\u2177\u2178\u0003\u0002\u0002\u0002\u2178\u02bf\u0003\u0002\u0002", + "\u0002\u2179\u217a\u0007=\u0002\u0002\u217a\u217c\u0005\u03c6\u01e4", + "\u0002\u217b\u2179\u0003\u0002\u0002\u0002\u217b\u217c\u0003\u0002\u0002", + "\u0002\u217c\u21a2\u0003\u0002\u0002\u0002\u217d\u217e\u0007\u0100\u0002", + "\u0002\u217e\u2181\u0007\u00ac\u0002\u0002\u217f\u2181\u0007\u0165\u0002", + "\u0002\u2180\u217d\u0003\u0002\u0002\u0002\u2180\u217f\u0003\u0002\u0002", + "\u0002\u2181\u2183\u0003\u0002\u0002\u0002\u2182\u2184\u0005\u03a4\u01d3", + "\u0002\u2183\u2182\u0003\u0002\u0002\u0002\u2183\u2184\u0003\u0002\u0002", + "\u0002\u2184\u2186\u0003\u0002\u0002\u0002\u2185\u2187\u0005\u02c8\u0165", + "\u0002\u2186\u2185\u0003\u0002\u0002\u0002\u2186\u2187\u0003\u0002\u0002", + "\u0002\u2187\u21a3\u0003\u0002\u0002\u0002\u2188\u218c\u0007.\u0002", + "\u0002\u2189\u218a\u0007\u00dc\u0002\u0002\u218a\u218b\u0007\u0085\u0002", + "\u0002\u218b\u218d\u0007\u0112\u0002\u0002\u218c\u2189\u0003\u0002\u0002", + "\u0002\u218c\u218d\u0003\u0002\u0002\u0002\u218d\u218e\u0003\u0002\u0002", + "\u0002\u218e\u218f\u0007\u033c\u0002\u0002\u218f\u2190\u0005\u02ee\u0178", + "\u0002\u2190\u2191\u0007\u033d\u0002\u0002\u2191\u21a3\u0003\u0002\u0002", + "\u0002\u2192\u2193\u0007\u0088\u0002\u0002\u2193\u2195\u0007\u00ac\u0002", + "\u0002\u2194\u2192\u0003\u0002\u0002\u0002\u2194\u2195\u0003\u0002\u0002", + "\u0002\u2195\u2196\u0003\u0002\u0002\u0002\u2196\u2197\u0007\u010e\u0002", + "\u0002\u2197\u2198\u0005\u038e\u01c8\u0002\u2198\u2199\u0007\u033c\u0002", + "\u0002\u2199\u219a\u0005\u039e\u01d0\u0002\u219a\u219c\u0007\u033d\u0002", + "\u0002\u219b\u219d\u0005\u02c4\u0163\u0002\u219c\u219b\u0003\u0002\u0002", + "\u0002\u219c\u219d\u0003\u0002\u0002\u0002\u219d\u219f\u0003\u0002\u0002", + "\u0002\u219e\u21a0\u0005\u02c6\u0164\u0002\u219f\u219e\u0003\u0002\u0002", + "\u0002\u219f\u21a0\u0003\u0002\u0002\u0002\u21a0\u21a3\u0003\u0002\u0002", + "\u0002\u21a1\u21a3\u0005\u03a6\u01d4\u0002\u21a2\u2180\u0003\u0002\u0002", + "\u0002\u21a2\u2188\u0003\u0002\u0002\u0002\u21a2\u2194\u0003\u0002\u0002", + "\u0002\u21a2\u21a1\u0003\u0002\u0002\u0002\u21a3\u02c1\u0003\u0002\u0002", + "\u0002\u21a4\u21a5\u0007=\u0002\u0002\u21a5\u21a7\u0005\u03c6\u01e4", + "\u0002\u21a6\u21a4\u0003\u0002\u0002\u0002\u21a6\u21a7\u0003\u0002\u0002", + "\u0002\u21a7\u21e8\u0003\u0002\u0002\u0002\u21a8\u21a9\u0007\u0100\u0002", + "\u0002\u21a9\u21ac\u0007\u00ac\u0002\u0002\u21aa\u21ac\u0007\u0165\u0002", + "\u0002\u21ab\u21a8\u0003\u0002\u0002\u0002\u21ab\u21aa\u0003\u0002\u0002", + "\u0002\u21ac\u21ae\u0003\u0002\u0002\u0002\u21ad\u21af\u0005\u03a4\u01d3", + "\u0002\u21ae\u21ad\u0003\u0002\u0002\u0002\u21ae\u21af\u0003\u0002\u0002", + "\u0002\u21af\u21b0\u0003\u0002\u0002\u0002\u21b0\u21b1\u0007\u033c\u0002", + "\u0002\u21b1\u21b2\u0005\u039c\u01cf\u0002\u21b2\u21b4\u0007\u033d\u0002", + "\u0002\u21b3\u21b5\u0005\u02c8\u0165\u0002\u21b4\u21b3\u0003\u0002\u0002", + "\u0002\u21b4\u21b5\u0003\u0002\u0002\u0002\u21b5\u21b8\u0003\u0002\u0002", + "\u0002\u21b6\u21b7\u0007\u00e5\u0002\u0002\u21b7\u21b9\u0005\u03c6\u01e4", + "\u0002\u21b8\u21b6\u0003\u0002\u0002\u0002\u21b8\u21b9\u0003\u0002\u0002", + "\u0002\u21b9\u21e9\u0003\u0002\u0002\u0002\u21ba\u21be\u0007.\u0002", + "\u0002\u21bb\u21bc\u0007\u00dc\u0002\u0002\u21bc\u21bd\u0007\u0085\u0002", + "\u0002\u21bd\u21bf\u0007\u0112\u0002\u0002\u21be\u21bb\u0003\u0002\u0002", + "\u0002\u21be\u21bf\u0003\u0002\u0002\u0002\u21bf\u21c0\u0003\u0002\u0002", + "\u0002\u21c0\u21c1\u0007\u033c\u0002\u0002\u21c1\u21c2\u0005\u02ee\u0178", + "\u0002\u21c2\u21c3\u0007\u033d\u0002\u0002\u21c3\u21e9\u0003\u0002\u0002", + "\u0002\u21c4\u21c6\u0007Y\u0002\u0002\u21c5\u21c7\u0007\u033c\u0002", + "\u0002\u21c6\u21c5\u0003\u0002\u0002\u0002\u21c6\u21c7\u0003\u0002\u0002", + "\u0002\u21c7\u21cc\u0003\u0002\u0002\u0002\u21c8\u21cd\u0007\u0326\u0002", + "\u0002\u21c9\u21cd\u0007\u0344\u0002\u0002\u21ca\u21cd\u0005\u0340\u01a1", + "\u0002\u21cb\u21cd\u0007\u0322\u0002\u0002\u21cc\u21c8\u0003\u0002\u0002", + "\u0002\u21cc\u21c9\u0003\u0002\u0002\u0002\u21cc\u21ca\u0003\u0002\u0002", + "\u0002\u21cc\u21cb\u0003\u0002\u0002\u0002\u21cd\u21ce\u0003\u0002\u0002", + "\u0002\u21ce\u21cc\u0003\u0002\u0002\u0002\u21ce\u21cf\u0003\u0002\u0002", + "\u0002\u21cf\u21d1\u0003\u0002\u0002\u0002\u21d0\u21d2\u0007\u033d\u0002", + "\u0002\u21d1\u21d0\u0003\u0002\u0002\u0002\u21d1\u21d2\u0003\u0002\u0002", + "\u0002\u21d2\u21d3\u0003\u0002\u0002\u0002\u21d3\u21d4\u0007\u0085\u0002", + "\u0002\u21d4\u21e9\u0005\u03c6\u01e4\u0002\u21d5\u21d6\u0007\u0088\u0002", + "\u0002\u21d6\u21d7\u0007\u00ac\u0002\u0002\u21d7\u21d8\u0007\u033c\u0002", + "\u0002\u21d8\u21d9\u0005\u039e\u01d0\u0002\u21d9\u21da\u0007\u033d\u0002", + "\u0002\u21da\u21db\u0007\u010e\u0002\u0002\u21db\u21e0\u0005\u038e\u01c8", + "\u0002\u21dc\u21dd\u0007\u033c\u0002\u0002\u21dd\u21de\u0005\u039e\u01d0", + "\u0002\u21de\u21df\u0007\u033d\u0002\u0002\u21df\u21e1\u0003\u0002\u0002", + "\u0002\u21e0\u21dc\u0003\u0002\u0002\u0002\u21e0\u21e1\u0003\u0002\u0002", + "\u0002\u21e1\u21e3\u0003\u0002\u0002\u0002\u21e2\u21e4\u0005\u02c4\u0163", + "\u0002\u21e3\u21e2\u0003\u0002\u0002\u0002\u21e3\u21e4\u0003\u0002\u0002", + "\u0002\u21e4\u21e6\u0003\u0002\u0002\u0002\u21e5\u21e7\u0005\u02c6\u0164", + "\u0002\u21e6\u21e5\u0003\u0002\u0002\u0002\u21e6\u21e7\u0003\u0002\u0002", + "\u0002\u21e7\u21e9\u0003\u0002\u0002\u0002\u21e8\u21ab\u0003\u0002\u0002", + "\u0002\u21e8\u21ba\u0003\u0002\u0002\u0002\u21e8\u21c4\u0003\u0002\u0002", + "\u0002\u21e8\u21d5\u0003\u0002\u0002\u0002\u21e9\u02c3\u0003\u0002\u0002", + "\u0002\u21ea\u21eb\u0007\u00e5\u0002\u0002\u21eb\u21f3\u0007\\\u0002", + "\u0002\u21ec\u21ed\u0007\u0263\u0002\u0002\u21ed\u21f4\u0007\u0180\u0002", + "\u0002\u21ee\u21f4\u0007)\u0002\u0002\u21ef\u21f0\u0007\u013b\u0002", + "\u0002\u21f0\u21f4\u0007\u00df\u0002\u0002\u21f1\u21f2\u0007\u013b\u0002", + "\u0002\u21f2\u21f4\u0007Y\u0002\u0002\u21f3\u21ec\u0003\u0002\u0002", + "\u0002\u21f3\u21ee\u0003\u0002\u0002\u0002\u21f3\u21ef\u0003\u0002\u0002", + "\u0002\u21f3\u21f1\u0003\u0002\u0002\u0002\u21f4\u02c5\u0003\u0002\u0002", + "\u0002\u21f5\u21f6\u0007\u00e5\u0002\u0002\u21f6\u21fe\u0007\u0169\u0002", + "\u0002\u21f7\u21f8\u0007\u0263\u0002\u0002\u21f8\u21ff\u0007\u0180\u0002", + "\u0002\u21f9\u21ff\u0007)\u0002\u0002\u21fa\u21fb\u0007\u013b\u0002", + "\u0002\u21fb\u21ff\u0007\u00df\u0002\u0002\u21fc\u21fd\u0007\u013b\u0002", + "\u0002\u21fd\u21ff\u0007Y\u0002\u0002\u21fe\u21f7\u0003\u0002\u0002", + "\u0002\u21fe\u21f9\u0003\u0002\u0002\u0002\u21fe\u21fa\u0003\u0002\u0002", + "\u0002\u21fe\u21fc\u0003\u0002\u0002\u0002\u21ff\u02c7\u0003\u0002\u0002", + "\u0002\u2200\u2201\u0007\u0179\u0002\u0002\u2201\u2202\u0007\u033c\u0002", + "\u0002\u2202\u2207\u0005\u02ca\u0166\u0002\u2203\u2204\u0007\u033e\u0002", + "\u0002\u2204\u2206\u0005\u02ca\u0166\u0002\u2205\u2203\u0003\u0002\u0002", + "\u0002\u2206\u2209\u0003\u0002\u0002\u0002\u2207\u2205\u0003\u0002\u0002", + "\u0002\u2207\u2208\u0003\u0002\u0002\u0002\u2208\u220a\u0003\u0002\u0002", + "\u0002\u2209\u2207\u0003\u0002\u0002\u0002\u220a\u220b\u0007\u033d\u0002", + "\u0002\u220b\u02c9\u0003\u0002\u0002\u0002\u220c\u220d\u0005\u03c8\u01e5", + "\u0002\u220d\u2211\u0007\u032a\u0002\u0002\u220e\u2212\u0005\u03c8\u01e5", + "\u0002\u220f\u2212\u0005\u03a2\u01d2\u0002\u2210\u2212\u0007\u0322\u0002", + "\u0002\u2211\u220e\u0003\u0002\u0002\u0002\u2211\u220f\u0003\u0002\u0002", + "\u0002\u2211\u2210\u0003\u0002\u0002\u0002\u2212\u02cb\u0003\u0002\u0002", + "\u0002\u2213\u2214\u0007X\u0002\u0002\u2214\u2234\u0005\u03a0\u01d1", + "\u0002\u2215\u221f\u0007P\u0002\u0002\u2216\u221d\u0005\u02ce\u0168", + "\u0002\u2217\u2218\u0007\u0085\u0002\u0002\u2218\u221b\u0007\u0169\u0002", + "\u0002\u2219\u221a\u0007\u00e1\u0002\u0002\u221a\u221c\u0005\u039e\u01d0", + "\u0002\u221b\u2219\u0003\u0002\u0002\u0002\u221b\u221c\u0003\u0002\u0002", + "\u0002\u221c\u221e\u0003\u0002\u0002\u0002\u221d\u2217\u0003\u0002\u0002", + "\u0002\u221d\u221e\u0003\u0002\u0002\u0002\u221e\u2220\u0003\u0002\u0002", + "\u0002\u221f\u2216\u0003\u0002\u0002\u0002\u221f\u2220\u0003\u0002\u0002", + "\u0002\u2220\u2235\u0003\u0002\u0002\u0002\u2221\u2223\tf\u0002\u0002", + "\u2222\u2221\u0003\u0002\u0002\u0002\u2222\u2223\u0003\u0002\u0002\u0002", + "\u2223\u2225\u0003\u0002\u0002\u0002\u2224\u2226\u0007\u02c0\u0002\u0002", + "\u2225\u2224\u0003\u0002\u0002\u0002\u2225\u2226\u0003\u0002\u0002\u0002", + "\u2226\u2227\u0003\u0002\u0002\u0002\u2227\u2228\u0007P\u0002\u0002", + "\u2228\u2229\u0007\u0085\u0002\u0002\u2229\u2232\u0005\u01be\u00e0\u0002", + "\u222a\u2230\u0007\u0085\u0002\u0002\u222b\u222c\u0007\u010a\u0002\u0002", + "\u222c\u2231\u0007\u0276\u0002\u0002\u222d\u2231\u0007\u0169\u0002\u0002", + "\u222e\u222f\u0007\u00e1\u0002\u0002\u222f\u2231\u0005\u039e\u01d0\u0002", + "\u2230\u222b\u0003\u0002\u0002\u0002\u2230\u222d\u0003\u0002\u0002\u0002", + "\u2230\u222e\u0003\u0002\u0002\u0002\u2231\u2233\u0003\u0002\u0002\u0002", + "\u2232\u222a\u0003\u0002\u0002\u0002\u2232\u2233\u0003\u0002\u0002\u0002", + "\u2233\u2235\u0003\u0002\u0002\u0002\u2234\u2215\u0003\u0002\u0002\u0002", + "\u2234\u2222\u0003\u0002\u0002\u0002\u2235\u2237\u0003\u0002\u0002\u0002", + "\u2236\u2238\u0007\u033f\u0002\u0002\u2237\u2236\u0003\u0002\u0002\u0002", + "\u2237\u2238\u0003\u0002\u0002\u0002\u2238\u02cd\u0003\u0002\u0002\u0002", + "\u2239\u223b\u0005\u02d0\u0169\u0002\u223a\u2239\u0003\u0002\u0002\u0002", + "\u223b\u223e\u0003\u0002\u0002\u0002\u223c\u223a\u0003\u0002\u0002\u0002", + "\u223c\u223d\u0003\u0002\u0002\u0002\u223d\u223f\u0003\u0002\u0002\u0002", + "\u223e\u223c\u0003\u0002\u0002\u0002\u223f\u2240\u0007\u0085\u0002\u0002", + "\u2240\u2241\u0005\u01be\u00e0\u0002\u2241\u02cf\u0003\u0002\u0002\u0002", + "\u2242\u2248\tA\u0002\u0002\u2243\u2248\tg\u0002\u0002\u2244\u2248\t", + "h\u0002\u0002\u2245\u2248\ti\u0002\u0002\u2246\u2248\u0007\u0302\u0002", + "\u0002\u2247\u2242\u0003\u0002\u0002\u0002\u2247\u2243\u0003\u0002\u0002", + "\u0002\u2247\u2244\u0003\u0002\u0002\u0002\u2247\u2245\u0003\u0002\u0002", + "\u0002\u2247\u2246\u0003\u0002\u0002\u0002\u2248\u02d1\u0003\u0002\u0002", + "\u0002\u2249\u2253\u0007\u0080\u0002\u0002\u224a\u2251\u0007\u0262\u0002", + "\u0002\u224b\u2251\u0007\u0289\u0002\u0002\u224c\u2251\u0007\u0200\u0002", + "\u0002\u224d\u2251\u0007\u022f\u0002\u0002\u224e\u224f\tj\u0002\u0002", + "\u224f\u2251\u0005\u02d8\u016d\u0002\u2250\u224a\u0003\u0002\u0002\u0002", + "\u2250\u224b\u0003\u0002\u0002\u0002\u2250\u224c\u0003\u0002\u0002\u0002", + "\u2250\u224d\u0003\u0002\u0002\u0002\u2250\u224e\u0003\u0002\u0002\u0002", + "\u2250\u2251\u0003\u0002\u0002\u0002\u2251\u2252\u0003\u0002\u0002\u0002", + "\u2252\u2254\u0007\u008b\u0002\u0002\u2253\u2250\u0003\u0002\u0002\u0002", + "\u2253\u2254\u0003\u0002\u0002\u0002\u2254\u2256\u0003\u0002\u0002\u0002", + "\u2255\u2257\u0007\u020d\u0002\u0002\u2256\u2255\u0003\u0002\u0002\u0002", + "\u2256\u2257\u0003\u0002\u0002\u0002\u2257\u2258\u0003\u0002\u0002\u0002", + "\u2258\u2262\u0005\u03a0\u01d1\u0002\u2259\u225a\u0007\u00a5\u0002\u0002", + "\u225a\u225f\u0007\u0321\u0002\u0002\u225b\u225c\u0007\u033e\u0002\u0002", + "\u225c\u225e\u0007\u0321\u0002\u0002\u225d\u225b\u0003\u0002\u0002\u0002", + "\u225e\u2261\u0003\u0002\u0002\u0002\u225f\u225d\u0003\u0002\u0002\u0002", + "\u225f\u2260\u0003\u0002\u0002\u0002\u2260\u2263\u0003\u0002\u0002\u0002", + "\u2261\u225f\u0003\u0002\u0002\u0002\u2262\u2259\u0003\u0002\u0002\u0002", + "\u2262\u2263\u0003\u0002\u0002\u0002\u2263\u2265\u0003\u0002\u0002\u0002", + "\u2264\u2266\u0007\u033f\u0002\u0002\u2265\u2264\u0003\u0002\u0002\u0002", + "\u2265\u2266\u0003\u0002\u0002\u0002\u2266\u02d3\u0003\u0002\u0002\u0002", + "\u2267\u2268\u0007\u013b\u0002\u0002\u2268\u226c\u0005\u03c6\u01e4\u0002", + "\u2269\u226d\u0005\u03c6\u01e4\u0002\u226a\u226d\u0005\u02d6\u016c\u0002", + "\u226b\u226d\u0005\u03a2\u01d2\u0002\u226c\u2269\u0003\u0002\u0002\u0002", + "\u226c\u226a\u0003\u0002\u0002\u0002\u226c\u226b\u0003\u0002\u0002\u0002", + "\u226d\u226f\u0003\u0002\u0002\u0002\u226e\u2270\u0007\u033f\u0002\u0002", + "\u226f\u226e\u0003\u0002\u0002\u0002\u226f\u2270\u0003\u0002\u0002\u0002", + "\u2270\u2299\u0003\u0002\u0002\u0002\u2271\u2272\u0007\u013b\u0002\u0002", + "\u2272\u2273\u0007\u015e\u0002\u0002\u2273\u2274\u0007\u0225\u0002\u0002", + "\u2274\u227e\u0007\u0232\u0002\u0002\u2275\u2276\u0007\u010a\u0002\u0002", + "\u2276\u227f\u0007\u0304\u0002\u0002\u2277\u2278\u0007\u010a\u0002\u0002", + "\u2278\u227f\u0007\u01b7\u0002\u0002\u2279\u227a\u0007\u02ab\u0002\u0002", + "\u227a\u227f\u0007\u010a\u0002\u0002\u227b\u227f\u0007\u02da\u0002\u0002", + "\u227c\u227f\u0007\u02d0\u0002\u0002\u227d\u227f\u0007\u0322\u0002\u0002", + "\u227e\u2275\u0003\u0002\u0002\u0002\u227e\u2277\u0003\u0002\u0002\u0002", + "\u227e\u2279\u0003\u0002\u0002\u0002\u227e\u227b\u0003\u0002\u0002\u0002", + "\u227e\u227c\u0003\u0002\u0002\u0002\u227e\u227d\u0003\u0002\u0002\u0002", + "\u227f\u2281\u0003\u0002\u0002\u0002\u2280\u2282\u0007\u033f\u0002\u0002", + "\u2281\u2280\u0003\u0002\u0002\u0002\u2281\u2282\u0003\u0002\u0002\u0002", + "\u2282\u2299\u0003\u0002\u0002\u0002\u2283\u2284\u0007\u013b\u0002\u0002", + "\u2284\u2285\u0007\u0098\u0002\u0002\u2285\u2286\u0005\u038e\u01c8\u0002", + "\u2286\u2288\u0005\u03a2\u01d2\u0002\u2287\u2289\u0007\u033f\u0002\u0002", + "\u2288\u2287\u0003\u0002\u0002\u0002\u2288\u2289\u0003\u0002\u0002\u0002", + "\u2289\u2299\u0003\u0002\u0002\u0002\u228a\u228b\u0007\u013b\u0002\u0002", + "\u228b\u228c\u0007\u018f\u0002\u0002\u228c\u2299\u0005\u03a2\u01d2\u0002", + "\u228d\u228e\u0007\u013b\u0002\u0002\u228e\u228f\u0007\u0296\u0002\u0002", + "\u228f\u2299\u0005\u03a2\u01d2\u0002\u2290\u2291\u0007\u013b\u0002\u0002", + "\u2291\u2292\u0007\u0190\u0002\u0002\u2292\u2299\u0005\u03a2\u01d2\u0002", + "\u2293\u2294\u0007\u013b\u0002\u0002\u2294\u2295\u0007\u0191\u0002\u0002", + "\u2295\u2299\u0005\u03a2\u01d2\u0002\u2296\u2297\u0007\u013b\u0002\u0002", + "\u2297\u2299\u0005\u034a\u01a6\u0002\u2298\u2267\u0003\u0002\u0002\u0002", + "\u2298\u2271\u0003\u0002\u0002\u0002\u2298\u2283\u0003\u0002\u0002\u0002", + "\u2298\u228a\u0003\u0002\u0002\u0002\u2298\u228d\u0003\u0002\u0002\u0002", + "\u2298\u2290\u0003\u0002\u0002\u0002\u2298\u2293\u0003\u0002\u0002\u0002", + "\u2298\u2296\u0003\u0002\u0002\u0002\u2299\u02d5\u0003\u0002\u0002\u0002", + "\u229a\u229d\u0005\u03c2\u01e2\u0002\u229b\u229d\u0007\u0321\u0002\u0002", + "\u229c\u229a\u0003\u0002\u0002\u0002\u229c\u229b\u0003\u0002\u0002\u0002", + "\u229d\u02d7\u0003\u0002\u0002\u0002\u229e\u229f\b\u016d\u0001\u0002", + "\u229f\u22a7\u0005\u02da\u016e\u0002\u22a0\u22a7\u0005\u0340\u01a1\u0002", + "\u22a1\u22a7\u0005\u02dc\u016f\u0002\u22a2\u22a7\u0005\u039a\u01ce\u0002", + "\u22a3\u22a7\u0005\u02e0\u0171\u0002\u22a4\u22a7\u0005\u02de\u0170\u0002", + "\u22a5\u22a7\u0005\u0370\u01b9\u0002\u22a6\u229e\u0003\u0002\u0002\u0002", + "\u22a6\u22a0\u0003\u0002\u0002\u0002\u22a6\u22a1\u0003\u0002\u0002\u0002", + "\u22a6\u22a2\u0003\u0002\u0002\u0002\u22a6\u22a3\u0003\u0002\u0002\u0002", + "\u22a6\u22a4\u0003\u0002\u0002\u0002\u22a6\u22a5\u0003\u0002\u0002\u0002", + "\u22a7\u22bb\u0003\u0002\u0002\u0002\u22a8\u22a9\f\u0007\u0002\u0002", + "\u22a9\u22aa\tk\u0002\u0002\u22aa\u22ba\u0005\u02d8\u016d\b\u22ab\u22ac", + "\f\u0006\u0002\u0002\u22ac\u22ad\tl\u0002\u0002\u22ad\u22ba\u0005\u02d8", + "\u016d\u0007\u22ae\u22af\f\u0005\u0002\u0002\u22af\u22b0\u0005\u03ca", + "\u01e6\u0002\u22b0\u22b1\u0005\u02d8\u016d\u0006\u22b1\u22ba\u0003\u0002", + "\u0002\u0002\u22b2\u22b3\f\u0004\u0002\u0002\u22b3\u22b4\u0005\u03cc", + "\u01e7\u0002\u22b4\u22b5\u0005\u02d8\u016d\u0005\u22b5\u22ba\u0003\u0002", + "\u0002\u0002\u22b6\u22b7\f\f\u0002\u0002\u22b7\u22b8\u00077\u0002\u0002", + "\u22b8\u22ba\u0005\u03c6\u01e4\u0002\u22b9\u22a8\u0003\u0002\u0002\u0002", + "\u22b9\u22ab\u0003\u0002\u0002\u0002\u22b9\u22ae\u0003\u0002\u0002\u0002", + "\u22b9\u22b2\u0003\u0002\u0002\u0002\u22b9\u22b6\u0003\u0002\u0002\u0002", + "\u22ba\u22bd\u0003\u0002\u0002\u0002\u22bb\u22b9\u0003\u0002\u0002\u0002", + "\u22bb\u22bc\u0003\u0002\u0002\u0002\u22bc\u02d9\u0003\u0002\u0002\u0002", + "\u22bd\u22bb\u0003\u0002\u0002\u0002\u22be\u22c3\u0007Y\u0002\u0002", + "\u22bf\u22c3\u0007\u00df\u0002\u0002\u22c0\u22c3\u0007\u0321\u0002\u0002", + "\u22c1\u22c3\u0005\u03c2\u01e2\u0002\u22c2\u22be\u0003\u0002\u0002\u0002", + "\u22c2\u22bf\u0003\u0002\u0002\u0002\u22c2\u22c0\u0003\u0002\u0002\u0002", + "\u22c2\u22c1\u0003\u0002\u0002\u0002\u22c3\u02db\u0003\u0002\u0002\u0002", + "\u22c4\u22c5\u0007*\u0002\u0002\u22c5\u22c7\u0005\u02d8\u016d\u0002", + "\u22c6\u22c8\u0005\u034e\u01a8\u0002\u22c7\u22c6\u0003\u0002\u0002\u0002", + "\u22c8\u22c9\u0003\u0002\u0002\u0002\u22c9\u22c7\u0003\u0002\u0002\u0002", + "\u22c9\u22ca\u0003\u0002\u0002\u0002\u22ca\u22cd\u0003\u0002\u0002\u0002", + "\u22cb\u22cc\u0007j\u0002\u0002\u22cc\u22ce\u0005\u02d8\u016d\u0002", + "\u22cd\u22cb\u0003\u0002\u0002\u0002\u22cd\u22ce\u0003\u0002\u0002\u0002", + "\u22ce\u22cf\u0003\u0002\u0002\u0002\u22cf\u22d0\u0007l\u0002\u0002", + "\u22d0\u22de\u0003\u0002\u0002\u0002\u22d1\u22d3\u0007*\u0002\u0002", + "\u22d2\u22d4\u0005\u0350\u01a9\u0002\u22d3\u22d2\u0003\u0002\u0002\u0002", + "\u22d4\u22d5\u0003\u0002\u0002\u0002\u22d5\u22d3\u0003\u0002\u0002\u0002", + "\u22d5\u22d6\u0003\u0002\u0002\u0002\u22d6\u22d9\u0003\u0002\u0002\u0002", + "\u22d7\u22d8\u0007j\u0002\u0002\u22d8\u22da\u0005\u02d8\u016d\u0002", + "\u22d9\u22d7\u0003\u0002\u0002\u0002\u22d9\u22da\u0003\u0002\u0002\u0002", + "\u22da\u22db\u0003\u0002\u0002\u0002\u22db\u22dc\u0007l\u0002\u0002", + "\u22dc\u22de\u0003\u0002\u0002\u0002\u22dd\u22c4\u0003\u0002\u0002\u0002", + "\u22dd\u22d1\u0003\u0002\u0002\u0002\u22de\u02dd\u0003\u0002\u0002\u0002", + "\u22df\u22e0\u0007\u0346\u0002\u0002\u22e0\u22e4\u0005\u02d8\u016d\u0002", + "\u22e1\u22e2\tm\u0002\u0002\u22e2\u22e4\u0005\u02d8\u016d\u0002\u22e3", + "\u22df\u0003\u0002\u0002\u0002\u22e3\u22e1\u0003\u0002\u0002\u0002\u22e4", + "\u02df\u0003\u0002\u0002\u0002\u22e5\u22e6\u0007\u033c\u0002\u0002\u22e6", + "\u22e7\u0005\u02d8\u016d\u0002\u22e7\u22e8\u0007\u033d\u0002\u0002\u22e8", + "\u22ee\u0003\u0002\u0002\u0002\u22e9\u22ea\u0007\u033c\u0002\u0002\u22ea", + "\u22eb\u0005\u02e4\u0173\u0002\u22eb\u22ec\u0007\u033d\u0002\u0002\u22ec", + "\u22ee\u0003\u0002\u0002\u0002\u22ed\u22e5\u0003\u0002\u0002\u0002\u22ed", + "\u22e9\u0003\u0002\u0002\u0002\u22ee\u02e1\u0003\u0002\u0002\u0002\u22ef", + "\u22f8\u0007\u00df\u0002\u0002\u22f0\u22f8\u0005\u03c2\u01e2\u0002\u22f1", + "\u22f8\u0005\u0340\u01a1\u0002\u22f2\u22f8\u0007\u0321\u0002\u0002\u22f3", + "\u22f4\u0007\u033c\u0002\u0002\u22f4\u22f5\u0005\u02e2\u0172\u0002\u22f5", + "\u22f6\u0007\u033d\u0002\u0002\u22f6\u22f8\u0003\u0002\u0002\u0002\u22f7", + "\u22ef\u0003\u0002\u0002\u0002\u22f7\u22f0\u0003\u0002\u0002\u0002\u22f7", + "\u22f1\u0003\u0002\u0002\u0002\u22f7\u22f2\u0003\u0002\u0002\u0002\u22f7", + "\u22f3\u0003\u0002\u0002\u0002\u22f8\u02e3\u0003\u0002\u0002\u0002\u22f9", + "\u22fa\u0005\u01be\u00e0\u0002\u22fa\u02e5\u0003\u0002\u0002\u0002\u22fb", + "\u22fe\u0007\u0179\u0002\u0002\u22fc\u22fd\u0007\u0317\u0002\u0002\u22fd", + "\u22ff\u0007\u033e\u0002\u0002\u22fe\u22fc\u0003\u0002\u0002\u0002\u22fe", + "\u22ff\u0003\u0002\u0002\u0002\u22ff\u2300\u0003\u0002\u0002\u0002\u2300", + "\u2305\u0005\u02e8\u0175\u0002\u2301\u2302\u0007\u033e\u0002\u0002\u2302", + "\u2304\u0005\u02e8\u0175\u0002\u2303\u2301\u0003\u0002\u0002\u0002\u2304", + "\u2307\u0003\u0002\u0002\u0002\u2305\u2303\u0003\u0002\u0002\u0002\u2305", + "\u2306\u0003\u0002\u0002\u0002\u2306\u2316\u0003\u0002\u0002\u0002\u2307", + "\u2305\u0003\u0002\u0002\u0002\u2308\u2309\u0007\u0179\u0002\u0002\u2309", + "\u230e\u0007 \u0002\u0002\u230a\u230b\u0007\u033c\u0002\u0002\u230b", + "\u230c\u0005\u0336\u019c\u0002\u230c\u230d\u0007\u033d\u0002\u0002\u230d", + "\u230f\u0003\u0002\u0002\u0002\u230e\u230a\u0003\u0002\u0002\u0002\u230e", + "\u230f\u0003\u0002\u0002\u0002\u230f\u2310\u0003\u0002\u0002\u0002\u2310", + "\u2311\u0007\u0010\u0002\u0002\u2311\u2312\u0007\u033c\u0002\u0002\u2312", + "\u2313\u0005\u01be\u00e0\u0002\u2313\u2314\u0007\u033d\u0002\u0002\u2314", + "\u2316\u0003\u0002\u0002\u0002\u2315\u22fb\u0003\u0002\u0002\u0002\u2315", + "\u2308\u0003\u0002\u0002\u0002\u2316\u02e7\u0003\u0002\u0002\u0002\u2317", + "\u231c\u0005\u03c6\u01e4\u0002\u2318\u2319\u0007\u033c\u0002\u0002\u2319", + "\u231a\u0005\u039e\u01d0\u0002\u231a\u231b\u0007\u033d\u0002\u0002\u231b", + "\u231d\u0003\u0002\u0002\u0002\u231c\u2318\u0003\u0002\u0002\u0002\u231c", + "\u231d\u0003\u0002\u0002\u0002\u231d\u231e\u0003\u0002\u0002\u0002\u231e", + "\u231f\u0007\u0010\u0002\u0002\u231f\u2320\u0007\u033c\u0002\u0002\u2320", + "\u2321\u0005\u01be\u00e0\u0002\u2321\u2322\u0007\u033d\u0002\u0002\u2322", + "\u02e9\u0003\u0002\u0002\u0002\u2323\u2326\u0005\u039a\u01ce\u0002\u2324", + "\u2326\u0007\u0321\u0002\u0002\u2325\u2323\u0003\u0002\u0002\u0002\u2325", + "\u2324\u0003\u0002\u0002\u0002\u2326\u2329\u0003\u0002\u0002\u0002\u2327", + "\u232a\u0007\u032a\u0002\u0002\u2328\u232a\u0005\u03cc\u01e7\u0002\u2329", + "\u2327\u0003\u0002\u0002\u0002\u2329\u2328\u0003\u0002\u0002\u0002\u232a", + "\u232b\u0003\u0002\u0002\u0002\u232b\u2334\u0005\u02d8\u016d\u0002\u232c", + "\u232d\u0005\u03c6\u01e4\u0002\u232d\u232e\u0007\u0337\u0002\u0002\u232e", + "\u232f\u0005\u03c6\u01e4\u0002\u232f\u2330\u0007\u033c\u0002\u0002\u2330", + "\u2331\u0005\u0366\u01b4\u0002\u2331\u2332\u0007\u033d\u0002\u0002\u2332", + "\u2334\u0003\u0002\u0002\u0002\u2333\u2325\u0003\u0002\u0002\u0002\u2333", + "\u232c\u0003\u0002\u0002\u0002\u2334\u02eb\u0003\u0002\u0002\u0002\u2335", + "\u233a\u0005\u02ee\u0178\u0002\u2336\u2337\u0007\u033e\u0002\u0002\u2337", + "\u2339\u0005\u02ee\u0178\u0002\u2338\u2336\u0003\u0002\u0002\u0002\u2339", + "\u233c\u0003\u0002\u0002\u0002\u233a\u2338\u0003\u0002\u0002\u0002\u233a", + "\u233b\u0003\u0002\u0002\u0002\u233b\u02ed\u0003\u0002\u0002\u0002\u233c", + "\u233a\u0003\u0002\u0002\u0002\u233d\u2342\u0005\u02f0\u0179\u0002\u233e", + "\u233f\u0007\u00ed\u0002\u0002\u233f\u2341\u0005\u02f0\u0179\u0002\u2340", + "\u233e\u0003\u0002\u0002\u0002\u2341\u2344\u0003\u0002\u0002\u0002\u2342", + "\u2340\u0003\u0002\u0002\u0002\u2342\u2343\u0003\u0002\u0002\u0002\u2343", + "\u02ef\u0003\u0002\u0002\u0002\u2344\u2342\u0003\u0002\u0002\u0002\u2345", + "\u234a\u0005\u02f2\u017a\u0002\u2346\u2347\u0007\u000b\u0002\u0002\u2347", + "\u2349\u0005\u02f2\u017a\u0002\u2348\u2346\u0003\u0002\u0002\u0002\u2349", + "\u234c\u0003\u0002\u0002\u0002\u234a\u2348\u0003\u0002\u0002\u0002\u234a", + "\u234b\u0003\u0002\u0002\u0002\u234b\u02f1\u0003\u0002\u0002\u0002\u234c", + "\u234a\u0003\u0002\u0002\u0002\u234d\u234f\u0007\u00dc\u0002\u0002\u234e", + "\u234d\u0003\u0002\u0002\u0002\u234e\u234f\u0003\u0002\u0002\u0002\u234f", + "\u2350\u0003\u0002\u0002\u0002\u2350\u2351\u0005\u02f4\u017b\u0002\u2351", + "\u02f3\u0003\u0002\u0002\u0002\u2352\u2353\u0007w\u0002\u0002\u2353", + "\u2354\u0007\u033c\u0002\u0002\u2354\u2355\u0005\u02e4\u0173\u0002\u2355", + "\u2356\u0007\u033d\u0002\u0002\u2356\u238a\u0003\u0002\u0002\u0002\u2357", + "\u2358\u0005\u02d8\u016d\u0002\u2358\u2359\u0005\u03ca\u01e6\u0002\u2359", + "\u235a\u0005\u02d8\u016d\u0002\u235a\u238a\u0003\u0002\u0002\u0002\u235b", + "\u235c\u0005\u02d8\u016d\u0002\u235c\u235d\u0005\u03ca\u01e6\u0002\u235d", + "\u235e\tn\u0002\u0002\u235e\u235f\u0007\u033c\u0002\u0002\u235f\u2360", + "\u0005\u02e4\u0173\u0002\u2360\u2361\u0007\u033d\u0002\u0002\u2361\u238a", + "\u0003\u0002\u0002\u0002\u2362\u2364\u0005\u02d8\u016d\u0002\u2363\u2365", + "\u0007\u00dc\u0002\u0002\u2364\u2363\u0003\u0002\u0002\u0002\u2364\u2365", + "\u0003\u0002\u0002\u0002\u2365\u2366\u0003\u0002\u0002\u0002\u2366\u2367", + "\u0007\u001d\u0002\u0002\u2367\u2368\u0005\u02d8\u016d\u0002\u2368\u2369", + "\u0007\u000b\u0002\u0002\u2369\u236a\u0005\u02d8\u016d\u0002\u236a\u238a", + "\u0003\u0002\u0002\u0002\u236b\u236d\u0005\u02d8\u016d\u0002\u236c\u236e", + "\u0007\u00dc\u0002\u0002\u236d\u236c\u0003\u0002\u0002\u0002\u236d\u236e", + "\u0003\u0002\u0002\u0002\u236e\u236f\u0003\u0002\u0002\u0002\u236f\u2370", + "\u0007\u009b\u0002\u0002\u2370\u2373\u0007\u033c\u0002\u0002\u2371\u2374", + "\u0005\u02e4\u0173\u0002\u2372\u2374\u0005\u0366\u01b4\u0002\u2373\u2371", + "\u0003\u0002\u0002\u0002\u2373\u2372\u0003\u0002\u0002\u0002\u2374\u2375", + "\u0003\u0002\u0002\u0002\u2375\u2376\u0007\u033d\u0002\u0002\u2376\u238a", + "\u0003\u0002\u0002\u0002\u2377\u2379\u0005\u02d8\u016d\u0002\u2378\u237a", + "\u0007\u00dc\u0002\u0002\u2379\u2378\u0003\u0002\u0002\u0002\u2379\u237a", + "\u0003\u0002\u0002\u0002\u237a\u237b\u0003\u0002\u0002\u0002\u237b\u237c", + "\u0007\u00b4\u0002\u0002\u237c\u237f\u0005\u02d8\u016d\u0002\u237d\u237e", + "\u0007o\u0002\u0002\u237e\u2380\u0005\u02d8\u016d\u0002\u237f\u237d", + "\u0003\u0002\u0002\u0002\u237f\u2380\u0003\u0002\u0002\u0002\u2380\u238a", + "\u0003\u0002\u0002\u0002\u2381\u2382\u0005\u02d8\u016d\u0002\u2382\u2383", + "\u0007\u00a8\u0002\u0002\u2383\u2384\u0005\u03a6\u01d4\u0002\u2384\u238a", + "\u0003\u0002\u0002\u0002\u2385\u2386\u0007\u033c\u0002\u0002\u2386\u2387", + "\u0005\u02ee\u0178\u0002\u2387\u2388\u0007\u033d\u0002\u0002\u2388\u238a", + "\u0003\u0002\u0002\u0002\u2389\u2352\u0003\u0002\u0002\u0002\u2389\u2357", + "\u0003\u0002\u0002\u0002\u2389\u235b\u0003\u0002\u0002\u0002\u2389\u2362", + "\u0003\u0002\u0002\u0002\u2389\u236b\u0003\u0002\u0002\u0002\u2389\u2377", + "\u0003\u0002\u0002\u0002\u2389\u2381\u0003\u0002\u0002\u0002\u2389\u2385", + "\u0003\u0002\u0002\u0002\u238a\u02f5\u0003\u0002\u0002\u0002\u238b\u2391", + "\u0005\u02fa\u017e\u0002\u238c\u238d\u0007\u033c\u0002\u0002\u238d\u238e", + "\u0005\u02f6\u017c\u0002\u238e\u238f\u0007\u033d\u0002\u0002\u238f\u2391", + "\u0003\u0002\u0002\u0002\u2390\u238b\u0003\u0002\u0002\u0002\u2390\u238c", + "\u0003\u0002\u0002\u0002\u2391\u2395\u0003\u0002\u0002\u0002\u2392\u2394", + "\u0005\u02f8\u017d\u0002\u2393\u2392\u0003\u0002\u0002\u0002\u2394\u2397", + "\u0003\u0002\u0002\u0002\u2395\u2393\u0003\u0002\u0002\u0002\u2395\u2396", + "\u0003\u0002\u0002\u0002\u2396\u02f7\u0003\u0002\u0002\u0002\u2397\u2395", + "\u0003\u0002\u0002\u0002\u2398\u239a\u0007\u0164\u0002\u0002\u2399\u239b", + "\u0007\u0006\u0002\u0002\u239a\u2399\u0003\u0002\u0002\u0002\u239a\u239b", + "\u0003\u0002\u0002\u0002\u239b\u239f\u0003\u0002\u0002\u0002\u239c\u239f", + "\u0007t\u0002\u0002\u239d\u239f\u0007\u00a4\u0002\u0002\u239e\u2398", + "\u0003\u0002\u0002\u0002\u239e\u239c\u0003\u0002\u0002\u0002\u239e\u239d", + "\u0003\u0002\u0002\u0002\u239f\u23a5\u0003\u0002\u0002\u0002\u23a0\u23a6", + "\u0005\u02fa\u017e\u0002\u23a1\u23a2\u0007\u033c\u0002\u0002\u23a2\u23a3", + "\u0005\u02f6\u017c\u0002\u23a3\u23a4\u0007\u033d\u0002\u0002\u23a4\u23a6", + "\u0003\u0002\u0002\u0002\u23a5\u23a0\u0003\u0002\u0002\u0002\u23a5\u23a1", + "\u0003\u0002\u0002\u0002\u23a6\u02f9\u0003\u0002\u0002\u0002\u23a7\u23a9", + "\u0007\u0131\u0002\u0002\u23a8\u23aa\to\u0002\u0002\u23a9\u23a8\u0003", + "\u0002\u0002\u0002\u23a9\u23aa\u0003\u0002\u0002\u0002\u23aa\u23ac\u0003", + "\u0002\u0002\u0002\u23ab\u23ad\u0005\u02fc\u017f\u0002\u23ac\u23ab\u0003", + "\u0002\u0002\u0002\u23ac\u23ad\u0003\u0002\u0002\u0002\u23ad\u23ae\u0003", + "\u0002\u0002\u0002\u23ae\u23b1\u0005\u0312\u018a\u0002\u23af\u23b0\u0007", + "\u00a5\u0002\u0002\u23b0\u23b2\u0005\u038e\u01c8\u0002\u23b1\u23af\u0003", + "\u0002\u0002\u0002\u23b1\u23b2\u0003\u0002\u0002\u0002\u23b2\u23b5\u0003", + "\u0002\u0002\u0002\u23b3\u23b4\u0007\u008b\u0002\u0002\u23b4\u23b6\u0005", + "\u0320\u0191\u0002\u23b5\u23b3\u0003\u0002\u0002\u0002\u23b5\u23b6\u0003", + "\u0002\u0002\u0002\u23b6\u23b9\u0003\u0002\u0002\u0002\u23b7\u23b8\u0007", + "\u0176\u0002\u0002\u23b8\u23ba\u0005\u02ee\u0178\u0002\u23b9\u23b7\u0003", + "\u0002\u0002\u0002\u23b9\u23ba\u0003\u0002\u0002\u0002\u23ba\u23c8\u0003", + "\u0002\u0002\u0002\u23bb\u23bc\u0007\u0092\u0002\u0002\u23bc\u23be\u0007", + "&\u0002\u0002\u23bd\u23bf\u0007\u0006\u0002\u0002\u23be\u23bd\u0003", + "\u0002\u0002\u0002\u23be\u23bf\u0003\u0002\u0002\u0002\u23bf\u23c0\u0003", + "\u0002\u0002\u0002\u23c0\u23c5\u0005\u030a\u0186\u0002\u23c1\u23c2\u0007", + "\u033e\u0002\u0002\u23c2\u23c4\u0005\u030a\u0186\u0002\u23c3\u23c1\u0003", + "\u0002\u0002\u0002\u23c4\u23c7\u0003\u0002\u0002\u0002\u23c5\u23c3\u0003", + "\u0002\u0002\u0002\u23c5\u23c6\u0003\u0002\u0002\u0002\u23c6\u23c9\u0003", + "\u0002\u0002\u0002\u23c7\u23c5\u0003\u0002\u0002\u0002\u23c8\u23bb\u0003", + "\u0002\u0002\u0002\u23c8\u23c9\u0003\u0002\u0002\u0002\u23c9\u23cc\u0003", + "\u0002\u0002\u0002\u23ca\u23cb\u0007\u0093\u0002\u0002\u23cb\u23cd\u0005", + "\u02ee\u0178\u0002\u23cc\u23ca\u0003\u0002\u0002\u0002\u23cc\u23cd\u0003", + "\u0002\u0002\u0002\u23cd\u02fb\u0003\u0002\u0002\u0002\u23ce\u23d1\u0007", + "\u015b\u0002\u0002\u23cf\u23d2\u0005\u02fe\u0180\u0002\u23d0\u23d2\u0005", + "\u0300\u0181\u0002\u23d1\u23cf\u0003\u0002\u0002\u0002\u23d1\u23d0\u0003", + "\u0002\u0002\u0002\u23d2\u23d5\u0003\u0002\u0002\u0002\u23d3\u23d4\u0007", + "\u0179\u0002\u0002\u23d4\u23d6\u0007\u02f4\u0002\u0002\u23d5\u23d3\u0003", + "\u0002\u0002\u0002\u23d5\u23d6\u0003\u0002\u0002\u0002\u23d6\u02fd\u0003", + "\u0002\u0002\u0002\u23d7\u23d8\tp\u0002\u0002\u23d8\u23df\u0007\u00f5", + "\u0002\u0002\u23d9\u23da\u0007\u033c\u0002\u0002\u23da\u23db\u0005\u02d8", + "\u016d\u0002\u23db\u23dc\u0007\u033d\u0002\u0002\u23dc\u23dd\u0007\u00f5", + "\u0002\u0002\u23dd\u23df\u0003\u0002\u0002\u0002\u23de\u23d7\u0003\u0002", + "\u0002\u0002\u23de\u23d9\u0003\u0002\u0002\u0002\u23df\u02ff\u0003\u0002", + "\u0002\u0002\u23e0\u23e6\u0007\u0322\u0002\u0002\u23e1\u23e2\u0007\u033c", + "\u0002\u0002\u23e2\u23e3\u0005\u02d8\u016d\u0002\u23e3\u23e4\u0007\u033d", + "\u0002\u0002\u23e4\u23e6\u0003\u0002\u0002\u0002\u23e5\u23e0\u0003\u0002", + "\u0002\u0002\u23e5\u23e1\u0003\u0002\u0002\u0002\u23e6\u0301\u0003\u0002", + "\u0002\u0002\u23e7\u23e8\u0007\u00ee\u0002\u0002\u23e8\u23e9\u0007&", + "\u0002\u0002\u23e9\u23ee\u0005\u0308\u0185\u0002\u23ea\u23eb\u0007\u033e", + "\u0002\u0002\u23eb\u23ed\u0005\u0308\u0185\u0002\u23ec\u23ea\u0003\u0002", + "\u0002\u0002\u23ed\u23f0\u0003\u0002\u0002\u0002\u23ee\u23ec\u0003\u0002", + "\u0002\u0002\u23ee\u23ef\u0003\u0002\u0002\u0002\u23ef\u23fc\u0003\u0002", + "\u0002\u0002\u23f0\u23ee\u0003\u0002\u0002\u0002\u23f1\u23f2\u0007\u0273", + "\u0002\u0002\u23f2\u23f3\u0005\u02d8\u016d\u0002\u23f3\u23fa\tq\u0002", + "\u0002\u23f4\u23f5\u0007\u0080\u0002\u0002\u23f5\u23f6\tr\u0002\u0002", + "\u23f6\u23f7\u0005\u02d8\u016d\u0002\u23f7\u23f8\tq\u0002\u0002\u23f8", + "\u23f9\u0007\u0276\u0002\u0002\u23f9\u23fb\u0003\u0002\u0002\u0002\u23fa", + "\u23f4\u0003\u0002\u0002\u0002\u23fa\u23fb\u0003\u0002\u0002\u0002\u23fb", + "\u23fd\u0003\u0002\u0002\u0002\u23fc\u23f1\u0003\u0002\u0002\u0002\u23fc", + "\u23fd\u0003\u0002\u0002\u0002\u23fd\u0303\u0003\u0002\u0002\u0002\u23fe", + "\u23ff\u0007\u0085\u0002\u0002\u23ff\u2457\u0007\"\u0002\u0002\u2400", + "\u2401\u0007\u0085\u0002\u0002\u2401\u2409\u0007\u0315\u0002\u0002\u2402", + "\u2406\u0007\u0109\u0002\u0002\u2403\u2404\u0007\u033c\u0002\u0002\u2404", + "\u2405\u0007\u0326\u0002\u0002\u2405\u2407\u0007\u033d\u0002\u0002\u2406", + "\u2403\u0003\u0002\u0002\u0002\u2406\u2407\u0003\u0002\u0002\u0002\u2407", + "\u240a\u0003\u0002\u0002\u0002\u2408\u240a\u0007\u0198\u0002\u0002\u2409", + "\u2402\u0003\u0002\u0002\u0002\u2409\u2408\u0003\u0002\u0002\u0002\u240a", + "\u240e\u0003\u0002\u0002\u0002\u240b\u240d\u0005\u0306\u0184\u0002\u240c", + "\u240b\u0003\u0002\u0002\u0002\u240d\u2410\u0003\u0002\u0002\u0002\u240e", + "\u240c\u0003\u0002\u0002\u0002\u240e\u240f\u0003\u0002\u0002\u0002\u240f", + "\u241b\u0003\u0002\u0002\u0002\u2410\u240e\u0003\u0002\u0002\u0002\u2411", + "\u2419\u0007\u033e\u0002\u0002\u2412\u241a\u0007\u0316\u0002\u0002\u2413", + "\u2417\u0007\u0318\u0002\u0002\u2414\u2415\u0007\u033c\u0002\u0002\u2415", + "\u2416\u0007\u0326\u0002\u0002\u2416\u2418\u0007\u033d\u0002\u0002\u2417", + "\u2414\u0003\u0002\u0002\u0002\u2417\u2418\u0003\u0002\u0002\u0002\u2418", + "\u241a\u0003\u0002\u0002\u0002\u2419\u2412\u0003\u0002\u0002\u0002\u2419", + "\u2413\u0003\u0002\u0002\u0002\u241a\u241c\u0003\u0002\u0002\u0002\u241b", + "\u2411\u0003\u0002\u0002\u0002\u241b\u241c\u0003\u0002\u0002\u0002\u241c", + "\u2420\u0003\u0002\u0002\u0002\u241d\u241e\u0007\u033e\u0002\u0002\u241e", + "\u241f\u0007\u01e6\u0002\u0002\u241f\u2421\ts\u0002\u0002\u2420\u241d", + "\u0003\u0002\u0002\u0002\u2420\u2421\u0003\u0002\u0002\u0002\u2421\u2457", + "\u0003\u0002\u0002\u0002\u2422\u2423\u0007\u0085\u0002\u0002\u2423\u2424", + "\u0007\u0315\u0002\u0002\u2424\u2428\u0007\u01f4\u0002\u0002\u2425\u2427", + "\u0005\u0306\u0184\u0002\u2426\u2425\u0003\u0002\u0002\u0002\u2427\u242a", + "\u0003\u0002\u0002\u0002\u2428\u2426\u0003\u0002\u0002\u0002\u2428\u2429", + "\u0003\u0002\u0002\u0002\u2429\u242d\u0003\u0002\u0002\u0002\u242a\u2428", + "\u0003\u0002\u0002\u0002\u242b\u242c\u0007\u033e\u0002\u0002\u242c\u242e", + "\u0007\u0316\u0002\u0002\u242d\u242b\u0003\u0002\u0002\u0002\u242d\u242e", + "\u0003\u0002\u0002\u0002\u242e\u2457\u0003\u0002\u0002\u0002\u242f\u2430", + "\u0007\u0085\u0002\u0002\u2430\u2431\u0007\u0315\u0002\u0002\u2431\u2435", + "\u0007\u0283\u0002\u0002\u2432\u2433\u0007\u033c\u0002\u0002\u2433\u2434", + "\u0007\u0326\u0002\u0002\u2434\u2436\u0007\u033d\u0002\u0002\u2435\u2432", + "\u0003\u0002\u0002\u0002\u2435\u2436\u0003\u0002\u0002\u0002\u2436\u243a", + "\u0003\u0002\u0002\u0002\u2437\u2439\u0005\u0306\u0184\u0002\u2438\u2437", + "\u0003\u0002\u0002\u0002\u2439\u243c\u0003\u0002\u0002\u0002\u243a\u2438", + "\u0003\u0002\u0002\u0002\u243a\u243b\u0003\u0002\u0002\u0002\u243b\u2440", + "\u0003\u0002\u0002\u0002\u243c\u243a\u0003\u0002\u0002\u0002\u243d\u243e", + "\u0007\u033e\u0002\u0002\u243e\u243f\u0007\u01e6\u0002\u0002\u243f\u2441", + "\ts\u0002\u0002\u2440\u243d\u0003\u0002\u0002\u0002\u2440\u2441\u0003", + "\u0002\u0002\u0002\u2441\u2457\u0003\u0002\u0002\u0002\u2442\u2443\u0007", + "\u0085\u0002\u0002\u2443\u2444\u0007\u0227\u0002\u0002\u2444\u244c\t", + "t\u0002\u0002\u2445\u2446\u0007\u033e\u0002\u0002\u2446\u244a\u0007", + "\u02b7\u0002\u0002\u2447\u2448\u0007\u033c\u0002\u0002\u2448\u2449\u0007", + "\u0326\u0002\u0002\u2449\u244b\u0007\u033d\u0002\u0002\u244a\u2447\u0003", + "\u0002\u0002\u0002\u244a\u244b\u0003\u0002\u0002\u0002\u244b\u244d\u0003", + "\u0002\u0002\u0002\u244c\u2445\u0003\u0002\u0002\u0002\u244c\u244d\u0003", + "\u0002\u0002\u0002\u244d\u2450\u0003\u0002\u0002\u0002\u244e\u244f\u0007", + "\u033e\u0002\u0002\u244f\u2451\u0007\u021d\u0002\u0002\u2450\u244e\u0003", + "\u0002\u0002\u0002\u2450\u2451\u0003\u0002\u0002\u0002\u2451\u2454\u0003", + "\u0002\u0002\u0002\u2452\u2453\u0007\u033e\u0002\u0002\u2453\u2455\u0007", + "\u0312\u0002\u0002\u2454\u2452\u0003\u0002\u0002\u0002\u2454\u2455\u0003", + "\u0002\u0002\u0002\u2455\u2457\u0003\u0002\u0002\u0002\u2456\u23fe\u0003", + "\u0002\u0002\u0002\u2456\u2400\u0003\u0002\u0002\u0002\u2456\u2422\u0003", + "\u0002\u0002\u0002\u2456\u242f\u0003\u0002\u0002\u0002\u2456\u2442\u0003", + "\u0002\u0002\u0002\u2457\u0305\u0003\u0002\u0002\u0002\u2458\u2461\u0007", + "\u033e\u0002\u0002\u2459\u2462\u0007\u01a4\u0002\u0002\u245a\u2462\u0007", + "\u0301\u0002\u0002\u245b\u245f\u0007\u02b7\u0002\u0002\u245c\u245d\u0007", + "\u033c\u0002\u0002\u245d\u245e\u0007\u0326\u0002\u0002\u245e\u2460\u0007", + "\u033d\u0002\u0002\u245f\u245c\u0003\u0002\u0002\u0002\u245f\u2460\u0003", + "\u0002\u0002\u0002\u2460\u2462\u0003\u0002\u0002\u0002\u2461\u2459\u0003", + "\u0002\u0002\u0002\u2461\u245a\u0003\u0002\u0002\u0002\u2461\u245b\u0003", + "\u0002\u0002\u0002\u2462\u0307\u0003\u0002\u0002\u0002\u2463\u2465\u0005", + "\u02d8\u016d\u0002\u2464\u2466\tu\u0002\u0002\u2465\u2464\u0003\u0002", + "\u0002\u0002\u2465\u2466\u0003\u0002\u0002\u0002\u2466\u0309\u0003\u0002", + "\u0002\u0002\u2467\u2468\u0005\u02d8\u016d\u0002\u2468\u030b\u0003\u0002", + "\u0002\u0002\u2469\u246a\u0007\u00ec\u0002\u0002\u246a\u246b\u0007\u033c", + "\u0002\u0002\u246b\u2470\u0005\u030e\u0188\u0002\u246c\u246d\u0007\u033e", + "\u0002\u0002\u246d\u246f\u0005\u030e\u0188\u0002\u246e\u246c\u0003\u0002", + "\u0002\u0002\u246f\u2472\u0003\u0002\u0002\u0002\u2470\u246e\u0003\u0002", + "\u0002\u0002\u2470\u2471\u0003\u0002\u0002\u0002\u2471\u2473\u0003\u0002", + "\u0002\u0002\u2472\u2470\u0003\u0002\u0002\u0002\u2473\u2474\u0007\u033d", + "\u0002\u0002\u2474\u030d\u0003\u0002\u0002\u0002\u2475\u2476\u0007\u01f9", + "\u0002\u0002\u2476\u24a3\u0007\u0322\u0002\u0002\u2477\u2478\tv\u0002", + "\u0002\u2478\u24a3\u0007\u0092\u0002\u0002\u2479\u247a\tw\u0002\u0002", + "\u247a\u24a3\u0007\u0164\u0002\u0002\u247b\u247c\tx\u0002\u0002\u247c", + "\u24a3\u0007\u00aa\u0002\u0002\u247d\u247e\u0007\u01f2\u0002\u0002\u247e", + "\u24a3\u0007\u030f\u0002\u0002\u247f\u2480\u0007\u0203\u0002\u0002\u2480", + "\u24a3\u0007\u00ee\u0002\u0002\u2481\u24a3\u0007\u0219\u0002\u0002\u2482", + "\u2483\u0007\u0229\u0002\u0002\u2483\u24a3\u0007\u00fb\u0002\u0002\u2484", + "\u2485\u0007\u022a\u0002\u0002\u2485\u24a3\u0007\u00fb\u0002\u0002\u2486", + "\u2487\u0007\u024a\u0002\u0002\u2487\u24a3\u0007\u0322\u0002\u0002\u2488", + "\u2489\u0007\u024b\u0002\u0002\u2489\u24a3\u0007\u0322\u0002\u0002\u248a", + "\u248b\u0007\u0279\u0002\u0002\u248b\u248c\u0007\u0085\u0002\u0002\u248c", + "\u248d\u0007\u033c\u0002\u0002\u248d\u2492\u0005\u0310\u0189\u0002\u248e", + "\u248f\u0007\u033e\u0002\u0002\u248f\u2491\u0005\u0310\u0189\u0002\u2490", + "\u248e\u0003\u0002\u0002\u0002\u2491\u2494\u0003\u0002\u0002\u0002\u2492", + "\u2490\u0003\u0002\u0002\u0002\u2492\u2493\u0003\u0002\u0002\u0002\u2493", + "\u2495\u0003\u0002\u0002\u0002\u2494\u2492\u0003\u0002\u0002\u0002\u2495", + "\u2496\u0007\u033d\u0002\u0002\u2496\u24a3\u0003\u0002\u0002\u0002\u2497", + "\u2498\u0007\u0279\u0002\u0002\u2498\u2499\u0007\u0085\u0002\u0002\u2499", + "\u24a3\u0007\u0305\u0002\u0002\u249a\u249b\u0007\u027f\u0002\u0002\u249b", + "\u24a3\tM\u0002\u0002\u249c\u24a3\u0007\u02a3\u0002\u0002\u249d\u249e", + "\u0007\u02b6\u0002\u0002\u249e\u24a3\u0007\u00fb\u0002\u0002\u249f\u24a0", + "\u0007\u016c\u0002\u0002\u24a0\u24a1\u0007\u00fb\u0002\u0002\u24a1\u24a3", + "\u0007\u0326\u0002\u0002\u24a2\u2475\u0003\u0002\u0002\u0002\u24a2\u2477", + "\u0003\u0002\u0002\u0002\u24a2\u2479\u0003\u0002\u0002\u0002\u24a2\u247b", + "\u0003\u0002\u0002\u0002\u24a2\u247d\u0003\u0002\u0002\u0002\u24a2\u247f", + "\u0003\u0002\u0002\u0002\u24a2\u2481\u0003\u0002\u0002\u0002\u24a2\u2482", + "\u0003\u0002\u0002\u0002\u24a2\u2484\u0003\u0002\u0002\u0002\u24a2\u2486", + "\u0003\u0002\u0002\u0002\u24a2\u2488\u0003\u0002\u0002\u0002\u24a2\u248a", + "\u0003\u0002\u0002\u0002\u24a2\u2497\u0003\u0002\u0002\u0002\u24a2\u249a", + "\u0003\u0002\u0002\u0002\u24a2\u249c\u0003\u0002\u0002\u0002\u24a2\u249d", + "\u0003\u0002\u0002\u0002\u24a2\u249f\u0003\u0002\u0002\u0002\u24a3\u030f", + "\u0003\u0002\u0002\u0002\u24a4\u24ab\u0007\u0321\u0002\u0002\u24a5\u24ac", + "\u0007\u0305\u0002\u0002\u24a6\u24a9\u0007\u032a\u0002\u0002\u24a7\u24aa", + "\u0005\u03c2\u01e2\u0002\u24a8\u24aa\u0007\u00df\u0002\u0002\u24a9\u24a7", + "\u0003\u0002\u0002\u0002\u24a9\u24a8\u0003\u0002\u0002\u0002\u24aa\u24ac", + "\u0003\u0002\u0002\u0002\u24ab\u24a5\u0003\u0002\u0002\u0002\u24ab\u24a6", + "\u0003\u0002\u0002\u0002\u24ac\u0311\u0003\u0002\u0002\u0002\u24ad\u24b2", + "\u0005\u031e\u0190\u0002\u24ae\u24af\u0007\u033e\u0002\u0002\u24af\u24b1", + "\u0005\u031e\u0190\u0002\u24b0\u24ae\u0003\u0002\u0002\u0002\u24b1\u24b4", + "\u0003\u0002\u0002\u0002\u24b2\u24b0\u0003\u0002\u0002\u0002\u24b2\u24b3", + "\u0003\u0002\u0002\u0002\u24b3\u0313\u0003\u0002\u0002\u0002\u24b4\u24b2", + "\u0003\u0002\u0002\u0002\u24b5\u24b6\u0007\u033c\u0002\u0002\u24b6\u24bb", + "\u0005\u027e\u0140\u0002\u24b7\u24b8\u0007\u033e\u0002\u0002\u24b8\u24ba", + "\u0005\u027e\u0140\u0002\u24b9\u24b7\u0003\u0002\u0002\u0002\u24ba\u24bd", + "\u0003\u0002\u0002\u0002\u24bb\u24b9\u0003\u0002\u0002\u0002\u24bb\u24bc", + "\u0003\u0002\u0002\u0002\u24bc\u24be\u0003\u0002\u0002\u0002\u24bd\u24bb", + "\u0003\u0002\u0002\u0002\u24be\u24bf\u0007\u033d\u0002\u0002\u24bf\u0315", + "\u0003\u0002\u0002\u0002\u24c0\u24c1\u0005\u038e\u01c8\u0002\u24c1\u24c2", + "\u0007\u0337\u0002\u0002\u24c2\u24c4\u0003\u0002\u0002\u0002\u24c3\u24c0", + "\u0003\u0002\u0002\u0002\u24c3\u24c4\u0003\u0002\u0002\u0002\u24c4\u24c5", + "\u0003\u0002\u0002\u0002\u24c5\u24c6\u0007\u0341\u0002\u0002\u24c6\u0317", + "\u0003\u0002\u0002\u0002\u24c7\u24c8\u0005\u038e\u01c8\u0002\u24c8\u24c9", + "\u0007\u0337\u0002\u0002\u24c9\u24cb\u0003\u0002\u0002\u0002\u24ca\u24c7", + "\u0003\u0002\u0002\u0002\u24ca\u24cb\u0003\u0002\u0002\u0002\u24cb\u24d1", + "\u0003\u0002\u0002\u0002\u24cc\u24d2\u0005\u03c6\u01e4\u0002\u24cd\u24ce", + "\u0007\u033b\u0002\u0002\u24ce\u24d2\u0007\u0096\u0002\u0002\u24cf\u24d0", + "\u0007\u033b\u0002\u0002\u24d0\u24d2\u0007\u02bb\u0002\u0002\u24d1\u24cc", + "\u0003\u0002\u0002\u0002\u24d1\u24cd\u0003\u0002\u0002\u0002\u24d1\u24cf", + "\u0003\u0002\u0002\u0002\u24d2\u24d5\u0003\u0002\u0002\u0002\u24d3\u24d5", + "\u0007\u00df\u0002\u0002\u24d4\u24ca\u0003\u0002\u0002\u0002\u24d4\u24d3", + "\u0003\u0002\u0002\u0002\u24d5\u24d7\u0003\u0002\u0002\u0002\u24d6\u24d8", + "\u0005\u0352\u01aa\u0002\u24d7\u24d6\u0003\u0002\u0002\u0002\u24d7\u24d8", + "\u0003\u0002\u0002\u0002\u24d8\u0319\u0003\u0002\u0002\u0002\u24d9\u24da", + "\u0005\u03c6\u01e4\u0002\u24da\u24db\u0007\u0337\u0002\u0002\u24db\u24dc", + "\u0005\u03c6\u01e4\u0002\u24dc\u24de\u0005\u0314\u018b\u0002\u24dd\u24df", + "\u0005\u0352\u01aa\u0002\u24de\u24dd\u0003\u0002\u0002\u0002\u24de\u24df", + "\u0003\u0002\u0002\u0002\u24df\u24eb\u0003\u0002\u0002\u0002\u24e0\u24e1", + "\u0005\u03c6\u01e4\u0002\u24e1\u24e2\u0007\u0340\u0002\u0002\u24e2\u24e3", + "\u0007\u0340\u0002\u0002\u24e3\u24e5\u0005\u03c6\u01e4\u0002\u24e4\u24e6", + "\u0005\u0314\u018b\u0002\u24e5\u24e4\u0003\u0002\u0002\u0002\u24e5\u24e6", + "\u0003\u0002\u0002\u0002\u24e6\u24e8\u0003\u0002\u0002\u0002\u24e7\u24e9", + "\u0005\u0352\u01aa\u0002\u24e8\u24e7\u0003\u0002\u0002\u0002\u24e8\u24e9", + "\u0003\u0002\u0002\u0002\u24e9\u24eb\u0003\u0002\u0002\u0002\u24ea\u24d9", + "\u0003\u0002\u0002\u0002\u24ea\u24e0\u0003\u0002\u0002\u0002\u24eb\u031b", + "\u0003\u0002\u0002\u0002\u24ec\u24ed\u0005\u0362\u01b2\u0002\u24ed\u24ee", + "\u0007\u032a\u0002\u0002\u24ee\u24ef\u0005\u02d8\u016d\u0002\u24ef\u24f5", + "\u0003\u0002\u0002\u0002\u24f0\u24f2\u0005\u02d8\u016d\u0002\u24f1\u24f3", + "\u0005\u0352\u01aa\u0002\u24f2\u24f1\u0003\u0002\u0002\u0002\u24f2\u24f3", + "\u0003\u0002\u0002\u0002\u24f3\u24f5\u0003\u0002\u0002\u0002\u24f4\u24ec", + "\u0003\u0002\u0002\u0002\u24f4\u24f0\u0003\u0002\u0002\u0002\u24f5\u031d", + "\u0003\u0002\u0002\u0002\u24f6\u24fb\u0005\u0316\u018c\u0002\u24f7\u24fb", + "\u0005\u0318\u018d\u0002\u24f8\u24fb\u0005\u031a\u018e\u0002\u24f9\u24fb", + "\u0005\u031c\u018f\u0002\u24fa\u24f6\u0003\u0002\u0002\u0002\u24fa\u24f7", + "\u0003\u0002\u0002\u0002\u24fa\u24f8\u0003\u0002\u0002\u0002\u24fa\u24f9", + "\u0003\u0002\u0002\u0002\u24fb\u031f\u0003\u0002\u0002\u0002\u24fc\u2501", + "\u0005\u0322\u0192\u0002\u24fd\u24fe\u0007\u033e\u0002\u0002\u24fe\u2500", + "\u0005\u0322\u0192\u0002\u24ff\u24fd\u0003\u0002\u0002\u0002\u2500\u2503", + "\u0003\u0002\u0002\u0002\u2501\u24ff\u0003\u0002\u0002\u0002\u2501\u2502", + "\u0003\u0002\u0002\u0002\u2502\u0321\u0003\u0002\u0002\u0002\u2503\u2501", + "\u0003\u0002\u0002\u0002\u2504\u250a\u0005\u0324\u0193\u0002\u2505\u2506", + "\u0007\u033c\u0002\u0002\u2506\u2507\u0005\u0324\u0193\u0002\u2507\u2508", + "\u0007\u033d\u0002\u0002\u2508\u250a\u0003\u0002\u0002\u0002\u2509\u2504", + "\u0003\u0002\u0002\u0002\u2509\u2505\u0003\u0002\u0002\u0002\u250a\u0323", + "\u0003\u0002\u0002\u0002\u250b\u250f\u0005\u0326\u0194\u0002\u250c\u250e", + "\u0005\u0330\u0199\u0002\u250d\u250c\u0003\u0002\u0002\u0002\u250e\u2511", + "\u0003\u0002\u0002\u0002\u250f\u250d\u0003\u0002\u0002\u0002\u250f\u2510", + "\u0003\u0002\u0002\u0002\u2510\u0325\u0003\u0002\u0002\u0002\u2511\u250f", + "\u0003\u0002\u0002\u0002\u2512\u2514\u0005\u0338\u019d\u0002\u2513\u2515", + "\u0005\u0354\u01ab\u0002\u2514\u2513\u0003\u0002\u0002\u0002\u2514\u2515", + "\u0003\u0002\u0002\u0002\u2515\u2544\u0003\u0002\u0002\u0002\u2516\u2518", + "\u0005\u038c\u01c7\u0002\u2517\u2519\u0005\u0354\u01ab\u0002\u2518\u2517", + "\u0003\u0002\u0002\u0002\u2518\u2519\u0003\u0002\u0002\u0002\u2519\u2544", + "\u0003\u0002\u0002\u0002\u251a\u251c\u0005\u033a\u019e\u0002\u251b\u251d", + "\u0005\u0354\u01ab\u0002\u251c\u251b\u0003\u0002\u0002\u0002\u251c\u251d", + "\u0003\u0002\u0002\u0002\u251d\u2544\u0003\u0002\u0002\u0002\u251e\u2523", + "\u0005\u033e\u01a0\u0002\u251f\u2521\u0005\u0354\u01ab\u0002\u2520\u2522", + "\u0005\u0360\u01b1\u0002\u2521\u2520\u0003\u0002\u0002\u0002\u2521\u2522", + "\u0003\u0002\u0002\u0002\u2522\u2524\u0003\u0002\u0002\u0002\u2523\u251f", + "\u0003\u0002\u0002\u0002\u2523\u2524\u0003\u0002\u0002\u0002\u2524\u2544", + "\u0003\u0002\u0002\u0002\u2525\u2526\u0005\u032e\u0198\u0002\u2526\u2527", + "\u0005\u0354\u01ab\u0002\u2527\u2544\u0003\u0002\u0002\u0002\u2528\u252d", + "\u0005\u0340\u01a1\u0002\u2529\u252b\u0005\u0354\u01ab\u0002\u252a\u252c", + "\u0005\u0360\u01b1\u0002\u252b\u252a\u0003\u0002\u0002\u0002\u252b\u252c", + "\u0003\u0002\u0002\u0002\u252c\u252e\u0003\u0002\u0002\u0002\u252d\u2529", + "\u0003\u0002\u0002\u0002\u252d\u252e\u0003\u0002\u0002\u0002\u252e\u2544", + "\u0003\u0002\u0002\u0002\u252f\u2531\u0007\u0321\u0002\u0002\u2530\u2532", + "\u0005\u0354\u01ab\u0002\u2531\u2530\u0003\u0002\u0002\u0002\u2531\u2532", + "\u0003\u0002\u0002\u0002\u2532\u2544\u0003\u0002\u0002\u0002\u2533\u2534", + "\u0007\u0321\u0002\u0002\u2534\u2535\u0007\u0337\u0002\u0002\u2535\u253a", + "\u0005\u0340\u01a1\u0002\u2536\u2538\u0005\u0354\u01ab\u0002\u2537\u2539", + "\u0005\u0360\u01b1\u0002\u2538\u2537\u0003\u0002\u0002\u0002\u2538\u2539", + "\u0003\u0002\u0002\u0002\u2539\u253b\u0003\u0002\u0002\u0002\u253a\u2536", + "\u0003\u0002\u0002\u0002\u253a\u253b\u0003\u0002\u0002\u0002\u253b\u2544", + "\u0003\u0002\u0002\u0002\u253c\u2544\u0005\u0328\u0195\u0002\u253d\u253e", + "\u0007\u0340\u0002\u0002\u253e\u253f\u0007\u0340\u0002\u0002\u253f\u2541", + "\u0005\u0340\u01a1\u0002\u2540\u2542\u0005\u0354\u01ab\u0002\u2541\u2540", + "\u0003\u0002\u0002\u0002\u2541\u2542\u0003\u0002\u0002\u0002\u2542\u2544", + "\u0003\u0002\u0002\u0002\u2543\u2512\u0003\u0002\u0002\u0002\u2543\u2516", + "\u0003\u0002\u0002\u0002\u2543\u251a\u0003\u0002\u0002\u0002\u2543\u251e", + "\u0003\u0002\u0002\u0002\u2543\u2525\u0003\u0002\u0002\u0002\u2543\u2528", + "\u0003\u0002\u0002\u0002\u2543\u252f\u0003\u0002\u0002\u0002\u2543\u2533", + "\u0003\u0002\u0002\u0002\u2543\u253c\u0003\u0002\u0002\u0002\u2543\u253d", + "\u0003\u0002\u0002\u0002\u2544\u0327\u0003\u0002\u0002\u0002\u2545\u2546", + "\u0007\u00eb\u0002\u0002\u2546\u2547\u0007\u033c\u0002\u0002\u2547\u2548", + "\u0005\u02d8\u016d\u0002\u2548\u2549\u0007\u033e\u0002\u0002\u2549\u254c", + "\u0005\u02d8\u016d\u0002\u254a\u254b\u0007\u033e\u0002\u0002\u254b\u254d", + "\u0005\u02d8\u016d\u0002\u254c\u254a\u0003\u0002\u0002\u0002\u254c\u254d", + "\u0003\u0002\u0002\u0002\u254d\u254e\u0003\u0002\u0002\u0002\u254e\u2554", + "\u0007\u033d\u0002\u0002\u254f\u2550\u0007\u0179\u0002\u0002\u2550\u2551", + "\u0007\u033c\u0002\u0002\u2551\u2552\u0005\u032a\u0196\u0002\u2552\u2553", + "\u0007\u033d\u0002\u0002\u2553\u2555\u0003\u0002\u0002\u0002\u2554\u254f", + "\u0003\u0002\u0002\u0002\u2554\u2555\u0003\u0002\u0002\u0002\u2555\u0329", + "\u0003\u0002\u0002\u0002\u2556\u255b\u0005\u032c\u0197\u0002\u2557\u2558", + "\u0007\u033e\u0002\u0002\u2558\u255a\u0005\u032c\u0197\u0002\u2559\u2557", + "\u0003\u0002\u0002\u0002\u255a\u255d\u0003\u0002\u0002\u0002\u255b\u2559", + "\u0003\u0002\u0002\u0002\u255b\u255c\u0003\u0002\u0002\u0002\u255c\u032b", + "\u0003\u0002\u0002\u0002\u255d\u255b\u0003\u0002\u0002\u0002\u255e\u255f", + "\u0007\u0323\u0002\u0002\u255f\u2561\u0005\u03be\u01e0\u0002\u2560\u2562", + "\u0007\u0326\u0002\u0002\u2561\u2560\u0003\u0002\u0002\u0002\u2561\u2562", + "\u0003\u0002\u0002\u0002\u2562\u032d\u0003\u0002\u0002\u0002\u2563\u2564", + "\u0007,\u0002\u0002\u2564\u2565\u0007\u033c\u0002\u0002\u2565\u2566", + "\u0007-\u0002\u0002\u2566\u2567\u0005\u038e\u01c8\u0002\u2567\u2568", + "\u0007\u033e\u0002\u0002\u2568\u2569\ty\u0002\u0002\u2569\u256a\u0007", + "\u033d\u0002\u0002\u256a\u032f\u0003\u0002\u0002\u0002\u256b\u256d\u0007", + "\u00a1\u0002\u0002\u256c\u256b\u0003\u0002\u0002\u0002\u256c\u256d\u0003", + "\u0002\u0002\u0002\u256d\u2573\u0003\u0002\u0002\u0002\u256e\u2570\t", + "z\u0002\u0002\u256f\u2571\u0007\u00ef\u0002\u0002\u2570\u256f\u0003", + "\u0002\u0002\u0002\u2570\u2571\u0003\u0002\u0002\u0002\u2571\u2573\u0003", + "\u0002\u0002\u0002\u2572\u256c\u0003\u0002\u0002\u0002\u2572\u256e\u0003", + "\u0002\u0002\u0002\u2573\u2575\u0003\u0002\u0002\u0002\u2574\u2576\t", + "{\u0002\u0002\u2575\u2574\u0003\u0002\u0002\u0002\u2575\u2576\u0003", + "\u0002\u0002\u0002\u2576\u2577\u0003\u0002\u0002\u0002\u2577\u2578\u0007", + "\u00aa\u0002\u0002\u2578\u2579\u0005\u0322\u0192\u0002\u2579\u257a\u0007", + "\u00e5\u0002\u0002\u257a\u257b\u0005\u02ee\u0178\u0002\u257b\u258e\u0003", + "\u0002\u0002\u0002\u257c\u257d\u0007J\u0002\u0002\u257d\u257e\u0007", + "\u00aa\u0002\u0002\u257e\u258e\u0005\u0322\u0192\u0002\u257f\u2580\u0007", + "J\u0002\u0002\u2580\u2581\u0007\u0193\u0002\u0002\u2581\u258e\u0005", + "\u0322\u0192\u0002\u2582\u2583\u0007\u00ef\u0002\u0002\u2583\u2584\u0007", + "\u0193\u0002\u0002\u2584\u258e\u0005\u0322\u0192\u0002\u2585\u2586\u0007", + "\u00fa\u0002\u0002\u2586\u2587\u0005\u0332\u019a\u0002\u2587\u2588\u0005", + "\u0354\u01ab\u0002\u2588\u258e\u0003\u0002\u0002\u0002\u2589\u258a\u0007", + "\u0167\u0002\u0002\u258a\u258b\u0005\u0334\u019b\u0002\u258b\u258c\u0005", + "\u0354\u01ab\u0002\u258c\u258e\u0003\u0002\u0002\u0002\u258d\u2572\u0003", + "\u0002\u0002\u0002\u258d\u257c\u0003\u0002\u0002\u0002\u258d\u257f\u0003", + "\u0002\u0002\u0002\u258d\u2582\u0003\u0002\u0002\u0002\u258d\u2585\u0003", + "\u0002\u0002\u0002\u258d\u2589\u0003\u0002\u0002\u0002\u258e\u0331\u0003", + "\u0002\u0002\u0002\u258f\u2590\u0007\u033c\u0002\u0002\u2590\u2591\u0005", + "\u036a\u01b6\u0002\u2591\u2592\u0007\u0085\u0002\u0002\u2592\u2593\u0005", + "\u039a\u01ce\u0002\u2593\u2594\u0007\u009b\u0002\u0002\u2594\u2595\u0005", + "\u0360\u01b1\u0002\u2595\u2596\u0007\u033d\u0002\u0002\u2596\u0333\u0003", + "\u0002\u0002\u0002\u2597\u2598\u0007\u033c\u0002\u0002\u2598\u2599\u0005", + "\u02d8\u016d\u0002\u2599\u259a\u0007\u0085\u0002\u0002\u259a\u259b\u0005", + "\u039a\u01ce\u0002\u259b\u259c\u0007\u009b\u0002\u0002\u259c\u259d\u0007", + "\u033c\u0002\u0002\u259d\u259e\u0005\u0336\u019c\u0002\u259e\u259f\u0007", + "\u033d\u0002\u0002\u259f\u25a0\u0007\u033d\u0002\u0002\u25a0\u0335\u0003", + "\u0002\u0002\u0002\u25a1\u25a6\u0005\u039a\u01ce\u0002\u25a2\u25a3\u0007", + "\u033e\u0002\u0002\u25a3\u25a5\u0005\u039a\u01ce\u0002\u25a4\u25a2\u0003", + "\u0002\u0002\u0002\u25a5\u25a8\u0003\u0002\u0002\u0002\u25a6\u25a4\u0003", + "\u0002\u0002\u0002\u25a6\u25a7\u0003\u0002\u0002\u0002\u25a7\u0337\u0003", + "\u0002\u0002\u0002\u25a8\u25a6\u0003\u0002\u0002\u0002\u25a9\u25ab\u0005", + "\u038e\u01c8\u0002\u25aa\u25ac\u0005\u0358\u01ad\u0002\u25ab\u25aa\u0003", + "\u0002\u0002\u0002\u25ab\u25ac\u0003\u0002\u0002\u0002\u25ac\u0339\u0003", + "\u0002\u0002\u0002\u25ad\u25ae\u0007\u00ea\u0002\u0002\u25ae\u25af\u0007", + "\u033c\u0002\u0002\u25af\u25b0\u0007\u0326\u0002\u0002\u25b0\u25b1\u0007", + "\u033e\u0002\u0002\u25b1\u25b2\u0007\u0326\u0002\u0002\u25b2\u25b3\u0007", + "\u033e\u0002\u0002\u25b3\u25b4\u0007\u0326\u0002\u0002\u25b4\u25c8\u0007", + "\u033d\u0002\u0002\u25b5\u25b6\u0007\u00ea\u0002\u0002\u25b6\u25b7\u0007", + "\u033c\u0002\u0002\u25b7\u25b8\u0007%\u0002\u0002\u25b8\u25b9\u0007", + "\u0326\u0002\u0002\u25b9\u25c3\u0007\u033e\u0002\u0002\u25ba\u25bf\u0005", + "\u033c\u019f\u0002\u25bb\u25bc\u0007\u033e\u0002\u0002\u25bc\u25be\u0005", + "\u033c\u019f\u0002\u25bd\u25bb\u0003\u0002\u0002\u0002\u25be\u25c1\u0003", + "\u0002\u0002\u0002\u25bf\u25bd\u0003\u0002\u0002\u0002\u25bf\u25c0\u0003", + "\u0002\u0002\u0002\u25c0\u25c4\u0003\u0002\u0002\u0002\u25c1\u25bf\u0003", + "\u0002\u0002\u0002\u25c2\u25c4\u0005\u03c6\u01e4\u0002\u25c3\u25ba\u0003", + "\u0002\u0002\u0002\u25c3\u25c2\u0003\u0002\u0002\u0002\u25c4\u25c5\u0003", + "\u0002\u0002\u0002\u25c5\u25c6\u0007\u033d\u0002\u0002\u25c6\u25c8\u0003", + "\u0002\u0002\u0002\u25c7\u25ad\u0003\u0002\u0002\u0002\u25c7\u25b5\u0003", + "\u0002\u0002\u0002\u25c8\u033b\u0003\u0002\u0002\u0002\u25c9\u25ca\u0005", + "\u03c6\u01e4\u0002\u25ca\u25cb\u0007\u032a\u0002\u0002\u25cb\u25cc\t", + "\u0018\u0002\u0002\u25cc\u033d\u0003\u0002\u0002\u0002\u25cd\u25d8\u0005", + "\u02e4\u0173\u0002\u25ce\u25cf\u0007\u033c\u0002\u0002\u25cf\u25d0\u0005", + "\u02e4\u0173\u0002\u25d0\u25d1\u0007\u033d\u0002\u0002\u25d1\u25d8\u0003", + "\u0002\u0002\u0002\u25d2\u25d8\u0005\u0364\u01b3\u0002\u25d3\u25d4\u0007", + "\u033c\u0002\u0002\u25d4\u25d5\u0005\u0364\u01b3\u0002\u25d5\u25d6\u0007", + "\u033d\u0002\u0002\u25d6\u25d8\u0003\u0002\u0002\u0002\u25d7\u25cd\u0003", + "\u0002\u0002\u0002\u25d7\u25ce\u0003\u0002\u0002\u0002\u25d7\u25d2\u0003", + "\u0002\u0002\u0002\u25d7\u25d3\u0003\u0002\u0002\u0002\u25d8\u033f\u0003", + "\u0002\u0002\u0002\u25d9\u25da\u0007\u01a5\u0002\u0002\u25da\u25db\u0007", + "\u033c\u0002\u0002\u25db\u25dc\u0007\u0341\u0002\u0002\u25dc\u266c\u0007", + "\u033d\u0002\u0002\u25dd\u25de\u0007\u01ad\u0002\u0002\u25de\u25df\u0007", + "\u033c\u0002\u0002\u25df\u25e0\u0005\u02d8\u016d\u0002\u25e0\u25e1\u0007", + "\u0010\u0002\u0002\u25e1\u25e2\u0005\u03be\u01e0\u0002\u25e2\u25e3\u0007", + "\u033d\u0002\u0002\u25e3\u266c\u0003\u0002\u0002\u0002\u25e4\u25e5\u0007", + "G\u0002\u0002\u25e5\u25e6\u0007\u033c\u0002\u0002\u25e6\u25e7\u0005", + "\u03be\u01e0\u0002\u25e7\u25e8\u0007\u033e\u0002\u0002\u25e8\u25eb\u0005", + "\u02d8\u016d\u0002\u25e9\u25ea\u0007\u033e\u0002\u0002\u25ea\u25ec\u0005", + "\u02d8\u016d\u0002\u25eb\u25e9\u0003\u0002\u0002\u0002\u25eb\u25ec\u0003", + "\u0002\u0002\u0002\u25ec\u25ed\u0003\u0002\u0002\u0002\u25ed\u25ee\u0007", + "\u033d\u0002\u0002\u25ee\u266c\u0003\u0002\u0002\u0002\u25ef\u25f0\u0007", + "\u01b2\u0002\u0002\u25f0\u25f1\u0007\u033c\u0002\u0002\u25f1\u25f2\u0007", + "\u0341\u0002\u0002\u25f2\u266c\u0007\u033d\u0002\u0002\u25f3\u25f4\u0007", + "6\u0002\u0002\u25f4\u25f5\u0007\u033c\u0002\u0002\u25f5\u25f6\u0005", + "\u0366\u01b4\u0002\u25f6\u25f7\u0007\u033d\u0002\u0002\u25f7\u266c\u0003", + "\u0002\u0002\u0002\u25f8\u266c\u0007N\u0002\u0002\u25f9\u266c\u0007", + "O\u0002\u0002\u25fa\u25fb\u0007\u01ca\u0002\u0002\u25fb\u25fc\u0007", + "\u033c\u0002\u0002\u25fc\u25fd\u0007\u0323\u0002\u0002\u25fd\u25fe\u0007", + "\u033e\u0002\u0002\u25fe\u25ff\u0005\u02d8\u016d\u0002\u25ff\u2600\u0007", + "\u033e\u0002\u0002\u2600\u2601\u0005\u02d8\u016d\u0002\u2601\u2602\u0007", + "\u033d\u0002\u0002\u2602\u266c\u0003\u0002\u0002\u0002\u2603\u2604\u0007", + "\u01cb\u0002\u0002\u2604\u2605\u0007\u033c\u0002\u0002\u2605\u2606\u0007", + "\u0323\u0002\u0002\u2606\u2607\u0007\u033e\u0002\u0002\u2607\u2608\u0005", + "\u02d8\u016d\u0002\u2608\u2609\u0007\u033e\u0002\u0002\u2609\u260a\u0005", + "\u02d8\u016d\u0002\u260a\u260b\u0007\u033d\u0002\u0002\u260b\u266c\u0003", + "\u0002\u0002\u0002\u260c\u260d\u0007\u01cc\u0002\u0002\u260d\u260e\u0007", + "\u033c\u0002\u0002\u260e\u260f\u0007\u0323\u0002\u0002\u260f\u2610\u0007", + "\u033e\u0002\u0002\u2610\u2611\u0005\u02d8\u016d\u0002\u2611\u2612\u0007", + "\u033d\u0002\u0002\u2612\u266c\u0003\u0002\u0002\u0002\u2613\u2614\u0007", + "\u01cd\u0002\u0002\u2614\u2615\u0007\u033c\u0002\u0002\u2615\u2616\u0007", + "\u0323\u0002\u0002\u2616\u2617\u0007\u033e\u0002\u0002\u2617\u2618\u0005", + "\u02d8\u016d\u0002\u2618\u2619\u0007\u033d\u0002\u0002\u2619\u266c\u0003", + "\u0002\u0002\u0002\u261a\u261b\u0007\u020b\u0002\u0002\u261b\u261c\u0007", + "\u033c\u0002\u0002\u261c\u266c\u0007\u033d\u0002\u0002\u261d\u261e\u0007", + "\u020c\u0002\u0002\u261e\u261f\u0007\u033c\u0002\u0002\u261f\u266c\u0007", + "\u033d\u0002\u0002\u2620\u2621\u0007\u0096\u0002\u0002\u2621\u2622\u0007", + "\u033c\u0002\u0002\u2622\u2625\u0005\u03be\u01e0\u0002\u2623\u2624\u0007", + "\u033e\u0002\u0002\u2624\u2626\u0007\u0322\u0002\u0002\u2625\u2623\u0003", + "\u0002\u0002\u0002\u2625\u2626\u0003\u0002\u0002\u0002\u2626\u2629\u0003", + "\u0002\u0002\u0002\u2627\u2628\u0007\u033e\u0002\u0002\u2628\u262a\u0007", + "\u0322\u0002\u0002\u2629\u2627\u0003\u0002\u0002\u0002\u2629\u262a\u0003", + "\u0002\u0002\u0002\u262a\u262b\u0003\u0002\u0002\u0002\u262b\u262c\u0007", + "\u033d\u0002\u0002\u262c\u266c\u0003\u0002\u0002\u0002\u262d\u266c\u0007", + "\u0252\u0002\u0002\u262e\u262f\u0007\u00e0\u0002\u0002\u262f\u2630\u0007", + "\u033c\u0002\u0002\u2630\u2631\u0005\u02d8\u016d\u0002\u2631\u2632\u0007", + "\u033e\u0002\u0002\u2632\u2633\u0005\u02d8\u016d\u0002\u2633\u2634\u0007", + "\u033d\u0002\u0002\u2634\u266c\u0003\u0002\u0002\u0002\u2635\u2636\u0007", + "\u02e6\u0002\u0002\u2636\u2637\u0007\u033c\u0002\u0002\u2637\u2638\u0005", + "\u02d8\u016d\u0002\u2638\u2639\u0007\u033e\u0002\u0002\u2639\u263a\u0007", + "\u0322\u0002\u0002\u263a\u263b\u0007\u033e\u0002\u0002\u263b\u263c\u0007", + "\u0322\u0002\u0002\u263c\u263d\u0007\u033e\u0002\u0002\u263d\u263e\u0005", + "\u02d8\u016d\u0002\u263e\u263f\u0007\u033d\u0002\u0002\u263f\u266c\u0003", + "\u0002\u0002\u0002\u2640\u266c\u0007\u013a\u0002\u0002\u2641\u266c\u0007", + "\u0152\u0002\u0002\u2642\u2643\u0007\u00a9\u0002\u0002\u2643\u2644\u0007", + "\u033c\u0002\u0002\u2644\u2645\u0005\u02d8\u016d\u0002\u2645\u2646\u0007", + "\u033e\u0002\u0002\u2646\u2647\u0005\u02d8\u016d\u0002\u2647\u2648\u0007", + "\u033d\u0002\u0002\u2648\u266c\u0003\u0002\u0002\u0002\u2649\u266c\u0005", + "\u0342\u01a2\u0002\u264a\u264b\u0007\u009a\u0002\u0002\u264b\u264c\u0007", + "\u033c\u0002\u0002\u264c\u264d\u0005\u02ee\u0178\u0002\u264d\u264e\u0007", + "\u033e\u0002\u0002\u264e\u264f\u0005\u02d8\u016d\u0002\u264f\u2650\u0007", + "\u033e\u0002\u0002\u2650\u2651\u0005\u02d8\u016d\u0002\u2651\u2652\u0007", + "\u033d\u0002\u0002\u2652\u266c\u0003\u0002\u0002\u0002\u2653\u266c\u0005", + "\u0368\u01b5\u0002\u2654\u266c\u0005\u036a\u01b6\u0002\u2655\u266c\u0005", + "\u036c\u01b7\u0002\u2656\u2657\u0005\u03aa\u01d6\u0002\u2657\u2659\u0007", + "\u033c\u0002\u0002\u2658\u265a\u0005\u0366\u01b4\u0002\u2659\u2658\u0003", + "\u0002\u0002\u0002\u2659\u265a\u0003\u0002\u0002\u0002\u265a\u265b\u0003", + "\u0002\u0002\u0002\u265b\u265c\u0007\u033d\u0002\u0002\u265c\u266c\u0003", + "\u0002\u0002\u0002\u265d\u265e\u0007\u02e5\u0002\u0002\u265e\u265f\u0007", + "\u033c\u0002\u0002\u265f\u2660\u0005\u02d8\u016d\u0002\u2660\u2661\u0007", + "\u033e\u0002\u0002\u2661\u2662\u0005\u02d8\u016d\u0002\u2662\u2669\u0007", + "\u033d\u0002\u0002\u2663\u2664\u0007\u017a\u0002\u0002\u2664\u2665\u0007", + "\u0092\u0002\u0002\u2665\u2666\u0007\u033c\u0002\u0002\u2666\u2667\u0005", + "\u0302\u0182\u0002\u2667\u2668\u0007\u033d\u0002\u0002\u2668\u266a\u0003", + "\u0002\u0002\u0002\u2669\u2663\u0003\u0002\u0002\u0002\u2669\u266a\u0003", + "\u0002\u0002\u0002\u266a\u266c\u0003\u0002\u0002\u0002\u266b\u25d9\u0003", + "\u0002\u0002\u0002\u266b\u25dd\u0003\u0002\u0002\u0002\u266b\u25e4\u0003", + "\u0002\u0002\u0002\u266b\u25ef\u0003\u0002\u0002\u0002\u266b\u25f3\u0003", + "\u0002\u0002\u0002\u266b\u25f8\u0003\u0002\u0002\u0002\u266b\u25f9\u0003", + "\u0002\u0002\u0002\u266b\u25fa\u0003\u0002\u0002\u0002\u266b\u2603\u0003", + "\u0002\u0002\u0002\u266b\u260c\u0003\u0002\u0002\u0002\u266b\u2613\u0003", + "\u0002\u0002\u0002\u266b\u261a\u0003\u0002\u0002\u0002\u266b\u261d\u0003", + "\u0002\u0002\u0002\u266b\u2620\u0003\u0002\u0002\u0002\u266b\u262d\u0003", + "\u0002\u0002\u0002\u266b\u262e\u0003\u0002\u0002\u0002\u266b\u2635\u0003", + "\u0002\u0002\u0002\u266b\u2640\u0003\u0002\u0002\u0002\u266b\u2641\u0003", + "\u0002\u0002\u0002\u266b\u2642\u0003\u0002\u0002\u0002\u266b\u2649\u0003", + "\u0002\u0002\u0002\u266b\u264a\u0003\u0002\u0002\u0002\u266b\u2653\u0003", + "\u0002\u0002\u0002\u266b\u2654\u0003\u0002\u0002\u0002\u266b\u2655\u0003", + "\u0002\u0002\u0002\u266b\u2656\u0003\u0002\u0002\u0002\u266b\u265d\u0003", + "\u0002\u0002\u0002\u266c\u0341\u0003\u0002\u0002\u0002\u266d\u2673\u0005", + "\u0344\u01a3\u0002\u266e\u2673\u0005\u0346\u01a4\u0002\u266f\u2673\u0005", + "\u0348\u01a5\u0002\u2670\u2673\u0005\u034a\u01a6\u0002\u2671\u2673\u0005", + "\u034c\u01a7\u0002\u2672\u266d\u0003\u0002\u0002\u0002\u2672\u266e\u0003", + "\u0002\u0002\u0002\u2672\u266f\u0003\u0002\u0002\u0002\u2672\u2670\u0003", + "\u0002\u0002\u0002\u2672\u2671\u0003\u0002\u0002\u0002\u2673\u0343\u0003", + "\u0002\u0002\u0002\u2674\u2679\u0007\u0321\u0002\u0002\u2675\u2679\u0007", + "\u0323\u0002\u0002\u2676\u2679\u0007r\u0002\u0002\u2677\u2679\u0005", + "\u0346\u01a4\u0002\u2678\u2674\u0003\u0002\u0002\u0002\u2678\u2675\u0003", + "\u0002\u0002\u0002\u2678\u2676\u0003\u0002\u0002\u0002\u2678\u2677\u0003", + "\u0002\u0002\u0002\u2679\u267a\u0003\u0002\u0002\u0002\u267a\u267b\u0007", + "\u0337\u0002\u0002\u267b\u267c\u0007\u030b\u0002\u0002\u267c\u267d\u0007", + "\u033c\u0002\u0002\u267d\u267e\u0007\u0326\u0002\u0002\u267e\u267f\u0007", + "\u033e\u0002\u0002\u267f\u2680\u0007\u0326\u0002\u0002\u2680\u26a0\u0007", + "\u033d\u0002\u0002\u2681\u2686\u0007\u0321\u0002\u0002\u2682\u2686\u0007", + "\u0323\u0002\u0002\u2683\u2686\u0007r\u0002\u0002\u2684\u2686\u0005", + "\u0346\u01a4\u0002\u2685\u2681\u0003\u0002\u0002\u0002\u2685\u2682\u0003", + "\u0002\u0002\u0002\u2685\u2683\u0003\u0002\u0002\u0002\u2685\u2684\u0003", + "\u0002\u0002\u0002\u2686\u2687\u0003\u0002\u0002\u0002\u2687\u2688\u0007", + "\u0337\u0002\u0002\u2688\u2689\u0007\u02b9\u0002\u0002\u2689\u268a\u0007", + "\u0337\u0002\u0002\u268a\u268b\u0007\u030b\u0002\u0002\u268b\u268c\u0007", + "\u033c\u0002\u0002\u268c\u268d\u0007\u0326\u0002\u0002\u268d\u268e\u0007", + "\u033e\u0002\u0002\u268e\u268f\u0007\u0326\u0002\u0002\u268f\u26a0\u0007", + "\u033d\u0002\u0002\u2690\u2695\u0007\u0321\u0002\u0002\u2691\u2695\u0007", + "\u0323\u0002\u0002\u2692\u2695\u0007r\u0002\u0002\u2693\u2695\u0005", + "\u0346\u01a4\u0002\u2694\u2690\u0003\u0002\u0002\u0002\u2694\u2691\u0003", + "\u0002\u0002\u0002\u2694\u2692\u0003\u0002\u0002\u0002\u2694\u2693\u0003", + "\u0002\u0002\u0002\u2695\u2696\u0003\u0002\u0002\u0002\u2696\u2697\u0007", + "\u0337\u0002\u0002\u2697\u2698\u0007\u00f2\u0002\u0002\u2698\u2699\u0007", + "\u0337\u0002\u0002\u2699\u269a\u0007\u030b\u0002\u0002\u269a\u269b\u0007", + "\u033c\u0002\u0002\u269b\u269c\u0007\u0326\u0002\u0002\u269c\u269d\u0007", + "\u033e\u0002\u0002\u269d\u269e\u0007\u0326\u0002\u0002\u269e\u26a0\u0007", + "\u033d\u0002\u0002\u269f\u2678\u0003\u0002\u0002\u0002\u269f\u2685\u0003", + "\u0002\u0002\u0002\u269f\u2694\u0003\u0002\u0002\u0002\u26a0\u0345\u0003", + "\u0002\u0002\u0002\u26a1\u26a5\u0007\u0321\u0002\u0002\u26a2\u26a5\u0007", + "\u0323\u0002\u0002\u26a3\u26a5\u0005\u038c\u01c7\u0002\u26a4\u26a1\u0003", + "\u0002\u0002\u0002\u26a4\u26a2\u0003\u0002\u0002\u0002\u26a4\u26a3\u0003", + "\u0002\u0002\u0002\u26a5\u26a6\u0003\u0002\u0002\u0002\u26a6\u26a7\u0007", + "\u0337\u0002\u0002\u26a7\u26a8\u0007\u0293\u0002\u0002\u26a8\u26a9\u0007", + "\u033c\u0002\u0002\u26a9\u26aa\u0007\u0326\u0002\u0002\u26aa\u26b8\u0007", + "\u033d\u0002\u0002\u26ab\u26af\u0007\u0321\u0002\u0002\u26ac\u26af\u0007", + "\u0323\u0002\u0002\u26ad\u26af\u0005\u038c\u01c7\u0002\u26ae\u26ab\u0003", + "\u0002\u0002\u0002\u26ae\u26ac\u0003\u0002\u0002\u0002\u26ae\u26ad\u0003", + "\u0002\u0002\u0002\u26af\u26b0\u0003\u0002\u0002\u0002\u26b0\u26b1\u0007", + "\u0337\u0002\u0002\u26b1\u26b2\u0007\u02b9\u0002\u0002\u26b2\u26b3\u0007", + "\u0337\u0002\u0002\u26b3\u26b4\u0007\u0293\u0002\u0002\u26b4\u26b5\u0007", + "\u033c\u0002\u0002\u26b5\u26b6\u0007\u0326\u0002\u0002\u26b6\u26b8\u0007", + "\u033d\u0002\u0002\u26b7\u26a4\u0003\u0002\u0002\u0002\u26b7\u26ae\u0003", + "\u0002\u0002\u0002\u26b8\u0347\u0003\u0002\u0002\u0002\u26b9\u26ba\t", + "|\u0002\u0002\u26ba\u26bb\u0007\u0337\u0002\u0002\u26bb\u26bc\u0007", + "\u01f1\u0002\u0002\u26bc\u26bd\u0007\u033c\u0002\u0002\u26bd\u26be\u0007", + "\u0326\u0002\u0002\u26be\u26bf\u0007\u033d\u0002\u0002\u26bf\u0349\u0003", + "\u0002\u0002\u0002\u26c0\u26c1\t|\u0002\u0002\u26c1\u26c2\u0007\u0337", + "\u0002\u0002\u26c2\u26c3\u0007\u025a\u0002\u0002\u26c3\u26c4\u0007\u033c", + "\u0002\u0002\u26c4\u26c5\u0007\u0326\u0002\u0002\u26c5\u26c6\u0007\u033d", + "\u0002\u0002\u26c6\u034b\u0003\u0002\u0002\u0002\u26c7\u26c8\t|\u0002", + "\u0002\u26c8\u26c9\u0007\u0337\u0002\u0002\u26c9\u26ca\u0007\u0267\u0002", + "\u0002\u26ca\u26cb\u0007\u033c\u0002\u0002\u26cb\u26cc\u0007\u0326\u0002", + "\u0002\u26cc\u26cd\u0007\u033d\u0002\u0002\u26cd\u034d\u0003\u0002\u0002", + "\u0002\u26ce\u26cf\u0007\u0175\u0002\u0002\u26cf\u26d0\u0005\u02d8\u016d", + "\u0002\u26d0\u26d1\u0007\u0159\u0002\u0002\u26d1\u26d2\u0005\u02d8\u016d", + "\u0002\u26d2\u034f\u0003\u0002\u0002\u0002\u26d3\u26d4\u0007\u0175\u0002", + "\u0002\u26d4\u26d5\u0005\u02ee\u0178\u0002\u26d5\u26d6\u0007\u0159\u0002", + "\u0002\u26d6\u26d7\u0005\u02d8\u016d\u0002\u26d7\u0351\u0003\u0002\u0002", + "\u0002\u26d8\u26da\u0007\u0010\u0002\u0002\u26d9\u26d8\u0003\u0002\u0002", + "\u0002\u26d9\u26da\u0003\u0002\u0002\u0002\u26da\u26db\u0003\u0002\u0002", + "\u0002\u26db\u26dc\u0005\u0362\u01b2\u0002\u26dc\u0353\u0003\u0002\u0002", + "\u0002\u26dd\u26df\u0007\u0010\u0002\u0002\u26de\u26dd\u0003\u0002\u0002", + "\u0002\u26de\u26df\u0003\u0002\u0002\u0002\u26df\u26e0\u0003\u0002\u0002", + "\u0002\u26e0\u26e1\u0005\u0356\u01ac\u0002\u26e1\u0355\u0003\u0002\u0002", + "\u0002\u26e2\u26e4\u0005\u03c6\u01e4\u0002\u26e3\u26e5\u0005\u0358\u01ad", + "\u0002\u26e4\u26e3\u0003\u0002\u0002\u0002\u26e4\u26e5\u0003\u0002\u0002", + "\u0002\u26e5\u0357\u0003\u0002\u0002\u0002\u26e6\u26e8\u0007\u0179\u0002", + "\u0002\u26e7\u26e6\u0003\u0002\u0002\u0002\u26e7\u26e8\u0003\u0002\u0002", + "\u0002\u26e8\u26e9\u0003\u0002\u0002\u0002\u26e9\u26ea\u0007\u033c\u0002", + "\u0002\u26ea\u26f1\u0005\u035c\u01af\u0002\u26eb\u26ed\u0007\u033e\u0002", + "\u0002\u26ec\u26eb\u0003\u0002\u0002\u0002\u26ec\u26ed\u0003\u0002\u0002", + "\u0002\u26ed\u26ee\u0003\u0002\u0002\u0002\u26ee\u26f0\u0005\u035c\u01af", + "\u0002\u26ef\u26ec\u0003\u0002\u0002\u0002\u26f0\u26f3\u0003\u0002\u0002", + "\u0002\u26f1\u26ef\u0003\u0002\u0002\u0002\u26f1\u26f2\u0003\u0002\u0002", + "\u0002\u26f2\u26f4\u0003\u0002\u0002\u0002\u26f3\u26f1\u0003\u0002\u0002", + "\u0002\u26f4\u26f5\u0007\u033d\u0002\u0002\u26f5\u0359\u0003\u0002\u0002", + "\u0002\u26f6\u26f7\u0007\u0179\u0002\u0002\u26f7\u26f8\u0007\u033c\u0002", + "\u0002\u26f8\u26ff\u0005\u035c\u01af\u0002\u26f9\u26fb\u0007\u033e\u0002", + "\u0002\u26fa\u26f9\u0003\u0002\u0002\u0002\u26fa\u26fb\u0003\u0002\u0002", + "\u0002\u26fb\u26fc\u0003\u0002\u0002\u0002\u26fc\u26fe\u0005\u035c\u01af", + "\u0002\u26fd\u26fa\u0003\u0002\u0002\u0002\u26fe\u2701\u0003\u0002\u0002", + "\u0002\u26ff\u26fd\u0003\u0002\u0002\u0002\u26ff\u2700\u0003\u0002\u0002", + "\u0002\u2700\u2702\u0003\u0002\u0002\u0002\u2701\u26ff\u0003\u0002\u0002", + "\u0002\u2702\u2703\u0007\u033d\u0002\u0002\u2703\u035b\u0003\u0002\u0002", + "\u0002\u2704\u2706\u0007\u0268\u0002\u0002\u2705\u2704\u0003\u0002\u0002", + "\u0002\u2705\u2706\u0003\u0002\u0002\u0002\u2706\u2737\u0003\u0002\u0002", + "\u0002\u2707\u271b\u0007\u009e\u0002\u0002\u2708\u2709\u0007\u033c\u0002", + "\u0002\u2709\u270e\u0005\u035e\u01b0\u0002\u270a\u270b\u0007\u033e\u0002", + "\u0002\u270b\u270d\u0005\u035e\u01b0\u0002\u270c\u270a\u0003\u0002\u0002", + "\u0002\u270d\u2710\u0003\u0002\u0002\u0002\u270e\u270c\u0003\u0002\u0002", + "\u0002\u270e\u270f\u0003\u0002\u0002\u0002\u270f\u2711\u0003\u0002\u0002", + "\u0002\u2710\u270e\u0003\u0002\u0002\u0002\u2711\u2712\u0007\u033d\u0002", + "\u0002\u2712\u271c\u0003\u0002\u0002\u0002\u2713\u2718\u0005\u035e\u01b0", + "\u0002\u2714\u2715\u0007\u033e\u0002\u0002\u2715\u2717\u0005\u035e\u01b0", + "\u0002\u2716\u2714\u0003\u0002\u0002\u0002\u2717\u271a\u0003\u0002\u0002", + "\u0002\u2718\u2716\u0003\u0002\u0002\u0002\u2718\u2719\u0003\u0002\u0002", + "\u0002\u2719\u271c\u0003\u0002\u0002\u0002\u271a\u2718\u0003\u0002\u0002", + "\u0002\u271b\u2708\u0003\u0002\u0002\u0002\u271b\u2713\u0003\u0002\u0002", + "\u0002\u271c\u2738\u0003\u0002\u0002\u0002\u271d\u271e\u0007\u009e\u0002", + "\u0002\u271e\u271f\u0007\u032a\u0002\u0002\u271f\u2738\u0005\u035e\u01b0", + "\u0002\u2720\u272f\u0007\u0086\u0002\u0002\u2721\u2722\u0007\u033c\u0002", + "\u0002\u2722\u2723\u0005\u035e\u01b0\u0002\u2723\u2724\u0007\u033c\u0002", + "\u0002\u2724\u2729\u0007\u0323\u0002\u0002\u2725\u2726\u0007\u033e\u0002", + "\u0002\u2726\u2728\u0007\u0323\u0002\u0002\u2727\u2725\u0003\u0002\u0002", + "\u0002\u2728\u272b\u0003\u0002\u0002\u0002\u2729\u2727\u0003\u0002\u0002", + "\u0002\u2729\u272a\u0003\u0002\u0002\u0002\u272a\u272c\u0003\u0002\u0002", + "\u0002\u272b\u2729\u0003\u0002\u0002\u0002\u272c\u272d\u0007\u033d\u0002", + "\u0002\u272d\u272e\u0007\u033d\u0002\u0002\u272e\u2730\u0003\u0002\u0002", + "\u0002\u272f\u2721\u0003\u0002\u0002\u0002\u272f\u2730\u0003\u0002\u0002", + "\u0002\u2730\u2738\u0003\u0002\u0002\u0002\u2731\u2738\u0007\u02d0\u0002", + "\u0002\u2732\u2738\u0007\u02da\u0002\u0002\u2733\u2734\u0007\u02db\u0002", + "\u0002\u2734\u2735\u0007\u032a\u0002\u0002\u2735\u2738\u0007\u0322\u0002", + "\u0002\u2736\u2738\u0007\u0323\u0002\u0002\u2737\u2707\u0003\u0002\u0002", + "\u0002\u2737\u271d\u0003\u0002\u0002\u0002\u2737\u2720\u0003\u0002\u0002", + "\u0002\u2737\u2731\u0003\u0002\u0002\u0002\u2737\u2732\u0003\u0002\u0002", + "\u0002\u2737\u2733\u0003\u0002\u0002\u0002\u2737\u2736\u0003\u0002\u0002", + "\u0002\u2738\u035d\u0003\u0002\u0002\u0002\u2739\u273c\u0005\u03c6\u01e4", + "\u0002\u273a\u273c\u0007\u0322\u0002\u0002\u273b\u2739\u0003\u0002\u0002", + "\u0002\u273b\u273a\u0003\u0002\u0002\u0002\u273c\u035f\u0003\u0002\u0002", + "\u0002\u273d\u273e\u0007\u033c\u0002\u0002\u273e\u2743\u0005\u0362\u01b2", + "\u0002\u273f\u2740\u0007\u033e\u0002\u0002\u2740\u2742\u0005\u0362\u01b2", + "\u0002\u2741\u273f\u0003\u0002\u0002\u0002\u2742\u2745\u0003\u0002\u0002", + "\u0002\u2743\u2741\u0003\u0002\u0002\u0002\u2743\u2744\u0003\u0002\u0002", + "\u0002\u2744\u2746\u0003\u0002\u0002\u0002\u2745\u2743\u0003\u0002\u0002", + "\u0002\u2746\u2747\u0007\u033d\u0002\u0002\u2747\u0361\u0003\u0002\u0002", + "\u0002\u2748\u274b\u0005\u03c6\u01e4\u0002\u2749\u274b\u0007\u0326\u0002", + "\u0002\u274a\u2748\u0003\u0002\u0002\u0002\u274a\u2749\u0003\u0002\u0002", + "\u0002\u274b\u0363\u0003\u0002\u0002\u0002\u274c\u274d\u0007\u016f\u0002", + "\u0002\u274d\u274e\u0007\u033c\u0002\u0002\u274e\u274f\u0005\u0366\u01b4", + "\u0002\u274f\u2757\u0007\u033d\u0002\u0002\u2750\u2751\u0007\u033e\u0002", + "\u0002\u2751\u2752\u0007\u033c\u0002\u0002\u2752\u2753\u0005\u0366\u01b4", + "\u0002\u2753\u2754\u0007\u033d\u0002\u0002\u2754\u2756\u0003\u0002\u0002", + "\u0002\u2755\u2750\u0003\u0002\u0002\u0002\u2756\u2759\u0003\u0002\u0002", + "\u0002\u2757\u2755\u0003\u0002\u0002\u0002\u2757\u2758\u0003\u0002\u0002", + "\u0002\u2758\u0365\u0003\u0002\u0002\u0002\u2759\u2757\u0003\u0002\u0002", + "\u0002\u275a\u275f\u0005\u02d8\u016d\u0002\u275b\u275c\u0007\u033e\u0002", + "\u0002\u275c\u275e\u0005\u02d8\u016d\u0002\u275d\u275b\u0003\u0002\u0002", + "\u0002\u275e\u2761\u0003\u0002\u0002\u0002\u275f\u275d\u0003\u0002\u0002", + "\u0002\u275f\u2760\u0003\u0002\u0002\u0002\u2760\u0367\u0003\u0002\u0002", + "\u0002\u2761\u275f\u0003\u0002\u0002\u0002\u2762\u2763\t}\u0002\u0002", + "\u2763\u2764\u0007\u033c\u0002\u0002\u2764\u2765\u0007\u033d\u0002\u0002", + "\u2765\u276d\u0005\u0370\u01b9\u0002\u2766\u2767\u0007\u026d\u0002\u0002", + "\u2767\u2768\u0007\u033c\u0002\u0002\u2768\u2769\u0005\u02d8\u016d\u0002", + "\u2769\u276a\u0007\u033d\u0002\u0002\u276a\u276b\u0005\u0370\u01b9\u0002", + "\u276b\u276d\u0003\u0002\u0002\u0002\u276c\u2762\u0003\u0002\u0002\u0002", + "\u276c\u2766\u0003\u0002\u0002\u0002\u276d\u0369\u0003\u0002\u0002\u0002", + "\u276e\u276f\t~\u0002\u0002\u276f\u2770\u0007\u033c\u0002\u0002\u2770", + "\u2771\u0005\u036e\u01b8\u0002\u2771\u2773\u0007\u033d\u0002\u0002\u2772", + "\u2774\u0005\u0370\u01b9\u0002\u2773\u2772\u0003\u0002\u0002\u0002\u2773", + "\u2774\u0003\u0002\u0002\u0002\u2774\u278f\u0003\u0002\u0002\u0002\u2775", + "\u2776\t\u007f\u0002\u0002\u2776\u2779\u0007\u033c\u0002\u0002\u2777", + "\u277a\u0007\u0341\u0002\u0002\u2778\u277a\u0005\u036e\u01b8\u0002\u2779", + "\u2777\u0003\u0002\u0002\u0002\u2779\u2778\u0003\u0002\u0002\u0002\u277a", + "\u277b\u0003\u0002\u0002\u0002\u277b\u277d\u0007\u033d\u0002\u0002\u277c", + "\u277e\u0005\u0370\u01b9\u0002\u277d\u277c\u0003\u0002\u0002\u0002\u277d", + "\u277e\u0003\u0002\u0002\u0002\u277e\u278f\u0003\u0002\u0002\u0002\u277f", + "\u2780\u0007\u01b3\u0002\u0002\u2780\u2781\u0007\u033c\u0002\u0002\u2781", + "\u2782\u0005\u036e\u01b8\u0002\u2782\u2783\u0007\u033d\u0002\u0002\u2783", + "\u278f\u0003\u0002\u0002\u0002\u2784\u2785\u0007\u0210\u0002\u0002\u2785", + "\u2786\u0007\u033c\u0002\u0002\u2786\u2787\u0005\u02d8\u016d\u0002\u2787", + "\u2788\u0007\u033d\u0002\u0002\u2788\u278f\u0003\u0002\u0002\u0002\u2789", + "\u278a\u0007\u0211\u0002\u0002\u278a\u278b\u0007\u033c\u0002\u0002\u278b", + "\u278c\u0005\u0366\u01b4\u0002\u278c\u278d\u0007\u033d\u0002\u0002\u278d", + "\u278f\u0003\u0002\u0002\u0002\u278e\u276e\u0003\u0002\u0002\u0002\u278e", + "\u2775\u0003\u0002\u0002\u0002\u278e\u277f\u0003\u0002\u0002\u0002\u278e", + "\u2784\u0003\u0002\u0002\u0002\u278e\u2789\u0003\u0002\u0002\u0002\u278f", + "\u036b\u0003\u0002\u0002\u0002\u2790\u2791\t\u0080\u0002\u0002\u2791", + "\u2792\u0007\u033c\u0002\u0002\u2792\u2793\u0005\u02d8\u016d\u0002\u2793", + "\u2794\u0007\u033d\u0002\u0002\u2794\u2795\u0005\u0370\u01b9\u0002\u2795", + "\u27a5\u0003\u0002\u0002\u0002\u2796\u2797\t\u0081\u0002\u0002\u2797", + "\u2798\u0007\u033c\u0002\u0002\u2798\u279f\u0005\u02d8\u016d\u0002\u2799", + "\u279a\u0007\u033e\u0002\u0002\u279a\u279d\u0005\u02d8\u016d\u0002\u279b", + "\u279c\u0007\u033e\u0002\u0002\u279c\u279e\u0005\u02d8\u016d\u0002\u279d", + "\u279b\u0003\u0002\u0002\u0002\u279d\u279e\u0003\u0002\u0002\u0002\u279e", + "\u27a0\u0003\u0002\u0002\u0002\u279f\u2799\u0003\u0002\u0002\u0002\u279f", + "\u27a0\u0003\u0002\u0002\u0002\u27a0\u27a1\u0003\u0002\u0002\u0002\u27a1", + "\u27a2\u0007\u033d\u0002\u0002\u27a2\u27a3\u0005\u0370\u01b9\u0002\u27a3", + "\u27a5\u0003\u0002\u0002\u0002\u27a4\u2790\u0003\u0002\u0002\u0002\u27a4", + "\u2796\u0003\u0002\u0002\u0002\u27a5\u036d\u0003\u0002\u0002\u0002\u27a6", + "\u27a8\to\u0002\u0002\u27a7\u27a6\u0003\u0002\u0002\u0002\u27a7\u27a8", + "\u0003\u0002\u0002\u0002\u27a8\u27a9\u0003\u0002\u0002\u0002\u27a9\u27aa", + "\u0005\u02d8\u016d\u0002\u27aa\u036f\u0003\u0002\u0002\u0002\u27ab\u27ac", + "\u0007\u00f0\u0002\u0002\u27ac\u27b0\u0007\u033c\u0002\u0002\u27ad\u27ae", + "\u0007\u0280\u0002\u0002\u27ae\u27af\u0007&\u0002\u0002\u27af\u27b1", + "\u0005\u0366\u01b4\u0002\u27b0\u27ad\u0003\u0002\u0002\u0002\u27b0\u27b1", + "\u0003\u0002\u0002\u0002\u27b1\u27b3\u0003\u0002\u0002\u0002\u27b2\u27b4", + "\u0005\u0302\u0182\u0002\u27b3\u27b2\u0003\u0002\u0002\u0002\u27b3\u27b4", + "\u0003\u0002\u0002\u0002\u27b4\u27b6\u0003\u0002\u0002\u0002\u27b5\u27b7", + "\u0005\u0372\u01ba\u0002\u27b6\u27b5\u0003\u0002\u0002\u0002\u27b6\u27b7", + "\u0003\u0002\u0002\u0002\u27b7\u27b8\u0003\u0002\u0002\u0002\u27b8\u27b9", + "\u0007\u033d\u0002\u0002\u27b9\u0371\u0003\u0002\u0002\u0002\u27ba\u27bb", + "\t\u0082\u0002\u0002\u27bb\u27bc\u0005\u0374\u01bb\u0002\u27bc\u0373", + "\u0003\u0002\u0002\u0002\u27bd\u27c4\u0005\u0378\u01bd\u0002\u27be\u27bf", + "\u0007\u001d\u0002\u0002\u27bf\u27c0\u0005\u0376\u01bc\u0002\u27c0\u27c1", + "\u0007\u000b\u0002\u0002\u27c1\u27c2\u0005\u0376\u01bc\u0002\u27c2\u27c4", + "\u0003\u0002\u0002\u0002\u27c3\u27bd\u0003\u0002\u0002\u0002\u27c3\u27be", + "\u0003\u0002\u0002\u0002\u27c4\u0375\u0003\u0002\u0002\u0002\u27c5\u27c8", + "\u0005\u0378\u01bd\u0002\u27c6\u27c8\u0005\u037a\u01be\u0002\u27c7\u27c5", + "\u0003\u0002\u0002\u0002\u27c7\u27c6\u0003\u0002\u0002\u0002\u27c8\u0377", + "\u0003\u0002\u0002\u0002\u27c9\u27ca\u0007\u0303\u0002\u0002\u27ca\u27d0", + "\u0007\u0287\u0002\u0002\u27cb\u27cc\u0007\u0322\u0002\u0002\u27cc\u27d0", + "\u0007\u0287\u0002\u0002\u27cd\u27ce\u0007K\u0002\u0002\u27ce\u27d0", + "\u0007\u02b9\u0002\u0002\u27cf\u27c9\u0003\u0002\u0002\u0002\u27cf\u27cb", + "\u0003\u0002\u0002\u0002\u27cf\u27cd\u0003\u0002\u0002\u0002\u27d0\u0379", + "\u0003\u0002\u0002\u0002\u27d1\u27d2\u0007\u0303\u0002\u0002\u27d2\u27d6", + "\u0007\u0202\u0002\u0002\u27d3\u27d4\u0007\u0322\u0002\u0002\u27d4\u27d6", + "\u0007\u0202\u0002\u0002\u27d5\u27d1\u0003\u0002\u0002\u0002\u27d5\u27d3", + "\u0003\u0002\u0002\u0002\u27d6\u037b\u0003\u0002\u0002\u0002\u27d7\u27d8", + "\u0007\u01fe\u0002\u0002\u27d8\u27dd\u0005\u037e\u01c0\u0002\u27d9\u27da", + "\u0007\u033e\u0002\u0002\u27da\u27dc\u0005\u037e\u01c0\u0002\u27db\u27d9", + "\u0003\u0002\u0002\u0002\u27dc\u27df\u0003\u0002\u0002\u0002\u27dd\u27db", + "\u0003\u0002\u0002\u0002\u27dd\u27de\u0003\u0002\u0002\u0002\u27de\u27fa", + "\u0003\u0002\u0002\u0002\u27df\u27dd\u0003\u0002\u0002\u0002\u27e0\u27e1", + "\u0007\u01d4\u0002\u0002\u27e1\u27e4\u0007\u032a\u0002\u0002\u27e2\u27e5", + "\u0005\u03c6\u01e4\u0002\u27e3\u27e5\u0007\u0326\u0002\u0002\u27e4\u27e2", + "\u0003\u0002\u0002\u0002\u27e4\u27e3\u0003\u0002\u0002\u0002\u27e5\u27fa", + "\u0003\u0002\u0002\u0002\u27e6\u27e7\u0007\u01d3\u0002\u0002\u27e7\u27ea", + "\u0007\u032a\u0002\u0002\u27e8\u27eb\u0005\u03c6\u01e4\u0002\u27e9\u27eb", + "\u0007\u0326\u0002\u0002\u27ea\u27e8\u0003\u0002\u0002\u0002\u27ea\u27e9", + "\u0003\u0002\u0002\u0002\u27eb\u27fa\u0003\u0002\u0002\u0002\u27ec\u27ed", + "\u0007\u025e\u0002\u0002\u27ed\u27ee\u0007\u032a\u0002\u0002\u27ee\u27fa", + "\t\t\u0002\u0002\u27ef\u27f0\u0007\u02fa\u0002\u0002\u27f0\u27f1\u0007", + "\u032a\u0002\u0002\u27f1\u27fa\t\t\u0002\u0002\u27f2\u27f3\u0007\u0300", + "\u0002\u0002\u27f3\u27f4\u0007\u032a\u0002\u0002\u27f4\u27fa\u0007\u0322", + "\u0002\u0002\u27f5\u27f6\u0007\u01cf\u0002\u0002\u27f6\u27fa\t\t\u0002", + "\u0002\u27f7\u27f8\u0007\u02fd\u0002\u0002\u27f8\u27fa\t\t\u0002\u0002", + "\u27f9\u27d7\u0003\u0002\u0002\u0002\u27f9\u27e0\u0003\u0002\u0002\u0002", + "\u27f9\u27e6\u0003\u0002\u0002\u0002\u27f9\u27ec\u0003\u0002\u0002\u0002", + "\u27f9\u27ef\u0003\u0002\u0002\u0002\u27f9\u27f2\u0003\u0002\u0002\u0002", + "\u27f9\u27f5\u0003\u0002\u0002\u0002\u27f9\u27f7\u0003\u0002\u0002\u0002", + "\u27fa\u037d\u0003\u0002\u0002\u0002\u27fb\u2802\u0007\u033c\u0002\u0002", + "\u27fc\u27fd\u0007\u0269\u0002\u0002\u27fd\u27fe\u0007\u032a\u0002\u0002", + "\u27fe\u2803\t\u0083\u0002\u0002\u27ff\u2800\u0007\u01df\u0002\u0002", + "\u2800\u2801\u0007\u032a\u0002\u0002\u2801\u2803\u0007\u0326\u0002\u0002", + "\u2802\u27fc\u0003\u0002\u0002\u0002\u2802\u27ff\u0003\u0002\u0002\u0002", + "\u2803\u2804\u0003\u0002\u0002\u0002\u2804\u2805\u0007\u033d\u0002\u0002", + "\u2805\u037f\u0003\u0002\u0002\u0002\u2806\u2809\u0005\u0382\u01c2\u0002", + "\u2807\u2809\u0005\u0384\u01c3\u0002\u2808\u2806\u0003\u0002\u0002\u0002", + "\u2808\u2807\u0003\u0002\u0002\u0002\u2809\u0381\u0003\u0002\u0002\u0002", + "\u280a\u280b\u0007\u01fb\u0002\u0002\u280b\u280e\u0005\u03c6\u01e4\u0002", + "\u280c\u280d\u0007?\u0002\u0002\u280d\u280f\u0007\u01fe\u0002\u0002", + "\u280e\u280c\u0003\u0002\u0002\u0002\u280e\u280f\u0003\u0002\u0002\u0002", + "\u280f\u2811\u0003\u0002\u0002\u0002\u2810\u2812\u0007Y\u0002\u0002", + "\u2811\u2810\u0003\u0002\u0002\u0002\u2811\u2812\u0003\u0002\u0002\u0002", + "\u2812\u2815\u0003\u0002\u0002\u0002\u2813\u2814\u0007?\u0002\u0002", + "\u2814\u2816\u0007\u024f\u0002\u0002\u2815\u2813\u0003\u0002\u0002\u0002", + "\u2815\u2816\u0003\u0002\u0002\u0002\u2816\u2817\u0003\u0002\u0002\u0002", + "\u2817\u281c\u0005\u0384\u01c3\u0002\u2818\u2819\u0007\u033e\u0002\u0002", + "\u2819\u281b\u0005\u0384\u01c3\u0002\u281a\u2818\u0003\u0002\u0002\u0002", + "\u281b\u281e\u0003\u0002\u0002\u0002\u281c\u281a\u0003\u0002\u0002\u0002", + "\u281c\u281d\u0003\u0002\u0002\u0002\u281d\u0383\u0003\u0002\u0002\u0002", + "\u281e\u281c\u0003\u0002\u0002\u0002\u281f\u2820\u0007\u033c\u0002\u0002", + "\u2820\u2821\u0007\u025d\u0002\u0002\u2821\u2824\u0007\u032a\u0002\u0002", + "\u2822\u2825\u0005\u03c6\u01e4\u0002\u2823\u2825\u0007\u0326\u0002\u0002", + "\u2824\u2822\u0003\u0002\u0002\u0002\u2824\u2823\u0003\u0002\u0002\u0002", + "\u2825\u2827\u0003\u0002\u0002\u0002\u2826\u2828\u0007\u033e\u0002\u0002", + "\u2827\u2826\u0003\u0002\u0002\u0002\u2827\u2828\u0003\u0002\u0002\u0002", + "\u2828\u2829\u0003\u0002\u0002\u0002\u2829\u282a\u0007\u0082\u0002\u0002", + "\u282a\u282b\u0007\u032a\u0002\u0002\u282b\u282d\u0007\u0326\u0002\u0002", + "\u282c\u282e\u0007\u033e\u0002\u0002\u282d\u282c\u0003\u0002\u0002\u0002", + "\u282d\u282e\u0003\u0002\u0002\u0002\u282e\u2835\u0003\u0002\u0002\u0002", + "\u282f\u2830\u0007\u02d8\u0002\u0002\u2830\u2831\u0007\u032a\u0002\u0002", + "\u2831\u2833\u0005\u03ce\u01e8\u0002\u2832\u2834\u0007\u033e\u0002\u0002", + "\u2833\u2832\u0003\u0002\u0002\u0002\u2833\u2834\u0003\u0002\u0002\u0002", + "\u2834\u2836\u0003\u0002\u0002\u0002\u2835\u282f\u0003\u0002\u0002\u0002", + "\u2835\u2836\u0003\u0002\u0002\u0002\u2836\u2840\u0003\u0002\u0002\u0002", + "\u2837\u2838\u0007\u024c\u0002\u0002\u2838\u283b\u0007\u032a\u0002\u0002", + "\u2839\u283c\u0005\u03ce\u01e8\u0002\u283a\u283c\u0007\u0306\u0002\u0002", + "\u283b\u2839\u0003\u0002\u0002\u0002\u283b\u283a\u0003\u0002\u0002\u0002", + "\u283c\u283e\u0003\u0002\u0002\u0002\u283d\u283f\u0007\u033e\u0002\u0002", + "\u283e\u283d\u0003\u0002\u0002\u0002\u283e\u283f\u0003\u0002\u0002\u0002", + "\u283f\u2841\u0003\u0002\u0002\u0002\u2840\u2837\u0003\u0002\u0002\u0002", + "\u2840\u2841\u0003\u0002\u0002\u0002\u2841\u2848\u0003\u0002\u0002\u0002", + "\u2842\u2843\u0007\u01fc\u0002\u0002\u2843\u2844\u0007\u032a\u0002\u0002", + "\u2844\u2846\u0005\u03ce\u01e8\u0002\u2845\u2847\u0007\u033e\u0002\u0002", + "\u2846\u2845\u0003\u0002\u0002\u0002\u2846\u2847\u0003\u0002\u0002\u0002", + "\u2847\u2849\u0003\u0002\u0002\u0002\u2848\u2842\u0003\u0002\u0002\u0002", + "\u2848\u2849\u0003\u0002\u0002\u0002\u2849\u284a\u0003\u0002\u0002\u0002", + "\u284a\u284b\u0007\u033d\u0002\u0002\u284b\u0385\u0003\u0002\u0002\u0002", + "\u284c\u284d\u0005\u03c6\u01e4\u0002\u284d\u284e\u0007\u0337\u0002\u0002", + "\u284e\u284f\u0005\u03c6\u01e4\u0002\u284f\u2850\u0007\u0337\u0002\u0002", + "\u2850\u2851\u0005\u03c6\u01e4\u0002\u2851\u2852\u0007\u0337\u0002\u0002", + "\u2852\u285e\u0003\u0002\u0002\u0002\u2853\u2854\u0005\u03c6\u01e4\u0002", + "\u2854\u2856\u0007\u0337\u0002\u0002\u2855\u2857\u0005\u03c6\u01e4\u0002", + "\u2856\u2855\u0003\u0002\u0002\u0002\u2856\u2857\u0003\u0002\u0002\u0002", + "\u2857\u2858\u0003\u0002\u0002\u0002\u2858\u2859\u0007\u0337\u0002\u0002", + "\u2859\u285e\u0003\u0002\u0002\u0002\u285a\u285b\u0005\u03c6\u01e4\u0002", + "\u285b\u285c\u0007\u0337\u0002\u0002\u285c\u285e\u0003\u0002\u0002\u0002", + "\u285d\u284c\u0003\u0002\u0002\u0002\u285d\u2853\u0003\u0002\u0002\u0002", + "\u285d\u285a\u0003\u0002\u0002\u0002\u285d\u285e\u0003\u0002\u0002\u0002", + "\u285e\u285f\u0003\u0002\u0002\u0002\u285f\u2860\u0005\u03c6\u01e4\u0002", + "\u2860\u0387\u0003\u0002\u0002\u0002\u2861\u2867\u0005\u03c6\u01e4\u0002", + "\u2862\u2863\u0005\u03c6\u01e4\u0002\u2863\u2864\u0007\u0337\u0002\u0002", + "\u2864\u2865\u0005\u03c6\u01e4\u0002\u2865\u2867\u0003\u0002\u0002\u0002", + "\u2866\u2861\u0003\u0002\u0002\u0002\u2866\u2862\u0003\u0002\u0002\u0002", + "\u2867\u0389\u0003\u0002\u0002\u0002\u2868\u286e\u0005\u03c6\u01e4\u0002", + "\u2869\u286a\u0005\u03c6\u01e4\u0002\u286a\u286b\u0007\u0337\u0002\u0002", + "\u286b\u286c\u0005\u03c6\u01e4\u0002\u286c\u286e\u0003\u0002\u0002\u0002", + "\u286d\u2868\u0003\u0002\u0002\u0002\u286d\u2869\u0003\u0002\u0002\u0002", + "\u286e\u038b\u0003\u0002\u0002\u0002\u286f\u2870\u0005\u03c6\u01e4\u0002", + "\u2870\u2871\u0007\u0337\u0002\u0002\u2871\u2872\u0005\u03c6\u01e4\u0002", + "\u2872\u2873\u0007\u0337\u0002\u0002\u2873\u2874\u0005\u03c6\u01e4\u0002", + "\u2874\u2875\u0007\u0337\u0002\u0002\u2875\u2881\u0003\u0002\u0002\u0002", + "\u2876\u2877\u0005\u03c6\u01e4\u0002\u2877\u2879\u0007\u0337\u0002\u0002", + "\u2878\u287a\u0005\u03c6\u01e4\u0002\u2879\u2878\u0003\u0002\u0002\u0002", + "\u2879\u287a\u0003\u0002\u0002\u0002\u287a\u287b\u0003\u0002\u0002\u0002", + "\u287b\u287c\u0007\u0337\u0002\u0002\u287c\u2881\u0003\u0002\u0002\u0002", + "\u287d\u287e\u0005\u03c6\u01e4\u0002\u287e\u287f\u0007\u0337\u0002\u0002", + "\u287f\u2881\u0003\u0002\u0002\u0002\u2880\u286f\u0003\u0002\u0002\u0002", + "\u2880\u2876\u0003\u0002\u0002\u0002\u2880\u287d\u0003\u0002\u0002\u0002", + "\u2880\u2881\u0003\u0002\u0002\u0002\u2881\u2882\u0003\u0002\u0002\u0002", + "\u2882\u2883\u0005\u03c6\u01e4\u0002\u2883\u038d\u0003\u0002\u0002\u0002", + "\u2884\u2885\u0005\u03c6\u01e4\u0002\u2885\u2887\u0007\u0337\u0002\u0002", + "\u2886\u2888\u0005\u03c6\u01e4\u0002\u2887\u2886\u0003\u0002\u0002\u0002", + "\u2887\u2888\u0003\u0002\u0002\u0002\u2888\u2889\u0003\u0002\u0002\u0002", + "\u2889\u288a\u0007\u0337\u0002\u0002\u288a\u288f\u0003\u0002\u0002\u0002", + "\u288b\u288c\u0005\u03c6\u01e4\u0002\u288c\u288d\u0007\u0337\u0002\u0002", + "\u288d\u288f\u0003\u0002\u0002\u0002\u288e\u2884\u0003\u0002\u0002\u0002", + "\u288e\u288b\u0003\u0002\u0002\u0002\u288e\u288f\u0003\u0002\u0002\u0002", + "\u288f\u2890\u0003\u0002\u0002\u0002\u2890\u289f\u0005\u03c6\u01e4\u0002", + "\u2891\u2892\u0005\u03c6\u01e4\u0002\u2892\u2894\u0007\u0337\u0002\u0002", + "\u2893\u2895\u0005\u03c6\u01e4\u0002\u2894\u2893\u0003\u0002\u0002\u0002", + "\u2894\u2895\u0003\u0002\u0002\u0002\u2895\u2896\u0003\u0002\u0002\u0002", + "\u2896\u2897\u0007\u0337\u0002\u0002\u2897\u289c\u0003\u0002\u0002\u0002", + "\u2898\u2899\u0005\u03c6\u01e4\u0002\u2899\u289a\u0007\u0337\u0002\u0002", + "\u289a\u289c\u0003\u0002\u0002\u0002\u289b\u2891\u0003\u0002\u0002\u0002", + "\u289b\u2898\u0003\u0002\u0002\u0002\u289b\u289c\u0003\u0002\u0002\u0002", + "\u289c\u289d\u0003\u0002\u0002\u0002\u289d\u289f\u0007 \u0002\u0002", + "\u289e\u288e\u0003\u0002\u0002\u0002\u289e\u289b\u0003\u0002\u0002\u0002", + "\u289f\u038f\u0003\u0002\u0002\u0002\u28a0\u28a1\u0005\u03c6\u01e4\u0002", + "\u28a1\u28a2\u0007\u0337\u0002\u0002\u28a2\u28a4\u0003\u0002\u0002\u0002", + "\u28a3\u28a0\u0003\u0002\u0002\u0002\u28a3\u28a4\u0003\u0002\u0002\u0002", + "\u28a4\u28a5\u0003\u0002\u0002\u0002\u28a5\u28a6\u0005\u03c6\u01e4\u0002", + "\u28a6\u0391\u0003\u0002\u0002\u0002\u28a7\u28a8\u0005\u03c6\u01e4\u0002", + "\u28a8\u28a9\u0007\u0337\u0002\u0002\u28a9\u28ab\u0003\u0002\u0002\u0002", + "\u28aa\u28a7\u0003\u0002\u0002\u0002\u28aa\u28ab\u0003\u0002\u0002\u0002", + "\u28ab\u28ac\u0003\u0002\u0002\u0002\u28ac\u28ad\u0005\u03c6\u01e4\u0002", + "\u28ad\u0393\u0003\u0002\u0002\u0002\u28ae\u28ba\u0005\u0392\u01ca\u0002", + "\u28af\u28b0\u0005\u03c6\u01e4\u0002\u28b0\u28b2\u0007\u0337\u0002\u0002", + "\u28b1\u28b3\u0005\u03c6\u01e4\u0002\u28b2\u28b1\u0003\u0002\u0002\u0002", + "\u28b2\u28b3\u0003\u0002\u0002\u0002\u28b3\u28b4\u0003\u0002\u0002\u0002", + "\u28b4\u28b5\u0007\u0337\u0002\u0002\u28b5\u28b7\u0003\u0002\u0002\u0002", + "\u28b6\u28af\u0003\u0002\u0002\u0002\u28b6\u28b7\u0003\u0002\u0002\u0002", + "\u28b7\u28b8\u0003\u0002\u0002\u0002\u28b8\u28ba\u0005\u03c6\u01e4\u0002", + "\u28b9\u28ae\u0003\u0002\u0002\u0002\u28b9\u28b6\u0003\u0002\u0002\u0002", + "\u28ba\u0395\u0003\u0002\u0002\u0002\u28bb\u28c9\u0005\u0394\u01cb\u0002", + "\u28bc\u28bd\u0005\u03c6\u01e4\u0002\u28bd\u28be\u0007\u0337\u0002\u0002", + "\u28be\u28bf\u0005\u03c6\u01e4\u0002\u28bf\u28c1\u0007\u0337\u0002\u0002", + "\u28c0\u28c2\u0005\u03c6\u01e4\u0002\u28c1\u28c0\u0003\u0002\u0002\u0002", + "\u28c1\u28c2\u0003\u0002\u0002\u0002\u28c2\u28c3\u0003\u0002\u0002\u0002", + "\u28c3\u28c4\u0007\u0337\u0002\u0002\u28c4\u28c6\u0003\u0002\u0002\u0002", + "\u28c5\u28bc\u0003\u0002\u0002\u0002\u28c5\u28c6\u0003\u0002\u0002\u0002", + "\u28c6\u28c7\u0003\u0002\u0002\u0002\u28c7\u28c9\u0005\u03c6\u01e4\u0002", + "\u28c8\u28bb\u0003\u0002\u0002\u0002\u28c8\u28c5\u0003\u0002\u0002\u0002", + "\u28c9\u0397\u0003\u0002\u0002\u0002\u28ca\u28cd\u0005\u038c\u01c7\u0002", + "\u28cb\u28cd\u0007\u0321\u0002\u0002\u28cc\u28ca\u0003\u0002\u0002\u0002", + "\u28cc\u28cb\u0003\u0002\u0002\u0002\u28cd\u0399\u0003\u0002\u0002\u0002", + "\u28ce\u28cf\u0005\u038e\u01c8\u0002\u28cf\u28d0\u0007\u0337\u0002\u0002", + "\u28d0\u28d2\u0003\u0002\u0002\u0002\u28d1\u28ce\u0003\u0002\u0002\u0002", + "\u28d1\u28d2\u0003\u0002\u0002\u0002\u28d2\u28d3\u0003\u0002\u0002\u0002", + "\u28d3\u28ff\u0005\u03c6\u01e4\u0002\u28d4\u28d5\u0005\u038e\u01c8\u0002", + "\u28d5\u28d6\u0007\u0337\u0002\u0002\u28d6\u28d8\u0003\u0002\u0002\u0002", + "\u28d7\u28d4\u0003\u0002\u0002\u0002\u28d7\u28d8\u0003\u0002\u0002\u0002", + "\u28d8\u28d9\u0003\u0002\u0002\u0002\u28d9\u28ff\u0007\u01b8\u0002\u0002", + "\u28da\u28db\u0005\u038e\u01c8\u0002\u28db\u28dc\u0007\u0337\u0002\u0002", + "\u28dc\u28de\u0003\u0002\u0002\u0002\u28dd\u28da\u0003\u0002\u0002\u0002", + "\u28dd\u28de\u0003\u0002\u0002\u0002\u28de\u28df\u0003\u0002\u0002\u0002", + "\u28df\u28ff\u0007\u02e0\u0002\u0002\u28e0\u28e1\u0005\u038e\u01c8\u0002", + "\u28e1\u28e2\u0007\u0337\u0002\u0002\u28e2\u28e4\u0003\u0002\u0002\u0002", + "\u28e3\u28e0\u0003\u0002\u0002\u0002\u28e3\u28e4\u0003\u0002\u0002\u0002", + "\u28e4\u28e5\u0003\u0002\u0002\u0002\u28e5\u28ff\u0007\u0296\u0002\u0002", + "\u28e6\u28e7\u0005\u038e\u01c8\u0002\u28e7\u28e8\u0007\u0337\u0002\u0002", + "\u28e8\u28ea\u0003\u0002\u0002\u0002\u28e9\u28e6\u0003\u0002\u0002\u0002", + "\u28e9\u28ea\u0003\u0002\u0002\u0002\u28ea\u28eb\u0003\u0002\u0002\u0002", + "\u28eb\u28ff\u0007\u0194\u0002\u0002\u28ec\u28ed\u0005\u038e\u01c8\u0002", + "\u28ed\u28ee\u0007\u0337\u0002\u0002\u28ee\u28f0\u0003\u0002\u0002\u0002", + "\u28ef\u28ec\u0003\u0002\u0002\u0002\u28ef\u28f0\u0003\u0002\u0002\u0002", + "\u28f0\u28f1\u0003\u0002\u0002\u0002\u28f1\u28ff\u0007\u0191\u0002\u0002", + "\u28f2\u28f3\u0005\u038e\u01c8\u0002\u28f3\u28f4\u0007\u0337\u0002\u0002", + "\u28f4\u28f6\u0003\u0002\u0002\u0002\u28f5\u28f2\u0003\u0002\u0002\u0002", + "\u28f5\u28f6\u0003\u0002\u0002\u0002\u28f6\u28f7\u0003\u0002\u0002\u0002", + "\u28f7\u28ff\u0007\u0190\u0002\u0002\u28f8\u28f9\u0005\u038e\u01c8\u0002", + "\u28f9\u28fa\u0007\u0337\u0002\u0002\u28fa\u28fc\u0003\u0002\u0002\u0002", + "\u28fb\u28f8\u0003\u0002\u0002\u0002\u28fb\u28fc\u0003\u0002\u0002\u0002", + "\u28fc\u28fd\u0003\u0002\u0002\u0002\u28fd\u28ff\u0007\u018f\u0002\u0002", + "\u28fe\u28d1\u0003\u0002\u0002\u0002\u28fe\u28d7\u0003\u0002\u0002\u0002", + "\u28fe\u28dd\u0003\u0002\u0002\u0002\u28fe\u28e3\u0003\u0002\u0002\u0002", + "\u28fe\u28e9\u0003\u0002\u0002\u0002\u28fe\u28ef\u0003\u0002\u0002\u0002", + "\u28fe\u28f5\u0003\u0002\u0002\u0002\u28fe\u28fb\u0003\u0002\u0002\u0002", + "\u28ff\u039b\u0003\u0002\u0002\u0002\u2900\u2902\u0005\u03c6\u01e4\u0002", + "\u2901\u2903\tu\u0002\u0002\u2902\u2901\u0003\u0002\u0002\u0002\u2902", + "\u2903\u0003\u0002\u0002\u0002\u2903\u290b\u0003\u0002\u0002\u0002\u2904", + "\u2905\u0007\u033e\u0002\u0002\u2905\u2907\u0005\u03c6\u01e4\u0002\u2906", + "\u2908\tu\u0002\u0002\u2907\u2906\u0003\u0002\u0002\u0002\u2907\u2908", + "\u0003\u0002\u0002\u0002\u2908\u290a\u0003\u0002\u0002\u0002\u2909\u2904", + "\u0003\u0002\u0002\u0002\u290a\u290d\u0003\u0002\u0002\u0002\u290b\u2909", + "\u0003\u0002\u0002\u0002\u290b\u290c\u0003\u0002\u0002\u0002\u290c\u039d", + "\u0003\u0002\u0002\u0002\u290d\u290b\u0003\u0002\u0002\u0002\u290e\u2913", + "\u0005\u03c6\u01e4\u0002\u290f\u2910\u0007\u033e\u0002\u0002\u2910\u2912", + "\u0005\u03c6\u01e4\u0002\u2911\u290f\u0003\u0002\u0002\u0002\u2912\u2915", + "\u0003\u0002\u0002\u0002\u2913\u2911\u0003\u0002\u0002\u0002\u2913\u2914", + "\u0003\u0002\u0002\u0002\u2914\u039f\u0003\u0002\u0002\u0002\u2915\u2913", + "\u0003\u0002\u0002\u0002\u2916\u2919\u0005\u03c6\u01e4\u0002\u2917\u2919", + "\u0007\u0321\u0002\u0002\u2918\u2916\u0003\u0002\u0002\u0002\u2918\u2917", + "\u0003\u0002\u0002\u0002\u2919\u03a1\u0003\u0002\u0002\u0002\u291a\u291b", + "\t\t\u0002\u0002\u291b\u03a3\u0003\u0002\u0002\u0002\u291c\u291d\t\u0084", + "\u0002\u0002\u291d\u03a5\u0003\u0002\u0002\u0002\u291e\u2920\u0007\u00dc", + "\u0002\u0002\u291f\u291e\u0003\u0002\u0002\u0002\u291f\u2920\u0003\u0002", + "\u0002\u0002\u2920\u2921\u0003\u0002\u0002\u0002\u2921\u2922\u0007\u00df", + "\u0002\u0002\u2922\u03a7\u0003\u0002\u0002\u0002\u2923\u292b\u0005\u03a6", + "\u01d4\u0002\u2924\u2925\u0007Y\u0002\u0002\u2925\u2928\u0005\u02e2", + "\u0172\u0002\u2926\u2927\u0007\u0179\u0002\u0002\u2927\u2929\u0007\u016f", + "\u0002\u0002\u2928\u2926\u0003\u0002\u0002\u0002\u2928\u2929\u0003\u0002", + "\u0002\u0002\u2929\u292b\u0003\u0002\u0002\u0002\u292a\u2923\u0003\u0002", + "\u0002\u0002\u292a\u2924\u0003\u0002\u0002\u0002\u292b\u03a9\u0003\u0002", + "\u0002\u0002\u292c\u2932\u0005\u0396\u01cc\u0002\u292d\u2932\u0007\u011f", + "\u0002\u0002\u292e\u2932\u0007\u00b1\u0002\u0002\u292f\u2932\u0007\u01a5", + "\u0002\u0002\u2930\u2932\u0007\u01b2\u0002\u0002\u2931\u292c\u0003\u0002", + "\u0002\u0002\u2931\u292d\u0003\u0002\u0002\u0002\u2931\u292e\u0003\u0002", + "\u0002\u0002\u2931\u292f\u0003\u0002\u0002\u0002\u2931\u2930\u0003\u0002", + "\u0002\u0002\u2932\u03ab\u0003\u0002\u0002\u0002\u2933\u2934\u0007\u001c", + "\u0002\u0002\u2934\u2935\u0007F\u0002\u0002\u2935\u2936\u0007\u02f7", + "\u0002\u0002\u2936\u2937\u0007\u033c\u0002\u0002\u2937\u2938\u0007\u0321", + "\u0002\u0002\u2938\u2939\u0007\u033d\u0002\u0002\u2939\u293a\u0007\u02f6", + "\u0002\u0002\u293a\u293b\u0007\u032a\u0002\u0002\u293b\u293d\u0005\u01c0", + "\u00e1\u0002\u293c\u293e\u0007\u033f\u0002\u0002\u293d\u293c\u0003\u0002", + "\u0002\u0002\u293d\u293e\u0003\u0002\u0002\u0002\u293e\u03ad\u0003\u0002", + "\u0002\u0002\u293f\u2940\u0007\u001c\u0002\u0002\u2940\u2942\u0007\u01de", + "\u0002\u0002\u2941\u2943\u0007F\u0002\u0002\u2942\u2941\u0003\u0002", + "\u0002\u0002\u2942\u2943\u0003\u0002\u0002\u0002\u2943\u2944\u0003\u0002", + "\u0002\u0002\u2944\u2945\u0007\u0321\u0002\u0002\u2945\u2946\u0007\u008b", + "\u0002\u0002\u2946\u2947\u0007\u0136\u0002\u0002\u2947\u2948\u0005\u03b2", + "\u01da\u0002\u2948\u2949\u0007\u015a\u0002\u0002\u2949\u294a\u0007\u0136", + "\u0002\u0002\u294a\u294d\u0005\u03b2\u01da\u0002\u294b\u294c\u0007\u033e", + "\u0002\u0002\u294c\u294e\u0007\u0326\u0002\u0002\u294d\u294b\u0003\u0002", + "\u0002\u0002\u294d\u294e\u0003\u0002\u0002\u0002\u294e\u294f\u0003\u0002", + "\u0002\u0002\u294f\u2950\u0007\u00e5\u0002\u0002\u2950\u2951\u0007D", + "\u0002\u0002\u2951\u2968\u0005\u03b0\u01d9\u0002\u2952\u2959\u0007\u0179", + "\u0002\u0002\u2953\u2954\t\u0085\u0002\u0002\u2954\u2955\u0007\u032a", + "\u0002\u0002\u2955\u2957\u0007\u0321\u0002\u0002\u2956\u2958\u0007\u033e", + "\u0002\u0002\u2957\u2956\u0003\u0002\u0002\u0002\u2957\u2958\u0003\u0002", + "\u0002\u0002\u2958\u295a\u0003\u0002\u0002\u0002\u2959\u2953\u0003\u0002", + "\u0002\u0002\u2959\u295a\u0003\u0002\u0002\u0002\u295a\u2961\u0003\u0002", + "\u0002\u0002\u295b\u295c\u0007\u00b3\u0002\u0002\u295c\u295d\u0007\u032a", + "\u0002\u0002\u295d\u295f\t\u0002\u0002\u0002\u295e\u2960\u0007\u033e", + "\u0002\u0002\u295f\u295e\u0003\u0002\u0002\u0002\u295f\u2960\u0003\u0002", + "\u0002\u0002\u2960\u2962\u0003\u0002\u0002\u0002\u2961\u295b\u0003\u0002", + "\u0002\u0002\u2961\u2962\u0003\u0002\u0002\u0002\u2962\u2966\u0003\u0002", + "\u0002\u0002\u2963\u2964\u0007\u01ec\u0002\u0002\u2964\u2965\u0007\u032a", + "\u0002\u0002\u2965\u2967\t\t\u0002\u0002\u2966\u2963\u0003\u0002\u0002", + "\u0002\u2966\u2967\u0003\u0002\u0002\u0002\u2967\u2969\u0003\u0002\u0002", + "\u0002\u2968\u2952\u0003\u0002\u0002\u0002\u2968\u2969\u0003\u0002\u0002", + "\u0002\u2969\u296b\u0003\u0002\u0002\u0002\u296a\u296c\u0007\u033f\u0002", + "\u0002\u296b\u296a\u0003\u0002\u0002\u0002\u296b\u296c\u0003\u0002\u0002", + "\u0002\u296c\u03af\u0003\u0002\u0002\u0002\u296d\u2970\u0005\u03c6\u01e4", + "\u0002\u296e\u2970\u0005\u02d8\u016d\u0002\u296f\u296d\u0003\u0002\u0002", + "\u0002\u296f\u296e\u0003\u0002\u0002\u0002\u2970\u03b1\u0003\u0002\u0002", + "\u0002\u2971\u2974\u0005\u03c6\u01e4\u0002\u2972\u2974\u0005\u02d8\u016d", + "\u0002\u2973\u2971\u0003\u0002\u0002\u0002\u2973\u2972\u0003\u0002\u0002", + "\u0002\u2974\u03b3\u0003\u0002\u0002\u0002\u2975\u2976\u0007l\u0002", + "\u0002\u2976\u2977\u0007F\u0002\u0002\u2977\u2979\u0007\u0321\u0002", + "\u0002\u2978\u297a\u0007\u033f\u0002\u0002\u2979\u2978\u0003\u0002\u0002", + "\u0002\u2979\u297a\u0003\u0002\u0002\u0002\u297a\u2987\u0003\u0002\u0002", + "\u0002\u297b\u2982\u0007\u0179\u0002\u0002\u297c\u297d\u0007p\u0002", + "\u0002\u297d\u297e\u0007\u032a\u0002\u0002\u297e\u297f\t\u0003\u0002", + "\u0002\u297f\u2980\u0007\u01db\u0002\u0002\u2980\u2981\u0007\u032a\u0002", + "\u0002\u2981\u2983\t\u0003\u0002\u0002\u2982\u297c\u0003\u0002\u0002", + "\u0002\u2982\u2983\u0003\u0002\u0002\u0002\u2983\u2985\u0003\u0002\u0002", + "\u0002\u2984\u2986\u0007\u01b4\u0002\u0002\u2985\u2984\u0003\u0002\u0002", + "\u0002\u2985\u2986\u0003\u0002\u0002\u0002\u2986\u2988\u0003\u0002\u0002", + "\u0002\u2987\u297b\u0003\u0002\u0002\u0002\u2987\u2988\u0003\u0002\u0002", + "\u0002\u2988\u03b5\u0003\u0002\u0002\u0002\u2989\u298b\u0007\u0174\u0002", + "\u0002\u298a\u2989\u0003\u0002\u0002\u0002\u298a\u298b\u0003\u0002\u0002", + "\u0002\u298b\u298c\u0003\u0002\u0002\u0002\u298c\u298d\u0007\u033c\u0002", + "\u0002\u298d\u298e\u0005\u03b8\u01dd\u0002\u298e\u2994\u0007\u033d\u0002", + "\u0002\u298f\u2991\u0007\u033e\u0002\u0002\u2990\u298f\u0003\u0002\u0002", + "\u0002\u2990\u2991\u0003\u0002\u0002\u0002\u2991\u2992\u0003\u0002\u0002", + "\u0002\u2992\u2993\u0007\u02f6\u0002\u0002\u2993\u2995\u0005\u01c0\u00e1", + "\u0002\u2994\u2990\u0003\u0002\u0002\u0002\u2994\u2995\u0003\u0002\u0002", + "\u0002\u2995\u2997\u0003\u0002\u0002\u0002\u2996\u2998\u0007\u033f\u0002", + "\u0002\u2997\u2996\u0003\u0002\u0002\u0002\u2997\u2998\u0003\u0002\u0002", + "\u0002\u2998\u03b7\u0003\u0002\u0002\u0002\u2999\u299a\u0007\u008e\u0002", + "\u0002\u299a\u299b\u0007F\u0002\u0002\u299b\u299c\u0007\u0092\u0002", + "\u0002\u299c\u299d\t\u0003\u0002\u0002\u299d\u299e\u0007\u008b\u0002", + "\u0002\u299e\u29a0\u0005\u03ba\u01de\u0002\u299f\u29a1\u0007\u033f\u0002", + "\u0002\u29a0\u299f\u0003\u0002\u0002\u0002\u29a0\u29a1\u0003\u0002\u0002", + "\u0002\u29a1\u03b9\u0003\u0002\u0002\u0002\u29a2\u29a3\u0005\u03c6\u01e4", + "\u0002\u29a3\u29a4\u0007\u0337\u0002\u0002\u29a4\u29a5\u0005\u03c6\u01e4", + "\u0002\u29a5\u29a6\u0007\u0337\u0002\u0002\u29a6\u29a7\u0005\u03c6\u01e4", + "\u0002\u29a7\u29aa\u0003\u0002\u0002\u0002\u29a8\u29aa\u0005\u03c6\u01e4", + "\u0002\u29a9\u29a2\u0003\u0002\u0002\u0002\u29a9\u29a8\u0003\u0002\u0002", + "\u0002\u29aa\u03bb\u0003\u0002\u0002\u0002\u29ab\u29ac\u0007\u02cd\u0002", + "\u0002\u29ac\u29ad\u0007\u00e5\u0002\u0002\u29ad\u29ae\u0007F\u0002", + "\u0002\u29ae\u29af\t\u0003\u0002\u0002\u29af\u29b0\u0007\u0250\u0002", + "\u0002\u29b0\u29b1\u0007\u0301\u0002\u0002\u29b1\u29b5\u0005\u02d8\u016d", + "\u0002\u29b2\u29b3\u0007\u033c\u0002\u0002\u29b3\u29b4\t\u0003\u0002", + "\u0002\u29b4\u29b6\u0007\u033d\u0002\u0002\u29b5\u29b2\u0003\u0002\u0002", + "\u0002\u29b5\u29b6\u0003\u0002\u0002\u0002\u29b6\u29b8\u0003\u0002\u0002", + "\u0002\u29b7\u29b9\u0007\u033f\u0002\u0002\u29b8\u29b7\u0003\u0002\u0002", + "\u0002\u29b8\u29b9\u0003\u0002\u0002\u0002\u29b9\u03bd\u0003\u0002\u0002", + "\u0002\u29ba\u29bc\u0005\u03c6\u01e4\u0002\u29bb\u29bd\u0007\u0096\u0002", + "\u0002\u29bc\u29bb\u0003\u0002\u0002\u0002\u29bc\u29bd\u0003\u0002\u0002", + "\u0002\u29bd\u29c5\u0003\u0002\u0002\u0002\u29be\u29bf\u0007\u033c\u0002", + "\u0002\u29bf\u29c2\t\u0086\u0002\u0002\u29c0\u29c1\u0007\u033e\u0002", + "\u0002\u29c1\u29c3\u0007\u0322\u0002\u0002\u29c2\u29c0\u0003\u0002\u0002", + "\u0002\u29c2\u29c3\u0003\u0002\u0002\u0002\u29c3\u29c4\u0003\u0002\u0002", + "\u0002\u29c4\u29c6\u0007\u033d\u0002\u0002\u29c5\u29be\u0003\u0002\u0002", + "\u0002\u29c5\u29c6\u0003\u0002\u0002\u0002\u29c6\u29d0\u0003\u0002\u0002", + "\u0002\u29c7\u29c9\u0007d\u0002\u0002\u29c8\u29ca\u0007\u00fe\u0002", + "\u0002\u29c9\u29c8\u0003\u0002\u0002\u0002\u29c9\u29ca\u0003\u0002\u0002", + "\u0002\u29ca\u29d0\u0003\u0002\u0002\u0002\u29cb\u29d0\u0007\u0223\u0002", + "\u0002\u29cc\u29d0\u0007\u02f8\u0002\u0002\u29cd\u29d0\u0007\u02d9\u0002", + "\u0002\u29ce\u29d0\u0007\u01a3\u0002\u0002\u29cf\u29ba\u0003\u0002\u0002", + "\u0002\u29cf\u29c7\u0003\u0002\u0002\u0002\u29cf\u29cb\u0003\u0002\u0002", + "\u0002\u29cf\u29cc\u0003\u0002\u0002\u0002\u29cf\u29cd\u0003\u0002\u0002", + "\u0002\u29cf\u29ce\u0003\u0002\u0002\u0002\u29d0\u03bf\u0003\u0002\u0002", + "\u0002\u29d1\u29d5\u0007\u00df\u0002\u0002\u29d2\u29d5\u0007Y\u0002", + "\u0002\u29d3\u29d5\u0005\u03c2\u01e2\u0002\u29d4\u29d1\u0003\u0002\u0002", + "\u0002\u29d4\u29d2\u0003\u0002\u0002\u0002\u29d4\u29d3\u0003\u0002\u0002", + "\u0002\u29d5\u03c1\u0003\u0002\u0002\u0002\u29d6\u29e6\u0007\u0326\u0002", + "\u0002\u29d7\u29e6\u0007\u0327\u0002\u0002\u29d8\u29da\u0005\u03c4\u01e3", + "\u0002\u29d9\u29d8\u0003\u0002\u0002\u0002\u29d9\u29da\u0003\u0002\u0002", + "\u0002\u29da\u29db\u0003\u0002\u0002\u0002\u29db\u29e6\u0007\u0322\u0002", + "\u0002\u29dc\u29de\u0005\u03c4\u01e3\u0002\u29dd\u29dc\u0003\u0002\u0002", + "\u0002\u29dd\u29de\u0003\u0002\u0002\u0002\u29de\u29df\u0003\u0002\u0002", + "\u0002\u29df\u29e6\tp\u0002\u0002\u29e0\u29e2\u0005\u03c4\u01e3\u0002", + "\u29e1\u29e0\u0003\u0002\u0002\u0002\u29e1\u29e2\u0003\u0002\u0002\u0002", + "\u29e2\u29e3\u0003\u0002\u0002\u0002\u29e3\u29e4\u0007\u033b\u0002\u0002", + "\u29e4\u29e6\t\u0087\u0002\u0002\u29e5\u29d6\u0003\u0002\u0002\u0002", + "\u29e5\u29d7\u0003\u0002\u0002\u0002\u29e5\u29d9\u0003\u0002\u0002\u0002", + "\u29e5\u29dd\u0003\u0002\u0002\u0002\u29e5\u29e1\u0003\u0002\u0002\u0002", + "\u29e6\u03c3\u0003\u0002\u0002\u0002\u29e7\u29e8\tm\u0002\u0002\u29e8", + "\u03c5\u0003\u0002\u0002\u0002\u29e9\u29ed\u0005\u03c8\u01e5\u0002\u29ea", + "\u29ed\u0007\u031e\u0002\u0002\u29eb\u29ed\u0007\u0320\u0002\u0002\u29ec", + "\u29e9\u0003\u0002\u0002\u0002\u29ec\u29ea\u0003\u0002\u0002\u0002\u29ec", + "\u29eb\u0003\u0002\u0002\u0002\u29ed\u03c7\u0003\u0002\u0002\u0002\u29ee", + "\u29ef\t\u0088\u0002\u0002\u29ef\u03c9\u0003\u0002\u0002\u0002\u29f0", + "\u2a00\u0007\u032a\u0002\u0002\u29f1\u2a00\u0007\u032b\u0002\u0002\u29f2", + "\u2a00\u0007\u032c\u0002\u0002\u29f3\u29f4\u0007\u032c\u0002\u0002\u29f4", + "\u2a00\u0007\u032a\u0002\u0002\u29f5\u29f6\u0007\u032b\u0002\u0002\u29f6", + "\u2a00\u0007\u032a\u0002\u0002\u29f7\u29f8\u0007\u032c\u0002\u0002\u29f8", + "\u2a00\u0007\u032b\u0002\u0002\u29f9\u29fa\u0007\u032d\u0002\u0002\u29fa", + "\u2a00\u0007\u032a\u0002\u0002\u29fb\u29fc\u0007\u032d\u0002\u0002\u29fc", + "\u2a00\u0007\u032b\u0002\u0002\u29fd\u29fe\u0007\u032d\u0002\u0002\u29fe", + "\u2a00\u0007\u032c\u0002\u0002\u29ff\u29f0\u0003\u0002\u0002\u0002\u29ff", + "\u29f1\u0003\u0002\u0002\u0002\u29ff\u29f2\u0003\u0002\u0002\u0002\u29ff", + "\u29f3\u0003\u0002\u0002\u0002\u29ff\u29f5\u0003\u0002\u0002\u0002\u29ff", + "\u29f7\u0003\u0002\u0002\u0002\u29ff\u29f9\u0003\u0002\u0002\u0002\u29ff", + "\u29fb\u0003\u0002\u0002\u0002\u29ff\u29fd\u0003\u0002\u0002\u0002\u2a00", + "\u03cb\u0003\u0002\u0002\u0002\u2a01\u2a02\t\u0089\u0002\u0002\u2a02", + "\u03cd\u0003\u0002\u0002\u0002\u2a03\u2a05\u0007\u0322\u0002\u0002\u2a04", + "\u2a06\t\u008a\u0002\u0002\u2a05\u2a04\u0003\u0002\u0002\u0002\u2a05", + "\u2a06\u0003\u0002\u0002\u0002\u2a06\u03cf\u0003\u0002\u0002\u0002\u05f5", + "\u03d3\u03dc\u03e0\u03e6\u03e9\u03ed\u03f1\u03fa\u0401\u04a2\u04a9\u04b7", + "\u04bb\u04be\u04c2\u04c6\u04ca\u04cf\u04d4\u04d6\u04da\u04dd\u04e4\u04e7", + "\u04f0\u04f3\u04fe\u0501\u0506\u050b\u050e\u0513\u0517\u051a\u051e\u0521", + "\u0524\u052b\u052f\u0531\u0536\u053c\u0540\u054d\u0553\u0556\u055f\u0562", + "\u0576\u057e\u0583\u0586\u058b\u058e\u0593\u059b\u05a0\u05a3\u05a8\u05ae", + "\u05b3\u05c4\u05c7\u05ca\u05cd\u05d2\u05db\u05ea\u05fb\u0606\u060c\u061b", + "\u062a\u0633\u0637\u063c\u0642\u0648\u064b\u0650\u0655\u065d\u0667\u067a", + "\u0682\u068f\u0691\u069d\u069f\u06a6\u06af\u06b5\u06be\u06cd\u06d7\u06e1", + "\u0709\u0720\u0744\u0756\u0759\u075e\u0761\u0766\u0769\u076e\u0771\u0776", + "\u0779\u0781\u0784\u078c\u0799\u07a4\u07a9\u07ad\u07b3\u07ca\u07d6\u07e1", + "\u07e6\u07ea\u07f0\u07f2\u07ff\u0816\u081d\u0826\u082b\u082e\u0833\u0836", + "\u083b\u0840\u085c\u0863\u0868\u086f\u0871\u087c\u0882\u0891\u089f\u08a2", + "\u08a4\u08a9\u08ad\u08b0\u08b2\u08b8\u08bb\u08bd\u08c3\u08c5\u08db\u08e3", + "\u08eb\u08ed\u08ef\u08f8\u090d\u091a\u0929\u092d\u0950\u0953\u0958\u096a", + "\u096d\u0972\u098c\u099a\u099f\u09a7\u09ac\u09b3\u09c8\u09ed\u09f2\u0a05", + "\u0a11\u0a14\u0a19\u0a1c\u0a22\u0a31\u0a36\u0a3e\u0a41\u0a46\u0a4b\u0a4e", + "\u0a66\u0a6d\u0a72\u0a77\u0a7c\u0a7e\u0a85\u0a92\u0a98\u0a9d\u0aa5\u0ab5", + "\u0abc\u0ac1\u0ac6\u0ac9\u0acf\u0ad5\u0ada\u0adf\u0ae4\u0ae7\u0aed\u0af3", + "\u0afe\u0b01\u0b0b\u0b11\u0b15\u0b19\u0b36\u0b43\u0b49\u0b53\u0b56\u0b6a", + "\u0b6e\u0b72\u0b77\u0b86\u0b8d\u0b96\u0b9e\u0ba1\u0ba6\u0bab\u0bb3\u0bb9", + "\u0bbd\u0bc3\u0bc8\u0bcc\u0bd3\u0bdb\u0be3\u0bec\u0bf1\u0bf5\u0bf8\u0bfc", + "\u0c02\u0c07\u0c0f\u0c17\u0c1d\u0c23\u0c26\u0c2b\u0c2e\u0c35\u0c37\u0c3a", + "\u0c40\u0c43\u0c48\u0c4b\u0c50\u0c53\u0c58\u0c5b\u0c60\u0c63\u0c66\u0c69", + "\u0c70\u0c74\u0c7b\u0c82\u0c88\u0c95\u0c99\u0c9e\u0ca8\u0cb1\u0cb5\u0cc1", + "\u0cc7\u0ccc\u0cce\u0ce2\u0ce6\u0cee\u0cf7\u0cfd\u0d03\u0d0b\u0d0d\u0d17", + "\u0d1b\u0d1e\u0d22\u0d27\u0d2d\u0d30\u0d34\u0d3c\u0d3e\u0d41\u0d49\u0d51", + "\u0d58\u0d5f\u0d61\u0d63\u0d68\u0d6e\u0d71\u0d73\u0d75\u0d78\u0d7d\u0d80", + "\u0d85\u0d94\u0d9b\u0da2\u0da4\u0da6\u0dab\u0db1\u0db4\u0db6\u0db8\u0dbb", + "\u0dc0\u0dc3\u0dc8\u0dd5\u0dda\u0de3\u0de8\u0dee\u0df2\u0df6\u0e07\u0e09", + "\u0e13\u0e18\u0e1a\u0e1e\u0e24\u0e2c\u0e31\u0e34\u0e3c\u0e3f\u0e44\u0e49", + "\u0e4e\u0e53\u0e58\u0e5d\u0e61\u0e66\u0e71\u0e76\u0e79\u0e7c\u0e81\u0e84", + "\u0e89\u0e8c\u0e91\u0e94\u0e99\u0e9c\u0ea1\u0ea4\u0ea9\u0eaf\u0eb4\u0eb7", + "\u0ebc\u0ec3\u0ec5\u0ecb\u0ed4\u0ed9\u0edb\u0ee7\u0eed\u0ef9\u0efc\u0f01", + "\u0f03\u0f0d\u0f12\u0f14\u0f18\u0f1e\u0f30\u0f32\u0f41\u0f53\u0f5b\u0f65", + "\u0f75\u0f8a\u0f95\u0f9b\u0fa4\u0fad\u0fb3\u0fbc\u0fc1\u0fc4\u0fc9\u0fcc", + "\u0fd1\u0fd4\u0fdc\u0fe2\u0fe6\u0fed\u0ff3\u0ff7\u0ffa\u0ffc\u0fff\u1004", + "\u1007\u100c\u100f\u1014\u1017\u101c\u101f\u102e\u1039\u1045\u104c\u1053", + "\u1057\u105c\u105f\u1064\u1067\u106c\u106f\u1078\u107f\u108e\u1092\u1097", + "\u10a2\u10ac\u10b8\u10be\u10c0\u10c8\u10d1\u10d6\u10e1\u10e4\u10e8\u10f0", + "\u10f4\u10f8\u1100\u1105\u110d\u1112\u1116\u1118\u111d\u1126\u1129\u112e", + "\u1135\u113b\u113d\u1142\u1148\u114e\u1153\u1159\u1160\u1165\u116a\u116f", + "\u1172\u1176\u117a\u117e\u1182\u1187\u118b\u118f\u1199\u119f\u11a6\u11a9", + "\u11af\u11b5\u11ba\u11bc\u11c2\u11c4\u11c9\u11cf\u11d5\u11da\u11dc\u11e0", + "\u11e4\u11e7\u11f5\u11fa\u11fe\u120b\u120e\u1210\u1218\u1222\u1228\u122f", + "\u1232\u1238\u123e\u1243\u1245\u124b\u124d\u1252\u1258\u125e\u1264\u1269", + "\u126b\u126f\u1273\u1276\u1284\u1289\u128d\u129a\u129d\u129f\u12a7\u12b2", + "\u12bb\u12c4\u12cf\u12d8\u12e1\u12ed\u12f1\u12f6\u12f8\u12fa\u12ff\u1303", + "\u1308\u130a\u130c\u131a\u131f\u1335\u134b\u1350\u135d\u1365\u1379\u137c", + "\u1382\u138a\u1391\u1396\u139a\u139e\u13a1\u13a8\u13ba\u13bc\u13d0\u13d8", + "\u13dd\u13ef\u13fe\u1400\u1407\u140e\u1413\u1418\u141e\u1423\u1425\u142c", + "\u1432\u1438\u143b\u1441\u144b\u144e\u1455\u1458\u145d\u145f\u1467\u146b", + "\u1471\u1476\u1478\u147b\u1482\u1488\u148f\u1492\u1498\u149d\u149f\u14a2", + "\u14aa\u14b0\u14b7\u14ba\u14c0\u14c5\u14c7\u14cf\u14d7\u14dd\u14e2\u14e4", + "\u14ee\u14f3\u14fd\u1503\u150f\u1511\u1518\u151e\u1524\u152a\u152f\u1531", + "\u1538\u1540\u1546\u1554\u1556\u1559\u155e\u1560\u156c\u1572\u1580\u1582", + "\u1585\u158a\u158d\u1592\u1594\u159d\u15a4\u15aa\u15ad\u15b2\u15b9\u15bb", + "\u15c1\u15c3\u15cb\u15cd\u15d3\u15d5\u15db\u15dd\u15e4\u15e7\u15e9\u15ec", + "\u15f0\u15f2\u15fb\u1601\u1605\u160d\u1614\u161a\u161c\u1627\u162c\u1632", + "\u1636\u1640\u1648\u1654\u1657\u165f\u1661\u1664\u1668\u166b\u1675\u167b", + "\u1683\u1687\u168b\u1694\u169a\u169e\u16a1\u16ac\u16b0\u16b7\u16bc\u16bf", + "\u16c7\u16cb\u16ce\u16d2\u16d5\u16d9\u16e0\u16e4\u16e6\u16e8\u16eb\u16ee", + "\u16f1\u16f7\u16fa\u1702\u1704\u1707\u170b\u170e\u1714\u1717\u171b\u171e", + "\u1721\u1728\u172b\u1732\u1738\u173c\u1746\u1749\u174c\u1750\u1753\u1756", + "\u1759\u175d\u1760\u1768\u176a\u176e\u1771\u1779\u177d\u1781\u1788\u178c", + "\u178e\u1790\u1793\u1796\u1799\u17a1\u17a7\u17ad\u17af\u17b3\u17b6\u17bb", + "\u17c0\u17c3\u17cb\u17cf\u17d6\u17d9\u17e2\u17e5\u17e9\u17f1\u17f4\u17f8", + "\u17fb\u1809\u180d\u1810\u1814\u1817\u181c\u181f\u1825\u1828\u182f\u1833", + "\u1835\u183d\u1840\u1844\u184b\u1850\u1853\u185f\u1862\u1868\u186f\u1874", + "\u1879\u1880\u1887\u188a\u1892\u189a\u189d\u18a5\u18b0\u18b3\u18bd\u18c4", + "\u18c9\u18cc\u18d6\u18d9\u18dc\u18e4\u18ef\u18f2\u18f5\u18fb\u1900\u1904", + "\u190e\u1911\u1914\u191a\u1920\u1928\u192b\u192f\u1933\u1936\u193b\u1949", + "\u1959\u195d\u1963\u1965\u1968\u196c\u1971\u1976\u197e\u1983\u1988\u198e", + "\u1993\u1996\u199f\u19a9\u19ac\u19b5\u19bd\u19c0\u19c7\u19ca\u19f8\u19fc", + "\u19ff\u1a05\u1a11\u1a13\u1a16\u1a2f\u1a3a\u1a42\u1a4d\u1a52\u1a55\u1a5d", + "\u1a67\u1a6e\u1a75\u1a77\u1a83\u1a8e\u1a92\u1a97\u1a9a\u1a9c\u1a9f\u1aab", + "\u1aad\u1aaf\u1ab2\u1ab7\u1aba\u1abf\u1ac9\u1acd\u1ad2\u1ad5\u1ad7\u1ada", + "\u1ae6\u1ae8\u1aea\u1aed\u1af3\u1afd\u1b11\u1b17\u1b30\u1b32\u1b4c\u1b52", + "\u1b5d\u1b65\u1b68\u1b76\u1b7e\u1b85\u1b9c\u1ba9\u1baf\u1bb6\u1bbe\u1bc1", + "\u1bc4\u1bcd\u1bd7\u1bde\u1be2\u1be6\u1bec\u1bf3\u1bf7\u1bfd\u1c04\u1c0b", + "\u1c0e\u1c14\u1c1b\u1c1f\u1c24\u1c29\u1c2e\u1c36\u1c3a\u1c40\u1c47\u1c4b", + "\u1c54\u1c5c\u1c62\u1c68\u1c79\u1c7d\u1c85\u1c89\u1c91\u1c95\u1c9a\u1c9e", + "\u1ca5\u1cab\u1cad\u1cb1\u1cb5\u1cb9\u1cbc\u1cc0\u1cc6\u1cca\u1ccc\u1cd3", + "\u1cda\u1cdd\u1ce0\u1ce7\u1cec\u1cf1\u1cf5\u1cfb\u1cff\u1d01\u1d06\u1d0b", + "\u1d0f\u1d14\u1d1a\u1d1e\u1d22\u1d24\u1d28\u1d2c\u1d30\u1d34\u1d3a\u1d3d", + "\u1d43\u1d47\u1d4b\u1d51\u1d57\u1d59\u1d5c\u1d60\u1d64\u1d68\u1d6e\u1d71", + "\u1d77\u1d7d\u1d80\u1d86\u1d89\u1d8f\u1d92\u1d96\u1d9a\u1d9e\u1da3\u1da6", + "\u1daa\u1dae\u1dbf\u1dc1\u1dc3\u1dc6\u1dcd\u1dd2\u1dd6\u1ddc\u1de0\u1de2", + "\u1de7\u1dec\u1df0\u1df5\u1dfb\u1dff\u1e03\u1e05\u1e09\u1e0d\u1e11\u1e15", + "\u1e1b\u1e1e\u1e24\u1e28\u1e2c\u1e32\u1e38\u1e3a\u1e3d\u1e41\u1e45\u1e49", + "\u1e4f\u1e52\u1e58\u1e5e\u1e61\u1e67\u1e6a\u1e70\u1e73\u1e77\u1e7b\u1e7f", + "\u1e84\u1e87\u1e8b\u1e8f\u1e95\u1e98\u1e9c\u1ead\u1eaf\u1eb1\u1eb4\u1ec2", + "\u1ec8\u1ed0\u1ed7\u1ed9\u1edc\u1efd\u1f01\u1f05\u1f0c\u1f17\u1f1b\u1f22", + "\u1f25\u1f28\u1f30\u1f35\u1f3a\u1f3d\u1f3f\u1f43\u1f47\u1f4a\u1f4e\u1f54", + "\u1f59\u1f60\u1f62\u1f66\u1f6e\u1f74\u1f78\u1f7b\u1f84\u1f87\u1f8d\u1f94", + "\u1f99\u1fa1\u1fa6\u1fb2\u1fb4\u1fbf\u1fc6\u1fd0\u1fe7\u1ff4\u2004\u2009", + "\u2010\u2013\u2017\u2019\u202a\u2039\u2041\u204a\u2052\u205b\u2066\u206a", + "\u206c\u206e\u2074\u2079\u2080\u208d\u208f\u2091\u2094\u2097\u209e\u20a1", + "\u20a7\u20ac\u20ae\u20b1\u20b7\u20bf\u20c1\u20c4\u20c8\u20cb\u20d5\u20d8", + "\u20dc\u20df\u20e5\u20e8\u20ea\u20ee\u20f3\u20f7\u20fc\u2101\u2109\u210d", + "\u2110\u2115\u211d\u2122\u212c\u2137\u213c\u2142\u2148\u214c\u214f\u2153", + "\u2157\u215f\u2164\u2166\u2169\u216e\u2177\u217b\u2180\u2183\u2186\u218c", + "\u2194\u219c\u219f\u21a2\u21a6\u21ab\u21ae\u21b4\u21b8\u21be\u21c6\u21cc", + "\u21ce\u21d1\u21e0\u21e3\u21e6\u21e8\u21f3\u21fe\u2207\u2211\u221b\u221d", + "\u221f\u2222\u2225\u2230\u2232\u2234\u2237\u223c\u2247\u2250\u2253\u2256", + "\u225f\u2262\u2265\u226c\u226f\u227e\u2281\u2288\u2298\u229c\u22a6\u22b9", + "\u22bb\u22c2\u22c9\u22cd\u22d5\u22d9\u22dd\u22e3\u22ed\u22f7\u22fe\u2305", + "\u230e\u2315\u231c\u2325\u2329\u2333\u233a\u2342\u234a\u234e\u2364\u236d", + "\u2373\u2379\u237f\u2389\u2390\u2395\u239a\u239e\u23a5\u23a9\u23ac\u23b1", + "\u23b5\u23b9\u23be\u23c5\u23c8\u23cc\u23d1\u23d5\u23de\u23e5\u23ee\u23fa", + "\u23fc\u2406\u2409\u240e\u2417\u2419\u241b\u2420\u2428\u242d\u2435\u243a", + "\u2440\u244a\u244c\u2450\u2454\u2456\u245f\u2461\u2465\u2470\u2492\u24a2", + "\u24a9\u24ab\u24b2\u24bb\u24c3\u24ca\u24d1\u24d4\u24d7\u24de\u24e5\u24e8", + "\u24ea\u24f2\u24f4\u24fa\u2501\u2509\u250f\u2514\u2518\u251c\u2521\u2523", + "\u252b\u252d\u2531\u2538\u253a\u2541\u2543\u254c\u2554\u255b\u2561\u256c", + "\u2570\u2572\u2575\u258d\u25a6\u25ab\u25bf\u25c3\u25c7\u25d7\u25eb\u2625", + "\u2629\u2659\u2669\u266b\u2672\u2678\u2685\u2694\u269f\u26a4\u26ae\u26b7", + "\u26d9\u26de\u26e4\u26e7\u26ec\u26f1\u26fa\u26ff\u2705\u270e\u2718\u271b", + "\u2729\u272f\u2737\u273b\u2743\u274a\u2757\u275f\u276c\u2773\u2779\u277d", + "\u278e\u279d\u279f\u27a4\u27a7\u27b0\u27b3\u27b6\u27c3\u27c7\u27cf\u27d5", + "\u27dd\u27e4\u27ea\u27f9\u2802\u2808\u280e\u2811\u2815\u281c\u2824\u2827", + "\u282d\u2833\u2835\u283b\u283e\u2840\u2846\u2848\u2856\u285d\u2866\u286d", + "\u2879\u2880\u2887\u288e\u2894\u289b\u289e\u28a3\u28aa\u28b2\u28b6\u28b9", + "\u28c1\u28c5\u28c8\u28cc\u28d1\u28d7\u28dd\u28e3\u28e9\u28ef\u28f5\u28fb", + "\u28fe\u2902\u2907\u290b\u2913\u2918\u291f\u2928\u292a\u2931\u293d\u2942", + "\u294d\u2957\u2959\u295f\u2961\u2966\u2968\u296b\u296f\u2973\u2979\u2982", + "\u2985\u2987\u298a\u2990\u2994\u2997\u29a0\u29a9\u29b5\u29b8\u29bc\u29c2", + "\u29c5\u29c9\u29cf\u29d4\u29d9\u29dd\u29e1\u29e5\u29ec\u29ff\u2a05"].join(""); + + +var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); + +var sharedContextCache = new antlr4.PredictionContextCache(); + +var literalNames = [ null, "'ABSENT'", "'ADD'", "'AES'", "'ALL'", "'ALLOW_CONNECTIONS'", + "'ALLOW_MULTIPLE_EVENT_LOSS'", "'ALLOW_SINGLE_EVENT_LOSS'", + "'ALTER'", "'AND'", "'ANONYMOUS'", "'ANY'", "'APPEND'", + "'APPLICATION'", "'AS'", "'ASC'", "'ASYMMETRIC'", "'ASYNCHRONOUS_COMMIT'", + "'AUTHORIZATION'", "'AUTHENTICATION'", "'AUTOMATED_BACKUP_PREFERENCE'", + "'AUTOMATIC'", "'AVAILABILITY_MODE'", "'\\'", "'BACKUP'", + "'BEFORE'", "'BEGIN'", "'BETWEEN'", "'BLOCK'", "'BLOCKSIZE'", + "'BLOCKING_HIERARCHY'", "'BREAK'", "'BROWSE'", "'BUFFER'", + "'BUFFERCOUNT'", "'BULK'", "'BY'", "'CACHE'", "'CALLED'", + "'CASCADE'", "'CASE'", "'CERTIFICATE'", "'CHANGETABLE'", + "'CHANGES'", "'CHECK'", "'CHECKPOINT'", "'CHECK_POLICY'", + "'CHECK_EXPIRATION'", "'CLASSIFIER_FUNCTION'", "'CLOSE'", + "'CLUSTER'", "'CLUSTERED'", "'COALESCE'", "'COLLATE'", + "'COLUMN'", "'COMPRESSION'", "'COMMIT'", "'COMPUTE'", + "'CONFIGURATION'", "'CONSTRAINT'", "'CONTAINMENT'", + "'CONTAINS'", "'CONTAINSTABLE'", "'CONTEXT'", "'CONTINUE'", + "'CONTINUE_AFTER_ERROR'", "'CONTRACT'", "'CONTRACT_NAME'", + "'CONVERSATION'", null, "'COPY_ONLY'", "'CREATE'", + "'CROSS'", "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_TIME'", + "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", "'CURSOR'", + "'CYCLE'", "'DATA_COMPRESSION'", "'DATA_SOURCE'", "'DATABASE'", + "'DATABASE_MIRRORING'", "'DBCC'", "'DEALLOCATE'", "'DECLARE'", + "'DEFAULT'", "'DEFAULT_DATABASE'", "'DEFAULT_SCHEMA'", + "'DELETE'", "'DENY'", "'DESC'", "'DIAGNOSTICS'", "'DIFFERENTIAL'", + "'DISK'", "'DISTINCT'", "'DISTRIBUTED'", "'DOUBLE'", + "'\\\\'", "'//'", "'DROP'", "'DTC_SUPPORT'", "'DUMP'", + "'ELSE'", "'ENABLED'", "'END'", "'ENDPOINT'", "'ERRLVL'", + "'ESCAPE'", "'ERROR'", "'EVENT'", null, "'EVENT_RETENTION_MODE'", + "'EXCEPT'", "'EXECUTABLE_FILE'", null, "'EXISTS'", + "'EXPIREDATE'", "'EXIT'", "'EXTENSION'", "'EXTERNAL'", + "'EXTERNAL_ACCESS'", "'FAILOVER'", "'FAILURECONDITIONLEVEL'", + "'FAN_IN'", "'FETCH'", "'FILE'", "'FILENAME'", "'FILLFACTOR'", + "'FILE_SNAPSHOT'", "'FOR'", "'FORCESEEK'", "'FORCE_SERVICE_ALLOW_DATA_LOSS'", + "'FOREIGN'", "'FREETEXT'", "'FREETEXTTABLE'", "'FROM'", + "'FULL'", "'FUNCTION'", "'GET'", "'GOTO'", "'GOVERNOR'", + "'GRANT'", "'GROUP'", "'HAVING'", "'HASHED'", "'HEALTHCHECKTIMEOUT'", + "'IDENTITY'", "'IDENTITYCOL'", "'IDENTITY_INSERT'", + "'IF'", "'IIF'", "'IN'", "'INCLUDE'", "'INCREMENT'", + "'INDEX'", "'INFINITE'", "'INIT'", "'INNER'", "'INSERT'", + "'INSTEAD'", "'INTERSECT'", "'INTO'", null, null, "'IS'", + "'ISNULL'", "'JOIN'", "'KERBEROS'", "'KEY'", "'KEY_PATH'", + "'KEY_STORE_PROVIDER_NAME'", "'KILL'", "'LANGUAGE'", + "'LEFT'", "'LIBRARY'", "'LIFETIME'", "'LIKE'", "'LINENO'", + "'LINUX'", "'LISTENER_IP'", "'LISTENER_PORT'", "'LOAD'", + "'LOCAL_SERVICE_NAME'", "'LOG'", "'MATCHED'", "'MASTER'", + "'MAX_MEMORY'", "'MAXTRANSFER'", "'MAXVALUE'", "'MAX_DISPATCH_LATENCY'", + "'MAX_EVENT_SIZE'", "'MAX_SIZE'", "'MAX_OUTSTANDING_IO_PER_VOLUME'", + "'MEDIADESCRIPTION'", "'MEDIANAME'", "'MEMBER'", "'MEMORY_PARTITION_MODE'", + "'MERGE'", "'MESSAGE_FORWARDING'", "'MESSAGE_FORWARD_SIZE'", + "'MINVALUE'", "'MIRROR'", "'MUST_CHANGE'", "'NATIONAL'", + "'NEGOTIATE'", "'NOCHECK'", "'NOFORMAT'", "'NOINIT'", + "'NONCLUSTERED'", "'NONE'", "'NOREWIND'", "'NOSKIP'", + "'NOUNLOAD'", "'NO_CHECKSUM'", "'NO_COMPRESSION'", + "'NO_EVENT_LOSS'", "'NOT'", "'NOTIFICATION'", "'NTLM'", + "'NULL'", "'NULLIF'", "'OF'", "'OFF'", "'OFFSETS'", + "'OLD_PASSWORD'", "'ON'", "'ON_FAILURE'", "'OPEN'", + "'OPENDATASOURCE'", "'OPENQUERY'", "'OPENROWSET'", + "'OPENXML'", "'OPTION'", "'OR'", "'ORDER'", "'OUTER'", + "'OVER'", "'PAGE'", "'PARAM_NODE'", "'PARTIAL'", "'PASSWORD'", + "'PERCENT'", "'PERMISSION_SET'", "'PER_CPU'", "'PER_DB'", + "'PER_NODE'", "'PIVOT'", "'PLAN'", "'PLATFORM'", "'POLICY'", + "'PRECISION'", "'PREDICATE'", "'PRIMARY'", "'PRINT'", + "'PROC'", "'PROCEDURE'", "'PROCESS'", "'PUBLIC'", "'PYTHON'", + "'R'", "'RAISERROR'", "'RAW'", "'READ'", "'READTEXT'", + "'READ_WRITE_FILEGROUPS'", "'RECONFIGURE'", "'REFERENCES'", + "'REGENERATE'", "'RELATED_CONVERSATION'", "'RELATED_CONVERSATION_GROUP'", + "'REPLICATION'", "'REQUIRED'", "'RESET'", "'RESTART'", + "'RESTORE'", "'RESTRICT'", "'RESUME'", "'RETAINDAYS'", + "'RETURN'", "'RETURNS'", "'REVERT'", "'REVOKE'", "'REWIND'", + "'RIGHT'", "'ROLLBACK'", "'ROLE'", "'ROWCOUNT'", "'ROWGUIDCOL'", + "'RSA_512'", "'RSA_1024'", "'RSA_2048'", "'RSA_3072'", + "'RSA_4096'", "'SAFETY'", "'RULE'", "'SAFE'", "'SAVE'", + "'SCHEDULER'", "'SCHEMA'", "'SCHEME'", "'SECURITYAUDIT'", + "'SELECT'", "'SEMANTICKEYPHRASETABLE'", "'SEMANTICSIMILARITYDETAILSTABLE'", + "'SEMANTICSIMILARITYTABLE'", "'SERVER'", "'SERVICE'", + "'SERVICE_BROKER'", "'SERVICE_NAME'", "'SESSION'", + "'SESSION_USER'", "'SET'", "'SETUSER'", "'SHUTDOWN'", + "'SID'", "'SKIP'", "'SOFTNUMA'", "'SOME'", "'SOURCE'", + "'SPECIFICATION'", "'SPLIT'", "'SQLDUMPERFLAGS'", "'SQLDUMPERPATH'", + "'SQLDUMPERTIMEOUTS'", "'STATISTICS'", "'STATE'", "'STATS'", + "'START'", "'STARTED'", "'STARTUP_STATE'", "'STOP'", + "'STOPPED'", "'STOP_ON_ERROR'", "'SUPPORTED'", "'SYSTEM_USER'", + "'TABLE'", "'TABLESAMPLE'", "'TAPE'", "'TARGET'", "'TCP'", + "'TEXTSIZE'", "'THEN'", "'TO'", "'TOP'", "'TRACK_CAUSALITY'", + "'TRAN'", "'TRANSACTION'", "'TRANSFER'", "'TRIGGER'", + "'TRUNCATE'", "'TSEQUAL'", "'UNCHECKED'", "'UNION'", + "'UNIQUE'", "'UNLOCK'", "'UNPIVOT'", "'UNSAFE'", "'UPDATE'", + "'UPDATETEXT'", "'URL'", "'USE'", "'USED'", "'USER'", + "'VALUES'", "'VARYING'", "'VERBOSELOGGING'", "'VIEW'", + "'VISIBILITY'", "'WAITFOR'", "'WHEN'", "'WHERE'", "'WHILE'", + "'WINDOWS'", "'WITH'", "'WITHIN'", "'WITHOUT'", "'WITNESS'", + "'WRITETEXT'", "'ABSOLUTE'", "'ACCENT_SENSITIVITY'", + "'ACTION'", "'ACTIVATION'", "'ACTIVE'", "'ADDRESS'", + "'AES_128'", "'AES_192'", "'AES_256'", "'AFFINITY'", + "'AFTER'", "'AGGREGATE'", "'ALGORITHM'", "'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'", + "'ALLOW_SNAPSHOT_ISOLATION'", "'ALLOWED'", "'ANSI_NULL_DEFAULT'", + "'ANSI_NULLS'", "'ANSI_PADDING'", "'ANSI_WARNINGS'", + "'APPLICATION_LOG'", "'APPLY'", "'ARITHABORT'", "'ASSEMBLY'", + "'AUDIT'", "'AUDIT_GUID'", "'AUTO'", "'AUTO_CLEANUP'", + "'AUTO_CLOSE'", "'AUTO_CREATE_STATISTICS'", "'AUTO_SHRINK'", + "'AUTO_UPDATE_STATISTICS'", "'AUTO_UPDATE_STATISTICS_ASYNC'", + "'AVAILABILITY'", "'AVG'", "'BACKUP_PRIORITY'", "'BEGIN_DIALOG'", + "'BIGINT'", "'BINARY BASE64'", "'BINARY_CHECKSUM'", + "'BINDING'", "'BLOB_STORAGE'", "'BROKER'", "'BROKER_INSTANCE'", + "'BULK_LOGGED'", "'CALLER'", "'CAP_CPU_PERCENT'", null, + "'CATALOG'", "'CATCH'", "'CHANGE_RETENTION'", "'CHANGE_TRACKING'", + "'CHECKSUM'", "'CHECKSUM_AGG'", "'CLEANUP'", "'COLLECTION'", + "'COLUMN_MASTER_KEY'", "'COMMITTED'", "'COMPATIBILITY_LEVEL'", + "'CONCAT'", "'CONCAT_NULL_YIELDS_NULL'", "'CONTENT'", + "'CONTROL'", "'COOKIE'", "'COUNT'", "'COUNT_BIG'", + "'COUNTER'", "'CPU'", "'CREATE_NEW'", "'CREATION_DISPOSITION'", + "'CREDENTIAL'", "'CRYPTOGRAPHIC'", "'CURSOR_CLOSE_ON_COMMIT'", + "'CURSOR_DEFAULT'", "'DATA'", "'DATE_CORRELATION_OPTIMIZATION'", + "'DATEADD'", "'DATEDIFF'", "'DATENAME'", "'DATEPART'", + "'DAYS'", "'DB_CHAINING'", "'DB_FAILOVER'", "'DECRYPTION'", + null, "'DEFAULT_FULLTEXT_LANGUAGE'", "'DEFAULT_LANGUAGE'", + "'DELAY'", "'DELAYED_DURABILITY'", "'DELETED'", "'DENSE_RANK'", + "'DEPENDENTS'", "'DES'", "'DESCRIPTION'", "'DESX'", + "'DHCP'", "'DIALOG'", "'DIRECTORY_NAME'", "'DISABLE'", + "'DISABLE_BROKER'", "'DISABLED'", null, "'DOCUMENT'", + "'DYNAMIC'", "'ELEMENTS'", "'EMERGENCY'", "'EMPTY'", + "'ENABLE'", "'ENABLE_BROKER'", "'ENCRYPTED_VALUE'", + "'ENCRYPTION'", "'ENDPOINT_URL'", "'ERROR_BROKER_CONVERSATIONS'", + "'EXCLUSIVE'", "'EXECUTABLE'", "'EXIST'", "'EXPAND'", + "'EXPIRY_DATE'", "'EXPLICIT'", "'FAIL_OPERATION'", + "'FAILOVER_MODE'", "'FAILURE'", "'FAILURE_CONDITION_LEVEL'", + "'FAST'", "'FAST_FORWARD'", "'FILEGROUP'", "'FILEGROWTH'", + "'FILEPATH'", "'FILESTREAM'", "'FILTER'", "'FIRST'", + "'FIRST_VALUE'", "'FOLLOWING'", "'FORCE'", "'FORCE_FAILOVER_ALLOW_DATA_LOSS'", + "'FORCED'", "'FORMAT'", "'FORWARD_ONLY'", "'FULLSCAN'", + "'FULLTEXT'", "'GB'", "'GETDATE'", "'GETUTCDATE'", + "'GLOBAL'", "'GO'", "'GROUP_MAX_REQUESTS'", "'GROUPING'", + "'GROUPING_ID'", "'HADR'", "'HASH'", "'HEALTH_CHECK_TIMEOUT'", + "'HIGH'", "'HONOR_BROKER_PRIORITY'", "'HOURS'", "'IDENTITY_VALUE'", + "'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'", "'IMMEDIATE'", + "'IMPERSONATE'", "'IMPORTANCE'", "'INCLUDE_NULL_VALUES'", + "'INCREMENTAL'", "'INITIATOR'", "'INPUT'", "'INSENSITIVE'", + "'INSERTED'", "'INT'", "'IP'", "'ISOLATION'", "'JOB'", + "'JSON'", "'KB'", "'KEEP'", "'KEEPFIXED'", "'KEY_SOURCE'", + "'KEYS'", "'KEYSET'", "'LAG'", "'LAST'", "'LAST_VALUE'", + "'LEAD'", "'LEVEL'", "'LIST'", "'LISTENER'", "'LISTENER_URL'", + "'LOB_COMPACTION'", "'LOCAL'", "'LOCATION'", "'LOCK'", + "'LOCK_ESCALATION'", "'LOGIN'", "'LOOP'", "'LOW'", + "'MANUAL'", "'MARK'", "'MATERIALIZED'", "'MAX'", "'MAX_CPU_PERCENT'", + "'MAX_DOP'", "'MAX_FILES'", "'MAX_IOPS_PER_VOLUME'", + "'MAX_MEMORY_PERCENT'", "'MAX_PROCESSES'", "'MAX_QUEUE_READERS'", + "'MAX_ROLLOVER_FILES'", "'MAXDOP'", "'MAXRECURSION'", + "'MAXSIZE'", "'MB'", "'MEDIUM'", "'MEMORY_OPTIMIZED_DATA'", + "'MESSAGE'", "'MIN'", "'MIN_ACTIVE_ROWVERSION'", "'MIN_CPU_PERCENT'", + "'MIN_IOPS_PER_VOLUME'", "'MIN_MEMORY_PERCENT'", "'MINUTES'", + "'MIRROR_ADDRESS'", "'MIXED_PAGE_ALLOCATION'", "'MODE'", + "'MODIFY'", "'MOVE'", "'MULTI_USER'", "'NAME'", "'NESTED_TRIGGERS'", + "'NEW_ACCOUNT'", "'NEW_BROKER'", "'NEW_PASSWORD'", + "'NEXT'", "'NO'", "'NO_TRUNCATE'", "'NO_WAIT'", "'NOCOUNT'", + "'NODES'", "'NOEXPAND'", "'NON_TRANSACTED_ACCESS'", + "'NORECOMPUTE'", "'NORECOVERY'", "'NOWAIT'", "'NTILE'", + "'NUMANODE'", "'NUMBER'", "'NUMERIC_ROUNDABORT'", "'OBJECT'", + "'OFFLINE'", "'OFFSET'", "'OLD_ACCOUNT'", "'ONLINE'", + "'ONLY'", "'OPEN_EXISTING'", "'OPTIMISTIC'", "'OPTIMIZE'", + "'OUT'", "'OUTPUT'", "'OVERRIDE'", "'OWNER'", "'PAGE_VERIFY'", + "'PARAMETERIZATION'", "'PARTITION'", "'PARTITIONS'", + "'PARTNER'", "'PATH'", "'POISON_MESSAGE_HANDLING'", + "'POOL'", "'PORT'", "'PRECEDING'", "'PRIMARY_ROLE'", + "'PRIOR'", "'PRIORITY'", "'PRIORITY_LEVEL'", "'PRIVATE'", + "'PRIVATE_KEY'", "'PRIVILEGES'", "'PROCEDURE_NAME'", + "'PROPERTY'", "'PROVIDER'", "'PROVIDER_KEY_NAME'", + "'QUERY'", "'QUEUE'", "'QUEUE_DELAY'", "'QUOTED_IDENTIFIER'", + "'RANGE'", "'RANK'", "'RC2'", "'RC4'", "'RC4_128'", + "'READ_COMMITTED_SNAPSHOT'", "'READ_ONLY'", "'READ_ONLY_ROUTING_LIST'", + "'READ_WRITE'", "'READONLY'", "'REBUILD'", "'RECEIVE'", + "'RECOMPILE'", "'RECOVERY'", "'RECURSIVE_TRIGGERS'", + "'RELATIVE'", "'REMOTE'", "'REMOTE_SERVICE_NAME'", + "'REMOVE'", "'REORGANIZE'", "'REPEATABLE'", "'REPLICA'", + "'REQUEST_MAX_CPU_TIME_SEC'", "'REQUEST_MAX_MEMORY_GRANT_PERCENT'", + "'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'", "'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'", + "'RESERVE_DISK_SPACE'", "'RESOURCE'", "'RESOURCE_MANAGER_LOCATION'", + "'RESTRICTED_USER'", "'RETENTION'", "'ROBUST'", "'ROOT'", + "'ROUTE'", "'ROW'", "'ROW_NUMBER'", "'ROWGUID'", "'ROWS'", + "'SAMPLE'", "'SCHEMABINDING'", "'SCOPED'", "'SCROLL'", + "'SCROLL_LOCKS'", "'SEARCH'", "'SECONDARY'", "'SECONDARY_ONLY'", + "'SECONDARY_ROLE'", "'SECONDS'", "'SECRET'", "'SECURITY'", + "'SECURITY_LOG'", "'SEEDING_MODE'", "'SELF'", "'SEMI_SENSITIVE'", + "'SEND'", "'SENT'", "'SEQUENCE'", "'SERIALIZABLE'", + "'SESSION_TIMEOUT'", "'SETERROR'", "'SHARE'", "'SHOWPLAN'", + "'SIGNATURE'", "'SIMPLE'", "'SINGLE_USER'", "'SIZE'", + "'SMALLINT'", "'SNAPSHOT'", "'SPATIAL_WINDOW_MAX_CELLS'", + "'STANDBY'", "'START_DATE'", "'STATIC'", "'STATS_STREAM'", + "'STATUS'", "'STATUSONLY'", "'STDEV'", "'STDEVP'", + "'STOPLIST'", "'STRING_AGG'", "'STUFF'", "'SUBJECT'", + "'SUBSCRIPTION'", "'SUM'", "'SUSPEND'", "'SYMMETRIC'", + "'SYNCHRONOUS_COMMIT'", "'SYNONYM'", "'SYSTEM'", "'TAKE'", + "'TARGET_RECOVERY_TIME'", "'TB'", "'TEXTIMAGE_ON'", + "'THROW'", "'TIES'", "'TIME'", "'TIMEOUT'", "'TIMER'", + "'TINYINT'", "'TORN_PAGE_DETECTION'", "'TRANSFORM_NOISE_WORDS'", + "'TRIPLE_DES'", "'TRIPLE_DES_3KEY'", "'TRUSTWORTHY'", + "'TRY'", "'TSQL'", "'TWO_DIGIT_YEAR_CUTOFF'", "'TYPE'", + "'TYPE_WARNING'", "'UNBOUNDED'", "'UNCOMMITTED'", "'UNKNOWN'", + "'UNLIMITED'", "'UOW'", "'USING'", "'VALID_XML'", "'VALIDATION'", + "'VALUE'", "'VAR'", "'VARP'", "'VIEW_METADATA'", "'VIEWS'", + "'WAIT'", "'WELL_FORMED_XML'", "'WITHOUT_ARRAY_WRAPPER'", + "'WORK'", "'WORKLOAD'", "'XML'", "'XMLDATA'", "'XMLNAMESPACES'", + "'XMLSCHEMA'", "'XSINIL'", "'$ACTION'", null, null, + null, null, "'''", null, null, null, null, null, null, + null, null, null, null, "'='", "'>'", "'<'", "'!'", + "'+='", "'-='", "'*='", "'/='", "'%='", "'&='", "'^='", + "'|='", "'||'", "'.'", "'_'", "'@'", "'#'", "'$'", + "'('", "')'", "','", "';'", "':'", "'*'", "'/'", "'%'", + "'+'", "'-'", "'~'", "'|'", "'&'", "'^'" ]; + +var symbolicNames = [ null, "ABSENT", "ADD", "AES", "ALL", "ALLOW_CONNECTIONS", + "ALLOW_MULTIPLE_EVENT_LOSS", "ALLOW_SINGLE_EVENT_LOSS", + "ALTER", "AND", "ANONYMOUS", "ANY", "APPEND", "APPLICATION", + "AS", "ASC", "ASYMMETRIC", "ASYNCHRONOUS_COMMIT", + "AUTHORIZATION", "AUTHENTICATION", "AUTOMATED_BACKUP_PREFERENCE", + "AUTOMATIC", "AVAILABILITY_MODE", "BACKSLASH", "BACKUP", + "BEFORE", "BEGIN", "BETWEEN", "BLOCK", "BLOCKSIZE", + "BLOCKING_HIERARCHY", "BREAK", "BROWSE", "BUFFER", + "BUFFERCOUNT", "BULK", "BY", "CACHE", "CALLED", "CASCADE", + "CASE", "CERTIFICATE", "CHANGETABLE", "CHANGES", "CHECK", + "CHECKPOINT", "CHECK_POLICY", "CHECK_EXPIRATION", + "CLASSIFIER_FUNCTION", "CLOSE", "CLUSTER", "CLUSTERED", + "COALESCE", "COLLATE", "COLUMN", "COMPRESSION", "COMMIT", + "COMPUTE", "CONFIGURATION", "CONSTRAINT", "CONTAINMENT", + "CONTAINS", "CONTAINSTABLE", "CONTEXT", "CONTINUE", + "CONTINUE_AFTER_ERROR", "CONTRACT", "CONTRACT_NAME", + "CONVERSATION", "CONVERT", "COPY_ONLY", "CREATE", + "CROSS", "CURRENT", "CURRENT_DATE", "CURRENT_TIME", + "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", + "DATA_COMPRESSION", "DATA_SOURCE", "DATABASE", "DATABASE_MIRRORING", + "DBCC", "DEALLOCATE", "DECLARE", "DEFAULT", "DEFAULT_DATABASE", + "DEFAULT_SCHEMA", "DELETE", "DENY", "DESC", "DIAGNOSTICS", + "DIFFERENTIAL", "DISK", "DISTINCT", "DISTRIBUTED", + "DOUBLE", "DOUBLE_BACK_SLASH", "DOUBLE_FORWARD_SLASH", + "DROP", "DTC_SUPPORT", "DUMP", "ELSE", "ENABLED", + "END", "ENDPOINT", "ERRLVL", "ESCAPE", "ERROR", "EVENT", + "EVENTDATA", "EVENT_RETENTION_MODE", "EXCEPT", "EXECUTABLE_FILE", + "EXECUTE", "EXISTS", "EXPIREDATE", "EXIT", "EXTENSION", + "EXTERNAL", "EXTERNAL_ACCESS", "FAILOVER", "FAILURECONDITIONLEVEL", + "FAN_IN", "FETCH", "FILE", "FILENAME", "FILLFACTOR", + "FILE_SNAPSHOT", "FOR", "FORCESEEK", "FORCE_SERVICE_ALLOW_DATA_LOSS", + "FOREIGN", "FREETEXT", "FREETEXTTABLE", "FROM", "FULL", + "FUNCTION", "GET", "GOTO", "GOVERNOR", "GRANT", "GROUP", + "HAVING", "HASHED", "HEALTHCHECKTIMEOUT", "IDENTITY", + "IDENTITYCOL", "IDENTITY_INSERT", "IF", "IIF", "IN", + "INCLUDE", "INCREMENT", "INDEX", "INFINITE", "INIT", + "INNER", "INSERT", "INSTEAD", "INTERSECT", "INTO", + "IPV4_ADDR", "IPV6_ADDR", "IS", "ISNULL", "JOIN", + "KERBEROS", "KEY", "KEY_PATH", "KEY_STORE_PROVIDER_NAME", + "KILL", "LANGUAGE", "LEFT", "LIBRARY", "LIFETIME", + "LIKE", "LINENO", "LINUX", "LISTENER_IP", "LISTENER_PORT", + "LOAD", "LOCAL_SERVICE_NAME", "LOG", "MATCHED", "MASTER", + "MAX_MEMORY", "MAXTRANSFER", "MAXVALUE", "MAX_DISPATCH_LATENCY", + "MAX_EVENT_SIZE", "MAX_SIZE", "MAX_OUTSTANDING_IO_PER_VOLUME", + "MEDIADESCRIPTION", "MEDIANAME", "MEMBER", "MEMORY_PARTITION_MODE", + "MERGE", "MESSAGE_FORWARDING", "MESSAGE_FORWARD_SIZE", + "MINVALUE", "MIRROR", "MUST_CHANGE", "NATIONAL", "NEGOTIATE", + "NOCHECK", "NOFORMAT", "NOINIT", "NONCLUSTERED", "NONE", + "NOREWIND", "NOSKIP", "NOUNLOAD", "NO_CHECKSUM", "NO_COMPRESSION", + "NO_EVENT_LOSS", "NOT", "NOTIFICATION", "NTLM", "NULL", + "NULLIF", "OF", "OFF", "OFFSETS", "OLD_PASSWORD", + "ON", "ON_FAILURE", "OPEN", "OPENDATASOURCE", "OPENQUERY", + "OPENROWSET", "OPENXML", "OPTION", "OR", "ORDER", + "OUTER", "OVER", "PAGE", "PARAM_NODE", "PARTIAL", + "PASSWORD", "PERCENT", "PERMISSION_SET", "PER_CPU", + "PER_DB", "PER_NODE", "PIVOT", "PLAN", "PLATFORM", + "POLICY", "PRECISION", "PREDICATE", "PRIMARY", "PRINT", + "PROC", "PROCEDURE", "PROCESS", "PUBLIC", "PYTHON", + "R", "RAISERROR", "RAW", "READ", "READTEXT", "READ_WRITE_FILEGROUPS", + "RECONFIGURE", "REFERENCES", "REGENERATE", "RELATED_CONVERSATION", + "RELATED_CONVERSATION_GROUP", "REPLICATION", "REQUIRED", + "RESET", "RESTART", "RESTORE", "RESTRICT", "RESUME", + "RETAINDAYS", "RETURN", "RETURNS", "REVERT", "REVOKE", + "REWIND", "RIGHT", "ROLLBACK", "ROLE", "ROWCOUNT", + "ROWGUIDCOL", "RSA_512", "RSA_1024", "RSA_2048", "RSA_3072", + "RSA_4096", "SAFETY", "RULE", "SAFE", "SAVE", "SCHEDULER", + "SCHEMA", "SCHEME", "SECURITYAUDIT", "SELECT", "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", "SEMANTICSIMILARITYTABLE", + "SERVER", "SERVICE", "SERVICE_BROKER", "SERVICE_NAME", + "SESSION", "SESSION_USER", "SET", "SETUSER", "SHUTDOWN", + "SID", "SKIP_KEYWORD", "SOFTNUMA", "SOME", "SOURCE", + "SPECIFICATION", "SPLIT", "SQLDUMPERFLAGS", "SQLDUMPERPATH", + "SQLDUMPERTIMEOUT", "STATISTICS", "STATE", "STATS", + "START", "STARTED", "STARTUP_STATE", "STOP", "STOPPED", + "STOP_ON_ERROR", "SUPPORTED", "SYSTEM_USER", "TABLE", + "TABLESAMPLE", "TAPE", "TARGET", "TCP", "TEXTSIZE", + "THEN", "TO", "TOP", "TRACK_CAUSALITY", "TRAN", "TRANSACTION", + "TRANSFER", "TRIGGER", "TRUNCATE", "TSEQUAL", "UNCHECKED", + "UNION", "UNIQUE", "UNLOCK", "UNPIVOT", "UNSAFE", + "UPDATE", "UPDATETEXT", "URL", "USE", "USED", "USER", + "VALUES", "VARYING", "VERBOSELOGGING", "VIEW", "VISIBILITY", + "WAITFOR", "WHEN", "WHERE", "WHILE", "WINDOWS", "WITH", + "WITHIN", "WITHOUT", "WITNESS", "WRITETEXT", "ABSOLUTE", + "ACCENT_SENSITIVITY", "ACTION", "ACTIVATION", "ACTIVE", + "ADDRESS", "AES_128", "AES_192", "AES_256", "AFFINITY", + "AFTER", "AGGREGATE", "ALGORITHM", "ALLOW_ENCRYPTED_VALUE_MODIFICATIONS", + "ALLOW_SNAPSHOT_ISOLATION", "ALLOWED", "ANSI_NULL_DEFAULT", + "ANSI_NULLS", "ANSI_PADDING", "ANSI_WARNINGS", "APPLICATION_LOG", + "APPLY", "ARITHABORT", "ASSEMBLY", "AUDIT", "AUDIT_GUID", + "AUTO", "AUTO_CLEANUP", "AUTO_CLOSE", "AUTO_CREATE_STATISTICS", + "AUTO_SHRINK", "AUTO_UPDATE_STATISTICS", "AUTO_UPDATE_STATISTICS_ASYNC", + "AVAILABILITY", "AVG", "BACKUP_PRIORITY", "BEGIN_DIALOG", + "BIGINT", "BINARY_BASE64", "BINARY_CHECKSUM", "BINDING", + "BLOB_STORAGE", "BROKER", "BROKER_INSTANCE", "BULK_LOGGED", + "CALLER", "CAP_CPU_PERCENT", "CAST", "CATALOG", "CATCH", + "CHANGE_RETENTION", "CHANGE_TRACKING", "CHECKSUM", + "CHECKSUM_AGG", "CLEANUP", "COLLECTION", "COLUMN_MASTER_KEY", + "COMMITTED", "COMPATIBILITY_LEVEL", "CONCAT", "CONCAT_NULL_YIELDS_NULL", + "CONTENT", "CONTROL", "COOKIE", "COUNT", "COUNT_BIG", + "COUNTER", "CPU", "CREATE_NEW", "CREATION_DISPOSITION", + "CREDENTIAL", "CRYPTOGRAPHIC", "CURSOR_CLOSE_ON_COMMIT", + "CURSOR_DEFAULT", "DATA", "DATE_CORRELATION_OPTIMIZATION", + "DATEADD", "DATEDIFF", "DATENAME", "DATEPART", "DAYS", + "DB_CHAINING", "DB_FAILOVER", "DECRYPTION", "DEFAULT_DOUBLE_QUOTE", + "DEFAULT_FULLTEXT_LANGUAGE", "DEFAULT_LANGUAGE", "DELAY", + "DELAYED_DURABILITY", "DELETED", "DENSE_RANK", "DEPENDENTS", + "DES", "DESCRIPTION", "DESX", "DHCP", "DIALOG", "DIRECTORY_NAME", + "DISABLE", "DISABLE_BROKER", "DISABLED", "DISK_DRIVE", + "DOCUMENT", "DYNAMIC", "ELEMENTS", "EMERGENCY", "EMPTY", + "ENABLE", "ENABLE_BROKER", "ENCRYPTED_VALUE", "ENCRYPTION", + "ENDPOINT_URL", "ERROR_BROKER_CONVERSATIONS", "EXCLUSIVE", + "EXECUTABLE", "EXIST", "EXPAND", "EXPIRY_DATE", "EXPLICIT", + "FAIL_OPERATION", "FAILOVER_MODE", "FAILURE", "FAILURE_CONDITION_LEVEL", + "FAST", "FAST_FORWARD", "FILEGROUP", "FILEGROWTH", + "FILEPATH", "FILESTREAM", "FILTER", "FIRST", "FIRST_VALUE", + "FOLLOWING", "FORCE", "FORCE_FAILOVER_ALLOW_DATA_LOSS", + "FORCED", "FORMAT", "FORWARD_ONLY", "FULLSCAN", "FULLTEXT", + "GB", "GETDATE", "GETUTCDATE", "GLOBAL", "GO", "GROUP_MAX_REQUESTS", + "GROUPING", "GROUPING_ID", "HADR", "HASH", "HEALTH_CHECK_TIMEOUT", + "HIGH", "HONOR_BROKER_PRIORITY", "HOURS", "IDENTITY_VALUE", + "IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX", "IMMEDIATE", + "IMPERSONATE", "IMPORTANCE", "INCLUDE_NULL_VALUES", + "INCREMENTAL", "INITIATOR", "INPUT", "INSENSITIVE", + "INSERTED", "INT", "IP", "ISOLATION", "JOB", "JSON", + "KB", "KEEP", "KEEPFIXED", "KEY_SOURCE", "KEYS", "KEYSET", + "LAG", "LAST", "LAST_VALUE", "LEAD", "LEVEL", "LIST", + "LISTENER", "LISTENER_URL", "LOB_COMPACTION", "LOCAL", + "LOCATION", "LOCK", "LOCK_ESCALATION", "LOGIN", "LOOP", + "LOW", "MANUAL", "MARK", "MATERIALIZED", "MAX", "MAX_CPU_PERCENT", + "MAX_DOP", "MAX_FILES", "MAX_IOPS_PER_VOLUME", "MAX_MEMORY_PERCENT", + "MAX_PROCESSES", "MAX_QUEUE_READERS", "MAX_ROLLOVER_FILES", + "MAXDOP", "MAXRECURSION", "MAXSIZE", "MB", "MEDIUM", + "MEMORY_OPTIMIZED_DATA", "MESSAGE", "MIN", "MIN_ACTIVE_ROWVERSION", + "MIN_CPU_PERCENT", "MIN_IOPS_PER_VOLUME", "MIN_MEMORY_PERCENT", + "MINUTES", "MIRROR_ADDRESS", "MIXED_PAGE_ALLOCATION", + "MODE", "MODIFY", "MOVE", "MULTI_USER", "NAME", "NESTED_TRIGGERS", + "NEW_ACCOUNT", "NEW_BROKER", "NEW_PASSWORD", "NEXT", + "NO", "NO_TRUNCATE", "NO_WAIT", "NOCOUNT", "NODES", + "NOEXPAND", "NON_TRANSACTED_ACCESS", "NORECOMPUTE", + "NORECOVERY", "NOWAIT", "NTILE", "NUMANODE", "NUMBER", + "NUMERIC_ROUNDABORT", "OBJECT", "OFFLINE", "OFFSET", + "OLD_ACCOUNT", "ONLINE", "ONLY", "OPEN_EXISTING", + "OPTIMISTIC", "OPTIMIZE", "OUT", "OUTPUT", "OVERRIDE", + "OWNER", "PAGE_VERIFY", "PARAMETERIZATION", "PARTITION", + "PARTITIONS", "PARTNER", "PATH", "POISON_MESSAGE_HANDLING", + "POOL", "PORT", "PRECEDING", "PRIMARY_ROLE", "PRIOR", + "PRIORITY", "PRIORITY_LEVEL", "PRIVATE", "PRIVATE_KEY", + "PRIVILEGES", "PROCEDURE_NAME", "PROPERTY", "PROVIDER", + "PROVIDER_KEY_NAME", "QUERY", "QUEUE", "QUEUE_DELAY", + "QUOTED_IDENTIFIER", "RANGE", "RANK", "RC2", "RC4", + "RC4_128", "READ_COMMITTED_SNAPSHOT", "READ_ONLY", + "READ_ONLY_ROUTING_LIST", "READ_WRITE", "READONLY", + "REBUILD", "RECEIVE", "RECOMPILE", "RECOVERY", "RECURSIVE_TRIGGERS", + "RELATIVE", "REMOTE", "REMOTE_SERVICE_NAME", "REMOVE", + "REORGANIZE", "REPEATABLE", "REPLICA", "REQUEST_MAX_CPU_TIME_SEC", + "REQUEST_MAX_MEMORY_GRANT_PERCENT", "REQUEST_MEMORY_GRANT_TIMEOUT_SEC", + "REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT", "RESERVE_DISK_SPACE", + "RESOURCE", "RESOURCE_MANAGER_LOCATION", "RESTRICTED_USER", + "RETENTION", "ROBUST", "ROOT", "ROUTE", "ROW", "ROW_NUMBER", + "ROWGUID", "ROWS", "SAMPLE", "SCHEMABINDING", "SCOPED", + "SCROLL", "SCROLL_LOCKS", "SEARCH", "SECONDARY", "SECONDARY_ONLY", + "SECONDARY_ROLE", "SECONDS", "SECRET", "SECURITY", + "SECURITY_LOG", "SEEDING_MODE", "SELF", "SEMI_SENSITIVE", + "SEND", "SENT", "SEQUENCE", "SERIALIZABLE", "SESSION_TIMEOUT", + "SETERROR", "SHARE", "SHOWPLAN", "SIGNATURE", "SIMPLE", + "SINGLE_USER", "SIZE", "SMALLINT", "SNAPSHOT", "SPATIAL_WINDOW_MAX_CELLS", + "STANDBY", "START_DATE", "STATIC", "STATS_STREAM", + "STATUS", "STATUSONLY", "STDEV", "STDEVP", "STOPLIST", + "STRING_AGG", "STUFF", "SUBJECT", "SUBSCRIPTION", + "SUM", "SUSPEND", "SYMMETRIC", "SYNCHRONOUS_COMMIT", + "SYNONYM", "SYSTEM", "TAKE", "TARGET_RECOVERY_TIME", + "TB", "TEXTIMAGE_ON", "THROW", "TIES", "TIME", "TIMEOUT", + "TIMER", "TINYINT", "TORN_PAGE_DETECTION", "TRANSFORM_NOISE_WORDS", + "TRIPLE_DES", "TRIPLE_DES_3KEY", "TRUSTWORTHY", "TRY", + "TSQL", "TWO_DIGIT_YEAR_CUTOFF", "TYPE", "TYPE_WARNING", + "UNBOUNDED", "UNCOMMITTED", "UNKNOWN", "UNLIMITED", + "UOW", "USING", "VALID_XML", "VALIDATION", "VALUE", + "VAR", "VARP", "VIEW_METADATA", "VIEWS", "WAIT", "WELL_FORMED_XML", + "WITHOUT_ARRAY_WRAPPER", "WORK", "WORKLOAD", "XML", + "XMLDATA", "XMLNAMESPACES", "XMLSCHEMA", "XSINIL", + "DOLLAR_ACTION", "SPACE", "COMMENT", "LINE_COMMENT", + "DOUBLE_QUOTE_ID", "SINGLE_QUOTE", "SQUARE_BRACKET_ID", + "LOCAL_ID", "DECIMAL", "ID", "QUOTED_URL", "QUOTED_HOST_AND_PORT", + "STRING", "BINARY", "FLOAT", "REAL", "EQUAL", "GREATER", + "LESS", "EXCLAMATION", "PLUS_ASSIGN", "MINUS_ASSIGN", + "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "AND_ASSIGN", + "XOR_ASSIGN", "OR_ASSIGN", "DOUBLE_BAR", "DOT", "UNDERLINE", + "AT", "SHARP", "DOLLAR", "LR_BRACKET", "RR_BRACKET", + "COMMA", "SEMI", "COLON", "STAR", "DIVIDE", "MODULE", + "PLUS", "MINUS", "BIT_NOT", "BIT_OR", "BIT_AND", "BIT_XOR", + "IPV4_OCTECT" ]; + +var ruleNames = [ "tsql_file", "batch", "sql_clauses", "sql_clause", "dml_clause", + "ddl_clause", "backup_statement", "cfl_statement", "block_statement", + "break_statement", "continue_statement", "goto_statement", + "return_statement", "if_statement", "throw_statement", + "throw_error_number", "throw_message", "throw_state", + "try_catch_statement", "waitfor_statement", "while_statement", + "print_statement", "raiseerror_statement", "empty_statement", + "another_statement", "alter_application_role", "create_application_role", + "drop_aggregate", "drop_application_role", "alter_assembly", + "alter_assembly_start", "alter_assembly_clause", "alter_assembly_from_clause", + "alter_assembly_from_clause_start", "alter_assembly_drop_clause", + "alter_assembly_drop_multiple_files", "alter_assembly_drop", + "alter_assembly_add_clause", "alter_asssembly_add_clause_start", + "alter_assembly_client_file_clause", "alter_assembly_file_name", + "alter_assembly_file_bits", "alter_assembly_as", "alter_assembly_with_clause", + "alter_assembly_with", "client_assembly_specifier", "assembly_option", + "network_file_share", "network_computer", "network_file_start", + "file_path", "file_directory_path_separator", "local_file", + "local_drive", "multiple_local_files", "multiple_local_file_start", + "create_assembly", "drop_assembly", "alter_asymmetric_key", + "alter_asymmetric_key_start", "asymmetric_key_option", + "asymmetric_key_option_start", "asymmetric_key_password_change_option", + "create_asymmetric_key", "drop_asymmetric_key", "alter_authorization", + "authorization_grantee", "entity_to", "colon_colon", + "alter_authorization_start", "alter_authorization_for_sql_database", + "alter_authorization_for_azure_dw", "alter_authorization_for_parallel_dw", + "class_type", "class_type_for_sql_database", "class_type_for_azure_dw", + "class_type_for_parallel_dw", "drop_availability_group", + "alter_availability_group", "alter_availability_group_start", + "alter_availability_group_options", "create_or_alter_broker_priority", + "drop_broker_priority", "alter_certificate", "alter_column_encryption_key", + "create_column_encryption_key", "drop_certificate", "drop_column_encryption_key", + "drop_column_master_key", "drop_contract", "drop_credential", + "drop_cryptograhic_provider", "drop_database", "drop_database_audit_specification", + "drop_database_scoped_credential", "drop_default", "drop_endpoint", + "drop_external_data_source", "drop_external_file_format", + "drop_external_library", "drop_external_resource_pool", + "drop_external_table", "drop_event_notifications", "drop_event_session", + "drop_fulltext_catalog", "drop_fulltext_index", "drop_fulltext_stoplist", + "drop_login", "drop_master_key", "drop_message_type", + "drop_partition_function", "drop_partition_scheme", "drop_queue", + "drop_remote_service_binding", "drop_resource_pool", + "drop_db_role", "drop_route", "drop_rule", "drop_schema", + "drop_search_property_list", "drop_security_policy", + "drop_sequence", "drop_server_audit", "drop_server_audit_specification", + "drop_server_role", "drop_service", "drop_signature", + "drop_statistics_name_azure_dw_and_pdw", "drop_symmetric_key", + "drop_synonym", "drop_user", "drop_workload_group", "drop_xml_schema_collection", + "disable_trigger", "enable_trigger", "lock_table", "truncate_table", + "create_column_master_key", "alter_credential", "create_credential", + "alter_cryptographic_provider", "create_cryptographic_provider", + "create_event_notification", "create_or_alter_event_session", + "event_session_predicate_expression", "event_session_predicate_factor", + "event_session_predicate_leaf", "alter_external_data_source", + "alter_external_library", "create_external_library", + "alter_external_resource_pool", "create_external_resource_pool", + "alter_fulltext_catalog", "create_fulltext_catalog", + "alter_fulltext_stoplist", "create_fulltext_stoplist", + "alter_login_sql_server", "create_login_sql_server", + "alter_login_azure_sql", "create_login_azure_sql", "alter_login_azure_sql_dw_and_pdw", + "create_login_pdw", "alter_master_key_sql_server", "create_master_key_sql_server", + "alter_master_key_azure_sql", "create_master_key_azure_sql", + "alter_message_type", "alter_partition_function", "alter_partition_scheme", + "alter_remote_service_binding", "create_remote_service_binding", + "create_resource_pool", "alter_resource_governor", "alter_db_role", + "create_db_role", "create_route", "create_rule", "alter_schema_sql", + "create_schema", "create_schema_azure_sql_dw_and_pdw", + "alter_schema_azure_sql_dw_and_pdw", "create_search_property_list", + "create_security_policy", "alter_sequence", "create_sequence", + "alter_server_audit", "create_server_audit", "alter_server_audit_specification", + "create_server_audit_specification", "alter_server_configuration", + "alter_server_role", "create_server_role", "alter_server_role_pdw", + "alter_service", "create_service", "alter_service_master_key", + "alter_symmetric_key", "create_symmetric_key", "create_synonym", + "alter_user", "create_user", "create_user_azure_sql_dw", + "alter_user_azure_sql", "alter_workload_group", "create_workload_group", + "create_xml_schema_collection", "create_queue", "queue_settings", + "alter_queue", "queue_action", "queue_rebuild_options", + "create_contract", "conversation_statement", "message_statement", + "merge_statement", "merge_matched", "merge_not_matched", + "delete_statement", "delete_statement_from", "insert_statement", + "insert_statement_value", "receive_statement", "select_statement", + "time", "update_statement", "output_clause", "output_dml_list_elem", + "output_column_name", "create_database", "create_index", + "create_or_alter_procedure", "create_or_alter_trigger", + "create_or_alter_dml_trigger", "dml_trigger_option", + "dml_trigger_operation", "create_or_alter_ddl_trigger", + "ddl_trigger_operation", "create_or_alter_function", + "func_body_returns_select", "func_body_returns_table", + "func_body_returns_scalar", "procedure_param", "procedure_option", + "function_option", "create_statistics", "update_statistics", + "create_table", "table_options", "create_view", "view_attribute", + "alter_table", "alter_database", "database_optionspec", + "auto_option", "change_tracking_option", "change_tracking_option_list", + "containment_option", "cursor_option", "alter_endpoint", + "database_mirroring_option", "mirroring_set_option", + "mirroring_partner", "mirroring_witness", "witness_partner_equal", + "partner_option", "witness_option", "witness_server", + "partner_server", "mirroring_host_port_seperator", "partner_server_tcp_prefix", + "port_number", "host", "date_correlation_optimization_option", + "db_encryption_option", "db_state_option", "db_update_option", + "db_user_access_option", "delayed_durability_option", + "external_access_option", "hadr_options", "mixed_page_allocation_option", + "parameterization_option", "recovery_option", "service_broker_option", + "snapshot_option", "sql_option", "target_recovery_time_option", + "termination", "drop_index", "drop_relational_or_xml_or_spatial_index", + "drop_backward_compatible_index", "drop_procedure", "drop_trigger", + "drop_dml_trigger", "drop_ddl_trigger", "drop_function", + "drop_statistics", "drop_table", "drop_view", "create_type", + "drop_type", "rowset_function_limited", "openquery", + "opendatasource", "declare_statement", "cursor_statement", + "backup_database", "backup_log", "backup_certificate", + "backup_master_key", "backup_service_master_key", "kill_statement", + "kill_process", "kill_query_notification", "kill_stats_job", + "execute_statement", "execute_body", "execute_statement_arg", + "execute_var_string", "security_statement", "create_certificate", + "existing_keys", "private_key_options", "generate_new_keys", + "date_options", "open_key", "close_key", "create_key", + "key_options", "algorithm", "encryption_mechanism", "decryption_mechanism", + "grant_permission", "set_statement", "transaction_statement", + "go_statement", "use_statement", "setuser_statement", + "reconfigure_statement", "shutdown_statement", "dbcc_clause", + "dbcc_options", "execute_clause", "declare_local", "table_type_definition", + "xml_type_definition", "xml_schema_collection", "column_def_table_constraints", + "column_def_table_constraint", "column_definition", "materialized_column_definition", + "column_constraint", "table_constraint", "on_delete", + "on_update", "index_options", "index_option", "declare_cursor", + "declare_set_cursor_common", "declare_set_cursor_common_partial", + "fetch_cursor", "set_special", "constant_LOCAL_ID", "expression", + "primitive_expression", "case_expression", "unary_operator_expression", + "bracket_expression", "constant_expression", "subquery", + "with_expression", "common_table_expression", "update_elem", + "search_condition_list", "search_condition", "search_condition_and", + "search_condition_not", "predicate", "query_expression", + "sql_union", "query_specification", "top_clause", "top_percent", + "top_count", "order_by_clause", "for_clause", "xml_common_directives", + "order_by_expression", "group_by_item", "option_clause", + "option", "optimize_for_arg", "select_list", "udt_method_arguments", + "asterisk", "column_elem", "udt_elem", "expression_elem", + "select_list_elem", "table_sources", "table_source", + "table_source_item_joined", "table_source_item", "open_xml", + "schema_declaration", "column_declaration", "change_table", + "join_part", "pivot_clause", "unpivot_clause", "full_column_name_list", + "table_name_with_hint", "rowset_function", "bulk_option", + "derived_table", "function_call", "xml_data_type_methods", + "value_method", "query_method", "exist_method", "modify_method", + "nodes_method", "switch_section", "switch_search_condition_section", + "as_column_alias", "as_table_alias", "table_alias", "with_table_hints", + "insert_with_table_hints", "table_hint", "index_value", + "column_alias_list", "column_alias", "table_value_constructor", + "expression_list", "ranking_windowed_function", "aggregate_windowed_function", + "analytic_windowed_function", "all_distinct_expression", + "over_clause", "row_or_range_clause", "window_frame_extent", + "window_frame_bound", "window_frame_preceding", "window_frame_following", + "create_database_option", "database_filestream_option", + "database_file_spec", "file_group", "file_spec", "entity_name", + "entity_name_for_azure_dw", "entity_name_for_parallel_dw", + "full_table_name", "table_name", "simple_name", "func_proc_name_schema", + "func_proc_name_database_schema", "func_proc_name_server_database_schema", + "ddl_object", "full_column_name", "column_name_list_with_order", + "column_name_list", "cursor_name", "on_off", "clustered", + "null_notnull", "null_or_default", "scalar_function_name", + "begin_conversation_timer", "begin_conversation_dialog", + "contract_name", "service_name", "end_conversation", + "waitfor_conversation", "get_conversation", "queue_id", + "send_conversation", "data_type", "default_value", "constant", + "sign", "id", "simple_id", "comparison_operator", "assignment_operator", + "file_size" ]; + +function TSqlParser (input) { + antlr4.Parser.call(this, input); + this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); + this.ruleNames = ruleNames; + this.literalNames = literalNames; + this.symbolicNames = symbolicNames; + return this; +} + +TSqlParser.prototype = Object.create(antlr4.Parser.prototype); +TSqlParser.prototype.constructor = TSqlParser; + +Object.defineProperty(TSqlParser.prototype, "atn", { + get : function() { + return atn; + } +}); + +TSqlParser.EOF = antlr4.Token.EOF; +TSqlParser.ABSENT = 1; +TSqlParser.ADD = 2; +TSqlParser.AES = 3; +TSqlParser.ALL = 4; +TSqlParser.ALLOW_CONNECTIONS = 5; +TSqlParser.ALLOW_MULTIPLE_EVENT_LOSS = 6; +TSqlParser.ALLOW_SINGLE_EVENT_LOSS = 7; +TSqlParser.ALTER = 8; +TSqlParser.AND = 9; +TSqlParser.ANONYMOUS = 10; +TSqlParser.ANY = 11; +TSqlParser.APPEND = 12; +TSqlParser.APPLICATION = 13; +TSqlParser.AS = 14; +TSqlParser.ASC = 15; +TSqlParser.ASYMMETRIC = 16; +TSqlParser.ASYNCHRONOUS_COMMIT = 17; +TSqlParser.AUTHORIZATION = 18; +TSqlParser.AUTHENTICATION = 19; +TSqlParser.AUTOMATED_BACKUP_PREFERENCE = 20; +TSqlParser.AUTOMATIC = 21; +TSqlParser.AVAILABILITY_MODE = 22; +TSqlParser.BACKSLASH = 23; +TSqlParser.BACKUP = 24; +TSqlParser.BEFORE = 25; +TSqlParser.BEGIN = 26; +TSqlParser.BETWEEN = 27; +TSqlParser.BLOCK = 28; +TSqlParser.BLOCKSIZE = 29; +TSqlParser.BLOCKING_HIERARCHY = 30; +TSqlParser.BREAK = 31; +TSqlParser.BROWSE = 32; +TSqlParser.BUFFER = 33; +TSqlParser.BUFFERCOUNT = 34; +TSqlParser.BULK = 35; +TSqlParser.BY = 36; +TSqlParser.CACHE = 37; +TSqlParser.CALLED = 38; +TSqlParser.CASCADE = 39; +TSqlParser.CASE = 40; +TSqlParser.CERTIFICATE = 41; +TSqlParser.CHANGETABLE = 42; +TSqlParser.CHANGES = 43; +TSqlParser.CHECK = 44; +TSqlParser.CHECKPOINT = 45; +TSqlParser.CHECK_POLICY = 46; +TSqlParser.CHECK_EXPIRATION = 47; +TSqlParser.CLASSIFIER_FUNCTION = 48; +TSqlParser.CLOSE = 49; +TSqlParser.CLUSTER = 50; +TSqlParser.CLUSTERED = 51; +TSqlParser.COALESCE = 52; +TSqlParser.COLLATE = 53; +TSqlParser.COLUMN = 54; +TSqlParser.COMPRESSION = 55; +TSqlParser.COMMIT = 56; +TSqlParser.COMPUTE = 57; +TSqlParser.CONFIGURATION = 58; +TSqlParser.CONSTRAINT = 59; +TSqlParser.CONTAINMENT = 60; +TSqlParser.CONTAINS = 61; +TSqlParser.CONTAINSTABLE = 62; +TSqlParser.CONTEXT = 63; +TSqlParser.CONTINUE = 64; +TSqlParser.CONTINUE_AFTER_ERROR = 65; +TSqlParser.CONTRACT = 66; +TSqlParser.CONTRACT_NAME = 67; +TSqlParser.CONVERSATION = 68; +TSqlParser.CONVERT = 69; +TSqlParser.COPY_ONLY = 70; +TSqlParser.CREATE = 71; +TSqlParser.CROSS = 72; +TSqlParser.CURRENT = 73; +TSqlParser.CURRENT_DATE = 74; +TSqlParser.CURRENT_TIME = 75; +TSqlParser.CURRENT_TIMESTAMP = 76; +TSqlParser.CURRENT_USER = 77; +TSqlParser.CURSOR = 78; +TSqlParser.CYCLE = 79; +TSqlParser.DATA_COMPRESSION = 80; +TSqlParser.DATA_SOURCE = 81; +TSqlParser.DATABASE = 82; +TSqlParser.DATABASE_MIRRORING = 83; +TSqlParser.DBCC = 84; +TSqlParser.DEALLOCATE = 85; +TSqlParser.DECLARE = 86; +TSqlParser.DEFAULT = 87; +TSqlParser.DEFAULT_DATABASE = 88; +TSqlParser.DEFAULT_SCHEMA = 89; +TSqlParser.DELETE = 90; +TSqlParser.DENY = 91; +TSqlParser.DESC = 92; +TSqlParser.DIAGNOSTICS = 93; +TSqlParser.DIFFERENTIAL = 94; +TSqlParser.DISK = 95; +TSqlParser.DISTINCT = 96; +TSqlParser.DISTRIBUTED = 97; +TSqlParser.DOUBLE = 98; +TSqlParser.DOUBLE_BACK_SLASH = 99; +TSqlParser.DOUBLE_FORWARD_SLASH = 100; +TSqlParser.DROP = 101; +TSqlParser.DTC_SUPPORT = 102; +TSqlParser.DUMP = 103; +TSqlParser.ELSE = 104; +TSqlParser.ENABLED = 105; +TSqlParser.END = 106; +TSqlParser.ENDPOINT = 107; +TSqlParser.ERRLVL = 108; +TSqlParser.ESCAPE = 109; +TSqlParser.ERROR = 110; +TSqlParser.EVENT = 111; +TSqlParser.EVENTDATA = 112; +TSqlParser.EVENT_RETENTION_MODE = 113; +TSqlParser.EXCEPT = 114; +TSqlParser.EXECUTABLE_FILE = 115; +TSqlParser.EXECUTE = 116; +TSqlParser.EXISTS = 117; +TSqlParser.EXPIREDATE = 118; +TSqlParser.EXIT = 119; +TSqlParser.EXTENSION = 120; +TSqlParser.EXTERNAL = 121; +TSqlParser.EXTERNAL_ACCESS = 122; +TSqlParser.FAILOVER = 123; +TSqlParser.FAILURECONDITIONLEVEL = 124; +TSqlParser.FAN_IN = 125; +TSqlParser.FETCH = 126; +TSqlParser.FILE = 127; +TSqlParser.FILENAME = 128; +TSqlParser.FILLFACTOR = 129; +TSqlParser.FILE_SNAPSHOT = 130; +TSqlParser.FOR = 131; +TSqlParser.FORCESEEK = 132; +TSqlParser.FORCE_SERVICE_ALLOW_DATA_LOSS = 133; +TSqlParser.FOREIGN = 134; +TSqlParser.FREETEXT = 135; +TSqlParser.FREETEXTTABLE = 136; +TSqlParser.FROM = 137; +TSqlParser.FULL = 138; +TSqlParser.FUNCTION = 139; +TSqlParser.GET = 140; +TSqlParser.GOTO = 141; +TSqlParser.GOVERNOR = 142; +TSqlParser.GRANT = 143; +TSqlParser.GROUP = 144; +TSqlParser.HAVING = 145; +TSqlParser.HASHED = 146; +TSqlParser.HEALTHCHECKTIMEOUT = 147; +TSqlParser.IDENTITY = 148; +TSqlParser.IDENTITYCOL = 149; +TSqlParser.IDENTITY_INSERT = 150; +TSqlParser.IF = 151; +TSqlParser.IIF = 152; +TSqlParser.IN = 153; +TSqlParser.INCLUDE = 154; +TSqlParser.INCREMENT = 155; +TSqlParser.INDEX = 156; +TSqlParser.INFINITE = 157; +TSqlParser.INIT = 158; +TSqlParser.INNER = 159; +TSqlParser.INSERT = 160; +TSqlParser.INSTEAD = 161; +TSqlParser.INTERSECT = 162; +TSqlParser.INTO = 163; +TSqlParser.IPV4_ADDR = 164; +TSqlParser.IPV6_ADDR = 165; +TSqlParser.IS = 166; +TSqlParser.ISNULL = 167; +TSqlParser.JOIN = 168; +TSqlParser.KERBEROS = 169; +TSqlParser.KEY = 170; +TSqlParser.KEY_PATH = 171; +TSqlParser.KEY_STORE_PROVIDER_NAME = 172; +TSqlParser.KILL = 173; +TSqlParser.LANGUAGE = 174; +TSqlParser.LEFT = 175; +TSqlParser.LIBRARY = 176; +TSqlParser.LIFETIME = 177; +TSqlParser.LIKE = 178; +TSqlParser.LINENO = 179; +TSqlParser.LINUX = 180; +TSqlParser.LISTENER_IP = 181; +TSqlParser.LISTENER_PORT = 182; +TSqlParser.LOAD = 183; +TSqlParser.LOCAL_SERVICE_NAME = 184; +TSqlParser.LOG = 185; +TSqlParser.MATCHED = 186; +TSqlParser.MASTER = 187; +TSqlParser.MAX_MEMORY = 188; +TSqlParser.MAXTRANSFER = 189; +TSqlParser.MAXVALUE = 190; +TSqlParser.MAX_DISPATCH_LATENCY = 191; +TSqlParser.MAX_EVENT_SIZE = 192; +TSqlParser.MAX_SIZE = 193; +TSqlParser.MAX_OUTSTANDING_IO_PER_VOLUME = 194; +TSqlParser.MEDIADESCRIPTION = 195; +TSqlParser.MEDIANAME = 196; +TSqlParser.MEMBER = 197; +TSqlParser.MEMORY_PARTITION_MODE = 198; +TSqlParser.MERGE = 199; +TSqlParser.MESSAGE_FORWARDING = 200; +TSqlParser.MESSAGE_FORWARD_SIZE = 201; +TSqlParser.MINVALUE = 202; +TSqlParser.MIRROR = 203; +TSqlParser.MUST_CHANGE = 204; +TSqlParser.NATIONAL = 205; +TSqlParser.NEGOTIATE = 206; +TSqlParser.NOCHECK = 207; +TSqlParser.NOFORMAT = 208; +TSqlParser.NOINIT = 209; +TSqlParser.NONCLUSTERED = 210; +TSqlParser.NONE = 211; +TSqlParser.NOREWIND = 212; +TSqlParser.NOSKIP = 213; +TSqlParser.NOUNLOAD = 214; +TSqlParser.NO_CHECKSUM = 215; +TSqlParser.NO_COMPRESSION = 216; +TSqlParser.NO_EVENT_LOSS = 217; +TSqlParser.NOT = 218; +TSqlParser.NOTIFICATION = 219; +TSqlParser.NTLM = 220; +TSqlParser.NULL = 221; +TSqlParser.NULLIF = 222; +TSqlParser.OF = 223; +TSqlParser.OFF = 224; +TSqlParser.OFFSETS = 225; +TSqlParser.OLD_PASSWORD = 226; +TSqlParser.ON = 227; +TSqlParser.ON_FAILURE = 228; +TSqlParser.OPEN = 229; +TSqlParser.OPENDATASOURCE = 230; +TSqlParser.OPENQUERY = 231; +TSqlParser.OPENROWSET = 232; +TSqlParser.OPENXML = 233; +TSqlParser.OPTION = 234; +TSqlParser.OR = 235; +TSqlParser.ORDER = 236; +TSqlParser.OUTER = 237; +TSqlParser.OVER = 238; +TSqlParser.PAGE = 239; +TSqlParser.PARAM_NODE = 240; +TSqlParser.PARTIAL = 241; +TSqlParser.PASSWORD = 242; +TSqlParser.PERCENT = 243; +TSqlParser.PERMISSION_SET = 244; +TSqlParser.PER_CPU = 245; +TSqlParser.PER_DB = 246; +TSqlParser.PER_NODE = 247; +TSqlParser.PIVOT = 248; +TSqlParser.PLAN = 249; +TSqlParser.PLATFORM = 250; +TSqlParser.POLICY = 251; +TSqlParser.PRECISION = 252; +TSqlParser.PREDICATE = 253; +TSqlParser.PRIMARY = 254; +TSqlParser.PRINT = 255; +TSqlParser.PROC = 256; +TSqlParser.PROCEDURE = 257; +TSqlParser.PROCESS = 258; +TSqlParser.PUBLIC = 259; +TSqlParser.PYTHON = 260; +TSqlParser.R = 261; +TSqlParser.RAISERROR = 262; +TSqlParser.RAW = 263; +TSqlParser.READ = 264; +TSqlParser.READTEXT = 265; +TSqlParser.READ_WRITE_FILEGROUPS = 266; +TSqlParser.RECONFIGURE = 267; +TSqlParser.REFERENCES = 268; +TSqlParser.REGENERATE = 269; +TSqlParser.RELATED_CONVERSATION = 270; +TSqlParser.RELATED_CONVERSATION_GROUP = 271; +TSqlParser.REPLICATION = 272; +TSqlParser.REQUIRED = 273; +TSqlParser.RESET = 274; +TSqlParser.RESTART = 275; +TSqlParser.RESTORE = 276; +TSqlParser.RESTRICT = 277; +TSqlParser.RESUME = 278; +TSqlParser.RETAINDAYS = 279; +TSqlParser.RETURN = 280; +TSqlParser.RETURNS = 281; +TSqlParser.REVERT = 282; +TSqlParser.REVOKE = 283; +TSqlParser.REWIND = 284; +TSqlParser.RIGHT = 285; +TSqlParser.ROLLBACK = 286; +TSqlParser.ROLE = 287; +TSqlParser.ROWCOUNT = 288; +TSqlParser.ROWGUIDCOL = 289; +TSqlParser.RSA_512 = 290; +TSqlParser.RSA_1024 = 291; +TSqlParser.RSA_2048 = 292; +TSqlParser.RSA_3072 = 293; +TSqlParser.RSA_4096 = 294; +TSqlParser.SAFETY = 295; +TSqlParser.RULE = 296; +TSqlParser.SAFE = 297; +TSqlParser.SAVE = 298; +TSqlParser.SCHEDULER = 299; +TSqlParser.SCHEMA = 300; +TSqlParser.SCHEME = 301; +TSqlParser.SECURITYAUDIT = 302; +TSqlParser.SELECT = 303; +TSqlParser.SEMANTICKEYPHRASETABLE = 304; +TSqlParser.SEMANTICSIMILARITYDETAILSTABLE = 305; +TSqlParser.SEMANTICSIMILARITYTABLE = 306; +TSqlParser.SERVER = 307; +TSqlParser.SERVICE = 308; +TSqlParser.SERVICE_BROKER = 309; +TSqlParser.SERVICE_NAME = 310; +TSqlParser.SESSION = 311; +TSqlParser.SESSION_USER = 312; +TSqlParser.SET = 313; +TSqlParser.SETUSER = 314; +TSqlParser.SHUTDOWN = 315; +TSqlParser.SID = 316; +TSqlParser.SKIP_KEYWORD = 317; +TSqlParser.SOFTNUMA = 318; +TSqlParser.SOME = 319; +TSqlParser.SOURCE = 320; +TSqlParser.SPECIFICATION = 321; +TSqlParser.SPLIT = 322; +TSqlParser.SQLDUMPERFLAGS = 323; +TSqlParser.SQLDUMPERPATH = 324; +TSqlParser.SQLDUMPERTIMEOUT = 325; +TSqlParser.STATISTICS = 326; +TSqlParser.STATE = 327; +TSqlParser.STATS = 328; +TSqlParser.START = 329; +TSqlParser.STARTED = 330; +TSqlParser.STARTUP_STATE = 331; +TSqlParser.STOP = 332; +TSqlParser.STOPPED = 333; +TSqlParser.STOP_ON_ERROR = 334; +TSqlParser.SUPPORTED = 335; +TSqlParser.SYSTEM_USER = 336; +TSqlParser.TABLE = 337; +TSqlParser.TABLESAMPLE = 338; +TSqlParser.TAPE = 339; +TSqlParser.TARGET = 340; +TSqlParser.TCP = 341; +TSqlParser.TEXTSIZE = 342; +TSqlParser.THEN = 343; +TSqlParser.TO = 344; +TSqlParser.TOP = 345; +TSqlParser.TRACK_CAUSALITY = 346; +TSqlParser.TRAN = 347; +TSqlParser.TRANSACTION = 348; +TSqlParser.TRANSFER = 349; +TSqlParser.TRIGGER = 350; +TSqlParser.TRUNCATE = 351; +TSqlParser.TSEQUAL = 352; +TSqlParser.UNCHECKED = 353; +TSqlParser.UNION = 354; +TSqlParser.UNIQUE = 355; +TSqlParser.UNLOCK = 356; +TSqlParser.UNPIVOT = 357; +TSqlParser.UNSAFE = 358; +TSqlParser.UPDATE = 359; +TSqlParser.UPDATETEXT = 360; +TSqlParser.URL = 361; +TSqlParser.USE = 362; +TSqlParser.USED = 363; +TSqlParser.USER = 364; +TSqlParser.VALUES = 365; +TSqlParser.VARYING = 366; +TSqlParser.VERBOSELOGGING = 367; +TSqlParser.VIEW = 368; +TSqlParser.VISIBILITY = 369; +TSqlParser.WAITFOR = 370; +TSqlParser.WHEN = 371; +TSqlParser.WHERE = 372; +TSqlParser.WHILE = 373; +TSqlParser.WINDOWS = 374; +TSqlParser.WITH = 375; +TSqlParser.WITHIN = 376; +TSqlParser.WITHOUT = 377; +TSqlParser.WITNESS = 378; +TSqlParser.WRITETEXT = 379; +TSqlParser.ABSOLUTE = 380; +TSqlParser.ACCENT_SENSITIVITY = 381; +TSqlParser.ACTION = 382; +TSqlParser.ACTIVATION = 383; +TSqlParser.ACTIVE = 384; +TSqlParser.ADDRESS = 385; +TSqlParser.AES_128 = 386; +TSqlParser.AES_192 = 387; +TSqlParser.AES_256 = 388; +TSqlParser.AFFINITY = 389; +TSqlParser.AFTER = 390; +TSqlParser.AGGREGATE = 391; +TSqlParser.ALGORITHM = 392; +TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = 393; +TSqlParser.ALLOW_SNAPSHOT_ISOLATION = 394; +TSqlParser.ALLOWED = 395; +TSqlParser.ANSI_NULL_DEFAULT = 396; +TSqlParser.ANSI_NULLS = 397; +TSqlParser.ANSI_PADDING = 398; +TSqlParser.ANSI_WARNINGS = 399; +TSqlParser.APPLICATION_LOG = 400; +TSqlParser.APPLY = 401; +TSqlParser.ARITHABORT = 402; +TSqlParser.ASSEMBLY = 403; +TSqlParser.AUDIT = 404; +TSqlParser.AUDIT_GUID = 405; +TSqlParser.AUTO = 406; +TSqlParser.AUTO_CLEANUP = 407; +TSqlParser.AUTO_CLOSE = 408; +TSqlParser.AUTO_CREATE_STATISTICS = 409; +TSqlParser.AUTO_SHRINK = 410; +TSqlParser.AUTO_UPDATE_STATISTICS = 411; +TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC = 412; +TSqlParser.AVAILABILITY = 413; +TSqlParser.AVG = 414; +TSqlParser.BACKUP_PRIORITY = 415; +TSqlParser.BEGIN_DIALOG = 416; +TSqlParser.BIGINT = 417; +TSqlParser.BINARY_BASE64 = 418; +TSqlParser.BINARY_CHECKSUM = 419; +TSqlParser.BINDING = 420; +TSqlParser.BLOB_STORAGE = 421; +TSqlParser.BROKER = 422; +TSqlParser.BROKER_INSTANCE = 423; +TSqlParser.BULK_LOGGED = 424; +TSqlParser.CALLER = 425; +TSqlParser.CAP_CPU_PERCENT = 426; +TSqlParser.CAST = 427; +TSqlParser.CATALOG = 428; +TSqlParser.CATCH = 429; +TSqlParser.CHANGE_RETENTION = 430; +TSqlParser.CHANGE_TRACKING = 431; +TSqlParser.CHECKSUM = 432; +TSqlParser.CHECKSUM_AGG = 433; +TSqlParser.CLEANUP = 434; +TSqlParser.COLLECTION = 435; +TSqlParser.COLUMN_MASTER_KEY = 436; +TSqlParser.COMMITTED = 437; +TSqlParser.COMPATIBILITY_LEVEL = 438; +TSqlParser.CONCAT = 439; +TSqlParser.CONCAT_NULL_YIELDS_NULL = 440; +TSqlParser.CONTENT = 441; +TSqlParser.CONTROL = 442; +TSqlParser.COOKIE = 443; +TSqlParser.COUNT = 444; +TSqlParser.COUNT_BIG = 445; +TSqlParser.COUNTER = 446; +TSqlParser.CPU = 447; +TSqlParser.CREATE_NEW = 448; +TSqlParser.CREATION_DISPOSITION = 449; +TSqlParser.CREDENTIAL = 450; +TSqlParser.CRYPTOGRAPHIC = 451; +TSqlParser.CURSOR_CLOSE_ON_COMMIT = 452; +TSqlParser.CURSOR_DEFAULT = 453; +TSqlParser.DATA = 454; +TSqlParser.DATE_CORRELATION_OPTIMIZATION = 455; +TSqlParser.DATEADD = 456; +TSqlParser.DATEDIFF = 457; +TSqlParser.DATENAME = 458; +TSqlParser.DATEPART = 459; +TSqlParser.DAYS = 460; +TSqlParser.DB_CHAINING = 461; +TSqlParser.DB_FAILOVER = 462; +TSqlParser.DECRYPTION = 463; +TSqlParser.DEFAULT_DOUBLE_QUOTE = 464; +TSqlParser.DEFAULT_FULLTEXT_LANGUAGE = 465; +TSqlParser.DEFAULT_LANGUAGE = 466; +TSqlParser.DELAY = 467; +TSqlParser.DELAYED_DURABILITY = 468; +TSqlParser.DELETED = 469; +TSqlParser.DENSE_RANK = 470; +TSqlParser.DEPENDENTS = 471; +TSqlParser.DES = 472; +TSqlParser.DESCRIPTION = 473; +TSqlParser.DESX = 474; +TSqlParser.DHCP = 475; +TSqlParser.DIALOG = 476; +TSqlParser.DIRECTORY_NAME = 477; +TSqlParser.DISABLE = 478; +TSqlParser.DISABLE_BROKER = 479; +TSqlParser.DISABLED = 480; +TSqlParser.DISK_DRIVE = 481; +TSqlParser.DOCUMENT = 482; +TSqlParser.DYNAMIC = 483; +TSqlParser.ELEMENTS = 484; +TSqlParser.EMERGENCY = 485; +TSqlParser.EMPTY = 486; +TSqlParser.ENABLE = 487; +TSqlParser.ENABLE_BROKER = 488; +TSqlParser.ENCRYPTED_VALUE = 489; +TSqlParser.ENCRYPTION = 490; +TSqlParser.ENDPOINT_URL = 491; +TSqlParser.ERROR_BROKER_CONVERSATIONS = 492; +TSqlParser.EXCLUSIVE = 493; +TSqlParser.EXECUTABLE = 494; +TSqlParser.EXIST = 495; +TSqlParser.EXPAND = 496; +TSqlParser.EXPIRY_DATE = 497; +TSqlParser.EXPLICIT = 498; +TSqlParser.FAIL_OPERATION = 499; +TSqlParser.FAILOVER_MODE = 500; +TSqlParser.FAILURE = 501; +TSqlParser.FAILURE_CONDITION_LEVEL = 502; +TSqlParser.FAST = 503; +TSqlParser.FAST_FORWARD = 504; +TSqlParser.FILEGROUP = 505; +TSqlParser.FILEGROWTH = 506; +TSqlParser.FILEPATH = 507; +TSqlParser.FILESTREAM = 508; +TSqlParser.FILTER = 509; +TSqlParser.FIRST = 510; +TSqlParser.FIRST_VALUE = 511; +TSqlParser.FOLLOWING = 512; +TSqlParser.FORCE = 513; +TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS = 514; +TSqlParser.FORCED = 515; +TSqlParser.FORMAT = 516; +TSqlParser.FORWARD_ONLY = 517; +TSqlParser.FULLSCAN = 518; +TSqlParser.FULLTEXT = 519; +TSqlParser.GB = 520; +TSqlParser.GETDATE = 521; +TSqlParser.GETUTCDATE = 522; +TSqlParser.GLOBAL = 523; +TSqlParser.GO = 524; +TSqlParser.GROUP_MAX_REQUESTS = 525; +TSqlParser.GROUPING = 526; +TSqlParser.GROUPING_ID = 527; +TSqlParser.HADR = 528; +TSqlParser.HASH = 529; +TSqlParser.HEALTH_CHECK_TIMEOUT = 530; +TSqlParser.HIGH = 531; +TSqlParser.HONOR_BROKER_PRIORITY = 532; +TSqlParser.HOURS = 533; +TSqlParser.IDENTITY_VALUE = 534; +TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX = 535; +TSqlParser.IMMEDIATE = 536; +TSqlParser.IMPERSONATE = 537; +TSqlParser.IMPORTANCE = 538; +TSqlParser.INCLUDE_NULL_VALUES = 539; +TSqlParser.INCREMENTAL = 540; +TSqlParser.INITIATOR = 541; +TSqlParser.INPUT = 542; +TSqlParser.INSENSITIVE = 543; +TSqlParser.INSERTED = 544; +TSqlParser.INT = 545; +TSqlParser.IP = 546; +TSqlParser.ISOLATION = 547; +TSqlParser.JOB = 548; +TSqlParser.JSON = 549; +TSqlParser.KB = 550; +TSqlParser.KEEP = 551; +TSqlParser.KEEPFIXED = 552; +TSqlParser.KEY_SOURCE = 553; +TSqlParser.KEYS = 554; +TSqlParser.KEYSET = 555; +TSqlParser.LAG = 556; +TSqlParser.LAST = 557; +TSqlParser.LAST_VALUE = 558; +TSqlParser.LEAD = 559; +TSqlParser.LEVEL = 560; +TSqlParser.LIST = 561; +TSqlParser.LISTENER = 562; +TSqlParser.LISTENER_URL = 563; +TSqlParser.LOB_COMPACTION = 564; +TSqlParser.LOCAL = 565; +TSqlParser.LOCATION = 566; +TSqlParser.LOCK = 567; +TSqlParser.LOCK_ESCALATION = 568; +TSqlParser.LOGIN = 569; +TSqlParser.LOOP = 570; +TSqlParser.LOW = 571; +TSqlParser.MANUAL = 572; +TSqlParser.MARK = 573; +TSqlParser.MATERIALIZED = 574; +TSqlParser.MAX = 575; +TSqlParser.MAX_CPU_PERCENT = 576; +TSqlParser.MAX_DOP = 577; +TSqlParser.MAX_FILES = 578; +TSqlParser.MAX_IOPS_PER_VOLUME = 579; +TSqlParser.MAX_MEMORY_PERCENT = 580; +TSqlParser.MAX_PROCESSES = 581; +TSqlParser.MAX_QUEUE_READERS = 582; +TSqlParser.MAX_ROLLOVER_FILES = 583; +TSqlParser.MAXDOP = 584; +TSqlParser.MAXRECURSION = 585; +TSqlParser.MAXSIZE = 586; +TSqlParser.MB = 587; +TSqlParser.MEDIUM = 588; +TSqlParser.MEMORY_OPTIMIZED_DATA = 589; +TSqlParser.MESSAGE = 590; +TSqlParser.MIN = 591; +TSqlParser.MIN_ACTIVE_ROWVERSION = 592; +TSqlParser.MIN_CPU_PERCENT = 593; +TSqlParser.MIN_IOPS_PER_VOLUME = 594; +TSqlParser.MIN_MEMORY_PERCENT = 595; +TSqlParser.MINUTES = 596; +TSqlParser.MIRROR_ADDRESS = 597; +TSqlParser.MIXED_PAGE_ALLOCATION = 598; +TSqlParser.MODE = 599; +TSqlParser.MODIFY = 600; +TSqlParser.MOVE = 601; +TSqlParser.MULTI_USER = 602; +TSqlParser.NAME = 603; +TSqlParser.NESTED_TRIGGERS = 604; +TSqlParser.NEW_ACCOUNT = 605; +TSqlParser.NEW_BROKER = 606; +TSqlParser.NEW_PASSWORD = 607; +TSqlParser.NEXT = 608; +TSqlParser.NO = 609; +TSqlParser.NO_TRUNCATE = 610; +TSqlParser.NO_WAIT = 611; +TSqlParser.NOCOUNT = 612; +TSqlParser.NODES = 613; +TSqlParser.NOEXPAND = 614; +TSqlParser.NON_TRANSACTED_ACCESS = 615; +TSqlParser.NORECOMPUTE = 616; +TSqlParser.NORECOVERY = 617; +TSqlParser.NOWAIT = 618; +TSqlParser.NTILE = 619; +TSqlParser.NUMANODE = 620; +TSqlParser.NUMBER = 621; +TSqlParser.NUMERIC_ROUNDABORT = 622; +TSqlParser.OBJECT = 623; +TSqlParser.OFFLINE = 624; +TSqlParser.OFFSET = 625; +TSqlParser.OLD_ACCOUNT = 626; +TSqlParser.ONLINE = 627; +TSqlParser.ONLY = 628; +TSqlParser.OPEN_EXISTING = 629; +TSqlParser.OPTIMISTIC = 630; +TSqlParser.OPTIMIZE = 631; +TSqlParser.OUT = 632; +TSqlParser.OUTPUT = 633; +TSqlParser.OVERRIDE = 634; +TSqlParser.OWNER = 635; +TSqlParser.PAGE_VERIFY = 636; +TSqlParser.PARAMETERIZATION = 637; +TSqlParser.PARTITION = 638; +TSqlParser.PARTITIONS = 639; +TSqlParser.PARTNER = 640; +TSqlParser.PATH = 641; +TSqlParser.POISON_MESSAGE_HANDLING = 642; +TSqlParser.POOL = 643; +TSqlParser.PORT = 644; +TSqlParser.PRECEDING = 645; +TSqlParser.PRIMARY_ROLE = 646; +TSqlParser.PRIOR = 647; +TSqlParser.PRIORITY = 648; +TSqlParser.PRIORITY_LEVEL = 649; +TSqlParser.PRIVATE = 650; +TSqlParser.PRIVATE_KEY = 651; +TSqlParser.PRIVILEGES = 652; +TSqlParser.PROCEDURE_NAME = 653; +TSqlParser.PROPERTY = 654; +TSqlParser.PROVIDER = 655; +TSqlParser.PROVIDER_KEY_NAME = 656; +TSqlParser.QUERY = 657; +TSqlParser.QUEUE = 658; +TSqlParser.QUEUE_DELAY = 659; +TSqlParser.QUOTED_IDENTIFIER = 660; +TSqlParser.RANGE = 661; +TSqlParser.RANK = 662; +TSqlParser.RC2 = 663; +TSqlParser.RC4 = 664; +TSqlParser.RC4_128 = 665; +TSqlParser.READ_COMMITTED_SNAPSHOT = 666; +TSqlParser.READ_ONLY = 667; +TSqlParser.READ_ONLY_ROUTING_LIST = 668; +TSqlParser.READ_WRITE = 669; +TSqlParser.READONLY = 670; +TSqlParser.REBUILD = 671; +TSqlParser.RECEIVE = 672; +TSqlParser.RECOMPILE = 673; +TSqlParser.RECOVERY = 674; +TSqlParser.RECURSIVE_TRIGGERS = 675; +TSqlParser.RELATIVE = 676; +TSqlParser.REMOTE = 677; +TSqlParser.REMOTE_SERVICE_NAME = 678; +TSqlParser.REMOVE = 679; +TSqlParser.REORGANIZE = 680; +TSqlParser.REPEATABLE = 681; +TSqlParser.REPLICA = 682; +TSqlParser.REQUEST_MAX_CPU_TIME_SEC = 683; +TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT = 684; +TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 685; +TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 686; +TSqlParser.RESERVE_DISK_SPACE = 687; +TSqlParser.RESOURCE = 688; +TSqlParser.RESOURCE_MANAGER_LOCATION = 689; +TSqlParser.RESTRICTED_USER = 690; +TSqlParser.RETENTION = 691; +TSqlParser.ROBUST = 692; +TSqlParser.ROOT = 693; +TSqlParser.ROUTE = 694; +TSqlParser.ROW = 695; +TSqlParser.ROW_NUMBER = 696; +TSqlParser.ROWGUID = 697; +TSqlParser.ROWS = 698; +TSqlParser.SAMPLE = 699; +TSqlParser.SCHEMABINDING = 700; +TSqlParser.SCOPED = 701; +TSqlParser.SCROLL = 702; +TSqlParser.SCROLL_LOCKS = 703; +TSqlParser.SEARCH = 704; +TSqlParser.SECONDARY = 705; +TSqlParser.SECONDARY_ONLY = 706; +TSqlParser.SECONDARY_ROLE = 707; +TSqlParser.SECONDS = 708; +TSqlParser.SECRET = 709; +TSqlParser.SECURITY = 710; +TSqlParser.SECURITY_LOG = 711; +TSqlParser.SEEDING_MODE = 712; +TSqlParser.SELF = 713; +TSqlParser.SEMI_SENSITIVE = 714; +TSqlParser.SEND = 715; +TSqlParser.SENT = 716; +TSqlParser.SEQUENCE = 717; +TSqlParser.SERIALIZABLE = 718; +TSqlParser.SESSION_TIMEOUT = 719; +TSqlParser.SETERROR = 720; +TSqlParser.SHARE = 721; +TSqlParser.SHOWPLAN = 722; +TSqlParser.SIGNATURE = 723; +TSqlParser.SIMPLE = 724; +TSqlParser.SINGLE_USER = 725; +TSqlParser.SIZE = 726; +TSqlParser.SMALLINT = 727; +TSqlParser.SNAPSHOT = 728; +TSqlParser.SPATIAL_WINDOW_MAX_CELLS = 729; +TSqlParser.STANDBY = 730; +TSqlParser.START_DATE = 731; +TSqlParser.STATIC = 732; +TSqlParser.STATS_STREAM = 733; +TSqlParser.STATUS = 734; +TSqlParser.STATUSONLY = 735; +TSqlParser.STDEV = 736; +TSqlParser.STDEVP = 737; +TSqlParser.STOPLIST = 738; +TSqlParser.STRING_AGG = 739; +TSqlParser.STUFF = 740; +TSqlParser.SUBJECT = 741; +TSqlParser.SUBSCRIPTION = 742; +TSqlParser.SUM = 743; +TSqlParser.SUSPEND = 744; +TSqlParser.SYMMETRIC = 745; +TSqlParser.SYNCHRONOUS_COMMIT = 746; +TSqlParser.SYNONYM = 747; +TSqlParser.SYSTEM = 748; +TSqlParser.TAKE = 749; +TSqlParser.TARGET_RECOVERY_TIME = 750; +TSqlParser.TB = 751; +TSqlParser.TEXTIMAGE_ON = 752; +TSqlParser.THROW = 753; +TSqlParser.TIES = 754; +TSqlParser.TIME = 755; +TSqlParser.TIMEOUT = 756; +TSqlParser.TIMER = 757; +TSqlParser.TINYINT = 758; +TSqlParser.TORN_PAGE_DETECTION = 759; +TSqlParser.TRANSFORM_NOISE_WORDS = 760; +TSqlParser.TRIPLE_DES = 761; +TSqlParser.TRIPLE_DES_3KEY = 762; +TSqlParser.TRUSTWORTHY = 763; +TSqlParser.TRY = 764; +TSqlParser.TSQL = 765; +TSqlParser.TWO_DIGIT_YEAR_CUTOFF = 766; +TSqlParser.TYPE = 767; +TSqlParser.TYPE_WARNING = 768; +TSqlParser.UNBOUNDED = 769; +TSqlParser.UNCOMMITTED = 770; +TSqlParser.UNKNOWN = 771; +TSqlParser.UNLIMITED = 772; +TSqlParser.UOW = 773; +TSqlParser.USING = 774; +TSqlParser.VALID_XML = 775; +TSqlParser.VALIDATION = 776; +TSqlParser.VALUE = 777; +TSqlParser.VAR = 778; +TSqlParser.VARP = 779; +TSqlParser.VIEW_METADATA = 780; +TSqlParser.VIEWS = 781; +TSqlParser.WAIT = 782; +TSqlParser.WELL_FORMED_XML = 783; +TSqlParser.WITHOUT_ARRAY_WRAPPER = 784; +TSqlParser.WORK = 785; +TSqlParser.WORKLOAD = 786; +TSqlParser.XML = 787; +TSqlParser.XMLDATA = 788; +TSqlParser.XMLNAMESPACES = 789; +TSqlParser.XMLSCHEMA = 790; +TSqlParser.XSINIL = 791; +TSqlParser.DOLLAR_ACTION = 792; +TSqlParser.SPACE = 793; +TSqlParser.COMMENT = 794; +TSqlParser.LINE_COMMENT = 795; +TSqlParser.DOUBLE_QUOTE_ID = 796; +TSqlParser.SINGLE_QUOTE = 797; +TSqlParser.SQUARE_BRACKET_ID = 798; +TSqlParser.LOCAL_ID = 799; +TSqlParser.DECIMAL = 800; +TSqlParser.ID = 801; +TSqlParser.QUOTED_URL = 802; +TSqlParser.QUOTED_HOST_AND_PORT = 803; +TSqlParser.STRING = 804; +TSqlParser.BINARY = 805; +TSqlParser.FLOAT = 806; +TSqlParser.REAL = 807; +TSqlParser.EQUAL = 808; +TSqlParser.GREATER = 809; +TSqlParser.LESS = 810; +TSqlParser.EXCLAMATION = 811; +TSqlParser.PLUS_ASSIGN = 812; +TSqlParser.MINUS_ASSIGN = 813; +TSqlParser.MULT_ASSIGN = 814; +TSqlParser.DIV_ASSIGN = 815; +TSqlParser.MOD_ASSIGN = 816; +TSqlParser.AND_ASSIGN = 817; +TSqlParser.XOR_ASSIGN = 818; +TSqlParser.OR_ASSIGN = 819; +TSqlParser.DOUBLE_BAR = 820; +TSqlParser.DOT = 821; +TSqlParser.UNDERLINE = 822; +TSqlParser.AT = 823; +TSqlParser.SHARP = 824; +TSqlParser.DOLLAR = 825; +TSqlParser.LR_BRACKET = 826; +TSqlParser.RR_BRACKET = 827; +TSqlParser.COMMA = 828; +TSqlParser.SEMI = 829; +TSqlParser.COLON = 830; +TSqlParser.STAR = 831; +TSqlParser.DIVIDE = 832; +TSqlParser.MODULE = 833; +TSqlParser.PLUS = 834; +TSqlParser.MINUS = 835; +TSqlParser.BIT_NOT = 836; +TSqlParser.BIT_OR = 837; +TSqlParser.BIT_AND = 838; +TSqlParser.BIT_XOR = 839; +TSqlParser.IPV4_OCTECT = 840; + +TSqlParser.RULE_tsql_file = 0; +TSqlParser.RULE_batch = 1; +TSqlParser.RULE_sql_clauses = 2; +TSqlParser.RULE_sql_clause = 3; +TSqlParser.RULE_dml_clause = 4; +TSqlParser.RULE_ddl_clause = 5; +TSqlParser.RULE_backup_statement = 6; +TSqlParser.RULE_cfl_statement = 7; +TSqlParser.RULE_block_statement = 8; +TSqlParser.RULE_break_statement = 9; +TSqlParser.RULE_continue_statement = 10; +TSqlParser.RULE_goto_statement = 11; +TSqlParser.RULE_return_statement = 12; +TSqlParser.RULE_if_statement = 13; +TSqlParser.RULE_throw_statement = 14; +TSqlParser.RULE_throw_error_number = 15; +TSqlParser.RULE_throw_message = 16; +TSqlParser.RULE_throw_state = 17; +TSqlParser.RULE_try_catch_statement = 18; +TSqlParser.RULE_waitfor_statement = 19; +TSqlParser.RULE_while_statement = 20; +TSqlParser.RULE_print_statement = 21; +TSqlParser.RULE_raiseerror_statement = 22; +TSqlParser.RULE_empty_statement = 23; +TSqlParser.RULE_another_statement = 24; +TSqlParser.RULE_alter_application_role = 25; +TSqlParser.RULE_create_application_role = 26; +TSqlParser.RULE_drop_aggregate = 27; +TSqlParser.RULE_drop_application_role = 28; +TSqlParser.RULE_alter_assembly = 29; +TSqlParser.RULE_alter_assembly_start = 30; +TSqlParser.RULE_alter_assembly_clause = 31; +TSqlParser.RULE_alter_assembly_from_clause = 32; +TSqlParser.RULE_alter_assembly_from_clause_start = 33; +TSqlParser.RULE_alter_assembly_drop_clause = 34; +TSqlParser.RULE_alter_assembly_drop_multiple_files = 35; +TSqlParser.RULE_alter_assembly_drop = 36; +TSqlParser.RULE_alter_assembly_add_clause = 37; +TSqlParser.RULE_alter_asssembly_add_clause_start = 38; +TSqlParser.RULE_alter_assembly_client_file_clause = 39; +TSqlParser.RULE_alter_assembly_file_name = 40; +TSqlParser.RULE_alter_assembly_file_bits = 41; +TSqlParser.RULE_alter_assembly_as = 42; +TSqlParser.RULE_alter_assembly_with_clause = 43; +TSqlParser.RULE_alter_assembly_with = 44; +TSqlParser.RULE_client_assembly_specifier = 45; +TSqlParser.RULE_assembly_option = 46; +TSqlParser.RULE_network_file_share = 47; +TSqlParser.RULE_network_computer = 48; +TSqlParser.RULE_network_file_start = 49; +TSqlParser.RULE_file_path = 50; +TSqlParser.RULE_file_directory_path_separator = 51; +TSqlParser.RULE_local_file = 52; +TSqlParser.RULE_local_drive = 53; +TSqlParser.RULE_multiple_local_files = 54; +TSqlParser.RULE_multiple_local_file_start = 55; +TSqlParser.RULE_create_assembly = 56; +TSqlParser.RULE_drop_assembly = 57; +TSqlParser.RULE_alter_asymmetric_key = 58; +TSqlParser.RULE_alter_asymmetric_key_start = 59; +TSqlParser.RULE_asymmetric_key_option = 60; +TSqlParser.RULE_asymmetric_key_option_start = 61; +TSqlParser.RULE_asymmetric_key_password_change_option = 62; +TSqlParser.RULE_create_asymmetric_key = 63; +TSqlParser.RULE_drop_asymmetric_key = 64; +TSqlParser.RULE_alter_authorization = 65; +TSqlParser.RULE_authorization_grantee = 66; +TSqlParser.RULE_entity_to = 67; +TSqlParser.RULE_colon_colon = 68; +TSqlParser.RULE_alter_authorization_start = 69; +TSqlParser.RULE_alter_authorization_for_sql_database = 70; +TSqlParser.RULE_alter_authorization_for_azure_dw = 71; +TSqlParser.RULE_alter_authorization_for_parallel_dw = 72; +TSqlParser.RULE_class_type = 73; +TSqlParser.RULE_class_type_for_sql_database = 74; +TSqlParser.RULE_class_type_for_azure_dw = 75; +TSqlParser.RULE_class_type_for_parallel_dw = 76; +TSqlParser.RULE_drop_availability_group = 77; +TSqlParser.RULE_alter_availability_group = 78; +TSqlParser.RULE_alter_availability_group_start = 79; +TSqlParser.RULE_alter_availability_group_options = 80; +TSqlParser.RULE_create_or_alter_broker_priority = 81; +TSqlParser.RULE_drop_broker_priority = 82; +TSqlParser.RULE_alter_certificate = 83; +TSqlParser.RULE_alter_column_encryption_key = 84; +TSqlParser.RULE_create_column_encryption_key = 85; +TSqlParser.RULE_drop_certificate = 86; +TSqlParser.RULE_drop_column_encryption_key = 87; +TSqlParser.RULE_drop_column_master_key = 88; +TSqlParser.RULE_drop_contract = 89; +TSqlParser.RULE_drop_credential = 90; +TSqlParser.RULE_drop_cryptograhic_provider = 91; +TSqlParser.RULE_drop_database = 92; +TSqlParser.RULE_drop_database_audit_specification = 93; +TSqlParser.RULE_drop_database_scoped_credential = 94; +TSqlParser.RULE_drop_default = 95; +TSqlParser.RULE_drop_endpoint = 96; +TSqlParser.RULE_drop_external_data_source = 97; +TSqlParser.RULE_drop_external_file_format = 98; +TSqlParser.RULE_drop_external_library = 99; +TSqlParser.RULE_drop_external_resource_pool = 100; +TSqlParser.RULE_drop_external_table = 101; +TSqlParser.RULE_drop_event_notifications = 102; +TSqlParser.RULE_drop_event_session = 103; +TSqlParser.RULE_drop_fulltext_catalog = 104; +TSqlParser.RULE_drop_fulltext_index = 105; +TSqlParser.RULE_drop_fulltext_stoplist = 106; +TSqlParser.RULE_drop_login = 107; +TSqlParser.RULE_drop_master_key = 108; +TSqlParser.RULE_drop_message_type = 109; +TSqlParser.RULE_drop_partition_function = 110; +TSqlParser.RULE_drop_partition_scheme = 111; +TSqlParser.RULE_drop_queue = 112; +TSqlParser.RULE_drop_remote_service_binding = 113; +TSqlParser.RULE_drop_resource_pool = 114; +TSqlParser.RULE_drop_db_role = 115; +TSqlParser.RULE_drop_route = 116; +TSqlParser.RULE_drop_rule = 117; +TSqlParser.RULE_drop_schema = 118; +TSqlParser.RULE_drop_search_property_list = 119; +TSqlParser.RULE_drop_security_policy = 120; +TSqlParser.RULE_drop_sequence = 121; +TSqlParser.RULE_drop_server_audit = 122; +TSqlParser.RULE_drop_server_audit_specification = 123; +TSqlParser.RULE_drop_server_role = 124; +TSqlParser.RULE_drop_service = 125; +TSqlParser.RULE_drop_signature = 126; +TSqlParser.RULE_drop_statistics_name_azure_dw_and_pdw = 127; +TSqlParser.RULE_drop_symmetric_key = 128; +TSqlParser.RULE_drop_synonym = 129; +TSqlParser.RULE_drop_user = 130; +TSqlParser.RULE_drop_workload_group = 131; +TSqlParser.RULE_drop_xml_schema_collection = 132; +TSqlParser.RULE_disable_trigger = 133; +TSqlParser.RULE_enable_trigger = 134; +TSqlParser.RULE_lock_table = 135; +TSqlParser.RULE_truncate_table = 136; +TSqlParser.RULE_create_column_master_key = 137; +TSqlParser.RULE_alter_credential = 138; +TSqlParser.RULE_create_credential = 139; +TSqlParser.RULE_alter_cryptographic_provider = 140; +TSqlParser.RULE_create_cryptographic_provider = 141; +TSqlParser.RULE_create_event_notification = 142; +TSqlParser.RULE_create_or_alter_event_session = 143; +TSqlParser.RULE_event_session_predicate_expression = 144; +TSqlParser.RULE_event_session_predicate_factor = 145; +TSqlParser.RULE_event_session_predicate_leaf = 146; +TSqlParser.RULE_alter_external_data_source = 147; +TSqlParser.RULE_alter_external_library = 148; +TSqlParser.RULE_create_external_library = 149; +TSqlParser.RULE_alter_external_resource_pool = 150; +TSqlParser.RULE_create_external_resource_pool = 151; +TSqlParser.RULE_alter_fulltext_catalog = 152; +TSqlParser.RULE_create_fulltext_catalog = 153; +TSqlParser.RULE_alter_fulltext_stoplist = 154; +TSqlParser.RULE_create_fulltext_stoplist = 155; +TSqlParser.RULE_alter_login_sql_server = 156; +TSqlParser.RULE_create_login_sql_server = 157; +TSqlParser.RULE_alter_login_azure_sql = 158; +TSqlParser.RULE_create_login_azure_sql = 159; +TSqlParser.RULE_alter_login_azure_sql_dw_and_pdw = 160; +TSqlParser.RULE_create_login_pdw = 161; +TSqlParser.RULE_alter_master_key_sql_server = 162; +TSqlParser.RULE_create_master_key_sql_server = 163; +TSqlParser.RULE_alter_master_key_azure_sql = 164; +TSqlParser.RULE_create_master_key_azure_sql = 165; +TSqlParser.RULE_alter_message_type = 166; +TSqlParser.RULE_alter_partition_function = 167; +TSqlParser.RULE_alter_partition_scheme = 168; +TSqlParser.RULE_alter_remote_service_binding = 169; +TSqlParser.RULE_create_remote_service_binding = 170; +TSqlParser.RULE_create_resource_pool = 171; +TSqlParser.RULE_alter_resource_governor = 172; +TSqlParser.RULE_alter_db_role = 173; +TSqlParser.RULE_create_db_role = 174; +TSqlParser.RULE_create_route = 175; +TSqlParser.RULE_create_rule = 176; +TSqlParser.RULE_alter_schema_sql = 177; +TSqlParser.RULE_create_schema = 178; +TSqlParser.RULE_create_schema_azure_sql_dw_and_pdw = 179; +TSqlParser.RULE_alter_schema_azure_sql_dw_and_pdw = 180; +TSqlParser.RULE_create_search_property_list = 181; +TSqlParser.RULE_create_security_policy = 182; +TSqlParser.RULE_alter_sequence = 183; +TSqlParser.RULE_create_sequence = 184; +TSqlParser.RULE_alter_server_audit = 185; +TSqlParser.RULE_create_server_audit = 186; +TSqlParser.RULE_alter_server_audit_specification = 187; +TSqlParser.RULE_create_server_audit_specification = 188; +TSqlParser.RULE_alter_server_configuration = 189; +TSqlParser.RULE_alter_server_role = 190; +TSqlParser.RULE_create_server_role = 191; +TSqlParser.RULE_alter_server_role_pdw = 192; +TSqlParser.RULE_alter_service = 193; +TSqlParser.RULE_create_service = 194; +TSqlParser.RULE_alter_service_master_key = 195; +TSqlParser.RULE_alter_symmetric_key = 196; +TSqlParser.RULE_create_symmetric_key = 197; +TSqlParser.RULE_create_synonym = 198; +TSqlParser.RULE_alter_user = 199; +TSqlParser.RULE_create_user = 200; +TSqlParser.RULE_create_user_azure_sql_dw = 201; +TSqlParser.RULE_alter_user_azure_sql = 202; +TSqlParser.RULE_alter_workload_group = 203; +TSqlParser.RULE_create_workload_group = 204; +TSqlParser.RULE_create_xml_schema_collection = 205; +TSqlParser.RULE_create_queue = 206; +TSqlParser.RULE_queue_settings = 207; +TSqlParser.RULE_alter_queue = 208; +TSqlParser.RULE_queue_action = 209; +TSqlParser.RULE_queue_rebuild_options = 210; +TSqlParser.RULE_create_contract = 211; +TSqlParser.RULE_conversation_statement = 212; +TSqlParser.RULE_message_statement = 213; +TSqlParser.RULE_merge_statement = 214; +TSqlParser.RULE_merge_matched = 215; +TSqlParser.RULE_merge_not_matched = 216; +TSqlParser.RULE_delete_statement = 217; +TSqlParser.RULE_delete_statement_from = 218; +TSqlParser.RULE_insert_statement = 219; +TSqlParser.RULE_insert_statement_value = 220; +TSqlParser.RULE_receive_statement = 221; +TSqlParser.RULE_select_statement = 222; +TSqlParser.RULE_time = 223; +TSqlParser.RULE_update_statement = 224; +TSqlParser.RULE_output_clause = 225; +TSqlParser.RULE_output_dml_list_elem = 226; +TSqlParser.RULE_output_column_name = 227; +TSqlParser.RULE_create_database = 228; +TSqlParser.RULE_create_index = 229; +TSqlParser.RULE_create_or_alter_procedure = 230; +TSqlParser.RULE_create_or_alter_trigger = 231; +TSqlParser.RULE_create_or_alter_dml_trigger = 232; +TSqlParser.RULE_dml_trigger_option = 233; +TSqlParser.RULE_dml_trigger_operation = 234; +TSqlParser.RULE_create_or_alter_ddl_trigger = 235; +TSqlParser.RULE_ddl_trigger_operation = 236; +TSqlParser.RULE_create_or_alter_function = 237; +TSqlParser.RULE_func_body_returns_select = 238; +TSqlParser.RULE_func_body_returns_table = 239; +TSqlParser.RULE_func_body_returns_scalar = 240; +TSqlParser.RULE_procedure_param = 241; +TSqlParser.RULE_procedure_option = 242; +TSqlParser.RULE_function_option = 243; +TSqlParser.RULE_create_statistics = 244; +TSqlParser.RULE_update_statistics = 245; +TSqlParser.RULE_create_table = 246; +TSqlParser.RULE_table_options = 247; +TSqlParser.RULE_create_view = 248; +TSqlParser.RULE_view_attribute = 249; +TSqlParser.RULE_alter_table = 250; +TSqlParser.RULE_alter_database = 251; +TSqlParser.RULE_database_optionspec = 252; +TSqlParser.RULE_auto_option = 253; +TSqlParser.RULE_change_tracking_option = 254; +TSqlParser.RULE_change_tracking_option_list = 255; +TSqlParser.RULE_containment_option = 256; +TSqlParser.RULE_cursor_option = 257; +TSqlParser.RULE_alter_endpoint = 258; +TSqlParser.RULE_database_mirroring_option = 259; +TSqlParser.RULE_mirroring_set_option = 260; +TSqlParser.RULE_mirroring_partner = 261; +TSqlParser.RULE_mirroring_witness = 262; +TSqlParser.RULE_witness_partner_equal = 263; +TSqlParser.RULE_partner_option = 264; +TSqlParser.RULE_witness_option = 265; +TSqlParser.RULE_witness_server = 266; +TSqlParser.RULE_partner_server = 267; +TSqlParser.RULE_mirroring_host_port_seperator = 268; +TSqlParser.RULE_partner_server_tcp_prefix = 269; +TSqlParser.RULE_port_number = 270; +TSqlParser.RULE_host = 271; +TSqlParser.RULE_date_correlation_optimization_option = 272; +TSqlParser.RULE_db_encryption_option = 273; +TSqlParser.RULE_db_state_option = 274; +TSqlParser.RULE_db_update_option = 275; +TSqlParser.RULE_db_user_access_option = 276; +TSqlParser.RULE_delayed_durability_option = 277; +TSqlParser.RULE_external_access_option = 278; +TSqlParser.RULE_hadr_options = 279; +TSqlParser.RULE_mixed_page_allocation_option = 280; +TSqlParser.RULE_parameterization_option = 281; +TSqlParser.RULE_recovery_option = 282; +TSqlParser.RULE_service_broker_option = 283; +TSqlParser.RULE_snapshot_option = 284; +TSqlParser.RULE_sql_option = 285; +TSqlParser.RULE_target_recovery_time_option = 286; +TSqlParser.RULE_termination = 287; +TSqlParser.RULE_drop_index = 288; +TSqlParser.RULE_drop_relational_or_xml_or_spatial_index = 289; +TSqlParser.RULE_drop_backward_compatible_index = 290; +TSqlParser.RULE_drop_procedure = 291; +TSqlParser.RULE_drop_trigger = 292; +TSqlParser.RULE_drop_dml_trigger = 293; +TSqlParser.RULE_drop_ddl_trigger = 294; +TSqlParser.RULE_drop_function = 295; +TSqlParser.RULE_drop_statistics = 296; +TSqlParser.RULE_drop_table = 297; +TSqlParser.RULE_drop_view = 298; +TSqlParser.RULE_create_type = 299; +TSqlParser.RULE_drop_type = 300; +TSqlParser.RULE_rowset_function_limited = 301; +TSqlParser.RULE_openquery = 302; +TSqlParser.RULE_opendatasource = 303; +TSqlParser.RULE_declare_statement = 304; +TSqlParser.RULE_cursor_statement = 305; +TSqlParser.RULE_backup_database = 306; +TSqlParser.RULE_backup_log = 307; +TSqlParser.RULE_backup_certificate = 308; +TSqlParser.RULE_backup_master_key = 309; +TSqlParser.RULE_backup_service_master_key = 310; +TSqlParser.RULE_kill_statement = 311; +TSqlParser.RULE_kill_process = 312; +TSqlParser.RULE_kill_query_notification = 313; +TSqlParser.RULE_kill_stats_job = 314; +TSqlParser.RULE_execute_statement = 315; +TSqlParser.RULE_execute_body = 316; +TSqlParser.RULE_execute_statement_arg = 317; +TSqlParser.RULE_execute_var_string = 318; +TSqlParser.RULE_security_statement = 319; +TSqlParser.RULE_create_certificate = 320; +TSqlParser.RULE_existing_keys = 321; +TSqlParser.RULE_private_key_options = 322; +TSqlParser.RULE_generate_new_keys = 323; +TSqlParser.RULE_date_options = 324; +TSqlParser.RULE_open_key = 325; +TSqlParser.RULE_close_key = 326; +TSqlParser.RULE_create_key = 327; +TSqlParser.RULE_key_options = 328; +TSqlParser.RULE_algorithm = 329; +TSqlParser.RULE_encryption_mechanism = 330; +TSqlParser.RULE_decryption_mechanism = 331; +TSqlParser.RULE_grant_permission = 332; +TSqlParser.RULE_set_statement = 333; +TSqlParser.RULE_transaction_statement = 334; +TSqlParser.RULE_go_statement = 335; +TSqlParser.RULE_use_statement = 336; +TSqlParser.RULE_setuser_statement = 337; +TSqlParser.RULE_reconfigure_statement = 338; +TSqlParser.RULE_shutdown_statement = 339; +TSqlParser.RULE_dbcc_clause = 340; +TSqlParser.RULE_dbcc_options = 341; +TSqlParser.RULE_execute_clause = 342; +TSqlParser.RULE_declare_local = 343; +TSqlParser.RULE_table_type_definition = 344; +TSqlParser.RULE_xml_type_definition = 345; +TSqlParser.RULE_xml_schema_collection = 346; +TSqlParser.RULE_column_def_table_constraints = 347; +TSqlParser.RULE_column_def_table_constraint = 348; +TSqlParser.RULE_column_definition = 349; +TSqlParser.RULE_materialized_column_definition = 350; +TSqlParser.RULE_column_constraint = 351; +TSqlParser.RULE_table_constraint = 352; +TSqlParser.RULE_on_delete = 353; +TSqlParser.RULE_on_update = 354; +TSqlParser.RULE_index_options = 355; +TSqlParser.RULE_index_option = 356; +TSqlParser.RULE_declare_cursor = 357; +TSqlParser.RULE_declare_set_cursor_common = 358; +TSqlParser.RULE_declare_set_cursor_common_partial = 359; +TSqlParser.RULE_fetch_cursor = 360; +TSqlParser.RULE_set_special = 361; +TSqlParser.RULE_constant_LOCAL_ID = 362; +TSqlParser.RULE_expression = 363; +TSqlParser.RULE_primitive_expression = 364; +TSqlParser.RULE_case_expression = 365; +TSqlParser.RULE_unary_operator_expression = 366; +TSqlParser.RULE_bracket_expression = 367; +TSqlParser.RULE_constant_expression = 368; +TSqlParser.RULE_subquery = 369; +TSqlParser.RULE_with_expression = 370; +TSqlParser.RULE_common_table_expression = 371; +TSqlParser.RULE_update_elem = 372; +TSqlParser.RULE_search_condition_list = 373; +TSqlParser.RULE_search_condition = 374; +TSqlParser.RULE_search_condition_and = 375; +TSqlParser.RULE_search_condition_not = 376; +TSqlParser.RULE_predicate = 377; +TSqlParser.RULE_query_expression = 378; +TSqlParser.RULE_sql_union = 379; +TSqlParser.RULE_query_specification = 380; +TSqlParser.RULE_top_clause = 381; +TSqlParser.RULE_top_percent = 382; +TSqlParser.RULE_top_count = 383; +TSqlParser.RULE_order_by_clause = 384; +TSqlParser.RULE_for_clause = 385; +TSqlParser.RULE_xml_common_directives = 386; +TSqlParser.RULE_order_by_expression = 387; +TSqlParser.RULE_group_by_item = 388; +TSqlParser.RULE_option_clause = 389; +TSqlParser.RULE_option = 390; +TSqlParser.RULE_optimize_for_arg = 391; +TSqlParser.RULE_select_list = 392; +TSqlParser.RULE_udt_method_arguments = 393; +TSqlParser.RULE_asterisk = 394; +TSqlParser.RULE_column_elem = 395; +TSqlParser.RULE_udt_elem = 396; +TSqlParser.RULE_expression_elem = 397; +TSqlParser.RULE_select_list_elem = 398; +TSqlParser.RULE_table_sources = 399; +TSqlParser.RULE_table_source = 400; +TSqlParser.RULE_table_source_item_joined = 401; +TSqlParser.RULE_table_source_item = 402; +TSqlParser.RULE_open_xml = 403; +TSqlParser.RULE_schema_declaration = 404; +TSqlParser.RULE_column_declaration = 405; +TSqlParser.RULE_change_table = 406; +TSqlParser.RULE_join_part = 407; +TSqlParser.RULE_pivot_clause = 408; +TSqlParser.RULE_unpivot_clause = 409; +TSqlParser.RULE_full_column_name_list = 410; +TSqlParser.RULE_table_name_with_hint = 411; +TSqlParser.RULE_rowset_function = 412; +TSqlParser.RULE_bulk_option = 413; +TSqlParser.RULE_derived_table = 414; +TSqlParser.RULE_function_call = 415; +TSqlParser.RULE_xml_data_type_methods = 416; +TSqlParser.RULE_value_method = 417; +TSqlParser.RULE_query_method = 418; +TSqlParser.RULE_exist_method = 419; +TSqlParser.RULE_modify_method = 420; +TSqlParser.RULE_nodes_method = 421; +TSqlParser.RULE_switch_section = 422; +TSqlParser.RULE_switch_search_condition_section = 423; +TSqlParser.RULE_as_column_alias = 424; +TSqlParser.RULE_as_table_alias = 425; +TSqlParser.RULE_table_alias = 426; +TSqlParser.RULE_with_table_hints = 427; +TSqlParser.RULE_insert_with_table_hints = 428; +TSqlParser.RULE_table_hint = 429; +TSqlParser.RULE_index_value = 430; +TSqlParser.RULE_column_alias_list = 431; +TSqlParser.RULE_column_alias = 432; +TSqlParser.RULE_table_value_constructor = 433; +TSqlParser.RULE_expression_list = 434; +TSqlParser.RULE_ranking_windowed_function = 435; +TSqlParser.RULE_aggregate_windowed_function = 436; +TSqlParser.RULE_analytic_windowed_function = 437; +TSqlParser.RULE_all_distinct_expression = 438; +TSqlParser.RULE_over_clause = 439; +TSqlParser.RULE_row_or_range_clause = 440; +TSqlParser.RULE_window_frame_extent = 441; +TSqlParser.RULE_window_frame_bound = 442; +TSqlParser.RULE_window_frame_preceding = 443; +TSqlParser.RULE_window_frame_following = 444; +TSqlParser.RULE_create_database_option = 445; +TSqlParser.RULE_database_filestream_option = 446; +TSqlParser.RULE_database_file_spec = 447; +TSqlParser.RULE_file_group = 448; +TSqlParser.RULE_file_spec = 449; +TSqlParser.RULE_entity_name = 450; +TSqlParser.RULE_entity_name_for_azure_dw = 451; +TSqlParser.RULE_entity_name_for_parallel_dw = 452; +TSqlParser.RULE_full_table_name = 453; +TSqlParser.RULE_table_name = 454; +TSqlParser.RULE_simple_name = 455; +TSqlParser.RULE_func_proc_name_schema = 456; +TSqlParser.RULE_func_proc_name_database_schema = 457; +TSqlParser.RULE_func_proc_name_server_database_schema = 458; +TSqlParser.RULE_ddl_object = 459; +TSqlParser.RULE_full_column_name = 460; +TSqlParser.RULE_column_name_list_with_order = 461; +TSqlParser.RULE_column_name_list = 462; +TSqlParser.RULE_cursor_name = 463; +TSqlParser.RULE_on_off = 464; +TSqlParser.RULE_clustered = 465; +TSqlParser.RULE_null_notnull = 466; +TSqlParser.RULE_null_or_default = 467; +TSqlParser.RULE_scalar_function_name = 468; +TSqlParser.RULE_begin_conversation_timer = 469; +TSqlParser.RULE_begin_conversation_dialog = 470; +TSqlParser.RULE_contract_name = 471; +TSqlParser.RULE_service_name = 472; +TSqlParser.RULE_end_conversation = 473; +TSqlParser.RULE_waitfor_conversation = 474; +TSqlParser.RULE_get_conversation = 475; +TSqlParser.RULE_queue_id = 476; +TSqlParser.RULE_send_conversation = 477; +TSqlParser.RULE_data_type = 478; +TSqlParser.RULE_default_value = 479; +TSqlParser.RULE_constant = 480; +TSqlParser.RULE_sign = 481; +TSqlParser.RULE_id = 482; +TSqlParser.RULE_simple_id = 483; +TSqlParser.RULE_comparison_operator = 484; +TSqlParser.RULE_assignment_operator = 485; +TSqlParser.RULE_file_size = 486; + + +function Tsql_fileContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_tsql_file; + return this; +} + +Tsql_fileContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Tsql_fileContext.prototype.constructor = Tsql_fileContext; + +Tsql_fileContext.prototype.EOF = function() { + return this.getToken(TSqlParser.EOF, 0); +}; + +Tsql_fileContext.prototype.batch = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(BatchContext); + } else { + return this.getTypedRuleContext(BatchContext,i); + } +}; + +Tsql_fileContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTsql_file(this); + } +}; + +Tsql_fileContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTsql_file(this); + } +}; + +Tsql_fileContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTsql_file(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Tsql_fileContext = Tsql_fileContext; + +TSqlParser.prototype.tsql_file = function() { + + var localctx = new Tsql_fileContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, TSqlParser.RULE_tsql_file); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 977; + this._errHandler.sync(this); + _la = this._input.LA(1); + while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << TSqlParser.ALTER) | (1 << TSqlParser.BACKUP) | (1 << TSqlParser.BEGIN) | (1 << TSqlParser.BLOCKING_HIERARCHY) | (1 << TSqlParser.BREAK))) !== 0) || ((((_la - 38)) & ~0x1f) == 0 && ((1 << (_la - 38)) & ((1 << (TSqlParser.CALLED - 38)) | (1 << (TSqlParser.CASE - 38)) | (1 << (TSqlParser.CLOSE - 38)) | (1 << (TSqlParser.COALESCE - 38)) | (1 << (TSqlParser.COMMIT - 38)) | (1 << (TSqlParser.CONTINUE - 38)) | (1 << (TSqlParser.CONVERT - 38)))) !== 0) || ((((_la - 71)) & ~0x1f) == 0 && ((1 << (_la - 71)) & ((1 << (TSqlParser.CREATE - 71)) | (1 << (TSqlParser.CURRENT_TIMESTAMP - 71)) | (1 << (TSqlParser.CURRENT_USER - 71)) | (1 << (TSqlParser.DATA_COMPRESSION - 71)) | (1 << (TSqlParser.DBCC - 71)) | (1 << (TSqlParser.DEALLOCATE - 71)) | (1 << (TSqlParser.DECLARE - 71)) | (1 << (TSqlParser.DEFAULT - 71)) | (1 << (TSqlParser.DELETE - 71)) | (1 << (TSqlParser.DROP - 71)))) !== 0) || ((((_la - 106)) & ~0x1f) == 0 && ((1 << (_la - 106)) & ((1 << (TSqlParser.END - 106)) | (1 << (TSqlParser.EVENTDATA - 106)) | (1 << (TSqlParser.EXECUTE - 106)) | (1 << (TSqlParser.FETCH - 106)) | (1 << (TSqlParser.FILENAME - 106)) | (1 << (TSqlParser.FILLFACTOR - 106)) | (1 << (TSqlParser.FORCESEEK - 106)))) !== 0) || ((((_la - 140)) & ~0x1f) == 0 && ((1 << (_la - 140)) & ((1 << (TSqlParser.GET - 140)) | (1 << (TSqlParser.GOTO - 140)) | (1 << (TSqlParser.GRANT - 140)) | (1 << (TSqlParser.IDENTITY - 140)) | (1 << (TSqlParser.IF - 140)) | (1 << (TSqlParser.IIF - 140)) | (1 << (TSqlParser.INIT - 140)) | (1 << (TSqlParser.INSERT - 140)) | (1 << (TSqlParser.ISNULL - 140)) | (1 << (TSqlParser.KEY - 140)))) !== 0) || ((((_la - 173)) & ~0x1f) == 0 && ((1 << (_la - 173)) & ((1 << (TSqlParser.KILL - 173)) | (1 << (TSqlParser.LEFT - 173)) | (1 << (TSqlParser.MASTER - 173)) | (1 << (TSqlParser.MAX_MEMORY - 173)) | (1 << (TSqlParser.MERGE - 173)))) !== 0) || ((((_la - 221)) & ~0x1f) == 0 && ((1 << (_la - 221)) & ((1 << (TSqlParser.NULL - 221)) | (1 << (TSqlParser.NULLIF - 221)) | (1 << (TSqlParser.OFFSETS - 221)) | (1 << (TSqlParser.OPEN - 221)) | (1 << (TSqlParser.OVER - 221)) | (1 << (TSqlParser.PAGE - 221)))) !== 0) || ((((_la - 255)) & ~0x1f) == 0 && ((1 << (_la - 255)) & ((1 << (TSqlParser.PRINT - 255)) | (1 << (TSqlParser.PUBLIC - 255)) | (1 << (TSqlParser.R - 255)) | (1 << (TSqlParser.RAISERROR - 255)) | (1 << (TSqlParser.RAW - 255)) | (1 << (TSqlParser.RECONFIGURE - 255)) | (1 << (TSqlParser.RETURN - 255)) | (1 << (TSqlParser.RETURNS - 255)) | (1 << (TSqlParser.REVERT - 255)) | (1 << (TSqlParser.RIGHT - 255)) | (1 << (TSqlParser.ROLLBACK - 255)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (TSqlParser.ROWCOUNT - 288)) | (1 << (TSqlParser.SAFETY - 288)) | (1 << (TSqlParser.SAVE - 288)) | (1 << (TSqlParser.SELECT - 288)) | (1 << (TSqlParser.SERVER - 288)) | (1 << (TSqlParser.SESSION_USER - 288)) | (1 << (TSqlParser.SET - 288)) | (1 << (TSqlParser.SETUSER - 288)) | (1 << (TSqlParser.SHUTDOWN - 288)) | (1 << (TSqlParser.SID - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (TSqlParser.SOURCE - 320)) | (1 << (TSqlParser.SPLIT - 320)) | (1 << (TSqlParser.STATE - 320)) | (1 << (TSqlParser.START - 320)) | (1 << (TSqlParser.SYSTEM_USER - 320)) | (1 << (TSqlParser.TARGET - 320)) | (1 << (TSqlParser.TRUNCATE - 320)))) !== 0) || ((((_la - 359)) & ~0x1f) == 0 && ((1 << (_la - 359)) & ((1 << (TSqlParser.UPDATE - 359)) | (1 << (TSqlParser.USE - 359)) | (1 << (TSqlParser.WAITFOR - 359)) | (1 << (TSqlParser.WHILE - 359)) | (1 << (TSqlParser.WITH - 359)) | (1 << (TSqlParser.ABSOLUTE - 359)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 359)) | (1 << (TSqlParser.ACTION - 359)) | (1 << (TSqlParser.ACTIVATION - 359)) | (1 << (TSqlParser.ACTIVE - 359)) | (1 << (TSqlParser.ADDRESS - 359)) | (1 << (TSqlParser.AES_128 - 359)) | (1 << (TSqlParser.AES_192 - 359)) | (1 << (TSqlParser.AES_256 - 359)) | (1 << (TSqlParser.AFFINITY - 359)) | (1 << (TSqlParser.AFTER - 359)))) !== 0) || ((((_la - 391)) & ~0x1f) == 0 && ((1 << (_la - 391)) & ((1 << (TSqlParser.AGGREGATE - 391)) | (1 << (TSqlParser.ALGORITHM - 391)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 391)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 391)) | (1 << (TSqlParser.ALLOWED - 391)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 391)) | (1 << (TSqlParser.ANSI_NULLS - 391)) | (1 << (TSqlParser.ANSI_PADDING - 391)) | (1 << (TSqlParser.ANSI_WARNINGS - 391)) | (1 << (TSqlParser.APPLICATION_LOG - 391)) | (1 << (TSqlParser.APPLY - 391)) | (1 << (TSqlParser.ARITHABORT - 391)) | (1 << (TSqlParser.ASSEMBLY - 391)) | (1 << (TSqlParser.AUDIT - 391)) | (1 << (TSqlParser.AUDIT_GUID - 391)) | (1 << (TSqlParser.AUTO - 391)) | (1 << (TSqlParser.AUTO_CLEANUP - 391)) | (1 << (TSqlParser.AUTO_CLOSE - 391)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 391)) | (1 << (TSqlParser.AUTO_SHRINK - 391)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 391)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 391)) | (1 << (TSqlParser.AVAILABILITY - 391)) | (1 << (TSqlParser.AVG - 391)) | (1 << (TSqlParser.BACKUP_PRIORITY - 391)) | (1 << (TSqlParser.BEGIN_DIALOG - 391)) | (1 << (TSqlParser.BIGINT - 391)) | (1 << (TSqlParser.BINARY_BASE64 - 391)) | (1 << (TSqlParser.BINARY_CHECKSUM - 391)) | (1 << (TSqlParser.BINDING - 391)) | (1 << (TSqlParser.BLOB_STORAGE - 391)) | (1 << (TSqlParser.BROKER - 391)))) !== 0) || ((((_la - 423)) & ~0x1f) == 0 && ((1 << (_la - 423)) & ((1 << (TSqlParser.BROKER_INSTANCE - 423)) | (1 << (TSqlParser.BULK_LOGGED - 423)) | (1 << (TSqlParser.CALLER - 423)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 423)) | (1 << (TSqlParser.CAST - 423)) | (1 << (TSqlParser.CATALOG - 423)) | (1 << (TSqlParser.CATCH - 423)) | (1 << (TSqlParser.CHANGE_RETENTION - 423)) | (1 << (TSqlParser.CHANGE_TRACKING - 423)) | (1 << (TSqlParser.CHECKSUM - 423)) | (1 << (TSqlParser.CHECKSUM_AGG - 423)) | (1 << (TSqlParser.CLEANUP - 423)) | (1 << (TSqlParser.COLLECTION - 423)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 423)) | (1 << (TSqlParser.COMMITTED - 423)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 423)) | (1 << (TSqlParser.CONCAT - 423)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 423)) | (1 << (TSqlParser.CONTENT - 423)) | (1 << (TSqlParser.CONTROL - 423)) | (1 << (TSqlParser.COOKIE - 423)) | (1 << (TSqlParser.COUNT - 423)) | (1 << (TSqlParser.COUNT_BIG - 423)) | (1 << (TSqlParser.COUNTER - 423)) | (1 << (TSqlParser.CPU - 423)) | (1 << (TSqlParser.CREATE_NEW - 423)) | (1 << (TSqlParser.CREATION_DISPOSITION - 423)) | (1 << (TSqlParser.CREDENTIAL - 423)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 423)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 423)) | (1 << (TSqlParser.CURSOR_DEFAULT - 423)) | (1 << (TSqlParser.DATA - 423)))) !== 0) || ((((_la - 455)) & ~0x1f) == 0 && ((1 << (_la - 455)) & ((1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 455)) | (1 << (TSqlParser.DATEADD - 455)) | (1 << (TSqlParser.DATEDIFF - 455)) | (1 << (TSqlParser.DATENAME - 455)) | (1 << (TSqlParser.DATEPART - 455)) | (1 << (TSqlParser.DAYS - 455)) | (1 << (TSqlParser.DB_CHAINING - 455)) | (1 << (TSqlParser.DB_FAILOVER - 455)) | (1 << (TSqlParser.DECRYPTION - 455)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 455)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 455)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 455)) | (1 << (TSqlParser.DELAY - 455)) | (1 << (TSqlParser.DELAYED_DURABILITY - 455)) | (1 << (TSqlParser.DELETED - 455)) | (1 << (TSqlParser.DENSE_RANK - 455)) | (1 << (TSqlParser.DEPENDENTS - 455)) | (1 << (TSqlParser.DES - 455)) | (1 << (TSqlParser.DESCRIPTION - 455)) | (1 << (TSqlParser.DESX - 455)) | (1 << (TSqlParser.DHCP - 455)) | (1 << (TSqlParser.DIALOG - 455)) | (1 << (TSqlParser.DIRECTORY_NAME - 455)) | (1 << (TSqlParser.DISABLE - 455)) | (1 << (TSqlParser.DISABLE_BROKER - 455)) | (1 << (TSqlParser.DISABLED - 455)) | (1 << (TSqlParser.DISK_DRIVE - 455)) | (1 << (TSqlParser.DOCUMENT - 455)) | (1 << (TSqlParser.DYNAMIC - 455)) | (1 << (TSqlParser.EMERGENCY - 455)) | (1 << (TSqlParser.EMPTY - 455)))) !== 0) || ((((_la - 487)) & ~0x1f) == 0 && ((1 << (_la - 487)) & ((1 << (TSqlParser.ENABLE - 487)) | (1 << (TSqlParser.ENABLE_BROKER - 487)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 487)) | (1 << (TSqlParser.ENCRYPTION - 487)) | (1 << (TSqlParser.ENDPOINT_URL - 487)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 487)) | (1 << (TSqlParser.EXCLUSIVE - 487)) | (1 << (TSqlParser.EXECUTABLE - 487)) | (1 << (TSqlParser.EXIST - 487)) | (1 << (TSqlParser.EXPAND - 487)) | (1 << (TSqlParser.EXPIRY_DATE - 487)) | (1 << (TSqlParser.EXPLICIT - 487)) | (1 << (TSqlParser.FAIL_OPERATION - 487)) | (1 << (TSqlParser.FAILOVER_MODE - 487)) | (1 << (TSqlParser.FAILURE - 487)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 487)) | (1 << (TSqlParser.FAST - 487)) | (1 << (TSqlParser.FAST_FORWARD - 487)) | (1 << (TSqlParser.FILEGROUP - 487)) | (1 << (TSqlParser.FILEGROWTH - 487)) | (1 << (TSqlParser.FILEPATH - 487)) | (1 << (TSqlParser.FILESTREAM - 487)) | (1 << (TSqlParser.FILTER - 487)) | (1 << (TSqlParser.FIRST - 487)) | (1 << (TSqlParser.FIRST_VALUE - 487)) | (1 << (TSqlParser.FOLLOWING - 487)) | (1 << (TSqlParser.FORCE - 487)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 487)) | (1 << (TSqlParser.FORCED - 487)) | (1 << (TSqlParser.FORMAT - 487)) | (1 << (TSqlParser.FORWARD_ONLY - 487)) | (1 << (TSqlParser.FULLSCAN - 487)))) !== 0) || ((((_la - 519)) & ~0x1f) == 0 && ((1 << (_la - 519)) & ((1 << (TSqlParser.FULLTEXT - 519)) | (1 << (TSqlParser.GB - 519)) | (1 << (TSqlParser.GETDATE - 519)) | (1 << (TSqlParser.GETUTCDATE - 519)) | (1 << (TSqlParser.GLOBAL - 519)) | (1 << (TSqlParser.GO - 519)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 519)) | (1 << (TSqlParser.GROUPING - 519)) | (1 << (TSqlParser.GROUPING_ID - 519)) | (1 << (TSqlParser.HADR - 519)) | (1 << (TSqlParser.HASH - 519)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 519)) | (1 << (TSqlParser.HIGH - 519)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 519)) | (1 << (TSqlParser.HOURS - 519)) | (1 << (TSqlParser.IDENTITY_VALUE - 519)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 519)) | (1 << (TSqlParser.IMMEDIATE - 519)) | (1 << (TSqlParser.IMPERSONATE - 519)) | (1 << (TSqlParser.IMPORTANCE - 519)) | (1 << (TSqlParser.INCREMENTAL - 519)) | (1 << (TSqlParser.INITIATOR - 519)) | (1 << (TSqlParser.INPUT - 519)) | (1 << (TSqlParser.INSENSITIVE - 519)) | (1 << (TSqlParser.INSERTED - 519)) | (1 << (TSqlParser.INT - 519)) | (1 << (TSqlParser.IP - 519)) | (1 << (TSqlParser.ISOLATION - 519)) | (1 << (TSqlParser.KB - 519)))) !== 0) || ((((_la - 551)) & ~0x1f) == 0 && ((1 << (_la - 551)) & ((1 << (TSqlParser.KEEP - 551)) | (1 << (TSqlParser.KEEPFIXED - 551)) | (1 << (TSqlParser.KEY_SOURCE - 551)) | (1 << (TSqlParser.KEYS - 551)) | (1 << (TSqlParser.KEYSET - 551)) | (1 << (TSqlParser.LAG - 551)) | (1 << (TSqlParser.LAST - 551)) | (1 << (TSqlParser.LAST_VALUE - 551)) | (1 << (TSqlParser.LEAD - 551)) | (1 << (TSqlParser.LEVEL - 551)) | (1 << (TSqlParser.LIST - 551)) | (1 << (TSqlParser.LISTENER - 551)) | (1 << (TSqlParser.LISTENER_URL - 551)) | (1 << (TSqlParser.LOB_COMPACTION - 551)) | (1 << (TSqlParser.LOCAL - 551)) | (1 << (TSqlParser.LOCATION - 551)) | (1 << (TSqlParser.LOCK - 551)) | (1 << (TSqlParser.LOCK_ESCALATION - 551)) | (1 << (TSqlParser.LOGIN - 551)) | (1 << (TSqlParser.LOOP - 551)) | (1 << (TSqlParser.LOW - 551)) | (1 << (TSqlParser.MANUAL - 551)) | (1 << (TSqlParser.MARK - 551)) | (1 << (TSqlParser.MATERIALIZED - 551)) | (1 << (TSqlParser.MAX - 551)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 551)) | (1 << (TSqlParser.MAX_DOP - 551)) | (1 << (TSqlParser.MAX_FILES - 551)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 551)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 551)) | (1 << (TSqlParser.MAX_PROCESSES - 551)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 551)))) !== 0) || ((((_la - 583)) & ~0x1f) == 0 && ((1 << (_la - 583)) & ((1 << (TSqlParser.MAX_ROLLOVER_FILES - 583)) | (1 << (TSqlParser.MAXDOP - 583)) | (1 << (TSqlParser.MAXRECURSION - 583)) | (1 << (TSqlParser.MAXSIZE - 583)) | (1 << (TSqlParser.MB - 583)) | (1 << (TSqlParser.MEDIUM - 583)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 583)) | (1 << (TSqlParser.MESSAGE - 583)) | (1 << (TSqlParser.MIN - 583)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 583)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 583)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 583)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 583)) | (1 << (TSqlParser.MINUTES - 583)) | (1 << (TSqlParser.MIRROR_ADDRESS - 583)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 583)) | (1 << (TSqlParser.MODE - 583)) | (1 << (TSqlParser.MODIFY - 583)) | (1 << (TSqlParser.MOVE - 583)) | (1 << (TSqlParser.MULTI_USER - 583)) | (1 << (TSqlParser.NAME - 583)) | (1 << (TSqlParser.NESTED_TRIGGERS - 583)) | (1 << (TSqlParser.NEW_ACCOUNT - 583)) | (1 << (TSqlParser.NEW_BROKER - 583)) | (1 << (TSqlParser.NEW_PASSWORD - 583)) | (1 << (TSqlParser.NEXT - 583)) | (1 << (TSqlParser.NO - 583)) | (1 << (TSqlParser.NO_TRUNCATE - 583)) | (1 << (TSqlParser.NO_WAIT - 583)) | (1 << (TSqlParser.NOCOUNT - 583)) | (1 << (TSqlParser.NODES - 583)) | (1 << (TSqlParser.NOEXPAND - 583)))) !== 0) || ((((_la - 615)) & ~0x1f) == 0 && ((1 << (_la - 615)) & ((1 << (TSqlParser.NON_TRANSACTED_ACCESS - 615)) | (1 << (TSqlParser.NORECOMPUTE - 615)) | (1 << (TSqlParser.NORECOVERY - 615)) | (1 << (TSqlParser.NOWAIT - 615)) | (1 << (TSqlParser.NTILE - 615)) | (1 << (TSqlParser.NUMANODE - 615)) | (1 << (TSqlParser.NUMBER - 615)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 615)) | (1 << (TSqlParser.OBJECT - 615)) | (1 << (TSqlParser.OFFLINE - 615)) | (1 << (TSqlParser.OFFSET - 615)) | (1 << (TSqlParser.OLD_ACCOUNT - 615)) | (1 << (TSqlParser.ONLINE - 615)) | (1 << (TSqlParser.ONLY - 615)) | (1 << (TSqlParser.OPEN_EXISTING - 615)) | (1 << (TSqlParser.OPTIMISTIC - 615)) | (1 << (TSqlParser.OPTIMIZE - 615)) | (1 << (TSqlParser.OUT - 615)) | (1 << (TSqlParser.OUTPUT - 615)) | (1 << (TSqlParser.OWNER - 615)) | (1 << (TSqlParser.PAGE_VERIFY - 615)) | (1 << (TSqlParser.PARAMETERIZATION - 615)) | (1 << (TSqlParser.PARTITION - 615)) | (1 << (TSqlParser.PARTITIONS - 615)) | (1 << (TSqlParser.PARTNER - 615)) | (1 << (TSqlParser.PATH - 615)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 615)) | (1 << (TSqlParser.POOL - 615)) | (1 << (TSqlParser.PORT - 615)) | (1 << (TSqlParser.PRECEDING - 615)) | (1 << (TSqlParser.PRIMARY_ROLE - 615)))) !== 0) || ((((_la - 647)) & ~0x1f) == 0 && ((1 << (_la - 647)) & ((1 << (TSqlParser.PRIOR - 647)) | (1 << (TSqlParser.PRIORITY - 647)) | (1 << (TSqlParser.PRIORITY_LEVEL - 647)) | (1 << (TSqlParser.PRIVATE - 647)) | (1 << (TSqlParser.PRIVATE_KEY - 647)) | (1 << (TSqlParser.PRIVILEGES - 647)) | (1 << (TSqlParser.PROCEDURE_NAME - 647)) | (1 << (TSqlParser.PROPERTY - 647)) | (1 << (TSqlParser.PROVIDER - 647)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 647)) | (1 << (TSqlParser.QUERY - 647)) | (1 << (TSqlParser.QUEUE - 647)) | (1 << (TSqlParser.QUEUE_DELAY - 647)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 647)) | (1 << (TSqlParser.RANGE - 647)) | (1 << (TSqlParser.RANK - 647)) | (1 << (TSqlParser.RC2 - 647)) | (1 << (TSqlParser.RC4 - 647)) | (1 << (TSqlParser.RC4_128 - 647)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 647)) | (1 << (TSqlParser.READ_ONLY - 647)) | (1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 647)) | (1 << (TSqlParser.READ_WRITE - 647)) | (1 << (TSqlParser.READONLY - 647)) | (1 << (TSqlParser.REBUILD - 647)) | (1 << (TSqlParser.RECEIVE - 647)) | (1 << (TSqlParser.RECOMPILE - 647)) | (1 << (TSqlParser.RECOVERY - 647)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 647)) | (1 << (TSqlParser.RELATIVE - 647)) | (1 << (TSqlParser.REMOTE - 647)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 647)))) !== 0) || ((((_la - 679)) & ~0x1f) == 0 && ((1 << (_la - 679)) & ((1 << (TSqlParser.REMOVE - 679)) | (1 << (TSqlParser.REORGANIZE - 679)) | (1 << (TSqlParser.REPEATABLE - 679)) | (1 << (TSqlParser.REPLICA - 679)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 679)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 679)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 679)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 679)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 679)) | (1 << (TSqlParser.RESOURCE - 679)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 679)) | (1 << (TSqlParser.RESTRICTED_USER - 679)) | (1 << (TSqlParser.RETENTION - 679)) | (1 << (TSqlParser.ROBUST - 679)) | (1 << (TSqlParser.ROOT - 679)) | (1 << (TSqlParser.ROUTE - 679)) | (1 << (TSqlParser.ROW - 679)) | (1 << (TSqlParser.ROW_NUMBER - 679)) | (1 << (TSqlParser.ROWGUID - 679)) | (1 << (TSqlParser.ROWS - 679)) | (1 << (TSqlParser.SAMPLE - 679)) | (1 << (TSqlParser.SCHEMABINDING - 679)) | (1 << (TSqlParser.SCOPED - 679)) | (1 << (TSqlParser.SCROLL - 679)) | (1 << (TSqlParser.SCROLL_LOCKS - 679)) | (1 << (TSqlParser.SEARCH - 679)) | (1 << (TSqlParser.SECONDARY - 679)) | (1 << (TSqlParser.SECONDARY_ONLY - 679)) | (1 << (TSqlParser.SECONDARY_ROLE - 679)) | (1 << (TSqlParser.SECONDS - 679)) | (1 << (TSqlParser.SECRET - 679)) | (1 << (TSqlParser.SECURITY - 679)))) !== 0) || ((((_la - 711)) & ~0x1f) == 0 && ((1 << (_la - 711)) & ((1 << (TSqlParser.SECURITY_LOG - 711)) | (1 << (TSqlParser.SEEDING_MODE - 711)) | (1 << (TSqlParser.SELF - 711)) | (1 << (TSqlParser.SEMI_SENSITIVE - 711)) | (1 << (TSqlParser.SEND - 711)) | (1 << (TSqlParser.SENT - 711)) | (1 << (TSqlParser.SEQUENCE - 711)) | (1 << (TSqlParser.SERIALIZABLE - 711)) | (1 << (TSqlParser.SESSION_TIMEOUT - 711)) | (1 << (TSqlParser.SETERROR - 711)) | (1 << (TSqlParser.SHARE - 711)) | (1 << (TSqlParser.SHOWPLAN - 711)) | (1 << (TSqlParser.SIGNATURE - 711)) | (1 << (TSqlParser.SIMPLE - 711)) | (1 << (TSqlParser.SINGLE_USER - 711)) | (1 << (TSqlParser.SIZE - 711)) | (1 << (TSqlParser.SMALLINT - 711)) | (1 << (TSqlParser.SNAPSHOT - 711)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 711)) | (1 << (TSqlParser.STANDBY - 711)) | (1 << (TSqlParser.START_DATE - 711)) | (1 << (TSqlParser.STATIC - 711)) | (1 << (TSqlParser.STATS_STREAM - 711)) | (1 << (TSqlParser.STATUS - 711)) | (1 << (TSqlParser.STDEV - 711)) | (1 << (TSqlParser.STDEVP - 711)) | (1 << (TSqlParser.STOPLIST - 711)) | (1 << (TSqlParser.STRING_AGG - 711)) | (1 << (TSqlParser.STUFF - 711)) | (1 << (TSqlParser.SUBJECT - 711)))) !== 0) || ((((_la - 743)) & ~0x1f) == 0 && ((1 << (_la - 743)) & ((1 << (TSqlParser.SUM - 743)) | (1 << (TSqlParser.SUSPEND - 743)) | (1 << (TSqlParser.SYMMETRIC - 743)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 743)) | (1 << (TSqlParser.SYNONYM - 743)) | (1 << (TSqlParser.SYSTEM - 743)) | (1 << (TSqlParser.TAKE - 743)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 743)) | (1 << (TSqlParser.TB - 743)) | (1 << (TSqlParser.TEXTIMAGE_ON - 743)) | (1 << (TSqlParser.THROW - 743)) | (1 << (TSqlParser.TIES - 743)) | (1 << (TSqlParser.TIME - 743)) | (1 << (TSqlParser.TIMEOUT - 743)) | (1 << (TSqlParser.TIMER - 743)) | (1 << (TSqlParser.TINYINT - 743)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 743)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 743)) | (1 << (TSqlParser.TRIPLE_DES - 743)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 743)) | (1 << (TSqlParser.TRUSTWORTHY - 743)) | (1 << (TSqlParser.TRY - 743)) | (1 << (TSqlParser.TSQL - 743)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 743)) | (1 << (TSqlParser.TYPE - 743)) | (1 << (TSqlParser.TYPE_WARNING - 743)) | (1 << (TSqlParser.UNBOUNDED - 743)) | (1 << (TSqlParser.UNCOMMITTED - 743)) | (1 << (TSqlParser.UNKNOWN - 743)) | (1 << (TSqlParser.UNLIMITED - 743)) | (1 << (TSqlParser.USING - 743)))) !== 0) || ((((_la - 775)) & ~0x1f) == 0 && ((1 << (_la - 775)) & ((1 << (TSqlParser.VALID_XML - 775)) | (1 << (TSqlParser.VALIDATION - 775)) | (1 << (TSqlParser.VALUE - 775)) | (1 << (TSqlParser.VAR - 775)) | (1 << (TSqlParser.VARP - 775)) | (1 << (TSqlParser.VIEW_METADATA - 775)) | (1 << (TSqlParser.VIEWS - 775)) | (1 << (TSqlParser.WAIT - 775)) | (1 << (TSqlParser.WELL_FORMED_XML - 775)) | (1 << (TSqlParser.WORK - 775)) | (1 << (TSqlParser.WORKLOAD - 775)) | (1 << (TSqlParser.XML - 775)) | (1 << (TSqlParser.XMLNAMESPACES - 775)) | (1 << (TSqlParser.DOUBLE_QUOTE_ID - 775)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 775)) | (1 << (TSqlParser.LOCAL_ID - 775)) | (1 << (TSqlParser.DECIMAL - 775)) | (1 << (TSqlParser.ID - 775)) | (1 << (TSqlParser.STRING - 775)) | (1 << (TSqlParser.BINARY - 775)) | (1 << (TSqlParser.FLOAT - 775)))) !== 0) || ((((_la - 807)) & ~0x1f) == 0 && ((1 << (_la - 807)) & ((1 << (TSqlParser.REAL - 807)) | (1 << (TSqlParser.DOLLAR - 807)) | (1 << (TSqlParser.LR_BRACKET - 807)) | (1 << (TSqlParser.SEMI - 807)) | (1 << (TSqlParser.PLUS - 807)) | (1 << (TSqlParser.MINUS - 807)) | (1 << (TSqlParser.BIT_NOT - 807)))) !== 0)) { + this.state = 974; + this.batch(); + this.state = 979; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 980; + this.match(TSqlParser.EOF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BatchContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_batch; + return this; +} + +BatchContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BatchContext.prototype.constructor = BatchContext; + +BatchContext.prototype.execute_body = function() { + return this.getTypedRuleContext(Execute_bodyContext,0); +}; + +BatchContext.prototype.go_statement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Go_statementContext); + } else { + return this.getTypedRuleContext(Go_statementContext,i); + } +}; + +BatchContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +BatchContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBatch(this); + } +}; + +BatchContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBatch(this); + } +}; + +BatchContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBatch(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.BatchContext = BatchContext; + +TSqlParser.prototype.batch = function() { + + var localctx = new BatchContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, TSqlParser.RULE_batch); + try { + this.state = 999; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,4,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 982; + this.execute_body(); + this.state = 986; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 983; + this.go_statement(); + } + this.state = 988; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1,this._ctx); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 990; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2,this._ctx); + if(la_===1) { + this.state = 989; + this.execute_body(); + + } + this.state = 992; + this.sql_clauses(); + this.state = 996; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,3,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 993; + this.go_statement(); + } + this.state = 998; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,3,this._ctx); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Sql_clausesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sql_clauses; + return this; +} + +Sql_clausesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Sql_clausesContext.prototype.constructor = Sql_clausesContext; + +Sql_clausesContext.prototype.sql_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clauseContext); + } else { + return this.getTypedRuleContext(Sql_clauseContext,i); + } +}; + +Sql_clausesContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEMI); + } else { + return this.getToken(TSqlParser.SEMI, i); + } +}; + + +Sql_clausesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSql_clauses(this); + } +}; + +Sql_clausesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSql_clauses(this); + } +}; + +Sql_clausesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSql_clauses(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Sql_clausesContext = Sql_clausesContext; + +TSqlParser.prototype.sql_clauses = function() { + + var localctx = new Sql_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, TSqlParser.RULE_sql_clauses); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1005; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 1001; + this.sql_clause(); + this.state = 1003; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,5,this._ctx); + if(la_===1) { + this.state = 1002; + this.match(TSqlParser.SEMI); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1007; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,6, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Sql_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sql_clause; + return this; +} + +Sql_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Sql_clauseContext.prototype.constructor = Sql_clauseContext; + +Sql_clauseContext.prototype.dml_clause = function() { + return this.getTypedRuleContext(Dml_clauseContext,0); +}; + +Sql_clauseContext.prototype.ddl_clause = function() { + return this.getTypedRuleContext(Ddl_clauseContext,0); +}; + +Sql_clauseContext.prototype.cfl_statement = function() { + return this.getTypedRuleContext(Cfl_statementContext,0); +}; + +Sql_clauseContext.prototype.dbcc_clause = function() { + return this.getTypedRuleContext(Dbcc_clauseContext,0); +}; + +Sql_clauseContext.prototype.empty_statement = function() { + return this.getTypedRuleContext(Empty_statementContext,0); +}; + +Sql_clauseContext.prototype.another_statement = function() { + return this.getTypedRuleContext(Another_statementContext,0); +}; + +Sql_clauseContext.prototype.backup_statement = function() { + return this.getTypedRuleContext(Backup_statementContext,0); +}; + +Sql_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSql_clause(this); + } +}; + +Sql_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSql_clause(this); + } +}; + +Sql_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSql_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Sql_clauseContext = Sql_clauseContext; + +TSqlParser.prototype.sql_clause = function() { + + var localctx = new Sql_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, TSqlParser.RULE_sql_clause); + try { + this.state = 1016; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,7,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1009; + this.dml_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1010; + this.ddl_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1011; + this.cfl_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1012; + this.dbcc_clause(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1013; + this.empty_statement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1014; + this.another_statement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1015; + this.backup_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dml_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dml_clause; + return this; +} + +Dml_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dml_clauseContext.prototype.constructor = Dml_clauseContext; + +Dml_clauseContext.prototype.merge_statement = function() { + return this.getTypedRuleContext(Merge_statementContext,0); +}; + +Dml_clauseContext.prototype.delete_statement = function() { + return this.getTypedRuleContext(Delete_statementContext,0); +}; + +Dml_clauseContext.prototype.insert_statement = function() { + return this.getTypedRuleContext(Insert_statementContext,0); +}; + +Dml_clauseContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Dml_clauseContext.prototype.update_statement = function() { + return this.getTypedRuleContext(Update_statementContext,0); +}; + +Dml_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDml_clause(this); + } +}; + +Dml_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDml_clause(this); + } +}; + +Dml_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDml_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dml_clauseContext = Dml_clauseContext; + +TSqlParser.prototype.dml_clause = function() { + + var localctx = new Dml_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, TSqlParser.RULE_dml_clause); + try { + this.state = 1023; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,8,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1018; + this.merge_statement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1019; + this.delete_statement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1020; + this.insert_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1021; + this.select_statement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1022; + this.update_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Ddl_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_ddl_clause; + return this; +} + +Ddl_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Ddl_clauseContext.prototype.constructor = Ddl_clauseContext; + +Ddl_clauseContext.prototype.alter_application_role = function() { + return this.getTypedRuleContext(Alter_application_roleContext,0); +}; + +Ddl_clauseContext.prototype.alter_assembly = function() { + return this.getTypedRuleContext(Alter_assemblyContext,0); +}; + +Ddl_clauseContext.prototype.alter_asymmetric_key = function() { + return this.getTypedRuleContext(Alter_asymmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.alter_authorization = function() { + return this.getTypedRuleContext(Alter_authorizationContext,0); +}; + +Ddl_clauseContext.prototype.alter_authorization_for_azure_dw = function() { + return this.getTypedRuleContext(Alter_authorization_for_azure_dwContext,0); +}; + +Ddl_clauseContext.prototype.alter_authorization_for_parallel_dw = function() { + return this.getTypedRuleContext(Alter_authorization_for_parallel_dwContext,0); +}; + +Ddl_clauseContext.prototype.alter_authorization_for_sql_database = function() { + return this.getTypedRuleContext(Alter_authorization_for_sql_databaseContext,0); +}; + +Ddl_clauseContext.prototype.alter_availability_group = function() { + return this.getTypedRuleContext(Alter_availability_groupContext,0); +}; + +Ddl_clauseContext.prototype.alter_certificate = function() { + return this.getTypedRuleContext(Alter_certificateContext,0); +}; + +Ddl_clauseContext.prototype.alter_column_encryption_key = function() { + return this.getTypedRuleContext(Alter_column_encryption_keyContext,0); +}; + +Ddl_clauseContext.prototype.alter_credential = function() { + return this.getTypedRuleContext(Alter_credentialContext,0); +}; + +Ddl_clauseContext.prototype.alter_cryptographic_provider = function() { + return this.getTypedRuleContext(Alter_cryptographic_providerContext,0); +}; + +Ddl_clauseContext.prototype.alter_database = function() { + return this.getTypedRuleContext(Alter_databaseContext,0); +}; + +Ddl_clauseContext.prototype.alter_db_role = function() { + return this.getTypedRuleContext(Alter_db_roleContext,0); +}; + +Ddl_clauseContext.prototype.alter_endpoint = function() { + return this.getTypedRuleContext(Alter_endpointContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_event_session = function() { + return this.getTypedRuleContext(Create_or_alter_event_sessionContext,0); +}; + +Ddl_clauseContext.prototype.alter_external_data_source = function() { + return this.getTypedRuleContext(Alter_external_data_sourceContext,0); +}; + +Ddl_clauseContext.prototype.alter_external_library = function() { + return this.getTypedRuleContext(Alter_external_libraryContext,0); +}; + +Ddl_clauseContext.prototype.alter_external_resource_pool = function() { + return this.getTypedRuleContext(Alter_external_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.alter_fulltext_catalog = function() { + return this.getTypedRuleContext(Alter_fulltext_catalogContext,0); +}; + +Ddl_clauseContext.prototype.alter_fulltext_stoplist = function() { + return this.getTypedRuleContext(Alter_fulltext_stoplistContext,0); +}; + +Ddl_clauseContext.prototype.alter_login_azure_sql = function() { + return this.getTypedRuleContext(Alter_login_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.alter_login_azure_sql_dw_and_pdw = function() { + return this.getTypedRuleContext(Alter_login_azure_sql_dw_and_pdwContext,0); +}; + +Ddl_clauseContext.prototype.alter_login_sql_server = function() { + return this.getTypedRuleContext(Alter_login_sql_serverContext,0); +}; + +Ddl_clauseContext.prototype.alter_master_key_azure_sql = function() { + return this.getTypedRuleContext(Alter_master_key_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.alter_master_key_sql_server = function() { + return this.getTypedRuleContext(Alter_master_key_sql_serverContext,0); +}; + +Ddl_clauseContext.prototype.alter_message_type = function() { + return this.getTypedRuleContext(Alter_message_typeContext,0); +}; + +Ddl_clauseContext.prototype.alter_partition_function = function() { + return this.getTypedRuleContext(Alter_partition_functionContext,0); +}; + +Ddl_clauseContext.prototype.alter_partition_scheme = function() { + return this.getTypedRuleContext(Alter_partition_schemeContext,0); +}; + +Ddl_clauseContext.prototype.alter_remote_service_binding = function() { + return this.getTypedRuleContext(Alter_remote_service_bindingContext,0); +}; + +Ddl_clauseContext.prototype.alter_resource_governor = function() { + return this.getTypedRuleContext(Alter_resource_governorContext,0); +}; + +Ddl_clauseContext.prototype.alter_schema_azure_sql_dw_and_pdw = function() { + return this.getTypedRuleContext(Alter_schema_azure_sql_dw_and_pdwContext,0); +}; + +Ddl_clauseContext.prototype.alter_schema_sql = function() { + return this.getTypedRuleContext(Alter_schema_sqlContext,0); +}; + +Ddl_clauseContext.prototype.alter_sequence = function() { + return this.getTypedRuleContext(Alter_sequenceContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_audit = function() { + return this.getTypedRuleContext(Alter_server_auditContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_audit_specification = function() { + return this.getTypedRuleContext(Alter_server_audit_specificationContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_configuration = function() { + return this.getTypedRuleContext(Alter_server_configurationContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_role = function() { + return this.getTypedRuleContext(Alter_server_roleContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_role_pdw = function() { + return this.getTypedRuleContext(Alter_server_role_pdwContext,0); +}; + +Ddl_clauseContext.prototype.alter_service = function() { + return this.getTypedRuleContext(Alter_serviceContext,0); +}; + +Ddl_clauseContext.prototype.alter_service_master_key = function() { + return this.getTypedRuleContext(Alter_service_master_keyContext,0); +}; + +Ddl_clauseContext.prototype.alter_symmetric_key = function() { + return this.getTypedRuleContext(Alter_symmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.alter_table = function() { + return this.getTypedRuleContext(Alter_tableContext,0); +}; + +Ddl_clauseContext.prototype.alter_user = function() { + return this.getTypedRuleContext(Alter_userContext,0); +}; + +Ddl_clauseContext.prototype.alter_user_azure_sql = function() { + return this.getTypedRuleContext(Alter_user_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.alter_workload_group = function() { + return this.getTypedRuleContext(Alter_workload_groupContext,0); +}; + +Ddl_clauseContext.prototype.create_application_role = function() { + return this.getTypedRuleContext(Create_application_roleContext,0); +}; + +Ddl_clauseContext.prototype.create_assembly = function() { + return this.getTypedRuleContext(Create_assemblyContext,0); +}; + +Ddl_clauseContext.prototype.create_asymmetric_key = function() { + return this.getTypedRuleContext(Create_asymmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.create_column_encryption_key = function() { + return this.getTypedRuleContext(Create_column_encryption_keyContext,0); +}; + +Ddl_clauseContext.prototype.create_column_master_key = function() { + return this.getTypedRuleContext(Create_column_master_keyContext,0); +}; + +Ddl_clauseContext.prototype.create_credential = function() { + return this.getTypedRuleContext(Create_credentialContext,0); +}; + +Ddl_clauseContext.prototype.create_cryptographic_provider = function() { + return this.getTypedRuleContext(Create_cryptographic_providerContext,0); +}; + +Ddl_clauseContext.prototype.create_database = function() { + return this.getTypedRuleContext(Create_databaseContext,0); +}; + +Ddl_clauseContext.prototype.create_db_role = function() { + return this.getTypedRuleContext(Create_db_roleContext,0); +}; + +Ddl_clauseContext.prototype.create_event_notification = function() { + return this.getTypedRuleContext(Create_event_notificationContext,0); +}; + +Ddl_clauseContext.prototype.create_external_library = function() { + return this.getTypedRuleContext(Create_external_libraryContext,0); +}; + +Ddl_clauseContext.prototype.create_external_resource_pool = function() { + return this.getTypedRuleContext(Create_external_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.create_fulltext_catalog = function() { + return this.getTypedRuleContext(Create_fulltext_catalogContext,0); +}; + +Ddl_clauseContext.prototype.create_fulltext_stoplist = function() { + return this.getTypedRuleContext(Create_fulltext_stoplistContext,0); +}; + +Ddl_clauseContext.prototype.create_index = function() { + return this.getTypedRuleContext(Create_indexContext,0); +}; + +Ddl_clauseContext.prototype.create_login_azure_sql = function() { + return this.getTypedRuleContext(Create_login_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.create_login_pdw = function() { + return this.getTypedRuleContext(Create_login_pdwContext,0); +}; + +Ddl_clauseContext.prototype.create_login_sql_server = function() { + return this.getTypedRuleContext(Create_login_sql_serverContext,0); +}; + +Ddl_clauseContext.prototype.create_master_key_azure_sql = function() { + return this.getTypedRuleContext(Create_master_key_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.create_master_key_sql_server = function() { + return this.getTypedRuleContext(Create_master_key_sql_serverContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_broker_priority = function() { + return this.getTypedRuleContext(Create_or_alter_broker_priorityContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_function = function() { + return this.getTypedRuleContext(Create_or_alter_functionContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_procedure = function() { + return this.getTypedRuleContext(Create_or_alter_procedureContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_trigger = function() { + return this.getTypedRuleContext(Create_or_alter_triggerContext,0); +}; + +Ddl_clauseContext.prototype.create_remote_service_binding = function() { + return this.getTypedRuleContext(Create_remote_service_bindingContext,0); +}; + +Ddl_clauseContext.prototype.create_resource_pool = function() { + return this.getTypedRuleContext(Create_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.create_route = function() { + return this.getTypedRuleContext(Create_routeContext,0); +}; + +Ddl_clauseContext.prototype.create_rule = function() { + return this.getTypedRuleContext(Create_ruleContext,0); +}; + +Ddl_clauseContext.prototype.create_schema = function() { + return this.getTypedRuleContext(Create_schemaContext,0); +}; + +Ddl_clauseContext.prototype.create_schema_azure_sql_dw_and_pdw = function() { + return this.getTypedRuleContext(Create_schema_azure_sql_dw_and_pdwContext,0); +}; + +Ddl_clauseContext.prototype.create_search_property_list = function() { + return this.getTypedRuleContext(Create_search_property_listContext,0); +}; + +Ddl_clauseContext.prototype.create_security_policy = function() { + return this.getTypedRuleContext(Create_security_policyContext,0); +}; + +Ddl_clauseContext.prototype.create_sequence = function() { + return this.getTypedRuleContext(Create_sequenceContext,0); +}; + +Ddl_clauseContext.prototype.create_server_audit = function() { + return this.getTypedRuleContext(Create_server_auditContext,0); +}; + +Ddl_clauseContext.prototype.create_server_audit_specification = function() { + return this.getTypedRuleContext(Create_server_audit_specificationContext,0); +}; + +Ddl_clauseContext.prototype.create_server_role = function() { + return this.getTypedRuleContext(Create_server_roleContext,0); +}; + +Ddl_clauseContext.prototype.create_service = function() { + return this.getTypedRuleContext(Create_serviceContext,0); +}; + +Ddl_clauseContext.prototype.create_statistics = function() { + return this.getTypedRuleContext(Create_statisticsContext,0); +}; + +Ddl_clauseContext.prototype.create_symmetric_key = function() { + return this.getTypedRuleContext(Create_symmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.create_synonym = function() { + return this.getTypedRuleContext(Create_synonymContext,0); +}; + +Ddl_clauseContext.prototype.create_table = function() { + return this.getTypedRuleContext(Create_tableContext,0); +}; + +Ddl_clauseContext.prototype.create_type = function() { + return this.getTypedRuleContext(Create_typeContext,0); +}; + +Ddl_clauseContext.prototype.create_user = function() { + return this.getTypedRuleContext(Create_userContext,0); +}; + +Ddl_clauseContext.prototype.create_user_azure_sql_dw = function() { + return this.getTypedRuleContext(Create_user_azure_sql_dwContext,0); +}; + +Ddl_clauseContext.prototype.create_view = function() { + return this.getTypedRuleContext(Create_viewContext,0); +}; + +Ddl_clauseContext.prototype.create_workload_group = function() { + return this.getTypedRuleContext(Create_workload_groupContext,0); +}; + +Ddl_clauseContext.prototype.create_xml_schema_collection = function() { + return this.getTypedRuleContext(Create_xml_schema_collectionContext,0); +}; + +Ddl_clauseContext.prototype.drop_aggregate = function() { + return this.getTypedRuleContext(Drop_aggregateContext,0); +}; + +Ddl_clauseContext.prototype.drop_application_role = function() { + return this.getTypedRuleContext(Drop_application_roleContext,0); +}; + +Ddl_clauseContext.prototype.drop_assembly = function() { + return this.getTypedRuleContext(Drop_assemblyContext,0); +}; + +Ddl_clauseContext.prototype.drop_asymmetric_key = function() { + return this.getTypedRuleContext(Drop_asymmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_availability_group = function() { + return this.getTypedRuleContext(Drop_availability_groupContext,0); +}; + +Ddl_clauseContext.prototype.drop_broker_priority = function() { + return this.getTypedRuleContext(Drop_broker_priorityContext,0); +}; + +Ddl_clauseContext.prototype.drop_certificate = function() { + return this.getTypedRuleContext(Drop_certificateContext,0); +}; + +Ddl_clauseContext.prototype.drop_column_encryption_key = function() { + return this.getTypedRuleContext(Drop_column_encryption_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_column_master_key = function() { + return this.getTypedRuleContext(Drop_column_master_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_contract = function() { + return this.getTypedRuleContext(Drop_contractContext,0); +}; + +Ddl_clauseContext.prototype.drop_credential = function() { + return this.getTypedRuleContext(Drop_credentialContext,0); +}; + +Ddl_clauseContext.prototype.drop_cryptograhic_provider = function() { + return this.getTypedRuleContext(Drop_cryptograhic_providerContext,0); +}; + +Ddl_clauseContext.prototype.drop_database = function() { + return this.getTypedRuleContext(Drop_databaseContext,0); +}; + +Ddl_clauseContext.prototype.drop_database_audit_specification = function() { + return this.getTypedRuleContext(Drop_database_audit_specificationContext,0); +}; + +Ddl_clauseContext.prototype.drop_database_scoped_credential = function() { + return this.getTypedRuleContext(Drop_database_scoped_credentialContext,0); +}; + +Ddl_clauseContext.prototype.drop_db_role = function() { + return this.getTypedRuleContext(Drop_db_roleContext,0); +}; + +Ddl_clauseContext.prototype.drop_default = function() { + return this.getTypedRuleContext(Drop_defaultContext,0); +}; + +Ddl_clauseContext.prototype.drop_endpoint = function() { + return this.getTypedRuleContext(Drop_endpointContext,0); +}; + +Ddl_clauseContext.prototype.drop_event_notifications = function() { + return this.getTypedRuleContext(Drop_event_notificationsContext,0); +}; + +Ddl_clauseContext.prototype.drop_event_session = function() { + return this.getTypedRuleContext(Drop_event_sessionContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_data_source = function() { + return this.getTypedRuleContext(Drop_external_data_sourceContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_file_format = function() { + return this.getTypedRuleContext(Drop_external_file_formatContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_library = function() { + return this.getTypedRuleContext(Drop_external_libraryContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_resource_pool = function() { + return this.getTypedRuleContext(Drop_external_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_table = function() { + return this.getTypedRuleContext(Drop_external_tableContext,0); +}; + +Ddl_clauseContext.prototype.drop_fulltext_catalog = function() { + return this.getTypedRuleContext(Drop_fulltext_catalogContext,0); +}; + +Ddl_clauseContext.prototype.drop_fulltext_index = function() { + return this.getTypedRuleContext(Drop_fulltext_indexContext,0); +}; + +Ddl_clauseContext.prototype.drop_fulltext_stoplist = function() { + return this.getTypedRuleContext(Drop_fulltext_stoplistContext,0); +}; + +Ddl_clauseContext.prototype.drop_function = function() { + return this.getTypedRuleContext(Drop_functionContext,0); +}; + +Ddl_clauseContext.prototype.drop_index = function() { + return this.getTypedRuleContext(Drop_indexContext,0); +}; + +Ddl_clauseContext.prototype.drop_login = function() { + return this.getTypedRuleContext(Drop_loginContext,0); +}; + +Ddl_clauseContext.prototype.drop_master_key = function() { + return this.getTypedRuleContext(Drop_master_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_message_type = function() { + return this.getTypedRuleContext(Drop_message_typeContext,0); +}; + +Ddl_clauseContext.prototype.drop_partition_function = function() { + return this.getTypedRuleContext(Drop_partition_functionContext,0); +}; + +Ddl_clauseContext.prototype.drop_partition_scheme = function() { + return this.getTypedRuleContext(Drop_partition_schemeContext,0); +}; + +Ddl_clauseContext.prototype.drop_procedure = function() { + return this.getTypedRuleContext(Drop_procedureContext,0); +}; + +Ddl_clauseContext.prototype.drop_queue = function() { + return this.getTypedRuleContext(Drop_queueContext,0); +}; + +Ddl_clauseContext.prototype.drop_remote_service_binding = function() { + return this.getTypedRuleContext(Drop_remote_service_bindingContext,0); +}; + +Ddl_clauseContext.prototype.drop_resource_pool = function() { + return this.getTypedRuleContext(Drop_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.drop_route = function() { + return this.getTypedRuleContext(Drop_routeContext,0); +}; + +Ddl_clauseContext.prototype.drop_rule = function() { + return this.getTypedRuleContext(Drop_ruleContext,0); +}; + +Ddl_clauseContext.prototype.drop_schema = function() { + return this.getTypedRuleContext(Drop_schemaContext,0); +}; + +Ddl_clauseContext.prototype.drop_search_property_list = function() { + return this.getTypedRuleContext(Drop_search_property_listContext,0); +}; + +Ddl_clauseContext.prototype.drop_security_policy = function() { + return this.getTypedRuleContext(Drop_security_policyContext,0); +}; + +Ddl_clauseContext.prototype.drop_sequence = function() { + return this.getTypedRuleContext(Drop_sequenceContext,0); +}; + +Ddl_clauseContext.prototype.drop_server_audit = function() { + return this.getTypedRuleContext(Drop_server_auditContext,0); +}; + +Ddl_clauseContext.prototype.drop_server_audit_specification = function() { + return this.getTypedRuleContext(Drop_server_audit_specificationContext,0); +}; + +Ddl_clauseContext.prototype.drop_server_role = function() { + return this.getTypedRuleContext(Drop_server_roleContext,0); +}; + +Ddl_clauseContext.prototype.drop_service = function() { + return this.getTypedRuleContext(Drop_serviceContext,0); +}; + +Ddl_clauseContext.prototype.drop_signature = function() { + return this.getTypedRuleContext(Drop_signatureContext,0); +}; + +Ddl_clauseContext.prototype.drop_statistics = function() { + return this.getTypedRuleContext(Drop_statisticsContext,0); +}; + +Ddl_clauseContext.prototype.drop_statistics_name_azure_dw_and_pdw = function() { + return this.getTypedRuleContext(Drop_statistics_name_azure_dw_and_pdwContext,0); +}; + +Ddl_clauseContext.prototype.drop_symmetric_key = function() { + return this.getTypedRuleContext(Drop_symmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_synonym = function() { + return this.getTypedRuleContext(Drop_synonymContext,0); +}; + +Ddl_clauseContext.prototype.drop_table = function() { + return this.getTypedRuleContext(Drop_tableContext,0); +}; + +Ddl_clauseContext.prototype.drop_trigger = function() { + return this.getTypedRuleContext(Drop_triggerContext,0); +}; + +Ddl_clauseContext.prototype.drop_type = function() { + return this.getTypedRuleContext(Drop_typeContext,0); +}; + +Ddl_clauseContext.prototype.drop_user = function() { + return this.getTypedRuleContext(Drop_userContext,0); +}; + +Ddl_clauseContext.prototype.drop_view = function() { + return this.getTypedRuleContext(Drop_viewContext,0); +}; + +Ddl_clauseContext.prototype.drop_workload_group = function() { + return this.getTypedRuleContext(Drop_workload_groupContext,0); +}; + +Ddl_clauseContext.prototype.drop_xml_schema_collection = function() { + return this.getTypedRuleContext(Drop_xml_schema_collectionContext,0); +}; + +Ddl_clauseContext.prototype.disable_trigger = function() { + return this.getTypedRuleContext(Disable_triggerContext,0); +}; + +Ddl_clauseContext.prototype.enable_trigger = function() { + return this.getTypedRuleContext(Enable_triggerContext,0); +}; + +Ddl_clauseContext.prototype.lock_table = function() { + return this.getTypedRuleContext(Lock_tableContext,0); +}; + +Ddl_clauseContext.prototype.truncate_table = function() { + return this.getTypedRuleContext(Truncate_tableContext,0); +}; + +Ddl_clauseContext.prototype.update_statistics = function() { + return this.getTypedRuleContext(Update_statisticsContext,0); +}; + +Ddl_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDdl_clause(this); + } +}; + +Ddl_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDdl_clause(this); + } +}; + +Ddl_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDdl_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Ddl_clauseContext = Ddl_clauseContext; + +TSqlParser.prototype.ddl_clause = function() { + + var localctx = new Ddl_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 10, TSqlParser.RULE_ddl_clause); + try { + this.state = 1184; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1025; + this.alter_application_role(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1026; + this.alter_assembly(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1027; + this.alter_asymmetric_key(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1028; + this.alter_authorization(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1029; + this.alter_authorization_for_azure_dw(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1030; + this.alter_authorization_for_parallel_dw(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1031; + this.alter_authorization_for_sql_database(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1032; + this.alter_availability_group(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1033; + this.alter_certificate(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1034; + this.alter_column_encryption_key(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1035; + this.alter_credential(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1036; + this.alter_cryptographic_provider(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 1037; + this.alter_database(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 1038; + this.alter_db_role(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 1039; + this.alter_endpoint(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 1040; + this.create_or_alter_event_session(); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 1041; + this.alter_external_data_source(); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 1042; + this.alter_external_library(); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 1043; + this.alter_external_resource_pool(); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 1044; + this.alter_fulltext_catalog(); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 1045; + this.alter_fulltext_stoplist(); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 1046; + this.alter_login_azure_sql(); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 1047; + this.alter_login_azure_sql_dw_and_pdw(); + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 1048; + this.alter_login_sql_server(); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 1049; + this.alter_master_key_azure_sql(); + break; + + case 26: + this.enterOuterAlt(localctx, 26); + this.state = 1050; + this.alter_master_key_sql_server(); + break; + + case 27: + this.enterOuterAlt(localctx, 27); + this.state = 1051; + this.alter_message_type(); + break; + + case 28: + this.enterOuterAlt(localctx, 28); + this.state = 1052; + this.alter_partition_function(); + break; + + case 29: + this.enterOuterAlt(localctx, 29); + this.state = 1053; + this.alter_partition_scheme(); + break; + + case 30: + this.enterOuterAlt(localctx, 30); + this.state = 1054; + this.alter_remote_service_binding(); + break; + + case 31: + this.enterOuterAlt(localctx, 31); + this.state = 1055; + this.alter_resource_governor(); + break; + + case 32: + this.enterOuterAlt(localctx, 32); + this.state = 1056; + this.alter_schema_azure_sql_dw_and_pdw(); + break; + + case 33: + this.enterOuterAlt(localctx, 33); + this.state = 1057; + this.alter_schema_sql(); + break; + + case 34: + this.enterOuterAlt(localctx, 34); + this.state = 1058; + this.alter_sequence(); + break; + + case 35: + this.enterOuterAlt(localctx, 35); + this.state = 1059; + this.alter_server_audit(); + break; + + case 36: + this.enterOuterAlt(localctx, 36); + this.state = 1060; + this.alter_server_audit_specification(); + break; + + case 37: + this.enterOuterAlt(localctx, 37); + this.state = 1061; + this.alter_server_configuration(); + break; + + case 38: + this.enterOuterAlt(localctx, 38); + this.state = 1062; + this.alter_server_role(); + break; + + case 39: + this.enterOuterAlt(localctx, 39); + this.state = 1063; + this.alter_server_role_pdw(); + break; + + case 40: + this.enterOuterAlt(localctx, 40); + this.state = 1064; + this.alter_service(); + break; + + case 41: + this.enterOuterAlt(localctx, 41); + this.state = 1065; + this.alter_service_master_key(); + break; + + case 42: + this.enterOuterAlt(localctx, 42); + this.state = 1066; + this.alter_symmetric_key(); + break; + + case 43: + this.enterOuterAlt(localctx, 43); + this.state = 1067; + this.alter_table(); + break; + + case 44: + this.enterOuterAlt(localctx, 44); + this.state = 1068; + this.alter_user(); + break; + + case 45: + this.enterOuterAlt(localctx, 45); + this.state = 1069; + this.alter_user_azure_sql(); + break; + + case 46: + this.enterOuterAlt(localctx, 46); + this.state = 1070; + this.alter_workload_group(); + break; + + case 47: + this.enterOuterAlt(localctx, 47); + this.state = 1071; + this.create_application_role(); + break; + + case 48: + this.enterOuterAlt(localctx, 48); + this.state = 1072; + this.create_assembly(); + break; + + case 49: + this.enterOuterAlt(localctx, 49); + this.state = 1073; + this.create_asymmetric_key(); + break; + + case 50: + this.enterOuterAlt(localctx, 50); + this.state = 1074; + this.create_column_encryption_key(); + break; + + case 51: + this.enterOuterAlt(localctx, 51); + this.state = 1075; + this.create_column_master_key(); + break; + + case 52: + this.enterOuterAlt(localctx, 52); + this.state = 1076; + this.create_credential(); + break; + + case 53: + this.enterOuterAlt(localctx, 53); + this.state = 1077; + this.create_cryptographic_provider(); + break; + + case 54: + this.enterOuterAlt(localctx, 54); + this.state = 1078; + this.create_database(); + break; + + case 55: + this.enterOuterAlt(localctx, 55); + this.state = 1079; + this.create_db_role(); + break; + + case 56: + this.enterOuterAlt(localctx, 56); + this.state = 1080; + this.create_event_notification(); + break; + + case 57: + this.enterOuterAlt(localctx, 57); + this.state = 1081; + this.create_external_library(); + break; + + case 58: + this.enterOuterAlt(localctx, 58); + this.state = 1082; + this.create_external_resource_pool(); + break; + + case 59: + this.enterOuterAlt(localctx, 59); + this.state = 1083; + this.create_fulltext_catalog(); + break; + + case 60: + this.enterOuterAlt(localctx, 60); + this.state = 1084; + this.create_fulltext_stoplist(); + break; + + case 61: + this.enterOuterAlt(localctx, 61); + this.state = 1085; + this.create_index(); + break; + + case 62: + this.enterOuterAlt(localctx, 62); + this.state = 1086; + this.create_login_azure_sql(); + break; + + case 63: + this.enterOuterAlt(localctx, 63); + this.state = 1087; + this.create_login_pdw(); + break; + + case 64: + this.enterOuterAlt(localctx, 64); + this.state = 1088; + this.create_login_sql_server(); + break; + + case 65: + this.enterOuterAlt(localctx, 65); + this.state = 1089; + this.create_master_key_azure_sql(); + break; + + case 66: + this.enterOuterAlt(localctx, 66); + this.state = 1090; + this.create_master_key_sql_server(); + break; + + case 67: + this.enterOuterAlt(localctx, 67); + this.state = 1091; + this.create_or_alter_broker_priority(); + break; + + case 68: + this.enterOuterAlt(localctx, 68); + this.state = 1092; + this.create_or_alter_function(); + break; + + case 69: + this.enterOuterAlt(localctx, 69); + this.state = 1093; + this.create_or_alter_procedure(); + break; + + case 70: + this.enterOuterAlt(localctx, 70); + this.state = 1094; + this.create_or_alter_trigger(); + break; + + case 71: + this.enterOuterAlt(localctx, 71); + this.state = 1095; + this.create_remote_service_binding(); + break; + + case 72: + this.enterOuterAlt(localctx, 72); + this.state = 1096; + this.create_resource_pool(); + break; + + case 73: + this.enterOuterAlt(localctx, 73); + this.state = 1097; + this.create_route(); + break; + + case 74: + this.enterOuterAlt(localctx, 74); + this.state = 1098; + this.create_rule(); + break; + + case 75: + this.enterOuterAlt(localctx, 75); + this.state = 1099; + this.create_schema(); + break; + + case 76: + this.enterOuterAlt(localctx, 76); + this.state = 1100; + this.create_schema_azure_sql_dw_and_pdw(); + break; + + case 77: + this.enterOuterAlt(localctx, 77); + this.state = 1101; + this.create_search_property_list(); + break; + + case 78: + this.enterOuterAlt(localctx, 78); + this.state = 1102; + this.create_security_policy(); + break; + + case 79: + this.enterOuterAlt(localctx, 79); + this.state = 1103; + this.create_sequence(); + break; + + case 80: + this.enterOuterAlt(localctx, 80); + this.state = 1104; + this.create_server_audit(); + break; + + case 81: + this.enterOuterAlt(localctx, 81); + this.state = 1105; + this.create_server_audit_specification(); + break; + + case 82: + this.enterOuterAlt(localctx, 82); + this.state = 1106; + this.create_server_role(); + break; + + case 83: + this.enterOuterAlt(localctx, 83); + this.state = 1107; + this.create_service(); + break; + + case 84: + this.enterOuterAlt(localctx, 84); + this.state = 1108; + this.create_statistics(); + break; + + case 85: + this.enterOuterAlt(localctx, 85); + this.state = 1109; + this.create_symmetric_key(); + break; + + case 86: + this.enterOuterAlt(localctx, 86); + this.state = 1110; + this.create_synonym(); + break; + + case 87: + this.enterOuterAlt(localctx, 87); + this.state = 1111; + this.create_table(); + break; + + case 88: + this.enterOuterAlt(localctx, 88); + this.state = 1112; + this.create_type(); + break; + + case 89: + this.enterOuterAlt(localctx, 89); + this.state = 1113; + this.create_user(); + break; + + case 90: + this.enterOuterAlt(localctx, 90); + this.state = 1114; + this.create_user_azure_sql_dw(); + break; + + case 91: + this.enterOuterAlt(localctx, 91); + this.state = 1115; + this.create_view(); + break; + + case 92: + this.enterOuterAlt(localctx, 92); + this.state = 1116; + this.create_workload_group(); + break; + + case 93: + this.enterOuterAlt(localctx, 93); + this.state = 1117; + this.create_xml_schema_collection(); + break; + + case 94: + this.enterOuterAlt(localctx, 94); + this.state = 1118; + this.drop_aggregate(); + break; + + case 95: + this.enterOuterAlt(localctx, 95); + this.state = 1119; + this.drop_application_role(); + break; + + case 96: + this.enterOuterAlt(localctx, 96); + this.state = 1120; + this.drop_assembly(); + break; + + case 97: + this.enterOuterAlt(localctx, 97); + this.state = 1121; + this.drop_asymmetric_key(); + break; + + case 98: + this.enterOuterAlt(localctx, 98); + this.state = 1122; + this.drop_availability_group(); + break; + + case 99: + this.enterOuterAlt(localctx, 99); + this.state = 1123; + this.drop_broker_priority(); + break; + + case 100: + this.enterOuterAlt(localctx, 100); + this.state = 1124; + this.drop_certificate(); + break; + + case 101: + this.enterOuterAlt(localctx, 101); + this.state = 1125; + this.drop_column_encryption_key(); + break; + + case 102: + this.enterOuterAlt(localctx, 102); + this.state = 1126; + this.drop_column_master_key(); + break; + + case 103: + this.enterOuterAlt(localctx, 103); + this.state = 1127; + this.drop_contract(); + break; + + case 104: + this.enterOuterAlt(localctx, 104); + this.state = 1128; + this.drop_credential(); + break; + + case 105: + this.enterOuterAlt(localctx, 105); + this.state = 1129; + this.drop_cryptograhic_provider(); + break; + + case 106: + this.enterOuterAlt(localctx, 106); + this.state = 1130; + this.drop_database(); + break; + + case 107: + this.enterOuterAlt(localctx, 107); + this.state = 1131; + this.drop_database_audit_specification(); + break; + + case 108: + this.enterOuterAlt(localctx, 108); + this.state = 1132; + this.drop_database_scoped_credential(); + break; + + case 109: + this.enterOuterAlt(localctx, 109); + this.state = 1133; + this.drop_db_role(); + break; + + case 110: + this.enterOuterAlt(localctx, 110); + this.state = 1134; + this.drop_default(); + break; + + case 111: + this.enterOuterAlt(localctx, 111); + this.state = 1135; + this.drop_endpoint(); + break; + + case 112: + this.enterOuterAlt(localctx, 112); + this.state = 1136; + this.drop_event_notifications(); + break; + + case 113: + this.enterOuterAlt(localctx, 113); + this.state = 1137; + this.drop_event_session(); + break; + + case 114: + this.enterOuterAlt(localctx, 114); + this.state = 1138; + this.drop_external_data_source(); + break; + + case 115: + this.enterOuterAlt(localctx, 115); + this.state = 1139; + this.drop_external_file_format(); + break; + + case 116: + this.enterOuterAlt(localctx, 116); + this.state = 1140; + this.drop_external_library(); + break; + + case 117: + this.enterOuterAlt(localctx, 117); + this.state = 1141; + this.drop_external_resource_pool(); + break; + + case 118: + this.enterOuterAlt(localctx, 118); + this.state = 1142; + this.drop_external_table(); + break; + + case 119: + this.enterOuterAlt(localctx, 119); + this.state = 1143; + this.drop_fulltext_catalog(); + break; + + case 120: + this.enterOuterAlt(localctx, 120); + this.state = 1144; + this.drop_fulltext_index(); + break; + + case 121: + this.enterOuterAlt(localctx, 121); + this.state = 1145; + this.drop_fulltext_stoplist(); + break; + + case 122: + this.enterOuterAlt(localctx, 122); + this.state = 1146; + this.drop_function(); + break; + + case 123: + this.enterOuterAlt(localctx, 123); + this.state = 1147; + this.drop_index(); + break; + + case 124: + this.enterOuterAlt(localctx, 124); + this.state = 1148; + this.drop_login(); + break; + + case 125: + this.enterOuterAlt(localctx, 125); + this.state = 1149; + this.drop_master_key(); + break; + + case 126: + this.enterOuterAlt(localctx, 126); + this.state = 1150; + this.drop_message_type(); + break; + + case 127: + this.enterOuterAlt(localctx, 127); + this.state = 1151; + this.drop_partition_function(); + break; + + case 128: + this.enterOuterAlt(localctx, 128); + this.state = 1152; + this.drop_partition_scheme(); + break; + + case 129: + this.enterOuterAlt(localctx, 129); + this.state = 1153; + this.drop_procedure(); + break; + + case 130: + this.enterOuterAlt(localctx, 130); + this.state = 1154; + this.drop_queue(); + break; + + case 131: + this.enterOuterAlt(localctx, 131); + this.state = 1155; + this.drop_remote_service_binding(); + break; + + case 132: + this.enterOuterAlt(localctx, 132); + this.state = 1156; + this.drop_resource_pool(); + break; + + case 133: + this.enterOuterAlt(localctx, 133); + this.state = 1157; + this.drop_route(); + break; + + case 134: + this.enterOuterAlt(localctx, 134); + this.state = 1158; + this.drop_rule(); + break; + + case 135: + this.enterOuterAlt(localctx, 135); + this.state = 1159; + this.drop_schema(); + break; + + case 136: + this.enterOuterAlt(localctx, 136); + this.state = 1160; + this.drop_search_property_list(); + break; + + case 137: + this.enterOuterAlt(localctx, 137); + this.state = 1161; + this.drop_security_policy(); + break; + + case 138: + this.enterOuterAlt(localctx, 138); + this.state = 1162; + this.drop_sequence(); + break; + + case 139: + this.enterOuterAlt(localctx, 139); + this.state = 1163; + this.drop_server_audit(); + break; + + case 140: + this.enterOuterAlt(localctx, 140); + this.state = 1164; + this.drop_server_audit_specification(); + break; + + case 141: + this.enterOuterAlt(localctx, 141); + this.state = 1165; + this.drop_server_role(); + break; + + case 142: + this.enterOuterAlt(localctx, 142); + this.state = 1166; + this.drop_service(); + break; + + case 143: + this.enterOuterAlt(localctx, 143); + this.state = 1167; + this.drop_signature(); + break; + + case 144: + this.enterOuterAlt(localctx, 144); + this.state = 1168; + this.drop_statistics(); + break; + + case 145: + this.enterOuterAlt(localctx, 145); + this.state = 1169; + this.drop_statistics_name_azure_dw_and_pdw(); + break; + + case 146: + this.enterOuterAlt(localctx, 146); + this.state = 1170; + this.drop_symmetric_key(); + break; + + case 147: + this.enterOuterAlt(localctx, 147); + this.state = 1171; + this.drop_synonym(); + break; + + case 148: + this.enterOuterAlt(localctx, 148); + this.state = 1172; + this.drop_table(); + break; + + case 149: + this.enterOuterAlt(localctx, 149); + this.state = 1173; + this.drop_trigger(); + break; + + case 150: + this.enterOuterAlt(localctx, 150); + this.state = 1174; + this.drop_type(); + break; + + case 151: + this.enterOuterAlt(localctx, 151); + this.state = 1175; + this.drop_user(); + break; + + case 152: + this.enterOuterAlt(localctx, 152); + this.state = 1176; + this.drop_view(); + break; + + case 153: + this.enterOuterAlt(localctx, 153); + this.state = 1177; + this.drop_workload_group(); + break; + + case 154: + this.enterOuterAlt(localctx, 154); + this.state = 1178; + this.drop_xml_schema_collection(); + break; + + case 155: + this.enterOuterAlt(localctx, 155); + this.state = 1179; + this.disable_trigger(); + break; + + case 156: + this.enterOuterAlt(localctx, 156); + this.state = 1180; + this.enable_trigger(); + break; + + case 157: + this.enterOuterAlt(localctx, 157); + this.state = 1181; + this.lock_table(); + break; + + case 158: + this.enterOuterAlt(localctx, 158); + this.state = 1182; + this.truncate_table(); + break; + + case 159: + this.enterOuterAlt(localctx, 159); + this.state = 1183; + this.update_statistics(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_statement; + return this; +} + +Backup_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_statementContext.prototype.constructor = Backup_statementContext; + +Backup_statementContext.prototype.backup_database = function() { + return this.getTypedRuleContext(Backup_databaseContext,0); +}; + +Backup_statementContext.prototype.backup_log = function() { + return this.getTypedRuleContext(Backup_logContext,0); +}; + +Backup_statementContext.prototype.backup_certificate = function() { + return this.getTypedRuleContext(Backup_certificateContext,0); +}; + +Backup_statementContext.prototype.backup_master_key = function() { + return this.getTypedRuleContext(Backup_master_keyContext,0); +}; + +Backup_statementContext.prototype.backup_service_master_key = function() { + return this.getTypedRuleContext(Backup_service_master_keyContext,0); +}; + +Backup_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_statement(this); + } +}; + +Backup_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_statement(this); + } +}; + +Backup_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_statementContext = Backup_statementContext; + +TSqlParser.prototype.backup_statement = function() { + + var localctx = new Backup_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 12, TSqlParser.RULE_backup_statement); + try { + this.state = 1191; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,10,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1186; + this.backup_database(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1187; + this.backup_log(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1188; + this.backup_certificate(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1189; + this.backup_master_key(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1190; + this.backup_service_master_key(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Cfl_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_cfl_statement; + return this; +} + +Cfl_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Cfl_statementContext.prototype.constructor = Cfl_statementContext; + +Cfl_statementContext.prototype.block_statement = function() { + return this.getTypedRuleContext(Block_statementContext,0); +}; + +Cfl_statementContext.prototype.break_statement = function() { + return this.getTypedRuleContext(Break_statementContext,0); +}; + +Cfl_statementContext.prototype.continue_statement = function() { + return this.getTypedRuleContext(Continue_statementContext,0); +}; + +Cfl_statementContext.prototype.goto_statement = function() { + return this.getTypedRuleContext(Goto_statementContext,0); +}; + +Cfl_statementContext.prototype.if_statement = function() { + return this.getTypedRuleContext(If_statementContext,0); +}; + +Cfl_statementContext.prototype.return_statement = function() { + return this.getTypedRuleContext(Return_statementContext,0); +}; + +Cfl_statementContext.prototype.throw_statement = function() { + return this.getTypedRuleContext(Throw_statementContext,0); +}; + +Cfl_statementContext.prototype.try_catch_statement = function() { + return this.getTypedRuleContext(Try_catch_statementContext,0); +}; + +Cfl_statementContext.prototype.waitfor_statement = function() { + return this.getTypedRuleContext(Waitfor_statementContext,0); +}; + +Cfl_statementContext.prototype.while_statement = function() { + return this.getTypedRuleContext(While_statementContext,0); +}; + +Cfl_statementContext.prototype.print_statement = function() { + return this.getTypedRuleContext(Print_statementContext,0); +}; + +Cfl_statementContext.prototype.raiseerror_statement = function() { + return this.getTypedRuleContext(Raiseerror_statementContext,0); +}; + +Cfl_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCfl_statement(this); + } +}; + +Cfl_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCfl_statement(this); + } +}; + +Cfl_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCfl_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Cfl_statementContext = Cfl_statementContext; + +TSqlParser.prototype.cfl_statement = function() { + + var localctx = new Cfl_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 14, TSqlParser.RULE_cfl_statement); + try { + this.state = 1205; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,11,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1193; + this.block_statement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1194; + this.break_statement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1195; + this.continue_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1196; + this.goto_statement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1197; + this.if_statement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1198; + this.return_statement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1199; + this.throw_statement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1200; + this.try_catch_statement(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1201; + this.waitfor_statement(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1202; + this.while_statement(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1203; + this.print_statement(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1204; + this.raiseerror_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Block_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_block_statement; + return this; +} + +Block_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Block_statementContext.prototype.constructor = Block_statementContext; + +Block_statementContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Block_statementContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +Block_statementContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEMI); + } else { + return this.getToken(TSqlParser.SEMI, i); + } +}; + + +Block_statementContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +Block_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBlock_statement(this); + } +}; + +Block_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBlock_statement(this); + } +}; + +Block_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBlock_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Block_statementContext = Block_statementContext; + +TSqlParser.prototype.block_statement = function() { + + var localctx = new Block_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 16, TSqlParser.RULE_block_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1207; + this.match(TSqlParser.BEGIN); + this.state = 1209; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,12,this._ctx); + if(la_===1) { + this.state = 1208; + this.match(TSqlParser.SEMI); + + } + this.state = 1212; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,13,this._ctx); + if(la_===1) { + this.state = 1211; + this.sql_clauses(); + + } + this.state = 1214; + this.match(TSqlParser.END); + this.state = 1216; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,14,this._ctx); + if(la_===1) { + this.state = 1215; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Break_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_break_statement; + return this; +} + +Break_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Break_statementContext.prototype.constructor = Break_statementContext; + +Break_statementContext.prototype.BREAK = function() { + return this.getToken(TSqlParser.BREAK, 0); +}; + +Break_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Break_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBreak_statement(this); + } +}; + +Break_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBreak_statement(this); + } +}; + +Break_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBreak_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Break_statementContext = Break_statementContext; + +TSqlParser.prototype.break_statement = function() { + + var localctx = new Break_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 18, TSqlParser.RULE_break_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1218; + this.match(TSqlParser.BREAK); + this.state = 1220; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,15,this._ctx); + if(la_===1) { + this.state = 1219; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Continue_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_continue_statement; + return this; +} + +Continue_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Continue_statementContext.prototype.constructor = Continue_statementContext; + +Continue_statementContext.prototype.CONTINUE = function() { + return this.getToken(TSqlParser.CONTINUE, 0); +}; + +Continue_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Continue_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterContinue_statement(this); + } +}; + +Continue_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitContinue_statement(this); + } +}; + +Continue_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitContinue_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Continue_statementContext = Continue_statementContext; + +TSqlParser.prototype.continue_statement = function() { + + var localctx = new Continue_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 20, TSqlParser.RULE_continue_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1222; + this.match(TSqlParser.CONTINUE); + this.state = 1224; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,16,this._ctx); + if(la_===1) { + this.state = 1223; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Goto_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_goto_statement; + return this; +} + +Goto_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Goto_statementContext.prototype.constructor = Goto_statementContext; + +Goto_statementContext.prototype.GOTO = function() { + return this.getToken(TSqlParser.GOTO, 0); +}; + +Goto_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Goto_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Goto_statementContext.prototype.COLON = function() { + return this.getToken(TSqlParser.COLON, 0); +}; + +Goto_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGoto_statement(this); + } +}; + +Goto_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGoto_statement(this); + } +}; + +Goto_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGoto_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Goto_statementContext = Goto_statementContext; + +TSqlParser.prototype.goto_statement = function() { + + var localctx = new Goto_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 22, TSqlParser.RULE_goto_statement); + try { + this.state = 1236; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.GOTO: + this.enterOuterAlt(localctx, 1); + this.state = 1226; + this.match(TSqlParser.GOTO); + this.state = 1227; + this.id(); + this.state = 1229; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,17,this._ctx); + if(la_===1) { + this.state = 1228; + this.match(TSqlParser.SEMI); + + } + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 2); + this.state = 1231; + this.id(); + this.state = 1232; + this.match(TSqlParser.COLON); + this.state = 1234; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,18,this._ctx); + if(la_===1) { + this.state = 1233; + this.match(TSqlParser.SEMI); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Return_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_return_statement; + return this; +} + +Return_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Return_statementContext.prototype.constructor = Return_statementContext; + +Return_statementContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Return_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Return_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Return_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterReturn_statement(this); + } +}; + +Return_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitReturn_statement(this); + } +}; + +Return_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitReturn_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Return_statementContext = Return_statementContext; + +TSqlParser.prototype.return_statement = function() { + + var localctx = new Return_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 24, TSqlParser.RULE_return_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1238; + this.match(TSqlParser.RETURN); + this.state = 1240; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,20,this._ctx); + if(la_===1) { + this.state = 1239; + this.expression(0); + + } + this.state = 1243; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,21,this._ctx); + if(la_===1) { + this.state = 1242; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function If_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_if_statement; + return this; +} + +If_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +If_statementContext.prototype.constructor = If_statementContext; + +If_statementContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +If_statementContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +If_statementContext.prototype.sql_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clauseContext); + } else { + return this.getTypedRuleContext(Sql_clauseContext,i); + } +}; + +If_statementContext.prototype.ELSE = function() { + return this.getToken(TSqlParser.ELSE, 0); +}; + +If_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +If_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIf_statement(this); + } +}; + +If_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIf_statement(this); + } +}; + +If_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIf_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.If_statementContext = If_statementContext; + +TSqlParser.prototype.if_statement = function() { + + var localctx = new If_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 26, TSqlParser.RULE_if_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1245; + this.match(TSqlParser.IF); + this.state = 1246; + this.search_condition(); + this.state = 1247; + this.sql_clause(); + this.state = 1250; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,22,this._ctx); + if(la_===1) { + this.state = 1248; + this.match(TSqlParser.ELSE); + this.state = 1249; + this.sql_clause(); + + } + this.state = 1253; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,23,this._ctx); + if(la_===1) { + this.state = 1252; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Throw_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_throw_statement; + return this; +} + +Throw_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Throw_statementContext.prototype.constructor = Throw_statementContext; + +Throw_statementContext.prototype.THROW = function() { + return this.getToken(TSqlParser.THROW, 0); +}; + +Throw_statementContext.prototype.throw_error_number = function() { + return this.getTypedRuleContext(Throw_error_numberContext,0); +}; + +Throw_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Throw_statementContext.prototype.throw_message = function() { + return this.getTypedRuleContext(Throw_messageContext,0); +}; + +Throw_statementContext.prototype.throw_state = function() { + return this.getTypedRuleContext(Throw_stateContext,0); +}; + +Throw_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Throw_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterThrow_statement(this); + } +}; + +Throw_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitThrow_statement(this); + } +}; + +Throw_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitThrow_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Throw_statementContext = Throw_statementContext; + +TSqlParser.prototype.throw_statement = function() { + + var localctx = new Throw_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 28, TSqlParser.RULE_throw_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1255; + this.match(TSqlParser.THROW); + this.state = 1262; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,24,this._ctx); + if(la_===1) { + this.state = 1256; + this.throw_error_number(); + this.state = 1257; + this.match(TSqlParser.COMMA); + this.state = 1258; + this.throw_message(); + this.state = 1259; + this.match(TSqlParser.COMMA); + this.state = 1260; + this.throw_state(); + + } + this.state = 1265; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,25,this._ctx); + if(la_===1) { + this.state = 1264; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Throw_error_numberContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_throw_error_number; + return this; +} + +Throw_error_numberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Throw_error_numberContext.prototype.constructor = Throw_error_numberContext; + +Throw_error_numberContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Throw_error_numberContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Throw_error_numberContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterThrow_error_number(this); + } +}; + +Throw_error_numberContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitThrow_error_number(this); + } +}; + +Throw_error_numberContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitThrow_error_number(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Throw_error_numberContext = Throw_error_numberContext; + +TSqlParser.prototype.throw_error_number = function() { + + var localctx = new Throw_error_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 30, TSqlParser.RULE_throw_error_number); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1267; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Throw_messageContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_throw_message; + return this; +} + +Throw_messageContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Throw_messageContext.prototype.constructor = Throw_messageContext; + +Throw_messageContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Throw_messageContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Throw_messageContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterThrow_message(this); + } +}; + +Throw_messageContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitThrow_message(this); + } +}; + +Throw_messageContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitThrow_message(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Throw_messageContext = Throw_messageContext; + +TSqlParser.prototype.throw_message = function() { + + var localctx = new Throw_messageContext(this, this._ctx, this.state); + this.enterRule(localctx, 32, TSqlParser.RULE_throw_message); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1269; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Throw_stateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_throw_state; + return this; +} + +Throw_stateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Throw_stateContext.prototype.constructor = Throw_stateContext; + +Throw_stateContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Throw_stateContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Throw_stateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterThrow_state(this); + } +}; + +Throw_stateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitThrow_state(this); + } +}; + +Throw_stateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitThrow_state(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Throw_stateContext = Throw_stateContext; + +TSqlParser.prototype.throw_state = function() { + + var localctx = new Throw_stateContext(this, this._ctx, this.state); + this.enterRule(localctx, 34, TSqlParser.RULE_throw_state); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1271; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Try_catch_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_try_catch_statement; + this.try_clauses = null; // Sql_clausesContext + this.catch_clauses = null; // Sql_clausesContext + return this; +} + +Try_catch_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Try_catch_statementContext.prototype.constructor = Try_catch_statementContext; + +Try_catch_statementContext.prototype.BEGIN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BEGIN); + } else { + return this.getToken(TSqlParser.BEGIN, i); + } +}; + + +Try_catch_statementContext.prototype.TRY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TRY); + } else { + return this.getToken(TSqlParser.TRY, i); + } +}; + + +Try_catch_statementContext.prototype.END = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.END); + } else { + return this.getToken(TSqlParser.END, i); + } +}; + + +Try_catch_statementContext.prototype.CATCH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CATCH); + } else { + return this.getToken(TSqlParser.CATCH, i); + } +}; + + +Try_catch_statementContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEMI); + } else { + return this.getToken(TSqlParser.SEMI, i); + } +}; + + +Try_catch_statementContext.prototype.sql_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clausesContext); + } else { + return this.getTypedRuleContext(Sql_clausesContext,i); + } +}; + +Try_catch_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTry_catch_statement(this); + } +}; + +Try_catch_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTry_catch_statement(this); + } +}; + +Try_catch_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTry_catch_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Try_catch_statementContext = Try_catch_statementContext; + +TSqlParser.prototype.try_catch_statement = function() { + + var localctx = new Try_catch_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 36, TSqlParser.RULE_try_catch_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1273; + this.match(TSqlParser.BEGIN); + this.state = 1274; + this.match(TSqlParser.TRY); + this.state = 1276; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,26,this._ctx); + if(la_===1) { + this.state = 1275; + this.match(TSqlParser.SEMI); + + } + this.state = 1279; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,27,this._ctx); + if(la_===1) { + this.state = 1278; + localctx.try_clauses = this.sql_clauses(); + + } + this.state = 1281; + this.match(TSqlParser.END); + this.state = 1282; + this.match(TSqlParser.TRY); + this.state = 1284; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEMI) { + this.state = 1283; + this.match(TSqlParser.SEMI); + } + + this.state = 1286; + this.match(TSqlParser.BEGIN); + this.state = 1287; + this.match(TSqlParser.CATCH); + this.state = 1289; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,29,this._ctx); + if(la_===1) { + this.state = 1288; + this.match(TSqlParser.SEMI); + + } + this.state = 1292; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,30,this._ctx); + if(la_===1) { + this.state = 1291; + localctx.catch_clauses = this.sql_clauses(); + + } + this.state = 1294; + this.match(TSqlParser.END); + this.state = 1295; + this.match(TSqlParser.CATCH); + this.state = 1297; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,31,this._ctx); + if(la_===1) { + this.state = 1296; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Waitfor_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_waitfor_statement; + return this; +} + +Waitfor_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Waitfor_statementContext.prototype.constructor = Waitfor_statementContext; + +Waitfor_statementContext.prototype.WAITFOR = function() { + return this.getToken(TSqlParser.WAITFOR, 0); +}; + +Waitfor_statementContext.prototype.receive_statement = function() { + return this.getTypedRuleContext(Receive_statementContext,0); +}; + +Waitfor_statementContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Waitfor_statementContext.prototype.time = function() { + return this.getTypedRuleContext(TimeContext,0); +}; + +Waitfor_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Waitfor_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Waitfor_statementContext.prototype.DELAY = function() { + return this.getToken(TSqlParser.DELAY, 0); +}; + +Waitfor_statementContext.prototype.TIME = function() { + return this.getToken(TSqlParser.TIME, 0); +}; + +Waitfor_statementContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Waitfor_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWaitfor_statement(this); + } +}; + +Waitfor_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWaitfor_statement(this); + } +}; + +Waitfor_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWaitfor_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Waitfor_statementContext = Waitfor_statementContext; + +TSqlParser.prototype.waitfor_statement = function() { + + var localctx = new Waitfor_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 38, TSqlParser.RULE_waitfor_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1299; + this.match(TSqlParser.WAITFOR); + this.state = 1301; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,32,this._ctx); + if(la_===1) { + this.state = 1300; + this.receive_statement(); + + } + this.state = 1304; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1303; + this.match(TSqlParser.COMMA); + } + + this.state = 1308; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,34,this._ctx); + if(la_===1) { + this.state = 1306; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELAY || _la===TSqlParser.TIME || _la===TSqlParser.TIMEOUT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1307; + this.time(); + + } + this.state = 1311; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,35,this._ctx); + if(la_===1) { + this.state = 1310; + this.expression(0); + + } + this.state = 1314; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,36,this._ctx); + if(la_===1) { + this.state = 1313; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function While_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_while_statement; + return this; +} + +While_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +While_statementContext.prototype.constructor = While_statementContext; + +While_statementContext.prototype.WHILE = function() { + return this.getToken(TSqlParser.WHILE, 0); +}; + +While_statementContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +While_statementContext.prototype.sql_clause = function() { + return this.getTypedRuleContext(Sql_clauseContext,0); +}; + +While_statementContext.prototype.BREAK = function() { + return this.getToken(TSqlParser.BREAK, 0); +}; + +While_statementContext.prototype.CONTINUE = function() { + return this.getToken(TSqlParser.CONTINUE, 0); +}; + +While_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +While_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWhile_statement(this); + } +}; + +While_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWhile_statement(this); + } +}; + +While_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWhile_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.While_statementContext = While_statementContext; + +TSqlParser.prototype.while_statement = function() { + + var localctx = new While_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 40, TSqlParser.RULE_while_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1316; + this.match(TSqlParser.WHILE); + this.state = 1317; + this.search_condition(); + this.state = 1327; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,39,this._ctx); + switch(la_) { + case 1: + this.state = 1318; + this.sql_clause(); + break; + + case 2: + this.state = 1319; + this.match(TSqlParser.BREAK); + this.state = 1321; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,37,this._ctx); + if(la_===1) { + this.state = 1320; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.state = 1323; + this.match(TSqlParser.CONTINUE); + this.state = 1325; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,38,this._ctx); + if(la_===1) { + this.state = 1324; + this.match(TSqlParser.SEMI); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Print_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_print_statement; + return this; +} + +Print_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Print_statementContext.prototype.constructor = Print_statementContext; + +Print_statementContext.prototype.PRINT = function() { + return this.getToken(TSqlParser.PRINT, 0); +}; + +Print_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Print_statementContext.prototype.DOUBLE_QUOTE_ID = function() { + return this.getToken(TSqlParser.DOUBLE_QUOTE_ID, 0); +}; + +Print_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Print_statementContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Print_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Print_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPrint_statement(this); + } +}; + +Print_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPrint_statement(this); + } +}; + +Print_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPrint_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Print_statementContext = Print_statementContext; + +TSqlParser.prototype.print_statement = function() { + + var localctx = new Print_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 42, TSqlParser.RULE_print_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1329; + this.match(TSqlParser.PRINT); + this.state = 1332; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,40,this._ctx); + switch(la_) { + case 1: + this.state = 1330; + this.expression(0); + break; + + case 2: + this.state = 1331; + this.match(TSqlParser.DOUBLE_QUOTE_ID); + break; + + } + this.state = 1338; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 1334; + this.match(TSqlParser.COMMA); + this.state = 1335; + this.match(TSqlParser.LOCAL_ID); + this.state = 1340; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1342; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,42,this._ctx); + if(la_===1) { + this.state = 1341; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Raiseerror_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_raiseerror_statement; + this.msg = null; // Token + this.severity = null; // Constant_LOCAL_IDContext + this.state = null; // Constant_LOCAL_IDContext + this.formatstring = null; // Token + this.argument = null; // Token + return this; +} + +Raiseerror_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Raiseerror_statementContext.prototype.constructor = Raiseerror_statementContext; + +Raiseerror_statementContext.prototype.RAISERROR = function() { + return this.getToken(TSqlParser.RAISERROR, 0); +}; + +Raiseerror_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Raiseerror_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Raiseerror_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Raiseerror_statementContext.prototype.constant_LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Constant_LOCAL_IDContext); + } else { + return this.getTypedRuleContext(Constant_LOCAL_IDContext,i); + } +}; + +Raiseerror_statementContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Raiseerror_statementContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Raiseerror_statementContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Raiseerror_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Raiseerror_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Raiseerror_statementContext.prototype.LOG = function() { + return this.getToken(TSqlParser.LOG, 0); +}; + +Raiseerror_statementContext.prototype.SETERROR = function() { + return this.getToken(TSqlParser.SETERROR, 0); +}; + +Raiseerror_statementContext.prototype.DOUBLE_QUOTE_ID = function() { + return this.getToken(TSqlParser.DOUBLE_QUOTE_ID, 0); +}; + +Raiseerror_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRaiseerror_statement(this); + } +}; + +Raiseerror_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRaiseerror_statement(this); + } +}; + +Raiseerror_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRaiseerror_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Raiseerror_statementContext = Raiseerror_statementContext; + +TSqlParser.prototype.raiseerror_statement = function() { + + var localctx = new Raiseerror_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 44, TSqlParser.RULE_raiseerror_statement); + var _la = 0; // Token type + try { + this.state = 1376; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,47,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1344; + this.match(TSqlParser.RAISERROR); + this.state = 1345; + this.match(TSqlParser.LR_BRACKET); + this.state = 1346; + localctx.msg = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 799)) & ~0x1f) == 0 && ((1 << (_la - 799)) & ((1 << (TSqlParser.LOCAL_ID - 799)) | (1 << (TSqlParser.DECIMAL - 799)) | (1 << (TSqlParser.STRING - 799)))) !== 0))) { + localctx.msg = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1347; + this.match(TSqlParser.COMMA); + this.state = 1348; + localctx.severity = this.constant_LOCAL_ID(); + this.state = 1349; + this.match(TSqlParser.COMMA); + this.state = 1350; + localctx.state = this.constant_LOCAL_ID(); + this.state = 1355; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 1351; + this.match(TSqlParser.COMMA); + this.state = 1352; + this.constant_LOCAL_ID(); + this.state = 1357; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1358; + this.match(TSqlParser.RR_BRACKET); + this.state = 1361; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,44,this._ctx); + if(la_===1) { + this.state = 1359; + this.match(TSqlParser.WITH); + this.state = 1360; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOG || _la===TSqlParser.SETERROR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 1364; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,45,this._ctx); + if(la_===1) { + this.state = 1363; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1366; + this.match(TSqlParser.RAISERROR); + this.state = 1367; + this.match(TSqlParser.DECIMAL); + this.state = 1368; + localctx.formatstring = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.LOCAL_ID - 796)) | (1 << (TSqlParser.STRING - 796)))) !== 0))) { + localctx.formatstring = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1373; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 1369; + this.match(TSqlParser.COMMA); + this.state = 1370; + localctx.argument = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 799)) & ~0x1f) == 0 && ((1 << (_la - 799)) & ((1 << (TSqlParser.LOCAL_ID - 799)) | (1 << (TSqlParser.DECIMAL - 799)) | (1 << (TSqlParser.STRING - 799)))) !== 0))) { + localctx.argument = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1375; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Empty_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_empty_statement; + return this; +} + +Empty_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Empty_statementContext.prototype.constructor = Empty_statementContext; + +Empty_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Empty_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEmpty_statement(this); + } +}; + +Empty_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEmpty_statement(this); + } +}; + +Empty_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEmpty_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Empty_statementContext = Empty_statementContext; + +TSqlParser.prototype.empty_statement = function() { + + var localctx = new Empty_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, TSqlParser.RULE_empty_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1378; + this.match(TSqlParser.SEMI); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Another_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_another_statement; + return this; +} + +Another_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Another_statementContext.prototype.constructor = Another_statementContext; + +Another_statementContext.prototype.declare_statement = function() { + return this.getTypedRuleContext(Declare_statementContext,0); +}; + +Another_statementContext.prototype.cursor_statement = function() { + return this.getTypedRuleContext(Cursor_statementContext,0); +}; + +Another_statementContext.prototype.conversation_statement = function() { + return this.getTypedRuleContext(Conversation_statementContext,0); +}; + +Another_statementContext.prototype.create_contract = function() { + return this.getTypedRuleContext(Create_contractContext,0); +}; + +Another_statementContext.prototype.create_queue = function() { + return this.getTypedRuleContext(Create_queueContext,0); +}; + +Another_statementContext.prototype.alter_queue = function() { + return this.getTypedRuleContext(Alter_queueContext,0); +}; + +Another_statementContext.prototype.execute_statement = function() { + return this.getTypedRuleContext(Execute_statementContext,0); +}; + +Another_statementContext.prototype.kill_statement = function() { + return this.getTypedRuleContext(Kill_statementContext,0); +}; + +Another_statementContext.prototype.message_statement = function() { + return this.getTypedRuleContext(Message_statementContext,0); +}; + +Another_statementContext.prototype.security_statement = function() { + return this.getTypedRuleContext(Security_statementContext,0); +}; + +Another_statementContext.prototype.set_statement = function() { + return this.getTypedRuleContext(Set_statementContext,0); +}; + +Another_statementContext.prototype.transaction_statement = function() { + return this.getTypedRuleContext(Transaction_statementContext,0); +}; + +Another_statementContext.prototype.use_statement = function() { + return this.getTypedRuleContext(Use_statementContext,0); +}; + +Another_statementContext.prototype.setuser_statement = function() { + return this.getTypedRuleContext(Setuser_statementContext,0); +}; + +Another_statementContext.prototype.reconfigure_statement = function() { + return this.getTypedRuleContext(Reconfigure_statementContext,0); +}; + +Another_statementContext.prototype.shutdown_statement = function() { + return this.getTypedRuleContext(Shutdown_statementContext,0); +}; + +Another_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAnother_statement(this); + } +}; + +Another_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAnother_statement(this); + } +}; + +Another_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAnother_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Another_statementContext = Another_statementContext; + +TSqlParser.prototype.another_statement = function() { + + var localctx = new Another_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 48, TSqlParser.RULE_another_statement); + try { + this.state = 1396; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,48,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1380; + this.declare_statement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1381; + this.cursor_statement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1382; + this.conversation_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1383; + this.create_contract(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1384; + this.create_queue(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1385; + this.alter_queue(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1386; + this.execute_statement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1387; + this.kill_statement(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1388; + this.message_statement(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1389; + this.security_statement(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1390; + this.set_statement(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1391; + this.transaction_statement(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 1392; + this.use_statement(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 1393; + this.setuser_statement(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 1394; + this.reconfigure_statement(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 1395; + this.shutdown_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_application_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_application_role; + this.appliction_role = null; // IdContext + this.new_application_role_name = null; // IdContext + this.application_role_password = null; // Token + this.app_role_default_schema = null; // IdContext + return this; +} + +Alter_application_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_application_roleContext.prototype.constructor = Alter_application_roleContext; + +Alter_application_roleContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_application_roleContext.prototype.APPLICATION = function() { + return this.getToken(TSqlParser.APPLICATION, 0); +}; + +Alter_application_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_application_roleContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_application_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_application_roleContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_application_roleContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_application_roleContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_application_roleContext.prototype.DEFAULT_SCHEMA = function() { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, 0); +}; + +Alter_application_roleContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_application_roleContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_application_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_application_role(this); + } +}; + +Alter_application_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_application_role(this); + } +}; + +Alter_application_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_application_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_application_roleContext = Alter_application_roleContext; + +TSqlParser.prototype.alter_application_role = function() { + + var localctx = new Alter_application_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 50, TSqlParser.RULE_alter_application_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1398; + this.match(TSqlParser.ALTER); + this.state = 1399; + this.match(TSqlParser.APPLICATION); + this.state = 1400; + this.match(TSqlParser.ROLE); + this.state = 1401; + localctx.appliction_role = this.id(); + this.state = 1402; + this.match(TSqlParser.WITH); + this.state = 1409; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,50,this._ctx); + if(la_===1) { + this.state = 1404; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1403; + this.match(TSqlParser.COMMA); + } + + this.state = 1406; + this.match(TSqlParser.NAME); + this.state = 1407; + this.match(TSqlParser.EQUAL); + this.state = 1408; + localctx.new_application_role_name = this.id(); + + } + this.state = 1417; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,52,this._ctx); + if(la_===1) { + this.state = 1412; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1411; + this.match(TSqlParser.COMMA); + } + + this.state = 1414; + this.match(TSqlParser.PASSWORD); + this.state = 1415; + this.match(TSqlParser.EQUAL); + this.state = 1416; + localctx.application_role_password = this.match(TSqlParser.STRING); + + } + this.state = 1425; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DEFAULT_SCHEMA || _la===TSqlParser.COMMA) { + this.state = 1420; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1419; + this.match(TSqlParser.COMMA); + } + + this.state = 1422; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 1423; + this.match(TSqlParser.EQUAL); + this.state = 1424; + localctx.app_role_default_schema = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_application_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_application_role; + this.appliction_role = null; // IdContext + this.application_role_password = null; // Token + this.app_role_default_schema = null; // IdContext + return this; +} + +Create_application_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_application_roleContext.prototype.constructor = Create_application_roleContext; + +Create_application_roleContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_application_roleContext.prototype.APPLICATION = function() { + return this.getToken(TSqlParser.APPLICATION, 0); +}; + +Create_application_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Create_application_roleContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_application_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_application_roleContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_application_roleContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_application_roleContext.prototype.DEFAULT_SCHEMA = function() { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, 0); +}; + +Create_application_roleContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_application_roleContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_application_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_application_role(this); + } +}; + +Create_application_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_application_role(this); + } +}; + +Create_application_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_application_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_application_roleContext = Create_application_roleContext; + +TSqlParser.prototype.create_application_role = function() { + + var localctx = new Create_application_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 52, TSqlParser.RULE_create_application_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1427; + this.match(TSqlParser.CREATE); + this.state = 1428; + this.match(TSqlParser.APPLICATION); + this.state = 1429; + this.match(TSqlParser.ROLE); + this.state = 1430; + localctx.appliction_role = this.id(); + this.state = 1431; + this.match(TSqlParser.WITH); + this.state = 1438; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,56,this._ctx); + if(la_===1) { + this.state = 1433; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1432; + this.match(TSqlParser.COMMA); + } + + this.state = 1435; + this.match(TSqlParser.PASSWORD); + this.state = 1436; + this.match(TSqlParser.EQUAL); + this.state = 1437; + localctx.application_role_password = this.match(TSqlParser.STRING); + + } + this.state = 1446; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DEFAULT_SCHEMA || _la===TSqlParser.COMMA) { + this.state = 1441; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1440; + this.match(TSqlParser.COMMA); + } + + this.state = 1443; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 1444; + this.match(TSqlParser.EQUAL); + this.state = 1445; + localctx.app_role_default_schema = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_aggregateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_aggregate; + this.schema_name = null; // IdContext + this.aggregate_name = null; // IdContext + return this; +} + +Drop_aggregateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_aggregateContext.prototype.constructor = Drop_aggregateContext; + +Drop_aggregateContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_aggregateContext.prototype.AGGREGATE = function() { + return this.getToken(TSqlParser.AGGREGATE, 0); +}; + +Drop_aggregateContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_aggregateContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_aggregateContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_aggregateContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_aggregateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_aggregate(this); + } +}; + +Drop_aggregateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_aggregate(this); + } +}; + +Drop_aggregateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_aggregate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_aggregateContext = Drop_aggregateContext; + +TSqlParser.prototype.drop_aggregate = function() { + + var localctx = new Drop_aggregateContext(this, this._ctx, this.state); + this.enterRule(localctx, 54, TSqlParser.RULE_drop_aggregate); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1448; + this.match(TSqlParser.DROP); + this.state = 1449; + this.match(TSqlParser.AGGREGATE); + this.state = 1452; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 1450; + this.match(TSqlParser.IF); + this.state = 1451; + this.match(TSqlParser.EXISTS); + } + + this.state = 1457; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,60,this._ctx); + if(la_===1) { + this.state = 1454; + localctx.schema_name = this.id(); + this.state = 1455; + this.match(TSqlParser.DOT); + + } + this.state = 1459; + localctx.aggregate_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_application_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_application_role; + this.rolename = null; // IdContext + return this; +} + +Drop_application_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_application_roleContext.prototype.constructor = Drop_application_roleContext; + +Drop_application_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_application_roleContext.prototype.APPLICATION = function() { + return this.getToken(TSqlParser.APPLICATION, 0); +}; + +Drop_application_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Drop_application_roleContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_application_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_application_role(this); + } +}; + +Drop_application_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_application_role(this); + } +}; + +Drop_application_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_application_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_application_roleContext = Drop_application_roleContext; + +TSqlParser.prototype.drop_application_role = function() { + + var localctx = new Drop_application_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 56, TSqlParser.RULE_drop_application_role); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1461; + this.match(TSqlParser.DROP); + this.state = 1462; + this.match(TSqlParser.APPLICATION); + this.state = 1463; + this.match(TSqlParser.ROLE); + this.state = 1464; + localctx.rolename = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assemblyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly; + this.assembly_name = null; // IdContext + return this; +} + +Alter_assemblyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assemblyContext.prototype.constructor = Alter_assemblyContext; + +Alter_assemblyContext.prototype.alter_assembly_start = function() { + return this.getTypedRuleContext(Alter_assembly_startContext,0); +}; + +Alter_assemblyContext.prototype.alter_assembly_clause = function() { + return this.getTypedRuleContext(Alter_assembly_clauseContext,0); +}; + +Alter_assemblyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_assemblyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly(this); + } +}; + +Alter_assemblyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly(this); + } +}; + +Alter_assemblyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assemblyContext = Alter_assemblyContext; + +TSqlParser.prototype.alter_assembly = function() { + + var localctx = new Alter_assemblyContext(this, this._ctx, this.state); + this.enterRule(localctx, 58, TSqlParser.RULE_alter_assembly); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1466; + this.alter_assembly_start(); + this.state = 1467; + localctx.assembly_name = this.id(); + this.state = 1468; + this.alter_assembly_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_start; + return this; +} + +Alter_assembly_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_startContext.prototype.constructor = Alter_assembly_startContext; + +Alter_assembly_startContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_assembly_startContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Alter_assembly_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_start(this); + } +}; + +Alter_assembly_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_start(this); + } +}; + +Alter_assembly_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_startContext = Alter_assembly_startContext; + +TSqlParser.prototype.alter_assembly_start = function() { + + var localctx = new Alter_assembly_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 60, TSqlParser.RULE_alter_assembly_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1470; + this.match(TSqlParser.ALTER); + this.state = 1471; + this.match(TSqlParser.ASSEMBLY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_clause; + return this; +} + +Alter_assembly_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_clauseContext.prototype.constructor = Alter_assembly_clauseContext; + +Alter_assembly_clauseContext.prototype.alter_assembly_from_clause = function() { + return this.getTypedRuleContext(Alter_assembly_from_clauseContext,0); +}; + +Alter_assembly_clauseContext.prototype.alter_assembly_with_clause = function() { + return this.getTypedRuleContext(Alter_assembly_with_clauseContext,0); +}; + +Alter_assembly_clauseContext.prototype.alter_assembly_drop_clause = function() { + return this.getTypedRuleContext(Alter_assembly_drop_clauseContext,0); +}; + +Alter_assembly_clauseContext.prototype.alter_assembly_add_clause = function() { + return this.getTypedRuleContext(Alter_assembly_add_clauseContext,0); +}; + +Alter_assembly_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_clause(this); + } +}; + +Alter_assembly_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_clause(this); + } +}; + +Alter_assembly_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_clauseContext = Alter_assembly_clauseContext; + +TSqlParser.prototype.alter_assembly_clause = function() { + + var localctx = new Alter_assembly_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 62, TSqlParser.RULE_alter_assembly_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1474; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 1473; + this.alter_assembly_from_clause(); + } + + this.state = 1477; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,62,this._ctx); + if(la_===1) { + this.state = 1476; + this.alter_assembly_with_clause(); + + } + this.state = 1480; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,63,this._ctx); + if(la_===1) { + this.state = 1479; + this.alter_assembly_drop_clause(); + + } + this.state = 1483; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ADD) { + this.state = 1482; + this.alter_assembly_add_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_from_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_from_clause; + return this; +} + +Alter_assembly_from_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_from_clauseContext.prototype.constructor = Alter_assembly_from_clauseContext; + +Alter_assembly_from_clauseContext.prototype.alter_assembly_from_clause_start = function() { + return this.getTypedRuleContext(Alter_assembly_from_clause_startContext,0); +}; + +Alter_assembly_from_clauseContext.prototype.client_assembly_specifier = function() { + return this.getTypedRuleContext(Client_assembly_specifierContext,0); +}; + +Alter_assembly_from_clauseContext.prototype.alter_assembly_file_bits = function() { + return this.getTypedRuleContext(Alter_assembly_file_bitsContext,0); +}; + +Alter_assembly_from_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_from_clause(this); + } +}; + +Alter_assembly_from_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_from_clause(this); + } +}; + +Alter_assembly_from_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_from_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_from_clauseContext = Alter_assembly_from_clauseContext; + +TSqlParser.prototype.alter_assembly_from_clause = function() { + + var localctx = new Alter_assembly_from_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 64, TSqlParser.RULE_alter_assembly_from_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1485; + this.alter_assembly_from_clause_start(); + this.state = 1488; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DOUBLE_BACK_SLASH: + case TSqlParser.DISK_DRIVE: + case TSqlParser.STRING: + this.state = 1486; + this.client_assembly_specifier(); + break; + case TSqlParser.AS: + this.state = 1487; + this.alter_assembly_file_bits(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_from_clause_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_from_clause_start; + return this; +} + +Alter_assembly_from_clause_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_from_clause_startContext.prototype.constructor = Alter_assembly_from_clause_startContext; + +Alter_assembly_from_clause_startContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Alter_assembly_from_clause_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_from_clause_start(this); + } +}; + +Alter_assembly_from_clause_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_from_clause_start(this); + } +}; + +Alter_assembly_from_clause_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_from_clause_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_from_clause_startContext = Alter_assembly_from_clause_startContext; + +TSqlParser.prototype.alter_assembly_from_clause_start = function() { + + var localctx = new Alter_assembly_from_clause_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 66, TSqlParser.RULE_alter_assembly_from_clause_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1490; + this.match(TSqlParser.FROM); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_drop_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_drop_clause; + return this; +} + +Alter_assembly_drop_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_drop_clauseContext.prototype.constructor = Alter_assembly_drop_clauseContext; + +Alter_assembly_drop_clauseContext.prototype.alter_assembly_drop = function() { + return this.getTypedRuleContext(Alter_assembly_dropContext,0); +}; + +Alter_assembly_drop_clauseContext.prototype.alter_assembly_drop_multiple_files = function() { + return this.getTypedRuleContext(Alter_assembly_drop_multiple_filesContext,0); +}; + +Alter_assembly_drop_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_drop_clause(this); + } +}; + +Alter_assembly_drop_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_drop_clause(this); + } +}; + +Alter_assembly_drop_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_drop_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_drop_clauseContext = Alter_assembly_drop_clauseContext; + +TSqlParser.prototype.alter_assembly_drop_clause = function() { + + var localctx = new Alter_assembly_drop_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 68, TSqlParser.RULE_alter_assembly_drop_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1492; + this.alter_assembly_drop(); + this.state = 1493; + this.alter_assembly_drop_multiple_files(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_drop_multiple_filesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_drop_multiple_files; + return this; +} + +Alter_assembly_drop_multiple_filesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_drop_multiple_filesContext.prototype.constructor = Alter_assembly_drop_multiple_filesContext; + +Alter_assembly_drop_multiple_filesContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Alter_assembly_drop_multiple_filesContext.prototype.multiple_local_files = function() { + return this.getTypedRuleContext(Multiple_local_filesContext,0); +}; + +Alter_assembly_drop_multiple_filesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_drop_multiple_files(this); + } +}; + +Alter_assembly_drop_multiple_filesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_drop_multiple_files(this); + } +}; + +Alter_assembly_drop_multiple_filesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_drop_multiple_files(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_drop_multiple_filesContext = Alter_assembly_drop_multiple_filesContext; + +TSqlParser.prototype.alter_assembly_drop_multiple_files = function() { + + var localctx = new Alter_assembly_drop_multiple_filesContext(this, this._ctx, this.state); + this.enterRule(localctx, 70, TSqlParser.RULE_alter_assembly_drop_multiple_files); + try { + this.state = 1497; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.enterOuterAlt(localctx, 1); + this.state = 1495; + this.match(TSqlParser.ALL); + break; + case TSqlParser.DISK_DRIVE: + case TSqlParser.SINGLE_QUOTE: + this.enterOuterAlt(localctx, 2); + this.state = 1496; + this.multiple_local_files(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_dropContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_drop; + return this; +} + +Alter_assembly_dropContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_dropContext.prototype.constructor = Alter_assembly_dropContext; + +Alter_assembly_dropContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_assembly_dropContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_drop(this); + } +}; + +Alter_assembly_dropContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_drop(this); + } +}; + +Alter_assembly_dropContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_drop(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_dropContext = Alter_assembly_dropContext; + +TSqlParser.prototype.alter_assembly_drop = function() { + + var localctx = new Alter_assembly_dropContext(this, this._ctx, this.state); + this.enterRule(localctx, 72, TSqlParser.RULE_alter_assembly_drop); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1499; + this.match(TSqlParser.DROP); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_add_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_add_clause; + return this; +} + +Alter_assembly_add_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_add_clauseContext.prototype.constructor = Alter_assembly_add_clauseContext; + +Alter_assembly_add_clauseContext.prototype.alter_asssembly_add_clause_start = function() { + return this.getTypedRuleContext(Alter_asssembly_add_clause_startContext,0); +}; + +Alter_assembly_add_clauseContext.prototype.alter_assembly_client_file_clause = function() { + return this.getTypedRuleContext(Alter_assembly_client_file_clauseContext,0); +}; + +Alter_assembly_add_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_add_clause(this); + } +}; + +Alter_assembly_add_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_add_clause(this); + } +}; + +Alter_assembly_add_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_add_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_add_clauseContext = Alter_assembly_add_clauseContext; + +TSqlParser.prototype.alter_assembly_add_clause = function() { + + var localctx = new Alter_assembly_add_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 74, TSqlParser.RULE_alter_assembly_add_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1501; + this.alter_asssembly_add_clause_start(); + this.state = 1502; + this.alter_assembly_client_file_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_asssembly_add_clause_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_asssembly_add_clause_start; + return this; +} + +Alter_asssembly_add_clause_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_asssembly_add_clause_startContext.prototype.constructor = Alter_asssembly_add_clause_startContext; + +Alter_asssembly_add_clause_startContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_asssembly_add_clause_startContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Alter_asssembly_add_clause_startContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Alter_asssembly_add_clause_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_asssembly_add_clause_start(this); + } +}; + +Alter_asssembly_add_clause_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_asssembly_add_clause_start(this); + } +}; + +Alter_asssembly_add_clause_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_asssembly_add_clause_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_asssembly_add_clause_startContext = Alter_asssembly_add_clause_startContext; + +TSqlParser.prototype.alter_asssembly_add_clause_start = function() { + + var localctx = new Alter_asssembly_add_clause_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 76, TSqlParser.RULE_alter_asssembly_add_clause_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1504; + this.match(TSqlParser.ADD); + this.state = 1505; + this.match(TSqlParser.FILE); + this.state = 1506; + this.match(TSqlParser.FROM); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_client_file_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_client_file_clause; + return this; +} + +Alter_assembly_client_file_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_client_file_clauseContext.prototype.constructor = Alter_assembly_client_file_clauseContext; + +Alter_assembly_client_file_clauseContext.prototype.alter_assembly_file_name = function() { + return this.getTypedRuleContext(Alter_assembly_file_nameContext,0); +}; + +Alter_assembly_client_file_clauseContext.prototype.alter_assembly_as = function() { + return this.getTypedRuleContext(Alter_assembly_asContext,0); +}; + +Alter_assembly_client_file_clauseContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_assembly_client_file_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_client_file_clause(this); + } +}; + +Alter_assembly_client_file_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_client_file_clause(this); + } +}; + +Alter_assembly_client_file_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_client_file_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_client_file_clauseContext = Alter_assembly_client_file_clauseContext; + +TSqlParser.prototype.alter_assembly_client_file_clause = function() { + + var localctx = new Alter_assembly_client_file_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 78, TSqlParser.RULE_alter_assembly_client_file_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1508; + this.alter_assembly_file_name(); + this.state = 1512; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 1509; + this.alter_assembly_as(); + this.state = 1510; + this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_file_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_file_name; + return this; +} + +Alter_assembly_file_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_file_nameContext.prototype.constructor = Alter_assembly_file_nameContext; + +Alter_assembly_file_nameContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_assembly_file_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_file_name(this); + } +}; + +Alter_assembly_file_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_file_name(this); + } +}; + +Alter_assembly_file_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_file_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_file_nameContext = Alter_assembly_file_nameContext; + +TSqlParser.prototype.alter_assembly_file_name = function() { + + var localctx = new Alter_assembly_file_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 80, TSqlParser.RULE_alter_assembly_file_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1514; + this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_file_bitsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_file_bits; + return this; +} + +Alter_assembly_file_bitsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_file_bitsContext.prototype.constructor = Alter_assembly_file_bitsContext; + +Alter_assembly_file_bitsContext.prototype.alter_assembly_as = function() { + return this.getTypedRuleContext(Alter_assembly_asContext,0); +}; + +Alter_assembly_file_bitsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_assembly_file_bitsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_file_bits(this); + } +}; + +Alter_assembly_file_bitsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_file_bits(this); + } +}; + +Alter_assembly_file_bitsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_file_bits(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_file_bitsContext = Alter_assembly_file_bitsContext; + +TSqlParser.prototype.alter_assembly_file_bits = function() { + + var localctx = new Alter_assembly_file_bitsContext(this, this._ctx, this.state); + this.enterRule(localctx, 82, TSqlParser.RULE_alter_assembly_file_bits); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1516; + this.alter_assembly_as(); + this.state = 1517; + this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_asContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_as; + return this; +} + +Alter_assembly_asContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_asContext.prototype.constructor = Alter_assembly_asContext; + +Alter_assembly_asContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Alter_assembly_asContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_as(this); + } +}; + +Alter_assembly_asContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_as(this); + } +}; + +Alter_assembly_asContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_as(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_asContext = Alter_assembly_asContext; + +TSqlParser.prototype.alter_assembly_as = function() { + + var localctx = new Alter_assembly_asContext(this, this._ctx, this.state); + this.enterRule(localctx, 84, TSqlParser.RULE_alter_assembly_as); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1519; + this.match(TSqlParser.AS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_with_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_with_clause; + return this; +} + +Alter_assembly_with_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_with_clauseContext.prototype.constructor = Alter_assembly_with_clauseContext; + +Alter_assembly_with_clauseContext.prototype.alter_assembly_with = function() { + return this.getTypedRuleContext(Alter_assembly_withContext,0); +}; + +Alter_assembly_with_clauseContext.prototype.assembly_option = function() { + return this.getTypedRuleContext(Assembly_optionContext,0); +}; + +Alter_assembly_with_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_with_clause(this); + } +}; + +Alter_assembly_with_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_with_clause(this); + } +}; + +Alter_assembly_with_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_with_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_with_clauseContext = Alter_assembly_with_clauseContext; + +TSqlParser.prototype.alter_assembly_with_clause = function() { + + var localctx = new Alter_assembly_with_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 86, TSqlParser.RULE_alter_assembly_with_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1521; + this.alter_assembly_with(); + this.state = 1522; + this.assembly_option(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_withContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_with; + return this; +} + +Alter_assembly_withContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_withContext.prototype.constructor = Alter_assembly_withContext; + +Alter_assembly_withContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_assembly_withContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_with(this); + } +}; + +Alter_assembly_withContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_with(this); + } +}; + +Alter_assembly_withContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_with(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_withContext = Alter_assembly_withContext; + +TSqlParser.prototype.alter_assembly_with = function() { + + var localctx = new Alter_assembly_withContext(this, this._ctx, this.state); + this.enterRule(localctx, 88, TSqlParser.RULE_alter_assembly_with); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1524; + this.match(TSqlParser.WITH); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Client_assembly_specifierContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_client_assembly_specifier; + return this; +} + +Client_assembly_specifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Client_assembly_specifierContext.prototype.constructor = Client_assembly_specifierContext; + +Client_assembly_specifierContext.prototype.network_file_share = function() { + return this.getTypedRuleContext(Network_file_shareContext,0); +}; + +Client_assembly_specifierContext.prototype.local_file = function() { + return this.getTypedRuleContext(Local_fileContext,0); +}; + +Client_assembly_specifierContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Client_assembly_specifierContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClient_assembly_specifier(this); + } +}; + +Client_assembly_specifierContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClient_assembly_specifier(this); + } +}; + +Client_assembly_specifierContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClient_assembly_specifier(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Client_assembly_specifierContext = Client_assembly_specifierContext; + +TSqlParser.prototype.client_assembly_specifier = function() { + + var localctx = new Client_assembly_specifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 90, TSqlParser.RULE_client_assembly_specifier); + try { + this.state = 1529; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DOUBLE_BACK_SLASH: + this.enterOuterAlt(localctx, 1); + this.state = 1526; + this.network_file_share(); + break; + case TSqlParser.DISK_DRIVE: + this.enterOuterAlt(localctx, 2); + this.state = 1527; + this.local_file(); + break; + case TSqlParser.STRING: + this.enterOuterAlt(localctx, 3); + this.state = 1528; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Assembly_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_assembly_option; + return this; +} + +Assembly_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Assembly_optionContext.prototype.constructor = Assembly_optionContext; + +Assembly_optionContext.prototype.PERMISSION_SET = function() { + return this.getToken(TSqlParser.PERMISSION_SET, 0); +}; + +Assembly_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Assembly_optionContext.prototype.SAFE = function() { + return this.getToken(TSqlParser.SAFE, 0); +}; + +Assembly_optionContext.prototype.EXTERNAL_ACCESS = function() { + return this.getToken(TSqlParser.EXTERNAL_ACCESS, 0); +}; + +Assembly_optionContext.prototype.UNSAFE = function() { + return this.getToken(TSqlParser.UNSAFE, 0); +}; + +Assembly_optionContext.prototype.VISIBILITY = function() { + return this.getToken(TSqlParser.VISIBILITY, 0); +}; + +Assembly_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Assembly_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Assembly_optionContext.prototype.UNCHECKED = function() { + return this.getToken(TSqlParser.UNCHECKED, 0); +}; + +Assembly_optionContext.prototype.DATA = function() { + return this.getToken(TSqlParser.DATA, 0); +}; + +Assembly_optionContext.prototype.assembly_option = function() { + return this.getTypedRuleContext(Assembly_optionContext,0); +}; + +Assembly_optionContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Assembly_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAssembly_option(this); + } +}; + +Assembly_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAssembly_option(this); + } +}; + +Assembly_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAssembly_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +TSqlParser.prototype.assembly_option = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new Assembly_optionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 92; + this.enterRecursionRule(localctx, 92, TSqlParser.RULE_assembly_option, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1540; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PERMISSION_SET: + this.state = 1532; + this.match(TSqlParser.PERMISSION_SET); + this.state = 1533; + this.match(TSqlParser.EQUAL); + this.state = 1534; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EXTERNAL_ACCESS || _la===TSqlParser.SAFE || _la===TSqlParser.UNSAFE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.VISIBILITY: + this.state = 1535; + this.match(TSqlParser.VISIBILITY); + this.state = 1536; + this.match(TSqlParser.EQUAL); + this.state = 1537; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.UNCHECKED: + this.state = 1538; + this.match(TSqlParser.UNCHECKED); + this.state = 1539; + this.match(TSqlParser.DATA); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1546; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,70,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new Assembly_optionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_assembly_option); + this.state = 1542; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 1543; + this.match(TSqlParser.COMMA); + } + this.state = 1548; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,70,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function Network_file_shareContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_network_file_share; + return this; +} + +Network_file_shareContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Network_file_shareContext.prototype.constructor = Network_file_shareContext; + +Network_file_shareContext.prototype.network_file_start = function() { + return this.getTypedRuleContext(Network_file_startContext,0); +}; + +Network_file_shareContext.prototype.network_computer = function() { + return this.getTypedRuleContext(Network_computerContext,0); +}; + +Network_file_shareContext.prototype.file_path = function() { + return this.getTypedRuleContext(File_pathContext,0); +}; + +Network_file_shareContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNetwork_file_share(this); + } +}; + +Network_file_shareContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNetwork_file_share(this); + } +}; + +Network_file_shareContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNetwork_file_share(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Network_file_shareContext = Network_file_shareContext; + +TSqlParser.prototype.network_file_share = function() { + + var localctx = new Network_file_shareContext(this, this._ctx, this.state); + this.enterRule(localctx, 94, TSqlParser.RULE_network_file_share); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1549; + this.network_file_start(); + this.state = 1550; + this.network_computer(); + this.state = 1551; + this.file_path(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Network_computerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_network_computer; + this.computer_name = null; // IdContext + return this; +} + +Network_computerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Network_computerContext.prototype.constructor = Network_computerContext; + +Network_computerContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Network_computerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNetwork_computer(this); + } +}; + +Network_computerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNetwork_computer(this); + } +}; + +Network_computerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNetwork_computer(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Network_computerContext = Network_computerContext; + +TSqlParser.prototype.network_computer = function() { + + var localctx = new Network_computerContext(this, this._ctx, this.state); + this.enterRule(localctx, 96, TSqlParser.RULE_network_computer); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1553; + localctx.computer_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Network_file_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_network_file_start; + return this; +} + +Network_file_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Network_file_startContext.prototype.constructor = Network_file_startContext; + +Network_file_startContext.prototype.DOUBLE_BACK_SLASH = function() { + return this.getToken(TSqlParser.DOUBLE_BACK_SLASH, 0); +}; + +Network_file_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNetwork_file_start(this); + } +}; + +Network_file_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNetwork_file_start(this); + } +}; + +Network_file_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNetwork_file_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Network_file_startContext = Network_file_startContext; + +TSqlParser.prototype.network_file_start = function() { + + var localctx = new Network_file_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 98, TSqlParser.RULE_network_file_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1555; + this.match(TSqlParser.DOUBLE_BACK_SLASH); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_pathContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_path; + return this; +} + +File_pathContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_pathContext.prototype.constructor = File_pathContext; + +File_pathContext.prototype.file_directory_path_separator = function() { + return this.getTypedRuleContext(File_directory_path_separatorContext,0); +}; + +File_pathContext.prototype.file_path = function() { + return this.getTypedRuleContext(File_pathContext,0); +}; + +File_pathContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +File_pathContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_path(this); + } +}; + +File_pathContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_path(this); + } +}; + +File_pathContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_path(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_pathContext = File_pathContext; + +TSqlParser.prototype.file_path = function() { + + var localctx = new File_pathContext(this, this._ctx, this.state); + this.enterRule(localctx, 100, TSqlParser.RULE_file_path); + try { + this.state = 1561; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BACKSLASH: + this.enterOuterAlt(localctx, 1); + this.state = 1557; + this.file_directory_path_separator(); + this.state = 1558; + this.file_path(); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 2); + this.state = 1560; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_directory_path_separatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_directory_path_separator; + return this; +} + +File_directory_path_separatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_directory_path_separatorContext.prototype.constructor = File_directory_path_separatorContext; + +File_directory_path_separatorContext.prototype.BACKSLASH = function() { + return this.getToken(TSqlParser.BACKSLASH, 0); +}; + +File_directory_path_separatorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_directory_path_separator(this); + } +}; + +File_directory_path_separatorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_directory_path_separator(this); + } +}; + +File_directory_path_separatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_directory_path_separator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_directory_path_separatorContext = File_directory_path_separatorContext; + +TSqlParser.prototype.file_directory_path_separator = function() { + + var localctx = new File_directory_path_separatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 102, TSqlParser.RULE_file_directory_path_separator); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1563; + this.match(TSqlParser.BACKSLASH); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Local_fileContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_local_file; + return this; +} + +Local_fileContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Local_fileContext.prototype.constructor = Local_fileContext; + +Local_fileContext.prototype.local_drive = function() { + return this.getTypedRuleContext(Local_driveContext,0); +}; + +Local_fileContext.prototype.file_path = function() { + return this.getTypedRuleContext(File_pathContext,0); +}; + +Local_fileContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterLocal_file(this); + } +}; + +Local_fileContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitLocal_file(this); + } +}; + +Local_fileContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitLocal_file(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Local_fileContext = Local_fileContext; + +TSqlParser.prototype.local_file = function() { + + var localctx = new Local_fileContext(this, this._ctx, this.state); + this.enterRule(localctx, 104, TSqlParser.RULE_local_file); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1565; + this.local_drive(); + this.state = 1566; + this.file_path(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Local_driveContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_local_drive; + return this; +} + +Local_driveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Local_driveContext.prototype.constructor = Local_driveContext; + +Local_driveContext.prototype.DISK_DRIVE = function() { + return this.getToken(TSqlParser.DISK_DRIVE, 0); +}; + +Local_driveContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterLocal_drive(this); + } +}; + +Local_driveContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitLocal_drive(this); + } +}; + +Local_driveContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitLocal_drive(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Local_driveContext = Local_driveContext; + +TSqlParser.prototype.local_drive = function() { + + var localctx = new Local_driveContext(this, this._ctx, this.state); + this.enterRule(localctx, 106, TSqlParser.RULE_local_drive); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1568; + this.match(TSqlParser.DISK_DRIVE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Multiple_local_filesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_multiple_local_files; + return this; +} + +Multiple_local_filesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Multiple_local_filesContext.prototype.constructor = Multiple_local_filesContext; + +Multiple_local_filesContext.prototype.multiple_local_file_start = function() { + return this.getTypedRuleContext(Multiple_local_file_startContext,0); +}; + +Multiple_local_filesContext.prototype.local_file = function() { + return this.getTypedRuleContext(Local_fileContext,0); +}; + +Multiple_local_filesContext.prototype.SINGLE_QUOTE = function() { + return this.getToken(TSqlParser.SINGLE_QUOTE, 0); +}; + +Multiple_local_filesContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Multiple_local_filesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMultiple_local_files(this); + } +}; + +Multiple_local_filesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMultiple_local_files(this); + } +}; + +Multiple_local_filesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMultiple_local_files(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Multiple_local_filesContext = Multiple_local_filesContext; + +TSqlParser.prototype.multiple_local_files = function() { + + var localctx = new Multiple_local_filesContext(this, this._ctx, this.state); + this.enterRule(localctx, 108, TSqlParser.RULE_multiple_local_files); + try { + this.state = 1576; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SINGLE_QUOTE: + this.enterOuterAlt(localctx, 1); + this.state = 1570; + this.multiple_local_file_start(); + this.state = 1571; + this.local_file(); + this.state = 1572; + this.match(TSqlParser.SINGLE_QUOTE); + this.state = 1573; + this.match(TSqlParser.COMMA); + break; + case TSqlParser.DISK_DRIVE: + this.enterOuterAlt(localctx, 2); + this.state = 1575; + this.local_file(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Multiple_local_file_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_multiple_local_file_start; + return this; +} + +Multiple_local_file_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Multiple_local_file_startContext.prototype.constructor = Multiple_local_file_startContext; + +Multiple_local_file_startContext.prototype.SINGLE_QUOTE = function() { + return this.getToken(TSqlParser.SINGLE_QUOTE, 0); +}; + +Multiple_local_file_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMultiple_local_file_start(this); + } +}; + +Multiple_local_file_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMultiple_local_file_start(this); + } +}; + +Multiple_local_file_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMultiple_local_file_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Multiple_local_file_startContext = Multiple_local_file_startContext; + +TSqlParser.prototype.multiple_local_file_start = function() { + + var localctx = new Multiple_local_file_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 110, TSqlParser.RULE_multiple_local_file_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1578; + this.match(TSqlParser.SINGLE_QUOTE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_assemblyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_assembly; + this.assembly_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_assemblyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_assemblyContext.prototype.constructor = Create_assemblyContext; + +Create_assemblyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_assemblyContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Create_assemblyContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_assemblyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_assemblyContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_assemblyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_assemblyContext.prototype.PERMISSION_SET = function() { + return this.getToken(TSqlParser.PERMISSION_SET, 0); +}; + +Create_assemblyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_assemblyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_assemblyContext.prototype.BINARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BINARY); + } else { + return this.getToken(TSqlParser.BINARY, i); + } +}; + + +Create_assemblyContext.prototype.SAFE = function() { + return this.getToken(TSqlParser.SAFE, 0); +}; + +Create_assemblyContext.prototype.EXTERNAL_ACCESS = function() { + return this.getToken(TSqlParser.EXTERNAL_ACCESS, 0); +}; + +Create_assemblyContext.prototype.UNSAFE = function() { + return this.getToken(TSqlParser.UNSAFE, 0); +}; + +Create_assemblyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_assemblyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_assembly(this); + } +}; + +Create_assemblyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_assembly(this); + } +}; + +Create_assemblyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_assembly(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_assemblyContext = Create_assemblyContext; + +TSqlParser.prototype.create_assembly = function() { + + var localctx = new Create_assemblyContext(this, this._ctx, this.state); + this.enterRule(localctx, 112, TSqlParser.RULE_create_assembly); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1580; + this.match(TSqlParser.CREATE); + this.state = 1581; + this.match(TSqlParser.ASSEMBLY); + this.state = 1582; + localctx.assembly_name = this.id(); + this.state = 1585; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 1583; + this.match(TSqlParser.AUTHORIZATION); + this.state = 1584; + localctx.owner_name = this.id(); + } + + this.state = 1587; + this.match(TSqlParser.FROM); + this.state = 1592; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 1589; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1588; + this.match(TSqlParser.COMMA); + } + + this.state = 1591; + _la = this._input.LA(1); + if(!(_la===TSqlParser.STRING || _la===TSqlParser.BINARY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1594; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,75, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 1600; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,76,this._ctx); + if(la_===1) { + this.state = 1596; + this.match(TSqlParser.WITH); + this.state = 1597; + this.match(TSqlParser.PERMISSION_SET); + this.state = 1598; + this.match(TSqlParser.EQUAL); + this.state = 1599; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EXTERNAL_ACCESS || _la===TSqlParser.SAFE || _la===TSqlParser.UNSAFE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_assemblyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_assembly; + this.assembly_name = null; // IdContext + return this; +} + +Drop_assemblyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_assemblyContext.prototype.constructor = Drop_assemblyContext; + +Drop_assemblyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_assemblyContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Drop_assemblyContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_assemblyContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_assemblyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Drop_assemblyContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +Drop_assemblyContext.prototype.DEPENDENTS = function() { + return this.getToken(TSqlParser.DEPENDENTS, 0); +}; + +Drop_assemblyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_assemblyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_assemblyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_assembly(this); + } +}; + +Drop_assemblyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_assembly(this); + } +}; + +Drop_assemblyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_assembly(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_assemblyContext = Drop_assemblyContext; + +TSqlParser.prototype.drop_assembly = function() { + + var localctx = new Drop_assemblyContext(this, this._ctx, this.state); + this.enterRule(localctx, 114, TSqlParser.RULE_drop_assembly); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1602; + this.match(TSqlParser.DROP); + this.state = 1603; + this.match(TSqlParser.ASSEMBLY); + this.state = 1606; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 1604; + this.match(TSqlParser.IF); + this.state = 1605; + this.match(TSqlParser.EXISTS); + } + + this.state = 1612; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 1609; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1608; + this.match(TSqlParser.COMMA); + } + + this.state = 1611; + localctx.assembly_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1614; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,79, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 1619; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,80,this._ctx); + if(la_===1) { + this.state = 1616; + this.match(TSqlParser.WITH); + this.state = 1617; + this.match(TSqlParser.NO); + this.state = 1618; + this.match(TSqlParser.DEPENDENTS); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_asymmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_asymmetric_key; + this.Asym_Key_Name = null; // IdContext + return this; +} + +Alter_asymmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_asymmetric_keyContext.prototype.constructor = Alter_asymmetric_keyContext; + +Alter_asymmetric_keyContext.prototype.alter_asymmetric_key_start = function() { + return this.getTypedRuleContext(Alter_asymmetric_key_startContext,0); +}; + +Alter_asymmetric_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_asymmetric_keyContext.prototype.asymmetric_key_option = function() { + return this.getTypedRuleContext(Asymmetric_key_optionContext,0); +}; + +Alter_asymmetric_keyContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Alter_asymmetric_keyContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Alter_asymmetric_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_asymmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_asymmetric_key(this); + } +}; + +Alter_asymmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_asymmetric_key(this); + } +}; + +Alter_asymmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_asymmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_asymmetric_keyContext = Alter_asymmetric_keyContext; + +TSqlParser.prototype.alter_asymmetric_key = function() { + + var localctx = new Alter_asymmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 116, TSqlParser.RULE_alter_asymmetric_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1621; + this.alter_asymmetric_key_start(); + this.state = 1622; + localctx.Asym_Key_Name = this.id(); + this.state = 1627; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 1623; + this.asymmetric_key_option(); + break; + case TSqlParser.REMOVE: + this.state = 1624; + this.match(TSqlParser.REMOVE); + this.state = 1625; + this.match(TSqlParser.PRIVATE); + this.state = 1626; + this.match(TSqlParser.KEY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_asymmetric_key_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_asymmetric_key_start; + return this; +} + +Alter_asymmetric_key_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_asymmetric_key_startContext.prototype.constructor = Alter_asymmetric_key_startContext; + +Alter_asymmetric_key_startContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_asymmetric_key_startContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Alter_asymmetric_key_startContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_asymmetric_key_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_asymmetric_key_start(this); + } +}; + +Alter_asymmetric_key_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_asymmetric_key_start(this); + } +}; + +Alter_asymmetric_key_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_asymmetric_key_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_asymmetric_key_startContext = Alter_asymmetric_key_startContext; + +TSqlParser.prototype.alter_asymmetric_key_start = function() { + + var localctx = new Alter_asymmetric_key_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 118, TSqlParser.RULE_alter_asymmetric_key_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1629; + this.match(TSqlParser.ALTER); + this.state = 1630; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1631; + this.match(TSqlParser.KEY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Asymmetric_key_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_asymmetric_key_option; + return this; +} + +Asymmetric_key_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Asymmetric_key_optionContext.prototype.constructor = Asymmetric_key_optionContext; + +Asymmetric_key_optionContext.prototype.asymmetric_key_option_start = function() { + return this.getTypedRuleContext(Asymmetric_key_option_startContext,0); +}; + +Asymmetric_key_optionContext.prototype.asymmetric_key_password_change_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Asymmetric_key_password_change_optionContext); + } else { + return this.getTypedRuleContext(Asymmetric_key_password_change_optionContext,i); + } +}; + +Asymmetric_key_optionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Asymmetric_key_optionContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Asymmetric_key_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAsymmetric_key_option(this); + } +}; + +Asymmetric_key_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAsymmetric_key_option(this); + } +}; + +Asymmetric_key_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAsymmetric_key_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Asymmetric_key_optionContext = Asymmetric_key_optionContext; + +TSqlParser.prototype.asymmetric_key_option = function() { + + var localctx = new Asymmetric_key_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 120, TSqlParser.RULE_asymmetric_key_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1633; + this.asymmetric_key_option_start(); + this.state = 1634; + this.asymmetric_key_password_change_option(); + this.state = 1637; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1635; + this.match(TSqlParser.COMMA); + this.state = 1636; + this.asymmetric_key_password_change_option(); + } + + this.state = 1639; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Asymmetric_key_option_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_asymmetric_key_option_start; + return this; +} + +Asymmetric_key_option_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Asymmetric_key_option_startContext.prototype.constructor = Asymmetric_key_option_startContext; + +Asymmetric_key_option_startContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Asymmetric_key_option_startContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Asymmetric_key_option_startContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Asymmetric_key_option_startContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Asymmetric_key_option_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAsymmetric_key_option_start(this); + } +}; + +Asymmetric_key_option_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAsymmetric_key_option_start(this); + } +}; + +Asymmetric_key_option_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAsymmetric_key_option_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Asymmetric_key_option_startContext = Asymmetric_key_option_startContext; + +TSqlParser.prototype.asymmetric_key_option_start = function() { + + var localctx = new Asymmetric_key_option_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 122, TSqlParser.RULE_asymmetric_key_option_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1641; + this.match(TSqlParser.WITH); + this.state = 1642; + this.match(TSqlParser.PRIVATE); + this.state = 1643; + this.match(TSqlParser.KEY); + this.state = 1644; + this.match(TSqlParser.LR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Asymmetric_key_password_change_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_asymmetric_key_password_change_option; + return this; +} + +Asymmetric_key_password_change_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Asymmetric_key_password_change_optionContext.prototype.constructor = Asymmetric_key_password_change_optionContext; + +Asymmetric_key_password_change_optionContext.prototype.DECRYPTION = function() { + return this.getToken(TSqlParser.DECRYPTION, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAsymmetric_key_password_change_option(this); + } +}; + +Asymmetric_key_password_change_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAsymmetric_key_password_change_option(this); + } +}; + +Asymmetric_key_password_change_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAsymmetric_key_password_change_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Asymmetric_key_password_change_optionContext = Asymmetric_key_password_change_optionContext; + +TSqlParser.prototype.asymmetric_key_password_change_option = function() { + + var localctx = new Asymmetric_key_password_change_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 124, TSqlParser.RULE_asymmetric_key_password_change_option); + try { + this.state = 1656; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECRYPTION: + this.enterOuterAlt(localctx, 1); + this.state = 1646; + this.match(TSqlParser.DECRYPTION); + this.state = 1647; + this.match(TSqlParser.BY); + this.state = 1648; + this.match(TSqlParser.PASSWORD); + this.state = 1649; + this.match(TSqlParser.EQUAL); + this.state = 1650; + this.match(TSqlParser.STRING); + break; + case TSqlParser.ENCRYPTION: + this.enterOuterAlt(localctx, 2); + this.state = 1651; + this.match(TSqlParser.ENCRYPTION); + this.state = 1652; + this.match(TSqlParser.BY); + this.state = 1653; + this.match(TSqlParser.PASSWORD); + this.state = 1654; + this.match(TSqlParser.EQUAL); + this.state = 1655; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_asymmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_asymmetric_key; + this.Asym_Key_Nam = null; // IdContext + this.database_principal_name = null; // IdContext + this.Assembly_Name = null; // IdContext + this.Provider_Name = null; // IdContext + this.provider_key_name = null; // Token + this.asymmetric_key_password = null; // Token + return this; +} + +Create_asymmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_asymmetric_keyContext.prototype.constructor = Create_asymmetric_keyContext; + +Create_asymmetric_keyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_asymmetric_keyContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Create_asymmetric_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_asymmetric_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_asymmetric_keyContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_asymmetric_keyContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_asymmetric_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_asymmetric_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_asymmetric_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_asymmetric_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_asymmetric_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_asymmetric_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_asymmetric_keyContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Create_asymmetric_keyContext.prototype.EXECUTABLE_FILE = function() { + return this.getToken(TSqlParser.EXECUTABLE_FILE, 0); +}; + +Create_asymmetric_keyContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Create_asymmetric_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_asymmetric_keyContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Create_asymmetric_keyContext.prototype.PROVIDER_KEY_NAME = function() { + return this.getToken(TSqlParser.PROVIDER_KEY_NAME, 0); +}; + +Create_asymmetric_keyContext.prototype.CREATION_DISPOSITION = function() { + return this.getToken(TSqlParser.CREATION_DISPOSITION, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_4096 = function() { + return this.getToken(TSqlParser.RSA_4096, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_3072 = function() { + return this.getToken(TSqlParser.RSA_3072, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_2048 = function() { + return this.getToken(TSqlParser.RSA_2048, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_1024 = function() { + return this.getToken(TSqlParser.RSA_1024, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_512 = function() { + return this.getToken(TSqlParser.RSA_512, 0); +}; + +Create_asymmetric_keyContext.prototype.CREATE_NEW = function() { + return this.getToken(TSqlParser.CREATE_NEW, 0); +}; + +Create_asymmetric_keyContext.prototype.OPEN_EXISTING = function() { + return this.getToken(TSqlParser.OPEN_EXISTING, 0); +}; + +Create_asymmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_asymmetric_key(this); + } +}; + +Create_asymmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_asymmetric_key(this); + } +}; + +Create_asymmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_asymmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_asymmetric_keyContext = Create_asymmetric_keyContext; + +TSqlParser.prototype.create_asymmetric_key = function() { + + var localctx = new Create_asymmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 126, TSqlParser.RULE_create_asymmetric_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1658; + this.match(TSqlParser.CREATE); + this.state = 1659; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1660; + this.match(TSqlParser.KEY); + this.state = 1661; + localctx.Asym_Key_Nam = this.id(); + this.state = 1664; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 1662; + this.match(TSqlParser.AUTHORIZATION); + this.state = 1663; + localctx.database_principal_name = this.id(); + } + + this.state = 1679; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 1666; + this.match(TSqlParser.FROM); + this.state = 1677; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILE: + this.state = 1667; + this.match(TSqlParser.FILE); + this.state = 1668; + this.match(TSqlParser.EQUAL); + this.state = 1669; + this.match(TSqlParser.STRING); + break; + case TSqlParser.EXECUTABLE_FILE: + this.state = 1670; + this.match(TSqlParser.EXECUTABLE_FILE); + this.state = 1671; + this.match(TSqlParser.EQUAL); + this.state = 1672; + this.match(TSqlParser.STRING); + break; + case TSqlParser.ASSEMBLY: + this.state = 1673; + this.match(TSqlParser.ASSEMBLY); + this.state = 1674; + localctx.Assembly_Name = this.id(); + break; + case TSqlParser.PROVIDER: + this.state = 1675; + this.match(TSqlParser.PROVIDER); + this.state = 1676; + localctx.Provider_Name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 1693; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,88,this._ctx); + if(la_===1) { + this.state = 1681; + this.match(TSqlParser.WITH); + this.state = 1691; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALGORITHM: + this.state = 1682; + this.match(TSqlParser.ALGORITHM); + this.state = 1683; + this.match(TSqlParser.EQUAL); + this.state = 1684; + _la = this._input.LA(1); + if(!(((((_la - 290)) & ~0x1f) == 0 && ((1 << (_la - 290)) & ((1 << (TSqlParser.RSA_512 - 290)) | (1 << (TSqlParser.RSA_1024 - 290)) | (1 << (TSqlParser.RSA_2048 - 290)) | (1 << (TSqlParser.RSA_3072 - 290)) | (1 << (TSqlParser.RSA_4096 - 290)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.PROVIDER_KEY_NAME: + this.state = 1685; + this.match(TSqlParser.PROVIDER_KEY_NAME); + this.state = 1686; + this.match(TSqlParser.EQUAL); + this.state = 1687; + localctx.provider_key_name = this.match(TSqlParser.STRING); + break; + case TSqlParser.CREATION_DISPOSITION: + this.state = 1688; + this.match(TSqlParser.CREATION_DISPOSITION); + this.state = 1689; + this.match(TSqlParser.EQUAL); + this.state = 1690; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CREATE_NEW || _la===TSqlParser.OPEN_EXISTING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 1700; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,89,this._ctx); + if(la_===1) { + this.state = 1695; + this.match(TSqlParser.ENCRYPTION); + this.state = 1696; + this.match(TSqlParser.BY); + this.state = 1697; + this.match(TSqlParser.PASSWORD); + this.state = 1698; + this.match(TSqlParser.EQUAL); + this.state = 1699; + localctx.asymmetric_key_password = this.match(TSqlParser.STRING); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_asymmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_asymmetric_key; + this.key_name = null; // IdContext + return this; +} + +Drop_asymmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_asymmetric_keyContext.prototype.constructor = Drop_asymmetric_keyContext; + +Drop_asymmetric_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_asymmetric_keyContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Drop_asymmetric_keyContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Drop_asymmetric_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_asymmetric_keyContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Drop_asymmetric_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Drop_asymmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_asymmetric_key(this); + } +}; + +Drop_asymmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_asymmetric_key(this); + } +}; + +Drop_asymmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_asymmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_asymmetric_keyContext = Drop_asymmetric_keyContext; + +TSqlParser.prototype.drop_asymmetric_key = function() { + + var localctx = new Drop_asymmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 128, TSqlParser.RULE_drop_asymmetric_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1702; + this.match(TSqlParser.DROP); + this.state = 1703; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1704; + this.match(TSqlParser.KEY); + this.state = 1705; + localctx.key_name = this.id(); + this.state = 1709; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,90,this._ctx); + if(la_===1) { + this.state = 1706; + this.match(TSqlParser.REMOVE); + this.state = 1707; + this.match(TSqlParser.PROVIDER); + this.state = 1708; + this.match(TSqlParser.KEY); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorizationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization; + this.entity = null; // Entity_nameContext + return this; +} + +Alter_authorizationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorizationContext.prototype.constructor = Alter_authorizationContext; + +Alter_authorizationContext.prototype.alter_authorization_start = function() { + return this.getTypedRuleContext(Alter_authorization_startContext,0); +}; + +Alter_authorizationContext.prototype.entity_to = function() { + return this.getTypedRuleContext(Entity_toContext,0); +}; + +Alter_authorizationContext.prototype.authorization_grantee = function() { + return this.getTypedRuleContext(Authorization_granteeContext,0); +}; + +Alter_authorizationContext.prototype.entity_name = function() { + return this.getTypedRuleContext(Entity_nameContext,0); +}; + +Alter_authorizationContext.prototype.class_type = function() { + return this.getTypedRuleContext(Class_typeContext,0); +}; + +Alter_authorizationContext.prototype.colon_colon = function() { + return this.getTypedRuleContext(Colon_colonContext,0); +}; + +Alter_authorizationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization(this); + } +}; + +Alter_authorizationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization(this); + } +}; + +Alter_authorizationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorizationContext = Alter_authorizationContext; + +TSqlParser.prototype.alter_authorization = function() { + + var localctx = new Alter_authorizationContext(this, this._ctx, this.state); + this.enterRule(localctx, 130, TSqlParser.RULE_alter_authorization); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1711; + this.alter_authorization_start(); + this.state = 1715; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,91,this._ctx); + if(la_===1) { + this.state = 1712; + this.class_type(); + this.state = 1713; + this.colon_colon(); + + } + this.state = 1717; + localctx.entity = this.entity_name(); + this.state = 1718; + this.entity_to(); + this.state = 1719; + this.authorization_grantee(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Authorization_granteeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_authorization_grantee; + this.principal_name = null; // IdContext + return this; +} + +Authorization_granteeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Authorization_granteeContext.prototype.constructor = Authorization_granteeContext; + +Authorization_granteeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Authorization_granteeContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Authorization_granteeContext.prototype.OWNER = function() { + return this.getToken(TSqlParser.OWNER, 0); +}; + +Authorization_granteeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAuthorization_grantee(this); + } +}; + +Authorization_granteeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAuthorization_grantee(this); + } +}; + +Authorization_granteeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAuthorization_grantee(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Authorization_granteeContext = Authorization_granteeContext; + +TSqlParser.prototype.authorization_grantee = function() { + + var localctx = new Authorization_granteeContext(this, this._ctx, this.state); + this.enterRule(localctx, 132, TSqlParser.RULE_authorization_grantee); + try { + this.state = 1724; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 1721; + localctx.principal_name = this.id(); + break; + case TSqlParser.SCHEMA: + this.enterOuterAlt(localctx, 2); + this.state = 1722; + this.match(TSqlParser.SCHEMA); + this.state = 1723; + this.match(TSqlParser.OWNER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Entity_toContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_entity_to; + return this; +} + +Entity_toContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Entity_toContext.prototype.constructor = Entity_toContext; + +Entity_toContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Entity_toContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEntity_to(this); + } +}; + +Entity_toContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEntity_to(this); + } +}; + +Entity_toContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEntity_to(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Entity_toContext = Entity_toContext; + +TSqlParser.prototype.entity_to = function() { + + var localctx = new Entity_toContext(this, this._ctx, this.state); + this.enterRule(localctx, 134, TSqlParser.RULE_entity_to); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1726; + this.match(TSqlParser.TO); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Colon_colonContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_colon_colon; + return this; +} + +Colon_colonContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Colon_colonContext.prototype.constructor = Colon_colonContext; + +Colon_colonContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Colon_colonContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColon_colon(this); + } +}; + +Colon_colonContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColon_colon(this); + } +}; + +Colon_colonContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColon_colon(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Colon_colonContext = Colon_colonContext; + +TSqlParser.prototype.colon_colon = function() { + + var localctx = new Colon_colonContext(this, this._ctx, this.state); + this.enterRule(localctx, 136, TSqlParser.RULE_colon_colon); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1728; + this.match(TSqlParser.COLON); + this.state = 1729; + this.match(TSqlParser.COLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorization_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization_start; + return this; +} + +Alter_authorization_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorization_startContext.prototype.constructor = Alter_authorization_startContext; + +Alter_authorization_startContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_authorization_startContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Alter_authorization_startContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_authorization_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization_start(this); + } +}; + +Alter_authorization_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization_start(this); + } +}; + +Alter_authorization_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorization_startContext = Alter_authorization_startContext; + +TSqlParser.prototype.alter_authorization_start = function() { + + var localctx = new Alter_authorization_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 138, TSqlParser.RULE_alter_authorization_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1731; + this.match(TSqlParser.ALTER); + this.state = 1732; + this.match(TSqlParser.AUTHORIZATION); + this.state = 1733; + this.match(TSqlParser.ON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorization_for_sql_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization_for_sql_database; + this.entity = null; // Entity_nameContext + return this; +} + +Alter_authorization_for_sql_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorization_for_sql_databaseContext.prototype.constructor = Alter_authorization_for_sql_databaseContext; + +Alter_authorization_for_sql_databaseContext.prototype.alter_authorization_start = function() { + return this.getTypedRuleContext(Alter_authorization_startContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.entity_to = function() { + return this.getTypedRuleContext(Entity_toContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.authorization_grantee = function() { + return this.getTypedRuleContext(Authorization_granteeContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.entity_name = function() { + return this.getTypedRuleContext(Entity_nameContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.class_type_for_sql_database = function() { + return this.getTypedRuleContext(Class_type_for_sql_databaseContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.colon_colon = function() { + return this.getTypedRuleContext(Colon_colonContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization_for_sql_database(this); + } +}; + +Alter_authorization_for_sql_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization_for_sql_database(this); + } +}; + +Alter_authorization_for_sql_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization_for_sql_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorization_for_sql_databaseContext = Alter_authorization_for_sql_databaseContext; + +TSqlParser.prototype.alter_authorization_for_sql_database = function() { + + var localctx = new Alter_authorization_for_sql_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 140, TSqlParser.RULE_alter_authorization_for_sql_database); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1735; + this.alter_authorization_start(); + this.state = 1739; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,93,this._ctx); + if(la_===1) { + this.state = 1736; + this.class_type_for_sql_database(); + this.state = 1737; + this.colon_colon(); + + } + this.state = 1741; + localctx.entity = this.entity_name(); + this.state = 1742; + this.entity_to(); + this.state = 1743; + this.authorization_grantee(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorization_for_azure_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization_for_azure_dw; + this.entity = null; // Entity_name_for_azure_dwContext + return this; +} + +Alter_authorization_for_azure_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorization_for_azure_dwContext.prototype.constructor = Alter_authorization_for_azure_dwContext; + +Alter_authorization_for_azure_dwContext.prototype.alter_authorization_start = function() { + return this.getTypedRuleContext(Alter_authorization_startContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.entity_to = function() { + return this.getTypedRuleContext(Entity_toContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.authorization_grantee = function() { + return this.getTypedRuleContext(Authorization_granteeContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.entity_name_for_azure_dw = function() { + return this.getTypedRuleContext(Entity_name_for_azure_dwContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.class_type_for_azure_dw = function() { + return this.getTypedRuleContext(Class_type_for_azure_dwContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.colon_colon = function() { + return this.getTypedRuleContext(Colon_colonContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization_for_azure_dw(this); + } +}; + +Alter_authorization_for_azure_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization_for_azure_dw(this); + } +}; + +Alter_authorization_for_azure_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization_for_azure_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorization_for_azure_dwContext = Alter_authorization_for_azure_dwContext; + +TSqlParser.prototype.alter_authorization_for_azure_dw = function() { + + var localctx = new Alter_authorization_for_azure_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 142, TSqlParser.RULE_alter_authorization_for_azure_dw); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1745; + this.alter_authorization_start(); + this.state = 1749; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,94,this._ctx); + if(la_===1) { + this.state = 1746; + this.class_type_for_azure_dw(); + this.state = 1747; + this.colon_colon(); + + } + this.state = 1751; + localctx.entity = this.entity_name_for_azure_dw(); + this.state = 1752; + this.entity_to(); + this.state = 1753; + this.authorization_grantee(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorization_for_parallel_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization_for_parallel_dw; + this.entity = null; // Entity_name_for_parallel_dwContext + return this; +} + +Alter_authorization_for_parallel_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorization_for_parallel_dwContext.prototype.constructor = Alter_authorization_for_parallel_dwContext; + +Alter_authorization_for_parallel_dwContext.prototype.alter_authorization_start = function() { + return this.getTypedRuleContext(Alter_authorization_startContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.entity_to = function() { + return this.getTypedRuleContext(Entity_toContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.authorization_grantee = function() { + return this.getTypedRuleContext(Authorization_granteeContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.entity_name_for_parallel_dw = function() { + return this.getTypedRuleContext(Entity_name_for_parallel_dwContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.class_type_for_parallel_dw = function() { + return this.getTypedRuleContext(Class_type_for_parallel_dwContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.colon_colon = function() { + return this.getTypedRuleContext(Colon_colonContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization_for_parallel_dw(this); + } +}; + +Alter_authorization_for_parallel_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization_for_parallel_dw(this); + } +}; + +Alter_authorization_for_parallel_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization_for_parallel_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorization_for_parallel_dwContext = Alter_authorization_for_parallel_dwContext; + +TSqlParser.prototype.alter_authorization_for_parallel_dw = function() { + + var localctx = new Alter_authorization_for_parallel_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 144, TSqlParser.RULE_alter_authorization_for_parallel_dw); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1755; + this.alter_authorization_start(); + this.state = 1759; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,95,this._ctx); + if(la_===1) { + this.state = 1756; + this.class_type_for_parallel_dw(); + this.state = 1757; + this.colon_colon(); + + } + this.state = 1761; + localctx.entity = this.entity_name_for_parallel_dw(); + this.state = 1762; + this.entity_to(); + this.state = 1763; + this.authorization_grantee(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Class_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_class_type; + return this; +} + +Class_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Class_typeContext.prototype.constructor = Class_typeContext; + +Class_typeContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Class_typeContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Class_typeContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Class_typeContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Class_typeContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Class_typeContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Class_typeContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Class_typeContext.prototype.CONTRACT = function() { + return this.getToken(TSqlParser.CONTRACT, 0); +}; + +Class_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Class_typeContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Class_typeContext.prototype.ENDPOINT = function() { + return this.getToken(TSqlParser.ENDPOINT, 0); +}; + +Class_typeContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Class_typeContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Class_typeContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Class_typeContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Class_typeContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Class_typeContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Class_typeContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Class_typeContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Class_typeContext.prototype.ROUTE = function() { + return this.getToken(TSqlParser.ROUTE, 0); +}; + +Class_typeContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Class_typeContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Class_typeContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Class_typeContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Class_typeContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Class_typeContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Class_typeContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Class_typeContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Class_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClass_type(this); + } +}; + +Class_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClass_type(this); + } +}; + +Class_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClass_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Class_typeContext = Class_typeContext; + +TSqlParser.prototype.class_type = function() { + + var localctx = new Class_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 146, TSqlParser.RULE_class_type); + try { + this.state = 1799; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,96,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1765; + this.match(TSqlParser.OBJECT); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1766; + this.match(TSqlParser.ASSEMBLY); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1767; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1768; + this.match(TSqlParser.KEY); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1769; + this.match(TSqlParser.AVAILABILITY); + this.state = 1770; + this.match(TSqlParser.GROUP); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1771; + this.match(TSqlParser.CERTIFICATE); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1772; + this.match(TSqlParser.CONTRACT); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1773; + this.match(TSqlParser.TYPE); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1774; + this.match(TSqlParser.DATABASE); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1775; + this.match(TSqlParser.ENDPOINT); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1776; + this.match(TSqlParser.FULLTEXT); + this.state = 1777; + this.match(TSqlParser.CATALOG); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1778; + this.match(TSqlParser.FULLTEXT); + this.state = 1779; + this.match(TSqlParser.STOPLIST); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1780; + this.match(TSqlParser.MESSAGE); + this.state = 1781; + this.match(TSqlParser.TYPE); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 1782; + this.match(TSqlParser.REMOTE); + this.state = 1783; + this.match(TSqlParser.SERVICE); + this.state = 1784; + this.match(TSqlParser.BINDING); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 1785; + this.match(TSqlParser.ROLE); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 1786; + this.match(TSqlParser.ROUTE); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 1787; + this.match(TSqlParser.SCHEMA); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 1788; + this.match(TSqlParser.SEARCH); + this.state = 1789; + this.match(TSqlParser.PROPERTY); + this.state = 1790; + this.match(TSqlParser.LIST); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 1791; + this.match(TSqlParser.SERVER); + this.state = 1792; + this.match(TSqlParser.ROLE); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 1793; + this.match(TSqlParser.SERVICE); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 1794; + this.match(TSqlParser.SYMMETRIC); + this.state = 1795; + this.match(TSqlParser.KEY); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 1796; + this.match(TSqlParser.XML); + this.state = 1797; + this.match(TSqlParser.SCHEMA); + this.state = 1798; + this.match(TSqlParser.COLLECTION); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Class_type_for_sql_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_class_type_for_sql_database; + return this; +} + +Class_type_for_sql_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Class_type_for_sql_databaseContext.prototype.constructor = Class_type_for_sql_databaseContext; + +Class_type_for_sql_databaseContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Class_type_for_sql_databaseContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Class_type_for_sql_databaseContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Class_type_for_sql_databaseContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Class_type_for_sql_databaseContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Class_type_for_sql_databaseContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Class_type_for_sql_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Class_type_for_sql_databaseContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Class_type_for_sql_databaseContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Class_type_for_sql_databaseContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Class_type_for_sql_databaseContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Class_type_for_sql_databaseContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Class_type_for_sql_databaseContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Class_type_for_sql_databaseContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Class_type_for_sql_databaseContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Class_type_for_sql_databaseContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Class_type_for_sql_databaseContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Class_type_for_sql_databaseContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Class_type_for_sql_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClass_type_for_sql_database(this); + } +}; + +Class_type_for_sql_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClass_type_for_sql_database(this); + } +}; + +Class_type_for_sql_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClass_type_for_sql_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Class_type_for_sql_databaseContext = Class_type_for_sql_databaseContext; + +TSqlParser.prototype.class_type_for_sql_database = function() { + + var localctx = new Class_type_for_sql_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 148, TSqlParser.RULE_class_type_for_sql_database); + try { + this.state = 1822; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,97,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1801; + this.match(TSqlParser.OBJECT); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1802; + this.match(TSqlParser.ASSEMBLY); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1803; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1804; + this.match(TSqlParser.KEY); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1805; + this.match(TSqlParser.CERTIFICATE); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1806; + this.match(TSqlParser.TYPE); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1807; + this.match(TSqlParser.DATABASE); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1808; + this.match(TSqlParser.FULLTEXT); + this.state = 1809; + this.match(TSqlParser.CATALOG); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1810; + this.match(TSqlParser.FULLTEXT); + this.state = 1811; + this.match(TSqlParser.STOPLIST); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1812; + this.match(TSqlParser.ROLE); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1813; + this.match(TSqlParser.SCHEMA); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1814; + this.match(TSqlParser.SEARCH); + this.state = 1815; + this.match(TSqlParser.PROPERTY); + this.state = 1816; + this.match(TSqlParser.LIST); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1817; + this.match(TSqlParser.SYMMETRIC); + this.state = 1818; + this.match(TSqlParser.KEY); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 1819; + this.match(TSqlParser.XML); + this.state = 1820; + this.match(TSqlParser.SCHEMA); + this.state = 1821; + this.match(TSqlParser.COLLECTION); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Class_type_for_azure_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_class_type_for_azure_dw; + return this; +} + +Class_type_for_azure_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Class_type_for_azure_dwContext.prototype.constructor = Class_type_for_azure_dwContext; + +Class_type_for_azure_dwContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Class_type_for_azure_dwContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Class_type_for_azure_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClass_type_for_azure_dw(this); + } +}; + +Class_type_for_azure_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClass_type_for_azure_dw(this); + } +}; + +Class_type_for_azure_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClass_type_for_azure_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Class_type_for_azure_dwContext = Class_type_for_azure_dwContext; + +TSqlParser.prototype.class_type_for_azure_dw = function() { + + var localctx = new Class_type_for_azure_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 150, TSqlParser.RULE_class_type_for_azure_dw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1824; + _la = this._input.LA(1); + if(!(_la===TSqlParser.SCHEMA || _la===TSqlParser.OBJECT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Class_type_for_parallel_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_class_type_for_parallel_dw; + return this; +} + +Class_type_for_parallel_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Class_type_for_parallel_dwContext.prototype.constructor = Class_type_for_parallel_dwContext; + +Class_type_for_parallel_dwContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Class_type_for_parallel_dwContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Class_type_for_parallel_dwContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Class_type_for_parallel_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClass_type_for_parallel_dw(this); + } +}; + +Class_type_for_parallel_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClass_type_for_parallel_dw(this); + } +}; + +Class_type_for_parallel_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClass_type_for_parallel_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Class_type_for_parallel_dwContext = Class_type_for_parallel_dwContext; + +TSqlParser.prototype.class_type_for_parallel_dw = function() { + + var localctx = new Class_type_for_parallel_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 152, TSqlParser.RULE_class_type_for_parallel_dw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1826; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DATABASE || _la===TSqlParser.SCHEMA || _la===TSqlParser.OBJECT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_availability_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_availability_group; + this.group_name = null; // IdContext + return this; +} + +Drop_availability_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_availability_groupContext.prototype.constructor = Drop_availability_groupContext; + +Drop_availability_groupContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_availability_groupContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Drop_availability_groupContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Drop_availability_groupContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_availability_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_availability_group(this); + } +}; + +Drop_availability_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_availability_group(this); + } +}; + +Drop_availability_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_availability_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_availability_groupContext = Drop_availability_groupContext; + +TSqlParser.prototype.drop_availability_group = function() { + + var localctx = new Drop_availability_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 154, TSqlParser.RULE_drop_availability_group); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1828; + this.match(TSqlParser.DROP); + this.state = 1829; + this.match(TSqlParser.AVAILABILITY); + this.state = 1830; + this.match(TSqlParser.GROUP); + this.state = 1831; + localctx.group_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_availability_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_availability_group; + return this; +} + +Alter_availability_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_availability_groupContext.prototype.constructor = Alter_availability_groupContext; + +Alter_availability_groupContext.prototype.alter_availability_group_start = function() { + return this.getTypedRuleContext(Alter_availability_group_startContext,0); +}; + +Alter_availability_groupContext.prototype.alter_availability_group_options = function() { + return this.getTypedRuleContext(Alter_availability_group_optionsContext,0); +}; + +Alter_availability_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_availability_group(this); + } +}; + +Alter_availability_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_availability_group(this); + } +}; + +Alter_availability_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_availability_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_availability_groupContext = Alter_availability_groupContext; + +TSqlParser.prototype.alter_availability_group = function() { + + var localctx = new Alter_availability_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 156, TSqlParser.RULE_alter_availability_group); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1833; + this.alter_availability_group_start(); + this.state = 1834; + this.alter_availability_group_options(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_availability_group_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_availability_group_start; + this.group_name = null; // IdContext + return this; +} + +Alter_availability_group_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_availability_group_startContext.prototype.constructor = Alter_availability_group_startContext; + +Alter_availability_group_startContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_availability_group_startContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Alter_availability_group_startContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Alter_availability_group_startContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_availability_group_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_availability_group_start(this); + } +}; + +Alter_availability_group_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_availability_group_start(this); + } +}; + +Alter_availability_group_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_availability_group_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_availability_group_startContext = Alter_availability_group_startContext; + +TSqlParser.prototype.alter_availability_group_start = function() { + + var localctx = new Alter_availability_group_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 158, TSqlParser.RULE_alter_availability_group_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1836; + this.match(TSqlParser.ALTER); + this.state = 1837; + this.match(TSqlParser.AVAILABILITY); + this.state = 1838; + this.match(TSqlParser.GROUP); + this.state = 1839; + localctx.group_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_availability_group_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_availability_group_options; + this.milliseconds = null; // Token + this.database_name = null; // IdContext + this.server_instance = null; // Token + this.session_timeout = null; // Token + this.ag_name = null; // Token + this.ag_name_modified = null; // Token + this.listener_name = null; // Token + return this; +} + +Alter_availability_group_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_availability_group_optionsContext.prototype.constructor = Alter_availability_group_optionsContext; + +Alter_availability_group_optionsContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_availability_group_optionsContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.AUTOMATED_BACKUP_PREFERENCE = function() { + return this.getToken(TSqlParser.AUTOMATED_BACKUP_PREFERENCE, 0); +}; + +Alter_availability_group_optionsContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.FAILURE_CONDITION_LEVEL = function() { + return this.getToken(TSqlParser.FAILURE_CONDITION_LEVEL, 0); +}; + +Alter_availability_group_optionsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Alter_availability_group_optionsContext.prototype.HEALTH_CHECK_TIMEOUT = function() { + return this.getToken(TSqlParser.HEALTH_CHECK_TIMEOUT, 0); +}; + +Alter_availability_group_optionsContext.prototype.DB_FAILOVER = function() { + return this.getToken(TSqlParser.DB_FAILOVER, 0); +}; + +Alter_availability_group_optionsContext.prototype.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = function() { + return this.getToken(TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, 0); +}; + +Alter_availability_group_optionsContext.prototype.PRIMARY = function() { + return this.getToken(TSqlParser.PRIMARY, 0); +}; + +Alter_availability_group_optionsContext.prototype.SECONDARY_ONLY = function() { + return this.getToken(TSqlParser.SECONDARY_ONLY, 0); +}; + +Alter_availability_group_optionsContext.prototype.SECONDARY = function() { + return this.getToken(TSqlParser.SECONDARY, 0); +}; + +Alter_availability_group_optionsContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Alter_availability_group_optionsContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_availability_group_optionsContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_availability_group_optionsContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_availability_group_optionsContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Alter_availability_group_optionsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_availability_group_optionsContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Alter_availability_group_optionsContext.prototype.REPLICA = function() { + return this.getToken(TSqlParser.REPLICA, 0); +}; + +Alter_availability_group_optionsContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WITH); + } else { + return this.getToken(TSqlParser.WITH, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.ENDPOINT_URL = function() { + return this.getToken(TSqlParser.ENDPOINT_URL, 0); +}; + +Alter_availability_group_optionsContext.prototype.AVAILABILITY_MODE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AVAILABILITY_MODE); + } else { + return this.getToken(TSqlParser.AVAILABILITY_MODE, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.FAILOVER_MODE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FAILOVER_MODE); + } else { + return this.getToken(TSqlParser.FAILOVER_MODE, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.SEEDING_MODE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEEDING_MODE); + } else { + return this.getToken(TSqlParser.SEEDING_MODE, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.BACKUP_PRIORITY = function() { + return this.getToken(TSqlParser.BACKUP_PRIORITY, 0); +}; + +Alter_availability_group_optionsContext.prototype.PRIMARY_ROLE = function() { + return this.getToken(TSqlParser.PRIMARY_ROLE, 0); +}; + +Alter_availability_group_optionsContext.prototype.ALLOW_CONNECTIONS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALLOW_CONNECTIONS); + } else { + return this.getToken(TSqlParser.ALLOW_CONNECTIONS, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.SECONDARY_ROLE = function() { + return this.getToken(TSqlParser.SECONDARY_ROLE, 0); +}; + +Alter_availability_group_optionsContext.prototype.SYNCHRONOUS_COMMIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SYNCHRONOUS_COMMIT); + } else { + return this.getToken(TSqlParser.SYNCHRONOUS_COMMIT, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.ASYNCHRONOUS_COMMIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASYNCHRONOUS_COMMIT); + } else { + return this.getToken(TSqlParser.ASYNCHRONOUS_COMMIT, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.AUTOMATIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AUTOMATIC); + } else { + return this.getToken(TSqlParser.AUTOMATIC, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.MANUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MANUAL); + } else { + return this.getToken(TSqlParser.MANUAL, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.READ_WRITE = function() { + return this.getToken(TSqlParser.READ_WRITE, 0); +}; + +Alter_availability_group_optionsContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Alter_availability_group_optionsContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Alter_availability_group_optionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.READ_ONLY_ROUTING_LIST = function() { + return this.getToken(TSqlParser.READ_ONLY_ROUTING_LIST, 0); +}; + +Alter_availability_group_optionsContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +Alter_availability_group_optionsContext.prototype.SESSION_TIMEOUT = function() { + return this.getToken(TSqlParser.SESSION_TIMEOUT, 0); +}; + +Alter_availability_group_optionsContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Alter_availability_group_optionsContext.prototype.JOIN = function() { + return this.getToken(TSqlParser.JOIN, 0); +}; + +Alter_availability_group_optionsContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Alter_availability_group_optionsContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Alter_availability_group_optionsContext.prototype.LISTENER_URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LISTENER_URL); + } else { + return this.getToken(TSqlParser.LISTENER_URL, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.GRANT = function() { + return this.getToken(TSqlParser.GRANT, 0); +}; + +Alter_availability_group_optionsContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Alter_availability_group_optionsContext.prototype.ANY = function() { + return this.getToken(TSqlParser.ANY, 0); +}; + +Alter_availability_group_optionsContext.prototype.DENY = function() { + return this.getToken(TSqlParser.DENY, 0); +}; + +Alter_availability_group_optionsContext.prototype.FAILOVER = function() { + return this.getToken(TSqlParser.FAILOVER, 0); +}; + +Alter_availability_group_optionsContext.prototype.FORCE_FAILOVER_ALLOW_DATA_LOSS = function() { + return this.getToken(TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS, 0); +}; + +Alter_availability_group_optionsContext.prototype.LISTENER = function() { + return this.getToken(TSqlParser.LISTENER, 0); +}; + +Alter_availability_group_optionsContext.prototype.DHCP = function() { + return this.getToken(TSqlParser.DHCP, 0); +}; + +Alter_availability_group_optionsContext.prototype.IP = function() { + return this.getToken(TSqlParser.IP, 0); +}; + +Alter_availability_group_optionsContext.prototype.IPV4_ADDR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.IPV4_ADDR); + } else { + return this.getToken(TSqlParser.IPV4_ADDR, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.PORT = function() { + return this.getToken(TSqlParser.PORT, 0); +}; + +Alter_availability_group_optionsContext.prototype.IPV6_ADDR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.IPV6_ADDR); + } else { + return this.getToken(TSqlParser.IPV6_ADDR, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.RESTART = function() { + return this.getToken(TSqlParser.RESTART, 0); +}; + +Alter_availability_group_optionsContext.prototype.OFFLINE = function() { + return this.getToken(TSqlParser.OFFLINE, 0); +}; + +Alter_availability_group_optionsContext.prototype.DTC_SUPPORT = function() { + return this.getToken(TSqlParser.DTC_SUPPORT, 0); +}; + +Alter_availability_group_optionsContext.prototype.PER_DB = function() { + return this.getToken(TSqlParser.PER_DB, 0); +}; + +Alter_availability_group_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_availability_group_options(this); + } +}; + +Alter_availability_group_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_availability_group_options(this); + } +}; + +Alter_availability_group_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_availability_group_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_availability_group_optionsContext = Alter_availability_group_optionsContext; + +TSqlParser.prototype.alter_availability_group_options = function() { + + var localctx = new Alter_availability_group_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 160, TSqlParser.RULE_alter_availability_group_options); + var _la = 0; // Token type + try { + this.state = 2191; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,141,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1841; + this.match(TSqlParser.SET); + this.state = 1842; + this.match(TSqlParser.LR_BRACKET); + + this.state = 1858; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTOMATED_BACKUP_PREFERENCE: + this.state = 1843; + this.match(TSqlParser.AUTOMATED_BACKUP_PREFERENCE); + this.state = 1844; + this.match(TSqlParser.EQUAL); + this.state = 1845; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.PRIMARY || _la===TSqlParser.SECONDARY || _la===TSqlParser.SECONDARY_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.FAILURE_CONDITION_LEVEL: + this.state = 1846; + this.match(TSqlParser.FAILURE_CONDITION_LEVEL); + this.state = 1847; + this.match(TSqlParser.EQUAL); + this.state = 1848; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.HEALTH_CHECK_TIMEOUT: + this.state = 1849; + this.match(TSqlParser.HEALTH_CHECK_TIMEOUT); + this.state = 1850; + this.match(TSqlParser.EQUAL); + this.state = 1851; + localctx.milliseconds = this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.DB_FAILOVER: + this.state = 1852; + this.match(TSqlParser.DB_FAILOVER); + this.state = 1853; + this.match(TSqlParser.EQUAL); + this.state = 1854; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + this.state = 1855; + this.match(TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT); + this.state = 1856; + this.match(TSqlParser.EQUAL); + this.state = 1857; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1860; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1861; + this.match(TSqlParser.ADD); + this.state = 1862; + this.match(TSqlParser.DATABASE); + this.state = 1863; + localctx.database_name = this.id(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1864; + this.match(TSqlParser.REMOVE); + this.state = 1865; + this.match(TSqlParser.DATABASE); + this.state = 1866; + localctx.database_name = this.id(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1867; + this.match(TSqlParser.ADD); + this.state = 1868; + this.match(TSqlParser.REPLICA); + this.state = 1869; + this.match(TSqlParser.ON); + this.state = 1870; + localctx.server_instance = this.match(TSqlParser.STRING); + + this.state = 1871; + this.match(TSqlParser.WITH); + this.state = 1872; + this.match(TSqlParser.LR_BRACKET); + + this.state = 1876; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ENDPOINT_URL) { + this.state = 1873; + this.match(TSqlParser.ENDPOINT_URL); + this.state = 1874; + this.match(TSqlParser.EQUAL); + this.state = 1875; + this.match(TSqlParser.STRING); + } + + this.state = 1884; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,101,this._ctx); + if(la_===1) { + this.state = 1879; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1878; + this.match(TSqlParser.COMMA); + } + + this.state = 1881; + this.match(TSqlParser.AVAILABILITY_MODE); + this.state = 1882; + this.match(TSqlParser.EQUAL); + this.state = 1883; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASYNCHRONOUS_COMMIT || _la===TSqlParser.SYNCHRONOUS_COMMIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 1892; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,103,this._ctx); + if(la_===1) { + this.state = 1887; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1886; + this.match(TSqlParser.COMMA); + } + + this.state = 1889; + this.match(TSqlParser.FAILOVER_MODE); + this.state = 1890; + this.match(TSqlParser.EQUAL); + this.state = 1891; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 1900; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,105,this._ctx); + if(la_===1) { + this.state = 1895; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1894; + this.match(TSqlParser.COMMA); + } + + this.state = 1897; + this.match(TSqlParser.SEEDING_MODE); + this.state = 1898; + this.match(TSqlParser.EQUAL); + this.state = 1899; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 1908; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,107,this._ctx); + if(la_===1) { + this.state = 1903; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1902; + this.match(TSqlParser.COMMA); + } + + this.state = 1905; + this.match(TSqlParser.BACKUP_PRIORITY); + this.state = 1906; + this.match(TSqlParser.EQUAL); + this.state = 1907; + this.match(TSqlParser.DECIMAL); + + } + this.state = 1919; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,109,this._ctx); + if(la_===1) { + this.state = 1911; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1910; + this.match(TSqlParser.COMMA); + } + + this.state = 1913; + this.match(TSqlParser.PRIMARY_ROLE); + this.state = 1914; + this.match(TSqlParser.LR_BRACKET); + this.state = 1915; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1916; + this.match(TSqlParser.EQUAL); + this.state = 1917; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.READ_WRITE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1918; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 1930; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SECONDARY_ROLE || _la===TSqlParser.COMMA) { + this.state = 1922; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1921; + this.match(TSqlParser.COMMA); + } + + this.state = 1924; + this.match(TSqlParser.SECONDARY_ROLE); + this.state = 1925; + this.match(TSqlParser.LR_BRACKET); + this.state = 1926; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1927; + this.match(TSqlParser.EQUAL); + + this.state = 1928; + this.match(TSqlParser.READ_ONLY); + this.state = 1929; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 1932; + this.match(TSqlParser.RR_BRACKET); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1933; + this.match(TSqlParser.SECONDARY_ROLE); + this.state = 1934; + this.match(TSqlParser.LR_BRACKET); + this.state = 1943; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_CONNECTIONS: + this.state = 1935; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1936; + this.match(TSqlParser.EQUAL); + this.state = 1937; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.NO || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.READ_ONLY_ROUTING_LIST: + this.state = 1938; + this.match(TSqlParser.READ_ONLY_ROUTING_LIST); + this.state = 1939; + this.match(TSqlParser.EQUAL); + + this.state = 1940; + this.match(TSqlParser.LR_BRACKET); + + this.state = 1941; + this.match(TSqlParser.STRING); + this.state = 1942; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1945; + this.match(TSqlParser.PRIMARY_ROLE); + this.state = 1946; + this.match(TSqlParser.LR_BRACKET); + this.state = 1969; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_CONNECTIONS: + this.state = 1947; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1948; + this.match(TSqlParser.EQUAL); + this.state = 1949; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.NO || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.READ_ONLY_ROUTING_LIST: + this.state = 1950; + this.match(TSqlParser.READ_ONLY_ROUTING_LIST); + this.state = 1951; + this.match(TSqlParser.EQUAL); + + this.state = 1952; + this.match(TSqlParser.LR_BRACKET); + this.state = 1963; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + case TSqlParser.RR_BRACKET: + case TSqlParser.COMMA: + this.state = 1959; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.STRING || _la===TSqlParser.COMMA) { + this.state = 1954; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1953; + this.match(TSqlParser.COMMA); + } + + this.state = 1956; + this.match(TSqlParser.STRING); + this.state = 1961; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case TSqlParser.NONE: + this.state = 1962; + this.match(TSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1965; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.SESSION_TIMEOUT: + this.state = 1966; + this.match(TSqlParser.SESSION_TIMEOUT); + this.state = 1967; + this.match(TSqlParser.EQUAL); + this.state = 1968; + localctx.session_timeout = this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1971; + this.match(TSqlParser.MODIFY); + this.state = 1972; + this.match(TSqlParser.REPLICA); + this.state = 1973; + this.match(TSqlParser.ON); + this.state = 1974; + localctx.server_instance = this.match(TSqlParser.STRING); + this.state = 2032; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 1975; + this.match(TSqlParser.WITH); + this.state = 1976; + this.match(TSqlParser.LR_BRACKET); + this.state = 1992; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENDPOINT_URL: + this.state = 1977; + this.match(TSqlParser.ENDPOINT_URL); + this.state = 1978; + this.match(TSqlParser.EQUAL); + this.state = 1979; + this.match(TSqlParser.STRING); + break; + case TSqlParser.AVAILABILITY_MODE: + this.state = 1980; + this.match(TSqlParser.AVAILABILITY_MODE); + this.state = 1981; + this.match(TSqlParser.EQUAL); + this.state = 1982; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASYNCHRONOUS_COMMIT || _la===TSqlParser.SYNCHRONOUS_COMMIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.FAILOVER_MODE: + this.state = 1983; + this.match(TSqlParser.FAILOVER_MODE); + this.state = 1984; + this.match(TSqlParser.EQUAL); + this.state = 1985; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SEEDING_MODE: + this.state = 1986; + this.match(TSqlParser.SEEDING_MODE); + this.state = 1987; + this.match(TSqlParser.EQUAL); + this.state = 1988; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.BACKUP_PRIORITY: + this.state = 1989; + this.match(TSqlParser.BACKUP_PRIORITY); + this.state = 1990; + this.match(TSqlParser.EQUAL); + this.state = 1991; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.SECONDARY_ROLE: + this.state = 1994; + this.match(TSqlParser.SECONDARY_ROLE); + this.state = 1995; + this.match(TSqlParser.LR_BRACKET); + this.state = 2004; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_CONNECTIONS: + this.state = 1996; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1997; + this.match(TSqlParser.EQUAL); + this.state = 1998; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.NO || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.READ_ONLY_ROUTING_LIST: + this.state = 1999; + this.match(TSqlParser.READ_ONLY_ROUTING_LIST); + this.state = 2000; + this.match(TSqlParser.EQUAL); + + this.state = 2001; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2002; + this.match(TSqlParser.STRING); + this.state = 2003; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.PRIMARY_ROLE: + this.state = 2006; + this.match(TSqlParser.PRIMARY_ROLE); + this.state = 2007; + this.match(TSqlParser.LR_BRACKET); + this.state = 2030; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_CONNECTIONS: + this.state = 2008; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 2009; + this.match(TSqlParser.EQUAL); + this.state = 2010; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.NO || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.READ_ONLY_ROUTING_LIST: + this.state = 2011; + this.match(TSqlParser.READ_ONLY_ROUTING_LIST); + this.state = 2012; + this.match(TSqlParser.EQUAL); + + this.state = 2013; + this.match(TSqlParser.LR_BRACKET); + this.state = 2024; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + case TSqlParser.RR_BRACKET: + case TSqlParser.COMMA: + this.state = 2020; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.STRING || _la===TSqlParser.COMMA) { + this.state = 2015; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2014; + this.match(TSqlParser.COMMA); + } + + this.state = 2017; + this.match(TSqlParser.STRING); + this.state = 2022; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case TSqlParser.NONE: + this.state = 2023; + this.match(TSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2026; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.SESSION_TIMEOUT: + this.state = 2027; + this.match(TSqlParser.SESSION_TIMEOUT); + this.state = 2028; + this.match(TSqlParser.EQUAL); + this.state = 2029; + localctx.session_timeout = this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2034; + this.match(TSqlParser.RR_BRACKET); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 2035; + this.match(TSqlParser.REMOVE); + this.state = 2036; + this.match(TSqlParser.REPLICA); + this.state = 2037; + this.match(TSqlParser.ON); + this.state = 2038; + this.match(TSqlParser.STRING); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 2039; + this.match(TSqlParser.JOIN); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 2040; + this.match(TSqlParser.JOIN); + this.state = 2041; + this.match(TSqlParser.AVAILABILITY); + this.state = 2042; + this.match(TSqlParser.GROUP); + this.state = 2043; + this.match(TSqlParser.ON); + this.state = 2066; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2045; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2044; + this.match(TSqlParser.COMMA); + } + + this.state = 2047; + localctx.ag_name = this.match(TSqlParser.STRING); + this.state = 2048; + this.match(TSqlParser.WITH); + this.state = 2049; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2050; + this.match(TSqlParser.LISTENER_URL); + this.state = 2051; + this.match(TSqlParser.EQUAL); + this.state = 2052; + this.match(TSqlParser.STRING); + this.state = 2053; + this.match(TSqlParser.COMMA); + this.state = 2054; + this.match(TSqlParser.AVAILABILITY_MODE); + this.state = 2055; + this.match(TSqlParser.EQUAL); + this.state = 2056; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASYNCHRONOUS_COMMIT || _la===TSqlParser.SYNCHRONOUS_COMMIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2057; + this.match(TSqlParser.COMMA); + this.state = 2058; + this.match(TSqlParser.FAILOVER_MODE); + this.state = 2059; + this.match(TSqlParser.EQUAL); + this.state = 2060; + this.match(TSqlParser.MANUAL); + this.state = 2061; + this.match(TSqlParser.COMMA); + this.state = 2062; + this.match(TSqlParser.SEEDING_MODE); + this.state = 2063; + this.match(TSqlParser.EQUAL); + this.state = 2064; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2065; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2068; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,125, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 2070; + this.match(TSqlParser.MODIFY); + this.state = 2071; + this.match(TSqlParser.AVAILABILITY); + this.state = 2072; + this.match(TSqlParser.GROUP); + this.state = 2073; + this.match(TSqlParser.ON); + this.state = 2108; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2075; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2074; + this.match(TSqlParser.COMMA); + } + + this.state = 2077; + localctx.ag_name_modified = this.match(TSqlParser.STRING); + this.state = 2078; + this.match(TSqlParser.WITH); + this.state = 2079; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2080; + this.match(TSqlParser.LISTENER_URL); + this.state = 2081; + this.match(TSqlParser.EQUAL); + this.state = 2082; + this.match(TSqlParser.STRING); + this.state = 2089; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,128,this._ctx); + if(la_===1) { + this.state = 2084; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2083; + this.match(TSqlParser.COMMA); + } + + this.state = 2086; + this.match(TSqlParser.AVAILABILITY_MODE); + this.state = 2087; + this.match(TSqlParser.EQUAL); + this.state = 2088; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASYNCHRONOUS_COMMIT || _la===TSqlParser.SYNCHRONOUS_COMMIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 2097; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,130,this._ctx); + if(la_===1) { + this.state = 2092; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2091; + this.match(TSqlParser.COMMA); + } + + this.state = 2094; + this.match(TSqlParser.FAILOVER_MODE); + this.state = 2095; + this.match(TSqlParser.EQUAL); + this.state = 2096; + this.match(TSqlParser.MANUAL); + + } + this.state = 2105; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEEDING_MODE || _la===TSqlParser.COMMA) { + this.state = 2100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2099; + this.match(TSqlParser.COMMA); + } + + this.state = 2102; + this.match(TSqlParser.SEEDING_MODE); + this.state = 2103; + this.match(TSqlParser.EQUAL); + this.state = 2104; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2107; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2110; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,133, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 2112; + this.match(TSqlParser.GRANT); + this.state = 2113; + this.match(TSqlParser.CREATE); + this.state = 2114; + this.match(TSqlParser.ANY); + this.state = 2115; + this.match(TSqlParser.DATABASE); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 2116; + this.match(TSqlParser.DENY); + this.state = 2117; + this.match(TSqlParser.CREATE); + this.state = 2118; + this.match(TSqlParser.ANY); + this.state = 2119; + this.match(TSqlParser.DATABASE); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 2120; + this.match(TSqlParser.FAILOVER); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 2121; + this.match(TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 2122; + this.match(TSqlParser.ADD); + this.state = 2123; + this.match(TSqlParser.LISTENER); + this.state = 2124; + localctx.listener_name = this.match(TSqlParser.STRING); + this.state = 2125; + this.match(TSqlParser.LR_BRACKET); + this.state = 2159; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,138,this._ctx); + switch(la_) { + case 1: + this.state = 2126; + this.match(TSqlParser.WITH); + this.state = 2127; + this.match(TSqlParser.DHCP); + + this.state = 2128; + this.match(TSqlParser.ON); + this.state = 2129; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2130; + this.match(TSqlParser.IPV4_ADDR); + this.state = 2131; + this.match(TSqlParser.IPV4_ADDR); + this.state = 2133; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 2134; + this.match(TSqlParser.WITH); + this.state = 2135; + this.match(TSqlParser.IP); + this.state = 2136; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2148; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2138; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2137; + this.match(TSqlParser.COMMA); + } + + this.state = 2140; + this.match(TSqlParser.LR_BRACKET); + this.state = 2145; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.IPV4_ADDR: + this.state = 2141; + this.match(TSqlParser.IPV4_ADDR); + this.state = 2142; + this.match(TSqlParser.COMMA); + this.state = 2143; + this.match(TSqlParser.IPV4_ADDR); + break; + case TSqlParser.IPV6_ADDR: + this.state = 2144; + this.match(TSqlParser.IPV6_ADDR); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2147; + this.match(TSqlParser.RR_BRACKET); + this.state = 2150; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.LR_BRACKET || _la===TSqlParser.COMMA); + this.state = 2152; + this.match(TSqlParser.RR_BRACKET); + this.state = 2157; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2153; + this.match(TSqlParser.COMMA); + this.state = 2154; + this.match(TSqlParser.PORT); + this.state = 2155; + this.match(TSqlParser.EQUAL); + this.state = 2156; + this.match(TSqlParser.DECIMAL); + } + + break; + + } + this.state = 2161; + this.match(TSqlParser.RR_BRACKET); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 2162; + this.match(TSqlParser.MODIFY); + this.state = 2163; + this.match(TSqlParser.LISTENER); + this.state = 2176; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ADD: + this.state = 2164; + this.match(TSqlParser.ADD); + this.state = 2165; + this.match(TSqlParser.IP); + this.state = 2166; + this.match(TSqlParser.LR_BRACKET); + this.state = 2170; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.IPV4_ADDR: + this.state = 2167; + this.match(TSqlParser.IPV4_ADDR); + this.state = 2168; + this.match(TSqlParser.IPV4_ADDR); + break; + case TSqlParser.IPV6_ADDR: + this.state = 2169; + this.match(TSqlParser.IPV6_ADDR); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2172; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.PORT: + this.state = 2173; + this.match(TSqlParser.PORT); + this.state = 2174; + this.match(TSqlParser.EQUAL); + this.state = 2175; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 2178; + this.match(TSqlParser.RESTART); + this.state = 2179; + this.match(TSqlParser.LISTENER); + this.state = 2180; + this.match(TSqlParser.STRING); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 2181; + this.match(TSqlParser.REMOVE); + this.state = 2182; + this.match(TSqlParser.LISTENER); + this.state = 2183; + this.match(TSqlParser.STRING); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 2184; + this.match(TSqlParser.OFFLINE); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 2185; + this.match(TSqlParser.WITH); + this.state = 2186; + this.match(TSqlParser.LR_BRACKET); + this.state = 2187; + this.match(TSqlParser.DTC_SUPPORT); + this.state = 2188; + this.match(TSqlParser.EQUAL); + this.state = 2189; + this.match(TSqlParser.PER_DB); + this.state = 2190; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_broker_priorityContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_broker_priority; + this.ConversationPriorityName = null; // IdContext + this.RemoteServiceName = null; // Token + this.PriorityValue = null; // Token + return this; +} + +Create_or_alter_broker_priorityContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_broker_priorityContext.prototype.constructor = Create_or_alter_broker_priorityContext; + +Create_or_alter_broker_priorityContext.prototype.BROKER = function() { + return this.getToken(TSqlParser.BROKER, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.PRIORITY = function() { + return this.getToken(TSqlParser.PRIORITY, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_or_alter_broker_priorityContext.prototype.CONTRACT_NAME = function() { + return this.getToken(TSqlParser.CONTRACT_NAME, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_or_alter_broker_priorityContext.prototype.LOCAL_SERVICE_NAME = function() { + return this.getToken(TSqlParser.LOCAL_SERVICE_NAME, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.REMOTE_SERVICE_NAME = function() { + return this.getToken(TSqlParser.REMOTE_SERVICE_NAME, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.PRIORITY_LEVEL = function() { + return this.getToken(TSqlParser.PRIORITY_LEVEL, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.ANY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ANY); + } else { + return this.getToken(TSqlParser.ANY, i); + } +}; + + +Create_or_alter_broker_priorityContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_broker_priorityContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.DOUBLE_FORWARD_SLASH = function() { + return this.getToken(TSqlParser.DOUBLE_FORWARD_SLASH, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_broker_priority(this); + } +}; + +Create_or_alter_broker_priorityContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_broker_priority(this); + } +}; + +Create_or_alter_broker_priorityContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_broker_priority(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_broker_priorityContext = Create_or_alter_broker_priorityContext; + +TSqlParser.prototype.create_or_alter_broker_priority = function() { + + var localctx = new Create_or_alter_broker_priorityContext(this, this._ctx, this.state); + this.enterRule(localctx, 162, TSqlParser.RULE_create_or_alter_broker_priority); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2193; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALTER || _la===TSqlParser.CREATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2194; + this.match(TSqlParser.BROKER); + this.state = 2195; + this.match(TSqlParser.PRIORITY); + this.state = 2196; + localctx.ConversationPriorityName = this.id(); + this.state = 2197; + this.match(TSqlParser.FOR); + this.state = 2198; + this.match(TSqlParser.CONVERSATION); + this.state = 2199; + this.match(TSqlParser.SET); + this.state = 2200; + this.match(TSqlParser.LR_BRACKET); + this.state = 2210; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTRACT_NAME) { + this.state = 2201; + this.match(TSqlParser.CONTRACT_NAME); + this.state = 2202; + this.match(TSqlParser.EQUAL); + this.state = 2205; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 2203; + this.id(); + break; + case TSqlParser.ANY: + this.state = 2204; + this.match(TSqlParser.ANY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2208; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2207; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 2224; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LOCAL_SERVICE_NAME) { + this.state = 2212; + this.match(TSqlParser.LOCAL_SERVICE_NAME); + this.state = 2213; + this.match(TSqlParser.EQUAL); + this.state = 2219; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DOUBLE_FORWARD_SLASH: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 2215; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DOUBLE_FORWARD_SLASH) { + this.state = 2214; + this.match(TSqlParser.DOUBLE_FORWARD_SLASH); + } + + this.state = 2217; + this.id(); + break; + case TSqlParser.ANY: + this.state = 2218; + this.match(TSqlParser.ANY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2222; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2221; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 2235; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.REMOTE_SERVICE_NAME) { + this.state = 2226; + this.match(TSqlParser.REMOTE_SERVICE_NAME); + this.state = 2227; + this.match(TSqlParser.EQUAL); + this.state = 2230; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 2228; + localctx.RemoteServiceName = this.match(TSqlParser.STRING); + break; + case TSqlParser.ANY: + this.state = 2229; + this.match(TSqlParser.ANY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2233; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2232; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 2243; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PRIORITY_LEVEL) { + this.state = 2237; + this.match(TSqlParser.PRIORITY_LEVEL); + this.state = 2238; + this.match(TSqlParser.EQUAL); + this.state = 2241; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 2239; + localctx.PriorityValue = this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.DEFAULT: + this.state = 2240; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 2245; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_broker_priorityContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_broker_priority; + this.ConversationPriorityName = null; // IdContext + return this; +} + +Drop_broker_priorityContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_broker_priorityContext.prototype.constructor = Drop_broker_priorityContext; + +Drop_broker_priorityContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_broker_priorityContext.prototype.BROKER = function() { + return this.getToken(TSqlParser.BROKER, 0); +}; + +Drop_broker_priorityContext.prototype.PRIORITY = function() { + return this.getToken(TSqlParser.PRIORITY, 0); +}; + +Drop_broker_priorityContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_broker_priorityContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_broker_priority(this); + } +}; + +Drop_broker_priorityContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_broker_priority(this); + } +}; + +Drop_broker_priorityContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_broker_priority(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_broker_priorityContext = Drop_broker_priorityContext; + +TSqlParser.prototype.drop_broker_priority = function() { + + var localctx = new Drop_broker_priorityContext(this, this._ctx, this.state); + this.enterRule(localctx, 164, TSqlParser.RULE_drop_broker_priority); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2247; + this.match(TSqlParser.DROP); + this.state = 2248; + this.match(TSqlParser.BROKER); + this.state = 2249; + this.match(TSqlParser.PRIORITY); + this.state = 2250; + localctx.ConversationPriorityName = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_certificateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_certificate; + this.certificate_name = null; // IdContext + return this; +} + +Alter_certificateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_certificateContext.prototype.constructor = Alter_certificateContext; + +Alter_certificateContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_certificateContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Alter_certificateContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_certificateContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Alter_certificateContext.prototype.PRIVATE_KEY = function() { + return this.getToken(TSqlParser.PRIVATE_KEY, 0); +}; + +Alter_certificateContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_certificateContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Alter_certificateContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_certificateContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_certificateContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_certificateContext.prototype.ACTIVE = function() { + return this.getToken(TSqlParser.ACTIVE, 0); +}; + +Alter_certificateContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Alter_certificateContext.prototype.BEGIN_DIALOG = function() { + return this.getToken(TSqlParser.BEGIN_DIALOG, 0); +}; + +Alter_certificateContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_certificateContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_certificateContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_certificateContext.prototype.FILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE); + } else { + return this.getToken(TSqlParser.FILE, i); + } +}; + + +Alter_certificateContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_certificateContext.prototype.DECRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECRYPTION); + } else { + return this.getToken(TSqlParser.DECRYPTION, i); + } +}; + + +Alter_certificateContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Alter_certificateContext.prototype.PASSWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PASSWORD); + } else { + return this.getToken(TSqlParser.PASSWORD, i); + } +}; + + +Alter_certificateContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Alter_certificateContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_certificateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_certificate(this); + } +}; + +Alter_certificateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_certificate(this); + } +}; + +Alter_certificateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_certificate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_certificateContext = Alter_certificateContext; + +TSqlParser.prototype.alter_certificate = function() { + + var localctx = new Alter_certificateContext(this, this._ctx, this.state); + this.enterRule(localctx, 166, TSqlParser.RULE_alter_certificate); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2252; + this.match(TSqlParser.ALTER); + this.state = 2253; + this.match(TSqlParser.CERTIFICATE); + this.state = 2254; + localctx.certificate_name = this.id(); + this.state = 2294; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,159,this._ctx); + switch(la_) { + case 1: + this.state = 2255; + this.match(TSqlParser.REMOVE); + this.state = 2256; + this.match(TSqlParser.PRIVATE_KEY); + break; + + case 2: + this.state = 2257; + this.match(TSqlParser.WITH); + this.state = 2258; + this.match(TSqlParser.PRIVATE); + this.state = 2259; + this.match(TSqlParser.KEY); + this.state = 2260; + this.match(TSqlParser.LR_BRACKET); + this.state = 2283; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2283; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILE: + this.state = 2261; + this.match(TSqlParser.FILE); + this.state = 2262; + this.match(TSqlParser.EQUAL); + this.state = 2263; + this.match(TSqlParser.STRING); + this.state = 2265; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2264; + this.match(TSqlParser.COMMA); + } + + break; + case TSqlParser.DECRYPTION: + this.state = 2267; + this.match(TSqlParser.DECRYPTION); + this.state = 2268; + this.match(TSqlParser.BY); + this.state = 2269; + this.match(TSqlParser.PASSWORD); + this.state = 2270; + this.match(TSqlParser.EQUAL); + this.state = 2271; + this.match(TSqlParser.STRING); + this.state = 2273; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2272; + this.match(TSqlParser.COMMA); + } + + break; + case TSqlParser.ENCRYPTION: + this.state = 2275; + this.match(TSqlParser.ENCRYPTION); + this.state = 2276; + this.match(TSqlParser.BY); + this.state = 2277; + this.match(TSqlParser.PASSWORD); + this.state = 2278; + this.match(TSqlParser.EQUAL); + this.state = 2279; + this.match(TSqlParser.STRING); + this.state = 2281; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2280; + this.match(TSqlParser.COMMA); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2285; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.FILE || _la===TSqlParser.DECRYPTION || _la===TSqlParser.ENCRYPTION); + this.state = 2287; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.state = 2288; + this.match(TSqlParser.WITH); + this.state = 2289; + this.match(TSqlParser.ACTIVE); + this.state = 2290; + this.match(TSqlParser.FOR); + this.state = 2291; + this.match(TSqlParser.BEGIN_DIALOG); + this.state = 2292; + this.match(TSqlParser.EQUAL); + this.state = 2293; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_column_encryption_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_column_encryption_key; + this.column_encryption_key = null; // IdContext + this.column_master_key_name = null; // IdContext + this.algorithm_name = null; // Token + return this; +} + +Alter_column_encryption_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_column_encryption_keyContext.prototype.constructor = Alter_column_encryption_keyContext; + +Alter_column_encryption_keyContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_column_encryption_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Alter_column_encryption_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_column_encryption_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_column_encryption_keyContext.prototype.VALUE = function() { + return this.getToken(TSqlParser.VALUE, 0); +}; + +Alter_column_encryption_keyContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_column_encryption_keyContext.prototype.COLUMN_MASTER_KEY = function() { + return this.getToken(TSqlParser.COLUMN_MASTER_KEY, 0); +}; + +Alter_column_encryption_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_column_encryption_keyContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_column_encryption_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_column_encryption_keyContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_column_encryption_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_column_encryption_keyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_column_encryption_keyContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Alter_column_encryption_keyContext.prototype.ENCRYPTED_VALUE = function() { + return this.getToken(TSqlParser.ENCRYPTED_VALUE, 0); +}; + +Alter_column_encryption_keyContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Alter_column_encryption_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_column_encryption_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_column_encryption_key(this); + } +}; + +Alter_column_encryption_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_column_encryption_key(this); + } +}; + +Alter_column_encryption_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_column_encryption_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_column_encryption_keyContext = Alter_column_encryption_keyContext; + +TSqlParser.prototype.alter_column_encryption_key = function() { + + var localctx = new Alter_column_encryption_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 168, TSqlParser.RULE_alter_column_encryption_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2296; + this.match(TSqlParser.ALTER); + this.state = 2297; + this.match(TSqlParser.COLUMN); + this.state = 2298; + this.match(TSqlParser.ENCRYPTION); + this.state = 2299; + this.match(TSqlParser.KEY); + this.state = 2300; + localctx.column_encryption_key = this.id(); + this.state = 2301; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2302; + this.match(TSqlParser.VALUE); + this.state = 2303; + this.match(TSqlParser.LR_BRACKET); + this.state = 2304; + this.match(TSqlParser.COLUMN_MASTER_KEY); + this.state = 2305; + this.match(TSqlParser.EQUAL); + this.state = 2306; + localctx.column_master_key_name = this.id(); + this.state = 2315; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2307; + this.match(TSqlParser.COMMA); + this.state = 2308; + this.match(TSqlParser.ALGORITHM); + this.state = 2309; + this.match(TSqlParser.EQUAL); + this.state = 2310; + localctx.algorithm_name = this.match(TSqlParser.STRING); + this.state = 2311; + this.match(TSqlParser.COMMA); + this.state = 2312; + this.match(TSqlParser.ENCRYPTED_VALUE); + this.state = 2313; + this.match(TSqlParser.EQUAL); + this.state = 2314; + this.match(TSqlParser.BINARY); + } + + this.state = 2317; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_column_encryption_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_column_encryption_key; + this.column_encryption_key = null; // IdContext + this.column_master_key_name = null; // IdContext + this.algorithm_name = null; // Token + this.encrypted_value = null; // Token + return this; +} + +Create_column_encryption_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_column_encryption_keyContext.prototype.constructor = Create_column_encryption_keyContext; + +Create_column_encryption_keyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_column_encryption_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Create_column_encryption_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_column_encryption_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_column_encryption_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_column_encryption_keyContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Create_column_encryption_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_column_encryption_keyContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_column_encryption_keyContext.prototype.COLUMN_MASTER_KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLUMN_MASTER_KEY); + } else { + return this.getToken(TSqlParser.COLUMN_MASTER_KEY, i); + } +}; + + +Create_column_encryption_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_column_encryption_keyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_column_encryption_keyContext.prototype.ALGORITHM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALGORITHM); + } else { + return this.getToken(TSqlParser.ALGORITHM, i); + } +}; + + +Create_column_encryption_keyContext.prototype.ENCRYPTED_VALUE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTED_VALUE); + } else { + return this.getToken(TSqlParser.ENCRYPTED_VALUE, i); + } +}; + + +Create_column_encryption_keyContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_column_encryption_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_column_encryption_keyContext.prototype.BINARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BINARY); + } else { + return this.getToken(TSqlParser.BINARY, i); + } +}; + + +Create_column_encryption_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_column_encryption_key(this); + } +}; + +Create_column_encryption_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_column_encryption_key(this); + } +}; + +Create_column_encryption_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_column_encryption_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_column_encryption_keyContext = Create_column_encryption_keyContext; + +TSqlParser.prototype.create_column_encryption_key = function() { + + var localctx = new Create_column_encryption_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 170, TSqlParser.RULE_create_column_encryption_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2319; + this.match(TSqlParser.CREATE); + this.state = 2320; + this.match(TSqlParser.COLUMN); + this.state = 2321; + this.match(TSqlParser.ENCRYPTION); + this.state = 2322; + this.match(TSqlParser.KEY); + this.state = 2323; + localctx.column_encryption_key = this.id(); + this.state = 2324; + this.match(TSqlParser.WITH); + this.state = 2325; + this.match(TSqlParser.VALUES); + this.state = 2345; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2326; + this.match(TSqlParser.LR_BRACKET); + this.state = 2328; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2327; + this.match(TSqlParser.COMMA); + } + + this.state = 2330; + this.match(TSqlParser.COLUMN_MASTER_KEY); + this.state = 2331; + this.match(TSqlParser.EQUAL); + this.state = 2332; + localctx.column_master_key_name = this.id(); + this.state = 2333; + this.match(TSqlParser.COMMA); + this.state = 2334; + this.match(TSqlParser.ALGORITHM); + this.state = 2335; + this.match(TSqlParser.EQUAL); + this.state = 2336; + localctx.algorithm_name = this.match(TSqlParser.STRING); + this.state = 2337; + this.match(TSqlParser.COMMA); + this.state = 2338; + this.match(TSqlParser.ENCRYPTED_VALUE); + this.state = 2339; + this.match(TSqlParser.EQUAL); + this.state = 2340; + localctx.encrypted_value = this.match(TSqlParser.BINARY); + this.state = 2341; + this.match(TSqlParser.RR_BRACKET); + this.state = 2343; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2342; + this.match(TSqlParser.COMMA); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2347; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,163, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_certificateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_certificate; + this.certificate_name = null; // IdContext + return this; +} + +Drop_certificateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_certificateContext.prototype.constructor = Drop_certificateContext; + +Drop_certificateContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_certificateContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Drop_certificateContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_certificateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_certificate(this); + } +}; + +Drop_certificateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_certificate(this); + } +}; + +Drop_certificateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_certificate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_certificateContext = Drop_certificateContext; + +TSqlParser.prototype.drop_certificate = function() { + + var localctx = new Drop_certificateContext(this, this._ctx, this.state); + this.enterRule(localctx, 172, TSqlParser.RULE_drop_certificate); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2349; + this.match(TSqlParser.DROP); + this.state = 2350; + this.match(TSqlParser.CERTIFICATE); + this.state = 2351; + localctx.certificate_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_column_encryption_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_column_encryption_key; + this.key_name = null; // IdContext + return this; +} + +Drop_column_encryption_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_column_encryption_keyContext.prototype.constructor = Drop_column_encryption_keyContext; + +Drop_column_encryption_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_column_encryption_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Drop_column_encryption_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Drop_column_encryption_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Drop_column_encryption_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_column_encryption_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_column_encryption_key(this); + } +}; + +Drop_column_encryption_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_column_encryption_key(this); + } +}; + +Drop_column_encryption_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_column_encryption_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_column_encryption_keyContext = Drop_column_encryption_keyContext; + +TSqlParser.prototype.drop_column_encryption_key = function() { + + var localctx = new Drop_column_encryption_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 174, TSqlParser.RULE_drop_column_encryption_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2353; + this.match(TSqlParser.DROP); + this.state = 2354; + this.match(TSqlParser.COLUMN); + this.state = 2355; + this.match(TSqlParser.ENCRYPTION); + this.state = 2356; + this.match(TSqlParser.KEY); + this.state = 2357; + localctx.key_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_column_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_column_master_key; + this.key_name = null; // IdContext + return this; +} + +Drop_column_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_column_master_keyContext.prototype.constructor = Drop_column_master_keyContext; + +Drop_column_master_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_column_master_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Drop_column_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Drop_column_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Drop_column_master_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_column_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_column_master_key(this); + } +}; + +Drop_column_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_column_master_key(this); + } +}; + +Drop_column_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_column_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_column_master_keyContext = Drop_column_master_keyContext; + +TSqlParser.prototype.drop_column_master_key = function() { + + var localctx = new Drop_column_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 176, TSqlParser.RULE_drop_column_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2359; + this.match(TSqlParser.DROP); + this.state = 2360; + this.match(TSqlParser.COLUMN); + this.state = 2361; + this.match(TSqlParser.MASTER); + this.state = 2362; + this.match(TSqlParser.KEY); + this.state = 2363; + localctx.key_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_contractContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_contract; + this.dropped_contract_name = null; // IdContext + return this; +} + +Drop_contractContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_contractContext.prototype.constructor = Drop_contractContext; + +Drop_contractContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_contractContext.prototype.CONTRACT = function() { + return this.getToken(TSqlParser.CONTRACT, 0); +}; + +Drop_contractContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_contractContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_contract(this); + } +}; + +Drop_contractContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_contract(this); + } +}; + +Drop_contractContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_contract(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_contractContext = Drop_contractContext; + +TSqlParser.prototype.drop_contract = function() { + + var localctx = new Drop_contractContext(this, this._ctx, this.state); + this.enterRule(localctx, 178, TSqlParser.RULE_drop_contract); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2365; + this.match(TSqlParser.DROP); + this.state = 2366; + this.match(TSqlParser.CONTRACT); + this.state = 2367; + localctx.dropped_contract_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_credentialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_credential; + this.credential_name = null; // IdContext + return this; +} + +Drop_credentialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_credentialContext.prototype.constructor = Drop_credentialContext; + +Drop_credentialContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_credentialContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Drop_credentialContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_credentialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_credential(this); + } +}; + +Drop_credentialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_credential(this); + } +}; + +Drop_credentialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_credential(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_credentialContext = Drop_credentialContext; + +TSqlParser.prototype.drop_credential = function() { + + var localctx = new Drop_credentialContext(this, this._ctx, this.state); + this.enterRule(localctx, 180, TSqlParser.RULE_drop_credential); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2369; + this.match(TSqlParser.DROP); + this.state = 2370; + this.match(TSqlParser.CREDENTIAL); + this.state = 2371; + localctx.credential_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_cryptograhic_providerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_cryptograhic_provider; + this.provider_name = null; // IdContext + return this; +} + +Drop_cryptograhic_providerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_cryptograhic_providerContext.prototype.constructor = Drop_cryptograhic_providerContext; + +Drop_cryptograhic_providerContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_cryptograhic_providerContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Drop_cryptograhic_providerContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Drop_cryptograhic_providerContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_cryptograhic_providerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_cryptograhic_provider(this); + } +}; + +Drop_cryptograhic_providerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_cryptograhic_provider(this); + } +}; + +Drop_cryptograhic_providerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_cryptograhic_provider(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_cryptograhic_providerContext = Drop_cryptograhic_providerContext; + +TSqlParser.prototype.drop_cryptograhic_provider = function() { + + var localctx = new Drop_cryptograhic_providerContext(this, this._ctx, this.state); + this.enterRule(localctx, 182, TSqlParser.RULE_drop_cryptograhic_provider); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2373; + this.match(TSqlParser.DROP); + this.state = 2374; + this.match(TSqlParser.CRYPTOGRAPHIC); + this.state = 2375; + this.match(TSqlParser.PROVIDER); + this.state = 2376; + localctx.provider_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_database; + this.database_name_or_database_snapshot_name = null; // IdContext + return this; +} + +Drop_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_databaseContext.prototype.constructor = Drop_databaseContext; + +Drop_databaseContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_databaseContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_databaseContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_databaseContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_databaseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_database(this); + } +}; + +Drop_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_database(this); + } +}; + +Drop_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_databaseContext = Drop_databaseContext; + +TSqlParser.prototype.drop_database = function() { + + var localctx = new Drop_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 184, TSqlParser.RULE_drop_database); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2378; + this.match(TSqlParser.DROP); + this.state = 2379; + this.match(TSqlParser.DATABASE); + this.state = 2382; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2380; + this.match(TSqlParser.IF); + this.state = 2381; + this.match(TSqlParser.EXISTS); + } + + this.state = 2388; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2385; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2384; + this.match(TSqlParser.COMMA); + } + + this.state = 2387; + localctx.database_name_or_database_snapshot_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2390; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,166, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_database_audit_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_database_audit_specification; + this.audit_specification_name = null; // IdContext + return this; +} + +Drop_database_audit_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_database_audit_specificationContext.prototype.constructor = Drop_database_audit_specificationContext; + +Drop_database_audit_specificationContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_database_audit_specificationContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_database_audit_specificationContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Drop_database_audit_specificationContext.prototype.SPECIFICATION = function() { + return this.getToken(TSqlParser.SPECIFICATION, 0); +}; + +Drop_database_audit_specificationContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_database_audit_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_database_audit_specification(this); + } +}; + +Drop_database_audit_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_database_audit_specification(this); + } +}; + +Drop_database_audit_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_database_audit_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_database_audit_specificationContext = Drop_database_audit_specificationContext; + +TSqlParser.prototype.drop_database_audit_specification = function() { + + var localctx = new Drop_database_audit_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 186, TSqlParser.RULE_drop_database_audit_specification); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2392; + this.match(TSqlParser.DROP); + this.state = 2393; + this.match(TSqlParser.DATABASE); + this.state = 2394; + this.match(TSqlParser.AUDIT); + this.state = 2395; + this.match(TSqlParser.SPECIFICATION); + this.state = 2396; + localctx.audit_specification_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_database_scoped_credentialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_database_scoped_credential; + this.credential_name = null; // IdContext + return this; +} + +Drop_database_scoped_credentialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_database_scoped_credentialContext.prototype.constructor = Drop_database_scoped_credentialContext; + +Drop_database_scoped_credentialContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_database_scoped_credentialContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_database_scoped_credentialContext.prototype.SCOPED = function() { + return this.getToken(TSqlParser.SCOPED, 0); +}; + +Drop_database_scoped_credentialContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Drop_database_scoped_credentialContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_database_scoped_credentialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_database_scoped_credential(this); + } +}; + +Drop_database_scoped_credentialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_database_scoped_credential(this); + } +}; + +Drop_database_scoped_credentialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_database_scoped_credential(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_database_scoped_credentialContext = Drop_database_scoped_credentialContext; + +TSqlParser.prototype.drop_database_scoped_credential = function() { + + var localctx = new Drop_database_scoped_credentialContext(this, this._ctx, this.state); + this.enterRule(localctx, 188, TSqlParser.RULE_drop_database_scoped_credential); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2398; + this.match(TSqlParser.DROP); + this.state = 2399; + this.match(TSqlParser.DATABASE); + this.state = 2400; + this.match(TSqlParser.SCOPED); + this.state = 2401; + this.match(TSqlParser.CREDENTIAL); + this.state = 2402; + localctx.credential_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_defaultContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_default; + this.schema_name = null; // IdContext + this.default_name = null; // IdContext + return this; +} + +Drop_defaultContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_defaultContext.prototype.constructor = Drop_defaultContext; + +Drop_defaultContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_defaultContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Drop_defaultContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_defaultContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_defaultContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_defaultContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Drop_defaultContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_defaultContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_default(this); + } +}; + +Drop_defaultContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_default(this); + } +}; + +Drop_defaultContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_default(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_defaultContext = Drop_defaultContext; + +TSqlParser.prototype.drop_default = function() { + + var localctx = new Drop_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 190, TSqlParser.RULE_drop_default); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2404; + this.match(TSqlParser.DROP); + this.state = 2405; + this.match(TSqlParser.DEFAULT); + this.state = 2408; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2406; + this.match(TSqlParser.IF); + this.state = 2407; + this.match(TSqlParser.EXISTS); + } + + this.state = 2411; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2410; + this.match(TSqlParser.COMMA); + } + + this.state = 2416; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,169,this._ctx); + if(la_===1) { + this.state = 2413; + localctx.schema_name = this.id(); + this.state = 2414; + this.match(TSqlParser.DOT); + + } + this.state = 2418; + localctx.default_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_endpointContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_endpoint; + this.endPointName = null; // IdContext + return this; +} + +Drop_endpointContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_endpointContext.prototype.constructor = Drop_endpointContext; + +Drop_endpointContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_endpointContext.prototype.ENDPOINT = function() { + return this.getToken(TSqlParser.ENDPOINT, 0); +}; + +Drop_endpointContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_endpointContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_endpoint(this); + } +}; + +Drop_endpointContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_endpoint(this); + } +}; + +Drop_endpointContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_endpoint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_endpointContext = Drop_endpointContext; + +TSqlParser.prototype.drop_endpoint = function() { + + var localctx = new Drop_endpointContext(this, this._ctx, this.state); + this.enterRule(localctx, 192, TSqlParser.RULE_drop_endpoint); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2420; + this.match(TSqlParser.DROP); + this.state = 2421; + this.match(TSqlParser.ENDPOINT); + this.state = 2422; + localctx.endPointName = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_data_sourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_data_source; + this.external_data_source_name = null; // IdContext + return this; +} + +Drop_external_data_sourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_data_sourceContext.prototype.constructor = Drop_external_data_sourceContext; + +Drop_external_data_sourceContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_data_sourceContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_data_sourceContext.prototype.DATA = function() { + return this.getToken(TSqlParser.DATA, 0); +}; + +Drop_external_data_sourceContext.prototype.SOURCE = function() { + return this.getToken(TSqlParser.SOURCE, 0); +}; + +Drop_external_data_sourceContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_external_data_sourceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_data_source(this); + } +}; + +Drop_external_data_sourceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_data_source(this); + } +}; + +Drop_external_data_sourceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_data_source(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_data_sourceContext = Drop_external_data_sourceContext; + +TSqlParser.prototype.drop_external_data_source = function() { + + var localctx = new Drop_external_data_sourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 194, TSqlParser.RULE_drop_external_data_source); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2424; + this.match(TSqlParser.DROP); + this.state = 2425; + this.match(TSqlParser.EXTERNAL); + this.state = 2426; + this.match(TSqlParser.DATA); + this.state = 2427; + this.match(TSqlParser.SOURCE); + this.state = 2428; + localctx.external_data_source_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_file_formatContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_file_format; + this.external_file_format_name = null; // IdContext + return this; +} + +Drop_external_file_formatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_file_formatContext.prototype.constructor = Drop_external_file_formatContext; + +Drop_external_file_formatContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_file_formatContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_file_formatContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Drop_external_file_formatContext.prototype.FORMAT = function() { + return this.getToken(TSqlParser.FORMAT, 0); +}; + +Drop_external_file_formatContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_external_file_formatContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_file_format(this); + } +}; + +Drop_external_file_formatContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_file_format(this); + } +}; + +Drop_external_file_formatContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_file_format(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_file_formatContext = Drop_external_file_formatContext; + +TSqlParser.prototype.drop_external_file_format = function() { + + var localctx = new Drop_external_file_formatContext(this, this._ctx, this.state); + this.enterRule(localctx, 196, TSqlParser.RULE_drop_external_file_format); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2430; + this.match(TSqlParser.DROP); + this.state = 2431; + this.match(TSqlParser.EXTERNAL); + this.state = 2432; + this.match(TSqlParser.FILE); + this.state = 2433; + this.match(TSqlParser.FORMAT); + this.state = 2434; + localctx.external_file_format_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_libraryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_library; + this.library_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Drop_external_libraryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_libraryContext.prototype.constructor = Drop_external_libraryContext; + +Drop_external_libraryContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_libraryContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_libraryContext.prototype.LIBRARY = function() { + return this.getToken(TSqlParser.LIBRARY, 0); +}; + +Drop_external_libraryContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_external_libraryContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Drop_external_libraryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_library(this); + } +}; + +Drop_external_libraryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_library(this); + } +}; + +Drop_external_libraryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_library(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_libraryContext = Drop_external_libraryContext; + +TSqlParser.prototype.drop_external_library = function() { + + var localctx = new Drop_external_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 198, TSqlParser.RULE_drop_external_library); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2436; + this.match(TSqlParser.DROP); + this.state = 2437; + this.match(TSqlParser.EXTERNAL); + this.state = 2438; + this.match(TSqlParser.LIBRARY); + this.state = 2439; + localctx.library_name = this.id(); + this.state = 2442; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 2440; + this.match(TSqlParser.AUTHORIZATION); + this.state = 2441; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_resource_pool; + this.pool_name = null; // IdContext + return this; +} + +Drop_external_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_resource_poolContext.prototype.constructor = Drop_external_resource_poolContext; + +Drop_external_resource_poolContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_resource_poolContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Drop_external_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Drop_external_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_external_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_resource_pool(this); + } +}; + +Drop_external_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_resource_pool(this); + } +}; + +Drop_external_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_resource_poolContext = Drop_external_resource_poolContext; + +TSqlParser.prototype.drop_external_resource_pool = function() { + + var localctx = new Drop_external_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 200, TSqlParser.RULE_drop_external_resource_pool); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2444; + this.match(TSqlParser.DROP); + this.state = 2445; + this.match(TSqlParser.EXTERNAL); + this.state = 2446; + this.match(TSqlParser.RESOURCE); + this.state = 2447; + this.match(TSqlParser.POOL); + this.state = 2448; + localctx.pool_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_table; + this.database_name = null; // IdContext + this.schema_name = null; // IdContext + this.table = null; // IdContext + return this; +} + +Drop_external_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_tableContext.prototype.constructor = Drop_external_tableContext; + +Drop_external_tableContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_tableContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Drop_external_tableContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_external_tableContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_external_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_table(this); + } +}; + +Drop_external_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_table(this); + } +}; + +Drop_external_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_tableContext = Drop_external_tableContext; + +TSqlParser.prototype.drop_external_table = function() { + + var localctx = new Drop_external_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 202, TSqlParser.RULE_drop_external_table); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2450; + this.match(TSqlParser.DROP); + this.state = 2451; + this.match(TSqlParser.EXTERNAL); + this.state = 2452; + this.match(TSqlParser.TABLE); + this.state = 2456; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,171,this._ctx); + if(la_===1) { + this.state = 2453; + localctx.database_name = this.id(); + this.state = 2454; + this.match(TSqlParser.DOT); + + } + this.state = 2461; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,172,this._ctx); + if(la_===1) { + this.state = 2458; + localctx.schema_name = this.id(); + this.state = 2459; + this.match(TSqlParser.DOT); + + } + this.state = 2463; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_event_notificationsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_event_notifications; + this.notification_name = null; // IdContext + this.queue_name = null; // IdContext + return this; +} + +Drop_event_notificationsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_event_notificationsContext.prototype.constructor = Drop_event_notificationsContext; + +Drop_event_notificationsContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_event_notificationsContext.prototype.EVENT = function() { + return this.getToken(TSqlParser.EVENT, 0); +}; + +Drop_event_notificationsContext.prototype.NOTIFICATION = function() { + return this.getToken(TSqlParser.NOTIFICATION, 0); +}; + +Drop_event_notificationsContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_event_notificationsContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_event_notificationsContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_event_notificationsContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Drop_event_notificationsContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_event_notificationsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_event_notificationsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_event_notifications(this); + } +}; + +Drop_event_notificationsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_event_notifications(this); + } +}; + +Drop_event_notificationsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_event_notifications(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_event_notificationsContext = Drop_event_notificationsContext; + +TSqlParser.prototype.drop_event_notifications = function() { + + var localctx = new Drop_event_notificationsContext(this, this._ctx, this.state); + this.enterRule(localctx, 204, TSqlParser.RULE_drop_event_notifications); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2465; + this.match(TSqlParser.DROP); + this.state = 2466; + this.match(TSqlParser.EVENT); + this.state = 2467; + this.match(TSqlParser.NOTIFICATION); + this.state = 2472; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2469; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2468; + this.match(TSqlParser.COMMA); + } + + this.state = 2471; + localctx.notification_name = this.id(); + this.state = 2474; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 2476; + this.match(TSqlParser.ON); + this.state = 2481; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SERVER: + this.state = 2477; + this.match(TSqlParser.SERVER); + break; + case TSqlParser.DATABASE: + this.state = 2478; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.QUEUE: + this.state = 2479; + this.match(TSqlParser.QUEUE); + this.state = 2480; + localctx.queue_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_event_sessionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_event_session; + this.event_session_name = null; // IdContext + return this; +} + +Drop_event_sessionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_event_sessionContext.prototype.constructor = Drop_event_sessionContext; + +Drop_event_sessionContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_event_sessionContext.prototype.EVENT = function() { + return this.getToken(TSqlParser.EVENT, 0); +}; + +Drop_event_sessionContext.prototype.SESSION = function() { + return this.getToken(TSqlParser.SESSION, 0); +}; + +Drop_event_sessionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_event_sessionContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_event_sessionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_event_sessionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_event_session(this); + } +}; + +Drop_event_sessionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_event_session(this); + } +}; + +Drop_event_sessionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_event_session(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_event_sessionContext = Drop_event_sessionContext; + +TSqlParser.prototype.drop_event_session = function() { + + var localctx = new Drop_event_sessionContext(this, this._ctx, this.state); + this.enterRule(localctx, 206, TSqlParser.RULE_drop_event_session); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2483; + this.match(TSqlParser.DROP); + this.state = 2484; + this.match(TSqlParser.EVENT); + this.state = 2485; + this.match(TSqlParser.SESSION); + this.state = 2486; + localctx.event_session_name = this.id(); + this.state = 2487; + this.match(TSqlParser.ON); + this.state = 2488; + this.match(TSqlParser.SERVER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_fulltext_catalogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_fulltext_catalog; + this.catalog_name = null; // IdContext + return this; +} + +Drop_fulltext_catalogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_fulltext_catalogContext.prototype.constructor = Drop_fulltext_catalogContext; + +Drop_fulltext_catalogContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_fulltext_catalogContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Drop_fulltext_catalogContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Drop_fulltext_catalogContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_fulltext_catalogContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_fulltext_catalog(this); + } +}; + +Drop_fulltext_catalogContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_fulltext_catalog(this); + } +}; + +Drop_fulltext_catalogContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_fulltext_catalog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_fulltext_catalogContext = Drop_fulltext_catalogContext; + +TSqlParser.prototype.drop_fulltext_catalog = function() { + + var localctx = new Drop_fulltext_catalogContext(this, this._ctx, this.state); + this.enterRule(localctx, 208, TSqlParser.RULE_drop_fulltext_catalog); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2490; + this.match(TSqlParser.DROP); + this.state = 2491; + this.match(TSqlParser.FULLTEXT); + this.state = 2492; + this.match(TSqlParser.CATALOG); + this.state = 2493; + localctx.catalog_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_fulltext_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_fulltext_index; + this.schema = null; // IdContext + this.table = null; // IdContext + return this; +} + +Drop_fulltext_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_fulltext_indexContext.prototype.constructor = Drop_fulltext_indexContext; + +Drop_fulltext_indexContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_fulltext_indexContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Drop_fulltext_indexContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Drop_fulltext_indexContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_fulltext_indexContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_fulltext_indexContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_fulltext_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_fulltext_index(this); + } +}; + +Drop_fulltext_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_fulltext_index(this); + } +}; + +Drop_fulltext_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_fulltext_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_fulltext_indexContext = Drop_fulltext_indexContext; + +TSqlParser.prototype.drop_fulltext_index = function() { + + var localctx = new Drop_fulltext_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 210, TSqlParser.RULE_drop_fulltext_index); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2495; + this.match(TSqlParser.DROP); + this.state = 2496; + this.match(TSqlParser.FULLTEXT); + this.state = 2497; + this.match(TSqlParser.INDEX); + this.state = 2498; + this.match(TSqlParser.ON); + this.state = 2502; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,176,this._ctx); + if(la_===1) { + this.state = 2499; + localctx.schema = this.id(); + this.state = 2500; + this.match(TSqlParser.DOT); + + } + this.state = 2504; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_fulltext_stoplistContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_fulltext_stoplist; + this.stoplist_name = null; // IdContext + return this; +} + +Drop_fulltext_stoplistContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_fulltext_stoplistContext.prototype.constructor = Drop_fulltext_stoplistContext; + +Drop_fulltext_stoplistContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_fulltext_stoplistContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Drop_fulltext_stoplistContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Drop_fulltext_stoplistContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_fulltext_stoplistContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_fulltext_stoplist(this); + } +}; + +Drop_fulltext_stoplistContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_fulltext_stoplist(this); + } +}; + +Drop_fulltext_stoplistContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_fulltext_stoplist(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_fulltext_stoplistContext = Drop_fulltext_stoplistContext; + +TSqlParser.prototype.drop_fulltext_stoplist = function() { + + var localctx = new Drop_fulltext_stoplistContext(this, this._ctx, this.state); + this.enterRule(localctx, 212, TSqlParser.RULE_drop_fulltext_stoplist); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2506; + this.match(TSqlParser.DROP); + this.state = 2507; + this.match(TSqlParser.FULLTEXT); + this.state = 2508; + this.match(TSqlParser.STOPLIST); + this.state = 2509; + localctx.stoplist_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_loginContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_login; + this.login_name = null; // IdContext + return this; +} + +Drop_loginContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_loginContext.prototype.constructor = Drop_loginContext; + +Drop_loginContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_loginContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Drop_loginContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_loginContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_login(this); + } +}; + +Drop_loginContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_login(this); + } +}; + +Drop_loginContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_login(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_loginContext = Drop_loginContext; + +TSqlParser.prototype.drop_login = function() { + + var localctx = new Drop_loginContext(this, this._ctx, this.state); + this.enterRule(localctx, 214, TSqlParser.RULE_drop_login); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2511; + this.match(TSqlParser.DROP); + this.state = 2512; + this.match(TSqlParser.LOGIN); + this.state = 2513; + localctx.login_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_master_key; + return this; +} + +Drop_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_master_keyContext.prototype.constructor = Drop_master_keyContext; + +Drop_master_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Drop_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Drop_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_master_key(this); + } +}; + +Drop_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_master_key(this); + } +}; + +Drop_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_master_keyContext = Drop_master_keyContext; + +TSqlParser.prototype.drop_master_key = function() { + + var localctx = new Drop_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 216, TSqlParser.RULE_drop_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2515; + this.match(TSqlParser.DROP); + this.state = 2516; + this.match(TSqlParser.MASTER); + this.state = 2517; + this.match(TSqlParser.KEY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_message_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_message_type; + this.message_type_name = null; // IdContext + return this; +} + +Drop_message_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_message_typeContext.prototype.constructor = Drop_message_typeContext; + +Drop_message_typeContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_message_typeContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Drop_message_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Drop_message_typeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_message_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_message_type(this); + } +}; + +Drop_message_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_message_type(this); + } +}; + +Drop_message_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_message_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_message_typeContext = Drop_message_typeContext; + +TSqlParser.prototype.drop_message_type = function() { + + var localctx = new Drop_message_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 218, TSqlParser.RULE_drop_message_type); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2519; + this.match(TSqlParser.DROP); + this.state = 2520; + this.match(TSqlParser.MESSAGE); + this.state = 2521; + this.match(TSqlParser.TYPE); + this.state = 2522; + localctx.message_type_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_partition_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_partition_function; + this.partition_function_name = null; // IdContext + return this; +} + +Drop_partition_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_partition_functionContext.prototype.constructor = Drop_partition_functionContext; + +Drop_partition_functionContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_partition_functionContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Drop_partition_functionContext.prototype.FUNCTION = function() { + return this.getToken(TSqlParser.FUNCTION, 0); +}; + +Drop_partition_functionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_partition_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_partition_function(this); + } +}; + +Drop_partition_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_partition_function(this); + } +}; + +Drop_partition_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_partition_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_partition_functionContext = Drop_partition_functionContext; + +TSqlParser.prototype.drop_partition_function = function() { + + var localctx = new Drop_partition_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 220, TSqlParser.RULE_drop_partition_function); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2524; + this.match(TSqlParser.DROP); + this.state = 2525; + this.match(TSqlParser.PARTITION); + this.state = 2526; + this.match(TSqlParser.FUNCTION); + this.state = 2527; + localctx.partition_function_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_partition_schemeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_partition_scheme; + this.partition_scheme_name = null; // IdContext + return this; +} + +Drop_partition_schemeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_partition_schemeContext.prototype.constructor = Drop_partition_schemeContext; + +Drop_partition_schemeContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_partition_schemeContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Drop_partition_schemeContext.prototype.SCHEME = function() { + return this.getToken(TSqlParser.SCHEME, 0); +}; + +Drop_partition_schemeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_partition_schemeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_partition_scheme(this); + } +}; + +Drop_partition_schemeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_partition_scheme(this); + } +}; + +Drop_partition_schemeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_partition_scheme(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_partition_schemeContext = Drop_partition_schemeContext; + +TSqlParser.prototype.drop_partition_scheme = function() { + + var localctx = new Drop_partition_schemeContext(this, this._ctx, this.state); + this.enterRule(localctx, 222, TSqlParser.RULE_drop_partition_scheme); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2529; + this.match(TSqlParser.DROP); + this.state = 2530; + this.match(TSqlParser.PARTITION); + this.state = 2531; + this.match(TSqlParser.SCHEME); + this.state = 2532; + localctx.partition_scheme_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_queueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_queue; + this.database_name = null; // IdContext + this.schema_name = null; // IdContext + this.queue_name = null; // IdContext + return this; +} + +Drop_queueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_queueContext.prototype.constructor = Drop_queueContext; + +Drop_queueContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_queueContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Drop_queueContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_queueContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_queueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_queue(this); + } +}; + +Drop_queueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_queue(this); + } +}; + +Drop_queueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_queue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_queueContext = Drop_queueContext; + +TSqlParser.prototype.drop_queue = function() { + + var localctx = new Drop_queueContext(this, this._ctx, this.state); + this.enterRule(localctx, 224, TSqlParser.RULE_drop_queue); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2534; + this.match(TSqlParser.DROP); + this.state = 2535; + this.match(TSqlParser.QUEUE); + this.state = 2539; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,177,this._ctx); + if(la_===1) { + this.state = 2536; + localctx.database_name = this.id(); + this.state = 2537; + this.match(TSqlParser.DOT); + + } + this.state = 2544; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,178,this._ctx); + if(la_===1) { + this.state = 2541; + localctx.schema_name = this.id(); + this.state = 2542; + this.match(TSqlParser.DOT); + + } + this.state = 2546; + localctx.queue_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_remote_service_bindingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_remote_service_binding; + this.binding_name = null; // IdContext + return this; +} + +Drop_remote_service_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_remote_service_bindingContext.prototype.constructor = Drop_remote_service_bindingContext; + +Drop_remote_service_bindingContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_remote_service_bindingContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Drop_remote_service_bindingContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Drop_remote_service_bindingContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Drop_remote_service_bindingContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_remote_service_bindingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_remote_service_binding(this); + } +}; + +Drop_remote_service_bindingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_remote_service_binding(this); + } +}; + +Drop_remote_service_bindingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_remote_service_binding(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_remote_service_bindingContext = Drop_remote_service_bindingContext; + +TSqlParser.prototype.drop_remote_service_binding = function() { + + var localctx = new Drop_remote_service_bindingContext(this, this._ctx, this.state); + this.enterRule(localctx, 226, TSqlParser.RULE_drop_remote_service_binding); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2548; + this.match(TSqlParser.DROP); + this.state = 2549; + this.match(TSqlParser.REMOTE); + this.state = 2550; + this.match(TSqlParser.SERVICE); + this.state = 2551; + this.match(TSqlParser.BINDING); + this.state = 2552; + localctx.binding_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_resource_pool; + this.pool_name = null; // IdContext + return this; +} + +Drop_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_resource_poolContext.prototype.constructor = Drop_resource_poolContext; + +Drop_resource_poolContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Drop_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Drop_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_resource_pool(this); + } +}; + +Drop_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_resource_pool(this); + } +}; + +Drop_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_resource_poolContext = Drop_resource_poolContext; + +TSqlParser.prototype.drop_resource_pool = function() { + + var localctx = new Drop_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 228, TSqlParser.RULE_drop_resource_pool); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2554; + this.match(TSqlParser.DROP); + this.state = 2555; + this.match(TSqlParser.RESOURCE); + this.state = 2556; + this.match(TSqlParser.POOL); + this.state = 2557; + localctx.pool_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_db_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_db_role; + this.role_name = null; // IdContext + return this; +} + +Drop_db_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_db_roleContext.prototype.constructor = Drop_db_roleContext; + +Drop_db_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_db_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Drop_db_roleContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_db_roleContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_db_roleContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_db_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_db_role(this); + } +}; + +Drop_db_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_db_role(this); + } +}; + +Drop_db_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_db_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_db_roleContext = Drop_db_roleContext; + +TSqlParser.prototype.drop_db_role = function() { + + var localctx = new Drop_db_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 230, TSqlParser.RULE_drop_db_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2559; + this.match(TSqlParser.DROP); + this.state = 2560; + this.match(TSqlParser.ROLE); + this.state = 2563; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2561; + this.match(TSqlParser.IF); + this.state = 2562; + this.match(TSqlParser.EXISTS); + } + + this.state = 2565; + localctx.role_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_routeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_route; + this.route_name = null; // IdContext + return this; +} + +Drop_routeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_routeContext.prototype.constructor = Drop_routeContext; + +Drop_routeContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_routeContext.prototype.ROUTE = function() { + return this.getToken(TSqlParser.ROUTE, 0); +}; + +Drop_routeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_routeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_route(this); + } +}; + +Drop_routeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_route(this); + } +}; + +Drop_routeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_route(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_routeContext = Drop_routeContext; + +TSqlParser.prototype.drop_route = function() { + + var localctx = new Drop_routeContext(this, this._ctx, this.state); + this.enterRule(localctx, 232, TSqlParser.RULE_drop_route); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2567; + this.match(TSqlParser.DROP); + this.state = 2568; + this.match(TSqlParser.ROUTE); + this.state = 2569; + localctx.route_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_ruleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_rule; + this.schema_name = null; // IdContext + this.rule_name = null; // IdContext + return this; +} + +Drop_ruleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_ruleContext.prototype.constructor = Drop_ruleContext; + +Drop_ruleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_ruleContext.prototype.RULE = function() { + return this.getToken(TSqlParser.RULE, 0); +}; + +Drop_ruleContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_ruleContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_ruleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_ruleContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Drop_ruleContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_ruleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_rule(this); + } +}; + +Drop_ruleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_rule(this); + } +}; + +Drop_ruleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_rule(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_ruleContext = Drop_ruleContext; + +TSqlParser.prototype.drop_rule = function() { + + var localctx = new Drop_ruleContext(this, this._ctx, this.state); + this.enterRule(localctx, 234, TSqlParser.RULE_drop_rule); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2571; + this.match(TSqlParser.DROP); + this.state = 2572; + this.match(TSqlParser.RULE); + this.state = 2575; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,180,this._ctx); + if(la_===1) { + this.state = 2573; + this.match(TSqlParser.IF); + this.state = 2574; + this.match(TSqlParser.EXISTS); + + } + this.state = 2586; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,183,this._ctx); + if(la_===1) { + this.state = 2578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2577; + this.match(TSqlParser.COMMA); + } + + this.state = 2583; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,182,this._ctx); + if(la_===1) { + this.state = 2580; + localctx.schema_name = this.id(); + this.state = 2581; + this.match(TSqlParser.DOT); + + } + this.state = 2585; + localctx.rule_name = this.id(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_schema; + this.schema_name = null; // IdContext + return this; +} + +Drop_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_schemaContext.prototype.constructor = Drop_schemaContext; + +Drop_schemaContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_schemaContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Drop_schemaContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_schemaContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_schemaContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_schema(this); + } +}; + +Drop_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_schema(this); + } +}; + +Drop_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_schemaContext = Drop_schemaContext; + +TSqlParser.prototype.drop_schema = function() { + + var localctx = new Drop_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 236, TSqlParser.RULE_drop_schema); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2588; + this.match(TSqlParser.DROP); + this.state = 2589; + this.match(TSqlParser.SCHEMA); + this.state = 2592; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2590; + this.match(TSqlParser.IF); + this.state = 2591; + this.match(TSqlParser.EXISTS); + } + + this.state = 2594; + localctx.schema_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_search_property_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_search_property_list; + this.property_list_name = null; // IdContext + return this; +} + +Drop_search_property_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_search_property_listContext.prototype.constructor = Drop_search_property_listContext; + +Drop_search_property_listContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_search_property_listContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Drop_search_property_listContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Drop_search_property_listContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Drop_search_property_listContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_search_property_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_search_property_list(this); + } +}; + +Drop_search_property_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_search_property_list(this); + } +}; + +Drop_search_property_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_search_property_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_search_property_listContext = Drop_search_property_listContext; + +TSqlParser.prototype.drop_search_property_list = function() { + + var localctx = new Drop_search_property_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 238, TSqlParser.RULE_drop_search_property_list); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2596; + this.match(TSqlParser.DROP); + this.state = 2597; + this.match(TSqlParser.SEARCH); + this.state = 2598; + this.match(TSqlParser.PROPERTY); + this.state = 2599; + this.match(TSqlParser.LIST); + this.state = 2600; + localctx.property_list_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_security_policyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_security_policy; + this.schema_name = null; // IdContext + this.security_policy_name = null; // IdContext + return this; +} + +Drop_security_policyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_security_policyContext.prototype.constructor = Drop_security_policyContext; + +Drop_security_policyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_security_policyContext.prototype.SECURITY = function() { + return this.getToken(TSqlParser.SECURITY, 0); +}; + +Drop_security_policyContext.prototype.POLICY = function() { + return this.getToken(TSqlParser.POLICY, 0); +}; + +Drop_security_policyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_security_policyContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_security_policyContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_security_policyContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_security_policyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_security_policy(this); + } +}; + +Drop_security_policyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_security_policy(this); + } +}; + +Drop_security_policyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_security_policy(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_security_policyContext = Drop_security_policyContext; + +TSqlParser.prototype.drop_security_policy = function() { + + var localctx = new Drop_security_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 240, TSqlParser.RULE_drop_security_policy); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2602; + this.match(TSqlParser.DROP); + this.state = 2603; + this.match(TSqlParser.SECURITY); + this.state = 2604; + this.match(TSqlParser.POLICY); + this.state = 2607; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2605; + this.match(TSqlParser.IF); + this.state = 2606; + this.match(TSqlParser.EXISTS); + } + + this.state = 2612; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,186,this._ctx); + if(la_===1) { + this.state = 2609; + localctx.schema_name = this.id(); + this.state = 2610; + this.match(TSqlParser.DOT); + + } + this.state = 2614; + localctx.security_policy_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_sequenceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_sequence; + this.database_name = null; // IdContext + this.schema_name = null; // IdContext + this.sequence_name = null; // IdContext + return this; +} + +Drop_sequenceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_sequenceContext.prototype.constructor = Drop_sequenceContext; + +Drop_sequenceContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_sequenceContext.prototype.SEQUENCE = function() { + return this.getToken(TSqlParser.SEQUENCE, 0); +}; + +Drop_sequenceContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_sequenceContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_sequenceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_sequenceContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Drop_sequenceContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_sequenceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_sequence(this); + } +}; + +Drop_sequenceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_sequence(this); + } +}; + +Drop_sequenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_sequence(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_sequenceContext = Drop_sequenceContext; + +TSqlParser.prototype.drop_sequence = function() { + + var localctx = new Drop_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 242, TSqlParser.RULE_drop_sequence); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2616; + this.match(TSqlParser.DROP); + this.state = 2617; + this.match(TSqlParser.SEQUENCE); + this.state = 2620; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,187,this._ctx); + if(la_===1) { + this.state = 2618; + this.match(TSqlParser.IF); + this.state = 2619; + this.match(TSqlParser.EXISTS); + + } + this.state = 2636; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,191,this._ctx); + if(la_===1) { + this.state = 2623; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2622; + this.match(TSqlParser.COMMA); + } + + this.state = 2628; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,189,this._ctx); + if(la_===1) { + this.state = 2625; + localctx.database_name = this.id(); + this.state = 2626; + this.match(TSqlParser.DOT); + + } + this.state = 2633; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,190,this._ctx); + if(la_===1) { + this.state = 2630; + localctx.schema_name = this.id(); + this.state = 2631; + this.match(TSqlParser.DOT); + + } + this.state = 2635; + localctx.sequence_name = this.id(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_server_auditContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_server_audit; + this.audit_name = null; // IdContext + return this; +} + +Drop_server_auditContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_server_auditContext.prototype.constructor = Drop_server_auditContext; + +Drop_server_auditContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_server_auditContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_server_auditContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Drop_server_auditContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_server_auditContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_server_audit(this); + } +}; + +Drop_server_auditContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_server_audit(this); + } +}; + +Drop_server_auditContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_server_audit(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_server_auditContext = Drop_server_auditContext; + +TSqlParser.prototype.drop_server_audit = function() { + + var localctx = new Drop_server_auditContext(this, this._ctx, this.state); + this.enterRule(localctx, 244, TSqlParser.RULE_drop_server_audit); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2638; + this.match(TSqlParser.DROP); + this.state = 2639; + this.match(TSqlParser.SERVER); + this.state = 2640; + this.match(TSqlParser.AUDIT); + this.state = 2641; + localctx.audit_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_server_audit_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_server_audit_specification; + this.audit_specification_name = null; // IdContext + return this; +} + +Drop_server_audit_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_server_audit_specificationContext.prototype.constructor = Drop_server_audit_specificationContext; + +Drop_server_audit_specificationContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_server_audit_specificationContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_server_audit_specificationContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Drop_server_audit_specificationContext.prototype.SPECIFICATION = function() { + return this.getToken(TSqlParser.SPECIFICATION, 0); +}; + +Drop_server_audit_specificationContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_server_audit_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_server_audit_specification(this); + } +}; + +Drop_server_audit_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_server_audit_specification(this); + } +}; + +Drop_server_audit_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_server_audit_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_server_audit_specificationContext = Drop_server_audit_specificationContext; + +TSqlParser.prototype.drop_server_audit_specification = function() { + + var localctx = new Drop_server_audit_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 246, TSqlParser.RULE_drop_server_audit_specification); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2643; + this.match(TSqlParser.DROP); + this.state = 2644; + this.match(TSqlParser.SERVER); + this.state = 2645; + this.match(TSqlParser.AUDIT); + this.state = 2646; + this.match(TSqlParser.SPECIFICATION); + this.state = 2647; + localctx.audit_specification_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_server_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_server_role; + this.role_name = null; // IdContext + return this; +} + +Drop_server_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_server_roleContext.prototype.constructor = Drop_server_roleContext; + +Drop_server_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_server_roleContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_server_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Drop_server_roleContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_server_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_server_role(this); + } +}; + +Drop_server_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_server_role(this); + } +}; + +Drop_server_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_server_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_server_roleContext = Drop_server_roleContext; + +TSqlParser.prototype.drop_server_role = function() { + + var localctx = new Drop_server_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 248, TSqlParser.RULE_drop_server_role); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2649; + this.match(TSqlParser.DROP); + this.state = 2650; + this.match(TSqlParser.SERVER); + this.state = 2651; + this.match(TSqlParser.ROLE); + this.state = 2652; + localctx.role_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_serviceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_service; + this.dropped_service_name = null; // IdContext + return this; +} + +Drop_serviceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_serviceContext.prototype.constructor = Drop_serviceContext; + +Drop_serviceContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_serviceContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Drop_serviceContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_serviceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_service(this); + } +}; + +Drop_serviceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_service(this); + } +}; + +Drop_serviceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_service(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_serviceContext = Drop_serviceContext; + +TSqlParser.prototype.drop_service = function() { + + var localctx = new Drop_serviceContext(this, this._ctx, this.state); + this.enterRule(localctx, 250, TSqlParser.RULE_drop_service); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2654; + this.match(TSqlParser.DROP); + this.state = 2655; + this.match(TSqlParser.SERVICE); + this.state = 2656; + localctx.dropped_service_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_signatureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_signature; + this.schema_name = null; // IdContext + this.module_name = null; // IdContext + this.cert_name = null; // IdContext + this.Asym_key_name = null; // IdContext + return this; +} + +Drop_signatureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_signatureContext.prototype.constructor = Drop_signatureContext; + +Drop_signatureContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_signatureContext.prototype.SIGNATURE = function() { + return this.getToken(TSqlParser.SIGNATURE, 0); +}; + +Drop_signatureContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Drop_signatureContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Drop_signatureContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_signatureContext.prototype.COUNTER = function() { + return this.getToken(TSqlParser.COUNTER, 0); +}; + +Drop_signatureContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_signatureContext.prototype.CERTIFICATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CERTIFICATE); + } else { + return this.getToken(TSqlParser.CERTIFICATE, i); + } +}; + + +Drop_signatureContext.prototype.ASYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASYMMETRIC); + } else { + return this.getToken(TSqlParser.ASYMMETRIC, i); + } +}; + + +Drop_signatureContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Drop_signatureContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_signatureContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_signature(this); + } +}; + +Drop_signatureContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_signature(this); + } +}; + +Drop_signatureContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_signature(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_signatureContext = Drop_signatureContext; + +TSqlParser.prototype.drop_signature = function() { + + var localctx = new Drop_signatureContext(this, this._ctx, this.state); + this.enterRule(localctx, 252, TSqlParser.RULE_drop_signature); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2658; + this.match(TSqlParser.DROP); + this.state = 2660; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COUNTER) { + this.state = 2659; + this.match(TSqlParser.COUNTER); + } + + this.state = 2662; + this.match(TSqlParser.SIGNATURE); + this.state = 2663; + this.match(TSqlParser.FROM); + this.state = 2667; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,193,this._ctx); + if(la_===1) { + this.state = 2664; + localctx.schema_name = this.id(); + this.state = 2665; + this.match(TSqlParser.DOT); + + } + this.state = 2669; + localctx.module_name = this.id(); + this.state = 2670; + this.match(TSqlParser.BY); + this.state = 2682; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2682; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,196,this._ctx); + switch(la_) { + case 1: + this.state = 2672; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2671; + this.match(TSqlParser.COMMA); + } + + this.state = 2674; + this.match(TSqlParser.CERTIFICATE); + this.state = 2675; + localctx.cert_name = this.id(); + break; + + case 2: + this.state = 2677; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2676; + this.match(TSqlParser.COMMA); + } + + this.state = 2679; + this.match(TSqlParser.ASYMMETRIC); + this.state = 2680; + this.match(TSqlParser.KEY); + this.state = 2681; + localctx.Asym_key_name = this.id(); + break; + + } + this.state = 2684; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.ASYMMETRIC || _la===TSqlParser.CERTIFICATE || _la===TSqlParser.COMMA); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_statistics_name_azure_dw_and_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_statistics_name_azure_dw_and_pdw; + this.schema_name = null; // IdContext + this.object_name = null; // IdContext + this.statistics_name = null; // IdContext + return this; +} + +Drop_statistics_name_azure_dw_and_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_statistics_name_azure_dw_and_pdwContext.prototype.constructor = Drop_statistics_name_azure_dw_and_pdwContext; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_statistics_name_azure_dw_and_pdw(this); + } +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_statistics_name_azure_dw_and_pdw(this); + } +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_statistics_name_azure_dw_and_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_statistics_name_azure_dw_and_pdwContext = Drop_statistics_name_azure_dw_and_pdwContext; + +TSqlParser.prototype.drop_statistics_name_azure_dw_and_pdw = function() { + + var localctx = new Drop_statistics_name_azure_dw_and_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 254, TSqlParser.RULE_drop_statistics_name_azure_dw_and_pdw); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2686; + this.match(TSqlParser.DROP); + this.state = 2687; + this.match(TSqlParser.STATISTICS); + this.state = 2691; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,198,this._ctx); + if(la_===1) { + this.state = 2688; + localctx.schema_name = this.id(); + this.state = 2689; + this.match(TSqlParser.DOT); + + } + this.state = 2693; + localctx.object_name = this.id(); + this.state = 2694; + this.match(TSqlParser.DOT); + this.state = 2695; + localctx.statistics_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_symmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_symmetric_key; + this.symmetric_key_name = null; // IdContext + return this; +} + +Drop_symmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_symmetric_keyContext.prototype.constructor = Drop_symmetric_keyContext; + +Drop_symmetric_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_symmetric_keyContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Drop_symmetric_keyContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Drop_symmetric_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_symmetric_keyContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Drop_symmetric_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Drop_symmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_symmetric_key(this); + } +}; + +Drop_symmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_symmetric_key(this); + } +}; + +Drop_symmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_symmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_symmetric_keyContext = Drop_symmetric_keyContext; + +TSqlParser.prototype.drop_symmetric_key = function() { + + var localctx = new Drop_symmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 256, TSqlParser.RULE_drop_symmetric_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2697; + this.match(TSqlParser.DROP); + this.state = 2698; + this.match(TSqlParser.SYMMETRIC); + this.state = 2699; + this.match(TSqlParser.KEY); + this.state = 2700; + localctx.symmetric_key_name = this.id(); + this.state = 2704; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,199,this._ctx); + if(la_===1) { + this.state = 2701; + this.match(TSqlParser.REMOVE); + this.state = 2702; + this.match(TSqlParser.PROVIDER); + this.state = 2703; + this.match(TSqlParser.KEY); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_synonymContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_synonym; + this.schema = null; // IdContext + this.synonym_name = null; // IdContext + return this; +} + +Drop_synonymContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_synonymContext.prototype.constructor = Drop_synonymContext; + +Drop_synonymContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_synonymContext.prototype.SYNONYM = function() { + return this.getToken(TSqlParser.SYNONYM, 0); +}; + +Drop_synonymContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_synonymContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_synonymContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_synonymContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_synonymContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_synonym(this); + } +}; + +Drop_synonymContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_synonym(this); + } +}; + +Drop_synonymContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_synonym(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_synonymContext = Drop_synonymContext; + +TSqlParser.prototype.drop_synonym = function() { + + var localctx = new Drop_synonymContext(this, this._ctx, this.state); + this.enterRule(localctx, 258, TSqlParser.RULE_drop_synonym); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2706; + this.match(TSqlParser.DROP); + this.state = 2707; + this.match(TSqlParser.SYNONYM); + this.state = 2710; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2708; + this.match(TSqlParser.IF); + this.state = 2709; + this.match(TSqlParser.EXISTS); + } + + this.state = 2715; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,201,this._ctx); + if(la_===1) { + this.state = 2712; + localctx.schema = this.id(); + this.state = 2713; + this.match(TSqlParser.DOT); + + } + this.state = 2717; + localctx.synonym_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_userContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_user; + this.user_name = null; // IdContext + return this; +} + +Drop_userContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_userContext.prototype.constructor = Drop_userContext; + +Drop_userContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_userContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Drop_userContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_userContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_userContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_userContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_user(this); + } +}; + +Drop_userContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_user(this); + } +}; + +Drop_userContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_user(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_userContext = Drop_userContext; + +TSqlParser.prototype.drop_user = function() { + + var localctx = new Drop_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 260, TSqlParser.RULE_drop_user); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2719; + this.match(TSqlParser.DROP); + this.state = 2720; + this.match(TSqlParser.USER); + this.state = 2723; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2721; + this.match(TSqlParser.IF); + this.state = 2722; + this.match(TSqlParser.EXISTS); + } + + this.state = 2725; + localctx.user_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_workload_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_workload_group; + this.group_name = null; // IdContext + return this; +} + +Drop_workload_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_workload_groupContext.prototype.constructor = Drop_workload_groupContext; + +Drop_workload_groupContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_workload_groupContext.prototype.WORKLOAD = function() { + return this.getToken(TSqlParser.WORKLOAD, 0); +}; + +Drop_workload_groupContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Drop_workload_groupContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_workload_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_workload_group(this); + } +}; + +Drop_workload_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_workload_group(this); + } +}; + +Drop_workload_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_workload_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_workload_groupContext = Drop_workload_groupContext; + +TSqlParser.prototype.drop_workload_group = function() { + + var localctx = new Drop_workload_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 262, TSqlParser.RULE_drop_workload_group); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2727; + this.match(TSqlParser.DROP); + this.state = 2728; + this.match(TSqlParser.WORKLOAD); + this.state = 2729; + this.match(TSqlParser.GROUP); + this.state = 2730; + localctx.group_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_xml_schema_collectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_xml_schema_collection; + this.relational_schema = null; // IdContext + this.sql_identifier = null; // IdContext + return this; +} + +Drop_xml_schema_collectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_xml_schema_collectionContext.prototype.constructor = Drop_xml_schema_collectionContext; + +Drop_xml_schema_collectionContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_xml_schema_collectionContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Drop_xml_schema_collectionContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Drop_xml_schema_collectionContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Drop_xml_schema_collectionContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_xml_schema_collectionContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_xml_schema_collectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_xml_schema_collection(this); + } +}; + +Drop_xml_schema_collectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_xml_schema_collection(this); + } +}; + +Drop_xml_schema_collectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_xml_schema_collection(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_xml_schema_collectionContext = Drop_xml_schema_collectionContext; + +TSqlParser.prototype.drop_xml_schema_collection = function() { + + var localctx = new Drop_xml_schema_collectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 264, TSqlParser.RULE_drop_xml_schema_collection); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2732; + this.match(TSqlParser.DROP); + this.state = 2733; + this.match(TSqlParser.XML); + this.state = 2734; + this.match(TSqlParser.SCHEMA); + this.state = 2735; + this.match(TSqlParser.COLLECTION); + this.state = 2739; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,203,this._ctx); + if(la_===1) { + this.state = 2736; + localctx.relational_schema = this.id(); + this.state = 2737; + this.match(TSqlParser.DOT); + + } + this.state = 2741; + localctx.sql_identifier = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Disable_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_disable_trigger; + this.schema_name = null; // IdContext + this.trigger_name = null; // IdContext + this.schema_id = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Disable_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Disable_triggerContext.prototype.constructor = Disable_triggerContext; + +Disable_triggerContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Disable_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Disable_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Disable_triggerContext.prototype.ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALL); + } else { + return this.getToken(TSqlParser.ALL, i); + } +}; + + +Disable_triggerContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Disable_triggerContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Disable_triggerContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Disable_triggerContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Disable_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Disable_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDisable_trigger(this); + } +}; + +Disable_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDisable_trigger(this); + } +}; + +Disable_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDisable_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Disable_triggerContext = Disable_triggerContext; + +TSqlParser.prototype.disable_trigger = function() { + + var localctx = new Disable_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 266, TSqlParser.RULE_disable_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2743; + this.match(TSqlParser.DISABLE); + this.state = 2744; + this.match(TSqlParser.TRIGGER); + this.state = 2759; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + case TSqlParser.COMMA: + this.state = 2754; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2746; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2745; + this.match(TSqlParser.COMMA); + } + + this.state = 2751; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,205,this._ctx); + if(la_===1) { + this.state = 2748; + localctx.schema_name = this.id(); + this.state = 2749; + this.match(TSqlParser.DOT); + + } + this.state = 2753; + localctx.trigger_name = this.id(); + this.state = 2756; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + break; + case TSqlParser.ALL: + this.state = 2758; + this.match(TSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2761; + this.match(TSqlParser.ON); + this.state = 2771; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 2765; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,208,this._ctx); + if(la_===1) { + this.state = 2762; + localctx.schema_id = this.id(); + this.state = 2763; + this.match(TSqlParser.DOT); + + } + this.state = 2767; + localctx.object_name = this.id(); + break; + case TSqlParser.DATABASE: + this.state = 2768; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.ALL: + this.state = 2769; + this.match(TSqlParser.ALL); + this.state = 2770; + this.match(TSqlParser.SERVER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Enable_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_enable_trigger; + this.schema_name = null; // IdContext + this.trigger_name = null; // IdContext + this.schema_id = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Enable_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Enable_triggerContext.prototype.constructor = Enable_triggerContext; + +Enable_triggerContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Enable_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Enable_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Enable_triggerContext.prototype.ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALL); + } else { + return this.getToken(TSqlParser.ALL, i); + } +}; + + +Enable_triggerContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Enable_triggerContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Enable_triggerContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Enable_triggerContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Enable_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Enable_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEnable_trigger(this); + } +}; + +Enable_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEnable_trigger(this); + } +}; + +Enable_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEnable_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Enable_triggerContext = Enable_triggerContext; + +TSqlParser.prototype.enable_trigger = function() { + + var localctx = new Enable_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 268, TSqlParser.RULE_enable_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2773; + this.match(TSqlParser.ENABLE); + this.state = 2774; + this.match(TSqlParser.TRIGGER); + this.state = 2789; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + case TSqlParser.COMMA: + this.state = 2784; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2776; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2775; + this.match(TSqlParser.COMMA); + } + + this.state = 2781; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,211,this._ctx); + if(la_===1) { + this.state = 2778; + localctx.schema_name = this.id(); + this.state = 2779; + this.match(TSqlParser.DOT); + + } + this.state = 2783; + localctx.trigger_name = this.id(); + this.state = 2786; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + break; + case TSqlParser.ALL: + this.state = 2788; + this.match(TSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2791; + this.match(TSqlParser.ON); + this.state = 2801; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 2795; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,214,this._ctx); + if(la_===1) { + this.state = 2792; + localctx.schema_id = this.id(); + this.state = 2793; + this.match(TSqlParser.DOT); + + } + this.state = 2797; + localctx.object_name = this.id(); + break; + case TSqlParser.DATABASE: + this.state = 2798; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.ALL: + this.state = 2799; + this.match(TSqlParser.ALL); + this.state = 2800; + this.match(TSqlParser.SERVER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Lock_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_lock_table; + this.seconds = null; // Token + return this; +} + +Lock_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Lock_tableContext.prototype.constructor = Lock_tableContext; + +Lock_tableContext.prototype.LOCK = function() { + return this.getToken(TSqlParser.LOCK, 0); +}; + +Lock_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Lock_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Lock_tableContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +Lock_tableContext.prototype.MODE = function() { + return this.getToken(TSqlParser.MODE, 0); +}; + +Lock_tableContext.prototype.SHARE = function() { + return this.getToken(TSqlParser.SHARE, 0); +}; + +Lock_tableContext.prototype.EXCLUSIVE = function() { + return this.getToken(TSqlParser.EXCLUSIVE, 0); +}; + +Lock_tableContext.prototype.WAIT = function() { + return this.getToken(TSqlParser.WAIT, 0); +}; + +Lock_tableContext.prototype.NOWAIT = function() { + return this.getToken(TSqlParser.NOWAIT, 0); +}; + +Lock_tableContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Lock_tableContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Lock_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterLock_table(this); + } +}; + +Lock_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitLock_table(this); + } +}; + +Lock_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitLock_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Lock_tableContext = Lock_tableContext; + +TSqlParser.prototype.lock_table = function() { + + var localctx = new Lock_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 270, TSqlParser.RULE_lock_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2803; + this.match(TSqlParser.LOCK); + this.state = 2804; + this.match(TSqlParser.TABLE); + this.state = 2805; + this.table_name(); + this.state = 2806; + this.match(TSqlParser.IN); + this.state = 2807; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EXCLUSIVE || _la===TSqlParser.SHARE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2808; + this.match(TSqlParser.MODE); + this.state = 2812; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,216,this._ctx); + if(la_===1) { + this.state = 2809; + this.match(TSqlParser.WAIT); + this.state = 2810; + localctx.seconds = this.match(TSqlParser.DECIMAL); + + } else if(la_===2) { + this.state = 2811; + this.match(TSqlParser.NOWAIT); + + } + this.state = 2815; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,217,this._ctx); + if(la_===1) { + this.state = 2814; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Truncate_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_truncate_table; + return this; +} + +Truncate_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Truncate_tableContext.prototype.constructor = Truncate_tableContext; + +Truncate_tableContext.prototype.TRUNCATE = function() { + return this.getToken(TSqlParser.TRUNCATE, 0); +}; + +Truncate_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Truncate_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Truncate_tableContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Truncate_tableContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Truncate_tableContext.prototype.PARTITIONS = function() { + return this.getToken(TSqlParser.PARTITIONS, 0); +}; + +Truncate_tableContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Truncate_tableContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Truncate_tableContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Truncate_tableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Truncate_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTruncate_table(this); + } +}; + +Truncate_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTruncate_table(this); + } +}; + +Truncate_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTruncate_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Truncate_tableContext = Truncate_tableContext; + +TSqlParser.prototype.truncate_table = function() { + + var localctx = new Truncate_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 272, TSqlParser.RULE_truncate_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2817; + this.match(TSqlParser.TRUNCATE); + this.state = 2818; + this.match(TSqlParser.TABLE); + this.state = 2819; + this.table_name(); + this.state = 2839; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,221,this._ctx); + if(la_===1) { + this.state = 2820; + this.match(TSqlParser.WITH); + this.state = 2821; + this.match(TSqlParser.LR_BRACKET); + this.state = 2822; + this.match(TSqlParser.PARTITIONS); + this.state = 2823; + this.match(TSqlParser.LR_BRACKET); + this.state = 2833; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2825; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2824; + this.match(TSqlParser.COMMA); + } + + this.state = 2831; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,219,this._ctx); + switch(la_) { + case 1: + this.state = 2827; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 2828; + this.match(TSqlParser.DECIMAL); + this.state = 2829; + this.match(TSqlParser.TO); + this.state = 2830; + this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 2835; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DECIMAL || _la===TSqlParser.COMMA); + this.state = 2837; + this.match(TSqlParser.RR_BRACKET); + this.state = 2838; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_column_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_column_master_key; + this.key_name = null; // IdContext + this.key_store_provider_name = null; // Token + this.key_path = null; // Token + return this; +} + +Create_column_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_column_master_keyContext.prototype.constructor = Create_column_master_keyContext; + +Create_column_master_keyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_column_master_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Create_column_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Create_column_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_column_master_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_column_master_keyContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_column_master_keyContext.prototype.KEY_STORE_PROVIDER_NAME = function() { + return this.getToken(TSqlParser.KEY_STORE_PROVIDER_NAME, 0); +}; + +Create_column_master_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_column_master_keyContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Create_column_master_keyContext.prototype.KEY_PATH = function() { + return this.getToken(TSqlParser.KEY_PATH, 0); +}; + +Create_column_master_keyContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_column_master_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_column_master_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_column_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_column_master_key(this); + } +}; + +Create_column_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_column_master_key(this); + } +}; + +Create_column_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_column_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_column_master_keyContext = Create_column_master_keyContext; + +TSqlParser.prototype.create_column_master_key = function() { + + var localctx = new Create_column_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 274, TSqlParser.RULE_create_column_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2841; + this.match(TSqlParser.CREATE); + this.state = 2842; + this.match(TSqlParser.COLUMN); + this.state = 2843; + this.match(TSqlParser.MASTER); + this.state = 2844; + this.match(TSqlParser.KEY); + this.state = 2845; + localctx.key_name = this.id(); + this.state = 2846; + this.match(TSqlParser.WITH); + this.state = 2847; + this.match(TSqlParser.LR_BRACKET); + this.state = 2848; + this.match(TSqlParser.KEY_STORE_PROVIDER_NAME); + this.state = 2849; + this.match(TSqlParser.EQUAL); + this.state = 2850; + localctx.key_store_provider_name = this.match(TSqlParser.STRING); + this.state = 2851; + this.match(TSqlParser.COMMA); + this.state = 2852; + this.match(TSqlParser.KEY_PATH); + this.state = 2853; + this.match(TSqlParser.EQUAL); + this.state = 2854; + localctx.key_path = this.match(TSqlParser.STRING); + this.state = 2855; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_credentialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_credential; + this.credential_name = null; // IdContext + this.identity_name = null; // Token + this.secret = null; // Token + return this; +} + +Alter_credentialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_credentialContext.prototype.constructor = Alter_credentialContext; + +Alter_credentialContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_credentialContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Alter_credentialContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_credentialContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Alter_credentialContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_credentialContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_credentialContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_credentialContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Alter_credentialContext.prototype.SECRET = function() { + return this.getToken(TSqlParser.SECRET, 0); +}; + +Alter_credentialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_credential(this); + } +}; + +Alter_credentialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_credential(this); + } +}; + +Alter_credentialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_credential(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_credentialContext = Alter_credentialContext; + +TSqlParser.prototype.alter_credential = function() { + + var localctx = new Alter_credentialContext(this, this._ctx, this.state); + this.enterRule(localctx, 276, TSqlParser.RULE_alter_credential); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2857; + this.match(TSqlParser.ALTER); + this.state = 2858; + this.match(TSqlParser.CREDENTIAL); + this.state = 2859; + localctx.credential_name = this.id(); + this.state = 2860; + this.match(TSqlParser.WITH); + this.state = 2861; + this.match(TSqlParser.IDENTITY); + this.state = 2862; + this.match(TSqlParser.EQUAL); + this.state = 2863; + localctx.identity_name = this.match(TSqlParser.STRING); + this.state = 2868; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2864; + this.match(TSqlParser.COMMA); + this.state = 2865; + this.match(TSqlParser.SECRET); + this.state = 2866; + this.match(TSqlParser.EQUAL); + this.state = 2867; + localctx.secret = this.match(TSqlParser.STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_credentialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_credential; + this.credential_name = null; // IdContext + this.identity_name = null; // Token + this.secret = null; // Token + this.cryptographic_provider_name = null; // IdContext + return this; +} + +Create_credentialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_credentialContext.prototype.constructor = Create_credentialContext; + +Create_credentialContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_credentialContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Create_credentialContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_credentialContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Create_credentialContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_credentialContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_credentialContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_credentialContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Create_credentialContext.prototype.SECRET = function() { + return this.getToken(TSqlParser.SECRET, 0); +}; + +Create_credentialContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_credentialContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Create_credentialContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_credentialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_credential(this); + } +}; + +Create_credentialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_credential(this); + } +}; + +Create_credentialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_credential(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_credentialContext = Create_credentialContext; + +TSqlParser.prototype.create_credential = function() { + + var localctx = new Create_credentialContext(this, this._ctx, this.state); + this.enterRule(localctx, 278, TSqlParser.RULE_create_credential); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2870; + this.match(TSqlParser.CREATE); + this.state = 2871; + this.match(TSqlParser.CREDENTIAL); + this.state = 2872; + localctx.credential_name = this.id(); + this.state = 2873; + this.match(TSqlParser.WITH); + this.state = 2874; + this.match(TSqlParser.IDENTITY); + this.state = 2875; + this.match(TSqlParser.EQUAL); + this.state = 2876; + localctx.identity_name = this.match(TSqlParser.STRING); + this.state = 2881; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2877; + this.match(TSqlParser.COMMA); + this.state = 2878; + this.match(TSqlParser.SECRET); + this.state = 2879; + this.match(TSqlParser.EQUAL); + this.state = 2880; + localctx.secret = this.match(TSqlParser.STRING); + } + + this.state = 2887; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 2883; + this.match(TSqlParser.FOR); + this.state = 2884; + this.match(TSqlParser.CRYPTOGRAPHIC); + this.state = 2885; + this.match(TSqlParser.PROVIDER); + this.state = 2886; + localctx.cryptographic_provider_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_cryptographic_providerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_cryptographic_provider; + this.provider_name = null; // IdContext + this.crypto_provider_ddl_file = null; // Token + return this; +} + +Alter_cryptographic_providerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_cryptographic_providerContext.prototype.constructor = Alter_cryptographic_providerContext; + +Alter_cryptographic_providerContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_cryptographic_providerContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Alter_cryptographic_providerContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Alter_cryptographic_providerContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_cryptographic_providerContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Alter_cryptographic_providerContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Alter_cryptographic_providerContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_cryptographic_providerContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_cryptographic_providerContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_cryptographic_providerContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_cryptographic_providerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_cryptographic_provider(this); + } +}; + +Alter_cryptographic_providerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_cryptographic_provider(this); + } +}; + +Alter_cryptographic_providerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_cryptographic_provider(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_cryptographic_providerContext = Alter_cryptographic_providerContext; + +TSqlParser.prototype.alter_cryptographic_provider = function() { + + var localctx = new Alter_cryptographic_providerContext(this, this._ctx, this.state); + this.enterRule(localctx, 280, TSqlParser.RULE_alter_cryptographic_provider); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2889; + this.match(TSqlParser.ALTER); + this.state = 2890; + this.match(TSqlParser.CRYPTOGRAPHIC); + this.state = 2891; + this.match(TSqlParser.PROVIDER); + this.state = 2892; + localctx.provider_name = this.id(); + this.state = 2897; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 2893; + this.match(TSqlParser.FROM); + this.state = 2894; + this.match(TSqlParser.FILE); + this.state = 2895; + this.match(TSqlParser.EQUAL); + this.state = 2896; + localctx.crypto_provider_ddl_file = this.match(TSqlParser.STRING); + } + + this.state = 2900; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,226,this._ctx); + if(la_===1) { + this.state = 2899; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_cryptographic_providerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_cryptographic_provider; + this.provider_name = null; // IdContext + this.path_of_DLL = null; // Token + return this; +} + +Create_cryptographic_providerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_cryptographic_providerContext.prototype.constructor = Create_cryptographic_providerContext; + +Create_cryptographic_providerContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_cryptographic_providerContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Create_cryptographic_providerContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_cryptographic_providerContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_cryptographic_providerContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Create_cryptographic_providerContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_cryptographic_providerContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_cryptographic_providerContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_cryptographic_providerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_cryptographic_provider(this); + } +}; + +Create_cryptographic_providerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_cryptographic_provider(this); + } +}; + +Create_cryptographic_providerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_cryptographic_provider(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_cryptographic_providerContext = Create_cryptographic_providerContext; + +TSqlParser.prototype.create_cryptographic_provider = function() { + + var localctx = new Create_cryptographic_providerContext(this, this._ctx, this.state); + this.enterRule(localctx, 282, TSqlParser.RULE_create_cryptographic_provider); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2902; + this.match(TSqlParser.CREATE); + this.state = 2903; + this.match(TSqlParser.CRYPTOGRAPHIC); + this.state = 2904; + this.match(TSqlParser.PROVIDER); + this.state = 2905; + localctx.provider_name = this.id(); + this.state = 2906; + this.match(TSqlParser.FROM); + this.state = 2907; + this.match(TSqlParser.FILE); + this.state = 2908; + this.match(TSqlParser.EQUAL); + this.state = 2909; + localctx.path_of_DLL = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_event_notificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_event_notification; + this.event_notification_name = null; // IdContext + this.queue_name = null; // IdContext + this.event_type_or_group = null; // IdContext + this.broker_service = null; // Token + this.broker_service_specifier_or_current_database = null; // Token + return this; +} + +Create_event_notificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_event_notificationContext.prototype.constructor = Create_event_notificationContext; + +Create_event_notificationContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_event_notificationContext.prototype.EVENT = function() { + return this.getToken(TSqlParser.EVENT, 0); +}; + +Create_event_notificationContext.prototype.NOTIFICATION = function() { + return this.getToken(TSqlParser.NOTIFICATION, 0); +}; + +Create_event_notificationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_event_notificationContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_event_notificationContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Create_event_notificationContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Create_event_notificationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_event_notificationContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_event_notificationContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_event_notificationContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_event_notificationContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Create_event_notificationContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Create_event_notificationContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_event_notificationContext.prototype.FAN_IN = function() { + return this.getToken(TSqlParser.FAN_IN, 0); +}; + +Create_event_notificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_event_notification(this); + } +}; + +Create_event_notificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_event_notification(this); + } +}; + +Create_event_notificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_event_notification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_event_notificationContext = Create_event_notificationContext; + +TSqlParser.prototype.create_event_notification = function() { + + var localctx = new Create_event_notificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 284, TSqlParser.RULE_create_event_notification); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2911; + this.match(TSqlParser.CREATE); + this.state = 2912; + this.match(TSqlParser.EVENT); + this.state = 2913; + this.match(TSqlParser.NOTIFICATION); + this.state = 2914; + localctx.event_notification_name = this.id(); + this.state = 2915; + this.match(TSqlParser.ON); + this.state = 2920; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SERVER: + this.state = 2916; + this.match(TSqlParser.SERVER); + break; + case TSqlParser.DATABASE: + this.state = 2917; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.QUEUE: + this.state = 2918; + this.match(TSqlParser.QUEUE); + this.state = 2919; + localctx.queue_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2924; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 2922; + this.match(TSqlParser.WITH); + this.state = 2923; + this.match(TSqlParser.FAN_IN); + } + + this.state = 2926; + this.match(TSqlParser.FOR); + this.state = 2931; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2928; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2927; + this.match(TSqlParser.COMMA); + } + + this.state = 2930; + localctx.event_type_or_group = this.id(); + this.state = 2933; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 2935; + this.match(TSqlParser.TO); + this.state = 2936; + this.match(TSqlParser.SERVICE); + this.state = 2937; + localctx.broker_service = this.match(TSqlParser.STRING); + this.state = 2938; + this.match(TSqlParser.COMMA); + this.state = 2939; + localctx.broker_service_specifier_or_current_database = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_event_sessionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_event_session; + this.event_session_name = null; // IdContext + this.event_module_guid = null; // IdContext + this.event_package_name = null; // IdContext + this.event_name = null; // IdContext + this.event_customizable_attributue = null; // IdContext + this.action_name = null; // IdContext + this.target_name = null; // IdContext + this.target_parameter_name = null; // IdContext + this.max_memory = null; // Token + this.max_dispatch_latency_seconds = null; // Token + this.max_event_size = null; // Token + return this; +} + +Create_or_alter_event_sessionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_event_sessionContext.prototype.constructor = Create_or_alter_event_sessionContext; + +Create_or_alter_event_sessionContext.prototype.EVENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EVENT); + } else { + return this.getToken(TSqlParser.EVENT, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.SESSION = function() { + return this.getToken(TSqlParser.SESSION, 0); +}; + +Create_or_alter_event_sessionContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_or_alter_event_sessionContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_event_sessionContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_or_alter_event_sessionContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DROP); + } else { + return this.getToken(TSqlParser.DROP, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.TARGET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TARGET); + } else { + return this.getToken(TSqlParser.TARGET, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_or_alter_event_sessionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.START = function() { + return this.getToken(TSqlParser.START, 0); +}; + +Create_or_alter_event_sessionContext.prototype.STOP = function() { + return this.getToken(TSqlParser.STOP, 0); +}; + +Create_or_alter_event_sessionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SET); + } else { + return this.getToken(TSqlParser.SET, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.MAX_MEMORY = function() { + return this.getToken(TSqlParser.MAX_MEMORY, 0); +}; + +Create_or_alter_event_sessionContext.prototype.EVENT_RETENTION_MODE = function() { + return this.getToken(TSqlParser.EVENT_RETENTION_MODE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.MAX_DISPATCH_LATENCY = function() { + return this.getToken(TSqlParser.MAX_DISPATCH_LATENCY, 0); +}; + +Create_or_alter_event_sessionContext.prototype.MAX_EVENT_SIZE = function() { + return this.getToken(TSqlParser.MAX_EVENT_SIZE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.MEMORY_PARTITION_MODE = function() { + return this.getToken(TSqlParser.MEMORY_PARTITION_MODE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.TRACK_CAUSALITY = function() { + return this.getToken(TSqlParser.TRACK_CAUSALITY, 0); +}; + +Create_or_alter_event_sessionContext.prototype.STARTUP_STATE = function() { + return this.getToken(TSqlParser.STARTUP_STATE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.KB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KB); + } else { + return this.getToken(TSqlParser.KB, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.MB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MB); + } else { + return this.getToken(TSqlParser.MB, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.ALLOW_SINGLE_EVENT_LOSS = function() { + return this.getToken(TSqlParser.ALLOW_SINGLE_EVENT_LOSS, 0); +}; + +Create_or_alter_event_sessionContext.prototype.ALLOW_MULTIPLE_EVENT_LOSS = function() { + return this.getToken(TSqlParser.ALLOW_MULTIPLE_EVENT_LOSS, 0); +}; + +Create_or_alter_event_sessionContext.prototype.NO_EVENT_LOSS = function() { + return this.getToken(TSqlParser.NO_EVENT_LOSS, 0); +}; + +Create_or_alter_event_sessionContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.PER_NODE = function() { + return this.getToken(TSqlParser.PER_NODE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.PER_CPU = function() { + return this.getToken(TSqlParser.PER_CPU, 0); +}; + +Create_or_alter_event_sessionContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.SECONDS = function() { + return this.getToken(TSqlParser.SECONDS, 0); +}; + +Create_or_alter_event_sessionContext.prototype.INFINITE = function() { + return this.getToken(TSqlParser.INFINITE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.ACTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ACTION); + } else { + return this.getToken(TSqlParser.ACTION, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.WHERE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WHERE); + } else { + return this.getToken(TSqlParser.WHERE, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.event_session_predicate_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Event_session_predicate_expressionContext); + } else { + return this.getTypedRuleContext(Event_session_predicate_expressionContext,i); + } +}; + +Create_or_alter_event_sessionContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_event_session(this); + } +}; + +Create_or_alter_event_sessionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_event_session(this); + } +}; + +Create_or_alter_event_sessionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_event_session(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_event_sessionContext = Create_or_alter_event_sessionContext; + +TSqlParser.prototype.create_or_alter_event_session = function() { + + var localctx = new Create_or_alter_event_sessionContext(this, this._ctx, this.state); + this.enterRule(localctx, 286, TSqlParser.RULE_create_or_alter_event_session); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2941; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALTER || _la===TSqlParser.CREATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2942; + this.match(TSqlParser.EVENT); + this.state = 2943; + this.match(TSqlParser.SESSION); + this.state = 2944; + localctx.event_session_name = this.id(); + this.state = 2945; + this.match(TSqlParser.ON); + this.state = 2946; + this.match(TSqlParser.SERVER); + this.state = 3014; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,242,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2948; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2947; + this.match(TSqlParser.COMMA); + } + + this.state = 2950; + this.match(TSqlParser.ADD); + this.state = 2951; + this.match(TSqlParser.EVENT); + + this.state = 2955; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,232,this._ctx); + if(la_===1) { + this.state = 2952; + localctx.event_module_guid = this.id(); + this.state = 2953; + this.match(TSqlParser.DOT); + + } + this.state = 2957; + localctx.event_package_name = this.id(); + this.state = 2958; + this.match(TSqlParser.DOT); + this.state = 2959; + localctx.event_name = this.id(); + this.state = 3009; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,241,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2961; + this.match(TSqlParser.LR_BRACKET); + this.state = 2975; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SET) { + this.state = 2962; + this.match(TSqlParser.SET); + this.state = 2972; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,234,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2964; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2963; + this.match(TSqlParser.COMMA); + } + + this.state = 2966; + localctx.event_customizable_attributue = this.id(); + this.state = 2967; + this.match(TSqlParser.EQUAL); + this.state = 2968; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + this.state = 2974; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,234,this._ctx); + } + + } + + this.state = 2997; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2977; + this.match(TSqlParser.ACTION); + this.state = 2978; + this.match(TSqlParser.LR_BRACKET); + this.state = 2991; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2980; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2979; + this.match(TSqlParser.COMMA); + } + + this.state = 2985; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,237,this._ctx); + if(la_===1) { + this.state = 2982; + localctx.event_module_guid = this.id(); + this.state = 2983; + this.match(TSqlParser.DOT); + + } + this.state = 2987; + localctx.event_package_name = this.id(); + this.state = 2988; + this.match(TSqlParser.DOT); + this.state = 2989; + localctx.action_name = this.id(); + this.state = 2993; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 2995; + this.match(TSqlParser.RR_BRACKET); + this.state = 2999; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.ACTION); + this.state = 3003; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 3001; + this.match(TSqlParser.WHERE); + this.state = 3002; + this.event_session_predicate_expression(); + } + + this.state = 3005; + this.match(TSqlParser.RR_BRACKET); + } + this.state = 3011; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,241,this._ctx); + } + + } + this.state = 3016; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,242,this._ctx); + } + + this.state = 3033; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,245,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3018; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3017; + this.match(TSqlParser.COMMA); + } + + this.state = 3020; + this.match(TSqlParser.DROP); + this.state = 3021; + this.match(TSqlParser.EVENT); + this.state = 3025; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,244,this._ctx); + if(la_===1) { + this.state = 3022; + localctx.event_module_guid = this.id(); + this.state = 3023; + this.match(TSqlParser.DOT); + + } + this.state = 3027; + localctx.event_package_name = this.id(); + this.state = 3028; + this.match(TSqlParser.DOT); + this.state = 3029; + localctx.event_name = this.id(); + } + this.state = 3035; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,245,this._ctx); + } + + this.state = 3077; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.ADD) { + this.state = 3036; + this.match(TSqlParser.ADD); + this.state = 3037; + this.match(TSqlParser.TARGET); + this.state = 3041; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,246,this._ctx); + if(la_===1) { + this.state = 3038; + localctx.event_module_guid = this.id(); + this.state = 3039; + this.match(TSqlParser.DOT); + + } + this.state = 3043; + localctx.event_package_name = this.id(); + this.state = 3044; + this.match(TSqlParser.DOT); + this.state = 3045; + localctx.target_name = this.id(); + this.state = 3072; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,252,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3047; + this.match(TSqlParser.LR_BRACKET); + this.state = 3048; + this.match(TSqlParser.SET); + this.state = 3064; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3050; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3049; + this.match(TSqlParser.COMMA); + } + + this.state = 3052; + localctx.target_parameter_name = this.id(); + this.state = 3053; + this.match(TSqlParser.EQUAL); + this.state = 3062; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + case TSqlParser.LR_BRACKET: + this.state = 3055; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 3054; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 3057; + this.match(TSqlParser.DECIMAL); + this.state = 3059; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,249,this._ctx); + if(la_===1) { + this.state = 3058; + this.match(TSqlParser.RR_BRACKET); + + } + break; + case TSqlParser.STRING: + this.state = 3061; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3066; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 3068; + this.match(TSqlParser.RR_BRACKET); + } + this.state = 3074; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,252,this._ctx); + } + + this.state = 3079; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3093; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,255,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3080; + this.match(TSqlParser.DROP); + this.state = 3081; + this.match(TSqlParser.TARGET); + this.state = 3085; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,254,this._ctx); + if(la_===1) { + this.state = 3082; + localctx.event_module_guid = this.id(); + this.state = 3083; + this.match(TSqlParser.DOT); + + } + this.state = 3087; + localctx.event_package_name = this.id(); + this.state = 3088; + this.match(TSqlParser.DOT); + this.state = 3089; + localctx.target_name = this.id(); + } + this.state = 3095; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,255,this._ctx); + } + + this.state = 3161; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,271,this._ctx); + if(la_===1) { + this.state = 3096; + this.match(TSqlParser.WITH); + this.state = 3097; + this.match(TSqlParser.LR_BRACKET); + this.state = 3105; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,257,this._ctx); + if(la_===1) { + this.state = 3099; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3098; + this.match(TSqlParser.COMMA); + } + + this.state = 3101; + this.match(TSqlParser.MAX_MEMORY); + this.state = 3102; + this.match(TSqlParser.EQUAL); + this.state = 3103; + localctx.max_memory = this.match(TSqlParser.DECIMAL); + this.state = 3104; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KB || _la===TSqlParser.MB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3113; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,259,this._ctx); + if(la_===1) { + this.state = 3108; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3107; + this.match(TSqlParser.COMMA); + } + + this.state = 3110; + this.match(TSqlParser.EVENT_RETENTION_MODE); + this.state = 3111; + this.match(TSqlParser.EQUAL); + this.state = 3112; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALLOW_MULTIPLE_EVENT_LOSS || _la===TSqlParser.ALLOW_SINGLE_EVENT_LOSS || _la===TSqlParser.NO_EVENT_LOSS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3125; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,262,this._ctx); + if(la_===1) { + this.state = 3116; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3115; + this.match(TSqlParser.COMMA); + } + + this.state = 3118; + this.match(TSqlParser.MAX_DISPATCH_LATENCY); + this.state = 3119; + this.match(TSqlParser.EQUAL); + this.state = 3123; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 3120; + localctx.max_dispatch_latency_seconds = this.match(TSqlParser.DECIMAL); + this.state = 3121; + this.match(TSqlParser.SECONDS); + break; + case TSqlParser.INFINITE: + this.state = 3122; + this.match(TSqlParser.INFINITE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 3134; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,264,this._ctx); + if(la_===1) { + this.state = 3128; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3127; + this.match(TSqlParser.COMMA); + } + + this.state = 3130; + this.match(TSqlParser.MAX_EVENT_SIZE); + this.state = 3131; + this.match(TSqlParser.EQUAL); + this.state = 3132; + localctx.max_event_size = this.match(TSqlParser.DECIMAL); + this.state = 3133; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KB || _la===TSqlParser.MB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3142; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,266,this._ctx); + if(la_===1) { + this.state = 3137; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3136; + this.match(TSqlParser.COMMA); + } + + this.state = 3139; + this.match(TSqlParser.MEMORY_PARTITION_MODE); + this.state = 3140; + this.match(TSqlParser.EQUAL); + this.state = 3141; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.PER_CPU || _la===TSqlParser.PER_NODE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3150; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,268,this._ctx); + if(la_===1) { + this.state = 3145; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3144; + this.match(TSqlParser.COMMA); + } + + this.state = 3147; + this.match(TSqlParser.TRACK_CAUSALITY); + this.state = 3148; + this.match(TSqlParser.EQUAL); + this.state = 3149; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3158; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.STARTUP_STATE || _la===TSqlParser.COMMA) { + this.state = 3153; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3152; + this.match(TSqlParser.COMMA); + } + + this.state = 3155; + this.match(TSqlParser.STARTUP_STATE); + this.state = 3156; + this.match(TSqlParser.EQUAL); + this.state = 3157; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3160; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 3166; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,272,this._ctx); + if(la_===1) { + this.state = 3163; + this.match(TSqlParser.STATE); + this.state = 3164; + this.match(TSqlParser.EQUAL); + this.state = 3165; + _la = this._input.LA(1); + if(!(_la===TSqlParser.START || _la===TSqlParser.STOP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Event_session_predicate_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_event_session_predicate_expression; + return this; +} + +Event_session_predicate_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Event_session_predicate_expressionContext.prototype.constructor = Event_session_predicate_expressionContext; + +Event_session_predicate_expressionContext.prototype.event_session_predicate_factor = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Event_session_predicate_factorContext); + } else { + return this.getTypedRuleContext(Event_session_predicate_factorContext,i); + } +}; + +Event_session_predicate_expressionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.event_session_predicate_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Event_session_predicate_expressionContext); + } else { + return this.getTypedRuleContext(Event_session_predicate_expressionContext,i); + } +}; + +Event_session_predicate_expressionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.NOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOT); + } else { + return this.getToken(TSqlParser.NOT, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AND); + } else { + return this.getToken(TSqlParser.AND, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.OR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OR); + } else { + return this.getToken(TSqlParser.OR, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEvent_session_predicate_expression(this); + } +}; + +Event_session_predicate_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEvent_session_predicate_expression(this); + } +}; + +Event_session_predicate_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEvent_session_predicate_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Event_session_predicate_expressionContext = Event_session_predicate_expressionContext; + +TSqlParser.prototype.event_session_predicate_expression = function() { + + var localctx = new Event_session_predicate_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 288, TSqlParser.RULE_event_session_predicate_expression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3184; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3169; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3168; + this.match(TSqlParser.COMMA); + } + + this.state = 3172; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AND || _la===TSqlParser.OR) { + this.state = 3171; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AND || _la===TSqlParser.OR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3175; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 3174; + this.match(TSqlParser.NOT); + } + + this.state = 3182; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,276,this._ctx); + switch(la_) { + case 1: + this.state = 3177; + this.event_session_predicate_factor(); + break; + + case 2: + this.state = 3178; + this.match(TSqlParser.LR_BRACKET); + this.state = 3179; + this.event_session_predicate_expression(); + this.state = 3180; + this.match(TSqlParser.RR_BRACKET); + break; + + } + this.state = 3186; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.AND || _la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || ((((_la - 218)) & ~0x1f) == 0 && ((1 << (_la - 218)) & ((1 << (TSqlParser.NOT - 218)) | (1 << (TSqlParser.OFFSETS - 218)) | (1 << (TSqlParser.OR - 218)) | (1 << (TSqlParser.PAGE - 218)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)) | (1 << (TSqlParser.LR_BRACKET - 796)))) !== 0) || _la===TSqlParser.COMMA); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Event_session_predicate_factorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_event_session_predicate_factor; + return this; +} + +Event_session_predicate_factorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Event_session_predicate_factorContext.prototype.constructor = Event_session_predicate_factorContext; + +Event_session_predicate_factorContext.prototype.event_session_predicate_leaf = function() { + return this.getTypedRuleContext(Event_session_predicate_leafContext,0); +}; + +Event_session_predicate_factorContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Event_session_predicate_factorContext.prototype.event_session_predicate_expression = function() { + return this.getTypedRuleContext(Event_session_predicate_expressionContext,0); +}; + +Event_session_predicate_factorContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Event_session_predicate_factorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEvent_session_predicate_factor(this); + } +}; + +Event_session_predicate_factorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEvent_session_predicate_factor(this); + } +}; + +Event_session_predicate_factorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEvent_session_predicate_factor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Event_session_predicate_factorContext = Event_session_predicate_factorContext; + +TSqlParser.prototype.event_session_predicate_factor = function() { + + var localctx = new Event_session_predicate_factorContext(this, this._ctx, this.state); + this.enterRule(localctx, 290, TSqlParser.RULE_event_session_predicate_factor); + try { + this.state = 3193; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 3188; + this.event_session_predicate_leaf(); + break; + case TSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 3189; + this.match(TSqlParser.LR_BRACKET); + this.state = 3190; + this.event_session_predicate_expression(); + this.state = 3191; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Event_session_predicate_leafContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_event_session_predicate_leaf; + this.event_field_name = null; // IdContext + this.event_module_guid = null; // IdContext + this.event_package_name = null; // IdContext + this.predicate_source_name = null; // IdContext + this.predicate_compare_name = null; // IdContext + return this; +} + +Event_session_predicate_leafContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Event_session_predicate_leafContext.prototype.constructor = Event_session_predicate_leafContext; + +Event_session_predicate_leafContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Event_session_predicate_leafContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Event_session_predicate_leafContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Event_session_predicate_leafContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Event_session_predicate_leafContext.prototype.GREATER = function() { + return this.getToken(TSqlParser.GREATER, 0); +}; + +Event_session_predicate_leafContext.prototype.LESS = function() { + return this.getToken(TSqlParser.LESS, 0); +}; + +Event_session_predicate_leafContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Event_session_predicate_leafContext.prototype.EXCLAMATION = function() { + return this.getToken(TSqlParser.EXCLAMATION, 0); +}; + +Event_session_predicate_leafContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Event_session_predicate_leafContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Event_session_predicate_leafContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Event_session_predicate_leafContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEvent_session_predicate_leaf(this); + } +}; + +Event_session_predicate_leafContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEvent_session_predicate_leaf(this); + } +}; + +Event_session_predicate_leafContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEvent_session_predicate_leaf(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Event_session_predicate_leafContext = Event_session_predicate_leafContext; + +TSqlParser.prototype.event_session_predicate_leaf = function() { + + var localctx = new Event_session_predicate_leafContext(this, this._ctx, this.state); + this.enterRule(localctx, 292, TSqlParser.RULE_event_session_predicate_leaf); + var _la = 0; // Token type + try { + this.state = 3251; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,286,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3223; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,282,this._ctx); + switch(la_) { + case 1: + this.state = 3195; + localctx.event_field_name = this.id(); + break; + + case 2: + this.state = 3206; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,280,this._ctx); + switch(la_) { + case 1: + this.state = 3196; + localctx.event_field_name = this.id(); + break; + + case 2: + this.state = 3200; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,279,this._ctx); + if(la_===1) { + this.state = 3197; + localctx.event_module_guid = this.id(); + this.state = 3198; + this.match(TSqlParser.DOT); + + } + this.state = 3202; + localctx.event_package_name = this.id(); + this.state = 3203; + this.match(TSqlParser.DOT); + this.state = 3204; + localctx.predicate_source_name = this.id(); + break; + + } + this.state = 3219; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,281,this._ctx); + switch(la_) { + case 1: + this.state = 3208; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 3209; + this.match(TSqlParser.LESS); + this.state = 3210; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 3211; + this.match(TSqlParser.EXCLAMATION); + this.state = 3212; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 3213; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 3214; + this.match(TSqlParser.GREATER); + this.state = 3215; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 3216; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 3217; + this.match(TSqlParser.LESS); + this.state = 3218; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 3221; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3228; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,283,this._ctx); + if(la_===1) { + this.state = 3225; + localctx.event_module_guid = this.id(); + this.state = 3226; + this.match(TSqlParser.DOT); + + } + this.state = 3230; + localctx.event_package_name = this.id(); + this.state = 3231; + this.match(TSqlParser.DOT); + this.state = 3232; + localctx.predicate_compare_name = this.id(); + this.state = 3233; + this.match(TSqlParser.LR_BRACKET); + this.state = 3247; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,285,this._ctx); + switch(la_) { + case 1: + this.state = 3234; + localctx.event_field_name = this.id(); + break; + + case 2: + this.state = 3238; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,284,this._ctx); + if(la_===1) { + this.state = 3235; + localctx.event_module_guid = this.id(); + this.state = 3236; + this.match(TSqlParser.DOT); + + } + this.state = 3240; + localctx.event_package_name = this.id(); + this.state = 3241; + this.match(TSqlParser.DOT); + this.state = 3242; + localctx.predicate_source_name = this.id(); + this.state = 3244; + this.match(TSqlParser.COMMA); + this.state = 3245; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + this.state = 3249; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_external_data_sourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_external_data_source; + this.data_source_name = null; // IdContext + this.location = null; // Token + this.resource_manager_location = null; // Token + this.credential_name = null; // IdContext + return this; +} + +Alter_external_data_sourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_external_data_sourceContext.prototype.constructor = Alter_external_data_sourceContext; + +Alter_external_data_sourceContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_external_data_sourceContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Alter_external_data_sourceContext.prototype.DATA = function() { + return this.getToken(TSqlParser.DATA, 0); +}; + +Alter_external_data_sourceContext.prototype.SOURCE = function() { + return this.getToken(TSqlParser.SOURCE, 0); +}; + +Alter_external_data_sourceContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_external_data_sourceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_external_data_sourceContext.prototype.LOCATION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCATION); + } else { + return this.getToken(TSqlParser.LOCATION, i); + } +}; + + +Alter_external_data_sourceContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_external_data_sourceContext.prototype.RESOURCE_MANAGER_LOCATION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESOURCE_MANAGER_LOCATION); + } else { + return this.getToken(TSqlParser.RESOURCE_MANAGER_LOCATION, i); + } +}; + + +Alter_external_data_sourceContext.prototype.CREDENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CREDENTIAL); + } else { + return this.getToken(TSqlParser.CREDENTIAL, i); + } +}; + + +Alter_external_data_sourceContext.prototype.QUOTED_URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUOTED_URL); + } else { + return this.getToken(TSqlParser.QUOTED_URL, i); + } +}; + + +Alter_external_data_sourceContext.prototype.QUOTED_HOST_AND_PORT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUOTED_HOST_AND_PORT); + } else { + return this.getToken(TSqlParser.QUOTED_HOST_AND_PORT, i); + } +}; + + +Alter_external_data_sourceContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_external_data_sourceContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_external_data_sourceContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_external_data_sourceContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Alter_external_data_sourceContext.prototype.BLOB_STORAGE = function() { + return this.getToken(TSqlParser.BLOB_STORAGE, 0); +}; + +Alter_external_data_sourceContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_external_data_sourceContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_external_data_sourceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_external_data_source(this); + } +}; + +Alter_external_data_sourceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_external_data_source(this); + } +}; + +Alter_external_data_sourceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_external_data_source(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_external_data_sourceContext = Alter_external_data_sourceContext; + +TSqlParser.prototype.alter_external_data_source = function() { + + var localctx = new Alter_external_data_sourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 294, TSqlParser.RULE_alter_external_data_source); + var _la = 0; // Token type + try { + this.state = 3300; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,292,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3253; + this.match(TSqlParser.ALTER); + this.state = 3254; + this.match(TSqlParser.EXTERNAL); + this.state = 3255; + this.match(TSqlParser.DATA); + this.state = 3256; + this.match(TSqlParser.SOURCE); + this.state = 3257; + localctx.data_source_name = this.id(); + this.state = 3258; + this.match(TSqlParser.SET); + this.state = 3274; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3274; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LOCATION: + this.state = 3259; + this.match(TSqlParser.LOCATION); + this.state = 3260; + this.match(TSqlParser.EQUAL); + this.state = 3261; + localctx.location = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.QUOTED_URL || _la===TSqlParser.QUOTED_HOST_AND_PORT)) { + localctx.location = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3263; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3262; + this.match(TSqlParser.COMMA); + } + + break; + case TSqlParser.RESOURCE_MANAGER_LOCATION: + this.state = 3265; + this.match(TSqlParser.RESOURCE_MANAGER_LOCATION); + this.state = 3266; + this.match(TSqlParser.EQUAL); + this.state = 3267; + localctx.resource_manager_location = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.QUOTED_URL || _la===TSqlParser.QUOTED_HOST_AND_PORT)) { + localctx.resource_manager_location = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3269; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3268; + this.match(TSqlParser.COMMA); + } + + break; + case TSqlParser.CREDENTIAL: + this.state = 3271; + this.match(TSqlParser.CREDENTIAL); + this.state = 3272; + this.match(TSqlParser.EQUAL); + this.state = 3273; + localctx.credential_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3276; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,290, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3278; + this.match(TSqlParser.ALTER); + this.state = 3279; + this.match(TSqlParser.EXTERNAL); + this.state = 3280; + this.match(TSqlParser.DATA); + this.state = 3281; + this.match(TSqlParser.SOURCE); + this.state = 3282; + localctx.data_source_name = this.id(); + this.state = 3283; + this.match(TSqlParser.WITH); + this.state = 3284; + this.match(TSqlParser.LR_BRACKET); + this.state = 3285; + this.match(TSqlParser.TYPE); + this.state = 3286; + this.match(TSqlParser.EQUAL); + this.state = 3287; + this.match(TSqlParser.BLOB_STORAGE); + this.state = 3288; + this.match(TSqlParser.COMMA); + this.state = 3289; + this.match(TSqlParser.LOCATION); + this.state = 3290; + this.match(TSqlParser.EQUAL); + this.state = 3291; + localctx.location = this.match(TSqlParser.STRING); + this.state = 3296; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3292; + this.match(TSqlParser.COMMA); + this.state = 3293; + this.match(TSqlParser.CREDENTIAL); + this.state = 3294; + this.match(TSqlParser.EQUAL); + this.state = 3295; + localctx.credential_name = this.id(); + } + + this.state = 3298; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_external_libraryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_external_library; + this.library_name = null; // IdContext + this.owner_name = null; // IdContext + this.client_library = null; // Token + this.external_data_source_name = null; // IdContext + return this; +} + +Alter_external_libraryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_external_libraryContext.prototype.constructor = Alter_external_libraryContext; + +Alter_external_libraryContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_external_libraryContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Alter_external_libraryContext.prototype.LIBRARY = function() { + return this.getToken(TSqlParser.LIBRARY, 0); +}; + +Alter_external_libraryContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_external_libraryContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_external_libraryContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_external_libraryContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_external_libraryContext.prototype.CONTENT = function() { + return this.getToken(TSqlParser.CONTENT, 0); +}; + +Alter_external_libraryContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_external_libraryContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_external_libraryContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_external_libraryContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Alter_external_libraryContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Alter_external_libraryContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Alter_external_libraryContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_external_libraryContext.prototype.PLATFORM = function() { + return this.getToken(TSqlParser.PLATFORM, 0); +}; + +Alter_external_libraryContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_external_libraryContext.prototype.LANGUAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LANGUAGE); + } else { + return this.getToken(TSqlParser.LANGUAGE, i); + } +}; + + +Alter_external_libraryContext.prototype.DATA_SOURCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DATA_SOURCE); + } else { + return this.getToken(TSqlParser.DATA_SOURCE, i); + } +}; + + +Alter_external_libraryContext.prototype.R = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.R); + } else { + return this.getToken(TSqlParser.R, i); + } +}; + + +Alter_external_libraryContext.prototype.PYTHON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PYTHON); + } else { + return this.getToken(TSqlParser.PYTHON, i); + } +}; + + +Alter_external_libraryContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Alter_external_libraryContext.prototype.LINUX = function() { + return this.getToken(TSqlParser.LINUX, 0); +}; + +Alter_external_libraryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_external_library(this); + } +}; + +Alter_external_libraryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_external_library(this); + } +}; + +Alter_external_libraryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_external_library(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_external_libraryContext = Alter_external_libraryContext; + +TSqlParser.prototype.alter_external_library = function() { + + var localctx = new Alter_external_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 296, TSqlParser.RULE_alter_external_library); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3302; + this.match(TSqlParser.ALTER); + this.state = 3303; + this.match(TSqlParser.EXTERNAL); + this.state = 3304; + this.match(TSqlParser.LIBRARY); + this.state = 3305; + localctx.library_name = this.id(); + this.state = 3308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 3306; + this.match(TSqlParser.AUTHORIZATION); + this.state = 3307; + localctx.owner_name = this.id(); + } + + this.state = 3310; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.SET)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + this.state = 3311; + this.match(TSqlParser.LR_BRACKET); + this.state = 3312; + this.match(TSqlParser.CONTENT); + this.state = 3313; + this.match(TSqlParser.EQUAL); + this.state = 3317; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 3314; + localctx.client_library = this.match(TSqlParser.STRING); + break; + case TSqlParser.BINARY: + this.state = 3315; + this.match(TSqlParser.BINARY); + break; + case TSqlParser.NONE: + this.state = 3316; + this.match(TSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + this.state = 3319; + this.match(TSqlParser.COMMA); + this.state = 3320; + this.match(TSqlParser.PLATFORM); + this.state = 3321; + this.match(TSqlParser.EQUAL); + this.state = 3323; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LINUX || _la===TSqlParser.WINDOWS) { + this.state = 3322; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LINUX || _la===TSqlParser.WINDOWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3325; + this.match(TSqlParser.RR_BRACKET); + this.state = 3327; + this.match(TSqlParser.WITH); + this.state = 3337; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3337; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LANGUAGE: + case TSqlParser.COMMA: + this.state = 3329; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3328; + this.match(TSqlParser.COMMA); + } + + this.state = 3331; + this.match(TSqlParser.LANGUAGE); + this.state = 3332; + this.match(TSqlParser.EQUAL); + this.state = 3333; + _la = this._input.LA(1); + if(!(_la===TSqlParser.PYTHON || _la===TSqlParser.R)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DATA_SOURCE: + this.state = 3334; + this.match(TSqlParser.DATA_SOURCE); + this.state = 3335; + this.match(TSqlParser.EQUAL); + this.state = 3336; + localctx.external_data_source_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3339; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DATA_SOURCE || _la===TSqlParser.LANGUAGE || _la===TSqlParser.COMMA); + this.state = 3341; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_external_libraryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_external_library; + this.library_name = null; // IdContext + this.owner_name = null; // IdContext + this.client_library = null; // Token + this.external_data_source_name = null; // IdContext + return this; +} + +Create_external_libraryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_external_libraryContext.prototype.constructor = Create_external_libraryContext; + +Create_external_libraryContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_external_libraryContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_external_libraryContext.prototype.LIBRARY = function() { + return this.getToken(TSqlParser.LIBRARY, 0); +}; + +Create_external_libraryContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_external_libraryContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_external_libraryContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_external_libraryContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_external_libraryContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_external_libraryContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Create_external_libraryContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Create_external_libraryContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_external_libraryContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_external_libraryContext.prototype.CONTENT = function() { + return this.getToken(TSqlParser.CONTENT, 0); +}; + +Create_external_libraryContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_external_libraryContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_external_libraryContext.prototype.PLATFORM = function() { + return this.getToken(TSqlParser.PLATFORM, 0); +}; + +Create_external_libraryContext.prototype.LANGUAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LANGUAGE); + } else { + return this.getToken(TSqlParser.LANGUAGE, i); + } +}; + + +Create_external_libraryContext.prototype.DATA_SOURCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DATA_SOURCE); + } else { + return this.getToken(TSqlParser.DATA_SOURCE, i); + } +}; + + +Create_external_libraryContext.prototype.R = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.R); + } else { + return this.getToken(TSqlParser.R, i); + } +}; + + +Create_external_libraryContext.prototype.PYTHON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PYTHON); + } else { + return this.getToken(TSqlParser.PYTHON, i); + } +}; + + +Create_external_libraryContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Create_external_libraryContext.prototype.LINUX = function() { + return this.getToken(TSqlParser.LINUX, 0); +}; + +Create_external_libraryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_external_library(this); + } +}; + +Create_external_libraryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_external_library(this); + } +}; + +Create_external_libraryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_external_library(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_external_libraryContext = Create_external_libraryContext; + +TSqlParser.prototype.create_external_library = function() { + + var localctx = new Create_external_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 298, TSqlParser.RULE_create_external_library); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3343; + this.match(TSqlParser.CREATE); + this.state = 3344; + this.match(TSqlParser.EXTERNAL); + this.state = 3345; + this.match(TSqlParser.LIBRARY); + this.state = 3346; + localctx.library_name = this.id(); + this.state = 3349; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 3347; + this.match(TSqlParser.AUTHORIZATION); + this.state = 3348; + localctx.owner_name = this.id(); + } + + this.state = 3351; + this.match(TSqlParser.FROM); + + this.state = 3353; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3352; + this.match(TSqlParser.COMMA); + } + + this.state = 3356; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 3355; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 3360; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTENT) { + this.state = 3358; + this.match(TSqlParser.CONTENT); + this.state = 3359; + this.match(TSqlParser.EQUAL); + } + + this.state = 3365; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 3362; + localctx.client_library = this.match(TSqlParser.STRING); + break; + case TSqlParser.BINARY: + this.state = 3363; + this.match(TSqlParser.BINARY); + break; + case TSqlParser.NONE: + this.state = 3364; + this.match(TSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3374; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3367; + this.match(TSqlParser.COMMA); + this.state = 3368; + this.match(TSqlParser.PLATFORM); + this.state = 3369; + this.match(TSqlParser.EQUAL); + this.state = 3371; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LINUX || _la===TSqlParser.WINDOWS) { + this.state = 3370; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LINUX || _la===TSqlParser.WINDOWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3373; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 3391; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,309,this._ctx); + if(la_===1) { + this.state = 3376; + this.match(TSqlParser.WITH); + this.state = 3386; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3386; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LANGUAGE: + case TSqlParser.COMMA: + this.state = 3378; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3377; + this.match(TSqlParser.COMMA); + } + + this.state = 3380; + this.match(TSqlParser.LANGUAGE); + this.state = 3381; + this.match(TSqlParser.EQUAL); + this.state = 3382; + _la = this._input.LA(1); + if(!(_la===TSqlParser.PYTHON || _la===TSqlParser.R)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DATA_SOURCE: + this.state = 3383; + this.match(TSqlParser.DATA_SOURCE); + this.state = 3384; + this.match(TSqlParser.EQUAL); + this.state = 3385; + localctx.external_data_source_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3388; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DATA_SOURCE || _la===TSqlParser.LANGUAGE || _la===TSqlParser.COMMA); + this.state = 3390; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_external_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_external_resource_pool; + this.pool_name = null; // IdContext + this.max_cpu_percent = null; // Token + this.max_memory_percent = null; // Token + this.max_processes = null; // Token + return this; +} + +Alter_external_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_external_resource_poolContext.prototype.constructor = Alter_external_resource_poolContext; + +Alter_external_resource_poolContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_external_resource_poolContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Alter_external_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Alter_external_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Alter_external_resource_poolContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_external_resource_poolContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_external_resource_poolContext.prototype.MAX_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MAX_CPU_PERCENT, 0); +}; + +Alter_external_resource_poolContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_external_resource_poolContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_external_resource_poolContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_external_resource_poolContext.prototype.DEFAULT_DOUBLE_QUOTE = function() { + return this.getToken(TSqlParser.DEFAULT_DOUBLE_QUOTE, 0); +}; + +Alter_external_resource_poolContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Alter_external_resource_poolContext.prototype.CPU = function() { + return this.getToken(TSqlParser.CPU, 0); +}; + +Alter_external_resource_poolContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Alter_external_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_external_resource_poolContext.prototype.MAX_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MAX_MEMORY_PERCENT, 0); +}; + +Alter_external_resource_poolContext.prototype.MAX_PROCESSES = function() { + return this.getToken(TSqlParser.MAX_PROCESSES, 0); +}; + +Alter_external_resource_poolContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Alter_external_resource_poolContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_external_resource_poolContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Alter_external_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_external_resource_pool(this); + } +}; + +Alter_external_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_external_resource_pool(this); + } +}; + +Alter_external_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_external_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_external_resource_poolContext = Alter_external_resource_poolContext; + +TSqlParser.prototype.alter_external_resource_pool = function() { + + var localctx = new Alter_external_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 300, TSqlParser.RULE_alter_external_resource_pool); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3393; + this.match(TSqlParser.ALTER); + this.state = 3394; + this.match(TSqlParser.EXTERNAL); + this.state = 3395; + this.match(TSqlParser.RESOURCE); + this.state = 3396; + this.match(TSqlParser.POOL); + this.state = 3399; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,310,this._ctx); + switch(la_) { + case 1: + this.state = 3397; + localctx.pool_name = this.id(); + break; + + case 2: + this.state = 3398; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + break; + + } + this.state = 3401; + this.match(TSqlParser.WITH); + this.state = 3402; + this.match(TSqlParser.LR_BRACKET); + this.state = 3403; + this.match(TSqlParser.MAX_CPU_PERCENT); + this.state = 3404; + this.match(TSqlParser.EQUAL); + this.state = 3405; + localctx.max_cpu_percent = this.match(TSqlParser.DECIMAL); + this.state = 3443; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AFFINITY: + case TSqlParser.COMMA: + this.state = 3407; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3406; + this.match(TSqlParser.COMMA); + } + + this.state = 3409; + this.match(TSqlParser.AFFINITY); + this.state = 3410; + this.match(TSqlParser.CPU); + this.state = 3411; + this.match(TSqlParser.EQUAL); + this.state = 3425; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO: + this.state = 3412; + this.match(TSqlParser.AUTO); + break; + case TSqlParser.DECIMAL: + case TSqlParser.COMMA: + this.state = 3421; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3421; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,313,this._ctx); + switch(la_) { + case 1: + this.state = 3414; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3413; + this.match(TSqlParser.COMMA); + } + + this.state = 3416; + this.match(TSqlParser.DECIMAL); + this.state = 3417; + this.match(TSqlParser.TO); + this.state = 3418; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 3419; + this.match(TSqlParser.COMMA); + this.state = 3420; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3423; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,314, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NUMANODE: + this.state = 3427; + this.match(TSqlParser.NUMANODE); + this.state = 3428; + this.match(TSqlParser.EQUAL); + this.state = 3439; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3439; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,318,this._ctx); + switch(la_) { + case 1: + this.state = 3430; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3429; + this.match(TSqlParser.COMMA); + } + + this.state = 3432; + this.match(TSqlParser.DECIMAL); + this.state = 3433; + this.match(TSqlParser.TO); + this.state = 3434; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 3436; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3435; + this.match(TSqlParser.COMMA); + } + + this.state = 3438; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3441; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,319, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3451; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,322,this._ctx); + if(la_===1) { + this.state = 3446; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3445; + this.match(TSqlParser.COMMA); + } + + this.state = 3448; + this.match(TSqlParser.MAX_MEMORY_PERCENT); + this.state = 3449; + this.match(TSqlParser.EQUAL); + this.state = 3450; + localctx.max_memory_percent = this.match(TSqlParser.DECIMAL); + + } + this.state = 3459; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAX_PROCESSES || _la===TSqlParser.COMMA) { + this.state = 3454; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3453; + this.match(TSqlParser.COMMA); + } + + this.state = 3456; + this.match(TSqlParser.MAX_PROCESSES); + this.state = 3457; + this.match(TSqlParser.EQUAL); + this.state = 3458; + localctx.max_processes = this.match(TSqlParser.DECIMAL); + } + + this.state = 3461; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_external_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_external_resource_pool; + this.pool_name = null; // IdContext + this.max_cpu_percent = null; // Token + this.max_memory_percent = null; // Token + this.max_processes = null; // Token + return this; +} + +Create_external_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_external_resource_poolContext.prototype.constructor = Create_external_resource_poolContext; + +Create_external_resource_poolContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_external_resource_poolContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_external_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Create_external_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Create_external_resource_poolContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_external_resource_poolContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_external_resource_poolContext.prototype.MAX_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MAX_CPU_PERCENT, 0); +}; + +Create_external_resource_poolContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_external_resource_poolContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_external_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_external_resource_poolContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_external_resource_poolContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Create_external_resource_poolContext.prototype.CPU = function() { + return this.getToken(TSqlParser.CPU, 0); +}; + +Create_external_resource_poolContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Create_external_resource_poolContext.prototype.MAX_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MAX_MEMORY_PERCENT, 0); +}; + +Create_external_resource_poolContext.prototype.MAX_PROCESSES = function() { + return this.getToken(TSqlParser.MAX_PROCESSES, 0); +}; + +Create_external_resource_poolContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Create_external_resource_poolContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_external_resource_poolContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Create_external_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_external_resource_pool(this); + } +}; + +Create_external_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_external_resource_pool(this); + } +}; + +Create_external_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_external_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_external_resource_poolContext = Create_external_resource_poolContext; + +TSqlParser.prototype.create_external_resource_pool = function() { + + var localctx = new Create_external_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 302, TSqlParser.RULE_create_external_resource_pool); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3463; + this.match(TSqlParser.CREATE); + this.state = 3464; + this.match(TSqlParser.EXTERNAL); + this.state = 3465; + this.match(TSqlParser.RESOURCE); + this.state = 3466; + this.match(TSqlParser.POOL); + this.state = 3467; + localctx.pool_name = this.id(); + this.state = 3468; + this.match(TSqlParser.WITH); + this.state = 3469; + this.match(TSqlParser.LR_BRACKET); + this.state = 3470; + this.match(TSqlParser.MAX_CPU_PERCENT); + this.state = 3471; + this.match(TSqlParser.EQUAL); + this.state = 3472; + localctx.max_cpu_percent = this.match(TSqlParser.DECIMAL); + this.state = 3510; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AFFINITY: + case TSqlParser.COMMA: + this.state = 3474; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3473; + this.match(TSqlParser.COMMA); + } + + this.state = 3476; + this.match(TSqlParser.AFFINITY); + this.state = 3477; + this.match(TSqlParser.CPU); + this.state = 3478; + this.match(TSqlParser.EQUAL); + this.state = 3492; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO: + this.state = 3479; + this.match(TSqlParser.AUTO); + break; + case TSqlParser.DECIMAL: + case TSqlParser.COMMA: + this.state = 3488; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3488; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,327,this._ctx); + switch(la_) { + case 1: + this.state = 3481; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3480; + this.match(TSqlParser.COMMA); + } + + this.state = 3483; + this.match(TSqlParser.DECIMAL); + this.state = 3484; + this.match(TSqlParser.TO); + this.state = 3485; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 3486; + this.match(TSqlParser.COMMA); + this.state = 3487; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3490; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,328, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NUMANODE: + this.state = 3494; + this.match(TSqlParser.NUMANODE); + this.state = 3495; + this.match(TSqlParser.EQUAL); + this.state = 3506; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3506; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,332,this._ctx); + switch(la_) { + case 1: + this.state = 3497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3496; + this.match(TSqlParser.COMMA); + } + + this.state = 3499; + this.match(TSqlParser.DECIMAL); + this.state = 3500; + this.match(TSqlParser.TO); + this.state = 3501; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 3503; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3502; + this.match(TSqlParser.COMMA); + } + + this.state = 3505; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3508; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,333, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3518; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,336,this._ctx); + if(la_===1) { + this.state = 3513; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3512; + this.match(TSqlParser.COMMA); + } + + this.state = 3515; + this.match(TSqlParser.MAX_MEMORY_PERCENT); + this.state = 3516; + this.match(TSqlParser.EQUAL); + this.state = 3517; + localctx.max_memory_percent = this.match(TSqlParser.DECIMAL); + + } + this.state = 3526; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAX_PROCESSES || _la===TSqlParser.COMMA) { + this.state = 3521; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3520; + this.match(TSqlParser.COMMA); + } + + this.state = 3523; + this.match(TSqlParser.MAX_PROCESSES); + this.state = 3524; + this.match(TSqlParser.EQUAL); + this.state = 3525; + localctx.max_processes = this.match(TSqlParser.DECIMAL); + } + + this.state = 3528; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_fulltext_catalogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_fulltext_catalog; + this.catalog_name = null; // IdContext + return this; +} + +Alter_fulltext_catalogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_fulltext_catalogContext.prototype.constructor = Alter_fulltext_catalogContext; + +Alter_fulltext_catalogContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_fulltext_catalogContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Alter_fulltext_catalogContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Alter_fulltext_catalogContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_fulltext_catalogContext.prototype.REBUILD = function() { + return this.getToken(TSqlParser.REBUILD, 0); +}; + +Alter_fulltext_catalogContext.prototype.REORGANIZE = function() { + return this.getToken(TSqlParser.REORGANIZE, 0); +}; + +Alter_fulltext_catalogContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Alter_fulltext_catalogContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Alter_fulltext_catalogContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_fulltext_catalogContext.prototype.ACCENT_SENSITIVITY = function() { + return this.getToken(TSqlParser.ACCENT_SENSITIVITY, 0); +}; + +Alter_fulltext_catalogContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_fulltext_catalogContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_fulltext_catalogContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_fulltext_catalogContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_fulltext_catalog(this); + } +}; + +Alter_fulltext_catalogContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_fulltext_catalog(this); + } +}; + +Alter_fulltext_catalogContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_fulltext_catalog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_fulltext_catalogContext = Alter_fulltext_catalogContext; + +TSqlParser.prototype.alter_fulltext_catalog = function() { + + var localctx = new Alter_fulltext_catalogContext(this, this._ctx, this.state); + this.enterRule(localctx, 304, TSqlParser.RULE_alter_fulltext_catalog); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3530; + this.match(TSqlParser.ALTER); + this.state = 3531; + this.match(TSqlParser.FULLTEXT); + this.state = 3532; + this.match(TSqlParser.CATALOG); + this.state = 3533; + localctx.catalog_name = this.id(); + this.state = 3544; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REBUILD: + this.state = 3534; + this.match(TSqlParser.REBUILD); + this.state = 3539; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,339,this._ctx); + if(la_===1) { + this.state = 3535; + this.match(TSqlParser.WITH); + this.state = 3536; + this.match(TSqlParser.ACCENT_SENSITIVITY); + this.state = 3537; + this.match(TSqlParser.EQUAL); + this.state = 3538; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case TSqlParser.REORGANIZE: + this.state = 3541; + this.match(TSqlParser.REORGANIZE); + break; + case TSqlParser.AS: + this.state = 3542; + this.match(TSqlParser.AS); + this.state = 3543; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_fulltext_catalogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_fulltext_catalog; + this.catalog_name = null; // IdContext + this.filegroup = null; // IdContext + this.rootpath = null; // Token + this.owner_name = null; // IdContext + return this; +} + +Create_fulltext_catalogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_fulltext_catalogContext.prototype.constructor = Create_fulltext_catalogContext; + +Create_fulltext_catalogContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_fulltext_catalogContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Create_fulltext_catalogContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Create_fulltext_catalogContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_fulltext_catalogContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_fulltext_catalogContext.prototype.FILEGROUP = function() { + return this.getToken(TSqlParser.FILEGROUP, 0); +}; + +Create_fulltext_catalogContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +Create_fulltext_catalogContext.prototype.PATH = function() { + return this.getToken(TSqlParser.PATH, 0); +}; + +Create_fulltext_catalogContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_fulltext_catalogContext.prototype.ACCENT_SENSITIVITY = function() { + return this.getToken(TSqlParser.ACCENT_SENSITIVITY, 0); +}; + +Create_fulltext_catalogContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_fulltext_catalogContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_fulltext_catalogContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Create_fulltext_catalogContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_fulltext_catalogContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_fulltext_catalogContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_fulltext_catalogContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_fulltext_catalog(this); + } +}; + +Create_fulltext_catalogContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_fulltext_catalog(this); + } +}; + +Create_fulltext_catalogContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_fulltext_catalog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_fulltext_catalogContext = Create_fulltext_catalogContext; + +TSqlParser.prototype.create_fulltext_catalog = function() { + + var localctx = new Create_fulltext_catalogContext(this, this._ctx, this.state); + this.enterRule(localctx, 306, TSqlParser.RULE_create_fulltext_catalog); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3546; + this.match(TSqlParser.CREATE); + this.state = 3547; + this.match(TSqlParser.FULLTEXT); + this.state = 3548; + this.match(TSqlParser.CATALOG); + this.state = 3549; + localctx.catalog_name = this.id(); + this.state = 3553; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 3550; + this.match(TSqlParser.ON); + this.state = 3551; + this.match(TSqlParser.FILEGROUP); + this.state = 3552; + localctx.filegroup = this.id(); + } + + this.state = 3558; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IN) { + this.state = 3555; + this.match(TSqlParser.IN); + this.state = 3556; + this.match(TSqlParser.PATH); + this.state = 3557; + localctx.rootpath = this.match(TSqlParser.STRING); + } + + this.state = 3564; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,343,this._ctx); + if(la_===1) { + this.state = 3560; + this.match(TSqlParser.WITH); + this.state = 3561; + this.match(TSqlParser.ACCENT_SENSITIVITY); + this.state = 3562; + this.match(TSqlParser.EQUAL); + this.state = 3563; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3568; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 3566; + this.match(TSqlParser.AS); + this.state = 3567; + this.match(TSqlParser.DEFAULT); + } + + this.state = 3572; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 3570; + this.match(TSqlParser.AUTHORIZATION); + this.state = 3571; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_fulltext_stoplistContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_fulltext_stoplist; + this.stoplist_name = null; // IdContext + this.stopword = null; // Token + return this; +} + +Alter_fulltext_stoplistContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_fulltext_stoplistContext.prototype.constructor = Alter_fulltext_stoplistContext; + +Alter_fulltext_stoplistContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_fulltext_stoplistContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Alter_fulltext_stoplistContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Alter_fulltext_stoplistContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_fulltext_stoplistContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_fulltext_stoplistContext.prototype.LANGUAGE = function() { + return this.getToken(TSqlParser.LANGUAGE, 0); +}; + +Alter_fulltext_stoplistContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_fulltext_stoplistContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_fulltext_stoplistContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Alter_fulltext_stoplistContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Alter_fulltext_stoplistContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Alter_fulltext_stoplistContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_fulltext_stoplist(this); + } +}; + +Alter_fulltext_stoplistContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_fulltext_stoplist(this); + } +}; + +Alter_fulltext_stoplistContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_fulltext_stoplist(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_fulltext_stoplistContext = Alter_fulltext_stoplistContext; + +TSqlParser.prototype.alter_fulltext_stoplist = function() { + + var localctx = new Alter_fulltext_stoplistContext(this, this._ctx, this.state); + this.enterRule(localctx, 308, TSqlParser.RULE_alter_fulltext_stoplist); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3574; + this.match(TSqlParser.ALTER); + this.state = 3575; + this.match(TSqlParser.FULLTEXT); + this.state = 3576; + this.match(TSqlParser.STOPLIST); + this.state = 3577; + localctx.stoplist_name = this.id(); + this.state = 3591; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ADD: + this.state = 3578; + this.match(TSqlParser.ADD); + this.state = 3579; + localctx.stopword = this.match(TSqlParser.STRING); + this.state = 3580; + this.match(TSqlParser.LANGUAGE); + this.state = 3581; + _la = this._input.LA(1); + if(!(((((_la - 800)) & ~0x1f) == 0 && ((1 << (_la - 800)) & ((1 << (TSqlParser.DECIMAL - 800)) | (1 << (TSqlParser.STRING - 800)) | (1 << (TSqlParser.BINARY - 800)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DROP: + this.state = 3582; + this.match(TSqlParser.DROP); + this.state = 3589; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,346,this._ctx); + switch(la_) { + case 1: + this.state = 3583; + localctx.stopword = this.match(TSqlParser.STRING); + this.state = 3584; + this.match(TSqlParser.LANGUAGE); + this.state = 3585; + _la = this._input.LA(1); + if(!(((((_la - 800)) & ~0x1f) == 0 && ((1 << (_la - 800)) & ((1 << (TSqlParser.DECIMAL - 800)) | (1 << (TSqlParser.STRING - 800)) | (1 << (TSqlParser.BINARY - 800)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 3586; + this.match(TSqlParser.ALL); + this.state = 3587; + _la = this._input.LA(1); + if(!(((((_la - 800)) & ~0x1f) == 0 && ((1 << (_la - 800)) & ((1 << (TSqlParser.DECIMAL - 800)) | (1 << (TSqlParser.STRING - 800)) | (1 << (TSqlParser.BINARY - 800)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + this.state = 3588; + this.match(TSqlParser.ALL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_fulltext_stoplistContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_fulltext_stoplist; + this.stoplist_name = null; // IdContext + this.database_name = null; // IdContext + this.source_stoplist_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_fulltext_stoplistContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_fulltext_stoplistContext.prototype.constructor = Create_fulltext_stoplistContext; + +Create_fulltext_stoplistContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_fulltext_stoplistContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Create_fulltext_stoplistContext.prototype.STOPLIST = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STOPLIST); + } else { + return this.getToken(TSqlParser.STOPLIST, i); + } +}; + + +Create_fulltext_stoplistContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_fulltext_stoplistContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_fulltext_stoplistContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_fulltext_stoplistContext.prototype.SYSTEM = function() { + return this.getToken(TSqlParser.SYSTEM, 0); +}; + +Create_fulltext_stoplistContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_fulltext_stoplistContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_fulltext_stoplist(this); + } +}; + +Create_fulltext_stoplistContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_fulltext_stoplist(this); + } +}; + +Create_fulltext_stoplistContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_fulltext_stoplist(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_fulltext_stoplistContext = Create_fulltext_stoplistContext; + +TSqlParser.prototype.create_fulltext_stoplist = function() { + + var localctx = new Create_fulltext_stoplistContext(this, this._ctx, this.state); + this.enterRule(localctx, 310, TSqlParser.RULE_create_fulltext_stoplist); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3593; + this.match(TSqlParser.CREATE); + this.state = 3594; + this.match(TSqlParser.FULLTEXT); + this.state = 3595; + this.match(TSqlParser.STOPLIST); + this.state = 3596; + localctx.stoplist_name = this.id(); + this.state = 3608; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 3597; + this.match(TSqlParser.FROM); + this.state = 3606; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,349,this._ctx); + switch(la_) { + case 1: + this.state = 3601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,348,this._ctx); + if(la_===1) { + this.state = 3598; + localctx.database_name = this.id(); + this.state = 3599; + this.match(TSqlParser.DOT); + + } + this.state = 3603; + localctx.source_stoplist_name = this.id(); + break; + + case 2: + this.state = 3604; + this.match(TSqlParser.SYSTEM); + this.state = 3605; + this.match(TSqlParser.STOPLIST); + break; + + } + } + + this.state = 3612; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 3610; + this.match(TSqlParser.AUTHORIZATION); + this.state = 3611; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_login_sql_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_login_sql_server; + this.login_name = null; // IdContext + this.password = null; // Token + this.password_hash = null; // Token + this.old_password = null; // Token + this.default_database = null; // IdContext + this.default_laguage = null; // IdContext + this.credential_name = null; // IdContext + return this; +} + +Alter_login_sql_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_login_sql_serverContext.prototype.constructor = Alter_login_sql_serverContext; + +Alter_login_sql_serverContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_login_sql_serverContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Alter_login_sql_serverContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_login_sql_serverContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_login_sql_serverContext.prototype.CREDENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CREDENTIAL); + } else { + return this.getToken(TSqlParser.CREDENTIAL, i); + } +}; + + +Alter_login_sql_serverContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_login_sql_serverContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_login_sql_serverContext.prototype.OLD_PASSWORD = function() { + return this.getToken(TSqlParser.OLD_PASSWORD, 0); +}; + +Alter_login_sql_serverContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_login_sql_serverContext.prototype.DEFAULT_DATABASE = function() { + return this.getToken(TSqlParser.DEFAULT_DATABASE, 0); +}; + +Alter_login_sql_serverContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +Alter_login_sql_serverContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_login_sql_serverContext.prototype.CHECK_POLICY = function() { + return this.getToken(TSqlParser.CHECK_POLICY, 0); +}; + +Alter_login_sql_serverContext.prototype.CHECK_EXPIRATION = function() { + return this.getToken(TSqlParser.CHECK_EXPIRATION, 0); +}; + +Alter_login_sql_serverContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +Alter_login_sql_serverContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_login_sql_serverContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_login_sql_serverContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_login_sql_serverContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Alter_login_sql_serverContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Alter_login_sql_serverContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_login_sql_serverContext.prototype.HASHED = function() { + return this.getToken(TSqlParser.HASHED, 0); +}; + +Alter_login_sql_serverContext.prototype.MUST_CHANGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MUST_CHANGE); + } else { + return this.getToken(TSqlParser.MUST_CHANGE, i); + } +}; + + +Alter_login_sql_serverContext.prototype.UNLOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLOCK); + } else { + return this.getToken(TSqlParser.UNLOCK, i); + } +}; + + +Alter_login_sql_serverContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Alter_login_sql_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_login_sql_server(this); + } +}; + +Alter_login_sql_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_login_sql_server(this); + } +}; + +Alter_login_sql_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_login_sql_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_login_sql_serverContext = Alter_login_sql_serverContext; + +TSqlParser.prototype.alter_login_sql_server = function() { + + var localctx = new Alter_login_sql_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 312, TSqlParser.RULE_alter_login_sql_server); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3614; + this.match(TSqlParser.ALTER); + this.state = 3615; + this.match(TSqlParser.LOGIN); + this.state = 3616; + localctx.login_name = this.id(); + this.state = 3684; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,365,this._ctx); + switch(la_) { + case 1: + this.state = 3618; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,352,this._ctx); + if(la_===1) { + this.state = 3617; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 2: + this.state = 3620; + this.match(TSqlParser.WITH); + this.state = 3634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PASSWORD) { + this.state = 3621; + this.match(TSqlParser.PASSWORD); + this.state = 3622; + this.match(TSqlParser.EQUAL); + this.state = 3626; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 3623; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.BINARY: + this.state = 3624; + localctx.password_hash = this.match(TSqlParser.BINARY); + this.state = 3625; + this.match(TSqlParser.HASHED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3631; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK) { + this.state = 3628; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3633; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 3645; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OLD_PASSWORD) { + this.state = 3636; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 3637; + this.match(TSqlParser.EQUAL); + this.state = 3638; + localctx.old_password = this.match(TSqlParser.STRING); + this.state = 3642; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK) { + this.state = 3639; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3644; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 3650; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DEFAULT_DATABASE) { + this.state = 3647; + this.match(TSqlParser.DEFAULT_DATABASE); + this.state = 3648; + this.match(TSqlParser.EQUAL); + this.state = 3649; + localctx.default_database = this.id(); + } + + this.state = 3655; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,359,this._ctx); + if(la_===1) { + this.state = 3652; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 3653; + this.match(TSqlParser.EQUAL); + this.state = 3654; + localctx.default_laguage = this.id(); + + } + this.state = 3660; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,360,this._ctx); + if(la_===1) { + this.state = 3657; + this.match(TSqlParser.NAME); + this.state = 3658; + this.match(TSqlParser.EQUAL); + this.state = 3659; + localctx.login_name = this.id(); + + } + this.state = 3665; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CHECK_POLICY) { + this.state = 3662; + this.match(TSqlParser.CHECK_POLICY); + this.state = 3663; + this.match(TSqlParser.EQUAL); + this.state = 3664; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3670; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CHECK_EXPIRATION) { + this.state = 3667; + this.match(TSqlParser.CHECK_EXPIRATION); + this.state = 3668; + this.match(TSqlParser.EQUAL); + this.state = 3669; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3675; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,363,this._ctx); + if(la_===1) { + this.state = 3672; + this.match(TSqlParser.CREDENTIAL); + this.state = 3673; + this.match(TSqlParser.EQUAL); + this.state = 3674; + localctx.credential_name = this.id(); + + } + this.state = 3679; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,364,this._ctx); + if(la_===1) { + this.state = 3677; + this.match(TSqlParser.NO); + this.state = 3678; + this.match(TSqlParser.CREDENTIAL); + + } + break; + + case 3: + this.state = 3681; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3682; + this.match(TSqlParser.CREDENTIAL); + this.state = 3683; + localctx.credential_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_login_sql_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_login_sql_server; + this.login_name = null; // IdContext + this.password = null; // Token + this.password_hash = null; // Token + this.sid = null; // Token + this.default_database = null; // IdContext + this.default_laguage = null; // IdContext + this.credential_name = null; // IdContext + this.default_language = null; // Token + this.certname = null; // IdContext + this.asym_key_name = null; // IdContext + return this; +} + +Create_login_sql_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_login_sql_serverContext.prototype.constructor = Create_login_sql_serverContext; + +Create_login_sql_serverContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_login_sql_serverContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_login_sql_serverContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_login_sql_serverContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_login_sql_serverContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_login_sql_serverContext.prototype.SID = function() { + return this.getToken(TSqlParser.SID, 0); +}; + +Create_login_sql_serverContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_login_sql_serverContext.prototype.DEFAULT_DATABASE = function() { + return this.getToken(TSqlParser.DEFAULT_DATABASE, 0); +}; + +Create_login_sql_serverContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +Create_login_sql_serverContext.prototype.CHECK_EXPIRATION = function() { + return this.getToken(TSqlParser.CHECK_EXPIRATION, 0); +}; + +Create_login_sql_serverContext.prototype.CHECK_POLICY = function() { + return this.getToken(TSqlParser.CHECK_POLICY, 0); +}; + +Create_login_sql_serverContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Create_login_sql_serverContext.prototype.BINARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BINARY); + } else { + return this.getToken(TSqlParser.BINARY, i); + } +}; + + +Create_login_sql_serverContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_login_sql_serverContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_login_sql_serverContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Create_login_sql_serverContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Create_login_sql_serverContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Create_login_sql_serverContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_login_sql_serverContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_login_sql_serverContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_login_sql_serverContext.prototype.HASHED = function() { + return this.getToken(TSqlParser.HASHED, 0); +}; + +Create_login_sql_serverContext.prototype.MUST_CHANGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MUST_CHANGE); + } else { + return this.getToken(TSqlParser.MUST_CHANGE, i); + } +}; + + +Create_login_sql_serverContext.prototype.UNLOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLOCK); + } else { + return this.getToken(TSqlParser.UNLOCK, i); + } +}; + + +Create_login_sql_serverContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_login_sql_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_login_sql_server(this); + } +}; + +Create_login_sql_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_login_sql_server(this); + } +}; + +Create_login_sql_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_login_sql_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_login_sql_serverContext = Create_login_sql_serverContext; + +TSqlParser.prototype.create_login_sql_server = function() { + + var localctx = new Create_login_sql_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 314, TSqlParser.RULE_create_login_sql_server); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3686; + this.match(TSqlParser.CREATE); + this.state = 3687; + this.match(TSqlParser.LOGIN); + this.state = 3688; + localctx.login_name = this.id(); + this.state = 3779; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 3689; + this.match(TSqlParser.WITH); + this.state = 3703; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PASSWORD) { + this.state = 3690; + this.match(TSqlParser.PASSWORD); + this.state = 3691; + this.match(TSqlParser.EQUAL); + this.state = 3695; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 3692; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.BINARY: + this.state = 3693; + localctx.password_hash = this.match(TSqlParser.BINARY); + this.state = 3694; + this.match(TSqlParser.HASHED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3700; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK) { + this.state = 3697; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3702; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 3711; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,370,this._ctx); + if(la_===1) { + this.state = 3706; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3705; + this.match(TSqlParser.COMMA); + } + + this.state = 3708; + this.match(TSqlParser.SID); + this.state = 3709; + this.match(TSqlParser.EQUAL); + this.state = 3710; + localctx.sid = this.match(TSqlParser.BINARY); + + } + this.state = 3719; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,372,this._ctx); + if(la_===1) { + this.state = 3714; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3713; + this.match(TSqlParser.COMMA); + } + + this.state = 3716; + this.match(TSqlParser.DEFAULT_DATABASE); + this.state = 3717; + this.match(TSqlParser.EQUAL); + this.state = 3718; + localctx.default_database = this.id(); + + } + this.state = 3727; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,374,this._ctx); + if(la_===1) { + this.state = 3722; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3721; + this.match(TSqlParser.COMMA); + } + + this.state = 3724; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 3725; + this.match(TSqlParser.EQUAL); + this.state = 3726; + localctx.default_laguage = this.id(); + + } + this.state = 3735; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,376,this._ctx); + if(la_===1) { + this.state = 3730; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3729; + this.match(TSqlParser.COMMA); + } + + this.state = 3732; + this.match(TSqlParser.CHECK_EXPIRATION); + this.state = 3733; + this.match(TSqlParser.EQUAL); + this.state = 3734; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3743; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,378,this._ctx); + if(la_===1) { + this.state = 3738; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3737; + this.match(TSqlParser.COMMA); + } + + this.state = 3740; + this.match(TSqlParser.CHECK_POLICY); + this.state = 3741; + this.match(TSqlParser.EQUAL); + this.state = 3742; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3751; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,380,this._ctx); + if(la_===1) { + this.state = 3746; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3745; + this.match(TSqlParser.COMMA); + } + + this.state = 3748; + this.match(TSqlParser.CREDENTIAL); + this.state = 3749; + this.match(TSqlParser.EQUAL); + this.state = 3750; + localctx.credential_name = this.id(); + + } + break; + case TSqlParser.FROM: + this.state = 3753; + this.match(TSqlParser.FROM); + this.state = 3777; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WINDOWS: + this.state = 3754; + this.match(TSqlParser.WINDOWS); + + this.state = 3755; + this.match(TSqlParser.WITH); + this.state = 3762; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,382,this._ctx); + if(la_===1) { + this.state = 3757; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3756; + this.match(TSqlParser.COMMA); + } + + this.state = 3759; + this.match(TSqlParser.DEFAULT_DATABASE); + this.state = 3760; + this.match(TSqlParser.EQUAL); + this.state = 3761; + localctx.default_database = this.id(); + + } + this.state = 3770; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,384,this._ctx); + if(la_===1) { + this.state = 3765; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3764; + this.match(TSqlParser.COMMA); + } + + this.state = 3767; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 3768; + this.match(TSqlParser.EQUAL); + this.state = 3769; + localctx.default_language = this.match(TSqlParser.STRING); + + } + break; + case TSqlParser.CERTIFICATE: + this.state = 3772; + this.match(TSqlParser.CERTIFICATE); + this.state = 3773; + localctx.certname = this.id(); + break; + case TSqlParser.ASYMMETRIC: + this.state = 3774; + this.match(TSqlParser.ASYMMETRIC); + this.state = 3775; + this.match(TSqlParser.KEY); + this.state = 3776; + localctx.asym_key_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_login_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_login_azure_sql; + this.login_name = null; // IdContext + this.password = null; // Token + this.old_password = null; // Token + return this; +} + +Alter_login_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_login_azure_sqlContext.prototype.constructor = Alter_login_azure_sqlContext; + +Alter_login_azure_sqlContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_login_azure_sqlContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Alter_login_azure_sqlContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_login_azure_sqlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_login_azure_sqlContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_login_azure_sqlContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_login_azure_sqlContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_login_azure_sqlContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_login_azure_sqlContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_login_azure_sqlContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_login_azure_sqlContext.prototype.OLD_PASSWORD = function() { + return this.getToken(TSqlParser.OLD_PASSWORD, 0); +}; + +Alter_login_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_login_azure_sql(this); + } +}; + +Alter_login_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_login_azure_sql(this); + } +}; + +Alter_login_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_login_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_login_azure_sqlContext = Alter_login_azure_sqlContext; + +TSqlParser.prototype.alter_login_azure_sql = function() { + + var localctx = new Alter_login_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 316, TSqlParser.RULE_alter_login_azure_sql); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3781; + this.match(TSqlParser.ALTER); + this.state = 3782; + this.match(TSqlParser.LOGIN); + this.state = 3783; + localctx.login_name = this.id(); + this.state = 3801; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,390,this._ctx); + switch(la_) { + case 1: + this.state = 3785; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,387,this._ctx); + if(la_===1) { + this.state = 3784; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 2: + this.state = 3787; + this.match(TSqlParser.WITH); + this.state = 3799; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PASSWORD: + this.state = 3788; + this.match(TSqlParser.PASSWORD); + this.state = 3789; + this.match(TSqlParser.EQUAL); + this.state = 3790; + localctx.password = this.match(TSqlParser.STRING); + this.state = 3794; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OLD_PASSWORD) { + this.state = 3791; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 3792; + this.match(TSqlParser.EQUAL); + this.state = 3793; + localctx.old_password = this.match(TSqlParser.STRING); + } + + break; + case TSqlParser.NAME: + this.state = 3796; + this.match(TSqlParser.NAME); + this.state = 3797; + this.match(TSqlParser.EQUAL); + this.state = 3798; + localctx.login_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_login_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_login_azure_sql; + this.login_name = null; // IdContext + this.sid = null; // Token + return this; +} + +Create_login_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_login_azure_sqlContext.prototype.constructor = Create_login_azure_sqlContext; + +Create_login_azure_sqlContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_login_azure_sqlContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_login_azure_sqlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_login_azure_sqlContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_login_azure_sqlContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_login_azure_sqlContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_login_azure_sqlContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_login_azure_sqlContext.prototype.SID = function() { + return this.getToken(TSqlParser.SID, 0); +}; + +Create_login_azure_sqlContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Create_login_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_login_azure_sql(this); + } +}; + +Create_login_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_login_azure_sql(this); + } +}; + +Create_login_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_login_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_login_azure_sqlContext = Create_login_azure_sqlContext; + +TSqlParser.prototype.create_login_azure_sql = function() { + + var localctx = new Create_login_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 318, TSqlParser.RULE_create_login_azure_sql); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3803; + this.match(TSqlParser.CREATE); + this.state = 3804; + this.match(TSqlParser.LOGIN); + this.state = 3805; + localctx.login_name = this.id(); + this.state = 3806; + this.match(TSqlParser.WITH); + this.state = 3807; + this.match(TSqlParser.PASSWORD); + this.state = 3808; + this.match(TSqlParser.EQUAL); + this.state = 3809; + this.match(TSqlParser.STRING); + this.state = 3813; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,391,this._ctx); + if(la_===1) { + this.state = 3810; + this.match(TSqlParser.SID); + this.state = 3811; + this.match(TSqlParser.EQUAL); + this.state = 3812; + localctx.sid = this.match(TSqlParser.BINARY); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_login_azure_sql_dw_and_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_login_azure_sql_dw_and_pdw; + this.login_name = null; // IdContext + this.password = null; // Token + this.old_password = null; // Token + return this; +} + +Alter_login_azure_sql_dw_and_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_login_azure_sql_dw_and_pdwContext.prototype.constructor = Alter_login_azure_sql_dw_and_pdwContext; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_login_azure_sql_dw_and_pdwContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_login_azure_sql_dw_and_pdwContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.OLD_PASSWORD = function() { + return this.getToken(TSqlParser.OLD_PASSWORD, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.MUST_CHANGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MUST_CHANGE); + } else { + return this.getToken(TSqlParser.MUST_CHANGE, i); + } +}; + + +Alter_login_azure_sql_dw_and_pdwContext.prototype.UNLOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLOCK); + } else { + return this.getToken(TSqlParser.UNLOCK, i); + } +}; + + +Alter_login_azure_sql_dw_and_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_login_azure_sql_dw_and_pdw(this); + } +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_login_azure_sql_dw_and_pdw(this); + } +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_login_azure_sql_dw_and_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_login_azure_sql_dw_and_pdwContext = Alter_login_azure_sql_dw_and_pdwContext; + +TSqlParser.prototype.alter_login_azure_sql_dw_and_pdw = function() { + + var localctx = new Alter_login_azure_sql_dw_and_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 320, TSqlParser.RULE_alter_login_azure_sql_dw_and_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3815; + this.match(TSqlParser.ALTER); + this.state = 3816; + this.match(TSqlParser.LOGIN); + this.state = 3817; + localctx.login_name = this.id(); + this.state = 3841; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,396,this._ctx); + switch(la_) { + case 1: + this.state = 3819; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,392,this._ctx); + if(la_===1) { + this.state = 3818; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 2: + this.state = 3821; + this.match(TSqlParser.WITH); + this.state = 3839; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PASSWORD: + this.state = 3822; + this.match(TSqlParser.PASSWORD); + this.state = 3823; + this.match(TSqlParser.EQUAL); + this.state = 3824; + localctx.password = this.match(TSqlParser.STRING); + this.state = 3834; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OLD_PASSWORD) { + this.state = 3825; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 3826; + this.match(TSqlParser.EQUAL); + this.state = 3827; + localctx.old_password = this.match(TSqlParser.STRING); + this.state = 3831; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK) { + this.state = 3828; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3833; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + break; + case TSqlParser.NAME: + this.state = 3836; + this.match(TSqlParser.NAME); + this.state = 3837; + this.match(TSqlParser.EQUAL); + this.state = 3838; + localctx.login_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_login_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_login_pdw; + this.loginName = null; // IdContext + this.password = null; // Token + return this; +} + +Create_login_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_login_pdwContext.prototype.constructor = Create_login_pdwContext; + +Create_login_pdwContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_login_pdwContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_login_pdwContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_login_pdwContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_login_pdwContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_login_pdwContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Create_login_pdwContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_login_pdwContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_login_pdwContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_login_pdwContext.prototype.MUST_CHANGE = function() { + return this.getToken(TSqlParser.MUST_CHANGE, 0); +}; + +Create_login_pdwContext.prototype.CHECK_POLICY = function() { + return this.getToken(TSqlParser.CHECK_POLICY, 0); +}; + +Create_login_pdwContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_login_pdwContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_login_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_login_pdw(this); + } +}; + +Create_login_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_login_pdw(this); + } +}; + +Create_login_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_login_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_login_pdwContext = Create_login_pdwContext; + +TSqlParser.prototype.create_login_pdw = function() { + + var localctx = new Create_login_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 322, TSqlParser.RULE_create_login_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3843; + this.match(TSqlParser.CREATE); + this.state = 3844; + this.match(TSqlParser.LOGIN); + this.state = 3845; + localctx.loginName = this.id(); + this.state = 3862; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 3846; + this.match(TSqlParser.WITH); + + this.state = 3847; + this.match(TSqlParser.PASSWORD); + this.state = 3848; + this.match(TSqlParser.EQUAL); + this.state = 3849; + localctx.password = this.match(TSqlParser.STRING); + this.state = 3851; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MUST_CHANGE) { + this.state = 3850; + this.match(TSqlParser.MUST_CHANGE); + } + + this.state = 3858; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CHECK_POLICY) { + this.state = 3853; + this.match(TSqlParser.CHECK_POLICY); + this.state = 3854; + this.match(TSqlParser.EQUAL); + this.state = 3856; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OFF || _la===TSqlParser.ON) { + this.state = 3855; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } + + break; + case TSqlParser.FROM: + this.state = 3860; + this.match(TSqlParser.FROM); + this.state = 3861; + this.match(TSqlParser.WINDOWS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_master_key_sql_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_master_key_sql_server; + this.password = null; // Token + this.encryption_password = null; // Token + return this; +} + +Alter_master_key_sql_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_master_key_sql_serverContext.prototype.constructor = Alter_master_key_sql_serverContext; + +Alter_master_key_sql_serverContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_master_key_sql_serverContext.prototype.MASTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MASTER); + } else { + return this.getToken(TSqlParser.MASTER, i); + } +}; + + +Alter_master_key_sql_serverContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Alter_master_key_sql_serverContext.prototype.REGENERATE = function() { + return this.getToken(TSqlParser.REGENERATE, 0); +}; + +Alter_master_key_sql_serverContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_master_key_sql_serverContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_master_key_sql_serverContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Alter_master_key_sql_serverContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_master_key_sql_serverContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_master_key_sql_serverContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_master_key_sql_serverContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_master_key_sql_serverContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_master_key_sql_serverContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_master_key_sql_serverContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +Alter_master_key_sql_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_master_key_sql_server(this); + } +}; + +Alter_master_key_sql_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_master_key_sql_server(this); + } +}; + +Alter_master_key_sql_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_master_key_sql_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_master_key_sql_serverContext = Alter_master_key_sql_serverContext; + +TSqlParser.prototype.alter_master_key_sql_server = function() { + + var localctx = new Alter_master_key_sql_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 324, TSqlParser.RULE_alter_master_key_sql_server); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3864; + this.match(TSqlParser.ALTER); + this.state = 3865; + this.match(TSqlParser.MASTER); + this.state = 3866; + this.match(TSqlParser.KEY); + this.state = 3888; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REGENERATE: + case TSqlParser.FORCE: + this.state = 3868; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FORCE) { + this.state = 3867; + this.match(TSqlParser.FORCE); + } + + this.state = 3870; + this.match(TSqlParser.REGENERATE); + this.state = 3871; + this.match(TSqlParser.WITH); + this.state = 3872; + this.match(TSqlParser.ENCRYPTION); + this.state = 3873; + this.match(TSqlParser.BY); + this.state = 3874; + this.match(TSqlParser.PASSWORD); + this.state = 3875; + this.match(TSqlParser.EQUAL); + this.state = 3876; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.ADD: + case TSqlParser.DROP: + this.state = 3877; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3878; + this.match(TSqlParser.ENCRYPTION); + this.state = 3879; + this.match(TSqlParser.BY); + this.state = 3886; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SERVICE: + this.state = 3880; + this.match(TSqlParser.SERVICE); + this.state = 3881; + this.match(TSqlParser.MASTER); + this.state = 3882; + this.match(TSqlParser.KEY); + break; + case TSqlParser.PASSWORD: + this.state = 3883; + this.match(TSqlParser.PASSWORD); + this.state = 3884; + this.match(TSqlParser.EQUAL); + this.state = 3885; + localctx.encryption_password = this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_master_key_sql_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_master_key_sql_server; + this.password = null; // Token + return this; +} + +Create_master_key_sql_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_master_key_sql_serverContext.prototype.constructor = Create_master_key_sql_serverContext; + +Create_master_key_sql_serverContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_master_key_sql_serverContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Create_master_key_sql_serverContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_master_key_sql_serverContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_master_key_sql_serverContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_master_key_sql_serverContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_master_key_sql_serverContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_master_key_sql_serverContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_master_key_sql_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_master_key_sql_server(this); + } +}; + +Create_master_key_sql_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_master_key_sql_server(this); + } +}; + +Create_master_key_sql_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_master_key_sql_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_master_key_sql_serverContext = Create_master_key_sql_serverContext; + +TSqlParser.prototype.create_master_key_sql_server = function() { + + var localctx = new Create_master_key_sql_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 326, TSqlParser.RULE_create_master_key_sql_server); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3890; + this.match(TSqlParser.CREATE); + this.state = 3891; + this.match(TSqlParser.MASTER); + this.state = 3892; + this.match(TSqlParser.KEY); + this.state = 3893; + this.match(TSqlParser.ENCRYPTION); + this.state = 3894; + this.match(TSqlParser.BY); + this.state = 3895; + this.match(TSqlParser.PASSWORD); + this.state = 3896; + this.match(TSqlParser.EQUAL); + this.state = 3897; + localctx.password = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_master_key_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_master_key_azure_sql; + this.password = null; // Token + this.encryption_password = null; // Token + return this; +} + +Alter_master_key_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_master_key_azure_sqlContext.prototype.constructor = Alter_master_key_azure_sqlContext; + +Alter_master_key_azure_sqlContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.MASTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MASTER); + } else { + return this.getToken(TSqlParser.MASTER, i); + } +}; + + +Alter_master_key_azure_sqlContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Alter_master_key_azure_sqlContext.prototype.REGENERATE = function() { + return this.getToken(TSqlParser.REGENERATE, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_master_key_azure_sql(this); + } +}; + +Alter_master_key_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_master_key_azure_sql(this); + } +}; + +Alter_master_key_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_master_key_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_master_key_azure_sqlContext = Alter_master_key_azure_sqlContext; + +TSqlParser.prototype.alter_master_key_azure_sql = function() { + + var localctx = new Alter_master_key_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 328, TSqlParser.RULE_alter_master_key_azure_sql); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3899; + this.match(TSqlParser.ALTER); + this.state = 3900; + this.match(TSqlParser.MASTER); + this.state = 3901; + this.match(TSqlParser.KEY); + this.state = 3929; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REGENERATE: + case TSqlParser.FORCE: + this.state = 3903; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FORCE) { + this.state = 3902; + this.match(TSqlParser.FORCE); + } + + this.state = 3905; + this.match(TSqlParser.REGENERATE); + this.state = 3906; + this.match(TSqlParser.WITH); + this.state = 3907; + this.match(TSqlParser.ENCRYPTION); + this.state = 3908; + this.match(TSqlParser.BY); + this.state = 3909; + this.match(TSqlParser.PASSWORD); + this.state = 3910; + this.match(TSqlParser.EQUAL); + this.state = 3911; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.ADD: + this.state = 3912; + this.match(TSqlParser.ADD); + this.state = 3913; + this.match(TSqlParser.ENCRYPTION); + this.state = 3914; + this.match(TSqlParser.BY); + this.state = 3921; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SERVICE: + this.state = 3915; + this.match(TSqlParser.SERVICE); + this.state = 3916; + this.match(TSqlParser.MASTER); + this.state = 3917; + this.match(TSqlParser.KEY); + break; + case TSqlParser.PASSWORD: + this.state = 3918; + this.match(TSqlParser.PASSWORD); + this.state = 3919; + this.match(TSqlParser.EQUAL); + this.state = 3920; + localctx.encryption_password = this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DROP: + this.state = 3923; + this.match(TSqlParser.DROP); + this.state = 3924; + this.match(TSqlParser.ENCRYPTION); + this.state = 3925; + this.match(TSqlParser.BY); + this.state = 3926; + this.match(TSqlParser.PASSWORD); + this.state = 3927; + this.match(TSqlParser.EQUAL); + this.state = 3928; + localctx.encryption_password = this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_master_key_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_master_key_azure_sql; + this.password = null; // Token + return this; +} + +Create_master_key_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_master_key_azure_sqlContext.prototype.constructor = Create_master_key_azure_sqlContext; + +Create_master_key_azure_sqlContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_master_key_azure_sqlContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Create_master_key_azure_sqlContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_master_key_azure_sqlContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_master_key_azure_sqlContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_master_key_azure_sqlContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_master_key_azure_sqlContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_master_key_azure_sqlContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_master_key_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_master_key_azure_sql(this); + } +}; + +Create_master_key_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_master_key_azure_sql(this); + } +}; + +Create_master_key_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_master_key_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_master_key_azure_sqlContext = Create_master_key_azure_sqlContext; + +TSqlParser.prototype.create_master_key_azure_sql = function() { + + var localctx = new Create_master_key_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 330, TSqlParser.RULE_create_master_key_azure_sql); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3931; + this.match(TSqlParser.CREATE); + this.state = 3932; + this.match(TSqlParser.MASTER); + this.state = 3933; + this.match(TSqlParser.KEY); + this.state = 3939; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,407,this._ctx); + if(la_===1) { + this.state = 3934; + this.match(TSqlParser.ENCRYPTION); + this.state = 3935; + this.match(TSqlParser.BY); + this.state = 3936; + this.match(TSqlParser.PASSWORD); + this.state = 3937; + this.match(TSqlParser.EQUAL); + this.state = 3938; + localctx.password = this.match(TSqlParser.STRING); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_message_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_message_type; + this.message_type_name = null; // IdContext + this.schema_collection_name = null; // IdContext + return this; +} + +Alter_message_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_message_typeContext.prototype.constructor = Alter_message_typeContext; + +Alter_message_typeContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_message_typeContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Alter_message_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Alter_message_typeContext.prototype.VALIDATION = function() { + return this.getToken(TSqlParser.VALIDATION, 0); +}; + +Alter_message_typeContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_message_typeContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_message_typeContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Alter_message_typeContext.prototype.EMPTY = function() { + return this.getToken(TSqlParser.EMPTY, 0); +}; + +Alter_message_typeContext.prototype.WELL_FORMED_XML = function() { + return this.getToken(TSqlParser.WELL_FORMED_XML, 0); +}; + +Alter_message_typeContext.prototype.VALID_XML = function() { + return this.getToken(TSqlParser.VALID_XML, 0); +}; + +Alter_message_typeContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_message_typeContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Alter_message_typeContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Alter_message_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_message_type(this); + } +}; + +Alter_message_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_message_type(this); + } +}; + +Alter_message_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_message_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_message_typeContext = Alter_message_typeContext; + +TSqlParser.prototype.alter_message_type = function() { + + var localctx = new Alter_message_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 332, TSqlParser.RULE_alter_message_type); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3941; + this.match(TSqlParser.ALTER); + this.state = 3942; + this.match(TSqlParser.MESSAGE); + this.state = 3943; + this.match(TSqlParser.TYPE); + this.state = 3944; + localctx.message_type_name = this.id(); + this.state = 3945; + this.match(TSqlParser.VALIDATION); + this.state = 3946; + this.match(TSqlParser.EQUAL); + this.state = 3955; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 3947; + this.match(TSqlParser.NONE); + break; + case TSqlParser.EMPTY: + this.state = 3948; + this.match(TSqlParser.EMPTY); + break; + case TSqlParser.WELL_FORMED_XML: + this.state = 3949; + this.match(TSqlParser.WELL_FORMED_XML); + break; + case TSqlParser.VALID_XML: + this.state = 3950; + this.match(TSqlParser.VALID_XML); + this.state = 3951; + this.match(TSqlParser.WITH); + this.state = 3952; + this.match(TSqlParser.SCHEMA); + this.state = 3953; + this.match(TSqlParser.COLLECTION); + this.state = 3954; + localctx.schema_collection_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_partition_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_partition_function; + this.partition_function_name = null; // IdContext + return this; +} + +Alter_partition_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_partition_functionContext.prototype.constructor = Alter_partition_functionContext; + +Alter_partition_functionContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_partition_functionContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Alter_partition_functionContext.prototype.FUNCTION = function() { + return this.getToken(TSqlParser.FUNCTION, 0); +}; + +Alter_partition_functionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_partition_functionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_partition_functionContext.prototype.RANGE = function() { + return this.getToken(TSqlParser.RANGE, 0); +}; + +Alter_partition_functionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Alter_partition_functionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_partition_functionContext.prototype.SPLIT = function() { + return this.getToken(TSqlParser.SPLIT, 0); +}; + +Alter_partition_functionContext.prototype.MERGE = function() { + return this.getToken(TSqlParser.MERGE, 0); +}; + +Alter_partition_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_partition_function(this); + } +}; + +Alter_partition_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_partition_function(this); + } +}; + +Alter_partition_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_partition_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_partition_functionContext = Alter_partition_functionContext; + +TSqlParser.prototype.alter_partition_function = function() { + + var localctx = new Alter_partition_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 334, TSqlParser.RULE_alter_partition_function); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3957; + this.match(TSqlParser.ALTER); + this.state = 3958; + this.match(TSqlParser.PARTITION); + this.state = 3959; + this.match(TSqlParser.FUNCTION); + this.state = 3960; + localctx.partition_function_name = this.id(); + this.state = 3961; + this.match(TSqlParser.LR_BRACKET); + this.state = 3962; + this.match(TSqlParser.RR_BRACKET); + this.state = 3963; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MERGE || _la===TSqlParser.SPLIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3964; + this.match(TSqlParser.RANGE); + this.state = 3965; + this.match(TSqlParser.LR_BRACKET); + this.state = 3966; + this.match(TSqlParser.DECIMAL); + this.state = 3967; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_partition_schemeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_partition_scheme; + this.partition_scheme_name = null; // IdContext + this.file_group_name = null; // IdContext + return this; +} + +Alter_partition_schemeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_partition_schemeContext.prototype.constructor = Alter_partition_schemeContext; + +Alter_partition_schemeContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_partition_schemeContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Alter_partition_schemeContext.prototype.SCHEME = function() { + return this.getToken(TSqlParser.SCHEME, 0); +}; + +Alter_partition_schemeContext.prototype.NEXT = function() { + return this.getToken(TSqlParser.NEXT, 0); +}; + +Alter_partition_schemeContext.prototype.USED = function() { + return this.getToken(TSqlParser.USED, 0); +}; + +Alter_partition_schemeContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_partition_schemeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_partition_scheme(this); + } +}; + +Alter_partition_schemeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_partition_scheme(this); + } +}; + +Alter_partition_schemeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_partition_scheme(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_partition_schemeContext = Alter_partition_schemeContext; + +TSqlParser.prototype.alter_partition_scheme = function() { + + var localctx = new Alter_partition_schemeContext(this, this._ctx, this.state); + this.enterRule(localctx, 336, TSqlParser.RULE_alter_partition_scheme); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3969; + this.match(TSqlParser.ALTER); + this.state = 3970; + this.match(TSqlParser.PARTITION); + this.state = 3971; + this.match(TSqlParser.SCHEME); + this.state = 3972; + localctx.partition_scheme_name = this.id(); + this.state = 3973; + this.match(TSqlParser.NEXT); + this.state = 3974; + this.match(TSqlParser.USED); + this.state = 3976; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,409,this._ctx); + if(la_===1) { + this.state = 3975; + localctx.file_group_name = this.id(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_remote_service_bindingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_remote_service_binding; + this.binding_name = null; // IdContext + this.user_name = null; // IdContext + return this; +} + +Alter_remote_service_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_remote_service_bindingContext.prototype.constructor = Alter_remote_service_bindingContext; + +Alter_remote_service_bindingContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_remote_service_bindingContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Alter_remote_service_bindingContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_remote_service_bindingContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Alter_remote_service_bindingContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_remote_service_bindingContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_remote_service_bindingContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Alter_remote_service_bindingContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_remote_service_bindingContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Alter_remote_service_bindingContext.prototype.ANONYMOUS = function() { + return this.getToken(TSqlParser.ANONYMOUS, 0); +}; + +Alter_remote_service_bindingContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_remote_service_bindingContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_remote_service_bindingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_remote_service_binding(this); + } +}; + +Alter_remote_service_bindingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_remote_service_binding(this); + } +}; + +Alter_remote_service_bindingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_remote_service_binding(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_remote_service_bindingContext = Alter_remote_service_bindingContext; + +TSqlParser.prototype.alter_remote_service_binding = function() { + + var localctx = new Alter_remote_service_bindingContext(this, this._ctx, this.state); + this.enterRule(localctx, 338, TSqlParser.RULE_alter_remote_service_binding); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3978; + this.match(TSqlParser.ALTER); + this.state = 3979; + this.match(TSqlParser.REMOTE); + this.state = 3980; + this.match(TSqlParser.SERVICE); + this.state = 3981; + this.match(TSqlParser.BINDING); + this.state = 3982; + localctx.binding_name = this.id(); + this.state = 3983; + this.match(TSqlParser.WITH); + this.state = 3987; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.USER) { + this.state = 3984; + this.match(TSqlParser.USER); + this.state = 3985; + this.match(TSqlParser.EQUAL); + this.state = 3986; + localctx.user_name = this.id(); + } + + this.state = 3993; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3989; + this.match(TSqlParser.COMMA); + this.state = 3990; + this.match(TSqlParser.ANONYMOUS); + this.state = 3991; + this.match(TSqlParser.EQUAL); + this.state = 3992; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_remote_service_bindingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_remote_service_binding; + this.binding_name = null; // IdContext + this.owner_name = null; // IdContext + this.remote_service_name = null; // Token + this.user_name = null; // IdContext + return this; +} + +Create_remote_service_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_remote_service_bindingContext.prototype.constructor = Create_remote_service_bindingContext; + +Create_remote_service_bindingContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_remote_service_bindingContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Create_remote_service_bindingContext.prototype.SERVICE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVICE); + } else { + return this.getToken(TSqlParser.SERVICE, i); + } +}; + + +Create_remote_service_bindingContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Create_remote_service_bindingContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Create_remote_service_bindingContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_remote_service_bindingContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_remote_service_bindingContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_remote_service_bindingContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_remote_service_bindingContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Create_remote_service_bindingContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_remote_service_bindingContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Create_remote_service_bindingContext.prototype.ANONYMOUS = function() { + return this.getToken(TSqlParser.ANONYMOUS, 0); +}; + +Create_remote_service_bindingContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_remote_service_bindingContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_remote_service_bindingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_remote_service_binding(this); + } +}; + +Create_remote_service_bindingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_remote_service_binding(this); + } +}; + +Create_remote_service_bindingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_remote_service_binding(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_remote_service_bindingContext = Create_remote_service_bindingContext; + +TSqlParser.prototype.create_remote_service_binding = function() { + + var localctx = new Create_remote_service_bindingContext(this, this._ctx, this.state); + this.enterRule(localctx, 340, TSqlParser.RULE_create_remote_service_binding); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3995; + this.match(TSqlParser.CREATE); + this.state = 3996; + this.match(TSqlParser.REMOTE); + this.state = 3997; + this.match(TSqlParser.SERVICE); + this.state = 3998; + this.match(TSqlParser.BINDING); + this.state = 3999; + localctx.binding_name = this.id(); + this.state = 4002; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4000; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4001; + localctx.owner_name = this.id(); + } + + this.state = 4004; + this.match(TSqlParser.TO); + this.state = 4005; + this.match(TSqlParser.SERVICE); + this.state = 4006; + localctx.remote_service_name = this.match(TSqlParser.STRING); + this.state = 4007; + this.match(TSqlParser.WITH); + this.state = 4011; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.USER) { + this.state = 4008; + this.match(TSqlParser.USER); + this.state = 4009; + this.match(TSqlParser.EQUAL); + this.state = 4010; + localctx.user_name = this.id(); + } + + this.state = 4017; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4013; + this.match(TSqlParser.COMMA); + this.state = 4014; + this.match(TSqlParser.ANONYMOUS); + this.state = 4015; + this.match(TSqlParser.EQUAL); + this.state = 4016; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_resource_pool; + this.pool_name = null; // IdContext + return this; +} + +Create_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_resource_poolContext.prototype.constructor = Create_resource_poolContext; + +Create_resource_poolContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Create_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Create_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_resource_poolContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_resource_poolContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_resource_poolContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_resource_poolContext.prototype.MIN_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MIN_CPU_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_resource_poolContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_resource_poolContext.prototype.MAX_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MAX_CPU_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.CAP_CPU_PERCENT = function() { + return this.getToken(TSqlParser.CAP_CPU_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Create_resource_poolContext.prototype.SCHEDULER = function() { + return this.getToken(TSqlParser.SCHEDULER, 0); +}; + +Create_resource_poolContext.prototype.MIN_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MIN_MEMORY_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.MAX_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MAX_MEMORY_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.MIN_IOPS_PER_VOLUME = function() { + return this.getToken(TSqlParser.MIN_IOPS_PER_VOLUME, 0); +}; + +Create_resource_poolContext.prototype.MAX_IOPS_PER_VOLUME = function() { + return this.getToken(TSqlParser.MAX_IOPS_PER_VOLUME, 0); +}; + +Create_resource_poolContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Create_resource_poolContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Create_resource_poolContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_resource_poolContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Create_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_resource_pool(this); + } +}; + +Create_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_resource_pool(this); + } +}; + +Create_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_resource_poolContext = Create_resource_poolContext; + +TSqlParser.prototype.create_resource_pool = function() { + + var localctx = new Create_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 342, TSqlParser.RULE_create_resource_pool); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4019; + this.match(TSqlParser.CREATE); + this.state = 4020; + this.match(TSqlParser.RESOURCE); + this.state = 4021; + this.match(TSqlParser.POOL); + this.state = 4022; + localctx.pool_name = this.id(); + this.state = 4125; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,438,this._ctx); + if(la_===1) { + this.state = 4023; + this.match(TSqlParser.WITH); + this.state = 4024; + this.match(TSqlParser.LR_BRACKET); + this.state = 4031; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,416,this._ctx); + if(la_===1) { + this.state = 4026; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4025; + this.match(TSqlParser.COMMA); + } + + this.state = 4028; + this.match(TSqlParser.MIN_CPU_PERCENT); + this.state = 4029; + this.match(TSqlParser.EQUAL); + this.state = 4030; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4039; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,418,this._ctx); + if(la_===1) { + this.state = 4034; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4033; + this.match(TSqlParser.COMMA); + } + + this.state = 4036; + this.match(TSqlParser.MAX_CPU_PERCENT); + this.state = 4037; + this.match(TSqlParser.EQUAL); + this.state = 4038; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4047; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,420,this._ctx); + if(la_===1) { + this.state = 4042; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4041; + this.match(TSqlParser.COMMA); + } + + this.state = 4044; + this.match(TSqlParser.CAP_CPU_PERCENT); + this.state = 4045; + this.match(TSqlParser.EQUAL); + this.state = 4046; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4090; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,429,this._ctx); + if(la_===1) { + this.state = 4050; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4049; + this.match(TSqlParser.COMMA); + } + + this.state = 4052; + this.match(TSqlParser.AFFINITY); + this.state = 4053; + this.match(TSqlParser.SCHEDULER); + this.state = 4054; + this.match(TSqlParser.EQUAL); + this.state = 4088; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO: + this.state = 4055; + this.match(TSqlParser.AUTO); + break; + case TSqlParser.LR_BRACKET: + this.state = 4056; + this.match(TSqlParser.LR_BRACKET); + this.state = 4066; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4058; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4057; + this.match(TSqlParser.COMMA); + } + + this.state = 4064; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,423,this._ctx); + switch(la_) { + case 1: + this.state = 4060; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4061; + this.match(TSqlParser.DECIMAL); + this.state = 4062; + this.match(TSqlParser.TO); + this.state = 4063; + this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 4068; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DECIMAL || _la===TSqlParser.COMMA); + this.state = 4070; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.NUMANODE: + this.state = 4071; + this.match(TSqlParser.NUMANODE); + this.state = 4072; + this.match(TSqlParser.EQUAL); + this.state = 4073; + this.match(TSqlParser.LR_BRACKET); + this.state = 4083; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4075; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4074; + this.match(TSqlParser.COMMA); + } + + this.state = 4081; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,426,this._ctx); + switch(la_) { + case 1: + this.state = 4077; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4078; + this.match(TSqlParser.DECIMAL); + this.state = 4079; + this.match(TSqlParser.TO); + this.state = 4080; + this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 4085; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DECIMAL || _la===TSqlParser.COMMA); + this.state = 4087; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 4098; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,431,this._ctx); + if(la_===1) { + this.state = 4093; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4092; + this.match(TSqlParser.COMMA); + } + + this.state = 4095; + this.match(TSqlParser.MIN_MEMORY_PERCENT); + this.state = 4096; + this.match(TSqlParser.EQUAL); + this.state = 4097; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4106; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,433,this._ctx); + if(la_===1) { + this.state = 4101; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4100; + this.match(TSqlParser.COMMA); + } + + this.state = 4103; + this.match(TSqlParser.MAX_MEMORY_PERCENT); + this.state = 4104; + this.match(TSqlParser.EQUAL); + this.state = 4105; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4114; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,435,this._ctx); + if(la_===1) { + this.state = 4109; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4108; + this.match(TSqlParser.COMMA); + } + + this.state = 4111; + this.match(TSqlParser.MIN_IOPS_PER_VOLUME); + this.state = 4112; + this.match(TSqlParser.EQUAL); + this.state = 4113; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4122; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAX_IOPS_PER_VOLUME || _la===TSqlParser.COMMA) { + this.state = 4117; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4116; + this.match(TSqlParser.COMMA); + } + + this.state = 4119; + this.match(TSqlParser.MAX_IOPS_PER_VOLUME); + this.state = 4120; + this.match(TSqlParser.EQUAL); + this.state = 4121; + this.match(TSqlParser.DECIMAL); + } + + this.state = 4124; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_resource_governorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_resource_governor; + this.schema_name = null; // IdContext + this.function_name = null; // IdContext + this.max_outstanding_io_per_volume = null; // Token + return this; +} + +Alter_resource_governorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_resource_governorContext.prototype.constructor = Alter_resource_governorContext; + +Alter_resource_governorContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_resource_governorContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Alter_resource_governorContext.prototype.GOVERNOR = function() { + return this.getToken(TSqlParser.GOVERNOR, 0); +}; + +Alter_resource_governorContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_resource_governorContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_resource_governorContext.prototype.CLASSIFIER_FUNCTION = function() { + return this.getToken(TSqlParser.CLASSIFIER_FUNCTION, 0); +}; + +Alter_resource_governorContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_resource_governorContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_resource_governorContext.prototype.RESET = function() { + return this.getToken(TSqlParser.RESET, 0); +}; + +Alter_resource_governorContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Alter_resource_governorContext.prototype.MAX_OUTSTANDING_IO_PER_VOLUME = function() { + return this.getToken(TSqlParser.MAX_OUTSTANDING_IO_PER_VOLUME, 0); +}; + +Alter_resource_governorContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_resource_governorContext.prototype.RECONFIGURE = function() { + return this.getToken(TSqlParser.RECONFIGURE, 0); +}; + +Alter_resource_governorContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Alter_resource_governorContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_resource_governorContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Alter_resource_governorContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_resource_governorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_resource_governor(this); + } +}; + +Alter_resource_governorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_resource_governor(this); + } +}; + +Alter_resource_governorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_resource_governor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_resource_governorContext = Alter_resource_governorContext; + +TSqlParser.prototype.alter_resource_governor = function() { + + var localctx = new Alter_resource_governorContext(this, this._ctx, this.state); + this.enterRule(localctx, 344, TSqlParser.RULE_alter_resource_governor); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4127; + this.match(TSqlParser.ALTER); + this.state = 4128; + this.match(TSqlParser.RESOURCE); + this.state = 4129; + this.match(TSqlParser.GOVERNOR); + this.state = 4151; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,440,this._ctx); + switch(la_) { + case 1: + this.state = 4130; + _la = this._input.LA(1); + if(!(_la===TSqlParser.RECONFIGURE || _la===TSqlParser.DISABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4131; + this.match(TSqlParser.WITH); + this.state = 4132; + this.match(TSqlParser.LR_BRACKET); + this.state = 4133; + this.match(TSqlParser.CLASSIFIER_FUNCTION); + this.state = 4134; + this.match(TSqlParser.EQUAL); + this.state = 4140; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 4135; + localctx.schema_name = this.id(); + this.state = 4136; + this.match(TSqlParser.DOT); + this.state = 4137; + localctx.function_name = this.id(); + break; + case TSqlParser.NULL: + this.state = 4139; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4142; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.state = 4143; + this.match(TSqlParser.RESET); + this.state = 4144; + this.match(TSqlParser.STATISTICS); + break; + + case 4: + this.state = 4145; + this.match(TSqlParser.WITH); + this.state = 4146; + this.match(TSqlParser.LR_BRACKET); + this.state = 4147; + this.match(TSqlParser.MAX_OUTSTANDING_IO_PER_VOLUME); + this.state = 4148; + this.match(TSqlParser.EQUAL); + this.state = 4149; + localctx.max_outstanding_io_per_volume = this.match(TSqlParser.DECIMAL); + this.state = 4150; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_db_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_db_role; + this.role_name = null; // IdContext + this.database_principal = null; // IdContext + this.new_role_name = null; // IdContext + return this; +} + +Alter_db_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_db_roleContext.prototype.constructor = Alter_db_roleContext; + +Alter_db_roleContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_db_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_db_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_db_roleContext.prototype.MEMBER = function() { + return this.getToken(TSqlParser.MEMBER, 0); +}; + +Alter_db_roleContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_db_roleContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_db_roleContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_db_roleContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_db_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_db_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_db_role(this); + } +}; + +Alter_db_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_db_role(this); + } +}; + +Alter_db_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_db_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_db_roleContext = Alter_db_roleContext; + +TSqlParser.prototype.alter_db_role = function() { + + var localctx = new Alter_db_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 346, TSqlParser.RULE_alter_db_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4153; + this.match(TSqlParser.ALTER); + this.state = 4154; + this.match(TSqlParser.ROLE); + this.state = 4155; + localctx.role_name = this.id(); + this.state = 4163; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ADD: + case TSqlParser.DROP: + this.state = 4156; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4157; + this.match(TSqlParser.MEMBER); + this.state = 4158; + localctx.database_principal = this.id(); + break; + case TSqlParser.WITH: + this.state = 4159; + this.match(TSqlParser.WITH); + this.state = 4160; + this.match(TSqlParser.NAME); + this.state = 4161; + this.match(TSqlParser.EQUAL); + this.state = 4162; + localctx.new_role_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_db_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_db_role; + this.role_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_db_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_db_roleContext.prototype.constructor = Create_db_roleContext; + +Create_db_roleContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_db_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Create_db_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_db_roleContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_db_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_db_role(this); + } +}; + +Create_db_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_db_role(this); + } +}; + +Create_db_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_db_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_db_roleContext = Create_db_roleContext; + +TSqlParser.prototype.create_db_role = function() { + + var localctx = new Create_db_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 348, TSqlParser.RULE_create_db_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4165; + this.match(TSqlParser.CREATE); + this.state = 4166; + this.match(TSqlParser.ROLE); + this.state = 4167; + localctx.role_name = this.id(); + this.state = 4170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4168; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4169; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_routeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_route; + this.route_name = null; // IdContext + this.owner_name = null; // IdContext + this.route_service_name = null; // Token + this.broker_instance_identifier = null; // Token + return this; +} + +Create_routeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_routeContext.prototype.constructor = Create_routeContext; + +Create_routeContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_routeContext.prototype.ROUTE = function() { + return this.getToken(TSqlParser.ROUTE, 0); +}; + +Create_routeContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_routeContext.prototype.ADDRESS = function() { + return this.getToken(TSqlParser.ADDRESS, 0); +}; + +Create_routeContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_routeContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_routeContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_routeContext.prototype.QUOTED_URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUOTED_URL); + } else { + return this.getToken(TSqlParser.QUOTED_URL, i); + } +}; + + +Create_routeContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_routeContext.prototype.SERVICE_NAME = function() { + return this.getToken(TSqlParser.SERVICE_NAME, 0); +}; + +Create_routeContext.prototype.BROKER_INSTANCE = function() { + return this.getToken(TSqlParser.BROKER_INSTANCE, 0); +}; + +Create_routeContext.prototype.LIFETIME = function() { + return this.getToken(TSqlParser.LIFETIME, 0); +}; + +Create_routeContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_routeContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_routeContext.prototype.MIRROR_ADDRESS = function() { + return this.getToken(TSqlParser.MIRROR_ADDRESS, 0); +}; + +Create_routeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_route(this); + } +}; + +Create_routeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_route(this); + } +}; + +Create_routeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_route(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_routeContext = Create_routeContext; + +TSqlParser.prototype.create_route = function() { + + var localctx = new Create_routeContext(this, this._ctx, this.state); + this.enterRule(localctx, 350, TSqlParser.RULE_create_route); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4172; + this.match(TSqlParser.CREATE); + this.state = 4173; + this.match(TSqlParser.ROUTE); + this.state = 4174; + localctx.route_name = this.id(); + this.state = 4177; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4175; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4176; + localctx.owner_name = this.id(); + } + + this.state = 4179; + this.match(TSqlParser.WITH); + this.state = 4186; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,445,this._ctx); + if(la_===1) { + this.state = 4181; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4180; + this.match(TSqlParser.COMMA); + } + + this.state = 4183; + this.match(TSqlParser.SERVICE_NAME); + this.state = 4184; + this.match(TSqlParser.EQUAL); + this.state = 4185; + localctx.route_service_name = this.match(TSqlParser.STRING); + + } + this.state = 4194; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,447,this._ctx); + if(la_===1) { + this.state = 4189; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4188; + this.match(TSqlParser.COMMA); + } + + this.state = 4191; + this.match(TSqlParser.BROKER_INSTANCE); + this.state = 4192; + this.match(TSqlParser.EQUAL); + this.state = 4193; + localctx.broker_instance_identifier = this.match(TSqlParser.STRING); + + } + this.state = 4202; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,449,this._ctx); + if(la_===1) { + this.state = 4197; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4196; + this.match(TSqlParser.COMMA); + } + + this.state = 4199; + this.match(TSqlParser.LIFETIME); + this.state = 4200; + this.match(TSqlParser.EQUAL); + this.state = 4201; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4205; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4204; + this.match(TSqlParser.COMMA); + } + + this.state = 4207; + this.match(TSqlParser.ADDRESS); + this.state = 4208; + this.match(TSqlParser.EQUAL); + this.state = 4209; + _la = this._input.LA(1); + if(!(_la===TSqlParser.QUOTED_URL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4214; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4210; + this.match(TSqlParser.COMMA); + this.state = 4211; + this.match(TSqlParser.MIRROR_ADDRESS); + this.state = 4212; + this.match(TSqlParser.EQUAL); + this.state = 4213; + _la = this._input.LA(1); + if(!(_la===TSqlParser.QUOTED_URL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_ruleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_rule; + this.schema_name = null; // IdContext + this.rule_name = null; // IdContext + return this; +} + +Create_ruleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_ruleContext.prototype.constructor = Create_ruleContext; + +Create_ruleContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_ruleContext.prototype.RULE = function() { + return this.getToken(TSqlParser.RULE, 0); +}; + +Create_ruleContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_ruleContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Create_ruleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_ruleContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_ruleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_rule(this); + } +}; + +Create_ruleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_rule(this); + } +}; + +Create_ruleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_rule(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_ruleContext = Create_ruleContext; + +TSqlParser.prototype.create_rule = function() { + + var localctx = new Create_ruleContext(this, this._ctx, this.state); + this.enterRule(localctx, 352, TSqlParser.RULE_create_rule); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4216; + this.match(TSqlParser.CREATE); + this.state = 4217; + this.match(TSqlParser.RULE); + this.state = 4221; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,452,this._ctx); + if(la_===1) { + this.state = 4218; + localctx.schema_name = this.id(); + this.state = 4219; + this.match(TSqlParser.DOT); + + } + this.state = 4223; + localctx.rule_name = this.id(); + this.state = 4224; + this.match(TSqlParser.AS); + this.state = 4225; + this.search_condition(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_schema_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_schema_sql; + this.schema_name = null; // IdContext + return this; +} + +Alter_schema_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_schema_sqlContext.prototype.constructor = Alter_schema_sqlContext; + +Alter_schema_sqlContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_schema_sqlContext.prototype.SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SCHEMA); + } else { + return this.getToken(TSqlParser.SCHEMA, i); + } +}; + + +Alter_schema_sqlContext.prototype.TRANSFER = function() { + return this.getToken(TSqlParser.TRANSFER, 0); +}; + +Alter_schema_sqlContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_schema_sqlContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Alter_schema_sqlContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_schema_sqlContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Alter_schema_sqlContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Alter_schema_sqlContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Alter_schema_sqlContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Alter_schema_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_schema_sql(this); + } +}; + +Alter_schema_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_schema_sql(this); + } +}; + +Alter_schema_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_schema_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_schema_sqlContext = Alter_schema_sqlContext; + +TSqlParser.prototype.alter_schema_sql = function() { + + var localctx = new Alter_schema_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 354, TSqlParser.RULE_alter_schema_sql); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4227; + this.match(TSqlParser.ALTER); + this.state = 4228; + this.match(TSqlParser.SCHEMA); + this.state = 4229; + localctx.schema_name = this.id(); + this.state = 4230; + this.match(TSqlParser.TRANSFER); + this.state = 4240; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,454,this._ctx); + if(la_===1) { + this.state = 4236; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.OBJECT: + this.state = 4231; + this.match(TSqlParser.OBJECT); + break; + case TSqlParser.TYPE: + this.state = 4232; + this.match(TSqlParser.TYPE); + break; + case TSqlParser.XML: + this.state = 4233; + this.match(TSqlParser.XML); + this.state = 4234; + this.match(TSqlParser.SCHEMA); + this.state = 4235; + this.match(TSqlParser.COLLECTION); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4238; + this.match(TSqlParser.COLON); + this.state = 4239; + this.match(TSqlParser.COLON); + + } + this.state = 4242; + this.id(); + this.state = 4245; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DOT) { + this.state = 4243; + this.match(TSqlParser.DOT); + this.state = 4244; + this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_schema; + this.schema_name = null; // IdContext + this.owner_name = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Create_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_schemaContext.prototype.constructor = Create_schemaContext; + +Create_schemaContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_schemaContext.prototype.SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SCHEMA); + } else { + return this.getToken(TSqlParser.SCHEMA, i); + } +}; + + +Create_schemaContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_schemaContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_schemaContext.prototype.create_table = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Create_tableContext); + } else { + return this.getTypedRuleContext(Create_tableContext,i); + } +}; + +Create_schemaContext.prototype.create_view = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Create_viewContext); + } else { + return this.getTypedRuleContext(Create_viewContext,i); + } +}; + +Create_schemaContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_schemaContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Create_schemaContext.prototype.REVOKE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REVOKE); + } else { + return this.getToken(TSqlParser.REVOKE, i); + } +}; + + +Create_schemaContext.prototype.FROM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FROM); + } else { + return this.getToken(TSqlParser.FROM, i); + } +}; + + +Create_schemaContext.prototype.GRANT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GRANT); + } else { + return this.getToken(TSqlParser.GRANT, i); + } +}; + + +Create_schemaContext.prototype.DENY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DENY); + } else { + return this.getToken(TSqlParser.DENY, i); + } +}; + + +Create_schemaContext.prototype.SELECT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SELECT); + } else { + return this.getToken(TSqlParser.SELECT, i); + } +}; + + +Create_schemaContext.prototype.INSERT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INSERT); + } else { + return this.getToken(TSqlParser.INSERT, i); + } +}; + + +Create_schemaContext.prototype.DELETE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DELETE); + } else { + return this.getToken(TSqlParser.DELETE, i); + } +}; + + +Create_schemaContext.prototype.UPDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UPDATE); + } else { + return this.getToken(TSqlParser.UPDATE, i); + } +}; + + +Create_schemaContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Create_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_schema(this); + } +}; + +Create_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_schema(this); + } +}; + +Create_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_schemaContext = Create_schemaContext; + +TSqlParser.prototype.create_schema = function() { + + var localctx = new Create_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 356, TSqlParser.RULE_create_schema); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4247; + this.match(TSqlParser.CREATE); + this.state = 4248; + this.match(TSqlParser.SCHEMA); + this.state = 4256; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,456,this._ctx); + switch(la_) { + case 1: + this.state = 4249; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 4250; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4251; + localctx.owner_name = this.id(); + break; + + case 3: + this.state = 4252; + localctx.schema_name = this.id(); + this.state = 4253; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4254; + localctx.owner_name = this.id(); + break; + + } + this.state = 4286; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,460,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4284; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,459,this._ctx); + switch(la_) { + case 1: + this.state = 4258; + this.create_table(); + break; + + case 2: + this.state = 4259; + this.create_view(); + break; + + case 3: + this.state = 4260; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DENY || _la===TSqlParser.GRANT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4261; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELETE || _la===TSqlParser.INSERT || _la===TSqlParser.SELECT || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4262; + this.match(TSqlParser.ON); + this.state = 4266; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SCHEMA) { + this.state = 4263; + this.match(TSqlParser.SCHEMA); + this.state = 4264; + this.match(TSqlParser.COLON); + this.state = 4265; + this.match(TSqlParser.COLON); + } + + this.state = 4268; + localctx.object_name = this.id(); + this.state = 4269; + this.match(TSqlParser.TO); + this.state = 4270; + localctx.owner_name = this.id(); + break; + + case 4: + this.state = 4272; + this.match(TSqlParser.REVOKE); + this.state = 4273; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELETE || _la===TSqlParser.INSERT || _la===TSqlParser.SELECT || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4274; + this.match(TSqlParser.ON); + this.state = 4278; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SCHEMA) { + this.state = 4275; + this.match(TSqlParser.SCHEMA); + this.state = 4276; + this.match(TSqlParser.COLON); + this.state = 4277; + this.match(TSqlParser.COLON); + } + + this.state = 4280; + localctx.object_name = this.id(); + this.state = 4281; + this.match(TSqlParser.FROM); + this.state = 4282; + localctx.owner_name = this.id(); + break; + + } + } + this.state = 4288; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,460,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_schema_azure_sql_dw_and_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_schema_azure_sql_dw_and_pdw; + this.schema_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_schema_azure_sql_dw_and_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_schema_azure_sql_dw_and_pdwContext.prototype.constructor = Create_schema_azure_sql_dw_and_pdwContext; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_schema_azure_sql_dw_and_pdw(this); + } +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_schema_azure_sql_dw_and_pdw(this); + } +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_schema_azure_sql_dw_and_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_schema_azure_sql_dw_and_pdwContext = Create_schema_azure_sql_dw_and_pdwContext; + +TSqlParser.prototype.create_schema_azure_sql_dw_and_pdw = function() { + + var localctx = new Create_schema_azure_sql_dw_and_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 358, TSqlParser.RULE_create_schema_azure_sql_dw_and_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4289; + this.match(TSqlParser.CREATE); + this.state = 4290; + this.match(TSqlParser.SCHEMA); + this.state = 4291; + localctx.schema_name = this.id(); + this.state = 4294; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4292; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4293; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_schema_azure_sql_dw_and_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_schema_azure_sql_dw_and_pdw; + this.schema_name = null; // IdContext + return this; +} + +Alter_schema_azure_sql_dw_and_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_schema_azure_sql_dw_and_pdwContext.prototype.constructor = Alter_schema_azure_sql_dw_and_pdwContext; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.TRANSFER = function() { + return this.getToken(TSqlParser.TRANSFER, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_schema_azure_sql_dw_and_pdw(this); + } +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_schema_azure_sql_dw_and_pdw(this); + } +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_schema_azure_sql_dw_and_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_schema_azure_sql_dw_and_pdwContext = Alter_schema_azure_sql_dw_and_pdwContext; + +TSqlParser.prototype.alter_schema_azure_sql_dw_and_pdw = function() { + + var localctx = new Alter_schema_azure_sql_dw_and_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 360, TSqlParser.RULE_alter_schema_azure_sql_dw_and_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4296; + this.match(TSqlParser.ALTER); + this.state = 4297; + this.match(TSqlParser.SCHEMA); + this.state = 4298; + localctx.schema_name = this.id(); + this.state = 4299; + this.match(TSqlParser.TRANSFER); + this.state = 4303; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,462,this._ctx); + if(la_===1) { + this.state = 4300; + this.match(TSqlParser.OBJECT); + this.state = 4301; + this.match(TSqlParser.COLON); + this.state = 4302; + this.match(TSqlParser.COLON); + + } + this.state = 4305; + this.id(); + this.state = 4308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DOT) { + this.state = 4306; + this.match(TSqlParser.DOT); + this.state = 4307; + this.match(TSqlParser.ID); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_search_property_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_search_property_list; + this.new_list_name = null; // IdContext + this.database_name = null; // IdContext + this.source_list_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_search_property_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_search_property_listContext.prototype.constructor = Create_search_property_listContext; + +Create_search_property_listContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_search_property_listContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Create_search_property_listContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Create_search_property_listContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Create_search_property_listContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_search_property_listContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_search_property_listContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_search_property_listContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_search_property_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_search_property_list(this); + } +}; + +Create_search_property_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_search_property_list(this); + } +}; + +Create_search_property_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_search_property_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_search_property_listContext = Create_search_property_listContext; + +TSqlParser.prototype.create_search_property_list = function() { + + var localctx = new Create_search_property_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 362, TSqlParser.RULE_create_search_property_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4310; + this.match(TSqlParser.CREATE); + this.state = 4311; + this.match(TSqlParser.SEARCH); + this.state = 4312; + this.match(TSqlParser.PROPERTY); + this.state = 4313; + this.match(TSqlParser.LIST); + this.state = 4314; + localctx.new_list_name = this.id(); + this.state = 4322; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 4315; + this.match(TSqlParser.FROM); + this.state = 4319; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,464,this._ctx); + if(la_===1) { + this.state = 4316; + localctx.database_name = this.id(); + this.state = 4317; + this.match(TSqlParser.DOT); + + } + this.state = 4321; + localctx.source_list_name = this.id(); + } + + this.state = 4326; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4324; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4325; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_security_policyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_security_policy; + this.schema_name = null; // IdContext + this.security_policy_name = null; // IdContext + this.tvf_schema_name = null; // IdContext + this.security_predicate_function_name = null; // IdContext + this.column_name_or_arguments = null; // IdContext + this.table_schema_name = null; // IdContext + this.name = null; // IdContext + return this; +} + +Create_security_policyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_security_policyContext.prototype.constructor = Create_security_policyContext; + +Create_security_policyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_security_policyContext.prototype.SECURITY = function() { + return this.getToken(TSqlParser.SECURITY, 0); +}; + +Create_security_policyContext.prototype.POLICY = function() { + return this.getToken(TSqlParser.POLICY, 0); +}; + +Create_security_policyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_security_policyContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Create_security_policyContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Create_security_policyContext.prototype.PREDICATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PREDICATE); + } else { + return this.getToken(TSqlParser.PREDICATE, i); + } +}; + + +Create_security_policyContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_security_policyContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_security_policyContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_security_policyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_security_policyContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Create_security_policyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_security_policyContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Create_security_policyContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_security_policyContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Create_security_policyContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_security_policyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_security_policyContext.prototype.AFTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AFTER); + } else { + return this.getToken(TSqlParser.AFTER, i); + } +}; + + +Create_security_policyContext.prototype.BEFORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BEFORE); + } else { + return this.getToken(TSqlParser.BEFORE, i); + } +}; + + +Create_security_policyContext.prototype.SCHEMABINDING = function() { + return this.getToken(TSqlParser.SCHEMABINDING, 0); +}; + +Create_security_policyContext.prototype.FILTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILTER); + } else { + return this.getToken(TSqlParser.FILTER, i); + } +}; + + +Create_security_policyContext.prototype.BLOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BLOCK); + } else { + return this.getToken(TSqlParser.BLOCK, i); + } +}; + + +Create_security_policyContext.prototype.INSERT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INSERT); + } else { + return this.getToken(TSqlParser.INSERT, i); + } +}; + + +Create_security_policyContext.prototype.UPDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UPDATE); + } else { + return this.getToken(TSqlParser.UPDATE, i); + } +}; + + +Create_security_policyContext.prototype.DELETE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DELETE); + } else { + return this.getToken(TSqlParser.DELETE, i); + } +}; + + +Create_security_policyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_security_policy(this); + } +}; + +Create_security_policyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_security_policy(this); + } +}; + +Create_security_policyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_security_policy(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_security_policyContext = Create_security_policyContext; + +TSqlParser.prototype.create_security_policy = function() { + + var localctx = new Create_security_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 364, TSqlParser.RULE_create_security_policy); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4328; + this.match(TSqlParser.CREATE); + this.state = 4329; + this.match(TSqlParser.SECURITY); + this.state = 4330; + this.match(TSqlParser.POLICY); + this.state = 4334; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,467,this._ctx); + if(la_===1) { + this.state = 4331; + localctx.schema_name = this.id(); + this.state = 4332; + this.match(TSqlParser.DOT); + + } + this.state = 4336; + localctx.security_policy_name = this.id(); + this.state = 4377; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4338; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4337; + this.match(TSqlParser.COMMA); + } + + this.state = 4340; + this.match(TSqlParser.ADD); + this.state = 4342; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.BLOCK || _la===TSqlParser.FILTER) { + this.state = 4341; + _la = this._input.LA(1); + if(!(_la===TSqlParser.BLOCK || _la===TSqlParser.FILTER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4344; + this.match(TSqlParser.PREDICATE); + this.state = 4345; + localctx.tvf_schema_name = this.id(); + this.state = 4346; + this.match(TSqlParser.DOT); + this.state = 4347; + localctx.security_predicate_function_name = this.id(); + this.state = 4348; + this.match(TSqlParser.LR_BRACKET); + this.state = 4353; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4350; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4349; + this.match(TSqlParser.COMMA); + } + + this.state = 4352; + localctx.column_name_or_arguments = this.id(); + this.state = 4355; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 4357; + this.match(TSqlParser.RR_BRACKET); + this.state = 4358; + this.match(TSqlParser.ON); + this.state = 4359; + localctx.table_schema_name = this.id(); + this.state = 4360; + this.match(TSqlParser.DOT); + this.state = 4361; + localctx.name = this.id(); + this.state = 4374; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,475,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4372; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,474,this._ctx); + switch(la_) { + case 1: + this.state = 4363; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4362; + this.match(TSqlParser.COMMA); + } + + this.state = 4365; + this.match(TSqlParser.AFTER); + this.state = 4366; + _la = this._input.LA(1); + if(!(_la===TSqlParser.INSERT || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4368; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4367; + this.match(TSqlParser.COMMA); + } + + this.state = 4370; + this.match(TSqlParser.BEFORE); + this.state = 4371; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELETE || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 4376; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,475,this._ctx); + } + + this.state = 4379; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.ADD || _la===TSqlParser.COMMA); + this.state = 4391; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,478,this._ctx); + if(la_===1) { + this.state = 4381; + this.match(TSqlParser.WITH); + this.state = 4382; + this.match(TSqlParser.LR_BRACKET); + this.state = 4383; + this.match(TSqlParser.STATE); + this.state = 4384; + this.match(TSqlParser.EQUAL); + this.state = 4385; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4388; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SCHEMABINDING) { + this.state = 4386; + this.match(TSqlParser.SCHEMABINDING); + this.state = 4387; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4390; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 4396; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4393; + this.match(TSqlParser.NOT); + this.state = 4394; + this.match(TSqlParser.FOR); + this.state = 4395; + this.match(TSqlParser.REPLICATION); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_sequenceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_sequence; + this.schema_name = null; // IdContext + this.sequence_name = null; // IdContext + this.sequnce_increment = null; // Token + return this; +} + +Alter_sequenceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_sequenceContext.prototype.constructor = Alter_sequenceContext; + +Alter_sequenceContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_sequenceContext.prototype.SEQUENCE = function() { + return this.getToken(TSqlParser.SEQUENCE, 0); +}; + +Alter_sequenceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_sequenceContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_sequenceContext.prototype.RESTART = function() { + return this.getToken(TSqlParser.RESTART, 0); +}; + +Alter_sequenceContext.prototype.INCREMENT = function() { + return this.getToken(TSqlParser.INCREMENT, 0); +}; + +Alter_sequenceContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Alter_sequenceContext.prototype.MINVALUE = function() { + return this.getToken(TSqlParser.MINVALUE, 0); +}; + +Alter_sequenceContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_sequenceContext.prototype.NO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO); + } else { + return this.getToken(TSqlParser.NO, i); + } +}; + + +Alter_sequenceContext.prototype.MAXVALUE = function() { + return this.getToken(TSqlParser.MAXVALUE, 0); +}; + +Alter_sequenceContext.prototype.CYCLE = function() { + return this.getToken(TSqlParser.CYCLE, 0); +}; + +Alter_sequenceContext.prototype.CACHE = function() { + return this.getToken(TSqlParser.CACHE, 0); +}; + +Alter_sequenceContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_sequenceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_sequence(this); + } +}; + +Alter_sequenceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_sequence(this); + } +}; + +Alter_sequenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_sequence(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_sequenceContext = Alter_sequenceContext; + +TSqlParser.prototype.alter_sequence = function() { + + var localctx = new Alter_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 366, TSqlParser.RULE_alter_sequence); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4398; + this.match(TSqlParser.ALTER); + this.state = 4399; + this.match(TSqlParser.SEQUENCE); + this.state = 4403; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,480,this._ctx); + if(la_===1) { + this.state = 4400; + localctx.schema_name = this.id(); + this.state = 4401; + this.match(TSqlParser.DOT); + + } + this.state = 4405; + localctx.sequence_name = this.id(); + this.state = 4411; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RESTART) { + this.state = 4406; + this.match(TSqlParser.RESTART); + this.state = 4409; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,481,this._ctx); + if(la_===1) { + this.state = 4407; + this.match(TSqlParser.WITH); + this.state = 4408; + this.match(TSqlParser.DECIMAL); + + } + } + + this.state = 4416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INCREMENT) { + this.state = 4413; + this.match(TSqlParser.INCREMENT); + this.state = 4414; + this.match(TSqlParser.BY); + this.state = 4415; + localctx.sequnce_increment = this.match(TSqlParser.DECIMAL); + } + + this.state = 4422; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,484,this._ctx); + if(la_===1) { + this.state = 4418; + this.match(TSqlParser.MINVALUE); + this.state = 4419; + this.match(TSqlParser.DECIMAL); + + } else if(la_===2) { + this.state = 4420; + this.match(TSqlParser.NO); + this.state = 4421; + this.match(TSqlParser.MINVALUE); + + } + this.state = 4428; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,485,this._ctx); + if(la_===1) { + this.state = 4424; + this.match(TSqlParser.MAXVALUE); + this.state = 4425; + this.match(TSqlParser.DECIMAL); + + } else if(la_===2) { + this.state = 4426; + this.match(TSqlParser.NO); + this.state = 4427; + this.match(TSqlParser.MAXVALUE); + + } + this.state = 4433; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,486,this._ctx); + if(la_===1) { + this.state = 4430; + this.match(TSqlParser.CYCLE); + + } else if(la_===2) { + this.state = 4431; + this.match(TSqlParser.NO); + this.state = 4432; + this.match(TSqlParser.CYCLE); + + } + this.state = 4439; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,487,this._ctx); + if(la_===1) { + this.state = 4435; + this.match(TSqlParser.CACHE); + this.state = 4436; + this.match(TSqlParser.DECIMAL); + + } else if(la_===2) { + this.state = 4437; + this.match(TSqlParser.NO); + this.state = 4438; + this.match(TSqlParser.CACHE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_sequenceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_sequence; + this.schema_name = null; // IdContext + this.sequence_name = null; // IdContext + return this; +} + +Create_sequenceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_sequenceContext.prototype.constructor = Create_sequenceContext; + +Create_sequenceContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_sequenceContext.prototype.SEQUENCE = function() { + return this.getToken(TSqlParser.SEQUENCE, 0); +}; + +Create_sequenceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_sequenceContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_sequenceContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_sequenceContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Create_sequenceContext.prototype.START = function() { + return this.getToken(TSqlParser.START, 0); +}; + +Create_sequenceContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_sequenceContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_sequenceContext.prototype.INCREMENT = function() { + return this.getToken(TSqlParser.INCREMENT, 0); +}; + +Create_sequenceContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_sequenceContext.prototype.MINVALUE = function() { + return this.getToken(TSqlParser.MINVALUE, 0); +}; + +Create_sequenceContext.prototype.NO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO); + } else { + return this.getToken(TSqlParser.NO, i); + } +}; + + +Create_sequenceContext.prototype.MAXVALUE = function() { + return this.getToken(TSqlParser.MAXVALUE, 0); +}; + +Create_sequenceContext.prototype.CYCLE = function() { + return this.getToken(TSqlParser.CYCLE, 0); +}; + +Create_sequenceContext.prototype.CACHE = function() { + return this.getToken(TSqlParser.CACHE, 0); +}; + +Create_sequenceContext.prototype.MINUS = function() { + return this.getToken(TSqlParser.MINUS, 0); +}; + +Create_sequenceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_sequence(this); + } +}; + +Create_sequenceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_sequence(this); + } +}; + +Create_sequenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_sequence(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_sequenceContext = Create_sequenceContext; + +TSqlParser.prototype.create_sequence = function() { + + var localctx = new Create_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 368, TSqlParser.RULE_create_sequence); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4441; + this.match(TSqlParser.CREATE); + this.state = 4442; + this.match(TSqlParser.SEQUENCE); + this.state = 4446; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,488,this._ctx); + if(la_===1) { + this.state = 4443; + localctx.schema_name = this.id(); + this.state = 4444; + this.match(TSqlParser.DOT); + + } + this.state = 4448; + localctx.sequence_name = this.id(); + this.state = 4451; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 4449; + this.match(TSqlParser.AS); + this.state = 4450; + this.data_type(); + } + + this.state = 4456; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,490,this._ctx); + if(la_===1) { + this.state = 4453; + this.match(TSqlParser.START); + this.state = 4454; + this.match(TSqlParser.WITH); + this.state = 4455; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4464; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INCREMENT) { + this.state = 4458; + this.match(TSqlParser.INCREMENT); + this.state = 4459; + this.match(TSqlParser.BY); + this.state = 4461; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MINUS) { + this.state = 4460; + this.match(TSqlParser.MINUS); + } + + this.state = 4463; + this.match(TSqlParser.DECIMAL); + } + + this.state = 4472; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,494,this._ctx); + if(la_===1) { + this.state = 4466; + this.match(TSqlParser.MINVALUE); + this.state = 4468; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,493,this._ctx); + if(la_===1) { + this.state = 4467; + this.match(TSqlParser.DECIMAL); + + } + + } else if(la_===2) { + this.state = 4470; + this.match(TSqlParser.NO); + this.state = 4471; + this.match(TSqlParser.MINVALUE); + + } + this.state = 4480; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,496,this._ctx); + if(la_===1) { + this.state = 4474; + this.match(TSqlParser.MAXVALUE); + this.state = 4476; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,495,this._ctx); + if(la_===1) { + this.state = 4475; + this.match(TSqlParser.DECIMAL); + + } + + } else if(la_===2) { + this.state = 4478; + this.match(TSqlParser.NO); + this.state = 4479; + this.match(TSqlParser.MAXVALUE); + + } + this.state = 4485; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,497,this._ctx); + if(la_===1) { + this.state = 4482; + this.match(TSqlParser.CYCLE); + + } else if(la_===2) { + this.state = 4483; + this.match(TSqlParser.NO); + this.state = 4484; + this.match(TSqlParser.CYCLE); + + } + this.state = 4493; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,499,this._ctx); + if(la_===1) { + this.state = 4487; + this.match(TSqlParser.CACHE); + this.state = 4489; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,498,this._ctx); + if(la_===1) { + this.state = 4488; + this.match(TSqlParser.DECIMAL); + + } + + } else if(la_===2) { + this.state = 4491; + this.match(TSqlParser.NO); + this.state = 4492; + this.match(TSqlParser.CACHE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_auditContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_audit; + this.audit_name = null; // IdContext + this.filepath = null; // Token + this.max_rollover_files = null; // Token + this.max_files = null; // Token + this.queue_delay = null; // Token + this.event_field_name = null; // IdContext + this.new_audit_name = null; // IdContext + return this; +} + +Alter_server_auditContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_auditContext.prototype.constructor = Alter_server_auditContext; + +Alter_server_auditContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_auditContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Alter_server_auditContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Alter_server_auditContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_server_auditContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Alter_server_auditContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Alter_server_auditContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Alter_server_auditContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_server_auditContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_server_auditContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Alter_server_auditContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_server_auditContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_server_auditContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_server_auditContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Alter_server_auditContext.prototype.APPLICATION_LOG = function() { + return this.getToken(TSqlParser.APPLICATION_LOG, 0); +}; + +Alter_server_auditContext.prototype.SECURITY_LOG = function() { + return this.getToken(TSqlParser.SECURITY_LOG, 0); +}; + +Alter_server_auditContext.prototype.QUEUE_DELAY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUEUE_DELAY); + } else { + return this.getToken(TSqlParser.QUEUE_DELAY, i); + } +}; + + +Alter_server_auditContext.prototype.ON_FAILURE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON_FAILURE); + } else { + return this.getToken(TSqlParser.ON_FAILURE, i); + } +}; + + +Alter_server_auditContext.prototype.STATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATE); + } else { + return this.getToken(TSqlParser.STATE, i); + } +}; + + +Alter_server_auditContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_server_auditContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_server_auditContext.prototype.AND = function() { + return this.getToken(TSqlParser.AND, 0); +}; + +Alter_server_auditContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Alter_server_auditContext.prototype.CONTINUE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTINUE); + } else { + return this.getToken(TSqlParser.CONTINUE, i); + } +}; + + +Alter_server_auditContext.prototype.SHUTDOWN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SHUTDOWN); + } else { + return this.getToken(TSqlParser.SHUTDOWN, i); + } +}; + + +Alter_server_auditContext.prototype.FAIL_OPERATION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FAIL_OPERATION); + } else { + return this.getToken(TSqlParser.FAIL_OPERATION, i); + } +}; + + +Alter_server_auditContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Alter_server_auditContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Alter_server_auditContext.prototype.GREATER = function() { + return this.getToken(TSqlParser.GREATER, 0); +}; + +Alter_server_auditContext.prototype.LESS = function() { + return this.getToken(TSqlParser.LESS, 0); +}; + +Alter_server_auditContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_server_auditContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Alter_server_auditContext.prototype.EXCLAMATION = function() { + return this.getToken(TSqlParser.EXCLAMATION, 0); +}; + +Alter_server_auditContext.prototype.FILEPATH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILEPATH); + } else { + return this.getToken(TSqlParser.FILEPATH, i); + } +}; + + +Alter_server_auditContext.prototype.MAXSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAXSIZE); + } else { + return this.getToken(TSqlParser.MAXSIZE, i); + } +}; + + +Alter_server_auditContext.prototype.MAX_ROLLOVER_FILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_ROLLOVER_FILES); + } else { + return this.getToken(TSqlParser.MAX_ROLLOVER_FILES, i); + } +}; + + +Alter_server_auditContext.prototype.MAX_FILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_FILES); + } else { + return this.getToken(TSqlParser.MAX_FILES, i); + } +}; + + +Alter_server_auditContext.prototype.RESERVE_DISK_SPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESERVE_DISK_SPACE); + } else { + return this.getToken(TSqlParser.RESERVE_DISK_SPACE, i); + } +}; + + +Alter_server_auditContext.prototype.UNLIMITED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLIMITED); + } else { + return this.getToken(TSqlParser.UNLIMITED, i); + } +}; + + +Alter_server_auditContext.prototype.MB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MB); + } else { + return this.getToken(TSqlParser.MB, i); + } +}; + + +Alter_server_auditContext.prototype.GB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GB); + } else { + return this.getToken(TSqlParser.GB, i); + } +}; + + +Alter_server_auditContext.prototype.TB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TB); + } else { + return this.getToken(TSqlParser.TB, i); + } +}; + + +Alter_server_auditContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_audit(this); + } +}; + +Alter_server_auditContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_audit(this); + } +}; + +Alter_server_auditContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_audit(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_auditContext = Alter_server_auditContext; + +TSqlParser.prototype.alter_server_audit = function() { + + var localctx = new Alter_server_auditContext(this, this._ctx, this.state); + this.enterRule(localctx, 370, TSqlParser.RULE_alter_server_audit); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4495; + this.match(TSqlParser.ALTER); + this.state = 4496; + this.match(TSqlParser.SERVER); + this.state = 4497; + this.match(TSqlParser.AUDIT); + this.state = 4498; + localctx.audit_name = this.id(); + this.state = 4630; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,524,this._ctx); + switch(la_) { + case 1: + this.state = 4546; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TO) { + this.state = 4499; + this.match(TSqlParser.TO); + this.state = 4544; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILE: + this.state = 4500; + this.match(TSqlParser.FILE); + + this.state = 4501; + this.match(TSqlParser.LR_BRACKET); + this.state = 4538; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FILEPATH || ((((_la - 578)) & ~0x1f) == 0 && ((1 << (_la - 578)) & ((1 << (TSqlParser.MAX_FILES - 578)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 578)) | (1 << (TSqlParser.MAXSIZE - 578)))) !== 0) || _la===TSqlParser.RESERVE_DISK_SPACE || _la===TSqlParser.COMMA) { + this.state = 4536; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,506,this._ctx); + switch(la_) { + case 1: + this.state = 4503; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4502; + this.match(TSqlParser.COMMA); + } + + this.state = 4505; + this.match(TSqlParser.FILEPATH); + this.state = 4506; + this.match(TSqlParser.EQUAL); + this.state = 4507; + localctx.filepath = this.match(TSqlParser.STRING); + break; + + case 2: + this.state = 4509; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4508; + this.match(TSqlParser.COMMA); + } + + this.state = 4511; + this.match(TSqlParser.MAXSIZE); + this.state = 4512; + this.match(TSqlParser.EQUAL); + this.state = 4516; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 4513; + this.match(TSqlParser.DECIMAL); + this.state = 4514; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GB || _la===TSqlParser.MB || _la===TSqlParser.TB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.UNLIMITED: + this.state = 4515; + this.match(TSqlParser.UNLIMITED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 4519; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4518; + this.match(TSqlParser.COMMA); + } + + this.state = 4521; + this.match(TSqlParser.MAX_ROLLOVER_FILES); + this.state = 4522; + this.match(TSqlParser.EQUAL); + this.state = 4523; + localctx.max_rollover_files = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.UNLIMITED || _la===TSqlParser.DECIMAL)) { + localctx.max_rollover_files = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 4525; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4524; + this.match(TSqlParser.COMMA); + } + + this.state = 4527; + this.match(TSqlParser.MAX_FILES); + this.state = 4528; + this.match(TSqlParser.EQUAL); + this.state = 4529; + localctx.max_files = this.match(TSqlParser.DECIMAL); + break; + + case 5: + this.state = 4531; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4530; + this.match(TSqlParser.COMMA); + } + + this.state = 4533; + this.match(TSqlParser.RESERVE_DISK_SPACE); + this.state = 4534; + this.match(TSqlParser.EQUAL); + this.state = 4535; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + this.state = 4540; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4541; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.APPLICATION_LOG: + this.state = 4542; + this.match(TSqlParser.APPLICATION_LOG); + break; + case TSqlParser.SECURITY_LOG: + this.state = 4543; + this.match(TSqlParser.SECURITY_LOG); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 4574; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,515,this._ctx); + if(la_===1) { + this.state = 4548; + this.match(TSqlParser.WITH); + this.state = 4549; + this.match(TSqlParser.LR_BRACKET); + this.state = 4570; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.ON_FAILURE || _la===TSqlParser.STATE || _la===TSqlParser.QUEUE_DELAY || _la===TSqlParser.COMMA) { + this.state = 4568; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,513,this._ctx); + switch(la_) { + case 1: + this.state = 4551; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4550; + this.match(TSqlParser.COMMA); + } + + this.state = 4553; + this.match(TSqlParser.QUEUE_DELAY); + this.state = 4554; + this.match(TSqlParser.EQUAL); + this.state = 4555; + localctx.queue_delay = this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4557; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4556; + this.match(TSqlParser.COMMA); + } + + this.state = 4559; + this.match(TSqlParser.ON_FAILURE); + this.state = 4560; + this.match(TSqlParser.EQUAL); + this.state = 4561; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTINUE || _la===TSqlParser.SHUTDOWN || _la===TSqlParser.FAIL_OPERATION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + this.state = 4563; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4562; + this.match(TSqlParser.COMMA); + } + + this.state = 4565; + this.match(TSqlParser.STATE); + this.state = 4566; + this.match(TSqlParser.EQUAL); + this.state = 4567; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + this.state = 4572; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4573; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 4622; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 4576; + this.match(TSqlParser.WHERE); + this.state = 4620; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,522,this._ctx); + switch(la_) { + case 1: + this.state = 4578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4577; + this.match(TSqlParser.COMMA); + } + + this.state = 4581; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4580; + this.match(TSqlParser.NOT); + } + + this.state = 4583; + localctx.event_field_name = this.id(); + this.state = 4595; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,518,this._ctx); + switch(la_) { + case 1: + this.state = 4584; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 4585; + this.match(TSqlParser.LESS); + this.state = 4586; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 4587; + this.match(TSqlParser.EXCLAMATION); + this.state = 4588; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 4589; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 4590; + this.match(TSqlParser.GREATER); + this.state = 4591; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 4592; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 4593; + this.match(TSqlParser.LESS); + this.state = 4594; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 4597; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4600; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4599; + this.match(TSqlParser.COMMA); + } + + this.state = 4602; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AND || _la===TSqlParser.OR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4604; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4603; + this.match(TSqlParser.NOT); + } + + this.state = 4617; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,521,this._ctx); + switch(la_) { + case 1: + this.state = 4606; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 4607; + this.match(TSqlParser.LESS); + this.state = 4608; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 4609; + this.match(TSqlParser.EXCLAMATION); + this.state = 4610; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 4611; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 4612; + this.match(TSqlParser.GREATER); + this.state = 4613; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 4614; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 4615; + this.match(TSqlParser.LESS); + this.state = 4616; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 4619; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + + break; + + case 2: + this.state = 4624; + this.match(TSqlParser.REMOVE); + this.state = 4625; + this.match(TSqlParser.WHERE); + break; + + case 3: + this.state = 4626; + this.match(TSqlParser.MODIFY); + this.state = 4627; + this.match(TSqlParser.NAME); + this.state = 4628; + this.match(TSqlParser.EQUAL); + this.state = 4629; + localctx.new_audit_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_server_auditContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_server_audit; + this.audit_name = null; // IdContext + this.filepath = null; // Token + this.max_rollover_files = null; // Token + this.max_files = null; // Token + this.queue_delay = null; // Token + this.audit_guid = null; // IdContext + this.event_field_name = null; // IdContext + this.new_audit_name = null; // IdContext + return this; +} + +Create_server_auditContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_server_auditContext.prototype.constructor = Create_server_auditContext; + +Create_server_auditContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_server_auditContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_server_auditContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Create_server_auditContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_server_auditContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Create_server_auditContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Create_server_auditContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Create_server_auditContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Create_server_auditContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_server_auditContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Create_server_auditContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_server_auditContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_server_auditContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_server_auditContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Create_server_auditContext.prototype.APPLICATION_LOG = function() { + return this.getToken(TSqlParser.APPLICATION_LOG, 0); +}; + +Create_server_auditContext.prototype.SECURITY_LOG = function() { + return this.getToken(TSqlParser.SECURITY_LOG, 0); +}; + +Create_server_auditContext.prototype.QUEUE_DELAY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUEUE_DELAY); + } else { + return this.getToken(TSqlParser.QUEUE_DELAY, i); + } +}; + + +Create_server_auditContext.prototype.ON_FAILURE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON_FAILURE); + } else { + return this.getToken(TSqlParser.ON_FAILURE, i); + } +}; + + +Create_server_auditContext.prototype.STATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATE); + } else { + return this.getToken(TSqlParser.STATE, i); + } +}; + + +Create_server_auditContext.prototype.AUDIT_GUID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AUDIT_GUID); + } else { + return this.getToken(TSqlParser.AUDIT_GUID, i); + } +}; + + +Create_server_auditContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_server_auditContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_server_auditContext.prototype.AND = function() { + return this.getToken(TSqlParser.AND, 0); +}; + +Create_server_auditContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_server_auditContext.prototype.CONTINUE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTINUE); + } else { + return this.getToken(TSqlParser.CONTINUE, i); + } +}; + + +Create_server_auditContext.prototype.SHUTDOWN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SHUTDOWN); + } else { + return this.getToken(TSqlParser.SHUTDOWN, i); + } +}; + + +Create_server_auditContext.prototype.FAIL_OPERATION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FAIL_OPERATION); + } else { + return this.getToken(TSqlParser.FAIL_OPERATION, i); + } +}; + + +Create_server_auditContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_server_auditContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_server_auditContext.prototype.GREATER = function() { + return this.getToken(TSqlParser.GREATER, 0); +}; + +Create_server_auditContext.prototype.LESS = function() { + return this.getToken(TSqlParser.LESS, 0); +}; + +Create_server_auditContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_server_auditContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Create_server_auditContext.prototype.EXCLAMATION = function() { + return this.getToken(TSqlParser.EXCLAMATION, 0); +}; + +Create_server_auditContext.prototype.FILEPATH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILEPATH); + } else { + return this.getToken(TSqlParser.FILEPATH, i); + } +}; + + +Create_server_auditContext.prototype.MAXSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAXSIZE); + } else { + return this.getToken(TSqlParser.MAXSIZE, i); + } +}; + + +Create_server_auditContext.prototype.MAX_ROLLOVER_FILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_ROLLOVER_FILES); + } else { + return this.getToken(TSqlParser.MAX_ROLLOVER_FILES, i); + } +}; + + +Create_server_auditContext.prototype.MAX_FILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_FILES); + } else { + return this.getToken(TSqlParser.MAX_FILES, i); + } +}; + + +Create_server_auditContext.prototype.RESERVE_DISK_SPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESERVE_DISK_SPACE); + } else { + return this.getToken(TSqlParser.RESERVE_DISK_SPACE, i); + } +}; + + +Create_server_auditContext.prototype.UNLIMITED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLIMITED); + } else { + return this.getToken(TSqlParser.UNLIMITED, i); + } +}; + + +Create_server_auditContext.prototype.MB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MB); + } else { + return this.getToken(TSqlParser.MB, i); + } +}; + + +Create_server_auditContext.prototype.GB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GB); + } else { + return this.getToken(TSqlParser.GB, i); + } +}; + + +Create_server_auditContext.prototype.TB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TB); + } else { + return this.getToken(TSqlParser.TB, i); + } +}; + + +Create_server_auditContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_server_audit(this); + } +}; + +Create_server_auditContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_server_audit(this); + } +}; + +Create_server_auditContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_server_audit(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_server_auditContext = Create_server_auditContext; + +TSqlParser.prototype.create_server_audit = function() { + + var localctx = new Create_server_auditContext(this, this._ctx, this.state); + this.enterRule(localctx, 372, TSqlParser.RULE_create_server_audit); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4632; + this.match(TSqlParser.CREATE); + this.state = 4633; + this.match(TSqlParser.SERVER); + this.state = 4634; + this.match(TSqlParser.AUDIT); + this.state = 4635; + localctx.audit_name = this.id(); + this.state = 4773; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,550,this._ctx); + switch(la_) { + case 1: + this.state = 4683; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TO) { + this.state = 4636; + this.match(TSqlParser.TO); + this.state = 4681; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILE: + this.state = 4637; + this.match(TSqlParser.FILE); + + this.state = 4638; + this.match(TSqlParser.LR_BRACKET); + this.state = 4675; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FILEPATH || ((((_la - 578)) & ~0x1f) == 0 && ((1 << (_la - 578)) & ((1 << (TSqlParser.MAX_FILES - 578)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 578)) | (1 << (TSqlParser.MAXSIZE - 578)))) !== 0) || _la===TSqlParser.RESERVE_DISK_SPACE || _la===TSqlParser.COMMA) { + this.state = 4673; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,531,this._ctx); + switch(la_) { + case 1: + this.state = 4640; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4639; + this.match(TSqlParser.COMMA); + } + + this.state = 4642; + this.match(TSqlParser.FILEPATH); + this.state = 4643; + this.match(TSqlParser.EQUAL); + this.state = 4644; + localctx.filepath = this.match(TSqlParser.STRING); + break; + + case 2: + this.state = 4646; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4645; + this.match(TSqlParser.COMMA); + } + + this.state = 4648; + this.match(TSqlParser.MAXSIZE); + this.state = 4649; + this.match(TSqlParser.EQUAL); + this.state = 4653; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 4650; + this.match(TSqlParser.DECIMAL); + this.state = 4651; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GB || _la===TSqlParser.MB || _la===TSqlParser.TB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.UNLIMITED: + this.state = 4652; + this.match(TSqlParser.UNLIMITED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 4656; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4655; + this.match(TSqlParser.COMMA); + } + + this.state = 4658; + this.match(TSqlParser.MAX_ROLLOVER_FILES); + this.state = 4659; + this.match(TSqlParser.EQUAL); + this.state = 4660; + localctx.max_rollover_files = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.UNLIMITED || _la===TSqlParser.DECIMAL)) { + localctx.max_rollover_files = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 4662; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4661; + this.match(TSqlParser.COMMA); + } + + this.state = 4664; + this.match(TSqlParser.MAX_FILES); + this.state = 4665; + this.match(TSqlParser.EQUAL); + this.state = 4666; + localctx.max_files = this.match(TSqlParser.DECIMAL); + break; + + case 5: + this.state = 4668; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4667; + this.match(TSqlParser.COMMA); + } + + this.state = 4670; + this.match(TSqlParser.RESERVE_DISK_SPACE); + this.state = 4671; + this.match(TSqlParser.EQUAL); + this.state = 4672; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + this.state = 4677; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4678; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.APPLICATION_LOG: + this.state = 4679; + this.match(TSqlParser.APPLICATION_LOG); + break; + case TSqlParser.SECURITY_LOG: + this.state = 4680; + this.match(TSqlParser.SECURITY_LOG); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 4717; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,541,this._ctx); + if(la_===1) { + this.state = 4685; + this.match(TSqlParser.WITH); + this.state = 4686; + this.match(TSqlParser.LR_BRACKET); + this.state = 4713; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.ON_FAILURE || _la===TSqlParser.STATE || _la===TSqlParser.AUDIT_GUID || _la===TSqlParser.QUEUE_DELAY || _la===TSqlParser.COMMA) { + this.state = 4711; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,539,this._ctx); + switch(la_) { + case 1: + this.state = 4688; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4687; + this.match(TSqlParser.COMMA); + } + + this.state = 4690; + this.match(TSqlParser.QUEUE_DELAY); + this.state = 4691; + this.match(TSqlParser.EQUAL); + this.state = 4692; + localctx.queue_delay = this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4694; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4693; + this.match(TSqlParser.COMMA); + } + + this.state = 4696; + this.match(TSqlParser.ON_FAILURE); + this.state = 4697; + this.match(TSqlParser.EQUAL); + this.state = 4698; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTINUE || _la===TSqlParser.SHUTDOWN || _la===TSqlParser.FAIL_OPERATION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + this.state = 4700; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4699; + this.match(TSqlParser.COMMA); + } + + this.state = 4702; + this.match(TSqlParser.STATE); + this.state = 4703; + this.match(TSqlParser.EQUAL); + this.state = 4704; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 4706; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4705; + this.match(TSqlParser.COMMA); + } + + this.state = 4708; + this.match(TSqlParser.AUDIT_GUID); + this.state = 4709; + this.match(TSqlParser.EQUAL); + this.state = 4710; + localctx.audit_guid = this.id(); + break; + + } + this.state = 4715; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4716; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 4765; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 4719; + this.match(TSqlParser.WHERE); + this.state = 4763; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,548,this._ctx); + switch(la_) { + case 1: + this.state = 4721; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4720; + this.match(TSqlParser.COMMA); + } + + this.state = 4724; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4723; + this.match(TSqlParser.NOT); + } + + this.state = 4726; + localctx.event_field_name = this.id(); + this.state = 4738; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,544,this._ctx); + switch(la_) { + case 1: + this.state = 4727; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 4728; + this.match(TSqlParser.LESS); + this.state = 4729; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 4730; + this.match(TSqlParser.EXCLAMATION); + this.state = 4731; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 4732; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 4733; + this.match(TSqlParser.GREATER); + this.state = 4734; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 4735; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 4736; + this.match(TSqlParser.LESS); + this.state = 4737; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 4740; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4743; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4742; + this.match(TSqlParser.COMMA); + } + + this.state = 4745; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AND || _la===TSqlParser.OR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4746; + this.match(TSqlParser.NOT); + } + + this.state = 4760; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,547,this._ctx); + switch(la_) { + case 1: + this.state = 4749; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 4750; + this.match(TSqlParser.LESS); + this.state = 4751; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 4752; + this.match(TSqlParser.EXCLAMATION); + this.state = 4753; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 4754; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 4755; + this.match(TSqlParser.GREATER); + this.state = 4756; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 4757; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 4758; + this.match(TSqlParser.LESS); + this.state = 4759; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 4762; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + + break; + + case 2: + this.state = 4767; + this.match(TSqlParser.REMOVE); + this.state = 4768; + this.match(TSqlParser.WHERE); + break; + + case 3: + this.state = 4769; + this.match(TSqlParser.MODIFY); + this.state = 4770; + this.match(TSqlParser.NAME); + this.state = 4771; + this.match(TSqlParser.EQUAL); + this.state = 4772; + localctx.new_audit_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_audit_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_audit_specification; + this.audit_specification_name = null; // IdContext + this.audit_name = null; // IdContext + this.audit_action_group_name = null; // IdContext + return this; +} + +Alter_server_audit_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_audit_specificationContext.prototype.constructor = Alter_server_audit_specificationContext; + +Alter_server_audit_specificationContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_audit_specificationContext.prototype.SERVER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVER); + } else { + return this.getToken(TSqlParser.SERVER, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.AUDIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AUDIT); + } else { + return this.getToken(TSqlParser.AUDIT, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.SPECIFICATION = function() { + return this.getToken(TSqlParser.SPECIFICATION, 0); +}; + +Alter_server_audit_specificationContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_server_audit_specificationContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Alter_server_audit_specificationContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_server_audit_specificationContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Alter_server_audit_specificationContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_server_audit_specificationContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DROP); + } else { + return this.getToken(TSqlParser.DROP, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_server_audit_specificationContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_server_audit_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_audit_specification(this); + } +}; + +Alter_server_audit_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_audit_specification(this); + } +}; + +Alter_server_audit_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_audit_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_audit_specificationContext = Alter_server_audit_specificationContext; + +TSqlParser.prototype.alter_server_audit_specification = function() { + + var localctx = new Alter_server_audit_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 374, TSqlParser.RULE_alter_server_audit_specification); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4775; + this.match(TSqlParser.ALTER); + this.state = 4776; + this.match(TSqlParser.SERVER); + this.state = 4777; + this.match(TSqlParser.AUDIT); + this.state = 4778; + this.match(TSqlParser.SPECIFICATION); + this.state = 4779; + localctx.audit_specification_name = this.id(); + this.state = 4784; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 4780; + this.match(TSqlParser.FOR); + this.state = 4781; + this.match(TSqlParser.SERVER); + this.state = 4782; + this.match(TSqlParser.AUDIT); + this.state = 4783; + localctx.audit_name = this.id(); + } + + this.state = 4793; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,552,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4786; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4787; + this.match(TSqlParser.LR_BRACKET); + this.state = 4788; + localctx.audit_action_group_name = this.id(); + this.state = 4789; + this.match(TSqlParser.RR_BRACKET); + } + this.state = 4795; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,552,this._ctx); + } + + this.state = 4802; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,553,this._ctx); + if(la_===1) { + this.state = 4796; + this.match(TSqlParser.WITH); + this.state = 4797; + this.match(TSqlParser.LR_BRACKET); + this.state = 4798; + this.match(TSqlParser.STATE); + this.state = 4799; + this.match(TSqlParser.EQUAL); + this.state = 4800; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4801; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_server_audit_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_server_audit_specification; + this.audit_specification_name = null; // IdContext + this.audit_name = null; // IdContext + this.audit_action_group_name = null; // IdContext + return this; +} + +Create_server_audit_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_server_audit_specificationContext.prototype.constructor = Create_server_audit_specificationContext; + +Create_server_audit_specificationContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_server_audit_specificationContext.prototype.SERVER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVER); + } else { + return this.getToken(TSqlParser.SERVER, i); + } +}; + + +Create_server_audit_specificationContext.prototype.AUDIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AUDIT); + } else { + return this.getToken(TSqlParser.AUDIT, i); + } +}; + + +Create_server_audit_specificationContext.prototype.SPECIFICATION = function() { + return this.getToken(TSqlParser.SPECIFICATION, 0); +}; + +Create_server_audit_specificationContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_server_audit_specificationContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_server_audit_specificationContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Create_server_audit_specificationContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_server_audit_specificationContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_server_audit_specificationContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_server_audit_specificationContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Create_server_audit_specificationContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_server_audit_specificationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_server_audit_specificationContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_server_audit_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_server_audit_specification(this); + } +}; + +Create_server_audit_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_server_audit_specification(this); + } +}; + +Create_server_audit_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_server_audit_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_server_audit_specificationContext = Create_server_audit_specificationContext; + +TSqlParser.prototype.create_server_audit_specification = function() { + + var localctx = new Create_server_audit_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 376, TSqlParser.RULE_create_server_audit_specification); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4804; + this.match(TSqlParser.CREATE); + this.state = 4805; + this.match(TSqlParser.SERVER); + this.state = 4806; + this.match(TSqlParser.AUDIT); + this.state = 4807; + this.match(TSqlParser.SPECIFICATION); + this.state = 4808; + localctx.audit_specification_name = this.id(); + this.state = 4813; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 4809; + this.match(TSqlParser.FOR); + this.state = 4810; + this.match(TSqlParser.SERVER); + this.state = 4811; + this.match(TSqlParser.AUDIT); + this.state = 4812; + localctx.audit_name = this.id(); + } + + this.state = 4822; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.ADD) { + this.state = 4815; + this.match(TSqlParser.ADD); + this.state = 4816; + this.match(TSqlParser.LR_BRACKET); + this.state = 4817; + localctx.audit_action_group_name = this.id(); + this.state = 4818; + this.match(TSqlParser.RR_BRACKET); + this.state = 4824; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4831; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,556,this._ctx); + if(la_===1) { + this.state = 4825; + this.match(TSqlParser.WITH); + this.state = 4826; + this.match(TSqlParser.LR_BRACKET); + this.state = 4827; + this.match(TSqlParser.STATE); + this.state = 4828; + this.match(TSqlParser.EQUAL); + this.state = 4829; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4830; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_configurationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_configuration; + return this; +} + +Alter_server_configurationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_configurationContext.prototype.constructor = Alter_server_configurationContext; + +Alter_server_configurationContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_configurationContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Alter_server_configurationContext.prototype.CONFIGURATION = function() { + return this.getToken(TSqlParser.CONFIGURATION, 0); +}; + +Alter_server_configurationContext.prototype.SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SET); + } else { + return this.getToken(TSqlParser.SET, i); + } +}; + + +Alter_server_configurationContext.prototype.PROCESS = function() { + return this.getToken(TSqlParser.PROCESS, 0); +}; + +Alter_server_configurationContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Alter_server_configurationContext.prototype.DIAGNOSTICS = function() { + return this.getToken(TSqlParser.DIAGNOSTICS, 0); +}; + +Alter_server_configurationContext.prototype.LOG = function() { + return this.getToken(TSqlParser.LOG, 0); +}; + +Alter_server_configurationContext.prototype.FAILOVER = function() { + return this.getToken(TSqlParser.FAILOVER, 0); +}; + +Alter_server_configurationContext.prototype.CLUSTER = function() { + return this.getToken(TSqlParser.CLUSTER, 0); +}; + +Alter_server_configurationContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Alter_server_configurationContext.prototype.HADR = function() { + return this.getToken(TSqlParser.HADR, 0); +}; + +Alter_server_configurationContext.prototype.CONTEXT = function() { + return this.getToken(TSqlParser.CONTEXT, 0); +}; + +Alter_server_configurationContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_server_configurationContext.prototype.BUFFER = function() { + return this.getToken(TSqlParser.BUFFER, 0); +}; + +Alter_server_configurationContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Alter_server_configurationContext.prototype.EXTENSION = function() { + return this.getToken(TSqlParser.EXTENSION, 0); +}; + +Alter_server_configurationContext.prototype.SOFTNUMA = function() { + return this.getToken(TSqlParser.SOFTNUMA, 0); +}; + +Alter_server_configurationContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_server_configurationContext.prototype.LOCAL = function() { + return this.getToken(TSqlParser.LOCAL, 0); +}; + +Alter_server_configurationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_server_configurationContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_server_configurationContext.prototype.CPU = function() { + return this.getToken(TSqlParser.CPU, 0); +}; + +Alter_server_configurationContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Alter_server_configurationContext.prototype.PATH = function() { + return this.getToken(TSqlParser.PATH, 0); +}; + +Alter_server_configurationContext.prototype.MAX_SIZE = function() { + return this.getToken(TSqlParser.MAX_SIZE, 0); +}; + +Alter_server_configurationContext.prototype.MAX_FILES = function() { + return this.getToken(TSqlParser.MAX_FILES, 0); +}; + +Alter_server_configurationContext.prototype.VERBOSELOGGING = function() { + return this.getToken(TSqlParser.VERBOSELOGGING, 0); +}; + +Alter_server_configurationContext.prototype.SQLDUMPERFLAGS = function() { + return this.getToken(TSqlParser.SQLDUMPERFLAGS, 0); +}; + +Alter_server_configurationContext.prototype.SQLDUMPERPATH = function() { + return this.getToken(TSqlParser.SQLDUMPERPATH, 0); +}; + +Alter_server_configurationContext.prototype.SQLDUMPERTIMEOUT = function() { + return this.getToken(TSqlParser.SQLDUMPERTIMEOUT, 0); +}; + +Alter_server_configurationContext.prototype.FAILURECONDITIONLEVEL = function() { + return this.getToken(TSqlParser.FAILURECONDITIONLEVEL, 0); +}; + +Alter_server_configurationContext.prototype.HEALTHCHECKTIMEOUT = function() { + return this.getToken(TSqlParser.HEALTHCHECKTIMEOUT, 0); +}; + +Alter_server_configurationContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_server_configurationContext.prototype.FILENAME = function() { + return this.getToken(TSqlParser.FILENAME, 0); +}; + +Alter_server_configurationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_server_configurationContext.prototype.SIZE = function() { + return this.getToken(TSqlParser.SIZE, 0); +}; + +Alter_server_configurationContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_server_configurationContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_server_configurationContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Alter_server_configurationContext.prototype.KB = function() { + return this.getToken(TSqlParser.KB, 0); +}; + +Alter_server_configurationContext.prototype.MB = function() { + return this.getToken(TSqlParser.MB, 0); +}; + +Alter_server_configurationContext.prototype.GB = function() { + return this.getToken(TSqlParser.GB, 0); +}; + +Alter_server_configurationContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Alter_server_configurationContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Alter_server_configurationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_configuration(this); + } +}; + +Alter_server_configurationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_configuration(this); + } +}; + +Alter_server_configurationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_configuration(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_configurationContext = Alter_server_configurationContext; + +TSqlParser.prototype.alter_server_configuration = function() { + + var localctx = new Alter_server_configurationContext(this, this._ctx, this.state); + this.enterRule(localctx, 378, TSqlParser.RULE_alter_server_configuration); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4833; + this.match(TSqlParser.ALTER); + this.state = 4834; + this.match(TSqlParser.SERVER); + this.state = 4835; + this.match(TSqlParser.CONFIGURATION); + this.state = 4836; + this.match(TSqlParser.SET); + + this.state = 4942; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PROCESS: + this.state = 4837; + this.match(TSqlParser.PROCESS); + this.state = 4838; + this.match(TSqlParser.AFFINITY); + this.state = 4874; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CPU: + this.state = 4839; + this.match(TSqlParser.CPU); + this.state = 4840; + this.match(TSqlParser.EQUAL); + this.state = 4856; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO: + this.state = 4841; + this.match(TSqlParser.AUTO); + break; + case TSqlParser.DECIMAL: + case TSqlParser.COMMA: + this.state = 4852; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4852; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,559,this._ctx); + switch(la_) { + case 1: + this.state = 4843; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4842; + this.match(TSqlParser.COMMA); + } + + this.state = 4845; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4847; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4846; + this.match(TSqlParser.COMMA); + } + + this.state = 4849; + this.match(TSqlParser.DECIMAL); + this.state = 4850; + this.match(TSqlParser.TO); + this.state = 4851; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4854; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,560, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NUMANODE: + this.state = 4858; + this.match(TSqlParser.NUMANODE); + this.state = 4859; + this.match(TSqlParser.EQUAL); + this.state = 4870; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4870; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,564,this._ctx); + switch(la_) { + case 1: + this.state = 4861; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4860; + this.match(TSqlParser.COMMA); + } + + this.state = 4863; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4865; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4864; + this.match(TSqlParser.COMMA); + } + + this.state = 4867; + this.match(TSqlParser.DECIMAL); + this.state = 4868; + this.match(TSqlParser.TO); + this.state = 4869; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4872; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,565, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DIAGNOSTICS: + this.state = 4876; + this.match(TSqlParser.DIAGNOSTICS); + this.state = 4877; + this.match(TSqlParser.LOG); + this.state = 4893; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ON: + this.state = 4878; + this.match(TSqlParser.ON); + break; + case TSqlParser.OFF: + this.state = 4879; + this.match(TSqlParser.OFF); + break; + case TSqlParser.PATH: + this.state = 4880; + this.match(TSqlParser.PATH); + this.state = 4881; + this.match(TSqlParser.EQUAL); + this.state = 4882; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.MAX_SIZE: + this.state = 4883; + this.match(TSqlParser.MAX_SIZE); + this.state = 4884; + this.match(TSqlParser.EQUAL); + this.state = 4888; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 4885; + this.match(TSqlParser.DECIMAL); + this.state = 4886; + this.match(TSqlParser.MB); + break; + case TSqlParser.DEFAULT: + this.state = 4887; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.MAX_FILES: + this.state = 4890; + this.match(TSqlParser.MAX_FILES); + this.state = 4891; + this.match(TSqlParser.EQUAL); + this.state = 4892; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.FAILOVER: + this.state = 4895; + this.match(TSqlParser.FAILOVER); + this.state = 4896; + this.match(TSqlParser.CLUSTER); + this.state = 4897; + this.match(TSqlParser.PROPERTY); + this.state = 4915; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.VERBOSELOGGING: + this.state = 4898; + this.match(TSqlParser.VERBOSELOGGING); + this.state = 4899; + this.match(TSqlParser.EQUAL); + this.state = 4900; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SQLDUMPERFLAGS: + this.state = 4901; + this.match(TSqlParser.SQLDUMPERFLAGS); + this.state = 4902; + this.match(TSqlParser.EQUAL); + this.state = 4903; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SQLDUMPERPATH: + this.state = 4904; + this.match(TSqlParser.SQLDUMPERPATH); + this.state = 4905; + this.match(TSqlParser.EQUAL); + this.state = 4906; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SQLDUMPERTIMEOUT: + this.state = 4907; + this.match(TSqlParser.SQLDUMPERTIMEOUT); + this.state = 4908; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.FAILURECONDITIONLEVEL: + this.state = 4909; + this.match(TSqlParser.FAILURECONDITIONLEVEL); + this.state = 4910; + this.match(TSqlParser.EQUAL); + this.state = 4911; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.HEALTHCHECKTIMEOUT: + this.state = 4912; + this.match(TSqlParser.HEALTHCHECKTIMEOUT); + this.state = 4913; + this.match(TSqlParser.EQUAL); + this.state = 4914; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.HADR: + this.state = 4917; + this.match(TSqlParser.HADR); + this.state = 4918; + this.match(TSqlParser.CLUSTER); + this.state = 4919; + this.match(TSqlParser.CONTEXT); + this.state = 4920; + this.match(TSqlParser.EQUAL); + this.state = 4921; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.BUFFER: + this.state = 4922; + this.match(TSqlParser.BUFFER); + this.state = 4923; + this.match(TSqlParser.POOL); + this.state = 4924; + this.match(TSqlParser.EXTENSION); + this.state = 4937; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ON: + this.state = 4925; + this.match(TSqlParser.ON); + this.state = 4926; + this.match(TSqlParser.LR_BRACKET); + this.state = 4927; + this.match(TSqlParser.FILENAME); + this.state = 4928; + this.match(TSqlParser.EQUAL); + this.state = 4929; + this.match(TSqlParser.STRING); + this.state = 4930; + this.match(TSqlParser.COMMA); + this.state = 4931; + this.match(TSqlParser.SIZE); + this.state = 4932; + this.match(TSqlParser.EQUAL); + this.state = 4933; + this.match(TSqlParser.DECIMAL); + this.state = 4934; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GB || _la===TSqlParser.KB || _la===TSqlParser.MB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4935; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.OFF: + this.state = 4936; + this.match(TSqlParser.OFF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.SET: + this.state = 4939; + this.match(TSqlParser.SET); + this.state = 4940; + this.match(TSqlParser.SOFTNUMA); + this.state = 4941; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_role; + this.server_role_name = null; // IdContext + this.server_principal = null; // IdContext + this.new_server_role_name = null; // IdContext + return this; +} + +Alter_server_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_roleContext.prototype.constructor = Alter_server_roleContext; + +Alter_server_roleContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_roleContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Alter_server_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_server_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_server_roleContext.prototype.MEMBER = function() { + return this.getToken(TSqlParser.MEMBER, 0); +}; + +Alter_server_roleContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_server_roleContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_server_roleContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_server_roleContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_server_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_server_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_role(this); + } +}; + +Alter_server_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_role(this); + } +}; + +Alter_server_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_roleContext = Alter_server_roleContext; + +TSqlParser.prototype.alter_server_role = function() { + + var localctx = new Alter_server_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 380, TSqlParser.RULE_alter_server_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4944; + this.match(TSqlParser.ALTER); + this.state = 4945; + this.match(TSqlParser.SERVER); + this.state = 4946; + this.match(TSqlParser.ROLE); + this.state = 4947; + localctx.server_role_name = this.id(); + this.state = 4955; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ADD: + case TSqlParser.DROP: + this.state = 4948; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4949; + this.match(TSqlParser.MEMBER); + this.state = 4950; + localctx.server_principal = this.id(); + break; + case TSqlParser.WITH: + this.state = 4951; + this.match(TSqlParser.WITH); + this.state = 4952; + this.match(TSqlParser.NAME); + this.state = 4953; + this.match(TSqlParser.EQUAL); + this.state = 4954; + localctx.new_server_role_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_server_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_server_role; + this.server_role = null; // IdContext + this.server_principal = null; // IdContext + return this; +} + +Create_server_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_server_roleContext.prototype.constructor = Create_server_roleContext; + +Create_server_roleContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_server_roleContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_server_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Create_server_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_server_roleContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_server_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_server_role(this); + } +}; + +Create_server_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_server_role(this); + } +}; + +Create_server_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_server_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_server_roleContext = Create_server_roleContext; + +TSqlParser.prototype.create_server_role = function() { + + var localctx = new Create_server_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 382, TSqlParser.RULE_create_server_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4957; + this.match(TSqlParser.CREATE); + this.state = 4958; + this.match(TSqlParser.SERVER); + this.state = 4959; + this.match(TSqlParser.ROLE); + this.state = 4960; + localctx.server_role = this.id(); + this.state = 4963; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4961; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4962; + localctx.server_principal = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_role_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_role_pdw; + this.server_role_name = null; // IdContext + this.login = null; // IdContext + return this; +} + +Alter_server_role_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_role_pdwContext.prototype.constructor = Alter_server_role_pdwContext; + +Alter_server_role_pdwContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_role_pdwContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Alter_server_role_pdwContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_server_role_pdwContext.prototype.MEMBER = function() { + return this.getToken(TSqlParser.MEMBER, 0); +}; + +Alter_server_role_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_server_role_pdwContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_server_role_pdwContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_server_role_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_role_pdw(this); + } +}; + +Alter_server_role_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_role_pdw(this); + } +}; + +Alter_server_role_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_role_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_role_pdwContext = Alter_server_role_pdwContext; + +TSqlParser.prototype.alter_server_role_pdw = function() { + + var localctx = new Alter_server_role_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 384, TSqlParser.RULE_alter_server_role_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4965; + this.match(TSqlParser.ALTER); + this.state = 4966; + this.match(TSqlParser.SERVER); + this.state = 4967; + this.match(TSqlParser.ROLE); + this.state = 4968; + localctx.server_role_name = this.id(); + this.state = 4969; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4970; + this.match(TSqlParser.MEMBER); + this.state = 4971; + localctx.login = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_serviceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_service; + this.modified_service_name = null; // IdContext + this.schema_name = null; // IdContext + this.queue_name = null; // IdContext + this.modified_contract_name = null; // IdContext + return this; +} + +Alter_serviceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_serviceContext.prototype.constructor = Alter_serviceContext; + +Alter_serviceContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_serviceContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_serviceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_serviceContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_serviceContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Alter_serviceContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Alter_serviceContext.prototype.DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DROP); + } else { + return this.getToken(TSqlParser.DROP, i); + } +}; + + +Alter_serviceContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_serviceContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_serviceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_service(this); + } +}; + +Alter_serviceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_service(this); + } +}; + +Alter_serviceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_service(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_serviceContext = Alter_serviceContext; + +TSqlParser.prototype.alter_service = function() { + + var localctx = new Alter_serviceContext(this, this._ctx, this.state); + this.enterRule(localctx, 386, TSqlParser.RULE_alter_service); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4973; + this.match(TSqlParser.ALTER); + this.state = 4974; + this.match(TSqlParser.SERVICE); + this.state = 4975; + localctx.modified_service_name = this.id(); + this.state = 4983; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 4976; + this.match(TSqlParser.ON); + this.state = 4977; + this.match(TSqlParser.QUEUE); + + this.state = 4978; + localctx.schema_name = this.id(); + this.state = 4979; + this.match(TSqlParser.DOT); + this.state = 4981; + localctx.queue_name = this.id(); + } + + this.state = 4992; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,576,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4986; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4985; + this.match(TSqlParser.COMMA); + } + + this.state = 4988; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4989; + localctx.modified_contract_name = this.id(); + } + this.state = 4994; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,576,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_serviceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_service; + this.create_service_name = null; // IdContext + this.owner_name = null; // IdContext + this.schema_name = null; // IdContext + this.queue_name = null; // IdContext + return this; +} + +Create_serviceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_serviceContext.prototype.constructor = Create_serviceContext; + +Create_serviceContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_serviceContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Create_serviceContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_serviceContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Create_serviceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_serviceContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_serviceContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_serviceContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_serviceContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_serviceContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT); + } else { + return this.getToken(TSqlParser.DEFAULT, i); + } +}; + + +Create_serviceContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_serviceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_service(this); + } +}; + +Create_serviceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_service(this); + } +}; + +Create_serviceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_service(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_serviceContext = Create_serviceContext; + +TSqlParser.prototype.create_service = function() { + + var localctx = new Create_serviceContext(this, this._ctx, this.state); + this.enterRule(localctx, 388, TSqlParser.RULE_create_service); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4995; + this.match(TSqlParser.CREATE); + this.state = 4996; + this.match(TSqlParser.SERVICE); + this.state = 4997; + localctx.create_service_name = this.id(); + this.state = 5000; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4998; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4999; + localctx.owner_name = this.id(); + } + + this.state = 5002; + this.match(TSqlParser.ON); + this.state = 5003; + this.match(TSqlParser.QUEUE); + this.state = 5007; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,578,this._ctx); + if(la_===1) { + this.state = 5004; + localctx.schema_name = this.id(); + this.state = 5005; + this.match(TSqlParser.DOT); + + } + this.state = 5009; + localctx.queue_name = this.id(); + this.state = 5023; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,582,this._ctx); + if(la_===1) { + this.state = 5010; + this.match(TSqlParser.LR_BRACKET); + this.state = 5018; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5012; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5011; + this.match(TSqlParser.COMMA); + } + + this.state = 5016; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5014; + this.id(); + break; + case TSqlParser.DEFAULT: + this.state = 5015; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5020; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || _la===TSqlParser.DEFAULT || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 5022; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_service_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_service_master_key; + this.acold_account_name = null; // Token + this.old_password = null; // Token + this.new_account_name = null; // Token + this.new_password = null; // Token + return this; +} + +Alter_service_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_service_master_keyContext.prototype.constructor = Alter_service_master_keyContext; + +Alter_service_master_keyContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_service_master_keyContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_service_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Alter_service_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_service_master_keyContext.prototype.REGENERATE = function() { + return this.getToken(TSqlParser.REGENERATE, 0); +}; + +Alter_service_master_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_service_master_keyContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +Alter_service_master_keyContext.prototype.OLD_ACCOUNT = function() { + return this.getToken(TSqlParser.OLD_ACCOUNT, 0); +}; + +Alter_service_master_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_service_master_keyContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Alter_service_master_keyContext.prototype.OLD_PASSWORD = function() { + return this.getToken(TSqlParser.OLD_PASSWORD, 0); +}; + +Alter_service_master_keyContext.prototype.NEW_ACCOUNT = function() { + return this.getToken(TSqlParser.NEW_ACCOUNT, 0); +}; + +Alter_service_master_keyContext.prototype.NEW_PASSWORD = function() { + return this.getToken(TSqlParser.NEW_PASSWORD, 0); +}; + +Alter_service_master_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_service_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_service_master_key(this); + } +}; + +Alter_service_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_service_master_key(this); + } +}; + +Alter_service_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_service_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_service_master_keyContext = Alter_service_master_keyContext; + +TSqlParser.prototype.alter_service_master_key = function() { + + var localctx = new Alter_service_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 390, TSqlParser.RULE_alter_service_master_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5025; + this.match(TSqlParser.ALTER); + this.state = 5026; + this.match(TSqlParser.SERVICE); + this.state = 5027; + this.match(TSqlParser.MASTER); + this.state = 5028; + this.match(TSqlParser.KEY); + this.state = 5050; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REGENERATE: + case TSqlParser.FORCE: + this.state = 5030; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FORCE) { + this.state = 5029; + this.match(TSqlParser.FORCE); + } + + this.state = 5032; + this.match(TSqlParser.REGENERATE); + break; + case TSqlParser.WITH: + this.state = 5033; + this.match(TSqlParser.WITH); + this.state = 5048; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,584,this._ctx); + if(la_===1) { + this.state = 5034; + this.match(TSqlParser.OLD_ACCOUNT); + this.state = 5035; + this.match(TSqlParser.EQUAL); + this.state = 5036; + localctx.acold_account_name = this.match(TSqlParser.STRING); + this.state = 5037; + this.match(TSqlParser.COMMA); + this.state = 5038; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 5039; + this.match(TSqlParser.EQUAL); + this.state = 5040; + localctx.old_password = this.match(TSqlParser.STRING); + + } else if(la_===2) { + this.state = 5041; + this.match(TSqlParser.NEW_ACCOUNT); + this.state = 5042; + this.match(TSqlParser.EQUAL); + this.state = 5043; + localctx.new_account_name = this.match(TSqlParser.STRING); + this.state = 5044; + this.match(TSqlParser.COMMA); + this.state = 5045; + this.match(TSqlParser.NEW_PASSWORD); + this.state = 5046; + this.match(TSqlParser.EQUAL); + this.state = 5047; + localctx.new_password = this.match(TSqlParser.STRING); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_symmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_symmetric_key; + this.key_name = null; // IdContext + this.certificate_name = null; // IdContext + this.password = null; // Token + this.symmetric_key_name = null; // IdContext + this.Asym_key_name = null; // IdContext + return this; +} + +Alter_symmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_symmetric_keyContext.prototype.constructor = Alter_symmetric_keyContext; + +Alter_symmetric_keyContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_symmetric_keyContext.prototype.SYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SYMMETRIC); + } else { + return this.getToken(TSqlParser.SYMMETRIC, i); + } +}; + + +Alter_symmetric_keyContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Alter_symmetric_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_symmetric_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_symmetric_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Alter_symmetric_keyContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_symmetric_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_symmetric_keyContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Alter_symmetric_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_symmetric_keyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_symmetric_keyContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Alter_symmetric_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_symmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_symmetric_key(this); + } +}; + +Alter_symmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_symmetric_key(this); + } +}; + +Alter_symmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_symmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_symmetric_keyContext = Alter_symmetric_keyContext; + +TSqlParser.prototype.alter_symmetric_key = function() { + + var localctx = new Alter_symmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 392, TSqlParser.RULE_alter_symmetric_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5052; + this.match(TSqlParser.ALTER); + this.state = 5053; + this.match(TSqlParser.SYMMETRIC); + this.state = 5054; + this.match(TSqlParser.KEY); + this.state = 5055; + localctx.key_name = this.id(); + + this.state = 5056; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5057; + this.match(TSqlParser.ENCRYPTION); + this.state = 5058; + this.match(TSqlParser.BY); + this.state = 5070; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CERTIFICATE: + this.state = 5059; + this.match(TSqlParser.CERTIFICATE); + this.state = 5060; + localctx.certificate_name = this.id(); + break; + case TSqlParser.PASSWORD: + this.state = 5061; + this.match(TSqlParser.PASSWORD); + this.state = 5062; + this.match(TSqlParser.EQUAL); + this.state = 5063; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.SYMMETRIC: + this.state = 5064; + this.match(TSqlParser.SYMMETRIC); + this.state = 5065; + this.match(TSqlParser.KEY); + this.state = 5066; + localctx.symmetric_key_name = this.id(); + break; + case TSqlParser.ASYMMETRIC: + this.state = 5067; + this.match(TSqlParser.ASYMMETRIC); + this.state = 5068; + this.match(TSqlParser.KEY); + this.state = 5069; + localctx.Asym_key_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_symmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_symmetric_key; + this.key_name = null; // IdContext + this.owner_name = null; // IdContext + this.provider_name = null; // IdContext + this.key_pass_phrase = null; // Token + this.identity_phrase = null; // Token + this.provider_key_name = null; // Token + this.certificate_name = null; // IdContext + this.password = null; // Token + this.symmetric_key_name = null; // IdContext + this.asym_key_name = null; // IdContext + return this; +} + +Create_symmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_symmetric_keyContext.prototype.constructor = Create_symmetric_keyContext; + +Create_symmetric_keyContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_symmetric_keyContext.prototype.SYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SYMMETRIC); + } else { + return this.getToken(TSqlParser.SYMMETRIC, i); + } +}; + + +Create_symmetric_keyContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Create_symmetric_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_symmetric_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_symmetric_keyContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_symmetric_keyContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_symmetric_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_symmetric_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_symmetric_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_symmetric_keyContext.prototype.KEY_SOURCE = function() { + return this.getToken(TSqlParser.KEY_SOURCE, 0); +}; + +Create_symmetric_keyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_symmetric_keyContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Create_symmetric_keyContext.prototype.IDENTITY_VALUE = function() { + return this.getToken(TSqlParser.IDENTITY_VALUE, 0); +}; + +Create_symmetric_keyContext.prototype.PROVIDER_KEY_NAME = function() { + return this.getToken(TSqlParser.PROVIDER_KEY_NAME, 0); +}; + +Create_symmetric_keyContext.prototype.CREATION_DISPOSITION = function() { + return this.getToken(TSqlParser.CREATION_DISPOSITION, 0); +}; + +Create_symmetric_keyContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Create_symmetric_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_symmetric_keyContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Create_symmetric_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_symmetric_keyContext.prototype.DES = function() { + return this.getToken(TSqlParser.DES, 0); +}; + +Create_symmetric_keyContext.prototype.TRIPLE_DES = function() { + return this.getToken(TSqlParser.TRIPLE_DES, 0); +}; + +Create_symmetric_keyContext.prototype.TRIPLE_DES_3KEY = function() { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, 0); +}; + +Create_symmetric_keyContext.prototype.RC2 = function() { + return this.getToken(TSqlParser.RC2, 0); +}; + +Create_symmetric_keyContext.prototype.RC4 = function() { + return this.getToken(TSqlParser.RC4, 0); +}; + +Create_symmetric_keyContext.prototype.RC4_128 = function() { + return this.getToken(TSqlParser.RC4_128, 0); +}; + +Create_symmetric_keyContext.prototype.DESX = function() { + return this.getToken(TSqlParser.DESX, 0); +}; + +Create_symmetric_keyContext.prototype.AES_128 = function() { + return this.getToken(TSqlParser.AES_128, 0); +}; + +Create_symmetric_keyContext.prototype.AES_192 = function() { + return this.getToken(TSqlParser.AES_192, 0); +}; + +Create_symmetric_keyContext.prototype.AES_256 = function() { + return this.getToken(TSqlParser.AES_256, 0); +}; + +Create_symmetric_keyContext.prototype.CREATE_NEW = function() { + return this.getToken(TSqlParser.CREATE_NEW, 0); +}; + +Create_symmetric_keyContext.prototype.OPEN_EXISTING = function() { + return this.getToken(TSqlParser.OPEN_EXISTING, 0); +}; + +Create_symmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_symmetric_key(this); + } +}; + +Create_symmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_symmetric_key(this); + } +}; + +Create_symmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_symmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_symmetric_keyContext = Create_symmetric_keyContext; + +TSqlParser.prototype.create_symmetric_key = function() { + + var localctx = new Create_symmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 394, TSqlParser.RULE_create_symmetric_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5072; + this.match(TSqlParser.ALTER); + this.state = 5073; + this.match(TSqlParser.SYMMETRIC); + this.state = 5074; + this.match(TSqlParser.KEY); + this.state = 5075; + localctx.key_name = this.id(); + this.state = 5078; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 5076; + this.match(TSqlParser.AUTHORIZATION); + this.state = 5077; + localctx.owner_name = this.id(); + } + + this.state = 5083; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 5080; + this.match(TSqlParser.FROM); + this.state = 5081; + this.match(TSqlParser.PROVIDER); + this.state = 5082; + localctx.provider_name = this.id(); + } + + this.state = 5085; + this.match(TSqlParser.WITH); + this.state = 5118; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALGORITHM: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.KEY_SOURCE: + case TSqlParser.PROVIDER_KEY_NAME: + this.state = 5101; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.KEY_SOURCE: + this.state = 5086; + this.match(TSqlParser.KEY_SOURCE); + this.state = 5087; + this.match(TSqlParser.EQUAL); + this.state = 5088; + localctx.key_pass_phrase = this.match(TSqlParser.STRING); + break; + case TSqlParser.ALGORITHM: + this.state = 5089; + this.match(TSqlParser.ALGORITHM); + this.state = 5090; + this.match(TSqlParser.EQUAL); + this.state = 5091; + _la = this._input.LA(1); + if(!(((((_la - 386)) & ~0x1f) == 0 && ((1 << (_la - 386)) & ((1 << (TSqlParser.AES_128 - 386)) | (1 << (TSqlParser.AES_192 - 386)) | (1 << (TSqlParser.AES_256 - 386)))) !== 0) || _la===TSqlParser.DES || _la===TSqlParser.DESX || ((((_la - 663)) & ~0x1f) == 0 && ((1 << (_la - 663)) & ((1 << (TSqlParser.RC2 - 663)) | (1 << (TSqlParser.RC4 - 663)) | (1 << (TSqlParser.RC4_128 - 663)))) !== 0) || _la===TSqlParser.TRIPLE_DES || _la===TSqlParser.TRIPLE_DES_3KEY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.IDENTITY_VALUE: + this.state = 5092; + this.match(TSqlParser.IDENTITY_VALUE); + this.state = 5093; + this.match(TSqlParser.EQUAL); + this.state = 5094; + localctx.identity_phrase = this.match(TSqlParser.STRING); + break; + case TSqlParser.PROVIDER_KEY_NAME: + this.state = 5095; + this.match(TSqlParser.PROVIDER_KEY_NAME); + this.state = 5096; + this.match(TSqlParser.EQUAL); + this.state = 5097; + localctx.provider_key_name = this.match(TSqlParser.STRING); + break; + case TSqlParser.CREATION_DISPOSITION: + this.state = 5098; + this.match(TSqlParser.CREATION_DISPOSITION); + this.state = 5099; + this.match(TSqlParser.EQUAL); + this.state = 5100; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CREATE_NEW || _la===TSqlParser.OPEN_EXISTING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.ENCRYPTION: + this.state = 5103; + this.match(TSqlParser.ENCRYPTION); + this.state = 5104; + this.match(TSqlParser.BY); + this.state = 5116; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CERTIFICATE: + this.state = 5105; + this.match(TSqlParser.CERTIFICATE); + this.state = 5106; + localctx.certificate_name = this.id(); + break; + case TSqlParser.PASSWORD: + this.state = 5107; + this.match(TSqlParser.PASSWORD); + this.state = 5108; + this.match(TSqlParser.EQUAL); + this.state = 5109; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.SYMMETRIC: + this.state = 5110; + this.match(TSqlParser.SYMMETRIC); + this.state = 5111; + this.match(TSqlParser.KEY); + this.state = 5112; + localctx.symmetric_key_name = this.id(); + break; + case TSqlParser.ASYMMETRIC: + this.state = 5113; + this.match(TSqlParser.ASYMMETRIC); + this.state = 5114; + this.match(TSqlParser.KEY); + this.state = 5115; + localctx.asym_key_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_synonymContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_synonym; + this.schema_name_1 = null; // IdContext + this.synonym_name = null; // IdContext + this.server_name = null; // IdContext + this.database_name = null; // IdContext + this.schema_name_2 = null; // IdContext + this.object_name = null; // IdContext + this.database_or_schema2 = null; // IdContext + this.schema_id_2_or_object_name = null; // IdContext + return this; +} + +Create_synonymContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_synonymContext.prototype.constructor = Create_synonymContext; + +Create_synonymContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_synonymContext.prototype.SYNONYM = function() { + return this.getToken(TSqlParser.SYNONYM, 0); +}; + +Create_synonymContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_synonymContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_synonymContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Create_synonymContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_synonym(this); + } +}; + +Create_synonymContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_synonym(this); + } +}; + +Create_synonymContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_synonym(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_synonymContext = Create_synonymContext; + +TSqlParser.prototype.create_synonym = function() { + + var localctx = new Create_synonymContext(this, this._ctx, this.state); + this.enterRule(localctx, 396, TSqlParser.RULE_create_synonym); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5120; + this.match(TSqlParser.CREATE); + this.state = 5121; + this.match(TSqlParser.SYNONYM); + this.state = 5125; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,592,this._ctx); + if(la_===1) { + this.state = 5122; + localctx.schema_name_1 = this.id(); + this.state = 5123; + this.match(TSqlParser.DOT); + + } + this.state = 5127; + localctx.synonym_name = this.id(); + this.state = 5128; + this.match(TSqlParser.FOR); + this.state = 5155; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,598,this._ctx); + switch(la_) { + case 1: + this.state = 5132; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,593,this._ctx); + if(la_===1) { + this.state = 5129; + localctx.server_name = this.id(); + this.state = 5130; + this.match(TSqlParser.DOT); + + } + this.state = 5137; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,594,this._ctx); + if(la_===1) { + this.state = 5134; + localctx.database_name = this.id(); + this.state = 5135; + this.match(TSqlParser.DOT); + + } + this.state = 5142; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,595,this._ctx); + if(la_===1) { + this.state = 5139; + localctx.schema_name_2 = this.id(); + this.state = 5140; + this.match(TSqlParser.DOT); + + } + this.state = 5144; + localctx.object_name = this.id(); + break; + + case 2: + this.state = 5148; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,596,this._ctx); + if(la_===1) { + this.state = 5145; + localctx.database_or_schema2 = this.id(); + this.state = 5146; + this.match(TSqlParser.DOT); + + } + this.state = 5153; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,597,this._ctx); + if(la_===1) { + this.state = 5150; + localctx.schema_id_2_or_object_name = this.id(); + this.state = 5151; + this.match(TSqlParser.DOT); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_userContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_user; + this.username = null; // IdContext + this.newusername = null; // IdContext + this.schema_name = null; // IdContext + this.loginame = null; // IdContext + this.lcid = null; // Token + this.language_name_or_alias = null; // IdContext + return this; +} + +Alter_userContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_userContext.prototype.constructor = Alter_userContext; + +Alter_userContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_userContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Alter_userContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_userContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_userContext.prototype.NAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NAME); + } else { + return this.getToken(TSqlParser.NAME, i); + } +}; + + +Alter_userContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_userContext.prototype.DEFAULT_SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_SCHEMA); + } else { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, i); + } +}; + + +Alter_userContext.prototype.LOGIN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOGIN); + } else { + return this.getToken(TSqlParser.LOGIN, i); + } +}; + + +Alter_userContext.prototype.PASSWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PASSWORD); + } else { + return this.getToken(TSqlParser.PASSWORD, i); + } +}; + + +Alter_userContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_userContext.prototype.DEFAULT_LANGUAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_LANGUAGE); + } else { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, i); + } +}; + + +Alter_userContext.prototype.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + } else { + return this.getToken(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, i); + } +}; + + +Alter_userContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Alter_userContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Alter_userContext.prototype.NULL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NULL); + } else { + return this.getToken(TSqlParser.NULL, i); + } +}; + + +Alter_userContext.prototype.NONE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NONE); + } else { + return this.getToken(TSqlParser.NONE, i); + } +}; + + +Alter_userContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_userContext.prototype.OLD_PASSWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OLD_PASSWORD); + } else { + return this.getToken(TSqlParser.OLD_PASSWORD, i); + } +}; + + +Alter_userContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_userContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_user(this); + } +}; + +Alter_userContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_user(this); + } +}; + +Alter_userContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_user(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_userContext = Alter_userContext; + +TSqlParser.prototype.alter_user = function() { + + var localctx = new Alter_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 398, TSqlParser.RULE_alter_user); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5157; + this.match(TSqlParser.ALTER); + this.state = 5158; + this.match(TSqlParser.USER); + this.state = 5159; + localctx.username = this.id(); + this.state = 5160; + this.match(TSqlParser.WITH); + this.state = 5211; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 5211; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,608,this._ctx); + switch(la_) { + case 1: + this.state = 5162; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5161; + this.match(TSqlParser.COMMA); + } + + this.state = 5164; + this.match(TSqlParser.NAME); + this.state = 5165; + this.match(TSqlParser.EQUAL); + this.state = 5166; + localctx.newusername = this.id(); + break; + + case 2: + this.state = 5168; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5167; + this.match(TSqlParser.COMMA); + } + + this.state = 5170; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5171; + this.match(TSqlParser.EQUAL); + this.state = 5174; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5172; + localctx.schema_name = this.id(); + break; + case TSqlParser.NULL: + this.state = 5173; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 5177; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5176; + this.match(TSqlParser.COMMA); + } + + this.state = 5179; + this.match(TSqlParser.LOGIN); + this.state = 5180; + this.match(TSqlParser.EQUAL); + this.state = 5181; + localctx.loginame = this.id(); + break; + + case 4: + this.state = 5183; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5182; + this.match(TSqlParser.COMMA); + } + + this.state = 5185; + this.match(TSqlParser.PASSWORD); + this.state = 5186; + this.match(TSqlParser.EQUAL); + this.state = 5187; + this.match(TSqlParser.STRING); + this.state = 5191; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5188; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 5189; + this.match(TSqlParser.EQUAL); + this.state = 5190; + this.match(TSqlParser.STRING); + this.state = 5193; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.OLD_PASSWORD); + break; + + case 5: + this.state = 5196; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5195; + this.match(TSqlParser.COMMA); + } + + this.state = 5198; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 5199; + this.match(TSqlParser.EQUAL); + this.state = 5203; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 5200; + this.match(TSqlParser.NONE); + break; + case TSqlParser.DECIMAL: + this.state = 5201; + localctx.lcid = this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5202; + localctx.language_name_or_alias = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 6: + this.state = 5206; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5205; + this.match(TSqlParser.COMMA); + } + + this.state = 5208; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5209; + this.match(TSqlParser.EQUAL); + this.state = 5210; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5213; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,609, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_userContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_user; + this.user_name = null; // IdContext + this.login_name = null; // IdContext + this.schema_name = null; // IdContext + this.windows_principal = null; // IdContext + this.language_name_or_alias = null; // IdContext + this.password = null; // Token + this.Azure_Active_Directory_principal = null; // IdContext + this.cert_name = null; // IdContext + this.asym_key_name = null; // IdContext + return this; +} + +Create_userContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_userContext.prototype.constructor = Create_userContext; + +Create_userContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_userContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Create_userContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_userContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_userContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_userContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_userContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_userContext.prototype.DEFAULT_SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_SCHEMA); + } else { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, i); + } +}; + + +Create_userContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_userContext.prototype.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + } else { + return this.getToken(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, i); + } +}; + + +Create_userContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_userContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_userContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_userContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_userContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_userContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_userContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_userContext.prototype.DEFAULT_LANGUAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_LANGUAGE); + } else { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, i); + } +}; + + +Create_userContext.prototype.SID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SID); + } else { + return this.getToken(TSqlParser.SID, i); + } +}; + + +Create_userContext.prototype.BINARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BINARY); + } else { + return this.getToken(TSqlParser.BINARY, i); + } +}; + + +Create_userContext.prototype.NONE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NONE); + } else { + return this.getToken(TSqlParser.NONE, i); + } +}; + + +Create_userContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_userContext.prototype.WITHOUT = function() { + return this.getToken(TSqlParser.WITHOUT, 0); +}; + +Create_userContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Create_userContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Create_userContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_userContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_user(this); + } +}; + +Create_userContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_user(this); + } +}; + +Create_userContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_user(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_userContext = Create_userContext; + +TSqlParser.prototype.create_user = function() { + + var localctx = new Create_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 400, TSqlParser.RULE_create_user); + var _la = 0; // Token type + try { + this.state = 5361; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,637,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5215; + this.match(TSqlParser.CREATE); + this.state = 5216; + this.match(TSqlParser.USER); + this.state = 5217; + localctx.user_name = this.id(); + this.state = 5221; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR || _la===TSqlParser.FROM) { + this.state = 5218; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.FROM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5219; + this.match(TSqlParser.LOGIN); + this.state = 5220; + localctx.login_name = this.id(); + } + + this.state = 5241; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,615,this._ctx); + if(la_===1) { + this.state = 5223; + this.match(TSqlParser.WITH); + this.state = 5238; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,614,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5236; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,613,this._ctx); + switch(la_) { + case 1: + this.state = 5225; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5224; + this.match(TSqlParser.COMMA); + } + + this.state = 5227; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5228; + this.match(TSqlParser.EQUAL); + this.state = 5229; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 5231; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5230; + this.match(TSqlParser.COMMA); + } + + this.state = 5233; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5234; + this.match(TSqlParser.EQUAL); + this.state = 5235; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 5240; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,614,this._ctx); + } + + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5243; + this.match(TSqlParser.CREATE); + this.state = 5244; + this.match(TSqlParser.USER); + this.state = 5325; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,631,this._ctx); + switch(la_) { + case 1: + this.state = 5245; + localctx.windows_principal = this.id(); + this.state = 5280; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,623,this._ctx); + if(la_===1) { + this.state = 5246; + this.match(TSqlParser.WITH); + this.state = 5277; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,622,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5275; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,621,this._ctx); + switch(la_) { + case 1: + this.state = 5248; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5247; + this.match(TSqlParser.COMMA); + } + + this.state = 5250; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5251; + this.match(TSqlParser.EQUAL); + this.state = 5252; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 5254; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5253; + this.match(TSqlParser.COMMA); + } + + this.state = 5256; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 5257; + this.match(TSqlParser.EQUAL); + this.state = 5261; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 5258; + this.match(TSqlParser.NONE); + break; + case TSqlParser.DECIMAL: + this.state = 5259; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5260; + localctx.language_name_or_alias = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 5264; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5263; + this.match(TSqlParser.COMMA); + } + + this.state = 5266; + this.match(TSqlParser.SID); + this.state = 5267; + this.match(TSqlParser.EQUAL); + this.state = 5268; + this.match(TSqlParser.BINARY); + break; + + case 4: + this.state = 5270; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5269; + this.match(TSqlParser.COMMA); + } + + this.state = 5272; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5273; + this.match(TSqlParser.EQUAL); + this.state = 5274; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 5279; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,622,this._ctx); + } + + + } + break; + + case 2: + this.state = 5282; + localctx.user_name = this.id(); + this.state = 5283; + this.match(TSqlParser.WITH); + this.state = 5284; + this.match(TSqlParser.PASSWORD); + this.state = 5285; + this.match(TSqlParser.EQUAL); + this.state = 5286; + localctx.password = this.match(TSqlParser.STRING); + this.state = 5317; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,630,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5315; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,629,this._ctx); + switch(la_) { + case 1: + this.state = 5288; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5287; + this.match(TSqlParser.COMMA); + } + + this.state = 5290; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5291; + this.match(TSqlParser.EQUAL); + this.state = 5292; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 5294; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5293; + this.match(TSqlParser.COMMA); + } + + this.state = 5296; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 5297; + this.match(TSqlParser.EQUAL); + this.state = 5301; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 5298; + this.match(TSqlParser.NONE); + break; + case TSqlParser.DECIMAL: + this.state = 5299; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5300; + localctx.language_name_or_alias = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 5304; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5303; + this.match(TSqlParser.COMMA); + } + + this.state = 5306; + this.match(TSqlParser.SID); + this.state = 5307; + this.match(TSqlParser.EQUAL); + this.state = 5308; + this.match(TSqlParser.BINARY); + break; + + case 4: + this.state = 5310; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5309; + this.match(TSqlParser.COMMA); + } + + this.state = 5312; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5313; + this.match(TSqlParser.EQUAL); + this.state = 5314; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 5319; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,630,this._ctx); + } + + break; + + case 3: + this.state = 5320; + localctx.Azure_Active_Directory_principal = this.id(); + this.state = 5321; + this.match(TSqlParser.FROM); + this.state = 5322; + this.match(TSqlParser.EXTERNAL); + this.state = 5323; + this.match(TSqlParser.PROVIDER); + break; + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5327; + this.match(TSqlParser.CREATE); + this.state = 5328; + this.match(TSqlParser.USER); + this.state = 5329; + localctx.user_name = this.id(); + this.state = 5356; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,636,this._ctx); + switch(la_) { + case 1: + this.state = 5330; + this.match(TSqlParser.WITHOUT); + this.state = 5331; + this.match(TSqlParser.LOGIN); + this.state = 5346; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,635,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5344; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,634,this._ctx); + switch(la_) { + case 1: + this.state = 5333; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5332; + this.match(TSqlParser.COMMA); + } + + this.state = 5335; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5336; + this.match(TSqlParser.EQUAL); + this.state = 5337; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 5339; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5338; + this.match(TSqlParser.COMMA); + } + + this.state = 5341; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5342; + this.match(TSqlParser.EQUAL); + this.state = 5343; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 5348; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,635,this._ctx); + } + + break; + + case 2: + this.state = 5349; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.FROM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5350; + this.match(TSqlParser.CERTIFICATE); + this.state = 5351; + localctx.cert_name = this.id(); + break; + + case 3: + this.state = 5352; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.FROM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5353; + this.match(TSqlParser.ASYMMETRIC); + this.state = 5354; + this.match(TSqlParser.KEY); + this.state = 5355; + localctx.asym_key_name = this.id(); + break; + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5358; + this.match(TSqlParser.CREATE); + this.state = 5359; + this.match(TSqlParser.USER); + this.state = 5360; + localctx.user_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_user_azure_sql_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_user_azure_sql_dw; + this.user_name = null; // IdContext + this.login_name = null; // IdContext + this.schema_name = null; // IdContext + this.Azure_Active_Directory_principal = null; // IdContext + return this; +} + +Create_user_azure_sql_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_user_azure_sql_dwContext.prototype.constructor = Create_user_azure_sql_dwContext; + +Create_user_azure_sql_dwContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_user_azure_sql_dwContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Create_user_azure_sql_dwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_user_azure_sql_dwContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_user_azure_sql_dwContext.prototype.WITHOUT = function() { + return this.getToken(TSqlParser.WITHOUT, 0); +}; + +Create_user_azure_sql_dwContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_user_azure_sql_dwContext.prototype.DEFAULT_SCHEMA = function() { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, 0); +}; + +Create_user_azure_sql_dwContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_user_azure_sql_dwContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_user_azure_sql_dwContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_user_azure_sql_dwContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_user_azure_sql_dwContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_user_azure_sql_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_user_azure_sql_dw(this); + } +}; + +Create_user_azure_sql_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_user_azure_sql_dw(this); + } +}; + +Create_user_azure_sql_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_user_azure_sql_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_user_azure_sql_dwContext = Create_user_azure_sql_dwContext; + +TSqlParser.prototype.create_user_azure_sql_dw = function() { + + var localctx = new Create_user_azure_sql_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 402, TSqlParser.RULE_create_user_azure_sql_dw); + var _la = 0; // Token type + try { + this.state = 5391; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,641,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5363; + this.match(TSqlParser.CREATE); + this.state = 5364; + this.match(TSqlParser.USER); + this.state = 5365; + localctx.user_name = this.id(); + this.state = 5371; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case TSqlParser.FOR: + case TSqlParser.FROM: + this.state = 5366; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.FROM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5367; + this.match(TSqlParser.LOGIN); + this.state = 5368; + localctx.login_name = this.id(); + break; + case TSqlParser.WITHOUT: + this.state = 5369; + this.match(TSqlParser.WITHOUT); + this.state = 5370; + this.match(TSqlParser.LOGIN); + break; + case TSqlParser.EOF: + case TSqlParser.ALTER: + case TSqlParser.BACKUP: + case TSqlParser.BEGIN: + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.BREAK: + case TSqlParser.CALLED: + case TSqlParser.CASE: + case TSqlParser.CLOSE: + case TSqlParser.COALESCE: + case TSqlParser.COMMIT: + case TSqlParser.CONTINUE: + case TSqlParser.CONVERT: + case TSqlParser.CREATE: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DBCC: + case TSqlParser.DEALLOCATE: + case TSqlParser.DECLARE: + case TSqlParser.DEFAULT: + case TSqlParser.DELETE: + case TSqlParser.DROP: + case TSqlParser.ELSE: + case TSqlParser.END: + case TSqlParser.EVENTDATA: + case TSqlParser.EXECUTE: + case TSqlParser.FETCH: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.GET: + case TSqlParser.GOTO: + case TSqlParser.GRANT: + case TSqlParser.IDENTITY: + case TSqlParser.IF: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.INSERT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.KILL: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.MERGE: + case TSqlParser.NULL: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.OPEN: + case TSqlParser.OVER: + case TSqlParser.PAGE: + case TSqlParser.PRINT: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAISERROR: + case TSqlParser.RAW: + case TSqlParser.RECONFIGURE: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.REVERT: + case TSqlParser.RIGHT: + case TSqlParser.ROLLBACK: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SAVE: + case TSqlParser.SELECT: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SET: + case TSqlParser.SETUSER: + case TSqlParser.SHUTDOWN: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.TRUNCATE: + case TSqlParser.UPDATE: + case TSqlParser.USE: + case TSqlParser.WAITFOR: + case TSqlParser.WHILE: + case TSqlParser.WITH: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.LR_BRACKET: + case TSqlParser.SEMI: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + case TSqlParser.BIT_NOT: + break; + default: + break; + } + this.state = 5377; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,639,this._ctx); + if(la_===1) { + this.state = 5373; + this.match(TSqlParser.WITH); + this.state = 5374; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5375; + this.match(TSqlParser.EQUAL); + this.state = 5376; + localctx.schema_name = this.id(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5379; + this.match(TSqlParser.CREATE); + this.state = 5380; + this.match(TSqlParser.USER); + this.state = 5381; + localctx.Azure_Active_Directory_principal = this.id(); + this.state = 5382; + this.match(TSqlParser.FROM); + this.state = 5383; + this.match(TSqlParser.EXTERNAL); + this.state = 5384; + this.match(TSqlParser.PROVIDER); + this.state = 5389; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,640,this._ctx); + if(la_===1) { + this.state = 5385; + this.match(TSqlParser.WITH); + this.state = 5386; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5387; + this.match(TSqlParser.EQUAL); + this.state = 5388; + localctx.schema_name = this.id(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_user_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_user_azure_sql; + this.username = null; // IdContext + this.newusername = null; // IdContext + this.schema_name = null; // IdContext + this.loginame = null; // IdContext + return this; +} + +Alter_user_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_user_azure_sqlContext.prototype.constructor = Alter_user_azure_sqlContext; + +Alter_user_azure_sqlContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_user_azure_sqlContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Alter_user_azure_sqlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_user_azure_sqlContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_user_azure_sqlContext.prototype.NAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NAME); + } else { + return this.getToken(TSqlParser.NAME, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.DEFAULT_SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_SCHEMA); + } else { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.LOGIN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOGIN); + } else { + return this.getToken(TSqlParser.LOGIN, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + } else { + return this.getToken(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_user_azure_sql(this); + } +}; + +Alter_user_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_user_azure_sql(this); + } +}; + +Alter_user_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_user_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_user_azure_sqlContext = Alter_user_azure_sqlContext; + +TSqlParser.prototype.alter_user_azure_sql = function() { + + var localctx = new Alter_user_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 404, TSqlParser.RULE_alter_user_azure_sql); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5393; + this.match(TSqlParser.ALTER); + this.state = 5394; + this.match(TSqlParser.USER); + this.state = 5395; + localctx.username = this.id(); + this.state = 5396; + this.match(TSqlParser.WITH); + this.state = 5421; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 5421; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,646,this._ctx); + switch(la_) { + case 1: + this.state = 5398; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5397; + this.match(TSqlParser.COMMA); + } + + this.state = 5400; + this.match(TSqlParser.NAME); + this.state = 5401; + this.match(TSqlParser.EQUAL); + this.state = 5402; + localctx.newusername = this.id(); + break; + + case 2: + this.state = 5404; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5403; + this.match(TSqlParser.COMMA); + } + + this.state = 5406; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5407; + this.match(TSqlParser.EQUAL); + this.state = 5408; + localctx.schema_name = this.id(); + break; + + case 3: + this.state = 5410; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5409; + this.match(TSqlParser.COMMA); + } + + this.state = 5412; + this.match(TSqlParser.LOGIN); + this.state = 5413; + this.match(TSqlParser.EQUAL); + this.state = 5414; + localctx.loginame = this.id(); + break; + + case 4: + this.state = 5416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5415; + this.match(TSqlParser.COMMA); + } + + this.state = 5418; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5419; + this.match(TSqlParser.EQUAL); + this.state = 5420; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5423; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,647, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_workload_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_workload_group; + this.workload_group_group_name = null; // IdContext + this.request_max_memory_grant = null; // Token + this.request_max_cpu_time_sec = null; // Token + this.request_memory_grant_timeout_sec = null; // Token + this.max_dop = null; // Token + this.group_max_requests = null; // Token + this.workload_group_pool_name = null; // IdContext + return this; +} + +Alter_workload_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_workload_groupContext.prototype.constructor = Alter_workload_groupContext; + +Alter_workload_groupContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_workload_groupContext.prototype.WORKLOAD = function() { + return this.getToken(TSqlParser.WORKLOAD, 0); +}; + +Alter_workload_groupContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Alter_workload_groupContext.prototype.DEFAULT_DOUBLE_QUOTE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_DOUBLE_QUOTE); + } else { + return this.getToken(TSqlParser.DEFAULT_DOUBLE_QUOTE, i); + } +}; + + +Alter_workload_groupContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_workload_groupContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_workload_groupContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_workload_groupContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_workload_groupContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Alter_workload_groupContext.prototype.IMPORTANCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.IMPORTANCE); + } else { + return this.getToken(TSqlParser.IMPORTANCE, i); + } +}; + + +Alter_workload_groupContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_workload_groupContext.prototype.REQUEST_MAX_MEMORY_GRANT_PERCENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT); + } else { + return this.getToken(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT, i); + } +}; + + +Alter_workload_groupContext.prototype.REQUEST_MAX_CPU_TIME_SEC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MAX_CPU_TIME_SEC); + } else { + return this.getToken(TSqlParser.REQUEST_MAX_CPU_TIME_SEC, i); + } +}; + + +Alter_workload_groupContext.prototype.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC); + } else { + return this.getToken(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC, i); + } +}; + + +Alter_workload_groupContext.prototype.MAX_DOP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_DOP); + } else { + return this.getToken(TSqlParser.MAX_DOP, i); + } +}; + + +Alter_workload_groupContext.prototype.GROUP_MAX_REQUESTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GROUP_MAX_REQUESTS); + } else { + return this.getToken(TSqlParser.GROUP_MAX_REQUESTS, i); + } +}; + + +Alter_workload_groupContext.prototype.LOW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOW); + } else { + return this.getToken(TSqlParser.LOW, i); + } +}; + + +Alter_workload_groupContext.prototype.MEDIUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIUM); + } else { + return this.getToken(TSqlParser.MEDIUM, i); + } +}; + + +Alter_workload_groupContext.prototype.HIGH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.HIGH); + } else { + return this.getToken(TSqlParser.HIGH, i); + } +}; + + +Alter_workload_groupContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_workload_groupContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_workload_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_workload_group(this); + } +}; + +Alter_workload_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_workload_group(this); + } +}; + +Alter_workload_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_workload_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_workload_groupContext = Alter_workload_groupContext; + +TSqlParser.prototype.alter_workload_group = function() { + + var localctx = new Alter_workload_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 406, TSqlParser.RULE_alter_workload_group); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5425; + this.match(TSqlParser.ALTER); + this.state = 5426; + this.match(TSqlParser.WORKLOAD); + this.state = 5427; + this.match(TSqlParser.GROUP); + this.state = 5430; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,648,this._ctx); + switch(la_) { + case 1: + this.state = 5428; + localctx.workload_group_group_name = this.id(); + break; + + case 2: + this.state = 5429; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + break; + + } + this.state = 5463; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,653,this._ctx); + if(la_===1) { + this.state = 5432; + this.match(TSqlParser.WITH); + this.state = 5433; + this.match(TSqlParser.LR_BRACKET); + this.state = 5458; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5458; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,651,this._ctx); + switch(la_) { + case 1: + this.state = 5434; + this.match(TSqlParser.IMPORTANCE); + this.state = 5435; + this.match(TSqlParser.EQUAL); + this.state = 5436; + _la = this._input.LA(1); + if(!(_la===TSqlParser.HIGH || _la===TSqlParser.LOW || _la===TSqlParser.MEDIUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 5438; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5437; + this.match(TSqlParser.COMMA); + } + + this.state = 5440; + this.match(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT); + this.state = 5441; + this.match(TSqlParser.EQUAL); + this.state = 5442; + localctx.request_max_memory_grant = this.match(TSqlParser.DECIMAL); + break; + + case 3: + this.state = 5444; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5443; + this.match(TSqlParser.COMMA); + } + + this.state = 5446; + this.match(TSqlParser.REQUEST_MAX_CPU_TIME_SEC); + this.state = 5447; + this.match(TSqlParser.EQUAL); + this.state = 5448; + localctx.request_max_cpu_time_sec = this.match(TSqlParser.DECIMAL); + break; + + case 4: + this.state = 5449; + this.match(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC); + this.state = 5450; + this.match(TSqlParser.EQUAL); + this.state = 5451; + localctx.request_memory_grant_timeout_sec = this.match(TSqlParser.DECIMAL); + break; + + case 5: + this.state = 5452; + this.match(TSqlParser.MAX_DOP); + this.state = 5453; + this.match(TSqlParser.EQUAL); + this.state = 5454; + localctx.max_dop = this.match(TSqlParser.DECIMAL); + break; + + case 6: + this.state = 5455; + this.match(TSqlParser.GROUP_MAX_REQUESTS); + this.state = 5456; + this.match(TSqlParser.EQUAL); + this.state = 5457; + localctx.group_max_requests = this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 5460; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.GROUP_MAX_REQUESTS || _la===TSqlParser.IMPORTANCE || _la===TSqlParser.MAX_DOP || ((((_la - 683)) & ~0x1f) == 0 && ((1 << (_la - 683)) & ((1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 683)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 683)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 683)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 5462; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 5470; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,655,this._ctx); + if(la_===1) { + this.state = 5465; + this.match(TSqlParser.USING); + this.state = 5468; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,654,this._ctx); + switch(la_) { + case 1: + this.state = 5466; + localctx.workload_group_pool_name = this.id(); + break; + + case 2: + this.state = 5467; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + break; + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_workload_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_workload_group; + this.workload_group_group_name = null; // IdContext + this.request_max_memory_grant = null; // Token + this.request_max_cpu_time_sec = null; // Token + this.request_memory_grant_timeout_sec = null; // Token + this.max_dop = null; // Token + this.group_max_requests = null; // Token + this.workload_group_pool_name = null; // IdContext + this.external_pool_name = null; // IdContext + return this; +} + +Create_workload_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_workload_groupContext.prototype.constructor = Create_workload_groupContext; + +Create_workload_groupContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_workload_groupContext.prototype.WORKLOAD = function() { + return this.getToken(TSqlParser.WORKLOAD, 0); +}; + +Create_workload_groupContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Create_workload_groupContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_workload_groupContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_workload_groupContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_workload_groupContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_workload_groupContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Create_workload_groupContext.prototype.IMPORTANCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.IMPORTANCE); + } else { + return this.getToken(TSqlParser.IMPORTANCE, i); + } +}; + + +Create_workload_groupContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_workload_groupContext.prototype.REQUEST_MAX_MEMORY_GRANT_PERCENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT); + } else { + return this.getToken(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT, i); + } +}; + + +Create_workload_groupContext.prototype.REQUEST_MAX_CPU_TIME_SEC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MAX_CPU_TIME_SEC); + } else { + return this.getToken(TSqlParser.REQUEST_MAX_CPU_TIME_SEC, i); + } +}; + + +Create_workload_groupContext.prototype.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC); + } else { + return this.getToken(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC, i); + } +}; + + +Create_workload_groupContext.prototype.MAX_DOP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_DOP); + } else { + return this.getToken(TSqlParser.MAX_DOP, i); + } +}; + + +Create_workload_groupContext.prototype.GROUP_MAX_REQUESTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GROUP_MAX_REQUESTS); + } else { + return this.getToken(TSqlParser.GROUP_MAX_REQUESTS, i); + } +}; + + +Create_workload_groupContext.prototype.DEFAULT_DOUBLE_QUOTE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_DOUBLE_QUOTE); + } else { + return this.getToken(TSqlParser.DEFAULT_DOUBLE_QUOTE, i); + } +}; + + +Create_workload_groupContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_workload_groupContext.prototype.LOW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOW); + } else { + return this.getToken(TSqlParser.LOW, i); + } +}; + + +Create_workload_groupContext.prototype.MEDIUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIUM); + } else { + return this.getToken(TSqlParser.MEDIUM, i); + } +}; + + +Create_workload_groupContext.prototype.HIGH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.HIGH); + } else { + return this.getToken(TSqlParser.HIGH, i); + } +}; + + +Create_workload_groupContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_workload_groupContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_workload_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_workload_group(this); + } +}; + +Create_workload_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_workload_group(this); + } +}; + +Create_workload_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_workload_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_workload_groupContext = Create_workload_groupContext; + +TSqlParser.prototype.create_workload_group = function() { + + var localctx = new Create_workload_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 408, TSqlParser.RULE_create_workload_group); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5472; + this.match(TSqlParser.CREATE); + this.state = 5473; + this.match(TSqlParser.WORKLOAD); + this.state = 5474; + this.match(TSqlParser.GROUP); + this.state = 5475; + localctx.workload_group_group_name = this.id(); + this.state = 5507; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,660,this._ctx); + if(la_===1) { + this.state = 5476; + this.match(TSqlParser.WITH); + this.state = 5477; + this.match(TSqlParser.LR_BRACKET); + this.state = 5502; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5502; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,658,this._ctx); + switch(la_) { + case 1: + this.state = 5478; + this.match(TSqlParser.IMPORTANCE); + this.state = 5479; + this.match(TSqlParser.EQUAL); + this.state = 5480; + _la = this._input.LA(1); + if(!(_la===TSqlParser.HIGH || _la===TSqlParser.LOW || _la===TSqlParser.MEDIUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 5482; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5481; + this.match(TSqlParser.COMMA); + } + + this.state = 5484; + this.match(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT); + this.state = 5485; + this.match(TSqlParser.EQUAL); + this.state = 5486; + localctx.request_max_memory_grant = this.match(TSqlParser.DECIMAL); + break; + + case 3: + this.state = 5488; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5487; + this.match(TSqlParser.COMMA); + } + + this.state = 5490; + this.match(TSqlParser.REQUEST_MAX_CPU_TIME_SEC); + this.state = 5491; + this.match(TSqlParser.EQUAL); + this.state = 5492; + localctx.request_max_cpu_time_sec = this.match(TSqlParser.DECIMAL); + break; + + case 4: + this.state = 5493; + this.match(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC); + this.state = 5494; + this.match(TSqlParser.EQUAL); + this.state = 5495; + localctx.request_memory_grant_timeout_sec = this.match(TSqlParser.DECIMAL); + break; + + case 5: + this.state = 5496; + this.match(TSqlParser.MAX_DOP); + this.state = 5497; + this.match(TSqlParser.EQUAL); + this.state = 5498; + localctx.max_dop = this.match(TSqlParser.DECIMAL); + break; + + case 6: + this.state = 5499; + this.match(TSqlParser.GROUP_MAX_REQUESTS); + this.state = 5500; + this.match(TSqlParser.EQUAL); + this.state = 5501; + localctx.group_max_requests = this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 5504; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.GROUP_MAX_REQUESTS || _la===TSqlParser.IMPORTANCE || _la===TSqlParser.MAX_DOP || ((((_la - 683)) & ~0x1f) == 0 && ((1 << (_la - 683)) & ((1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 683)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 683)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 683)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 5506; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 5522; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,664,this._ctx); + if(la_===1) { + this.state = 5509; + this.match(TSqlParser.USING); + this.state = 5512; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,661,this._ctx); + if(la_===1) { + this.state = 5510; + localctx.workload_group_pool_name = this.id(); + + } else if(la_===2) { + this.state = 5511; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + + } + this.state = 5520; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,663,this._ctx); + if(la_===1) { + this.state = 5515; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5514; + this.match(TSqlParser.COMMA); + } + + this.state = 5517; + this.match(TSqlParser.EXTERNAL); + this.state = 5518; + localctx.external_pool_name = this.id(); + + } else if(la_===2) { + this.state = 5519; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_xml_schema_collectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_xml_schema_collection; + this.relational_schema = null; // IdContext + this.sql_identifier = null; // IdContext + return this; +} + +Create_xml_schema_collectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_xml_schema_collectionContext.prototype.constructor = Create_xml_schema_collectionContext; + +Create_xml_schema_collectionContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_xml_schema_collectionContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Create_xml_schema_collectionContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Create_xml_schema_collectionContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Create_xml_schema_collectionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_xml_schema_collectionContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_xml_schema_collectionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_xml_schema_collectionContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Create_xml_schema_collectionContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_xml_schema_collectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_xml_schema_collection(this); + } +}; + +Create_xml_schema_collectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_xml_schema_collection(this); + } +}; + +Create_xml_schema_collectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_xml_schema_collection(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_xml_schema_collectionContext = Create_xml_schema_collectionContext; + +TSqlParser.prototype.create_xml_schema_collection = function() { + + var localctx = new Create_xml_schema_collectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 410, TSqlParser.RULE_create_xml_schema_collection); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5524; + this.match(TSqlParser.CREATE); + this.state = 5525; + this.match(TSqlParser.XML); + this.state = 5526; + this.match(TSqlParser.SCHEMA); + this.state = 5527; + this.match(TSqlParser.COLLECTION); + this.state = 5531; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,665,this._ctx); + if(la_===1) { + this.state = 5528; + localctx.relational_schema = this.id(); + this.state = 5529; + this.match(TSqlParser.DOT); + + } + this.state = 5533; + localctx.sql_identifier = this.id(); + this.state = 5534; + this.match(TSqlParser.AS); + this.state = 5538; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 5535; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5536; + this.id(); + break; + case TSqlParser.LOCAL_ID: + this.state = 5537; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_queueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_queue; + this.queue_name = null; // IdContext + this.filegroup = null; // IdContext + return this; +} + +Create_queueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_queueContext.prototype.constructor = Create_queueContext; + +Create_queueContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_queueContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Create_queueContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Create_queueContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_queueContext.prototype.queue_settings = function() { + return this.getTypedRuleContext(Queue_settingsContext,0); +}; + +Create_queueContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_queueContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Create_queueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_queue(this); + } +}; + +Create_queueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_queue(this); + } +}; + +Create_queueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_queue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_queueContext = Create_queueContext; + +TSqlParser.prototype.create_queue = function() { + + var localctx = new Create_queueContext(this, this._ctx, this.state); + this.enterRule(localctx, 412, TSqlParser.RULE_create_queue); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5540; + this.match(TSqlParser.CREATE); + this.state = 5541; + this.match(TSqlParser.QUEUE); + this.state = 5544; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,667,this._ctx); + switch(la_) { + case 1: + this.state = 5542; + this.full_table_name(); + break; + + case 2: + this.state = 5543; + localctx.queue_name = this.id(); + break; + + } + this.state = 5547; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,668,this._ctx); + if(la_===1) { + this.state = 5546; + this.queue_settings(); + + } + this.state = 5552; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,669,this._ctx); + if(la_===1) { + this.state = 5549; + this.match(TSqlParser.ON); + this.state = 5550; + localctx.filegroup = this.id(); + + } else if(la_===2) { + this.state = 5551; + this.match(TSqlParser.DEFAULT); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Queue_settingsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_queue_settings; + this.max_readers = null; // Token + this.user_name = null; // Token + return this; +} + +Queue_settingsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Queue_settingsContext.prototype.constructor = Queue_settingsContext; + +Queue_settingsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Queue_settingsContext.prototype.STATUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATUS); + } else { + return this.getToken(TSqlParser.STATUS, i); + } +}; + + +Queue_settingsContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Queue_settingsContext.prototype.RETENTION = function() { + return this.getToken(TSqlParser.RETENTION, 0); +}; + +Queue_settingsContext.prototype.ACTIVATION = function() { + return this.getToken(TSqlParser.ACTIVATION, 0); +}; + +Queue_settingsContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Queue_settingsContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Queue_settingsContext.prototype.POISON_MESSAGE_HANDLING = function() { + return this.getToken(TSqlParser.POISON_MESSAGE_HANDLING, 0); +}; + +Queue_settingsContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Queue_settingsContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Queue_settingsContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Queue_settingsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Queue_settingsContext.prototype.PROCEDURE_NAME = function() { + return this.getToken(TSqlParser.PROCEDURE_NAME, 0); +}; + +Queue_settingsContext.prototype.func_proc_name_database_schema = function() { + return this.getTypedRuleContext(Func_proc_name_database_schemaContext,0); +}; + +Queue_settingsContext.prototype.MAX_QUEUE_READERS = function() { + return this.getToken(TSqlParser.MAX_QUEUE_READERS, 0); +}; + +Queue_settingsContext.prototype.EXECUTE = function() { + return this.getToken(TSqlParser.EXECUTE, 0); +}; + +Queue_settingsContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Queue_settingsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Queue_settingsContext.prototype.SELF = function() { + return this.getToken(TSqlParser.SELF, 0); +}; + +Queue_settingsContext.prototype.OWNER = function() { + return this.getToken(TSqlParser.OWNER, 0); +}; + +Queue_settingsContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Queue_settingsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQueue_settings(this); + } +}; + +Queue_settingsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQueue_settings(this); + } +}; + +Queue_settingsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQueue_settings(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Queue_settingsContext = Queue_settingsContext; + +TSqlParser.prototype.queue_settings = function() { + + var localctx = new Queue_settingsContext(this, this._ctx, this.state); + this.enterRule(localctx, 414, TSqlParser.RULE_queue_settings); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5554; + this.match(TSqlParser.WITH); + this.state = 5561; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,671,this._ctx); + if(la_===1) { + this.state = 5555; + this.match(TSqlParser.STATUS); + this.state = 5556; + this.match(TSqlParser.EQUAL); + this.state = 5557; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5559; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5558; + this.match(TSqlParser.COMMA); + } + + + } + this.state = 5569; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,673,this._ctx); + if(la_===1) { + this.state = 5563; + this.match(TSqlParser.RETENTION); + this.state = 5564; + this.match(TSqlParser.EQUAL); + this.state = 5565; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5567; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5566; + this.match(TSqlParser.COMMA); + } + + + } + this.state = 5616; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,685,this._ctx); + if(la_===1) { + this.state = 5571; + this.match(TSqlParser.ACTIVATION); + this.state = 5572; + this.match(TSqlParser.LR_BRACKET); + this.state = 5610; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EXECUTE: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.STATUS: + case TSqlParser.RR_BRACKET: + this.state = 5579; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.STATUS) { + this.state = 5573; + this.match(TSqlParser.STATUS); + this.state = 5574; + this.match(TSqlParser.EQUAL); + this.state = 5575; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5577; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5576; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 5587; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PROCEDURE_NAME) { + this.state = 5581; + this.match(TSqlParser.PROCEDURE_NAME); + this.state = 5582; + this.match(TSqlParser.EQUAL); + this.state = 5583; + this.func_proc_name_database_schema(); + this.state = 5585; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5584; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 5595; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAX_QUEUE_READERS) { + this.state = 5589; + this.match(TSqlParser.MAX_QUEUE_READERS); + this.state = 5590; + this.match(TSqlParser.EQUAL); + this.state = 5591; + localctx.max_readers = this.match(TSqlParser.DECIMAL); + this.state = 5593; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5592; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 5607; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EXECUTE) { + this.state = 5597; + this.match(TSqlParser.EXECUTE); + this.state = 5598; + this.match(TSqlParser.AS); + this.state = 5602; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SELF: + this.state = 5599; + this.match(TSqlParser.SELF); + break; + case TSqlParser.STRING: + this.state = 5600; + localctx.user_name = this.match(TSqlParser.STRING); + break; + case TSqlParser.OWNER: + this.state = 5601; + this.match(TSqlParser.OWNER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5605; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5604; + this.match(TSqlParser.COMMA); + } + + } + + break; + case TSqlParser.DROP: + this.state = 5609; + this.match(TSqlParser.DROP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5612; + this.match(TSqlParser.RR_BRACKET); + this.state = 5614; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5613; + this.match(TSqlParser.COMMA); + } + + + } + this.state = 5625; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,686,this._ctx); + if(la_===1) { + this.state = 5618; + this.match(TSqlParser.POISON_MESSAGE_HANDLING); + this.state = 5619; + this.match(TSqlParser.LR_BRACKET); + + this.state = 5620; + this.match(TSqlParser.STATUS); + this.state = 5621; + this.match(TSqlParser.EQUAL); + this.state = 5622; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5624; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_queueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_queue; + this.queue_name = null; // IdContext + return this; +} + +Alter_queueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_queueContext.prototype.constructor = Alter_queueContext; + +Alter_queueContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_queueContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Alter_queueContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Alter_queueContext.prototype.queue_settings = function() { + return this.getTypedRuleContext(Queue_settingsContext,0); +}; + +Alter_queueContext.prototype.queue_action = function() { + return this.getTypedRuleContext(Queue_actionContext,0); +}; + +Alter_queueContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_queueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_queue(this); + } +}; + +Alter_queueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_queue(this); + } +}; + +Alter_queueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_queue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_queueContext = Alter_queueContext; + +TSqlParser.prototype.alter_queue = function() { + + var localctx = new Alter_queueContext(this, this._ctx, this.state); + this.enterRule(localctx, 416, TSqlParser.RULE_alter_queue); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5627; + this.match(TSqlParser.ALTER); + this.state = 5628; + this.match(TSqlParser.QUEUE); + this.state = 5631; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,687,this._ctx); + switch(la_) { + case 1: + this.state = 5629; + this.full_table_name(); + break; + + case 2: + this.state = 5630; + localctx.queue_name = this.id(); + break; + + } + this.state = 5635; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 5633; + this.queue_settings(); + break; + case TSqlParser.MOVE: + case TSqlParser.REBUILD: + case TSqlParser.REORGANIZE: + this.state = 5634; + this.queue_action(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Queue_actionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_queue_action; + return this; +} + +Queue_actionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Queue_actionContext.prototype.constructor = Queue_actionContext; + +Queue_actionContext.prototype.REBUILD = function() { + return this.getToken(TSqlParser.REBUILD, 0); +}; + +Queue_actionContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Queue_actionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Queue_actionContext.prototype.queue_rebuild_options = function() { + return this.getTypedRuleContext(Queue_rebuild_optionsContext,0); +}; + +Queue_actionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Queue_actionContext.prototype.REORGANIZE = function() { + return this.getToken(TSqlParser.REORGANIZE, 0); +}; + +Queue_actionContext.prototype.LOB_COMPACTION = function() { + return this.getToken(TSqlParser.LOB_COMPACTION, 0); +}; + +Queue_actionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Queue_actionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Queue_actionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Queue_actionContext.prototype.MOVE = function() { + return this.getToken(TSqlParser.MOVE, 0); +}; + +Queue_actionContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Queue_actionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Queue_actionContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Queue_actionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQueue_action(this); + } +}; + +Queue_actionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQueue_action(this); + } +}; + +Queue_actionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQueue_action(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Queue_actionContext = Queue_actionContext; + +TSqlParser.prototype.queue_action = function() { + + var localctx = new Queue_actionContext(this, this._ctx, this.state); + this.enterRule(localctx, 418, TSqlParser.RULE_queue_action); + var _la = 0; // Token type + try { + this.state = 5658; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REBUILD: + this.enterOuterAlt(localctx, 1); + this.state = 5637; + this.match(TSqlParser.REBUILD); + this.state = 5643; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,689,this._ctx); + if(la_===1) { + this.state = 5638; + this.match(TSqlParser.WITH); + this.state = 5639; + this.match(TSqlParser.LR_BRACKET); + this.state = 5640; + this.queue_rebuild_options(); + this.state = 5641; + this.match(TSqlParser.RR_BRACKET); + + } + break; + case TSqlParser.REORGANIZE: + this.enterOuterAlt(localctx, 2); + this.state = 5645; + this.match(TSqlParser.REORGANIZE); + this.state = 5650; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,690,this._ctx); + if(la_===1) { + this.state = 5646; + this.match(TSqlParser.WITH); + this.state = 5647; + this.match(TSqlParser.LOB_COMPACTION); + this.state = 5648; + this.match(TSqlParser.EQUAL); + this.state = 5649; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case TSqlParser.MOVE: + this.enterOuterAlt(localctx, 3); + this.state = 5652; + this.match(TSqlParser.MOVE); + this.state = 5653; + this.match(TSqlParser.TO); + this.state = 5656; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5654; + this.id(); + break; + case TSqlParser.DEFAULT: + this.state = 5655; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Queue_rebuild_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_queue_rebuild_options; + return this; +} + +Queue_rebuild_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Queue_rebuild_optionsContext.prototype.constructor = Queue_rebuild_optionsContext; + +Queue_rebuild_optionsContext.prototype.MAXDOP = function() { + return this.getToken(TSqlParser.MAXDOP, 0); +}; + +Queue_rebuild_optionsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Queue_rebuild_optionsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Queue_rebuild_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQueue_rebuild_options(this); + } +}; + +Queue_rebuild_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQueue_rebuild_options(this); + } +}; + +Queue_rebuild_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQueue_rebuild_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Queue_rebuild_optionsContext = Queue_rebuild_optionsContext; + +TSqlParser.prototype.queue_rebuild_options = function() { + + var localctx = new Queue_rebuild_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 420, TSqlParser.RULE_queue_rebuild_options); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5660; + this.match(TSqlParser.MAXDOP); + this.state = 5661; + this.match(TSqlParser.EQUAL); + this.state = 5662; + this.match(TSqlParser.DECIMAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_contractContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_contract; + this.owner_name = null; // IdContext + this.message_type_name = null; // IdContext + return this; +} + +Create_contractContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_contractContext.prototype.constructor = Create_contractContext; + +Create_contractContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_contractContext.prototype.CONTRACT = function() { + return this.getToken(TSqlParser.CONTRACT, 0); +}; + +Create_contractContext.prototype.contract_name = function() { + return this.getTypedRuleContext(Contract_nameContext,0); +}; + +Create_contractContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_contractContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_contractContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_contractContext.prototype.SENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SENT); + } else { + return this.getToken(TSqlParser.SENT, i); + } +}; + + +Create_contractContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Create_contractContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_contractContext.prototype.INITIATOR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INITIATOR); + } else { + return this.getToken(TSqlParser.INITIATOR, i); + } +}; + + +Create_contractContext.prototype.TARGET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TARGET); + } else { + return this.getToken(TSqlParser.TARGET, i); + } +}; + + +Create_contractContext.prototype.ANY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ANY); + } else { + return this.getToken(TSqlParser.ANY, i); + } +}; + + +Create_contractContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT); + } else { + return this.getToken(TSqlParser.DEFAULT, i); + } +}; + + +Create_contractContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_contractContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_contract(this); + } +}; + +Create_contractContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_contract(this); + } +}; + +Create_contractContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_contract(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_contractContext = Create_contractContext; + +TSqlParser.prototype.create_contract = function() { + + var localctx = new Create_contractContext(this, this._ctx, this.state); + this.enterRule(localctx, 422, TSqlParser.RULE_create_contract); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5664; + this.match(TSqlParser.CREATE); + this.state = 5665; + this.match(TSqlParser.CONTRACT); + this.state = 5666; + this.contract_name(); + this.state = 5669; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 5667; + this.match(TSqlParser.AUTHORIZATION); + this.state = 5668; + localctx.owner_name = this.id(); + } + + this.state = 5671; + this.match(TSqlParser.LR_BRACKET); + this.state = 5682; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5674; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5672; + localctx.message_type_name = this.id(); + break; + case TSqlParser.DEFAULT: + this.state = 5673; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5676; + this.match(TSqlParser.SENT); + this.state = 5677; + this.match(TSqlParser.BY); + this.state = 5678; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ANY || _la===TSqlParser.TARGET || _la===TSqlParser.INITIATOR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5680; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5679; + this.match(TSqlParser.COMMA); + } + + this.state = 5684; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || _la===TSqlParser.DEFAULT || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)); + this.state = 5686; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Conversation_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_conversation_statement; + return this; +} + +Conversation_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Conversation_statementContext.prototype.constructor = Conversation_statementContext; + +Conversation_statementContext.prototype.begin_conversation_timer = function() { + return this.getTypedRuleContext(Begin_conversation_timerContext,0); +}; + +Conversation_statementContext.prototype.begin_conversation_dialog = function() { + return this.getTypedRuleContext(Begin_conversation_dialogContext,0); +}; + +Conversation_statementContext.prototype.end_conversation = function() { + return this.getTypedRuleContext(End_conversationContext,0); +}; + +Conversation_statementContext.prototype.get_conversation = function() { + return this.getTypedRuleContext(Get_conversationContext,0); +}; + +Conversation_statementContext.prototype.send_conversation = function() { + return this.getTypedRuleContext(Send_conversationContext,0); +}; + +Conversation_statementContext.prototype.waitfor_conversation = function() { + return this.getTypedRuleContext(Waitfor_conversationContext,0); +}; + +Conversation_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterConversation_statement(this); + } +}; + +Conversation_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitConversation_statement(this); + } +}; + +Conversation_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitConversation_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Conversation_statementContext = Conversation_statementContext; + +TSqlParser.prototype.conversation_statement = function() { + + var localctx = new Conversation_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 424, TSqlParser.RULE_conversation_statement); + try { + this.state = 5694; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,697,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5688; + this.begin_conversation_timer(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5689; + this.begin_conversation_dialog(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5690; + this.end_conversation(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5691; + this.get_conversation(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 5692; + this.send_conversation(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 5693; + this.waitfor_conversation(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Message_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_message_statement; + this.message_type_name = null; // IdContext + this.owner_name = null; // IdContext + this.schema_collection_name = null; // IdContext + return this; +} + +Message_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Message_statementContext.prototype.constructor = Message_statementContext; + +Message_statementContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Message_statementContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Message_statementContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Message_statementContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Message_statementContext.prototype.VALIDATION = function() { + return this.getToken(TSqlParser.VALIDATION, 0); +}; + +Message_statementContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Message_statementContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Message_statementContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Message_statementContext.prototype.EMPTY = function() { + return this.getToken(TSqlParser.EMPTY, 0); +}; + +Message_statementContext.prototype.WELL_FORMED_XML = function() { + return this.getToken(TSqlParser.WELL_FORMED_XML, 0); +}; + +Message_statementContext.prototype.VALID_XML = function() { + return this.getToken(TSqlParser.VALID_XML, 0); +}; + +Message_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Message_statementContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Message_statementContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Message_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMessage_statement(this); + } +}; + +Message_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMessage_statement(this); + } +}; + +Message_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMessage_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Message_statementContext = Message_statementContext; + +TSqlParser.prototype.message_statement = function() { + + var localctx = new Message_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 426, TSqlParser.RULE_message_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5696; + this.match(TSqlParser.CREATE); + this.state = 5697; + this.match(TSqlParser.MESSAGE); + this.state = 5698; + this.match(TSqlParser.TYPE); + this.state = 5699; + localctx.message_type_name = this.id(); + this.state = 5702; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 5700; + this.match(TSqlParser.AUTHORIZATION); + this.state = 5701; + localctx.owner_name = this.id(); + } + + this.state = 5704; + this.match(TSqlParser.VALIDATION); + this.state = 5705; + this.match(TSqlParser.EQUAL); + this.state = 5714; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 5706; + this.match(TSqlParser.NONE); + break; + case TSqlParser.EMPTY: + this.state = 5707; + this.match(TSqlParser.EMPTY); + break; + case TSqlParser.WELL_FORMED_XML: + this.state = 5708; + this.match(TSqlParser.WELL_FORMED_XML); + break; + case TSqlParser.VALID_XML: + this.state = 5709; + this.match(TSqlParser.VALID_XML); + this.state = 5710; + this.match(TSqlParser.WITH); + this.state = 5711; + this.match(TSqlParser.SCHEMA); + this.state = 5712; + this.match(TSqlParser.COLLECTION); + this.state = 5713; + localctx.schema_collection_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Merge_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_merge_statement; + return this; +} + +Merge_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Merge_statementContext.prototype.constructor = Merge_statementContext; + +Merge_statementContext.prototype.MERGE = function() { + return this.getToken(TSqlParser.MERGE, 0); +}; + +Merge_statementContext.prototype.ddl_object = function() { + return this.getTypedRuleContext(Ddl_objectContext,0); +}; + +Merge_statementContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Merge_statementContext.prototype.table_sources = function() { + return this.getTypedRuleContext(Table_sourcesContext,0); +}; + +Merge_statementContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Merge_statementContext.prototype.search_condition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_conditionContext); + } else { + return this.getTypedRuleContext(Search_conditionContext,i); + } +}; + +Merge_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Merge_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Merge_statementContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Merge_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Merge_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Merge_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Merge_statementContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Merge_statementContext.prototype.insert_with_table_hints = function() { + return this.getTypedRuleContext(Insert_with_table_hintsContext,0); +}; + +Merge_statementContext.prototype.as_table_alias = function() { + return this.getTypedRuleContext(As_table_aliasContext,0); +}; + +Merge_statementContext.prototype.WHEN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WHEN); + } else { + return this.getToken(TSqlParser.WHEN, i); + } +}; + + +Merge_statementContext.prototype.MATCHED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MATCHED); + } else { + return this.getToken(TSqlParser.MATCHED, i); + } +}; + + +Merge_statementContext.prototype.THEN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.THEN); + } else { + return this.getToken(TSqlParser.THEN, i); + } +}; + + +Merge_statementContext.prototype.merge_matched = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Merge_matchedContext); + } else { + return this.getTypedRuleContext(Merge_matchedContext,i); + } +}; + +Merge_statementContext.prototype.NOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOT); + } else { + return this.getToken(TSqlParser.NOT, i); + } +}; + + +Merge_statementContext.prototype.merge_not_matched = function() { + return this.getTypedRuleContext(Merge_not_matchedContext,0); +}; + +Merge_statementContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Merge_statementContext.prototype.SOURCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SOURCE); + } else { + return this.getToken(TSqlParser.SOURCE, i); + } +}; + + +Merge_statementContext.prototype.output_clause = function() { + return this.getTypedRuleContext(Output_clauseContext,0); +}; + +Merge_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Merge_statementContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Merge_statementContext.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AND); + } else { + return this.getToken(TSqlParser.AND, i); + } +}; + + +Merge_statementContext.prototype.TARGET = function() { + return this.getToken(TSqlParser.TARGET, 0); +}; + +Merge_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMerge_statement(this); + } +}; + +Merge_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMerge_statement(this); + } +}; + +Merge_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMerge_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Merge_statementContext = Merge_statementContext; + +TSqlParser.prototype.merge_statement = function() { + + var localctx = new Merge_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 428, TSqlParser.RULE_merge_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5717; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5716; + this.with_expression(); + } + + this.state = 5719; + this.match(TSqlParser.MERGE); + this.state = 5727; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TOP) { + this.state = 5720; + this.match(TSqlParser.TOP); + this.state = 5721; + this.match(TSqlParser.LR_BRACKET); + this.state = 5722; + this.expression(0); + this.state = 5723; + this.match(TSqlParser.RR_BRACKET); + this.state = 5725; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PERCENT) { + this.state = 5724; + this.match(TSqlParser.PERCENT); + } + + } + + this.state = 5730; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 5729; + this.match(TSqlParser.INTO); + } + + this.state = 5732; + this.ddl_object(); + this.state = 5734; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5733; + this.insert_with_table_hints(); + } + + this.state = 5737; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,705,this._ctx); + if(la_===1) { + this.state = 5736; + this.as_table_alias(); + + } + this.state = 5739; + this.match(TSqlParser.USING); + this.state = 5740; + this.table_sources(); + this.state = 5741; + this.match(TSqlParser.ON); + this.state = 5742; + this.search_condition(); + this.state = 5753; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,707,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5743; + this.match(TSqlParser.WHEN); + this.state = 5744; + this.match(TSqlParser.MATCHED); + this.state = 5747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AND) { + this.state = 5745; + this.match(TSqlParser.AND); + this.state = 5746; + this.search_condition(); + } + + this.state = 5749; + this.match(TSqlParser.THEN); + this.state = 5750; + this.merge_matched(); + } + this.state = 5755; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,707,this._ctx); + } + + this.state = 5769; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,710,this._ctx); + if(la_===1) { + this.state = 5756; + this.match(TSqlParser.WHEN); + this.state = 5757; + this.match(TSqlParser.NOT); + this.state = 5758; + this.match(TSqlParser.MATCHED); + this.state = 5761; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.BY) { + this.state = 5759; + this.match(TSqlParser.BY); + this.state = 5760; + this.match(TSqlParser.TARGET); + } + + this.state = 5765; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AND) { + this.state = 5763; + this.match(TSqlParser.AND); + this.state = 5764; + this.search_condition(); + } + + this.state = 5767; + this.match(TSqlParser.THEN); + this.state = 5768; + this.merge_not_matched(); + + } + this.state = 5784; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.WHEN) { + this.state = 5771; + this.match(TSqlParser.WHEN); + this.state = 5772; + this.match(TSqlParser.NOT); + this.state = 5773; + this.match(TSqlParser.MATCHED); + this.state = 5774; + this.match(TSqlParser.BY); + this.state = 5775; + this.match(TSqlParser.SOURCE); + this.state = 5778; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AND) { + this.state = 5776; + this.match(TSqlParser.AND); + this.state = 5777; + this.search_condition(); + } + + this.state = 5780; + this.match(TSqlParser.THEN); + this.state = 5781; + this.merge_matched(); + this.state = 5786; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5788; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OUTPUT) { + this.state = 5787; + this.output_clause(); + } + + this.state = 5791; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OPTION) { + this.state = 5790; + this.option_clause(); + } + + this.state = 5793; + this.match(TSqlParser.SEMI); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Merge_matchedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_merge_matched; + return this; +} + +Merge_matchedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Merge_matchedContext.prototype.constructor = Merge_matchedContext; + +Merge_matchedContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Merge_matchedContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Merge_matchedContext.prototype.update_elem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Update_elemContext); + } else { + return this.getTypedRuleContext(Update_elemContext,i); + } +}; + +Merge_matchedContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Merge_matchedContext.prototype.DELETE = function() { + return this.getToken(TSqlParser.DELETE, 0); +}; + +Merge_matchedContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMerge_matched(this); + } +}; + +Merge_matchedContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMerge_matched(this); + } +}; + +Merge_matchedContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMerge_matched(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Merge_matchedContext = Merge_matchedContext; + +TSqlParser.prototype.merge_matched = function() { + + var localctx = new Merge_matchedContext(this, this._ctx, this.state); + this.enterRule(localctx, 430, TSqlParser.RULE_merge_matched); + var _la = 0; // Token type + try { + this.state = 5806; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UPDATE: + this.enterOuterAlt(localctx, 1); + this.state = 5795; + this.match(TSqlParser.UPDATE); + this.state = 5796; + this.match(TSqlParser.SET); + this.state = 5797; + this.update_elem(); + this.state = 5802; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 5798; + this.match(TSqlParser.COMMA); + this.state = 5799; + this.update_elem(); + this.state = 5804; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case TSqlParser.DELETE: + this.enterOuterAlt(localctx, 2); + this.state = 5805; + this.match(TSqlParser.DELETE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Merge_not_matchedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_merge_not_matched; + return this; +} + +Merge_not_matchedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Merge_not_matchedContext.prototype.constructor = Merge_not_matchedContext; + +Merge_not_matchedContext.prototype.INSERT = function() { + return this.getToken(TSqlParser.INSERT, 0); +}; + +Merge_not_matchedContext.prototype.table_value_constructor = function() { + return this.getTypedRuleContext(Table_value_constructorContext,0); +}; + +Merge_not_matchedContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Merge_not_matchedContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Merge_not_matchedContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Merge_not_matchedContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Merge_not_matchedContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Merge_not_matchedContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMerge_not_matched(this); + } +}; + +Merge_not_matchedContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMerge_not_matched(this); + } +}; + +Merge_not_matchedContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMerge_not_matched(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Merge_not_matchedContext = Merge_not_matchedContext; + +TSqlParser.prototype.merge_not_matched = function() { + + var localctx = new Merge_not_matchedContext(this, this._ctx, this.state); + this.enterRule(localctx, 432, TSqlParser.RULE_merge_not_matched); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5808; + this.match(TSqlParser.INSERT); + this.state = 5813; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 5809; + this.match(TSqlParser.LR_BRACKET); + this.state = 5810; + this.column_name_list(); + this.state = 5811; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 5818; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.VALUES: + this.state = 5815; + this.table_value_constructor(); + break; + case TSqlParser.DEFAULT: + this.state = 5816; + this.match(TSqlParser.DEFAULT); + this.state = 5817; + this.match(TSqlParser.VALUES); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Delete_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_delete_statement; + this.cursor_var = null; // Token + return this; +} + +Delete_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Delete_statementContext.prototype.constructor = Delete_statementContext; + +Delete_statementContext.prototype.DELETE = function() { + return this.getToken(TSqlParser.DELETE, 0); +}; + +Delete_statementContext.prototype.delete_statement_from = function() { + return this.getTypedRuleContext(Delete_statement_fromContext,0); +}; + +Delete_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Delete_statementContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Delete_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Delete_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Delete_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Delete_statementContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Delete_statementContext.prototype.FROM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FROM); + } else { + return this.getToken(TSqlParser.FROM, i); + } +}; + + +Delete_statementContext.prototype.insert_with_table_hints = function() { + return this.getTypedRuleContext(Insert_with_table_hintsContext,0); +}; + +Delete_statementContext.prototype.output_clause = function() { + return this.getTypedRuleContext(Output_clauseContext,0); +}; + +Delete_statementContext.prototype.table_sources = function() { + return this.getTypedRuleContext(Table_sourcesContext,0); +}; + +Delete_statementContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Delete_statementContext.prototype.for_clause = function() { + return this.getTypedRuleContext(For_clauseContext,0); +}; + +Delete_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Delete_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Delete_statementContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Delete_statementContext.prototype.CURRENT = function() { + return this.getToken(TSqlParser.CURRENT, 0); +}; + +Delete_statementContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Delete_statementContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Delete_statementContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Delete_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Delete_statementContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Delete_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDelete_statement(this); + } +}; + +Delete_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDelete_statement(this); + } +}; + +Delete_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDelete_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Delete_statementContext = Delete_statementContext; + +TSqlParser.prototype.delete_statement = function() { + + var localctx = new Delete_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 434, TSqlParser.RULE_delete_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5821; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5820; + this.with_expression(); + } + + this.state = 5823; + this.match(TSqlParser.DELETE); + this.state = 5833; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,721,this._ctx); + if(la_===1) { + this.state = 5824; + this.match(TSqlParser.TOP); + this.state = 5825; + this.match(TSqlParser.LR_BRACKET); + this.state = 5826; + this.expression(0); + this.state = 5827; + this.match(TSqlParser.RR_BRACKET); + this.state = 5829; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PERCENT) { + this.state = 5828; + this.match(TSqlParser.PERCENT); + } + + + } else if(la_===2) { + this.state = 5831; + this.match(TSqlParser.TOP); + this.state = 5832; + this.match(TSqlParser.DECIMAL); + + } + this.state = 5836; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 5835; + this.match(TSqlParser.FROM); + } + + this.state = 5838; + this.delete_statement_from(); + this.state = 5840; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,723,this._ctx); + if(la_===1) { + this.state = 5839; + this.insert_with_table_hints(); + + } + this.state = 5843; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,724,this._ctx); + if(la_===1) { + this.state = 5842; + this.output_clause(); + + } + this.state = 5847; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 5845; + this.match(TSqlParser.FROM); + this.state = 5846; + this.table_sources(); + } + + this.state = 5862; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 5849; + this.match(TSqlParser.WHERE); + this.state = 5860; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.CASE: + case TSqlParser.COALESCE: + case TSqlParser.CONVERT: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DEFAULT: + case TSqlParser.EVENTDATA: + case TSqlParser.EXISTS: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.IDENTITY: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.NOT: + case TSqlParser.NULL: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.OVER: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.RIGHT: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.LR_BRACKET: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + case TSqlParser.BIT_NOT: + this.state = 5850; + this.search_condition(); + break; + case TSqlParser.CURRENT: + this.state = 5851; + this.match(TSqlParser.CURRENT); + this.state = 5852; + this.match(TSqlParser.OF); + this.state = 5858; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,727,this._ctx); + switch(la_) { + case 1: + this.state = 5854; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,726,this._ctx); + if(la_===1) { + this.state = 5853; + this.match(TSqlParser.GLOBAL); + + } + this.state = 5856; + this.cursor_name(); + break; + + case 2: + this.state = 5857; + localctx.cursor_var = this.match(TSqlParser.LOCAL_ID); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 5865; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 5864; + this.for_clause(); + } + + this.state = 5868; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OPTION) { + this.state = 5867; + this.option_clause(); + } + + this.state = 5871; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,732,this._ctx); + if(la_===1) { + this.state = 5870; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Delete_statement_fromContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_delete_statement_from; + this.table_var = null; // Token + return this; +} + +Delete_statement_fromContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Delete_statement_fromContext.prototype.constructor = Delete_statement_fromContext; + +Delete_statement_fromContext.prototype.ddl_object = function() { + return this.getTypedRuleContext(Ddl_objectContext,0); +}; + +Delete_statement_fromContext.prototype.table_alias = function() { + return this.getTypedRuleContext(Table_aliasContext,0); +}; + +Delete_statement_fromContext.prototype.rowset_function_limited = function() { + return this.getTypedRuleContext(Rowset_function_limitedContext,0); +}; + +Delete_statement_fromContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Delete_statement_fromContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDelete_statement_from(this); + } +}; + +Delete_statement_fromContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDelete_statement_from(this); + } +}; + +Delete_statement_fromContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDelete_statement_from(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Delete_statement_fromContext = Delete_statement_fromContext; + +TSqlParser.prototype.delete_statement_from = function() { + + var localctx = new Delete_statement_fromContext(this, this._ctx, this.state); + this.enterRule(localctx, 436, TSqlParser.RULE_delete_statement_from); + try { + this.state = 5877; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,733,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5873; + this.ddl_object(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5874; + this.table_alias(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5875; + this.rowset_function_limited(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5876; + localctx.table_var = this.match(TSqlParser.LOCAL_ID); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Insert_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_insert_statement; + return this; +} + +Insert_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Insert_statementContext.prototype.constructor = Insert_statementContext; + +Insert_statementContext.prototype.INSERT = function() { + return this.getToken(TSqlParser.INSERT, 0); +}; + +Insert_statementContext.prototype.insert_statement_value = function() { + return this.getTypedRuleContext(Insert_statement_valueContext,0); +}; + +Insert_statementContext.prototype.ddl_object = function() { + return this.getTypedRuleContext(Ddl_objectContext,0); +}; + +Insert_statementContext.prototype.rowset_function_limited = function() { + return this.getTypedRuleContext(Rowset_function_limitedContext,0); +}; + +Insert_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Insert_statementContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Insert_statementContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Insert_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Insert_statementContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Insert_statementContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Insert_statementContext.prototype.insert_with_table_hints = function() { + return this.getTypedRuleContext(Insert_with_table_hintsContext,0); +}; + +Insert_statementContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Insert_statementContext.prototype.output_clause = function() { + return this.getTypedRuleContext(Output_clauseContext,0); +}; + +Insert_statementContext.prototype.for_clause = function() { + return this.getTypedRuleContext(For_clauseContext,0); +}; + +Insert_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Insert_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Insert_statementContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Insert_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterInsert_statement(this); + } +}; + +Insert_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitInsert_statement(this); + } +}; + +Insert_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitInsert_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Insert_statementContext = Insert_statementContext; + +TSqlParser.prototype.insert_statement = function() { + + var localctx = new Insert_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 438, TSqlParser.RULE_insert_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5880; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5879; + this.with_expression(); + } + + this.state = 5882; + this.match(TSqlParser.INSERT); + this.state = 5890; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TOP) { + this.state = 5883; + this.match(TSqlParser.TOP); + this.state = 5884; + this.match(TSqlParser.LR_BRACKET); + this.state = 5885; + this.expression(0); + this.state = 5886; + this.match(TSqlParser.RR_BRACKET); + this.state = 5888; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PERCENT) { + this.state = 5887; + this.match(TSqlParser.PERCENT); + } + + } + + this.state = 5893; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 5892; + this.match(TSqlParser.INTO); + } + + this.state = 5897; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.ID: + this.state = 5895; + this.ddl_object(); + break; + case TSqlParser.OPENDATASOURCE: + case TSqlParser.OPENQUERY: + this.state = 5896; + this.rowset_function_limited(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5900; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,739,this._ctx); + if(la_===1) { + this.state = 5899; + this.insert_with_table_hints(); + + } + this.state = 5906; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,740,this._ctx); + if(la_===1) { + this.state = 5902; + this.match(TSqlParser.LR_BRACKET); + this.state = 5903; + this.column_name_list(); + this.state = 5904; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 5909; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OUTPUT) { + this.state = 5908; + this.output_clause(); + } + + this.state = 5911; + this.insert_statement_value(); + this.state = 5913; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 5912; + this.for_clause(); + } + + this.state = 5916; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OPTION) { + this.state = 5915; + this.option_clause(); + } + + this.state = 5919; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,744,this._ctx); + if(la_===1) { + this.state = 5918; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Insert_statement_valueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_insert_statement_value; + return this; +} + +Insert_statement_valueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Insert_statement_valueContext.prototype.constructor = Insert_statement_valueContext; + +Insert_statement_valueContext.prototype.table_value_constructor = function() { + return this.getTypedRuleContext(Table_value_constructorContext,0); +}; + +Insert_statement_valueContext.prototype.derived_table = function() { + return this.getTypedRuleContext(Derived_tableContext,0); +}; + +Insert_statement_valueContext.prototype.execute_statement = function() { + return this.getTypedRuleContext(Execute_statementContext,0); +}; + +Insert_statement_valueContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Insert_statement_valueContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Insert_statement_valueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterInsert_statement_value(this); + } +}; + +Insert_statement_valueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitInsert_statement_value(this); + } +}; + +Insert_statement_valueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitInsert_statement_value(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Insert_statement_valueContext = Insert_statement_valueContext; + +TSqlParser.prototype.insert_statement_value = function() { + + var localctx = new Insert_statement_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 440, TSqlParser.RULE_insert_statement_value); + try { + this.state = 5926; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,745,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5921; + this.table_value_constructor(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5922; + this.derived_table(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5923; + this.execute_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5924; + this.match(TSqlParser.DEFAULT); + this.state = 5925; + this.match(TSqlParser.VALUES); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Receive_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_receive_statement; + this.table_variable = null; // IdContext + this.where = null; // Search_conditionContext + return this; +} + +Receive_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Receive_statementContext.prototype.constructor = Receive_statementContext; + +Receive_statementContext.prototype.RECEIVE = function() { + return this.getToken(TSqlParser.RECEIVE, 0); +}; + +Receive_statementContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Receive_statementContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Receive_statementContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Receive_statementContext.prototype.DISTINCT = function() { + return this.getToken(TSqlParser.DISTINCT, 0); +}; + +Receive_statementContext.prototype.top_clause = function() { + return this.getTypedRuleContext(Top_clauseContext,0); +}; + +Receive_statementContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +Receive_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Receive_statementContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Receive_statementContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Receive_statementContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Receive_statementContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Receive_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Receive_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Receive_statementContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Receive_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Receive_statementContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Receive_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterReceive_statement(this); + } +}; + +Receive_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitReceive_statement(this); + } +}; + +Receive_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitReceive_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Receive_statementContext = Receive_statementContext; + +TSqlParser.prototype.receive_statement = function() { + + var localctx = new Receive_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 442, TSqlParser.RULE_receive_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5929; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 5928; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 5931; + this.match(TSqlParser.RECEIVE); + this.state = 5936; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.state = 5932; + this.match(TSqlParser.ALL); + break; + case TSqlParser.DISTINCT: + this.state = 5933; + this.match(TSqlParser.DISTINCT); + break; + case TSqlParser.TOP: + this.state = 5934; + this.top_clause(); + break; + case TSqlParser.STAR: + this.state = 5935; + this.match(TSqlParser.STAR); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5946; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.LOCAL_ID) { + this.state = 5938; + this.match(TSqlParser.LOCAL_ID); + this.state = 5939; + this.match(TSqlParser.EQUAL); + this.state = 5940; + this.expression(0); + this.state = 5942; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5941; + this.match(TSqlParser.COMMA); + } + + this.state = 5948; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5949; + this.match(TSqlParser.FROM); + this.state = 5950; + this.full_table_name(); + this.state = 5956; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 5951; + this.match(TSqlParser.INTO); + this.state = 5952; + localctx.table_variable = this.id(); + + this.state = 5953; + this.match(TSqlParser.WHERE); + this.state = 5954; + localctx.where = this.search_condition(); + } + + this.state = 5959; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RR_BRACKET) { + this.state = 5958; + this.match(TSqlParser.RR_BRACKET); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Select_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_select_statement; + return this; +} + +Select_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Select_statementContext.prototype.constructor = Select_statementContext; + +Select_statementContext.prototype.query_expression = function() { + return this.getTypedRuleContext(Query_expressionContext,0); +}; + +Select_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Select_statementContext.prototype.order_by_clause = function() { + return this.getTypedRuleContext(Order_by_clauseContext,0); +}; + +Select_statementContext.prototype.for_clause = function() { + return this.getTypedRuleContext(For_clauseContext,0); +}; + +Select_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Select_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Select_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSelect_statement(this); + } +}; + +Select_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSelect_statement(this); + } +}; + +Select_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSelect_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Select_statementContext = Select_statementContext; + +TSqlParser.prototype.select_statement = function() { + + var localctx = new Select_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 444, TSqlParser.RULE_select_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5962; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5961; + this.with_expression(); + } + + this.state = 5964; + this.query_expression(); + this.state = 5966; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,753,this._ctx); + if(la_===1) { + this.state = 5965; + this.order_by_clause(); + + } + this.state = 5969; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,754,this._ctx); + if(la_===1) { + this.state = 5968; + this.for_clause(); + + } + this.state = 5972; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,755,this._ctx); + if(la_===1) { + this.state = 5971; + this.option_clause(); + + } + this.state = 5975; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,756,this._ctx); + if(la_===1) { + this.state = 5974; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TimeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_time; + return this; +} + +TimeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TimeContext.prototype.constructor = TimeContext; + +TimeContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +TimeContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +TimeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTime(this); + } +}; + +TimeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTime(this); + } +}; + +TimeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTime(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.TimeContext = TimeContext; + +TSqlParser.prototype.time = function() { + + var localctx = new TimeContext(this, this._ctx, this.state); + this.enterRule(localctx, 446, TSqlParser.RULE_time); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5979; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LOCAL_ID: + this.state = 5977; + this.match(TSqlParser.LOCAL_ID); + break; + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 5978; + this.constant(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Update_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_update_statement; + this.cursor_var = null; // Token + return this; +} + +Update_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Update_statementContext.prototype.constructor = Update_statementContext; + +Update_statementContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Update_statementContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Update_statementContext.prototype.update_elem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Update_elemContext); + } else { + return this.getTypedRuleContext(Update_elemContext,i); + } +}; + +Update_statementContext.prototype.ddl_object = function() { + return this.getTypedRuleContext(Ddl_objectContext,0); +}; + +Update_statementContext.prototype.rowset_function_limited = function() { + return this.getTypedRuleContext(Rowset_function_limitedContext,0); +}; + +Update_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Update_statementContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Update_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Update_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Update_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Update_statementContext.prototype.with_table_hints = function() { + return this.getTypedRuleContext(With_table_hintsContext,0); +}; + +Update_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Update_statementContext.prototype.output_clause = function() { + return this.getTypedRuleContext(Output_clauseContext,0); +}; + +Update_statementContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Update_statementContext.prototype.table_sources = function() { + return this.getTypedRuleContext(Table_sourcesContext,0); +}; + +Update_statementContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Update_statementContext.prototype.for_clause = function() { + return this.getTypedRuleContext(For_clauseContext,0); +}; + +Update_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Update_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Update_statementContext.prototype.search_condition_list = function() { + return this.getTypedRuleContext(Search_condition_listContext,0); +}; + +Update_statementContext.prototype.CURRENT = function() { + return this.getToken(TSqlParser.CURRENT, 0); +}; + +Update_statementContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Update_statementContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Update_statementContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Update_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Update_statementContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Update_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUpdate_statement(this); + } +}; + +Update_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUpdate_statement(this); + } +}; + +Update_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUpdate_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Update_statementContext = Update_statementContext; + +TSqlParser.prototype.update_statement = function() { + + var localctx = new Update_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 448, TSqlParser.RULE_update_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5982; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5981; + this.with_expression(); + } + + this.state = 5984; + this.match(TSqlParser.UPDATE); + this.state = 5992; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TOP) { + this.state = 5985; + this.match(TSqlParser.TOP); + this.state = 5986; + this.match(TSqlParser.LR_BRACKET); + this.state = 5987; + this.expression(0); + this.state = 5988; + this.match(TSqlParser.RR_BRACKET); + this.state = 5990; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PERCENT) { + this.state = 5989; + this.match(TSqlParser.PERCENT); + } + + } + + this.state = 5996; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.ID: + this.state = 5994; + this.ddl_object(); + break; + case TSqlParser.OPENDATASOURCE: + case TSqlParser.OPENQUERY: + this.state = 5995; + this.rowset_function_limited(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5999; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH || _la===TSqlParser.LR_BRACKET) { + this.state = 5998; + this.with_table_hints(); + } + + this.state = 6001; + this.match(TSqlParser.SET); + this.state = 6002; + this.update_elem(); + this.state = 6007; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6003; + this.match(TSqlParser.COMMA); + this.state = 6004; + this.update_elem(); + this.state = 6009; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6011; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,764,this._ctx); + if(la_===1) { + this.state = 6010; + this.output_clause(); + + } + this.state = 6015; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 6013; + this.match(TSqlParser.FROM); + this.state = 6014; + this.table_sources(); + } + + this.state = 6030; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 6017; + this.match(TSqlParser.WHERE); + this.state = 6028; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.CASE: + case TSqlParser.COALESCE: + case TSqlParser.CONVERT: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DEFAULT: + case TSqlParser.EVENTDATA: + case TSqlParser.EXISTS: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.IDENTITY: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.NOT: + case TSqlParser.NULL: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.OVER: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.RIGHT: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.LR_BRACKET: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + case TSqlParser.BIT_NOT: + this.state = 6018; + this.search_condition_list(); + break; + case TSqlParser.CURRENT: + this.state = 6019; + this.match(TSqlParser.CURRENT); + this.state = 6020; + this.match(TSqlParser.OF); + this.state = 6026; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,767,this._ctx); + switch(la_) { + case 1: + this.state = 6022; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,766,this._ctx); + if(la_===1) { + this.state = 6021; + this.match(TSqlParser.GLOBAL); + + } + this.state = 6024; + this.cursor_name(); + break; + + case 2: + this.state = 6025; + localctx.cursor_var = this.match(TSqlParser.LOCAL_ID); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 6033; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 6032; + this.for_clause(); + } + + this.state = 6036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OPTION) { + this.state = 6035; + this.option_clause(); + } + + this.state = 6039; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,772,this._ctx); + if(la_===1) { + this.state = 6038; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Output_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_output_clause; + return this; +} + +Output_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Output_clauseContext.prototype.constructor = Output_clauseContext; + +Output_clauseContext.prototype.OUTPUT = function() { + return this.getToken(TSqlParser.OUTPUT, 0); +}; + +Output_clauseContext.prototype.output_dml_list_elem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Output_dml_list_elemContext); + } else { + return this.getTypedRuleContext(Output_dml_list_elemContext,i); + } +}; + +Output_clauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Output_clauseContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Output_clauseContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Output_clauseContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Output_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Output_clauseContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Output_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Output_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOutput_clause(this); + } +}; + +Output_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOutput_clause(this); + } +}; + +Output_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOutput_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Output_clauseContext = Output_clauseContext; + +TSqlParser.prototype.output_clause = function() { + + var localctx = new Output_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 450, TSqlParser.RULE_output_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6041; + this.match(TSqlParser.OUTPUT); + this.state = 6042; + this.output_dml_list_elem(); + this.state = 6047; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6043; + this.match(TSqlParser.COMMA); + this.state = 6044; + this.output_dml_list_elem(); + this.state = 6049; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6061; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 6050; + this.match(TSqlParser.INTO); + this.state = 6053; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LOCAL_ID: + this.state = 6051; + this.match(TSqlParser.LOCAL_ID); + break; + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6052; + this.table_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6059; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,775,this._ctx); + if(la_===1) { + this.state = 6055; + this.match(TSqlParser.LR_BRACKET); + this.state = 6056; + this.column_name_list(); + this.state = 6057; + this.match(TSqlParser.RR_BRACKET); + + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Output_dml_list_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_output_dml_list_elem; + return this; +} + +Output_dml_list_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Output_dml_list_elemContext.prototype.constructor = Output_dml_list_elemContext; + +Output_dml_list_elemContext.prototype.output_column_name = function() { + return this.getTypedRuleContext(Output_column_nameContext,0); +}; + +Output_dml_list_elemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Output_dml_list_elemContext.prototype.as_column_alias = function() { + return this.getTypedRuleContext(As_column_aliasContext,0); +}; + +Output_dml_list_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOutput_dml_list_elem(this); + } +}; + +Output_dml_list_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOutput_dml_list_elem(this); + } +}; + +Output_dml_list_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOutput_dml_list_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Output_dml_list_elemContext = Output_dml_list_elemContext; + +TSqlParser.prototype.output_dml_list_elem = function() { + + var localctx = new Output_dml_list_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 452, TSqlParser.RULE_output_dml_list_elem); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6065; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,777,this._ctx); + switch(la_) { + case 1: + this.state = 6063; + this.output_column_name(); + break; + + case 2: + this.state = 6064; + this.expression(0); + break; + + } + this.state = 6068; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,778,this._ctx); + if(la_===1) { + this.state = 6067; + this.as_column_alias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Output_column_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_output_column_name; + return this; +} + +Output_column_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Output_column_nameContext.prototype.constructor = Output_column_nameContext; + +Output_column_nameContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Output_column_nameContext.prototype.DELETED = function() { + return this.getToken(TSqlParser.DELETED, 0); +}; + +Output_column_nameContext.prototype.INSERTED = function() { + return this.getToken(TSqlParser.INSERTED, 0); +}; + +Output_column_nameContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Output_column_nameContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +Output_column_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Output_column_nameContext.prototype.DOLLAR_ACTION = function() { + return this.getToken(TSqlParser.DOLLAR_ACTION, 0); +}; + +Output_column_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOutput_column_name(this); + } +}; + +Output_column_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOutput_column_name(this); + } +}; + +Output_column_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOutput_column_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Output_column_nameContext = Output_column_nameContext; + +TSqlParser.prototype.output_column_name = function() { + + var localctx = new Output_column_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 454, TSqlParser.RULE_output_column_name); + try { + this.state = 6081; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 6073; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,779,this._ctx); + switch(la_) { + case 1: + this.state = 6070; + this.match(TSqlParser.DELETED); + break; + + case 2: + this.state = 6071; + this.match(TSqlParser.INSERTED); + break; + + case 3: + this.state = 6072; + this.table_name(); + break; + + } + this.state = 6075; + this.match(TSqlParser.DOT); + this.state = 6078; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STAR: + this.state = 6076; + this.match(TSqlParser.STAR); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6077; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DOLLAR_ACTION: + this.enterOuterAlt(localctx, 2); + this.state = 6080; + this.match(TSqlParser.DOLLAR_ACTION); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_database; + this.database = null; // IdContext + this.collation_name = null; // IdContext + return this; +} + +Create_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_databaseContext.prototype.constructor = Create_databaseContext; + +Create_databaseContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Create_databaseContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_databaseContext.prototype.CONTAINMENT = function() { + return this.getToken(TSqlParser.CONTAINMENT, 0); +}; + +Create_databaseContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_databaseContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_databaseContext.prototype.database_file_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Database_file_specContext); + } else { + return this.getTypedRuleContext(Database_file_specContext,i); + } +}; + +Create_databaseContext.prototype.LOG = function() { + return this.getToken(TSqlParser.LOG, 0); +}; + +Create_databaseContext.prototype.COLLATE = function() { + return this.getToken(TSqlParser.COLLATE, 0); +}; + +Create_databaseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_databaseContext.prototype.create_database_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Create_database_optionContext); + } else { + return this.getTypedRuleContext(Create_database_optionContext,i); + } +}; + +Create_databaseContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Create_databaseContext.prototype.PARTIAL = function() { + return this.getToken(TSqlParser.PARTIAL, 0); +}; + +Create_databaseContext.prototype.PRIMARY = function() { + return this.getToken(TSqlParser.PRIMARY, 0); +}; + +Create_databaseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_database(this); + } +}; + +Create_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_database(this); + } +}; + +Create_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_databaseContext = Create_databaseContext; + +TSqlParser.prototype.create_database = function() { + + var localctx = new Create_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 456, TSqlParser.RULE_create_database); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6083; + this.match(TSqlParser.CREATE); + this.state = 6084; + this.match(TSqlParser.DATABASE); + + this.state = 6085; + localctx.database = this.id(); + this.state = 6089; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTAINMENT) { + this.state = 6086; + this.match(TSqlParser.CONTAINMENT); + this.state = 6087; + this.match(TSqlParser.EQUAL); + this.state = 6088; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.PARTIAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6103; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 6091; + this.match(TSqlParser.ON); + this.state = 6093; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PRIMARY) { + this.state = 6092; + this.match(TSqlParser.PRIMARY); + } + + this.state = 6095; + this.database_file_spec(); + this.state = 6100; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6096; + this.match(TSqlParser.COMMA); + this.state = 6097; + this.database_file_spec(); + this.state = 6102; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6115; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LOG) { + this.state = 6105; + this.match(TSqlParser.LOG); + this.state = 6106; + this.match(TSqlParser.ON); + this.state = 6107; + this.database_file_spec(); + this.state = 6112; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6108; + this.match(TSqlParser.COMMA); + this.state = 6109; + this.database_file_spec(); + this.state = 6114; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6119; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COLLATE) { + this.state = 6117; + this.match(TSqlParser.COLLATE); + this.state = 6118; + localctx.collation_name = this.id(); + } + + this.state = 6130; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,790,this._ctx); + if(la_===1) { + this.state = 6121; + this.match(TSqlParser.WITH); + this.state = 6122; + this.create_database_option(); + this.state = 6127; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6123; + this.match(TSqlParser.COMMA); + this.state = 6124; + this.create_database_option(); + this.state = 6129; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_index; + this.where = null; // Search_conditionContext + return this; +} + +Create_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_indexContext.prototype.constructor = Create_indexContext; + +Create_indexContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_indexContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Create_indexContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_indexContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_indexContext.prototype.table_name_with_hint = function() { + return this.getTypedRuleContext(Table_name_with_hintContext,0); +}; + +Create_indexContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_indexContext.prototype.column_name_list_with_order = function() { + return this.getTypedRuleContext(Column_name_list_with_orderContext,0); +}; + +Create_indexContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_indexContext.prototype.UNIQUE = function() { + return this.getToken(TSqlParser.UNIQUE, 0); +}; + +Create_indexContext.prototype.clustered = function() { + return this.getTypedRuleContext(ClusteredContext,0); +}; + +Create_indexContext.prototype.INCLUDE = function() { + return this.getToken(TSqlParser.INCLUDE, 0); +}; + +Create_indexContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Create_indexContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Create_indexContext.prototype.index_options = function() { + return this.getTypedRuleContext(Index_optionsContext,0); +}; + +Create_indexContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_indexContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Create_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_index(this); + } +}; + +Create_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_index(this); + } +}; + +Create_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_indexContext = Create_indexContext; + +TSqlParser.prototype.create_index = function() { + + var localctx = new Create_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 458, TSqlParser.RULE_create_index); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6132; + this.match(TSqlParser.CREATE); + this.state = 6134; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.UNIQUE) { + this.state = 6133; + this.match(TSqlParser.UNIQUE); + } + + this.state = 6137; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CLUSTERED || _la===TSqlParser.NONCLUSTERED) { + this.state = 6136; + this.clustered(); + } + + this.state = 6139; + this.match(TSqlParser.INDEX); + this.state = 6140; + this.id(); + this.state = 6141; + this.match(TSqlParser.ON); + this.state = 6142; + this.table_name_with_hint(); + this.state = 6143; + this.match(TSqlParser.LR_BRACKET); + this.state = 6144; + this.column_name_list_with_order(); + this.state = 6145; + this.match(TSqlParser.RR_BRACKET); + this.state = 6151; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INCLUDE) { + this.state = 6146; + this.match(TSqlParser.INCLUDE); + this.state = 6147; + this.match(TSqlParser.LR_BRACKET); + this.state = 6148; + this.column_name_list(); + this.state = 6149; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 6155; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 6153; + this.match(TSqlParser.WHERE); + this.state = 6154; + localctx.where = this.search_condition(); + } + + this.state = 6158; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,795,this._ctx); + if(la_===1) { + this.state = 6157; + this.index_options(); + + } + this.state = 6162; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 6160; + this.match(TSqlParser.ON); + this.state = 6161; + this.id(); + } + + this.state = 6165; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,797,this._ctx); + if(la_===1) { + this.state = 6164; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_procedureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_procedure; + this.proc = null; // Token + return this; +} + +Create_or_alter_procedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_procedureContext.prototype.constructor = Create_or_alter_procedureContext; + +Create_or_alter_procedureContext.prototype.func_proc_name_schema = function() { + return this.getTypedRuleContext(Func_proc_name_schemaContext,0); +}; + +Create_or_alter_procedureContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_or_alter_procedureContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +Create_or_alter_procedureContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_procedureContext.prototype.PROC = function() { + return this.getToken(TSqlParser.PROC, 0); +}; + +Create_or_alter_procedureContext.prototype.PROCEDURE = function() { + return this.getToken(TSqlParser.PROCEDURE, 0); +}; + +Create_or_alter_procedureContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_or_alter_procedureContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_or_alter_procedureContext.prototype.procedure_param = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Procedure_paramContext); + } else { + return this.getTypedRuleContext(Procedure_paramContext,i); + } +}; + +Create_or_alter_procedureContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_or_alter_procedureContext.prototype.procedure_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Procedure_optionContext); + } else { + return this.getTypedRuleContext(Procedure_optionContext,i); + } +}; + +Create_or_alter_procedureContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_or_alter_procedureContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Create_or_alter_procedureContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_procedureContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_or_alter_procedureContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_procedureContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_or_alter_procedureContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_or_alter_procedureContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_procedure(this); + } +}; + +Create_or_alter_procedureContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_procedure(this); + } +}; + +Create_or_alter_procedureContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_procedure(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_procedureContext = Create_or_alter_procedureContext; + +TSqlParser.prototype.create_or_alter_procedure = function() { + + var localctx = new Create_or_alter_procedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 460, TSqlParser.RULE_create_or_alter_procedure); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6173; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CREATE: + this.state = 6167; + this.match(TSqlParser.CREATE); + this.state = 6170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OR) { + this.state = 6168; + this.match(TSqlParser.OR); + this.state = 6169; + this.match(TSqlParser.ALTER); + } + + break; + case TSqlParser.ALTER: + this.state = 6172; + this.match(TSqlParser.ALTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6175; + localctx.proc = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.PROC || _la===TSqlParser.PROCEDURE)) { + localctx.proc = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6176; + this.func_proc_name_schema(); + this.state = 6179; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEMI) { + this.state = 6177; + this.match(TSqlParser.SEMI); + this.state = 6178; + this.match(TSqlParser.DECIMAL); + } + + this.state = 6195; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.LR_BRACKET) { + this.state = 6182; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 6181; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 6184; + this.procedure_param(); + this.state = 6189; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6185; + this.match(TSqlParser.COMMA); + this.state = 6186; + this.procedure_param(); + this.state = 6191; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6193; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RR_BRACKET) { + this.state = 6192; + this.match(TSqlParser.RR_BRACKET); + } + + } + + this.state = 6206; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6197; + this.match(TSqlParser.WITH); + this.state = 6198; + this.procedure_option(); + this.state = 6203; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6199; + this.match(TSqlParser.COMMA); + this.state = 6200; + this.procedure_option(); + this.state = 6205; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6210; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 6208; + this.match(TSqlParser.FOR); + this.state = 6209; + this.match(TSqlParser.REPLICATION); + } + + this.state = 6212; + this.match(TSqlParser.AS); + this.state = 6213; + this.sql_clauses(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_trigger; + return this; +} + +Create_or_alter_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_triggerContext.prototype.constructor = Create_or_alter_triggerContext; + +Create_or_alter_triggerContext.prototype.create_or_alter_dml_trigger = function() { + return this.getTypedRuleContext(Create_or_alter_dml_triggerContext,0); +}; + +Create_or_alter_triggerContext.prototype.create_or_alter_ddl_trigger = function() { + return this.getTypedRuleContext(Create_or_alter_ddl_triggerContext,0); +}; + +Create_or_alter_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_trigger(this); + } +}; + +Create_or_alter_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_trigger(this); + } +}; + +Create_or_alter_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_triggerContext = Create_or_alter_triggerContext; + +TSqlParser.prototype.create_or_alter_trigger = function() { + + var localctx = new Create_or_alter_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 462, TSqlParser.RULE_create_or_alter_trigger); + try { + this.state = 6217; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,808,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6215; + this.create_or_alter_dml_trigger(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6216; + this.create_or_alter_ddl_trigger(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_dml_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_dml_trigger; + return this; +} + +Create_or_alter_dml_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_dml_triggerContext.prototype.constructor = Create_or_alter_dml_triggerContext; + +Create_or_alter_dml_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.simple_name = function() { + return this.getTypedRuleContext(Simple_nameContext,0); +}; + +Create_or_alter_dml_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Create_or_alter_dml_triggerContext.prototype.dml_trigger_operation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_trigger_operationContext); + } else { + return this.getTypedRuleContext(Dml_trigger_operationContext,i); + } +}; + +Create_or_alter_dml_triggerContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +Create_or_alter_dml_triggerContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.FOR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FOR); + } else { + return this.getToken(TSqlParser.FOR, i); + } +}; + + +Create_or_alter_dml_triggerContext.prototype.AFTER = function() { + return this.getToken(TSqlParser.AFTER, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.INSTEAD = function() { + return this.getToken(TSqlParser.INSTEAD, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WITH); + } else { + return this.getToken(TSqlParser.WITH, i); + } +}; + + +Create_or_alter_dml_triggerContext.prototype.dml_trigger_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_trigger_optionContext); + } else { + return this.getTypedRuleContext(Dml_trigger_optionContext,i); + } +}; + +Create_or_alter_dml_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_dml_triggerContext.prototype.APPEND = function() { + return this.getToken(TSqlParser.APPEND, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_dml_trigger(this); + } +}; + +Create_or_alter_dml_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_dml_trigger(this); + } +}; + +Create_or_alter_dml_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_dml_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_dml_triggerContext = Create_or_alter_dml_triggerContext; + +TSqlParser.prototype.create_or_alter_dml_trigger = function() { + + var localctx = new Create_or_alter_dml_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 464, TSqlParser.RULE_create_or_alter_dml_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6225; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CREATE: + this.state = 6219; + this.match(TSqlParser.CREATE); + this.state = 6222; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OR) { + this.state = 6220; + this.match(TSqlParser.OR); + this.state = 6221; + this.match(TSqlParser.ALTER); + } + + break; + case TSqlParser.ALTER: + this.state = 6224; + this.match(TSqlParser.ALTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6227; + this.match(TSqlParser.TRIGGER); + this.state = 6228; + this.simple_name(); + this.state = 6229; + this.match(TSqlParser.ON); + this.state = 6230; + this.table_name(); + this.state = 6240; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6231; + this.match(TSqlParser.WITH); + this.state = 6232; + this.dml_trigger_option(); + this.state = 6237; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6233; + this.match(TSqlParser.COMMA); + this.state = 6234; + this.dml_trigger_option(); + this.state = 6239; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6246; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FOR: + this.state = 6242; + this.match(TSqlParser.FOR); + break; + case TSqlParser.AFTER: + this.state = 6243; + this.match(TSqlParser.AFTER); + break; + case TSqlParser.INSTEAD: + this.state = 6244; + this.match(TSqlParser.INSTEAD); + this.state = 6245; + this.match(TSqlParser.OF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6248; + this.dml_trigger_operation(); + this.state = 6253; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6249; + this.match(TSqlParser.COMMA); + this.state = 6250; + this.dml_trigger_operation(); + this.state = 6255; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6258; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6256; + this.match(TSqlParser.WITH); + this.state = 6257; + this.match(TSqlParser.APPEND); + } + + this.state = 6263; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 6260; + this.match(TSqlParser.NOT); + this.state = 6261; + this.match(TSqlParser.FOR); + this.state = 6262; + this.match(TSqlParser.REPLICATION); + } + + this.state = 6265; + this.match(TSqlParser.AS); + this.state = 6266; + this.sql_clauses(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dml_trigger_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dml_trigger_option; + return this; +} + +Dml_trigger_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dml_trigger_optionContext.prototype.constructor = Dml_trigger_optionContext; + +Dml_trigger_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Dml_trigger_optionContext.prototype.execute_clause = function() { + return this.getTypedRuleContext(Execute_clauseContext,0); +}; + +Dml_trigger_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDml_trigger_option(this); + } +}; + +Dml_trigger_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDml_trigger_option(this); + } +}; + +Dml_trigger_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDml_trigger_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dml_trigger_optionContext = Dml_trigger_optionContext; + +TSqlParser.prototype.dml_trigger_option = function() { + + var localctx = new Dml_trigger_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 466, TSqlParser.RULE_dml_trigger_option); + try { + this.state = 6270; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENCRYPTION: + this.enterOuterAlt(localctx, 1); + this.state = 6268; + this.match(TSqlParser.ENCRYPTION); + break; + case TSqlParser.EXECUTE: + this.enterOuterAlt(localctx, 2); + this.state = 6269; + this.execute_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dml_trigger_operationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dml_trigger_operation; + return this; +} + +Dml_trigger_operationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dml_trigger_operationContext.prototype.constructor = Dml_trigger_operationContext; + +Dml_trigger_operationContext.prototype.INSERT = function() { + return this.getToken(TSqlParser.INSERT, 0); +}; + +Dml_trigger_operationContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Dml_trigger_operationContext.prototype.DELETE = function() { + return this.getToken(TSqlParser.DELETE, 0); +}; + +Dml_trigger_operationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDml_trigger_operation(this); + } +}; + +Dml_trigger_operationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDml_trigger_operation(this); + } +}; + +Dml_trigger_operationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDml_trigger_operation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dml_trigger_operationContext = Dml_trigger_operationContext; + +TSqlParser.prototype.dml_trigger_operation = function() { + + var localctx = new Dml_trigger_operationContext(this, this._ctx, this.state); + this.enterRule(localctx, 468, TSqlParser.RULE_dml_trigger_operation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6272; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELETE || _la===TSqlParser.INSERT || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_ddl_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_ddl_trigger; + return this; +} + +Create_or_alter_ddl_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_ddl_triggerContext.prototype.constructor = Create_or_alter_ddl_triggerContext; + +Create_or_alter_ddl_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +Create_or_alter_ddl_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.ddl_trigger_operation = function() { + return this.getTypedRuleContext(Ddl_trigger_operationContext,0); +}; + +Create_or_alter_ddl_triggerContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +Create_or_alter_ddl_triggerContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.AFTER = function() { + return this.getToken(TSqlParser.AFTER, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.dml_trigger_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_trigger_optionContext); + } else { + return this.getTypedRuleContext(Dml_trigger_optionContext,i); + } +}; + +Create_or_alter_ddl_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_ddl_triggerContext.prototype.dml_trigger_operation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_trigger_operationContext); + } else { + return this.getTypedRuleContext(Dml_trigger_operationContext,i); + } +}; + +Create_or_alter_ddl_triggerContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_ddl_trigger(this); + } +}; + +Create_or_alter_ddl_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_ddl_trigger(this); + } +}; + +Create_or_alter_ddl_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_ddl_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_ddl_triggerContext = Create_or_alter_ddl_triggerContext; + +TSqlParser.prototype.create_or_alter_ddl_trigger = function() { + + var localctx = new Create_or_alter_ddl_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 470, TSqlParser.RULE_create_or_alter_ddl_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6280; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CREATE: + this.state = 6274; + this.match(TSqlParser.CREATE); + this.state = 6277; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OR) { + this.state = 6275; + this.match(TSqlParser.OR); + this.state = 6276; + this.match(TSqlParser.ALTER); + } + + break; + case TSqlParser.ALTER: + this.state = 6279; + this.match(TSqlParser.ALTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6282; + this.match(TSqlParser.TRIGGER); + this.state = 6283; + this.simple_id(); + this.state = 6284; + this.match(TSqlParser.ON); + this.state = 6288; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.state = 6285; + this.match(TSqlParser.ALL); + this.state = 6286; + this.match(TSqlParser.SERVER); + break; + case TSqlParser.DATABASE: + this.state = 6287; + this.match(TSqlParser.DATABASE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6299; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6290; + this.match(TSqlParser.WITH); + this.state = 6291; + this.dml_trigger_option(); + this.state = 6296; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6292; + this.match(TSqlParser.COMMA); + this.state = 6293; + this.dml_trigger_option(); + this.state = 6298; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6301; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.AFTER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6302; + this.ddl_trigger_operation(); + this.state = 6307; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6303; + this.match(TSqlParser.COMMA); + this.state = 6304; + this.dml_trigger_operation(); + this.state = 6309; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6310; + this.match(TSqlParser.AS); + this.state = 6311; + this.sql_clauses(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Ddl_trigger_operationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_ddl_trigger_operation; + return this; +} + +Ddl_trigger_operationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Ddl_trigger_operationContext.prototype.constructor = Ddl_trigger_operationContext; + +Ddl_trigger_operationContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +Ddl_trigger_operationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDdl_trigger_operation(this); + } +}; + +Ddl_trigger_operationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDdl_trigger_operation(this); + } +}; + +Ddl_trigger_operationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDdl_trigger_operation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Ddl_trigger_operationContext = Ddl_trigger_operationContext; + +TSqlParser.prototype.ddl_trigger_operation = function() { + + var localctx = new Ddl_trigger_operationContext(this, this._ctx, this.state); + this.enterRule(localctx, 472, TSqlParser.RULE_ddl_trigger_operation); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6313; + this.simple_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_function; + return this; +} + +Create_or_alter_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_functionContext.prototype.constructor = Create_or_alter_functionContext; + +Create_or_alter_functionContext.prototype.FUNCTION = function() { + return this.getToken(TSqlParser.FUNCTION, 0); +}; + +Create_or_alter_functionContext.prototype.func_proc_name_schema = function() { + return this.getTypedRuleContext(Func_proc_name_schemaContext,0); +}; + +Create_or_alter_functionContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_or_alter_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_or_alter_functionContext.prototype.func_body_returns_select = function() { + return this.getTypedRuleContext(Func_body_returns_selectContext,0); +}; + +Create_or_alter_functionContext.prototype.func_body_returns_table = function() { + return this.getTypedRuleContext(Func_body_returns_tableContext,0); +}; + +Create_or_alter_functionContext.prototype.func_body_returns_scalar = function() { + return this.getTypedRuleContext(Func_body_returns_scalarContext,0); +}; + +Create_or_alter_functionContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_or_alter_functionContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_functionContext.prototype.procedure_param = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Procedure_paramContext); + } else { + return this.getTypedRuleContext(Procedure_paramContext,i); + } +}; + +Create_or_alter_functionContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_or_alter_functionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_function(this); + } +}; + +Create_or_alter_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_function(this); + } +}; + +Create_or_alter_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_functionContext = Create_or_alter_functionContext; + +TSqlParser.prototype.create_or_alter_function = function() { + + var localctx = new Create_or_alter_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 474, TSqlParser.RULE_create_or_alter_function); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6321; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CREATE: + this.state = 6315; + this.match(TSqlParser.CREATE); + this.state = 6318; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OR) { + this.state = 6316; + this.match(TSqlParser.OR); + this.state = 6317; + this.match(TSqlParser.ALTER); + } + + break; + case TSqlParser.ALTER: + this.state = 6320; + this.match(TSqlParser.ALTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6323; + this.match(TSqlParser.FUNCTION); + this.state = 6324; + this.func_proc_name_schema(); + this.state = 6338; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,827,this._ctx); + switch(la_) { + case 1: + this.state = 6325; + this.match(TSqlParser.LR_BRACKET); + this.state = 6326; + this.procedure_param(); + this.state = 6331; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6327; + this.match(TSqlParser.COMMA); + this.state = 6328; + this.procedure_param(); + this.state = 6333; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6334; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 6336; + this.match(TSqlParser.LR_BRACKET); + this.state = 6337; + this.match(TSqlParser.RR_BRACKET); + break; + + } + this.state = 6343; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,828,this._ctx); + switch(la_) { + case 1: + this.state = 6340; + this.func_body_returns_select(); + break; + + case 2: + this.state = 6341; + this.func_body_returns_table(); + break; + + case 3: + this.state = 6342; + this.func_body_returns_scalar(); + break; + + } + this.state = 6346; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,829,this._ctx); + if(la_===1) { + this.state = 6345; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_body_returns_selectContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_body_returns_select; + return this; +} + +Func_body_returns_selectContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_body_returns_selectContext.prototype.constructor = Func_body_returns_selectContext; + +Func_body_returns_selectContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Func_body_returns_selectContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Func_body_returns_selectContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Func_body_returns_selectContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Func_body_returns_selectContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Func_body_returns_selectContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Func_body_returns_selectContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Func_body_returns_selectContext.prototype.function_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_optionContext); + } else { + return this.getTypedRuleContext(Function_optionContext,i); + } +}; + +Func_body_returns_selectContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Func_body_returns_selectContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Func_body_returns_selectContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_body_returns_select(this); + } +}; + +Func_body_returns_selectContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_body_returns_select(this); + } +}; + +Func_body_returns_selectContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_body_returns_select(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_body_returns_selectContext = Func_body_returns_selectContext; + +TSqlParser.prototype.func_body_returns_select = function() { + + var localctx = new Func_body_returns_selectContext(this, this._ctx, this.state); + this.enterRule(localctx, 476, TSqlParser.RULE_func_body_returns_select); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6348; + this.match(TSqlParser.RETURNS); + this.state = 6349; + this.match(TSqlParser.TABLE); + this.state = 6359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6350; + this.match(TSqlParser.WITH); + this.state = 6351; + this.function_option(); + this.state = 6356; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6352; + this.match(TSqlParser.COMMA); + this.state = 6353; + this.function_option(); + this.state = 6358; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6362; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 6361; + this.match(TSqlParser.AS); + } + + this.state = 6364; + this.match(TSqlParser.RETURN); + this.state = 6370; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,833,this._ctx); + switch(la_) { + case 1: + this.state = 6365; + this.match(TSqlParser.LR_BRACKET); + this.state = 6366; + this.select_statement(); + this.state = 6367; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 6369; + this.select_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_body_returns_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_body_returns_table; + return this; +} + +Func_body_returns_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_body_returns_tableContext.prototype.constructor = Func_body_returns_tableContext; + +Func_body_returns_tableContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Func_body_returns_tableContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Func_body_returns_tableContext.prototype.table_type_definition = function() { + return this.getTypedRuleContext(Table_type_definitionContext,0); +}; + +Func_body_returns_tableContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Func_body_returns_tableContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Func_body_returns_tableContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +Func_body_returns_tableContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Func_body_returns_tableContext.prototype.function_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_optionContext); + } else { + return this.getTypedRuleContext(Function_optionContext,i); + } +}; + +Func_body_returns_tableContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Func_body_returns_tableContext.prototype.sql_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clauseContext); + } else { + return this.getTypedRuleContext(Sql_clauseContext,i); + } +}; + +Func_body_returns_tableContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEMI); + } else { + return this.getToken(TSqlParser.SEMI, i); + } +}; + + +Func_body_returns_tableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Func_body_returns_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_body_returns_table(this); + } +}; + +Func_body_returns_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_body_returns_table(this); + } +}; + +Func_body_returns_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_body_returns_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_body_returns_tableContext = Func_body_returns_tableContext; + +TSqlParser.prototype.func_body_returns_table = function() { + + var localctx = new Func_body_returns_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 478, TSqlParser.RULE_func_body_returns_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6372; + this.match(TSqlParser.RETURNS); + this.state = 6373; + this.match(TSqlParser.LOCAL_ID); + this.state = 6374; + this.table_type_definition(); + this.state = 6384; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6375; + this.match(TSqlParser.WITH); + this.state = 6376; + this.function_option(); + this.state = 6381; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6377; + this.match(TSqlParser.COMMA); + this.state = 6378; + this.function_option(); + this.state = 6383; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6387; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 6386; + this.match(TSqlParser.AS); + } + + this.state = 6389; + this.match(TSqlParser.BEGIN); + this.state = 6393; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,837,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 6390; + this.sql_clause(); + } + this.state = 6395; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,837,this._ctx); + } + + this.state = 6396; + this.match(TSqlParser.RETURN); + this.state = 6398; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEMI) { + this.state = 6397; + this.match(TSqlParser.SEMI); + } + + this.state = 6400; + this.match(TSqlParser.END); + this.state = 6402; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,839,this._ctx); + if(la_===1) { + this.state = 6401; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_body_returns_scalarContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_body_returns_scalar; + this.ret = null; // ExpressionContext + return this; +} + +Func_body_returns_scalarContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_body_returns_scalarContext.prototype.constructor = Func_body_returns_scalarContext; + +Func_body_returns_scalarContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Func_body_returns_scalarContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Func_body_returns_scalarContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Func_body_returns_scalarContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Func_body_returns_scalarContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +Func_body_returns_scalarContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Func_body_returns_scalarContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Func_body_returns_scalarContext.prototype.function_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_optionContext); + } else { + return this.getTypedRuleContext(Function_optionContext,i); + } +}; + +Func_body_returns_scalarContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Func_body_returns_scalarContext.prototype.sql_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clauseContext); + } else { + return this.getTypedRuleContext(Sql_clauseContext,i); + } +}; + +Func_body_returns_scalarContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Func_body_returns_scalarContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Func_body_returns_scalarContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_body_returns_scalar(this); + } +}; + +Func_body_returns_scalarContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_body_returns_scalar(this); + } +}; + +Func_body_returns_scalarContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_body_returns_scalar(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_body_returns_scalarContext = Func_body_returns_scalarContext; + +TSqlParser.prototype.func_body_returns_scalar = function() { + + var localctx = new Func_body_returns_scalarContext(this, this._ctx, this.state); + this.enterRule(localctx, 480, TSqlParser.RULE_func_body_returns_scalar); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6404; + this.match(TSqlParser.RETURNS); + this.state = 6405; + this.data_type(); + this.state = 6415; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6406; + this.match(TSqlParser.WITH); + this.state = 6407; + this.function_option(); + this.state = 6412; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6408; + this.match(TSqlParser.COMMA); + this.state = 6409; + this.function_option(); + this.state = 6414; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6418; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 6417; + this.match(TSqlParser.AS); + } + + this.state = 6420; + this.match(TSqlParser.BEGIN); + this.state = 6424; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,843,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 6421; + this.sql_clause(); + } + this.state = 6426; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,843,this._ctx); + } + + this.state = 6427; + this.match(TSqlParser.RETURN); + this.state = 6428; + localctx.ret = this.expression(0); + this.state = 6430; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEMI) { + this.state = 6429; + this.match(TSqlParser.SEMI); + } + + this.state = 6432; + this.match(TSqlParser.END); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Procedure_paramContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_procedure_param; + this.default_val = null; // Default_valueContext + return this; +} + +Procedure_paramContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Procedure_paramContext.prototype.constructor = Procedure_paramContext; + +Procedure_paramContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Procedure_paramContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Procedure_paramContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Procedure_paramContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Procedure_paramContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Procedure_paramContext.prototype.VARYING = function() { + return this.getToken(TSqlParser.VARYING, 0); +}; + +Procedure_paramContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Procedure_paramContext.prototype.default_value = function() { + return this.getTypedRuleContext(Default_valueContext,0); +}; + +Procedure_paramContext.prototype.OUT = function() { + return this.getToken(TSqlParser.OUT, 0); +}; + +Procedure_paramContext.prototype.OUTPUT = function() { + return this.getToken(TSqlParser.OUTPUT, 0); +}; + +Procedure_paramContext.prototype.READONLY = function() { + return this.getToken(TSqlParser.READONLY, 0); +}; + +Procedure_paramContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterProcedure_param(this); + } +}; + +Procedure_paramContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitProcedure_param(this); + } +}; + +Procedure_paramContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitProcedure_param(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Procedure_paramContext = Procedure_paramContext; + +TSqlParser.prototype.procedure_param = function() { + + var localctx = new Procedure_paramContext(this, this._ctx, this.state); + this.enterRule(localctx, 482, TSqlParser.RULE_procedure_param); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6434; + this.match(TSqlParser.LOCAL_ID); + this.state = 6438; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,845,this._ctx); + if(la_===1) { + this.state = 6435; + this.id(); + this.state = 6436; + this.match(TSqlParser.DOT); + + } + this.state = 6441; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 6440; + this.match(TSqlParser.AS); + } + + this.state = 6443; + this.data_type(); + this.state = 6445; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.VARYING) { + this.state = 6444; + this.match(TSqlParser.VARYING); + } + + this.state = 6449; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EQUAL) { + this.state = 6447; + this.match(TSqlParser.EQUAL); + this.state = 6448; + localctx.default_val = this.default_value(); + } + + this.state = 6452; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OUT || _la===TSqlParser.OUTPUT || _la===TSqlParser.READONLY) { + this.state = 6451; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OUT || _la===TSqlParser.OUTPUT || _la===TSqlParser.READONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Procedure_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_procedure_option; + return this; +} + +Procedure_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Procedure_optionContext.prototype.constructor = Procedure_optionContext; + +Procedure_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Procedure_optionContext.prototype.RECOMPILE = function() { + return this.getToken(TSqlParser.RECOMPILE, 0); +}; + +Procedure_optionContext.prototype.execute_clause = function() { + return this.getTypedRuleContext(Execute_clauseContext,0); +}; + +Procedure_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterProcedure_option(this); + } +}; + +Procedure_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitProcedure_option(this); + } +}; + +Procedure_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitProcedure_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Procedure_optionContext = Procedure_optionContext; + +TSqlParser.prototype.procedure_option = function() { + + var localctx = new Procedure_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 484, TSqlParser.RULE_procedure_option); + try { + this.state = 6457; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENCRYPTION: + this.enterOuterAlt(localctx, 1); + this.state = 6454; + this.match(TSqlParser.ENCRYPTION); + break; + case TSqlParser.RECOMPILE: + this.enterOuterAlt(localctx, 2); + this.state = 6455; + this.match(TSqlParser.RECOMPILE); + break; + case TSqlParser.EXECUTE: + this.enterOuterAlt(localctx, 3); + this.state = 6456; + this.execute_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Function_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_function_option; + return this; +} + +Function_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Function_optionContext.prototype.constructor = Function_optionContext; + +Function_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Function_optionContext.prototype.SCHEMABINDING = function() { + return this.getToken(TSqlParser.SCHEMABINDING, 0); +}; + +Function_optionContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Function_optionContext.prototype.NULL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NULL); + } else { + return this.getToken(TSqlParser.NULL, i); + } +}; + + +Function_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Function_optionContext.prototype.INPUT = function() { + return this.getToken(TSqlParser.INPUT, 0); +}; + +Function_optionContext.prototype.CALLED = function() { + return this.getToken(TSqlParser.CALLED, 0); +}; + +Function_optionContext.prototype.execute_clause = function() { + return this.getTypedRuleContext(Execute_clauseContext,0); +}; + +Function_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunction_option(this); + } +}; + +Function_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunction_option(this); + } +}; + +Function_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunction_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Function_optionContext = Function_optionContext; + +TSqlParser.prototype.function_option = function() { + + var localctx = new Function_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 486, TSqlParser.RULE_function_option); + try { + this.state = 6471; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENCRYPTION: + this.enterOuterAlt(localctx, 1); + this.state = 6459; + this.match(TSqlParser.ENCRYPTION); + break; + case TSqlParser.SCHEMABINDING: + this.enterOuterAlt(localctx, 2); + this.state = 6460; + this.match(TSqlParser.SCHEMABINDING); + break; + case TSqlParser.RETURNS: + this.enterOuterAlt(localctx, 3); + this.state = 6461; + this.match(TSqlParser.RETURNS); + this.state = 6462; + this.match(TSqlParser.NULL); + this.state = 6463; + this.match(TSqlParser.ON); + this.state = 6464; + this.match(TSqlParser.NULL); + this.state = 6465; + this.match(TSqlParser.INPUT); + break; + case TSqlParser.CALLED: + this.enterOuterAlt(localctx, 4); + this.state = 6466; + this.match(TSqlParser.CALLED); + this.state = 6467; + this.match(TSqlParser.ON); + this.state = 6468; + this.match(TSqlParser.NULL); + this.state = 6469; + this.match(TSqlParser.INPUT); + break; + case TSqlParser.EXECUTE: + this.enterOuterAlt(localctx, 5); + this.state = 6470; + this.execute_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_statisticsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_statistics; + return this; +} + +Create_statisticsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_statisticsContext.prototype.constructor = Create_statisticsContext; + +Create_statisticsContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_statisticsContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Create_statisticsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_statisticsContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_statisticsContext.prototype.table_name_with_hint = function() { + return this.getTypedRuleContext(Table_name_with_hintContext,0); +}; + +Create_statisticsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_statisticsContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Create_statisticsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_statisticsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_statisticsContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_statisticsContext.prototype.FULLSCAN = function() { + return this.getToken(TSqlParser.FULLSCAN, 0); +}; + +Create_statisticsContext.prototype.SAMPLE = function() { + return this.getToken(TSqlParser.SAMPLE, 0); +}; + +Create_statisticsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_statisticsContext.prototype.STATS_STREAM = function() { + return this.getToken(TSqlParser.STATS_STREAM, 0); +}; + +Create_statisticsContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Create_statisticsContext.prototype.ROWS = function() { + return this.getToken(TSqlParser.ROWS, 0); +}; + +Create_statisticsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_statisticsContext.prototype.NORECOMPUTE = function() { + return this.getToken(TSqlParser.NORECOMPUTE, 0); +}; + +Create_statisticsContext.prototype.INCREMENTAL = function() { + return this.getToken(TSqlParser.INCREMENTAL, 0); +}; + +Create_statisticsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_statisticsContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Create_statisticsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_statistics(this); + } +}; + +Create_statisticsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_statistics(this); + } +}; + +Create_statisticsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_statistics(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_statisticsContext = Create_statisticsContext; + +TSqlParser.prototype.create_statistics = function() { + + var localctx = new Create_statisticsContext(this, this._ctx, this.state); + this.enterRule(localctx, 488, TSqlParser.RULE_create_statistics); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6473; + this.match(TSqlParser.CREATE); + this.state = 6474; + this.match(TSqlParser.STATISTICS); + this.state = 6475; + this.id(); + this.state = 6476; + this.match(TSqlParser.ON); + this.state = 6477; + this.table_name_with_hint(); + this.state = 6478; + this.match(TSqlParser.LR_BRACKET); + this.state = 6479; + this.column_name_list(); + this.state = 6480; + this.match(TSqlParser.RR_BRACKET); + this.state = 6499; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,855,this._ctx); + if(la_===1) { + this.state = 6481; + this.match(TSqlParser.WITH); + this.state = 6487; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FULLSCAN: + this.state = 6482; + this.match(TSqlParser.FULLSCAN); + break; + case TSqlParser.SAMPLE: + this.state = 6483; + this.match(TSqlParser.SAMPLE); + this.state = 6484; + this.match(TSqlParser.DECIMAL); + this.state = 6485; + _la = this._input.LA(1); + if(!(_la===TSqlParser.PERCENT || _la===TSqlParser.ROWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.STATS_STREAM: + this.state = 6486; + this.match(TSqlParser.STATS_STREAM); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6491; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,853,this._ctx); + if(la_===1) { + this.state = 6489; + this.match(TSqlParser.COMMA); + this.state = 6490; + this.match(TSqlParser.NORECOMPUTE); + + } + this.state = 6497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6493; + this.match(TSqlParser.COMMA); + this.state = 6494; + this.match(TSqlParser.INCREMENTAL); + this.state = 6495; + this.match(TSqlParser.EQUAL); + this.state = 6496; + this.on_off(); + } + + + } + this.state = 6502; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,856,this._ctx); + if(la_===1) { + this.state = 6501; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Update_statisticsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_update_statistics; + return this; +} + +Update_statisticsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Update_statisticsContext.prototype.constructor = Update_statisticsContext; + +Update_statisticsContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Update_statisticsContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Update_statisticsContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Update_statisticsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Update_statisticsContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Update_statisticsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Update_statisticsContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Update_statisticsContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Update_statisticsContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Update_statisticsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUpdate_statistics(this); + } +}; + +Update_statisticsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUpdate_statistics(this); + } +}; + +Update_statisticsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUpdate_statistics(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Update_statisticsContext = Update_statisticsContext; + +TSqlParser.prototype.update_statistics = function() { + + var localctx = new Update_statisticsContext(this, this._ctx, this.state); + this.enterRule(localctx, 490, TSqlParser.RULE_update_statistics); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6504; + this.match(TSqlParser.UPDATE); + this.state = 6506; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL || _la===TSqlParser.INDEX) { + this.state = 6505; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.INDEX)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6508; + this.match(TSqlParser.STATISTICS); + this.state = 6509; + this.full_table_name(); + this.state = 6511; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,858,this._ctx); + if(la_===1) { + this.state = 6510; + this.id(); + + } + this.state = 6516; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,859,this._ctx); + if(la_===1) { + this.state = 6513; + this.match(TSqlParser.USING); + this.state = 6514; + this.match(TSqlParser.DECIMAL); + this.state = 6515; + this.match(TSqlParser.VALUES); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_table; + return this; +} + +Create_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_tableContext.prototype.constructor = Create_tableContext; + +Create_tableContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Create_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Create_tableContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_tableContext.prototype.column_def_table_constraints = function() { + return this.getTypedRuleContext(Column_def_table_constraintsContext,0); +}; + +Create_tableContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_tableContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Create_tableContext.prototype.LOCK = function() { + return this.getToken(TSqlParser.LOCK, 0); +}; + +Create_tableContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +Create_tableContext.prototype.table_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_optionsContext); + } else { + return this.getTypedRuleContext(Table_optionsContext,i); + } +}; + +Create_tableContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_tableContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_tableContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT); + } else { + return this.getToken(TSqlParser.DEFAULT, i); + } +}; + + +Create_tableContext.prototype.TEXTIMAGE_ON = function() { + return this.getToken(TSqlParser.TEXTIMAGE_ON, 0); +}; + +Create_tableContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_table(this); + } +}; + +Create_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_table(this); + } +}; + +Create_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_tableContext = Create_tableContext; + +TSqlParser.prototype.create_table = function() { + + var localctx = new Create_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 492, TSqlParser.RULE_create_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6518; + this.match(TSqlParser.CREATE); + this.state = 6519; + this.match(TSqlParser.TABLE); + this.state = 6520; + this.table_name(); + this.state = 6521; + this.match(TSqlParser.LR_BRACKET); + this.state = 6522; + this.column_def_table_constraints(); + this.state = 6524; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6523; + this.match(TSqlParser.COMMA); + } + + this.state = 6526; + this.match(TSqlParser.RR_BRACKET); + this.state = 6529; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,861,this._ctx); + if(la_===1) { + this.state = 6527; + this.match(TSqlParser.LOCK); + this.state = 6528; + this.simple_id(); + + } + this.state = 6534; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,862,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 6531; + this.table_options(); + } + this.state = 6536; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,862,this._ctx); + } + + this.state = 6540; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,863,this._ctx); + if(la_===1) { + this.state = 6537; + this.match(TSqlParser.ON); + this.state = 6538; + this.id(); + + } else if(la_===2) { + this.state = 6539; + this.match(TSqlParser.DEFAULT); + + } + this.state = 6545; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,864,this._ctx); + if(la_===1) { + this.state = 6542; + this.match(TSqlParser.TEXTIMAGE_ON); + this.state = 6543; + this.id(); + + } else if(la_===2) { + this.state = 6544; + this.match(TSqlParser.DEFAULT); + + } + this.state = 6548; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,865,this._ctx); + if(la_===1) { + this.state = 6547; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_options; + return this; +} + +Table_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_optionsContext.prototype.constructor = Table_optionsContext; + +Table_optionsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Table_optionsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Table_optionsContext.prototype.index_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_optionContext); + } else { + return this.getTypedRuleContext(Index_optionContext,i); + } +}; + +Table_optionsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Table_optionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Table_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_options(this); + } +}; + +Table_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_options(this); + } +}; + +Table_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_optionsContext = Table_optionsContext; + +TSqlParser.prototype.table_options = function() { + + var localctx = new Table_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 494, TSqlParser.RULE_table_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6550; + this.match(TSqlParser.WITH); + this.state = 6570; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LR_BRACKET: + this.state = 6551; + this.match(TSqlParser.LR_BRACKET); + this.state = 6552; + this.index_option(); + this.state = 6557; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6553; + this.match(TSqlParser.COMMA); + this.state = 6554; + this.index_option(); + this.state = 6559; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6560; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.ID: + this.state = 6562; + this.index_option(); + this.state = 6567; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6563; + this.match(TSqlParser.COMMA); + this.state = 6564; + this.index_option(); + this.state = 6569; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_viewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_view; + return this; +} + +Create_viewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_viewContext.prototype.constructor = Create_viewContext; + +Create_viewContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_viewContext.prototype.VIEW = function() { + return this.getToken(TSqlParser.VIEW, 0); +}; + +Create_viewContext.prototype.simple_name = function() { + return this.getTypedRuleContext(Simple_nameContext,0); +}; + +Create_viewContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_viewContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Create_viewContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_viewContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Create_viewContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_viewContext.prototype.WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WITH); + } else { + return this.getToken(TSqlParser.WITH, i); + } +}; + + +Create_viewContext.prototype.view_attribute = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(View_attributeContext); + } else { + return this.getTypedRuleContext(View_attributeContext,i); + } +}; + +Create_viewContext.prototype.CHECK = function() { + return this.getToken(TSqlParser.CHECK, 0); +}; + +Create_viewContext.prototype.OPTION = function() { + return this.getToken(TSqlParser.OPTION, 0); +}; + +Create_viewContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_viewContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_viewContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_view(this); + } +}; + +Create_viewContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_view(this); + } +}; + +Create_viewContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_view(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_viewContext = Create_viewContext; + +TSqlParser.prototype.create_view = function() { + + var localctx = new Create_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 496, TSqlParser.RULE_create_view); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6572; + this.match(TSqlParser.CREATE); + this.state = 6573; + this.match(TSqlParser.VIEW); + this.state = 6574; + this.simple_name(); + this.state = 6579; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 6575; + this.match(TSqlParser.LR_BRACKET); + this.state = 6576; + this.column_name_list(); + this.state = 6577; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 6590; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6581; + this.match(TSqlParser.WITH); + this.state = 6582; + this.view_attribute(); + this.state = 6587; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6583; + this.match(TSqlParser.COMMA); + this.state = 6584; + this.view_attribute(); + this.state = 6589; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6592; + this.match(TSqlParser.AS); + this.state = 6593; + this.select_statement(); + this.state = 6597; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,872,this._ctx); + if(la_===1) { + this.state = 6594; + this.match(TSqlParser.WITH); + this.state = 6595; + this.match(TSqlParser.CHECK); + this.state = 6596; + this.match(TSqlParser.OPTION); + + } + this.state = 6600; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,873,this._ctx); + if(la_===1) { + this.state = 6599; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function View_attributeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_view_attribute; + return this; +} + +View_attributeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +View_attributeContext.prototype.constructor = View_attributeContext; + +View_attributeContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +View_attributeContext.prototype.SCHEMABINDING = function() { + return this.getToken(TSqlParser.SCHEMABINDING, 0); +}; + +View_attributeContext.prototype.VIEW_METADATA = function() { + return this.getToken(TSqlParser.VIEW_METADATA, 0); +}; + +View_attributeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterView_attribute(this); + } +}; + +View_attributeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitView_attribute(this); + } +}; + +View_attributeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitView_attribute(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.View_attributeContext = View_attributeContext; + +TSqlParser.prototype.view_attribute = function() { + + var localctx = new View_attributeContext(this, this._ctx, this.state); + this.enterRule(localctx, 498, TSqlParser.RULE_view_attribute); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6602; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ENCRYPTION || _la===TSqlParser.SCHEMABINDING || _la===TSqlParser.VIEW_METADATA)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_table; + this.constraint = null; // IdContext + this.fk = null; // Column_name_listContext + this.pk = null; // Column_name_listContext + return this; +} + +Alter_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_tableContext.prototype.constructor = Alter_tableContext; + +Alter_tableContext.prototype.ALTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALTER); + } else { + return this.getToken(TSqlParser.ALTER, i); + } +}; + + +Alter_tableContext.prototype.TABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TABLE); + } else { + return this.getToken(TSqlParser.TABLE, i); + } +}; + + +Alter_tableContext.prototype.table_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_nameContext); + } else { + return this.getTypedRuleContext(Table_nameContext,i); + } +}; + +Alter_tableContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_tableContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_tableContext.prototype.LOCK_ESCALATION = function() { + return this.getToken(TSqlParser.LOCK_ESCALATION, 0); +}; + +Alter_tableContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_tableContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_tableContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_tableContext.prototype.column_def_table_constraint = function() { + return this.getTypedRuleContext(Column_def_table_constraintContext,0); +}; + +Alter_tableContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Alter_tableContext.prototype.column_definition = function() { + return this.getTypedRuleContext(Column_definitionContext,0); +}; + +Alter_tableContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_tableContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_tableContext.prototype.CONSTRAINT = function() { + return this.getToken(TSqlParser.CONSTRAINT, 0); +}; + +Alter_tableContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_tableContext.prototype.CHECK = function() { + return this.getToken(TSqlParser.CHECK, 0); +}; + +Alter_tableContext.prototype.FOREIGN = function() { + return this.getToken(TSqlParser.FOREIGN, 0); +}; + +Alter_tableContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_tableContext.prototype.REFERENCES = function() { + return this.getToken(TSqlParser.REFERENCES, 0); +}; + +Alter_tableContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Alter_tableContext.prototype.REBUILD = function() { + return this.getToken(TSqlParser.REBUILD, 0); +}; + +Alter_tableContext.prototype.table_options = function() { + return this.getTypedRuleContext(Table_optionsContext,0); +}; + +Alter_tableContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Alter_tableContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_tableContext.prototype.column_name_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_name_listContext); + } else { + return this.getTypedRuleContext(Column_name_listContext,i); + } +}; + +Alter_tableContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_tableContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Alter_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_table(this); + } +}; + +Alter_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_table(this); + } +}; + +Alter_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_tableContext = Alter_tableContext; + +TSqlParser.prototype.alter_table = function() { + + var localctx = new Alter_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 500, TSqlParser.RULE_alter_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6604; + this.match(TSqlParser.ALTER); + this.state = 6605; + this.match(TSqlParser.TABLE); + this.state = 6606; + this.table_name(); + this.state = 6650; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,875,this._ctx); + switch(la_) { + case 1: + this.state = 6607; + this.match(TSqlParser.SET); + this.state = 6608; + this.match(TSqlParser.LR_BRACKET); + this.state = 6609; + this.match(TSqlParser.LOCK_ESCALATION); + this.state = 6610; + this.match(TSqlParser.EQUAL); + this.state = 6611; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TABLE || _la===TSqlParser.AUTO || _la===TSqlParser.DISABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6612; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 6613; + this.match(TSqlParser.ADD); + this.state = 6614; + this.column_def_table_constraint(); + break; + + case 3: + this.state = 6615; + this.match(TSqlParser.ALTER); + this.state = 6616; + this.match(TSqlParser.COLUMN); + this.state = 6617; + this.column_definition(); + break; + + case 4: + this.state = 6618; + this.match(TSqlParser.DROP); + this.state = 6619; + this.match(TSqlParser.COLUMN); + this.state = 6620; + this.id(); + break; + + case 5: + this.state = 6621; + this.match(TSqlParser.DROP); + this.state = 6622; + this.match(TSqlParser.CONSTRAINT); + this.state = 6623; + localctx.constraint = this.id(); + break; + + case 6: + this.state = 6624; + this.match(TSqlParser.WITH); + this.state = 6625; + this.match(TSqlParser.CHECK); + this.state = 6626; + this.match(TSqlParser.ADD); + this.state = 6627; + this.match(TSqlParser.CONSTRAINT); + this.state = 6628; + localctx.constraint = this.id(); + this.state = 6629; + this.match(TSqlParser.FOREIGN); + this.state = 6630; + this.match(TSqlParser.KEY); + this.state = 6631; + this.match(TSqlParser.LR_BRACKET); + this.state = 6632; + localctx.fk = this.column_name_list(); + this.state = 6633; + this.match(TSqlParser.RR_BRACKET); + this.state = 6634; + this.match(TSqlParser.REFERENCES); + this.state = 6635; + this.table_name(); + this.state = 6636; + this.match(TSqlParser.LR_BRACKET); + this.state = 6637; + localctx.pk = this.column_name_list(); + this.state = 6638; + this.match(TSqlParser.RR_BRACKET); + break; + + case 7: + this.state = 6640; + this.match(TSqlParser.CHECK); + this.state = 6641; + this.match(TSqlParser.CONSTRAINT); + this.state = 6642; + localctx.constraint = this.id(); + break; + + case 8: + this.state = 6643; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6644; + this.match(TSqlParser.TRIGGER); + this.state = 6646; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,874,this._ctx); + if(la_===1) { + this.state = 6645; + this.id(); + + } + break; + + case 9: + this.state = 6648; + this.match(TSqlParser.REBUILD); + this.state = 6649; + this.table_options(); + break; + + } + this.state = 6653; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,876,this._ctx); + if(la_===1) { + this.state = 6652; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_database; + this.database = null; // IdContext + this.new_name = null; // IdContext + this.collation = null; // IdContext + return this; +} + +Alter_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_databaseContext.prototype.constructor = Alter_databaseContext; + +Alter_databaseContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Alter_databaseContext.prototype.CURRENT = function() { + return this.getToken(TSqlParser.CURRENT, 0); +}; + +Alter_databaseContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Alter_databaseContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_databaseContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_databaseContext.prototype.COLLATE = function() { + return this.getToken(TSqlParser.COLLATE, 0); +}; + +Alter_databaseContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_databaseContext.prototype.database_optionspec = function() { + return this.getTypedRuleContext(Database_optionspecContext,0); +}; + +Alter_databaseContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_databaseContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Alter_databaseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_databaseContext.prototype.termination = function() { + return this.getTypedRuleContext(TerminationContext,0); +}; + +Alter_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_database(this); + } +}; + +Alter_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_database(this); + } +}; + +Alter_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_databaseContext = Alter_databaseContext; + +TSqlParser.prototype.alter_database = function() { + + var localctx = new Alter_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 502, TSqlParser.RULE_alter_database); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6655; + this.match(TSqlParser.ALTER); + this.state = 6656; + this.match(TSqlParser.DATABASE); + this.state = 6659; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6657; + localctx.database = this.id(); + break; + case TSqlParser.CURRENT: + this.state = 6658; + this.match(TSqlParser.CURRENT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6673; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.MODIFY: + this.state = 6661; + this.match(TSqlParser.MODIFY); + this.state = 6662; + this.match(TSqlParser.NAME); + this.state = 6663; + this.match(TSqlParser.EQUAL); + this.state = 6664; + localctx.new_name = this.id(); + break; + case TSqlParser.COLLATE: + this.state = 6665; + this.match(TSqlParser.COLLATE); + this.state = 6666; + localctx.collation = this.id(); + break; + case TSqlParser.SET: + this.state = 6667; + this.match(TSqlParser.SET); + this.state = 6668; + this.database_optionspec(); + this.state = 6671; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,878,this._ctx); + if(la_===1) { + this.state = 6669; + this.match(TSqlParser.WITH); + this.state = 6670; + this.termination(); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6676; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,880,this._ctx); + if(la_===1) { + this.state = 6675; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Database_optionspecContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_database_optionspec; + return this; +} + +Database_optionspecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Database_optionspecContext.prototype.constructor = Database_optionspecContext; + +Database_optionspecContext.prototype.auto_option = function() { + return this.getTypedRuleContext(Auto_optionContext,0); +}; + +Database_optionspecContext.prototype.change_tracking_option = function() { + return this.getTypedRuleContext(Change_tracking_optionContext,0); +}; + +Database_optionspecContext.prototype.containment_option = function() { + return this.getTypedRuleContext(Containment_optionContext,0); +}; + +Database_optionspecContext.prototype.cursor_option = function() { + return this.getTypedRuleContext(Cursor_optionContext,0); +}; + +Database_optionspecContext.prototype.database_mirroring_option = function() { + return this.getTypedRuleContext(Database_mirroring_optionContext,0); +}; + +Database_optionspecContext.prototype.date_correlation_optimization_option = function() { + return this.getTypedRuleContext(Date_correlation_optimization_optionContext,0); +}; + +Database_optionspecContext.prototype.db_encryption_option = function() { + return this.getTypedRuleContext(Db_encryption_optionContext,0); +}; + +Database_optionspecContext.prototype.db_state_option = function() { + return this.getTypedRuleContext(Db_state_optionContext,0); +}; + +Database_optionspecContext.prototype.db_update_option = function() { + return this.getTypedRuleContext(Db_update_optionContext,0); +}; + +Database_optionspecContext.prototype.db_user_access_option = function() { + return this.getTypedRuleContext(Db_user_access_optionContext,0); +}; + +Database_optionspecContext.prototype.delayed_durability_option = function() { + return this.getTypedRuleContext(Delayed_durability_optionContext,0); +}; + +Database_optionspecContext.prototype.external_access_option = function() { + return this.getTypedRuleContext(External_access_optionContext,0); +}; + +Database_optionspecContext.prototype.FILESTREAM = function() { + return this.getToken(TSqlParser.FILESTREAM, 0); +}; + +Database_optionspecContext.prototype.database_filestream_option = function() { + return this.getTypedRuleContext(Database_filestream_optionContext,0); +}; + +Database_optionspecContext.prototype.hadr_options = function() { + return this.getTypedRuleContext(Hadr_optionsContext,0); +}; + +Database_optionspecContext.prototype.mixed_page_allocation_option = function() { + return this.getTypedRuleContext(Mixed_page_allocation_optionContext,0); +}; + +Database_optionspecContext.prototype.parameterization_option = function() { + return this.getTypedRuleContext(Parameterization_optionContext,0); +}; + +Database_optionspecContext.prototype.recovery_option = function() { + return this.getTypedRuleContext(Recovery_optionContext,0); +}; + +Database_optionspecContext.prototype.service_broker_option = function() { + return this.getTypedRuleContext(Service_broker_optionContext,0); +}; + +Database_optionspecContext.prototype.snapshot_option = function() { + return this.getTypedRuleContext(Snapshot_optionContext,0); +}; + +Database_optionspecContext.prototype.sql_option = function() { + return this.getTypedRuleContext(Sql_optionContext,0); +}; + +Database_optionspecContext.prototype.target_recovery_time_option = function() { + return this.getTypedRuleContext(Target_recovery_time_optionContext,0); +}; + +Database_optionspecContext.prototype.termination = function() { + return this.getTypedRuleContext(TerminationContext,0); +}; + +Database_optionspecContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDatabase_optionspec(this); + } +}; + +Database_optionspecContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDatabase_optionspec(this); + } +}; + +Database_optionspecContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDatabase_optionspec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Database_optionspecContext = Database_optionspecContext; + +TSqlParser.prototype.database_optionspec = function() { + + var localctx = new Database_optionspecContext(this, this._ctx, this.state); + this.enterRule(localctx, 504, TSqlParser.RULE_database_optionspec); + try { + this.state = 6701; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,881,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6678; + this.auto_option(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6679; + this.change_tracking_option(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 6680; + this.containment_option(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 6681; + this.cursor_option(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 6682; + this.database_mirroring_option(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 6683; + this.date_correlation_optimization_option(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 6684; + this.db_encryption_option(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 6685; + this.db_state_option(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 6686; + this.db_update_option(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 6687; + this.db_user_access_option(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 6688; + this.delayed_durability_option(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 6689; + this.external_access_option(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 6690; + this.match(TSqlParser.FILESTREAM); + this.state = 6691; + this.database_filestream_option(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 6692; + this.hadr_options(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 6693; + this.mixed_page_allocation_option(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 6694; + this.parameterization_option(); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 6695; + this.recovery_option(); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 6696; + this.service_broker_option(); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 6697; + this.snapshot_option(); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 6698; + this.sql_option(); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 6699; + this.target_recovery_time_option(); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 6700; + this.termination(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Auto_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_auto_option; + return this; +} + +Auto_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Auto_optionContext.prototype.constructor = Auto_optionContext; + +Auto_optionContext.prototype.AUTO_CLOSE = function() { + return this.getToken(TSqlParser.AUTO_CLOSE, 0); +}; + +Auto_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Auto_optionContext.prototype.AUTO_CREATE_STATISTICS = function() { + return this.getToken(TSqlParser.AUTO_CREATE_STATISTICS, 0); +}; + +Auto_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Auto_optionContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Auto_optionContext.prototype.INCREMENTAL = function() { + return this.getToken(TSqlParser.INCREMENTAL, 0); +}; + +Auto_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Auto_optionContext.prototype.AUTO_SHRINK = function() { + return this.getToken(TSqlParser.AUTO_SHRINK, 0); +}; + +Auto_optionContext.prototype.AUTO_UPDATE_STATISTICS = function() { + return this.getToken(TSqlParser.AUTO_UPDATE_STATISTICS, 0); +}; + +Auto_optionContext.prototype.AUTO_UPDATE_STATISTICS_ASYNC = function() { + return this.getToken(TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC, 0); +}; + +Auto_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAuto_option(this); + } +}; + +Auto_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAuto_option(this); + } +}; + +Auto_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAuto_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Auto_optionContext = Auto_optionContext; + +TSqlParser.prototype.auto_option = function() { + + var localctx = new Auto_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 506, TSqlParser.RULE_auto_option); + var _la = 0; // Token type + try { + this.state = 6720; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO_CLOSE: + this.enterOuterAlt(localctx, 1); + this.state = 6703; + this.match(TSqlParser.AUTO_CLOSE); + this.state = 6704; + this.on_off(); + break; + case TSqlParser.AUTO_CREATE_STATISTICS: + this.enterOuterAlt(localctx, 2); + this.state = 6705; + this.match(TSqlParser.AUTO_CREATE_STATISTICS); + this.state = 6706; + this.match(TSqlParser.OFF); + break; + case TSqlParser.ON: + this.enterOuterAlt(localctx, 3); + this.state = 6707; + this.match(TSqlParser.ON); + this.state = 6712; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.INCREMENTAL: + this.state = 6708; + this.match(TSqlParser.INCREMENTAL); + this.state = 6709; + this.match(TSqlParser.EQUAL); + this.state = 6710; + this.match(TSqlParser.ON); + break; + case TSqlParser.OFF: + this.state = 6711; + this.match(TSqlParser.OFF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.AUTO_SHRINK: + this.enterOuterAlt(localctx, 4); + this.state = 6714; + this.match(TSqlParser.AUTO_SHRINK); + this.state = 6715; + this.on_off(); + break; + case TSqlParser.AUTO_UPDATE_STATISTICS: + this.enterOuterAlt(localctx, 5); + this.state = 6716; + this.match(TSqlParser.AUTO_UPDATE_STATISTICS); + this.state = 6717; + this.on_off(); + break; + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + this.enterOuterAlt(localctx, 6); + this.state = 6718; + this.match(TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC); + this.state = 6719; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Change_tracking_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_change_tracking_option; + return this; +} + +Change_tracking_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Change_tracking_optionContext.prototype.constructor = Change_tracking_optionContext; + +Change_tracking_optionContext.prototype.CHANGE_TRACKING = function() { + return this.getToken(TSqlParser.CHANGE_TRACKING, 0); +}; + +Change_tracking_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Change_tracking_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Change_tracking_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Change_tracking_optionContext.prototype.change_tracking_option_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Change_tracking_option_listContext); + } else { + return this.getTypedRuleContext(Change_tracking_option_listContext,i); + } +}; + +Change_tracking_optionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Change_tracking_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterChange_tracking_option(this); + } +}; + +Change_tracking_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitChange_tracking_option(this); + } +}; + +Change_tracking_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitChange_tracking_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Change_tracking_optionContext = Change_tracking_optionContext; + +TSqlParser.prototype.change_tracking_option = function() { + + var localctx = new Change_tracking_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 508, TSqlParser.RULE_change_tracking_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6722; + this.match(TSqlParser.CHANGE_TRACKING); + this.state = 6723; + this.match(TSqlParser.EQUAL); + this.state = 6739; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.OFF: + this.state = 6724; + this.match(TSqlParser.OFF); + break; + case TSqlParser.ON: + this.state = 6725; + this.match(TSqlParser.ON); + this.state = 6736; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,885,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 6726; + this.change_tracking_option_list(); + this.state = 6731; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6727; + this.match(TSqlParser.COMMA); + this.state = 6728; + this.change_tracking_option_list(); + this.state = 6733; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + this.state = 6738; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,885,this._ctx); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Change_tracking_option_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_change_tracking_option_list; + return this; +} + +Change_tracking_option_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Change_tracking_option_listContext.prototype.constructor = Change_tracking_option_listContext; + +Change_tracking_option_listContext.prototype.AUTO_CLEANUP = function() { + return this.getToken(TSqlParser.AUTO_CLEANUP, 0); +}; + +Change_tracking_option_listContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Change_tracking_option_listContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Change_tracking_option_listContext.prototype.CHANGE_RETENTION = function() { + return this.getToken(TSqlParser.CHANGE_RETENTION, 0); +}; + +Change_tracking_option_listContext.prototype.DAYS = function() { + return this.getToken(TSqlParser.DAYS, 0); +}; + +Change_tracking_option_listContext.prototype.HOURS = function() { + return this.getToken(TSqlParser.HOURS, 0); +}; + +Change_tracking_option_listContext.prototype.MINUTES = function() { + return this.getToken(TSqlParser.MINUTES, 0); +}; + +Change_tracking_option_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterChange_tracking_option_list(this); + } +}; + +Change_tracking_option_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitChange_tracking_option_list(this); + } +}; + +Change_tracking_option_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitChange_tracking_option_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Change_tracking_option_listContext = Change_tracking_option_listContext; + +TSqlParser.prototype.change_tracking_option_list = function() { + + var localctx = new Change_tracking_option_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 510, TSqlParser.RULE_change_tracking_option_list); + var _la = 0; // Token type + try { + this.state = 6747; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO_CLEANUP: + this.enterOuterAlt(localctx, 1); + this.state = 6741; + this.match(TSqlParser.AUTO_CLEANUP); + this.state = 6742; + this.match(TSqlParser.EQUAL); + this.state = 6743; + this.on_off(); + break; + case TSqlParser.CHANGE_RETENTION: + this.enterOuterAlt(localctx, 2); + this.state = 6744; + this.match(TSqlParser.CHANGE_RETENTION); + this.state = 6745; + this.match(TSqlParser.EQUAL); + this.state = 6746; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DAYS || _la===TSqlParser.HOURS || _la===TSqlParser.MINUTES)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Containment_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_containment_option; + return this; +} + +Containment_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Containment_optionContext.prototype.constructor = Containment_optionContext; + +Containment_optionContext.prototype.CONTAINMENT = function() { + return this.getToken(TSqlParser.CONTAINMENT, 0); +}; + +Containment_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Containment_optionContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Containment_optionContext.prototype.PARTIAL = function() { + return this.getToken(TSqlParser.PARTIAL, 0); +}; + +Containment_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterContainment_option(this); + } +}; + +Containment_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitContainment_option(this); + } +}; + +Containment_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitContainment_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Containment_optionContext = Containment_optionContext; + +TSqlParser.prototype.containment_option = function() { + + var localctx = new Containment_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 512, TSqlParser.RULE_containment_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6749; + this.match(TSqlParser.CONTAINMENT); + this.state = 6750; + this.match(TSqlParser.EQUAL); + this.state = 6751; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.PARTIAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Cursor_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_cursor_option; + return this; +} + +Cursor_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Cursor_optionContext.prototype.constructor = Cursor_optionContext; + +Cursor_optionContext.prototype.CURSOR_CLOSE_ON_COMMIT = function() { + return this.getToken(TSqlParser.CURSOR_CLOSE_ON_COMMIT, 0); +}; + +Cursor_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Cursor_optionContext.prototype.CURSOR_DEFAULT = function() { + return this.getToken(TSqlParser.CURSOR_DEFAULT, 0); +}; + +Cursor_optionContext.prototype.LOCAL = function() { + return this.getToken(TSqlParser.LOCAL, 0); +}; + +Cursor_optionContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Cursor_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCursor_option(this); + } +}; + +Cursor_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCursor_option(this); + } +}; + +Cursor_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCursor_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Cursor_optionContext = Cursor_optionContext; + +TSqlParser.prototype.cursor_option = function() { + + var localctx = new Cursor_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 514, TSqlParser.RULE_cursor_option); + var _la = 0; // Token type + try { + this.state = 6757; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + this.enterOuterAlt(localctx, 1); + this.state = 6753; + this.match(TSqlParser.CURSOR_CLOSE_ON_COMMIT); + this.state = 6754; + this.on_off(); + break; + case TSqlParser.CURSOR_DEFAULT: + this.enterOuterAlt(localctx, 2); + this.state = 6755; + this.match(TSqlParser.CURSOR_DEFAULT); + this.state = 6756; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GLOBAL || _la===TSqlParser.LOCAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_endpointContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_endpoint; + this.endpointname = null; // IdContext + this.login = null; // IdContext + this.state = null; // Token + this.port = null; // Token + this.cert_name = null; // IdContext + return this; +} + +Alter_endpointContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_endpointContext.prototype.constructor = Alter_endpointContext; + +Alter_endpointContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_endpointContext.prototype.ENDPOINT = function() { + return this.getToken(TSqlParser.ENDPOINT, 0); +}; + +Alter_endpointContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Alter_endpointContext.prototype.TCP = function() { + return this.getToken(TSqlParser.TCP, 0); +}; + +Alter_endpointContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_endpointContext.prototype.LISTENER_PORT = function() { + return this.getToken(TSqlParser.LISTENER_PORT, 0); +}; + +Alter_endpointContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_endpointContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_endpointContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_endpointContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_endpointContext.prototype.TSQL = function() { + return this.getToken(TSqlParser.TSQL, 0); +}; + +Alter_endpointContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Alter_endpointContext.prototype.SERVICE_BROKER = function() { + return this.getToken(TSqlParser.SERVICE_BROKER, 0); +}; + +Alter_endpointContext.prototype.AUTHENTICATION = function() { + return this.getToken(TSqlParser.AUTHENTICATION, 0); +}; + +Alter_endpointContext.prototype.DATABASE_MIRRORING = function() { + return this.getToken(TSqlParser.DATABASE_MIRRORING, 0); +}; + +Alter_endpointContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_endpointContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Alter_endpointContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Alter_endpointContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_endpointContext.prototype.LISTENER_IP = function() { + return this.getToken(TSqlParser.LISTENER_IP, 0); +}; + +Alter_endpointContext.prototype.WITNESS = function() { + return this.getToken(TSqlParser.WITNESS, 0); +}; + +Alter_endpointContext.prototype.PARTNER = function() { + return this.getToken(TSqlParser.PARTNER, 0); +}; + +Alter_endpointContext.prototype.ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALL); + } else { + return this.getToken(TSqlParser.ALL, i); + } +}; + + +Alter_endpointContext.prototype.IPV4_ADDR = function() { + return this.getToken(TSqlParser.IPV4_ADDR, 0); +}; + +Alter_endpointContext.prototype.IPV6_ADDR = function() { + return this.getToken(TSqlParser.IPV6_ADDR, 0); +}; + +Alter_endpointContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Alter_endpointContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Alter_endpointContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_endpointContext.prototype.MESSAGE_FORWARDING = function() { + return this.getToken(TSqlParser.MESSAGE_FORWARDING, 0); +}; + +Alter_endpointContext.prototype.MESSAGE_FORWARD_SIZE = function() { + return this.getToken(TSqlParser.MESSAGE_FORWARD_SIZE, 0); +}; + +Alter_endpointContext.prototype.STARTED = function() { + return this.getToken(TSqlParser.STARTED, 0); +}; + +Alter_endpointContext.prototype.STOPPED = function() { + return this.getToken(TSqlParser.STOPPED, 0); +}; + +Alter_endpointContext.prototype.DISABLED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DISABLED); + } else { + return this.getToken(TSqlParser.DISABLED, i); + } +}; + + +Alter_endpointContext.prototype.SUPPORTED = function() { + return this.getToken(TSqlParser.SUPPORTED, 0); +}; + +Alter_endpointContext.prototype.REQUIRED = function() { + return this.getToken(TSqlParser.REQUIRED, 0); +}; + +Alter_endpointContext.prototype.ENABLED = function() { + return this.getToken(TSqlParser.ENABLED, 0); +}; + +Alter_endpointContext.prototype.NTLM = function() { + return this.getToken(TSqlParser.NTLM, 0); +}; + +Alter_endpointContext.prototype.KERBEROS = function() { + return this.getToken(TSqlParser.KERBEROS, 0); +}; + +Alter_endpointContext.prototype.NEGOTIATE = function() { + return this.getToken(TSqlParser.NEGOTIATE, 0); +}; + +Alter_endpointContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Alter_endpointContext.prototype.AES = function() { + return this.getToken(TSqlParser.AES, 0); +}; + +Alter_endpointContext.prototype.RC4 = function() { + return this.getToken(TSqlParser.RC4, 0); +}; + +Alter_endpointContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_endpoint(this); + } +}; + +Alter_endpointContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_endpoint(this); + } +}; + +Alter_endpointContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_endpoint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_endpointContext = Alter_endpointContext; + +TSqlParser.prototype.alter_endpoint = function() { + + var localctx = new Alter_endpointContext(this, this._ctx, this.state); + this.enterRule(localctx, 516, TSqlParser.RULE_alter_endpoint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6759; + this.match(TSqlParser.ALTER); + this.state = 6760; + this.match(TSqlParser.ENDPOINT); + this.state = 6761; + localctx.endpointname = this.id(); + this.state = 6764; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 6762; + this.match(TSqlParser.AUTHORIZATION); + this.state = 6763; + localctx.login = this.id(); + } + + this.state = 6773; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.STATE) { + this.state = 6766; + this.match(TSqlParser.STATE); + this.state = 6767; + this.match(TSqlParser.EQUAL); + this.state = 6771; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STARTED: + this.state = 6768; + localctx.state = this.match(TSqlParser.STARTED); + break; + case TSqlParser.STOPPED: + this.state = 6769; + localctx.state = this.match(TSqlParser.STOPPED); + break; + case TSqlParser.DISABLED: + this.state = 6770; + localctx.state = this.match(TSqlParser.DISABLED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 6775; + this.match(TSqlParser.AS); + this.state = 6776; + this.match(TSqlParser.TCP); + this.state = 6777; + this.match(TSqlParser.LR_BRACKET); + this.state = 6778; + this.match(TSqlParser.LISTENER_PORT); + this.state = 6779; + this.match(TSqlParser.EQUAL); + this.state = 6780; + localctx.port = this.match(TSqlParser.DECIMAL); + this.state = 6785; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6781; + this.match(TSqlParser.COMMA); + this.state = 6782; + this.match(TSqlParser.LISTENER_IP); + this.state = 6783; + this.match(TSqlParser.EQUAL); + this.state = 6784; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.IPV4_ADDR || _la===TSqlParser.IPV6_ADDR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6787; + this.match(TSqlParser.RR_BRACKET); + this.state = 6897; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,916,this._ctx); + switch(la_) { + case 1: + this.state = 6788; + this.match(TSqlParser.TSQL); + break; + + case 2: + this.state = 6789; + this.match(TSqlParser.FOR); + this.state = 6790; + this.match(TSqlParser.SERVICE_BROKER); + this.state = 6791; + this.match(TSqlParser.LR_BRACKET); + this.state = 6792; + this.match(TSqlParser.AUTHENTICATION); + this.state = 6793; + this.match(TSqlParser.EQUAL); + this.state = 6810; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WINDOWS: + this.state = 6794; + this.match(TSqlParser.WINDOWS); + this.state = 6796; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM) { + this.state = 6795; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6800; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CERTIFICATE) { + this.state = 6798; + this.match(TSqlParser.CERTIFICATE); + this.state = 6799; + localctx.cert_name = this.id(); + } + + break; + case TSqlParser.CERTIFICATE: + this.state = 6802; + this.match(TSqlParser.CERTIFICATE); + this.state = 6803; + localctx.cert_name = this.id(); + this.state = 6805; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WINDOWS) { + this.state = 6804; + this.match(TSqlParser.WINDOWS); + } + + this.state = 6808; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM) { + this.state = 6807; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6829; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,901,this._ctx); + if(la_===1) { + this.state = 6813; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6812; + this.match(TSqlParser.COMMA); + } + + this.state = 6815; + this.match(TSqlParser.ENCRYPTION); + this.state = 6816; + this.match(TSqlParser.EQUAL); + this.state = 6817; + _la = this._input.LA(1); + if(!(_la===TSqlParser.REQUIRED || _la===TSqlParser.SUPPORTED || _la===TSqlParser.DISABLED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6827; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALGORITHM) { + this.state = 6818; + this.match(TSqlParser.ALGORITHM); + this.state = 6825; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,899,this._ctx); + switch(la_) { + case 1: + this.state = 6819; + this.match(TSqlParser.AES); + break; + + case 2: + this.state = 6820; + this.match(TSqlParser.RC4); + break; + + case 3: + this.state = 6821; + this.match(TSqlParser.AES); + this.state = 6822; + this.match(TSqlParser.RC4); + break; + + case 4: + this.state = 6823; + this.match(TSqlParser.RC4); + this.state = 6824; + this.match(TSqlParser.AES); + break; + + } + } + + + } + this.state = 6837; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,903,this._ctx); + if(la_===1) { + this.state = 6832; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6831; + this.match(TSqlParser.COMMA); + } + + this.state = 6834; + this.match(TSqlParser.MESSAGE_FORWARDING); + this.state = 6835; + this.match(TSqlParser.EQUAL); + this.state = 6836; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ENABLED || _la===TSqlParser.DISABLED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 6845; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MESSAGE_FORWARD_SIZE || _la===TSqlParser.COMMA) { + this.state = 6840; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6839; + this.match(TSqlParser.COMMA); + } + + this.state = 6842; + this.match(TSqlParser.MESSAGE_FORWARD_SIZE); + this.state = 6843; + this.match(TSqlParser.EQUAL); + this.state = 6844; + this.match(TSqlParser.DECIMAL); + } + + this.state = 6847; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.state = 6848; + this.match(TSqlParser.FOR); + this.state = 6849; + this.match(TSqlParser.DATABASE_MIRRORING); + this.state = 6850; + this.match(TSqlParser.LR_BRACKET); + this.state = 6851; + this.match(TSqlParser.AUTHENTICATION); + this.state = 6852; + this.match(TSqlParser.EQUAL); + this.state = 6869; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WINDOWS: + this.state = 6853; + this.match(TSqlParser.WINDOWS); + this.state = 6855; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM) { + this.state = 6854; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6859; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CERTIFICATE) { + this.state = 6857; + this.match(TSqlParser.CERTIFICATE); + this.state = 6858; + localctx.cert_name = this.id(); + } + + break; + case TSqlParser.CERTIFICATE: + this.state = 6861; + this.match(TSqlParser.CERTIFICATE); + this.state = 6862; + localctx.cert_name = this.id(); + this.state = 6864; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WINDOWS) { + this.state = 6863; + this.match(TSqlParser.WINDOWS); + } + + this.state = 6867; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM) { + this.state = 6866; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6888; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,914,this._ctx); + if(la_===1) { + this.state = 6872; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6871; + this.match(TSqlParser.COMMA); + } + + this.state = 6874; + this.match(TSqlParser.ENCRYPTION); + this.state = 6875; + this.match(TSqlParser.EQUAL); + this.state = 6876; + _la = this._input.LA(1); + if(!(_la===TSqlParser.REQUIRED || _la===TSqlParser.SUPPORTED || _la===TSqlParser.DISABLED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6886; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALGORITHM) { + this.state = 6877; + this.match(TSqlParser.ALGORITHM); + this.state = 6884; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,912,this._ctx); + switch(la_) { + case 1: + this.state = 6878; + this.match(TSqlParser.AES); + break; + + case 2: + this.state = 6879; + this.match(TSqlParser.RC4); + break; + + case 3: + this.state = 6880; + this.match(TSqlParser.AES); + this.state = 6881; + this.match(TSqlParser.RC4); + break; + + case 4: + this.state = 6882; + this.match(TSqlParser.RC4); + this.state = 6883; + this.match(TSqlParser.AES); + break; + + } + } + + + } + this.state = 6891; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6890; + this.match(TSqlParser.COMMA); + } + + this.state = 6893; + this.match(TSqlParser.ROLE); + this.state = 6894; + this.match(TSqlParser.EQUAL); + this.state = 6895; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.WITNESS || _la===TSqlParser.PARTNER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6896; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Database_mirroring_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_database_mirroring_option; + return this; +} + +Database_mirroring_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Database_mirroring_optionContext.prototype.constructor = Database_mirroring_optionContext; + +Database_mirroring_optionContext.prototype.mirroring_set_option = function() { + return this.getTypedRuleContext(Mirroring_set_optionContext,0); +}; + +Database_mirroring_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDatabase_mirroring_option(this); + } +}; + +Database_mirroring_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDatabase_mirroring_option(this); + } +}; + +Database_mirroring_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDatabase_mirroring_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Database_mirroring_optionContext = Database_mirroring_optionContext; + +TSqlParser.prototype.database_mirroring_option = function() { + + var localctx = new Database_mirroring_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 518, TSqlParser.RULE_database_mirroring_option); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6899; + this.mirroring_set_option(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mirroring_set_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mirroring_set_option; + return this; +} + +Mirroring_set_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mirroring_set_optionContext.prototype.constructor = Mirroring_set_optionContext; + +Mirroring_set_optionContext.prototype.mirroring_partner = function() { + return this.getTypedRuleContext(Mirroring_partnerContext,0); +}; + +Mirroring_set_optionContext.prototype.partner_option = function() { + return this.getTypedRuleContext(Partner_optionContext,0); +}; + +Mirroring_set_optionContext.prototype.mirroring_witness = function() { + return this.getTypedRuleContext(Mirroring_witnessContext,0); +}; + +Mirroring_set_optionContext.prototype.witness_option = function() { + return this.getTypedRuleContext(Witness_optionContext,0); +}; + +Mirroring_set_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMirroring_set_option(this); + } +}; + +Mirroring_set_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMirroring_set_option(this); + } +}; + +Mirroring_set_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMirroring_set_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mirroring_set_optionContext = Mirroring_set_optionContext; + +TSqlParser.prototype.mirroring_set_option = function() { + + var localctx = new Mirroring_set_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 520, TSqlParser.RULE_mirroring_set_option); + try { + this.state = 6907; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PARTNER: + this.enterOuterAlt(localctx, 1); + this.state = 6901; + this.mirroring_partner(); + this.state = 6902; + this.partner_option(); + break; + case TSqlParser.WITNESS: + this.enterOuterAlt(localctx, 2); + this.state = 6904; + this.mirroring_witness(); + this.state = 6905; + this.witness_option(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mirroring_partnerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mirroring_partner; + return this; +} + +Mirroring_partnerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mirroring_partnerContext.prototype.constructor = Mirroring_partnerContext; + +Mirroring_partnerContext.prototype.PARTNER = function() { + return this.getToken(TSqlParser.PARTNER, 0); +}; + +Mirroring_partnerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMirroring_partner(this); + } +}; + +Mirroring_partnerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMirroring_partner(this); + } +}; + +Mirroring_partnerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMirroring_partner(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mirroring_partnerContext = Mirroring_partnerContext; + +TSqlParser.prototype.mirroring_partner = function() { + + var localctx = new Mirroring_partnerContext(this, this._ctx, this.state); + this.enterRule(localctx, 522, TSqlParser.RULE_mirroring_partner); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6909; + this.match(TSqlParser.PARTNER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mirroring_witnessContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mirroring_witness; + return this; +} + +Mirroring_witnessContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mirroring_witnessContext.prototype.constructor = Mirroring_witnessContext; + +Mirroring_witnessContext.prototype.WITNESS = function() { + return this.getToken(TSqlParser.WITNESS, 0); +}; + +Mirroring_witnessContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMirroring_witness(this); + } +}; + +Mirroring_witnessContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMirroring_witness(this); + } +}; + +Mirroring_witnessContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMirroring_witness(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mirroring_witnessContext = Mirroring_witnessContext; + +TSqlParser.prototype.mirroring_witness = function() { + + var localctx = new Mirroring_witnessContext(this, this._ctx, this.state); + this.enterRule(localctx, 524, TSqlParser.RULE_mirroring_witness); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6911; + this.match(TSqlParser.WITNESS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Witness_partner_equalContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_witness_partner_equal; + return this; +} + +Witness_partner_equalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Witness_partner_equalContext.prototype.constructor = Witness_partner_equalContext; + +Witness_partner_equalContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Witness_partner_equalContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWitness_partner_equal(this); + } +}; + +Witness_partner_equalContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWitness_partner_equal(this); + } +}; + +Witness_partner_equalContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWitness_partner_equal(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Witness_partner_equalContext = Witness_partner_equalContext; + +TSqlParser.prototype.witness_partner_equal = function() { + + var localctx = new Witness_partner_equalContext(this, this._ctx, this.state); + this.enterRule(localctx, 526, TSqlParser.RULE_witness_partner_equal); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6913; + this.match(TSqlParser.EQUAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Partner_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_partner_option; + return this; +} + +Partner_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Partner_optionContext.prototype.constructor = Partner_optionContext; + +Partner_optionContext.prototype.witness_partner_equal = function() { + return this.getTypedRuleContext(Witness_partner_equalContext,0); +}; + +Partner_optionContext.prototype.partner_server = function() { + return this.getTypedRuleContext(Partner_serverContext,0); +}; + +Partner_optionContext.prototype.FAILOVER = function() { + return this.getToken(TSqlParser.FAILOVER, 0); +}; + +Partner_optionContext.prototype.FORCE_SERVICE_ALLOW_DATA_LOSS = function() { + return this.getToken(TSqlParser.FORCE_SERVICE_ALLOW_DATA_LOSS, 0); +}; + +Partner_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Partner_optionContext.prototype.RESUME = function() { + return this.getToken(TSqlParser.RESUME, 0); +}; + +Partner_optionContext.prototype.SAFETY = function() { + return this.getToken(TSqlParser.SAFETY, 0); +}; + +Partner_optionContext.prototype.FULL = function() { + return this.getToken(TSqlParser.FULL, 0); +}; + +Partner_optionContext.prototype.SUSPEND = function() { + return this.getToken(TSqlParser.SUSPEND, 0); +}; + +Partner_optionContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Partner_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Partner_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPartner_option(this); + } +}; + +Partner_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPartner_option(this); + } +}; + +Partner_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPartner_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Partner_optionContext = Partner_optionContext; + +TSqlParser.prototype.partner_option = function() { + + var localctx = new Partner_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 528, TSqlParser.RULE_partner_option); + var _la = 0; // Token type + try { + this.state = 6927; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EQUAL: + this.enterOuterAlt(localctx, 1); + this.state = 6915; + this.witness_partner_equal(); + this.state = 6916; + this.partner_server(); + break; + case TSqlParser.FAILOVER: + this.enterOuterAlt(localctx, 2); + this.state = 6918; + this.match(TSqlParser.FAILOVER); + break; + case TSqlParser.FORCE_SERVICE_ALLOW_DATA_LOSS: + this.enterOuterAlt(localctx, 3); + this.state = 6919; + this.match(TSqlParser.FORCE_SERVICE_ALLOW_DATA_LOSS); + break; + case TSqlParser.OFF: + this.enterOuterAlt(localctx, 4); + this.state = 6920; + this.match(TSqlParser.OFF); + break; + case TSqlParser.RESUME: + this.enterOuterAlt(localctx, 5); + this.state = 6921; + this.match(TSqlParser.RESUME); + break; + case TSqlParser.SAFETY: + this.enterOuterAlt(localctx, 6); + this.state = 6922; + this.match(TSqlParser.SAFETY); + this.state = 6923; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FULL || _la===TSqlParser.OFF)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SUSPEND: + this.enterOuterAlt(localctx, 7); + this.state = 6924; + this.match(TSqlParser.SUSPEND); + break; + case TSqlParser.TIMEOUT: + this.enterOuterAlt(localctx, 8); + this.state = 6925; + this.match(TSqlParser.TIMEOUT); + this.state = 6926; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Witness_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_witness_option; + return this; +} + +Witness_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Witness_optionContext.prototype.constructor = Witness_optionContext; + +Witness_optionContext.prototype.witness_partner_equal = function() { + return this.getTypedRuleContext(Witness_partner_equalContext,0); +}; + +Witness_optionContext.prototype.witness_server = function() { + return this.getTypedRuleContext(Witness_serverContext,0); +}; + +Witness_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Witness_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWitness_option(this); + } +}; + +Witness_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWitness_option(this); + } +}; + +Witness_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWitness_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Witness_optionContext = Witness_optionContext; + +TSqlParser.prototype.witness_option = function() { + + var localctx = new Witness_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 530, TSqlParser.RULE_witness_option); + try { + this.state = 6933; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EQUAL: + this.enterOuterAlt(localctx, 1); + this.state = 6929; + this.witness_partner_equal(); + this.state = 6930; + this.witness_server(); + break; + case TSqlParser.OFF: + this.enterOuterAlt(localctx, 2); + this.state = 6932; + this.match(TSqlParser.OFF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Witness_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_witness_server; + return this; +} + +Witness_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Witness_serverContext.prototype.constructor = Witness_serverContext; + +Witness_serverContext.prototype.partner_server = function() { + return this.getTypedRuleContext(Partner_serverContext,0); +}; + +Witness_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWitness_server(this); + } +}; + +Witness_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWitness_server(this); + } +}; + +Witness_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWitness_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Witness_serverContext = Witness_serverContext; + +TSqlParser.prototype.witness_server = function() { + + var localctx = new Witness_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 532, TSqlParser.RULE_witness_server); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6935; + this.partner_server(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Partner_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_partner_server; + return this; +} + +Partner_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Partner_serverContext.prototype.constructor = Partner_serverContext; + +Partner_serverContext.prototype.partner_server_tcp_prefix = function() { + return this.getTypedRuleContext(Partner_server_tcp_prefixContext,0); +}; + +Partner_serverContext.prototype.host = function() { + return this.getTypedRuleContext(HostContext,0); +}; + +Partner_serverContext.prototype.mirroring_host_port_seperator = function() { + return this.getTypedRuleContext(Mirroring_host_port_seperatorContext,0); +}; + +Partner_serverContext.prototype.port_number = function() { + return this.getTypedRuleContext(Port_numberContext,0); +}; + +Partner_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPartner_server(this); + } +}; + +Partner_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPartner_server(this); + } +}; + +Partner_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPartner_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Partner_serverContext = Partner_serverContext; + +TSqlParser.prototype.partner_server = function() { + + var localctx = new Partner_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 534, TSqlParser.RULE_partner_server); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6937; + this.partner_server_tcp_prefix(); + this.state = 6938; + this.host(); + this.state = 6939; + this.mirroring_host_port_seperator(); + this.state = 6940; + this.port_number(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mirroring_host_port_seperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mirroring_host_port_seperator; + return this; +} + +Mirroring_host_port_seperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mirroring_host_port_seperatorContext.prototype.constructor = Mirroring_host_port_seperatorContext; + +Mirroring_host_port_seperatorContext.prototype.COLON = function() { + return this.getToken(TSqlParser.COLON, 0); +}; + +Mirroring_host_port_seperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMirroring_host_port_seperator(this); + } +}; + +Mirroring_host_port_seperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMirroring_host_port_seperator(this); + } +}; + +Mirroring_host_port_seperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMirroring_host_port_seperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mirroring_host_port_seperatorContext = Mirroring_host_port_seperatorContext; + +TSqlParser.prototype.mirroring_host_port_seperator = function() { + + var localctx = new Mirroring_host_port_seperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 536, TSqlParser.RULE_mirroring_host_port_seperator); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6942; + this.match(TSqlParser.COLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Partner_server_tcp_prefixContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_partner_server_tcp_prefix; + return this; +} + +Partner_server_tcp_prefixContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Partner_server_tcp_prefixContext.prototype.constructor = Partner_server_tcp_prefixContext; + +Partner_server_tcp_prefixContext.prototype.TCP = function() { + return this.getToken(TSqlParser.TCP, 0); +}; + +Partner_server_tcp_prefixContext.prototype.COLON = function() { + return this.getToken(TSqlParser.COLON, 0); +}; + +Partner_server_tcp_prefixContext.prototype.DOUBLE_FORWARD_SLASH = function() { + return this.getToken(TSqlParser.DOUBLE_FORWARD_SLASH, 0); +}; + +Partner_server_tcp_prefixContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPartner_server_tcp_prefix(this); + } +}; + +Partner_server_tcp_prefixContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPartner_server_tcp_prefix(this); + } +}; + +Partner_server_tcp_prefixContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPartner_server_tcp_prefix(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Partner_server_tcp_prefixContext = Partner_server_tcp_prefixContext; + +TSqlParser.prototype.partner_server_tcp_prefix = function() { + + var localctx = new Partner_server_tcp_prefixContext(this, this._ctx, this.state); + this.enterRule(localctx, 538, TSqlParser.RULE_partner_server_tcp_prefix); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6944; + this.match(TSqlParser.TCP); + this.state = 6945; + this.match(TSqlParser.COLON); + this.state = 6946; + this.match(TSqlParser.DOUBLE_FORWARD_SLASH); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Port_numberContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_port_number; + this.port = null; // Token + return this; +} + +Port_numberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Port_numberContext.prototype.constructor = Port_numberContext; + +Port_numberContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Port_numberContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPort_number(this); + } +}; + +Port_numberContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPort_number(this); + } +}; + +Port_numberContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPort_number(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Port_numberContext = Port_numberContext; + +TSqlParser.prototype.port_number = function() { + + var localctx = new Port_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 540, TSqlParser.RULE_port_number); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6948; + localctx.port = this.match(TSqlParser.DECIMAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HostContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_host; + return this; +} + +HostContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HostContext.prototype.constructor = HostContext; + +HostContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +HostContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +HostContext.prototype.host = function() { + return this.getTypedRuleContext(HostContext,0); +}; + +HostContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterHost(this); + } +}; + +HostContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitHost(this); + } +}; + +HostContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitHost(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.HostContext = HostContext; + +TSqlParser.prototype.host = function() { + + var localctx = new HostContext(this, this._ctx, this.state); + this.enterRule(localctx, 542, TSqlParser.RULE_host); + try { + this.state = 6960; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,921,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6950; + this.id(); + this.state = 6951; + this.match(TSqlParser.DOT); + this.state = 6952; + this.host(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6958; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,920,this._ctx); + switch(la_) { + case 1: + this.state = 6954; + this.id(); + this.state = 6955; + this.match(TSqlParser.DOT); + break; + + case 2: + this.state = 6957; + this.id(); + break; + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Date_correlation_optimization_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_date_correlation_optimization_option; + return this; +} + +Date_correlation_optimization_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Date_correlation_optimization_optionContext.prototype.constructor = Date_correlation_optimization_optionContext; + +Date_correlation_optimization_optionContext.prototype.DATE_CORRELATION_OPTIMIZATION = function() { + return this.getToken(TSqlParser.DATE_CORRELATION_OPTIMIZATION, 0); +}; + +Date_correlation_optimization_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Date_correlation_optimization_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDate_correlation_optimization_option(this); + } +}; + +Date_correlation_optimization_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDate_correlation_optimization_option(this); + } +}; + +Date_correlation_optimization_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDate_correlation_optimization_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Date_correlation_optimization_optionContext = Date_correlation_optimization_optionContext; + +TSqlParser.prototype.date_correlation_optimization_option = function() { + + var localctx = new Date_correlation_optimization_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 544, TSqlParser.RULE_date_correlation_optimization_option); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6962; + this.match(TSqlParser.DATE_CORRELATION_OPTIMIZATION); + this.state = 6963; + this.on_off(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Db_encryption_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_db_encryption_option; + return this; +} + +Db_encryption_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Db_encryption_optionContext.prototype.constructor = Db_encryption_optionContext; + +Db_encryption_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Db_encryption_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Db_encryption_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDb_encryption_option(this); + } +}; + +Db_encryption_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDb_encryption_option(this); + } +}; + +Db_encryption_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDb_encryption_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Db_encryption_optionContext = Db_encryption_optionContext; + +TSqlParser.prototype.db_encryption_option = function() { + + var localctx = new Db_encryption_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 546, TSqlParser.RULE_db_encryption_option); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6965; + this.match(TSqlParser.ENCRYPTION); + this.state = 6966; + this.on_off(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Db_state_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_db_state_option; + return this; +} + +Db_state_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Db_state_optionContext.prototype.constructor = Db_state_optionContext; + +Db_state_optionContext.prototype.ONLINE = function() { + return this.getToken(TSqlParser.ONLINE, 0); +}; + +Db_state_optionContext.prototype.OFFLINE = function() { + return this.getToken(TSqlParser.OFFLINE, 0); +}; + +Db_state_optionContext.prototype.EMERGENCY = function() { + return this.getToken(TSqlParser.EMERGENCY, 0); +}; + +Db_state_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDb_state_option(this); + } +}; + +Db_state_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDb_state_option(this); + } +}; + +Db_state_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDb_state_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Db_state_optionContext = Db_state_optionContext; + +TSqlParser.prototype.db_state_option = function() { + + var localctx = new Db_state_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 548, TSqlParser.RULE_db_state_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6968; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EMERGENCY || _la===TSqlParser.OFFLINE || _la===TSqlParser.ONLINE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Db_update_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_db_update_option; + return this; +} + +Db_update_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Db_update_optionContext.prototype.constructor = Db_update_optionContext; + +Db_update_optionContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Db_update_optionContext.prototype.READ_WRITE = function() { + return this.getToken(TSqlParser.READ_WRITE, 0); +}; + +Db_update_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDb_update_option(this); + } +}; + +Db_update_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDb_update_option(this); + } +}; + +Db_update_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDb_update_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Db_update_optionContext = Db_update_optionContext; + +TSqlParser.prototype.db_update_option = function() { + + var localctx = new Db_update_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 550, TSqlParser.RULE_db_update_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6970; + _la = this._input.LA(1); + if(!(_la===TSqlParser.READ_ONLY || _la===TSqlParser.READ_WRITE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Db_user_access_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_db_user_access_option; + return this; +} + +Db_user_access_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Db_user_access_optionContext.prototype.constructor = Db_user_access_optionContext; + +Db_user_access_optionContext.prototype.SINGLE_USER = function() { + return this.getToken(TSqlParser.SINGLE_USER, 0); +}; + +Db_user_access_optionContext.prototype.RESTRICTED_USER = function() { + return this.getToken(TSqlParser.RESTRICTED_USER, 0); +}; + +Db_user_access_optionContext.prototype.MULTI_USER = function() { + return this.getToken(TSqlParser.MULTI_USER, 0); +}; + +Db_user_access_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDb_user_access_option(this); + } +}; + +Db_user_access_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDb_user_access_option(this); + } +}; + +Db_user_access_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDb_user_access_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Db_user_access_optionContext = Db_user_access_optionContext; + +TSqlParser.prototype.db_user_access_option = function() { + + var localctx = new Db_user_access_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 552, TSqlParser.RULE_db_user_access_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6972; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MULTI_USER || _la===TSqlParser.RESTRICTED_USER || _la===TSqlParser.SINGLE_USER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Delayed_durability_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_delayed_durability_option; + return this; +} + +Delayed_durability_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Delayed_durability_optionContext.prototype.constructor = Delayed_durability_optionContext; + +Delayed_durability_optionContext.prototype.DELAYED_DURABILITY = function() { + return this.getToken(TSqlParser.DELAYED_DURABILITY, 0); +}; + +Delayed_durability_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Delayed_durability_optionContext.prototype.DISABLED = function() { + return this.getToken(TSqlParser.DISABLED, 0); +}; + +Delayed_durability_optionContext.prototype.ALLOWED = function() { + return this.getToken(TSqlParser.ALLOWED, 0); +}; + +Delayed_durability_optionContext.prototype.FORCED = function() { + return this.getToken(TSqlParser.FORCED, 0); +}; + +Delayed_durability_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDelayed_durability_option(this); + } +}; + +Delayed_durability_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDelayed_durability_option(this); + } +}; + +Delayed_durability_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDelayed_durability_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Delayed_durability_optionContext = Delayed_durability_optionContext; + +TSqlParser.prototype.delayed_durability_option = function() { + + var localctx = new Delayed_durability_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 554, TSqlParser.RULE_delayed_durability_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6974; + this.match(TSqlParser.DELAYED_DURABILITY); + this.state = 6975; + this.match(TSqlParser.EQUAL); + this.state = 6976; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALLOWED || _la===TSqlParser.DISABLED || _la===TSqlParser.FORCED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function External_access_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_external_access_option; + return this; +} + +External_access_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +External_access_optionContext.prototype.constructor = External_access_optionContext; + +External_access_optionContext.prototype.DB_CHAINING = function() { + return this.getToken(TSqlParser.DB_CHAINING, 0); +}; + +External_access_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +External_access_optionContext.prototype.TRUSTWORTHY = function() { + return this.getToken(TSqlParser.TRUSTWORTHY, 0); +}; + +External_access_optionContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +External_access_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +External_access_optionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +External_access_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +External_access_optionContext.prototype.DEFAULT_FULLTEXT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE, 0); +}; + +External_access_optionContext.prototype.NESTED_TRIGGERS = function() { + return this.getToken(TSqlParser.NESTED_TRIGGERS, 0); +}; + +External_access_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +External_access_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +External_access_optionContext.prototype.TRANSFORM_NOISE_WORDS = function() { + return this.getToken(TSqlParser.TRANSFORM_NOISE_WORDS, 0); +}; + +External_access_optionContext.prototype.TWO_DIGIT_YEAR_CUTOFF = function() { + return this.getToken(TSqlParser.TWO_DIGIT_YEAR_CUTOFF, 0); +}; + +External_access_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +External_access_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExternal_access_option(this); + } +}; + +External_access_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExternal_access_option(this); + } +}; + +External_access_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExternal_access_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.External_access_optionContext = External_access_optionContext; + +TSqlParser.prototype.external_access_option = function() { + + var localctx = new External_access_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 556, TSqlParser.RULE_external_access_option); + var _la = 0; // Token type + try { + this.state = 7003; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DB_CHAINING: + this.enterOuterAlt(localctx, 1); + this.state = 6978; + this.match(TSqlParser.DB_CHAINING); + this.state = 6979; + this.on_off(); + break; + case TSqlParser.TRUSTWORTHY: + this.enterOuterAlt(localctx, 2); + this.state = 6980; + this.match(TSqlParser.TRUSTWORTHY); + this.state = 6981; + this.on_off(); + break; + case TSqlParser.DEFAULT_LANGUAGE: + this.enterOuterAlt(localctx, 3); + this.state = 6982; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 6983; + this.match(TSqlParser.EQUAL); + this.state = 6986; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6984; + this.id(); + break; + case TSqlParser.STRING: + this.state = 6985; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + this.enterOuterAlt(localctx, 4); + this.state = 6988; + this.match(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE); + this.state = 6989; + this.match(TSqlParser.EQUAL); + this.state = 6992; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6990; + this.id(); + break; + case TSqlParser.STRING: + this.state = 6991; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NESTED_TRIGGERS: + this.enterOuterAlt(localctx, 5); + this.state = 6994; + this.match(TSqlParser.NESTED_TRIGGERS); + this.state = 6995; + this.match(TSqlParser.EQUAL); + this.state = 6996; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TRANSFORM_NOISE_WORDS: + this.enterOuterAlt(localctx, 6); + this.state = 6997; + this.match(TSqlParser.TRANSFORM_NOISE_WORDS); + this.state = 6998; + this.match(TSqlParser.EQUAL); + this.state = 6999; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + this.enterOuterAlt(localctx, 7); + this.state = 7000; + this.match(TSqlParser.TWO_DIGIT_YEAR_CUTOFF); + this.state = 7001; + this.match(TSqlParser.EQUAL); + this.state = 7002; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Hadr_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_hadr_options; + this.availability_group_name = null; // IdContext + return this; +} + +Hadr_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Hadr_optionsContext.prototype.constructor = Hadr_optionsContext; + +Hadr_optionsContext.prototype.HADR = function() { + return this.getToken(TSqlParser.HADR, 0); +}; + +Hadr_optionsContext.prototype.SUSPEND = function() { + return this.getToken(TSqlParser.SUSPEND, 0); +}; + +Hadr_optionsContext.prototype.RESUME = function() { + return this.getToken(TSqlParser.RESUME, 0); +}; + +Hadr_optionsContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Hadr_optionsContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Hadr_optionsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Hadr_optionsContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Hadr_optionsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Hadr_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterHadr_options(this); + } +}; + +Hadr_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitHadr_options(this); + } +}; + +Hadr_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitHadr_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Hadr_optionsContext = Hadr_optionsContext; + +TSqlParser.prototype.hadr_options = function() { + + var localctx = new Hadr_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 558, TSqlParser.RULE_hadr_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7005; + this.match(TSqlParser.HADR); + this.state = 7014; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.OFF: + case TSqlParser.AVAILABILITY: + this.state = 7011; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AVAILABILITY: + this.state = 7006; + this.match(TSqlParser.AVAILABILITY); + this.state = 7007; + this.match(TSqlParser.GROUP); + this.state = 7008; + this.match(TSqlParser.EQUAL); + this.state = 7009; + localctx.availability_group_name = this.id(); + break; + case TSqlParser.OFF: + this.state = 7010; + this.match(TSqlParser.OFF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.RESUME: + case TSqlParser.SUSPEND: + this.state = 7013; + _la = this._input.LA(1); + if(!(_la===TSqlParser.RESUME || _la===TSqlParser.SUSPEND)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mixed_page_allocation_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mixed_page_allocation_option; + return this; +} + +Mixed_page_allocation_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mixed_page_allocation_optionContext.prototype.constructor = Mixed_page_allocation_optionContext; + +Mixed_page_allocation_optionContext.prototype.MIXED_PAGE_ALLOCATION = function() { + return this.getToken(TSqlParser.MIXED_PAGE_ALLOCATION, 0); +}; + +Mixed_page_allocation_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Mixed_page_allocation_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Mixed_page_allocation_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMixed_page_allocation_option(this); + } +}; + +Mixed_page_allocation_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMixed_page_allocation_option(this); + } +}; + +Mixed_page_allocation_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMixed_page_allocation_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mixed_page_allocation_optionContext = Mixed_page_allocation_optionContext; + +TSqlParser.prototype.mixed_page_allocation_option = function() { + + var localctx = new Mixed_page_allocation_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 560, TSqlParser.RULE_mixed_page_allocation_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7016; + this.match(TSqlParser.MIXED_PAGE_ALLOCATION); + this.state = 7017; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Parameterization_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_parameterization_option; + return this; +} + +Parameterization_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Parameterization_optionContext.prototype.constructor = Parameterization_optionContext; + +Parameterization_optionContext.prototype.PARAMETERIZATION = function() { + return this.getToken(TSqlParser.PARAMETERIZATION, 0); +}; + +Parameterization_optionContext.prototype.SIMPLE = function() { + return this.getToken(TSqlParser.SIMPLE, 0); +}; + +Parameterization_optionContext.prototype.FORCED = function() { + return this.getToken(TSqlParser.FORCED, 0); +}; + +Parameterization_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterParameterization_option(this); + } +}; + +Parameterization_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitParameterization_option(this); + } +}; + +Parameterization_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitParameterization_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Parameterization_optionContext = Parameterization_optionContext; + +TSqlParser.prototype.parameterization_option = function() { + + var localctx = new Parameterization_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 562, TSqlParser.RULE_parameterization_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7019; + this.match(TSqlParser.PARAMETERIZATION); + this.state = 7020; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FORCED || _la===TSqlParser.SIMPLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Recovery_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_recovery_option; + return this; +} + +Recovery_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Recovery_optionContext.prototype.constructor = Recovery_optionContext; + +Recovery_optionContext.prototype.RECOVERY = function() { + return this.getToken(TSqlParser.RECOVERY, 0); +}; + +Recovery_optionContext.prototype.FULL = function() { + return this.getToken(TSqlParser.FULL, 0); +}; + +Recovery_optionContext.prototype.BULK_LOGGED = function() { + return this.getToken(TSqlParser.BULK_LOGGED, 0); +}; + +Recovery_optionContext.prototype.SIMPLE = function() { + return this.getToken(TSqlParser.SIMPLE, 0); +}; + +Recovery_optionContext.prototype.TORN_PAGE_DETECTION = function() { + return this.getToken(TSqlParser.TORN_PAGE_DETECTION, 0); +}; + +Recovery_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Recovery_optionContext.prototype.PAGE_VERIFY = function() { + return this.getToken(TSqlParser.PAGE_VERIFY, 0); +}; + +Recovery_optionContext.prototype.CHECKSUM = function() { + return this.getToken(TSqlParser.CHECKSUM, 0); +}; + +Recovery_optionContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Recovery_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRecovery_option(this); + } +}; + +Recovery_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRecovery_option(this); + } +}; + +Recovery_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRecovery_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Recovery_optionContext = Recovery_optionContext; + +TSqlParser.prototype.recovery_option = function() { + + var localctx = new Recovery_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 564, TSqlParser.RULE_recovery_option); + var _la = 0; // Token type + try { + this.state = 7028; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.RECOVERY: + this.enterOuterAlt(localctx, 1); + this.state = 7022; + this.match(TSqlParser.RECOVERY); + this.state = 7023; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FULL || _la===TSqlParser.BULK_LOGGED || _la===TSqlParser.SIMPLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TORN_PAGE_DETECTION: + this.enterOuterAlt(localctx, 2); + this.state = 7024; + this.match(TSqlParser.TORN_PAGE_DETECTION); + this.state = 7025; + this.on_off(); + break; + case TSqlParser.PAGE_VERIFY: + this.enterOuterAlt(localctx, 3); + this.state = 7026; + this.match(TSqlParser.PAGE_VERIFY); + this.state = 7027; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.CHECKSUM || _la===TSqlParser.TORN_PAGE_DETECTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Service_broker_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_service_broker_option; + return this; +} + +Service_broker_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Service_broker_optionContext.prototype.constructor = Service_broker_optionContext; + +Service_broker_optionContext.prototype.ENABLE_BROKER = function() { + return this.getToken(TSqlParser.ENABLE_BROKER, 0); +}; + +Service_broker_optionContext.prototype.DISABLE_BROKER = function() { + return this.getToken(TSqlParser.DISABLE_BROKER, 0); +}; + +Service_broker_optionContext.prototype.NEW_BROKER = function() { + return this.getToken(TSqlParser.NEW_BROKER, 0); +}; + +Service_broker_optionContext.prototype.ERROR_BROKER_CONVERSATIONS = function() { + return this.getToken(TSqlParser.ERROR_BROKER_CONVERSATIONS, 0); +}; + +Service_broker_optionContext.prototype.HONOR_BROKER_PRIORITY = function() { + return this.getToken(TSqlParser.HONOR_BROKER_PRIORITY, 0); +}; + +Service_broker_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Service_broker_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterService_broker_option(this); + } +}; + +Service_broker_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitService_broker_option(this); + } +}; + +Service_broker_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitService_broker_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Service_broker_optionContext = Service_broker_optionContext; + +TSqlParser.prototype.service_broker_option = function() { + + var localctx = new Service_broker_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 566, TSqlParser.RULE_service_broker_option); + try { + this.state = 7036; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENABLE_BROKER: + this.enterOuterAlt(localctx, 1); + this.state = 7030; + this.match(TSqlParser.ENABLE_BROKER); + break; + case TSqlParser.DISABLE_BROKER: + this.enterOuterAlt(localctx, 2); + this.state = 7031; + this.match(TSqlParser.DISABLE_BROKER); + break; + case TSqlParser.NEW_BROKER: + this.enterOuterAlt(localctx, 3); + this.state = 7032; + this.match(TSqlParser.NEW_BROKER); + break; + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + this.enterOuterAlt(localctx, 4); + this.state = 7033; + this.match(TSqlParser.ERROR_BROKER_CONVERSATIONS); + break; + case TSqlParser.HONOR_BROKER_PRIORITY: + this.enterOuterAlt(localctx, 5); + this.state = 7034; + this.match(TSqlParser.HONOR_BROKER_PRIORITY); + this.state = 7035; + this.on_off(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Snapshot_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_snapshot_option; + this.MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = null; // Token + return this; +} + +Snapshot_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Snapshot_optionContext.prototype.constructor = Snapshot_optionContext; + +Snapshot_optionContext.prototype.ALLOW_SNAPSHOT_ISOLATION = function() { + return this.getToken(TSqlParser.ALLOW_SNAPSHOT_ISOLATION, 0); +}; + +Snapshot_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Snapshot_optionContext.prototype.READ_COMMITTED_SNAPSHOT = function() { + return this.getToken(TSqlParser.READ_COMMITTED_SNAPSHOT, 0); +}; + +Snapshot_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Snapshot_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Snapshot_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSnapshot_option(this); + } +}; + +Snapshot_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSnapshot_option(this); + } +}; + +Snapshot_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSnapshot_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Snapshot_optionContext = Snapshot_optionContext; + +TSqlParser.prototype.snapshot_option = function() { + + var localctx = new Snapshot_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 568, TSqlParser.RULE_snapshot_option); + var _la = 0; // Token type + try { + this.state = 7043; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + this.enterOuterAlt(localctx, 1); + this.state = 7038; + this.match(TSqlParser.ALLOW_SNAPSHOT_ISOLATION); + this.state = 7039; + this.on_off(); + break; + case TSqlParser.READ_COMMITTED_SNAPSHOT: + this.enterOuterAlt(localctx, 2); + this.state = 7040; + this.match(TSqlParser.READ_COMMITTED_SNAPSHOT); + this.state = 7041; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.OFF: + case TSqlParser.ON: + this.enterOuterAlt(localctx, 3); + this.state = 7042; + localctx.MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + localctx.MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Sql_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sql_option; + return this; +} + +Sql_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Sql_optionContext.prototype.constructor = Sql_optionContext; + +Sql_optionContext.prototype.ANSI_NULL_DEFAULT = function() { + return this.getToken(TSqlParser.ANSI_NULL_DEFAULT, 0); +}; + +Sql_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Sql_optionContext.prototype.ANSI_NULLS = function() { + return this.getToken(TSqlParser.ANSI_NULLS, 0); +}; + +Sql_optionContext.prototype.ANSI_PADDING = function() { + return this.getToken(TSqlParser.ANSI_PADDING, 0); +}; + +Sql_optionContext.prototype.ANSI_WARNINGS = function() { + return this.getToken(TSqlParser.ANSI_WARNINGS, 0); +}; + +Sql_optionContext.prototype.ARITHABORT = function() { + return this.getToken(TSqlParser.ARITHABORT, 0); +}; + +Sql_optionContext.prototype.COMPATIBILITY_LEVEL = function() { + return this.getToken(TSqlParser.COMPATIBILITY_LEVEL, 0); +}; + +Sql_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Sql_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Sql_optionContext.prototype.CONCAT_NULL_YIELDS_NULL = function() { + return this.getToken(TSqlParser.CONCAT_NULL_YIELDS_NULL, 0); +}; + +Sql_optionContext.prototype.NUMERIC_ROUNDABORT = function() { + return this.getToken(TSqlParser.NUMERIC_ROUNDABORT, 0); +}; + +Sql_optionContext.prototype.QUOTED_IDENTIFIER = function() { + return this.getToken(TSqlParser.QUOTED_IDENTIFIER, 0); +}; + +Sql_optionContext.prototype.RECURSIVE_TRIGGERS = function() { + return this.getToken(TSqlParser.RECURSIVE_TRIGGERS, 0); +}; + +Sql_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSql_option(this); + } +}; + +Sql_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSql_option(this); + } +}; + +Sql_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSql_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Sql_optionContext = Sql_optionContext; + +TSqlParser.prototype.sql_option = function() { + + var localctx = new Sql_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 570, TSqlParser.RULE_sql_option); + try { + this.state = 7066; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ANSI_NULL_DEFAULT: + this.enterOuterAlt(localctx, 1); + this.state = 7045; + this.match(TSqlParser.ANSI_NULL_DEFAULT); + this.state = 7046; + this.on_off(); + break; + case TSqlParser.ANSI_NULLS: + this.enterOuterAlt(localctx, 2); + this.state = 7047; + this.match(TSqlParser.ANSI_NULLS); + this.state = 7048; + this.on_off(); + break; + case TSqlParser.ANSI_PADDING: + this.enterOuterAlt(localctx, 3); + this.state = 7049; + this.match(TSqlParser.ANSI_PADDING); + this.state = 7050; + this.on_off(); + break; + case TSqlParser.ANSI_WARNINGS: + this.enterOuterAlt(localctx, 4); + this.state = 7051; + this.match(TSqlParser.ANSI_WARNINGS); + this.state = 7052; + this.on_off(); + break; + case TSqlParser.ARITHABORT: + this.enterOuterAlt(localctx, 5); + this.state = 7053; + this.match(TSqlParser.ARITHABORT); + this.state = 7054; + this.on_off(); + break; + case TSqlParser.COMPATIBILITY_LEVEL: + this.enterOuterAlt(localctx, 6); + this.state = 7055; + this.match(TSqlParser.COMPATIBILITY_LEVEL); + this.state = 7056; + this.match(TSqlParser.EQUAL); + this.state = 7057; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + this.enterOuterAlt(localctx, 7); + this.state = 7058; + this.match(TSqlParser.CONCAT_NULL_YIELDS_NULL); + this.state = 7059; + this.on_off(); + break; + case TSqlParser.NUMERIC_ROUNDABORT: + this.enterOuterAlt(localctx, 8); + this.state = 7060; + this.match(TSqlParser.NUMERIC_ROUNDABORT); + this.state = 7061; + this.on_off(); + break; + case TSqlParser.QUOTED_IDENTIFIER: + this.enterOuterAlt(localctx, 9); + this.state = 7062; + this.match(TSqlParser.QUOTED_IDENTIFIER); + this.state = 7063; + this.on_off(); + break; + case TSqlParser.RECURSIVE_TRIGGERS: + this.enterOuterAlt(localctx, 10); + this.state = 7064; + this.match(TSqlParser.RECURSIVE_TRIGGERS); + this.state = 7065; + this.on_off(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Target_recovery_time_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_target_recovery_time_option; + return this; +} + +Target_recovery_time_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Target_recovery_time_optionContext.prototype.constructor = Target_recovery_time_optionContext; + +Target_recovery_time_optionContext.prototype.TARGET_RECOVERY_TIME = function() { + return this.getToken(TSqlParser.TARGET_RECOVERY_TIME, 0); +}; + +Target_recovery_time_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Target_recovery_time_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Target_recovery_time_optionContext.prototype.SECONDS = function() { + return this.getToken(TSqlParser.SECONDS, 0); +}; + +Target_recovery_time_optionContext.prototype.MINUTES = function() { + return this.getToken(TSqlParser.MINUTES, 0); +}; + +Target_recovery_time_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTarget_recovery_time_option(this); + } +}; + +Target_recovery_time_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTarget_recovery_time_option(this); + } +}; + +Target_recovery_time_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTarget_recovery_time_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Target_recovery_time_optionContext = Target_recovery_time_optionContext; + +TSqlParser.prototype.target_recovery_time_option = function() { + + var localctx = new Target_recovery_time_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 572, TSqlParser.RULE_target_recovery_time_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7068; + this.match(TSqlParser.TARGET_RECOVERY_TIME); + this.state = 7069; + this.match(TSqlParser.EQUAL); + this.state = 7070; + this.match(TSqlParser.DECIMAL); + this.state = 7071; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MINUTES || _la===TSqlParser.SECONDS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TerminationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_termination; + this.seconds = null; // Token + return this; +} + +TerminationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TerminationContext.prototype.constructor = TerminationContext; + +TerminationContext.prototype.ROLLBACK = function() { + return this.getToken(TSqlParser.ROLLBACK, 0); +}; + +TerminationContext.prototype.AFTER = function() { + return this.getToken(TSqlParser.AFTER, 0); +}; + +TerminationContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +TerminationContext.prototype.IMMEDIATE = function() { + return this.getToken(TSqlParser.IMMEDIATE, 0); +}; + +TerminationContext.prototype.NO_WAIT = function() { + return this.getToken(TSqlParser.NO_WAIT, 0); +}; + +TerminationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTermination(this); + } +}; + +TerminationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTermination(this); + } +}; + +TerminationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTermination(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.TerminationContext = TerminationContext; + +TSqlParser.prototype.termination = function() { + + var localctx = new TerminationContext(this, this._ctx, this.state); + this.enterRule(localctx, 574, TSqlParser.RULE_termination); + try { + this.state = 7079; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,931,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7073; + this.match(TSqlParser.ROLLBACK); + this.state = 7074; + this.match(TSqlParser.AFTER); + this.state = 7075; + localctx.seconds = this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7076; + this.match(TSqlParser.ROLLBACK); + this.state = 7077; + this.match(TSqlParser.IMMEDIATE); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 7078; + this.match(TSqlParser.NO_WAIT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_index; + return this; +} + +Drop_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_indexContext.prototype.constructor = Drop_indexContext; + +Drop_indexContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_indexContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Drop_indexContext.prototype.drop_relational_or_xml_or_spatial_index = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Drop_relational_or_xml_or_spatial_indexContext); + } else { + return this.getTypedRuleContext(Drop_relational_or_xml_or_spatial_indexContext,i); + } +}; + +Drop_indexContext.prototype.drop_backward_compatible_index = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Drop_backward_compatible_indexContext); + } else { + return this.getTypedRuleContext(Drop_backward_compatible_indexContext,i); + } +}; + +Drop_indexContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_indexContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_indexContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_indexContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_index(this); + } +}; + +Drop_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_index(this); + } +}; + +Drop_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_indexContext = Drop_indexContext; + +TSqlParser.prototype.drop_index = function() { + + var localctx = new Drop_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 576, TSqlParser.RULE_drop_index); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7081; + this.match(TSqlParser.DROP); + this.state = 7082; + this.match(TSqlParser.INDEX); + this.state = 7085; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7083; + this.match(TSqlParser.IF); + this.state = 7084; + this.match(TSqlParser.EXISTS); + } + + this.state = 7103; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,935,this._ctx); + switch(la_) { + case 1: + this.state = 7087; + this.drop_relational_or_xml_or_spatial_index(); + this.state = 7092; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7088; + this.match(TSqlParser.COMMA); + this.state = 7089; + this.drop_relational_or_xml_or_spatial_index(); + this.state = 7094; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 7095; + this.drop_backward_compatible_index(); + this.state = 7100; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7096; + this.match(TSqlParser.COMMA); + this.state = 7097; + this.drop_backward_compatible_index(); + this.state = 7102; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + this.state = 7106; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,936,this._ctx); + if(la_===1) { + this.state = 7105; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_relational_or_xml_or_spatial_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_relational_or_xml_or_spatial_index; + this.index_name = null; // IdContext + return this; +} + +Drop_relational_or_xml_or_spatial_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_relational_or_xml_or_spatial_indexContext.prototype.constructor = Drop_relational_or_xml_or_spatial_indexContext; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_relational_or_xml_or_spatial_index(this); + } +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_relational_or_xml_or_spatial_index(this); + } +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_relational_or_xml_or_spatial_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_relational_or_xml_or_spatial_indexContext = Drop_relational_or_xml_or_spatial_indexContext; + +TSqlParser.prototype.drop_relational_or_xml_or_spatial_index = function() { + + var localctx = new Drop_relational_or_xml_or_spatial_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 578, TSqlParser.RULE_drop_relational_or_xml_or_spatial_index); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7108; + localctx.index_name = this.id(); + this.state = 7109; + this.match(TSqlParser.ON); + this.state = 7110; + this.full_table_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_backward_compatible_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_backward_compatible_index; + this.owner_name = null; // IdContext + this.table_or_view_name = null; // IdContext + this.index_name = null; // IdContext + return this; +} + +Drop_backward_compatible_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_backward_compatible_indexContext.prototype.constructor = Drop_backward_compatible_indexContext; + +Drop_backward_compatible_indexContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_backward_compatible_indexContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_backward_compatible_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_backward_compatible_index(this); + } +}; + +Drop_backward_compatible_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_backward_compatible_index(this); + } +}; + +Drop_backward_compatible_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_backward_compatible_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_backward_compatible_indexContext = Drop_backward_compatible_indexContext; + +TSqlParser.prototype.drop_backward_compatible_index = function() { + + var localctx = new Drop_backward_compatible_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 580, TSqlParser.RULE_drop_backward_compatible_index); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7115; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,937,this._ctx); + if(la_===1) { + this.state = 7112; + localctx.owner_name = this.id(); + this.state = 7113; + this.match(TSqlParser.DOT); + + } + this.state = 7117; + localctx.table_or_view_name = this.id(); + this.state = 7118; + this.match(TSqlParser.DOT); + this.state = 7119; + localctx.index_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_procedureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_procedure; + this.proc = null; // Token + return this; +} + +Drop_procedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_procedureContext.prototype.constructor = Drop_procedureContext; + +Drop_procedureContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_procedureContext.prototype.func_proc_name_schema = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Func_proc_name_schemaContext); + } else { + return this.getTypedRuleContext(Func_proc_name_schemaContext,i); + } +}; + +Drop_procedureContext.prototype.PROC = function() { + return this.getToken(TSqlParser.PROC, 0); +}; + +Drop_procedureContext.prototype.PROCEDURE = function() { + return this.getToken(TSqlParser.PROCEDURE, 0); +}; + +Drop_procedureContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_procedureContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_procedureContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_procedureContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_procedureContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_procedure(this); + } +}; + +Drop_procedureContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_procedure(this); + } +}; + +Drop_procedureContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_procedure(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_procedureContext = Drop_procedureContext; + +TSqlParser.prototype.drop_procedure = function() { + + var localctx = new Drop_procedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 582, TSqlParser.RULE_drop_procedure); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7121; + this.match(TSqlParser.DROP); + this.state = 7122; + localctx.proc = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.PROC || _la===TSqlParser.PROCEDURE)) { + localctx.proc = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7125; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7123; + this.match(TSqlParser.IF); + this.state = 7124; + this.match(TSqlParser.EXISTS); + } + + this.state = 7127; + this.func_proc_name_schema(); + this.state = 7132; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7128; + this.match(TSqlParser.COMMA); + this.state = 7129; + this.func_proc_name_schema(); + this.state = 7134; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7136; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,940,this._ctx); + if(la_===1) { + this.state = 7135; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_trigger; + return this; +} + +Drop_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_triggerContext.prototype.constructor = Drop_triggerContext; + +Drop_triggerContext.prototype.drop_dml_trigger = function() { + return this.getTypedRuleContext(Drop_dml_triggerContext,0); +}; + +Drop_triggerContext.prototype.drop_ddl_trigger = function() { + return this.getTypedRuleContext(Drop_ddl_triggerContext,0); +}; + +Drop_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_trigger(this); + } +}; + +Drop_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_trigger(this); + } +}; + +Drop_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_triggerContext = Drop_triggerContext; + +TSqlParser.prototype.drop_trigger = function() { + + var localctx = new Drop_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 584, TSqlParser.RULE_drop_trigger); + try { + this.state = 7140; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,941,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7138; + this.drop_dml_trigger(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7139; + this.drop_ddl_trigger(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_dml_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_dml_trigger; + return this; +} + +Drop_dml_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_dml_triggerContext.prototype.constructor = Drop_dml_triggerContext; + +Drop_dml_triggerContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_dml_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Drop_dml_triggerContext.prototype.simple_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_nameContext); + } else { + return this.getTypedRuleContext(Simple_nameContext,i); + } +}; + +Drop_dml_triggerContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_dml_triggerContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_dml_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_dml_triggerContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_dml_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_dml_trigger(this); + } +}; + +Drop_dml_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_dml_trigger(this); + } +}; + +Drop_dml_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_dml_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_dml_triggerContext = Drop_dml_triggerContext; + +TSqlParser.prototype.drop_dml_trigger = function() { + + var localctx = new Drop_dml_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 586, TSqlParser.RULE_drop_dml_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7142; + this.match(TSqlParser.DROP); + this.state = 7143; + this.match(TSqlParser.TRIGGER); + this.state = 7146; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7144; + this.match(TSqlParser.IF); + this.state = 7145; + this.match(TSqlParser.EXISTS); + } + + this.state = 7148; + this.simple_name(); + this.state = 7153; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7149; + this.match(TSqlParser.COMMA); + this.state = 7150; + this.simple_name(); + this.state = 7155; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7157; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,944,this._ctx); + if(la_===1) { + this.state = 7156; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_ddl_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_ddl_trigger; + return this; +} + +Drop_ddl_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_ddl_triggerContext.prototype.constructor = Drop_ddl_triggerContext; + +Drop_ddl_triggerContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_ddl_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Drop_ddl_triggerContext.prototype.simple_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_nameContext); + } else { + return this.getTypedRuleContext(Simple_nameContext,i); + } +}; + +Drop_ddl_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_ddl_triggerContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_ddl_triggerContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Drop_ddl_triggerContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_ddl_triggerContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_ddl_triggerContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_ddl_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_ddl_triggerContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_ddl_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_ddl_trigger(this); + } +}; + +Drop_ddl_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_ddl_trigger(this); + } +}; + +Drop_ddl_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_ddl_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_ddl_triggerContext = Drop_ddl_triggerContext; + +TSqlParser.prototype.drop_ddl_trigger = function() { + + var localctx = new Drop_ddl_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 588, TSqlParser.RULE_drop_ddl_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7159; + this.match(TSqlParser.DROP); + this.state = 7160; + this.match(TSqlParser.TRIGGER); + this.state = 7163; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7161; + this.match(TSqlParser.IF); + this.state = 7162; + this.match(TSqlParser.EXISTS); + } + + this.state = 7165; + this.simple_name(); + this.state = 7170; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7166; + this.match(TSqlParser.COMMA); + this.state = 7167; + this.simple_name(); + this.state = 7172; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7173; + this.match(TSqlParser.ON); + this.state = 7177; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DATABASE: + this.state = 7174; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.ALL: + this.state = 7175; + this.match(TSqlParser.ALL); + this.state = 7176; + this.match(TSqlParser.SERVER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7180; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,948,this._ctx); + if(la_===1) { + this.state = 7179; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_function; + return this; +} + +Drop_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_functionContext.prototype.constructor = Drop_functionContext; + +Drop_functionContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_functionContext.prototype.FUNCTION = function() { + return this.getToken(TSqlParser.FUNCTION, 0); +}; + +Drop_functionContext.prototype.func_proc_name_schema = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Func_proc_name_schemaContext); + } else { + return this.getTypedRuleContext(Func_proc_name_schemaContext,i); + } +}; + +Drop_functionContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_functionContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_functionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_functionContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_function(this); + } +}; + +Drop_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_function(this); + } +}; + +Drop_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_functionContext = Drop_functionContext; + +TSqlParser.prototype.drop_function = function() { + + var localctx = new Drop_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 590, TSqlParser.RULE_drop_function); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7182; + this.match(TSqlParser.DROP); + this.state = 7183; + this.match(TSqlParser.FUNCTION); + this.state = 7186; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7184; + this.match(TSqlParser.IF); + this.state = 7185; + this.match(TSqlParser.EXISTS); + } + + this.state = 7188; + this.func_proc_name_schema(); + this.state = 7193; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7189; + this.match(TSqlParser.COMMA); + this.state = 7190; + this.func_proc_name_schema(); + this.state = 7195; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7197; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,951,this._ctx); + if(la_===1) { + this.state = 7196; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_statisticsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_statistics; + this.name = null; // IdContext + return this; +} + +Drop_statisticsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_statisticsContext.prototype.constructor = Drop_statisticsContext; + +Drop_statisticsContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_statisticsContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Drop_statisticsContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_statisticsContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_statisticsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_statisticsContext.prototype.table_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_nameContext); + } else { + return this.getTypedRuleContext(Table_nameContext,i); + } +}; + +Drop_statisticsContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_statisticsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_statistics(this); + } +}; + +Drop_statisticsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_statistics(this); + } +}; + +Drop_statisticsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_statistics(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_statisticsContext = Drop_statisticsContext; + +TSqlParser.prototype.drop_statistics = function() { + + var localctx = new Drop_statisticsContext(this, this._ctx, this.state); + this.enterRule(localctx, 592, TSqlParser.RULE_drop_statistics); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7199; + this.match(TSqlParser.DROP); + this.state = 7200; + this.match(TSqlParser.STATISTICS); + this.state = 7210; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7202; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7201; + this.match(TSqlParser.COMMA); + } + + this.state = 7207; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,953,this._ctx); + if(la_===1) { + this.state = 7204; + this.table_name(); + this.state = 7205; + this.match(TSqlParser.DOT); + + } + this.state = 7209; + localctx.name = this.id(); + this.state = 7212; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.BLOCKING_HIERARCHY || _la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 7214; + this.match(TSqlParser.SEMI); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_table; + return this; +} + +Drop_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_tableContext.prototype.constructor = Drop_tableContext; + +Drop_tableContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Drop_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Drop_tableContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_tableContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_tableContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_table(this); + } +}; + +Drop_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_table(this); + } +}; + +Drop_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_tableContext = Drop_tableContext; + +TSqlParser.prototype.drop_table = function() { + + var localctx = new Drop_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 594, TSqlParser.RULE_drop_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7216; + this.match(TSqlParser.DROP); + this.state = 7217; + this.match(TSqlParser.TABLE); + this.state = 7220; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7218; + this.match(TSqlParser.IF); + this.state = 7219; + this.match(TSqlParser.EXISTS); + } + + this.state = 7222; + this.table_name(); + this.state = 7224; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,956,this._ctx); + if(la_===1) { + this.state = 7223; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_viewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_view; + return this; +} + +Drop_viewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_viewContext.prototype.constructor = Drop_viewContext; + +Drop_viewContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_viewContext.prototype.VIEW = function() { + return this.getToken(TSqlParser.VIEW, 0); +}; + +Drop_viewContext.prototype.simple_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_nameContext); + } else { + return this.getTypedRuleContext(Simple_nameContext,i); + } +}; + +Drop_viewContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_viewContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_viewContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_viewContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_viewContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_view(this); + } +}; + +Drop_viewContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_view(this); + } +}; + +Drop_viewContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_view(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_viewContext = Drop_viewContext; + +TSqlParser.prototype.drop_view = function() { + + var localctx = new Drop_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 596, TSqlParser.RULE_drop_view); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7226; + this.match(TSqlParser.DROP); + this.state = 7227; + this.match(TSqlParser.VIEW); + this.state = 7230; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7228; + this.match(TSqlParser.IF); + this.state = 7229; + this.match(TSqlParser.EXISTS); + } + + this.state = 7232; + this.simple_name(); + this.state = 7237; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7233; + this.match(TSqlParser.COMMA); + this.state = 7234; + this.simple_name(); + this.state = 7239; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7241; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,959,this._ctx); + if(la_===1) { + this.state = 7240; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_type; + this.name = null; // Simple_nameContext + return this; +} + +Create_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_typeContext.prototype.constructor = Create_typeContext; + +Create_typeContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Create_typeContext.prototype.simple_name = function() { + return this.getTypedRuleContext(Simple_nameContext,0); +}; + +Create_typeContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_typeContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Create_typeContext.prototype.default_value = function() { + return this.getTypedRuleContext(Default_valueContext,0); +}; + +Create_typeContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_typeContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Create_typeContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_typeContext.prototype.column_def_table_constraints = function() { + return this.getTypedRuleContext(Column_def_table_constraintsContext,0); +}; + +Create_typeContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_type(this); + } +}; + +Create_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_type(this); + } +}; + +Create_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_typeContext = Create_typeContext; + +TSqlParser.prototype.create_type = function() { + + var localctx = new Create_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 598, TSqlParser.RULE_create_type); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7243; + this.match(TSqlParser.CREATE); + this.state = 7244; + this.match(TSqlParser.TYPE); + this.state = 7245; + localctx.name = this.simple_name(); + this.state = 7250; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 7246; + this.match(TSqlParser.FROM); + this.state = 7247; + this.data_type(); + this.state = 7248; + this.default_value(); + } + + this.state = 7258; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 7252; + this.match(TSqlParser.AS); + this.state = 7253; + this.match(TSqlParser.TABLE); + this.state = 7254; + this.match(TSqlParser.LR_BRACKET); + this.state = 7255; + this.column_def_table_constraints(); + this.state = 7256; + this.match(TSqlParser.RR_BRACKET); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_type; + this.name = null; // Simple_nameContext + return this; +} + +Drop_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_typeContext.prototype.constructor = Drop_typeContext; + +Drop_typeContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Drop_typeContext.prototype.simple_name = function() { + return this.getTypedRuleContext(Simple_nameContext,0); +}; + +Drop_typeContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_typeContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_type(this); + } +}; + +Drop_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_type(this); + } +}; + +Drop_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_typeContext = Drop_typeContext; + +TSqlParser.prototype.drop_type = function() { + + var localctx = new Drop_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 600, TSqlParser.RULE_drop_type); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7260; + this.match(TSqlParser.DROP); + this.state = 7261; + this.match(TSqlParser.TYPE); + this.state = 7264; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7262; + this.match(TSqlParser.IF); + this.state = 7263; + this.match(TSqlParser.EXISTS); + } + + this.state = 7266; + localctx.name = this.simple_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Rowset_function_limitedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_rowset_function_limited; + return this; +} + +Rowset_function_limitedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Rowset_function_limitedContext.prototype.constructor = Rowset_function_limitedContext; + +Rowset_function_limitedContext.prototype.openquery = function() { + return this.getTypedRuleContext(OpenqueryContext,0); +}; + +Rowset_function_limitedContext.prototype.opendatasource = function() { + return this.getTypedRuleContext(OpendatasourceContext,0); +}; + +Rowset_function_limitedContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRowset_function_limited(this); + } +}; + +Rowset_function_limitedContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRowset_function_limited(this); + } +}; + +Rowset_function_limitedContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRowset_function_limited(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Rowset_function_limitedContext = Rowset_function_limitedContext; + +TSqlParser.prototype.rowset_function_limited = function() { + + var localctx = new Rowset_function_limitedContext(this, this._ctx, this.state); + this.enterRule(localctx, 602, TSqlParser.RULE_rowset_function_limited); + try { + this.state = 7270; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.OPENQUERY: + this.enterOuterAlt(localctx, 1); + this.state = 7268; + this.openquery(); + break; + case TSqlParser.OPENDATASOURCE: + this.enterOuterAlt(localctx, 2); + this.state = 7269; + this.opendatasource(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OpenqueryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_openquery; + this.linked_server = null; // IdContext + this.query = null; // Token + return this; +} + +OpenqueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OpenqueryContext.prototype.constructor = OpenqueryContext; + +OpenqueryContext.prototype.OPENQUERY = function() { + return this.getToken(TSqlParser.OPENQUERY, 0); +}; + +OpenqueryContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +OpenqueryContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +OpenqueryContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +OpenqueryContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +OpenqueryContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +OpenqueryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOpenquery(this); + } +}; + +OpenqueryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOpenquery(this); + } +}; + +OpenqueryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOpenquery(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.OpenqueryContext = OpenqueryContext; + +TSqlParser.prototype.openquery = function() { + + var localctx = new OpenqueryContext(this, this._ctx, this.state); + this.enterRule(localctx, 604, TSqlParser.RULE_openquery); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7272; + this.match(TSqlParser.OPENQUERY); + this.state = 7273; + this.match(TSqlParser.LR_BRACKET); + this.state = 7274; + localctx.linked_server = this.id(); + this.state = 7275; + this.match(TSqlParser.COMMA); + this.state = 7276; + localctx.query = this.match(TSqlParser.STRING); + this.state = 7277; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OpendatasourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_opendatasource; + this.provider = null; // Token + this.init = null; // Token + this.database = null; // IdContext + this.scheme = null; // IdContext + this.table = null; // IdContext + return this; +} + +OpendatasourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OpendatasourceContext.prototype.constructor = OpendatasourceContext; + +OpendatasourceContext.prototype.OPENDATASOURCE = function() { + return this.getToken(TSqlParser.OPENDATASOURCE, 0); +}; + +OpendatasourceContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +OpendatasourceContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +OpendatasourceContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +OpendatasourceContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +OpendatasourceContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +OpendatasourceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +OpendatasourceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOpendatasource(this); + } +}; + +OpendatasourceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOpendatasource(this); + } +}; + +OpendatasourceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOpendatasource(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.OpendatasourceContext = OpendatasourceContext; + +TSqlParser.prototype.opendatasource = function() { + + var localctx = new OpendatasourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 606, TSqlParser.RULE_opendatasource); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7279; + this.match(TSqlParser.OPENDATASOURCE); + this.state = 7280; + this.match(TSqlParser.LR_BRACKET); + this.state = 7281; + localctx.provider = this.match(TSqlParser.STRING); + this.state = 7282; + this.match(TSqlParser.COMMA); + this.state = 7283; + localctx.init = this.match(TSqlParser.STRING); + this.state = 7284; + this.match(TSqlParser.RR_BRACKET); + this.state = 7285; + this.match(TSqlParser.DOT); + this.state = 7287; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 7286; + localctx.database = this.id(); + } + + this.state = 7289; + this.match(TSqlParser.DOT); + this.state = 7291; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 7290; + localctx.scheme = this.id(); + } + + this.state = 7293; + this.match(TSqlParser.DOT); + + this.state = 7294; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_statement; + this.xml_namespace_uri = null; // Token + return this; +} + +Declare_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_statementContext.prototype.constructor = Declare_statementContext; + +Declare_statementContext.prototype.DECLARE = function() { + return this.getToken(TSqlParser.DECLARE, 0); +}; + +Declare_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Declare_statementContext.prototype.table_type_definition = function() { + return this.getTypedRuleContext(Table_type_definitionContext,0); +}; + +Declare_statementContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Declare_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Declare_statementContext.prototype.declare_local = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Declare_localContext); + } else { + return this.getTypedRuleContext(Declare_localContext,i); + } +}; + +Declare_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Declare_statementContext.prototype.xml_type_definition = function() { + return this.getTypedRuleContext(Xml_type_definitionContext,0); +}; + +Declare_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Declare_statementContext.prototype.XMLNAMESPACES = function() { + return this.getToken(TSqlParser.XMLNAMESPACES, 0); +}; + +Declare_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Declare_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Declare_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Declare_statementContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Declare_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_statement(this); + } +}; + +Declare_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_statement(this); + } +}; + +Declare_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_statementContext = Declare_statementContext; + +TSqlParser.prototype.declare_statement = function() { + + var localctx = new Declare_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 608, TSqlParser.RULE_declare_statement); + var _la = 0; // Token type + try { + this.state = 7339; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,974,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7296; + this.match(TSqlParser.DECLARE); + this.state = 7297; + this.match(TSqlParser.LOCAL_ID); + this.state = 7299; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 7298; + this.match(TSqlParser.AS); + } + + this.state = 7301; + this.table_type_definition(); + this.state = 7303; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,967,this._ctx); + if(la_===1) { + this.state = 7302; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7305; + this.match(TSqlParser.DECLARE); + this.state = 7306; + this.declare_local(); + this.state = 7311; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7307; + this.match(TSqlParser.COMMA); + this.state = 7308; + this.declare_local(); + this.state = 7313; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7315; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,969,this._ctx); + if(la_===1) { + this.state = 7314; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 7317; + this.match(TSqlParser.DECLARE); + this.state = 7318; + this.match(TSqlParser.LOCAL_ID); + this.state = 7320; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 7319; + this.match(TSqlParser.AS); + } + + this.state = 7322; + this.xml_type_definition(); + this.state = 7324; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,971,this._ctx); + if(la_===1) { + this.state = 7323; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 7326; + this.match(TSqlParser.WITH); + this.state = 7327; + this.match(TSqlParser.XMLNAMESPACES); + this.state = 7328; + this.match(TSqlParser.LR_BRACKET); + this.state = 7329; + localctx.xml_namespace_uri = this.match(TSqlParser.STRING); + this.state = 7331; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7330; + this.match(TSqlParser.COMMA); + } + + this.state = 7333; + this.match(TSqlParser.AS); + this.state = 7334; + this.id(); + this.state = 7335; + this.match(TSqlParser.RR_BRACKET); + this.state = 7337; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,973,this._ctx); + if(la_===1) { + this.state = 7336; + this.match(TSqlParser.SEMI); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Cursor_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_cursor_statement; + return this; +} + +Cursor_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Cursor_statementContext.prototype.constructor = Cursor_statementContext; + +Cursor_statementContext.prototype.CLOSE = function() { + return this.getToken(TSqlParser.CLOSE, 0); +}; + +Cursor_statementContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Cursor_statementContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Cursor_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Cursor_statementContext.prototype.DEALLOCATE = function() { + return this.getToken(TSqlParser.DEALLOCATE, 0); +}; + +Cursor_statementContext.prototype.CURSOR = function() { + return this.getToken(TSqlParser.CURSOR, 0); +}; + +Cursor_statementContext.prototype.declare_cursor = function() { + return this.getTypedRuleContext(Declare_cursorContext,0); +}; + +Cursor_statementContext.prototype.fetch_cursor = function() { + return this.getTypedRuleContext(Fetch_cursorContext,0); +}; + +Cursor_statementContext.prototype.OPEN = function() { + return this.getToken(TSqlParser.OPEN, 0); +}; + +Cursor_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCursor_statement(this); + } +}; + +Cursor_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCursor_statement(this); + } +}; + +Cursor_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCursor_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Cursor_statementContext = Cursor_statementContext; + +TSqlParser.prototype.cursor_statement = function() { + + var localctx = new Cursor_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 610, TSqlParser.RULE_cursor_statement); + var _la = 0; // Token type + try { + this.state = 7370; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CLOSE: + this.enterOuterAlt(localctx, 1); + this.state = 7341; + this.match(TSqlParser.CLOSE); + this.state = 7343; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,975,this._ctx); + if(la_===1) { + this.state = 7342; + this.match(TSqlParser.GLOBAL); + + } + this.state = 7345; + this.cursor_name(); + this.state = 7347; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,976,this._ctx); + if(la_===1) { + this.state = 7346; + this.match(TSqlParser.SEMI); + + } + break; + case TSqlParser.DEALLOCATE: + this.enterOuterAlt(localctx, 2); + this.state = 7349; + this.match(TSqlParser.DEALLOCATE); + this.state = 7351; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,977,this._ctx); + if(la_===1) { + this.state = 7350; + this.match(TSqlParser.GLOBAL); + + } + this.state = 7354; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CURSOR) { + this.state = 7353; + this.match(TSqlParser.CURSOR); + } + + this.state = 7356; + this.cursor_name(); + this.state = 7358; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,979,this._ctx); + if(la_===1) { + this.state = 7357; + this.match(TSqlParser.SEMI); + + } + break; + case TSqlParser.DECLARE: + this.enterOuterAlt(localctx, 3); + this.state = 7360; + this.declare_cursor(); + break; + case TSqlParser.FETCH: + this.enterOuterAlt(localctx, 4); + this.state = 7361; + this.fetch_cursor(); + break; + case TSqlParser.OPEN: + this.enterOuterAlt(localctx, 5); + this.state = 7362; + this.match(TSqlParser.OPEN); + this.state = 7364; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,980,this._ctx); + if(la_===1) { + this.state = 7363; + this.match(TSqlParser.GLOBAL); + + } + this.state = 7366; + this.cursor_name(); + this.state = 7368; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,981,this._ctx); + if(la_===1) { + this.state = 7367; + this.match(TSqlParser.SEMI); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_database; + this.database_name = null; // IdContext + this.file_or_filegroup = null; // Token + this.logical_device_name = null; // IdContext + this.backup_set_name = null; // IdContext + this.medianame = null; // Token + this.stats_percent = null; // Token + this.encryptor_name = null; // IdContext + return this; +} + +Backup_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_databaseContext.prototype.constructor = Backup_databaseContext; + +Backup_databaseContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Backup_databaseContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Backup_databaseContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Backup_databaseContext.prototype.READ_WRITE_FILEGROUPS = function() { + return this.getToken(TSqlParser.READ_WRITE_FILEGROUPS, 0); +}; + +Backup_databaseContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_databaseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Backup_databaseContext.prototype.FILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE); + } else { + return this.getToken(TSqlParser.FILE, i); + } +}; + + +Backup_databaseContext.prototype.FILEGROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILEGROUP); + } else { + return this.getToken(TSqlParser.FILEGROUP, i); + } +}; + + +Backup_databaseContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_databaseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Backup_databaseContext.prototype.DISK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DISK); + } else { + return this.getToken(TSqlParser.DISK, i); + } +}; + + +Backup_databaseContext.prototype.TAPE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TAPE); + } else { + return this.getToken(TSqlParser.TAPE, i); + } +}; + + +Backup_databaseContext.prototype.URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.URL); + } else { + return this.getToken(TSqlParser.URL, i); + } +}; + + +Backup_databaseContext.prototype.MIRROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MIRROR); + } else { + return this.getToken(TSqlParser.MIRROR, i); + } +}; + + +Backup_databaseContext.prototype.DIFFERENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DIFFERENTIAL); + } else { + return this.getToken(TSqlParser.DIFFERENTIAL, i); + } +}; + + +Backup_databaseContext.prototype.COPY_ONLY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COPY_ONLY); + } else { + return this.getToken(TSqlParser.COPY_ONLY, i); + } +}; + + +Backup_databaseContext.prototype.DESCRIPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DESCRIPTION); + } else { + return this.getToken(TSqlParser.DESCRIPTION, i); + } +}; + + +Backup_databaseContext.prototype.NAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NAME); + } else { + return this.getToken(TSqlParser.NAME, i); + } +}; + + +Backup_databaseContext.prototype.CREDENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CREDENTIAL); + } else { + return this.getToken(TSqlParser.CREDENTIAL, i); + } +}; + + +Backup_databaseContext.prototype.FILE_SNAPSHOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE_SNAPSHOT); + } else { + return this.getToken(TSqlParser.FILE_SNAPSHOT, i); + } +}; + + +Backup_databaseContext.prototype.MEDIADESCRIPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIADESCRIPTION); + } else { + return this.getToken(TSqlParser.MEDIADESCRIPTION, i); + } +}; + + +Backup_databaseContext.prototype.MEDIANAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIANAME); + } else { + return this.getToken(TSqlParser.MEDIANAME, i); + } +}; + + +Backup_databaseContext.prototype.BLOCKSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BLOCKSIZE); + } else { + return this.getToken(TSqlParser.BLOCKSIZE, i); + } +}; + + +Backup_databaseContext.prototype.BUFFERCOUNT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BUFFERCOUNT); + } else { + return this.getToken(TSqlParser.BUFFERCOUNT, i); + } +}; + + +Backup_databaseContext.prototype.MAXTRANSFER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAXTRANSFER); + } else { + return this.getToken(TSqlParser.MAXTRANSFER, i); + } +}; + + +Backup_databaseContext.prototype.RESTART = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESTART); + } else { + return this.getToken(TSqlParser.RESTART, i); + } +}; + + +Backup_databaseContext.prototype.STATS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATS); + } else { + return this.getToken(TSqlParser.STATS, i); + } +}; + + +Backup_databaseContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Backup_databaseContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Backup_databaseContext.prototype.ALGORITHM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALGORITHM); + } else { + return this.getToken(TSqlParser.ALGORITHM, i); + } +}; + + +Backup_databaseContext.prototype.SERVER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVER); + } else { + return this.getToken(TSqlParser.SERVER, i); + } +}; + + +Backup_databaseContext.prototype.CERTIFICATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CERTIFICATE); + } else { + return this.getToken(TSqlParser.CERTIFICATE, i); + } +}; + + +Backup_databaseContext.prototype.COMPRESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMPRESSION); + } else { + return this.getToken(TSqlParser.COMPRESSION, i); + } +}; + + +Backup_databaseContext.prototype.NO_COMPRESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_COMPRESSION); + } else { + return this.getToken(TSqlParser.NO_COMPRESSION, i); + } +}; + + +Backup_databaseContext.prototype.NOINIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOINIT); + } else { + return this.getToken(TSqlParser.NOINIT, i); + } +}; + + +Backup_databaseContext.prototype.INIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INIT); + } else { + return this.getToken(TSqlParser.INIT, i); + } +}; + + +Backup_databaseContext.prototype.NOSKIP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOSKIP); + } else { + return this.getToken(TSqlParser.NOSKIP, i); + } +}; + + +Backup_databaseContext.prototype.SKIP_KEYWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SKIP_KEYWORD); + } else { + return this.getToken(TSqlParser.SKIP_KEYWORD, i); + } +}; + + +Backup_databaseContext.prototype.NOFORMAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOFORMAT); + } else { + return this.getToken(TSqlParser.NOFORMAT, i); + } +}; + + +Backup_databaseContext.prototype.FORMAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FORMAT); + } else { + return this.getToken(TSqlParser.FORMAT, i); + } +}; + + +Backup_databaseContext.prototype.NO_CHECKSUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_CHECKSUM); + } else { + return this.getToken(TSqlParser.NO_CHECKSUM, i); + } +}; + + +Backup_databaseContext.prototype.CHECKSUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CHECKSUM); + } else { + return this.getToken(TSqlParser.CHECKSUM, i); + } +}; + + +Backup_databaseContext.prototype.STOP_ON_ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STOP_ON_ERROR); + } else { + return this.getToken(TSqlParser.STOP_ON_ERROR, i); + } +}; + + +Backup_databaseContext.prototype.CONTINUE_AFTER_ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTINUE_AFTER_ERROR); + } else { + return this.getToken(TSqlParser.CONTINUE_AFTER_ERROR, i); + } +}; + + +Backup_databaseContext.prototype.REWIND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REWIND); + } else { + return this.getToken(TSqlParser.REWIND, i); + } +}; + + +Backup_databaseContext.prototype.NOREWIND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOREWIND); + } else { + return this.getToken(TSqlParser.NOREWIND, i); + } +}; + + +Backup_databaseContext.prototype.LOAD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOAD); + } else { + return this.getToken(TSqlParser.LOAD, i); + } +}; + + +Backup_databaseContext.prototype.NOUNLOAD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOUNLOAD); + } else { + return this.getToken(TSqlParser.NOUNLOAD, i); + } +}; + + +Backup_databaseContext.prototype.AES_128 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_128); + } else { + return this.getToken(TSqlParser.AES_128, i); + } +}; + + +Backup_databaseContext.prototype.AES_192 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_192); + } else { + return this.getToken(TSqlParser.AES_192, i); + } +}; + + +Backup_databaseContext.prototype.AES_256 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_256); + } else { + return this.getToken(TSqlParser.AES_256, i); + } +}; + + +Backup_databaseContext.prototype.TRIPLE_DES_3KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TRIPLE_DES_3KEY); + } else { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, i); + } +}; + + +Backup_databaseContext.prototype.EXPIREDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EXPIREDATE); + } else { + return this.getToken(TSqlParser.EXPIREDATE, i); + } +}; + + +Backup_databaseContext.prototype.RETAINDAYS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RETAINDAYS); + } else { + return this.getToken(TSqlParser.RETAINDAYS, i); + } +}; + + +Backup_databaseContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Backup_databaseContext.prototype.ASYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASYMMETRIC); + } else { + return this.getToken(TSqlParser.ASYMMETRIC, i); + } +}; + + +Backup_databaseContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Backup_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_database(this); + } +}; + +Backup_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_database(this); + } +}; + +Backup_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_databaseContext = Backup_databaseContext; + +TSqlParser.prototype.backup_database = function() { + + var localctx = new Backup_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 612, TSqlParser.RULE_backup_database); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7372; + this.match(TSqlParser.BACKUP); + this.state = 7373; + this.match(TSqlParser.DATABASE); + + this.state = 7374; + localctx.database_name = this.id(); + this.state = 7387; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.READ_WRITE_FILEGROUPS) { + this.state = 7375; + this.match(TSqlParser.READ_WRITE_FILEGROUPS); + this.state = 7384; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,984,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7377; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7376; + this.match(TSqlParser.COMMA); + } + + this.state = 7379; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FILE || _la===TSqlParser.FILEGROUP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7380; + this.match(TSqlParser.EQUAL); + this.state = 7381; + localctx.file_or_filegroup = this.match(TSqlParser.STRING); + } + this.state = 7386; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,984,this._ctx); + } + + } + + this.state = 7397; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FILE || _la===TSqlParser.FILEGROUP || _la===TSqlParser.COMMA) { + this.state = 7390; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7389; + this.match(TSqlParser.COMMA); + } + + this.state = 7392; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FILE || _la===TSqlParser.FILEGROUP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7393; + this.match(TSqlParser.EQUAL); + this.state = 7394; + localctx.file_or_filegroup = this.match(TSqlParser.STRING); + this.state = 7399; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7423; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,993,this._ctx); + switch(la_) { + case 1: + this.state = 7400; + this.match(TSqlParser.TO); + this.state = 7405; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7402; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7401; + this.match(TSqlParser.COMMA); + } + + this.state = 7404; + localctx.logical_device_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7407; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,989, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.state = 7409; + this.match(TSqlParser.TO); + this.state = 7419; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7411; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7410; + this.match(TSqlParser.COMMA); + } + + this.state = 7413; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7414; + this.match(TSqlParser.EQUAL); + this.state = 7417; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7415; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7416; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7421; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL || _la===TSqlParser.COMMA); + break; + + } + this.state = 7458; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1001,this._ctx); + if(la_===1) { + this.state = 7435; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7425; + this.match(TSqlParser.MIRROR); + this.state = 7426; + this.match(TSqlParser.TO); + this.state = 7431; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7428; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7427; + this.match(TSqlParser.COMMA); + } + + this.state = 7430; + localctx.logical_device_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7433; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,995, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 7437; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.MIRROR); + + } else if(la_===2) { + this.state = 7454; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7439; + this.match(TSqlParser.MIRROR); + this.state = 7440; + this.match(TSqlParser.TO); + this.state = 7450; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7442; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7441; + this.match(TSqlParser.COMMA); + } + + this.state = 7444; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7445; + this.match(TSqlParser.EQUAL); + this.state = 7448; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7446; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7447; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7452; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL || _la===TSqlParser.COMMA); + this.state = 7456; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.MIRROR); + + } + this.state = 7620; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1037,this._ctx); + if(la_===1) { + this.state = 7460; + this.match(TSqlParser.WITH); + this.state = 7617; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1036,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7615; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1035,this._ctx); + switch(la_) { + case 1: + this.state = 7462; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7461; + this.match(TSqlParser.COMMA); + } + + this.state = 7464; + this.match(TSqlParser.DIFFERENTIAL); + break; + + case 2: + this.state = 7466; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7465; + this.match(TSqlParser.COMMA); + } + + this.state = 7468; + this.match(TSqlParser.COPY_ONLY); + break; + + case 3: + this.state = 7470; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7469; + this.match(TSqlParser.COMMA); + } + + this.state = 7472; + _la = this._input.LA(1); + if(!(_la===TSqlParser.COMPRESSION || _la===TSqlParser.NO_COMPRESSION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 7474; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7473; + this.match(TSqlParser.COMMA); + } + + this.state = 7476; + this.match(TSqlParser.DESCRIPTION); + this.state = 7477; + this.match(TSqlParser.EQUAL); + this.state = 7480; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7478; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7479; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 5: + this.state = 7483; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7482; + this.match(TSqlParser.COMMA); + } + + this.state = 7485; + this.match(TSqlParser.NAME); + this.state = 7486; + this.match(TSqlParser.EQUAL); + this.state = 7487; + localctx.backup_set_name = this.id(); + break; + + case 6: + this.state = 7489; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7488; + this.match(TSqlParser.COMMA); + } + + this.state = 7491; + this.match(TSqlParser.CREDENTIAL); + break; + + case 7: + this.state = 7493; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7492; + this.match(TSqlParser.COMMA); + } + + this.state = 7495; + this.match(TSqlParser.FILE_SNAPSHOT); + break; + + case 8: + this.state = 7497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7496; + this.match(TSqlParser.COMMA); + } + + this.state = 7511; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EXPIREDATE: + this.state = 7499; + this.match(TSqlParser.EXPIREDATE); + this.state = 7500; + this.match(TSqlParser.EQUAL); + this.state = 7503; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7501; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7502; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.RETAINDAYS: + this.state = 7505; + this.match(TSqlParser.RETAINDAYS); + this.state = 7506; + this.match(TSqlParser.EQUAL); + this.state = 7509; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7507; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7508; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 9: + this.state = 7514; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7513; + this.match(TSqlParser.COMMA); + } + + this.state = 7516; + _la = this._input.LA(1); + if(!(_la===TSqlParser.INIT || _la===TSqlParser.NOINIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 10: + this.state = 7518; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7517; + this.match(TSqlParser.COMMA); + } + + this.state = 7520; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOSKIP || _la===TSqlParser.SKIP_KEYWORD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 11: + this.state = 7522; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7521; + this.match(TSqlParser.COMMA); + } + + this.state = 7524; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOFORMAT || _la===TSqlParser.FORMAT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 12: + this.state = 7526; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7525; + this.match(TSqlParser.COMMA); + } + + this.state = 7528; + this.match(TSqlParser.MEDIADESCRIPTION); + this.state = 7529; + this.match(TSqlParser.EQUAL); + this.state = 7532; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7530; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7531; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 13: + this.state = 7535; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7534; + this.match(TSqlParser.COMMA); + } + + this.state = 7537; + this.match(TSqlParser.MEDIANAME); + this.state = 7538; + this.match(TSqlParser.EQUAL); + + this.state = 7539; + localctx.medianame = this.match(TSqlParser.STRING); + break; + + case 14: + this.state = 7541; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7540; + this.match(TSqlParser.COMMA); + } + + this.state = 7543; + this.match(TSqlParser.BLOCKSIZE); + this.state = 7544; + this.match(TSqlParser.EQUAL); + this.state = 7547; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7545; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7546; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 15: + this.state = 7550; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7549; + this.match(TSqlParser.COMMA); + } + + this.state = 7552; + this.match(TSqlParser.BUFFERCOUNT); + this.state = 7553; + this.match(TSqlParser.EQUAL); + this.state = 7556; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7554; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7555; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 16: + this.state = 7559; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7558; + this.match(TSqlParser.COMMA); + } + + this.state = 7561; + this.match(TSqlParser.MAXTRANSFER); + this.state = 7562; + this.match(TSqlParser.EQUAL); + this.state = 7565; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7563; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7564; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 17: + this.state = 7568; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7567; + this.match(TSqlParser.COMMA); + } + + this.state = 7570; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NO_CHECKSUM || _la===TSqlParser.CHECKSUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 18: + this.state = 7572; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7571; + this.match(TSqlParser.COMMA); + } + + this.state = 7574; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTINUE_AFTER_ERROR || _la===TSqlParser.STOP_ON_ERROR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 19: + this.state = 7576; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7575; + this.match(TSqlParser.COMMA); + } + + this.state = 7578; + this.match(TSqlParser.RESTART); + break; + + case 20: + this.state = 7580; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7579; + this.match(TSqlParser.COMMA); + } + + this.state = 7582; + this.match(TSqlParser.STATS); + this.state = 7585; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EQUAL) { + this.state = 7583; + this.match(TSqlParser.EQUAL); + this.state = 7584; + localctx.stats_percent = this.match(TSqlParser.DECIMAL); + } + + break; + + case 21: + this.state = 7588; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7587; + this.match(TSqlParser.COMMA); + } + + this.state = 7590; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOREWIND || _la===TSqlParser.REWIND)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 22: + this.state = 7592; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7591; + this.match(TSqlParser.COMMA); + } + + this.state = 7594; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOAD || _la===TSqlParser.NOUNLOAD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 23: + this.state = 7596; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7595; + this.match(TSqlParser.COMMA); + } + + this.state = 7598; + this.match(TSqlParser.ENCRYPTION); + this.state = 7599; + this.match(TSqlParser.LR_BRACKET); + this.state = 7600; + this.match(TSqlParser.ALGORITHM); + this.state = 7601; + this.match(TSqlParser.EQUAL); + this.state = 7602; + _la = this._input.LA(1); + if(!(((((_la - 386)) & ~0x1f) == 0 && ((1 << (_la - 386)) & ((1 << (TSqlParser.AES_128 - 386)) | (1 << (TSqlParser.AES_192 - 386)) | (1 << (TSqlParser.AES_256 - 386)))) !== 0) || _la===TSqlParser.TRIPLE_DES_3KEY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7603; + this.match(TSqlParser.COMMA); + this.state = 7604; + this.match(TSqlParser.SERVER); + this.state = 7605; + this.match(TSqlParser.CERTIFICATE); + this.state = 7606; + this.match(TSqlParser.EQUAL); + this.state = 7613; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1034,this._ctx); + switch(la_) { + case 1: + this.state = 7607; + localctx.encryptor_name = this.id(); + break; + + case 2: + this.state = 7608; + this.match(TSqlParser.SERVER); + this.state = 7609; + this.match(TSqlParser.ASYMMETRIC); + this.state = 7610; + this.match(TSqlParser.KEY); + this.state = 7611; + this.match(TSqlParser.EQUAL); + this.state = 7612; + localctx.encryptor_name = this.id(); + break; + + } + break; + + } + } + this.state = 7619; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1036,this._ctx); + } + + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_logContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_log; + this.database_name = null; // IdContext + this.logical_device_name = null; // IdContext + this.backup_set_name = null; // IdContext + this.medianame = null; // Token + this.stats_percent = null; // Token + this.undo_file_name = null; // Token + this.encryptor_name = null; // IdContext + return this; +} + +Backup_logContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_logContext.prototype.constructor = Backup_logContext; + +Backup_logContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_logContext.prototype.LOG = function() { + return this.getToken(TSqlParser.LOG, 0); +}; + +Backup_logContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Backup_logContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Backup_logContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Backup_logContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_logContext.prototype.DISK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DISK); + } else { + return this.getToken(TSqlParser.DISK, i); + } +}; + + +Backup_logContext.prototype.TAPE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TAPE); + } else { + return this.getToken(TSqlParser.TAPE, i); + } +}; + + +Backup_logContext.prototype.URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.URL); + } else { + return this.getToken(TSqlParser.URL, i); + } +}; + + +Backup_logContext.prototype.MIRROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MIRROR); + } else { + return this.getToken(TSqlParser.MIRROR, i); + } +}; + + +Backup_logContext.prototype.DIFFERENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DIFFERENTIAL); + } else { + return this.getToken(TSqlParser.DIFFERENTIAL, i); + } +}; + + +Backup_logContext.prototype.COPY_ONLY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COPY_ONLY); + } else { + return this.getToken(TSqlParser.COPY_ONLY, i); + } +}; + + +Backup_logContext.prototype.DESCRIPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DESCRIPTION); + } else { + return this.getToken(TSqlParser.DESCRIPTION, i); + } +}; + + +Backup_logContext.prototype.NAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NAME); + } else { + return this.getToken(TSqlParser.NAME, i); + } +}; + + +Backup_logContext.prototype.CREDENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CREDENTIAL); + } else { + return this.getToken(TSqlParser.CREDENTIAL, i); + } +}; + + +Backup_logContext.prototype.FILE_SNAPSHOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE_SNAPSHOT); + } else { + return this.getToken(TSqlParser.FILE_SNAPSHOT, i); + } +}; + + +Backup_logContext.prototype.MEDIADESCRIPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIADESCRIPTION); + } else { + return this.getToken(TSqlParser.MEDIADESCRIPTION, i); + } +}; + + +Backup_logContext.prototype.MEDIANAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIANAME); + } else { + return this.getToken(TSqlParser.MEDIANAME, i); + } +}; + + +Backup_logContext.prototype.BLOCKSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BLOCKSIZE); + } else { + return this.getToken(TSqlParser.BLOCKSIZE, i); + } +}; + + +Backup_logContext.prototype.BUFFERCOUNT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BUFFERCOUNT); + } else { + return this.getToken(TSqlParser.BUFFERCOUNT, i); + } +}; + + +Backup_logContext.prototype.MAXTRANSFER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAXTRANSFER); + } else { + return this.getToken(TSqlParser.MAXTRANSFER, i); + } +}; + + +Backup_logContext.prototype.RESTART = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESTART); + } else { + return this.getToken(TSqlParser.RESTART, i); + } +}; + + +Backup_logContext.prototype.STATS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATS); + } else { + return this.getToken(TSqlParser.STATS, i); + } +}; + + +Backup_logContext.prototype.NO_TRUNCATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_TRUNCATE); + } else { + return this.getToken(TSqlParser.NO_TRUNCATE, i); + } +}; + + +Backup_logContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Backup_logContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Backup_logContext.prototype.ALGORITHM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALGORITHM); + } else { + return this.getToken(TSqlParser.ALGORITHM, i); + } +}; + + +Backup_logContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Backup_logContext.prototype.SERVER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVER); + } else { + return this.getToken(TSqlParser.SERVER, i); + } +}; + + +Backup_logContext.prototype.CERTIFICATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CERTIFICATE); + } else { + return this.getToken(TSqlParser.CERTIFICATE, i); + } +}; + + +Backup_logContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_logContext.prototype.COMPRESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMPRESSION); + } else { + return this.getToken(TSqlParser.COMPRESSION, i); + } +}; + + +Backup_logContext.prototype.NO_COMPRESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_COMPRESSION); + } else { + return this.getToken(TSqlParser.NO_COMPRESSION, i); + } +}; + + +Backup_logContext.prototype.NOINIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOINIT); + } else { + return this.getToken(TSqlParser.NOINIT, i); + } +}; + + +Backup_logContext.prototype.INIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INIT); + } else { + return this.getToken(TSqlParser.INIT, i); + } +}; + + +Backup_logContext.prototype.NOSKIP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOSKIP); + } else { + return this.getToken(TSqlParser.NOSKIP, i); + } +}; + + +Backup_logContext.prototype.SKIP_KEYWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SKIP_KEYWORD); + } else { + return this.getToken(TSqlParser.SKIP_KEYWORD, i); + } +}; + + +Backup_logContext.prototype.NOFORMAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOFORMAT); + } else { + return this.getToken(TSqlParser.NOFORMAT, i); + } +}; + + +Backup_logContext.prototype.FORMAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FORMAT); + } else { + return this.getToken(TSqlParser.FORMAT, i); + } +}; + + +Backup_logContext.prototype.NO_CHECKSUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_CHECKSUM); + } else { + return this.getToken(TSqlParser.NO_CHECKSUM, i); + } +}; + + +Backup_logContext.prototype.CHECKSUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CHECKSUM); + } else { + return this.getToken(TSqlParser.CHECKSUM, i); + } +}; + + +Backup_logContext.prototype.STOP_ON_ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STOP_ON_ERROR); + } else { + return this.getToken(TSqlParser.STOP_ON_ERROR, i); + } +}; + + +Backup_logContext.prototype.CONTINUE_AFTER_ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTINUE_AFTER_ERROR); + } else { + return this.getToken(TSqlParser.CONTINUE_AFTER_ERROR, i); + } +}; + + +Backup_logContext.prototype.REWIND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REWIND); + } else { + return this.getToken(TSqlParser.REWIND, i); + } +}; + + +Backup_logContext.prototype.NOREWIND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOREWIND); + } else { + return this.getToken(TSqlParser.NOREWIND, i); + } +}; + + +Backup_logContext.prototype.LOAD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOAD); + } else { + return this.getToken(TSqlParser.LOAD, i); + } +}; + + +Backup_logContext.prototype.NOUNLOAD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOUNLOAD); + } else { + return this.getToken(TSqlParser.NOUNLOAD, i); + } +}; + + +Backup_logContext.prototype.AES_128 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_128); + } else { + return this.getToken(TSqlParser.AES_128, i); + } +}; + + +Backup_logContext.prototype.AES_192 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_192); + } else { + return this.getToken(TSqlParser.AES_192, i); + } +}; + + +Backup_logContext.prototype.AES_256 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_256); + } else { + return this.getToken(TSqlParser.AES_256, i); + } +}; + + +Backup_logContext.prototype.TRIPLE_DES_3KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TRIPLE_DES_3KEY); + } else { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, i); + } +}; + + +Backup_logContext.prototype.EXPIREDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EXPIREDATE); + } else { + return this.getToken(TSqlParser.EXPIREDATE, i); + } +}; + + +Backup_logContext.prototype.RETAINDAYS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RETAINDAYS); + } else { + return this.getToken(TSqlParser.RETAINDAYS, i); + } +}; + + +Backup_logContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Backup_logContext.prototype.NORECOVERY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NORECOVERY); + } else { + return this.getToken(TSqlParser.NORECOVERY, i); + } +}; + + +Backup_logContext.prototype.STANDBY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STANDBY); + } else { + return this.getToken(TSqlParser.STANDBY, i); + } +}; + + +Backup_logContext.prototype.ASYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASYMMETRIC); + } else { + return this.getToken(TSqlParser.ASYMMETRIC, i); + } +}; + + +Backup_logContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Backup_logContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_log(this); + } +}; + +Backup_logContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_log(this); + } +}; + +Backup_logContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_log(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_logContext = Backup_logContext; + +TSqlParser.prototype.backup_log = function() { + + var localctx = new Backup_logContext(this, this._ctx, this.state); + this.enterRule(localctx, 614, TSqlParser.RULE_backup_log); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7622; + this.match(TSqlParser.BACKUP); + this.state = 7623; + this.match(TSqlParser.LOG); + + this.state = 7624; + localctx.database_name = this.id(); + this.state = 7648; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1043,this._ctx); + switch(la_) { + case 1: + this.state = 7625; + this.match(TSqlParser.TO); + this.state = 7630; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7627; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7626; + this.match(TSqlParser.COMMA); + } + + this.state = 7629; + localctx.logical_device_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7632; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1039, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.state = 7634; + this.match(TSqlParser.TO); + this.state = 7644; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7636; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7635; + this.match(TSqlParser.COMMA); + } + + this.state = 7638; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7639; + this.match(TSqlParser.EQUAL); + this.state = 7642; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7640; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7641; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7646; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL || _la===TSqlParser.COMMA); + break; + + } + this.state = 7683; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1051,this._ctx); + if(la_===1) { + this.state = 7660; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7650; + this.match(TSqlParser.MIRROR); + this.state = 7651; + this.match(TSqlParser.TO); + this.state = 7656; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7653; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7652; + this.match(TSqlParser.COMMA); + } + + this.state = 7655; + localctx.logical_device_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7658; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1045, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 7662; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.MIRROR); + + } else if(la_===2) { + this.state = 7679; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7664; + this.match(TSqlParser.MIRROR); + this.state = 7665; + this.match(TSqlParser.TO); + this.state = 7675; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7667; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7666; + this.match(TSqlParser.COMMA); + } + + this.state = 7669; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7670; + this.match(TSqlParser.EQUAL); + this.state = 7673; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7671; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7672; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7677; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL || _la===TSqlParser.COMMA); + this.state = 7681; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.MIRROR); + + } + this.state = 7858; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1090,this._ctx); + if(la_===1) { + this.state = 7685; + this.match(TSqlParser.WITH); + this.state = 7855; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1089,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7853; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1088,this._ctx); + switch(la_) { + case 1: + this.state = 7687; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7686; + this.match(TSqlParser.COMMA); + } + + this.state = 7689; + this.match(TSqlParser.DIFFERENTIAL); + break; + + case 2: + this.state = 7691; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7690; + this.match(TSqlParser.COMMA); + } + + this.state = 7693; + this.match(TSqlParser.COPY_ONLY); + break; + + case 3: + this.state = 7695; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7694; + this.match(TSqlParser.COMMA); + } + + this.state = 7697; + _la = this._input.LA(1); + if(!(_la===TSqlParser.COMPRESSION || _la===TSqlParser.NO_COMPRESSION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 7699; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7698; + this.match(TSqlParser.COMMA); + } + + this.state = 7701; + this.match(TSqlParser.DESCRIPTION); + this.state = 7702; + this.match(TSqlParser.EQUAL); + this.state = 7705; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7703; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7704; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 5: + this.state = 7708; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7707; + this.match(TSqlParser.COMMA); + } + + this.state = 7710; + this.match(TSqlParser.NAME); + this.state = 7711; + this.match(TSqlParser.EQUAL); + this.state = 7712; + localctx.backup_set_name = this.id(); + break; + + case 6: + this.state = 7714; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7713; + this.match(TSqlParser.COMMA); + } + + this.state = 7716; + this.match(TSqlParser.CREDENTIAL); + break; + + case 7: + this.state = 7718; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7717; + this.match(TSqlParser.COMMA); + } + + this.state = 7720; + this.match(TSqlParser.FILE_SNAPSHOT); + break; + + case 8: + this.state = 7722; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7721; + this.match(TSqlParser.COMMA); + } + + this.state = 7736; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EXPIREDATE: + this.state = 7724; + this.match(TSqlParser.EXPIREDATE); + this.state = 7725; + this.match(TSqlParser.EQUAL); + this.state = 7728; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7726; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7727; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.RETAINDAYS: + this.state = 7730; + this.match(TSqlParser.RETAINDAYS); + this.state = 7731; + this.match(TSqlParser.EQUAL); + this.state = 7734; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7732; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7733; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 9: + this.state = 7739; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7738; + this.match(TSqlParser.COMMA); + } + + this.state = 7741; + _la = this._input.LA(1); + if(!(_la===TSqlParser.INIT || _la===TSqlParser.NOINIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 10: + this.state = 7743; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7742; + this.match(TSqlParser.COMMA); + } + + this.state = 7745; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOSKIP || _la===TSqlParser.SKIP_KEYWORD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 11: + this.state = 7747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7746; + this.match(TSqlParser.COMMA); + } + + this.state = 7749; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOFORMAT || _la===TSqlParser.FORMAT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 12: + this.state = 7751; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7750; + this.match(TSqlParser.COMMA); + } + + this.state = 7753; + this.match(TSqlParser.MEDIADESCRIPTION); + this.state = 7754; + this.match(TSqlParser.EQUAL); + this.state = 7757; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7755; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7756; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 13: + this.state = 7760; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7759; + this.match(TSqlParser.COMMA); + } + + this.state = 7762; + this.match(TSqlParser.MEDIANAME); + this.state = 7763; + this.match(TSqlParser.EQUAL); + + this.state = 7764; + localctx.medianame = this.match(TSqlParser.STRING); + break; + + case 14: + this.state = 7766; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7765; + this.match(TSqlParser.COMMA); + } + + this.state = 7768; + this.match(TSqlParser.BLOCKSIZE); + this.state = 7769; + this.match(TSqlParser.EQUAL); + this.state = 7772; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7770; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7771; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 15: + this.state = 7775; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7774; + this.match(TSqlParser.COMMA); + } + + this.state = 7777; + this.match(TSqlParser.BUFFERCOUNT); + this.state = 7778; + this.match(TSqlParser.EQUAL); + this.state = 7781; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7779; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7780; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 16: + this.state = 7784; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7783; + this.match(TSqlParser.COMMA); + } + + this.state = 7786; + this.match(TSqlParser.MAXTRANSFER); + this.state = 7787; + this.match(TSqlParser.EQUAL); + this.state = 7790; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7788; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7789; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 17: + this.state = 7793; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7792; + this.match(TSqlParser.COMMA); + } + + this.state = 7795; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NO_CHECKSUM || _la===TSqlParser.CHECKSUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 18: + this.state = 7797; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7796; + this.match(TSqlParser.COMMA); + } + + this.state = 7799; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTINUE_AFTER_ERROR || _la===TSqlParser.STOP_ON_ERROR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 19: + this.state = 7801; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7800; + this.match(TSqlParser.COMMA); + } + + this.state = 7803; + this.match(TSqlParser.RESTART); + break; + + case 20: + this.state = 7805; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7804; + this.match(TSqlParser.COMMA); + } + + this.state = 7807; + this.match(TSqlParser.STATS); + this.state = 7810; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EQUAL) { + this.state = 7808; + this.match(TSqlParser.EQUAL); + this.state = 7809; + localctx.stats_percent = this.match(TSqlParser.DECIMAL); + } + + break; + + case 21: + this.state = 7813; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7812; + this.match(TSqlParser.COMMA); + } + + this.state = 7815; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOREWIND || _la===TSqlParser.REWIND)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 22: + this.state = 7817; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7816; + this.match(TSqlParser.COMMA); + } + + this.state = 7819; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOAD || _la===TSqlParser.NOUNLOAD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 23: + this.state = 7821; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7820; + this.match(TSqlParser.COMMA); + } + + this.state = 7827; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NORECOVERY: + this.state = 7823; + this.match(TSqlParser.NORECOVERY); + break; + case TSqlParser.STANDBY: + this.state = 7824; + this.match(TSqlParser.STANDBY); + this.state = 7825; + this.match(TSqlParser.EQUAL); + this.state = 7826; + localctx.undo_file_name = this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 24: + this.state = 7830; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7829; + this.match(TSqlParser.COMMA); + } + + this.state = 7832; + this.match(TSqlParser.NO_TRUNCATE); + break; + + case 25: + this.state = 7834; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7833; + this.match(TSqlParser.COMMA); + } + + this.state = 7836; + this.match(TSqlParser.ENCRYPTION); + this.state = 7837; + this.match(TSqlParser.LR_BRACKET); + this.state = 7838; + this.match(TSqlParser.ALGORITHM); + this.state = 7839; + this.match(TSqlParser.EQUAL); + this.state = 7840; + _la = this._input.LA(1); + if(!(((((_la - 386)) & ~0x1f) == 0 && ((1 << (_la - 386)) & ((1 << (TSqlParser.AES_128 - 386)) | (1 << (TSqlParser.AES_192 - 386)) | (1 << (TSqlParser.AES_256 - 386)))) !== 0) || _la===TSqlParser.TRIPLE_DES_3KEY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7841; + this.match(TSqlParser.COMMA); + this.state = 7842; + this.match(TSqlParser.SERVER); + this.state = 7843; + this.match(TSqlParser.CERTIFICATE); + this.state = 7844; + this.match(TSqlParser.EQUAL); + this.state = 7851; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1087,this._ctx); + switch(la_) { + case 1: + this.state = 7845; + localctx.encryptor_name = this.id(); + break; + + case 2: + this.state = 7846; + this.match(TSqlParser.SERVER); + this.state = 7847; + this.match(TSqlParser.ASYMMETRIC); + this.state = 7848; + this.match(TSqlParser.KEY); + this.state = 7849; + this.match(TSqlParser.EQUAL); + this.state = 7850; + localctx.encryptor_name = this.id(); + break; + + } + break; + + } + } + this.state = 7857; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1089,this._ctx); + } + + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_certificateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_certificate; + this.certname = null; // IdContext + this.cert_file = null; // Token + this.private_key_file = null; // Token + this.encryption_password = null; // Token + this.decryption_pasword = null; // Token + return this; +} + +Backup_certificateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_certificateContext.prototype.constructor = Backup_certificateContext; + +Backup_certificateContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_certificateContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Backup_certificateContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Backup_certificateContext.prototype.FILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE); + } else { + return this.getToken(TSqlParser.FILE, i); + } +}; + + +Backup_certificateContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_certificateContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Backup_certificateContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_certificateContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Backup_certificateContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Backup_certificateContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Backup_certificateContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Backup_certificateContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Backup_certificateContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Backup_certificateContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Backup_certificateContext.prototype.PASSWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PASSWORD); + } else { + return this.getToken(TSqlParser.PASSWORD, i); + } +}; + + +Backup_certificateContext.prototype.DECRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECRYPTION); + } else { + return this.getToken(TSqlParser.DECRYPTION, i); + } +}; + + +Backup_certificateContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Backup_certificateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_certificate(this); + } +}; + +Backup_certificateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_certificate(this); + } +}; + +Backup_certificateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_certificate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_certificateContext = Backup_certificateContext; + +TSqlParser.prototype.backup_certificate = function() { + + var localctx = new Backup_certificateContext(this, this._ctx, this.state); + this.enterRule(localctx, 616, TSqlParser.RULE_backup_certificate); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7860; + this.match(TSqlParser.BACKUP); + this.state = 7861; + this.match(TSqlParser.CERTIFICATE); + this.state = 7862; + localctx.certname = this.id(); + this.state = 7863; + this.match(TSqlParser.TO); + this.state = 7864; + this.match(TSqlParser.FILE); + this.state = 7865; + this.match(TSqlParser.EQUAL); + this.state = 7866; + localctx.cert_file = this.match(TSqlParser.STRING); + this.state = 7898; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1096,this._ctx); + if(la_===1) { + this.state = 7867; + this.match(TSqlParser.WITH); + this.state = 7868; + this.match(TSqlParser.PRIVATE); + this.state = 7869; + this.match(TSqlParser.KEY); + this.state = 7870; + this.match(TSqlParser.LR_BRACKET); + this.state = 7893; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7893; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1094,this._ctx); + switch(la_) { + case 1: + this.state = 7872; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7871; + this.match(TSqlParser.COMMA); + } + + this.state = 7874; + this.match(TSqlParser.FILE); + this.state = 7875; + this.match(TSqlParser.EQUAL); + this.state = 7876; + localctx.private_key_file = this.match(TSqlParser.STRING); + break; + + case 2: + this.state = 7878; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7877; + this.match(TSqlParser.COMMA); + } + + this.state = 7880; + this.match(TSqlParser.ENCRYPTION); + this.state = 7881; + this.match(TSqlParser.BY); + this.state = 7882; + this.match(TSqlParser.PASSWORD); + this.state = 7883; + this.match(TSqlParser.EQUAL); + this.state = 7884; + localctx.encryption_password = this.match(TSqlParser.STRING); + break; + + case 3: + this.state = 7886; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7885; + this.match(TSqlParser.COMMA); + } + + this.state = 7888; + this.match(TSqlParser.DECRYPTION); + this.state = 7889; + this.match(TSqlParser.BY); + this.state = 7890; + this.match(TSqlParser.PASSWORD); + this.state = 7891; + this.match(TSqlParser.EQUAL); + this.state = 7892; + localctx.decryption_pasword = this.match(TSqlParser.STRING); + break; + + } + this.state = 7895; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.FILE || _la===TSqlParser.DECRYPTION || _la===TSqlParser.ENCRYPTION || _la===TSqlParser.COMMA); + this.state = 7897; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_master_key; + this.master_key_backup_file = null; // Token + this.encryption_password = null; // Token + return this; +} + +Backup_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_master_keyContext.prototype.constructor = Backup_master_keyContext; + +Backup_master_keyContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Backup_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Backup_master_keyContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Backup_master_keyContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Backup_master_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_master_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Backup_master_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Backup_master_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Backup_master_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_master_key(this); + } +}; + +Backup_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_master_key(this); + } +}; + +Backup_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_master_keyContext = Backup_master_keyContext; + +TSqlParser.prototype.backup_master_key = function() { + + var localctx = new Backup_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 618, TSqlParser.RULE_backup_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7900; + this.match(TSqlParser.BACKUP); + this.state = 7901; + this.match(TSqlParser.MASTER); + this.state = 7902; + this.match(TSqlParser.KEY); + this.state = 7903; + this.match(TSqlParser.TO); + this.state = 7904; + this.match(TSqlParser.FILE); + this.state = 7905; + this.match(TSqlParser.EQUAL); + this.state = 7906; + localctx.master_key_backup_file = this.match(TSqlParser.STRING); + this.state = 7907; + this.match(TSqlParser.ENCRYPTION); + this.state = 7908; + this.match(TSqlParser.BY); + this.state = 7909; + this.match(TSqlParser.PASSWORD); + this.state = 7910; + this.match(TSqlParser.EQUAL); + this.state = 7911; + localctx.encryption_password = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_service_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_service_master_key; + this.service_master_key_backup_file = null; // Token + this.encryption_password = null; // Token + return this; +} + +Backup_service_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_service_master_keyContext.prototype.constructor = Backup_service_master_keyContext; + +Backup_service_master_keyContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_service_master_keyContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Backup_service_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Backup_service_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Backup_service_master_keyContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Backup_service_master_keyContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Backup_service_master_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_service_master_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Backup_service_master_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Backup_service_master_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Backup_service_master_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_service_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_service_master_key(this); + } +}; + +Backup_service_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_service_master_key(this); + } +}; + +Backup_service_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_service_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_service_master_keyContext = Backup_service_master_keyContext; + +TSqlParser.prototype.backup_service_master_key = function() { + + var localctx = new Backup_service_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 620, TSqlParser.RULE_backup_service_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7913; + this.match(TSqlParser.BACKUP); + this.state = 7914; + this.match(TSqlParser.SERVICE); + this.state = 7915; + this.match(TSqlParser.MASTER); + this.state = 7916; + this.match(TSqlParser.KEY); + this.state = 7917; + this.match(TSqlParser.TO); + this.state = 7918; + this.match(TSqlParser.FILE); + this.state = 7919; + this.match(TSqlParser.EQUAL); + this.state = 7920; + localctx.service_master_key_backup_file = this.match(TSqlParser.STRING); + this.state = 7921; + this.match(TSqlParser.ENCRYPTION); + this.state = 7922; + this.match(TSqlParser.BY); + this.state = 7923; + this.match(TSqlParser.PASSWORD); + this.state = 7924; + this.match(TSqlParser.EQUAL); + this.state = 7925; + localctx.encryption_password = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Kill_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_kill_statement; + return this; +} + +Kill_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Kill_statementContext.prototype.constructor = Kill_statementContext; + +Kill_statementContext.prototype.KILL = function() { + return this.getToken(TSqlParser.KILL, 0); +}; + +Kill_statementContext.prototype.kill_process = function() { + return this.getTypedRuleContext(Kill_processContext,0); +}; + +Kill_statementContext.prototype.kill_query_notification = function() { + return this.getTypedRuleContext(Kill_query_notificationContext,0); +}; + +Kill_statementContext.prototype.kill_stats_job = function() { + return this.getTypedRuleContext(Kill_stats_jobContext,0); +}; + +Kill_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKill_statement(this); + } +}; + +Kill_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKill_statement(this); + } +}; + +Kill_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKill_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Kill_statementContext = Kill_statementContext; + +TSqlParser.prototype.kill_statement = function() { + + var localctx = new Kill_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 622, TSqlParser.RULE_kill_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7927; + this.match(TSqlParser.KILL); + this.state = 7931; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UOW: + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + this.state = 7928; + this.kill_process(); + break; + case TSqlParser.QUERY: + this.state = 7929; + this.kill_query_notification(); + break; + case TSqlParser.STATS: + this.state = 7930; + this.kill_stats_job(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Kill_processContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_kill_process; + this.session_id = null; // Token + return this; +} + +Kill_processContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Kill_processContext.prototype.constructor = Kill_processContext; + +Kill_processContext.prototype.UOW = function() { + return this.getToken(TSqlParser.UOW, 0); +}; + +Kill_processContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Kill_processContext.prototype.STATUSONLY = function() { + return this.getToken(TSqlParser.STATUSONLY, 0); +}; + +Kill_processContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Kill_processContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Kill_processContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKill_process(this); + } +}; + +Kill_processContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKill_process(this); + } +}; + +Kill_processContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKill_process(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Kill_processContext = Kill_processContext; + +TSqlParser.prototype.kill_process = function() { + + var localctx = new Kill_processContext(this, this._ctx, this.state); + this.enterRule(localctx, 624, TSqlParser.RULE_kill_process); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7935; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + this.state = 7933; + localctx.session_id = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + localctx.session_id = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.UOW: + this.state = 7934; + this.match(TSqlParser.UOW); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7939; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1099,this._ctx); + if(la_===1) { + this.state = 7937; + this.match(TSqlParser.WITH); + this.state = 7938; + this.match(TSqlParser.STATUSONLY); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Kill_query_notificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_kill_query_notification; + this.subscription_id = null; // Token + return this; +} + +Kill_query_notificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Kill_query_notificationContext.prototype.constructor = Kill_query_notificationContext; + +Kill_query_notificationContext.prototype.QUERY = function() { + return this.getToken(TSqlParser.QUERY, 0); +}; + +Kill_query_notificationContext.prototype.NOTIFICATION = function() { + return this.getToken(TSqlParser.NOTIFICATION, 0); +}; + +Kill_query_notificationContext.prototype.SUBSCRIPTION = function() { + return this.getToken(TSqlParser.SUBSCRIPTION, 0); +}; + +Kill_query_notificationContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Kill_query_notificationContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Kill_query_notificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKill_query_notification(this); + } +}; + +Kill_query_notificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKill_query_notification(this); + } +}; + +Kill_query_notificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKill_query_notification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Kill_query_notificationContext = Kill_query_notificationContext; + +TSqlParser.prototype.kill_query_notification = function() { + + var localctx = new Kill_query_notificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 626, TSqlParser.RULE_kill_query_notification); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7941; + this.match(TSqlParser.QUERY); + this.state = 7942; + this.match(TSqlParser.NOTIFICATION); + this.state = 7943; + this.match(TSqlParser.SUBSCRIPTION); + this.state = 7946; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.state = 7944; + this.match(TSqlParser.ALL); + break; + case TSqlParser.DECIMAL: + this.state = 7945; + localctx.subscription_id = this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Kill_stats_jobContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_kill_stats_job; + this.job_id = null; // Token + return this; +} + +Kill_stats_jobContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Kill_stats_jobContext.prototype.constructor = Kill_stats_jobContext; + +Kill_stats_jobContext.prototype.STATS = function() { + return this.getToken(TSqlParser.STATS, 0); +}; + +Kill_stats_jobContext.prototype.JOB = function() { + return this.getToken(TSqlParser.JOB, 0); +}; + +Kill_stats_jobContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Kill_stats_jobContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKill_stats_job(this); + } +}; + +Kill_stats_jobContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKill_stats_job(this); + } +}; + +Kill_stats_jobContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKill_stats_job(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Kill_stats_jobContext = Kill_stats_jobContext; + +TSqlParser.prototype.kill_stats_job = function() { + + var localctx = new Kill_stats_jobContext(this, this._ctx, this.state); + this.enterRule(localctx, 628, TSqlParser.RULE_kill_stats_job); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7948; + this.match(TSqlParser.STATS); + this.state = 7949; + this.match(TSqlParser.JOB); + this.state = 7950; + localctx.job_id = this.match(TSqlParser.DECIMAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_statement; + return this; +} + +Execute_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_statementContext.prototype.constructor = Execute_statementContext; + +Execute_statementContext.prototype.EXECUTE = function() { + return this.getToken(TSqlParser.EXECUTE, 0); +}; + +Execute_statementContext.prototype.execute_body = function() { + return this.getTypedRuleContext(Execute_bodyContext,0); +}; + +Execute_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_statement(this); + } +}; + +Execute_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_statement(this); + } +}; + +Execute_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_statementContext = Execute_statementContext; + +TSqlParser.prototype.execute_statement = function() { + + var localctx = new Execute_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 630, TSqlParser.RULE_execute_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7952; + this.match(TSqlParser.EXECUTE); + this.state = 7953; + this.execute_body(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_bodyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_body; + this.return_status = null; // Token + return this; +} + +Execute_bodyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_bodyContext.prototype.constructor = Execute_bodyContext; + +Execute_bodyContext.prototype.func_proc_name_server_database_schema = function() { + return this.getTypedRuleContext(Func_proc_name_server_database_schemaContext,0); +}; + +Execute_bodyContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Execute_bodyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Execute_bodyContext.prototype.execute_statement_arg = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Execute_statement_argContext); + } else { + return this.getTypedRuleContext(Execute_statement_argContext,i); + } +}; + +Execute_bodyContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Execute_bodyContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Execute_bodyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Execute_bodyContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Execute_bodyContext.prototype.execute_var_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Execute_var_stringContext); + } else { + return this.getTypedRuleContext(Execute_var_stringContext,i); + } +}; + +Execute_bodyContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Execute_bodyContext.prototype.PLUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PLUS); + } else { + return this.getToken(TSqlParser.PLUS, i); + } +}; + + +Execute_bodyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Execute_bodyContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Execute_bodyContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Execute_bodyContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Execute_bodyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_body(this); + } +}; + +Execute_bodyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_body(this); + } +}; + +Execute_bodyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_body(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_bodyContext = Execute_bodyContext; + +TSqlParser.prototype.execute_body = function() { + + var localctx = new Execute_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 632, TSqlParser.RULE_execute_body); + var _la = 0; // Token type + try { + this.state = 7997; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1110,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7957; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1101,this._ctx); + if(la_===1) { + this.state = 7955; + localctx.return_status = this.match(TSqlParser.LOCAL_ID); + this.state = 7956; + this.match(TSqlParser.EQUAL); + + } + this.state = 7961; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1102,this._ctx); + switch(la_) { + case 1: + this.state = 7959; + this.func_proc_name_server_database_schema(); + break; + + case 2: + this.state = 7960; + this.expression(0); + break; + + } + this.state = 7971; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1104,this._ctx); + if(la_===1) { + this.state = 7963; + this.execute_statement_arg(); + this.state = 7968; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7964; + this.match(TSqlParser.COMMA); + this.state = 7965; + this.execute_statement_arg(); + this.state = 7970; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + this.state = 7974; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1105,this._ctx); + if(la_===1) { + this.state = 7973; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7976; + this.match(TSqlParser.LR_BRACKET); + this.state = 7977; + this.execute_var_string(); + this.state = 7982; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.PLUS) { + this.state = 7978; + this.match(TSqlParser.PLUS); + this.state = 7979; + this.execute_var_string(); + this.state = 7984; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7985; + this.match(TSqlParser.RR_BRACKET); + this.state = 7992; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1108,this._ctx); + if(la_===1) { + this.state = 7987; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 7986; + this.match(TSqlParser.AS); + } + + this.state = 7989; + _la = this._input.LA(1); + if(!(_la===TSqlParser.USER || _la===TSqlParser.LOGIN)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7990; + this.match(TSqlParser.EQUAL); + this.state = 7991; + this.match(TSqlParser.STRING); + + } + this.state = 7995; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1109,this._ctx); + if(la_===1) { + this.state = 7994; + this.match(TSqlParser.SEMI); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_statement_argContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_statement_arg; + this.parameter = null; // Token + return this; +} + +Execute_statement_argContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_statement_argContext.prototype.constructor = Execute_statement_argContext; + +Execute_statement_argContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Execute_statement_argContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Execute_statement_argContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Execute_statement_argContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Execute_statement_argContext.prototype.constant_LOCAL_ID = function() { + return this.getTypedRuleContext(Constant_LOCAL_IDContext,0); +}; + +Execute_statement_argContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Execute_statement_argContext.prototype.OUTPUT = function() { + return this.getToken(TSqlParser.OUTPUT, 0); +}; + +Execute_statement_argContext.prototype.OUT = function() { + return this.getToken(TSqlParser.OUT, 0); +}; + +Execute_statement_argContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_statement_arg(this); + } +}; + +Execute_statement_argContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_statement_arg(this); + } +}; + +Execute_statement_argContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_statement_arg(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_statement_argContext = Execute_statement_argContext; + +TSqlParser.prototype.execute_statement_arg = function() { + + var localctx = new Execute_statement_argContext(this, this._ctx, this.state); + this.enterRule(localctx, 634, TSqlParser.RULE_execute_statement_arg); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8001; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1111,this._ctx); + if(la_===1) { + this.state = 7999; + localctx.parameter = this.match(TSqlParser.LOCAL_ID); + this.state = 8000; + this.match(TSqlParser.EQUAL); + + } + this.state = 8012; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 8005; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 8003; + this.constant_LOCAL_ID(); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8004; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8008; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1113,this._ctx); + if(la_===1) { + this.state = 8007; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OUT || _la===TSqlParser.OUTPUT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case TSqlParser.DEFAULT: + this.state = 8010; + this.match(TSqlParser.DEFAULT); + break; + case TSqlParser.NULL: + this.state = 8011; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_var_stringContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_var_string; + return this; +} + +Execute_var_stringContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_var_stringContext.prototype.constructor = Execute_var_stringContext; + +Execute_var_stringContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Execute_var_stringContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Execute_var_stringContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_var_string(this); + } +}; + +Execute_var_stringContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_var_string(this); + } +}; + +Execute_var_stringContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_var_string(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_var_stringContext = Execute_var_stringContext; + +TSqlParser.prototype.execute_var_string = function() { + + var localctx = new Execute_var_stringContext(this, this._ctx, this.state); + this.enterRule(localctx, 636, TSqlParser.RULE_execute_var_string); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8014; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Security_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_security_statement; + this.on_id = null; // Table_nameContext + this._id = null; // IdContext + this.to_principal = []; // of IdContexts + this.as_principal = null; // IdContext + return this; +} + +Security_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Security_statementContext.prototype.constructor = Security_statementContext; + +Security_statementContext.prototype.execute_clause = function() { + return this.getTypedRuleContext(Execute_clauseContext,0); +}; + +Security_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Security_statementContext.prototype.GRANT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GRANT); + } else { + return this.getToken(TSqlParser.GRANT, i); + } +}; + + +Security_statementContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Security_statementContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Security_statementContext.prototype.grant_permission = function() { + return this.getTypedRuleContext(Grant_permissionContext,0); +}; + +Security_statementContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Security_statementContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Security_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Security_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Security_statementContext.prototype.OPTION = function() { + return this.getToken(TSqlParser.OPTION, 0); +}; + +Security_statementContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Security_statementContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Security_statementContext.prototype.PRIVILEGES = function() { + return this.getToken(TSqlParser.PRIVILEGES, 0); +}; + +Security_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Security_statementContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Security_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Security_statementContext.prototype.REVERT = function() { + return this.getToken(TSqlParser.REVERT, 0); +}; + +Security_statementContext.prototype.COOKIE = function() { + return this.getToken(TSqlParser.COOKIE, 0); +}; + +Security_statementContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Security_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Security_statementContext.prototype.open_key = function() { + return this.getTypedRuleContext(Open_keyContext,0); +}; + +Security_statementContext.prototype.close_key = function() { + return this.getTypedRuleContext(Close_keyContext,0); +}; + +Security_statementContext.prototype.create_key = function() { + return this.getTypedRuleContext(Create_keyContext,0); +}; + +Security_statementContext.prototype.create_certificate = function() { + return this.getTypedRuleContext(Create_certificateContext,0); +}; + +Security_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSecurity_statement(this); + } +}; + +Security_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSecurity_statement(this); + } +}; + +Security_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSecurity_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Security_statementContext = Security_statementContext; + +TSqlParser.prototype.security_statement = function() { + + var localctx = new Security_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 638, TSqlParser.RULE_security_statement); + var _la = 0; // Token type + try { + this.state = 8075; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1126,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8016; + this.execute_clause(); + this.state = 8018; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1115,this._ctx); + if(la_===1) { + this.state = 8017; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8020; + this.match(TSqlParser.GRANT); + this.state = 8032; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.state = 8021; + this.match(TSqlParser.ALL); + this.state = 8023; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PRIVILEGES) { + this.state = 8022; + this.match(TSqlParser.PRIVILEGES); + } + + break; + case TSqlParser.ALTER: + case TSqlParser.CREATE: + case TSqlParser.EXECUTE: + case TSqlParser.INSERT: + case TSqlParser.REFERENCES: + case TSqlParser.SELECT: + case TSqlParser.VIEW: + case TSqlParser.CONTROL: + case TSqlParser.IMPERSONATE: + case TSqlParser.SHOWPLAN: + case TSqlParser.TAKE: + this.state = 8025; + this.grant_permission(); + this.state = 8030; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 8026; + this.match(TSqlParser.LR_BRACKET); + this.state = 8027; + this.column_name_list(); + this.state = 8028; + this.match(TSqlParser.RR_BRACKET); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 8034; + this.match(TSqlParser.ON); + this.state = 8035; + localctx.on_id = this.table_name(); + } + + this.state = 8038; + this.match(TSqlParser.TO); + + this.state = 8039; + localctx._id = this.id(); + localctx.to_principal.push(localctx._id); + this.state = 8044; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8040; + this.match(TSqlParser.COMMA); + this.state = 8041; + localctx._id = this.id(); + localctx.to_principal.push(localctx._id); + this.state = 8046; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8050; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1121,this._ctx); + if(la_===1) { + this.state = 8047; + this.match(TSqlParser.WITH); + this.state = 8048; + this.match(TSqlParser.GRANT); + this.state = 8049; + this.match(TSqlParser.OPTION); + + } + this.state = 8054; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 8052; + this.match(TSqlParser.AS); + this.state = 8053; + localctx.as_principal = this.id(); + } + + this.state = 8057; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1123,this._ctx); + if(la_===1) { + this.state = 8056; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8059; + this.match(TSqlParser.REVERT); + this.state = 8066; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1124,this._ctx); + if(la_===1) { + this.state = 8060; + this.match(TSqlParser.LR_BRACKET); + this.state = 8061; + this.match(TSqlParser.WITH); + this.state = 8062; + this.match(TSqlParser.COOKIE); + this.state = 8063; + this.match(TSqlParser.EQUAL); + this.state = 8064; + this.match(TSqlParser.LOCAL_ID); + this.state = 8065; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 8069; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1125,this._ctx); + if(la_===1) { + this.state = 8068; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8071; + this.open_key(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 8072; + this.close_key(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 8073; + this.create_key(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 8074; + this.create_certificate(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_certificateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_certificate; + this.certificate_name = null; // IdContext + this.user_name = null; // IdContext + return this; +} + +Create_certificateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_certificateContext.prototype.constructor = Create_certificateContext; + +Create_certificateContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_certificateContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Create_certificateContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_certificateContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_certificateContext.prototype.existing_keys = function() { + return this.getTypedRuleContext(Existing_keysContext,0); +}; + +Create_certificateContext.prototype.generate_new_keys = function() { + return this.getTypedRuleContext(Generate_new_keysContext,0); +}; + +Create_certificateContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_certificateContext.prototype.ACTIVE = function() { + return this.getToken(TSqlParser.ACTIVE, 0); +}; + +Create_certificateContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_certificateContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Create_certificateContext.prototype.DIALOG = function() { + return this.getToken(TSqlParser.DIALOG, 0); +}; + +Create_certificateContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_certificateContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_certificateContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_certificateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_certificate(this); + } +}; + +Create_certificateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_certificate(this); + } +}; + +Create_certificateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_certificate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_certificateContext = Create_certificateContext; + +TSqlParser.prototype.create_certificate = function() { + + var localctx = new Create_certificateContext(this, this._ctx, this.state); + this.enterRule(localctx, 640, TSqlParser.RULE_create_certificate); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8077; + this.match(TSqlParser.CREATE); + this.state = 8078; + this.match(TSqlParser.CERTIFICATE); + this.state = 8079; + localctx.certificate_name = this.id(); + this.state = 8082; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 8080; + this.match(TSqlParser.AUTHORIZATION); + this.state = 8081; + localctx.user_name = this.id(); + } + + this.state = 8087; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FROM: + this.state = 8084; + this.match(TSqlParser.FROM); + this.state = 8085; + this.existing_keys(); + break; + case TSqlParser.WITH: + case TSqlParser.ENCRYPTION: + this.state = 8086; + this.generate_new_keys(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8095; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1129,this._ctx); + if(la_===1) { + this.state = 8089; + this.match(TSqlParser.ACTIVE); + this.state = 8090; + this.match(TSqlParser.FOR); + this.state = 8091; + this.match(TSqlParser.BEGIN); + this.state = 8092; + this.match(TSqlParser.DIALOG); + this.state = 8093; + this.match(TSqlParser.EQUAL); + this.state = 8094; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Existing_keysContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_existing_keys; + this.assembly_name = null; // IdContext + this.path_to_file = null; // Token + return this; +} + +Existing_keysContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Existing_keysContext.prototype.constructor = Existing_keysContext; + +Existing_keysContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Existing_keysContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Existing_keysContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Existing_keysContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Existing_keysContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Existing_keysContext.prototype.EXECUTABLE = function() { + return this.getToken(TSqlParser.EXECUTABLE, 0); +}; + +Existing_keysContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Existing_keysContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Existing_keysContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Existing_keysContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Existing_keysContext.prototype.private_key_options = function() { + return this.getTypedRuleContext(Private_key_optionsContext,0); +}; + +Existing_keysContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Existing_keysContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExisting_keys(this); + } +}; + +Existing_keysContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExisting_keys(this); + } +}; + +Existing_keysContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExisting_keys(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Existing_keysContext = Existing_keysContext; + +TSqlParser.prototype.existing_keys = function() { + + var localctx = new Existing_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 642, TSqlParser.RULE_existing_keys); + var _la = 0; // Token type + try { + this.state = 8114; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ASSEMBLY: + this.enterOuterAlt(localctx, 1); + this.state = 8097; + this.match(TSqlParser.ASSEMBLY); + this.state = 8098; + localctx.assembly_name = this.id(); + break; + case TSqlParser.FILE: + case TSqlParser.EXECUTABLE: + this.enterOuterAlt(localctx, 2); + this.state = 8100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EXECUTABLE) { + this.state = 8099; + this.match(TSqlParser.EXECUTABLE); + } + + this.state = 8102; + this.match(TSqlParser.FILE); + this.state = 8103; + this.match(TSqlParser.EQUAL); + this.state = 8104; + localctx.path_to_file = this.match(TSqlParser.STRING); + this.state = 8112; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1131,this._ctx); + if(la_===1) { + this.state = 8105; + this.match(TSqlParser.WITH); + this.state = 8106; + this.match(TSqlParser.PRIVATE); + this.state = 8107; + this.match(TSqlParser.KEY); + this.state = 8108; + this.match(TSqlParser.LR_BRACKET); + this.state = 8109; + this.private_key_options(); + this.state = 8110; + this.match(TSqlParser.RR_BRACKET); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Private_key_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_private_key_options; + this.path = null; // Token + this.password = null; // Token + return this; +} + +Private_key_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Private_key_optionsContext.prototype.constructor = Private_key_optionsContext; + +Private_key_optionsContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Private_key_optionsContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Private_key_optionsContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Private_key_optionsContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Private_key_optionsContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Private_key_optionsContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Private_key_optionsContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Private_key_optionsContext.prototype.DECRYPTION = function() { + return this.getToken(TSqlParser.DECRYPTION, 0); +}; + +Private_key_optionsContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Private_key_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPrivate_key_options(this); + } +}; + +Private_key_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPrivate_key_options(this); + } +}; + +Private_key_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPrivate_key_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Private_key_optionsContext = Private_key_optionsContext; + +TSqlParser.prototype.private_key_options = function() { + + var localctx = new Private_key_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 644, TSqlParser.RULE_private_key_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8116; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FILE || _la===TSqlParser.BINARY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8117; + this.match(TSqlParser.EQUAL); + this.state = 8118; + localctx.path = this.match(TSqlParser.STRING); + this.state = 8125; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 8119; + this.match(TSqlParser.COMMA); + this.state = 8120; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECRYPTION || _la===TSqlParser.ENCRYPTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8121; + this.match(TSqlParser.BY); + this.state = 8122; + this.match(TSqlParser.PASSWORD); + this.state = 8123; + this.match(TSqlParser.EQUAL); + this.state = 8124; + localctx.password = this.match(TSqlParser.STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Generate_new_keysContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_generate_new_keys; + this.password = null; // Token + this.certificate_subject_name = null; // Token + return this; +} + +Generate_new_keysContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Generate_new_keysContext.prototype.constructor = Generate_new_keysContext; + +Generate_new_keysContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Generate_new_keysContext.prototype.SUBJECT = function() { + return this.getToken(TSqlParser.SUBJECT, 0); +}; + +Generate_new_keysContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Generate_new_keysContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Generate_new_keysContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Generate_new_keysContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Generate_new_keysContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Generate_new_keysContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Generate_new_keysContext.prototype.date_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Date_optionsContext); + } else { + return this.getTypedRuleContext(Date_optionsContext,i); + } +}; + +Generate_new_keysContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGenerate_new_keys(this); + } +}; + +Generate_new_keysContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGenerate_new_keys(this); + } +}; + +Generate_new_keysContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGenerate_new_keys(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Generate_new_keysContext = Generate_new_keysContext; + +TSqlParser.prototype.generate_new_keys = function() { + + var localctx = new Generate_new_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 646, TSqlParser.RULE_generate_new_keys); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8132; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ENCRYPTION) { + this.state = 8127; + this.match(TSqlParser.ENCRYPTION); + this.state = 8128; + this.match(TSqlParser.BY); + this.state = 8129; + this.match(TSqlParser.PASSWORD); + this.state = 8130; + this.match(TSqlParser.EQUAL); + this.state = 8131; + localctx.password = this.match(TSqlParser.STRING); + } + + this.state = 8134; + this.match(TSqlParser.WITH); + this.state = 8135; + this.match(TSqlParser.SUBJECT); + this.state = 8136; + this.match(TSqlParser.EQUAL); + this.state = 8137; + localctx.certificate_subject_name = this.match(TSqlParser.STRING); + this.state = 8142; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8138; + this.match(TSqlParser.COMMA); + this.state = 8139; + this.date_options(); + this.state = 8144; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Date_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_date_options; + return this; +} + +Date_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Date_optionsContext.prototype.constructor = Date_optionsContext; + +Date_optionsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Date_optionsContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Date_optionsContext.prototype.START_DATE = function() { + return this.getToken(TSqlParser.START_DATE, 0); +}; + +Date_optionsContext.prototype.EXPIRY_DATE = function() { + return this.getToken(TSqlParser.EXPIRY_DATE, 0); +}; + +Date_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDate_options(this); + } +}; + +Date_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDate_options(this); + } +}; + +Date_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDate_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Date_optionsContext = Date_optionsContext; + +TSqlParser.prototype.date_options = function() { + + var localctx = new Date_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 648, TSqlParser.RULE_date_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8145; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EXPIRY_DATE || _la===TSqlParser.START_DATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8146; + this.match(TSqlParser.EQUAL); + this.state = 8147; + this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Open_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_open_key; + this.key_name = null; // IdContext + this.password = null; // Token + return this; +} + +Open_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Open_keyContext.prototype.constructor = Open_keyContext; + +Open_keyContext.prototype.OPEN = function() { + return this.getToken(TSqlParser.OPEN, 0); +}; + +Open_keyContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Open_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Open_keyContext.prototype.DECRYPTION = function() { + return this.getToken(TSqlParser.DECRYPTION, 0); +}; + +Open_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Open_keyContext.prototype.decryption_mechanism = function() { + return this.getTypedRuleContext(Decryption_mechanismContext,0); +}; + +Open_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Open_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Open_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Open_keyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Open_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Open_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOpen_key(this); + } +}; + +Open_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOpen_key(this); + } +}; + +Open_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOpen_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Open_keyContext = Open_keyContext; + +TSqlParser.prototype.open_key = function() { + + var localctx = new Open_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 650, TSqlParser.RULE_open_key); + try { + this.state = 8165; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1136,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8149; + this.match(TSqlParser.OPEN); + this.state = 8150; + this.match(TSqlParser.SYMMETRIC); + this.state = 8151; + this.match(TSqlParser.KEY); + this.state = 8152; + localctx.key_name = this.id(); + this.state = 8153; + this.match(TSqlParser.DECRYPTION); + this.state = 8154; + this.match(TSqlParser.BY); + this.state = 8155; + this.decryption_mechanism(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8157; + this.match(TSqlParser.OPEN); + this.state = 8158; + this.match(TSqlParser.MASTER); + this.state = 8159; + this.match(TSqlParser.KEY); + this.state = 8160; + this.match(TSqlParser.DECRYPTION); + this.state = 8161; + this.match(TSqlParser.BY); + this.state = 8162; + this.match(TSqlParser.PASSWORD); + this.state = 8163; + this.match(TSqlParser.EQUAL); + this.state = 8164; + localctx.password = this.match(TSqlParser.STRING); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Close_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_close_key; + this.key_name = null; // IdContext + return this; +} + +Close_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Close_keyContext.prototype.constructor = Close_keyContext; + +Close_keyContext.prototype.CLOSE = function() { + return this.getToken(TSqlParser.CLOSE, 0); +}; + +Close_keyContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Close_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Close_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Close_keyContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Close_keyContext.prototype.KEYS = function() { + return this.getToken(TSqlParser.KEYS, 0); +}; + +Close_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Close_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClose_key(this); + } +}; + +Close_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClose_key(this); + } +}; + +Close_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClose_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Close_keyContext = Close_keyContext; + +TSqlParser.prototype.close_key = function() { + + var localctx = new Close_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 652, TSqlParser.RULE_close_key); + try { + this.state = 8178; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1137,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8167; + this.match(TSqlParser.CLOSE); + this.state = 8168; + this.match(TSqlParser.SYMMETRIC); + this.state = 8169; + this.match(TSqlParser.KEY); + this.state = 8170; + localctx.key_name = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8171; + this.match(TSqlParser.CLOSE); + this.state = 8172; + this.match(TSqlParser.ALL); + this.state = 8173; + this.match(TSqlParser.SYMMETRIC); + this.state = 8174; + this.match(TSqlParser.KEYS); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8175; + this.match(TSqlParser.CLOSE); + this.state = 8176; + this.match(TSqlParser.MASTER); + this.state = 8177; + this.match(TSqlParser.KEY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_key; + this.password = null; // Token + this.key_name = null; // IdContext + this.user_name = null; // IdContext + this.provider_name = null; // IdContext + return this; +} + +Create_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_keyContext.prototype.constructor = Create_keyContext; + +Create_keyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Create_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_keyContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Create_keyContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Create_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_keyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_keyContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Create_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_keyContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_keyContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_keyContext.prototype.key_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_optionsContext); + } else { + return this.getTypedRuleContext(Key_optionsContext,i); + } +}; + +Create_keyContext.prototype.encryption_mechanism = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Encryption_mechanismContext); + } else { + return this.getTypedRuleContext(Encryption_mechanismContext,i); + } +}; + +Create_keyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_key(this); + } +}; + +Create_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_key(this); + } +}; + +Create_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_keyContext = Create_keyContext; + +TSqlParser.prototype.create_key = function() { + + var localctx = new Create_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 654, TSqlParser.RULE_create_key); + var _la = 0; // Token type + try { + this.state = 8215; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1143,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8180; + this.match(TSqlParser.CREATE); + this.state = 8181; + this.match(TSqlParser.MASTER); + this.state = 8182; + this.match(TSqlParser.KEY); + this.state = 8183; + this.match(TSqlParser.ENCRYPTION); + this.state = 8184; + this.match(TSqlParser.BY); + this.state = 8185; + this.match(TSqlParser.PASSWORD); + this.state = 8186; + this.match(TSqlParser.EQUAL); + this.state = 8187; + localctx.password = this.match(TSqlParser.STRING); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8188; + this.match(TSqlParser.CREATE); + this.state = 8189; + this.match(TSqlParser.SYMMETRIC); + this.state = 8190; + this.match(TSqlParser.KEY); + this.state = 8191; + localctx.key_name = this.id(); + this.state = 8194; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 8192; + this.match(TSqlParser.AUTHORIZATION); + this.state = 8193; + localctx.user_name = this.id(); + } + + this.state = 8199; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 8196; + this.match(TSqlParser.FROM); + this.state = 8197; + this.match(TSqlParser.PROVIDER); + this.state = 8198; + localctx.provider_name = this.id(); + } + + this.state = 8201; + this.match(TSqlParser.WITH); + this.state = 8211; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 8206; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALGORITHM: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.KEY_SOURCE: + case TSqlParser.PROVIDER_KEY_NAME: + this.state = 8202; + this.key_options(); + break; + case TSqlParser.ENCRYPTION: + this.state = 8203; + this.match(TSqlParser.ENCRYPTION); + this.state = 8204; + this.match(TSqlParser.BY); + this.state = 8205; + this.encryption_mechanism(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8209; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 8208; + this.match(TSqlParser.COMMA); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8213; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1142, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Key_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_key_options; + this.pass_phrase = null; // Token + this.identity_phrase = null; // Token + this.key_name_in_provider = null; // Token + return this; +} + +Key_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Key_optionsContext.prototype.constructor = Key_optionsContext; + +Key_optionsContext.prototype.KEY_SOURCE = function() { + return this.getToken(TSqlParser.KEY_SOURCE, 0); +}; + +Key_optionsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Key_optionsContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Key_optionsContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Key_optionsContext.prototype.algorithm = function() { + return this.getTypedRuleContext(AlgorithmContext,0); +}; + +Key_optionsContext.prototype.IDENTITY_VALUE = function() { + return this.getToken(TSqlParser.IDENTITY_VALUE, 0); +}; + +Key_optionsContext.prototype.PROVIDER_KEY_NAME = function() { + return this.getToken(TSqlParser.PROVIDER_KEY_NAME, 0); +}; + +Key_optionsContext.prototype.CREATION_DISPOSITION = function() { + return this.getToken(TSqlParser.CREATION_DISPOSITION, 0); +}; + +Key_optionsContext.prototype.CREATE_NEW = function() { + return this.getToken(TSqlParser.CREATE_NEW, 0); +}; + +Key_optionsContext.prototype.OPEN_EXISTING = function() { + return this.getToken(TSqlParser.OPEN_EXISTING, 0); +}; + +Key_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKey_options(this); + } +}; + +Key_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKey_options(this); + } +}; + +Key_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKey_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Key_optionsContext = Key_optionsContext; + +TSqlParser.prototype.key_options = function() { + + var localctx = new Key_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 656, TSqlParser.RULE_key_options); + var _la = 0; // Token type + try { + this.state = 8232; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.KEY_SOURCE: + this.enterOuterAlt(localctx, 1); + this.state = 8217; + this.match(TSqlParser.KEY_SOURCE); + this.state = 8218; + this.match(TSqlParser.EQUAL); + this.state = 8219; + localctx.pass_phrase = this.match(TSqlParser.STRING); + break; + case TSqlParser.ALGORITHM: + this.enterOuterAlt(localctx, 2); + this.state = 8220; + this.match(TSqlParser.ALGORITHM); + this.state = 8221; + this.match(TSqlParser.EQUAL); + this.state = 8222; + this.algorithm(); + break; + case TSqlParser.IDENTITY_VALUE: + this.enterOuterAlt(localctx, 3); + this.state = 8223; + this.match(TSqlParser.IDENTITY_VALUE); + this.state = 8224; + this.match(TSqlParser.EQUAL); + this.state = 8225; + localctx.identity_phrase = this.match(TSqlParser.STRING); + break; + case TSqlParser.PROVIDER_KEY_NAME: + this.enterOuterAlt(localctx, 4); + this.state = 8226; + this.match(TSqlParser.PROVIDER_KEY_NAME); + this.state = 8227; + this.match(TSqlParser.EQUAL); + this.state = 8228; + localctx.key_name_in_provider = this.match(TSqlParser.STRING); + break; + case TSqlParser.CREATION_DISPOSITION: + this.enterOuterAlt(localctx, 5); + this.state = 8229; + this.match(TSqlParser.CREATION_DISPOSITION); + this.state = 8230; + this.match(TSqlParser.EQUAL); + this.state = 8231; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CREATE_NEW || _la===TSqlParser.OPEN_EXISTING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlgorithmContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_algorithm; + return this; +} + +AlgorithmContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlgorithmContext.prototype.constructor = AlgorithmContext; + +AlgorithmContext.prototype.DES = function() { + return this.getToken(TSqlParser.DES, 0); +}; + +AlgorithmContext.prototype.TRIPLE_DES = function() { + return this.getToken(TSqlParser.TRIPLE_DES, 0); +}; + +AlgorithmContext.prototype.TRIPLE_DES_3KEY = function() { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, 0); +}; + +AlgorithmContext.prototype.RC2 = function() { + return this.getToken(TSqlParser.RC2, 0); +}; + +AlgorithmContext.prototype.RC4 = function() { + return this.getToken(TSqlParser.RC4, 0); +}; + +AlgorithmContext.prototype.RC4_128 = function() { + return this.getToken(TSqlParser.RC4_128, 0); +}; + +AlgorithmContext.prototype.DESX = function() { + return this.getToken(TSqlParser.DESX, 0); +}; + +AlgorithmContext.prototype.AES_128 = function() { + return this.getToken(TSqlParser.AES_128, 0); +}; + +AlgorithmContext.prototype.AES_192 = function() { + return this.getToken(TSqlParser.AES_192, 0); +}; + +AlgorithmContext.prototype.AES_256 = function() { + return this.getToken(TSqlParser.AES_256, 0); +}; + +AlgorithmContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlgorithm(this); + } +}; + +AlgorithmContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlgorithm(this); + } +}; + +AlgorithmContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlgorithm(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.AlgorithmContext = AlgorithmContext; + +TSqlParser.prototype.algorithm = function() { + + var localctx = new AlgorithmContext(this, this._ctx, this.state); + this.enterRule(localctx, 658, TSqlParser.RULE_algorithm); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8234; + _la = this._input.LA(1); + if(!(((((_la - 386)) & ~0x1f) == 0 && ((1 << (_la - 386)) & ((1 << (TSqlParser.AES_128 - 386)) | (1 << (TSqlParser.AES_192 - 386)) | (1 << (TSqlParser.AES_256 - 386)))) !== 0) || _la===TSqlParser.DES || _la===TSqlParser.DESX || ((((_la - 663)) & ~0x1f) == 0 && ((1 << (_la - 663)) & ((1 << (TSqlParser.RC2 - 663)) | (1 << (TSqlParser.RC4 - 663)) | (1 << (TSqlParser.RC4_128 - 663)))) !== 0) || _la===TSqlParser.TRIPLE_DES || _la===TSqlParser.TRIPLE_DES_3KEY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Encryption_mechanismContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_encryption_mechanism; + this.certificate_name = null; // IdContext + this.asym_key_name = null; // IdContext + this.decrypting_Key_name = null; // IdContext + return this; +} + +Encryption_mechanismContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Encryption_mechanismContext.prototype.constructor = Encryption_mechanismContext; + +Encryption_mechanismContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Encryption_mechanismContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Encryption_mechanismContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Encryption_mechanismContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Encryption_mechanismContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Encryption_mechanismContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Encryption_mechanismContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Encryption_mechanismContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Encryption_mechanismContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEncryption_mechanism(this); + } +}; + +Encryption_mechanismContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEncryption_mechanism(this); + } +}; + +Encryption_mechanismContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEncryption_mechanism(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Encryption_mechanismContext = Encryption_mechanismContext; + +TSqlParser.prototype.encryption_mechanism = function() { + + var localctx = new Encryption_mechanismContext(this, this._ctx, this.state); + this.enterRule(localctx, 660, TSqlParser.RULE_encryption_mechanism); + try { + this.state = 8247; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CERTIFICATE: + this.enterOuterAlt(localctx, 1); + this.state = 8236; + this.match(TSqlParser.CERTIFICATE); + this.state = 8237; + localctx.certificate_name = this.id(); + break; + case TSqlParser.ASYMMETRIC: + this.enterOuterAlt(localctx, 2); + this.state = 8238; + this.match(TSqlParser.ASYMMETRIC); + this.state = 8239; + this.match(TSqlParser.KEY); + this.state = 8240; + localctx.asym_key_name = this.id(); + break; + case TSqlParser.SYMMETRIC: + this.enterOuterAlt(localctx, 3); + this.state = 8241; + this.match(TSqlParser.SYMMETRIC); + this.state = 8242; + this.match(TSqlParser.KEY); + this.state = 8243; + localctx.decrypting_Key_name = this.id(); + break; + case TSqlParser.PASSWORD: + this.enterOuterAlt(localctx, 4); + this.state = 8244; + this.match(TSqlParser.PASSWORD); + this.state = 8245; + this.match(TSqlParser.EQUAL); + this.state = 8246; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Decryption_mechanismContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_decryption_mechanism; + this.certificate_name = null; // IdContext + this.asym_key_name = null; // IdContext + this.decrypting_Key_name = null; // IdContext + return this; +} + +Decryption_mechanismContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Decryption_mechanismContext.prototype.constructor = Decryption_mechanismContext; + +Decryption_mechanismContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Decryption_mechanismContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Decryption_mechanismContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Decryption_mechanismContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Decryption_mechanismContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Decryption_mechanismContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Decryption_mechanismContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Decryption_mechanismContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Decryption_mechanismContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Decryption_mechanismContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDecryption_mechanism(this); + } +}; + +Decryption_mechanismContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDecryption_mechanism(this); + } +}; + +Decryption_mechanismContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDecryption_mechanism(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Decryption_mechanismContext = Decryption_mechanismContext; + +TSqlParser.prototype.decryption_mechanism = function() { + + var localctx = new Decryption_mechanismContext(this, this._ctx, this.state); + this.enterRule(localctx, 662, TSqlParser.RULE_decryption_mechanism); + try { + this.state = 8272; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CERTIFICATE: + this.enterOuterAlt(localctx, 1); + this.state = 8249; + this.match(TSqlParser.CERTIFICATE); + this.state = 8250; + localctx.certificate_name = this.id(); + this.state = 8255; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1146,this._ctx); + if(la_===1) { + this.state = 8251; + this.match(TSqlParser.WITH); + this.state = 8252; + this.match(TSqlParser.PASSWORD); + this.state = 8253; + this.match(TSqlParser.EQUAL); + this.state = 8254; + this.match(TSqlParser.STRING); + + } + break; + case TSqlParser.ASYMMETRIC: + this.enterOuterAlt(localctx, 2); + this.state = 8257; + this.match(TSqlParser.ASYMMETRIC); + this.state = 8258; + this.match(TSqlParser.KEY); + this.state = 8259; + localctx.asym_key_name = this.id(); + this.state = 8264; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1147,this._ctx); + if(la_===1) { + this.state = 8260; + this.match(TSqlParser.WITH); + this.state = 8261; + this.match(TSqlParser.PASSWORD); + this.state = 8262; + this.match(TSqlParser.EQUAL); + this.state = 8263; + this.match(TSqlParser.STRING); + + } + break; + case TSqlParser.SYMMETRIC: + this.enterOuterAlt(localctx, 3); + this.state = 8266; + this.match(TSqlParser.SYMMETRIC); + this.state = 8267; + this.match(TSqlParser.KEY); + this.state = 8268; + localctx.decrypting_Key_name = this.id(); + break; + case TSqlParser.PASSWORD: + this.enterOuterAlt(localctx, 4); + this.state = 8269; + this.match(TSqlParser.PASSWORD); + this.state = 8270; + this.match(TSqlParser.EQUAL); + this.state = 8271; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Grant_permissionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_grant_permission; + return this; +} + +Grant_permissionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Grant_permissionContext.prototype.constructor = Grant_permissionContext; + +Grant_permissionContext.prototype.EXECUTE = function() { + return this.getToken(TSqlParser.EXECUTE, 0); +}; + +Grant_permissionContext.prototype.VIEW = function() { + return this.getToken(TSqlParser.VIEW, 0); +}; + +Grant_permissionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Grant_permissionContext.prototype.TAKE = function() { + return this.getToken(TSqlParser.TAKE, 0); +}; + +Grant_permissionContext.prototype.CONTROL = function() { + return this.getToken(TSqlParser.CONTROL, 0); +}; + +Grant_permissionContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Grant_permissionContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Grant_permissionContext.prototype.SHOWPLAN = function() { + return this.getToken(TSqlParser.SHOWPLAN, 0); +}; + +Grant_permissionContext.prototype.IMPERSONATE = function() { + return this.getToken(TSqlParser.IMPERSONATE, 0); +}; + +Grant_permissionContext.prototype.SELECT = function() { + return this.getToken(TSqlParser.SELECT, 0); +}; + +Grant_permissionContext.prototype.REFERENCES = function() { + return this.getToken(TSqlParser.REFERENCES, 0); +}; + +Grant_permissionContext.prototype.INSERT = function() { + return this.getToken(TSqlParser.INSERT, 0); +}; + +Grant_permissionContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Grant_permissionContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Grant_permissionContext.prototype.ANY = function() { + return this.getToken(TSqlParser.ANY, 0); +}; + +Grant_permissionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGrant_permission(this); + } +}; + +Grant_permissionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGrant_permission(this); + } +}; + +Grant_permissionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGrant_permission(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Grant_permissionContext = Grant_permissionContext; + +TSqlParser.prototype.grant_permission = function() { + + var localctx = new Grant_permissionContext(this, this._ctx, this.state); + this.enterRule(localctx, 664, TSqlParser.RULE_grant_permission); + var _la = 0; // Token type + try { + this.state = 8300; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EXECUTE: + this.enterOuterAlt(localctx, 1); + this.state = 8274; + this.match(TSqlParser.EXECUTE); + break; + case TSqlParser.VIEW: + this.enterOuterAlt(localctx, 2); + this.state = 8275; + this.match(TSqlParser.VIEW); + this.state = 8276; + this.id(); + break; + case TSqlParser.TAKE: + this.enterOuterAlt(localctx, 3); + this.state = 8277; + this.match(TSqlParser.TAKE); + this.state = 8278; + this.id(); + break; + case TSqlParser.CONTROL: + this.enterOuterAlt(localctx, 4); + this.state = 8279; + this.match(TSqlParser.CONTROL); + this.state = 8281; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 8280; + this.id(); + } + + break; + case TSqlParser.CREATE: + this.enterOuterAlt(localctx, 5); + this.state = 8283; + this.match(TSqlParser.CREATE); + this.state = 8284; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TABLE || _la===TSqlParser.VIEW)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SHOWPLAN: + this.enterOuterAlt(localctx, 6); + this.state = 8285; + this.match(TSqlParser.SHOWPLAN); + break; + case TSqlParser.IMPERSONATE: + this.enterOuterAlt(localctx, 7); + this.state = 8286; + this.match(TSqlParser.IMPERSONATE); + break; + case TSqlParser.SELECT: + this.enterOuterAlt(localctx, 8); + this.state = 8287; + this.match(TSqlParser.SELECT); + break; + case TSqlParser.REFERENCES: + this.enterOuterAlt(localctx, 9); + this.state = 8288; + this.match(TSqlParser.REFERENCES); + break; + case TSqlParser.INSERT: + this.enterOuterAlt(localctx, 10); + this.state = 8289; + this.match(TSqlParser.INSERT); + break; + case TSqlParser.ALTER: + this.enterOuterAlt(localctx, 11); + this.state = 8290; + this.match(TSqlParser.ALTER); + this.state = 8298; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ANY || _la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || _la===TSqlParser.DATABASE || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 8292; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ANY) { + this.state = 8291; + this.match(TSqlParser.ANY); + } + + this.state = 8296; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8294; + this.id(); + break; + case TSqlParser.DATABASE: + this.state = 8295; + this.match(TSqlParser.DATABASE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Set_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_set_statement; + this.member_name = null; // IdContext + return this; +} + +Set_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Set_statementContext.prototype.constructor = Set_statementContext; + +Set_statementContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Set_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Set_statementContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Set_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Set_statementContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Set_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Set_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Set_statementContext.prototype.assignment_operator = function() { + return this.getTypedRuleContext(Assignment_operatorContext,0); +}; + +Set_statementContext.prototype.CURSOR = function() { + return this.getToken(TSqlParser.CURSOR, 0); +}; + +Set_statementContext.prototype.declare_set_cursor_common = function() { + return this.getTypedRuleContext(Declare_set_cursor_commonContext,0); +}; + +Set_statementContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Set_statementContext.prototype.READ = function() { + return this.getToken(TSqlParser.READ, 0); +}; + +Set_statementContext.prototype.ONLY = function() { + return this.getToken(TSqlParser.ONLY, 0); +}; + +Set_statementContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Set_statementContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Set_statementContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Set_statementContext.prototype.set_special = function() { + return this.getTypedRuleContext(Set_specialContext,0); +}; + +Set_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSet_statement(this); + } +}; + +Set_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSet_statement(this); + } +}; + +Set_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSet_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Set_statementContext = Set_statementContext; + +TSqlParser.prototype.set_statement = function() { + + var localctx = new Set_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 666, TSqlParser.RULE_set_statement); + var _la = 0; // Token type + try { + this.state = 8341; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1161,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8302; + this.match(TSqlParser.SET); + this.state = 8303; + this.match(TSqlParser.LOCAL_ID); + this.state = 8306; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DOT) { + this.state = 8304; + this.match(TSqlParser.DOT); + this.state = 8305; + localctx.member_name = this.id(); + } + + this.state = 8308; + this.match(TSqlParser.EQUAL); + this.state = 8309; + this.expression(0); + this.state = 8311; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1155,this._ctx); + if(la_===1) { + this.state = 8310; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8313; + this.match(TSqlParser.SET); + this.state = 8314; + this.match(TSqlParser.LOCAL_ID); + this.state = 8315; + this.assignment_operator(); + this.state = 8316; + this.expression(0); + this.state = 8318; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1156,this._ctx); + if(la_===1) { + this.state = 8317; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8320; + this.match(TSqlParser.SET); + this.state = 8321; + this.match(TSqlParser.LOCAL_ID); + this.state = 8322; + this.match(TSqlParser.EQUAL); + this.state = 8323; + this.match(TSqlParser.CURSOR); + this.state = 8324; + this.declare_set_cursor_common(); + this.state = 8335; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 8325; + this.match(TSqlParser.FOR); + this.state = 8333; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.READ: + this.state = 8326; + this.match(TSqlParser.READ); + this.state = 8327; + this.match(TSqlParser.ONLY); + break; + case TSqlParser.UPDATE: + this.state = 8328; + this.match(TSqlParser.UPDATE); + this.state = 8331; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OF) { + this.state = 8329; + this.match(TSqlParser.OF); + this.state = 8330; + this.column_name_list(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 8338; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1160,this._ctx); + if(la_===1) { + this.state = 8337; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8340; + this.set_special(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Transaction_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_transaction_statement; + return this; +} + +Transaction_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Transaction_statementContext.prototype.constructor = Transaction_statementContext; + +Transaction_statementContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Transaction_statementContext.prototype.DISTRIBUTED = function() { + return this.getToken(TSqlParser.DISTRIBUTED, 0); +}; + +Transaction_statementContext.prototype.TRAN = function() { + return this.getToken(TSqlParser.TRAN, 0); +}; + +Transaction_statementContext.prototype.TRANSACTION = function() { + return this.getToken(TSqlParser.TRANSACTION, 0); +}; + +Transaction_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Transaction_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Transaction_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Transaction_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Transaction_statementContext.prototype.MARK = function() { + return this.getToken(TSqlParser.MARK, 0); +}; + +Transaction_statementContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Transaction_statementContext.prototype.COMMIT = function() { + return this.getToken(TSqlParser.COMMIT, 0); +}; + +Transaction_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Transaction_statementContext.prototype.DELAYED_DURABILITY = function() { + return this.getToken(TSqlParser.DELAYED_DURABILITY, 0); +}; + +Transaction_statementContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Transaction_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Transaction_statementContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Transaction_statementContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Transaction_statementContext.prototype.WORK = function() { + return this.getToken(TSqlParser.WORK, 0); +}; + +Transaction_statementContext.prototype.ROLLBACK = function() { + return this.getToken(TSqlParser.ROLLBACK, 0); +}; + +Transaction_statementContext.prototype.SAVE = function() { + return this.getToken(TSqlParser.SAVE, 0); +}; + +Transaction_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTransaction_statement(this); + } +}; + +Transaction_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTransaction_statement(this); + } +}; + +Transaction_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTransaction_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Transaction_statementContext = Transaction_statementContext; + +TSqlParser.prototype.transaction_statement = function() { + + var localctx = new Transaction_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 668, TSqlParser.RULE_transaction_statement); + var _la = 0; // Token type + try { + this.state = 8424; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1180,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8343; + this.match(TSqlParser.BEGIN); + this.state = 8344; + this.match(TSqlParser.DISTRIBUTED); + this.state = 8345; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8348; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1162,this._ctx); + if(la_===1) { + this.state = 8346; + this.id(); + + } else if(la_===2) { + this.state = 8347; + this.match(TSqlParser.LOCAL_ID); + + } + this.state = 8351; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1163,this._ctx); + if(la_===1) { + this.state = 8350; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8353; + this.match(TSqlParser.BEGIN); + this.state = 8354; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8364; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1166,this._ctx); + if(la_===1) { + this.state = 8357; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8355; + this.id(); + break; + case TSqlParser.LOCAL_ID: + this.state = 8356; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8362; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1165,this._ctx); + if(la_===1) { + this.state = 8359; + this.match(TSqlParser.WITH); + this.state = 8360; + this.match(TSqlParser.MARK); + this.state = 8361; + this.match(TSqlParser.STRING); + + } + + } + this.state = 8367; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1167,this._ctx); + if(la_===1) { + this.state = 8366; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8369; + this.match(TSqlParser.COMMIT); + this.state = 8370; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8383; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1170,this._ctx); + if(la_===1) { + this.state = 8373; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8371; + this.id(); + break; + case TSqlParser.LOCAL_ID: + this.state = 8372; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8381; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1169,this._ctx); + if(la_===1) { + this.state = 8375; + this.match(TSqlParser.WITH); + this.state = 8376; + this.match(TSqlParser.LR_BRACKET); + this.state = 8377; + this.match(TSqlParser.DELAYED_DURABILITY); + this.state = 8378; + this.match(TSqlParser.EQUAL); + this.state = 8379; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8380; + this.match(TSqlParser.RR_BRACKET); + + } + + } + this.state = 8386; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1171,this._ctx); + if(la_===1) { + this.state = 8385; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8388; + this.match(TSqlParser.COMMIT); + this.state = 8390; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1172,this._ctx); + if(la_===1) { + this.state = 8389; + this.match(TSqlParser.WORK); + + } + this.state = 8393; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1173,this._ctx); + if(la_===1) { + this.state = 8392; + this.match(TSqlParser.SEMI); + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 8395; + this.match(TSqlParser.COMMIT); + this.state = 8396; + this.id(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 8397; + this.match(TSqlParser.ROLLBACK); + this.state = 8398; + this.id(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 8399; + this.match(TSqlParser.ROLLBACK); + this.state = 8400; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8403; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1174,this._ctx); + if(la_===1) { + this.state = 8401; + this.id(); + + } else if(la_===2) { + this.state = 8402; + this.match(TSqlParser.LOCAL_ID); + + } + this.state = 8406; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1175,this._ctx); + if(la_===1) { + this.state = 8405; + this.match(TSqlParser.SEMI); + + } + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 8408; + this.match(TSqlParser.ROLLBACK); + this.state = 8410; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1176,this._ctx); + if(la_===1) { + this.state = 8409; + this.match(TSqlParser.WORK); + + } + this.state = 8413; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1177,this._ctx); + if(la_===1) { + this.state = 8412; + this.match(TSqlParser.SEMI); + + } + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 8415; + this.match(TSqlParser.SAVE); + this.state = 8416; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8419; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1178,this._ctx); + if(la_===1) { + this.state = 8417; + this.id(); + + } else if(la_===2) { + this.state = 8418; + this.match(TSqlParser.LOCAL_ID); + + } + this.state = 8422; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1179,this._ctx); + if(la_===1) { + this.state = 8421; + this.match(TSqlParser.SEMI); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Go_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_go_statement; + this.count = null; // Token + return this; +} + +Go_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Go_statementContext.prototype.constructor = Go_statementContext; + +Go_statementContext.prototype.GO = function() { + return this.getToken(TSqlParser.GO, 0); +}; + +Go_statementContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Go_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGo_statement(this); + } +}; + +Go_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGo_statement(this); + } +}; + +Go_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGo_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Go_statementContext = Go_statementContext; + +TSqlParser.prototype.go_statement = function() { + + var localctx = new Go_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 670, TSqlParser.RULE_go_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8426; + this.match(TSqlParser.GO); + this.state = 8428; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1181,this._ctx); + if(la_===1) { + this.state = 8427; + localctx.count = this.match(TSqlParser.DECIMAL); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Use_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_use_statement; + this.database = null; // IdContext + return this; +} + +Use_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Use_statementContext.prototype.constructor = Use_statementContext; + +Use_statementContext.prototype.USE = function() { + return this.getToken(TSqlParser.USE, 0); +}; + +Use_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Use_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Use_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUse_statement(this); + } +}; + +Use_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUse_statement(this); + } +}; + +Use_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUse_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Use_statementContext = Use_statementContext; + +TSqlParser.prototype.use_statement = function() { + + var localctx = new Use_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 672, TSqlParser.RULE_use_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8430; + this.match(TSqlParser.USE); + this.state = 8431; + localctx.database = this.id(); + this.state = 8433; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1182,this._ctx); + if(la_===1) { + this.state = 8432; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Setuser_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_setuser_statement; + this.user = null; // Token + return this; +} + +Setuser_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Setuser_statementContext.prototype.constructor = Setuser_statementContext; + +Setuser_statementContext.prototype.SETUSER = function() { + return this.getToken(TSqlParser.SETUSER, 0); +}; + +Setuser_statementContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Setuser_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSetuser_statement(this); + } +}; + +Setuser_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSetuser_statement(this); + } +}; + +Setuser_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSetuser_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Setuser_statementContext = Setuser_statementContext; + +TSqlParser.prototype.setuser_statement = function() { + + var localctx = new Setuser_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 674, TSqlParser.RULE_setuser_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8435; + this.match(TSqlParser.SETUSER); + this.state = 8437; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1183,this._ctx); + if(la_===1) { + this.state = 8436; + localctx.user = this.match(TSqlParser.STRING); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Reconfigure_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_reconfigure_statement; + return this; +} + +Reconfigure_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Reconfigure_statementContext.prototype.constructor = Reconfigure_statementContext; + +Reconfigure_statementContext.prototype.RECONFIGURE = function() { + return this.getToken(TSqlParser.RECONFIGURE, 0); +}; + +Reconfigure_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Reconfigure_statementContext.prototype.OVERRIDE = function() { + return this.getToken(TSqlParser.OVERRIDE, 0); +}; + +Reconfigure_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterReconfigure_statement(this); + } +}; + +Reconfigure_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitReconfigure_statement(this); + } +}; + +Reconfigure_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitReconfigure_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Reconfigure_statementContext = Reconfigure_statementContext; + +TSqlParser.prototype.reconfigure_statement = function() { + + var localctx = new Reconfigure_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 676, TSqlParser.RULE_reconfigure_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8439; + this.match(TSqlParser.RECONFIGURE); + this.state = 8442; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1184,this._ctx); + if(la_===1) { + this.state = 8440; + this.match(TSqlParser.WITH); + this.state = 8441; + this.match(TSqlParser.OVERRIDE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Shutdown_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_shutdown_statement; + return this; +} + +Shutdown_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Shutdown_statementContext.prototype.constructor = Shutdown_statementContext; + +Shutdown_statementContext.prototype.SHUTDOWN = function() { + return this.getToken(TSqlParser.SHUTDOWN, 0); +}; + +Shutdown_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Shutdown_statementContext.prototype.NOWAIT = function() { + return this.getToken(TSqlParser.NOWAIT, 0); +}; + +Shutdown_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterShutdown_statement(this); + } +}; + +Shutdown_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitShutdown_statement(this); + } +}; + +Shutdown_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitShutdown_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Shutdown_statementContext = Shutdown_statementContext; + +TSqlParser.prototype.shutdown_statement = function() { + + var localctx = new Shutdown_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 678, TSqlParser.RULE_shutdown_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8444; + this.match(TSqlParser.SHUTDOWN); + this.state = 8447; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1185,this._ctx); + if(la_===1) { + this.state = 8445; + this.match(TSqlParser.WITH); + this.state = 8446; + this.match(TSqlParser.NOWAIT); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dbcc_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dbcc_clause; + this.name = null; // Simple_idContext + return this; +} + +Dbcc_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dbcc_clauseContext.prototype.constructor = Dbcc_clauseContext; + +Dbcc_clauseContext.prototype.DBCC = function() { + return this.getToken(TSqlParser.DBCC, 0); +}; + +Dbcc_clauseContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +Dbcc_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Dbcc_clauseContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +Dbcc_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Dbcc_clauseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Dbcc_clauseContext.prototype.dbcc_options = function() { + return this.getTypedRuleContext(Dbcc_optionsContext,0); +}; + +Dbcc_clauseContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Dbcc_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDbcc_clause(this); + } +}; + +Dbcc_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDbcc_clause(this); + } +}; + +Dbcc_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDbcc_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dbcc_clauseContext = Dbcc_clauseContext; + +TSqlParser.prototype.dbcc_clause = function() { + + var localctx = new Dbcc_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 680, TSqlParser.RULE_dbcc_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8449; + this.match(TSqlParser.DBCC); + this.state = 8450; + localctx.name = this.simple_id(); + this.state = 8455; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1186,this._ctx); + if(la_===1) { + this.state = 8451; + this.match(TSqlParser.LR_BRACKET); + this.state = 8452; + this.expression_list(); + this.state = 8453; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 8459; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1187,this._ctx); + if(la_===1) { + this.state = 8457; + this.match(TSqlParser.WITH); + this.state = 8458; + this.dbcc_options(); + + } + this.state = 8462; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1188,this._ctx); + if(la_===1) { + this.state = 8461; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dbcc_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dbcc_options; + return this; +} + +Dbcc_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dbcc_optionsContext.prototype.constructor = Dbcc_optionsContext; + +Dbcc_optionsContext.prototype.simple_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_idContext); + } else { + return this.getTypedRuleContext(Simple_idContext,i); + } +}; + +Dbcc_optionsContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Dbcc_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDbcc_options(this); + } +}; + +Dbcc_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDbcc_options(this); + } +}; + +Dbcc_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDbcc_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dbcc_optionsContext = Dbcc_optionsContext; + +TSqlParser.prototype.dbcc_options = function() { + + var localctx = new Dbcc_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 682, TSqlParser.RULE_dbcc_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8464; + this.simple_id(); + this.state = 8467; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 8465; + this.match(TSqlParser.COMMA); + this.state = 8466; + this.simple_id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_clause; + this.clause = null; // Token + return this; +} + +Execute_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_clauseContext.prototype.constructor = Execute_clauseContext; + +Execute_clauseContext.prototype.EXECUTE = function() { + return this.getToken(TSqlParser.EXECUTE, 0); +}; + +Execute_clauseContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Execute_clauseContext.prototype.CALLER = function() { + return this.getToken(TSqlParser.CALLER, 0); +}; + +Execute_clauseContext.prototype.SELF = function() { + return this.getToken(TSqlParser.SELF, 0); +}; + +Execute_clauseContext.prototype.OWNER = function() { + return this.getToken(TSqlParser.OWNER, 0); +}; + +Execute_clauseContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Execute_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_clause(this); + } +}; + +Execute_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_clause(this); + } +}; + +Execute_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_clauseContext = Execute_clauseContext; + +TSqlParser.prototype.execute_clause = function() { + + var localctx = new Execute_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 684, TSqlParser.RULE_execute_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8469; + this.match(TSqlParser.EXECUTE); + this.state = 8470; + this.match(TSqlParser.AS); + this.state = 8471; + localctx.clause = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.CALLER || _la===TSqlParser.OWNER || _la===TSqlParser.SELF || _la===TSqlParser.STRING)) { + localctx.clause = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_localContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_local; + return this; +} + +Declare_localContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_localContext.prototype.constructor = Declare_localContext; + +Declare_localContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Declare_localContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Declare_localContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Declare_localContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Declare_localContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Declare_localContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_local(this); + } +}; + +Declare_localContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_local(this); + } +}; + +Declare_localContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_local(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_localContext = Declare_localContext; + +TSqlParser.prototype.declare_local = function() { + + var localctx = new Declare_localContext(this, this._ctx, this.state); + this.enterRule(localctx, 686, TSqlParser.RULE_declare_local); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8473; + this.match(TSqlParser.LOCAL_ID); + this.state = 8475; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 8474; + this.match(TSqlParser.AS); + } + + this.state = 8477; + this.data_type(); + this.state = 8480; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EQUAL) { + this.state = 8478; + this.match(TSqlParser.EQUAL); + this.state = 8479; + this.expression(0); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_type_definitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_type_definition; + return this; +} + +Table_type_definitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_type_definitionContext.prototype.constructor = Table_type_definitionContext; + +Table_type_definitionContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Table_type_definitionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Table_type_definitionContext.prototype.column_def_table_constraints = function() { + return this.getTypedRuleContext(Column_def_table_constraintsContext,0); +}; + +Table_type_definitionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Table_type_definitionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_type_definition(this); + } +}; + +Table_type_definitionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_type_definition(this); + } +}; + +Table_type_definitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_type_definition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_type_definitionContext = Table_type_definitionContext; + +TSqlParser.prototype.table_type_definition = function() { + + var localctx = new Table_type_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 688, TSqlParser.RULE_table_type_definition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8482; + this.match(TSqlParser.TABLE); + this.state = 8483; + this.match(TSqlParser.LR_BRACKET); + this.state = 8484; + this.column_def_table_constraints(); + this.state = 8485; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Xml_type_definitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_xml_type_definition; + return this; +} + +Xml_type_definitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Xml_type_definitionContext.prototype.constructor = Xml_type_definitionContext; + +Xml_type_definitionContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Xml_type_definitionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Xml_type_definitionContext.prototype.xml_schema_collection = function() { + return this.getTypedRuleContext(Xml_schema_collectionContext,0); +}; + +Xml_type_definitionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Xml_type_definitionContext.prototype.CONTENT = function() { + return this.getToken(TSqlParser.CONTENT, 0); +}; + +Xml_type_definitionContext.prototype.DOCUMENT = function() { + return this.getToken(TSqlParser.DOCUMENT, 0); +}; + +Xml_type_definitionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXml_type_definition(this); + } +}; + +Xml_type_definitionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXml_type_definition(this); + } +}; + +Xml_type_definitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXml_type_definition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Xml_type_definitionContext = Xml_type_definitionContext; + +TSqlParser.prototype.xml_type_definition = function() { + + var localctx = new Xml_type_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 690, TSqlParser.RULE_xml_type_definition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8487; + this.match(TSqlParser.XML); + this.state = 8488; + this.match(TSqlParser.LR_BRACKET); + this.state = 8490; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTENT || _la===TSqlParser.DOCUMENT) { + this.state = 8489; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTENT || _la===TSqlParser.DOCUMENT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8492; + this.xml_schema_collection(); + this.state = 8493; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Xml_schema_collectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_xml_schema_collection; + return this; +} + +Xml_schema_collectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Xml_schema_collectionContext.prototype.constructor = Xml_schema_collectionContext; + +Xml_schema_collectionContext.prototype.ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ID); + } else { + return this.getToken(TSqlParser.ID, i); + } +}; + + +Xml_schema_collectionContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Xml_schema_collectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXml_schema_collection(this); + } +}; + +Xml_schema_collectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXml_schema_collection(this); + } +}; + +Xml_schema_collectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXml_schema_collection(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Xml_schema_collectionContext = Xml_schema_collectionContext; + +TSqlParser.prototype.xml_schema_collection = function() { + + var localctx = new Xml_schema_collectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 692, TSqlParser.RULE_xml_schema_collection); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8495; + this.match(TSqlParser.ID); + this.state = 8496; + this.match(TSqlParser.DOT); + this.state = 8497; + this.match(TSqlParser.ID); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_def_table_constraintsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_def_table_constraints; + return this; +} + +Column_def_table_constraintsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_def_table_constraintsContext.prototype.constructor = Column_def_table_constraintsContext; + +Column_def_table_constraintsContext.prototype.column_def_table_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_def_table_constraintContext); + } else { + return this.getTypedRuleContext(Column_def_table_constraintContext,i); + } +}; + +Column_def_table_constraintsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Column_def_table_constraintsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_def_table_constraints(this); + } +}; + +Column_def_table_constraintsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_def_table_constraints(this); + } +}; + +Column_def_table_constraintsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_def_table_constraints(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_def_table_constraintsContext = Column_def_table_constraintsContext; + +TSqlParser.prototype.column_def_table_constraints = function() { + + var localctx = new Column_def_table_constraintsContext(this, this._ctx, this.state); + this.enterRule(localctx, 694, TSqlParser.RULE_column_def_table_constraints); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8499; + this.column_def_table_constraint(); + this.state = 8506; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1194,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 8501; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 8500; + this.match(TSqlParser.COMMA); + } + + this.state = 8503; + this.column_def_table_constraint(); + } + this.state = 8508; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1194,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_def_table_constraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_def_table_constraint; + return this; +} + +Column_def_table_constraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_def_table_constraintContext.prototype.constructor = Column_def_table_constraintContext; + +Column_def_table_constraintContext.prototype.column_definition = function() { + return this.getTypedRuleContext(Column_definitionContext,0); +}; + +Column_def_table_constraintContext.prototype.materialized_column_definition = function() { + return this.getTypedRuleContext(Materialized_column_definitionContext,0); +}; + +Column_def_table_constraintContext.prototype.table_constraint = function() { + return this.getTypedRuleContext(Table_constraintContext,0); +}; + +Column_def_table_constraintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_def_table_constraint(this); + } +}; + +Column_def_table_constraintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_def_table_constraint(this); + } +}; + +Column_def_table_constraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_def_table_constraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_def_table_constraintContext = Column_def_table_constraintContext; + +TSqlParser.prototype.column_def_table_constraint = function() { + + var localctx = new Column_def_table_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 696, TSqlParser.RULE_column_def_table_constraint); + try { + this.state = 8512; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1195,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8509; + this.column_definition(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8510; + this.materialized_column_definition(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8511; + this.table_constraint(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_definitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_definition; + this.constraint = null; // IdContext + this.seed = null; // Token + this.increment = null; // Token + return this; +} + +Column_definitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_definitionContext.prototype.constructor = Column_definitionContext; + +Column_definitionContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Column_definitionContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Column_definitionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Column_definitionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Column_definitionContext.prototype.COLLATE = function() { + return this.getToken(TSqlParser.COLLATE, 0); +}; + +Column_definitionContext.prototype.null_notnull = function() { + return this.getTypedRuleContext(Null_notnullContext,0); +}; + +Column_definitionContext.prototype.null_or_default = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Null_or_defaultContext); + } else { + return this.getTypedRuleContext(Null_or_defaultContext,i); + } +}; + +Column_definitionContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Column_definitionContext.prototype.ROWGUIDCOL = function() { + return this.getToken(TSqlParser.ROWGUIDCOL, 0); +}; + +Column_definitionContext.prototype.column_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_constraintContext); + } else { + return this.getTypedRuleContext(Column_constraintContext,i); + } +}; + +Column_definitionContext.prototype.CONSTRAINT = function() { + return this.getToken(TSqlParser.CONSTRAINT, 0); +}; + +Column_definitionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Column_definitionContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Column_definitionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Column_definitionContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Column_definitionContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Column_definitionContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Column_definitionContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Column_definitionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_definition(this); + } +}; + +Column_definitionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_definition(this); + } +}; + +Column_definitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_definition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_definitionContext = Column_definitionContext; + +TSqlParser.prototype.column_definition = function() { + + var localctx = new Column_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 698, TSqlParser.RULE_column_definition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8514; + this.id(); + this.state = 8518; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DOUBLE: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8515; + this.data_type(); + break; + case TSqlParser.AS: + this.state = 8516; + this.match(TSqlParser.AS); + this.state = 8517; + this.expression(0); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8522; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COLLATE) { + this.state = 8520; + this.match(TSqlParser.COLLATE); + this.state = 8521; + this.id(); + } + + this.state = 8525; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1198,this._ctx); + if(la_===1) { + this.state = 8524; + this.null_notnull(); + + } + this.state = 8548; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1203,this._ctx); + if(la_===1) { + this.state = 8529; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONSTRAINT) { + this.state = 8527; + this.match(TSqlParser.CONSTRAINT); + this.state = 8528; + localctx.constraint = this.id(); + } + + this.state = 8531; + this.null_or_default(); + this.state = 8533; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1200,this._ctx); + if(la_===1) { + this.state = 8532; + this.null_or_default(); + + } + + } else if(la_===2) { + this.state = 8535; + this.match(TSqlParser.IDENTITY); + this.state = 8541; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1201,this._ctx); + if(la_===1) { + this.state = 8536; + this.match(TSqlParser.LR_BRACKET); + this.state = 8537; + localctx.seed = this.match(TSqlParser.DECIMAL); + this.state = 8538; + this.match(TSqlParser.COMMA); + this.state = 8539; + localctx.increment = this.match(TSqlParser.DECIMAL); + this.state = 8540; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 8546; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1202,this._ctx); + if(la_===1) { + this.state = 8543; + this.match(TSqlParser.NOT); + this.state = 8544; + this.match(TSqlParser.FOR); + this.state = 8545; + this.match(TSqlParser.REPLICATION); + + } + + } + this.state = 8551; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ROWGUIDCOL) { + this.state = 8550; + this.match(TSqlParser.ROWGUIDCOL); + } + + this.state = 8556; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1205,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 8553; + this.column_constraint(); + } + this.state = 8558; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1205,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Materialized_column_definitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_materialized_column_definition; + return this; +} + +Materialized_column_definitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Materialized_column_definitionContext.prototype.constructor = Materialized_column_definitionContext; + +Materialized_column_definitionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Materialized_column_definitionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Materialized_column_definitionContext.prototype.COMPUTE = function() { + return this.getToken(TSqlParser.COMPUTE, 0); +}; + +Materialized_column_definitionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Materialized_column_definitionContext.prototype.MATERIALIZED = function() { + return this.getToken(TSqlParser.MATERIALIZED, 0); +}; + +Materialized_column_definitionContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Materialized_column_definitionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMaterialized_column_definition(this); + } +}; + +Materialized_column_definitionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMaterialized_column_definition(this); + } +}; + +Materialized_column_definitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMaterialized_column_definition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Materialized_column_definitionContext = Materialized_column_definitionContext; + +TSqlParser.prototype.materialized_column_definition = function() { + + var localctx = new Materialized_column_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 700, TSqlParser.RULE_materialized_column_definition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8559; + this.id(); + this.state = 8560; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AS || _la===TSqlParser.COMPUTE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8561; + this.expression(0); + this.state = 8565; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1206,this._ctx); + if(la_===1) { + this.state = 8562; + this.match(TSqlParser.MATERIALIZED); + + } else if(la_===2) { + this.state = 8563; + this.match(TSqlParser.NOT); + this.state = 8564; + this.match(TSqlParser.MATERIALIZED); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_constraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_constraint; + this.constraint = null; // IdContext + this.pk = null; // Column_name_listContext + return this; +} + +Column_constraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_constraintContext.prototype.constructor = Column_constraintContext; + +Column_constraintContext.prototype.CHECK = function() { + return this.getToken(TSqlParser.CHECK, 0); +}; + +Column_constraintContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Column_constraintContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Column_constraintContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Column_constraintContext.prototype.REFERENCES = function() { + return this.getToken(TSqlParser.REFERENCES, 0); +}; + +Column_constraintContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Column_constraintContext.prototype.null_notnull = function() { + return this.getTypedRuleContext(Null_notnullContext,0); +}; + +Column_constraintContext.prototype.CONSTRAINT = function() { + return this.getToken(TSqlParser.CONSTRAINT, 0); +}; + +Column_constraintContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Column_constraintContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Column_constraintContext.prototype.PRIMARY = function() { + return this.getToken(TSqlParser.PRIMARY, 0); +}; + +Column_constraintContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Column_constraintContext.prototype.UNIQUE = function() { + return this.getToken(TSqlParser.UNIQUE, 0); +}; + +Column_constraintContext.prototype.clustered = function() { + return this.getTypedRuleContext(ClusteredContext,0); +}; + +Column_constraintContext.prototype.index_options = function() { + return this.getTypedRuleContext(Index_optionsContext,0); +}; + +Column_constraintContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Column_constraintContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Column_constraintContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Column_constraintContext.prototype.FOREIGN = function() { + return this.getToken(TSqlParser.FOREIGN, 0); +}; + +Column_constraintContext.prototype.on_delete = function() { + return this.getTypedRuleContext(On_deleteContext,0); +}; + +Column_constraintContext.prototype.on_update = function() { + return this.getTypedRuleContext(On_updateContext,0); +}; + +Column_constraintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_constraint(this); + } +}; + +Column_constraintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_constraint(this); + } +}; + +Column_constraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_constraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_constraintContext = Column_constraintContext; + +TSqlParser.prototype.column_constraint = function() { + + var localctx = new Column_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 702, TSqlParser.RULE_column_constraint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8569; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONSTRAINT) { + this.state = 8567; + this.match(TSqlParser.CONSTRAINT); + this.state = 8568; + localctx.constraint = this.id(); + } + + this.state = 8608; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PRIMARY: + case TSqlParser.UNIQUE: + this.state = 8574; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PRIMARY: + this.state = 8571; + this.match(TSqlParser.PRIMARY); + this.state = 8572; + this.match(TSqlParser.KEY); + break; + case TSqlParser.UNIQUE: + this.state = 8573; + this.match(TSqlParser.UNIQUE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8577; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CLUSTERED || _la===TSqlParser.NONCLUSTERED) { + this.state = 8576; + this.clustered(); + } + + this.state = 8580; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1210,this._ctx); + if(la_===1) { + this.state = 8579; + this.index_options(); + + } + break; + case TSqlParser.CHECK: + this.state = 8582; + this.match(TSqlParser.CHECK); + this.state = 8586; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 8583; + this.match(TSqlParser.NOT); + this.state = 8584; + this.match(TSqlParser.FOR); + this.state = 8585; + this.match(TSqlParser.REPLICATION); + } + + this.state = 8588; + this.match(TSqlParser.LR_BRACKET); + this.state = 8589; + this.search_condition(); + this.state = 8590; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.FOREIGN: + case TSqlParser.REFERENCES: + this.state = 8594; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOREIGN) { + this.state = 8592; + this.match(TSqlParser.FOREIGN); + this.state = 8593; + this.match(TSqlParser.KEY); + } + + this.state = 8596; + this.match(TSqlParser.REFERENCES); + this.state = 8597; + this.table_name(); + this.state = 8598; + this.match(TSqlParser.LR_BRACKET); + this.state = 8599; + localctx.pk = this.column_name_list(); + this.state = 8600; + this.match(TSqlParser.RR_BRACKET); + this.state = 8602; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1213,this._ctx); + if(la_===1) { + this.state = 8601; + this.on_delete(); + + } + this.state = 8605; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 8604; + this.on_update(); + } + + break; + case TSqlParser.NOT: + case TSqlParser.NULL: + this.state = 8607; + this.null_notnull(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_constraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_constraint; + this.constraint = null; // IdContext + this.fk = null; // Column_name_listContext + this.pk = null; // Column_name_listContext + return this; +} + +Table_constraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_constraintContext.prototype.constructor = Table_constraintContext; + +Table_constraintContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Table_constraintContext.prototype.column_name_list_with_order = function() { + return this.getTypedRuleContext(Column_name_list_with_orderContext,0); +}; + +Table_constraintContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Table_constraintContext.prototype.CHECK = function() { + return this.getToken(TSqlParser.CHECK, 0); +}; + +Table_constraintContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Table_constraintContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Table_constraintContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Table_constraintContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Table_constraintContext.prototype.FOREIGN = function() { + return this.getToken(TSqlParser.FOREIGN, 0); +}; + +Table_constraintContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Table_constraintContext.prototype.REFERENCES = function() { + return this.getToken(TSqlParser.REFERENCES, 0); +}; + +Table_constraintContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Table_constraintContext.prototype.CONSTRAINT = function() { + return this.getToken(TSqlParser.CONSTRAINT, 0); +}; + +Table_constraintContext.prototype.column_name_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_name_listContext); + } else { + return this.getTypedRuleContext(Column_name_listContext,i); + } +}; + +Table_constraintContext.prototype.PRIMARY = function() { + return this.getToken(TSqlParser.PRIMARY, 0); +}; + +Table_constraintContext.prototype.UNIQUE = function() { + return this.getToken(TSqlParser.UNIQUE, 0); +}; + +Table_constraintContext.prototype.clustered = function() { + return this.getTypedRuleContext(ClusteredContext,0); +}; + +Table_constraintContext.prototype.index_options = function() { + return this.getTypedRuleContext(Index_optionsContext,0); +}; + +Table_constraintContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Table_constraintContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Table_constraintContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Table_constraintContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Table_constraintContext.prototype.PLUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PLUS); + } else { + return this.getToken(TSqlParser.PLUS, i); + } +}; + + +Table_constraintContext.prototype.function_call = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_callContext); + } else { + return this.getTypedRuleContext(Function_callContext,i); + } +}; + +Table_constraintContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Table_constraintContext.prototype.on_delete = function() { + return this.getTypedRuleContext(On_deleteContext,0); +}; + +Table_constraintContext.prototype.on_update = function() { + return this.getTypedRuleContext(On_updateContext,0); +}; + +Table_constraintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_constraint(this); + } +}; + +Table_constraintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_constraint(this); + } +}; + +Table_constraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_constraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_constraintContext = Table_constraintContext; + +TSqlParser.prototype.table_constraint = function() { + + var localctx = new Table_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 704, TSqlParser.RULE_table_constraint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8612; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONSTRAINT) { + this.state = 8610; + this.match(TSqlParser.CONSTRAINT); + this.state = 8611; + localctx.constraint = this.id(); + } + + this.state = 8678; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PRIMARY: + case TSqlParser.UNIQUE: + this.state = 8617; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PRIMARY: + this.state = 8614; + this.match(TSqlParser.PRIMARY); + this.state = 8615; + this.match(TSqlParser.KEY); + break; + case TSqlParser.UNIQUE: + this.state = 8616; + this.match(TSqlParser.UNIQUE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8620; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CLUSTERED || _la===TSqlParser.NONCLUSTERED) { + this.state = 8619; + this.clustered(); + } + + this.state = 8622; + this.match(TSqlParser.LR_BRACKET); + this.state = 8623; + this.column_name_list_with_order(); + this.state = 8624; + this.match(TSqlParser.RR_BRACKET); + this.state = 8626; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1219,this._ctx); + if(la_===1) { + this.state = 8625; + this.index_options(); + + } + this.state = 8630; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 8628; + this.match(TSqlParser.ON); + this.state = 8629; + this.id(); + } + + break; + case TSqlParser.CHECK: + this.state = 8632; + this.match(TSqlParser.CHECK); + this.state = 8636; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 8633; + this.match(TSqlParser.NOT); + this.state = 8634; + this.match(TSqlParser.FOR); + this.state = 8635; + this.match(TSqlParser.REPLICATION); + } + + this.state = 8638; + this.match(TSqlParser.LR_BRACKET); + this.state = 8639; + this.search_condition(); + this.state = 8640; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.DEFAULT: + this.state = 8642; + this.match(TSqlParser.DEFAULT); + this.state = 8644; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 8643; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 8650; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8650; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 8646; + this.match(TSqlParser.STRING); + break; + case TSqlParser.PLUS: + this.state = 8647; + this.match(TSqlParser.PLUS); + break; + case TSqlParser.CALLED: + case TSqlParser.COALESCE: + case TSqlParser.CONVERT: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.IDENTITY: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.RIGHT: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.ID: + this.state = 8648; + this.function_call(); + break; + case TSqlParser.DECIMAL: + this.state = 8649; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8652; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(((((_la - 38)) & ~0x1f) == 0 && ((1 << (_la - 38)) & ((1 << (TSqlParser.CALLED - 38)) | (1 << (TSqlParser.COALESCE - 38)) | (1 << (TSqlParser.CONVERT - 38)))) !== 0) || ((((_la - 76)) & ~0x1f) == 0 && ((1 << (_la - 76)) & ((1 << (TSqlParser.CURRENT_TIMESTAMP - 76)) | (1 << (TSqlParser.CURRENT_USER - 76)) | (1 << (TSqlParser.DATA_COMPRESSION - 76)))) !== 0) || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 148)) & ~0x1f) == 0 && ((1 << (_la - 148)) & ((1 << (TSqlParser.IDENTITY - 148)) | (1 << (TSqlParser.IIF - 148)) | (1 << (TSqlParser.INIT - 148)) | (1 << (TSqlParser.ISNULL - 148)) | (1 << (TSqlParser.KEY - 148)) | (1 << (TSqlParser.LEFT - 148)))) !== 0) || _la===TSqlParser.MASTER || _la===TSqlParser.MAX_MEMORY || ((((_la - 222)) & ~0x1f) == 0 && ((1 << (_la - 222)) & ((1 << (TSqlParser.NULLIF - 222)) | (1 << (TSqlParser.OFFSETS - 222)) | (1 << (TSqlParser.PAGE - 222)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.RIGHT - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SESSION_USER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.SYSTEM_USER - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.LOCAL_ID - 796)) | (1 << (TSqlParser.DECIMAL - 796)) | (1 << (TSqlParser.ID - 796)) | (1 << (TSqlParser.STRING - 796)))) !== 0) || _la===TSqlParser.PLUS); + this.state = 8655; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RR_BRACKET) { + this.state = 8654; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 8657; + this.match(TSqlParser.FOR); + this.state = 8658; + this.id(); + break; + case TSqlParser.FOREIGN: + this.state = 8659; + this.match(TSqlParser.FOREIGN); + this.state = 8660; + this.match(TSqlParser.KEY); + this.state = 8661; + this.match(TSqlParser.LR_BRACKET); + this.state = 8662; + localctx.fk = this.column_name_list(); + this.state = 8663; + this.match(TSqlParser.RR_BRACKET); + this.state = 8664; + this.match(TSqlParser.REFERENCES); + this.state = 8665; + this.table_name(); + this.state = 8670; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1226,this._ctx); + if(la_===1) { + this.state = 8666; + this.match(TSqlParser.LR_BRACKET); + this.state = 8667; + localctx.pk = this.column_name_list(); + this.state = 8668; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 8673; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1227,this._ctx); + if(la_===1) { + this.state = 8672; + this.on_delete(); + + } + this.state = 8676; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 8675; + this.on_update(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function On_deleteContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_on_delete; + return this; +} + +On_deleteContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +On_deleteContext.prototype.constructor = On_deleteContext; + +On_deleteContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +On_deleteContext.prototype.DELETE = function() { + return this.getToken(TSqlParser.DELETE, 0); +}; + +On_deleteContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +On_deleteContext.prototype.ACTION = function() { + return this.getToken(TSqlParser.ACTION, 0); +}; + +On_deleteContext.prototype.CASCADE = function() { + return this.getToken(TSqlParser.CASCADE, 0); +}; + +On_deleteContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +On_deleteContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +On_deleteContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +On_deleteContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOn_delete(this); + } +}; + +On_deleteContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOn_delete(this); + } +}; + +On_deleteContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOn_delete(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.On_deleteContext = On_deleteContext; + +TSqlParser.prototype.on_delete = function() { + + var localctx = new On_deleteContext(this, this._ctx, this.state); + this.enterRule(localctx, 706, TSqlParser.RULE_on_delete); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8680; + this.match(TSqlParser.ON); + this.state = 8681; + this.match(TSqlParser.DELETE); + this.state = 8689; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1230,this._ctx); + switch(la_) { + case 1: + this.state = 8682; + this.match(TSqlParser.NO); + this.state = 8683; + this.match(TSqlParser.ACTION); + break; + + case 2: + this.state = 8684; + this.match(TSqlParser.CASCADE); + break; + + case 3: + this.state = 8685; + this.match(TSqlParser.SET); + this.state = 8686; + this.match(TSqlParser.NULL); + break; + + case 4: + this.state = 8687; + this.match(TSqlParser.SET); + this.state = 8688; + this.match(TSqlParser.DEFAULT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function On_updateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_on_update; + return this; +} + +On_updateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +On_updateContext.prototype.constructor = On_updateContext; + +On_updateContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +On_updateContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +On_updateContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +On_updateContext.prototype.ACTION = function() { + return this.getToken(TSqlParser.ACTION, 0); +}; + +On_updateContext.prototype.CASCADE = function() { + return this.getToken(TSqlParser.CASCADE, 0); +}; + +On_updateContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +On_updateContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +On_updateContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +On_updateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOn_update(this); + } +}; + +On_updateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOn_update(this); + } +}; + +On_updateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOn_update(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.On_updateContext = On_updateContext; + +TSqlParser.prototype.on_update = function() { + + var localctx = new On_updateContext(this, this._ctx, this.state); + this.enterRule(localctx, 708, TSqlParser.RULE_on_update); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8691; + this.match(TSqlParser.ON); + this.state = 8692; + this.match(TSqlParser.UPDATE); + this.state = 8700; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1231,this._ctx); + switch(la_) { + case 1: + this.state = 8693; + this.match(TSqlParser.NO); + this.state = 8694; + this.match(TSqlParser.ACTION); + break; + + case 2: + this.state = 8695; + this.match(TSqlParser.CASCADE); + break; + + case 3: + this.state = 8696; + this.match(TSqlParser.SET); + this.state = 8697; + this.match(TSqlParser.NULL); + break; + + case 4: + this.state = 8698; + this.match(TSqlParser.SET); + this.state = 8699; + this.match(TSqlParser.DEFAULT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Index_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_index_options; + return this; +} + +Index_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Index_optionsContext.prototype.constructor = Index_optionsContext; + +Index_optionsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Index_optionsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Index_optionsContext.prototype.index_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_optionContext); + } else { + return this.getTypedRuleContext(Index_optionContext,i); + } +}; + +Index_optionsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Index_optionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Index_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIndex_options(this); + } +}; + +Index_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIndex_options(this); + } +}; + +Index_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIndex_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Index_optionsContext = Index_optionsContext; + +TSqlParser.prototype.index_options = function() { + + var localctx = new Index_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 710, TSqlParser.RULE_index_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8702; + this.match(TSqlParser.WITH); + this.state = 8703; + this.match(TSqlParser.LR_BRACKET); + this.state = 8704; + this.index_option(); + this.state = 8709; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8705; + this.match(TSqlParser.COMMA); + this.state = 8706; + this.index_option(); + this.state = 8711; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8712; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Index_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_index_option; + return this; +} + +Index_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Index_optionContext.prototype.constructor = Index_optionContext; + +Index_optionContext.prototype.simple_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_idContext); + } else { + return this.getTypedRuleContext(Simple_idContext,i); + } +}; + +Index_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Index_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Index_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Index_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIndex_option(this); + } +}; + +Index_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIndex_option(this); + } +}; + +Index_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIndex_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Index_optionContext = Index_optionContext; + +TSqlParser.prototype.index_option = function() { + + var localctx = new Index_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 712, TSqlParser.RULE_index_option); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8714; + this.simple_id(); + this.state = 8715; + this.match(TSqlParser.EQUAL); + this.state = 8719; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.ID: + this.state = 8716; + this.simple_id(); + break; + case TSqlParser.OFF: + case TSqlParser.ON: + this.state = 8717; + this.on_off(); + break; + case TSqlParser.DECIMAL: + this.state = 8718; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_cursorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_cursor; + return this; +} + +Declare_cursorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_cursorContext.prototype.constructor = Declare_cursorContext; + +Declare_cursorContext.prototype.DECLARE = function() { + return this.getToken(TSqlParser.DECLARE, 0); +}; + +Declare_cursorContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Declare_cursorContext.prototype.CURSOR = function() { + return this.getToken(TSqlParser.CURSOR, 0); +}; + +Declare_cursorContext.prototype.FOR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FOR); + } else { + return this.getToken(TSqlParser.FOR, i); + } +}; + + +Declare_cursorContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Declare_cursorContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Declare_cursorContext.prototype.declare_set_cursor_common = function() { + return this.getTypedRuleContext(Declare_set_cursor_commonContext,0); +}; + +Declare_cursorContext.prototype.SCROLL = function() { + return this.getToken(TSqlParser.SCROLL, 0); +}; + +Declare_cursorContext.prototype.SEMI_SENSITIVE = function() { + return this.getToken(TSqlParser.SEMI_SENSITIVE, 0); +}; + +Declare_cursorContext.prototype.INSENSITIVE = function() { + return this.getToken(TSqlParser.INSENSITIVE, 0); +}; + +Declare_cursorContext.prototype.READ = function() { + return this.getToken(TSqlParser.READ, 0); +}; + +Declare_cursorContext.prototype.ONLY = function() { + return this.getToken(TSqlParser.ONLY, 0); +}; + +Declare_cursorContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Declare_cursorContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Declare_cursorContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Declare_cursorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_cursor(this); + } +}; + +Declare_cursorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_cursor(this); + } +}; + +Declare_cursorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_cursor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_cursorContext = Declare_cursorContext; + +TSqlParser.prototype.declare_cursor = function() { + + var localctx = new Declare_cursorContext(this, this._ctx, this.state); + this.enterRule(localctx, 714, TSqlParser.RULE_declare_cursor); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8721; + this.match(TSqlParser.DECLARE); + this.state = 8722; + this.cursor_name(); + this.state = 8754; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1241,this._ctx); + switch(la_) { + case 1: + this.state = 8723; + this.match(TSqlParser.CURSOR); + this.state = 8733; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1236,this._ctx); + if(la_===1) { + this.state = 8724; + this.declare_set_cursor_common(); + this.state = 8731; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 8725; + this.match(TSqlParser.FOR); + this.state = 8726; + this.match(TSqlParser.UPDATE); + this.state = 8729; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OF) { + this.state = 8727; + this.match(TSqlParser.OF); + this.state = 8728; + this.column_name_list(); + } + + } + + + } + break; + + case 2: + this.state = 8736; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INSENSITIVE || _la===TSqlParser.SEMI_SENSITIVE) { + this.state = 8735; + _la = this._input.LA(1); + if(!(_la===TSqlParser.INSENSITIVE || _la===TSqlParser.SEMI_SENSITIVE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8739; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SCROLL) { + this.state = 8738; + this.match(TSqlParser.SCROLL); + } + + this.state = 8741; + this.match(TSqlParser.CURSOR); + this.state = 8742; + this.match(TSqlParser.FOR); + this.state = 8743; + this.select_statement(); + this.state = 8752; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 8744; + this.match(TSqlParser.FOR); + this.state = 8750; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.READ: + this.state = 8745; + this.match(TSqlParser.READ); + this.state = 8746; + this.match(TSqlParser.ONLY); + break; + case TSqlParser.UPDATE: + this.state = 8747; + this.match(TSqlParser.UPDATE); + break; + case TSqlParser.OF: + this.state = 8748; + this.match(TSqlParser.OF); + this.state = 8749; + this.column_name_list(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + break; + + } + this.state = 8757; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1242,this._ctx); + if(la_===1) { + this.state = 8756; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_set_cursor_commonContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_set_cursor_common; + return this; +} + +Declare_set_cursor_commonContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_set_cursor_commonContext.prototype.constructor = Declare_set_cursor_commonContext; + +Declare_set_cursor_commonContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Declare_set_cursor_commonContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Declare_set_cursor_commonContext.prototype.declare_set_cursor_common_partial = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Declare_set_cursor_common_partialContext); + } else { + return this.getTypedRuleContext(Declare_set_cursor_common_partialContext,i); + } +}; + +Declare_set_cursor_commonContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_set_cursor_common(this); + } +}; + +Declare_set_cursor_commonContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_set_cursor_common(this); + } +}; + +Declare_set_cursor_commonContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_set_cursor_common(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_set_cursor_commonContext = Declare_set_cursor_commonContext; + +TSqlParser.prototype.declare_set_cursor_common = function() { + + var localctx = new Declare_set_cursor_commonContext(this, this._ctx, this.state); + this.enterRule(localctx, 716, TSqlParser.RULE_declare_set_cursor_common); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8762; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.DYNAMIC || _la===TSqlParser.FAST_FORWARD || _la===TSqlParser.FORWARD_ONLY || _la===TSqlParser.GLOBAL || _la===TSqlParser.KEYSET || _la===TSqlParser.LOCAL || _la===TSqlParser.OPTIMISTIC || _la===TSqlParser.READ_ONLY || ((((_la - 702)) & ~0x1f) == 0 && ((1 << (_la - 702)) & ((1 << (TSqlParser.SCROLL - 702)) | (1 << (TSqlParser.SCROLL_LOCKS - 702)) | (1 << (TSqlParser.STATIC - 702)))) !== 0) || _la===TSqlParser.TYPE_WARNING) { + this.state = 8759; + this.declare_set_cursor_common_partial(); + this.state = 8764; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8765; + this.match(TSqlParser.FOR); + this.state = 8766; + this.select_statement(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_set_cursor_common_partialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_set_cursor_common_partial; + return this; +} + +Declare_set_cursor_common_partialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_set_cursor_common_partialContext.prototype.constructor = Declare_set_cursor_common_partialContext; + +Declare_set_cursor_common_partialContext.prototype.LOCAL = function() { + return this.getToken(TSqlParser.LOCAL, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.FORWARD_ONLY = function() { + return this.getToken(TSqlParser.FORWARD_ONLY, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.SCROLL = function() { + return this.getToken(TSqlParser.SCROLL, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.STATIC = function() { + return this.getToken(TSqlParser.STATIC, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.KEYSET = function() { + return this.getToken(TSqlParser.KEYSET, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.DYNAMIC = function() { + return this.getToken(TSqlParser.DYNAMIC, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.FAST_FORWARD = function() { + return this.getToken(TSqlParser.FAST_FORWARD, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.SCROLL_LOCKS = function() { + return this.getToken(TSqlParser.SCROLL_LOCKS, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.OPTIMISTIC = function() { + return this.getToken(TSqlParser.OPTIMISTIC, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.TYPE_WARNING = function() { + return this.getToken(TSqlParser.TYPE_WARNING, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_set_cursor_common_partial(this); + } +}; + +Declare_set_cursor_common_partialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_set_cursor_common_partial(this); + } +}; + +Declare_set_cursor_common_partialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_set_cursor_common_partial(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_set_cursor_common_partialContext = Declare_set_cursor_common_partialContext; + +TSqlParser.prototype.declare_set_cursor_common_partial = function() { + + var localctx = new Declare_set_cursor_common_partialContext(this, this._ctx, this.state); + this.enterRule(localctx, 718, TSqlParser.RULE_declare_set_cursor_common_partial); + var _la = 0; // Token type + try { + this.state = 8773; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.GLOBAL: + case TSqlParser.LOCAL: + this.enterOuterAlt(localctx, 1); + this.state = 8768; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GLOBAL || _la===TSqlParser.LOCAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.FORWARD_ONLY: + case TSqlParser.SCROLL: + this.enterOuterAlt(localctx, 2); + this.state = 8769; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FORWARD_ONLY || _la===TSqlParser.SCROLL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DYNAMIC: + case TSqlParser.FAST_FORWARD: + case TSqlParser.KEYSET: + case TSqlParser.STATIC: + this.enterOuterAlt(localctx, 3); + this.state = 8770; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DYNAMIC || _la===TSqlParser.FAST_FORWARD || _la===TSqlParser.KEYSET || _la===TSqlParser.STATIC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.OPTIMISTIC: + case TSqlParser.READ_ONLY: + case TSqlParser.SCROLL_LOCKS: + this.enterOuterAlt(localctx, 4); + this.state = 8771; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OPTIMISTIC || _la===TSqlParser.READ_ONLY || _la===TSqlParser.SCROLL_LOCKS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TYPE_WARNING: + this.enterOuterAlt(localctx, 5); + this.state = 8772; + this.match(TSqlParser.TYPE_WARNING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Fetch_cursorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_fetch_cursor; + return this; +} + +Fetch_cursorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Fetch_cursorContext.prototype.constructor = Fetch_cursorContext; + +Fetch_cursorContext.prototype.FETCH = function() { + return this.getToken(TSqlParser.FETCH, 0); +}; + +Fetch_cursorContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Fetch_cursorContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Fetch_cursorContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Fetch_cursorContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Fetch_cursorContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Fetch_cursorContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Fetch_cursorContext.prototype.NEXT = function() { + return this.getToken(TSqlParser.NEXT, 0); +}; + +Fetch_cursorContext.prototype.PRIOR = function() { + return this.getToken(TSqlParser.PRIOR, 0); +}; + +Fetch_cursorContext.prototype.FIRST = function() { + return this.getToken(TSqlParser.FIRST, 0); +}; + +Fetch_cursorContext.prototype.LAST = function() { + return this.getToken(TSqlParser.LAST, 0); +}; + +Fetch_cursorContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Fetch_cursorContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Fetch_cursorContext.prototype.ABSOLUTE = function() { + return this.getToken(TSqlParser.ABSOLUTE, 0); +}; + +Fetch_cursorContext.prototype.RELATIVE = function() { + return this.getToken(TSqlParser.RELATIVE, 0); +}; + +Fetch_cursorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFetch_cursor(this); + } +}; + +Fetch_cursorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFetch_cursor(this); + } +}; + +Fetch_cursorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFetch_cursor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Fetch_cursorContext = Fetch_cursorContext; + +TSqlParser.prototype.fetch_cursor = function() { + + var localctx = new Fetch_cursorContext(this, this._ctx, this.state); + this.enterRule(localctx, 720, TSqlParser.RULE_fetch_cursor); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8775; + this.match(TSqlParser.FETCH); + this.state = 8785; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1246,this._ctx); + if(la_===1) { + this.state = 8782; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case TSqlParser.NEXT: + this.state = 8776; + this.match(TSqlParser.NEXT); + break; + case TSqlParser.PRIOR: + this.state = 8777; + this.match(TSqlParser.PRIOR); + break; + case TSqlParser.FIRST: + this.state = 8778; + this.match(TSqlParser.FIRST); + break; + case TSqlParser.LAST: + this.state = 8779; + this.match(TSqlParser.LAST); + break; + case TSqlParser.ABSOLUTE: + case TSqlParser.RELATIVE: + this.state = 8780; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ABSOLUTE || _la===TSqlParser.RELATIVE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8781; + this.expression(0); + break; + case TSqlParser.FROM: + break; + default: + break; + } + this.state = 8784; + this.match(TSqlParser.FROM); + + } + this.state = 8788; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1247,this._ctx); + if(la_===1) { + this.state = 8787; + this.match(TSqlParser.GLOBAL); + + } + this.state = 8790; + this.cursor_name(); + this.state = 8800; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 8791; + this.match(TSqlParser.INTO); + this.state = 8792; + this.match(TSqlParser.LOCAL_ID); + this.state = 8797; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8793; + this.match(TSqlParser.COMMA); + this.state = 8794; + this.match(TSqlParser.LOCAL_ID); + this.state = 8799; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 8803; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1250,this._ctx); + if(la_===1) { + this.state = 8802; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Set_specialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_set_special; + return this; +} + +Set_specialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Set_specialContext.prototype.constructor = Set_specialContext; + +Set_specialContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Set_specialContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Set_specialContext.prototype.constant_LOCAL_ID = function() { + return this.getTypedRuleContext(Constant_LOCAL_IDContext,0); +}; + +Set_specialContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Set_specialContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Set_specialContext.prototype.TRANSACTION = function() { + return this.getToken(TSqlParser.TRANSACTION, 0); +}; + +Set_specialContext.prototype.ISOLATION = function() { + return this.getToken(TSqlParser.ISOLATION, 0); +}; + +Set_specialContext.prototype.LEVEL = function() { + return this.getToken(TSqlParser.LEVEL, 0); +}; + +Set_specialContext.prototype.READ = function() { + return this.getToken(TSqlParser.READ, 0); +}; + +Set_specialContext.prototype.UNCOMMITTED = function() { + return this.getToken(TSqlParser.UNCOMMITTED, 0); +}; + +Set_specialContext.prototype.COMMITTED = function() { + return this.getToken(TSqlParser.COMMITTED, 0); +}; + +Set_specialContext.prototype.REPEATABLE = function() { + return this.getToken(TSqlParser.REPEATABLE, 0); +}; + +Set_specialContext.prototype.SNAPSHOT = function() { + return this.getToken(TSqlParser.SNAPSHOT, 0); +}; + +Set_specialContext.prototype.SERIALIZABLE = function() { + return this.getToken(TSqlParser.SERIALIZABLE, 0); +}; + +Set_specialContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Set_specialContext.prototype.IDENTITY_INSERT = function() { + return this.getToken(TSqlParser.IDENTITY_INSERT, 0); +}; + +Set_specialContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Set_specialContext.prototype.ANSI_NULLS = function() { + return this.getToken(TSqlParser.ANSI_NULLS, 0); +}; + +Set_specialContext.prototype.QUOTED_IDENTIFIER = function() { + return this.getToken(TSqlParser.QUOTED_IDENTIFIER, 0); +}; + +Set_specialContext.prototype.ANSI_PADDING = function() { + return this.getToken(TSqlParser.ANSI_PADDING, 0); +}; + +Set_specialContext.prototype.ANSI_WARNINGS = function() { + return this.getToken(TSqlParser.ANSI_WARNINGS, 0); +}; + +Set_specialContext.prototype.modify_method = function() { + return this.getTypedRuleContext(Modify_methodContext,0); +}; + +Set_specialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSet_special(this); + } +}; + +Set_specialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSet_special(this); + } +}; + +Set_specialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSet_special(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Set_specialContext = Set_specialContext; + +TSqlParser.prototype.set_special = function() { + + var localctx = new Set_specialContext(this, this._ctx, this.state); + this.enterRule(localctx, 722, TSqlParser.RULE_set_special); + try { + this.state = 8854; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1256,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8805; + this.match(TSqlParser.SET); + this.state = 8806; + this.id(); + this.state = 8810; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8807; + this.id(); + break; + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 8808; + this.constant_LOCAL_ID(); + break; + case TSqlParser.OFF: + case TSqlParser.ON: + this.state = 8809; + this.on_off(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8813; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1252,this._ctx); + if(la_===1) { + this.state = 8812; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8815; + this.match(TSqlParser.SET); + this.state = 8816; + this.match(TSqlParser.TRANSACTION); + this.state = 8817; + this.match(TSqlParser.ISOLATION); + this.state = 8818; + this.match(TSqlParser.LEVEL); + this.state = 8828; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1253,this._ctx); + switch(la_) { + case 1: + this.state = 8819; + this.match(TSqlParser.READ); + this.state = 8820; + this.match(TSqlParser.UNCOMMITTED); + break; + + case 2: + this.state = 8821; + this.match(TSqlParser.READ); + this.state = 8822; + this.match(TSqlParser.COMMITTED); + break; + + case 3: + this.state = 8823; + this.match(TSqlParser.REPEATABLE); + this.state = 8824; + this.match(TSqlParser.READ); + break; + + case 4: + this.state = 8825; + this.match(TSqlParser.SNAPSHOT); + break; + + case 5: + this.state = 8826; + this.match(TSqlParser.SERIALIZABLE); + break; + + case 6: + this.state = 8827; + this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 8831; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1254,this._ctx); + if(la_===1) { + this.state = 8830; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8833; + this.match(TSqlParser.SET); + this.state = 8834; + this.match(TSqlParser.IDENTITY_INSERT); + this.state = 8835; + this.table_name(); + this.state = 8836; + this.on_off(); + this.state = 8838; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1255,this._ctx); + if(la_===1) { + this.state = 8837; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8840; + this.match(TSqlParser.SET); + this.state = 8841; + this.match(TSqlParser.ANSI_NULLS); + this.state = 8842; + this.on_off(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 8843; + this.match(TSqlParser.SET); + this.state = 8844; + this.match(TSqlParser.QUOTED_IDENTIFIER); + this.state = 8845; + this.on_off(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 8846; + this.match(TSqlParser.SET); + this.state = 8847; + this.match(TSqlParser.ANSI_PADDING); + this.state = 8848; + this.on_off(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 8849; + this.match(TSqlParser.SET); + this.state = 8850; + this.match(TSqlParser.ANSI_WARNINGS); + this.state = 8851; + this.on_off(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 8852; + this.match(TSqlParser.SET); + this.state = 8853; + this.modify_method(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Constant_LOCAL_IDContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_constant_LOCAL_ID; + return this; +} + +Constant_LOCAL_IDContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Constant_LOCAL_IDContext.prototype.constructor = Constant_LOCAL_IDContext; + +Constant_LOCAL_IDContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Constant_LOCAL_IDContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Constant_LOCAL_IDContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterConstant_LOCAL_ID(this); + } +}; + +Constant_LOCAL_IDContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitConstant_LOCAL_ID(this); + } +}; + +Constant_LOCAL_IDContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitConstant_LOCAL_ID(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Constant_LOCAL_IDContext = Constant_LOCAL_IDContext; + +TSqlParser.prototype.constant_LOCAL_ID = function() { + + var localctx = new Constant_LOCAL_IDContext(this, this._ctx, this.state); + this.enterRule(localctx, 724, TSqlParser.RULE_constant_LOCAL_ID); + try { + this.state = 8858; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.enterOuterAlt(localctx, 1); + this.state = 8856; + this.constant(); + break; + case TSqlParser.LOCAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 8857; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_expression; + this.op = null; // Token + return this; +} + +ExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExpressionContext.prototype.constructor = ExpressionContext; + +ExpressionContext.prototype.primitive_expression = function() { + return this.getTypedRuleContext(Primitive_expressionContext,0); +}; + +ExpressionContext.prototype.function_call = function() { + return this.getTypedRuleContext(Function_callContext,0); +}; + +ExpressionContext.prototype.case_expression = function() { + return this.getTypedRuleContext(Case_expressionContext,0); +}; + +ExpressionContext.prototype.full_column_name = function() { + return this.getTypedRuleContext(Full_column_nameContext,0); +}; + +ExpressionContext.prototype.bracket_expression = function() { + return this.getTypedRuleContext(Bracket_expressionContext,0); +}; + +ExpressionContext.prototype.unary_operator_expression = function() { + return this.getTypedRuleContext(Unary_operator_expressionContext,0); +}; + +ExpressionContext.prototype.over_clause = function() { + return this.getTypedRuleContext(Over_clauseContext,0); +}; + +ExpressionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +ExpressionContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +ExpressionContext.prototype.DIVIDE = function() { + return this.getToken(TSqlParser.DIVIDE, 0); +}; + +ExpressionContext.prototype.MODULE = function() { + return this.getToken(TSqlParser.MODULE, 0); +}; + +ExpressionContext.prototype.PLUS = function() { + return this.getToken(TSqlParser.PLUS, 0); +}; + +ExpressionContext.prototype.MINUS = function() { + return this.getToken(TSqlParser.MINUS, 0); +}; + +ExpressionContext.prototype.BIT_AND = function() { + return this.getToken(TSqlParser.BIT_AND, 0); +}; + +ExpressionContext.prototype.BIT_XOR = function() { + return this.getToken(TSqlParser.BIT_XOR, 0); +}; + +ExpressionContext.prototype.BIT_OR = function() { + return this.getToken(TSqlParser.BIT_OR, 0); +}; + +ExpressionContext.prototype.DOUBLE_BAR = function() { + return this.getToken(TSqlParser.DOUBLE_BAR, 0); +}; + +ExpressionContext.prototype.comparison_operator = function() { + return this.getTypedRuleContext(Comparison_operatorContext,0); +}; + +ExpressionContext.prototype.assignment_operator = function() { + return this.getTypedRuleContext(Assignment_operatorContext,0); +}; + +ExpressionContext.prototype.COLLATE = function() { + return this.getToken(TSqlParser.COLLATE, 0); +}; + +ExpressionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +ExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExpression(this); + } +}; + +ExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExpression(this); + } +}; + +ExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +TSqlParser.prototype.expression = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new ExpressionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 726; + this.enterRecursionRule(localctx, 726, TSqlParser.RULE_expression, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8868; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1258,this._ctx); + switch(la_) { + case 1: + this.state = 8861; + this.primitive_expression(); + break; + + case 2: + this.state = 8862; + this.function_call(); + break; + + case 3: + this.state = 8863; + this.case_expression(); + break; + + case 4: + this.state = 8864; + this.full_column_name(); + break; + + case 5: + this.state = 8865; + this.bracket_expression(); + break; + + case 6: + this.state = 8866; + this.unary_operator_expression(); + break; + + case 7: + this.state = 8867; + this.over_clause(); + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 8889; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1260,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 8887; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1259,this._ctx); + switch(la_) { + case 1: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8870; + if (!( this.precpred(this._ctx, 5))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); + } + this.state = 8871; + localctx.op = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 831)) & ~0x1f) == 0 && ((1 << (_la - 831)) & ((1 << (TSqlParser.STAR - 831)) | (1 << (TSqlParser.DIVIDE - 831)) | (1 << (TSqlParser.MODULE - 831)))) !== 0))) { + localctx.op = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8872; + this.expression(6); + break; + + case 2: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8873; + if (!( this.precpred(this._ctx, 4))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); + } + this.state = 8874; + localctx.op = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 820)) & ~0x1f) == 0 && ((1 << (_la - 820)) & ((1 << (TSqlParser.DOUBLE_BAR - 820)) | (1 << (TSqlParser.PLUS - 820)) | (1 << (TSqlParser.MINUS - 820)) | (1 << (TSqlParser.BIT_OR - 820)) | (1 << (TSqlParser.BIT_AND - 820)) | (1 << (TSqlParser.BIT_XOR - 820)))) !== 0))) { + localctx.op = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8875; + this.expression(5); + break; + + case 3: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8876; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 8877; + this.comparison_operator(); + this.state = 8878; + this.expression(4); + break; + + case 4: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8880; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 8881; + this.assignment_operator(); + this.state = 8882; + this.expression(3); + break; + + case 5: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8884; + if (!( this.precpred(this._ctx, 10))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 10)"); + } + this.state = 8885; + this.match(TSqlParser.COLLATE); + this.state = 8886; + this.id(); + break; + + } + } + this.state = 8891; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1260,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function Primitive_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_primitive_expression; + return this; +} + +Primitive_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Primitive_expressionContext.prototype.constructor = Primitive_expressionContext; + +Primitive_expressionContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Primitive_expressionContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Primitive_expressionContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Primitive_expressionContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Primitive_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPrimitive_expression(this); + } +}; + +Primitive_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPrimitive_expression(this); + } +}; + +Primitive_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPrimitive_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Primitive_expressionContext = Primitive_expressionContext; + +TSqlParser.prototype.primitive_expression = function() { + + var localctx = new Primitive_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 728, TSqlParser.RULE_primitive_expression); + try { + this.state = 8896; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DEFAULT: + this.enterOuterAlt(localctx, 1); + this.state = 8892; + this.match(TSqlParser.DEFAULT); + break; + case TSqlParser.NULL: + this.enterOuterAlt(localctx, 2); + this.state = 8893; + this.match(TSqlParser.NULL); + break; + case TSqlParser.LOCAL_ID: + this.enterOuterAlt(localctx, 3); + this.state = 8894; + this.match(TSqlParser.LOCAL_ID); + break; + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.enterOuterAlt(localctx, 4); + this.state = 8895; + this.constant(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Case_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_case_expression; + this.caseExpr = null; // ExpressionContext + this.elseExpr = null; // ExpressionContext + return this; +} + +Case_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Case_expressionContext.prototype.constructor = Case_expressionContext; + +Case_expressionContext.prototype.CASE = function() { + return this.getToken(TSqlParser.CASE, 0); +}; + +Case_expressionContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +Case_expressionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Case_expressionContext.prototype.switch_section = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Switch_sectionContext); + } else { + return this.getTypedRuleContext(Switch_sectionContext,i); + } +}; + +Case_expressionContext.prototype.ELSE = function() { + return this.getToken(TSqlParser.ELSE, 0); +}; + +Case_expressionContext.prototype.switch_search_condition_section = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Switch_search_condition_sectionContext); + } else { + return this.getTypedRuleContext(Switch_search_condition_sectionContext,i); + } +}; + +Case_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCase_expression(this); + } +}; + +Case_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCase_expression(this); + } +}; + +Case_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCase_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Case_expressionContext = Case_expressionContext; + +TSqlParser.prototype.case_expression = function() { + + var localctx = new Case_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 730, TSqlParser.RULE_case_expression); + var _la = 0; // Token type + try { + this.state = 8923; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1266,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8898; + this.match(TSqlParser.CASE); + this.state = 8899; + localctx.caseExpr = this.expression(0); + this.state = 8901; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8900; + this.switch_section(); + this.state = 8903; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.WHEN); + this.state = 8907; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ELSE) { + this.state = 8905; + this.match(TSqlParser.ELSE); + this.state = 8906; + localctx.elseExpr = this.expression(0); + } + + this.state = 8909; + this.match(TSqlParser.END); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8911; + this.match(TSqlParser.CASE); + this.state = 8913; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8912; + this.switch_search_condition_section(); + this.state = 8915; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.WHEN); + this.state = 8919; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ELSE) { + this.state = 8917; + this.match(TSqlParser.ELSE); + this.state = 8918; + localctx.elseExpr = this.expression(0); + } + + this.state = 8921; + this.match(TSqlParser.END); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Unary_operator_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_unary_operator_expression; + this.op = null; // Token + return this; +} + +Unary_operator_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Unary_operator_expressionContext.prototype.constructor = Unary_operator_expressionContext; + +Unary_operator_expressionContext.prototype.BIT_NOT = function() { + return this.getToken(TSqlParser.BIT_NOT, 0); +}; + +Unary_operator_expressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Unary_operator_expressionContext.prototype.PLUS = function() { + return this.getToken(TSqlParser.PLUS, 0); +}; + +Unary_operator_expressionContext.prototype.MINUS = function() { + return this.getToken(TSqlParser.MINUS, 0); +}; + +Unary_operator_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUnary_operator_expression(this); + } +}; + +Unary_operator_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUnary_operator_expression(this); + } +}; + +Unary_operator_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUnary_operator_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Unary_operator_expressionContext = Unary_operator_expressionContext; + +TSqlParser.prototype.unary_operator_expression = function() { + + var localctx = new Unary_operator_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 732, TSqlParser.RULE_unary_operator_expression); + var _la = 0; // Token type + try { + this.state = 8929; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BIT_NOT: + this.enterOuterAlt(localctx, 1); + this.state = 8925; + this.match(TSqlParser.BIT_NOT); + this.state = 8926; + this.expression(0); + break; + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.enterOuterAlt(localctx, 2); + this.state = 8927; + localctx.op = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS)) { + localctx.op = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8928; + this.expression(0); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Bracket_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_bracket_expression; + return this; +} + +Bracket_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Bracket_expressionContext.prototype.constructor = Bracket_expressionContext; + +Bracket_expressionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Bracket_expressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Bracket_expressionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Bracket_expressionContext.prototype.subquery = function() { + return this.getTypedRuleContext(SubqueryContext,0); +}; + +Bracket_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBracket_expression(this); + } +}; + +Bracket_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBracket_expression(this); + } +}; + +Bracket_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBracket_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Bracket_expressionContext = Bracket_expressionContext; + +TSqlParser.prototype.bracket_expression = function() { + + var localctx = new Bracket_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 734, TSqlParser.RULE_bracket_expression); + try { + this.state = 8939; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1268,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8931; + this.match(TSqlParser.LR_BRACKET); + this.state = 8932; + this.expression(0); + this.state = 8933; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8935; + this.match(TSqlParser.LR_BRACKET); + this.state = 8936; + this.subquery(); + this.state = 8937; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Constant_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_constant_expression; + return this; +} + +Constant_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Constant_expressionContext.prototype.constructor = Constant_expressionContext; + +Constant_expressionContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Constant_expressionContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Constant_expressionContext.prototype.function_call = function() { + return this.getTypedRuleContext(Function_callContext,0); +}; + +Constant_expressionContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Constant_expressionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Constant_expressionContext.prototype.constant_expression = function() { + return this.getTypedRuleContext(Constant_expressionContext,0); +}; + +Constant_expressionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Constant_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterConstant_expression(this); + } +}; + +Constant_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitConstant_expression(this); + } +}; + +Constant_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitConstant_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Constant_expressionContext = Constant_expressionContext; + +TSqlParser.prototype.constant_expression = function() { + + var localctx = new Constant_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 736, TSqlParser.RULE_constant_expression); + try { + this.state = 8949; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1269,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8941; + this.match(TSqlParser.NULL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8942; + this.constant(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8943; + this.function_call(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8944; + this.match(TSqlParser.LOCAL_ID); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 8945; + this.match(TSqlParser.LR_BRACKET); + this.state = 8946; + this.constant_expression(); + this.state = 8947; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SubqueryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_subquery; + return this; +} + +SubqueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SubqueryContext.prototype.constructor = SubqueryContext; + +SubqueryContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +SubqueryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSubquery(this); + } +}; + +SubqueryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSubquery(this); + } +}; + +SubqueryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSubquery(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.SubqueryContext = SubqueryContext; + +TSqlParser.prototype.subquery = function() { + + var localctx = new SubqueryContext(this, this._ctx, this.state); + this.enterRule(localctx, 738, TSqlParser.RULE_subquery); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8951; + this.select_statement(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function With_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_with_expression; + return this; +} + +With_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +With_expressionContext.prototype.constructor = With_expressionContext; + +With_expressionContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +With_expressionContext.prototype.common_table_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Common_table_expressionContext); + } else { + return this.getTypedRuleContext(Common_table_expressionContext,i); + } +}; + +With_expressionContext.prototype.XMLNAMESPACES = function() { + return this.getToken(TSqlParser.XMLNAMESPACES, 0); +}; + +With_expressionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +With_expressionContext.prototype.BLOCKING_HIERARCHY = function() { + return this.getToken(TSqlParser.BLOCKING_HIERARCHY, 0); +}; + +With_expressionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +With_expressionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +With_expressionContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +With_expressionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +With_expressionContext.prototype.full_column_name_list = function() { + return this.getTypedRuleContext(Full_column_name_listContext,0); +}; + +With_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWith_expression(this); + } +}; + +With_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWith_expression(this); + } +}; + +With_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWith_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.With_expressionContext = With_expressionContext; + +TSqlParser.prototype.with_expression = function() { + + var localctx = new With_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 740, TSqlParser.RULE_with_expression); + var _la = 0; // Token type + try { + this.state = 8979; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1273,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8953; + this.match(TSqlParser.WITH); + this.state = 8956; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1270,this._ctx); + if(la_===1) { + this.state = 8954; + this.match(TSqlParser.XMLNAMESPACES); + this.state = 8955; + this.match(TSqlParser.COMMA); + + } + this.state = 8958; + this.common_table_expression(); + this.state = 8963; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8959; + this.match(TSqlParser.COMMA); + this.state = 8960; + this.common_table_expression(); + this.state = 8965; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8966; + this.match(TSqlParser.WITH); + this.state = 8967; + this.match(TSqlParser.BLOCKING_HIERARCHY); + this.state = 8972; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 8968; + this.match(TSqlParser.LR_BRACKET); + this.state = 8969; + this.full_column_name_list(); + this.state = 8970; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 8974; + this.match(TSqlParser.AS); + this.state = 8975; + this.match(TSqlParser.LR_BRACKET); + this.state = 8976; + this.select_statement(); + this.state = 8977; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Common_table_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_common_table_expression; + this.expression_name = null; // IdContext + return this; +} + +Common_table_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Common_table_expressionContext.prototype.constructor = Common_table_expressionContext; + +Common_table_expressionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Common_table_expressionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Common_table_expressionContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Common_table_expressionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Common_table_expressionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Common_table_expressionContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Common_table_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCommon_table_expression(this); + } +}; + +Common_table_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCommon_table_expression(this); + } +}; + +Common_table_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCommon_table_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Common_table_expressionContext = Common_table_expressionContext; + +TSqlParser.prototype.common_table_expression = function() { + + var localctx = new Common_table_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 742, TSqlParser.RULE_common_table_expression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8981; + localctx.expression_name = this.id(); + this.state = 8986; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 8982; + this.match(TSqlParser.LR_BRACKET); + this.state = 8983; + this.column_name_list(); + this.state = 8984; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 8988; + this.match(TSqlParser.AS); + this.state = 8989; + this.match(TSqlParser.LR_BRACKET); + this.state = 8990; + this.select_statement(); + this.state = 8991; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Update_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_update_elem; + this.udt_column_name = null; // IdContext + this.method_name = null; // IdContext + return this; +} + +Update_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Update_elemContext.prototype.constructor = Update_elemContext; + +Update_elemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Update_elemContext.prototype.full_column_name = function() { + return this.getTypedRuleContext(Full_column_nameContext,0); +}; + +Update_elemContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Update_elemContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Update_elemContext.prototype.assignment_operator = function() { + return this.getTypedRuleContext(Assignment_operatorContext,0); +}; + +Update_elemContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Update_elemContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Update_elemContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +Update_elemContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Update_elemContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Update_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUpdate_elem(this); + } +}; + +Update_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUpdate_elem(this); + } +}; + +Update_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUpdate_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Update_elemContext = Update_elemContext; + +TSqlParser.prototype.update_elem = function() { + + var localctx = new Update_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 744, TSqlParser.RULE_update_elem); + try { + this.state = 9009; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1277,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8995; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8993; + this.full_column_name(); + break; + case TSqlParser.LOCAL_ID: + this.state = 8994; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8999; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EQUAL: + this.state = 8997; + this.match(TSqlParser.EQUAL); + break; + case TSqlParser.PLUS_ASSIGN: + case TSqlParser.MINUS_ASSIGN: + case TSqlParser.MULT_ASSIGN: + case TSqlParser.DIV_ASSIGN: + case TSqlParser.MOD_ASSIGN: + case TSqlParser.AND_ASSIGN: + case TSqlParser.XOR_ASSIGN: + case TSqlParser.OR_ASSIGN: + this.state = 8998; + this.assignment_operator(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9001; + this.expression(0); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9002; + localctx.udt_column_name = this.id(); + this.state = 9003; + this.match(TSqlParser.DOT); + this.state = 9004; + localctx.method_name = this.id(); + this.state = 9005; + this.match(TSqlParser.LR_BRACKET); + this.state = 9006; + this.expression_list(); + this.state = 9007; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Search_condition_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_search_condition_list; + return this; +} + +Search_condition_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Search_condition_listContext.prototype.constructor = Search_condition_listContext; + +Search_condition_listContext.prototype.search_condition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_conditionContext); + } else { + return this.getTypedRuleContext(Search_conditionContext,i); + } +}; + +Search_condition_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Search_condition_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSearch_condition_list(this); + } +}; + +Search_condition_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSearch_condition_list(this); + } +}; + +Search_condition_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSearch_condition_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Search_condition_listContext = Search_condition_listContext; + +TSqlParser.prototype.search_condition_list = function() { + + var localctx = new Search_condition_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 746, TSqlParser.RULE_search_condition_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9011; + this.search_condition(); + this.state = 9016; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9012; + this.match(TSqlParser.COMMA); + this.state = 9013; + this.search_condition(); + this.state = 9018; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Search_conditionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_search_condition; + return this; +} + +Search_conditionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Search_conditionContext.prototype.constructor = Search_conditionContext; + +Search_conditionContext.prototype.search_condition_and = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_condition_andContext); + } else { + return this.getTypedRuleContext(Search_condition_andContext,i); + } +}; + +Search_conditionContext.prototype.OR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OR); + } else { + return this.getToken(TSqlParser.OR, i); + } +}; + + +Search_conditionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSearch_condition(this); + } +}; + +Search_conditionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSearch_condition(this); + } +}; + +Search_conditionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSearch_condition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Search_conditionContext = Search_conditionContext; + +TSqlParser.prototype.search_condition = function() { + + var localctx = new Search_conditionContext(this, this._ctx, this.state); + this.enterRule(localctx, 748, TSqlParser.RULE_search_condition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9019; + this.search_condition_and(); + this.state = 9024; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.OR) { + this.state = 9020; + this.match(TSqlParser.OR); + this.state = 9021; + this.search_condition_and(); + this.state = 9026; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Search_condition_andContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_search_condition_and; + return this; +} + +Search_condition_andContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Search_condition_andContext.prototype.constructor = Search_condition_andContext; + +Search_condition_andContext.prototype.search_condition_not = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_condition_notContext); + } else { + return this.getTypedRuleContext(Search_condition_notContext,i); + } +}; + +Search_condition_andContext.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AND); + } else { + return this.getToken(TSqlParser.AND, i); + } +}; + + +Search_condition_andContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSearch_condition_and(this); + } +}; + +Search_condition_andContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSearch_condition_and(this); + } +}; + +Search_condition_andContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSearch_condition_and(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Search_condition_andContext = Search_condition_andContext; + +TSqlParser.prototype.search_condition_and = function() { + + var localctx = new Search_condition_andContext(this, this._ctx, this.state); + this.enterRule(localctx, 750, TSqlParser.RULE_search_condition_and); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9027; + this.search_condition_not(); + this.state = 9032; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.AND) { + this.state = 9028; + this.match(TSqlParser.AND); + this.state = 9029; + this.search_condition_not(); + this.state = 9034; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Search_condition_notContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_search_condition_not; + return this; +} + +Search_condition_notContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Search_condition_notContext.prototype.constructor = Search_condition_notContext; + +Search_condition_notContext.prototype.predicate = function() { + return this.getTypedRuleContext(PredicateContext,0); +}; + +Search_condition_notContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Search_condition_notContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSearch_condition_not(this); + } +}; + +Search_condition_notContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSearch_condition_not(this); + } +}; + +Search_condition_notContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSearch_condition_not(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Search_condition_notContext = Search_condition_notContext; + +TSqlParser.prototype.search_condition_not = function() { + + var localctx = new Search_condition_notContext(this, this._ctx, this.state); + this.enterRule(localctx, 752, TSqlParser.RULE_search_condition_not); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 9035; + this.match(TSqlParser.NOT); + } + + this.state = 9038; + this.predicate(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PredicateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_predicate; + return this; +} + +PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PredicateContext.prototype.constructor = PredicateContext; + +PredicateContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +PredicateContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +PredicateContext.prototype.subquery = function() { + return this.getTypedRuleContext(SubqueryContext,0); +}; + +PredicateContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +PredicateContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +PredicateContext.prototype.comparison_operator = function() { + return this.getTypedRuleContext(Comparison_operatorContext,0); +}; + +PredicateContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +PredicateContext.prototype.SOME = function() { + return this.getToken(TSqlParser.SOME, 0); +}; + +PredicateContext.prototype.ANY = function() { + return this.getToken(TSqlParser.ANY, 0); +}; + +PredicateContext.prototype.BETWEEN = function() { + return this.getToken(TSqlParser.BETWEEN, 0); +}; + +PredicateContext.prototype.AND = function() { + return this.getToken(TSqlParser.AND, 0); +}; + +PredicateContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +PredicateContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +PredicateContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +PredicateContext.prototype.LIKE = function() { + return this.getToken(TSqlParser.LIKE, 0); +}; + +PredicateContext.prototype.ESCAPE = function() { + return this.getToken(TSqlParser.ESCAPE, 0); +}; + +PredicateContext.prototype.IS = function() { + return this.getToken(TSqlParser.IS, 0); +}; + +PredicateContext.prototype.null_notnull = function() { + return this.getTypedRuleContext(Null_notnullContext,0); +}; + +PredicateContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +PredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPredicate(this); + } +}; + +PredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPredicate(this); + } +}; + +PredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.PredicateContext = PredicateContext; + +TSqlParser.prototype.predicate = function() { + + var localctx = new PredicateContext(this, this._ctx, this.state); + this.enterRule(localctx, 754, TSqlParser.RULE_predicate); + var _la = 0; // Token type + try { + this.state = 9095; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1287,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9040; + this.match(TSqlParser.EXISTS); + this.state = 9041; + this.match(TSqlParser.LR_BRACKET); + this.state = 9042; + this.subquery(); + this.state = 9043; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9045; + this.expression(0); + this.state = 9046; + this.comparison_operator(); + this.state = 9047; + this.expression(0); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9049; + this.expression(0); + this.state = 9050; + this.comparison_operator(); + this.state = 9051; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.ANY || _la===TSqlParser.SOME)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9052; + this.match(TSqlParser.LR_BRACKET); + this.state = 9053; + this.subquery(); + this.state = 9054; + this.match(TSqlParser.RR_BRACKET); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9056; + this.expression(0); + this.state = 9058; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 9057; + this.match(TSqlParser.NOT); + } + + this.state = 9060; + this.match(TSqlParser.BETWEEN); + this.state = 9061; + this.expression(0); + this.state = 9062; + this.match(TSqlParser.AND); + this.state = 9063; + this.expression(0); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9065; + this.expression(0); + this.state = 9067; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 9066; + this.match(TSqlParser.NOT); + } + + this.state = 9069; + this.match(TSqlParser.IN); + this.state = 9070; + this.match(TSqlParser.LR_BRACKET); + this.state = 9073; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1284,this._ctx); + switch(la_) { + case 1: + this.state = 9071; + this.subquery(); + break; + + case 2: + this.state = 9072; + this.expression_list(); + break; + + } + this.state = 9075; + this.match(TSqlParser.RR_BRACKET); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 9077; + this.expression(0); + this.state = 9079; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 9078; + this.match(TSqlParser.NOT); + } + + this.state = 9081; + this.match(TSqlParser.LIKE); + this.state = 9082; + this.expression(0); + this.state = 9085; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ESCAPE) { + this.state = 9083; + this.match(TSqlParser.ESCAPE); + this.state = 9084; + this.expression(0); + } + + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 9087; + this.expression(0); + this.state = 9088; + this.match(TSqlParser.IS); + this.state = 9089; + this.null_notnull(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 9091; + this.match(TSqlParser.LR_BRACKET); + this.state = 9092; + this.search_condition(); + this.state = 9093; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Query_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_query_expression; + return this; +} + +Query_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Query_expressionContext.prototype.constructor = Query_expressionContext; + +Query_expressionContext.prototype.query_specification = function() { + return this.getTypedRuleContext(Query_specificationContext,0); +}; + +Query_expressionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Query_expressionContext.prototype.query_expression = function() { + return this.getTypedRuleContext(Query_expressionContext,0); +}; + +Query_expressionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Query_expressionContext.prototype.sql_union = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_unionContext); + } else { + return this.getTypedRuleContext(Sql_unionContext,i); + } +}; + +Query_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQuery_expression(this); + } +}; + +Query_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQuery_expression(this); + } +}; + +Query_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQuery_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Query_expressionContext = Query_expressionContext; + +TSqlParser.prototype.query_expression = function() { + + var localctx = new Query_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 756, TSqlParser.RULE_query_expression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9102; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SELECT: + this.state = 9097; + this.query_specification(); + break; + case TSqlParser.LR_BRACKET: + this.state = 9098; + this.match(TSqlParser.LR_BRACKET); + this.state = 9099; + this.query_expression(); + this.state = 9100; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9107; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1289,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9104; + this.sql_union(); + } + this.state = 9109; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1289,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Sql_unionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sql_union; + return this; +} + +Sql_unionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Sql_unionContext.prototype.constructor = Sql_unionContext; + +Sql_unionContext.prototype.UNION = function() { + return this.getToken(TSqlParser.UNION, 0); +}; + +Sql_unionContext.prototype.EXCEPT = function() { + return this.getToken(TSqlParser.EXCEPT, 0); +}; + +Sql_unionContext.prototype.INTERSECT = function() { + return this.getToken(TSqlParser.INTERSECT, 0); +}; + +Sql_unionContext.prototype.query_specification = function() { + return this.getTypedRuleContext(Query_specificationContext,0); +}; + +Sql_unionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Sql_unionContext.prototype.query_expression = function() { + return this.getTypedRuleContext(Query_expressionContext,0); +}; + +Sql_unionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Sql_unionContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Sql_unionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSql_union(this); + } +}; + +Sql_unionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSql_union(this); + } +}; + +Sql_unionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSql_union(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Sql_unionContext = Sql_unionContext; + +TSqlParser.prototype.sql_union = function() { + + var localctx = new Sql_unionContext(this, this._ctx, this.state); + this.enterRule(localctx, 758, TSqlParser.RULE_sql_union); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9116; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UNION: + this.state = 9110; + this.match(TSqlParser.UNION); + this.state = 9112; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL) { + this.state = 9111; + this.match(TSqlParser.ALL); + } + + break; + case TSqlParser.EXCEPT: + this.state = 9114; + this.match(TSqlParser.EXCEPT); + break; + case TSqlParser.INTERSECT: + this.state = 9115; + this.match(TSqlParser.INTERSECT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9123; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SELECT: + this.state = 9118; + this.query_specification(); + break; + case TSqlParser.LR_BRACKET: + this.state = 9119; + this.match(TSqlParser.LR_BRACKET); + this.state = 9120; + this.query_expression(); + this.state = 9121; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Query_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_query_specification; + this.where = null; // Search_conditionContext + this.having = null; // Search_conditionContext + return this; +} + +Query_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Query_specificationContext.prototype.constructor = Query_specificationContext; + +Query_specificationContext.prototype.SELECT = function() { + return this.getToken(TSqlParser.SELECT, 0); +}; + +Query_specificationContext.prototype.select_list = function() { + return this.getTypedRuleContext(Select_listContext,0); +}; + +Query_specificationContext.prototype.top_clause = function() { + return this.getTypedRuleContext(Top_clauseContext,0); +}; + +Query_specificationContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Query_specificationContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Query_specificationContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Query_specificationContext.prototype.table_sources = function() { + return this.getTypedRuleContext(Table_sourcesContext,0); +}; + +Query_specificationContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Query_specificationContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Query_specificationContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Query_specificationContext.prototype.group_by_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Group_by_itemContext); + } else { + return this.getTypedRuleContext(Group_by_itemContext,i); + } +}; + +Query_specificationContext.prototype.HAVING = function() { + return this.getToken(TSqlParser.HAVING, 0); +}; + +Query_specificationContext.prototype.ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALL); + } else { + return this.getToken(TSqlParser.ALL, i); + } +}; + + +Query_specificationContext.prototype.DISTINCT = function() { + return this.getToken(TSqlParser.DISTINCT, 0); +}; + +Query_specificationContext.prototype.search_condition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_conditionContext); + } else { + return this.getTypedRuleContext(Search_conditionContext,i); + } +}; + +Query_specificationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Query_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQuery_specification(this); + } +}; + +Query_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQuery_specification(this); + } +}; + +Query_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQuery_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Query_specificationContext = Query_specificationContext; + +TSqlParser.prototype.query_specification = function() { + + var localctx = new Query_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 760, TSqlParser.RULE_query_specification); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9125; + this.match(TSqlParser.SELECT); + this.state = 9127; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL || _la===TSqlParser.DISTINCT) { + this.state = 9126; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.DISTINCT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 9130; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TOP) { + this.state = 9129; + this.top_clause(); + } + + this.state = 9132; + this.select_list(); + this.state = 9135; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 9133; + this.match(TSqlParser.INTO); + this.state = 9134; + this.table_name(); + } + + this.state = 9139; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 9137; + this.match(TSqlParser.FROM); + this.state = 9138; + this.table_sources(); + } + + this.state = 9143; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1297,this._ctx); + if(la_===1) { + this.state = 9141; + this.match(TSqlParser.WHERE); + this.state = 9142; + localctx.where = this.search_condition(); + + } + this.state = 9158; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1300,this._ctx); + if(la_===1) { + this.state = 9145; + this.match(TSqlParser.GROUP); + this.state = 9146; + this.match(TSqlParser.BY); + this.state = 9148; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL) { + this.state = 9147; + this.match(TSqlParser.ALL); + } + + this.state = 9150; + this.group_by_item(); + this.state = 9155; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1299,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9151; + this.match(TSqlParser.COMMA); + this.state = 9152; + this.group_by_item(); + } + this.state = 9157; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1299,this._ctx); + } + + + } + this.state = 9162; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1301,this._ctx); + if(la_===1) { + this.state = 9160; + this.match(TSqlParser.HAVING); + this.state = 9161; + localctx.having = this.search_condition(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Top_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_top_clause; + return this; +} + +Top_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Top_clauseContext.prototype.constructor = Top_clauseContext; + +Top_clauseContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Top_clauseContext.prototype.top_percent = function() { + return this.getTypedRuleContext(Top_percentContext,0); +}; + +Top_clauseContext.prototype.top_count = function() { + return this.getTypedRuleContext(Top_countContext,0); +}; + +Top_clauseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Top_clauseContext.prototype.TIES = function() { + return this.getToken(TSqlParser.TIES, 0); +}; + +Top_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTop_clause(this); + } +}; + +Top_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTop_clause(this); + } +}; + +Top_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTop_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Top_clauseContext = Top_clauseContext; + +TSqlParser.prototype.top_clause = function() { + + var localctx = new Top_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 762, TSqlParser.RULE_top_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9164; + this.match(TSqlParser.TOP); + this.state = 9167; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1302,this._ctx); + switch(la_) { + case 1: + this.state = 9165; + this.top_percent(); + break; + + case 2: + this.state = 9166; + this.top_count(); + break; + + } + this.state = 9171; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 9169; + this.match(TSqlParser.WITH); + this.state = 9170; + this.match(TSqlParser.TIES); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Top_percentContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_top_percent; + return this; +} + +Top_percentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Top_percentContext.prototype.constructor = Top_percentContext; + +Top_percentContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Top_percentContext.prototype.REAL = function() { + return this.getToken(TSqlParser.REAL, 0); +}; + +Top_percentContext.prototype.FLOAT = function() { + return this.getToken(TSqlParser.FLOAT, 0); +}; + +Top_percentContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Top_percentContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Top_percentContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Top_percentContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTop_percent(this); + } +}; + +Top_percentContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTop_percent(this); + } +}; + +Top_percentContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTop_percent(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Top_percentContext = Top_percentContext; + +TSqlParser.prototype.top_percent = function() { + + var localctx = new Top_percentContext(this, this._ctx, this.state); + this.enterRule(localctx, 764, TSqlParser.RULE_top_percent); + var _la = 0; // Token type + try { + this.state = 9180; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FLOAT: + case TSqlParser.REAL: + this.enterOuterAlt(localctx, 1); + this.state = 9173; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FLOAT || _la===TSqlParser.REAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9174; + this.match(TSqlParser.PERCENT); + break; + case TSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 9175; + this.match(TSqlParser.LR_BRACKET); + this.state = 9176; + this.expression(0); + this.state = 9177; + this.match(TSqlParser.RR_BRACKET); + this.state = 9178; + this.match(TSqlParser.PERCENT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Top_countContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_top_count; + return this; +} + +Top_countContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Top_countContext.prototype.constructor = Top_countContext; + +Top_countContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Top_countContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Top_countContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Top_countContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Top_countContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTop_count(this); + } +}; + +Top_countContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTop_count(this); + } +}; + +Top_countContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTop_count(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Top_countContext = Top_countContext; + +TSqlParser.prototype.top_count = function() { + + var localctx = new Top_countContext(this, this._ctx, this.state); + this.enterRule(localctx, 766, TSqlParser.RULE_top_count); + try { + this.state = 9187; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 1); + this.state = 9182; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 9183; + this.match(TSqlParser.LR_BRACKET); + this.state = 9184; + this.expression(0); + this.state = 9185; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Order_by_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_order_by_clause; + return this; +} + +Order_by_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Order_by_clauseContext.prototype.constructor = Order_by_clauseContext; + +Order_by_clauseContext.prototype.ORDER = function() { + return this.getToken(TSqlParser.ORDER, 0); +}; + +Order_by_clauseContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Order_by_clauseContext.prototype.order_by_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Order_by_expressionContext); + } else { + return this.getTypedRuleContext(Order_by_expressionContext,i); + } +}; + +Order_by_clauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Order_by_clauseContext.prototype.OFFSET = function() { + return this.getToken(TSqlParser.OFFSET, 0); +}; + +Order_by_clauseContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Order_by_clauseContext.prototype.ROW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ROW); + } else { + return this.getToken(TSqlParser.ROW, i); + } +}; + + +Order_by_clauseContext.prototype.ROWS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ROWS); + } else { + return this.getToken(TSqlParser.ROWS, i); + } +}; + + +Order_by_clauseContext.prototype.FETCH = function() { + return this.getToken(TSqlParser.FETCH, 0); +}; + +Order_by_clauseContext.prototype.ONLY = function() { + return this.getToken(TSqlParser.ONLY, 0); +}; + +Order_by_clauseContext.prototype.FIRST = function() { + return this.getToken(TSqlParser.FIRST, 0); +}; + +Order_by_clauseContext.prototype.NEXT = function() { + return this.getToken(TSqlParser.NEXT, 0); +}; + +Order_by_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOrder_by_clause(this); + } +}; + +Order_by_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOrder_by_clause(this); + } +}; + +Order_by_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOrder_by_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Order_by_clauseContext = Order_by_clauseContext; + +TSqlParser.prototype.order_by_clause = function() { + + var localctx = new Order_by_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 768, TSqlParser.RULE_order_by_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9189; + this.match(TSqlParser.ORDER); + this.state = 9190; + this.match(TSqlParser.BY); + this.state = 9191; + this.order_by_expression(); + this.state = 9196; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1306,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9192; + this.match(TSqlParser.COMMA); + this.state = 9193; + this.order_by_expression(); + } + this.state = 9198; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1306,this._ctx); + } + + this.state = 9210; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1308,this._ctx); + if(la_===1) { + this.state = 9199; + this.match(TSqlParser.OFFSET); + this.state = 9200; + this.expression(0); + this.state = 9201; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ROW || _la===TSqlParser.ROWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9208; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1307,this._ctx); + if(la_===1) { + this.state = 9202; + this.match(TSqlParser.FETCH); + this.state = 9203; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FIRST || _la===TSqlParser.NEXT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9204; + this.expression(0); + this.state = 9205; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ROW || _la===TSqlParser.ROWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9206; + this.match(TSqlParser.ONLY); + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function For_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_for_clause; + return this; +} + +For_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +For_clauseContext.prototype.constructor = For_clauseContext; + +For_clauseContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +For_clauseContext.prototype.BROWSE = function() { + return this.getToken(TSqlParser.BROWSE, 0); +}; + +For_clauseContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +For_clauseContext.prototype.RAW = function() { + return this.getToken(TSqlParser.RAW, 0); +}; + +For_clauseContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +For_clauseContext.prototype.xml_common_directives = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Xml_common_directivesContext); + } else { + return this.getTypedRuleContext(Xml_common_directivesContext,i); + } +}; + +For_clauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +For_clauseContext.prototype.ELEMENTS = function() { + return this.getToken(TSqlParser.ELEMENTS, 0); +}; + +For_clauseContext.prototype.XSINIL = function() { + return this.getToken(TSqlParser.XSINIL, 0); +}; + +For_clauseContext.prototype.ABSENT = function() { + return this.getToken(TSqlParser.ABSENT, 0); +}; + +For_clauseContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +For_clauseContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +For_clauseContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +For_clauseContext.prototype.XMLDATA = function() { + return this.getToken(TSqlParser.XMLDATA, 0); +}; + +For_clauseContext.prototype.XMLSCHEMA = function() { + return this.getToken(TSqlParser.XMLSCHEMA, 0); +}; + +For_clauseContext.prototype.EXPLICIT = function() { + return this.getToken(TSqlParser.EXPLICIT, 0); +}; + +For_clauseContext.prototype.PATH = function() { + return this.getToken(TSqlParser.PATH, 0); +}; + +For_clauseContext.prototype.JSON = function() { + return this.getToken(TSqlParser.JSON, 0); +}; + +For_clauseContext.prototype.ROOT = function() { + return this.getToken(TSqlParser.ROOT, 0); +}; + +For_clauseContext.prototype.INCLUDE_NULL_VALUES = function() { + return this.getToken(TSqlParser.INCLUDE_NULL_VALUES, 0); +}; + +For_clauseContext.prototype.WITHOUT_ARRAY_WRAPPER = function() { + return this.getToken(TSqlParser.WITHOUT_ARRAY_WRAPPER, 0); +}; + +For_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFor_clause(this); + } +}; + +For_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFor_clause(this); + } +}; + +For_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFor_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.For_clauseContext = For_clauseContext; + +TSqlParser.prototype.for_clause = function() { + + var localctx = new For_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 770, TSqlParser.RULE_for_clause); + var _la = 0; // Token type + try { + this.state = 9300; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1325,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9212; + this.match(TSqlParser.FOR); + this.state = 9213; + this.match(TSqlParser.BROWSE); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9214; + this.match(TSqlParser.FOR); + this.state = 9215; + this.match(TSqlParser.XML); + this.state = 9223; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.RAW: + this.state = 9216; + this.match(TSqlParser.RAW); + this.state = 9220; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1309,this._ctx); + if(la_===1) { + this.state = 9217; + this.match(TSqlParser.LR_BRACKET); + this.state = 9218; + this.match(TSqlParser.STRING); + this.state = 9219; + this.match(TSqlParser.RR_BRACKET); + + } + break; + case TSqlParser.AUTO: + this.state = 9222; + this.match(TSqlParser.AUTO); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9228; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1311,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9225; + this.xml_common_directives(); + } + this.state = 9230; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1311,this._ctx); + } + + this.state = 9241; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1314,this._ctx); + if(la_===1) { + this.state = 9231; + this.match(TSqlParser.COMMA); + this.state = 9239; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.XMLDATA: + this.state = 9232; + this.match(TSqlParser.XMLDATA); + break; + case TSqlParser.XMLSCHEMA: + this.state = 9233; + this.match(TSqlParser.XMLSCHEMA); + this.state = 9237; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1312,this._ctx); + if(la_===1) { + this.state = 9234; + this.match(TSqlParser.LR_BRACKET); + this.state = 9235; + this.match(TSqlParser.STRING); + this.state = 9236; + this.match(TSqlParser.RR_BRACKET); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 9246; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1315,this._ctx); + if(la_===1) { + this.state = 9243; + this.match(TSqlParser.COMMA); + this.state = 9244; + this.match(TSqlParser.ELEMENTS); + this.state = 9245; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ABSENT || _la===TSqlParser.XSINIL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9248; + this.match(TSqlParser.FOR); + this.state = 9249; + this.match(TSqlParser.XML); + this.state = 9250; + this.match(TSqlParser.EXPLICIT); + this.state = 9254; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1316,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9251; + this.xml_common_directives(); + } + this.state = 9256; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1316,this._ctx); + } + + this.state = 9259; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1317,this._ctx); + if(la_===1) { + this.state = 9257; + this.match(TSqlParser.COMMA); + this.state = 9258; + this.match(TSqlParser.XMLDATA); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9261; + this.match(TSqlParser.FOR); + this.state = 9262; + this.match(TSqlParser.XML); + this.state = 9263; + this.match(TSqlParser.PATH); + this.state = 9267; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1318,this._ctx); + if(la_===1) { + this.state = 9264; + this.match(TSqlParser.LR_BRACKET); + this.state = 9265; + this.match(TSqlParser.STRING); + this.state = 9266; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 9272; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1319,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9269; + this.xml_common_directives(); + } + this.state = 9274; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1319,this._ctx); + } + + this.state = 9278; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1320,this._ctx); + if(la_===1) { + this.state = 9275; + this.match(TSqlParser.COMMA); + this.state = 9276; + this.match(TSqlParser.ELEMENTS); + this.state = 9277; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ABSENT || _la===TSqlParser.XSINIL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9280; + this.match(TSqlParser.FOR); + this.state = 9281; + this.match(TSqlParser.JSON); + this.state = 9282; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTO || _la===TSqlParser.PATH)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9290; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1322,this._ctx); + if(la_===1) { + this.state = 9283; + this.match(TSqlParser.COMMA); + this.state = 9284; + this.match(TSqlParser.ROOT); + this.state = 9288; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1321,this._ctx); + if(la_===1) { + this.state = 9285; + this.match(TSqlParser.LR_BRACKET); + this.state = 9286; + this.match(TSqlParser.STRING); + this.state = 9287; + this.match(TSqlParser.RR_BRACKET); + + } + + } + this.state = 9294; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1323,this._ctx); + if(la_===1) { + this.state = 9292; + this.match(TSqlParser.COMMA); + this.state = 9293; + this.match(TSqlParser.INCLUDE_NULL_VALUES); + + } + this.state = 9298; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1324,this._ctx); + if(la_===1) { + this.state = 9296; + this.match(TSqlParser.COMMA); + this.state = 9297; + this.match(TSqlParser.WITHOUT_ARRAY_WRAPPER); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Xml_common_directivesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_xml_common_directives; + return this; +} + +Xml_common_directivesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Xml_common_directivesContext.prototype.constructor = Xml_common_directivesContext; + +Xml_common_directivesContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Xml_common_directivesContext.prototype.BINARY_BASE64 = function() { + return this.getToken(TSqlParser.BINARY_BASE64, 0); +}; + +Xml_common_directivesContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Xml_common_directivesContext.prototype.ROOT = function() { + return this.getToken(TSqlParser.ROOT, 0); +}; + +Xml_common_directivesContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Xml_common_directivesContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Xml_common_directivesContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Xml_common_directivesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXml_common_directives(this); + } +}; + +Xml_common_directivesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXml_common_directives(this); + } +}; + +Xml_common_directivesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXml_common_directives(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Xml_common_directivesContext = Xml_common_directivesContext; + +TSqlParser.prototype.xml_common_directives = function() { + + var localctx = new Xml_common_directivesContext(this, this._ctx, this.state); + this.enterRule(localctx, 772, TSqlParser.RULE_xml_common_directives); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9302; + this.match(TSqlParser.COMMA); + this.state = 9311; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BINARY_BASE64: + this.state = 9303; + this.match(TSqlParser.BINARY_BASE64); + break; + case TSqlParser.TYPE: + this.state = 9304; + this.match(TSqlParser.TYPE); + break; + case TSqlParser.ROOT: + this.state = 9305; + this.match(TSqlParser.ROOT); + this.state = 9309; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1326,this._ctx); + if(la_===1) { + this.state = 9306; + this.match(TSqlParser.LR_BRACKET); + this.state = 9307; + this.match(TSqlParser.STRING); + this.state = 9308; + this.match(TSqlParser.RR_BRACKET); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Order_by_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_order_by_expression; + return this; +} + +Order_by_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Order_by_expressionContext.prototype.constructor = Order_by_expressionContext; + +Order_by_expressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Order_by_expressionContext.prototype.ASC = function() { + return this.getToken(TSqlParser.ASC, 0); +}; + +Order_by_expressionContext.prototype.DESC = function() { + return this.getToken(TSqlParser.DESC, 0); +}; + +Order_by_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOrder_by_expression(this); + } +}; + +Order_by_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOrder_by_expression(this); + } +}; + +Order_by_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOrder_by_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Order_by_expressionContext = Order_by_expressionContext; + +TSqlParser.prototype.order_by_expression = function() { + + var localctx = new Order_by_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 774, TSqlParser.RULE_order_by_expression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9313; + this.expression(0); + this.state = 9315; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ASC || _la===TSqlParser.DESC) { + this.state = 9314; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASC || _la===TSqlParser.DESC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Group_by_itemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_group_by_item; + return this; +} + +Group_by_itemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Group_by_itemContext.prototype.constructor = Group_by_itemContext; + +Group_by_itemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Group_by_itemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGroup_by_item(this); + } +}; + +Group_by_itemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGroup_by_item(this); + } +}; + +Group_by_itemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGroup_by_item(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Group_by_itemContext = Group_by_itemContext; + +TSqlParser.prototype.group_by_item = function() { + + var localctx = new Group_by_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 776, TSqlParser.RULE_group_by_item); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9317; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Option_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_option_clause; + return this; +} + +Option_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Option_clauseContext.prototype.constructor = Option_clauseContext; + +Option_clauseContext.prototype.OPTION = function() { + return this.getToken(TSqlParser.OPTION, 0); +}; + +Option_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Option_clauseContext.prototype.option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(OptionContext); + } else { + return this.getTypedRuleContext(OptionContext,i); + } +}; + +Option_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Option_clauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Option_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOption_clause(this); + } +}; + +Option_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOption_clause(this); + } +}; + +Option_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOption_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Option_clauseContext = Option_clauseContext; + +TSqlParser.prototype.option_clause = function() { + + var localctx = new Option_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 778, TSqlParser.RULE_option_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9319; + this.match(TSqlParser.OPTION); + this.state = 9320; + this.match(TSqlParser.LR_BRACKET); + this.state = 9321; + this.option(); + this.state = 9326; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9322; + this.match(TSqlParser.COMMA); + this.state = 9323; + this.option(); + this.state = 9328; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9329; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_option; + this.number_rows = null; // Token + this.number_of_processors = null; // Token + this.number_recursion = null; // Token + return this; +} + +OptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OptionContext.prototype.constructor = OptionContext; + +OptionContext.prototype.FAST = function() { + return this.getToken(TSqlParser.FAST, 0); +}; + +OptionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +OptionContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +OptionContext.prototype.HASH = function() { + return this.getToken(TSqlParser.HASH, 0); +}; + +OptionContext.prototype.ORDER = function() { + return this.getToken(TSqlParser.ORDER, 0); +}; + +OptionContext.prototype.UNION = function() { + return this.getToken(TSqlParser.UNION, 0); +}; + +OptionContext.prototype.MERGE = function() { + return this.getToken(TSqlParser.MERGE, 0); +}; + +OptionContext.prototype.CONCAT = function() { + return this.getToken(TSqlParser.CONCAT, 0); +}; + +OptionContext.prototype.JOIN = function() { + return this.getToken(TSqlParser.JOIN, 0); +}; + +OptionContext.prototype.LOOP = function() { + return this.getToken(TSqlParser.LOOP, 0); +}; + +OptionContext.prototype.EXPAND = function() { + return this.getToken(TSqlParser.EXPAND, 0); +}; + +OptionContext.prototype.VIEWS = function() { + return this.getToken(TSqlParser.VIEWS, 0); +}; + +OptionContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +OptionContext.prototype.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX = function() { + return this.getToken(TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX, 0); +}; + +OptionContext.prototype.KEEP = function() { + return this.getToken(TSqlParser.KEEP, 0); +}; + +OptionContext.prototype.PLAN = function() { + return this.getToken(TSqlParser.PLAN, 0); +}; + +OptionContext.prototype.KEEPFIXED = function() { + return this.getToken(TSqlParser.KEEPFIXED, 0); +}; + +OptionContext.prototype.MAXDOP = function() { + return this.getToken(TSqlParser.MAXDOP, 0); +}; + +OptionContext.prototype.MAXRECURSION = function() { + return this.getToken(TSqlParser.MAXRECURSION, 0); +}; + +OptionContext.prototype.OPTIMIZE = function() { + return this.getToken(TSqlParser.OPTIMIZE, 0); +}; + +OptionContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +OptionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +OptionContext.prototype.optimize_for_arg = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Optimize_for_argContext); + } else { + return this.getTypedRuleContext(Optimize_for_argContext,i); + } +}; + +OptionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +OptionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +OptionContext.prototype.UNKNOWN = function() { + return this.getToken(TSqlParser.UNKNOWN, 0); +}; + +OptionContext.prototype.PARAMETERIZATION = function() { + return this.getToken(TSqlParser.PARAMETERIZATION, 0); +}; + +OptionContext.prototype.SIMPLE = function() { + return this.getToken(TSqlParser.SIMPLE, 0); +}; + +OptionContext.prototype.FORCED = function() { + return this.getToken(TSqlParser.FORCED, 0); +}; + +OptionContext.prototype.RECOMPILE = function() { + return this.getToken(TSqlParser.RECOMPILE, 0); +}; + +OptionContext.prototype.ROBUST = function() { + return this.getToken(TSqlParser.ROBUST, 0); +}; + +OptionContext.prototype.USE = function() { + return this.getToken(TSqlParser.USE, 0); +}; + +OptionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +OptionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOption(this); + } +}; + +OptionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOption(this); + } +}; + +OptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.OptionContext = OptionContext; + +TSqlParser.prototype.option = function() { + + var localctx = new OptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 780, TSqlParser.RULE_option); + var _la = 0; // Token type + try { + this.state = 9376; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1331,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9331; + this.match(TSqlParser.FAST); + this.state = 9332; + localctx.number_rows = this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9333; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ORDER || _la===TSqlParser.HASH)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9334; + this.match(TSqlParser.GROUP); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9335; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MERGE || _la===TSqlParser.CONCAT || _la===TSqlParser.HASH)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9336; + this.match(TSqlParser.UNION); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9337; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MERGE || _la===TSqlParser.HASH || _la===TSqlParser.LOOP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9338; + this.match(TSqlParser.JOIN); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9339; + this.match(TSqlParser.EXPAND); + this.state = 9340; + this.match(TSqlParser.VIEWS); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 9341; + this.match(TSqlParser.FORCE); + this.state = 9342; + this.match(TSqlParser.ORDER); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 9343; + this.match(TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 9344; + this.match(TSqlParser.KEEP); + this.state = 9345; + this.match(TSqlParser.PLAN); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 9346; + this.match(TSqlParser.KEEPFIXED); + this.state = 9347; + this.match(TSqlParser.PLAN); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 9348; + this.match(TSqlParser.MAXDOP); + this.state = 9349; + localctx.number_of_processors = this.match(TSqlParser.DECIMAL); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 9350; + this.match(TSqlParser.MAXRECURSION); + this.state = 9351; + localctx.number_recursion = this.match(TSqlParser.DECIMAL); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 9352; + this.match(TSqlParser.OPTIMIZE); + this.state = 9353; + this.match(TSqlParser.FOR); + this.state = 9354; + this.match(TSqlParser.LR_BRACKET); + this.state = 9355; + this.optimize_for_arg(); + this.state = 9360; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9356; + this.match(TSqlParser.COMMA); + this.state = 9357; + this.optimize_for_arg(); + this.state = 9362; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9363; + this.match(TSqlParser.RR_BRACKET); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 9365; + this.match(TSqlParser.OPTIMIZE); + this.state = 9366; + this.match(TSqlParser.FOR); + this.state = 9367; + this.match(TSqlParser.UNKNOWN); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 9368; + this.match(TSqlParser.PARAMETERIZATION); + this.state = 9369; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FORCED || _la===TSqlParser.SIMPLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 9370; + this.match(TSqlParser.RECOMPILE); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 9371; + this.match(TSqlParser.ROBUST); + this.state = 9372; + this.match(TSqlParser.PLAN); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 9373; + this.match(TSqlParser.USE); + this.state = 9374; + this.match(TSqlParser.PLAN); + this.state = 9375; + this.match(TSqlParser.STRING); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Optimize_for_argContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_optimize_for_arg; + return this; +} + +Optimize_for_argContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Optimize_for_argContext.prototype.constructor = Optimize_for_argContext; + +Optimize_for_argContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Optimize_for_argContext.prototype.UNKNOWN = function() { + return this.getToken(TSqlParser.UNKNOWN, 0); +}; + +Optimize_for_argContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Optimize_for_argContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Optimize_for_argContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Optimize_for_argContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOptimize_for_arg(this); + } +}; + +Optimize_for_argContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOptimize_for_arg(this); + } +}; + +Optimize_for_argContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOptimize_for_arg(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Optimize_for_argContext = Optimize_for_argContext; + +TSqlParser.prototype.optimize_for_arg = function() { + + var localctx = new Optimize_for_argContext(this, this._ctx, this.state); + this.enterRule(localctx, 782, TSqlParser.RULE_optimize_for_arg); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9378; + this.match(TSqlParser.LOCAL_ID); + this.state = 9385; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UNKNOWN: + this.state = 9379; + this.match(TSqlParser.UNKNOWN); + break; + case TSqlParser.EQUAL: + this.state = 9380; + this.match(TSqlParser.EQUAL); + this.state = 9383; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 9381; + this.constant(); + break; + case TSqlParser.NULL: + this.state = 9382; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Select_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_select_list; + return this; +} + +Select_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Select_listContext.prototype.constructor = Select_listContext; + +Select_listContext.prototype.select_list_elem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Select_list_elemContext); + } else { + return this.getTypedRuleContext(Select_list_elemContext,i); + } +}; + +Select_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Select_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSelect_list(this); + } +}; + +Select_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSelect_list(this); + } +}; + +Select_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSelect_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Select_listContext = Select_listContext; + +TSqlParser.prototype.select_list = function() { + + var localctx = new Select_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 784, TSqlParser.RULE_select_list); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9387; + this.select_list_elem(); + this.state = 9392; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1334,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9388; + this.match(TSqlParser.COMMA); + this.state = 9389; + this.select_list_elem(); + } + this.state = 9394; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1334,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Udt_method_argumentsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_udt_method_arguments; + return this; +} + +Udt_method_argumentsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Udt_method_argumentsContext.prototype.constructor = Udt_method_argumentsContext; + +Udt_method_argumentsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Udt_method_argumentsContext.prototype.execute_var_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Execute_var_stringContext); + } else { + return this.getTypedRuleContext(Execute_var_stringContext,i); + } +}; + +Udt_method_argumentsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Udt_method_argumentsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Udt_method_argumentsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUdt_method_arguments(this); + } +}; + +Udt_method_argumentsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUdt_method_arguments(this); + } +}; + +Udt_method_argumentsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUdt_method_arguments(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Udt_method_argumentsContext = Udt_method_argumentsContext; + +TSqlParser.prototype.udt_method_arguments = function() { + + var localctx = new Udt_method_argumentsContext(this, this._ctx, this.state); + this.enterRule(localctx, 786, TSqlParser.RULE_udt_method_arguments); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9395; + this.match(TSqlParser.LR_BRACKET); + this.state = 9396; + this.execute_var_string(); + this.state = 9401; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9397; + this.match(TSqlParser.COMMA); + this.state = 9398; + this.execute_var_string(); + this.state = 9403; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9404; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AsteriskContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_asterisk; + return this; +} + +AsteriskContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AsteriskContext.prototype.constructor = AsteriskContext; + +AsteriskContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +AsteriskContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +AsteriskContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +AsteriskContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAsterisk(this); + } +}; + +AsteriskContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAsterisk(this); + } +}; + +AsteriskContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAsterisk(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.AsteriskContext = AsteriskContext; + +TSqlParser.prototype.asterisk = function() { + + var localctx = new AsteriskContext(this, this._ctx, this.state); + this.enterRule(localctx, 788, TSqlParser.RULE_asterisk); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9409; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.BLOCKING_HIERARCHY || _la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 9406; + this.table_name(); + this.state = 9407; + this.match(TSqlParser.DOT); + } + + this.state = 9411; + this.match(TSqlParser.STAR); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_elem; + this.column_name = null; // IdContext + return this; +} + +Column_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_elemContext.prototype.constructor = Column_elemContext; + +Column_elemContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Column_elemContext.prototype.as_column_alias = function() { + return this.getTypedRuleContext(As_column_aliasContext,0); +}; + +Column_elemContext.prototype.DOLLAR = function() { + return this.getToken(TSqlParser.DOLLAR, 0); +}; + +Column_elemContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Column_elemContext.prototype.ROWGUID = function() { + return this.getToken(TSqlParser.ROWGUID, 0); +}; + +Column_elemContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Column_elemContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Column_elemContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Column_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_elem(this); + } +}; + +Column_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_elem(this); + } +}; + +Column_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_elemContext = Column_elemContext; + +TSqlParser.prototype.column_elem = function() { + + var localctx = new Column_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 790, TSqlParser.RULE_column_elem); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9426; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + case TSqlParser.DOLLAR: + this.state = 9416; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1337,this._ctx); + if(la_===1) { + this.state = 9413; + this.table_name(); + this.state = 9414; + this.match(TSqlParser.DOT); + + } + this.state = 9423; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1338,this._ctx); + switch(la_) { + case 1: + this.state = 9418; + localctx.column_name = this.id(); + break; + + case 2: + this.state = 9419; + this.match(TSqlParser.DOLLAR); + this.state = 9420; + this.match(TSqlParser.IDENTITY); + break; + + case 3: + this.state = 9421; + this.match(TSqlParser.DOLLAR); + this.state = 9422; + this.match(TSqlParser.ROWGUID); + break; + + } + break; + case TSqlParser.NULL: + this.state = 9425; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9429; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1340,this._ctx); + if(la_===1) { + this.state = 9428; + this.as_column_alias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Udt_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_udt_elem; + this.udt_column_name = null; // IdContext + this.non_static_attr = null; // IdContext + this.static_attr = null; // IdContext + return this; +} + +Udt_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Udt_elemContext.prototype.constructor = Udt_elemContext; + +Udt_elemContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Udt_elemContext.prototype.udt_method_arguments = function() { + return this.getTypedRuleContext(Udt_method_argumentsContext,0); +}; + +Udt_elemContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Udt_elemContext.prototype.as_column_alias = function() { + return this.getTypedRuleContext(As_column_aliasContext,0); +}; + +Udt_elemContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Udt_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUdt_elem(this); + } +}; + +Udt_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUdt_elem(this); + } +}; + +Udt_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUdt_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Udt_elemContext = Udt_elemContext; + +TSqlParser.prototype.udt_elem = function() { + + var localctx = new Udt_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 792, TSqlParser.RULE_udt_elem); + try { + this.state = 9448; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1344,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9431; + localctx.udt_column_name = this.id(); + this.state = 9432; + this.match(TSqlParser.DOT); + this.state = 9433; + localctx.non_static_attr = this.id(); + this.state = 9434; + this.udt_method_arguments(); + this.state = 9436; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1341,this._ctx); + if(la_===1) { + this.state = 9435; + this.as_column_alias(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9438; + localctx.udt_column_name = this.id(); + this.state = 9439; + this.match(TSqlParser.COLON); + this.state = 9440; + this.match(TSqlParser.COLON); + this.state = 9441; + localctx.static_attr = this.id(); + this.state = 9443; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1342,this._ctx); + if(la_===1) { + this.state = 9442; + this.udt_method_arguments(); + + } + this.state = 9446; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1343,this._ctx); + if(la_===1) { + this.state = 9445; + this.as_column_alias(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Expression_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_expression_elem; + this.eq = null; // Token + return this; +} + +Expression_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Expression_elemContext.prototype.constructor = Expression_elemContext; + +Expression_elemContext.prototype.column_alias = function() { + return this.getTypedRuleContext(Column_aliasContext,0); +}; + +Expression_elemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Expression_elemContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Expression_elemContext.prototype.as_column_alias = function() { + return this.getTypedRuleContext(As_column_aliasContext,0); +}; + +Expression_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExpression_elem(this); + } +}; + +Expression_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExpression_elem(this); + } +}; + +Expression_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExpression_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Expression_elemContext = Expression_elemContext; + +TSqlParser.prototype.expression_elem = function() { + + var localctx = new Expression_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 794, TSqlParser.RULE_expression_elem); + try { + this.state = 9458; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1346,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9450; + this.column_alias(); + this.state = 9451; + localctx.eq = this.match(TSqlParser.EQUAL); + this.state = 9452; + this.expression(0); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9454; + this.expression(0); + this.state = 9456; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1345,this._ctx); + if(la_===1) { + this.state = 9455; + this.as_column_alias(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Select_list_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_select_list_elem; + return this; +} + +Select_list_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Select_list_elemContext.prototype.constructor = Select_list_elemContext; + +Select_list_elemContext.prototype.asterisk = function() { + return this.getTypedRuleContext(AsteriskContext,0); +}; + +Select_list_elemContext.prototype.column_elem = function() { + return this.getTypedRuleContext(Column_elemContext,0); +}; + +Select_list_elemContext.prototype.udt_elem = function() { + return this.getTypedRuleContext(Udt_elemContext,0); +}; + +Select_list_elemContext.prototype.expression_elem = function() { + return this.getTypedRuleContext(Expression_elemContext,0); +}; + +Select_list_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSelect_list_elem(this); + } +}; + +Select_list_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSelect_list_elem(this); + } +}; + +Select_list_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSelect_list_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Select_list_elemContext = Select_list_elemContext; + +TSqlParser.prototype.select_list_elem = function() { + + var localctx = new Select_list_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 796, TSqlParser.RULE_select_list_elem); + try { + this.state = 9464; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1347,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9460; + this.asterisk(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9461; + this.column_elem(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9462; + this.udt_elem(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9463; + this.expression_elem(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_sourcesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_sources; + return this; +} + +Table_sourcesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_sourcesContext.prototype.constructor = Table_sourcesContext; + +Table_sourcesContext.prototype.table_source = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_sourceContext); + } else { + return this.getTypedRuleContext(Table_sourceContext,i); + } +}; + +Table_sourcesContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Table_sourcesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_sources(this); + } +}; + +Table_sourcesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_sources(this); + } +}; + +Table_sourcesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_sources(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_sourcesContext = Table_sourcesContext; + +TSqlParser.prototype.table_sources = function() { + + var localctx = new Table_sourcesContext(this, this._ctx, this.state); + this.enterRule(localctx, 798, TSqlParser.RULE_table_sources); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9466; + this.table_source(); + this.state = 9471; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1348,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9467; + this.match(TSqlParser.COMMA); + this.state = 9468; + this.table_source(); + } + this.state = 9473; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1348,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_sourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_source; + return this; +} + +Table_sourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_sourceContext.prototype.constructor = Table_sourceContext; + +Table_sourceContext.prototype.table_source_item_joined = function() { + return this.getTypedRuleContext(Table_source_item_joinedContext,0); +}; + +Table_sourceContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Table_sourceContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Table_sourceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_source(this); + } +}; + +Table_sourceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_source(this); + } +}; + +Table_sourceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_source(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_sourceContext = Table_sourceContext; + +TSqlParser.prototype.table_source = function() { + + var localctx = new Table_sourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 800, TSqlParser.RULE_table_source); + try { + this.state = 9479; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1349,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9474; + this.table_source_item_joined(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9475; + this.match(TSqlParser.LR_BRACKET); + this.state = 9476; + this.table_source_item_joined(); + this.state = 9477; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_source_item_joinedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_source_item_joined; + return this; +} + +Table_source_item_joinedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_source_item_joinedContext.prototype.constructor = Table_source_item_joinedContext; + +Table_source_item_joinedContext.prototype.table_source_item = function() { + return this.getTypedRuleContext(Table_source_itemContext,0); +}; + +Table_source_item_joinedContext.prototype.join_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Join_partContext); + } else { + return this.getTypedRuleContext(Join_partContext,i); + } +}; + +Table_source_item_joinedContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_source_item_joined(this); + } +}; + +Table_source_item_joinedContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_source_item_joined(this); + } +}; + +Table_source_item_joinedContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_source_item_joined(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_source_item_joinedContext = Table_source_item_joinedContext; + +TSqlParser.prototype.table_source_item_joined = function() { + + var localctx = new Table_source_item_joinedContext(this, this._ctx, this.state); + this.enterRule(localctx, 802, TSqlParser.RULE_table_source_item_joined); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9481; + this.table_source_item(); + this.state = 9485; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1350,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9482; + this.join_part(); + } + this.state = 9487; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1350,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_source_itemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_source_item; + return this; +} + +Table_source_itemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_source_itemContext.prototype.constructor = Table_source_itemContext; + +Table_source_itemContext.prototype.table_name_with_hint = function() { + return this.getTypedRuleContext(Table_name_with_hintContext,0); +}; + +Table_source_itemContext.prototype.as_table_alias = function() { + return this.getTypedRuleContext(As_table_aliasContext,0); +}; + +Table_source_itemContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Table_source_itemContext.prototype.rowset_function = function() { + return this.getTypedRuleContext(Rowset_functionContext,0); +}; + +Table_source_itemContext.prototype.derived_table = function() { + return this.getTypedRuleContext(Derived_tableContext,0); +}; + +Table_source_itemContext.prototype.column_alias_list = function() { + return this.getTypedRuleContext(Column_alias_listContext,0); +}; + +Table_source_itemContext.prototype.change_table = function() { + return this.getTypedRuleContext(Change_tableContext,0); +}; + +Table_source_itemContext.prototype.function_call = function() { + return this.getTypedRuleContext(Function_callContext,0); +}; + +Table_source_itemContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Table_source_itemContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Table_source_itemContext.prototype.open_xml = function() { + return this.getTypedRuleContext(Open_xmlContext,0); +}; + +Table_source_itemContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Table_source_itemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_source_item(this); + } +}; + +Table_source_itemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_source_item(this); + } +}; + +Table_source_itemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_source_item(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_source_itemContext = Table_source_itemContext; + +TSqlParser.prototype.table_source_item = function() { + + var localctx = new Table_source_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 804, TSqlParser.RULE_table_source_item); + try { + this.state = 9537; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1362,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9488; + this.table_name_with_hint(); + this.state = 9490; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1351,this._ctx); + if(la_===1) { + this.state = 9489; + this.as_table_alias(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9492; + this.full_table_name(); + this.state = 9494; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1352,this._ctx); + if(la_===1) { + this.state = 9493; + this.as_table_alias(); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9496; + this.rowset_function(); + this.state = 9498; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1353,this._ctx); + if(la_===1) { + this.state = 9497; + this.as_table_alias(); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9500; + this.derived_table(); + this.state = 9505; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1355,this._ctx); + if(la_===1) { + this.state = 9501; + this.as_table_alias(); + this.state = 9503; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1354,this._ctx); + if(la_===1) { + this.state = 9502; + this.column_alias_list(); + + } + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9507; + this.change_table(); + this.state = 9508; + this.as_table_alias(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 9510; + this.function_call(); + this.state = 9515; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1357,this._ctx); + if(la_===1) { + this.state = 9511; + this.as_table_alias(); + this.state = 9513; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1356,this._ctx); + if(la_===1) { + this.state = 9512; + this.column_alias_list(); + + } + + } + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 9517; + this.match(TSqlParser.LOCAL_ID); + this.state = 9519; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1358,this._ctx); + if(la_===1) { + this.state = 9518; + this.as_table_alias(); + + } + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 9521; + this.match(TSqlParser.LOCAL_ID); + this.state = 9522; + this.match(TSqlParser.DOT); + this.state = 9523; + this.function_call(); + this.state = 9528; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1360,this._ctx); + if(la_===1) { + this.state = 9524; + this.as_table_alias(); + this.state = 9526; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1359,this._ctx); + if(la_===1) { + this.state = 9525; + this.column_alias_list(); + + } + + } + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 9530; + this.open_xml(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 9531; + this.match(TSqlParser.COLON); + this.state = 9532; + this.match(TSqlParser.COLON); + this.state = 9533; + this.function_call(); + this.state = 9535; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1361,this._ctx); + if(la_===1) { + this.state = 9534; + this.as_table_alias(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Open_xmlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_open_xml; + return this; +} + +Open_xmlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Open_xmlContext.prototype.constructor = Open_xmlContext; + +Open_xmlContext.prototype.OPENXML = function() { + return this.getToken(TSqlParser.OPENXML, 0); +}; + +Open_xmlContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Open_xmlContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Open_xmlContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Open_xmlContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Open_xmlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Open_xmlContext.prototype.schema_declaration = function() { + return this.getTypedRuleContext(Schema_declarationContext,0); +}; + +Open_xmlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOpen_xml(this); + } +}; + +Open_xmlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOpen_xml(this); + } +}; + +Open_xmlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOpen_xml(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Open_xmlContext = Open_xmlContext; + +TSqlParser.prototype.open_xml = function() { + + var localctx = new Open_xmlContext(this, this._ctx, this.state); + this.enterRule(localctx, 806, TSqlParser.RULE_open_xml); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9539; + this.match(TSqlParser.OPENXML); + this.state = 9540; + this.match(TSqlParser.LR_BRACKET); + this.state = 9541; + this.expression(0); + this.state = 9542; + this.match(TSqlParser.COMMA); + this.state = 9543; + this.expression(0); + this.state = 9546; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9544; + this.match(TSqlParser.COMMA); + this.state = 9545; + this.expression(0); + } + + this.state = 9548; + this.match(TSqlParser.RR_BRACKET); + this.state = 9554; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1364,this._ctx); + if(la_===1) { + this.state = 9549; + this.match(TSqlParser.WITH); + this.state = 9550; + this.match(TSqlParser.LR_BRACKET); + this.state = 9551; + this.schema_declaration(); + this.state = 9552; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Schema_declarationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_schema_declaration; + return this; +} + +Schema_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Schema_declarationContext.prototype.constructor = Schema_declarationContext; + +Schema_declarationContext.prototype.column_declaration = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_declarationContext); + } else { + return this.getTypedRuleContext(Column_declarationContext,i); + } +}; + +Schema_declarationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Schema_declarationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSchema_declaration(this); + } +}; + +Schema_declarationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSchema_declaration(this); + } +}; + +Schema_declarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSchema_declaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Schema_declarationContext = Schema_declarationContext; + +TSqlParser.prototype.schema_declaration = function() { + + var localctx = new Schema_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 808, TSqlParser.RULE_schema_declaration); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9556; + this.column_declaration(); + this.state = 9561; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9557; + this.match(TSqlParser.COMMA); + this.state = 9558; + this.column_declaration(); + this.state = 9563; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_declarationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_declaration; + return this; +} + +Column_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_declarationContext.prototype.constructor = Column_declarationContext; + +Column_declarationContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Column_declarationContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Column_declarationContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Column_declarationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_declaration(this); + } +}; + +Column_declarationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_declaration(this); + } +}; + +Column_declarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_declaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_declarationContext = Column_declarationContext; + +TSqlParser.prototype.column_declaration = function() { + + var localctx = new Column_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 810, TSqlParser.RULE_column_declaration); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9564; + this.match(TSqlParser.ID); + this.state = 9565; + this.data_type(); + this.state = 9567; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.STRING) { + this.state = 9566; + this.match(TSqlParser.STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Change_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_change_table; + return this; +} + +Change_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Change_tableContext.prototype.constructor = Change_tableContext; + +Change_tableContext.prototype.CHANGETABLE = function() { + return this.getToken(TSqlParser.CHANGETABLE, 0); +}; + +Change_tableContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Change_tableContext.prototype.CHANGES = function() { + return this.getToken(TSqlParser.CHANGES, 0); +}; + +Change_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Change_tableContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Change_tableContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Change_tableContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Change_tableContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Change_tableContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Change_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterChange_table(this); + } +}; + +Change_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitChange_table(this); + } +}; + +Change_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitChange_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Change_tableContext = Change_tableContext; + +TSqlParser.prototype.change_table = function() { + + var localctx = new Change_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 812, TSqlParser.RULE_change_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9569; + this.match(TSqlParser.CHANGETABLE); + this.state = 9570; + this.match(TSqlParser.LR_BRACKET); + this.state = 9571; + this.match(TSqlParser.CHANGES); + this.state = 9572; + this.table_name(); + this.state = 9573; + this.match(TSqlParser.COMMA); + this.state = 9574; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NULL || _la===TSqlParser.LOCAL_ID || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9575; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Join_partContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_join_part; + this.join_type = null; // Token + this.join_hint = null; // Token + return this; +} + +Join_partContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Join_partContext.prototype.constructor = Join_partContext; + +Join_partContext.prototype.JOIN = function() { + return this.getToken(TSqlParser.JOIN, 0); +}; + +Join_partContext.prototype.table_source = function() { + return this.getTypedRuleContext(Table_sourceContext,0); +}; + +Join_partContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Join_partContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Join_partContext.prototype.LEFT = function() { + return this.getToken(TSqlParser.LEFT, 0); +}; + +Join_partContext.prototype.RIGHT = function() { + return this.getToken(TSqlParser.RIGHT, 0); +}; + +Join_partContext.prototype.FULL = function() { + return this.getToken(TSqlParser.FULL, 0); +}; + +Join_partContext.prototype.INNER = function() { + return this.getToken(TSqlParser.INNER, 0); +}; + +Join_partContext.prototype.OUTER = function() { + return this.getToken(TSqlParser.OUTER, 0); +}; + +Join_partContext.prototype.LOOP = function() { + return this.getToken(TSqlParser.LOOP, 0); +}; + +Join_partContext.prototype.HASH = function() { + return this.getToken(TSqlParser.HASH, 0); +}; + +Join_partContext.prototype.MERGE = function() { + return this.getToken(TSqlParser.MERGE, 0); +}; + +Join_partContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Join_partContext.prototype.CROSS = function() { + return this.getToken(TSqlParser.CROSS, 0); +}; + +Join_partContext.prototype.APPLY = function() { + return this.getToken(TSqlParser.APPLY, 0); +}; + +Join_partContext.prototype.PIVOT = function() { + return this.getToken(TSqlParser.PIVOT, 0); +}; + +Join_partContext.prototype.pivot_clause = function() { + return this.getTypedRuleContext(Pivot_clauseContext,0); +}; + +Join_partContext.prototype.as_table_alias = function() { + return this.getTypedRuleContext(As_table_aliasContext,0); +}; + +Join_partContext.prototype.UNPIVOT = function() { + return this.getToken(TSqlParser.UNPIVOT, 0); +}; + +Join_partContext.prototype.unpivot_clause = function() { + return this.getTypedRuleContext(Unpivot_clauseContext,0); +}; + +Join_partContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterJoin_part(this); + } +}; + +Join_partContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitJoin_part(this); + } +}; + +Join_partContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitJoin_part(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Join_partContext = Join_partContext; + +TSqlParser.prototype.join_part = function() { + + var localctx = new Join_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 814, TSqlParser.RULE_join_part); + var _la = 0; // Token type + try { + this.state = 9611; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1371,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9584; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.INNER: + case TSqlParser.JOIN: + case TSqlParser.MERGE: + case TSqlParser.HASH: + case TSqlParser.LOOP: + case TSqlParser.REMOTE: + this.state = 9578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INNER) { + this.state = 9577; + this.match(TSqlParser.INNER); + } + + break; + case TSqlParser.FULL: + case TSqlParser.LEFT: + case TSqlParser.RIGHT: + this.state = 9580; + localctx.join_type = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.FULL || _la===TSqlParser.LEFT || _la===TSqlParser.RIGHT)) { + localctx.join_type = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9582; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OUTER) { + this.state = 9581; + this.match(TSqlParser.OUTER); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9587; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MERGE || _la===TSqlParser.HASH || _la===TSqlParser.LOOP || _la===TSqlParser.REMOTE) { + this.state = 9586; + localctx.join_hint = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.MERGE || _la===TSqlParser.HASH || _la===TSqlParser.LOOP || _la===TSqlParser.REMOTE)) { + localctx.join_hint = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 9589; + this.match(TSqlParser.JOIN); + this.state = 9590; + this.table_source(); + this.state = 9591; + this.match(TSqlParser.ON); + this.state = 9592; + this.search_condition(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9594; + this.match(TSqlParser.CROSS); + this.state = 9595; + this.match(TSqlParser.JOIN); + this.state = 9596; + this.table_source(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9597; + this.match(TSqlParser.CROSS); + this.state = 9598; + this.match(TSqlParser.APPLY); + this.state = 9599; + this.table_source(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9600; + this.match(TSqlParser.OUTER); + this.state = 9601; + this.match(TSqlParser.APPLY); + this.state = 9602; + this.table_source(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9603; + this.match(TSqlParser.PIVOT); + this.state = 9604; + this.pivot_clause(); + this.state = 9605; + this.as_table_alias(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 9607; + this.match(TSqlParser.UNPIVOT); + this.state = 9608; + this.unpivot_clause(); + this.state = 9609; + this.as_table_alias(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Pivot_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_pivot_clause; + return this; +} + +Pivot_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Pivot_clauseContext.prototype.constructor = Pivot_clauseContext; + +Pivot_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Pivot_clauseContext.prototype.aggregate_windowed_function = function() { + return this.getTypedRuleContext(Aggregate_windowed_functionContext,0); +}; + +Pivot_clauseContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Pivot_clauseContext.prototype.full_column_name = function() { + return this.getTypedRuleContext(Full_column_nameContext,0); +}; + +Pivot_clauseContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +Pivot_clauseContext.prototype.column_alias_list = function() { + return this.getTypedRuleContext(Column_alias_listContext,0); +}; + +Pivot_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Pivot_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPivot_clause(this); + } +}; + +Pivot_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPivot_clause(this); + } +}; + +Pivot_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPivot_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Pivot_clauseContext = Pivot_clauseContext; + +TSqlParser.prototype.pivot_clause = function() { + + var localctx = new Pivot_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 816, TSqlParser.RULE_pivot_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9613; + this.match(TSqlParser.LR_BRACKET); + this.state = 9614; + this.aggregate_windowed_function(); + this.state = 9615; + this.match(TSqlParser.FOR); + this.state = 9616; + this.full_column_name(); + this.state = 9617; + this.match(TSqlParser.IN); + this.state = 9618; + this.column_alias_list(); + this.state = 9619; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Unpivot_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_unpivot_clause; + return this; +} + +Unpivot_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Unpivot_clauseContext.prototype.constructor = Unpivot_clauseContext; + +Unpivot_clauseContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Unpivot_clauseContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Unpivot_clauseContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Unpivot_clauseContext.prototype.full_column_name = function() { + return this.getTypedRuleContext(Full_column_nameContext,0); +}; + +Unpivot_clauseContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +Unpivot_clauseContext.prototype.full_column_name_list = function() { + return this.getTypedRuleContext(Full_column_name_listContext,0); +}; + +Unpivot_clauseContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Unpivot_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUnpivot_clause(this); + } +}; + +Unpivot_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUnpivot_clause(this); + } +}; + +Unpivot_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUnpivot_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Unpivot_clauseContext = Unpivot_clauseContext; + +TSqlParser.prototype.unpivot_clause = function() { + + var localctx = new Unpivot_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 818, TSqlParser.RULE_unpivot_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9621; + this.match(TSqlParser.LR_BRACKET); + this.state = 9622; + this.expression(0); + this.state = 9623; + this.match(TSqlParser.FOR); + this.state = 9624; + this.full_column_name(); + this.state = 9625; + this.match(TSqlParser.IN); + this.state = 9626; + this.match(TSqlParser.LR_BRACKET); + this.state = 9627; + this.full_column_name_list(); + this.state = 9628; + this.match(TSqlParser.RR_BRACKET); + this.state = 9629; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Full_column_name_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_full_column_name_list; + return this; +} + +Full_column_name_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Full_column_name_listContext.prototype.constructor = Full_column_name_listContext; + +Full_column_name_listContext.prototype.full_column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Full_column_nameContext); + } else { + return this.getTypedRuleContext(Full_column_nameContext,i); + } +}; + +Full_column_name_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Full_column_name_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFull_column_name_list(this); + } +}; + +Full_column_name_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFull_column_name_list(this); + } +}; + +Full_column_name_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFull_column_name_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Full_column_name_listContext = Full_column_name_listContext; + +TSqlParser.prototype.full_column_name_list = function() { + + var localctx = new Full_column_name_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 820, TSqlParser.RULE_full_column_name_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9631; + this.full_column_name(); + this.state = 9636; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9632; + this.match(TSqlParser.COMMA); + this.state = 9633; + this.full_column_name(); + this.state = 9638; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_name_with_hintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_name_with_hint; + return this; +} + +Table_name_with_hintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_name_with_hintContext.prototype.constructor = Table_name_with_hintContext; + +Table_name_with_hintContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Table_name_with_hintContext.prototype.with_table_hints = function() { + return this.getTypedRuleContext(With_table_hintsContext,0); +}; + +Table_name_with_hintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_name_with_hint(this); + } +}; + +Table_name_with_hintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_name_with_hint(this); + } +}; + +Table_name_with_hintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_name_with_hint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_name_with_hintContext = Table_name_with_hintContext; + +TSqlParser.prototype.table_name_with_hint = function() { + + var localctx = new Table_name_with_hintContext(this, this._ctx, this.state); + this.enterRule(localctx, 822, TSqlParser.RULE_table_name_with_hint); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9639; + this.table_name(); + this.state = 9641; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1373,this._ctx); + if(la_===1) { + this.state = 9640; + this.with_table_hints(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Rowset_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_rowset_function; + this.provider_name = null; // Token + this.connectionString = null; // Token + this.sql = null; // Token + this.data_file = null; // Token + return this; +} + +Rowset_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Rowset_functionContext.prototype.constructor = Rowset_functionContext; + +Rowset_functionContext.prototype.OPENROWSET = function() { + return this.getToken(TSqlParser.OPENROWSET, 0); +}; + +Rowset_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Rowset_functionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Rowset_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Rowset_functionContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Rowset_functionContext.prototype.BULK = function() { + return this.getToken(TSqlParser.BULK, 0); +}; + +Rowset_functionContext.prototype.bulk_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Bulk_optionContext); + } else { + return this.getTypedRuleContext(Bulk_optionContext,i); + } +}; + +Rowset_functionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Rowset_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRowset_function(this); + } +}; + +Rowset_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRowset_function(this); + } +}; + +Rowset_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRowset_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Rowset_functionContext = Rowset_functionContext; + +TSqlParser.prototype.rowset_function = function() { + + var localctx = new Rowset_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 824, TSqlParser.RULE_rowset_function); + var _la = 0; // Token type + try { + this.state = 9669; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1376,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9643; + this.match(TSqlParser.OPENROWSET); + this.state = 9644; + this.match(TSqlParser.LR_BRACKET); + this.state = 9645; + localctx.provider_name = this.match(TSqlParser.STRING); + this.state = 9646; + this.match(TSqlParser.COMMA); + this.state = 9647; + localctx.connectionString = this.match(TSqlParser.STRING); + this.state = 9648; + this.match(TSqlParser.COMMA); + this.state = 9649; + localctx.sql = this.match(TSqlParser.STRING); + this.state = 9650; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9651; + this.match(TSqlParser.OPENROWSET); + this.state = 9652; + this.match(TSqlParser.LR_BRACKET); + this.state = 9653; + this.match(TSqlParser.BULK); + this.state = 9654; + localctx.data_file = this.match(TSqlParser.STRING); + this.state = 9655; + this.match(TSqlParser.COMMA); + this.state = 9665; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1375,this._ctx); + switch(la_) { + case 1: + this.state = 9656; + this.bulk_option(); + this.state = 9661; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9657; + this.match(TSqlParser.COMMA); + this.state = 9658; + this.bulk_option(); + this.state = 9663; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 9664; + this.id(); + break; + + } + this.state = 9667; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Bulk_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_bulk_option; + this.bulk_option_value = null; // Token + return this; +} + +Bulk_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Bulk_optionContext.prototype.constructor = Bulk_optionContext; + +Bulk_optionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Bulk_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Bulk_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Bulk_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Bulk_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBulk_option(this); + } +}; + +Bulk_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBulk_option(this); + } +}; + +Bulk_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBulk_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Bulk_optionContext = Bulk_optionContext; + +TSqlParser.prototype.bulk_option = function() { + + var localctx = new Bulk_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 826, TSqlParser.RULE_bulk_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9671; + this.id(); + this.state = 9672; + this.match(TSqlParser.EQUAL); + this.state = 9673; + localctx.bulk_option_value = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + localctx.bulk_option_value = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Derived_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_derived_table; + return this; +} + +Derived_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Derived_tableContext.prototype.constructor = Derived_tableContext; + +Derived_tableContext.prototype.subquery = function() { + return this.getTypedRuleContext(SubqueryContext,0); +}; + +Derived_tableContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Derived_tableContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Derived_tableContext.prototype.table_value_constructor = function() { + return this.getTypedRuleContext(Table_value_constructorContext,0); +}; + +Derived_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDerived_table(this); + } +}; + +Derived_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDerived_table(this); + } +}; + +Derived_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDerived_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Derived_tableContext = Derived_tableContext; + +TSqlParser.prototype.derived_table = function() { + + var localctx = new Derived_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 828, TSqlParser.RULE_derived_table); + try { + this.state = 9685; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1377,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9675; + this.subquery(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9676; + this.match(TSqlParser.LR_BRACKET); + this.state = 9677; + this.subquery(); + this.state = 9678; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9680; + this.table_value_constructor(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9681; + this.match(TSqlParser.LR_BRACKET); + this.state = 9682; + this.table_value_constructor(); + this.state = 9683; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Function_callContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_function_call; + return this; +} + +Function_callContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Function_callContext.prototype.constructor = Function_callContext; + + + +Function_callContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function CURRENT_USERContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CURRENT_USERContext.prototype = Object.create(Function_callContext.prototype); +CURRENT_USERContext.prototype.constructor = CURRENT_USERContext; + +TSqlParser.CURRENT_USERContext = CURRENT_USERContext; + +CURRENT_USERContext.prototype.CURRENT_USER = function() { + return this.getToken(TSqlParser.CURRENT_USER, 0); +}; +CURRENT_USERContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCURRENT_USER(this); + } +}; + +CURRENT_USERContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCURRENT_USER(this); + } +}; + +CURRENT_USERContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCURRENT_USER(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DATEADDContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DATEADDContext.prototype = Object.create(Function_callContext.prototype); +DATEADDContext.prototype.constructor = DATEADDContext; + +TSqlParser.DATEADDContext = DATEADDContext; + +DATEADDContext.prototype.DATEADD = function() { + return this.getToken(TSqlParser.DATEADD, 0); +}; + +DATEADDContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +DATEADDContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +DATEADDContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +DATEADDContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +DATEADDContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +DATEADDContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDATEADD(this); + } +}; + +DATEADDContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDATEADD(this); + } +}; + +DATEADDContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDATEADD(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CHECKSUMContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CHECKSUMContext.prototype = Object.create(Function_callContext.prototype); +CHECKSUMContext.prototype.constructor = CHECKSUMContext; + +TSqlParser.CHECKSUMContext = CHECKSUMContext; + +CHECKSUMContext.prototype.CHECKSUM = function() { + return this.getToken(TSqlParser.CHECKSUM, 0); +}; + +CHECKSUMContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +CHECKSUMContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +CHECKSUMContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +CHECKSUMContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCHECKSUM(this); + } +}; + +CHECKSUMContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCHECKSUM(this); + } +}; + +CHECKSUMContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCHECKSUM(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CURRENT_TIMESTAMPContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CURRENT_TIMESTAMPContext.prototype = Object.create(Function_callContext.prototype); +CURRENT_TIMESTAMPContext.prototype.constructor = CURRENT_TIMESTAMPContext; + +TSqlParser.CURRENT_TIMESTAMPContext = CURRENT_TIMESTAMPContext; + +CURRENT_TIMESTAMPContext.prototype.CURRENT_TIMESTAMP = function() { + return this.getToken(TSqlParser.CURRENT_TIMESTAMP, 0); +}; +CURRENT_TIMESTAMPContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCURRENT_TIMESTAMP(this); + } +}; + +CURRENT_TIMESTAMPContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCURRENT_TIMESTAMP(this); + } +}; + +CURRENT_TIMESTAMPContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCURRENT_TIMESTAMP(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function BINARY_CHECKSUMContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +BINARY_CHECKSUMContext.prototype = Object.create(Function_callContext.prototype); +BINARY_CHECKSUMContext.prototype.constructor = BINARY_CHECKSUMContext; + +TSqlParser.BINARY_CHECKSUMContext = BINARY_CHECKSUMContext; + +BINARY_CHECKSUMContext.prototype.BINARY_CHECKSUM = function() { + return this.getToken(TSqlParser.BINARY_CHECKSUM, 0); +}; + +BINARY_CHECKSUMContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +BINARY_CHECKSUMContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +BINARY_CHECKSUMContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +BINARY_CHECKSUMContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBINARY_CHECKSUM(this); + } +}; + +BINARY_CHECKSUMContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBINARY_CHECKSUM(this); + } +}; + +BINARY_CHECKSUMContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBINARY_CHECKSUM(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IFFContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IFFContext.prototype = Object.create(Function_callContext.prototype); +IFFContext.prototype.constructor = IFFContext; + +TSqlParser.IFFContext = IFFContext; + +IFFContext.prototype.IIF = function() { + return this.getToken(TSqlParser.IIF, 0); +}; + +IFFContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +IFFContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +IFFContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +IFFContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +IFFContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +IFFContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIFF(this); + } +}; + +IFFContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIFF(this); + } +}; + +IFFContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIFF(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SYSTEM_USERContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SYSTEM_USERContext.prototype = Object.create(Function_callContext.prototype); +SYSTEM_USERContext.prototype.constructor = SYSTEM_USERContext; + +TSqlParser.SYSTEM_USERContext = SYSTEM_USERContext; + +SYSTEM_USERContext.prototype.SYSTEM_USER = function() { + return this.getToken(TSqlParser.SYSTEM_USER, 0); +}; +SYSTEM_USERContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSYSTEM_USER(this); + } +}; + +SYSTEM_USERContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSYSTEM_USER(this); + } +}; + +SYSTEM_USERContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSYSTEM_USER(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NULLIFContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NULLIFContext.prototype = Object.create(Function_callContext.prototype); +NULLIFContext.prototype.constructor = NULLIFContext; + +TSqlParser.NULLIFContext = NULLIFContext; + +NULLIFContext.prototype.NULLIF = function() { + return this.getToken(TSqlParser.NULLIF, 0); +}; + +NULLIFContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +NULLIFContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +NULLIFContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +NULLIFContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +NULLIFContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNULLIF(this); + } +}; + +NULLIFContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNULLIF(this); + } +}; + +NULLIFContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNULLIF(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SESSION_USERContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SESSION_USERContext.prototype = Object.create(Function_callContext.prototype); +SESSION_USERContext.prototype.constructor = SESSION_USERContext; + +TSqlParser.SESSION_USERContext = SESSION_USERContext; + +SESSION_USERContext.prototype.SESSION_USER = function() { + return this.getToken(TSqlParser.SESSION_USER, 0); +}; +SESSION_USERContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSESSION_USER(this); + } +}; + +SESSION_USERContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSESSION_USER(this); + } +}; + +SESSION_USERContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSESSION_USER(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CONVERTContext(parser, ctx) { + Function_callContext.call(this, parser); + this.convert_data_type = null; // Data_typeContext; + this.convert_expression = null; // ExpressionContext; + this.style = null; // ExpressionContext; + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CONVERTContext.prototype = Object.create(Function_callContext.prototype); +CONVERTContext.prototype.constructor = CONVERTContext; + +TSqlParser.CONVERTContext = CONVERTContext; + +CONVERTContext.prototype.CONVERT = function() { + return this.getToken(TSqlParser.CONVERT, 0); +}; + +CONVERTContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +CONVERTContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +CONVERTContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +CONVERTContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +CONVERTContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; +CONVERTContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCONVERT(this); + } +}; + +CONVERTContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCONVERT(this); + } +}; + +CONVERTContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCONVERT(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function XML_DATA_TYPE_FUNCContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +XML_DATA_TYPE_FUNCContext.prototype = Object.create(Function_callContext.prototype); +XML_DATA_TYPE_FUNCContext.prototype.constructor = XML_DATA_TYPE_FUNCContext; + +TSqlParser.XML_DATA_TYPE_FUNCContext = XML_DATA_TYPE_FUNCContext; + +XML_DATA_TYPE_FUNCContext.prototype.xml_data_type_methods = function() { + return this.getTypedRuleContext(Xml_data_type_methodsContext,0); +}; +XML_DATA_TYPE_FUNCContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXML_DATA_TYPE_FUNC(this); + } +}; + +XML_DATA_TYPE_FUNCContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXML_DATA_TYPE_FUNC(this); + } +}; + +XML_DATA_TYPE_FUNCContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXML_DATA_TYPE_FUNC(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function COALESCEContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +COALESCEContext.prototype = Object.create(Function_callContext.prototype); +COALESCEContext.prototype.constructor = COALESCEContext; + +TSqlParser.COALESCEContext = COALESCEContext; + +COALESCEContext.prototype.COALESCE = function() { + return this.getToken(TSqlParser.COALESCE, 0); +}; + +COALESCEContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +COALESCEContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +COALESCEContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +COALESCEContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCOALESCE(this); + } +}; + +COALESCEContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCOALESCE(this); + } +}; + +COALESCEContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCOALESCE(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CASTContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CASTContext.prototype = Object.create(Function_callContext.prototype); +CASTContext.prototype.constructor = CASTContext; + +TSqlParser.CASTContext = CASTContext; + +CASTContext.prototype.CAST = function() { + return this.getToken(TSqlParser.CAST, 0); +}; + +CASTContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +CASTContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +CASTContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +CASTContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +CASTContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +CASTContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCAST(this); + } +}; + +CASTContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCAST(this); + } +}; + +CASTContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCAST(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MIN_ACTIVE_ROWVERSIONContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MIN_ACTIVE_ROWVERSIONContext.prototype = Object.create(Function_callContext.prototype); +MIN_ACTIVE_ROWVERSIONContext.prototype.constructor = MIN_ACTIVE_ROWVERSIONContext; + +TSqlParser.MIN_ACTIVE_ROWVERSIONContext = MIN_ACTIVE_ROWVERSIONContext; + +MIN_ACTIVE_ROWVERSIONContext.prototype.MIN_ACTIVE_ROWVERSION = function() { + return this.getToken(TSqlParser.MIN_ACTIVE_ROWVERSION, 0); +}; +MIN_ACTIVE_ROWVERSIONContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMIN_ACTIVE_ROWVERSION(this); + } +}; + +MIN_ACTIVE_ROWVERSIONContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMIN_ACTIVE_ROWVERSION(this); + } +}; + +MIN_ACTIVE_ROWVERSIONContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMIN_ACTIVE_ROWVERSION(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SCALAR_FUNCTIONContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SCALAR_FUNCTIONContext.prototype = Object.create(Function_callContext.prototype); +SCALAR_FUNCTIONContext.prototype.constructor = SCALAR_FUNCTIONContext; + +TSqlParser.SCALAR_FUNCTIONContext = SCALAR_FUNCTIONContext; + +SCALAR_FUNCTIONContext.prototype.scalar_function_name = function() { + return this.getTypedRuleContext(Scalar_function_nameContext,0); +}; + +SCALAR_FUNCTIONContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +SCALAR_FUNCTIONContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +SCALAR_FUNCTIONContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; +SCALAR_FUNCTIONContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSCALAR_FUNCTION(this); + } +}; + +SCALAR_FUNCTIONContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSCALAR_FUNCTION(this); + } +}; + +SCALAR_FUNCTIONContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSCALAR_FUNCTION(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DATEPARTContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DATEPARTContext.prototype = Object.create(Function_callContext.prototype); +DATEPARTContext.prototype.constructor = DATEPARTContext; + +TSqlParser.DATEPARTContext = DATEPARTContext; + +DATEPARTContext.prototype.DATEPART = function() { + return this.getToken(TSqlParser.DATEPART, 0); +}; + +DATEPARTContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +DATEPARTContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +DATEPARTContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +DATEPARTContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +DATEPARTContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +DATEPARTContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDATEPART(this); + } +}; + +DATEPARTContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDATEPART(this); + } +}; + +DATEPARTContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDATEPART(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function STUFFContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +STUFFContext.prototype = Object.create(Function_callContext.prototype); +STUFFContext.prototype.constructor = STUFFContext; + +TSqlParser.STUFFContext = STUFFContext; + +STUFFContext.prototype.STUFF = function() { + return this.getToken(TSqlParser.STUFF, 0); +}; + +STUFFContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +STUFFContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +STUFFContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +STUFFContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +STUFFContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +STUFFContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSTUFF(this); + } +}; + +STUFFContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSTUFF(this); + } +}; + +STUFFContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSTUFF(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AGGREGATE_WINDOWED_FUNCContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AGGREGATE_WINDOWED_FUNCContext.prototype = Object.create(Function_callContext.prototype); +AGGREGATE_WINDOWED_FUNCContext.prototype.constructor = AGGREGATE_WINDOWED_FUNCContext; + +TSqlParser.AGGREGATE_WINDOWED_FUNCContext = AGGREGATE_WINDOWED_FUNCContext; + +AGGREGATE_WINDOWED_FUNCContext.prototype.aggregate_windowed_function = function() { + return this.getTypedRuleContext(Aggregate_windowed_functionContext,0); +}; +AGGREGATE_WINDOWED_FUNCContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAGGREGATE_WINDOWED_FUNC(this); + } +}; + +AGGREGATE_WINDOWED_FUNCContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAGGREGATE_WINDOWED_FUNC(this); + } +}; + +AGGREGATE_WINDOWED_FUNCContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAGGREGATE_WINDOWED_FUNC(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IDENTITYContext(parser, ctx) { + Function_callContext.call(this, parser); + this.seed = null; // Token; + this.increment = null; // Token; + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IDENTITYContext.prototype = Object.create(Function_callContext.prototype); +IDENTITYContext.prototype.constructor = IDENTITYContext; + +TSqlParser.IDENTITYContext = IDENTITYContext; + +IDENTITYContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +IDENTITYContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +IDENTITYContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +IDENTITYContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +IDENTITYContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +IDENTITYContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + +IDENTITYContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIDENTITY(this); + } +}; + +IDENTITYContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIDENTITY(this); + } +}; + +IDENTITYContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIDENTITY(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RANKING_WINDOWED_FUNCContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RANKING_WINDOWED_FUNCContext.prototype = Object.create(Function_callContext.prototype); +RANKING_WINDOWED_FUNCContext.prototype.constructor = RANKING_WINDOWED_FUNCContext; + +TSqlParser.RANKING_WINDOWED_FUNCContext = RANKING_WINDOWED_FUNCContext; + +RANKING_WINDOWED_FUNCContext.prototype.ranking_windowed_function = function() { + return this.getTypedRuleContext(Ranking_windowed_functionContext,0); +}; +RANKING_WINDOWED_FUNCContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRANKING_WINDOWED_FUNC(this); + } +}; + +RANKING_WINDOWED_FUNCContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRANKING_WINDOWED_FUNC(this); + } +}; + +RANKING_WINDOWED_FUNCContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRANKING_WINDOWED_FUNC(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DATENAMEContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DATENAMEContext.prototype = Object.create(Function_callContext.prototype); +DATENAMEContext.prototype.constructor = DATENAMEContext; + +TSqlParser.DATENAMEContext = DATENAMEContext; + +DATENAMEContext.prototype.DATENAME = function() { + return this.getToken(TSqlParser.DATENAME, 0); +}; + +DATENAMEContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +DATENAMEContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +DATENAMEContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +DATENAMEContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +DATENAMEContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +DATENAMEContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDATENAME(this); + } +}; + +DATENAMEContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDATENAME(this); + } +}; + +DATENAMEContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDATENAME(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function GETUTCDATEContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +GETUTCDATEContext.prototype = Object.create(Function_callContext.prototype); +GETUTCDATEContext.prototype.constructor = GETUTCDATEContext; + +TSqlParser.GETUTCDATEContext = GETUTCDATEContext; + +GETUTCDATEContext.prototype.GETUTCDATE = function() { + return this.getToken(TSqlParser.GETUTCDATE, 0); +}; + +GETUTCDATEContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +GETUTCDATEContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +GETUTCDATEContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGETUTCDATE(this); + } +}; + +GETUTCDATEContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGETUTCDATE(this); + } +}; + +GETUTCDATEContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGETUTCDATE(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ANALYTIC_WINDOWED_FUNCContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ANALYTIC_WINDOWED_FUNCContext.prototype = Object.create(Function_callContext.prototype); +ANALYTIC_WINDOWED_FUNCContext.prototype.constructor = ANALYTIC_WINDOWED_FUNCContext; + +TSqlParser.ANALYTIC_WINDOWED_FUNCContext = ANALYTIC_WINDOWED_FUNCContext; + +ANALYTIC_WINDOWED_FUNCContext.prototype.analytic_windowed_function = function() { + return this.getTypedRuleContext(Analytic_windowed_functionContext,0); +}; +ANALYTIC_WINDOWED_FUNCContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterANALYTIC_WINDOWED_FUNC(this); + } +}; + +ANALYTIC_WINDOWED_FUNCContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitANALYTIC_WINDOWED_FUNC(this); + } +}; + +ANALYTIC_WINDOWED_FUNCContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitANALYTIC_WINDOWED_FUNC(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ISNULLContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ISNULLContext.prototype = Object.create(Function_callContext.prototype); +ISNULLContext.prototype.constructor = ISNULLContext; + +TSqlParser.ISNULLContext = ISNULLContext; + +ISNULLContext.prototype.ISNULL = function() { + return this.getToken(TSqlParser.ISNULL, 0); +}; + +ISNULLContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +ISNULLContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +ISNULLContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +ISNULLContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +ISNULLContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterISNULL(this); + } +}; + +ISNULLContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitISNULL(this); + } +}; + +ISNULLContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitISNULL(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DATEDIFFContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DATEDIFFContext.prototype = Object.create(Function_callContext.prototype); +DATEDIFFContext.prototype.constructor = DATEDIFFContext; + +TSqlParser.DATEDIFFContext = DATEDIFFContext; + +DATEDIFFContext.prototype.DATEDIFF = function() { + return this.getToken(TSqlParser.DATEDIFF, 0); +}; + +DATEDIFFContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +DATEDIFFContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +DATEDIFFContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +DATEDIFFContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +DATEDIFFContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +DATEDIFFContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDATEDIFF(this); + } +}; + +DATEDIFFContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDATEDIFF(this); + } +}; + +DATEDIFFContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDATEDIFF(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function GETDATEContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +GETDATEContext.prototype = Object.create(Function_callContext.prototype); +GETDATEContext.prototype.constructor = GETDATEContext; + +TSqlParser.GETDATEContext = GETDATEContext; + +GETDATEContext.prototype.GETDATE = function() { + return this.getToken(TSqlParser.GETDATE, 0); +}; + +GETDATEContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +GETDATEContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +GETDATEContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGETDATE(this); + } +}; + +GETDATEContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGETDATE(this); + } +}; + +GETDATEContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGETDATE(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function STRINGAGGContext(parser, ctx) { + Function_callContext.call(this, parser); + this.expr = null; // ExpressionContext; + this.separator = null; // ExpressionContext; + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +STRINGAGGContext.prototype = Object.create(Function_callContext.prototype); +STRINGAGGContext.prototype.constructor = STRINGAGGContext; + +TSqlParser.STRINGAGGContext = STRINGAGGContext; + +STRINGAGGContext.prototype.STRING_AGG = function() { + return this.getToken(TSqlParser.STRING_AGG, 0); +}; + +STRINGAGGContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +STRINGAGGContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +STRINGAGGContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +STRINGAGGContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +STRINGAGGContext.prototype.WITHIN = function() { + return this.getToken(TSqlParser.WITHIN, 0); +}; + +STRINGAGGContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +STRINGAGGContext.prototype.order_by_clause = function() { + return this.getTypedRuleContext(Order_by_clauseContext,0); +}; +STRINGAGGContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSTRINGAGG(this); + } +}; + +STRINGAGGContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSTRINGAGG(this); + } +}; + +STRINGAGGContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSTRINGAGG(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +TSqlParser.Function_callContext = Function_callContext; + +TSqlParser.prototype.function_call = function() { + + var localctx = new Function_callContext(this, this._ctx, this.state); + this.enterRule(localctx, 830, TSqlParser.RULE_function_call); + var _la = 0; // Token type + try { + this.state = 9833; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1383,this._ctx); + switch(la_) { + case 1: + localctx = new BINARY_CHECKSUMContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 9687; + this.match(TSqlParser.BINARY_CHECKSUM); + this.state = 9688; + this.match(TSqlParser.LR_BRACKET); + this.state = 9689; + this.match(TSqlParser.STAR); + this.state = 9690; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + localctx = new CASTContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 9691; + this.match(TSqlParser.CAST); + this.state = 9692; + this.match(TSqlParser.LR_BRACKET); + this.state = 9693; + this.expression(0); + this.state = 9694; + this.match(TSqlParser.AS); + this.state = 9695; + this.data_type(); + this.state = 9696; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + localctx = new CONVERTContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 9698; + this.match(TSqlParser.CONVERT); + this.state = 9699; + this.match(TSqlParser.LR_BRACKET); + this.state = 9700; + localctx.convert_data_type = this.data_type(); + this.state = 9701; + this.match(TSqlParser.COMMA); + this.state = 9702; + localctx.convert_expression = this.expression(0); + this.state = 9705; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9703; + this.match(TSqlParser.COMMA); + this.state = 9704; + localctx.style = this.expression(0); + } + + this.state = 9707; + this.match(TSqlParser.RR_BRACKET); + break; + + case 4: + localctx = new CHECKSUMContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 9709; + this.match(TSqlParser.CHECKSUM); + this.state = 9710; + this.match(TSqlParser.LR_BRACKET); + this.state = 9711; + this.match(TSqlParser.STAR); + this.state = 9712; + this.match(TSqlParser.RR_BRACKET); + break; + + case 5: + localctx = new COALESCEContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 9713; + this.match(TSqlParser.COALESCE); + this.state = 9714; + this.match(TSqlParser.LR_BRACKET); + this.state = 9715; + this.expression_list(); + this.state = 9716; + this.match(TSqlParser.RR_BRACKET); + break; + + case 6: + localctx = new CURRENT_TIMESTAMPContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 9718; + this.match(TSqlParser.CURRENT_TIMESTAMP); + break; + + case 7: + localctx = new CURRENT_USERContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 9719; + this.match(TSqlParser.CURRENT_USER); + break; + + case 8: + localctx = new DATEADDContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 9720; + this.match(TSqlParser.DATEADD); + this.state = 9721; + this.match(TSqlParser.LR_BRACKET); + this.state = 9722; + this.match(TSqlParser.ID); + this.state = 9723; + this.match(TSqlParser.COMMA); + this.state = 9724; + this.expression(0); + this.state = 9725; + this.match(TSqlParser.COMMA); + this.state = 9726; + this.expression(0); + this.state = 9727; + this.match(TSqlParser.RR_BRACKET); + break; + + case 9: + localctx = new DATEDIFFContext(this, localctx); + this.enterOuterAlt(localctx, 9); + this.state = 9729; + this.match(TSqlParser.DATEDIFF); + this.state = 9730; + this.match(TSqlParser.LR_BRACKET); + this.state = 9731; + this.match(TSqlParser.ID); + this.state = 9732; + this.match(TSqlParser.COMMA); + this.state = 9733; + this.expression(0); + this.state = 9734; + this.match(TSqlParser.COMMA); + this.state = 9735; + this.expression(0); + this.state = 9736; + this.match(TSqlParser.RR_BRACKET); + break; + + case 10: + localctx = new DATENAMEContext(this, localctx); + this.enterOuterAlt(localctx, 10); + this.state = 9738; + this.match(TSqlParser.DATENAME); + this.state = 9739; + this.match(TSqlParser.LR_BRACKET); + this.state = 9740; + this.match(TSqlParser.ID); + this.state = 9741; + this.match(TSqlParser.COMMA); + this.state = 9742; + this.expression(0); + this.state = 9743; + this.match(TSqlParser.RR_BRACKET); + break; + + case 11: + localctx = new DATEPARTContext(this, localctx); + this.enterOuterAlt(localctx, 11); + this.state = 9745; + this.match(TSqlParser.DATEPART); + this.state = 9746; + this.match(TSqlParser.LR_BRACKET); + this.state = 9747; + this.match(TSqlParser.ID); + this.state = 9748; + this.match(TSqlParser.COMMA); + this.state = 9749; + this.expression(0); + this.state = 9750; + this.match(TSqlParser.RR_BRACKET); + break; + + case 12: + localctx = new GETDATEContext(this, localctx); + this.enterOuterAlt(localctx, 12); + this.state = 9752; + this.match(TSqlParser.GETDATE); + this.state = 9753; + this.match(TSqlParser.LR_BRACKET); + this.state = 9754; + this.match(TSqlParser.RR_BRACKET); + break; + + case 13: + localctx = new GETUTCDATEContext(this, localctx); + this.enterOuterAlt(localctx, 13); + this.state = 9755; + this.match(TSqlParser.GETUTCDATE); + this.state = 9756; + this.match(TSqlParser.LR_BRACKET); + this.state = 9757; + this.match(TSqlParser.RR_BRACKET); + break; + + case 14: + localctx = new IDENTITYContext(this, localctx); + this.enterOuterAlt(localctx, 14); + this.state = 9758; + this.match(TSqlParser.IDENTITY); + this.state = 9759; + this.match(TSqlParser.LR_BRACKET); + this.state = 9760; + this.data_type(); + this.state = 9763; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1379,this._ctx); + if(la_===1) { + this.state = 9761; + this.match(TSqlParser.COMMA); + this.state = 9762; + localctx.seed = this.match(TSqlParser.DECIMAL); + + } + this.state = 9767; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9765; + this.match(TSqlParser.COMMA); + this.state = 9766; + localctx.increment = this.match(TSqlParser.DECIMAL); + } + + this.state = 9769; + this.match(TSqlParser.RR_BRACKET); + break; + + case 15: + localctx = new MIN_ACTIVE_ROWVERSIONContext(this, localctx); + this.enterOuterAlt(localctx, 15); + this.state = 9771; + this.match(TSqlParser.MIN_ACTIVE_ROWVERSION); + break; + + case 16: + localctx = new NULLIFContext(this, localctx); + this.enterOuterAlt(localctx, 16); + this.state = 9772; + this.match(TSqlParser.NULLIF); + this.state = 9773; + this.match(TSqlParser.LR_BRACKET); + this.state = 9774; + this.expression(0); + this.state = 9775; + this.match(TSqlParser.COMMA); + this.state = 9776; + this.expression(0); + this.state = 9777; + this.match(TSqlParser.RR_BRACKET); + break; + + case 17: + localctx = new STUFFContext(this, localctx); + this.enterOuterAlt(localctx, 17); + this.state = 9779; + this.match(TSqlParser.STUFF); + this.state = 9780; + this.match(TSqlParser.LR_BRACKET); + this.state = 9781; + this.expression(0); + this.state = 9782; + this.match(TSqlParser.COMMA); + this.state = 9783; + this.match(TSqlParser.DECIMAL); + this.state = 9784; + this.match(TSqlParser.COMMA); + this.state = 9785; + this.match(TSqlParser.DECIMAL); + this.state = 9786; + this.match(TSqlParser.COMMA); + this.state = 9787; + this.expression(0); + this.state = 9788; + this.match(TSqlParser.RR_BRACKET); + break; + + case 18: + localctx = new SESSION_USERContext(this, localctx); + this.enterOuterAlt(localctx, 18); + this.state = 9790; + this.match(TSqlParser.SESSION_USER); + break; + + case 19: + localctx = new SYSTEM_USERContext(this, localctx); + this.enterOuterAlt(localctx, 19); + this.state = 9791; + this.match(TSqlParser.SYSTEM_USER); + break; + + case 20: + localctx = new ISNULLContext(this, localctx); + this.enterOuterAlt(localctx, 20); + this.state = 9792; + this.match(TSqlParser.ISNULL); + this.state = 9793; + this.match(TSqlParser.LR_BRACKET); + this.state = 9794; + this.expression(0); + this.state = 9795; + this.match(TSqlParser.COMMA); + this.state = 9796; + this.expression(0); + this.state = 9797; + this.match(TSqlParser.RR_BRACKET); + break; + + case 21: + localctx = new XML_DATA_TYPE_FUNCContext(this, localctx); + this.enterOuterAlt(localctx, 21); + this.state = 9799; + this.xml_data_type_methods(); + break; + + case 22: + localctx = new IFFContext(this, localctx); + this.enterOuterAlt(localctx, 22); + this.state = 9800; + this.match(TSqlParser.IIF); + this.state = 9801; + this.match(TSqlParser.LR_BRACKET); + this.state = 9802; + this.search_condition(); + this.state = 9803; + this.match(TSqlParser.COMMA); + this.state = 9804; + this.expression(0); + this.state = 9805; + this.match(TSqlParser.COMMA); + this.state = 9806; + this.expression(0); + this.state = 9807; + this.match(TSqlParser.RR_BRACKET); + break; + + case 23: + localctx = new RANKING_WINDOWED_FUNCContext(this, localctx); + this.enterOuterAlt(localctx, 23); + this.state = 9809; + this.ranking_windowed_function(); + break; + + case 24: + localctx = new AGGREGATE_WINDOWED_FUNCContext(this, localctx); + this.enterOuterAlt(localctx, 24); + this.state = 9810; + this.aggregate_windowed_function(); + break; + + case 25: + localctx = new ANALYTIC_WINDOWED_FUNCContext(this, localctx); + this.enterOuterAlt(localctx, 25); + this.state = 9811; + this.analytic_windowed_function(); + break; + + case 26: + localctx = new SCALAR_FUNCTIONContext(this, localctx); + this.enterOuterAlt(localctx, 26); + this.state = 9812; + this.scalar_function_name(); + this.state = 9813; + this.match(TSqlParser.LR_BRACKET); + this.state = 9815; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 30)) & ~0x1f) == 0 && ((1 << (_la - 30)) & ((1 << (TSqlParser.BLOCKING_HIERARCHY - 30)) | (1 << (TSqlParser.CALLED - 30)) | (1 << (TSqlParser.CASE - 30)) | (1 << (TSqlParser.COALESCE - 30)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (TSqlParser.CONVERT - 69)) | (1 << (TSqlParser.CURRENT_TIMESTAMP - 69)) | (1 << (TSqlParser.CURRENT_USER - 69)) | (1 << (TSqlParser.DATA_COMPRESSION - 69)) | (1 << (TSqlParser.DEFAULT - 69)))) !== 0) || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 148)) & ~0x1f) == 0 && ((1 << (_la - 148)) & ((1 << (TSqlParser.IDENTITY - 148)) | (1 << (TSqlParser.IIF - 148)) | (1 << (TSqlParser.INIT - 148)) | (1 << (TSqlParser.ISNULL - 148)) | (1 << (TSqlParser.KEY - 148)) | (1 << (TSqlParser.LEFT - 148)))) !== 0) || _la===TSqlParser.MASTER || _la===TSqlParser.MAX_MEMORY || ((((_la - 221)) & ~0x1f) == 0 && ((1 << (_la - 221)) & ((1 << (TSqlParser.NULL - 221)) | (1 << (TSqlParser.NULLIF - 221)) | (1 << (TSqlParser.OFFSETS - 221)) | (1 << (TSqlParser.OVER - 221)) | (1 << (TSqlParser.PAGE - 221)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.RIGHT - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SESSION_USER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.SYSTEM_USER - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.LOCAL_ID - 796)) | (1 << (TSqlParser.DECIMAL - 796)) | (1 << (TSqlParser.ID - 796)) | (1 << (TSqlParser.STRING - 796)) | (1 << (TSqlParser.BINARY - 796)) | (1 << (TSqlParser.FLOAT - 796)) | (1 << (TSqlParser.REAL - 796)) | (1 << (TSqlParser.DOLLAR - 796)) | (1 << (TSqlParser.LR_BRACKET - 796)))) !== 0) || ((((_la - 834)) & ~0x1f) == 0 && ((1 << (_la - 834)) & ((1 << (TSqlParser.PLUS - 834)) | (1 << (TSqlParser.MINUS - 834)) | (1 << (TSqlParser.BIT_NOT - 834)))) !== 0)) { + this.state = 9814; + this.expression_list(); + } + + this.state = 9817; + this.match(TSqlParser.RR_BRACKET); + break; + + case 27: + localctx = new STRINGAGGContext(this, localctx); + this.enterOuterAlt(localctx, 27); + this.state = 9819; + this.match(TSqlParser.STRING_AGG); + this.state = 9820; + this.match(TSqlParser.LR_BRACKET); + this.state = 9821; + localctx.expr = this.expression(0); + this.state = 9822; + this.match(TSqlParser.COMMA); + this.state = 9823; + localctx.separator = this.expression(0); + this.state = 9824; + this.match(TSqlParser.RR_BRACKET); + this.state = 9831; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1382,this._ctx); + if(la_===1) { + this.state = 9825; + this.match(TSqlParser.WITHIN); + this.state = 9826; + this.match(TSqlParser.GROUP); + this.state = 9827; + this.match(TSqlParser.LR_BRACKET); + this.state = 9828; + this.order_by_clause(); + this.state = 9829; + this.match(TSqlParser.RR_BRACKET); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Xml_data_type_methodsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_xml_data_type_methods; + return this; +} + +Xml_data_type_methodsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Xml_data_type_methodsContext.prototype.constructor = Xml_data_type_methodsContext; + +Xml_data_type_methodsContext.prototype.value_method = function() { + return this.getTypedRuleContext(Value_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.query_method = function() { + return this.getTypedRuleContext(Query_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.exist_method = function() { + return this.getTypedRuleContext(Exist_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.modify_method = function() { + return this.getTypedRuleContext(Modify_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.nodes_method = function() { + return this.getTypedRuleContext(Nodes_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXml_data_type_methods(this); + } +}; + +Xml_data_type_methodsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXml_data_type_methods(this); + } +}; + +Xml_data_type_methodsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXml_data_type_methods(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Xml_data_type_methodsContext = Xml_data_type_methodsContext; + +TSqlParser.prototype.xml_data_type_methods = function() { + + var localctx = new Xml_data_type_methodsContext(this, this._ctx, this.state); + this.enterRule(localctx, 832, TSqlParser.RULE_xml_data_type_methods); + try { + this.state = 9840; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1384,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9835; + this.value_method(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9836; + this.query_method(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9837; + this.exist_method(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9838; + this.modify_method(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9839; + this.nodes_method(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Value_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_value_method; + this.xquery = null; // Token + this.sqltype = null; // Token + return this; +} + +Value_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Value_methodContext.prototype.constructor = Value_methodContext; + +Value_methodContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Value_methodContext.prototype.VALUE = function() { + return this.getToken(TSqlParser.VALUE, 0); +}; + +Value_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Value_methodContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Value_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Value_methodContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Value_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Value_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Value_methodContext.prototype.EVENTDATA = function() { + return this.getToken(TSqlParser.EVENTDATA, 0); +}; + +Value_methodContext.prototype.query_method = function() { + return this.getTypedRuleContext(Query_methodContext,0); +}; + +Value_methodContext.prototype.ROW = function() { + return this.getToken(TSqlParser.ROW, 0); +}; + +Value_methodContext.prototype.PARAM_NODE = function() { + return this.getToken(TSqlParser.PARAM_NODE, 0); +}; + +Value_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterValue_method(this); + } +}; + +Value_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitValue_method(this); + } +}; + +Value_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitValue_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Value_methodContext = Value_methodContext; + +TSqlParser.prototype.value_method = function() { + + var localctx = new Value_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 834, TSqlParser.RULE_value_method); + try { + this.state = 9885; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1388,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9846; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1385,this._ctx); + switch(la_) { + case 1: + this.state = 9842; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9843; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9844; + this.match(TSqlParser.EVENTDATA); + break; + + case 4: + this.state = 9845; + this.query_method(); + break; + + } + this.state = 9848; + this.match(TSqlParser.DOT); + this.state = 9849; + this.match(TSqlParser.VALUE); + this.state = 9850; + this.match(TSqlParser.LR_BRACKET); + this.state = 9851; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9852; + this.match(TSqlParser.COMMA); + this.state = 9853; + localctx.sqltype = this.match(TSqlParser.STRING); + this.state = 9854; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9859; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1386,this._ctx); + switch(la_) { + case 1: + this.state = 9855; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9856; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9857; + this.match(TSqlParser.EVENTDATA); + break; + + case 4: + this.state = 9858; + this.query_method(); + break; + + } + this.state = 9861; + this.match(TSqlParser.DOT); + this.state = 9862; + this.match(TSqlParser.ROW); + this.state = 9863; + this.match(TSqlParser.DOT); + this.state = 9864; + this.match(TSqlParser.VALUE); + this.state = 9865; + this.match(TSqlParser.LR_BRACKET); + this.state = 9866; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9867; + this.match(TSqlParser.COMMA); + this.state = 9868; + localctx.sqltype = this.match(TSqlParser.STRING); + this.state = 9869; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9874; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1387,this._ctx); + switch(la_) { + case 1: + this.state = 9870; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9871; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9872; + this.match(TSqlParser.EVENTDATA); + break; + + case 4: + this.state = 9873; + this.query_method(); + break; + + } + this.state = 9876; + this.match(TSqlParser.DOT); + this.state = 9877; + this.match(TSqlParser.PARAM_NODE); + this.state = 9878; + this.match(TSqlParser.DOT); + this.state = 9879; + this.match(TSqlParser.VALUE); + this.state = 9880; + this.match(TSqlParser.LR_BRACKET); + this.state = 9881; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9882; + this.match(TSqlParser.COMMA); + this.state = 9883; + localctx.sqltype = this.match(TSqlParser.STRING); + this.state = 9884; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Query_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_query_method; + this.xquery = null; // Token + return this; +} + +Query_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Query_methodContext.prototype.constructor = Query_methodContext; + +Query_methodContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Query_methodContext.prototype.QUERY = function() { + return this.getToken(TSqlParser.QUERY, 0); +}; + +Query_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Query_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Query_methodContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Query_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Query_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Query_methodContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Query_methodContext.prototype.ROW = function() { + return this.getToken(TSqlParser.ROW, 0); +}; + +Query_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQuery_method(this); + } +}; + +Query_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQuery_method(this); + } +}; + +Query_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQuery_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Query_methodContext = Query_methodContext; + +TSqlParser.prototype.query_method = function() { + + var localctx = new Query_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 836, TSqlParser.RULE_query_method); + try { + this.state = 9909; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1391,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9890; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1389,this._ctx); + switch(la_) { + case 1: + this.state = 9887; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9888; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9889; + this.full_table_name(); + break; + + } + this.state = 9892; + this.match(TSqlParser.DOT); + this.state = 9893; + this.match(TSqlParser.QUERY); + this.state = 9894; + this.match(TSqlParser.LR_BRACKET); + this.state = 9895; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9896; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9900; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1390,this._ctx); + switch(la_) { + case 1: + this.state = 9897; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9898; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9899; + this.full_table_name(); + break; + + } + this.state = 9902; + this.match(TSqlParser.DOT); + this.state = 9903; + this.match(TSqlParser.ROW); + this.state = 9904; + this.match(TSqlParser.DOT); + this.state = 9905; + this.match(TSqlParser.QUERY); + this.state = 9906; + this.match(TSqlParser.LR_BRACKET); + this.state = 9907; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9908; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Exist_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_exist_method; + this.xquery = null; // Token + return this; +} + +Exist_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Exist_methodContext.prototype.constructor = Exist_methodContext; + +Exist_methodContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Exist_methodContext.prototype.EXIST = function() { + return this.getToken(TSqlParser.EXIST, 0); +}; + +Exist_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Exist_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Exist_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Exist_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Exist_methodContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Exist_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExist_method(this); + } +}; + +Exist_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExist_method(this); + } +}; + +Exist_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExist_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Exist_methodContext = Exist_methodContext; + +TSqlParser.prototype.exist_method = function() { + + var localctx = new Exist_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 838, TSqlParser.RULE_exist_method); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9911; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9912; + this.match(TSqlParser.DOT); + this.state = 9913; + this.match(TSqlParser.EXIST); + this.state = 9914; + this.match(TSqlParser.LR_BRACKET); + this.state = 9915; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9916; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Modify_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_modify_method; + this.xml_dml = null; // Token + return this; +} + +Modify_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Modify_methodContext.prototype.constructor = Modify_methodContext; + +Modify_methodContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Modify_methodContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Modify_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Modify_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Modify_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Modify_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Modify_methodContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Modify_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterModify_method(this); + } +}; + +Modify_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitModify_method(this); + } +}; + +Modify_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitModify_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Modify_methodContext = Modify_methodContext; + +TSqlParser.prototype.modify_method = function() { + + var localctx = new Modify_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 840, TSqlParser.RULE_modify_method); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9918; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9919; + this.match(TSqlParser.DOT); + this.state = 9920; + this.match(TSqlParser.MODIFY); + this.state = 9921; + this.match(TSqlParser.LR_BRACKET); + this.state = 9922; + localctx.xml_dml = this.match(TSqlParser.STRING); + this.state = 9923; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Nodes_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_nodes_method; + this.xquery = null; // Token + return this; +} + +Nodes_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Nodes_methodContext.prototype.constructor = Nodes_methodContext; + +Nodes_methodContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Nodes_methodContext.prototype.NODES = function() { + return this.getToken(TSqlParser.NODES, 0); +}; + +Nodes_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Nodes_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Nodes_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Nodes_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Nodes_methodContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Nodes_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNodes_method(this); + } +}; + +Nodes_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNodes_method(this); + } +}; + +Nodes_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNodes_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Nodes_methodContext = Nodes_methodContext; + +TSqlParser.prototype.nodes_method = function() { + + var localctx = new Nodes_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 842, TSqlParser.RULE_nodes_method); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9925; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9926; + this.match(TSqlParser.DOT); + this.state = 9927; + this.match(TSqlParser.NODES); + this.state = 9928; + this.match(TSqlParser.LR_BRACKET); + this.state = 9929; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9930; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Switch_sectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_switch_section; + return this; +} + +Switch_sectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Switch_sectionContext.prototype.constructor = Switch_sectionContext; + +Switch_sectionContext.prototype.WHEN = function() { + return this.getToken(TSqlParser.WHEN, 0); +}; + +Switch_sectionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Switch_sectionContext.prototype.THEN = function() { + return this.getToken(TSqlParser.THEN, 0); +}; + +Switch_sectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSwitch_section(this); + } +}; + +Switch_sectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSwitch_section(this); + } +}; + +Switch_sectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSwitch_section(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Switch_sectionContext = Switch_sectionContext; + +TSqlParser.prototype.switch_section = function() { + + var localctx = new Switch_sectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 844, TSqlParser.RULE_switch_section); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9932; + this.match(TSqlParser.WHEN); + this.state = 9933; + this.expression(0); + this.state = 9934; + this.match(TSqlParser.THEN); + this.state = 9935; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Switch_search_condition_sectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_switch_search_condition_section; + return this; +} + +Switch_search_condition_sectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Switch_search_condition_sectionContext.prototype.constructor = Switch_search_condition_sectionContext; + +Switch_search_condition_sectionContext.prototype.WHEN = function() { + return this.getToken(TSqlParser.WHEN, 0); +}; + +Switch_search_condition_sectionContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Switch_search_condition_sectionContext.prototype.THEN = function() { + return this.getToken(TSqlParser.THEN, 0); +}; + +Switch_search_condition_sectionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Switch_search_condition_sectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSwitch_search_condition_section(this); + } +}; + +Switch_search_condition_sectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSwitch_search_condition_section(this); + } +}; + +Switch_search_condition_sectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSwitch_search_condition_section(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Switch_search_condition_sectionContext = Switch_search_condition_sectionContext; + +TSqlParser.prototype.switch_search_condition_section = function() { + + var localctx = new Switch_search_condition_sectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 846, TSqlParser.RULE_switch_search_condition_section); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9937; + this.match(TSqlParser.WHEN); + this.state = 9938; + this.search_condition(); + this.state = 9939; + this.match(TSqlParser.THEN); + this.state = 9940; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function As_column_aliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_as_column_alias; + return this; +} + +As_column_aliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +As_column_aliasContext.prototype.constructor = As_column_aliasContext; + +As_column_aliasContext.prototype.column_alias = function() { + return this.getTypedRuleContext(Column_aliasContext,0); +}; + +As_column_aliasContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +As_column_aliasContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAs_column_alias(this); + } +}; + +As_column_aliasContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAs_column_alias(this); + } +}; + +As_column_aliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAs_column_alias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.As_column_aliasContext = As_column_aliasContext; + +TSqlParser.prototype.as_column_alias = function() { + + var localctx = new As_column_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 848, TSqlParser.RULE_as_column_alias); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9943; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 9942; + this.match(TSqlParser.AS); + } + + this.state = 9945; + this.column_alias(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function As_table_aliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_as_table_alias; + return this; +} + +As_table_aliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +As_table_aliasContext.prototype.constructor = As_table_aliasContext; + +As_table_aliasContext.prototype.table_alias = function() { + return this.getTypedRuleContext(Table_aliasContext,0); +}; + +As_table_aliasContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +As_table_aliasContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAs_table_alias(this); + } +}; + +As_table_aliasContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAs_table_alias(this); + } +}; + +As_table_aliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAs_table_alias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.As_table_aliasContext = As_table_aliasContext; + +TSqlParser.prototype.as_table_alias = function() { + + var localctx = new As_table_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 850, TSqlParser.RULE_as_table_alias); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9948; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 9947; + this.match(TSqlParser.AS); + } + + this.state = 9950; + this.table_alias(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_aliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_alias; + return this; +} + +Table_aliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_aliasContext.prototype.constructor = Table_aliasContext; + +Table_aliasContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Table_aliasContext.prototype.with_table_hints = function() { + return this.getTypedRuleContext(With_table_hintsContext,0); +}; + +Table_aliasContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_alias(this); + } +}; + +Table_aliasContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_alias(this); + } +}; + +Table_aliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_alias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_aliasContext = Table_aliasContext; + +TSqlParser.prototype.table_alias = function() { + + var localctx = new Table_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 852, TSqlParser.RULE_table_alias); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9952; + this.id(); + this.state = 9954; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1394,this._ctx); + if(la_===1) { + this.state = 9953; + this.with_table_hints(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function With_table_hintsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_with_table_hints; + return this; +} + +With_table_hintsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +With_table_hintsContext.prototype.constructor = With_table_hintsContext; + +With_table_hintsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +With_table_hintsContext.prototype.table_hint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_hintContext); + } else { + return this.getTypedRuleContext(Table_hintContext,i); + } +}; + +With_table_hintsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +With_table_hintsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +With_table_hintsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +With_table_hintsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWith_table_hints(this); + } +}; + +With_table_hintsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWith_table_hints(this); + } +}; + +With_table_hintsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWith_table_hints(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.With_table_hintsContext = With_table_hintsContext; + +TSqlParser.prototype.with_table_hints = function() { + + var localctx = new With_table_hintsContext(this, this._ctx, this.state); + this.enterRule(localctx, 854, TSqlParser.RULE_with_table_hints); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9957; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 9956; + this.match(TSqlParser.WITH); + } + + this.state = 9959; + this.match(TSqlParser.LR_BRACKET); + this.state = 9960; + this.table_hint(); + this.state = 9967; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FORCESEEK || _la===TSqlParser.INDEX || _la===TSqlParser.NOEXPAND || ((((_la - 718)) & ~0x1f) == 0 && ((1 << (_la - 718)) & ((1 << (TSqlParser.SERIALIZABLE - 718)) | (1 << (TSqlParser.SNAPSHOT - 718)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 718)))) !== 0) || _la===TSqlParser.ID || _la===TSqlParser.COMMA) { + this.state = 9962; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9961; + this.match(TSqlParser.COMMA); + } + + this.state = 9964; + this.table_hint(); + this.state = 9969; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9970; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Insert_with_table_hintsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_insert_with_table_hints; + return this; +} + +Insert_with_table_hintsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Insert_with_table_hintsContext.prototype.constructor = Insert_with_table_hintsContext; + +Insert_with_table_hintsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Insert_with_table_hintsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Insert_with_table_hintsContext.prototype.table_hint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_hintContext); + } else { + return this.getTypedRuleContext(Table_hintContext,i); + } +}; + +Insert_with_table_hintsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Insert_with_table_hintsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Insert_with_table_hintsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterInsert_with_table_hints(this); + } +}; + +Insert_with_table_hintsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitInsert_with_table_hints(this); + } +}; + +Insert_with_table_hintsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitInsert_with_table_hints(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Insert_with_table_hintsContext = Insert_with_table_hintsContext; + +TSqlParser.prototype.insert_with_table_hints = function() { + + var localctx = new Insert_with_table_hintsContext(this, this._ctx, this.state); + this.enterRule(localctx, 856, TSqlParser.RULE_insert_with_table_hints); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9972; + this.match(TSqlParser.WITH); + this.state = 9973; + this.match(TSqlParser.LR_BRACKET); + this.state = 9974; + this.table_hint(); + this.state = 9981; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FORCESEEK || _la===TSqlParser.INDEX || _la===TSqlParser.NOEXPAND || ((((_la - 718)) & ~0x1f) == 0 && ((1 << (_la - 718)) & ((1 << (TSqlParser.SERIALIZABLE - 718)) | (1 << (TSqlParser.SNAPSHOT - 718)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 718)))) !== 0) || _la===TSqlParser.ID || _la===TSqlParser.COMMA) { + this.state = 9976; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9975; + this.match(TSqlParser.COMMA); + } + + this.state = 9978; + this.table_hint(); + this.state = 9983; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9984; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_hintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_hint; + return this; +} + +Table_hintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_hintContext.prototype.constructor = Table_hintContext; + +Table_hintContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Table_hintContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Table_hintContext.prototype.index_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_valueContext); + } else { + return this.getTypedRuleContext(Index_valueContext,i); + } +}; + +Table_hintContext.prototype.FORCESEEK = function() { + return this.getToken(TSqlParser.FORCESEEK, 0); +}; + +Table_hintContext.prototype.SERIALIZABLE = function() { + return this.getToken(TSqlParser.SERIALIZABLE, 0); +}; + +Table_hintContext.prototype.SNAPSHOT = function() { + return this.getToken(TSqlParser.SNAPSHOT, 0); +}; + +Table_hintContext.prototype.SPATIAL_WINDOW_MAX_CELLS = function() { + return this.getToken(TSqlParser.SPATIAL_WINDOW_MAX_CELLS, 0); +}; + +Table_hintContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Table_hintContext.prototype.ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ID); + } else { + return this.getToken(TSqlParser.ID, i); + } +}; + + +Table_hintContext.prototype.NOEXPAND = function() { + return this.getToken(TSqlParser.NOEXPAND, 0); +}; + +Table_hintContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Table_hintContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Table_hintContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Table_hintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_hint(this); + } +}; + +Table_hintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_hint(this); + } +}; + +Table_hintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_hint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_hintContext = Table_hintContext; + +TSqlParser.prototype.table_hint = function() { + + var localctx = new Table_hintContext(this, this._ctx, this.state); + this.enterRule(localctx, 858, TSqlParser.RULE_table_hint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9987; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOEXPAND) { + this.state = 9986; + this.match(TSqlParser.NOEXPAND); + } + + this.state = 10037; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1406,this._ctx); + switch(la_) { + case 1: + this.state = 9989; + this.match(TSqlParser.INDEX); + this.state = 10009; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LR_BRACKET: + this.state = 9990; + this.match(TSqlParser.LR_BRACKET); + this.state = 9991; + this.index_value(); + this.state = 9996; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9992; + this.match(TSqlParser.COMMA); + this.state = 9993; + this.index_value(); + this.state = 9998; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9999; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + this.state = 10001; + this.index_value(); + this.state = 10006; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1402,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10002; + this.match(TSqlParser.COMMA); + this.state = 10003; + this.index_value(); + } + this.state = 10008; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1402,this._ctx); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 2: + this.state = 10011; + this.match(TSqlParser.INDEX); + this.state = 10012; + this.match(TSqlParser.EQUAL); + this.state = 10013; + this.index_value(); + break; + + case 3: + this.state = 10014; + this.match(TSqlParser.FORCESEEK); + this.state = 10029; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 10015; + this.match(TSqlParser.LR_BRACKET); + this.state = 10016; + this.index_value(); + this.state = 10017; + this.match(TSqlParser.LR_BRACKET); + this.state = 10018; + this.match(TSqlParser.ID); + this.state = 10023; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10019; + this.match(TSqlParser.COMMA); + this.state = 10020; + this.match(TSqlParser.ID); + this.state = 10025; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10026; + this.match(TSqlParser.RR_BRACKET); + this.state = 10027; + this.match(TSqlParser.RR_BRACKET); + } + + break; + + case 4: + this.state = 10031; + this.match(TSqlParser.SERIALIZABLE); + break; + + case 5: + this.state = 10032; + this.match(TSqlParser.SNAPSHOT); + break; + + case 6: + this.state = 10033; + this.match(TSqlParser.SPATIAL_WINDOW_MAX_CELLS); + this.state = 10034; + this.match(TSqlParser.EQUAL); + this.state = 10035; + this.match(TSqlParser.DECIMAL); + break; + + case 7: + this.state = 10036; + this.match(TSqlParser.ID); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Index_valueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_index_value; + return this; +} + +Index_valueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Index_valueContext.prototype.constructor = Index_valueContext; + +Index_valueContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Index_valueContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Index_valueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIndex_value(this); + } +}; + +Index_valueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIndex_value(this); + } +}; + +Index_valueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIndex_value(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Index_valueContext = Index_valueContext; + +TSqlParser.prototype.index_value = function() { + + var localctx = new Index_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 860, TSqlParser.RULE_index_value); + try { + this.state = 10041; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10039; + this.id(); + break; + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 2); + this.state = 10040; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_alias_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_alias_list; + return this; +} + +Column_alias_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_alias_listContext.prototype.constructor = Column_alias_listContext; + +Column_alias_listContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Column_alias_listContext.prototype.column_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_aliasContext); + } else { + return this.getTypedRuleContext(Column_aliasContext,i); + } +}; + +Column_alias_listContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Column_alias_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Column_alias_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_alias_list(this); + } +}; + +Column_alias_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_alias_list(this); + } +}; + +Column_alias_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_alias_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_alias_listContext = Column_alias_listContext; + +TSqlParser.prototype.column_alias_list = function() { + + var localctx = new Column_alias_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 862, TSqlParser.RULE_column_alias_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10043; + this.match(TSqlParser.LR_BRACKET); + this.state = 10044; + this.column_alias(); + this.state = 10049; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10045; + this.match(TSqlParser.COMMA); + this.state = 10046; + this.column_alias(); + this.state = 10051; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10052; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_aliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_alias; + return this; +} + +Column_aliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_aliasContext.prototype.constructor = Column_aliasContext; + +Column_aliasContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Column_aliasContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Column_aliasContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_alias(this); + } +}; + +Column_aliasContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_alias(this); + } +}; + +Column_aliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_alias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_aliasContext = Column_aliasContext; + +TSqlParser.prototype.column_alias = function() { + + var localctx = new Column_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 864, TSqlParser.RULE_column_alias); + try { + this.state = 10056; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10054; + this.id(); + break; + case TSqlParser.STRING: + this.enterOuterAlt(localctx, 2); + this.state = 10055; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_value_constructorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_value_constructor; + return this; +} + +Table_value_constructorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_value_constructorContext.prototype.constructor = Table_value_constructorContext; + +Table_value_constructorContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Table_value_constructorContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Table_value_constructorContext.prototype.expression_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Expression_listContext); + } else { + return this.getTypedRuleContext(Expression_listContext,i); + } +}; + +Table_value_constructorContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Table_value_constructorContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Table_value_constructorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_value_constructor(this); + } +}; + +Table_value_constructorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_value_constructor(this); + } +}; + +Table_value_constructorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_value_constructor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_value_constructorContext = Table_value_constructorContext; + +TSqlParser.prototype.table_value_constructor = function() { + + var localctx = new Table_value_constructorContext(this, this._ctx, this.state); + this.enterRule(localctx, 866, TSqlParser.RULE_table_value_constructor); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10058; + this.match(TSqlParser.VALUES); + this.state = 10059; + this.match(TSqlParser.LR_BRACKET); + this.state = 10060; + this.expression_list(); + this.state = 10061; + this.match(TSqlParser.RR_BRACKET); + this.state = 10069; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1410,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10062; + this.match(TSqlParser.COMMA); + this.state = 10063; + this.match(TSqlParser.LR_BRACKET); + this.state = 10064; + this.expression_list(); + this.state = 10065; + this.match(TSqlParser.RR_BRACKET); + } + this.state = 10071; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1410,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Expression_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_expression_list; + return this; +} + +Expression_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Expression_listContext.prototype.constructor = Expression_listContext; + +Expression_listContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Expression_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Expression_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExpression_list(this); + } +}; + +Expression_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExpression_list(this); + } +}; + +Expression_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExpression_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Expression_listContext = Expression_listContext; + +TSqlParser.prototype.expression_list = function() { + + var localctx = new Expression_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 868, TSqlParser.RULE_expression_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10072; + this.expression(0); + this.state = 10077; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10073; + this.match(TSqlParser.COMMA); + this.state = 10074; + this.expression(0); + this.state = 10079; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Ranking_windowed_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_ranking_windowed_function; + return this; +} + +Ranking_windowed_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Ranking_windowed_functionContext.prototype.constructor = Ranking_windowed_functionContext; + +Ranking_windowed_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Ranking_windowed_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Ranking_windowed_functionContext.prototype.over_clause = function() { + return this.getTypedRuleContext(Over_clauseContext,0); +}; + +Ranking_windowed_functionContext.prototype.RANK = function() { + return this.getToken(TSqlParser.RANK, 0); +}; + +Ranking_windowed_functionContext.prototype.DENSE_RANK = function() { + return this.getToken(TSqlParser.DENSE_RANK, 0); +}; + +Ranking_windowed_functionContext.prototype.ROW_NUMBER = function() { + return this.getToken(TSqlParser.ROW_NUMBER, 0); +}; + +Ranking_windowed_functionContext.prototype.NTILE = function() { + return this.getToken(TSqlParser.NTILE, 0); +}; + +Ranking_windowed_functionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Ranking_windowed_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRanking_windowed_function(this); + } +}; + +Ranking_windowed_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRanking_windowed_function(this); + } +}; + +Ranking_windowed_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRanking_windowed_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Ranking_windowed_functionContext = Ranking_windowed_functionContext; + +TSqlParser.prototype.ranking_windowed_function = function() { + + var localctx = new Ranking_windowed_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 870, TSqlParser.RULE_ranking_windowed_function); + var _la = 0; // Token type + try { + this.state = 10090; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DENSE_RANK: + case TSqlParser.RANK: + case TSqlParser.ROW_NUMBER: + this.enterOuterAlt(localctx, 1); + this.state = 10080; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DENSE_RANK || _la===TSqlParser.RANK || _la===TSqlParser.ROW_NUMBER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10081; + this.match(TSqlParser.LR_BRACKET); + this.state = 10082; + this.match(TSqlParser.RR_BRACKET); + this.state = 10083; + this.over_clause(); + break; + case TSqlParser.NTILE: + this.enterOuterAlt(localctx, 2); + this.state = 10084; + this.match(TSqlParser.NTILE); + this.state = 10085; + this.match(TSqlParser.LR_BRACKET); + this.state = 10086; + this.expression(0); + this.state = 10087; + this.match(TSqlParser.RR_BRACKET); + this.state = 10088; + this.over_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Aggregate_windowed_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_aggregate_windowed_function; + return this; +} + +Aggregate_windowed_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Aggregate_windowed_functionContext.prototype.constructor = Aggregate_windowed_functionContext; + +Aggregate_windowed_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Aggregate_windowed_functionContext.prototype.all_distinct_expression = function() { + return this.getTypedRuleContext(All_distinct_expressionContext,0); +}; + +Aggregate_windowed_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Aggregate_windowed_functionContext.prototype.AVG = function() { + return this.getToken(TSqlParser.AVG, 0); +}; + +Aggregate_windowed_functionContext.prototype.MAX = function() { + return this.getToken(TSqlParser.MAX, 0); +}; + +Aggregate_windowed_functionContext.prototype.MIN = function() { + return this.getToken(TSqlParser.MIN, 0); +}; + +Aggregate_windowed_functionContext.prototype.SUM = function() { + return this.getToken(TSqlParser.SUM, 0); +}; + +Aggregate_windowed_functionContext.prototype.STDEV = function() { + return this.getToken(TSqlParser.STDEV, 0); +}; + +Aggregate_windowed_functionContext.prototype.STDEVP = function() { + return this.getToken(TSqlParser.STDEVP, 0); +}; + +Aggregate_windowed_functionContext.prototype.VAR = function() { + return this.getToken(TSqlParser.VAR, 0); +}; + +Aggregate_windowed_functionContext.prototype.VARP = function() { + return this.getToken(TSqlParser.VARP, 0); +}; + +Aggregate_windowed_functionContext.prototype.over_clause = function() { + return this.getTypedRuleContext(Over_clauseContext,0); +}; + +Aggregate_windowed_functionContext.prototype.COUNT = function() { + return this.getToken(TSqlParser.COUNT, 0); +}; + +Aggregate_windowed_functionContext.prototype.COUNT_BIG = function() { + return this.getToken(TSqlParser.COUNT_BIG, 0); +}; + +Aggregate_windowed_functionContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +Aggregate_windowed_functionContext.prototype.CHECKSUM_AGG = function() { + return this.getToken(TSqlParser.CHECKSUM_AGG, 0); +}; + +Aggregate_windowed_functionContext.prototype.GROUPING = function() { + return this.getToken(TSqlParser.GROUPING, 0); +}; + +Aggregate_windowed_functionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Aggregate_windowed_functionContext.prototype.GROUPING_ID = function() { + return this.getToken(TSqlParser.GROUPING_ID, 0); +}; + +Aggregate_windowed_functionContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +Aggregate_windowed_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAggregate_windowed_function(this); + } +}; + +Aggregate_windowed_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAggregate_windowed_function(this); + } +}; + +Aggregate_windowed_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAggregate_windowed_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Aggregate_windowed_functionContext = Aggregate_windowed_functionContext; + +TSqlParser.prototype.aggregate_windowed_function = function() { + + var localctx = new Aggregate_windowed_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 872, TSqlParser.RULE_aggregate_windowed_function); + var _la = 0; // Token type + try { + this.state = 10124; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AVG: + case TSqlParser.MAX: + case TSqlParser.MIN: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.SUM: + case TSqlParser.VAR: + case TSqlParser.VARP: + this.enterOuterAlt(localctx, 1); + this.state = 10092; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AVG || _la===TSqlParser.MAX || _la===TSqlParser.MIN || ((((_la - 736)) & ~0x1f) == 0 && ((1 << (_la - 736)) & ((1 << (TSqlParser.STDEV - 736)) | (1 << (TSqlParser.STDEVP - 736)) | (1 << (TSqlParser.SUM - 736)))) !== 0) || _la===TSqlParser.VAR || _la===TSqlParser.VARP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10093; + this.match(TSqlParser.LR_BRACKET); + this.state = 10094; + this.all_distinct_expression(); + this.state = 10095; + this.match(TSqlParser.RR_BRACKET); + this.state = 10097; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1413,this._ctx); + if(la_===1) { + this.state = 10096; + this.over_clause(); + + } + break; + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + this.enterOuterAlt(localctx, 2); + this.state = 10099; + _la = this._input.LA(1); + if(!(_la===TSqlParser.COUNT || _la===TSqlParser.COUNT_BIG)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10100; + this.match(TSqlParser.LR_BRACKET); + this.state = 10103; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STAR: + this.state = 10101; + this.match(TSqlParser.STAR); + break; + case TSqlParser.ALL: + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.CASE: + case TSqlParser.COALESCE: + case TSqlParser.CONVERT: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DEFAULT: + case TSqlParser.DISTINCT: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.IDENTITY: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.NULL: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.OVER: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.RIGHT: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.LR_BRACKET: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + case TSqlParser.BIT_NOT: + this.state = 10102; + this.all_distinct_expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10105; + this.match(TSqlParser.RR_BRACKET); + this.state = 10107; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1415,this._ctx); + if(la_===1) { + this.state = 10106; + this.over_clause(); + + } + break; + case TSqlParser.CHECKSUM_AGG: + this.enterOuterAlt(localctx, 3); + this.state = 10109; + this.match(TSqlParser.CHECKSUM_AGG); + this.state = 10110; + this.match(TSqlParser.LR_BRACKET); + this.state = 10111; + this.all_distinct_expression(); + this.state = 10112; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.GROUPING: + this.enterOuterAlt(localctx, 4); + this.state = 10114; + this.match(TSqlParser.GROUPING); + this.state = 10115; + this.match(TSqlParser.LR_BRACKET); + this.state = 10116; + this.expression(0); + this.state = 10117; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.GROUPING_ID: + this.enterOuterAlt(localctx, 5); + this.state = 10119; + this.match(TSqlParser.GROUPING_ID); + this.state = 10120; + this.match(TSqlParser.LR_BRACKET); + this.state = 10121; + this.expression_list(); + this.state = 10122; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Analytic_windowed_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_analytic_windowed_function; + return this; +} + +Analytic_windowed_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Analytic_windowed_functionContext.prototype.constructor = Analytic_windowed_functionContext; + +Analytic_windowed_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Analytic_windowed_functionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Analytic_windowed_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Analytic_windowed_functionContext.prototype.over_clause = function() { + return this.getTypedRuleContext(Over_clauseContext,0); +}; + +Analytic_windowed_functionContext.prototype.FIRST_VALUE = function() { + return this.getToken(TSqlParser.FIRST_VALUE, 0); +}; + +Analytic_windowed_functionContext.prototype.LAST_VALUE = function() { + return this.getToken(TSqlParser.LAST_VALUE, 0); +}; + +Analytic_windowed_functionContext.prototype.LAG = function() { + return this.getToken(TSqlParser.LAG, 0); +}; + +Analytic_windowed_functionContext.prototype.LEAD = function() { + return this.getToken(TSqlParser.LEAD, 0); +}; + +Analytic_windowed_functionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Analytic_windowed_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAnalytic_windowed_function(this); + } +}; + +Analytic_windowed_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAnalytic_windowed_function(this); + } +}; + +Analytic_windowed_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAnalytic_windowed_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Analytic_windowed_functionContext = Analytic_windowed_functionContext; + +TSqlParser.prototype.analytic_windowed_function = function() { + + var localctx = new Analytic_windowed_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 874, TSqlParser.RULE_analytic_windowed_function); + var _la = 0; // Token type + try { + this.state = 10146; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FIRST_VALUE: + case TSqlParser.LAST_VALUE: + this.enterOuterAlt(localctx, 1); + this.state = 10126; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FIRST_VALUE || _la===TSqlParser.LAST_VALUE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10127; + this.match(TSqlParser.LR_BRACKET); + this.state = 10128; + this.expression(0); + this.state = 10129; + this.match(TSqlParser.RR_BRACKET); + this.state = 10130; + this.over_clause(); + break; + case TSqlParser.LAG: + case TSqlParser.LEAD: + this.enterOuterAlt(localctx, 2); + this.state = 10132; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LAG || _la===TSqlParser.LEAD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10133; + this.match(TSqlParser.LR_BRACKET); + this.state = 10134; + this.expression(0); + this.state = 10141; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10135; + this.match(TSqlParser.COMMA); + this.state = 10136; + this.expression(0); + this.state = 10139; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10137; + this.match(TSqlParser.COMMA); + this.state = 10138; + this.expression(0); + } + + } + + this.state = 10143; + this.match(TSqlParser.RR_BRACKET); + this.state = 10144; + this.over_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function All_distinct_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_all_distinct_expression; + return this; +} + +All_distinct_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +All_distinct_expressionContext.prototype.constructor = All_distinct_expressionContext; + +All_distinct_expressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +All_distinct_expressionContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +All_distinct_expressionContext.prototype.DISTINCT = function() { + return this.getToken(TSqlParser.DISTINCT, 0); +}; + +All_distinct_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAll_distinct_expression(this); + } +}; + +All_distinct_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAll_distinct_expression(this); + } +}; + +All_distinct_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAll_distinct_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.All_distinct_expressionContext = All_distinct_expressionContext; + +TSqlParser.prototype.all_distinct_expression = function() { + + var localctx = new All_distinct_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 876, TSqlParser.RULE_all_distinct_expression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10149; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL || _la===TSqlParser.DISTINCT) { + this.state = 10148; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.DISTINCT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10151; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Over_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_over_clause; + return this; +} + +Over_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Over_clauseContext.prototype.constructor = Over_clauseContext; + +Over_clauseContext.prototype.OVER = function() { + return this.getToken(TSqlParser.OVER, 0); +}; + +Over_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Over_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Over_clauseContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Over_clauseContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Over_clauseContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +Over_clauseContext.prototype.order_by_clause = function() { + return this.getTypedRuleContext(Order_by_clauseContext,0); +}; + +Over_clauseContext.prototype.row_or_range_clause = function() { + return this.getTypedRuleContext(Row_or_range_clauseContext,0); +}; + +Over_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOver_clause(this); + } +}; + +Over_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOver_clause(this); + } +}; + +Over_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOver_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Over_clauseContext = Over_clauseContext; + +TSqlParser.prototype.over_clause = function() { + + var localctx = new Over_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 878, TSqlParser.RULE_over_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10153; + this.match(TSqlParser.OVER); + this.state = 10154; + this.match(TSqlParser.LR_BRACKET); + this.state = 10158; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PARTITION) { + this.state = 10155; + this.match(TSqlParser.PARTITION); + this.state = 10156; + this.match(TSqlParser.BY); + this.state = 10157; + this.expression_list(); + } + + this.state = 10161; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ORDER) { + this.state = 10160; + this.order_by_clause(); + } + + this.state = 10164; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RANGE || _la===TSqlParser.ROWS) { + this.state = 10163; + this.row_or_range_clause(); + } + + this.state = 10166; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Row_or_range_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_row_or_range_clause; + return this; +} + +Row_or_range_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Row_or_range_clauseContext.prototype.constructor = Row_or_range_clauseContext; + +Row_or_range_clauseContext.prototype.window_frame_extent = function() { + return this.getTypedRuleContext(Window_frame_extentContext,0); +}; + +Row_or_range_clauseContext.prototype.ROWS = function() { + return this.getToken(TSqlParser.ROWS, 0); +}; + +Row_or_range_clauseContext.prototype.RANGE = function() { + return this.getToken(TSqlParser.RANGE, 0); +}; + +Row_or_range_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRow_or_range_clause(this); + } +}; + +Row_or_range_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRow_or_range_clause(this); + } +}; + +Row_or_range_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRow_or_range_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Row_or_range_clauseContext = Row_or_range_clauseContext; + +TSqlParser.prototype.row_or_range_clause = function() { + + var localctx = new Row_or_range_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 880, TSqlParser.RULE_row_or_range_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10168; + _la = this._input.LA(1); + if(!(_la===TSqlParser.RANGE || _la===TSqlParser.ROWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10169; + this.window_frame_extent(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Window_frame_extentContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_window_frame_extent; + return this; +} + +Window_frame_extentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Window_frame_extentContext.prototype.constructor = Window_frame_extentContext; + +Window_frame_extentContext.prototype.window_frame_preceding = function() { + return this.getTypedRuleContext(Window_frame_precedingContext,0); +}; + +Window_frame_extentContext.prototype.BETWEEN = function() { + return this.getToken(TSqlParser.BETWEEN, 0); +}; + +Window_frame_extentContext.prototype.window_frame_bound = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Window_frame_boundContext); + } else { + return this.getTypedRuleContext(Window_frame_boundContext,i); + } +}; + +Window_frame_extentContext.prototype.AND = function() { + return this.getToken(TSqlParser.AND, 0); +}; + +Window_frame_extentContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWindow_frame_extent(this); + } +}; + +Window_frame_extentContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWindow_frame_extent(this); + } +}; + +Window_frame_extentContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWindow_frame_extent(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Window_frame_extentContext = Window_frame_extentContext; + +TSqlParser.prototype.window_frame_extent = function() { + + var localctx = new Window_frame_extentContext(this, this._ctx, this.state); + this.enterRule(localctx, 882, TSqlParser.RULE_window_frame_extent); + try { + this.state = 10177; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CURRENT: + case TSqlParser.UNBOUNDED: + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 1); + this.state = 10171; + this.window_frame_preceding(); + break; + case TSqlParser.BETWEEN: + this.enterOuterAlt(localctx, 2); + this.state = 10172; + this.match(TSqlParser.BETWEEN); + this.state = 10173; + this.window_frame_bound(); + this.state = 10174; + this.match(TSqlParser.AND); + this.state = 10175; + this.window_frame_bound(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Window_frame_boundContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_window_frame_bound; + return this; +} + +Window_frame_boundContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Window_frame_boundContext.prototype.constructor = Window_frame_boundContext; + +Window_frame_boundContext.prototype.window_frame_preceding = function() { + return this.getTypedRuleContext(Window_frame_precedingContext,0); +}; + +Window_frame_boundContext.prototype.window_frame_following = function() { + return this.getTypedRuleContext(Window_frame_followingContext,0); +}; + +Window_frame_boundContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWindow_frame_bound(this); + } +}; + +Window_frame_boundContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWindow_frame_bound(this); + } +}; + +Window_frame_boundContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWindow_frame_bound(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Window_frame_boundContext = Window_frame_boundContext; + +TSqlParser.prototype.window_frame_bound = function() { + + var localctx = new Window_frame_boundContext(this, this._ctx, this.state); + this.enterRule(localctx, 884, TSqlParser.RULE_window_frame_bound); + try { + this.state = 10181; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1425,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10179; + this.window_frame_preceding(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10180; + this.window_frame_following(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Window_frame_precedingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_window_frame_preceding; + return this; +} + +Window_frame_precedingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Window_frame_precedingContext.prototype.constructor = Window_frame_precedingContext; + +Window_frame_precedingContext.prototype.UNBOUNDED = function() { + return this.getToken(TSqlParser.UNBOUNDED, 0); +}; + +Window_frame_precedingContext.prototype.PRECEDING = function() { + return this.getToken(TSqlParser.PRECEDING, 0); +}; + +Window_frame_precedingContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Window_frame_precedingContext.prototype.CURRENT = function() { + return this.getToken(TSqlParser.CURRENT, 0); +}; + +Window_frame_precedingContext.prototype.ROW = function() { + return this.getToken(TSqlParser.ROW, 0); +}; + +Window_frame_precedingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWindow_frame_preceding(this); + } +}; + +Window_frame_precedingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWindow_frame_preceding(this); + } +}; + +Window_frame_precedingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWindow_frame_preceding(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Window_frame_precedingContext = Window_frame_precedingContext; + +TSqlParser.prototype.window_frame_preceding = function() { + + var localctx = new Window_frame_precedingContext(this, this._ctx, this.state); + this.enterRule(localctx, 886, TSqlParser.RULE_window_frame_preceding); + try { + this.state = 10189; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UNBOUNDED: + this.enterOuterAlt(localctx, 1); + this.state = 10183; + this.match(TSqlParser.UNBOUNDED); + this.state = 10184; + this.match(TSqlParser.PRECEDING); + break; + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 2); + this.state = 10185; + this.match(TSqlParser.DECIMAL); + this.state = 10186; + this.match(TSqlParser.PRECEDING); + break; + case TSqlParser.CURRENT: + this.enterOuterAlt(localctx, 3); + this.state = 10187; + this.match(TSqlParser.CURRENT); + this.state = 10188; + this.match(TSqlParser.ROW); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Window_frame_followingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_window_frame_following; + return this; +} + +Window_frame_followingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Window_frame_followingContext.prototype.constructor = Window_frame_followingContext; + +Window_frame_followingContext.prototype.UNBOUNDED = function() { + return this.getToken(TSqlParser.UNBOUNDED, 0); +}; + +Window_frame_followingContext.prototype.FOLLOWING = function() { + return this.getToken(TSqlParser.FOLLOWING, 0); +}; + +Window_frame_followingContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Window_frame_followingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWindow_frame_following(this); + } +}; + +Window_frame_followingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWindow_frame_following(this); + } +}; + +Window_frame_followingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWindow_frame_following(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Window_frame_followingContext = Window_frame_followingContext; + +TSqlParser.prototype.window_frame_following = function() { + + var localctx = new Window_frame_followingContext(this, this._ctx, this.state); + this.enterRule(localctx, 888, TSqlParser.RULE_window_frame_following); + try { + this.state = 10195; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UNBOUNDED: + this.enterOuterAlt(localctx, 1); + this.state = 10191; + this.match(TSqlParser.UNBOUNDED); + this.state = 10192; + this.match(TSqlParser.FOLLOWING); + break; + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 2); + this.state = 10193; + this.match(TSqlParser.DECIMAL); + this.state = 10194; + this.match(TSqlParser.FOLLOWING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_database_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_database_option; + return this; +} + +Create_database_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_database_optionContext.prototype.constructor = Create_database_optionContext; + +Create_database_optionContext.prototype.FILESTREAM = function() { + return this.getToken(TSqlParser.FILESTREAM, 0); +}; + +Create_database_optionContext.prototype.database_filestream_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Database_filestream_optionContext); + } else { + return this.getTypedRuleContext(Database_filestream_optionContext,i); + } +}; + +Create_database_optionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_database_optionContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +Create_database_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_database_optionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_database_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_database_optionContext.prototype.DEFAULT_FULLTEXT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE, 0); +}; + +Create_database_optionContext.prototype.NESTED_TRIGGERS = function() { + return this.getToken(TSqlParser.NESTED_TRIGGERS, 0); +}; + +Create_database_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_database_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_database_optionContext.prototype.TRANSFORM_NOISE_WORDS = function() { + return this.getToken(TSqlParser.TRANSFORM_NOISE_WORDS, 0); +}; + +Create_database_optionContext.prototype.TWO_DIGIT_YEAR_CUTOFF = function() { + return this.getToken(TSqlParser.TWO_DIGIT_YEAR_CUTOFF, 0); +}; + +Create_database_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_database_optionContext.prototype.DB_CHAINING = function() { + return this.getToken(TSqlParser.DB_CHAINING, 0); +}; + +Create_database_optionContext.prototype.TRUSTWORTHY = function() { + return this.getToken(TSqlParser.TRUSTWORTHY, 0); +}; + +Create_database_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_database_option(this); + } +}; + +Create_database_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_database_option(this); + } +}; + +Create_database_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_database_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_database_optionContext = Create_database_optionContext; + +TSqlParser.prototype.create_database_option = function() { + + var localctx = new Create_database_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 890, TSqlParser.RULE_create_database_option); + var _la = 0; // Token type + try { + this.state = 10231; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILESTREAM: + this.enterOuterAlt(localctx, 1); + this.state = 10197; + this.match(TSqlParser.FILESTREAM); + + this.state = 10198; + this.database_filestream_option(); + this.state = 10203; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1428,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10199; + this.match(TSqlParser.COMMA); + this.state = 10200; + this.database_filestream_option(); + } + this.state = 10205; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1428,this._ctx); + } + + break; + case TSqlParser.DEFAULT_LANGUAGE: + this.enterOuterAlt(localctx, 2); + this.state = 10206; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 10207; + this.match(TSqlParser.EQUAL); + this.state = 10210; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 10208; + this.id(); + break; + case TSqlParser.STRING: + this.state = 10209; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + this.enterOuterAlt(localctx, 3); + this.state = 10212; + this.match(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE); + this.state = 10213; + this.match(TSqlParser.EQUAL); + this.state = 10216; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 10214; + this.id(); + break; + case TSqlParser.STRING: + this.state = 10215; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NESTED_TRIGGERS: + this.enterOuterAlt(localctx, 4); + this.state = 10218; + this.match(TSqlParser.NESTED_TRIGGERS); + this.state = 10219; + this.match(TSqlParser.EQUAL); + this.state = 10220; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TRANSFORM_NOISE_WORDS: + this.enterOuterAlt(localctx, 5); + this.state = 10221; + this.match(TSqlParser.TRANSFORM_NOISE_WORDS); + this.state = 10222; + this.match(TSqlParser.EQUAL); + this.state = 10223; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + this.enterOuterAlt(localctx, 6); + this.state = 10224; + this.match(TSqlParser.TWO_DIGIT_YEAR_CUTOFF); + this.state = 10225; + this.match(TSqlParser.EQUAL); + this.state = 10226; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.DB_CHAINING: + this.enterOuterAlt(localctx, 7); + this.state = 10227; + this.match(TSqlParser.DB_CHAINING); + this.state = 10228; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TRUSTWORTHY: + this.enterOuterAlt(localctx, 8); + this.state = 10229; + this.match(TSqlParser.TRUSTWORTHY); + this.state = 10230; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Database_filestream_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_database_filestream_option; + return this; +} + +Database_filestream_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Database_filestream_optionContext.prototype.constructor = Database_filestream_optionContext; + +Database_filestream_optionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Database_filestream_optionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Database_filestream_optionContext.prototype.NON_TRANSACTED_ACCESS = function() { + return this.getToken(TSqlParser.NON_TRANSACTED_ACCESS, 0); +}; + +Database_filestream_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Database_filestream_optionContext.prototype.DIRECTORY_NAME = function() { + return this.getToken(TSqlParser.DIRECTORY_NAME, 0); +}; + +Database_filestream_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Database_filestream_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Database_filestream_optionContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Database_filestream_optionContext.prototype.FULL = function() { + return this.getToken(TSqlParser.FULL, 0); +}; + +Database_filestream_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDatabase_filestream_option(this); + } +}; + +Database_filestream_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDatabase_filestream_option(this); + } +}; + +Database_filestream_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDatabase_filestream_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Database_filestream_optionContext = Database_filestream_optionContext; + +TSqlParser.prototype.database_filestream_option = function() { + + var localctx = new Database_filestream_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 892, TSqlParser.RULE_database_filestream_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10233; + this.match(TSqlParser.LR_BRACKET); + this.state = 10240; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NON_TRANSACTED_ACCESS: + this.state = 10234; + this.match(TSqlParser.NON_TRANSACTED_ACCESS); + this.state = 10235; + this.match(TSqlParser.EQUAL); + this.state = 10236; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FULL || _la===TSqlParser.OFF || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DIRECTORY_NAME: + this.state = 10237; + this.match(TSqlParser.DIRECTORY_NAME); + this.state = 10238; + this.match(TSqlParser.EQUAL); + this.state = 10239; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10242; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Database_file_specContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_database_file_spec; + return this; +} + +Database_file_specContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Database_file_specContext.prototype.constructor = Database_file_specContext; + +Database_file_specContext.prototype.file_group = function() { + return this.getTypedRuleContext(File_groupContext,0); +}; + +Database_file_specContext.prototype.file_spec = function() { + return this.getTypedRuleContext(File_specContext,0); +}; + +Database_file_specContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDatabase_file_spec(this); + } +}; + +Database_file_specContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDatabase_file_spec(this); + } +}; + +Database_file_specContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDatabase_file_spec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Database_file_specContext = Database_file_specContext; + +TSqlParser.prototype.database_file_spec = function() { + + var localctx = new Database_file_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 894, TSqlParser.RULE_database_file_spec); + try { + this.state = 10246; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILEGROUP: + this.enterOuterAlt(localctx, 1); + this.state = 10244; + this.file_group(); + break; + case TSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 10245; + this.file_spec(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_group; + return this; +} + +File_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_groupContext.prototype.constructor = File_groupContext; + +File_groupContext.prototype.FILEGROUP = function() { + return this.getToken(TSqlParser.FILEGROUP, 0); +}; + +File_groupContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +File_groupContext.prototype.file_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_specContext); + } else { + return this.getTypedRuleContext(File_specContext,i); + } +}; + +File_groupContext.prototype.CONTAINS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTAINS); + } else { + return this.getToken(TSqlParser.CONTAINS, i); + } +}; + + +File_groupContext.prototype.FILESTREAM = function() { + return this.getToken(TSqlParser.FILESTREAM, 0); +}; + +File_groupContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +File_groupContext.prototype.MEMORY_OPTIMIZED_DATA = function() { + return this.getToken(TSqlParser.MEMORY_OPTIMIZED_DATA, 0); +}; + +File_groupContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +File_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_group(this); + } +}; + +File_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_group(this); + } +}; + +File_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_groupContext = File_groupContext; + +TSqlParser.prototype.file_group = function() { + + var localctx = new File_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 896, TSqlParser.RULE_file_group); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10248; + this.match(TSqlParser.FILEGROUP); + this.state = 10249; + this.id(); + this.state = 10252; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1434,this._ctx); + if(la_===1) { + this.state = 10250; + this.match(TSqlParser.CONTAINS); + this.state = 10251; + this.match(TSqlParser.FILESTREAM); + + } + this.state = 10255; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DEFAULT) { + this.state = 10254; + this.match(TSqlParser.DEFAULT); + } + + this.state = 10259; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTAINS) { + this.state = 10257; + this.match(TSqlParser.CONTAINS); + this.state = 10258; + this.match(TSqlParser.MEMORY_OPTIMIZED_DATA); + } + + this.state = 10261; + this.file_spec(); + this.state = 10266; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1437,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10262; + this.match(TSqlParser.COMMA); + this.state = 10263; + this.file_spec(); + } + this.state = 10268; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1437,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_specContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_spec; + this.file = null; // Token + return this; +} + +File_specContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_specContext.prototype.constructor = File_specContext; + +File_specContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +File_specContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +File_specContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +File_specContext.prototype.FILENAME = function() { + return this.getToken(TSqlParser.FILENAME, 0); +}; + +File_specContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +File_specContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +File_specContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +File_specContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +File_specContext.prototype.SIZE = function() { + return this.getToken(TSqlParser.SIZE, 0); +}; + +File_specContext.prototype.file_size = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_sizeContext); + } else { + return this.getTypedRuleContext(File_sizeContext,i); + } +}; + +File_specContext.prototype.MAXSIZE = function() { + return this.getToken(TSqlParser.MAXSIZE, 0); +}; + +File_specContext.prototype.FILEGROWTH = function() { + return this.getToken(TSqlParser.FILEGROWTH, 0); +}; + +File_specContext.prototype.UNLIMITED = function() { + return this.getToken(TSqlParser.UNLIMITED, 0); +}; + +File_specContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_spec(this); + } +}; + +File_specContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_spec(this); + } +}; + +File_specContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_spec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_specContext = File_specContext; + +TSqlParser.prototype.file_spec = function() { + + var localctx = new File_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 898, TSqlParser.RULE_file_spec); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10269; + this.match(TSqlParser.LR_BRACKET); + this.state = 10270; + this.match(TSqlParser.NAME); + this.state = 10271; + this.match(TSqlParser.EQUAL); + this.state = 10274; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 10272; + this.id(); + break; + case TSqlParser.STRING: + this.state = 10273; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10277; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10276; + this.match(TSqlParser.COMMA); + } + + this.state = 10279; + this.match(TSqlParser.FILENAME); + this.state = 10280; + this.match(TSqlParser.EQUAL); + this.state = 10281; + localctx.file = this.match(TSqlParser.STRING); + this.state = 10283; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10282; + this.match(TSqlParser.COMMA); + } + + this.state = 10291; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SIZE) { + this.state = 10285; + this.match(TSqlParser.SIZE); + this.state = 10286; + this.match(TSqlParser.EQUAL); + this.state = 10287; + this.file_size(); + this.state = 10289; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10288; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10302; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAXSIZE) { + this.state = 10293; + this.match(TSqlParser.MAXSIZE); + this.state = 10294; + this.match(TSqlParser.EQUAL); + this.state = 10297; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 10295; + this.file_size(); + break; + case TSqlParser.UNLIMITED: + this.state = 10296; + this.match(TSqlParser.UNLIMITED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10300; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10299; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10310; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FILEGROWTH) { + this.state = 10304; + this.match(TSqlParser.FILEGROWTH); + this.state = 10305; + this.match(TSqlParser.EQUAL); + this.state = 10306; + this.file_size(); + this.state = 10308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10307; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10312; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Entity_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_entity_name; + this.server = null; // IdContext + this.database = null; // IdContext + this.schema = null; // IdContext + this.table = null; // IdContext + return this; +} + +Entity_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Entity_nameContext.prototype.constructor = Entity_nameContext; + +Entity_nameContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Entity_nameContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Entity_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEntity_name(this); + } +}; + +Entity_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEntity_name(this); + } +}; + +Entity_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEntity_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Entity_nameContext = Entity_nameContext; + +TSqlParser.prototype.entity_name = function() { + + var localctx = new Entity_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 900, TSqlParser.RULE_entity_name); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10331; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1449,this._ctx); + if(la_===1) { + this.state = 10314; + localctx.server = this.id(); + this.state = 10315; + this.match(TSqlParser.DOT); + this.state = 10316; + localctx.database = this.id(); + this.state = 10317; + this.match(TSqlParser.DOT); + this.state = 10318; + localctx.schema = this.id(); + this.state = 10319; + this.match(TSqlParser.DOT); + + } else if(la_===2) { + this.state = 10321; + localctx.database = this.id(); + this.state = 10322; + this.match(TSqlParser.DOT); + this.state = 10324; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10323; + localctx.schema = this.id(); + } + + this.state = 10326; + this.match(TSqlParser.DOT); + + } else if(la_===3) { + this.state = 10328; + localctx.schema = this.id(); + this.state = 10329; + this.match(TSqlParser.DOT); + + } + this.state = 10333; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Entity_name_for_azure_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_entity_name_for_azure_dw; + this.schema = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Entity_name_for_azure_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Entity_name_for_azure_dwContext.prototype.constructor = Entity_name_for_azure_dwContext; + +Entity_name_for_azure_dwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Entity_name_for_azure_dwContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Entity_name_for_azure_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEntity_name_for_azure_dw(this); + } +}; + +Entity_name_for_azure_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEntity_name_for_azure_dw(this); + } +}; + +Entity_name_for_azure_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEntity_name_for_azure_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Entity_name_for_azure_dwContext = Entity_name_for_azure_dwContext; + +TSqlParser.prototype.entity_name_for_azure_dw = function() { + + var localctx = new Entity_name_for_azure_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 902, TSqlParser.RULE_entity_name_for_azure_dw); + try { + this.state = 10340; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1450,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10335; + localctx.schema = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10336; + localctx.schema = this.id(); + this.state = 10337; + this.match(TSqlParser.DOT); + this.state = 10338; + localctx.object_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Entity_name_for_parallel_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_entity_name_for_parallel_dw; + this.schema_database = null; // IdContext + this.schema = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Entity_name_for_parallel_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Entity_name_for_parallel_dwContext.prototype.constructor = Entity_name_for_parallel_dwContext; + +Entity_name_for_parallel_dwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Entity_name_for_parallel_dwContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Entity_name_for_parallel_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEntity_name_for_parallel_dw(this); + } +}; + +Entity_name_for_parallel_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEntity_name_for_parallel_dw(this); + } +}; + +Entity_name_for_parallel_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEntity_name_for_parallel_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Entity_name_for_parallel_dwContext = Entity_name_for_parallel_dwContext; + +TSqlParser.prototype.entity_name_for_parallel_dw = function() { + + var localctx = new Entity_name_for_parallel_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 904, TSqlParser.RULE_entity_name_for_parallel_dw); + try { + this.state = 10347; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1451,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10342; + localctx.schema_database = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10343; + localctx.schema = this.id(); + this.state = 10344; + this.match(TSqlParser.DOT); + this.state = 10345; + localctx.object_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Full_table_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_full_table_name; + this.server = null; // IdContext + this.database = null; // IdContext + this.schema = null; // IdContext + this.table = null; // IdContext + return this; +} + +Full_table_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Full_table_nameContext.prototype.constructor = Full_table_nameContext; + +Full_table_nameContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Full_table_nameContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Full_table_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFull_table_name(this); + } +}; + +Full_table_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFull_table_name(this); + } +}; + +Full_table_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFull_table_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Full_table_nameContext = Full_table_nameContext; + +TSqlParser.prototype.full_table_name = function() { + + var localctx = new Full_table_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 906, TSqlParser.RULE_full_table_name); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10366; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1453,this._ctx); + if(la_===1) { + this.state = 10349; + localctx.server = this.id(); + this.state = 10350; + this.match(TSqlParser.DOT); + this.state = 10351; + localctx.database = this.id(); + this.state = 10352; + this.match(TSqlParser.DOT); + this.state = 10353; + localctx.schema = this.id(); + this.state = 10354; + this.match(TSqlParser.DOT); + + } else if(la_===2) { + this.state = 10356; + localctx.database = this.id(); + this.state = 10357; + this.match(TSqlParser.DOT); + this.state = 10359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10358; + localctx.schema = this.id(); + } + + this.state = 10361; + this.match(TSqlParser.DOT); + + } else if(la_===3) { + this.state = 10363; + localctx.schema = this.id(); + this.state = 10364; + this.match(TSqlParser.DOT); + + } + this.state = 10368; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_name; + this.database = null; // IdContext + this.schema = null; // IdContext + this.table = null; // IdContext + return this; +} + +Table_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_nameContext.prototype.constructor = Table_nameContext; + +Table_nameContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Table_nameContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Table_nameContext.prototype.BLOCKING_HIERARCHY = function() { + return this.getToken(TSqlParser.BLOCKING_HIERARCHY, 0); +}; + +Table_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_name(this); + } +}; + +Table_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_name(this); + } +}; + +Table_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_nameContext = Table_nameContext; + +TSqlParser.prototype.table_name = function() { + + var localctx = new Table_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 908, TSqlParser.RULE_table_name); + var _la = 0; // Token type + try { + this.state = 10396; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1458,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10380; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1455,this._ctx); + if(la_===1) { + this.state = 10370; + localctx.database = this.id(); + this.state = 10371; + this.match(TSqlParser.DOT); + this.state = 10373; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10372; + localctx.schema = this.id(); + } + + this.state = 10375; + this.match(TSqlParser.DOT); + + } else if(la_===2) { + this.state = 10377; + localctx.schema = this.id(); + this.state = 10378; + this.match(TSqlParser.DOT); + + } + this.state = 10382; + localctx.table = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10393; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1457,this._ctx); + if(la_===1) { + this.state = 10383; + localctx.database = this.id(); + this.state = 10384; + this.match(TSqlParser.DOT); + this.state = 10386; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10385; + localctx.schema = this.id(); + } + + this.state = 10388; + this.match(TSqlParser.DOT); + + } else if(la_===2) { + this.state = 10390; + localctx.schema = this.id(); + this.state = 10391; + this.match(TSqlParser.DOT); + + } + this.state = 10395; + this.match(TSqlParser.BLOCKING_HIERARCHY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Simple_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_simple_name; + this.schema = null; // IdContext + this.name = null; // IdContext + return this; +} + +Simple_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Simple_nameContext.prototype.constructor = Simple_nameContext; + +Simple_nameContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Simple_nameContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Simple_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSimple_name(this); + } +}; + +Simple_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSimple_name(this); + } +}; + +Simple_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSimple_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Simple_nameContext = Simple_nameContext; + +TSqlParser.prototype.simple_name = function() { + + var localctx = new Simple_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 910, TSqlParser.RULE_simple_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10401; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1459,this._ctx); + if(la_===1) { + this.state = 10398; + localctx.schema = this.id(); + this.state = 10399; + this.match(TSqlParser.DOT); + + } + this.state = 10403; + localctx.name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_proc_name_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_proc_name_schema; + this.schema = null; // IdContext + this.procedure = null; // IdContext + return this; +} + +Func_proc_name_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_proc_name_schemaContext.prototype.constructor = Func_proc_name_schemaContext; + +Func_proc_name_schemaContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Func_proc_name_schemaContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Func_proc_name_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_proc_name_schema(this); + } +}; + +Func_proc_name_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_proc_name_schema(this); + } +}; + +Func_proc_name_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_proc_name_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_proc_name_schemaContext = Func_proc_name_schemaContext; + +TSqlParser.prototype.func_proc_name_schema = function() { + + var localctx = new Func_proc_name_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 912, TSqlParser.RULE_func_proc_name_schema); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10408; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1460,this._ctx); + if(la_===1) { + this.state = 10405; + localctx.schema = this.id(); + this.state = 10406; + this.match(TSqlParser.DOT); + + } + this.state = 10410; + localctx.procedure = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_proc_name_database_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_proc_name_database_schema; + this.database = null; // IdContext + this.schema = null; // IdContext + this.procedure = null; // IdContext + return this; +} + +Func_proc_name_database_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_proc_name_database_schemaContext.prototype.constructor = Func_proc_name_database_schemaContext; + +Func_proc_name_database_schemaContext.prototype.func_proc_name_schema = function() { + return this.getTypedRuleContext(Func_proc_name_schemaContext,0); +}; + +Func_proc_name_database_schemaContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Func_proc_name_database_schemaContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Func_proc_name_database_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_proc_name_database_schema(this); + } +}; + +Func_proc_name_database_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_proc_name_database_schema(this); + } +}; + +Func_proc_name_database_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_proc_name_database_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_proc_name_database_schemaContext = Func_proc_name_database_schemaContext; + +TSqlParser.prototype.func_proc_name_database_schema = function() { + + var localctx = new Func_proc_name_database_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 914, TSqlParser.RULE_func_proc_name_database_schema); + var _la = 0; // Token type + try { + this.state = 10423; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1463,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10412; + this.func_proc_name_schema(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10420; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1462,this._ctx); + if(la_===1) { + this.state = 10413; + localctx.database = this.id(); + this.state = 10414; + this.match(TSqlParser.DOT); + this.state = 10416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10415; + localctx.schema = this.id(); + } + + this.state = 10418; + this.match(TSqlParser.DOT); + + } + this.state = 10422; + localctx.procedure = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_proc_name_server_database_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_proc_name_server_database_schema; + this.server = null; // IdContext + this.database = null; // IdContext + this.schema = null; // IdContext + this.procedure = null; // IdContext + return this; +} + +Func_proc_name_server_database_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_proc_name_server_database_schemaContext.prototype.constructor = Func_proc_name_server_database_schemaContext; + +Func_proc_name_server_database_schemaContext.prototype.func_proc_name_database_schema = function() { + return this.getTypedRuleContext(Func_proc_name_database_schemaContext,0); +}; + +Func_proc_name_server_database_schemaContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Func_proc_name_server_database_schemaContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Func_proc_name_server_database_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_proc_name_server_database_schema(this); + } +}; + +Func_proc_name_server_database_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_proc_name_server_database_schema(this); + } +}; + +Func_proc_name_server_database_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_proc_name_server_database_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_proc_name_server_database_schemaContext = Func_proc_name_server_database_schemaContext; + +TSqlParser.prototype.func_proc_name_server_database_schema = function() { + + var localctx = new Func_proc_name_server_database_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 916, TSqlParser.RULE_func_proc_name_server_database_schema); + var _la = 0; // Token type + try { + this.state = 10438; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1466,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10425; + this.func_proc_name_database_schema(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10435; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1465,this._ctx); + if(la_===1) { + this.state = 10426; + localctx.server = this.id(); + this.state = 10427; + this.match(TSqlParser.DOT); + this.state = 10428; + localctx.database = this.id(); + this.state = 10429; + this.match(TSqlParser.DOT); + this.state = 10431; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10430; + localctx.schema = this.id(); + } + + this.state = 10433; + this.match(TSqlParser.DOT); + + } + this.state = 10437; + localctx.procedure = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Ddl_objectContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_ddl_object; + return this; +} + +Ddl_objectContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Ddl_objectContext.prototype.constructor = Ddl_objectContext; + +Ddl_objectContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Ddl_objectContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Ddl_objectContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDdl_object(this); + } +}; + +Ddl_objectContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDdl_object(this); + } +}; + +Ddl_objectContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDdl_object(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Ddl_objectContext = Ddl_objectContext; + +TSqlParser.prototype.ddl_object = function() { + + var localctx = new Ddl_objectContext(this, this._ctx, this.state); + this.enterRule(localctx, 918, TSqlParser.RULE_ddl_object); + try { + this.state = 10442; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10440; + this.full_table_name(); + break; + case TSqlParser.LOCAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 10441; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Full_column_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_full_column_name; + this.column_name = null; // IdContext + return this; +} + +Full_column_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Full_column_nameContext.prototype.constructor = Full_column_nameContext; + +Full_column_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Full_column_nameContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Full_column_nameContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Full_column_nameContext.prototype.COMPATIBILITY_LEVEL = function() { + return this.getToken(TSqlParser.COMPATIBILITY_LEVEL, 0); +}; + +Full_column_nameContext.prototype.STATUS = function() { + return this.getToken(TSqlParser.STATUS, 0); +}; + +Full_column_nameContext.prototype.QUOTED_IDENTIFIER = function() { + return this.getToken(TSqlParser.QUOTED_IDENTIFIER, 0); +}; + +Full_column_nameContext.prototype.ARITHABORT = function() { + return this.getToken(TSqlParser.ARITHABORT, 0); +}; + +Full_column_nameContext.prototype.ANSI_WARNINGS = function() { + return this.getToken(TSqlParser.ANSI_WARNINGS, 0); +}; + +Full_column_nameContext.prototype.ANSI_PADDING = function() { + return this.getToken(TSqlParser.ANSI_PADDING, 0); +}; + +Full_column_nameContext.prototype.ANSI_NULLS = function() { + return this.getToken(TSqlParser.ANSI_NULLS, 0); +}; + +Full_column_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFull_column_name(this); + } +}; + +Full_column_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFull_column_name(this); + } +}; + +Full_column_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFull_column_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Full_column_nameContext = Full_column_nameContext; + +TSqlParser.prototype.full_column_name = function() { + + var localctx = new Full_column_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 920, TSqlParser.RULE_full_column_name); + try { + this.state = 10492; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1476,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10447; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1468,this._ctx); + if(la_===1) { + this.state = 10444; + this.table_name(); + this.state = 10445; + this.match(TSqlParser.DOT); + + } + this.state = 10449; + localctx.column_name = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10453; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1469,this._ctx); + if(la_===1) { + this.state = 10450; + this.table_name(); + this.state = 10451; + this.match(TSqlParser.DOT); + + } + this.state = 10455; + this.match(TSqlParser.COMPATIBILITY_LEVEL); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10459; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1470,this._ctx); + if(la_===1) { + this.state = 10456; + this.table_name(); + this.state = 10457; + this.match(TSqlParser.DOT); + + } + this.state = 10461; + this.match(TSqlParser.STATUS); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10465; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1471,this._ctx); + if(la_===1) { + this.state = 10462; + this.table_name(); + this.state = 10463; + this.match(TSqlParser.DOT); + + } + this.state = 10467; + this.match(TSqlParser.QUOTED_IDENTIFIER); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10471; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1472,this._ctx); + if(la_===1) { + this.state = 10468; + this.table_name(); + this.state = 10469; + this.match(TSqlParser.DOT); + + } + this.state = 10473; + this.match(TSqlParser.ARITHABORT); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10477; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1473,this._ctx); + if(la_===1) { + this.state = 10474; + this.table_name(); + this.state = 10475; + this.match(TSqlParser.DOT); + + } + this.state = 10479; + this.match(TSqlParser.ANSI_WARNINGS); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 10483; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1474,this._ctx); + if(la_===1) { + this.state = 10480; + this.table_name(); + this.state = 10481; + this.match(TSqlParser.DOT); + + } + this.state = 10485; + this.match(TSqlParser.ANSI_PADDING); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 10489; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1475,this._ctx); + if(la_===1) { + this.state = 10486; + this.table_name(); + this.state = 10487; + this.match(TSqlParser.DOT); + + } + this.state = 10491; + this.match(TSqlParser.ANSI_NULLS); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_name_list_with_orderContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_name_list_with_order; + return this; +} + +Column_name_list_with_orderContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_name_list_with_orderContext.prototype.constructor = Column_name_list_with_orderContext; + +Column_name_list_with_orderContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Column_name_list_with_orderContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Column_name_list_with_orderContext.prototype.ASC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASC); + } else { + return this.getToken(TSqlParser.ASC, i); + } +}; + + +Column_name_list_with_orderContext.prototype.DESC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DESC); + } else { + return this.getToken(TSqlParser.DESC, i); + } +}; + + +Column_name_list_with_orderContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_name_list_with_order(this); + } +}; + +Column_name_list_with_orderContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_name_list_with_order(this); + } +}; + +Column_name_list_with_orderContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_name_list_with_order(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_name_list_with_orderContext = Column_name_list_with_orderContext; + +TSqlParser.prototype.column_name_list_with_order = function() { + + var localctx = new Column_name_list_with_orderContext(this, this._ctx, this.state); + this.enterRule(localctx, 922, TSqlParser.RULE_column_name_list_with_order); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10494; + this.id(); + this.state = 10496; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ASC || _la===TSqlParser.DESC) { + this.state = 10495; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASC || _la===TSqlParser.DESC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10505; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10498; + this.match(TSqlParser.COMMA); + this.state = 10499; + this.id(); + this.state = 10501; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ASC || _la===TSqlParser.DESC) { + this.state = 10500; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASC || _la===TSqlParser.DESC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10507; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_name_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_name_list; + return this; +} + +Column_name_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_name_listContext.prototype.constructor = Column_name_listContext; + +Column_name_listContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Column_name_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Column_name_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_name_list(this); + } +}; + +Column_name_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_name_list(this); + } +}; + +Column_name_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_name_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_name_listContext = Column_name_listContext; + +TSqlParser.prototype.column_name_list = function() { + + var localctx = new Column_name_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 924, TSqlParser.RULE_column_name_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10508; + this.id(); + this.state = 10513; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10509; + this.match(TSqlParser.COMMA); + this.state = 10510; + this.id(); + this.state = 10515; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Cursor_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_cursor_name; + return this; +} + +Cursor_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Cursor_nameContext.prototype.constructor = Cursor_nameContext; + +Cursor_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Cursor_nameContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Cursor_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCursor_name(this); + } +}; + +Cursor_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCursor_name(this); + } +}; + +Cursor_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCursor_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Cursor_nameContext = Cursor_nameContext; + +TSqlParser.prototype.cursor_name = function() { + + var localctx = new Cursor_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 926, TSqlParser.RULE_cursor_name); + try { + this.state = 10518; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10516; + this.id(); + break; + case TSqlParser.LOCAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 10517; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function On_offContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_on_off; + return this; +} + +On_offContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +On_offContext.prototype.constructor = On_offContext; + +On_offContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +On_offContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +On_offContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOn_off(this); + } +}; + +On_offContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOn_off(this); + } +}; + +On_offContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOn_off(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.On_offContext = On_offContext; + +TSqlParser.prototype.on_off = function() { + + var localctx = new On_offContext(this, this._ctx, this.state); + this.enterRule(localctx, 928, TSqlParser.RULE_on_off); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10520; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ClusteredContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_clustered; + return this; +} + +ClusteredContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ClusteredContext.prototype.constructor = ClusteredContext; + +ClusteredContext.prototype.CLUSTERED = function() { + return this.getToken(TSqlParser.CLUSTERED, 0); +}; + +ClusteredContext.prototype.NONCLUSTERED = function() { + return this.getToken(TSqlParser.NONCLUSTERED, 0); +}; + +ClusteredContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClustered(this); + } +}; + +ClusteredContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClustered(this); + } +}; + +ClusteredContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClustered(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.ClusteredContext = ClusteredContext; + +TSqlParser.prototype.clustered = function() { + + var localctx = new ClusteredContext(this, this._ctx, this.state); + this.enterRule(localctx, 930, TSqlParser.RULE_clustered); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10522; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CLUSTERED || _la===TSqlParser.NONCLUSTERED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Null_notnullContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_null_notnull; + return this; +} + +Null_notnullContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Null_notnullContext.prototype.constructor = Null_notnullContext; + +Null_notnullContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Null_notnullContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Null_notnullContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNull_notnull(this); + } +}; + +Null_notnullContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNull_notnull(this); + } +}; + +Null_notnullContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNull_notnull(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Null_notnullContext = Null_notnullContext; + +TSqlParser.prototype.null_notnull = function() { + + var localctx = new Null_notnullContext(this, this._ctx, this.state); + this.enterRule(localctx, 932, TSqlParser.RULE_null_notnull); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10525; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 10524; + this.match(TSqlParser.NOT); + } + + this.state = 10527; + this.match(TSqlParser.NULL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Null_or_defaultContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_null_or_default; + return this; +} + +Null_or_defaultContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Null_or_defaultContext.prototype.constructor = Null_or_defaultContext; + +Null_or_defaultContext.prototype.null_notnull = function() { + return this.getTypedRuleContext(Null_notnullContext,0); +}; + +Null_or_defaultContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Null_or_defaultContext.prototype.constant_expression = function() { + return this.getTypedRuleContext(Constant_expressionContext,0); +}; + +Null_or_defaultContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Null_or_defaultContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Null_or_defaultContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNull_or_default(this); + } +}; + +Null_or_defaultContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNull_or_default(this); + } +}; + +Null_or_defaultContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNull_or_default(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Null_or_defaultContext = Null_or_defaultContext; + +TSqlParser.prototype.null_or_default = function() { + + var localctx = new Null_or_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 934, TSqlParser.RULE_null_or_default); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10536; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NOT: + case TSqlParser.NULL: + this.state = 10529; + this.null_notnull(); + break; + case TSqlParser.DEFAULT: + this.state = 10530; + this.match(TSqlParser.DEFAULT); + this.state = 10531; + this.constant_expression(); + this.state = 10534; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1483,this._ctx); + if(la_===1) { + this.state = 10532; + this.match(TSqlParser.WITH); + this.state = 10533; + this.match(TSqlParser.VALUES); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Scalar_function_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_scalar_function_name; + return this; +} + +Scalar_function_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Scalar_function_nameContext.prototype.constructor = Scalar_function_nameContext; + +Scalar_function_nameContext.prototype.func_proc_name_server_database_schema = function() { + return this.getTypedRuleContext(Func_proc_name_server_database_schemaContext,0); +}; + +Scalar_function_nameContext.prototype.RIGHT = function() { + return this.getToken(TSqlParser.RIGHT, 0); +}; + +Scalar_function_nameContext.prototype.LEFT = function() { + return this.getToken(TSqlParser.LEFT, 0); +}; + +Scalar_function_nameContext.prototype.BINARY_CHECKSUM = function() { + return this.getToken(TSqlParser.BINARY_CHECKSUM, 0); +}; + +Scalar_function_nameContext.prototype.CHECKSUM = function() { + return this.getToken(TSqlParser.CHECKSUM, 0); +}; + +Scalar_function_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterScalar_function_name(this); + } +}; + +Scalar_function_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitScalar_function_name(this); + } +}; + +Scalar_function_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitScalar_function_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Scalar_function_nameContext = Scalar_function_nameContext; + +TSqlParser.prototype.scalar_function_name = function() { + + var localctx = new Scalar_function_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 936, TSqlParser.RULE_scalar_function_name); + try { + this.state = 10543; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1485,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10538; + this.func_proc_name_server_database_schema(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10539; + this.match(TSqlParser.RIGHT); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10540; + this.match(TSqlParser.LEFT); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10541; + this.match(TSqlParser.BINARY_CHECKSUM); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10542; + this.match(TSqlParser.CHECKSUM); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Begin_conversation_timerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_begin_conversation_timer; + return this; +} + +Begin_conversation_timerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Begin_conversation_timerContext.prototype.constructor = Begin_conversation_timerContext; + +Begin_conversation_timerContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Begin_conversation_timerContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Begin_conversation_timerContext.prototype.TIMER = function() { + return this.getToken(TSqlParser.TIMER, 0); +}; + +Begin_conversation_timerContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Begin_conversation_timerContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Begin_conversation_timerContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Begin_conversation_timerContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Begin_conversation_timerContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Begin_conversation_timerContext.prototype.time = function() { + return this.getTypedRuleContext(TimeContext,0); +}; + +Begin_conversation_timerContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Begin_conversation_timerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBegin_conversation_timer(this); + } +}; + +Begin_conversation_timerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBegin_conversation_timer(this); + } +}; + +Begin_conversation_timerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBegin_conversation_timer(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Begin_conversation_timerContext = Begin_conversation_timerContext; + +TSqlParser.prototype.begin_conversation_timer = function() { + + var localctx = new Begin_conversation_timerContext(this, this._ctx, this.state); + this.enterRule(localctx, 938, TSqlParser.RULE_begin_conversation_timer); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10545; + this.match(TSqlParser.BEGIN); + this.state = 10546; + this.match(TSqlParser.CONVERSATION); + this.state = 10547; + this.match(TSqlParser.TIMER); + this.state = 10548; + this.match(TSqlParser.LR_BRACKET); + this.state = 10549; + this.match(TSqlParser.LOCAL_ID); + this.state = 10550; + this.match(TSqlParser.RR_BRACKET); + this.state = 10551; + this.match(TSqlParser.TIMEOUT); + this.state = 10552; + this.match(TSqlParser.EQUAL); + this.state = 10553; + this.time(); + this.state = 10555; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1486,this._ctx); + if(la_===1) { + this.state = 10554; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Begin_conversation_dialogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_begin_conversation_dialog; + this.dialog_handle = null; // Token + this.initiator_service_name = null; // Service_nameContext + this.target_service_name = null; // Service_nameContext + this.service_broker_guid = null; // Token + return this; +} + +Begin_conversation_dialogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Begin_conversation_dialogContext.prototype.constructor = Begin_conversation_dialogContext; + +Begin_conversation_dialogContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Begin_conversation_dialogContext.prototype.DIALOG = function() { + return this.getToken(TSqlParser.DIALOG, 0); +}; + +Begin_conversation_dialogContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Begin_conversation_dialogContext.prototype.SERVICE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVICE); + } else { + return this.getToken(TSqlParser.SERVICE, i); + } +}; + + +Begin_conversation_dialogContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Begin_conversation_dialogContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Begin_conversation_dialogContext.prototype.CONTRACT = function() { + return this.getToken(TSqlParser.CONTRACT, 0); +}; + +Begin_conversation_dialogContext.prototype.contract_name = function() { + return this.getTypedRuleContext(Contract_nameContext,0); +}; + +Begin_conversation_dialogContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Begin_conversation_dialogContext.prototype.service_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Service_nameContext); + } else { + return this.getTypedRuleContext(Service_nameContext,i); + } +}; + +Begin_conversation_dialogContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Begin_conversation_dialogContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Begin_conversation_dialogContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Begin_conversation_dialogContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Begin_conversation_dialogContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Begin_conversation_dialogContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Begin_conversation_dialogContext.prototype.LIFETIME = function() { + return this.getToken(TSqlParser.LIFETIME, 0); +}; + +Begin_conversation_dialogContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Begin_conversation_dialogContext.prototype.RELATED_CONVERSATION = function() { + return this.getToken(TSqlParser.RELATED_CONVERSATION, 0); +}; + +Begin_conversation_dialogContext.prototype.RELATED_CONVERSATION_GROUP = function() { + return this.getToken(TSqlParser.RELATED_CONVERSATION_GROUP, 0); +}; + +Begin_conversation_dialogContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Begin_conversation_dialogContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Begin_conversation_dialogContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBegin_conversation_dialog(this); + } +}; + +Begin_conversation_dialogContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBegin_conversation_dialog(this); + } +}; + +Begin_conversation_dialogContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBegin_conversation_dialog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Begin_conversation_dialogContext = Begin_conversation_dialogContext; + +TSqlParser.prototype.begin_conversation_dialog = function() { + + var localctx = new Begin_conversation_dialogContext(this, this._ctx, this.state); + this.enterRule(localctx, 940, TSqlParser.RULE_begin_conversation_dialog); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10557; + this.match(TSqlParser.BEGIN); + this.state = 10558; + this.match(TSqlParser.DIALOG); + this.state = 10560; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONVERSATION) { + this.state = 10559; + this.match(TSqlParser.CONVERSATION); + } + + this.state = 10562; + localctx.dialog_handle = this.match(TSqlParser.LOCAL_ID); + this.state = 10563; + this.match(TSqlParser.FROM); + this.state = 10564; + this.match(TSqlParser.SERVICE); + this.state = 10565; + localctx.initiator_service_name = this.service_name(); + this.state = 10566; + this.match(TSqlParser.TO); + this.state = 10567; + this.match(TSqlParser.SERVICE); + this.state = 10568; + localctx.target_service_name = this.service_name(); + this.state = 10571; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10569; + this.match(TSqlParser.COMMA); + this.state = 10570; + localctx.service_broker_guid = this.match(TSqlParser.STRING); + } + + this.state = 10573; + this.match(TSqlParser.ON); + this.state = 10574; + this.match(TSqlParser.CONTRACT); + this.state = 10575; + this.contract_name(); + this.state = 10598; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1494,this._ctx); + if(la_===1) { + this.state = 10576; + this.match(TSqlParser.WITH); + this.state = 10583; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RELATED_CONVERSATION || _la===TSqlParser.RELATED_CONVERSATION_GROUP) { + this.state = 10577; + _la = this._input.LA(1); + if(!(_la===TSqlParser.RELATED_CONVERSATION || _la===TSqlParser.RELATED_CONVERSATION_GROUP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10578; + this.match(TSqlParser.EQUAL); + this.state = 10579; + this.match(TSqlParser.LOCAL_ID); + this.state = 10581; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10580; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10591; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LIFETIME) { + this.state = 10585; + this.match(TSqlParser.LIFETIME); + this.state = 10586; + this.match(TSqlParser.EQUAL); + this.state = 10587; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10589; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10588; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10596; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1493,this._ctx); + if(la_===1) { + this.state = 10593; + this.match(TSqlParser.ENCRYPTION); + this.state = 10594; + this.match(TSqlParser.EQUAL); + this.state = 10595; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + + } + this.state = 10601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1495,this._ctx); + if(la_===1) { + this.state = 10600; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Contract_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_contract_name; + return this; +} + +Contract_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Contract_nameContext.prototype.constructor = Contract_nameContext; + +Contract_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Contract_nameContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Contract_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterContract_name(this); + } +}; + +Contract_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitContract_name(this); + } +}; + +Contract_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitContract_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Contract_nameContext = Contract_nameContext; + +TSqlParser.prototype.contract_name = function() { + + var localctx = new Contract_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 942, TSqlParser.RULE_contract_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10605; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1496,this._ctx); + switch(la_) { + case 1: + this.state = 10603; + this.id(); + break; + + case 2: + this.state = 10604; + this.expression(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Service_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_service_name; + return this; +} + +Service_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Service_nameContext.prototype.constructor = Service_nameContext; + +Service_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Service_nameContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Service_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterService_name(this); + } +}; + +Service_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitService_name(this); + } +}; + +Service_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitService_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Service_nameContext = Service_nameContext; + +TSqlParser.prototype.service_name = function() { + + var localctx = new Service_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 944, TSqlParser.RULE_service_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10609; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1497,this._ctx); + switch(la_) { + case 1: + this.state = 10607; + this.id(); + break; + + case 2: + this.state = 10608; + this.expression(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function End_conversationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_end_conversation; + this.conversation_handle = null; // Token + this.faliure_code = null; // Token + this.failure_text = null; // Token + return this; +} + +End_conversationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +End_conversationContext.prototype.constructor = End_conversationContext; + +End_conversationContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +End_conversationContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +End_conversationContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +End_conversationContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +End_conversationContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +End_conversationContext.prototype.ERROR = function() { + return this.getToken(TSqlParser.ERROR, 0); +}; + +End_conversationContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +End_conversationContext.prototype.DESCRIPTION = function() { + return this.getToken(TSqlParser.DESCRIPTION, 0); +}; + +End_conversationContext.prototype.CLEANUP = function() { + return this.getToken(TSqlParser.CLEANUP, 0); +}; + +End_conversationContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +End_conversationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEnd_conversation(this); + } +}; + +End_conversationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEnd_conversation(this); + } +}; + +End_conversationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEnd_conversation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.End_conversationContext = End_conversationContext; + +TSqlParser.prototype.end_conversation = function() { + + var localctx = new End_conversationContext(this, this._ctx, this.state); + this.enterRule(localctx, 946, TSqlParser.RULE_end_conversation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10611; + this.match(TSqlParser.END); + this.state = 10612; + this.match(TSqlParser.CONVERSATION); + this.state = 10613; + localctx.conversation_handle = this.match(TSqlParser.LOCAL_ID); + this.state = 10615; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1498,this._ctx); + if(la_===1) { + this.state = 10614; + this.match(TSqlParser.SEMI); + + } + this.state = 10629; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1501,this._ctx); + if(la_===1) { + this.state = 10617; + this.match(TSqlParser.WITH); + this.state = 10624; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ERROR) { + this.state = 10618; + this.match(TSqlParser.ERROR); + this.state = 10619; + this.match(TSqlParser.EQUAL); + this.state = 10620; + localctx.faliure_code = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.faliure_code = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10621; + this.match(TSqlParser.DESCRIPTION); + this.state = 10622; + this.match(TSqlParser.EQUAL); + this.state = 10623; + localctx.failure_text = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.failure_text = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10627; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1500,this._ctx); + if(la_===1) { + this.state = 10626; + this.match(TSqlParser.CLEANUP); + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Waitfor_conversationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_waitfor_conversation; + this.timeout = null; // TimeContext + return this; +} + +Waitfor_conversationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Waitfor_conversationContext.prototype.constructor = Waitfor_conversationContext; + +Waitfor_conversationContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Waitfor_conversationContext.prototype.get_conversation = function() { + return this.getTypedRuleContext(Get_conversationContext,0); +}; + +Waitfor_conversationContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Waitfor_conversationContext.prototype.WAITFOR = function() { + return this.getToken(TSqlParser.WAITFOR, 0); +}; + +Waitfor_conversationContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Waitfor_conversationContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Waitfor_conversationContext.prototype.time = function() { + return this.getTypedRuleContext(TimeContext,0); +}; + +Waitfor_conversationContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Waitfor_conversationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWaitfor_conversation(this); + } +}; + +Waitfor_conversationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWaitfor_conversation(this); + } +}; + +Waitfor_conversationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWaitfor_conversation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Waitfor_conversationContext = Waitfor_conversationContext; + +TSqlParser.prototype.waitfor_conversation = function() { + + var localctx = new Waitfor_conversationContext(this, this._ctx, this.state); + this.enterRule(localctx, 948, TSqlParser.RULE_waitfor_conversation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10632; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WAITFOR) { + this.state = 10631; + this.match(TSqlParser.WAITFOR); + } + + this.state = 10634; + this.match(TSqlParser.LR_BRACKET); + this.state = 10635; + this.get_conversation(); + this.state = 10636; + this.match(TSqlParser.RR_BRACKET); + this.state = 10642; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1504,this._ctx); + if(la_===1) { + this.state = 10638; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10637; + this.match(TSqlParser.COMMA); + } + + this.state = 10640; + this.match(TSqlParser.TIMEOUT); + this.state = 10641; + localctx.timeout = this.time(); + + } + this.state = 10645; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1505,this._ctx); + if(la_===1) { + this.state = 10644; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Get_conversationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_get_conversation; + this.conversation_group_id = null; // Token + this.queue = null; // Queue_idContext + return this; +} + +Get_conversationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Get_conversationContext.prototype.constructor = Get_conversationContext; + +Get_conversationContext.prototype.GET = function() { + return this.getToken(TSqlParser.GET, 0); +}; + +Get_conversationContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Get_conversationContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Get_conversationContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Get_conversationContext.prototype.queue_id = function() { + return this.getTypedRuleContext(Queue_idContext,0); +}; + +Get_conversationContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Get_conversationContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Get_conversationContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Get_conversationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGet_conversation(this); + } +}; + +Get_conversationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGet_conversation(this); + } +}; + +Get_conversationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGet_conversation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Get_conversationContext = Get_conversationContext; + +TSqlParser.prototype.get_conversation = function() { + + var localctx = new Get_conversationContext(this, this._ctx, this.state); + this.enterRule(localctx, 950, TSqlParser.RULE_get_conversation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10647; + this.match(TSqlParser.GET); + this.state = 10648; + this.match(TSqlParser.CONVERSATION); + this.state = 10649; + this.match(TSqlParser.GROUP); + this.state = 10650; + localctx.conversation_group_id = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.conversation_group_id = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10651; + this.match(TSqlParser.FROM); + this.state = 10652; + localctx.queue = this.queue_id(); + this.state = 10654; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1506,this._ctx); + if(la_===1) { + this.state = 10653; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Queue_idContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_queue_id; + this.database_name = null; // IdContext + this.schema_name = null; // IdContext + this.name = null; // IdContext + return this; +} + +Queue_idContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Queue_idContext.prototype.constructor = Queue_idContext; + +Queue_idContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Queue_idContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Queue_idContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQueue_id(this); + } +}; + +Queue_idContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQueue_id(this); + } +}; + +Queue_idContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQueue_id(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Queue_idContext = Queue_idContext; + +TSqlParser.prototype.queue_id = function() { + + var localctx = new Queue_idContext(this, this._ctx, this.state); + this.enterRule(localctx, 952, TSqlParser.RULE_queue_id); + try { + this.state = 10663; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1507,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10656; + localctx.database_name = this.id(); + this.state = 10657; + this.match(TSqlParser.DOT); + this.state = 10658; + localctx.schema_name = this.id(); + this.state = 10659; + this.match(TSqlParser.DOT); + this.state = 10660; + localctx.name = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10662; + this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Send_conversationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_send_conversation; + this.conversation_handle = null; // Token + this.message_type_name = null; // ExpressionContext + this.message_body_expression = null; // Token + return this; +} + +Send_conversationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Send_conversationContext.prototype.constructor = Send_conversationContext; + +Send_conversationContext.prototype.SEND = function() { + return this.getToken(TSqlParser.SEND, 0); +}; + +Send_conversationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Send_conversationContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Send_conversationContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Send_conversationContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Send_conversationContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Send_conversationContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Send_conversationContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Send_conversationContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Send_conversationContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Send_conversationContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Send_conversationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSend_conversation(this); + } +}; + +Send_conversationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSend_conversation(this); + } +}; + +Send_conversationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSend_conversation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Send_conversationContext = Send_conversationContext; + +TSqlParser.prototype.send_conversation = function() { + + var localctx = new Send_conversationContext(this, this._ctx, this.state); + this.enterRule(localctx, 954, TSqlParser.RULE_send_conversation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10665; + this.match(TSqlParser.SEND); + this.state = 10666; + this.match(TSqlParser.ON); + this.state = 10667; + this.match(TSqlParser.CONVERSATION); + this.state = 10668; + localctx.conversation_handle = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.conversation_handle = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10669; + this.match(TSqlParser.MESSAGE); + this.state = 10670; + this.match(TSqlParser.TYPE); + this.state = 10671; + localctx.message_type_name = this.expression(0); + this.state = 10675; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1508,this._ctx); + if(la_===1) { + this.state = 10672; + this.match(TSqlParser.LR_BRACKET); + this.state = 10673; + localctx.message_body_expression = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.message_body_expression = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10674; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 10678; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1509,this._ctx); + if(la_===1) { + this.state = 10677; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Data_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_data_type; + return this; +} + +Data_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Data_typeContext.prototype.constructor = Data_typeContext; + +Data_typeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Data_typeContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Data_typeContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Data_typeContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Data_typeContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Data_typeContext.prototype.MAX = function() { + return this.getToken(TSqlParser.MAX, 0); +}; + +Data_typeContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Data_typeContext.prototype.DOUBLE = function() { + return this.getToken(TSqlParser.DOUBLE, 0); +}; + +Data_typeContext.prototype.PRECISION = function() { + return this.getToken(TSqlParser.PRECISION, 0); +}; + +Data_typeContext.prototype.INT = function() { + return this.getToken(TSqlParser.INT, 0); +}; + +Data_typeContext.prototype.TINYINT = function() { + return this.getToken(TSqlParser.TINYINT, 0); +}; + +Data_typeContext.prototype.SMALLINT = function() { + return this.getToken(TSqlParser.SMALLINT, 0); +}; + +Data_typeContext.prototype.BIGINT = function() { + return this.getToken(TSqlParser.BIGINT, 0); +}; + +Data_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterData_type(this); + } +}; + +Data_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitData_type(this); + } +}; + +Data_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitData_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Data_typeContext = Data_typeContext; + +TSqlParser.prototype.data_type = function() { + + var localctx = new Data_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 956, TSqlParser.RULE_data_type); + var _la = 0; // Token type + try { + this.state = 10701; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1514,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10680; + this.id(); + this.state = 10682; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1510,this._ctx); + if(la_===1) { + this.state = 10681; + this.match(TSqlParser.IDENTITY); + + } + this.state = 10691; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1512,this._ctx); + if(la_===1) { + this.state = 10684; + this.match(TSqlParser.LR_BRACKET); + this.state = 10685; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MAX || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10688; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10686; + this.match(TSqlParser.COMMA); + this.state = 10687; + this.match(TSqlParser.DECIMAL); + } + + this.state = 10690; + this.match(TSqlParser.RR_BRACKET); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10693; + this.match(TSqlParser.DOUBLE); + this.state = 10695; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PRECISION) { + this.state = 10694; + this.match(TSqlParser.PRECISION); + } + + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10697; + this.match(TSqlParser.INT); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10698; + this.match(TSqlParser.TINYINT); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10699; + this.match(TSqlParser.SMALLINT); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10700; + this.match(TSqlParser.BIGINT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Default_valueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_default_value; + return this; +} + +Default_valueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Default_valueContext.prototype.constructor = Default_valueContext; + +Default_valueContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Default_valueContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Default_valueContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Default_valueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDefault_value(this); + } +}; + +Default_valueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDefault_value(this); + } +}; + +Default_valueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDefault_value(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Default_valueContext = Default_valueContext; + +TSqlParser.prototype.default_value = function() { + + var localctx = new Default_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 958, TSqlParser.RULE_default_value); + try { + this.state = 10706; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NULL: + this.enterOuterAlt(localctx, 1); + this.state = 10703; + this.match(TSqlParser.NULL); + break; + case TSqlParser.DEFAULT: + this.enterOuterAlt(localctx, 2); + this.state = 10704; + this.match(TSqlParser.DEFAULT); + break; + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.enterOuterAlt(localctx, 3); + this.state = 10705; + this.constant(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ConstantContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_constant; + this.dollar = null; // Token + return this; +} + +ConstantContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ConstantContext.prototype.constructor = ConstantContext; + +ConstantContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +ConstantContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +ConstantContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +ConstantContext.prototype.sign = function() { + return this.getTypedRuleContext(SignContext,0); +}; + +ConstantContext.prototype.REAL = function() { + return this.getToken(TSqlParser.REAL, 0); +}; + +ConstantContext.prototype.FLOAT = function() { + return this.getToken(TSqlParser.FLOAT, 0); +}; + +ConstantContext.prototype.DOLLAR = function() { + return this.getToken(TSqlParser.DOLLAR, 0); +}; + +ConstantContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterConstant(this); + } +}; + +ConstantContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitConstant(this); + } +}; + +ConstantContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitConstant(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.ConstantContext = ConstantContext; + +TSqlParser.prototype.constant = function() { + + var localctx = new ConstantContext(this, this._ctx, this.state); + this.enterRule(localctx, 960, TSqlParser.RULE_constant); + var _la = 0; // Token type + try { + this.state = 10723; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1519,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10708; + this.match(TSqlParser.STRING); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10709; + this.match(TSqlParser.BINARY); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10711; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS) { + this.state = 10710; + this.sign(); + } + + this.state = 10713; + this.match(TSqlParser.DECIMAL); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10715; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS) { + this.state = 10714; + this.sign(); + } + + this.state = 10717; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FLOAT || _la===TSqlParser.REAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10719; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS) { + this.state = 10718; + this.sign(); + } + + this.state = 10721; + localctx.dollar = this.match(TSqlParser.DOLLAR); + this.state = 10722; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.FLOAT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SignContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sign; + return this; +} + +SignContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SignContext.prototype.constructor = SignContext; + +SignContext.prototype.PLUS = function() { + return this.getToken(TSqlParser.PLUS, 0); +}; + +SignContext.prototype.MINUS = function() { + return this.getToken(TSqlParser.MINUS, 0); +}; + +SignContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSign(this); + } +}; + +SignContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSign(this); + } +}; + +SignContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSign(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.SignContext = SignContext; + +TSqlParser.prototype.sign = function() { + + var localctx = new SignContext(this, this._ctx, this.state); + this.enterRule(localctx, 962, TSqlParser.RULE_sign); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10725; + _la = this._input.LA(1); + if(!(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IdContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_id; + return this; +} + +IdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IdContext.prototype.constructor = IdContext; + +IdContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +IdContext.prototype.DOUBLE_QUOTE_ID = function() { + return this.getToken(TSqlParser.DOUBLE_QUOTE_ID, 0); +}; + +IdContext.prototype.SQUARE_BRACKET_ID = function() { + return this.getToken(TSqlParser.SQUARE_BRACKET_ID, 0); +}; + +IdContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterId(this); + } +}; + +IdContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitId(this); + } +}; + +IdContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitId(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.IdContext = IdContext; + +TSqlParser.prototype.id = function() { + + var localctx = new IdContext(this, this._ctx, this.state); + this.enterRule(localctx, 964, TSqlParser.RULE_id); + try { + this.state = 10730; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10727; + this.simple_id(); + break; + case TSqlParser.DOUBLE_QUOTE_ID: + this.enterOuterAlt(localctx, 2); + this.state = 10728; + this.match(TSqlParser.DOUBLE_QUOTE_ID); + break; + case TSqlParser.SQUARE_BRACKET_ID: + this.enterOuterAlt(localctx, 3); + this.state = 10729; + this.match(TSqlParser.SQUARE_BRACKET_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Simple_idContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_simple_id; + return this; +} + +Simple_idContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Simple_idContext.prototype.constructor = Simple_idContext; + +Simple_idContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Simple_idContext.prototype.ABSOLUTE = function() { + return this.getToken(TSqlParser.ABSOLUTE, 0); +}; + +Simple_idContext.prototype.ACCENT_SENSITIVITY = function() { + return this.getToken(TSqlParser.ACCENT_SENSITIVITY, 0); +}; + +Simple_idContext.prototype.ACTION = function() { + return this.getToken(TSqlParser.ACTION, 0); +}; + +Simple_idContext.prototype.ACTIVATION = function() { + return this.getToken(TSqlParser.ACTIVATION, 0); +}; + +Simple_idContext.prototype.ACTIVE = function() { + return this.getToken(TSqlParser.ACTIVE, 0); +}; + +Simple_idContext.prototype.ADDRESS = function() { + return this.getToken(TSqlParser.ADDRESS, 0); +}; + +Simple_idContext.prototype.AES_128 = function() { + return this.getToken(TSqlParser.AES_128, 0); +}; + +Simple_idContext.prototype.AES_192 = function() { + return this.getToken(TSqlParser.AES_192, 0); +}; + +Simple_idContext.prototype.AES_256 = function() { + return this.getToken(TSqlParser.AES_256, 0); +}; + +Simple_idContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Simple_idContext.prototype.AFTER = function() { + return this.getToken(TSqlParser.AFTER, 0); +}; + +Simple_idContext.prototype.AGGREGATE = function() { + return this.getToken(TSqlParser.AGGREGATE, 0); +}; + +Simple_idContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Simple_idContext.prototype.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = function() { + return this.getToken(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, 0); +}; + +Simple_idContext.prototype.ALLOW_SNAPSHOT_ISOLATION = function() { + return this.getToken(TSqlParser.ALLOW_SNAPSHOT_ISOLATION, 0); +}; + +Simple_idContext.prototype.ALLOWED = function() { + return this.getToken(TSqlParser.ALLOWED, 0); +}; + +Simple_idContext.prototype.ANSI_NULL_DEFAULT = function() { + return this.getToken(TSqlParser.ANSI_NULL_DEFAULT, 0); +}; + +Simple_idContext.prototype.ANSI_NULLS = function() { + return this.getToken(TSqlParser.ANSI_NULLS, 0); +}; + +Simple_idContext.prototype.ANSI_PADDING = function() { + return this.getToken(TSqlParser.ANSI_PADDING, 0); +}; + +Simple_idContext.prototype.ANSI_WARNINGS = function() { + return this.getToken(TSqlParser.ANSI_WARNINGS, 0); +}; + +Simple_idContext.prototype.APPLICATION_LOG = function() { + return this.getToken(TSqlParser.APPLICATION_LOG, 0); +}; + +Simple_idContext.prototype.APPLY = function() { + return this.getToken(TSqlParser.APPLY, 0); +}; + +Simple_idContext.prototype.ARITHABORT = function() { + return this.getToken(TSqlParser.ARITHABORT, 0); +}; + +Simple_idContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Simple_idContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Simple_idContext.prototype.AUDIT_GUID = function() { + return this.getToken(TSqlParser.AUDIT_GUID, 0); +}; + +Simple_idContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Simple_idContext.prototype.AUTO_CLEANUP = function() { + return this.getToken(TSqlParser.AUTO_CLEANUP, 0); +}; + +Simple_idContext.prototype.AUTO_CLOSE = function() { + return this.getToken(TSqlParser.AUTO_CLOSE, 0); +}; + +Simple_idContext.prototype.AUTO_CREATE_STATISTICS = function() { + return this.getToken(TSqlParser.AUTO_CREATE_STATISTICS, 0); +}; + +Simple_idContext.prototype.AUTO_SHRINK = function() { + return this.getToken(TSqlParser.AUTO_SHRINK, 0); +}; + +Simple_idContext.prototype.AUTO_UPDATE_STATISTICS = function() { + return this.getToken(TSqlParser.AUTO_UPDATE_STATISTICS, 0); +}; + +Simple_idContext.prototype.AUTO_UPDATE_STATISTICS_ASYNC = function() { + return this.getToken(TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC, 0); +}; + +Simple_idContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Simple_idContext.prototype.AVG = function() { + return this.getToken(TSqlParser.AVG, 0); +}; + +Simple_idContext.prototype.BACKUP_PRIORITY = function() { + return this.getToken(TSqlParser.BACKUP_PRIORITY, 0); +}; + +Simple_idContext.prototype.BEGIN_DIALOG = function() { + return this.getToken(TSqlParser.BEGIN_DIALOG, 0); +}; + +Simple_idContext.prototype.BIGINT = function() { + return this.getToken(TSqlParser.BIGINT, 0); +}; + +Simple_idContext.prototype.BINARY_BASE64 = function() { + return this.getToken(TSqlParser.BINARY_BASE64, 0); +}; + +Simple_idContext.prototype.BINARY_CHECKSUM = function() { + return this.getToken(TSqlParser.BINARY_CHECKSUM, 0); +}; + +Simple_idContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Simple_idContext.prototype.BLOB_STORAGE = function() { + return this.getToken(TSqlParser.BLOB_STORAGE, 0); +}; + +Simple_idContext.prototype.BROKER = function() { + return this.getToken(TSqlParser.BROKER, 0); +}; + +Simple_idContext.prototype.BROKER_INSTANCE = function() { + return this.getToken(TSqlParser.BROKER_INSTANCE, 0); +}; + +Simple_idContext.prototype.BULK_LOGGED = function() { + return this.getToken(TSqlParser.BULK_LOGGED, 0); +}; + +Simple_idContext.prototype.CALLED = function() { + return this.getToken(TSqlParser.CALLED, 0); +}; + +Simple_idContext.prototype.CALLER = function() { + return this.getToken(TSqlParser.CALLER, 0); +}; + +Simple_idContext.prototype.CAP_CPU_PERCENT = function() { + return this.getToken(TSqlParser.CAP_CPU_PERCENT, 0); +}; + +Simple_idContext.prototype.CAST = function() { + return this.getToken(TSqlParser.CAST, 0); +}; + +Simple_idContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Simple_idContext.prototype.CATCH = function() { + return this.getToken(TSqlParser.CATCH, 0); +}; + +Simple_idContext.prototype.CHANGE_RETENTION = function() { + return this.getToken(TSqlParser.CHANGE_RETENTION, 0); +}; + +Simple_idContext.prototype.CHANGE_TRACKING = function() { + return this.getToken(TSqlParser.CHANGE_TRACKING, 0); +}; + +Simple_idContext.prototype.CHECKSUM = function() { + return this.getToken(TSqlParser.CHECKSUM, 0); +}; + +Simple_idContext.prototype.CHECKSUM_AGG = function() { + return this.getToken(TSqlParser.CHECKSUM_AGG, 0); +}; + +Simple_idContext.prototype.CLEANUP = function() { + return this.getToken(TSqlParser.CLEANUP, 0); +}; + +Simple_idContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Simple_idContext.prototype.COLUMN_MASTER_KEY = function() { + return this.getToken(TSqlParser.COLUMN_MASTER_KEY, 0); +}; + +Simple_idContext.prototype.COMMITTED = function() { + return this.getToken(TSqlParser.COMMITTED, 0); +}; + +Simple_idContext.prototype.COMPATIBILITY_LEVEL = function() { + return this.getToken(TSqlParser.COMPATIBILITY_LEVEL, 0); +}; + +Simple_idContext.prototype.CONCAT = function() { + return this.getToken(TSqlParser.CONCAT, 0); +}; + +Simple_idContext.prototype.CONCAT_NULL_YIELDS_NULL = function() { + return this.getToken(TSqlParser.CONCAT_NULL_YIELDS_NULL, 0); +}; + +Simple_idContext.prototype.CONTENT = function() { + return this.getToken(TSqlParser.CONTENT, 0); +}; + +Simple_idContext.prototype.CONTROL = function() { + return this.getToken(TSqlParser.CONTROL, 0); +}; + +Simple_idContext.prototype.COOKIE = function() { + return this.getToken(TSqlParser.COOKIE, 0); +}; + +Simple_idContext.prototype.COUNT = function() { + return this.getToken(TSqlParser.COUNT, 0); +}; + +Simple_idContext.prototype.COUNT_BIG = function() { + return this.getToken(TSqlParser.COUNT_BIG, 0); +}; + +Simple_idContext.prototype.COUNTER = function() { + return this.getToken(TSqlParser.COUNTER, 0); +}; + +Simple_idContext.prototype.CPU = function() { + return this.getToken(TSqlParser.CPU, 0); +}; + +Simple_idContext.prototype.CREATE_NEW = function() { + return this.getToken(TSqlParser.CREATE_NEW, 0); +}; + +Simple_idContext.prototype.CREATION_DISPOSITION = function() { + return this.getToken(TSqlParser.CREATION_DISPOSITION, 0); +}; + +Simple_idContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Simple_idContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Simple_idContext.prototype.CURSOR_CLOSE_ON_COMMIT = function() { + return this.getToken(TSqlParser.CURSOR_CLOSE_ON_COMMIT, 0); +}; + +Simple_idContext.prototype.CURSOR_DEFAULT = function() { + return this.getToken(TSqlParser.CURSOR_DEFAULT, 0); +}; + +Simple_idContext.prototype.DATA = function() { + return this.getToken(TSqlParser.DATA, 0); +}; + +Simple_idContext.prototype.DATA_COMPRESSION = function() { + return this.getToken(TSqlParser.DATA_COMPRESSION, 0); +}; + +Simple_idContext.prototype.DATE_CORRELATION_OPTIMIZATION = function() { + return this.getToken(TSqlParser.DATE_CORRELATION_OPTIMIZATION, 0); +}; + +Simple_idContext.prototype.DATEADD = function() { + return this.getToken(TSqlParser.DATEADD, 0); +}; + +Simple_idContext.prototype.DATEDIFF = function() { + return this.getToken(TSqlParser.DATEDIFF, 0); +}; + +Simple_idContext.prototype.DATENAME = function() { + return this.getToken(TSqlParser.DATENAME, 0); +}; + +Simple_idContext.prototype.DATEPART = function() { + return this.getToken(TSqlParser.DATEPART, 0); +}; + +Simple_idContext.prototype.DAYS = function() { + return this.getToken(TSqlParser.DAYS, 0); +}; + +Simple_idContext.prototype.DB_CHAINING = function() { + return this.getToken(TSqlParser.DB_CHAINING, 0); +}; + +Simple_idContext.prototype.DB_FAILOVER = function() { + return this.getToken(TSqlParser.DB_FAILOVER, 0); +}; + +Simple_idContext.prototype.DECRYPTION = function() { + return this.getToken(TSqlParser.DECRYPTION, 0); +}; + +Simple_idContext.prototype.DEFAULT_DOUBLE_QUOTE = function() { + return this.getToken(TSqlParser.DEFAULT_DOUBLE_QUOTE, 0); +}; + +Simple_idContext.prototype.DEFAULT_FULLTEXT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE, 0); +}; + +Simple_idContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +Simple_idContext.prototype.DELAY = function() { + return this.getToken(TSqlParser.DELAY, 0); +}; + +Simple_idContext.prototype.DELAYED_DURABILITY = function() { + return this.getToken(TSqlParser.DELAYED_DURABILITY, 0); +}; + +Simple_idContext.prototype.DELETED = function() { + return this.getToken(TSqlParser.DELETED, 0); +}; + +Simple_idContext.prototype.DENSE_RANK = function() { + return this.getToken(TSqlParser.DENSE_RANK, 0); +}; + +Simple_idContext.prototype.DEPENDENTS = function() { + return this.getToken(TSqlParser.DEPENDENTS, 0); +}; + +Simple_idContext.prototype.DES = function() { + return this.getToken(TSqlParser.DES, 0); +}; + +Simple_idContext.prototype.DESCRIPTION = function() { + return this.getToken(TSqlParser.DESCRIPTION, 0); +}; + +Simple_idContext.prototype.DESX = function() { + return this.getToken(TSqlParser.DESX, 0); +}; + +Simple_idContext.prototype.DHCP = function() { + return this.getToken(TSqlParser.DHCP, 0); +}; + +Simple_idContext.prototype.DIALOG = function() { + return this.getToken(TSqlParser.DIALOG, 0); +}; + +Simple_idContext.prototype.DIRECTORY_NAME = function() { + return this.getToken(TSqlParser.DIRECTORY_NAME, 0); +}; + +Simple_idContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Simple_idContext.prototype.DISABLE_BROKER = function() { + return this.getToken(TSqlParser.DISABLE_BROKER, 0); +}; + +Simple_idContext.prototype.DISABLED = function() { + return this.getToken(TSqlParser.DISABLED, 0); +}; + +Simple_idContext.prototype.DISK_DRIVE = function() { + return this.getToken(TSqlParser.DISK_DRIVE, 0); +}; + +Simple_idContext.prototype.DOCUMENT = function() { + return this.getToken(TSqlParser.DOCUMENT, 0); +}; + +Simple_idContext.prototype.DYNAMIC = function() { + return this.getToken(TSqlParser.DYNAMIC, 0); +}; + +Simple_idContext.prototype.EMERGENCY = function() { + return this.getToken(TSqlParser.EMERGENCY, 0); +}; + +Simple_idContext.prototype.EMPTY = function() { + return this.getToken(TSqlParser.EMPTY, 0); +}; + +Simple_idContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Simple_idContext.prototype.ENABLE_BROKER = function() { + return this.getToken(TSqlParser.ENABLE_BROKER, 0); +}; + +Simple_idContext.prototype.ENCRYPTED_VALUE = function() { + return this.getToken(TSqlParser.ENCRYPTED_VALUE, 0); +}; + +Simple_idContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Simple_idContext.prototype.ENDPOINT_URL = function() { + return this.getToken(TSqlParser.ENDPOINT_URL, 0); +}; + +Simple_idContext.prototype.ERROR_BROKER_CONVERSATIONS = function() { + return this.getToken(TSqlParser.ERROR_BROKER_CONVERSATIONS, 0); +}; + +Simple_idContext.prototype.EVENTDATA = function() { + return this.getToken(TSqlParser.EVENTDATA, 0); +}; + +Simple_idContext.prototype.EXCLUSIVE = function() { + return this.getToken(TSqlParser.EXCLUSIVE, 0); +}; + +Simple_idContext.prototype.EXECUTABLE = function() { + return this.getToken(TSqlParser.EXECUTABLE, 0); +}; + +Simple_idContext.prototype.EXIST = function() { + return this.getToken(TSqlParser.EXIST, 0); +}; + +Simple_idContext.prototype.EXPAND = function() { + return this.getToken(TSqlParser.EXPAND, 0); +}; + +Simple_idContext.prototype.EXPIRY_DATE = function() { + return this.getToken(TSqlParser.EXPIRY_DATE, 0); +}; + +Simple_idContext.prototype.EXPLICIT = function() { + return this.getToken(TSqlParser.EXPLICIT, 0); +}; + +Simple_idContext.prototype.FAIL_OPERATION = function() { + return this.getToken(TSqlParser.FAIL_OPERATION, 0); +}; + +Simple_idContext.prototype.FAILOVER_MODE = function() { + return this.getToken(TSqlParser.FAILOVER_MODE, 0); +}; + +Simple_idContext.prototype.FAILURE = function() { + return this.getToken(TSqlParser.FAILURE, 0); +}; + +Simple_idContext.prototype.FAILURE_CONDITION_LEVEL = function() { + return this.getToken(TSqlParser.FAILURE_CONDITION_LEVEL, 0); +}; + +Simple_idContext.prototype.FAST = function() { + return this.getToken(TSqlParser.FAST, 0); +}; + +Simple_idContext.prototype.FAST_FORWARD = function() { + return this.getToken(TSqlParser.FAST_FORWARD, 0); +}; + +Simple_idContext.prototype.FILEGROUP = function() { + return this.getToken(TSqlParser.FILEGROUP, 0); +}; + +Simple_idContext.prototype.FILEGROWTH = function() { + return this.getToken(TSqlParser.FILEGROWTH, 0); +}; + +Simple_idContext.prototype.FILENAME = function() { + return this.getToken(TSqlParser.FILENAME, 0); +}; + +Simple_idContext.prototype.FILEPATH = function() { + return this.getToken(TSqlParser.FILEPATH, 0); +}; + +Simple_idContext.prototype.FILESTREAM = function() { + return this.getToken(TSqlParser.FILESTREAM, 0); +}; + +Simple_idContext.prototype.FILLFACTOR = function() { + return this.getToken(TSqlParser.FILLFACTOR, 0); +}; + +Simple_idContext.prototype.FILTER = function() { + return this.getToken(TSqlParser.FILTER, 0); +}; + +Simple_idContext.prototype.FIRST = function() { + return this.getToken(TSqlParser.FIRST, 0); +}; + +Simple_idContext.prototype.FIRST_VALUE = function() { + return this.getToken(TSqlParser.FIRST_VALUE, 0); +}; + +Simple_idContext.prototype.FOLLOWING = function() { + return this.getToken(TSqlParser.FOLLOWING, 0); +}; + +Simple_idContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +Simple_idContext.prototype.FORCE_FAILOVER_ALLOW_DATA_LOSS = function() { + return this.getToken(TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS, 0); +}; + +Simple_idContext.prototype.FORCED = function() { + return this.getToken(TSqlParser.FORCED, 0); +}; + +Simple_idContext.prototype.FORCESEEK = function() { + return this.getToken(TSqlParser.FORCESEEK, 0); +}; + +Simple_idContext.prototype.FORMAT = function() { + return this.getToken(TSqlParser.FORMAT, 0); +}; + +Simple_idContext.prototype.FORWARD_ONLY = function() { + return this.getToken(TSqlParser.FORWARD_ONLY, 0); +}; + +Simple_idContext.prototype.FULLSCAN = function() { + return this.getToken(TSqlParser.FULLSCAN, 0); +}; + +Simple_idContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Simple_idContext.prototype.GB = function() { + return this.getToken(TSqlParser.GB, 0); +}; + +Simple_idContext.prototype.GETDATE = function() { + return this.getToken(TSqlParser.GETDATE, 0); +}; + +Simple_idContext.prototype.GETUTCDATE = function() { + return this.getToken(TSqlParser.GETUTCDATE, 0); +}; + +Simple_idContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Simple_idContext.prototype.GO = function() { + return this.getToken(TSqlParser.GO, 0); +}; + +Simple_idContext.prototype.GROUP_MAX_REQUESTS = function() { + return this.getToken(TSqlParser.GROUP_MAX_REQUESTS, 0); +}; + +Simple_idContext.prototype.GROUPING = function() { + return this.getToken(TSqlParser.GROUPING, 0); +}; + +Simple_idContext.prototype.GROUPING_ID = function() { + return this.getToken(TSqlParser.GROUPING_ID, 0); +}; + +Simple_idContext.prototype.HADR = function() { + return this.getToken(TSqlParser.HADR, 0); +}; + +Simple_idContext.prototype.HASH = function() { + return this.getToken(TSqlParser.HASH, 0); +}; + +Simple_idContext.prototype.HEALTH_CHECK_TIMEOUT = function() { + return this.getToken(TSqlParser.HEALTH_CHECK_TIMEOUT, 0); +}; + +Simple_idContext.prototype.HIGH = function() { + return this.getToken(TSqlParser.HIGH, 0); +}; + +Simple_idContext.prototype.HONOR_BROKER_PRIORITY = function() { + return this.getToken(TSqlParser.HONOR_BROKER_PRIORITY, 0); +}; + +Simple_idContext.prototype.HOURS = function() { + return this.getToken(TSqlParser.HOURS, 0); +}; + +Simple_idContext.prototype.IDENTITY_VALUE = function() { + return this.getToken(TSqlParser.IDENTITY_VALUE, 0); +}; + +Simple_idContext.prototype.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX = function() { + return this.getToken(TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX, 0); +}; + +Simple_idContext.prototype.IMMEDIATE = function() { + return this.getToken(TSqlParser.IMMEDIATE, 0); +}; + +Simple_idContext.prototype.IMPERSONATE = function() { + return this.getToken(TSqlParser.IMPERSONATE, 0); +}; + +Simple_idContext.prototype.IMPORTANCE = function() { + return this.getToken(TSqlParser.IMPORTANCE, 0); +}; + +Simple_idContext.prototype.INCREMENTAL = function() { + return this.getToken(TSqlParser.INCREMENTAL, 0); +}; + +Simple_idContext.prototype.INIT = function() { + return this.getToken(TSqlParser.INIT, 0); +}; + +Simple_idContext.prototype.INITIATOR = function() { + return this.getToken(TSqlParser.INITIATOR, 0); +}; + +Simple_idContext.prototype.INPUT = function() { + return this.getToken(TSqlParser.INPUT, 0); +}; + +Simple_idContext.prototype.INSENSITIVE = function() { + return this.getToken(TSqlParser.INSENSITIVE, 0); +}; + +Simple_idContext.prototype.INSERTED = function() { + return this.getToken(TSqlParser.INSERTED, 0); +}; + +Simple_idContext.prototype.INT = function() { + return this.getToken(TSqlParser.INT, 0); +}; + +Simple_idContext.prototype.IP = function() { + return this.getToken(TSqlParser.IP, 0); +}; + +Simple_idContext.prototype.ISOLATION = function() { + return this.getToken(TSqlParser.ISOLATION, 0); +}; + +Simple_idContext.prototype.KB = function() { + return this.getToken(TSqlParser.KB, 0); +}; + +Simple_idContext.prototype.KEEP = function() { + return this.getToken(TSqlParser.KEEP, 0); +}; + +Simple_idContext.prototype.KEEPFIXED = function() { + return this.getToken(TSqlParser.KEEPFIXED, 0); +}; + +Simple_idContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Simple_idContext.prototype.KEY_SOURCE = function() { + return this.getToken(TSqlParser.KEY_SOURCE, 0); +}; + +Simple_idContext.prototype.KEYS = function() { + return this.getToken(TSqlParser.KEYS, 0); +}; + +Simple_idContext.prototype.KEYSET = function() { + return this.getToken(TSqlParser.KEYSET, 0); +}; + +Simple_idContext.prototype.LAG = function() { + return this.getToken(TSqlParser.LAG, 0); +}; + +Simple_idContext.prototype.LAST = function() { + return this.getToken(TSqlParser.LAST, 0); +}; + +Simple_idContext.prototype.LAST_VALUE = function() { + return this.getToken(TSqlParser.LAST_VALUE, 0); +}; + +Simple_idContext.prototype.LEAD = function() { + return this.getToken(TSqlParser.LEAD, 0); +}; + +Simple_idContext.prototype.LEVEL = function() { + return this.getToken(TSqlParser.LEVEL, 0); +}; + +Simple_idContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Simple_idContext.prototype.LISTENER = function() { + return this.getToken(TSqlParser.LISTENER, 0); +}; + +Simple_idContext.prototype.LISTENER_URL = function() { + return this.getToken(TSqlParser.LISTENER_URL, 0); +}; + +Simple_idContext.prototype.LOB_COMPACTION = function() { + return this.getToken(TSqlParser.LOB_COMPACTION, 0); +}; + +Simple_idContext.prototype.LOCAL = function() { + return this.getToken(TSqlParser.LOCAL, 0); +}; + +Simple_idContext.prototype.LOCATION = function() { + return this.getToken(TSqlParser.LOCATION, 0); +}; + +Simple_idContext.prototype.LOCK = function() { + return this.getToken(TSqlParser.LOCK, 0); +}; + +Simple_idContext.prototype.LOCK_ESCALATION = function() { + return this.getToken(TSqlParser.LOCK_ESCALATION, 0); +}; + +Simple_idContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Simple_idContext.prototype.LOOP = function() { + return this.getToken(TSqlParser.LOOP, 0); +}; + +Simple_idContext.prototype.LOW = function() { + return this.getToken(TSqlParser.LOW, 0); +}; + +Simple_idContext.prototype.MANUAL = function() { + return this.getToken(TSqlParser.MANUAL, 0); +}; + +Simple_idContext.prototype.MARK = function() { + return this.getToken(TSqlParser.MARK, 0); +}; + +Simple_idContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Simple_idContext.prototype.MATERIALIZED = function() { + return this.getToken(TSqlParser.MATERIALIZED, 0); +}; + +Simple_idContext.prototype.MAX = function() { + return this.getToken(TSqlParser.MAX, 0); +}; + +Simple_idContext.prototype.MAX_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MAX_CPU_PERCENT, 0); +}; + +Simple_idContext.prototype.MAX_DOP = function() { + return this.getToken(TSqlParser.MAX_DOP, 0); +}; + +Simple_idContext.prototype.MAX_FILES = function() { + return this.getToken(TSqlParser.MAX_FILES, 0); +}; + +Simple_idContext.prototype.MAX_IOPS_PER_VOLUME = function() { + return this.getToken(TSqlParser.MAX_IOPS_PER_VOLUME, 0); +}; + +Simple_idContext.prototype.MAX_MEMORY = function() { + return this.getToken(TSqlParser.MAX_MEMORY, 0); +}; + +Simple_idContext.prototype.MAX_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MAX_MEMORY_PERCENT, 0); +}; + +Simple_idContext.prototype.MAX_PROCESSES = function() { + return this.getToken(TSqlParser.MAX_PROCESSES, 0); +}; + +Simple_idContext.prototype.MAX_QUEUE_READERS = function() { + return this.getToken(TSqlParser.MAX_QUEUE_READERS, 0); +}; + +Simple_idContext.prototype.MAX_ROLLOVER_FILES = function() { + return this.getToken(TSqlParser.MAX_ROLLOVER_FILES, 0); +}; + +Simple_idContext.prototype.MAXDOP = function() { + return this.getToken(TSqlParser.MAXDOP, 0); +}; + +Simple_idContext.prototype.MAXRECURSION = function() { + return this.getToken(TSqlParser.MAXRECURSION, 0); +}; + +Simple_idContext.prototype.MAXSIZE = function() { + return this.getToken(TSqlParser.MAXSIZE, 0); +}; + +Simple_idContext.prototype.MB = function() { + return this.getToken(TSqlParser.MB, 0); +}; + +Simple_idContext.prototype.MEDIUM = function() { + return this.getToken(TSqlParser.MEDIUM, 0); +}; + +Simple_idContext.prototype.MEMORY_OPTIMIZED_DATA = function() { + return this.getToken(TSqlParser.MEMORY_OPTIMIZED_DATA, 0); +}; + +Simple_idContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Simple_idContext.prototype.MIN = function() { + return this.getToken(TSqlParser.MIN, 0); +}; + +Simple_idContext.prototype.MIN_ACTIVE_ROWVERSION = function() { + return this.getToken(TSqlParser.MIN_ACTIVE_ROWVERSION, 0); +}; + +Simple_idContext.prototype.MIN_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MIN_CPU_PERCENT, 0); +}; + +Simple_idContext.prototype.MIN_IOPS_PER_VOLUME = function() { + return this.getToken(TSqlParser.MIN_IOPS_PER_VOLUME, 0); +}; + +Simple_idContext.prototype.MIN_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MIN_MEMORY_PERCENT, 0); +}; + +Simple_idContext.prototype.MINUTES = function() { + return this.getToken(TSqlParser.MINUTES, 0); +}; + +Simple_idContext.prototype.MIRROR_ADDRESS = function() { + return this.getToken(TSqlParser.MIRROR_ADDRESS, 0); +}; + +Simple_idContext.prototype.MIXED_PAGE_ALLOCATION = function() { + return this.getToken(TSqlParser.MIXED_PAGE_ALLOCATION, 0); +}; + +Simple_idContext.prototype.MODE = function() { + return this.getToken(TSqlParser.MODE, 0); +}; + +Simple_idContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Simple_idContext.prototype.MOVE = function() { + return this.getToken(TSqlParser.MOVE, 0); +}; + +Simple_idContext.prototype.MULTI_USER = function() { + return this.getToken(TSqlParser.MULTI_USER, 0); +}; + +Simple_idContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Simple_idContext.prototype.NESTED_TRIGGERS = function() { + return this.getToken(TSqlParser.NESTED_TRIGGERS, 0); +}; + +Simple_idContext.prototype.NEW_ACCOUNT = function() { + return this.getToken(TSqlParser.NEW_ACCOUNT, 0); +}; + +Simple_idContext.prototype.NEW_BROKER = function() { + return this.getToken(TSqlParser.NEW_BROKER, 0); +}; + +Simple_idContext.prototype.NEW_PASSWORD = function() { + return this.getToken(TSqlParser.NEW_PASSWORD, 0); +}; + +Simple_idContext.prototype.NEXT = function() { + return this.getToken(TSqlParser.NEXT, 0); +}; + +Simple_idContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +Simple_idContext.prototype.NO_TRUNCATE = function() { + return this.getToken(TSqlParser.NO_TRUNCATE, 0); +}; + +Simple_idContext.prototype.NO_WAIT = function() { + return this.getToken(TSqlParser.NO_WAIT, 0); +}; + +Simple_idContext.prototype.NOCOUNT = function() { + return this.getToken(TSqlParser.NOCOUNT, 0); +}; + +Simple_idContext.prototype.NODES = function() { + return this.getToken(TSqlParser.NODES, 0); +}; + +Simple_idContext.prototype.NOEXPAND = function() { + return this.getToken(TSqlParser.NOEXPAND, 0); +}; + +Simple_idContext.prototype.NON_TRANSACTED_ACCESS = function() { + return this.getToken(TSqlParser.NON_TRANSACTED_ACCESS, 0); +}; + +Simple_idContext.prototype.NORECOMPUTE = function() { + return this.getToken(TSqlParser.NORECOMPUTE, 0); +}; + +Simple_idContext.prototype.NORECOVERY = function() { + return this.getToken(TSqlParser.NORECOVERY, 0); +}; + +Simple_idContext.prototype.NOWAIT = function() { + return this.getToken(TSqlParser.NOWAIT, 0); +}; + +Simple_idContext.prototype.NTILE = function() { + return this.getToken(TSqlParser.NTILE, 0); +}; + +Simple_idContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Simple_idContext.prototype.NUMBER = function() { + return this.getToken(TSqlParser.NUMBER, 0); +}; + +Simple_idContext.prototype.NUMERIC_ROUNDABORT = function() { + return this.getToken(TSqlParser.NUMERIC_ROUNDABORT, 0); +}; + +Simple_idContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Simple_idContext.prototype.OFFLINE = function() { + return this.getToken(TSqlParser.OFFLINE, 0); +}; + +Simple_idContext.prototype.OFFSET = function() { + return this.getToken(TSqlParser.OFFSET, 0); +}; + +Simple_idContext.prototype.OFFSETS = function() { + return this.getToken(TSqlParser.OFFSETS, 0); +}; + +Simple_idContext.prototype.OLD_ACCOUNT = function() { + return this.getToken(TSqlParser.OLD_ACCOUNT, 0); +}; + +Simple_idContext.prototype.ONLINE = function() { + return this.getToken(TSqlParser.ONLINE, 0); +}; + +Simple_idContext.prototype.ONLY = function() { + return this.getToken(TSqlParser.ONLY, 0); +}; + +Simple_idContext.prototype.OPEN_EXISTING = function() { + return this.getToken(TSqlParser.OPEN_EXISTING, 0); +}; + +Simple_idContext.prototype.OPTIMISTIC = function() { + return this.getToken(TSqlParser.OPTIMISTIC, 0); +}; + +Simple_idContext.prototype.OPTIMIZE = function() { + return this.getToken(TSqlParser.OPTIMIZE, 0); +}; + +Simple_idContext.prototype.OUT = function() { + return this.getToken(TSqlParser.OUT, 0); +}; + +Simple_idContext.prototype.OUTPUT = function() { + return this.getToken(TSqlParser.OUTPUT, 0); +}; + +Simple_idContext.prototype.OWNER = function() { + return this.getToken(TSqlParser.OWNER, 0); +}; + +Simple_idContext.prototype.PAGE = function() { + return this.getToken(TSqlParser.PAGE, 0); +}; + +Simple_idContext.prototype.PAGE_VERIFY = function() { + return this.getToken(TSqlParser.PAGE_VERIFY, 0); +}; + +Simple_idContext.prototype.PARAMETERIZATION = function() { + return this.getToken(TSqlParser.PARAMETERIZATION, 0); +}; + +Simple_idContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Simple_idContext.prototype.PARTITIONS = function() { + return this.getToken(TSqlParser.PARTITIONS, 0); +}; + +Simple_idContext.prototype.PARTNER = function() { + return this.getToken(TSqlParser.PARTNER, 0); +}; + +Simple_idContext.prototype.PATH = function() { + return this.getToken(TSqlParser.PATH, 0); +}; + +Simple_idContext.prototype.POISON_MESSAGE_HANDLING = function() { + return this.getToken(TSqlParser.POISON_MESSAGE_HANDLING, 0); +}; + +Simple_idContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Simple_idContext.prototype.PORT = function() { + return this.getToken(TSqlParser.PORT, 0); +}; + +Simple_idContext.prototype.PRECEDING = function() { + return this.getToken(TSqlParser.PRECEDING, 0); +}; + +Simple_idContext.prototype.PRIMARY_ROLE = function() { + return this.getToken(TSqlParser.PRIMARY_ROLE, 0); +}; + +Simple_idContext.prototype.PRIOR = function() { + return this.getToken(TSqlParser.PRIOR, 0); +}; + +Simple_idContext.prototype.PRIORITY = function() { + return this.getToken(TSqlParser.PRIORITY, 0); +}; + +Simple_idContext.prototype.PRIORITY_LEVEL = function() { + return this.getToken(TSqlParser.PRIORITY_LEVEL, 0); +}; + +Simple_idContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Simple_idContext.prototype.PRIVATE_KEY = function() { + return this.getToken(TSqlParser.PRIVATE_KEY, 0); +}; + +Simple_idContext.prototype.PRIVILEGES = function() { + return this.getToken(TSqlParser.PRIVILEGES, 0); +}; + +Simple_idContext.prototype.PROCEDURE_NAME = function() { + return this.getToken(TSqlParser.PROCEDURE_NAME, 0); +}; + +Simple_idContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Simple_idContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Simple_idContext.prototype.PROVIDER_KEY_NAME = function() { + return this.getToken(TSqlParser.PROVIDER_KEY_NAME, 0); +}; + +Simple_idContext.prototype.PUBLIC = function() { + return this.getToken(TSqlParser.PUBLIC, 0); +}; + +Simple_idContext.prototype.QUERY = function() { + return this.getToken(TSqlParser.QUERY, 0); +}; + +Simple_idContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Simple_idContext.prototype.QUEUE_DELAY = function() { + return this.getToken(TSqlParser.QUEUE_DELAY, 0); +}; + +Simple_idContext.prototype.QUOTED_IDENTIFIER = function() { + return this.getToken(TSqlParser.QUOTED_IDENTIFIER, 0); +}; + +Simple_idContext.prototype.R = function() { + return this.getToken(TSqlParser.R, 0); +}; + +Simple_idContext.prototype.RANGE = function() { + return this.getToken(TSqlParser.RANGE, 0); +}; + +Simple_idContext.prototype.RANK = function() { + return this.getToken(TSqlParser.RANK, 0); +}; + +Simple_idContext.prototype.RAW = function() { + return this.getToken(TSqlParser.RAW, 0); +}; + +Simple_idContext.prototype.RC2 = function() { + return this.getToken(TSqlParser.RC2, 0); +}; + +Simple_idContext.prototype.RC4 = function() { + return this.getToken(TSqlParser.RC4, 0); +}; + +Simple_idContext.prototype.RC4_128 = function() { + return this.getToken(TSqlParser.RC4_128, 0); +}; + +Simple_idContext.prototype.READ_COMMITTED_SNAPSHOT = function() { + return this.getToken(TSqlParser.READ_COMMITTED_SNAPSHOT, 0); +}; + +Simple_idContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Simple_idContext.prototype.READ_ONLY_ROUTING_LIST = function() { + return this.getToken(TSqlParser.READ_ONLY_ROUTING_LIST, 0); +}; + +Simple_idContext.prototype.READ_WRITE = function() { + return this.getToken(TSqlParser.READ_WRITE, 0); +}; + +Simple_idContext.prototype.READONLY = function() { + return this.getToken(TSqlParser.READONLY, 0); +}; + +Simple_idContext.prototype.REBUILD = function() { + return this.getToken(TSqlParser.REBUILD, 0); +}; + +Simple_idContext.prototype.RECEIVE = function() { + return this.getToken(TSqlParser.RECEIVE, 0); +}; + +Simple_idContext.prototype.RECOMPILE = function() { + return this.getToken(TSqlParser.RECOMPILE, 0); +}; + +Simple_idContext.prototype.RECOVERY = function() { + return this.getToken(TSqlParser.RECOVERY, 0); +}; + +Simple_idContext.prototype.RECURSIVE_TRIGGERS = function() { + return this.getToken(TSqlParser.RECURSIVE_TRIGGERS, 0); +}; + +Simple_idContext.prototype.RELATIVE = function() { + return this.getToken(TSqlParser.RELATIVE, 0); +}; + +Simple_idContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Simple_idContext.prototype.REMOTE_SERVICE_NAME = function() { + return this.getToken(TSqlParser.REMOTE_SERVICE_NAME, 0); +}; + +Simple_idContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Simple_idContext.prototype.REORGANIZE = function() { + return this.getToken(TSqlParser.REORGANIZE, 0); +}; + +Simple_idContext.prototype.REPEATABLE = function() { + return this.getToken(TSqlParser.REPEATABLE, 0); +}; + +Simple_idContext.prototype.REPLICA = function() { + return this.getToken(TSqlParser.REPLICA, 0); +}; + +Simple_idContext.prototype.REQUEST_MAX_CPU_TIME_SEC = function() { + return this.getToken(TSqlParser.REQUEST_MAX_CPU_TIME_SEC, 0); +}; + +Simple_idContext.prototype.REQUEST_MAX_MEMORY_GRANT_PERCENT = function() { + return this.getToken(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT, 0); +}; + +Simple_idContext.prototype.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = function() { + return this.getToken(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC, 0); +}; + +Simple_idContext.prototype.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = function() { + return this.getToken(TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, 0); +}; + +Simple_idContext.prototype.RESERVE_DISK_SPACE = function() { + return this.getToken(TSqlParser.RESERVE_DISK_SPACE, 0); +}; + +Simple_idContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Simple_idContext.prototype.RESOURCE_MANAGER_LOCATION = function() { + return this.getToken(TSqlParser.RESOURCE_MANAGER_LOCATION, 0); +}; + +Simple_idContext.prototype.RESTRICTED_USER = function() { + return this.getToken(TSqlParser.RESTRICTED_USER, 0); +}; + +Simple_idContext.prototype.RETENTION = function() { + return this.getToken(TSqlParser.RETENTION, 0); +}; + +Simple_idContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Simple_idContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Simple_idContext.prototype.ROBUST = function() { + return this.getToken(TSqlParser.ROBUST, 0); +}; + +Simple_idContext.prototype.ROOT = function() { + return this.getToken(TSqlParser.ROOT, 0); +}; + +Simple_idContext.prototype.ROUTE = function() { + return this.getToken(TSqlParser.ROUTE, 0); +}; + +Simple_idContext.prototype.ROW = function() { + return this.getToken(TSqlParser.ROW, 0); +}; + +Simple_idContext.prototype.ROW_NUMBER = function() { + return this.getToken(TSqlParser.ROW_NUMBER, 0); +}; + +Simple_idContext.prototype.ROWCOUNT = function() { + return this.getToken(TSqlParser.ROWCOUNT, 0); +}; + +Simple_idContext.prototype.ROWGUID = function() { + return this.getToken(TSqlParser.ROWGUID, 0); +}; + +Simple_idContext.prototype.ROWS = function() { + return this.getToken(TSqlParser.ROWS, 0); +}; + +Simple_idContext.prototype.SAFETY = function() { + return this.getToken(TSqlParser.SAFETY, 0); +}; + +Simple_idContext.prototype.SAMPLE = function() { + return this.getToken(TSqlParser.SAMPLE, 0); +}; + +Simple_idContext.prototype.SCHEMABINDING = function() { + return this.getToken(TSqlParser.SCHEMABINDING, 0); +}; + +Simple_idContext.prototype.SCOPED = function() { + return this.getToken(TSqlParser.SCOPED, 0); +}; + +Simple_idContext.prototype.SCROLL = function() { + return this.getToken(TSqlParser.SCROLL, 0); +}; + +Simple_idContext.prototype.SCROLL_LOCKS = function() { + return this.getToken(TSqlParser.SCROLL_LOCKS, 0); +}; + +Simple_idContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Simple_idContext.prototype.SECONDARY = function() { + return this.getToken(TSqlParser.SECONDARY, 0); +}; + +Simple_idContext.prototype.SECONDARY_ONLY = function() { + return this.getToken(TSqlParser.SECONDARY_ONLY, 0); +}; + +Simple_idContext.prototype.SECONDARY_ROLE = function() { + return this.getToken(TSqlParser.SECONDARY_ROLE, 0); +}; + +Simple_idContext.prototype.SECONDS = function() { + return this.getToken(TSqlParser.SECONDS, 0); +}; + +Simple_idContext.prototype.SECRET = function() { + return this.getToken(TSqlParser.SECRET, 0); +}; + +Simple_idContext.prototype.SECURITY = function() { + return this.getToken(TSqlParser.SECURITY, 0); +}; + +Simple_idContext.prototype.SECURITY_LOG = function() { + return this.getToken(TSqlParser.SECURITY_LOG, 0); +}; + +Simple_idContext.prototype.SEEDING_MODE = function() { + return this.getToken(TSqlParser.SEEDING_MODE, 0); +}; + +Simple_idContext.prototype.SELF = function() { + return this.getToken(TSqlParser.SELF, 0); +}; + +Simple_idContext.prototype.SEMI_SENSITIVE = function() { + return this.getToken(TSqlParser.SEMI_SENSITIVE, 0); +}; + +Simple_idContext.prototype.SEND = function() { + return this.getToken(TSqlParser.SEND, 0); +}; + +Simple_idContext.prototype.SENT = function() { + return this.getToken(TSqlParser.SENT, 0); +}; + +Simple_idContext.prototype.SEQUENCE = function() { + return this.getToken(TSqlParser.SEQUENCE, 0); +}; + +Simple_idContext.prototype.SERIALIZABLE = function() { + return this.getToken(TSqlParser.SERIALIZABLE, 0); +}; + +Simple_idContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Simple_idContext.prototype.SESSION_TIMEOUT = function() { + return this.getToken(TSqlParser.SESSION_TIMEOUT, 0); +}; + +Simple_idContext.prototype.SETERROR = function() { + return this.getToken(TSqlParser.SETERROR, 0); +}; + +Simple_idContext.prototype.SHARE = function() { + return this.getToken(TSqlParser.SHARE, 0); +}; + +Simple_idContext.prototype.SHOWPLAN = function() { + return this.getToken(TSqlParser.SHOWPLAN, 0); +}; + +Simple_idContext.prototype.SID = function() { + return this.getToken(TSqlParser.SID, 0); +}; + +Simple_idContext.prototype.SIGNATURE = function() { + return this.getToken(TSqlParser.SIGNATURE, 0); +}; + +Simple_idContext.prototype.SIMPLE = function() { + return this.getToken(TSqlParser.SIMPLE, 0); +}; + +Simple_idContext.prototype.SINGLE_USER = function() { + return this.getToken(TSqlParser.SINGLE_USER, 0); +}; + +Simple_idContext.prototype.SIZE = function() { + return this.getToken(TSqlParser.SIZE, 0); +}; + +Simple_idContext.prototype.SMALLINT = function() { + return this.getToken(TSqlParser.SMALLINT, 0); +}; + +Simple_idContext.prototype.SNAPSHOT = function() { + return this.getToken(TSqlParser.SNAPSHOT, 0); +}; + +Simple_idContext.prototype.SOURCE = function() { + return this.getToken(TSqlParser.SOURCE, 0); +}; + +Simple_idContext.prototype.SPATIAL_WINDOW_MAX_CELLS = function() { + return this.getToken(TSqlParser.SPATIAL_WINDOW_MAX_CELLS, 0); +}; + +Simple_idContext.prototype.SPLIT = function() { + return this.getToken(TSqlParser.SPLIT, 0); +}; + +Simple_idContext.prototype.STANDBY = function() { + return this.getToken(TSqlParser.STANDBY, 0); +}; + +Simple_idContext.prototype.START = function() { + return this.getToken(TSqlParser.START, 0); +}; + +Simple_idContext.prototype.START_DATE = function() { + return this.getToken(TSqlParser.START_DATE, 0); +}; + +Simple_idContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Simple_idContext.prototype.STATIC = function() { + return this.getToken(TSqlParser.STATIC, 0); +}; + +Simple_idContext.prototype.STATS_STREAM = function() { + return this.getToken(TSqlParser.STATS_STREAM, 0); +}; + +Simple_idContext.prototype.STATUS = function() { + return this.getToken(TSqlParser.STATUS, 0); +}; + +Simple_idContext.prototype.STDEV = function() { + return this.getToken(TSqlParser.STDEV, 0); +}; + +Simple_idContext.prototype.STDEVP = function() { + return this.getToken(TSqlParser.STDEVP, 0); +}; + +Simple_idContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Simple_idContext.prototype.STRING_AGG = function() { + return this.getToken(TSqlParser.STRING_AGG, 0); +}; + +Simple_idContext.prototype.STUFF = function() { + return this.getToken(TSqlParser.STUFF, 0); +}; + +Simple_idContext.prototype.SUBJECT = function() { + return this.getToken(TSqlParser.SUBJECT, 0); +}; + +Simple_idContext.prototype.SUM = function() { + return this.getToken(TSqlParser.SUM, 0); +}; + +Simple_idContext.prototype.SUSPEND = function() { + return this.getToken(TSqlParser.SUSPEND, 0); +}; + +Simple_idContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Simple_idContext.prototype.SYNCHRONOUS_COMMIT = function() { + return this.getToken(TSqlParser.SYNCHRONOUS_COMMIT, 0); +}; + +Simple_idContext.prototype.SYNONYM = function() { + return this.getToken(TSqlParser.SYNONYM, 0); +}; + +Simple_idContext.prototype.SYSTEM = function() { + return this.getToken(TSqlParser.SYSTEM, 0); +}; + +Simple_idContext.prototype.TAKE = function() { + return this.getToken(TSqlParser.TAKE, 0); +}; + +Simple_idContext.prototype.TARGET = function() { + return this.getToken(TSqlParser.TARGET, 0); +}; + +Simple_idContext.prototype.TARGET_RECOVERY_TIME = function() { + return this.getToken(TSqlParser.TARGET_RECOVERY_TIME, 0); +}; + +Simple_idContext.prototype.TB = function() { + return this.getToken(TSqlParser.TB, 0); +}; + +Simple_idContext.prototype.TEXTIMAGE_ON = function() { + return this.getToken(TSqlParser.TEXTIMAGE_ON, 0); +}; + +Simple_idContext.prototype.THROW = function() { + return this.getToken(TSqlParser.THROW, 0); +}; + +Simple_idContext.prototype.TIES = function() { + return this.getToken(TSqlParser.TIES, 0); +}; + +Simple_idContext.prototype.TIME = function() { + return this.getToken(TSqlParser.TIME, 0); +}; + +Simple_idContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Simple_idContext.prototype.TIMER = function() { + return this.getToken(TSqlParser.TIMER, 0); +}; + +Simple_idContext.prototype.TINYINT = function() { + return this.getToken(TSqlParser.TINYINT, 0); +}; + +Simple_idContext.prototype.TORN_PAGE_DETECTION = function() { + return this.getToken(TSqlParser.TORN_PAGE_DETECTION, 0); +}; + +Simple_idContext.prototype.TRANSFORM_NOISE_WORDS = function() { + return this.getToken(TSqlParser.TRANSFORM_NOISE_WORDS, 0); +}; + +Simple_idContext.prototype.TRIPLE_DES = function() { + return this.getToken(TSqlParser.TRIPLE_DES, 0); +}; + +Simple_idContext.prototype.TRIPLE_DES_3KEY = function() { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, 0); +}; + +Simple_idContext.prototype.TRUSTWORTHY = function() { + return this.getToken(TSqlParser.TRUSTWORTHY, 0); +}; + +Simple_idContext.prototype.TRY = function() { + return this.getToken(TSqlParser.TRY, 0); +}; + +Simple_idContext.prototype.TSQL = function() { + return this.getToken(TSqlParser.TSQL, 0); +}; + +Simple_idContext.prototype.TWO_DIGIT_YEAR_CUTOFF = function() { + return this.getToken(TSqlParser.TWO_DIGIT_YEAR_CUTOFF, 0); +}; + +Simple_idContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Simple_idContext.prototype.TYPE_WARNING = function() { + return this.getToken(TSqlParser.TYPE_WARNING, 0); +}; + +Simple_idContext.prototype.UNBOUNDED = function() { + return this.getToken(TSqlParser.UNBOUNDED, 0); +}; + +Simple_idContext.prototype.UNCOMMITTED = function() { + return this.getToken(TSqlParser.UNCOMMITTED, 0); +}; + +Simple_idContext.prototype.UNKNOWN = function() { + return this.getToken(TSqlParser.UNKNOWN, 0); +}; + +Simple_idContext.prototype.UNLIMITED = function() { + return this.getToken(TSqlParser.UNLIMITED, 0); +}; + +Simple_idContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Simple_idContext.prototype.VALID_XML = function() { + return this.getToken(TSqlParser.VALID_XML, 0); +}; + +Simple_idContext.prototype.VALIDATION = function() { + return this.getToken(TSqlParser.VALIDATION, 0); +}; + +Simple_idContext.prototype.VALUE = function() { + return this.getToken(TSqlParser.VALUE, 0); +}; + +Simple_idContext.prototype.VAR = function() { + return this.getToken(TSqlParser.VAR, 0); +}; + +Simple_idContext.prototype.VARP = function() { + return this.getToken(TSqlParser.VARP, 0); +}; + +Simple_idContext.prototype.VIEW_METADATA = function() { + return this.getToken(TSqlParser.VIEW_METADATA, 0); +}; + +Simple_idContext.prototype.VIEWS = function() { + return this.getToken(TSqlParser.VIEWS, 0); +}; + +Simple_idContext.prototype.WAIT = function() { + return this.getToken(TSqlParser.WAIT, 0); +}; + +Simple_idContext.prototype.WELL_FORMED_XML = function() { + return this.getToken(TSqlParser.WELL_FORMED_XML, 0); +}; + +Simple_idContext.prototype.WORK = function() { + return this.getToken(TSqlParser.WORK, 0); +}; + +Simple_idContext.prototype.WORKLOAD = function() { + return this.getToken(TSqlParser.WORKLOAD, 0); +}; + +Simple_idContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Simple_idContext.prototype.XMLNAMESPACES = function() { + return this.getToken(TSqlParser.XMLNAMESPACES, 0); +}; + +Simple_idContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSimple_id(this); + } +}; + +Simple_idContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSimple_id(this); + } +}; + +Simple_idContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSimple_id(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Simple_idContext = Simple_idContext; + +TSqlParser.prototype.simple_id = function() { + + var localctx = new Simple_idContext(this, this._ctx, this.state); + this.enterRule(localctx, 966, TSqlParser.RULE_simple_id); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10732; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || _la===TSqlParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Comparison_operatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_comparison_operator; + return this; +} + +Comparison_operatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Comparison_operatorContext.prototype.constructor = Comparison_operatorContext; + +Comparison_operatorContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Comparison_operatorContext.prototype.GREATER = function() { + return this.getToken(TSqlParser.GREATER, 0); +}; + +Comparison_operatorContext.prototype.LESS = function() { + return this.getToken(TSqlParser.LESS, 0); +}; + +Comparison_operatorContext.prototype.EXCLAMATION = function() { + return this.getToken(TSqlParser.EXCLAMATION, 0); +}; + +Comparison_operatorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterComparison_operator(this); + } +}; + +Comparison_operatorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitComparison_operator(this); + } +}; + +Comparison_operatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitComparison_operator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Comparison_operatorContext = Comparison_operatorContext; + +TSqlParser.prototype.comparison_operator = function() { + + var localctx = new Comparison_operatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 968, TSqlParser.RULE_comparison_operator); + try { + this.state = 10749; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1521,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10734; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10735; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10736; + this.match(TSqlParser.LESS); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10737; + this.match(TSqlParser.LESS); + this.state = 10738; + this.match(TSqlParser.EQUAL); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10739; + this.match(TSqlParser.GREATER); + this.state = 10740; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10741; + this.match(TSqlParser.LESS); + this.state = 10742; + this.match(TSqlParser.GREATER); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 10743; + this.match(TSqlParser.EXCLAMATION); + this.state = 10744; + this.match(TSqlParser.EQUAL); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 10745; + this.match(TSqlParser.EXCLAMATION); + this.state = 10746; + this.match(TSqlParser.GREATER); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 10747; + this.match(TSqlParser.EXCLAMATION); + this.state = 10748; + this.match(TSqlParser.LESS); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Assignment_operatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_assignment_operator; + return this; +} + +Assignment_operatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Assignment_operatorContext.prototype.constructor = Assignment_operatorContext; + +Assignment_operatorContext.prototype.PLUS_ASSIGN = function() { + return this.getToken(TSqlParser.PLUS_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.MINUS_ASSIGN = function() { + return this.getToken(TSqlParser.MINUS_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.MULT_ASSIGN = function() { + return this.getToken(TSqlParser.MULT_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.DIV_ASSIGN = function() { + return this.getToken(TSqlParser.DIV_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.MOD_ASSIGN = function() { + return this.getToken(TSqlParser.MOD_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.AND_ASSIGN = function() { + return this.getToken(TSqlParser.AND_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.XOR_ASSIGN = function() { + return this.getToken(TSqlParser.XOR_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.OR_ASSIGN = function() { + return this.getToken(TSqlParser.OR_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAssignment_operator(this); + } +}; + +Assignment_operatorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAssignment_operator(this); + } +}; + +Assignment_operatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAssignment_operator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Assignment_operatorContext = Assignment_operatorContext; + +TSqlParser.prototype.assignment_operator = function() { + + var localctx = new Assignment_operatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 970, TSqlParser.RULE_assignment_operator); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10751; + _la = this._input.LA(1); + if(!(((((_la - 812)) & ~0x1f) == 0 && ((1 << (_la - 812)) & ((1 << (TSqlParser.PLUS_ASSIGN - 812)) | (1 << (TSqlParser.MINUS_ASSIGN - 812)) | (1 << (TSqlParser.MULT_ASSIGN - 812)) | (1 << (TSqlParser.DIV_ASSIGN - 812)) | (1 << (TSqlParser.MOD_ASSIGN - 812)) | (1 << (TSqlParser.AND_ASSIGN - 812)) | (1 << (TSqlParser.XOR_ASSIGN - 812)) | (1 << (TSqlParser.OR_ASSIGN - 812)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_sizeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_size; + return this; +} + +File_sizeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_sizeContext.prototype.constructor = File_sizeContext; + +File_sizeContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +File_sizeContext.prototype.KB = function() { + return this.getToken(TSqlParser.KB, 0); +}; + +File_sizeContext.prototype.MB = function() { + return this.getToken(TSqlParser.MB, 0); +}; + +File_sizeContext.prototype.GB = function() { + return this.getToken(TSqlParser.GB, 0); +}; + +File_sizeContext.prototype.TB = function() { + return this.getToken(TSqlParser.TB, 0); +}; + +File_sizeContext.prototype.MODULE = function() { + return this.getToken(TSqlParser.MODULE, 0); +}; + +File_sizeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_size(this); + } +}; + +File_sizeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_size(this); + } +}; + +File_sizeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_size(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_sizeContext = File_sizeContext; + +TSqlParser.prototype.file_size = function() { + + var localctx = new File_sizeContext(this, this._ctx, this.state); + this.enterRule(localctx, 972, TSqlParser.RULE_file_size); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10753; + this.match(TSqlParser.DECIMAL); + this.state = 10755; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.GB || _la===TSqlParser.KB || _la===TSqlParser.MB || _la===TSqlParser.TB || _la===TSqlParser.MODULE) { + this.state = 10754; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GB || _la===TSqlParser.KB || _la===TSqlParser.MB || _la===TSqlParser.TB || _la===TSqlParser.MODULE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +TSqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { + switch(ruleIndex) { + case 46: + return this.assembly_option_sempred(localctx, predIndex); + case 363: + return this.expression_sempred(localctx, predIndex); + default: + throw "No predicate with index:" + ruleIndex; + } +}; + +TSqlParser.prototype.assembly_option_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 0: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } +}; + +TSqlParser.prototype.expression_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 1: + return this.precpred(this._ctx, 5); + case 2: + return this.precpred(this._ctx, 4); + case 3: + return this.precpred(this._ctx, 3); + case 4: + return this.precpred(this._ctx, 2); + case 5: + return this.precpred(this._ctx, 10); + default: + throw "No predicate with index:" + predIndex; + } +}; + + +exports.TSqlParser = TSqlParser; diff --git a/src/grammar/tsql/parser/TSqlParser.tokens b/src/grammar/tsql/parser/TSqlParser.tokens new file mode 100644 index 0000000..5d9475f --- /dev/null +++ b/src/grammar/tsql/parser/TSqlParser.tokens @@ -0,0 +1,1657 @@ +ABSENT=1 +ADD=2 +AES=3 +ALL=4 +ALLOW_CONNECTIONS=5 +ALLOW_MULTIPLE_EVENT_LOSS=6 +ALLOW_SINGLE_EVENT_LOSS=7 +ALTER=8 +AND=9 +ANONYMOUS=10 +ANY=11 +APPEND=12 +APPLICATION=13 +AS=14 +ASC=15 +ASYMMETRIC=16 +ASYNCHRONOUS_COMMIT=17 +AUTHORIZATION=18 +AUTHENTICATION=19 +AUTOMATED_BACKUP_PREFERENCE=20 +AUTOMATIC=21 +AVAILABILITY_MODE=22 +BACKSLASH=23 +BACKUP=24 +BEFORE=25 +BEGIN=26 +BETWEEN=27 +BLOCK=28 +BLOCKSIZE=29 +BLOCKING_HIERARCHY=30 +BREAK=31 +BROWSE=32 +BUFFER=33 +BUFFERCOUNT=34 +BULK=35 +BY=36 +CACHE=37 +CALLED=38 +CASCADE=39 +CASE=40 +CERTIFICATE=41 +CHANGETABLE=42 +CHANGES=43 +CHECK=44 +CHECKPOINT=45 +CHECK_POLICY=46 +CHECK_EXPIRATION=47 +CLASSIFIER_FUNCTION=48 +CLOSE=49 +CLUSTER=50 +CLUSTERED=51 +COALESCE=52 +COLLATE=53 +COLUMN=54 +COMPRESSION=55 +COMMIT=56 +COMPUTE=57 +CONFIGURATION=58 +CONSTRAINT=59 +CONTAINMENT=60 +CONTAINS=61 +CONTAINSTABLE=62 +CONTEXT=63 +CONTINUE=64 +CONTINUE_AFTER_ERROR=65 +CONTRACT=66 +CONTRACT_NAME=67 +CONVERSATION=68 +CONVERT=69 +COPY_ONLY=70 +CREATE=71 +CROSS=72 +CURRENT=73 +CURRENT_DATE=74 +CURRENT_TIME=75 +CURRENT_TIMESTAMP=76 +CURRENT_USER=77 +CURSOR=78 +CYCLE=79 +DATA_COMPRESSION=80 +DATA_SOURCE=81 +DATABASE=82 +DATABASE_MIRRORING=83 +DBCC=84 +DEALLOCATE=85 +DECLARE=86 +DEFAULT=87 +DEFAULT_DATABASE=88 +DEFAULT_SCHEMA=89 +DELETE=90 +DENY=91 +DESC=92 +DIAGNOSTICS=93 +DIFFERENTIAL=94 +DISK=95 +DISTINCT=96 +DISTRIBUTED=97 +DOUBLE=98 +DOUBLE_BACK_SLASH=99 +DOUBLE_FORWARD_SLASH=100 +DROP=101 +DTC_SUPPORT=102 +DUMP=103 +ELSE=104 +ENABLED=105 +END=106 +ENDPOINT=107 +ERRLVL=108 +ESCAPE=109 +ERROR=110 +EVENT=111 +EVENTDATA=112 +EVENT_RETENTION_MODE=113 +EXCEPT=114 +EXECUTABLE_FILE=115 +EXECUTE=116 +EXISTS=117 +EXPIREDATE=118 +EXIT=119 +EXTENSION=120 +EXTERNAL=121 +EXTERNAL_ACCESS=122 +FAILOVER=123 +FAILURECONDITIONLEVEL=124 +FAN_IN=125 +FETCH=126 +FILE=127 +FILENAME=128 +FILLFACTOR=129 +FILE_SNAPSHOT=130 +FOR=131 +FORCESEEK=132 +FORCE_SERVICE_ALLOW_DATA_LOSS=133 +FOREIGN=134 +FREETEXT=135 +FREETEXTTABLE=136 +FROM=137 +FULL=138 +FUNCTION=139 +GET=140 +GOTO=141 +GOVERNOR=142 +GRANT=143 +GROUP=144 +HAVING=145 +HASHED=146 +HEALTHCHECKTIMEOUT=147 +IDENTITY=148 +IDENTITYCOL=149 +IDENTITY_INSERT=150 +IF=151 +IIF=152 +IN=153 +INCLUDE=154 +INCREMENT=155 +INDEX=156 +INFINITE=157 +INIT=158 +INNER=159 +INSERT=160 +INSTEAD=161 +INTERSECT=162 +INTO=163 +IPV4_ADDR=164 +IPV6_ADDR=165 +IS=166 +ISNULL=167 +JOIN=168 +KERBEROS=169 +KEY=170 +KEY_PATH=171 +KEY_STORE_PROVIDER_NAME=172 +KILL=173 +LANGUAGE=174 +LEFT=175 +LIBRARY=176 +LIFETIME=177 +LIKE=178 +LINENO=179 +LINUX=180 +LISTENER_IP=181 +LISTENER_PORT=182 +LOAD=183 +LOCAL_SERVICE_NAME=184 +LOG=185 +MATCHED=186 +MASTER=187 +MAX_MEMORY=188 +MAXTRANSFER=189 +MAXVALUE=190 +MAX_DISPATCH_LATENCY=191 +MAX_EVENT_SIZE=192 +MAX_SIZE=193 +MAX_OUTSTANDING_IO_PER_VOLUME=194 +MEDIADESCRIPTION=195 +MEDIANAME=196 +MEMBER=197 +MEMORY_PARTITION_MODE=198 +MERGE=199 +MESSAGE_FORWARDING=200 +MESSAGE_FORWARD_SIZE=201 +MINVALUE=202 +MIRROR=203 +MUST_CHANGE=204 +NATIONAL=205 +NEGOTIATE=206 +NOCHECK=207 +NOFORMAT=208 +NOINIT=209 +NONCLUSTERED=210 +NONE=211 +NOREWIND=212 +NOSKIP=213 +NOUNLOAD=214 +NO_CHECKSUM=215 +NO_COMPRESSION=216 +NO_EVENT_LOSS=217 +NOT=218 +NOTIFICATION=219 +NTLM=220 +NULL=221 +NULLIF=222 +OF=223 +OFF=224 +OFFSETS=225 +OLD_PASSWORD=226 +ON=227 +ON_FAILURE=228 +OPEN=229 +OPENDATASOURCE=230 +OPENQUERY=231 +OPENROWSET=232 +OPENXML=233 +OPTION=234 +OR=235 +ORDER=236 +OUTER=237 +OVER=238 +PAGE=239 +PARAM_NODE=240 +PARTIAL=241 +PASSWORD=242 +PERCENT=243 +PERMISSION_SET=244 +PER_CPU=245 +PER_DB=246 +PER_NODE=247 +PIVOT=248 +PLAN=249 +PLATFORM=250 +POLICY=251 +PRECISION=252 +PREDICATE=253 +PRIMARY=254 +PRINT=255 +PROC=256 +PROCEDURE=257 +PROCESS=258 +PUBLIC=259 +PYTHON=260 +R=261 +RAISERROR=262 +RAW=263 +READ=264 +READTEXT=265 +READ_WRITE_FILEGROUPS=266 +RECONFIGURE=267 +REFERENCES=268 +REGENERATE=269 +RELATED_CONVERSATION=270 +RELATED_CONVERSATION_GROUP=271 +REPLICATION=272 +REQUIRED=273 +RESET=274 +RESTART=275 +RESTORE=276 +RESTRICT=277 +RESUME=278 +RETAINDAYS=279 +RETURN=280 +RETURNS=281 +REVERT=282 +REVOKE=283 +REWIND=284 +RIGHT=285 +ROLLBACK=286 +ROLE=287 +ROWCOUNT=288 +ROWGUIDCOL=289 +RSA_512=290 +RSA_1024=291 +RSA_2048=292 +RSA_3072=293 +RSA_4096=294 +SAFETY=295 +RULE=296 +SAFE=297 +SAVE=298 +SCHEDULER=299 +SCHEMA=300 +SCHEME=301 +SECURITYAUDIT=302 +SELECT=303 +SEMANTICKEYPHRASETABLE=304 +SEMANTICSIMILARITYDETAILSTABLE=305 +SEMANTICSIMILARITYTABLE=306 +SERVER=307 +SERVICE=308 +SERVICE_BROKER=309 +SERVICE_NAME=310 +SESSION=311 +SESSION_USER=312 +SET=313 +SETUSER=314 +SHUTDOWN=315 +SID=316 +SKIP_KEYWORD=317 +SOFTNUMA=318 +SOME=319 +SOURCE=320 +SPECIFICATION=321 +SPLIT=322 +SQLDUMPERFLAGS=323 +SQLDUMPERPATH=324 +SQLDUMPERTIMEOUT=325 +STATISTICS=326 +STATE=327 +STATS=328 +START=329 +STARTED=330 +STARTUP_STATE=331 +STOP=332 +STOPPED=333 +STOP_ON_ERROR=334 +SUPPORTED=335 +SYSTEM_USER=336 +TABLE=337 +TABLESAMPLE=338 +TAPE=339 +TARGET=340 +TCP=341 +TEXTSIZE=342 +THEN=343 +TO=344 +TOP=345 +TRACK_CAUSALITY=346 +TRAN=347 +TRANSACTION=348 +TRANSFER=349 +TRIGGER=350 +TRUNCATE=351 +TSEQUAL=352 +UNCHECKED=353 +UNION=354 +UNIQUE=355 +UNLOCK=356 +UNPIVOT=357 +UNSAFE=358 +UPDATE=359 +UPDATETEXT=360 +URL=361 +USE=362 +USED=363 +USER=364 +VALUES=365 +VARYING=366 +VERBOSELOGGING=367 +VIEW=368 +VISIBILITY=369 +WAITFOR=370 +WHEN=371 +WHERE=372 +WHILE=373 +WINDOWS=374 +WITH=375 +WITHIN=376 +WITHOUT=377 +WITNESS=378 +WRITETEXT=379 +ABSOLUTE=380 +ACCENT_SENSITIVITY=381 +ACTION=382 +ACTIVATION=383 +ACTIVE=384 +ADDRESS=385 +AES_128=386 +AES_192=387 +AES_256=388 +AFFINITY=389 +AFTER=390 +AGGREGATE=391 +ALGORITHM=392 +ALLOW_ENCRYPTED_VALUE_MODIFICATIONS=393 +ALLOW_SNAPSHOT_ISOLATION=394 +ALLOWED=395 +ANSI_NULL_DEFAULT=396 +ANSI_NULLS=397 +ANSI_PADDING=398 +ANSI_WARNINGS=399 +APPLICATION_LOG=400 +APPLY=401 +ARITHABORT=402 +ASSEMBLY=403 +AUDIT=404 +AUDIT_GUID=405 +AUTO=406 +AUTO_CLEANUP=407 +AUTO_CLOSE=408 +AUTO_CREATE_STATISTICS=409 +AUTO_SHRINK=410 +AUTO_UPDATE_STATISTICS=411 +AUTO_UPDATE_STATISTICS_ASYNC=412 +AVAILABILITY=413 +AVG=414 +BACKUP_PRIORITY=415 +BEGIN_DIALOG=416 +BIGINT=417 +BINARY_BASE64=418 +BINARY_CHECKSUM=419 +BINDING=420 +BLOB_STORAGE=421 +BROKER=422 +BROKER_INSTANCE=423 +BULK_LOGGED=424 +CALLER=425 +CAP_CPU_PERCENT=426 +CAST=427 +CATALOG=428 +CATCH=429 +CHANGE_RETENTION=430 +CHANGE_TRACKING=431 +CHECKSUM=432 +CHECKSUM_AGG=433 +CLEANUP=434 +COLLECTION=435 +COLUMN_MASTER_KEY=436 +COMMITTED=437 +COMPATIBILITY_LEVEL=438 +CONCAT=439 +CONCAT_NULL_YIELDS_NULL=440 +CONTENT=441 +CONTROL=442 +COOKIE=443 +COUNT=444 +COUNT_BIG=445 +COUNTER=446 +CPU=447 +CREATE_NEW=448 +CREATION_DISPOSITION=449 +CREDENTIAL=450 +CRYPTOGRAPHIC=451 +CURSOR_CLOSE_ON_COMMIT=452 +CURSOR_DEFAULT=453 +DATA=454 +DATE_CORRELATION_OPTIMIZATION=455 +DATEADD=456 +DATEDIFF=457 +DATENAME=458 +DATEPART=459 +DAYS=460 +DB_CHAINING=461 +DB_FAILOVER=462 +DECRYPTION=463 +DEFAULT_DOUBLE_QUOTE=464 +DEFAULT_FULLTEXT_LANGUAGE=465 +DEFAULT_LANGUAGE=466 +DELAY=467 +DELAYED_DURABILITY=468 +DELETED=469 +DENSE_RANK=470 +DEPENDENTS=471 +DES=472 +DESCRIPTION=473 +DESX=474 +DHCP=475 +DIALOG=476 +DIRECTORY_NAME=477 +DISABLE=478 +DISABLE_BROKER=479 +DISABLED=480 +DISK_DRIVE=481 +DOCUMENT=482 +DYNAMIC=483 +ELEMENTS=484 +EMERGENCY=485 +EMPTY=486 +ENABLE=487 +ENABLE_BROKER=488 +ENCRYPTED_VALUE=489 +ENCRYPTION=490 +ENDPOINT_URL=491 +ERROR_BROKER_CONVERSATIONS=492 +EXCLUSIVE=493 +EXECUTABLE=494 +EXIST=495 +EXPAND=496 +EXPIRY_DATE=497 +EXPLICIT=498 +FAIL_OPERATION=499 +FAILOVER_MODE=500 +FAILURE=501 +FAILURE_CONDITION_LEVEL=502 +FAST=503 +FAST_FORWARD=504 +FILEGROUP=505 +FILEGROWTH=506 +FILEPATH=507 +FILESTREAM=508 +FILTER=509 +FIRST=510 +FIRST_VALUE=511 +FOLLOWING=512 +FORCE=513 +FORCE_FAILOVER_ALLOW_DATA_LOSS=514 +FORCED=515 +FORMAT=516 +FORWARD_ONLY=517 +FULLSCAN=518 +FULLTEXT=519 +GB=520 +GETDATE=521 +GETUTCDATE=522 +GLOBAL=523 +GO=524 +GROUP_MAX_REQUESTS=525 +GROUPING=526 +GROUPING_ID=527 +HADR=528 +HASH=529 +HEALTH_CHECK_TIMEOUT=530 +HIGH=531 +HONOR_BROKER_PRIORITY=532 +HOURS=533 +IDENTITY_VALUE=534 +IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX=535 +IMMEDIATE=536 +IMPERSONATE=537 +IMPORTANCE=538 +INCLUDE_NULL_VALUES=539 +INCREMENTAL=540 +INITIATOR=541 +INPUT=542 +INSENSITIVE=543 +INSERTED=544 +INT=545 +IP=546 +ISOLATION=547 +JOB=548 +JSON=549 +KB=550 +KEEP=551 +KEEPFIXED=552 +KEY_SOURCE=553 +KEYS=554 +KEYSET=555 +LAG=556 +LAST=557 +LAST_VALUE=558 +LEAD=559 +LEVEL=560 +LIST=561 +LISTENER=562 +LISTENER_URL=563 +LOB_COMPACTION=564 +LOCAL=565 +LOCATION=566 +LOCK=567 +LOCK_ESCALATION=568 +LOGIN=569 +LOOP=570 +LOW=571 +MANUAL=572 +MARK=573 +MATERIALIZED=574 +MAX=575 +MAX_CPU_PERCENT=576 +MAX_DOP=577 +MAX_FILES=578 +MAX_IOPS_PER_VOLUME=579 +MAX_MEMORY_PERCENT=580 +MAX_PROCESSES=581 +MAX_QUEUE_READERS=582 +MAX_ROLLOVER_FILES=583 +MAXDOP=584 +MAXRECURSION=585 +MAXSIZE=586 +MB=587 +MEDIUM=588 +MEMORY_OPTIMIZED_DATA=589 +MESSAGE=590 +MIN=591 +MIN_ACTIVE_ROWVERSION=592 +MIN_CPU_PERCENT=593 +MIN_IOPS_PER_VOLUME=594 +MIN_MEMORY_PERCENT=595 +MINUTES=596 +MIRROR_ADDRESS=597 +MIXED_PAGE_ALLOCATION=598 +MODE=599 +MODIFY=600 +MOVE=601 +MULTI_USER=602 +NAME=603 +NESTED_TRIGGERS=604 +NEW_ACCOUNT=605 +NEW_BROKER=606 +NEW_PASSWORD=607 +NEXT=608 +NO=609 +NO_TRUNCATE=610 +NO_WAIT=611 +NOCOUNT=612 +NODES=613 +NOEXPAND=614 +NON_TRANSACTED_ACCESS=615 +NORECOMPUTE=616 +NORECOVERY=617 +NOWAIT=618 +NTILE=619 +NUMANODE=620 +NUMBER=621 +NUMERIC_ROUNDABORT=622 +OBJECT=623 +OFFLINE=624 +OFFSET=625 +OLD_ACCOUNT=626 +ONLINE=627 +ONLY=628 +OPEN_EXISTING=629 +OPTIMISTIC=630 +OPTIMIZE=631 +OUT=632 +OUTPUT=633 +OVERRIDE=634 +OWNER=635 +PAGE_VERIFY=636 +PARAMETERIZATION=637 +PARTITION=638 +PARTITIONS=639 +PARTNER=640 +PATH=641 +POISON_MESSAGE_HANDLING=642 +POOL=643 +PORT=644 +PRECEDING=645 +PRIMARY_ROLE=646 +PRIOR=647 +PRIORITY=648 +PRIORITY_LEVEL=649 +PRIVATE=650 +PRIVATE_KEY=651 +PRIVILEGES=652 +PROCEDURE_NAME=653 +PROPERTY=654 +PROVIDER=655 +PROVIDER_KEY_NAME=656 +QUERY=657 +QUEUE=658 +QUEUE_DELAY=659 +QUOTED_IDENTIFIER=660 +RANGE=661 +RANK=662 +RC2=663 +RC4=664 +RC4_128=665 +READ_COMMITTED_SNAPSHOT=666 +READ_ONLY=667 +READ_ONLY_ROUTING_LIST=668 +READ_WRITE=669 +READONLY=670 +REBUILD=671 +RECEIVE=672 +RECOMPILE=673 +RECOVERY=674 +RECURSIVE_TRIGGERS=675 +RELATIVE=676 +REMOTE=677 +REMOTE_SERVICE_NAME=678 +REMOVE=679 +REORGANIZE=680 +REPEATABLE=681 +REPLICA=682 +REQUEST_MAX_CPU_TIME_SEC=683 +REQUEST_MAX_MEMORY_GRANT_PERCENT=684 +REQUEST_MEMORY_GRANT_TIMEOUT_SEC=685 +REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT=686 +RESERVE_DISK_SPACE=687 +RESOURCE=688 +RESOURCE_MANAGER_LOCATION=689 +RESTRICTED_USER=690 +RETENTION=691 +ROBUST=692 +ROOT=693 +ROUTE=694 +ROW=695 +ROW_NUMBER=696 +ROWGUID=697 +ROWS=698 +SAMPLE=699 +SCHEMABINDING=700 +SCOPED=701 +SCROLL=702 +SCROLL_LOCKS=703 +SEARCH=704 +SECONDARY=705 +SECONDARY_ONLY=706 +SECONDARY_ROLE=707 +SECONDS=708 +SECRET=709 +SECURITY=710 +SECURITY_LOG=711 +SEEDING_MODE=712 +SELF=713 +SEMI_SENSITIVE=714 +SEND=715 +SENT=716 +SEQUENCE=717 +SERIALIZABLE=718 +SESSION_TIMEOUT=719 +SETERROR=720 +SHARE=721 +SHOWPLAN=722 +SIGNATURE=723 +SIMPLE=724 +SINGLE_USER=725 +SIZE=726 +SMALLINT=727 +SNAPSHOT=728 +SPATIAL_WINDOW_MAX_CELLS=729 +STANDBY=730 +START_DATE=731 +STATIC=732 +STATS_STREAM=733 +STATUS=734 +STATUSONLY=735 +STDEV=736 +STDEVP=737 +STOPLIST=738 +STRING_AGG=739 +STUFF=740 +SUBJECT=741 +SUBSCRIPTION=742 +SUM=743 +SUSPEND=744 +SYMMETRIC=745 +SYNCHRONOUS_COMMIT=746 +SYNONYM=747 +SYSTEM=748 +TAKE=749 +TARGET_RECOVERY_TIME=750 +TB=751 +TEXTIMAGE_ON=752 +THROW=753 +TIES=754 +TIME=755 +TIMEOUT=756 +TIMER=757 +TINYINT=758 +TORN_PAGE_DETECTION=759 +TRANSFORM_NOISE_WORDS=760 +TRIPLE_DES=761 +TRIPLE_DES_3KEY=762 +TRUSTWORTHY=763 +TRY=764 +TSQL=765 +TWO_DIGIT_YEAR_CUTOFF=766 +TYPE=767 +TYPE_WARNING=768 +UNBOUNDED=769 +UNCOMMITTED=770 +UNKNOWN=771 +UNLIMITED=772 +UOW=773 +USING=774 +VALID_XML=775 +VALIDATION=776 +VALUE=777 +VAR=778 +VARP=779 +VIEW_METADATA=780 +VIEWS=781 +WAIT=782 +WELL_FORMED_XML=783 +WITHOUT_ARRAY_WRAPPER=784 +WORK=785 +WORKLOAD=786 +XML=787 +XMLDATA=788 +XMLNAMESPACES=789 +XMLSCHEMA=790 +XSINIL=791 +DOLLAR_ACTION=792 +SPACE=793 +COMMENT=794 +LINE_COMMENT=795 +DOUBLE_QUOTE_ID=796 +SINGLE_QUOTE=797 +SQUARE_BRACKET_ID=798 +LOCAL_ID=799 +DECIMAL=800 +ID=801 +QUOTED_URL=802 +QUOTED_HOST_AND_PORT=803 +STRING=804 +BINARY=805 +FLOAT=806 +REAL=807 +EQUAL=808 +GREATER=809 +LESS=810 +EXCLAMATION=811 +PLUS_ASSIGN=812 +MINUS_ASSIGN=813 +MULT_ASSIGN=814 +DIV_ASSIGN=815 +MOD_ASSIGN=816 +AND_ASSIGN=817 +XOR_ASSIGN=818 +OR_ASSIGN=819 +DOUBLE_BAR=820 +DOT=821 +UNDERLINE=822 +AT=823 +SHARP=824 +DOLLAR=825 +LR_BRACKET=826 +RR_BRACKET=827 +COMMA=828 +SEMI=829 +COLON=830 +STAR=831 +DIVIDE=832 +MODULE=833 +PLUS=834 +MINUS=835 +BIT_NOT=836 +BIT_OR=837 +BIT_AND=838 +BIT_XOR=839 +IPV4_OCTECT=840 +'ABSENT'=1 +'ADD'=2 +'AES'=3 +'ALL'=4 +'ALLOW_CONNECTIONS'=5 +'ALLOW_MULTIPLE_EVENT_LOSS'=6 +'ALLOW_SINGLE_EVENT_LOSS'=7 +'ALTER'=8 +'AND'=9 +'ANONYMOUS'=10 +'ANY'=11 +'APPEND'=12 +'APPLICATION'=13 +'AS'=14 +'ASC'=15 +'ASYMMETRIC'=16 +'ASYNCHRONOUS_COMMIT'=17 +'AUTHORIZATION'=18 +'AUTHENTICATION'=19 +'AUTOMATED_BACKUP_PREFERENCE'=20 +'AUTOMATIC'=21 +'AVAILABILITY_MODE'=22 +'\\'=23 +'BACKUP'=24 +'BEFORE'=25 +'BEGIN'=26 +'BETWEEN'=27 +'BLOCK'=28 +'BLOCKSIZE'=29 +'BLOCKING_HIERARCHY'=30 +'BREAK'=31 +'BROWSE'=32 +'BUFFER'=33 +'BUFFERCOUNT'=34 +'BULK'=35 +'BY'=36 +'CACHE'=37 +'CALLED'=38 +'CASCADE'=39 +'CASE'=40 +'CERTIFICATE'=41 +'CHANGETABLE'=42 +'CHANGES'=43 +'CHECK'=44 +'CHECKPOINT'=45 +'CHECK_POLICY'=46 +'CHECK_EXPIRATION'=47 +'CLASSIFIER_FUNCTION'=48 +'CLOSE'=49 +'CLUSTER'=50 +'CLUSTERED'=51 +'COALESCE'=52 +'COLLATE'=53 +'COLUMN'=54 +'COMPRESSION'=55 +'COMMIT'=56 +'COMPUTE'=57 +'CONFIGURATION'=58 +'CONSTRAINT'=59 +'CONTAINMENT'=60 +'CONTAINS'=61 +'CONTAINSTABLE'=62 +'CONTEXT'=63 +'CONTINUE'=64 +'CONTINUE_AFTER_ERROR'=65 +'CONTRACT'=66 +'CONTRACT_NAME'=67 +'CONVERSATION'=68 +'COPY_ONLY'=70 +'CREATE'=71 +'CROSS'=72 +'CURRENT'=73 +'CURRENT_DATE'=74 +'CURRENT_TIME'=75 +'CURRENT_TIMESTAMP'=76 +'CURRENT_USER'=77 +'CURSOR'=78 +'CYCLE'=79 +'DATA_COMPRESSION'=80 +'DATA_SOURCE'=81 +'DATABASE'=82 +'DATABASE_MIRRORING'=83 +'DBCC'=84 +'DEALLOCATE'=85 +'DECLARE'=86 +'DEFAULT'=87 +'DEFAULT_DATABASE'=88 +'DEFAULT_SCHEMA'=89 +'DELETE'=90 +'DENY'=91 +'DESC'=92 +'DIAGNOSTICS'=93 +'DIFFERENTIAL'=94 +'DISK'=95 +'DISTINCT'=96 +'DISTRIBUTED'=97 +'DOUBLE'=98 +'\\\\'=99 +'//'=100 +'DROP'=101 +'DTC_SUPPORT'=102 +'DUMP'=103 +'ELSE'=104 +'ENABLED'=105 +'END'=106 +'ENDPOINT'=107 +'ERRLVL'=108 +'ESCAPE'=109 +'ERROR'=110 +'EVENT'=111 +'EVENT_RETENTION_MODE'=113 +'EXCEPT'=114 +'EXECUTABLE_FILE'=115 +'EXISTS'=117 +'EXPIREDATE'=118 +'EXIT'=119 +'EXTENSION'=120 +'EXTERNAL'=121 +'EXTERNAL_ACCESS'=122 +'FAILOVER'=123 +'FAILURECONDITIONLEVEL'=124 +'FAN_IN'=125 +'FETCH'=126 +'FILE'=127 +'FILENAME'=128 +'FILLFACTOR'=129 +'FILE_SNAPSHOT'=130 +'FOR'=131 +'FORCESEEK'=132 +'FORCE_SERVICE_ALLOW_DATA_LOSS'=133 +'FOREIGN'=134 +'FREETEXT'=135 +'FREETEXTTABLE'=136 +'FROM'=137 +'FULL'=138 +'FUNCTION'=139 +'GET'=140 +'GOTO'=141 +'GOVERNOR'=142 +'GRANT'=143 +'GROUP'=144 +'HAVING'=145 +'HASHED'=146 +'HEALTHCHECKTIMEOUT'=147 +'IDENTITY'=148 +'IDENTITYCOL'=149 +'IDENTITY_INSERT'=150 +'IF'=151 +'IIF'=152 +'IN'=153 +'INCLUDE'=154 +'INCREMENT'=155 +'INDEX'=156 +'INFINITE'=157 +'INIT'=158 +'INNER'=159 +'INSERT'=160 +'INSTEAD'=161 +'INTERSECT'=162 +'INTO'=163 +'IS'=166 +'ISNULL'=167 +'JOIN'=168 +'KERBEROS'=169 +'KEY'=170 +'KEY_PATH'=171 +'KEY_STORE_PROVIDER_NAME'=172 +'KILL'=173 +'LANGUAGE'=174 +'LEFT'=175 +'LIBRARY'=176 +'LIFETIME'=177 +'LIKE'=178 +'LINENO'=179 +'LINUX'=180 +'LISTENER_IP'=181 +'LISTENER_PORT'=182 +'LOAD'=183 +'LOCAL_SERVICE_NAME'=184 +'LOG'=185 +'MATCHED'=186 +'MASTER'=187 +'MAX_MEMORY'=188 +'MAXTRANSFER'=189 +'MAXVALUE'=190 +'MAX_DISPATCH_LATENCY'=191 +'MAX_EVENT_SIZE'=192 +'MAX_SIZE'=193 +'MAX_OUTSTANDING_IO_PER_VOLUME'=194 +'MEDIADESCRIPTION'=195 +'MEDIANAME'=196 +'MEMBER'=197 +'MEMORY_PARTITION_MODE'=198 +'MERGE'=199 +'MESSAGE_FORWARDING'=200 +'MESSAGE_FORWARD_SIZE'=201 +'MINVALUE'=202 +'MIRROR'=203 +'MUST_CHANGE'=204 +'NATIONAL'=205 +'NEGOTIATE'=206 +'NOCHECK'=207 +'NOFORMAT'=208 +'NOINIT'=209 +'NONCLUSTERED'=210 +'NONE'=211 +'NOREWIND'=212 +'NOSKIP'=213 +'NOUNLOAD'=214 +'NO_CHECKSUM'=215 +'NO_COMPRESSION'=216 +'NO_EVENT_LOSS'=217 +'NOT'=218 +'NOTIFICATION'=219 +'NTLM'=220 +'NULL'=221 +'NULLIF'=222 +'OF'=223 +'OFF'=224 +'OFFSETS'=225 +'OLD_PASSWORD'=226 +'ON'=227 +'ON_FAILURE'=228 +'OPEN'=229 +'OPENDATASOURCE'=230 +'OPENQUERY'=231 +'OPENROWSET'=232 +'OPENXML'=233 +'OPTION'=234 +'OR'=235 +'ORDER'=236 +'OUTER'=237 +'OVER'=238 +'PAGE'=239 +'PARAM_NODE'=240 +'PARTIAL'=241 +'PASSWORD'=242 +'PERCENT'=243 +'PERMISSION_SET'=244 +'PER_CPU'=245 +'PER_DB'=246 +'PER_NODE'=247 +'PIVOT'=248 +'PLAN'=249 +'PLATFORM'=250 +'POLICY'=251 +'PRECISION'=252 +'PREDICATE'=253 +'PRIMARY'=254 +'PRINT'=255 +'PROC'=256 +'PROCEDURE'=257 +'PROCESS'=258 +'PUBLIC'=259 +'PYTHON'=260 +'R'=261 +'RAISERROR'=262 +'RAW'=263 +'READ'=264 +'READTEXT'=265 +'READ_WRITE_FILEGROUPS'=266 +'RECONFIGURE'=267 +'REFERENCES'=268 +'REGENERATE'=269 +'RELATED_CONVERSATION'=270 +'RELATED_CONVERSATION_GROUP'=271 +'REPLICATION'=272 +'REQUIRED'=273 +'RESET'=274 +'RESTART'=275 +'RESTORE'=276 +'RESTRICT'=277 +'RESUME'=278 +'RETAINDAYS'=279 +'RETURN'=280 +'RETURNS'=281 +'REVERT'=282 +'REVOKE'=283 +'REWIND'=284 +'RIGHT'=285 +'ROLLBACK'=286 +'ROLE'=287 +'ROWCOUNT'=288 +'ROWGUIDCOL'=289 +'RSA_512'=290 +'RSA_1024'=291 +'RSA_2048'=292 +'RSA_3072'=293 +'RSA_4096'=294 +'SAFETY'=295 +'RULE'=296 +'SAFE'=297 +'SAVE'=298 +'SCHEDULER'=299 +'SCHEMA'=300 +'SCHEME'=301 +'SECURITYAUDIT'=302 +'SELECT'=303 +'SEMANTICKEYPHRASETABLE'=304 +'SEMANTICSIMILARITYDETAILSTABLE'=305 +'SEMANTICSIMILARITYTABLE'=306 +'SERVER'=307 +'SERVICE'=308 +'SERVICE_BROKER'=309 +'SERVICE_NAME'=310 +'SESSION'=311 +'SESSION_USER'=312 +'SET'=313 +'SETUSER'=314 +'SHUTDOWN'=315 +'SID'=316 +'SKIP'=317 +'SOFTNUMA'=318 +'SOME'=319 +'SOURCE'=320 +'SPECIFICATION'=321 +'SPLIT'=322 +'SQLDUMPERFLAGS'=323 +'SQLDUMPERPATH'=324 +'SQLDUMPERTIMEOUTS'=325 +'STATISTICS'=326 +'STATE'=327 +'STATS'=328 +'START'=329 +'STARTED'=330 +'STARTUP_STATE'=331 +'STOP'=332 +'STOPPED'=333 +'STOP_ON_ERROR'=334 +'SUPPORTED'=335 +'SYSTEM_USER'=336 +'TABLE'=337 +'TABLESAMPLE'=338 +'TAPE'=339 +'TARGET'=340 +'TCP'=341 +'TEXTSIZE'=342 +'THEN'=343 +'TO'=344 +'TOP'=345 +'TRACK_CAUSALITY'=346 +'TRAN'=347 +'TRANSACTION'=348 +'TRANSFER'=349 +'TRIGGER'=350 +'TRUNCATE'=351 +'TSEQUAL'=352 +'UNCHECKED'=353 +'UNION'=354 +'UNIQUE'=355 +'UNLOCK'=356 +'UNPIVOT'=357 +'UNSAFE'=358 +'UPDATE'=359 +'UPDATETEXT'=360 +'URL'=361 +'USE'=362 +'USED'=363 +'USER'=364 +'VALUES'=365 +'VARYING'=366 +'VERBOSELOGGING'=367 +'VIEW'=368 +'VISIBILITY'=369 +'WAITFOR'=370 +'WHEN'=371 +'WHERE'=372 +'WHILE'=373 +'WINDOWS'=374 +'WITH'=375 +'WITHIN'=376 +'WITHOUT'=377 +'WITNESS'=378 +'WRITETEXT'=379 +'ABSOLUTE'=380 +'ACCENT_SENSITIVITY'=381 +'ACTION'=382 +'ACTIVATION'=383 +'ACTIVE'=384 +'ADDRESS'=385 +'AES_128'=386 +'AES_192'=387 +'AES_256'=388 +'AFFINITY'=389 +'AFTER'=390 +'AGGREGATE'=391 +'ALGORITHM'=392 +'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'=393 +'ALLOW_SNAPSHOT_ISOLATION'=394 +'ALLOWED'=395 +'ANSI_NULL_DEFAULT'=396 +'ANSI_NULLS'=397 +'ANSI_PADDING'=398 +'ANSI_WARNINGS'=399 +'APPLICATION_LOG'=400 +'APPLY'=401 +'ARITHABORT'=402 +'ASSEMBLY'=403 +'AUDIT'=404 +'AUDIT_GUID'=405 +'AUTO'=406 +'AUTO_CLEANUP'=407 +'AUTO_CLOSE'=408 +'AUTO_CREATE_STATISTICS'=409 +'AUTO_SHRINK'=410 +'AUTO_UPDATE_STATISTICS'=411 +'AUTO_UPDATE_STATISTICS_ASYNC'=412 +'AVAILABILITY'=413 +'AVG'=414 +'BACKUP_PRIORITY'=415 +'BEGIN_DIALOG'=416 +'BIGINT'=417 +'BINARY BASE64'=418 +'BINARY_CHECKSUM'=419 +'BINDING'=420 +'BLOB_STORAGE'=421 +'BROKER'=422 +'BROKER_INSTANCE'=423 +'BULK_LOGGED'=424 +'CALLER'=425 +'CAP_CPU_PERCENT'=426 +'CATALOG'=428 +'CATCH'=429 +'CHANGE_RETENTION'=430 +'CHANGE_TRACKING'=431 +'CHECKSUM'=432 +'CHECKSUM_AGG'=433 +'CLEANUP'=434 +'COLLECTION'=435 +'COLUMN_MASTER_KEY'=436 +'COMMITTED'=437 +'COMPATIBILITY_LEVEL'=438 +'CONCAT'=439 +'CONCAT_NULL_YIELDS_NULL'=440 +'CONTENT'=441 +'CONTROL'=442 +'COOKIE'=443 +'COUNT'=444 +'COUNT_BIG'=445 +'COUNTER'=446 +'CPU'=447 +'CREATE_NEW'=448 +'CREATION_DISPOSITION'=449 +'CREDENTIAL'=450 +'CRYPTOGRAPHIC'=451 +'CURSOR_CLOSE_ON_COMMIT'=452 +'CURSOR_DEFAULT'=453 +'DATA'=454 +'DATE_CORRELATION_OPTIMIZATION'=455 +'DATEADD'=456 +'DATEDIFF'=457 +'DATENAME'=458 +'DATEPART'=459 +'DAYS'=460 +'DB_CHAINING'=461 +'DB_FAILOVER'=462 +'DECRYPTION'=463 +'DEFAULT_FULLTEXT_LANGUAGE'=465 +'DEFAULT_LANGUAGE'=466 +'DELAY'=467 +'DELAYED_DURABILITY'=468 +'DELETED'=469 +'DENSE_RANK'=470 +'DEPENDENTS'=471 +'DES'=472 +'DESCRIPTION'=473 +'DESX'=474 +'DHCP'=475 +'DIALOG'=476 +'DIRECTORY_NAME'=477 +'DISABLE'=478 +'DISABLE_BROKER'=479 +'DISABLED'=480 +'DOCUMENT'=482 +'DYNAMIC'=483 +'ELEMENTS'=484 +'EMERGENCY'=485 +'EMPTY'=486 +'ENABLE'=487 +'ENABLE_BROKER'=488 +'ENCRYPTED_VALUE'=489 +'ENCRYPTION'=490 +'ENDPOINT_URL'=491 +'ERROR_BROKER_CONVERSATIONS'=492 +'EXCLUSIVE'=493 +'EXECUTABLE'=494 +'EXIST'=495 +'EXPAND'=496 +'EXPIRY_DATE'=497 +'EXPLICIT'=498 +'FAIL_OPERATION'=499 +'FAILOVER_MODE'=500 +'FAILURE'=501 +'FAILURE_CONDITION_LEVEL'=502 +'FAST'=503 +'FAST_FORWARD'=504 +'FILEGROUP'=505 +'FILEGROWTH'=506 +'FILEPATH'=507 +'FILESTREAM'=508 +'FILTER'=509 +'FIRST'=510 +'FIRST_VALUE'=511 +'FOLLOWING'=512 +'FORCE'=513 +'FORCE_FAILOVER_ALLOW_DATA_LOSS'=514 +'FORCED'=515 +'FORMAT'=516 +'FORWARD_ONLY'=517 +'FULLSCAN'=518 +'FULLTEXT'=519 +'GB'=520 +'GETDATE'=521 +'GETUTCDATE'=522 +'GLOBAL'=523 +'GO'=524 +'GROUP_MAX_REQUESTS'=525 +'GROUPING'=526 +'GROUPING_ID'=527 +'HADR'=528 +'HASH'=529 +'HEALTH_CHECK_TIMEOUT'=530 +'HIGH'=531 +'HONOR_BROKER_PRIORITY'=532 +'HOURS'=533 +'IDENTITY_VALUE'=534 +'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'=535 +'IMMEDIATE'=536 +'IMPERSONATE'=537 +'IMPORTANCE'=538 +'INCLUDE_NULL_VALUES'=539 +'INCREMENTAL'=540 +'INITIATOR'=541 +'INPUT'=542 +'INSENSITIVE'=543 +'INSERTED'=544 +'INT'=545 +'IP'=546 +'ISOLATION'=547 +'JOB'=548 +'JSON'=549 +'KB'=550 +'KEEP'=551 +'KEEPFIXED'=552 +'KEY_SOURCE'=553 +'KEYS'=554 +'KEYSET'=555 +'LAG'=556 +'LAST'=557 +'LAST_VALUE'=558 +'LEAD'=559 +'LEVEL'=560 +'LIST'=561 +'LISTENER'=562 +'LISTENER_URL'=563 +'LOB_COMPACTION'=564 +'LOCAL'=565 +'LOCATION'=566 +'LOCK'=567 +'LOCK_ESCALATION'=568 +'LOGIN'=569 +'LOOP'=570 +'LOW'=571 +'MANUAL'=572 +'MARK'=573 +'MATERIALIZED'=574 +'MAX'=575 +'MAX_CPU_PERCENT'=576 +'MAX_DOP'=577 +'MAX_FILES'=578 +'MAX_IOPS_PER_VOLUME'=579 +'MAX_MEMORY_PERCENT'=580 +'MAX_PROCESSES'=581 +'MAX_QUEUE_READERS'=582 +'MAX_ROLLOVER_FILES'=583 +'MAXDOP'=584 +'MAXRECURSION'=585 +'MAXSIZE'=586 +'MB'=587 +'MEDIUM'=588 +'MEMORY_OPTIMIZED_DATA'=589 +'MESSAGE'=590 +'MIN'=591 +'MIN_ACTIVE_ROWVERSION'=592 +'MIN_CPU_PERCENT'=593 +'MIN_IOPS_PER_VOLUME'=594 +'MIN_MEMORY_PERCENT'=595 +'MINUTES'=596 +'MIRROR_ADDRESS'=597 +'MIXED_PAGE_ALLOCATION'=598 +'MODE'=599 +'MODIFY'=600 +'MOVE'=601 +'MULTI_USER'=602 +'NAME'=603 +'NESTED_TRIGGERS'=604 +'NEW_ACCOUNT'=605 +'NEW_BROKER'=606 +'NEW_PASSWORD'=607 +'NEXT'=608 +'NO'=609 +'NO_TRUNCATE'=610 +'NO_WAIT'=611 +'NOCOUNT'=612 +'NODES'=613 +'NOEXPAND'=614 +'NON_TRANSACTED_ACCESS'=615 +'NORECOMPUTE'=616 +'NORECOVERY'=617 +'NOWAIT'=618 +'NTILE'=619 +'NUMANODE'=620 +'NUMBER'=621 +'NUMERIC_ROUNDABORT'=622 +'OBJECT'=623 +'OFFLINE'=624 +'OFFSET'=625 +'OLD_ACCOUNT'=626 +'ONLINE'=627 +'ONLY'=628 +'OPEN_EXISTING'=629 +'OPTIMISTIC'=630 +'OPTIMIZE'=631 +'OUT'=632 +'OUTPUT'=633 +'OVERRIDE'=634 +'OWNER'=635 +'PAGE_VERIFY'=636 +'PARAMETERIZATION'=637 +'PARTITION'=638 +'PARTITIONS'=639 +'PARTNER'=640 +'PATH'=641 +'POISON_MESSAGE_HANDLING'=642 +'POOL'=643 +'PORT'=644 +'PRECEDING'=645 +'PRIMARY_ROLE'=646 +'PRIOR'=647 +'PRIORITY'=648 +'PRIORITY_LEVEL'=649 +'PRIVATE'=650 +'PRIVATE_KEY'=651 +'PRIVILEGES'=652 +'PROCEDURE_NAME'=653 +'PROPERTY'=654 +'PROVIDER'=655 +'PROVIDER_KEY_NAME'=656 +'QUERY'=657 +'QUEUE'=658 +'QUEUE_DELAY'=659 +'QUOTED_IDENTIFIER'=660 +'RANGE'=661 +'RANK'=662 +'RC2'=663 +'RC4'=664 +'RC4_128'=665 +'READ_COMMITTED_SNAPSHOT'=666 +'READ_ONLY'=667 +'READ_ONLY_ROUTING_LIST'=668 +'READ_WRITE'=669 +'READONLY'=670 +'REBUILD'=671 +'RECEIVE'=672 +'RECOMPILE'=673 +'RECOVERY'=674 +'RECURSIVE_TRIGGERS'=675 +'RELATIVE'=676 +'REMOTE'=677 +'REMOTE_SERVICE_NAME'=678 +'REMOVE'=679 +'REORGANIZE'=680 +'REPEATABLE'=681 +'REPLICA'=682 +'REQUEST_MAX_CPU_TIME_SEC'=683 +'REQUEST_MAX_MEMORY_GRANT_PERCENT'=684 +'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'=685 +'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'=686 +'RESERVE_DISK_SPACE'=687 +'RESOURCE'=688 +'RESOURCE_MANAGER_LOCATION'=689 +'RESTRICTED_USER'=690 +'RETENTION'=691 +'ROBUST'=692 +'ROOT'=693 +'ROUTE'=694 +'ROW'=695 +'ROW_NUMBER'=696 +'ROWGUID'=697 +'ROWS'=698 +'SAMPLE'=699 +'SCHEMABINDING'=700 +'SCOPED'=701 +'SCROLL'=702 +'SCROLL_LOCKS'=703 +'SEARCH'=704 +'SECONDARY'=705 +'SECONDARY_ONLY'=706 +'SECONDARY_ROLE'=707 +'SECONDS'=708 +'SECRET'=709 +'SECURITY'=710 +'SECURITY_LOG'=711 +'SEEDING_MODE'=712 +'SELF'=713 +'SEMI_SENSITIVE'=714 +'SEND'=715 +'SENT'=716 +'SEQUENCE'=717 +'SERIALIZABLE'=718 +'SESSION_TIMEOUT'=719 +'SETERROR'=720 +'SHARE'=721 +'SHOWPLAN'=722 +'SIGNATURE'=723 +'SIMPLE'=724 +'SINGLE_USER'=725 +'SIZE'=726 +'SMALLINT'=727 +'SNAPSHOT'=728 +'SPATIAL_WINDOW_MAX_CELLS'=729 +'STANDBY'=730 +'START_DATE'=731 +'STATIC'=732 +'STATS_STREAM'=733 +'STATUS'=734 +'STATUSONLY'=735 +'STDEV'=736 +'STDEVP'=737 +'STOPLIST'=738 +'STRING_AGG'=739 +'STUFF'=740 +'SUBJECT'=741 +'SUBSCRIPTION'=742 +'SUM'=743 +'SUSPEND'=744 +'SYMMETRIC'=745 +'SYNCHRONOUS_COMMIT'=746 +'SYNONYM'=747 +'SYSTEM'=748 +'TAKE'=749 +'TARGET_RECOVERY_TIME'=750 +'TB'=751 +'TEXTIMAGE_ON'=752 +'THROW'=753 +'TIES'=754 +'TIME'=755 +'TIMEOUT'=756 +'TIMER'=757 +'TINYINT'=758 +'TORN_PAGE_DETECTION'=759 +'TRANSFORM_NOISE_WORDS'=760 +'TRIPLE_DES'=761 +'TRIPLE_DES_3KEY'=762 +'TRUSTWORTHY'=763 +'TRY'=764 +'TSQL'=765 +'TWO_DIGIT_YEAR_CUTOFF'=766 +'TYPE'=767 +'TYPE_WARNING'=768 +'UNBOUNDED'=769 +'UNCOMMITTED'=770 +'UNKNOWN'=771 +'UNLIMITED'=772 +'UOW'=773 +'USING'=774 +'VALID_XML'=775 +'VALIDATION'=776 +'VALUE'=777 +'VAR'=778 +'VARP'=779 +'VIEW_METADATA'=780 +'VIEWS'=781 +'WAIT'=782 +'WELL_FORMED_XML'=783 +'WITHOUT_ARRAY_WRAPPER'=784 +'WORK'=785 +'WORKLOAD'=786 +'XML'=787 +'XMLDATA'=788 +'XMLNAMESPACES'=789 +'XMLSCHEMA'=790 +'XSINIL'=791 +'$ACTION'=792 +'\''=797 +'='=808 +'>'=809 +'<'=810 +'!'=811 +'+='=812 +'-='=813 +'*='=814 +'/='=815 +'%='=816 +'&='=817 +'^='=818 +'|='=819 +'||'=820 +'.'=821 +'_'=822 +'@'=823 +'#'=824 +'$'=825 +'('=826 +')'=827 +','=828 +';'=829 +':'=830 +'*'=831 +'/'=832 +'%'=833 +'+'=834 +'-'=835 +'~'=836 +'|'=837 +'&'=838 +'^'=839 diff --git a/src/grammar/tsql/parser/TSqlParserListener.js b/src/grammar/tsql/parser/TSqlParserListener.js new file mode 100644 index 0000000..9538ce5 --- /dev/null +++ b/src/grammar/tsql/parser/TSqlParserListener.js @@ -0,0 +1,4632 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/tsql/TSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + +// This class defines a complete listener for a parse tree produced by TSqlParser. +function TSqlParserListener() { + antlr4.tree.ParseTreeListener.call(this); + return this; +} + +TSqlParserListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); +TSqlParserListener.prototype.constructor = TSqlParserListener; + +// Enter a parse tree produced by TSqlParser#tsql_file. +TSqlParserListener.prototype.enterTsql_file = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#tsql_file. +TSqlParserListener.prototype.exitTsql_file = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#batch. +TSqlParserListener.prototype.enterBatch = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#batch. +TSqlParserListener.prototype.exitBatch = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sql_clauses. +TSqlParserListener.prototype.enterSql_clauses = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sql_clauses. +TSqlParserListener.prototype.exitSql_clauses = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sql_clause. +TSqlParserListener.prototype.enterSql_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sql_clause. +TSqlParserListener.prototype.exitSql_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dml_clause. +TSqlParserListener.prototype.enterDml_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dml_clause. +TSqlParserListener.prototype.exitDml_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ddl_clause. +TSqlParserListener.prototype.enterDdl_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ddl_clause. +TSqlParserListener.prototype.exitDdl_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_statement. +TSqlParserListener.prototype.enterBackup_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_statement. +TSqlParserListener.prototype.exitBackup_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#cfl_statement. +TSqlParserListener.prototype.enterCfl_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#cfl_statement. +TSqlParserListener.prototype.exitCfl_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#block_statement. +TSqlParserListener.prototype.enterBlock_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#block_statement. +TSqlParserListener.prototype.exitBlock_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#break_statement. +TSqlParserListener.prototype.enterBreak_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#break_statement. +TSqlParserListener.prototype.exitBreak_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#continue_statement. +TSqlParserListener.prototype.enterContinue_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#continue_statement. +TSqlParserListener.prototype.exitContinue_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#goto_statement. +TSqlParserListener.prototype.enterGoto_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#goto_statement. +TSqlParserListener.prototype.exitGoto_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#return_statement. +TSqlParserListener.prototype.enterReturn_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#return_statement. +TSqlParserListener.prototype.exitReturn_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#if_statement. +TSqlParserListener.prototype.enterIf_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#if_statement. +TSqlParserListener.prototype.exitIf_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#throw_statement. +TSqlParserListener.prototype.enterThrow_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#throw_statement. +TSqlParserListener.prototype.exitThrow_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#throw_error_number. +TSqlParserListener.prototype.enterThrow_error_number = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#throw_error_number. +TSqlParserListener.prototype.exitThrow_error_number = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#throw_message. +TSqlParserListener.prototype.enterThrow_message = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#throw_message. +TSqlParserListener.prototype.exitThrow_message = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#throw_state. +TSqlParserListener.prototype.enterThrow_state = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#throw_state. +TSqlParserListener.prototype.exitThrow_state = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#try_catch_statement. +TSqlParserListener.prototype.enterTry_catch_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#try_catch_statement. +TSqlParserListener.prototype.exitTry_catch_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#waitfor_statement. +TSqlParserListener.prototype.enterWaitfor_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#waitfor_statement. +TSqlParserListener.prototype.exitWaitfor_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#while_statement. +TSqlParserListener.prototype.enterWhile_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#while_statement. +TSqlParserListener.prototype.exitWhile_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#print_statement. +TSqlParserListener.prototype.enterPrint_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#print_statement. +TSqlParserListener.prototype.exitPrint_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#raiseerror_statement. +TSqlParserListener.prototype.enterRaiseerror_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#raiseerror_statement. +TSqlParserListener.prototype.exitRaiseerror_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#empty_statement. +TSqlParserListener.prototype.enterEmpty_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#empty_statement. +TSqlParserListener.prototype.exitEmpty_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#another_statement. +TSqlParserListener.prototype.enterAnother_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#another_statement. +TSqlParserListener.prototype.exitAnother_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_application_role. +TSqlParserListener.prototype.enterAlter_application_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_application_role. +TSqlParserListener.prototype.exitAlter_application_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_application_role. +TSqlParserListener.prototype.enterCreate_application_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_application_role. +TSqlParserListener.prototype.exitCreate_application_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_aggregate. +TSqlParserListener.prototype.enterDrop_aggregate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_aggregate. +TSqlParserListener.prototype.exitDrop_aggregate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_application_role. +TSqlParserListener.prototype.enterDrop_application_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_application_role. +TSqlParserListener.prototype.exitDrop_application_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly. +TSqlParserListener.prototype.enterAlter_assembly = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly. +TSqlParserListener.prototype.exitAlter_assembly = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_start. +TSqlParserListener.prototype.enterAlter_assembly_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_start. +TSqlParserListener.prototype.exitAlter_assembly_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_clause. +TSqlParserListener.prototype.enterAlter_assembly_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_clause. +TSqlParserListener.prototype.exitAlter_assembly_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_from_clause. +TSqlParserListener.prototype.enterAlter_assembly_from_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_from_clause. +TSqlParserListener.prototype.exitAlter_assembly_from_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_from_clause_start. +TSqlParserListener.prototype.enterAlter_assembly_from_clause_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_from_clause_start. +TSqlParserListener.prototype.exitAlter_assembly_from_clause_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_drop_clause. +TSqlParserListener.prototype.enterAlter_assembly_drop_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_drop_clause. +TSqlParserListener.prototype.exitAlter_assembly_drop_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_drop_multiple_files. +TSqlParserListener.prototype.enterAlter_assembly_drop_multiple_files = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_drop_multiple_files. +TSqlParserListener.prototype.exitAlter_assembly_drop_multiple_files = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_drop. +TSqlParserListener.prototype.enterAlter_assembly_drop = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_drop. +TSqlParserListener.prototype.exitAlter_assembly_drop = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_add_clause. +TSqlParserListener.prototype.enterAlter_assembly_add_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_add_clause. +TSqlParserListener.prototype.exitAlter_assembly_add_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_asssembly_add_clause_start. +TSqlParserListener.prototype.enterAlter_asssembly_add_clause_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_asssembly_add_clause_start. +TSqlParserListener.prototype.exitAlter_asssembly_add_clause_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_client_file_clause. +TSqlParserListener.prototype.enterAlter_assembly_client_file_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_client_file_clause. +TSqlParserListener.prototype.exitAlter_assembly_client_file_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_file_name. +TSqlParserListener.prototype.enterAlter_assembly_file_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_file_name. +TSqlParserListener.prototype.exitAlter_assembly_file_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_file_bits. +TSqlParserListener.prototype.enterAlter_assembly_file_bits = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_file_bits. +TSqlParserListener.prototype.exitAlter_assembly_file_bits = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_as. +TSqlParserListener.prototype.enterAlter_assembly_as = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_as. +TSqlParserListener.prototype.exitAlter_assembly_as = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_with_clause. +TSqlParserListener.prototype.enterAlter_assembly_with_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_with_clause. +TSqlParserListener.prototype.exitAlter_assembly_with_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_with. +TSqlParserListener.prototype.enterAlter_assembly_with = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_with. +TSqlParserListener.prototype.exitAlter_assembly_with = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#client_assembly_specifier. +TSqlParserListener.prototype.enterClient_assembly_specifier = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#client_assembly_specifier. +TSqlParserListener.prototype.exitClient_assembly_specifier = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#assembly_option. +TSqlParserListener.prototype.enterAssembly_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#assembly_option. +TSqlParserListener.prototype.exitAssembly_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#network_file_share. +TSqlParserListener.prototype.enterNetwork_file_share = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#network_file_share. +TSqlParserListener.prototype.exitNetwork_file_share = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#network_computer. +TSqlParserListener.prototype.enterNetwork_computer = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#network_computer. +TSqlParserListener.prototype.exitNetwork_computer = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#network_file_start. +TSqlParserListener.prototype.enterNetwork_file_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#network_file_start. +TSqlParserListener.prototype.exitNetwork_file_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_path. +TSqlParserListener.prototype.enterFile_path = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_path. +TSqlParserListener.prototype.exitFile_path = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_directory_path_separator. +TSqlParserListener.prototype.enterFile_directory_path_separator = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_directory_path_separator. +TSqlParserListener.prototype.exitFile_directory_path_separator = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#local_file. +TSqlParserListener.prototype.enterLocal_file = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#local_file. +TSqlParserListener.prototype.exitLocal_file = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#local_drive. +TSqlParserListener.prototype.enterLocal_drive = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#local_drive. +TSqlParserListener.prototype.exitLocal_drive = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#multiple_local_files. +TSqlParserListener.prototype.enterMultiple_local_files = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#multiple_local_files. +TSqlParserListener.prototype.exitMultiple_local_files = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#multiple_local_file_start. +TSqlParserListener.prototype.enterMultiple_local_file_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#multiple_local_file_start. +TSqlParserListener.prototype.exitMultiple_local_file_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_assembly. +TSqlParserListener.prototype.enterCreate_assembly = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_assembly. +TSqlParserListener.prototype.exitCreate_assembly = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_assembly. +TSqlParserListener.prototype.enterDrop_assembly = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_assembly. +TSqlParserListener.prototype.exitDrop_assembly = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_asymmetric_key. +TSqlParserListener.prototype.enterAlter_asymmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_asymmetric_key. +TSqlParserListener.prototype.exitAlter_asymmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_asymmetric_key_start. +TSqlParserListener.prototype.enterAlter_asymmetric_key_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_asymmetric_key_start. +TSqlParserListener.prototype.exitAlter_asymmetric_key_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#asymmetric_key_option. +TSqlParserListener.prototype.enterAsymmetric_key_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#asymmetric_key_option. +TSqlParserListener.prototype.exitAsymmetric_key_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#asymmetric_key_option_start. +TSqlParserListener.prototype.enterAsymmetric_key_option_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#asymmetric_key_option_start. +TSqlParserListener.prototype.exitAsymmetric_key_option_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#asymmetric_key_password_change_option. +TSqlParserListener.prototype.enterAsymmetric_key_password_change_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#asymmetric_key_password_change_option. +TSqlParserListener.prototype.exitAsymmetric_key_password_change_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_asymmetric_key. +TSqlParserListener.prototype.enterCreate_asymmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_asymmetric_key. +TSqlParserListener.prototype.exitCreate_asymmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_asymmetric_key. +TSqlParserListener.prototype.enterDrop_asymmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_asymmetric_key. +TSqlParserListener.prototype.exitDrop_asymmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization. +TSqlParserListener.prototype.enterAlter_authorization = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization. +TSqlParserListener.prototype.exitAlter_authorization = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#authorization_grantee. +TSqlParserListener.prototype.enterAuthorization_grantee = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#authorization_grantee. +TSqlParserListener.prototype.exitAuthorization_grantee = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#entity_to. +TSqlParserListener.prototype.enterEntity_to = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#entity_to. +TSqlParserListener.prototype.exitEntity_to = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#colon_colon. +TSqlParserListener.prototype.enterColon_colon = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#colon_colon. +TSqlParserListener.prototype.exitColon_colon = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization_start. +TSqlParserListener.prototype.enterAlter_authorization_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization_start. +TSqlParserListener.prototype.exitAlter_authorization_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization_for_sql_database. +TSqlParserListener.prototype.enterAlter_authorization_for_sql_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization_for_sql_database. +TSqlParserListener.prototype.exitAlter_authorization_for_sql_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization_for_azure_dw. +TSqlParserListener.prototype.enterAlter_authorization_for_azure_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization_for_azure_dw. +TSqlParserListener.prototype.exitAlter_authorization_for_azure_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization_for_parallel_dw. +TSqlParserListener.prototype.enterAlter_authorization_for_parallel_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization_for_parallel_dw. +TSqlParserListener.prototype.exitAlter_authorization_for_parallel_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#class_type. +TSqlParserListener.prototype.enterClass_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#class_type. +TSqlParserListener.prototype.exitClass_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#class_type_for_sql_database. +TSqlParserListener.prototype.enterClass_type_for_sql_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#class_type_for_sql_database. +TSqlParserListener.prototype.exitClass_type_for_sql_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#class_type_for_azure_dw. +TSqlParserListener.prototype.enterClass_type_for_azure_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#class_type_for_azure_dw. +TSqlParserListener.prototype.exitClass_type_for_azure_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#class_type_for_parallel_dw. +TSqlParserListener.prototype.enterClass_type_for_parallel_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#class_type_for_parallel_dw. +TSqlParserListener.prototype.exitClass_type_for_parallel_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_availability_group. +TSqlParserListener.prototype.enterDrop_availability_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_availability_group. +TSqlParserListener.prototype.exitDrop_availability_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_availability_group. +TSqlParserListener.prototype.enterAlter_availability_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_availability_group. +TSqlParserListener.prototype.exitAlter_availability_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_availability_group_start. +TSqlParserListener.prototype.enterAlter_availability_group_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_availability_group_start. +TSqlParserListener.prototype.exitAlter_availability_group_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_availability_group_options. +TSqlParserListener.prototype.enterAlter_availability_group_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_availability_group_options. +TSqlParserListener.prototype.exitAlter_availability_group_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_broker_priority. +TSqlParserListener.prototype.enterCreate_or_alter_broker_priority = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_broker_priority. +TSqlParserListener.prototype.exitCreate_or_alter_broker_priority = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_broker_priority. +TSqlParserListener.prototype.enterDrop_broker_priority = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_broker_priority. +TSqlParserListener.prototype.exitDrop_broker_priority = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_certificate. +TSqlParserListener.prototype.enterAlter_certificate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_certificate. +TSqlParserListener.prototype.exitAlter_certificate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_column_encryption_key. +TSqlParserListener.prototype.enterAlter_column_encryption_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_column_encryption_key. +TSqlParserListener.prototype.exitAlter_column_encryption_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_column_encryption_key. +TSqlParserListener.prototype.enterCreate_column_encryption_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_column_encryption_key. +TSqlParserListener.prototype.exitCreate_column_encryption_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_certificate. +TSqlParserListener.prototype.enterDrop_certificate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_certificate. +TSqlParserListener.prototype.exitDrop_certificate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_column_encryption_key. +TSqlParserListener.prototype.enterDrop_column_encryption_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_column_encryption_key. +TSqlParserListener.prototype.exitDrop_column_encryption_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_column_master_key. +TSqlParserListener.prototype.enterDrop_column_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_column_master_key. +TSqlParserListener.prototype.exitDrop_column_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_contract. +TSqlParserListener.prototype.enterDrop_contract = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_contract. +TSqlParserListener.prototype.exitDrop_contract = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_credential. +TSqlParserListener.prototype.enterDrop_credential = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_credential. +TSqlParserListener.prototype.exitDrop_credential = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_cryptograhic_provider. +TSqlParserListener.prototype.enterDrop_cryptograhic_provider = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_cryptograhic_provider. +TSqlParserListener.prototype.exitDrop_cryptograhic_provider = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_database. +TSqlParserListener.prototype.enterDrop_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_database. +TSqlParserListener.prototype.exitDrop_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_database_audit_specification. +TSqlParserListener.prototype.enterDrop_database_audit_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_database_audit_specification. +TSqlParserListener.prototype.exitDrop_database_audit_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_database_scoped_credential. +TSqlParserListener.prototype.enterDrop_database_scoped_credential = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_database_scoped_credential. +TSqlParserListener.prototype.exitDrop_database_scoped_credential = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_default. +TSqlParserListener.prototype.enterDrop_default = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_default. +TSqlParserListener.prototype.exitDrop_default = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_endpoint. +TSqlParserListener.prototype.enterDrop_endpoint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_endpoint. +TSqlParserListener.prototype.exitDrop_endpoint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_data_source. +TSqlParserListener.prototype.enterDrop_external_data_source = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_data_source. +TSqlParserListener.prototype.exitDrop_external_data_source = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_file_format. +TSqlParserListener.prototype.enterDrop_external_file_format = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_file_format. +TSqlParserListener.prototype.exitDrop_external_file_format = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_library. +TSqlParserListener.prototype.enterDrop_external_library = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_library. +TSqlParserListener.prototype.exitDrop_external_library = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_resource_pool. +TSqlParserListener.prototype.enterDrop_external_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_resource_pool. +TSqlParserListener.prototype.exitDrop_external_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_table. +TSqlParserListener.prototype.enterDrop_external_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_table. +TSqlParserListener.prototype.exitDrop_external_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_event_notifications. +TSqlParserListener.prototype.enterDrop_event_notifications = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_event_notifications. +TSqlParserListener.prototype.exitDrop_event_notifications = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_event_session. +TSqlParserListener.prototype.enterDrop_event_session = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_event_session. +TSqlParserListener.prototype.exitDrop_event_session = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_fulltext_catalog. +TSqlParserListener.prototype.enterDrop_fulltext_catalog = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_fulltext_catalog. +TSqlParserListener.prototype.exitDrop_fulltext_catalog = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_fulltext_index. +TSqlParserListener.prototype.enterDrop_fulltext_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_fulltext_index. +TSqlParserListener.prototype.exitDrop_fulltext_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_fulltext_stoplist. +TSqlParserListener.prototype.enterDrop_fulltext_stoplist = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_fulltext_stoplist. +TSqlParserListener.prototype.exitDrop_fulltext_stoplist = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_login. +TSqlParserListener.prototype.enterDrop_login = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_login. +TSqlParserListener.prototype.exitDrop_login = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_master_key. +TSqlParserListener.prototype.enterDrop_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_master_key. +TSqlParserListener.prototype.exitDrop_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_message_type. +TSqlParserListener.prototype.enterDrop_message_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_message_type. +TSqlParserListener.prototype.exitDrop_message_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_partition_function. +TSqlParserListener.prototype.enterDrop_partition_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_partition_function. +TSqlParserListener.prototype.exitDrop_partition_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_partition_scheme. +TSqlParserListener.prototype.enterDrop_partition_scheme = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_partition_scheme. +TSqlParserListener.prototype.exitDrop_partition_scheme = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_queue. +TSqlParserListener.prototype.enterDrop_queue = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_queue. +TSqlParserListener.prototype.exitDrop_queue = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_remote_service_binding. +TSqlParserListener.prototype.enterDrop_remote_service_binding = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_remote_service_binding. +TSqlParserListener.prototype.exitDrop_remote_service_binding = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_resource_pool. +TSqlParserListener.prototype.enterDrop_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_resource_pool. +TSqlParserListener.prototype.exitDrop_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_db_role. +TSqlParserListener.prototype.enterDrop_db_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_db_role. +TSqlParserListener.prototype.exitDrop_db_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_route. +TSqlParserListener.prototype.enterDrop_route = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_route. +TSqlParserListener.prototype.exitDrop_route = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_rule. +TSqlParserListener.prototype.enterDrop_rule = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_rule. +TSqlParserListener.prototype.exitDrop_rule = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_schema. +TSqlParserListener.prototype.enterDrop_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_schema. +TSqlParserListener.prototype.exitDrop_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_search_property_list. +TSqlParserListener.prototype.enterDrop_search_property_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_search_property_list. +TSqlParserListener.prototype.exitDrop_search_property_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_security_policy. +TSqlParserListener.prototype.enterDrop_security_policy = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_security_policy. +TSqlParserListener.prototype.exitDrop_security_policy = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_sequence. +TSqlParserListener.prototype.enterDrop_sequence = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_sequence. +TSqlParserListener.prototype.exitDrop_sequence = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_server_audit. +TSqlParserListener.prototype.enterDrop_server_audit = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_server_audit. +TSqlParserListener.prototype.exitDrop_server_audit = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_server_audit_specification. +TSqlParserListener.prototype.enterDrop_server_audit_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_server_audit_specification. +TSqlParserListener.prototype.exitDrop_server_audit_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_server_role. +TSqlParserListener.prototype.enterDrop_server_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_server_role. +TSqlParserListener.prototype.exitDrop_server_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_service. +TSqlParserListener.prototype.enterDrop_service = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_service. +TSqlParserListener.prototype.exitDrop_service = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_signature. +TSqlParserListener.prototype.enterDrop_signature = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_signature. +TSqlParserListener.prototype.exitDrop_signature = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_statistics_name_azure_dw_and_pdw. +TSqlParserListener.prototype.enterDrop_statistics_name_azure_dw_and_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_statistics_name_azure_dw_and_pdw. +TSqlParserListener.prototype.exitDrop_statistics_name_azure_dw_and_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_symmetric_key. +TSqlParserListener.prototype.enterDrop_symmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_symmetric_key. +TSqlParserListener.prototype.exitDrop_symmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_synonym. +TSqlParserListener.prototype.enterDrop_synonym = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_synonym. +TSqlParserListener.prototype.exitDrop_synonym = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_user. +TSqlParserListener.prototype.enterDrop_user = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_user. +TSqlParserListener.prototype.exitDrop_user = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_workload_group. +TSqlParserListener.prototype.enterDrop_workload_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_workload_group. +TSqlParserListener.prototype.exitDrop_workload_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_xml_schema_collection. +TSqlParserListener.prototype.enterDrop_xml_schema_collection = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_xml_schema_collection. +TSqlParserListener.prototype.exitDrop_xml_schema_collection = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#disable_trigger. +TSqlParserListener.prototype.enterDisable_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#disable_trigger. +TSqlParserListener.prototype.exitDisable_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#enable_trigger. +TSqlParserListener.prototype.enterEnable_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#enable_trigger. +TSqlParserListener.prototype.exitEnable_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#lock_table. +TSqlParserListener.prototype.enterLock_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#lock_table. +TSqlParserListener.prototype.exitLock_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#truncate_table. +TSqlParserListener.prototype.enterTruncate_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#truncate_table. +TSqlParserListener.prototype.exitTruncate_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_column_master_key. +TSqlParserListener.prototype.enterCreate_column_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_column_master_key. +TSqlParserListener.prototype.exitCreate_column_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_credential. +TSqlParserListener.prototype.enterAlter_credential = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_credential. +TSqlParserListener.prototype.exitAlter_credential = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_credential. +TSqlParserListener.prototype.enterCreate_credential = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_credential. +TSqlParserListener.prototype.exitCreate_credential = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_cryptographic_provider. +TSqlParserListener.prototype.enterAlter_cryptographic_provider = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_cryptographic_provider. +TSqlParserListener.prototype.exitAlter_cryptographic_provider = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_cryptographic_provider. +TSqlParserListener.prototype.enterCreate_cryptographic_provider = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_cryptographic_provider. +TSqlParserListener.prototype.exitCreate_cryptographic_provider = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_event_notification. +TSqlParserListener.prototype.enterCreate_event_notification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_event_notification. +TSqlParserListener.prototype.exitCreate_event_notification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_event_session. +TSqlParserListener.prototype.enterCreate_or_alter_event_session = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_event_session. +TSqlParserListener.prototype.exitCreate_or_alter_event_session = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#event_session_predicate_expression. +TSqlParserListener.prototype.enterEvent_session_predicate_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#event_session_predicate_expression. +TSqlParserListener.prototype.exitEvent_session_predicate_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#event_session_predicate_factor. +TSqlParserListener.prototype.enterEvent_session_predicate_factor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#event_session_predicate_factor. +TSqlParserListener.prototype.exitEvent_session_predicate_factor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#event_session_predicate_leaf. +TSqlParserListener.prototype.enterEvent_session_predicate_leaf = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#event_session_predicate_leaf. +TSqlParserListener.prototype.exitEvent_session_predicate_leaf = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_external_data_source. +TSqlParserListener.prototype.enterAlter_external_data_source = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_external_data_source. +TSqlParserListener.prototype.exitAlter_external_data_source = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_external_library. +TSqlParserListener.prototype.enterAlter_external_library = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_external_library. +TSqlParserListener.prototype.exitAlter_external_library = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_external_library. +TSqlParserListener.prototype.enterCreate_external_library = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_external_library. +TSqlParserListener.prototype.exitCreate_external_library = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_external_resource_pool. +TSqlParserListener.prototype.enterAlter_external_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_external_resource_pool. +TSqlParserListener.prototype.exitAlter_external_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_external_resource_pool. +TSqlParserListener.prototype.enterCreate_external_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_external_resource_pool. +TSqlParserListener.prototype.exitCreate_external_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_fulltext_catalog. +TSqlParserListener.prototype.enterAlter_fulltext_catalog = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_fulltext_catalog. +TSqlParserListener.prototype.exitAlter_fulltext_catalog = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_fulltext_catalog. +TSqlParserListener.prototype.enterCreate_fulltext_catalog = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_fulltext_catalog. +TSqlParserListener.prototype.exitCreate_fulltext_catalog = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_fulltext_stoplist. +TSqlParserListener.prototype.enterAlter_fulltext_stoplist = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_fulltext_stoplist. +TSqlParserListener.prototype.exitAlter_fulltext_stoplist = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_fulltext_stoplist. +TSqlParserListener.prototype.enterCreate_fulltext_stoplist = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_fulltext_stoplist. +TSqlParserListener.prototype.exitCreate_fulltext_stoplist = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_login_sql_server. +TSqlParserListener.prototype.enterAlter_login_sql_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_login_sql_server. +TSqlParserListener.prototype.exitAlter_login_sql_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_login_sql_server. +TSqlParserListener.prototype.enterCreate_login_sql_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_login_sql_server. +TSqlParserListener.prototype.exitCreate_login_sql_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_login_azure_sql. +TSqlParserListener.prototype.enterAlter_login_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_login_azure_sql. +TSqlParserListener.prototype.exitAlter_login_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_login_azure_sql. +TSqlParserListener.prototype.enterCreate_login_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_login_azure_sql. +TSqlParserListener.prototype.exitCreate_login_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_login_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.enterAlter_login_azure_sql_dw_and_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_login_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.exitAlter_login_azure_sql_dw_and_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_login_pdw. +TSqlParserListener.prototype.enterCreate_login_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_login_pdw. +TSqlParserListener.prototype.exitCreate_login_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_master_key_sql_server. +TSqlParserListener.prototype.enterAlter_master_key_sql_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_master_key_sql_server. +TSqlParserListener.prototype.exitAlter_master_key_sql_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_master_key_sql_server. +TSqlParserListener.prototype.enterCreate_master_key_sql_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_master_key_sql_server. +TSqlParserListener.prototype.exitCreate_master_key_sql_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_master_key_azure_sql. +TSqlParserListener.prototype.enterAlter_master_key_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_master_key_azure_sql. +TSqlParserListener.prototype.exitAlter_master_key_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_master_key_azure_sql. +TSqlParserListener.prototype.enterCreate_master_key_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_master_key_azure_sql. +TSqlParserListener.prototype.exitCreate_master_key_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_message_type. +TSqlParserListener.prototype.enterAlter_message_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_message_type. +TSqlParserListener.prototype.exitAlter_message_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_partition_function. +TSqlParserListener.prototype.enterAlter_partition_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_partition_function. +TSqlParserListener.prototype.exitAlter_partition_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_partition_scheme. +TSqlParserListener.prototype.enterAlter_partition_scheme = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_partition_scheme. +TSqlParserListener.prototype.exitAlter_partition_scheme = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_remote_service_binding. +TSqlParserListener.prototype.enterAlter_remote_service_binding = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_remote_service_binding. +TSqlParserListener.prototype.exitAlter_remote_service_binding = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_remote_service_binding. +TSqlParserListener.prototype.enterCreate_remote_service_binding = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_remote_service_binding. +TSqlParserListener.prototype.exitCreate_remote_service_binding = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_resource_pool. +TSqlParserListener.prototype.enterCreate_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_resource_pool. +TSqlParserListener.prototype.exitCreate_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_resource_governor. +TSqlParserListener.prototype.enterAlter_resource_governor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_resource_governor. +TSqlParserListener.prototype.exitAlter_resource_governor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_db_role. +TSqlParserListener.prototype.enterAlter_db_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_db_role. +TSqlParserListener.prototype.exitAlter_db_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_db_role. +TSqlParserListener.prototype.enterCreate_db_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_db_role. +TSqlParserListener.prototype.exitCreate_db_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_route. +TSqlParserListener.prototype.enterCreate_route = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_route. +TSqlParserListener.prototype.exitCreate_route = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_rule. +TSqlParserListener.prototype.enterCreate_rule = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_rule. +TSqlParserListener.prototype.exitCreate_rule = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_schema_sql. +TSqlParserListener.prototype.enterAlter_schema_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_schema_sql. +TSqlParserListener.prototype.exitAlter_schema_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_schema. +TSqlParserListener.prototype.enterCreate_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_schema. +TSqlParserListener.prototype.exitCreate_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_schema_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.enterCreate_schema_azure_sql_dw_and_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_schema_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.exitCreate_schema_azure_sql_dw_and_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_schema_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.enterAlter_schema_azure_sql_dw_and_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_schema_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.exitAlter_schema_azure_sql_dw_and_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_search_property_list. +TSqlParserListener.prototype.enterCreate_search_property_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_search_property_list. +TSqlParserListener.prototype.exitCreate_search_property_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_security_policy. +TSqlParserListener.prototype.enterCreate_security_policy = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_security_policy. +TSqlParserListener.prototype.exitCreate_security_policy = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_sequence. +TSqlParserListener.prototype.enterAlter_sequence = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_sequence. +TSqlParserListener.prototype.exitAlter_sequence = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_sequence. +TSqlParserListener.prototype.enterCreate_sequence = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_sequence. +TSqlParserListener.prototype.exitCreate_sequence = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_audit. +TSqlParserListener.prototype.enterAlter_server_audit = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_audit. +TSqlParserListener.prototype.exitAlter_server_audit = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_server_audit. +TSqlParserListener.prototype.enterCreate_server_audit = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_server_audit. +TSqlParserListener.prototype.exitCreate_server_audit = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_audit_specification. +TSqlParserListener.prototype.enterAlter_server_audit_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_audit_specification. +TSqlParserListener.prototype.exitAlter_server_audit_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_server_audit_specification. +TSqlParserListener.prototype.enterCreate_server_audit_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_server_audit_specification. +TSqlParserListener.prototype.exitCreate_server_audit_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_configuration. +TSqlParserListener.prototype.enterAlter_server_configuration = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_configuration. +TSqlParserListener.prototype.exitAlter_server_configuration = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_role. +TSqlParserListener.prototype.enterAlter_server_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_role. +TSqlParserListener.prototype.exitAlter_server_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_server_role. +TSqlParserListener.prototype.enterCreate_server_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_server_role. +TSqlParserListener.prototype.exitCreate_server_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_role_pdw. +TSqlParserListener.prototype.enterAlter_server_role_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_role_pdw. +TSqlParserListener.prototype.exitAlter_server_role_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_service. +TSqlParserListener.prototype.enterAlter_service = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_service. +TSqlParserListener.prototype.exitAlter_service = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_service. +TSqlParserListener.prototype.enterCreate_service = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_service. +TSqlParserListener.prototype.exitCreate_service = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_service_master_key. +TSqlParserListener.prototype.enterAlter_service_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_service_master_key. +TSqlParserListener.prototype.exitAlter_service_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_symmetric_key. +TSqlParserListener.prototype.enterAlter_symmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_symmetric_key. +TSqlParserListener.prototype.exitAlter_symmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_symmetric_key. +TSqlParserListener.prototype.enterCreate_symmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_symmetric_key. +TSqlParserListener.prototype.exitCreate_symmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_synonym. +TSqlParserListener.prototype.enterCreate_synonym = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_synonym. +TSqlParserListener.prototype.exitCreate_synonym = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_user. +TSqlParserListener.prototype.enterAlter_user = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_user. +TSqlParserListener.prototype.exitAlter_user = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_user. +TSqlParserListener.prototype.enterCreate_user = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_user. +TSqlParserListener.prototype.exitCreate_user = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_user_azure_sql_dw. +TSqlParserListener.prototype.enterCreate_user_azure_sql_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_user_azure_sql_dw. +TSqlParserListener.prototype.exitCreate_user_azure_sql_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_user_azure_sql. +TSqlParserListener.prototype.enterAlter_user_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_user_azure_sql. +TSqlParserListener.prototype.exitAlter_user_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_workload_group. +TSqlParserListener.prototype.enterAlter_workload_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_workload_group. +TSqlParserListener.prototype.exitAlter_workload_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_workload_group. +TSqlParserListener.prototype.enterCreate_workload_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_workload_group. +TSqlParserListener.prototype.exitCreate_workload_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_xml_schema_collection. +TSqlParserListener.prototype.enterCreate_xml_schema_collection = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_xml_schema_collection. +TSqlParserListener.prototype.exitCreate_xml_schema_collection = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_queue. +TSqlParserListener.prototype.enterCreate_queue = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_queue. +TSqlParserListener.prototype.exitCreate_queue = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#queue_settings. +TSqlParserListener.prototype.enterQueue_settings = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#queue_settings. +TSqlParserListener.prototype.exitQueue_settings = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_queue. +TSqlParserListener.prototype.enterAlter_queue = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_queue. +TSqlParserListener.prototype.exitAlter_queue = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#queue_action. +TSqlParserListener.prototype.enterQueue_action = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#queue_action. +TSqlParserListener.prototype.exitQueue_action = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#queue_rebuild_options. +TSqlParserListener.prototype.enterQueue_rebuild_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#queue_rebuild_options. +TSqlParserListener.prototype.exitQueue_rebuild_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_contract. +TSqlParserListener.prototype.enterCreate_contract = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_contract. +TSqlParserListener.prototype.exitCreate_contract = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#conversation_statement. +TSqlParserListener.prototype.enterConversation_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#conversation_statement. +TSqlParserListener.prototype.exitConversation_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#message_statement. +TSqlParserListener.prototype.enterMessage_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#message_statement. +TSqlParserListener.prototype.exitMessage_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#merge_statement. +TSqlParserListener.prototype.enterMerge_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#merge_statement. +TSqlParserListener.prototype.exitMerge_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#merge_matched. +TSqlParserListener.prototype.enterMerge_matched = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#merge_matched. +TSqlParserListener.prototype.exitMerge_matched = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#merge_not_matched. +TSqlParserListener.prototype.enterMerge_not_matched = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#merge_not_matched. +TSqlParserListener.prototype.exitMerge_not_matched = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#delete_statement. +TSqlParserListener.prototype.enterDelete_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#delete_statement. +TSqlParserListener.prototype.exitDelete_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#delete_statement_from. +TSqlParserListener.prototype.enterDelete_statement_from = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#delete_statement_from. +TSqlParserListener.prototype.exitDelete_statement_from = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#insert_statement. +TSqlParserListener.prototype.enterInsert_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#insert_statement. +TSqlParserListener.prototype.exitInsert_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#insert_statement_value. +TSqlParserListener.prototype.enterInsert_statement_value = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#insert_statement_value. +TSqlParserListener.prototype.exitInsert_statement_value = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#receive_statement. +TSqlParserListener.prototype.enterReceive_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#receive_statement. +TSqlParserListener.prototype.exitReceive_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#select_statement. +TSqlParserListener.prototype.enterSelect_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#select_statement. +TSqlParserListener.prototype.exitSelect_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#time. +TSqlParserListener.prototype.enterTime = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#time. +TSqlParserListener.prototype.exitTime = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#update_statement. +TSqlParserListener.prototype.enterUpdate_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#update_statement. +TSqlParserListener.prototype.exitUpdate_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#output_clause. +TSqlParserListener.prototype.enterOutput_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#output_clause. +TSqlParserListener.prototype.exitOutput_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#output_dml_list_elem. +TSqlParserListener.prototype.enterOutput_dml_list_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#output_dml_list_elem. +TSqlParserListener.prototype.exitOutput_dml_list_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#output_column_name. +TSqlParserListener.prototype.enterOutput_column_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#output_column_name. +TSqlParserListener.prototype.exitOutput_column_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_database. +TSqlParserListener.prototype.enterCreate_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_database. +TSqlParserListener.prototype.exitCreate_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_index. +TSqlParserListener.prototype.enterCreate_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_index. +TSqlParserListener.prototype.exitCreate_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_procedure. +TSqlParserListener.prototype.enterCreate_or_alter_procedure = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_procedure. +TSqlParserListener.prototype.exitCreate_or_alter_procedure = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_trigger. +TSqlParserListener.prototype.enterCreate_or_alter_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_trigger. +TSqlParserListener.prototype.exitCreate_or_alter_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_dml_trigger. +TSqlParserListener.prototype.enterCreate_or_alter_dml_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_dml_trigger. +TSqlParserListener.prototype.exitCreate_or_alter_dml_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dml_trigger_option. +TSqlParserListener.prototype.enterDml_trigger_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dml_trigger_option. +TSqlParserListener.prototype.exitDml_trigger_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dml_trigger_operation. +TSqlParserListener.prototype.enterDml_trigger_operation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dml_trigger_operation. +TSqlParserListener.prototype.exitDml_trigger_operation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_ddl_trigger. +TSqlParserListener.prototype.enterCreate_or_alter_ddl_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_ddl_trigger. +TSqlParserListener.prototype.exitCreate_or_alter_ddl_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ddl_trigger_operation. +TSqlParserListener.prototype.enterDdl_trigger_operation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ddl_trigger_operation. +TSqlParserListener.prototype.exitDdl_trigger_operation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_function. +TSqlParserListener.prototype.enterCreate_or_alter_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_function. +TSqlParserListener.prototype.exitCreate_or_alter_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_body_returns_select. +TSqlParserListener.prototype.enterFunc_body_returns_select = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_body_returns_select. +TSqlParserListener.prototype.exitFunc_body_returns_select = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_body_returns_table. +TSqlParserListener.prototype.enterFunc_body_returns_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_body_returns_table. +TSqlParserListener.prototype.exitFunc_body_returns_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_body_returns_scalar. +TSqlParserListener.prototype.enterFunc_body_returns_scalar = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_body_returns_scalar. +TSqlParserListener.prototype.exitFunc_body_returns_scalar = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#procedure_param. +TSqlParserListener.prototype.enterProcedure_param = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#procedure_param. +TSqlParserListener.prototype.exitProcedure_param = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#procedure_option. +TSqlParserListener.prototype.enterProcedure_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#procedure_option. +TSqlParserListener.prototype.exitProcedure_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#function_option. +TSqlParserListener.prototype.enterFunction_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#function_option. +TSqlParserListener.prototype.exitFunction_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_statistics. +TSqlParserListener.prototype.enterCreate_statistics = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_statistics. +TSqlParserListener.prototype.exitCreate_statistics = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#update_statistics. +TSqlParserListener.prototype.enterUpdate_statistics = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#update_statistics. +TSqlParserListener.prototype.exitUpdate_statistics = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_table. +TSqlParserListener.prototype.enterCreate_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_table. +TSqlParserListener.prototype.exitCreate_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_options. +TSqlParserListener.prototype.enterTable_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_options. +TSqlParserListener.prototype.exitTable_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_view. +TSqlParserListener.prototype.enterCreate_view = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_view. +TSqlParserListener.prototype.exitCreate_view = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#view_attribute. +TSqlParserListener.prototype.enterView_attribute = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#view_attribute. +TSqlParserListener.prototype.exitView_attribute = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_table. +TSqlParserListener.prototype.enterAlter_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_table. +TSqlParserListener.prototype.exitAlter_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_database. +TSqlParserListener.prototype.enterAlter_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_database. +TSqlParserListener.prototype.exitAlter_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#database_optionspec. +TSqlParserListener.prototype.enterDatabase_optionspec = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#database_optionspec. +TSqlParserListener.prototype.exitDatabase_optionspec = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#auto_option. +TSqlParserListener.prototype.enterAuto_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#auto_option. +TSqlParserListener.prototype.exitAuto_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#change_tracking_option. +TSqlParserListener.prototype.enterChange_tracking_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#change_tracking_option. +TSqlParserListener.prototype.exitChange_tracking_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#change_tracking_option_list. +TSqlParserListener.prototype.enterChange_tracking_option_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#change_tracking_option_list. +TSqlParserListener.prototype.exitChange_tracking_option_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#containment_option. +TSqlParserListener.prototype.enterContainment_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#containment_option. +TSqlParserListener.prototype.exitContainment_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#cursor_option. +TSqlParserListener.prototype.enterCursor_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#cursor_option. +TSqlParserListener.prototype.exitCursor_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_endpoint. +TSqlParserListener.prototype.enterAlter_endpoint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_endpoint. +TSqlParserListener.prototype.exitAlter_endpoint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#database_mirroring_option. +TSqlParserListener.prototype.enterDatabase_mirroring_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#database_mirroring_option. +TSqlParserListener.prototype.exitDatabase_mirroring_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mirroring_set_option. +TSqlParserListener.prototype.enterMirroring_set_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mirroring_set_option. +TSqlParserListener.prototype.exitMirroring_set_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mirroring_partner. +TSqlParserListener.prototype.enterMirroring_partner = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mirroring_partner. +TSqlParserListener.prototype.exitMirroring_partner = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mirroring_witness. +TSqlParserListener.prototype.enterMirroring_witness = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mirroring_witness. +TSqlParserListener.prototype.exitMirroring_witness = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#witness_partner_equal. +TSqlParserListener.prototype.enterWitness_partner_equal = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#witness_partner_equal. +TSqlParserListener.prototype.exitWitness_partner_equal = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#partner_option. +TSqlParserListener.prototype.enterPartner_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#partner_option. +TSqlParserListener.prototype.exitPartner_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#witness_option. +TSqlParserListener.prototype.enterWitness_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#witness_option. +TSqlParserListener.prototype.exitWitness_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#witness_server. +TSqlParserListener.prototype.enterWitness_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#witness_server. +TSqlParserListener.prototype.exitWitness_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#partner_server. +TSqlParserListener.prototype.enterPartner_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#partner_server. +TSqlParserListener.prototype.exitPartner_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mirroring_host_port_seperator. +TSqlParserListener.prototype.enterMirroring_host_port_seperator = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mirroring_host_port_seperator. +TSqlParserListener.prototype.exitMirroring_host_port_seperator = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#partner_server_tcp_prefix. +TSqlParserListener.prototype.enterPartner_server_tcp_prefix = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#partner_server_tcp_prefix. +TSqlParserListener.prototype.exitPartner_server_tcp_prefix = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#port_number. +TSqlParserListener.prototype.enterPort_number = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#port_number. +TSqlParserListener.prototype.exitPort_number = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#host. +TSqlParserListener.prototype.enterHost = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#host. +TSqlParserListener.prototype.exitHost = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#date_correlation_optimization_option. +TSqlParserListener.prototype.enterDate_correlation_optimization_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#date_correlation_optimization_option. +TSqlParserListener.prototype.exitDate_correlation_optimization_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#db_encryption_option. +TSqlParserListener.prototype.enterDb_encryption_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#db_encryption_option. +TSqlParserListener.prototype.exitDb_encryption_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#db_state_option. +TSqlParserListener.prototype.enterDb_state_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#db_state_option. +TSqlParserListener.prototype.exitDb_state_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#db_update_option. +TSqlParserListener.prototype.enterDb_update_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#db_update_option. +TSqlParserListener.prototype.exitDb_update_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#db_user_access_option. +TSqlParserListener.prototype.enterDb_user_access_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#db_user_access_option. +TSqlParserListener.prototype.exitDb_user_access_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#delayed_durability_option. +TSqlParserListener.prototype.enterDelayed_durability_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#delayed_durability_option. +TSqlParserListener.prototype.exitDelayed_durability_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#external_access_option. +TSqlParserListener.prototype.enterExternal_access_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#external_access_option. +TSqlParserListener.prototype.exitExternal_access_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#hadr_options. +TSqlParserListener.prototype.enterHadr_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#hadr_options. +TSqlParserListener.prototype.exitHadr_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mixed_page_allocation_option. +TSqlParserListener.prototype.enterMixed_page_allocation_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mixed_page_allocation_option. +TSqlParserListener.prototype.exitMixed_page_allocation_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#parameterization_option. +TSqlParserListener.prototype.enterParameterization_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#parameterization_option. +TSqlParserListener.prototype.exitParameterization_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#recovery_option. +TSqlParserListener.prototype.enterRecovery_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#recovery_option. +TSqlParserListener.prototype.exitRecovery_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#service_broker_option. +TSqlParserListener.prototype.enterService_broker_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#service_broker_option. +TSqlParserListener.prototype.exitService_broker_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#snapshot_option. +TSqlParserListener.prototype.enterSnapshot_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#snapshot_option. +TSqlParserListener.prototype.exitSnapshot_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sql_option. +TSqlParserListener.prototype.enterSql_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sql_option. +TSqlParserListener.prototype.exitSql_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#target_recovery_time_option. +TSqlParserListener.prototype.enterTarget_recovery_time_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#target_recovery_time_option. +TSqlParserListener.prototype.exitTarget_recovery_time_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#termination. +TSqlParserListener.prototype.enterTermination = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#termination. +TSqlParserListener.prototype.exitTermination = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_index. +TSqlParserListener.prototype.enterDrop_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_index. +TSqlParserListener.prototype.exitDrop_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_relational_or_xml_or_spatial_index. +TSqlParserListener.prototype.enterDrop_relational_or_xml_or_spatial_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_relational_or_xml_or_spatial_index. +TSqlParserListener.prototype.exitDrop_relational_or_xml_or_spatial_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_backward_compatible_index. +TSqlParserListener.prototype.enterDrop_backward_compatible_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_backward_compatible_index. +TSqlParserListener.prototype.exitDrop_backward_compatible_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_procedure. +TSqlParserListener.prototype.enterDrop_procedure = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_procedure. +TSqlParserListener.prototype.exitDrop_procedure = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_trigger. +TSqlParserListener.prototype.enterDrop_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_trigger. +TSqlParserListener.prototype.exitDrop_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_dml_trigger. +TSqlParserListener.prototype.enterDrop_dml_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_dml_trigger. +TSqlParserListener.prototype.exitDrop_dml_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_ddl_trigger. +TSqlParserListener.prototype.enterDrop_ddl_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_ddl_trigger. +TSqlParserListener.prototype.exitDrop_ddl_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_function. +TSqlParserListener.prototype.enterDrop_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_function. +TSqlParserListener.prototype.exitDrop_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_statistics. +TSqlParserListener.prototype.enterDrop_statistics = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_statistics. +TSqlParserListener.prototype.exitDrop_statistics = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_table. +TSqlParserListener.prototype.enterDrop_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_table. +TSqlParserListener.prototype.exitDrop_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_view. +TSqlParserListener.prototype.enterDrop_view = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_view. +TSqlParserListener.prototype.exitDrop_view = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_type. +TSqlParserListener.prototype.enterCreate_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_type. +TSqlParserListener.prototype.exitCreate_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_type. +TSqlParserListener.prototype.enterDrop_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_type. +TSqlParserListener.prototype.exitDrop_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#rowset_function_limited. +TSqlParserListener.prototype.enterRowset_function_limited = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#rowset_function_limited. +TSqlParserListener.prototype.exitRowset_function_limited = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#openquery. +TSqlParserListener.prototype.enterOpenquery = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#openquery. +TSqlParserListener.prototype.exitOpenquery = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#opendatasource. +TSqlParserListener.prototype.enterOpendatasource = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#opendatasource. +TSqlParserListener.prototype.exitOpendatasource = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_statement. +TSqlParserListener.prototype.enterDeclare_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_statement. +TSqlParserListener.prototype.exitDeclare_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#cursor_statement. +TSqlParserListener.prototype.enterCursor_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#cursor_statement. +TSqlParserListener.prototype.exitCursor_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_database. +TSqlParserListener.prototype.enterBackup_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_database. +TSqlParserListener.prototype.exitBackup_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_log. +TSqlParserListener.prototype.enterBackup_log = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_log. +TSqlParserListener.prototype.exitBackup_log = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_certificate. +TSqlParserListener.prototype.enterBackup_certificate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_certificate. +TSqlParserListener.prototype.exitBackup_certificate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_master_key. +TSqlParserListener.prototype.enterBackup_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_master_key. +TSqlParserListener.prototype.exitBackup_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_service_master_key. +TSqlParserListener.prototype.enterBackup_service_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_service_master_key. +TSqlParserListener.prototype.exitBackup_service_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#kill_statement. +TSqlParserListener.prototype.enterKill_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#kill_statement. +TSqlParserListener.prototype.exitKill_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#kill_process. +TSqlParserListener.prototype.enterKill_process = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#kill_process. +TSqlParserListener.prototype.exitKill_process = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#kill_query_notification. +TSqlParserListener.prototype.enterKill_query_notification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#kill_query_notification. +TSqlParserListener.prototype.exitKill_query_notification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#kill_stats_job. +TSqlParserListener.prototype.enterKill_stats_job = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#kill_stats_job. +TSqlParserListener.prototype.exitKill_stats_job = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_statement. +TSqlParserListener.prototype.enterExecute_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_statement. +TSqlParserListener.prototype.exitExecute_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_body. +TSqlParserListener.prototype.enterExecute_body = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_body. +TSqlParserListener.prototype.exitExecute_body = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_statement_arg. +TSqlParserListener.prototype.enterExecute_statement_arg = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_statement_arg. +TSqlParserListener.prototype.exitExecute_statement_arg = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_var_string. +TSqlParserListener.prototype.enterExecute_var_string = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_var_string. +TSqlParserListener.prototype.exitExecute_var_string = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#security_statement. +TSqlParserListener.prototype.enterSecurity_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#security_statement. +TSqlParserListener.prototype.exitSecurity_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_certificate. +TSqlParserListener.prototype.enterCreate_certificate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_certificate. +TSqlParserListener.prototype.exitCreate_certificate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#existing_keys. +TSqlParserListener.prototype.enterExisting_keys = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#existing_keys. +TSqlParserListener.prototype.exitExisting_keys = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#private_key_options. +TSqlParserListener.prototype.enterPrivate_key_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#private_key_options. +TSqlParserListener.prototype.exitPrivate_key_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#generate_new_keys. +TSqlParserListener.prototype.enterGenerate_new_keys = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#generate_new_keys. +TSqlParserListener.prototype.exitGenerate_new_keys = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#date_options. +TSqlParserListener.prototype.enterDate_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#date_options. +TSqlParserListener.prototype.exitDate_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#open_key. +TSqlParserListener.prototype.enterOpen_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#open_key. +TSqlParserListener.prototype.exitOpen_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#close_key. +TSqlParserListener.prototype.enterClose_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#close_key. +TSqlParserListener.prototype.exitClose_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_key. +TSqlParserListener.prototype.enterCreate_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_key. +TSqlParserListener.prototype.exitCreate_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#key_options. +TSqlParserListener.prototype.enterKey_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#key_options. +TSqlParserListener.prototype.exitKey_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#algorithm. +TSqlParserListener.prototype.enterAlgorithm = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#algorithm. +TSqlParserListener.prototype.exitAlgorithm = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#encryption_mechanism. +TSqlParserListener.prototype.enterEncryption_mechanism = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#encryption_mechanism. +TSqlParserListener.prototype.exitEncryption_mechanism = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#decryption_mechanism. +TSqlParserListener.prototype.enterDecryption_mechanism = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#decryption_mechanism. +TSqlParserListener.prototype.exitDecryption_mechanism = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#grant_permission. +TSqlParserListener.prototype.enterGrant_permission = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#grant_permission. +TSqlParserListener.prototype.exitGrant_permission = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#set_statement. +TSqlParserListener.prototype.enterSet_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#set_statement. +TSqlParserListener.prototype.exitSet_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#transaction_statement. +TSqlParserListener.prototype.enterTransaction_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#transaction_statement. +TSqlParserListener.prototype.exitTransaction_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#go_statement. +TSqlParserListener.prototype.enterGo_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#go_statement. +TSqlParserListener.prototype.exitGo_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#use_statement. +TSqlParserListener.prototype.enterUse_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#use_statement. +TSqlParserListener.prototype.exitUse_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#setuser_statement. +TSqlParserListener.prototype.enterSetuser_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#setuser_statement. +TSqlParserListener.prototype.exitSetuser_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#reconfigure_statement. +TSqlParserListener.prototype.enterReconfigure_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#reconfigure_statement. +TSqlParserListener.prototype.exitReconfigure_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#shutdown_statement. +TSqlParserListener.prototype.enterShutdown_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#shutdown_statement. +TSqlParserListener.prototype.exitShutdown_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dbcc_clause. +TSqlParserListener.prototype.enterDbcc_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dbcc_clause. +TSqlParserListener.prototype.exitDbcc_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dbcc_options. +TSqlParserListener.prototype.enterDbcc_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dbcc_options. +TSqlParserListener.prototype.exitDbcc_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_clause. +TSqlParserListener.prototype.enterExecute_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_clause. +TSqlParserListener.prototype.exitExecute_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_local. +TSqlParserListener.prototype.enterDeclare_local = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_local. +TSqlParserListener.prototype.exitDeclare_local = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_type_definition. +TSqlParserListener.prototype.enterTable_type_definition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_type_definition. +TSqlParserListener.prototype.exitTable_type_definition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#xml_type_definition. +TSqlParserListener.prototype.enterXml_type_definition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#xml_type_definition. +TSqlParserListener.prototype.exitXml_type_definition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#xml_schema_collection. +TSqlParserListener.prototype.enterXml_schema_collection = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#xml_schema_collection. +TSqlParserListener.prototype.exitXml_schema_collection = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_def_table_constraints. +TSqlParserListener.prototype.enterColumn_def_table_constraints = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_def_table_constraints. +TSqlParserListener.prototype.exitColumn_def_table_constraints = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_def_table_constraint. +TSqlParserListener.prototype.enterColumn_def_table_constraint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_def_table_constraint. +TSqlParserListener.prototype.exitColumn_def_table_constraint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_definition. +TSqlParserListener.prototype.enterColumn_definition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_definition. +TSqlParserListener.prototype.exitColumn_definition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#materialized_column_definition. +TSqlParserListener.prototype.enterMaterialized_column_definition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#materialized_column_definition. +TSqlParserListener.prototype.exitMaterialized_column_definition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_constraint. +TSqlParserListener.prototype.enterColumn_constraint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_constraint. +TSqlParserListener.prototype.exitColumn_constraint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_constraint. +TSqlParserListener.prototype.enterTable_constraint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_constraint. +TSqlParserListener.prototype.exitTable_constraint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#on_delete. +TSqlParserListener.prototype.enterOn_delete = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#on_delete. +TSqlParserListener.prototype.exitOn_delete = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#on_update. +TSqlParserListener.prototype.enterOn_update = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#on_update. +TSqlParserListener.prototype.exitOn_update = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#index_options. +TSqlParserListener.prototype.enterIndex_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#index_options. +TSqlParserListener.prototype.exitIndex_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#index_option. +TSqlParserListener.prototype.enterIndex_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#index_option. +TSqlParserListener.prototype.exitIndex_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_cursor. +TSqlParserListener.prototype.enterDeclare_cursor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_cursor. +TSqlParserListener.prototype.exitDeclare_cursor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_set_cursor_common. +TSqlParserListener.prototype.enterDeclare_set_cursor_common = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_set_cursor_common. +TSqlParserListener.prototype.exitDeclare_set_cursor_common = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_set_cursor_common_partial. +TSqlParserListener.prototype.enterDeclare_set_cursor_common_partial = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_set_cursor_common_partial. +TSqlParserListener.prototype.exitDeclare_set_cursor_common_partial = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#fetch_cursor. +TSqlParserListener.prototype.enterFetch_cursor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#fetch_cursor. +TSqlParserListener.prototype.exitFetch_cursor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#set_special. +TSqlParserListener.prototype.enterSet_special = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#set_special. +TSqlParserListener.prototype.exitSet_special = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#constant_LOCAL_ID. +TSqlParserListener.prototype.enterConstant_LOCAL_ID = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#constant_LOCAL_ID. +TSqlParserListener.prototype.exitConstant_LOCAL_ID = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#expression. +TSqlParserListener.prototype.enterExpression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#expression. +TSqlParserListener.prototype.exitExpression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#primitive_expression. +TSqlParserListener.prototype.enterPrimitive_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#primitive_expression. +TSqlParserListener.prototype.exitPrimitive_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#case_expression. +TSqlParserListener.prototype.enterCase_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#case_expression. +TSqlParserListener.prototype.exitCase_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#unary_operator_expression. +TSqlParserListener.prototype.enterUnary_operator_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#unary_operator_expression. +TSqlParserListener.prototype.exitUnary_operator_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#bracket_expression. +TSqlParserListener.prototype.enterBracket_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#bracket_expression. +TSqlParserListener.prototype.exitBracket_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#constant_expression. +TSqlParserListener.prototype.enterConstant_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#constant_expression. +TSqlParserListener.prototype.exitConstant_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#subquery. +TSqlParserListener.prototype.enterSubquery = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#subquery. +TSqlParserListener.prototype.exitSubquery = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#with_expression. +TSqlParserListener.prototype.enterWith_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#with_expression. +TSqlParserListener.prototype.exitWith_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#common_table_expression. +TSqlParserListener.prototype.enterCommon_table_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#common_table_expression. +TSqlParserListener.prototype.exitCommon_table_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#update_elem. +TSqlParserListener.prototype.enterUpdate_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#update_elem. +TSqlParserListener.prototype.exitUpdate_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#search_condition_list. +TSqlParserListener.prototype.enterSearch_condition_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#search_condition_list. +TSqlParserListener.prototype.exitSearch_condition_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#search_condition. +TSqlParserListener.prototype.enterSearch_condition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#search_condition. +TSqlParserListener.prototype.exitSearch_condition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#search_condition_and. +TSqlParserListener.prototype.enterSearch_condition_and = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#search_condition_and. +TSqlParserListener.prototype.exitSearch_condition_and = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#search_condition_not. +TSqlParserListener.prototype.enterSearch_condition_not = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#search_condition_not. +TSqlParserListener.prototype.exitSearch_condition_not = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#predicate. +TSqlParserListener.prototype.enterPredicate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#predicate. +TSqlParserListener.prototype.exitPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#query_expression. +TSqlParserListener.prototype.enterQuery_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#query_expression. +TSqlParserListener.prototype.exitQuery_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sql_union. +TSqlParserListener.prototype.enterSql_union = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sql_union. +TSqlParserListener.prototype.exitSql_union = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#query_specification. +TSqlParserListener.prototype.enterQuery_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#query_specification. +TSqlParserListener.prototype.exitQuery_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#top_clause. +TSqlParserListener.prototype.enterTop_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#top_clause. +TSqlParserListener.prototype.exitTop_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#top_percent. +TSqlParserListener.prototype.enterTop_percent = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#top_percent. +TSqlParserListener.prototype.exitTop_percent = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#top_count. +TSqlParserListener.prototype.enterTop_count = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#top_count. +TSqlParserListener.prototype.exitTop_count = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#order_by_clause. +TSqlParserListener.prototype.enterOrder_by_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#order_by_clause. +TSqlParserListener.prototype.exitOrder_by_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#for_clause. +TSqlParserListener.prototype.enterFor_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#for_clause. +TSqlParserListener.prototype.exitFor_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#xml_common_directives. +TSqlParserListener.prototype.enterXml_common_directives = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#xml_common_directives. +TSqlParserListener.prototype.exitXml_common_directives = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#order_by_expression. +TSqlParserListener.prototype.enterOrder_by_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#order_by_expression. +TSqlParserListener.prototype.exitOrder_by_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#group_by_item. +TSqlParserListener.prototype.enterGroup_by_item = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#group_by_item. +TSqlParserListener.prototype.exitGroup_by_item = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#option_clause. +TSqlParserListener.prototype.enterOption_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#option_clause. +TSqlParserListener.prototype.exitOption_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#option. +TSqlParserListener.prototype.enterOption = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#option. +TSqlParserListener.prototype.exitOption = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#optimize_for_arg. +TSqlParserListener.prototype.enterOptimize_for_arg = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#optimize_for_arg. +TSqlParserListener.prototype.exitOptimize_for_arg = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#select_list. +TSqlParserListener.prototype.enterSelect_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#select_list. +TSqlParserListener.prototype.exitSelect_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#udt_method_arguments. +TSqlParserListener.prototype.enterUdt_method_arguments = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#udt_method_arguments. +TSqlParserListener.prototype.exitUdt_method_arguments = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#asterisk. +TSqlParserListener.prototype.enterAsterisk = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#asterisk. +TSqlParserListener.prototype.exitAsterisk = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_elem. +TSqlParserListener.prototype.enterColumn_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_elem. +TSqlParserListener.prototype.exitColumn_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#udt_elem. +TSqlParserListener.prototype.enterUdt_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#udt_elem. +TSqlParserListener.prototype.exitUdt_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#expression_elem. +TSqlParserListener.prototype.enterExpression_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#expression_elem. +TSqlParserListener.prototype.exitExpression_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#select_list_elem. +TSqlParserListener.prototype.enterSelect_list_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#select_list_elem. +TSqlParserListener.prototype.exitSelect_list_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_sources. +TSqlParserListener.prototype.enterTable_sources = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_sources. +TSqlParserListener.prototype.exitTable_sources = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_source. +TSqlParserListener.prototype.enterTable_source = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_source. +TSqlParserListener.prototype.exitTable_source = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_source_item_joined. +TSqlParserListener.prototype.enterTable_source_item_joined = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_source_item_joined. +TSqlParserListener.prototype.exitTable_source_item_joined = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_source_item. +TSqlParserListener.prototype.enterTable_source_item = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_source_item. +TSqlParserListener.prototype.exitTable_source_item = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#open_xml. +TSqlParserListener.prototype.enterOpen_xml = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#open_xml. +TSqlParserListener.prototype.exitOpen_xml = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#schema_declaration. +TSqlParserListener.prototype.enterSchema_declaration = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#schema_declaration. +TSqlParserListener.prototype.exitSchema_declaration = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_declaration. +TSqlParserListener.prototype.enterColumn_declaration = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_declaration. +TSqlParserListener.prototype.exitColumn_declaration = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#change_table. +TSqlParserListener.prototype.enterChange_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#change_table. +TSqlParserListener.prototype.exitChange_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#join_part. +TSqlParserListener.prototype.enterJoin_part = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#join_part. +TSqlParserListener.prototype.exitJoin_part = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#pivot_clause. +TSqlParserListener.prototype.enterPivot_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#pivot_clause. +TSqlParserListener.prototype.exitPivot_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#unpivot_clause. +TSqlParserListener.prototype.enterUnpivot_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#unpivot_clause. +TSqlParserListener.prototype.exitUnpivot_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#full_column_name_list. +TSqlParserListener.prototype.enterFull_column_name_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#full_column_name_list. +TSqlParserListener.prototype.exitFull_column_name_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_name_with_hint. +TSqlParserListener.prototype.enterTable_name_with_hint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_name_with_hint. +TSqlParserListener.prototype.exitTable_name_with_hint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#rowset_function. +TSqlParserListener.prototype.enterRowset_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#rowset_function. +TSqlParserListener.prototype.exitRowset_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#bulk_option. +TSqlParserListener.prototype.enterBulk_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#bulk_option. +TSqlParserListener.prototype.exitBulk_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#derived_table. +TSqlParserListener.prototype.enterDerived_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#derived_table. +TSqlParserListener.prototype.exitDerived_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#BINARY_CHECKSUM. +TSqlParserListener.prototype.enterBINARY_CHECKSUM = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#BINARY_CHECKSUM. +TSqlParserListener.prototype.exitBINARY_CHECKSUM = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CAST. +TSqlParserListener.prototype.enterCAST = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CAST. +TSqlParserListener.prototype.exitCAST = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CONVERT. +TSqlParserListener.prototype.enterCONVERT = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CONVERT. +TSqlParserListener.prototype.exitCONVERT = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CHECKSUM. +TSqlParserListener.prototype.enterCHECKSUM = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CHECKSUM. +TSqlParserListener.prototype.exitCHECKSUM = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#COALESCE. +TSqlParserListener.prototype.enterCOALESCE = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#COALESCE. +TSqlParserListener.prototype.exitCOALESCE = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CURRENT_TIMESTAMP. +TSqlParserListener.prototype.enterCURRENT_TIMESTAMP = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CURRENT_TIMESTAMP. +TSqlParserListener.prototype.exitCURRENT_TIMESTAMP = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CURRENT_USER. +TSqlParserListener.prototype.enterCURRENT_USER = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CURRENT_USER. +TSqlParserListener.prototype.exitCURRENT_USER = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#DATEADD. +TSqlParserListener.prototype.enterDATEADD = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#DATEADD. +TSqlParserListener.prototype.exitDATEADD = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#DATEDIFF. +TSqlParserListener.prototype.enterDATEDIFF = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#DATEDIFF. +TSqlParserListener.prototype.exitDATEDIFF = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#DATENAME. +TSqlParserListener.prototype.enterDATENAME = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#DATENAME. +TSqlParserListener.prototype.exitDATENAME = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#DATEPART. +TSqlParserListener.prototype.enterDATEPART = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#DATEPART. +TSqlParserListener.prototype.exitDATEPART = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#GETDATE. +TSqlParserListener.prototype.enterGETDATE = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#GETDATE. +TSqlParserListener.prototype.exitGETDATE = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#GETUTCDATE. +TSqlParserListener.prototype.enterGETUTCDATE = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#GETUTCDATE. +TSqlParserListener.prototype.exitGETUTCDATE = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#IDENTITY. +TSqlParserListener.prototype.enterIDENTITY = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#IDENTITY. +TSqlParserListener.prototype.exitIDENTITY = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#MIN_ACTIVE_ROWVERSION. +TSqlParserListener.prototype.enterMIN_ACTIVE_ROWVERSION = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#MIN_ACTIVE_ROWVERSION. +TSqlParserListener.prototype.exitMIN_ACTIVE_ROWVERSION = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#NULLIF. +TSqlParserListener.prototype.enterNULLIF = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#NULLIF. +TSqlParserListener.prototype.exitNULLIF = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#STUFF. +TSqlParserListener.prototype.enterSTUFF = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#STUFF. +TSqlParserListener.prototype.exitSTUFF = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#SESSION_USER. +TSqlParserListener.prototype.enterSESSION_USER = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#SESSION_USER. +TSqlParserListener.prototype.exitSESSION_USER = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#SYSTEM_USER. +TSqlParserListener.prototype.enterSYSTEM_USER = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#SYSTEM_USER. +TSqlParserListener.prototype.exitSYSTEM_USER = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ISNULL. +TSqlParserListener.prototype.enterISNULL = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ISNULL. +TSqlParserListener.prototype.exitISNULL = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#XML_DATA_TYPE_FUNC. +TSqlParserListener.prototype.enterXML_DATA_TYPE_FUNC = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#XML_DATA_TYPE_FUNC. +TSqlParserListener.prototype.exitXML_DATA_TYPE_FUNC = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#IFF. +TSqlParserListener.prototype.enterIFF = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#IFF. +TSqlParserListener.prototype.exitIFF = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#RANKING_WINDOWED_FUNC. +TSqlParserListener.prototype.enterRANKING_WINDOWED_FUNC = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#RANKING_WINDOWED_FUNC. +TSqlParserListener.prototype.exitRANKING_WINDOWED_FUNC = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#AGGREGATE_WINDOWED_FUNC. +TSqlParserListener.prototype.enterAGGREGATE_WINDOWED_FUNC = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#AGGREGATE_WINDOWED_FUNC. +TSqlParserListener.prototype.exitAGGREGATE_WINDOWED_FUNC = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ANALYTIC_WINDOWED_FUNC. +TSqlParserListener.prototype.enterANALYTIC_WINDOWED_FUNC = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ANALYTIC_WINDOWED_FUNC. +TSqlParserListener.prototype.exitANALYTIC_WINDOWED_FUNC = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#SCALAR_FUNCTION. +TSqlParserListener.prototype.enterSCALAR_FUNCTION = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#SCALAR_FUNCTION. +TSqlParserListener.prototype.exitSCALAR_FUNCTION = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#STRINGAGG. +TSqlParserListener.prototype.enterSTRINGAGG = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#STRINGAGG. +TSqlParserListener.prototype.exitSTRINGAGG = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#xml_data_type_methods. +TSqlParserListener.prototype.enterXml_data_type_methods = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#xml_data_type_methods. +TSqlParserListener.prototype.exitXml_data_type_methods = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#value_method. +TSqlParserListener.prototype.enterValue_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#value_method. +TSqlParserListener.prototype.exitValue_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#query_method. +TSqlParserListener.prototype.enterQuery_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#query_method. +TSqlParserListener.prototype.exitQuery_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#exist_method. +TSqlParserListener.prototype.enterExist_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#exist_method. +TSqlParserListener.prototype.exitExist_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#modify_method. +TSqlParserListener.prototype.enterModify_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#modify_method. +TSqlParserListener.prototype.exitModify_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#nodes_method. +TSqlParserListener.prototype.enterNodes_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#nodes_method. +TSqlParserListener.prototype.exitNodes_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#switch_section. +TSqlParserListener.prototype.enterSwitch_section = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#switch_section. +TSqlParserListener.prototype.exitSwitch_section = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#switch_search_condition_section. +TSqlParserListener.prototype.enterSwitch_search_condition_section = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#switch_search_condition_section. +TSqlParserListener.prototype.exitSwitch_search_condition_section = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#as_column_alias. +TSqlParserListener.prototype.enterAs_column_alias = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#as_column_alias. +TSqlParserListener.prototype.exitAs_column_alias = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#as_table_alias. +TSqlParserListener.prototype.enterAs_table_alias = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#as_table_alias. +TSqlParserListener.prototype.exitAs_table_alias = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_alias. +TSqlParserListener.prototype.enterTable_alias = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_alias. +TSqlParserListener.prototype.exitTable_alias = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#with_table_hints. +TSqlParserListener.prototype.enterWith_table_hints = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#with_table_hints. +TSqlParserListener.prototype.exitWith_table_hints = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#insert_with_table_hints. +TSqlParserListener.prototype.enterInsert_with_table_hints = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#insert_with_table_hints. +TSqlParserListener.prototype.exitInsert_with_table_hints = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_hint. +TSqlParserListener.prototype.enterTable_hint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_hint. +TSqlParserListener.prototype.exitTable_hint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#index_value. +TSqlParserListener.prototype.enterIndex_value = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#index_value. +TSqlParserListener.prototype.exitIndex_value = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_alias_list. +TSqlParserListener.prototype.enterColumn_alias_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_alias_list. +TSqlParserListener.prototype.exitColumn_alias_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_alias. +TSqlParserListener.prototype.enterColumn_alias = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_alias. +TSqlParserListener.prototype.exitColumn_alias = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_value_constructor. +TSqlParserListener.prototype.enterTable_value_constructor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_value_constructor. +TSqlParserListener.prototype.exitTable_value_constructor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#expression_list. +TSqlParserListener.prototype.enterExpression_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#expression_list. +TSqlParserListener.prototype.exitExpression_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ranking_windowed_function. +TSqlParserListener.prototype.enterRanking_windowed_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ranking_windowed_function. +TSqlParserListener.prototype.exitRanking_windowed_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#aggregate_windowed_function. +TSqlParserListener.prototype.enterAggregate_windowed_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#aggregate_windowed_function. +TSqlParserListener.prototype.exitAggregate_windowed_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#analytic_windowed_function. +TSqlParserListener.prototype.enterAnalytic_windowed_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#analytic_windowed_function. +TSqlParserListener.prototype.exitAnalytic_windowed_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#all_distinct_expression. +TSqlParserListener.prototype.enterAll_distinct_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#all_distinct_expression. +TSqlParserListener.prototype.exitAll_distinct_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#over_clause. +TSqlParserListener.prototype.enterOver_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#over_clause. +TSqlParserListener.prototype.exitOver_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#row_or_range_clause. +TSqlParserListener.prototype.enterRow_or_range_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#row_or_range_clause. +TSqlParserListener.prototype.exitRow_or_range_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#window_frame_extent. +TSqlParserListener.prototype.enterWindow_frame_extent = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#window_frame_extent. +TSqlParserListener.prototype.exitWindow_frame_extent = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#window_frame_bound. +TSqlParserListener.prototype.enterWindow_frame_bound = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#window_frame_bound. +TSqlParserListener.prototype.exitWindow_frame_bound = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#window_frame_preceding. +TSqlParserListener.prototype.enterWindow_frame_preceding = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#window_frame_preceding. +TSqlParserListener.prototype.exitWindow_frame_preceding = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#window_frame_following. +TSqlParserListener.prototype.enterWindow_frame_following = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#window_frame_following. +TSqlParserListener.prototype.exitWindow_frame_following = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_database_option. +TSqlParserListener.prototype.enterCreate_database_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_database_option. +TSqlParserListener.prototype.exitCreate_database_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#database_filestream_option. +TSqlParserListener.prototype.enterDatabase_filestream_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#database_filestream_option. +TSqlParserListener.prototype.exitDatabase_filestream_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#database_file_spec. +TSqlParserListener.prototype.enterDatabase_file_spec = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#database_file_spec. +TSqlParserListener.prototype.exitDatabase_file_spec = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_group. +TSqlParserListener.prototype.enterFile_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_group. +TSqlParserListener.prototype.exitFile_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_spec. +TSqlParserListener.prototype.enterFile_spec = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_spec. +TSqlParserListener.prototype.exitFile_spec = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#entity_name. +TSqlParserListener.prototype.enterEntity_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#entity_name. +TSqlParserListener.prototype.exitEntity_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#entity_name_for_azure_dw. +TSqlParserListener.prototype.enterEntity_name_for_azure_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#entity_name_for_azure_dw. +TSqlParserListener.prototype.exitEntity_name_for_azure_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#entity_name_for_parallel_dw. +TSqlParserListener.prototype.enterEntity_name_for_parallel_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#entity_name_for_parallel_dw. +TSqlParserListener.prototype.exitEntity_name_for_parallel_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#full_table_name. +TSqlParserListener.prototype.enterFull_table_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#full_table_name. +TSqlParserListener.prototype.exitFull_table_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_name. +TSqlParserListener.prototype.enterTable_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_name. +TSqlParserListener.prototype.exitTable_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#simple_name. +TSqlParserListener.prototype.enterSimple_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#simple_name. +TSqlParserListener.prototype.exitSimple_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_proc_name_schema. +TSqlParserListener.prototype.enterFunc_proc_name_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_proc_name_schema. +TSqlParserListener.prototype.exitFunc_proc_name_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_proc_name_database_schema. +TSqlParserListener.prototype.enterFunc_proc_name_database_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_proc_name_database_schema. +TSqlParserListener.prototype.exitFunc_proc_name_database_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_proc_name_server_database_schema. +TSqlParserListener.prototype.enterFunc_proc_name_server_database_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_proc_name_server_database_schema. +TSqlParserListener.prototype.exitFunc_proc_name_server_database_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ddl_object. +TSqlParserListener.prototype.enterDdl_object = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ddl_object. +TSqlParserListener.prototype.exitDdl_object = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#full_column_name. +TSqlParserListener.prototype.enterFull_column_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#full_column_name. +TSqlParserListener.prototype.exitFull_column_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_name_list_with_order. +TSqlParserListener.prototype.enterColumn_name_list_with_order = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_name_list_with_order. +TSqlParserListener.prototype.exitColumn_name_list_with_order = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_name_list. +TSqlParserListener.prototype.enterColumn_name_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_name_list. +TSqlParserListener.prototype.exitColumn_name_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#cursor_name. +TSqlParserListener.prototype.enterCursor_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#cursor_name. +TSqlParserListener.prototype.exitCursor_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#on_off. +TSqlParserListener.prototype.enterOn_off = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#on_off. +TSqlParserListener.prototype.exitOn_off = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#clustered. +TSqlParserListener.prototype.enterClustered = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#clustered. +TSqlParserListener.prototype.exitClustered = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#null_notnull. +TSqlParserListener.prototype.enterNull_notnull = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#null_notnull. +TSqlParserListener.prototype.exitNull_notnull = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#null_or_default. +TSqlParserListener.prototype.enterNull_or_default = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#null_or_default. +TSqlParserListener.prototype.exitNull_or_default = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#scalar_function_name. +TSqlParserListener.prototype.enterScalar_function_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#scalar_function_name. +TSqlParserListener.prototype.exitScalar_function_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#begin_conversation_timer. +TSqlParserListener.prototype.enterBegin_conversation_timer = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#begin_conversation_timer. +TSqlParserListener.prototype.exitBegin_conversation_timer = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#begin_conversation_dialog. +TSqlParserListener.prototype.enterBegin_conversation_dialog = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#begin_conversation_dialog. +TSqlParserListener.prototype.exitBegin_conversation_dialog = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#contract_name. +TSqlParserListener.prototype.enterContract_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#contract_name. +TSqlParserListener.prototype.exitContract_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#service_name. +TSqlParserListener.prototype.enterService_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#service_name. +TSqlParserListener.prototype.exitService_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#end_conversation. +TSqlParserListener.prototype.enterEnd_conversation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#end_conversation. +TSqlParserListener.prototype.exitEnd_conversation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#waitfor_conversation. +TSqlParserListener.prototype.enterWaitfor_conversation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#waitfor_conversation. +TSqlParserListener.prototype.exitWaitfor_conversation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#get_conversation. +TSqlParserListener.prototype.enterGet_conversation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#get_conversation. +TSqlParserListener.prototype.exitGet_conversation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#queue_id. +TSqlParserListener.prototype.enterQueue_id = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#queue_id. +TSqlParserListener.prototype.exitQueue_id = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#send_conversation. +TSqlParserListener.prototype.enterSend_conversation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#send_conversation. +TSqlParserListener.prototype.exitSend_conversation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#data_type. +TSqlParserListener.prototype.enterData_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#data_type. +TSqlParserListener.prototype.exitData_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#default_value. +TSqlParserListener.prototype.enterDefault_value = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#default_value. +TSqlParserListener.prototype.exitDefault_value = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#constant. +TSqlParserListener.prototype.enterConstant = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#constant. +TSqlParserListener.prototype.exitConstant = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sign. +TSqlParserListener.prototype.enterSign = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sign. +TSqlParserListener.prototype.exitSign = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#id. +TSqlParserListener.prototype.enterId = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#id. +TSqlParserListener.prototype.exitId = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#simple_id. +TSqlParserListener.prototype.enterSimple_id = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#simple_id. +TSqlParserListener.prototype.exitSimple_id = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#comparison_operator. +TSqlParserListener.prototype.enterComparison_operator = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#comparison_operator. +TSqlParserListener.prototype.exitComparison_operator = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#assignment_operator. +TSqlParserListener.prototype.enterAssignment_operator = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#assignment_operator. +TSqlParserListener.prototype.exitAssignment_operator = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_size. +TSqlParserListener.prototype.enterFile_size = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_size. +TSqlParserListener.prototype.exitFile_size = function(ctx) { +}; + + + +exports.TSqlParserListener = TSqlParserListener; \ No newline at end of file diff --git a/src/grammar/tsql/parser/TSqlParserVisitor.js b/src/grammar/tsql/parser/TSqlParserVisitor.js new file mode 100644 index 0000000..c3e5e91 --- /dev/null +++ b/src/grammar/tsql/parser/TSqlParserVisitor.js @@ -0,0 +1,3094 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/tsql/TSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + +// This class defines a complete generic visitor for a parse tree produced by TSqlParser. + +function TSqlParserVisitor() { + antlr4.tree.ParseTreeVisitor.call(this); + return this; +} + +TSqlParserVisitor.prototype = Object.create(antlr4.tree.ParseTreeVisitor.prototype); +TSqlParserVisitor.prototype.constructor = TSqlParserVisitor; + +// Visit a parse tree produced by TSqlParser#tsql_file. +TSqlParserVisitor.prototype.visitTsql_file = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#batch. +TSqlParserVisitor.prototype.visitBatch = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sql_clauses. +TSqlParserVisitor.prototype.visitSql_clauses = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sql_clause. +TSqlParserVisitor.prototype.visitSql_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dml_clause. +TSqlParserVisitor.prototype.visitDml_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ddl_clause. +TSqlParserVisitor.prototype.visitDdl_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_statement. +TSqlParserVisitor.prototype.visitBackup_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#cfl_statement. +TSqlParserVisitor.prototype.visitCfl_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#block_statement. +TSqlParserVisitor.prototype.visitBlock_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#break_statement. +TSqlParserVisitor.prototype.visitBreak_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#continue_statement. +TSqlParserVisitor.prototype.visitContinue_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#goto_statement. +TSqlParserVisitor.prototype.visitGoto_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#return_statement. +TSqlParserVisitor.prototype.visitReturn_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#if_statement. +TSqlParserVisitor.prototype.visitIf_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#throw_statement. +TSqlParserVisitor.prototype.visitThrow_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#throw_error_number. +TSqlParserVisitor.prototype.visitThrow_error_number = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#throw_message. +TSqlParserVisitor.prototype.visitThrow_message = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#throw_state. +TSqlParserVisitor.prototype.visitThrow_state = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#try_catch_statement. +TSqlParserVisitor.prototype.visitTry_catch_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#waitfor_statement. +TSqlParserVisitor.prototype.visitWaitfor_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#while_statement. +TSqlParserVisitor.prototype.visitWhile_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#print_statement. +TSqlParserVisitor.prototype.visitPrint_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#raiseerror_statement. +TSqlParserVisitor.prototype.visitRaiseerror_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#empty_statement. +TSqlParserVisitor.prototype.visitEmpty_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#another_statement. +TSqlParserVisitor.prototype.visitAnother_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_application_role. +TSqlParserVisitor.prototype.visitAlter_application_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_application_role. +TSqlParserVisitor.prototype.visitCreate_application_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_aggregate. +TSqlParserVisitor.prototype.visitDrop_aggregate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_application_role. +TSqlParserVisitor.prototype.visitDrop_application_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly. +TSqlParserVisitor.prototype.visitAlter_assembly = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_start. +TSqlParserVisitor.prototype.visitAlter_assembly_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_from_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_from_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_from_clause_start. +TSqlParserVisitor.prototype.visitAlter_assembly_from_clause_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_drop_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_drop_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_drop_multiple_files. +TSqlParserVisitor.prototype.visitAlter_assembly_drop_multiple_files = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_drop. +TSqlParserVisitor.prototype.visitAlter_assembly_drop = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_add_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_add_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_asssembly_add_clause_start. +TSqlParserVisitor.prototype.visitAlter_asssembly_add_clause_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_client_file_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_client_file_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_file_name. +TSqlParserVisitor.prototype.visitAlter_assembly_file_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_file_bits. +TSqlParserVisitor.prototype.visitAlter_assembly_file_bits = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_as. +TSqlParserVisitor.prototype.visitAlter_assembly_as = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_with_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_with_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_with. +TSqlParserVisitor.prototype.visitAlter_assembly_with = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#client_assembly_specifier. +TSqlParserVisitor.prototype.visitClient_assembly_specifier = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#assembly_option. +TSqlParserVisitor.prototype.visitAssembly_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#network_file_share. +TSqlParserVisitor.prototype.visitNetwork_file_share = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#network_computer. +TSqlParserVisitor.prototype.visitNetwork_computer = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#network_file_start. +TSqlParserVisitor.prototype.visitNetwork_file_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_path. +TSqlParserVisitor.prototype.visitFile_path = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_directory_path_separator. +TSqlParserVisitor.prototype.visitFile_directory_path_separator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#local_file. +TSqlParserVisitor.prototype.visitLocal_file = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#local_drive. +TSqlParserVisitor.prototype.visitLocal_drive = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#multiple_local_files. +TSqlParserVisitor.prototype.visitMultiple_local_files = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#multiple_local_file_start. +TSqlParserVisitor.prototype.visitMultiple_local_file_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_assembly. +TSqlParserVisitor.prototype.visitCreate_assembly = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_assembly. +TSqlParserVisitor.prototype.visitDrop_assembly = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_asymmetric_key. +TSqlParserVisitor.prototype.visitAlter_asymmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_asymmetric_key_start. +TSqlParserVisitor.prototype.visitAlter_asymmetric_key_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#asymmetric_key_option. +TSqlParserVisitor.prototype.visitAsymmetric_key_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#asymmetric_key_option_start. +TSqlParserVisitor.prototype.visitAsymmetric_key_option_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#asymmetric_key_password_change_option. +TSqlParserVisitor.prototype.visitAsymmetric_key_password_change_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_asymmetric_key. +TSqlParserVisitor.prototype.visitCreate_asymmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_asymmetric_key. +TSqlParserVisitor.prototype.visitDrop_asymmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization. +TSqlParserVisitor.prototype.visitAlter_authorization = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#authorization_grantee. +TSqlParserVisitor.prototype.visitAuthorization_grantee = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#entity_to. +TSqlParserVisitor.prototype.visitEntity_to = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#colon_colon. +TSqlParserVisitor.prototype.visitColon_colon = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization_start. +TSqlParserVisitor.prototype.visitAlter_authorization_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization_for_sql_database. +TSqlParserVisitor.prototype.visitAlter_authorization_for_sql_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization_for_azure_dw. +TSqlParserVisitor.prototype.visitAlter_authorization_for_azure_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization_for_parallel_dw. +TSqlParserVisitor.prototype.visitAlter_authorization_for_parallel_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#class_type. +TSqlParserVisitor.prototype.visitClass_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#class_type_for_sql_database. +TSqlParserVisitor.prototype.visitClass_type_for_sql_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#class_type_for_azure_dw. +TSqlParserVisitor.prototype.visitClass_type_for_azure_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#class_type_for_parallel_dw. +TSqlParserVisitor.prototype.visitClass_type_for_parallel_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_availability_group. +TSqlParserVisitor.prototype.visitDrop_availability_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_availability_group. +TSqlParserVisitor.prototype.visitAlter_availability_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_availability_group_start. +TSqlParserVisitor.prototype.visitAlter_availability_group_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_availability_group_options. +TSqlParserVisitor.prototype.visitAlter_availability_group_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_broker_priority. +TSqlParserVisitor.prototype.visitCreate_or_alter_broker_priority = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_broker_priority. +TSqlParserVisitor.prototype.visitDrop_broker_priority = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_certificate. +TSqlParserVisitor.prototype.visitAlter_certificate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_column_encryption_key. +TSqlParserVisitor.prototype.visitAlter_column_encryption_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_column_encryption_key. +TSqlParserVisitor.prototype.visitCreate_column_encryption_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_certificate. +TSqlParserVisitor.prototype.visitDrop_certificate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_column_encryption_key. +TSqlParserVisitor.prototype.visitDrop_column_encryption_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_column_master_key. +TSqlParserVisitor.prototype.visitDrop_column_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_contract. +TSqlParserVisitor.prototype.visitDrop_contract = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_credential. +TSqlParserVisitor.prototype.visitDrop_credential = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_cryptograhic_provider. +TSqlParserVisitor.prototype.visitDrop_cryptograhic_provider = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_database. +TSqlParserVisitor.prototype.visitDrop_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_database_audit_specification. +TSqlParserVisitor.prototype.visitDrop_database_audit_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_database_scoped_credential. +TSqlParserVisitor.prototype.visitDrop_database_scoped_credential = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_default. +TSqlParserVisitor.prototype.visitDrop_default = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_endpoint. +TSqlParserVisitor.prototype.visitDrop_endpoint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_data_source. +TSqlParserVisitor.prototype.visitDrop_external_data_source = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_file_format. +TSqlParserVisitor.prototype.visitDrop_external_file_format = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_library. +TSqlParserVisitor.prototype.visitDrop_external_library = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_resource_pool. +TSqlParserVisitor.prototype.visitDrop_external_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_table. +TSqlParserVisitor.prototype.visitDrop_external_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_event_notifications. +TSqlParserVisitor.prototype.visitDrop_event_notifications = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_event_session. +TSqlParserVisitor.prototype.visitDrop_event_session = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_fulltext_catalog. +TSqlParserVisitor.prototype.visitDrop_fulltext_catalog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_fulltext_index. +TSqlParserVisitor.prototype.visitDrop_fulltext_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_fulltext_stoplist. +TSqlParserVisitor.prototype.visitDrop_fulltext_stoplist = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_login. +TSqlParserVisitor.prototype.visitDrop_login = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_master_key. +TSqlParserVisitor.prototype.visitDrop_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_message_type. +TSqlParserVisitor.prototype.visitDrop_message_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_partition_function. +TSqlParserVisitor.prototype.visitDrop_partition_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_partition_scheme. +TSqlParserVisitor.prototype.visitDrop_partition_scheme = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_queue. +TSqlParserVisitor.prototype.visitDrop_queue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_remote_service_binding. +TSqlParserVisitor.prototype.visitDrop_remote_service_binding = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_resource_pool. +TSqlParserVisitor.prototype.visitDrop_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_db_role. +TSqlParserVisitor.prototype.visitDrop_db_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_route. +TSqlParserVisitor.prototype.visitDrop_route = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_rule. +TSqlParserVisitor.prototype.visitDrop_rule = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_schema. +TSqlParserVisitor.prototype.visitDrop_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_search_property_list. +TSqlParserVisitor.prototype.visitDrop_search_property_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_security_policy. +TSqlParserVisitor.prototype.visitDrop_security_policy = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_sequence. +TSqlParserVisitor.prototype.visitDrop_sequence = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_server_audit. +TSqlParserVisitor.prototype.visitDrop_server_audit = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_server_audit_specification. +TSqlParserVisitor.prototype.visitDrop_server_audit_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_server_role. +TSqlParserVisitor.prototype.visitDrop_server_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_service. +TSqlParserVisitor.prototype.visitDrop_service = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_signature. +TSqlParserVisitor.prototype.visitDrop_signature = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_statistics_name_azure_dw_and_pdw. +TSqlParserVisitor.prototype.visitDrop_statistics_name_azure_dw_and_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_symmetric_key. +TSqlParserVisitor.prototype.visitDrop_symmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_synonym. +TSqlParserVisitor.prototype.visitDrop_synonym = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_user. +TSqlParserVisitor.prototype.visitDrop_user = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_workload_group. +TSqlParserVisitor.prototype.visitDrop_workload_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_xml_schema_collection. +TSqlParserVisitor.prototype.visitDrop_xml_schema_collection = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#disable_trigger. +TSqlParserVisitor.prototype.visitDisable_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#enable_trigger. +TSqlParserVisitor.prototype.visitEnable_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#lock_table. +TSqlParserVisitor.prototype.visitLock_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#truncate_table. +TSqlParserVisitor.prototype.visitTruncate_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_column_master_key. +TSqlParserVisitor.prototype.visitCreate_column_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_credential. +TSqlParserVisitor.prototype.visitAlter_credential = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_credential. +TSqlParserVisitor.prototype.visitCreate_credential = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_cryptographic_provider. +TSqlParserVisitor.prototype.visitAlter_cryptographic_provider = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_cryptographic_provider. +TSqlParserVisitor.prototype.visitCreate_cryptographic_provider = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_event_notification. +TSqlParserVisitor.prototype.visitCreate_event_notification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_event_session. +TSqlParserVisitor.prototype.visitCreate_or_alter_event_session = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#event_session_predicate_expression. +TSqlParserVisitor.prototype.visitEvent_session_predicate_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#event_session_predicate_factor. +TSqlParserVisitor.prototype.visitEvent_session_predicate_factor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#event_session_predicate_leaf. +TSqlParserVisitor.prototype.visitEvent_session_predicate_leaf = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_external_data_source. +TSqlParserVisitor.prototype.visitAlter_external_data_source = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_external_library. +TSqlParserVisitor.prototype.visitAlter_external_library = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_external_library. +TSqlParserVisitor.prototype.visitCreate_external_library = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_external_resource_pool. +TSqlParserVisitor.prototype.visitAlter_external_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_external_resource_pool. +TSqlParserVisitor.prototype.visitCreate_external_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_fulltext_catalog. +TSqlParserVisitor.prototype.visitAlter_fulltext_catalog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_fulltext_catalog. +TSqlParserVisitor.prototype.visitCreate_fulltext_catalog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_fulltext_stoplist. +TSqlParserVisitor.prototype.visitAlter_fulltext_stoplist = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_fulltext_stoplist. +TSqlParserVisitor.prototype.visitCreate_fulltext_stoplist = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_login_sql_server. +TSqlParserVisitor.prototype.visitAlter_login_sql_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_login_sql_server. +TSqlParserVisitor.prototype.visitCreate_login_sql_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_login_azure_sql. +TSqlParserVisitor.prototype.visitAlter_login_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_login_azure_sql. +TSqlParserVisitor.prototype.visitCreate_login_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_login_azure_sql_dw_and_pdw. +TSqlParserVisitor.prototype.visitAlter_login_azure_sql_dw_and_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_login_pdw. +TSqlParserVisitor.prototype.visitCreate_login_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_master_key_sql_server. +TSqlParserVisitor.prototype.visitAlter_master_key_sql_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_master_key_sql_server. +TSqlParserVisitor.prototype.visitCreate_master_key_sql_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_master_key_azure_sql. +TSqlParserVisitor.prototype.visitAlter_master_key_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_master_key_azure_sql. +TSqlParserVisitor.prototype.visitCreate_master_key_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_message_type. +TSqlParserVisitor.prototype.visitAlter_message_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_partition_function. +TSqlParserVisitor.prototype.visitAlter_partition_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_partition_scheme. +TSqlParserVisitor.prototype.visitAlter_partition_scheme = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_remote_service_binding. +TSqlParserVisitor.prototype.visitAlter_remote_service_binding = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_remote_service_binding. +TSqlParserVisitor.prototype.visitCreate_remote_service_binding = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_resource_pool. +TSqlParserVisitor.prototype.visitCreate_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_resource_governor. +TSqlParserVisitor.prototype.visitAlter_resource_governor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_db_role. +TSqlParserVisitor.prototype.visitAlter_db_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_db_role. +TSqlParserVisitor.prototype.visitCreate_db_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_route. +TSqlParserVisitor.prototype.visitCreate_route = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_rule. +TSqlParserVisitor.prototype.visitCreate_rule = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_schema_sql. +TSqlParserVisitor.prototype.visitAlter_schema_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_schema. +TSqlParserVisitor.prototype.visitCreate_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_schema_azure_sql_dw_and_pdw. +TSqlParserVisitor.prototype.visitCreate_schema_azure_sql_dw_and_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_schema_azure_sql_dw_and_pdw. +TSqlParserVisitor.prototype.visitAlter_schema_azure_sql_dw_and_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_search_property_list. +TSqlParserVisitor.prototype.visitCreate_search_property_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_security_policy. +TSqlParserVisitor.prototype.visitCreate_security_policy = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_sequence. +TSqlParserVisitor.prototype.visitAlter_sequence = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_sequence. +TSqlParserVisitor.prototype.visitCreate_sequence = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_audit. +TSqlParserVisitor.prototype.visitAlter_server_audit = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_server_audit. +TSqlParserVisitor.prototype.visitCreate_server_audit = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_audit_specification. +TSqlParserVisitor.prototype.visitAlter_server_audit_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_server_audit_specification. +TSqlParserVisitor.prototype.visitCreate_server_audit_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_configuration. +TSqlParserVisitor.prototype.visitAlter_server_configuration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_role. +TSqlParserVisitor.prototype.visitAlter_server_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_server_role. +TSqlParserVisitor.prototype.visitCreate_server_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_role_pdw. +TSqlParserVisitor.prototype.visitAlter_server_role_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_service. +TSqlParserVisitor.prototype.visitAlter_service = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_service. +TSqlParserVisitor.prototype.visitCreate_service = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_service_master_key. +TSqlParserVisitor.prototype.visitAlter_service_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_symmetric_key. +TSqlParserVisitor.prototype.visitAlter_symmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_symmetric_key. +TSqlParserVisitor.prototype.visitCreate_symmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_synonym. +TSqlParserVisitor.prototype.visitCreate_synonym = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_user. +TSqlParserVisitor.prototype.visitAlter_user = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_user. +TSqlParserVisitor.prototype.visitCreate_user = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_user_azure_sql_dw. +TSqlParserVisitor.prototype.visitCreate_user_azure_sql_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_user_azure_sql. +TSqlParserVisitor.prototype.visitAlter_user_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_workload_group. +TSqlParserVisitor.prototype.visitAlter_workload_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_workload_group. +TSqlParserVisitor.prototype.visitCreate_workload_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_xml_schema_collection. +TSqlParserVisitor.prototype.visitCreate_xml_schema_collection = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_queue. +TSqlParserVisitor.prototype.visitCreate_queue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#queue_settings. +TSqlParserVisitor.prototype.visitQueue_settings = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_queue. +TSqlParserVisitor.prototype.visitAlter_queue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#queue_action. +TSqlParserVisitor.prototype.visitQueue_action = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#queue_rebuild_options. +TSqlParserVisitor.prototype.visitQueue_rebuild_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_contract. +TSqlParserVisitor.prototype.visitCreate_contract = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#conversation_statement. +TSqlParserVisitor.prototype.visitConversation_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#message_statement. +TSqlParserVisitor.prototype.visitMessage_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#merge_statement. +TSqlParserVisitor.prototype.visitMerge_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#merge_matched. +TSqlParserVisitor.prototype.visitMerge_matched = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#merge_not_matched. +TSqlParserVisitor.prototype.visitMerge_not_matched = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#delete_statement. +TSqlParserVisitor.prototype.visitDelete_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#delete_statement_from. +TSqlParserVisitor.prototype.visitDelete_statement_from = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#insert_statement. +TSqlParserVisitor.prototype.visitInsert_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#insert_statement_value. +TSqlParserVisitor.prototype.visitInsert_statement_value = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#receive_statement. +TSqlParserVisitor.prototype.visitReceive_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#select_statement. +TSqlParserVisitor.prototype.visitSelect_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#time. +TSqlParserVisitor.prototype.visitTime = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#update_statement. +TSqlParserVisitor.prototype.visitUpdate_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#output_clause. +TSqlParserVisitor.prototype.visitOutput_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#output_dml_list_elem. +TSqlParserVisitor.prototype.visitOutput_dml_list_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#output_column_name. +TSqlParserVisitor.prototype.visitOutput_column_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_database. +TSqlParserVisitor.prototype.visitCreate_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_index. +TSqlParserVisitor.prototype.visitCreate_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_procedure. +TSqlParserVisitor.prototype.visitCreate_or_alter_procedure = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_trigger. +TSqlParserVisitor.prototype.visitCreate_or_alter_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_dml_trigger. +TSqlParserVisitor.prototype.visitCreate_or_alter_dml_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dml_trigger_option. +TSqlParserVisitor.prototype.visitDml_trigger_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dml_trigger_operation. +TSqlParserVisitor.prototype.visitDml_trigger_operation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_ddl_trigger. +TSqlParserVisitor.prototype.visitCreate_or_alter_ddl_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ddl_trigger_operation. +TSqlParserVisitor.prototype.visitDdl_trigger_operation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_function. +TSqlParserVisitor.prototype.visitCreate_or_alter_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_body_returns_select. +TSqlParserVisitor.prototype.visitFunc_body_returns_select = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_body_returns_table. +TSqlParserVisitor.prototype.visitFunc_body_returns_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_body_returns_scalar. +TSqlParserVisitor.prototype.visitFunc_body_returns_scalar = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#procedure_param. +TSqlParserVisitor.prototype.visitProcedure_param = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#procedure_option. +TSqlParserVisitor.prototype.visitProcedure_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#function_option. +TSqlParserVisitor.prototype.visitFunction_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_statistics. +TSqlParserVisitor.prototype.visitCreate_statistics = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#update_statistics. +TSqlParserVisitor.prototype.visitUpdate_statistics = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_table. +TSqlParserVisitor.prototype.visitCreate_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_options. +TSqlParserVisitor.prototype.visitTable_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_view. +TSqlParserVisitor.prototype.visitCreate_view = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#view_attribute. +TSqlParserVisitor.prototype.visitView_attribute = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_table. +TSqlParserVisitor.prototype.visitAlter_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_database. +TSqlParserVisitor.prototype.visitAlter_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#database_optionspec. +TSqlParserVisitor.prototype.visitDatabase_optionspec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#auto_option. +TSqlParserVisitor.prototype.visitAuto_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#change_tracking_option. +TSqlParserVisitor.prototype.visitChange_tracking_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#change_tracking_option_list. +TSqlParserVisitor.prototype.visitChange_tracking_option_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#containment_option. +TSqlParserVisitor.prototype.visitContainment_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#cursor_option. +TSqlParserVisitor.prototype.visitCursor_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_endpoint. +TSqlParserVisitor.prototype.visitAlter_endpoint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#database_mirroring_option. +TSqlParserVisitor.prototype.visitDatabase_mirroring_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mirroring_set_option. +TSqlParserVisitor.prototype.visitMirroring_set_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mirroring_partner. +TSqlParserVisitor.prototype.visitMirroring_partner = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mirroring_witness. +TSqlParserVisitor.prototype.visitMirroring_witness = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#witness_partner_equal. +TSqlParserVisitor.prototype.visitWitness_partner_equal = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#partner_option. +TSqlParserVisitor.prototype.visitPartner_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#witness_option. +TSqlParserVisitor.prototype.visitWitness_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#witness_server. +TSqlParserVisitor.prototype.visitWitness_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#partner_server. +TSqlParserVisitor.prototype.visitPartner_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mirroring_host_port_seperator. +TSqlParserVisitor.prototype.visitMirroring_host_port_seperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#partner_server_tcp_prefix. +TSqlParserVisitor.prototype.visitPartner_server_tcp_prefix = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#port_number. +TSqlParserVisitor.prototype.visitPort_number = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#host. +TSqlParserVisitor.prototype.visitHost = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#date_correlation_optimization_option. +TSqlParserVisitor.prototype.visitDate_correlation_optimization_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#db_encryption_option. +TSqlParserVisitor.prototype.visitDb_encryption_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#db_state_option. +TSqlParserVisitor.prototype.visitDb_state_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#db_update_option. +TSqlParserVisitor.prototype.visitDb_update_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#db_user_access_option. +TSqlParserVisitor.prototype.visitDb_user_access_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#delayed_durability_option. +TSqlParserVisitor.prototype.visitDelayed_durability_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#external_access_option. +TSqlParserVisitor.prototype.visitExternal_access_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#hadr_options. +TSqlParserVisitor.prototype.visitHadr_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mixed_page_allocation_option. +TSqlParserVisitor.prototype.visitMixed_page_allocation_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#parameterization_option. +TSqlParserVisitor.prototype.visitParameterization_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#recovery_option. +TSqlParserVisitor.prototype.visitRecovery_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#service_broker_option. +TSqlParserVisitor.prototype.visitService_broker_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#snapshot_option. +TSqlParserVisitor.prototype.visitSnapshot_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sql_option. +TSqlParserVisitor.prototype.visitSql_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#target_recovery_time_option. +TSqlParserVisitor.prototype.visitTarget_recovery_time_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#termination. +TSqlParserVisitor.prototype.visitTermination = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_index. +TSqlParserVisitor.prototype.visitDrop_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_relational_or_xml_or_spatial_index. +TSqlParserVisitor.prototype.visitDrop_relational_or_xml_or_spatial_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_backward_compatible_index. +TSqlParserVisitor.prototype.visitDrop_backward_compatible_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_procedure. +TSqlParserVisitor.prototype.visitDrop_procedure = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_trigger. +TSqlParserVisitor.prototype.visitDrop_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_dml_trigger. +TSqlParserVisitor.prototype.visitDrop_dml_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_ddl_trigger. +TSqlParserVisitor.prototype.visitDrop_ddl_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_function. +TSqlParserVisitor.prototype.visitDrop_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_statistics. +TSqlParserVisitor.prototype.visitDrop_statistics = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_table. +TSqlParserVisitor.prototype.visitDrop_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_view. +TSqlParserVisitor.prototype.visitDrop_view = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_type. +TSqlParserVisitor.prototype.visitCreate_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_type. +TSqlParserVisitor.prototype.visitDrop_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#rowset_function_limited. +TSqlParserVisitor.prototype.visitRowset_function_limited = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#openquery. +TSqlParserVisitor.prototype.visitOpenquery = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#opendatasource. +TSqlParserVisitor.prototype.visitOpendatasource = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_statement. +TSqlParserVisitor.prototype.visitDeclare_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#cursor_statement. +TSqlParserVisitor.prototype.visitCursor_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_database. +TSqlParserVisitor.prototype.visitBackup_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_log. +TSqlParserVisitor.prototype.visitBackup_log = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_certificate. +TSqlParserVisitor.prototype.visitBackup_certificate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_master_key. +TSqlParserVisitor.prototype.visitBackup_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_service_master_key. +TSqlParserVisitor.prototype.visitBackup_service_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#kill_statement. +TSqlParserVisitor.prototype.visitKill_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#kill_process. +TSqlParserVisitor.prototype.visitKill_process = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#kill_query_notification. +TSqlParserVisitor.prototype.visitKill_query_notification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#kill_stats_job. +TSqlParserVisitor.prototype.visitKill_stats_job = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_statement. +TSqlParserVisitor.prototype.visitExecute_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_body. +TSqlParserVisitor.prototype.visitExecute_body = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_statement_arg. +TSqlParserVisitor.prototype.visitExecute_statement_arg = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_var_string. +TSqlParserVisitor.prototype.visitExecute_var_string = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#security_statement. +TSqlParserVisitor.prototype.visitSecurity_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_certificate. +TSqlParserVisitor.prototype.visitCreate_certificate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#existing_keys. +TSqlParserVisitor.prototype.visitExisting_keys = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#private_key_options. +TSqlParserVisitor.prototype.visitPrivate_key_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#generate_new_keys. +TSqlParserVisitor.prototype.visitGenerate_new_keys = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#date_options. +TSqlParserVisitor.prototype.visitDate_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#open_key. +TSqlParserVisitor.prototype.visitOpen_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#close_key. +TSqlParserVisitor.prototype.visitClose_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_key. +TSqlParserVisitor.prototype.visitCreate_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#key_options. +TSqlParserVisitor.prototype.visitKey_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#algorithm. +TSqlParserVisitor.prototype.visitAlgorithm = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#encryption_mechanism. +TSqlParserVisitor.prototype.visitEncryption_mechanism = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#decryption_mechanism. +TSqlParserVisitor.prototype.visitDecryption_mechanism = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#grant_permission. +TSqlParserVisitor.prototype.visitGrant_permission = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#set_statement. +TSqlParserVisitor.prototype.visitSet_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#transaction_statement. +TSqlParserVisitor.prototype.visitTransaction_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#go_statement. +TSqlParserVisitor.prototype.visitGo_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#use_statement. +TSqlParserVisitor.prototype.visitUse_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#setuser_statement. +TSqlParserVisitor.prototype.visitSetuser_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#reconfigure_statement. +TSqlParserVisitor.prototype.visitReconfigure_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#shutdown_statement. +TSqlParserVisitor.prototype.visitShutdown_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dbcc_clause. +TSqlParserVisitor.prototype.visitDbcc_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dbcc_options. +TSqlParserVisitor.prototype.visitDbcc_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_clause. +TSqlParserVisitor.prototype.visitExecute_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_local. +TSqlParserVisitor.prototype.visitDeclare_local = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_type_definition. +TSqlParserVisitor.prototype.visitTable_type_definition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#xml_type_definition. +TSqlParserVisitor.prototype.visitXml_type_definition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#xml_schema_collection. +TSqlParserVisitor.prototype.visitXml_schema_collection = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_def_table_constraints. +TSqlParserVisitor.prototype.visitColumn_def_table_constraints = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_def_table_constraint. +TSqlParserVisitor.prototype.visitColumn_def_table_constraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_definition. +TSqlParserVisitor.prototype.visitColumn_definition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#materialized_column_definition. +TSqlParserVisitor.prototype.visitMaterialized_column_definition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_constraint. +TSqlParserVisitor.prototype.visitColumn_constraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_constraint. +TSqlParserVisitor.prototype.visitTable_constraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#on_delete. +TSqlParserVisitor.prototype.visitOn_delete = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#on_update. +TSqlParserVisitor.prototype.visitOn_update = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#index_options. +TSqlParserVisitor.prototype.visitIndex_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#index_option. +TSqlParserVisitor.prototype.visitIndex_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_cursor. +TSqlParserVisitor.prototype.visitDeclare_cursor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_set_cursor_common. +TSqlParserVisitor.prototype.visitDeclare_set_cursor_common = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_set_cursor_common_partial. +TSqlParserVisitor.prototype.visitDeclare_set_cursor_common_partial = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#fetch_cursor. +TSqlParserVisitor.prototype.visitFetch_cursor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#set_special. +TSqlParserVisitor.prototype.visitSet_special = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#constant_LOCAL_ID. +TSqlParserVisitor.prototype.visitConstant_LOCAL_ID = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#expression. +TSqlParserVisitor.prototype.visitExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#primitive_expression. +TSqlParserVisitor.prototype.visitPrimitive_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#case_expression. +TSqlParserVisitor.prototype.visitCase_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#unary_operator_expression. +TSqlParserVisitor.prototype.visitUnary_operator_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#bracket_expression. +TSqlParserVisitor.prototype.visitBracket_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#constant_expression. +TSqlParserVisitor.prototype.visitConstant_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#subquery. +TSqlParserVisitor.prototype.visitSubquery = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#with_expression. +TSqlParserVisitor.prototype.visitWith_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#common_table_expression. +TSqlParserVisitor.prototype.visitCommon_table_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#update_elem. +TSqlParserVisitor.prototype.visitUpdate_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#search_condition_list. +TSqlParserVisitor.prototype.visitSearch_condition_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#search_condition. +TSqlParserVisitor.prototype.visitSearch_condition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#search_condition_and. +TSqlParserVisitor.prototype.visitSearch_condition_and = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#search_condition_not. +TSqlParserVisitor.prototype.visitSearch_condition_not = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#predicate. +TSqlParserVisitor.prototype.visitPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#query_expression. +TSqlParserVisitor.prototype.visitQuery_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sql_union. +TSqlParserVisitor.prototype.visitSql_union = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#query_specification. +TSqlParserVisitor.prototype.visitQuery_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#top_clause. +TSqlParserVisitor.prototype.visitTop_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#top_percent. +TSqlParserVisitor.prototype.visitTop_percent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#top_count. +TSqlParserVisitor.prototype.visitTop_count = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#order_by_clause. +TSqlParserVisitor.prototype.visitOrder_by_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#for_clause. +TSqlParserVisitor.prototype.visitFor_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#xml_common_directives. +TSqlParserVisitor.prototype.visitXml_common_directives = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#order_by_expression. +TSqlParserVisitor.prototype.visitOrder_by_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#group_by_item. +TSqlParserVisitor.prototype.visitGroup_by_item = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#option_clause. +TSqlParserVisitor.prototype.visitOption_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#option. +TSqlParserVisitor.prototype.visitOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#optimize_for_arg. +TSqlParserVisitor.prototype.visitOptimize_for_arg = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#select_list. +TSqlParserVisitor.prototype.visitSelect_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#udt_method_arguments. +TSqlParserVisitor.prototype.visitUdt_method_arguments = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#asterisk. +TSqlParserVisitor.prototype.visitAsterisk = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_elem. +TSqlParserVisitor.prototype.visitColumn_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#udt_elem. +TSqlParserVisitor.prototype.visitUdt_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#expression_elem. +TSqlParserVisitor.prototype.visitExpression_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#select_list_elem. +TSqlParserVisitor.prototype.visitSelect_list_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_sources. +TSqlParserVisitor.prototype.visitTable_sources = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_source. +TSqlParserVisitor.prototype.visitTable_source = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_source_item_joined. +TSqlParserVisitor.prototype.visitTable_source_item_joined = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_source_item. +TSqlParserVisitor.prototype.visitTable_source_item = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#open_xml. +TSqlParserVisitor.prototype.visitOpen_xml = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#schema_declaration. +TSqlParserVisitor.prototype.visitSchema_declaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_declaration. +TSqlParserVisitor.prototype.visitColumn_declaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#change_table. +TSqlParserVisitor.prototype.visitChange_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#join_part. +TSqlParserVisitor.prototype.visitJoin_part = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#pivot_clause. +TSqlParserVisitor.prototype.visitPivot_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#unpivot_clause. +TSqlParserVisitor.prototype.visitUnpivot_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#full_column_name_list. +TSqlParserVisitor.prototype.visitFull_column_name_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_name_with_hint. +TSqlParserVisitor.prototype.visitTable_name_with_hint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#rowset_function. +TSqlParserVisitor.prototype.visitRowset_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#bulk_option. +TSqlParserVisitor.prototype.visitBulk_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#derived_table. +TSqlParserVisitor.prototype.visitDerived_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#BINARY_CHECKSUM. +TSqlParserVisitor.prototype.visitBINARY_CHECKSUM = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CAST. +TSqlParserVisitor.prototype.visitCAST = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CONVERT. +TSqlParserVisitor.prototype.visitCONVERT = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CHECKSUM. +TSqlParserVisitor.prototype.visitCHECKSUM = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#COALESCE. +TSqlParserVisitor.prototype.visitCOALESCE = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CURRENT_TIMESTAMP. +TSqlParserVisitor.prototype.visitCURRENT_TIMESTAMP = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CURRENT_USER. +TSqlParserVisitor.prototype.visitCURRENT_USER = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#DATEADD. +TSqlParserVisitor.prototype.visitDATEADD = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#DATEDIFF. +TSqlParserVisitor.prototype.visitDATEDIFF = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#DATENAME. +TSqlParserVisitor.prototype.visitDATENAME = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#DATEPART. +TSqlParserVisitor.prototype.visitDATEPART = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#GETDATE. +TSqlParserVisitor.prototype.visitGETDATE = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#GETUTCDATE. +TSqlParserVisitor.prototype.visitGETUTCDATE = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#IDENTITY. +TSqlParserVisitor.prototype.visitIDENTITY = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#MIN_ACTIVE_ROWVERSION. +TSqlParserVisitor.prototype.visitMIN_ACTIVE_ROWVERSION = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#NULLIF. +TSqlParserVisitor.prototype.visitNULLIF = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#STUFF. +TSqlParserVisitor.prototype.visitSTUFF = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#SESSION_USER. +TSqlParserVisitor.prototype.visitSESSION_USER = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#SYSTEM_USER. +TSqlParserVisitor.prototype.visitSYSTEM_USER = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ISNULL. +TSqlParserVisitor.prototype.visitISNULL = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#XML_DATA_TYPE_FUNC. +TSqlParserVisitor.prototype.visitXML_DATA_TYPE_FUNC = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#IFF. +TSqlParserVisitor.prototype.visitIFF = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#RANKING_WINDOWED_FUNC. +TSqlParserVisitor.prototype.visitRANKING_WINDOWED_FUNC = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#AGGREGATE_WINDOWED_FUNC. +TSqlParserVisitor.prototype.visitAGGREGATE_WINDOWED_FUNC = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ANALYTIC_WINDOWED_FUNC. +TSqlParserVisitor.prototype.visitANALYTIC_WINDOWED_FUNC = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#SCALAR_FUNCTION. +TSqlParserVisitor.prototype.visitSCALAR_FUNCTION = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#STRINGAGG. +TSqlParserVisitor.prototype.visitSTRINGAGG = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#xml_data_type_methods. +TSqlParserVisitor.prototype.visitXml_data_type_methods = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#value_method. +TSqlParserVisitor.prototype.visitValue_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#query_method. +TSqlParserVisitor.prototype.visitQuery_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#exist_method. +TSqlParserVisitor.prototype.visitExist_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#modify_method. +TSqlParserVisitor.prototype.visitModify_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#nodes_method. +TSqlParserVisitor.prototype.visitNodes_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#switch_section. +TSqlParserVisitor.prototype.visitSwitch_section = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#switch_search_condition_section. +TSqlParserVisitor.prototype.visitSwitch_search_condition_section = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#as_column_alias. +TSqlParserVisitor.prototype.visitAs_column_alias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#as_table_alias. +TSqlParserVisitor.prototype.visitAs_table_alias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_alias. +TSqlParserVisitor.prototype.visitTable_alias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#with_table_hints. +TSqlParserVisitor.prototype.visitWith_table_hints = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#insert_with_table_hints. +TSqlParserVisitor.prototype.visitInsert_with_table_hints = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_hint. +TSqlParserVisitor.prototype.visitTable_hint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#index_value. +TSqlParserVisitor.prototype.visitIndex_value = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_alias_list. +TSqlParserVisitor.prototype.visitColumn_alias_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_alias. +TSqlParserVisitor.prototype.visitColumn_alias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_value_constructor. +TSqlParserVisitor.prototype.visitTable_value_constructor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#expression_list. +TSqlParserVisitor.prototype.visitExpression_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ranking_windowed_function. +TSqlParserVisitor.prototype.visitRanking_windowed_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#aggregate_windowed_function. +TSqlParserVisitor.prototype.visitAggregate_windowed_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#analytic_windowed_function. +TSqlParserVisitor.prototype.visitAnalytic_windowed_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#all_distinct_expression. +TSqlParserVisitor.prototype.visitAll_distinct_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#over_clause. +TSqlParserVisitor.prototype.visitOver_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#row_or_range_clause. +TSqlParserVisitor.prototype.visitRow_or_range_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#window_frame_extent. +TSqlParserVisitor.prototype.visitWindow_frame_extent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#window_frame_bound. +TSqlParserVisitor.prototype.visitWindow_frame_bound = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#window_frame_preceding. +TSqlParserVisitor.prototype.visitWindow_frame_preceding = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#window_frame_following. +TSqlParserVisitor.prototype.visitWindow_frame_following = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_database_option. +TSqlParserVisitor.prototype.visitCreate_database_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#database_filestream_option. +TSqlParserVisitor.prototype.visitDatabase_filestream_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#database_file_spec. +TSqlParserVisitor.prototype.visitDatabase_file_spec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_group. +TSqlParserVisitor.prototype.visitFile_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_spec. +TSqlParserVisitor.prototype.visitFile_spec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#entity_name. +TSqlParserVisitor.prototype.visitEntity_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#entity_name_for_azure_dw. +TSqlParserVisitor.prototype.visitEntity_name_for_azure_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#entity_name_for_parallel_dw. +TSqlParserVisitor.prototype.visitEntity_name_for_parallel_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#full_table_name. +TSqlParserVisitor.prototype.visitFull_table_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_name. +TSqlParserVisitor.prototype.visitTable_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#simple_name. +TSqlParserVisitor.prototype.visitSimple_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_proc_name_schema. +TSqlParserVisitor.prototype.visitFunc_proc_name_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_proc_name_database_schema. +TSqlParserVisitor.prototype.visitFunc_proc_name_database_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_proc_name_server_database_schema. +TSqlParserVisitor.prototype.visitFunc_proc_name_server_database_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ddl_object. +TSqlParserVisitor.prototype.visitDdl_object = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#full_column_name. +TSqlParserVisitor.prototype.visitFull_column_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_name_list_with_order. +TSqlParserVisitor.prototype.visitColumn_name_list_with_order = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_name_list. +TSqlParserVisitor.prototype.visitColumn_name_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#cursor_name. +TSqlParserVisitor.prototype.visitCursor_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#on_off. +TSqlParserVisitor.prototype.visitOn_off = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#clustered. +TSqlParserVisitor.prototype.visitClustered = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#null_notnull. +TSqlParserVisitor.prototype.visitNull_notnull = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#null_or_default. +TSqlParserVisitor.prototype.visitNull_or_default = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#scalar_function_name. +TSqlParserVisitor.prototype.visitScalar_function_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#begin_conversation_timer. +TSqlParserVisitor.prototype.visitBegin_conversation_timer = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#begin_conversation_dialog. +TSqlParserVisitor.prototype.visitBegin_conversation_dialog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#contract_name. +TSqlParserVisitor.prototype.visitContract_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#service_name. +TSqlParserVisitor.prototype.visitService_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#end_conversation. +TSqlParserVisitor.prototype.visitEnd_conversation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#waitfor_conversation. +TSqlParserVisitor.prototype.visitWaitfor_conversation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#get_conversation. +TSqlParserVisitor.prototype.visitGet_conversation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#queue_id. +TSqlParserVisitor.prototype.visitQueue_id = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#send_conversation. +TSqlParserVisitor.prototype.visitSend_conversation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#data_type. +TSqlParserVisitor.prototype.visitData_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#default_value. +TSqlParserVisitor.prototype.visitDefault_value = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#constant. +TSqlParserVisitor.prototype.visitConstant = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sign. +TSqlParserVisitor.prototype.visitSign = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#id. +TSqlParserVisitor.prototype.visitId = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#simple_id. +TSqlParserVisitor.prototype.visitSimple_id = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#comparison_operator. +TSqlParserVisitor.prototype.visitComparison_operator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#assignment_operator. +TSqlParserVisitor.prototype.visitAssignment_operator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_size. +TSqlParserVisitor.prototype.visitFile_size = function(ctx) { + return this.visitChildren(ctx); +}; + + + +exports.TSqlParserVisitor = TSqlParserVisitor; \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 78af915..2e2bc2c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,2 @@ -import * as parser from "./lib/parser"; -import * as filter from "./lib/filter"; -import flinksqlParser from './lib/flinkParser'; - -export { - parser, - filter, - flinksqlParser -}; \ No newline at end of file +export * from './core'; +export * from './utils'; diff --git a/src/jison/autocomplete_footer.jison b/src/jison/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/autocomplete_header.jison b/src/jison/autocomplete_header.jison deleted file mode 100644 index 8ad0466..0000000 --- a/src/jison/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'ILIKE' 'IREGEXP' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% \ No newline at end of file diff --git a/src/jison/globalSearchParser.jison b/src/jison/globalSearchParser.jison deleted file mode 100644 index 15a1bdf..0000000 --- a/src/jison/globalSearchParser.jison +++ /dev/null @@ -1,179 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%lex -%x singleQuote doubleQuote -%% - -\s+ { return 'WS' } - -'\u2020' { parser.yy.cursorFound = yylloc; return 'CURSOR'; } - -[a-zA-Z]+[:] { return 'FACET' } - -\' { this.begin('singleQuote'); return 'QUOTE'; } - -(?:\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } - -\' { this.popState(); return 'QUOTE'; } - -\" { this.begin('doubleQuote'); return 'QUOTE'; } - -(?:\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } - -\" { this.popState(); return 'QUOTE'; } - -[^"'\s\u2020]+ { return 'TEXT'; } - -<> { return 'EOF'; } - -/lex - -%start GlobalSearchAutocomplete - -%% - -GlobalSearchAutocomplete - : OptionalWhitespace SearchParts OptionalWhitespace 'EOF' - { - return $2; - } - | OptionalWhitespace SearchParts_EDIT 'EOF' - { - if (!$2.facets) { - $2.facets = {}; - } - if (!$2.text) { - $2.text = []; - } - return $2; - } - | OptionalWhitespace 'EOF' - { - return { facets: {}, text: [] }; - } - ; - -SearchParts - : SearchPart - | SearchParts WS SearchPart - { - parser.mergeFacets($1, $3); - parser.mergeText($1, $3); - } - ; - -SearchParts_EDIT - : SearchPart_EDIT - | SearchParts WS SearchPart_EDIT - { - parser.mergeFacets($1, $3); - parser.mergeText($1, $3); - $$ = $3; - $$.text = $1.text; - $$.facets = $1.facets; - } - | SearchPart_EDIT WS SearchParts - { - $$ = $1; - parser.mergeFacets($$, $3); - parser.mergeText($$, $3); - } - | SearchParts WS SearchPart_EDIT WS SearchParts - { - parser.mergeFacets($1, $3); - parser.mergeFacets($1, $5); - parser.mergeText($1, $3); - parser.mergeText($1, $5); - $$ = $3; - $$.text = $1.text; - $$.facets = $1.facets; - } - ; - -SearchPart - : Facet --> { text: [], facets: $1.facets } - | FreeText --> { text: [$1], facets: {} } - ; - -SearchPart_EDIT - : Facet_EDIT - | FreeText_EDIT - ; - -Facet - : 'FACET' OptionalWhitespace FreeText - { - var facet = {}; - var facetName = $1.substring(0, $1.length - 1).toLowerCase(); - facet[facetName] = {}; - facet[facetName][$3.toLowerCase()] = true; - $$ = { facets: facet }; - } - ; - -Facet_EDIT - : 'FACET' OptionalWhitespace 'CURSOR' --> { suggestFacetValues: $1.substring(0, $1.length - 1).toLowerCase() } - | 'FACET' OptionalWhitespace FreeText 'CURSOR' - { - var facet = {}; - var facetName = $1.substring(0, $1.length - 1).toLowerCase(); - facet[facetName] = {}; - facet[facetName][$3.toLowerCase()] = true; - $$ = { suggestFacetValues: facetName, facets: facet } - } - ; - -FreeText - : 'TEXT' - | QuotedValue - ; - -FreeText_EDIT - : 'CURSOR' --> { suggestFacets: true, suggestResults: true } - | 'CURSOR' 'TEXT' --> { suggestFacets: true, suggestResults: true, text: [$2] } - | 'TEXT' 'CURSOR' 'TEXT' --> { suggestFacets: true, suggestResults: true, text: [$1+$3] } - | 'TEXT' 'CURSOR' --> { suggestFacets: true, suggestResults: true, text: [$1] } - | QuotedValue_EDIT - ; - -QuotedValue - : 'QUOTE' 'VALUE' 'QUOTE' --> $2 - | 'QUOTE' 'QUOTE' --> '' - ; - -QuotedValue_EDIT - : 'QUOTE' 'PARTIAL_VALUE' --> $2 - ; - -OptionalWhitespace - : - | WS - ; - -%% - -SqlParseSupport.initGlobalSearchParser(parser); \ No newline at end of file diff --git a/src/jison/solrFormulaParser.jison b/src/jison/solrFormulaParser.jison deleted file mode 100644 index 5f4ce3b..0000000 --- a/src/jison/solrFormulaParser.jison +++ /dev/null @@ -1,265 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%lex -%options case-insensitive -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.cursorFound = yylloc; return 'CURSOR'; } - -[0-9]+(?:[,.][0-9]+)? { return 'NUMBER'; } - -'-' { return '-'; } -'+' { return '+'; } -'*' { return '*'; } -'/' { return '/'; } - -[a-z]+\s*\( { - yy.lexer.unput('('); - parser.addFunctionLocation({ - first_line: yylloc.first_line, - first_column: yylloc.first_column, - last_line: yylloc.first_line, - last_column: yylloc.first_column + yytext.trim().length - }, yytext.trim()); - return 'FUNCTION'; - } - -',' { return ','; } -'(' { return '('; } -')' { return ')'; } - -<> { return 'EOF'; } - -[^\s\u2020()]+ { parser.addFieldLocation(yylloc, yytext); return 'IDENTIFIER'; } - -/lex - -%left '+' '-' -%left '*' '/' - -%start SolrFormulaAutocomplete - -%% - -SolrFormulaAutocomplete - : SolrFormula 'EOF' - { - return { - parsedValue: $1 - }; - } - | SolrFormula_EDIT 'EOF' - { - return $1 - } - | 'CURSOR' 'EOF' - { - return { suggestAggregateFunctions: true } - } - ; - -SolrFormula - : NonParenthesizedSolrFormula - | '(' NonParenthesizedSolrFormula ')' -> $1 + $2 + $3 - ; - -SolrFormula_EDIT - : NonParenthesizedSolrFormula_EDIT - | '(' NonParenthesizedSolrFormula_EDIT RightParenthesisOrError --> $2 - ; - -NonParenthesizedSolrFormula - : 'NUMBER' - | 'IDENTIFIER' - | 'FUNCTION' '(' ArgumentList ')' -> $1 + $2 + $3 + $4 - | SolrFormula '+' SolrFormula -> 'sum(' + $1 + ',' + $3 + ')' - | SolrFormula '-' SolrFormula -> 'sub(' + $1 + ',' + $3 + ')' - | SolrFormula '*' SolrFormula -> 'mul(' + $1 + ',' + $3 + ')' - | SolrFormula '/' SolrFormula -> 'div(' + $1 + ',' + $3 + ')' - | '-' SolrFormula -> 'sub(0,' + $2 + ')' - ; - -NonParenthesizedSolrFormula_EDIT - : 'NUMBER' 'CURSOR' --> { suggestOperators: true } - | 'IDENTIFIER' 'CURSOR' --> { suggestOperators: true } - | 'CURSOR' 'NUMBER' --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | 'CURSOR' 'IDENTIFIER' --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - ; - -NonParenthesizedSolrFormula_EDIT - : 'FUNCTION' '(' 'CURSOR' RightParenthesisOrError --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | 'FUNCTION' '(' ArgumentList_EDIT RightParenthesisOrError --> $3 - | 'FUNCTION' '(' ArgumentList ')' 'CURSOR' --> { suggestOperators: true } - ; - -NonParenthesizedSolrFormula_EDIT - : SolrFormula '+' 'CURSOR' --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | 'CURSOR' '+' SolrFormula --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | SolrFormula_EDIT '+' SolrFormula --> $1 - | SolrFormula '+' SolrFormula_EDIT --> $3 - ; - -NonParenthesizedSolrFormula_EDIT - : SolrFormula '-' 'CURSOR' --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | 'CURSOR' '-' SolrFormula --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | SolrFormula_EDIT '-' SolrFormula --> $1 - | SolrFormula '-' SolrFormula_EDIT --> $3 - ; - -NonParenthesizedSolrFormula_EDIT - : SolrFormula '*' 'CURSOR' --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | 'CURSOR' '*' SolrFormula --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | SolrFormula_EDIT '*' SolrFormula --> $1 - | SolrFormula '*' SolrFormula_EDIT --> $3 - ; - -NonParenthesizedSolrFormula_EDIT - : SolrFormula '/' 'CURSOR' --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | 'CURSOR' '/' SolrFormula --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | SolrFormula_EDIT '/' SolrFormula --> $1 - | SolrFormula '/' SolrFormula_EDIT --> $3 - ; - -NonParenthesizedSolrFormula_EDIT - : '-' 'CURSOR' --> { suggestAggregateFunctions: true, suggestFunctions: true, suggestFields: true } - | '-' SolrFormula_EDIT --> $2 - ; - -ArgumentList - : SolrFormula - | ArgumentList ',' SolrFormula - ; - -ArgumentList_EDIT - : SolrFormula_EDIT - | ArgumentList ',' SolrFormula_EDIT --> $3 - | SolrFormula_EDIT ',' ArgumentList - | ArgumentList ',' SolrFormula_EDIT ',' ArgumentList --> $3 - ; - - -RightParenthesisOrError - : ')' - | error - ; - -%% - -parser.yy.parseError = function () { return false; } - -parser.identifyPartials = function (beforeCursor, afterCursor) { - var beforeMatch = beforeCursor.match(/[^()-*+/,\s]*$/); - var afterMatch = afterCursor.match(/^[^()-*+/,\s]*/); - return {left: beforeMatch ? beforeMatch[0].length : 0, right: afterMatch ? afterMatch[0].length : 0}; -}; - -var adjustLocationForCursor = function (location) { - // columns are 0-based and lines not, so add 1 to cols - var newLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - if (parser.yy.cursorFound) { - if (parser.yy.cursorFound.first_line === newLocation.first_line && parser.yy.cursorFound.last_column <= newLocation.first_column) { - var additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. - newLocation.first_column = newLocation.first_column + additionalSpace; - newLocation.last_column = newLocation.last_column + additionalSpace; - } - } - return newLocation; -}; - -parser.addFunctionLocation = function (location, name) { - parser.yy.locations.push({ type: 'function', name: name, location: adjustLocationForCursor(location) }); -} - -parser.addFieldLocation = function (location, name) { - parser.yy.locations.push({ type: 'field', name: name, location: adjustLocationForCursor(location) }); -} - -parser.parseSolrFormula = function (formula, debug) { - parser.yy.cursorFound = false; - parser.yy.locations = []; - formula = formula.replace(/\r\n|\n\r/gm, '\n'); - - var result; - try { - result = parser.parse(formula); - } catch (err) { - if (debug) { - console.log(beforeCursor + '\u2020' + afterCursor); - console.log(err); - console.error(err.stack); - } - } - return result || false; -} - -parser.autocompleteSolrFormula = function (beforeCursor, afterCursor, debug) { - parser.yy.cursorFound = false; - parser.yy.locations = []; - - beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); - afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); - - parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); - - if (parser.yy.partialLengths.left > 0) { - beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); - } - - if (parser.yy.partialLengths.right > 0) { - afterCursor = afterCursor.substring(parser.yy.partialLengths.right); - } - - var result; - try { - result = parser.parse(beforeCursor + '\u2020' + afterCursor); - } catch (err) { - // Workaround for too many missing parentheses (it's the only error we handle in the parser) - if (err && err.toString().indexOf('Parsing halted while starting to recover from another error') !== -1) { - var leftCount = (beforeCursor.match(/\(/g) || []).length; - var rightCount = (beforeCursor.match(/\)/g) || []).length; - var parenthesisPad = ''; - while (rightCount < leftCount) { - parenthesisPad += ')'; - rightCount++; - } - try { - result = parser.parse(beforeCursor + '\u2020' + parenthesisPad); - } catch (err) { - return {} - } - } else { - if (debug) { - console.log(beforeCursor + '\u2020' + afterCursor); - console.log(err); - console.error(err.stack); - } - return {} - } - } - result.locations = parser.yy.locations; - return result; -}; \ No newline at end of file diff --git a/src/jison/solrQueryParser.jison b/src/jison/solrQueryParser.jison deleted file mode 100644 index d69bb45..0000000 --- a/src/jison/solrQueryParser.jison +++ /dev/null @@ -1,292 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%lex -%options case-insensitive flex -%x squareBracketRange curlyBracketRange doubleQuotedValue singleQuotedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.cursorFound = yylloc; return 'CURSOR'; } - -'AND' { return 'AND'; } -'&&' { return 'AND'; } -'OR' { return 'OR'; } -'||' { return 'OR'; } -'NOT' { return 'NOT'; } -'!' { return 'NOT'; } -'+' { return '+'; } -'-' { return '-'; } -':' { return ':'; } -'*' { return '*'; } - -'(' { return '('; } -')' { return ')'; } - -[0-9]+(?:[,.][0-9]+)? { return 'NUMBER'; } - -'[' { this.begin('squareBracketRange'); return '['; } -(?:\\[\]]|[^\]])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, ']')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\] { this.popState(); return ']'; } - -'{' { this.begin('curlyBracketRange'); return '{'; } -(?:\\[\}]|[^\}])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '}')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\} { this.popState(); return '}'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - yytext = yytext.replace(/[\u2020].*/, ''); - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - yytext = yytext.replace(/[\u2020].*/, ''); - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -[^\s\u3000!():"'^+\-\[\]{}~*?/\u2020]+ { return 'TERM'; } - -<> { return 'EOF'; } - -/lex - -%left 'AND' 'OR' '&&' '||' BooleanOperator -%left 'CURSOR' // Cursor precedence needed to not conflict with operators i.e. x 'CURSOR' y vs. x 'AND' y - -%start SolrQueryAutocomplete - -%% - -SolrQueryAutocomplete - : SolrQuery 'EOF' - { - return {} - } - | SolrQuery_EDIT 'EOF' - { - return $1; - } - | 'CURSOR' 'EOF' - { - return { suggestFields: { appendColon: true } } - } - ; - -SolrQuery - : NonParenthesizedSolrQuery - | '(' NonParenthesizedSolrQuery ')' --> $2 - ; - -SolrQuery_EDIT - : NonParenthesizedSolrQuery_EDIT - | '(' NonParenthesizedSolrQuery_EDIT RightParenthesisOrError --> $2 - ; - -NonParenthesizedSolrQuery - : 'NUMBER' - | 'TERM' - | KeywordMatch --> { hasKeywordMatch: true } - ; - -NonParenthesizedSolrQuery_EDIT - : KeywordMatch_EDIT - ; - -NonParenthesizedSolrQuery - : SolrQuery BooleanOperator SolrQuery - ; - -NonParenthesizedSolrQuery_EDIT - : SolrQuery 'CURSOR' - { - if ($1.hasKeywordMatch) { - $$ = { suggestKeywords: ['AND', 'OR'] }; - } else { - $$ = { suggestKeywords: ['AND', 'OR', ':'], suggestValues: { field: $1, prependColon: true } }; - } - } - | SolrQuery 'CURSOR' SolrQuery - { - if ($1.hasKeywordMatch) { - $$ = { suggestKeywords: ['AND', 'OR'] }; - } else { - $$ = { suggestKeywords: ['AND', 'OR', ':'], suggestValues: { field: $1, prependColon: true } }; - } - } - | 'CURSOR' SolrQuery --> { suggestFields: { appendColon: true } } - ; - -NonParenthesizedSolrQuery_EDIT - : SolrQuery BooleanOperator 'CURSOR' --> { suggestFields: { appendColon: true } } - | 'CURSOR' BooleanOperator SolrQuery --> { suggestFields: { appendColon: true } } - | SolrQuery BooleanOperator SolrQuery_EDIT --> $3 - | SolrQuery_EDIT BooleanOperator SolrQuery --> $1 - ; - -KeywordMatch - : 'TERM' ':' 'TERM' - | 'TERM' ':' QuotedValue - ; - -KeywordMatch_EDIT - : 'TERM' ':' 'CURSOR' --> { suggestValues: { field: $1 } } - | 'TERM' ':' QuotedValue_EDIT --> { suggestValues: { field: $1, quotePresent: true, partial: $3 } } - ; - -// ======= Common constructs ======= - -BooleanOperator - : 'AND' | 'OR' | '&&' | '||'; - -QuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' --> $2 - | 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' --> $2 - ; - -QuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' --> $2 - | 'DOUBLE_QUOTE' 'PARTIAL_VALUE' --> $2 - ; - -RightParenthesisOrError: ')' | error; -%% - -parser.yy.parseError = function () { return false; } - -parser.addFieldLocation = function (location, name) { - parser.yy.locations.push({ type: 'field', name: name, location: adjustLocationForCursor(location) }); -} - -parser.identifyPartials = function (beforeCursor, afterCursor) { - var beforeMatch = beforeCursor.match(/[^()-*+/,:"'\s]*$/); - var afterMatch = afterCursor.match(/^[^()-*+/,:"'\s]*/); - return { left: beforeMatch ? beforeMatch[0].length : 0, right: afterMatch ? afterMatch[0].length : 0 }; -}; - -parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1) { - var cursorIndex = yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; -}; - -var adjustLocationForCursor = function (location) { - // columns are 0-based and lines not, so add 1 to cols - var newLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - if (parser.yy.cursorFound) { - if (parser.yy.cursorFound.first_line === newLocation.first_line && parser.yy.cursorFound.last_column <= newLocation.first_column) { - var additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. - newLocation.first_column = newLocation.first_column + additionalSpace; - newLocation.last_column = newLocation.last_column + additionalSpace; - } - } - return newLocation; -}; - -parser.autocompleteSolrQuery = function (beforeCursor, afterCursor, debug) { - parser.yy.cursorFound = false; - parser.yy.locations = []; - - beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); - afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); - - parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); - - parser.yy.partialCursor = parser.yy.partialLengths.left > 0; - - if (parser.yy.partialLengths.left > 0) { - beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); - } - - if (parser.yy.partialLengths.right > 0) { - afterCursor = afterCursor.substring(parser.yy.partialLengths.right); - } - - var result; - try { - result = parser.parse(beforeCursor + '\u2020' + afterCursor); - } catch (err) { - // Workaround for too many missing parentheses (it's the only error we handle in the parser) - if (err && err.toString().indexOf('Parsing halted while starting to recover from another error') !== -1) { - var leftCount = (beforeCursor.match(/\(/g) || []).length; - var rightCount = (beforeCursor.match(/\)/g) || []).length; - var parenthesisPad = ''; - while (rightCount < leftCount) { - parenthesisPad += ')'; - rightCount++; - } - try { - result = parser.parse(beforeCursor + '\u2020' + parenthesisPad); - } catch (err) { - return { locations: parser.yy.locations } - } - } else { - if (debug) { - console.log(beforeCursor + '\u2020' + afterCursor); - console.log(err); - console.error(err.stack); - } - return { locations: parser.yy.locations } - } - } - result.locations = parser.yy.locations; - return result; -}; \ No newline at end of file diff --git a/src/jison/sql.jisonlex b/src/jison/sql.jisonlex deleted file mode 100644 index 8f21751..0000000 --- a/src/jison/sql.jisonlex +++ /dev/null @@ -1,754 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between hive impala -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ARRAY' { return 'ARRAY'; } -'AS' { return 'AS'; } -'AUTHORIZATION' { return 'AUTHORIZATION'; } -'BINARY' { return 'BINARY'; } -'CACHE' { return 'CACHE'; } -'COLUMN' { return 'COLUMN'; } -'CONF' { return 'CONF'; } -'CONSTRAINT' { return 'CONSTRAINT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CUBE' { return 'CUBE'; } -'CURRENT' { return 'CURRENT'; } -'DATE' { return 'DATE'; } -'DELETE' { parser.determineCase(yytext); return 'DELETE'; } -'DESCRIBE' { parser.determineCase(yytext); return 'DESCRIBE'; } -'EXTENDED' { return 'EXTENDED'; } -'EXTERNAL' { return 'EXTERNAL'; } -'FOR' { return 'FOR'; } -'FOREIGN' { return 'FOREIGN'; } -'FUNCTION' { return 'FUNCTION'; } -'GRANT' { return 'GRANT'; } -'GROUPING' { return 'GROUPING'; } -'IMPORT' { parser.determineCase(yytext); return 'IMPORT'; } -'INSERT' { parser.determineCase(yytext); return 'INSERT'; } -'LATERAL' { return 'LATERAL'; } -'LOCAL' { return 'LOCAL'; } -'MACRO' { return 'MACRO'; } -'MAP' { return 'MAP'; } -'NONE' { return 'NONE'; } -'OF' { return 'OF'; } -'OUT' { return 'OUT'; } -'PRIMARY' { return 'PRIMARY'; } -'REFERENCES' { return 'REFERENCES'; } -'REVOKE' { return 'REVOKE'; } -'ROLLUP' { return 'ROLLUP'; } -'SYNC' { return 'SYNC'; } -'TABLE' { return 'TABLE'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'UTC_TIMESTAMP' { return 'UTC_TIMESTAMP'; } -'USER' { return 'USER'; } -'USING' { return 'USING'; } -'VIEWS' { return 'VIEWS'; } - -// Non-reserved Keywords -'ABORT' { parser.determineCase(yytext); return 'ABORT'; } -'ADD' { return 'ADD'; } -'ADMIN' { return 'ADMIN'; } -'AFTER' { return 'AFTER'; } -'ANALYZE' { parser.determineCase(yytext); return 'ANALYZE'; } -'ARCHIVE' { return 'ARCHIVE'; } -'ASC' { return 'ASC'; } -'AVRO' { return 'AVRO'; } -'BUCKET' { return 'BUCKET'; } -'BUCKETS' { return 'BUCKETS'; } -'CASCADE' { return 'CASCADE'; } -'CHANGE' { return 'CHANGE'; } -'CLUSTER' { return 'CLUSTER'; } -'CLUSTERED' { return 'CLUSTERED'; } -'COLLECTION' { return 'COLLECTION'; } -'COLUMNS' { return 'COLUMNS'; } -'COMMENT' { return 'COMMENT'; } -'COMPACT' { return 'COMPACT'; } -'COMPACTIONS' { return 'COMPACTIONS'; } -'COMPUTE' { return 'COMPUTE'; } -'CONCATENATE' { return 'CONCATENATE'; } -'DATA' { return 'DATA'; } -'DATABASES' { return 'DATABASES'; } -'DAY' { return 'DAY'; } -'DAYOFWEEK' { return 'DAYOFWEEK'; } -'DBPROPERTIES' { return 'DBPROPERTIES'; } -'DEFERRED' { return 'DEFERRED'; } -'DEFINED' { return 'DEFINED'; } -'DELIMITED' { return 'DELIMITED'; } -'DEPENDENCY' { return 'DEPENDENCY'; } -'DESC' { return 'DESC'; } -'DIRECTORY' { this.begin('hdfs'); return 'DIRECTORY'; } -'DISABLE' { return 'DISABLE'; } -'DISTRIBUTE' { return 'DISTRIBUTE'; } -DOUBLE\s+PRECISION { return 'DOUBLE_PRECISION'; } -'ESCAPED' { return 'ESCAPED'; } -'ENABLE' { return 'ENABLE'; } -'EXCHANGE' { return 'EXCHANGE'; } -'EXPLAIN' { parser.determineCase(yytext); return 'EXPLAIN'; } -'EXPORT' { parser.determineCase(yytext); return 'EXPORT'; } -'FIELDS' { return 'FIELDS'; } -'FILE' { return 'FILE'; } -'FILEFORMAT' { return 'FILEFORMAT'; } -'FIRST' { return 'FIRST'; } -'FORMAT' { return 'FORMAT'; } -'FORMATTED' { return 'FORMATTED'; } -'FUNCTION' { return 'FUNCTION'; } -'FUNCTIONS' { return 'FUNCTIONS'; } -'HOUR' { return 'HOUR'; } -'IDXPROPERTIES' { return 'IDXPROPERTIES'; } -'INDEX' { return 'INDEX'; } -'INDEXES' { return 'INDEXES'; } -'INPATH' { this.begin('hdfs'); return 'INPATH'; } -'INPUTFORMAT' { return 'INPUTFORMAT'; } -'ITEMS' { return 'ITEMS'; } -'JAR' { return 'JAR'; } -'JSONFILE' { return 'JSONFILE'; } -'KEY' { return 'KEY'; } -'KEYS' { return 'KEYS'; } -'LINES' { return 'LINES'; } -'LOAD' { parser.determineCase(yytext); return 'LOAD'; } -'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } -'LOCK' { return 'LOCK'; } -'LOCKS' { return 'LOCKS'; } -'MATCHED' { return 'MATCHED'; } -'MERGE' { return 'MERGE'; } -'METADATA' { return 'METADATA'; } -'MINUTE' { return 'MINUTE'; } -'MONTH' { return 'MONTH'; } -'MSCK' { return 'MSCK'; } -'NORELY' { return 'NORELY'; } -'NOSCAN' { return 'NOSCAN'; } -'NOVALIDATE' { return 'NOVALIDATE'; } -'NO_DROP' { return 'NO_DROP'; } -'OFFLINE' { return 'OFFLINE'; } -'ORC' { return 'ORC'; } -'OUTPUTFORMAT' { return 'OUTPUTFORMAT'; } -'OVERWRITE' { return 'OVERWRITE'; } -OVERWRITE\s+DIRECTORY { this.begin('hdfs'); return 'OVERWRITE_DIRECTORY'; } -'OWNER' { return 'OWNER'; } -'PARQUET' { return 'PARQUET'; } -'PARTITIONED' { return 'PARTITIONED'; } -'PARTITIONS' { return 'PARTITIONS'; } -'PERCENT' { return 'PERCENT'; } -'PRIVILEGES' { return 'PRIVILEGES'; } -'PURGE' { return 'PURGE'; } -'QUARTER' { return 'QUARTER'; } -'RCFILE' { return 'RCFILE'; } -'REBUILD' { return 'REBUILD'; } -'RELOAD' { parser.determineCase(yytext); return 'RELOAD'; } -'RELY' { return 'RELY'; } -'REPAIR' { return 'REPAIR'; } -'REPLICATION' { return 'REPLICATION'; } -'RECOVER' { return 'RECOVER'; } -'RENAME' { return 'RENAME'; } -'REPLACE' { return 'REPLACE'; } -'RESTRICT' { return 'RESTRICT'; } -'ROLE' { return 'ROLE'; } -'ROLES' { return 'ROLES'; } -'SECOND' { return 'SECOND'; } -'SCHEMA' { return 'SCHEMA'; } -'SCHEMAS' { return 'SCHEMAS'; } -'SEQUENCEFILE' { return 'SEQUENCEFILE'; } -'SERDE' { return 'SERDE'; } -'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } -'SETS' { return 'SETS'; } -'SHOW' { parser.determineCase(yytext); return 'SHOW'; } -'SHOW_DATABASE' { return 'SHOW_DATABASE'; } -'SKEWED' { return 'SKEWED'; } -'SKEWED LOCATION' { return 'SKEWED_LOCATION'; } // Hack to prevent hdfs lexer state -'SORT' { return 'SORT'; } -'SORTED' { return 'SORTED'; } -'STATISTICS' { return 'STATISTICS'; } -'STORED' { return 'STORED'; } -STORED\s+AS\s+DIRECTORIES { return 'STORED_AS_DIRECTORIES'; } -'STRING' { return 'STRING'; } -'STRUCT' { return 'STRUCT'; } -'TABLES' { return 'TABLES'; } -'TABLESAMPLE' { return 'TABLESAMPLE'; } -'TBLPROPERTIES' { return 'TBLPROPERTIES'; } -'TEMPORARY' { return 'TEMPORARY'; } -'TERMINATED' { return 'TERMINATED'; } -'TEXTFILE' { return 'TEXTFILE'; } -'TINYINT' { return 'TINYINT'; } -'TOUCH' { return 'TOUCH'; } -'TRANSACTIONAL' { return 'TRANSACTIONAL'; } -'TRANSACTIONS' { return 'TRANSACTIONS'; } -'UNARCHIVE' { return 'UNARCHIVE'; } -'UNIONTYPE' { return 'UNIONTYPE'; } -'USE' { parser.determineCase(yytext); return 'USE'; } -'VIEW' { return 'VIEW'; } -'WAIT' { return 'WAIT'; } -'WEEK' { return 'WEEK'; } -'WINDOW' { return 'WINDOW'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } -'YEAR' { return 'YEAR'; } - -'.' { return '.'; } -'[' { return '['; } -']' { return ']'; } - -// Reserved Keywords -'ADD' { return 'ADD'; } -'AGGREGATE' { return 'AGGREGATE'; } -'ALLOCATE' { return 'ALLOCATE'; } -'ANALYTIC' { return 'ANALYTIC'; } -'ANTI' { return 'ANTI'; } -'ANY' { return 'ANY'; } -'ARE' { return 'ARE'; } -'ARRAY_AGG' { return 'ARRAY_AGG'; } -'ARRAY_MAX_CARDINALITY' { return 'ARRAY_MAX_CARDINALITY'; } -'ASENSITIVE' { return 'ASENSITIVE'; } -'ASYMMETRIC' { return 'ASYMMETRIC'; } -'AT' { return 'AT'; } -'ATOMIC' { return 'ATOMIC'; } -'AUTHORIZATION' { return 'AUTHORIZATION'; } -'AVRO' { return 'AVRO'; } -'BEGIN_FRAME' { return 'BEGIN_FRAME'; } -'BEGIN_PARTITION' { return 'BEGIN_PARTITION'; } -'BLOB' { return 'BLOB'; } -'BLOCK_SIZE' { return 'BLOCK_SIZE'; } -'BOTH' { return 'BOTH'; } -'CACHED' { return 'CACHED'; } -'CALLED' { return 'CALLED'; } -'CARDINALITY' { return 'CARDINALITY'; } -'CASCADE' { return 'CASCADE'; } -'CASCADED' { return 'CASCADED'; } -'CHANGE' { return 'CHANGE'; } -'CHARACTER' { return 'CHARACTER'; } -'CLOB' { return 'CLOB'; } -'CLOSE_FN' { return 'CLOSE_FN'; } -'COLLATE' { return 'COLLATE'; } -'COLLECT' { return 'COLLECT'; } -'COLUMN' { return 'COLUMN'; } -'COLUMNS' { return 'COLUMNS'; } -'COMMENT' { parser.determineCase(yytext); return 'COMMENT'; } -'COMMIT' { return 'COMMIT'; } -'COMPRESSION' { return 'COMPRESSION'; } -'COMPUTE' { parser.determineCase(yytext); return 'COMPUTE'; } -'CONDITION' { return 'CONDITION'; } -'CONNECT' { return 'CONNECT'; } -'CONSTRAINT' { return 'CONSTRAINT'; } -'CONTAINS' { return 'CONTAINS'; } -'CONVERT' { return 'CONVERT'; } -'COPY' { return 'COPY'; } -'CORR' { return 'CORR'; } -'CORRESPONDING' { return 'CORRESPONDING'; } -'COVAR_POP' { return 'COVAR_POP'; } -'COVAR_SAMP' { return 'COVAR_SAMP'; } -'CREATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('CREATE', yylloc, yy.lexer.upcomingInput()); return 'CREATE'; } -'CUBE' { return 'CUBE'; } -'CURRENT' { return 'CURRENT'; } -'CURRENT_DATE' { return 'CURRENT_DATE'; } -'CURRENT_DEFAULT_TRANSFORM_GROUP' { return 'CURRENT_DEFAULT_TRANSFORM_GROUP'; } -'CURRENT_PATH' { return 'CURRENT_PATH'; } -'CURRENT_ROLE' { return 'CURRENT_ROLE'; } -'CURRENT_ROW' { return 'CURRENT_ROW'; } -'CURRENT_SCHEMA' { return 'CURRENT_SCHEMA'; } -'CURRENT_TIME' { return 'CURRENT_TIME'; } -'CURRENT_TRANSFORM_GROUP_FOR_TYPE' { return 'CURRENT_TRANSFORM_GROUP_FOR_TYPE'; } -'CURSOR' { return 'CURSOR'; } -'CYCLE' { return 'CYCLE'; } -'DATA' { return 'DATA'; } -'DATABASES' { return 'DATABASES'; } -'DEALLOCATE' { return 'DEALLOCATE'; } -'DEC' { return 'DEC'; } -'DECFLOAT' { return 'DECFLOAT'; } -'DECLARE' { return 'DECLARE'; } -'DEFINE' { return 'DEFINE'; } -'DELETE' { return 'DELETE'; } -'DELIMITED' { return 'DELIMITED'; } -'DEREF' { return 'DEREF'; } -'DESCRIBE' { parser.determineCase(yytext); parser.addStatementTypeLocation('DESCRIBE', yylloc); return 'DESCRIBE'; } -'DETERMINISTIC' { return 'DETERMINISTIC'; } -'DISCONNECT' { return 'DISCONNECT'; } -'DYNAMIC' { return 'DYNAMIC'; } -'EACH' { return 'EACH'; } -'ELEMENT' { return 'ELEMENT'; } -'EMPTY' { return 'EMPTY'; } -'ENCODING' { return 'ENCODING'; } -'END_FRAME' { return 'END_FRAME'; } -'END_PARTITION' { return 'END_PARTITION'; } -'EQUALS' { return 'EQUALS'; } -'ESCAPE' { return 'ESCAPE'; } -'ESCAPED' { return 'ESCAPED'; } -'EVERY' { return 'EVERY'; } -'EXCEPT' { return 'EXCEPT'; } -'EXEC' { return 'EXEC'; } -'EXECUTE' { return 'EXECUTE'; } -'EXPLAIN' { parser.determineCase(yytext); parser.addStatementTypeLocation('EXPLAIN', yylloc); return 'EXPLAIN'; } -'EXTENDED' { return 'EXTENDED'; } -'EXTERNAL' { return 'EXTERNAL'; } -'FETCH' { return 'FETCH'; } -'FIELDS' { return 'FIELDS'; } -'FILEFORMAT' { return 'FILEFORMAT'; } -'FILES' { return 'FILES'; } -'FILTER' { return 'FILTER'; } -'FINALIZE_FN' { return 'FINALIZE_FN'; } -'FIRST' { return 'FIRST'; } -'FOR' { return 'FOR'; } -'FOREIGN' { return 'FOREIGN'; } -'FORMAT' { return 'FORMAT'; } -'FORMATTED' { return 'FORMATTED'; } -'FRAME_ROW' { return 'FRAME_ROW'; } -'FREE' { return 'FREE'; } -'FUNCTION' { return 'FUNCTION'; } -'FUNCTIONS' { return 'FUNCTIONS'; } -'FUSION' { return 'FUSION'; } -'GET' { return 'GET'; } -'GLOBAL' { return 'GLOBAL'; } -'GRANT' { parser.determineCase(yytext); parser.addStatementTypeLocation('GRANT', yylloc); return 'GRANT'; } -'GROUP' { return 'GROUP'; } -'GROUPING' { return 'GROUPING'; } -'GROUPS' { return 'GROUPS'; } -'HASH' { return 'HASH'; } -'HOLD' { return 'HOLD'; } -'IGNORE' { return 'IGNORE'; } -'ILIKE' { return 'ILIKE'; } -'INCREMENTAL' { return 'INCREMENTAL'; } -'INDICATOR' { return 'INDICATOR'; } -'INIT_FN' { return 'INIT_FN'; } -'INITIAL' { return 'INITIAL'; } -'INOUT' { return 'INOUT'; } -'INPATH' { this.begin('hdfs'); return 'INPATH'; } -'INSENSITIVE' { return 'INSENSITIVE'; } -'INSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('INSERT', yylloc); return 'INSERT'; } -'INTERMEDIATE' { return 'INTERMEDIATE'; } -'INTERSECT' { return 'INTERSECT'; } -'INTERSECTION' { return 'INTERSECTION'; } -'INTERVAL' { return 'INTERVAL'; } -'INVALIDATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('INVALIDATE', yylloc, yy.lexer.upcomingInput()); return 'INVALIDATE'; } -'IREGEXP' { return 'IREGEXP'; } -'JSON_ARRAY' { return 'JSON_ARRAY'; } -'JSON_ARRAYAGG' { return 'JSON_ARRAYAGG'; } -'JSON_EXISTS' { return 'JSON_EXISTS'; } -'JSON_OBJECT' { return 'JSON_OBJECT'; } -'JSON_OBJECTAGG' { return 'JSON_OBJECTAGG'; } -'JSON_QUERY' { return 'JSON_QUERY'; } -'JSON_TABLE' { return 'JSON_TABLE'; } -'JSON_TABLE_PRIMITIVE' { return 'JSON_TABLE_PRIMITIVE'; } -'JSON_VALUE' { return 'JSON_VALUE'; } -'KEY' { return 'KEY'; } -'KUDU' { return 'KUDU'; } -'LARGE' { return 'LARGE'; } -'LAST' { return 'LAST'; } -'LATERAL' { return 'LATERAL'; } -'LEADING' { return 'LEADING'; } -LIKE\s+PARQUET { this.begin('hdfs'); return 'LIKE_PARQUET'; } -'LIKE_REGEX' { return 'LIKE_REGEX'; } -'LIMIT' { return 'LIMIT'; } -'LINES' { return 'LINES'; } -'LISTAGG' { return 'LISTAGG'; } -'LOAD' { parser.determineCase(yytext); parser.addStatementTypeLocation('LOAD', yylloc, yy.lexer.upcomingInput()); return 'LOAD'; } -'LOCAL' { return 'LOCAL'; } -'LOCALTIMESTAMP' { return 'LOCALTIMESTAMP'; } -'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } -'MATCH' { return 'MATCH'; } -'MATCH_NUMBER' { return 'MATCH_NUMBER'; } -'MATCH_RECOGNIZE' { return 'MATCH_RECOGNIZE'; } -'MATCHES' { return 'MATCHES'; } -'MERGE' { return 'MERGE'; } -'MERGE_FN' { return 'MERGE_FN'; } -'METADATA' { return 'METADATA'; } -'METHOD' { return 'METHOD'; } -'MODIFIES' { return 'MODIFIES'; } -'MULTISET' { return 'MULTISET'; } -'NATIONAL' { return 'NATIONAL'; } -'NATURAL' { return 'NATURAL'; } -'NCHAR' { return 'NCHAR'; } -'NCLOB' { return 'NCLOB'; } -'NO' { return 'NO'; } -'NONE' { return 'NONE'; } -'NORMALIZE' { return 'NORMALIZE'; } -'NTH_VALUE' { return 'NTH_VALUE'; } -'NULLS' { return 'NULLS'; } -'NUMERIC' { return 'NUMERIC'; } -'OCCURRENCES_REGEX' { return 'OCCURRENCES_REGEX'; } -'OCTET_LENGTH' { return 'OCTET_LENGTH'; } -'OF' { return 'OF'; } -'OFFSET' { return 'OFFSET'; } -'OMIT' { return 'OMIT'; } -'ONE' { return 'ONE'; } -'ONLY' { return 'ONLY'; } -'ORC' { return 'ORC'; } -'OUT' { return 'OUT'; } -'OVER' { return 'OVER'; } -'OVERLAPS' { return 'OVERLAPS'; } -'OVERLAY' { return 'OVERLAY'; } -'OVERWRITE' { return 'OVERWRITE'; } -'PARQUET' { return 'PARQUET'; } -PARTITION\s+VALUE\s { return 'PARTITION_VALUE'; } -'PARTITIONED' { return 'PARTITIONED'; } -'PARTITIONS' { return 'PARTITIONS'; } -'PATTERN' { return 'PATTERN'; } -'PER' { return 'PER'; } -'PERCENT' { return 'PERCENT'; } -'PERCENTILE_CONT' { return 'PERCENTILE_CONT'; } -'PERCENTILE_DISC' { return 'PERCENTILE_DISC'; } -'PORTION' { return 'PORTION'; } -'POSITION' { return 'POSITION'; } -'POSITION_REGEX' { return 'POSITION_REGEX'; } -'PRECEDES' { return 'PRECEDES'; } -'PREPARE' { return 'PREPARE'; } -'PREPARE_FN' { return 'PREPARE_FN'; } -'PRIMARY' { return 'PRIMARY'; } -'PROCEDURE' { return 'PROCEDURE'; } -'PTF' { return 'PTF'; } -'RANGE' { return 'RANGE'; } -'RCFILE' { return 'RCFILE'; } -'READS' { return 'READS'; } -'REAL' { return 'REAL'; } -'RECOVER' { return 'RECOVER'; } -'RECURSIVE' { return 'RECURSIVE'; } -'REF' { return 'REF'; } -'REFERENCES' { return 'REFERENCES'; } -'REFERENCING' { return 'REFERENCING'; } -'REFRESH' { parser.determineCase(yytext); parser.addStatementTypeLocation('REFRESH', yylloc); return 'REFRESH'; } -'REGR_AVGX' { return 'REGR_AVGX'; } -'REGR_AVGY' { return 'REGR_AVGY'; } -'REGR_COUNT' { return 'REGR_COUNT'; } -'REGR_INTERCEPT' { return 'REGR_INTERCEPT'; } -'REGR_R2REGR_SLOPE' { return 'REGR_R2REGR_SLOPE'; } -'REGR_SXX' { return 'REGR_SXX'; } -'REGR_SXY' { return 'REGR_SXY'; } -'REGR_SYY' { return 'REGR_SYY'; } -'RELEASE' { return 'RELEASE'; } -'RENAME' { return 'RENAME'; } -'REPEATABLE' { return 'REPEATABLE'; } -'REPLACE' { return 'REPLACE'; } -'REPLICATION' { return 'REPLICATION'; } -'RESTRICT' { return 'RESTRICT'; } -'RETURNS' { return 'RETURNS'; } -'REVOKE' { parser.determineCase(yytext); parser.addStatementTypeLocation('REVOKE', yylloc); return 'REVOKE'; } -'ROLE' { return 'ROLE'; } -'ROLES' { return 'ROLES'; } -'ROLLBACK' { return 'ROLLBACK'; } -'ROLLUP' { return 'ROLLUP'; } -'RUNNING' { return 'RUNNING'; } -'SAVEPOINT' { return 'SAVEPOINT'; } -'SCHEMAS' { return 'SCHEMAS'; } -'SCOPE' { return 'SCOPE'; } -'SCROLL' { return 'SCROLL'; } -'SEARCH' { return 'SEARCH'; } -'SEEK' { return 'SEEK'; } -'SENSITIVE' { return 'SENSITIVE'; } -'SEQUENCEFILE' { return 'SEQUENCEFILE'; } -'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } -'SERIALIZE_FN' { return 'SERIALIZE_FN'; } -'SERVER' { return 'SERVER'; } -'SIMILAR' { return 'SIMILAR'; } -'SKIP' { return 'SKIP'; } -'SOME' { return 'SOME'; } -'SORT' { return 'SORT'; } -'SPECIFIC' { return 'SPECIFIC'; } -'SPECIFICTYPE' { return 'SPECIFICTYPE'; } -'SQLEXCEPTION' { return 'SQLEXCEPTION'; } -'SQLSTATE' { return 'SQLSTATE'; } -'SQLWARNING' { return 'SQLWARNING'; } -'STATIC' { return 'STATIC'; } -'STATS' { return 'STATS'; } -'STORED' { return 'STORED'; } -'STRAIGHT_JOIN' { return 'STRAIGHT_JOIN'; } -'SUBMULTISET' { return 'SUBMULTISET'; } -'SUBSET' { return 'SUBSET'; } -'SUBSTRING_REGEX' { return 'SUBSTRING_REGEX'; } -'SUCCEEDS' { return 'SUCCEEDS'; } -'SYMBOL' { return 'SYMBOL'; } -'SYMMETRIC' { return 'SYMMETRIC'; } -'SYSTEM_TIME' { return 'SYSTEM_TIME'; } -'SYSTEM_USER' { return 'SYSTEM_USER'; } -'TABLE' { return 'TABLE'; } -'TABLES' { return 'TABLES'; } -'TABLESAMPLE' { return 'TABLESAMPLE'; } -'TBLPROPERTIES' { return 'TBLPROPERTIES'; } -'TERMINATED' { return 'TERMINATED'; } -'TEXTFILE' { return 'TEXTFILE'; } -'TIMEZONE_HOUR' { return 'TIMEZONE_HOUR'; } -'TIMEZONE_MINUTE' { return 'TIMEZONE_MINUTE'; } -'TRAILING' { return 'TRAILING'; } -'TRANSLATE_REGEX' { return 'TRANSLATE_REGEX'; } -'TRANSLATION' { return 'TRANSLATION'; } -'TREAT' { return 'TREAT'; } -'TRIGGER' { return 'TRIGGER'; } -'TRIM_ARRAY' { return 'TRIM_ARRAY'; } -'UESCAPE' { return 'UESCAPE'; } -'UNCACHED' { return 'UNCACHED'; } -'UNIQUE' { return 'UNIQUE'; } -'UNKNOWN' { return 'UNKNOWN'; } -'UNNEST' { return 'UNNEST'; } -'UPDATE_FN' { return 'UPDATE_FN'; } -'UPSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('UPSERT', yylloc); return 'UPSERT'; } -'URI' { return 'URI'; } -'USER' { return 'USER'; } -'USING' { return 'USING'; } -'VALUE_OF' { return 'VALUE_OF'; } -'VARBINARY' { return 'VARBINARY'; } -'VARCHAR' { return 'VARCHAR'; } -'VARYING' { return 'VARYING'; } -'VERSIONING' { return 'VERSIONING'; } -'WHENEVER' { return 'WHENEVER'; } -'WIDTH_BUCKET' { return 'WIDTH_BUCKET'; } -'WINDOW' { return 'WINDOW'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } -'WITHIN' { return 'WITHIN'; } -'WITHOUT' { return 'WITHOUT'; } - -// Non-reserved Keywords -'ARRAY' { return 'ARRAY'; } -'DEFAULT' { return 'DEFAULT'; } -'MAP' { return 'MAP'; } -'OWNER' { return 'OWNER'; } -'STRUCT' { return 'STRUCT'; } -\[BROADCAST\] { return 'BROADCAST'; } -\[NOSHUFFLE\] { return 'NOSHUFFLE'; } -\[SHUFFLE\] { return 'SHUFFLE'; } - -'...' { return '...'; } -'.' { return '.'; } -'[' { return '['; } -']' { return ']'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DECIMAL' { return 'DECIMAL'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DESC' { return 'DESC'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'GROUP' { return 'GROUP'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { return 'INSERT'; } -'INT' { return 'INT'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'ON' { return 'ON'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'REGEXP' { return 'REGEXP'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROW' { return 'ROW'; } -'ROWS' { return 'ROWS'; } -'SCHEMA' { return 'SCHEMA'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SMALLINT' { return 'SMALLINT'; } -'STRING' { return 'STRING'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'UNION' { return 'UNION'; } -'VIEW' { return 'VIEW'; } -'VARCHAR' { return 'VARCHAR'; } // Not in Impala -'VALUES' { return 'VALUES'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'OVER' { return 'OVER'; } -'ROLE' { return 'ROLE'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -COLLECT_SET\s*\( { yy.lexer.unput('('); yytext = 'collect_set'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_SET'; } -COLLECT_LIST\s*\( { yy.lexer.unput('('); yytext = 'collect_list'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_LIST'; } -CORR\s*\( { yy.lexer.unput('('); yytext = 'corr'; parser.addFunctionLocation(yylloc, yytext); return 'CORR'; } -COVAR_POP\s*\( { yy.lexer.unput('('); yytext = 'covar_pop'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_POP'; } -COVAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'covar_samp'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_SAMP'; } -EXTRACT\s*\( { yy.lexer.unput('('); yytext = 'extract'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACT'; } -HISTOGRAM_NUMERIC\s*\( { yy.lexer.unput('('); yytext = 'histogram_numeric'; parser.addFunctionLocation(yylloc, yytext); return 'HISTOGRAM_NUMERIC'; } -NTILE\s*\( { yy.lexer.unput('('); yytext = 'ntile'; parser.addFunctionLocation(yylloc, yytext); return 'NTILE'; } -PERCENTILE\s*\( { yy.lexer.unput('('); yytext = 'percentile'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE'; } -PERCENTILE_APPROX\s*\( { yy.lexer.unput('('); yytext = 'percentile_approx'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE_APPROX'; } -APPX_MEDIAN\s*\( { yy.lexer.unput('('); yytext = 'appx_median'; parser.addFunctionLocation(yylloc, yytext); return 'APPX_MEDIAN'; } -EXTRACT\s*\( { yy.lexer.unput('('); yytext = 'extract'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACT'; } -GROUP_CONCAT\s*\( { yy.lexer.unput('('); yytext = 'group_concat'; parser.addFunctionLocation(yylloc, yytext); return 'GROUP_CONCAT'; } -NDV\s*\( { yy.lexer.unput('('); yytext = 'ndv'; parser.addFunctionLocation(yylloc, yytext); return 'NDV'; } -STDDEV\s*\( { yy.lexer.unput('('); yytext = 'stddev'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV'; } -VARIANCE_POP\s*\( { yy.lexer.unput('('); yytext = 'variance_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE_POP'; } -VARIANCE_SAMP\s*\( { yy.lexer.unput('('); yytext = 'variance_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE_SAMP'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -PERCENT_RANK\s*\( { yy.lexer.unput('('); yytext = 'percent_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -NTILE\s*\( { yy.lexer.unput('('); yytext = 'ntile'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -PERCENT_RANK\s*\( { yy.lexer.unput('('); yytext = 'percent_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -SYSTEM\s*\( { yy.lexer.unput('('); yytext = 'system'; return 'SYSTEM'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['] { return 'HDFS_START_QUOTE'; } -[^'\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } -. { } -. { } \ No newline at end of file diff --git a/src/jison/sql/calcite/autocomplete_footer.jison b/src/jison/sql/calcite/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/calcite/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/calcite/autocomplete_header.jison b/src/jison/sql/calcite/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/calcite/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/calcite/sql.jisonlex b/src/jison/sql/calcite/sql.jisonlex deleted file mode 100644 index 83dbe72..0000000 --- a/src/jison/sql/calcite/sql.jisonlex +++ /dev/null @@ -1,226 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CASCADE' { return 'CASCADE'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'COMMENT' { return 'COMMENT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DECIMAL' { return 'DECIMAL'; } -'DESC' { return 'DESC'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'GROUP' { return 'GROUP'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { return 'INSERT'; } -'INT' { return 'INT'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'ON' { return 'ON'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'REGEXP' { return 'REGEXP'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROW' { return 'ROW'; } -'ROLE' { return 'ROLE'; } -'ROWS' { return 'ROWS'; } -'SCHEMA' { return 'SCHEMA'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SMALLINT' { return 'SMALLINT'; } -'STRING' { return 'STRING'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNION' { return 'UNION'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'VIEW' { return 'VIEW'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'OVER' { return 'OVER'; } -'ROLE' { return 'ROLE'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/calcite/sql_alter.jison b/src/jison/sql/calcite/sql_alter.jison deleted file mode 100644 index 82acf8f..0000000 --- a/src/jison/sql/calcite/sql_alter.jison +++ /dev/null @@ -1,109 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterTable - | AlterView - ; - -AlterStatement_EDIT - : AlterTable_EDIT - | AlterView_EDIT - | 'ALTER' 'CURSOR' - { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - ; - -AlterTable - : AlterTableLeftSide PartitionSpec - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT PartitionSpec - | AlterTableLeftSide 'CURSOR' - | AlterTableLeftSide PartitionSpec 'CURSOR' - ; - -AlterTableLeftSide - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AlterView - : AlterViewLeftSide 'AS' QuerySpecification - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | AlterViewLeftSide 'SET' 'CURSOR' - | AlterViewLeftSide 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide 'AS' QuerySpecification_EDIT - ; - - -AlterViewLeftSide - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; diff --git a/src/jison/sql/calcite/sql_create.jison b/src/jison/sql/calcite/sql_create.jison deleted file mode 100644 index 1329ac6..0000000 --- a/src/jison/sql/calcite/sql_create.jison +++ /dev/null @@ -1,615 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment - { - if (!$1) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - -TableDefinition - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' - { - var keywords = []; - if (!$1 && !$2) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : 'NOT' 'CURSOR' - { - parser.suggestKeywords(['NULL']); - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITION' 'BY' RangeClause - ; - -PartitionedBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['RANGE']); - } - | 'PARTITION' 'BY' RangeClause_EDIT - ; - -RangeClause - : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : 'RANGE' 'CURSOR' - | 'RANGE' ParenthesizedColumnList_EDIT - | 'RANGE' ParenthesizedColumnList 'CURSOR' - | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PARTITION']); - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; diff --git a/src/jison/sql/calcite/sql_drop.jison b/src/jison/sql/calcite/sql_drop.jison deleted file mode 100644 index 0e3aa53..0000000 --- a/src/jison/sql/calcite/sql_drop.jison +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropRoleStatement - | DropTableStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropTableStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec - ; diff --git a/src/jison/sql/calcite/sql_error.jison b/src/jison/sql/calcite/sql_error.jison deleted file mode 100644 index 48b9a4e..0000000 --- a/src/jison/sql/calcite/sql_error.jison +++ /dev/null @@ -1,132 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$6 && !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/calcite/sql_insert.jison b/src/jison/sql/calcite/sql_insert.jison deleted file mode 100644 index 8b3544e..0000000 --- a/src/jison/sql/calcite/sql_insert.jison +++ /dev/null @@ -1,72 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : InsertValuesStatement - ; - -DataManipulation_EDIT - : InsertValuesStatement_EDIT - ; - -InsertValuesStatement - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - ; - -InsertValuesStatement_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - parser.suggestKeywords(['VALUES']); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; diff --git a/src/jison/sql/calcite/sql_main.jison b/src/jison/sql/calcite/sql_main.jison deleted file mode 100644 index 3aaf9f9..0000000 --- a/src/jison/sql/calcite/sql_main.jison +++ /dev/null @@ -1,2762 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - ; - -NonReservedKeyword - : 'ROLE' - | 'OPTION' - | 'STRUCT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | '~' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AVG' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BOOLEAN' - | 'BY' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'COMPARISON_OPERATOR' - | 'COUNT' - | 'CROSS' - | 'CURRENT' - | 'DATABASE' - | 'DECIMAL' - | 'DESC' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'EXISTS' - | 'FALSE' - | 'FLOAT' - | 'FOLLOWING' - | 'FROM' - | 'FULL' - | 'GROUP' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'IF' - | 'IN' - | 'INNER' - | 'INT' - | 'INTO' - | 'IS' - | 'JOIN' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'MAP' - | 'MAX' - | 'MIN' - | 'NOT' - | 'NULL' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUTER' - | 'OVER' - | 'PARTITION' - | 'PRECEDING' - | 'PURGE' - | 'RANGE' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SEMI' - | 'SET' - | 'SINGLE_QUOTE' - | 'SMALLINT' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRUE' - | 'UNION' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'WHEN' - | 'WHERE' - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -PrimitiveType - : 'BIGINT' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'FLOAT' - | 'INT' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if ($1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList - { - $$ = { tableReferenceList : $2 } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $5 ? @5 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$4 && !$5) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6; - if (!$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; - if (!$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = @5; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList - { - $$ = { valueExpression: $3 }; - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($2) { - $1.alias = $2.alias - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } else if ($2.suggestKeywords) { - keywords = $2.suggestKeywords; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'MAX' - | 'MIN' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; diff --git a/src/jison/sql/calcite/sql_set.jison b/src/jison/sql/calcite/sql_set.jison deleted file mode 100644 index 14cff5c..0000000 --- a/src/jison/sql/calcite/sql_set.jison +++ /dev/null @@ -1,46 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetSpecification - ; - -DataDefinition_EDIT - : 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; diff --git a/src/jison/sql/calcite/sql_update.jison b/src/jison/sql/calcite/sql_update.jison deleted file mode 100644 index 1091c41..0000000 --- a/src/jison/sql/calcite/sql_update.jison +++ /dev/null @@ -1,122 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - parser.suggestKeywords([ 'WHERE' ]); - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql/calcite/sql_use.jison b/src/jison/sql/calcite/sql_use.jison deleted file mode 100644 index c99b2c2..0000000 --- a/src/jison/sql/calcite/sql_use.jison +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -UseStatement - : 'USE' RegularIdentifier - { - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : 'USE' 'CURSOR' - { - parser.suggestDatabases(); - } - ; diff --git a/src/jison/sql/calcite/sql_valueExpression.jison b/src/jison/sql/calcite/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/calcite/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/calcite/syntax_footer.jison b/src/jison/sql/calcite/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/calcite/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/calcite/syntax_header.jison b/src/jison/sql/calcite/syntax_header.jison deleted file mode 100644 index e2c6815..0000000 --- a/src/jison/sql/calcite/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/druid/autocomplete_footer.jison b/src/jison/sql/druid/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/druid/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/druid/autocomplete_header.jison b/src/jison/sql/druid/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/druid/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/druid/sql.jisonlex b/src/jison/sql/druid/sql.jisonlex deleted file mode 100644 index 83dbe72..0000000 --- a/src/jison/sql/druid/sql.jisonlex +++ /dev/null @@ -1,226 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CASCADE' { return 'CASCADE'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'COMMENT' { return 'COMMENT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DECIMAL' { return 'DECIMAL'; } -'DESC' { return 'DESC'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'GROUP' { return 'GROUP'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { return 'INSERT'; } -'INT' { return 'INT'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'ON' { return 'ON'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'REGEXP' { return 'REGEXP'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROW' { return 'ROW'; } -'ROLE' { return 'ROLE'; } -'ROWS' { return 'ROWS'; } -'SCHEMA' { return 'SCHEMA'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SMALLINT' { return 'SMALLINT'; } -'STRING' { return 'STRING'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNION' { return 'UNION'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'VIEW' { return 'VIEW'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'OVER' { return 'OVER'; } -'ROLE' { return 'ROLE'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/druid/sql_alter.jison b/src/jison/sql/druid/sql_alter.jison deleted file mode 100644 index 82acf8f..0000000 --- a/src/jison/sql/druid/sql_alter.jison +++ /dev/null @@ -1,109 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterTable - | AlterView - ; - -AlterStatement_EDIT - : AlterTable_EDIT - | AlterView_EDIT - | 'ALTER' 'CURSOR' - { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - ; - -AlterTable - : AlterTableLeftSide PartitionSpec - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT PartitionSpec - | AlterTableLeftSide 'CURSOR' - | AlterTableLeftSide PartitionSpec 'CURSOR' - ; - -AlterTableLeftSide - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AlterView - : AlterViewLeftSide 'AS' QuerySpecification - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | AlterViewLeftSide 'SET' 'CURSOR' - | AlterViewLeftSide 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide 'AS' QuerySpecification_EDIT - ; - - -AlterViewLeftSide - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; diff --git a/src/jison/sql/druid/sql_create.jison b/src/jison/sql/druid/sql_create.jison deleted file mode 100644 index 1329ac6..0000000 --- a/src/jison/sql/druid/sql_create.jison +++ /dev/null @@ -1,615 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment - { - if (!$1) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - -TableDefinition - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' - { - var keywords = []; - if (!$1 && !$2) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : 'NOT' 'CURSOR' - { - parser.suggestKeywords(['NULL']); - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITION' 'BY' RangeClause - ; - -PartitionedBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['RANGE']); - } - | 'PARTITION' 'BY' RangeClause_EDIT - ; - -RangeClause - : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : 'RANGE' 'CURSOR' - | 'RANGE' ParenthesizedColumnList_EDIT - | 'RANGE' ParenthesizedColumnList 'CURSOR' - | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PARTITION']); - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; diff --git a/src/jison/sql/druid/sql_drop.jison b/src/jison/sql/druid/sql_drop.jison deleted file mode 100644 index 0e3aa53..0000000 --- a/src/jison/sql/druid/sql_drop.jison +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropRoleStatement - | DropTableStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropTableStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec - ; diff --git a/src/jison/sql/druid/sql_error.jison b/src/jison/sql/druid/sql_error.jison deleted file mode 100644 index 48b9a4e..0000000 --- a/src/jison/sql/druid/sql_error.jison +++ /dev/null @@ -1,132 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$6 && !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/druid/sql_insert.jison b/src/jison/sql/druid/sql_insert.jison deleted file mode 100644 index 8b3544e..0000000 --- a/src/jison/sql/druid/sql_insert.jison +++ /dev/null @@ -1,72 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : InsertValuesStatement - ; - -DataManipulation_EDIT - : InsertValuesStatement_EDIT - ; - -InsertValuesStatement - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - ; - -InsertValuesStatement_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - parser.suggestKeywords(['VALUES']); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; diff --git a/src/jison/sql/druid/sql_main.jison b/src/jison/sql/druid/sql_main.jison deleted file mode 100644 index 3aaf9f9..0000000 --- a/src/jison/sql/druid/sql_main.jison +++ /dev/null @@ -1,2762 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - ; - -NonReservedKeyword - : 'ROLE' - | 'OPTION' - | 'STRUCT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | '~' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AVG' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BOOLEAN' - | 'BY' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'COMPARISON_OPERATOR' - | 'COUNT' - | 'CROSS' - | 'CURRENT' - | 'DATABASE' - | 'DECIMAL' - | 'DESC' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'EXISTS' - | 'FALSE' - | 'FLOAT' - | 'FOLLOWING' - | 'FROM' - | 'FULL' - | 'GROUP' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'IF' - | 'IN' - | 'INNER' - | 'INT' - | 'INTO' - | 'IS' - | 'JOIN' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'MAP' - | 'MAX' - | 'MIN' - | 'NOT' - | 'NULL' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUTER' - | 'OVER' - | 'PARTITION' - | 'PRECEDING' - | 'PURGE' - | 'RANGE' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SEMI' - | 'SET' - | 'SINGLE_QUOTE' - | 'SMALLINT' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRUE' - | 'UNION' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'WHEN' - | 'WHERE' - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -PrimitiveType - : 'BIGINT' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'FLOAT' - | 'INT' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if ($1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList - { - $$ = { tableReferenceList : $2 } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $5 ? @5 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$4 && !$5) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6; - if (!$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; - if (!$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = @5; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList - { - $$ = { valueExpression: $3 }; - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($2) { - $1.alias = $2.alias - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } else if ($2.suggestKeywords) { - keywords = $2.suggestKeywords; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'MAX' - | 'MIN' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; diff --git a/src/jison/sql/druid/sql_set.jison b/src/jison/sql/druid/sql_set.jison deleted file mode 100644 index 14cff5c..0000000 --- a/src/jison/sql/druid/sql_set.jison +++ /dev/null @@ -1,46 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetSpecification - ; - -DataDefinition_EDIT - : 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; diff --git a/src/jison/sql/druid/sql_update.jison b/src/jison/sql/druid/sql_update.jison deleted file mode 100644 index 1091c41..0000000 --- a/src/jison/sql/druid/sql_update.jison +++ /dev/null @@ -1,122 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - parser.suggestKeywords([ 'WHERE' ]); - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql/druid/sql_use.jison b/src/jison/sql/druid/sql_use.jison deleted file mode 100644 index c99b2c2..0000000 --- a/src/jison/sql/druid/sql_use.jison +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -UseStatement - : 'USE' RegularIdentifier - { - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : 'USE' 'CURSOR' - { - parser.suggestDatabases(); - } - ; diff --git a/src/jison/sql/druid/sql_valueExpression.jison b/src/jison/sql/druid/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/druid/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/druid/syntax_footer.jison b/src/jison/sql/druid/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/druid/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/druid/syntax_header.jison b/src/jison/sql/druid/syntax_header.jison deleted file mode 100644 index e2c6815..0000000 --- a/src/jison/sql/druid/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/elasticsearch/autocomplete_footer.jison b/src/jison/sql/elasticsearch/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/elasticsearch/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/elasticsearch/autocomplete_header.jison b/src/jison/sql/elasticsearch/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/elasticsearch/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/elasticsearch/sql.jisonlex b/src/jison/sql/elasticsearch/sql.jisonlex deleted file mode 100644 index 83dbe72..0000000 --- a/src/jison/sql/elasticsearch/sql.jisonlex +++ /dev/null @@ -1,226 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CASCADE' { return 'CASCADE'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'COMMENT' { return 'COMMENT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DECIMAL' { return 'DECIMAL'; } -'DESC' { return 'DESC'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'GROUP' { return 'GROUP'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { return 'INSERT'; } -'INT' { return 'INT'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'ON' { return 'ON'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'REGEXP' { return 'REGEXP'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROW' { return 'ROW'; } -'ROLE' { return 'ROLE'; } -'ROWS' { return 'ROWS'; } -'SCHEMA' { return 'SCHEMA'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SMALLINT' { return 'SMALLINT'; } -'STRING' { return 'STRING'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNION' { return 'UNION'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'VIEW' { return 'VIEW'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'OVER' { return 'OVER'; } -'ROLE' { return 'ROLE'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/elasticsearch/sql_alter.jison b/src/jison/sql/elasticsearch/sql_alter.jison deleted file mode 100644 index 82acf8f..0000000 --- a/src/jison/sql/elasticsearch/sql_alter.jison +++ /dev/null @@ -1,109 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterTable - | AlterView - ; - -AlterStatement_EDIT - : AlterTable_EDIT - | AlterView_EDIT - | 'ALTER' 'CURSOR' - { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - ; - -AlterTable - : AlterTableLeftSide PartitionSpec - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT PartitionSpec - | AlterTableLeftSide 'CURSOR' - | AlterTableLeftSide PartitionSpec 'CURSOR' - ; - -AlterTableLeftSide - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AlterView - : AlterViewLeftSide 'AS' QuerySpecification - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | AlterViewLeftSide 'SET' 'CURSOR' - | AlterViewLeftSide 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide 'AS' QuerySpecification_EDIT - ; - - -AlterViewLeftSide - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; diff --git a/src/jison/sql/elasticsearch/sql_create.jison b/src/jison/sql/elasticsearch/sql_create.jison deleted file mode 100644 index 1329ac6..0000000 --- a/src/jison/sql/elasticsearch/sql_create.jison +++ /dev/null @@ -1,615 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment - { - if (!$1) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - -TableDefinition - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' - { - var keywords = []; - if (!$1 && !$2) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : 'NOT' 'CURSOR' - { - parser.suggestKeywords(['NULL']); - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITION' 'BY' RangeClause - ; - -PartitionedBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['RANGE']); - } - | 'PARTITION' 'BY' RangeClause_EDIT - ; - -RangeClause - : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : 'RANGE' 'CURSOR' - | 'RANGE' ParenthesizedColumnList_EDIT - | 'RANGE' ParenthesizedColumnList 'CURSOR' - | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PARTITION']); - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; diff --git a/src/jison/sql/elasticsearch/sql_drop.jison b/src/jison/sql/elasticsearch/sql_drop.jison deleted file mode 100644 index 0e3aa53..0000000 --- a/src/jison/sql/elasticsearch/sql_drop.jison +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropRoleStatement - | DropTableStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropTableStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec - ; diff --git a/src/jison/sql/elasticsearch/sql_error.jison b/src/jison/sql/elasticsearch/sql_error.jison deleted file mode 100644 index 48b9a4e..0000000 --- a/src/jison/sql/elasticsearch/sql_error.jison +++ /dev/null @@ -1,132 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$6 && !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/elasticsearch/sql_insert.jison b/src/jison/sql/elasticsearch/sql_insert.jison deleted file mode 100644 index 8b3544e..0000000 --- a/src/jison/sql/elasticsearch/sql_insert.jison +++ /dev/null @@ -1,72 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : InsertValuesStatement - ; - -DataManipulation_EDIT - : InsertValuesStatement_EDIT - ; - -InsertValuesStatement - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - ; - -InsertValuesStatement_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - parser.suggestKeywords(['VALUES']); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; diff --git a/src/jison/sql/elasticsearch/sql_main.jison b/src/jison/sql/elasticsearch/sql_main.jison deleted file mode 100644 index 3aaf9f9..0000000 --- a/src/jison/sql/elasticsearch/sql_main.jison +++ /dev/null @@ -1,2762 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - ; - -NonReservedKeyword - : 'ROLE' - | 'OPTION' - | 'STRUCT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | '~' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AVG' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BOOLEAN' - | 'BY' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'COMPARISON_OPERATOR' - | 'COUNT' - | 'CROSS' - | 'CURRENT' - | 'DATABASE' - | 'DECIMAL' - | 'DESC' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'EXISTS' - | 'FALSE' - | 'FLOAT' - | 'FOLLOWING' - | 'FROM' - | 'FULL' - | 'GROUP' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'IF' - | 'IN' - | 'INNER' - | 'INT' - | 'INTO' - | 'IS' - | 'JOIN' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'MAP' - | 'MAX' - | 'MIN' - | 'NOT' - | 'NULL' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUTER' - | 'OVER' - | 'PARTITION' - | 'PRECEDING' - | 'PURGE' - | 'RANGE' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SEMI' - | 'SET' - | 'SINGLE_QUOTE' - | 'SMALLINT' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRUE' - | 'UNION' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'WHEN' - | 'WHERE' - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -PrimitiveType - : 'BIGINT' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'FLOAT' - | 'INT' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if ($1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList - { - $$ = { tableReferenceList : $2 } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $5 ? @5 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$4 && !$5) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6; - if (!$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; - if (!$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = @5; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList - { - $$ = { valueExpression: $3 }; - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($2) { - $1.alias = $2.alias - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } else if ($2.suggestKeywords) { - keywords = $2.suggestKeywords; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'MAX' - | 'MIN' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; diff --git a/src/jison/sql/elasticsearch/sql_set.jison b/src/jison/sql/elasticsearch/sql_set.jison deleted file mode 100644 index 14cff5c..0000000 --- a/src/jison/sql/elasticsearch/sql_set.jison +++ /dev/null @@ -1,46 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetSpecification - ; - -DataDefinition_EDIT - : 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; diff --git a/src/jison/sql/elasticsearch/sql_update.jison b/src/jison/sql/elasticsearch/sql_update.jison deleted file mode 100644 index 1091c41..0000000 --- a/src/jison/sql/elasticsearch/sql_update.jison +++ /dev/null @@ -1,122 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - parser.suggestKeywords([ 'WHERE' ]); - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql/elasticsearch/sql_use.jison b/src/jison/sql/elasticsearch/sql_use.jison deleted file mode 100644 index c99b2c2..0000000 --- a/src/jison/sql/elasticsearch/sql_use.jison +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -UseStatement - : 'USE' RegularIdentifier - { - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : 'USE' 'CURSOR' - { - parser.suggestDatabases(); - } - ; diff --git a/src/jison/sql/elasticsearch/sql_valueExpression.jison b/src/jison/sql/elasticsearch/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/elasticsearch/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/elasticsearch/syntax_footer.jison b/src/jison/sql/elasticsearch/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/elasticsearch/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/elasticsearch/syntax_header.jison b/src/jison/sql/elasticsearch/syntax_header.jison deleted file mode 100644 index e2c6815..0000000 --- a/src/jison/sql/elasticsearch/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/flink/autocomplete_footer.jison b/src/jison/sql/flink/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/flink/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/flink/autocomplete_header.jison b/src/jison/sql/flink/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/flink/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/flink/sql.jisonlex b/src/jison/sql/flink/sql.jisonlex deleted file mode 100644 index df00536..0000000 --- a/src/jison/sql/flink/sql.jisonlex +++ /dev/null @@ -1,279 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// Reserved Keywords -'ADVANCE' { return 'ADVANCE'; } -'ANALYZE' { return 'ANALYZE'; } -'AND' { return 'AND'; } -'ARRAY' { return 'ARRAY'; } -'AS' { return 'AS'; } -'AT' { return 'AT'; } -'BEGINNING' { return 'BEGINNING' } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CASE' { return 'CASE'; } -'CAST' { return 'CAST'; } -'CATALOG' { return 'CATALOG'; } -'CHANGES' { return 'CHANGES'; } -'COLUMN' { return 'COLUMN'; } -'COLUMNS' { return 'COLUMNS'; } -'CONNECTOR' { return 'CONNECTOR'; } -'CONNECTORS' { return 'CONNECTORS'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'DATE' { return 'DATE'; } -'DAY' { return 'DAY'; } -'DECIMAL' { return 'DECIMAL'; } -'DELETE' { return 'DELETE'; } -'DESCRIBE' { return 'DESCRIBE'; } -'DISTINCT' { return 'DISTINCT'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'EMIT' { return 'EMIT'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'EXPLAIN' { parser.determineCase(yytext); return 'EXPLAIN'; } -'EXPORT' { return 'EXPORT'; } -'EXTENDED' { return 'EXTENDED'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'FUNCTION' { return 'FUNCTION'; } -'FUNCTIONS' { return 'FUNCTIONS'; } -'GROUP' { return 'GROUP'; } -'HAVING' { return 'HAVING'; } -'HOPPING' { return 'HOPPING'; } -'HOUR' { return 'HOUR'; } -'HOURS' { return 'HOURS'; } -'IF' { return 'IF'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { return 'INSERT'; } -'INT' { return 'INT'; } -'INTEGER' { return 'INTEGER'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'KEY' { return 'KEY'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'LIST' { return 'LIST'; } -'LOAD' { return 'LOAD'; } -'MAP' { return 'MAP'; } -'MILLISECOND' { return 'MILLISECOND'; } -'MILLISECONDS' { return 'MILLISECONDS'; } -'MINUTE' { return 'MINUTE'; } -'MINUTES' { return 'MINUTES'; } -'MONTH' { return 'MONTH'; } -'MONTHS' { return 'MONTHS'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'ON' { return 'ON'; } -'OR' { return 'OR'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PARTITIONS' { return 'PARTITIONS'; } -'PRINT' { return 'PRINT'; } -'PROPERTIES' { return 'PROPERTIES'; } -'QUERIES' { return 'QUERIES'; } -'QUERY' { return 'QUERY'; } -'RENAME' { return 'RENAME'; } -'RESET' { return 'RESET'; } -'RIGHT' { return 'RIGHT'; } -'RUN' { return 'RUN'; } -'SAMPLE' { return 'SAMPLE'; } -'SCRIPT' { return 'SCRIPT'; } -'SECOND' { return 'SECOND'; } -'SECOND' { return 'SECOND'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SESSION' { return 'SESSION'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SINK' { return 'SINK'; } -'SOURCE' { return 'SOURCE'; } -'STREAM' { return 'STREAM'; } -'STREAMS' { return 'STREAMS'; } -'STRING' { return 'STRING'; } -'STRUCT' { return 'STRUCT'; } -'TABLE' { return 'TABLE'; } -'TABLES' { return 'TABLES'; } -'TERMINATE' { return 'TERMINATE'; } -'THEN' { return 'THEN'; } -'TIME' { return 'TIME'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TOPIC' { return 'TOPIC'; } -'TOPICS' { return 'TOPICS'; } -'TUMBLING' { return 'TUMBLING'; } -'TYPE' { return 'TYPE'; } -'TYPES' { return 'TYPES'; } -'UNSET' { return 'UNSET'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } -'WITHIN' { return 'WITHIN'; } -'YEAR' { return 'YEAR'; } -'YEARS' { return 'YEARS'; } -'ZONE' { return 'ZONE'; } - -// --- UDFs --- -ABS\s*\( { yy.lexer.unput('('); yytext = 'abs'; parser.addFunctionLocation(yylloc, yytext); return 'ABS'; } -ARRAYCONTAINS\s*\( { yy.lexer.unput('('); yytext = 'arraycontains'; parser.addFunctionLocation(yylloc, yytext); return 'ARRAYCONTAINS'; } -CEIL\s*\( { yy.lexer.unput('('); yytext = 'ceil'; parser.addFunctionLocation(yylloc, yytext); return 'CEIL'; } -CONCAT\s*\( { yy.lexer.unput('('); yytext = 'concat'; parser.addFunctionLocation(yylloc, yytext); return 'CONCAT'; } -DATETOSTRING\s*\( { yy.lexer.unput('('); yytext = 'datetostring'; parser.addFunctionLocation(yylloc, yytext); return 'DATETOSTRING'; } -ELT\s*\( { yy.lexer.unput('('); yytext = 'elt'; parser.addFunctionLocation(yylloc, yytext); return 'ELT'; } -EXTRACTJSONFIELD\s*\( { yy.lexer.unput('('); yytext = 'extractjsonfield'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACTJSONFIELD'; } -FIELD\s*\( { yy.lexer.unput('('); yytext = 'field'; parser.addFunctionLocation(yylloc, yytext); return 'FIELD'; } -FLOOR\s*\( { yy.lexer.unput('('); yytext = 'floor'; parser.addFunctionLocation(yylloc, yytext); return 'FLOOR'; } -GEO_DISTANCE\s*\( { yy.lexer.unput('('); yytext = 'geo_distance'; parser.addFunctionLocation(yylloc, yytext); return 'GEO_DISTANCE'; } -IFNULL\s*\( { yy.lexer.unput('('); yytext = 'ifnull'; parser.addFunctionLocation(yylloc, yytext); return 'IFNULL'; } -LCASE\s*\( { yy.lexer.unput('('); yytext = 'lcase'; parser.addFunctionLocation(yylloc, yytext); return 'LCASE'; } -LEN\s*\( { yy.lexer.unput('('); yytext = 'len'; parser.addFunctionLocation(yylloc, yytext); return 'LEN'; } -MASK\s*\( { yy.lexer.unput('('); yytext = 'msk'; parser.addFunctionLocation(yylloc, yytext); return 'MASK'; } -MASK_KEEP_LEFT\s*\( { yy.lexer.unput('('); yytext = 'mask_keep_left'; parser.addFunctionLocation(yylloc, yytext); return 'MASK_KEEP_LEFT'; } -MASK_KEEP_RIGHT\s*\( { yy.lexer.unput('('); yytext = 'mask_keep_right'; parser.addFunctionLocation(yylloc, yytext); return 'MASK_KEEP_RIGHT'; } -MASK_LEFT\s*\( { yy.lexer.unput('('); yytext = 'mask_left'; parser.addFunctionLocation(yylloc, yytext); return 'MASK_LEFT'; } -MASK_RIGHT\s*\( { yy.lexer.unput('('); yytext = 'mask_right'; parser.addFunctionLocation(yylloc, yytext); return 'MASK_RIGHT'; } -RANDOM\s*\( { yy.lexer.unput('('); yytext = 'random'; parser.addFunctionLocation(yylloc, yytext); return 'RANDOM'; } -ROUND\s*\( { yy.lexer.unput('('); yytext = 'round'; parser.addFunctionLocation(yylloc, yytext); return 'ROUND'; } -SPLIT\s*\( { yy.lexer.unput('('); yytext = 'split'; parser.addFunctionLocation(yylloc, yytext); return 'SPLIT'; } -STRINGTODATE\s*\( { yy.lexer.unput('('); yytext = 'stringtodate'; parser.addFunctionLocation(yylloc, yytext); return 'STRINGTODATE'; } -STRINGTOTIMESTAMP\s*\( { yy.lexer.unput('('); yytext = 'stringtotimestamp'; parser.addFunctionLocation(yylloc, yytext); return 'STRINGTOTIMESTAMP'; } -SUBSTRING\s*\( { yy.lexer.unput('('); yytext = 'substring'; parser.addFunctionLocation(yylloc, yytext); return 'SUBSTRING'; } -TIMESTAMPTOSTRING\s*\( { yy.lexer.unput('('); yytext = 'timestamptostring'; parser.addFunctionLocation(yylloc, yytext); return 'TIMESTAMPTOSTRING'; } -TRIM\s*\( { yy.lexer.unput('('); yytext = 'trim'; parser.addFunctionLocation(yylloc, yytext); return 'TRIM'; } -UCASE\s*\( { yy.lexer.unput('('); yytext = 'ucase'; parser.addFunctionLocation(yylloc, yytext); return 'UCASE'; } -URL_DECODE_PARAM\s*\( { yy.lexer.unput('('); yytext = 'url_decode_param'; parser.addFunctionLocation(yylloc, yytext); return 'URL_DECODE_PARAM'; } -URL_ENCODE_PARAM\s*\( { yy.lexer.unput('('); yytext = 'urel_encode_param'; parser.addFunctionLocation(yylloc, yytext); return 'URL_ENCODE_PARAM'; } -URL_EXTRACT_FRAGMENT\s*\( { yy.lexer.unput('('); yytext = 'url_extract_fragment'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_FRAGMENT'; } -URL_EXTRACT_HOST\s*\( { yy.lexer.unput('('); yytext = 'url_extract_host'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_HOST'; } -URL_EXTRACT_PARAMETER\s*\( { yy.lexer.unput('('); yytext = 'url_extract_parameter'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_PARAMETER'; } -URL_EXTRACT_PATH\s*\( { yy.lexer.unput('('); yytext = 'url_extrct_path'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_PATH'; } -URL_EXTRACT_PORT\s*\( { yy.lexer.unput('('); yytext = 'url_extract_port'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_PORT'; } -URL_EXTRACT_PROTOCOL\s*\( { yy.lexer.unput('('); yytext = 'url_extract_protocol'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_PROTOCOL'; } -URL_EXTRACT_QUERY\s*\( { yy.lexer.unput('('); yytext = 'url_extract_query'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_QUERY'; } - - -// Analytical functions -COLLECT_LIST\s*\( { yy.lexer.unput('('); yytext = 'collect_list'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_LIST'; } -COLLECT_SET\s*\( { yy.lexer.unput('('); yytext = 'collect_set'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_SET'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -HISTOGRAM\s*\( { yy.lexer.unput('('); yytext = 'historgram'; parser.addFunctionLocation(yylloc, yytext); return 'HISTOGRAM'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -TOPK\s*\( { yy.lexer.unput('('); yytext = 'topk'; parser.addFunctionLocation(yylloc, yytext); return 'TOPK'; } -TOPKDISTINCT\s*\( { yy.lexer.unput('('); yytext = 'topkdistinct'; parser.addFunctionLocation(yylloc, yytext); return 'TOPKDISTINCT'; } -WindowStart\s*\( { yy.lexer.unput('('); yytext = 'windowstart'; parser.addFunctionLocation(yylloc, yytext); return 'WindowStart'; } -WindowEnd\s*\( { yy.lexer.unput('('); yytext = 'windowend'; parser.addFunctionLocation(yylloc, yytext); return 'WindowEnd'; } - - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/flink/sql_create.jison b/src/jison/sql/flink/sql_create.jison deleted file mode 100644 index 1329ac6..0000000 --- a/src/jison/sql/flink/sql_create.jison +++ /dev/null @@ -1,615 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment - { - if (!$1) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - -TableDefinition - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' - { - var keywords = []; - if (!$1 && !$2) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : 'NOT' 'CURSOR' - { - parser.suggestKeywords(['NULL']); - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITION' 'BY' RangeClause - ; - -PartitionedBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['RANGE']); - } - | 'PARTITION' 'BY' RangeClause_EDIT - ; - -RangeClause - : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : 'RANGE' 'CURSOR' - | 'RANGE' ParenthesizedColumnList_EDIT - | 'RANGE' ParenthesizedColumnList 'CURSOR' - | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PARTITION']); - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; diff --git a/src/jison/sql/flink/sql_drop.jison b/src/jison/sql/flink/sql_drop.jison deleted file mode 100644 index 0e3aa53..0000000 --- a/src/jison/sql/flink/sql_drop.jison +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropRoleStatement - | DropTableStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropTableStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec - ; diff --git a/src/jison/sql/flink/sql_error.jison b/src/jison/sql/flink/sql_error.jison deleted file mode 100644 index 48b9a4e..0000000 --- a/src/jison/sql/flink/sql_error.jison +++ /dev/null @@ -1,132 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$6 && !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/flink/sql_insert.jison b/src/jison/sql/flink/sql_insert.jison deleted file mode 100644 index 8b3544e..0000000 --- a/src/jison/sql/flink/sql_insert.jison +++ /dev/null @@ -1,72 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : InsertValuesStatement - ; - -DataManipulation_EDIT - : InsertValuesStatement_EDIT - ; - -InsertValuesStatement - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - ; - -InsertValuesStatement_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - parser.suggestKeywords(['VALUES']); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; diff --git a/src/jison/sql/flink/sql_list.jison b/src/jison/sql/flink/sql_list.jison deleted file mode 100644 index f153317..0000000 --- a/src/jison/sql/flink/sql_list.jison +++ /dev/null @@ -1,37 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : 'LIST' ListStatement - ; - -DataDefinition_EDIT - : ListStatement_EDIT - ; - -ListStatement - : 'TABLES' - | 'STREAMS' - | 'TOPICS' - ; - - -ListStatement_EDIT - : 'LIST' 'CURSOR' - { - parser.suggestKeywords(['TABLES', 'STREAMS', 'TOPICS']); - } - ; diff --git a/src/jison/sql/flink/sql_main.jison b/src/jison/sql/flink/sql_main.jison deleted file mode 100644 index 0d3fedc..0000000 --- a/src/jison/sql/flink/sql_main.jison +++ /dev/null @@ -1,2762 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - ; - -NonReservedKeyword - : 'ROLE' - | 'OPTION' - | 'STRUCT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | '~' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AVG' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BOOLEAN' - | 'BY' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'COMPARISON_OPERATOR' - | 'COUNT' - | 'CROSS' - | 'CURRENT' - | 'DATABASE' - | 'DECIMAL' - | 'DESC' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'EXISTS' - | 'FALSE' - | 'FLOAT' - | 'FOLLOWING' - | 'FROM' - | 'FULL' - | 'GROUP' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'IF' - | 'IN' - | 'INNER' - | 'INT' - | 'INTO' - | 'IS' - | 'JOIN' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'MAP' - | 'MAX' - | 'MIN' - | 'NOT' - | 'NULL' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUTER' - | 'OVER' - | 'PARTITION' - | 'PRECEDING' - | 'PURGE' - | 'RANGE' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SEMI' - | 'SET' - | 'SINGLE_QUOTE' - | 'SMALLINT' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRUE' - | 'UNION' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'WHEN' - | 'WHERE' - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -PrimitiveType - : 'BIGINT' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'FLOAT' - | 'INT' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if ($1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList - { - $$ = { tableReferenceList : $2 } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $5 ? @5 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$4 && !$5) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6; - if (!$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; - if (!$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = @5; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList - { - $$ = { valueExpression: $3 }; - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($2) { - $1.alias = $2.alias - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } else if ($2.suggestKeywords) { - keywords = $2.suggestKeywords; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'MAX' - | 'MIN' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; diff --git a/src/jison/sql/flink/sql_set.jison b/src/jison/sql/flink/sql_set.jison deleted file mode 100644 index 14cff5c..0000000 --- a/src/jison/sql/flink/sql_set.jison +++ /dev/null @@ -1,46 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetSpecification - ; - -DataDefinition_EDIT - : 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; diff --git a/src/jison/sql/flink/sql_show.jison b/src/jison/sql/flink/sql_show.jison deleted file mode 100644 index 909df5a..0000000 --- a/src/jison/sql/flink/sql_show.jison +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : 'SHOW' ShowStatement - ; - -DataDefinition_EDIT - : ShowStatement_EDIT - ; - -ShowStatement - : 'TABLES' - | 'STREAMS' - | 'TOPICS' - | 'QUERIES' - | 'PROPERTIES' - ; - - -ShowStatement_EDIT - : 'SHOW' 'CURSOR' - { - parser.suggestKeywords(['TABLES', 'STREAMS', 'TOPICS', 'QUERIES', 'PROPERTIES']); - } - ; diff --git a/src/jison/sql/flink/sql_valueExpression.jison b/src/jison/sql/flink/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/flink/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/flink/syntax_footer.jison b/src/jison/sql/flink/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/flink/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/flink/syntax_header.jison b/src/jison/sql/flink/syntax_header.jison deleted file mode 100644 index e2c6815..0000000 --- a/src/jison/sql/flink/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/generic/autocomplete_footer.jison b/src/jison/sql/generic/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/generic/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/generic/autocomplete_header.jison b/src/jison/sql/generic/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/generic/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/generic/sql.jisonlex b/src/jison/sql/generic/sql.jisonlex deleted file mode 100644 index 83dbe72..0000000 --- a/src/jison/sql/generic/sql.jisonlex +++ /dev/null @@ -1,226 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CASCADE' { return 'CASCADE'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'COMMENT' { return 'COMMENT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DECIMAL' { return 'DECIMAL'; } -'DESC' { return 'DESC'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'GROUP' { return 'GROUP'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { return 'INSERT'; } -'INT' { return 'INT'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'ON' { return 'ON'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'REGEXP' { return 'REGEXP'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROW' { return 'ROW'; } -'ROLE' { return 'ROLE'; } -'ROWS' { return 'ROWS'; } -'SCHEMA' { return 'SCHEMA'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SMALLINT' { return 'SMALLINT'; } -'STRING' { return 'STRING'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNION' { return 'UNION'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'VIEW' { return 'VIEW'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'OVER' { return 'OVER'; } -'ROLE' { return 'ROLE'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/generic/sql_alter.jison b/src/jison/sql/generic/sql_alter.jison deleted file mode 100644 index 82acf8f..0000000 --- a/src/jison/sql/generic/sql_alter.jison +++ /dev/null @@ -1,109 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterTable - | AlterView - ; - -AlterStatement_EDIT - : AlterTable_EDIT - | AlterView_EDIT - | 'ALTER' 'CURSOR' - { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - ; - -AlterTable - : AlterTableLeftSide PartitionSpec - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT PartitionSpec - | AlterTableLeftSide 'CURSOR' - | AlterTableLeftSide PartitionSpec 'CURSOR' - ; - -AlterTableLeftSide - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AlterView - : AlterViewLeftSide 'AS' QuerySpecification - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | AlterViewLeftSide 'SET' 'CURSOR' - | AlterViewLeftSide 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide 'AS' QuerySpecification_EDIT - ; - - -AlterViewLeftSide - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; diff --git a/src/jison/sql/generic/sql_create.jison b/src/jison/sql/generic/sql_create.jison deleted file mode 100644 index 1329ac6..0000000 --- a/src/jison/sql/generic/sql_create.jison +++ /dev/null @@ -1,615 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment - { - if (!$1) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - -TableDefinition - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' - { - var keywords = []; - if (!$1 && !$2) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : 'NOT' 'CURSOR' - { - parser.suggestKeywords(['NULL']); - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITION' 'BY' RangeClause - ; - -PartitionedBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['RANGE']); - } - | 'PARTITION' 'BY' RangeClause_EDIT - ; - -RangeClause - : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : 'RANGE' 'CURSOR' - | 'RANGE' ParenthesizedColumnList_EDIT - | 'RANGE' ParenthesizedColumnList 'CURSOR' - | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PARTITION']); - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; diff --git a/src/jison/sql/generic/sql_drop.jison b/src/jison/sql/generic/sql_drop.jison deleted file mode 100644 index 0e3aa53..0000000 --- a/src/jison/sql/generic/sql_drop.jison +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropRoleStatement - | DropTableStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropTableStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec - ; diff --git a/src/jison/sql/generic/sql_error.jison b/src/jison/sql/generic/sql_error.jison deleted file mode 100644 index 48b9a4e..0000000 --- a/src/jison/sql/generic/sql_error.jison +++ /dev/null @@ -1,132 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$6 && !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/generic/sql_insert.jison b/src/jison/sql/generic/sql_insert.jison deleted file mode 100644 index 8b3544e..0000000 --- a/src/jison/sql/generic/sql_insert.jison +++ /dev/null @@ -1,72 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : InsertValuesStatement - ; - -DataManipulation_EDIT - : InsertValuesStatement_EDIT - ; - -InsertValuesStatement - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - ; - -InsertValuesStatement_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - parser.suggestKeywords(['VALUES']); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; diff --git a/src/jison/sql/generic/sql_main.jison b/src/jison/sql/generic/sql_main.jison deleted file mode 100644 index 3aaf9f9..0000000 --- a/src/jison/sql/generic/sql_main.jison +++ /dev/null @@ -1,2762 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - ; - -NonReservedKeyword - : 'ROLE' - | 'OPTION' - | 'STRUCT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | '~' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AVG' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BOOLEAN' - | 'BY' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'COMPARISON_OPERATOR' - | 'COUNT' - | 'CROSS' - | 'CURRENT' - | 'DATABASE' - | 'DECIMAL' - | 'DESC' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'EXISTS' - | 'FALSE' - | 'FLOAT' - | 'FOLLOWING' - | 'FROM' - | 'FULL' - | 'GROUP' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'IF' - | 'IN' - | 'INNER' - | 'INT' - | 'INTO' - | 'IS' - | 'JOIN' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'MAP' - | 'MAX' - | 'MIN' - | 'NOT' - | 'NULL' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUTER' - | 'OVER' - | 'PARTITION' - | 'PRECEDING' - | 'PURGE' - | 'RANGE' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SEMI' - | 'SET' - | 'SINGLE_QUOTE' - | 'SMALLINT' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRUE' - | 'UNION' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'WHEN' - | 'WHERE' - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -PrimitiveType - : 'BIGINT' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'FLOAT' - | 'INT' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if ($1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList - { - $$ = { tableReferenceList : $2 } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $5 ? @5 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$4 && !$5) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6; - if (!$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; - if (!$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = @5; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList - { - $$ = { valueExpression: $3 }; - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($2) { - $1.alias = $2.alias - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } else if ($2.suggestKeywords) { - keywords = $2.suggestKeywords; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'MAX' - | 'MIN' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; diff --git a/src/jison/sql/generic/sql_set.jison b/src/jison/sql/generic/sql_set.jison deleted file mode 100644 index 14cff5c..0000000 --- a/src/jison/sql/generic/sql_set.jison +++ /dev/null @@ -1,46 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetSpecification - ; - -DataDefinition_EDIT - : 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; diff --git a/src/jison/sql/generic/sql_update.jison b/src/jison/sql/generic/sql_update.jison deleted file mode 100644 index 1091c41..0000000 --- a/src/jison/sql/generic/sql_update.jison +++ /dev/null @@ -1,122 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - parser.suggestKeywords([ 'WHERE' ]); - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql/generic/sql_use.jison b/src/jison/sql/generic/sql_use.jison deleted file mode 100644 index c99b2c2..0000000 --- a/src/jison/sql/generic/sql_use.jison +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -UseStatement - : 'USE' RegularIdentifier - { - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : 'USE' 'CURSOR' - { - parser.suggestDatabases(); - } - ; diff --git a/src/jison/sql/generic/sql_valueExpression.jison b/src/jison/sql/generic/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/generic/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/generic/syntax_footer.jison b/src/jison/sql/generic/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/generic/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/generic/syntax_header.jison b/src/jison/sql/generic/syntax_header.jison deleted file mode 100644 index e2c6815..0000000 --- a/src/jison/sql/generic/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/hive/autocomplete_footer.jison b/src/jison/sql/hive/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/hive/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/hive/autocomplete_header.jison b/src/jison/sql/hive/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/hive/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/hive/sql.jisonlex b/src/jison/sql/hive/sql.jisonlex deleted file mode 100644 index 8b09c08..0000000 --- a/src/jison/sql/hive/sql.jisonlex +++ /dev/null @@ -1,419 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'ARRAY' { return 'ARRAY'; } -'AS' { return 'AS'; } -'AUTHORIZATION' { return 'AUTHORIZATION'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BINARY' { return 'BINARY'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CACHE' { return 'CACHE'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'COLUMN' { return 'COLUMN'; } -'CONF' { return 'CONF'; } -'CONSTRAINT' { return 'CONSTRAINT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CUBE' { return 'CUBE'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DATE' { return 'DATE'; } -'DECIMAL' { return 'DECIMAL'; } -'DELETE' { parser.determineCase(yytext); return 'DELETE'; } -'DESCRIBE' { parser.determineCase(yytext); return 'DESCRIBE'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'EXTENDED' { return 'EXTENDED'; } -'EXTERNAL' { return 'EXTERNAL'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FOR' { return 'FOR'; } -'FOREIGN' { return 'FOREIGN'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'FUNCTION' { return 'FUNCTION'; } -'GRANT' { return 'GRANT'; } -'GROUP' { return 'GROUP'; } -'GROUPING' { return 'GROUPING'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IMPORT' { parser.determineCase(yytext); return 'IMPORT'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { parser.determineCase(yytext); return 'INSERT'; } -'INT' { return 'INT'; } -'INTEGER' { return 'INTEGER'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LATERAL' { return 'LATERAL'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'LOCAL' { return 'LOCAL'; } -'LIFECYCLE' { return 'LIFECYCLE'; } -'MACRO' { return 'MACRO'; } -'MAP' { return 'MAP'; } -'NONE' { return 'NONE'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'NULLS' { return 'NULLS'; } -'OF' { return 'OF'; } -'ON' { return 'ON'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUT' { return 'OUT'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PRECISION' { return 'PRECISION'; } -'PRIMARY' { return 'PRIMARY'; } -'RANGE' { return 'RANGE'; } -'REFERENCES' { return 'REFERENCES'; } -'REGEXP' { return 'REGEXP'; } -'REVOKE' { return 'REVOKE'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROLLUP' { return 'ROLLUP'; } -'ROW' { return 'ROW'; } -'ROWS' { return 'ROWS'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SMALLINT' { return 'SMALLINT'; } -'SYNC' { return 'SYNC'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNION' { return 'UNION'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USER' { return 'USER'; } -'USING' { return 'USING'; } -'UTC_TIMESTAMP' { return 'UTC_TIMESTAMP'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'VIEWS' { return 'VIEWS'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'ABORT' { parser.determineCase(yytext); return 'ABORT'; } -'ADD' { return 'ADD'; } -'ADMIN' { return 'ADMIN'; } -'AFTER' { return 'AFTER'; } -'ANALYZE' { parser.determineCase(yytext); return 'ANALYZE'; } -'ARCHIVE' { return 'ARCHIVE'; } -'ASC' { return 'ASC'; } -'AST' { return 'AST'; } -'AVRO' { return 'AVRO'; } -'BUCKET' { return 'BUCKET'; } -'BUCKETS' { return 'BUCKETS'; } -'CASCADE' { return 'CASCADE'; } -'CBO' { return 'CBO'; } -'CHANGE' { return 'CHANGE'; } -'CHECK' { return 'CHECK'; } -'CLUSTER' { return 'CLUSTER'; } -'CLUSTERED' { return 'CLUSTERED'; } -'COLLECTION' { return 'COLLECTION'; } -'COLUMNS' { return 'COLUMNS'; } -'COMMENT' { return 'COMMENT'; } -'COMPACT' { return 'COMPACT'; } -'COMPACTIONS' { return 'COMPACTIONS'; } -'COMPUTE' { return 'COMPUTE'; } -'CONCATENATE' { return 'CONCATENATE'; } -'COST' { return 'COST'; } -'CURRENT_DATE' { return 'CURRENT_DATE'; } -'CURRENT_TIMESTAMP' { return 'CURRENT_TIMESTAMP'; } -'CURRENT_USER' { return 'CURRENT_USER'; } -'DATA' { return 'DATA'; } -'DATABASES' { return 'DATABASES'; } -'DAY' { return 'DAY'; } -'DAYOFWEEK' { return 'DAYOFWEEK'; } -'DBPROPERTIES' { return 'DBPROPERTIES'; } -'DEFAULT' { return 'DEFAULT'; } -'DEFERRED' { return 'DEFERRED'; } -'DEFINED' { return 'DEFINED'; } -'DELIMITED' { return 'DELIMITED'; } -'DEPENDENCY' { return 'DEPENDENCY'; } -'DESC' { return 'DESC'; } -'DETAIL' { return 'DETAIL'; } -'DIRECTORY' { this.begin('hdfs'); return 'DIRECTORY'; } -'DISABLE' { return 'DISABLE'; } -'DISTRIBUTE' { return 'DISTRIBUTE'; } -'DISTRIBUTED' { return 'DISTRIBUTED'; } -DOUBLE\s+PRECISION { return 'DOUBLE_PRECISION'; } -'ENABLE' { return 'ENABLE'; } -'ESCAPED' { return 'ESCAPED'; } -'EXCHANGE' { return 'EXCHANGE'; } -'EXPLAIN' { parser.determineCase(yytext); return 'EXPLAIN'; } -'EXPORT' { parser.determineCase(yytext); return 'EXPORT'; } -'EXPRESSION' { return 'EXPRESSION'; } -'FIELDS' { return 'FIELDS'; } -'FILE' { return 'FILE'; } -'FILEFORMAT' { return 'FILEFORMAT'; } -'FIRST' { return 'FIRST'; } -'FORMAT' { return 'FORMAT'; } -'FORMATTED' { return 'FORMATTED'; } -'FUNCTIONS' { return 'FUNCTIONS'; } -'HOUR' { return 'HOUR'; } -'IDXPROPERTIES' { return 'IDXPROPERTIES'; } -'INDEX' { return 'INDEX'; } -'INDEXES' { return 'INDEXES'; } -'INPATH' { this.begin('hdfs'); return 'INPATH'; } -'INPUTFORMAT' { return 'INPUTFORMAT'; } -'ITEMS' { return 'ITEMS'; } -'JAR' { return 'JAR'; } -'JOINCOST' { return 'JOINCOST'; } -'JSONFILE' { return 'JSONFILE'; } -'KEY' { return 'KEY'; } -'KEYS' { return 'KEYS'; } -'LAST' { return 'LAST'; } -'LINES' { return 'LINES'; } -'LITERAL' { return 'LITERAL'; } -'LOAD' { parser.determineCase(yytext); return 'LOAD'; } -'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } -'LOCK' { return 'LOCK'; } -'LOCKS' { return 'LOCKS'; } -'MATCHED' { return 'MATCHED'; } -'MATERIALIZED' { return 'MATERIALIZED'; } -'MERGE' { return 'MERGE'; } -'METADATA' { return 'METADATA'; } -'MINUTE' { return 'MINUTE'; } -'MONTH' { return 'MONTH'; } -'MSCK' { return 'MSCK'; } -'NO_DROP' { return 'NO_DROP'; } -'NORELY' { return 'NORELY'; } -'NOSCAN' { return 'NOSCAN'; } -'NOVALIDATE' { return 'NOVALIDATE'; } -'OFFLINE' { return 'OFFLINE'; } -'ONLY' { return 'ONLY'; } -'OPERATOR' { return 'OPERATOR'; } -'OPTION' { return 'OPTION'; } -'ORC' { return 'ORC'; } -'OUTPUTFORMAT' { return 'OUTPUTFORMAT'; } -'OVER' { return 'OVER'; } -'OVERWRITE' { return 'OVERWRITE'; } -OVERWRITE\s+DIRECTORY { this.begin('hdfs'); return 'OVERWRITE_DIRECTORY'; } -'OWNER' { return 'OWNER'; } -'PARQUET' { return 'PARQUET'; } -'PARTITIONED' { return 'PARTITIONED'; } -'PARTITIONS' { return 'PARTITIONS'; } -'PERCENT' { return 'PERCENT'; } -'PRIVILEGES' { return 'PRIVILEGES'; } -'PURGE' { return 'PURGE'; } -'QUARTER' { return 'QUARTER'; } -'RCFILE' { return 'RCFILE'; } -'REBUILD' { return 'REBUILD'; } -'RECOVER' { return 'RECOVER'; } -'RELOAD' { parser.determineCase(yytext); return 'RELOAD'; } -'RELY' { return 'RELY'; } -'RENAME' { return 'RENAME'; } -'REPAIR' { return 'REPAIR'; } -'REPLACE' { return 'REPLACE'; } -'REPLICATION' { return 'REPLICATION'; } -'RESTRICT' { return 'RESTRICT'; } -'REWRITE' { return 'REWRITE'; } -'ROLE' { return 'ROLE'; } -'ROLES' { return 'ROLES'; } -'SCHEMA' { return 'SCHEMA'; } -'SCHEMAS' { return 'SCHEMAS'; } -'SECOND' { return 'SECOND'; } -'SEQUENCEFILE' { return 'SEQUENCEFILE'; } -'SERDE' { return 'SERDE'; } -'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } -'SETS' { return 'SETS'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SHOW_DATABASE' { return 'SHOW_DATABASE'; } -'SKEWED LOCATION' { return 'SKEWED_LOCATION'; } // Hack to prevent hdfs lexer state -'SKEWED' { return 'SKEWED'; } -'SORT' { return 'SORT'; } -'SORTED' { return 'SORTED'; } -'STATISTICS' { return 'STATISTICS'; } -'STORED' { return 'STORED'; } -STORED\s+AS\s+DIRECTORIES { return 'STORED_AS_DIRECTORIES'; } -'STRING' { return 'STRING'; } -'STRUCT' { return 'STRUCT'; } -'SUMMARY' { return 'SUMMARY'; } -'TABLES' { return 'TABLES'; } -'TABLESAMPLE' { return 'TABLESAMPLE'; } -'TBLPROPERTIES' { return 'TBLPROPERTIES'; } -'TEMPORARY' { return 'TEMPORARY'; } -'TERMINATED' { return 'TERMINATED'; } -'TEXTFILE' { return 'TEXTFILE'; } -'TINYINT' { return 'TINYINT'; } -'TOUCH' { return 'TOUCH'; } -'TRANSACTIONAL' { return 'TRANSACTIONAL'; } -'TRANSACTIONS' { return 'TRANSACTIONS'; } -'UNARCHIVE' { return 'UNARCHIVE'; } -'UNIONTYPE' { return 'UNIONTYPE'; } -'UNIQUE' { return 'UNIQUE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'VECTORIZATION' { return 'VECTORIZATION'; } -'VIEW' { return 'VIEW'; } -'WAIT' { return 'WAIT'; } -'WEEK' { return 'WEEK'; } -'WINDOW' { return 'WINDOW'; } -'YEAR' { return 'YEAR'; } - -'.' { return '.'; } -'[' { return '['; } -']' { return ']'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COLLECT_LIST\s*\( { yy.lexer.unput('('); yytext = 'collect_list'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_LIST'; } -COLLECT_SET\s*\( { yy.lexer.unput('('); yytext = 'collect_set'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_SET'; } -CORR\s*\( { yy.lexer.unput('('); yytext = 'corr'; parser.addFunctionLocation(yylloc, yytext); return 'CORR'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -COVAR_POP\s*\( { yy.lexer.unput('('); yytext = 'covar_pop'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_POP'; } -COVAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'covar_samp'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_SAMP'; } -EXTRACT\s*\( { yy.lexer.unput('('); yytext = 'extract'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACT'; } -HISTOGRAM_NUMERIC\s*\( { yy.lexer.unput('('); yytext = 'histogram_numeric'; parser.addFunctionLocation(yylloc, yytext); return 'HISTOGRAM_NUMERIC'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -NTILE\s*\( { yy.lexer.unput('('); yytext = 'ntile'; parser.addFunctionLocation(yylloc, yytext); return 'NTILE'; } -PERCENTILE\s*\( { yy.lexer.unput('('); yytext = 'percentile'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE'; } -PERCENTILE_APPROX\s*\( { yy.lexer.unput('('); yytext = 'percentile_approx'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE_APPROX'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -PERCENT_RANK\s*\( { yy.lexer.unput('('); yytext = 'percent_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/hive/sql_alter.jison b/src/jison/sql/hive/sql_alter.jison deleted file mode 100644 index 4742b61..0000000 --- a/src/jison/sql/hive/sql_alter.jison +++ /dev/null @@ -1,867 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterDatabase - | AlterIndex - | AlterMaterializedView - | AlterTable - | AlterView - | Msck - | ReloadFunction - ; - -AlterStatement_EDIT - : AlterDatabase_EDIT - | AlterIndex_EDIT - | AlterMaterializedView_EDIT - | AlterTable_EDIT - | AlterView_EDIT - | Msck_EDIT - | ReloadFunction_EDIT - | 'ALTER' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'INDEX', 'MATERIALIZED VIEW', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -AlterDatabase - : 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - ; - -AlterDatabase_EDIT - : 'ALTER' DatabaseOrSchema 'CURSOR' - { - parser.suggestDatabases(); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation_EDIT - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification_EDIT - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - ; - -AlterIndex - : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'REBUILD' - { - parser.addTablePrimary($5); - } - ; - -AlterIndex_EDIT - : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($5); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($5); - if (!$6) { - parser.suggestKeywords(['PARTITION', 'REBUILD']); - } else { - parser.suggestKeywords(['REBUILD']); - } - } - ; - -AlterMaterializedView - : 'ALTER' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier EnableOrDisable 'REWRITE' - { - parser.addTablePrimary($4); - } - ; - -AlterMaterializedView_EDIT - : 'ALTER' 'MATERIALIZED' 'CURSOR' - { - parser.suggestKeywords(['VIEW']); - } - | 'ALTER' 'MATERIALIZED' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'ALTER' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - parser.suggestKeywords(['DISABLE REWRITE', 'ENABLE REWRITE']); - } - | 'ALTER' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier EnableOrDisable 'CURSOR' - { - parser.addTablePrimary($4); - parser.suggestKeywords(['REWRITE']); - } - ; - -AlterTable - : AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier PrimaryKeySpecification - | AlterTableLeftSide 'ADD' TableConstraint - | AlterTableLeftSide 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName - | AlterTableLeftSide ClusteredBy - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories - | AlterTableLeftSide ExchangeSpecification - | AlterTableLeftSide 'RECOVER' 'PARTITIONS' - | AlterTableLeftSide 'TOUCH' OptionalPartitionSpec - | AlterTableLeftSide ArchiveOrUnArchive PartitionSpec - | AlterTableLeftSide 'NOT' 'SKEWED' - | AlterTableLeftSide 'NOT' 'STORED_AS_DIRECTORIES' - | AlterTableLeftSide 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList - | AlterTableLeftSide 'SET' 'OWNER' PrincipalSpecification - | AlterTableLeftSide PartitionSpec 'RENAME' 'TO' PartitionSpec - | AlterTableLeftSide PartitionSpec 'CHANGE' 'COLUMN' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict - | AlterTableLeftSide DropOperations - | AlterTableLeftSide OptionalPartitionOperations - | AlterTableLeftSide PartitionSpec OptionalPartitionOperations - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs - | AlterTableLeftSide_EDIT TableConstraint - | AlterTableLeftSide_EDIT 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName - | AlterTableLeftSide_EDIT ClusteredBy - | AlterTableLeftSide_EDIT 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories - | AlterTableLeftSide_EDIT ExchangeSpecification - | AlterTableLeftSide_EDIT 'RECOVER' 'PARTITIONS' - | AlterTableLeftSide_EDIT 'TOUCH' OptionalPartitionSpec - | AlterTableLeftSide_EDIT ArchiveOrUnArchive PartitionSpec - | AlterTableLeftSide_EDIT 'NOT' 'SKEWED' - | AlterTableLeftSide_EDIT 'NOT' 'STORED_AS_DIRECTORIES' - | AlterTableLeftSide_EDIT 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList - | AlterTableLeftSide_EDIT 'SET' 'OWNER' PrincipalSpecification - | AlterTableLeftSide_EDIT PartitionSpec 'RENAME' 'TO' PartitionSpec - | AlterTableLeftSide_EDIT PartitionSpec 'CHANGE' 'COLUMN' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict - | AlterTableLeftSide_EDIT DropOperations - | AlterTableLeftSide_EDIT OptionalPartitionOperations - | AlterTableLeftSide_EDIT PartitionSpec OptionalPartitionOperations - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); - } else { - parser.suggestKeywords(['PARTITION']); - } - } - | AlterTableLeftSide 'REPLACE' 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists_EDIT - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec HdfsLocation_EDIT OptionalPartitionSpecs - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs_EDIT - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs 'CURSOR' - { - if (!$5 && !$6) { - parser.suggestKeywords(['LOCATION', 'PARTITION']); - } else if ($6 && $6.suggestKeywords) { - var keywords = parser.createWeightedKeywords($6.suggestKeywords, 2); - keywords.push({ value: 'PARTITION', weight: 1 }); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords(['PARTITION']); - } - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec_EDIT OptionalHdfsLocation OptionalPartitionSpecs - | AlterTableLeftSide 'ADD' 'CONSTRAINT' 'CURSOR' - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'PRIMARY KEY', 'UNIQUE']); - } - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier PrimaryKeySpecification_EDIT - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT - | AlterTableLeftSide ArchiveOrUnArchive 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AlterTableLeftSide ArchiveOrUnArchive PartitionSpec_EDIT - | AlterTableLeftSide ClusteredBy_EDIT - | AlterTableLeftSide ExchangeSpecification_EDIT - | AlterTableLeftSide 'NOT' 'CURSOR' - { - parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); - } - | AlterTableLeftSide 'NOT' 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS DIRECTORIES']); - } - | AlterTableLeftSide 'NOT' 'STORED' 'AS' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORIES']); - } - | AlterTableLeftSide PartitionSpec 'RENAME' 'CURSOR' - { - parser.suggestKeywords(['TO PARTITION']); - } - | AlterTableLeftSide PartitionSpec 'RENAME' 'TO' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AlterTableLeftSide 'RECOVER' 'CURSOR' - { - parser.suggestKeywords(['PARTITIONS']); - } - | AlterTableLeftSide 'SET' 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['LOCATION']); - } - | AlterTableLeftSide 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList_EDIT - | AlterTableLeftSide 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | AlterTableLeftSide 'SET' 'OWNER' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | AlterTableLeftSide 'SET' 'OWNER' PrincipalSpecification_EDIT - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList_EDIT - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList_EDIT 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories 'CURSOR' - { - if (!$7) { - parser.suggestKeywords(['STORED AS DIRECTORIES']); - } - } - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories_EDIT - | AlterTableLeftSide 'TOUCH' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AlterTableLeftSide 'TOUCH' OptionalPartitionSpec_EDIT - | AlterTableLeftSide OptionalPartitionOperations_EDIT - | AlterTableLeftSide DropOperations_EDIT - | AlterTableLeftSide 'CURSOR' - { - parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', - 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', - 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', - 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', - 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); - } - | AlterTableLeftSide PartitionSpec 'CURSOR' - { - parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', - 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', - 'SET SERDE', 'SET SERDEPROPERTIES']); - } - | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - | AlterTableLeftSide PartitionSpec 'SET' 'CURSOR' - { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); - } - | AlterTableLeftSide 'SET' 'CURSOR' - { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); - } - | AlterTableLeftSide PartitionSpec OptionalPartitionOperations_EDIT - | AlterTableLeftSide 'RENAME' 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | AlterTableLeftSide 'RENAME' 'TO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - } - ; - -ParenthesizedStatsList - : '(' StatsList ')' - ; - -ParenthesizedStatsList_EDIT - : '(' StatsList_EDIT RightParenthesisOrError - ; - -StatsList - : StatsAssignment - | StatsList ',' StatsAssignment - ; - -StatsList_EDIT - : StatsAssignment_EDIT - | StatsList ',' StatsAssignment_EDIT - | StatsList ',' StatsAssignment_EDIT ',' StatsList - | StatsAssignment_EDIT ',' StatsList - ; - -StatsAssignment - : QuotedValue '=' QuotedValue - ; - -StatsAssignment_EDIT - : 'CURSOR' - { - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - } - ; - -OptionalPartitionOperations - : 'SET' 'FILEFORMAT' FileFormat - | 'SET' HdfsLocation - | 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties - | 'SET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - | AddReplaceColumns - | 'CONCATENATE' - | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties - | EnableOrDisable NoDropOrOffline - | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst OptionalCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - ; - -OptionalPartitionOperations_EDIT - : AddReplaceColumns_EDIT - | 'CHANGE' OptionalColumn 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - } - | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification_EDIT OptionalAfterOrFirst OptionalCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst OptionalCascadeOrRestrict 'CURSOR' - { - if (!$5 && !$6) { - if ($4.suggestKeywords) { - var keywords = parser.createWeightedKeywords($4.suggestKeywords, 3); - keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - } - } else if ($5 && !$6) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst_EDIT OptionalCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties 'CURSOR' - { - if (!$3 && !$4) { - parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); - } else if (!$4) { - parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); - } - } - | 'COMPACT' QuotedValue AndWait_EDIT OptionalWithOverwriteTblProperties - | 'COMPACT' QuotedValue OptionalAndWait WithOverwriteTblProperties_EDIT - | EnableOrDisable 'CURSOR' - { - parser.suggestKeywords(['NO_DROP', 'OFFLINE']); - } - | EnableOrDisable NoDropOrOffline_EDIT - | 'SET' 'FILEFORMAT' 'CURSOR' - { - parser.suggestFileFormats(); - } - | 'SET' HdfsLocation_EDIT - | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['WITH SERDEPROPERTIES']); - } - } - | 'SET' 'SERDE' QuotedValue WithSerdeproperties_EDIT - ; - -OptionalAndWait - : - | 'AND' 'WAIT' - ; - -AndWait_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['WAIT']); - } - ; - -OptionalWithOverwriteTblProperties - : - | 'WITH' 'OVERWRITE' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -WithOverwriteTblProperties_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); - } - | 'WITH' 'OVERWRITE' 'CURSOR' - { - parser.suggestKeywords(['TBLPROPERTIES']); - } - ; - -AddReplaceColumns - : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict - ; - -AddReplaceColumns_EDIT - : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList_EDIT OptionalCascadeOrRestrict - | AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - } - ; - -ExchangeSpecification - : 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName - ; - -ExchangeSpecification_EDIT - : 'EXCHANGE' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'EXCHANGE' ExchangePartitionSpec 'CURSOR' - { - parser.suggestKeywords(['WITH TABLE']); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'EXCHANGE' ExchangePartitionSpec_EDIT - | 'EXCHANGE' ExchangePartitionSpec_EDIT 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName - ; - -ExchangePartitionSpec - : 'PARTITION' '(' OneOrMorePartitionSpecLists ')' - | 'PARTITION' '(' PartitionSpecList ')' - ; - -ExchangePartitionSpec_EDIT - : 'PARTITION' '(' OneOrMorePartitionSpecLists_EDIT RightParenthesisOrError - | 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -OneOrMorePartitionSpecLists - : '(' PartitionSpecList ')' - | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList ')' - ; - -OneOrMorePartitionSpecLists_EDIT - : '(' PartitionSpecList_EDIT RightParenthesisOrError - | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -DropOperations - : 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalPurge - | 'DROP' 'CONSTRAINT' RegularOrBacktickedIdentifier - ; - -DropOperations_EDIT - : 'DROP' OptionalIfExists 'CURSOR' - { - if (!$2) { - parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); - } else { - parser.suggestKeywords(['PARTITION']); - } - } - | 'DROP' OptionalIfExists OneOrMorePartitionSpecs_EDIT OptionalPurge - | 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalPurge 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['PURGE']); - } - } - | 'DROP' 'CONSTRAINT' 'CURSOR' - | 'DROP' OptionalIfExists_EDIT - | 'DROP' ColumnIdentifier_EDIT - ; - -AlterTableLeftSide - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AddOrReplace - : 'ADD' - | 'REPLACE' - ; - -OptionalAfterOrFirst - : - | AfterOrFirst ColumnIdentifier - ; - -AfterOrFirst - : 'AFTER' - | 'FIRST' - ; - -OptionalAfterOrFirst_EDIT - : AfterOrFirst 'CURSOR' - { - parser.suggestColumns(); - } - | AfterOrFirst ColumnIdentifier_EDIT - ; - -OptionalColumn - : - | 'COLUMN' - ; - -EnableOrDisable - : 'ENABLE' - | 'DISABLE' - ; - -NoDropOrOffline - : 'NO_DROP' OptionalCascade - | 'OFFLINE' - ; - -NoDropOrOffline_EDIT - : 'NO_DROP' OptionalCascade 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['CASCADE']); - } - } - ; - -ArchiveOrUnArchive - : 'ARCHIVE' - | 'UNARCHIVE' - ; - -OneOrMorePartitionSpecs - : PartitionSpec - | OneOrMorePartitionSpecs ',' PartitionSpec - ; - -OneOrMorePartitionSpecs_EDIT - : PartitionSpec_EDIT - | OneOrMorePartitionSpecs ',' AnyCursor - { - parser.suggestKeywords(['PARTITION']); - } - | OneOrMorePartitionSpecs ',' AnyCursor ',' OneOrMorePartitionSpecs - { - parser.suggestKeywords(['PARTITION']); - } - | AnyCursor ',' OneOrMorePartitionSpecs - { - parser.suggestKeywords(['PARTITION']); - } - | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT - | PartitionSpec_EDIT ',' OneOrMorePartitionSpecs - | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT ',' OneOrMorePartitionSpecs - ; - -OptionalPartitionSpecs - : - | PartitionSpecWithLocationList - ; - -PartitionSpecWithLocationList - : PartitionSpecWithLocation - | PartitionSpecWithLocationList PartitionSpecWithLocation -> $2 - ; - -OptionalPartitionSpecs_EDIT - : PartitionSpecWithLocation_EDIT - | PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList - | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT - | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList - ; - -PartitionSpecWithLocation_EDIT - : PartitionSpec HdfsLocation_EDIT - | PartitionSpec_EDIT OptionalHdfsLocation - ; - -PartitionSpecWithLocation - : PartitionSpec OptionalHdfsLocation - { - if (!$2) { - $$ = { suggestKeywords: ['LOCATION'] }; - } - } - ; - -ParenthesizedSkewedLocationList - : '(' SkewedLocationList ')' - ; - -ParenthesizedSkewedLocationList_EDIT - : '(' SkewedLocationList_EDIT RightParenthesisOrError - ; - -SkewedLocationList - : SkewedLocation - | SkewedLocationList ',' SkewedLocation - ; - -SkewedLocationList_EDIT - : SkewedLocation_EDIT - | SkewedLocationList ',' SkewedLocation_EDIT - | SkewedLocationList ',' SkewedLocation_EDIT ',' SkewedLocationList - | SkewedLocation_EDIT ',' SkewedLocationList - ; - -SkewedLocation - : ColumnReference '=' QuotedValue - ; - -SkewedLocation_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - | AnyCursor '=' QuotedValue - { - parser.suggestColumns(); - } - | ColumnReference_EDIT '=' QuotedValue - | ColumnReferences '=' QuotedValue - ; - -OptionalStoredAsDirectories - : - | 'STORED_AS_DIRECTORIES' - ; - -OptionalStoredAsDirectories_EDIT - : 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS DIRECTORIES']); - } - | 'STORED' 'AS' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORIES']); - } - ; - -AlterView - : AlterViewLeftSide 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - | AlterViewLeftSide 'AS' QuerySpecification - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); - } - | AlterViewLeftSide 'SET' 'CURSOR' - { - parser.suggestKeywords(['TBLPROPERTIES']); - } - | AlterViewLeftSide 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide 'AS' QuerySpecification_EDIT - ; - - -AlterViewLeftSide - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -Msck - : 'MSCK' OptionalRepair 'TABLE' SchemaQualifiedTableIdentifier OptionalAddDropSyncPartitions - { - parser.addTablePrimary($4); - } - ; - -Msck_EDIT - : 'MSCK' OptionalRepair 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['TABLE', 'REPAIR TABLE']); - } else { - parser.suggestKeywords(['TABLE']); - } - } - | 'MSCK' OptionalRepair 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'MSCK' OptionalRepair 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'MSCK' OptionalRepair 'TABLE' SchemaQualifiedTableIdentifier AddDropSyncPartitions_EDIT - { - parser.addTablePrimary($4); - } - | 'MSCK' OptionalRepair 'TABLE' SchemaQualifiedTableIdentifier OptionalAddDropSyncPartitions 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['ADD PARTITIONS', 'DROP PARTITIONS', 'SYNC PARTITIONS']); - } - } - ; - -OptionalRepair - : - | 'REPAIR' - ; - -OptionalAddDropSyncPartitions - : - | AddDropOrSync 'PARTITIONS' - ; - -AddDropSyncPartitions_EDIT - : AddDropOrSync 'CURSOR' - { - parser.suggestKeywords(['PARTITIONS']); - } - ; - -AddDropOrSync - : 'ADD' - | 'DROP' - | 'SYNC' - ; - -ReloadFunction - : 'RELOAD' 'FUNCTION' - ; - -ReloadFunction_EDIT - : 'RELOAD' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION']); - } - ; - -NullableComment - : QuotedValue - | 'NULL' - ; diff --git a/src/jison/sql/hive/sql_analyze.jison b/src/jison/sql/hive/sql_analyze.jison deleted file mode 100644 index caf2937..0000000 --- a/src/jison/sql/hive/sql_analyze.jison +++ /dev/null @@ -1,236 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AnalyzeStatement - ; - -DataDefinition_EDIT - : AnalyzeStatement_EDIT - ; - -SqlStatement - : ExplainClause DataDefinition - | ExplainClause DataManipulation - | ExplainClause QuerySpecification - ; - -SqlStatement_EDIT - : ExplainClause_EDIT - | ExplainClause DataDefinition_EDIT - | ExplainClause DataManipulation_EDIT - | ExplainClause QuerySpecification_EDIT - | ExplainClause_EDIT DataDefinition - | ExplainClause_EDIT DataManipulation - | ExplainClause_EDIT QuerySpecification - ; - -AnalyzeStatement - : 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - } - ; - -AnalyzeStatement_EDIT - : 'ANALYZE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'ANALYZE' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); - } else { - parser.suggestKeywords(['COMPUTE STATISTICS']); - } - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['STATISTICS']); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' 'CURSOR' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$8, $9, $10], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns 'CURSOR' OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$9, $10], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata 'CURSOR' OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$10], [{ value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($3); - } - | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($3); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns_EDIT OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata_EDIT OptionalNoscan - ; - -OptionalForColumns - : - | ForColumns - ; - -ForColumns - : 'FOR' 'COLUMNS' - ; - -ForColumns_EDIT - : 'FOR' 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - ; - -OptionalCacheMetadata - : - | CacheMetadata - ; - -CacheMetadata - : 'CACHE' 'METADATA' - ; - -CacheMetadata_EDIT - : 'CACHE' 'CURSOR' - { - parser.suggestKeywords(['METADATA']); - } - ; - -OptionalNoscan - : - | 'NOSCAN' - ; - -ExplainClause - : 'EXPLAIN' OptionalExplainTypes - ; - -ExplainClause_EDIT - : 'EXPLAIN' OptionalExplainTypes 'CURSOR' - { - if (!$2) { - parser.suggestDdlAndDmlKeywords([ - { value: 'AST', weight: 2 }, - { value: 'AUTHORIZATION', weight: 2 }, - { value: 'CBO', weight: 2 }, - { value: 'DEPENDENCY', weight: 2 }, - { value: 'EXTENDED', weight: 2 }, - { value: 'FORMATTED CBO', weight: 2 }, - { value: 'LOCKS', weight: 2 }, - { value: 'VECTORIZATION', weight: 2 } - ]); - } else if ($2 && $2.suggestKeywords) { - parser.suggestDdlAndDmlKeywords($2.suggestKeywords); - } else { - parser.suggestDdlAndDmlKeywords(); - } - } - | 'EXPLAIN' 'FORMATTED' 'CURSOR' - { - parser.suggestKeywords(['CBO']); - } - ; - -OptionalExplainTypes - : - | 'AST' - | 'AUTHORIZATION' - | 'FORMATTED' 'CBO' OptionalCostOrJoincost - { - if (!$3) { - $$ = { suggestKeywords: ['COST', 'JOINCOST'] }; - } - } - | 'CBO' OptionalCostOrJoincost - { - if (!$2) { - $$ = { suggestKeywords: ['COST', 'JOINCOST'] }; - } - } - | 'DEPENDENCY' - | 'EXTENDED' - | 'LOCKS' - | 'VECTORIZATION' OptionalOnly OptionalVectorizationTypes - { - var keywords = []; - if (!$3) { - keywords = keywords.concat([ - { weight: 1, value: 'DETAIL' }, - { weight: 1, value: 'EXPRESSION' }, - { weight: 1, value: 'OPERATOR' }, - { weight: 1, value: 'SUMMARY' } - ]); - } - if (!$2) { - keywords.push({ weight: 2, value: 'ONLY' }); - } - if (keywords.length) { - $$ = { suggestKeywords: keywords }; - } - } - ; - -OptionalCostOrJoincost - : - | 'COST' - | 'JOINCOST' - ; - -OptionalOnly - : - | 'ONLY' - ; - -OptionalVectorizationTypes - : - | 'DETAIL' - | 'EXPRESSION' - | 'OPERATOR' - | 'SUMMARY' - ; diff --git a/src/jison/sql/hive/sql_create.jison b/src/jison/sql/hive/sql_create.jison deleted file mode 100644 index 55f196a..0000000 --- a/src/jison/sql/hive/sql_create.jison +++ /dev/null @@ -1,1629 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | MaterializedViewDefinition - | RoleDefinition - | FunctionDefinition - | IndexDefinition - | MacroDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | MaterializedViewDefinition_EDIT - | FunctionDefinition_EDIT - | IndexDefinition_EDIT - | MacroDefinition_EDIT - | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'CURSOR' - { - if ($4) { - parser.suggestKeywords(['TABLE']); - } else { - if ($2 && !$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); - } else if (!$2 && !$3) { - parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); - } else if ($3) { - parser.suggestKeywords(['TABLE']); - } - } - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment OptionalHdfsLocation OptionalDbProperties - { - var keywords = []; - if (!$3) { - keywords.push('WITH DBPROPERTIES'); - } - if (!$2 && !$3) { - keywords.push('LOCATION'); - } - if (!$1 && !$2 && !$3) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID OptionalHdfsLocation OptionalDbProperties - | OptionalComment HdfsLocation_EDIT OptionalDbProperties - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - - -OptionalDbProperties - : - | DbProperties - ; - -DbProperties - : 'WITH' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList - | 'WITH' 'DBPROPERTIES' - | 'WITH' 'CURSOR' - { - parser.suggestKeywords(['DBPROPERTIES']); - } - ; - -ParenthesizedPropertyAssignmentList - : '(' PropertyAssignmentList ')' - ; - -PropertyAssignmentList - : PropertyAssignment - | PropertyAssignmentList ',' PropertyAssignment - ; - -PropertyAssignment - : QuotedValue '=' UnsignedValueSpecification - ; - -TableDefinition - : 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart LifeCyclePart - ; - -TableDefinition_EDIT - : 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment PartitionedBy_EDIT - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - ClusteredBy_EDIT OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy SkewedBy_EDIT OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy RowFormat_EDIT OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat StoredAsOrBy_EDIT - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - WithSerdeproperties_EDIT OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties HdfsLocation_EDIT OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties AsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties 'CURSOR' - { - var keywords = []; - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'COMMENT', weight: 10 }); - } - if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'PARTITIONED BY', weight: 9 }); - } - if (!$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'CLUSTERED BY', weight: 8 }); - } - if (!$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'SKEWED BY', weight: 7 }); - } else if ($5 && $5.suggestKeywords && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 7)); // Get the last optional from SKEWED BY - } - if (!$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'ROW FORMAT', weight: 6 }); - } else if ($6 && $6.suggestKeywords && !$7 && !$8 && !$9 && !$10) { - keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 6)); - } - if (!$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'STORED AS', weight: 5 }); - keywords.push({ value: 'STORED BY', weight: 5 }); - } else if ($7 && $7.storedBy && !$8 && !$9 && !$10) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 4 }); - } - if (!$9 && !$10) { - keywords.push({ value: 'LOCATION', weight: 3 }); - } - if (!$10) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - parser.suggestKeywords(keywords); - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - | '(' ColumnSpecificationList ',' TableConstraints ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - | '(' ColumnSpecificationList ',' TableConstraints_EDIT RightParenthesisOrError - | '(' ColumnSpecificationList ',' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); - } - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions OptionalComment - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$4) { - keywords = keywords.concat([ - { value: 'COMMENT', weight: 1 }, - { value: 'CHECK', weight: 2 }, - { value: 'PRIMARY KEY', weight: 2 }, - { value: 'UNIQUE', weight: 2 }, - { value: 'NOT NULL', weight: 2 }, - { value: 'DEFAULT', weight: 2 } - ]); - if (!$3 && $2.toLowerCase() === 'double') { - keywords.push({ value: 'PRECISION', weight: 3 }); - } else if ($3 && $3.suggestKeywords) { - keywords = keywords.concat($3.suggestKeywords) - } - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions OptionalComment - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions OptionalComment - ; - -OptionalColumnOptions - : - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - | ColumnOptions ColumnOption - ; - -ColumnOption - : 'PRIMARY' 'KEY' ColumnOptionOptionals -> $3 - | 'PRIMARY' -> { suggestKeywords: [{ value: 'KEY', weight: 3 }] } - | 'UNIQUE' ColumnOptionOptionals -> $2 - | 'NOT' 'NULL' ColumnOptionOptionals -> $3 - | 'NOT' -> { suggestKeywords: [{ value: 'NULL', weight: 3 }] } - | 'DEFAULT' DefaultValue ColumnOptionOptionals -> $3 - | 'CHECK' '(' ValueExpression ')' ColumnOptionOptionals -> $5 - | 'DEFAULT' - { - $$ = { - suggestKeywords: [ - { value: 'LITERAL', weight: 3 }, - { value: 'CURRENT_USER()', weight: 3 }, - { value: 'CURRENT_DATE()', weight: 3 }, - { value: 'CURRENT_TIMESTAMP()', weight: 3 }, - { value: 'NULL', weight: 3 } - ] - } - } - ; - -ColumnOptionOptionals - : OptionalEnableOrDisable OptionalNovalidate OptionalRelyOrNorely - { - var keywords = []; - if (!$3) { - keywords.push({ value: 'RELY', weight: 3 }); - keywords.push({ value: 'NORELY', weight: 3 }); - if (!$2) { - keywords.push({ value: 'NOVALIDATE', weight: 3 }); - if (!$1) { - keywords.push({ value: 'RELY', weight: 3 }); - keywords.push({ value: 'NORELY', weight: 3 }); - } - } - } - if (keywords.length) { - $$ = { suggestKeywords: keywords }; - } - } - ; - -DefaultValue - : 'LITERAL' - | 'CURRENT_USER' '(' ')' - | 'CURRENT_DATE' '(' ')' - | 'CURRENT_TIMESTAMP' '(' ')' - | 'NULL' - ; - -OptionalEnableOrDisable - : - | 'ENABLE' - | 'DISABLE' - ; - -OptionalDisable - : - | 'DISABLE' - ; - -OptionalNovalidate - : - | 'NOVALIDATE' - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | UnionType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - | UnionType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - | UnionType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -UnionType - : 'UNIONTYPE' '<' ColumnDataTypeList '>' - ; - -UnionType_INVALID - : 'UNIONTYPE' '<' '>' - ; - -UnionType_EDIT - : 'UNIONTYPE' '<' ColumnDataTypeList_EDIT GreaterThanOrError - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -TableConstraints - : PrimaryKeySpecification - | ConstraintList - | PrimaryKeySpecification ',' ConstraintList - ; - -TableConstraints_EDIT - : PrimaryKeySpecification_EDIT - | PrimaryKeySpecification ',' 'CURSOR' - { - parser.suggestKeywords(['CONSTRAINT']); - } - | ConstraintList_EDIT - | PrimaryKeySpecification ',' ConstraintList_EDIT - | PrimaryKeySpecification_EDIT ',' ConstraintList - ; - -ConstraintList - : TableConstraint - | ConstraintList ',' TableConstraint - ; - -ConstraintList_EDIT - : TableConstraint_EDIT - | ConstraintList ',' TableConstraint_EDIT - ; - -TableConstraint - : TableConstraintLeftPart OptionalDisable OptionalNovalidate OptionalRelyOrNorely - ; - -TableConstraint_EDIT - : TableConstraintLeftPart_EDIT OptionalDisable OptionalNovalidate OptionalRelyOrNorely - | TableConstraintLeftPart OptionalDisable OptionalNovalidate OptionalRelyOrNorely 'CURSOR' - { - parser.suggestKeywordsForOptionalsLR([$4, $3, $2], [ - [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], - { value: 'NOVALIDATE', weight: 2 }, - { value: 'DISABLE', weight: 3 } - ]); - } - ; - -TableConstraintLeftPart - : 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification - | 'CONSTRAINT' RegularOrBacktickedIdentifier 'CHECK' '(' ValueExpression ')' - | 'CONSTRAINT' RegularOrBacktickedIdentifier 'UNIQUE' ParenthesizedColumnList - ; - -TableConstraintLeftPart_EDIT - : 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'UNIQUE']); - } - | 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT - ; -PrimaryKeySpecification - : PrimaryKey ParenthesizedColumnList OptionalDisable OptionalNovalidate OptionalRelyOrNorely - ; - -PrimaryKeySpecification_EDIT - : PrimaryKey_EDIT - | PrimaryKey ParenthesizedColumnList_EDIT - | PrimaryKey ParenthesizedColumnList OptionalDisable OptionalNovalidate OptionalRelyOrNorely 'CURSOR' - { - parser.suggestKeywordsForOptionalsLR([$5, $4, $3], [ - [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], - { value: 'NOVALIDATE', weight: 2 }, - { value: 'DISABLE', weight: 1 }]); - } - ; - -ForeignKeySpecification - : 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList - { - parser.addTablePrimary($5); - } - ; - -ForeignKeySpecification_EDIT - : 'FOREIGN' 'CURSOR' - { - parser.suggestKeywords(['KEY']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList_EDIT - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['REFERENCES']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier_EDIT - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList_EDIT - { - parser.addTablePrimary($5); - } - ; - -OptionalRelyOrNorely - : - | 'RELY' - | 'NORELY' - ; - -PrimaryKey - : 'PRIMARY' 'KEY' - ; - -PrimaryKey_EDIT - : 'PRIMARY' 'CURSOR' - { - parser.suggestKeywords(['KEY']); - } - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList - ; - -PartitionedBy_EDIT - : 'PARTITIONED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITIONED' 'CURSOR' ParenthesizedColumnSpecificationList - { - parser.suggestKeywords(['BY']); - } - | 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList_EDIT - | 'PARTITIONED' ParenthesizedColumnSpecificationList_EDIT - | 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['HASH', 'RANGE']); - } - ; - -OptionalPartitionedOn - : - | PartitionedOn - ; - -PartitionedOn - : 'PARTITIONED' 'ON' ParenthesizedColumnList - ; - -PartitionedOn_EDIT - : 'PARTITIONED' 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'PARTITIONED' 'ON' ParenthesizedColumnList_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalClusteredBy - : - | ClusteredBy - ; - -ClusteredBy - : 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - ; - -ClusteredBy_EDIT - : 'CLUSTERED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalSortedBy - | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'CURSOR' - { - if (!$4) { - parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); - } else { - parser.suggestKeywords(['INTO']); - } - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'CURSOR' - { - parser.suggestKeywords(['BUCKETS']); - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy_EDIT 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy_EDIT - ; - -OptionalClusteredOrDistributedOn - : - | ClusteredOn - | DistributedOn SortedOn - ; - -ClusteredOrDistributedOn_EDIT - : ClusteredOn_EDIT - | DistributedOn_EDIT - | DistributedOn 'CURSOR' - { - parser.suggestKeywords(['SORTED ON']); - } - | DistributedOn SortedOn_EDIT - ; - -ClusteredOn - : 'CLUSTERED' 'ON' ParenthesizedColumnList - ; - -ClusteredOn_EDIT - : 'CLUSTERED' 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'CLUSTERED' 'ON' ParenthesizedColumnList_EDIT - ; - -DistributedOn - : 'DISTRIBUTED' 'ON' ParenthesizedColumnList - ; - -DistributedOn_EDIT - : 'DISTRIBUTED' 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'DISTRIBUTED' 'ON' ParenthesizedColumnList_EDIT - ; - -SortedOn - : 'SORTED' 'ON' ParenthesizedColumnList - ; - -SortedOn_EDIT - : 'SORTED' 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'SORTED' 'ON' ParenthesizedColumnList_EDIT - ; - -OptionalSortedBy - : - | 'SORTED' 'BY' ParenthesizedSortList - ; - -OptionalSortedBy_EDIT - : 'SORTED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SORTED' 'BY' ParenthesizedSortList_EDIT - ; - -ParenthesizedSortList - : '(' SortList ')' - ; - -ParenthesizedSortList_EDIT - : '(' SortList_EDIT RightParenthesisOrError - ; - -SortList - : SortIdentifier - | SortList ',' SortIdentifier - ; - -SortList_EDIT - : SortIdentifier_EDIT - | SortIdentifier_EDIT ',' SortList - | SortList ',' SortIdentifier_EDIT - | SortList ',' SortIdentifier_EDIT ',' SortList - ; - -SortIdentifier - : ColumnIdentifier OptionalAscOrDesc - ; - -SortIdentifier_EDIT - : ColumnIdentifier OptionalAscOrDesc 'CURSOR' - { - parser.checkForKeywords($2); - } - | ColumnIdentifier_EDIT OptionalAscOrDesc - | AnyCursor OptionalAscOrDesc - { - parser.suggestColumns(); - } - ; - -OptionalSkewedBy - : - | SkewedBy - ; - -SkewedBy - : 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList -> { suggestKeywords: ['STORED AS DIRECTORIES'] } - | 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList 'STORED_AS_DIRECTORIES' // Hack otherwise ambiguous with OptionalStoredAsOrBy - ; - -SkewedBy_EDIT - : 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - ; - -ParenthesizedSkewedValueList - : '(' SkewedValueList ')' - ; - -SkewedValueList - : ParenthesizedSimpleValueList - | SkewedValueList ',' ParenthesizedSimpleValueList - ; - -OptionalRowFormat - : - | RowFormat - ; - -RowFormat - : 'ROW' 'FORMAT' RowFormatSpec - { - $$ = $3 - } - ; - -RowFormat_EDIT - : 'ROW' 'CURSOR' - { - parser.suggestKeywords(['FORMAT']); - } - | 'ROW' 'FORMAT' 'CURSOR' - { - parser.suggestKeywords(['DELIMITED', 'SERDE']); - } - | 'ROW' 'FORMAT' RowFormatSpec_EDIT - ; - -OptionalStoredAsOrBy - : - | StoredAsOrBy - ; - -StoredAsOrBy - : StoredAs - | 'STORED' 'BY' QuotedValue - { - $$ = { storedBy: true } - } - ; - -StoredAsOrBy_EDIT - : 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS', 'BY']); - } - | StoredAs_EDIT - ; - -OptionalStoredAs - : -> { suggestKeywords: ['STORED AS'] } - | StoredAs - ; - -StoredAs - : 'STORED' 'AS' FileFormat - ; - -StoredAs_EDIT - : 'STORED' 'AS' 'CURSOR' - { - parser.suggestFileFormats(); - } - ; - -FileFormat - : 'AVRO' - | 'INPUTFORMAT' QuotedValue 'OUTPUTFORMAT' QuotedValue - | 'JSONFILE' - | 'ORC' - | 'PARQUET' - | 'RCFILE' - | 'SEQUENCEFILE' - | 'TEXTFILE' - ; - -RowFormatSpec - : DelimitedRowFormat - | 'SERDE' QuotedValue - ; - -RowFormatSpec_EDIT - : DelimitedRowFormat_EDIT - ; - -DelimitedRowFormat - : 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy OptionalLinesTerminatedBy OptionalNullDefinedAs - { - if (!$2 && !$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; - } else if ($2 && $2.suggestKeywords && !$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: parser.createWeightedKeywords($2.suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; - } else if (!$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$6) { - $$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; - } - } - ; - -DelimitedRowFormat_EDIT - : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy_EDIT OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy_EDIT - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy_EDIT OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs_EDIT - ; - -OptionalFieldsTerminatedBy - : - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue -> { suggestKeywords: ['ESCAPED BY'] } - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'BY' SingleQuotedValue - ; - -OptionalFieldsTerminatedBy_EDIT - : 'FIELDS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'FIELDS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalCollectionItemsTerminatedBy - : - | 'COLLECTION' 'ITEMS' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalCollectionItemsTerminatedBy_EDIT - : 'COLLECTION' 'CURSOR' - { - parser.suggestKeywords(['ITEMS TERMINATED BY']); - } - | 'COLLECTION' 'ITEMS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'COLLECTION' 'ITEMS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalMapKeysTerminatedBy - : - | 'MAP' 'KEYS' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalMapKeysTerminatedBy_EDIT - : 'MAP' 'CURSOR' - { - parser.suggestKeywords(['KEYS TERMINATED BY']); - } - | 'MAP' 'KEYS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'MAP' 'KEYS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalLinesTerminatedBy - : - | 'LINES' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalLinesTerminatedBy_EDIT - : 'LINES' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'LINES' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalNullDefinedAs - : - | 'NULL' 'DEFINED' 'AS' SingleQuotedValue - ; - -OptionalNullDefinedAs_EDIT - : 'NULL' 'CURSOR' - { - parser.suggestKeywords(['DEFINED AS']); - } - | 'NULL' 'DEFINED' 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - ; - -OptionalWithSerdeproperties - : - | WithSerdeproperties - ; - -WithSerdeproperties - :'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -WithSerdeproperties_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - ; - -OptionalTblproperties - : - | TblProperties - ; - -TblProperties - : 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -OptionalAsSelectStatement - : - | AsSelectStatement - ; - -AsSelectStatement - : 'AS' CommitLocations QuerySpecification - ; - -AsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -MaterializedViewDefinition - : 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier - OptionalDisableRewrite OptionalComment OptionalPartitionedOn OptionalClusteredOrDistributedOn - OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties - AsSelectStatement - ; - -MaterializedViewDefinition_EDIT - : 'CREATE' 'MATERIALIZED' 'CURSOR' - { - parser.suggestKeywords(['VIEW']); - } - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment - OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties 'CURSOR' - { - parser.suggestKeywordsForOptionalsLR([undefined, $12, $11, $10, $9, $8, $7, $6, $5], [ - { value: 'AS SELECT', weight: 1 }, - { value: 'TBLPROPERTIES', weight: 2 }, - { value: 'LOCATION', weight: 3 }, - [{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }], - [{ value: 'CLUSTERED ON', weight: 5 }, { value: 'DISTRIBUTED ON', weight: 5 }], - { value: 'PARTITIONED ON', weight: 6 }, - { value: 'COMMENT', weight: 7 }, - { value: 'DISABLE REWRITE', weight: 8 } - ]); - } - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier DisableRewrite_EDIT OptionalComment - OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment - PartitionedOn_EDIT OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment - OptionalPartitionedOn ClusteredOrDistributedOn_EDIT OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment - OptionalPartitionedOn OptionalClusteredOrDistributedOn RowFormat_EDIT OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment - OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat StoredAsOrBy_EDIT OptionalHdfsLocation - OptionalTblproperties - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment - OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy HdfsLocation_EDIT - OptionalTblproperties - | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment - OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties AsSelectStatement_EDIT - ; - - -OptionalDisableRewrite - : - | 'DISABLE' 'REWRITE' - ; - -DisableRewrite_EDIT - : 'DISABLE' 'CURSOR' - { - parser.suggestKeywords(['REWRITE']); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment OptionalTblproperties - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$7) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification - ; - -FunctionDefinition - : TemporaryFunction - ; - -FunctionDefinition_EDIT - : TemporaryFunction_EDIT - ; - -FunctionDefinition - : 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing - ; - -FunctionDefinition_EDIT - : 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing_EDIT - | 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['USING']); - } else { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - } - ; - -TemporaryFunction - : 'CREATE' 'TEMPORARY' 'FUNCTION' RegularIdentifier 'AS' SingleQuotedValue - ; - -TemporaryFunction_EDIT - : 'CREATE' 'TEMPORARY' 'FUNCTION' RegularIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - ; - -FunctionReference - : SingleQuotedValue - ; - -FunctionReference_EDIT - : SingleQuotedValue_EDIT - { - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - ; - -OptionalUsing - : - | 'USING' OneOrMoreFunctionResources - ; - -OptionalUsing_EDIT - : 'USING' 'CURSOR' - { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - ; - -OneOrMoreFunctionResources - : FunctionResource - | OneOrMoreFunctionResources ',' FunctionResource - ; - -FunctionResource - : FunctionResourceType SingleQuotedValue - ; - -FunctionResourceType - : 'ARCHIVE' - | 'FILE' - | 'JAR' - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; - -IndexDefinition - : 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment - ; - -IndexDefinition_EDIT - : 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON TABLE']); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' 'CURSOR' - { - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType_EDIT OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild_EDIT OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable_EDIT OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable RowFormat_EDIT OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat StoredAsOrBy_EDIT OptionalHdfsLocation - OptionalTblproperties OptionalComment - { - if ($13 && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { - parser.suggestKeywords(['AS']); - } - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy HdfsLocation_EDIT - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment 'CURSOR' - { - if (!$10 && !$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if ($13 && $13.suggestKeywords && !$14 && !$15 && !$16) { - parser.suggestKeywords(parser.createWeightedKeywords($13.suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); - } else if (!$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$16 && !$17) { - parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$17) { - parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); - } - } - ; - -ExistingTable - : SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -ExistingTable_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -IndexType - : QuotedValue - ; - -IndexType_EDIT - : QuotedValue_EDIT - { - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - } - ; - -OptionalWithDeferredRebuild - : - | 'WITH' 'DEFERRED' 'REBUILD' - ; - -OptionalWithDeferredRebuild_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['DEFERRED REBUILD']); - } - | 'WITH' 'DEFERRED' 'CURSOR' - { - parser.suggestKeywords(['REBUILD']); - } - ; - -OptionalIdxProperties - : - | 'IDXPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -OptionalInTable - : - | 'IN' 'TABLE' SchemaQualifiedTableIdentifier - ; - -OptionalInTable_EDIT - : 'IN' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'IN' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'IN' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - ; - - -ParenthesizedIndexColumnList - : '(' IndexColumnList ')' - ; - -ParenthesizedIndexColumnList_EDIT - : '(' IndexColumnList_EDIT RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -IndexColumnList - : ColumnReference - | IndexColumnList ',' ColumnReference - ; - -IndexColumnList_EDIT - : AnyCursor - | IndexColumnList ',' AnyCursor - | AnyCursor ',' IndexColumnList - | IndexColumnList ',' AnyCursor ',' IndexColumnList - ; - -MacroDefinition - : 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression - ; - -MacroDefinition_EDIT - : 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT - | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT ValueExpression - | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments 'CURSOR' - { - parser.suggestFunctions(); - } - | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression_EDIT - ; - -MacroArguments - : '(' ')' - | '(' MacroArgumentList ')' - ; - -MacroArguments_EDIT - : '(' MacroArgumentList_EDIT RightParenthesisOrError - ; - - -MacroArgumentList - : MacroArgument - | MacroArgumentList ',' MacroArgument - ; - -MacroArgumentList_EDIT - : MacroArgument_EDIT - | MacroArgumentList ',' MacroArgument_EDIT - | MacroArgument_EDIT ',' MacroArgumentList - | MacroArgumentList ',' MacroArgument_EDIT ',' MacroArgumentList - ; - -MacroArgument - : RegularIdentifier ColumnDataType - ; - -MacroArgument_EDIT - : RegularIdentifier 'CURSOR' - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularIdentifier ColumnDataType_EDIT - ; -LifeCyclePart -: -| 'LIFECYCLE' 'UNSIGNED_INTEGER' -; \ No newline at end of file diff --git a/src/jison/sql/hive/sql_drop.jison b/src/jison/sql/hive/sql_drop.jison deleted file mode 100644 index 5e3a2ba..0000000 --- a/src/jison/sql/hive/sql_drop.jison +++ /dev/null @@ -1,348 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - | AbortStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - | AbortStatement_EDIT - ; - -DataManipulation - : DeleteStatement - ; - -DataManipulation_EDIT - : DeleteStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropFunctionStatement - | DropRoleStatement - | DropTableStatement - | DropIndexStatement - | DropMacroStatement - | DropMaterializedViewStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropFunctionStatement_EDIT - | DropTableStatement_EDIT - | DropIndexStatement_EDIT - | DropMacroStatement_EDIT - | DropMaterializedViewStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; - -DropFunctionStatement - : 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists RegularIdentifier - ; - -DropFunctionStatement_EDIT - : 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'FUNCTION' OptionalIfExists_EDIT - | 'DROP' 'FUNCTION' OptionalIfExists_EDIT SchemaQualifiedIdentifier - | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists_EDIT - ; - -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropIndexStatement - : 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($6); - } - ; - -DropIndexStatement_EDIT - : 'DROP' 'INDEX' OptionalIfExists 'CURSOR' - { - parser.suggestKeywords(['IF EXISTS']); - } - | 'DROP' 'INDEX' OptionalIfExists_EDIT - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT - ; - -DropMacroStatement - : 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists RegularIdentifier - ; - -DropMacroStatement_EDIT - : 'DROP' 'TEMPORARY' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION', 'MACRO']); - } - | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists_EDIT - ; - - -DropMaterializedViewStatement - : 'DROP' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropMaterializedViewStatement_EDIT - : 'DROP' 'MATERIALIZED' 'CURSOR' - { - parser.suggestKeywords(['VIEW']); - } - | 'DROP' 'MATERIALIZED' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'MATERIALIZED' VIEW SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' 'CURSOR' OptionalPartitionSpec - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'TRUNCATE' 'TABLE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - } - ; - -DeleteStatement - : 'DELETE' 'FROM' SchemaQualifiedTableIdentifier OptionalWhereClause - { - parser.addTablePrimary($3); - } - ; - -DeleteStatement_EDIT - : 'DELETE' 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'DELETE' 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier 'CURSOR' OptionalWhereClause - { - parser.addTablePrimary($3); - if (!$5) { - parser.suggestKeywords(['WHERE']); - } - } - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier_EDIT OptionalWhereClause - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier WhereClause_EDIT - { - parser.addTablePrimary($3); - } - ; - -AbortStatement - : 'ABORT' 'TRANSACTIONS' TransactionIdList - ; - -AbortStatement_EDIT - : 'ABORT' 'CURSOR' - { - parser.suggestKeywords(['TRANSACTIONS']); - } - ; - -TransactionIdList - : UnsignedNumericLiteral - | TransactionIdList ',' UnsignedNumericLiteral - ; diff --git a/src/jison/sql/hive/sql_error.jison b/src/jison/sql/hive/sql_error.jison deleted file mode 100644 index 0a623b3..0000000 --- a/src/jison/sql/hive/sql_error.jison +++ /dev/null @@ -1,169 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -LateralView - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier 'AS' error -> { } - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction error -> { } - | 'LATERAL' 'VIEW' OptionalOuter error -> { } - | 'LATERAL' error -> { } - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7, $8, $9], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 && !$8 && !$9 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7, $8, $9], [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$6 && !$7 && !$8 && !$9 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7, $8, $9], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true]), - cursorAtEnd: !$7 && !$8 && !$9 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$8, $9], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$8 && !$9 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$9], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$9 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause error 'CURSOR' - { - $$ = { - suggestKeywords: [], - cursorAtEnd: true - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error OptionalClusterOrDistributeBy LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/hive/sql_grant.jison b/src/jison/sql/hive/sql_grant.jison deleted file mode 100644 index 36974db..0000000 --- a/src/jison/sql/hive/sql_grant.jison +++ /dev/null @@ -1,378 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : GrantStatement - | RevokeStatement - ; - -DataDefinition_EDIT - : GrantStatement_EDIT - | RevokeStatement_EDIT - ; - -GrantStatement - : 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption - ; - -GrantStatement_EDIT - : 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - } - | 'GRANT' PrivilegeTypeList_EDIT OptionalOnSpecification - | 'GRANT' PrivilegeTypeList OnSpecification_EDIT - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['ON', 'TO']); - } else { - parser.suggestKeywords(['TO']); - } - } - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - } - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList WithGrantOption_EDIT - | 'GRANT' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | 'GRANT' UserOrRoleList 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' - { - if (!$5) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - } - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT - | 'GRANT' 'ROLE' UserOrRoleList 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - } - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT - ; - -OptionalOnSpecification - : - | 'ON' ObjectSpecification - ; - -OnSpecification_EDIT - : 'ON' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'TABLE']); - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'ON' ObjectSpecification_EDIT - ; - -ObjectSpecification - : 'DATABASE' RegularOrBacktickedIdentifier - | 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($2); - } - | SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -ObjectSpecification_EDIT - : 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'TABLE' SchemaQualifiedTableIdentifier_EDIT - | SchemaQualifiedTableIdentifier_EDIT - ; - -PrivilegeTypeList - : PrivilegeTypeWithOptionalColumn - { - if ($1.toUpperCase() === 'ALL') { - $$ = { singleAll: true }; - } - } - | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn - ; - -PrivilegeTypeList_EDIT - : PrivilegeTypeWithOptionalColumn_EDIT - | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn_EDIT - | PrivilegeTypeWithOptionalColumn_EDIT ',' PrivilegeTypeList - | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn_EDIT ',' PrivilegeTypeList - | 'CURSOR' ',' PrivilegeTypeList - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | PrivilegeTypeList ',' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | PrivilegeTypeList ',' 'CURSOR' ',' PrivilegeTypeList - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - ; - -PrivilegeTypeWithOptionalColumn - : PrivilegeType OptionalParenthesizedColumnList - ; - -PrivilegeTypeWithOptionalColumn_EDIT - : PrivilegeType ParenthesizedColumnList_EDIT - ; - -PrivilegeType - : 'ALL' - | 'ALTER' - | 'CREATE' - | 'DELETE' - | 'DROP' - | 'INDEX' - | 'INSERT' - | 'LOCK' - | 'SELECT' - | 'SHOW_DATABASE' - | 'UPDATE' - ; - -PrincipalSpecificationList - : PrincipalSpecification - | PrincipalSpecificationList ',' PrincipalSpecification - ; - -PrincipalSpecificationList_EDIT - : PrincipalSpecificationList ',' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'CURSOR' ',' PrincipalSpecificationList - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | PrincipalSpecificationList ',' 'CURSOR' ',' PrincipalSpecificationList - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - ; - -PrincipalSpecification - : 'USER' RegularOrBacktickedIdentifier - | 'GROUP' RegularOrBacktickedIdentifier - | 'ROLE' RegularOrBacktickedIdentifier - ; - -PrincipalSpecification_EDIT - : 'USER' 'CURSOR' - | 'GROUP' 'CURSOR' - | 'ROLE' 'CURSOR' - ; - -UserOrRoleList - : RegularOrBacktickedIdentifier - | UserOrRoleList ',' RegularOrBacktickedIdentifier - ; - -OptionalWithGrantOption - : - | 'WITH' 'GRANT' 'OPTION' - ; - -WithGrantOption_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['GRANT OPTION']); - } - | 'WITH' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; - -OptionalWithAdminOption - : - | 'WITH' 'ADMIN' 'OPTION' - ; - -WithAdminOption_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['ADMIN OPTION']); - } - | 'WITH' 'ADMIN' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; - -RevokeStatement - : 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList - | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'FROM' UserOrRoleList - ; - -RevokeStatement_EDIT - : 'REVOKE' 'CURSOR' - { - parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - } - | 'REVOKE' PrivilegeTypeList_EDIT - | 'REVOKE' PrivilegeTypeList OnSpecification_EDIT - | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$3) { - if ($2.singleAll) { - parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); - } else { - parser.suggestKeywords(['FROM', 'ON']); - } - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION FOR']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'CURSOR' - { - parser.suggestKeywords(['FOR']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList_EDIT - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OnSpecification_EDIT - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['FROM', 'ON']); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' UserOrRoleList 'CURSOR' - { - if ($2.toUpperCase() === 'ADMIN') { - parser.suggestKeywords(['FROM', 'OPTION FOR']); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ROLE' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - - | 'REVOKE' 'ADMIN' 'OPTION' 'CURSOR' - { - parser.suggestKeywords(['FOR']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'CURSOR' - { - parser.suggestKeywords(['ROLE']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ALL' PrivilegesOrGrantOption_EDIT - | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - ; - -PrivilegesOrGrantOption - : 'PRIVILEGES' - | 'GRANT' 'OPTION' - ; - -PrivilegesOrGrantOption_EDIT - : 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; diff --git a/src/jison/sql/hive/sql_insert.jison b/src/jison/sql/hive/sql_insert.jison deleted file mode 100644 index ea50c68..0000000 --- a/src/jison/sql/hive/sql_insert.jison +++ /dev/null @@ -1,536 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - | CommonTableExpression InsertStatement - | MergeStatement - ; - -DataManipulation_EDIT - : InsertStatement_EDIT - | CommonTableExpression InsertStatement_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT InsertStatement - | MergeStatement_EDIT - ; - -InsertStatement - : InsertWithoutQuery - | InsertWithoutQuery QuerySpecification - | FromClause Inserts - | FromClause SelectWithoutTableExpression OptionalSelectConditions - ; - -InsertStatement_EDIT - : InsertWithoutQuery_EDIT - | InsertWithoutQuery 'CURSOR' - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); - } else { - keywords = ['SELECT']; - } - if ($1.addValues) { - keywords.push({ weight: 1.1, value: 'VALUES' }); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - | InsertWithoutQuery_EDIT QuerySpecification - | InsertWithoutQuery QuerySpecification_EDIT - | FromClause Inserts_EDIT - { - if (!$2.keepTables) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - } - | FromClause_EDIT - | FromClause_EDIT Inserts - | FromClause_EDIT SelectWithoutTableExpression OptionalSelectConditions - | FromClause 'CURSOR' - { - parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); - } - | FromClause SelectWithoutTableExpression_EDIT OptionalSelectConditions - { - if ($2.cursorAtEnd) { - parser.checkForSelectListKeywords($2); - var keywords = parser.yy.result.suggestKeywords || []; - if ($3.suggestKeywords) { - keywords = keywords.concat($3.suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - | FromClause SelectWithoutTableExpression OptionalSelectConditions_EDIT - { - if ($3.cursorAtStart) { - parser.checkForSelectListKeywords($2.tableExpression); - } - } - ; - -InsertWithoutQuery - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (!$5 && !$6) { - $$ = { suggestKeywords: ['PARTITION'] } - } else if (!$6) { - $$ = { suggestKeywords: ['IF NOT EXISTS'] } - } - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs - { - if (!$6 && !$7) { - $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$7) { - $$ = { suggestKeywords: ['STORED AS'] }; - } - } - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs - { - if (!$4 && !$5) { - $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$5) { - $$ = { suggestKeywords: ['STORED AS'] }; - } - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (!$5 && !$6) { - $$ = { suggestKeywords: ['PARTITION'], addValues: true }; - } else if (!$6) { - $$ = { addValues: true }; - } - } - ; - -InsertWithoutQuery_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['OVERWRITE', 'INTO']); - } - | 'INSERT' 'OVERWRITE' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - $$ = { keepTables: true } - } - | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList - { - $$ = { keepTables: true } - } - | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalIfNotExists - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists_EDIT - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORY']); - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs // DIRECTORY is a non-reserved keyword - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - $$ = { keepTables: true } - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList - { - $$ = { keepTables: true } - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalParenthesizedColumnList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList_EDIT - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - ; - -Inserts - : GenericInsert - | Inserts GenericInsert - ; - -Inserts_EDIT - : GenericInsert_EDIT - | Inserts GenericInsert_EDIT - | GenericInsert_EDIT Inserts - | Inserts GenericInsert_EDIT Inserts - ; - -// TODO: Verify unions in insert -GenericInsert - : InsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions - ; - -GenericInsert_EDIT - : InsertWithoutQuery_EDIT - | InsertWithoutQuery_EDIT SelectWithoutTableExpression OptionalSelectConditions - | InsertWithoutQuery 'CURSOR' - { - if ($1.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); - } else { - parser.suggestKeywords(['SELECT']); - } - } - | InsertWithoutQuery SelectWithoutTableExpression_EDIT OptionalSelectConditions - { - if ($2.cursorAtEnd) { - parser.checkForSelectListKeywords($2); - var keywords = parser.yy.result.suggestKeywords || []; - if ($3.suggestKeywords) { - keywords = keywords.concat($3.suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - } - | InsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions_EDIT - ; - -InsertValuesList - : ParenthesizedRowValuesList - | InsertValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; - -OptionalInsertRowFormat - : - | 'ROW' 'FORMAT' DelimitedRowFormat - ; - -OptionalInsertRowFormat_EDIT - : 'ROW' 'CURSOR' - { - parser.suggestKeywords(['FORMAT DELIMITED']); - } - | 'ROW' 'FORMAT' 'CURSOR' - { - parser.suggestKeywords(['DELIMITED']); - } - | 'ROW' 'FORMAT' DelimitedRowFormat_EDIT - ; - -SelectWithoutTableExpression - : 'SELECT' OptionalAllOrDistinct SelectList -> { selectList: $3 } - ; - -SelectWithoutTableExpression_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - $$ = $3; - $$.cursorAtEnd = true; - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - } - ; - -MergeStatement - : MergeStatementLeftPart 'ON' ValueExpression WhenList - ; - -MergeStatement_EDIT - : MergeStatementLeftPart_EDIT - | MergeStatementLeftPart 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | MergeStatementLeftPart 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | MergeStatementLeftPart 'ON' ValueExpression_EDIT - | MergeStatementLeftPart 'ON' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, [{ value: 'WHEN', weight: 2 }]); - } - | MergeStatementLeftPart 'ON' ValueExpression WhenList_EDIT - ; - -MergeStatementLeftPart - : 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' RegularIdentifier - { - $3.alias = $5; - parser.addTablePrimary($3); - if ($7.subQuery) { - parser.addTablePrimary({ subQueryAlias: $9 }); - } else { - $7.alias = $9; - } - } - ; - -MergeStatementLeftPart_EDIT - : 'MERGE' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'MERGE' 'INTO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier_EDIT - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['AS T USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['T USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource_EDIT - { - $3.alias = $5; - parser.addTablePrimary($3); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['AS S ON']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['S ON']); - } - ; - -MergeSource - : '(' TableSubQueryInner ')' -> $2 - | SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -MergeSource_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | '(' TableSubQueryInner_EDIT RightParenthesisOrError - | SchemaQualifiedTableIdentifier_EDIT - ; - -WhenList - : WhenClause - | WhenClause WhenClause - | WhenClause WhenClause WhenClause - ; - -WhenList_EDIT - : WhenClause_EDIT - { - if ($1.suggestThenKeywords) { - parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); - } - } - | WhenClause 'CURSOR' - { - if (!$1.notPresent) { - parser.suggestKeywords(['WHEN']); - } - } - | WhenClause WhenClause_EDIT - { - if (!$1.notPresent && $2.suggestThenKeywords) { - var keywords = []; - if (!$1.isDelete) { - keywords.push('DELETE'); - } - if (!$1.isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$1.isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - } - | WhenClause WhenClause 'CURSOR' - { - if (!$2.notPresent) { - parser.suggestKeywords(['WHEN']); - } - } - | WhenClause WhenClause WhenClause_EDIT - { - if (!$2.notPresent && $3.suggestThenKeywords) { - var keywords = []; - if (!$1.isDelete && !$2.isDelete) { - keywords.push('DELETE'); - } - if (!$1.isInsert && !$2.isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$1.isUpdate && !$2.isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - } - ; - -WhenClause - : 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert -> { notPresent: !!$2, isDelete: $6.isDelete, isInsert: $6.isInsert, isUpdate: $6.isUpdate } - ; - -WhenClause_EDIT - : 'WHEN' OptionalNot 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); - } else { - parser.suggestKeywords(['MATCHED']); - } - } - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['AND', 'THEN']); - } else { - parser.suggestValueExpressionKeywords($4, [{ value: 'THEN', weight: 2 }]); - } - } - | 'WHEN' OptionalNot 'MATCHED' MatchCondition_EDIT - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' 'CURSOR' -> { suggestThenKeywords: true } - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert_EDIT - ; - -OptionalMatchCondition - : - | 'AND' ValueExpression -> $2 - ; - -MatchCondition_EDIT - : 'AND' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - ; - -UpdateDeleteOrInsert - : 'UPDATE' 'SET' SetClauseList -> { isUpdate: true } - | 'DELETE' -> { isDelete: true } - | 'INSERT' 'VALUES' InsertValuesList -> { isInsert: true } - ; - -UpdateDeleteOrInsert_EDIT - : 'UPDATE' 'CURSOR' - { - parser.suggestKeywords(['SET']); - } - | 'UPDATE' 'SET' SetClauseList_EDIT - | 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - ; diff --git a/src/jison/sql/hive/sql_load.jison b/src/jison/sql/hive/sql_load.jison deleted file mode 100644 index 8ca41b0..0000000 --- a/src/jison/sql/hive/sql_load.jison +++ /dev/null @@ -1,293 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : LoadStatement - | ImportStatement - | ExportStatement - ; - -DataManipulation_EDIT - : LoadStatement_EDIT - | ImportStatement_EDIT - | ExportStatement_EDIT - ; - -LoadStatement - : 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalInputFormat - { - parser.addTablePrimary($9); - } - ; - -LoadStatement_EDIT - : 'LOAD' 'CURSOR' - { - parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); - } - | 'LOAD' 'DATA' OptionalLocal 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); - } else { - parser.suggestKeywords(['INPATH']); - } - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath_EDIT OptionalOverwrite - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'CURSOR' - { - parser.suggestKeywords([ 'TABLE' ]); - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalInputFormat - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalInputFormat 'CURSOR' - { - parser.addTablePrimary($9); - if (!$10 && !$11) { - parser.suggestKeywords(['INPUTFORMAT', 'PARTITION']); - } else if ($10 && !$11) { - parser.suggestKeywords(['INPUTFORMAT']); - } - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalInputFormat - { - parser.addTablePrimary($9); - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec InputFormat_EDIT - { - parser.addTablePrimary($9); - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath_EDIT OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalInputFormat - { - parser.addTablePrimary($9); - } - ; - -OptionalOverwrite - : - | 'OVERWRITE' - ; - -OptionalLocal - : - | 'LOCAL' - ; - -OptionalInputFormat - : - | InputFormat - ; - -InputFormat - : 'INPUTFORMAT' QuotedValue 'SERDE' QuotedValue - ; - -InputFormat_EDIT - : 'INPUTFORMAT' QuotedValue 'CURSOR' - { - parser.suggestKeywords(['SERDE']); - } - ; - -ImportStatement - : 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - ; - -ImportStatement_EDIT - : 'IMPORT' 'CURSOR' OptionalTableWithPartition - { - if (!$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); - } else if (!$3.hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - } - | 'IMPORT' TableWithPartition 'CURSOR' - { - if ($2.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'IMPORT' TableWithPartition_EDIT - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath_EDIT OptionalHdfsLocation - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath HdfsLocation_EDIT - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['LOCATION']); - } - } - | 'IMPORT' 'CURSOR' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - { - if (!$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); - } else if (!$3.hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - } -| 'IMPORT' TableWithPartition_EDIT PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - | 'IMPORT' TableWithPartition 'CURSOR' PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - { - if ($2.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); - } - } - ; - -OptionalTableWithPartition - : - | TableWithPartition - ; - -TableWithPartition - : 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - if (!$4) { - $$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; - } else { - $$ = { hasExternal: true } - } - } - | 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($2); - if (!$3) { - $$ = { suggestKeywords: ['PARTITION'] }; - } - } - ; - -TableWithPartition_EDIT - : 'EXTERNAL' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXTERNAL' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - - | 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - ; - -ExportStatement - : 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; - -ExportStatement_EDIT - : 'EXPORT' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXPORT' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); - } else { - parser.suggestKeywords([ 'TO' ]); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['FOR replication()']); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['replication()']); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; diff --git a/src/jison/sql/hive/sql_main.jison b/src/jison/sql/hive/sql_main.jison deleted file mode 100644 index 8cfc554..0000000 --- a/src/jison/sql/hive/sql_main.jison +++ /dev/null @@ -1,3683 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['INSERT', 'SELECT']); - } - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - ; - -NonReservedKeyword - : 'ABORT' - | 'ADD' - | 'ADMIN' - | 'AFTER' - | 'ANALYZE' - | 'ARCHIVE' - | 'AST' - | 'AVRO' - | 'BUCKET' - | 'BUCKETS' - | 'CASCADE' - | 'CBO' - | 'CHANGE' - | 'CHECK' - | 'CLUSTERED' - | 'COLLECTION' - | 'COLUMNS' - | 'COMMENT' - | 'COMPACT' - | 'COMPACTIONS' - | 'COMPUTE' - | 'CONCATENATE' - | 'COST' - | 'CURRENT_DATE' - | 'CURRENT_TIMESTAMP' - | 'CURRENT_USER' - | 'DATA' - | 'DATABASES' - | 'DAY' - | 'DAYOFWEEK' - | 'DBPROPERTIES' - | 'DEFAULT' - | 'DEFERRED' - | 'DEFINED' - | 'DELIMITED' - | 'DEPENDENCY' - | 'DETAIL' - | 'DIRECTORY' - | 'DISABLE' - | 'DISTRIBUTED' - | 'DOUBLE_PRECISION' - | 'ENABLE' - | 'ESCAPED' - | 'EXCHANGE' - | 'EXPLAIN' - | 'EXPORT' - | 'EXPRESSION' - | 'FIELDS' - | 'FILE' - | 'FILEFORMAT' - | 'FIRST' - | 'FORMAT' - | 'FUNCTIONS' - | 'HOUR' - | 'IDXPROPERTIES' - | 'INPATH' - | 'INPUTFORMAT' - | 'ITEMS' - | 'JAR' - | 'JOINCOST' - | 'JSONFILE' - | 'KEY' - | 'KEYS' - | 'LAST' - | 'LINES' - | 'LITERAL' - | 'LOAD' - | 'LOCATION' - | 'LOCKS' - | 'MATCHED' - | 'MATERIALIZED' - | 'MERGE' - | 'METADATA' - | 'MINUTE' - | 'MONTH' - | 'MSCK' - | 'NO_DROP' - | 'NORELY' - | 'NOSCAN' - | 'NOVALIDATE' - | 'OFFLINE' - | 'ONLY' - | 'OPERATOR' - | 'OPTION' - | 'ORC' - | 'OUTPUTFORMAT' - | 'OVERWRITE' - | 'OVERWRITE_DIRECTORY' - | 'OWNER' - | 'PARQUET' - | 'PARTITIONED' - | 'PARTITIONS' - | 'PERCENT' - | 'PRIVILEGES' - | 'PURGE' - | 'QUARTER' - | 'RCFILE' - | 'REBUILD' - | 'RECOVER' - | 'RELOAD' - | 'RELY' - | 'RENAME' - | 'REPAIR' - | 'REPLACE' - | 'REPLICATION' - | 'RESTRICT' - | 'REWRITE' - | 'ROLE' - | 'ROLES' - | 'SCHEMAS' - | 'SECOND' - | 'SEQUENCEFILE' - | 'SERDE' - | 'SERDEPROPERTIES' - | 'SETS' - | 'SHOW' - | 'SKEWED_LOCATION' - | 'SKEWED' - | 'SORTED' - | 'STATISTICS' - | 'STORED' - | 'STORED_AS_DIRECTORIES' - | 'STRING' - | 'STRUCT' - | 'SUMMARY' - | 'TABLES' - | 'TBLPROPERTIES' - | 'TEMPORARY' - | 'TERMINATED' - | 'TEXTFILE' - | 'TINYINT' - | 'TOUCH' - | 'TRANSACTIONAL' - | 'TRANSACTIONS' - | 'UNARCHIVE' - | 'UNIONTYPE' - | 'UNIQUE' - | 'USE' - | 'VECTORIZATION' - | 'VIEW' - | 'WAIT' - | 'WEEK' - | 'YEAR' -// | 'ASC' // These cause conflicts, we could use a separate lexer state for DESCRIBE, ALTER, GRANT, REVOKE and SHOW -// | 'CLUSTER' -// | 'DESC' -// | 'DISTRIBUTE' -// | 'FORMATTED' -// | 'INDEX' -// | 'INDEXES' -// | 'LOCK' -// | 'OVER' -// | 'SCHEMA' -// | 'SHOW_DATABASE' -// | 'SORT' -// | 'TABLESAMPLE' -// | 'WINDOW' -// | 'WITH' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | 'ADMIN' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AUTHORIZATION' - | 'AVG' - | 'AVRO' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BINARY' - | 'BOOLEAN' - | 'BUCKET' - | 'BUCKETS' - | 'BY' - | 'CACHE' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'CLUSTER' - | 'CLUSTERED' - | 'COLLECT_LIST' - | 'COLLECT_SET' - | 'COLLECTION' - | 'COLUMNS' - | 'COMMENT' - | 'COMPACTIONS' - | 'COMPARISON_OPERATOR' - | 'COMPUTE' - | 'CONF' - | 'CONSTRAINT' - | 'CORR' - | 'COUNT' - | 'COVAR_POP' - | 'COVAR_SAMP' - | 'CROSS' - | 'CUBE' - | 'CURRENT' - | 'DATA' - | 'DATABASE' - | 'DATABASES' - | 'DATE' - | 'DAY' - | 'DAYOFWEEK' - | 'DBPROPERTIES' - | 'DECIMAL' - | 'DEFERRED' - | 'DEFINED' - | 'DELIMITED' - | 'DEPENDENCY' - | 'DESC' - | 'DIRECTORY' - | 'DISTINCT' - | 'DISTRIBUTE' - | 'DISTRIBUTED' - | 'DOUBLE' - | 'DOUBLE_PRECISION' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'ESCAPED' - | 'EXISTS' - | 'EXTENDED' - | 'EXTERNAL' - | 'FALSE' - | 'FIELDS' - | 'FILE' - | 'FLOAT' - | 'FOLLOWING' - | 'FOR' - | 'FOREIGN' - | 'FORMAT' - | 'FORMATTED' - | 'FROM' - | 'FULL' - | 'FUNCTION' - | 'FUNCTIONS' - | 'GRANT' - | 'GROUP' - | 'GROUPING' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'HISTOGRAM_NUMERIC' - | 'HOUR' - | 'IDXPROPERTIES' - | 'IF' - | 'IN' - | 'INDEX' - | 'INDEXES' - | 'INNER' - | 'INPATH' - | 'INPUTFORMAT' - | 'INT' - | 'INTEGER' - | 'INTO' - | 'IS' - | 'ITEMS' - | 'JAR' - | 'JOIN' - | 'JSONFILE' - | 'KEY' - | 'KEYS' - | 'LAST' - | 'LATERAL' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'LINES' - | 'LOCAL' - | 'LOCATION' - | 'LOCK' - | 'LOCKS' - | 'MACRO' - | 'MAP' - | 'MATCHED' - | 'MAX' - | 'METADATA' - | 'MIN' - | 'MINUTE' - | 'MONTH' - | 'NONE' - | 'NORELY' - | 'NOSCAN' - | 'NOT' - | 'NOVALIDATE' - | 'NTILE' - | 'NULL' - | 'NULLS' - | 'OF' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORC' - | 'ORDER' - | 'OUT' - | 'OUTER' - | 'OUTPUTFORMAT' - | 'OVER' - | 'OVERWRITE' - | 'OWNER' - | 'PARQUET' - | 'PARTITION' - | 'PARTITIONED' - | 'PARTITIONS' - | 'PERCENT' - | 'PERCENTILE' - | 'PERCENTILE_APPROX' - | 'PRECEDING' - | 'PRIMARY' - | 'PRIVILEGES' - | 'PURGE' - | 'QUARTER' - | 'RANGE' - | 'RCFILE' - | 'REBUILD' - | 'REFERENCES' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RELY' - | 'REPAIR' - | 'REPLICATION' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROLES' - | 'ROLLUP' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SCHEMAS' - | 'SECOND' - | 'SEMI' - | 'SEQUENCEFILE' - | 'SERDE' - | 'SERDEPROPERTIES' - | 'SET' - | 'SETS' - | 'SHOW_DATABASE' - | 'SINGLE_QUOTE' - | 'SKEWED' - | 'SMALLINT' - | 'SORTED' - | 'STATISTICS' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STORED' - | 'STORED_AS_DIRECTORIES' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'TABLES' - | 'TABLESAMPLE' - | 'TBLPROPERTIES' - | 'TEMPORARY' - | 'TERMINATED' - | 'TEXTFILE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRANSACTIONAL' - | 'TRANSACTIONS' - | 'TRUE' - | 'UNION' - | 'UNIONTYPE' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'USER' - | 'USING' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'VIEW' - | 'VIEWS' - | 'WAIT' - | 'WEEK' - | 'WHEN' - | 'WHERE' - | 'WINDOW' - | 'YEAR' - | '~' - ; - -DataDefinition - : DescribeStatement - ; - -DataDefinition_EDIT - : DescribeStatement_EDIT - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -IndexOrIndexes - : 'INDEX' - | 'INDEXES' - ; - -DatabasesOrSchemas - : 'DATABASES' - | 'SCHEMAS' - ; - -RoleOrUser - : 'ROLE' - | 'USER' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalExtended - : - | 'EXTENDED' - ; - -OptionalExtendedOrFormatted - : - | 'EXTENDED' - | 'FORMATTED' - ; - -OptionalExternal - : - | 'EXTERNAL' - ; - -OptionallyFormattedIndex - : 'FORMATTED' IndexOrIndexes - | IndexOrIndexes - ; - -OptionallyFormattedIndex_EDIT - : 'FORMATTED' 'CURSOR' - { - parser.suggestKeywords(['INDEX', 'INDEXES']); - } - | 'CURSOR' IndexOrIndexes - { - parser.suggestKeywords(['FORMATTED']); - } - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalCascadeOrRestrict - : - | 'CASCADE' - | 'RESTRICT' - ; - -OptionalTemporary - : - | 'TEMPORARY' - ; - -OptionalTransactional - : - | 'TRANSACTIONAL' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - | ConfigurationName '.' RegularIdentifier - | ConfigurationName '.' 'PARTIAL_CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnIdentifier_EDIT - | ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' ColumnIdentifier_EDIT - | ColumnIdentifier_EDIT ',' ColumnList - | ColumnList ',' ColumnIdentifier_EDIT ',' ColumnList - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - | ColumnIdentifier // Partial partition specs are allowed in some cases - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -OptionalHdfsLocation - : - | HdfsLocation - ; - -HdfsLocation - : 'LOCATION' HdfsPath - ; - -HdfsLocation_EDIT - : 'LOCATION' HdfsPath_EDIT - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : ColumnIdentifier_EDIT - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | BasicIdentifierChain '.' ColumnIdentifier_EDIT - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | BasicIdentifierChain '.' ColumnIdentifier_EDIT '.' BasicIdentifierChain - | ColumnIdentifier_EDIT '.' BasicIdentifierChain - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : ColumnIdentifier_EDIT - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | DerivedColumnChain '.' ColumnIdentifier_EDIT - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | DerivedColumnChain '.' ColumnIdentifier_EDIT '.' DerivedColumnChain - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | ColumnIdentifier_EDIT '.' DerivedColumnChain - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - | RegularOrBacktickedIdentifier '[' ValueExpression ']' -> { identifier: { name: $1, keySet: true }, location: @1 } - | RegularOrBacktickedIdentifier '[' ']' -> { identifier: { name: $1, keySet: true }, location: @1 } - ; - -ColumnIdentifier_EDIT - : RegularOrBacktickedIdentifier '[' AnyCursor RightSquareBracketOrError -> { identifier: { name: $1 }, insideKey: true } - | RegularOrBacktickedIdentifier '[' ValueExpression_EDIT RightSquareBracketOrError -> { identifier: { name: $1 }} - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -RightSquareBracketOrError - : ']' - | error - ; - -// TODO: Support | DECIMAL(precision, scale) -- (Note: Available in Hive 0.13.0 and later) -PrimitiveType - : 'BIGINT' - | 'BINARY' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DATE' - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'DOUBLE_PRECISION' - | 'FLOAT' - | 'INT' - | 'INTEGER' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== DESCRIBE statement ===================================== - -DescribeStatement - : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec - { - parser.addTablePrimary($3); - parser.addColumnLocation(@4, $4); - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - } - | 'DESCRIBE' DatabaseOrSchema OptionalExtended DatabaseIdentifier - { - parser.addDatabaseLocation(@4, [{ name: $4 }]); - } - | 'DESCRIBE' 'FUNCTION' OptionalExtended RegularIdentifier - ; - -DescribeStatement_EDIT - : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain_EDIT OptionalPartitionSpec - { - parser.addTablePrimary($3); - } - | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec - { - if (!$2) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - } - | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - if (!$2) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec - { - parser.addTablePrimary($3); - parser.suggestColumns(); - if (!$5) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain 'CURSOR' OptionalPartitionSpec - { - if (!$6) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec_EDIT - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - - | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DESCRIBE' DatabaseOrSchema OptionalExtended DatabaseIdentifier_EDIT - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' DatabaseOrSchema OptionalExtended 'CURSOR' DatabaseIdentifier - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' 'FUNCTION' OptionalExtended 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' 'FUNCTION' OptionalExtended 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($3); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (!$1.hasLateralViews && typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if (!$1.hasLateralViews && $1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if (!$1.hasLateralViews && $1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['CROSS', 'FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'LEFT SEMI', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'CROSS JOIN', weight: 1 }, - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList OptionalLateralViews - { - $$ = { tableReferenceList : $2, suggestKeywords: ['LATERAL VIEW'] } - if ($3) { - parser.yy.lateralViews = $3.lateralViews; - $$.hasLateralViews = true; - if ($3.suggestKeywords) { - $$.suggestKeywords = $$.suggestKeywords.concat($3.suggestKeywords); - } - } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT OptionalLateralViews - { - if ($3) { - parser.yy.lateralViews = $3.lateralViews; - } - } - | 'FROM' TableReferenceList OptionalLateralViews_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5, $6, $6, $7], - [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true, true, !$5, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $7 ? @7 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$5 && !$6 && !$7) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6, $7, $7, $8], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true, !$6, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6 && !$7 && !$8; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6, $7, $7, $8], - [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, !$6, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6 && !$7 && !$8; - if (!$4 && !$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6, $7, $7, $8], - [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, !$6, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 && !$7 && !$8 }; - if (!$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $3, @3); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6, $7, $8], - [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], - [true, true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 && !$7 && !$8 }; - if (!$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $4, @4); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$7, $8], - [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], - [true, true]); - if ($5.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 5)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$7 && !$8 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $5, @5); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR([$8], [{ value: 'LIMIT', weight: 3 }], [true]); - if ($6.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$8 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = @6; - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $7 ? @7 : undefined; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList OptionalGroupingSetsCubeOrRollup - { - $$ = { valueExpression: $4 ? false : $3 }; - if (!$4) { - $$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; - } - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT OptionalGroupingSetsCubeOrRollup - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' OptionalGroupingSetsCubeOrRollup - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'BY' GroupByColumnList OptionalGroupingSetsCubeOrRollup_EDIT - ; - -OptionalGroupingSetsCubeOrRollup - : - | GroupingSets - | 'WITH' 'CUBE' - | 'WITH' 'ROLLUP' - ; - -OptionalGroupingSetsCubeOrRollup_EDIT - : GroupingSets_EDIT - | 'WITH' 'CURSOR' - { - parser.suggestKeywords(['CUBE', 'ROLLUP']); - } - ; - -GroupingSets - : 'GROUPING' 'SETS' '(' ColumnGroupingSets ')' - ; - -GroupingSets_EDIT - : 'GROUPING' 'CURSOR' - { - parser.suggestKeywords(['SETS']); - } - | 'GROUPING' 'SETS' '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc OptionalNullsFirstOrLast - { - if ($2.suggestKeywords && $3.suggestKeywords) { - $$ = parser.mergeSuggestKeywords($2, $3); - } else { - $$ = parser.mergeSuggestKeywords($3); - } - } - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc OptionalNullsFirstOrLast - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc OptionalNullsFirstOrLast - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | ValueExpression OptionalAscOrDesc NullsFirstOrLast_EDIT - ; - -OptionalAscOrDesc - : -> { suggestKeywords: ['ASC', 'DESC'] }; - | 'ASC' - | 'DESC' - ; - -OptionalNullsFirstOrLast - : -> { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] } - | NullsFirstOrLast - ; - -NullsFirstOrLast - : 'NULLS' 'FIRST' - | 'NULLS' 'LAST' - ; - -NullsFirstOrLast_EDIT - : 'NULLS' 'CURSOR' - { - parser.suggestKeywords(['FIRST', 'LAST']); - } - ; - -OptionalClusterOrDistributeBy - : - | ClusterOrDistributeBy - ; - -ClusterOrDistributeBy - : ClusterByClause - | DistributeByClause -> { suggestKeywords: ['SORT BY'] } - | DistributeByClause SortByClause - | SortByClause - ; - -ClusterOrDistributeBy_EDIT - : ClusterByClause_EDIT - | DistributeByClause_EDIT - | DistributeByClause SortByClause_EDIT - | DistributeByClause_EDIT SortByClause - | SortByClause_EDIT - ; - -ClusterByClause - : 'CLUSTER' 'BY' ColumnList - ; - -ClusterByClause_EDIT - : 'CLUSTER' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'CLUSTER' 'BY' 'CURSOR' - { - parser.suggestColumns(); - parser.suggestSelectListAliases(); - } - | 'CLUSTER' 'BY' ColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -DistributeByClause - : 'DISTRIBUTE' 'BY' ColumnList - ; - -DistributeByClause_EDIT - : 'DISTRIBUTE' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'DISTRIBUTE' 'BY' 'CURSOR' - { - parser.suggestColumns(); - parser.suggestSelectListAliases(); - } - | 'DISTRIBUTE' 'BY' ColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -SortByClause - : 'SORT' 'BY' SortByList -> $3 - ; - -SortByClause_EDIT - : 'SORT' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'SORT' 'BY' SortByList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -SortByList - : SortByIdentifier - | SortByList ',' SortByIdentifier -> $3 - ; - -SortByList_EDIT - : SortByIdentifier_EDIT - | SortByIdentifier_EDIT ',' SortByList - | SortByList ',' SortByIdentifier_EDIT - | SortByList ',' SortByIdentifier_EDIT ',' SortByList - ; - -SortByIdentifier - : ColumnIdentifier OptionalAscOrDesc - { - parser.addColumnLocation($1.location, [ $1.identifier ]); - $$ = $2; - } - ; - -SortByIdentifier_EDIT - : ColumnIdentifier_EDIT OptionalAscOrDesc - | AnyCursor OptionalAscOrDesc - { - parser.suggestColumns(); - } - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER', 'SEMI'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalTableSample OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($3) { - $1.alias = $3.alias - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - var keywords = []; - // Right-to-left for cursor after TablePrimary - keywords = parser.getKeywordsForOptionalsLR([$3, $2], [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [true, true]); - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - keywords = parser.getKeywordsForOptionalsLR([$2], [{ value: 'AS', weight: 2 }], [true]); - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalTableSample OptionalCorrelationName - { - if ($3) { - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - } - | TableOrQueryName OptionalTableSample_EDIT OptionalCorrelationName - { - if ($3) { - $1.alias = $3.alias; - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalTableSample - : - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn ')' - | 'TABLESAMPLE' '(' ExactNumericLiteral 'PERCENT' ')' - | 'TABLESAMPLE' '(' ExactNumericLiteral 'ROWS' ')' - | 'TABLESAMPLE' '(' 'REGULAR_IDENTIFIER' ')' - ; - -OptionalTableSample_EDIT - : 'TABLESAMPLE' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['BUCKET']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['OUT OF']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['OF']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn 'CURSOR' RightParenthesisOrError - { - if (!$8) { - parser.suggestKeywords(['ON']); - } - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn_EDIT RightParenthesisOrError - | 'TABLESAMPLE' '(' ExactNumericLiteral 'CURSOR' RightParenthesisOrError - { - if ($3.indexOf('.') === -1 ) { - parser.suggestKeywords(['PERCENT', 'ROWS']); - } else { - parser.suggestKeywords(['PERCENT']); - } - } - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -OptionalLateralViews - : - | OptionalLateralViews LateralView - { - if ($1 && $2.lateralView) { - $1.lateralViews.push($2.lateralView); - $$ = $1; - } else if ($2.lateralView) { - $$ = { lateralViews: [ $2.lateralView ] }; - } - if ($2.suggestKeywords) { - $$.suggestKeywords = $2.suggestKeywords - } - } - ; - -OptionalLateralViews_EDIT - : OptionalLateralViews LateralView_EDIT OptionalLateralViews - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - | ExtractFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - | ExtractFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'BINARY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'UNBOUNDED']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['PRECEDING']); - } - } - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -OptionalWindowClause - : - | WindowClause - ; - -WindowClause - : 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression - ; - -WindowClause_EDIT - : 'WINDOW' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression_EDIT - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ExtractFunction - : 'EXTRACT' '(' DateField 'FROM' ValueExpression ')' -> { types: ['INT', 'INTEGER'] } - ; - -ExtractFunction_EDIT - : 'EXTRACT' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - $$ = { types: ['INT', 'INTEGER'] } - } - | 'EXTRACT' '(' DateField 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['FROM']); - $$ = { types: ['INT', 'INTEGER'] } - } - | 'EXTRACT' '(' DateField 'FROM' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['INT', 'INTEGER'] } - } - | 'EXTRACT' '(' DateField 'FROM' ValueExpression_EDIT RightParenthesisOrError -> { types: ['INT', 'INTEGER'] } - | 'EXTRACT' '(' AnyCursor 'FROM' ValueExpression RightParenthesisOrError - { - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - $$ = { types: ['INT', 'INTEGER'] } - } - | 'EXTRACT' '(' DateField 'CURSOR' ValueExpression RightParenthesisOrError - { - parser.suggestKeywords(['FROM']); - $$ = { types: ['INT', 'INTEGER'] } - } - ; - -DateField - : 'DAY' - | 'DAYOFWEEK' - | 'HOUR' - | 'MINUTE' - | 'MONTH' - | 'QUARTER' - | 'SECOND' - | 'WEEK' - | 'YEAR' - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'COLLECT_LIST' - | 'COLLECT_SET' - | 'CORR' - | 'COVAR_POP' - | 'COVAR_SAMP' - | 'HISTOGRAM_NUMERIC' - | 'MAX' - | 'MIN' - | 'NTILE' - | 'PERCENTILE' - | 'PERCENTILE_APPROX' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -LateralView - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases -> { lateralView: { udtf: $4, tableAlias: $5, columnAliases: $6 }} - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier - { - if ($4.function.toLowerCase() === 'explode') { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; - } else if ($4.function.toLowerCase() === 'posexplode') { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; - } else { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: [] }, suggestKeywords: ['AS'] }; - } - } - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction LateralViewColumnAliases -> { lateralView: { udtf: $4, columnAliases: $5 }} - ; - -LateralView_EDIT - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier LateralViewColumnAliases - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases_EDIT - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor LateralViewColumnAliases - | 'LATERAL' 'VIEW' OptionalOuter 'CURSOR' - { - if (!$3) { - parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); - } else { - parser.suggestKeywords(['explode', 'posexplode']); - } - } - | 'LATERAL' 'CURSOR' - { - parser.suggestKeywords(['VIEW']); - } - ; - -OptionalOuter - : - | 'OUTER' - ; - -LateralViewColumnAliases - : 'AS' RegularOrBacktickedIdentifier -> [ $2 ] - | 'AS' RegularOrBacktickedIdentifier ',' RegularOrBacktickedIdentifier -> [ $2, $4 ] - ; - -LateralViewColumnAliases_EDIT - : 'AS' PartialBacktickedOrCursor - | 'AS' RegularOrBacktickedIdentifier ',' PartialBacktickedOrAnyCursor - ; diff --git a/src/jison/sql/hive/sql_set.jison b/src/jison/sql/hive/sql_set.jison deleted file mode 100644 index 6ff041a..0000000 --- a/src/jison/sql/hive/sql_set.jison +++ /dev/null @@ -1,62 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetRoleStatement - | SetSpecification - ; - -DataDefinition_EDIT - : SetRoleStatement_EDIT - | 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - parser.suggestKeywords(['ROLE']); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; - -SetRoleStatement - : 'SET' 'ROLE' RegularIdentifier - | 'SET' 'ROLE' 'ALL' - | 'SET' 'ROLE' 'NONE' - ; - -SetRoleStatement_EDIT - : 'SET' 'ROLE' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'NONE']); - } - ; diff --git a/src/jison/sql/hive/sql_show.jison b/src/jison/sql/hive/sql_show.jison deleted file mode 100644 index 50b3e76..0000000 --- a/src/jison/sql/hive/sql_show.jison +++ /dev/null @@ -1,535 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : ShowStatement - ; - -DataDefinition_EDIT - : ShowStatement_EDIT - ; - -ShowStatement - : ShowColumnsStatement - | ShowCompactionsStatement - | ShowConfStatement - | ShowCreateTableStatement - | ShowCurrentRolesStatement - | ShowDatabasesStatement - | ShowFunctionsStatement - | ShowGrantStatement - | ShowIndexStatement - | ShowLocksStatement - | ShowMaterializedViewsStatement - | ShowPartitionsStatement - | ShowRolesStatement - | ShowRoleStatement - | ShowTablesStatement - | ShowTableStatement - | ShowTblPropertiesStatement - | ShowTransactionsStatement - | ShowViewsStatement - ; - -ShowStatement_EDIT - : 'SHOW' 'CURSOR' - { - parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'MATERIALIZED VIEWS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); - } - | 'SHOW' 'CURSOR' RegularOrBackTickedSchemaQualifiedName - { - // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT - if ($3.identifierChain && $3.identifierChain.length === 1 && $3.identifierChain[0].name.toLowerCase() === 'roles') { - parser.suggestKeywords(['CURRENT']); - parser.yy.locations.pop(); - } else { - parser.addTablePrimary($3); - } - } - | 'SHOW' 'CURSOR' LIKE SingleQuotedValue - { - parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); - } - | ShowColumnsStatement_EDIT - | ShowCreateTableStatement_EDIT - | ShowCurrentRolesStatement_EDIT - | ShowDatabasesStatement_EDIT - | ShowGrantStatement_EDIT - | ShowIndexStatement_EDIT - | ShowLocksStatement_EDIT - | ShowMaterializedViewsStatement_EDIT - | ShowPartitionsStatement_EDIT - | ShowRoleStatement_EDIT - | ShowTablesStatement_EDIT - | ShowTableStatement_EDIT - | ShowTblPropertiesStatement_EDIT - | ShowViewsStatement_EDIT - ; - -ShowColumnsStatement - : 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier - | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier - ; - -ShowColumnsStatement_EDIT - : 'SHOW' 'COLUMNS' 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' 'COLUMNS' 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' - { - parser.suggestTables(); - } - | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' FromOrIn - { - parser.suggestTables(); - } - | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' FromOrIn RegularOrBacktickedIdentifier - { - parser.suggestTables(); - } - | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier FromOrIn 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -ShowCompactionsStatement - : 'SHOW' 'COMPACTIONS' - ; - -ShowConfStatement - : 'SHOW' 'CONF' ConfigurationName - ; - -ShowCreateTableStatement - : 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - } - ; - -ShowCreateTableStatement_EDIT - : 'SHOW' 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'SHOW' 'CREATE' TableOrView 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName_EDIT - { - if (parser.yy.result.suggestTables && $3.isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'SHOW' 'CREATE' 'CURSOR' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - parser.suggestKeywords(['TABLE']); - } - ; - -TableOrView - : 'TABLE' - | 'VIEW' -> { isView: true } - ; - -ShowCurrentRolesStatement - : 'SHOW' 'CURRENT' 'ROLES' - ; - -ShowCurrentRolesStatement_EDIT - : 'SHOW' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords([ 'ROLES' ]); - } - ; - -ShowDatabasesStatement - : 'SHOW' DatabasesOrSchemas 'LIKE' SingleQuotedValue - ; - -ShowDatabasesStatement_EDIT - : 'SHOW' DatabasesOrSchemas 'CURSOR' - { - parser.suggestKeywords(['LIKE']); - } - ; - -ShowFunctionsStatement - : 'SHOW' 'FUNCTIONS' - | 'SHOW' 'FUNCTIONS' DoubleQuotedValue - ; - -ShowGrantStatement - : 'SHOW' 'GRANT' OptionalPrincipalName - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'ALL' - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'TABLE' SchemaQualifiedTableIdentifier - ; - -ShowGrantStatement_EDIT - : 'SHOW' 'GRANT' OptionalPrincipalName_EDIT - { - parser.suggestKeywords(['ON']); - } - | 'SHOW' 'GRANT' OptionalPrincipalName_EDIT 'ON' 'ALL' - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'TABLE']); - parser.suggestTables(); - } - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier_EDIT - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - } - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.suggestKeywords(['TABLE']); - } - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier_EDIT - ; - -OptionalPrincipalName - : - | RegularIdentifier - ; - -OptionalPrincipalName_EDIT - : 'CURSOR' - | RegularIdentifier 'CURSOR' - ; - -ShowIndexStatement - : 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier - | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier - ; - -ShowIndexStatement_EDIT - : 'SHOW' OptionallyFormattedIndex - | 'SHOW' OptionallyFormattedIndex_EDIT - | 'SHOW' OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier - | 'SHOW' OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier - | 'SHOW' OptionallyFormattedIndex 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'SHOW' OptionallyFormattedIndex 'ON' 'CURSOR' - { - parser.suggestTables(); - } - | 'SHOW' OptionallyFormattedIndex 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['ON']); - } - | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier FromOrIn 'CURSOR' - { - parser.suggestDatabases(); - } - | 'SHOW' OptionallyFormattedIndex 'ON' 'CURSOR' FromOrIn RegularOrBacktickedIdentifier - { - parser.suggestTables({identifierChain: [{name: $6}]}); - } - ; - -ShowMaterializedViewsStatement - : 'SHOW' 'MATERIALIZED' 'VIEWS' OptionalInOrFromDatabase OptionalLike - ; - -ShowMaterializedViewsStatement_EDIT - : 'SHOW' 'MATERIALIZED' 'CURSOR' - { - parser.suggestKeywords(['VIEWS']); - } - | 'SHOW' 'MATERIALIZED' 'VIEWS' OptionalInOrFromDatabase OptionalLike 'CURSOR' - { - if (!$5 && !$4) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else if (!$5) { - parser.suggestKeywords(['LIKE']); - } - } - | 'SHOW' 'MATERIALIZED' 'VIEWS' InOrFromDatabase_EDIT OptionalLike - | 'SHOW' 'MATERIALIZED' 'VIEWS' OptionalInOrFromDatabase Like_EDIT - ; - -ShowLocksStatement - : 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'EXTENDED' - { - parser.addTablePrimary($3); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec - { - parser.addTablePrimary($3); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'EXTENDED' - { - parser.addTablePrimary($3); - } - | 'SHOW' 'LOCKS' DatabaseOrSchema RegularOrBacktickedIdentifier - ; - -ShowLocksStatement_EDIT - : 'SHOW' 'LOCKS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestKeywords(['DATABASE', 'SCHEMA']); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['EXTENDED', 'PARTITION']); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT 'EXTENDED' - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['EXTENDED']); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec 'EXTENDED' - | 'SHOW' 'LOCKS' DatabaseOrSchema 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -ShowPartitionsStatement - : 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName PartitionSpec - { - parser.addTablePrimary($3); - } - ; - -ShowPartitionsStatement_EDIT - : 'SHOW' 'PARTITIONS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['PARTITION']); - } - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec - ; - -ShowRoleStatement - : 'SHOW' 'ROLE' 'GRANT' RoleOrUser RegularIdentifier - ; - -ShowRoleStatement_EDIT - : 'SHOW' 'ROLE' 'CURSOR' - { - parser.suggestKeywords(['GRANT']); - } - | 'SHOW' 'ROLE' 'CURSOR' RoleOrUser RegularIdentifier - { - parser.suggestKeywords(['GRANT']); - } - | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' RegularIdentifier - { - parser.suggestKeywords(['ROLE', 'USER']); - } - ; - -ShowRolesStatement - : 'SHOW' 'ROLES' - ; - -ShowTableStatement - : 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec - ; - -ShowTableStatement_EDIT - : 'SHOW' 'TABLE' 'CURSOR' - { - parser.suggestKeywords(['EXTENDED']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' - { - if ($4) { - parser.suggestKeywords(['LIKE']); - } else { - parser.suggestKeywords(['FROM', 'IN', 'LIKE']); - } - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue - | 'SHOW' 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue - { - parser.suggestKeywords(['EXTENDED']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue - { - parser.suggestKeywords(['LIKE']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue PartitionSpec - | 'SHOW' 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec - { - parser.suggestKeywords(['EXTENDED']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue PartitionSpec - { - parser.suggestKeywords(['LIKE']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' PartitionSpecList - { - parser.suggestKeywords(['PARTITION']); - } - ; - -ShowTablesStatement - : 'SHOW' 'TABLES' OptionalInDatabase - | 'SHOW' 'TABLES' OptionalInDatabase SingleQuotedValue - | 'SHOW' 'TABLES' OptionalInDatabase 'LIKE' SingleQuotedValue - ; - -ShowTablesStatement_EDIT - : 'SHOW' 'TABLES' OptionalInDatabase 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - } - ; - -ShowTblPropertiesStatement - : 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; - -ShowTblPropertiesStatement_EDIT - : 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'SHOW' 'TBLPROPERTIES' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - ; - -ShowTransactionsStatement - : 'SHOW' 'TRANSACTIONS' - ; - -ShowViewsStatement - : 'SHOW' 'VIEWS' OptionalInOrFromDatabase OptionalLike - ; - -ShowViewsStatement_EDIT - : 'SHOW' 'VIEWS' OptionalInOrFromDatabase OptionalLike 'CURSOR' - { - if (!$4 && !$3) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else if (!$4) { - parser.suggestKeywords(['LIKE']); - } - } - | 'SHOW' 'VIEWS' InOrFromDatabase_EDIT OptionalLike - | 'SHOW' 'VIEWS' OptionalInOrFromDatabase Like_EDIT - ; - -OptionalInOrFromDatabase - : - | 'IN' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@2, [ { name: $2 } ]); - } - | 'FROM' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@2, [ { name: $2 } ]); - } - ; - -InOrFromDatabase_EDIT - : 'IN' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'FROM' 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -OptionalLike - : - | 'LIKE' SingleQuotedValue - ; - -Like_EDIT - : 'LIKE' 'CURSOR' - ; diff --git a/src/jison/sql/hive/sql_update.jison b/src/jison/sql/hive/sql_update.jison deleted file mode 100644 index 18dd53f..0000000 --- a/src/jison/sql/hive/sql_update.jison +++ /dev/null @@ -1,124 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - if (!$6) { - parser.suggestKeywords([ 'WHERE' ]); - } - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql/hive/sql_use.jison b/src/jison/sql/hive/sql_use.jison deleted file mode 100644 index 0ceedb7..0000000 --- a/src/jison/sql/hive/sql_use.jison +++ /dev/null @@ -1,42 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -UseStatement - : 'USE' RegularIdentifier - { - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : 'USE' 'CURSOR' - { - parser.suggestDatabases(); - } - ; - - -// ===================================== Fin ===================================== diff --git a/src/jison/sql/hive/sql_valueExpression.jison b/src/jison/sql/hive/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/hive/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/hive/syntax_footer.jison b/src/jison/sql/hive/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/hive/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/hive/syntax_header.jison b/src/jison/sql/hive/syntax_header.jison deleted file mode 100644 index 2d13c95..0000000 --- a/src/jison/sql/hive/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/impala/autocomplete_footer.jison b/src/jison/sql/impala/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/impala/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/impala/autocomplete_header.jison b/src/jison/sql/impala/autocomplete_header.jison deleted file mode 100644 index 2c6e444..0000000 --- a/src/jison/sql/impala/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'ILIKE' 'IREGEXP' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/impala/sql.jisonlex b/src/jison/sql/impala/sql.jisonlex deleted file mode 100644 index fbb3162..0000000 --- a/src/jison/sql/impala/sql.jisonlex +++ /dev/null @@ -1,535 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -// Reserved Keywords -'ADD' { return 'ADD'; } -'AGGREGATE' { return 'AGGREGATE'; } -'ALL' { return 'ALL'; } -'ALLOCATE' { return 'ALLOCATE'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'ANALYTIC' { return 'ANALYTIC'; } -'AND' { return 'AND'; } -'ANTI' { return 'ANTI'; } -'ANY' { return 'ANY'; } -'ARE' { return 'ARE'; } -'ARRAY_AGG' { return 'ARRAY_AGG'; } -'ARRAY_MAX_CARDINALITY' { return 'ARRAY_MAX_CARDINALITY'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'ASENSITIVE' { return 'ASENSITIVE'; } -'ASYMMETRIC' { return 'ASYMMETRIC'; } -'AT' { return 'AT'; } -'ATOMIC' { return 'ATOMIC'; } -'AUTHORIZATION' { return 'AUTHORIZATION'; } -'AVRO' { return 'AVRO'; } -'BEGIN_FRAME' { return 'BEGIN_FRAME'; } -'BEGIN_PARTITION' { return 'BEGIN_PARTITION'; } -'BETWEEN' { return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BLOB' { return 'BLOB'; } -'BLOCK_SIZE' { return 'BLOCK_SIZE'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BOTH' { return 'BOTH'; } -'BY' { return 'BY'; } -'CACHED' { return 'CACHED'; } -'CALLED' { return 'CALLED'; } -'CARDINALITY' { return 'CARDINALITY'; } -'CASCADE' { return 'CASCADE'; } -'CASCADED' { return 'CASCADED'; } -'CASE' { return 'CASE'; } -'CHANGE' { return 'CHANGE'; } -'CHAR' { return 'CHAR'; } -'CHARACTER' { return 'CHARACTER'; } -'CLOB' { return 'CLOB'; } -'CLOSE_FN' { return 'CLOSE_FN'; } -'COLLATE' { return 'COLLATE'; } -'COLLECT' { return 'COLLECT'; } -'COLUMN' { return 'COLUMN'; } -'COLUMNS' { return 'COLUMNS'; } -'COMMENT' { parser.determineCase(yytext); return 'COMMENT'; } -'COMMIT' { return 'COMMIT'; } -'COMPRESSION' { return 'COMPRESSION'; } -'COMPUTE' { parser.determineCase(yytext); return 'COMPUTE'; } -'CONDITION' { return 'CONDITION'; } -'CONNECT' { return 'CONNECT'; } -'CONSTRAINT' { return 'CONSTRAINT'; } -'CONTAINS' { return 'CONTAINS'; } -'CONVERT' { return 'CONVERT'; } -'COPY' { return 'COPY'; } -'CORR' { return 'CORR'; } -'CORRESPONDING' { return 'CORRESPONDING'; } -'COVAR_POP' { return 'COVAR_POP'; } -'COVAR_SAMP' { return 'COVAR_SAMP'; } -'CREATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('CREATE', yylloc, yy.lexer.upcomingInput()); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CUBE' { return 'CUBE'; } -'CURRENT' { return 'CURRENT'; } -'CURRENT_DATE' { return 'CURRENT_DATE'; } -'CURRENT_DEFAULT_TRANSFORM_GROUP' { return 'CURRENT_DEFAULT_TRANSFORM_GROUP'; } -'CURRENT_PATH' { return 'CURRENT_PATH'; } -'CURRENT_ROLE' { return 'CURRENT_ROLE'; } -'CURRENT_ROW' { return 'CURRENT_ROW'; } -'CURRENT_SCHEMA' { return 'CURRENT_SCHEMA'; } -'CURRENT_TIME' { return 'CURRENT_TIME'; } -'CURRENT_TRANSFORM_GROUP_FOR_TYPE' { return 'CURRENT_TRANSFORM_GROUP_FOR_TYPE'; } -'CYCLE' { return 'CYCLE'; } -'DATA' { return 'DATA'; } -'DATABASE' { return 'DATABASE'; } -'DATABASES' { return 'DATABASES'; } -'DEALLOCATE' { return 'DEALLOCATE'; } -'DEC' { return 'DEC'; } -'DECFLOAT' { return 'DECFLOAT'; } -'DECIMAL' { return 'DECIMAL'; } -'DECLARE' { return 'DECLARE'; } -'DEFINE' { return 'DEFINE'; } -'DELETE' { return 'DELETE'; } -'DELIMITED' { return 'DELIMITED'; } -'DEREF' { return 'DEREF'; } -'DESC' { return 'DESC'; } -'DESCRIBE' { parser.determineCase(yytext); parser.addStatementTypeLocation('DESCRIBE', yylloc); return 'DESCRIBE'; } -'DETERMINISTIC' { return 'DETERMINISTIC'; } -'DISCONNECT' { return 'DISCONNECT'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'DYNAMIC' { return 'DYNAMIC'; } -'EACH' { return 'EACH'; } -'ELEMENT' { return 'ELEMENT'; } -'ELSE' { return 'ELSE'; } -'EMPTY' { return 'EMPTY'; } -'ENCODING' { return 'ENCODING'; } -'END' { return 'END'; } -'END_FRAME' { return 'END_FRAME'; } -'END_PARTITION' { return 'END_PARTITION'; } -'EQUALS' { return 'EQUALS'; } -'ESCAPE' { return 'ESCAPE'; } -'ESCAPED' { return 'ESCAPED'; } -'EVERY' { return 'EVERY'; } -'EXCEPT' { return 'EXCEPT'; } -'EXEC' { return 'EXEC'; } -'EXECUTE' { return 'EXECUTE'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'EXPLAIN' { parser.determineCase(yytext); parser.addStatementTypeLocation('EXPLAIN', yylloc); return 'EXPLAIN'; } -'EXTENDED' { return 'EXTENDED'; } -'EXTERNAL' { return 'EXTERNAL'; } -'FALSE' { return 'FALSE'; } -'FETCH' { return 'FETCH'; } -'FIELDS' { return 'FIELDS'; } -'FILEFORMAT' { return 'FILEFORMAT'; } -'FILES' { return 'FILES'; } -'FILTER' { return 'FILTER'; } -'FINALIZE_FN' { return 'FINALIZE_FN'; } -'FIRST' { return 'FIRST'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FOR' { return 'FOR'; } -'FOREIGN' { return 'FOREIGN'; } -'FORMAT' { return 'FORMAT'; } -'FORMATTED' { return 'FORMATTED'; } -'FRAME_ROW' { return 'FRAME_ROW'; } -'FREE' { return 'FREE'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'FUNCTION' { return 'FUNCTION'; } -'FUNCTIONS' { return 'FUNCTIONS'; } -'FUSION' { return 'FUSION'; } -'GET' { return 'GET'; } -'GLOBAL' { return 'GLOBAL'; } -'GRANT' { parser.determineCase(yytext); parser.addStatementTypeLocation('GRANT', yylloc); return 'GRANT'; } -'GROUP' { return 'GROUP'; } -'GROUPING' { return 'GROUPING'; } -'GROUPS' { return 'GROUPS'; } -'HASH' { return 'HASH'; } -'HAVING' { return 'HAVING'; } -'HOLD' { return 'HOLD'; } -'IF' { return 'IF'; } -'IGNORE' { return 'IGNORE'; } -'ILIKE' { return 'ILIKE'; } -'IN' { return 'IN'; } -'INCREMENTAL' { return 'INCREMENTAL'; } -'INDICATOR' { return 'INDICATOR'; } -'INIT_FN' { return 'INIT_FN'; } -'INITIAL' { return 'INITIAL'; } -'INNER' { return 'INNER'; } -'INOUT' { return 'INOUT'; } -'INPATH' { this.begin('hdfs'); return 'INPATH'; } -'INSENSITIVE' { return 'INSENSITIVE'; } -'INSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('INSERT', yylloc); return 'INSERT'; } -'INT' { return 'INT'; } -'INTERMEDIATE' { return 'INTERMEDIATE'; } -'INTERSECT' { return 'INTERSECT'; } -'INTERSECTION' { return 'INTERSECTION'; } -'INTERVAL' { return 'INTERVAL'; } -'INTO' { return 'INTO'; } -'INVALIDATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('INVALIDATE', yylloc, yy.lexer.upcomingInput()); return 'INVALIDATE'; } -'IREGEXP' { return 'IREGEXP'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'JSON_ARRAY' { return 'JSON_ARRAY'; } -'JSON_ARRAYAGG' { return 'JSON_ARRAYAGG'; } -'JSON_EXISTS' { return 'JSON_EXISTS'; } -'JSON_OBJECT' { return 'JSON_OBJECT'; } -'JSON_OBJECTAGG' { return 'JSON_OBJECTAGG'; } -'JSON_QUERY' { return 'JSON_QUERY'; } -'JSON_TABLE' { return 'JSON_TABLE'; } -'JSON_TABLE_PRIMITIVE' { return 'JSON_TABLE_PRIMITIVE'; } -'JSON_VALUE' { return 'JSON_VALUE'; } -'KEY' { return 'KEY'; } -'KUDU' { return 'KUDU'; } -'LARGE' { return 'LARGE'; } -'LAST' { return 'LAST'; } -'LATERAL' { return 'LATERAL'; } -'LEADING' { return 'LEADING'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIKE_REGEX' { return 'LIKE_REGEX'; } -'LIMIT' { return 'LIMIT'; } -'LIFECYCLE' { return 'LIFECYCLE'; } -'LINES' { return 'LINES'; } -'LISTAGG' { return 'LISTAGG'; } -'LOAD' { parser.determineCase(yytext); parser.addStatementTypeLocation('LOAD', yylloc, yy.lexer.upcomingInput()); return 'LOAD'; } -'LOCAL' { return 'LOCAL'; } -'LOCALTIMESTAMP' { return 'LOCALTIMESTAMP'; } -'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } -'MATCH' { return 'MATCH'; } -'MATCH_NUMBER' { return 'MATCH_NUMBER'; } -'MATCH_RECOGNIZE' { return 'MATCH_RECOGNIZE'; } -'MATCHES' { return 'MATCHES'; } -'MERGE' { return 'MERGE'; } -'MERGE_FN' { return 'MERGE_FN'; } -'METADATA' { return 'METADATA'; } -'METHOD' { return 'METHOD'; } -'MODIFIES' { return 'MODIFIES'; } -'MULTISET' { return 'MULTISET'; } -'NATIONAL' { return 'NATIONAL'; } -'NATURAL' { return 'NATURAL'; } -'NCHAR' { return 'NCHAR'; } -'NCLOB' { return 'NCLOB'; } -'NO' { return 'NO'; } -'NONE' { return 'NONE'; } -'NORMALIZE' { return 'NORMALIZE'; } -'NOT' { return 'NOT'; } -'NTH_VALUE' { return 'NTH_VALUE'; } -'NULL' { return 'NULL'; } -'NULLS' { return 'NULLS'; } -'NUMERIC' { return 'NUMERIC'; } -'OCCURRENCES_REGEX' { return 'OCCURRENCES_REGEX'; } -'OCTET_LENGTH' { return 'OCTET_LENGTH'; } -'OF' { return 'OF'; } -'OFFSET' { return 'OFFSET'; } -'OMIT' { return 'OMIT'; } -'ON' { return 'ON'; } -'ONE' { return 'ONE'; } -'ONLY' { return 'ONLY'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORC' { return 'ORC'; } -'ORDER' { return 'ORDER'; } -'OUT' { return 'OUT'; } -'OUTER' { return 'OUTER'; } -'OVER' { return 'OVER'; } -'OVERLAPS' { return 'OVERLAPS'; } -'OVERLAY' { return 'OVERLAY'; } -'OVERWRITE' { return 'OVERWRITE'; } -'PARQUET' { return 'PARQUET'; } -'PARTITION' { return 'PARTITION'; } -'PARTITIONED' { return 'PARTITIONED'; } -'PARTITIONS' { return 'PARTITIONS'; } -'PATTERN' { return 'PATTERN'; } -'PER' { return 'PER'; } -'PERCENT' { return 'PERCENT'; } -'PERCENTILE_CONT' { return 'PERCENTILE_CONT'; } -'PERCENTILE_DISC' { return 'PERCENTILE_DISC'; } -'PORTION' { return 'PORTION'; } -'POSITION' { return 'POSITION'; } -'POSITION_REGEX' { return 'POSITION_REGEX'; } -'PRECEDES' { return 'PRECEDES'; } -'PRECEDING' { return 'PRECEDING'; } -'PREPARE' { return 'PREPARE'; } -'PREPARE_FN' { return 'PREPARE_FN'; } -'PRIMARY' { return 'PRIMARY'; } -'PROCEDURE' { return 'PROCEDURE'; } -'PTF' { return 'PTF'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'RCFILE' { return 'RCFILE'; } -'READS' { return 'READS'; } -'REAL' { return 'REAL'; } -'RECOVER' { return 'RECOVER'; } -'RECURSIVE' { return 'RECURSIVE'; } -'REF' { return 'REF'; } -'REFERENCES' { return 'REFERENCES'; } -'REFERENCING' { return 'REFERENCING'; } -'REFRESH' { parser.determineCase(yytext); parser.addStatementTypeLocation('REFRESH', yylloc); return 'REFRESH'; } -'REGEXP' { return 'REGEXP'; } -'REGR_AVGX' { return 'REGR_AVGX'; } -'REGR_AVGY' { return 'REGR_AVGY'; } -'REGR_COUNT' { return 'REGR_COUNT'; } -'REGR_INTERCEPT' { return 'REGR_INTERCEPT'; } -'REGR_R2REGR_SLOPE' { return 'REGR_R2REGR_SLOPE'; } -'REGR_SXX' { return 'REGR_SXX'; } -'REGR_SXY' { return 'REGR_SXY'; } -'REGR_SYY' { return 'REGR_SYY'; } -'RELEASE' { return 'RELEASE'; } -'RENAME' { return 'RENAME'; } -'REPEATABLE' { return 'REPEATABLE'; } -'REPLACE' { return 'REPLACE'; } -'REPLICATION' { return 'REPLICATION'; } -'RESTRICT' { return 'RESTRICT'; } -'RETURNS' { return 'RETURNS'; } -'REVOKE' { parser.determineCase(yytext); parser.addStatementTypeLocation('REVOKE', yylloc); return 'REVOKE'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROLE' { return 'ROLE'; } -'ROLES' { return 'ROLES'; } -'ROLLBACK' { return 'ROLLBACK'; } -'ROLLUP' { return 'ROLLUP'; } -'ROW' { return 'ROW'; } -'ROWS' { return 'ROWS'; } -'RUNNING' { return 'RUNNING'; } -'SAVEPOINT' { return 'SAVEPOINT'; } -'SCHEMA' { return 'SCHEMA'; } -'SCHEMAS' { return 'SCHEMAS'; } -'SCOPE' { return 'SCOPE'; } -'SCROLL' { return 'SCROLL'; } -'SEARCH' { return 'SEARCH'; } -'SEEK' { return 'SEEK'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SENSITIVE' { return 'SENSITIVE'; } -'SEQUENCEFILE' { return 'SEQUENCEFILE'; } -'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } -'SERIALIZE_FN' { return 'SERIALIZE_FN'; } -'SERVER' { return 'SERVER'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SIMILAR' { return 'SIMILAR'; } -'SKIP' { return 'SKIP'; } -'SMALLINT' { return 'SMALLINT'; } -'SOME' { return 'SOME'; } -'SORT' { return 'SORT'; } -'SPECIFIC' { return 'SPECIFIC'; } -'SPECIFICTYPE' { return 'SPECIFICTYPE'; } -'SQLEXCEPTION' { return 'SQLEXCEPTION'; } -'SQLSTATE' { return 'SQLSTATE'; } -'SQLWARNING' { return 'SQLWARNING'; } -'STATIC' { return 'STATIC'; } -'STATS' { return 'STATS'; } -'STORED' { return 'STORED'; } -'STRAIGHT_JOIN' { return 'STRAIGHT_JOIN'; } -'STRING' { return 'STRING'; } -'SUBMULTISET' { return 'SUBMULTISET'; } -'SUBSET' { return 'SUBSET'; } -'SUBSTRING_REGEX' { return 'SUBSTRING_REGEX'; } -'SUCCEEDS' { return 'SUCCEEDS'; } -'SYMBOL' { return 'SYMBOL'; } -'SYMMETRIC' { return 'SYMMETRIC'; } -'SYSTEM_TIME' { return 'SYSTEM_TIME'; } -'SYSTEM_USER' { return 'SYSTEM_USER'; } -'TABLE' { return 'TABLE'; } -'TABLES' { return 'TABLES'; } -'TABLESAMPLE' { return 'TABLESAMPLE'; } -'TBLPROPERTIES' { return 'TBLPROPERTIES'; } -'TERMINATED' { return 'TERMINATED'; } -'TEXTFILE' { return 'TEXTFILE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TIMEZONE_HOUR' { return 'TIMEZONE_HOUR'; } -'TIMEZONE_MINUTE' { return 'TIMEZONE_MINUTE'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRAILING' { return 'TRAILING'; } -'TRANSLATE_REGEX' { return 'TRANSLATE_REGEX'; } -'TRANSLATION' { return 'TRANSLATION'; } -'TREAT' { return 'TREAT'; } -'TRIGGER' { return 'TRIGGER'; } -'TRIM_ARRAY' { return 'TRIM_ARRAY'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UESCAPE' { return 'UESCAPE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNCACHED' { return 'UNCACHED'; } -'UNION' { return 'UNION'; } -'UNIQUE' { return 'UNIQUE'; } -'UNKNOWN' { return 'UNKNOWN'; } -'UNNEST' { return 'UNNEST'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'UPDATE_FN' { return 'UPDATE_FN'; } -'UPSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('UPSERT', yylloc); return 'UPSERT'; } -'URI' { return 'URI'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'USER' { return 'USER'; } -'USING' { return 'USING'; } -'VALUE_OF' { return 'VALUE_OF'; } -'VALUES' { return 'VALUES'; } -'VARBINARY' { return 'VARBINARY'; } -'VARCHAR' { return 'VARCHAR'; } -'VARYING' { return 'VARYING'; } -'VERSIONING' { return 'VERSIONING'; } -'VIEW' { return 'VIEW'; } -'WHEN' { return 'WHEN'; } -'WHENEVER' { return 'WHENEVER'; } -'WHERE' { return 'WHERE'; } -'WIDTH_BUCKET' { return 'WIDTH_BUCKET'; } -'WINDOW' { return 'WINDOW'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } -'WITHIN' { return 'WITHIN'; } -'WITHOUT' { return 'WITHOUT'; } -LIKE\s+PARQUET { this.begin('hdfs'); return 'LIKE_PARQUET'; } -PARTITION\s+VALUE\s { return 'PARTITION_VALUE'; } - -// Non-reserved Keywords -'OVER' { return 'OVER'; } -'ROLE' { return 'ROLE'; } -'ARRAY' { return 'ARRAY'; } -'DEFAULT' { return 'DEFAULT'; } -'MAP' { return 'MAP'; } -'OWNER' { return 'OWNER'; } -'STRUCT' { return 'STRUCT'; } -\[BROADCAST\] { return 'BROADCAST'; } -\[NOSHUFFLE\] { return 'NOSHUFFLE'; } -\[SHUFFLE\] { return 'SHUFFLE'; } - -// --- UDFs --- -APPX_MEDIAN\s*\( { yy.lexer.unput('('); yytext = 'appx_median'; parser.addFunctionLocation(yylloc, yytext); return 'APPX_MEDIAN'; } -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -EXTRACT\s*\( { yy.lexer.unput('('); yytext = 'extract'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACT'; } -GROUP_CONCAT\s*\( { yy.lexer.unput('('); yytext = 'group_concat'; parser.addFunctionLocation(yylloc, yytext); return 'GROUP_CONCAT'; } -LEFT\s*\( { yy.lexer.unput('('); yytext = 'left'; parser.addFunctionLocation(yylloc, yytext); return 'LEFT_F'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -NDV\s*\( { yy.lexer.unput('('); yytext = 'ndv'; parser.addFunctionLocation(yylloc, yytext); return 'NDV'; } -STDDEV\s*\( { yy.lexer.unput('('); yytext = 'stddev'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } -VARIANCE_POP\s*\( { yy.lexer.unput('('); yytext = 'variance_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE_POP'; } -VARIANCE_SAMP\s*\( { yy.lexer.unput('('); yytext = 'variance_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE_SAMP'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -NTILE\s*\( { yy.lexer.unput('('); yytext = 'ntile'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -PERCENT_RANK\s*\( { yy.lexer.unput('('); yytext = 'percent_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -SYSTEM\s*\( { yy.lexer.unput('('); yytext = 'system'; return 'SYSTEM'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -'...' { return '...'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/impala/sql_alter.jison b/src/jison/sql/impala/sql_alter.jison deleted file mode 100644 index e08466a..0000000 --- a/src/jison/sql/impala/sql_alter.jison +++ /dev/null @@ -1,573 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterDatabase - | AlterTable - | AlterView - | CommentOn - ; - -AlterStatement_EDIT - : AlterDatabase_EDIT - | AlterTable_EDIT - | AlterView_EDIT - | CommentOn_EDIT - | 'ALTER' 'CURSOR' - { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - ; - -AlterDatabase - : 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' RoleOrUser RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - ; - -AlterDatabase_EDIT - : 'ALTER' DatabaseOrSchema 'CURSOR' - { - parser.suggestDatabases(); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['SET OWNER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['OWNER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['ROLE', 'USER']); - } - ; - -AlterTable - : AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION' RangePartitionSpec - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION_VALUE' '=' UnsignedValueSpecification - | AlterTableLeftSide 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName - | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'SET' KuduStorageAttribute SetValue - { - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'DROP' 'DEFAULT' - { - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | AlterTableLeftSide 'SET' 'COLUMN' 'STATS' ColumnIdentifier ParenthesizedStatsList - { - parser.addColumnLocation($5.location, [ $5.identifier ]); - } - | AlterTableLeftSide 'SET' 'OWNER' RoleOrUser RegularOrBacktickedIdentifier - | AlterTableLeftSide DropOperations - | AlterTableLeftSide OptionalPartitionOperations - | AlterTableLeftSide PartitionSpec OptionalPartitionOperations - | AlterTableLeftSide 'RECOVER' 'PARTITIONS' - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached - | AlterTableLeftSide_EDIT 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName - | AlterTableLeftSide_EDIT 'ALTER' OptionalColumn ColumnIdentifier 'SET' KuduStorageAttribute SetValue - { - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | AlterTableLeftSide_EDIT 'ALTER' OptionalColumn ColumnIdentifier 'DROP' 'DEFAULT' - { - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | AlterTableLeftSide_EDIT 'SET' 'COLUMN' 'STATS' ColumnIdentifier ParenthesizedStatsList - { - parser.addColumnLocation($5.location, [ $5.identifier ]); - } - | AlterTableLeftSide_EDIT 'SET' 'OWNER' RoleOrUser RegularOrBacktickedIdentifier - | AlterTableLeftSide_EDIT DropOperations - | AlterTableLeftSide_EDIT OptionalPartitionOperations - | AlterTableLeftSide_EDIT PartitionSpec OptionalPartitionOperations - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } - } - | AlterTableLeftSide 'REPLACE' 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists_EDIT - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec HdfsLocation_EDIT OptionalPartitionSpecs OptionalCachedInOrUncached - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs_EDIT OptionalCachedInOrUncached - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs CachedIn_EDIT - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached 'CURSOR' - { - if (!$5 && !$6 && !$7) { - parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); - } else if (!$7) { - parser.suggestKeywords(['CACHED IN', 'UNCACHED']); - } else if ($7 && $7.suggestKeywords) { - parser.suggestKeywords($7.suggestKeywords); - } - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec_EDIT OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedIn - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE']); - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION_VALUE' 'CURSOR' - { - parser.suggestKeywords(['=']); - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION' RangePartitionSpec_EDIT - | AlterTableLeftSide 'ALTER' OptionalColumn 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - } - | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'CURSOR' - { - parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', - 'SET ENCODING']); - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DEFAULT']); - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'SET' 'CURSOR' - { - parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'SET' KuduStorageAttribute 'CURSOR' - { - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | AlterTableLeftSide 'SET' 'COLUMN' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | AlterTableLeftSide 'SET' 'COLUMN' 'STATS' 'CURSOR' - { - parser.suggestColumns(); - } - | AlterTableLeftSide 'SET' 'COLUMN' 'STATS' ColumnIdentifier 'CURSOR' - { - parser.addColumnLocation($5.location, [ $5.identifier ]); - } - | AlterTableLeftSide 'SET' 'COLUMN' 'STATS' ColumnIdentifier ParenthesizedStatsList_EDIT - { - parser.addColumnLocation($5.location, [ $5.identifier ]); - } - | AlterTableLeftSide 'SET' 'OWNER' 'CURSOR' - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | AlterTableLeftSide 'SET' 'OWNER' RoleOrUser 'CURSOR' - | AlterTableLeftSide OptionalPartitionOperations_EDIT - | AlterTableLeftSide DropOperations_EDIT - | AlterTableLeftSide 'CURSOR' - { - parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', - 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', - 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', - 'SET ROW FORMAT', 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - } - | AlterTableLeftSide PartitionSpec 'CURSOR' - { - parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - } - | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - | AlterTableLeftSide PartitionSpec 'SET' 'CURSOR' - { - parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); - } - | AlterTableLeftSide 'SET' 'CURSOR' - { - parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'OWNER ROLE', 'OWNER USER', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); - } - | AlterTableLeftSide PartitionSpec OptionalPartitionOperations_EDIT - | AlterTableLeftSide 'RENAME' 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | AlterTableLeftSide 'RENAME' 'TO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - } - | AlterTableLeftSide 'RECOVER' 'CURSOR' - { - parser.suggestKeywords(['PARTITIONS']); - } - ; - -KuduStorageAttribute - : 'BLOCK_SIZE' - | 'COMMENT' - | 'COMPRESSION' - | 'DEFAULT' - | 'ENCODING' - ; - -OptionalColumn - : - | 'COLUMN' - ; - -ParenthesizedStatsList - : '(' StatsList ')' - ; - -ParenthesizedStatsList_EDIT - : '(' StatsList_EDIT RightParenthesisOrError - ; - -StatsList - : StatsAssignment - | StatsList ',' StatsAssignment - ; - -StatsList_EDIT - : StatsAssignment_EDIT - | StatsList ',' StatsAssignment_EDIT - | StatsList ',' StatsAssignment_EDIT ',' StatsList - | StatsAssignment_EDIT ',' StatsList - ; - -StatsAssignment - : QuotedValue '=' QuotedValue - ; - -StatsAssignment_EDIT - : 'CURSOR' - { - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - } - ; - -OptionalPartitionOperations - : 'SET' 'FILEFORMAT' FileFormat - | 'SET' HdfsLocation - | 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - | 'SET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - | 'SET' CachedIn OptionalWithReplication - | 'SET' 'ROW' 'FORMAT' DelimitedRowFormat - | 'SET' 'UNCACHED' - | AddReplaceColumns - | 'CHANGE' ColumnIdentifier ColumnSpecification - { - parser.addColumnLocation($2.location, [ $2.identifier ]); - } - ; - -OptionalPartitionOperations_EDIT - : AddReplaceColumns_EDIT - | 'CHANGE' 'CURSOR' - { - parser.suggestColumns(); - } - | 'CHANGE' ColumnIdentifier ColumnSpecification_EDIT - { - parser.addColumnLocation($2.location, [ $2.identifier ]); - } - | 'CHANGE' ColumnIdentifier ColumnSpecification 'CURSOR' - { - parser.addColumnLocation($2.location, [ $2.identifier ]); - } - | 'SET' 'FILEFORMAT' 'CURSOR' - { - parser.suggestFileFormats(); - } - | 'SET' HdfsLocation_EDIT - | 'SET' CachedIn_EDIT - | 'SET' CachedIn OptionalWithReplication 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['WITH REPLICATION =']); - } - } - | 'SET' CachedIn WithReplication_EDIT - | 'SET' 'ROW' 'CURSOR' - { - parser.suggestKeywords(['FORMAT']); - } - | 'SET' 'ROW' 'FORMAT' 'CURSOR' - { - parser.suggestKeywords(['DELIMITED']); - } - | 'SET' 'ROW' 'FORMAT' DelimitedRowFormat 'CURSOR' - { - if ($4.suggestKeywords) { - parser.suggestKeywords($4.suggestKeywords); - } - } - | 'SET' 'ROW' 'FORMAT' DelimitedRowFormat_EDIT - ; - -AddReplaceColumns - : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList - ; - -AddReplaceColumns_EDIT - : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList_EDIT - | AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList 'CURSOR' - ; - -ExchangePartitionSpec - : 'PARTITION' '(' OneOrMorePartitionSpecLists ')' - | 'PARTITION' '(' PartitionSpecList ')' - ; - -ExchangePartitionSpec_EDIT - : 'PARTITION' '(' OneOrMorePartitionSpecLists_EDIT RightParenthesisOrError - | 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -OneOrMorePartitionSpecLists - : '(' PartitionSpecList ')' - | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList ')' - ; - -OneOrMorePartitionSpecLists_EDIT - : '(' PartitionSpecList_EDIT RightParenthesisOrError - | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -DropOperations - : 'DROP' OptionalIfExists PartitionSpec - | 'DROP' OptionalIfExists 'RANGE' - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' RangePartitionSpec - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION_VALUE' '=' UnsignedValueSpecification - | 'DROP' 'COLUMN' ColumnIdentifier - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - ; - -DropOperations_EDIT - : 'DROP' OptionalIfExists 'CURSOR' - { - if (!$2) { - parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); - parser.suggestColumns(); - } else { - parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); - } - } - | 'DROP' OptionalIfExists PartitionSpec_EDIT - | 'DROP' OptionalIfExists PartitionSpec 'CURSOR' - | 'DROP' OptionalIfExists_EDIT - | 'DROP' OptionalIfExists 'RANGE' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE']); - } - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION_VALUE' 'CURSOR' - { - parser.suggestKeywords(['=']); - } - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' RangePartitionSpec_EDIT - | 'DROP' ColumnIdentifier_EDIT - | 'DROP' 'COLUMN' 'CURSOR' - { - parser.suggestColumns(); - } - | 'DROP' 'COLUMN' ColumnIdentifier_EDIT - ; - -AlterTableLeftSide - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AddOrReplace - : 'ADD' - | 'REPLACE' - ; - -OptionalPartitionSpecs - : - | PartitionSpecWithLocationList - ; - -PartitionSpecWithLocationList - : PartitionSpecWithLocation - | PartitionSpecWithLocationList PartitionSpecWithLocation -> $2 - ; - -OptionalPartitionSpecs_EDIT - : PartitionSpecWithLocation_EDIT - | PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList - | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT - | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList - ; - -PartitionSpecWithLocation_EDIT - : PartitionSpec HdfsLocation_EDIT - | PartitionSpec_EDIT OptionalHdfsLocation - ; - -PartitionSpecWithLocation - : PartitionSpec OptionalHdfsLocation - { - if (!$2) { - $$ = { suggestKeywords: ['LOCATION'] }; - } - } - ; - -AlterView - : AlterViewLeftSide 'SET' 'OWNER' RoleOrUser RegularOrBacktickedIdentifier - | AlterViewLeftSide 'AS' QuerySpecification - | AlterViewLeftSide 'RENAME' 'TO' RegularOrBacktickedIdentifier - | AlterViewLeftSide 'RENAME' 'TO' RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - parser.suggestKeywords(['AS', 'RENAME TO', 'SET OWNER']); - } - | AlterViewLeftSide 'SET' 'CURSOR' - { - parser.suggestKeywords(['OWNER ROLE', 'OWNER USER']); - } - | AlterViewLeftSide 'SET' 'OWNER' 'CURSOR' - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | AlterViewLeftSide 'SET' 'OWNER' RoleOrUser 'CURSOR' - | AlterViewLeftSide 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide 'AS' QuerySpecification_EDIT - | AlterViewLeftSide 'RENAME' 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | AlterViewLeftSide 'RENAME' 'TO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - } - ; - - -AlterViewLeftSide - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -CommentOn - : 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'IS' NullableComment - { - parser.addDatabaseLocation(@4, [ { name: $4 } ]); - } - ; - -CommentOn_EDIT - : 'COMMENT' 'CURSOR' - { - parser.suggestKeywords(['ON DATABASE']); - } - | 'COMMENT' 'ON' 'CURSOR' - { - parser.suggestKeywords(['DATABASE']); - } - | 'COMMENT' 'ON' 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.addDatabaseLocation(@4, [ { name: $4 } ]); - parser.suggestKeywords(['IS']); - } - | 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'IS' 'CURSOR' - { - parser.addDatabaseLocation(@4, [ { name: $4 } ]); - parser.suggestKeywords(['NULL']); - } - ; - -NullableComment - : QuotedValue - | 'NULL' - ; diff --git a/src/jison/sql/impala/sql_analyze.jison b/src/jison/sql/impala/sql_analyze.jison deleted file mode 100644 index 5f74069..0000000 --- a/src/jison/sql/impala/sql_analyze.jison +++ /dev/null @@ -1,164 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : RefreshStatement - | InvalidateStatement - | ComputeStatsStatement - ; - -DataDefinition_EDIT - : RefreshStatement_EDIT - | InvalidateStatement_EDIT - | ComputeStatsStatement_EDIT - ; - -RefreshStatement - : 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($2); - } - | 'REFRESH' 'FUNCTIONS' DatabaseIdentifier - { - parser.addDatabaseLocation(@3, [{ name: $3 }]); - } - | 'REFRESH' 'AUTHORIZATION' - ; - -RefreshStatement_EDIT - : 'REFRESH' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['AUTHORIZATION', 'FUNCTIONS']); - } - | 'REFRESH' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($2); - if (!$3) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - | 'REFRESH' 'FUNCTIONS' 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -InvalidateStatement - : 'INVALIDATE' 'METADATA' - | 'INVALIDATE' 'METADATA' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -InvalidateStatement_EDIT - : 'INVALIDATE' 'CURSOR' - { - parser.suggestKeywords(['METADATA']); - } - | 'INVALIDATE' 'METADATA' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INVALIDATE' 'METADATA' SchemaQualifiedTableIdentifier_EDIT - | 'INVALIDATE' 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - parser.suggestKeywords(['METADATA']); - } - ; - -ComputeStatsStatement - : 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalTableSample - { - parser.addTablePrimary($3); - } - | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - } - ; - -ComputeStatsStatement_EDIT - : 'COMPUTE' 'CURSOR' - { - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - } - | 'COMPUTE' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier_EDIT - | 'COMPUTE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - } - | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalTableSample 'CURSOR' - { - parser.addTablePrimary($3); - if (!$5) { - parser.suggestKeywords(['TABLESAMPLE']); - } else if ($5.suggestKeywords) { - parser.suggestKeywords($5.suggestKeywords); - } - } - | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier ParenthesizedColumnList_EDIT OptionalTableSample - { - parser.addTablePrimary($3); - } - | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList TableSample_EDIT - { - parser.addTablePrimary($3); - } - | 'COMPUTE' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - parser.suggestKeywords(['INCREMENTAL']); - } - | 'COMPUTE' 'INCREMENTAL' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | 'COMPUTE' 'INCREMENTAL' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - parser.suggestKeywords(['STATS']); - } - | 'COMPUTE' 'INCREMENTAL' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec - { - parser.addTablePrimary($4); - if (!$6) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($4); - } - ; diff --git a/src/jison/sql/impala/sql_create.jison b/src/jison/sql/impala/sql_create.jison deleted file mode 100644 index 7e558e1..0000000 --- a/src/jison/sql/impala/sql_create.jison +++ /dev/null @@ -1,1291 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - | FunctionDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | FunctionDefinition_EDIT - | 'CREATE' OptionalExternal 'CURSOR' - { - if ($2) { - parser.suggestKeywords(['TABLE']); - } else { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment OptionalHdfsLocation - { - var keywords = []; - if (!$2) { - keywords.push('LOCATION'); - } - if (!$1 && !$2) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID OptionalHdfsLocation - | OptionalComment HdfsLocation_EDIT - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - -ParenthesizedPropertyAssignmentList - : '(' PropertyAssignmentList ')' - ; - -PropertyAssignmentList - : PropertyAssignment - | PropertyAssignmentList ',' PropertyAssignment - ; - -PropertyAssignment - : QuotedValue '=' UnsignedValueSpecification - ; - -TableDefinition - : 'CREATE' OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart LifeCyclePart - ; - -TableDefinition_EDIT - : 'CREATE' OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' OptionalExternal 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' OptionalExternal 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy SortBy_EDIT OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - RowFormat_EDIT OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat WithSerdeproperties_EDIT OptionalStoredAs - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties StoredAs_EDIT - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - HdfsLocation_EDIT OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation CachedIn_EDIT OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation CachedIn WithReplication_EDIT OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment - OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs - OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties 'CURSOR' - { - var keywords = []; - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'LIKE', weight: 1 }); - keywords.push({ value: 'LIKE PARQUET', weight: 1 }); - } else { - if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - keywords.push({ value: 'PARTITION BY', weight: 12 }); - } - if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'SORT BY', weight: 11 }); - } - if (!$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'COMMENT', weight: 10 }); - } - if (!$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'ROW FORMAT', weight: 7 }); - } else if ($5 && $5.suggestKeywords && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 7)); - } - if (!$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); - } - if (!$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'STORED AS', weight: 5 }); - } - if (!$8 && !$9 && !$10) { - keywords.push({ value: 'LOCATION', weight: 4 }); - } - if (!$9 && !$10) { - keywords.push({ value: 'CACHED IN', weight: 3 }, { value: 'UNCACHED', weight: 3 }); - } else if ($9 && $9.suggestKeywords && !$10) { - keywords = keywords.concat(parser.createWeightedKeywords($9.suggestKeywords, 3)); - } - if (!$10) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - parser.suggestKeywords(keywords); - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE_PARQUET' HdfsPath -> [] - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE_PARQUET' HdfsPath_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['PARQUET']); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - | '(' ColumnSpecificationList ',' PrimaryKeySpecification ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - | '(' ColumnSpecificationList ',' PrimaryKeySpecification_EDIT RightParenthesisOrError - | '(' ColumnSpecificationList ',' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PRIMARY KEY']); - } - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['primary']) { - keywords.push('PRIMARY KEY'); - } - if (!$3['encoding']) { - keywords.push('ENCODING'); - } - if (!$3['compression']) { - keywords.push('COMPRESSION'); - } - if (!$3['default']) { - keywords.push('DEFAULT'); - } - if (!$3['block_size']) { - keywords.push('BLOCK_SIZE'); - } - if (!$3['null']) { - keywords.push('NOT NULL'); - keywords.push('NULL'); - } - if (!$3['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : PrimaryKey -> 'primary' - | 'ENCODING' RegularIdentifier -> 'encoding' - | 'COMPRESSION' RegularIdentifier -> 'compression' - | 'DEFAULT' NonParenthesizedValueExpressionPrimary -> 'default' - | 'BLOCK_SIZE' UnsignedNumericLiteral -> 'block_size' - | 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : PrimaryKey_EDIT - | 'NOT' 'CURSOR' - { - parser.suggestKeywords(['NULL']); - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -PrimaryKeySpecification - : PrimaryKey ParenthesizedColumnList - ; - -PrimaryKeySpecification_EDIT - : PrimaryKey_EDIT - | PrimaryKey_EDIT ParenthesizedColumnList - | PrimaryKey ParenthesizedColumnList_EDIT - ; - -PrimaryKey - : 'PRIMARY' 'KEY' - ; - -PrimaryKey_EDIT - : 'PRIMARY' 'CURSOR' - { - parser.suggestKeywords(['KEY']); - } - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList - | 'PARTITION' 'BY' HashClauses - | 'PARTITION' 'BY' HashClauses ',' RangeClause - | 'PARTITION' 'BY' RangeClause - | 'PARTITIONED' 'BY' '(' ColumnIdentifierList ')' - ; - -ColumnIdentifierList -: ColumnIdentifier ',' ColumnIdentifierList -| ColumnIdentifier -; - -PartitionedBy_EDIT - : 'PARTITIONED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITIONED' 'CURSOR' ParenthesizedColumnSpecificationList - { - parser.suggestKeywords(['BY']); - } - | 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList_EDIT - | 'PARTITIONED' ParenthesizedColumnSpecificationList_EDIT - | 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['HASH', 'RANGE']); - } - | 'PARTITION' 'BY' HashClauses_EDIT - | 'PARTITION' 'BY' RangeClause_EDIT - | 'PARTITION' 'BY' HashClauses ',' 'CURSOR' - { - parser.suggestKeywords(['HASH', 'RANGE']); - } - | 'PARTITION' 'BY' HashClauses ',' RangeClause_EDIT - | 'PARTITION' 'BY' HashClauses_EDIT ',' RangeClause - ; - -HashClauses - : HashClause - | HashClauses ',' HashClause - ; - -HashClauses_EDIT - : HashClause_EDIT - | HashClauses ',' HashClause_EDIT - | HashClauses ',' HashClause_EDIT ',' HashClauses - ; - -HashClause - : 'HASH' OptionalParenthesizedColumnList 'PARTITIONS' UnsignedNumericLiteral - ; - -HashClause_EDIT - : 'HASH' OptionalParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['PARTITIONS']); - } - | 'HASH' ParenthesizedColumnList_EDIT - | 'HASH' OptionalParenthesizedColumnList 'PARTITIONS' 'CURSOR' - | 'HASH' ParenthesizedColumnList_EDIT 'PARTITIONS' UnsignedNumericLiteral - ; - -RangeClause - : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : 'RANGE' 'CURSOR' - | 'RANGE' ParenthesizedColumnList_EDIT - | 'RANGE' ParenthesizedColumnList 'CURSOR' - | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -OptionalSortBy - : - | SortBy - ; - -SortBy - : 'SORT' 'BY' ParenthesizedColumnList - ; - -SortBy_EDIT - : 'SORT' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SORT' 'BY' ParenthesizedColumnList_EDIT - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PARTITION']); - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - | 'PARTITION_VALUE' '=' ValueExpression - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - | 'PARTITION_VALUE' 'CURSOR' - { - parser.suggestKeywords(['=']); - } - | 'PARTITION_VALUE' '=' 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -ParenthesizedSortList - : '(' SortList ')' - ; - -ParenthesizedSortList_EDIT - : '(' SortList_EDIT RightParenthesisOrError - ; - -SortList - : SortIdentifier - | SortList ',' SortIdentifier - ; - -SortList_EDIT - : SortIdentifier_EDIT - | SortIdentifier_EDIT ',' SortList - | SortList ',' SortIdentifier_EDIT - | SortList ',' SortIdentifier_EDIT ',' SortList - ; - -SortIdentifier - : ColumnIdentifier OptionalAscOrDesc - ; - -SortIdentifier_EDIT - : ColumnIdentifier OptionalAscOrDesc 'CURSOR' - { - parser.checkForKeywords($2); - } - | ColumnIdentifier_EDIT OptionalAscOrDesc - | AnyCursor OptionalAscOrDesc - { - parser.suggestColumns(); - } - ; - -OptionalRowFormat - : - | RowFormat - ; - -RowFormat - : 'ROW' 'FORMAT' DelimitedRowFormat -> $3 - ; - -RowFormat_EDIT - : 'ROW' 'CURSOR' - { - parser.suggestKeywords(['FORMAT']); - } - | 'ROW' 'FORMAT' 'CURSOR' - { - parser.suggestKeywords(['DELIMITED']); - } - | 'ROW' 'FORMAT' DelimitedRowFormat_EDIT - ; - -OptionalStoredAs - : - | StoredAs - ; - -StoredAs - : 'STORED' 'AS' FileFormat - ; - -StoredAs_EDIT - : 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | 'STORED' 'AS' 'CURSOR' - { - parser.suggestFileFormats(); - } - ; - -FileFormat - : 'AVRO' - | 'KUDU' - | 'ORC' - | 'PARQUET' - | 'RCFILE' - | 'SEQUENCEFILE' - | 'TEXTFILE' - ; - -DelimitedRowFormat - : 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy - { - if (!$2 && !$3) { - $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; - } else if ($2 && $2.suggestKeywords && !$3) { - $$ = { suggestKeywords: parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; - } else if (!$3) { - $$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; - } - } - ; - -DelimitedRowFormat_EDIT - : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalLinesTerminatedBy - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy_EDIT - ; - -OptionalFieldsTerminatedBy - : - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue -> { suggestKeywords: ['ESCAPED BY'] } - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'BY' SingleQuotedValue - ; - -OptionalFieldsTerminatedBy_EDIT - : 'FIELDS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'FIELDS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalLinesTerminatedBy - : - | 'LINES' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalLinesTerminatedBy_EDIT - : 'LINES' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'LINES' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalWithSerdeproperties - : - | WithSerdeproperties - ; - -WithSerdeproperties - : 'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -WithSerdeproperties_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - ; - -OptionalTblproperties - : - | TblProperties - ; - -TblProperties - : 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -FunctionDefinition - : GenericFunctionDefinition - | AggregateFunctionDefinition - ; - -FunctionDefinition_EDIT - : GenericFunctionDefinition_EDIT - | AggregateFunctionDefinition_EDIT - ; - -GenericFunctionDefinition - : 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation SymbolDefinition - ; - -GenericFunctionDefinition_EDIT - : 'CREATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation SymbolDefinition - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList 'CURSOR' - { - parser.suggestKeywords(['RETURNS']); - } - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType 'CURSOR' - { - parser.suggestKeywords(['LOCATION']); - } - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation 'CURSOR' - { - parser.suggestKeywords(['SYMBOL']); - } - | 'CREATE' 'FUNCTION' OptionalIfNotExists_EDIT - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType_EDIT - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation_EDIT - | 'CREATE' 'FUNCTION' OptionalIfNotExists_EDIT SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation SymbolDefinition - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT ReturnType HdfsLocation SymbolDefinition - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType_EDIT HdfsLocation SymbolDefinition - | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation_EDIT SymbolDefinition - ; - -AggregateFunctionDefinition - : 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - ; - -AggregateFunctionDefinition_EDIT - : 'CREATE' 'AGGREGATE' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION']); - } - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - { - if (!$4) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists_EDIT - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists_EDIT SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList 'CURSOR' - { - parser.suggestKeywords(['RETURNS']); - } - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - 'CURSOR' - { - parser.suggestKeywords(['LOCATION']); - } - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn 'CURSOR' - { - if (!$9) { - parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); - } else { - parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); - } - } - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn 'CURSOR' - { - parser.suggestKeywords(['MERGE_FN']); - } - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate 'CURSOR' - { - if (!$12 && !$13 && !$14 && !$15 && !$16) { - parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($12 && !$13 && !$14 && !$15 && !$16) { - parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($13 && !$14 && !$15 && !$16) { - parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($14 && !$15 && !$16) { - parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($15 && !$16) { - parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); - } - } - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType_EDIT - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation_EDIT OptionalInitFn - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn_EDIT - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn_EDIT - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn_EDIT OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn_EDIT OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn_EDIT OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn_EDIT OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn_EDIT OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn Intermediate_EDIT - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType_EDIT - HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation_EDIT OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn_EDIT UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType - HdfsLocation OptionalInitFn UpdateFn_EDIT MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate - ; - -ParenthesizedArgumentList - : '(' ')' - | '(' ArgumentList OptionalVariableArguments')' - ; - -ParenthesizedArgumentList_EDIT - : '(' ArgumentList_EDIT RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | '(' ArgumentList 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['...']); - } - ; - -ArgumentList - : PrimitiveType - | ArgumentList ',' PrimitiveType - ; - -ArgumentList_EDIT - : AnyCursor - | ArgumentList ',' AnyCursor - | AnyCursor ',' ArgumentList - | ArgumentList ',' AnyCursor ',' ArgumentList - ; - -OptionalVariableArguments - : - | '...' - ; - -ReturnType - : 'RETURNS' PrimitiveType - ; - -ReturnType_EDIT - : 'RETURNS' 'CURSOR' - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - ; - -SymbolDefinition - : 'SYMBOL' '=' SingleQuotedValue - ; - -OptionalInitFn - : - | 'INIT_FN' '=' FunctionReference - ; - -OptionalInitFn_EDIT - : 'INIT_FN' '=' FunctionReference_EDIT - ; - -UpdateFn - : 'UPDATE_FN' '=' FunctionReference - ; - -UpdateFn_EDIT - : 'UPDATE_FN' '=' FunctionReference_EDIT - ; - -MergeFn - : 'MERGE_FN' '=' FunctionReference - ; - -MergeFn_EDIT - : 'MERGE_FN' '=' FunctionReference_EDIT - ; - -OptionalPrepareFn - : - | 'PREPARE_FN' '=' FunctionReference - ; - -OptionalPrepareFn_EDIT - : 'PREPARE_FN' '=' FunctionReference_EDIT - ; - -OptionalCloseFn - : - | 'CLOSE_FN' '=' FunctionReference - ; - -OptionalCloseFn_EDIT - : 'CLOSE_FN' '=' FunctionReference_EDIT - ; - -OptionalSerializeFn - : - | 'SERIALIZE_FN' '=' FunctionReference - ; - -OptionalSerializeFn_EDIT - : 'SERIALIZE_FN' '=' FunctionReference_EDIT - ; - -OptionalFinalizeFn - : - | 'FINALIZE_FN' '=' FunctionReference - ; - -OptionalFinalizeFn_EDIT - : 'FINALIZE_FN' '=' FunctionReference_EDIT - ; - -OptionalIntermediate - : - | 'INTERMEDIATE' PrimitiveType - ; - -Intermediate_EDIT - : 'INTERMEDIATE' 'CURSOR' - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - ; - -FunctionReference - : SingleQuotedValue - ; - -FunctionReference_EDIT - : SingleQuotedValue_EDIT - { - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; -LifeCyclePart -: -| 'LIFECYCLE' 'UNSIGNED_INTEGER' -; \ No newline at end of file diff --git a/src/jison/sql/impala/sql_drop.jison b/src/jison/sql/impala/sql_drop.jison deleted file mode 100644 index b125e42..0000000 --- a/src/jison/sql/impala/sql_drop.jison +++ /dev/null @@ -1,354 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - ; - -DataManipulation - : DeleteStatement - ; - -DataManipulation_EDIT - : DeleteStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropFunctionStatement - | DropRoleStatement - | DropStatsStatement - | DropTableStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropFunctionStatement_EDIT - | DropStatsStatement_EDIT - | DropTableStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; - -// OptionalAggregate is no go for look ahead reasons -DropFunctionStatement - : 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList - ; - -DropFunctionStatement_EDIT - : 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedArgumentList - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'FUNCTION' OptionalIfExists_EDIT - | 'DROP' 'CURSOR' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList - { - parser.suggestKeywords(['AGGREGATE']); - } - | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT - | 'DROP' 'AGGREGATE' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION']); - } - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedArgumentList - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists_EDIT - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT - | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT ParenthesizedArgumentList - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT ParenthesizedArgumentList - ; - -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropStatsStatement - : 'DROP' 'STATS' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec - { - parser.addTablePrimary($4); - } - ; - -DropStatsStatement_EDIT - : 'DROP' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'STATS' SchemaQualifiedTableIdentifier_EDIT - | 'DROP' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - parser.suggestKeywords(['INCREMENTAL']); - } - | 'DROP' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec - { - parser.addTablePrimary($4); - parser.suggestKeywords(['INCREMENTAL']); - } - | 'DROP' 'INCREMENTAL' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | 'DROP' 'INCREMENTAL' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT PartitionSpec - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - parser.suggestKeywords(['PARTITION']); - } - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - ; - -DeleteStatement - : 'DELETE' OptionalDeleteTableRef 'FROM' TableReference OptionalWhereClause - ; - -DeleteStatement_EDIT - : 'DELETE' OptionalDeleteTableRef 'CURSOR' - { - parser.suggestKeywords(['FROM']); - if (!$2) { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - } - | 'DELETE' DeleteTableRef_EDIT - | 'DELETE' OptionalDeleteTableRef 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DELETE' OptionalDeleteTableRef 'FROM' TableReference 'CURSOR' OptionalWhereClause - { - var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'WHERE', weight: 3 }); - } - if ($4.suggestJoinConditions) { - parser.suggestJoinConditions($4.suggestJoinConditions); - } - if ($4.suggestJoins) { - parser.suggestJoins($4.suggestJoins); - } - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 2)); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - | 'DELETE' DeleteTableRef_EDIT 'FROM' - | 'DELETE' DeleteTableRef_EDIT 'FROM' TableReference OptionalWhereClause - | 'DELETE' OptionalDeleteTableRef 'FROM' TableReference_EDIT OptionalWhereClause - | 'DELETE' OptionalDeleteTableRef 'FROM' TableReference WhereClause_EDIT - ; - -OptionalDeleteTableRef - : - | TableReference - ; - -DeleteTableRef_EDIT - : TableReference_EDIT - ; - -TransactionIdList - : UnsignedNumericLiteral - | TransactionIdList ',' UnsignedNumericLiteral - ; diff --git a/src/jison/sql/impala/sql_error.jison b/src/jison/sql/impala/sql_error.jison deleted file mode 100644 index c610b65..0000000 --- a/src/jison/sql/impala/sql_error.jison +++ /dev/null @@ -1,142 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(['EXPLAIN']); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($4, $2); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7, $8], [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 && !$8 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7, $8], [{ value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, true]), - cursorAtEnd: !$6 && !$7 && !$8 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7, $8], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]), - cursorAtEnd: !$7 && !$8 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$8], [{ value: 'OFFSET', weight: 2 }], [true]), - cursorAtEnd: !$8 - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause OptionalOffsetClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT OptionalOffsetClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OffsetClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause OptionalLimitClause OffsetClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause OptionalLimitClause OffsetClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error OptionalLimitClause OffsetClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/impala/sql_grant.jison b/src/jison/sql/impala/sql_grant.jison deleted file mode 100644 index 2d9c47b..0000000 --- a/src/jison/sql/impala/sql_grant.jison +++ /dev/null @@ -1,194 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : GrantStatement - | RevokeStatement - ; - -DataDefinition_EDIT - : GrantStatement_EDIT - | RevokeStatement_EDIT - ; - -GrantStatement - : 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'TO' 'GROUP' RegularOrBacktickedIdentifier - | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' RegularOrBacktickedIdentifier OptionalWithGrantOption - | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' GroupRoleOrUser RegularOrBacktickedIdentifier OptionalWithGrantOption - ; - -GrantStatement_EDIT - : 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); - } - | 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['TO GROUP']); - } - | 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP']); - } - | 'GRANT' PrivilegeType_EDIT - | 'GRANT' PrivilegeType 'CURSOR' - { - if ($2.isCreate) { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); - } else { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - } - | 'GRANT' PrivilegeType 'ON' 'CURSOR' - { - if ($2.isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - } - | 'GRANT' PrivilegeType 'ON' ObjectSpecification_EDIT - | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' RegularOrBacktickedIdentifier OptionalWithGrantOption 'CURSOR' - { - if (!$7) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - } - | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' RegularOrBacktickedIdentifier WithGrantOption_EDIT - | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' GroupRoleOrUser RegularOrBacktickedIdentifier OptionalWithGrantOption 'CURSOR' - { - if (!$8) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - } - | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' GroupRoleOrUser RegularOrBacktickedIdentifier WithGrantOption_EDIT - ; - -ObjectSpecification - : 'DATABASE' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@2, [ { name: $2 } ]); - } - | 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($2); - } - | 'SERVER' RegularOrBacktickedIdentifier - | 'URI' RegularOrBacktickedIdentifier - ; - -ObjectSpecification_EDIT - : 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'TABLE' SchemaQualifiedTableIdentifier_EDIT - ; - -PrivilegeType - : 'ALL' - | 'ALTER' - | 'CREATE' -> { isCreate: true } - | 'DROP' - | 'INSERT' - | 'REFRESH' - | 'SELECT' OptionalParenthesizedColumnList - ; - -PrivilegeType_EDIT - : 'SELECT' ParenthesizedColumnList_EDIT - ; - -UserOrRoleList - : RegularOrBacktickedIdentifier - | UserOrRoleList ',' RegularOrBacktickedIdentifier - ; - -OptionalWithGrantOption - : - | 'WITH' 'GRANT' 'OPTION' - ; - -WithGrantOption_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['GRANT OPTION']); - } - | 'WITH' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; - -RevokeStatement - : 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'FROM' 'GROUP' RegularOrBacktickedIdentifier - | 'REVOKE' PrivilegeType 'ON' ObjectSpecification 'FROM' RegularOrBacktickedIdentifier - | 'REVOKE' PrivilegeType 'ON' ObjectSpecification 'FROM' GroupRoleOrUser RegularOrBacktickedIdentifier - ; - -RevokeStatement_EDIT - : 'REVOKE' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); - } - | 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FROM GROUP']); - } - | 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP']); - } - | 'REVOKE' PrivilegeType_EDIT - | 'REVOKE' PrivilegeType 'CURSOR' - { - if ($2.isCreate) { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); - } else { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - } - | 'REVOKE' PrivilegeType 'ON' 'CURSOR' - { - if ($2.isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - } - | 'REVOKE' PrivilegeType 'ON' ObjectSpecification_EDIT - | 'REVOKE' PrivilegeType 'ON' ObjectSpecification 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' PrivilegeType 'ON' ObjectSpecification 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - ; diff --git a/src/jison/sql/impala/sql_insert.jison b/src/jison/sql/impala/sql_insert.jison deleted file mode 100644 index 9e344a1..0000000 --- a/src/jison/sql/impala/sql_insert.jison +++ /dev/null @@ -1,242 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : InsertOrUpsertStatement - | CommonTableExpression InsertOrUpsertStatement - ; - -DataManipulation_EDIT - : InsertOrUpsertStatement_EDIT - | CommonTableExpression InsertOrUpsertStatement_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT InsertOrUpsertStatement - ; - -OptionalTable - : - | 'TABLE' - ; - -SelectWithoutTableExpression - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList -> { selectList: $4 } - ; - -SelectWithoutTableExpression_EDIT - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' - { - $$ = $4; - $$.cursorAtEnd = true; - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT - { - parser.selectListNoTableSuggest($4, $2); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' - { - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$3 && !$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$3) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - } - ; - -InsertOrUpsertStatement - : InsertOrUpsertStatementWithoutCTE - ; - -InsertOrUpsertStatement_EDIT - : InsertOrUpsertStatementWithoutCTE_EDIT - ; - -InsertOrUpsertStatementWithoutCTE - : InsertOrUpsertLeftPart OptionalShuffleOrNoShuffle SelectStatement OptionalUnions - | InsertOrUpsertLeftPart 'VALUES' RowValuesLists - ; - -InsertOrUpsertStatementWithoutCTE_EDIT - : InsertOrUpsertLeftPart_EDIT - | InsertOrUpsertLeftPart OptionalShuffleOrNoShuffle 'CURSOR' - { - var keywords = $1.suggestKeywords && !$2 ? parser.createWeightedKeywords($1.suggestKeywords, 2) : []; - if (!$2) { - keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) - } else { - keywords = keywords.concat(['SELECT']) - } - parser.suggestKeywords(keywords); - } - | InsertOrUpsertLeftPart_EDIT OptionalShuffleOrNoShuffle SelectStatement OptionalUnions - | InsertOrUpsertLeftPart OptionalShuffleOrNoShuffle SelectStatement_EDIT OptionalUnions - | InsertOrUpsertLeftPart OptionalShuffleOrNoShuffle SelectStatement OptionalUnions_EDIT - | InsertOrUpsertLeftPart_EDIT 'VALUES' RowValuesLists - | InsertOrUpsertLeftPart 'VALUES' RowValuesLists_EDIT - ; - -InsertOrUpsertLeftPart - : UpsertStatementLeftPart - | InsertLeftPart - ; - -InsertOrUpsertLeftPart_EDIT - : UpsertStatementLeftPart_EDIT - | InsertLeftPart_EDIT - ; - -UpsertStatementLeftPart - : 'UPSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList - { - $4.owner = 'upsert'; - parser.addTablePrimary($4); - } - ; - -UpsertStatementLeftPart_EDIT - : 'UPSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'UPSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'UPSERT' 'INTO' OptionalTable 'CURSOR' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - $5.owner = 'upsert'; - parser.addTablePrimary($5); - } - | 'UPSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalParenthesizedColumnList - | 'UPSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList_EDIT - { - $4.owner = 'upsert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'upsert'; - } - } - ; - - -InsertLeftPart - : 'INSERT' IntoOrOverwrite OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (!$6) { - $$ = { suggestKeywords: ['PARTITION'] }; - } - } - ; - -InsertLeftPart_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO', 'OVERWRITE']); - } - | 'INSERT' IntoOrOverwrite OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' IntoOrOverwrite OptionalTable 'CURSOR' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - $5.owner = 'insert'; - parser.addTablePrimary($5); - } - | 'INSERT' IntoOrOverwrite OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalParenthesizedColumnList OptionalPartitionSpec - | 'INSERT' IntoOrOverwrite OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList_EDIT OptionalPartitionSpec - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - | 'INSERT' IntoOrOverwrite OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec_EDIT - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - ; - -IntoOrOverwrite - : 'INTO' - | 'OVERWRITE' - ; - -OptionalShuffleOrNoShuffle - : - | 'SHUFFLE' - | 'NOSHUFFLE' - ; - -RowValuesLists - : ParenthesizedValueExpressionList - | RowValuesLists ',' ParenthesizedValueExpressionList - ; - -RowValuesLists_EDIT - : ParenthesizedValueExpressionList_EDIT - | RowValuesLists ',' ParenthesizedValueExpressionList_EDIT - | RowValuesLists ',' ParenthesizedValueExpressionList_EDIT ',' RowValuesLists - | ParenthesizedValueExpressionList_EDIT ',' RowValuesLists - ; - -ParenthesizedValueExpressionList - : '(' ValueExpressionList ')' - ; - -ParenthesizedValueExpressionList_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.suggestFunctions(); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError - ; - diff --git a/src/jison/sql/impala/sql_load.jison b/src/jison/sql/impala/sql_load.jison deleted file mode 100644 index 2978e8e..0000000 --- a/src/jison/sql/impala/sql_load.jison +++ /dev/null @@ -1,80 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : LoadStatement - ; - -DataManipulation_EDIT - : LoadStatement_EDIT - ; - -LoadStatement - : 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($8); - } - ; - -LoadStatement_EDIT - : 'LOAD' 'CURSOR' - { - parser.suggestKeywords(['DATA INPATH']); - } - | 'LOAD' 'DATA' 'CURSOR' - { - parser.suggestKeywords(['INPATH']); - } - | 'LOAD' 'DATA' 'INPATH' HdfsPath_EDIT OptionalOverwrite - | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'CURSOR' - { - if (!$5) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - } - | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'CURSOR' - { - parser.suggestKeywords([ 'TABLE' ]); - } - | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($8); - if (!$9) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($8); - } - | 'LOAD' 'DATA' 'INPATH' HdfsPath_EDIT OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($8); - } - ; - -OptionalOverwrite - : - | 'OVERWRITE' - ; diff --git a/src/jison/sql/impala/sql_main.jison b/src/jison/sql/impala/sql_main.jison deleted file mode 100644 index c552c24..0000000 --- a/src/jison/sql/impala/sql_main.jison +++ /dev/null @@ -1,3581 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - | ExplainClause DataDefinition - | ExplainClause DataManipulation - | ExplainClause QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(['EXPLAIN']); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['INSERT', 'SELECT']); - } - | ExplainClause_EDIT - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - | ExplainClause DataDefinition_EDIT - | ExplainClause DataManipulation_EDIT - | ExplainClause QuerySpecification_EDIT - | ExplainClause_EDIT DataDefinition - | ExplainClause_EDIT DataManipulation - | ExplainClause_EDIT QuerySpecification - ; - -NonReservedKeyword - : 'DEFAULT' - | 'KEY' - | 'OPTION' - | 'OWNER' - | 'SERVER' - | 'STRUCT' - | 'URI' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -ExplainClause - : 'EXPLAIN' - ; - -ExplainClause_EDIT - : 'EXPLAIN' 'CURSOR' - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '...' - | '<' - | '=' - | '>' - | '[' - | ']' - | 'AGGREGATE' - | 'ALL' - | 'ALLOCATE' - | 'ANALYTIC' - | 'AND' - | 'ANTI' - | 'ANY' - | 'APPX_MEDIAN' - | 'ARE' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'ARRAY_AGG' - | 'ARRAY_MAX_CARDINALITY' - | 'AS' - | 'ASC' - | 'ASENSITIVE' - | 'ASYMMETRIC' - | 'AT' - | 'ATOMIC' - | 'AUTHORIZATION' - | 'AVG' - | 'AVRO' - | 'BACKTICK' - | 'BEGIN_FRAME' - | 'BEGIN_PARTITION' - | 'BETWEEN' - | 'BIGINT' - | 'BLOB' - | 'BLOCK_SIZE' - | 'BOOLEAN' - | 'BOTH' - | 'BROADCAST' - | 'BY' - | 'CACHED' - | 'CALLED' - | 'CARDINALITY' - | 'CASCADE' - | 'CASCADED' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'CHARACTER' - | 'CLOB' - | 'CLOSE_FN' - | 'COLLATE' - | 'COLLECT' - | 'COLUMN' - | 'COMMIT' - | 'COMPARISON_OPERATOR' - | 'CONDITION' - | 'CONNECT' - | 'CONSTRAINT' - | 'CONTAINS' - | 'CONVERT' - | 'COPY' - | 'CORR' - | 'CORRESPONDING' - | 'COUNT' - | 'COVAR_POP' - | 'COVAR_SAMP' - | 'CROSS' - | 'CUBE' - | 'CURRENT' - | 'CURRENT_DATE' - | 'CURRENT_DEFAULT_TRANSFORM_GROUP' - | 'CURRENT_PATH' - | 'CURRENT_ROLE' - | 'CURRENT_ROW' - | 'CURRENT_SCHEMA' - | 'CURRENT_TIME' - | 'CURRENT_TRANSFORM_GROUP_FOR_TYPE' - | 'CYCLE' - | 'DATA' - | 'DATABASE' - | 'DATABASES' - | 'DEALLOCATE' - | 'DEC' - | 'DECFLOAT' - | 'DECIMAL' - | 'DECLARE' - | 'DEFINE' - | 'DELETE' - | 'DELIMITED' - | 'DEREF' - | 'DESC' - | 'DETERMINISTIC' - | 'DISCONNECT' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'DYNAMIC' - | 'EACH' - | 'ELEMENT' - | 'ELSE' - | 'EMPTY' - | 'END' - | 'END_FRAME' - | 'END_PARTITION' - | 'EQUALS' - | 'ESCAPE' - | 'ESCAPED' - | 'EVERY' - | 'EXCEPT' - | 'EXEC' - | 'EXECUTE' - | 'EXISTS' - | 'EXTENDED' - | 'EXTERNAL' - | 'EXTRACT' - | 'FALSE' - | 'FETCH' - | 'FIELDS' - | 'FILES' - | 'FILTER' - | 'FINALIZE_FN' - | 'FIRST' - | 'FLOAT' - | 'FOLLOWING' - | 'FOR' - | 'FOREIGN' - | 'FORMAT' - | 'FORMATTED' - | 'FRAME_ROW' - | 'FREE' - | 'FROM' - | 'FULL' - | 'FUNCTION' - | 'FUNCTIONS' - | 'FUSION' - | 'GET' - | 'GLOBAL' - | 'GRANT' - | 'GROUP' - | 'GROUP_CONCAT' - | 'GROUPING' - | 'GROUPS' - | 'HASH' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'HOLD' - | 'IF' - | 'IGNORE' - | 'ILIKE' - | 'IN' - | 'INCREMENTAL' - | 'INDICATOR' - | 'INIT_FN' - | 'INITIAL' - | 'INNER' - | 'INOUT' - | 'INPATH' - | 'INSENSITIVE' - | 'INT' - | 'INTERMEDIATE' - | 'INTERSECT' - | 'INTERSECTION' - | 'INTERVAL' - | 'INTO' - | 'IREGEXP' - | 'IS' - | 'JOIN' - | 'JSON_ARRAY' - | 'JSON_ARRAYAGG' - | 'JSON_EXISTS' - | 'JSON_OBJECT' - | 'JSON_OBJECTAGG' - | 'JSON_QUERY' - | 'JSON_TABLE' - | 'JSON_TABLE_PRIMITIVE' - | 'JSON_VALUE' - | 'KEY' - | 'KUDU' - | 'LARGE' - | 'LAST' - | 'LATERAL' - | 'LEADING' - | 'LEFT' - | 'LIKE' - | 'LIKE_REGEX' - | 'LIMIT' - | 'LINES' - | 'LISTAGG' - | 'LOCAL' - | 'LOCALTIMESTAMP' - | 'LOCATION' - | 'MAP' - | 'MATCH' - | 'MATCH_NUMBER' - | 'MATCH_RECOGNIZE' - | 'MATCHES' - | 'MAX' - | 'MERGE' - | 'MERGE_FN' - | 'METHOD' - | 'MIN' - | 'MODIFIES' - | 'MULTISET' - | 'NATIONAL' - | 'NATURAL' - | 'NCHAR' - | 'NCLOB' - | 'NDV' - | 'NO' - | 'NONE' - | 'NORMALIZE' - | 'NOSHUFFLE' - | 'NOT' - | 'NTH_VALUE' - | 'NULL' - | 'NULLS' - | 'NUMERIC' - | 'OCCURRENCES_REGEX' - | 'OCTET_LENGTH' - | 'OF' - | 'OMIT' - | 'ON' - | 'ONE' - | 'ONLY' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUT' - | 'OUTER' - | 'OVER' - | 'OVERLAPS' - | 'OVERLAY' - | 'OWNER' - | 'PARQUET' - | 'PARTITION' - | 'PARTITIONED' - | 'PARTITIONS' - | 'PATTERN' - | 'PER' - | 'PERCENT' - | 'PERCENTILE_CONT' - | 'PERCENTILE_DISC' - | 'PORTION' - | 'POSITION' - | 'POSITION_REGEX' - | 'PRECEDES' - | 'PRECEDING' - | 'PREPARE' - | 'PREPARE_FN' - | 'PRIMARY' - | 'PROCEDURE' - | 'PTF' - | 'PURGE' - | 'RANGE' - | 'RCFILE' - | 'READS' - | 'REAL' - | 'RECOVER' - | 'RECURSIVE' - | 'REF' - | 'REFERENCES' - | 'REFERENCING' - | 'REGEXP' - | 'REGR_AVGX' - | 'REGR_AVGY' - | 'REGR_COUNT' - | 'REGR_INTERCEPT' - | 'REGR_R2REGR_SLOPE' - | 'REGR_SXX' - | 'REGR_SXY' - | 'REGR_SYY' - | 'REGULAR_IDENTIFIER' - | 'RELEASE' - | 'REPEATABLE' - | 'REPLICATION' - | 'RESTRICT' - | 'RETURNS' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROLES' - | 'ROLLBACK' - | 'ROLLUP' - | 'ROW' - | 'ROWS' - | 'RUNNING' - | 'SAVEPOINT' - | 'SCHEMA' - | 'SCHEMAS' - | 'SCOPE' - | 'SCROLL' - | 'SEARCH' - | 'SEEK' - | 'SEMI' - | 'SENSITIVE' - | 'SEQUENCEFILE' - | 'SERDEPROPERTIES' - | 'SERIALIZE_FN' - | 'SERVER' - | 'SET' - | 'SHUFFLE' - | 'SIMILAR' - | 'SINGLE_QUOTE' - | 'SKIP' - | 'SMALLINT' - | 'SOME' - | 'SORT' - | 'SPECIFIC' - | 'SPECIFICTYPE' - | 'SQLEXCEPTION' - | 'SQLSTATE' - | 'SQLWARNING' - | 'STATIC' - | 'STATS' - | 'STDDEV' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STORED' - | 'STRAIGHT_JOIN' - | 'STRING' - | 'STRUCT' - | 'SUBMULTISET' - | 'SUBSET' - | 'SUBSTRING_REGEX' - | 'SUCCEEDS' - | 'SUM' - | 'SYMBOL' - | 'SYMMETRIC' - | 'SYSTEM_TIME' - | 'SYSTEM_USER' - | 'TABLE' - | 'TABLES' - | 'TABLESAMPLE' - | 'TBLPROPERTIES' - | 'TERMINATED' - | 'TEXTFILE' - | 'THEN' - | 'TIMESTAMP' - | 'TIMEZONE_HOUR' - | 'TIMEZONE_MINUTE' - | 'TINYINT' - | 'TRAILING' - | 'TRANSLATE_REGEX' - | 'TRANSLATION' - | 'TREAT' - | 'TRIGGER' - | 'TRIM_ARRAY' - | 'TRUE' - | 'UESCAPE' - | 'UNION' - | 'UNIQUE' - | 'UNNEST' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'UPDATE_FN' - | 'URI' - | 'USER' - | 'USING' - | 'VALUE_OF' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARBINARY' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'VARIANCE_POP' - | 'VARIANCE_SAMP' - | 'VARYING' - | 'VERSIONING' - | 'WHEN' - | 'WHENEVER' - | 'WHERE' - | 'WIDTH_BUCKET' - | 'WINDOW' - | 'WITHIN' - | 'WITHOUT' - | '~' - ; - -DataDefinition - : DescribeStatement - ; - -DataDefinition_EDIT - : DescribeStatement_EDIT - ; - -// ===================================== Commonly used constructs ===================================== - -AggregateOrAnalytic - : 'AGGREGATE' - | 'ANALYTIC' - ; - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabasesOrSchemas - : 'DATABASES' - | 'SCHEMAS' - ; - - -GroupRoleOrUser - : 'GROUP' - | 'ROLE' - | 'USER' - ; - -RoleOrUser - : 'ROLE' - | 'USER' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalAggregateOrAnalytic - : - | AggregateOrAnalytic - ; - -OptionalExternal - : - | 'EXTERNAL' - ; - -OptionalExtendedOrFormatted - : - | 'EXTENDED' - | 'FORMATTED' - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascadeOrRestrict - : - | 'CASCADE' - | 'RESTRICT' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnIdentifier_EDIT - | ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' ColumnIdentifier_EDIT - | ColumnIdentifier_EDIT ',' ColumnList - | ColumnList ',' ColumnIdentifier_EDIT ',' ColumnList - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier FieldsList - { - // This is a special case for expression like "SELECT | FROM db.table.col" - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ].concat($4) }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - // You can have statements like 'SELECT ... FROM testTable t, t.|' - parser.suggestTablesOrColumns($1); - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier FieldsList_EDIT - { - // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js - // Issue is that suggestColumns is deleted if no tables are defined and this is - // only cases like "SELECT | FROM db.table.col" - parser.suggestTables({ identifierChain: [{ name: $1 }, { name: $3 }].concat($4) }); - } - ; - -FieldsList - : Field -> [$1] - | FieldsList Field - { - $1.push($2); - } - ; - -FieldsList_EDIT - : Field_EDIT -> [] - | FieldsList Field_EDIT -> $1 - | FieldsList Field_EDIT FieldsList -> $1 - | Field_EDIT FieldsList -> [] - ; - -Field - : '.' RegularOrBacktickedIdentifier -> { name: $2 } - ; - -Field_EDIT - : '.' PartialBacktickedOrPartialCursor - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -OptionalHdfsLocation - : - | HdfsLocation - ; - -HdfsLocation - : 'LOCATION' HdfsPath - ; - -HdfsLocation_EDIT - : 'LOCATION' HdfsPath_EDIT - ; - -OptionalCachedInOrUncached - : - | CachedIn OptionalWithReplication - { - if (!$2) { - $$ = { suggestKeywords: ['WITH REPLICATION ='] }; - } - } - | 'UNCACHED' - ; - - -OptionalCachedIn - : - | CachedIn OptionalWithReplication - { - if (!$2) { - $$ = { suggestKeywords: ['WITH REPLICATION ='] }; - } - } - ; - -CachedIn - : 'CACHED' 'IN' QuotedValue - ; - -CachedIn_EDIT - : 'CACHED' 'CURSOR' - { - parser.suggestKeywords(['IN']); - } - ; - -OptionalWithReplication - : - | WithReplication - ; - -WithReplication - : 'WITH' 'REPLICATION' '=' SignedInteger - ; - -WithReplication_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['REPLICATION =']); - } - | 'WITH' 'REPLICATION' 'CURSOR' - { - parser.suggestKeywords(['=']); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : ColumnIdentifier_EDIT - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | BasicIdentifierChain '.' ColumnIdentifier_EDIT - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | BasicIdentifierChain '.' ColumnIdentifier_EDIT '.' BasicIdentifierChain - | ColumnIdentifier_EDIT '.' BasicIdentifierChain - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : ColumnIdentifier_EDIT - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | DerivedColumnChain '.' ColumnIdentifier_EDIT - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | DerivedColumnChain '.' ColumnIdentifier_EDIT '.' DerivedColumnChain - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | ColumnIdentifier_EDIT '.' DerivedColumnChain - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - | RegularOrBacktickedIdentifier '[' ValueExpression ']' -> { identifier: { name: $1, keySet: true }, location: @1 } - | RegularOrBacktickedIdentifier '[' ']' -> { identifier: { name: $1, keySet: true }, location: @1 } - ; - -ColumnIdentifier_EDIT - : RegularOrBacktickedIdentifier '[' AnyCursor RightSquareBracketOrError -> { identifier: { name: $1 }, insideKey: true } - | RegularOrBacktickedIdentifier '[' ValueExpression_EDIT RightSquareBracketOrError -> { identifier: { name: $1 }} - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -RightSquareBracketOrError - : ']' - | error - ; - -PrimitiveType - : 'TINYINT' - | 'SMALLINT' - | 'INT' - | 'BIGINT' - | 'BOOLEAN' - | 'FLOAT' - | 'DOUBLE' - | 'REAL' - | 'STRING' - | 'DECIMAL' OptionalTypePrecision - | 'CHAR' OptionalTypeLength - | 'VARCHAR' OptionalTypeLength - | 'TIMESTAMP' - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== DESCRIBE statement ===================================== - -DescribeStatement - : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - | 'DESCRIBE' 'DATABASE' OptionalExtendedOrFormatted DatabaseIdentifier - { - parser.addDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DescribeStatement_EDIT - : 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' - { - if (!$2) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT - | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$2) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - } - | 'DESCRIBE' 'DATABASE' OptionalExtendedOrFormatted 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.suggestDatabases(); - } - | 'DESCRIBE' 'DATABASE' OptionalExtendedOrFormatted 'CURSOR' DatabaseIdentifier - { - if (!$3) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.addDatabaseLocation(@5, [{ name: $5 }]); - } - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - $$ = { selectList: $4 }; - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - $$ = { selectList: $4, tableExpression: $5 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3 && !$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$3) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($4.suggestFunctions) { - parser.suggestFunctions(); - } - if ($4.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($4.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($4.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($4.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$3 && !$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$3) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - parser.selectListNoTableSuggest($4, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$3 && !$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (!$3) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - parser.checkForSelectListKeywords($4); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - parser.checkForSelectListKeywords($4); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - parser.checkForSelectListKeywords($4); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -OptionalStraightJoin - : - | 'STRAIGHT_JOIN' - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - keywords.push({ value: 'USING', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if ($1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if ($1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'ANTI JOIN', weight: 1 }, - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT ANTI JOIN', weight: 1 }, - { value: 'LEFT INNER JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'OUTER JOIN', weight: 1 }, - { value: 'RIGHT ANTI JOIN', weight: 1 }, - { value: 'RIGHT INNER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 }, - { value: 'RIGHT SEMI JOIN', weight: 1 }, - { value: 'SEMI JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList - { - $$ = { tableReferenceList : $2 } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5, $6], - [{ value: 'WHERE', weight: 9 }, - { value: 'GROUP BY', weight: 8 }, - { value: 'HAVING', weight: 7 }, - { value: 'ORDER BY', weight: 5 }, - { value: 'LIMIT', weight: 3 }, - { value: 'OFFSET', weight: 2 }], - [true, true, true, true, true, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 && !$6 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $5 ? @5 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5 && !$6) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$4 && !$5 && !$6) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause OptionalOffsetClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OffsetClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6, $7], - [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, true, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6 && !$7; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6, $7], - [{ value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 6)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6 && !$7; - if (!$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6, $7], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 && !$7 }; - if (!$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]); - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 && !$7 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR([$7], [{ value: 'OFFSET', weight: 2 }], [true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$7 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = @5; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList - { - $$ = { valueExpression: $3 }; - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc OptionalNullsFirstOrLast -> parser.mergeSuggestKeywords($2, $3) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc OptionalNullsFirstOrLast - { - parser.suggestSelectListAliases(); - } - | ValueExpression OptionalAscOrDesc NullsFirstOrLast_EDIT - | AnyCursor OptionalAscOrDesc OptionalNullsFirstOrLast - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalNullsFirstOrLast - : - { - $$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; - } - | 'NULLS' 'FIRST' - | 'NULLS' 'LAST' - ; - -NullsFirstOrLast_EDIT - : 'NULLS' 'CURSOR' - { - parser.suggestKeywords(['FIRST', 'LAST']); - } - ; - - - -SortByList - : SortByIdentifier - | SortByList ',' SortByIdentifier -> $3 - ; - -SortByList_EDIT - : SortByIdentifier_EDIT - | SortByIdentifier_EDIT ',' SortByList - | SortByList ',' SortByIdentifier_EDIT - | SortByList ',' SortByIdentifier_EDIT ',' SortByList - ; - -SortByIdentifier - : ColumnIdentifier OptionalAscOrDesc - { - parser.addColumnLocation($1.location, [ $1.identifier ]); - $$ = $2; - } - ; - -SortByIdentifier_EDIT - : ColumnIdentifier_EDIT OptionalAscOrDesc - | AnyCursor OptionalAscOrDesc - { - parser.suggestColumns(); - } - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' ValueExpression - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - { - parser.suggestFunctions({ types: ['BIGINT'] }); - } - | 'LIMIT' ValueExpression_EDIT - { - delete parser.yy.result.suggestColumns; - } - ; - -OptionalOffsetClause - : - | OffsetClause - ; - -OffsetClause - : 'OFFSET' ValueExpression - ; - -OffsetClause_EDIT - : 'OFFSET' 'CURSOR' - { - parser.suggestFunctions({ types: ['BIGINT'] }); - } - | 'OFFSET' ValueExpression_EDIT - { - delete parser.yy.result.suggestColumns; - } - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - | IntervalSpecification -> { types: [ 'TIMESTAMP' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - | IntervalSpecification_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -IntervalSpecification - : 'INTERVAL' SignedInteger RegularIdentifier - ; - -IntervalSpecification_EDIT - : 'INTERVAL' SignedInteger 'CURSOR' - { - parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); - } - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType OptionalBroadcastOrShuffle TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType OptionalBroadcastOrShuffle TablePrimary OptionalJoinCondition - { - if ($5 && $5.valueExpression) { - $$ = $5.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($5.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($5.suggestKeywords) { - $$.suggestKeywords = $5.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType OptionalBroadcastOrShuffle -> { joinType: $1 } - | JoinType OptionalBroadcastOrShuffle Joins -> { joinType: $1 } - ; - -OptionalBroadcastOrShuffle - : - | 'BROADCAST' - | 'SHUFFLE' - ; - -Join_EDIT - : JoinType_EDIT OptionalBroadcastOrShuffle TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT OptionalBroadcastOrShuffle - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType OptionalBroadcastOrShuffle TablePrimary_EDIT OptionalJoinCondition - | JoinType OptionalBroadcastOrShuffle TablePrimary JoinCondition_EDIT - | JoinType OptionalBroadcastOrShuffle 'CURSOR' OptionalJoinCondition - { - if (!$2) { - parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); - } - if (!$2 && parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'JOIN' -> 'JOIN' - | 'ANTI' 'JOIN' -> 'ANTI JOIN' - | 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'ANTI' 'JOIN' -> 'LEFT ANTI JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'ANTI' 'JOIN' -> 'RIGHT ANTI JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - ; - -JoinType_EDIT - : 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['ANTI', 'INNER', 'OUTER', 'SEMI'] } - | 'RIGHT' 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['ANTI', 'INNER', 'OUTER', 'SEMI'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON', 'USING'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - | 'USING' '(' UsingColList ')' -> {} - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalCorrelationName OptionalTableSample - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($2) { - $1.alias = $2.alias; - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - var keywords = []; - if ($3 && $3.suggestKeywords) { - keywords = $3.suggestKeywords; - } else if (!$2 && !$3) { - keywords = [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }]; - } else if (!$3) { - keywords = [{ value: 'TABLESAMPLE', weight: 3 }]; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName OptionalTableSample - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if ($3 && $3.suggestKeywords) { - keywords = $3.suggestKeywords; - } else { - keywords = parser.getKeywordsForOptionalsLR([$3, $2], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [true, true]); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalCorrelationName OptionalTableSample - { - if ($2) { - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - } - | TableOrQueryName OptionalCorrelationName TableSample_EDIT - { - if ($2) { - $1.alias = $2.alias; - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - | DerivedTable_EDIT OptionalCorrelationName OptionalTableSample - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT OptionalTableSample - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalTableSample - : - | 'TABLESAMPLE' 'SYSTEM' '(' 'UNSIGNED_INTEGER' ')' -> { suggestKeywords: ['REPEATABLE()'] } - | 'TABLESAMPLE' 'SYSTEM' '(' 'UNSIGNED_INTEGER' ')' 'REPEATABLE' '(' 'UNSIGNED_INTEGER' ')' - ; - -TableSample_EDIT - : 'TABLESAMPLE' 'CURSOR' - { - parser.suggestKeywords(['SYSTEM()']); - } - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - | ExtractFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - | ExtractFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'IF' - | 'ARRAY' - | 'MAP' - | 'REPLACE' - | 'TRUNCATE' - | 'USER' - | 'LEFT_F' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN']); - } - | RowsOrRange 'BETWEEN' OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$3 && !$4) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$4) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' OptionalCurrentOrPreceding 'CURSOR' - | RowsOrRange 'UNBOUNDED' OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'APPX_MEDIAN' - | 'AVG' - | 'GROUP_CONCAT' - | 'STDDEV' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'MAX' - | 'MIN' - | 'NDV' - | 'VARIANCE' - | 'VARIANCE_POP' - | 'VARIANCE_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - ; - -ExtractFunction - : 'EXTRACT' '(' ValueExpression FromOrComma ValueExpression ')' - | 'EXTRACT' '(' ')' - ; - -ExtractFunction_EDIT - : 'EXTRACT' '(' AnyCursor FromOrComma ValueExpression RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' AnyCursor FromOrComma RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression_EDIT FromOrComma ValueExpression RightParenthesisOrError - { - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression_EDIT FromOrComma RightParenthesisOrError - { - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression_EDIT RightParenthesisOrError - { - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression FromOrComma AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' FromOrComma AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression FromOrComma ValueExpression_EDIT RightParenthesisOrError - { - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' FromOrComma ValueExpression_EDIT RightParenthesisOrError - { - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression 'CURSOR' ValueExpression RightParenthesisOrError - { - if ($3.types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($3, ['FROM']); - } else { - parser.suggestValueExpressionKeywords($3); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - if ($3.types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($3, ['FROM']); - } else { - parser.suggestValueExpressionKeywords($3); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - keywords.push('ALL'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOuter - : - | 'OUTER' - ; diff --git a/src/jison/sql/impala/sql_set.jison b/src/jison/sql/impala/sql_set.jison deleted file mode 100644 index 4606b74..0000000 --- a/src/jison/sql/impala/sql_set.jison +++ /dev/null @@ -1,47 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetSpecification - ; - -DataDefinition_EDIT - : 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - parser.suggestKeywords(['ALL']); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; diff --git a/src/jison/sql/impala/sql_show.jison b/src/jison/sql/impala/sql_show.jison deleted file mode 100644 index 81af37b..0000000 --- a/src/jison/sql/impala/sql_show.jison +++ /dev/null @@ -1,372 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : ShowStatement - ; - -DataDefinition_EDIT - : ShowStatement_EDIT - ; - -ShowStatement - : ShowColumnStatsStatement - | ShowCreateTableStatement - | ShowCurrentRolesStatement - | ShowDatabasesStatement - | ShowFilesStatement - | ShowFunctionsStatement - | ShowGrantStatement - | ShowPartitionsStatement - | ShowRoleStatement - | ShowRolesStatement - | ShowTableStatsStatement - | ShowTablesStatement - ; - -ShowStatement_EDIT - : 'SHOW' 'CURSOR' - { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'CREATE VIEW', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'GRANT USER', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); - } - | 'SHOW' 'CURSOR' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'CREATE VIEW', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); - } - | 'SHOW' 'CURSOR' 'LIKE' SingleQuotedValue - { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); - } - | ShowColumnStatsStatement_EDIT - | ShowCreateTableStatement_EDIT - | ShowCurrentRolesStatement_EDIT - | ShowDatabasesStatement_EDIT - | ShowFilesStatement_EDIT - | ShowFunctionsStatement_EDIT - | ShowGrantStatement_EDIT - | ShowPartitionsStatement_EDIT - | ShowRoleStatement_EDIT - | ShowTableStatsStatement_EDIT - | ShowTablesStatement_EDIT - ; - -ShowColumnStatsStatement - : 'SHOW' 'COLUMN' 'STATS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - } - ; - -ShowColumnStatsStatement_EDIT - : 'SHOW' 'COLUMN' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | 'SHOW' 'COLUMN' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'COLUMN' 'STATS' RegularOrBackTickedSchemaQualifiedName_EDIT - ; - -ShowCreateTableStatement - : 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - } - ; - -ShowCreateTableStatement_EDIT - : 'SHOW' 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - | 'SHOW' 'CREATE' TableOrView 'CURSOR' - { - if ($3.isView) { - parser.suggestTables({ onlyViews: true }); - } else { - parser.suggestTables(); - } - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName_EDIT - { - if (parser.yy.result.suggestTables && $3.isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'SHOW' 'CREATE' 'CURSOR' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - parser.suggestKeywords(['TABLE', 'VIEW']); - } - ; - -TableOrView - : 'TABLE' - | 'VIEW' -> { isView: true } - ; - -ShowCurrentRolesStatement - : 'SHOW' 'CURRENT' 'ROLES' - ; - -ShowCurrentRolesStatement_EDIT - : 'SHOW' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords([ 'ROLES' ]); - } - | 'SHOW' 'CURSOR' 'ROLES' - { - parser.suggestKeywords([ 'CURRENT' ]); - } - ; - -ShowDatabasesStatement - : 'SHOW' DatabasesOrSchemas 'LIKE' SingleQuotedValue - | 'SHOW' 'DATABASES' SingleQuotedValue - ; - -ShowDatabasesStatement_EDIT - : 'SHOW' DatabasesOrSchemas 'CURSOR' - { - parser.suggestKeywords(['LIKE']); - } - ; - -ShowFilesStatement - : 'SHOW' 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec - { - parser.addTablePrimary($4); - } - ; - -ShowFilesStatement_EDIT - : 'SHOW' 'FILES' 'CURSOR' - { - parser.suggestKeywords(['IN']); - } - | 'SHOW' 'FILES' 'IN' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName_EDIT OptionalPartitionSpec - | 'SHOW' 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'SHOW' 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec_EDIT - | 'SHOW' 'FILES' 'CURSOR' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec - { - parser.addTablePrimary($4); - parser.suggestKeywords(['IN']); - } - ; - -ShowFunctionsStatement - : 'SHOW' OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase - | 'SHOW' OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'LIKE' QuotedValue - ; - -ShowFunctionsStatement_EDIT - : 'SHOW' AggregateOrAnalytic 'CURSOR' - { - parser.suggestKeywords(['FUNCTIONS']); - } - | 'SHOW' 'CURSOR' 'FUNCTIONS' OptionalInDatabase - { - parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); - } - | 'SHOW' OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - } - | 'SHOW' AggregateOrAnalytic 'CURSOR' OptionalInDatabase 'LIKE' QuotedValue - { - parser.suggestKeywords(['FUNCTIONS']); - } - | 'SHOW' 'CURSOR' 'FUNCTIONS' OptionalInDatabase 'LIKE' QuotedValue - { - parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); - } - | 'SHOW' OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'CURSOR' QuotedValue - { - if (!$4) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else { - parser.suggestKeywords(['LIKE']); - } - } - ; - -ShowGrantStatement - : 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'DATABASE' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@7, [ { name: $7 } ]); - } - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'SERVER' - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' SchemaQualifiedTableIdentifier - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'URI' RegularOrBacktickedIdentifier - ; - -ShowGrantStatement_EDIT - : 'SHOW' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'SHOW' 'GRANT' GroupRoleOrUser 'CURSOR' - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' - { - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestTables(); - } - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'URI' 'CURSOR' - ; - -OptionalPrincipalName - : - | RegularIdentifier - ; - -OptionalPrincipalName_EDIT - : 'CURSOR' - | RegularIdentifier 'CURSOR' - ; - -ShowPartitionsStatement - : 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | 'SHOW' 'RANGE' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - ; - -ShowPartitionsStatement_EDIT - : 'SHOW' 'PARTITIONS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'SHOW' 'RANGE' 'PARTITIONS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'RANGE' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT - ; - -ShowRoleStatement - : 'SHOW' 'ROLE' 'GRANT' 'GROUP' RegularIdentifier - ; - -ShowRoleStatement_EDIT - : 'SHOW' 'ROLE' 'CURSOR' - { - parser.suggestKeywords(['GRANT']); - } - | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['GROUP']); - } - | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' RegularIdentifier - { - parser.suggestKeywords(['GROUP']); - } - ; - -ShowRolesStatement - : 'SHOW' 'ROLES' - ; - -ShowTableStatsStatement - : 'SHOW' 'TABLE' 'STATS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - } - ; - -ShowTableStatsStatement_EDIT - : 'SHOW' 'TABLE' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | 'SHOW' 'TABLE' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'TABLE' 'STATS' RegularOrBackTickedSchemaQualifiedName_EDIT - ; - -ShowTablesStatement - : 'SHOW' 'TABLES' OptionalInDatabase - | 'SHOW' 'TABLES' OptionalInDatabase SingleQuotedValue - | 'SHOW' 'TABLES' OptionalInDatabase 'LIKE' SingleQuotedValue - ; - -ShowTablesStatement_EDIT - : 'SHOW' 'TABLES' OptionalInDatabase 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - } - ; diff --git a/src/jison/sql/impala/sql_update.jison b/src/jison/sql/impala/sql_update.jison deleted file mode 100644 index 2c90f6e..0000000 --- a/src/jison/sql/impala/sql_update.jison +++ /dev/null @@ -1,138 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - if (!$6 && !$5) { - parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); - } else if (!$6 && $5) { - var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; - if ($5.suggestJoinConditions) { - parser.suggestJoinConditions($5.suggestJoinConditions); - } - if ($5.suggestJoins) { - parser.suggestJoins($5.suggestJoins); - } - if ($5.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 3)); - } - parser.suggestKeywords(keywords); - } else if (!$6) { - parser.suggestKeywords([ 'WHERE' ]); - } - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql/impala/sql_use.jison b/src/jison/sql/impala/sql_use.jison deleted file mode 100644 index be60e09..0000000 --- a/src/jison/sql/impala/sql_use.jison +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -UseStatement - : 'USE' RegularIdentifier - { - if (!parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : 'USE' 'CURSOR' - { - parser.suggestDatabases(); - } - ; diff --git a/src/jison/sql/impala/sql_valueExpression.jison b/src/jison/sql/impala/sql_valueExpression.jison deleted file mode 100644 index dce1451..0000000 --- a/src/jison/sql/impala/sql_valueExpression.jison +++ /dev/null @@ -1,828 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'UNKNOWN' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']; - parser.suggestKeywords(keywords); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - var keywords = ['FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'UNKNOWN']; - parser.suggestKeywords(keywords); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - parser.suggestKeywords(['FROM']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'ILIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'IREGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'ILIKE' ValueExpression_EDIT - | 'IREGEXP' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'ILIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'IREGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/impala/syntax_footer.jison b/src/jison/sql/impala/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/impala/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/impala/syntax_header.jison b/src/jison/sql/impala/syntax_header.jison deleted file mode 100644 index c65dcf6..0000000 --- a/src/jison/sql/impala/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'ILIKE' 'IREGEXP' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/ksql/autocomplete_footer.jison b/src/jison/sql/ksql/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/ksql/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/ksql/autocomplete_header.jison b/src/jison/sql/ksql/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/ksql/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/ksql/sql.jisonlex b/src/jison/sql/ksql/sql.jisonlex deleted file mode 100644 index b5412a2..0000000 --- a/src/jison/sql/ksql/sql.jisonlex +++ /dev/null @@ -1,228 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CASCADE' { return 'CASCADE'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'COMMENT' { return 'COMMENT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DECIMAL' { return 'DECIMAL'; } -'DESC' { return 'DESC'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'GROUP' { return 'GROUP'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { return 'INSERT'; } -'INT' { return 'INT'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'LIST' { return 'LIST'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'ON' { return 'ON'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PRINT' { return 'PRINT'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'REGEXP' { return 'REGEXP'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROW' { return 'ROW'; } -'ROLE' { return 'ROLE'; } -'ROWS' { return 'ROWS'; } -'SCHEMA' { return 'SCHEMA'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SMALLINT' { return 'SMALLINT'; } -'STRING' { return 'STRING'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNION' { return 'UNION'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'VIEW' { return 'VIEW'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'OVER' { return 'OVER'; } -'ROLE' { return 'ROLE'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/ksql/sql_create.jison b/src/jison/sql/ksql/sql_create.jison deleted file mode 100644 index 1329ac6..0000000 --- a/src/jison/sql/ksql/sql_create.jison +++ /dev/null @@ -1,615 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment - { - if (!$1) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - -TableDefinition - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' - { - var keywords = []; - if (!$1 && !$2) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : 'NOT' 'CURSOR' - { - parser.suggestKeywords(['NULL']); - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITION' 'BY' RangeClause - ; - -PartitionedBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['RANGE']); - } - | 'PARTITION' 'BY' RangeClause_EDIT - ; - -RangeClause - : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : 'RANGE' 'CURSOR' - | 'RANGE' ParenthesizedColumnList_EDIT - | 'RANGE' ParenthesizedColumnList 'CURSOR' - | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PARTITION']); - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; diff --git a/src/jison/sql/ksql/sql_drop.jison b/src/jison/sql/ksql/sql_drop.jison deleted file mode 100644 index 0e3aa53..0000000 --- a/src/jison/sql/ksql/sql_drop.jison +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropRoleStatement - | DropTableStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropTableStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec - ; diff --git a/src/jison/sql/ksql/sql_error.jison b/src/jison/sql/ksql/sql_error.jison deleted file mode 100644 index 48b9a4e..0000000 --- a/src/jison/sql/ksql/sql_error.jison +++ /dev/null @@ -1,132 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$6 && !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/ksql/sql_insert.jison b/src/jison/sql/ksql/sql_insert.jison deleted file mode 100644 index 8b3544e..0000000 --- a/src/jison/sql/ksql/sql_insert.jison +++ /dev/null @@ -1,72 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : InsertValuesStatement - ; - -DataManipulation_EDIT - : InsertValuesStatement_EDIT - ; - -InsertValuesStatement - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - ; - -InsertValuesStatement_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - parser.suggestKeywords(['VALUES']); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; diff --git a/src/jison/sql/ksql/sql_list.jison b/src/jison/sql/ksql/sql_list.jison deleted file mode 100644 index f153317..0000000 --- a/src/jison/sql/ksql/sql_list.jison +++ /dev/null @@ -1,37 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : 'LIST' ListStatement - ; - -DataDefinition_EDIT - : ListStatement_EDIT - ; - -ListStatement - : 'TABLES' - | 'STREAMS' - | 'TOPICS' - ; - - -ListStatement_EDIT - : 'LIST' 'CURSOR' - { - parser.suggestKeywords(['TABLES', 'STREAMS', 'TOPICS']); - } - ; diff --git a/src/jison/sql/ksql/sql_main.jison b/src/jison/sql/ksql/sql_main.jison deleted file mode 100644 index 0d3fedc..0000000 --- a/src/jison/sql/ksql/sql_main.jison +++ /dev/null @@ -1,2762 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - ; - -NonReservedKeyword - : 'ROLE' - | 'OPTION' - | 'STRUCT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | '~' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AVG' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BOOLEAN' - | 'BY' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'COMPARISON_OPERATOR' - | 'COUNT' - | 'CROSS' - | 'CURRENT' - | 'DATABASE' - | 'DECIMAL' - | 'DESC' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'EXISTS' - | 'FALSE' - | 'FLOAT' - | 'FOLLOWING' - | 'FROM' - | 'FULL' - | 'GROUP' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'IF' - | 'IN' - | 'INNER' - | 'INT' - | 'INTO' - | 'IS' - | 'JOIN' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'MAP' - | 'MAX' - | 'MIN' - | 'NOT' - | 'NULL' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUTER' - | 'OVER' - | 'PARTITION' - | 'PRECEDING' - | 'PURGE' - | 'RANGE' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SEMI' - | 'SET' - | 'SINGLE_QUOTE' - | 'SMALLINT' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRUE' - | 'UNION' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'WHEN' - | 'WHERE' - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -PrimitiveType - : 'BIGINT' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'FLOAT' - | 'INT' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if ($1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList - { - $$ = { tableReferenceList : $2 } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $5 ? @5 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$4 && !$5) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6; - if (!$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; - if (!$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = @5; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList - { - $$ = { valueExpression: $3 }; - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($2) { - $1.alias = $2.alias - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } else if ($2.suggestKeywords) { - keywords = $2.suggestKeywords; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'MAX' - | 'MIN' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; diff --git a/src/jison/sql/ksql/sql_set.jison b/src/jison/sql/ksql/sql_set.jison deleted file mode 100644 index 14cff5c..0000000 --- a/src/jison/sql/ksql/sql_set.jison +++ /dev/null @@ -1,46 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetSpecification - ; - -DataDefinition_EDIT - : 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; diff --git a/src/jison/sql/ksql/sql_show.jison b/src/jison/sql/ksql/sql_show.jison deleted file mode 100644 index 909df5a..0000000 --- a/src/jison/sql/ksql/sql_show.jison +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : 'SHOW' ShowStatement - ; - -DataDefinition_EDIT - : ShowStatement_EDIT - ; - -ShowStatement - : 'TABLES' - | 'STREAMS' - | 'TOPICS' - | 'QUERIES' - | 'PROPERTIES' - ; - - -ShowStatement_EDIT - : 'SHOW' 'CURSOR' - { - parser.suggestKeywords(['TABLES', 'STREAMS', 'TOPICS', 'QUERIES', 'PROPERTIES']); - } - ; diff --git a/src/jison/sql/ksql/sql_valueExpression.jison b/src/jison/sql/ksql/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/ksql/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/ksql/syntax_footer.jison b/src/jison/sql/ksql/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/ksql/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/ksql/syntax_header.jison b/src/jison/sql/ksql/syntax_header.jison deleted file mode 100644 index e2c6815..0000000 --- a/src/jison/sql/ksql/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/phoenix/autocomplete_footer.jison b/src/jison/sql/phoenix/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/phoenix/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/phoenix/autocomplete_header.jison b/src/jison/sql/phoenix/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/phoenix/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/phoenix/sql.jisonlex b/src/jison/sql/phoenix/sql.jisonlex deleted file mode 100644 index 83dbe72..0000000 --- a/src/jison/sql/phoenix/sql.jisonlex +++ /dev/null @@ -1,226 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CASCADE' { return 'CASCADE'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'COMMENT' { return 'COMMENT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DECIMAL' { return 'DECIMAL'; } -'DESC' { return 'DESC'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'GROUP' { return 'GROUP'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { return 'INSERT'; } -'INT' { return 'INT'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'ON' { return 'ON'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'REGEXP' { return 'REGEXP'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROW' { return 'ROW'; } -'ROLE' { return 'ROLE'; } -'ROWS' { return 'ROWS'; } -'SCHEMA' { return 'SCHEMA'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SMALLINT' { return 'SMALLINT'; } -'STRING' { return 'STRING'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNION' { return 'UNION'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'VIEW' { return 'VIEW'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'OVER' { return 'OVER'; } -'ROLE' { return 'ROLE'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } - -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } - -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } - -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } - -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/phoenix/sql_alter.jison b/src/jison/sql/phoenix/sql_alter.jison deleted file mode 100644 index 82acf8f..0000000 --- a/src/jison/sql/phoenix/sql_alter.jison +++ /dev/null @@ -1,109 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterTable - | AlterView - ; - -AlterStatement_EDIT - : AlterTable_EDIT - | AlterView_EDIT - | 'ALTER' 'CURSOR' - { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - ; - -AlterTable - : AlterTableLeftSide PartitionSpec - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT PartitionSpec - | AlterTableLeftSide 'CURSOR' - | AlterTableLeftSide PartitionSpec 'CURSOR' - ; - -AlterTableLeftSide - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AlterView - : AlterViewLeftSide 'AS' QuerySpecification - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | AlterViewLeftSide 'SET' 'CURSOR' - | AlterViewLeftSide 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide 'AS' QuerySpecification_EDIT - ; - - -AlterViewLeftSide - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; diff --git a/src/jison/sql/phoenix/sql_create.jison b/src/jison/sql/phoenix/sql_create.jison deleted file mode 100644 index 1329ac6..0000000 --- a/src/jison/sql/phoenix/sql_create.jison +++ /dev/null @@ -1,615 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment - { - if (!$1) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - -TableDefinition - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' - { - var keywords = []; - if (!$1 && !$2) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['comment']) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : 'NOT' 'CURSOR' - { - parser.suggestKeywords(['NULL']); - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITION' 'BY' RangeClause - ; - -PartitionedBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['RANGE']); - } - | 'PARTITION' 'BY' RangeClause_EDIT - ; - -RangeClause - : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : 'RANGE' 'CURSOR' - | 'RANGE' ParenthesizedColumnList_EDIT - | 'RANGE' ParenthesizedColumnList 'CURSOR' - | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['PARTITION']); - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - parser.suggestKeywords(['PARTITION']); - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=']); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; diff --git a/src/jison/sql/phoenix/sql_drop.jison b/src/jison/sql/phoenix/sql_drop.jison deleted file mode 100644 index 0e3aa53..0000000 --- a/src/jison/sql/phoenix/sql_drop.jison +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropRoleStatement - | DropTableStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropTableStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec - ; diff --git a/src/jison/sql/phoenix/sql_error.jison b/src/jison/sql/phoenix/sql_error.jison deleted file mode 100644 index 48b9a4e..0000000 --- a/src/jison/sql/phoenix/sql_error.jison +++ /dev/null @@ -1,132 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$6 && !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$7 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/phoenix/sql_insert.jison b/src/jison/sql/phoenix/sql_insert.jison deleted file mode 100644 index 8b3544e..0000000 --- a/src/jison/sql/phoenix/sql_insert.jison +++ /dev/null @@ -1,72 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : InsertValuesStatement - ; - -DataManipulation_EDIT - : InsertValuesStatement_EDIT - ; - -InsertValuesStatement - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - ; - -InsertValuesStatement_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - parser.suggestKeywords(['VALUES']); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; diff --git a/src/jison/sql/phoenix/sql_main.jison b/src/jison/sql/phoenix/sql_main.jison deleted file mode 100644 index 3aaf9f9..0000000 --- a/src/jison/sql/phoenix/sql_main.jison +++ /dev/null @@ -1,2762 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - ; - -NonReservedKeyword - : 'ROLE' - | 'OPTION' - | 'STRUCT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | '~' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AVG' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BOOLEAN' - | 'BY' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'COMPARISON_OPERATOR' - | 'COUNT' - | 'CROSS' - | 'CURRENT' - | 'DATABASE' - | 'DECIMAL' - | 'DESC' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'EXISTS' - | 'FALSE' - | 'FLOAT' - | 'FOLLOWING' - | 'FROM' - | 'FULL' - | 'GROUP' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'IF' - | 'IN' - | 'INNER' - | 'INT' - | 'INTO' - | 'IS' - | 'JOIN' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'MAP' - | 'MAX' - | 'MIN' - | 'NOT' - | 'NULL' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUTER' - | 'OVER' - | 'PARTITION' - | 'PRECEDING' - | 'PURGE' - | 'RANGE' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SEMI' - | 'SET' - | 'SINGLE_QUOTE' - | 'SMALLINT' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRUE' - | 'UNION' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'WHEN' - | 'WHERE' - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -PrimitiveType - : 'BIGINT' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'FLOAT' - | 'INT' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if ($1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE') { - keyword.weight = 1.1; - } - }); - - if ($1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList - { - $$ = { tableReferenceList : $2 } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5], - [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $5 ? @5 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$4 && !$5) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6], - [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6; - if (!$4 && !$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6], - [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], - [true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; - if (!$5) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6], - [{ value: 'LIMIT', weight: 3 }], - [true]); - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4); - $$.limitClauseLocation = $6 ? @6 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = @5; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList - { - $$ = { valueExpression: $3 }; - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($2) { - $1.alias = $2.alias - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } else if ($2.suggestKeywords) { - keywords = $2.suggestKeywords; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if (!$2) { - keywords = ['AS']; - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); - } - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'MAX' - | 'MIN' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; diff --git a/src/jison/sql/phoenix/sql_set.jison b/src/jison/sql/phoenix/sql_set.jison deleted file mode 100644 index 14cff5c..0000000 --- a/src/jison/sql/phoenix/sql_set.jison +++ /dev/null @@ -1,46 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetSpecification - ; - -DataDefinition_EDIT - : 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; diff --git a/src/jison/sql/phoenix/sql_update.jison b/src/jison/sql/phoenix/sql_update.jison deleted file mode 100644 index 1091c41..0000000 --- a/src/jison/sql/phoenix/sql_update.jison +++ /dev/null @@ -1,122 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - parser.suggestKeywords([ 'WHERE' ]); - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql/phoenix/sql_use.jison b/src/jison/sql/phoenix/sql_use.jison deleted file mode 100644 index c99b2c2..0000000 --- a/src/jison/sql/phoenix/sql_use.jison +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -UseStatement - : 'USE' RegularIdentifier - { - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : 'USE' 'CURSOR' - { - parser.suggestDatabases(); - } - ; diff --git a/src/jison/sql/phoenix/sql_valueExpression.jison b/src/jison/sql/phoenix/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/phoenix/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/phoenix/syntax_footer.jison b/src/jison/sql/phoenix/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/phoenix/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/phoenix/syntax_header.jison b/src/jison/sql/phoenix/syntax_header.jison deleted file mode 100644 index e2c6815..0000000 --- a/src/jison/sql/phoenix/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sql/presto/autocomplete_footer.jison b/src/jison/sql/presto/autocomplete_footer.jison deleted file mode 100644 index 899433d..0000000 --- a/src/jison/sql/presto/autocomplete_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/presto/autocomplete_header.jison b/src/jison/sql/presto/autocomplete_header.jison deleted file mode 100644 index 3b90682..0000000 --- a/src/jison/sql/presto/autocomplete_header.jison +++ /dev/null @@ -1,29 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'CURSOR' 'PARTIAL_CURSOR' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlAutocomplete - -%% diff --git a/src/jison/sql/presto/sql.jisonlex b/src/jison/sql/presto/sql.jisonlex deleted file mode 100644 index 274b628..0000000 --- a/src/jison/sql/presto/sql.jisonlex +++ /dev/null @@ -1,406 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%options case-insensitive flex -%s between -%x hdfs doubleQuotedValue singleQuotedValue backtickedValue -%% - -\s { /* skip whitespace */ } -'--'.* { /* skip comments */ } -[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } - -'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } -'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } - -// Reserved Keywords -'ALL' { return 'ALL'; } -'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } -'AND' { return 'AND'; } -'ARRAY' { return 'ARRAY'; } -'AS' { return 'AS'; } -'ASC' { return 'ASC'; } -'AUTHORIZATION' { return 'AUTHORIZATION'; } -'BETWEEN' { this.begin('between'); return 'BETWEEN'; } -'BIGINT' { return 'BIGINT'; } -'BINARY' { return 'BINARY'; } -'BOOLEAN' { return 'BOOLEAN'; } -'BY' { return 'BY'; } -'CACHE' { return 'CACHE'; } -'CASE' { return 'CASE'; } -'CHAR' { return 'CHAR'; } -'COLUMN' { return 'COLUMN'; } -'CONF' { return 'CONF'; } -'CONSTRAINT' { return 'CONSTRAINT'; } -'CREATE' { parser.determineCase(yytext); return 'CREATE'; } -'CROSS' { return 'CROSS'; } -'CUBE' { return 'CUBE'; } -'CURRENT' { return 'CURRENT'; } -'DATABASE' { return 'DATABASE'; } -'DATE' { return 'DATE'; } -'DECIMAL' { return 'DECIMAL'; } -'DELETE' { parser.determineCase(yytext); return 'DELETE'; } -'DESC' { return 'DESC'; } -'DESCRIBE' { parser.determineCase(yytext); return 'DESCRIBE'; } -'DISTINCT' { return 'DISTINCT'; } -'DIV' { return 'ARITHMETIC_OPERATOR'; } -'DOUBLE' { return 'DOUBLE'; } -'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } -'ELSE' { return 'ELSE'; } -'END' { return 'END'; } -'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } -'EXTENDED' { return 'EXTENDED'; } -'EXTERNAL' { return 'EXTERNAL'; } -'FALSE' { return 'FALSE'; } -'FLOAT' { return 'FLOAT'; } -'FOLLOWING' { return 'FOLLOWING'; } -'FOR' { return 'FOR'; } -'FOREIGN' { return 'FOREIGN'; } -'FROM' { parser.determineCase(yytext); return 'FROM'; } -'FULL' { return 'FULL'; } -'FUNCTION' { return 'FUNCTION'; } -'GRANT' { return 'GRANT'; } -'GROUP' { return 'GROUP'; } -'GROUPING' { return 'GROUPING'; } -'HAVING' { return 'HAVING'; } -'IF' { return 'IF'; } -'IMPORT' { parser.determineCase(yytext); return 'IMPORT'; } -'IN' { return 'IN'; } -'INNER' { return 'INNER'; } -'INSERT' { parser.determineCase(yytext); return 'INSERT'; } -'INT' { return 'INT'; } -'INTEGER' { return 'INTEGER'; } -'INTO' { return 'INTO'; } -'IS' { return 'IS'; } -'JOIN' { return 'JOIN'; } -'LATERAL' { return 'LATERAL'; } -'LEFT' { return 'LEFT'; } -'LIKE' { return 'LIKE'; } -'LIMIT' { return 'LIMIT'; } -'LOCAL' { return 'LOCAL'; } -'MACRO' { return 'MACRO'; } -'MAP' { return 'MAP'; } -'NONE' { return 'NONE'; } -'NOT' { return 'NOT'; } -'NULL' { return 'NULL'; } -'OF' { return 'OF'; } -'ON' { return 'ON'; } -'OPTION' { return 'OPTION'; } -'OR' { return 'OR'; } -'ORDER' { return 'ORDER'; } -'OUT' { return 'OUT'; } -'OUTER' { return 'OUTER'; } -'PARTITION' { return 'PARTITION'; } -'PRECEDING' { return 'PRECEDING'; } -'PRIMARY' { return 'PRIMARY'; } -'PURGE' { return 'PURGE'; } -'RANGE' { return 'RANGE'; } -'REFERENCES' { return 'REFERENCES'; } -'REGEXP' { return 'REGEXP'; } -'REVOKE' { return 'REVOKE'; } -'RIGHT' { return 'RIGHT'; } -'RLIKE' { return 'RLIKE'; } -'ROLLUP' { return 'ROLLUP'; } -'ROW' { return 'ROW'; } -'ROWS' { return 'ROWS'; } -'SCHEMA' { return 'SCHEMA'; } -'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } -'SEMI' { return 'SEMI'; } -'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } -'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } -'SMALLINT' { return 'SMALLINT'; } -'STRING' { return 'STRING'; } -'SYNC' { return 'SYNC'; } -'TABLE' { return 'TABLE'; } -'THEN' { return 'THEN'; } -'TIMESTAMP' { return 'TIMESTAMP'; } -'TINYINT' { return 'TINYINT'; } -'TO' { return 'TO'; } -'TRUE' { return 'TRUE'; } -'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } -'UNBOUNDED' { return 'UNBOUNDED'; } -'UNION' { return 'UNION'; } -'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } -'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } -'USER' { return 'USER'; } -'USING' { return 'USING'; } -'UTC_TIMESTAMP' { return 'UTC_TIMESTAMP'; } -'VALUES' { return 'VALUES'; } -'VARCHAR' { return 'VARCHAR'; } -'VIEW' { return 'VIEW'; } -'VIEWS' { return 'VIEWS'; } -'WHEN' { return 'WHEN'; } -'WHERE' { return 'WHERE'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } - -// Non-reserved Keywords -'ABORT' { parser.determineCase(yytext); return 'ABORT'; } -'ADD' { return 'ADD'; } -'ADMIN' { return 'ADMIN'; } -'AFTER' { return 'AFTER'; } -'ANALYZE' { parser.determineCase(yytext); return 'ANALYZE'; } -'ARCHIVE' { return 'ARCHIVE'; } -'ASC' { return 'ASC'; } -'AVRO' { return 'AVRO'; } -'BUCKET' { return 'BUCKET'; } -'BUCKETS' { return 'BUCKETS'; } -'CASCADE' { return 'CASCADE'; } -'CHANGE' { return 'CHANGE'; } -'CLUSTER' { return 'CLUSTER'; } -'CLUSTERED' { return 'CLUSTERED'; } -'COLLECTION' { return 'COLLECTION'; } -'COLUMNS' { return 'COLUMNS'; } -'COMMENT' { return 'COMMENT'; } -'COMPACT' { return 'COMPACT'; } -'COMPACTIONS' { return 'COMPACTIONS'; } -'COMPUTE' { return 'COMPUTE'; } -'CONCATENATE' { return 'CONCATENATE'; } -'DATA' { return 'DATA'; } -'DATABASES' { return 'DATABASES'; } -'DAY' { return 'DAY'; } -'DAYOFWEEK' { return 'DAYOFWEEK'; } -'DBPROPERTIES' { return 'DBPROPERTIES'; } -'DEFERRED' { return 'DEFERRED'; } -'DEFINED' { return 'DEFINED'; } -'DELIMITED' { return 'DELIMITED'; } -'DEPENDENCY' { return 'DEPENDENCY'; } -'DESC' { return 'DESC'; } -'DIRECTORY' { this.begin('hdfs'); return 'DIRECTORY'; } -'DISABLE' { return 'DISABLE'; } -'DISTRIBUTE' { return 'DISTRIBUTE'; } -DOUBLE\s+PRECISION { return 'DOUBLE_PRECISION'; } -'ENABLE' { return 'ENABLE'; } -'ESCAPED' { return 'ESCAPED'; } -'EXCHANGE' { return 'EXCHANGE'; } -'EXPLAIN' { parser.determineCase(yytext); return 'EXPLAIN'; } -'EXPORT' { parser.determineCase(yytext); return 'EXPORT'; } -'FIELDS' { return 'FIELDS'; } -'FILE' { return 'FILE'; } -'FILEFORMAT' { return 'FILEFORMAT'; } -'FIRST' { return 'FIRST'; } -'FORMAT' { return 'FORMAT'; } -'FORMATTED' { return 'FORMATTED'; } -'FUNCTION' { return 'FUNCTION'; } -'FUNCTIONS' { return 'FUNCTIONS'; } -'HOUR' { return 'HOUR'; } -'IDXPROPERTIES' { return 'IDXPROPERTIES'; } -'INDEX' { return 'INDEX'; } -'INDEXES' { return 'INDEXES'; } -'INPATH' { this.begin('hdfs'); return 'INPATH'; } -'INPUTFORMAT' { return 'INPUTFORMAT'; } -'ITEMS' { return 'ITEMS'; } -'JAR' { return 'JAR'; } -'JSONFILE' { return 'JSONFILE'; } -'KEY' { return 'KEY'; } -'KEYS' { return 'KEYS'; } -'LINES' { return 'LINES'; } -'LOAD' { parser.determineCase(yytext); return 'LOAD'; } -'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } -'LOCK' { return 'LOCK'; } -'LOCKS' { return 'LOCKS'; } -'MATCHED' { return 'MATCHED'; } -'MERGE' { return 'MERGE'; } -'METADATA' { return 'METADATA'; } -'MINUTE' { return 'MINUTE'; } -'MONTH' { return 'MONTH'; } -'MSCK' { return 'MSCK'; } -'NO_DROP' { return 'NO_DROP'; } -'NORELY' { return 'NORELY'; } -'NOSCAN' { return 'NOSCAN'; } -'NOVALIDATE' { return 'NOVALIDATE'; } -'OFFLINE' { return 'OFFLINE'; } -'ORC' { return 'ORC'; } -'OUTPUTFORMAT' { return 'OUTPUTFORMAT'; } -'OVER' { return 'OVER'; } -'OVERWRITE' { return 'OVERWRITE'; } -OVERWRITE\s+DIRECTORY { this.begin('hdfs'); return 'OVERWRITE_DIRECTORY'; } -'OWNER' { return 'OWNER'; } -'PARQUET' { return 'PARQUET'; } -'PARTITIONED' { return 'PARTITIONED'; } -'PARTITIONS' { return 'PARTITIONS'; } -'PERCENT' { return 'PERCENT'; } -'PRIVILEGES' { return 'PRIVILEGES'; } -'PURGE' { return 'PURGE'; } -'QUARTER' { return 'QUARTER'; } -'RCFILE' { return 'RCFILE'; } -'REBUILD' { return 'REBUILD'; } -'RECOVER' { return 'RECOVER'; } -'RELOAD' { parser.determineCase(yytext); return 'RELOAD'; } -'RELY' { return 'RELY'; } -'RENAME' { return 'RENAME'; } -'REPAIR' { return 'REPAIR'; } -'REPLACE' { return 'REPLACE'; } -'REPLICATION' { return 'REPLICATION'; } -'RESTRICT' { return 'RESTRICT'; } -'ROLE' { return 'ROLE'; } -'ROLES' { return 'ROLES'; } -'SCHEMA' { return 'SCHEMA'; } -'SCHEMAS' { return 'SCHEMAS'; } -'SECOND' { return 'SECOND'; } -'SEQUENCEFILE' { return 'SEQUENCEFILE'; } -'SERDE' { return 'SERDE'; } -'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } -'SETS' { return 'SETS'; } -'SHOW' { parser.determineCase(yytext); return 'SHOW'; } -'SHOW_DATABASE' { return 'SHOW_DATABASE'; } -'SKEWED LOCATION' { return 'SKEWED_LOCATION'; } // Hack to prevent hdfs lexer state -'SKEWED' { return 'SKEWED'; } -'SORT' { return 'SORT'; } -'SORTED' { return 'SORTED'; } -'STATISTICS' { return 'STATISTICS'; } -'STORED' { return 'STORED'; } -STORED\s+AS\s+DIRECTORIES { return 'STORED_AS_DIRECTORIES'; } -'STRING' { return 'STRING'; } -'STRUCT' { return 'STRUCT'; } -'TABLES' { return 'TABLES'; } -'TABLESAMPLE' { return 'TABLESAMPLE'; } -'TBLPROPERTIES' { return 'TBLPROPERTIES'; } -'TEMPORARY' { return 'TEMPORARY'; } -'TERMINATED' { return 'TERMINATED'; } -'TEXTFILE' { return 'TEXTFILE'; } -'TINYINT' { return 'TINYINT'; } -'TOUCH' { return 'TOUCH'; } -'TRANSACTIONAL' { return 'TRANSACTIONAL'; } -'TRANSACTIONS' { return 'TRANSACTIONS'; } -'UNARCHIVE' { return 'UNARCHIVE'; } -'UNIONTYPE' { return 'UNIONTYPE'; } -'USE' { parser.determineCase(yytext); return 'USE'; } -'VIEW' { return 'VIEW'; } -'WAIT' { return 'WAIT'; } -'WEEK' { return 'WEEK'; } -'WINDOW' { return 'WINDOW'; } -'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } -'YEAR' { return 'YEAR'; } - -'.' { return '.'; } -'[' { return '['; } -']' { return ']'; } - -'AND' { this.popState(); return 'BETWEEN_AND'; } - -// --- UDFs --- -AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } -CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } -COLLECT_LIST\s*\( { yy.lexer.unput('('); yytext = 'collect_list'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_LIST'; } -COLLECT_SET\s*\( { yy.lexer.unput('('); yytext = 'collect_set'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_SET'; } -CORR\s*\( { yy.lexer.unput('('); yytext = 'corr'; parser.addFunctionLocation(yylloc, yytext); return 'CORR'; } -COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } -COVAR_POP\s*\( { yy.lexer.unput('('); yytext = 'covar_pop'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_POP'; } -COVAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'covar_samp'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_SAMP'; } -EXTRACT\s*\( { yy.lexer.unput('('); yytext = 'extract'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACT'; } -HISTOGRAM_NUMERIC\s*\( { yy.lexer.unput('('); yytext = 'histogram_numeric'; parser.addFunctionLocation(yylloc, yytext); return 'HISTOGRAM_NUMERIC'; } -MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } -MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } -NTILE\s*\( { yy.lexer.unput('('); yytext = 'ntile'; parser.addFunctionLocation(yylloc, yytext); return 'NTILE'; } -PERCENTILE\s*\( { yy.lexer.unput('('); yytext = 'percentile'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE'; } -PERCENTILE_APPROX\s*\( { yy.lexer.unput('('); yytext = 'percentile_approx'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE_APPROX'; } -STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } -STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } -SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } -VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } -VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } -VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } - -// Analytical functions -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -PERCENT_RANK\s*\( { yy.lexer.unput('('); yytext = 'percent_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } -ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } - -[0-9]+ { return 'UNSIGNED_INTEGER'; } -[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } -[0-9]+E { return 'UNSIGNED_INTEGER_E'; } -[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } - -'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } -'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } -\s+['"] { return 'HDFS_START_QUOTE'; } -[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } -['"] { this.popState(); return 'HDFS_END_QUOTE'; } -<> { return 'EOF'; } - -'&&' { return 'AND'; } -'||' { return 'OR'; } -'=' { return '='; } -'<' { return '<'; } -'>' { return '>'; } -'!=' { return 'COMPARISON_OPERATOR'; } -'<=' { return 'COMPARISON_OPERATOR'; } -'>=' { return 'COMPARISON_OPERATOR'; } -'<>' { return 'COMPARISON_OPERATOR'; } -'<=>' { return 'COMPARISON_OPERATOR'; } -'-' { return '-'; } -'*' { return '*'; } -'+' { return 'ARITHMETIC_OPERATOR'; } -'/' { return 'ARITHMETIC_OPERATOR'; } -'%' { return 'ARITHMETIC_OPERATOR'; } -'|' { return 'ARITHMETIC_OPERATOR'; } -'^' { return 'ARITHMETIC_OPERATOR'; } -'&' { return 'ARITHMETIC_OPERATOR'; } -',' { return ','; } -'.' { return '.'; } -':' { return ':'; } -';' { return ';'; } -'~' { return '~'; } -'!' { return '!'; } -'(' { return '('; } -')' { return ')'; } -'[' { return '['; } -']' { return ']'; } - -\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } - -\` { this.begin('backtickedValue'); return 'BACKTICK'; } -[^`]+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\` { this.popState(); return 'BACKTICK'; } - -\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } -(?:\\\\|\\[']|[^'])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\' { this.popState(); return 'SINGLE_QUOTE'; } - -\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } -(?:\\\\|\\["]|[^"])+ { - if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { - return 'PARTIAL_VALUE'; - } - return 'VALUE'; - } -\" { this.popState(); return 'DOUBLE_QUOTE'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -. { } -. { } -. { } -. { } -. { } diff --git a/src/jison/sql/presto/sql_alter.jison b/src/jison/sql/presto/sql_alter.jison deleted file mode 100644 index c34b191..0000000 --- a/src/jison/sql/presto/sql_alter.jison +++ /dev/null @@ -1,795 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterDatabase - | AlterIndex - | AlterTable - | AlterView - | Msck - | ReloadFunction - ; - -AlterStatement_EDIT - : AlterDatabase_EDIT - | AlterIndex_EDIT - | AlterTable_EDIT - | AlterView_EDIT - | Msck_EDIT - | ReloadFunction_EDIT - | 'ALTER' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'INDEX', 'SCHEMA', 'TABLE', 'VIEW']); - } - ; - -AlterDatabase - : 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - ; - -AlterDatabase_EDIT - : 'ALTER' DatabaseOrSchema 'CURSOR' - { - parser.suggestDatabases(); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation_EDIT - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification_EDIT - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - ; - -AlterIndex - : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'REBUILD' - { - parser.addTablePrimary($5); - } - ; - -AlterIndex_EDIT - : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($5); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($5); - if (!$6) { - parser.suggestKeywords(['PARTITION', 'REBUILD']); - } else { - parser.suggestKeywords(['REBUILD']); - } - } - ; - -AlterTable - : AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier PrimaryKeySpecification - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification - | AlterTableLeftSide 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName - | AlterTableLeftSide ClusteredBy - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories - | AlterTableLeftSide ExchangeSpecification - | AlterTableLeftSide 'RECOVER' 'PARTITIONS' - | AlterTableLeftSide 'TOUCH' OptionalPartitionSpec - | AlterTableLeftSide ArchiveOrUnArchive PartitionSpec - | AlterTableLeftSide 'NOT' 'SKEWED' - | AlterTableLeftSide 'NOT' 'STORED_AS_DIRECTORIES' - | AlterTableLeftSide 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList - | AlterTableLeftSide 'SET' 'OWNER' PrincipalSpecification - | AlterTableLeftSide PartitionSpec 'RENAME' 'TO' PartitionSpec - | AlterTableLeftSide PartitionSpec 'CHANGE' 'COLUMN' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict - | AlterTableLeftSide DropOperations - | AlterTableLeftSide OptionalPartitionOperations - | AlterTableLeftSide PartitionSpec OptionalPartitionOperations - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs - | AlterTableLeftSide_EDIT 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName - | AlterTableLeftSide_EDIT ClusteredBy - | AlterTableLeftSide_EDIT 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories - | AlterTableLeftSide_EDIT ExchangeSpecification - | AlterTableLeftSide_EDIT 'RECOVER' 'PARTITIONS' - | AlterTableLeftSide_EDIT 'TOUCH' OptionalPartitionSpec - | AlterTableLeftSide_EDIT ArchiveOrUnArchive PartitionSpec - | AlterTableLeftSide_EDIT 'NOT' 'SKEWED' - | AlterTableLeftSide_EDIT 'NOT' 'STORED_AS_DIRECTORIES' - | AlterTableLeftSide_EDIT 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList - | AlterTableLeftSide_EDIT 'SET' 'OWNER' PrincipalSpecification - | AlterTableLeftSide_EDIT PartitionSpec 'RENAME' 'TO' PartitionSpec - | AlterTableLeftSide_EDIT PartitionSpec 'CHANGE' 'COLUMN' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict - | AlterTableLeftSide_EDIT DropOperations - | AlterTableLeftSide_EDIT OptionalPartitionOperations - | AlterTableLeftSide_EDIT PartitionSpec OptionalPartitionOperations - | AlterTableLeftSide 'ADD' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); - } else { - parser.suggestKeywords(['PARTITION']); - } - } - | AlterTableLeftSide 'REPLACE' 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists_EDIT - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec HdfsLocation_EDIT OptionalPartitionSpecs - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs_EDIT - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs 'CURSOR' - { - if (!$5 && !$6) { - parser.suggestKeywords(['LOCATION', 'PARTITION']); - } else if ($6 && $6.suggestKeywords) { - var keywords = parser.createWeightedKeywords($6.suggestKeywords, 2); - keywords.push({ value: 'PARTITION', weight: 1 }); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords(['PARTITION']); - } - } - | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec_EDIT OptionalHdfsLocation OptionalPartitionSpecs - | AlterTableLeftSide 'ADD' 'CONSTRAINT' 'CURSOR' - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FOREIGN KEY', 'PRIMARY KEY']); - } - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier PrimaryKeySpecification_EDIT - | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT - | AlterTableLeftSide ArchiveOrUnArchive 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AlterTableLeftSide ArchiveOrUnArchive PartitionSpec_EDIT - | AlterTableLeftSide ClusteredBy_EDIT - | AlterTableLeftSide ExchangeSpecification_EDIT - | AlterTableLeftSide 'NOT' 'CURSOR' - { - parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); - } - | AlterTableLeftSide 'NOT' 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS DIRECTORIES']); - } - | AlterTableLeftSide 'NOT' 'STORED' 'AS' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORIES']); - } - | AlterTableLeftSide PartitionSpec 'RENAME' 'CURSOR' - { - parser.suggestKeywords(['TO PARTITION']); - } - | AlterTableLeftSide PartitionSpec 'RENAME' 'TO' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AlterTableLeftSide 'RECOVER' 'CURSOR' - { - parser.suggestKeywords(['PARTITIONS']); - } - | AlterTableLeftSide 'SET' 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['LOCATION']); - } - | AlterTableLeftSide 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList_EDIT - | AlterTableLeftSide 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | AlterTableLeftSide 'SET' 'OWNER' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | AlterTableLeftSide 'SET' 'OWNER' PrincipalSpecification_EDIT - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList_EDIT - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList_EDIT 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories 'CURSOR' - { - if (!$7) { - parser.suggestKeywords(['STORED AS DIRECTORIES']); - } - } - | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories_EDIT - | AlterTableLeftSide 'TOUCH' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AlterTableLeftSide 'TOUCH' OptionalPartitionSpec_EDIT - | AlterTableLeftSide OptionalPartitionOperations_EDIT - | AlterTableLeftSide DropOperations_EDIT - | AlterTableLeftSide 'CURSOR' - { - parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', - 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', - 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', - 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', - 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); - } - | AlterTableLeftSide PartitionSpec 'CURSOR' - { - parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', - 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', - 'SET SERDE', 'SET SERDEPROPERTIES']); - } - | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - | AlterTableLeftSide PartitionSpec 'SET' 'CURSOR' - { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); - } - | AlterTableLeftSide 'SET' 'CURSOR' - { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); - } - | AlterTableLeftSide PartitionSpec OptionalPartitionOperations_EDIT - | AlterTableLeftSide 'RENAME' 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | AlterTableLeftSide 'RENAME' 'TO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - } - ; - -ParenthesizedStatsList - : '(' StatsList ')' - ; - -ParenthesizedStatsList_EDIT - : '(' StatsList_EDIT RightParenthesisOrError - ; - -StatsList - : StatsAssignment - | StatsList ',' StatsAssignment - ; - -StatsList_EDIT - : StatsAssignment_EDIT - | StatsList ',' StatsAssignment_EDIT - | StatsList ',' StatsAssignment_EDIT ',' StatsList - | StatsAssignment_EDIT ',' StatsList - ; - -StatsAssignment - : QuotedValue '=' QuotedValue - ; - -StatsAssignment_EDIT - : 'CURSOR' - { - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - } - ; - -OptionalPartitionOperations - : 'SET' 'FILEFORMAT' FileFormat - | 'SET' HdfsLocation - | 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties - | 'SET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - | AddReplaceColumns - | 'CONCATENATE' - | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties - | EnableOrDisable NoDropOrOffline - | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst OptionalCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - ; - -OptionalPartitionOperations_EDIT - : AddReplaceColumns_EDIT - | 'CHANGE' OptionalColumn 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - } - | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification_EDIT OptionalAfterOrFirst OptionalCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst OptionalCascadeOrRestrict 'CURSOR' - { - if (!$5 && !$6) { - if ($4.suggestKeywords) { - var keywords = parser.createWeightedKeywords($4.suggestKeywords, 3); - keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - } - } else if ($5 && !$6) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst_EDIT OptionalCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties 'CURSOR' - { - if (!$3 && !$4) { - parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); - } else if (!$4) { - parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); - } - } - | 'COMPACT' QuotedValue AndWait_EDIT OptionalWithOverwriteTblProperties - | 'COMPACT' QuotedValue OptionalAndWait WithOverwriteTblProperties_EDIT - | EnableOrDisable 'CURSOR' - { - parser.suggestKeywords(['NO_DROP', 'OFFLINE']); - } - | EnableOrDisable NoDropOrOffline_EDIT - | 'SET' 'FILEFORMAT' 'CURSOR' - { - parser.suggestFileFormats(); - } - | 'SET' HdfsLocation_EDIT - | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['WITH SERDEPROPERTIES']); - } - } - | 'SET' 'SERDE' QuotedValue WithSerdeproperties_EDIT - ; - -OptionalAndWait - : - | 'AND' 'WAIT' - ; - -AndWait_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['WAIT']); - } - ; - -OptionalWithOverwriteTblProperties - : - | 'WITH' 'OVERWRITE' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -WithOverwriteTblProperties_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); - } - | 'WITH' 'OVERWRITE' 'CURSOR' - { - parser.suggestKeywords(['TBLPROPERTIES']); - } - ; - -AddReplaceColumns - : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict - ; - -AddReplaceColumns_EDIT - : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList_EDIT OptionalCascadeOrRestrict - | AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - } - ; - -ExchangeSpecification - : 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName - ; - -ExchangeSpecification_EDIT - : 'EXCHANGE' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'EXCHANGE' ExchangePartitionSpec 'CURSOR' - { - parser.suggestKeywords(['WITH TABLE']); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'EXCHANGE' ExchangePartitionSpec_EDIT - | 'EXCHANGE' ExchangePartitionSpec_EDIT 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName - ; - -ExchangePartitionSpec - : 'PARTITION' '(' OneOrMorePartitionSpecLists ')' - | 'PARTITION' '(' PartitionSpecList ')' - ; - -ExchangePartitionSpec_EDIT - : 'PARTITION' '(' OneOrMorePartitionSpecLists_EDIT RightParenthesisOrError - | 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -OneOrMorePartitionSpecLists - : '(' PartitionSpecList ')' - | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList ')' - ; - -OneOrMorePartitionSpecLists_EDIT - : '(' PartitionSpecList_EDIT RightParenthesisOrError - | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -DropOperations - : 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalPurge - | 'DROP' 'CONSTRAINT' RegularOrBacktickedIdentifier - ; - -DropOperations_EDIT - : 'DROP' OptionalIfExists 'CURSOR' - { - if (!$2) { - parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); - } else { - parser.suggestKeywords(['PARTITION']); - } - } - | 'DROP' OptionalIfExists OneOrMorePartitionSpecs_EDIT OptionalPurge - | 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalPurge 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['PURGE']); - } - } - | 'DROP' 'CONSTRAINT' 'CURSOR' - | 'DROP' OptionalIfExists_EDIT - | 'DROP' ColumnIdentifier_EDIT - ; - -AlterTableLeftSide - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AddOrReplace - : 'ADD' - | 'REPLACE' - ; - -OptionalAfterOrFirst - : - | AfterOrFirst ColumnIdentifier - ; - -AfterOrFirst - : 'AFTER' - | 'FIRST' - ; - -OptionalAfterOrFirst_EDIT - : AfterOrFirst 'CURSOR' - { - parser.suggestColumns(); - } - | AfterOrFirst ColumnIdentifier_EDIT - ; - -OptionalColumn - : - | 'COLUMN' - ; - -EnableOrDisable - : 'ENABLE' - | 'DISABLE' - ; - -NoDropOrOffline - : 'NO_DROP' OptionalCascade - | 'OFFLINE' - ; - -NoDropOrOffline_EDIT - : 'NO_DROP' OptionalCascade 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['CASCADE']); - } - } - ; - -ArchiveOrUnArchive - : 'ARCHIVE' - | 'UNARCHIVE' - ; - -OneOrMorePartitionSpecs - : PartitionSpec - | OneOrMorePartitionSpecs ',' PartitionSpec - ; - -OneOrMorePartitionSpecs_EDIT - : PartitionSpec_EDIT - | OneOrMorePartitionSpecs ',' AnyCursor - { - parser.suggestKeywords(['PARTITION']); - } - | OneOrMorePartitionSpecs ',' AnyCursor ',' OneOrMorePartitionSpecs - { - parser.suggestKeywords(['PARTITION']); - } - | AnyCursor ',' OneOrMorePartitionSpecs - { - parser.suggestKeywords(['PARTITION']); - } - | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT - | PartitionSpec_EDIT ',' OneOrMorePartitionSpecs - | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT ',' OneOrMorePartitionSpecs - ; - -OptionalPartitionSpecs - : - | PartitionSpecWithLocationList - ; - -PartitionSpecWithLocationList - : PartitionSpecWithLocation - | PartitionSpecWithLocationList PartitionSpecWithLocation -> $2 - ; - -OptionalPartitionSpecs_EDIT - : PartitionSpecWithLocation_EDIT - | PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList - | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT - | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList - ; - -PartitionSpecWithLocation_EDIT - : PartitionSpec HdfsLocation_EDIT - | PartitionSpec_EDIT OptionalHdfsLocation - ; - -PartitionSpecWithLocation - : PartitionSpec OptionalHdfsLocation - { - if (!$2) { - $$ = { suggestKeywords: ['LOCATION'] }; - } - } - ; - -ParenthesizedSkewedLocationList - : '(' SkewedLocationList ')' - ; - -ParenthesizedSkewedLocationList_EDIT - : '(' SkewedLocationList_EDIT RightParenthesisOrError - ; - -SkewedLocationList - : SkewedLocation - | SkewedLocationList ',' SkewedLocation - ; - -SkewedLocationList_EDIT - : SkewedLocation_EDIT - | SkewedLocationList ',' SkewedLocation_EDIT - | SkewedLocationList ',' SkewedLocation_EDIT ',' SkewedLocationList - | SkewedLocation_EDIT ',' SkewedLocationList - ; - -SkewedLocation - : ColumnReference '=' QuotedValue - ; - -SkewedLocation_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - | AnyCursor '=' QuotedValue - { - parser.suggestColumns(); - } - | ColumnReference_EDIT '=' QuotedValue - | ColumnReferences '=' QuotedValue - ; - -OptionalStoredAsDirectories - : - | 'STORED_AS_DIRECTORIES' - ; - -OptionalStoredAsDirectories_EDIT - : 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS DIRECTORIES']); - } - | 'STORED' 'AS' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORIES']); - } - ; - -AlterView - : AlterViewLeftSide 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - | AlterViewLeftSide 'AS' QuerySpecification - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); - } - | AlterViewLeftSide 'SET' 'CURSOR' - { - parser.suggestKeywords(['TBLPROPERTIES']); - } - | AlterViewLeftSide 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide 'AS' QuerySpecification_EDIT - ; - - -AlterViewLeftSide - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' 'VIEW' 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -Msck - : 'MSCK' 'REPAIR' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -Msck_EDIT - : 'MSCK' 'CURSOR' - { - parser.suggestKeywords(['REPAIR TABLE']); - } - | 'MSCK' 'REPAIR' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'MSCK' 'REPAIR' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'MSCK' 'REPAIR' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -ReloadFunction - : 'RELOAD' 'FUNCTION' - ; - -ReloadFunction_EDIT - : 'RELOAD' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION']); - } - ; - -NullableComment - : QuotedValue - | 'NULL' - ; diff --git a/src/jison/sql/presto/sql_analyze.jison b/src/jison/sql/presto/sql_analyze.jison deleted file mode 100644 index e5f36af..0000000 --- a/src/jison/sql/presto/sql_analyze.jison +++ /dev/null @@ -1,132 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AnalyzeStatement - ; - -DataDefinition_EDIT - : AnalyzeStatement_EDIT - ; - -AnalyzeStatement - : 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - } - ; - -AnalyzeStatement_EDIT - : 'ANALYZE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'ANALYZE' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); - } else { - parser.suggestKeywords(['COMPUTE STATISTICS']); - } - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['STATISTICS']); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' 'CURSOR' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$8, $9, $10], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns 'CURSOR' OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$9, $10], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata 'CURSOR' OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$10], [{ value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($3); - } - | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($3); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns_EDIT OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata_EDIT OptionalNoscan - ; - -OptionalForColumns - : - | ForColumns - ; - -ForColumns - : 'FOR' 'COLUMNS' - ; - -ForColumns_EDIT - : 'FOR' 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - ; - -OptionalCacheMetadata - : - | CacheMetadata - ; - -CacheMetadata - : 'CACHE' 'METADATA' - ; - -CacheMetadata_EDIT - : 'CACHE' 'CURSOR' - { - parser.suggestKeywords(['METADATA']); - } - ; - -OptionalNoscan - : - | 'NOSCAN' - ; diff --git a/src/jison/sql/presto/sql_create.jison b/src/jison/sql/presto/sql_create.jison deleted file mode 100644 index 1953e81..0000000 --- a/src/jison/sql/presto/sql_create.jison +++ /dev/null @@ -1,1408 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - | FunctionDefinition - | IndexDefinition - | MacroDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | FunctionDefinition_EDIT - | IndexDefinition_EDIT - | MacroDefinition_EDIT - | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'CURSOR' - { - if ($4) { - parser.suggestKeywords(['TABLE']); - } else { - if ($2 && !$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); - } else if (!$2 && !$3) { - parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); - } else if ($3) { - parser.suggestKeywords(['TABLE']); - } - } - } - ; - -DatabaseDefinition - : 'CREATE' DatabaseOrSchema OptionalIfNotExists - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT - | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment OptionalHdfsLocation OptionalDbProperties - { - var keywords = []; - if (!$3) { - keywords.push('WITH DBPROPERTIES'); - } - if (!$2 && !$3) { - keywords.push('LOCATION'); - } - if (!$1 && !$2 && !$3) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID OptionalHdfsLocation OptionalDbProperties - | OptionalComment HdfsLocation_EDIT OptionalDbProperties - ; - -OptionalComment - : - | Comment - ; - -Comment - : 'COMMENT' QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : 'COMMENT' SINGLE_QUOTE - | 'COMMENT' DOUBLE_QUOTE - | 'COMMENT' SINGLE_QUOTE VALUE - | 'COMMENT' DOUBLE_QUOTE VALUE - ; - - -OptionalDbProperties - : - | DbProperties - ; - -DbProperties - : 'WITH' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList - | 'WITH' 'DBPROPERTIES' - | 'WITH' 'CURSOR' - { - parser.suggestKeywords(['DBPROPERTIES']); - } - ; - -ParenthesizedPropertyAssignmentList - : '(' PropertyAssignmentList ')' - ; - -PropertyAssignmentList - : PropertyAssignment - | PropertyAssignmentList ',' PropertyAssignment - ; - -PropertyAssignment - : QuotedValue '=' UnsignedValueSpecification - ; - -TableDefinition - : 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT - | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment PartitionedBy_EDIT - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - ClusteredBy_EDIT OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy SkewedBy_EDIT OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy RowFormat_EDIT OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat StoredAsOrBy_EDIT - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - WithSerdeproperties_EDIT OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties HdfsLocation_EDIT OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy - OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties 'CURSOR' - { - var keywords = []; - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'LIKE', weight: 1 }); - } else { - if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'COMMENT', weight: 10 }); - } - if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'PARTITIONED BY', weight: 9 }); - } - if (!$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'CLUSTERED BY', weight: 8 }); - } - if (!$5 && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'SKEWED BY', weight: 7 }); - } else if ($5 && $5.suggestKeywords && !$6 && !$7 && !$8 && !$9 && !$10) { - keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 7)); // Get the last optional from SKEWED BY - } - if (!$6 && !$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'ROW FORMAT', weight: 6 }); - } else if ($6 && $6.suggestKeywords && !$7 && !$8 && !$9 && !$10) { - keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 6)); - } - if (!$7 && !$8 && !$9 && !$10) { - keywords.push({ value: 'STORED AS', weight: 5 }); - keywords.push({ value: 'STORED BY', weight: 5 }); - } else if ($7 && $7.storedBy && !$8 && !$9 && !$10) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 4 }); - } - if (!$9 && !$10) { - keywords.push({ value: 'LOCATION', weight: 3 }); - } - if (!$10) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - parser.suggestKeywords(keywords); - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - | '(' ColumnSpecificationList ',' ConstraintSpecification ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - | '(' ColumnSpecificationList ',' ConstraintSpecification_EDIT RightParenthesisOrError - | '(' ColumnSpecificationList ',' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); - } - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (!$3['comment']) { - keywords.push('COMMENT'); - if ($2.toLowerCase() === 'double') { - keywords.push({ value: 'PRECISION', weight: 2 }); - } - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOption - : Comment -> 'comment' - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | UnionType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - | UnionType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - | UnionType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -UnionType - : 'UNIONTYPE' '<' ColumnDataTypeList '>' - ; - -UnionType_INVALID - : 'UNIONTYPE' '<' '>' - ; - -UnionType_EDIT - : 'UNIONTYPE' '<' ColumnDataTypeList_EDIT GreaterThanOrError - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -ConstraintSpecification - : PrimaryKeySpecification - | 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification - | PrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification - ; - -ConstraintSpecification_EDIT - : PrimaryKeySpecification_EDIT - | PrimaryKeySpecification ',' 'CURSOR' - { - parser.suggestKeywords(['CONSTRAINT']); - } - | PrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FOREIGN KEY']); - } - | PrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT - | PrimaryKeySpecification_EDIT ',' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification - | 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FOREIGN KEY']); - } - | 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT - | 'CURSOR' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification - { - parser.suggestKeywords(['PRIMARY KEY']); - } - ; - -PrimaryKeySpecification - : PrimaryKey ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' - ; - -PrimaryKeySpecification_EDIT - : PrimaryKey_EDIT - | PrimaryKey ParenthesizedColumnList_EDIT - | PrimaryKey ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['DISABLE NOVALIDATE']); - } - | PrimaryKey ParenthesizedColumnList 'DISABLE' 'CURSOR' - { - parser.suggestKeywords(['NOVALIDATE']); - } - | PrimaryKey ParenthesizedColumnList_EDIT 'DISABLE' 'NOVALIDATE' - ; - -ForeignKeySpecification - : 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' OptionalRelyNoRely - { - parser.addTablePrimary($5); - } - ; - -ForeignKeySpecification_EDIT - : 'FOREIGN' 'CURSOR' - { - parser.suggestKeywords(['KEY']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList_EDIT - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['REFERENCES']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier_EDIT - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList_EDIT - { - parser.addTablePrimary($5); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'CURSOR' - { - parser.addTablePrimary($5); - parser.suggestKeywords(['DISABLE NOVALIDATE']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'CURSOR' - { - parser.addTablePrimary($5); - parser.suggestKeywords(['NOVALIDATE']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' OptionalRelyNoRely 'CURSOR' - { - parser.addTablePrimary($5); - if (!$9) { - parser.suggestKeywords(['NORELY', 'RELY']); - } - } - ; - -OptionalRelyNoRely - : - | 'RELY' - | 'NORELY' - ; - -PrimaryKey - : 'PRIMARY' 'KEY' - ; - -PrimaryKey_EDIT - : 'PRIMARY' 'CURSOR' - { - parser.suggestKeywords(['KEY']); - } - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList - ; - -PartitionedBy_EDIT - : 'PARTITIONED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITIONED' 'CURSOR' ParenthesizedColumnSpecificationList - { - parser.suggestKeywords(['BY']); - } - | 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList_EDIT - | 'PARTITIONED' ParenthesizedColumnSpecificationList_EDIT - | 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['HASH', 'RANGE']); - } - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalClusteredBy - : - | ClusteredBy - ; - -ClusteredBy - : 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - ; - -ClusteredBy_EDIT - : 'CLUSTERED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalSortedBy - | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'CURSOR' - { - if (!$4) { - parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); - } else { - parser.suggestKeywords(['INTO']); - } - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'CURSOR' - { - parser.suggestKeywords(['BUCKETS']); - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy_EDIT 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy_EDIT - ; - -OptionalSortedBy - : - | 'SORTED' 'BY' ParenthesizedSortList - ; - -OptionalSortedBy_EDIT - : 'SORTED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SORTED' 'BY' ParenthesizedSortList_EDIT - ; - -ParenthesizedSortList - : '(' SortList ')' - ; - -ParenthesizedSortList_EDIT - : '(' SortList_EDIT RightParenthesisOrError - ; - -SortList - : SortIdentifier - | SortList ',' SortIdentifier - ; - -SortList_EDIT - : SortIdentifier_EDIT - | SortIdentifier_EDIT ',' SortList - | SortList ',' SortIdentifier_EDIT - | SortList ',' SortIdentifier_EDIT ',' SortList - ; - -SortIdentifier - : ColumnIdentifier OptionalAscOrDesc - ; - -SortIdentifier_EDIT - : ColumnIdentifier OptionalAscOrDesc 'CURSOR' - { - parser.checkForKeywords($2); - } - | ColumnIdentifier_EDIT OptionalAscOrDesc - | AnyCursor OptionalAscOrDesc - { - parser.suggestColumns(); - } - ; - -OptionalSkewedBy - : - | SkewedBy - ; - -SkewedBy - : 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList -> { suggestKeywords: ['STORED AS DIRECTORIES'] } - | 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList 'STORED_AS_DIRECTORIES' // Hack otherwise ambiguous with OptionalStoredAsOrBy - ; - -SkewedBy_EDIT - : 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - ; - -ParenthesizedSkewedValueList - : '(' SkewedValueList ')' - ; - -SkewedValueList - : ParenthesizedSimpleValueList - | SkewedValueList ',' ParenthesizedSimpleValueList - ; - -OptionalRowFormat - : - | RowFormat - ; - -RowFormat - : 'ROW' 'FORMAT' RowFormatSpec - { - $$ = $3 - } - ; - -RowFormat_EDIT - : 'ROW' 'CURSOR' - { - parser.suggestKeywords(['FORMAT']); - } - | 'ROW' 'FORMAT' 'CURSOR' - { - parser.suggestKeywords(['DELIMITED', 'SERDE']); - } - | 'ROW' 'FORMAT' RowFormatSpec_EDIT - ; - -OptionalStoredAsOrBy - : - | StoredAsOrBy - ; - -StoredAsOrBy - : StoredAs - | 'STORED' 'BY' QuotedValue - { - $$ = { storedBy: true } - } - ; - -StoredAsOrBy_EDIT - : 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS', 'BY']); - } - | StoredAs_EDIT - ; - -OptionalStoredAs - : -> { suggestKeywords: ['STORED AS'] } - | StoredAs - ; - -StoredAs - : 'STORED' 'AS' FileFormat - ; - -StoredAs_EDIT - : 'STORED' 'AS' 'CURSOR' - { - parser.suggestFileFormats(); - } - ; - -FileFormat - : 'AVRO' - | 'INPUTFORMAT' QuotedValue 'OUTPUTFORMAT' QuotedValue - | 'JSONFILE' - | 'ORC' - | 'PARQUET' - | 'RCFILE' - | 'SEQUENCEFILE' - | 'TEXTFILE' - ; - -RowFormatSpec - : DelimitedRowFormat - | 'SERDE' QuotedValue - ; - -RowFormatSpec_EDIT - : DelimitedRowFormat_EDIT - ; - -DelimitedRowFormat - : 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy OptionalLinesTerminatedBy OptionalNullDefinedAs - { - if (!$2 && !$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; - } else if ($2 && $2.suggestKeywords && !$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: parser.createWeightedKeywords($2.suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; - } else if (!$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$6) { - $$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; - } - } - ; - -DelimitedRowFormat_EDIT - : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy_EDIT OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy_EDIT - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy_EDIT OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs_EDIT - ; - -OptionalFieldsTerminatedBy - : - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue -> { suggestKeywords: ['ESCAPED BY'] } - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'BY' SingleQuotedValue - ; - -OptionalFieldsTerminatedBy_EDIT - : 'FIELDS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'FIELDS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalCollectionItemsTerminatedBy - : - | 'COLLECTION' 'ITEMS' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalCollectionItemsTerminatedBy_EDIT - : 'COLLECTION' 'CURSOR' - { - parser.suggestKeywords(['ITEMS TERMINATED BY']); - } - | 'COLLECTION' 'ITEMS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'COLLECTION' 'ITEMS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalMapKeysTerminatedBy - : - | 'MAP' 'KEYS' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalMapKeysTerminatedBy_EDIT - : 'MAP' 'CURSOR' - { - parser.suggestKeywords(['KEYS TERMINATED BY']); - } - | 'MAP' 'KEYS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'MAP' 'KEYS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalLinesTerminatedBy - : - | 'LINES' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalLinesTerminatedBy_EDIT - : 'LINES' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'LINES' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalNullDefinedAs - : - | 'NULL' 'DEFINED' 'AS' SingleQuotedValue - ; - -OptionalNullDefinedAs_EDIT - : 'NULL' 'CURSOR' - { - parser.suggestKeywords(['DEFINED AS']); - } - | 'NULL' 'DEFINED' 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - ; - -OptionalWithSerdeproperties - : - | WithSerdeproperties - ; - -WithSerdeproperties - :'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -WithSerdeproperties_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - ; - -OptionalTblproperties - : - | TblProperties - ; - -TblProperties - : 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -OptionalAsSelectStatement - : - | 'AS' CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : 'AS' CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'AS' CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification - ; - -ViewDefinition_EDIT - : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment OptionalTblproperties - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$7) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - } - parser.suggestKeywords(keywords); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification_EDIT - | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification - ; - -FunctionDefinition - : TemporaryFunction - ; - -FunctionDefinition_EDIT - : TemporaryFunction_EDIT - ; - -FunctionDefinition - : 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing - ; - -FunctionDefinition_EDIT - : 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing_EDIT - | 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['USING']); - } else { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - } - ; - -TemporaryFunction - : 'CREATE' 'TEMPORARY' 'FUNCTION' RegularIdentifier 'AS' SingleQuotedValue - ; - -TemporaryFunction_EDIT - : 'CREATE' 'TEMPORARY' 'FUNCTION' RegularIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - ; - -FunctionReference - : SingleQuotedValue - ; - -FunctionReference_EDIT - : SingleQuotedValue_EDIT - { - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - ; - -OptionalUsing - : - | 'USING' OneOrMoreFunctionResources - ; - -OptionalUsing_EDIT - : 'USING' 'CURSOR' - { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - ; - -OneOrMoreFunctionResources - : FunctionResource - | OneOrMoreFunctionResources ',' FunctionResource - ; - -FunctionResource - : FunctionResourceType SingleQuotedValue - ; - -FunctionResourceType - : 'ARCHIVE' - | 'FILE' - | 'JAR' - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' -> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 - ; - -RoleDefinition - : 'CREATE' 'ROLE' RegularIdentifier - ; - -IndexDefinition - : 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment - ; - -IndexDefinition_EDIT - : 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON TABLE']); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' 'CURSOR' - { - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType_EDIT OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild_EDIT OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable_EDIT OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable RowFormat_EDIT OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat StoredAsOrBy_EDIT OptionalHdfsLocation - OptionalTblproperties OptionalComment - { - if ($13 && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { - parser.suggestKeywords(['AS']); - } - } - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy HdfsLocation_EDIT - OptionalTblproperties OptionalComment - | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment 'CURSOR' - { - if (!$10 && !$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if ($13 && $13.suggestKeywords && !$14 && !$15 && !$16) { - parser.suggestKeywords(parser.createWeightedKeywords($13.suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); - } else if (!$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$16 && !$17) { - parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$17) { - parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); - } - } - ; - -ExistingTable - : SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -ExistingTable_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -IndexType - : QuotedValue - ; - -IndexType_EDIT - : QuotedValue_EDIT - { - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - } - ; - -OptionalWithDeferredRebuild - : - | 'WITH' 'DEFERRED' 'REBUILD' - ; - -OptionalWithDeferredRebuild_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['DEFERRED REBUILD']); - } - | 'WITH' 'DEFERRED' 'CURSOR' - { - parser.suggestKeywords(['REBUILD']); - } - ; - -OptionalIdxProperties - : - | 'IDXPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -OptionalInTable - : - | 'IN' 'TABLE' SchemaQualifiedTableIdentifier - ; - -OptionalInTable_EDIT - : 'IN' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'IN' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'IN' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - ; - - -ParenthesizedIndexColumnList - : '(' IndexColumnList ')' - ; - -ParenthesizedIndexColumnList_EDIT - : '(' IndexColumnList_EDIT RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -IndexColumnList - : ColumnReference - | IndexColumnList ',' ColumnReference - ; - -IndexColumnList_EDIT - : AnyCursor - | IndexColumnList ',' AnyCursor - | AnyCursor ',' IndexColumnList - | IndexColumnList ',' AnyCursor ',' IndexColumnList - ; - -MacroDefinition - : 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression - ; - -MacroDefinition_EDIT - : 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT - | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT ValueExpression - | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments 'CURSOR' - { - parser.suggestFunctions(); - } - | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression_EDIT - ; - -MacroArguments - : '(' ')' - | '(' MacroArgumentList ')' - ; - -MacroArguments_EDIT - : '(' MacroArgumentList_EDIT RightParenthesisOrError - ; - - -MacroArgumentList - : MacroArgument - | MacroArgumentList ',' MacroArgument - ; - -MacroArgumentList_EDIT - : MacroArgument_EDIT - | MacroArgumentList ',' MacroArgument_EDIT - | MacroArgument_EDIT ',' MacroArgumentList - | MacroArgumentList ',' MacroArgument_EDIT ',' MacroArgumentList - ; - -MacroArgument - : RegularIdentifier ColumnDataType - ; - -MacroArgument_EDIT - : RegularIdentifier 'CURSOR' - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularIdentifier ColumnDataType_EDIT - ; diff --git a/src/jison/sql/presto/sql_drop.jison b/src/jison/sql/presto/sql_drop.jison deleted file mode 100644 index 07b94de..0000000 --- a/src/jison/sql/presto/sql_drop.jison +++ /dev/null @@ -1,321 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - | AbortStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - | AbortStatement_EDIT - ; - -DataManipulation - : DeleteStatement - ; - -DataManipulation_EDIT - : DeleteStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropFunctionStatement - | DropRoleStatement - | DropTableStatement - | DropIndexStatement - | DropMacroStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropFunctionStatement_EDIT - | DropTableStatement_EDIT - | DropIndexStatement_EDIT - | DropMacroStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; - -DropFunctionStatement - : 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists RegularIdentifier - ; - -DropFunctionStatement_EDIT - : 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'FUNCTION' OptionalIfExists_EDIT - | 'DROP' 'FUNCTION' OptionalIfExists_EDIT SchemaQualifiedIdentifier - | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists_EDIT - ; - -DropRoleStatement - : 'DROP' 'ROLE' RegularIdentifier - ; - -DropTableStatement - : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' 'TABLE' OptionalIfExists_EDIT - | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - ; - - -DropIndexStatement - : 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($6); - } - ; - -DropIndexStatement_EDIT - : 'DROP' 'INDEX' OptionalIfExists 'CURSOR' - { - parser.suggestKeywords(['IF EXISTS']); - } - | 'DROP' 'INDEX' OptionalIfExists_EDIT - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT - ; - -DropMacroStatement - : 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists RegularIdentifier - ; - -DropMacroStatement_EDIT - : 'DROP' 'TEMPORARY' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION', 'MACRO']); - } - | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists_EDIT - ; - -DropViewStatement - : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'VIEW' OptionalIfExists_EDIT - | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' 'TABLE' 'CURSOR' OptionalPartitionSpec - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'TRUNCATE' 'TABLE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - } - ; - -DeleteStatement - : 'DELETE' 'FROM' SchemaQualifiedTableIdentifier OptionalWhereClause - { - parser.addTablePrimary($3); - } - ; - -DeleteStatement_EDIT - : 'DELETE' 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'DELETE' 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier 'CURSOR' OptionalWhereClause - { - parser.addTablePrimary($3); - if (!$5) { - parser.suggestKeywords(['WHERE']); - } - } - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier_EDIT OptionalWhereClause - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier WhereClause_EDIT - { - parser.addTablePrimary($3); - } - ; - -AbortStatement - : 'ABORT' 'TRANSACTIONS' TransactionIdList - ; - -AbortStatement_EDIT - : 'ABORT' 'CURSOR' - { - parser.suggestKeywords(['TRANSACTIONS']); - } - ; - -TransactionIdList - : UnsignedNumericLiteral - | TransactionIdList ',' UnsignedNumericLiteral - ; diff --git a/src/jison/sql/presto/sql_error.jison b/src/jison/sql/presto/sql_error.jison deleted file mode 100644 index 0a623b3..0000000 --- a/src/jison/sql/presto/sql_error.jison +++ /dev/null @@ -1,169 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -LateralView - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier 'AS' error -> { } - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction error -> { } - | 'LATERAL' 'VIEW' OptionalOuter error -> { } - | 'LATERAL' error -> { } - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } - | 'RIGHT' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7, $8, $9], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true, true, true]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 && !$8 && !$9 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7, $8, $9], [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true]), - cursorAtEnd: !$6 && !$7 && !$8 && !$9 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7, $8, $9], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true]), - cursorAtEnd: !$7 && !$8 && !$9 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$8, $9], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true]), - cursorAtEnd: !$8 && !$9 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy error 'CURSOR' OptionalLimitClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$9], [{ value: 'LIMIT', weight: 3 }], [true]), - cursorAtEnd: !$9 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause error 'CURSOR' - { - $$ = { - suggestKeywords: [], - cursorAtEnd: true - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error OptionalClusterOrDistributeBy LimitClause_EDIT - ; - -DatabaseDefinition_EDIT - : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql/presto/sql_grant.jison b/src/jison/sql/presto/sql_grant.jison deleted file mode 100644 index 36974db..0000000 --- a/src/jison/sql/presto/sql_grant.jison +++ /dev/null @@ -1,378 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : GrantStatement - | RevokeStatement - ; - -DataDefinition_EDIT - : GrantStatement_EDIT - | RevokeStatement_EDIT - ; - -GrantStatement - : 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption - ; - -GrantStatement_EDIT - : 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - } - | 'GRANT' PrivilegeTypeList_EDIT OptionalOnSpecification - | 'GRANT' PrivilegeTypeList OnSpecification_EDIT - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['ON', 'TO']); - } else { - parser.suggestKeywords(['TO']); - } - } - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - } - | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList WithGrantOption_EDIT - | 'GRANT' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | 'GRANT' UserOrRoleList 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' - { - if (!$5) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - } - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT - | 'GRANT' 'ROLE' UserOrRoleList 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - } - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT - ; - -OptionalOnSpecification - : - | 'ON' ObjectSpecification - ; - -OnSpecification_EDIT - : 'ON' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'TABLE']); - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'ON' ObjectSpecification_EDIT - ; - -ObjectSpecification - : 'DATABASE' RegularOrBacktickedIdentifier - | 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($2); - } - | SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -ObjectSpecification_EDIT - : 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'TABLE' SchemaQualifiedTableIdentifier_EDIT - | SchemaQualifiedTableIdentifier_EDIT - ; - -PrivilegeTypeList - : PrivilegeTypeWithOptionalColumn - { - if ($1.toUpperCase() === 'ALL') { - $$ = { singleAll: true }; - } - } - | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn - ; - -PrivilegeTypeList_EDIT - : PrivilegeTypeWithOptionalColumn_EDIT - | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn_EDIT - | PrivilegeTypeWithOptionalColumn_EDIT ',' PrivilegeTypeList - | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn_EDIT ',' PrivilegeTypeList - | 'CURSOR' ',' PrivilegeTypeList - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | PrivilegeTypeList ',' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | PrivilegeTypeList ',' 'CURSOR' ',' PrivilegeTypeList - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - ; - -PrivilegeTypeWithOptionalColumn - : PrivilegeType OptionalParenthesizedColumnList - ; - -PrivilegeTypeWithOptionalColumn_EDIT - : PrivilegeType ParenthesizedColumnList_EDIT - ; - -PrivilegeType - : 'ALL' - | 'ALTER' - | 'CREATE' - | 'DELETE' - | 'DROP' - | 'INDEX' - | 'INSERT' - | 'LOCK' - | 'SELECT' - | 'SHOW_DATABASE' - | 'UPDATE' - ; - -PrincipalSpecificationList - : PrincipalSpecification - | PrincipalSpecificationList ',' PrincipalSpecification - ; - -PrincipalSpecificationList_EDIT - : PrincipalSpecificationList ',' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'CURSOR' ',' PrincipalSpecificationList - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | PrincipalSpecificationList ',' 'CURSOR' ',' PrincipalSpecificationList - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - ; - -PrincipalSpecification - : 'USER' RegularOrBacktickedIdentifier - | 'GROUP' RegularOrBacktickedIdentifier - | 'ROLE' RegularOrBacktickedIdentifier - ; - -PrincipalSpecification_EDIT - : 'USER' 'CURSOR' - | 'GROUP' 'CURSOR' - | 'ROLE' 'CURSOR' - ; - -UserOrRoleList - : RegularOrBacktickedIdentifier - | UserOrRoleList ',' RegularOrBacktickedIdentifier - ; - -OptionalWithGrantOption - : - | 'WITH' 'GRANT' 'OPTION' - ; - -WithGrantOption_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['GRANT OPTION']); - } - | 'WITH' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; - -OptionalWithAdminOption - : - | 'WITH' 'ADMIN' 'OPTION' - ; - -WithAdminOption_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['ADMIN OPTION']); - } - | 'WITH' 'ADMIN' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; - -RevokeStatement - : 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList - | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'FROM' UserOrRoleList - ; - -RevokeStatement_EDIT - : 'REVOKE' 'CURSOR' - { - parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - } - | 'REVOKE' PrivilegeTypeList_EDIT - | 'REVOKE' PrivilegeTypeList OnSpecification_EDIT - | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$3) { - if ($2.singleAll) { - parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); - } else { - parser.suggestKeywords(['FROM', 'ON']); - } - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION FOR']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'CURSOR' - { - parser.suggestKeywords(['FOR']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList_EDIT - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OnSpecification_EDIT - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['FROM', 'ON']); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' UserOrRoleList 'CURSOR' - { - if ($2.toUpperCase() === 'ADMIN') { - parser.suggestKeywords(['FROM', 'OPTION FOR']); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ROLE' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - - | 'REVOKE' 'ADMIN' 'OPTION' 'CURSOR' - { - parser.suggestKeywords(['FOR']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'CURSOR' - { - parser.suggestKeywords(['ROLE']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ALL' PrivilegesOrGrantOption_EDIT - | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - ; - -PrivilegesOrGrantOption - : 'PRIVILEGES' - | 'GRANT' 'OPTION' - ; - -PrivilegesOrGrantOption_EDIT - : 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; diff --git a/src/jison/sql/presto/sql_insert.jison b/src/jison/sql/presto/sql_insert.jison deleted file mode 100644 index 15c483f..0000000 --- a/src/jison/sql/presto/sql_insert.jison +++ /dev/null @@ -1,536 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - | CommonTableExpression InsertStatement - | MergeStatement - ; - -DataManipulation_EDIT - : InsertStatement_EDIT - | CommonTableExpression InsertStatement_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT InsertStatement - | MergeStatement_EDIT - ; - -InsertStatement - : InsertWithoutQuery - | InsertWithoutQuery QuerySpecification - | FromClause Inserts - | FromClause SelectWithoutTableExpression OptionalSelectConditions - ; - -InsertStatement_EDIT - : InsertWithoutQuery_EDIT - | InsertWithoutQuery 'CURSOR' - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); - } else { - keywords = ['SELECT']; - } - if ($1.addValues) { - keywords.push({ weight: 1.1, value: 'VALUES' }); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - | InsertWithoutQuery_EDIT QuerySpecification - | InsertWithoutQuery QuerySpecification_EDIT - | FromClause Inserts_EDIT - { - if (!$2.keepTables) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - } - | FromClause_EDIT - | FromClause_EDIT Inserts - | FromClause_EDIT SelectWithoutTableExpression OptionalSelectConditions - | FromClause 'CURSOR' - { - parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); - } - | FromClause SelectWithoutTableExpression_EDIT OptionalSelectConditions - { - if ($2.cursorAtEnd) { - parser.checkForSelectListKeywords($2); - var keywords = parser.yy.result.suggestKeywords || []; - if ($3.suggestKeywords) { - keywords = keywords.concat($3.suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - | FromClause SelectWithoutTableExpression OptionalSelectConditions_EDIT - { - if ($3.cursorAtStart) { - parser.checkForSelectListKeywords($2.tableExpression); - } - } - ; - -InsertWithoutQuery - : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (!$5 && !$6) { - $$ = { suggestKeywords: ['PARTITION'] } - } else if (!$6) { - $$ = { suggestKeywords: ['IF NOT EXISTS'] } - } - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs - { - if (!$6 && !$7) { - $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$7) { - $$ = { suggestKeywords: ['STORED AS'] }; - } - } - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs - { - if (!$4 && !$5) { - $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$5) { - $$ = { suggestKeywords: ['STORED AS'] }; - } - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (!$5 && !$6) { - $$ = { suggestKeywords: ['PARTITION'], addValues: true }; - } else if (!$6) { - $$ = { addValues: true }; - } - } - ; - -InsertWithoutQuery_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['OVERWRITE', 'INTO']); - } - | 'INSERT' 'OVERWRITE' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - $$ = { keepTables: true } - } - | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList - { - $$ = { keepTables: true } - } - | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalIfNotExists - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists_EDIT - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORY']); - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs // DIRECTORY is a non-reserved keyword - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - $$ = { keepTables: true } - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList - { - $$ = { keepTables: true } - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalParenthesizedColumnList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList_EDIT - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - ; - -Inserts - : GenericInsert - | Inserts GenericInsert - ; - -Inserts_EDIT - : GenericInsert_EDIT - | Inserts GenericInsert_EDIT - | GenericInsert_EDIT Inserts - | Inserts GenericInsert_EDIT Inserts - ; - -// TODO: Verify unions in insert -GenericInsert - : InsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions - ; - -GenericInsert_EDIT - : InsertWithoutQuery_EDIT - | InsertWithoutQuery_EDIT SelectWithoutTableExpression OptionalSelectConditions - | InsertWithoutQuery 'CURSOR' - { - if ($1.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); - } else { - parser.suggestKeywords(['SELECT']); - } - } - | InsertWithoutQuery SelectWithoutTableExpression_EDIT OptionalSelectConditions - { - if ($2.cursorAtEnd) { - parser.checkForSelectListKeywords($2); - var keywords = parser.yy.result.suggestKeywords || []; - if ($3.suggestKeywords) { - keywords = keywords.concat($3.suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - } - | InsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions_EDIT - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; - -OptionalInsertRowFormat - : - | 'ROW' 'FORMAT' DelimitedRowFormat - ; - -OptionalInsertRowFormat_EDIT - : 'ROW' 'CURSOR' - { - parser.suggestKeywords(['FORMAT DELIMITED']); - } - | 'ROW' 'FORMAT' 'CURSOR' - { - parser.suggestKeywords(['DELIMITED']); - } - | 'ROW' 'FORMAT' DelimitedRowFormat_EDIT - ; - -SelectWithoutTableExpression - : 'SELECT' OptionalAllOrDistinct SelectList -> { selectList: $3 } - ; - -SelectWithoutTableExpression_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - $$ = $3; - $$.cursorAtEnd = true; - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.selectListNoTableSuggest($3, $2); - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - } - ; - -MergeStatement - : MergeStatementLeftPart 'ON' ValueExpression WhenList - ; - -MergeStatement_EDIT - : MergeStatementLeftPart_EDIT - | MergeStatementLeftPart 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | MergeStatementLeftPart 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | MergeStatementLeftPart 'ON' ValueExpression_EDIT - | MergeStatementLeftPart 'ON' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, [{ value: 'WHEN', weight: 2 }]); - } - | MergeStatementLeftPart 'ON' ValueExpression WhenList_EDIT - ; - -MergeStatementLeftPart - : 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' RegularIdentifier - { - $3.alias = $5; - parser.addTablePrimary($3); - if ($7.subQuery) { - parser.addTablePrimary({ subQueryAlias: $9 }); - } else { - $7.alias = $9; - } - } - ; - -MergeStatementLeftPart_EDIT - : 'MERGE' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'MERGE' 'INTO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier_EDIT - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['AS T USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['T USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource_EDIT - { - $3.alias = $5; - parser.addTablePrimary($3); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['AS S ON']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['S ON']); - } - ; - -MergeSource - : '(' TableSubQueryInner ')' -> $2 - | SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -MergeSource_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | '(' TableSubQueryInner_EDIT RightParenthesisOrError - | SchemaQualifiedTableIdentifier_EDIT - ; - -WhenList - : WhenClause - | WhenClause WhenClause - | WhenClause WhenClause WhenClause - ; - -WhenList_EDIT - : WhenClause_EDIT - { - if ($1.suggestThenKeywords) { - parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); - } - } - | WhenClause 'CURSOR' - { - if (!$1.notPresent) { - parser.suggestKeywords(['WHEN']); - } - } - | WhenClause WhenClause_EDIT - { - if (!$1.notPresent && $2.suggestThenKeywords) { - var keywords = []; - if (!$1.isDelete) { - keywords.push('DELETE'); - } - if (!$1.isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$1.isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - } - | WhenClause WhenClause 'CURSOR' - { - if (!$2.notPresent) { - parser.suggestKeywords(['WHEN']); - } - } - | WhenClause WhenClause WhenClause_EDIT - { - if (!$2.notPresent && $3.suggestThenKeywords) { - var keywords = []; - if (!$1.isDelete && !$2.isDelete) { - keywords.push('DELETE'); - } - if (!$1.isInsert && !$2.isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$1.isUpdate && !$2.isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - } - ; - -WhenClause - : 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert -> { notPresent: !!$2, isDelete: $6.isDelete, isInsert: $6.isInsert, isUpdate: $6.isUpdate } - ; - -WhenClause_EDIT - : 'WHEN' OptionalNot 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); - } else { - parser.suggestKeywords(['MATCHED']); - } - } - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['AND', 'THEN']); - } else { - parser.suggestValueExpressionKeywords($4, [{ value: 'THEN', weight: 2 }]); - } - } - | 'WHEN' OptionalNot 'MATCHED' MatchCondition_EDIT - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' 'CURSOR' -> { suggestThenKeywords: true } - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert_EDIT - ; - -OptionalMatchCondition - : - | 'AND' ValueExpression -> $2 - ; - -MatchCondition_EDIT - : 'AND' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - ; - -UpdateDeleteOrInsert - : 'UPDATE' 'SET' SetClauseList -> { isUpdate: true } - | 'DELETE' -> { isDelete: true } - | 'INSERT' 'VALUES' InsertValuesList -> { isInsert: true } - ; - -UpdateDeleteOrInsert_EDIT - : 'UPDATE' 'CURSOR' - { - parser.suggestKeywords(['SET']); - } - | 'UPDATE' 'SET' SetClauseList_EDIT - | 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - ; diff --git a/src/jison/sql/presto/sql_load.jison b/src/jison/sql/presto/sql_load.jison deleted file mode 100644 index 54f121d..0000000 --- a/src/jison/sql/presto/sql_load.jison +++ /dev/null @@ -1,271 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : LoadStatement - | ImportStatement - | ExportStatement - ; - -DataManipulation_EDIT - : LoadStatement_EDIT - | ImportStatement_EDIT - | ExportStatement_EDIT - ; - -LoadStatement - : 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($9); - } - ; - -LoadStatement_EDIT - : 'LOAD' 'CURSOR' - { - parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); - } - | 'LOAD' 'DATA' OptionalLocal 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); - } else { - parser.suggestKeywords(['INPATH']); - } - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath_EDIT OptionalOverwrite - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'CURSOR' - { - parser.suggestKeywords([ 'TABLE' ]); - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($9); - if (!$10) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($9); - } - | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath_EDIT OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($9); - } - ; - -OptionalOverwrite - : - | 'OVERWRITE' - ; - -OptionalLocal - : - | 'LOCAL' - ; - -ImportStatement - : 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - ; - -ImportStatement_EDIT - : 'IMPORT' 'CURSOR' OptionalTableWithPartition - { - if (!$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); - } else if (!$3.hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - } - | 'IMPORT' TableWithPartition 'CURSOR' - { - if ($2.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'IMPORT' TableWithPartition_EDIT - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath_EDIT OptionalHdfsLocation - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath HdfsLocation_EDIT - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['LOCATION']); - } - } - | 'IMPORT' 'CURSOR' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - { - if (!$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); - } else if (!$3.hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - } -| 'IMPORT' TableWithPartition_EDIT PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - | 'IMPORT' TableWithPartition 'CURSOR' PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - { - if ($2.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); - } - } - ; - -OptionalTableWithPartition - : - | TableWithPartition - ; - -TableWithPartition - : 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - if (!$4) { - $$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; - } else { - $$ = { hasExternal: true } - } - } - | 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($2); - if (!$3) { - $$ = { suggestKeywords: ['PARTITION'] }; - } - } - ; - -TableWithPartition_EDIT - : 'EXTERNAL' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXTERNAL' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - - | 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - ; - -ExportStatement - : 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; - -ExportStatement_EDIT - : 'EXPORT' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXPORT' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); - } else { - parser.suggestKeywords([ 'TO' ]); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['FOR replication()']); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['replication()']); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; diff --git a/src/jison/sql/presto/sql_main.jison b/src/jison/sql/presto/sql_main.jison deleted file mode 100644 index ed6dac5..0000000 --- a/src/jison/sql/presto/sql_main.jison +++ /dev/null @@ -1,3665 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - | ExplainClause DataDefinition - | ExplainClause DataManipulation - | ExplainClause QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - } - | CommonTableExpression 'CURSOR' - { - parser.suggestKeywords(['INSERT', 'SELECT']); - } - | ExplainClause_EDIT - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - | ExplainClause DataDefinition_EDIT - | ExplainClause DataManipulation_EDIT - | ExplainClause QuerySpecification_EDIT - | ExplainClause_EDIT DataDefinition - | ExplainClause_EDIT DataManipulation - | ExplainClause_EDIT QuerySpecification - ; - -NonReservedKeyword - : 'ABORT' - | 'ADD' - | 'ADMIN' - | 'AFTER' - | 'ANALYZE' - | 'ARCHIVE' - | 'AVRO' - | 'BUCKET' - | 'BUCKETS' - | 'CASCADE' - | 'CHANGE' - | 'CLUSTERED' - | 'COLLECTION' - | 'COLUMNS' - | 'COMMENT' - | 'COMPACT' - | 'COMPACTIONS' - | 'COMPUTE' - | 'CONCATENATE' - | 'DATA' - | 'DATABASES' - | 'DAY' - | 'DBPROPERTIES' - | 'DEFERRED' - | 'DEFINED' - | 'DELIMITED' - | 'DEPENDENCY' - | 'DIRECTORY' - | 'DISABLE' - | 'DOUBLE_PRECISION' - | 'ENABLE' - | 'ESCAPED' - | 'EXCHANGE' - | 'EXPLAIN' - | 'EXPORT' - | 'FIELDS' - | 'FILE' - | 'FILEFORMAT' - | 'FIRST' - | 'FORMAT' - | 'FUNCTIONS' - | 'HOUR' - | 'IDXPROPERTIES' - | 'INPATH' - | 'INPUTFORMAT' - | 'ITEMS' - | 'JAR' - | 'JSONFILE' - | 'KEY' - | 'KEYS' - | 'LINES' - | 'LOAD' - | 'LOCATION' - | 'LOCKS' - | 'MATCHED' - | 'MERGE' - | 'METADATA' - | 'MINUTE' - | 'MONTH' - | 'MSCK' - | 'NO_DROP' - | 'NORELY' - | 'NOSCAN' - | 'NOVALIDATE' - | 'OFFLINE' - | 'OPTION' - | 'ORC' - | 'OUTPUTFORMAT' - | 'OVERWRITE' - | 'OWNER' - | 'PARQUET' - | 'PARTITIONED' - | 'PARTITIONS' - | 'PERCENT' - | 'PRIVILEGES' - | 'PURGE' - | 'QUARTER' - | 'RCFILE' - | 'REBUILD' - | 'RECOVER' - | 'RELOAD' - | 'RELY' - | 'RENAME' - | 'REPAIR' - | 'REPLACE' - | 'REPLICATION' - | 'RESTRICT' - | 'ROLE' - | 'ROLES' - | 'SCHEMAS' - | 'SECOND' - | 'SEQUENCEFILE' - | 'SERDE' - | 'SERDEPROPERTIES' - | 'SETS' - | 'SHOW' - | 'SKEWED' - | 'SORTED' - | 'STATISTICS' - | 'STORED' - | 'STRING' - | 'STRUCT' - | 'TABLES' - | 'TBLPROPERTIES' - | 'TEMPORARY' - | 'TERMINATED' - | 'TEXTFILE' - | 'TIMESTAMP' - | 'TINYINT' - | 'TOUCH' - | 'TRANSACTIONAL' - | 'TRANSACTIONS' - | 'UNARCHIVE' - | 'UNIONTYPE' - | 'USE' - | 'USER' - | 'VIEW' - | 'WAIT' - | 'WEEK' - | 'YEAR' -// | 'ASC' // These cause conflicts, we could use a separate lexer state for DESCRIBE, ALTER, GRANT, REVOKE and SHOW -// | 'CLUSTER' -// | 'DESC' -// | 'DISTRIBUTE' -// | 'FORMATTED' -// | 'FUNCTION' -// | 'INDEX' -// | 'INDEXES' -// | 'LOCK' -// | 'SCHEMA' -// | 'SHOW_DATABASE' -// | 'SORT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -ExplainClause - : 'EXPLAIN' OptionalExplainTypes - ; - -ExplainClause_EDIT - : 'EXPLAIN' OptionalExplainTypes 'CURSOR' - { - if (!$2) { - parser.suggestDdlAndDmlKeywords([{ value: 'AUTHORIZATION', weight: 2 }, { value: 'DEPENDENCY', weight: 2 }, { value: 'EXTENDED', weight: 2 }]); - } else { - parser.suggestDdlAndDmlKeywords(); - } - } - ; - -OptionalExplainTypes - : - | 'AUTHORIZATION' - | 'DEPENDENCY' - | 'EXTENDED' - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | 'ADMIN' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AUTHORIZATION' - | 'AVG' - | 'AVRO' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BINARY' - | 'BOOLEAN' - | 'BUCKET' - | 'BUCKETS' - | 'BY' - | 'CACHE' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'CLUSTER' - | 'CLUSTERED' - | 'COLLECT_LIST' - | 'COLLECT_SET' - | 'COLLECTION' - | 'COLUMNS' - | 'COMMENT' - | 'COMPACTIONS' - | 'COMPARISON_OPERATOR' - | 'COMPUTE' - | 'CONF' - | 'CONSTRAINT' - | 'CORR' - | 'COUNT' - | 'COVAR_POP' - | 'COVAR_SAMP' - | 'CROSS' - | 'CUBE' - | 'CURRENT' - | 'DATA' - | 'DATABASE' - | 'DATABASES' - | 'DATE' - | 'DAY' - | 'DAYOFWEEK' - | 'DBPROPERTIES' - | 'DECIMAL' - | 'DEFERRED' - | 'DEFINED' - | 'DELIMITED' - | 'DEPENDENCY' - | 'DESC' - | 'DIRECTORY' - | 'DISTINCT' - | 'DISTRIBUTE' - | 'DISTRIBUTED' - | 'DOUBLE' - | 'DOUBLE_PRECISION' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'ESCAPED' - | 'EXISTS' - | 'EXTENDED' - | 'EXTERNAL' - | 'FALSE' - | 'FIELDS' - | 'FILE' - | 'FLOAT' - | 'FOLLOWING' - | 'FOR' - | 'FOREIGN' - | 'FORMAT' - | 'FORMATTED' - | 'FROM' - | 'FULL' - | 'FUNCTION' - | 'FUNCTIONS' - | 'GRANT' - | 'GROUP' - | 'GROUPING' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'HISTOGRAM_NUMERIC' - | 'HOUR' - | 'IDXPROPERTIES' - | 'IF' - | 'IN' - | 'INDEX' - | 'INDEXES' - | 'INNER' - | 'INPATH' - | 'INPUTFORMAT' - | 'INT' - | 'INTEGER' - | 'INTO' - | 'IS' - | 'ITEMS' - | 'JAR' - | 'JOIN' - | 'JSONFILE' - | 'KEY' - | 'KEYS' - | 'LATERAL' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'LINES' - | 'LOCAL' - | 'LOCATION' - | 'LOCK' - | 'LOCKS' - | 'MACRO' - | 'MAP' - | 'MATCHED' - | 'MAX' - | 'METADATA' - | 'MIN' - | 'MINUTE' - | 'MONTH' - | 'NONE' - | 'NORELY' - | 'NOSCAN' - | 'NOT' - | 'NOVALIDATE' - | 'NTILE' - | 'NULL' - | 'OF' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORC' - | 'ORDER' - | 'OUT' - | 'OUTER' - | 'OUTPUTFORMAT' - | 'OVER' - | 'OVERWRITE' - | 'OWNER' - | 'PARQUET' - | 'PARTITION' - | 'PARTITIONED' - | 'PARTITIONS' - | 'PERCENT' - | 'PERCENTILE' - | 'PERCENTILE_APPROX' - | 'PRECEDING' - | 'PRIMARY' - | 'PRIVILEGES' - | 'PURGE' - | 'QUARTER' - | 'RANGE' - | 'RCFILE' - | 'REBUILD' - | 'REFERENCES' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RELY' - | 'REPAIR' - | 'REPLICATION' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROLES' - | 'ROLLUP' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SCHEMAS' - | 'SECOND' - | 'SEMI' - | 'SEQUENCEFILE' - | 'SERDE' - | 'SERDEPROPERTIES' - | 'SET' - | 'SETS' - | 'SHOW_DATABASE' - | 'SINGLE_QUOTE' - | 'SKEWED' - | 'SMALLINT' - | 'SORTED' - | 'STATISTICS' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STORED' - | 'STORED_AS_DIRECTORIES' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'TABLES' - | 'TABLESAMPLE' - | 'TBLPROPERTIES' - | 'TEMPORARY' - | 'TERMINATED' - | 'TEXTFILE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRANSACTIONAL' - | 'TRANSACTIONS' - | 'TRUE' - | 'UNION' - | 'UNIONTYPE' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'USER' - | 'USING' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'VIEW' - | 'VIEWS' - | 'WAIT' - | 'WEEK' - | 'WHEN' - | 'WHERE' - | 'WINDOW' - | 'YEAR' - | '~' - ; - -DataDefinition - : DescribeStatement - ; - -DataDefinition_EDIT - : DescribeStatement_EDIT - ; - -// ===================================== Commonly used constructs ===================================== - -Commas - : ',' - | Commas ',' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - ; - -IndexOrIndexes - : 'INDEX' - | 'INDEXES' - ; - -DatabasesOrSchemas - : 'DATABASES' - | 'SCHEMAS' - ; - -RoleOrUser - : 'ROLE' - | 'USER' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalExtended - : - | 'EXTENDED' - ; - -OptionalExtendedOrFormatted - : - | 'EXTENDED' - | 'FORMATTED' - ; - -OptionalExternal - : - | 'EXTERNAL' - ; - -OptionallyFormattedIndex - : 'FORMATTED' IndexOrIndexes - | IndexOrIndexes - ; - -OptionallyFormattedIndex_EDIT - : 'FORMATTED' 'CURSOR' - { - parser.suggestKeywords(['INDEX', 'INDEXES']); - } - | 'CURSOR' IndexOrIndexes - { - parser.suggestKeywords(['FORMATTED']); - } - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalCascadeOrRestrict - : - | 'CASCADE' - | 'RESTRICT' - ; - -OptionalTemporary - : - | 'TEMPORARY' - ; - -OptionalTransactional - : - | 'TRANSACTIONAL' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : 'PARTITION' '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - | ConfigurationName '.' RegularIdentifier - | ConfigurationName '.' 'PARTIAL_CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnIdentifier_EDIT - | ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' ColumnIdentifier_EDIT - | ColumnIdentifier_EDIT ',' ColumnList - | ColumnList ',' ColumnIdentifier_EDIT ',' ColumnList - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - | ColumnIdentifier // Partial partition specs are allowed in some cases - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -OptionalHdfsLocation - : - | HdfsLocation - ; - -HdfsLocation - : 'LOCATION' HdfsPath - ; - -HdfsLocation_EDIT - : 'LOCATION' HdfsPath_EDIT - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain '.' ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : ColumnIdentifier_EDIT - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | BasicIdentifierChain '.' ColumnIdentifier_EDIT - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | BasicIdentifierChain '.' ColumnIdentifier_EDIT '.' BasicIdentifierChain - | ColumnIdentifier_EDIT '.' BasicIdentifierChain - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain '.' ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : ColumnIdentifier_EDIT - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | DerivedColumnChain '.' ColumnIdentifier_EDIT - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | DerivedColumnChain '.' ColumnIdentifier_EDIT '.' DerivedColumnChain - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | ColumnIdentifier_EDIT '.' DerivedColumnChain - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } - | RegularOrBacktickedIdentifier '[' ValueExpression ']' -> { identifier: { name: $1, keySet: true }, location: @1 } - | RegularOrBacktickedIdentifier '[' ']' -> { identifier: { name: $1, keySet: true }, location: @1 } - ; - -ColumnIdentifier_EDIT - : RegularOrBacktickedIdentifier '[' AnyCursor RightSquareBracketOrError -> { identifier: { name: $1 }, insideKey: true } - | RegularOrBacktickedIdentifier '[' ValueExpression_EDIT RightSquareBracketOrError -> { identifier: { name: $1 }} - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -RightSquareBracketOrError - : ']' - | error - ; - -// TODO: Support | DECIMAL(precision, scale) -- (Note: Available in Hive 0.13.0 and later) -PrimitiveType - : 'BIGINT' - | 'BINARY' - | 'BOOLEAN' - | 'CHAR' OptionalTypeLength - | 'DATE' - | 'DECIMAL' OptionalTypePrecision - | 'DOUBLE' - | 'DOUBLE_PRECISION' - | 'FLOAT' - | 'INT' - | 'INTEGER' - | 'SMALLINT' - | 'STRING' - | 'TIMESTAMP' - | 'TINYINT' - | 'VARCHAR' OptionalTypeLength - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== DESCRIBE statement ===================================== - -DescribeStatement - : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec - { - parser.addTablePrimary($3); - parser.addColumnLocation(@4, $4); - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - } - | 'DESCRIBE' DatabaseOrSchema OptionalExtended DatabaseIdentifier - { - parser.addDatabaseLocation(@4, [{ name: $4 }]); - } - | 'DESCRIBE' 'FUNCTION' OptionalExtended RegularIdentifier - ; - -DescribeStatement_EDIT - : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain_EDIT OptionalPartitionSpec - { - parser.addTablePrimary($3); - } - | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec - { - if (!$2) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - } - | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - if (!$2) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec - { - parser.addTablePrimary($3); - parser.suggestColumns(); - if (!$5) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain 'CURSOR' OptionalPartitionSpec - { - if (!$6) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec_EDIT - | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - - | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DESCRIBE' DatabaseOrSchema OptionalExtended DatabaseIdentifier_EDIT - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' DatabaseOrSchema OptionalExtended 'CURSOR' DatabaseIdentifier - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' 'FUNCTION' OptionalExtended 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' 'FUNCTION' OptionalExtended 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3 }; - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - $$ = { selectList: $3, tableExpression: $4 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - if ($3.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($3); - } - if ($3.suggestFunctions) { - parser.suggestFunctions(); - } - if ($3.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($3.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($3.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - } - | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.selectListNoTableSuggest($3, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - } - | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); - parser.checkForSelectListKeywords($3); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -CommonTableExpression - : 'WITH' WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]) - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (!$1.hasLateralViews && typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if (!$1.hasLateralViews && $1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if (!$1.hasLateralViews && $1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['CROSS', 'FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'LEFT SEMI', 'RIGHT', 'RIGHT OUTER']); - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'CROSS JOIN', weight: 1 }, - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList OptionalLateralViews - { - $$ = { tableReferenceList : $2, suggestKeywords: ['LATERAL VIEW'] } - if ($3) { - parser.yy.lateralViews = $3.lateralViews; - $$.hasLateralViews = true; - if ($3.suggestKeywords) { - $$.suggestKeywords = $$.suggestKeywords.concat($3.suggestKeywords); - } - } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT OptionalLateralViews - { - if ($3) { - parser.yy.lateralViews = $3.lateralViews; - } - } - | 'FROM' TableReferenceList OptionalLateralViews_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5, $6, $6, $7], - [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true, true, !$5, true]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $7 ? @7 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$5 && !$6 && !$7) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6, $7, $7, $8], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, true, !$6, true]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6 && !$7 && !$8; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6, $7, $7, $8], - [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, true, !$6, true]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6 && !$7 && !$8; - if (!$4 && !$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6, $7, $7, $8], - [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], - [true, true, true, !$6, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 && !$7 && !$8 }; - if (!$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $3, @3); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$6, $7, $8], - [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], - [true, true, true]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 && !$7 && !$8 }; - if (!$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $4, @4); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$7, $8], - [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], - [true, true]); - if ($5.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 5)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$7 && !$8 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $5, @5); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy 'CURSOR' OptionalLimitClause - { - var keywords = parser.getKeywordsForOptionalsLR([$8], [{ value: 'LIMIT', weight: 3 }], [true]); - if ($6.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$8 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = @6; - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause 'CURSOR' - { - $$ = { suggestKeywords: [], cursorAtEnd: true }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $7 ? @7 : undefined; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : 'GROUP' 'BY' GroupByColumnList OptionalGroupingSetsCubeOrRollup - { - $$ = { valueExpression: $4 ? false : $3 }; - if (!$4) { - $$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; - } - } - ; - -GroupByClause_EDIT - : 'GROUP' 'BY' GroupByColumnList_EDIT OptionalGroupingSetsCubeOrRollup - { - parser.suggestSelectListAliases(); - } - | 'GROUP' 'BY' 'CURSOR' OptionalGroupingSetsCubeOrRollup - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | 'GROUP' 'BY' GroupByColumnList OptionalGroupingSetsCubeOrRollup_EDIT - ; - -OptionalGroupingSetsCubeOrRollup - : - | GroupingSets - | 'WITH' 'CUBE' - | 'WITH' 'ROLLUP' - ; - -OptionalGroupingSetsCubeOrRollup_EDIT - : GroupingSets_EDIT - | 'WITH' 'CURSOR' - { - parser.suggestKeywords(['CUBE', 'ROLLUP']); - } - ; - -GroupingSets - : 'GROUPING' 'SETS' '(' ColumnGroupingSets ')' - ; - -GroupingSets_EDIT - : 'GROUPING' 'CURSOR' - { - parser.suggestKeywords(['SETS']); - } - | 'GROUPING' 'SETS' '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc - { - parser.suggestSelectListAliases(); - } - | AnyCursor OptionalAscOrDesc - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'DESC' - ; - -OptionalClusterOrDistributeBy - : - | ClusterOrDistributeBy - ; - -ClusterOrDistributeBy - : ClusterByClause - | DistributeByClause -> { suggestKeywords: ['SORT BY'] } - | DistributeByClause SortByClause - | SortByClause - ; - -ClusterOrDistributeBy_EDIT - : ClusterByClause_EDIT - | DistributeByClause_EDIT - | DistributeByClause SortByClause_EDIT - | DistributeByClause_EDIT SortByClause - | SortByClause_EDIT - ; - -ClusterByClause - : 'CLUSTER' 'BY' ColumnList - ; - -ClusterByClause_EDIT - : 'CLUSTER' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'CLUSTER' 'BY' 'CURSOR' - { - parser.suggestColumns(); - parser.suggestSelectListAliases(); - } - | 'CLUSTER' 'BY' ColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -DistributeByClause - : 'DISTRIBUTE' 'BY' ColumnList - ; - -DistributeByClause_EDIT - : 'DISTRIBUTE' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'DISTRIBUTE' 'BY' 'CURSOR' - { - parser.suggestColumns(); - parser.suggestSelectListAliases(); - } - | 'DISTRIBUTE' 'BY' ColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -SortByClause - : 'SORT' 'BY' SortByList -> $3 - ; - -SortByClause_EDIT - : 'SORT' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'SORT' 'BY' SortByList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -SortByList - : SortByIdentifier - | SortByList ',' SortByIdentifier -> $3 - ; - -SortByList_EDIT - : SortByIdentifier_EDIT - | SortByIdentifier_EDIT ',' SortByList - | SortByList ',' SortByIdentifier_EDIT - | SortByList ',' SortByIdentifier_EDIT ',' SortByList - ; - -SortByIdentifier - : ColumnIdentifier OptionalAscOrDesc - { - parser.addColumnLocation($1.location, [ $1.identifier ]); - $$ = $2; - } - ; - -SortByIdentifier_EDIT - : ColumnIdentifier_EDIT OptionalAscOrDesc - | AnyCursor OptionalAscOrDesc - { - parser.suggestColumns(); - } - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain '.' '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' -> $1 + $2 - | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | '.' 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor 'AS' RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType TablePrimary OptionalJoinCondition - { - if ($3 && $3.valueExpression) { - $$ = $3.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($3.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($3.suggestKeywords) { - $$.suggestKeywords = $3.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType -> { joinType: $1 } - | JoinType Joins -> { joinType: $1 } - ; - -Join_EDIT - : JoinType_EDIT TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType TablePrimary_EDIT OptionalJoinCondition - | JoinType TablePrimary JoinCondition_EDIT - | JoinType 'CURSOR' OptionalJoinCondition - { - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'JOIN' -> 'JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - ; - -JoinType_EDIT - : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER', 'SEMI'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalTableSample OptionalCorrelationName - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($3) { - $1.alias = $3.alias - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - var keywords = []; - // Right-to-left for cursor after TablePrimary - keywords = parser.getKeywordsForOptionalsLR([$3, $2], [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [true, true]); - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - keywords = parser.getKeywordsForOptionalsLR([$2], [{ value: 'AS', weight: 2 }], [true]); - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalTableSample OptionalCorrelationName - { - if ($3) { - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - } - | TableOrQueryName OptionalTableSample_EDIT OptionalCorrelationName - { - if ($3) { - $1.alias = $3.alias; - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - | DerivedTable_EDIT OptionalCorrelationName - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalTableSample - : - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn ')' - | 'TABLESAMPLE' '(' ExactNumericLiteral 'PERCENT' ')' - | 'TABLESAMPLE' '(' ExactNumericLiteral 'ROWS' ')' - | 'TABLESAMPLE' '(' 'REGULAR_IDENTIFIER' ')' - ; - -OptionalTableSample_EDIT - : 'TABLESAMPLE' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['BUCKET']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['OUT OF']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['OF']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn 'CURSOR' RightParenthesisOrError - { - if (!$8) { - parser.suggestKeywords(['ON']); - } - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn_EDIT RightParenthesisOrError - | 'TABLESAMPLE' '(' ExactNumericLiteral 'CURSOR' RightParenthesisOrError - { - if ($3.indexOf('.') === -1 ) { - parser.suggestKeywords(['PERCENT', 'ROWS']); - } else { - parser.suggestKeywords(['PERCENT']); - } - } - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | 'AS' QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | 'AS' PartialBacktickedIdentifier - | 'AS' QuotedValue_EDIT - | 'AS' 'CURSOR' - ; - -OptionalLateralViews - : - | OptionalLateralViews LateralView - { - if ($1 && $2.lateralView) { - $1.lateralViews.push($2.lateralView); - $$ = $1; - } else if ($2.lateralView) { - $$ = { lateralViews: [ $2.lateralView ] }; - } - if ($2.suggestKeywords) { - $$.suggestKeywords = $2.suggestKeywords - } - } - ; - -OptionalLateralViews_EDIT - : OptionalLateralViews LateralView_EDIT OptionalLateralViews - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - | ExtractFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - | ExtractFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'ARRAY' - | 'BINARY' - | 'IF' - | 'MAP' - | 'TRUNCATE' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : 'PARTITION' 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'PARTITION' 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(['BETWEEN', 'UNBOUNDED']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['PRECEDING']); - } - } - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | 'RANGE' - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | 'CURRENT' 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -OptionalAndFollowing - : - | 'AND' 'CURRENT' 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -OptionalWindowClause - : - | WindowClause - ; - -WindowClause - : 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression - ; - -WindowClause_EDIT - : 'WINDOW' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression_EDIT - ; - -CastFunction - : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ExtractFunction - : 'EXTRACT' '(' DateField 'FROM' ValueExpression ')' -> { types: ['INT', 'INTEGER'] } - ; - -ExtractFunction_EDIT - : 'EXTRACT' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - $$ = { types: ['INT', 'INTEGER'] } - } - | 'EXTRACT' '(' DateField 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['FROM']); - $$ = { types: ['INT', 'INTEGER'] } - } - | 'EXTRACT' '(' DateField 'FROM' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['INT', 'INTEGER'] } - } - | 'EXTRACT' '(' DateField 'FROM' ValueExpression_EDIT RightParenthesisOrError -> { types: ['INT', 'INTEGER'] } - | 'EXTRACT' '(' AnyCursor 'FROM' ValueExpression RightParenthesisOrError - { - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - $$ = { types: ['INT', 'INTEGER'] } - } - | 'EXTRACT' '(' DateField 'CURSOR' ValueExpression RightParenthesisOrError - { - parser.suggestKeywords(['FROM']); - $$ = { types: ['INT', 'INTEGER'] } - } - ; - -DateField - : 'DAY' - | 'DAYOFWEEK' - | 'HOUR' - | 'MINUTE' - | 'MONTH' - | 'QUARTER' - | 'SECOND' - | 'WEEK' - | 'YEAR' - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'AVG' - | 'COLLECT_LIST' - | 'COLLECT_SET' - | 'CORR' - | 'COVAR_POP' - | 'COVAR_SAMP' - | 'HISTOGRAM_NUMERIC' - | 'MAX' - | 'MIN' - | 'NTILE' - | 'PERCENTILE' - | 'PERCENTILE_APPROX' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARIANCE' - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -LateralView - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases -> { lateralView: { udtf: $4, tableAlias: $5, columnAliases: $6 }} - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier - { - if ($4.function.toLowerCase() === 'explode') { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; - } else if ($4.function.toLowerCase() === 'posexplode') { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; - } else { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: [] }, suggestKeywords: ['AS'] }; - } - } - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction LateralViewColumnAliases -> { lateralView: { udtf: $4, columnAliases: $5 }} - ; - -LateralView_EDIT - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier LateralViewColumnAliases - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases_EDIT - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor LateralViewColumnAliases - | 'LATERAL' 'VIEW' OptionalOuter 'CURSOR' - { - if (!$3) { - parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); - } else { - parser.suggestKeywords(['explode', 'posexplode']); - } - } - | 'LATERAL' 'CURSOR' - { - parser.suggestKeywords(['VIEW']); - } - ; - -OptionalOuter - : - | 'OUTER' - ; - -LateralViewColumnAliases - : 'AS' RegularOrBacktickedIdentifier -> [ $2 ] - | 'AS' RegularOrBacktickedIdentifier ',' RegularOrBacktickedIdentifier -> [ $2, $4 ] - ; - -LateralViewColumnAliases_EDIT - : 'AS' PartialBacktickedOrCursor - | 'AS' RegularOrBacktickedIdentifier ',' PartialBacktickedOrAnyCursor - ; diff --git a/src/jison/sql/presto/sql_set.jison b/src/jison/sql/presto/sql_set.jison deleted file mode 100644 index 6ff041a..0000000 --- a/src/jison/sql/presto/sql_set.jison +++ /dev/null @@ -1,62 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetRoleStatement - | SetSpecification - ; - -DataDefinition_EDIT - : SetRoleStatement_EDIT - | 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - parser.suggestKeywords(['ROLE']); - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption '.' RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; - -SetRoleStatement - : 'SET' 'ROLE' RegularIdentifier - | 'SET' 'ROLE' 'ALL' - | 'SET' 'ROLE' 'NONE' - ; - -SetRoleStatement_EDIT - : 'SET' 'ROLE' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'NONE']); - } - ; diff --git a/src/jison/sql/presto/sql_show.jison b/src/jison/sql/presto/sql_show.jison deleted file mode 100644 index 7f9b8de..0000000 --- a/src/jison/sql/presto/sql_show.jison +++ /dev/null @@ -1,512 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : ShowStatement - ; - -DataDefinition_EDIT - : ShowStatement_EDIT - ; - -ShowStatement - : ShowColumnsStatement - | ShowCompactionsStatement - | ShowConfStatement - | ShowCreateTableStatement - | ShowCurrentRolesStatement - | ShowDatabasesStatement - | ShowFunctionsStatement - | ShowGrantStatement - | ShowIndexStatement - | ShowLocksStatement - | ShowPartitionsStatement - | ShowRolesStatement - | ShowRoleStatement - | ShowTablesStatement - | ShowTableStatement - | ShowTblPropertiesStatement - | ShowTransactionsStatement - | ShowViewsStatement - ; - -ShowStatement_EDIT - : 'SHOW' 'CURSOR' - { - parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); - } - | 'SHOW' 'CURSOR' RegularOrBackTickedSchemaQualifiedName - { - // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT - if ($3.identifierChain && $3.identifierChain.length === 1 && $3.identifierChain[0].name.toLowerCase() === 'roles') { - parser.suggestKeywords(['CURRENT']); - parser.yy.locations.pop(); - } else { - parser.addTablePrimary($3); - } - } - | 'SHOW' 'CURSOR' LIKE SingleQuotedValue - { - parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); - } - | ShowColumnsStatement_EDIT - | ShowCreateTableStatement_EDIT - | ShowCurrentRolesStatement_EDIT - | ShowDatabasesStatement_EDIT - | ShowGrantStatement_EDIT - | ShowIndexStatement_EDIT - | ShowLocksStatement_EDIT - | ShowPartitionsStatement_EDIT - | ShowRoleStatement_EDIT - | ShowTablesStatement_EDIT - | ShowTableStatement_EDIT - | ShowTblPropertiesStatement_EDIT - | ShowViewsStatement_EDIT - ; - -ShowColumnsStatement - : 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier - | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier - ; - -ShowColumnsStatement_EDIT - : 'SHOW' 'COLUMNS' 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' 'COLUMNS' 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' - { - parser.suggestTables(); - } - | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' FromOrIn - { - parser.suggestTables(); - } - | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' FromOrIn RegularOrBacktickedIdentifier - { - parser.suggestTables(); - } - | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier FromOrIn 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -ShowCompactionsStatement - : 'SHOW' 'COMPACTIONS' - ; - -ShowConfStatement - : 'SHOW' 'CONF' ConfigurationName - ; - -ShowCreateTableStatement - : 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - } - ; - -ShowCreateTableStatement_EDIT - : 'SHOW' 'CREATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'SHOW' 'CREATE' TableOrView 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName_EDIT - { - if (parser.yy.result.suggestTables && $3.isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'SHOW' 'CREATE' 'CURSOR' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - parser.suggestKeywords(['TABLE']); - } - ; - -TableOrView - : 'TABLE' - | 'VIEW' -> { isView: true } - ; - -ShowCurrentRolesStatement - : 'SHOW' 'CURRENT' 'ROLES' - ; - -ShowCurrentRolesStatement_EDIT - : 'SHOW' 'CURRENT' 'CURSOR' - { - parser.suggestKeywords([ 'ROLES' ]); - } - ; - -ShowDatabasesStatement - : 'SHOW' DatabasesOrSchemas 'LIKE' SingleQuotedValue - ; - -ShowDatabasesStatement_EDIT - : 'SHOW' DatabasesOrSchemas 'CURSOR' - { - parser.suggestKeywords(['LIKE']); - } - ; - -ShowFunctionsStatement - : 'SHOW' 'FUNCTIONS' - | 'SHOW' 'FUNCTIONS' DoubleQuotedValue - ; - -ShowGrantStatement - : 'SHOW' 'GRANT' OptionalPrincipalName - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'ALL' - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'TABLE' SchemaQualifiedTableIdentifier - ; - -ShowGrantStatement_EDIT - : 'SHOW' 'GRANT' OptionalPrincipalName_EDIT - { - parser.suggestKeywords(['ON']); - } - | 'SHOW' 'GRANT' OptionalPrincipalName_EDIT 'ON' 'ALL' - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'TABLE']); - parser.suggestTables(); - } - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier_EDIT - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - } - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.suggestKeywords(['TABLE']); - } - | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier_EDIT - ; - -OptionalPrincipalName - : - | RegularIdentifier - ; - -OptionalPrincipalName_EDIT - : 'CURSOR' - | RegularIdentifier 'CURSOR' - ; - -ShowIndexStatement - : 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier - | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier - ; - -ShowIndexStatement_EDIT - : 'SHOW' OptionallyFormattedIndex - | 'SHOW' OptionallyFormattedIndex_EDIT - | 'SHOW' OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier - | 'SHOW' OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier - | 'SHOW' OptionallyFormattedIndex 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'SHOW' OptionallyFormattedIndex 'ON' 'CURSOR' - { - parser.suggestTables(); - } - | 'SHOW' OptionallyFormattedIndex 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['ON']); - } - | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier FromOrIn 'CURSOR' - { - parser.suggestDatabases(); - } - | 'SHOW' OptionallyFormattedIndex 'ON' 'CURSOR' FromOrIn RegularOrBacktickedIdentifier - { - parser.suggestTables({identifierChain: [{name: $6}]}); - } - ; - -ShowLocksStatement - : 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'EXTENDED' - { - parser.addTablePrimary($3); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec - { - parser.addTablePrimary($3); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'EXTENDED' - { - parser.addTablePrimary($3); - } - | 'SHOW' 'LOCKS' DatabaseOrSchema RegularOrBacktickedIdentifier - ; - -ShowLocksStatement_EDIT - : 'SHOW' 'LOCKS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestKeywords(['DATABASE', 'SCHEMA']); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['EXTENDED', 'PARTITION']); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT 'EXTENDED' - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['EXTENDED']); - } - | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec 'EXTENDED' - | 'SHOW' 'LOCKS' DatabaseOrSchema 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -ShowPartitionsStatement - : 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName PartitionSpec - { - parser.addTablePrimary($3); - } - ; - -ShowPartitionsStatement_EDIT - : 'SHOW' 'PARTITIONS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['PARTITION']); - } - | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec - ; - -ShowRoleStatement - : 'SHOW' 'ROLE' 'GRANT' RoleOrUser RegularIdentifier - ; - -ShowRoleStatement_EDIT - : 'SHOW' 'ROLE' 'CURSOR' - { - parser.suggestKeywords(['GRANT']); - } - | 'SHOW' 'ROLE' 'CURSOR' RoleOrUser RegularIdentifier - { - parser.suggestKeywords(['GRANT']); - } - | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' RegularIdentifier - { - parser.suggestKeywords(['ROLE', 'USER']); - } - ; - -ShowRolesStatement - : 'SHOW' 'ROLES' - ; - -ShowTableStatement - : 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec - ; - -ShowTableStatement_EDIT - : 'SHOW' 'TABLE' 'CURSOR' - { - parser.suggestKeywords(['EXTENDED']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' - { - if ($4) { - parser.suggestKeywords(['LIKE']); - } else { - parser.suggestKeywords(['FROM', 'IN', 'LIKE']); - } - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue - | 'SHOW' 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue - { - parser.suggestKeywords(['EXTENDED']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue - { - parser.suggestKeywords(['LIKE']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue PartitionSpec - | 'SHOW' 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec - { - parser.suggestKeywords(['EXTENDED']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue PartitionSpec - { - parser.suggestKeywords(['LIKE']); - } - | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' PartitionSpecList - { - parser.suggestKeywords(['PARTITION']); - } - ; - -ShowTablesStatement - : 'SHOW' 'TABLES' OptionalInDatabase - | 'SHOW' 'TABLES' OptionalInDatabase SingleQuotedValue - | 'SHOW' 'TABLES' OptionalInDatabase 'LIKE' SingleQuotedValue - ; - -ShowTablesStatement_EDIT - : 'SHOW' 'TABLES' OptionalInDatabase 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - } - ; - -ShowTblPropertiesStatement - : 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; - -ShowTblPropertiesStatement_EDIT - : 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'SHOW' 'TBLPROPERTIES' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - ; - -ShowTransactionsStatement - : 'SHOW' 'TRANSACTIONS' - ; - -ShowViewsStatement - : 'SHOW' 'VIEWS' OptionalInOrFromDatabase OptionalLike - ; - -ShowViewsStatement_EDIT - : 'SHOW' 'VIEWS' OptionalInOrFromDatabase OptionalLike 'CURSOR' - { - if (!$4 && !$3) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else if (!$4) { - parser.suggestKeywords(['LIKE']); - } - } - | 'SHOW' 'VIEWS' InOrFromDatabase_EDIT OptionalLike - | 'SHOW' 'VIEWS' OptionalInOrFromDatabase Like_EDIT - ; - -OptionalInOrFromDatabase - : - | 'IN' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@2, [ { name: $2 } ]); - } - | 'FROM' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@2, [ { name: $2 } ]); - } - ; - -InOrFromDatabase_EDIT - : 'IN' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'FROM' 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -OptionalLike - : - | 'LIKE' SingleQuotedValue - ; - -Like_EDIT - : 'LIKE' 'CURSOR' - ; diff --git a/src/jison/sql/presto/sql_update.jison b/src/jison/sql/presto/sql_update.jison deleted file mode 100644 index 18dd53f..0000000 --- a/src/jison/sql/presto/sql_update.jison +++ /dev/null @@ -1,124 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - if (!$6) { - parser.suggestKeywords([ 'WHERE' ]); - } - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql/presto/sql_use.jison b/src/jison/sql/presto/sql_use.jison deleted file mode 100644 index 0ceedb7..0000000 --- a/src/jison/sql/presto/sql_use.jison +++ /dev/null @@ -1,42 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -UseStatement - : 'USE' RegularIdentifier - { - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : 'USE' 'CURSOR' - { - parser.suggestDatabases(); - } - ; - - -// ===================================== Fin ===================================== diff --git a/src/jison/sql/presto/sql_valueExpression.jison b/src/jison/sql/presto/sql_valueExpression.jison deleted file mode 100644 index 3dcc339..0000000 --- a/src/jison/sql/presto/sql_valueExpression.jison +++ /dev/null @@ -1,839 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; diff --git a/src/jison/sql/presto/syntax_footer.jison b/src/jison/sql/presto/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/sql/presto/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/presto/syntax_header.jison b/src/jison/sql/presto/syntax_header.jison deleted file mode 100644 index 2d13c95..0000000 --- a/src/jison/sql/presto/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% diff --git a/src/jison/sqlStatementsParser.jison b/src/jison/sqlStatementsParser.jison deleted file mode 100644 index 9195d1c..0000000 --- a/src/jison/sqlStatementsParser.jison +++ /dev/null @@ -1,197 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%lex -%options flex -%x multiLineComment inLineComment singleQuote doubleQuote backTick -%% - -'/*' { this.begin("multiLineComment"); return 'PART_OF_STATEMENT'; } -[^*]+ { return 'PART_OF_STATEMENT'; } -[*][^/] { return 'PART_OF_STATEMENT'; } -<> { this.popState(); return 'PART_OF_STATEMENT'; } -'*/' { this.popState(); return 'PART_OF_STATEMENT'; } - -'--' { this.begin("inLineComment"); return 'PART_OF_STATEMENT'; } -[^\n]+ { return 'PART_OF_STATEMENT'; } -<> { this.popState(); return 'EOF'; } -[\n] { this.popState(); return 'PART_OF_STATEMENT'; } - -'"' { this.begin("doubleQuote"); return 'PART_OF_STATEMENT'; } -(?:\\["]|[^"])+ { return 'PART_OF_STATEMENT'; } -<> { this.popState(); return 'EOF'; } -'"' { this.popState(); return 'PART_OF_STATEMENT'; } - -'\'' { this.begin("singleQuote"); return 'PART_OF_STATEMENT'; } -(?:\\[']|[^'])+ { return 'PART_OF_STATEMENT'; } -<> { this.popState(); return 'EOF'; } -'\'' { this.popState(); return 'PART_OF_STATEMENT'; } - -'`' { this.begin("backTick"); return 'PART_OF_STATEMENT'; } -[^`]+ { - if (parser.yy.usePreceding) { - parser.yy.useDatabase = yytext; - parser.yy.usePreceding = false; - } - return 'PART_OF_STATEMENT'; - } -<> { this.popState(); return 'EOF'; } -'`' { this.popState(); return 'PART_OF_STATEMENT'; } - -[^"\/;'`-]+ { - if (!parser.yy.firstToken) { - var firstWordMatch = yytext.match(/[a-zA-Z_]+/); - if (firstWordMatch) { - parser.yy.firstToken = firstWordMatch[0]; - } - var useDatabaseMatch = yytext.match(/USE\s+(\S+)/i); - if (useDatabaseMatch) { - parser.yy.useDatabase = useDatabaseMatch[1]; - } else { - // For backticked - parser.yy.usePreceding = /USE/i.test(yytext); - } - } else if (parser.yy.usePreceding) { - parser.yy.useDatabase = yytext; - parser.yy.usePreceding = false; - } - return 'PART_OF_STATEMENT'; - } -[-][^;-]? { return 'PART_OF_STATEMENT'; } -[/][^;*]? { return 'PART_OF_STATEMENT'; } - -';' { return ';'; } - -<> { return 'EOF'; } - -. { /* To prevent console logging of unknown chars */ } -/lex - -%start SqlStatementsParser - -%% - -SqlStatementsParser - : Statements 'EOF' - { - parser.removeTrailingWhiteSpace($1); - return $1; - } - | OneOrMoreSeparators Statements 'EOF' - { - parser.handleLeadingStatements($1, $2); - parser.removeTrailingWhiteSpace($2); - return $2; - } - | OneOrMoreSeparators Statements OneOrMoreSeparators 'EOF' - { - parser.handleLeadingStatements($1, $2); - parser.handleTrailingStatements($2, $3); - parser.removeTrailingWhiteSpace($2); - return $2; - } - | Statements OneOrMoreSeparators 'EOF' - { - parser.handleTrailingStatements($1, $2); - parser.removeTrailingWhiteSpace($1); - return $1; - } - | OneOrMoreSeparators 'EOF' - { - var result = []; - parser.handleLeadingStatements($1, result); - return result; - } - | 'EOF' - { - var result = []; - parser.addEntry(result, 'statement', $1, @1); - return result; - } - ; - -Statements - : StatementParts - { - $$ = []; - parser.addEntry($$, 'statement', $1, @1); - } - | Statements OneOrMoreSeparators StatementParts - { - parser.handleTrailingStatements($1, $2); - parser.addEntry($1, 'statement', $3, @3); - } - ; - -StatementParts - : 'PART_OF_STATEMENT' - | StatementParts 'PART_OF_STATEMENT' -> $1 + $2; - ; - -OneOrMoreSeparators - : ';' -> [@1] - | OneOrMoreSeparators ';' - { - $1.push(@2); - } - ; - -%% - -parser.addEntry = function (statements, type, statement, location) { - if (parser.yy.firstToken) { - if (parser.yy.useDatabase) { - statements.push({ type: type, statement: statement, location: location, firstToken: parser.yy.firstToken, database: parser.yy.useDatabase }); - delete parser.yy.useDatabase; - } else { - statements.push({ type: type, statement: statement, location: location, firstToken: parser.yy.firstToken }); - } - delete parser.yy.firstToken; - } else { - statements.push({ type: type, statement: statement, location: location }); - } -} - -parser.handleLeadingStatements = function (emptyStatements, result) { - for (var i = emptyStatements.length - 1; i >= 0; i--) { - result.unshift({ type: 'statement', statement: ';', location: emptyStatements[i] }); - } -} - -parser.handleTrailingStatements = function (result, emptyStatements) { - var lastStatement = result[result.length - 1]; - lastStatement.statement += ';' - lastStatement.location = { - first_line: lastStatement.location.first_line, - first_column: lastStatement.location.first_column, - last_line: emptyStatements[0].last_line, - last_column: emptyStatements[0].last_column - } - if (emptyStatements.length > 1) { - for (var i = 1; i < emptyStatements.length; i++) { - result.push({ type: 'statement', statement: ';', location: emptyStatements[i] }); - } - } -} - -parser.removeTrailingWhiteSpace = function (result) { - if (result.length > 1) { - var lastStatement = result[result.length - 1]; - if (/^\s+$/.test(lastStatement.statement)) { - result.pop() - } - } -} diff --git a/src/jison/sql_alter.jison b/src/jison/sql_alter.jison deleted file mode 100644 index 4e980fd..0000000 --- a/src/jison/sql_alter.jison +++ /dev/null @@ -1,1125 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AlterStatement - ; - -DataDefinition_EDIT - : AlterStatement_EDIT - ; - -AlterStatement - : AlterDatabase - | AlterIndex - | AlterTable - | AlterView - | Msck - | ReloadFunction - | CommentOn - ; - -AlterStatement_EDIT - : AlterDatabase_EDIT - | AlterIndex_EDIT - | AlterTable_EDIT - | AlterView_EDIT - | Msck_EDIT - | ReloadFunction_EDIT - | CommentOn_EDIT - | 'ALTER' 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['DATABASE', 'INDEX', 'SCHEMA', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - } - ; - -AlterDatabase - : 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' ImpalaRoleOrUser RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - ; - -AlterDatabase_EDIT - : 'ALTER' DatabaseOrSchema 'CURSOR' - { - if (parser.isHive()) { - parser.suggestDatabases(); - } - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - if (parser.isHive()) { - parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); - } - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - if (parser.isHive()) { - parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['OWNER']); - } - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation_EDIT - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - parser.suggestKeywords(['ROLE', 'USER']); - } - | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification_EDIT - { - parser.addDatabaseLocation(@3, [ { name: $3 } ]); - } - ; - -AlterIndex - : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'REBUILD' - { - parser.addTablePrimary($5); - } - ; - -AlterIndex_EDIT - : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($5); - } - | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($5); - if (!$6) { - parser.suggestKeywords(['PARTITION', 'REBUILD']); - } else { - parser.suggestKeywords(['REBUILD']); - } - } - ; - -AlterTable - : AlterTableLeftSide AnyAdd OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached - | AlterTableLeftSide AnyAdd OptionalIfNotExists 'RANGE' 'PARTITION' RangePartitionSpec - | AlterTableLeftSide AnyAdd OptionalIfNotExists 'RANGE' 'PARTITION_VALUE' '=' UnsignedValueSpecification - | AlterTableLeftSide AnyAdd 'CONSTRAINT' RegularOrBacktickedIdentifier HivePrimaryKeySpecification - | AlterTableLeftSide AnyAdd 'CONSTRAINT' RegularOrBacktickedIdentifier HiveForeignKeySpecification - | AlterTableLeftSide AnyRename 'TO' RegularOrBackTickedSchemaQualifiedName - | AlterTableLeftSide HiveSpecificOperations - | AlterTableLeftSide ImpalaSpecificOperations - | AlterTableLeftSide DropOperations - | AlterTableLeftSide OptionalPartitionOperations - | AlterTableLeftSide PartitionSpec OptionalPartitionOperations - | AlterTableLeftSide 'RECOVER' 'PARTITIONS' - ; - -AlterTable_EDIT - : AlterTableLeftSide_EDIT - | AlterTableLeftSide_EDIT AnyAdd OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached - | AlterTableLeftSide_EDIT AnyRename 'TO' RegularOrBackTickedSchemaQualifiedName - | AlterTableLeftSide_EDIT HiveSpecificOperations - | AlterTableLeftSide_EDIT ImpalaSpecificOperations - | AlterTableLeftSide_EDIT DropOperations - | AlterTableLeftSide_EDIT OptionalPartitionOperations - | AlterTableLeftSide_EDIT PartitionSpec OptionalPartitionOperations - | AlterTableLeftSide AnyAdd OptionalIfNotExists 'CURSOR' - { - if (!$3 && parser.isImpala()) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else if (!$3 && parser.isHive()) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); - } else if (parser.isImpala()) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } - } - | AlterTableLeftSide AnyReplace 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - | AlterTableLeftSide AnyAdd OptionalIfNotExists_EDIT - | AlterTableLeftSide AnyAdd OptionalIfNotExists PartitionSpec HdfsLocation_EDIT OptionalPartitionSpecs OptionalCachedInOrUncached - | AlterTableLeftSide AnyAdd OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs_EDIT OptionalCachedInOrUncached - | AlterTableLeftSide AnyAdd OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs CachedIn_EDIT - | AlterTableLeftSide AnyAdd OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached 'CURSOR' - { - if (parser.isHive()) { - if (!$5 && !$6 && !$7) { - parser.suggestKeywords(['LOCATION', 'PARTITION']); - } else if ($6 && $6.suggestKeywords) { - var keywords = parser.createWeightedKeywords($6.suggestKeywords, 2); - keywords.push({ value: 'PARTITION', weight: 1 }); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords(['PARTITION']); - } - } else if (parser.isImpala()) { - if (!$5 && !$6 && !$7) { - parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); - } else if (!$7) { - parser.suggestKeywords(['CACHED IN', 'UNCACHED']); - } else if ($7 && $7.suggestKeywords) { - parser.suggestKeywords($7.suggestKeywords); - } - } - } - | AlterTableLeftSide AnyAdd OptionalIfNotExists PartitionSpec_EDIT OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedIn - | AlterTableLeftSide AnyAdd OptionalIfNotExists 'RANGE' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AlterTableLeftSide AnyAdd OptionalIfNotExists 'RANGE' 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE']); - } - | AlterTableLeftSide AnyAdd OptionalIfNotExists 'RANGE' 'PARTITION_VALUE' 'CURSOR' - { - parser.suggestKeywords(['=']); - } - | AlterTableLeftSide AnyAdd OptionalIfNotExists 'RANGE' 'PARTITION' RangePartitionSpec_EDIT - | AlterTableLeftSide AnyAdd 'CONSTRAINT' 'CURSOR' - | AlterTableLeftSide AnyAdd 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FOREIGN KEY', 'PRIMARY KEY']); - } - | AlterTableLeftSide AnyAdd 'CONSTRAINT' RegularOrBacktickedIdentifier HivePrimaryKeySpecification_EDIT - | AlterTableLeftSide AnyAdd 'CONSTRAINT' RegularOrBacktickedIdentifier HiveForeignKeySpecification_EDIT - | AlterTableLeftSide HiveSpecificOperations_EDIT - | AlterTableLeftSide ImpalaSpecificOperations_EDIT - | AlterTableLeftSide OptionalPartitionOperations_EDIT - | AlterTableLeftSide DropOperations_EDIT - | AlterTableLeftSide 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', - 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', - 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', - 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', - 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', - 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', - 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', - 'SET ROW FORMAT', 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - } - } - | AlterTableLeftSide PartitionSpec 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', - 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', - 'SET SERDE', 'SET SERDEPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - } - } - | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - | AlterTableLeftSide PartitionSpec 'SET' 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); - } - } - | AlterTableLeftSide 'SET' 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'OWNER ROLE', 'OWNER USER', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); - } - } - | AlterTableLeftSide PartitionSpec OptionalPartitionOperations_EDIT - | AlterTableLeftSide AnyRename 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | AlterTableLeftSide AnyRename 'TO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - } - | AlterTableLeftSide 'RECOVER' 'CURSOR' - { - parser.suggestKeywords(['PARTITIONS']); - } - ; - -HiveSpecificOperations - : ClusteredBy - | 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories - | HiveExchange - | 'RECOVER' 'PARTITIONS' - | 'TOUCH' OptionalPartitionSpec - | HiveArchiveOrUnArchive PartitionSpec - | 'NOT' 'SKEWED' - | 'NOT' 'STORED_AS_DIRECTORIES' - | 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList - | 'SET' 'OWNER' PrincipalSpecification - | PartitionSpec 'RENAME' 'TO' PartitionSpec - | PartitionSpec AnyChange 'COLUMN' ParenthesizedColumnSpecificationList OptionalHiveCascadeOrRestrict - ; - -HiveSpecificOperations_EDIT - : HiveArchiveOrUnArchive 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | HiveArchiveOrUnArchive PartitionSpec_EDIT - | ClusteredBy_EDIT - | HiveExchange_EDIT - | 'NOT' 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); - } - } - | 'NOT' 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS DIRECTORIES']); - } - | 'NOT' 'STORED' 'AS' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORIES']); - } - | PartitionSpec 'RENAME' 'CURSOR' - { - parser.suggestKeywords(['TO PARTITION']); - } - | PartitionSpec 'RENAME' 'TO' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'RECOVER' 'CURSOR' - { - parser.suggestKeywords(['PARTITIONS']); - } - | 'SET' 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['LOCATION']); - } - | 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList_EDIT - | 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SET' 'OWNER' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'SET' 'OWNER' PrincipalSpecification_EDIT - | 'SKEWED' 'BY' ParenthesizedColumnList_EDIT - | 'SKEWED' 'BY' ParenthesizedColumnList_EDIT 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories - | 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['STORED AS DIRECTORIES']); - } - } - | 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories_EDIT - | 'TOUCH' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'TOUCH' OptionalPartitionSpec_EDIT - ; - -ImpalaSpecificOperations - : 'ALTER' OptionalImpalaColumn ColumnIdentifier 'SET' KuduStorageAttribute SetValue - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'ALTER' OptionalImpalaColumn ColumnIdentifier 'DROP' 'DEFAULT' - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'SET' 'COLUMN' 'STATS' ColumnIdentifier ParenthesizedStatsList - { - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | 'SET' 'OWNER' ImpalaRoleOrUser RegularOrBacktickedIdentifier - ; - -ImpalaSpecificOperations_EDIT - : 'ALTER' OptionalImpalaColumn 'CURSOR' - { - if (parser.isImpala()) { - if (!$2) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - } - } - | 'ALTER' OptionalImpalaColumn ColumnIdentifier 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', - 'SET ENCODING']); - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - } - | 'ALTER' OptionalImpalaColumn ColumnIdentifier 'DROP' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['DEFAULT']); - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - } - | 'ALTER' OptionalImpalaColumn ColumnIdentifier 'SET' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - } - | 'ALTER' OptionalImpalaColumn ColumnIdentifier 'SET' KuduStorageAttribute 'CURSOR' - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'SET' 'COLUMN' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | 'SET' 'COLUMN' 'STATS' 'CURSOR' - { - parser.suggestColumns(); - } - | 'SET' 'COLUMN' 'STATS' ColumnIdentifier 'CURSOR' - { - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | 'SET' 'COLUMN' 'STATS' ColumnIdentifier ParenthesizedStatsList_EDIT - { - parser.addColumnLocation($4.location, [ $4.identifier ]); - } - | 'SET' 'OWNER' 'CURSOR' - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | 'SET' 'OWNER' ImpalaRoleOrUser 'CURSOR' - ; - -KuduStorageAttribute - : 'BLOCK_SIZE' - | 'COMMENT' - | 'COMPRESSION' - | 'DEFAULT' - | 'ENCODING' - ; - -OptionalImpalaColumn - : - | 'COLUMN' - ; - -ParenthesizedStatsList - : '(' StatsList ')' - ; - -ParenthesizedStatsList_EDIT - : '(' StatsList_EDIT RightParenthesisOrError - ; - -StatsList - : StatsAssignment - | StatsList ',' StatsAssignment - ; - -StatsList_EDIT - : StatsAssignment_EDIT - | StatsList ',' StatsAssignment_EDIT - | StatsList ',' StatsAssignment_EDIT ',' StatsList - | StatsAssignment_EDIT ',' StatsList - ; - -StatsAssignment - : QuotedValue '=' QuotedValue - ; - -StatsAssignment_EDIT - : 'CURSOR' - { - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - } - ; - -OptionalPartitionOperations - : 'SET' AnyFileFormat FileFormat - | 'SET' HdfsLocation - | 'SET' HiveOrImpalaTblproperties ParenthesizedPropertyAssignmentList - | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties - | 'SET' HiveOrImpalaSerdeproperties ParenthesizedPropertyAssignmentList - | 'SET' CachedIn OptionalWithReplication - | 'SET' 'ROW' 'FORMAT' ImpalaRowFormat - | 'SET' 'UNCACHED' - | AddReplaceColumns - | 'CONCATENATE' - | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties - | HiveEnableOrDisable HiveNoDropOrOffline - | AnyChange OptionalHiveColumn ColumnIdentifier ColumnSpecification OptionalHiveFirstOrAfter OptionalHiveCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - ; - -OptionalPartitionOperations_EDIT - : AddReplaceColumns_EDIT - | AnyChange OptionalHiveColumn 'CURSOR' - { - if (parser.isHive() && !$2) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - } - | AnyChange OptionalHiveColumn ColumnIdentifier ColumnSpecification_EDIT OptionalHiveFirstOrAfter OptionalHiveCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | AnyChange OptionalHiveColumn ColumnIdentifier ColumnSpecification OptionalHiveFirstOrAfter OptionalHiveCascadeOrRestrict 'CURSOR' - { - if (parser.isHive() && !$5 && !$6) { - if ($4.suggestKeywords) { - var keywords = parser.createWeightedKeywords($4.suggestKeywords, 3); - keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - } - } else if (parser.isHive() && $5 && !$6) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | AnyChange OptionalHiveColumn ColumnIdentifier ColumnSpecification OptionalHiveFirstOrAfter_EDIT OptionalHiveCascadeOrRestrict - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties 'CURSOR' - { - if (!$3 && !$4) { - parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); - } else if (!$4) { - parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); - } - } - | 'COMPACT' QuotedValue AndWait_EDIT OptionalWithOverwriteTblProperties - | 'COMPACT' QuotedValue OptionalAndWait WithOverwriteTblProperties_EDIT - | HiveEnableOrDisable 'CURSOR' - { - parser.suggestKeywords(['NO_DROP', 'OFFLINE']); - } - | HiveEnableOrDisable HiveNoDropOrOffline_EDIT - | 'SET' AnyFileFormat 'CURSOR' - { - parser.suggestFileFormats(); - } - | 'SET' HdfsLocation_EDIT - | 'SET' CachedIn_EDIT - | 'SET' CachedIn OptionalWithReplication 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['WITH REPLICATION =']); - } - } - | 'SET' CachedIn WithReplication_EDIT - | 'SET' 'ROW' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['FORMAT']); - } - } - | 'SET' 'ROW' 'FORMAT' 'CURSOR' - { - parser.suggestKeywords(['DELIMITED']); - } - | 'SET' 'ROW' 'FORMAT' ImpalaRowFormat 'CURSOR' - { - if ($4.suggestKeywords) { - parser.suggestKeywords($4.suggestKeywords); - } - } - | 'SET' 'ROW' 'FORMAT' ImpalaRowFormat_EDIT - | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['WITH SERDEPROPERTIES']); - } - } - | 'SET' 'SERDE' QuotedValue WithSerdeproperties_EDIT - ; - -OptionalAndWait - : - | 'AND' 'WAIT' - ; - -AndWait_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['WAIT']); - } - ; - -OptionalWithOverwriteTblProperties - : - | 'WITH' 'OVERWRITE' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -WithOverwriteTblProperties_EDIT - : AnyWith 'CURSOR' - { - parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); - } - | 'WITH' 'OVERWRITE' 'CURSOR' - { - parser.suggestKeywords(['TBLPROPERTIES']); - } - ; - -AddReplaceColumns - : AddOrReplace AnyColumns ParenthesizedColumnSpecificationList OptionalHiveCascadeOrRestrict - ; - -AddReplaceColumns_EDIT - : AddOrReplace AnyColumns ParenthesizedColumnSpecificationList_EDIT OptionalHiveCascadeOrRestrict - | AddOrReplace AnyColumns ParenthesizedColumnSpecificationList OptionalHiveCascadeOrRestrict 'CURSOR' - { - if (parser.isHive() && !$4) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - } - ; - -AnyColumns - : 'COLUMNS' - | 'COLUMNS' - ; - -HiveExchange - : 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName - ; - -HiveExchange_EDIT - : 'EXCHANGE' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'EXCHANGE' ExchangePartitionSpec 'CURSOR' - { - parser.suggestKeywords(['WITH TABLE']); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName_EDIT - | 'EXCHANGE' ExchangePartitionSpec_EDIT - | 'EXCHANGE' ExchangePartitionSpec_EDIT 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName - ; - -ExchangePartitionSpec - : 'PARTITION' '(' OneOrMorePartitionSpecLists ')' - | 'PARTITION' '(' PartitionSpecList ')' - ; - -ExchangePartitionSpec_EDIT - : 'PARTITION' '(' OneOrMorePartitionSpecLists_EDIT RightParenthesisOrError - | 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -OneOrMorePartitionSpecLists - : '(' PartitionSpecList ')' - | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList ')' - ; - -OneOrMorePartitionSpecLists_EDIT - : '(' PartitionSpecList_EDIT RightParenthesisOrError - | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -DropOperations - : 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalHivePurge - | 'DROP' 'CONSTRAINT' RegularOrBacktickedIdentifier - | 'DROP' OptionalIfExists 'RANGE' - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' RangePartitionSpec - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION_VALUE' '=' UnsignedValueSpecification - | 'DROP' 'COLUMN' ColumnIdentifier - { - parser.addColumnLocation($3.location, [ $3.identifier ]); - } - ; - -DropOperations_EDIT - : 'DROP' OptionalIfExists 'CURSOR' - { - if (parser.isHive() && !$2) { - parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); - } else if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } else if (parser.isImpala() && !$2) { - parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); - parser.suggestColumns(); - } else if (parser.isImpala()) { - parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); - } - } - | 'DROP' OptionalIfExists OneOrMorePartitionSpecs_EDIT OptionalHivePurge - | 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalHivePurge 'CURSOR' - { - if (parser.isHive() && !$4) { - parser.suggestKeywords(['PURGE']); - } - } - | 'DROP' 'CONSTRAINT' 'CURSOR' - | 'DROP' OptionalIfExists_EDIT - | 'DROP' OptionalIfExists 'RANGE' 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['VALUE']); - } - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION_VALUE' 'CURSOR' - { - parser.suggestKeywords(['=']); - } - | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' RangePartitionSpec_EDIT - | 'DROP' ColumnIdentifier_EDIT - | 'DROP' 'COLUMN' 'CURSOR' - { - parser.suggestColumns(); - } - | 'DROP' 'COLUMN' ColumnIdentifier_EDIT - ; - -AlterTableLeftSide - : 'ALTER' AnyTable SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterTableLeftSide_EDIT - : 'ALTER' AnyTable SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ALTER' AnyTable 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -AnyChange - : 'CHANGE' - | 'CHANGE' - ; - -AnyFileFormat - : 'FILEFORMAT' - | 'FILEFORMAT' - ; - -AnyAdd - : 'ADD' - | 'ADD' - ; - -AnyReplace - : 'REPLACE' - | 'REPLACE' - ; - -AddOrReplace - : AnyAdd - | AnyReplace - ; - -OptionalHiveFirstOrAfter - : - | HiveAfterOrFirst ColumnIdentifier - ; - -HiveAfterOrFirst - : 'AFTER' - | 'FIRST' - ; - -OptionalHiveFirstOrAfter_EDIT - : HiveAfterOrFirst 'CURSOR' - { - parser.suggestColumns(); - } - | HiveAfterOrFirst ColumnIdentifier_EDIT - ; - -OptionalHiveColumn - : - | 'COLUMN' - ; - -AnyRename - : 'RENAME' - | 'RENAME' - ; - -HiveEnableOrDisable - : 'ENABLE' - | 'DISABLE' - ; - -HiveNoDropOrOffline - : 'NO_DROP' OptionalCascade - | 'OFFLINE' - ; - -HiveNoDropOrOffline_EDIT - : 'NO_DROP' OptionalCascade 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['CASCADE']); - } - } - ; - -HiveOrImpalaSerdeproperties - : 'SERDEPROPERTIES' - | 'SERDEPROPERTIES' - ; - -HiveArchiveOrUnArchive - : 'ARCHIVE' - | 'UNARCHIVE' - ; - -OneOrMorePartitionSpecs - : PartitionSpec - | OneOrMorePartitionSpecs ',' PartitionSpec // Only Hive - ; - -OneOrMorePartitionSpecs_EDIT - : PartitionSpec_EDIT - | OneOrMorePartitionSpecs ',' AnyCursor - { - if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } - } - | OneOrMorePartitionSpecs ',' AnyCursor ',' OneOrMorePartitionSpecs - { - if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } - } - | AnyCursor ',' OneOrMorePartitionSpecs - { - if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } - } - | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT - | PartitionSpec_EDIT ',' OneOrMorePartitionSpecs - | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT ',' OneOrMorePartitionSpecs - ; - -OptionalHivePurge - : - | 'PURGE' - ; - -OptionalPartitionSpecs - : - | PartitionSpecWithLocationList - ; - -PartitionSpecWithLocationList - : PartitionSpecWithLocation - | PartitionSpecWithLocationList PartitionSpecWithLocation -> $2 - ; - -OptionalPartitionSpecs_EDIT - : PartitionSpecWithLocation_EDIT - | PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList - | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT - | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList - ; - -PartitionSpecWithLocation_EDIT - : PartitionSpec HdfsLocation_EDIT - | PartitionSpec_EDIT OptionalHdfsLocation - ; - -PartitionSpecWithLocation - : PartitionSpec OptionalHdfsLocation - { - if (!$2) { - $$ = { suggestKeywords: ['LOCATION'] }; - } - } - ; - -ParenthesizedSkewedLocationList - : '(' SkewedLocationList ')' - ; - -ParenthesizedSkewedLocationList_EDIT - : '(' SkewedLocationList_EDIT RightParenthesisOrError - ; - -SkewedLocationList - : SkewedLocation - | SkewedLocationList ',' SkewedLocation - ; - -SkewedLocationList_EDIT - : SkewedLocation_EDIT - | SkewedLocationList ',' SkewedLocation_EDIT - | SkewedLocationList ',' SkewedLocation_EDIT ',' SkewedLocationList - | SkewedLocation_EDIT ',' SkewedLocationList - ; - -SkewedLocation - : ColumnReference '=' QuotedValue - ; - -SkewedLocation_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - | AnyCursor '=' QuotedValue - { - parser.suggestColumns(); - } - | ColumnReference_EDIT '=' QuotedValue - | ColumnReferences '=' QuotedValue - ; - -OptionalStoredAsDirectories - : - | 'STORED_AS_DIRECTORIES' - ; - -OptionalStoredAsDirectories_EDIT - : 'STORED' 'CURSOR' - { - parser.suggestKeywords(['AS DIRECTORIES']); - } - | 'STORED' 'AS' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORIES']); - } - ; - -AlterView - : AlterViewLeftSide 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - | AlterViewLeftSide 'SET' 'OWNER' ImpalaRoleOrUser RegularOrBacktickedIdentifier - | AlterViewLeftSide AnyAs QuerySpecification - | AlterViewLeftSide 'RENAME' 'TO' RegularOrBacktickedIdentifier - | AlterViewLeftSide 'RENAME' 'TO' RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier - ; - -AlterView_EDIT - : AlterViewLeftSide_EDIT - | AlterViewLeftSide 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AS', 'RENAME TO', 'SET OWNER']); - } else { - parser.suggestKeywords(['AS']); - } - } - | AlterViewLeftSide 'SET' 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['TBLPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['OWNER ROLE', 'OWNER USER']); - } - } - | AlterViewLeftSide 'SET' 'OWNER' 'CURSOR' - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | AlterViewLeftSide 'SET' 'OWNER' ImpalaRoleOrUser 'CURSOR' - | AlterViewLeftSide AnyAs 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AlterViewLeftSide AnyAs QuerySpecification_EDIT - | AlterViewLeftSide 'RENAME' 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | AlterViewLeftSide 'RENAME' 'TO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - } - ; - - -AlterViewLeftSide - : 'ALTER' AnyView SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -AlterViewLeftSide_EDIT - : 'ALTER' AnyView SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | 'ALTER' AnyView 'CURSOR' - { - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - ; - -Msck - : 'MSCK' 'REPAIR' 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -Msck_EDIT - : 'MSCK' 'CURSOR' - { - parser.suggestKeywords(['REPAIR TABLE']); - } - | 'MSCK' 'REPAIR' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'MSCK' 'REPAIR' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'MSCK' 'REPAIR' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -ReloadFunction - : 'RELOAD' 'FUNCTION' - ; - -ReloadFunction_EDIT - : 'RELOAD' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION']); - } - ; - -CommentOn - : 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'IS' NullableComment - { - parser.addDatabaseLocation(@4, [ { name: $4 } ]); - } - ; - -CommentOn_EDIT - : 'COMMENT' 'CURSOR' - { - parser.suggestKeywords(['ON DATABASE']); - } - | 'COMMENT' 'ON' 'CURSOR' - { - parser.suggestKeywords(['DATABASE']); - } - | 'COMMENT' 'ON' 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.addDatabaseLocation(@4, [ { name: $4 } ]); - parser.suggestKeywords(['IS']); - } - | 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'IS' 'CURSOR' - { - parser.addDatabaseLocation(@4, [ { name: $4 } ]); - parser.suggestKeywords(['NULL']); - } - ; - -NullableComment - : QuotedValue - | 'NULL' - ; \ No newline at end of file diff --git a/src/jison/sql_analyze.jison b/src/jison/sql_analyze.jison deleted file mode 100644 index 0d64473..0000000 --- a/src/jison/sql_analyze.jison +++ /dev/null @@ -1,275 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : AnalyzeStatement - | RefreshStatement - | InvalidateStatement - | ComputeStatsStatement - ; - -DataDefinition_EDIT - : AnalyzeStatement_EDIT - | RefreshStatement_EDIT - | InvalidateStatement_EDIT - | ComputeStatsStatement_EDIT - ; - -AnalyzeStatement - : 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - } - ; - -AnalyzeStatement_EDIT - : 'ANALYZE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'ANALYZE' 'TABLE' 'CURSOR' - { - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); - } else { - parser.suggestKeywords(['COMPUTE STATISTICS']); - } - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['STATISTICS']); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' 'CURSOR' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$8, $9, $10], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns 'CURSOR' OptionalCacheMetadata OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$9, $10], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata 'CURSOR' OptionalNoscan - { - parser.addTablePrimary($3); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$10], [{ value: 'NOSCAN', weight: 1 }])); - } - | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($3); - } - | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - { - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($3); - } - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns_EDIT OptionalCacheMetadata OptionalNoscan - | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata_EDIT OptionalNoscan - ; - -OptionalForColumns - : - | ForColumns - ; - -ForColumns - : 'FOR' 'COLUMNS' - ; - -ForColumns_EDIT - : 'FOR' 'CURSOR' - { - parser.suggestKeywords(['COLUMNS']); - } - ; - -OptionalCacheMetadata - : - | CacheMetadata - ; - -CacheMetadata - : 'CACHE' 'METADATA' - ; - -CacheMetadata_EDIT - : 'CACHE' 'CURSOR' - { - parser.suggestKeywords(['METADATA']); - } - ; - -OptionalNoscan - : - | 'NOSCAN' - ; - -RefreshStatement - : 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($2); - } - | 'REFRESH' 'FUNCTIONS' DatabaseIdentifier - { - parser.addDatabaseLocation(@3, [{ name: $3 }]); - } - | 'REFRESH' 'AUTHORIZATION' - ; - -RefreshStatement_EDIT - : 'REFRESH' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['AUTHORIZATION', 'FUNCTIONS']); - } - | 'REFRESH' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($2); - if (!$3) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - | 'REFRESH' 'FUNCTIONS' 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -InvalidateStatement - : 'INVALIDATE' 'METADATA' - | 'INVALIDATE' 'METADATA' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - ; - -InvalidateStatement_EDIT - : 'INVALIDATE' 'CURSOR' - { - parser.suggestKeywords(['METADATA']); - } - | 'INVALIDATE' 'METADATA' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INVALIDATE' 'METADATA' SchemaQualifiedTableIdentifier_EDIT - | 'INVALIDATE' 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - parser.suggestKeywords(['METADATA']); - } - ; - -ComputeStatsStatement - : 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalImpalaTableSample - { - parser.addTablePrimary($3); - } - | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - } - ; - -ComputeStatsStatement_EDIT - : 'COMPUTE' 'CURSOR' - { - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - } - | 'COMPUTE' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier_EDIT - | 'COMPUTE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - } - | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalImpalaTableSample 'CURSOR' - { - parser.addTablePrimary($3); - if (!$5) { - parser.suggestKeywords(['TABLESAMPLE']); - } else if ($5.suggestKeywords) { - parser.suggestKeywords($5.suggestKeywords); - } - } - | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier ParenthesizedColumnList_EDIT OptionalImpalaTableSample - { - parser.addTablePrimary($3); - } - | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalImpalaTableSample_EDIT - { - parser.addTablePrimary($3); - } - | 'COMPUTE' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - parser.suggestKeywords(['INCREMENTAL']); - } - | 'COMPUTE' 'INCREMENTAL' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | 'COMPUTE' 'INCREMENTAL' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - parser.suggestKeywords(['STATS']); - } - | 'COMPUTE' 'INCREMENTAL' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec - { - parser.addTablePrimary($4); - if (!$6) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($4); - } - ; \ No newline at end of file diff --git a/src/jison/sql_create.jison b/src/jison/sql_create.jison deleted file mode 100644 index 5e2cf72..0000000 --- a/src/jison/sql_create.jison +++ /dev/null @@ -1,2075 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : CreateStatement - ; - -DataDefinition_EDIT - : CreateStatement_EDIT - ; - -CreateStatement - : DatabaseDefinition - | TableDefinition - | ViewDefinition - | RoleDefinition - | FunctionDefinition - | IndexDefinition - | MacroDefinition - ; - -CreateStatement_EDIT - : DatabaseDefinition_EDIT - | TableDefinition_EDIT - | ViewDefinition_EDIT - | FunctionDefinition_EDIT - | IndexDefinition_EDIT - | MacroDefinition_EDIT - | AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal 'CURSOR' - { - if ($4) { - parser.suggestKeywords(['TABLE']); - } else if (parser.isHive()) { - if ($2 && !$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); - } else if (!$2 && !$3) { - parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); - } else if ($3) { - parser.suggestKeywords(['TABLE']); - } - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - } - ; - -DatabaseDefinition - : AnyCreate DatabaseOrSchema OptionalIfNotExists - | AnyCreate DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinition_EDIT - : AnyCreate DatabaseOrSchema OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | AnyCreate DatabaseOrSchema OptionalIfNotExists_EDIT - | AnyCreate DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.addNewDatabaseLocation(@5, [{ name: $5 }]); - } - | AnyCreate DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - | AnyCreate DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' - { - parser.addNewDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -DatabaseDefinitionOptionals - : OptionalComment OptionalHdfsLocation OptionalHiveDbProperties - { - var keywords = []; - if (!$3 && parser.isHive()) { - keywords.push('WITH DBPROPERTIES'); - } - if (!$2 && !$3) { - keywords.push('LOCATION'); - } - if (!$1 && !$2 && !$3) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -DatabaseDefinitionOptionals_EDIT - : OptionalComment_INVALID OptionalHdfsLocation OptionalHiveDbProperties - | OptionalComment HdfsLocation_EDIT OptionalHiveDbProperties - ; - -OptionalHiveComment - : - | HiveComment - ; - -HiveComment - : 'COMMENT' QuotedValue - ; - -OptionalImpalaComment - : - | ImpalaComment - ; - -ImpalaComment - : 'COMMENT' QuotedValue - ; - -OptionalComment - : - | Comment - ; - -Comment - : HiveOrImpalaComment QuotedValue - ; - -OptionalComment_INVALID - : Comment_INVALID - ; - -Comment_INVALID - : HiveOrImpalaComment SINGLE_QUOTE - | HiveOrImpalaComment DOUBLE_QUOTE - | HiveOrImpalaComment SINGLE_QUOTE VALUE - | HiveOrImpalaComment DOUBLE_QUOTE VALUE - ; - - -OptionalHiveDbProperties - : - | HiveDbProperties - ; - -HiveDbProperties - : 'WITH' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList - | 'WITH' 'DBPROPERTIES' - | 'WITH' 'CURSOR' - { - parser.suggestKeywords(['DBPROPERTIES']); - } - ; - -ParenthesizedPropertyAssignmentList - : '(' PropertyAssignmentList ')' - ; - -PropertyAssignmentList - : PropertyAssignment - | PropertyAssignmentList ',' PropertyAssignment - ; - -PropertyAssignment - : QuotedValue '=' UnsignedValueSpecification - ; - -TableDefinition - : AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal AnyTable OptionalIfNotExists TableDefinitionRightPart - ; - -TableDefinition_EDIT - : AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal AnyTable OptionalIfNotExists TableDefinitionRightPart_EDIT - | AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal AnyTable OptionalIfNotExists 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal AnyTable OptionalIfNotExists_EDIT - ; - -TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - ; - -TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment PartitionedBy_EDIT OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy SortBy_EDIT OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - ClusteredBy_EDIT OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy SkewedBy_EDIT OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy RowFormat_EDIT OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat ImpalaWithSerdeproperties_EDIT OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties StoredAsOrBy_EDIT - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - HiveWithSerdeproperties_EDIT OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties HdfsLocation_EDIT OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation CachedIn_EDIT OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation CachedIn WithReplication_EDIT OptionalTblproperties OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment - OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy - OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties 'CURSOR' - { - var keywords = []; - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'LIKE', weight: 1 }); - if (parser.isImpala()) { - keywords.push({ value: 'LIKE PARQUET', weight: 1 }); - } - } else { - if (parser.isHive() && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'COMMENT', weight: 13 }); - } - if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'PARTITIONED BY', weight: 12 }); - if (parser.isImpala()) { - keywords.push({ value: 'PARTITION BY', weight: 12 }); - } - } - if (!$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'SORT BY', weight: 11 }); - } - if (parser.isImpala() && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'COMMENT', weight: 10 }); - } - if (parser.isHive() && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'CLUSTERED BY', weight: 9 }); - } - if (parser.isHive() && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'SKEWED BY', weight: 8 }); - } else if (parser.isHive() && $7 && $7.suggestKeywords && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords = keywords.concat(parser.createWeightedKeywords($7.suggestKeywords, 8)); // Get the last optional from SKEWED BY - } - if (!$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'ROW FORMAT', weight: 7 }); - } else if ($8 && $8.suggestKeywords && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords = keywords.concat(parser.createWeightedKeywords($8.suggestKeywords, 7)); - } - if (parser.isImpala() && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); - } - if (!$10 && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'STORED AS', weight: 5 }); - if (parser.isHive()) { - keywords.push({ value: 'STORED BY', weight: 5 }); - } - } - if (parser.isHive() && $10 && $10.storedBy && !$11 && !$12 && !$13 && !$14) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); - } - if (!$12 && !$13 && !$14) { - keywords.push({ value: 'LOCATION', weight: 4 }); - } - if (parser.isImpala() && !$13 && !$14) { - keywords.push({ value: 'CACHED IN', weight: 3 }, { value: 'UNCACHED', weight: 3 }); - } else if (parser.isImpala() && $13 && $13.suggestKeywords && !$14) { - keywords = keywords.concat(parser.createWeightedKeywords($13.suggestKeywords, 3)); - } - if (!$14) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - ; - -TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike - { - parser.addNewTableLocation(@1, $1, $2); - $$ = $2; - } - ; - -TableIdentifierAndOptionalColumnSpecification_EDIT - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT - | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike - ; - -OptionalColumnSpecificationsOrLike - : - | ParenthesizedColumnSpecificationList - | 'LIKE_PARQUET' HdfsPath -> [] - | 'LIKE' SchemaQualifiedTableIdentifier -> [] - ; - -OptionalColumnSpecificationsOrLike_EDIT - : ParenthesizedColumnSpecificationList_EDIT - | 'LIKE_PARQUET' HdfsPath_EDIT - | 'LIKE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (parser.isImpala()) { - parser.suggestKeywords(['PARQUET']); - } - } - | 'LIKE' SchemaQualifiedTableIdentifier_EDIT - ; - -ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' -> $2 - | '(' ColumnSpecificationList ',' ConstraintSpecification ')' -> $2 - ; - -ParenthesizedColumnSpecificationList_EDIT - : '(' ColumnSpecificationList_EDIT RightParenthesisOrError - | '(' ColumnSpecificationList ',' ConstraintSpecification_EDIT RightParenthesisOrError - | '(' ColumnSpecificationList ',' 'CURSOR' RightParenthesisOrError - { - if (parser.isImpala()) { - parser.suggestKeywords(['PRIMARY KEY']); - } else if (parser.isHive()) { - parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); - } - } - ; - -ColumnSpecificationList - : ColumnSpecification -> [$1] - | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) - ; - -ColumnSpecificationList_EDIT - : ColumnSpecification_EDIT - | ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecificationList ',' ColumnSpecification_EDIT - | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList - | ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($1); - } - | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($1); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' - { - parser.checkForKeywords($3); - } - | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList - { - parser.checkForKeywords($3); - } - ; - -ColumnSpecification - : ColumnIdentifier ColumnDataType OptionalColumnOptions - { - $$ = $1; - $$.type = $2; - var keywords = []; - if (parser.isImpala()) { - if (!$3['primary']) { - keywords.push('PRIMARY KEY'); - } - if (!$3['encoding']) { - keywords.push('ENCODING'); - } - if (!$3['compression']) { - keywords.push('COMPRESSION'); - } - if (!$3['default']) { - keywords.push('DEFAULT'); - } - if (!$3['block_size']) { - keywords.push('BLOCK_SIZE'); - } - if (!$3['null']) { - keywords.push('NOT NULL'); - keywords.push('NULL'); - } - } - if (!$3['comment']) { - keywords.push('COMMENT'); - if (parser.isHive() && $2.toLowerCase() === 'double') { - keywords.push({ value: 'PRECISION', weight: 2 }); - } - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -ColumnSpecification_EDIT - : ColumnIdentifier 'CURSOR' OptionalColumnOptions - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions - | ColumnIdentifier ColumnDataType ColumnOptions_EDIT - ; - -OptionalColumnOptions - : -> {} - | ColumnOptions - ; - -ColumnOptions - : ColumnOption - { - $$ = {}; - $$[$1] = true; - } - | ColumnOptions ColumnOption - { - $1[$2] = true; - } - ; - -ColumnOptions_EDIT - : ColumnOption_EDIT - | ColumnOption_EDIT ColumnOptions - | ColumnOptions ColumnOption_EDIT - | ColumnOptions ColumnOption_EDIT ColumnOptions - ; - -ColumnOption - : ImpalaPrimaryKey -> 'primary' - | 'ENCODING' RegularIdentifier -> 'encoding' - | 'COMPRESSION' RegularIdentifier -> 'compression' - | 'DEFAULT' NonParenthesizedValueExpressionPrimary -> 'default' - | 'BLOCK_SIZE' UnsignedNumericLiteral -> 'block_size' - | 'NOT' 'NULL' -> 'null' - | 'NULL' -> 'null' - | Comment -> 'comment' - ; - -ColumnOption_EDIT - : ImpalaPrimaryKey_EDIT - | 'NOT' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['NULL']); - } - } - ; - -ColumnDataType - : PrimitiveType - | ArrayType - | MapType - | StructType - | UnionType - | ArrayType_INVALID - | MapType_INVALID - | StructType_INVALID - | UnionType_INVALID - ; - -ColumnDataType_EDIT - : ArrayType_EDIT - | MapType_EDIT - | StructType_EDIT - | UnionType_EDIT - ; - -ArrayType - : 'ARRAY' '<' ColumnDataType '>' - ; - -ArrayType_INVALID - : 'ARRAY' '<' '>' - ; - -ArrayType_EDIT - : 'ARRAY' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError - ; - -MapType - : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' - ; - -MapType_INVALID - : 'MAP' '<' '>' - ; - -MapType_EDIT - : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError - | 'MAP' '<' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | 'MAP' '<' ',' AnyCursor GreaterThanOrError - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - ; - -StructType - : 'STRUCT' '<' StructDefinitionList '>' - ; - -StructType_INVALID - : 'STRUCT' '<' '>' - ; - -StructType_EDIT - : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError - ; - -StructDefinitionList - : StructDefinition - | StructDefinitionList ',' StructDefinition - ; - -StructDefinitionList_EDIT - : StructDefinition_EDIT - | StructDefinition_EDIT Commas - | StructDefinition_EDIT Commas StructDefinitionList - | StructDefinitionList ',' StructDefinition_EDIT - | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList - ; - -StructDefinition - : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment - ; - -StructDefinition_EDIT - : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | Commas RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' - { - parser.suggestKeywords(['COMMENT']); - } - | RegularOrBacktickedIdentifier ':' AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT - ; - -UnionType - : 'UNIONTYPE' '<' ColumnDataTypeList '>' - ; - -UnionType_INVALID - : 'UNIONTYPE' '<' '>' - ; - -UnionType_EDIT - : 'UNIONTYPE' '<' ColumnDataTypeList_EDIT GreaterThanOrError - ; - -ColumnDataTypeList - : ColumnDataType - | ColumnDataTypeList ',' ColumnDataType - ; - -ColumnDataTypeList_EDIT - : ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT - | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList - ; - -ColumnDataTypeListInner_EDIT - : Commas AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | Commas ColumnDataType_EDIT - | AnyCursor - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | ColumnDataType_EDIT - ; - -GreaterThanOrError - : '>' - | error - ; - -ConstraintSpecification - : ImpalaPrimaryKeySpecification - | HivePrimaryKeySpecification - | 'CONSTRAINT' RegularOrBacktickedIdentifier HiveForeignKeySpecification - | HivePrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier HiveForeignKeySpecification - ; - -ConstraintSpecification_EDIT - : ImpalaPrimaryKeySpecification_EDIT - | HivePrimaryKeySpecification_EDIT - | HivePrimaryKeySpecification ',' 'CURSOR' - { - parser.suggestKeywords(['CONSTRAINT']); - } - | HivePrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FOREIGN KEY']); - } - | HivePrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier HiveForeignKeySpecification_EDIT - | HivePrimaryKeySpecification_EDIT ',' 'CONSTRAINT' RegularOrBacktickedIdentifier HiveForeignKeySpecification - | 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FOREIGN KEY']); - } - | 'CONSTRAINT' RegularOrBacktickedIdentifier HiveForeignKeySpecification_EDIT - | 'CURSOR' 'CONSTRAINT' RegularOrBacktickedIdentifier HiveForeignKeySpecification - { - parser.suggestKeywords(['PRIMARY KEY']); - } - ; - -HivePrimaryKeySpecification - : HivePrimaryKey ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' - ; - -HivePrimaryKeySpecification_EDIT - : HivePrimaryKey_EDIT - | HivePrimaryKey ParenthesizedColumnList_EDIT - | HivePrimaryKey ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['DISABLE NOVALIDATE']); - } - | HivePrimaryKey ParenthesizedColumnList 'DISABLE' 'CURSOR' - { - parser.suggestKeywords(['NOVALIDATE']); - } - | HivePrimaryKey ParenthesizedColumnList_EDIT 'DISABLE' 'NOVALIDATE' - ; - -HiveForeignKeySpecification - : 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' OptionalRelyNoRely - { - parser.addTablePrimary($5); - } - ; - -HiveForeignKeySpecification_EDIT - : 'FOREIGN' 'CURSOR' - { - parser.suggestKeywords(['KEY']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList_EDIT - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['REFERENCES']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier_EDIT - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList_EDIT - { - parser.addTablePrimary($5); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'CURSOR' - { - parser.addTablePrimary($5); - parser.suggestKeywords(['DISABLE NOVALIDATE']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'CURSOR' - { - parser.addTablePrimary($5); - parser.suggestKeywords(['NOVALIDATE']); - } - | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' OptionalRelyNoRely 'CURSOR' - { - parser.addTablePrimary($5); - if (!$9) { - parser.suggestKeywords(['NORELY', 'RELY']); - } - } - ; - -OptionalRelyNoRely - : - | 'RELY' - | 'NORELY' - ; - -ImpalaPrimaryKeySpecification - : ImpalaPrimaryKey ParenthesizedColumnList - ; - -ImpalaPrimaryKeySpecification_EDIT - : ImpalaPrimaryKey_EDIT - | ImpalaPrimaryKey_EDIT ParenthesizedColumnList - | ImpalaPrimaryKey ParenthesizedColumnList_EDIT - ; - -ImpalaPrimaryKey - : 'PRIMARY' 'KEY' - ; - -ImpalaPrimaryKey_EDIT - : 'PRIMARY' 'CURSOR' - { - parser.suggestKeywords(['KEY']); - } - ; - -HivePrimaryKey - : 'PRIMARY' 'KEY' - ; - -HivePrimaryKey_EDIT - : 'PRIMARY' 'CURSOR' - { - parser.suggestKeywords(['KEY']); - } - ; - -OptionalPartitionedBy - : - | PartitionedBy - ; - -PartitionedBy - : HiveOrImpalaPartitioned 'BY' ParenthesizedColumnSpecificationList - | 'PARTITION' 'BY' HashClauses - | 'PARTITION' 'BY' HashClauses ',' RangeClause - | 'PARTITION' 'BY' RangeClause - ; - -PartitionedBy_EDIT - : HiveOrImpalaPartitioned 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | HiveOrImpalaPartitioned 'CURSOR' ParenthesizedColumnSpecificationList - { - parser.suggestKeywords(['BY']); - } - | HiveOrImpalaPartitioned 'BY' ParenthesizedColumnSpecificationList_EDIT - | HiveOrImpalaPartitioned ParenthesizedColumnSpecificationList_EDIT - | 'PARTITION' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'PARTITION' 'BY' 'CURSOR' - { - parser.suggestKeywords(['HASH', 'RANGE']); - } - | 'PARTITION' 'BY' HashClauses_EDIT - | 'PARTITION' 'BY' RangeClause_EDIT - | 'PARTITION' 'BY' HashClauses ',' 'CURSOR' - { - parser.suggestKeywords(['HASH', 'RANGE']); - } - | 'PARTITION' 'BY' HashClauses ',' RangeClause_EDIT - | 'PARTITION' 'BY' HashClauses_EDIT ',' RangeClause - ; - -HashClauses - : HashClause - | HashClauses ',' HashClause - ; - -HashClauses_EDIT - : HashClause_EDIT - | HashClauses ',' HashClause_EDIT - | HashClauses ',' HashClause_EDIT ',' HashClauses - ; - -HashClause - : 'HASH' OptionalParenthesizedColumnList 'PARTITIONS' UnsignedNumericLiteral - ; - -HashClause_EDIT - : 'HASH' OptionalParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['PARTITIONS']); - } - | 'HASH' ParenthesizedColumnList_EDIT - | 'HASH' OptionalParenthesizedColumnList 'PARTITIONS' 'CURSOR' - | 'HASH' ParenthesizedColumnList_EDIT 'PARTITIONS' UnsignedNumericLiteral - ; - -RangeClause - : AnyRange ParenthesizedColumnList ParenthesizedPartitionValuesList - ; - -RangeClause_EDIT - : AnyRange 'CURSOR' - | AnyRange ParenthesizedColumnList_EDIT - | AnyRange ParenthesizedColumnList 'CURSOR' - | AnyRange ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | AnyRange ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList - ; - -OptionalSortBy - : - | SortBy - ; - -SortBy - : 'SORT' 'BY' ParenthesizedColumnList - ; - -SortBy_EDIT - : 'SORT' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SORT' 'BY' ParenthesizedColumnList_EDIT - ; - -ParenthesizedPartitionValuesList - : '(' PartitionValueList ')' - ; - -ParenthesizedPartitionValuesList_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - if (parser.isImpala()) { - parser.suggestKeywords(['PARTITION']); - } - } - |'(' PartitionValueList_EDIT RightParenthesisOrError - ; - -PartitionValueList - : PartitionValue - | PartitionValueList ',' PartitionValue - ; - -PartitionValueList_EDIT - : PartitionValue_EDIT - | PartitionValueList ',' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['PARTITION']); - } - } - | PartitionValueList ',' 'CURSOR' ',' PartitionValueList - { - if (parser.isImpala()) { - parser.suggestKeywords(['PARTITION']); - } - } - | PartitionValueList ',' PartitionValue_EDIT - | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList - ; - -PartitionValue - : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' - | 'PARTITION_VALUE' '=' ValueExpression - ; - -PartitionValue_EDIT - : 'PARTITION' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - } - | 'PARTITION_VALUE' 'CURSOR' - { - parser.suggestKeywords(['=']); - } - | 'PARTITION_VALUE' '=' 'CURSOR' - { - parser.suggestFunctions(); - } - | 'PARTITION' ValueExpression_EDIT - { - if ($2.endsWithLessThanOrEqual && parser.isImpala()) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['<', '<=']); - } - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['VALUES']); - } - } - | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['<', '<=']); - } - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestFunctions(); - } - } - | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - | 'PARTITION' 'VALUES' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['<', '<=']); - } - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestFunctions(); - } - } - | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT - ; - -LessThanOrEqualTo - : '<' - | 'COMPARISON_OPERATOR' // This is fine for autocompletion - ; - -OptionalClusteredBy - : - | ClusteredBy - ; - -ClusteredBy - : 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalHiveSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - ; - -ClusteredBy_EDIT - : 'CLUSTERED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalHiveSortedBy - | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalHiveSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalHiveSortedBy 'CURSOR' - { - if (!$4) { - parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); - } else { - parser.suggestKeywords(['INTO']); - } - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalHiveSortedBy 'INTO' 'UNSIGNED_INTEGER' 'CURSOR' - { - parser.suggestKeywords(['BUCKETS']); - } - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalHiveSortedBy_EDIT 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' - | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalHiveSortedBy_EDIT - ; - -OptionalHiveSortedBy - : - | 'SORTED' 'BY' ParenthesizedSortList - ; - -OptionalHiveSortedBy_EDIT - : 'SORTED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SORTED' 'BY' ParenthesizedSortList_EDIT - ; - -ParenthesizedSortList - : '(' SortList ')' - ; - -ParenthesizedSortList_EDIT - : '(' SortList_EDIT RightParenthesisOrError - ; - -SortList - : SortIdentifier - | SortList ',' SortIdentifier - ; - -SortList_EDIT - : SortIdentifier_EDIT - | SortIdentifier_EDIT ',' SortList - | SortList ',' SortIdentifier_EDIT - | SortList ',' SortIdentifier_EDIT ',' SortList - ; - -SortIdentifier - : ColumnIdentifier OptionalAscOrDesc - ; - -SortIdentifier_EDIT - : ColumnIdentifier OptionalAscOrDesc 'CURSOR' - { - parser.checkForKeywords($2); - } - | ColumnIdentifier_EDIT OptionalAscOrDesc - | AnyCursor OptionalAscOrDesc - { - parser.suggestColumns(); - } - ; - -OptionalSkewedBy - : - | SkewedBy - ; - -SkewedBy - : 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList -> { suggestKeywords: ['STORED AS DIRECTORIES'] } - | 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList 'STORED_AS_DIRECTORIES' // Hack otherwise ambiguous with OptionalHiveStoredAsOrBy - ; - -SkewedBy_EDIT - : 'SKEWED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - ; - -ParenthesizedSkewedValueList - : '(' SkewedValueList ')' - ; - -SkewedValueList - : ParenthesizedSimpleValueList - | SkewedValueList ',' ParenthesizedSimpleValueList - ; - -OptionalRowFormat - : - | RowFormat - ; - -RowFormat - : 'ROW' HiveOrImpalaFormat HiveOrImpalaRowFormat - { - $$ = $3 - } - ; - -RowFormat_EDIT - : 'ROW' 'CURSOR' - { - parser.suggestKeywords(['FORMAT']); - } - | 'ROW' HiveOrImpalaFormat 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['DELIMITED', 'SERDE']); - } else { - parser.suggestKeywords(['DELIMITED']); - } - } - | 'ROW' HiveOrImpalaFormat HiveOrImpalaRowFormat_EDIT - ; - -OptionalStoredAsOrBy - : - | StoredAsOrBy - ; - -StoredAsOrBy - : StoredAs - | 'STORED' 'BY' QuotedValue - { - $$ = { storedBy: true } - } - ; - -StoredAsOrBy_EDIT - : HiveOrImpalaStored 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['AS', 'BY']); - } else { - parser.suggestKeywords(['AS']); - } - } - | StoredAs_EDIT - ; - -OptionalStoredAs - : -> { suggestKeywords: ['STORED AS'] } - | StoredAs - ; - -StoredAs - : HiveOrImpalaStored AnyAs FileFormat - ; - -StoredAs_EDIT - : HiveOrImpalaStored AnyAs 'CURSOR' - { - parser.suggestFileFormats(); - } - ; - -FileFormat - : 'AVRO' - | 'INPUTFORMAT' QuotedValue 'OUTPUTFORMAT' QuotedValue - | 'JSONFILE' - | 'ORC' - | 'PARQUET' - | 'RCFILE' - | 'SEQUENCEFILE' - | 'TEXTFILE' - | 'AVRO' - | 'KUDU' - | 'ORC' - | 'PARQUET' - | 'RCFILE' - | 'SEQUENCEFILE' - | 'TEXTFILE' - ; - -HiveOrImpalaRowFormat - : HiveRowFormat - | ImpalaRowFormat - ; - -HiveOrImpalaRowFormat_EDIT - : ImpalaRowFormat_EDIT - | HiveRowFormat_EDIT - ; - -HiveRowFormat - : HiveDelimitedRowFormat - | 'SERDE' QuotedValue - ; - -HiveRowFormat_EDIT - : HiveDelimitedRowFormat_EDIT - ; - -HiveDelimitedRowFormat - : 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs - { - if (!$2 && !$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; - } else if ($2 && $2.suggestKeywords && !$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: parser.createWeightedKeywords($2.suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; - } else if (!$3 && !$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$4 && !$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$5 && !$6) { - $$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$6) { - $$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; - } - } - ; - -HiveDelimitedRowFormat_EDIT - : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy_EDIT OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy_EDIT - OptionalLinesTerminatedBy OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy_EDIT OptionalNullDefinedAs - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy - OptionalLinesTerminatedBy OptionalNullDefinedAs_EDIT - ; - -ImpalaRowFormat - : 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy - { - if (!$2 && !$3) { - $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; - } else if ($2 && $2.suggestKeywords && !$3) { - $$ = { suggestKeywords: parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; - } else if (!$3) { - $$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; - } - } - ; - -ImpalaRowFormat_EDIT - : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalLinesTerminatedBy - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy_EDIT - ; - -OptionalFieldsTerminatedBy - : - | HiveOrImpalaFields HiveOrImpalaTerminated 'BY' SingleQuotedValue -> { suggestKeywords: ['ESCAPED BY'] } - | HiveOrImpalaFields HiveOrImpalaTerminated 'BY' SingleQuotedValue HiveOrImpalaEscaped 'BY' SingleQuotedValue - ; - -OptionalFieldsTerminatedBy_EDIT - : HiveOrImpalaFields 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | HiveOrImpalaFields HiveOrImpalaTerminated 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | HiveOrImpalaFields HiveOrImpalaTerminated 'BY' SingleQuotedValue 'ESCAPED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalCollectionItemsTerminatedBy - : - | 'COLLECTION' 'ITEMS' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalCollectionItemsTerminatedBy_EDIT - : 'COLLECTION' 'CURSOR' - { - parser.suggestKeywords(['ITEMS TERMINATED BY']); - } - | 'COLLECTION' 'ITEMS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'COLLECTION' 'ITEMS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalMapKeysTerminatedBy - : - | 'MAP' 'KEYS' 'TERMINATED' 'BY' SingleQuotedValue - ; - -OptionalMapKeysTerminatedBy_EDIT - : 'MAP' 'CURSOR' - { - parser.suggestKeywords(['KEYS TERMINATED BY']); - } - | 'MAP' 'KEYS' 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | 'MAP' 'KEYS' 'TERMINATED' 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalLinesTerminatedBy - : - | HiveOrImpalaLines HiveOrImpalaTerminated 'BY' SingleQuotedValue - ; - -OptionalLinesTerminatedBy_EDIT - : HiveOrImpalaLines 'CURSOR' - { - parser.suggestKeywords(['TERMINATED BY']); - } - | HiveOrImpalaLines HiveOrImpalaTerminated 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - ; - -OptionalNullDefinedAs - : - | 'NULL' 'DEFINED' 'AS' SingleQuotedValue - ; - -OptionalNullDefinedAs_EDIT - : 'NULL' 'CURSOR' - { - parser.suggestKeywords(['DEFINED AS']); - } - | 'NULL' 'DEFINED' 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - ; - -OptionalWithSerdeproperties - : - | ImpalaWithSerdeproperties - | HiveWithSerdeproperties - ; - -OptionalImpalaWithSerdeproperties - : - | ImpalaWithSerdeproperties - ; - -OptionalHiveWithSerdeproperties - : - | HiveWithSerdeproperties - ; - -ImpalaWithSerdeproperties - :'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -HiveWithSerdeproperties - :'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -WithSerdeproperties_EDIT - : HiveWithSerdeproperties_EDIT - | ImpalaWithSerdeproperties_EDIT - ; - -HiveWithSerdeproperties_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - ; - -ImpalaWithSerdeproperties_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList - { - parser.suggestKeywords(['SERDEPROPERTIES']); - } - ; - -OptionalTblproperties - : - | TblProperties - ; - -TblProperties - : HiveOrImpalaTblproperties ParenthesizedPropertyAssignmentList - ; - -OptionalHiveTblproperties - : - | 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -OptionalAsSelectStatement - : - | AnyAs CommitLocations QuerySpecification - ; - -OptionalAsSelectStatement_EDIT - : AnyAs CommitLocations 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AnyAs CommitLocations QuerySpecification_EDIT - ; - -CommitLocations - : /* empty */ - { - parser.commitLocations(); - } - ; - -ViewDefinition - : AnyCreate AnyView OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalHiveTblproperties AnyAs QuerySpecification - ; - -ViewDefinition_EDIT - : AnyCreate AnyView OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | AnyCreate AnyView OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalHiveTblproperties AnyAs QuerySpecification - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | AnyCreate AnyView OptionalIfNotExists_EDIT - | AnyCreate AnyView OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment OptionalHiveTblproperties - | AnyCreate AnyView OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalHiveTblproperties 'CURSOR' - { - var keywords = [{value: 'AS', weight: 1 }]; - if (!$7) { - if (parser.isHive()) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - if (!$6) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - } - parser.suggestKeywords(keywords); - } - | AnyCreate AnyView OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalHiveTblproperties AnyAs 'CURSOR' - { - parser.suggestKeywords(['SELECT']); - } - | AnyCreate AnyView OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalHiveTblproperties AnyAs QuerySpecification_EDIT - | AnyCreate AnyView OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment OptionalHiveTblproperties AnyAs QuerySpecification - ; - -FunctionDefinition - : ImpalaFunctionDefinition - | ImpalaAggregateFunctionDefinition - | HiveFunctionDefinition - | HiveTemporaryFunction - ; - -FunctionDefinition_EDIT - : ImpalaFunctionDefinition_EDIT - | ImpalaAggregateFunctionDefinition_EDIT - | HiveFunctionDefinition_EDIT - | HiveTemporaryFunction_EDIT - ; - -ImpalaFunctionDefinition - : AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns HdfsLocation ImpalaSymbol - ; - -ImpalaFunctionDefinition_EDIT - : AnyCreate 'FUNCTION' OptionalIfNotExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | AnyCreate 'FUNCTION' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns HdfsLocation ImpalaSymbol - { - if (!$3) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList 'CURSOR' - { - parser.suggestKeywords(['RETURNS']); - } - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns 'CURSOR' - { - parser.suggestKeywords(['LOCATION']); - } - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns HdfsLocation 'CURSOR' - { - parser.suggestKeywords(['SYMBOL']); - } - | AnyCreate 'FUNCTION' OptionalIfNotExists_EDIT - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList_EDIT - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns_EDIT - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns HdfsLocation_EDIT - | AnyCreate 'FUNCTION' OptionalIfNotExists_EDIT SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns HdfsLocation ImpalaSymbol - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList_EDIT ImpalaReturns HdfsLocation ImpalaSymbol - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns_EDIT HdfsLocation ImpalaSymbol - | AnyCreate 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns HdfsLocation_EDIT ImpalaSymbol - ; - -ImpalaAggregateFunctionDefinition - : AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - ; - -ImpalaAggregateFunctionDefinition_EDIT - : AnyCreate 'AGGREGATE' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION']); - } - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - { - if (!$4) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - } - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists_EDIT - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists_EDIT SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList_EDIT - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList_EDIT ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList 'CURSOR' - { - parser.suggestKeywords(['RETURNS']); - } - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - 'CURSOR' - { - parser.suggestKeywords(['LOCATION']); - } - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn 'CURSOR' - { - if (!$9) { - parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); - } else { - parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); - } - } - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn 'CURSOR' - { - parser.suggestKeywords(['MERGE_FN']); - } - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate 'CURSOR' - { - if (!$12 && !$13 && !$14 && !$15 && !$16) { - parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($12 && !$13 && !$14 && !$15 && !$16) { - parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($13 && !$14 && !$15 && !$16) { - parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($14 && !$15 && !$16) { - parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($15 && !$16) { - parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); - } - } - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns_EDIT - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation_EDIT OptionalImpalaInitFn - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn_EDIT - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn_EDIT - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn_EDIT OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn_EDIT OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn_EDIT OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn_EDIT OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn_EDIT OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn Intermediate_EDIT - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns_EDIT - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation_EDIT OptionalImpalaInitFn ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn_EDIT ImpalaUpdateFn ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - | AnyCreate 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList ImpalaReturns - HdfsLocation OptionalImpalaInitFn ImpalaUpdateFn_EDIT ImpalaMergeFn OptionalImpalaPrepareFn OptionalImpalaCloseFn OptionalImpalaSerializeFn OptionalImpalaFinalizeFn OptionalIntermediate - ; - -HiveFunctionDefinition - : AnyCreate 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalHiveUsing - ; - -HiveFunctionDefinition_EDIT - : AnyCreate 'FUNCTION' SchemaQualifiedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | AnyCreate 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalHiveUsing_EDIT - | AnyCreate 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalHiveUsing 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['USING']); - } else { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - } - ; - -HiveTemporaryFunction - : AnyCreate 'TEMPORARY' 'FUNCTION' RegularIdentifier 'AS' SingleQuotedValue - ; - -HiveTemporaryFunction_EDIT - : AnyCreate 'TEMPORARY' 'FUNCTION' RegularIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - ; - -ParenthesizedImpalaArgumentList - : '(' ')' - | '(' ImpalaArgumentList OptionalVariableArguments')' - ; - -ParenthesizedImpalaArgumentList_EDIT - : '(' ImpalaArgumentList_EDIT RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - | '(' ImpalaArgumentList 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['...']); - } - ; - -ImpalaArgumentList - : PrimitiveType - | ImpalaArgumentList ',' PrimitiveType - ; - -ImpalaArgumentList_EDIT - : AnyCursor - | ImpalaArgumentList ',' AnyCursor - | AnyCursor ',' ImpalaArgumentList - | ImpalaArgumentList ',' AnyCursor ',' ImpalaArgumentList - ; - -OptionalVariableArguments - : - | '...' - ; - -ImpalaReturns - : 'RETURNS' PrimitiveType - ; - -ImpalaReturns_EDIT - : 'RETURNS' 'CURSOR' - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - ; - -ImpalaSymbol - : 'SYMBOL' '=' SingleQuotedValue - ; - -OptionalImpalaInitFn - : - | 'INIT_FN' '=' FunctionReference - ; - -OptionalImpalaInitFn_EDIT - : 'INIT_FN' '=' FunctionReference_EDIT - ; - -ImpalaUpdateFn - : 'UPDATE_FN' '=' FunctionReference - ; - -ImpalaUpdateFn_EDIT - : 'UPDATE_FN' '=' FunctionReference_EDIT - ; - -ImpalaMergeFn - : 'MERGE_FN' '=' FunctionReference - ; - -ImpalaMergeFn_EDIT - : 'MERGE_FN' '=' FunctionReference_EDIT - ; - -OptionalImpalaPrepareFn - : - | 'PREPARE_FN' '=' FunctionReference - ; - -OptionalImpalaPrepareFn_EDIT - : 'PREPARE_FN' '=' FunctionReference_EDIT - ; - -OptionalImpalaCloseFn - : - | 'CLOSE_FN' '=' FunctionReference - ; - -OptionalImpalaCloseFn_EDIT - : 'CLOSE_FN' '=' FunctionReference_EDIT - ; - -OptionalImpalaSerializeFn - : - | 'SERIALIZE_FN' '=' FunctionReference - ; - -OptionalImpalaSerializeFn_EDIT - : 'SERIALIZE_FN' '=' FunctionReference_EDIT - ; - -OptionalImpalaFinalizeFn - : - | 'FINALIZE_FN' '=' FunctionReference - ; - -OptionalImpalaFinalizeFn_EDIT - : 'FINALIZE_FN' '=' FunctionReference_EDIT - ; - -OptionalIntermediate - : - | 'INTERMEDIATE' PrimitiveType - ; - -Intermediate_EDIT - : 'INTERMEDIATE' 'CURSOR' - { - parser.suggestKeywords(parser.getTypeKeywords()); - } - ; - -FunctionReference - : SingleQuotedValue - ; - -FunctionReference_EDIT - : SingleQuotedValue_EDIT - { - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - ; - -OptionalHiveUsing - : - | 'USING' OneOrMoreFunctionResources - ; - -OptionalHiveUsing_EDIT - : 'USING' 'CURSOR' - { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - ; - -OneOrMoreFunctionResources - : FunctionResource - | OneOrMoreFunctionResources ',' FunctionResource - ; - -FunctionResource - : FunctionResourceType SingleQuotedValue - ; - -FunctionResourceType - : 'ARCHIVE' - | 'FILE' - | 'JAR' - ; - -AnyView - : 'VIEW' - | 'VIEW' - ; - -OptionalParenthesizedViewColumnList - : - | ParenthesizedViewColumnList - ; - -ParenthesizedViewColumnList - : '(' ViewColumnList ')' - ; - -ParenthesizedViewColumnList_EDIT - : '(' ViewColumnList_EDIT RightParenthesisOrError - { - if (!$2) { - parser.suggestKeywords(['COMMENT']); - } - } - ; - -ViewColumnList - : ColumnReference OptionalComment - | ViewColumnList ',' ColumnReference OptionalComment - ; - -ViewColumnList_EDIT - : ColumnReference OptionalComment 'CURSOR' --> $2 - | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList --> $2 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' --> $4 - | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList --> $4 - ; - -RoleDefinition - : AnyCreate AnyRole RegularIdentifier - ; - -AnyRole - : 'ROLE' - | 'ROLE' - | 'ROLE' - ; - -IndexDefinition - : AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment - ; - -IndexDefinition_EDIT - : AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON TABLE']); - } - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' 'CURSOR' - { - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - } - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType_EDIT OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild_EDIT OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable_EDIT OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable RowFormat_EDIT OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat StoredAsOrBy_EDIT OptionalHdfsLocation - OptionalTblproperties OptionalComment - { - if ($13 && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { - parser.suggestKeywords(['AS']); - } - } - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy HdfsLocation_EDIT - OptionalTblproperties OptionalComment - | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment 'CURSOR' - { - if (!$10 && !$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$12 && !$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$13 && !$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if ($13 && $13.suggestKeywords && !$14 && !$15 && !$16) { - parser.suggestKeywords(parser.createWeightedKeywords($13.suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); - } else if (!$14 && !$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$15 && !$16 && !$17) { - parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$16 && !$17) { - parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$17) { - parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); - } - } - ; - -ExistingTable - : SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -ExistingTable_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -IndexType - : QuotedValue - ; - -IndexType_EDIT - : QuotedValue_EDIT - { - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - } - ; - -OptionalWithDeferredRebuild - : - | 'WITH' 'DEFERRED' 'REBUILD' - ; - -OptionalWithDeferredRebuild_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['DEFERRED REBUILD']); - } - | 'WITH' 'DEFERRED' 'CURSOR' - { - parser.suggestKeywords(['REBUILD']); - } - ; - -OptionalIdxProperties - : - | 'IDXPROPERTIES' ParenthesizedPropertyAssignmentList - ; - -OptionalInTable - : - | 'IN' 'TABLE' SchemaQualifiedTableIdentifier - ; - -OptionalInTable_EDIT - : 'IN' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'IN' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'IN' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - ; - - -ParenthesizedIndexColumnList - : '(' IndexColumnList ')' - ; - -ParenthesizedIndexColumnList_EDIT - : '(' IndexColumnList_EDIT RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -IndexColumnList - : ColumnReference - | IndexColumnList ',' ColumnReference - ; - -IndexColumnList_EDIT - : AnyCursor - | IndexColumnList ',' AnyCursor - | AnyCursor ',' IndexColumnList - | IndexColumnList ',' AnyCursor ',' IndexColumnList - ; - -MacroDefinition - : AnyCreate 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression - ; - -MacroDefinition_EDIT - : AnyCreate 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT - | AnyCreate 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT ValueExpression - | AnyCreate 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments 'CURSOR' - { - parser.suggestFunctions(); - } - | AnyCreate 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression_EDIT - ; - -MacroArguments - : '(' ')' - | '(' MacroArgumentList ')' - ; - -MacroArguments_EDIT - : '(' MacroArgumentList_EDIT RightParenthesisOrError - ; - - -MacroArgumentList - : MacroArgument - | MacroArgumentList ',' MacroArgument - ; - -MacroArgumentList_EDIT - : MacroArgument_EDIT - | MacroArgumentList ',' MacroArgument_EDIT - | MacroArgument_EDIT ',' MacroArgumentList - | MacroArgumentList ',' MacroArgument_EDIT ',' MacroArgumentList - ; - -MacroArgument - : RegularIdentifier ColumnDataType - ; - -MacroArgument_EDIT - : RegularIdentifier 'CURSOR' - { - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - } - | RegularIdentifier ColumnDataType_EDIT - ; \ No newline at end of file diff --git a/src/jison/sql_drop.jison b/src/jison/sql_drop.jison deleted file mode 100644 index 5725f10..0000000 --- a/src/jison/sql_drop.jison +++ /dev/null @@ -1,504 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : DropStatement - | HiveAbortStatement - ; - -DataDefinition_EDIT - : DropStatement_EDIT - | HiveAbortStatement_EDIT - ; - -DataManipulation - : HiveDeleteStatement - | ImpalaDeleteStatement - ; - -DataManipulation_EDIT - : HiveDeleteStatement_EDIT - | ImpalaDeleteStatement_EDIT - ; - -DropStatement - : DropDatabaseStatement - | DropFunctionStatement - | DropRoleStatement - | DropStatsStatement - | DropTableStatement - | DropIndexStatement - | DropMacroStatement - | DropViewStatement - | TruncateTableStatement - ; - -DropStatement_EDIT - : DropDatabaseStatement_EDIT - | DropFunctionStatement_EDIT - | DropStatsStatement_EDIT - | DropTableStatement_EDIT - | DropIndexStatement_EDIT - | DropMacroStatement_EDIT - | DropViewStatement_EDIT - | TruncateTableStatement_EDIT - | 'DROP' 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - } - ; - -DropDatabaseStatement - : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - ; - -DropDatabaseStatement_EDIT - : 'DROP' DatabaseOrSchema OptionalIfExists - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - } - | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - if (parser.isHive() || parser.isImpala()) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - } - | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascadeOrRestrict - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - ; - -DropFunctionStatement - : DropImpalaFunction - | DropHiveFunction - ; - -DropFunctionStatement_EDIT - : DropImpalaFunction_EDIT - | DropHiveFunction_EDIT - ; - -// OptionalAggregate is no go for look ahead reasons -DropImpalaFunction - : 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList - ; - -DropImpalaFunction_EDIT - : 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'FUNCTION' OptionalIfExists_EDIT - | 'DROP' 'CURSOR' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList - { - parser.suggestKeywords(['AGGREGATE']); - } - | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList_EDIT - | 'DROP' 'AGGREGATE' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION']); - } - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists_EDIT - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedImpalaArgumentList_EDIT - | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT ParenthesizedImpalaArgumentList - | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT ParenthesizedImpalaArgumentList - ; - -DropHiveFunction - : 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists RegularIdentifier - ; - -DropHiveFunction_EDIT - : 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'FUNCTION' OptionalIfExists_EDIT - | 'DROP' 'FUNCTION' OptionalIfExists_EDIT SchemaQualifiedIdentifier - | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists_EDIT - ; - -DropRoleStatement - : 'DROP' AnyRole RegularIdentifier - ; - -DropStatsStatement - : 'DROP' 'STATS' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec - { - parser.addTablePrimary($4); - } - ; - -DropStatsStatement_EDIT - : 'DROP' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'STATS' SchemaQualifiedTableIdentifier_EDIT - | 'DROP' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - parser.suggestKeywords(['INCREMENTAL']); - } - | 'DROP' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec - { - parser.addTablePrimary($4); - parser.suggestKeywords(['INCREMENTAL']); - } - | 'DROP' 'INCREMENTAL' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | 'DROP' 'INCREMENTAL' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT PartitionSpec - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($4); - parser.suggestKeywords(['PARTITION']); - } - | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement - : 'DROP' AnyTable OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge - { - parser.addTablePrimary($4); - } - ; - -DropTableStatement_EDIT - : 'DROP' AnyTable OptionalIfExists_EDIT - | 'DROP' AnyTable OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - } - | 'DROP' AnyTable OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - } - | 'DROP' AnyTable OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge - | 'DROP' AnyTable OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PURGE']); - } - } - ; - -OptionalPurge - : - | 'PURGE' - | 'PURGE' - ; - - -DropIndexStatement - : 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($6); - } - ; - -DropIndexStatement_EDIT - : 'DROP' 'INDEX' OptionalIfExists 'CURSOR' - { - parser.suggestKeywords(['IF EXISTS']); - } - | 'DROP' 'INDEX' OptionalIfExists_EDIT - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT - ; - -DropMacroStatement - : 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists RegularIdentifier - ; - -DropMacroStatement_EDIT - : 'DROP' 'TEMPORARY' 'CURSOR' - { - parser.suggestKeywords(['FUNCTION', 'MACRO']); - } - | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists_EDIT - ; - -DropViewStatement - : 'DROP' AnyView OptionalIfExists SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - ; - -DropViewStatement_EDIT - : 'DROP' AnyView OptionalIfExists 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - } - | 'DROP' AnyView OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($5); - if (!$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'DROP' AnyView OptionalIfExists_EDIT - | 'DROP' AnyView OptionalIfExists_EDIT SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - } - | 'DROP' AnyView OptionalIfExists SchemaQualifiedTableIdentifier_EDIT - { - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - ; - -TruncateTableStatement - : 'TRUNCATE' AnyTable OptionalIfExists SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - } - ; - -TruncateTableStatement_EDIT - : 'TRUNCATE' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'TRUNCATE' AnyTable OptionalIfExists 'CURSOR' OptionalPartitionSpec - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (parser.isImpala() && !$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' AnyTable OptionalIfExists_EDIT OptionalPartitionSpec - | 'TRUNCATE' AnyTable OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'TRUNCATE' AnyTable OptionalIfExists SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($4); - if (parser.isHive() && !$5) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'TRUNCATE' AnyTable OptionalIfExists SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($4); - } - | 'TRUNCATE' AnyTable OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($4); - if (parser.isImpala() && !$3) { - parser.suggestKeywords(['IF EXISTS']); - } - } - | 'TRUNCATE' AnyTable OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec - ; - -HiveDeleteStatement - : 'DELETE' 'FROM' SchemaQualifiedTableIdentifier OptionalWhereClause - { - parser.addTablePrimary($3); - } - ; - -HiveDeleteStatement_EDIT - : 'DELETE' 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'DELETE' 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier 'CURSOR' OptionalWhereClause - { - parser.addTablePrimary($3); - if (!$5) { - parser.suggestKeywords(['WHERE']); - } - } - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier_EDIT OptionalWhereClause - | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier WhereClause_EDIT - { - parser.addTablePrimary($3); - } - ; - -ImpalaDeleteStatement - : 'DELETE' OptionalImpalaDeleteTableRef 'FROM' TableReference OptionalWhereClause - ; - -ImpalaDeleteStatement_EDIT - : 'DELETE' OptionalImpalaDeleteTableRef 'CURSOR' - { - parser.suggestKeywords(['FROM']); - if (parser.isImpala() && !$2) { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - } - | 'DELETE' ImpalaDeleteTableRef_EDIT - | 'DELETE' OptionalImpalaDeleteTableRef 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DELETE' OptionalImpalaDeleteTableRef 'FROM' TableReference 'CURSOR' OptionalWhereClause - { - var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; - if (!$6) { - keywords.push({ value: 'WHERE', weight: 3 }); - } - if ($4.suggestJoinConditions) { - parser.suggestJoinConditions($4.suggestJoinConditions); - } - if ($4.suggestJoins) { - parser.suggestJoins($4.suggestJoins); - } - if ($4.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 2)); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - | 'DELETE' ImpalaDeleteTableRef_EDIT 'FROM' - | 'DELETE' ImpalaDeleteTableRef_EDIT 'FROM' TableReference OptionalWhereClause - | 'DELETE' OptionalImpalaDeleteTableRef 'FROM' TableReference_EDIT OptionalWhereClause - | 'DELETE' OptionalImpalaDeleteTableRef 'FROM' TableReference WhereClause_EDIT - ; - -OptionalImpalaDeleteTableRef - : - | TableReference - ; - -ImpalaDeleteTableRef_EDIT - : TableReference_EDIT - ; - -HiveAbortStatement - : 'ABORT' 'TRANSACTIONS' TransactionIdList - ; - -HiveAbortStatement_EDIT - : 'ABORT' 'CURSOR' - { - parser.suggestKeywords(['TRANSACTIONS']); - } - ; - -TransactionIdList - : UnsignedNumericLiteral - | TransactionIdList ',' UnsignedNumericLiteral - ; \ No newline at end of file diff --git a/src/jison/sql_error.jison b/src/jison/sql_error.jison deleted file mode 100644 index f0f589a..0000000 --- a/src/jison/sql_error.jison +++ /dev/null @@ -1,190 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlStatements - : error - | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? - ; - -SqlStatement_EDIT - : AnyCursor error - { - if (parser.isHive()) { - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - } else if (parser.isImpala()) { - parser.suggestDdlAndDmlKeywords(['EXPLAIN']); - } else { - parser.suggestDdlAndDmlKeywords(); - } - } - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR TableExpression - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression_ERROR - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR_EDIT TableExpression - { - parser.selectListNoTableSuggest($4, $2); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR TableExpression_EDIT - ; - -SelectList_ERROR - : ErrorList - | SelectList ',' ErrorList - | ErrorList ',' SelectList ',' ErrorList - | ErrorList ',' SelectList - | SelectList ',' ErrorList ',' SelectList - ; - -SelectList_ERROR_EDIT - : ErrorList ',' SelectList_EDIT -> $3 - | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 - | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 - | ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' ErrorList ',' AnyCursor - { - $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | ErrorList ',' SelectList ',' Errors ',' AnyCursor - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - ; - -SetSpecification - : 'SET' SetOption '=' error - ; - -ErrorList - : error - | Errors ',' error - ; - -LateralView - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier 'AS' error -> { } - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction error -> { } - | 'LATERAL' 'VIEW' OptionalOuter error -> { } - | 'LATERAL' error -> { } - ; - -JoinType_EDIT - : 'FULL' 'CURSOR' error - { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - | 'LEFT' 'CURSOR' error - { - if (parser.isHive()) { - parser.suggestKeywords(['JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } else { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - } - | 'RIGHT' 'CURSOR' error - { - if (parser.isImpala()) { - parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } else { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7, $8, $9, $10], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, parser.isHive(), true, parser.isHive(), true, parser.isImpala()]), - cursorAtEnd: !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 - }; - } - | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7, $8, $9, $10], [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [parser.isHive(), true, parser.isHive(), true, parser.isImpala()]), - cursorAtEnd: !$6 && !$7 && !$8 && !$9 && !$10 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$7, $8, $9, $10], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isHive(), true, parser.isImpala()]), - cursorAtEnd: !$7 && !$8 && !$9 && !$10 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$8, $9, $10], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [parser.isHive(), true, parser.isImpala()]), - cursorAtEnd: !$8 && !$9 && !$10 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy error 'CURSOR' OptionalLimitClause OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$9, $10], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isImpala()]), - cursorAtEnd: !$9 && !$10 - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause error 'CURSOR' OptionalOffsetClause - { - $$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$10], [{ value: 'OFFSET', weight: 2 }], [parser.isImpala()]), - cursorAtEnd: !$10 - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | WhereClause error OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause OptionalOffsetClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT OptionalOffsetClause - | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OffsetClause_EDIT - | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause GroupByClause error OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OffsetClause_EDIT - | OptionalWhereClause OptionalGroupByClause HavingClause error WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OffsetClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OffsetClause_EDIT - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error ClusterOrDistributeBy_EDIT OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error OptionalClusterOrDistributeBy LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error OptionalClusterOrDistributeBy OptionalLimitClause OffsetClause_EDIT - ; - -DatabaseDefinition_EDIT - : AnyCreate DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error - ; diff --git a/src/jison/sql_grant.jison b/src/jison/sql_grant.jison deleted file mode 100644 index bd9dfc9..0000000 --- a/src/jison/sql_grant.jison +++ /dev/null @@ -1,519 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : GrantStatement - | RevokeStatement - ; - -DataDefinition_EDIT - : GrantStatement_EDIT - | RevokeStatement_EDIT - ; - -GrantStatement - : 'GRANT' HivePrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption - | 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'TO' 'GROUP' RegularOrBacktickedIdentifier - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'TO' RegularOrBacktickedIdentifier OptionalWithGrantOption - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'TO' 'ROLE' RegularOrBacktickedIdentifier OptionalWithGrantOption - ; - -GrantStatement_EDIT - : 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - } - | 'GRANT' HivePrivilegeTypeList_EDIT OptionalOnSpecification - | 'GRANT' HivePrivilegeTypeList OnSpecification_EDIT - | 'GRANT' HivePrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['ON', 'TO']); - } else { - parser.suggestKeywords(['TO']); - } - } - | 'GRANT' HivePrivilegeTypeList OptionalOnSpecification 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' HivePrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' HivePrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - } - | 'GRANT' HivePrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList WithGrantOption_EDIT - | 'GRANT' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | 'GRANT' UserOrRoleList 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' - { - if (!$5) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - } - | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT - | 'GRANT' 'ROLE' UserOrRoleList 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - } - | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT - | 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); - } - | 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['TO GROUP']); - } - | 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'TO' 'CURSOR' - { - parser.suggestKeywords(['GROUP']); - } - | 'GRANT' ImpalaPrivilegeType_EDIT - | 'GRANT' ImpalaPrivilegeType 'CURSOR' - { - if ($2.isCreate) { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); - } else { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - } - | 'GRANT' ImpalaPrivilegeType 'ON' 'CURSOR' - { - if ($2.isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - } - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification_EDIT - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'CURSOR' - { - parser.suggestKeywords(['TO']); - } - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'TO' 'CURSOR' - { - parser.suggestKeywords(['ROLE']); - } - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'TO' RegularOrBacktickedIdentifier OptionalWithGrantOption 'CURSOR' - { - if (!$7) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - } - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'TO' RegularOrBacktickedIdentifier WithGrantOption_EDIT - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'TO' 'ROLE' RegularOrBacktickedIdentifier OptionalWithGrantOption 'CURSOR' - { - if (!$8) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - } - | 'GRANT' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'TO' 'ROLE' RegularOrBacktickedIdentifier WithGrantOption_EDIT - ; - -OptionalOnSpecification - : - | 'ON' HiveObjectSpecification - ; - -OnSpecification_EDIT - : 'ON' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'TABLE']); - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'ON' HiveObjectSpecification_EDIT - ; - -HiveObjectSpecification - : 'DATABASE' RegularOrBacktickedIdentifier - | 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($2); - } - | SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -HiveObjectSpecification_EDIT - : 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'TABLE' SchemaQualifiedTableIdentifier_EDIT - | SchemaQualifiedTableIdentifier_EDIT - ; - -ImpalaObjectSpecification - : 'DATABASE' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@2, [ { name: $2 } ]); - } - | 'TABLE' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($2); - } - | 'SERVER' RegularOrBacktickedIdentifier - | 'URI' RegularOrBacktickedIdentifier - ; - -ImpalaObjectSpecification_EDIT - : 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'TABLE' SchemaQualifiedTableIdentifier_EDIT - ; - -HivePrivilegeTypeList - : HivePrivilegeTypeWithOptionalColumn - { - if ($1.toUpperCase() === 'ALL') { - $$ = { singleAll: true }; - } - } - | HivePrivilegeTypeList ',' HivePrivilegeTypeWithOptionalColumn - ; - -HivePrivilegeTypeList_EDIT - : HivePrivilegeTypeWithOptionalColumn_EDIT - | HivePrivilegeTypeList ',' HivePrivilegeTypeWithOptionalColumn_EDIT - | HivePrivilegeTypeWithOptionalColumn_EDIT ',' HivePrivilegeTypeList - | HivePrivilegeTypeList ',' HivePrivilegeTypeWithOptionalColumn_EDIT ',' HivePrivilegeTypeList - | 'CURSOR' ',' HivePrivilegeTypeList - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | HivePrivilegeTypeList ',' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | HivePrivilegeTypeList ',' 'CURSOR' ',' HivePrivilegeTypeList - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - ; - -HivePrivilegeTypeWithOptionalColumn - : HivePrivilegeType OptionalParenthesizedColumnList - ; - -HivePrivilegeTypeWithOptionalColumn_EDIT - : HivePrivilegeType ParenthesizedColumnList_EDIT - ; - -HivePrivilegeType - : 'INSERT' - | 'SELECT' - | 'UPDATE' - | 'DELETE' - | 'ALTER' - | 'CREATE' - | 'DROP' - | 'INDEX' - | 'LOCK' - | 'SHOW_DATABASE' - | 'ALL' - ; - -ImpalaPrivilegeType - : 'ALL' - | 'ALTER' - | 'CREATE' --> { isCreate: true } - | 'DROP' - | 'INSERT' - | 'REFRESH' - | 'SELECT' OptionalParenthesizedColumnList - ; - -ImpalaPrivilegeType_EDIT - : 'SELECT' ParenthesizedColumnList_EDIT - ; - -PrincipalSpecificationList - : PrincipalSpecification - | PrincipalSpecificationList ',' PrincipalSpecification - ; - -PrincipalSpecificationList_EDIT - : PrincipalSpecificationList ',' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'CURSOR' ',' PrincipalSpecificationList - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | PrincipalSpecificationList ',' 'CURSOR' ',' PrincipalSpecificationList - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - ; - -PrincipalSpecification - : 'USER' RegularOrBacktickedIdentifier - | 'GROUP' RegularOrBacktickedIdentifier - | 'ROLE' RegularOrBacktickedIdentifier - ; - -PrincipalSpecification_EDIT - : 'USER' 'CURSOR' - | 'GROUP' 'CURSOR' - | 'ROLE' 'CURSOR' - ; - -UserOrRoleList - : RegularOrBacktickedIdentifier - | UserOrRoleList ',' RegularOrBacktickedIdentifier - ; - -OptionalWithGrantOption - : - | 'WITH' 'GRANT' 'OPTION' - | 'WITH' 'GRANT' 'OPTION' - ; - -WithGrantOption_EDIT - : AnyWith 'CURSOR' - { - parser.suggestKeywords(['GRANT OPTION']); - } - | 'WITH' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - | 'WITH' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; - -OptionalWithAdminOption - : - | 'WITH' 'ADMIN' 'OPTION' - ; - -WithAdminOption_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['ADMIN OPTION']); - } - | 'WITH' 'ADMIN' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; - -RevokeStatement - : 'REVOKE' HivePrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' HivePrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList - | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList - | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'FROM' UserOrRoleList - | 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'FROM' 'GROUP' RegularOrBacktickedIdentifier - | 'REVOKE' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'FROM' RegularOrBacktickedIdentifier - | 'REVOKE' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'FROM' 'ROLE' RegularOrBacktickedIdentifier - ; - -RevokeStatement_EDIT - : 'REVOKE' 'CURSOR' - { - parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - } - | 'REVOKE' HivePrivilegeTypeList_EDIT - | 'REVOKE' HivePrivilegeTypeList OnSpecification_EDIT - | 'REVOKE' HivePrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$3) { - if ($2.singleAll) { - parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); - } else { - parser.suggestKeywords(['FROM', 'ON']); - } - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' HivePrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' HivePrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION FOR']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'CURSOR' - { - parser.suggestKeywords(['FOR']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' HivePrivilegeTypeList_EDIT - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' HivePrivilegeTypeList OnSpecification_EDIT - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' HivePrivilegeTypeList OptionalOnSpecification 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['FROM', 'ON']); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' HivePrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'GRANT' 'OPTION' 'FOR' HivePrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' UserOrRoleList 'CURSOR' - { - if ($2.toUpperCase() === 'ADMIN') { - parser.suggestKeywords(['FROM', 'OPTION FOR']); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'REVOKE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ROLE' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - - | 'REVOKE' 'ADMIN' 'OPTION' 'CURSOR' - { - parser.suggestKeywords(['FOR']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'CURSOR' - { - parser.suggestKeywords(['ROLE']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - } - | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT - | 'REVOKE' 'ALL' PrivilegesOrGrantOption_EDIT - | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); - } - | 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FROM GROUP']); - } - | 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'FROM' 'CURSOR' - { - parser.suggestKeywords(['GROUP']); - } - | 'REVOKE' ImpalaPrivilegeType_EDIT - | 'REVOKE' ImpalaPrivilegeType 'CURSOR' - { - if ($2.isCreate) { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); - } else { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - } - | 'REVOKE' ImpalaPrivilegeType 'ON' 'CURSOR' - { - if ($2.isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - } - | 'REVOKE' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification_EDIT - | 'REVOKE' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'CURSOR' - { - parser.suggestKeywords(['FROM']); - } - | 'REVOKE' ImpalaPrivilegeType 'ON' ImpalaObjectSpecification 'FROM' 'CURSOR' - { - parser.suggestKeywords(['ROLE']); - } - ; - -PrivilegesOrGrantOption - : 'PRIVILEGES' - | 'GRANT' 'OPTION' - ; - -PrivilegesOrGrantOption_EDIT - : 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['OPTION']); - } - ; diff --git a/src/jison/sql_insert.jison b/src/jison/sql_insert.jison deleted file mode 100644 index 10b4dc7..0000000 --- a/src/jison/sql_insert.jison +++ /dev/null @@ -1,762 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : InsertStatement - ; - -InsertStatement - : HiveInsertStatement - | InsertValuesStatement - | ImpalaInsertOrUpsertStatement - | CommonTableExpression HiveInsertStatement - | CommonTableExpression ImpalaInsertOrUpsertStatement - | HiveMergeStatement - ; - -DataManipulation_EDIT - : HiveInsertStatement_EDIT - | InsertValuesStatement_EDIT - | ImpalaInsertOrUpsertStatement_EDIT - | CommonTableExpression HiveInsertStatement_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT HiveInsertStatement - | CommonTableExpression ImpalaInsertOrUpsertStatement_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT ImpalaInsertOrUpsertStatement - | HiveMergeStatement_EDIT - ; - -HiveInsertStatement - : HiveInsertWithoutQuery QuerySpecification - | FromClause HiveInserts - | FromClause SelectWithoutTableExpression OptionalSelectConditions - ; - -HiveInsertStatement_EDIT - : HiveInsertWithoutQuery_EDIT - | HiveInsertWithoutQuery 'CURSOR' - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); - } else { - keywords = ['SELECT']; - } - if ($1.addValues) { - keywords.push({ weight: 1.1, value: 'VALUES' }); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - | HiveInsertWithoutQuery_EDIT QuerySpecification - | HiveInsertWithoutQuery QuerySpecification_EDIT - | FromClause HiveInserts_EDIT - { - if (!$2.keepTables) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - } - | FromClause_EDIT - | FromClause_EDIT HiveInserts - | FromClause_EDIT SelectWithoutTableExpression OptionalSelectConditions - | FromClause 'CURSOR' - { - parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); - } - | FromClause SelectWithoutTableExpression_EDIT OptionalSelectConditions - { - if ($2.cursorAtEnd) { - parser.checkForSelectListKeywords($2); - var keywords = parser.yy.result.suggestKeywords || []; - if ($3.suggestKeywords) { - keywords = keywords.concat($3.suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - | FromClause SelectWithoutTableExpression OptionalSelectConditions_EDIT - { - if ($3.cursorAtStart) { - parser.checkForSelectListKeywords($2.tableExpression); - } - } - ; - -HiveInsertWithoutQuery - : 'INSERT' 'OVERWRITE' OptionalHiveTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (!$5 && !$6) { - $$ = { suggestKeywords: ['PARTITION'] } - } else if (!$6) { - $$ = { suggestKeywords: ['IF NOT EXISTS'] } - } - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs - { - if (!$6 && !$7) { - $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$7) { - $$ = { suggestKeywords: ['STORED AS'] }; - } - } - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs - { - if (!$4 && !$5) { - $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$5) { - $$ = { suggestKeywords: ['STORED AS'] }; - } - } - | 'INSERT' 'INTO' OptionalHiveTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (!$5 && !$6) { - $$ = { suggestKeywords: ['PARTITION'], addValues: true }; - } else if (!$6) { - $$ = { addValues: true }; - } - } - ; - -HiveInsertWithoutQuery_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['OVERWRITE', 'INTO']); - } - | 'INSERT' 'OVERWRITE' OptionalHiveTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - $$ = { keepTables: true } - } - | 'INSERT' 'OVERWRITE' OptionalHiveTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList - { - $$ = { keepTables: true } - } - | 'INSERT' 'OVERWRITE' OptionalHiveTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalIfNotExists - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - | 'INSERT' 'OVERWRITE' OptionalHiveTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists_EDIT - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'CURSOR' - { - parser.suggestKeywords(['DIRECTORY']); - } - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs - | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs // DIRECTORY is a non-reserved keyword - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs - | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT - | 'INSERT' 'INTO' OptionalHiveTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - $$ = { keepTables: true } - } - | 'INSERT' 'INTO' OptionalHiveTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList - { - $$ = { keepTables: true } - } - | 'INSERT' 'INTO' OptionalHiveTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalParenthesizedColumnList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - | 'INSERT' 'INTO' OptionalHiveTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList_EDIT - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - ; - -HiveInserts - : HiveInsert - | HiveInserts HiveInsert - ; - -HiveInserts_EDIT - : HiveInsert_EDIT - | HiveInserts HiveInsert_EDIT - | HiveInsert_EDIT HiveInserts - | HiveInserts HiveInsert_EDIT HiveInserts - ; - -// TODO: Verify Hive unions in insert -HiveInsert - : HiveInsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions - ; - -HiveInsert_EDIT - : HiveInsertWithoutQuery_EDIT - | HiveInsertWithoutQuery_EDIT SelectWithoutTableExpression OptionalSelectConditions - | HiveInsertWithoutQuery 'CURSOR' - { - if ($1.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); - } else { - parser.suggestKeywords(['SELECT']); - } - } - | HiveInsertWithoutQuery SelectWithoutTableExpression_EDIT OptionalSelectConditions - { - if ($2.cursorAtEnd) { - parser.checkForSelectListKeywords($2); - var keywords = parser.yy.result.suggestKeywords || []; - if ($3.suggestKeywords) { - keywords = keywords.concat($3.suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - } - | HiveInsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions_EDIT - ; - -InsertValuesStatement - : 'INSERT' 'INTO' OptionalHiveTable SchemaQualifiedTableIdentifier OptionalPartitionSpec 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } - ; - -InsertValuesStatement_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'INSERT' 'INTO' OptionalTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - parser.suggestKeywords(['VALUES']); - } - | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList - ; - -InsertValuesList - : ParenthesizedRowValuesList - | RowValuesList ',' ParenthesizedRowValuesList - ; - -ParenthesizedRowValuesList - : '(' InValueList ')' - ; - -OptionalTable - : - | 'TABLE' - ; - -OptionalInsertRowFormat - : - | 'ROW' 'FORMAT' HiveDelimitedRowFormat - ; - -OptionalInsertRowFormat_EDIT - : 'ROW' 'CURSOR' - { - parser.suggestKeywords(['FORMAT DELIMITED']); - } - | 'ROW' 'FORMAT' 'CURSOR' - { - parser.suggestKeywords(['DELIMITED']); - } - | 'ROW' 'FORMAT' HiveDelimitedRowFormat_EDIT - ; - -SelectWithoutTableExpression - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList -> { selectList: $4 } - ; - -SelectWithoutTableExpression_EDIT - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' - { - $$ = $4; - $$.cursorAtEnd = true; - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT - { - parser.selectListNoTableSuggest($4, $2); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' - { - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$3 && !$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$3) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - } - ; - -OptionalHiveTable - : - | 'TABLE' - ; - -ImpalaInsertOrUpsertStatement - : ImpalaInsertOrUpsertStatementWithoutCTE - ; - -ImpalaInsertOrUpsertStatement_EDIT - : ImpalaInsertOrUpsertStatementWithoutCTE_EDIT - ; - -ImpalaInsertOrUpsertStatementWithoutCTE - : ImpalaInsertOrUpsertLeftPart OptionalImpalaShuffleOrNoShuffle SelectStatement OptionalUnions - | ImpalaInsertOrUpsertLeftPart 'VALUES' ImpalaRowValuesLists - ; - -ImpalaInsertOrUpsertStatementWithoutCTE_EDIT - : ImpalaInsertOrUpsertLeftPart_EDIT - | ImpalaInsertOrUpsertLeftPart OptionalImpalaShuffleOrNoShuffle 'CURSOR' - { - var keywords = $1.suggestKeywords && !$2 ? parser.createWeightedKeywords($1.suggestKeywords, 2) : []; - if (!$2) { - keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) - } else { - keywords = keywords.concat(['SELECT']) - } - parser.suggestKeywords(keywords); - } - | ImpalaInsertOrUpsertLeftPart_EDIT OptionalImpalaShuffleOrNoShuffle SelectStatement OptionalUnions - | ImpalaInsertOrUpsertLeftPart OptionalImpalaShuffleOrNoShuffle SelectStatement_EDIT OptionalUnions - | ImpalaInsertOrUpsertLeftPart OptionalImpalaShuffleOrNoShuffle SelectStatement OptionalUnions_EDIT - | ImpalaInsertOrUpsertLeftPart_EDIT 'VALUES' ImpalaRowValuesLists - | ImpalaInsertOrUpsertLeftPart 'VALUES' ImpalaRowValuesLists_EDIT - ; - -ImpalaInsertOrUpsertLeftPart - : ImpalaUpsertStatementLeftPart - | ImpalaInsertLeftPart - ; - -ImpalaInsertOrUpsertLeftPart_EDIT - : ImpalaUpsertStatementLeftPart_EDIT - | ImpalaInsertLeftPart_EDIT - ; - -ImpalaUpsertStatementLeftPart - : 'UPSERT' 'INTO' OptionalImpalaTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList - { - $4.owner = 'upsert'; - parser.addTablePrimary($4); - } - ; - -ImpalaUpsertStatementLeftPart_EDIT - : 'UPSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'UPSERT' 'INTO' OptionalImpalaTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'UPSERT' 'INTO' OptionalImpalaTable 'CURSOR' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - $5.owner = 'upsert'; - parser.addTablePrimary($5); - } - | 'UPSERT' 'INTO' OptionalImpalaTable SchemaQualifiedTableIdentifier_EDIT OptionalParenthesizedColumnList - | 'UPSERT' 'INTO' OptionalImpalaTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList_EDIT - { - $4.owner = 'upsert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'upsert'; - } - } - ; - - -ImpalaInsertLeftPart - : 'INSERT' IntoOrOverwrite OptionalImpalaTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (!$6) { - $$ = { suggestKeywords: ['PARTITION'] }; - } - } - ; - -ImpalaInsertLeftPart_EDIT - : 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['INTO', 'OVERWRITE']); - } - | 'INSERT' IntoOrOverwrite OptionalImpalaTable 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'INSERT' IntoOrOverwrite OptionalImpalaTable 'CURSOR' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec - { - if (!$3) { - parser.suggestKeywords(['TABLE']); - } - $5.owner = 'insert'; - parser.addTablePrimary($5); - } - | 'INSERT' IntoOrOverwrite OptionalImpalaTable SchemaQualifiedTableIdentifier_EDIT OptionalParenthesizedColumnList OptionalPartitionSpec - | 'INSERT' IntoOrOverwrite OptionalImpalaTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList_EDIT OptionalPartitionSpec - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - | 'INSERT' IntoOrOverwrite OptionalImpalaTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec_EDIT - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - } - ; - -IntoOrOverwrite - : 'INTO' - | 'OVERWRITE' - ; - -OptionalImpalaTable - : - | 'TABLE' - ; - -OptionalImpalaShuffleOrNoShuffle - : - | 'SHUFFLE' - | 'NOSHUFFLE' - ; - -ImpalaRowValuesLists - : ParenthesizedImpalaRowValuesList - | ImpalaRowValuesLists ',' ParenthesizedImpalaRowValuesList - ; - -ImpalaRowValuesLists_EDIT - : ParenthesizedImpalaRowValuesList_EDIT - | ImpalaRowValuesLists ',' ParenthesizedImpalaRowValuesList_EDIT - | ImpalaRowValuesLists ',' ParenthesizedImpalaRowValuesList_EDIT ',' ImpalaRowValuesLists - | ParenthesizedImpalaRowValuesList_EDIT ',' ImpalaRowValuesLists - ; - -ParenthesizedImpalaRowValuesList - : '(' ValueExpressionList ')' - ; - -ParenthesizedImpalaRowValuesList_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.suggestFunctions(); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError - ; - -HiveMergeStatement - : HiveMergeStatementLeftPart 'ON' ValueExpression WhenList - ; - -HiveMergeStatement_EDIT - : HiveMergeStatementLeftPart_EDIT - | HiveMergeStatementLeftPart 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | HiveMergeStatementLeftPart 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | HiveMergeStatementLeftPart 'ON' ValueExpression_EDIT - | HiveMergeStatementLeftPart 'ON' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, [{ value: 'WHEN', weight: 2 }]); - } - | HiveMergeStatementLeftPart 'ON' ValueExpression WhenList_EDIT - ; - -HiveMergeStatementLeftPart - : 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' RegularIdentifier - { - $3.alias = $5; - parser.addTablePrimary($3); - if ($7.subQuery) { - parser.addTablePrimary({ subQueryAlias: $9 }); - } else { - $7.alias = $9; - } - } - ; - -HiveMergeStatementLeftPart_EDIT - : 'MERGE' 'CURSOR' - { - parser.suggestKeywords(['INTO']); - } - | 'MERGE' 'INTO' 'CURSOR' - { - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier_EDIT - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['AS T USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['T USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['USING']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource_EDIT - { - $3.alias = $5; - parser.addTablePrimary($3); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['AS S ON']); - } - | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' 'CURSOR' - { - $3.alias = $5; - parser.addTablePrimary($3); - parser.suggestKeywords(['S ON']); - } - ; - -MergeSource - : '(' TableSubQueryInner ')' --> $2 - | SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -MergeSource_EDIT - : '(' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | '(' TableSubQueryInner_EDIT RightParenthesisOrError - | SchemaQualifiedTableIdentifier_EDIT - ; - -WhenList - : WhenClause - | WhenClause WhenClause - | WhenClause WhenClause WhenClause - ; - -WhenList_EDIT - : WhenClause_EDIT - { - if ($1.suggestThenKeywords) { - parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); - } - } - | WhenClause 'CURSOR' - { - if (!$1.notPresent) { - parser.suggestKeywords(['WHEN']); - } - } - | WhenClause WhenClause_EDIT - { - if (!$1.notPresent && $2.suggestThenKeywords) { - var keywords = []; - if (!$1.isDelete) { - keywords.push('DELETE'); - } - if (!$1.isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$1.isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - } - | WhenClause WhenClause 'CURSOR' - { - if (!$2.notPresent) { - parser.suggestKeywords(['WHEN']); - } - } - | WhenClause WhenClause WhenClause_EDIT - { - if (!$2.notPresent && $3.suggestThenKeywords) { - var keywords = []; - if (!$1.isDelete && !$2.isDelete) { - keywords.push('DELETE'); - } - if (!$1.isInsert && !$2.isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$1.isUpdate && !$2.isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - } - ; - -WhenClause - : 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert --> { notPresent: !!$2, isDelete: $6.isDelete, isInsert: $6.isInsert, isUpdate: $6.isUpdate } - ; - -WhenClause_EDIT - : 'WHEN' OptionalNot 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); - } else { - parser.suggestKeywords(['MATCHED']); - } - } - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['AND', 'THEN']); - } else { - parser.suggestValueExpressionKeywords($4, [{ value: 'THEN', weight: 2 }]); - } - } - | 'WHEN' OptionalNot 'MATCHED' MatchCondition_EDIT - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' 'CURSOR' --> { suggestThenKeywords: true } - | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert_EDIT - ; - -OptionalMatchCondition - : - | 'AND' ValueExpression --> $2 - ; - -MatchCondition_EDIT - : 'AND' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - ; - -UpdateDeleteOrInsert - : 'UPDATE' 'SET' SetClauseList --> { isUpdate: true } - | 'DELETE' --> { isDelete: true } - | 'INSERT' 'VALUES' InsertValuesList --> { isInsert: true } - ; - -UpdateDeleteOrInsert_EDIT - : 'UPDATE' 'CURSOR' - { - parser.suggestKeywords(['SET']); - } - | 'UPDATE' 'SET' SetClauseList_EDIT - | 'INSERT' 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - ; \ No newline at end of file diff --git a/src/jison/sql_load.jison b/src/jison/sql_load.jison deleted file mode 100644 index ca607ca..0000000 --- a/src/jison/sql_load.jison +++ /dev/null @@ -1,291 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : LoadStatement - | ImportStatement - | ExportStatement - ; - -DataManipulation_EDIT - : LoadStatement_EDIT - | ImportStatement_EDIT - | ExportStatement_EDIT - ; - -LoadStatement - : AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath OptionalOverwrite 'INTO' AnyTable SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($9); - } - ; - -LoadStatement_EDIT - : AnyLoad 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['DATA INPATH']); - } - } - | AnyLoad AnyData OptionalHiveLocal 'CURSOR' - { - if (parser.isHive() && !$3) { - parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); - } else { - parser.suggestKeywords(['INPATH']); - } - } - | AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath_EDIT OptionalOverwrite - | AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath OptionalOverwrite 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - } - | AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath OptionalOverwrite 'INTO' 'CURSOR' - { - parser.suggestKeywords([ 'TABLE' ]); - } - | AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath OptionalOverwrite 'INTO' AnyTable 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath OptionalOverwrite 'INTO' AnyTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath OptionalOverwrite 'INTO' AnyTable SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($9); - if (!$10) { - parser.suggestKeywords(['PARTITION']); - } - } - | AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath OptionalOverwrite 'INTO' AnyTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - { - parser.addTablePrimary($9); - } - | AnyLoad AnyData OptionalHiveLocal AnyInpath HdfsPath_EDIT OptionalOverwrite 'INTO' AnyTable SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($9); - } - ; - -OptionalOverwrite - : - | 'OVERWRITE' - | 'OVERWRITE' - ; - -OptionalHiveLocal - : - | 'LOCAL' - ; - -AnyLoad - : 'LOAD' - | 'LOAD' - ; - -AnyData - : 'DATA' - | 'DATA' - ; - -AnyInpath - : 'INPATH' - | 'INPATH' - ; - -ImportStatement - : 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - ; - -ImportStatement_EDIT - : 'IMPORT' 'CURSOR' OptionalTableWithPartition - { - if (!$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); - } else if (!$3.hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - } - | 'IMPORT' TableWithPartition 'CURSOR' - { - if ($2.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); - } else { - parser.suggestKeywords(['FROM']); - } - } - | 'IMPORT' TableWithPartition_EDIT - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath_EDIT OptionalHdfsLocation - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath HdfsLocation_EDIT - | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation 'CURSOR' - { - if (!$6) { - parser.suggestKeywords(['LOCATION']); - } - } - | 'IMPORT' 'CURSOR' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - { - if (!$3) { - parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); - } else if (!$3.hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - } -| 'IMPORT' TableWithPartition_EDIT PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - | 'IMPORT' TableWithPartition 'CURSOR' PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation - { - if ($2.suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); - } - } - ; - -OptionalTableWithPartition - : - | TableWithPartition - ; - -TableWithPartition - : 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - if (!$4) { - $$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; - } else { - $$ = { hasExternal: true } - } - } - | 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($2); - if (!$3) { - $$ = { suggestKeywords: ['PARTITION'] }; - } - } - ; - -TableWithPartition_EDIT - : 'EXTERNAL' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXTERNAL' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - - | 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - ; - -ExportStatement - : 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; - -ExportStatement_EDIT - : 'EXPORT' 'CURSOR' - { - parser.suggestKeywords(['TABLE']); - } - | 'EXPORT' 'TABLE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); - } else { - parser.suggestKeywords([ 'TO' ]); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['FOR replication()']); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['replication()']); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - if (!$4) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT 'FOR' 'REPLICATION' '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; \ No newline at end of file diff --git a/src/jison/sql_main.jison b/src/jison/sql_main.jison deleted file mode 100644 index 9e6a883..0000000 --- a/src/jison/sql_main.jison +++ /dev/null @@ -1,4565 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -SqlSyntax - : NewStatement SqlStatements EOF - ; - -SqlAutocomplete - : NewStatement SqlStatements EOF - { - return parser.yy.result; - } - | NewStatement SqlStatements_EDIT EOF - { - return parser.yy.result; - } - ; - -NewStatement - : /* empty */ - { - parser.prepareNewStatement(); - } - ; - -SqlStatements - : - | SqlStatement - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatements - ; - -SqlStatements_EDIT - : SqlStatement_EDIT - { - parser.addStatementLocation(@1); - } - | SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@1); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT - { - parser.addStatementLocation(@4); - } - | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements - { - parser.addStatementLocation(@4); - } - ; - -SqlStatement - : DataDefinition - | DataManipulation - | QuerySpecification - | ExplainClause DataDefinition - | ExplainClause DataManipulation - | ExplainClause QuerySpecification - ; - -SqlStatement_EDIT - : AnyCursor - { - if (parser.isHive()) { - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - } else if (parser.isImpala()) { - parser.suggestDdlAndDmlKeywords(['EXPLAIN']); - } else { - parser.suggestDdlAndDmlKeywords(); - } - } - | CommonTableExpression 'CURSOR' - { - if (parser.isHive() || parser.isImpala()) { - parser.suggestKeywords(['INSERT', 'SELECT']); - } else { - parser.suggestKeywords(['SELECT']); - } - } - | ExplainClause_EDIT - | DataDefinition_EDIT - | DataManipulation_EDIT - | QuerySpecification_EDIT - | SetSpecification_EDIT - | ExplainClause DataDefinition_EDIT - | ExplainClause DataManipulation_EDIT - | ExplainClause QuerySpecification_EDIT - | ExplainClause_EDIT DataDefinition - | ExplainClause_EDIT DataManipulation - | ExplainClause_EDIT QuerySpecification - ; - -NonReservedKeyword - : 'ABORT' - | 'ADD' - | 'ADMIN' - | 'AFTER' - | 'ANALYZE' - | 'ARCHIVE' - | 'AVRO' - | 'BUCKET' - | 'BUCKETS' - | 'CASCADE' - | 'CHANGE' - | 'CLUSTERED' - | 'COLLECTION' - | 'COLUMNS' - | 'COMMENT' - | 'COMPACT' - | 'COMPACTIONS' - | 'COMPUTE' - | 'CONCATENATE' - | 'DATA' - | 'DATABASES' - | 'DBPROPERTIES' - | 'DEFERRED' - | 'DEFINED' - | 'DELIMITED' - | 'DEPENDENCY' - | 'DIRECTORY' - | 'DISABLE' - | 'DOUBLE_PRECISION' - | 'ENABLE' - | 'ESCAPED' - | 'EXCHANGE' - | 'EXPLAIN' - | 'EXPORT' - | 'FIELDS' - | 'FILE' - | 'FILEFORMAT' - | 'FIRST' - | 'FORMAT' - | 'FUNCTIONS' - | 'INPATH' - | 'INPUTFORMAT' - | 'JAR' - | 'JSONFILE' - | 'IDXPROPERTIES' - | 'ITEMS' - | 'KEY' - | 'KEYS' - | 'LINES' - | 'LOAD' - | 'LOCATION' - | 'LOCKS' - | 'MATCHED' - | 'METADATA' - | 'MERGE' - | 'MSCK' - | 'NOSCAN' - | 'NOVALIDATE' - | 'NO_DROP' - | 'OFFLINE' - | 'ORC' - | 'OUTPUTFORMAT' - | 'OVERWRITE' - | 'OWNER' - | 'PARQUET' - | 'PARTITIONED' - | 'PARTITIONS' - | 'PERCENT' - | 'PRIVILEGES' - | 'PURGE' - | 'RCFILE' - | 'REBUILD' - | 'RELOAD' - | 'RELY' - | 'NORELY' - | 'REPAIR' - | 'REPLICATION' - | 'RECOVER' - | 'RENAME' - | 'REPLACE' - | 'RESTRICT' - | 'ROLE' - | 'ROLES' - | 'SCHEMAS' - | 'SEQUENCEFILE' - | 'SERDE' - | 'SERDEPROPERTIES' - | 'SETS' - | 'SHOW' - | 'SKEWED' - | 'SORTED' - | 'STATISTICS' - | 'STORED' - | 'STRING' - | 'TABLES' - | 'TBLPROPERTIES' - | 'TEMPORARY' - | 'TERMINATED' - | 'TEXTFILE' - | 'TIMESTAMP' - | 'TINYINT' - | 'TOUCH' - | 'TRANSACTIONAL' - | 'TRANSACTIONS' - | 'UNARCHIVE' - | 'UNIONTYPE' - | 'USE' - | 'USER' - | 'VIEW' - | 'WAIT' - | 'DAY' - | 'HOUR' - | 'MINUTE' - | 'MONTH' - | 'QUARTER' - | 'SECOND' - | 'WEEK' - | 'YEAR' -// | 'ASC' // These cause conflicts, we could use a separate lexer state for DESCRIBE, ALTER, GRANT, REVOKE and SHOW -// | 'CLUSTER' -// | 'DESC' -// | 'DISTRIBUTE' -// | 'FORMATTED' -// | 'FUNCTION' -// | 'INDEX' -// | 'INDEXES' -// | 'LOCK' -// | 'SCHEMA' -// | 'SHOW_DATABASE' -// | 'SORT' - ; - -NonReservedKeyword - : 'DEFAULT' - | 'KEY' - | 'OWNER' - | 'SERVER' - | 'URI' - ; - -NonReservedKeyword - : 'ROLE' - | 'OPTION' - | 'STRUCT' - ; - -RegularIdentifier - : 'REGULAR_IDENTIFIER' - | 'VARIABLE_REFERENCE' - | NonReservedKeyword - ; - -ExplainClause - : 'EXPLAIN' OptionalHiveExplainTypes - | 'EXPLAIN' - ; - -ExplainClause_EDIT - : 'EXPLAIN' OptionalHiveExplainTypes 'CURSOR' - { - if (!$2) { - parser.suggestDdlAndDmlKeywords([{ value: 'AUTHORIZATION', weight: 2 }, { value: 'DEPENDENCY', weight: 2 }, { value: 'EXTENDED', weight: 2 }]); - } else { - parser.suggestDdlAndDmlKeywords(); - } - } - | 'EXPLAIN' 'CURSOR' - { - parser.suggestDdlAndDmlKeywords(); - } - ; - -OptionalHiveExplainTypes - : - | 'AUTHORIZATION' - | 'DEPENDENCY' - | 'EXTENDED' - ; - -// This is a work-around for error handling when a statement starts with some token that the parser can understand but -// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) -NonStartingToken - : '.' - | '[' - | ']' - | 'ADMIN' - | 'ALL' - | 'AS' - | 'ASC' - | 'AUTHORIZATION' - | 'AVRO' - | 'BINARY' - | 'BUCKET' - | 'BUCKETS' - | 'CACHE' - | 'CLUSTER' - | 'CLUSTERED' - | 'COLLECT_LIST' - | 'COLLECT_SET' - | 'COLLECTION' - | 'COLUMNS' - | 'COMMENT' - | 'COMPACTIONS' - | 'COMPUTE' - | 'CONF' - | 'CONSTRAINT' - | 'CORR' - | 'COVAR_POP' - | 'COVAR_SAMP' - | 'CUBE' - | 'CURRENT' - | 'DATA' - | 'DATABASES' - | 'DATE' - | 'DAY' - | 'DAYOFWEEK' - | 'DBPROPERTIES' - | 'DEFERRED' - | 'DEFINED' - | 'DELIMITED' - | 'DEPENDENCY' - | 'DESC' - | 'DIRECTORY' - | 'DISTRIBUTE' - | 'DISTRIBUTED' - | 'DOUBLE_PRECISION' |'ESCAPED' - | 'EXTENDED' - | 'EXTERNAL' - | 'FIELDS' - | 'FILE' - | 'FOR' - | 'FOREIGN' - | 'FORMAT' - | 'FORMATTED' - | 'FUNCTION' - | 'FUNCTIONS' - | 'GRANT' - | 'GROUPING' - | 'HISTOGRAM_NUMERIC' - | 'HOUR' - | 'IDXPROPERTIES' - | 'INDEX' - | 'INDEXES' - | 'INPATH' - | 'INPUTFORMAT' - | 'ITEMS' - | 'JAR' - | 'JSONFILE' - | 'KEY' - | 'KEYS' - | 'LATERAL' - | 'LINES' - | 'LOCAL' - | 'LOCATION' - | 'LOCK' - | 'LOCKS' - | 'MACRO' - | 'MATCHED' - | 'METADATA' - | 'MINUTE' - | 'MONTH' - | 'NONE' - | 'NORELY' - | 'NOSCAN' - | 'NOVALIDATE' - | 'NTILE' - | 'OF' - | 'ORC' - | 'OUT' - | 'OUTPUTFORMAT' - | 'OVERWRITE' - | 'OWNER' - | 'PARQUET' - | 'PARTITION' - | 'PARTITIONED' - | 'PARTITIONS' - | 'PERCENT' - | 'PERCENTILE' - | 'PERCENTILE_APPROX' - | 'PRIMARY' - | 'PRIVILEGES' - | 'QUARTER' - | 'RCFILE' - | 'REBUILD' - | 'REFERENCES' - | 'RELY' - | 'REPAIR' - | 'REPLICATION' |'ROLLUP' - | 'ROLE' - | 'ROLES' - | 'SCHEMA' - | 'SCHEMAS' - | 'SECOND' - | 'SEQUENCEFILE' - | 'SERDE' - | 'SERDEPROPERTIES' - | 'SETS' - | 'SHOW_DATABASE' - | 'SKEWED' - | 'SORTED' - | 'STATISTICS' - | 'STORED' - | 'STORED_AS_DIRECTORIES' - | 'STRING' - | 'TABLE' - | 'TABLES' - | 'TABLESAMPLE' - | 'TBLPROPERTIES' - | 'TEMPORARY' - | 'TERMINATED' - | 'TEXTFILE' - | 'TIMESTAMP' |'USER' - | 'TINYINT' - | 'TRANSACTIONAL' - | 'TRANSACTIONS' - | 'UNIONTYPE' - | 'USING' - | 'VIEW' - | 'VIEWS' - | 'WAIT' - | 'WEEK' - | 'WINDOW' - | 'YEAR' - | '.' - | '...' - | '[' - | ']' - | 'AGGREGATE' - | 'ALLOCATE' - | 'ANALYTIC' - | 'ANTI' - | 'ANY' - | 'APPX_MEDIAN' - | 'ARE' - | 'ARRAY_AGG' - | 'ARRAY_MAX_CARDINALITY' - | 'ASENSITIVE' - | 'ASYMMETRIC' - | 'AT' - | 'ATOMIC' - | 'AUTHORIZATION' - | 'AVRO' - | 'BEGIN_FRAME' - | 'BEGIN_PARTITION' - | 'BLOB' - | 'BLOCK_SIZE' - | 'BOTH' - | 'BROADCAST' - | 'CACHED' - | 'CALLED' - | 'CARDINALITY' - | 'CASCADE' - | 'CASCADED' - | 'CHARACTER' - | 'CLOB' - | 'CLOSE_FN' - | 'COLLATE' - | 'COLLECT' - | 'COLUMN' - | 'COMMIT' - | 'CONDITION' - | 'CONNECT' - | 'CONSTRAINT' - | 'CONTAINS' - | 'CONVERT' - | 'COPY' - | 'CORR' - | 'CORRESPONDING' - | 'COVAR_POP' - | 'COVAR_SAMP' - | 'CUBE' - | 'CURRENT' - | 'CURRENT_DATE' - | 'CURRENT_DEFAULT_TRANSFORM_GROUP' - | 'CURRENT_PATH' - | 'CURRENT_ROLE' - | 'CURRENT_ROW' - | 'CURRENT_SCHEMA' - | 'CURRENT_TIME' - | 'CURRENT_TRANSFORM_GROUP_FOR_TYPE' - | 'CURSOR' - | 'CYCLE' - | 'DATA' - | 'DATABASES' - | 'DEALLOCATE' - | 'DEC' - | 'DECFLOAT' - | 'DECLARE' - | 'DEFINE' - | 'DELETE' - | 'DELIMITED' - | 'DEREF' - | 'DETERMINISTIC' - | 'DISCONNECT' - | 'DYNAMIC' - | 'EACH' - | 'ELEMENT' - | 'EMPTY' - | 'END_FRAME' - | 'END_PARTITION' - | 'EQUALS' - | 'ESCAPE' - | 'ESCAPED' - | 'EVERY' - | 'EXCEPT' - | 'EXEC' - | 'EXECUTE' - | 'EXTENDED' - | 'EXTERNAL' - | 'EXTRACT' - | 'FETCH' - | 'FIELDS' - | 'FILES' - | 'FILTER' - | 'FINALIZE_FN' - | 'FIRST' - | 'FOR' - | 'FOREIGN' - | 'FORMAT' - | 'FORMATTED' - | 'FRAME_ROW' - | 'FREE' - | 'FUNCTION' - | 'FUNCTIONS' - | 'FUSION' - | 'GET' - | 'GLOBAL' - | 'GRANT' - | 'GROUP' - | 'GROUP_CONCAT' - | 'GROUPING' - | 'GROUPS' - | 'HASH' - | 'HOLD' - | 'IGNORE' - | 'ILIKE' - | 'INCREMENTAL' - | 'INDICATOR' - | 'INIT_FN' - | 'INITIAL' - | 'INOUT' - | 'INPATH' - | 'INSENSITIVE' - | 'INTERMEDIATE' - | 'INTERSECT' - | 'INTERSECTION' - | 'INTERVAL' - | 'IREGEXP' - | 'JSON_ARRAY' - | 'JSON_ARRAYAGG' - | 'JSON_EXISTS' - | 'JSON_OBJECT' - | 'JSON_OBJECTAGG' - | 'JSON_QUERY' - | 'JSON_TABLE' - | 'JSON_TABLE_PRIMITIVE' - | 'JSON_VALUE' - | 'KEY' - | 'KUDU' - | 'LARGE' - | 'LAST' - | 'LATERAL' - | 'LEADING' - | 'LIKE_REGEX' - | 'LIMIT' - | 'LINES' - | 'LISTAGG' - | 'LOCAL' - | 'LOCALTIMESTAMP' - | 'LOCATION' - | 'MATCH' - | 'MATCH_NUMBER' - | 'MATCH_RECOGNIZE' - | 'MATCHES' - | 'MERGE' - | 'MERGE_FN' - | 'METHOD' - | 'MODIFIES' - | 'MULTISET' - | 'NATIONAL' - | 'NATURAL' - | 'NCHAR' - | 'NCLOB' - | 'NDV' - | 'NO' - | 'NONE' - | 'NORMALIZE' - | 'NOSHUFFLE' - | 'NTH_VALUE' - | 'NULLS' - | 'NUMERIC' - | 'OCCURRENCES_REGEX' - | 'OCTET_LENGTH' - | 'OF' - | 'OMIT' - | 'ONE' - | 'ONLY' - | 'OUT' - | 'OVER' - | 'OVERLAPS' - | 'OVERLAY' - | 'OWNER' - | 'PARQUET' - | 'PARTITIONED' - | 'PARTITIONS' - | 'PATTERN' - | 'PER' - | 'PERCENT' - | 'PERCENTILE_CONT' - | 'PERCENTILE_DISC' - | 'PORTION' - | 'POSITION' - | 'POSITION_REGEX' - | 'PRECEDES' - | 'PREPARE' - | 'PREPARE_FN' - | 'PRIMARY' - | 'PROCEDURE' - | 'PTF' - | 'RANGE' - | 'RCFILE' - | 'READS' - | 'REAL' - | 'RECOVER' - | 'RECURSIVE' - | 'REF' - | 'REFERENCES' - | 'REFERENCING' - | 'REGR_AVGX' - | 'REGR_AVGY' - | 'REGR_COUNT' - | 'REGR_INTERCEPT' - | 'REGR_R2REGR_SLOPE' - | 'REGR_SXX' - | 'REGR_SXY' - | 'REGR_SYY' - | 'RELEASE' - | 'REPEATABLE' - | 'REPLICATION' - | 'RESTRICT' - | 'RETURNS' - | 'ROLE' - | 'ROLES' - | 'ROLLBACK' - | 'ROLLUP' - | 'RUNNING' - | 'SAVEPOINT' - | 'SCHEMAS' - | 'SCOPE' - | 'SCROLL' - | 'SEARCH' - | 'SEEK' - | 'SENSITIVE' - | 'SEQUENCEFILE' - | 'SERDEPROPERTIES' - | 'SERIALIZE_FN' - | 'SERVER' - | 'SHUFFLE' - | 'SIMILAR' - | 'SKIP' - | 'SOME' - | 'SORT' - | 'SPECIFIC' - | 'SPECIFICTYPE' - | 'SQLEXCEPTION' - | 'SQLSTATE' - | 'SQLWARNING' - | 'STATIC' - | 'STATS' - | 'STDDEV' - | 'STORED' - | 'STRAIGHT_JOIN' - | 'SUBMULTISET' - | 'SUBSET' - | 'SUBSTRING_REGEX' - | 'SUCCEEDS' - | 'SYMBOL' - | 'SYMMETRIC' - | 'SYSTEM_TIME' - | 'SYSTEM_USER' - | 'TABLE' - | 'TABLES' - | 'TABLESAMPLE' - | 'TBLPROPERTIES' - | 'TERMINATED' - | 'TEXTFILE' - | 'TIMEZONE_HOUR' - | 'TIMEZONE_MINUTE' - | 'TRAILING' - | 'TRANSLATE_REGEX' - | 'TRANSLATION' - | 'TREAT' - | 'TRIGGER' - | 'TRIM_ARRAY' - | 'UESCAPE' - | 'UNIQUE' - | 'UNNEST' - | 'UPDATE_FN' - | 'URI' - | 'USER' - | 'USING' - | 'VALUE_OF' - | 'VARBINARY' - | 'VARCHAR' - | 'VARIANCE_POP' - | 'VARIANCE_SAMP' - | 'VARYING' - | 'VERSIONING' - | 'WHENEVER' - | 'WIDTH_BUCKET' - | 'WINDOW' - | 'WITHIN' - | 'WITHOUT' - | '!' - | '(' - | ')' - | '*' - | ',' - | '-' - | '.' - | '<' - | '=' - | '>' - | '[' - | ']' - | '~' - | 'ALL' - | 'ANALYTIC' - | 'AND' - | 'ARITHMETIC_OPERATOR' - | 'ARRAY' - | 'AS' - | 'ASC' - | 'AVG' - | 'BACKTICK' - | 'BETWEEN' - | 'BIGINT' - | 'BOOLEAN' - | 'BY' - | 'CASE' - | 'CAST' - | 'CHAR' - | 'COMPARISON_OPERATOR' - | 'COUNT' - | 'CROSS' - | 'CURRENT' - | 'DATABASE' - | 'DECIMAL' - | 'DESC' - | 'DISTINCT' - | 'DOUBLE' - | 'DOUBLE_QUOTE' - | 'ELSE' - | 'END' - | 'EXISTS' - | 'FALSE' - | 'FLOAT' - | 'FOLLOWING' - | 'FROM' - | 'FULL' - | 'GROUP' - | 'HAVING' - | 'HDFS_START_QUOTE' - | 'IF' - | 'IN' - | 'INNER' - | 'INT' - | 'INTO' - | 'IS' - | 'JOIN' - | 'LEFT' - | 'LIKE' - | 'LIMIT' - | 'MAP' - | 'MAX' - | 'MIN' - | 'NOT' - | 'NULL' - | 'ON' - | 'OPTION' - | 'OR' - | 'ORDER' - | 'OUTER' - | 'OVER' - | 'PARTITION' - | 'PRECEDING' - | 'PURGE' - | 'RANGE' - | 'REGEXP' - | 'REGULAR_IDENTIFIER' - | 'RIGHT' - | 'RLIKE' - | 'ROLE' - | 'ROW' - | 'ROWS' - | 'SCHEMA' - | 'SEMI' - | 'SET' - | 'SINGLE_QUOTE' - | 'SMALLINT' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'STRING' - | 'STRUCT' - | 'SUM' - | 'TABLE' - | 'THEN' - | 'TIMESTAMP' - | 'TINYINT' - | 'TRUE' - | 'UNION' - | 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER_E' - | 'VALUES' - | 'VAR_POP' - | 'VAR_SAMP' - | 'VARCHAR' - | 'VARIABLE_REFERENCE' - | 'VARIANCE' - | 'WHEN' - | 'WHERE' - ; - -DataDefinition - : DescribeStatement - ; - -DataDefinition_EDIT - : DescribeStatement_EDIT - ; - -// ===================================== Commonly used constructs ===================================== - -AggregateOrAnalytic - : 'AGGREGATE' - | 'ANALYTIC' - ; - -Commas - : ',' - | Commas ',' - ; - -AnyAs - : 'AS' - | 'AS' - ; - -AnyCreate - : 'CREATE' - | 'CREATE' - | 'CREATE' - ; - -AnyCursor - : 'CURSOR' - | 'PARTIAL_CURSOR' - ; - -AnyDot - : '.' - | '.' - | '.' - ; - -AnyFromOrIn - : 'FROM' - | 'IN' - ; - -AnyGroup - : 'GROUP' - | 'GROUP' - | 'GROUP' - ; - -AnyPartition - : 'PARTITION' - | 'PARTITION' - ; - -AnyTable - : 'TABLE' - | 'TABLE' - | 'TABLE' - ; - -AnyWith - : 'WITH' - | 'WITH' - | 'WITH' - ; - -DatabaseOrSchema - : 'DATABASE' - | 'SCHEMA' - | 'SCHEMA' - ; - -FromOrIn - : 'FROM' - | 'IN' - ; - -HiveIndexOrIndexes - : 'INDEX' - | 'INDEXES' - ; - -HiveOrImpalaComment - : 'COMMENT' - | 'COMMENT' - ; - -HiveOrImpalaCreate - : 'CREATE' - | 'CREATE' - ; - -HiveOrImpalaDatabasesOrSchemas - : 'DATABASES' - | 'SCHEMAS' - | 'DATABASES' - | 'SCHEMAS' - ; - -HiveOrImpalaEscaped - : 'ESCAPED' - | 'ESCAPED' - ; - -HiveOrImpalaFields - : 'FIELDS' - | 'FIELDS' - ; - -HiveOrImpalaFormat - : 'FORMAT' - | 'FORMAT' - ; - -HiveOrImpalaLeftSquareBracket - : '[' - | '[' - ; - -HiveOrImpalaLines - : 'LINES' - | 'LINES' - ; - -HiveOrImpalaLocation - : 'LOCATION' - | 'LOCATION' - ; - -HiveOrImpalaRightSquareBracket - : ']' - | ']' - ; - -HiveOrImpalaPartitioned - : 'PARTITIONED' - | 'PARTITIONED' - ; - -HiveOrImpalaStored - : 'STORED' - | 'STORED' - ; - -HiveOrImpalaTables - : 'TABLES' - | 'TABLES' - ; - -HiveOrImpalaTblproperties - : 'TBLPROPERTIES' - | 'TBLPROPERTIES' - ; - -HiveOrImpalaTerminated - : 'TERMINATED' - | 'TERMINATED' - ; - -HiveRoleOrUser - : 'ROLE' - | 'USER' - ; - -ImpalaRoleOrUser - : 'ROLE' - | 'USER' - ; - -SingleQuotedValue - : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 - | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' - ; - -SingleQuotedValue_EDIT - : 'SINGLE_QUOTE' 'PARTIAL_VALUE' - ; - -DoubleQuotedValue - : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 - | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' - ; - -DoubleQuotedValue_EDIT - : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' - ; - -QuotedValue - : SingleQuotedValue - | DoubleQuotedValue - ; - -QuotedValue_EDIT - : SingleQuotedValue_EDIT - | DoubleQuotedValue_EDIT - ; - -OptionalAggregateOrAnalytic - : - | AggregateOrAnalytic - ; - -OptionalHiveExtended - : - | 'EXTENDED' - ; - -OptionalHiveExtendedOrFormatted - : - | 'EXTENDED' - | 'FORMATTED' - ; - -OptionalExternal - : - | 'EXTERNAL' - | 'EXTERNAL' - ; - -OptionalImpalaExtendedOrFormatted - : - | 'EXTENDED' - | 'FORMATTED' - ; - -OptionallyFormattedIndex - : 'FORMATTED' HiveIndexOrIndexes - | HiveIndexOrIndexes - ; - -OptionallyFormattedIndex_EDIT - : 'FORMATTED' 'CURSOR' - { - parser.suggestKeywords(['INDEX', 'INDEXES']); - } - | 'CURSOR' HiveIndexOrIndexes - { - parser.suggestKeywords(['FORMATTED']); - } - ; - -OptionalFromDatabase - : - | FromOrIn DatabaseIdentifier - ; - -OptionalFromDatabase_EDIT - : FromOrIn DatabaseIdentifier_EDIT - ; - -OptionalCascade - : - | 'CASCADE' - ; - -OptionalCascadeOrRestrict - : - | 'CASCADE' - | 'CASCADE' - | 'RESTRICT' - | 'RESTRICT' - ; - -OptionalHiveCascadeOrRestrict - : - | 'CASCADE' - | 'RESTRICT' - ; - -OptionalHiveTemporary - : - | 'TEMPORARY' - ; - -OptionalHiveTransactional - : - | 'TRANSACTIONAL' - ; - -OptionalIfExists - : - | 'IF' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalIfNotExists - : - | 'IF' 'NOT' 'EXISTS' - { - parser.yy.correlatedSubQuery = false; - } - ; - -OptionalIfNotExists_EDIT - : 'IF' 'CURSOR' - { - parser.suggestKeywords(['NOT EXISTS']); - } - | 'IF' 'NOT' 'CURSOR' - { - parser.suggestKeywords(['EXISTS']); - } - ; - -OptionalInDatabase - : - | 'IN' DatabaseIdentifier - | 'IN' DatabaseIdentifier_EDIT - ; - -OptionalPartitionSpec - : - | PartitionSpec - ; - -OptionalPartitionSpec_EDIT - : PartitionSpec_EDIT - ; - -PartitionSpec - : AnyPartition '(' PartitionSpecList ')' - ; - -PartitionSpec_EDIT - : AnyPartition '(' PartitionSpecList_EDIT RightParenthesisOrError - ; - -RangePartitionSpec - : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - ; - -RangePartitionSpec_EDIT - : UnsignedValueSpecification 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification - { - parser.suggestKeywords(['VALUES']); - } - | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification - { - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - } - ; - -RangePartitionComparisonOperator - : 'COMPARISON_OPERATOR' - | '=' - | '<' - | '>' - ; - -ConfigurationName - : RegularIdentifier - | 'CURSOR' - | ConfigurationName '.' RegularIdentifier - | ConfigurationName '.' 'PARTIAL_CURSOR' - ; - -PartialBacktickedOrAnyCursor - : AnyCursor - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrCursor - : 'CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedOrPartialCursor - : 'PARTIAL_CURSOR' - | PartialBacktickedIdentifier - ; - -PartialBacktickedIdentifier - : 'BACKTICK' 'PARTIAL_VALUE' - ; - -RightParenthesisOrError - : ')' - | error - ; - -OptionalParenthesizedColumnList - : - | ParenthesizedColumnList - ; - -OptionalParenthesizedColumnList_EDIT - : ParenthesizedColumnList_EDIT - ; - -ParenthesizedColumnList - : '(' ColumnList ')' - ; - -ParenthesizedColumnList_EDIT - : '(' ColumnList_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestColumns(); - } - ; - -ColumnList - : ColumnIdentifier - | ColumnList ',' ColumnIdentifier - ; - -ColumnList_EDIT - : ColumnIdentifier_EDIT - | ColumnList ',' AnyCursor - { - parser.suggestColumns(); - } - | ColumnList ',' ColumnIdentifier_EDIT - | ColumnIdentifier_EDIT ',' ColumnList - | ColumnList ',' ColumnIdentifier_EDIT ',' ColumnList - | ColumnList ',' AnyCursor ',' ColumnList - { - parser.suggestColumns(); - } - ; - -ParenthesizedSimpleValueList - : '(' SimpleValueList ')' - ; - -SimpleValueList - : UnsignedValueSpecification - | SimpleValueList ',' UnsignedValueSpecification - ; - -SchemaQualifiedTableIdentifier - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - | RegularOrBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier ImpalaFields - { - // This is a special case for Impala expression like "SELECT | FROM db.table.col" - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ].concat($4) }; - } - ; - -SchemaQualifiedTableIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier AnyDot PartialBacktickedOrPartialCursor - { - // In Impala you can have statements like 'SELECT ... FROM testTable t, t.|' - parser.suggestTablesOrColumns($1); - } - | RegularOrBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier ImpalaFields_EDIT - { - // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js - // Issue is that suggestColumns is deleted if no tables are defined and this is - // Impala only cases like "SELECT | FROM db.table.col" - parser.suggestTables({ identifierChain: [{ name: $1 }, { name: $3 }].concat($4) }); - } - ; - -ImpalaFields - : ImpalaField -> [$1] - | ImpalaFields ImpalaField - { - $1.push($2); - } - ; - -ImpalaFields_EDIT - : ImpalaField_EDIT -> [] - | ImpalaFields ImpalaField_EDIT -> $1 - | ImpalaFields ImpalaField_EDIT ImpalaFields -> $1 - | ImpalaField_EDIT ImpalaFields -> [] - ; - -ImpalaField - : '.' RegularOrBacktickedIdentifier -> { name: $2 } - ; - -ImpalaField_EDIT - : '.' PartialBacktickedOrPartialCursor - ; - -SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier -> [{ name: $1 }] - | RegularOrBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] - ; - -SchemaQualifiedIdentifier_EDIT - : PartialBacktickedIdentifier - { - parser.suggestDatabases({ appendDot: true }); - } - | PartialBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier - { - parser.suggestDatabases(); - $$ = { identifierChain: [{ name: $1 }] }; - } - | RegularOrBacktickedIdentifier AnyDot PartialBacktickedOrPartialCursor - ; - -DatabaseIdentifier - : RegularOrBacktickedIdentifier - ; - -DatabaseIdentifier_EDIT - : PartialBacktickedOrCursor - { - parser.suggestDatabases(); - } - ; - -PartitionSpecList - : PartitionExpression - | PartitionSpecList ',' PartitionExpression - ; - -PartitionSpecList_EDIT - : PartitionExpression_EDIT - | PartitionSpecList ',' PartitionExpression_EDIT - | PartitionExpression_EDIT ',' PartitionSpecList - | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList - ; - -PartitionExpression - : ColumnIdentifier '=' ValueExpression - | ColumnIdentifier // Hive allows partial partition specs in some cases - ; - -PartitionExpression_EDIT - : ColumnIdentifier '=' ValueExpression_EDIT - | ColumnIdentifier '=' AnyCursor - { - parser.valueExpressionSuggest(); - } - | PartialBacktickedIdentifier '=' ValueExpression - { - parser.suggestColumns(); - } - | AnyCursor - { - parser.suggestColumns(); - } - ; - -OptionalHdfsLocation - : - | HdfsLocation - ; - -HdfsLocation - : HiveOrImpalaLocation HdfsPath - ; - -HdfsLocation_EDIT - : HiveOrImpalaLocation HdfsPath_EDIT - ; - -OptionalCachedInOrUncached - : - | CachedIn OptionalWithReplication - { - if (!$2) { - $$ = { suggestKeywords: ['WITH REPLICATION ='] }; - } - } - | 'UNCACHED' - ; - - -OptionalCachedIn - : - | CachedIn OptionalWithReplication - { - if (!$2) { - $$ = { suggestKeywords: ['WITH REPLICATION ='] }; - } - } - ; - -CachedIn - : 'CACHED' 'IN' QuotedValue - ; - -CachedIn_EDIT - : 'CACHED' 'CURSOR' - { - parser.suggestKeywords(['IN']); - } - ; - -OptionalWithReplication - : - | WithReplication - ; - -WithReplication - : 'WITH' 'REPLICATION' '=' SignedInteger - ; - -WithReplication_EDIT - : 'WITH' 'CURSOR' - { - parser.suggestKeywords(['REPLICATION =']); - } - | 'WITH' 'REPLICATION' 'CURSOR' - { - parser.suggestKeywords(['=']); - } - ; - -RegularOrBacktickedIdentifier - : RegularIdentifier - | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 - | 'BACKTICK' 'BACKTICK' -> '' - ; - -// TODO: Same as SchemaQualifiedTableIdentifier? -RegularOrBackTickedSchemaQualifiedName - : RegularOrBacktickedIdentifier - { - parser.addTableLocation(@1, [ { name: $1 } ]); - $$ = { identifierChain: [ { name: $1 } ] }; - } - | RegularOrBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@1, [ { name: $1 } ]); - parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); - $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; - } - ; - -RegularOrBackTickedSchemaQualifiedName_EDIT - : PartialBacktickedIdentifier - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - | RegularOrBacktickedIdentifier AnyDot PartialBacktickedOrPartialCursor - { - parser.suggestTablesOrColumns($1); - } - ; - - -LocalOrSchemaQualifiedName - : RegularOrBackTickedSchemaQualifiedName - | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } - ; - -LocalOrSchemaQualifiedName_EDIT - : RegularOrBackTickedSchemaQualifiedName_EDIT - | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier - ; - -ColumnReference - : BasicIdentifierChain - { - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - } - | BasicIdentifierChain AnyDot '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnReference_EDIT - : BasicIdentifierChain_EDIT - ; - -BasicIdentifierChain - : ColumnIdentifier - { - $$ = [ $1.identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); - } - | BasicIdentifierChain AnyDot ColumnIdentifier - { - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $1.push($3.identifier); - parser.addUnknownLocation($3.location, $1.concat()); - } - ; - -// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) -BasicIdentifierChain_EDIT - : ColumnIdentifier_EDIT - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | BasicIdentifierChain AnyDot ColumnIdentifier_EDIT - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | BasicIdentifierChain AnyDot ColumnIdentifier_EDIT AnyDot BasicIdentifierChain - | ColumnIdentifier_EDIT AnyDot BasicIdentifierChain - | BasicIdentifierChain AnyDot PartialBacktickedOrPartialCursor - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - | BasicIdentifierChain AnyDot PartialBacktickedOrPartialCursor AnyDot BasicIdentifierChain - { - parser.suggestColumns({ - identifierChain: $1 - }); - $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - } - ; - -DerivedColumnChain - : ColumnIdentifier -> [ $1.identifier ] - | DerivedColumnChain AnyDot ColumnIdentifier - { - $1.push($3.identifier); - } - ; - -DerivedColumnChain_EDIT - : ColumnIdentifier_EDIT - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | DerivedColumnChain AnyDot ColumnIdentifier_EDIT - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | DerivedColumnChain AnyDot ColumnIdentifier_EDIT AnyDot DerivedColumnChain - { - if ($3.insideKey) { - parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | ColumnIdentifier_EDIT AnyDot DerivedColumnChain - { - if ($1.insideKey) { - parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - } - | PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns(); - } - | DerivedColumnChain AnyDot PartialBacktickedIdentifierOrPartialCursor - { - parser.suggestColumns({ identifierChain: $1 }); - } - | DerivedColumnChain AnyDot PartialBacktickedIdentifierOrPartialCursor AnyDot DerivedColumnChain - { - parser.suggestColumns({ identifierChain: $1 }); - } - | PartialBacktickedIdentifierOrPartialCursor AnyDot DerivedColumnChain - { - parser.suggestColumns(); - } - ; - -ColumnIdentifier - : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 }; - | RegularOrBacktickedIdentifier HiveOrImpalaLeftSquareBracket ValueExpression HiveOrImpalaRightSquareBracket -> { identifier: { name: $1, keySet: true }, location: @1 } - | RegularOrBacktickedIdentifier HiveOrImpalaLeftSquareBracket HiveOrImpalaRightSquareBracket -> { identifier: { name: $1, keySet: true }, location: @1 } - ; - -ColumnIdentifier_EDIT - : RegularOrBacktickedIdentifier HiveOrImpalaLeftSquareBracket AnyCursor HiveOrImpalaRightSquareBracketOrError -> { identifier: { name: $1 }, insideKey: true } - | RegularOrBacktickedIdentifier HiveOrImpalaLeftSquareBracket ValueExpression_EDIT HiveOrImpalaRightSquareBracketOrError -> { identifier: { name: $1 }}; - ; - -PartialBacktickedIdentifierOrPartialCursor - : PartialBacktickedIdentifier - | 'PARTIAL_CURSOR' - ; - -HiveOrImpalaRightSquareBracketOrError - : HiveOrImpalaRightSquareBracket - | error - ; - -// TODO: Support | DECIMAL(precision, scale) -- (Note: Available in Hive 0.13.0 and later) -PrimitiveType - : 'TINYINT' - | 'TINYINT' - | 'SMALLINT' - | 'INT' - | 'BIGINT' - | 'BOOLEAN' - | 'FLOAT' - | 'DOUBLE' - | 'DOUBLE_PRECISION' - | 'REAL' - | 'STRING' - | 'STRING' - | 'DECIMAL' OptionalTypePrecision - | 'CHAR' OptionalTypeLength - | 'VARCHAR' OptionalTypeLength - | 'TIMESTAMP' - | 'TIMESTAMP' - | 'BINARY' - | 'DATE' - ; - -OptionalTypeLength - : - | '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalTypePrecision - : - | '(' 'UNSIGNED_INTEGER' ')' - | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' - ; - -// ===================================== DESCRIBE statement ===================================== - -DescribeStatement - : HiveDescribeStatement - | ImpalaDescribeStatement - ; - -DescribeStatement_EDIT - : HiveDescribeStatement_EDIT - | ImpalaDescribeStatement_EDIT - ; - -HiveDescribeStatement - : 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec - { - parser.addTablePrimary($3); - parser.addColumnLocation(@4, $4); - } - | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - parser.addTablePrimary($3); - } - | 'DESCRIBE' DatabaseOrSchema OptionalHiveExtended DatabaseIdentifier - { - parser.addDatabaseLocation(@4, [{ name: $4 }]); - } - | 'DESCRIBE' 'FUNCTION' OptionalHiveExtended RegularIdentifier - ; - -HiveDescribeStatement_EDIT - : 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain_EDIT OptionalPartitionSpec - { - parser.addTablePrimary($3); - } - | 'DESCRIBE' OptionalHiveExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec - { - if (!$2) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - } - | 'DESCRIBE' OptionalHiveExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec - { - if (!$2) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - } - | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec - { - parser.addTablePrimary($3); - parser.suggestColumns(); - if (!$5) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain 'CURSOR' OptionalPartitionSpec - { - if (!$6) { - parser.suggestKeywords(['PARTITION']); - } - } - | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec_EDIT - | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - - | 'DESCRIBE' OptionalHiveExtendedOrFormatted 'CURSOR' - { - if (!$2) { - parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DESCRIBE' DatabaseOrSchema OptionalHiveExtended DatabaseIdentifier_EDIT - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' DatabaseOrSchema OptionalHiveExtended 'CURSOR' DatabaseIdentifier - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' 'FUNCTION' OptionalHiveExtended 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - | 'DESCRIBE' 'FUNCTION' OptionalHiveExtended 'CURSOR' RegularIdentifier - { - if (!$3) { - parser.suggestKeywords(['EXTENDED']); - } - } - ; - -ImpalaDescribeStatement - : 'DESCRIBE' OptionalImpalaExtendedOrFormatted SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($3); - } - | 'DESCRIBE' 'DATABASE' OptionalImpalaExtendedOrFormatted DatabaseIdentifier - { - parser.addDatabaseLocation(@4, [{ name: $4 }]); - } - ; - -ImpalaDescribeStatement_EDIT - : 'DESCRIBE' OptionalImpalaExtendedOrFormatted 'CURSOR' - { - if (!$2) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'DESCRIBE' OptionalImpalaExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT - | 'DESCRIBE' OptionalImpalaExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($4); - if (!$2) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - } - | 'DESCRIBE' 'DATABASE' OptionalImpalaExtendedOrFormatted 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.suggestDatabases(); - } - | 'DESCRIBE' 'DATABASE' OptionalImpalaExtendedOrFormatted 'CURSOR' DatabaseIdentifier - { - if (!$3) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.addDatabaseLocation(@5, [{ name: $5 }]); - } - ; - -// ===================================== SELECT statement ===================================== - -QuerySpecification - : SelectStatement OptionalUnions -> $1 - | CommonTableExpression SelectStatement OptionalUnions - | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 - ; - -QuerySpecification_EDIT - : SelectStatement_EDIT OptionalUnions - | SelectStatement OptionalUnions_EDIT - | CommonTableExpression '(' QuerySpecification_EDIT ')' - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement_EDIT OptionalUnions - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression SelectStatement OptionalUnions_EDIT - { - parser.addCommonTableExpressions($1); - } - | CommonTableExpression_EDIT - | CommonTableExpression_EDIT '(' QuerySpecification ')' - | CommonTableExpression_EDIT SelectStatement OptionalUnions - ; - -SelectStatement - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - $$ = { selectList: $4 }; - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - $$ = { selectList: $4, tableExpression: $5 } - } - ; - -OptionalUnions - : - | Unions - ; - -OptionalUnions_EDIT - : Unions_EDIT - ; - -Unions - : UnionClause - | Unions UnionClause - ; - -Unions_EDIT - : UnionClause_EDIT - | Unions UnionClause_EDIT - | UnionClause_EDIT Unions - | Unions UnionClause_EDIT Unions - ; - -UnionClause - : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement - ; - -UnionClause_EDIT - : 'UNION' NewStatement 'CURSOR' - { - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - } - | 'UNION' NewStatement 'CURSOR' SelectStatement - { - parser.suggestKeywords(['ALL', 'DISTINCT']); - } - | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT - ; - -SelectStatement_EDIT - : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3 && !$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$3) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($4); - } - if ($4.suggestFunctions) { - parser.suggestFunctions(); - } - if ($4.suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($4.suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($4.suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($4.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$3 && !$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$3) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression_EDIT - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - parser.selectListNoTableSuggest($4, $2); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4, true); - var keywords = parser.getSelectListKeywords(); - if (!$2 || $2 === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$3 && !$2) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$3) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - parser.checkForSelectListKeywords($4); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' ',' TableExpression - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - parser.checkForSelectListKeywords($4); - } - | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' - { - parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); - parser.checkForSelectListKeywords($4); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - } - ; - -OptionalStraightJoin - : - | 'STRAIGHT_JOIN' - ; - -CommonTableExpression - : AnyWith WithQueries -> $2 - ; - -CommonTableExpression_EDIT - : AnyWith WithQueries_EDIT - ; - -WithQueries - : WithQuery -> [$1] - | WithQueries ',' WithQuery -> $1.concat([$3]); - ; - -WithQueries_EDIT - : WithQuery_EDIT - | WithQueries ',' WithQuery_EDIT - { - parser.addCommonTableExpressions($1); - } - | WithQuery_EDIT ',' WithQueries - | WithQueries ',' WithQuery_EDIT ',' WithQueries - { - parser.addCommonTableExpressions($1); - } - ; - -WithQuery - : RegularOrBacktickedIdentifier AnyAs '(' TableSubQueryInner ')' - { - parser.addCteAliasLocation(@1, $1); - $4.alias = $1; - $$ = $4; - } - ; - -WithQuery_EDIT - : RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | RegularOrBacktickedIdentifier AnyAs '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - | RegularOrBacktickedIdentifier AnyAs '(' TableSubQueryInner_EDIT RightParenthesisOrError - ; - -OptionalAllOrDistinct - : - | 'ALL' - | 'ALL' - | 'DISTINCT' - ; - -TableExpression - : FromClause OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - ; - -TableExpression_EDIT - : FromClause_EDIT OptionalSelectConditions - { - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - } - | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins - { - var keywords = []; - - parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - - if ($1) { - if (!$1.hasLateralViews && typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - if (parser.isImpala()) { - keywords.push({ value: 'USING', weight: 3 }); - } - } - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); - } - if ($1.tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); - } - if ($1.tableReferenceList.suggestJoins) { - parser.suggestJoins($1.tableReferenceList.suggestJoins); - } - if (!$1.hasLateralViews && $1.tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if (!$1.hasLateralViews && $1.tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($1.tableReferenceList); - } - } - } - - if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - if (parser.isHive()) { - keywords = keywords.concat(['CROSS', 'INNER', 'LEFT SEMI']); - } else if (parser.isImpala()) { - keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); - } else { - keywords.push('INNER'); - } - parser.suggestKeywords(keywords); - return; - } - - if ($3.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); - } - - if ($3.suggestFilters) { - parser.suggestFilters($3.suggestFilters); - } - if ($3.suggestGroupBys) { - parser.suggestGroupBys($3.suggestGroupBys); - } - if ($3.suggestOrderBys) { - parser.suggestOrderBys($3.suggestOrderBys); - } - - if ($3.empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - if (parser.isHive()) { - keywords = keywords.concat([ - { value: 'CROSS JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 } - ]); - } else if (parser.isImpala()) { - keywords = keywords.concat([ - { value: 'ANTI JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'LEFT ANTI JOIN', weight: 1 }, - { value: 'LEFT INNER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'OUTER JOIN', weight: 1 }, - { value: 'RIGHT ANTI JOIN', weight: 1 }, - { value: 'RIGHT INNER JOIN', weight: 1 }, - { value: 'RIGHT SEMI JOIN', weight: 1 }, - { value: 'SEMI JOIN', weight: 1 } - ]); - } else { - keywords.push({ value: 'INNER JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - } - | FromClause OptionalSelectConditions_EDIT OptionalJoins - { - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$2) { - parser.addClauseLocation('whereClause', @1); - parser.addClauseLocation('limitClause', @1); - return; - } - parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); - parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); - var keywords = []; - - if ($2.suggestColRefKeywords) { - parser.suggestColRefKeywords($2.suggestColRefKeywords); - parser.addColRefIfExists($2); - } - - if ($2.suggestKeywords && $2.suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); - } - - if ($2.cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - } - ; - -OptionalJoins - : - | Joins - | Joins_INVALID - ; - -FromClause - : 'FROM' TableReferenceList OptionalLateralViews - { - if (parser.isHive()) { - $$ = { tableReferenceList : $2, suggestKeywords: ['LATERAL VIEW'] } - } else { - $$ = { tableReferenceList : $2 } - } - if (parser.isHive() && $3) { - parser.yy.lateralViews = $3.lateralViews; - $$.hasLateralViews = true; - if ($3.suggestKeywords) { - $$.suggestKeywords = $$.suggestKeywords.concat($3.suggestKeywords); - } - } - } - ; - -FromClause_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReferenceList_EDIT OptionalLateralViews - { - if ($3) { - parser.yy.lateralViews = $3.lateralViews; - } - } - | 'FROM' TableReferenceList OptionalLateralViews_EDIT - ; - -OptionalSelectConditions - : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$1, $2, $3, $4, $5, $6, $6, $7, $8], - [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$5, true, parser.isImpala()]); - - if (keywords.length > 0) { - $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 }; - } else { - $$ = {}; - } - - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $7 ? @7 : undefined; - - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8) { - $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8) { - $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$5 && !$6 && !$7 && !$8) { - $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - } - ; - -OptionalSelectConditions_EDIT - : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - } - | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - } - | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT OptionalOffsetClause - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OffsetClause_EDIT - ; - -OptionalSelectConditions_EDIT - : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$3, $4, $5, $6, $7, $7, $8, $9], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$6, true, parser.isImpala()]); - if ($1.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); - } - $$ = parser.getValueExpressionKeywords($1, keywords); - $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9; - if ($1.columnReference) { - $$.columnReference = $1.columnReference; - } - if (!$3) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$3 && !$4 && !$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $3, @3, $1, @1); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$4, $5, $6, $7, $7, $8, $9], - [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$6, true, parser.isImpala()]); - if ($2.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); - } - if ($2.valueExpression) { - $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); - if ($2.valueExpression.columnReference) { - $$.columnReference = $2.valueExpression.columnReference; - } - } else { - $$ = { suggestKeywords: keywords }; - } - $$.cursorAtEnd = !$4 && !$5 && !$6 && !$7 && !$8 && !$9; - if (!$4 && !$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $2, @2); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR( - [$5, $6, $7, $7, $8, $9], - [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [parser.isHive(), true, parser.isHive(), parser.isHive() && !$6, true, parser.isImpala()]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 && !$7 && !$8 && !$9 }; - if (!$5 && !$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $3, @3); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR([$6, $7, $8, $9], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isHive(), true, parser.isImpala()]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 && !$7 && !$8 && !$9 }; - if (!$6) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $4, @4); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR([$7, $8, $9], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [parser.isHive(), true, parser.isImpala()]); - if ($5.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 5)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$7 && !$8 && !$9 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($7, @7, $5, @5); - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy 'CURSOR' OptionalLimitClause OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR([$8, $9], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isImpala()]); - if ($6.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 4)); - } - $$ = { suggestKeywords: keywords, cursorAtEnd: !$8 && !$9 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = @6; - $$.limitClauseLocation = $8 ? @8 : undefined; - } - | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause 'CURSOR' OptionalOffsetClause - { - var keywords = parser.getKeywordsForOptionalsLR([$9], [{ value: 'OFFSET', weight: 2 }], [parser.isImpala()]); - $$ = { suggestKeywords: keywords, cursorAtEnd: !$9 }; - $$.whereClauseLocation = $1 ? @1 : undefined; - $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); - $$.limitClauseLocation = $7 ? @7 : undefined; - } - ; - -OptionalWhereClause - : - | WhereClause - ; - -WhereClause - : 'WHERE' SearchCondition -> $2 - ; - -WhereClause_EDIT - : 'WHERE' SearchCondition_EDIT - { - if ($2.suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'WHERE' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OptionalGroupByClause - : - | GroupByClause - ; - -GroupByClause - : AnyGroup 'BY' GroupByColumnList OptionalHiveGroupingSetsCubeOrRollup - { - $$ = { valueExpression: $4 ? false : $3 }; - if (!$4 && parser.isHive()) { - $$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; - } - } - ; - -GroupByClause_EDIT - : AnyGroup 'BY' GroupByColumnList_EDIT OptionalHiveGroupingSetsCubeOrRollup - { - parser.suggestSelectListAliases(); - } - | AnyGroup 'BY' 'CURSOR' OptionalHiveGroupingSetsCubeOrRollup - { - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | AnyGroup 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - | AnyGroup 'BY' GroupByColumnList OptionalHiveGroupingSetsCubeOrRollup_EDIT - ; - -OptionalHiveGroupingSetsCubeOrRollup - : - | HiveGroupingSets - | 'WITH' 'CUBE' - | 'WITH' 'ROLLUP' - ; - -OptionalHiveGroupingSetsCubeOrRollup_EDIT - : HiveGroupingSets_EDIT - | 'WITH' 'CURSOR' - { - parser.suggestKeywords(['CUBE', 'ROLLUP']); - } - ; - -HiveGroupingSets - : 'GROUPING' 'SETS' '(' ColumnGroupingSets ')' - ; - -HiveGroupingSets_EDIT - : 'GROUPING' 'CURSOR' - { - parser.suggestKeywords(['SETS']); - } - | 'GROUPING' 'SETS' '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSets - : - | ColumnReference - | ColumnGroupingSets ',' ColumnGroupingSets - | '(' ColumnGroupingSets ')' - ; - -ColumnGroupingSets_EDIT - : ColumnGroupingSet_EDIT - | ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT - | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets - | '(' ColumnGroupingSets_EDIT RightParenthesisOrError - ; - -ColumnGroupingSet_EDIT - : AnyCursor - { - parser.suggestColumns(); - } - | ColumnReference_EDIT - ; - -GroupByColumnList - : ValueExpression - | GroupByColumnList ',' ValueExpression -> $3 - ; - -GroupByColumnList_EDIT - : ValueExpression_EDIT - | 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - } - | 'CURSOR' ',' GroupByColumnList - { - parser.valueExpressionSuggest(); - } - | ValueExpression_EDIT ',' GroupByColumnList - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' - | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList - ; - -GroupByColumnListPartTwo_EDIT - : ValueExpression_EDIT - | AnyCursor ValueExpression - { - parser.valueExpressionSuggest(); - } - | AnyCursor - { - parser.valueExpressionSuggest(); - } - ; - -OptionalOrderByClause - : - | OrderByClause - ; - -OrderByClause - : 'ORDER' 'BY' OrderByColumnList -> $3 - ; - -OrderByClause_EDIT - : 'ORDER' 'BY' OrderByColumnList_EDIT - { - if ($3.emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - } - | 'ORDER' 'CURSOR' - { - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - ; - -OrderByColumnList - : OrderByIdentifier - | OrderByColumnList ',' OrderByIdentifier -> $3 - ; - -OrderByColumnList_EDIT - : OrderByIdentifier_EDIT - | 'CURSOR' OrderByIdentifier - { - $$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } - | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } - ; - -OrderByIdentifier - : ValueExpression OptionalAscOrDesc OptionalImpalaNullsFirstOrLast -> parser.mergeSuggestKeywords($2, $3) - ; - -OrderByIdentifier_EDIT - : ValueExpression_EDIT OptionalAscOrDesc OptionalImpalaNullsFirstOrLast - { - parser.suggestSelectListAliases(); - } - | ValueExpression OptionalAscOrDesc OptionalImpalaNullsFirstOrLast_EDIT - | AnyCursor OptionalAscOrDesc OptionalImpalaNullsFirstOrLast - { - $$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - } - ; - -OptionalAscOrDesc - : - { - $$ = { suggestKeywords: ['ASC', 'DESC'] }; - } - | 'ASC' - | 'ASC' - | 'DESC' - | 'DESC' - ; - -OptionalImpalaNullsFirstOrLast - : - { - if (parser.isImpala()) { - $$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; - } else { - $$ = {}; - } - } - | 'NULLS' 'FIRST' - | 'NULLS' 'LAST' - ; - -OptionalImpalaNullsFirstOrLast_EDIT - : 'NULLS' 'CURSOR' - { - parser.suggestKeywords(['FIRST', 'LAST']); - } - ; - -OptionalClusterOrDistributeBy - : - | ClusterOrDistributeBy - ; - -ClusterOrDistributeBy - : ClusterByClause - | DistributeByClause -> { suggestKeywords: ['SORT BY'] } - | DistributeByClause SortByClause - | SortByClause - ; - -ClusterOrDistributeBy_EDIT - : ClusterByClause_EDIT - | DistributeByClause_EDIT - | DistributeByClause SortByClause_EDIT - | DistributeByClause_EDIT SortByClause - | SortByClause_EDIT - ; - -ClusterByClause - : 'CLUSTER' 'BY' ColumnList - ; - -ClusterByClause_EDIT - : 'CLUSTER' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'CLUSTER' 'BY' 'CURSOR' - { - parser.suggestColumns(); - parser.suggestSelectListAliases(); - } - | 'CLUSTER' 'BY' ColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -DistributeByClause - : 'DISTRIBUTE' 'BY' ColumnList - ; - -DistributeByClause_EDIT - : 'DISTRIBUTE' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'DISTRIBUTE' 'BY' 'CURSOR' - { - parser.suggestColumns(); - parser.suggestSelectListAliases(); - } - | 'DISTRIBUTE' 'BY' ColumnList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -SortByClause - : 'SORT' 'BY' SortByList -> $3 - ; - -SortByClause_EDIT - : 'SORT' 'CURSOR' - { - suggestKeywords: ['BY']; - } - | 'SORT' 'BY' SortByList_EDIT - { - parser.suggestSelectListAliases(); - } - ; - -SortByList - : SortByIdentifier - | SortByList ',' SortByIdentifier -> $3 - ; - -SortByList_EDIT - : SortByIdentifier_EDIT - | SortByIdentifier_EDIT ',' SortByList - | SortByList ',' SortByIdentifier_EDIT - | SortByList ',' SortByIdentifier_EDIT ',' SortByList - ; - -SortByIdentifier - : ColumnIdentifier OptionalAscOrDesc - { - parser.addColumnLocation($1.location, [ $1.identifier ]); - $$ = $2; - } - ; - -SortByIdentifier_EDIT - : ColumnIdentifier_EDIT OptionalAscOrDesc - | AnyCursor OptionalAscOrDesc - { - parser.suggestColumns(); - } - ; - -OptionalLimitClause - : - | LimitClause - ; - -LimitClause - : 'LIMIT' UnsignedNumericLiteral - | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral - | 'LIMIT' 'VARIABLE_REFERENCE' - | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' - | 'LIMIT' ValueExpression - ; - -LimitClause_EDIT - : 'LIMIT' 'CURSOR' - | 'LIMIT' 'CURSOR' - { - parser.suggestFunctions({ types: ['BIGINT'] }); - } - | 'LIMIT' ValueExpression_EDIT - { - delete parser.yy.result.suggestColumns; - } - ; - -OptionalOffsetClause - : - | OffsetClause - ; - -OffsetClause - : 'OFFSET' ValueExpression - ; - -OffsetClause_EDIT - : 'OFFSET' 'CURSOR' - { - parser.suggestFunctions({ types: ['BIGINT'] }); - } - | 'OFFSET' ValueExpression_EDIT - { - delete parser.yy.result.suggestColumns; - } - ; - -SearchCondition - : ValueExpression - ; - -SearchCondition_EDIT - : ValueExpression_EDIT - ; - -ValueExpression - : NonParenthesizedValueExpressionPrimary - ; - -ValueExpression_EDIT - : NonParenthesizedValueExpressionPrimary_EDIT - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); - } else { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - } - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpressionList - : ValueExpression - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression - { - $3.position = $1.position + 1; - $$ = $3; - } - ; - -ValueExpressionList_EDIT - : ValueExpression_EDIT - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT - { - $1.position += 1; - } - | ValueExpression_EDIT ',' ValueExpressionList - { - $1.position = 1; - } - | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList - { - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $1.position += 1; - } - | ValueExpressionList 'CURSOR' ',' ValueExpressionList - { - parser.suggestValueExpressionKeywords($1); - } - | AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | AnyCursor ',' - { - parser.valueExpressionSuggest(); - $$ = { cursorAtStart : true, position: 1 }; - } - | ',' AnyCursor - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - | ',' AnyCursor ',' ValueExpressionList - { - parser.valueExpressionSuggest(); - $$ = { position: 2 }; - } - ; - -InValueList - : NonParenthesizedValueExpressionPrimary - | InValueList ',' NonParenthesizedValueExpressionPrimary - ; - -NonParenthesizedValueExpressionPrimary - : UnsignedValueSpecification - | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart - { - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.expression) { - $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } - } else { - $$ = { function: fn, types: parser.findReturnTypes(fn) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | UserDefinedFunction - | 'NULL' -> { types: [ 'NULL' ] } - | ImpalaInterval -> { types: [ 'TIMESTAMP' ] } - ; - -NonParenthesizedValueExpressionPrimary_EDIT - : UnsignedValueSpecification_EDIT - | ColumnOrArbitraryFunctionRef_EDIT - { - if ($1.suggestKeywords) { - $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; - } else { - $$ = { types: ['COLREF'], columnReference: $1 }; - } - } - | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT - { - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); - $1.lastLoc.type = 'function'; - $1.lastLoc.function = fn; - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } - if ($1.lastLoc !== $1.firstLoc) { - $1.firstLoc.type = 'database'; - } else { - delete $1.lastLoc.identifierChain; - } - if ($2.position) { - parser.applyArgumentTypesToSuggestions(fn, $2.position); - } - $$ = { types: parser.findReturnTypes(fn) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | UserDefinedFunction_EDIT - | ImpalaInterval_EDIT - ; - -ColumnOrArbitraryFunctionRef - : BasicIdentifierChain - { - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; - $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } - } - | BasicIdentifierChain AnyDot '*' - { - parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); - } - ; - -ColumnOrArbitraryFunctionRef_EDIT - : BasicIdentifierChain_EDIT - ; - -ImpalaInterval - : 'INTERVAL' SignedInteger RegularIdentifier - ; - -ImpalaInterval_EDIT - : 'INTERVAL' SignedInteger 'CURSOR' - { - parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); - } - ; - -SignedInteger - : UnsignedNumericLiteral - | '-' UnsignedNumericLiteral - | '+' UnsignedNumericLiteral - ; - -UnsignedValueSpecification - : UnsignedLiteral - ; - -UnsignedValueSpecification_EDIT - : UnsignedLiteral_EDIT - { - parser.suggestValues($1); - } - ; - -UnsignedLiteral - : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } - | GeneralLiteral - ; - -UnsignedLiteral_EDIT - : GeneralLiteral_EDIT - ; - -UnsignedNumericLiteral - : ExactNumericLiteral - | ApproximateNumericLiteral - ; - -ExactNumericLiteral - : 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' AnyDot -> $1 + $2 - | 'UNSIGNED_INTEGER' AnyDot 'UNSIGNED_INTEGER' -> $1 + $2 + $3 - | AnyDot 'UNSIGNED_INTEGER' -> $1 + $2 - ; - -ApproximateNumericLiteral - : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | AnyDot UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - | 'UNSIGNED_INTEGER' AnyDot UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' - ; - -GeneralLiteral - : SingleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | DoubleQuotedValue - { - if (/\$\{[^}]*\}/.test($1)) { - parser.addVariableLocation(@1, $1); - $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } - } else { - $$ = { types: [ 'STRING' ] } - } - } - | TruthValue -> { types: [ 'BOOLEAN' ] } - ; - -GeneralLiteral_EDIT - : SingleQuotedValue_EDIT - { - $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - } - | DoubleQuotedValue_EDIT - { - $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - } - ; - -TruthValue - : 'TRUE' - | 'FALSE' - ; - -OptionalNot - : - | 'NOT' - ; - -SelectSpecification - : ValueExpression OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - $$ = { valueExpression: $1, alias: $2.alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); - } else { - $$ = { valueExpression: $1 } - } - } - | '*' - { - parser.addAsteriskLocation(@1, [{ asterisk: true }]); - $$ = { asterisk: true } - } - ; - -SelectSpecification_EDIT - : ValueExpression_EDIT OptionalCorrelationName - { - if ($2) { - parser.addColumnAliasLocation($2.location, $2.alias, @1); - } - } - - | AnyCursor AnyAs RegularOrBacktickedIdentifier - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(@3, $3, @1); - $$ = { suggestAggregateFunctions: true }; - } - | ValueExpression OptionalCorrelationName_EDIT -> $2 - ; - -SelectList - : SelectSpecification -> [ $1 ] - | SelectList ',' SelectSpecification - { - $1.push($3); - } - ; - -SelectList_EDIT - : SelectSpecification_EDIT - | 'CURSOR' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | 'CURSOR' ',' SelectList - { - $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectSpecification_EDIT ',' SelectList - | SelectList 'CURSOR' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList 'CURSOR' ',' SelectList - { - parser.checkForSelectListKeywords($1); - } - | SelectList ',' AnyCursor - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - } - | SelectList ',' SelectSpecification_EDIT -> $3 - | SelectList ',' AnyCursor SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' AnyCursor ',' - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' -> $3 - | SelectList ',' AnyCursor ',' SelectList - { - $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - } - | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 - ; - -TableReferenceList - : TableReference - | TableReferenceList ',' TableReference -> $3 - ; - -TableReferenceList_EDIT - : TableReference_EDIT - | TableReference_EDIT ',' TableReference - | TableReferenceList ',' TableReference_EDIT - | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList - | TableReferenceList ',' AnyCursor - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TableReference - : TablePrimaryOrJoinedTable - ; - -TableReference_EDIT - : TablePrimaryOrJoinedTable_EDIT - ; - -TablePrimaryOrJoinedTable - : TablePrimary - { - $$ = $1; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - $$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - } - | JoinedTable - ; - -TablePrimaryOrJoinedTable_EDIT - : TablePrimary_EDIT - | JoinedTable_EDIT - ; - -JoinedTable - : TablePrimary Joins -> $2 - ; - -JoinedTable_EDIT - : TablePrimary Joins_EDIT - | TablePrimary_EDIT Joins - ; - -Joins - : JoinType OptionalImpalaBroadcastOrShuffle TablePrimary OptionalJoinCondition - { - if ($4 && $4.valueExpression) { - $$ = $4.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($4.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($4.suggestKeywords) { - $$.suggestKeywords = $4.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - | Joins JoinType OptionalImpalaBroadcastOrShuffle TablePrimary OptionalJoinCondition - { - if ($5 && $5.valueExpression) { - $$ = $5.valueExpression; - } else { - $$ = {}; - } - $$.joinType = $1; - if ($5.noJoinCondition) { - $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($5.suggestKeywords) { - $$.suggestKeywords = $5.suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - } - ; - -Joins_INVALID - : JoinType OptionalImpalaBroadcastOrShuffle -> { joinType: $1 } - | JoinType OptionalImpalaBroadcastOrShuffle Joins -> { joinType: $1 } - ; - -OptionalImpalaBroadcastOrShuffle - : - | 'BROADCAST' - | 'SHUFFLE' - ; - -Join_EDIT - : JoinType_EDIT OptionalImpalaBroadcastOrShuffle TablePrimary OptionalJoinCondition - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType_EDIT OptionalImpalaBroadcastOrShuffle - { - if ($1.suggestKeywords) { - parser.suggestKeywords($1.suggestKeywords); - } - } - | JoinType OptionalImpalaBroadcastOrShuffle TablePrimary_EDIT OptionalJoinCondition - | JoinType OptionalImpalaBroadcastOrShuffle TablePrimary JoinCondition_EDIT - | JoinType OptionalImpalaBroadcastOrShuffle 'CURSOR' OptionalJoinCondition - { - if (!$2 && parser.isImpala()) { - parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); - } - if (!$2 && parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $1, - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - ; - -Joins_EDIT - : Join_EDIT - | Join_EDIT Joins - | Joins Join_EDIT - | Joins Join_EDIT Joins - ; - -JoinType - : 'JOIN' -> 'JOIN' - | 'ANTI' 'JOIN' -> 'ANTI JOIN' - | 'CROSS' 'JOIN' -> 'CROSS JOIN' - | 'INNER' 'JOIN' -> 'INNER JOIN' - | 'OUTER' 'JOIN' -> 'OUTER JOIN' - | 'SEMI' 'JOIN' -> 'SEMI JOIN' - | 'FULL' 'JOIN' -> 'FULL JOIN' - | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' - | 'LEFT' 'JOIN' -> 'LEFT JOIN' - | 'LEFT' 'ANTI' 'JOIN' -> 'LEFT ANTI JOIN' - | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' - | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' - | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' - | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' - | 'RIGHT' 'ANTI' 'JOIN' -> 'RIGHT ANTI JOIN' - | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' - | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' - ; - -JoinType_EDIT - : 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } - | 'LEFT' 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: parser.isImpala() ? ['ANTI', 'INNER', 'OUTER', 'SEMI'] : parser.isHive() ? ['OUTER', 'SEMI'] : ['OUTER'] } - | 'RIGHT' 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } - | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: parser.isImpala() ? ['ANTI', 'INNER', 'OUTER', 'SEMI'] : ['OUTER'] } - ; - -OptionalJoinCondition - : -> { noJoinCondition: true, suggestKeywords: parser.isImpala() ? ['ON', 'USING'] : ['ON'] } - | 'ON' ValueExpression -> { valueExpression: $2 } - | 'USING' '(' UsingColList ')' -> {} - ; - -UsingColList - : RegularOrBacktickedIdentifier - | UsingColList ',' RegularOrBacktickedIdentifier - ; - -JoinCondition_EDIT - : 'ON' ValueExpression_EDIT - | 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - } - ; - -TablePrimary - : TableOrQueryName OptionalHiveTableSample OptionalCorrelationName OptionalImpalaTableSample - { - $$ = { - primary: $1 - } - if ($1.identifierChain) { - if ($3) { - $1.alias = $3.alias - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - var keywords = []; - if ($4 && $4.suggestKeywords) { - keywords = $4.suggestKeywords; - } else { - // Right-to-left for cursor after TablePrimary - keywords = parser.getKeywordsForOptionalsLR([$4, $3, $2], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [parser.isImpala(), true, parser.isHive()]); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - | DerivedTable OptionalCorrelationName OptionalImpalaTableSample - { - $$ = { - primary: $1 - }; - - if ($2) { - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } - - var keywords = []; - if ($3 && $3.suggestKeywords) { - keywords = $3.suggestKeywords; - } else { - keywords = parser.getKeywordsForOptionalsLR([$3, $2], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [parser.isImpala(), true]); - } - if (keywords.length > 0) { - $$.suggestKeywords = keywords; - } - } - ; - -TablePrimary_EDIT - : TableOrQueryName_EDIT OptionalHiveTableSample OptionalCorrelationName OptionalImpalaTableSample - { - if ($3) { - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - } - | TableOrQueryName OptionalHiveTableSample_EDIT OptionalCorrelationName OptionalImpalaTableSample - { - if ($3) { - $1.alias = $3.alias; - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - | TableOrQueryName OptionalHiveTableSample OptionalCorrelationName OptionalImpalaTableSample_EDIT - { - if ($3) { - $1.alias = $3.alias; - parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); - } - parser.addTablePrimary($1); - } - | DerivedTable_EDIT OptionalCorrelationName OptionalImpalaTableSample - { - if ($2) { - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias); - } - } - | DerivedTable OptionalCorrelationName_EDIT OptionalImpalaTableSample - ; - -TableOrQueryName - : SchemaQualifiedTableIdentifier - ; - -TableOrQueryName_EDIT - : SchemaQualifiedTableIdentifier_EDIT - ; - -DerivedTable - : TableSubQuery - ; - -DerivedTable_EDIT - : TableSubQuery_EDIT - ; - -OptionalHiveTableSample - : - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn ')' - | 'TABLESAMPLE' '(' ExactNumericLiteral 'PERCENT' ')' - | 'TABLESAMPLE' '(' ExactNumericLiteral 'ROWS' ')' - | 'TABLESAMPLE' '(' 'REGULAR_IDENTIFIER' ')' - ; - -OptionalHiveTableSample_EDIT - : 'TABLESAMPLE' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['BUCKET']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['OUT OF']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['OF']); - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn 'CURSOR' RightParenthesisOrError - { - if (!$8) { - parser.suggestKeywords(['ON']); - } - } - | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn_EDIT RightParenthesisOrError - | 'TABLESAMPLE' '(' ExactNumericLiteral 'CURSOR' RightParenthesisOrError - { - if ($3.indexOf('.') === -1 ) { - parser.suggestKeywords(['PERCENT', 'ROWS']); - } else { - parser.suggestKeywords(['PERCENT']); - } - } - ; - -OptionalImpalaTableSample - : - | 'TABLESAMPLE' 'SYSTEM' '(' 'UNSIGNED_INTEGER' ')' --> { suggestKeywords: ['REPEATABLE()'] } - | 'TABLESAMPLE' 'SYSTEM' '(' 'UNSIGNED_INTEGER' ')' 'REPEATABLE' '(' 'UNSIGNED_INTEGER' ')' - ; - -OptionalImpalaTableSample_EDIT - : 'TABLESAMPLE' 'CURSOR' - { - parser.suggestKeywords(['SYSTEM()']); - } - ; - -OptionalOnColumn - : - | 'ON' ValueExpression - ; - -OptionalOnColumn_EDIT - : 'ON' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | 'ON' ValueExpression_EDIT - ; - -PushQueryState - : - { - parser.pushQueryState(); - } - ; - -PopQueryState - : - { - parser.popQueryState(); - } - ; - -TableSubQuery - : '(' TableSubQueryInner ')' -> $2 - | '(' DerivedTable OptionalCorrelationName ')' - { - if ($3) { - $2.alias = $3.alias; - parser.addTablePrimary({ subQueryAlias: $3.alias }); - parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); - } - $$ = $2; - } - ; - -TableSubQuery_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['SELECT']); - } - ; - -TableSubQueryInner - : PushQueryState SubQuery - { - var subQuery = parser.getSubQuery($2); - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - parser.popQueryState(subQuery); - $$ = subQuery; - } - ; - -TableSubQueryInner_EDIT - : PushQueryState SubQuery_EDIT PopQueryState - ; - -SubQuery - : QueryExpression - ; - -SubQuery_EDIT - : QueryExpression_EDIT - ; - -QueryExpression - : QueryExpressionBody - ; - -QueryExpression_EDIT - : QueryExpressionBody_EDIT - ; - -QueryExpressionBody - : NonJoinQueryExpression - ; - -QueryExpressionBody_EDIT - : NonJoinQueryExpression_EDIT - ; - -NonJoinQueryExpression - : NonJoinQueryTerm - ; - -NonJoinQueryExpression_EDIT - : NonJoinQueryTerm_EDIT - ; - -NonJoinQueryTerm - : NonJoinQueryPrimary - ; - -NonJoinQueryTerm_EDIT - : NonJoinQueryPrimary_EDIT - ; - -NonJoinQueryPrimary - : SimpleTable - ; - -NonJoinQueryPrimary_EDIT - : SimpleTable_EDIT - ; - -SimpleTable - : QuerySpecification - ; - -SimpleTable_EDIT - : QuerySpecification_EDIT - ; - -OptionalCorrelationName - : - | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } - | QuotedValue -> { alias: $1, location: @1 } - | AnyAs RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } - | AnyAs QuotedValue -> { alias: $2, location: @2 } - ; - -OptionalCorrelationName_EDIT - : PartialBacktickedIdentifier - | QuotedValue_EDIT - | AnyAs PartialBacktickedIdentifier - | AnyAs QuotedValue_EDIT - | AnyAs 'CURSOR' - ; - -OptionalLateralViews - : - | OptionalLateralViews LateralView - { - if ($1 && $2.lateralView) { - $1.lateralViews.push($2.lateralView); - $$ = $1; - } else if ($2.lateralView) { - $$ = { lateralViews: [ $2.lateralView ] }; - } - if ($2.suggestKeywords) { - $$.suggestKeywords = $2.suggestKeywords - } - } - ; - -OptionalLateralViews_EDIT - : OptionalLateralViews LateralView_EDIT OptionalLateralViews - ; - -UserDefinedFunction - : AggregateFunction OptionalOverClause - { - if (!$2) { - $1.suggestKeywords = ['OVER']; - } - } - | AnalyticFunction OverClause - | CastFunction - | HiveExtractFunction - | ImpalaExtractFunction - ; - -UserDefinedFunction_EDIT - : AggregateFunction_EDIT - | AggregateFunction OptionalOverClause_EDIT - | AnalyticFunction_EDIT - | AnalyticFunction_EDIT OverClause - | AnalyticFunction 'CURSOR' - { - parser.suggestKeywords(['OVER']); - } - | AnalyticFunction OverClause_EDIT - | CastFunction_EDIT - | HiveExtractFunction_EDIT - | ImpalaExtractFunction_EDIT - ; - -ArbitraryFunction - : RegularIdentifier ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - | ArbitraryFunctionName ArbitraryFunctionRightPart - { - parser.addFunctionLocation(@1, $1); - if ($2.expression) { - $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } - } else { - $$ = { function: $1, types: parser.findReturnTypes($1) } - } - } - ; - -ArbitraryFunction_EDIT - : RegularIdentifier ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT - { - parser.addFunctionLocation(@1, $1); - if ($2.position) { - parser.applyArgumentTypesToSuggestions($1, $2.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -ArbitraryFunctionName - : 'IF' - | 'ARRAY' - | 'BINARY' - | 'MAP' - | 'REPLACE' - | 'TRUNCATE' - | 'USER' - ; - -ArbitraryFunctionRightPart - : '(' ')' - | '(' ValueExpressionList ')' -> { expression: $2 } - ; - -ArbitraryFunctionRightPart_EDIT - : '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { position: 1 } - } - | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - } - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 - ; - -AggregateFunction - : CountFunction - | SumFunction - | OtherAggregateFunction - ; - -AggregateFunction_EDIT - : CountFunction_EDIT - | SumFunction_EDIT - | OtherAggregateFunction_EDIT - ; - -AnalyticFunction - : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } - ; - -AnalyticFunction_EDIT - : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError - { - parser.applyArgumentTypesToSuggestions($1, $3.position); - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OptionalOverClause - : - | OverClause - ; - -OptionalOverClause_EDIT - : OverClause_EDIT - ; - -OverClause - : 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - | 'OVER' RegularOrBacktickedIdentifier - | 'OVER' WindowExpression - ; - -OverClause_EDIT - : 'OVER' WindowExpression_EDIT - | 'OVER' WindowExpression_EDIT - ; - -WindowExpression - : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' - ; - -WindowExpression_EDIT - : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - } - | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$3 && !$4) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$3) { - parser.suggestKeywords(['PARTITION BY']); - } - } - | '(' AnyPartition 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError - { - if (!$6) { - parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($4); - } - } - ; - -OptionalPartitionBy - : - | PartitionBy - ; - -PartitionBy - : AnyPartition 'BY' ValueExpressionList -> $3 - ; - -PartitionBy_EDIT - : AnyPartition 'CURSOR' - { - parser.suggestKeywords(['BY']); - } - | AnyPartition 'BY' 'CURSOR' - { - parser.valueExpressionSuggest(); - } - | AnyPartition 'BY' ValueExpressionList_EDIT - ; - -OptionalOrderByAndWindow - : - | OrderByClause OptionalWindowSpec - ; - -OptionalOrderByAndWindow_EDIT - : OrderByClause_EDIT - { - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - } - | OrderByClause 'CURSOR' OptionalWindowSpec - { - var keywords = []; - if ($1.suggestKeywords) { - keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); - } - if (!$3) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - } - | OrderByClause WindowSpec_EDIT - ; - -OptionalWindowSpec - : - | WindowSpec - ; - -WindowSpec - : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing - ; - -WindowSpec_EDIT - : RowsOrRange 'CURSOR' - { - parser.suggestKeywords(parser.isHive() ? ['BETWEEN', 'UNBOUNDED'] : ['BETWEEN']); - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' - { - if (!$4 && !$5) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$5) { - parser.suggestKeywords(['AND']); - } - } - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing - | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' - { - if (!$4 && parser.isHive()) { - parser.suggestKeywords(['PRECEDING']); - } - } - | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT - ; - -PopLexerState - : - { - lexer.popState(); - } - ; - -PushHdfsLexerState - : - { - lexer.begin('hdfs'); - } - ; - -HdfsPath - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' - ; - -HdfsPath_EDIT - : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: $2 }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' - { - parser.suggestHdfs({ path: '' }); - } - | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' - { - parser.suggestHdfs({ path: '' }); - } - ; - -RowsOrRange - : 'ROWS' - | AnyRange - ; - -OptionalCurrentOrPreceding - : - | IntegerOrUnbounded 'PRECEDING' - | AnyCurrent 'ROW' - ; - -OptionalCurrentOrPreceding_EDIT - : IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['PRECEDING']); - } - | AnyCurrent 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - ; - -AnyCurrent - : 'CURRENT' - | 'CURRENT' - | 'CURRENT' - ; - -AnyRange - : 'RANGE' - | 'RANGE' - ; - -OptionalAndFollowing - : - | 'AND' AnyCurrent 'ROW' - | 'AND' IntegerOrUnbounded 'FOLLOWING' - ; - -OptionalAndFollowing_EDIT - : 'AND' 'CURSOR' - { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - } - | 'AND' AnyCurrent 'CURSOR' - { - parser.suggestKeywords(['ROW']); - } - | 'AND' IntegerOrUnbounded 'CURSOR' - { - parser.suggestKeywords(['FOLLOWING']); - } - ; - -IntegerOrUnbounded - : 'UNSIGNED_INTEGER' - | 'UNBOUNDED' - ; - -OptionalHavingClause - : - | HavingClause - ; - -HavingClause - : 'HAVING' ValueExpression - ; - -HavingClause_EDIT - : 'HAVING' 'CURSOR' - { - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - | 'HAVING' ValueExpression_EDIT - { - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - } - ; - -OptionalWindowClause - : - | WindowClause - ; - -WindowClause - : 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression - ; - -WindowClause_EDIT - : 'WINDOW' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['AS']); - } - | 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression_EDIT - ; - -CastFunction - : 'CAST' '(' ValueExpression AnyAs PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ')' -> { types: [ 'T' ] } - ; - -CastFunction_EDIT - : 'CAST' '(' AnyCursor AnyAs PrimitiveType RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' AnyCursor AnyAs RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression_EDIT AnyAs PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } - | 'CAST' '(' ValueExpression_EDIT AnyAs RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } - | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ $5.toUpperCase() ] }; - } - | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' ValueExpression AnyAs 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - | 'CAST' '(' AnyAs 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(parser.getTypeKeywords()); - $$ = { types: [ 'T' ] }; - } - ; - -CountFunction - : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -CountFunction_EDIT - : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - } - parser.suggestKeywords(keywords); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -HiveExtractFunction - : 'EXTRACT' '(' HiveDateField 'FROM' ValueExpression ')' -> { types: ['INT'] } - ; - -HiveExtractFunction_EDIT - : 'EXTRACT' '(' AnyCursor RightParenthesisOrError - { - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - $$ = { types: ['INT'] } - } - | 'EXTRACT' '(' HiveDateField 'CURSOR' RightParenthesisOrError - { - parser.suggestKeywords(['FROM']); - $$ = { types: ['INT'] } - } - | 'EXTRACT' '(' HiveDateField 'FROM' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['INT'] } - } - | 'EXTRACT' '(' HiveDateField 'FROM' ValueExpression_EDIT RightParenthesisOrError -> { types: ['INT'] } - | 'EXTRACT' '(' AnyCursor 'FROM' ValueExpression RightParenthesisOrError - { - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - $$ = { types: ['INT'] } - } - | 'EXTRACT' '(' HiveDateField 'CURSOR' ValueExpression RightParenthesisOrError - { - parser.suggestKeywords(['FROM']); - $$ = { types: ['INT'] } - } - ; - -HiveDateField - : 'DAY' - | 'DAYOFWEEK' - | 'HOUR' - | 'MINUTE' - | 'MONTH' - | 'QUARTER' - | 'SECOND' - | 'WEEK' - | 'YEAR' - ; - -OtherAggregateFunction - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } - ; - -OtherAggregateFunction_EDIT - : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else if (parser.isImpala()) { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($1, 1); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError - { - if ($4.cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - if ($1.toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else if (parser.isImpala()) { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, $4.position); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -OtherAggregateFunction_Type - : 'APPX_MEDIAN' - | 'AVG' - | 'COLLECT_SET' - | 'COLLECT_LIST' - | 'CORR' - | 'COVAR_POP' - | 'COVAR_SAMP' - | 'GROUP_CONCAT' - | 'HISTOGRAM_NUMERIC' - | 'STDDEV' - | 'STDDEV_POP' - | 'STDDEV_SAMP' - | 'MAX' - | 'MIN' - | 'NDV' - | 'NTILE' - | 'PERCENTILE' - | 'PERCENTILE_APPROX' - | 'VARIANCE' - | 'VARIANCE_POP' - | 'VARIANCE_SAMP' - | 'VAR_POP' - | 'VAR_SAMP' - ; - -ImpalaExtractFunction - : 'EXTRACT' '(' ValueExpression FromOrComma ValueExpression ')' - | 'EXTRACT' '(' ')' - ; - -ImpalaExtractFunction_EDIT - : 'EXTRACT' '(' AnyCursor FromOrComma ValueExpression RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' AnyCursor FromOrComma RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression_EDIT FromOrComma ValueExpression RightParenthesisOrError - { - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression_EDIT FromOrComma RightParenthesisOrError - { - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression_EDIT RightParenthesisOrError - { - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression FromOrComma AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' FromOrComma AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression FromOrComma ValueExpression_EDIT RightParenthesisOrError - { - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' FromOrComma ValueExpression_EDIT RightParenthesisOrError - { - parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression 'CURSOR' ValueExpression RightParenthesisOrError - { - if ($3.types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($3, ['FROM']); - } else { - parser.suggestValueExpressionKeywords($3); - } - $$ = { types: parser.findReturnTypes($1) }; - } - | 'EXTRACT' '(' ValueExpression 'CURSOR' RightParenthesisOrError - { - if ($3.types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($3, ['FROM']); - } else { - parser.suggestValueExpressionKeywords($3); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -FromOrComma - : 'FROM' - | ',' - ; - -SumFunction - : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } - | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } - ; - -SumFunction_EDIT - : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError - { - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($1, 1); - var keywords = parser.getSelectListKeywords(true); - if (!$3) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError - { - parser.suggestValueExpressionKeywords($4); - $$ = { types: parser.findReturnTypes($1) }; - } - | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError - { - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($1, 1); - } - $$ = { types: parser.findReturnTypes($1) }; - } - ; - -LateralView - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases -> { lateralView: { udtf: $4, tableAlias: $5, columnAliases: $6 }} - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier - { - if ($4.function.toLowerCase() === 'explode') { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; - } else if ($4.function.toLowerCase() === 'posexplode') { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; - } else { - $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: [] }, suggestKeywords: ['AS'] }; - } - } - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction LateralViewColumnAliases -> { lateralView: { udtf: $4, columnAliases: $5 }} - ; - -LateralView_EDIT - : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier LateralViewColumnAliases - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases_EDIT - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor - | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor LateralViewColumnAliases - | 'LATERAL' 'VIEW' OptionalOuter 'CURSOR' - { - if (!$3) { - parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); - } else { - parser.suggestKeywords(['explode', 'posexplode']); - } - } - | 'LATERAL' 'CURSOR' - { - parser.suggestKeywords(['VIEW']); - } - ; - -OptionalOuter - : - | 'OUTER' - ; - -LateralViewColumnAliases - : 'AS' RegularOrBacktickedIdentifier -> [ $2 ] - | 'AS' RegularOrBacktickedIdentifier ',' RegularOrBacktickedIdentifier -> [ $2, $4 ] - ; - -LateralViewColumnAliases_EDIT - : 'AS' PartialBacktickedOrCursor - | 'AS' RegularOrBacktickedIdentifier ',' PartialBacktickedOrAnyCursor - ; \ No newline at end of file diff --git a/src/jison/sql_set.jison b/src/jison/sql_set.jison deleted file mode 100644 index c1ae3af..0000000 --- a/src/jison/sql_set.jison +++ /dev/null @@ -1,67 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : SetRoleStatement - | SetSpecification - ; - -DataDefinition_EDIT - : SetRoleStatement_EDIT - | 'SET' 'CURSOR' - { - parser.suggestSetOptions(); - if (parser.isHive()) { - parser.suggestKeywords(['ROLE']); - } - if (parser.isImpala()) { - parser.suggestKeywords(['ALL']); - } - } - ; - -SetSpecification - : 'SET' SetOption '=' SetValue - | 'SET' 'ALL' - ; - -SetOption - : RegularIdentifier - | SetOption AnyDot RegularIdentifier - ; - -SetValue - : RegularIdentifier - | SignedInteger - | SignedInteger RegularIdentifier - | QuotedValue - | 'TRUE' - | 'FALSE' - | 'NULL' - ; - -SetRoleStatement - : 'SET' 'ROLE' RegularIdentifier - | 'SET' 'ROLE' 'ALL' - | 'SET' 'ROLE' 'NONE' - ; - -SetRoleStatement_EDIT - : 'SET' 'ROLE' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'NONE']); - } - ; \ No newline at end of file diff --git a/src/jison/sql_show.jison b/src/jison/sql_show.jison deleted file mode 100644 index a5ddc4b..0000000 --- a/src/jison/sql_show.jison +++ /dev/null @@ -1,741 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : ShowStatement - ; - -DataDefinition_EDIT - : ShowStatement_EDIT - ; - -ShowStatement - : ShowColumnStatsStatement - | ShowColumnsStatement - | ShowCompactionsStatement - | ShowConfStatement - | ShowCreateTableStatement - | ShowCurrentRolesStatement - | ShowDatabasesStatement - | ShowFilesStatement - | ShowFunctionsStatement - | ShowGrantStatement - | ShowIndexStatement - | ShowLocksStatement - | ShowPartitionsStatement - | ShowRoleStatement - | ShowRolesStatement - | ShowTableStatement - | ShowTablesStatement - | ShowTblPropertiesStatement - | ShowTransactionsStatement - | ShowViewsStatement - ; - -AnyShow - : 'SHOW' - | 'SHOW' - ; - -ShowStatement_EDIT - : AnyShow 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'CREATE VIEW', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'GRANT USER', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); - } else { - parser.suggestKeywords(['COLUMNS', 'DATABASES', 'TABLES']); - } - } - | AnyShow 'CURSOR' RegularOrBackTickedSchemaQualifiedName - { - // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT - if (!parser.isImpala() && $3.identifierChain && $3.identifierChain.length === 1 && $3.identifierChain[0].name.toLowerCase() === 'roles') { - parser.suggestKeywords(['CURRENT']); - parser.yy.locations.pop(); - } else { - parser.addTablePrimary($3); - if (parser.isImpala()) { - parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'CREATE VIEW', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); - } - } - } - | AnyShow 'CURSOR' LIKE SingleQuotedValue - { - if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); - } else if (parser.isHive()) { - parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); - } - } - | ShowColumnStatsStatement_EDIT - | ShowColumnsStatement_EDIT - | ShowCreateTableStatement_EDIT - | ShowCurrentRolesStatement_EDIT - | ShowDatabasesStatement_EDIT - | ShowFilesStatement_EDIT - | ShowFunctionsStatement_EDIT - | ShowGrantStatement_EDIT - | ShowIndexStatement_EDIT - | ShowLocksStatement_EDIT - | ShowPartitionsStatement_EDIT - | ShowRoleStatement_EDIT - | ShowTableStatement_EDIT - | ShowTablesStatement_EDIT - | ShowTblPropertiesStatement_EDIT - | ShowViewsStatement_EDIT - ; - -ShowColumnStatsStatement - : AnyShow 'COLUMN' 'STATS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - } - ; - -ShowColumnStatsStatement_EDIT - : AnyShow 'COLUMN' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | AnyShow 'COLUMN' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | AnyShow 'COLUMN' 'STATS' RegularOrBackTickedSchemaQualifiedName_EDIT - ; - -ShowColumnsStatement - : AnyShow 'COLUMNS' AnyFromOrIn RegularOrBacktickedIdentifier - | AnyShow 'COLUMNS' AnyFromOrIn RegularOrBacktickedIdentifier AnyFromOrIn RegularOrBacktickedIdentifier - ; - -ShowColumnsStatement_EDIT - : AnyShow 'COLUMNS' 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | AnyShow 'COLUMNS' 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | AnyShow 'COLUMNS' AnyFromOrIn 'CURSOR' - { - parser.suggestTables(); - } - | AnyShow 'COLUMNS' AnyFromOrIn 'CURSOR' AnyFromOrIn - { - parser.suggestTables(); - } - | AnyShow 'COLUMNS' AnyFromOrIn 'CURSOR' AnyFromOrIn RegularOrBacktickedIdentifier - { - parser.suggestTables(); - } - | AnyShow 'COLUMNS' AnyFromOrIn RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | AnyShow 'COLUMNS' AnyFromOrIn RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | AnyShow 'COLUMNS' AnyFromOrIn RegularOrBacktickedIdentifier AnyFromOrIn 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -ShowCompactionsStatement - : AnyShow 'COMPACTIONS' - ; - -ShowConfStatement - : AnyShow 'CONF' ConfigurationName - ; - -ShowCreateTableStatement - : AnyShow HiveOrImpalaCreate AnyTableOrView RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - } - ; - -ShowCreateTableStatement_EDIT - : AnyShow HiveOrImpalaCreate 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE']); - } - } - | AnyShow HiveOrImpalaCreate AnyTableOrView 'CURSOR' - { - if ($3.isView && parser.isImpala()) { - parser.suggestTables({ onlyViews: true }); - } else { - parser.suggestTables(); - } - parser.suggestDatabases({ - appendDot: true - }); - } - | AnyShow HiveOrImpalaCreate AnyTableOrView RegularOrBackTickedSchemaQualifiedName_EDIT - { - if (parser.yy.result.suggestTables && $3.isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - } - | AnyShow HiveOrImpalaCreate 'CURSOR' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - if (parser.isImpala()) { - parser.suggestKeywords(['TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE']); - } - } - ; - -AnyTableOrView - : AnyTable - | 'VIEW' --> { isView: true } - ; - -ShowCurrentRolesStatement - : AnyShow 'CURRENT' 'ROLES' - | AnyShow 'CURRENT' 'ROLES' - ; - -ShowCurrentRolesStatement_EDIT - : AnyShow 'CURRENT' 'CURSOR' - { - parser.suggestKeywords([ 'ROLES' ]); - } - | AnyShow 'CURRENT' 'CURSOR' - { - parser.suggestKeywords([ 'ROLES' ]); - } - | AnyShow 'CURSOR' 'ROLES' - { - parser.suggestKeywords([ 'CURRENT' ]); - } - ; - -ShowDatabasesStatement - : AnyShow HiveOrImpalaDatabasesOrSchemas 'LIKE' SingleQuotedValue - | AnyShow 'DATABASES' SingleQuotedValue - ; - -ShowDatabasesStatement_EDIT - : AnyShow HiveOrImpalaDatabasesOrSchemas 'CURSOR' - { - parser.suggestKeywords(['LIKE']); - } - ; - -ShowFilesStatement - : AnyShow 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec - { - parser.addTablePrimary($4); - } - ; - -ShowFilesStatement_EDIT - : AnyShow 'FILES' 'CURSOR' - { - parser.suggestKeywords(['IN']); - } - | AnyShow 'FILES' 'IN' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | AnyShow 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName_EDIT OptionalPartitionSpec - | AnyShow 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec 'CURSOR' - { - parser.addTablePrimary($4); - if (!$5) { - parser.suggestKeywords(['PARTITION']); - } - } - | AnyShow 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec_EDIT - | AnyShow 'FILES' 'CURSOR' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec - { - parser.addTablePrimary($4); - parser.suggestKeywords(['IN']); - } - ; - -ShowFunctionsStatement - : AnyShow 'FUNCTIONS' - | AnyShow 'FUNCTIONS' DoubleQuotedValue - | AnyShow OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase - | AnyShow OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'LIKE' QuotedValue - ; - -ShowFunctionsStatement_EDIT - : AnyShow AggregateOrAnalytic 'CURSOR' - { - parser.suggestKeywords(['FUNCTIONS']); - } - | AnyShow 'CURSOR' 'FUNCTIONS' OptionalInDatabase - { - parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); - } - | AnyShow OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'CURSOR' - { - if (!$4) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - } - | AnyShow AggregateOrAnalytic 'CURSOR' OptionalInDatabase 'LIKE' QuotedValue - { - parser.suggestKeywords(['FUNCTIONS']); - } - | AnyShow 'CURSOR' 'FUNCTIONS' OptionalInDatabase 'LIKE' QuotedValue - { - parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); - } - | AnyShow OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'CURSOR' QuotedValue - { - if (!$4) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else { - parser.suggestKeywords(['LIKE']); - } - } - ; - -ShowGrantStatement - : AnyShow 'GRANT' OptionalPrincipalName - | AnyShow 'GRANT' OptionalPrincipalName 'ON' 'ALL' - | AnyShow 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier - | AnyShow 'GRANT' OptionalPrincipalName 'ON' AnyTable SchemaQualifiedTableIdentifier - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'DATABASE' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@7, [ { name: $7 } ]); - } - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'SERVER' - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' SchemaQualifiedTableIdentifier - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'URI' RegularOrBacktickedIdentifier - ; - -ShowGrantStatement_EDIT - : AnyShow 'GRANT' OptionalPrincipalName_EDIT - { - parser.suggestKeywords(['ON']); - } - | AnyShow 'GRANT' OptionalPrincipalName_EDIT 'ON' 'ALL' - | AnyShow 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' - { - parser.suggestKeywords(['ALL', 'TABLE']); - parser.suggestTables(); - } - | AnyShow 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier_EDIT - | AnyShow 'GRANT' OptionalPrincipalName 'ON' AnyTable 'CURSOR' - { - parser.suggestTables(); - } - | AnyShow 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier - { - parser.suggestKeywords(['TABLE']); - } - | AnyShow 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier_EDIT - | AnyShow 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | AnyShow 'GRANT' ImpalaRoleOrUser 'CURSOR' - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'CURSOR' - { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'DATABASE' 'CURSOR' - { - parser.suggestDatabases(); - } - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' - { - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestTables(); - } - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' SchemaQualifiedTableIdentifier_EDIT - | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'URI' 'CURSOR' - ; - -OptionalPrincipalName - : - | RegularIdentifier - ; - -OptionalPrincipalName_EDIT - : 'CURSOR' - | RegularIdentifier 'CURSOR' - ; - -ShowIndexStatement - : AnyShow OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier - | AnyShow OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier AnyFromOrIn RegularOrBacktickedIdentifier - ; - -ShowIndexStatement_EDIT - : AnyShow OptionallyFormattedIndex - | AnyShow OptionallyFormattedIndex_EDIT - | AnyShow OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier - | AnyShow OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier AnyFromOrIn RegularOrBacktickedIdentifier - | AnyShow OptionallyFormattedIndex 'CURSOR' - { - parser.suggestKeywords(['ON']); - } - | AnyShow OptionallyFormattedIndex 'ON' 'CURSOR' - { - parser.suggestTables(); - } - | AnyShow OptionallyFormattedIndex 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['ON']); - } - | AnyShow OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' - { - parser.suggestKeywords(['FROM', 'IN']); - } - | AnyShow OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier - { - parser.suggestKeywords(['FROM', 'IN']); - } - | AnyShow OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier AnyFromOrIn 'CURSOR' - { - parser.suggestDatabases(); - } - | AnyShow OptionallyFormattedIndex 'ON' 'CURSOR' AnyFromOrIn RegularOrBacktickedIdentifier - { - parser.suggestTables({identifierChain: [{name: $6}]}); - } - ; - -ShowLocksStatement - : AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'EXTENDED' - { - parser.addTablePrimary($3); - } - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec - { - parser.addTablePrimary($3); - } - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'EXTENDED' - { - parser.addTablePrimary($3); - } - | AnyShow 'LOCKS' DatabaseOrSchema RegularOrBacktickedIdentifier - ; - -ShowLocksStatement_EDIT - : AnyShow 'LOCKS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestKeywords(['DATABASE', 'SCHEMA']); - } - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['EXTENDED', 'PARTITION']); - } - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT 'EXTENDED' - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['EXTENDED']); - } - | AnyShow 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec 'EXTENDED' - | AnyShow 'LOCKS' DatabaseOrSchema 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -ShowPartitionsStatement - : AnyShow 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | AnyShow 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName PartitionSpec - { - parser.addTablePrimary($3); - } - | AnyShow 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | AnyShow 'RANGE' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - ; - -ShowPartitionsStatement_EDIT - : AnyShow 'PARTITIONS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | AnyShow 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT - | AnyShow 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' - { - parser.addTablePrimary($3); - parser.suggestKeywords(['PARTITION']); - } - | AnyShow 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec - | AnyShow 'PARTITIONS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | AnyShow 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT - | AnyShow 'RANGE' 'PARTITIONS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | AnyShow 'RANGE' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT - ; - -ShowRoleStatement - : AnyShow 'ROLE' 'GRANT' HiveRoleOrUser RegularIdentifier - | AnyShow 'ROLE' 'GRANT' 'GROUP' RegularIdentifier - ; - -ShowRoleStatement_EDIT - : AnyShow 'ROLE' 'CURSOR' - { - parser.suggestKeywords(['GRANT']); - } - | AnyShow 'ROLE' 'CURSOR' - { - parser.suggestKeywords(['GRANT']); - } - | AnyShow 'ROLE' 'CURSOR' HiveRoleOrUser RegularIdentifier - { - parser.suggestKeywords(['GRANT']); - } - | AnyShow 'ROLE' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | AnyShow 'ROLE' 'GRANT' 'CURSOR' RegularIdentifier - { - parser.suggestKeywords(['ROLE', 'USER']); - } - | AnyShow 'ROLE' 'GRANT' 'CURSOR' - { - parser.suggestKeywords(['GROUP']); - } - | AnyShow 'ROLE' 'GRANT' 'CURSOR' RegularIdentifier - { - parser.suggestKeywords(['GROUP']); - } - ; - -ShowRolesStatement - : AnyShow 'ROLES' - | AnyShow 'ROLES' - ; - -ShowTableStatement - : AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec - ; - -ShowTableStatement_EDIT - : AnyShow 'TABLE' 'CURSOR' - { - parser.suggestKeywords(['EXTENDED']); - } - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' - { - if ($4) { - parser.suggestKeywords(['LIKE']); - } else { - parser.suggestKeywords(['FROM', 'IN', 'LIKE']); - } - } - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue - | AnyShow 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue - { - if (parser.isHive()) { - parser.suggestKeywords(['EXTENDED']); - } - } - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue - { - parser.suggestKeywords(['LIKE']); - } - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' - { - parser.suggestKeywords(['PARTITION']); - } - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue PartitionSpec - | AnyShow 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec - { - parser.suggestKeywords(['EXTENDED']); - } - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue PartitionSpec - { - parser.suggestKeywords(['LIKE']); - } - | AnyShow 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' PartitionSpecList - { - parser.suggestKeywords(['PARTITION']); - } - | AnyShow 'TABLE' 'CURSOR' - { - parser.suggestKeywords(['STATS']); - } - | AnyShow 'TABLE' 'STATS' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - } - | AnyShow 'TABLE' 'STATS' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($4); - } - | AnyShow 'TABLE' 'STATS' RegularOrBackTickedSchemaQualifiedName_EDIT - ; - -ShowTablesStatement - : AnyShow HiveOrImpalaTables OptionalInDatabase - | AnyShow HiveOrImpalaTables OptionalInDatabase SingleQuotedValue - | AnyShow HiveOrImpalaTables OptionalInDatabase 'LIKE' SingleQuotedValue - ; - -ShowTablesStatement_EDIT - : AnyShow HiveOrImpalaTables OptionalInDatabase 'CURSOR' - { - if (!$3) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - } - ; - -ShowTblPropertiesStatement - : AnyShow 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName - { - parser.addTablePrimary($3); - } - | AnyShow 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName '(' QuotedValue ')' - { - parser.addTablePrimary($3); - } - ; - -ShowTblPropertiesStatement_EDIT - : AnyShow 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName_EDIT - | AnyShow 'TBLPROPERTIES' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - } - ; - -ShowTransactionsStatement - : AnyShow 'TRANSACTIONS' - ; - -ShowViewsStatement - : AnyShow 'VIEWS' OptionalInOrFromDatabase OptionalLike - ; - -ShowViewsStatement_EDIT - : AnyShow 'VIEWS' OptionalInOrFromDatabase OptionalLike 'CURSOR' - { - if (!$4 && !$3) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else if (!$4) { - parser.suggestKeywords(['LIKE']); - } - } - | AnyShow 'VIEWS' InOrFromDatabase_EDIT OptionalLike - | AnyShow 'VIEWS' OptionalInOrFromDatabase Like_EDIT - ; - -OptionalInOrFromDatabase - : - | 'IN' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@2, [ { name: $2 } ]); - } - | 'FROM' RegularOrBacktickedIdentifier - { - parser.addDatabaseLocation(@2, [ { name: $2 } ]); - } - ; - -InOrFromDatabase_EDIT - : 'IN' 'CURSOR' - { - parser.suggestDatabases(); - } - | 'FROM' 'CURSOR' - { - parser.suggestDatabases(); - } - ; - -OptionalLike - : - | 'LIKE' SingleQuotedValue - ; - -Like_EDIT - : 'LIKE' 'CURSOR' - ; \ No newline at end of file diff --git a/src/jison/sql_update.jison b/src/jison/sql_update.jison deleted file mode 100644 index 3ff205b..0000000 --- a/src/jison/sql_update.jison +++ /dev/null @@ -1,138 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataManipulation - : UpdateStatement - ; - -DataManipulation_EDIT - : UpdateStatement_EDIT - ; - -UpdateStatement - : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - ; - -UpdateStatement_EDIT - : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT - | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' - { - if (parser.isImpala() && !$6 && !$5) { - parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); - } else if (parser.isImpala() && !$6 && $5) { - var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; - if ($5.suggestJoinConditions) { - parser.suggestJoinConditions($5.suggestJoinConditions); - } - if ($5.suggestJoins) { - parser.suggestJoins($5.suggestJoins); - } - if ($5.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 3)); - } - parser.suggestKeywords(keywords); - } else if (!$6) { - parser.suggestKeywords([ 'WHERE' ]); - } - } - | 'UPDATE' TargetTable 'CURSOR' - { - parser.suggestKeywords([ 'SET' ]); - } - | 'UPDATE' TargetTable_EDIT - | 'UPDATE' TargetTable - | 'UPDATE' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - ; - -TargetTable - : TableName - ; - -TargetTable_EDIT - : TableName_EDIT - ; - -TableName - : LocalOrSchemaQualifiedName - { - parser.addTablePrimary($1); - } - ; - -TableName_EDIT - : LocalOrSchemaQualifiedName_EDIT - ; - -SetClauseList - : SetClause - | SetClauseList ',' SetClause - ; - -SetClauseList_EDIT - : SetClause_EDIT - | SetClauseList ',' SetClause_EDIT - | SetClause_EDIT ',' SetClauseList - | SetClauseList ',' SetClause_EDIT ',' SetClauseList - ; - -SetClause - : SetTarget '=' UpdateSource - ; - -SetClause_EDIT - : SetTarget '=' UpdateSource_EDIT - | SetTarget 'CURSOR' - { - parser.suggestKeywords([ '=' ]); - } - | 'CURSOR' - { - parser.suggestColumns(); - } - ; - -SetTarget - : ColumnReference - ; - -UpdateSource - : ValueExpression - ; - -UpdateSource_EDIT - : ValueExpression_EDIT - ; - -OptionalFromJoinedTable - : - | 'FROM' TableReference -> $2 - ; - -FromJoinedTable_EDIT - : 'FROM' 'CURSOR' - { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - | 'FROM' TableReference_EDIT - ; diff --git a/src/jison/sql_use.jison b/src/jison/sql_use.jison deleted file mode 100644 index 6d0c6d3..0000000 --- a/src/jison/sql_use.jison +++ /dev/null @@ -1,47 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -DataDefinition - : UseStatement - ; - -DataDefinition_EDIT - : UseStatement_EDIT - ; - -AnyUse - : 'USE' - | 'USE' - ; - -UseStatement - : AnyUse RegularIdentifier - { - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $2; - } - } - ; - -UseStatement_EDIT - : AnyUse 'CURSOR' - { - parser.suggestDatabases(); - } - ; - - -// ===================================== Fin ===================================== diff --git a/src/jison/sql_valueExpression.jison b/src/jison/sql_valueExpression.jison deleted file mode 100644 index e0fba75..0000000 --- a/src/jison/sql_valueExpression.jison +++ /dev/null @@ -1,867 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -ValueExpression - : 'NOT' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression - { - // verifyType($2, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression -> $2 - | '-' ValueExpression %prec NEGATION - { - // verifyType($2, 'NUMBER'); - $$ = $2; - $2.types = ['NUMBER']; - } - | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'UNKNOWN' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | 'NOT' 'CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } - | '!' AnyCursor - { - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - $$ = { types: [ 'BOOLEAN' ] }; - } - | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | '~' 'PARTIAL_CURSOR' - { - parser.suggestFunctions(); - parser.suggestColumns(); - $$ = { types: [ 'T' ] }; - } - | '-' ValueExpression_EDIT %prec NEGATION - { - if (!$2.typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; - } - | '-' 'PARTIAL_CURSOR' %prec NEGATION - { - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'IS' 'CURSOR' - { - var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']; - if (parser.isImpala()) { - keywords = keywords.concat(['DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']); - } - parser.suggestKeywords(keywords); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'NOT' 'CURSOR' - { - var keywords = ['FALSE', 'NULL', 'TRUE']; - if (parser.isImpala()) { - keywords = keywords.concat(['DISTINCT FROM', 'UNKNOWN']); - } - parser.suggestKeywords(keywords); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' - { - if (parser.isImpala()) { - parser.suggestKeywords(['FROM']); - } - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'NULL' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'FALSE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' 'CURSOR' 'TRUE' - { - parser.suggestKeywords(['NOT']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT - { - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } - } - ; - -// ------------------ EXISTS and parenthesized ------------------ -ValueExpression - : 'EXISTS' TableSubQuery - { - $$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - } - | '(' ValueExpression ')' -> $2 - ; - -ValueExpression_EDIT - : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } - | '(' ValueExpression_EDIT RightParenthesisOrError - { - $$ = $2; - } - | '(' 'CURSOR' RightParenthesisOrError - { - parser.valueExpressionSuggest(); - $$ = { types: ['T'], typeSet: true }; - } - ; - -// ------------------ COMPARISON ------------------ - -ValueExpression - : ValueExpression '=' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '<' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression '>' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression - { - parser.addColRefToVariableIfExists($1, $3); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '=' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '<' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' '>' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest($3, $2); - parser.applyTypeToSuggestions($3.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT '=' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '<' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '>' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions($3.types); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '=' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression '<' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - } - | ValueExpression '>' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; - } - | ValueExpression '=' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '<' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression '>' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions($1.types); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - - -// ------------------ IN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT - { - if ($4.inValueEdit) { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - parser.applyTypeToSuggestions($1.types); - } - if ($4.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT - { - if ($3.inValueEdit) { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - } - if ($3.cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - ; - -ValueExpressionInSecondPart_EDIT - : '(' TableSubQueryInner_EDIT RightParenthesisOrError - | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } - | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } - ; - -// ------------------ BETWEEN ------------------ - -ValueExpression - : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($4.types[0] === $6.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($4.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $6.types[0] && !$4.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $4.types[0] && !$6.typeSet) { - parser.applyTypeToSuggestions($1.types); - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $5); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($4, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2 + ' ' + $3); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$1.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression - { - if ($1.types[0] === $3.types[0] && !$3.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT - { - if ($1.types[0] === $3.types[0] && !$5.typeSet) { - parser.applyTypeToSuggestions($1.types) - } - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; - } - | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' - { - parser.valueExpressionSuggest($1, $4); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['AND']); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'BETWEEN' 'CURSOR' - { - parser.valueExpressionSuggest($1, $2); - parser.applyTypeToSuggestions($1.types); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ BOOLEAN ------------------ - -ValueExpression - : ValueExpression 'OR' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - | ValueExpression 'AND' ValueExpression - { - // verifyType($1, 'BOOLEAN'); - // verifyType($3, 'BOOLEAN'); - $$ = { types: [ 'BOOLEAN' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' 'OR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'OR' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'OR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'OR' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - | 'CURSOR' 'AND' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression_EDIT 'AND' ValueExpression - { - parser.addColRefIfExists($3); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression 'AND' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - } - | ValueExpression 'AND' ValueExpression_EDIT - { - parser.addColRefIfExists($1); - $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } - } - ; - -// ------------------ ARITHMETIC ------------------ - -ValueExpression - : ValueExpression '-' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression '*' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression - { - // verifyType($1, 'NUMBER'); - // verifyType($3, 'NUMBER'); - $$ = { types: [ 'NUMBER' ] }; - } - ; - -ValueExpression_EDIT - : 'CURSOR' '*' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression_EDIT '-' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT '*' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression - { - if (!$1.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($3); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } - } - | ValueExpression '-' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '*' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions(['NUMBER']); - $$ = { types: [ 'NUMBER' ], typeSet: true }; - } - | ValueExpression '-' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression '*' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT - { - if (!$3.typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($1); - } - $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; - } - ; - -// ------------------ LIKE, RLIKE and REGEXP ------------------ - -ValueExpression - : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } - ; - -LikeRightPart - : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'ILIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'IREGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } - | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } - ; - -LikeRightPart_EDIT - : 'LIKE' ValueExpression_EDIT - | 'ILIKE' ValueExpression_EDIT - | 'IREGEXP' ValueExpression_EDIT - | 'RLIKE' ValueExpression_EDIT - | 'REGEXP' ValueExpression_EDIT - | 'LIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'ILIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'IREGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'RLIKE' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - | 'REGEXP' PartialBacktickedOrCursor - { - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - $$ = { types: ['BOOLEAN'] } - } - ; - -ValueExpression_EDIT - : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } - | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } - | 'CURSOR' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - | 'CURSOR' 'NOT' LikeRightPart - { - parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); - parser.applyTypeToSuggestions([ 'STRING' ]); - $$ = { types: [ 'BOOLEAN' ], typeSet: true }; - } - ; - -// ------------------ CASE, WHEN, THEN ------------------ - -ValueExpression - : 'CASE' CaseRightPart -> $2 - | 'CASE' ValueExpression CaseRightPart -> $3 - ; - -ValueExpression_EDIT - : 'CASE' CaseRightPart_EDIT -> $2 - | 'CASE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 - | 'CASE' ValueExpression 'CURSOR' EndOrError - { - parser.suggestValueExpressionKeywords($2, ['WHEN']); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CASE' ValueExpression_EDIT CaseRightPart - { - $$ = $3; - $$.suggestFilters = $2.suggestFilters; - } - | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } - | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } - ; - -CaseRightPart - : CaseWhenThenList 'END' -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'END' - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - ; - -CaseRightPart_EDIT - : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($3, ['END']); - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - } - | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) - | CaseWhenThenList 'CURSOR' ValueExpression EndOrError - { - if ($4.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'CURSOR' EndOrError - { - if ($3.toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - $$ = parser.findCaseType($1); - } - | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError - { - $1.caseTypes.push($3); - $$ = parser.findCaseType($1); - $$.suggestFilters = $3.suggestFilters - } - | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = parser.findCaseType($1); - } - | 'ELSE' 'CURSOR' EndOrError - { - parser.valueExpressionSuggest(); - $$ = { types: [ 'T' ], typeSet: true }; - } - | 'CURSOR' 'ELSE' ValueExpression EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = $3; - } - | 'CURSOR' 'ELSE' EndOrError - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { types: [ 'T' ] }; - } - ; - -EndOrError - : 'END' - | error - ; - -CaseWhenThenList - : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } - | CaseWhenThenList CaseWhenThenListPartTwo - { - $1.caseTypes.push($2); - $$ = { caseTypes: $1.caseTypes, lastType: $2 }; - } - ; - -CaseWhenThenList_EDIT - : CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT - | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList - | CaseWhenThenList 'CURSOR' CaseWhenThenList - { - parser.suggestValueExpressionKeywords($1, ['WHEN']); - } - | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 - ; - -CaseWhenThenListPartTwo - : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 - ; - -CaseWhenThenListPartTwo_EDIT - : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } - | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } - | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } - | 'CURSOR' ValueExpression 'THEN' - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' ValueExpression 'THEN' ValueExpression - { - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [$4] }; - } - | 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - } - | 'WHEN' 'CURSOR' 'THEN' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [$4], suggestFilters: true }; - } - | 'WHEN' ValueExpression 'CURSOR' - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'CURSOR' ValueExpression - { - parser.suggestValueExpressionKeywords($2, ['THEN']); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' ValueExpression - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - | 'WHEN' 'THEN' 'CURSOR' - { - parser.valueExpressionSuggest(); - $$ = { caseTypes: [{ types: ['T'] }] }; - } - ; \ No newline at end of file diff --git a/src/jison/syntax_footer.jison b/src/jison/syntax_footer.jison deleted file mode 100644 index ec25eab..0000000 --- a/src/jison/syntax_footer.jison +++ /dev/null @@ -1,19 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%% - -SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/syntax_header.jison b/src/jison/syntax_header.jison deleted file mode 100644 index 2594569..0000000 --- a/src/jison/syntax_header.jison +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -%left 'AND' 'OR' -%left 'BETWEEN' -%left 'NOT' '!' '~' -%left '=' '<' '>' 'COMPARISON_OPERATOR' -%left '-' '*' 'ARITHMETIC_OPERATOR' - -%left ';' ',' -%nonassoc 'IN' 'IS' 'ILIKE' 'IREGEXP' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION - -%start SqlSyntax - -%% \ No newline at end of file diff --git a/src/lib/filter.ts b/src/lib/filter.ts deleted file mode 100644 index 20eb8b7..0000000 --- a/src/lib/filter.ts +++ /dev/null @@ -1,31 +0,0 @@ -import * as commentFilter from '../core/comment'; - -/** - * 过滤--注释 - * @param {String} sql - */ -function filterComments(sql) { - return commentFilter.parse(sql).text; -} - -/** - * 清除注释和前后空格 - * @param {String} sql - */ -function cleanSql(sql) { - return filterComments(sql); -} - -/** - * 分割sql - * @param {String} sql - */ -function splitSql(sql) { - return commentFilter.parse(sql).lines -} - -export { - filterComments, - cleanSql, - splitSql -} \ No newline at end of file diff --git a/src/lib/flinkParser.ts b/src/lib/flinkParser.ts deleted file mode 100644 index 5d9b819..0000000 --- a/src/lib/flinkParser.ts +++ /dev/null @@ -1,58 +0,0 @@ -import * as antlr4 from 'antlr4' -import { ErrorListener } from 'antlr4/error'; -import { sqlLexer } from '../antlr4/flinksql/sqlLexer'; -import { sqlParser } from '../antlr4/flinksql/sqlParser'; -import { sqlVisitor } from '../antlr4/flinksql/sqlVisitor'; - -import { splitSql } from '../utils' - -interface SyntaxError { - line: number; - column: number; - token: antlr4.Token; - errorMsg: string; -} - -class SqlErrorListener extends ErrorListener { - error: SyntaxError = null; - syntaxError (recognizer: antlr4.Recognizer, offendingSymbol: antlr4.Token, line: number, charPositionInLine: number, msg: string, e: any) { - this.error = { - line, - column: charPositionInLine, - token: offendingSymbol, - errorMsg: msg - }; - } -} -function parserSingle (sql: string,) { - if (!sql || !sql.trim()) { - return null; - } - const inputStream = new antlr4.InputStream(sql.toUpperCase()); - const lexer = new sqlLexer(inputStream) as antlr4.Lexer; - const tokenStream = new antlr4.CommonTokenStream(lexer); - const parser: any = new sqlParser(tokenStream); - parser.buildParseTrees = true; - let listener = new SqlErrorListener(); - parser.addErrorListener(listener) - parser.singleStatement(); - return listener.error; -} -function parserSyntax (sql: sql): SyntaxError { - let runSql = typeof sql == 'string' ? sql : sql.join(''); - const sqls = splitSql(runSql); - for (let i = 0, index = 0; i < sqls.length; i++) { - let end = runSql[sqls[i]] == ';' ? sqls[i] : sqls[i] + 1 - /** - * 这边不取分号 - */ - let sql = new Array(index).fill(' ').join('') + runSql.substring(index, end); - let err = parserSingle(sql); - if (err) { - return err; - } - index = sqls[i] + 1; - } - return null; -} -export default parserSyntax; \ No newline at end of file diff --git a/src/lib/parser.ts b/src/lib/parser.ts deleted file mode 100644 index 9391a3e..0000000 --- a/src/lib/parser.ts +++ /dev/null @@ -1,81 +0,0 @@ -// import * as sqlSyntaxParser from '../core/sqlSyntaxParser'; -import hiveSyntaxParser from '../core/parse/hive/hiveSyntaxParser'; -import hiveAutoCompleteParser from '../core/parse/hive/hiveAutocompleteParser'; -import impalaSyntaxParser from '../core/parse/impala/impalaSyntaxParser'; -import impalaAutoCompleteParser from '../core/parse/impala/impalaAutocompleteParser'; -import genericSyntaxParser from '../core/parse/generic/genericSyntaxParser'; -import genericAutocompleteParser from '../core/parse/generic/genericAutocompleteParser'; -import { SyntaxParser, SyntaxResult } from '../core/sqlSyntaxParser'; -import { CompleteParser, CompleteResult } from '../core/sqlAutoCompleteParser'; - -function getSyntaxParser (type: sqlType): any { - switch (type) { - case sqlType.Hive: { - return hiveSyntaxParser; - } - case sqlType.Impala: { - return impalaSyntaxParser; - } - case sqlType.None: { - return genericSyntaxParser; - } - default: { - return hiveSyntaxParser; - } - } -} -function getAutoCompleteParser (type: sqlType): any { - switch (type) { - case sqlType.Hive: { - return hiveAutoCompleteParser; - } - case sqlType.Impala: { - return impalaAutoCompleteParser; - } - case sqlType.None: { - return genericAutocompleteParser; - } - default: { - return hiveAutoCompleteParser; - } - } -} -enum sqlType { - Hive = 'hive', - None = 'sql', - Impala = 'impala' -} -function sqlToParserArgs (sql: sql) { - let preSql = '', sufSql = ''; - if(Object.prototype.toString.call(sql) == '[object Array]'){ - preSql=sql[0]; - sufSql=sql[1]; - } else { - preSql = sql as string; - } - return [preSql, sufSql]; -} -/** - * 校验语法 - */ -function parseSyntax(sql: sql, type:sqlType = sqlType.Hive): SyntaxResult | false { - const parserArgs = sqlToParserArgs(sql); - console.log( - getSyntaxParser(type) - ) - return (getSyntaxParser(type) as SyntaxParser).parseSyntax(parserArgs[0], parserArgs[1], type, false) -} - -/** - * 自动补全提示 - */ -function parserSql(sql: sql, type: sqlType = sqlType.Hive): CompleteResult { - const parserArgs = sqlToParserArgs(sql); - return (getAutoCompleteParser(type) as CompleteParser).parseSql(parserArgs[0], parserArgs[1], type, false) -} - -export { - parseSyntax, - parserSql, - sqlType -} diff --git a/src/parser/MySQLLexer.js b/src/parser/MySQLLexer.js new file mode 100644 index 0000000..6738ade --- /dev/null +++ b/src/parser/MySQLLexer.js @@ -0,0 +1,9949 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/mysql/MySQLLexer.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + + + +var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", + "\u0002\u041a\u2f65\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004", + "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t", + "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", + "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", + "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", + "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", + "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", + "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", + "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", + "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", + "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", + "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", + "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", + "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", + "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", + "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", + "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", + "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", + "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", + "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", + "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", + "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", + "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", + "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", + "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", + "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", + "\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", + "\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", + "\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", + "\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", + "\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", + "\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", + "\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", + "\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", + "\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", + "\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", + "\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", + "\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", + "\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", + "\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", + "\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", + "\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", + "\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", + "\u00c8\t\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t", + "\u00cb\u0004\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004", + "\u00cf\t\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t", + "\u00d2\u0004\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004", + "\u00d6\t\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t", + "\u00d9\u0004\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004", + "\u00dd\t\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t", + "\u00e0\u0004\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004", + "\u00e4\t\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t", + "\u00e7\u0004\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004", + "\u00eb\t\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t", + "\u00ee\u0004\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004", + "\u00f2\t\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t", + "\u00f5\u0004\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004", + "\u00f9\t\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t", + "\u00fc\u0004\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004", + "\u0100\t\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t", + "\u0103\u0004\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004", + "\u0107\t\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t", + "\u010a\u0004\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004", + "\u010e\t\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t", + "\u0111\u0004\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004", + "\u0115\t\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t", + "\u0118\u0004\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004", + "\u011c\t\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t", + "\u011f\u0004\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004", + "\u0123\t\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t", + "\u0126\u0004\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004", + "\u012a\t\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t", + "\u012d\u0004\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004", + "\u0131\t\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t", + "\u0134\u0004\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004", + "\u0138\t\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t", + "\u013b\u0004\u013c\t\u013c\u0004\u013d\t\u013d\u0004\u013e\t\u013e\u0004", + "\u013f\t\u013f\u0004\u0140\t\u0140\u0004\u0141\t\u0141\u0004\u0142\t", + "\u0142\u0004\u0143\t\u0143\u0004\u0144\t\u0144\u0004\u0145\t\u0145\u0004", + "\u0146\t\u0146\u0004\u0147\t\u0147\u0004\u0148\t\u0148\u0004\u0149\t", + "\u0149\u0004\u014a\t\u014a\u0004\u014b\t\u014b\u0004\u014c\t\u014c\u0004", + "\u014d\t\u014d\u0004\u014e\t\u014e\u0004\u014f\t\u014f\u0004\u0150\t", + "\u0150\u0004\u0151\t\u0151\u0004\u0152\t\u0152\u0004\u0153\t\u0153\u0004", + "\u0154\t\u0154\u0004\u0155\t\u0155\u0004\u0156\t\u0156\u0004\u0157\t", + "\u0157\u0004\u0158\t\u0158\u0004\u0159\t\u0159\u0004\u015a\t\u015a\u0004", + "\u015b\t\u015b\u0004\u015c\t\u015c\u0004\u015d\t\u015d\u0004\u015e\t", + "\u015e\u0004\u015f\t\u015f\u0004\u0160\t\u0160\u0004\u0161\t\u0161\u0004", + "\u0162\t\u0162\u0004\u0163\t\u0163\u0004\u0164\t\u0164\u0004\u0165\t", + "\u0165\u0004\u0166\t\u0166\u0004\u0167\t\u0167\u0004\u0168\t\u0168\u0004", + "\u0169\t\u0169\u0004\u016a\t\u016a\u0004\u016b\t\u016b\u0004\u016c\t", + "\u016c\u0004\u016d\t\u016d\u0004\u016e\t\u016e\u0004\u016f\t\u016f\u0004", + "\u0170\t\u0170\u0004\u0171\t\u0171\u0004\u0172\t\u0172\u0004\u0173\t", + "\u0173\u0004\u0174\t\u0174\u0004\u0175\t\u0175\u0004\u0176\t\u0176\u0004", + "\u0177\t\u0177\u0004\u0178\t\u0178\u0004\u0179\t\u0179\u0004\u017a\t", + "\u017a\u0004\u017b\t\u017b\u0004\u017c\t\u017c\u0004\u017d\t\u017d\u0004", + "\u017e\t\u017e\u0004\u017f\t\u017f\u0004\u0180\t\u0180\u0004\u0181\t", + "\u0181\u0004\u0182\t\u0182\u0004\u0183\t\u0183\u0004\u0184\t\u0184\u0004", + "\u0185\t\u0185\u0004\u0186\t\u0186\u0004\u0187\t\u0187\u0004\u0188\t", + "\u0188\u0004\u0189\t\u0189\u0004\u018a\t\u018a\u0004\u018b\t\u018b\u0004", + "\u018c\t\u018c\u0004\u018d\t\u018d\u0004\u018e\t\u018e\u0004\u018f\t", + "\u018f\u0004\u0190\t\u0190\u0004\u0191\t\u0191\u0004\u0192\t\u0192\u0004", + "\u0193\t\u0193\u0004\u0194\t\u0194\u0004\u0195\t\u0195\u0004\u0196\t", + "\u0196\u0004\u0197\t\u0197\u0004\u0198\t\u0198\u0004\u0199\t\u0199\u0004", + "\u019a\t\u019a\u0004\u019b\t\u019b\u0004\u019c\t\u019c\u0004\u019d\t", + "\u019d\u0004\u019e\t\u019e\u0004\u019f\t\u019f\u0004\u01a0\t\u01a0\u0004", + "\u01a1\t\u01a1\u0004\u01a2\t\u01a2\u0004\u01a3\t\u01a3\u0004\u01a4\t", + "\u01a4\u0004\u01a5\t\u01a5\u0004\u01a6\t\u01a6\u0004\u01a7\t\u01a7\u0004", + "\u01a8\t\u01a8\u0004\u01a9\t\u01a9\u0004\u01aa\t\u01aa\u0004\u01ab\t", + "\u01ab\u0004\u01ac\t\u01ac\u0004\u01ad\t\u01ad\u0004\u01ae\t\u01ae\u0004", + "\u01af\t\u01af\u0004\u01b0\t\u01b0\u0004\u01b1\t\u01b1\u0004\u01b2\t", + "\u01b2\u0004\u01b3\t\u01b3\u0004\u01b4\t\u01b4\u0004\u01b5\t\u01b5\u0004", + "\u01b6\t\u01b6\u0004\u01b7\t\u01b7\u0004\u01b8\t\u01b8\u0004\u01b9\t", + "\u01b9\u0004\u01ba\t\u01ba\u0004\u01bb\t\u01bb\u0004\u01bc\t\u01bc\u0004", + "\u01bd\t\u01bd\u0004\u01be\t\u01be\u0004\u01bf\t\u01bf\u0004\u01c0\t", + "\u01c0\u0004\u01c1\t\u01c1\u0004\u01c2\t\u01c2\u0004\u01c3\t\u01c3\u0004", + "\u01c4\t\u01c4\u0004\u01c5\t\u01c5\u0004\u01c6\t\u01c6\u0004\u01c7\t", + "\u01c7\u0004\u01c8\t\u01c8\u0004\u01c9\t\u01c9\u0004\u01ca\t\u01ca\u0004", + "\u01cb\t\u01cb\u0004\u01cc\t\u01cc\u0004\u01cd\t\u01cd\u0004\u01ce\t", + "\u01ce\u0004\u01cf\t\u01cf\u0004\u01d0\t\u01d0\u0004\u01d1\t\u01d1\u0004", + "\u01d2\t\u01d2\u0004\u01d3\t\u01d3\u0004\u01d4\t\u01d4\u0004\u01d5\t", + "\u01d5\u0004\u01d6\t\u01d6\u0004\u01d7\t\u01d7\u0004\u01d8\t\u01d8\u0004", + "\u01d9\t\u01d9\u0004\u01da\t\u01da\u0004\u01db\t\u01db\u0004\u01dc\t", + "\u01dc\u0004\u01dd\t\u01dd\u0004\u01de\t\u01de\u0004\u01df\t\u01df\u0004", + "\u01e0\t\u01e0\u0004\u01e1\t\u01e1\u0004\u01e2\t\u01e2\u0004\u01e3\t", + "\u01e3\u0004\u01e4\t\u01e4\u0004\u01e5\t\u01e5\u0004\u01e6\t\u01e6\u0004", + "\u01e7\t\u01e7\u0004\u01e8\t\u01e8\u0004\u01e9\t\u01e9\u0004\u01ea\t", + "\u01ea\u0004\u01eb\t\u01eb\u0004\u01ec\t\u01ec\u0004\u01ed\t\u01ed\u0004", + "\u01ee\t\u01ee\u0004\u01ef\t\u01ef\u0004\u01f0\t\u01f0\u0004\u01f1\t", + "\u01f1\u0004\u01f2\t\u01f2\u0004\u01f3\t\u01f3\u0004\u01f4\t\u01f4\u0004", + "\u01f5\t\u01f5\u0004\u01f6\t\u01f6\u0004\u01f7\t\u01f7\u0004\u01f8\t", + "\u01f8\u0004\u01f9\t\u01f9\u0004\u01fa\t\u01fa\u0004\u01fb\t\u01fb\u0004", + "\u01fc\t\u01fc\u0004\u01fd\t\u01fd\u0004\u01fe\t\u01fe\u0004\u01ff\t", + "\u01ff\u0004\u0200\t\u0200\u0004\u0201\t\u0201\u0004\u0202\t\u0202\u0004", + "\u0203\t\u0203\u0004\u0204\t\u0204\u0004\u0205\t\u0205\u0004\u0206\t", + "\u0206\u0004\u0207\t\u0207\u0004\u0208\t\u0208\u0004\u0209\t\u0209\u0004", + "\u020a\t\u020a\u0004\u020b\t\u020b\u0004\u020c\t\u020c\u0004\u020d\t", + "\u020d\u0004\u020e\t\u020e\u0004\u020f\t\u020f\u0004\u0210\t\u0210\u0004", + "\u0211\t\u0211\u0004\u0212\t\u0212\u0004\u0213\t\u0213\u0004\u0214\t", + "\u0214\u0004\u0215\t\u0215\u0004\u0216\t\u0216\u0004\u0217\t\u0217\u0004", + "\u0218\t\u0218\u0004\u0219\t\u0219\u0004\u021a\t\u021a\u0004\u021b\t", + "\u021b\u0004\u021c\t\u021c\u0004\u021d\t\u021d\u0004\u021e\t\u021e\u0004", + "\u021f\t\u021f\u0004\u0220\t\u0220\u0004\u0221\t\u0221\u0004\u0222\t", + "\u0222\u0004\u0223\t\u0223\u0004\u0224\t\u0224\u0004\u0225\t\u0225\u0004", + "\u0226\t\u0226\u0004\u0227\t\u0227\u0004\u0228\t\u0228\u0004\u0229\t", + "\u0229\u0004\u022a\t\u022a\u0004\u022b\t\u022b\u0004\u022c\t\u022c\u0004", + "\u022d\t\u022d\u0004\u022e\t\u022e\u0004\u022f\t\u022f\u0004\u0230\t", + "\u0230\u0004\u0231\t\u0231\u0004\u0232\t\u0232\u0004\u0233\t\u0233\u0004", + "\u0234\t\u0234\u0004\u0235\t\u0235\u0004\u0236\t\u0236\u0004\u0237\t", + "\u0237\u0004\u0238\t\u0238\u0004\u0239\t\u0239\u0004\u023a\t\u023a\u0004", + "\u023b\t\u023b\u0004\u023c\t\u023c\u0004\u023d\t\u023d\u0004\u023e\t", + "\u023e\u0004\u023f\t\u023f\u0004\u0240\t\u0240\u0004\u0241\t\u0241\u0004", + "\u0242\t\u0242\u0004\u0243\t\u0243\u0004\u0244\t\u0244\u0004\u0245\t", + "\u0245\u0004\u0246\t\u0246\u0004\u0247\t\u0247\u0004\u0248\t\u0248\u0004", + "\u0249\t\u0249\u0004\u024a\t\u024a\u0004\u024b\t\u024b\u0004\u024c\t", + "\u024c\u0004\u024d\t\u024d\u0004\u024e\t\u024e\u0004\u024f\t\u024f\u0004", + "\u0250\t\u0250\u0004\u0251\t\u0251\u0004\u0252\t\u0252\u0004\u0253\t", + "\u0253\u0004\u0254\t\u0254\u0004\u0255\t\u0255\u0004\u0256\t\u0256\u0004", + "\u0257\t\u0257\u0004\u0258\t\u0258\u0004\u0259\t\u0259\u0004\u025a\t", + "\u025a\u0004\u025b\t\u025b\u0004\u025c\t\u025c\u0004\u025d\t\u025d\u0004", + "\u025e\t\u025e\u0004\u025f\t\u025f\u0004\u0260\t\u0260\u0004\u0261\t", + "\u0261\u0004\u0262\t\u0262\u0004\u0263\t\u0263\u0004\u0264\t\u0264\u0004", + "\u0265\t\u0265\u0004\u0266\t\u0266\u0004\u0267\t\u0267\u0004\u0268\t", + "\u0268\u0004\u0269\t\u0269\u0004\u026a\t\u026a\u0004\u026b\t\u026b\u0004", + "\u026c\t\u026c\u0004\u026d\t\u026d\u0004\u026e\t\u026e\u0004\u026f\t", + "\u026f\u0004\u0270\t\u0270\u0004\u0271\t\u0271\u0004\u0272\t\u0272\u0004", + "\u0273\t\u0273\u0004\u0274\t\u0274\u0004\u0275\t\u0275\u0004\u0276\t", + "\u0276\u0004\u0277\t\u0277\u0004\u0278\t\u0278\u0004\u0279\t\u0279\u0004", + "\u027a\t\u027a\u0004\u027b\t\u027b\u0004\u027c\t\u027c\u0004\u027d\t", + "\u027d\u0004\u027e\t\u027e\u0004\u027f\t\u027f\u0004\u0280\t\u0280\u0004", + "\u0281\t\u0281\u0004\u0282\t\u0282\u0004\u0283\t\u0283\u0004\u0284\t", + "\u0284\u0004\u0285\t\u0285\u0004\u0286\t\u0286\u0004\u0287\t\u0287\u0004", + "\u0288\t\u0288\u0004\u0289\t\u0289\u0004\u028a\t\u028a\u0004\u028b\t", + "\u028b\u0004\u028c\t\u028c\u0004\u028d\t\u028d\u0004\u028e\t\u028e\u0004", + "\u028f\t\u028f\u0004\u0290\t\u0290\u0004\u0291\t\u0291\u0004\u0292\t", + "\u0292\u0004\u0293\t\u0293\u0004\u0294\t\u0294\u0004\u0295\t\u0295\u0004", + "\u0296\t\u0296\u0004\u0297\t\u0297\u0004\u0298\t\u0298\u0004\u0299\t", + "\u0299\u0004\u029a\t\u029a\u0004\u029b\t\u029b\u0004\u029c\t\u029c\u0004", + "\u029d\t\u029d\u0004\u029e\t\u029e\u0004\u029f\t\u029f\u0004\u02a0\t", + "\u02a0\u0004\u02a1\t\u02a1\u0004\u02a2\t\u02a2\u0004\u02a3\t\u02a3\u0004", + "\u02a4\t\u02a4\u0004\u02a5\t\u02a5\u0004\u02a6\t\u02a6\u0004\u02a7\t", + "\u02a7\u0004\u02a8\t\u02a8\u0004\u02a9\t\u02a9\u0004\u02aa\t\u02aa\u0004", + "\u02ab\t\u02ab\u0004\u02ac\t\u02ac\u0004\u02ad\t\u02ad\u0004\u02ae\t", + "\u02ae\u0004\u02af\t\u02af\u0004\u02b0\t\u02b0\u0004\u02b1\t\u02b1\u0004", + "\u02b2\t\u02b2\u0004\u02b3\t\u02b3\u0004\u02b4\t\u02b4\u0004\u02b5\t", + "\u02b5\u0004\u02b6\t\u02b6\u0004\u02b7\t\u02b7\u0004\u02b8\t\u02b8\u0004", + "\u02b9\t\u02b9\u0004\u02ba\t\u02ba\u0004\u02bb\t\u02bb\u0004\u02bc\t", + "\u02bc\u0004\u02bd\t\u02bd\u0004\u02be\t\u02be\u0004\u02bf\t\u02bf\u0004", + "\u02c0\t\u02c0\u0004\u02c1\t\u02c1\u0004\u02c2\t\u02c2\u0004\u02c3\t", + "\u02c3\u0004\u02c4\t\u02c4\u0004\u02c5\t\u02c5\u0004\u02c6\t\u02c6\u0004", + "\u02c7\t\u02c7\u0004\u02c8\t\u02c8\u0004\u02c9\t\u02c9\u0004\u02ca\t", + "\u02ca\u0004\u02cb\t\u02cb\u0004\u02cc\t\u02cc\u0004\u02cd\t\u02cd\u0004", + "\u02ce\t\u02ce\u0004\u02cf\t\u02cf\u0004\u02d0\t\u02d0\u0004\u02d1\t", + "\u02d1\u0004\u02d2\t\u02d2\u0004\u02d3\t\u02d3\u0004\u02d4\t\u02d4\u0004", + "\u02d5\t\u02d5\u0004\u02d6\t\u02d6\u0004\u02d7\t\u02d7\u0004\u02d8\t", + "\u02d8\u0004\u02d9\t\u02d9\u0004\u02da\t\u02da\u0004\u02db\t\u02db\u0004", + "\u02dc\t\u02dc\u0004\u02dd\t\u02dd\u0004\u02de\t\u02de\u0004\u02df\t", + "\u02df\u0004\u02e0\t\u02e0\u0004\u02e1\t\u02e1\u0004\u02e2\t\u02e2\u0004", + "\u02e3\t\u02e3\u0004\u02e4\t\u02e4\u0004\u02e5\t\u02e5\u0004\u02e6\t", + "\u02e6\u0004\u02e7\t\u02e7\u0004\u02e8\t\u02e8\u0004\u02e9\t\u02e9\u0004", + "\u02ea\t\u02ea\u0004\u02eb\t\u02eb\u0004\u02ec\t\u02ec\u0004\u02ed\t", + "\u02ed\u0004\u02ee\t\u02ee\u0004\u02ef\t\u02ef\u0004\u02f0\t\u02f0\u0004", + "\u02f1\t\u02f1\u0004\u02f2\t\u02f2\u0004\u02f3\t\u02f3\u0004\u02f4\t", + "\u02f4\u0004\u02f5\t\u02f5\u0004\u02f6\t\u02f6\u0004\u02f7\t\u02f7\u0004", + "\u02f8\t\u02f8\u0004\u02f9\t\u02f9\u0004\u02fa\t\u02fa\u0004\u02fb\t", + "\u02fb\u0004\u02fc\t\u02fc\u0004\u02fd\t\u02fd\u0004\u02fe\t\u02fe\u0004", + "\u02ff\t\u02ff\u0004\u0300\t\u0300\u0004\u0301\t\u0301\u0004\u0302\t", + "\u0302\u0004\u0303\t\u0303\u0004\u0304\t\u0304\u0004\u0305\t\u0305\u0004", + "\u0306\t\u0306\u0004\u0307\t\u0307\u0004\u0308\t\u0308\u0004\u0309\t", + "\u0309\u0004\u030a\t\u030a\u0004\u030b\t\u030b\u0004\u030c\t\u030c\u0004", + "\u030d\t\u030d\u0004\u030e\t\u030e\u0004\u030f\t\u030f\u0004\u0310\t", + "\u0310\u0004\u0311\t\u0311\u0004\u0312\t\u0312\u0004\u0313\t\u0313\u0004", + "\u0314\t\u0314\u0004\u0315\t\u0315\u0004\u0316\t\u0316\u0004\u0317\t", + "\u0317\u0004\u0318\t\u0318\u0004\u0319\t\u0319\u0004\u031a\t\u031a\u0004", + "\u031b\t\u031b\u0004\u031c\t\u031c\u0004\u031d\t\u031d\u0004\u031e\t", + "\u031e\u0004\u031f\t\u031f\u0004\u0320\t\u0320\u0004\u0321\t\u0321\u0004", + "\u0322\t\u0322\u0004\u0323\t\u0323\u0004\u0324\t\u0324\u0004\u0325\t", + "\u0325\u0004\u0326\t\u0326\u0004\u0327\t\u0327\u0004\u0328\t\u0328\u0004", + "\u0329\t\u0329\u0004\u032a\t\u032a\u0004\u032b\t\u032b\u0004\u032c\t", + "\u032c\u0004\u032d\t\u032d\u0004\u032e\t\u032e\u0004\u032f\t\u032f\u0004", + "\u0330\t\u0330\u0004\u0331\t\u0331\u0004\u0332\t\u0332\u0004\u0333\t", + "\u0333\u0004\u0334\t\u0334\u0004\u0335\t\u0335\u0004\u0336\t\u0336\u0004", + "\u0337\t\u0337\u0004\u0338\t\u0338\u0004\u0339\t\u0339\u0004\u033a\t", + "\u033a\u0004\u033b\t\u033b\u0004\u033c\t\u033c\u0004\u033d\t\u033d\u0004", + "\u033e\t\u033e\u0004\u033f\t\u033f\u0004\u0340\t\u0340\u0004\u0341\t", + "\u0341\u0004\u0342\t\u0342\u0004\u0343\t\u0343\u0004\u0344\t\u0344\u0004", + "\u0345\t\u0345\u0004\u0346\t\u0346\u0004\u0347\t\u0347\u0004\u0348\t", + "\u0348\u0004\u0349\t\u0349\u0004\u034a\t\u034a\u0004\u034b\t\u034b\u0004", + "\u034c\t\u034c\u0004\u034d\t\u034d\u0004\u034e\t\u034e\u0004\u034f\t", + "\u034f\u0004\u0350\t\u0350\u0004\u0351\t\u0351\u0004\u0352\t\u0352\u0004", + "\u0353\t\u0353\u0004\u0354\t\u0354\u0004\u0355\t\u0355\u0004\u0356\t", + "\u0356\u0004\u0357\t\u0357\u0004\u0358\t\u0358\u0004\u0359\t\u0359\u0004", + "\u035a\t\u035a\u0004\u035b\t\u035b\u0004\u035c\t\u035c\u0004\u035d\t", + "\u035d\u0004\u035e\t\u035e\u0004\u035f\t\u035f\u0004\u0360\t\u0360\u0004", + "\u0361\t\u0361\u0004\u0362\t\u0362\u0004\u0363\t\u0363\u0004\u0364\t", + "\u0364\u0004\u0365\t\u0365\u0004\u0366\t\u0366\u0004\u0367\t\u0367\u0004", + "\u0368\t\u0368\u0004\u0369\t\u0369\u0004\u036a\t\u036a\u0004\u036b\t", + "\u036b\u0004\u036c\t\u036c\u0004\u036d\t\u036d\u0004\u036e\t\u036e\u0004", + "\u036f\t\u036f\u0004\u0370\t\u0370\u0004\u0371\t\u0371\u0004\u0372\t", + "\u0372\u0004\u0373\t\u0373\u0004\u0374\t\u0374\u0004\u0375\t\u0375\u0004", + "\u0376\t\u0376\u0004\u0377\t\u0377\u0004\u0378\t\u0378\u0004\u0379\t", + "\u0379\u0004\u037a\t\u037a\u0004\u037b\t\u037b\u0004\u037c\t\u037c\u0004", + "\u037d\t\u037d\u0004\u037e\t\u037e\u0004\u037f\t\u037f\u0004\u0380\t", + "\u0380\u0004\u0381\t\u0381\u0004\u0382\t\u0382\u0004\u0383\t\u0383\u0004", + "\u0384\t\u0384\u0004\u0385\t\u0385\u0004\u0386\t\u0386\u0004\u0387\t", + "\u0387\u0004\u0388\t\u0388\u0004\u0389\t\u0389\u0004\u038a\t\u038a\u0004", + "\u038b\t\u038b\u0004\u038c\t\u038c\u0004\u038d\t\u038d\u0004\u038e\t", + "\u038e\u0004\u038f\t\u038f\u0004\u0390\t\u0390\u0004\u0391\t\u0391\u0004", + "\u0392\t\u0392\u0004\u0393\t\u0393\u0004\u0394\t\u0394\u0004\u0395\t", + "\u0395\u0004\u0396\t\u0396\u0004\u0397\t\u0397\u0004\u0398\t\u0398\u0004", + "\u0399\t\u0399\u0004\u039a\t\u039a\u0004\u039b\t\u039b\u0004\u039c\t", + "\u039c\u0004\u039d\t\u039d\u0004\u039e\t\u039e\u0004\u039f\t\u039f\u0004", + "\u03a0\t\u03a0\u0004\u03a1\t\u03a1\u0004\u03a2\t\u03a2\u0004\u03a3\t", + "\u03a3\u0004\u03a4\t\u03a4\u0004\u03a5\t\u03a5\u0004\u03a6\t\u03a6\u0004", + "\u03a7\t\u03a7\u0004\u03a8\t\u03a8\u0004\u03a9\t\u03a9\u0004\u03aa\t", + "\u03aa\u0004\u03ab\t\u03ab\u0004\u03ac\t\u03ac\u0004\u03ad\t\u03ad\u0004", + "\u03ae\t\u03ae\u0004\u03af\t\u03af\u0004\u03b0\t\u03b0\u0004\u03b1\t", + "\u03b1\u0004\u03b2\t\u03b2\u0004\u03b3\t\u03b3\u0004\u03b4\t\u03b4\u0004", + "\u03b5\t\u03b5\u0004\u03b6\t\u03b6\u0004\u03b7\t\u03b7\u0004\u03b8\t", + "\u03b8\u0004\u03b9\t\u03b9\u0004\u03ba\t\u03ba\u0004\u03bb\t\u03bb\u0004", + "\u03bc\t\u03bc\u0004\u03bd\t\u03bd\u0004\u03be\t\u03be\u0004\u03bf\t", + "\u03bf\u0004\u03c0\t\u03c0\u0004\u03c1\t\u03c1\u0004\u03c2\t\u03c2\u0004", + "\u03c3\t\u03c3\u0004\u03c4\t\u03c4\u0004\u03c5\t\u03c5\u0004\u03c6\t", + "\u03c6\u0004\u03c7\t\u03c7\u0004\u03c8\t\u03c8\u0004\u03c9\t\u03c9\u0004", + "\u03ca\t\u03ca\u0004\u03cb\t\u03cb\u0004\u03cc\t\u03cc\u0004\u03cd\t", + "\u03cd\u0004\u03ce\t\u03ce\u0004\u03cf\t\u03cf\u0004\u03d0\t\u03d0\u0004", + "\u03d1\t\u03d1\u0004\u03d2\t\u03d2\u0004\u03d3\t\u03d3\u0004\u03d4\t", + "\u03d4\u0004\u03d5\t\u03d5\u0004\u03d6\t\u03d6\u0004\u03d7\t\u03d7\u0004", + "\u03d8\t\u03d8\u0004\u03d9\t\u03d9\u0004\u03da\t\u03da\u0004\u03db\t", + "\u03db\u0004\u03dc\t\u03dc\u0004\u03dd\t\u03dd\u0004\u03de\t\u03de\u0004", + "\u03df\t\u03df\u0004\u03e0\t\u03e0\u0004\u03e1\t\u03e1\u0004\u03e2\t", + "\u03e2\u0004\u03e3\t\u03e3\u0004\u03e4\t\u03e4\u0004\u03e5\t\u03e5\u0004", + "\u03e6\t\u03e6\u0004\u03e7\t\u03e7\u0004\u03e8\t\u03e8\u0004\u03e9\t", + "\u03e9\u0004\u03ea\t\u03ea\u0004\u03eb\t\u03eb\u0004\u03ec\t\u03ec\u0004", + "\u03ed\t\u03ed\u0004\u03ee\t\u03ee\u0004\u03ef\t\u03ef\u0004\u03f0\t", + "\u03f0\u0004\u03f1\t\u03f1\u0004\u03f2\t\u03f2\u0004\u03f3\t\u03f3\u0004", + "\u03f4\t\u03f4\u0004\u03f5\t\u03f5\u0004\u03f6\t\u03f6\u0004\u03f7\t", + "\u03f7\u0004\u03f8\t\u03f8\u0004\u03f9\t\u03f9\u0004\u03fa\t\u03fa\u0004", + "\u03fb\t\u03fb\u0004\u03fc\t\u03fc\u0004\u03fd\t\u03fd\u0004\u03fe\t", + "\u03fe\u0004\u03ff\t\u03ff\u0004\u0400\t\u0400\u0004\u0401\t\u0401\u0004", + "\u0402\t\u0402\u0004\u0403\t\u0403\u0004\u0404\t\u0404\u0004\u0405\t", + "\u0405\u0004\u0406\t\u0406\u0004\u0407\t\u0407\u0004\u0408\t\u0408\u0004", + "\u0409\t\u0409\u0004\u040a\t\u040a\u0004\u040b\t\u040b\u0004\u040c\t", + "\u040c\u0004\u040d\t\u040d\u0004\u040e\t\u040e\u0004\u040f\t\u040f\u0004", + "\u0410\t\u0410\u0004\u0411\t\u0411\u0004\u0412\t\u0412\u0004\u0413\t", + "\u0413\u0004\u0414\t\u0414\u0004\u0415\t\u0415\u0004\u0416\t\u0416\u0004", + "\u0417\t\u0417\u0004\u0418\t\u0418\u0004\u0419\t\u0419\u0004\u041a\t", + "\u041a\u0004\u041b\t\u041b\u0004\u041c\t\u041c\u0004\u041d\t\u041d\u0004", + "\u041e\t\u041e\u0004\u041f\t\u041f\u0004\u0420\t\u0420\u0004\u0421\t", + "\u0421\u0004\u0422\t\u0422\u0004\u0423\t\u0423\u0003\u0002\u0006\u0002", + "\u0849\n\u0002\r\u0002\u000e\u0002\u084a\u0003\u0002\u0003\u0002\u0003", + "\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0006\u0003\u0854", + "\n\u0003\r\u0003\u000e\u0003\u0855\u0003\u0003\u0003\u0003\u0003\u0003", + "\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004", + "\u0007\u0004\u0861\n\u0004\f\u0004\u000e\u0004\u0864\u000b\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003", + "\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u086f\n\u0005\u0003\u0005", + "\u0007\u0005\u0872\n\u0005\f\u0005\u000e\u0005\u0875\u000b\u0005\u0003", + "\u0005\u0005\u0005\u0878\n\u0005\u0003\u0005\u0003\u0005\u0005\u0005", + "\u087c\n\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005", + "\u0005\u0882\n\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u0886\n\u0005", + "\u0005\u0005\u0888\n\u0005\u0003\u0005\u0003\u0005\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\t\u0003", + "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\n\u0003", + "\n\u0003\n\u0003\n\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0003\u000b", + "\u0003\u000b\u0003\f\u0003\f\u0003\f\u0003\r\u0003\r\u0003\r\u0003\r", + "\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e", + "\u0003\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f", + "\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0010", + "\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0012", + "\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013", + "\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013", + "\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0015", + "\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0016\u0003\u0016", + "\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017", + "\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017", + "\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0003\u0018", + "\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u0019", + "\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u001a", + "\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a", + "\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b", + "\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001c\u0003\u001c", + "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c", + "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001d", + "\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d", + "\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e", + "\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f", + "\u0003\u001f\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003 \u0003", + " \u0003 \u0003!\u0003!\u0003!\u0003!\u0003!\u0003!\u0003!\u0003!\u0003", + "\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003", + "\"\u0003\"\u0003\"\u0003\"\u0003#\u0003#\u0003#\u0003#\u0003#\u0003", + "#\u0003#\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003", + "$\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003", + "%\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003\'\u0003", + "\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003(\u0003(\u0003", + "(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003)\u0003)\u0003)\u0003)\u0003", + ")\u0003)\u0003)\u0003*\u0003*\u0003*\u0003*\u0003*\u0003+\u0003+\u0003", + "+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003", + ",\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003", + ",\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003", + "-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003", + ".\u0003.\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003", + "/\u0003/\u0003/\u0003/\u00030\u00030\u00030\u00030\u00030\u00031\u0003", + "1\u00031\u00031\u00031\u00032\u00032\u00032\u00032\u00032\u00033\u0003", + "3\u00033\u00033\u00033\u00033\u00033\u00034\u00034\u00034\u00034\u0003", + "4\u00034\u00034\u00034\u00034\u00035\u00035\u00035\u00035\u00035\u0003", + "5\u00035\u00035\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u0003", + "7\u00037\u00037\u00037\u00037\u00038\u00038\u00038\u00038\u00038\u0003", + "8\u00038\u00038\u00039\u00039\u00039\u00039\u00039\u00039\u0003:\u0003", + ":\u0003:\u0003:\u0003:\u0003:\u0003;\u0003;\u0003;\u0003;\u0003<\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", + "=\u0003=\u0003=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003?\u0003?\u0003", + "?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003@\u0003@\u0003@\u0003", + "@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003A\u0003A\u0003A\u0003", + "A\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003C\u0003C\u0003C\u0003", + "C\u0003C\u0003C\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", + "E\u0003E\u0003E\u0003E\u0003F\u0003F\u0003F\u0003G\u0003G\u0003G\u0003", + "G\u0003G\u0003G\u0003G\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003L\u0003L\u0003L\u0003L\u0003", + "L\u0003L\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003N\u0003", + "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003O\u0003O\u0003", + "O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003Q\u0003Q\u0003Q\u0003Q\u0003", + "Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003R\u0003R\u0003S\u0003", + "S\u0003S\u0003S\u0003T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003", + "U\u0003U\u0003U\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", + "V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003X\u0003X\u0003X\u0003", + "X\u0003X\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003", + "Z\u0003Z\u0003Z\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003", + "\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003]\u0003]\u0003]\u0003", + "]\u0003]\u0003^\u0003^\u0003^\u0003^\u0003^\u0003_\u0003_\u0003_\u0003", + "_\u0003_\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003", + "`\u0003`\u0003`\u0003`\u0003`\u0003a\u0003a\u0003a\u0003a\u0003a\u0003", + "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003b\u0003b\u0003b\u0003", + "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", + "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", + "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003c\u0003", + "c\u0003c\u0003c\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003", + "d\u0003d\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003", + "e\u0003f\u0003f\u0003f\u0003f\u0003f\u0003f\u0003f\u0003f\u0003g\u0003", + "g\u0003g\u0003g\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003", + "h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003", + "h\u0003h\u0003i\u0003i\u0003i\u0003i\u0003i\u0003j\u0003j\u0003j\u0003", + "j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003k\u0003l\u0003l\u0003l\u0003", + "l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003", + "m\u0003m\u0003m\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", + "n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003o\u0003p\u0003p\u0003p\u0003", + "p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003q\u0003r\u0003r\u0003r\u0003", + "r\u0003r\u0003r\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003", + "s\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003", + "t\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003v\u0003", + "v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003w\u0003", + "w\u0003w\u0003w\u0003w\u0003w\u0003x\u0003x\u0003x\u0003x\u0003x\u0003", + "x\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003z\u0003z\u0003z\u0003", + "z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003", + "{\u0003{\u0003{\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0003", + "}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003~\u0003~\u0003", + "~\u0003~\u0003~\u0003~\u0003~\u0003\u007f\u0003\u007f\u0003\u007f\u0003", + "\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u0080\u0003\u0080\u0003", + "\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003", + "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003", + "\u0081\u0003\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003", + "\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0083\u0003", + "\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0003\u0083\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003", + "\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003\u0085\u0003\u0085\u0003", + "\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0087\u0003\u0087\u0003", + "\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0088\u0003\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0089\u0003", + "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003", + "\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003", + "\u008a\u0003\u008a\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", + "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008d\u0003\u008d\u0003", + "\u008d\u0003\u008d\u0003\u008d\u0003\u008e\u0003\u008e\u0003\u008e\u0003", + "\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008f\u0003\u008f\u0003", + "\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003", + "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0092\u0003", + "\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003", + "\u0092\u0003\u0092\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003", + "\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003", + "\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0097\u0003", + "\u0097\u0003\u0097\u0003\u0097\u0003\u0098\u0003\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0099\u0003", + "\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003", + "\u0099\u0003\u0099\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003", + "\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003", + "\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009b\u0003\u009b\u0003", + "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009d\u0003\u009d\u0003\u009d\u0003", + "\u009d\u0003\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0003\u009f\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003", + "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003\u00a1\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003", + "\u00a3\u0003\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003", + "\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a6\u0003\u00a6\u0003", + "\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003", + "\u00a6\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003", + "\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003", + "\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003", + "\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003", + "\u00ab\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00b0\u0003", + "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003", + "\u00b3\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b5\u0003", + "\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", + "\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003", + "\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003", + "\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b8\u0003", + "\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0003\u00bd\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003", + "\u00c2\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c6\u0003", + "\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c8\u0003", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cc\u0003\u00cc\u0003", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003", + "\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", + "\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d5\u0003", + "\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003", + "\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003\u00d6\u0003", + "\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", + "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0003\u00d9\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003", + "\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00de\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00e0\u0003", + "\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003", + "\u00e0\u0003\u00e0\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003", + "\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003", + "\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003", + "\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003", + "\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003", + "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003", + "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003", + "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003", + "\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003", + "\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003", + "\u00e9\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", + "\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003", + "\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003", + "\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003", + "\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003", + "\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003", + "\u00ee\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003", + "\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003", + "\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003", + "\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f2\u0003\u00f2\u0003", + "\u00f2\u0003\u00f2\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003", + "\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f6\u0003", + "\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003", + "\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f7\u0003\u00f7\u0003", + "\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003", + "\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f8\u0003\u00f8\u0003", + "\u00f8\u0003\u00f8\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003", + "\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00fa\u0003\u00fa\u0003", + "\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003", + "\u00fa\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003", + "\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fd\u0003", + "\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003", + "\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003", + "\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u0100\u0003\u0100\u0003", + "\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003", + "\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003", + "\u0101\u0003\u0101\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0107\u0003", + "\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003", + "\u0107\u0003\u0107\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003", + "\u0108\u0003\u0108\u0003\u0108\u0003\u0109\u0003\u0109\u0003\u0109\u0003", + "\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003", + "\u0109\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003", + "\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010d\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003", + "\u010d\u0003\u010d\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003", + "\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003", + "\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003", + "\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0113\u0003", + "\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003", + "\u0113\u0003\u0113\u0003\u0113\u0003\u0114\u0003\u0114\u0003\u0114\u0003", + "\u0114\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0116\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003", + "\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003", + "\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003", + "\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003", + "\u011a\u0003\u011a\u0003\u011a\u0003\u011b\u0003\u011b\u0003\u011b\u0003", + "\u011b\u0003\u011b\u0003\u011b\u0003\u011c\u0003\u011c\u0003\u011c\u0003", + "\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011d\u0003\u011d\u0003", + "\u011d\u0003\u011d\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003", + "\u011e\u0003\u011e\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003", + "\u011f\u0003\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0003", + "\u0120\u0003\u0120\u0003\u0120\u0003\u0121\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0003\u0121\u0003\u0121\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0003\u0122\u0003\u0122\u0003\u0123\u0003\u0123\u0003\u0123\u0003", + "\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003", + "\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003", + "\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003", + "\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003", + "\u0128\u0003\u0128\u0003\u0128\u0003\u0129\u0003\u0129\u0003\u0129\u0003", + "\u0129\u0003\u0129\u0003\u0129\u0003\u0129\u0003\u012a\u0003\u012a\u0003", + "\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003", + "\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012b\u0003", + "\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003", + "\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003", + "\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003", + "\u012d\u0003\u012d\u0003\u012d\u0003\u012e\u0003\u012e\u0003\u012e\u0003", + "\u012e\u0003\u012e\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0137\u0003\u0137\u0003\u0137\u0003", + "\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003", + "\u0137\u0003\u0137\u0003\u0137\u0003\u0138\u0003\u0138\u0003\u0138\u0003", + "\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003", + "\u0138\u0003\u0138\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u0139\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003", + "\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003", + "\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003", + "\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003", + "\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013e\u0003", + "\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003", + "\u013e\u0003\u013e\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u0140\u0003\u0140\u0003", + "\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003", + "\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003", + "\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003", + "\u0143\u0003\u0143\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0147\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014b\u0003", + "\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003", + "\u014b\u0003\u014b\u0003\u014b\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014d\u0003", + "\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u0150\u0003\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003", + "\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003", + "\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0152\u0003\u0152\u0003", + "\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003", + "\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003", + "\u0153\u0003\u0154\u0003\u0154\u0003\u0154\u0003\u0154\u0003\u0154\u0003", + "\u0154\u0003\u0154\u0003\u0154\u0003\u0154\u0003\u0154\u0003\u0154\u0003", + "\u0155\u0003\u0155\u0003\u0155\u0003\u0155\u0003\u0156\u0003\u0156\u0003", + "\u0156\u0003\u0156\u0003\u0156\u0003\u0157\u0003\u0157\u0003\u0157\u0003", + "\u0157\u0003\u0157\u0003\u0157\u0003\u0157\u0003\u0158\u0003\u0158\u0003", + "\u0158\u0003\u0158\u0003\u0158\u0003\u0158\u0003\u0158\u0003\u0158\u0003", + "\u0159\u0003\u0159\u0003\u0159\u0003\u0159\u0003\u0159\u0003\u0159\u0003", + "\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003", + "\u015a\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015c\u0003\u015c\u0003\u015c\u0003\u015c\u0003", + "\u015c\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003", + "\u015d\u0003\u015e\u0003\u015e\u0003\u015e\u0003\u015e\u0003\u015e\u0003", + "\u015e\u0003\u015e\u0003\u015f\u0003\u015f\u0003\u015f\u0003\u015f\u0003", + "\u015f\u0003\u015f\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003", + "\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0163\u0003\u0163\u0003", + "\u0163\u0003\u0163\u0003\u0163\u0003\u0163\u0003\u0163\u0003\u0164\u0003", + "\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003", + "\u0164\u0003\u0164\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0165\u0003", + "\u0165\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0165\u0003", + "\u0165\u0003\u0165\u0003\u0166\u0003\u0166\u0003\u0166\u0003\u0166\u0003", + "\u0166\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003", + "\u0167\u0003\u0167\u0003\u0168\u0003\u0168\u0003\u0168\u0003\u0168\u0003", + "\u0168\u0003\u0168\u0003\u0168\u0003\u0169\u0003\u0169\u0003\u0169\u0003", + "\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003", + "\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003", + "\u0169\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a\u0003", + "\u016a\u0003\u016a\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016c\u0003\u016c\u0003\u016c\u0003\u016c\u0003", + "\u016c\u0003\u016c\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003", + "\u016d\u0003\u016d\u0003\u016e\u0003\u016e\u0003\u016e\u0003\u016e\u0003", + "\u016e\u0003\u016e\u0003\u016e\u0003\u016e\u0003\u016f\u0003\u016f\u0003", + "\u016f\u0003\u016f\u0003\u016f\u0003\u016f\u0003\u0170\u0003\u0170\u0003", + "\u0170\u0003\u0170\u0003\u0170\u0003\u0171\u0003\u0171\u0003\u0171\u0003", + "\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003", + "\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003", + "\u0172\u0003\u0172\u0003\u0173\u0003\u0173\u0003\u0173\u0003\u0173\u0003", + "\u0173\u0003\u0173\u0003\u0173\u0003\u0174\u0003\u0174\u0003\u0174\u0003", + "\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003\u0175\u0003\u0175\u0003", + "\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003", + "\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003", + "\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0176\u0003\u0176\u0003", + "\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003", + "\u0177\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0178\u0003", + "\u0178\u0003\u0178\u0003\u0178\u0003\u0178\u0003\u0179\u0003\u0179\u0003", + "\u0179\u0003\u0179\u0003\u0179\u0003\u017a\u0003\u017a\u0003\u017a\u0003", + "\u017a\u0003\u017a\u0003\u017a\u0003\u017b\u0003\u017b\u0003\u017b\u0003", + "\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003", + "\u017b\u0003\u017b\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003", + "\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003", + "\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003", + "\u017c\u0003\u017c\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003", + "\u017d\u0003\u017d\u0003\u017d\u0003\u017e\u0003\u017e\u0003\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017f\u0003", + "\u017f\u0003\u017f\u0003\u017f\u0003\u017f\u0003\u017f\u0003\u017f\u0003", + "\u017f\u0003\u017f\u0003\u017f\u0003\u017f\u0003\u017f\u0003\u017f\u0003", + "\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003", + "\u0180\u0003\u0180\u0003\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0003", + "\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0003", + "\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0003\u0182\u0003\u0182\u0003", + "\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003", + "\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003", + "\u0183\u0003\u0183\u0003\u0183\u0003\u0184\u0003\u0184\u0003\u0184\u0003", + "\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003", + "\u0184\u0003\u0185\u0003\u0185\u0003\u0185\u0003\u0185\u0003\u0185\u0003", + "\u0185\u0003\u0185\u0003\u0185\u0003\u0186\u0003\u0186\u0003\u0186\u0003", + "\u0187\u0003\u0187\u0003\u0187\u0003\u0187\u0003\u0187\u0003\u0187\u0003", + "\u0187\u0003\u0187\u0003\u0187\u0003\u0187\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003", + "\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003", + "\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003", + "\u018c\u0003\u018c\u0003\u018c\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018f\u0003", + "\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003", + "\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0191\u0003", + "\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0192\u0003", + "\u0192\u0003\u0192\u0003\u0192\u0003\u0192\u0003\u0193\u0003\u0193\u0003", + "\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003", + "\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0196\u0003", + "\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003", + "\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003", + "\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003", + "\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003\u0197\u0003", + "\u0197\u0003\u0197\u0003\u0197\u0003\u0198\u0003\u0198\u0003\u0198\u0003", + "\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003", + "\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003", + "\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003", + "\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003", + "\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003", + "\u0199\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019b\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003", + "\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003", + "\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003", + "\u01a2\u0003\u01a2\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003", + "\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003", + "\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003", + "\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003", + "\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003", + "\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01a9\u0003\u01a9\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003", + "\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003", + "\u01aa\u0003\u01aa\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003", + "\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003", + "\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003", + "\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003", + "\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003", + "\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003", + "\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003", + "\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003", + "\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003", + "\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003", + "\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003", + "\u01b1\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003", + "\u01b2\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003", + "\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003", + "\u01b3\u0003\u01b3\u0003\u01b4\u0003\u01b4\u0003\u01b4\u0003\u01b4\u0003", + "\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003", + "\u01b5\u0003\u01b5\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003", + "\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b7\u0003", + "\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b8\u0003\u01b8\u0003", + "\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b9\u0003", + "\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01ba\u0003", + "\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01bb\u0003", + "\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003", + "\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bc\u0003", + "\u01bc\u0003\u01bc\u0003\u01bc\u0003\u01bc\u0003\u01bd\u0003\u01bd\u0003", + "\u01bd\u0003\u01bd\u0003\u01bd\u0003\u01bd\u0003\u01be\u0003\u01be\u0003", + "\u01be\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01bf\u0003\u01bf\u0003", + "\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01c0\u0003\u01c0\u0003", + "\u01c0\u0003\u01c0\u0003\u01c0\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003", + "\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003", + "\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c3\u0003\u01c3\u0003", + "\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003", + "\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c5\u0003", + "\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003", + "\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003", + "\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003", + "\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c8\u0003\u01c8\u0003", + "\u01c8\u0003\u01c8\u0003\u01c9\u0003\u01c9\u0003\u01c9\u0003\u01c9\u0003", + "\u01c9\u0003\u01c9\u0003\u01c9\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003", + "\u01ca\u0003\u01ca\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003", + "\u01cb\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003", + "\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003", + "\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cd\u0003", + "\u01cd\u0003\u01cd\u0003\u01cd\u0003\u01cd\u0003\u01cd\u0003\u01cd\u0003", + "\u01cd\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003", + "\u01ce\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003", + "\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01d0\u0003", + "\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d1\u0003\u01d1\u0003", + "\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d2\u0003", + "\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003", + "\u01d2\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003", + "\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003", + "\u01d3\u0003\u01d3\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003", + "\u01d4\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003", + "\u01d4\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003", + "\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d6\u0003\u01d6\u0003", + "\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d7\u0003\u01d7\u0003", + "\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d8\u0003", + "\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003", + "\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d9\u0003\u01d9\u0003", + "\u01d9\u0003\u01d9\u0003\u01d9\u0003\u01d9\u0003\u01d9\u0003\u01d9\u0003", + "\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01db\u0003", + "\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003", + "\u01db\u0003\u01db\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0003", + "\u01dc\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0003\u01dd\u0003\u01dd\u0003", + "\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003", + "\u01dd\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003", + "\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003", + "\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003", + "\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003", + "\u01e0\u0003\u01e0\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003", + "\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e2\u0003", + "\u01e2\u0003\u01e2\u0003\u01e2\u0003\u01e2\u0003\u01e2\u0003\u01e3\u0003", + "\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e4\u0003", + "\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e5\u0003", + "\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003", + "\u01e5\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003", + "\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003", + "\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003", + "\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003", + "\u01e7\u0003\u01e7\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003", + "\u01e8\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003", + "\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003", + "\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003", + "\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003", + "\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003", + "\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003", + "\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01ec\u0003", + "\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003", + "\u01ec\u0003\u01ec\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003", + "\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003", + "\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003", + "\u01ee\u0003\u01ee\u0003\u01ef\u0003\u01ef\u0003\u01ef\u0003\u01ef\u0003", + "\u01ef\u0003\u01ef\u0003\u01ef\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003", + "\u01f0\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003", + "\u01f0\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003", + "\u01f0\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003", + "\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003", + "\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003", + "\u01f1\u0003\u01f1\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003", + "\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003", + "\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003", + "\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f3\u0003\u01f3\u0003", + "\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003", + "\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003", + "\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003", + "\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003", + "\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003", + "\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003", + "\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003", + "\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003", + "\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003", + "\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003", + "\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003", + "\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003", + "\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003", + "\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003", + "\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003", + "\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f7\u0003\u01f7\u0003", + "\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003", + "\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f8\u0003\u01f8\u0003", + "\u01f8\u0003\u01f8\u0003\u01f8\u0003\u01f8\u0003\u01f9\u0003\u01f9\u0003", + "\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01fa\u0003", + "\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003", + "\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003", + "\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fb\u0003", + "\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003", + "\u01fb\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003", + "\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003", + "\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fe\u0003\u01fe\u0003\u01fe\u0003", + "\u01fe\u0003\u01fe\u0003\u01fe\u0003\u01fe\u0003\u01ff\u0003\u01ff\u0003", + "\u01ff\u0003\u01ff\u0003\u01ff\u0003\u01ff\u0003\u01ff\u0003\u0200\u0003", + "\u0200\u0003\u0200\u0003\u0200\u0003\u0201\u0003\u0201\u0003\u0201\u0003", + "\u0201\u0003\u0201\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0202\u0003", + "\u0202\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0202\u0003", + "\u0202\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003", + "\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0204\u0003", + "\u0204\u0003\u0204\u0003\u0204\u0003\u0204\u0003\u0204\u0003\u0204\u0003", + "\u0204\u0003\u0204\u0003\u0205\u0003\u0205\u0003\u0205\u0003\u0205\u0003", + "\u0205\u0003\u0205\u0003\u0205\u0003\u0205\u0003\u0205\u0003\u0206\u0003", + "\u0206\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206\u0003", + "\u0207\u0003\u0207\u0003\u0207\u0003\u0207\u0003\u0207\u0003\u0207\u0003", + "\u0207\u0003\u0207\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0208\u0003", + "\u0208\u0003\u0208\u0003\u0209\u0003\u0209\u0003\u0209\u0003\u0209\u0003", + "\u0209\u0003\u0209\u0003\u0209\u0003\u020a\u0003\u020a\u0003\u020a\u0003", + "\u020a\u0003\u020a\u0003\u020a\u0003\u020a\u0003\u020b\u0003\u020b\u0003", + "\u020b\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020c\u0003", + "\u020c\u0003\u020c\u0003\u020c\u0003\u020c\u0003\u020c\u0003\u020d\u0003", + "\u020d\u0003\u020d\u0003\u020d\u0003\u020d\u0003\u020e\u0003\u020e\u0003", + "\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003", + "\u020e\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u020f\u0003", + "\u020f\u0003\u020f\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0210\u0003", + "\u0210\u0003\u0211\u0003\u0211\u0003\u0211\u0003\u0211\u0003\u0211\u0003", + "\u0211\u0003\u0211\u0003\u0212\u0003\u0212\u0003\u0212\u0003\u0212\u0003", + "\u0212\u0003\u0212\u0003\u0212\u0003\u0213\u0003\u0213\u0003\u0213\u0003", + "\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0214\u0003\u0214\u0003", + "\u0214\u0003\u0214\u0003\u0214\u0003\u0214\u0003\u0214\u0003\u0214\u0003", + "\u0214\u0003\u0214\u0003\u0214\u0003\u0214\u0003\u0214\u0003\u0214\u0003", + "\u0214\u0003\u0214\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003", + "\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003", + "\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003", + "\u0215\u0003\u0215\u0003\u0215\u0003\u0216\u0003\u0216\u0003\u0216\u0003", + "\u0216\u0003\u0216\u0003\u0216\u0003\u0216\u0003\u0216\u0003\u0216\u0003", + "\u0216\u0003\u0216\u0003\u0216\u0003\u0216\u0003\u0216\u0003\u0216\u0003", + "\u0216\u0003\u0216\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003", + "\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003", + "\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003", + "\u0217\u0003\u0217\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003", + "\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003", + "\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003", + "\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003", + "\u0219\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003", + "\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003", + "\u021b\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021b\u0003", + "\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003", + "\u021c\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003", + "\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003", + "\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003", + "\u021d\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003", + "\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003", + "\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003", + "\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003", + "\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003", + "\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003\u021f\u0003", + "\u021f\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0220\u0003", + "\u0220\u0003\u0220\u0003\u0221\u0003\u0221\u0003\u0221\u0003\u0221\u0003", + "\u0221\u0003\u0222\u0003\u0222\u0003\u0222\u0003\u0222\u0003\u0222\u0003", + "\u0222\u0003\u0222\u0003\u0222\u0003\u0223\u0003\u0223\u0003\u0223\u0003", + "\u0223\u0003\u0223\u0003\u0223\u0003\u0223\u0003\u0224\u0003\u0224\u0003", + "\u0224\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0225\u0003", + "\u0225\u0003\u0225\u0003\u0225\u0003\u0225\u0003\u0225\u0003\u0225\u0003", + "\u0225\u0003\u0225\u0003\u0225\u0003\u0225\u0003\u0225\u0003\u0225\u0003", + "\u0225\u0003\u0225\u0003\u0225\u0003\u0226\u0003\u0226\u0003\u0226\u0003", + "\u0226\u0003\u0226\u0003\u0226\u0003\u0226\u0003\u0226\u0003\u0227\u0003", + "\u0227\u0003\u0227\u0003\u0227\u0003\u0227\u0003\u0227\u0003\u0227\u0003", + "\u0227\u0003\u0227\u0003\u0227\u0003\u0227\u0003\u0227\u0003\u0227\u0003", + "\u0228\u0003\u0228\u0003\u0228\u0003\u0228\u0003\u0228\u0003\u0228\u0003", + "\u0228\u0003\u0228\u0003\u0228\u0003\u0228\u0003\u0228\u0003\u0228\u0003", + "\u0228\u0003\u0228\u0003\u0229\u0003\u0229\u0003\u0229\u0003\u0229\u0003", + "\u0229\u0003\u0229\u0003\u0229\u0003\u0229\u0003\u022a\u0003\u022a\u0003", + "\u022a\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022b\u0003\u022b\u0003", + "\u022b\u0003\u022b\u0003\u022b\u0003\u022b\u0003\u022b\u0003\u022b\u0003", + "\u022b\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003", + "\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003", + "\u022d\u0003\u022d\u0003\u022d\u0003\u022d\u0003\u022d\u0003\u022d\u0003", + "\u022d\u0003\u022d\u0003\u022d\u0003\u022d\u0003\u022d\u0003\u022e\u0003", + "\u022e\u0003\u022e\u0003\u022e\u0003\u022e\u0003\u022e\u0003\u022e\u0003", + "\u022e\u0003\u022e\u0003\u022e\u0003\u022f\u0003\u022f\u0003\u022f\u0003", + "\u022f\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u022f\u0003", + "\u022f\u0003\u0230\u0003\u0230\u0003\u0230\u0003\u0230\u0003\u0230\u0003", + "\u0231\u0003\u0231\u0003\u0231\u0003\u0231\u0003\u0231\u0003\u0231\u0003", + "\u0231\u0003\u0231\u0003\u0231\u0003\u0231\u0003\u0231\u0003\u0231\u0003", + "\u0232\u0003\u0232\u0003\u0232\u0003\u0232\u0003\u0232\u0003\u0232\u0003", + "\u0232\u0003\u0232\u0003\u0232\u0003\u0232\u0003\u0232\u0003\u0232\u0003", + "\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003", + "\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003", + "\u0233\u0003\u0233\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003", + "\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0235\u0003", + "\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003", + "\u0235\u0003\u0235\u0003\u0236\u0003\u0236\u0003\u0236\u0003\u0236\u0003", + "\u0236\u0003\u0236\u0003\u0236\u0003\u0236\u0003\u0236\u0003\u0236\u0003", + "\u0237\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0237\u0003", + "\u0237\u0003\u0237\u0003\u0237\u0003\u0238\u0003\u0238\u0003\u0238\u0003", + "\u0238\u0003\u0238\u0003\u0238\u0003\u0238\u0003\u0238\u0003\u0238\u0003", + "\u0238\u0003\u0238\u0003\u0238\u0003\u0238\u0003\u0238\u0003\u0238\u0003", + "\u0238\u0003\u0238\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003", + "\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003", + "\u023a\u0003\u023a\u0003\u023a\u0003\u023a\u0003\u023a\u0003\u023a\u0003", + "\u023a\u0003\u023a\u0003\u023b\u0003\u023b\u0003\u023b\u0003\u023b\u0003", + "\u023b\u0003\u023b\u0003\u023c\u0003\u023c\u0003\u023c\u0003\u023c\u0003", + "\u023c\u0003\u023c\u0003\u023c\u0003\u023c\u0003\u023d\u0003\u023d\u0003", + "\u023d\u0003\u023d\u0003\u023d\u0003\u023e\u0003\u023e\u0003\u023e\u0003", + "\u023e\u0003\u023e\u0003\u023e\u0003\u023e\u0003\u023e\u0003\u023f\u0003", + "\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003", + "\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003", + "\u023f\u0003\u023f\u0003\u0240\u0003\u0240\u0003\u0240\u0003\u0240\u0003", + "\u0240\u0003\u0240\u0003\u0240\u0003\u0240\u0003\u0240\u0003\u0240\u0003", + "\u0240\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003", + "\u0241\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0242\u0003", + "\u0242\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0243\u0003", + "\u0243\u0003\u0243\u0003\u0243\u0003\u0243\u0003\u0244\u0003\u0244\u0003", + "\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003", + "\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003", + "\u0245\u0003\u0245\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003", + "\u0246\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003", + "\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0248\u0003\u0248\u0003", + "\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003", + "\u0249\u0003\u0249\u0003\u0249\u0003\u0249\u0003\u0249\u0003\u024a\u0003", + "\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003", + "\u024a\u0003\u024b\u0003\u024b\u0003\u024b\u0003\u024b\u0003\u024b\u0003", + "\u024c\u0003\u024c\u0003\u024c\u0003\u024d\u0003\u024d\u0003\u024d\u0003", + "\u024d\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024f\u0003", + "\u024f\u0003\u024f\u0003\u024f\u0003\u0250\u0003\u0250\u0003\u0250\u0003", + "\u0250\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0252\u0003", + "\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003", + "\u0252\u0003\u0252\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003", + "\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0254\u0003\u0254\u0003", + "\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0255\u0003\u0255\u0003", + "\u0255\u0003\u0255\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003", + "\u0256\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003", + "\u0257\u0003\u0257\u0003\u0258\u0003\u0258\u0003\u0258\u0003\u0258\u0003", + "\u0258\u0003\u0259\u0003\u0259\u0003\u0259\u0003\u0259\u0003\u0259\u0003", + "\u0259\u0003\u0259\u0003\u025a\u0003\u025a\u0003\u025a\u0003\u025a\u0003", + "\u025a\u0003\u025a\u0003\u025a\u0003\u025a\u0003\u025a\u0003\u025a\u0003", + "\u025a\u0003\u025a\u0003\u025b\u0003\u025b\u0003\u025b\u0003\u025b\u0003", + "\u025b\u0003\u025b\u0003\u025b\u0003\u025c\u0003\u025c\u0003\u025c\u0003", + "\u025c\u0003\u025c\u0003\u025c\u0003\u025c\u0003\u025c\u0003\u025d\u0003", + "\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003", + "\u025d\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003", + "\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003", + "\u025f\u0003\u025f\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003", + "\u0260\u0003\u0260\u0003\u0260\u0003\u0261\u0003\u0261\u0003\u0261\u0003", + "\u0261\u0003\u0261\u0003\u0261\u0003\u0261\u0003\u0261\u0003\u0261\u0003", + "\u0262\u0003\u0262\u0003\u0262\u0003\u0262\u0003\u0262\u0003\u0262\u0003", + "\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003", + "\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0264\u0003", + "\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003", + "\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003", + "\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003", + "\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003", + "\u0264\u0003\u0264\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0265\u0003", + "\u0265\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0265\u0003", + "\u0265\u0003\u0265\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0266\u0003", + "\u0266\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0266\u0003", + "\u0266\u0003\u0266\u0003\u0266\u0003\u0267\u0003\u0267\u0003\u0267\u0003", + "\u0267\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0267\u0003", + "\u0267\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0268\u0003\u0268\u0003", + "\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003", + "\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003", + "\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003", + "\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0269\u0003\u0269\u0003", + "\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003", + "\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u026a\u0003\u026a\u0003", + "\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003", + "\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003", + "\u026a\u0003\u026a\u0003\u026a\u0003\u026b\u0003\u026b\u0003\u026b\u0003", + "\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003", + "\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003", + "\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003", + "\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003", + "\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003", + "\u026c\u0003\u026c\u0003\u026c\u0003\u026d\u0003\u026d\u0003\u026d\u0003", + "\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003", + "\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026e\u0003", + "\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003", + "\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003", + "\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003", + "\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026f\u0003", + "\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003", + "\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003", + "\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003", + "\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u0270\u0003", + "\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003", + "\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003", + "\u0270\u0003\u0270\u0003\u0270\u0003\u0271\u0003\u0271\u0003\u0271\u0003", + "\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003", + "\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003", + "\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003", + "\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003", + "\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003", + "\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003", + "\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0272\u0003", + "\u0272\u0003\u0272\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003", + "\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003", + "\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003", + "\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003", + "\u0273\u0003\u0273\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003", + "\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003", + "\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003", + "\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0275\u0003", + "\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003", + "\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003", + "\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003\u0275\u0003", + "\u0275\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003", + "\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003", + "\u0277\u0005\u0277\u1e78\n\u0277\u0003\u0277\u0003\u0277\u0003\u0277", + "\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277", + "\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277", + "\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277", + "\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0005\u0277\u1e93\n", + "\u0277\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003", + "\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003", + "\u0278\u0003\u0279\u0003\u0279\u0003\u0279\u0003\u0279\u0003\u0279\u0003", + "\u0279\u0003\u0279\u0003\u0279\u0003\u0279\u0003\u0279\u0003\u0279\u0003", + "\u0279\u0003\u0279\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003", + "\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003", + "\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003", + "\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003", + "\u027a\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003", + "\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003", + "\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003", + "\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003", + "\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003", + "\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003", + "\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003\u027c\u0003", + "\u027c\u0003\u027c\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003", + "\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003", + "\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003", + "\u027d\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003", + "\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027f\u0003\u027f\u0003", + "\u027f\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u0280\u0003\u0280\u0003", + "\u0280\u0003\u0280\u0003\u0280\u0003\u0281\u0003\u0281\u0003\u0281\u0003", + "\u0281\u0003\u0281\u0003\u0281\u0003\u0281\u0003\u0282\u0003\u0282\u0003", + "\u0282\u0003\u0282\u0003\u0282\u0003\u0282\u0003\u0282\u0003\u0283\u0003", + "\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003", + "\u0284\u0003\u0284\u0003\u0284\u0003\u0284\u0003\u0284\u0003\u0284\u0003", + "\u0284\u0003\u0285\u0003\u0285\u0003\u0285\u0003\u0285\u0003\u0285\u0003", + "\u0285\u0003\u0286\u0003\u0286\u0003\u0286\u0003\u0286\u0003\u0286\u0003", + "\u0286\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287\u0003", + "\u0287\u0003\u0288\u0003\u0288\u0003\u0288\u0003\u0288\u0003\u0288\u0003", + "\u0288\u0003\u0289\u0003\u0289\u0003\u0289\u0003\u0289\u0003\u0289\u0003", + "\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003", + "\u028a\u0003\u028a\u0003\u028b\u0003\u028b\u0003\u028b\u0003\u028b\u0003", + "\u028b\u0003\u028b\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003", + "\u028c\u0003\u028c\u0003\u028c\u0003\u028d\u0003\u028d\u0003\u028d\u0003", + "\u028d\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003", + "\u028e\u0003\u028e\u0003\u028e\u0003\u028f\u0003\u028f\u0003\u028f\u0003", + "\u028f\u0003\u028f\u0003\u028f\u0003\u0290\u0003\u0290\u0003\u0290\u0003", + "\u0290\u0003\u0290\u0003\u0290\u0003\u0290\u0003\u0291\u0003\u0291\u0003", + "\u0291\u0003\u0291\u0003\u0292\u0003\u0292\u0003\u0292\u0003\u0292\u0003", + "\u0292\u0003\u0292\u0003\u0292\u0003\u0292\u0003\u0293\u0003\u0293\u0003", + "\u0293\u0003\u0293\u0003\u0293\u0003\u0293\u0003\u0294\u0003\u0294\u0003", + "\u0294\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0295\u0003\u0295\u0003", + "\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0296\u0003", + "\u0296\u0003\u0296\u0003\u0296\u0003\u0296\u0003\u0296\u0003\u0296\u0003", + "\u0297\u0003\u0297\u0003\u0297\u0003\u0297\u0003\u0297\u0003\u0297\u0003", + "\u0297\u0003\u0298\u0003\u0298\u0003\u0298\u0003\u0298\u0003\u0298\u0003", + "\u0298\u0003\u0298\u0003\u0299\u0003\u0299\u0003\u0299\u0003\u0299\u0003", + "\u0299\u0003\u0299\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029a\u0003", + "\u029a\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029b\u0003", + "\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029c\u0003\u029c\u0003", + "\u029c\u0003\u029c\u0003\u029c\u0003\u029d\u0003\u029d\u0003\u029d\u0003", + "\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029e\u0003\u029e\u0003", + "\u029e\u0003\u029e\u0003\u029e\u0003\u029f\u0003\u029f\u0003\u029f\u0003", + "\u029f\u0003\u029f\u0003\u02a0\u0003\u02a0\u0003\u02a0\u0003\u02a0\u0003", + "\u02a0\u0003\u02a0\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003", + "\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a2\u0003\u02a2\u0003", + "\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a3\u0003\u02a3\u0003", + "\u02a3\u0003\u02a3\u0003\u02a3\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003", + "\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a5\u0003", + "\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003", + "\u02a5\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003", + "\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003", + "\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003", + "\u02a7\u0003\u02a8\u0003\u02a8\u0003\u02a8\u0003\u02a8\u0003\u02a9\u0003", + "\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003", + "\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02aa\u0003\u02aa\u0003\u02aa\u0003", + "\u02aa\u0003\u02aa\u0003\u02aa\u0003\u02aa\u0003\u02ab\u0003\u02ab\u0003", + "\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ac\u0003", + "\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003", + "\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ad\u0003\u02ad\u0003", + "\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ae\u0003", + "\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02af\u0003\u02af\u0003\u02af\u0003", + "\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003", + "\u02af\u0003\u02af\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003", + "\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003", + "\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003", + "\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003", + "\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b2\u0003\u02b2\u0003", + "\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003", + "\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003", + "\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003", + "\u02b3\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003", + "\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003", + "\u02b4\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003", + "\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003", + "\u02b5\u0003\u02b5\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003", + "\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003", + "\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003", + "\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003", + "\u02b7\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003", + "\u02b7\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003", + "\u02b8\u0003\u02b8\u0003\u02b8\u0003\u02b8\u0003\u02b8\u0003\u02b8\u0003", + "\u02b8\u0003\u02b8\u0003\u02b8\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003", + "\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003", + "\u02b9\u0003\u02b9\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003", + "\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003", + "\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003", + "\u02bb\u0003\u02bb\u0003\u02bb\u0003\u02bb\u0003\u02bb\u0003\u02bb\u0003", + "\u02bb\u0003\u02bb\u0003\u02bb\u0003\u02bb\u0003\u02bb\u0003\u02bc\u0003", + "\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003", + "\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003", + "\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003", + "\u02be\u0003\u02be\u0003\u02be\u0003\u02be\u0003\u02be\u0003\u02be\u0003", + "\u02be\u0003\u02be\u0003\u02bf\u0003\u02bf\u0003\u02bf\u0003\u02bf\u0003", + "\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c1\u0003", + "\u02c1\u0003\u02c1\u0003\u02c1\u0003\u02c1\u0003\u02c1\u0003\u02c1\u0003", + "\u02c1\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003", + "\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003", + "\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003", + "\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003", + "\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003", + "\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c5\u0003\u02c5\u0003\u02c5\u0003", + "\u02c5\u0003\u02c5\u0003\u02c6\u0003\u02c6\u0003\u02c6\u0003\u02c6\u0003", + "\u02c6\u0003\u02c6\u0003\u02c6\u0003\u02c6\u0003\u02c6\u0003\u02c7\u0003", + "\u02c7\u0003\u02c7\u0003\u02c7\u0003\u02c7\u0003\u02c8\u0003\u02c8\u0003", + "\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c9\u0003", + "\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02ca\u0003", + "\u02ca\u0003\u02ca\u0003\u02ca\u0003\u02ca\u0003\u02ca\u0003\u02cb\u0003", + "\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003", + "\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003", + "\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003", + "\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003", + "\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003", + "\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003", + "\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003", + "\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003", + "\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003\u02cd\u0003", + "\u02cd\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003", + "\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003", + "\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02cf\u0003", + "\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003", + "\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003", + "\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02d0\u0003", + "\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d1\u0003\u02d1\u0003", + "\u02d1\u0003\u02d1\u0003\u02d1\u0003\u02d1\u0003\u02d2\u0003\u02d2\u0003", + "\u02d2\u0003\u02d2\u0003\u02d2\u0003\u02d2\u0003\u02d2\u0003\u02d2\u0003", + "\u02d2\u0003\u02d2\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003", + "\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003", + "\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d5\u0003\u02d5\u0003", + "\u02d5\u0003\u02d5\u0003\u02d5\u0003\u02d5\u0003\u02d5\u0003\u02d5\u0003", + "\u02d5\u0003\u02d5\u0003\u02d5\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003", + "\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d7\u0003\u02d7\u0003", + "\u02d7\u0003\u02d7\u0003\u02d7\u0003\u02d7\u0003\u02d7\u0003\u02d7\u0003", + "\u02d7\u0003\u02d7\u0003\u02d7\u0003\u02d7\u0003\u02d7\u0003\u02d8\u0003", + "\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d9\u0003\u02d9\u0003", + "\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003", + "\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003", + "\u02da\u0003\u02da\u0003\u02da\u0003\u02db\u0003\u02db\u0003\u02db\u0003", + "\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003", + "\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003", + "\u02db\u0003\u02db\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003", + "\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dd\u0003\u02dd\u0003", + "\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003", + "\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02de\u0003\u02de\u0003", + "\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003", + "\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02df\u0003", + "\u02df\u0003\u02df\u0003\u02df\u0003\u02df\u0003\u02df\u0003\u02df\u0003", + "\u02df\u0003\u02df\u0003\u02df\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003", + "\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003", + "\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003", + "\u02e1\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003", + "\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e3\u0003", + "\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003", + "\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003", + "\u02e3\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003", + "\u02e5\u0003\u02e5\u0003\u02e5\u0003\u02e5\u0003\u02e5\u0003\u02e5\u0003", + "\u02e5\u0003\u02e5\u0003\u02e5\u0003\u02e5\u0003\u02e5\u0003\u02e6\u0003", + "\u02e6\u0003\u02e6\u0003\u02e6\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003", + "\u02e7\u0003\u02e8\u0003\u02e8\u0003\u02e8\u0003\u02e8\u0003\u02e8\u0003", + "\u02e8\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003", + "\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003", + "\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003", + "\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003", + "\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02ea\u0003\u02ea\u0003", + "\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003", + "\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003", + "\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003", + "\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003", + "\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003", + "\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003", + "\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003", + "\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003", + "\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003", + "\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ed\u0003", + "\u02ed\u0003\u02ed\u0003\u02ed\u0003\u02ed\u0003\u02ed\u0003\u02ed\u0003", + "\u02ed\u0003\u02ee\u0003\u02ee\u0003\u02ee\u0003\u02ee\u0003\u02ee\u0003", + "\u02ee\u0003\u02ee\u0003\u02ee\u0003\u02ee\u0003\u02ef\u0003\u02ef\u0003", + "\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003", + "\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02f0\u0003\u02f0\u0003", + "\u02f0\u0003\u02f0\u0003\u02f0\u0003\u02f0\u0003\u02f0\u0003\u02f0\u0003", + "\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003", + "\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f2\u0003", + "\u02f2\u0003\u02f2\u0003\u02f2\u0003\u02f2\u0003\u02f2\u0003\u02f2\u0003", + "\u02f2\u0003\u02f2\u0003\u02f2\u0003\u02f3\u0003\u02f3\u0003\u02f3\u0003", + "\u02f3\u0003\u02f3\u0003\u02f3\u0003\u02f3\u0003\u02f3\u0003\u02f3\u0003", + "\u02f3\u0003\u02f4\u0003\u02f4\u0003\u02f4\u0003\u02f4\u0003\u02f4\u0003", + "\u02f4\u0003\u02f4\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003", + "\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f6\u0003\u02f6\u0003", + "\u02f6\u0003\u02f6\u0003\u02f6\u0003\u02f6\u0003\u02f6\u0003\u02f6\u0003", + "\u02f6\u0003\u02f6\u0003\u02f6\u0003\u02f6\u0003\u02f7\u0003\u02f7\u0003", + "\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003", + "\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f8\u0003\u02f8\u0003", + "\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003", + "\u02f8\u0003\u02f8\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003", + "\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02fa\u0003", + "\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003", + "\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fc\u0003\u02fc\u0003", + "\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003", + "\u02fd\u0003\u02fd\u0003\u02fd\u0003\u02fd\u0003\u02fd\u0003\u02fd\u0003", + "\u02fd\u0003\u02fd\u0003\u02fd\u0003\u02fe\u0003\u02fe\u0003\u02fe\u0003", + "\u02fe\u0003\u02fe\u0003\u02fe\u0003\u02fe\u0003\u02fe\u0003\u02fe\u0003", + "\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003", + "\u02ff\u0003\u0300\u0003\u0300\u0003\u0300\u0003\u0300\u0003\u0301\u0003", + "\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003", + "\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0302\u0003\u0302\u0003", + "\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003", + "\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0303\u0003", + "\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003", + "\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003", + "\u0304\u0003\u0304\u0003\u0304\u0003\u0304\u0003\u0304\u0003\u0304\u0003", + "\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003", + "\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003", + "\u0306\u0003\u0306\u0003\u0306\u0003\u0306\u0003\u0306\u0003\u0306\u0003", + "\u0307\u0003\u0307\u0003\u0307\u0003\u0307\u0003\u0307\u0003\u0307\u0003", + "\u0307\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003", + "\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003", + "\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003", + "\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003", + "\u030a\u0003\u030a\u0003\u030a\u0003\u030a\u0003\u030a\u0003\u030a\u0003", + "\u030a\u0003\u030a\u0003\u030a\u0003\u030a\u0003\u030b\u0003\u030b\u0003", + "\u030b\u0003\u030b\u0003\u030b\u0003\u030b\u0003\u030b\u0003\u030b\u0003", + "\u030b\u0003\u030b\u0003\u030b\u0003\u030b\u0003\u030b\u0003\u030b\u0003", + "\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003", + "\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003", + "\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030d\u0003", + "\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003", + "\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003", + "\u030d\u0003\u030d\u0003\u030d\u0003\u030e\u0003\u030e\u0003\u030e\u0003", + "\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003", + "\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003", + "\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003", + "\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003", + "\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003", + "\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003", + "\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003", + "\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003", + "\u030f\u0003\u030f\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003", + "\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003", + "\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003", + "\u0310\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003", + "\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003", + "\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0312\u0003", + "\u0312\u0003\u0312\u0003\u0312\u0003\u0312\u0003\u0312\u0003\u0312\u0003", + "\u0312\u0003\u0312\u0003\u0312\u0003\u0313\u0003\u0313\u0003\u0313\u0003", + "\u0313\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0313\u0003", + "\u0313\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0314\u0003\u0314\u0003", + "\u0314\u0003\u0314\u0003\u0314\u0003\u0314\u0003\u0314\u0003\u0314\u0003", + "\u0314\u0003\u0314\u0003\u0314\u0003\u0314\u0003\u0314\u0003\u0315\u0003", + "\u0315\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0315\u0003", + "\u0315\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0316\u0003", + "\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003", + "\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0317\u0003\u0317\u0003", + "\u0317\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0317\u0003", + "\u0317\u0003\u0318\u0003\u0318\u0003\u0318\u0003\u0318\u0003\u0318\u0003", + "\u0318\u0003\u0318\u0003\u0318\u0003\u0319\u0003\u0319\u0003\u0319\u0003", + "\u0319\u0003\u0319\u0003\u0319\u0003\u0319\u0003\u0319\u0003\u0319\u0003", + "\u031a\u0003\u031a\u0003\u031a\u0003\u031a\u0003\u031a\u0003\u031a\u0003", + "\u031a\u0003\u031a\u0003\u031a\u0003\u031a\u0003\u031a\u0003\u031a\u0003", + "\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003", + "\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003", + "\u031b\u0003\u031b\u0003\u031c\u0003\u031c\u0003\u031c\u0003\u031c\u0003", + "\u031d\u0003\u031d\u0003\u031d\u0003\u031d\u0003\u031d\u0003\u031d\u0003", + "\u031d\u0003\u031e\u0003\u031e\u0003\u031e\u0003\u031e\u0003\u031e\u0003", + "\u031e\u0003\u031e\u0003\u031e\u0003\u031e\u0003\u031e\u0003\u031e\u0003", + "\u031f\u0003\u031f\u0003\u031f\u0003\u031f\u0003\u031f\u0003\u031f\u0003", + "\u031f\u0003\u031f\u0003\u031f\u0003\u031f\u0003\u031f\u0003\u0320\u0003", + "\u0320\u0003\u0320\u0003\u0320\u0003\u0320\u0003\u0320\u0003\u0320\u0003", + "\u0320\u0003\u0320\u0003\u0320\u0003\u0321\u0003\u0321\u0003\u0321\u0003", + "\u0321\u0003\u0321\u0003\u0321\u0003\u0321\u0003\u0321\u0003\u0321\u0003", + "\u0321\u0003\u0322\u0003\u0322\u0003\u0322\u0003\u0322\u0003\u0322\u0003", + "\u0322\u0003\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003", + "\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003", + "\u0323\u0003\u0323\u0003\u0323\u0003\u0324\u0003\u0324\u0003\u0324\u0003", + "\u0324\u0003\u0324\u0003\u0324\u0003\u0324\u0003\u0324\u0003\u0324\u0003", + "\u0324\u0003\u0324\u0003\u0325\u0003\u0325\u0003\u0325\u0003\u0325\u0003", + "\u0325\u0003\u0325\u0003\u0325\u0003\u0325\u0003\u0325\u0003\u0326\u0003", + "\u0326\u0003\u0326\u0003\u0326\u0003\u0326\u0003\u0326\u0003\u0326\u0003", + "\u0326\u0003\u0327\u0003\u0327\u0003\u0327\u0003\u0327\u0003\u0327\u0003", + "\u0327\u0003\u0327\u0003\u0328\u0003\u0328\u0003\u0328\u0003\u0328\u0003", + "\u0328\u0003\u0328\u0003\u0328\u0003\u0328\u0003\u0328\u0003\u0329\u0003", + "\u0329\u0003\u0329\u0003\u0329\u0003\u0329\u0003\u0329\u0003\u0329\u0003", + "\u0329\u0003\u0329\u0003\u0329\u0003\u0329\u0003\u0329\u0003\u0329\u0003", + "\u032a\u0003\u032a\u0003\u032a\u0003\u032a\u0003\u032a\u0003\u032a\u0003", + "\u032a\u0003\u032a\u0003\u032b\u0003\u032b\u0003\u032b\u0003\u032b\u0003", + "\u032b\u0003\u032b\u0003\u032b\u0003\u032b\u0003\u032b\u0003\u032b\u0003", + "\u032b\u0003\u032b\u0003\u032b\u0003\u032b\u0003\u032b\u0003\u032c\u0003", + "\u032c\u0003\u032c\u0003\u032c\u0003\u032c\u0003\u032c\u0003\u032c\u0003", + "\u032c\u0003\u032c\u0003\u032c\u0003\u032c\u0003\u032c\u0003\u032c\u0003", + "\u032c\u0003\u032c\u0003\u032d\u0003\u032d\u0003\u032d\u0003\u032d\u0003", + "\u032d\u0003\u032d\u0003\u032d\u0003\u032d\u0003\u032e\u0003\u032e\u0003", + "\u032e\u0003\u032e\u0003\u032e\u0003\u032e\u0003\u032e\u0003\u032e\u0003", + "\u032e\u0003\u032e\u0003\u032e\u0003\u032e\u0003\u032e\u0003\u032f\u0003", + "\u032f\u0003\u032f\u0003\u032f\u0003\u032f\u0003\u032f\u0003\u032f\u0003", + "\u032f\u0003\u032f\u0003\u032f\u0003\u032f\u0003\u032f\u0003\u032f\u0003", + "\u032f\u0003\u032f\u0003\u0330\u0003\u0330\u0003\u0330\u0003\u0330\u0003", + "\u0330\u0003\u0330\u0003\u0331\u0003\u0331\u0003\u0331\u0003\u0331\u0003", + "\u0331\u0003\u0331\u0003\u0332\u0003\u0332\u0003\u0332\u0003\u0332\u0003", + "\u0332\u0003\u0332\u0003\u0332\u0003\u0333\u0003\u0333\u0003\u0333\u0003", + "\u0333\u0003\u0333\u0003\u0333\u0003\u0333\u0003\u0333\u0003\u0333\u0003", + "\u0333\u0003\u0333\u0003\u0333\u0003\u0333\u0003\u0334\u0003\u0334\u0003", + "\u0334\u0003\u0334\u0003\u0334\u0003\u0334\u0003\u0334\u0003\u0334\u0003", + "\u0334\u0003\u0334\u0003\u0334\u0003\u0334\u0003\u0335\u0003\u0335\u0003", + "\u0335\u0003\u0335\u0003\u0335\u0003\u0335\u0003\u0335\u0003\u0335\u0003", + "\u0335\u0003\u0335\u0003\u0335\u0003\u0335\u0003\u0335\u0003\u0335\u0003", + "\u0335\u0003\u0335\u0003\u0335\u0003\u0335\u0003\u0335\u0003\u0336\u0003", + "\u0336\u0003\u0336\u0003\u0336\u0003\u0336\u0003\u0336\u0003\u0336\u0003", + "\u0336\u0003\u0336\u0003\u0336\u0003\u0336\u0003\u0336\u0003\u0336\u0003", + "\u0336\u0003\u0336\u0003\u0336\u0003\u0336\u0003\u0336\u0003\u0337\u0003", + "\u0337\u0003\u0337\u0003\u0338\u0003\u0338\u0003\u0338\u0003\u0338\u0003", + "\u0338\u0003\u0338\u0003\u0338\u0003\u0338\u0003\u0338\u0003\u0338\u0003", + "\u0339\u0003\u0339\u0003\u0339\u0003\u0339\u0003\u0339\u0003\u0339\u0003", + "\u0339\u0003\u033a\u0003\u033a\u0003\u033a\u0003\u033a\u0003\u033b\u0003", + "\u033b\u0003\u033b\u0003\u033b\u0003\u033b\u0003\u033b\u0003\u033c\u0003", + "\u033c\u0003\u033c\u0003\u033c\u0003\u033c\u0003\u033d\u0003\u033d\u0003", + "\u033d\u0003\u033d\u0003\u033d\u0003\u033d\u0003\u033e\u0003\u033e\u0003", + "\u033e\u0003\u033e\u0003\u033e\u0003\u033f\u0003\u033f\u0003\u033f\u0003", + "\u033f\u0003\u033f\u0003\u033f\u0003\u0340\u0003\u0340\u0003\u0340\u0003", + "\u0340\u0003\u0340\u0003\u0340\u0003\u0340\u0003\u0340\u0003\u0340\u0003", + "\u0341\u0003\u0341\u0003\u0341\u0003\u0341\u0003\u0341\u0003\u0341\u0003", + "\u0341\u0003\u0341\u0003\u0341\u0003\u0342\u0003\u0342\u0003\u0342\u0003", + "\u0342\u0003\u0342\u0003\u0342\u0003\u0342\u0003\u0342\u0003\u0342\u0003", + "\u0343\u0003\u0343\u0003\u0343\u0003\u0343\u0003\u0343\u0003\u0343\u0003", + "\u0343\u0003\u0343\u0003\u0343\u0003\u0343\u0003\u0343\u0003\u0343\u0003", + "\u0343\u0003\u0343\u0003\u0343\u0003\u0343\u0003\u0344\u0003\u0344\u0003", + "\u0344\u0003\u0344\u0003\u0344\u0003\u0344\u0003\u0344\u0003\u0344\u0003", + "\u0344\u0003\u0344\u0003\u0344\u0003\u0344\u0003\u0345\u0003\u0345\u0003", + "\u0345\u0003\u0345\u0003\u0345\u0003\u0345\u0003\u0345\u0003\u0345\u0003", + "\u0345\u0003\u0345\u0003\u0345\u0003\u0345\u0003\u0346\u0003\u0346\u0003", + "\u0346\u0003\u0346\u0003\u0346\u0003\u0346\u0003\u0346\u0003\u0346\u0003", + "\u0346\u0003\u0347\u0003\u0347\u0003\u0347\u0003\u0347\u0003\u0347\u0003", + "\u0347\u0003\u0347\u0003\u0347\u0003\u0347\u0003\u0347\u0003\u0347\u0003", + "\u0347\u0003\u0347\u0003\u0347\u0003\u0348\u0003\u0348\u0003\u0348\u0003", + "\u0348\u0003\u0348\u0003\u0348\u0003\u0348\u0003\u0348\u0003\u0348\u0003", + "\u0348\u0003\u0348\u0003\u0348\u0003\u0349\u0003\u0349\u0003\u0349\u0003", + "\u0349\u0003\u0349\u0003\u0349\u0003\u0349\u0003\u0349\u0003\u0349\u0003", + "\u0349\u0003\u0349\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034a\u0003", + "\u034a\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034a\u0003", + "\u034b\u0003\u034b\u0003\u034b\u0003\u034b\u0003\u034c\u0003\u034c\u0003", + "\u034c\u0003\u034c\u0003\u034c\u0003\u034c\u0003\u034c\u0003\u034c\u0003", + "\u034c\u0003\u034c\u0003\u034c\u0003\u034c\u0003\u034c\u0003\u034c\u0003", + "\u034d\u0003\u034d\u0003\u034d\u0003\u034d\u0003\u034d\u0003\u034d\u0003", + "\u034d\u0003\u034d\u0003\u034d\u0003\u034d\u0003\u034d\u0003\u034d\u0003", + "\u034d\u0003\u034e\u0003\u034e\u0003\u034e\u0003\u034e\u0003\u034e\u0003", + "\u034e\u0003\u034e\u0003\u034e\u0003\u034e\u0003\u034e\u0003\u034f\u0003", + "\u034f\u0003\u034f\u0003\u034f\u0003\u034f\u0003\u034f\u0003\u034f\u0003", + "\u034f\u0003\u034f\u0003\u034f\u0003\u034f\u0003\u034f\u0003\u034f\u0003", + "\u034f\u0003\u034f\u0003\u0350\u0003\u0350\u0003\u0350\u0003\u0350\u0003", + "\u0350\u0003\u0350\u0003\u0350\u0003\u0350\u0003\u0350\u0003\u0350\u0003", + "\u0350\u0003\u0350\u0003\u0350\u0003\u0350\u0003\u0351\u0003\u0351\u0003", + "\u0351\u0003\u0351\u0003\u0351\u0003\u0351\u0003\u0351\u0003\u0351\u0003", + "\u0351\u0003\u0351\u0003\u0351\u0003\u0351\u0003\u0351\u0003\u0351\u0003", + "\u0352\u0003\u0352\u0003\u0352\u0003\u0352\u0003\u0352\u0003\u0352\u0003", + "\u0352\u0003\u0352\u0003\u0352\u0003\u0352\u0003\u0352\u0003\u0352\u0003", + "\u0352\u0003\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003", + "\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003", + "\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003", + "\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003\u0353\u0003", + "\u0353\u0003\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003", + "\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003", + "\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003", + "\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003\u0354\u0003", + "\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003", + "\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003", + "\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003\u0355\u0003", + "\u0355\u0003\u0356\u0003\u0356\u0003\u0356\u0003\u0356\u0003\u0356\u0003", + "\u0356\u0003\u0356\u0003\u0356\u0003\u0356\u0003\u0356\u0003\u0356\u0003", + "\u0356\u0003\u0356\u0003\u0356\u0003\u0356\u0003\u0356\u0003\u0356\u0003", + "\u0356\u0003\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003", + "\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003", + "\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003", + "\u0357\u0003\u0357\u0003\u0357\u0003\u0357\u0003\u0358\u0003\u0358\u0003", + "\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003", + "\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003", + "\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003\u0358\u0003", + "\u0359\u0003\u0359\u0003\u0359\u0003\u0359\u0003\u0359\u0003\u0359\u0003", + "\u0359\u0003\u0359\u0003\u0359\u0003\u0359\u0003\u0359\u0003\u035a\u0003", + "\u035a\u0003\u035a\u0003\u035a\u0003\u035a\u0003\u035a\u0003\u035a\u0003", + "\u035b\u0003\u035b\u0003\u035b\u0003\u035b\u0003\u035b\u0003\u035b\u0003", + "\u035b\u0003\u035b\u0003\u035b\u0003\u035b\u0003\u035b\u0003\u035b\u0003", + "\u035b\u0003\u035b\u0003\u035c\u0003\u035c\u0003\u035c\u0003\u035c\u0003", + "\u035c\u0003\u035c\u0003\u035c\u0003\u035c\u0003\u035c\u0003\u035c\u0003", + "\u035c\u0003\u035c\u0003\u035c\u0003\u035c\u0003\u035c\u0003\u035c\u0003", + "\u035c\u0003\u035d\u0003\u035d\u0003\u035d\u0003\u035d\u0003\u035d\u0003", + "\u035d\u0003\u035d\u0003\u035d\u0003\u035d\u0003\u035d\u0003\u035e\u0003", + "\u035e\u0003\u035e\u0003\u035e\u0003\u035f\u0003\u035f\u0003\u035f\u0003", + "\u035f\u0003\u035f\u0003\u035f\u0003\u035f\u0003\u035f\u0003\u035f\u0003", + "\u035f\u0003\u035f\u0003\u035f\u0003\u035f\u0003\u0360\u0003\u0360\u0003", + "\u0360\u0003\u0360\u0003\u0361\u0003\u0361\u0003\u0361\u0003\u0361\u0003", + "\u0361\u0003\u0361\u0003\u0361\u0003\u0361\u0003\u0361\u0003\u0362\u0003", + "\u0362\u0003\u0362\u0003\u0362\u0003\u0362\u0003\u0362\u0003\u0362\u0003", + "\u0362\u0003\u0362\u0003\u0362\u0003\u0362\u0003\u0363\u0003\u0363\u0003", + "\u0363\u0003\u0363\u0003\u0363\u0003\u0363\u0003\u0363\u0003\u0363\u0003", + "\u0363\u0003\u0363\u0003\u0363\u0003\u0363\u0003\u0364\u0003\u0364\u0003", + "\u0364\u0003\u0365\u0003\u0365\u0003\u0365\u0003\u0365\u0003\u0365\u0003", + "\u0365\u0003\u0365\u0003\u0365\u0003\u0365\u0003\u0365\u0003\u0365\u0003", + "\u0365\u0003\u0365\u0003\u0365\u0003\u0366\u0003\u0366\u0003\u0366\u0003", + "\u0366\u0003\u0366\u0003\u0366\u0003\u0366\u0003\u0366\u0003\u0366\u0003", + "\u0366\u0003\u0366\u0003\u0366\u0003\u0366\u0003\u0367\u0003\u0367\u0003", + "\u0367\u0003\u0367\u0003\u0367\u0003\u0367\u0003\u0367\u0003\u0368\u0003", + "\u0368\u0003\u0368\u0003\u0368\u0003\u0368\u0003\u0368\u0003\u0368\u0003", + "\u0368\u0003\u0368\u0003\u0368\u0003\u0368\u0003\u0368\u0003\u0368\u0003", + "\u0369\u0003\u0369\u0003\u0369\u0003\u0369\u0003\u0369\u0003\u0369\u0003", + "\u0369\u0003\u0369\u0003\u0369\u0003\u0369\u0003\u0369\u0003\u0369\u0003", + "\u036a\u0003\u036a\u0003\u036a\u0003\u036a\u0003\u036a\u0003\u036a\u0003", + "\u036a\u0003\u036a\u0003\u036a\u0003\u036a\u0003\u036a\u0003\u036a\u0003", + "\u036a\u0003\u036a\u0003\u036a\u0003\u036a\u0003\u036b\u0003\u036b\u0003", + "\u036b\u0003\u036b\u0003\u036b\u0003\u036b\u0003\u036b\u0003\u036b\u0003", + "\u036b\u0003\u036b\u0003\u036b\u0003\u036b\u0003\u036b\u0003\u036b\u0003", + "\u036b\u0003\u036c\u0003\u036c\u0003\u036c\u0003\u036c\u0003\u036d\u0003", + "\u036d\u0003\u036d\u0003\u036d\u0003\u036d\u0003\u036d\u0003\u036e\u0003", + "\u036e\u0003\u036e\u0003\u036e\u0003\u036e\u0003\u036e\u0003\u036f\u0003", + "\u036f\u0003\u036f\u0003\u036f\u0003\u036f\u0003\u036f\u0003\u036f\u0003", + "\u036f\u0003\u0370\u0003\u0370\u0003\u0370\u0003\u0370\u0003\u0370\u0003", + "\u0371\u0003\u0371\u0003\u0371\u0003\u0371\u0003\u0371\u0003\u0371\u0003", + "\u0371\u0003\u0371\u0003\u0371\u0003\u0371\u0003\u0371\u0003\u0371\u0003", + "\u0371\u0003\u0372\u0003\u0372\u0003\u0372\u0003\u0372\u0003\u0372\u0003", + "\u0372\u0003\u0372\u0003\u0372\u0003\u0372\u0003\u0372\u0003\u0372\u0003", + "\u0372\u0003\u0372\u0003\u0373\u0003\u0373\u0003\u0373\u0003\u0373\u0003", + "\u0373\u0003\u0373\u0003\u0373\u0003\u0373\u0003\u0374\u0003\u0374\u0003", + "\u0374\u0003\u0374\u0003\u0374\u0003\u0374\u0003\u0375\u0003\u0375\u0003", + "\u0375\u0003\u0375\u0003\u0375\u0003\u0375\u0003\u0375\u0003\u0375\u0003", + "\u0375\u0003\u0375\u0003\u0376\u0003\u0376\u0003\u0376\u0003\u0376\u0003", + "\u0376\u0003\u0377\u0003\u0377\u0003\u0377\u0003\u0377\u0003\u0377\u0003", + "\u0377\u0003\u0378\u0003\u0378\u0003\u0378\u0003\u0378\u0003\u0378\u0003", + "\u0378\u0003\u0378\u0003\u0378\u0003\u0378\u0003\u0378\u0003\u0378\u0003", + "\u0378\u0003\u0379\u0003\u0379\u0003\u0379\u0003\u0379\u0003\u0379\u0003", + "\u0379\u0003\u0379\u0003\u0379\u0003\u0379\u0003\u0379\u0003\u0379\u0003", + "\u0379\u0003\u0379\u0003\u037a\u0003\u037a\u0003\u037a\u0003\u037a\u0003", + "\u037b\u0003\u037b\u0003\u037b\u0003\u037b\u0003\u037b\u0003\u037c\u0003", + "\u037c\u0003\u037c\u0003\u037c\u0003\u037c\u0003\u037d\u0003\u037d\u0003", + "\u037d\u0003\u037d\u0003\u037d\u0003\u037d\u0003\u037d\u0003\u037d\u0003", + "\u037d\u0003\u037d\u0003\u037d\u0003\u037d\u0003\u037e\u0003\u037e\u0003", + "\u037e\u0003\u037e\u0003\u037e\u0003\u037f\u0003\u037f\u0003\u037f\u0003", + "\u037f\u0003\u0380\u0003\u0380\u0003\u0380\u0003\u0380\u0003\u0380\u0003", + "\u0380\u0003\u0381\u0003\u0381\u0003\u0381\u0003\u0381\u0003\u0381\u0003", + "\u0381\u0003\u0381\u0003\u0381\u0003\u0382\u0003\u0382\u0003\u0382\u0003", + "\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003", + "\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003", + "\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003", + "\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003\u0382\u0003", + "\u0382\u0003\u0383\u0003\u0383\u0003\u0383\u0003\u0383\u0003\u0383\u0003", + "\u0384\u0003\u0384\u0003\u0384\u0003\u0384\u0003\u0384\u0003\u0385\u0003", + "\u0385\u0003\u0385\u0003\u0385\u0003\u0385\u0003\u0385\u0003\u0385\u0003", + "\u0385\u0003\u0385\u0003\u0385\u0003\u0385\u0003\u0386\u0003\u0386\u0003", + "\u0386\u0003\u0386\u0003\u0386\u0003\u0386\u0003\u0386\u0003\u0387\u0003", + "\u0387\u0003\u0387\u0003\u0387\u0003\u0387\u0003\u0387\u0003\u0387\u0003", + "\u0387\u0003\u0387\u0003\u0387\u0003\u0387\u0003\u0387\u0003\u0388\u0003", + "\u0388\u0003\u0388\u0003\u0388\u0003\u0388\u0003\u0388\u0003\u0388\u0003", + "\u0388\u0003\u0389\u0003\u0389\u0003\u0389\u0003\u0389\u0003\u0389\u0003", + "\u0389\u0003\u0389\u0003\u0389\u0003\u0389\u0003\u0389\u0003\u0389\u0003", + "\u0389\u0003\u038a\u0003\u038a\u0003\u038a\u0003\u038a\u0003\u038a\u0003", + "\u038a\u0003\u038a\u0003\u038a\u0003\u038a\u0003\u038a\u0003\u038b\u0003", + "\u038b\u0003\u038b\u0003\u038b\u0003\u038b\u0003\u038b\u0003\u038b\u0003", + "\u038b\u0003\u038b\u0003\u038c\u0003\u038c\u0003\u038c\u0003\u038c\u0003", + "\u038c\u0003\u038c\u0003\u038c\u0003\u038c\u0003\u038c\u0003\u038d\u0003", + "\u038d\u0003\u038d\u0003\u038d\u0003\u038d\u0003\u038d\u0003\u038d\u0003", + "\u038d\u0003\u038d\u0003\u038d\u0003\u038e\u0003\u038e\u0003\u038e\u0003", + "\u038e\u0003\u038e\u0003\u038e\u0003\u038e\u0003\u038e\u0003\u038e\u0003", + "\u038e\u0003\u038e\u0003\u038e\u0003\u038f\u0003\u038f\u0003\u038f\u0003", + "\u038f\u0003\u038f\u0003\u038f\u0003\u038f\u0003\u038f\u0003\u038f\u0003", + "\u038f\u0003\u038f\u0003\u038f\u0003\u0390\u0003\u0390\u0003\u0390\u0003", + "\u0390\u0003\u0390\u0003\u0390\u0003\u0390\u0003\u0390\u0003\u0390\u0003", + "\u0390\u0003\u0390\u0003\u0391\u0003\u0391\u0003\u0391\u0003\u0391\u0003", + "\u0391\u0003\u0391\u0003\u0391\u0003\u0391\u0003\u0391\u0003\u0391\u0003", + "\u0391\u0003\u0391\u0003\u0391\u0003\u0391\u0003\u0392\u0003\u0392\u0003", + "\u0392\u0003\u0392\u0003\u0392\u0003\u0392\u0003\u0392\u0003\u0392\u0003", + "\u0392\u0003\u0392\u0003\u0392\u0003\u0392\u0003\u0392\u0003\u0393\u0003", + "\u0393\u0003\u0393\u0003\u0393\u0003\u0393\u0003\u0393\u0003\u0393\u0003", + "\u0393\u0003\u0393\u0003\u0393\u0003\u0393\u0003\u0393\u0003\u0394\u0003", + "\u0394\u0003\u0394\u0003\u0394\u0003\u0394\u0003\u0394\u0003\u0394\u0003", + "\u0394\u0003\u0394\u0003\u0394\u0003\u0394\u0003\u0394\u0003\u0395\u0003", + "\u0395\u0003\u0395\u0003\u0395\u0003\u0395\u0003\u0395\u0003\u0395\u0003", + "\u0395\u0003\u0395\u0003\u0395\u0003\u0395\u0003\u0395\u0003\u0396\u0003", + "\u0396\u0003\u0396\u0003\u0396\u0003\u0396\u0003\u0396\u0003\u0396\u0003", + "\u0396\u0003\u0396\u0003\u0396\u0003\u0396\u0003\u0396\u0003\u0397\u0003", + "\u0397\u0003\u0397\u0003\u0397\u0003\u0397\u0003\u0397\u0003\u0397\u0003", + "\u0397\u0003\u0397\u0003\u0397\u0003\u0398\u0003\u0398\u0003\u0398\u0003", + "\u0398\u0003\u0398\u0003\u0398\u0003\u0398\u0003\u0398\u0003\u0398\u0003", + "\u0398\u0003\u0398\u0003\u0398\u0003\u0398\u0003\u0398\u0003\u0398\u0003", + "\u0398\u0003\u0399\u0003\u0399\u0003\u0399\u0003\u0399\u0003\u0399\u0003", + "\u0399\u0003\u0399\u0003\u0399\u0003\u0399\u0003\u0399\u0003\u0399\u0003", + "\u0399\u0003\u0399\u0003\u0399\u0003\u0399\u0003\u0399\u0003\u0399\u0003", + "\u0399\u0003\u0399\u0003\u0399\u0003\u039a\u0003\u039a\u0003\u039a\u0003", + "\u039a\u0003\u039a\u0003\u039a\u0003\u039a\u0003\u039a\u0003\u039a\u0003", + "\u039a\u0003\u039a\u0003\u039a\u0003\u039a\u0003\u039a\u0003\u039a\u0003", + "\u039a\u0003\u039a\u0003\u039a\u0003\u039a\u0003\u039b\u0003\u039b\u0003", + "\u039b\u0003\u039b\u0003\u039b\u0003\u039b\u0003\u039b\u0003\u039b\u0003", + "\u039b\u0003\u039b\u0003\u039b\u0003\u039b\u0003\u039b\u0003\u039b\u0003", + "\u039b\u0003\u039b\u0003\u039b\u0003\u039b\u0003\u039b\u0003\u039c\u0003", + "\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003", + "\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003", + "\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003", + "\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003", + "\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039c\u0003\u039d\u0003", + "\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003", + "\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003", + "\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003", + "\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003", + "\u039d\u0003\u039d\u0003\u039d\u0003\u039d\u0003\u039e\u0003\u039e\u0003", + "\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003", + "\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003", + "\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003\u039e\u0003", + "\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003", + "\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003", + "\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003\u039f\u0003", + "\u039f\u0003\u03a0\u0003\u03a0\u0003\u03a0\u0003\u03a0\u0003\u03a0\u0003", + "\u03a0\u0003\u03a0\u0003\u03a0\u0003\u03a0\u0003\u03a0\u0003\u03a0\u0003", + "\u03a0\u0003\u03a0\u0003\u03a1\u0003\u03a1\u0003\u03a1\u0003\u03a1\u0003", + "\u03a1\u0003\u03a1\u0003\u03a1\u0003\u03a1\u0003\u03a1\u0003\u03a1\u0003", + "\u03a1\u0003\u03a1\u0003\u03a1\u0003\u03a1\u0003\u03a1\u0003\u03a1\u0003", + "\u03a2\u0003\u03a2\u0003\u03a2\u0003\u03a2\u0003\u03a2\u0003\u03a2\u0003", + "\u03a2\u0003\u03a2\u0003\u03a2\u0003\u03a2\u0003\u03a2\u0003\u03a2\u0003", + "\u03a2\u0003\u03a2\u0003\u03a2\u0003\u03a2\u0003\u03a3\u0003\u03a3\u0003", + "\u03a3\u0003\u03a3\u0003\u03a3\u0003\u03a3\u0003\u03a3\u0003\u03a3\u0003", + "\u03a3\u0003\u03a3\u0003\u03a3\u0003\u03a3\u0003\u03a3\u0003\u03a3\u0003", + "\u03a3\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003", + "\u03a4\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003", + "\u03a4\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003\u03a4\u0003", + "\u03a5\u0003\u03a5\u0003\u03a5\u0003\u03a5\u0003\u03a5\u0003\u03a5\u0003", + "\u03a5\u0003\u03a5\u0003\u03a5\u0003\u03a5\u0003\u03a5\u0003\u03a5\u0003", + "\u03a5\u0003\u03a5\u0003\u03a5\u0003\u03a5\u0003\u03a6\u0003\u03a6\u0003", + "\u03a6\u0003\u03a6\u0003\u03a6\u0003\u03a6\u0003\u03a6\u0003\u03a6\u0003", + "\u03a6\u0003\u03a6\u0003\u03a6\u0003\u03a6\u0003\u03a6\u0003\u03a6\u0003", + "\u03a7\u0003\u03a7\u0003\u03a7\u0003\u03a7\u0003\u03a7\u0003\u03a7\u0003", + "\u03a7\u0003\u03a7\u0003\u03a7\u0003\u03a7\u0003\u03a7\u0003\u03a7\u0003", + "\u03a8\u0003\u03a8\u0003\u03a8\u0003\u03a8\u0003\u03a8\u0003\u03a8\u0003", + "\u03a8\u0003\u03a8\u0003\u03a8\u0003\u03a8\u0003\u03a8\u0003\u03a9\u0003", + "\u03a9\u0003\u03a9\u0003\u03a9\u0003\u03a9\u0003\u03a9\u0003\u03a9\u0003", + "\u03a9\u0003\u03a9\u0003\u03a9\u0003\u03a9\u0003\u03a9\u0003\u03aa\u0003", + "\u03aa\u0003\u03aa\u0003\u03aa\u0003\u03aa\u0003\u03aa\u0003\u03aa\u0003", + "\u03aa\u0003\u03aa\u0003\u03aa\u0003\u03aa\u0003\u03aa\u0003\u03aa\u0003", + "\u03aa\u0003\u03aa\u0003\u03aa\u0003\u03ab\u0003\u03ab\u0003\u03ab\u0003", + "\u03ab\u0003\u03ab\u0003\u03ab\u0003\u03ab\u0003\u03ab\u0003\u03ab\u0003", + "\u03ab\u0003\u03ab\u0003\u03ab\u0003\u03ab\u0003\u03ab\u0003\u03ab\u0003", + "\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003", + "\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003", + "\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003", + "\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ac\u0003\u03ad\u0003\u03ad\u0003", + "\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003", + "\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003", + "\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003\u03ad\u0003", + "\u03ad\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003", + "\u03ae\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003", + "\u03ae\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003\u03ae\u0003", + "\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003", + "\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003", + "\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003\u03af\u0003", + "\u03af\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003", + "\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003", + "\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b0\u0003", + "\u03b0\u0003\u03b0\u0003\u03b0\u0003\u03b1\u0003\u03b1\u0003\u03b1\u0003", + "\u03b1\u0003\u03b1\u0003\u03b1\u0003\u03b1\u0003\u03b1\u0003\u03b1\u0003", + "\u03b1\u0003\u03b1\u0003\u03b1\u0003\u03b1\u0003\u03b2\u0003\u03b2\u0003", + "\u03b2\u0003\u03b2\u0003\u03b2\u0003\u03b2\u0003\u03b2\u0003\u03b2\u0003", + "\u03b2\u0003\u03b2\u0003\u03b2\u0003\u03b2\u0003\u03b3\u0003\u03b3\u0003", + "\u03b3\u0003\u03b3\u0003\u03b3\u0003\u03b3\u0003\u03b3\u0003\u03b3\u0003", + "\u03b3\u0003\u03b3\u0003\u03b3\u0003\u03b3\u0003\u03b3\u0003\u03b3\u0003", + "\u03b3\u0003\u03b3\u0003\u03b3\u0003\u03b4\u0003\u03b4\u0003\u03b4\u0003", + "\u03b4\u0003\u03b4\u0003\u03b4\u0003\u03b4\u0003\u03b4\u0003\u03b4\u0003", + "\u03b4\u0003\u03b4\u0003\u03b4\u0003\u03b4\u0003\u03b4\u0003\u03b4\u0003", + "\u03b4\u0003\u03b5\u0003\u03b5\u0003\u03b5\u0003\u03b5\u0003\u03b5\u0003", + "\u03b5\u0003\u03b5\u0003\u03b5\u0003\u03b5\u0003\u03b5\u0003\u03b6\u0003", + "\u03b6\u0003\u03b6\u0003\u03b6\u0003\u03b6\u0003\u03b6\u0003\u03b6\u0003", + "\u03b6\u0003\u03b6\u0003\u03b6\u0003\u03b6\u0003\u03b6\u0003\u03b6\u0003", + "\u03b6\u0003\u03b6\u0003\u03b6\u0003\u03b7\u0003\u03b7\u0003\u03b7\u0003", + "\u03b7\u0003\u03b7\u0003\u03b7\u0003\u03b7\u0003\u03b7\u0003\u03b7\u0003", + "\u03b7\u0003\u03b7\u0003\u03b7\u0003\u03b7\u0003\u03b7\u0003\u03b7\u0003", + "\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003", + "\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003", + "\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003\u03b8\u0003", + "\u03b8\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003", + "\u03b9\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003", + "\u03b9\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003\u03b9\u0003", + "\u03b9\u0003\u03ba\u0003\u03ba\u0003\u03ba\u0003\u03ba\u0003\u03ba\u0003", + "\u03ba\u0003\u03ba\u0003\u03ba\u0003\u03bb\u0003\u03bb\u0003\u03bb\u0003", + "\u03bb\u0003\u03bb\u0003\u03bb\u0003\u03bb\u0003\u03bb\u0003\u03bb\u0003", + "\u03bb\u0003\u03bb\u0003\u03bb\u0003\u03bb\u0003\u03bb\u0003\u03bc\u0003", + "\u03bc\u0003\u03bc\u0003\u03bc\u0003\u03bc\u0003\u03bc\u0003\u03bc\u0003", + "\u03bc\u0003\u03bc\u0003\u03bc\u0003\u03bc\u0003\u03bc\u0003\u03bc\u0003", + "\u03bc\u0003\u03bc\u0003\u03bc\u0003\u03bc\u0003\u03bd\u0003\u03bd\u0003", + "\u03bd\u0003\u03bd\u0003\u03bd\u0003\u03bd\u0003\u03bd\u0003\u03bd\u0003", + "\u03bd\u0003\u03bd\u0003\u03bd\u0003\u03be\u0003\u03be\u0003\u03be\u0003", + "\u03be\u0003\u03be\u0003\u03be\u0003\u03be\u0003\u03be\u0003\u03be\u0003", + "\u03bf\u0003\u03bf\u0003\u03bf\u0003\u03bf\u0003\u03bf\u0003\u03bf\u0003", + "\u03bf\u0003\u03bf\u0003\u03bf\u0003\u03bf\u0003\u03c0\u0003\u03c0\u0003", + "\u03c0\u0003\u03c0\u0003\u03c0\u0003\u03c1\u0003\u03c1\u0003\u03c1\u0003", + "\u03c1\u0003\u03c1\u0003\u03c2\u0003\u03c2\u0003\u03c2\u0003\u03c2\u0003", + "\u03c2\u0003\u03c2\u0003\u03c2\u0003\u03c2\u0003\u03c3\u0003\u03c3\u0003", + "\u03c3\u0003\u03c3\u0003\u03c3\u0003\u03c3\u0003\u03c3\u0003\u03c3\u0003", + "\u03c3\u0003\u03c3\u0003\u03c3\u0003\u03c3\u0003\u03c3\u0003\u03c3\u0003", + "\u03c3\u0003\u03c3\u0003\u03c4\u0003\u03c4\u0003\u03c4\u0003\u03c4\u0003", + "\u03c4\u0003\u03c4\u0003\u03c4\u0003\u03c4\u0003\u03c5\u0003\u03c5\u0003", + "\u03c5\u0003\u03c5\u0003\u03c5\u0003\u03c5\u0003\u03c5\u0003\u03c5\u0003", + "\u03c5\u0003\u03c5\u0003\u03c5\u0003\u03c5\u0003\u03c6\u0003\u03c6\u0003", + "\u03c6\u0003\u03c6\u0003\u03c7\u0003\u03c7\u0003\u03c7\u0003\u03c7\u0003", + "\u03c7\u0003\u03c7\u0003\u03c7\u0003\u03c7\u0003\u03c7\u0003\u03c8\u0003", + "\u03c8\u0003\u03c8\u0003\u03c8\u0003\u03c8\u0003\u03c8\u0003\u03c8\u0003", + "\u03c8\u0003\u03c8\u0003\u03c8\u0003\u03c8\u0003\u03c8\u0003\u03c8\u0003", + "\u03c9\u0003\u03c9\u0003\u03c9\u0003\u03c9\u0003\u03c9\u0003\u03c9\u0003", + "\u03c9\u0003\u03c9\u0003\u03c9\u0003\u03c9\u0003\u03c9\u0003\u03c9\u0003", + "\u03c9\u0003\u03c9\u0003\u03ca\u0003\u03ca\u0003\u03ca\u0003\u03ca\u0003", + "\u03ca\u0003\u03ca\u0003\u03ca\u0003\u03ca\u0003\u03ca\u0003\u03ca\u0003", + "\u03ca\u0003\u03ca\u0003\u03cb\u0003\u03cb\u0003\u03cb\u0003\u03cb\u0003", + "\u03cb\u0003\u03cb\u0003\u03cb\u0003\u03cb\u0003\u03cb\u0003\u03cb\u0003", + "\u03cb\u0003\u03cb\u0003\u03cc\u0003\u03cc\u0003\u03cc\u0003\u03cc\u0003", + "\u03cc\u0003\u03cc\u0003\u03cc\u0003\u03cc\u0003\u03cd\u0003\u03cd\u0003", + "\u03cd\u0003\u03cd\u0003\u03cd\u0003\u03cd\u0003\u03cd\u0003\u03cd\u0003", + "\u03cd\u0003\u03cd\u0003\u03ce\u0003\u03ce\u0003\u03ce\u0003\u03ce\u0003", + "\u03ce\u0003\u03ce\u0003\u03ce\u0003\u03ce\u0003\u03cf\u0003\u03cf\u0003", + "\u03cf\u0003\u03cf\u0003\u03cf\u0003\u03cf\u0003\u03cf\u0003\u03cf\u0003", + "\u03cf\u0003\u03cf\u0003\u03cf\u0003\u03d0\u0003\u03d0\u0003\u03d0\u0003", + "\u03d0\u0003\u03d0\u0003\u03d0\u0003\u03d1\u0003\u03d1\u0003\u03d1\u0003", + "\u03d1\u0003\u03d1\u0003\u03d1\u0003\u03d1\u0003\u03d1\u0003\u03d1\u0003", + "\u03d1\u0003\u03d1\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003", + "\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003", + "\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003", + "\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d2\u0003\u03d3\u0003\u03d3\u0003", + "\u03d3\u0003\u03d3\u0003\u03d3\u0003\u03d3\u0003\u03d4\u0003\u03d4\u0003", + "\u03d4\u0003\u03d4\u0003\u03d4\u0003\u03d4\u0003\u03d4\u0003\u03d4\u0003", + "\u03d4\u0003\u03d4\u0003\u03d4\u0003\u03d4\u0003\u03d4\u0003\u03d4\u0003", + "\u03d4\u0003\u03d5\u0003\u03d5\u0003\u03d5\u0003\u03d5\u0003\u03d5\u0003", + "\u03d5\u0003\u03d5\u0003\u03d5\u0003\u03d5\u0003\u03d5\u0003\u03d6\u0003", + "\u03d6\u0003\u03d6\u0003\u03d6\u0003\u03d6\u0003\u03d6\u0003\u03d7\u0003", + "\u03d7\u0003\u03d7\u0003\u03d7\u0003\u03d7\u0003\u03d8\u0003\u03d8\u0003", + "\u03d8\u0003\u03d8\u0003\u03d8\u0003\u03d8\u0003\u03d8\u0003\u03d8\u0003", + "\u03d8\u0003\u03d8\u0003\u03d8\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003", + "\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003", + "\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003", + "\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003", + "\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003\u03d9\u0003", + "\u03da\u0003\u03da\u0003\u03da\u0003\u03da\u0003\u03da\u0003\u03da\u0003", + "\u03da\u0003\u03da\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003", + "\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003", + "\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003", + "\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003", + "\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003", + "\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003\u03db\u0003", + "\u03dc\u0003\u03dc\u0003\u03dc\u0003\u03dc\u0003\u03dc\u0003\u03dc\u0003", + "\u03dc\u0003\u03dc\u0003\u03dd\u0003\u03dd\u0003\u03dd\u0003\u03dd\u0003", + "\u03dd\u0003\u03dd\u0003\u03dd\u0003\u03dd\u0003\u03dd\u0003\u03dd\u0003", + "\u03dd\u0003\u03de\u0003\u03de\u0003\u03de\u0003\u03de\u0003\u03de\u0003", + "\u03de\u0003\u03de\u0003\u03de\u0003\u03de\u0003\u03de\u0003\u03de\u0003", + "\u03de\u0003\u03de\u0003\u03de\u0003\u03df\u0003\u03df\u0003\u03df\u0003", + "\u03df\u0003\u03df\u0003\u03df\u0003\u03df\u0003\u03e0\u0003\u03e0\u0003", + "\u03e0\u0003\u03e0\u0003\u03e0\u0003\u03e0\u0003\u03e0\u0003\u03e0\u0003", + "\u03e0\u0003\u03e1\u0003\u03e1\u0003\u03e2\u0003\u03e2\u0003\u03e3\u0003", + "\u03e3\u0003\u03e3\u0003\u03e4\u0003\u03e4\u0003\u03e4\u0003\u03e5\u0003", + "\u03e5\u0003\u03e5\u0003\u03e6\u0003\u03e6\u0003\u03e6\u0003\u03e7\u0003", + "\u03e7\u0003\u03e7\u0003\u03e8\u0003\u03e8\u0003\u03e8\u0003\u03e9\u0003", + "\u03e9\u0003\u03e9\u0003\u03ea\u0003\u03ea\u0003\u03ea\u0003\u03eb\u0003", + "\u03eb\u0003\u03eb\u0003\u03ec\u0003\u03ec\u0003\u03ed\u0003\u03ed\u0003", + "\u03ee\u0003\u03ee\u0003\u03ef\u0003\u03ef\u0003\u03f0\u0003\u03f0\u0003", + "\u03f0\u0003\u03f1\u0003\u03f1\u0003\u03f2\u0003\u03f2\u0003\u03f2\u0003", + "\u03f2\u0003\u03f3\u0003\u03f3\u0003\u03f3\u0003\u03f3\u0003\u03f4\u0003", + "\u03f4\u0003\u03f5\u0003\u03f5\u0003\u03f6\u0003\u03f6\u0003\u03f7\u0003", + "\u03f7\u0003\u03f8\u0003\u03f8\u0003\u03f9\u0003\u03f9\u0003\u03fa\u0003", + "\u03fa\u0003\u03fb\u0003\u03fb\u0003\u03fc\u0003\u03fc\u0003\u03fd\u0003", + "\u03fd\u0003\u03fe\u0003\u03fe\u0003\u03ff\u0003\u03ff\u0003\u0400\u0003", + "\u0400\u0003\u0401\u0003\u0401\u0003\u0402\u0003\u0402\u0003\u0403\u0003", + "\u0403\u0003\u0404\u0003\u0404\u0003\u0405\u0003\u0405\u0003\u0406\u0003", + "\u0406\u0003\u0407\u0003\u0407\u0003\u0408\u0003\u0408\u0003\u0409\u0003", + "\u0409\u0003\u0409\u0005\u0409\u2e56\n\u0409\u0003\u040a\u0003\u040a", + "\u0003\u040a\u0003\u040a\u0003\u040b\u0006\u040b\u2e5d\n\u040b\r\u040b", + "\u000e\u040b\u2e5e\u0003\u040b\u0003\u040b\u0003\u040c\u0003\u040c\u0003", + "\u040c\u0003\u040d\u0003\u040d\u0003\u040d\u0005\u040d\u2e69\n\u040d", + "\u0003\u040e\u0006\u040e\u2e6c\n\u040e\r\u040e\u000e\u040e\u2e6d\u0003", + "\u040f\u0003\u040f\u0003\u040f\u0003\u040f\u0003\u040f\u0006\u040f\u2e75", + "\n\u040f\r\u040f\u000e\u040f\u2e76\u0003\u040f\u0003\u040f\u0003\u040f", + "\u0003\u040f\u0003\u040f\u0003\u040f\u0006\u040f\u2e7f\n\u040f\r\u040f", + "\u000e\u040f\u2e80\u0005\u040f\u2e83\n\u040f\u0003\u0410\u0006\u0410", + "\u2e86\n\u0410\r\u0410\u000e\u0410\u2e87\u0005\u0410\u2e8a\n\u0410\u0003", + "\u0410\u0003\u0410\u0006\u0410\u2e8e\n\u0410\r\u0410\u000e\u0410\u2e8f", + "\u0003\u0410\u0006\u0410\u2e93\n\u0410\r\u0410\u000e\u0410\u2e94\u0003", + "\u0410\u0003\u0410\u0003\u0410\u0003\u0410\u0006\u0410\u2e9b\n\u0410", + "\r\u0410\u000e\u0410\u2e9c\u0005\u0410\u2e9f\n\u0410\u0003\u0410\u0003", + "\u0410\u0006\u0410\u2ea3\n\u0410\r\u0410\u000e\u0410\u2ea4\u0003\u0410", + "\u0003\u0410\u0003\u0410\u0006\u0410\u2eaa\n\u0410\r\u0410\u000e\u0410", + "\u2eab\u0003\u0410\u0003\u0410\u0005\u0410\u2eb0\n\u0410\u0003\u0411", + "\u0003\u0411\u0003\u0411\u0003\u0412\u0003\u0412\u0003\u0413\u0003\u0413", + "\u0003\u0413\u0003\u0414\u0003\u0414\u0003\u0414\u0003\u0415\u0003\u0415", + "\u0003\u0416\u0003\u0416\u0006\u0416\u2ec1\n\u0416\r\u0416\u000e\u0416", + "\u2ec2\u0003\u0416\u0003\u0416\u0003\u0417\u0003\u0417\u0003\u0417\u0003", + "\u0417\u0005\u0417\u2ecb\n\u0417\u0003\u0417\u0003\u0417\u0003\u0417", + "\u0003\u0417\u0003\u0417\u0005\u0417\u2ed2\n\u0417\u0003\u0418\u0003", + "\u0418\u0006\u0418\u2ed6\n\u0418\r\u0418\u000e\u0418\u2ed7\u0003\u0418", + "\u0003\u0418\u0003\u0418\u0005\u0418\u2edd\n\u0418\u0003\u0419\u0003", + "\u0419\u0003\u0419\u0006\u0419\u2ee2\n\u0419\r\u0419\u000e\u0419\u2ee3", + "\u0003\u0419\u0005\u0419\u2ee7\n\u0419\u0003\u041a\u0003\u041a\u0003", + "\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003", + "\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003", + "\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003", + "\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003", + "\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003", + "\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003\u041a\u0003", + "\u041a\u0003\u041a\u0003\u041a\u0005\u041a\u2f12\n\u041a\u0003\u041b", + "\u0003\u041b\u0005\u041b\u2f16\n\u041b\u0003\u041b\u0006\u041b\u2f19", + "\n\u041b\r\u041b\u000e\u041b\u2f1a\u0003\u041c\u0007\u041c\u2f1e\n\u041c", + "\f\u041c\u000e\u041c\u2f21\u000b\u041c\u0003\u041c\u0006\u041c\u2f24", + "\n\u041c\r\u041c\u000e\u041c\u2f25\u0003\u041c\u0007\u041c\u2f29\n\u041c", + "\f\u041c\u000e\u041c\u2f2c\u000b\u041c\u0003\u041d\u0003\u041d\u0003", + "\u041d\u0003\u041d\u0003\u041d\u0003\u041d\u0007\u041d\u2f34\n\u041d", + "\f\u041d\u000e\u041d\u2f37\u000b\u041d\u0003\u041d\u0003\u041d\u0003", + "\u041e\u0003\u041e\u0003\u041e\u0003\u041e\u0003\u041e\u0003\u041e\u0007", + "\u041e\u2f41\n\u041e\f\u041e\u000e\u041e\u2f44\u000b\u041e\u0003\u041e", + "\u0003\u041e\u0003\u041f\u0003\u041f\u0003\u041f\u0003\u041f\u0003\u041f", + "\u0003\u041f\u0007\u041f\u2f4e\n\u041f\f\u041f\u000e\u041f\u2f51\u000b", + "\u041f\u0003\u041f\u0003\u041f\u0003\u0420\u0003\u0420\u0003\u0421\u0003", + "\u0421\u0003\u0422\u0003\u0422\u0003\u0422\u0006\u0422\u2f5c\n\u0422", + "\r\u0422\u000e\u0422\u2f5d\u0003\u0422\u0003\u0422\u0003\u0423\u0003", + "\u0423\u0003\u0423\u0003\u0423\u0006\u0855\u0862\u2f1f\u2f25\u0002\u0424", + "\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f\t", + "\u0011\n\u0013\u000b\u0015\f\u0017\r\u0019\u000e\u001b\u000f\u001d\u0010", + "\u001f\u0011!\u0012#\u0013%\u0014\'\u0015)\u0016+\u0017-\u0018/\u0019", + "1\u001a3\u001b5\u001c7\u001d9\u001e;\u001f= ?!A\"C#E$G%I&K\'M(O)Q*S", + "+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:s;u{?}@\u007fA\u0081B\u0083C\u0085", + "D\u0087E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099", + "N\u009bO\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00ad", + "X\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1", + "b\u00c3c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5", + "l\u00d7m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3s\u00e5t\u00e7u\u00e9", + "v\u00ebw\u00edx\u00efy\u00f1z\u00f3{\u00f5|\u00f7}\u00f9~\u00fb\u007f", + "\u00fd\u0080\u00ff\u0081\u0101\u0082\u0103\u0083\u0105\u0084\u0107\u0085", + "\u0109\u0086\u010b\u0087\u010d\u0088\u010f\u0089\u0111\u008a\u0113\u008b", + "\u0115\u008c\u0117\u008d\u0119\u008e\u011b\u008f\u011d\u0090\u011f\u0091", + "\u0121\u0092\u0123\u0093\u0125\u0094\u0127\u0095\u0129\u0096\u012b\u0097", + "\u012d\u0098\u012f\u0099\u0131\u009a\u0133\u009b\u0135\u009c\u0137\u009d", + "\u0139\u009e\u013b\u009f\u013d\u00a0\u013f\u00a1\u0141\u00a2\u0143\u00a3", + "\u0145\u00a4\u0147\u00a5\u0149\u00a6\u014b\u00a7\u014d\u00a8\u014f\u00a9", + "\u0151\u00aa\u0153\u00ab\u0155\u00ac\u0157\u00ad\u0159\u00ae\u015b\u00af", + "\u015d\u00b0\u015f\u00b1\u0161\u00b2\u0163\u00b3\u0165\u00b4\u0167\u00b5", + "\u0169\u00b6\u016b\u00b7\u016d\u00b8\u016f\u00b9\u0171\u00ba\u0173\u00bb", + "\u0175\u00bc\u0177\u00bd\u0179\u00be\u017b\u00bf\u017d\u00c0\u017f\u00c1", + "\u0181\u00c2\u0183\u00c3\u0185\u00c4\u0187\u00c5\u0189\u00c6\u018b\u00c7", + "\u018d\u00c8\u018f\u00c9\u0191\u00ca\u0193\u00cb\u0195\u00cc\u0197\u00cd", + "\u0199\u00ce\u019b\u00cf\u019d\u00d0\u019f\u00d1\u01a1\u00d2\u01a3\u00d3", + "\u01a5\u00d4\u01a7\u00d5\u01a9\u00d6\u01ab\u00d7\u01ad\u00d8\u01af\u00d9", + "\u01b1\u00da\u01b3\u00db\u01b5\u00dc\u01b7\u00dd\u01b9\u00de\u01bb\u00df", + "\u01bd\u00e0\u01bf\u00e1\u01c1\u00e2\u01c3\u00e3\u01c5\u00e4\u01c7\u00e5", + "\u01c9\u00e6\u01cb\u00e7\u01cd\u00e8\u01cf\u00e9\u01d1\u00ea\u01d3\u00eb", + "\u01d5\u00ec\u01d7\u00ed\u01d9\u00ee\u01db\u00ef\u01dd\u00f0\u01df\u00f1", + "\u01e1\u00f2\u01e3\u00f3\u01e5\u00f4\u01e7\u00f5\u01e9\u00f6\u01eb\u00f7", + "\u01ed\u00f8\u01ef\u00f9\u01f1\u00fa\u01f3\u00fb\u01f5\u00fc\u01f7\u00fd", + "\u01f9\u00fe\u01fb\u00ff\u01fd\u0100\u01ff\u0101\u0201\u0102\u0203\u0103", + "\u0205\u0104\u0207\u0105\u0209\u0106\u020b\u0107\u020d\u0108\u020f\u0109", + "\u0211\u010a\u0213\u010b\u0215\u010c\u0217\u010d\u0219\u010e\u021b\u010f", + "\u021d\u0110\u021f\u0111\u0221\u0112\u0223\u0113\u0225\u0114\u0227\u0115", + "\u0229\u0116\u022b\u0117\u022d\u0118\u022f\u0119\u0231\u011a\u0233\u011b", + "\u0235\u011c\u0237\u011d\u0239\u011e\u023b\u011f\u023d\u0120\u023f\u0121", + "\u0241\u0122\u0243\u0123\u0245\u0124\u0247\u0125\u0249\u0126\u024b\u0127", + "\u024d\u0128\u024f\u0129\u0251\u012a\u0253\u012b\u0255\u012c\u0257\u012d", + "\u0259\u012e\u025b\u012f\u025d\u0130\u025f\u0131\u0261\u0132\u0263\u0133", + "\u0265\u0134\u0267\u0135\u0269\u0136\u026b\u0137\u026d\u0138\u026f\u0139", + "\u0271\u013a\u0273\u013b\u0275\u013c\u0277\u013d\u0279\u013e\u027b\u013f", + "\u027d\u0140\u027f\u0141\u0281\u0142\u0283\u0143\u0285\u0144\u0287\u0145", + "\u0289\u0146\u028b\u0147\u028d\u0148\u028f\u0149\u0291\u014a\u0293\u014b", + "\u0295\u014c\u0297\u014d\u0299\u014e\u029b\u014f\u029d\u0150\u029f\u0151", + "\u02a1\u0152\u02a3\u0153\u02a5\u0154\u02a7\u0155\u02a9\u0156\u02ab\u0157", + "\u02ad\u0158\u02af\u0159\u02b1\u015a\u02b3\u015b\u02b5\u015c\u02b7\u015d", + "\u02b9\u015e\u02bb\u015f\u02bd\u0160\u02bf\u0161\u02c1\u0162\u02c3\u0163", + "\u02c5\u0164\u02c7\u0165\u02c9\u0166\u02cb\u0167\u02cd\u0168\u02cf\u0169", + "\u02d1\u016a\u02d3\u016b\u02d5\u016c\u02d7\u016d\u02d9\u016e\u02db\u016f", + "\u02dd\u0170\u02df\u0171\u02e1\u0172\u02e3\u0173\u02e5\u0174\u02e7\u0175", + "\u02e9\u0176\u02eb\u0177\u02ed\u0178\u02ef\u0179\u02f1\u017a\u02f3\u017b", + "\u02f5\u017c\u02f7\u017d\u02f9\u017e\u02fb\u017f\u02fd\u0180\u02ff\u0181", + "\u0301\u0182\u0303\u0183\u0305\u0184\u0307\u0185\u0309\u0186\u030b\u0187", + "\u030d\u0188\u030f\u0189\u0311\u018a\u0313\u018b\u0315\u018c\u0317\u018d", + "\u0319\u018e\u031b\u018f\u031d\u0190\u031f\u0191\u0321\u0192\u0323\u0193", + "\u0325\u0194\u0327\u0195\u0329\u0196\u032b\u0197\u032d\u0198\u032f\u0199", + "\u0331\u019a\u0333\u019b\u0335\u019c\u0337\u019d\u0339\u019e\u033b\u019f", + "\u033d\u01a0\u033f\u01a1\u0341\u01a2\u0343\u01a3\u0345\u01a4\u0347\u01a5", + "\u0349\u01a6\u034b\u01a7\u034d\u01a8\u034f\u01a9\u0351\u01aa\u0353\u01ab", + "\u0355\u01ac\u0357\u01ad\u0359\u01ae\u035b\u01af\u035d\u01b0\u035f\u01b1", + "\u0361\u01b2\u0363\u01b3\u0365\u01b4\u0367\u01b5\u0369\u01b6\u036b\u01b7", + "\u036d\u01b8\u036f\u01b9\u0371\u01ba\u0373\u01bb\u0375\u01bc\u0377\u01bd", + "\u0379\u01be\u037b\u01bf\u037d\u01c0\u037f\u01c1\u0381\u01c2\u0383\u01c3", + "\u0385\u01c4\u0387\u01c5\u0389\u01c6\u038b\u01c7\u038d\u01c8\u038f\u01c9", + "\u0391\u01ca\u0393\u01cb\u0395\u01cc\u0397\u01cd\u0399\u01ce\u039b\u01cf", + "\u039d\u01d0\u039f\u01d1\u03a1\u01d2\u03a3\u01d3\u03a5\u01d4\u03a7\u01d5", + "\u03a9\u01d6\u03ab\u01d7\u03ad\u01d8\u03af\u01d9\u03b1\u01da\u03b3\u01db", + "\u03b5\u01dc\u03b7\u01dd\u03b9\u01de\u03bb\u01df\u03bd\u01e0\u03bf\u01e1", + "\u03c1\u01e2\u03c3\u01e3\u03c5\u01e4\u03c7\u01e5\u03c9\u01e6\u03cb\u01e7", + "\u03cd\u01e8\u03cf\u01e9\u03d1\u01ea\u03d3\u01eb\u03d5\u01ec\u03d7\u01ed", + "\u03d9\u01ee\u03db\u01ef\u03dd\u01f0\u03df\u01f1\u03e1\u01f2\u03e3\u01f3", + "\u03e5\u01f4\u03e7\u01f5\u03e9\u01f6\u03eb\u01f7\u03ed\u01f8\u03ef\u01f9", + "\u03f1\u01fa\u03f3\u01fb\u03f5\u01fc\u03f7\u01fd\u03f9\u01fe\u03fb\u01ff", + "\u03fd\u0200\u03ff\u0201\u0401\u0202\u0403\u0203\u0405\u0204\u0407\u0205", + "\u0409\u0206\u040b\u0207\u040d\u0208\u040f\u0209\u0411\u020a\u0413\u020b", + "\u0415\u020c\u0417\u020d\u0419\u020e\u041b\u020f\u041d\u0210\u041f\u0211", + "\u0421\u0212\u0423\u0213\u0425\u0214\u0427\u0215\u0429\u0216\u042b\u0217", + "\u042d\u0218\u042f\u0219\u0431\u021a\u0433\u021b\u0435\u021c\u0437\u021d", + "\u0439\u021e\u043b\u021f\u043d\u0220\u043f\u0221\u0441\u0222\u0443\u0223", + "\u0445\u0224\u0447\u0225\u0449\u0226\u044b\u0227\u044d\u0228\u044f\u0229", + "\u0451\u022a\u0453\u022b\u0455\u022c\u0457\u022d\u0459\u022e\u045b\u022f", + "\u045d\u0230\u045f\u0231\u0461\u0232\u0463\u0233\u0465\u0234\u0467\u0235", + "\u0469\u0236\u046b\u0237\u046d\u0238\u046f\u0239\u0471\u023a\u0473\u023b", + "\u0475\u023c\u0477\u023d\u0479\u023e\u047b\u023f\u047d\u0240\u047f\u0241", + "\u0481\u0242\u0483\u0243\u0485\u0244\u0487\u0245\u0489\u0246\u048b\u0247", + "\u048d\u0248\u048f\u0249\u0491\u024a\u0493\u024b\u0495\u024c\u0497\u024d", + "\u0499\u024e\u049b\u024f\u049d\u0250\u049f\u0251\u04a1\u0252\u04a3\u0253", + "\u04a5\u0254\u04a7\u0255\u04a9\u0256\u04ab\u0257\u04ad\u0258\u04af\u0259", + "\u04b1\u025a\u04b3\u025b\u04b5\u025c\u04b7\u025d\u04b9\u025e\u04bb\u025f", + "\u04bd\u0260\u04bf\u0261\u04c1\u0262\u04c3\u0263\u04c5\u0264\u04c7\u0265", + "\u04c9\u0266\u04cb\u0267\u04cd\u0268\u04cf\u0269\u04d1\u026a\u04d3\u026b", + "\u04d5\u026c\u04d7\u026d\u04d9\u026e\u04db\u026f\u04dd\u0270\u04df\u0271", + "\u04e1\u0272\u04e3\u0273\u04e5\u0274\u04e7\u0275\u04e9\u0276\u04eb\u0277", + "\u04ed\u0278\u04ef\u0279\u04f1\u027a\u04f3\u027b\u04f5\u027c\u04f7\u027d", + "\u04f9\u027e\u04fb\u027f\u04fd\u0280\u04ff\u0281\u0501\u0282\u0503\u0283", + "\u0505\u0284\u0507\u0285\u0509\u0286\u050b\u0287\u050d\u0288\u050f\u0289", + "\u0511\u028a\u0513\u028b\u0515\u028c\u0517\u028d\u0519\u028e\u051b\u028f", + "\u051d\u0290\u051f\u0291\u0521\u0292\u0523\u0293\u0525\u0294\u0527\u0295", + "\u0529\u0296\u052b\u0297\u052d\u0298\u052f\u0299\u0531\u029a\u0533\u029b", + "\u0535\u029c\u0537\u029d\u0539\u029e\u053b\u029f\u053d\u02a0\u053f\u02a1", + "\u0541\u02a2\u0543\u02a3\u0545\u02a4\u0547\u02a5\u0549\u02a6\u054b\u02a7", + "\u054d\u02a8\u054f\u02a9\u0551\u02aa\u0553\u02ab\u0555\u02ac\u0557\u02ad", + "\u0559\u02ae\u055b\u02af\u055d\u02b0\u055f\u02b1\u0561\u02b2\u0563\u02b3", + "\u0565\u02b4\u0567\u02b5\u0569\u02b6\u056b\u02b7\u056d\u02b8\u056f\u02b9", + "\u0571\u02ba\u0573\u02bb\u0575\u02bc\u0577\u02bd\u0579\u02be\u057b\u02bf", + "\u057d\u02c0\u057f\u02c1\u0581\u02c2\u0583\u02c3\u0585\u02c4\u0587\u02c5", + "\u0589\u02c6\u058b\u02c7\u058d\u02c8\u058f\u02c9\u0591\u02ca\u0593\u02cb", + "\u0595\u02cc\u0597\u02cd\u0599\u02ce\u059b\u02cf\u059d\u02d0\u059f\u02d1", + "\u05a1\u02d2\u05a3\u02d3\u05a5\u02d4\u05a7\u02d5\u05a9\u02d6\u05ab\u02d7", + "\u05ad\u02d8\u05af\u02d9\u05b1\u02da\u05b3\u02db\u05b5\u02dc\u05b7\u02dd", + "\u05b9\u02de\u05bb\u02df\u05bd\u02e0\u05bf\u02e1\u05c1\u02e2\u05c3\u02e3", + "\u05c5\u02e4\u05c7\u02e5\u05c9\u02e6\u05cb\u02e7\u05cd\u02e8\u05cf\u02e9", + "\u05d1\u02ea\u05d3\u02eb\u05d5\u02ec\u05d7\u02ed\u05d9\u02ee\u05db\u02ef", + "\u05dd\u02f0\u05df\u02f1\u05e1\u02f2\u05e3\u02f3\u05e5\u02f4\u05e7\u02f5", + "\u05e9\u02f6\u05eb\u02f7\u05ed\u02f8\u05ef\u02f9\u05f1\u02fa\u05f3\u02fb", + "\u05f5\u02fc\u05f7\u02fd\u05f9\u02fe\u05fb\u02ff\u05fd\u0300\u05ff\u0301", + "\u0601\u0302\u0603\u0303\u0605\u0304\u0607\u0305\u0609\u0306\u060b\u0307", + "\u060d\u0308\u060f\u0309\u0611\u030a\u0613\u030b\u0615\u030c\u0617\u030d", + "\u0619\u030e\u061b\u030f\u061d\u0310\u061f\u0311\u0621\u0312\u0623\u0313", + "\u0625\u0314\u0627\u0315\u0629\u0316\u062b\u0317\u062d\u0318\u062f\u0319", + "\u0631\u031a\u0633\u031b\u0635\u031c\u0637\u031d\u0639\u031e\u063b\u031f", + "\u063d\u0320\u063f\u0321\u0641\u0322\u0643\u0323\u0645\u0324\u0647\u0325", + "\u0649\u0326\u064b\u0327\u064d\u0328\u064f\u0329\u0651\u032a\u0653\u032b", + "\u0655\u032c\u0657\u032d\u0659\u032e\u065b\u032f\u065d\u0330\u065f\u0331", + "\u0661\u0332\u0663\u0333\u0665\u0334\u0667\u0335\u0669\u0336\u066b\u0337", + "\u066d\u0338\u066f\u0339\u0671\u033a\u0673\u033b\u0675\u033c\u0677\u033d", + "\u0679\u033e\u067b\u033f\u067d\u0340\u067f\u0341\u0681\u0342\u0683\u0343", + "\u0685\u0344\u0687\u0345\u0689\u0346\u068b\u0347\u068d\u0348\u068f\u0349", + "\u0691\u034a\u0693\u034b\u0695\u034c\u0697\u034d\u0699\u034e\u069b\u034f", + "\u069d\u0350\u069f\u0351\u06a1\u0352\u06a3\u0353\u06a5\u0354\u06a7\u0355", + "\u06a9\u0356\u06ab\u0357\u06ad\u0358\u06af\u0359\u06b1\u035a\u06b3\u035b", + "\u06b5\u035c\u06b7\u035d\u06b9\u035e\u06bb\u035f\u06bd\u0360\u06bf\u0361", + "\u06c1\u0362\u06c3\u0363\u06c5\u0364\u06c7\u0365\u06c9\u0366\u06cb\u0367", + "\u06cd\u0368\u06cf\u0369\u06d1\u036a\u06d3\u036b\u06d5\u036c\u06d7\u036d", + "\u06d9\u036e\u06db\u036f\u06dd\u0370\u06df\u0371\u06e1\u0372\u06e3\u0373", + "\u06e5\u0374\u06e7\u0375\u06e9\u0376\u06eb\u0377\u06ed\u0378\u06ef\u0379", + "\u06f1\u037a\u06f3\u037b\u06f5\u037c\u06f7\u037d\u06f9\u037e\u06fb\u037f", + "\u06fd\u0380\u06ff\u0381\u0701\u0382\u0703\u0383\u0705\u0384\u0707\u0385", + "\u0709\u0386\u070b\u0387\u070d\u0388\u070f\u0389\u0711\u038a\u0713\u038b", + "\u0715\u038c\u0717\u038d\u0719\u038e\u071b\u038f\u071d\u0390\u071f\u0391", + "\u0721\u0392\u0723\u0393\u0725\u0394\u0727\u0395\u0729\u0396\u072b\u0397", + "\u072d\u0398\u072f\u0399\u0731\u039a\u0733\u039b\u0735\u039c\u0737\u039d", + "\u0739\u039e\u073b\u039f\u073d\u03a0\u073f\u03a1\u0741\u03a2\u0743\u03a3", + "\u0745\u03a4\u0747\u03a5\u0749\u03a6\u074b\u03a7\u074d\u03a8\u074f\u03a9", + "\u0751\u03aa\u0753\u03ab\u0755\u03ac\u0757\u03ad\u0759\u03ae\u075b\u03af", + "\u075d\u03b0\u075f\u03b1\u0761\u03b2\u0763\u03b3\u0765\u03b4\u0767\u03b5", + "\u0769\u03b6\u076b\u03b7\u076d\u03b8\u076f\u03b9\u0771\u03ba\u0773\u03bb", + "\u0775\u03bc\u0777\u03bd\u0779\u03be\u077b\u03bf\u077d\u03c0\u077f\u03c1", + "\u0781\u03c2\u0783\u03c3\u0785\u03c4\u0787\u03c5\u0789\u03c6\u078b\u03c7", + "\u078d\u03c8\u078f\u03c9\u0791\u03ca\u0793\u03cb\u0795\u03cc\u0797\u03cd", + "\u0799\u03ce\u079b\u03cf\u079d\u03d0\u079f\u03d1\u07a1\u03d2\u07a3\u03d3", + "\u07a5\u03d4\u07a7\u03d5\u07a9\u03d6\u07ab\u03d7\u07ad\u03d8\u07af\u03d9", + "\u07b1\u03da\u07b3\u03db\u07b5\u03dc\u07b7\u03dd\u07b9\u03de\u07bb\u03df", + "\u07bd\u03e0\u07bf\u03e1\u07c1\u03e2\u07c3\u03e3\u07c5\u03e4\u07c7\u03e5", + "\u07c9\u03e6\u07cb\u03e7\u07cd\u03e8\u07cf\u03e9\u07d1\u03ea\u07d3\u03eb", + "\u07d5\u03ec\u07d7\u03ed\u07d9\u03ee\u07db\u03ef\u07dd\u03f0\u07df\u03f1", + "\u07e1\u03f2\u07e3\u03f3\u07e5\u03f4\u07e7\u03f5\u07e9\u03f6\u07eb\u03f7", + "\u07ed\u03f8\u07ef\u03f9\u07f1\u03fa\u07f3\u03fb\u07f5\u03fc\u07f7\u03fd", + "\u07f9\u03fe\u07fb\u03ff\u07fd\u0400\u07ff\u0401\u0801\u0402\u0803\u0403", + "\u0805\u0404\u0807\u0405\u0809\u0406\u080b\u0407\u080d\u0408\u080f\u0409", + "\u0811\u0002\u0813\u040a\u0815\u040b\u0817\u040c\u0819\u040d\u081b\u040e", + "\u081d\u040f\u081f\u0410\u0821\u0411\u0823\u0412\u0825\u0413\u0827\u0414", + "\u0829\u0415\u082b\u0416\u082d\u0417\u082f\u0418\u0831\u0419\u0833\u0002", + "\u0835\u0002\u0837\u0002\u0839\u0002\u083b\u0002\u083d\u0002\u083f\u0002", + "\u0841\u0002\u0843\u0002\u0845\u041a\u0003\u0002\u0010\u0005\u0002\u000b", + "\f\u000f\u000f\"\"\u0004\u0002\f\f\u000f\u000f\u0006\u0002IIMMOOVV\u0003", + "\u0002bb\u0007\u0002&&002;C\\aa\u0004\u0002--//\u0006\u0002&&2;C\\a", + "a\u0005\u0002&&C\\aa\u0004\u0002$$^^\u0004\u0002))^^\u0004\u0002^^b", + "b\u0004\u00022;CH\u0003\u00022;\u0003\u000223\u0002\u2fbe\u0002\u0003", + "\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002\u0007", + "\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002\u000b", + "\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002\u0002\u000f", + "\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002\u0013", + "\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0002\u0017", + "\u0003\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002\u0002\u001b", + "\u0003\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002\u0002\u001f", + "\u0003\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002\u0002#\u0003", + "\u0002\u0002\u0002\u0002%\u0003\u0002\u0002\u0002\u0002\'\u0003\u0002", + "\u0002\u0002\u0002)\u0003\u0002\u0002\u0002\u0002+\u0003\u0002\u0002", + "\u0002\u0002-\u0003\u0002\u0002\u0002\u0002/\u0003\u0002\u0002\u0002", + "\u00021\u0003\u0002\u0002\u0002\u00023\u0003\u0002\u0002\u0002\u0002", + "5\u0003\u0002\u0002\u0002\u00027\u0003\u0002\u0002\u0002\u00029\u0003", + "\u0002\u0002\u0002\u0002;\u0003\u0002\u0002\u0002\u0002=\u0003\u0002", + "\u0002\u0002\u0002?\u0003\u0002\u0002\u0002\u0002A\u0003\u0002\u0002", + "\u0002\u0002C\u0003\u0002\u0002\u0002\u0002E\u0003\u0002\u0002\u0002", + "\u0002G\u0003\u0002\u0002\u0002\u0002I\u0003\u0002\u0002\u0002\u0002", + "K\u0003\u0002\u0002\u0002\u0002M\u0003\u0002\u0002\u0002\u0002O\u0003", + "\u0002\u0002\u0002\u0002Q\u0003\u0002\u0002\u0002\u0002S\u0003\u0002", + "\u0002\u0002\u0002U\u0003\u0002\u0002\u0002\u0002W\u0003\u0002\u0002", + "\u0002\u0002Y\u0003\u0002\u0002\u0002\u0002[\u0003\u0002\u0002\u0002", + "\u0002]\u0003\u0002\u0002\u0002\u0002_\u0003\u0002\u0002\u0002\u0002", + "a\u0003\u0002\u0002\u0002\u0002c\u0003\u0002\u0002\u0002\u0002e\u0003", + "\u0002\u0002\u0002\u0002g\u0003\u0002\u0002\u0002\u0002i\u0003\u0002", + "\u0002\u0002\u0002k\u0003\u0002\u0002\u0002\u0002m\u0003\u0002\u0002", + "\u0002\u0002o\u0003\u0002\u0002\u0002\u0002q\u0003\u0002\u0002\u0002", + "\u0002s\u0003\u0002\u0002\u0002\u0002u\u0003\u0002\u0002\u0002\u0002", + "w\u0003\u0002\u0002\u0002\u0002y\u0003\u0002\u0002\u0002\u0002{\u0003", + "\u0002\u0002\u0002\u0002}\u0003\u0002\u0002\u0002\u0002\u007f\u0003", + "\u0002\u0002\u0002\u0002\u0081\u0003\u0002\u0002\u0002\u0002\u0083\u0003", + "\u0002\u0002\u0002\u0002\u0085\u0003\u0002\u0002\u0002\u0002\u0087\u0003", + "\u0002\u0002\u0002\u0002\u0089\u0003\u0002\u0002\u0002\u0002\u008b\u0003", + "\u0002\u0002\u0002\u0002\u008d\u0003\u0002\u0002\u0002\u0002\u008f\u0003", + "\u0002\u0002\u0002\u0002\u0091\u0003\u0002\u0002\u0002\u0002\u0093\u0003", + "\u0002\u0002\u0002\u0002\u0095\u0003\u0002\u0002\u0002\u0002\u0097\u0003", + "\u0002\u0002\u0002\u0002\u0099\u0003\u0002\u0002\u0002\u0002\u009b\u0003", + "\u0002\u0002\u0002\u0002\u009d\u0003\u0002\u0002\u0002\u0002\u009f\u0003", + "\u0002\u0002\u0002\u0002\u00a1\u0003\u0002\u0002\u0002\u0002\u00a3\u0003", + "\u0002\u0002\u0002\u0002\u00a5\u0003\u0002\u0002\u0002\u0002\u00a7\u0003", + "\u0002\u0002\u0002\u0002\u00a9\u0003\u0002\u0002\u0002\u0002\u00ab\u0003", + "\u0002\u0002\u0002\u0002\u00ad\u0003\u0002\u0002\u0002\u0002\u00af\u0003", + "\u0002\u0002\u0002\u0002\u00b1\u0003\u0002\u0002\u0002\u0002\u00b3\u0003", + "\u0002\u0002\u0002\u0002\u00b5\u0003\u0002\u0002\u0002\u0002\u00b7\u0003", + "\u0002\u0002\u0002\u0002\u00b9\u0003\u0002\u0002\u0002\u0002\u00bb\u0003", + "\u0002\u0002\u0002\u0002\u00bd\u0003\u0002\u0002\u0002\u0002\u00bf\u0003", + "\u0002\u0002\u0002\u0002\u00c1\u0003\u0002\u0002\u0002\u0002\u00c3\u0003", + "\u0002\u0002\u0002\u0002\u00c5\u0003\u0002\u0002\u0002\u0002\u00c7\u0003", + "\u0002\u0002\u0002\u0002\u00c9\u0003\u0002\u0002\u0002\u0002\u00cb\u0003", + "\u0002\u0002\u0002\u0002\u00cd\u0003\u0002\u0002\u0002\u0002\u00cf\u0003", + "\u0002\u0002\u0002\u0002\u00d1\u0003\u0002\u0002\u0002\u0002\u00d3\u0003", + "\u0002\u0002\u0002\u0002\u00d5\u0003\u0002\u0002\u0002\u0002\u00d7\u0003", + "\u0002\u0002\u0002\u0002\u00d9\u0003\u0002\u0002\u0002\u0002\u00db\u0003", + "\u0002\u0002\u0002\u0002\u00dd\u0003\u0002\u0002\u0002\u0002\u00df\u0003", + "\u0002\u0002\u0002\u0002\u00e1\u0003\u0002\u0002\u0002\u0002\u00e3\u0003", + "\u0002\u0002\u0002\u0002\u00e5\u0003\u0002\u0002\u0002\u0002\u00e7\u0003", + "\u0002\u0002\u0002\u0002\u00e9\u0003\u0002\u0002\u0002\u0002\u00eb\u0003", + "\u0002\u0002\u0002\u0002\u00ed\u0003\u0002\u0002\u0002\u0002\u00ef\u0003", + "\u0002\u0002\u0002\u0002\u00f1\u0003\u0002\u0002\u0002\u0002\u00f3\u0003", + "\u0002\u0002\u0002\u0002\u00f5\u0003\u0002\u0002\u0002\u0002\u00f7\u0003", + "\u0002\u0002\u0002\u0002\u00f9\u0003\u0002\u0002\u0002\u0002\u00fb\u0003", + "\u0002\u0002\u0002\u0002\u00fd\u0003\u0002\u0002\u0002\u0002\u00ff\u0003", + "\u0002\u0002\u0002\u0002\u0101\u0003\u0002\u0002\u0002\u0002\u0103\u0003", + "\u0002\u0002\u0002\u0002\u0105\u0003\u0002\u0002\u0002\u0002\u0107\u0003", + "\u0002\u0002\u0002\u0002\u0109\u0003\u0002\u0002\u0002\u0002\u010b\u0003", + "\u0002\u0002\u0002\u0002\u010d\u0003\u0002\u0002\u0002\u0002\u010f\u0003", + "\u0002\u0002\u0002\u0002\u0111\u0003\u0002\u0002\u0002\u0002\u0113\u0003", + "\u0002\u0002\u0002\u0002\u0115\u0003\u0002\u0002\u0002\u0002\u0117\u0003", + "\u0002\u0002\u0002\u0002\u0119\u0003\u0002\u0002\u0002\u0002\u011b\u0003", + "\u0002\u0002\u0002\u0002\u011d\u0003\u0002\u0002\u0002\u0002\u011f\u0003", + "\u0002\u0002\u0002\u0002\u0121\u0003\u0002\u0002\u0002\u0002\u0123\u0003", + "\u0002\u0002\u0002\u0002\u0125\u0003\u0002\u0002\u0002\u0002\u0127\u0003", + "\u0002\u0002\u0002\u0002\u0129\u0003\u0002\u0002\u0002\u0002\u012b\u0003", + "\u0002\u0002\u0002\u0002\u012d\u0003\u0002\u0002\u0002\u0002\u012f\u0003", + "\u0002\u0002\u0002\u0002\u0131\u0003\u0002\u0002\u0002\u0002\u0133\u0003", + "\u0002\u0002\u0002\u0002\u0135\u0003\u0002\u0002\u0002\u0002\u0137\u0003", + "\u0002\u0002\u0002\u0002\u0139\u0003\u0002\u0002\u0002\u0002\u013b\u0003", + "\u0002\u0002\u0002\u0002\u013d\u0003\u0002\u0002\u0002\u0002\u013f\u0003", + "\u0002\u0002\u0002\u0002\u0141\u0003\u0002\u0002\u0002\u0002\u0143\u0003", + "\u0002\u0002\u0002\u0002\u0145\u0003\u0002\u0002\u0002\u0002\u0147\u0003", + "\u0002\u0002\u0002\u0002\u0149\u0003\u0002\u0002\u0002\u0002\u014b\u0003", + "\u0002\u0002\u0002\u0002\u014d\u0003\u0002\u0002\u0002\u0002\u014f\u0003", + "\u0002\u0002\u0002\u0002\u0151\u0003\u0002\u0002\u0002\u0002\u0153\u0003", + "\u0002\u0002\u0002\u0002\u0155\u0003\u0002\u0002\u0002\u0002\u0157\u0003", + "\u0002\u0002\u0002\u0002\u0159\u0003\u0002\u0002\u0002\u0002\u015b\u0003", + "\u0002\u0002\u0002\u0002\u015d\u0003\u0002\u0002\u0002\u0002\u015f\u0003", + "\u0002\u0002\u0002\u0002\u0161\u0003\u0002\u0002\u0002\u0002\u0163\u0003", + "\u0002\u0002\u0002\u0002\u0165\u0003\u0002\u0002\u0002\u0002\u0167\u0003", + "\u0002\u0002\u0002\u0002\u0169\u0003\u0002\u0002\u0002\u0002\u016b\u0003", + "\u0002\u0002\u0002\u0002\u016d\u0003\u0002\u0002\u0002\u0002\u016f\u0003", + "\u0002\u0002\u0002\u0002\u0171\u0003\u0002\u0002\u0002\u0002\u0173\u0003", + "\u0002\u0002\u0002\u0002\u0175\u0003\u0002\u0002\u0002\u0002\u0177\u0003", + "\u0002\u0002\u0002\u0002\u0179\u0003\u0002\u0002\u0002\u0002\u017b\u0003", + "\u0002\u0002\u0002\u0002\u017d\u0003\u0002\u0002\u0002\u0002\u017f\u0003", + "\u0002\u0002\u0002\u0002\u0181\u0003\u0002\u0002\u0002\u0002\u0183\u0003", + "\u0002\u0002\u0002\u0002\u0185\u0003\u0002\u0002\u0002\u0002\u0187\u0003", + "\u0002\u0002\u0002\u0002\u0189\u0003\u0002\u0002\u0002\u0002\u018b\u0003", + "\u0002\u0002\u0002\u0002\u018d\u0003\u0002\u0002\u0002\u0002\u018f\u0003", + "\u0002\u0002\u0002\u0002\u0191\u0003\u0002\u0002\u0002\u0002\u0193\u0003", + "\u0002\u0002\u0002\u0002\u0195\u0003\u0002\u0002\u0002\u0002\u0197\u0003", + "\u0002\u0002\u0002\u0002\u0199\u0003\u0002\u0002\u0002\u0002\u019b\u0003", + "\u0002\u0002\u0002\u0002\u019d\u0003\u0002\u0002\u0002\u0002\u019f\u0003", + "\u0002\u0002\u0002\u0002\u01a1\u0003\u0002\u0002\u0002\u0002\u01a3\u0003", + "\u0002\u0002\u0002\u0002\u01a5\u0003\u0002\u0002\u0002\u0002\u01a7\u0003", + "\u0002\u0002\u0002\u0002\u01a9\u0003\u0002\u0002\u0002\u0002\u01ab\u0003", + "\u0002\u0002\u0002\u0002\u01ad\u0003\u0002\u0002\u0002\u0002\u01af\u0003", + "\u0002\u0002\u0002\u0002\u01b1\u0003\u0002\u0002\u0002\u0002\u01b3\u0003", + "\u0002\u0002\u0002\u0002\u01b5\u0003\u0002\u0002\u0002\u0002\u01b7\u0003", + "\u0002\u0002\u0002\u0002\u01b9\u0003\u0002\u0002\u0002\u0002\u01bb\u0003", + "\u0002\u0002\u0002\u0002\u01bd\u0003\u0002\u0002\u0002\u0002\u01bf\u0003", + "\u0002\u0002\u0002\u0002\u01c1\u0003\u0002\u0002\u0002\u0002\u01c3\u0003", + "\u0002\u0002\u0002\u0002\u01c5\u0003\u0002\u0002\u0002\u0002\u01c7\u0003", + "\u0002\u0002\u0002\u0002\u01c9\u0003\u0002\u0002\u0002\u0002\u01cb\u0003", + "\u0002\u0002\u0002\u0002\u01cd\u0003\u0002\u0002\u0002\u0002\u01cf\u0003", + "\u0002\u0002\u0002\u0002\u01d1\u0003\u0002\u0002\u0002\u0002\u01d3\u0003", + "\u0002\u0002\u0002\u0002\u01d5\u0003\u0002\u0002\u0002\u0002\u01d7\u0003", + "\u0002\u0002\u0002\u0002\u01d9\u0003\u0002\u0002\u0002\u0002\u01db\u0003", + "\u0002\u0002\u0002\u0002\u01dd\u0003\u0002\u0002\u0002\u0002\u01df\u0003", + "\u0002\u0002\u0002\u0002\u01e1\u0003\u0002\u0002\u0002\u0002\u01e3\u0003", + "\u0002\u0002\u0002\u0002\u01e5\u0003\u0002\u0002\u0002\u0002\u01e7\u0003", + "\u0002\u0002\u0002\u0002\u01e9\u0003\u0002\u0002\u0002\u0002\u01eb\u0003", + "\u0002\u0002\u0002\u0002\u01ed\u0003\u0002\u0002\u0002\u0002\u01ef\u0003", + "\u0002\u0002\u0002\u0002\u01f1\u0003\u0002\u0002\u0002\u0002\u01f3\u0003", + "\u0002\u0002\u0002\u0002\u01f5\u0003\u0002\u0002\u0002\u0002\u01f7\u0003", + "\u0002\u0002\u0002\u0002\u01f9\u0003\u0002\u0002\u0002\u0002\u01fb\u0003", + "\u0002\u0002\u0002\u0002\u01fd\u0003\u0002\u0002\u0002\u0002\u01ff\u0003", + "\u0002\u0002\u0002\u0002\u0201\u0003\u0002\u0002\u0002\u0002\u0203\u0003", + "\u0002\u0002\u0002\u0002\u0205\u0003\u0002\u0002\u0002\u0002\u0207\u0003", + "\u0002\u0002\u0002\u0002\u0209\u0003\u0002\u0002\u0002\u0002\u020b\u0003", + "\u0002\u0002\u0002\u0002\u020d\u0003\u0002\u0002\u0002\u0002\u020f\u0003", + "\u0002\u0002\u0002\u0002\u0211\u0003\u0002\u0002\u0002\u0002\u0213\u0003", + "\u0002\u0002\u0002\u0002\u0215\u0003\u0002\u0002\u0002\u0002\u0217\u0003", + "\u0002\u0002\u0002\u0002\u0219\u0003\u0002\u0002\u0002\u0002\u021b\u0003", + "\u0002\u0002\u0002\u0002\u021d\u0003\u0002\u0002\u0002\u0002\u021f\u0003", + "\u0002\u0002\u0002\u0002\u0221\u0003\u0002\u0002\u0002\u0002\u0223\u0003", + "\u0002\u0002\u0002\u0002\u0225\u0003\u0002\u0002\u0002\u0002\u0227\u0003", + "\u0002\u0002\u0002\u0002\u0229\u0003\u0002\u0002\u0002\u0002\u022b\u0003", + "\u0002\u0002\u0002\u0002\u022d\u0003\u0002\u0002\u0002\u0002\u022f\u0003", + "\u0002\u0002\u0002\u0002\u0231\u0003\u0002\u0002\u0002\u0002\u0233\u0003", + "\u0002\u0002\u0002\u0002\u0235\u0003\u0002\u0002\u0002\u0002\u0237\u0003", + "\u0002\u0002\u0002\u0002\u0239\u0003\u0002\u0002\u0002\u0002\u023b\u0003", + "\u0002\u0002\u0002\u0002\u023d\u0003\u0002\u0002\u0002\u0002\u023f\u0003", + "\u0002\u0002\u0002\u0002\u0241\u0003\u0002\u0002\u0002\u0002\u0243\u0003", + "\u0002\u0002\u0002\u0002\u0245\u0003\u0002\u0002\u0002\u0002\u0247\u0003", + "\u0002\u0002\u0002\u0002\u0249\u0003\u0002\u0002\u0002\u0002\u024b\u0003", + "\u0002\u0002\u0002\u0002\u024d\u0003\u0002\u0002\u0002\u0002\u024f\u0003", + "\u0002\u0002\u0002\u0002\u0251\u0003\u0002\u0002\u0002\u0002\u0253\u0003", + "\u0002\u0002\u0002\u0002\u0255\u0003\u0002\u0002\u0002\u0002\u0257\u0003", + "\u0002\u0002\u0002\u0002\u0259\u0003\u0002\u0002\u0002\u0002\u025b\u0003", + "\u0002\u0002\u0002\u0002\u025d\u0003\u0002\u0002\u0002\u0002\u025f\u0003", + "\u0002\u0002\u0002\u0002\u0261\u0003\u0002\u0002\u0002\u0002\u0263\u0003", + "\u0002\u0002\u0002\u0002\u0265\u0003\u0002\u0002\u0002\u0002\u0267\u0003", + "\u0002\u0002\u0002\u0002\u0269\u0003\u0002\u0002\u0002\u0002\u026b\u0003", + "\u0002\u0002\u0002\u0002\u026d\u0003\u0002\u0002\u0002\u0002\u026f\u0003", + "\u0002\u0002\u0002\u0002\u0271\u0003\u0002\u0002\u0002\u0002\u0273\u0003", + "\u0002\u0002\u0002\u0002\u0275\u0003\u0002\u0002\u0002\u0002\u0277\u0003", + "\u0002\u0002\u0002\u0002\u0279\u0003\u0002\u0002\u0002\u0002\u027b\u0003", + "\u0002\u0002\u0002\u0002\u027d\u0003\u0002\u0002\u0002\u0002\u027f\u0003", + "\u0002\u0002\u0002\u0002\u0281\u0003\u0002\u0002\u0002\u0002\u0283\u0003", + "\u0002\u0002\u0002\u0002\u0285\u0003\u0002\u0002\u0002\u0002\u0287\u0003", + "\u0002\u0002\u0002\u0002\u0289\u0003\u0002\u0002\u0002\u0002\u028b\u0003", + "\u0002\u0002\u0002\u0002\u028d\u0003\u0002\u0002\u0002\u0002\u028f\u0003", + "\u0002\u0002\u0002\u0002\u0291\u0003\u0002\u0002\u0002\u0002\u0293\u0003", + "\u0002\u0002\u0002\u0002\u0295\u0003\u0002\u0002\u0002\u0002\u0297\u0003", + "\u0002\u0002\u0002\u0002\u0299\u0003\u0002\u0002\u0002\u0002\u029b\u0003", + "\u0002\u0002\u0002\u0002\u029d\u0003\u0002\u0002\u0002\u0002\u029f\u0003", + "\u0002\u0002\u0002\u0002\u02a1\u0003\u0002\u0002\u0002\u0002\u02a3\u0003", + "\u0002\u0002\u0002\u0002\u02a5\u0003\u0002\u0002\u0002\u0002\u02a7\u0003", + "\u0002\u0002\u0002\u0002\u02a9\u0003\u0002\u0002\u0002\u0002\u02ab\u0003", + "\u0002\u0002\u0002\u0002\u02ad\u0003\u0002\u0002\u0002\u0002\u02af\u0003", + "\u0002\u0002\u0002\u0002\u02b1\u0003\u0002\u0002\u0002\u0002\u02b3\u0003", + "\u0002\u0002\u0002\u0002\u02b5\u0003\u0002\u0002\u0002\u0002\u02b7\u0003", + "\u0002\u0002\u0002\u0002\u02b9\u0003\u0002\u0002\u0002\u0002\u02bb\u0003", + "\u0002\u0002\u0002\u0002\u02bd\u0003\u0002\u0002\u0002\u0002\u02bf\u0003", + "\u0002\u0002\u0002\u0002\u02c1\u0003\u0002\u0002\u0002\u0002\u02c3\u0003", + "\u0002\u0002\u0002\u0002\u02c5\u0003\u0002\u0002\u0002\u0002\u02c7\u0003", + "\u0002\u0002\u0002\u0002\u02c9\u0003\u0002\u0002\u0002\u0002\u02cb\u0003", + "\u0002\u0002\u0002\u0002\u02cd\u0003\u0002\u0002\u0002\u0002\u02cf\u0003", + "\u0002\u0002\u0002\u0002\u02d1\u0003\u0002\u0002\u0002\u0002\u02d3\u0003", + "\u0002\u0002\u0002\u0002\u02d5\u0003\u0002\u0002\u0002\u0002\u02d7\u0003", + "\u0002\u0002\u0002\u0002\u02d9\u0003\u0002\u0002\u0002\u0002\u02db\u0003", + "\u0002\u0002\u0002\u0002\u02dd\u0003\u0002\u0002\u0002\u0002\u02df\u0003", + "\u0002\u0002\u0002\u0002\u02e1\u0003\u0002\u0002\u0002\u0002\u02e3\u0003", + "\u0002\u0002\u0002\u0002\u02e5\u0003\u0002\u0002\u0002\u0002\u02e7\u0003", + "\u0002\u0002\u0002\u0002\u02e9\u0003\u0002\u0002\u0002\u0002\u02eb\u0003", + "\u0002\u0002\u0002\u0002\u02ed\u0003\u0002\u0002\u0002\u0002\u02ef\u0003", + "\u0002\u0002\u0002\u0002\u02f1\u0003\u0002\u0002\u0002\u0002\u02f3\u0003", + "\u0002\u0002\u0002\u0002\u02f5\u0003\u0002\u0002\u0002\u0002\u02f7\u0003", + "\u0002\u0002\u0002\u0002\u02f9\u0003\u0002\u0002\u0002\u0002\u02fb\u0003", + "\u0002\u0002\u0002\u0002\u02fd\u0003\u0002\u0002\u0002\u0002\u02ff\u0003", + "\u0002\u0002\u0002\u0002\u0301\u0003\u0002\u0002\u0002\u0002\u0303\u0003", + "\u0002\u0002\u0002\u0002\u0305\u0003\u0002\u0002\u0002\u0002\u0307\u0003", + "\u0002\u0002\u0002\u0002\u0309\u0003\u0002\u0002\u0002\u0002\u030b\u0003", + "\u0002\u0002\u0002\u0002\u030d\u0003\u0002\u0002\u0002\u0002\u030f\u0003", + "\u0002\u0002\u0002\u0002\u0311\u0003\u0002\u0002\u0002\u0002\u0313\u0003", + "\u0002\u0002\u0002\u0002\u0315\u0003\u0002\u0002\u0002\u0002\u0317\u0003", + "\u0002\u0002\u0002\u0002\u0319\u0003\u0002\u0002\u0002\u0002\u031b\u0003", + "\u0002\u0002\u0002\u0002\u031d\u0003\u0002\u0002\u0002\u0002\u031f\u0003", + "\u0002\u0002\u0002\u0002\u0321\u0003\u0002\u0002\u0002\u0002\u0323\u0003", + "\u0002\u0002\u0002\u0002\u0325\u0003\u0002\u0002\u0002\u0002\u0327\u0003", + "\u0002\u0002\u0002\u0002\u0329\u0003\u0002\u0002\u0002\u0002\u032b\u0003", + "\u0002\u0002\u0002\u0002\u032d\u0003\u0002\u0002\u0002\u0002\u032f\u0003", + "\u0002\u0002\u0002\u0002\u0331\u0003\u0002\u0002\u0002\u0002\u0333\u0003", + "\u0002\u0002\u0002\u0002\u0335\u0003\u0002\u0002\u0002\u0002\u0337\u0003", + "\u0002\u0002\u0002\u0002\u0339\u0003\u0002\u0002\u0002\u0002\u033b\u0003", + "\u0002\u0002\u0002\u0002\u033d\u0003\u0002\u0002\u0002\u0002\u033f\u0003", + "\u0002\u0002\u0002\u0002\u0341\u0003\u0002\u0002\u0002\u0002\u0343\u0003", + "\u0002\u0002\u0002\u0002\u0345\u0003\u0002\u0002\u0002\u0002\u0347\u0003", + "\u0002\u0002\u0002\u0002\u0349\u0003\u0002\u0002\u0002\u0002\u034b\u0003", + "\u0002\u0002\u0002\u0002\u034d\u0003\u0002\u0002\u0002\u0002\u034f\u0003", + "\u0002\u0002\u0002\u0002\u0351\u0003\u0002\u0002\u0002\u0002\u0353\u0003", + "\u0002\u0002\u0002\u0002\u0355\u0003\u0002\u0002\u0002\u0002\u0357\u0003", + "\u0002\u0002\u0002\u0002\u0359\u0003\u0002\u0002\u0002\u0002\u035b\u0003", + "\u0002\u0002\u0002\u0002\u035d\u0003\u0002\u0002\u0002\u0002\u035f\u0003", + "\u0002\u0002\u0002\u0002\u0361\u0003\u0002\u0002\u0002\u0002\u0363\u0003", + "\u0002\u0002\u0002\u0002\u0365\u0003\u0002\u0002\u0002\u0002\u0367\u0003", + "\u0002\u0002\u0002\u0002\u0369\u0003\u0002\u0002\u0002\u0002\u036b\u0003", + "\u0002\u0002\u0002\u0002\u036d\u0003\u0002\u0002\u0002\u0002\u036f\u0003", + "\u0002\u0002\u0002\u0002\u0371\u0003\u0002\u0002\u0002\u0002\u0373\u0003", + "\u0002\u0002\u0002\u0002\u0375\u0003\u0002\u0002\u0002\u0002\u0377\u0003", + "\u0002\u0002\u0002\u0002\u0379\u0003\u0002\u0002\u0002\u0002\u037b\u0003", + "\u0002\u0002\u0002\u0002\u037d\u0003\u0002\u0002\u0002\u0002\u037f\u0003", + "\u0002\u0002\u0002\u0002\u0381\u0003\u0002\u0002\u0002\u0002\u0383\u0003", + "\u0002\u0002\u0002\u0002\u0385\u0003\u0002\u0002\u0002\u0002\u0387\u0003", + "\u0002\u0002\u0002\u0002\u0389\u0003\u0002\u0002\u0002\u0002\u038b\u0003", + "\u0002\u0002\u0002\u0002\u038d\u0003\u0002\u0002\u0002\u0002\u038f\u0003", + "\u0002\u0002\u0002\u0002\u0391\u0003\u0002\u0002\u0002\u0002\u0393\u0003", + "\u0002\u0002\u0002\u0002\u0395\u0003\u0002\u0002\u0002\u0002\u0397\u0003", + "\u0002\u0002\u0002\u0002\u0399\u0003\u0002\u0002\u0002\u0002\u039b\u0003", + "\u0002\u0002\u0002\u0002\u039d\u0003\u0002\u0002\u0002\u0002\u039f\u0003", + "\u0002\u0002\u0002\u0002\u03a1\u0003\u0002\u0002\u0002\u0002\u03a3\u0003", + "\u0002\u0002\u0002\u0002\u03a5\u0003\u0002\u0002\u0002\u0002\u03a7\u0003", + "\u0002\u0002\u0002\u0002\u03a9\u0003\u0002\u0002\u0002\u0002\u03ab\u0003", + "\u0002\u0002\u0002\u0002\u03ad\u0003\u0002\u0002\u0002\u0002\u03af\u0003", + "\u0002\u0002\u0002\u0002\u03b1\u0003\u0002\u0002\u0002\u0002\u03b3\u0003", + "\u0002\u0002\u0002\u0002\u03b5\u0003\u0002\u0002\u0002\u0002\u03b7\u0003", + "\u0002\u0002\u0002\u0002\u03b9\u0003\u0002\u0002\u0002\u0002\u03bb\u0003", + "\u0002\u0002\u0002\u0002\u03bd\u0003\u0002\u0002\u0002\u0002\u03bf\u0003", + "\u0002\u0002\u0002\u0002\u03c1\u0003\u0002\u0002\u0002\u0002\u03c3\u0003", + "\u0002\u0002\u0002\u0002\u03c5\u0003\u0002\u0002\u0002\u0002\u03c7\u0003", + "\u0002\u0002\u0002\u0002\u03c9\u0003\u0002\u0002\u0002\u0002\u03cb\u0003", + "\u0002\u0002\u0002\u0002\u03cd\u0003\u0002\u0002\u0002\u0002\u03cf\u0003", + "\u0002\u0002\u0002\u0002\u03d1\u0003\u0002\u0002\u0002\u0002\u03d3\u0003", + "\u0002\u0002\u0002\u0002\u03d5\u0003\u0002\u0002\u0002\u0002\u03d7\u0003", + "\u0002\u0002\u0002\u0002\u03d9\u0003\u0002\u0002\u0002\u0002\u03db\u0003", + "\u0002\u0002\u0002\u0002\u03dd\u0003\u0002\u0002\u0002\u0002\u03df\u0003", + "\u0002\u0002\u0002\u0002\u03e1\u0003\u0002\u0002\u0002\u0002\u03e3\u0003", + "\u0002\u0002\u0002\u0002\u03e5\u0003\u0002\u0002\u0002\u0002\u03e7\u0003", + "\u0002\u0002\u0002\u0002\u03e9\u0003\u0002\u0002\u0002\u0002\u03eb\u0003", + "\u0002\u0002\u0002\u0002\u03ed\u0003\u0002\u0002\u0002\u0002\u03ef\u0003", + "\u0002\u0002\u0002\u0002\u03f1\u0003\u0002\u0002\u0002\u0002\u03f3\u0003", + "\u0002\u0002\u0002\u0002\u03f5\u0003\u0002\u0002\u0002\u0002\u03f7\u0003", + "\u0002\u0002\u0002\u0002\u03f9\u0003\u0002\u0002\u0002\u0002\u03fb\u0003", + "\u0002\u0002\u0002\u0002\u03fd\u0003\u0002\u0002\u0002\u0002\u03ff\u0003", + "\u0002\u0002\u0002\u0002\u0401\u0003\u0002\u0002\u0002\u0002\u0403\u0003", + "\u0002\u0002\u0002\u0002\u0405\u0003\u0002\u0002\u0002\u0002\u0407\u0003", + "\u0002\u0002\u0002\u0002\u0409\u0003\u0002\u0002\u0002\u0002\u040b\u0003", + "\u0002\u0002\u0002\u0002\u040d\u0003\u0002\u0002\u0002\u0002\u040f\u0003", + "\u0002\u0002\u0002\u0002\u0411\u0003\u0002\u0002\u0002\u0002\u0413\u0003", + "\u0002\u0002\u0002\u0002\u0415\u0003\u0002\u0002\u0002\u0002\u0417\u0003", + "\u0002\u0002\u0002\u0002\u0419\u0003\u0002\u0002\u0002\u0002\u041b\u0003", + "\u0002\u0002\u0002\u0002\u041d\u0003\u0002\u0002\u0002\u0002\u041f\u0003", + "\u0002\u0002\u0002\u0002\u0421\u0003\u0002\u0002\u0002\u0002\u0423\u0003", + "\u0002\u0002\u0002\u0002\u0425\u0003\u0002\u0002\u0002\u0002\u0427\u0003", + "\u0002\u0002\u0002\u0002\u0429\u0003\u0002\u0002\u0002\u0002\u042b\u0003", + "\u0002\u0002\u0002\u0002\u042d\u0003\u0002\u0002\u0002\u0002\u042f\u0003", + "\u0002\u0002\u0002\u0002\u0431\u0003\u0002\u0002\u0002\u0002\u0433\u0003", + "\u0002\u0002\u0002\u0002\u0435\u0003\u0002\u0002\u0002\u0002\u0437\u0003", + "\u0002\u0002\u0002\u0002\u0439\u0003\u0002\u0002\u0002\u0002\u043b\u0003", + "\u0002\u0002\u0002\u0002\u043d\u0003\u0002\u0002\u0002\u0002\u043f\u0003", + "\u0002\u0002\u0002\u0002\u0441\u0003\u0002\u0002\u0002\u0002\u0443\u0003", + "\u0002\u0002\u0002\u0002\u0445\u0003\u0002\u0002\u0002\u0002\u0447\u0003", + "\u0002\u0002\u0002\u0002\u0449\u0003\u0002\u0002\u0002\u0002\u044b\u0003", + "\u0002\u0002\u0002\u0002\u044d\u0003\u0002\u0002\u0002\u0002\u044f\u0003", + "\u0002\u0002\u0002\u0002\u0451\u0003\u0002\u0002\u0002\u0002\u0453\u0003", + "\u0002\u0002\u0002\u0002\u0455\u0003\u0002\u0002\u0002\u0002\u0457\u0003", + "\u0002\u0002\u0002\u0002\u0459\u0003\u0002\u0002\u0002\u0002\u045b\u0003", + "\u0002\u0002\u0002\u0002\u045d\u0003\u0002\u0002\u0002\u0002\u045f\u0003", + "\u0002\u0002\u0002\u0002\u0461\u0003\u0002\u0002\u0002\u0002\u0463\u0003", + "\u0002\u0002\u0002\u0002\u0465\u0003\u0002\u0002\u0002\u0002\u0467\u0003", + "\u0002\u0002\u0002\u0002\u0469\u0003\u0002\u0002\u0002\u0002\u046b\u0003", + "\u0002\u0002\u0002\u0002\u046d\u0003\u0002\u0002\u0002\u0002\u046f\u0003", + "\u0002\u0002\u0002\u0002\u0471\u0003\u0002\u0002\u0002\u0002\u0473\u0003", + "\u0002\u0002\u0002\u0002\u0475\u0003\u0002\u0002\u0002\u0002\u0477\u0003", + "\u0002\u0002\u0002\u0002\u0479\u0003\u0002\u0002\u0002\u0002\u047b\u0003", + "\u0002\u0002\u0002\u0002\u047d\u0003\u0002\u0002\u0002\u0002\u047f\u0003", + "\u0002\u0002\u0002\u0002\u0481\u0003\u0002\u0002\u0002\u0002\u0483\u0003", + "\u0002\u0002\u0002\u0002\u0485\u0003\u0002\u0002\u0002\u0002\u0487\u0003", + "\u0002\u0002\u0002\u0002\u0489\u0003\u0002\u0002\u0002\u0002\u048b\u0003", + "\u0002\u0002\u0002\u0002\u048d\u0003\u0002\u0002\u0002\u0002\u048f\u0003", + "\u0002\u0002\u0002\u0002\u0491\u0003\u0002\u0002\u0002\u0002\u0493\u0003", + "\u0002\u0002\u0002\u0002\u0495\u0003\u0002\u0002\u0002\u0002\u0497\u0003", + "\u0002\u0002\u0002\u0002\u0499\u0003\u0002\u0002\u0002\u0002\u049b\u0003", + "\u0002\u0002\u0002\u0002\u049d\u0003\u0002\u0002\u0002\u0002\u049f\u0003", + "\u0002\u0002\u0002\u0002\u04a1\u0003\u0002\u0002\u0002\u0002\u04a3\u0003", + "\u0002\u0002\u0002\u0002\u04a5\u0003\u0002\u0002\u0002\u0002\u04a7\u0003", + "\u0002\u0002\u0002\u0002\u04a9\u0003\u0002\u0002\u0002\u0002\u04ab\u0003", + "\u0002\u0002\u0002\u0002\u04ad\u0003\u0002\u0002\u0002\u0002\u04af\u0003", + "\u0002\u0002\u0002\u0002\u04b1\u0003\u0002\u0002\u0002\u0002\u04b3\u0003", + "\u0002\u0002\u0002\u0002\u04b5\u0003\u0002\u0002\u0002\u0002\u04b7\u0003", + "\u0002\u0002\u0002\u0002\u04b9\u0003\u0002\u0002\u0002\u0002\u04bb\u0003", + "\u0002\u0002\u0002\u0002\u04bd\u0003\u0002\u0002\u0002\u0002\u04bf\u0003", + "\u0002\u0002\u0002\u0002\u04c1\u0003\u0002\u0002\u0002\u0002\u04c3\u0003", + "\u0002\u0002\u0002\u0002\u04c5\u0003\u0002\u0002\u0002\u0002\u04c7\u0003", + "\u0002\u0002\u0002\u0002\u04c9\u0003\u0002\u0002\u0002\u0002\u04cb\u0003", + "\u0002\u0002\u0002\u0002\u04cd\u0003\u0002\u0002\u0002\u0002\u04cf\u0003", + "\u0002\u0002\u0002\u0002\u04d1\u0003\u0002\u0002\u0002\u0002\u04d3\u0003", + "\u0002\u0002\u0002\u0002\u04d5\u0003\u0002\u0002\u0002\u0002\u04d7\u0003", + "\u0002\u0002\u0002\u0002\u04d9\u0003\u0002\u0002\u0002\u0002\u04db\u0003", + "\u0002\u0002\u0002\u0002\u04dd\u0003\u0002\u0002\u0002\u0002\u04df\u0003", + "\u0002\u0002\u0002\u0002\u04e1\u0003\u0002\u0002\u0002\u0002\u04e3\u0003", + "\u0002\u0002\u0002\u0002\u04e5\u0003\u0002\u0002\u0002\u0002\u04e7\u0003", + "\u0002\u0002\u0002\u0002\u04e9\u0003\u0002\u0002\u0002\u0002\u04eb\u0003", + "\u0002\u0002\u0002\u0002\u04ed\u0003\u0002\u0002\u0002\u0002\u04ef\u0003", + "\u0002\u0002\u0002\u0002\u04f1\u0003\u0002\u0002\u0002\u0002\u04f3\u0003", + "\u0002\u0002\u0002\u0002\u04f5\u0003\u0002\u0002\u0002\u0002\u04f7\u0003", + "\u0002\u0002\u0002\u0002\u04f9\u0003\u0002\u0002\u0002\u0002\u04fb\u0003", + "\u0002\u0002\u0002\u0002\u04fd\u0003\u0002\u0002\u0002\u0002\u04ff\u0003", + "\u0002\u0002\u0002\u0002\u0501\u0003\u0002\u0002\u0002\u0002\u0503\u0003", + "\u0002\u0002\u0002\u0002\u0505\u0003\u0002\u0002\u0002\u0002\u0507\u0003", + "\u0002\u0002\u0002\u0002\u0509\u0003\u0002\u0002\u0002\u0002\u050b\u0003", + "\u0002\u0002\u0002\u0002\u050d\u0003\u0002\u0002\u0002\u0002\u050f\u0003", + "\u0002\u0002\u0002\u0002\u0511\u0003\u0002\u0002\u0002\u0002\u0513\u0003", + "\u0002\u0002\u0002\u0002\u0515\u0003\u0002\u0002\u0002\u0002\u0517\u0003", + "\u0002\u0002\u0002\u0002\u0519\u0003\u0002\u0002\u0002\u0002\u051b\u0003", + "\u0002\u0002\u0002\u0002\u051d\u0003\u0002\u0002\u0002\u0002\u051f\u0003", + "\u0002\u0002\u0002\u0002\u0521\u0003\u0002\u0002\u0002\u0002\u0523\u0003", + "\u0002\u0002\u0002\u0002\u0525\u0003\u0002\u0002\u0002\u0002\u0527\u0003", + "\u0002\u0002\u0002\u0002\u0529\u0003\u0002\u0002\u0002\u0002\u052b\u0003", + "\u0002\u0002\u0002\u0002\u052d\u0003\u0002\u0002\u0002\u0002\u052f\u0003", + "\u0002\u0002\u0002\u0002\u0531\u0003\u0002\u0002\u0002\u0002\u0533\u0003", + "\u0002\u0002\u0002\u0002\u0535\u0003\u0002\u0002\u0002\u0002\u0537\u0003", + "\u0002\u0002\u0002\u0002\u0539\u0003\u0002\u0002\u0002\u0002\u053b\u0003", + "\u0002\u0002\u0002\u0002\u053d\u0003\u0002\u0002\u0002\u0002\u053f\u0003", + "\u0002\u0002\u0002\u0002\u0541\u0003\u0002\u0002\u0002\u0002\u0543\u0003", + "\u0002\u0002\u0002\u0002\u0545\u0003\u0002\u0002\u0002\u0002\u0547\u0003", + "\u0002\u0002\u0002\u0002\u0549\u0003\u0002\u0002\u0002\u0002\u054b\u0003", + "\u0002\u0002\u0002\u0002\u054d\u0003\u0002\u0002\u0002\u0002\u054f\u0003", + "\u0002\u0002\u0002\u0002\u0551\u0003\u0002\u0002\u0002\u0002\u0553\u0003", + "\u0002\u0002\u0002\u0002\u0555\u0003\u0002\u0002\u0002\u0002\u0557\u0003", + "\u0002\u0002\u0002\u0002\u0559\u0003\u0002\u0002\u0002\u0002\u055b\u0003", + "\u0002\u0002\u0002\u0002\u055d\u0003\u0002\u0002\u0002\u0002\u055f\u0003", + "\u0002\u0002\u0002\u0002\u0561\u0003\u0002\u0002\u0002\u0002\u0563\u0003", + "\u0002\u0002\u0002\u0002\u0565\u0003\u0002\u0002\u0002\u0002\u0567\u0003", + "\u0002\u0002\u0002\u0002\u0569\u0003\u0002\u0002\u0002\u0002\u056b\u0003", + "\u0002\u0002\u0002\u0002\u056d\u0003\u0002\u0002\u0002\u0002\u056f\u0003", + "\u0002\u0002\u0002\u0002\u0571\u0003\u0002\u0002\u0002\u0002\u0573\u0003", + "\u0002\u0002\u0002\u0002\u0575\u0003\u0002\u0002\u0002\u0002\u0577\u0003", + "\u0002\u0002\u0002\u0002\u0579\u0003\u0002\u0002\u0002\u0002\u057b\u0003", + "\u0002\u0002\u0002\u0002\u057d\u0003\u0002\u0002\u0002\u0002\u057f\u0003", + "\u0002\u0002\u0002\u0002\u0581\u0003\u0002\u0002\u0002\u0002\u0583\u0003", + "\u0002\u0002\u0002\u0002\u0585\u0003\u0002\u0002\u0002\u0002\u0587\u0003", + "\u0002\u0002\u0002\u0002\u0589\u0003\u0002\u0002\u0002\u0002\u058b\u0003", + "\u0002\u0002\u0002\u0002\u058d\u0003\u0002\u0002\u0002\u0002\u058f\u0003", + "\u0002\u0002\u0002\u0002\u0591\u0003\u0002\u0002\u0002\u0002\u0593\u0003", + "\u0002\u0002\u0002\u0002\u0595\u0003\u0002\u0002\u0002\u0002\u0597\u0003", + "\u0002\u0002\u0002\u0002\u0599\u0003\u0002\u0002\u0002\u0002\u059b\u0003", + "\u0002\u0002\u0002\u0002\u059d\u0003\u0002\u0002\u0002\u0002\u059f\u0003", + "\u0002\u0002\u0002\u0002\u05a1\u0003\u0002\u0002\u0002\u0002\u05a3\u0003", + "\u0002\u0002\u0002\u0002\u05a5\u0003\u0002\u0002\u0002\u0002\u05a7\u0003", + "\u0002\u0002\u0002\u0002\u05a9\u0003\u0002\u0002\u0002\u0002\u05ab\u0003", + "\u0002\u0002\u0002\u0002\u05ad\u0003\u0002\u0002\u0002\u0002\u05af\u0003", + "\u0002\u0002\u0002\u0002\u05b1\u0003\u0002\u0002\u0002\u0002\u05b3\u0003", + "\u0002\u0002\u0002\u0002\u05b5\u0003\u0002\u0002\u0002\u0002\u05b7\u0003", + "\u0002\u0002\u0002\u0002\u05b9\u0003\u0002\u0002\u0002\u0002\u05bb\u0003", + "\u0002\u0002\u0002\u0002\u05bd\u0003\u0002\u0002\u0002\u0002\u05bf\u0003", + "\u0002\u0002\u0002\u0002\u05c1\u0003\u0002\u0002\u0002\u0002\u05c3\u0003", + "\u0002\u0002\u0002\u0002\u05c5\u0003\u0002\u0002\u0002\u0002\u05c7\u0003", + "\u0002\u0002\u0002\u0002\u05c9\u0003\u0002\u0002\u0002\u0002\u05cb\u0003", + "\u0002\u0002\u0002\u0002\u05cd\u0003\u0002\u0002\u0002\u0002\u05cf\u0003", + "\u0002\u0002\u0002\u0002\u05d1\u0003\u0002\u0002\u0002\u0002\u05d3\u0003", + "\u0002\u0002\u0002\u0002\u05d5\u0003\u0002\u0002\u0002\u0002\u05d7\u0003", + "\u0002\u0002\u0002\u0002\u05d9\u0003\u0002\u0002\u0002\u0002\u05db\u0003", + "\u0002\u0002\u0002\u0002\u05dd\u0003\u0002\u0002\u0002\u0002\u05df\u0003", + "\u0002\u0002\u0002\u0002\u05e1\u0003\u0002\u0002\u0002\u0002\u05e3\u0003", + "\u0002\u0002\u0002\u0002\u05e5\u0003\u0002\u0002\u0002\u0002\u05e7\u0003", + "\u0002\u0002\u0002\u0002\u05e9\u0003\u0002\u0002\u0002\u0002\u05eb\u0003", + "\u0002\u0002\u0002\u0002\u05ed\u0003\u0002\u0002\u0002\u0002\u05ef\u0003", + "\u0002\u0002\u0002\u0002\u05f1\u0003\u0002\u0002\u0002\u0002\u05f3\u0003", + "\u0002\u0002\u0002\u0002\u05f5\u0003\u0002\u0002\u0002\u0002\u05f7\u0003", + "\u0002\u0002\u0002\u0002\u05f9\u0003\u0002\u0002\u0002\u0002\u05fb\u0003", + "\u0002\u0002\u0002\u0002\u05fd\u0003\u0002\u0002\u0002\u0002\u05ff\u0003", + "\u0002\u0002\u0002\u0002\u0601\u0003\u0002\u0002\u0002\u0002\u0603\u0003", + "\u0002\u0002\u0002\u0002\u0605\u0003\u0002\u0002\u0002\u0002\u0607\u0003", + "\u0002\u0002\u0002\u0002\u0609\u0003\u0002\u0002\u0002\u0002\u060b\u0003", + "\u0002\u0002\u0002\u0002\u060d\u0003\u0002\u0002\u0002\u0002\u060f\u0003", + "\u0002\u0002\u0002\u0002\u0611\u0003\u0002\u0002\u0002\u0002\u0613\u0003", + "\u0002\u0002\u0002\u0002\u0615\u0003\u0002\u0002\u0002\u0002\u0617\u0003", + "\u0002\u0002\u0002\u0002\u0619\u0003\u0002\u0002\u0002\u0002\u061b\u0003", + "\u0002\u0002\u0002\u0002\u061d\u0003\u0002\u0002\u0002\u0002\u061f\u0003", + "\u0002\u0002\u0002\u0002\u0621\u0003\u0002\u0002\u0002\u0002\u0623\u0003", + "\u0002\u0002\u0002\u0002\u0625\u0003\u0002\u0002\u0002\u0002\u0627\u0003", + "\u0002\u0002\u0002\u0002\u0629\u0003\u0002\u0002\u0002\u0002\u062b\u0003", + "\u0002\u0002\u0002\u0002\u062d\u0003\u0002\u0002\u0002\u0002\u062f\u0003", + "\u0002\u0002\u0002\u0002\u0631\u0003\u0002\u0002\u0002\u0002\u0633\u0003", + "\u0002\u0002\u0002\u0002\u0635\u0003\u0002\u0002\u0002\u0002\u0637\u0003", + "\u0002\u0002\u0002\u0002\u0639\u0003\u0002\u0002\u0002\u0002\u063b\u0003", + "\u0002\u0002\u0002\u0002\u063d\u0003\u0002\u0002\u0002\u0002\u063f\u0003", + "\u0002\u0002\u0002\u0002\u0641\u0003\u0002\u0002\u0002\u0002\u0643\u0003", + "\u0002\u0002\u0002\u0002\u0645\u0003\u0002\u0002\u0002\u0002\u0647\u0003", + "\u0002\u0002\u0002\u0002\u0649\u0003\u0002\u0002\u0002\u0002\u064b\u0003", + "\u0002\u0002\u0002\u0002\u064d\u0003\u0002\u0002\u0002\u0002\u064f\u0003", + "\u0002\u0002\u0002\u0002\u0651\u0003\u0002\u0002\u0002\u0002\u0653\u0003", + "\u0002\u0002\u0002\u0002\u0655\u0003\u0002\u0002\u0002\u0002\u0657\u0003", + "\u0002\u0002\u0002\u0002\u0659\u0003\u0002\u0002\u0002\u0002\u065b\u0003", + "\u0002\u0002\u0002\u0002\u065d\u0003\u0002\u0002\u0002\u0002\u065f\u0003", + "\u0002\u0002\u0002\u0002\u0661\u0003\u0002\u0002\u0002\u0002\u0663\u0003", + "\u0002\u0002\u0002\u0002\u0665\u0003\u0002\u0002\u0002\u0002\u0667\u0003", + "\u0002\u0002\u0002\u0002\u0669\u0003\u0002\u0002\u0002\u0002\u066b\u0003", + "\u0002\u0002\u0002\u0002\u066d\u0003\u0002\u0002\u0002\u0002\u066f\u0003", + "\u0002\u0002\u0002\u0002\u0671\u0003\u0002\u0002\u0002\u0002\u0673\u0003", + "\u0002\u0002\u0002\u0002\u0675\u0003\u0002\u0002\u0002\u0002\u0677\u0003", + "\u0002\u0002\u0002\u0002\u0679\u0003\u0002\u0002\u0002\u0002\u067b\u0003", + "\u0002\u0002\u0002\u0002\u067d\u0003\u0002\u0002\u0002\u0002\u067f\u0003", + "\u0002\u0002\u0002\u0002\u0681\u0003\u0002\u0002\u0002\u0002\u0683\u0003", + "\u0002\u0002\u0002\u0002\u0685\u0003\u0002\u0002\u0002\u0002\u0687\u0003", + "\u0002\u0002\u0002\u0002\u0689\u0003\u0002\u0002\u0002\u0002\u068b\u0003", + "\u0002\u0002\u0002\u0002\u068d\u0003\u0002\u0002\u0002\u0002\u068f\u0003", + "\u0002\u0002\u0002\u0002\u0691\u0003\u0002\u0002\u0002\u0002\u0693\u0003", + "\u0002\u0002\u0002\u0002\u0695\u0003\u0002\u0002\u0002\u0002\u0697\u0003", + "\u0002\u0002\u0002\u0002\u0699\u0003\u0002\u0002\u0002\u0002\u069b\u0003", + "\u0002\u0002\u0002\u0002\u069d\u0003\u0002\u0002\u0002\u0002\u069f\u0003", + "\u0002\u0002\u0002\u0002\u06a1\u0003\u0002\u0002\u0002\u0002\u06a3\u0003", + "\u0002\u0002\u0002\u0002\u06a5\u0003\u0002\u0002\u0002\u0002\u06a7\u0003", + "\u0002\u0002\u0002\u0002\u06a9\u0003\u0002\u0002\u0002\u0002\u06ab\u0003", + "\u0002\u0002\u0002\u0002\u06ad\u0003\u0002\u0002\u0002\u0002\u06af\u0003", + "\u0002\u0002\u0002\u0002\u06b1\u0003\u0002\u0002\u0002\u0002\u06b3\u0003", + "\u0002\u0002\u0002\u0002\u06b5\u0003\u0002\u0002\u0002\u0002\u06b7\u0003", + "\u0002\u0002\u0002\u0002\u06b9\u0003\u0002\u0002\u0002\u0002\u06bb\u0003", + "\u0002\u0002\u0002\u0002\u06bd\u0003\u0002\u0002\u0002\u0002\u06bf\u0003", + "\u0002\u0002\u0002\u0002\u06c1\u0003\u0002\u0002\u0002\u0002\u06c3\u0003", + "\u0002\u0002\u0002\u0002\u06c5\u0003\u0002\u0002\u0002\u0002\u06c7\u0003", + "\u0002\u0002\u0002\u0002\u06c9\u0003\u0002\u0002\u0002\u0002\u06cb\u0003", + "\u0002\u0002\u0002\u0002\u06cd\u0003\u0002\u0002\u0002\u0002\u06cf\u0003", + "\u0002\u0002\u0002\u0002\u06d1\u0003\u0002\u0002\u0002\u0002\u06d3\u0003", + "\u0002\u0002\u0002\u0002\u06d5\u0003\u0002\u0002\u0002\u0002\u06d7\u0003", + "\u0002\u0002\u0002\u0002\u06d9\u0003\u0002\u0002\u0002\u0002\u06db\u0003", + "\u0002\u0002\u0002\u0002\u06dd\u0003\u0002\u0002\u0002\u0002\u06df\u0003", + "\u0002\u0002\u0002\u0002\u06e1\u0003\u0002\u0002\u0002\u0002\u06e3\u0003", + "\u0002\u0002\u0002\u0002\u06e5\u0003\u0002\u0002\u0002\u0002\u06e7\u0003", + "\u0002\u0002\u0002\u0002\u06e9\u0003\u0002\u0002\u0002\u0002\u06eb\u0003", + "\u0002\u0002\u0002\u0002\u06ed\u0003\u0002\u0002\u0002\u0002\u06ef\u0003", + "\u0002\u0002\u0002\u0002\u06f1\u0003\u0002\u0002\u0002\u0002\u06f3\u0003", + "\u0002\u0002\u0002\u0002\u06f5\u0003\u0002\u0002\u0002\u0002\u06f7\u0003", + "\u0002\u0002\u0002\u0002\u06f9\u0003\u0002\u0002\u0002\u0002\u06fb\u0003", + "\u0002\u0002\u0002\u0002\u06fd\u0003\u0002\u0002\u0002\u0002\u06ff\u0003", + "\u0002\u0002\u0002\u0002\u0701\u0003\u0002\u0002\u0002\u0002\u0703\u0003", + "\u0002\u0002\u0002\u0002\u0705\u0003\u0002\u0002\u0002\u0002\u0707\u0003", + "\u0002\u0002\u0002\u0002\u0709\u0003\u0002\u0002\u0002\u0002\u070b\u0003", + "\u0002\u0002\u0002\u0002\u070d\u0003\u0002\u0002\u0002\u0002\u070f\u0003", + "\u0002\u0002\u0002\u0002\u0711\u0003\u0002\u0002\u0002\u0002\u0713\u0003", + "\u0002\u0002\u0002\u0002\u0715\u0003\u0002\u0002\u0002\u0002\u0717\u0003", + "\u0002\u0002\u0002\u0002\u0719\u0003\u0002\u0002\u0002\u0002\u071b\u0003", + "\u0002\u0002\u0002\u0002\u071d\u0003\u0002\u0002\u0002\u0002\u071f\u0003", + "\u0002\u0002\u0002\u0002\u0721\u0003\u0002\u0002\u0002\u0002\u0723\u0003", + "\u0002\u0002\u0002\u0002\u0725\u0003\u0002\u0002\u0002\u0002\u0727\u0003", + "\u0002\u0002\u0002\u0002\u0729\u0003\u0002\u0002\u0002\u0002\u072b\u0003", + "\u0002\u0002\u0002\u0002\u072d\u0003\u0002\u0002\u0002\u0002\u072f\u0003", + "\u0002\u0002\u0002\u0002\u0731\u0003\u0002\u0002\u0002\u0002\u0733\u0003", + "\u0002\u0002\u0002\u0002\u0735\u0003\u0002\u0002\u0002\u0002\u0737\u0003", + "\u0002\u0002\u0002\u0002\u0739\u0003\u0002\u0002\u0002\u0002\u073b\u0003", + "\u0002\u0002\u0002\u0002\u073d\u0003\u0002\u0002\u0002\u0002\u073f\u0003", + "\u0002\u0002\u0002\u0002\u0741\u0003\u0002\u0002\u0002\u0002\u0743\u0003", + "\u0002\u0002\u0002\u0002\u0745\u0003\u0002\u0002\u0002\u0002\u0747\u0003", + "\u0002\u0002\u0002\u0002\u0749\u0003\u0002\u0002\u0002\u0002\u074b\u0003", + "\u0002\u0002\u0002\u0002\u074d\u0003\u0002\u0002\u0002\u0002\u074f\u0003", + "\u0002\u0002\u0002\u0002\u0751\u0003\u0002\u0002\u0002\u0002\u0753\u0003", + "\u0002\u0002\u0002\u0002\u0755\u0003\u0002\u0002\u0002\u0002\u0757\u0003", + "\u0002\u0002\u0002\u0002\u0759\u0003\u0002\u0002\u0002\u0002\u075b\u0003", + "\u0002\u0002\u0002\u0002\u075d\u0003\u0002\u0002\u0002\u0002\u075f\u0003", + "\u0002\u0002\u0002\u0002\u0761\u0003\u0002\u0002\u0002\u0002\u0763\u0003", + "\u0002\u0002\u0002\u0002\u0765\u0003\u0002\u0002\u0002\u0002\u0767\u0003", + "\u0002\u0002\u0002\u0002\u0769\u0003\u0002\u0002\u0002\u0002\u076b\u0003", + "\u0002\u0002\u0002\u0002\u076d\u0003\u0002\u0002\u0002\u0002\u076f\u0003", + "\u0002\u0002\u0002\u0002\u0771\u0003\u0002\u0002\u0002\u0002\u0773\u0003", + "\u0002\u0002\u0002\u0002\u0775\u0003\u0002\u0002\u0002\u0002\u0777\u0003", + "\u0002\u0002\u0002\u0002\u0779\u0003\u0002\u0002\u0002\u0002\u077b\u0003", + "\u0002\u0002\u0002\u0002\u077d\u0003\u0002\u0002\u0002\u0002\u077f\u0003", + "\u0002\u0002\u0002\u0002\u0781\u0003\u0002\u0002\u0002\u0002\u0783\u0003", + "\u0002\u0002\u0002\u0002\u0785\u0003\u0002\u0002\u0002\u0002\u0787\u0003", + "\u0002\u0002\u0002\u0002\u0789\u0003\u0002\u0002\u0002\u0002\u078b\u0003", + "\u0002\u0002\u0002\u0002\u078d\u0003\u0002\u0002\u0002\u0002\u078f\u0003", + "\u0002\u0002\u0002\u0002\u0791\u0003\u0002\u0002\u0002\u0002\u0793\u0003", + "\u0002\u0002\u0002\u0002\u0795\u0003\u0002\u0002\u0002\u0002\u0797\u0003", + "\u0002\u0002\u0002\u0002\u0799\u0003\u0002\u0002\u0002\u0002\u079b\u0003", + "\u0002\u0002\u0002\u0002\u079d\u0003\u0002\u0002\u0002\u0002\u079f\u0003", + "\u0002\u0002\u0002\u0002\u07a1\u0003\u0002\u0002\u0002\u0002\u07a3\u0003", + "\u0002\u0002\u0002\u0002\u07a5\u0003\u0002\u0002\u0002\u0002\u07a7\u0003", + "\u0002\u0002\u0002\u0002\u07a9\u0003\u0002\u0002\u0002\u0002\u07ab\u0003", + "\u0002\u0002\u0002\u0002\u07ad\u0003\u0002\u0002\u0002\u0002\u07af\u0003", + "\u0002\u0002\u0002\u0002\u07b1\u0003\u0002\u0002\u0002\u0002\u07b3\u0003", + "\u0002\u0002\u0002\u0002\u07b5\u0003\u0002\u0002\u0002\u0002\u07b7\u0003", + "\u0002\u0002\u0002\u0002\u07b9\u0003\u0002\u0002\u0002\u0002\u07bb\u0003", + "\u0002\u0002\u0002\u0002\u07bd\u0003\u0002\u0002\u0002\u0002\u07bf\u0003", + "\u0002\u0002\u0002\u0002\u07c1\u0003\u0002\u0002\u0002\u0002\u07c3\u0003", + "\u0002\u0002\u0002\u0002\u07c5\u0003\u0002\u0002\u0002\u0002\u07c7\u0003", + "\u0002\u0002\u0002\u0002\u07c9\u0003\u0002\u0002\u0002\u0002\u07cb\u0003", + "\u0002\u0002\u0002\u0002\u07cd\u0003\u0002\u0002\u0002\u0002\u07cf\u0003", + "\u0002\u0002\u0002\u0002\u07d1\u0003\u0002\u0002\u0002\u0002\u07d3\u0003", + "\u0002\u0002\u0002\u0002\u07d5\u0003\u0002\u0002\u0002\u0002\u07d7\u0003", + "\u0002\u0002\u0002\u0002\u07d9\u0003\u0002\u0002\u0002\u0002\u07db\u0003", + "\u0002\u0002\u0002\u0002\u07dd\u0003\u0002\u0002\u0002\u0002\u07df\u0003", + "\u0002\u0002\u0002\u0002\u07e1\u0003\u0002\u0002\u0002\u0002\u07e3\u0003", + "\u0002\u0002\u0002\u0002\u07e5\u0003\u0002\u0002\u0002\u0002\u07e7\u0003", + "\u0002\u0002\u0002\u0002\u07e9\u0003\u0002\u0002\u0002\u0002\u07eb\u0003", + "\u0002\u0002\u0002\u0002\u07ed\u0003\u0002\u0002\u0002\u0002\u07ef\u0003", + "\u0002\u0002\u0002\u0002\u07f1\u0003\u0002\u0002\u0002\u0002\u07f3\u0003", + "\u0002\u0002\u0002\u0002\u07f5\u0003\u0002\u0002\u0002\u0002\u07f7\u0003", + "\u0002\u0002\u0002\u0002\u07f9\u0003\u0002\u0002\u0002\u0002\u07fb\u0003", + "\u0002\u0002\u0002\u0002\u07fd\u0003\u0002\u0002\u0002\u0002\u07ff\u0003", + "\u0002\u0002\u0002\u0002\u0801\u0003\u0002\u0002\u0002\u0002\u0803\u0003", + "\u0002\u0002\u0002\u0002\u0805\u0003\u0002\u0002\u0002\u0002\u0807\u0003", + "\u0002\u0002\u0002\u0002\u0809\u0003\u0002\u0002\u0002\u0002\u080b\u0003", + "\u0002\u0002\u0002\u0002\u080d\u0003\u0002\u0002\u0002\u0002\u080f\u0003", + "\u0002\u0002\u0002\u0002\u0813\u0003\u0002\u0002\u0002\u0002\u0815\u0003", + "\u0002\u0002\u0002\u0002\u0817\u0003\u0002\u0002\u0002\u0002\u0819\u0003", + "\u0002\u0002\u0002\u0002\u081b\u0003\u0002\u0002\u0002\u0002\u081d\u0003", + "\u0002\u0002\u0002\u0002\u081f\u0003\u0002\u0002\u0002\u0002\u0821\u0003", + "\u0002\u0002\u0002\u0002\u0823\u0003\u0002\u0002\u0002\u0002\u0825\u0003", + "\u0002\u0002\u0002\u0002\u0827\u0003\u0002\u0002\u0002\u0002\u0829\u0003", + "\u0002\u0002\u0002\u0002\u082b\u0003\u0002\u0002\u0002\u0002\u082d\u0003", + "\u0002\u0002\u0002\u0002\u082f\u0003\u0002\u0002\u0002\u0002\u0831\u0003", + "\u0002\u0002\u0002\u0002\u0845\u0003\u0002\u0002\u0002\u0003\u0848\u0003", + "\u0002\u0002\u0002\u0005\u084e\u0003\u0002\u0002\u0002\u0007\u085c\u0003", + "\u0002\u0002\u0002\t\u0887\u0003\u0002\u0002\u0002\u000b\u088b\u0003", + "\u0002\u0002\u0002\r\u088f\u0003\u0002\u0002\u0002\u000f\u0893\u0003", + "\u0002\u0002\u0002\u0011\u0899\u0003\u0002\u0002\u0002\u0013\u08a0\u0003", + "\u0002\u0002\u0002\u0015\u08a8\u0003\u0002\u0002\u0002\u0017\u08ac\u0003", + "\u0002\u0002\u0002\u0019\u08af\u0003\u0002\u0002\u0002\u001b\u08b3\u0003", + "\u0002\u0002\u0002\u001d\u08ba\u0003\u0002\u0002\u0002\u001f\u08c2\u0003", + "\u0002\u0002\u0002!\u08c7\u0003\u0002\u0002\u0002#\u08ca\u0003\u0002", + "\u0002\u0002%\u08cf\u0003\u0002\u0002\u0002\'\u08d7\u0003\u0002\u0002", + "\u0002)\u08dc\u0003\u0002\u0002\u0002+\u08e1\u0003\u0002\u0002\u0002", + "-\u08e8\u0003\u0002\u0002\u0002/\u08f2\u0003\u0002\u0002\u00021\u08f8", + "\u0003\u0002\u0002\u00023\u0900\u0003\u0002\u0002\u00025\u0907\u0003", + "\u0002\u0002\u00027\u0911\u0003\u0002\u0002\u00029\u091c\u0003\u0002", + "\u0002\u0002;\u0925\u0003\u0002\u0002\u0002=\u092d\u0003\u0002\u0002", + "\u0002?\u0934\u0003\u0002\u0002\u0002A\u093a\u0003\u0002\u0002\u0002", + "C\u0942\u0003\u0002\u0002\u0002E\u094f\u0003\u0002\u0002\u0002G\u0956", + "\u0003\u0002\u0002\u0002I\u095f\u0003\u0002\u0002\u0002K\u0969\u0003", + "\u0002\u0002\u0002M\u0971\u0003\u0002\u0002\u0002O\u0979\u0003\u0002", + "\u0002\u0002Q\u0981\u0003\u0002\u0002\u0002S\u0988\u0003\u0002\u0002", + "\u0002U\u098d\u0003\u0002\u0002\u0002W\u0996\u0003\u0002\u0002\u0002", + "Y\u09a4\u0003\u0002\u0002\u0002[\u09b0\u0003\u0002\u0002\u0002]\u09b9", + "\u0003\u0002\u0002\u0002_\u09c5\u0003\u0002\u0002\u0002a\u09ca\u0003", + "\u0002\u0002\u0002c\u09cf\u0003\u0002\u0002\u0002e\u09d4\u0003\u0002", + "\u0002\u0002g\u09db\u0003\u0002\u0002\u0002i\u09e4\u0003\u0002\u0002", + "\u0002k\u09ec\u0003\u0002\u0002\u0002m\u09f3\u0003\u0002\u0002\u0002", + "o\u09f8\u0003\u0002\u0002\u0002q\u0a00\u0003\u0002\u0002\u0002s\u0a06", + "\u0003\u0002\u0002\u0002u\u0a0c\u0003\u0002\u0002\u0002w\u0a10\u0003", + "\u0002\u0002\u0002y\u0a16\u0003\u0002\u0002\u0002{\u0a1e\u0003\u0002", + "\u0002\u0002}\u0a23\u0003\u0002\u0002\u0002\u007f\u0a2c\u0003\u0002", + "\u0002\u0002\u0081\u0a36\u0003\u0002\u0002\u0002\u0083\u0a3a\u0003\u0002", + "\u0002\u0002\u0085\u0a40\u0003\u0002\u0002\u0002\u0087\u0a46\u0003\u0002", + "\u0002\u0002\u0089\u0a4d\u0003\u0002\u0002\u0002\u008b\u0a5b\u0003\u0002", + "\u0002\u0002\u008d\u0a5e\u0003\u0002\u0002\u0002\u008f\u0a65\u0003\u0002", + "\u0002\u0002\u0091\u0a68\u0003\u0002\u0002\u0002\u0093\u0a6e\u0003\u0002", + "\u0002\u0002\u0095\u0a75\u0003\u0002\u0002\u0002\u0097\u0a7b\u0003\u0002", + "\u0002\u0002\u0099\u0a81\u0003\u0002\u0002\u0002\u009b\u0a88\u0003\u0002", + "\u0002\u0002\u009d\u0a91\u0003\u0002\u0002\u0002\u009f\u0a96\u0003\u0002", + "\u0002\u0002\u00a1\u0a99\u0003\u0002\u0002\u0002\u00a3\u0aa1\u0003\u0002", + "\u0002\u0002\u00a5\u0aa6\u0003\u0002\u0002\u0002\u00a7\u0aaa\u0003\u0002", + "\u0002\u0002\u00a9\u0aaf\u0003\u0002\u0002\u0002\u00ab\u0ab4\u0003\u0002", + "\u0002\u0002\u00ad\u0abc\u0003\u0002\u0002\u0002\u00af\u0ac2\u0003\u0002", + "\u0002\u0002\u00b1\u0ac7\u0003\u0002\u0002\u0002\u00b3\u0acc\u0003\u0002", + "\u0002\u0002\u00b5\u0ad2\u0003\u0002\u0002\u0002\u00b7\u0ad9\u0003\u0002", + "\u0002\u0002\u00b9\u0adf\u0003\u0002\u0002\u0002\u00bb\u0ae4\u0003\u0002", + "\u0002\u0002\u00bd\u0ae9\u0003\u0002\u0002\u0002\u00bf\u0aee\u0003\u0002", + "\u0002\u0002\u00c1\u0afb\u0003\u0002\u0002\u0002\u00c3\u0b07\u0003\u0002", + "\u0002\u0002\u00c5\u0b25\u0003\u0002\u0002\u0002\u00c7\u0b2b\u0003\u0002", + "\u0002\u0002\u00c9\u0b34\u0003\u0002\u0002\u0002\u00cb\u0b3d\u0003\u0002", + "\u0002\u0002\u00cd\u0b45\u0003\u0002\u0002\u0002\u00cf\u0b49\u0003\u0002", + "\u0002\u0002\u00d1\u0b5c\u0003\u0002\u0002\u0002\u00d3\u0b61\u0003\u0002", + "\u0002\u0002\u00d5\u0b68\u0003\u0002\u0002\u0002\u00d7\u0b6b\u0003\u0002", + "\u0002\u0002\u00d9\u0b74\u0003\u0002\u0002\u0002\u00db\u0b7b\u0003\u0002", + "\u0002\u0002\u00dd\u0b86\u0003\u0002\u0002\u0002\u00df\u0b89\u0003\u0002", + "\u0002\u0002\u00e1\u0b8f\u0003\u0002\u0002\u0002\u00e3\u0b93\u0003\u0002", + "\u0002\u0002\u00e5\u0b99\u0003\u0002\u0002\u0002\u00e7\u0ba1\u0003\u0002", + "\u0002\u0002\u00e9\u0bab\u0003\u0002\u0002\u0002\u00eb\u0bb3\u0003\u0002", + "\u0002\u0002\u00ed\u0bbd\u0003\u0002\u0002\u0002\u00ef\u0bc3\u0003\u0002", + "\u0002\u0002\u00f1\u0bc9\u0003\u0002\u0002\u0002\u00f3\u0bce\u0003\u0002", + "\u0002\u0002\u00f5\u0bd4\u0003\u0002\u0002\u0002\u00f7\u0bdf\u0003\u0002", + "\u0002\u0002\u00f9\u0be6\u0003\u0002\u0002\u0002\u00fb\u0bee\u0003\u0002", + "\u0002\u0002\u00fd\u0bf5\u0003\u0002\u0002\u0002\u00ff\u0bfc\u0003\u0002", + "\u0002\u0002\u0101\u0c04\u0003\u0002\u0002\u0002\u0103\u0c0c\u0003\u0002", + "\u0002\u0002\u0105\u0c15\u0003\u0002\u0002\u0002\u0107\u0c1e\u0003\u0002", + "\u0002\u0002\u0109\u0c25\u0003\u0002\u0002\u0002\u010b\u0c2c\u0003\u0002", + "\u0002\u0002\u010d\u0c32\u0003\u0002\u0002\u0002\u010f\u0c38\u0003\u0002", + "\u0002\u0002\u0111\u0c3f\u0003\u0002\u0002\u0002\u0113\u0c47\u0003\u0002", + "\u0002\u0002\u0115\u0c4e\u0003\u0002\u0002\u0002\u0117\u0c52\u0003\u0002", + "\u0002\u0002\u0119\u0c5c\u0003\u0002\u0002\u0002\u011b\u0c61\u0003\u0002", + "\u0002\u0002\u011d\u0c68\u0003\u0002\u0002\u0002\u011f\u0c70\u0003\u0002", + "\u0002\u0002\u0121\u0c74\u0003\u0002\u0002\u0002\u0123\u0c81\u0003\u0002", + "\u0002\u0002\u0125\u0c8a\u0003\u0002\u0002\u0002\u0127\u0c95\u0003\u0002", + "\u0002\u0002\u0129\u0ca4\u0003\u0002\u0002\u0002\u012b\u0cb8\u0003\u0002", + "\u0002\u0002\u012d\u0cc9\u0003\u0002\u0002\u0002\u012f\u0ccd\u0003\u0002", + "\u0002\u0002\u0131\u0cd5\u0003\u0002\u0002\u0002\u0133\u0cde\u0003\u0002", + "\u0002\u0002\u0135\u0cec\u0003\u0002\u0002\u0002\u0137\u0cf2\u0003\u0002", + "\u0002\u0002\u0139\u0cfd\u0003\u0002\u0002\u0002\u013b\u0d02\u0003\u0002", + "\u0002\u0002\u013d\u0d05\u0003\u0002\u0002\u0002\u013f\u0d0e\u0003\u0002", + "\u0002\u0002\u0141\u0d16\u0003\u0002\u0002\u0002\u0143\u0d1b\u0003\u0002", + "\u0002\u0002\u0145\u0d20\u0003\u0002\u0002\u0002\u0147\u0d26\u0003\u0002", + "\u0002\u0002\u0149\u0d2d\u0003\u0002\u0002\u0002\u014b\u0d34\u0003\u0002", + "\u0002\u0002\u014d\u0d3d\u0003\u0002\u0002\u0002\u014f\u0d44\u0003\u0002", + "\u0002\u0002\u0151\u0d4a\u0003\u0002\u0002\u0002\u0153\u0d4e\u0003\u0002", + "\u0002\u0002\u0155\u0d54\u0003\u0002\u0002\u0002\u0157\u0d5b\u0003\u0002", + "\u0002\u0002\u0159\u0d60\u0003\u0002\u0002\u0002\u015b\u0d66\u0003\u0002", + "\u0002\u0002\u015d\u0d6c\u0003\u0002\u0002\u0002\u015f\u0d71\u0003\u0002", + "\u0002\u0002\u0161\u0d77\u0003\u0002\u0002\u0002\u0163\u0d7b\u0003\u0002", + "\u0002\u0002\u0165\u0d84\u0003\u0002\u0002\u0002\u0167\u0d8c\u0003\u0002", + "\u0002\u0002\u0169\u0d95\u0003\u0002\u0002\u0002\u016b\u0d9f\u0003\u0002", + "\u0002\u0002\u016d\u0da9\u0003\u0002\u0002\u0002\u016f\u0dad\u0003\u0002", + "\u0002\u0002\u0171\u0db2\u0003\u0002\u0002\u0002\u0173\u0db7\u0003\u0002", + "\u0002\u0002\u0175\u0dbc\u0003\u0002\u0002\u0002\u0177\u0dc1\u0003\u0002", + "\u0002\u0002\u0179\u0dc6\u0003\u0002\u0002\u0002\u017b\u0dce\u0003\u0002", + "\u0002\u0002\u017d\u0dd5\u0003\u0002\u0002\u0002\u017f\u0dda\u0003\u0002", + "\u0002\u0002\u0181\u0de1\u0003\u0002\u0002\u0002\u0183\u0deb\u0003\u0002", + "\u0002\u0002\u0185\u0df1\u0003\u0002\u0002\u0002\u0187\u0df8\u0003\u0002", + "\u0002\u0002\u0189\u0dff\u0003\u0002\u0002\u0002\u018b\u0e07\u0003\u0002", + "\u0002\u0002\u018d\u0e0b\u0003\u0002\u0002\u0002\u018f\u0e13\u0003\u0002", + "\u0002\u0002\u0191\u0e18\u0003\u0002\u0002\u0002\u0193\u0e1d\u0003\u0002", + "\u0002\u0002\u0195\u0e27\u0003\u0002\u0002\u0002\u0197\u0e30\u0003\u0002", + "\u0002\u0002\u0199\u0e35\u0003\u0002\u0002\u0002\u019b\u0e3a\u0003\u0002", + "\u0002\u0002\u019d\u0e42\u0003\u0002\u0002\u0002\u019f\u0e4b\u0003\u0002", + "\u0002\u0002\u01a1\u0e54\u0003\u0002\u0002\u0002\u01a3\u0e5b\u0003\u0002", + "\u0002\u0002\u01a5\u0e65\u0003\u0002\u0002\u0002\u01a7\u0e6e\u0003\u0002", + "\u0002\u0002\u01a9\u0e73\u0003\u0002\u0002\u0002\u01ab\u0e7e\u0003\u0002", + "\u0002\u0002\u01ad\u0e83\u0003\u0002\u0002\u0002\u01af\u0e8c\u0003\u0002", + "\u0002\u0002\u01b1\u0e95\u0003\u0002\u0002\u0002\u01b3\u0e9a\u0003\u0002", + "\u0002\u0002\u01b5\u0ea5\u0003\u0002\u0002\u0002\u01b7\u0eae\u0003\u0002", + "\u0002\u0002\u01b9\u0eb3\u0003\u0002\u0002\u0002\u01bb\u0ebb\u0003\u0002", + "\u0002\u0002\u01bd\u0ec2\u0003\u0002\u0002\u0002\u01bf\u0ecd\u0003\u0002", + "\u0002\u0002\u01c1\u0ed6\u0003\u0002\u0002\u0002\u01c3\u0ee1\u0003\u0002", + "\u0002\u0002\u01c5\u0eec\u0003\u0002\u0002\u0002\u01c7\u0ef8\u0003\u0002", + "\u0002\u0002\u01c9\u0f04\u0003\u0002\u0002\u0002\u01cb\u0f12\u0003\u0002", + "\u0002\u0002\u01cd\u0f25\u0003\u0002\u0002\u0002\u01cf\u0f38\u0003\u0002", + "\u0002\u0002\u01d1\u0f49\u0003\u0002\u0002\u0002\u01d3\u0f59\u0003\u0002", + "\u0002\u0002\u01d5\u0f64\u0003\u0002\u0002\u0002\u01d7\u0f76\u0003\u0002", + "\u0002\u0002\u01d9\u0f7a\u0003\u0002\u0002\u0002\u01db\u0f82\u0003\u0002", + "\u0002\u0002\u01dd\u0f89\u0003\u0002\u0002\u0002\u01df\u0f91\u0003\u0002", + "\u0002\u0002\u01e1\u0f97\u0003\u0002\u0002\u0002\u01e3\u0fa4\u0003\u0002", + "\u0002\u0002\u01e5\u0fa8\u0003\u0002\u0002\u0002\u01e7\u0fac\u0003\u0002", + "\u0002\u0002\u01e9\u0fb0\u0003\u0002\u0002\u0002\u01eb\u0fb7\u0003\u0002", + "\u0002\u0002\u01ed\u0fc2\u0003\u0002\u0002\u0002\u01ef\u0fce\u0003\u0002", + "\u0002\u0002\u01f1\u0fd2\u0003\u0002\u0002\u0002\u01f3\u0fda\u0003\u0002", + "\u0002\u0002\u01f5\u0fe3\u0003\u0002\u0002\u0002\u01f7\u0fec\u0003\u0002", + "\u0002\u0002\u01f9\u0ff9\u0003\u0002\u0002\u0002\u01fb\u1006\u0003\u0002", + "\u0002\u0002\u01fd\u1018\u0003\u0002\u0002\u0002\u01ff\u1022\u0003\u0002", + "\u0002\u0002\u0201\u102a\u0003\u0002\u0002\u0002\u0203\u1032\u0003\u0002", + "\u0002\u0002\u0205\u103b\u0003\u0002\u0002\u0002\u0207\u1044\u0003\u0002", + "\u0002\u0002\u0209\u104c\u0003\u0002\u0002\u0002\u020b\u105b\u0003\u0002", + "\u0002\u0002\u020d\u105f\u0003\u0002\u0002\u0002\u020f\u1068\u0003\u0002", + "\u0002\u0002\u0211\u106f\u0003\u0002\u0002\u0002\u0213\u1079\u0003\u0002", + "\u0002\u0002\u0215\u1081\u0003\u0002\u0002\u0002\u0217\u1086\u0003\u0002", + "\u0002\u0002\u0219\u108f\u0003\u0002\u0002\u0002\u021b\u1098\u0003\u0002", + "\u0002\u0002\u021d\u10a6\u0003\u0002\u0002\u0002\u021f\u10ae\u0003\u0002", + "\u0002\u0002\u0221\u10b5\u0003\u0002\u0002\u0002\u0223\u10bb\u0003\u0002", + "\u0002\u0002\u0225\u10c5\u0003\u0002\u0002\u0002\u0227\u10cf\u0003\u0002", + "\u0002\u0002\u0229\u10d3\u0003\u0002\u0002\u0002\u022b\u10d6\u0003\u0002", + "\u0002\u0002\u022d\u10de\u0003\u0002\u0002\u0002\u022f\u10e9\u0003\u0002", + "\u0002\u0002\u0231\u10f9\u0003\u0002\u0002\u0002\u0233\u1108\u0003\u0002", + "\u0002\u0002\u0235\u1117\u0003\u0002\u0002\u0002\u0237\u111d\u0003\u0002", + "\u0002\u0002\u0239\u1124\u0003\u0002\u0002\u0002\u023b\u1128\u0003\u0002", + "\u0002\u0002\u023d\u112e\u0003\u0002\u0002\u0002\u023f\u1133\u0003\u0002", + "\u0002\u0002\u0241\u113b\u0003\u0002\u0002\u0002\u0243\u1141\u0003\u0002", + "\u0002\u0002\u0245\u1147\u0003\u0002\u0002\u0002\u0247\u1150\u0003\u0002", + "\u0002\u0002\u0249\u1156\u0003\u0002\u0002\u0002\u024b\u115e\u0003\u0002", + "\u0002\u0002\u024d\u1166\u0003\u0002\u0002\u0002\u024f\u116f\u0003\u0002", + "\u0002\u0002\u0251\u117d\u0003\u0002\u0002\u0002\u0253\u1184\u0003\u0002", + "\u0002\u0002\u0255\u1191\u0003\u0002\u0002\u0002\u0257\u1198\u0003\u0002", + "\u0002\u0002\u0259\u119e\u0003\u0002\u0002\u0002\u025b\u11a7\u0003\u0002", + "\u0002\u0002\u025d\u11ac\u0003\u0002\u0002\u0002\u025f\u11b4\u0003\u0002", + "\u0002\u0002\u0261\u11c2\u0003\u0002\u0002\u0002\u0263\u11ce\u0003\u0002", + "\u0002\u0002\u0265\u11d6\u0003\u0002\u0002\u0002\u0267\u11dd\u0003\u0002", + "\u0002\u0002\u0269\u11e5\u0003\u0002\u0002\u0002\u026b\u11f0\u0003\u0002", + "\u0002\u0002\u026d\u11fb\u0003\u0002\u0002\u0002\u026f\u1207\u0003\u0002", + "\u0002\u0002\u0271\u1212\u0003\u0002\u0002\u0002\u0273\u121d\u0003\u0002", + "\u0002\u0002\u0275\u1228\u0003\u0002\u0002\u0002\u0277\u123b\u0003\u0002", + "\u0002\u0002\u0279\u124d\u0003\u0002\u0002\u0002\u027b\u125d\u0003\u0002", + "\u0002\u0002\u027d\u1266\u0003\u0002\u0002\u0002\u027f\u126e\u0003\u0002", + "\u0002\u0002\u0281\u127b\u0003\u0002\u0002\u0002\u0283\u1280\u0003\u0002", + "\u0002\u0002\u0285\u1284\u0003\u0002\u0002\u0002\u0287\u1290\u0003\u0002", + "\u0002\u0002\u0289\u1295\u0003\u0002\u0002\u0002\u028b\u129e\u0003\u0002", + "\u0002\u0002\u028d\u12a9\u0003\u0002\u0002\u0002\u028f\u12b6\u0003\u0002", + "\u0002\u0002\u0291\u12be\u0003\u0002\u0002\u0002\u0293\u12ce\u0003\u0002", + "\u0002\u0002\u0295\u12db\u0003\u0002\u0002\u0002\u0297\u12e5\u0003\u0002", + "\u0002\u0002\u0299\u12ed\u0003\u0002\u0002\u0002\u029b\u12f5\u0003\u0002", + "\u0002\u0002\u029d\u12fa\u0003\u0002\u0002\u0002\u029f\u12fd\u0003\u0002", + "\u0002\u0002\u02a1\u1306\u0003\u0002\u0002\u0002\u02a3\u1310\u0003\u0002", + "\u0002\u0002\u02a5\u1318\u0003\u0002\u0002\u0002\u02a7\u131f\u0003\u0002", + "\u0002\u0002\u02a9\u132a\u0003\u0002\u0002\u0002\u02ab\u132e\u0003\u0002", + "\u0002\u0002\u02ad\u1333\u0003\u0002\u0002\u0002\u02af\u133a\u0003\u0002", + "\u0002\u0002\u02b1\u1342\u0003\u0002\u0002\u0002\u02b3\u1348\u0003\u0002", + "\u0002\u0002\u02b5\u134f\u0003\u0002\u0002\u0002\u02b7\u1356\u0003\u0002", + "\u0002\u0002\u02b9\u135b\u0003\u0002\u0002\u0002\u02bb\u1361\u0003\u0002", + "\u0002\u0002\u02bd\u1368\u0003\u0002\u0002\u0002\u02bf\u136e\u0003\u0002", + "\u0002\u0002\u02c1\u1377\u0003\u0002\u0002\u0002\u02c3\u1381\u0003\u0002", + "\u0002\u0002\u02c5\u1388\u0003\u0002\u0002\u0002\u02c7\u138f\u0003\u0002", + "\u0002\u0002\u02c9\u1398\u0003\u0002\u0002\u0002\u02cb\u13a4\u0003\u0002", + "\u0002\u0002\u02cd\u13a9\u0003\u0002\u0002\u0002\u02cf\u13b0\u0003\u0002", + "\u0002\u0002\u02d1\u13b7\u0003\u0002\u0002\u0002\u02d3\u13c7\u0003\u0002", + "\u0002\u0002\u02d5\u13ce\u0003\u0002\u0002\u0002\u02d7\u13d4\u0003\u0002", + "\u0002\u0002\u02d9\u13da\u0003\u0002\u0002\u0002\u02db\u13e0\u0003\u0002", + "\u0002\u0002\u02dd\u13e8\u0003\u0002\u0002\u0002\u02df\u13ee\u0003\u0002", + "\u0002\u0002\u02e1\u13f3\u0003\u0002\u0002\u0002\u02e3\u13fc\u0003\u0002", + "\u0002\u0002\u02e5\u1404\u0003\u0002\u0002\u0002\u02e7\u140b\u0003\u0002", + "\u0002\u0002\u02e9\u1412\u0003\u0002\u0002\u0002\u02eb\u1424\u0003\u0002", + "\u0002\u0002\u02ed\u142c\u0003\u0002\u0002\u0002\u02ef\u1431\u0003\u0002", + "\u0002\u0002\u02f1\u1436\u0003\u0002\u0002\u0002\u02f3\u143b\u0003\u0002", + "\u0002\u0002\u02f5\u1441\u0003\u0002\u0002\u0002\u02f7\u144c\u0003\u0002", + "\u0002\u0002\u02f9\u145e\u0003\u0002\u0002\u0002\u02fb\u1465\u0003\u0002", + "\u0002\u0002\u02fd\u146d\u0003\u0002\u0002\u0002\u02ff\u147a\u0003\u0002", + "\u0002\u0002\u0301\u1482\u0003\u0002\u0002\u0002\u0303\u1490\u0003\u0002", + "\u0002\u0002\u0305\u1498\u0003\u0002\u0002\u0002\u0307\u14a1\u0003\u0002", + "\u0002\u0002\u0309\u14ab\u0003\u0002\u0002\u0002\u030b\u14b3\u0003\u0002", + "\u0002\u0002\u030d\u14b6\u0003\u0002\u0002\u0002\u030f\u14c0\u0003\u0002", + "\u0002\u0002\u0311\u14c4\u0003\u0002\u0002\u0002\u0313\u14ce\u0003\u0002", + "\u0002\u0002\u0315\u14d5\u0003\u0002\u0002\u0002\u0317\u14da\u0003\u0002", + "\u0002\u0002\u0319\u14e9\u0003\u0002\u0002\u0002\u031b\u14f2\u0003\u0002", + "\u0002\u0002\u031d\u14f7\u0003\u0002\u0002\u0002\u031f\u14fe\u0003\u0002", + "\u0002\u0002\u0321\u1503\u0003\u0002\u0002\u0002\u0323\u1509\u0003\u0002", + "\u0002\u0002\u0325\u150e\u0003\u0002\u0002\u0002\u0327\u1514\u0003\u0002", + "\u0002\u0002\u0329\u151c\u0003\u0002\u0002\u0002\u032b\u1521\u0003\u0002", + "\u0002\u0002\u032d\u1528\u0003\u0002\u0002\u0002\u032f\u153d\u0003\u0002", + "\u0002\u0002\u0331\u1552\u0003\u0002\u0002\u0002\u0333\u155f\u0003\u0002", + "\u0002\u0002\u0335\u1577\u0003\u0002\u0002\u0002\u0337\u1583\u0003\u0002", + "\u0002\u0002\u0339\u1593\u0003\u0002\u0002\u0002\u033b\u15a2\u0003\u0002", + "\u0002\u0002\u033d\u15b2\u0003\u0002\u0002\u0002\u033f\u15be\u0003\u0002", + "\u0002\u0002\u0341\u15d1\u0003\u0002\u0002\u0002\u0343\u15dc\u0003\u0002", + "\u0002\u0002\u0345\u15ea\u0003\u0002\u0002\u0002\u0347\u15fc\u0003\u0002", + "\u0002\u0002\u0349\u160c\u0003\u0002\u0002\u0002\u034b\u161e\u0003\u0002", + "\u0002\u0002\u034d\u162d\u0003\u0002\u0002\u0002\u034f\u1640\u0003\u0002", + "\u0002\u0002\u0351\u164f\u0003\u0002\u0002\u0002\u0353\u1662\u0003\u0002", + "\u0002\u0002\u0355\u166e\u0003\u0002\u0002\u0002\u0357\u1687\u0003\u0002", + "\u0002\u0002\u0359\u169c\u0003\u0002\u0002\u0002\u035b\u16a5\u0003\u0002", + "\u0002\u0002\u035d\u16ae\u0003\u0002\u0002\u0002\u035f\u16c3\u0003\u0002", + "\u0002\u0002\u0361\u16d8\u0003\u0002\u0002\u0002\u0363\u16df\u0003\u0002", + "\u0002\u0002\u0365\u16e5\u0003\u0002\u0002\u0002\u0367\u16f2\u0003\u0002", + "\u0002\u0002\u0369\u16f6\u0003\u0002\u0002\u0002\u036b\u16fe\u0003\u0002", + "\u0002\u0002\u036d\u1707\u0003\u0002\u0002\u0002\u036f\u170c\u0003\u0002", + "\u0002\u0002\u0371\u1713\u0003\u0002\u0002\u0002\u0373\u1719\u0003\u0002", + "\u0002\u0002\u0375\u171f\u0003\u0002\u0002\u0002\u0377\u172b\u0003\u0002", + "\u0002\u0002\u0379\u1730\u0003\u0002\u0002\u0002\u037b\u1736\u0003\u0002", + "\u0002\u0002\u037d\u173c\u0003\u0002\u0002\u0002\u037f\u1742\u0003\u0002", + "\u0002\u0002\u0381\u1747\u0003\u0002\u0002\u0002\u0383\u174a\u0003\u0002", + "\u0002\u0002\u0385\u1754\u0003\u0002\u0002\u0002\u0387\u1759\u0003\u0002", + "\u0002\u0002\u0389\u1761\u0003\u0002\u0002\u0002\u038b\u1768\u0003\u0002", + "\u0002\u0002\u038d\u176b\u0003\u0002\u0002\u0002\u038f\u1778\u0003\u0002", + "\u0002\u0002\u0391\u177c\u0003\u0002\u0002\u0002\u0393\u1783\u0003\u0002", + "\u0002\u0002\u0395\u1788\u0003\u0002\u0002\u0002\u0397\u178d\u0003\u0002", + "\u0002\u0002\u0399\u179d\u0003\u0002\u0002\u0002\u039b\u17a5\u0003\u0002", + "\u0002\u0002\u039d\u17ab\u0003\u0002\u0002\u0002\u039f\u17b5\u0003\u0002", + "\u0002\u0002\u03a1\u17ba\u0003\u0002\u0002\u0002\u03a3\u17c1\u0003\u0002", + "\u0002\u0002\u03a5\u17c9\u0003\u0002\u0002\u0002\u03a7\u17d6\u0003\u0002", + "\u0002\u0002\u03a9\u17e1\u0003\u0002\u0002\u0002\u03ab\u17ea\u0003\u0002", + "\u0002\u0002\u03ad\u17f0\u0003\u0002\u0002\u0002\u03af\u17f7\u0003\u0002", + "\u0002\u0002\u03b1\u1802\u0003\u0002\u0002\u0002\u03b3\u180a\u0003\u0002", + "\u0002\u0002\u03b5\u180f\u0003\u0002\u0002\u0002\u03b7\u1818\u0003\u0002", + "\u0002\u0002\u03b9\u1820\u0003\u0002\u0002\u0002\u03bb\u1829\u0003\u0002", + "\u0002\u0002\u03bd\u182e\u0003\u0002\u0002\u0002\u03bf\u183a\u0003\u0002", + "\u0002\u0002\u03c1\u1842\u0003\u0002\u0002\u0002\u03c3\u184b\u0003\u0002", + "\u0002\u0002\u03c5\u1851\u0003\u0002\u0002\u0002\u03c7\u1857\u0003\u0002", + "\u0002\u0002\u03c9\u185d\u0003\u0002\u0002\u0002\u03cb\u1865\u0003\u0002", + "\u0002\u0002\u03cd\u186d\u0003\u0002\u0002\u0002\u03cf\u187e\u0003\u0002", + "\u0002\u0002\u03d1\u1888\u0003\u0002\u0002\u0002\u03d3\u188e\u0003\u0002", + "\u0002\u0002\u03d5\u189d\u0003\u0002\u0002\u0002\u03d7\u18ab\u0003\u0002", + "\u0002\u0002\u03d9\u18b4\u0003\u0002\u0002\u0002\u03db\u18bb\u0003\u0002", + "\u0002\u0002\u03dd\u18c6\u0003\u0002\u0002\u0002\u03df\u18cd\u0003\u0002", + "\u0002\u0002\u03e1\u18dd\u0003\u0002\u0002\u0002\u03e3\u18f0\u0003\u0002", + "\u0002\u0002\u03e5\u1904\u0003\u0002\u0002\u0002\u03e7\u191b\u0003\u0002", + "\u0002\u0002\u03e9\u1930\u0003\u0002\u0002\u0002\u03eb\u1948\u0003\u0002", + "\u0002\u0002\u03ed\u1964\u0003\u0002\u0002\u0002\u03ef\u1970\u0003\u0002", + "\u0002\u0002\u03f1\u1976\u0003\u0002\u0002\u0002\u03f3\u197d\u0003\u0002", + "\u0002\u0002\u03f5\u198f\u0003\u0002\u0002\u0002\u03f7\u1997\u0003\u0002", + "\u0002\u0002\u03f9\u199c\u0003\u0002\u0002\u0002\u03fb\u19a5\u0003\u0002", + "\u0002\u0002\u03fd\u19ac\u0003\u0002\u0002\u0002\u03ff\u19b3\u0003\u0002", + "\u0002\u0002\u0401\u19b7\u0003\u0002\u0002\u0002\u0403\u19bc\u0003\u0002", + "\u0002\u0002\u0405\u19c7\u0003\u0002\u0002\u0002\u0407\u19d1\u0003\u0002", + "\u0002\u0002\u0409\u19da\u0003\u0002\u0002\u0002\u040b\u19e3\u0003\u0002", + "\u0002\u0002\u040d\u19ea\u0003\u0002\u0002\u0002\u040f\u19f2\u0003\u0002", + "\u0002\u0002\u0411\u19f8\u0003\u0002\u0002\u0002\u0413\u19ff\u0003\u0002", + "\u0002\u0002\u0415\u1a06\u0003\u0002\u0002\u0002\u0417\u1a0d\u0003\u0002", + "\u0002\u0002\u0419\u1a13\u0003\u0002\u0002\u0002\u041b\u1a18\u0003\u0002", + "\u0002\u0002\u041d\u1a21\u0003\u0002\u0002\u0002\u041f\u1a28\u0003\u0002", + "\u0002\u0002\u0421\u1a2d\u0003\u0002\u0002\u0002\u0423\u1a34\u0003\u0002", + "\u0002\u0002\u0425\u1a3b\u0003\u0002\u0002\u0002\u0427\u1a42\u0003\u0002", + "\u0002\u0002\u0429\u1a52\u0003\u0002\u0002\u0002\u042b\u1a65\u0003\u0002", + "\u0002\u0002\u042d\u1a76\u0003\u0002\u0002\u0002\u042f\u1a88\u0003\u0002", + "\u0002\u0002\u0431\u1a92\u0003\u0002\u0002\u0002\u0433\u1a9f\u0003\u0002", + "\u0002\u0002\u0435\u1aaa\u0003\u0002\u0002\u0002\u0437\u1ab0\u0003\u0002", + "\u0002\u0002\u0439\u1ab7\u0003\u0002\u0002\u0002\u043b\u1ac9\u0003\u0002", + "\u0002\u0002\u043d\u1ada\u0003\u0002\u0002\u0002\u043f\u1aed\u0003\u0002", + "\u0002\u0002\u0441\u1af4\u0003\u0002\u0002\u0002\u0443\u1af9\u0003\u0002", + "\u0002\u0002\u0445\u1b01\u0003\u0002\u0002\u0002\u0447\u1b08\u0003\u0002", + "\u0002\u0002\u0449\u1b0f\u0003\u0002\u0002\u0002\u044b\u1b1f\u0003\u0002", + "\u0002\u0002\u044d\u1b27\u0003\u0002\u0002\u0002\u044f\u1b34\u0003\u0002", + "\u0002\u0002\u0451\u1b42\u0003\u0002\u0002\u0002\u0453\u1b4a\u0003\u0002", + "\u0002\u0002\u0455\u1b50\u0003\u0002\u0002\u0002\u0457\u1b59\u0003\u0002", + "\u0002\u0002\u0459\u1b64\u0003\u0002\u0002\u0002\u045b\u1b6f\u0003\u0002", + "\u0002\u0002\u045d\u1b79\u0003\u0002\u0002\u0002\u045f\u1b83\u0003\u0002", + "\u0002\u0002\u0461\u1b88\u0003\u0002\u0002\u0002\u0463\u1b94\u0003\u0002", + "\u0002\u0002\u0465\u1ba0\u0003\u0002\u0002\u0002\u0467\u1bae\u0003\u0002", + "\u0002\u0002\u0469\u1bb7\u0003\u0002\u0002\u0002\u046b\u1bc0\u0003\u0002", + "\u0002\u0002\u046d\u1bca\u0003\u0002\u0002\u0002\u046f\u1bd3\u0003\u0002", + "\u0002\u0002\u0471\u1be4\u0003\u0002\u0002\u0002\u0473\u1bee\u0003\u0002", + "\u0002\u0002\u0475\u1bf6\u0003\u0002\u0002\u0002\u0477\u1bfc\u0003\u0002", + "\u0002\u0002\u0479\u1c04\u0003\u0002\u0002\u0002\u047b\u1c09\u0003\u0002", + "\u0002\u0002\u047d\u1c11\u0003\u0002\u0002\u0002\u047f\u1c20\u0003\u0002", + "\u0002\u0002\u0481\u1c2b\u0003\u0002\u0002\u0002\u0483\u1c31\u0003\u0002", + "\u0002\u0002\u0485\u1c3b\u0003\u0002\u0002\u0002\u0487\u1c40\u0003\u0002", + "\u0002\u0002\u0489\u1c48\u0003\u0002\u0002\u0002\u048b\u1c50\u0003\u0002", + "\u0002\u0002\u048d\u1c55\u0003\u0002\u0002\u0002\u048f\u1c5e\u0003\u0002", + "\u0002\u0002\u0491\u1c66\u0003\u0002\u0002\u0002\u0493\u1c6b\u0003\u0002", + "\u0002\u0002\u0495\u1c73\u0003\u0002\u0002\u0002\u0497\u1c78\u0003\u0002", + "\u0002\u0002\u0499\u1c7b\u0003\u0002\u0002\u0002\u049b\u1c7f\u0003\u0002", + "\u0002\u0002\u049d\u1c83\u0003\u0002\u0002\u0002\u049f\u1c87\u0003\u0002", + "\u0002\u0002\u04a1\u1c8b\u0003\u0002\u0002\u0002\u04a3\u1c8f\u0003\u0002", + "\u0002\u0002\u04a5\u1c98\u0003\u0002\u0002\u0002\u04a7\u1ca0\u0003\u0002", + "\u0002\u0002\u04a9\u1ca6\u0003\u0002\u0002\u0002\u04ab\u1caa\u0003\u0002", + "\u0002\u0002\u04ad\u1caf\u0003\u0002\u0002\u0002\u04af\u1cb6\u0003\u0002", + "\u0002\u0002\u04b1\u1cbb\u0003\u0002\u0002\u0002\u04b3\u1cc2\u0003\u0002", + "\u0002\u0002\u04b5\u1cce\u0003\u0002\u0002\u0002\u04b7\u1cd5\u0003\u0002", + "\u0002\u0002\u04b9\u1cdd\u0003\u0002\u0002\u0002\u04bb\u1ce5\u0003\u0002", + "\u0002\u0002\u04bd\u1cea\u0003\u0002\u0002\u0002\u04bf\u1cf2\u0003\u0002", + "\u0002\u0002\u04c1\u1cf9\u0003\u0002\u0002\u0002\u04c3\u1d02\u0003\u0002", + "\u0002\u0002\u04c5\u1d08\u0003\u0002\u0002\u0002\u04c7\u1d13\u0003\u0002", + "\u0002\u0002\u04c9\u1d2e\u0003\u0002\u0002\u0002\u04cb\u1d3a\u0003\u0002", + "\u0002\u0002\u04cd\u1d47\u0003\u0002\u0002\u0002\u04cf\u1d54\u0003\u0002", + "\u0002\u0002\u04d1\u1d6c\u0003\u0002\u0002\u0002\u04d3\u1d78\u0003\u0002", + "\u0002\u0002\u04d5\u1d89\u0003\u0002\u0002\u0002\u04d7\u1d9e\u0003\u0002", + "\u0002\u0002\u04d9\u1dad\u0003\u0002\u0002\u0002\u04db\u1dbb\u0003\u0002", + "\u0002\u0002\u04dd\u1dd3\u0003\u0002\u0002\u0002\u04df\u1deb\u0003\u0002", + "\u0002\u0002\u04e1\u1dfb\u0003\u0002\u0002\u0002\u04e3\u1e16\u0003\u0002", + "\u0002\u0002\u04e5\u1e2a\u0003\u0002\u0002\u0002\u04e7\u1e42\u0003\u0002", + "\u0002\u0002\u04e9\u1e57\u0003\u0002\u0002\u0002\u04eb\u1e6b\u0003\u0002", + "\u0002\u0002\u04ed\u1e77\u0003\u0002\u0002\u0002\u04ef\u1e94\u0003\u0002", + "\u0002\u0002\u04f1\u1ea0\u0003\u0002\u0002\u0002\u04f3\u1ead\u0003\u0002", + "\u0002\u0002\u04f5\u1ec4\u0003\u0002\u0002\u0002\u04f7\u1edb\u0003\u0002", + "\u0002\u0002\u04f9\u1eef\u0003\u0002\u0002\u0002\u04fb\u1f00\u0003\u0002", + "\u0002\u0002\u04fd\u1f09\u0003\u0002\u0002\u0002\u04ff\u1f0f\u0003\u0002", + "\u0002\u0002\u0501\u1f14\u0003\u0002\u0002\u0002\u0503\u1f1b\u0003\u0002", + "\u0002\u0002\u0505\u1f22\u0003\u0002\u0002\u0002\u0507\u1f29\u0003\u0002", + "\u0002\u0002\u0509\u1f30\u0003\u0002\u0002\u0002\u050b\u1f36\u0003\u0002", + "\u0002\u0002\u050d\u1f3c\u0003\u0002\u0002\u0002\u050f\u1f42\u0003\u0002", + "\u0002\u0002\u0511\u1f48\u0003\u0002\u0002\u0002\u0513\u1f4d\u0003\u0002", + "\u0002\u0002\u0515\u1f55\u0003\u0002\u0002\u0002\u0517\u1f5b\u0003\u0002", + "\u0002\u0002\u0519\u1f62\u0003\u0002\u0002\u0002\u051b\u1f66\u0003\u0002", + "\u0002\u0002\u051d\u1f6e\u0003\u0002\u0002\u0002\u051f\u1f74\u0003\u0002", + "\u0002\u0002\u0521\u1f7b\u0003\u0002\u0002\u0002\u0523\u1f7f\u0003\u0002", + "\u0002\u0002\u0525\u1f87\u0003\u0002\u0002\u0002\u0527\u1f8d\u0003\u0002", + "\u0002\u0002\u0529\u1f93\u0003\u0002\u0002\u0002\u052b\u1f9a\u0003\u0002", + "\u0002\u0002\u052d\u1fa1\u0003\u0002\u0002\u0002\u052f\u1fa8\u0003\u0002", + "\u0002\u0002\u0531\u1faf\u0003\u0002\u0002\u0002\u0533\u1fb5\u0003\u0002", + "\u0002\u0002\u0535\u1fbe\u0003\u0002\u0002\u0002\u0537\u1fc3\u0003\u0002", + "\u0002\u0002\u0539\u1fc8\u0003\u0002\u0002\u0002\u053b\u1fcf\u0003\u0002", + "\u0002\u0002\u053d\u1fd4\u0003\u0002\u0002\u0002\u053f\u1fd9\u0003\u0002", + "\u0002\u0002\u0541\u1fdf\u0003\u0002\u0002\u0002\u0543\u1fe7\u0003\u0002", + "\u0002\u0002\u0545\u1fed\u0003\u0002\u0002\u0002\u0547\u1ff2\u0003\u0002", + "\u0002\u0002\u0549\u1ffa\u0003\u0002\u0002\u0002\u054b\u2002\u0003\u0002", + "\u0002\u0002\u054d\u200a\u0003\u0002\u0002\u0002\u054f\u2014\u0003\u0002", + "\u0002\u0002\u0551\u2018\u0003\u0002\u0002\u0002\u0553\u2022\u0003\u0002", + "\u0002\u0002\u0555\u2029\u0003\u0002\u0002\u0002\u0557\u2030\u0003\u0002", + "\u0002\u0002\u0559\u203b\u0003\u0002\u0002\u0002\u055b\u2042\u0003\u0002", + "\u0002\u0002\u055d\u2046\u0003\u0002\u0002\u0002\u055f\u2051\u0003\u0002", + "\u0002\u0002\u0561\u2064\u0003\u0002\u0002\u0002\u0563\u206b\u0003\u0002", + "\u0002\u0002\u0565\u2076\u0003\u0002\u0002\u0002\u0567\u2080\u0003\u0002", + "\u0002\u0002\u0569\u208c\u0003\u0002\u0002\u0002\u056b\u2099\u0003\u0002", + "\u0002\u0002\u056d\u20ac\u0003\u0002\u0002\u0002\u056f\u20bb\u0003\u0002", + "\u0002\u0002\u0571\u20c4\u0003\u0002\u0002\u0002\u0573\u20cf\u0003\u0002", + "\u0002\u0002\u0575\u20df\u0003\u0002\u0002\u0002\u0577\u20ea\u0003\u0002", + "\u0002\u0002\u0579\u20f7\u0003\u0002\u0002\u0002\u057b\u20fd\u0003\u0002", + "\u0002\u0002\u057d\u2105\u0003\u0002\u0002\u0002\u057f\u2109\u0003\u0002", + "\u0002\u0002\u0581\u210e\u0003\u0002\u0002\u0002\u0583\u2116\u0003\u0002", + "\u0002\u0002\u0585\u211e\u0003\u0002\u0002\u0002\u0587\u212a\u0003\u0002", + "\u0002\u0002\u0589\u2136\u0003\u0002\u0002\u0002\u058b\u213b\u0003\u0002", + "\u0002\u0002\u058d\u2144\u0003\u0002\u0002\u0002\u058f\u2149\u0003\u0002", + "\u0002\u0002\u0591\u2150\u0003\u0002\u0002\u0002\u0593\u2156\u0003\u0002", + "\u0002\u0002\u0595\u215c\u0003\u0002\u0002\u0002\u0597\u216f\u0003\u0002", + "\u0002\u0002\u0599\u2181\u0003\u0002\u0002\u0002\u059b\u2194\u0003\u0002", + "\u0002\u0002\u059d\u21a4\u0003\u0002\u0002\u0002\u059f\u21b6\u0003\u0002", + "\u0002\u0002\u05a1\u21bb\u0003\u0002\u0002\u0002\u05a3\u21c1\u0003\u0002", + "\u0002\u0002\u05a5\u21cb\u0003\u0002\u0002\u0002\u05a7\u21cf\u0003\u0002", + "\u0002\u0002\u05a9\u21d9\u0003\u0002\u0002\u0002\u05ab\u21e4\u0003\u0002", + "\u0002\u0002\u05ad\u21eb\u0003\u0002\u0002\u0002\u05af\u21f8\u0003\u0002", + "\u0002\u0002\u05b1\u21fd\u0003\u0002\u0002\u0002\u05b3\u2205\u0003\u0002", + "\u0002\u0002\u05b5\u220e\u0003\u0002\u0002\u0002\u05b7\u221f\u0003\u0002", + "\u0002\u0002\u05b9\u2227\u0003\u0002\u0002\u0002\u05bb\u2233\u0003\u0002", + "\u0002\u0002\u05bd\u2240\u0003\u0002\u0002\u0002\u05bf\u224a\u0003\u0002", + "\u0002\u0002\u05c1\u2253\u0003\u0002\u0002\u0002\u05c3\u225a\u0003\u0002", + "\u0002\u0002\u05c5\u2264\u0003\u0002\u0002\u0002\u05c7\u2272\u0003\u0002", + "\u0002\u0002\u05c9\u2277\u0003\u0002\u0002\u0002\u05cb\u2282\u0003\u0002", + "\u0002\u0002\u05cd\u2286\u0003\u0002\u0002\u0002\u05cf\u228a\u0003\u0002", + "\u0002\u0002\u05d1\u2290\u0003\u0002\u0002\u0002\u05d3\u22ab\u0003\u0002", + "\u0002\u0002\u05d5\u22c5\u0003\u0002\u0002\u0002\u05d7\u22da\u0003\u0002", + "\u0002\u0002\u05d9\u22e8\u0003\u0002\u0002\u0002\u05db\u22f0\u0003\u0002", + "\u0002\u0002\u05dd\u22f9\u0003\u0002\u0002\u0002\u05df\u2305\u0003\u0002", + "\u0002\u0002\u05e1\u230d\u0003\u0002\u0002\u0002\u05e3\u2318\u0003\u0002", + "\u0002\u0002\u05e5\u2322\u0003\u0002\u0002\u0002\u05e7\u232c\u0003\u0002", + "\u0002\u0002\u05e9\u2333\u0003\u0002\u0002\u0002\u05eb\u233b\u0003\u0002", + "\u0002\u0002\u05ed\u2347\u0003\u0002\u0002\u0002\u05ef\u2353\u0003\u0002", + "\u0002\u0002\u05f1\u235d\u0003\u0002\u0002\u0002\u05f3\u2366\u0003\u0002", + "\u0002\u0002\u05f5\u236a\u0003\u0002\u0002\u0002\u05f7\u2371\u0003\u0002", + "\u0002\u0002\u05f9\u2379\u0003\u0002\u0002\u0002\u05fb\u2382\u0003\u0002", + "\u0002\u0002\u05fd\u238b\u0003\u0002\u0002\u0002\u05ff\u2392\u0003\u0002", + "\u0002\u0002\u0601\u2396\u0003\u0002\u0002\u0002\u0603\u23a1\u0003\u0002", + "\u0002\u0002\u0605\u23ae\u0003\u0002\u0002\u0002\u0607\u23bb\u0003\u0002", + "\u0002\u0002\u0609\u23c1\u0003\u0002\u0002\u0002\u060b\u23cd\u0003\u0002", + "\u0002\u0002\u060d\u23d3\u0003\u0002\u0002\u0002\u060f\u23da\u0003\u0002", + "\u0002\u0002\u0611\u23e5\u0003\u0002\u0002\u0002\u0613\u23f1\u0003\u0002", + "\u0002\u0002\u0615\u23fb\u0003\u0002\u0002\u0002\u0617\u2409\u0003\u0002", + "\u0002\u0002\u0619\u241a\u0003\u0002\u0002\u0002\u061b\u242a\u0003\u0002", + "\u0002\u0002\u061d\u2445\u0003\u0002\u0002\u0002\u061f\u245f\u0003\u0002", + "\u0002\u0002\u0621\u2470\u0003\u0002\u0002\u0002\u0623\u2480\u0003\u0002", + "\u0002\u0002\u0625\u248a\u0003\u0002\u0002\u0002\u0627\u2497\u0003\u0002", + "\u0002\u0002\u0629\u24a4\u0003\u0002\u0002\u0002\u062b\u24b0\u0003\u0002", + "\u0002\u0002\u062d\u24bb\u0003\u0002\u0002\u0002\u062f\u24c4\u0003\u0002", + "\u0002\u0002\u0631\u24cc\u0003\u0002\u0002\u0002\u0633\u24d5\u0003\u0002", + "\u0002\u0002\u0635\u24e1\u0003\u0002\u0002\u0002\u0637\u24ef\u0003\u0002", + "\u0002\u0002\u0639\u24f3\u0003\u0002\u0002\u0002\u063b\u24fa\u0003\u0002", + "\u0002\u0002\u063d\u2505\u0003\u0002\u0002\u0002\u063f\u2510\u0003\u0002", + "\u0002\u0002\u0641\u251a\u0003\u0002\u0002\u0002\u0643\u2524\u0003\u0002", + "\u0002\u0002\u0645\u252a\u0003\u0002\u0002\u0002\u0647\u2538\u0003\u0002", + "\u0002\u0002\u0649\u2543\u0003\u0002\u0002\u0002\u064b\u254c\u0003\u0002", + "\u0002\u0002\u064d\u2554\u0003\u0002\u0002\u0002\u064f\u255b\u0003\u0002", + "\u0002\u0002\u0651\u2564\u0003\u0002\u0002\u0002\u0653\u2571\u0003\u0002", + "\u0002\u0002\u0655\u2579\u0003\u0002\u0002\u0002\u0657\u2588\u0003\u0002", + "\u0002\u0002\u0659\u2597\u0003\u0002\u0002\u0002\u065b\u259f\u0003\u0002", + "\u0002\u0002\u065d\u25ac\u0003\u0002\u0002\u0002\u065f\u25bb\u0003\u0002", + "\u0002\u0002\u0661\u25c1\u0003\u0002\u0002\u0002\u0663\u25c7\u0003\u0002", + "\u0002\u0002\u0665\u25ce\u0003\u0002\u0002\u0002\u0667\u25db\u0003\u0002", + "\u0002\u0002\u0669\u25e7\u0003\u0002\u0002\u0002\u066b\u25fa\u0003\u0002", + "\u0002\u0002\u066d\u260c\u0003\u0002\u0002\u0002\u066f\u260f\u0003\u0002", + "\u0002\u0002\u0671\u2619\u0003\u0002\u0002\u0002\u0673\u2620\u0003\u0002", + "\u0002\u0002\u0675\u2624\u0003\u0002\u0002\u0002\u0677\u262a\u0003\u0002", + "\u0002\u0002\u0679\u262f\u0003\u0002\u0002\u0002\u067b\u2635\u0003\u0002", + "\u0002\u0002\u067d\u263a\u0003\u0002\u0002\u0002\u067f\u2640\u0003\u0002", + "\u0002\u0002\u0681\u2649\u0003\u0002\u0002\u0002\u0683\u2652\u0003\u0002", + "\u0002\u0002\u0685\u265b\u0003\u0002\u0002\u0002\u0687\u266b\u0003\u0002", + "\u0002\u0002\u0689\u2677\u0003\u0002\u0002\u0002\u068b\u2683\u0003\u0002", + "\u0002\u0002\u068d\u268c\u0003\u0002\u0002\u0002\u068f\u269a\u0003\u0002", + "\u0002\u0002\u0691\u26a6\u0003\u0002\u0002\u0002\u0693\u26b1\u0003\u0002", + "\u0002\u0002\u0695\u26bb\u0003\u0002\u0002\u0002\u0697\u26bf\u0003\u0002", + "\u0002\u0002\u0699\u26cd\u0003\u0002\u0002\u0002\u069b\u26da\u0003\u0002", + "\u0002\u0002\u069d\u26e4\u0003\u0002\u0002\u0002\u069f\u26f3\u0003\u0002", + "\u0002\u0002\u06a1\u2701\u0003\u0002\u0002\u0002\u06a3\u270f\u0003\u0002", + "\u0002\u0002\u06a5\u271c\u0003\u0002\u0002\u0002\u06a7\u2734\u0003\u0002", + "\u0002\u0002\u06a9\u274b\u0003\u0002\u0002\u0002\u06ab\u275e\u0003\u0002", + "\u0002\u0002\u06ad\u2770\u0003\u0002\u0002\u0002\u06af\u2785\u0003\u0002", + "\u0002\u0002\u06b1\u2799\u0003\u0002\u0002\u0002\u06b3\u27a4\u0003\u0002", + "\u0002\u0002\u06b5\u27ab\u0003\u0002\u0002\u0002\u06b7\u27b9\u0003\u0002", + "\u0002\u0002\u06b9\u27ca\u0003\u0002\u0002\u0002\u06bb\u27d4\u0003\u0002", + "\u0002\u0002\u06bd\u27d8\u0003\u0002\u0002\u0002\u06bf\u27e5\u0003\u0002", + "\u0002\u0002\u06c1\u27e9\u0003\u0002\u0002\u0002\u06c3\u27f2\u0003\u0002", + "\u0002\u0002\u06c5\u27fd\u0003\u0002\u0002\u0002\u06c7\u2809\u0003\u0002", + "\u0002\u0002\u06c9\u280c\u0003\u0002\u0002\u0002\u06cb\u281a\u0003\u0002", + "\u0002\u0002\u06cd\u2827\u0003\u0002\u0002\u0002\u06cf\u282e\u0003\u0002", + "\u0002\u0002\u06d1\u283b\u0003\u0002\u0002\u0002\u06d3\u2847\u0003\u0002", + "\u0002\u0002\u06d5\u2857\u0003\u0002\u0002\u0002\u06d7\u2866\u0003\u0002", + "\u0002\u0002\u06d9\u286a\u0003\u0002\u0002\u0002\u06db\u2870\u0003\u0002", + "\u0002\u0002\u06dd\u2876\u0003\u0002\u0002\u0002\u06df\u287e\u0003\u0002", + "\u0002\u0002\u06e1\u2883\u0003\u0002\u0002\u0002\u06e3\u2890\u0003\u0002", + "\u0002\u0002\u06e5\u289d\u0003\u0002\u0002\u0002\u06e7\u28a5\u0003\u0002", + "\u0002\u0002\u06e9\u28ab\u0003\u0002\u0002\u0002\u06eb\u28b5\u0003\u0002", + "\u0002\u0002\u06ed\u28ba\u0003\u0002\u0002\u0002\u06ef\u28c0\u0003\u0002", + "\u0002\u0002\u06f1\u28cc\u0003\u0002\u0002\u0002\u06f3\u28d9\u0003\u0002", + "\u0002\u0002\u06f5\u28dd\u0003\u0002\u0002\u0002\u06f7\u28e2\u0003\u0002", + "\u0002\u0002\u06f9\u28e7\u0003\u0002\u0002\u0002\u06fb\u28f3\u0003\u0002", + "\u0002\u0002\u06fd\u28f8\u0003\u0002\u0002\u0002\u06ff\u28fc\u0003\u0002", + "\u0002\u0002\u0701\u2902\u0003\u0002\u0002\u0002\u0703\u290a\u0003\u0002", + "\u0002\u0002\u0705\u2926\u0003\u0002\u0002\u0002\u0707\u292b\u0003\u0002", + "\u0002\u0002\u0709\u2930\u0003\u0002\u0002\u0002\u070b\u293b\u0003\u0002", + "\u0002\u0002\u070d\u2942\u0003\u0002\u0002\u0002\u070f\u294e\u0003\u0002", + "\u0002\u0002\u0711\u2956\u0003\u0002\u0002\u0002\u0713\u2962\u0003\u0002", + "\u0002\u0002\u0715\u296c\u0003\u0002\u0002\u0002\u0717\u2975\u0003\u0002", + "\u0002\u0002\u0719\u297e\u0003\u0002\u0002\u0002\u071b\u2988\u0003\u0002", + "\u0002\u0002\u071d\u2994\u0003\u0002\u0002\u0002\u071f\u29a0\u0003\u0002", + "\u0002\u0002\u0721\u29ab\u0003\u0002\u0002\u0002\u0723\u29b9\u0003\u0002", + "\u0002\u0002\u0725\u29c6\u0003\u0002\u0002\u0002\u0727\u29d2\u0003\u0002", + "\u0002\u0002\u0729\u29de\u0003\u0002\u0002\u0002\u072b\u29ea\u0003\u0002", + "\u0002\u0002\u072d\u29f6\u0003\u0002\u0002\u0002\u072f\u2a00\u0003\u0002", + "\u0002\u0002\u0731\u2a10\u0003\u0002\u0002\u0002\u0733\u2a24\u0003\u0002", + "\u0002\u0002\u0735\u2a37\u0003\u0002\u0002\u0002\u0737\u2a4a\u0003\u0002", + "\u0002\u0002\u0739\u2a68\u0003\u0002\u0002\u0002\u073b\u2a85\u0003\u0002", + "\u0002\u0002\u073d\u2a99\u0003\u0002\u0002\u0002\u073f\u2aac\u0003\u0002", + "\u0002\u0002\u0741\u2ab9\u0003\u0002\u0002\u0002\u0743\u2ac9\u0003\u0002", + "\u0002\u0002\u0745\u2ad9\u0003\u0002\u0002\u0002\u0747\u2ae8\u0003\u0002", + "\u0002\u0002\u0749\u2af9\u0003\u0002\u0002\u0002\u074b\u2b09\u0003\u0002", + "\u0002\u0002\u074d\u2b17\u0003\u0002\u0002\u0002\u074f\u2b23\u0003\u0002", + "\u0002\u0002\u0751\u2b2e\u0003\u0002\u0002\u0002\u0753\u2b3a\u0003\u0002", + "\u0002\u0002\u0755\u2b4a\u0003\u0002\u0002\u0002\u0757\u2b59\u0003\u0002", + "\u0002\u0002\u0759\u2b6f\u0003\u0002\u0002\u0002\u075b\u2b84\u0003\u0002", + "\u0002\u0002\u075d\u2b95\u0003\u0002\u0002\u0002\u075f\u2ba8\u0003\u0002", + "\u0002\u0002\u0761\u2bbc\u0003\u0002\u0002\u0002\u0763\u2bc9\u0003\u0002", + "\u0002\u0002\u0765\u2bd5\u0003\u0002\u0002\u0002\u0767\u2be6\u0003\u0002", + "\u0002\u0002\u0769\u2bf6\u0003\u0002\u0002\u0002\u076b\u2c00\u0003\u0002", + "\u0002\u0002\u076d\u2c10\u0003\u0002\u0002\u0002\u076f\u2c1f\u0003\u0002", + "\u0002\u0002\u0771\u2c32\u0003\u0002\u0002\u0002\u0773\u2c44\u0003\u0002", + "\u0002\u0002\u0775\u2c4c\u0003\u0002\u0002\u0002\u0777\u2c5a\u0003\u0002", + "\u0002\u0002\u0779\u2c6b\u0003\u0002\u0002\u0002\u077b\u2c76\u0003\u0002", + "\u0002\u0002\u077d\u2c7f\u0003\u0002\u0002\u0002\u077f\u2c89\u0003\u0002", + "\u0002\u0002\u0781\u2c8e\u0003\u0002\u0002\u0002\u0783\u2c93\u0003\u0002", + "\u0002\u0002\u0785\u2c9b\u0003\u0002\u0002\u0002\u0787\u2cab\u0003\u0002", + "\u0002\u0002\u0789\u2cb3\u0003\u0002\u0002\u0002\u078b\u2cbf\u0003\u0002", + "\u0002\u0002\u078d\u2cc3\u0003\u0002\u0002\u0002\u078f\u2ccc\u0003\u0002", + "\u0002\u0002\u0791\u2cd9\u0003\u0002\u0002\u0002\u0793\u2ce7\u0003\u0002", + "\u0002\u0002\u0795\u2cf3\u0003\u0002\u0002\u0002\u0797\u2cff\u0003\u0002", + "\u0002\u0002\u0799\u2d07\u0003\u0002\u0002\u0002\u079b\u2d11\u0003\u0002", + "\u0002\u0002\u079d\u2d19\u0003\u0002\u0002\u0002\u079f\u2d24\u0003\u0002", + "\u0002\u0002\u07a1\u2d2a\u0003\u0002\u0002\u0002\u07a3\u2d35\u0003\u0002", + "\u0002\u0002\u07a5\u2d49\u0003\u0002\u0002\u0002\u07a7\u2d4f\u0003\u0002", + "\u0002\u0002\u07a9\u2d5e\u0003\u0002\u0002\u0002\u07ab\u2d68\u0003\u0002", + "\u0002\u0002\u07ad\u2d6e\u0003\u0002\u0002\u0002\u07af\u2d73\u0003\u0002", + "\u0002\u0002\u07b1\u2d7e\u0003\u0002\u0002\u0002\u07b3\u2d99\u0003\u0002", + "\u0002\u0002\u07b5\u2da1\u0003\u0002\u0002\u0002\u07b7\u2dc3\u0003\u0002", + "\u0002\u0002\u07b9\u2dcb\u0003\u0002\u0002\u0002\u07bb\u2dd6\u0003\u0002", + "\u0002\u0002\u07bd\u2de4\u0003\u0002\u0002\u0002\u07bf\u2deb\u0003\u0002", + "\u0002\u0002\u07c1\u2df4\u0003\u0002\u0002\u0002\u07c3\u2df6\u0003\u0002", + "\u0002\u0002\u07c5\u2df8\u0003\u0002\u0002\u0002\u07c7\u2dfb\u0003\u0002", + "\u0002\u0002\u07c9\u2dfe\u0003\u0002\u0002\u0002\u07cb\u2e01\u0003\u0002", + "\u0002\u0002\u07cd\u2e04\u0003\u0002\u0002\u0002\u07cf\u2e07\u0003\u0002", + "\u0002\u0002\u07d1\u2e0a\u0003\u0002\u0002\u0002\u07d3\u2e0d\u0003\u0002", + "\u0002\u0002\u07d5\u2e10\u0003\u0002\u0002\u0002\u07d7\u2e13\u0003\u0002", + "\u0002\u0002\u07d9\u2e15\u0003\u0002\u0002\u0002\u07db\u2e17\u0003\u0002", + "\u0002\u0002\u07dd\u2e19\u0003\u0002\u0002\u0002\u07df\u2e1b\u0003\u0002", + "\u0002\u0002\u07e1\u2e1e\u0003\u0002\u0002\u0002\u07e3\u2e20\u0003\u0002", + "\u0002\u0002\u07e5\u2e24\u0003\u0002\u0002\u0002\u07e7\u2e28\u0003\u0002", + "\u0002\u0002\u07e9\u2e2a\u0003\u0002\u0002\u0002\u07eb\u2e2c\u0003\u0002", + "\u0002\u0002\u07ed\u2e2e\u0003\u0002\u0002\u0002\u07ef\u2e30\u0003\u0002", + "\u0002\u0002\u07f1\u2e32\u0003\u0002\u0002\u0002\u07f3\u2e34\u0003\u0002", + "\u0002\u0002\u07f5\u2e36\u0003\u0002\u0002\u0002\u07f7\u2e38\u0003\u0002", + "\u0002\u0002\u07f9\u2e3a\u0003\u0002\u0002\u0002\u07fb\u2e3c\u0003\u0002", + "\u0002\u0002\u07fd\u2e3e\u0003\u0002\u0002\u0002\u07ff\u2e40\u0003\u0002", + "\u0002\u0002\u0801\u2e42\u0003\u0002\u0002\u0002\u0803\u2e44\u0003\u0002", + "\u0002\u0002\u0805\u2e46\u0003\u0002\u0002\u0002\u0807\u2e48\u0003\u0002", + "\u0002\u0002\u0809\u2e4a\u0003\u0002\u0002\u0002\u080b\u2e4c\u0003\u0002", + "\u0002\u0002\u080d\u2e4e\u0003\u0002\u0002\u0002\u080f\u2e50\u0003\u0002", + "\u0002\u0002\u0811\u2e55\u0003\u0002\u0002\u0002\u0813\u2e57\u0003\u0002", + "\u0002\u0002\u0815\u2e5c\u0003\u0002\u0002\u0002\u0817\u2e62\u0003\u0002", + "\u0002\u0002\u0819\u2e68\u0003\u0002\u0002\u0002\u081b\u2e6b\u0003\u0002", + "\u0002\u0002\u081d\u2e82\u0003\u0002\u0002\u0002\u081f\u2eaf\u0003\u0002", + "\u0002\u0002\u0821\u2eb1\u0003\u0002\u0002\u0002\u0823\u2eb4\u0003\u0002", + "\u0002\u0002\u0825\u2eb6\u0003\u0002\u0002\u0002\u0827\u2eb9\u0003\u0002", + "\u0002\u0002\u0829\u2ebc\u0003\u0002\u0002\u0002\u082b\u2ebe\u0003\u0002", + "\u0002\u0002\u082d\u2eca\u0003\u0002\u0002\u0002\u082f\u2ed3\u0003\u0002", + "\u0002\u0002\u0831\u2ede\u0003\u0002\u0002\u0002\u0833\u2f11\u0003\u0002", + "\u0002\u0002\u0835\u2f13\u0003\u0002\u0002\u0002\u0837\u2f1f\u0003\u0002", + "\u0002\u0002\u0839\u2f2d\u0003\u0002\u0002\u0002\u083b\u2f3a\u0003\u0002", + "\u0002\u0002\u083d\u2f47\u0003\u0002\u0002\u0002\u083f\u2f54\u0003\u0002", + "\u0002\u0002\u0841\u2f56\u0003\u0002\u0002\u0002\u0843\u2f58\u0003\u0002", + "\u0002\u0002\u0845\u2f61\u0003\u0002\u0002\u0002\u0847\u0849\t\u0002", + "\u0002\u0002\u0848\u0847\u0003\u0002\u0002\u0002\u0849\u084a\u0003\u0002", + "\u0002\u0002\u084a\u0848\u0003\u0002\u0002\u0002\u084a\u084b\u0003\u0002", + "\u0002\u0002\u084b\u084c\u0003\u0002\u0002\u0002\u084c\u084d\b\u0002", + "\u0002\u0002\u084d\u0004\u0003\u0002\u0002\u0002\u084e\u084f\u00071", + "\u0002\u0002\u084f\u0850\u0007,\u0002\u0002\u0850\u0851\u0007#\u0002", + "\u0002\u0851\u0853\u0003\u0002\u0002\u0002\u0852\u0854\u000b\u0002\u0002", + "\u0002\u0853\u0852\u0003\u0002\u0002\u0002\u0854\u0855\u0003\u0002\u0002", + "\u0002\u0855\u0856\u0003\u0002\u0002\u0002\u0855\u0853\u0003\u0002\u0002", + "\u0002\u0856\u0857\u0003\u0002\u0002\u0002\u0857\u0858\u0007,\u0002", + "\u0002\u0858\u0859\u00071\u0002\u0002\u0859\u085a\u0003\u0002\u0002", + "\u0002\u085a\u085b\b\u0003\u0003\u0002\u085b\u0006\u0003\u0002\u0002", + "\u0002\u085c\u085d\u00071\u0002\u0002\u085d\u085e\u0007,\u0002\u0002", + "\u085e\u0862\u0003\u0002\u0002\u0002\u085f\u0861\u000b\u0002\u0002\u0002", + "\u0860\u085f\u0003\u0002\u0002\u0002\u0861\u0864\u0003\u0002\u0002\u0002", + "\u0862\u0863\u0003\u0002\u0002\u0002\u0862\u0860\u0003\u0002\u0002\u0002", + "\u0863\u0865\u0003\u0002\u0002\u0002\u0864\u0862\u0003\u0002\u0002\u0002", + "\u0865\u0866\u0007,\u0002\u0002\u0866\u0867\u00071\u0002\u0002\u0867", + "\u0868\u0003\u0002\u0002\u0002\u0868\u0869\b\u0004\u0002\u0002\u0869", + "\b\u0003\u0002\u0002\u0002\u086a\u086b\u0007/\u0002\u0002\u086b\u086c", + "\u0007/\u0002\u0002\u086c\u086f\u0007\"\u0002\u0002\u086d\u086f\u0007", + "%\u0002\u0002\u086e\u086a\u0003\u0002\u0002\u0002\u086e\u086d\u0003", + "\u0002\u0002\u0002\u086f\u0873\u0003\u0002\u0002\u0002\u0870\u0872\n", + "\u0003\u0002\u0002\u0871\u0870\u0003\u0002\u0002\u0002\u0872\u0875\u0003", + "\u0002\u0002\u0002\u0873\u0871\u0003\u0002\u0002\u0002\u0873\u0874\u0003", + "\u0002\u0002\u0002\u0874\u087b\u0003\u0002\u0002\u0002\u0875\u0873\u0003", + "\u0002\u0002\u0002\u0876\u0878\u0007\u000f\u0002\u0002\u0877\u0876\u0003", + "\u0002\u0002\u0002\u0877\u0878\u0003\u0002\u0002\u0002\u0878\u0879\u0003", + "\u0002\u0002\u0002\u0879\u087c\u0007\f\u0002\u0002\u087a\u087c\u0007", + "\u0002\u0002\u0003\u087b\u0877\u0003\u0002\u0002\u0002\u087b\u087a\u0003", + "\u0002\u0002\u0002\u087c\u0888\u0003\u0002\u0002\u0002\u087d\u087e\u0007", + "/\u0002\u0002\u087e\u087f\u0007/\u0002\u0002\u087f\u0885\u0003\u0002", + "\u0002\u0002\u0880\u0882\u0007\u000f\u0002\u0002\u0881\u0880\u0003\u0002", + "\u0002\u0002\u0881\u0882\u0003\u0002\u0002\u0002\u0882\u0883\u0003\u0002", + "\u0002\u0002\u0883\u0886\u0007\f\u0002\u0002\u0884\u0886\u0007\u0002", + "\u0002\u0003\u0885\u0881\u0003\u0002\u0002\u0002\u0885\u0884\u0003\u0002", + "\u0002\u0002\u0886\u0888\u0003\u0002\u0002\u0002\u0887\u086e\u0003\u0002", + "\u0002\u0002\u0887\u087d\u0003\u0002\u0002\u0002\u0888\u0889\u0003\u0002", + "\u0002\u0002\u0889\u088a\b\u0005\u0002\u0002\u088a\n\u0003\u0002\u0002", + "\u0002\u088b\u088c\u0007C\u0002\u0002\u088c\u088d\u0007F\u0002\u0002", + "\u088d\u088e\u0007F\u0002\u0002\u088e\f\u0003\u0002\u0002\u0002\u088f", + "\u0890\u0007C\u0002\u0002\u0890\u0891\u0007N\u0002\u0002\u0891\u0892", + "\u0007N\u0002\u0002\u0892\u000e\u0003\u0002\u0002\u0002\u0893\u0894", + "\u0007C\u0002\u0002\u0894\u0895\u0007N\u0002\u0002\u0895\u0896\u0007", + "V\u0002\u0002\u0896\u0897\u0007G\u0002\u0002\u0897\u0898\u0007T\u0002", + "\u0002\u0898\u0010\u0003\u0002\u0002\u0002\u0899\u089a\u0007C\u0002", + "\u0002\u089a\u089b\u0007N\u0002\u0002\u089b\u089c\u0007Y\u0002\u0002", + "\u089c\u089d\u0007C\u0002\u0002\u089d\u089e\u0007[\u0002\u0002\u089e", + "\u089f\u0007U\u0002\u0002\u089f\u0012\u0003\u0002\u0002\u0002\u08a0", + "\u08a1\u0007C\u0002\u0002\u08a1\u08a2\u0007P\u0002\u0002\u08a2\u08a3", + "\u0007C\u0002\u0002\u08a3\u08a4\u0007N\u0002\u0002\u08a4\u08a5\u0007", + "[\u0002\u0002\u08a5\u08a6\u0007\\\u0002\u0002\u08a6\u08a7\u0007G\u0002", + "\u0002\u08a7\u0014\u0003\u0002\u0002\u0002\u08a8\u08a9\u0007C\u0002", + "\u0002\u08a9\u08aa\u0007P\u0002\u0002\u08aa\u08ab\u0007F\u0002\u0002", + "\u08ab\u0016\u0003\u0002\u0002\u0002\u08ac\u08ad\u0007C\u0002\u0002", + "\u08ad\u08ae\u0007U\u0002\u0002\u08ae\u0018\u0003\u0002\u0002\u0002", + "\u08af\u08b0\u0007C\u0002\u0002\u08b0\u08b1\u0007U\u0002\u0002\u08b1", + "\u08b2\u0007E\u0002\u0002\u08b2\u001a\u0003\u0002\u0002\u0002\u08b3", + "\u08b4\u0007D\u0002\u0002\u08b4\u08b5\u0007G\u0002\u0002\u08b5\u08b6", + "\u0007H\u0002\u0002\u08b6\u08b7\u0007Q\u0002\u0002\u08b7\u08b8\u0007", + "T\u0002\u0002\u08b8\u08b9\u0007G\u0002\u0002\u08b9\u001c\u0003\u0002", + "\u0002\u0002\u08ba\u08bb\u0007D\u0002\u0002\u08bb\u08bc\u0007G\u0002", + "\u0002\u08bc\u08bd\u0007V\u0002\u0002\u08bd\u08be\u0007Y\u0002\u0002", + "\u08be\u08bf\u0007G\u0002\u0002\u08bf\u08c0\u0007G\u0002\u0002\u08c0", + "\u08c1\u0007P\u0002\u0002\u08c1\u001e\u0003\u0002\u0002\u0002\u08c2", + "\u08c3\u0007D\u0002\u0002\u08c3\u08c4\u0007Q\u0002\u0002\u08c4\u08c5", + "\u0007V\u0002\u0002\u08c5\u08c6\u0007J\u0002\u0002\u08c6 \u0003\u0002", + "\u0002\u0002\u08c7\u08c8\u0007D\u0002\u0002\u08c8\u08c9\u0007[\u0002", + "\u0002\u08c9\"\u0003\u0002\u0002\u0002\u08ca\u08cb\u0007E\u0002\u0002", + "\u08cb\u08cc\u0007C\u0002\u0002\u08cc\u08cd\u0007N\u0002\u0002\u08cd", + "\u08ce\u0007N\u0002\u0002\u08ce$\u0003\u0002\u0002\u0002\u08cf\u08d0", + "\u0007E\u0002\u0002\u08d0\u08d1\u0007C\u0002\u0002\u08d1\u08d2\u0007", + "U\u0002\u0002\u08d2\u08d3\u0007E\u0002\u0002\u08d3\u08d4\u0007C\u0002", + "\u0002\u08d4\u08d5\u0007F\u0002\u0002\u08d5\u08d6\u0007G\u0002\u0002", + "\u08d6&\u0003\u0002\u0002\u0002\u08d7\u08d8\u0007E\u0002\u0002\u08d8", + "\u08d9\u0007C\u0002\u0002\u08d9\u08da\u0007U\u0002\u0002\u08da\u08db", + "\u0007G\u0002\u0002\u08db(\u0003\u0002\u0002\u0002\u08dc\u08dd\u0007", + "E\u0002\u0002\u08dd\u08de\u0007C\u0002\u0002\u08de\u08df\u0007U\u0002", + "\u0002\u08df\u08e0\u0007V\u0002\u0002\u08e0*\u0003\u0002\u0002\u0002", + "\u08e1\u08e2\u0007E\u0002\u0002\u08e2\u08e3\u0007J\u0002\u0002\u08e3", + "\u08e4\u0007C\u0002\u0002\u08e4\u08e5\u0007P\u0002\u0002\u08e5\u08e6", + "\u0007I\u0002\u0002\u08e6\u08e7\u0007G\u0002\u0002\u08e7,\u0003\u0002", + "\u0002\u0002\u08e8\u08e9\u0007E\u0002\u0002\u08e9\u08ea\u0007J\u0002", + "\u0002\u08ea\u08eb\u0007C\u0002\u0002\u08eb\u08ec\u0007T\u0002\u0002", + "\u08ec\u08ed\u0007C\u0002\u0002\u08ed\u08ee\u0007E\u0002\u0002\u08ee", + "\u08ef\u0007V\u0002\u0002\u08ef\u08f0\u0007G\u0002\u0002\u08f0\u08f1", + "\u0007T\u0002\u0002\u08f1.\u0003\u0002\u0002\u0002\u08f2\u08f3\u0007", + "E\u0002\u0002\u08f3\u08f4\u0007J\u0002\u0002\u08f4\u08f5\u0007G\u0002", + "\u0002\u08f5\u08f6\u0007E\u0002\u0002\u08f6\u08f7\u0007M\u0002\u0002", + "\u08f70\u0003\u0002\u0002\u0002\u08f8\u08f9\u0007E\u0002\u0002\u08f9", + "\u08fa\u0007Q\u0002\u0002\u08fa\u08fb\u0007N\u0002\u0002\u08fb\u08fc", + "\u0007N\u0002\u0002\u08fc\u08fd\u0007C\u0002\u0002\u08fd\u08fe\u0007", + "V\u0002\u0002\u08fe\u08ff\u0007G\u0002\u0002\u08ff2\u0003\u0002\u0002", + "\u0002\u0900\u0901\u0007E\u0002\u0002\u0901\u0902\u0007Q\u0002\u0002", + "\u0902\u0903\u0007N\u0002\u0002\u0903\u0904\u0007W\u0002\u0002\u0904", + "\u0905\u0007O\u0002\u0002\u0905\u0906\u0007P\u0002\u0002\u09064\u0003", + "\u0002\u0002\u0002\u0907\u0908\u0007E\u0002\u0002\u0908\u0909\u0007", + "Q\u0002\u0002\u0909\u090a\u0007P\u0002\u0002\u090a\u090b\u0007F\u0002", + "\u0002\u090b\u090c\u0007K\u0002\u0002\u090c\u090d\u0007V\u0002\u0002", + "\u090d\u090e\u0007K\u0002\u0002\u090e\u090f\u0007Q\u0002\u0002\u090f", + "\u0910\u0007P\u0002\u0002\u09106\u0003\u0002\u0002\u0002\u0911\u0912", + "\u0007E\u0002\u0002\u0912\u0913\u0007Q\u0002\u0002\u0913\u0914\u0007", + "P\u0002\u0002\u0914\u0915\u0007U\u0002\u0002\u0915\u0916\u0007V\u0002", + "\u0002\u0916\u0917\u0007T\u0002\u0002\u0917\u0918\u0007C\u0002\u0002", + "\u0918\u0919\u0007K\u0002\u0002\u0919\u091a\u0007P\u0002\u0002\u091a", + "\u091b\u0007V\u0002\u0002\u091b8\u0003\u0002\u0002\u0002\u091c\u091d", + "\u0007E\u0002\u0002\u091d\u091e\u0007Q\u0002\u0002\u091e\u091f\u0007", + "P\u0002\u0002\u091f\u0920\u0007V\u0002\u0002\u0920\u0921\u0007K\u0002", + "\u0002\u0921\u0922\u0007P\u0002\u0002\u0922\u0923\u0007W\u0002\u0002", + "\u0923\u0924\u0007G\u0002\u0002\u0924:\u0003\u0002\u0002\u0002\u0925", + "\u0926\u0007E\u0002\u0002\u0926\u0927\u0007Q\u0002\u0002\u0927\u0928", + "\u0007P\u0002\u0002\u0928\u0929\u0007X\u0002\u0002\u0929\u092a\u0007", + "G\u0002\u0002\u092a\u092b\u0007T\u0002\u0002\u092b\u092c\u0007V\u0002", + "\u0002\u092c<\u0003\u0002\u0002\u0002\u092d\u092e\u0007E\u0002\u0002", + "\u092e\u092f\u0007T\u0002\u0002\u092f\u0930\u0007G\u0002\u0002\u0930", + "\u0931\u0007C\u0002\u0002\u0931\u0932\u0007V\u0002\u0002\u0932\u0933", + "\u0007G\u0002\u0002\u0933>\u0003\u0002\u0002\u0002\u0934\u0935\u0007", + "E\u0002\u0002\u0935\u0936\u0007T\u0002\u0002\u0936\u0937\u0007Q\u0002", + "\u0002\u0937\u0938\u0007U\u0002\u0002\u0938\u0939\u0007U\u0002\u0002", + "\u0939@\u0003\u0002\u0002\u0002\u093a\u093b\u0007E\u0002\u0002\u093b", + "\u093c\u0007W\u0002\u0002\u093c\u093d\u0007T\u0002\u0002\u093d\u093e", + "\u0007T\u0002\u0002\u093e\u093f\u0007G\u0002\u0002\u093f\u0940\u0007", + "P\u0002\u0002\u0940\u0941\u0007V\u0002\u0002\u0941B\u0003\u0002\u0002", + "\u0002\u0942\u0943\u0007E\u0002\u0002\u0943\u0944\u0007W\u0002\u0002", + "\u0944\u0945\u0007T\u0002\u0002\u0945\u0946\u0007T\u0002\u0002\u0946", + "\u0947\u0007G\u0002\u0002\u0947\u0948\u0007P\u0002\u0002\u0948\u0949", + "\u0007V\u0002\u0002\u0949\u094a\u0007a\u0002\u0002\u094a\u094b\u0007", + "W\u0002\u0002\u094b\u094c\u0007U\u0002\u0002\u094c\u094d\u0007G\u0002", + "\u0002\u094d\u094e\u0007T\u0002\u0002\u094eD\u0003\u0002\u0002\u0002", + "\u094f\u0950\u0007E\u0002\u0002\u0950\u0951\u0007W\u0002\u0002\u0951", + "\u0952\u0007T\u0002\u0002\u0952\u0953\u0007U\u0002\u0002\u0953\u0954", + "\u0007Q\u0002\u0002\u0954\u0955\u0007T\u0002\u0002\u0955F\u0003\u0002", + "\u0002\u0002\u0956\u0957\u0007F\u0002\u0002\u0957\u0958\u0007C\u0002", + "\u0002\u0958\u0959\u0007V\u0002\u0002\u0959\u095a\u0007C\u0002\u0002", + "\u095a\u095b\u0007D\u0002\u0002\u095b\u095c\u0007C\u0002\u0002\u095c", + "\u095d\u0007U\u0002\u0002\u095d\u095e\u0007G\u0002\u0002\u095eH\u0003", + "\u0002\u0002\u0002\u095f\u0960\u0007F\u0002\u0002\u0960\u0961\u0007", + "C\u0002\u0002\u0961\u0962\u0007V\u0002\u0002\u0962\u0963\u0007C\u0002", + "\u0002\u0963\u0964\u0007D\u0002\u0002\u0964\u0965\u0007C\u0002\u0002", + "\u0965\u0966\u0007U\u0002\u0002\u0966\u0967\u0007G\u0002\u0002\u0967", + "\u0968\u0007U\u0002\u0002\u0968J\u0003\u0002\u0002\u0002\u0969\u096a", + "\u0007F\u0002\u0002\u096a\u096b\u0007G\u0002\u0002\u096b\u096c\u0007", + "E\u0002\u0002\u096c\u096d\u0007N\u0002\u0002\u096d\u096e\u0007C\u0002", + "\u0002\u096e\u096f\u0007T\u0002\u0002\u096f\u0970\u0007G\u0002\u0002", + "\u0970L\u0003\u0002\u0002\u0002\u0971\u0972\u0007F\u0002\u0002\u0972", + "\u0973\u0007G\u0002\u0002\u0973\u0974\u0007H\u0002\u0002\u0974\u0975", + "\u0007C\u0002\u0002\u0975\u0976\u0007W\u0002\u0002\u0976\u0977\u0007", + "N\u0002\u0002\u0977\u0978\u0007V\u0002\u0002\u0978N\u0003\u0002\u0002", + "\u0002\u0979\u097a\u0007F\u0002\u0002\u097a\u097b\u0007G\u0002\u0002", + "\u097b\u097c\u0007N\u0002\u0002\u097c\u097d\u0007C\u0002\u0002\u097d", + "\u097e\u0007[\u0002\u0002\u097e\u097f\u0007G\u0002\u0002\u097f\u0980", + "\u0007F\u0002\u0002\u0980P\u0003\u0002\u0002\u0002\u0981\u0982\u0007", + "F\u0002\u0002\u0982\u0983\u0007G\u0002\u0002\u0983\u0984\u0007N\u0002", + "\u0002\u0984\u0985\u0007G\u0002\u0002\u0985\u0986\u0007V\u0002\u0002", + "\u0986\u0987\u0007G\u0002\u0002\u0987R\u0003\u0002\u0002\u0002\u0988", + "\u0989\u0007F\u0002\u0002\u0989\u098a\u0007G\u0002\u0002\u098a\u098b", + "\u0007U\u0002\u0002\u098b\u098c\u0007E\u0002\u0002\u098cT\u0003\u0002", + "\u0002\u0002\u098d\u098e\u0007F\u0002\u0002\u098e\u098f\u0007G\u0002", + "\u0002\u098f\u0990\u0007U\u0002\u0002\u0990\u0991\u0007E\u0002\u0002", + "\u0991\u0992\u0007T\u0002\u0002\u0992\u0993\u0007K\u0002\u0002\u0993", + "\u0994\u0007D\u0002\u0002\u0994\u0995\u0007G\u0002\u0002\u0995V\u0003", + "\u0002\u0002\u0002\u0996\u0997\u0007F\u0002\u0002\u0997\u0998\u0007", + "G\u0002\u0002\u0998\u0999\u0007V\u0002\u0002\u0999\u099a\u0007G\u0002", + "\u0002\u099a\u099b\u0007T\u0002\u0002\u099b\u099c\u0007O\u0002\u0002", + "\u099c\u099d\u0007K\u0002\u0002\u099d\u099e\u0007P\u0002\u0002\u099e", + "\u099f\u0007K\u0002\u0002\u099f\u09a0\u0007U\u0002\u0002\u09a0\u09a1", + "\u0007V\u0002\u0002\u09a1\u09a2\u0007K\u0002\u0002\u09a2\u09a3\u0007", + "E\u0002\u0002\u09a3X\u0003\u0002\u0002\u0002\u09a4\u09a5\u0007F\u0002", + "\u0002\u09a5\u09a6\u0007K\u0002\u0002\u09a6\u09a7\u0007C\u0002\u0002", + "\u09a7\u09a8\u0007I\u0002\u0002\u09a8\u09a9\u0007P\u0002\u0002\u09a9", + "\u09aa\u0007Q\u0002\u0002\u09aa\u09ab\u0007U\u0002\u0002\u09ab\u09ac", + "\u0007V\u0002\u0002\u09ac\u09ad\u0007K\u0002\u0002\u09ad\u09ae\u0007", + "E\u0002\u0002\u09ae\u09af\u0007U\u0002\u0002\u09afZ\u0003\u0002\u0002", + "\u0002\u09b0\u09b1\u0007F\u0002\u0002\u09b1\u09b2\u0007K\u0002\u0002", + "\u09b2\u09b3\u0007U\u0002\u0002\u09b3\u09b4\u0007V\u0002\u0002\u09b4", + "\u09b5\u0007K\u0002\u0002\u09b5\u09b6\u0007P\u0002\u0002\u09b6\u09b7", + "\u0007E\u0002\u0002\u09b7\u09b8\u0007V\u0002\u0002\u09b8\\\u0003\u0002", + "\u0002\u0002\u09b9\u09ba\u0007F\u0002\u0002\u09ba\u09bb\u0007K\u0002", + "\u0002\u09bb\u09bc\u0007U\u0002\u0002\u09bc\u09bd\u0007V\u0002\u0002", + "\u09bd\u09be\u0007K\u0002\u0002\u09be\u09bf\u0007P\u0002\u0002\u09bf", + "\u09c0\u0007E\u0002\u0002\u09c0\u09c1\u0007V\u0002\u0002\u09c1\u09c2", + "\u0007T\u0002\u0002\u09c2\u09c3\u0007Q\u0002\u0002\u09c3\u09c4\u0007", + "Y\u0002\u0002\u09c4^\u0003\u0002\u0002\u0002\u09c5\u09c6\u0007F\u0002", + "\u0002\u09c6\u09c7\u0007T\u0002\u0002\u09c7\u09c8\u0007Q\u0002\u0002", + "\u09c8\u09c9\u0007R\u0002\u0002\u09c9`\u0003\u0002\u0002\u0002\u09ca", + "\u09cb\u0007G\u0002\u0002\u09cb\u09cc\u0007C\u0002\u0002\u09cc\u09cd", + "\u0007E\u0002\u0002\u09cd\u09ce\u0007J\u0002\u0002\u09ceb\u0003\u0002", + "\u0002\u0002\u09cf\u09d0\u0007G\u0002\u0002\u09d0\u09d1\u0007N\u0002", + "\u0002\u09d1\u09d2\u0007U\u0002\u0002\u09d2\u09d3\u0007G\u0002\u0002", + "\u09d3d\u0003\u0002\u0002\u0002\u09d4\u09d5\u0007G\u0002\u0002\u09d5", + "\u09d6\u0007N\u0002\u0002\u09d6\u09d7\u0007U\u0002\u0002\u09d7\u09d8", + "\u0007G\u0002\u0002\u09d8\u09d9\u0007K\u0002\u0002\u09d9\u09da\u0007", + "H\u0002\u0002\u09daf\u0003\u0002\u0002\u0002\u09db\u09dc\u0007G\u0002", + "\u0002\u09dc\u09dd\u0007P\u0002\u0002\u09dd\u09de\u0007E\u0002\u0002", + "\u09de\u09df\u0007N\u0002\u0002\u09df\u09e0\u0007Q\u0002\u0002\u09e0", + "\u09e1\u0007U\u0002\u0002\u09e1\u09e2\u0007G\u0002\u0002\u09e2\u09e3", + "\u0007F\u0002\u0002\u09e3h\u0003\u0002\u0002\u0002\u09e4\u09e5\u0007", + "G\u0002\u0002\u09e5\u09e6\u0007U\u0002\u0002\u09e6\u09e7\u0007E\u0002", + "\u0002\u09e7\u09e8\u0007C\u0002\u0002\u09e8\u09e9\u0007R\u0002\u0002", + "\u09e9\u09ea\u0007G\u0002\u0002\u09ea\u09eb\u0007F\u0002\u0002\u09eb", + "j\u0003\u0002\u0002\u0002\u09ec\u09ed\u0007G\u0002\u0002\u09ed\u09ee", + "\u0007Z\u0002\u0002\u09ee\u09ef\u0007K\u0002\u0002\u09ef\u09f0\u0007", + "U\u0002\u0002\u09f0\u09f1\u0007V\u0002\u0002\u09f1\u09f2\u0007U\u0002", + "\u0002\u09f2l\u0003\u0002\u0002\u0002\u09f3\u09f4\u0007G\u0002\u0002", + "\u09f4\u09f5\u0007Z\u0002\u0002\u09f5\u09f6\u0007K\u0002\u0002\u09f6", + "\u09f7\u0007V\u0002\u0002\u09f7n\u0003\u0002\u0002\u0002\u09f8\u09f9", + "\u0007G\u0002\u0002\u09f9\u09fa\u0007Z\u0002\u0002\u09fa\u09fb\u0007", + "R\u0002\u0002\u09fb\u09fc\u0007N\u0002\u0002\u09fc\u09fd\u0007C\u0002", + "\u0002\u09fd\u09fe\u0007K\u0002\u0002\u09fe\u09ff\u0007P\u0002\u0002", + "\u09ffp\u0003\u0002\u0002\u0002\u0a00\u0a01\u0007H\u0002\u0002\u0a01", + "\u0a02\u0007C\u0002\u0002\u0a02\u0a03\u0007N\u0002\u0002\u0a03\u0a04", + "\u0007U\u0002\u0002\u0a04\u0a05\u0007G\u0002\u0002\u0a05r\u0003\u0002", + "\u0002\u0002\u0a06\u0a07\u0007H\u0002\u0002\u0a07\u0a08\u0007G\u0002", + "\u0002\u0a08\u0a09\u0007V\u0002\u0002\u0a09\u0a0a\u0007E\u0002\u0002", + "\u0a0a\u0a0b\u0007J\u0002\u0002\u0a0bt\u0003\u0002\u0002\u0002\u0a0c", + "\u0a0d\u0007H\u0002\u0002\u0a0d\u0a0e\u0007Q\u0002\u0002\u0a0e\u0a0f", + "\u0007T\u0002\u0002\u0a0fv\u0003\u0002\u0002\u0002\u0a10\u0a11\u0007", + "H\u0002\u0002\u0a11\u0a12\u0007Q\u0002\u0002\u0a12\u0a13\u0007T\u0002", + "\u0002\u0a13\u0a14\u0007E\u0002\u0002\u0a14\u0a15\u0007G\u0002\u0002", + "\u0a15x\u0003\u0002\u0002\u0002\u0a16\u0a17\u0007H\u0002\u0002\u0a17", + "\u0a18\u0007Q\u0002\u0002\u0a18\u0a19\u0007T\u0002\u0002\u0a19\u0a1a", + "\u0007G\u0002\u0002\u0a1a\u0a1b\u0007K\u0002\u0002\u0a1b\u0a1c\u0007", + "I\u0002\u0002\u0a1c\u0a1d\u0007P\u0002\u0002\u0a1dz\u0003\u0002\u0002", + "\u0002\u0a1e\u0a1f\u0007H\u0002\u0002\u0a1f\u0a20\u0007T\u0002\u0002", + "\u0a20\u0a21\u0007Q\u0002\u0002\u0a21\u0a22\u0007O\u0002\u0002\u0a22", + "|\u0003\u0002\u0002\u0002\u0a23\u0a24\u0007H\u0002\u0002\u0a24\u0a25", + "\u0007W\u0002\u0002\u0a25\u0a26\u0007N\u0002\u0002\u0a26\u0a27\u0007", + "N\u0002\u0002\u0a27\u0a28\u0007V\u0002\u0002\u0a28\u0a29\u0007G\u0002", + "\u0002\u0a29\u0a2a\u0007Z\u0002\u0002\u0a2a\u0a2b\u0007V\u0002\u0002", + "\u0a2b~\u0003\u0002\u0002\u0002\u0a2c\u0a2d\u0007I\u0002\u0002\u0a2d", + "\u0a2e\u0007G\u0002\u0002\u0a2e\u0a2f\u0007P\u0002\u0002\u0a2f\u0a30", + "\u0007G\u0002\u0002\u0a30\u0a31\u0007T\u0002\u0002\u0a31\u0a32\u0007", + "C\u0002\u0002\u0a32\u0a33\u0007V\u0002\u0002\u0a33\u0a34\u0007G\u0002", + "\u0002\u0a34\u0a35\u0007F\u0002\u0002\u0a35\u0080\u0003\u0002\u0002", + "\u0002\u0a36\u0a37\u0007I\u0002\u0002\u0a37\u0a38\u0007G\u0002\u0002", + "\u0a38\u0a39\u0007V\u0002\u0002\u0a39\u0082\u0003\u0002\u0002\u0002", + "\u0a3a\u0a3b\u0007I\u0002\u0002\u0a3b\u0a3c\u0007T\u0002\u0002\u0a3c", + "\u0a3d\u0007C\u0002\u0002\u0a3d\u0a3e\u0007P\u0002\u0002\u0a3e\u0a3f", + "\u0007V\u0002\u0002\u0a3f\u0084\u0003\u0002\u0002\u0002\u0a40\u0a41", + "\u0007I\u0002\u0002\u0a41\u0a42\u0007T\u0002\u0002\u0a42\u0a43\u0007", + "Q\u0002\u0002\u0a43\u0a44\u0007W\u0002\u0002\u0a44\u0a45\u0007R\u0002", + "\u0002\u0a45\u0086\u0003\u0002\u0002\u0002\u0a46\u0a47\u0007J\u0002", + "\u0002\u0a47\u0a48\u0007C\u0002\u0002\u0a48\u0a49\u0007X\u0002\u0002", + "\u0a49\u0a4a\u0007K\u0002\u0002\u0a4a\u0a4b\u0007P\u0002\u0002\u0a4b", + "\u0a4c\u0007I\u0002\u0002\u0a4c\u0088\u0003\u0002\u0002\u0002\u0a4d", + "\u0a4e\u0007J\u0002\u0002\u0a4e\u0a4f\u0007K\u0002\u0002\u0a4f\u0a50", + "\u0007I\u0002\u0002\u0a50\u0a51\u0007J\u0002\u0002\u0a51\u0a52\u0007", + "a\u0002\u0002\u0a52\u0a53\u0007R\u0002\u0002\u0a53\u0a54\u0007T\u0002", + "\u0002\u0a54\u0a55\u0007K\u0002\u0002\u0a55\u0a56\u0007Q\u0002\u0002", + "\u0a56\u0a57\u0007T\u0002\u0002\u0a57\u0a58\u0007K\u0002\u0002\u0a58", + "\u0a59\u0007V\u0002\u0002\u0a59\u0a5a\u0007[\u0002\u0002\u0a5a\u008a", + "\u0003\u0002\u0002\u0002\u0a5b\u0a5c\u0007K\u0002\u0002\u0a5c\u0a5d", + "\u0007H\u0002\u0002\u0a5d\u008c\u0003\u0002\u0002\u0002\u0a5e\u0a5f", + "\u0007K\u0002\u0002\u0a5f\u0a60\u0007I\u0002\u0002\u0a60\u0a61\u0007", + "P\u0002\u0002\u0a61\u0a62\u0007Q\u0002\u0002\u0a62\u0a63\u0007T\u0002", + "\u0002\u0a63\u0a64\u0007G\u0002\u0002\u0a64\u008e\u0003\u0002\u0002", + "\u0002\u0a65\u0a66\u0007K\u0002\u0002\u0a66\u0a67\u0007P\u0002\u0002", + "\u0a67\u0090\u0003\u0002\u0002\u0002\u0a68\u0a69\u0007K\u0002\u0002", + "\u0a69\u0a6a\u0007P\u0002\u0002\u0a6a\u0a6b\u0007F\u0002\u0002\u0a6b", + "\u0a6c\u0007G\u0002\u0002\u0a6c\u0a6d\u0007Z\u0002\u0002\u0a6d\u0092", + "\u0003\u0002\u0002\u0002\u0a6e\u0a6f\u0007K\u0002\u0002\u0a6f\u0a70", + "\u0007P\u0002\u0002\u0a70\u0a71\u0007H\u0002\u0002\u0a71\u0a72\u0007", + "K\u0002\u0002\u0a72\u0a73\u0007N\u0002\u0002\u0a73\u0a74\u0007G\u0002", + "\u0002\u0a74\u0094\u0003\u0002\u0002\u0002\u0a75\u0a76\u0007K\u0002", + "\u0002\u0a76\u0a77\u0007P\u0002\u0002\u0a77\u0a78\u0007P\u0002\u0002", + "\u0a78\u0a79\u0007G\u0002\u0002\u0a79\u0a7a\u0007T\u0002\u0002\u0a7a", + "\u0096\u0003\u0002\u0002\u0002\u0a7b\u0a7c\u0007K\u0002\u0002\u0a7c", + "\u0a7d\u0007P\u0002\u0002\u0a7d\u0a7e\u0007Q\u0002\u0002\u0a7e\u0a7f", + "\u0007W\u0002\u0002\u0a7f\u0a80\u0007V\u0002\u0002\u0a80\u0098\u0003", + "\u0002\u0002\u0002\u0a81\u0a82\u0007K\u0002\u0002\u0a82\u0a83\u0007", + "P\u0002\u0002\u0a83\u0a84\u0007U\u0002\u0002\u0a84\u0a85\u0007G\u0002", + "\u0002\u0a85\u0a86\u0007T\u0002\u0002\u0a86\u0a87\u0007V\u0002\u0002", + "\u0a87\u009a\u0003\u0002\u0002\u0002\u0a88\u0a89\u0007K\u0002\u0002", + "\u0a89\u0a8a\u0007P\u0002\u0002\u0a8a\u0a8b\u0007V\u0002\u0002\u0a8b", + "\u0a8c\u0007G\u0002\u0002\u0a8c\u0a8d\u0007T\u0002\u0002\u0a8d\u0a8e", + "\u0007X\u0002\u0002\u0a8e\u0a8f\u0007C\u0002\u0002\u0a8f\u0a90\u0007", + "N\u0002\u0002\u0a90\u009c\u0003\u0002\u0002\u0002\u0a91\u0a92\u0007", + "K\u0002\u0002\u0a92\u0a93\u0007P\u0002\u0002\u0a93\u0a94\u0007V\u0002", + "\u0002\u0a94\u0a95\u0007Q\u0002\u0002\u0a95\u009e\u0003\u0002\u0002", + "\u0002\u0a96\u0a97\u0007K\u0002\u0002\u0a97\u0a98\u0007U\u0002\u0002", + "\u0a98\u00a0\u0003\u0002\u0002\u0002\u0a99\u0a9a\u0007K\u0002\u0002", + "\u0a9a\u0a9b\u0007V\u0002\u0002\u0a9b\u0a9c\u0007G\u0002\u0002\u0a9c", + "\u0a9d\u0007T\u0002\u0002\u0a9d\u0a9e\u0007C\u0002\u0002\u0a9e\u0a9f", + "\u0007V\u0002\u0002\u0a9f\u0aa0\u0007G\u0002\u0002\u0aa0\u00a2\u0003", + "\u0002\u0002\u0002\u0aa1\u0aa2\u0007L\u0002\u0002\u0aa2\u0aa3\u0007", + "Q\u0002\u0002\u0aa3\u0aa4\u0007K\u0002\u0002\u0aa4\u0aa5\u0007P\u0002", + "\u0002\u0aa5\u00a4\u0003\u0002\u0002\u0002\u0aa6\u0aa7\u0007M\u0002", + "\u0002\u0aa7\u0aa8\u0007G\u0002\u0002\u0aa8\u0aa9\u0007[\u0002\u0002", + "\u0aa9\u00a6\u0003\u0002\u0002\u0002\u0aaa\u0aab\u0007M\u0002\u0002", + "\u0aab\u0aac\u0007G\u0002\u0002\u0aac\u0aad\u0007[\u0002\u0002\u0aad", + "\u0aae\u0007U\u0002\u0002\u0aae\u00a8\u0003\u0002\u0002\u0002\u0aaf", + "\u0ab0\u0007M\u0002\u0002\u0ab0\u0ab1\u0007K\u0002\u0002\u0ab1\u0ab2", + "\u0007N\u0002\u0002\u0ab2\u0ab3\u0007N\u0002\u0002\u0ab3\u00aa\u0003", + "\u0002\u0002\u0002\u0ab4\u0ab5\u0007N\u0002\u0002\u0ab5\u0ab6\u0007", + "G\u0002\u0002\u0ab6\u0ab7\u0007C\u0002\u0002\u0ab7\u0ab8\u0007F\u0002", + "\u0002\u0ab8\u0ab9\u0007K\u0002\u0002\u0ab9\u0aba\u0007P\u0002\u0002", + "\u0aba\u0abb\u0007I\u0002\u0002\u0abb\u00ac\u0003\u0002\u0002\u0002", + "\u0abc\u0abd\u0007N\u0002\u0002\u0abd\u0abe\u0007G\u0002\u0002\u0abe", + "\u0abf\u0007C\u0002\u0002\u0abf\u0ac0\u0007X\u0002\u0002\u0ac0\u0ac1", + "\u0007G\u0002\u0002\u0ac1\u00ae\u0003\u0002\u0002\u0002\u0ac2\u0ac3", + "\u0007N\u0002\u0002\u0ac3\u0ac4\u0007G\u0002\u0002\u0ac4\u0ac5\u0007", + "H\u0002\u0002\u0ac5\u0ac6\u0007V\u0002\u0002\u0ac6\u00b0\u0003\u0002", + "\u0002\u0002\u0ac7\u0ac8\u0007N\u0002\u0002\u0ac8\u0ac9\u0007K\u0002", + "\u0002\u0ac9\u0aca\u0007M\u0002\u0002\u0aca\u0acb\u0007G\u0002\u0002", + "\u0acb\u00b2\u0003\u0002\u0002\u0002\u0acc\u0acd\u0007N\u0002\u0002", + "\u0acd\u0ace\u0007K\u0002\u0002\u0ace\u0acf\u0007O\u0002\u0002\u0acf", + "\u0ad0\u0007K\u0002\u0002\u0ad0\u0ad1\u0007V\u0002\u0002\u0ad1\u00b4", + "\u0003\u0002\u0002\u0002\u0ad2\u0ad3\u0007N\u0002\u0002\u0ad3\u0ad4", + "\u0007K\u0002\u0002\u0ad4\u0ad5\u0007P\u0002\u0002\u0ad5\u0ad6\u0007", + "G\u0002\u0002\u0ad6\u0ad7\u0007C\u0002\u0002\u0ad7\u0ad8\u0007T\u0002", + "\u0002\u0ad8\u00b6\u0003\u0002\u0002\u0002\u0ad9\u0ada\u0007N\u0002", + "\u0002\u0ada\u0adb\u0007K\u0002\u0002\u0adb\u0adc\u0007P\u0002\u0002", + "\u0adc\u0add\u0007G\u0002\u0002\u0add\u0ade\u0007U\u0002\u0002\u0ade", + "\u00b8\u0003\u0002\u0002\u0002\u0adf\u0ae0\u0007N\u0002\u0002\u0ae0", + "\u0ae1\u0007Q\u0002\u0002\u0ae1\u0ae2\u0007C\u0002\u0002\u0ae2\u0ae3", + "\u0007F\u0002\u0002\u0ae3\u00ba\u0003\u0002\u0002\u0002\u0ae4\u0ae5", + "\u0007N\u0002\u0002\u0ae5\u0ae6\u0007Q\u0002\u0002\u0ae6\u0ae7\u0007", + "E\u0002\u0002\u0ae7\u0ae8\u0007M\u0002\u0002\u0ae8\u00bc\u0003\u0002", + "\u0002\u0002\u0ae9\u0aea\u0007N\u0002\u0002\u0aea\u0aeb\u0007Q\u0002", + "\u0002\u0aeb\u0aec\u0007Q\u0002\u0002\u0aec\u0aed\u0007R\u0002\u0002", + "\u0aed\u00be\u0003\u0002\u0002\u0002\u0aee\u0aef\u0007N\u0002\u0002", + "\u0aef\u0af0\u0007Q\u0002\u0002\u0af0\u0af1\u0007Y\u0002\u0002\u0af1", + "\u0af2\u0007a\u0002\u0002\u0af2\u0af3\u0007R\u0002\u0002\u0af3\u0af4", + "\u0007T\u0002\u0002\u0af4\u0af5\u0007K\u0002\u0002\u0af5\u0af6\u0007", + "Q\u0002\u0002\u0af6\u0af7\u0007T\u0002\u0002\u0af7\u0af8\u0007K\u0002", + "\u0002\u0af8\u0af9\u0007V\u0002\u0002\u0af9\u0afa\u0007[\u0002\u0002", + "\u0afa\u00c0\u0003\u0002\u0002\u0002\u0afb\u0afc\u0007O\u0002\u0002", + "\u0afc\u0afd\u0007C\u0002\u0002\u0afd\u0afe\u0007U\u0002\u0002\u0afe", + "\u0aff\u0007V\u0002\u0002\u0aff\u0b00\u0007G\u0002\u0002\u0b00\u0b01", + "\u0007T\u0002\u0002\u0b01\u0b02\u0007a\u0002\u0002\u0b02\u0b03\u0007", + "D\u0002\u0002\u0b03\u0b04\u0007K\u0002\u0002\u0b04\u0b05\u0007P\u0002", + "\u0002\u0b05\u0b06\u0007F\u0002\u0002\u0b06\u00c2\u0003\u0002\u0002", + "\u0002\u0b07\u0b08\u0007O\u0002\u0002\u0b08\u0b09\u0007C\u0002\u0002", + "\u0b09\u0b0a\u0007U\u0002\u0002\u0b0a\u0b0b\u0007V\u0002\u0002\u0b0b", + "\u0b0c\u0007G\u0002\u0002\u0b0c\u0b0d\u0007T\u0002\u0002\u0b0d\u0b0e", + "\u0007a\u0002\u0002\u0b0e\u0b0f\u0007U\u0002\u0002\u0b0f\u0b10\u0007", + "U\u0002\u0002\u0b10\u0b11\u0007N\u0002\u0002\u0b11\u0b12\u0007a\u0002", + "\u0002\u0b12\u0b13\u0007X\u0002\u0002\u0b13\u0b14\u0007G\u0002\u0002", + "\u0b14\u0b15\u0007T\u0002\u0002\u0b15\u0b16\u0007K\u0002\u0002\u0b16", + "\u0b17\u0007H\u0002\u0002\u0b17\u0b18\u0007[\u0002\u0002\u0b18\u0b19", + "\u0007a\u0002\u0002\u0b19\u0b1a\u0007U\u0002\u0002\u0b1a\u0b1b\u0007", + "G\u0002\u0002\u0b1b\u0b1c\u0007T\u0002\u0002\u0b1c\u0b1d\u0007X\u0002", + "\u0002\u0b1d\u0b1e\u0007G\u0002\u0002\u0b1e\u0b1f\u0007T\u0002\u0002", + "\u0b1f\u0b20\u0007a\u0002\u0002\u0b20\u0b21\u0007E\u0002\u0002\u0b21", + "\u0b22\u0007G\u0002\u0002\u0b22\u0b23\u0007T\u0002\u0002\u0b23\u0b24", + "\u0007V\u0002\u0002\u0b24\u00c4\u0003\u0002\u0002\u0002\u0b25\u0b26", + "\u0007O\u0002\u0002\u0b26\u0b27\u0007C\u0002\u0002\u0b27\u0b28\u0007", + "V\u0002\u0002\u0b28\u0b29\u0007E\u0002\u0002\u0b29\u0b2a\u0007J\u0002", + "\u0002\u0b2a\u00c6\u0003\u0002\u0002\u0002\u0b2b\u0b2c\u0007O\u0002", + "\u0002\u0b2c\u0b2d\u0007C\u0002\u0002\u0b2d\u0b2e\u0007Z\u0002\u0002", + "\u0b2e\u0b2f\u0007X\u0002\u0002\u0b2f\u0b30\u0007C\u0002\u0002\u0b30", + "\u0b31\u0007N\u0002\u0002\u0b31\u0b32\u0007W\u0002\u0002\u0b32\u0b33", + "\u0007G\u0002\u0002\u0b33\u00c8\u0003\u0002\u0002\u0002\u0b34\u0b35", + "\u0007O\u0002\u0002\u0b35\u0b36\u0007Q\u0002\u0002\u0b36\u0b37\u0007", + "F\u0002\u0002\u0b37\u0b38\u0007K\u0002\u0002\u0b38\u0b39\u0007H\u0002", + "\u0002\u0b39\u0b3a\u0007K\u0002\u0002\u0b3a\u0b3b\u0007G\u0002\u0002", + "\u0b3b\u0b3c\u0007U\u0002\u0002\u0b3c\u00ca\u0003\u0002\u0002\u0002", + "\u0b3d\u0b3e\u0007P\u0002\u0002\u0b3e\u0b3f\u0007C\u0002\u0002\u0b3f", + "\u0b40\u0007V\u0002\u0002\u0b40\u0b41\u0007W\u0002\u0002\u0b41\u0b42", + "\u0007T\u0002\u0002\u0b42\u0b43\u0007C\u0002\u0002\u0b43\u0b44\u0007", + "N\u0002\u0002\u0b44\u00cc\u0003\u0002\u0002\u0002\u0b45\u0b46\u0007", + "P\u0002\u0002\u0b46\u0b47\u0007Q\u0002\u0002\u0b47\u0b48\u0007V\u0002", + "\u0002\u0b48\u00ce\u0003\u0002\u0002\u0002\u0b49\u0b4a\u0007P\u0002", + "\u0002\u0b4a\u0b4b\u0007Q\u0002\u0002\u0b4b\u0b4c\u0007a\u0002\u0002", + "\u0b4c\u0b4d\u0007Y\u0002\u0002\u0b4d\u0b4e\u0007T\u0002\u0002\u0b4e", + "\u0b4f\u0007K\u0002\u0002\u0b4f\u0b50\u0007V\u0002\u0002\u0b50\u0b51", + "\u0007G\u0002\u0002\u0b51\u0b52\u0007a\u0002\u0002\u0b52\u0b53\u0007", + "V\u0002\u0002\u0b53\u0b54\u0007Q\u0002\u0002\u0b54\u0b55\u0007a\u0002", + "\u0002\u0b55\u0b56\u0007D\u0002\u0002\u0b56\u0b57\u0007K\u0002\u0002", + "\u0b57\u0b58\u0007P\u0002\u0002\u0b58\u0b59\u0007N\u0002\u0002\u0b59", + "\u0b5a\u0007Q\u0002\u0002\u0b5a\u0b5b\u0007I\u0002\u0002\u0b5b\u00d0", + "\u0003\u0002\u0002\u0002\u0b5c\u0b5d\u0007P\u0002\u0002\u0b5d\u0b5e", + "\u0007W\u0002\u0002\u0b5e\u0b5f\u0007N\u0002\u0002\u0b5f\u0b60\u0007", + "N\u0002\u0002\u0b60\u00d2\u0003\u0002\u0002\u0002\u0b61\u0b62\u0007", + "P\u0002\u0002\u0b62\u0b63\u0007W\u0002\u0002\u0b63\u0b64\u0007O\u0002", + "\u0002\u0b64\u0b65\u0007D\u0002\u0002\u0b65\u0b66\u0007G\u0002\u0002", + "\u0b66\u0b67\u0007T\u0002\u0002\u0b67\u00d4\u0003\u0002\u0002\u0002", + "\u0b68\u0b69\u0007Q\u0002\u0002\u0b69\u0b6a\u0007P\u0002\u0002\u0b6a", + "\u00d6\u0003\u0002\u0002\u0002\u0b6b\u0b6c\u0007Q\u0002\u0002\u0b6c", + "\u0b6d\u0007R\u0002\u0002\u0b6d\u0b6e\u0007V\u0002\u0002\u0b6e\u0b6f", + "\u0007K\u0002\u0002\u0b6f\u0b70\u0007O\u0002\u0002\u0b70\u0b71\u0007", + "K\u0002\u0002\u0b71\u0b72\u0007\\\u0002\u0002\u0b72\u0b73\u0007G\u0002", + "\u0002\u0b73\u00d8\u0003\u0002\u0002\u0002\u0b74\u0b75\u0007Q\u0002", + "\u0002\u0b75\u0b76\u0007R\u0002\u0002\u0b76\u0b77\u0007V\u0002\u0002", + "\u0b77\u0b78\u0007K\u0002\u0002\u0b78\u0b79\u0007Q\u0002\u0002\u0b79", + "\u0b7a\u0007P\u0002\u0002\u0b7a\u00da\u0003\u0002\u0002\u0002\u0b7b", + "\u0b7c\u0007Q\u0002\u0002\u0b7c\u0b7d\u0007R\u0002\u0002\u0b7d\u0b7e", + "\u0007V\u0002\u0002\u0b7e\u0b7f\u0007K\u0002\u0002\u0b7f\u0b80\u0007", + "Q\u0002\u0002\u0b80\u0b81\u0007P\u0002\u0002\u0b81\u0b82\u0007C\u0002", + "\u0002\u0b82\u0b83\u0007N\u0002\u0002\u0b83\u0b84\u0007N\u0002\u0002", + "\u0b84\u0b85\u0007[\u0002\u0002\u0b85\u00dc\u0003\u0002\u0002\u0002", + "\u0b86\u0b87\u0007Q\u0002\u0002\u0b87\u0b88\u0007T\u0002\u0002\u0b88", + "\u00de\u0003\u0002\u0002\u0002\u0b89\u0b8a\u0007Q\u0002\u0002\u0b8a", + "\u0b8b\u0007T\u0002\u0002\u0b8b\u0b8c\u0007F\u0002\u0002\u0b8c\u0b8d", + "\u0007G\u0002\u0002\u0b8d\u0b8e\u0007T\u0002\u0002\u0b8e\u00e0\u0003", + "\u0002\u0002\u0002\u0b8f\u0b90\u0007Q\u0002\u0002\u0b90\u0b91\u0007", + "W\u0002\u0002\u0b91\u0b92\u0007V\u0002\u0002\u0b92\u00e2\u0003\u0002", + "\u0002\u0002\u0b93\u0b94\u0007Q\u0002\u0002\u0b94\u0b95\u0007W\u0002", + "\u0002\u0b95\u0b96\u0007V\u0002\u0002\u0b96\u0b97\u0007G\u0002\u0002", + "\u0b97\u0b98\u0007T\u0002\u0002\u0b98\u00e4\u0003\u0002\u0002\u0002", + "\u0b99\u0b9a\u0007Q\u0002\u0002\u0b9a\u0b9b\u0007W\u0002\u0002\u0b9b", + "\u0b9c\u0007V\u0002\u0002\u0b9c\u0b9d\u0007H\u0002\u0002\u0b9d\u0b9e", + "\u0007K\u0002\u0002\u0b9e\u0b9f\u0007N\u0002\u0002\u0b9f\u0ba0\u0007", + "G\u0002\u0002\u0ba0\u00e6\u0003\u0002\u0002\u0002\u0ba1\u0ba2\u0007", + "R\u0002\u0002\u0ba2\u0ba3\u0007C\u0002\u0002\u0ba3\u0ba4\u0007T\u0002", + "\u0002\u0ba4\u0ba5\u0007V\u0002\u0002\u0ba5\u0ba6\u0007K\u0002\u0002", + "\u0ba6\u0ba7\u0007V\u0002\u0002\u0ba7\u0ba8\u0007K\u0002\u0002\u0ba8", + "\u0ba9\u0007Q\u0002\u0002\u0ba9\u0baa\u0007P\u0002\u0002\u0baa\u00e8", + "\u0003\u0002\u0002\u0002\u0bab\u0bac\u0007R\u0002\u0002\u0bac\u0bad", + "\u0007T\u0002\u0002\u0bad\u0bae\u0007K\u0002\u0002\u0bae\u0baf\u0007", + "O\u0002\u0002\u0baf\u0bb0\u0007C\u0002\u0002\u0bb0\u0bb1\u0007T\u0002", + "\u0002\u0bb1\u0bb2\u0007[\u0002\u0002\u0bb2\u00ea\u0003\u0002\u0002", + "\u0002\u0bb3\u0bb4\u0007R\u0002\u0002\u0bb4\u0bb5\u0007T\u0002\u0002", + "\u0bb5\u0bb6\u0007Q\u0002\u0002\u0bb6\u0bb7\u0007E\u0002\u0002\u0bb7", + "\u0bb8\u0007G\u0002\u0002\u0bb8\u0bb9\u0007F\u0002\u0002\u0bb9\u0bba", + "\u0007W\u0002\u0002\u0bba\u0bbb\u0007T\u0002\u0002\u0bbb\u0bbc\u0007", + "G\u0002\u0002\u0bbc\u00ec\u0003\u0002\u0002\u0002\u0bbd\u0bbe\u0007", + "R\u0002\u0002\u0bbe\u0bbf\u0007W\u0002\u0002\u0bbf\u0bc0\u0007T\u0002", + "\u0002\u0bc0\u0bc1\u0007I\u0002\u0002\u0bc1\u0bc2\u0007G\u0002\u0002", + "\u0bc2\u00ee\u0003\u0002\u0002\u0002\u0bc3\u0bc4\u0007T\u0002\u0002", + "\u0bc4\u0bc5\u0007C\u0002\u0002\u0bc5\u0bc6\u0007P\u0002\u0002\u0bc6", + "\u0bc7\u0007I\u0002\u0002\u0bc7\u0bc8\u0007G\u0002\u0002\u0bc8\u00f0", + "\u0003\u0002\u0002\u0002\u0bc9\u0bca\u0007T\u0002\u0002\u0bca\u0bcb", + "\u0007G\u0002\u0002\u0bcb\u0bcc\u0007C\u0002\u0002\u0bcc\u0bcd\u0007", + "F\u0002\u0002\u0bcd\u00f2\u0003\u0002\u0002\u0002\u0bce\u0bcf\u0007", + "T\u0002\u0002\u0bcf\u0bd0\u0007G\u0002\u0002\u0bd0\u0bd1\u0007C\u0002", + "\u0002\u0bd1\u0bd2\u0007F\u0002\u0002\u0bd2\u0bd3\u0007U\u0002\u0002", + "\u0bd3\u00f4\u0003\u0002\u0002\u0002\u0bd4\u0bd5\u0007T\u0002\u0002", + "\u0bd5\u0bd6\u0007G\u0002\u0002\u0bd6\u0bd7\u0007H\u0002\u0002\u0bd7", + "\u0bd8\u0007G\u0002\u0002\u0bd8\u0bd9\u0007T\u0002\u0002\u0bd9\u0bda", + "\u0007G\u0002\u0002\u0bda\u0bdb\u0007P\u0002\u0002\u0bdb\u0bdc\u0007", + "E\u0002\u0002\u0bdc\u0bdd\u0007G\u0002\u0002\u0bdd\u0bde\u0007U\u0002", + "\u0002\u0bde\u00f6\u0003\u0002\u0002\u0002\u0bdf\u0be0\u0007T\u0002", + "\u0002\u0be0\u0be1\u0007G\u0002\u0002\u0be1\u0be2\u0007I\u0002\u0002", + "\u0be2\u0be3\u0007G\u0002\u0002\u0be3\u0be4\u0007Z\u0002\u0002\u0be4", + "\u0be5\u0007R\u0002\u0002\u0be5\u00f8\u0003\u0002\u0002\u0002\u0be6", + "\u0be7\u0007T\u0002\u0002\u0be7\u0be8\u0007G\u0002\u0002\u0be8\u0be9", + "\u0007N\u0002\u0002\u0be9\u0bea\u0007G\u0002\u0002\u0bea\u0beb\u0007", + "C\u0002\u0002\u0beb\u0bec\u0007U\u0002\u0002\u0bec\u0bed\u0007G\u0002", + "\u0002\u0bed\u00fa\u0003\u0002\u0002\u0002\u0bee\u0bef\u0007T\u0002", + "\u0002\u0bef\u0bf0\u0007G\u0002\u0002\u0bf0\u0bf1\u0007P\u0002\u0002", + "\u0bf1\u0bf2\u0007C\u0002\u0002\u0bf2\u0bf3\u0007O\u0002\u0002\u0bf3", + "\u0bf4\u0007G\u0002\u0002\u0bf4\u00fc\u0003\u0002\u0002\u0002\u0bf5", + "\u0bf6\u0007T\u0002\u0002\u0bf6\u0bf7\u0007G\u0002\u0002\u0bf7\u0bf8", + "\u0007R\u0002\u0002\u0bf8\u0bf9\u0007G\u0002\u0002\u0bf9\u0bfa\u0007", + "C\u0002\u0002\u0bfa\u0bfb\u0007V\u0002\u0002\u0bfb\u00fe\u0003\u0002", + "\u0002\u0002\u0bfc\u0bfd\u0007T\u0002\u0002\u0bfd\u0bfe\u0007G\u0002", + "\u0002\u0bfe\u0bff\u0007R\u0002\u0002\u0bff\u0c00\u0007N\u0002\u0002", + "\u0c00\u0c01\u0007C\u0002\u0002\u0c01\u0c02\u0007E\u0002\u0002\u0c02", + "\u0c03\u0007G\u0002\u0002\u0c03\u0100\u0003\u0002\u0002\u0002\u0c04", + "\u0c05\u0007T\u0002\u0002\u0c05\u0c06\u0007G\u0002\u0002\u0c06\u0c07", + "\u0007S\u0002\u0002\u0c07\u0c08\u0007W\u0002\u0002\u0c08\u0c09\u0007", + "K\u0002\u0002\u0c09\u0c0a\u0007T\u0002\u0002\u0c0a\u0c0b\u0007G\u0002", + "\u0002\u0c0b\u0102\u0003\u0002\u0002\u0002\u0c0c\u0c0d\u0007T\u0002", + "\u0002\u0c0d\u0c0e\u0007G\u0002\u0002\u0c0e\u0c0f\u0007U\u0002\u0002", + "\u0c0f\u0c10\u0007K\u0002\u0002\u0c10\u0c11\u0007I\u0002\u0002\u0c11", + "\u0c12\u0007P\u0002\u0002\u0c12\u0c13\u0007C\u0002\u0002\u0c13\u0c14", + "\u0007N\u0002\u0002\u0c14\u0104\u0003\u0002\u0002\u0002\u0c15\u0c16", + "\u0007T\u0002\u0002\u0c16\u0c17\u0007G\u0002\u0002\u0c17\u0c18\u0007", + "U\u0002\u0002\u0c18\u0c19\u0007V\u0002\u0002\u0c19\u0c1a\u0007T\u0002", + "\u0002\u0c1a\u0c1b\u0007K\u0002\u0002\u0c1b\u0c1c\u0007E\u0002\u0002", + "\u0c1c\u0c1d\u0007V\u0002\u0002\u0c1d\u0106\u0003\u0002\u0002\u0002", + "\u0c1e\u0c1f\u0007T\u0002\u0002\u0c1f\u0c20\u0007G\u0002\u0002\u0c20", + "\u0c21\u0007V\u0002\u0002\u0c21\u0c22\u0007W\u0002\u0002\u0c22\u0c23", + "\u0007T\u0002\u0002\u0c23\u0c24\u0007P\u0002\u0002\u0c24\u0108\u0003", + "\u0002\u0002\u0002\u0c25\u0c26\u0007T\u0002\u0002\u0c26\u0c27\u0007", + "G\u0002\u0002\u0c27\u0c28\u0007X\u0002\u0002\u0c28\u0c29\u0007Q\u0002", + "\u0002\u0c29\u0c2a\u0007M\u0002\u0002\u0c2a\u0c2b\u0007G\u0002\u0002", + "\u0c2b\u010a\u0003\u0002\u0002\u0002\u0c2c\u0c2d\u0007T\u0002\u0002", + "\u0c2d\u0c2e\u0007K\u0002\u0002\u0c2e\u0c2f\u0007I\u0002\u0002\u0c2f", + "\u0c30\u0007J\u0002\u0002\u0c30\u0c31\u0007V\u0002\u0002\u0c31\u010c", + "\u0003\u0002\u0002\u0002\u0c32\u0c33\u0007T\u0002\u0002\u0c33\u0c34", + "\u0007N\u0002\u0002\u0c34\u0c35\u0007K\u0002\u0002\u0c35\u0c36\u0007", + "M\u0002\u0002\u0c36\u0c37\u0007G\u0002\u0002\u0c37\u010e\u0003\u0002", + "\u0002\u0002\u0c38\u0c39\u0007U\u0002\u0002\u0c39\u0c3a\u0007E\u0002", + "\u0002\u0c3a\u0c3b\u0007J\u0002\u0002\u0c3b\u0c3c\u0007G\u0002\u0002", + "\u0c3c\u0c3d\u0007O\u0002\u0002\u0c3d\u0c3e\u0007C\u0002\u0002\u0c3e", + "\u0110\u0003\u0002\u0002\u0002\u0c3f\u0c40\u0007U\u0002\u0002\u0c40", + "\u0c41\u0007E\u0002\u0002\u0c41\u0c42\u0007J\u0002\u0002\u0c42\u0c43", + "\u0007G\u0002\u0002\u0c43\u0c44\u0007O\u0002\u0002\u0c44\u0c45\u0007", + "C\u0002\u0002\u0c45\u0c46\u0007U\u0002\u0002\u0c46\u0112\u0003\u0002", + "\u0002\u0002\u0c47\u0c48\u0007U\u0002\u0002\u0c48\u0c49\u0007G\u0002", + "\u0002\u0c49\u0c4a\u0007N\u0002\u0002\u0c4a\u0c4b\u0007G\u0002\u0002", + "\u0c4b\u0c4c\u0007E\u0002\u0002\u0c4c\u0c4d\u0007V\u0002\u0002\u0c4d", + "\u0114\u0003\u0002\u0002\u0002\u0c4e\u0c4f\u0007U\u0002\u0002\u0c4f", + "\u0c50\u0007G\u0002\u0002\u0c50\u0c51\u0007V\u0002\u0002\u0c51\u0116", + "\u0003\u0002\u0002\u0002\u0c52\u0c53\u0007U\u0002\u0002\u0c53\u0c54", + "\u0007G\u0002\u0002\u0c54\u0c55\u0007R\u0002\u0002\u0c55\u0c56\u0007", + "C\u0002\u0002\u0c56\u0c57\u0007T\u0002\u0002\u0c57\u0c58\u0007C\u0002", + "\u0002\u0c58\u0c59\u0007V\u0002\u0002\u0c59\u0c5a\u0007Q\u0002\u0002", + "\u0c5a\u0c5b\u0007T\u0002\u0002\u0c5b\u0118\u0003\u0002\u0002\u0002", + "\u0c5c\u0c5d\u0007U\u0002\u0002\u0c5d\u0c5e\u0007J\u0002\u0002\u0c5e", + "\u0c5f\u0007Q\u0002\u0002\u0c5f\u0c60\u0007Y\u0002\u0002\u0c60\u011a", + "\u0003\u0002\u0002\u0002\u0c61\u0c62\u0007U\u0002\u0002\u0c62\u0c63", + "\u0007K\u0002\u0002\u0c63\u0c64\u0007I\u0002\u0002\u0c64\u0c65\u0007", + "P\u0002\u0002\u0c65\u0c66\u0007C\u0002\u0002\u0c66\u0c67\u0007N\u0002", + "\u0002\u0c67\u011c\u0003\u0002\u0002\u0002\u0c68\u0c69\u0007U\u0002", + "\u0002\u0c69\u0c6a\u0007R\u0002\u0002\u0c6a\u0c6b\u0007C\u0002\u0002", + "\u0c6b\u0c6c\u0007V\u0002\u0002\u0c6c\u0c6d\u0007K\u0002\u0002\u0c6d", + "\u0c6e\u0007C\u0002\u0002\u0c6e\u0c6f\u0007N\u0002\u0002\u0c6f\u011e", + "\u0003\u0002\u0002\u0002\u0c70\u0c71\u0007U\u0002\u0002\u0c71\u0c72", + "\u0007S\u0002\u0002\u0c72\u0c73\u0007N\u0002\u0002\u0c73\u0120\u0003", + "\u0002\u0002\u0002\u0c74\u0c75\u0007U\u0002\u0002\u0c75\u0c76\u0007", + "S\u0002\u0002\u0c76\u0c77\u0007N\u0002\u0002\u0c77\u0c78\u0007G\u0002", + "\u0002\u0c78\u0c79\u0007Z\u0002\u0002\u0c79\u0c7a\u0007E\u0002\u0002", + "\u0c7a\u0c7b\u0007G\u0002\u0002\u0c7b\u0c7c\u0007R\u0002\u0002\u0c7c", + "\u0c7d\u0007V\u0002\u0002\u0c7d\u0c7e\u0007K\u0002\u0002\u0c7e\u0c7f", + "\u0007Q\u0002\u0002\u0c7f\u0c80\u0007P\u0002\u0002\u0c80\u0122\u0003", + "\u0002\u0002\u0002\u0c81\u0c82\u0007U\u0002\u0002\u0c82\u0c83\u0007", + "S\u0002\u0002\u0c83\u0c84\u0007N\u0002\u0002\u0c84\u0c85\u0007U\u0002", + "\u0002\u0c85\u0c86\u0007V\u0002\u0002\u0c86\u0c87\u0007C\u0002\u0002", + "\u0c87\u0c88\u0007V\u0002\u0002\u0c88\u0c89\u0007G\u0002\u0002\u0c89", + "\u0124\u0003\u0002\u0002\u0002\u0c8a\u0c8b\u0007U\u0002\u0002\u0c8b", + "\u0c8c\u0007S\u0002\u0002\u0c8c\u0c8d\u0007N\u0002\u0002\u0c8d\u0c8e", + "\u0007Y\u0002\u0002\u0c8e\u0c8f\u0007C\u0002\u0002\u0c8f\u0c90\u0007", + "T\u0002\u0002\u0c90\u0c91\u0007P\u0002\u0002\u0c91\u0c92\u0007K\u0002", + "\u0002\u0c92\u0c93\u0007P\u0002\u0002\u0c93\u0c94\u0007I\u0002\u0002", + "\u0c94\u0126\u0003\u0002\u0002\u0002\u0c95\u0c96\u0007U\u0002\u0002", + "\u0c96\u0c97\u0007S\u0002\u0002\u0c97\u0c98\u0007N\u0002\u0002\u0c98", + "\u0c99\u0007a\u0002\u0002\u0c99\u0c9a\u0007D\u0002\u0002\u0c9a\u0c9b", + "\u0007K\u0002\u0002\u0c9b\u0c9c\u0007I\u0002\u0002\u0c9c\u0c9d\u0007", + "a\u0002\u0002\u0c9d\u0c9e\u0007T\u0002\u0002\u0c9e\u0c9f\u0007G\u0002", + "\u0002\u0c9f\u0ca0\u0007U\u0002\u0002\u0ca0\u0ca1\u0007W\u0002\u0002", + "\u0ca1\u0ca2\u0007N\u0002\u0002\u0ca2\u0ca3\u0007V\u0002\u0002\u0ca3", + "\u0128\u0003\u0002\u0002\u0002\u0ca4\u0ca5\u0007U\u0002\u0002\u0ca5", + "\u0ca6\u0007S\u0002\u0002\u0ca6\u0ca7\u0007N\u0002\u0002\u0ca7\u0ca8", + "\u0007a\u0002\u0002\u0ca8\u0ca9\u0007E\u0002\u0002\u0ca9\u0caa\u0007", + "C\u0002\u0002\u0caa\u0cab\u0007N\u0002\u0002\u0cab\u0cac\u0007E\u0002", + "\u0002\u0cac\u0cad\u0007a\u0002\u0002\u0cad\u0cae\u0007H\u0002\u0002", + "\u0cae\u0caf\u0007Q\u0002\u0002\u0caf\u0cb0\u0007W\u0002\u0002\u0cb0", + "\u0cb1\u0007P\u0002\u0002\u0cb1\u0cb2\u0007F\u0002\u0002\u0cb2\u0cb3", + "\u0007a\u0002\u0002\u0cb3\u0cb4\u0007T\u0002\u0002\u0cb4\u0cb5\u0007", + "Q\u0002\u0002\u0cb5\u0cb6\u0007Y\u0002\u0002\u0cb6\u0cb7\u0007U\u0002", + "\u0002\u0cb7\u012a\u0003\u0002\u0002\u0002\u0cb8\u0cb9\u0007U\u0002", + "\u0002\u0cb9\u0cba\u0007S\u0002\u0002\u0cba\u0cbb\u0007N\u0002\u0002", + "\u0cbb\u0cbc\u0007a\u0002\u0002\u0cbc\u0cbd\u0007U\u0002\u0002\u0cbd", + "\u0cbe\u0007O\u0002\u0002\u0cbe\u0cbf\u0007C\u0002\u0002\u0cbf\u0cc0", + "\u0007N\u0002\u0002\u0cc0\u0cc1\u0007N\u0002\u0002\u0cc1\u0cc2\u0007", + "a\u0002\u0002\u0cc2\u0cc3\u0007T\u0002\u0002\u0cc3\u0cc4\u0007G\u0002", + "\u0002\u0cc4\u0cc5\u0007U\u0002\u0002\u0cc5\u0cc6\u0007W\u0002\u0002", + "\u0cc6\u0cc7\u0007N\u0002\u0002\u0cc7\u0cc8\u0007V\u0002\u0002\u0cc8", + "\u012c\u0003\u0002\u0002\u0002\u0cc9\u0cca\u0007U\u0002\u0002\u0cca", + "\u0ccb\u0007U\u0002\u0002\u0ccb\u0ccc\u0007N\u0002\u0002\u0ccc\u012e", + "\u0003\u0002\u0002\u0002\u0ccd\u0cce\u0007U\u0002\u0002\u0cce\u0ccf", + "\u0007V\u0002\u0002\u0ccf\u0cd0\u0007C\u0002\u0002\u0cd0\u0cd1\u0007", + "E\u0002\u0002\u0cd1\u0cd2\u0007M\u0002\u0002\u0cd2\u0cd3\u0007G\u0002", + "\u0002\u0cd3\u0cd4\u0007F\u0002\u0002\u0cd4\u0130\u0003\u0002\u0002", + "\u0002\u0cd5\u0cd6\u0007U\u0002\u0002\u0cd6\u0cd7\u0007V\u0002\u0002", + "\u0cd7\u0cd8\u0007C\u0002\u0002\u0cd8\u0cd9\u0007T\u0002\u0002\u0cd9", + "\u0cda\u0007V\u0002\u0002\u0cda\u0cdb\u0007K\u0002\u0002\u0cdb\u0cdc", + "\u0007P\u0002\u0002\u0cdc\u0cdd\u0007I\u0002\u0002\u0cdd\u0132\u0003", + "\u0002\u0002\u0002\u0cde\u0cdf\u0007U\u0002\u0002\u0cdf\u0ce0\u0007", + "V\u0002\u0002\u0ce0\u0ce1\u0007T\u0002\u0002\u0ce1\u0ce2\u0007C\u0002", + "\u0002\u0ce2\u0ce3\u0007K\u0002\u0002\u0ce3\u0ce4\u0007I\u0002\u0002", + "\u0ce4\u0ce5\u0007J\u0002\u0002\u0ce5\u0ce6\u0007V\u0002\u0002\u0ce6", + "\u0ce7\u0007a\u0002\u0002\u0ce7\u0ce8\u0007L\u0002\u0002\u0ce8\u0ce9", + "\u0007Q\u0002\u0002\u0ce9\u0cea\u0007K\u0002\u0002\u0cea\u0ceb\u0007", + "P\u0002\u0002\u0ceb\u0134\u0003\u0002\u0002\u0002\u0cec\u0ced\u0007", + "V\u0002\u0002\u0ced\u0cee\u0007C\u0002\u0002\u0cee\u0cef\u0007D\u0002", + "\u0002\u0cef\u0cf0\u0007N\u0002\u0002\u0cf0\u0cf1\u0007G\u0002\u0002", + "\u0cf1\u0136\u0003\u0002\u0002\u0002\u0cf2\u0cf3\u0007V\u0002\u0002", + "\u0cf3\u0cf4\u0007G\u0002\u0002\u0cf4\u0cf5\u0007T\u0002\u0002\u0cf5", + "\u0cf6\u0007O\u0002\u0002\u0cf6\u0cf7\u0007K\u0002\u0002\u0cf7\u0cf8", + "\u0007P\u0002\u0002\u0cf8\u0cf9\u0007C\u0002\u0002\u0cf9\u0cfa\u0007", + "V\u0002\u0002\u0cfa\u0cfb\u0007G\u0002\u0002\u0cfb\u0cfc\u0007F\u0002", + "\u0002\u0cfc\u0138\u0003\u0002\u0002\u0002\u0cfd\u0cfe\u0007V\u0002", + "\u0002\u0cfe\u0cff\u0007J\u0002\u0002\u0cff\u0d00\u0007G\u0002\u0002", + "\u0d00\u0d01\u0007P\u0002\u0002\u0d01\u013a\u0003\u0002\u0002\u0002", + "\u0d02\u0d03\u0007V\u0002\u0002\u0d03\u0d04\u0007Q\u0002\u0002\u0d04", + "\u013c\u0003\u0002\u0002\u0002\u0d05\u0d06\u0007V\u0002\u0002\u0d06", + "\u0d07\u0007T\u0002\u0002\u0d07\u0d08\u0007C\u0002\u0002\u0d08\u0d09", + "\u0007K\u0002\u0002\u0d09\u0d0a\u0007N\u0002\u0002\u0d0a\u0d0b\u0007", + "K\u0002\u0002\u0d0b\u0d0c\u0007P\u0002\u0002\u0d0c\u0d0d\u0007I\u0002", + "\u0002\u0d0d\u013e\u0003\u0002\u0002\u0002\u0d0e\u0d0f\u0007V\u0002", + "\u0002\u0d0f\u0d10\u0007T\u0002\u0002\u0d10\u0d11\u0007K\u0002\u0002", + "\u0d11\u0d12\u0007I\u0002\u0002\u0d12\u0d13\u0007I\u0002\u0002\u0d13", + "\u0d14\u0007G\u0002\u0002\u0d14\u0d15\u0007T\u0002\u0002\u0d15\u0140", + "\u0003\u0002\u0002\u0002\u0d16\u0d17\u0007V\u0002\u0002\u0d17\u0d18", + "\u0007T\u0002\u0002\u0d18\u0d19\u0007W\u0002\u0002\u0d19\u0d1a\u0007", + "G\u0002\u0002\u0d1a\u0142\u0003\u0002\u0002\u0002\u0d1b\u0d1c\u0007", + "W\u0002\u0002\u0d1c\u0d1d\u0007P\u0002\u0002\u0d1d\u0d1e\u0007F\u0002", + "\u0002\u0d1e\u0d1f\u0007Q\u0002\u0002\u0d1f\u0144\u0003\u0002\u0002", + "\u0002\u0d20\u0d21\u0007W\u0002\u0002\u0d21\u0d22\u0007P\u0002\u0002", + "\u0d22\u0d23\u0007K\u0002\u0002\u0d23\u0d24\u0007Q\u0002\u0002\u0d24", + "\u0d25\u0007P\u0002\u0002\u0d25\u0146\u0003\u0002\u0002\u0002\u0d26", + "\u0d27\u0007W\u0002\u0002\u0d27\u0d28\u0007P\u0002\u0002\u0d28\u0d29", + "\u0007K\u0002\u0002\u0d29\u0d2a\u0007S\u0002\u0002\u0d2a\u0d2b\u0007", + "W\u0002\u0002\u0d2b\u0d2c\u0007G\u0002\u0002\u0d2c\u0148\u0003\u0002", + "\u0002\u0002\u0d2d\u0d2e\u0007W\u0002\u0002\u0d2e\u0d2f\u0007P\u0002", + "\u0002\u0d2f\u0d30\u0007N\u0002\u0002\u0d30\u0d31\u0007Q\u0002\u0002", + "\u0d31\u0d32\u0007E\u0002\u0002\u0d32\u0d33\u0007M\u0002\u0002\u0d33", + "\u014a\u0003\u0002\u0002\u0002\u0d34\u0d35\u0007W\u0002\u0002\u0d35", + "\u0d36\u0007P\u0002\u0002\u0d36\u0d37\u0007U\u0002\u0002\u0d37\u0d38", + "\u0007K\u0002\u0002\u0d38\u0d39\u0007I\u0002\u0002\u0d39\u0d3a\u0007", + "P\u0002\u0002\u0d3a\u0d3b\u0007G\u0002\u0002\u0d3b\u0d3c\u0007F\u0002", + "\u0002\u0d3c\u014c\u0003\u0002\u0002\u0002\u0d3d\u0d3e\u0007W\u0002", + "\u0002\u0d3e\u0d3f\u0007R\u0002\u0002\u0d3f\u0d40\u0007F\u0002\u0002", + "\u0d40\u0d41\u0007C\u0002\u0002\u0d41\u0d42\u0007V\u0002\u0002\u0d42", + "\u0d43\u0007G\u0002\u0002\u0d43\u014e\u0003\u0002\u0002\u0002\u0d44", + "\u0d45\u0007W\u0002\u0002\u0d45\u0d46\u0007U\u0002\u0002\u0d46\u0d47", + "\u0007C\u0002\u0002\u0d47\u0d48\u0007I\u0002\u0002\u0d48\u0d49\u0007", + "G\u0002\u0002\u0d49\u0150\u0003\u0002\u0002\u0002\u0d4a\u0d4b\u0007", + "W\u0002\u0002\u0d4b\u0d4c\u0007U\u0002\u0002\u0d4c\u0d4d\u0007G\u0002", + "\u0002\u0d4d\u0152\u0003\u0002\u0002\u0002\u0d4e\u0d4f\u0007W\u0002", + "\u0002\u0d4f\u0d50\u0007U\u0002\u0002\u0d50\u0d51\u0007K\u0002\u0002", + "\u0d51\u0d52\u0007P\u0002\u0002\u0d52\u0d53\u0007I\u0002\u0002\u0d53", + "\u0154\u0003\u0002\u0002\u0002\u0d54\u0d55\u0007X\u0002\u0002\u0d55", + "\u0d56\u0007C\u0002\u0002\u0d56\u0d57\u0007N\u0002\u0002\u0d57\u0d58", + "\u0007W\u0002\u0002\u0d58\u0d59\u0007G\u0002\u0002\u0d59\u0d5a\u0007", + "U\u0002\u0002\u0d5a\u0156\u0003\u0002\u0002\u0002\u0d5b\u0d5c\u0007", + "Y\u0002\u0002\u0d5c\u0d5d\u0007J\u0002\u0002\u0d5d\u0d5e\u0007G\u0002", + "\u0002\u0d5e\u0d5f\u0007P\u0002\u0002\u0d5f\u0158\u0003\u0002\u0002", + "\u0002\u0d60\u0d61\u0007Y\u0002\u0002\u0d61\u0d62\u0007J\u0002\u0002", + "\u0d62\u0d63\u0007G\u0002\u0002\u0d63\u0d64\u0007T\u0002\u0002\u0d64", + "\u0d65\u0007G\u0002\u0002\u0d65\u015a\u0003\u0002\u0002\u0002\u0d66", + "\u0d67\u0007Y\u0002\u0002\u0d67\u0d68\u0007J\u0002\u0002\u0d68\u0d69", + "\u0007K\u0002\u0002\u0d69\u0d6a\u0007N\u0002\u0002\u0d6a\u0d6b\u0007", + "G\u0002\u0002\u0d6b\u015c\u0003\u0002\u0002\u0002\u0d6c\u0d6d\u0007", + "Y\u0002\u0002\u0d6d\u0d6e\u0007K\u0002\u0002\u0d6e\u0d6f\u0007V\u0002", + "\u0002\u0d6f\u0d70\u0007J\u0002\u0002\u0d70\u015e\u0003\u0002\u0002", + "\u0002\u0d71\u0d72\u0007Y\u0002\u0002\u0d72\u0d73\u0007T\u0002\u0002", + "\u0d73\u0d74\u0007K\u0002\u0002\u0d74\u0d75\u0007V\u0002\u0002\u0d75", + "\u0d76\u0007G\u0002\u0002\u0d76\u0160\u0003\u0002\u0002\u0002\u0d77", + "\u0d78\u0007Z\u0002\u0002\u0d78\u0d79\u0007Q\u0002\u0002\u0d79\u0d7a", + "\u0007T\u0002\u0002\u0d7a\u0162\u0003\u0002\u0002\u0002\u0d7b\u0d7c", + "\u0007\\\u0002\u0002\u0d7c\u0d7d\u0007G\u0002\u0002\u0d7d\u0d7e\u0007", + "T\u0002\u0002\u0d7e\u0d7f\u0007Q\u0002\u0002\u0d7f\u0d80\u0007H\u0002", + "\u0002\u0d80\u0d81\u0007K\u0002\u0002\u0d81\u0d82\u0007N\u0002\u0002", + "\u0d82\u0d83\u0007N\u0002\u0002\u0d83\u0164\u0003\u0002\u0002\u0002", + "\u0d84\u0d85\u0007V\u0002\u0002\u0d85\u0d86\u0007K\u0002\u0002\u0d86", + "\u0d87\u0007P\u0002\u0002\u0d87\u0d88\u0007[\u0002\u0002\u0d88\u0d89", + "\u0007K\u0002\u0002\u0d89\u0d8a\u0007P\u0002\u0002\u0d8a\u0d8b\u0007", + "V\u0002\u0002\u0d8b\u0166\u0003\u0002\u0002\u0002\u0d8c\u0d8d\u0007", + "U\u0002\u0002\u0d8d\u0d8e\u0007O\u0002\u0002\u0d8e\u0d8f\u0007C\u0002", + "\u0002\u0d8f\u0d90\u0007N\u0002\u0002\u0d90\u0d91\u0007N\u0002\u0002", + "\u0d91\u0d92\u0007K\u0002\u0002\u0d92\u0d93\u0007P\u0002\u0002\u0d93", + "\u0d94\u0007V\u0002\u0002\u0d94\u0168\u0003\u0002\u0002\u0002\u0d95", + "\u0d96\u0007O\u0002\u0002\u0d96\u0d97\u0007G\u0002\u0002\u0d97\u0d98", + "\u0007F\u0002\u0002\u0d98\u0d99\u0007K\u0002\u0002\u0d99\u0d9a\u0007", + "W\u0002\u0002\u0d9a\u0d9b\u0007O\u0002\u0002\u0d9b\u0d9c\u0007K\u0002", + "\u0002\u0d9c\u0d9d\u0007P\u0002\u0002\u0d9d\u0d9e\u0007V\u0002\u0002", + "\u0d9e\u016a\u0003\u0002\u0002\u0002\u0d9f\u0da0\u0007O\u0002\u0002", + "\u0da0\u0da1\u0007K\u0002\u0002\u0da1\u0da2\u0007F\u0002\u0002\u0da2", + "\u0da3\u0007F\u0002\u0002\u0da3\u0da4\u0007N\u0002\u0002\u0da4\u0da5", + "\u0007G\u0002\u0002\u0da5\u0da6\u0007K\u0002\u0002\u0da6\u0da7\u0007", + "P\u0002\u0002\u0da7\u0da8\u0007V\u0002\u0002\u0da8\u016c\u0003\u0002", + "\u0002\u0002\u0da9\u0daa\u0007K\u0002\u0002\u0daa\u0dab\u0007P\u0002", + "\u0002\u0dab\u0dac\u0007V\u0002\u0002\u0dac\u016e\u0003\u0002\u0002", + "\u0002\u0dad\u0dae\u0007K\u0002\u0002\u0dae\u0daf\u0007P\u0002\u0002", + "\u0daf\u0db0\u0007V\u0002\u0002\u0db0\u0db1\u00073\u0002\u0002\u0db1", + "\u0170\u0003\u0002\u0002\u0002\u0db2\u0db3\u0007K\u0002\u0002\u0db3", + "\u0db4\u0007P\u0002\u0002\u0db4\u0db5\u0007V\u0002\u0002\u0db5\u0db6", + "\u00074\u0002\u0002\u0db6\u0172\u0003\u0002\u0002\u0002\u0db7\u0db8", + "\u0007K\u0002\u0002\u0db8\u0db9\u0007P\u0002\u0002\u0db9\u0dba\u0007", + "V\u0002\u0002\u0dba\u0dbb\u00075\u0002\u0002\u0dbb\u0174\u0003\u0002", + "\u0002\u0002\u0dbc\u0dbd\u0007K\u0002\u0002\u0dbd\u0dbe\u0007P\u0002", + "\u0002\u0dbe\u0dbf\u0007V\u0002\u0002\u0dbf\u0dc0\u00076\u0002\u0002", + "\u0dc0\u0176\u0003\u0002\u0002\u0002\u0dc1\u0dc2\u0007K\u0002\u0002", + "\u0dc2\u0dc3\u0007P\u0002\u0002\u0dc3\u0dc4\u0007V\u0002\u0002\u0dc4", + "\u0dc5\u0007:\u0002\u0002\u0dc5\u0178\u0003\u0002\u0002\u0002\u0dc6", + "\u0dc7\u0007K\u0002\u0002\u0dc7\u0dc8\u0007P\u0002\u0002\u0dc8\u0dc9", + "\u0007V\u0002\u0002\u0dc9\u0dca\u0007G\u0002\u0002\u0dca\u0dcb\u0007", + "I\u0002\u0002\u0dcb\u0dcc\u0007G\u0002\u0002\u0dcc\u0dcd\u0007T\u0002", + "\u0002\u0dcd\u017a\u0003\u0002\u0002\u0002\u0dce\u0dcf\u0007D\u0002", + "\u0002\u0dcf\u0dd0\u0007K\u0002\u0002\u0dd0\u0dd1\u0007I\u0002\u0002", + "\u0dd1\u0dd2\u0007K\u0002\u0002\u0dd2\u0dd3\u0007P\u0002\u0002\u0dd3", + "\u0dd4\u0007V\u0002\u0002\u0dd4\u017c\u0003\u0002\u0002\u0002\u0dd5", + "\u0dd6\u0007T\u0002\u0002\u0dd6\u0dd7\u0007G\u0002\u0002\u0dd7\u0dd8", + "\u0007C\u0002\u0002\u0dd8\u0dd9\u0007N\u0002\u0002\u0dd9\u017e\u0003", + "\u0002\u0002\u0002\u0dda\u0ddb\u0007F\u0002\u0002\u0ddb\u0ddc\u0007", + "Q\u0002\u0002\u0ddc\u0ddd\u0007W\u0002\u0002\u0ddd\u0dde\u0007D\u0002", + "\u0002\u0dde\u0ddf\u0007N\u0002\u0002\u0ddf\u0de0\u0007G\u0002\u0002", + "\u0de0\u0180\u0003\u0002\u0002\u0002\u0de1\u0de2\u0007R\u0002\u0002", + "\u0de2\u0de3\u0007T\u0002\u0002\u0de3\u0de4\u0007G\u0002\u0002\u0de4", + "\u0de5\u0007E\u0002\u0002\u0de5\u0de6\u0007K\u0002\u0002\u0de6\u0de7", + "\u0007U\u0002\u0002\u0de7\u0de8\u0007K\u0002\u0002\u0de8\u0de9\u0007", + "Q\u0002\u0002\u0de9\u0dea\u0007P\u0002\u0002\u0dea\u0182\u0003\u0002", + "\u0002\u0002\u0deb\u0dec\u0007H\u0002\u0002\u0dec\u0ded\u0007N\u0002", + "\u0002\u0ded\u0dee\u0007Q\u0002\u0002\u0dee\u0def\u0007C\u0002\u0002", + "\u0def\u0df0\u0007V\u0002\u0002\u0df0\u0184\u0003\u0002\u0002\u0002", + "\u0df1\u0df2\u0007H\u0002\u0002\u0df2\u0df3\u0007N\u0002\u0002\u0df3", + "\u0df4\u0007Q\u0002\u0002\u0df4\u0df5\u0007C\u0002\u0002\u0df5\u0df6", + "\u0007V\u0002\u0002\u0df6\u0df7\u00076\u0002\u0002\u0df7\u0186\u0003", + "\u0002\u0002\u0002\u0df8\u0df9\u0007H\u0002\u0002\u0df9\u0dfa\u0007", + "N\u0002\u0002\u0dfa\u0dfb\u0007Q\u0002\u0002\u0dfb\u0dfc\u0007C\u0002", + "\u0002\u0dfc\u0dfd\u0007V\u0002\u0002\u0dfd\u0dfe\u0007:\u0002\u0002", + "\u0dfe\u0188\u0003\u0002\u0002\u0002\u0dff\u0e00\u0007F\u0002\u0002", + "\u0e00\u0e01\u0007G\u0002\u0002\u0e01\u0e02\u0007E\u0002\u0002\u0e02", + "\u0e03\u0007K\u0002\u0002\u0e03\u0e04\u0007O\u0002\u0002\u0e04\u0e05", + "\u0007C\u0002\u0002\u0e05\u0e06\u0007N\u0002\u0002\u0e06\u018a\u0003", + "\u0002\u0002\u0002\u0e07\u0e08\u0007F\u0002\u0002\u0e08\u0e09\u0007", + "G\u0002\u0002\u0e09\u0e0a\u0007E\u0002\u0002\u0e0a\u018c\u0003\u0002", + "\u0002\u0002\u0e0b\u0e0c\u0007P\u0002\u0002\u0e0c\u0e0d\u0007W\u0002", + "\u0002\u0e0d\u0e0e\u0007O\u0002\u0002\u0e0e\u0e0f\u0007G\u0002\u0002", + "\u0e0f\u0e10\u0007T\u0002\u0002\u0e10\u0e11\u0007K\u0002\u0002\u0e11", + "\u0e12\u0007E\u0002\u0002\u0e12\u018e\u0003\u0002\u0002\u0002\u0e13", + "\u0e14\u0007F\u0002\u0002\u0e14\u0e15\u0007C\u0002\u0002\u0e15\u0e16", + "\u0007V\u0002\u0002\u0e16\u0e17\u0007G\u0002\u0002\u0e17\u0190\u0003", + "\u0002\u0002\u0002\u0e18\u0e19\u0007V\u0002\u0002\u0e19\u0e1a\u0007", + "K\u0002\u0002\u0e1a\u0e1b\u0007O\u0002\u0002\u0e1b\u0e1c\u0007G\u0002", + "\u0002\u0e1c\u0192\u0003\u0002\u0002\u0002\u0e1d\u0e1e\u0007V\u0002", + "\u0002\u0e1e\u0e1f\u0007K\u0002\u0002\u0e1f\u0e20\u0007O\u0002\u0002", + "\u0e20\u0e21\u0007G\u0002\u0002\u0e21\u0e22\u0007U\u0002\u0002\u0e22", + "\u0e23\u0007V\u0002\u0002\u0e23\u0e24\u0007C\u0002\u0002\u0e24\u0e25", + "\u0007O\u0002\u0002\u0e25\u0e26\u0007R\u0002\u0002\u0e26\u0194\u0003", + "\u0002\u0002\u0002\u0e27\u0e28\u0007F\u0002\u0002\u0e28\u0e29\u0007", + "C\u0002\u0002\u0e29\u0e2a\u0007V\u0002\u0002\u0e2a\u0e2b\u0007G\u0002", + "\u0002\u0e2b\u0e2c\u0007V\u0002\u0002\u0e2c\u0e2d\u0007K\u0002\u0002", + "\u0e2d\u0e2e\u0007O\u0002\u0002\u0e2e\u0e2f\u0007G\u0002\u0002\u0e2f", + "\u0196\u0003\u0002\u0002\u0002\u0e30\u0e31\u0007[\u0002\u0002\u0e31", + "\u0e32\u0007G\u0002\u0002\u0e32\u0e33\u0007C\u0002\u0002\u0e33\u0e34", + "\u0007T\u0002\u0002\u0e34\u0198\u0003\u0002\u0002\u0002\u0e35\u0e36", + "\u0007E\u0002\u0002\u0e36\u0e37\u0007J\u0002\u0002\u0e37\u0e38\u0007", + "C\u0002\u0002\u0e38\u0e39\u0007T\u0002\u0002\u0e39\u019a\u0003\u0002", + "\u0002\u0002\u0e3a\u0e3b\u0007X\u0002\u0002\u0e3b\u0e3c\u0007C\u0002", + "\u0002\u0e3c\u0e3d\u0007T\u0002\u0002\u0e3d\u0e3e\u0007E\u0002\u0002", + "\u0e3e\u0e3f\u0007J\u0002\u0002\u0e3f\u0e40\u0007C\u0002\u0002\u0e40", + "\u0e41\u0007T\u0002\u0002\u0e41\u019c\u0003\u0002\u0002\u0002\u0e42", + "\u0e43\u0007P\u0002\u0002\u0e43\u0e44\u0007X\u0002\u0002\u0e44\u0e45", + "\u0007C\u0002\u0002\u0e45\u0e46\u0007T\u0002\u0002\u0e46\u0e47\u0007", + "E\u0002\u0002\u0e47\u0e48\u0007J\u0002\u0002\u0e48\u0e49\u0007C\u0002", + "\u0002\u0e49\u0e4a\u0007T\u0002\u0002\u0e4a\u019e\u0003\u0002\u0002", + "\u0002\u0e4b\u0e4c\u0007P\u0002\u0002\u0e4c\u0e4d\u0007C\u0002\u0002", + "\u0e4d\u0e4e\u0007V\u0002\u0002\u0e4e\u0e4f\u0007K\u0002\u0002\u0e4f", + "\u0e50\u0007Q\u0002\u0002\u0e50\u0e51\u0007P\u0002\u0002\u0e51\u0e52", + "\u0007C\u0002\u0002\u0e52\u0e53\u0007N\u0002\u0002\u0e53\u01a0\u0003", + "\u0002\u0002\u0002\u0e54\u0e55\u0007D\u0002\u0002\u0e55\u0e56\u0007", + "K\u0002\u0002\u0e56\u0e57\u0007P\u0002\u0002\u0e57\u0e58\u0007C\u0002", + "\u0002\u0e58\u0e59\u0007T\u0002\u0002\u0e59\u0e5a\u0007[\u0002\u0002", + "\u0e5a\u01a2\u0003\u0002\u0002\u0002\u0e5b\u0e5c\u0007X\u0002\u0002", + "\u0e5c\u0e5d\u0007C\u0002\u0002\u0e5d\u0e5e\u0007T\u0002\u0002\u0e5e", + "\u0e5f\u0007D\u0002\u0002\u0e5f\u0e60\u0007K\u0002\u0002\u0e60\u0e61", + "\u0007P\u0002\u0002\u0e61\u0e62\u0007C\u0002\u0002\u0e62\u0e63\u0007", + "T\u0002\u0002\u0e63\u0e64\u0007[\u0002\u0002\u0e64\u01a4\u0003\u0002", + "\u0002\u0002\u0e65\u0e66\u0007V\u0002\u0002\u0e66\u0e67\u0007K\u0002", + "\u0002\u0e67\u0e68\u0007P\u0002\u0002\u0e68\u0e69\u0007[\u0002\u0002", + "\u0e69\u0e6a\u0007D\u0002\u0002\u0e6a\u0e6b\u0007N\u0002\u0002\u0e6b", + "\u0e6c\u0007Q\u0002\u0002\u0e6c\u0e6d\u0007D\u0002\u0002\u0e6d\u01a6", + "\u0003\u0002\u0002\u0002\u0e6e\u0e6f\u0007D\u0002\u0002\u0e6f\u0e70", + "\u0007N\u0002\u0002\u0e70\u0e71\u0007Q\u0002\u0002\u0e71\u0e72\u0007", + "D\u0002\u0002\u0e72\u01a8\u0003\u0002\u0002\u0002\u0e73\u0e74\u0007", + "O\u0002\u0002\u0e74\u0e75\u0007G\u0002\u0002\u0e75\u0e76\u0007F\u0002", + "\u0002\u0e76\u0e77\u0007K\u0002\u0002\u0e77\u0e78\u0007W\u0002\u0002", + "\u0e78\u0e79\u0007O\u0002\u0002\u0e79\u0e7a\u0007D\u0002\u0002\u0e7a", + "\u0e7b\u0007N\u0002\u0002\u0e7b\u0e7c\u0007Q\u0002\u0002\u0e7c\u0e7d", + "\u0007D\u0002\u0002\u0e7d\u01aa\u0003\u0002\u0002\u0002\u0e7e\u0e7f", + "\u0007N\u0002\u0002\u0e7f\u0e80\u0007Q\u0002\u0002\u0e80\u0e81\u0007", + "P\u0002\u0002\u0e81\u0e82\u0007I\u0002\u0002\u0e82\u01ac\u0003\u0002", + "\u0002\u0002\u0e83\u0e84\u0007N\u0002\u0002\u0e84\u0e85\u0007Q\u0002", + "\u0002\u0e85\u0e86\u0007P\u0002\u0002\u0e86\u0e87\u0007I\u0002\u0002", + "\u0e87\u0e88\u0007D\u0002\u0002\u0e88\u0e89\u0007N\u0002\u0002\u0e89", + "\u0e8a\u0007Q\u0002\u0002\u0e8a\u0e8b\u0007D\u0002\u0002\u0e8b\u01ae", + "\u0003\u0002\u0002\u0002\u0e8c\u0e8d\u0007V\u0002\u0002\u0e8d\u0e8e", + "\u0007K\u0002\u0002\u0e8e\u0e8f\u0007P\u0002\u0002\u0e8f\u0e90\u0007", + "[\u0002\u0002\u0e90\u0e91\u0007V\u0002\u0002\u0e91\u0e92\u0007G\u0002", + "\u0002\u0e92\u0e93\u0007Z\u0002\u0002\u0e93\u0e94\u0007V\u0002\u0002", + "\u0e94\u01b0\u0003\u0002\u0002\u0002\u0e95\u0e96\u0007V\u0002\u0002", + "\u0e96\u0e97\u0007G\u0002\u0002\u0e97\u0e98\u0007Z\u0002\u0002\u0e98", + "\u0e99\u0007V\u0002\u0002\u0e99\u01b2\u0003\u0002\u0002\u0002\u0e9a", + "\u0e9b\u0007O\u0002\u0002\u0e9b\u0e9c\u0007G\u0002\u0002\u0e9c\u0e9d", + "\u0007F\u0002\u0002\u0e9d\u0e9e\u0007K\u0002\u0002\u0e9e\u0e9f\u0007", + "W\u0002\u0002\u0e9f\u0ea0\u0007O\u0002\u0002\u0ea0\u0ea1\u0007V\u0002", + "\u0002\u0ea1\u0ea2\u0007G\u0002\u0002\u0ea2\u0ea3\u0007Z\u0002\u0002", + "\u0ea3\u0ea4\u0007V\u0002\u0002\u0ea4\u01b4\u0003\u0002\u0002\u0002", + "\u0ea5\u0ea6\u0007N\u0002\u0002\u0ea6\u0ea7\u0007Q\u0002\u0002\u0ea7", + "\u0ea8\u0007P\u0002\u0002\u0ea8\u0ea9\u0007I\u0002\u0002\u0ea9\u0eaa", + "\u0007V\u0002\u0002\u0eaa\u0eab\u0007G\u0002\u0002\u0eab\u0eac\u0007", + "Z\u0002\u0002\u0eac\u0ead\u0007V\u0002\u0002\u0ead\u01b6\u0003\u0002", + "\u0002\u0002\u0eae\u0eaf\u0007G\u0002\u0002\u0eaf\u0eb0\u0007P\u0002", + "\u0002\u0eb0\u0eb1\u0007W\u0002\u0002\u0eb1\u0eb2\u0007O\u0002\u0002", + "\u0eb2\u01b8\u0003\u0002\u0002\u0002\u0eb3\u0eb4\u0007X\u0002\u0002", + "\u0eb4\u0eb5\u0007C\u0002\u0002\u0eb5\u0eb6\u0007T\u0002\u0002\u0eb6", + "\u0eb7\u0007[\u0002\u0002\u0eb7\u0eb8\u0007K\u0002\u0002\u0eb8\u0eb9", + "\u0007P\u0002\u0002\u0eb9\u0eba\u0007I\u0002\u0002\u0eba\u01ba\u0003", + "\u0002\u0002\u0002\u0ebb\u0ebc\u0007U\u0002\u0002\u0ebc\u0ebd\u0007", + "G\u0002\u0002\u0ebd\u0ebe\u0007T\u0002\u0002\u0ebe\u0ebf\u0007K\u0002", + "\u0002\u0ebf\u0ec0\u0007C\u0002\u0002\u0ec0\u0ec1\u0007N\u0002\u0002", + "\u0ec1\u01bc\u0003\u0002\u0002\u0002\u0ec2\u0ec3\u0007[\u0002\u0002", + "\u0ec3\u0ec4\u0007G\u0002\u0002\u0ec4\u0ec5\u0007C\u0002\u0002\u0ec5", + "\u0ec6\u0007T\u0002\u0002\u0ec6\u0ec7\u0007a\u0002\u0002\u0ec7\u0ec8", + "\u0007O\u0002\u0002\u0ec8\u0ec9\u0007Q\u0002\u0002\u0ec9\u0eca\u0007", + "P\u0002\u0002\u0eca\u0ecb\u0007V\u0002\u0002\u0ecb\u0ecc\u0007J\u0002", + "\u0002\u0ecc\u01be\u0003\u0002\u0002\u0002\u0ecd\u0ece\u0007F\u0002", + "\u0002\u0ece\u0ecf\u0007C\u0002\u0002\u0ecf\u0ed0\u0007[\u0002\u0002", + "\u0ed0\u0ed1\u0007a\u0002\u0002\u0ed1\u0ed2\u0007J\u0002\u0002\u0ed2", + "\u0ed3\u0007Q\u0002\u0002\u0ed3\u0ed4\u0007W\u0002\u0002\u0ed4\u0ed5", + "\u0007T\u0002\u0002\u0ed5\u01c0\u0003\u0002\u0002\u0002\u0ed6\u0ed7", + "\u0007F\u0002\u0002\u0ed7\u0ed8\u0007C\u0002\u0002\u0ed8\u0ed9\u0007", + "[\u0002\u0002\u0ed9\u0eda\u0007a\u0002\u0002\u0eda\u0edb\u0007O\u0002", + "\u0002\u0edb\u0edc\u0007K\u0002\u0002\u0edc\u0edd\u0007P\u0002\u0002", + "\u0edd\u0ede\u0007W\u0002\u0002\u0ede\u0edf\u0007V\u0002\u0002\u0edf", + "\u0ee0\u0007G\u0002\u0002\u0ee0\u01c2\u0003\u0002\u0002\u0002\u0ee1", + "\u0ee2\u0007F\u0002\u0002\u0ee2\u0ee3\u0007C\u0002\u0002\u0ee3\u0ee4", + "\u0007[\u0002\u0002\u0ee4\u0ee5\u0007a\u0002\u0002\u0ee5\u0ee6\u0007", + "U\u0002\u0002\u0ee6\u0ee7\u0007G\u0002\u0002\u0ee7\u0ee8\u0007E\u0002", + "\u0002\u0ee8\u0ee9\u0007Q\u0002\u0002\u0ee9\u0eea\u0007P\u0002\u0002", + "\u0eea\u0eeb\u0007F\u0002\u0002\u0eeb\u01c4\u0003\u0002\u0002\u0002", + "\u0eec\u0eed\u0007J\u0002\u0002\u0eed\u0eee\u0007Q\u0002\u0002\u0eee", + "\u0eef\u0007W\u0002\u0002\u0eef\u0ef0\u0007T\u0002\u0002\u0ef0\u0ef1", + "\u0007a\u0002\u0002\u0ef1\u0ef2\u0007O\u0002\u0002\u0ef2\u0ef3\u0007", + "K\u0002\u0002\u0ef3\u0ef4\u0007P\u0002\u0002\u0ef4\u0ef5\u0007W\u0002", + "\u0002\u0ef5\u0ef6\u0007V\u0002\u0002\u0ef6\u0ef7\u0007G\u0002\u0002", + "\u0ef7\u01c6\u0003\u0002\u0002\u0002\u0ef8\u0ef9\u0007J\u0002\u0002", + "\u0ef9\u0efa\u0007Q\u0002\u0002\u0efa\u0efb\u0007W\u0002\u0002\u0efb", + "\u0efc\u0007T\u0002\u0002\u0efc\u0efd\u0007a\u0002\u0002\u0efd\u0efe", + "\u0007U\u0002\u0002\u0efe\u0eff\u0007G\u0002\u0002\u0eff\u0f00\u0007", + "E\u0002\u0002\u0f00\u0f01\u0007Q\u0002\u0002\u0f01\u0f02\u0007P\u0002", + "\u0002\u0f02\u0f03\u0007F\u0002\u0002\u0f03\u01c8\u0003\u0002\u0002", + "\u0002\u0f04\u0f05\u0007O\u0002\u0002\u0f05\u0f06\u0007K\u0002\u0002", + "\u0f06\u0f07\u0007P\u0002\u0002\u0f07\u0f08\u0007W\u0002\u0002\u0f08", + "\u0f09\u0007V\u0002\u0002\u0f09\u0f0a\u0007G\u0002\u0002\u0f0a\u0f0b", + "\u0007a\u0002\u0002\u0f0b\u0f0c\u0007U\u0002\u0002\u0f0c\u0f0d\u0007", + "G\u0002\u0002\u0f0d\u0f0e\u0007E\u0002\u0002\u0f0e\u0f0f\u0007Q\u0002", + "\u0002\u0f0f\u0f10\u0007P\u0002\u0002\u0f10\u0f11\u0007F\u0002\u0002", + "\u0f11\u01ca\u0003\u0002\u0002\u0002\u0f12\u0f13\u0007U\u0002\u0002", + "\u0f13\u0f14\u0007G\u0002\u0002\u0f14\u0f15\u0007E\u0002\u0002\u0f15", + "\u0f16\u0007Q\u0002\u0002\u0f16\u0f17\u0007P\u0002\u0002\u0f17\u0f18", + "\u0007F\u0002\u0002\u0f18\u0f19\u0007a\u0002\u0002\u0f19\u0f1a\u0007", + "O\u0002\u0002\u0f1a\u0f1b\u0007K\u0002\u0002\u0f1b\u0f1c\u0007E\u0002", + "\u0002\u0f1c\u0f1d\u0007T\u0002\u0002\u0f1d\u0f1e\u0007Q\u0002\u0002", + "\u0f1e\u0f1f\u0007U\u0002\u0002\u0f1f\u0f20\u0007G\u0002\u0002\u0f20", + "\u0f21\u0007E\u0002\u0002\u0f21\u0f22\u0007Q\u0002\u0002\u0f22\u0f23", + "\u0007P\u0002\u0002\u0f23\u0f24\u0007F\u0002\u0002\u0f24\u01cc\u0003", + "\u0002\u0002\u0002\u0f25\u0f26\u0007O\u0002\u0002\u0f26\u0f27\u0007", + "K\u0002\u0002\u0f27\u0f28\u0007P\u0002\u0002\u0f28\u0f29\u0007W\u0002", + "\u0002\u0f29\u0f2a\u0007V\u0002\u0002\u0f2a\u0f2b\u0007G\u0002\u0002", + "\u0f2b\u0f2c\u0007a\u0002\u0002\u0f2c\u0f2d\u0007O\u0002\u0002\u0f2d", + "\u0f2e\u0007K\u0002\u0002\u0f2e\u0f2f\u0007E\u0002\u0002\u0f2f\u0f30", + "\u0007T\u0002\u0002\u0f30\u0f31\u0007Q\u0002\u0002\u0f31\u0f32\u0007", + "U\u0002\u0002\u0f32\u0f33\u0007G\u0002\u0002\u0f33\u0f34\u0007E\u0002", + "\u0002\u0f34\u0f35\u0007Q\u0002\u0002\u0f35\u0f36\u0007P\u0002\u0002", + "\u0f36\u0f37\u0007F\u0002\u0002\u0f37\u01ce\u0003\u0002\u0002\u0002", + "\u0f38\u0f39\u0007J\u0002\u0002\u0f39\u0f3a\u0007Q\u0002\u0002\u0f3a", + "\u0f3b\u0007W\u0002\u0002\u0f3b\u0f3c\u0007T\u0002\u0002\u0f3c\u0f3d", + "\u0007a\u0002\u0002\u0f3d\u0f3e\u0007O\u0002\u0002\u0f3e\u0f3f\u0007", + "K\u0002\u0002\u0f3f\u0f40\u0007E\u0002\u0002\u0f40\u0f41\u0007T\u0002", + "\u0002\u0f41\u0f42\u0007Q\u0002\u0002\u0f42\u0f43\u0007U\u0002\u0002", + "\u0f43\u0f44\u0007G\u0002\u0002\u0f44\u0f45\u0007E\u0002\u0002\u0f45", + "\u0f46\u0007Q\u0002\u0002\u0f46\u0f47\u0007P\u0002\u0002\u0f47\u0f48", + "\u0007F\u0002\u0002\u0f48\u01d0\u0003\u0002\u0002\u0002\u0f49\u0f4a", + "\u0007F\u0002\u0002\u0f4a\u0f4b\u0007C\u0002\u0002\u0f4b\u0f4c\u0007", + "[\u0002\u0002\u0f4c\u0f4d\u0007a\u0002\u0002\u0f4d\u0f4e\u0007O\u0002", + "\u0002\u0f4e\u0f4f\u0007K\u0002\u0002\u0f4f\u0f50\u0007E\u0002\u0002", + "\u0f50\u0f51\u0007T\u0002\u0002\u0f51\u0f52\u0007Q\u0002\u0002\u0f52", + "\u0f53\u0007U\u0002\u0002\u0f53\u0f54\u0007G\u0002\u0002\u0f54\u0f55", + "\u0007E\u0002\u0002\u0f55\u0f56\u0007Q\u0002\u0002\u0f56\u0f57\u0007", + "P\u0002\u0002\u0f57\u0f58\u0007F\u0002\u0002\u0f58\u01d2\u0003\u0002", + "\u0002\u0002\u0f59\u0f5a\u0007L\u0002\u0002\u0f5a\u0f5b\u0007U\u0002", + "\u0002\u0f5b\u0f5c\u0007Q\u0002\u0002\u0f5c\u0f5d\u0007P\u0002\u0002", + "\u0f5d\u0f5e\u0007a\u0002\u0002\u0f5e\u0f5f\u0007X\u0002\u0002\u0f5f", + "\u0f60\u0007C\u0002\u0002\u0f60\u0f61\u0007N\u0002\u0002\u0f61\u0f62", + "\u0007K\u0002\u0002\u0f62\u0f63\u0007F\u0002\u0002\u0f63\u01d4\u0003", + "\u0002\u0002\u0002\u0f64\u0f65\u0007L\u0002\u0002\u0f65\u0f66\u0007", + "U\u0002\u0002\u0f66\u0f67\u0007Q\u0002\u0002\u0f67\u0f68\u0007P\u0002", + "\u0002\u0f68\u0f69\u0007a\u0002\u0002\u0f69\u0f6a\u0007U\u0002\u0002", + "\u0f6a\u0f6b\u0007E\u0002\u0002\u0f6b\u0f6c\u0007J\u0002\u0002\u0f6c", + "\u0f6d\u0007G\u0002\u0002\u0f6d\u0f6e\u0007O\u0002\u0002\u0f6e\u0f6f", + "\u0007C\u0002\u0002\u0f6f\u0f70\u0007a\u0002\u0002\u0f70\u0f71\u0007", + "X\u0002\u0002\u0f71\u0f72\u0007C\u0002\u0002\u0f72\u0f73\u0007N\u0002", + "\u0002\u0f73\u0f74\u0007K\u0002\u0002\u0f74\u0f75\u0007F\u0002\u0002", + "\u0f75\u01d6\u0003\u0002\u0002\u0002\u0f76\u0f77\u0007C\u0002\u0002", + "\u0f77\u0f78\u0007X\u0002\u0002\u0f78\u0f79\u0007I\u0002\u0002\u0f79", + "\u01d8\u0003\u0002\u0002\u0002\u0f7a\u0f7b\u0007D\u0002\u0002\u0f7b", + "\u0f7c\u0007K\u0002\u0002\u0f7c\u0f7d\u0007V\u0002\u0002\u0f7d\u0f7e", + "\u0007a\u0002\u0002\u0f7e\u0f7f\u0007C\u0002\u0002\u0f7f\u0f80\u0007", + "P\u0002\u0002\u0f80\u0f81\u0007F\u0002\u0002\u0f81\u01da\u0003\u0002", + "\u0002\u0002\u0f82\u0f83\u0007D\u0002\u0002\u0f83\u0f84\u0007K\u0002", + "\u0002\u0f84\u0f85\u0007V\u0002\u0002\u0f85\u0f86\u0007a\u0002\u0002", + "\u0f86\u0f87\u0007Q\u0002\u0002\u0f87\u0f88\u0007T\u0002\u0002\u0f88", + "\u01dc\u0003\u0002\u0002\u0002\u0f89\u0f8a\u0007D\u0002\u0002\u0f8a", + "\u0f8b\u0007K\u0002\u0002\u0f8b\u0f8c\u0007V\u0002\u0002\u0f8c\u0f8d", + "\u0007a\u0002\u0002\u0f8d\u0f8e\u0007Z\u0002\u0002\u0f8e\u0f8f\u0007", + "Q\u0002\u0002\u0f8f\u0f90\u0007T\u0002\u0002\u0f90\u01de\u0003\u0002", + "\u0002\u0002\u0f91\u0f92\u0007E\u0002\u0002\u0f92\u0f93\u0007Q\u0002", + "\u0002\u0f93\u0f94\u0007W\u0002\u0002\u0f94\u0f95\u0007P\u0002\u0002", + "\u0f95\u0f96\u0007V\u0002\u0002\u0f96\u01e0\u0003\u0002\u0002\u0002", + "\u0f97\u0f98\u0007I\u0002\u0002\u0f98\u0f99\u0007T\u0002\u0002\u0f99", + "\u0f9a\u0007Q\u0002\u0002\u0f9a\u0f9b\u0007W\u0002\u0002\u0f9b\u0f9c", + "\u0007R\u0002\u0002\u0f9c\u0f9d\u0007a\u0002\u0002\u0f9d\u0f9e\u0007", + "E\u0002\u0002\u0f9e\u0f9f\u0007Q\u0002\u0002\u0f9f\u0fa0\u0007P\u0002", + "\u0002\u0fa0\u0fa1\u0007E\u0002\u0002\u0fa1\u0fa2\u0007C\u0002\u0002", + "\u0fa2\u0fa3\u0007V\u0002\u0002\u0fa3\u01e2\u0003\u0002\u0002\u0002", + "\u0fa4\u0fa5\u0007O\u0002\u0002\u0fa5\u0fa6\u0007C\u0002\u0002\u0fa6", + "\u0fa7\u0007Z\u0002\u0002\u0fa7\u01e4\u0003\u0002\u0002\u0002\u0fa8", + "\u0fa9\u0007O\u0002\u0002\u0fa9\u0faa\u0007K\u0002\u0002\u0faa\u0fab", + "\u0007P\u0002\u0002\u0fab\u01e6\u0003\u0002\u0002\u0002\u0fac\u0fad", + "\u0007U\u0002\u0002\u0fad\u0fae\u0007V\u0002\u0002\u0fae\u0faf\u0007", + "F\u0002\u0002\u0faf\u01e8\u0003\u0002\u0002\u0002\u0fb0\u0fb1\u0007", + "U\u0002\u0002\u0fb1\u0fb2\u0007V\u0002\u0002\u0fb2\u0fb3\u0007F\u0002", + "\u0002\u0fb3\u0fb4\u0007F\u0002\u0002\u0fb4\u0fb5\u0007G\u0002\u0002", + "\u0fb5\u0fb6\u0007X\u0002\u0002\u0fb6\u01ea\u0003\u0002\u0002\u0002", + "\u0fb7\u0fb8\u0007U\u0002\u0002\u0fb8\u0fb9\u0007V\u0002\u0002\u0fb9", + "\u0fba\u0007F\u0002\u0002\u0fba\u0fbb\u0007F\u0002\u0002\u0fbb\u0fbc", + "\u0007G\u0002\u0002\u0fbc\u0fbd\u0007X\u0002\u0002\u0fbd\u0fbe\u0007", + "a\u0002\u0002\u0fbe\u0fbf\u0007R\u0002\u0002\u0fbf\u0fc0\u0007Q\u0002", + "\u0002\u0fc0\u0fc1\u0007R\u0002\u0002\u0fc1\u01ec\u0003\u0002\u0002", + "\u0002\u0fc2\u0fc3\u0007U\u0002\u0002\u0fc3\u0fc4\u0007V\u0002\u0002", + "\u0fc4\u0fc5\u0007F\u0002\u0002\u0fc5\u0fc6\u0007F\u0002\u0002\u0fc6", + "\u0fc7\u0007G\u0002\u0002\u0fc7\u0fc8\u0007X\u0002\u0002\u0fc8\u0fc9", + "\u0007a\u0002\u0002\u0fc9\u0fca\u0007U\u0002\u0002\u0fca\u0fcb\u0007", + "C\u0002\u0002\u0fcb\u0fcc\u0007O\u0002\u0002\u0fcc\u0fcd\u0007R\u0002", + "\u0002\u0fcd\u01ee\u0003\u0002\u0002\u0002\u0fce\u0fcf\u0007U\u0002", + "\u0002\u0fcf\u0fd0\u0007W\u0002\u0002\u0fd0\u0fd1\u0007O\u0002\u0002", + "\u0fd1\u01f0\u0003\u0002\u0002\u0002\u0fd2\u0fd3\u0007X\u0002\u0002", + "\u0fd3\u0fd4\u0007C\u0002\u0002\u0fd4\u0fd5\u0007T\u0002\u0002\u0fd5", + "\u0fd6\u0007a\u0002\u0002\u0fd6\u0fd7\u0007R\u0002\u0002\u0fd7\u0fd8", + "\u0007Q\u0002\u0002\u0fd8\u0fd9\u0007R\u0002\u0002\u0fd9\u01f2\u0003", + "\u0002\u0002\u0002\u0fda\u0fdb\u0007X\u0002\u0002\u0fdb\u0fdc\u0007", + "C\u0002\u0002\u0fdc\u0fdd\u0007T\u0002\u0002\u0fdd\u0fde\u0007a\u0002", + "\u0002\u0fde\u0fdf\u0007U\u0002\u0002\u0fdf\u0fe0\u0007C\u0002\u0002", + "\u0fe0\u0fe1\u0007O\u0002\u0002\u0fe1\u0fe2\u0007R\u0002\u0002\u0fe2", + "\u01f4\u0003\u0002\u0002\u0002\u0fe3\u0fe4\u0007X\u0002\u0002\u0fe4", + "\u0fe5\u0007C\u0002\u0002\u0fe5\u0fe6\u0007T\u0002\u0002\u0fe6\u0fe7", + "\u0007K\u0002\u0002\u0fe7\u0fe8\u0007C\u0002\u0002\u0fe8\u0fe9\u0007", + "P\u0002\u0002\u0fe9\u0fea\u0007E\u0002\u0002\u0fea\u0feb\u0007G\u0002", + "\u0002\u0feb\u01f6\u0003\u0002\u0002\u0002\u0fec\u0fed\u0007E\u0002", + "\u0002\u0fed\u0fee\u0007W\u0002\u0002\u0fee\u0fef\u0007T\u0002\u0002", + "\u0fef\u0ff0\u0007T\u0002\u0002\u0ff0\u0ff1\u0007G\u0002\u0002\u0ff1", + "\u0ff2\u0007P\u0002\u0002\u0ff2\u0ff3\u0007V\u0002\u0002\u0ff3\u0ff4", + "\u0007a\u0002\u0002\u0ff4\u0ff5\u0007F\u0002\u0002\u0ff5\u0ff6\u0007", + "C\u0002\u0002\u0ff6\u0ff7\u0007V\u0002\u0002\u0ff7\u0ff8\u0007G\u0002", + "\u0002\u0ff8\u01f8\u0003\u0002\u0002\u0002\u0ff9\u0ffa\u0007E\u0002", + "\u0002\u0ffa\u0ffb\u0007W\u0002\u0002\u0ffb\u0ffc\u0007T\u0002\u0002", + "\u0ffc\u0ffd\u0007T\u0002\u0002\u0ffd\u0ffe\u0007G\u0002\u0002\u0ffe", + "\u0fff\u0007P\u0002\u0002\u0fff\u1000\u0007V\u0002\u0002\u1000\u1001", + "\u0007a\u0002\u0002\u1001\u1002\u0007V\u0002\u0002\u1002\u1003\u0007", + "K\u0002\u0002\u1003\u1004\u0007O\u0002\u0002\u1004\u1005\u0007G\u0002", + "\u0002\u1005\u01fa\u0003\u0002\u0002\u0002\u1006\u1007\u0007E\u0002", + "\u0002\u1007\u1008\u0007W\u0002\u0002\u1008\u1009\u0007T\u0002\u0002", + "\u1009\u100a\u0007T\u0002\u0002\u100a\u100b\u0007G\u0002\u0002\u100b", + "\u100c\u0007P\u0002\u0002\u100c\u100d\u0007V\u0002\u0002\u100d\u100e", + "\u0007a\u0002\u0002\u100e\u100f\u0007V\u0002\u0002\u100f\u1010\u0007", + "K\u0002\u0002\u1010\u1011\u0007O\u0002\u0002\u1011\u1012\u0007G\u0002", + "\u0002\u1012\u1013\u0007U\u0002\u0002\u1013\u1014\u0007V\u0002\u0002", + "\u1014\u1015\u0007C\u0002\u0002\u1015\u1016\u0007O\u0002\u0002\u1016", + "\u1017\u0007R\u0002\u0002\u1017\u01fc\u0003\u0002\u0002\u0002\u1018", + "\u1019\u0007N\u0002\u0002\u1019\u101a\u0007Q\u0002\u0002\u101a\u101b", + "\u0007E\u0002\u0002\u101b\u101c\u0007C\u0002\u0002\u101c\u101d\u0007", + "N\u0002\u0002\u101d\u101e\u0007V\u0002\u0002\u101e\u101f\u0007K\u0002", + "\u0002\u101f\u1020\u0007O\u0002\u0002\u1020\u1021\u0007G\u0002\u0002", + "\u1021\u01fe\u0003\u0002\u0002\u0002\u1022\u1023\u0007E\u0002\u0002", + "\u1023\u1024\u0007W\u0002\u0002\u1024\u1025\u0007T\u0002\u0002\u1025", + "\u1026\u0007F\u0002\u0002\u1026\u1027\u0007C\u0002\u0002\u1027\u1028", + "\u0007V\u0002\u0002\u1028\u1029\u0007G\u0002\u0002\u1029\u0200\u0003", + "\u0002\u0002\u0002\u102a\u102b\u0007E\u0002\u0002\u102b\u102c\u0007", + "W\u0002\u0002\u102c\u102d\u0007T\u0002\u0002\u102d\u102e\u0007V\u0002", + "\u0002\u102e\u102f\u0007K\u0002\u0002\u102f\u1030\u0007O\u0002\u0002", + "\u1030\u1031\u0007G\u0002\u0002\u1031\u0202\u0003\u0002\u0002\u0002", + "\u1032\u1033\u0007F\u0002\u0002\u1033\u1034\u0007C\u0002\u0002\u1034", + "\u1035\u0007V\u0002\u0002\u1035\u1036\u0007G\u0002\u0002\u1036\u1037", + "\u0007a\u0002\u0002\u1037\u1038\u0007C\u0002\u0002\u1038\u1039\u0007", + "F\u0002\u0002\u1039\u103a\u0007F\u0002\u0002\u103a\u0204\u0003\u0002", + "\u0002\u0002\u103b\u103c\u0007F\u0002\u0002\u103c\u103d\u0007C\u0002", + "\u0002\u103d\u103e\u0007V\u0002\u0002\u103e\u103f\u0007G\u0002\u0002", + "\u103f\u1040\u0007a\u0002\u0002\u1040\u1041\u0007U\u0002\u0002\u1041", + "\u1042\u0007W\u0002\u0002\u1042\u1043\u0007D\u0002\u0002\u1043\u0206", + "\u0003\u0002\u0002\u0002\u1044\u1045\u0007G\u0002\u0002\u1045\u1046", + "\u0007Z\u0002\u0002\u1046\u1047\u0007V\u0002\u0002\u1047\u1048\u0007", + "T\u0002\u0002\u1048\u1049\u0007C\u0002\u0002\u1049\u104a\u0007E\u0002", + "\u0002\u104a\u104b\u0007V\u0002\u0002\u104b\u0208\u0003\u0002\u0002", + "\u0002\u104c\u104d\u0007N\u0002\u0002\u104d\u104e\u0007Q\u0002\u0002", + "\u104e\u104f\u0007E\u0002\u0002\u104f\u1050\u0007C\u0002\u0002\u1050", + "\u1051\u0007N\u0002\u0002\u1051\u1052\u0007V\u0002\u0002\u1052\u1053", + "\u0007K\u0002\u0002\u1053\u1054\u0007O\u0002\u0002\u1054\u1055\u0007", + "G\u0002\u0002\u1055\u1056\u0007U\u0002\u0002\u1056\u1057\u0007V\u0002", + "\u0002\u1057\u1058\u0007C\u0002\u0002\u1058\u1059\u0007O\u0002\u0002", + "\u1059\u105a\u0007R\u0002\u0002\u105a\u020a\u0003\u0002\u0002\u0002", + "\u105b\u105c\u0007P\u0002\u0002\u105c\u105d\u0007Q\u0002\u0002\u105d", + "\u105e\u0007Y\u0002\u0002\u105e\u020c\u0003\u0002\u0002\u0002\u105f", + "\u1060\u0007R\u0002\u0002\u1060\u1061\u0007Q\u0002\u0002\u1061\u1062", + "\u0007U\u0002\u0002\u1062\u1063\u0007K\u0002\u0002\u1063\u1064\u0007", + "V\u0002\u0002\u1064\u1065\u0007K\u0002\u0002\u1065\u1066\u0007Q\u0002", + "\u0002\u1066\u1067\u0007P\u0002\u0002\u1067\u020e\u0003\u0002\u0002", + "\u0002\u1068\u1069\u0007U\u0002\u0002\u1069\u106a\u0007W\u0002\u0002", + "\u106a\u106b\u0007D\u0002\u0002\u106b\u106c\u0007U\u0002\u0002\u106c", + "\u106d\u0007V\u0002\u0002\u106d\u106e\u0007T\u0002\u0002\u106e\u0210", + "\u0003\u0002\u0002\u0002\u106f\u1070\u0007U\u0002\u0002\u1070\u1071", + "\u0007W\u0002\u0002\u1071\u1072\u0007D\u0002\u0002\u1072\u1073\u0007", + "U\u0002\u0002\u1073\u1074\u0007V\u0002\u0002\u1074\u1075\u0007T\u0002", + "\u0002\u1075\u1076\u0007K\u0002\u0002\u1076\u1077\u0007P\u0002\u0002", + "\u1077\u1078\u0007I\u0002\u0002\u1078\u0212\u0003\u0002\u0002\u0002", + "\u1079\u107a\u0007U\u0002\u0002\u107a\u107b\u0007[\u0002\u0002\u107b", + "\u107c\u0007U\u0002\u0002\u107c\u107d\u0007F\u0002\u0002\u107d\u107e", + "\u0007C\u0002\u0002\u107e\u107f\u0007V\u0002\u0002\u107f\u1080\u0007", + "G\u0002\u0002\u1080\u0214\u0003\u0002\u0002\u0002\u1081\u1082\u0007", + "V\u0002\u0002\u1082\u1083\u0007T\u0002\u0002\u1083\u1084\u0007K\u0002", + "\u0002\u1084\u1085\u0007O\u0002\u0002\u1085\u0216\u0003\u0002\u0002", + "\u0002\u1086\u1087\u0007W\u0002\u0002\u1087\u1088\u0007V\u0002\u0002", + "\u1088\u1089\u0007E\u0002\u0002\u1089\u108a\u0007a\u0002\u0002\u108a", + "\u108b\u0007F\u0002\u0002\u108b\u108c\u0007C\u0002\u0002\u108c\u108d", + "\u0007V\u0002\u0002\u108d\u108e\u0007G\u0002\u0002\u108e\u0218\u0003", + "\u0002\u0002\u0002\u108f\u1090\u0007W\u0002\u0002\u1090\u1091\u0007", + "V\u0002\u0002\u1091\u1092\u0007E\u0002\u0002\u1092\u1093\u0007a\u0002", + "\u0002\u1093\u1094\u0007V\u0002\u0002\u1094\u1095\u0007K\u0002\u0002", + "\u1095\u1096\u0007O\u0002\u0002\u1096\u1097\u0007G\u0002\u0002\u1097", + "\u021a\u0003\u0002\u0002\u0002\u1098\u1099\u0007W\u0002\u0002\u1099", + "\u109a\u0007V\u0002\u0002\u109a\u109b\u0007E\u0002\u0002\u109b\u109c", + "\u0007a\u0002\u0002\u109c\u109d\u0007V\u0002\u0002\u109d\u109e\u0007", + "K\u0002\u0002\u109e\u109f\u0007O\u0002\u0002\u109f\u10a0\u0007G\u0002", + "\u0002\u10a0\u10a1\u0007U\u0002\u0002\u10a1\u10a2\u0007V\u0002\u0002", + "\u10a2\u10a3\u0007C\u0002\u0002\u10a3\u10a4\u0007O\u0002\u0002\u10a4", + "\u10a5\u0007R\u0002\u0002\u10a5\u021c\u0003\u0002\u0002\u0002\u10a6", + "\u10a7\u0007C\u0002\u0002\u10a7\u10a8\u0007E\u0002\u0002\u10a8\u10a9", + "\u0007E\u0002\u0002\u10a9\u10aa\u0007Q\u0002\u0002\u10aa\u10ab\u0007", + "W\u0002\u0002\u10ab\u10ac\u0007P\u0002\u0002\u10ac\u10ad\u0007V\u0002", + "\u0002\u10ad\u021e\u0003\u0002\u0002\u0002\u10ae\u10af\u0007C\u0002", + "\u0002\u10af\u10b0\u0007E\u0002\u0002\u10b0\u10b1\u0007V\u0002\u0002", + "\u10b1\u10b2\u0007K\u0002\u0002\u10b2\u10b3\u0007Q\u0002\u0002\u10b3", + "\u10b4\u0007P\u0002\u0002\u10b4\u0220\u0003\u0002\u0002\u0002\u10b5", + "\u10b6\u0007C\u0002\u0002\u10b6\u10b7\u0007H\u0002\u0002\u10b7\u10b8", + "\u0007V\u0002\u0002\u10b8\u10b9\u0007G\u0002\u0002\u10b9\u10ba\u0007", + "T\u0002\u0002\u10ba\u0222\u0003\u0002\u0002\u0002\u10bb\u10bc\u0007", + "C\u0002\u0002\u10bc\u10bd\u0007I\u0002\u0002\u10bd\u10be\u0007I\u0002", + "\u0002\u10be\u10bf\u0007T\u0002\u0002\u10bf\u10c0\u0007G\u0002\u0002", + "\u10c0\u10c1\u0007I\u0002\u0002\u10c1\u10c2\u0007C\u0002\u0002\u10c2", + "\u10c3\u0007V\u0002\u0002\u10c3\u10c4\u0007G\u0002\u0002\u10c4\u0224", + "\u0003\u0002\u0002\u0002\u10c5\u10c6\u0007C\u0002\u0002\u10c6\u10c7", + "\u0007N\u0002\u0002\u10c7\u10c8\u0007I\u0002\u0002\u10c8\u10c9\u0007", + "Q\u0002\u0002\u10c9\u10ca\u0007T\u0002\u0002\u10ca\u10cb\u0007K\u0002", + "\u0002\u10cb\u10cc\u0007V\u0002\u0002\u10cc\u10cd\u0007J\u0002\u0002", + "\u10cd\u10ce\u0007O\u0002\u0002\u10ce\u0226\u0003\u0002\u0002\u0002", + "\u10cf\u10d0\u0007C\u0002\u0002\u10d0\u10d1\u0007P\u0002\u0002\u10d1", + "\u10d2\u0007[\u0002\u0002\u10d2\u0228\u0003\u0002\u0002\u0002\u10d3", + "\u10d4\u0007C\u0002\u0002\u10d4\u10d5\u0007V\u0002\u0002\u10d5\u022a", + "\u0003\u0002\u0002\u0002\u10d6\u10d7\u0007C\u0002\u0002\u10d7\u10d8", + "\u0007W\u0002\u0002\u10d8\u10d9\u0007V\u0002\u0002\u10d9\u10da\u0007", + "J\u0002\u0002\u10da\u10db\u0007Q\u0002\u0002\u10db\u10dc\u0007T\u0002", + "\u0002\u10dc\u10dd\u0007U\u0002\u0002\u10dd\u022c\u0003\u0002\u0002", + "\u0002\u10de\u10df\u0007C\u0002\u0002\u10df\u10e0\u0007W\u0002\u0002", + "\u10e0\u10e1\u0007V\u0002\u0002\u10e1\u10e2\u0007Q\u0002\u0002\u10e2", + "\u10e3\u0007E\u0002\u0002\u10e3\u10e4\u0007Q\u0002\u0002\u10e4\u10e5", + "\u0007O\u0002\u0002\u10e5\u10e6\u0007O\u0002\u0002\u10e6\u10e7\u0007", + "K\u0002\u0002\u10e7\u10e8\u0007V\u0002\u0002\u10e8\u022e\u0003\u0002", + "\u0002\u0002\u10e9\u10ea\u0007C\u0002\u0002\u10ea\u10eb\u0007W\u0002", + "\u0002\u10eb\u10ec\u0007V\u0002\u0002\u10ec\u10ed\u0007Q\u0002\u0002", + "\u10ed\u10ee\u0007G\u0002\u0002\u10ee\u10ef\u0007Z\u0002\u0002\u10ef", + "\u10f0\u0007V\u0002\u0002\u10f0\u10f1\u0007G\u0002\u0002\u10f1\u10f2", + "\u0007P\u0002\u0002\u10f2\u10f3\u0007F\u0002\u0002\u10f3\u10f4\u0007", + "a\u0002\u0002\u10f4\u10f5\u0007U\u0002\u0002\u10f5\u10f6\u0007K\u0002", + "\u0002\u10f6\u10f7\u0007\\\u0002\u0002\u10f7\u10f8\u0007G\u0002\u0002", + "\u10f8\u0230\u0003\u0002\u0002\u0002\u10f9\u10fa\u0007C\u0002\u0002", + "\u10fa\u10fb\u0007W\u0002\u0002\u10fb\u10fc\u0007V\u0002\u0002\u10fc", + "\u10fd\u0007Q\u0002\u0002\u10fd\u10fe\u0007a\u0002\u0002\u10fe\u10ff", + "\u0007K\u0002\u0002\u10ff\u1100\u0007P\u0002\u0002\u1100\u1101\u0007", + "E\u0002\u0002\u1101\u1102\u0007T\u0002\u0002\u1102\u1103\u0007G\u0002", + "\u0002\u1103\u1104\u0007O\u0002\u0002\u1104\u1105\u0007G\u0002\u0002", + "\u1105\u1106\u0007P\u0002\u0002\u1106\u1107\u0007V\u0002\u0002\u1107", + "\u0232\u0003\u0002\u0002\u0002\u1108\u1109\u0007C\u0002\u0002\u1109", + "\u110a\u0007X\u0002\u0002\u110a\u110b\u0007I\u0002\u0002\u110b\u110c", + "\u0007a\u0002\u0002\u110c\u110d\u0007T\u0002\u0002\u110d\u110e\u0007", + "Q\u0002\u0002\u110e\u110f\u0007Y\u0002\u0002\u110f\u1110\u0007a\u0002", + "\u0002\u1110\u1111\u0007N\u0002\u0002\u1111\u1112\u0007G\u0002\u0002", + "\u1112\u1113\u0007P\u0002\u0002\u1113\u1114\u0007I\u0002\u0002\u1114", + "\u1115\u0007V\u0002\u0002\u1115\u1116\u0007J\u0002\u0002\u1116\u0234", + "\u0003\u0002\u0002\u0002\u1117\u1118\u0007D\u0002\u0002\u1118\u1119", + "\u0007G\u0002\u0002\u1119\u111a\u0007I\u0002\u0002\u111a\u111b\u0007", + "K\u0002\u0002\u111b\u111c\u0007P\u0002\u0002\u111c\u0236\u0003\u0002", + "\u0002\u0002\u111d\u111e\u0007D\u0002\u0002\u111e\u111f\u0007K\u0002", + "\u0002\u111f\u1120\u0007P\u0002\u0002\u1120\u1121\u0007N\u0002\u0002", + "\u1121\u1122\u0007Q\u0002\u0002\u1122\u1123\u0007I\u0002\u0002\u1123", + "\u0238\u0003\u0002\u0002\u0002\u1124\u1125\u0007D\u0002\u0002\u1125", + "\u1126\u0007K\u0002\u0002\u1126\u1127\u0007V\u0002\u0002\u1127\u023a", + "\u0003\u0002\u0002\u0002\u1128\u1129\u0007D\u0002\u0002\u1129\u112a", + "\u0007N\u0002\u0002\u112a\u112b\u0007Q\u0002\u0002\u112b\u112c\u0007", + "E\u0002\u0002\u112c\u112d\u0007M\u0002\u0002\u112d\u023c\u0003\u0002", + "\u0002\u0002\u112e\u112f\u0007D\u0002\u0002\u112f\u1130\u0007Q\u0002", + "\u0002\u1130\u1131\u0007Q\u0002\u0002\u1131\u1132\u0007N\u0002\u0002", + "\u1132\u023e\u0003\u0002\u0002\u0002\u1133\u1134\u0007D\u0002\u0002", + "\u1134\u1135\u0007Q\u0002\u0002\u1135\u1136\u0007Q\u0002\u0002\u1136", + "\u1137\u0007N\u0002\u0002\u1137\u1138\u0007G\u0002\u0002\u1138\u1139", + "\u0007C\u0002\u0002\u1139\u113a\u0007P\u0002\u0002\u113a\u0240\u0003", + "\u0002\u0002\u0002\u113b\u113c\u0007D\u0002\u0002\u113c\u113d\u0007", + "V\u0002\u0002\u113d\u113e\u0007T\u0002\u0002\u113e\u113f\u0007G\u0002", + "\u0002\u113f\u1140\u0007G\u0002\u0002\u1140\u0242\u0003\u0002\u0002", + "\u0002\u1141\u1142\u0007E\u0002\u0002\u1142\u1143\u0007C\u0002\u0002", + "\u1143\u1144\u0007E\u0002\u0002\u1144\u1145\u0007J\u0002\u0002\u1145", + "\u1146\u0007G\u0002\u0002\u1146\u0244\u0003\u0002\u0002\u0002\u1147", + "\u1148\u0007E\u0002\u0002\u1148\u1149\u0007C\u0002\u0002\u1149\u114a", + "\u0007U\u0002\u0002\u114a\u114b\u0007E\u0002\u0002\u114b\u114c\u0007", + "C\u0002\u0002\u114c\u114d\u0007F\u0002\u0002\u114d\u114e\u0007G\u0002", + "\u0002\u114e\u114f\u0007F\u0002\u0002\u114f\u0246\u0003\u0002\u0002", + "\u0002\u1150\u1151\u0007E\u0002\u0002\u1151\u1152\u0007J\u0002\u0002", + "\u1152\u1153\u0007C\u0002\u0002\u1153\u1154\u0007K\u0002\u0002\u1154", + "\u1155\u0007P\u0002\u0002\u1155\u0248\u0003\u0002\u0002\u0002\u1156", + "\u1157\u0007E\u0002\u0002\u1157\u1158\u0007J\u0002\u0002\u1158\u1159", + "\u0007C\u0002\u0002\u1159\u115a\u0007P\u0002\u0002\u115a\u115b\u0007", + "I\u0002\u0002\u115b\u115c\u0007G\u0002\u0002\u115c\u115d\u0007F\u0002", + "\u0002\u115d\u024a\u0003\u0002\u0002\u0002\u115e\u115f\u0007E\u0002", + "\u0002\u115f\u1160\u0007J\u0002\u0002\u1160\u1161\u0007C\u0002\u0002", + "\u1161\u1162\u0007P\u0002\u0002\u1162\u1163\u0007P\u0002\u0002\u1163", + "\u1164\u0007G\u0002\u0002\u1164\u1165\u0007N\u0002\u0002\u1165\u024c", + "\u0003\u0002\u0002\u0002\u1166\u1167\u0007E\u0002\u0002\u1167\u1168", + "\u0007J\u0002\u0002\u1168\u1169\u0007G\u0002\u0002\u1169\u116a\u0007", + "E\u0002\u0002\u116a\u116b\u0007M\u0002\u0002\u116b\u116c\u0007U\u0002", + "\u0002\u116c\u116d\u0007W\u0002\u0002\u116d\u116e\u0007O\u0002\u0002", + "\u116e\u024e\u0003\u0002\u0002\u0002\u116f\u1170\u0007R\u0002\u0002", + "\u1170\u1171\u0007C\u0002\u0002\u1171\u1172\u0007I\u0002\u0002\u1172", + "\u1173\u0007G\u0002\u0002\u1173\u1174\u0007a\u0002\u0002\u1174\u1175", + "\u0007E\u0002\u0002\u1175\u1176\u0007J\u0002\u0002\u1176\u1177\u0007", + "G\u0002\u0002\u1177\u1178\u0007E\u0002\u0002\u1178\u1179\u0007M\u0002", + "\u0002\u1179\u117a\u0007U\u0002\u0002\u117a\u117b\u0007W\u0002\u0002", + "\u117b\u117c\u0007O\u0002\u0002\u117c\u0250\u0003\u0002\u0002\u0002", + "\u117d\u117e\u0007E\u0002\u0002\u117e\u117f\u0007K\u0002\u0002\u117f", + "\u1180\u0007R\u0002\u0002\u1180\u1181\u0007J\u0002\u0002\u1181\u1182", + "\u0007G\u0002\u0002\u1182\u1183\u0007T\u0002\u0002\u1183\u0252\u0003", + "\u0002\u0002\u0002\u1184\u1185\u0007E\u0002\u0002\u1185\u1186\u0007", + "N\u0002\u0002\u1186\u1187\u0007C\u0002\u0002\u1187\u1188\u0007U\u0002", + "\u0002\u1188\u1189\u0007U\u0002\u0002\u1189\u118a\u0007a\u0002\u0002", + "\u118a\u118b\u0007Q\u0002\u0002\u118b\u118c\u0007T\u0002\u0002\u118c", + "\u118d\u0007K\u0002\u0002\u118d\u118e\u0007I\u0002\u0002\u118e\u118f", + "\u0007K\u0002\u0002\u118f\u1190\u0007P\u0002\u0002\u1190\u0254\u0003", + "\u0002\u0002\u0002\u1191\u1192\u0007E\u0002\u0002\u1192\u1193\u0007", + "N\u0002\u0002\u1193\u1194\u0007K\u0002\u0002\u1194\u1195\u0007G\u0002", + "\u0002\u1195\u1196\u0007P\u0002\u0002\u1196\u1197\u0007V\u0002\u0002", + "\u1197\u0256\u0003\u0002\u0002\u0002\u1198\u1199\u0007E\u0002\u0002", + "\u1199\u119a\u0007N\u0002\u0002\u119a\u119b\u0007Q\u0002\u0002\u119b", + "\u119c\u0007U\u0002\u0002\u119c\u119d\u0007G\u0002\u0002\u119d\u0258", + "\u0003\u0002\u0002\u0002\u119e\u119f\u0007E\u0002\u0002\u119f\u11a0", + "\u0007Q\u0002\u0002\u11a0\u11a1\u0007C\u0002\u0002\u11a1\u11a2\u0007", + "N\u0002\u0002\u11a2\u11a3\u0007G\u0002\u0002\u11a3\u11a4\u0007U\u0002", + "\u0002\u11a4\u11a5\u0007E\u0002\u0002\u11a5\u11a6\u0007G\u0002\u0002", + "\u11a6\u025a\u0003\u0002\u0002\u0002\u11a7\u11a8\u0007E\u0002\u0002", + "\u11a8\u11a9\u0007Q\u0002\u0002\u11a9\u11aa\u0007F\u0002\u0002\u11aa", + "\u11ab\u0007G\u0002\u0002\u11ab\u025c\u0003\u0002\u0002\u0002\u11ac", + "\u11ad\u0007E\u0002\u0002\u11ad\u11ae\u0007Q\u0002\u0002\u11ae\u11af", + "\u0007N\u0002\u0002\u11af\u11b0\u0007W\u0002\u0002\u11b0\u11b1\u0007", + "O\u0002\u0002\u11b1\u11b2\u0007P\u0002\u0002\u11b2\u11b3\u0007U\u0002", + "\u0002\u11b3\u025e\u0003\u0002\u0002\u0002\u11b4\u11b5\u0007E\u0002", + "\u0002\u11b5\u11b6\u0007Q\u0002\u0002\u11b6\u11b7\u0007N\u0002\u0002", + "\u11b7\u11b8\u0007W\u0002\u0002\u11b8\u11b9\u0007O\u0002\u0002\u11b9", + "\u11ba\u0007P\u0002\u0002\u11ba\u11bb\u0007a\u0002\u0002\u11bb\u11bc", + "\u0007H\u0002\u0002\u11bc\u11bd\u0007Q\u0002\u0002\u11bd\u11be\u0007", + "T\u0002\u0002\u11be\u11bf\u0007O\u0002\u0002\u11bf\u11c0\u0007C\u0002", + "\u0002\u11c0\u11c1\u0007V\u0002\u0002\u11c1\u0260\u0003\u0002\u0002", + "\u0002\u11c2\u11c3\u0007E\u0002\u0002\u11c3\u11c4\u0007Q\u0002\u0002", + "\u11c4\u11c5\u0007N\u0002\u0002\u11c5\u11c6\u0007W\u0002\u0002\u11c6", + "\u11c7\u0007O\u0002\u0002\u11c7\u11c8\u0007P\u0002\u0002\u11c8\u11c9", + "\u0007a\u0002\u0002\u11c9\u11ca\u0007P\u0002\u0002\u11ca\u11cb\u0007", + "C\u0002\u0002\u11cb\u11cc\u0007O\u0002\u0002\u11cc\u11cd\u0007G\u0002", + "\u0002\u11cd\u0262\u0003\u0002\u0002\u0002\u11ce\u11cf\u0007E\u0002", + "\u0002\u11cf\u11d0\u0007Q\u0002\u0002\u11d0\u11d1\u0007O\u0002\u0002", + "\u11d1\u11d2\u0007O\u0002\u0002\u11d2\u11d3\u0007G\u0002\u0002\u11d3", + "\u11d4\u0007P\u0002\u0002\u11d4\u11d5\u0007V\u0002\u0002\u11d5\u0264", + "\u0003\u0002\u0002\u0002\u11d6\u11d7\u0007E\u0002\u0002\u11d7\u11d8", + "\u0007Q\u0002\u0002\u11d8\u11d9\u0007O\u0002\u0002\u11d9\u11da\u0007", + "O\u0002\u0002\u11da\u11db\u0007K\u0002\u0002\u11db\u11dc\u0007V\u0002", + "\u0002\u11dc\u0266\u0003\u0002\u0002\u0002\u11dd\u11de\u0007E\u0002", + "\u0002\u11de\u11df\u0007Q\u0002\u0002\u11df\u11e0\u0007O\u0002\u0002", + "\u11e0\u11e1\u0007R\u0002\u0002\u11e1\u11e2\u0007C\u0002\u0002\u11e2", + "\u11e3\u0007E\u0002\u0002\u11e3\u11e4\u0007V\u0002\u0002\u11e4\u0268", + "\u0003\u0002\u0002\u0002\u11e5\u11e6\u0007E\u0002\u0002\u11e6\u11e7", + "\u0007Q\u0002\u0002\u11e7\u11e8\u0007O\u0002\u0002\u11e8\u11e9\u0007", + "R\u0002\u0002\u11e9\u11ea\u0007N\u0002\u0002\u11ea\u11eb\u0007G\u0002", + "\u0002\u11eb\u11ec\u0007V\u0002\u0002\u11ec\u11ed\u0007K\u0002\u0002", + "\u11ed\u11ee\u0007Q\u0002\u0002\u11ee\u11ef\u0007P\u0002\u0002\u11ef", + "\u026a\u0003\u0002\u0002\u0002\u11f0\u11f1\u0007E\u0002\u0002\u11f1", + "\u11f2\u0007Q\u0002\u0002\u11f2\u11f3\u0007O\u0002\u0002\u11f3\u11f4", + "\u0007R\u0002\u0002\u11f4\u11f5\u0007T\u0002\u0002\u11f5\u11f6\u0007", + "G\u0002\u0002\u11f6\u11f7\u0007U\u0002\u0002\u11f7\u11f8\u0007U\u0002", + "\u0002\u11f8\u11f9\u0007G\u0002\u0002\u11f9\u11fa\u0007F\u0002\u0002", + "\u11fa\u026c\u0003\u0002\u0002\u0002\u11fb\u11fc\u0007E\u0002\u0002", + "\u11fc\u11fd\u0007Q\u0002\u0002\u11fd\u11fe\u0007O\u0002\u0002\u11fe", + "\u11ff\u0007R\u0002\u0002\u11ff\u1200\u0007T\u0002\u0002\u1200\u1201", + "\u0007G\u0002\u0002\u1201\u1202\u0007U\u0002\u0002\u1202\u1203\u0007", + "U\u0002\u0002\u1203\u1204\u0007K\u0002\u0002\u1204\u1205\u0007Q\u0002", + "\u0002\u1205\u1206\u0007P\u0002\u0002\u1206\u026e\u0003\u0002\u0002", + "\u0002\u1207\u1208\u0007E\u0002\u0002\u1208\u1209\u0007Q\u0002\u0002", + "\u1209\u120a\u0007P\u0002\u0002\u120a\u120b\u0007E\u0002\u0002\u120b", + "\u120c\u0007W\u0002\u0002\u120c\u120d\u0007T\u0002\u0002\u120d\u120e", + "\u0007T\u0002\u0002\u120e\u120f\u0007G\u0002\u0002\u120f\u1210\u0007", + "P\u0002\u0002\u1210\u1211\u0007V\u0002\u0002\u1211\u0270\u0003\u0002", + "\u0002\u0002\u1212\u1213\u0007E\u0002\u0002\u1213\u1214\u0007Q\u0002", + "\u0002\u1214\u1215\u0007P\u0002\u0002\u1215\u1216\u0007P\u0002\u0002", + "\u1216\u1217\u0007G\u0002\u0002\u1217\u1218\u0007E\u0002\u0002\u1218", + "\u1219\u0007V\u0002\u0002\u1219\u121a\u0007K\u0002\u0002\u121a\u121b", + "\u0007Q\u0002\u0002\u121b\u121c\u0007P\u0002\u0002\u121c\u0272\u0003", + "\u0002\u0002\u0002\u121d\u121e\u0007E\u0002\u0002\u121e\u121f\u0007", + "Q\u0002\u0002\u121f\u1220\u0007P\u0002\u0002\u1220\u1221\u0007U\u0002", + "\u0002\u1221\u1222\u0007K\u0002\u0002\u1222\u1223\u0007U\u0002\u0002", + "\u1223\u1224\u0007V\u0002\u0002\u1224\u1225\u0007G\u0002\u0002\u1225", + "\u1226\u0007P\u0002\u0002\u1226\u1227\u0007V\u0002\u0002\u1227\u0274", + "\u0003\u0002\u0002\u0002\u1228\u1229\u0007E\u0002\u0002\u1229\u122a", + "\u0007Q\u0002\u0002\u122a\u122b\u0007P\u0002\u0002\u122b\u122c\u0007", + "U\u0002\u0002\u122c\u122d\u0007V\u0002\u0002\u122d\u122e\u0007T\u0002", + "\u0002\u122e\u122f\u0007C\u0002\u0002\u122f\u1230\u0007K\u0002\u0002", + "\u1230\u1231\u0007P\u0002\u0002\u1231\u1232\u0007V\u0002\u0002\u1232", + "\u1233\u0007a\u0002\u0002\u1233\u1234\u0007E\u0002\u0002\u1234\u1235", + "\u0007C\u0002\u0002\u1235\u1236\u0007V\u0002\u0002\u1236\u1237\u0007", + "C\u0002\u0002\u1237\u1238\u0007N\u0002\u0002\u1238\u1239\u0007Q\u0002", + "\u0002\u1239\u123a\u0007I\u0002\u0002\u123a\u0276\u0003\u0002\u0002", + "\u0002\u123b\u123c\u0007E\u0002\u0002\u123c\u123d\u0007Q\u0002\u0002", + "\u123d\u123e\u0007P\u0002\u0002\u123e\u123f\u0007U\u0002\u0002\u123f", + "\u1240\u0007V\u0002\u0002\u1240\u1241\u0007T\u0002\u0002\u1241\u1242", + "\u0007C\u0002\u0002\u1242\u1243\u0007K\u0002\u0002\u1243\u1244\u0007", + "P\u0002\u0002\u1244\u1245\u0007V\u0002\u0002\u1245\u1246\u0007a\u0002", + "\u0002\u1246\u1247\u0007U\u0002\u0002\u1247\u1248\u0007E\u0002\u0002", + "\u1248\u1249\u0007J\u0002\u0002\u1249\u124a\u0007G\u0002\u0002\u124a", + "\u124b\u0007O\u0002\u0002\u124b\u124c\u0007C\u0002\u0002\u124c\u0278", + "\u0003\u0002\u0002\u0002\u124d\u124e\u0007E\u0002\u0002\u124e\u124f", + "\u0007Q\u0002\u0002\u124f\u1250\u0007P\u0002\u0002\u1250\u1251\u0007", + "U\u0002\u0002\u1251\u1252\u0007V\u0002\u0002\u1252\u1253\u0007T\u0002", + "\u0002\u1253\u1254\u0007C\u0002\u0002\u1254\u1255\u0007K\u0002\u0002", + "\u1255\u1256\u0007P\u0002\u0002\u1256\u1257\u0007V\u0002\u0002\u1257", + "\u1258\u0007a\u0002\u0002\u1258\u1259\u0007P\u0002\u0002\u1259\u125a", + "\u0007C\u0002\u0002\u125a\u125b\u0007O\u0002\u0002\u125b\u125c\u0007", + "G\u0002\u0002\u125c\u027a\u0003\u0002\u0002\u0002\u125d\u125e\u0007", + "E\u0002\u0002\u125e\u125f\u0007Q\u0002\u0002\u125f\u1260\u0007P\u0002", + "\u0002\u1260\u1261\u0007V\u0002\u0002\u1261\u1262\u0007C\u0002\u0002", + "\u1262\u1263\u0007K\u0002\u0002\u1263\u1264\u0007P\u0002\u0002\u1264", + "\u1265\u0007U\u0002\u0002\u1265\u027c\u0003\u0002\u0002\u0002\u1266", + "\u1267\u0007E\u0002\u0002\u1267\u1268\u0007Q\u0002\u0002\u1268\u1269", + "\u0007P\u0002\u0002\u1269\u126a\u0007V\u0002\u0002\u126a\u126b\u0007", + "G\u0002\u0002\u126b\u126c\u0007Z\u0002\u0002\u126c\u126d\u0007V\u0002", + "\u0002\u126d\u027e\u0003\u0002\u0002\u0002\u126e\u126f\u0007E\u0002", + "\u0002\u126f\u1270\u0007Q\u0002\u0002\u1270\u1271\u0007P\u0002\u0002", + "\u1271\u1272\u0007V\u0002\u0002\u1272\u1273\u0007T\u0002\u0002\u1273", + "\u1274\u0007K\u0002\u0002\u1274\u1275\u0007D\u0002\u0002\u1275\u1276", + "\u0007W\u0002\u0002\u1276\u1277\u0007V\u0002\u0002\u1277\u1278\u0007", + "Q\u0002\u0002\u1278\u1279\u0007T\u0002\u0002\u1279\u127a\u0007U\u0002", + "\u0002\u127a\u0280\u0003\u0002\u0002\u0002\u127b\u127c\u0007E\u0002", + "\u0002\u127c\u127d\u0007Q\u0002\u0002\u127d\u127e\u0007R\u0002\u0002", + "\u127e\u127f\u0007[\u0002\u0002\u127f\u0282\u0003\u0002\u0002\u0002", + "\u1280\u1281\u0007E\u0002\u0002\u1281\u1282\u0007R\u0002\u0002\u1282", + "\u1283\u0007W\u0002\u0002\u1283\u0284\u0003\u0002\u0002\u0002\u1284", + "\u1285\u0007E\u0002\u0002\u1285\u1286\u0007W\u0002\u0002\u1286\u1287", + "\u0007T\u0002\u0002\u1287\u1288\u0007U\u0002\u0002\u1288\u1289\u0007", + "Q\u0002\u0002\u1289\u128a\u0007T\u0002\u0002\u128a\u128b\u0007a\u0002", + "\u0002\u128b\u128c\u0007P\u0002\u0002\u128c\u128d\u0007C\u0002\u0002", + "\u128d\u128e\u0007O\u0002\u0002\u128e\u128f\u0007G\u0002\u0002\u128f", + "\u0286\u0003\u0002\u0002\u0002\u1290\u1291\u0007F\u0002\u0002\u1291", + "\u1292\u0007C\u0002\u0002\u1292\u1293\u0007V\u0002\u0002\u1293\u1294", + "\u0007C\u0002\u0002\u1294\u0288\u0003\u0002\u0002\u0002\u1295\u1296", + "\u0007F\u0002\u0002\u1296\u1297\u0007C\u0002\u0002\u1297\u1298\u0007", + "V\u0002\u0002\u1298\u1299\u0007C\u0002\u0002\u1299\u129a\u0007H\u0002", + "\u0002\u129a\u129b\u0007K\u0002\u0002\u129b\u129c\u0007N\u0002\u0002", + "\u129c\u129d\u0007G\u0002\u0002\u129d\u028a\u0003\u0002\u0002\u0002", + "\u129e\u129f\u0007F\u0002\u0002\u129f\u12a0\u0007G\u0002\u0002\u12a0", + "\u12a1\u0007C\u0002\u0002\u12a1\u12a2\u0007N\u0002\u0002\u12a2\u12a3", + "\u0007N\u0002\u0002\u12a3\u12a4\u0007Q\u0002\u0002\u12a4\u12a5\u0007", + "E\u0002\u0002\u12a5\u12a6\u0007C\u0002\u0002\u12a6\u12a7\u0007V\u0002", + "\u0002\u12a7\u12a8\u0007G\u0002\u0002\u12a8\u028c\u0003\u0002\u0002", + "\u0002\u12a9\u12aa\u0007F\u0002\u0002\u12aa\u12ab\u0007G\u0002\u0002", + "\u12ab\u12ac\u0007H\u0002\u0002\u12ac\u12ad\u0007C\u0002\u0002\u12ad", + "\u12ae\u0007W\u0002\u0002\u12ae\u12af\u0007N\u0002\u0002\u12af\u12b0", + "\u0007V\u0002\u0002\u12b0\u12b1\u0007a\u0002\u0002\u12b1\u12b2\u0007", + "C\u0002\u0002\u12b2\u12b3\u0007W\u0002\u0002\u12b3\u12b4\u0007V\u0002", + "\u0002\u12b4\u12b5\u0007J\u0002\u0002\u12b5\u028e\u0003\u0002\u0002", + "\u0002\u12b6\u12b7\u0007F\u0002\u0002\u12b7\u12b8\u0007G\u0002\u0002", + "\u12b8\u12b9\u0007H\u0002\u0002\u12b9\u12ba\u0007K\u0002\u0002\u12ba", + "\u12bb\u0007P\u0002\u0002\u12bb\u12bc\u0007G\u0002\u0002\u12bc\u12bd", + "\u0007T\u0002\u0002\u12bd\u0290\u0003\u0002\u0002\u0002\u12be\u12bf", + "\u0007F\u0002\u0002\u12bf\u12c0\u0007G\u0002\u0002\u12c0\u12c1\u0007", + "N\u0002\u0002\u12c1\u12c2\u0007C\u0002\u0002\u12c2\u12c3\u0007[\u0002", + "\u0002\u12c3\u12c4\u0007a\u0002\u0002\u12c4\u12c5\u0007M\u0002\u0002", + "\u12c5\u12c6\u0007G\u0002\u0002\u12c6\u12c7\u0007[\u0002\u0002\u12c7", + "\u12c8\u0007a\u0002\u0002\u12c8\u12c9\u0007Y\u0002\u0002\u12c9\u12ca", + "\u0007T\u0002\u0002\u12ca\u12cb\u0007K\u0002\u0002\u12cb\u12cc\u0007", + "V\u0002\u0002\u12cc\u12cd\u0007G\u0002\u0002\u12cd\u0292\u0003\u0002", + "\u0002\u0002\u12ce\u12cf\u0007F\u0002\u0002\u12cf\u12d0\u0007G\u0002", + "\u0002\u12d0\u12d1\u0007U\u0002\u0002\u12d1\u12d2\u0007a\u0002\u0002", + "\u12d2\u12d3\u0007M\u0002\u0002\u12d3\u12d4\u0007G\u0002\u0002\u12d4", + "\u12d5\u0007[\u0002\u0002\u12d5\u12d6\u0007a\u0002\u0002\u12d6\u12d7", + "\u0007H\u0002\u0002\u12d7\u12d8\u0007K\u0002\u0002\u12d8\u12d9\u0007", + "N\u0002\u0002\u12d9\u12da\u0007G\u0002\u0002\u12da\u0294\u0003\u0002", + "\u0002\u0002\u12db\u12dc\u0007F\u0002\u0002\u12dc\u12dd\u0007K\u0002", + "\u0002\u12dd\u12de\u0007T\u0002\u0002\u12de\u12df\u0007G\u0002\u0002", + "\u12df\u12e0\u0007E\u0002\u0002\u12e0\u12e1\u0007V\u0002\u0002\u12e1", + "\u12e2\u0007Q\u0002\u0002\u12e2\u12e3\u0007T\u0002\u0002\u12e3\u12e4", + "\u0007[\u0002\u0002\u12e4\u0296\u0003\u0002\u0002\u0002\u12e5\u12e6", + "\u0007F\u0002\u0002\u12e6\u12e7\u0007K\u0002\u0002\u12e7\u12e8\u0007", + "U\u0002\u0002\u12e8\u12e9\u0007C\u0002\u0002\u12e9\u12ea\u0007D\u0002", + "\u0002\u12ea\u12eb\u0007N\u0002\u0002\u12eb\u12ec\u0007G\u0002\u0002", + "\u12ec\u0298\u0003\u0002\u0002\u0002\u12ed\u12ee\u0007F\u0002\u0002", + "\u12ee\u12ef\u0007K\u0002\u0002\u12ef\u12f0\u0007U\u0002\u0002\u12f0", + "\u12f1\u0007E\u0002\u0002\u12f1\u12f2\u0007C\u0002\u0002\u12f2\u12f3", + "\u0007T\u0002\u0002\u12f3\u12f4\u0007F\u0002\u0002\u12f4\u029a\u0003", + "\u0002\u0002\u0002\u12f5\u12f6\u0007F\u0002\u0002\u12f6\u12f7\u0007", + "K\u0002\u0002\u12f7\u12f8\u0007U\u0002\u0002\u12f8\u12f9\u0007M\u0002", + "\u0002\u12f9\u029c\u0003\u0002\u0002\u0002\u12fa\u12fb\u0007F\u0002", + "\u0002\u12fb\u12fc\u0007Q\u0002\u0002\u12fc\u029e\u0003\u0002\u0002", + "\u0002\u12fd\u12fe\u0007F\u0002\u0002\u12fe\u12ff\u0007W\u0002\u0002", + "\u12ff\u1300\u0007O\u0002\u0002\u1300\u1301\u0007R\u0002\u0002\u1301", + "\u1302\u0007H\u0002\u0002\u1302\u1303\u0007K\u0002\u0002\u1303\u1304", + "\u0007N\u0002\u0002\u1304\u1305\u0007G\u0002\u0002\u1305\u02a0\u0003", + "\u0002\u0002\u0002\u1306\u1307\u0007F\u0002\u0002\u1307\u1308\u0007", + "W\u0002\u0002\u1308\u1309\u0007R\u0002\u0002\u1309\u130a\u0007N\u0002", + "\u0002\u130a\u130b\u0007K\u0002\u0002\u130b\u130c\u0007E\u0002\u0002", + "\u130c\u130d\u0007C\u0002\u0002\u130d\u130e\u0007V\u0002\u0002\u130e", + "\u130f\u0007G\u0002\u0002\u130f\u02a2\u0003\u0002\u0002\u0002\u1310", + "\u1311\u0007F\u0002\u0002\u1311\u1312\u0007[\u0002\u0002\u1312\u1313", + "\u0007P\u0002\u0002\u1313\u1314\u0007C\u0002\u0002\u1314\u1315\u0007", + "O\u0002\u0002\u1315\u1316\u0007K\u0002\u0002\u1316\u1317\u0007E\u0002", + "\u0002\u1317\u02a4\u0003\u0002\u0002\u0002\u1318\u1319\u0007G\u0002", + "\u0002\u1319\u131a\u0007P\u0002\u0002\u131a\u131b\u0007C\u0002\u0002", + "\u131b\u131c\u0007D\u0002\u0002\u131c\u131d\u0007N\u0002\u0002\u131d", + "\u131e\u0007G\u0002\u0002\u131e\u02a6\u0003\u0002\u0002\u0002\u131f", + "\u1320\u0007G\u0002\u0002\u1320\u1321\u0007P\u0002\u0002\u1321\u1322", + "\u0007E\u0002\u0002\u1322\u1323\u0007T\u0002\u0002\u1323\u1324\u0007", + "[\u0002\u0002\u1324\u1325\u0007R\u0002\u0002\u1325\u1326\u0007V\u0002", + "\u0002\u1326\u1327\u0007K\u0002\u0002\u1327\u1328\u0007Q\u0002\u0002", + "\u1328\u1329\u0007P\u0002\u0002\u1329\u02a8\u0003\u0002\u0002\u0002", + "\u132a\u132b\u0007G\u0002\u0002\u132b\u132c\u0007P\u0002\u0002\u132c", + "\u132d\u0007F\u0002\u0002\u132d\u02aa\u0003\u0002\u0002\u0002\u132e", + "\u132f\u0007G\u0002\u0002\u132f\u1330\u0007P\u0002\u0002\u1330\u1331", + "\u0007F\u0002\u0002\u1331\u1332\u0007U\u0002\u0002\u1332\u02ac\u0003", + "\u0002\u0002\u0002\u1333\u1334\u0007G\u0002\u0002\u1334\u1335\u0007", + "P\u0002\u0002\u1335\u1336\u0007I\u0002\u0002\u1336\u1337\u0007K\u0002", + "\u0002\u1337\u1338\u0007P\u0002\u0002\u1338\u1339\u0007G\u0002\u0002", + "\u1339\u02ae\u0003\u0002\u0002\u0002\u133a\u133b\u0007G\u0002\u0002", + "\u133b\u133c\u0007P\u0002\u0002\u133c\u133d\u0007I\u0002\u0002\u133d", + "\u133e\u0007K\u0002\u0002\u133e\u133f\u0007P\u0002\u0002\u133f\u1340", + "\u0007G\u0002\u0002\u1340\u1341\u0007U\u0002\u0002\u1341\u02b0\u0003", + "\u0002\u0002\u0002\u1342\u1343\u0007G\u0002\u0002\u1343\u1344\u0007", + "T\u0002\u0002\u1344\u1345\u0007T\u0002\u0002\u1345\u1346\u0007Q\u0002", + "\u0002\u1346\u1347\u0007T\u0002\u0002\u1347\u02b2\u0003\u0002\u0002", + "\u0002\u1348\u1349\u0007G\u0002\u0002\u1349\u134a\u0007T\u0002\u0002", + "\u134a\u134b\u0007T\u0002\u0002\u134b\u134c\u0007Q\u0002\u0002\u134c", + "\u134d\u0007T\u0002\u0002\u134d\u134e\u0007U\u0002\u0002\u134e\u02b4", + "\u0003\u0002\u0002\u0002\u134f\u1350\u0007G\u0002\u0002\u1350\u1351", + "\u0007U\u0002\u0002\u1351\u1352\u0007E\u0002\u0002\u1352\u1353\u0007", + "C\u0002\u0002\u1353\u1354\u0007R\u0002\u0002\u1354\u1355\u0007G\u0002", + "\u0002\u1355\u02b6\u0003\u0002\u0002\u0002\u1356\u1357\u0007G\u0002", + "\u0002\u1357\u1358\u0007X\u0002\u0002\u1358\u1359\u0007G\u0002\u0002", + "\u1359\u135a\u0007P\u0002\u0002\u135a\u02b8\u0003\u0002\u0002\u0002", + "\u135b\u135c\u0007G\u0002\u0002\u135c\u135d\u0007X\u0002\u0002\u135d", + "\u135e\u0007G\u0002\u0002\u135e\u135f\u0007P\u0002\u0002\u135f\u1360", + "\u0007V\u0002\u0002\u1360\u02ba\u0003\u0002\u0002\u0002\u1361\u1362", + "\u0007G\u0002\u0002\u1362\u1363\u0007X\u0002\u0002\u1363\u1364\u0007", + "G\u0002\u0002\u1364\u1365\u0007P\u0002\u0002\u1365\u1366\u0007V\u0002", + "\u0002\u1366\u1367\u0007U\u0002\u0002\u1367\u02bc\u0003\u0002\u0002", + "\u0002\u1368\u1369\u0007G\u0002\u0002\u1369\u136a\u0007X\u0002\u0002", + "\u136a\u136b\u0007G\u0002\u0002\u136b\u136c\u0007T\u0002\u0002\u136c", + "\u136d\u0007[\u0002\u0002\u136d\u02be\u0003\u0002\u0002\u0002\u136e", + "\u136f\u0007G\u0002\u0002\u136f\u1370\u0007Z\u0002\u0002\u1370\u1371", + "\u0007E\u0002\u0002\u1371\u1372\u0007J\u0002\u0002\u1372\u1373\u0007", + "C\u0002\u0002\u1373\u1374\u0007P\u0002\u0002\u1374\u1375\u0007I\u0002", + "\u0002\u1375\u1376\u0007G\u0002\u0002\u1376\u02c0\u0003\u0002\u0002", + "\u0002\u1377\u1378\u0007G\u0002\u0002\u1378\u1379\u0007Z\u0002\u0002", + "\u1379\u137a\u0007E\u0002\u0002\u137a\u137b\u0007N\u0002\u0002\u137b", + "\u137c\u0007W\u0002\u0002\u137c\u137d\u0007U\u0002\u0002\u137d\u137e", + "\u0007K\u0002\u0002\u137e\u137f\u0007X\u0002\u0002\u137f\u1380\u0007", + "G\u0002\u0002\u1380\u02c2\u0003\u0002\u0002\u0002\u1381\u1382\u0007", + "G\u0002\u0002\u1382\u1383\u0007Z\u0002\u0002\u1383\u1384\u0007R\u0002", + "\u0002\u1384\u1385\u0007K\u0002\u0002\u1385\u1386\u0007T\u0002\u0002", + "\u1386\u1387\u0007G\u0002\u0002\u1387\u02c4\u0003\u0002\u0002\u0002", + "\u1388\u1389\u0007G\u0002\u0002\u1389\u138a\u0007Z\u0002\u0002\u138a", + "\u138b\u0007R\u0002\u0002\u138b\u138c\u0007Q\u0002\u0002\u138c\u138d", + "\u0007T\u0002\u0002\u138d\u138e\u0007V\u0002\u0002\u138e\u02c6\u0003", + "\u0002\u0002\u0002\u138f\u1390\u0007G\u0002\u0002\u1390\u1391\u0007", + "Z\u0002\u0002\u1391\u1392\u0007V\u0002\u0002\u1392\u1393\u0007G\u0002", + "\u0002\u1393\u1394\u0007P\u0002\u0002\u1394\u1395\u0007F\u0002\u0002", + "\u1395\u1396\u0007G\u0002\u0002\u1396\u1397\u0007F\u0002\u0002\u1397", + "\u02c8\u0003\u0002\u0002\u0002\u1398\u1399\u0007G\u0002\u0002\u1399", + "\u139a\u0007Z\u0002\u0002\u139a\u139b\u0007V\u0002\u0002\u139b\u139c", + "\u0007G\u0002\u0002\u139c\u139d\u0007P\u0002\u0002\u139d\u139e\u0007", + "V\u0002\u0002\u139e\u139f\u0007a\u0002\u0002\u139f\u13a0\u0007U\u0002", + "\u0002\u13a0\u13a1\u0007K\u0002\u0002\u13a1\u13a2\u0007\\\u0002\u0002", + "\u13a2\u13a3\u0007G\u0002\u0002\u13a3\u02ca\u0003\u0002\u0002\u0002", + "\u13a4\u13a5\u0007H\u0002\u0002\u13a5\u13a6\u0007C\u0002\u0002\u13a6", + "\u13a7\u0007U\u0002\u0002\u13a7\u13a8\u0007V\u0002\u0002\u13a8\u02cc", + "\u0003\u0002\u0002\u0002\u13a9\u13aa\u0007H\u0002\u0002\u13aa\u13ab", + "\u0007C\u0002\u0002\u13ab\u13ac\u0007W\u0002\u0002\u13ac\u13ad\u0007", + "N\u0002\u0002\u13ad\u13ae\u0007V\u0002\u0002\u13ae\u13af\u0007U\u0002", + "\u0002\u13af\u02ce\u0003\u0002\u0002\u0002\u13b0\u13b1\u0007H\u0002", + "\u0002\u13b1\u13b2\u0007K\u0002\u0002\u13b2\u13b3\u0007G\u0002\u0002", + "\u13b3\u13b4\u0007N\u0002\u0002\u13b4\u13b5\u0007F\u0002\u0002\u13b5", + "\u13b6\u0007U\u0002\u0002\u13b6\u02d0\u0003\u0002\u0002\u0002\u13b7", + "\u13b8\u0007H\u0002\u0002\u13b8\u13b9\u0007K\u0002\u0002\u13b9\u13ba", + "\u0007N\u0002\u0002\u13ba\u13bb\u0007G\u0002\u0002\u13bb\u13bc\u0007", + "a\u0002\u0002\u13bc\u13bd\u0007D\u0002\u0002\u13bd\u13be\u0007N\u0002", + "\u0002\u13be\u13bf\u0007Q\u0002\u0002\u13bf\u13c0\u0007E\u0002\u0002", + "\u13c0\u13c1\u0007M\u0002\u0002\u13c1\u13c2\u0007a\u0002\u0002\u13c2", + "\u13c3\u0007U\u0002\u0002\u13c3\u13c4\u0007K\u0002\u0002\u13c4\u13c5", + "\u0007\\\u0002\u0002\u13c5\u13c6\u0007G\u0002\u0002\u13c6\u02d2\u0003", + "\u0002\u0002\u0002\u13c7\u13c8\u0007H\u0002\u0002\u13c8\u13c9\u0007", + "K\u0002\u0002\u13c9\u13ca\u0007N\u0002\u0002\u13ca\u13cb\u0007V\u0002", + "\u0002\u13cb\u13cc\u0007G\u0002\u0002\u13cc\u13cd\u0007T\u0002\u0002", + "\u13cd\u02d4\u0003\u0002\u0002\u0002\u13ce\u13cf\u0007H\u0002\u0002", + "\u13cf\u13d0\u0007K\u0002\u0002\u13d0\u13d1\u0007T\u0002\u0002\u13d1", + "\u13d2\u0007U\u0002\u0002\u13d2\u13d3\u0007V\u0002\u0002\u13d3\u02d6", + "\u0003\u0002\u0002\u0002\u13d4\u13d5\u0007H\u0002\u0002\u13d5\u13d6", + "\u0007K\u0002\u0002\u13d6\u13d7\u0007Z\u0002\u0002\u13d7\u13d8\u0007", + "G\u0002\u0002\u13d8\u13d9\u0007F\u0002\u0002\u13d9\u02d8\u0003\u0002", + "\u0002\u0002\u13da\u13db\u0007H\u0002\u0002\u13db\u13dc\u0007N\u0002", + "\u0002\u13dc\u13dd\u0007W\u0002\u0002\u13dd\u13de\u0007U\u0002\u0002", + "\u13de\u13df\u0007J\u0002\u0002\u13df\u02da\u0003\u0002\u0002\u0002", + "\u13e0\u13e1\u0007H\u0002\u0002\u13e1\u13e2\u0007Q\u0002\u0002\u13e2", + "\u13e3\u0007N\u0002\u0002\u13e3\u13e4\u0007N\u0002\u0002\u13e4\u13e5", + "\u0007Q\u0002\u0002\u13e5\u13e6\u0007Y\u0002\u0002\u13e6\u13e7\u0007", + "U\u0002\u0002\u13e7\u02dc\u0003\u0002\u0002\u0002\u13e8\u13e9\u0007", + "H\u0002\u0002\u13e9\u13ea\u0007Q\u0002\u0002\u13ea\u13eb\u0007W\u0002", + "\u0002\u13eb\u13ec\u0007P\u0002\u0002\u13ec\u13ed\u0007F\u0002\u0002", + "\u13ed\u02de\u0003\u0002\u0002\u0002\u13ee\u13ef\u0007H\u0002\u0002", + "\u13ef\u13f0\u0007W\u0002\u0002\u13f0\u13f1\u0007N\u0002\u0002\u13f1", + "\u13f2\u0007N\u0002\u0002\u13f2\u02e0\u0003\u0002\u0002\u0002\u13f3", + "\u13f4\u0007H\u0002\u0002\u13f4\u13f5\u0007W\u0002\u0002\u13f5\u13f6", + "\u0007P\u0002\u0002\u13f6\u13f7\u0007E\u0002\u0002\u13f7\u13f8\u0007", + "V\u0002\u0002\u13f8\u13f9\u0007K\u0002\u0002\u13f9\u13fa\u0007Q\u0002", + "\u0002\u13fa\u13fb\u0007P\u0002\u0002\u13fb\u02e2\u0003\u0002\u0002", + "\u0002\u13fc\u13fd\u0007I\u0002\u0002\u13fd\u13fe\u0007G\u0002\u0002", + "\u13fe\u13ff\u0007P\u0002\u0002\u13ff\u1400\u0007G\u0002\u0002\u1400", + "\u1401\u0007T\u0002\u0002\u1401\u1402\u0007C\u0002\u0002\u1402\u1403", + "\u0007N\u0002\u0002\u1403\u02e4\u0003\u0002\u0002\u0002\u1404\u1405", + "\u0007I\u0002\u0002\u1405\u1406\u0007N\u0002\u0002\u1406\u1407\u0007", + "Q\u0002\u0002\u1407\u1408\u0007D\u0002\u0002\u1408\u1409\u0007C\u0002", + "\u0002\u1409\u140a\u0007N\u0002\u0002\u140a\u02e6\u0003\u0002\u0002", + "\u0002\u140b\u140c\u0007I\u0002\u0002\u140c\u140d\u0007T\u0002\u0002", + "\u140d\u140e\u0007C\u0002\u0002\u140e\u140f\u0007P\u0002\u0002\u140f", + "\u1410\u0007V\u0002\u0002\u1410\u1411\u0007U\u0002\u0002\u1411\u02e8", + "\u0003\u0002\u0002\u0002\u1412\u1413\u0007I\u0002\u0002\u1413\u1414", + "\u0007T\u0002\u0002\u1414\u1415\u0007Q\u0002\u0002\u1415\u1416\u0007", + "W\u0002\u0002\u1416\u1417\u0007R\u0002\u0002\u1417\u1418\u0007a\u0002", + "\u0002\u1418\u1419\u0007T\u0002\u0002\u1419\u141a\u0007G\u0002\u0002", + "\u141a\u141b\u0007R\u0002\u0002\u141b\u141c\u0007N\u0002\u0002\u141c", + "\u141d\u0007K\u0002\u0002\u141d\u141e\u0007E\u0002\u0002\u141e\u141f", + "\u0007C\u0002\u0002\u141f\u1420\u0007V\u0002\u0002\u1420\u1421\u0007", + "K\u0002\u0002\u1421\u1422\u0007Q\u0002\u0002\u1422\u1423\u0007P\u0002", + "\u0002\u1423\u02ea\u0003\u0002\u0002\u0002\u1424\u1425\u0007J\u0002", + "\u0002\u1425\u1426\u0007C\u0002\u0002\u1426\u1427\u0007P\u0002\u0002", + "\u1427\u1428\u0007F\u0002\u0002\u1428\u1429\u0007N\u0002\u0002\u1429", + "\u142a\u0007G\u0002\u0002\u142a\u142b\u0007T\u0002\u0002\u142b\u02ec", + "\u0003\u0002\u0002\u0002\u142c\u142d\u0007J\u0002\u0002\u142d\u142e", + "\u0007C\u0002\u0002\u142e\u142f\u0007U\u0002\u0002\u142f\u1430\u0007", + "J\u0002\u0002\u1430\u02ee\u0003\u0002\u0002\u0002\u1431\u1432\u0007", + "J\u0002\u0002\u1432\u1433\u0007G\u0002\u0002\u1433\u1434\u0007N\u0002", + "\u0002\u1434\u1435\u0007R\u0002\u0002\u1435\u02f0\u0003\u0002\u0002", + "\u0002\u1436\u1437\u0007J\u0002\u0002\u1437\u1438\u0007Q\u0002\u0002", + "\u1438\u1439\u0007U\u0002\u0002\u1439\u143a\u0007V\u0002\u0002\u143a", + "\u02f2\u0003\u0002\u0002\u0002\u143b\u143c\u0007J\u0002\u0002\u143c", + "\u143d\u0007Q\u0002\u0002\u143d\u143e\u0007U\u0002\u0002\u143e\u143f", + "\u0007V\u0002\u0002\u143f\u1440\u0007U\u0002\u0002\u1440\u02f4\u0003", + "\u0002\u0002\u0002\u1441\u1442\u0007K\u0002\u0002\u1442\u1443\u0007", + "F\u0002\u0002\u1443\u1444\u0007G\u0002\u0002\u1444\u1445\u0007P\u0002", + "\u0002\u1445\u1446\u0007V\u0002\u0002\u1446\u1447\u0007K\u0002\u0002", + "\u1447\u1448\u0007H\u0002\u0002\u1448\u1449\u0007K\u0002\u0002\u1449", + "\u144a\u0007G\u0002\u0002\u144a\u144b\u0007F\u0002\u0002\u144b\u02f6", + "\u0003\u0002\u0002\u0002\u144c\u144d\u0007K\u0002\u0002\u144d\u144e", + "\u0007I\u0002\u0002\u144e\u144f\u0007P\u0002\u0002\u144f\u1450\u0007", + "Q\u0002\u0002\u1450\u1451\u0007T\u0002\u0002\u1451\u1452\u0007G\u0002", + "\u0002\u1452\u1453\u0007a\u0002\u0002\u1453\u1454\u0007U\u0002\u0002", + "\u1454\u1455\u0007G\u0002\u0002\u1455\u1456\u0007T\u0002\u0002\u1456", + "\u1457\u0007X\u0002\u0002\u1457\u1458\u0007G\u0002\u0002\u1458\u1459", + "\u0007T\u0002\u0002\u1459\u145a\u0007a\u0002\u0002\u145a\u145b\u0007", + "K\u0002\u0002\u145b\u145c\u0007F\u0002\u0002\u145c\u145d\u0007U\u0002", + "\u0002\u145d\u02f8\u0003\u0002\u0002\u0002\u145e\u145f\u0007K\u0002", + "\u0002\u145f\u1460\u0007O\u0002\u0002\u1460\u1461\u0007R\u0002\u0002", + "\u1461\u1462\u0007Q\u0002\u0002\u1462\u1463\u0007T\u0002\u0002\u1463", + "\u1464\u0007V\u0002\u0002\u1464\u02fa\u0003\u0002\u0002\u0002\u1465", + "\u1466\u0007K\u0002\u0002\u1466\u1467\u0007P\u0002\u0002\u1467\u1468", + "\u0007F\u0002\u0002\u1468\u1469\u0007G\u0002\u0002\u1469\u146a\u0007", + "Z\u0002\u0002\u146a\u146b\u0007G\u0002\u0002\u146b\u146c\u0007U\u0002", + "\u0002\u146c\u02fc\u0003\u0002\u0002\u0002\u146d\u146e\u0007K\u0002", + "\u0002\u146e\u146f\u0007P\u0002\u0002\u146f\u1470\u0007K\u0002\u0002", + "\u1470\u1471\u0007V\u0002\u0002\u1471\u1472\u0007K\u0002\u0002\u1472", + "\u1473\u0007C\u0002\u0002\u1473\u1474\u0007N\u0002\u0002\u1474\u1475", + "\u0007a\u0002\u0002\u1475\u1476\u0007U\u0002\u0002\u1476\u1477\u0007", + "K\u0002\u0002\u1477\u1478\u0007\\\u0002\u0002\u1478\u1479\u0007G\u0002", + "\u0002\u1479\u02fe\u0003\u0002\u0002\u0002\u147a\u147b\u0007K\u0002", + "\u0002\u147b\u147c\u0007P\u0002\u0002\u147c\u147d\u0007R\u0002\u0002", + "\u147d\u147e\u0007N\u0002\u0002\u147e\u147f\u0007C\u0002\u0002\u147f", + "\u1480\u0007E\u0002\u0002\u1480\u1481\u0007G\u0002\u0002\u1481\u0300", + "\u0003\u0002\u0002\u0002\u1482\u1483\u0007K\u0002\u0002\u1483\u1484", + "\u0007P\u0002\u0002\u1484\u1485\u0007U\u0002\u0002\u1485\u1486\u0007", + "G\u0002\u0002\u1486\u1487\u0007T\u0002\u0002\u1487\u1488\u0007V\u0002", + "\u0002\u1488\u1489\u0007a\u0002\u0002\u1489\u148a\u0007O\u0002\u0002", + "\u148a\u148b\u0007G\u0002\u0002\u148b\u148c\u0007V\u0002\u0002\u148c", + "\u148d\u0007J\u0002\u0002\u148d\u148e\u0007Q\u0002\u0002\u148e\u148f", + "\u0007F\u0002\u0002\u148f\u0302\u0003\u0002\u0002\u0002\u1490\u1491", + "\u0007K\u0002\u0002\u1491\u1492\u0007P\u0002\u0002\u1492\u1493\u0007", + "U\u0002\u0002\u1493\u1494\u0007V\u0002\u0002\u1494\u1495\u0007C\u0002", + "\u0002\u1495\u1496\u0007N\u0002\u0002\u1496\u1497\u0007N\u0002\u0002", + "\u1497\u0304\u0003\u0002\u0002\u0002\u1498\u1499\u0007K\u0002\u0002", + "\u1499\u149a\u0007P\u0002\u0002\u149a\u149b\u0007U\u0002\u0002\u149b", + "\u149c\u0007V\u0002\u0002\u149c\u149d\u0007C\u0002\u0002\u149d\u149e", + "\u0007P\u0002\u0002\u149e\u149f\u0007E\u0002\u0002\u149f\u14a0\u0007", + "G\u0002\u0002\u14a0\u0306\u0003\u0002\u0002\u0002\u14a1\u14a2\u0007", + "K\u0002\u0002\u14a2\u14a3\u0007P\u0002\u0002\u14a3\u14a4\u0007X\u0002", + "\u0002\u14a4\u14a5\u0007K\u0002\u0002\u14a5\u14a6\u0007U\u0002\u0002", + "\u14a6\u14a7\u0007K\u0002\u0002\u14a7\u14a8\u0007D\u0002\u0002\u14a8", + "\u14a9\u0007N\u0002\u0002\u14a9\u14aa\u0007G\u0002\u0002\u14aa\u0308", + "\u0003\u0002\u0002\u0002\u14ab\u14ac\u0007K\u0002\u0002\u14ac\u14ad", + "\u0007P\u0002\u0002\u14ad\u14ae\u0007X\u0002\u0002\u14ae\u14af\u0007", + "Q\u0002\u0002\u14af\u14b0\u0007M\u0002\u0002\u14b0\u14b1\u0007G\u0002", + "\u0002\u14b1\u14b2\u0007T\u0002\u0002\u14b2\u030a\u0003\u0002\u0002", + "\u0002\u14b3\u14b4\u0007K\u0002\u0002\u14b4\u14b5\u0007Q\u0002\u0002", + "\u14b5\u030c\u0003\u0002\u0002\u0002\u14b6\u14b7\u0007K\u0002\u0002", + "\u14b7\u14b8\u0007Q\u0002\u0002\u14b8\u14b9\u0007a\u0002\u0002\u14b9", + "\u14ba\u0007V\u0002\u0002\u14ba\u14bb\u0007J\u0002\u0002\u14bb\u14bc", + "\u0007T\u0002\u0002\u14bc\u14bd\u0007G\u0002\u0002\u14bd\u14be\u0007", + "C\u0002\u0002\u14be\u14bf\u0007F\u0002\u0002\u14bf\u030e\u0003\u0002", + "\u0002\u0002\u14c0\u14c1\u0007K\u0002\u0002\u14c1\u14c2\u0007R\u0002", + "\u0002\u14c2\u14c3\u0007E\u0002\u0002\u14c3\u0310\u0003\u0002\u0002", + "\u0002\u14c4\u14c5\u0007K\u0002\u0002\u14c5\u14c6\u0007U\u0002\u0002", + "\u14c6\u14c7\u0007Q\u0002\u0002\u14c7\u14c8\u0007N\u0002\u0002\u14c8", + "\u14c9\u0007C\u0002\u0002\u14c9\u14ca\u0007V\u0002\u0002\u14ca\u14cb", + "\u0007K\u0002\u0002\u14cb\u14cc\u0007Q\u0002\u0002\u14cc\u14cd\u0007", + "P\u0002\u0002\u14cd\u0312\u0003\u0002\u0002\u0002\u14ce\u14cf\u0007", + "K\u0002\u0002\u14cf\u14d0\u0007U\u0002\u0002\u14d0\u14d1\u0007U\u0002", + "\u0002\u14d1\u14d2\u0007W\u0002\u0002\u14d2\u14d3\u0007G\u0002\u0002", + "\u14d3\u14d4\u0007T\u0002\u0002\u14d4\u0314\u0003\u0002\u0002\u0002", + "\u14d5\u14d6\u0007L\u0002\u0002\u14d6\u14d7\u0007U\u0002\u0002\u14d7", + "\u14d8\u0007Q\u0002\u0002\u14d8\u14d9\u0007P\u0002\u0002\u14d9\u0316", + "\u0003\u0002\u0002\u0002\u14da\u14db\u0007M\u0002\u0002\u14db\u14dc", + "\u0007G\u0002\u0002\u14dc\u14dd\u0007[\u0002\u0002\u14dd\u14de\u0007", + "a\u0002\u0002\u14de\u14df\u0007D\u0002\u0002\u14df\u14e0\u0007N\u0002", + "\u0002\u14e0\u14e1\u0007Q\u0002\u0002\u14e1\u14e2\u0007E\u0002\u0002", + "\u14e2\u14e3\u0007M\u0002\u0002\u14e3\u14e4\u0007a\u0002\u0002\u14e4", + "\u14e5\u0007U\u0002\u0002\u14e5\u14e6\u0007K\u0002\u0002\u14e6\u14e7", + "\u0007\\\u0002\u0002\u14e7\u14e8\u0007G\u0002\u0002\u14e8\u0318\u0003", + "\u0002\u0002\u0002\u14e9\u14ea\u0007N\u0002\u0002\u14ea\u14eb\u0007", + "C\u0002\u0002\u14eb\u14ec\u0007P\u0002\u0002\u14ec\u14ed\u0007I\u0002", + "\u0002\u14ed\u14ee\u0007W\u0002\u0002\u14ee\u14ef\u0007C\u0002\u0002", + "\u14ef\u14f0\u0007I\u0002\u0002\u14f0\u14f1\u0007G\u0002\u0002\u14f1", + "\u031a\u0003\u0002\u0002\u0002\u14f2\u14f3\u0007N\u0002\u0002\u14f3", + "\u14f4\u0007C\u0002\u0002\u14f4\u14f5\u0007U\u0002\u0002\u14f5\u14f6", + "\u0007V\u0002\u0002\u14f6\u031c\u0003\u0002\u0002\u0002\u14f7\u14f8", + "\u0007N\u0002\u0002\u14f8\u14f9\u0007G\u0002\u0002\u14f9\u14fa\u0007", + "C\u0002\u0002\u14fa\u14fb\u0007X\u0002\u0002\u14fb\u14fc\u0007G\u0002", + "\u0002\u14fc\u14fd\u0007U\u0002\u0002\u14fd\u031e\u0003\u0002\u0002", + "\u0002\u14fe\u14ff\u0007N\u0002\u0002\u14ff\u1500\u0007G\u0002\u0002", + "\u1500\u1501\u0007U\u0002\u0002\u1501\u1502\u0007U\u0002\u0002\u1502", + "\u0320\u0003\u0002\u0002\u0002\u1503\u1504\u0007N\u0002\u0002\u1504", + "\u1505\u0007G\u0002\u0002\u1505\u1506\u0007X\u0002\u0002\u1506\u1507", + "\u0007G\u0002\u0002\u1507\u1508\u0007N\u0002\u0002\u1508\u0322\u0003", + "\u0002\u0002\u0002\u1509\u150a\u0007N\u0002\u0002\u150a\u150b\u0007", + "K\u0002\u0002\u150b\u150c\u0007U\u0002\u0002\u150c\u150d\u0007V\u0002", + "\u0002\u150d\u0324\u0003\u0002\u0002\u0002\u150e\u150f\u0007N\u0002", + "\u0002\u150f\u1510\u0007Q\u0002\u0002\u1510\u1511\u0007E\u0002\u0002", + "\u1511\u1512\u0007C\u0002\u0002\u1512\u1513\u0007N\u0002\u0002\u1513", + "\u0326\u0003\u0002\u0002\u0002\u1514\u1515\u0007N\u0002\u0002\u1515", + "\u1516\u0007Q\u0002\u0002\u1516\u1517\u0007I\u0002\u0002\u1517\u1518", + "\u0007H\u0002\u0002\u1518\u1519\u0007K\u0002\u0002\u1519\u151a\u0007", + "N\u0002\u0002\u151a\u151b\u0007G\u0002\u0002\u151b\u0328\u0003\u0002", + "\u0002\u0002\u151c\u151d\u0007N\u0002\u0002\u151d\u151e\u0007Q\u0002", + "\u0002\u151e\u151f\u0007I\u0002\u0002\u151f\u1520\u0007U\u0002\u0002", + "\u1520\u032a\u0003\u0002\u0002\u0002\u1521\u1522\u0007O\u0002\u0002", + "\u1522\u1523\u0007C\u0002\u0002\u1523\u1524\u0007U\u0002\u0002\u1524", + "\u1525\u0007V\u0002\u0002\u1525\u1526\u0007G\u0002\u0002\u1526\u1527", + "\u0007T\u0002\u0002\u1527\u032c\u0003\u0002\u0002\u0002\u1528\u1529", + "\u0007O\u0002\u0002\u1529\u152a\u0007C\u0002\u0002\u152a\u152b\u0007", + "U\u0002\u0002\u152b\u152c\u0007V\u0002\u0002\u152c\u152d\u0007G\u0002", + "\u0002\u152d\u152e\u0007T\u0002\u0002\u152e\u152f\u0007a\u0002\u0002", + "\u152f\u1530\u0007C\u0002\u0002\u1530\u1531\u0007W\u0002\u0002\u1531", + "\u1532\u0007V\u0002\u0002\u1532\u1533\u0007Q\u0002\u0002\u1533\u1534", + "\u0007a\u0002\u0002\u1534\u1535\u0007R\u0002\u0002\u1535\u1536\u0007", + "Q\u0002\u0002\u1536\u1537\u0007U\u0002\u0002\u1537\u1538\u0007K\u0002", + "\u0002\u1538\u1539\u0007V\u0002\u0002\u1539\u153a\u0007K\u0002\u0002", + "\u153a\u153b\u0007Q\u0002\u0002\u153b\u153c\u0007P\u0002\u0002\u153c", + "\u032e\u0003\u0002\u0002\u0002\u153d\u153e\u0007O\u0002\u0002\u153e", + "\u153f\u0007C\u0002\u0002\u153f\u1540\u0007U\u0002\u0002\u1540\u1541", + "\u0007V\u0002\u0002\u1541\u1542\u0007G\u0002\u0002\u1542\u1543\u0007", + "T\u0002\u0002\u1543\u1544\u0007a\u0002\u0002\u1544\u1545\u0007E\u0002", + "\u0002\u1545\u1546\u0007Q\u0002\u0002\u1546\u1547\u0007P\u0002\u0002", + "\u1547\u1548\u0007P\u0002\u0002\u1548\u1549\u0007G\u0002\u0002\u1549", + "\u154a\u0007E\u0002\u0002\u154a\u154b\u0007V\u0002\u0002\u154b\u154c", + "\u0007a\u0002\u0002\u154c\u154d\u0007T\u0002\u0002\u154d\u154e\u0007", + "G\u0002\u0002\u154e\u154f\u0007V\u0002\u0002\u154f\u1550\u0007T\u0002", + "\u0002\u1550\u1551\u0007[\u0002\u0002\u1551\u0330\u0003\u0002\u0002", + "\u0002\u1552\u1553\u0007O\u0002\u0002\u1553\u1554\u0007C\u0002\u0002", + "\u1554\u1555\u0007U\u0002\u0002\u1555\u1556\u0007V\u0002\u0002\u1556", + "\u1557\u0007G\u0002\u0002\u1557\u1558\u0007T\u0002\u0002\u1558\u1559", + "\u0007a\u0002\u0002\u1559\u155a\u0007F\u0002\u0002\u155a\u155b\u0007", + "G\u0002\u0002\u155b\u155c\u0007N\u0002\u0002\u155c\u155d\u0007C\u0002", + "\u0002\u155d\u155e\u0007[\u0002\u0002\u155e\u0332\u0003\u0002\u0002", + "\u0002\u155f\u1560\u0007O\u0002\u0002\u1560\u1561\u0007C\u0002\u0002", + "\u1561\u1562\u0007U\u0002\u0002\u1562\u1563\u0007V\u0002\u0002\u1563", + "\u1564\u0007G\u0002\u0002\u1564\u1565\u0007T\u0002\u0002\u1565\u1566", + "\u0007a\u0002\u0002\u1566\u1567\u0007J\u0002\u0002\u1567\u1568\u0007", + "G\u0002\u0002\u1568\u1569\u0007C\u0002\u0002\u1569\u156a\u0007T\u0002", + "\u0002\u156a\u156b\u0007V\u0002\u0002\u156b\u156c\u0007D\u0002\u0002", + "\u156c\u156d\u0007G\u0002\u0002\u156d\u156e\u0007C\u0002\u0002\u156e", + "\u156f\u0007V\u0002\u0002\u156f\u1570\u0007a\u0002\u0002\u1570\u1571", + "\u0007R\u0002\u0002\u1571\u1572\u0007G\u0002\u0002\u1572\u1573\u0007", + "T\u0002\u0002\u1573\u1574\u0007K\u0002\u0002\u1574\u1575\u0007Q\u0002", + "\u0002\u1575\u1576\u0007F\u0002\u0002\u1576\u0334\u0003\u0002\u0002", + "\u0002\u1577\u1578\u0007O\u0002\u0002\u1578\u1579\u0007C\u0002\u0002", + "\u1579\u157a\u0007U\u0002\u0002\u157a\u157b\u0007V\u0002\u0002\u157b", + "\u157c\u0007G\u0002\u0002\u157c\u157d\u0007T\u0002\u0002\u157d\u157e", + "\u0007a\u0002\u0002\u157e\u157f\u0007J\u0002\u0002\u157f\u1580\u0007", + "Q\u0002\u0002\u1580\u1581\u0007U\u0002\u0002\u1581\u1582\u0007V\u0002", + "\u0002\u1582\u0336\u0003\u0002\u0002\u0002\u1583\u1584\u0007O\u0002", + "\u0002\u1584\u1585\u0007C\u0002\u0002\u1585\u1586\u0007U\u0002\u0002", + "\u1586\u1587\u0007V\u0002\u0002\u1587\u1588\u0007G\u0002\u0002\u1588", + "\u1589\u0007T\u0002\u0002\u1589\u158a\u0007a\u0002\u0002\u158a\u158b", + "\u0007N\u0002\u0002\u158b\u158c\u0007Q\u0002\u0002\u158c\u158d\u0007", + "I\u0002\u0002\u158d\u158e\u0007a\u0002\u0002\u158e\u158f\u0007H\u0002", + "\u0002\u158f\u1590\u0007K\u0002\u0002\u1590\u1591\u0007N\u0002\u0002", + "\u1591\u1592\u0007G\u0002\u0002\u1592\u0338\u0003\u0002\u0002\u0002", + "\u1593\u1594\u0007O\u0002\u0002\u1594\u1595\u0007C\u0002\u0002\u1595", + "\u1596\u0007U\u0002\u0002\u1596\u1597\u0007V\u0002\u0002\u1597\u1598", + "\u0007G\u0002\u0002\u1598\u1599\u0007T\u0002\u0002\u1599\u159a\u0007", + "a\u0002\u0002\u159a\u159b\u0007N\u0002\u0002\u159b\u159c\u0007Q\u0002", + "\u0002\u159c\u159d\u0007I\u0002\u0002\u159d\u159e\u0007a\u0002\u0002", + "\u159e\u159f\u0007R\u0002\u0002\u159f\u15a0\u0007Q\u0002\u0002\u15a0", + "\u15a1\u0007U\u0002\u0002\u15a1\u033a\u0003\u0002\u0002\u0002\u15a2", + "\u15a3\u0007O\u0002\u0002\u15a3\u15a4\u0007C\u0002\u0002\u15a4\u15a5", + "\u0007U\u0002\u0002\u15a5\u15a6\u0007V\u0002\u0002\u15a6\u15a7\u0007", + "G\u0002\u0002\u15a7\u15a8\u0007T\u0002\u0002\u15a8\u15a9\u0007a\u0002", + "\u0002\u15a9\u15aa\u0007R\u0002\u0002\u15aa\u15ab\u0007C\u0002\u0002", + "\u15ab\u15ac\u0007U\u0002\u0002\u15ac\u15ad\u0007U\u0002\u0002\u15ad", + "\u15ae\u0007Y\u0002\u0002\u15ae\u15af\u0007Q\u0002\u0002\u15af\u15b0", + "\u0007T\u0002\u0002\u15b0\u15b1\u0007F\u0002\u0002\u15b1\u033c\u0003", + "\u0002\u0002\u0002\u15b2\u15b3\u0007O\u0002\u0002\u15b3\u15b4\u0007", + "C\u0002\u0002\u15b4\u15b5\u0007U\u0002\u0002\u15b5\u15b6\u0007V\u0002", + "\u0002\u15b6\u15b7\u0007G\u0002\u0002\u15b7\u15b8\u0007T\u0002\u0002", + "\u15b8\u15b9\u0007a\u0002\u0002\u15b9\u15ba\u0007R\u0002\u0002\u15ba", + "\u15bb\u0007Q\u0002\u0002\u15bb\u15bc\u0007T\u0002\u0002\u15bc\u15bd", + "\u0007V\u0002\u0002\u15bd\u033e\u0003\u0002\u0002\u0002\u15be\u15bf", + "\u0007O\u0002\u0002\u15bf\u15c0\u0007C\u0002\u0002\u15c0\u15c1\u0007", + "U\u0002\u0002\u15c1\u15c2\u0007V\u0002\u0002\u15c2\u15c3\u0007G\u0002", + "\u0002\u15c3\u15c4\u0007T\u0002\u0002\u15c4\u15c5\u0007a\u0002\u0002", + "\u15c5\u15c6\u0007T\u0002\u0002\u15c6\u15c7\u0007G\u0002\u0002\u15c7", + "\u15c8\u0007V\u0002\u0002\u15c8\u15c9\u0007T\u0002\u0002\u15c9\u15ca", + "\u0007[\u0002\u0002\u15ca\u15cb\u0007a\u0002\u0002\u15cb\u15cc\u0007", + "E\u0002\u0002\u15cc\u15cd\u0007Q\u0002\u0002\u15cd\u15ce\u0007W\u0002", + "\u0002\u15ce\u15cf\u0007P\u0002\u0002\u15cf\u15d0\u0007V\u0002\u0002", + "\u15d0\u0340\u0003\u0002\u0002\u0002\u15d1\u15d2\u0007O\u0002\u0002", + "\u15d2\u15d3\u0007C\u0002\u0002\u15d3\u15d4\u0007U\u0002\u0002\u15d4", + "\u15d5\u0007V\u0002\u0002\u15d5\u15d6\u0007G\u0002\u0002\u15d6\u15d7", + "\u0007T\u0002\u0002\u15d7\u15d8\u0007a\u0002\u0002\u15d8\u15d9\u0007", + "U\u0002\u0002\u15d9\u15da\u0007U\u0002\u0002\u15da\u15db\u0007N\u0002", + "\u0002\u15db\u0342\u0003\u0002\u0002\u0002\u15dc\u15dd\u0007O\u0002", + "\u0002\u15dd\u15de\u0007C\u0002\u0002\u15de\u15df\u0007U\u0002\u0002", + "\u15df\u15e0\u0007V\u0002\u0002\u15e0\u15e1\u0007G\u0002\u0002\u15e1", + "\u15e2\u0007T\u0002\u0002\u15e2\u15e3\u0007a\u0002\u0002\u15e3\u15e4", + "\u0007U\u0002\u0002\u15e4\u15e5\u0007U\u0002\u0002\u15e5\u15e6\u0007", + "N\u0002\u0002\u15e6\u15e7\u0007a\u0002\u0002\u15e7\u15e8\u0007E\u0002", + "\u0002\u15e8\u15e9\u0007C\u0002\u0002\u15e9\u0344\u0003\u0002\u0002", + "\u0002\u15ea\u15eb\u0007O\u0002\u0002\u15eb\u15ec\u0007C\u0002\u0002", + "\u15ec\u15ed\u0007U\u0002\u0002\u15ed\u15ee\u0007V\u0002\u0002\u15ee", + "\u15ef\u0007G\u0002\u0002\u15ef\u15f0\u0007T\u0002\u0002\u15f0\u15f1", + "\u0007a\u0002\u0002\u15f1\u15f2\u0007U\u0002\u0002\u15f2\u15f3\u0007", + "U\u0002\u0002\u15f3\u15f4\u0007N\u0002\u0002\u15f4\u15f5\u0007a\u0002", + "\u0002\u15f5\u15f6\u0007E\u0002\u0002\u15f6\u15f7\u0007C\u0002\u0002", + "\u15f7\u15f8\u0007R\u0002\u0002\u15f8\u15f9\u0007C\u0002\u0002\u15f9", + "\u15fa\u0007V\u0002\u0002\u15fa\u15fb\u0007J\u0002\u0002\u15fb\u0346", + "\u0003\u0002\u0002\u0002\u15fc\u15fd\u0007O\u0002\u0002\u15fd\u15fe", + "\u0007C\u0002\u0002\u15fe\u15ff\u0007U\u0002\u0002\u15ff\u1600\u0007", + "V\u0002\u0002\u1600\u1601\u0007G\u0002\u0002\u1601\u1602\u0007T\u0002", + "\u0002\u1602\u1603\u0007a\u0002\u0002\u1603\u1604\u0007U\u0002\u0002", + "\u1604\u1605\u0007U\u0002\u0002\u1605\u1606\u0007N\u0002\u0002\u1606", + "\u1607\u0007a\u0002\u0002\u1607\u1608\u0007E\u0002\u0002\u1608\u1609", + "\u0007G\u0002\u0002\u1609\u160a\u0007T\u0002\u0002\u160a\u160b\u0007", + "V\u0002\u0002\u160b\u0348\u0003\u0002\u0002\u0002\u160c\u160d\u0007", + "O\u0002\u0002\u160d\u160e\u0007C\u0002\u0002\u160e\u160f\u0007U\u0002", + "\u0002\u160f\u1610\u0007V\u0002\u0002\u1610\u1611\u0007G\u0002\u0002", + "\u1611\u1612\u0007T\u0002\u0002\u1612\u1613\u0007a\u0002\u0002\u1613", + "\u1614\u0007U\u0002\u0002\u1614\u1615\u0007U\u0002\u0002\u1615\u1616", + "\u0007N\u0002\u0002\u1616\u1617\u0007a\u0002\u0002\u1617\u1618\u0007", + "E\u0002\u0002\u1618\u1619\u0007K\u0002\u0002\u1619\u161a\u0007R\u0002", + "\u0002\u161a\u161b\u0007J\u0002\u0002\u161b\u161c\u0007G\u0002\u0002", + "\u161c\u161d\u0007T\u0002\u0002\u161d\u034a\u0003\u0002\u0002\u0002", + "\u161e\u161f\u0007O\u0002\u0002\u161f\u1620\u0007C\u0002\u0002\u1620", + "\u1621\u0007U\u0002\u0002\u1621\u1622\u0007V\u0002\u0002\u1622\u1623", + "\u0007G\u0002\u0002\u1623\u1624\u0007T\u0002\u0002\u1624\u1625\u0007", + "a\u0002\u0002\u1625\u1626\u0007U\u0002\u0002\u1626\u1627\u0007U\u0002", + "\u0002\u1627\u1628\u0007N\u0002\u0002\u1628\u1629\u0007a\u0002\u0002", + "\u1629\u162a\u0007E\u0002\u0002\u162a\u162b\u0007T\u0002\u0002\u162b", + "\u162c\u0007N\u0002\u0002\u162c\u034c\u0003\u0002\u0002\u0002\u162d", + "\u162e\u0007O\u0002\u0002\u162e\u162f\u0007C\u0002\u0002\u162f\u1630", + "\u0007U\u0002\u0002\u1630\u1631\u0007V\u0002\u0002\u1631\u1632\u0007", + "G\u0002\u0002\u1632\u1633\u0007T\u0002\u0002\u1633\u1634\u0007a\u0002", + "\u0002\u1634\u1635\u0007U\u0002\u0002\u1635\u1636\u0007U\u0002\u0002", + "\u1636\u1637\u0007N\u0002\u0002\u1637\u1638\u0007a\u0002\u0002\u1638", + "\u1639\u0007E\u0002\u0002\u1639\u163a\u0007T\u0002\u0002\u163a\u163b", + "\u0007N\u0002\u0002\u163b\u163c\u0007R\u0002\u0002\u163c\u163d\u0007", + "C\u0002\u0002\u163d\u163e\u0007V\u0002\u0002\u163e\u163f\u0007J\u0002", + "\u0002\u163f\u034e\u0003\u0002\u0002\u0002\u1640\u1641\u0007O\u0002", + "\u0002\u1641\u1642\u0007C\u0002\u0002\u1642\u1643\u0007U\u0002\u0002", + "\u1643\u1644\u0007V\u0002\u0002\u1644\u1645\u0007G\u0002\u0002\u1645", + "\u1646\u0007T\u0002\u0002\u1646\u1647\u0007a\u0002\u0002\u1647\u1648", + "\u0007U\u0002\u0002\u1648\u1649\u0007U\u0002\u0002\u1649\u164a\u0007", + "N\u0002\u0002\u164a\u164b\u0007a\u0002\u0002\u164b\u164c\u0007M\u0002", + "\u0002\u164c\u164d\u0007G\u0002\u0002\u164d\u164e\u0007[\u0002\u0002", + "\u164e\u0350\u0003\u0002\u0002\u0002\u164f\u1650\u0007O\u0002\u0002", + "\u1650\u1651\u0007C\u0002\u0002\u1651\u1652\u0007U\u0002\u0002\u1652", + "\u1653\u0007V\u0002\u0002\u1653\u1654\u0007G\u0002\u0002\u1654\u1655", + "\u0007T\u0002\u0002\u1655\u1656\u0007a\u0002\u0002\u1656\u1657\u0007", + "V\u0002\u0002\u1657\u1658\u0007N\u0002\u0002\u1658\u1659\u0007U\u0002", + "\u0002\u1659\u165a\u0007a\u0002\u0002\u165a\u165b\u0007X\u0002\u0002", + "\u165b\u165c\u0007G\u0002\u0002\u165c\u165d\u0007T\u0002\u0002\u165d", + "\u165e\u0007U\u0002\u0002\u165e\u165f\u0007K\u0002\u0002\u165f\u1660", + "\u0007Q\u0002\u0002\u1660\u1661\u0007P\u0002\u0002\u1661\u0352\u0003", + "\u0002\u0002\u0002\u1662\u1663\u0007O\u0002\u0002\u1663\u1664\u0007", + "C\u0002\u0002\u1664\u1665\u0007U\u0002\u0002\u1665\u1666\u0007V\u0002", + "\u0002\u1666\u1667\u0007G\u0002\u0002\u1667\u1668\u0007T\u0002\u0002", + "\u1668\u1669\u0007a\u0002\u0002\u1669\u166a\u0007W\u0002\u0002\u166a", + "\u166b\u0007U\u0002\u0002\u166b\u166c\u0007G\u0002\u0002\u166c\u166d", + "\u0007T\u0002\u0002\u166d\u0354\u0003\u0002\u0002\u0002\u166e\u166f", + "\u0007O\u0002\u0002\u166f\u1670\u0007C\u0002\u0002\u1670\u1671\u0007", + "Z\u0002\u0002\u1671\u1672\u0007a\u0002\u0002\u1672\u1673\u0007E\u0002", + "\u0002\u1673\u1674\u0007Q\u0002\u0002\u1674\u1675\u0007P\u0002\u0002", + "\u1675\u1676\u0007P\u0002\u0002\u1676\u1677\u0007G\u0002\u0002\u1677", + "\u1678\u0007E\u0002\u0002\u1678\u1679\u0007V\u0002\u0002\u1679\u167a", + "\u0007K\u0002\u0002\u167a\u167b\u0007Q\u0002\u0002\u167b\u167c\u0007", + "P\u0002\u0002\u167c\u167d\u0007U\u0002\u0002\u167d\u167e\u0007a\u0002", + "\u0002\u167e\u167f\u0007R\u0002\u0002\u167f\u1680\u0007G\u0002\u0002", + "\u1680\u1681\u0007T\u0002\u0002\u1681\u1682\u0007a\u0002\u0002\u1682", + "\u1683\u0007J\u0002\u0002\u1683\u1684\u0007Q\u0002\u0002\u1684\u1685", + "\u0007W\u0002\u0002\u1685\u1686\u0007T\u0002\u0002\u1686\u0356\u0003", + "\u0002\u0002\u0002\u1687\u1688\u0007O\u0002\u0002\u1688\u1689\u0007", + "C\u0002\u0002\u1689\u168a\u0007Z\u0002\u0002\u168a\u168b\u0007a\u0002", + "\u0002\u168b\u168c\u0007S\u0002\u0002\u168c\u168d\u0007W\u0002\u0002", + "\u168d\u168e\u0007G\u0002\u0002\u168e\u168f\u0007T\u0002\u0002\u168f", + "\u1690\u0007K\u0002\u0002\u1690\u1691\u0007G\u0002\u0002\u1691\u1692", + "\u0007U\u0002\u0002\u1692\u1693\u0007a\u0002\u0002\u1693\u1694\u0007", + "R\u0002\u0002\u1694\u1695\u0007G\u0002\u0002\u1695\u1696\u0007T\u0002", + "\u0002\u1696\u1697\u0007a\u0002\u0002\u1697\u1698\u0007J\u0002\u0002", + "\u1698\u1699\u0007Q\u0002\u0002\u1699\u169a\u0007W\u0002\u0002\u169a", + "\u169b\u0007T\u0002\u0002\u169b\u0358\u0003\u0002\u0002\u0002\u169c", + "\u169d\u0007O\u0002\u0002\u169d\u169e\u0007C\u0002\u0002\u169e\u169f", + "\u0007Z\u0002\u0002\u169f\u16a0\u0007a\u0002\u0002\u16a0\u16a1\u0007", + "T\u0002\u0002\u16a1\u16a2\u0007Q\u0002\u0002\u16a2\u16a3\u0007Y\u0002", + "\u0002\u16a3\u16a4\u0007U\u0002\u0002\u16a4\u035a\u0003\u0002\u0002", + "\u0002\u16a5\u16a6\u0007O\u0002\u0002\u16a6\u16a7\u0007C\u0002\u0002", + "\u16a7\u16a8\u0007Z\u0002\u0002\u16a8\u16a9\u0007a\u0002\u0002\u16a9", + "\u16aa\u0007U\u0002\u0002\u16aa\u16ab\u0007K\u0002\u0002\u16ab\u16ac", + "\u0007\\\u0002\u0002\u16ac\u16ad\u0007G\u0002\u0002\u16ad\u035c\u0003", + "\u0002\u0002\u0002\u16ae\u16af\u0007O\u0002\u0002\u16af\u16b0\u0007", + "C\u0002\u0002\u16b0\u16b1\u0007Z\u0002\u0002\u16b1\u16b2\u0007a\u0002", + "\u0002\u16b2\u16b3\u0007W\u0002\u0002\u16b3\u16b4\u0007R\u0002\u0002", + "\u16b4\u16b5\u0007F\u0002\u0002\u16b5\u16b6\u0007C\u0002\u0002\u16b6", + "\u16b7\u0007V\u0002\u0002\u16b7\u16b8\u0007G\u0002\u0002\u16b8\u16b9", + "\u0007U\u0002\u0002\u16b9\u16ba\u0007a\u0002\u0002\u16ba\u16bb\u0007", + "R\u0002\u0002\u16bb\u16bc\u0007G\u0002\u0002\u16bc\u16bd\u0007T\u0002", + "\u0002\u16bd\u16be\u0007a\u0002\u0002\u16be\u16bf\u0007J\u0002\u0002", + "\u16bf\u16c0\u0007Q\u0002\u0002\u16c0\u16c1\u0007W\u0002\u0002\u16c1", + "\u16c2\u0007T\u0002\u0002\u16c2\u035e\u0003\u0002\u0002\u0002\u16c3", + "\u16c4\u0007O\u0002\u0002\u16c4\u16c5\u0007C\u0002\u0002\u16c5\u16c6", + "\u0007Z\u0002\u0002\u16c6\u16c7\u0007a\u0002\u0002\u16c7\u16c8\u0007", + "W\u0002\u0002\u16c8\u16c9\u0007U\u0002\u0002\u16c9\u16ca\u0007G\u0002", + "\u0002\u16ca\u16cb\u0007T\u0002\u0002\u16cb\u16cc\u0007a\u0002\u0002", + "\u16cc\u16cd\u0007E\u0002\u0002\u16cd\u16ce\u0007Q\u0002\u0002\u16ce", + "\u16cf\u0007P\u0002\u0002\u16cf\u16d0\u0007P\u0002\u0002\u16d0\u16d1", + "\u0007G\u0002\u0002\u16d1\u16d2\u0007E\u0002\u0002\u16d2\u16d3\u0007", + "V\u0002\u0002\u16d3\u16d4\u0007K\u0002\u0002\u16d4\u16d5\u0007Q\u0002", + "\u0002\u16d5\u16d6\u0007P\u0002\u0002\u16d6\u16d7\u0007U\u0002\u0002", + "\u16d7\u0360\u0003\u0002\u0002\u0002\u16d8\u16d9\u0007O\u0002\u0002", + "\u16d9\u16da\u0007G\u0002\u0002\u16da\u16db\u0007F\u0002\u0002\u16db", + "\u16dc\u0007K\u0002\u0002\u16dc\u16dd\u0007W\u0002\u0002\u16dd\u16de", + "\u0007O\u0002\u0002\u16de\u0362\u0003\u0002\u0002\u0002\u16df\u16e0", + "\u0007O\u0002\u0002\u16e0\u16e1\u0007G\u0002\u0002\u16e1\u16e2\u0007", + "T\u0002\u0002\u16e2\u16e3\u0007I\u0002\u0002\u16e3\u16e4\u0007G\u0002", + "\u0002\u16e4\u0364\u0003\u0002\u0002\u0002\u16e5\u16e6\u0007O\u0002", + "\u0002\u16e6\u16e7\u0007G\u0002\u0002\u16e7\u16e8\u0007U\u0002\u0002", + "\u16e8\u16e9\u0007U\u0002\u0002\u16e9\u16ea\u0007C\u0002\u0002\u16ea", + "\u16eb\u0007I\u0002\u0002\u16eb\u16ec\u0007G\u0002\u0002\u16ec\u16ed", + "\u0007a\u0002\u0002\u16ed\u16ee\u0007V\u0002\u0002\u16ee\u16ef\u0007", + "G\u0002\u0002\u16ef\u16f0\u0007Z\u0002\u0002\u16f0\u16f1\u0007V\u0002", + "\u0002\u16f1\u0366\u0003\u0002\u0002\u0002\u16f2\u16f3\u0007O\u0002", + "\u0002\u16f3\u16f4\u0007K\u0002\u0002\u16f4\u16f5\u0007F\u0002\u0002", + "\u16f5\u0368\u0003\u0002\u0002\u0002\u16f6\u16f7\u0007O\u0002\u0002", + "\u16f7\u16f8\u0007K\u0002\u0002\u16f8\u16f9\u0007I\u0002\u0002\u16f9", + "\u16fa\u0007T\u0002\u0002\u16fa\u16fb\u0007C\u0002\u0002\u16fb\u16fc", + "\u0007V\u0002\u0002\u16fc\u16fd\u0007G\u0002\u0002\u16fd\u036a\u0003", + "\u0002\u0002\u0002\u16fe\u16ff\u0007O\u0002\u0002\u16ff\u1700\u0007", + "K\u0002\u0002\u1700\u1701\u0007P\u0002\u0002\u1701\u1702\u0007a\u0002", + "\u0002\u1702\u1703\u0007T\u0002\u0002\u1703\u1704\u0007Q\u0002\u0002", + "\u1704\u1705\u0007Y\u0002\u0002\u1705\u1706\u0007U\u0002\u0002\u1706", + "\u036c\u0003\u0002\u0002\u0002\u1707\u1708\u0007O\u0002\u0002\u1708", + "\u1709\u0007Q\u0002\u0002\u1709\u170a\u0007F\u0002\u0002\u170a\u170b", + "\u0007G\u0002\u0002\u170b\u036e\u0003\u0002\u0002\u0002\u170c\u170d", + "\u0007O\u0002\u0002\u170d\u170e\u0007Q\u0002\u0002\u170e\u170f\u0007", + "F\u0002\u0002\u170f\u1710\u0007K\u0002\u0002\u1710\u1711\u0007H\u0002", + "\u0002\u1711\u1712\u0007[\u0002\u0002\u1712\u0370\u0003\u0002\u0002", + "\u0002\u1713\u1714\u0007O\u0002\u0002\u1714\u1715\u0007W\u0002\u0002", + "\u1715\u1716\u0007V\u0002\u0002\u1716\u1717\u0007G\u0002\u0002\u1717", + "\u1718\u0007Z\u0002\u0002\u1718\u0372\u0003\u0002\u0002\u0002\u1719", + "\u171a\u0007O\u0002\u0002\u171a\u171b\u0007[\u0002\u0002\u171b\u171c", + "\u0007U\u0002\u0002\u171c\u171d\u0007S\u0002\u0002\u171d\u171e\u0007", + "N\u0002\u0002\u171e\u0374\u0003\u0002\u0002\u0002\u171f\u1720\u0007", + "O\u0002\u0002\u1720\u1721\u0007[\u0002\u0002\u1721\u1722\u0007U\u0002", + "\u0002\u1722\u1723\u0007S\u0002\u0002\u1723\u1724\u0007N\u0002\u0002", + "\u1724\u1725\u0007a\u0002\u0002\u1725\u1726\u0007G\u0002\u0002\u1726", + "\u1727\u0007T\u0002\u0002\u1727\u1728\u0007T\u0002\u0002\u1728\u1729", + "\u0007P\u0002\u0002\u1729\u172a\u0007Q\u0002\u0002\u172a\u0376\u0003", + "\u0002\u0002\u0002\u172b\u172c\u0007P\u0002\u0002\u172c\u172d\u0007", + "C\u0002\u0002\u172d\u172e\u0007O\u0002\u0002\u172e\u172f\u0007G\u0002", + "\u0002\u172f\u0378\u0003\u0002\u0002\u0002\u1730\u1731\u0007P\u0002", + "\u0002\u1731\u1732\u0007C\u0002\u0002\u1732\u1733\u0007O\u0002\u0002", + "\u1733\u1734\u0007G\u0002\u0002\u1734\u1735\u0007U\u0002\u0002\u1735", + "\u037a\u0003\u0002\u0002\u0002\u1736\u1737\u0007P\u0002\u0002\u1737", + "\u1738\u0007E\u0002\u0002\u1738\u1739\u0007J\u0002\u0002\u1739\u173a", + "\u0007C\u0002\u0002\u173a\u173b\u0007T\u0002\u0002\u173b\u037c\u0003", + "\u0002\u0002\u0002\u173c\u173d\u0007P\u0002\u0002\u173d\u173e\u0007", + "G\u0002\u0002\u173e\u173f\u0007X\u0002\u0002\u173f\u1740\u0007G\u0002", + "\u0002\u1740\u1741\u0007T\u0002\u0002\u1741\u037e\u0003\u0002\u0002", + "\u0002\u1742\u1743\u0007P\u0002\u0002\u1743\u1744\u0007G\u0002\u0002", + "\u1744\u1745\u0007Z\u0002\u0002\u1745\u1746\u0007V\u0002\u0002\u1746", + "\u0380\u0003\u0002\u0002\u0002\u1747\u1748\u0007P\u0002\u0002\u1748", + "\u1749\u0007Q\u0002\u0002\u1749\u0382\u0003\u0002\u0002\u0002\u174a", + "\u174b\u0007P\u0002\u0002\u174b\u174c\u0007Q\u0002\u0002\u174c\u174d", + "\u0007F\u0002\u0002\u174d\u174e\u0007G\u0002\u0002\u174e\u174f\u0007", + "I\u0002\u0002\u174f\u1750\u0007T\u0002\u0002\u1750\u1751\u0007Q\u0002", + "\u0002\u1751\u1752\u0007W\u0002\u0002\u1752\u1753\u0007R\u0002\u0002", + "\u1753\u0384\u0003\u0002\u0002\u0002\u1754\u1755\u0007P\u0002\u0002", + "\u1755\u1756\u0007Q\u0002\u0002\u1756\u1757\u0007P\u0002\u0002\u1757", + "\u1758\u0007G\u0002\u0002\u1758\u0386\u0003\u0002\u0002\u0002\u1759", + "\u175a\u0007Q\u0002\u0002\u175a\u175b\u0007H\u0002\u0002\u175b\u175c", + "\u0007H\u0002\u0002\u175c\u175d\u0007N\u0002\u0002\u175d\u175e\u0007", + "K\u0002\u0002\u175e\u175f\u0007P\u0002\u0002\u175f\u1760\u0007G\u0002", + "\u0002\u1760\u0388\u0003\u0002\u0002\u0002\u1761\u1762\u0007Q\u0002", + "\u0002\u1762\u1763\u0007H\u0002\u0002\u1763\u1764\u0007H\u0002\u0002", + "\u1764\u1765\u0007U\u0002\u0002\u1765\u1766\u0007G\u0002\u0002\u1766", + "\u1767\u0007V\u0002\u0002\u1767\u038a\u0003\u0002\u0002\u0002\u1768", + "\u1769\u0007Q\u0002\u0002\u1769\u176a\u0007L\u0002\u0002\u176a\u038c", + "\u0003\u0002\u0002\u0002\u176b\u176c\u0007Q\u0002\u0002\u176c\u176d", + "\u0007N\u0002\u0002\u176d\u176e\u0007F\u0002\u0002\u176e\u176f\u0007", + "a\u0002\u0002\u176f\u1770\u0007R\u0002\u0002\u1770\u1771\u0007C\u0002", + "\u0002\u1771\u1772\u0007U\u0002\u0002\u1772\u1773\u0007U\u0002\u0002", + "\u1773\u1774\u0007Y\u0002\u0002\u1774\u1775\u0007Q\u0002\u0002\u1775", + "\u1776\u0007T\u0002\u0002\u1776\u1777\u0007F\u0002\u0002\u1777\u038e", + "\u0003\u0002\u0002\u0002\u1778\u1779\u0007Q\u0002\u0002\u1779\u177a", + "\u0007P\u0002\u0002\u177a\u177b\u0007G\u0002\u0002\u177b\u0390\u0003", + "\u0002\u0002\u0002\u177c\u177d\u0007Q\u0002\u0002\u177d\u177e\u0007", + "P\u0002\u0002\u177e\u177f\u0007N\u0002\u0002\u177f\u1780\u0007K\u0002", + "\u0002\u1780\u1781\u0007P\u0002\u0002\u1781\u1782\u0007G\u0002\u0002", + "\u1782\u0392\u0003\u0002\u0002\u0002\u1783\u1784\u0007Q\u0002\u0002", + "\u1784\u1785\u0007P\u0002\u0002\u1785\u1786\u0007N\u0002\u0002\u1786", + "\u1787\u0007[\u0002\u0002\u1787\u0394\u0003\u0002\u0002\u0002\u1788", + "\u1789\u0007Q\u0002\u0002\u1789\u178a\u0007R\u0002\u0002\u178a\u178b", + "\u0007G\u0002\u0002\u178b\u178c\u0007P\u0002\u0002\u178c\u0396\u0003", + "\u0002\u0002\u0002\u178d\u178e\u0007Q\u0002\u0002\u178e\u178f\u0007", + "R\u0002\u0002\u178f\u1790\u0007V\u0002\u0002\u1790\u1791\u0007K\u0002", + "\u0002\u1791\u1792\u0007O\u0002\u0002\u1792\u1793\u0007K\u0002\u0002", + "\u1793\u1794\u0007\\\u0002\u0002\u1794\u1795\u0007G\u0002\u0002\u1795", + "\u1796\u0007T\u0002\u0002\u1796\u1797\u0007a\u0002\u0002\u1797\u1798", + "\u0007E\u0002\u0002\u1798\u1799\u0007Q\u0002\u0002\u1799\u179a\u0007", + "U\u0002\u0002\u179a\u179b\u0007V\u0002\u0002\u179b\u179c\u0007U\u0002", + "\u0002\u179c\u0398\u0003\u0002\u0002\u0002\u179d\u179e\u0007Q\u0002", + "\u0002\u179e\u179f\u0007R\u0002\u0002\u179f\u17a0\u0007V\u0002\u0002", + "\u17a0\u17a1\u0007K\u0002\u0002\u17a1\u17a2\u0007Q\u0002\u0002\u17a2", + "\u17a3\u0007P\u0002\u0002\u17a3\u17a4\u0007U\u0002\u0002\u17a4\u039a", + "\u0003\u0002\u0002\u0002\u17a5\u17a6\u0007Q\u0002\u0002\u17a6\u17a7", + "\u0007Y\u0002\u0002\u17a7\u17a8\u0007P\u0002\u0002\u17a8\u17a9\u0007", + "G\u0002\u0002\u17a9\u17aa\u0007T\u0002\u0002\u17aa\u039c\u0003\u0002", + "\u0002\u0002\u17ab\u17ac\u0007R\u0002\u0002\u17ac\u17ad\u0007C\u0002", + "\u0002\u17ad\u17ae\u0007E\u0002\u0002\u17ae\u17af\u0007M\u0002\u0002", + "\u17af\u17b0\u0007a\u0002\u0002\u17b0\u17b1\u0007M\u0002\u0002\u17b1", + "\u17b2\u0007G\u0002\u0002\u17b2\u17b3\u0007[\u0002\u0002\u17b3\u17b4", + "\u0007U\u0002\u0002\u17b4\u039e\u0003\u0002\u0002\u0002\u17b5\u17b6", + "\u0007R\u0002\u0002\u17b6\u17b7\u0007C\u0002\u0002\u17b7\u17b8\u0007", + "I\u0002\u0002\u17b8\u17b9\u0007G\u0002\u0002\u17b9\u03a0\u0003\u0002", + "\u0002\u0002\u17ba\u17bb\u0007R\u0002\u0002\u17bb\u17bc\u0007C\u0002", + "\u0002\u17bc\u17bd\u0007T\u0002\u0002\u17bd\u17be\u0007U\u0002\u0002", + "\u17be\u17bf\u0007G\u0002\u0002\u17bf\u17c0\u0007T\u0002\u0002\u17c0", + "\u03a2\u0003\u0002\u0002\u0002\u17c1\u17c2\u0007R\u0002\u0002\u17c2", + "\u17c3\u0007C\u0002\u0002\u17c3\u17c4\u0007T\u0002\u0002\u17c4\u17c5", + "\u0007V\u0002\u0002\u17c5\u17c6\u0007K\u0002\u0002\u17c6\u17c7\u0007", + "C\u0002\u0002\u17c7\u17c8\u0007N\u0002\u0002\u17c8\u03a4\u0003\u0002", + "\u0002\u0002\u17c9\u17ca\u0007R\u0002\u0002\u17ca\u17cb\u0007C\u0002", + "\u0002\u17cb\u17cc\u0007T\u0002\u0002\u17cc\u17cd\u0007V\u0002\u0002", + "\u17cd\u17ce\u0007K\u0002\u0002\u17ce\u17cf\u0007V\u0002\u0002\u17cf", + "\u17d0\u0007K\u0002\u0002\u17d0\u17d1\u0007Q\u0002\u0002\u17d1\u17d2", + "\u0007P\u0002\u0002\u17d2\u17d3\u0007K\u0002\u0002\u17d3\u17d4\u0007", + "P\u0002\u0002\u17d4\u17d5\u0007I\u0002\u0002\u17d5\u03a6\u0003\u0002", + "\u0002\u0002\u17d6\u17d7\u0007R\u0002\u0002\u17d7\u17d8\u0007C\u0002", + "\u0002\u17d8\u17d9\u0007T\u0002\u0002\u17d9\u17da\u0007V\u0002\u0002", + "\u17da\u17db\u0007K\u0002\u0002\u17db\u17dc\u0007V\u0002\u0002\u17dc", + "\u17dd\u0007K\u0002\u0002\u17dd\u17de\u0007Q\u0002\u0002\u17de\u17df", + "\u0007P\u0002\u0002\u17df\u17e0\u0007U\u0002\u0002\u17e0\u03a8\u0003", + "\u0002\u0002\u0002\u17e1\u17e2\u0007R\u0002\u0002\u17e2\u17e3\u0007", + "C\u0002\u0002\u17e3\u17e4\u0007U\u0002\u0002\u17e4\u17e5\u0007U\u0002", + "\u0002\u17e5\u17e6\u0007Y\u0002\u0002\u17e6\u17e7\u0007Q\u0002\u0002", + "\u17e7\u17e8\u0007T\u0002\u0002\u17e8\u17e9\u0007F\u0002\u0002\u17e9", + "\u03aa\u0003\u0002\u0002\u0002\u17ea\u17eb\u0007R\u0002\u0002\u17eb", + "\u17ec\u0007J\u0002\u0002\u17ec\u17ed\u0007C\u0002\u0002\u17ed\u17ee", + "\u0007U\u0002\u0002\u17ee\u17ef\u0007G\u0002\u0002\u17ef\u03ac\u0003", + "\u0002\u0002\u0002\u17f0\u17f1\u0007R\u0002\u0002\u17f1\u17f2\u0007", + "N\u0002\u0002\u17f2\u17f3\u0007W\u0002\u0002\u17f3\u17f4\u0007I\u0002", + "\u0002\u17f4\u17f5\u0007K\u0002\u0002\u17f5\u17f6\u0007P\u0002\u0002", + "\u17f6\u03ae\u0003\u0002\u0002\u0002\u17f7\u17f8\u0007R\u0002\u0002", + "\u17f8\u17f9\u0007N\u0002\u0002\u17f9\u17fa\u0007W\u0002\u0002\u17fa", + "\u17fb\u0007I\u0002\u0002\u17fb\u17fc\u0007K\u0002\u0002\u17fc\u17fd", + "\u0007P\u0002\u0002\u17fd\u17fe\u0007a\u0002\u0002\u17fe\u17ff\u0007", + "F\u0002\u0002\u17ff\u1800\u0007K\u0002\u0002\u1800\u1801\u0007T\u0002", + "\u0002\u1801\u03b0\u0003\u0002\u0002\u0002\u1802\u1803\u0007R\u0002", + "\u0002\u1803\u1804\u0007N\u0002\u0002\u1804\u1805\u0007W\u0002\u0002", + "\u1805\u1806\u0007I\u0002\u0002\u1806\u1807\u0007K\u0002\u0002\u1807", + "\u1808\u0007P\u0002\u0002\u1808\u1809\u0007U\u0002\u0002\u1809\u03b2", + "\u0003\u0002\u0002\u0002\u180a\u180b\u0007R\u0002\u0002\u180b\u180c", + "\u0007Q\u0002\u0002\u180c\u180d\u0007T\u0002\u0002\u180d\u180e\u0007", + "V\u0002\u0002\u180e\u03b4\u0003\u0002\u0002\u0002\u180f\u1810\u0007", + "R\u0002\u0002\u1810\u1811\u0007T\u0002\u0002\u1811\u1812\u0007G\u0002", + "\u0002\u1812\u1813\u0007E\u0002\u0002\u1813\u1814\u0007G\u0002\u0002", + "\u1814\u1815\u0007F\u0002\u0002\u1815\u1816\u0007G\u0002\u0002\u1816", + "\u1817\u0007U\u0002\u0002\u1817\u03b6\u0003\u0002\u0002\u0002\u1818", + "\u1819\u0007R\u0002\u0002\u1819\u181a\u0007T\u0002\u0002\u181a\u181b", + "\u0007G\u0002\u0002\u181b\u181c\u0007R\u0002\u0002\u181c\u181d\u0007", + "C\u0002\u0002\u181d\u181e\u0007T\u0002\u0002\u181e\u181f\u0007G\u0002", + "\u0002\u181f\u03b8\u0003\u0002\u0002\u0002\u1820\u1821\u0007R\u0002", + "\u0002\u1821\u1822\u0007T\u0002\u0002\u1822\u1823\u0007G\u0002\u0002", + "\u1823\u1824\u0007U\u0002\u0002\u1824\u1825\u0007G\u0002\u0002\u1825", + "\u1826\u0007T\u0002\u0002\u1826\u1827\u0007X\u0002\u0002\u1827\u1828", + "\u0007G\u0002\u0002\u1828\u03ba\u0003\u0002\u0002\u0002\u1829\u182a", + "\u0007R\u0002\u0002\u182a\u182b\u0007T\u0002\u0002\u182b\u182c\u0007", + "G\u0002\u0002\u182c\u182d\u0007X\u0002\u0002\u182d\u03bc\u0003\u0002", + "\u0002\u0002\u182e\u182f\u0007R\u0002\u0002\u182f\u1830\u0007T\u0002", + "\u0002\u1830\u1831\u0007Q\u0002\u0002\u1831\u1832\u0007E\u0002\u0002", + "\u1832\u1833\u0007G\u0002\u0002\u1833\u1834\u0007U\u0002\u0002\u1834", + "\u1835\u0007U\u0002\u0002\u1835\u1836\u0007N\u0002\u0002\u1836\u1837", + "\u0007K\u0002\u0002\u1837\u1838\u0007U\u0002\u0002\u1838\u1839\u0007", + "V\u0002\u0002\u1839\u03be\u0003\u0002\u0002\u0002\u183a\u183b\u0007", + "R\u0002\u0002\u183b\u183c\u0007T\u0002\u0002\u183c\u183d\u0007Q\u0002", + "\u0002\u183d\u183e\u0007H\u0002\u0002\u183e\u183f\u0007K\u0002\u0002", + "\u183f\u1840\u0007N\u0002\u0002\u1840\u1841\u0007G\u0002\u0002\u1841", + "\u03c0\u0003\u0002\u0002\u0002\u1842\u1843\u0007R\u0002\u0002\u1843", + "\u1844\u0007T\u0002\u0002\u1844\u1845\u0007Q\u0002\u0002\u1845\u1846", + "\u0007H\u0002\u0002\u1846\u1847\u0007K\u0002\u0002\u1847\u1848\u0007", + "N\u0002\u0002\u1848\u1849\u0007G\u0002\u0002\u1849\u184a\u0007U\u0002", + "\u0002\u184a\u03c2\u0003\u0002\u0002\u0002\u184b\u184c\u0007R\u0002", + "\u0002\u184c\u184d\u0007T\u0002\u0002\u184d\u184e\u0007Q\u0002\u0002", + "\u184e\u184f\u0007Z\u0002\u0002\u184f\u1850\u0007[\u0002\u0002\u1850", + "\u03c4\u0003\u0002\u0002\u0002\u1851\u1852\u0007S\u0002\u0002\u1852", + "\u1853\u0007W\u0002\u0002\u1853\u1854\u0007G\u0002\u0002\u1854\u1855", + "\u0007T\u0002\u0002\u1855\u1856\u0007[\u0002\u0002\u1856\u03c6\u0003", + "\u0002\u0002\u0002\u1857\u1858\u0007S\u0002\u0002\u1858\u1859\u0007", + "W\u0002\u0002\u1859\u185a\u0007K\u0002\u0002\u185a\u185b\u0007E\u0002", + "\u0002\u185b\u185c\u0007M\u0002\u0002\u185c\u03c8\u0003\u0002\u0002", + "\u0002\u185d\u185e\u0007T\u0002\u0002\u185e\u185f\u0007G\u0002\u0002", + "\u185f\u1860\u0007D\u0002\u0002\u1860\u1861\u0007W\u0002\u0002\u1861", + "\u1862\u0007K\u0002\u0002\u1862\u1863\u0007N\u0002\u0002\u1863\u1864", + "\u0007F\u0002\u0002\u1864\u03ca\u0003\u0002\u0002\u0002\u1865\u1866", + "\u0007T\u0002\u0002\u1866\u1867\u0007G\u0002\u0002\u1867\u1868\u0007", + "E\u0002\u0002\u1868\u1869\u0007Q\u0002\u0002\u1869\u186a\u0007X\u0002", + "\u0002\u186a\u186b\u0007G\u0002\u0002\u186b\u186c\u0007T\u0002\u0002", + "\u186c\u03cc\u0003\u0002\u0002\u0002\u186d\u186e\u0007T\u0002\u0002", + "\u186e\u186f\u0007G\u0002\u0002\u186f\u1870\u0007F\u0002\u0002\u1870", + "\u1871\u0007Q\u0002\u0002\u1871\u1872\u0007a\u0002\u0002\u1872\u1873", + "\u0007D\u0002\u0002\u1873\u1874\u0007W\u0002\u0002\u1874\u1875\u0007", + "H\u0002\u0002\u1875\u1876\u0007H\u0002\u0002\u1876\u1877\u0007G\u0002", + "\u0002\u1877\u1878\u0007T\u0002\u0002\u1878\u1879\u0007a\u0002\u0002", + "\u1879\u187a\u0007U\u0002\u0002\u187a\u187b\u0007K\u0002\u0002\u187b", + "\u187c\u0007\\\u0002\u0002\u187c\u187d\u0007G\u0002\u0002\u187d\u03ce", + "\u0003\u0002\u0002\u0002\u187e\u187f\u0007T\u0002\u0002\u187f\u1880", + "\u0007G\u0002\u0002\u1880\u1881\u0007F\u0002\u0002\u1881\u1882\u0007", + "W\u0002\u0002\u1882\u1883\u0007P\u0002\u0002\u1883\u1884\u0007F\u0002", + "\u0002\u1884\u1885\u0007C\u0002\u0002\u1885\u1886\u0007P\u0002\u0002", + "\u1886\u1887\u0007V\u0002\u0002\u1887\u03d0\u0003\u0002\u0002\u0002", + "\u1888\u1889\u0007T\u0002\u0002\u1889\u188a\u0007G\u0002\u0002\u188a", + "\u188b\u0007N\u0002\u0002\u188b\u188c\u0007C\u0002\u0002\u188c\u188d", + "\u0007[\u0002\u0002\u188d\u03d2\u0003\u0002\u0002\u0002\u188e\u188f", + "\u0007T\u0002\u0002\u188f\u1890\u0007G\u0002\u0002\u1890\u1891\u0007", + "N\u0002\u0002\u1891\u1892\u0007C\u0002\u0002\u1892\u1893\u0007[\u0002", + "\u0002\u1893\u1894\u0007a\u0002\u0002\u1894\u1895\u0007N\u0002\u0002", + "\u1895\u1896\u0007Q\u0002\u0002\u1896\u1897\u0007I\u0002\u0002\u1897", + "\u1898\u0007a\u0002\u0002\u1898\u1899\u0007H\u0002\u0002\u1899\u189a", + "\u0007K\u0002\u0002\u189a\u189b\u0007N\u0002\u0002\u189b\u189c\u0007", + "G\u0002\u0002\u189c\u03d4\u0003\u0002\u0002\u0002\u189d\u189e\u0007", + "T\u0002\u0002\u189e\u189f\u0007G\u0002\u0002\u189f\u18a0\u0007N\u0002", + "\u0002\u18a0\u18a1\u0007C\u0002\u0002\u18a1\u18a2\u0007[\u0002\u0002", + "\u18a2\u18a3\u0007a\u0002\u0002\u18a3\u18a4\u0007N\u0002\u0002\u18a4", + "\u18a5\u0007Q\u0002\u0002\u18a5\u18a6\u0007I\u0002\u0002\u18a6\u18a7", + "\u0007a\u0002\u0002\u18a7\u18a8\u0007R\u0002\u0002\u18a8\u18a9\u0007", + "Q\u0002\u0002\u18a9\u18aa\u0007U\u0002\u0002\u18aa\u03d6\u0003\u0002", + "\u0002\u0002\u18ab\u18ac\u0007T\u0002\u0002\u18ac\u18ad\u0007G\u0002", + "\u0002\u18ad\u18ae\u0007N\u0002\u0002\u18ae\u18af\u0007C\u0002\u0002", + "\u18af\u18b0\u0007[\u0002\u0002\u18b0\u18b1\u0007N\u0002\u0002\u18b1", + "\u18b2\u0007Q\u0002\u0002\u18b2\u18b3\u0007I\u0002\u0002\u18b3\u03d8", + "\u0003\u0002\u0002\u0002\u18b4\u18b5\u0007T\u0002\u0002\u18b5\u18b6", + "\u0007G\u0002\u0002\u18b6\u18b7\u0007O\u0002\u0002\u18b7\u18b8\u0007", + "Q\u0002\u0002\u18b8\u18b9\u0007X\u0002\u0002\u18b9\u18ba\u0007G\u0002", + "\u0002\u18ba\u03da\u0003\u0002\u0002\u0002\u18bb\u18bc\u0007T\u0002", + "\u0002\u18bc\u18bd\u0007G\u0002\u0002\u18bd\u18be\u0007Q\u0002\u0002", + "\u18be\u18bf\u0007T\u0002\u0002\u18bf\u18c0\u0007I\u0002\u0002\u18c0", + "\u18c1\u0007C\u0002\u0002\u18c1\u18c2\u0007P\u0002\u0002\u18c2\u18c3", + "\u0007K\u0002\u0002\u18c3\u18c4\u0007\\\u0002\u0002\u18c4\u18c5\u0007", + "G\u0002\u0002\u18c5\u03dc\u0003\u0002\u0002\u0002\u18c6\u18c7\u0007", + "T\u0002\u0002\u18c7\u18c8\u0007G\u0002\u0002\u18c8\u18c9\u0007R\u0002", + "\u0002\u18c9\u18ca\u0007C\u0002\u0002\u18ca\u18cb\u0007K\u0002\u0002", + "\u18cb\u18cc\u0007T\u0002\u0002\u18cc\u03de\u0003\u0002\u0002\u0002", + "\u18cd\u18ce\u0007T\u0002\u0002\u18ce\u18cf\u0007G\u0002\u0002\u18cf", + "\u18d0\u0007R\u0002\u0002\u18d0\u18d1\u0007N\u0002\u0002\u18d1\u18d2", + "\u0007K\u0002\u0002\u18d2\u18d3\u0007E\u0002\u0002\u18d3\u18d4\u0007", + "C\u0002\u0002\u18d4\u18d5\u0007V\u0002\u0002\u18d5\u18d6\u0007G\u0002", + "\u0002\u18d6\u18d7\u0007a\u0002\u0002\u18d7\u18d8\u0007F\u0002\u0002", + "\u18d8\u18d9\u0007Q\u0002\u0002\u18d9\u18da\u0007a\u0002\u0002\u18da", + "\u18db\u0007F\u0002\u0002\u18db\u18dc\u0007D\u0002\u0002\u18dc\u03e0", + "\u0003\u0002\u0002\u0002\u18dd\u18de\u0007T\u0002\u0002\u18de\u18df", + "\u0007G\u0002\u0002\u18df\u18e0\u0007R\u0002\u0002\u18e0\u18e1\u0007", + "N\u0002\u0002\u18e1\u18e2\u0007K\u0002\u0002\u18e2\u18e3\u0007E\u0002", + "\u0002\u18e3\u18e4\u0007C\u0002\u0002\u18e4\u18e5\u0007V\u0002\u0002", + "\u18e5\u18e6\u0007G\u0002\u0002\u18e6\u18e7\u0007a\u0002\u0002\u18e7", + "\u18e8\u0007F\u0002\u0002\u18e8\u18e9\u0007Q\u0002\u0002\u18e9\u18ea", + "\u0007a\u0002\u0002\u18ea\u18eb\u0007V\u0002\u0002\u18eb\u18ec\u0007", + "C\u0002\u0002\u18ec\u18ed\u0007D\u0002\u0002\u18ed\u18ee\u0007N\u0002", + "\u0002\u18ee\u18ef\u0007G\u0002\u0002\u18ef\u03e2\u0003\u0002\u0002", + "\u0002\u18f0\u18f1\u0007T\u0002\u0002\u18f1\u18f2\u0007G\u0002\u0002", + "\u18f2\u18f3\u0007R\u0002\u0002\u18f3\u18f4\u0007N\u0002\u0002\u18f4", + "\u18f5\u0007K\u0002\u0002\u18f5\u18f6\u0007E\u0002\u0002\u18f6\u18f7", + "\u0007C\u0002\u0002\u18f7\u18f8\u0007V\u0002\u0002\u18f8\u18f9\u0007", + "G\u0002\u0002\u18f9\u18fa\u0007a\u0002\u0002\u18fa\u18fb\u0007K\u0002", + "\u0002\u18fb\u18fc\u0007I\u0002\u0002\u18fc\u18fd\u0007P\u0002\u0002", + "\u18fd\u18fe\u0007Q\u0002\u0002\u18fe\u18ff\u0007T\u0002\u0002\u18ff", + "\u1900\u0007G\u0002\u0002\u1900\u1901\u0007a\u0002\u0002\u1901\u1902", + "\u0007F\u0002\u0002\u1902\u1903\u0007D\u0002\u0002\u1903\u03e4\u0003", + "\u0002\u0002\u0002\u1904\u1905\u0007T\u0002\u0002\u1905\u1906\u0007", + "G\u0002\u0002\u1906\u1907\u0007R\u0002\u0002\u1907\u1908\u0007N\u0002", + "\u0002\u1908\u1909\u0007K\u0002\u0002\u1909\u190a\u0007E\u0002\u0002", + "\u190a\u190b\u0007C\u0002\u0002\u190b\u190c\u0007V\u0002\u0002\u190c", + "\u190d\u0007G\u0002\u0002\u190d\u190e\u0007a\u0002\u0002\u190e\u190f", + "\u0007K\u0002\u0002\u190f\u1910\u0007I\u0002\u0002\u1910\u1911\u0007", + "P\u0002\u0002\u1911\u1912\u0007Q\u0002\u0002\u1912\u1913\u0007T\u0002", + "\u0002\u1913\u1914\u0007G\u0002\u0002\u1914\u1915\u0007a\u0002\u0002", + "\u1915\u1916\u0007V\u0002\u0002\u1916\u1917\u0007C\u0002\u0002\u1917", + "\u1918\u0007D\u0002\u0002\u1918\u1919\u0007N\u0002\u0002\u1919\u191a", + "\u0007G\u0002\u0002\u191a\u03e6\u0003\u0002\u0002\u0002\u191b\u191c", + "\u0007T\u0002\u0002\u191c\u191d\u0007G\u0002\u0002\u191d\u191e\u0007", + "R\u0002\u0002\u191e\u191f\u0007N\u0002\u0002\u191f\u1920\u0007K\u0002", + "\u0002\u1920\u1921\u0007E\u0002\u0002\u1921\u1922\u0007C\u0002\u0002", + "\u1922\u1923\u0007V\u0002\u0002\u1923\u1924\u0007G\u0002\u0002\u1924", + "\u1925\u0007a\u0002\u0002\u1925\u1926\u0007T\u0002\u0002\u1926\u1927", + "\u0007G\u0002\u0002\u1927\u1928\u0007Y\u0002\u0002\u1928\u1929\u0007", + "T\u0002\u0002\u1929\u192a\u0007K\u0002\u0002\u192a\u192b\u0007V\u0002", + "\u0002\u192b\u192c\u0007G\u0002\u0002\u192c\u192d\u0007a\u0002\u0002", + "\u192d\u192e\u0007F\u0002\u0002\u192e\u192f\u0007D\u0002\u0002\u192f", + "\u03e8\u0003\u0002\u0002\u0002\u1930\u1931\u0007T\u0002\u0002\u1931", + "\u1932\u0007G\u0002\u0002\u1932\u1933\u0007R\u0002\u0002\u1933\u1934", + "\u0007N\u0002\u0002\u1934\u1935\u0007K\u0002\u0002\u1935\u1936\u0007", + "E\u0002\u0002\u1936\u1937\u0007C\u0002\u0002\u1937\u1938\u0007V\u0002", + "\u0002\u1938\u1939\u0007G\u0002\u0002\u1939\u193a\u0007a\u0002\u0002", + "\u193a\u193b\u0007Y\u0002\u0002\u193b\u193c\u0007K\u0002\u0002\u193c", + "\u193d\u0007N\u0002\u0002\u193d\u193e\u0007F\u0002\u0002\u193e\u193f", + "\u0007a\u0002\u0002\u193f\u1940\u0007F\u0002\u0002\u1940\u1941\u0007", + "Q\u0002\u0002\u1941\u1942\u0007a\u0002\u0002\u1942\u1943\u0007V\u0002", + "\u0002\u1943\u1944\u0007C\u0002\u0002\u1944\u1945\u0007D\u0002\u0002", + "\u1945\u1946\u0007N\u0002\u0002\u1946\u1947\u0007G\u0002\u0002\u1947", + "\u03ea\u0003\u0002\u0002\u0002\u1948\u1949\u0007T\u0002\u0002\u1949", + "\u194a\u0007G\u0002\u0002\u194a\u194b\u0007R\u0002\u0002\u194b\u194c", + "\u0007N\u0002\u0002\u194c\u194d\u0007K\u0002\u0002\u194d\u194e\u0007", + "E\u0002\u0002\u194e\u194f\u0007C\u0002\u0002\u194f\u1950\u0007V\u0002", + "\u0002\u1950\u1951\u0007G\u0002\u0002\u1951\u1952\u0007a\u0002\u0002", + "\u1952\u1953\u0007Y\u0002\u0002\u1953\u1954\u0007K\u0002\u0002\u1954", + "\u1955\u0007N\u0002\u0002\u1955\u1956\u0007F\u0002\u0002\u1956\u1957", + "\u0007a\u0002\u0002\u1957\u1958\u0007K\u0002\u0002\u1958\u1959\u0007", + "I\u0002\u0002\u1959\u195a\u0007P\u0002\u0002\u195a\u195b\u0007Q\u0002", + "\u0002\u195b\u195c\u0007T\u0002\u0002\u195c\u195d\u0007G\u0002\u0002", + "\u195d\u195e\u0007a\u0002\u0002\u195e\u195f\u0007V\u0002\u0002\u195f", + "\u1960\u0007C\u0002\u0002\u1960\u1961\u0007D\u0002\u0002\u1961\u1962", + "\u0007N\u0002\u0002\u1962\u1963\u0007G\u0002\u0002\u1963\u03ec\u0003", + "\u0002\u0002\u0002\u1964\u1965\u0007T\u0002\u0002\u1965\u1966\u0007", + "G\u0002\u0002\u1966\u1967\u0007R\u0002\u0002\u1967\u1968\u0007N\u0002", + "\u0002\u1968\u1969\u0007K\u0002\u0002\u1969\u196a\u0007E\u0002\u0002", + "\u196a\u196b\u0007C\u0002\u0002\u196b\u196c\u0007V\u0002\u0002\u196c", + "\u196d\u0007K\u0002\u0002\u196d\u196e\u0007Q\u0002\u0002\u196e\u196f", + "\u0007P\u0002\u0002\u196f\u03ee\u0003\u0002\u0002\u0002\u1970\u1971", + "\u0007T\u0002\u0002\u1971\u1972\u0007G\u0002\u0002\u1972\u1973\u0007", + "U\u0002\u0002\u1973\u1974\u0007G\u0002\u0002\u1974\u1975\u0007V\u0002", + "\u0002\u1975\u03f0\u0003\u0002\u0002\u0002\u1976\u1977\u0007T\u0002", + "\u0002\u1977\u1978\u0007G\u0002\u0002\u1978\u1979\u0007U\u0002\u0002", + "\u1979\u197a\u0007W\u0002\u0002\u197a\u197b\u0007O\u0002\u0002\u197b", + "\u197c\u0007G\u0002\u0002\u197c\u03f2\u0003\u0002\u0002\u0002\u197d", + "\u197e\u0007T\u0002\u0002\u197e\u197f\u0007G\u0002\u0002\u197f\u1980", + "\u0007V\u0002\u0002\u1980\u1981\u0007W\u0002\u0002\u1981\u1982\u0007", + "T\u0002\u0002\u1982\u1983\u0007P\u0002\u0002\u1983\u1984\u0007G\u0002", + "\u0002\u1984\u1985\u0007F\u0002\u0002\u1985\u1986\u0007a\u0002\u0002", + "\u1986\u1987\u0007U\u0002\u0002\u1987\u1988\u0007S\u0002\u0002\u1988", + "\u1989\u0007N\u0002\u0002\u1989\u198a\u0007U\u0002\u0002\u198a\u198b", + "\u0007V\u0002\u0002\u198b\u198c\u0007C\u0002\u0002\u198c\u198d\u0007", + "V\u0002\u0002\u198d\u198e\u0007G\u0002\u0002\u198e\u03f4\u0003\u0002", + "\u0002\u0002\u198f\u1990\u0007T\u0002\u0002\u1990\u1991\u0007G\u0002", + "\u0002\u1991\u1992\u0007V\u0002\u0002\u1992\u1993\u0007W\u0002\u0002", + "\u1993\u1994\u0007T\u0002\u0002\u1994\u1995\u0007P\u0002\u0002\u1995", + "\u1996\u0007U\u0002\u0002\u1996\u03f6\u0003\u0002\u0002\u0002\u1997", + "\u1998\u0007T\u0002\u0002\u1998\u1999\u0007Q\u0002\u0002\u1999\u199a", + "\u0007N\u0002\u0002\u199a\u199b\u0007G\u0002\u0002\u199b\u03f8\u0003", + "\u0002\u0002\u0002\u199c\u199d\u0007T\u0002\u0002\u199d\u199e\u0007", + "Q\u0002\u0002\u199e\u199f\u0007N\u0002\u0002\u199f\u19a0\u0007N\u0002", + "\u0002\u19a0\u19a1\u0007D\u0002\u0002\u19a1\u19a2\u0007C\u0002\u0002", + "\u19a2\u19a3\u0007E\u0002\u0002\u19a3\u19a4\u0007M\u0002\u0002\u19a4", + "\u03fa\u0003\u0002\u0002\u0002\u19a5\u19a6\u0007T\u0002\u0002\u19a6", + "\u19a7\u0007Q\u0002\u0002\u19a7\u19a8\u0007N\u0002\u0002\u19a8\u19a9", + "\u0007N\u0002\u0002\u19a9\u19aa\u0007W\u0002\u0002\u19aa\u19ab\u0007", + "R\u0002\u0002\u19ab\u03fc\u0003\u0002\u0002\u0002\u19ac\u19ad\u0007", + "T\u0002\u0002\u19ad\u19ae\u0007Q\u0002\u0002\u19ae\u19af\u0007V\u0002", + "\u0002\u19af\u19b0\u0007C\u0002\u0002\u19b0\u19b1\u0007V\u0002\u0002", + "\u19b1\u19b2\u0007G\u0002\u0002\u19b2\u03fe\u0003\u0002\u0002\u0002", + "\u19b3\u19b4\u0007T\u0002\u0002\u19b4\u19b5\u0007Q\u0002\u0002\u19b5", + "\u19b6\u0007Y\u0002\u0002\u19b6\u0400\u0003\u0002\u0002\u0002\u19b7", + "\u19b8\u0007T\u0002\u0002\u19b8\u19b9\u0007Q\u0002\u0002\u19b9\u19ba", + "\u0007Y\u0002\u0002\u19ba\u19bb\u0007U\u0002\u0002\u19bb\u0402\u0003", + "\u0002\u0002\u0002\u19bc\u19bd\u0007T\u0002\u0002\u19bd\u19be\u0007", + "Q\u0002\u0002\u19be\u19bf\u0007Y\u0002\u0002\u19bf\u19c0\u0007a\u0002", + "\u0002\u19c0\u19c1\u0007H\u0002\u0002\u19c1\u19c2\u0007Q\u0002\u0002", + "\u19c2\u19c3\u0007T\u0002\u0002\u19c3\u19c4\u0007O\u0002\u0002\u19c4", + "\u19c5\u0007C\u0002\u0002\u19c5\u19c6\u0007V\u0002\u0002\u19c6\u0404", + "\u0003\u0002\u0002\u0002\u19c7\u19c8\u0007U\u0002\u0002\u19c8\u19c9", + "\u0007C\u0002\u0002\u19c9\u19ca\u0007X\u0002\u0002\u19ca\u19cb\u0007", + "G\u0002\u0002\u19cb\u19cc\u0007R\u0002\u0002\u19cc\u19cd\u0007Q\u0002", + "\u0002\u19cd\u19ce\u0007K\u0002\u0002\u19ce\u19cf\u0007P\u0002\u0002", + "\u19cf\u19d0\u0007V\u0002\u0002\u19d0\u0406\u0003\u0002\u0002\u0002", + "\u19d1\u19d2\u0007U\u0002\u0002\u19d2\u19d3\u0007E\u0002\u0002\u19d3", + "\u19d4\u0007J\u0002\u0002\u19d4\u19d5\u0007G\u0002\u0002\u19d5\u19d6", + "\u0007F\u0002\u0002\u19d6\u19d7\u0007W\u0002\u0002\u19d7\u19d8\u0007", + "N\u0002\u0002\u19d8\u19d9\u0007G\u0002\u0002\u19d9\u0408\u0003\u0002", + "\u0002\u0002\u19da\u19db\u0007U\u0002\u0002\u19db\u19dc\u0007G\u0002", + "\u0002\u19dc\u19dd\u0007E\u0002\u0002\u19dd\u19de\u0007W\u0002\u0002", + "\u19de\u19df\u0007T\u0002\u0002\u19df\u19e0\u0007K\u0002\u0002\u19e0", + "\u19e1\u0007V\u0002\u0002\u19e1\u19e2\u0007[\u0002\u0002\u19e2\u040a", + "\u0003\u0002\u0002\u0002\u19e3\u19e4\u0007U\u0002\u0002\u19e4\u19e5", + "\u0007G\u0002\u0002\u19e5\u19e6\u0007T\u0002\u0002\u19e6\u19e7\u0007", + "X\u0002\u0002\u19e7\u19e8\u0007G\u0002\u0002\u19e8\u19e9\u0007T\u0002", + "\u0002\u19e9\u040c\u0003\u0002\u0002\u0002\u19ea\u19eb\u0007U\u0002", + "\u0002\u19eb\u19ec\u0007G\u0002\u0002\u19ec\u19ed\u0007U\u0002\u0002", + "\u19ed\u19ee\u0007U\u0002\u0002\u19ee\u19ef\u0007K\u0002\u0002\u19ef", + "\u19f0\u0007Q\u0002\u0002\u19f0\u19f1\u0007P\u0002\u0002\u19f1\u040e", + "\u0003\u0002\u0002\u0002\u19f2\u19f3\u0007U\u0002\u0002\u19f3\u19f4", + "\u0007J\u0002\u0002\u19f4\u19f5\u0007C\u0002\u0002\u19f5\u19f6\u0007", + "T\u0002\u0002\u19f6\u19f7\u0007G\u0002\u0002\u19f7\u0410\u0003\u0002", + "\u0002\u0002\u19f8\u19f9\u0007U\u0002\u0002\u19f9\u19fa\u0007J\u0002", + "\u0002\u19fa\u19fb\u0007C\u0002\u0002\u19fb\u19fc\u0007T\u0002\u0002", + "\u19fc\u19fd\u0007G\u0002\u0002\u19fd\u19fe\u0007F\u0002\u0002\u19fe", + "\u0412\u0003\u0002\u0002\u0002\u19ff\u1a00\u0007U\u0002\u0002\u1a00", + "\u1a01\u0007K\u0002\u0002\u1a01\u1a02\u0007I\u0002\u0002\u1a02\u1a03", + "\u0007P\u0002\u0002\u1a03\u1a04\u0007G\u0002\u0002\u1a04\u1a05\u0007", + "F\u0002\u0002\u1a05\u0414\u0003\u0002\u0002\u0002\u1a06\u1a07\u0007", + "U\u0002\u0002\u1a07\u1a08\u0007K\u0002\u0002\u1a08\u1a09\u0007O\u0002", + "\u0002\u1a09\u1a0a\u0007R\u0002\u0002\u1a0a\u1a0b\u0007N\u0002\u0002", + "\u1a0b\u1a0c\u0007G\u0002\u0002\u1a0c\u0416\u0003\u0002\u0002\u0002", + "\u1a0d\u1a0e\u0007U\u0002\u0002\u1a0e\u1a0f\u0007N\u0002\u0002\u1a0f", + "\u1a10\u0007C\u0002\u0002\u1a10\u1a11\u0007X\u0002\u0002\u1a11\u1a12", + "\u0007G\u0002\u0002\u1a12\u0418\u0003\u0002\u0002\u0002\u1a13\u1a14", + "\u0007U\u0002\u0002\u1a14\u1a15\u0007N\u0002\u0002\u1a15\u1a16\u0007", + "Q\u0002\u0002\u1a16\u1a17\u0007Y\u0002\u0002\u1a17\u041a\u0003\u0002", + "\u0002\u0002\u1a18\u1a19\u0007U\u0002\u0002\u1a19\u1a1a\u0007P\u0002", + "\u0002\u1a1a\u1a1b\u0007C\u0002\u0002\u1a1b\u1a1c\u0007R\u0002\u0002", + "\u1a1c\u1a1d\u0007U\u0002\u0002\u1a1d\u1a1e\u0007J\u0002\u0002\u1a1e", + "\u1a1f\u0007Q\u0002\u0002\u1a1f\u1a20\u0007V\u0002\u0002\u1a20\u041c", + "\u0003\u0002\u0002\u0002\u1a21\u1a22\u0007U\u0002\u0002\u1a22\u1a23", + "\u0007Q\u0002\u0002\u1a23\u1a24\u0007E\u0002\u0002\u1a24\u1a25\u0007", + "M\u0002\u0002\u1a25\u1a26\u0007G\u0002\u0002\u1a26\u1a27\u0007V\u0002", + "\u0002\u1a27\u041e\u0003\u0002\u0002\u0002\u1a28\u1a29\u0007U\u0002", + "\u0002\u1a29\u1a2a\u0007Q\u0002\u0002\u1a2a\u1a2b\u0007O\u0002\u0002", + "\u1a2b\u1a2c\u0007G\u0002\u0002\u1a2c\u0420\u0003\u0002\u0002\u0002", + "\u1a2d\u1a2e\u0007U\u0002\u0002\u1a2e\u1a2f\u0007Q\u0002\u0002\u1a2f", + "\u1a30\u0007P\u0002\u0002\u1a30\u1a31\u0007C\u0002\u0002\u1a31\u1a32", + "\u0007O\u0002\u0002\u1a32\u1a33\u0007G\u0002\u0002\u1a33\u0422\u0003", + "\u0002\u0002\u0002\u1a34\u1a35\u0007U\u0002\u0002\u1a35\u1a36\u0007", + "Q\u0002\u0002\u1a36\u1a37\u0007W\u0002\u0002\u1a37\u1a38\u0007P\u0002", + "\u0002\u1a38\u1a39\u0007F\u0002\u0002\u1a39\u1a3a\u0007U\u0002\u0002", + "\u1a3a\u0424\u0003\u0002\u0002\u0002\u1a3b\u1a3c\u0007U\u0002\u0002", + "\u1a3c\u1a3d\u0007Q\u0002\u0002\u1a3d\u1a3e\u0007W\u0002\u0002\u1a3e", + "\u1a3f\u0007T\u0002\u0002\u1a3f\u1a40\u0007E\u0002\u0002\u1a40\u1a41", + "\u0007G\u0002\u0002\u1a41\u0426\u0003\u0002\u0002\u0002\u1a42\u1a43", + "\u0007U\u0002\u0002\u1a43\u1a44\u0007S\u0002\u0002\u1a44\u1a45\u0007", + "N\u0002\u0002\u1a45\u1a46\u0007a\u0002\u0002\u1a46\u1a47\u0007C\u0002", + "\u0002\u1a47\u1a48\u0007H\u0002\u0002\u1a48\u1a49\u0007V\u0002\u0002", + "\u1a49\u1a4a\u0007G\u0002\u0002\u1a4a\u1a4b\u0007T\u0002\u0002\u1a4b", + "\u1a4c\u0007a\u0002\u0002\u1a4c\u1a4d\u0007I\u0002\u0002\u1a4d\u1a4e", + "\u0007V\u0002\u0002\u1a4e\u1a4f\u0007K\u0002\u0002\u1a4f\u1a50\u0007", + "F\u0002\u0002\u1a50\u1a51\u0007U\u0002\u0002\u1a51\u0428\u0003\u0002", + "\u0002\u0002\u1a52\u1a53\u0007U\u0002\u0002\u1a53\u1a54\u0007S\u0002", + "\u0002\u1a54\u1a55\u0007N\u0002\u0002\u1a55\u1a56\u0007a\u0002\u0002", + "\u1a56\u1a57\u0007C\u0002\u0002\u1a57\u1a58\u0007H\u0002\u0002\u1a58", + "\u1a59\u0007V\u0002\u0002\u1a59\u1a5a\u0007G\u0002\u0002\u1a5a\u1a5b", + "\u0007T\u0002\u0002\u1a5b\u1a5c\u0007a\u0002\u0002\u1a5c\u1a5d\u0007", + "O\u0002\u0002\u1a5d\u1a5e\u0007V\u0002\u0002\u1a5e\u1a5f\u0007U\u0002", + "\u0002\u1a5f\u1a60\u0007a\u0002\u0002\u1a60\u1a61\u0007I\u0002\u0002", + "\u1a61\u1a62\u0007C\u0002\u0002\u1a62\u1a63\u0007R\u0002\u0002\u1a63", + "\u1a64\u0007U\u0002\u0002\u1a64\u042a\u0003\u0002\u0002\u0002\u1a65", + "\u1a66\u0007U\u0002\u0002\u1a66\u1a67\u0007S\u0002\u0002\u1a67\u1a68", + "\u0007N\u0002\u0002\u1a68\u1a69\u0007a\u0002\u0002\u1a69\u1a6a\u0007", + "D\u0002\u0002\u1a6a\u1a6b\u0007G\u0002\u0002\u1a6b\u1a6c\u0007H\u0002", + "\u0002\u1a6c\u1a6d\u0007Q\u0002\u0002\u1a6d\u1a6e\u0007T\u0002\u0002", + "\u1a6e\u1a6f\u0007G\u0002\u0002\u1a6f\u1a70\u0007a\u0002\u0002\u1a70", + "\u1a71\u0007I\u0002\u0002\u1a71\u1a72\u0007V\u0002\u0002\u1a72\u1a73", + "\u0007K\u0002\u0002\u1a73\u1a74\u0007F\u0002\u0002\u1a74\u1a75\u0007", + "U\u0002\u0002\u1a75\u042c\u0003\u0002\u0002\u0002\u1a76\u1a77\u0007", + "U\u0002\u0002\u1a77\u1a78\u0007S\u0002\u0002\u1a78\u1a79\u0007N\u0002", + "\u0002\u1a79\u1a7a\u0007a\u0002\u0002\u1a7a\u1a7b\u0007D\u0002\u0002", + "\u1a7b\u1a7c\u0007W\u0002\u0002\u1a7c\u1a7d\u0007H\u0002\u0002\u1a7d", + "\u1a7e\u0007H\u0002\u0002\u1a7e\u1a7f\u0007G\u0002\u0002\u1a7f\u1a80", + "\u0007T\u0002\u0002\u1a80\u1a81\u0007a\u0002\u0002\u1a81\u1a82\u0007", + "T\u0002\u0002\u1a82\u1a83\u0007G\u0002\u0002\u1a83\u1a84\u0007U\u0002", + "\u0002\u1a84\u1a85\u0007W\u0002\u0002\u1a85\u1a86\u0007N\u0002\u0002", + "\u1a86\u1a87\u0007V\u0002\u0002\u1a87\u042e\u0003\u0002\u0002\u0002", + "\u1a88\u1a89\u0007U\u0002\u0002\u1a89\u1a8a\u0007S\u0002\u0002\u1a8a", + "\u1a8b\u0007N\u0002\u0002\u1a8b\u1a8c\u0007a\u0002\u0002\u1a8c\u1a8d", + "\u0007E\u0002\u0002\u1a8d\u1a8e\u0007C\u0002\u0002\u1a8e\u1a8f\u0007", + "E\u0002\u0002\u1a8f\u1a90\u0007J\u0002\u0002\u1a90\u1a91\u0007G\u0002", + "\u0002\u1a91\u0430\u0003\u0002\u0002\u0002\u1a92\u1a93\u0007U\u0002", + "\u0002\u1a93\u1a94\u0007S\u0002\u0002\u1a94\u1a95\u0007N\u0002\u0002", + "\u1a95\u1a96\u0007a\u0002\u0002\u1a96\u1a97\u0007P\u0002\u0002\u1a97", + "\u1a98\u0007Q\u0002\u0002\u1a98\u1a99\u0007a\u0002\u0002\u1a99\u1a9a", + "\u0007E\u0002\u0002\u1a9a\u1a9b\u0007C\u0002\u0002\u1a9b\u1a9c\u0007", + "E\u0002\u0002\u1a9c\u1a9d\u0007J\u0002\u0002\u1a9d\u1a9e\u0007G\u0002", + "\u0002\u1a9e\u0432\u0003\u0002\u0002\u0002\u1a9f\u1aa0\u0007U\u0002", + "\u0002\u1aa0\u1aa1\u0007S\u0002\u0002\u1aa1\u1aa2\u0007N\u0002\u0002", + "\u1aa2\u1aa3\u0007a\u0002\u0002\u1aa3\u1aa4\u0007V\u0002\u0002\u1aa4", + "\u1aa5\u0007J\u0002\u0002\u1aa5\u1aa6\u0007T\u0002\u0002\u1aa6\u1aa7", + "\u0007G\u0002\u0002\u1aa7\u1aa8\u0007C\u0002\u0002\u1aa8\u1aa9\u0007", + "F\u0002\u0002\u1aa9\u0434\u0003\u0002\u0002\u0002\u1aaa\u1aab\u0007", + "U\u0002\u0002\u1aab\u1aac\u0007V\u0002\u0002\u1aac\u1aad\u0007C\u0002", + "\u0002\u1aad\u1aae\u0007T\u0002\u0002\u1aae\u1aaf\u0007V\u0002\u0002", + "\u1aaf\u0436\u0003\u0002\u0002\u0002\u1ab0\u1ab1\u0007U\u0002\u0002", + "\u1ab1\u1ab2\u0007V\u0002\u0002\u1ab2\u1ab3\u0007C\u0002\u0002\u1ab3", + "\u1ab4\u0007T\u0002\u0002\u1ab4\u1ab5\u0007V\u0002\u0002\u1ab5\u1ab6", + "\u0007U\u0002\u0002\u1ab6\u0438\u0003\u0002\u0002\u0002\u1ab7\u1ab8", + "\u0007U\u0002\u0002\u1ab8\u1ab9\u0007V\u0002\u0002\u1ab9\u1aba\u0007", + "C\u0002\u0002\u1aba\u1abb\u0007V\u0002\u0002\u1abb\u1abc\u0007U\u0002", + "\u0002\u1abc\u1abd\u0007a\u0002\u0002\u1abd\u1abe\u0007C\u0002\u0002", + "\u1abe\u1abf\u0007W\u0002\u0002\u1abf\u1ac0\u0007V\u0002\u0002\u1ac0", + "\u1ac1\u0007Q\u0002\u0002\u1ac1\u1ac2\u0007a\u0002\u0002\u1ac2\u1ac3", + "\u0007T\u0002\u0002\u1ac3\u1ac4\u0007G\u0002\u0002\u1ac4\u1ac5\u0007", + "E\u0002\u0002\u1ac5\u1ac6\u0007C\u0002\u0002\u1ac6\u1ac7\u0007N\u0002", + "\u0002\u1ac7\u1ac8\u0007E\u0002\u0002\u1ac8\u043a\u0003\u0002\u0002", + "\u0002\u1ac9\u1aca\u0007U\u0002\u0002\u1aca\u1acb\u0007V\u0002\u0002", + "\u1acb\u1acc\u0007C\u0002\u0002\u1acc\u1acd\u0007V\u0002\u0002\u1acd", + "\u1ace\u0007U\u0002\u0002\u1ace\u1acf\u0007a\u0002\u0002\u1acf\u1ad0", + "\u0007R\u0002\u0002\u1ad0\u1ad1\u0007G\u0002\u0002\u1ad1\u1ad2\u0007", + "T\u0002\u0002\u1ad2\u1ad3\u0007U\u0002\u0002\u1ad3\u1ad4\u0007K\u0002", + "\u0002\u1ad4\u1ad5\u0007U\u0002\u0002\u1ad5\u1ad6\u0007V\u0002\u0002", + "\u1ad6\u1ad7\u0007G\u0002\u0002\u1ad7\u1ad8\u0007P\u0002\u0002\u1ad8", + "\u1ad9\u0007V\u0002\u0002\u1ad9\u043c\u0003\u0002\u0002\u0002\u1ada", + "\u1adb\u0007U\u0002\u0002\u1adb\u1adc\u0007V\u0002\u0002\u1adc\u1add", + "\u0007C\u0002\u0002\u1add\u1ade\u0007V\u0002\u0002\u1ade\u1adf\u0007", + "U\u0002\u0002\u1adf\u1ae0\u0007a\u0002\u0002\u1ae0\u1ae1\u0007U\u0002", + "\u0002\u1ae1\u1ae2\u0007C\u0002\u0002\u1ae2\u1ae3\u0007O\u0002\u0002", + "\u1ae3\u1ae4\u0007R\u0002\u0002\u1ae4\u1ae5\u0007N\u0002\u0002\u1ae5", + "\u1ae6\u0007G\u0002\u0002\u1ae6\u1ae7\u0007a\u0002\u0002\u1ae7\u1ae8", + "\u0007R\u0002\u0002\u1ae8\u1ae9\u0007C\u0002\u0002\u1ae9\u1aea\u0007", + "I\u0002\u0002\u1aea\u1aeb\u0007G\u0002\u0002\u1aeb\u1aec\u0007U\u0002", + "\u0002\u1aec\u043e\u0003\u0002\u0002\u0002\u1aed\u1aee\u0007U\u0002", + "\u0002\u1aee\u1aef\u0007V\u0002\u0002\u1aef\u1af0\u0007C\u0002\u0002", + "\u1af0\u1af1\u0007V\u0002\u0002\u1af1\u1af2\u0007W\u0002\u0002\u1af2", + "\u1af3\u0007U\u0002\u0002\u1af3\u0440\u0003\u0002\u0002\u0002\u1af4", + "\u1af5\u0007U\u0002\u0002\u1af5\u1af6\u0007V\u0002\u0002\u1af6\u1af7", + "\u0007Q\u0002\u0002\u1af7\u1af8\u0007R\u0002\u0002\u1af8\u0442\u0003", + "\u0002\u0002\u0002\u1af9\u1afa\u0007U\u0002\u0002\u1afa\u1afb\u0007", + "V\u0002\u0002\u1afb\u1afc\u0007Q\u0002\u0002\u1afc\u1afd\u0007T\u0002", + "\u0002\u1afd\u1afe\u0007C\u0002\u0002\u1afe\u1aff\u0007I\u0002\u0002", + "\u1aff\u1b00\u0007G\u0002\u0002\u1b00\u0444\u0003\u0002\u0002\u0002", + "\u1b01\u1b02\u0007U\u0002\u0002\u1b02\u1b03\u0007V\u0002\u0002\u1b03", + "\u1b04\u0007Q\u0002\u0002\u1b04\u1b05\u0007T\u0002\u0002\u1b05\u1b06", + "\u0007G\u0002\u0002\u1b06\u1b07\u0007F\u0002\u0002\u1b07\u0446\u0003", + "\u0002\u0002\u0002\u1b08\u1b09\u0007U\u0002\u0002\u1b09\u1b0a\u0007", + "V\u0002\u0002\u1b0a\u1b0b\u0007T\u0002\u0002\u1b0b\u1b0c\u0007K\u0002", + "\u0002\u1b0c\u1b0d\u0007P\u0002\u0002\u1b0d\u1b0e\u0007I\u0002\u0002", + "\u1b0e\u0448\u0003\u0002\u0002\u0002\u1b0f\u1b10\u0007U\u0002\u0002", + "\u1b10\u1b11\u0007W\u0002\u0002\u1b11\u1b12\u0007D\u0002\u0002\u1b12", + "\u1b13\u0007E\u0002\u0002\u1b13\u1b14\u0007N\u0002\u0002\u1b14\u1b15", + "\u0007C\u0002\u0002\u1b15\u1b16\u0007U\u0002\u0002\u1b16\u1b17\u0007", + "U\u0002\u0002\u1b17\u1b18\u0007a\u0002\u0002\u1b18\u1b19\u0007Q\u0002", + "\u0002\u1b19\u1b1a\u0007T\u0002\u0002\u1b1a\u1b1b\u0007K\u0002\u0002", + "\u1b1b\u1b1c\u0007I\u0002\u0002\u1b1c\u1b1d\u0007K\u0002\u0002\u1b1d", + "\u1b1e\u0007P\u0002\u0002\u1b1e\u044a\u0003\u0002\u0002\u0002\u1b1f", + "\u1b20\u0007U\u0002\u0002\u1b20\u1b21\u0007W\u0002\u0002\u1b21\u1b22", + "\u0007D\u0002\u0002\u1b22\u1b23\u0007L\u0002\u0002\u1b23\u1b24\u0007", + "G\u0002\u0002\u1b24\u1b25\u0007E\u0002\u0002\u1b25\u1b26\u0007V\u0002", + "\u0002\u1b26\u044c\u0003\u0002\u0002\u0002\u1b27\u1b28\u0007U\u0002", + "\u0002\u1b28\u1b29\u0007W\u0002\u0002\u1b29\u1b2a\u0007D\u0002\u0002", + "\u1b2a\u1b2b\u0007R\u0002\u0002\u1b2b\u1b2c\u0007C\u0002\u0002\u1b2c", + "\u1b2d\u0007T\u0002\u0002\u1b2d\u1b2e\u0007V\u0002\u0002\u1b2e\u1b2f", + "\u0007K\u0002\u0002\u1b2f\u1b30\u0007V\u0002\u0002\u1b30\u1b31\u0007", + "K\u0002\u0002\u1b31\u1b32\u0007Q\u0002\u0002\u1b32\u1b33\u0007P\u0002", + "\u0002\u1b33\u044e\u0003\u0002\u0002\u0002\u1b34\u1b35\u0007U\u0002", + "\u0002\u1b35\u1b36\u0007W\u0002\u0002\u1b36\u1b37\u0007D\u0002\u0002", + "\u1b37\u1b38\u0007R\u0002\u0002\u1b38\u1b39\u0007C\u0002\u0002\u1b39", + "\u1b3a\u0007T\u0002\u0002\u1b3a\u1b3b\u0007V\u0002\u0002\u1b3b\u1b3c", + "\u0007K\u0002\u0002\u1b3c\u1b3d\u0007V\u0002\u0002\u1b3d\u1b3e\u0007", + "K\u0002\u0002\u1b3e\u1b3f\u0007Q\u0002\u0002\u1b3f\u1b40\u0007P\u0002", + "\u0002\u1b40\u1b41\u0007U\u0002\u0002\u1b41\u0450\u0003\u0002\u0002", + "\u0002\u1b42\u1b43\u0007U\u0002\u0002\u1b43\u1b44\u0007W\u0002\u0002", + "\u1b44\u1b45\u0007U\u0002\u0002\u1b45\u1b46\u0007R\u0002\u0002\u1b46", + "\u1b47\u0007G\u0002\u0002\u1b47\u1b48\u0007P\u0002\u0002\u1b48\u1b49", + "\u0007F\u0002\u0002\u1b49\u0452\u0003\u0002\u0002\u0002\u1b4a\u1b4b", + "\u0007U\u0002\u0002\u1b4b\u1b4c\u0007Y\u0002\u0002\u1b4c\u1b4d\u0007", + "C\u0002\u0002\u1b4d\u1b4e\u0007R\u0002\u0002\u1b4e\u1b4f\u0007U\u0002", + "\u0002\u1b4f\u0454\u0003\u0002\u0002\u0002\u1b50\u1b51\u0007U\u0002", + "\u0002\u1b51\u1b52\u0007Y\u0002\u0002\u1b52\u1b53\u0007K\u0002\u0002", + "\u1b53\u1b54\u0007V\u0002\u0002\u1b54\u1b55\u0007E\u0002\u0002\u1b55", + "\u1b56\u0007J\u0002\u0002\u1b56\u1b57\u0007G\u0002\u0002\u1b57\u1b58", + "\u0007U\u0002\u0002\u1b58\u0456\u0003\u0002\u0002\u0002\u1b59\u1b5a", + "\u0007V\u0002\u0002\u1b5a\u1b5b\u0007C\u0002\u0002\u1b5b\u1b5c\u0007", + "D\u0002\u0002\u1b5c\u1b5d\u0007N\u0002\u0002\u1b5d\u1b5e\u0007G\u0002", + "\u0002\u1b5e\u1b5f\u0007a\u0002\u0002\u1b5f\u1b60\u0007P\u0002\u0002", + "\u1b60\u1b61\u0007C\u0002\u0002\u1b61\u1b62\u0007O\u0002\u0002\u1b62", + "\u1b63\u0007G\u0002\u0002\u1b63\u0458\u0003\u0002\u0002\u0002\u1b64", + "\u1b65\u0007V\u0002\u0002\u1b65\u1b66\u0007C\u0002\u0002\u1b66\u1b67", + "\u0007D\u0002\u0002\u1b67\u1b68\u0007N\u0002\u0002\u1b68\u1b69\u0007", + "G\u0002\u0002\u1b69\u1b6a\u0007U\u0002\u0002\u1b6a\u1b6b\u0007R\u0002", + "\u0002\u1b6b\u1b6c\u0007C\u0002\u0002\u1b6c\u1b6d\u0007E\u0002\u0002", + "\u1b6d\u1b6e\u0007G\u0002\u0002\u1b6e\u045a\u0003\u0002\u0002\u0002", + "\u1b6f\u1b70\u0007V\u0002\u0002\u1b70\u1b71\u0007G\u0002\u0002\u1b71", + "\u1b72\u0007O\u0002\u0002\u1b72\u1b73\u0007R\u0002\u0002\u1b73\u1b74", + "\u0007Q\u0002\u0002\u1b74\u1b75\u0007T\u0002\u0002\u1b75\u1b76\u0007", + "C\u0002\u0002\u1b76\u1b77\u0007T\u0002\u0002\u1b77\u1b78\u0007[\u0002", + "\u0002\u1b78\u045c\u0003\u0002\u0002\u0002\u1b79\u1b7a\u0007V\u0002", + "\u0002\u1b7a\u1b7b\u0007G\u0002\u0002\u1b7b\u1b7c\u0007O\u0002\u0002", + "\u1b7c\u1b7d\u0007R\u0002\u0002\u1b7d\u1b7e\u0007V\u0002\u0002\u1b7e", + "\u1b7f\u0007C\u0002\u0002\u1b7f\u1b80\u0007D\u0002\u0002\u1b80\u1b81", + "\u0007N\u0002\u0002\u1b81\u1b82\u0007G\u0002\u0002\u1b82\u045e\u0003", + "\u0002\u0002\u0002\u1b83\u1b84\u0007V\u0002\u0002\u1b84\u1b85\u0007", + "J\u0002\u0002\u1b85\u1b86\u0007C\u0002\u0002\u1b86\u1b87\u0007P\u0002", + "\u0002\u1b87\u0460\u0003\u0002\u0002\u0002\u1b88\u1b89\u0007V\u0002", + "\u0002\u1b89\u1b8a\u0007T\u0002\u0002\u1b8a\u1b8b\u0007C\u0002\u0002", + "\u1b8b\u1b8c\u0007F\u0002\u0002\u1b8c\u1b8d\u0007K\u0002\u0002\u1b8d", + "\u1b8e\u0007V\u0002\u0002\u1b8e\u1b8f\u0007K\u0002\u0002\u1b8f\u1b90", + "\u0007Q\u0002\u0002\u1b90\u1b91\u0007P\u0002\u0002\u1b91\u1b92\u0007", + "C\u0002\u0002\u1b92\u1b93\u0007N\u0002\u0002\u1b93\u0462\u0003\u0002", + "\u0002\u0002\u1b94\u1b95\u0007V\u0002\u0002\u1b95\u1b96\u0007T\u0002", + "\u0002\u1b96\u1b97\u0007C\u0002\u0002\u1b97\u1b98\u0007P\u0002\u0002", + "\u1b98\u1b99\u0007U\u0002\u0002\u1b99\u1b9a\u0007C\u0002\u0002\u1b9a", + "\u1b9b\u0007E\u0002\u0002\u1b9b\u1b9c\u0007V\u0002\u0002\u1b9c\u1b9d", + "\u0007K\u0002\u0002\u1b9d\u1b9e\u0007Q\u0002\u0002\u1b9e\u1b9f\u0007", + "P\u0002\u0002\u1b9f\u0464\u0003\u0002\u0002\u0002\u1ba0\u1ba1\u0007", + "V\u0002\u0002\u1ba1\u1ba2\u0007T\u0002\u0002\u1ba2\u1ba3\u0007C\u0002", + "\u0002\u1ba3\u1ba4\u0007P\u0002\u0002\u1ba4\u1ba5\u0007U\u0002\u0002", + "\u1ba5\u1ba6\u0007C\u0002\u0002\u1ba6\u1ba7\u0007E\u0002\u0002\u1ba7", + "\u1ba8\u0007V\u0002\u0002\u1ba8\u1ba9\u0007K\u0002\u0002\u1ba9\u1baa", + "\u0007Q\u0002\u0002\u1baa\u1bab\u0007P\u0002\u0002\u1bab\u1bac\u0007", + "C\u0002\u0002\u1bac\u1bad\u0007N\u0002\u0002\u1bad\u0466\u0003\u0002", + "\u0002\u0002\u1bae\u1baf\u0007V\u0002\u0002\u1baf\u1bb0\u0007T\u0002", + "\u0002\u1bb0\u1bb1\u0007K\u0002\u0002\u1bb1\u1bb2\u0007I\u0002\u0002", + "\u1bb2\u1bb3\u0007I\u0002\u0002\u1bb3\u1bb4\u0007G\u0002\u0002\u1bb4", + "\u1bb5\u0007T\u0002\u0002\u1bb5\u1bb6\u0007U\u0002\u0002\u1bb6\u0468", + "\u0003\u0002\u0002\u0002\u1bb7\u1bb8\u0007V\u0002\u0002\u1bb8\u1bb9", + "\u0007T\u0002\u0002\u1bb9\u1bba\u0007W\u0002\u0002\u1bba\u1bbb\u0007", + "P\u0002\u0002\u1bbb\u1bbc\u0007E\u0002\u0002\u1bbc\u1bbd\u0007C\u0002", + "\u0002\u1bbd\u1bbe\u0007V\u0002\u0002\u1bbe\u1bbf\u0007G\u0002\u0002", + "\u1bbf\u046a\u0003\u0002\u0002\u0002\u1bc0\u1bc1\u0007W\u0002\u0002", + "\u1bc1\u1bc2\u0007P\u0002\u0002\u1bc2\u1bc3\u0007F\u0002\u0002\u1bc3", + "\u1bc4\u0007G\u0002\u0002\u1bc4\u1bc5\u0007H\u0002\u0002\u1bc5\u1bc6", + "\u0007K\u0002\u0002\u1bc6\u1bc7\u0007P\u0002\u0002\u1bc7\u1bc8\u0007", + "G\u0002\u0002\u1bc8\u1bc9\u0007F\u0002\u0002\u1bc9\u046c\u0003\u0002", + "\u0002\u0002\u1bca\u1bcb\u0007W\u0002\u0002\u1bcb\u1bcc\u0007P\u0002", + "\u0002\u1bcc\u1bcd\u0007F\u0002\u0002\u1bcd\u1bce\u0007Q\u0002\u0002", + "\u1bce\u1bcf\u0007H\u0002\u0002\u1bcf\u1bd0\u0007K\u0002\u0002\u1bd0", + "\u1bd1\u0007N\u0002\u0002\u1bd1\u1bd2\u0007G\u0002\u0002\u1bd2\u046e", + "\u0003\u0002\u0002\u0002\u1bd3\u1bd4\u0007W\u0002\u0002\u1bd4\u1bd5", + "\u0007P\u0002\u0002\u1bd5\u1bd6\u0007F\u0002\u0002\u1bd6\u1bd7\u0007", + "Q\u0002\u0002\u1bd7\u1bd8\u0007a\u0002\u0002\u1bd8\u1bd9\u0007D\u0002", + "\u0002\u1bd9\u1bda\u0007W\u0002\u0002\u1bda\u1bdb\u0007H\u0002\u0002", + "\u1bdb\u1bdc\u0007H\u0002\u0002\u1bdc\u1bdd\u0007G\u0002\u0002\u1bdd", + "\u1bde\u0007T\u0002\u0002\u1bde\u1bdf\u0007a\u0002\u0002\u1bdf\u1be0", + "\u0007U\u0002\u0002\u1be0\u1be1\u0007K\u0002\u0002\u1be1\u1be2\u0007", + "\\\u0002\u0002\u1be2\u1be3\u0007G\u0002\u0002\u1be3\u0470\u0003\u0002", + "\u0002\u0002\u1be4\u1be5\u0007W\u0002\u0002\u1be5\u1be6\u0007P\u0002", + "\u0002\u1be6\u1be7\u0007K\u0002\u0002\u1be7\u1be8\u0007P\u0002\u0002", + "\u1be8\u1be9\u0007U\u0002\u0002\u1be9\u1bea\u0007V\u0002\u0002\u1bea", + "\u1beb\u0007C\u0002\u0002\u1beb\u1bec\u0007N\u0002\u0002\u1bec\u1bed", + "\u0007N\u0002\u0002\u1bed\u0472\u0003\u0002\u0002\u0002\u1bee\u1bef", + "\u0007W\u0002\u0002\u1bef\u1bf0\u0007P\u0002\u0002\u1bf0\u1bf1\u0007", + "M\u0002\u0002\u1bf1\u1bf2\u0007P\u0002\u0002\u1bf2\u1bf3\u0007Q\u0002", + "\u0002\u1bf3\u1bf4\u0007Y\u0002\u0002\u1bf4\u1bf5\u0007P\u0002\u0002", + "\u1bf5\u0474\u0003\u0002\u0002\u0002\u1bf6\u1bf7\u0007W\u0002\u0002", + "\u1bf7\u1bf8\u0007P\u0002\u0002\u1bf8\u1bf9\u0007V\u0002\u0002\u1bf9", + "\u1bfa\u0007K\u0002\u0002\u1bfa\u1bfb\u0007N\u0002\u0002\u1bfb\u0476", + "\u0003\u0002\u0002\u0002\u1bfc\u1bfd\u0007W\u0002\u0002\u1bfd\u1bfe", + "\u0007R\u0002\u0002\u1bfe\u1bff\u0007I\u0002\u0002\u1bff\u1c00\u0007", + "T\u0002\u0002\u1c00\u1c01\u0007C\u0002\u0002\u1c01\u1c02\u0007F\u0002", + "\u0002\u1c02\u1c03\u0007G\u0002\u0002\u1c03\u0478\u0003\u0002\u0002", + "\u0002\u1c04\u1c05\u0007W\u0002\u0002\u1c05\u1c06\u0007U\u0002\u0002", + "\u1c06\u1c07\u0007G\u0002\u0002\u1c07\u1c08\u0007T\u0002\u0002\u1c08", + "\u047a\u0003\u0002\u0002\u0002\u1c09\u1c0a\u0007W\u0002\u0002\u1c0a", + "\u1c0b\u0007U\u0002\u0002\u1c0b\u1c0c\u0007G\u0002\u0002\u1c0c\u1c0d", + "\u0007a\u0002\u0002\u1c0d\u1c0e\u0007H\u0002\u0002\u1c0e\u1c0f\u0007", + "T\u0002\u0002\u1c0f\u1c10\u0007O\u0002\u0002\u1c10\u047c\u0003\u0002", + "\u0002\u0002\u1c11\u1c12\u0007W\u0002\u0002\u1c12\u1c13\u0007U\u0002", + "\u0002\u1c13\u1c14\u0007G\u0002\u0002\u1c14\u1c15\u0007T\u0002\u0002", + "\u1c15\u1c16\u0007a\u0002\u0002\u1c16\u1c17\u0007T\u0002\u0002\u1c17", + "\u1c18\u0007G\u0002\u0002\u1c18\u1c19\u0007U\u0002\u0002\u1c19\u1c1a", + "\u0007Q\u0002\u0002\u1c1a\u1c1b\u0007W\u0002\u0002\u1c1b\u1c1c\u0007", + "T\u0002\u0002\u1c1c\u1c1d\u0007E\u0002\u0002\u1c1d\u1c1e\u0007G\u0002", + "\u0002\u1c1e\u1c1f\u0007U\u0002\u0002\u1c1f\u047e\u0003\u0002\u0002", + "\u0002\u1c20\u1c21\u0007X\u0002\u0002\u1c21\u1c22\u0007C\u0002\u0002", + "\u1c22\u1c23\u0007N\u0002\u0002\u1c23\u1c24\u0007K\u0002\u0002\u1c24", + "\u1c25\u0007F\u0002\u0002\u1c25\u1c26\u0007C\u0002\u0002\u1c26\u1c27", + "\u0007V\u0002\u0002\u1c27\u1c28\u0007K\u0002\u0002\u1c28\u1c29\u0007", + "Q\u0002\u0002\u1c29\u1c2a\u0007P\u0002\u0002\u1c2a\u0480\u0003\u0002", + "\u0002\u0002\u1c2b\u1c2c\u0007X\u0002\u0002\u1c2c\u1c2d\u0007C\u0002", + "\u0002\u1c2d\u1c2e\u0007N\u0002\u0002\u1c2e\u1c2f\u0007W\u0002\u0002", + "\u1c2f\u1c30\u0007G\u0002\u0002\u1c30\u0482\u0003\u0002\u0002\u0002", + "\u1c31\u1c32\u0007X\u0002\u0002\u1c32\u1c33\u0007C\u0002\u0002\u1c33", + "\u1c34\u0007T\u0002\u0002\u1c34\u1c35\u0007K\u0002\u0002\u1c35\u1c36", + "\u0007C\u0002\u0002\u1c36\u1c37\u0007D\u0002\u0002\u1c37\u1c38\u0007", + "N\u0002\u0002\u1c38\u1c39\u0007G\u0002\u0002\u1c39\u1c3a\u0007U\u0002", + "\u0002\u1c3a\u0484\u0003\u0002\u0002\u0002\u1c3b\u1c3c\u0007X\u0002", + "\u0002\u1c3c\u1c3d\u0007K\u0002\u0002\u1c3d\u1c3e\u0007G\u0002\u0002", + "\u1c3e\u1c3f\u0007Y\u0002\u0002\u1c3f\u0486\u0003\u0002\u0002\u0002", + "\u1c40\u1c41\u0007X\u0002\u0002\u1c41\u1c42\u0007K\u0002\u0002\u1c42", + "\u1c43\u0007T\u0002\u0002\u1c43\u1c44\u0007V\u0002\u0002\u1c44\u1c45", + "\u0007W\u0002\u0002\u1c45\u1c46\u0007C\u0002\u0002\u1c46\u1c47\u0007", + "N\u0002\u0002\u1c47\u0488\u0003\u0002\u0002\u0002\u1c48\u1c49\u0007", + "X\u0002\u0002\u1c49\u1c4a\u0007K\u0002\u0002\u1c4a\u1c4b\u0007U\u0002", + "\u0002\u1c4b\u1c4c\u0007K\u0002\u0002\u1c4c\u1c4d\u0007D\u0002\u0002", + "\u1c4d\u1c4e\u0007N\u0002\u0002\u1c4e\u1c4f\u0007G\u0002\u0002\u1c4f", + "\u048a\u0003\u0002\u0002\u0002\u1c50\u1c51\u0007Y\u0002\u0002\u1c51", + "\u1c52\u0007C\u0002\u0002\u1c52\u1c53\u0007K\u0002\u0002\u1c53\u1c54", + "\u0007V\u0002\u0002\u1c54\u048c\u0003\u0002\u0002\u0002\u1c55\u1c56", + "\u0007Y\u0002\u0002\u1c56\u1c57\u0007C\u0002\u0002\u1c57\u1c58\u0007", + "T\u0002\u0002\u1c58\u1c59\u0007P\u0002\u0002\u1c59\u1c5a\u0007K\u0002", + "\u0002\u1c5a\u1c5b\u0007P\u0002\u0002\u1c5b\u1c5c\u0007I\u0002\u0002", + "\u1c5c\u1c5d\u0007U\u0002\u0002\u1c5d\u048e\u0003\u0002\u0002\u0002", + "\u1c5e\u1c5f\u0007Y\u0002\u0002\u1c5f\u1c60\u0007K\u0002\u0002\u1c60", + "\u1c61\u0007V\u0002\u0002\u1c61\u1c62\u0007J\u0002\u0002\u1c62\u1c63", + "\u0007Q\u0002\u0002\u1c63\u1c64\u0007W\u0002\u0002\u1c64\u1c65\u0007", + "V\u0002\u0002\u1c65\u0490\u0003\u0002\u0002\u0002\u1c66\u1c67\u0007", + "Y\u0002\u0002\u1c67\u1c68\u0007Q\u0002\u0002\u1c68\u1c69\u0007T\u0002", + "\u0002\u1c69\u1c6a\u0007M\u0002\u0002\u1c6a\u0492\u0003\u0002\u0002", + "\u0002\u1c6b\u1c6c\u0007Y\u0002\u0002\u1c6c\u1c6d\u0007T\u0002\u0002", + "\u1c6d\u1c6e\u0007C\u0002\u0002\u1c6e\u1c6f\u0007R\u0002\u0002\u1c6f", + "\u1c70\u0007R\u0002\u0002\u1c70\u1c71\u0007G\u0002\u0002\u1c71\u1c72", + "\u0007T\u0002\u0002\u1c72\u0494\u0003\u0002\u0002\u0002\u1c73\u1c74", + "\u0007Z\u0002\u0002\u1c74\u1c75\u00077\u0002\u0002\u1c75\u1c76\u0007", + "2\u0002\u0002\u1c76\u1c77\u0007;\u0002\u0002\u1c77\u0496\u0003\u0002", + "\u0002\u0002\u1c78\u1c79\u0007Z\u0002\u0002\u1c79\u1c7a\u0007C\u0002", + "\u0002\u1c7a\u0498\u0003\u0002\u0002\u0002\u1c7b\u1c7c\u0007Z\u0002", + "\u0002\u1c7c\u1c7d\u0007O\u0002\u0002\u1c7d\u1c7e\u0007N\u0002\u0002", + "\u1c7e\u049a\u0003\u0002\u0002\u0002\u1c7f\u1c80\u0007G\u0002\u0002", + "\u1c80\u1c81\u0007W\u0002\u0002\u1c81\u1c82\u0007T\u0002\u0002\u1c82", + "\u049c\u0003\u0002\u0002\u0002\u1c83\u1c84\u0007W\u0002\u0002\u1c84", + "\u1c85\u0007U\u0002\u0002\u1c85\u1c86\u0007C\u0002\u0002\u1c86\u049e", + "\u0003\u0002\u0002\u0002\u1c87\u1c88\u0007L\u0002\u0002\u1c88\u1c89", + "\u0007K\u0002\u0002\u1c89\u1c8a\u0007U\u0002\u0002\u1c8a\u04a0\u0003", + "\u0002\u0002\u0002\u1c8b\u1c8c\u0007K\u0002\u0002\u1c8c\u1c8d\u0007", + "U\u0002\u0002\u1c8d\u1c8e\u0007Q\u0002\u0002\u1c8e\u04a2\u0003\u0002", + "\u0002\u0002\u1c8f\u1c90\u0007K\u0002\u0002\u1c90\u1c91\u0007P\u0002", + "\u0002\u1c91\u1c92\u0007V\u0002\u0002\u1c92\u1c93\u0007G\u0002\u0002", + "\u1c93\u1c94\u0007T\u0002\u0002\u1c94\u1c95\u0007P\u0002\u0002\u1c95", + "\u1c96\u0007C\u0002\u0002\u1c96\u1c97\u0007N\u0002\u0002\u1c97\u04a4", + "\u0003\u0002\u0002\u0002\u1c98\u1c99\u0007S\u0002\u0002\u1c99\u1c9a", + "\u0007W\u0002\u0002\u1c9a\u1c9b\u0007C\u0002\u0002\u1c9b\u1c9c\u0007", + "T\u0002\u0002\u1c9c\u1c9d\u0007V\u0002\u0002\u1c9d\u1c9e\u0007G\u0002", + "\u0002\u1c9e\u1c9f\u0007T\u0002\u0002\u1c9f\u04a6\u0003\u0002\u0002", + "\u0002\u1ca0\u1ca1\u0007O\u0002\u0002\u1ca1\u1ca2\u0007Q\u0002\u0002", + "\u1ca2\u1ca3\u0007P\u0002\u0002\u1ca3\u1ca4\u0007V\u0002\u0002\u1ca4", + "\u1ca5\u0007J\u0002\u0002\u1ca5\u04a8\u0003\u0002\u0002\u0002\u1ca6", + "\u1ca7\u0007F\u0002\u0002\u1ca7\u1ca8\u0007C\u0002\u0002\u1ca8\u1ca9", + "\u0007[\u0002\u0002\u1ca9\u04aa\u0003\u0002\u0002\u0002\u1caa\u1cab", + "\u0007J\u0002\u0002\u1cab\u1cac\u0007Q\u0002\u0002\u1cac\u1cad\u0007", + "W\u0002\u0002\u1cad\u1cae\u0007T\u0002\u0002\u1cae\u04ac\u0003\u0002", + "\u0002\u0002\u1caf\u1cb0\u0007O\u0002\u0002\u1cb0\u1cb1\u0007K\u0002", + "\u0002\u1cb1\u1cb2\u0007P\u0002\u0002\u1cb2\u1cb3\u0007W\u0002\u0002", + "\u1cb3\u1cb4\u0007V\u0002\u0002\u1cb4\u1cb5\u0007G\u0002\u0002\u1cb5", + "\u04ae\u0003\u0002\u0002\u0002\u1cb6\u1cb7\u0007Y\u0002\u0002\u1cb7", + "\u1cb8\u0007G\u0002\u0002\u1cb8\u1cb9\u0007G\u0002\u0002\u1cb9\u1cba", + "\u0007M\u0002\u0002\u1cba\u04b0\u0003\u0002\u0002\u0002\u1cbb\u1cbc", + "\u0007U\u0002\u0002\u1cbc\u1cbd\u0007G\u0002\u0002\u1cbd\u1cbe\u0007", + "E\u0002\u0002\u1cbe\u1cbf\u0007Q\u0002\u0002\u1cbf\u1cc0\u0007P\u0002", + "\u0002\u1cc0\u1cc1\u0007F\u0002\u0002\u1cc1\u04b2\u0003\u0002\u0002", + "\u0002\u1cc2\u1cc3\u0007O\u0002\u0002\u1cc3\u1cc4\u0007K\u0002\u0002", + "\u1cc4\u1cc5\u0007E\u0002\u0002\u1cc5\u1cc6\u0007T\u0002\u0002\u1cc6", + "\u1cc7\u0007Q\u0002\u0002\u1cc7\u1cc8\u0007U\u0002\u0002\u1cc8\u1cc9", + "\u0007G\u0002\u0002\u1cc9\u1cca\u0007E\u0002\u0002\u1cca\u1ccb\u0007", + "Q\u0002\u0002\u1ccb\u1ccc\u0007P\u0002\u0002\u1ccc\u1ccd\u0007F\u0002", + "\u0002\u1ccd\u04b4\u0003\u0002\u0002\u0002\u1cce\u1ccf\u0007V\u0002", + "\u0002\u1ccf\u1cd0\u0007C\u0002\u0002\u1cd0\u1cd1\u0007D\u0002\u0002", + "\u1cd1\u1cd2\u0007N\u0002\u0002\u1cd2\u1cd3\u0007G\u0002\u0002\u1cd3", + "\u1cd4\u0007U\u0002\u0002\u1cd4\u04b6\u0003\u0002\u0002\u0002\u1cd5", + "\u1cd6\u0007T\u0002\u0002\u1cd6\u1cd7\u0007Q\u0002\u0002\u1cd7\u1cd8", + "\u0007W\u0002\u0002\u1cd8\u1cd9\u0007V\u0002\u0002\u1cd9\u1cda\u0007", + "K\u0002\u0002\u1cda\u1cdb\u0007P\u0002\u0002\u1cdb\u1cdc\u0007G\u0002", + "\u0002\u1cdc\u04b8\u0003\u0002\u0002\u0002\u1cdd\u1cde\u0007G\u0002", + "\u0002\u1cde\u1cdf\u0007Z\u0002\u0002\u1cdf\u1ce0\u0007G\u0002\u0002", + "\u1ce0\u1ce1\u0007E\u0002\u0002\u1ce1\u1ce2\u0007W\u0002\u0002\u1ce2", + "\u1ce3\u0007V\u0002\u0002\u1ce3\u1ce4\u0007G\u0002\u0002\u1ce4\u04ba", + "\u0003\u0002\u0002\u0002\u1ce5\u1ce6\u0007H\u0002\u0002\u1ce6\u1ce7", + "\u0007K\u0002\u0002\u1ce7\u1ce8\u0007N\u0002\u0002\u1ce8\u1ce9\u0007", + "G\u0002\u0002\u1ce9\u04bc\u0003\u0002\u0002\u0002\u1cea\u1ceb\u0007", + "R\u0002\u0002\u1ceb\u1cec\u0007T\u0002\u0002\u1cec\u1ced\u0007Q\u0002", + "\u0002\u1ced\u1cee\u0007E\u0002\u0002\u1cee\u1cef\u0007G\u0002\u0002", + "\u1cef\u1cf0\u0007U\u0002\u0002\u1cf0\u1cf1\u0007U\u0002\u0002\u1cf1", + "\u04be\u0003\u0002\u0002\u0002\u1cf2\u1cf3\u0007T\u0002\u0002\u1cf3", + "\u1cf4\u0007G\u0002\u0002\u1cf4\u1cf5\u0007N\u0002\u0002\u1cf5\u1cf6", + "\u0007Q\u0002\u0002\u1cf6\u1cf7\u0007C\u0002\u0002\u1cf7\u1cf8\u0007", + "F\u0002\u0002\u1cf8\u04c0\u0003\u0002\u0002\u0002\u1cf9\u1cfa\u0007", + "U\u0002\u0002\u1cfa\u1cfb\u0007J\u0002\u0002\u1cfb\u1cfc\u0007W\u0002", + "\u0002\u1cfc\u1cfd\u0007V\u0002\u0002\u1cfd\u1cfe\u0007F\u0002\u0002", + "\u1cfe\u1cff\u0007Q\u0002\u0002\u1cff\u1d00\u0007Y\u0002\u0002\u1d00", + "\u1d01\u0007P\u0002\u0002\u1d01\u04c2\u0003\u0002\u0002\u0002\u1d02", + "\u1d03\u0007U\u0002\u0002\u1d03\u1d04\u0007W\u0002\u0002\u1d04\u1d05", + "\u0007R\u0002\u0002\u1d05\u1d06\u0007G\u0002\u0002\u1d06\u1d07\u0007", + "T\u0002\u0002\u1d07\u04c4\u0003\u0002\u0002\u0002\u1d08\u1d09\u0007", + "R\u0002\u0002\u1d09\u1d0a\u0007T\u0002\u0002\u1d0a\u1d0b\u0007K\u0002", + "\u0002\u1d0b\u1d0c\u0007X\u0002\u0002\u1d0c\u1d0d\u0007K\u0002\u0002", + "\u1d0d\u1d0e\u0007N\u0002\u0002\u1d0e\u1d0f\u0007G\u0002\u0002\u1d0f", + "\u1d10\u0007I\u0002\u0002\u1d10\u1d11\u0007G\u0002\u0002\u1d11\u1d12", + "\u0007U\u0002\u0002\u1d12\u04c6\u0003\u0002\u0002\u0002\u1d13\u1d14", + "\u0007C\u0002\u0002\u1d14\u1d15\u0007R\u0002\u0002\u1d15\u1d16\u0007", + "R\u0002\u0002\u1d16\u1d17\u0007N\u0002\u0002\u1d17\u1d18\u0007K\u0002", + "\u0002\u1d18\u1d19\u0007E\u0002\u0002\u1d19\u1d1a\u0007C\u0002\u0002", + "\u1d1a\u1d1b\u0007V\u0002\u0002\u1d1b\u1d1c\u0007K\u0002\u0002\u1d1c", + "\u1d1d\u0007Q\u0002\u0002\u1d1d\u1d1e\u0007P\u0002\u0002\u1d1e\u1d1f", + "\u0007a\u0002\u0002\u1d1f\u1d20\u0007R\u0002\u0002\u1d20\u1d21\u0007", + "C\u0002\u0002\u1d21\u1d22\u0007U\u0002\u0002\u1d22\u1d23\u0007U\u0002", + "\u0002\u1d23\u1d24\u0007Y\u0002\u0002\u1d24\u1d25\u0007Q\u0002\u0002", + "\u1d25\u1d26\u0007T\u0002\u0002\u1d26\u1d27\u0007F\u0002\u0002\u1d27", + "\u1d28\u0007a\u0002\u0002\u1d28\u1d29\u0007C\u0002\u0002\u1d29\u1d2a", + "\u0007F\u0002\u0002\u1d2a\u1d2b\u0007O\u0002\u0002\u1d2b\u1d2c\u0007", + "K\u0002\u0002\u1d2c\u1d2d\u0007P\u0002\u0002\u1d2d\u04c8\u0003\u0002", + "\u0002\u0002\u1d2e\u1d2f\u0007C\u0002\u0002\u1d2f\u1d30\u0007W\u0002", + "\u0002\u1d30\u1d31\u0007F\u0002\u0002\u1d31\u1d32\u0007K\u0002\u0002", + "\u1d32\u1d33\u0007V\u0002\u0002\u1d33\u1d34\u0007a\u0002\u0002\u1d34", + "\u1d35\u0007C\u0002\u0002\u1d35\u1d36\u0007F\u0002\u0002\u1d36\u1d37", + "\u0007O\u0002\u0002\u1d37\u1d38\u0007K\u0002\u0002\u1d38\u1d39\u0007", + "P\u0002\u0002\u1d39\u04ca\u0003\u0002\u0002\u0002\u1d3a\u1d3b\u0007", + "D\u0002\u0002\u1d3b\u1d3c\u0007C\u0002\u0002\u1d3c\u1d3d\u0007E\u0002", + "\u0002\u1d3d\u1d3e\u0007M\u0002\u0002\u1d3e\u1d3f\u0007W\u0002\u0002", + "\u1d3f\u1d40\u0007R\u0002\u0002\u1d40\u1d41\u0007a\u0002\u0002\u1d41", + "\u1d42\u0007C\u0002\u0002\u1d42\u1d43\u0007F\u0002\u0002\u1d43\u1d44", + "\u0007O\u0002\u0002\u1d44\u1d45\u0007K\u0002\u0002\u1d45\u1d46\u0007", + "P\u0002\u0002\u1d46\u04cc\u0003\u0002\u0002\u0002\u1d47\u1d48\u0007", + "D\u0002\u0002\u1d48\u1d49\u0007K\u0002\u0002\u1d49\u1d4a\u0007P\u0002", + "\u0002\u1d4a\u1d4b\u0007N\u0002\u0002\u1d4b\u1d4c\u0007Q\u0002\u0002", + "\u1d4c\u1d4d\u0007I\u0002\u0002\u1d4d\u1d4e\u0007a\u0002\u0002\u1d4e", + "\u1d4f\u0007C\u0002\u0002\u1d4f\u1d50\u0007F\u0002\u0002\u1d50\u1d51", + "\u0007O\u0002\u0002\u1d51\u1d52\u0007K\u0002\u0002\u1d52\u1d53\u0007", + "P\u0002\u0002\u1d53\u04ce\u0003\u0002\u0002\u0002\u1d54\u1d55\u0007", + "D\u0002\u0002\u1d55\u1d56\u0007K\u0002\u0002\u1d56\u1d57\u0007P\u0002", + "\u0002\u1d57\u1d58\u0007N\u0002\u0002\u1d58\u1d59\u0007Q\u0002\u0002", + "\u1d59\u1d5a\u0007I\u0002\u0002\u1d5a\u1d5b\u0007a\u0002\u0002\u1d5b", + "\u1d5c\u0007G\u0002\u0002\u1d5c\u1d5d\u0007P\u0002\u0002\u1d5d\u1d5e", + "\u0007E\u0002\u0002\u1d5e\u1d5f\u0007T\u0002\u0002\u1d5f\u1d60\u0007", + "[\u0002\u0002\u1d60\u1d61\u0007R\u0002\u0002\u1d61\u1d62\u0007V\u0002", + "\u0002\u1d62\u1d63\u0007K\u0002\u0002\u1d63\u1d64\u0007Q\u0002\u0002", + "\u1d64\u1d65\u0007P\u0002\u0002\u1d65\u1d66\u0007a\u0002\u0002\u1d66", + "\u1d67\u0007C\u0002\u0002\u1d67\u1d68\u0007F\u0002\u0002\u1d68\u1d69", + "\u0007O\u0002\u0002\u1d69\u1d6a\u0007K\u0002\u0002\u1d6a\u1d6b\u0007", + "P\u0002\u0002\u1d6b\u04d0\u0003\u0002\u0002\u0002\u1d6c\u1d6d\u0007", + "E\u0002\u0002\u1d6d\u1d6e\u0007N\u0002\u0002\u1d6e\u1d6f\u0007Q\u0002", + "\u0002\u1d6f\u1d70\u0007P\u0002\u0002\u1d70\u1d71\u0007G\u0002\u0002", + "\u1d71\u1d72\u0007a\u0002\u0002\u1d72\u1d73\u0007C\u0002\u0002\u1d73", + "\u1d74\u0007F\u0002\u0002\u1d74\u1d75\u0007O\u0002\u0002\u1d75\u1d76", + "\u0007K\u0002\u0002\u1d76\u1d77\u0007P\u0002\u0002\u1d77\u04d2\u0003", + "\u0002\u0002\u0002\u1d78\u1d79\u0007E\u0002\u0002\u1d79\u1d7a\u0007", + "Q\u0002\u0002\u1d7a\u1d7b\u0007P\u0002\u0002\u1d7b\u1d7c\u0007P\u0002", + "\u0002\u1d7c\u1d7d\u0007G\u0002\u0002\u1d7d\u1d7e\u0007E\u0002\u0002", + "\u1d7e\u1d7f\u0007V\u0002\u0002\u1d7f\u1d80\u0007K\u0002\u0002\u1d80", + "\u1d81\u0007Q\u0002\u0002\u1d81\u1d82\u0007P\u0002\u0002\u1d82\u1d83", + "\u0007a\u0002\u0002\u1d83\u1d84\u0007C\u0002\u0002\u1d84\u1d85\u0007", + "F\u0002\u0002\u1d85\u1d86\u0007O\u0002\u0002\u1d86\u1d87\u0007K\u0002", + "\u0002\u1d87\u1d88\u0007P\u0002\u0002\u1d88\u04d4\u0003\u0002\u0002", + "\u0002\u1d89\u1d8a\u0007G\u0002\u0002\u1d8a\u1d8b\u0007P\u0002\u0002", + "\u1d8b\u1d8c\u0007E\u0002\u0002\u1d8c\u1d8d\u0007T\u0002\u0002\u1d8d", + "\u1d8e\u0007[\u0002\u0002\u1d8e\u1d8f\u0007R\u0002\u0002\u1d8f\u1d90", + "\u0007V\u0002\u0002\u1d90\u1d91\u0007K\u0002\u0002\u1d91\u1d92\u0007", + "Q\u0002\u0002\u1d92\u1d93\u0007P\u0002\u0002\u1d93\u1d94\u0007a\u0002", + "\u0002\u1d94\u1d95\u0007M\u0002\u0002\u1d95\u1d96\u0007G\u0002\u0002", + "\u1d96\u1d97\u0007[\u0002\u0002\u1d97\u1d98\u0007a\u0002\u0002\u1d98", + "\u1d99\u0007C\u0002\u0002\u1d99\u1d9a\u0007F\u0002\u0002\u1d9a\u1d9b", + "\u0007O\u0002\u0002\u1d9b\u1d9c\u0007K\u0002\u0002\u1d9c\u1d9d\u0007", + "P\u0002\u0002\u1d9d\u04d6\u0003\u0002\u0002\u0002\u1d9e\u1d9f\u0007", + "H\u0002\u0002\u1d9f\u1da0\u0007K\u0002\u0002\u1da0\u1da1\u0007T\u0002", + "\u0002\u1da1\u1da2\u0007G\u0002\u0002\u1da2\u1da3\u0007Y\u0002\u0002", + "\u1da3\u1da4\u0007C\u0002\u0002\u1da4\u1da5\u0007N\u0002\u0002\u1da5", + "\u1da6\u0007N\u0002\u0002\u1da6\u1da7\u0007a\u0002\u0002\u1da7\u1da8", + "\u0007C\u0002\u0002\u1da8\u1da9\u0007F\u0002\u0002\u1da9\u1daa\u0007", + "O\u0002\u0002\u1daa\u1dab\u0007K\u0002\u0002\u1dab\u1dac\u0007P\u0002", + "\u0002\u1dac\u04d8\u0003\u0002\u0002\u0002\u1dad\u1dae\u0007H\u0002", + "\u0002\u1dae\u1daf\u0007K\u0002\u0002\u1daf\u1db0\u0007T\u0002\u0002", + "\u1db0\u1db1\u0007G\u0002\u0002\u1db1\u1db2\u0007Y\u0002\u0002\u1db2", + "\u1db3\u0007C\u0002\u0002\u1db3\u1db4\u0007N\u0002\u0002\u1db4\u1db5", + "\u0007N\u0002\u0002\u1db5\u1db6\u0007a\u0002\u0002\u1db6\u1db7\u0007", + "W\u0002\u0002\u1db7\u1db8\u0007U\u0002\u0002\u1db8\u1db9\u0007G\u0002", + "\u0002\u1db9\u1dba\u0007T\u0002\u0002\u1dba\u04da\u0003\u0002\u0002", + "\u0002\u1dbb\u1dbc\u0007I\u0002\u0002\u1dbc\u1dbd\u0007T\u0002\u0002", + "\u1dbd\u1dbe\u0007Q\u0002\u0002\u1dbe\u1dbf\u0007W\u0002\u0002\u1dbf", + "\u1dc0\u0007R\u0002\u0002\u1dc0\u1dc1\u0007a\u0002\u0002\u1dc1\u1dc2", + "\u0007T\u0002\u0002\u1dc2\u1dc3\u0007G\u0002\u0002\u1dc3\u1dc4\u0007", + "R\u0002\u0002\u1dc4\u1dc5\u0007N\u0002\u0002\u1dc5\u1dc6\u0007K\u0002", + "\u0002\u1dc6\u1dc7\u0007E\u0002\u0002\u1dc7\u1dc8\u0007C\u0002\u0002", + "\u1dc8\u1dc9\u0007V\u0002\u0002\u1dc9\u1dca\u0007K\u0002\u0002\u1dca", + "\u1dcb\u0007Q\u0002\u0002\u1dcb\u1dcc\u0007P\u0002\u0002\u1dcc\u1dcd", + "\u0007a\u0002\u0002\u1dcd\u1dce\u0007C\u0002\u0002\u1dce\u1dcf\u0007", + "F\u0002\u0002\u1dcf\u1dd0\u0007O\u0002\u0002\u1dd0\u1dd1\u0007K\u0002", + "\u0002\u1dd1\u1dd2\u0007P\u0002\u0002\u1dd2\u04dc\u0003\u0002\u0002", + "\u0002\u1dd3\u1dd4\u0007K\u0002\u0002\u1dd4\u1dd5\u0007P\u0002\u0002", + "\u1dd5\u1dd6\u0007P\u0002\u0002\u1dd6\u1dd7\u0007Q\u0002\u0002\u1dd7", + "\u1dd8\u0007F\u0002\u0002\u1dd8\u1dd9\u0007D\u0002\u0002\u1dd9\u1dda", + "\u0007a\u0002\u0002\u1dda\u1ddb\u0007T\u0002\u0002\u1ddb\u1ddc\u0007", + "G\u0002\u0002\u1ddc\u1ddd\u0007F\u0002\u0002\u1ddd\u1dde\u0007Q\u0002", + "\u0002\u1dde\u1ddf\u0007a\u0002\u0002\u1ddf\u1de0\u0007N\u0002\u0002", + "\u1de0\u1de1\u0007Q\u0002\u0002\u1de1\u1de2\u0007I\u0002\u0002\u1de2", + "\u1de3\u0007a\u0002\u0002\u1de3\u1de4\u0007C\u0002\u0002\u1de4\u1de5", + "\u0007T\u0002\u0002\u1de5\u1de6\u0007E\u0002\u0002\u1de6\u1de7\u0007", + "J\u0002\u0002\u1de7\u1de8\u0007K\u0002\u0002\u1de8\u1de9\u0007X\u0002", + "\u0002\u1de9\u1dea\u0007G\u0002\u0002\u1dea\u04de\u0003\u0002\u0002", + "\u0002\u1deb\u1dec\u0007P\u0002\u0002\u1dec\u1ded\u0007F\u0002\u0002", + "\u1ded\u1dee\u0007D\u0002\u0002\u1dee\u1def\u0007a\u0002\u0002\u1def", + "\u1df0\u0007U\u0002\u0002\u1df0\u1df1\u0007V\u0002\u0002\u1df1\u1df2", + "\u0007Q\u0002\u0002\u1df2\u1df3\u0007T\u0002\u0002\u1df3\u1df4\u0007", + "G\u0002\u0002\u1df4\u1df5\u0007F\u0002\u0002\u1df5\u1df6\u0007a\u0002", + "\u0002\u1df6\u1df7\u0007W\u0002\u0002\u1df7\u1df8\u0007U\u0002\u0002", + "\u1df8\u1df9\u0007G\u0002\u0002\u1df9\u1dfa\u0007T\u0002\u0002\u1dfa", + "\u04e0\u0003\u0002\u0002\u0002\u1dfb\u1dfc\u0007R\u0002\u0002\u1dfc", + "\u1dfd\u0007G\u0002\u0002\u1dfd\u1dfe\u0007T\u0002\u0002\u1dfe\u1dff", + "\u0007U\u0002\u0002\u1dff\u1e00\u0007K\u0002\u0002\u1e00\u1e01\u0007", + "U\u0002\u0002\u1e01\u1e02\u0007V\u0002\u0002\u1e02\u1e03\u0007a\u0002", + "\u0002\u1e03\u1e04\u0007T\u0002\u0002\u1e04\u1e05\u0007Q\u0002\u0002", + "\u1e05\u1e06\u0007a\u0002\u0002\u1e06\u1e07\u0007X\u0002\u0002\u1e07", + "\u1e08\u0007C\u0002\u0002\u1e08\u1e09\u0007T\u0002\u0002\u1e09\u1e0a", + "\u0007K\u0002\u0002\u1e0a\u1e0b\u0007C\u0002\u0002\u1e0b\u1e0c\u0007", + "D\u0002\u0002\u1e0c\u1e0d\u0007N\u0002\u0002\u1e0d\u1e0e\u0007G\u0002", + "\u0002\u1e0e\u1e0f\u0007U\u0002\u0002\u1e0f\u1e10\u0007a\u0002\u0002", + "\u1e10\u1e11\u0007C\u0002\u0002\u1e11\u1e12\u0007F\u0002\u0002\u1e12", + "\u1e13\u0007O\u0002\u0002\u1e13\u1e14\u0007K\u0002\u0002\u1e14\u1e15", + "\u0007P\u0002\u0002\u1e15\u04e2\u0003\u0002\u0002\u0002\u1e16\u1e17", + "\u0007T\u0002\u0002\u1e17\u1e18\u0007G\u0002\u0002\u1e18\u1e19\u0007", + "R\u0002\u0002\u1e19\u1e1a\u0007N\u0002\u0002\u1e1a\u1e1b\u0007K\u0002", + "\u0002\u1e1b\u1e1c\u0007E\u0002\u0002\u1e1c\u1e1d\u0007C\u0002\u0002", + "\u1e1d\u1e1e\u0007V\u0002\u0002\u1e1e\u1e1f\u0007K\u0002\u0002\u1e1f", + "\u1e20\u0007Q\u0002\u0002\u1e20\u1e21\u0007P\u0002\u0002\u1e21\u1e22", + "\u0007a\u0002\u0002\u1e22\u1e23\u0007C\u0002\u0002\u1e23\u1e24\u0007", + "R\u0002\u0002\u1e24\u1e25\u0007R\u0002\u0002\u1e25\u1e26\u0007N\u0002", + "\u0002\u1e26\u1e27\u0007K\u0002\u0002\u1e27\u1e28\u0007G\u0002\u0002", + "\u1e28\u1e29\u0007T\u0002\u0002\u1e29\u04e4\u0003\u0002\u0002\u0002", + "\u1e2a\u1e2b\u0007T\u0002\u0002\u1e2b\u1e2c\u0007G\u0002\u0002\u1e2c", + "\u1e2d\u0007R\u0002\u0002\u1e2d\u1e2e\u0007N\u0002\u0002\u1e2e\u1e2f", + "\u0007K\u0002\u0002\u1e2f\u1e30\u0007E\u0002\u0002\u1e30\u1e31\u0007", + "C\u0002\u0002\u1e31\u1e32\u0007V\u0002\u0002\u1e32\u1e33\u0007K\u0002", + "\u0002\u1e33\u1e34\u0007Q\u0002\u0002\u1e34\u1e35\u0007P\u0002\u0002", + "\u1e35\u1e36\u0007a\u0002\u0002\u1e36\u1e37\u0007U\u0002\u0002\u1e37", + "\u1e38\u0007N\u0002\u0002\u1e38\u1e39\u0007C\u0002\u0002\u1e39\u1e3a", + "\u0007X\u0002\u0002\u1e3a\u1e3b\u0007G\u0002\u0002\u1e3b\u1e3c\u0007", + "a\u0002\u0002\u1e3c\u1e3d\u0007C\u0002\u0002\u1e3d\u1e3e\u0007F\u0002", + "\u0002\u1e3e\u1e3f\u0007O\u0002\u0002\u1e3f\u1e40\u0007K\u0002\u0002", + "\u1e40\u1e41\u0007P\u0002\u0002\u1e41\u04e6\u0003\u0002\u0002\u0002", + "\u1e42\u1e43\u0007T\u0002\u0002\u1e43\u1e44\u0007G\u0002\u0002\u1e44", + "\u1e45\u0007U\u0002\u0002\u1e45\u1e46\u0007Q\u0002\u0002\u1e46\u1e47", + "\u0007W\u0002\u0002\u1e47\u1e48\u0007T\u0002\u0002\u1e48\u1e49\u0007", + "E\u0002\u0002\u1e49\u1e4a\u0007G\u0002\u0002\u1e4a\u1e4b\u0007a\u0002", + "\u0002\u1e4b\u1e4c\u0007I\u0002\u0002\u1e4c\u1e4d\u0007T\u0002\u0002", + "\u1e4d\u1e4e\u0007Q\u0002\u0002\u1e4e\u1e4f\u0007W\u0002\u0002\u1e4f", + "\u1e50\u0007R\u0002\u0002\u1e50\u1e51\u0007a\u0002\u0002\u1e51\u1e52", + "\u0007C\u0002\u0002\u1e52\u1e53\u0007F\u0002\u0002\u1e53\u1e54\u0007", + "O\u0002\u0002\u1e54\u1e55\u0007K\u0002\u0002\u1e55\u1e56\u0007P\u0002", + "\u0002\u1e56\u04e8\u0003\u0002\u0002\u0002\u1e57\u1e58\u0007T\u0002", + "\u0002\u1e58\u1e59\u0007G\u0002\u0002\u1e59\u1e5a\u0007U\u0002\u0002", + "\u1e5a\u1e5b\u0007Q\u0002\u0002\u1e5b\u1e5c\u0007W\u0002\u0002\u1e5c", + "\u1e5d\u0007T\u0002\u0002\u1e5d\u1e5e\u0007E\u0002\u0002\u1e5e\u1e5f", + "\u0007G\u0002\u0002\u1e5f\u1e60\u0007a\u0002\u0002\u1e60\u1e61\u0007", + "I\u0002\u0002\u1e61\u1e62\u0007T\u0002\u0002\u1e62\u1e63\u0007Q\u0002", + "\u0002\u1e63\u1e64\u0007W\u0002\u0002\u1e64\u1e65\u0007R\u0002\u0002", + "\u1e65\u1e66\u0007a\u0002\u0002\u1e66\u1e67\u0007W\u0002\u0002\u1e67", + "\u1e68\u0007U\u0002\u0002\u1e68\u1e69\u0007G\u0002\u0002\u1e69\u1e6a", + "\u0007T\u0002\u0002\u1e6a\u04ea\u0003\u0002\u0002\u0002\u1e6b\u1e6c", + "\u0007T\u0002\u0002\u1e6c\u1e6d\u0007Q\u0002\u0002\u1e6d\u1e6e\u0007", + "N\u0002\u0002\u1e6e\u1e6f\u0007G\u0002\u0002\u1e6f\u1e70\u0007a\u0002", + "\u0002\u1e70\u1e71\u0007C\u0002\u0002\u1e71\u1e72\u0007F\u0002\u0002", + "\u1e72\u1e73\u0007O\u0002\u0002\u1e73\u1e74\u0007K\u0002\u0002\u1e74", + "\u1e75\u0007P\u0002\u0002\u1e75\u04ec\u0003\u0002\u0002\u0002\u1e76", + "\u1e78\u0005\u0811\u0409\u0002\u1e77\u1e76\u0003\u0002\u0002\u0002\u1e77", + "\u1e78\u0003\u0002\u0002\u0002\u1e78\u1e79\u0003\u0002\u0002\u0002\u1e79", + "\u1e7a\u0007U\u0002\u0002\u1e7a\u1e7b\u0007G\u0002\u0002\u1e7b\u1e7c", + "\u0007U\u0002\u0002\u1e7c\u1e7d\u0007U\u0002\u0002\u1e7d\u1e7e\u0007", + "K\u0002\u0002\u1e7e\u1e7f\u0007Q\u0002\u0002\u1e7f\u1e80\u0007P\u0002", + "\u0002\u1e80\u1e81\u0007a\u0002\u0002\u1e81\u1e82\u0007X\u0002\u0002", + "\u1e82\u1e83\u0007C\u0002\u0002\u1e83\u1e84\u0007T\u0002\u0002\u1e84", + "\u1e85\u0007K\u0002\u0002\u1e85\u1e86\u0007C\u0002\u0002\u1e86\u1e87", + "\u0007D\u0002\u0002\u1e87\u1e88\u0007N\u0002\u0002\u1e88\u1e89\u0007", + "G\u0002\u0002\u1e89\u1e8a\u0007U\u0002\u0002\u1e8a\u1e8b\u0007a\u0002", + "\u0002\u1e8b\u1e8c\u0007C\u0002\u0002\u1e8c\u1e8d\u0007F\u0002\u0002", + "\u1e8d\u1e8e\u0007O\u0002\u0002\u1e8e\u1e8f\u0007K\u0002\u0002\u1e8f", + "\u1e90\u0007P\u0002\u0002\u1e90\u1e92\u0003\u0002\u0002\u0002\u1e91", + "\u1e93\u0005\u0811\u0409\u0002\u1e92\u1e91\u0003\u0002\u0002\u0002\u1e92", + "\u1e93\u0003\u0002\u0002\u0002\u1e93\u04ee\u0003\u0002\u0002\u0002\u1e94", + "\u1e95\u0007U\u0002\u0002\u1e95\u1e96\u0007G\u0002\u0002\u1e96\u1e97", + "\u0007V\u0002\u0002\u1e97\u1e98\u0007a\u0002\u0002\u1e98\u1e99\u0007", + "W\u0002\u0002\u1e99\u1e9a\u0007U\u0002\u0002\u1e9a\u1e9b\u0007G\u0002", + "\u0002\u1e9b\u1e9c\u0007T\u0002\u0002\u1e9c\u1e9d\u0007a\u0002\u0002", + "\u1e9d\u1e9e\u0007K\u0002\u0002\u1e9e\u1e9f\u0007F\u0002\u0002\u1e9f", + "\u04f0\u0003\u0002\u0002\u0002\u1ea0\u1ea1\u0007U\u0002\u0002\u1ea1", + "\u1ea2\u0007J\u0002\u0002\u1ea2\u1ea3\u0007Q\u0002\u0002\u1ea3\u1ea4", + "\u0007Y\u0002\u0002\u1ea4\u1ea5\u0007a\u0002\u0002\u1ea5\u1ea6\u0007", + "T\u0002\u0002\u1ea6\u1ea7\u0007Q\u0002\u0002\u1ea7\u1ea8\u0007W\u0002", + "\u0002\u1ea8\u1ea9\u0007V\u0002\u0002\u1ea9\u1eaa\u0007K\u0002\u0002", + "\u1eaa\u1eab\u0007P\u0002\u0002\u1eab\u1eac\u0007G\u0002\u0002\u1eac", + "\u04f2\u0003\u0002\u0002\u0002\u1ead\u1eae\u0007U\u0002\u0002\u1eae", + "\u1eaf\u0007[\u0002\u0002\u1eaf\u1eb0\u0007U\u0002\u0002\u1eb0\u1eb1", + "\u0007V\u0002\u0002\u1eb1\u1eb2\u0007G\u0002\u0002\u1eb2\u1eb3\u0007", + "O\u0002\u0002\u1eb3\u1eb4\u0007a\u0002\u0002\u1eb4\u1eb5\u0007X\u0002", + "\u0002\u1eb5\u1eb6\u0007C\u0002\u0002\u1eb6\u1eb7\u0007T\u0002\u0002", + "\u1eb7\u1eb8\u0007K\u0002\u0002\u1eb8\u1eb9\u0007C\u0002\u0002\u1eb9", + "\u1eba\u0007D\u0002\u0002\u1eba\u1ebb\u0007N\u0002\u0002\u1ebb\u1ebc", + "\u0007G\u0002\u0002\u1ebc\u1ebd\u0007U\u0002\u0002\u1ebd\u1ebe\u0007", + "a\u0002\u0002\u1ebe\u1ebf\u0007C\u0002\u0002\u1ebf\u1ec0\u0007F\u0002", + "\u0002\u1ec0\u1ec1\u0007O\u0002\u0002\u1ec1\u1ec2\u0007K\u0002\u0002", + "\u1ec2\u1ec3\u0007P\u0002\u0002\u1ec3\u04f4\u0003\u0002\u0002\u0002", + "\u1ec4\u1ec5\u0007V\u0002\u0002\u1ec5\u1ec6\u0007C\u0002\u0002\u1ec6", + "\u1ec7\u0007D\u0002\u0002\u1ec7\u1ec8\u0007N\u0002\u0002\u1ec8\u1ec9", + "\u0007G\u0002\u0002\u1ec9\u1eca\u0007a\u0002\u0002\u1eca\u1ecb\u0007", + "G\u0002\u0002\u1ecb\u1ecc\u0007P\u0002\u0002\u1ecc\u1ecd\u0007E\u0002", + "\u0002\u1ecd\u1ece\u0007T\u0002\u0002\u1ece\u1ecf\u0007[\u0002\u0002", + "\u1ecf\u1ed0\u0007R\u0002\u0002\u1ed0\u1ed1\u0007V\u0002\u0002\u1ed1", + "\u1ed2\u0007K\u0002\u0002\u1ed2\u1ed3\u0007Q\u0002\u0002\u1ed3\u1ed4", + "\u0007P\u0002\u0002\u1ed4\u1ed5\u0007a\u0002\u0002\u1ed5\u1ed6\u0007", + "C\u0002\u0002\u1ed6\u1ed7\u0007F\u0002\u0002\u1ed7\u1ed8\u0007O\u0002", + "\u0002\u1ed8\u1ed9\u0007K\u0002\u0002\u1ed9\u1eda\u0007P\u0002\u0002", + "\u1eda\u04f6\u0003\u0002\u0002\u0002\u1edb\u1edc\u0007X\u0002\u0002", + "\u1edc\u1edd\u0007G\u0002\u0002\u1edd\u1ede\u0007T\u0002\u0002\u1ede", + "\u1edf\u0007U\u0002\u0002\u1edf\u1ee0\u0007K\u0002\u0002\u1ee0\u1ee1", + "\u0007Q\u0002\u0002\u1ee1\u1ee2\u0007P\u0002\u0002\u1ee2\u1ee3\u0007", + "a\u0002\u0002\u1ee3\u1ee4\u0007V\u0002\u0002\u1ee4\u1ee5\u0007Q\u0002", + "\u0002\u1ee5\u1ee6\u0007M\u0002\u0002\u1ee6\u1ee7\u0007G\u0002\u0002", + "\u1ee7\u1ee8\u0007P\u0002\u0002\u1ee8\u1ee9\u0007a\u0002\u0002\u1ee9", + "\u1eea\u0007C\u0002\u0002\u1eea\u1eeb\u0007F\u0002\u0002\u1eeb\u1eec", + "\u0007O\u0002\u0002\u1eec\u1eed\u0007K\u0002\u0002\u1eed\u1eee\u0007", + "P\u0002\u0002\u1eee\u04f8\u0003\u0002\u0002\u0002\u1eef\u1ef0\u0007", + "Z\u0002\u0002\u1ef0\u1ef1\u0007C\u0002\u0002\u1ef1\u1ef2\u0007a\u0002", + "\u0002\u1ef2\u1ef3\u0007T\u0002\u0002\u1ef3\u1ef4\u0007G\u0002\u0002", + "\u1ef4\u1ef5\u0007E\u0002\u0002\u1ef5\u1ef6\u0007Q\u0002\u0002\u1ef6", + "\u1ef7\u0007X\u0002\u0002\u1ef7\u1ef8\u0007G\u0002\u0002\u1ef8\u1ef9", + "\u0007T\u0002\u0002\u1ef9\u1efa\u0007a\u0002\u0002\u1efa\u1efb\u0007", + "C\u0002\u0002\u1efb\u1efc\u0007F\u0002\u0002\u1efc\u1efd\u0007O\u0002", + "\u0002\u1efd\u1efe\u0007K\u0002\u0002\u1efe\u1eff\u0007P\u0002\u0002", + "\u1eff\u04fa\u0003\u0002\u0002\u0002\u1f00\u1f01\u0007C\u0002\u0002", + "\u1f01\u1f02\u0007T\u0002\u0002\u1f02\u1f03\u0007O\u0002\u0002\u1f03", + "\u1f04\u0007U\u0002\u0002\u1f04\u1f05\u0007E\u0002\u0002\u1f05\u1f06", + "\u0007K\u0002\u0002\u1f06\u1f07\u0007K\u0002\u0002\u1f07\u1f08\u0007", + ":\u0002\u0002\u1f08\u04fc\u0003\u0002\u0002\u0002\u1f09\u1f0a\u0007", + "C\u0002\u0002\u1f0a\u1f0b\u0007U\u0002\u0002\u1f0b\u1f0c\u0007E\u0002", + "\u0002\u1f0c\u1f0d\u0007K\u0002\u0002\u1f0d\u1f0e\u0007K\u0002\u0002", + "\u1f0e\u04fe\u0003\u0002\u0002\u0002\u1f0f\u1f10\u0007D\u0002\u0002", + "\u1f10\u1f11\u0007K\u0002\u0002\u1f11\u1f12\u0007I\u0002\u0002\u1f12", + "\u1f13\u00077\u0002\u0002\u1f13\u0500\u0003\u0002\u0002\u0002\u1f14", + "\u1f15\u0007E\u0002\u0002\u1f15\u1f16\u0007R\u0002\u0002\u1f16\u1f17", + "\u00073\u0002\u0002\u1f17\u1f18\u00074\u0002\u0002\u1f18\u1f19\u0007", + "7\u0002\u0002\u1f19\u1f1a\u00072\u0002\u0002\u1f1a\u0502\u0003\u0002", + "\u0002\u0002\u1f1b\u1f1c\u0007E\u0002\u0002\u1f1c\u1f1d\u0007R\u0002", + "\u0002\u1f1d\u1f1e\u00073\u0002\u0002\u1f1e\u1f1f\u00074\u0002\u0002", + "\u1f1f\u1f20\u00077\u0002\u0002\u1f20\u1f21\u00073\u0002\u0002\u1f21", + "\u0504\u0003\u0002\u0002\u0002\u1f22\u1f23\u0007E\u0002\u0002\u1f23", + "\u1f24\u0007R\u0002\u0002\u1f24\u1f25\u00073\u0002\u0002\u1f25\u1f26", + "\u00074\u0002\u0002\u1f26\u1f27\u00077\u0002\u0002\u1f27\u1f28\u0007", + "8\u0002\u0002\u1f28\u0506\u0003\u0002\u0002\u0002\u1f29\u1f2a\u0007", + "E\u0002\u0002\u1f2a\u1f2b\u0007R\u0002\u0002\u1f2b\u1f2c\u00073\u0002", + "\u0002\u1f2c\u1f2d\u00074\u0002\u0002\u1f2d\u1f2e\u00077\u0002\u0002", + "\u1f2e\u1f2f\u00079\u0002\u0002\u1f2f\u0508\u0003\u0002\u0002\u0002", + "\u1f30\u1f31\u0007E\u0002\u0002\u1f31\u1f32\u0007R\u0002\u0002\u1f32", + "\u1f33\u0007:\u0002\u0002\u1f33\u1f34\u00077\u0002\u0002\u1f34\u1f35", + "\u00072\u0002\u0002\u1f35\u050a\u0003\u0002\u0002\u0002\u1f36\u1f37", + "\u0007E\u0002\u0002\u1f37\u1f38\u0007R\u0002\u0002\u1f38\u1f39\u0007", + ":\u0002\u0002\u1f39\u1f3a\u00077\u0002\u0002\u1f3a\u1f3b\u00074\u0002", + "\u0002\u1f3b\u050c\u0003\u0002\u0002\u0002\u1f3c\u1f3d\u0007E\u0002", + "\u0002\u1f3d\u1f3e\u0007R\u0002\u0002\u1f3e\u1f3f\u0007:\u0002\u0002", + "\u1f3f\u1f40\u00078\u0002\u0002\u1f40\u1f41\u00078\u0002\u0002\u1f41", + "\u050e\u0003\u0002\u0002\u0002\u1f42\u1f43\u0007E\u0002\u0002\u1f43", + "\u1f44\u0007R\u0002\u0002\u1f44\u1f45\u0007;\u0002\u0002\u1f45\u1f46", + "\u00075\u0002\u0002\u1f46\u1f47\u00074\u0002\u0002\u1f47\u0510\u0003", + "\u0002\u0002\u0002\u1f48\u1f49\u0007F\u0002\u0002\u1f49\u1f4a\u0007", + "G\u0002\u0002\u1f4a\u1f4b\u0007E\u0002\u0002\u1f4b\u1f4c\u0007:\u0002", + "\u0002\u1f4c\u0512\u0003\u0002\u0002\u0002\u1f4d\u1f4e\u0007G\u0002", + "\u0002\u1f4e\u1f4f\u0007W\u0002\u0002\u1f4f\u1f50\u0007E\u0002\u0002", + "\u1f50\u1f51\u0007L\u0002\u0002\u1f51\u1f52\u0007R\u0002\u0002\u1f52", + "\u1f53\u0007O\u0002\u0002\u1f53\u1f54\u0007U\u0002\u0002\u1f54\u0514", + "\u0003\u0002\u0002\u0002\u1f55\u1f56\u0007G\u0002\u0002\u1f56\u1f57", + "\u0007W\u0002\u0002\u1f57\u1f58\u0007E\u0002\u0002\u1f58\u1f59\u0007", + "M\u0002\u0002\u1f59\u1f5a\u0007T\u0002\u0002\u1f5a\u0516\u0003\u0002", + "\u0002\u0002\u1f5b\u1f5c\u0007I\u0002\u0002\u1f5c\u1f5d\u0007D\u0002", + "\u0002\u1f5d\u1f5e\u00074\u0002\u0002\u1f5e\u1f5f\u00075\u0002\u0002", + "\u1f5f\u1f60\u00073\u0002\u0002\u1f60\u1f61\u00074\u0002\u0002\u1f61", + "\u0518\u0003\u0002\u0002\u0002\u1f62\u1f63\u0007I\u0002\u0002\u1f63", + "\u1f64\u0007D\u0002\u0002\u1f64\u1f65\u0007M\u0002\u0002\u1f65\u051a", + "\u0003\u0002\u0002\u0002\u1f66\u1f67\u0007I\u0002\u0002\u1f67\u1f68", + "\u0007G\u0002\u0002\u1f68\u1f69\u0007Q\u0002\u0002\u1f69\u1f6a\u0007", + "U\u0002\u0002\u1f6a\u1f6b\u0007V\u0002\u0002\u1f6b\u1f6c\u0007F\u0002", + "\u0002\u1f6c\u1f6d\u0007:\u0002\u0002\u1f6d\u051c\u0003\u0002\u0002", + "\u0002\u1f6e\u1f6f\u0007I\u0002\u0002\u1f6f\u1f70\u0007T\u0002\u0002", + "\u1f70\u1f71\u0007G\u0002\u0002\u1f71\u1f72\u0007G\u0002\u0002\u1f72", + "\u1f73\u0007M\u0002\u0002\u1f73\u051e\u0003\u0002\u0002\u0002\u1f74", + "\u1f75\u0007J\u0002\u0002\u1f75\u1f76\u0007G\u0002\u0002\u1f76\u1f77", + "\u0007D\u0002\u0002\u1f77\u1f78\u0007T\u0002\u0002\u1f78\u1f79\u0007", + "G\u0002\u0002\u1f79\u1f7a\u0007Y\u0002\u0002\u1f7a\u0520\u0003\u0002", + "\u0002\u0002\u1f7b\u1f7c\u0007J\u0002\u0002\u1f7c\u1f7d\u0007R\u0002", + "\u0002\u1f7d\u1f7e\u0007:\u0002\u0002\u1f7e\u0522\u0003\u0002\u0002", + "\u0002\u1f7f\u1f80\u0007M\u0002\u0002\u1f80\u1f81\u0007G\u0002\u0002", + "\u1f81\u1f82\u0007[\u0002\u0002\u1f82\u1f83\u0007D\u0002\u0002\u1f83", + "\u1f84\u0007E\u0002\u0002\u1f84\u1f85\u0007U\u0002\u0002\u1f85\u1f86", + "\u00074\u0002\u0002\u1f86\u0524\u0003\u0002\u0002\u0002\u1f87\u1f88", + "\u0007M\u0002\u0002\u1f88\u1f89\u0007Q\u0002\u0002\u1f89\u1f8a\u0007", + "K\u0002\u0002\u1f8a\u1f8b\u0007:\u0002\u0002\u1f8b\u1f8c\u0007T\u0002", + "\u0002\u1f8c\u0526\u0003\u0002\u0002\u0002\u1f8d\u1f8e\u0007M\u0002", + "\u0002\u1f8e\u1f8f\u0007Q\u0002\u0002\u1f8f\u1f90\u0007K\u0002\u0002", + "\u1f90\u1f91\u0007:\u0002\u0002\u1f91\u1f92\u0007W\u0002\u0002\u1f92", + "\u0528\u0003\u0002\u0002\u0002\u1f93\u1f94\u0007N\u0002\u0002\u1f94", + "\u1f95\u0007C\u0002\u0002\u1f95\u1f96\u0007V\u0002\u0002\u1f96\u1f97", + "\u0007K\u0002\u0002\u1f97\u1f98\u0007P\u0002\u0002\u1f98\u1f99\u0007", + "3\u0002\u0002\u1f99\u052a\u0003\u0002\u0002\u0002\u1f9a\u1f9b\u0007", + "N\u0002\u0002\u1f9b\u1f9c\u0007C\u0002\u0002\u1f9c\u1f9d\u0007V\u0002", + "\u0002\u1f9d\u1f9e\u0007K\u0002\u0002\u1f9e\u1f9f\u0007P\u0002\u0002", + "\u1f9f\u1fa0\u00074\u0002\u0002\u1fa0\u052c\u0003\u0002\u0002\u0002", + "\u1fa1\u1fa2\u0007N\u0002\u0002\u1fa2\u1fa3\u0007C\u0002\u0002\u1fa3", + "\u1fa4\u0007V\u0002\u0002\u1fa4\u1fa5\u0007K\u0002\u0002\u1fa5\u1fa6", + "\u0007P\u0002\u0002\u1fa6\u1fa7\u00077\u0002\u0002\u1fa7\u052e\u0003", + "\u0002\u0002\u0002\u1fa8\u1fa9\u0007N\u0002\u0002\u1fa9\u1faa\u0007", + "C\u0002\u0002\u1faa\u1fab\u0007V\u0002\u0002\u1fab\u1fac\u0007K\u0002", + "\u0002\u1fac\u1fad\u0007P\u0002\u0002\u1fad\u1fae\u00079\u0002\u0002", + "\u1fae\u0530\u0003\u0002\u0002\u0002\u1faf\u1fb0\u0007O\u0002\u0002", + "\u1fb0\u1fb1\u0007C\u0002\u0002\u1fb1\u1fb2\u0007E\u0002\u0002\u1fb2", + "\u1fb3\u0007E\u0002\u0002\u1fb3\u1fb4\u0007G\u0002\u0002\u1fb4\u0532", + "\u0003\u0002\u0002\u0002\u1fb5\u1fb6\u0007O\u0002\u0002\u1fb6\u1fb7", + "\u0007C\u0002\u0002\u1fb7\u1fb8\u0007E\u0002\u0002\u1fb8\u1fb9\u0007", + "T\u0002\u0002\u1fb9\u1fba\u0007Q\u0002\u0002\u1fba\u1fbb\u0007O\u0002", + "\u0002\u1fbb\u1fbc\u0007C\u0002\u0002\u1fbc\u1fbd\u0007P\u0002\u0002", + "\u1fbd\u0534\u0003\u0002\u0002\u0002\u1fbe\u1fbf\u0007U\u0002\u0002", + "\u1fbf\u1fc0\u0007L\u0002\u0002\u1fc0\u1fc1\u0007K\u0002\u0002\u1fc1", + "\u1fc2\u0007U\u0002\u0002\u1fc2\u0536\u0003\u0002\u0002\u0002\u1fc3", + "\u1fc4\u0007U\u0002\u0002\u1fc4\u1fc5\u0007Y\u0002\u0002\u1fc5\u1fc6", + "\u0007G\u0002\u0002\u1fc6\u1fc7\u00079\u0002\u0002\u1fc7\u0538\u0003", + "\u0002\u0002\u0002\u1fc8\u1fc9\u0007V\u0002\u0002\u1fc9\u1fca\u0007", + "K\u0002\u0002\u1fca\u1fcb\u0007U\u0002\u0002\u1fcb\u1fcc\u00078\u0002", + "\u0002\u1fcc\u1fcd\u00074\u0002\u0002\u1fcd\u1fce\u00072\u0002\u0002", + "\u1fce\u053a\u0003\u0002\u0002\u0002\u1fcf\u1fd0\u0007W\u0002\u0002", + "\u1fd0\u1fd1\u0007E\u0002\u0002\u1fd1\u1fd2\u0007U\u0002\u0002\u1fd2", + "\u1fd3\u00074\u0002\u0002\u1fd3\u053c\u0003\u0002\u0002\u0002\u1fd4", + "\u1fd5\u0007W\u0002\u0002\u1fd5\u1fd6\u0007L\u0002\u0002\u1fd6\u1fd7", + "\u0007K\u0002\u0002\u1fd7\u1fd8\u0007U\u0002\u0002\u1fd8\u053e\u0003", + "\u0002\u0002\u0002\u1fd9\u1fda\u0007W\u0002\u0002\u1fda\u1fdb\u0007", + "V\u0002\u0002\u1fdb\u1fdc\u0007H\u0002\u0002\u1fdc\u1fdd\u00073\u0002", + "\u0002\u1fdd\u1fde\u00078\u0002\u0002\u1fde\u0540\u0003\u0002\u0002", + "\u0002\u1fdf\u1fe0\u0007W\u0002\u0002\u1fe0\u1fe1\u0007V\u0002\u0002", + "\u1fe1\u1fe2\u0007H\u0002\u0002\u1fe2\u1fe3\u00073\u0002\u0002\u1fe3", + "\u1fe4\u00078\u0002\u0002\u1fe4\u1fe5\u0007N\u0002\u0002\u1fe5\u1fe6", + "\u0007G\u0002\u0002\u1fe6\u0542\u0003\u0002\u0002\u0002\u1fe7\u1fe8", + "\u0007W\u0002\u0002\u1fe8\u1fe9\u0007V\u0002\u0002\u1fe9\u1fea\u0007", + "H\u0002\u0002\u1fea\u1feb\u00075\u0002\u0002\u1feb\u1fec\u00074\u0002", + "\u0002\u1fec\u0544\u0003\u0002\u0002\u0002\u1fed\u1fee\u0007W\u0002", + "\u0002\u1fee\u1fef\u0007V\u0002\u0002\u1fef\u1ff0\u0007H\u0002\u0002", + "\u1ff0\u1ff1\u0007:\u0002\u0002\u1ff1\u0546\u0003\u0002\u0002\u0002", + "\u1ff2\u1ff3\u0007W\u0002\u0002\u1ff3\u1ff4\u0007V\u0002\u0002\u1ff4", + "\u1ff5\u0007H\u0002\u0002\u1ff5\u1ff6\u0007:\u0002\u0002\u1ff6\u1ff7", + "\u0007O\u0002\u0002\u1ff7\u1ff8\u0007D\u0002\u0002\u1ff8\u1ff9\u0007", + "5\u0002\u0002\u1ff9\u0548\u0003\u0002\u0002\u0002\u1ffa\u1ffb\u0007", + "W\u0002\u0002\u1ffb\u1ffc\u0007V\u0002\u0002\u1ffc\u1ffd\u0007H\u0002", + "\u0002\u1ffd\u1ffe\u0007:\u0002\u0002\u1ffe\u1fff\u0007O\u0002\u0002", + "\u1fff\u2000\u0007D\u0002\u0002\u2000\u2001\u00076\u0002\u0002\u2001", + "\u054a\u0003\u0002\u0002\u0002\u2002\u2003\u0007C\u0002\u0002\u2003", + "\u2004\u0007T\u0002\u0002\u2004\u2005\u0007E\u0002\u0002\u2005\u2006", + "\u0007J\u0002\u0002\u2006\u2007\u0007K\u0002\u0002\u2007\u2008\u0007", + "X\u0002\u0002\u2008\u2009\u0007G\u0002\u0002\u2009\u054c\u0003\u0002", + "\u0002\u0002\u200a\u200b\u0007D\u0002\u0002\u200b\u200c\u0007N\u0002", + "\u0002\u200c\u200d\u0007C\u0002\u0002\u200d\u200e\u0007E\u0002\u0002", + "\u200e\u200f\u0007M\u0002\u0002\u200f\u2010\u0007J\u0002\u0002\u2010", + "\u2011\u0007Q\u0002\u0002\u2011\u2012\u0007N\u0002\u0002\u2012\u2013", + "\u0007G\u0002\u0002\u2013\u054e\u0003\u0002\u0002\u0002\u2014\u2015", + "\u0007E\u0002\u0002\u2015\u2016\u0007U\u0002\u0002\u2016\u2017\u0007", + "X\u0002\u0002\u2017\u0550\u0003\u0002\u0002\u0002\u2018\u2019\u0007", + "H\u0002\u0002\u2019\u201a\u0007G\u0002\u0002\u201a\u201b\u0007F\u0002", + "\u0002\u201b\u201c\u0007G\u0002\u0002\u201c\u201d\u0007T\u0002\u0002", + "\u201d\u201e\u0007C\u0002\u0002\u201e\u201f\u0007V\u0002\u0002\u201f", + "\u2020\u0007G\u0002\u0002\u2020\u2021\u0007F\u0002\u0002\u2021\u0552", + "\u0003\u0002\u0002\u0002\u2022\u2023\u0007K\u0002\u0002\u2023\u2024", + "\u0007P\u0002\u0002\u2024\u2025\u0007P\u0002\u0002\u2025\u2026\u0007", + "Q\u0002\u0002\u2026\u2027\u0007F\u0002\u0002\u2027\u2028\u0007D\u0002", + "\u0002\u2028\u0554\u0003\u0002\u0002\u0002\u2029\u202a\u0007O\u0002", + "\u0002\u202a\u202b\u0007G\u0002\u0002\u202b\u202c\u0007O\u0002\u0002", + "\u202c\u202d\u0007Q\u0002\u0002\u202d\u202e\u0007T\u0002\u0002\u202e", + "\u202f\u0007[\u0002\u0002\u202f\u0556\u0003\u0002\u0002\u0002\u2030", + "\u2031\u0007O\u0002\u0002\u2031\u2032\u0007T\u0002\u0002\u2032\u2033", + "\u0007I\u0002\u0002\u2033\u2034\u0007a\u0002\u0002\u2034\u2035\u0007", + "O\u0002\u0002\u2035\u2036\u0007[\u0002\u0002\u2036\u2037\u0007K\u0002", + "\u0002\u2037\u2038\u0007U\u0002\u0002\u2038\u2039\u0007C\u0002\u0002", + "\u2039\u203a\u0007O\u0002\u0002\u203a\u0558\u0003\u0002\u0002\u0002", + "\u203b\u203c\u0007O\u0002\u0002\u203c\u203d\u0007[\u0002\u0002\u203d", + "\u203e\u0007K\u0002\u0002\u203e\u203f\u0007U\u0002\u0002\u203f\u2040", + "\u0007C\u0002\u0002\u2040\u2041\u0007O\u0002\u0002\u2041\u055a\u0003", + "\u0002\u0002\u0002\u2042\u2043\u0007P\u0002\u0002\u2043\u2044\u0007", + "F\u0002\u0002\u2044\u2045\u0007D\u0002\u0002\u2045\u055c\u0003\u0002", + "\u0002\u0002\u2046\u2047\u0007P\u0002\u0002\u2047\u2048\u0007F\u0002", + "\u0002\u2048\u2049\u0007D\u0002\u0002\u2049\u204a\u0007E\u0002\u0002", + "\u204a\u204b\u0007N\u0002\u0002\u204b\u204c\u0007W\u0002\u0002\u204c", + "\u204d\u0007U\u0002\u0002\u204d\u204e\u0007V\u0002\u0002\u204e\u204f", + "\u0007G\u0002\u0002\u204f\u2050\u0007T\u0002\u0002\u2050\u055e\u0003", + "\u0002\u0002\u0002\u2051\u2052\u0007R\u0002\u0002\u2052\u2053\u0007", + "G\u0002\u0002\u2053\u2054\u0007T\u0002\u0002\u2054\u2055\u0007H\u0002", + "\u0002\u2055\u2056\u0007Q\u0002\u0002\u2056\u2057\u0007T\u0002\u0002", + "\u2057\u2058\u0007O\u0002\u0002\u2058\u2059\u0007C\u0002\u0002\u2059", + "\u205a\u0007P\u0002\u0002\u205a\u205b\u0007E\u0002\u0002\u205b\u205c", + "\u0007G\u0002\u0002\u205c\u205d\u0007a\u0002\u0002\u205d\u205e\u0007", + "U\u0002\u0002\u205e\u205f\u0007E\u0002\u0002\u205f\u2060\u0007J\u0002", + "\u0002\u2060\u2061\u0007G\u0002\u0002\u2061\u2062\u0007O\u0002\u0002", + "\u2062\u2063\u0007C\u0002\u0002\u2063\u0560\u0003\u0002\u0002\u0002", + "\u2064\u2065\u0007V\u0002\u0002\u2065\u2066\u0007Q\u0002\u0002\u2066", + "\u2067\u0007M\u0002\u0002\u2067\u2068\u0007W\u0002\u0002\u2068\u2069", + "\u0007F\u0002\u0002\u2069\u206a\u0007D\u0002\u0002\u206a\u0562\u0003", + "\u0002\u0002\u0002\u206b\u206c\u0007T\u0002\u0002\u206c\u206d\u0007", + "G\u0002\u0002\u206d\u206e\u0007R\u0002\u0002\u206e\u206f\u0007G\u0002", + "\u0002\u206f\u2070\u0007C\u0002\u0002\u2070\u2071\u0007V\u0002\u0002", + "\u2071\u2072\u0007C\u0002\u0002\u2072\u2073\u0007D\u0002\u0002\u2073", + "\u2074\u0007N\u0002\u0002\u2074\u2075\u0007G\u0002\u0002\u2075\u0564", + "\u0003\u0002\u0002\u0002\u2076\u2077\u0007E\u0002\u0002\u2077\u2078", + "\u0007Q\u0002\u0002\u2078\u2079\u0007O\u0002\u0002\u2079\u207a\u0007", + "O\u0002\u0002\u207a\u207b\u0007K\u0002\u0002\u207b\u207c\u0007V\u0002", + "\u0002\u207c\u207d\u0007V\u0002\u0002\u207d\u207e\u0007G\u0002\u0002", + "\u207e\u207f\u0007F\u0002\u0002\u207f\u0566\u0003\u0002\u0002\u0002", + "\u2080\u2081\u0007W\u0002\u0002\u2081\u2082\u0007P\u0002\u0002\u2082", + "\u2083\u0007E\u0002\u0002\u2083\u2084\u0007Q\u0002\u0002\u2084\u2085", + "\u0007O\u0002\u0002\u2085\u2086\u0007O\u0002\u0002\u2086\u2087\u0007", + "K\u0002\u0002\u2087\u2088\u0007V\u0002\u0002\u2088\u2089\u0007V\u0002", + "\u0002\u2089\u208a\u0007G\u0002\u0002\u208a\u208b\u0007F\u0002\u0002", + "\u208b\u0568\u0003\u0002\u0002\u0002\u208c\u208d\u0007U\u0002\u0002", + "\u208d\u208e\u0007G\u0002\u0002\u208e\u208f\u0007T\u0002\u0002\u208f", + "\u2090\u0007K\u0002\u0002\u2090\u2091\u0007C\u0002\u0002\u2091\u2092", + "\u0007N\u0002\u0002\u2092\u2093\u0007K\u0002\u0002\u2093\u2094\u0007", + "\\\u0002\u0002\u2094\u2095\u0007C\u0002\u0002\u2095\u2096\u0007D\u0002", + "\u0002\u2096\u2097\u0007N\u0002\u0002\u2097\u2098\u0007G\u0002\u0002", + "\u2098\u056a\u0003\u0002\u0002\u0002\u2099\u209a\u0007I\u0002\u0002", + "\u209a\u209b\u0007G\u0002\u0002\u209b\u209c\u0007Q\u0002\u0002\u209c", + "\u209d\u0007O\u0002\u0002\u209d\u209e\u0007G\u0002\u0002\u209e\u209f", + "\u0007V\u0002\u0002\u209f\u20a0\u0007T\u0002\u0002\u20a0\u20a1\u0007", + "[\u0002\u0002\u20a1\u20a2\u0007E\u0002\u0002\u20a2\u20a3\u0007Q\u0002", + "\u0002\u20a3\u20a4\u0007N\u0002\u0002\u20a4\u20a5\u0007N\u0002\u0002", + "\u20a5\u20a6\u0007G\u0002\u0002\u20a6\u20a7\u0007E\u0002\u0002\u20a7", + "\u20a8\u0007V\u0002\u0002\u20a8\u20a9\u0007K\u0002\u0002\u20a9\u20aa", + "\u0007Q\u0002\u0002\u20aa\u20ab\u0007P\u0002\u0002\u20ab\u056c\u0003", + "\u0002\u0002\u0002\u20ac\u20ad\u0007I\u0002\u0002\u20ad\u20ae\u0007", + "G\u0002\u0002\u20ae\u20af\u0007Q\u0002\u0002\u20af\u20b0\u0007O\u0002", + "\u0002\u20b0\u20b1\u0007E\u0002\u0002\u20b1\u20b2\u0007Q\u0002\u0002", + "\u20b2\u20b3\u0007N\u0002\u0002\u20b3\u20b4\u0007N\u0002\u0002\u20b4", + "\u20b5\u0007G\u0002\u0002\u20b5\u20b6\u0007E\u0002\u0002\u20b6\u20b7", + "\u0007V\u0002\u0002\u20b7\u20b8\u0007K\u0002\u0002\u20b8\u20b9\u0007", + "Q\u0002\u0002\u20b9\u20ba\u0007P\u0002\u0002\u20ba\u056e\u0003\u0002", + "\u0002\u0002\u20bb\u20bc\u0007I\u0002\u0002\u20bc\u20bd\u0007G\u0002", + "\u0002\u20bd\u20be\u0007Q\u0002\u0002\u20be\u20bf\u0007O\u0002\u0002", + "\u20bf\u20c0\u0007G\u0002\u0002\u20c0\u20c1\u0007V\u0002\u0002\u20c1", + "\u20c2\u0007T\u0002\u0002\u20c2\u20c3\u0007[\u0002\u0002\u20c3\u0570", + "\u0003\u0002\u0002\u0002\u20c4\u20c5\u0007N\u0002\u0002\u20c5\u20c6", + "\u0007K\u0002\u0002\u20c6\u20c7\u0007P\u0002\u0002\u20c7\u20c8\u0007", + "G\u0002\u0002\u20c8\u20c9\u0007U\u0002\u0002\u20c9\u20ca\u0007V\u0002", + "\u0002\u20ca\u20cb\u0007T\u0002\u0002\u20cb\u20cc\u0007K\u0002\u0002", + "\u20cc\u20cd\u0007P\u0002\u0002\u20cd\u20ce\u0007I\u0002\u0002\u20ce", + "\u0572\u0003\u0002\u0002\u0002\u20cf\u20d0\u0007O\u0002\u0002\u20d0", + "\u20d1\u0007W\u0002\u0002\u20d1\u20d2\u0007N\u0002\u0002\u20d2\u20d3", + "\u0007V\u0002\u0002\u20d3\u20d4\u0007K\u0002\u0002\u20d4\u20d5\u0007", + "N\u0002\u0002\u20d5\u20d6\u0007K\u0002\u0002\u20d6\u20d7\u0007P\u0002", + "\u0002\u20d7\u20d8\u0007G\u0002\u0002\u20d8\u20d9\u0007U\u0002\u0002", + "\u20d9\u20da\u0007V\u0002\u0002\u20da\u20db\u0007T\u0002\u0002\u20db", + "\u20dc\u0007K\u0002\u0002\u20dc\u20dd\u0007P\u0002\u0002\u20dd\u20de", + "\u0007I\u0002\u0002\u20de\u0574\u0003\u0002\u0002\u0002\u20df\u20e0", + "\u0007O\u0002\u0002\u20e0\u20e1\u0007W\u0002\u0002\u20e1\u20e2\u0007", + "N\u0002\u0002\u20e2\u20e3\u0007V\u0002\u0002\u20e3\u20e4\u0007K\u0002", + "\u0002\u20e4\u20e5\u0007R\u0002\u0002\u20e5\u20e6\u0007Q\u0002\u0002", + "\u20e6\u20e7\u0007K\u0002\u0002\u20e7\u20e8\u0007P\u0002\u0002\u20e8", + "\u20e9\u0007V\u0002\u0002\u20e9\u0576\u0003\u0002\u0002\u0002\u20ea", + "\u20eb\u0007O\u0002\u0002\u20eb\u20ec\u0007W\u0002\u0002\u20ec\u20ed", + "\u0007N\u0002\u0002\u20ed\u20ee\u0007V\u0002\u0002\u20ee\u20ef\u0007", + "K\u0002\u0002\u20ef\u20f0\u0007R\u0002\u0002\u20f0\u20f1\u0007Q\u0002", + "\u0002\u20f1\u20f2\u0007N\u0002\u0002\u20f2\u20f3\u0007[\u0002\u0002", + "\u20f3\u20f4\u0007I\u0002\u0002\u20f4\u20f5\u0007Q\u0002\u0002\u20f5", + "\u20f6\u0007P\u0002\u0002\u20f6\u0578\u0003\u0002\u0002\u0002\u20f7", + "\u20f8\u0007R\u0002\u0002\u20f8\u20f9\u0007Q\u0002\u0002\u20f9\u20fa", + "\u0007K\u0002\u0002\u20fa\u20fb\u0007P\u0002\u0002\u20fb\u20fc\u0007", + "V\u0002\u0002\u20fc\u057a\u0003\u0002\u0002\u0002\u20fd\u20fe\u0007", + "R\u0002\u0002\u20fe\u20ff\u0007Q\u0002\u0002\u20ff\u2100\u0007N\u0002", + "\u0002\u2100\u2101\u0007[\u0002\u0002\u2101\u2102\u0007I\u0002\u0002", + "\u2102\u2103\u0007Q\u0002\u0002\u2103\u2104\u0007P\u0002\u0002\u2104", + "\u057c\u0003\u0002\u0002\u0002\u2105\u2106\u0007C\u0002\u0002\u2106", + "\u2107\u0007D\u0002\u0002\u2107\u2108\u0007U\u0002\u0002\u2108\u057e", + "\u0003\u0002\u0002\u0002\u2109\u210a\u0007C\u0002\u0002\u210a\u210b", + "\u0007E\u0002\u0002\u210b\u210c\u0007Q\u0002\u0002\u210c\u210d\u0007", + "U\u0002\u0002\u210d\u0580\u0003\u0002\u0002\u0002\u210e\u210f\u0007", + "C\u0002\u0002\u210f\u2110\u0007F\u0002\u0002\u2110\u2111\u0007F\u0002", + "\u0002\u2111\u2112\u0007F\u0002\u0002\u2112\u2113\u0007C\u0002\u0002", + "\u2113\u2114\u0007V\u0002\u0002\u2114\u2115\u0007G\u0002\u0002\u2115", + "\u0582\u0003\u0002\u0002\u0002\u2116\u2117\u0007C\u0002\u0002\u2117", + "\u2118\u0007F\u0002\u0002\u2118\u2119\u0007F\u0002\u0002\u2119\u211a", + "\u0007V\u0002\u0002\u211a\u211b\u0007K\u0002\u0002\u211b\u211c\u0007", + "O\u0002\u0002\u211c\u211d\u0007G\u0002\u0002\u211d\u0584\u0003\u0002", + "\u0002\u0002\u211e\u211f\u0007C\u0002\u0002\u211f\u2120\u0007G\u0002", + "\u0002\u2120\u2121\u0007U\u0002\u0002\u2121\u2122\u0007a\u0002\u0002", + "\u2122\u2123\u0007F\u0002\u0002\u2123\u2124\u0007G\u0002\u0002\u2124", + "\u2125\u0007E\u0002\u0002\u2125\u2126\u0007T\u0002\u0002\u2126\u2127", + "\u0007[\u0002\u0002\u2127\u2128\u0007R\u0002\u0002\u2128\u2129\u0007", + "V\u0002\u0002\u2129\u0586\u0003\u0002\u0002\u0002\u212a\u212b\u0007", + "C\u0002\u0002\u212b\u212c\u0007G\u0002\u0002\u212c\u212d\u0007U\u0002", + "\u0002\u212d\u212e\u0007a\u0002\u0002\u212e\u212f\u0007G\u0002\u0002", + "\u212f\u2130\u0007P\u0002\u0002\u2130\u2131\u0007E\u0002\u0002\u2131", + "\u2132\u0007T\u0002\u0002\u2132\u2133\u0007[\u0002\u0002\u2133\u2134", + "\u0007R\u0002\u0002\u2134\u2135\u0007V\u0002\u0002\u2135\u0588\u0003", + "\u0002\u0002\u0002\u2136\u2137\u0007C\u0002\u0002\u2137\u2138\u0007", + "T\u0002\u0002\u2138\u2139\u0007G\u0002\u0002\u2139\u213a\u0007C\u0002", + "\u0002\u213a\u058a\u0003\u0002\u0002\u0002\u213b\u213c\u0007C\u0002", + "\u0002\u213c\u213d\u0007U\u0002\u0002\u213d\u213e\u0007D\u0002\u0002", + "\u213e\u213f\u0007K\u0002\u0002\u213f\u2140\u0007P\u0002\u0002\u2140", + "\u2141\u0007C\u0002\u0002\u2141\u2142\u0007T\u0002\u0002\u2142\u2143", + "\u0007[\u0002\u0002\u2143\u058c\u0003\u0002\u0002\u0002\u2144\u2145", + "\u0007C\u0002\u0002\u2145\u2146\u0007U\u0002\u0002\u2146\u2147\u0007", + "K\u0002\u0002\u2147\u2148\u0007P\u0002\u0002\u2148\u058e\u0003\u0002", + "\u0002\u0002\u2149\u214a\u0007C\u0002\u0002\u214a\u214b\u0007U\u0002", + "\u0002\u214b\u214c\u0007V\u0002\u0002\u214c\u214d\u0007G\u0002\u0002", + "\u214d\u214e\u0007Z\u0002\u0002\u214e\u214f\u0007V\u0002\u0002\u214f", + "\u0590\u0003\u0002\u0002\u0002\u2150\u2151\u0007C\u0002\u0002\u2151", + "\u2152\u0007U\u0002\u0002\u2152\u2153\u0007Y\u0002\u0002\u2153\u2154", + "\u0007M\u0002\u0002\u2154\u2155\u0007D\u0002\u0002\u2155\u0592\u0003", + "\u0002\u0002\u0002\u2156\u2157\u0007C\u0002\u0002\u2157\u2158\u0007", + "U\u0002\u0002\u2158\u2159\u0007Y\u0002\u0002\u2159\u215a\u0007M\u0002", + "\u0002\u215a\u215b\u0007V\u0002\u0002\u215b\u0594\u0003\u0002\u0002", + "\u0002\u215c\u215d\u0007C\u0002\u0002\u215d\u215e\u0007U\u0002\u0002", + "\u215e\u215f\u0007[\u0002\u0002\u215f\u2160\u0007O\u0002\u0002\u2160", + "\u2161\u0007O\u0002\u0002\u2161\u2162\u0007G\u0002\u0002\u2162\u2163", + "\u0007V\u0002\u0002\u2163\u2164\u0007T\u0002\u0002\u2164\u2165\u0007", + "K\u0002\u0002\u2165\u2166\u0007E\u0002\u0002\u2166\u2167\u0007a\u0002", + "\u0002\u2167\u2168\u0007F\u0002\u0002\u2168\u2169\u0007G\u0002\u0002", + "\u2169\u216a\u0007E\u0002\u0002\u216a\u216b\u0007T\u0002\u0002\u216b", + "\u216c\u0007[\u0002\u0002\u216c\u216d\u0007R\u0002\u0002\u216d\u216e", + "\u0007V\u0002\u0002\u216e\u0596\u0003\u0002\u0002\u0002\u216f\u2170", + "\u0007C\u0002\u0002\u2170\u2171\u0007U\u0002\u0002\u2171\u2172\u0007", + "[\u0002\u0002\u2172\u2173\u0007O\u0002\u0002\u2173\u2174\u0007O\u0002", + "\u0002\u2174\u2175\u0007G\u0002\u0002\u2175\u2176\u0007V\u0002\u0002", + "\u2176\u2177\u0007T\u0002\u0002\u2177\u2178\u0007K\u0002\u0002\u2178", + "\u2179\u0007E\u0002\u0002\u2179\u217a\u0007a\u0002\u0002\u217a\u217b", + "\u0007F\u0002\u0002\u217b\u217c\u0007G\u0002\u0002\u217c\u217d\u0007", + "T\u0002\u0002\u217d\u217e\u0007K\u0002\u0002\u217e\u217f\u0007X\u0002", + "\u0002\u217f\u2180\u0007G\u0002\u0002\u2180\u0598\u0003\u0002\u0002", + "\u0002\u2181\u2182\u0007C\u0002\u0002\u2182\u2183\u0007U\u0002\u0002", + "\u2183\u2184\u0007[\u0002\u0002\u2184\u2185\u0007O\u0002\u0002\u2185", + "\u2186\u0007O\u0002\u0002\u2186\u2187\u0007G\u0002\u0002\u2187\u2188", + "\u0007V\u0002\u0002\u2188\u2189\u0007T\u0002\u0002\u2189\u218a\u0007", + "K\u0002\u0002\u218a\u218b\u0007E\u0002\u0002\u218b\u218c\u0007a\u0002", + "\u0002\u218c\u218d\u0007G\u0002\u0002\u218d\u218e\u0007P\u0002\u0002", + "\u218e\u218f\u0007E\u0002\u0002\u218f\u2190\u0007T\u0002\u0002\u2190", + "\u2191\u0007[\u0002\u0002\u2191\u2192\u0007R\u0002\u0002\u2192\u2193", + "\u0007V\u0002\u0002\u2193\u059a\u0003\u0002\u0002\u0002\u2194\u2195", + "\u0007C\u0002\u0002\u2195\u2196\u0007U\u0002\u0002\u2196\u2197\u0007", + "[\u0002\u0002\u2197\u2198\u0007O\u0002\u0002\u2198\u2199\u0007O\u0002", + "\u0002\u2199\u219a\u0007G\u0002\u0002\u219a\u219b\u0007V\u0002\u0002", + "\u219b\u219c\u0007T\u0002\u0002\u219c\u219d\u0007K\u0002\u0002\u219d", + "\u219e\u0007E\u0002\u0002\u219e\u219f\u0007a\u0002\u0002\u219f\u21a0", + "\u0007U\u0002\u0002\u21a0\u21a1\u0007K\u0002\u0002\u21a1\u21a2\u0007", + "I\u0002\u0002\u21a2\u21a3\u0007P\u0002\u0002\u21a3\u059c\u0003\u0002", + "\u0002\u0002\u21a4\u21a5\u0007C\u0002\u0002\u21a5\u21a6\u0007U\u0002", + "\u0002\u21a6\u21a7\u0007[\u0002\u0002\u21a7\u21a8\u0007O\u0002\u0002", + "\u21a8\u21a9\u0007O\u0002\u0002\u21a9\u21aa\u0007G\u0002\u0002\u21aa", + "\u21ab\u0007V\u0002\u0002\u21ab\u21ac\u0007T\u0002\u0002\u21ac\u21ad", + "\u0007K\u0002\u0002\u21ad\u21ae\u0007E\u0002\u0002\u21ae\u21af\u0007", + "a\u0002\u0002\u21af\u21b0\u0007X\u0002\u0002\u21b0\u21b1\u0007G\u0002", + "\u0002\u21b1\u21b2\u0007T\u0002\u0002\u21b2\u21b3\u0007K\u0002\u0002", + "\u21b3\u21b4\u0007H\u0002\u0002\u21b4\u21b5\u0007[\u0002\u0002\u21b5", + "\u059e\u0003\u0002\u0002\u0002\u21b6\u21b7\u0007C\u0002\u0002\u21b7", + "\u21b8\u0007V\u0002\u0002\u21b8\u21b9\u0007C\u0002\u0002\u21b9\u21ba", + "\u0007P\u0002\u0002\u21ba\u05a0\u0003\u0002\u0002\u0002\u21bb\u21bc", + "\u0007C\u0002\u0002\u21bc\u21bd\u0007V\u0002\u0002\u21bd\u21be\u0007", + "C\u0002\u0002\u21be\u21bf\u0007P\u0002\u0002\u21bf\u21c0\u00074\u0002", + "\u0002\u21c0\u05a2\u0003\u0002\u0002\u0002\u21c1\u21c2\u0007D\u0002", + "\u0002\u21c2\u21c3\u0007G\u0002\u0002\u21c3\u21c4\u0007P\u0002\u0002", + "\u21c4\u21c5\u0007E\u0002\u0002\u21c5\u21c6\u0007J\u0002\u0002\u21c6", + "\u21c7\u0007O\u0002\u0002\u21c7\u21c8\u0007C\u0002\u0002\u21c8\u21c9", + "\u0007T\u0002\u0002\u21c9\u21ca\u0007M\u0002\u0002\u21ca\u05a4\u0003", + "\u0002\u0002\u0002\u21cb\u21cc\u0007D\u0002\u0002\u21cc\u21cd\u0007", + "K\u0002\u0002\u21cd\u21ce\u0007P\u0002\u0002\u21ce\u05a6\u0003\u0002", + "\u0002\u0002\u21cf\u21d0\u0007D\u0002\u0002\u21d0\u21d1\u0007K\u0002", + "\u0002\u21d1\u21d2\u0007V\u0002\u0002\u21d2\u21d3\u0007a\u0002\u0002", + "\u21d3\u21d4\u0007E\u0002\u0002\u21d4\u21d5\u0007Q\u0002\u0002\u21d5", + "\u21d6\u0007W\u0002\u0002\u21d6\u21d7\u0007P\u0002\u0002\u21d7\u21d8", + "\u0007V\u0002\u0002\u21d8\u05a8\u0003\u0002\u0002\u0002\u21d9\u21da", + "\u0007D\u0002\u0002\u21da\u21db\u0007K\u0002\u0002\u21db\u21dc\u0007", + "V\u0002\u0002\u21dc\u21dd\u0007a\u0002\u0002\u21dd\u21de\u0007N\u0002", + "\u0002\u21de\u21df\u0007G\u0002\u0002\u21df\u21e0\u0007P\u0002\u0002", + "\u21e0\u21e1\u0007I\u0002\u0002\u21e1\u21e2\u0007V\u0002\u0002\u21e2", + "\u21e3\u0007J\u0002\u0002\u21e3\u05aa\u0003\u0002\u0002\u0002\u21e4", + "\u21e5\u0007D\u0002\u0002\u21e5\u21e6\u0007W\u0002\u0002\u21e6\u21e7", + "\u0007H\u0002\u0002\u21e7\u21e8\u0007H\u0002\u0002\u21e8\u21e9\u0007", + "G\u0002\u0002\u21e9\u21ea\u0007T\u0002\u0002\u21ea\u05ac\u0003\u0002", + "\u0002\u0002\u21eb\u21ec\u0007E\u0002\u0002\u21ec\u21ed\u0007C\u0002", + "\u0002\u21ed\u21ee\u0007V\u0002\u0002\u21ee\u21ef\u0007C\u0002\u0002", + "\u21ef\u21f0\u0007N\u0002\u0002\u21f0\u21f1\u0007Q\u0002\u0002\u21f1", + "\u21f2\u0007I\u0002\u0002\u21f2\u21f3\u0007a\u0002\u0002\u21f3\u21f4", + "\u0007P\u0002\u0002\u21f4\u21f5\u0007C\u0002\u0002\u21f5\u21f6\u0007", + "O\u0002\u0002\u21f6\u21f7\u0007G\u0002\u0002\u21f7\u05ae\u0003\u0002", + "\u0002\u0002\u21f8\u21f9\u0007E\u0002\u0002\u21f9\u21fa\u0007G\u0002", + "\u0002\u21fa\u21fb\u0007K\u0002\u0002\u21fb\u21fc\u0007N\u0002\u0002", + "\u21fc\u05b0\u0003\u0002\u0002\u0002\u21fd\u21fe\u0007E\u0002\u0002", + "\u21fe\u21ff\u0007G\u0002\u0002\u21ff\u2200\u0007K\u0002\u0002\u2200", + "\u2201\u0007N\u0002\u0002\u2201\u2202\u0007K\u0002\u0002\u2202\u2203", + "\u0007P\u0002\u0002\u2203\u2204\u0007I\u0002\u0002\u2204\u05b2\u0003", + "\u0002\u0002\u0002\u2205\u2206\u0007E\u0002\u0002\u2206\u2207\u0007", + "G\u0002\u0002\u2207\u2208\u0007P\u0002\u0002\u2208\u2209\u0007V\u0002", + "\u0002\u2209\u220a\u0007T\u0002\u0002\u220a\u220b\u0007Q\u0002\u0002", + "\u220b\u220c\u0007K\u0002\u0002\u220c\u220d\u0007F\u0002\u0002\u220d", + "\u05b4\u0003\u0002\u0002\u0002\u220e\u220f\u0007E\u0002\u0002\u220f", + "\u2210\u0007J\u0002\u0002\u2210\u2211\u0007C\u0002\u0002\u2211\u2212", + "\u0007T\u0002\u0002\u2212\u2213\u0007C\u0002\u0002\u2213\u2214\u0007", + "E\u0002\u0002\u2214\u2215\u0007V\u0002\u0002\u2215\u2216\u0007G\u0002", + "\u0002\u2216\u2217\u0007T\u0002\u0002\u2217\u2218\u0007a\u0002\u0002", + "\u2218\u2219\u0007N\u0002\u0002\u2219\u221a\u0007G\u0002\u0002\u221a", + "\u221b\u0007P\u0002\u0002\u221b\u221c\u0007I\u0002\u0002\u221c\u221d", + "\u0007V\u0002\u0002\u221d\u221e\u0007J\u0002\u0002\u221e\u05b6\u0003", + "\u0002\u0002\u0002\u221f\u2220\u0007E\u0002\u0002\u2220\u2221\u0007", + "J\u0002\u0002\u2221\u2222\u0007C\u0002\u0002\u2222\u2223\u0007T\u0002", + "\u0002\u2223\u2224\u0007U\u0002\u0002\u2224\u2225\u0007G\u0002\u0002", + "\u2225\u2226\u0007V\u0002\u0002\u2226\u05b8\u0003\u0002\u0002\u0002", + "\u2227\u2228\u0007E\u0002\u0002\u2228\u2229\u0007J\u0002\u0002\u2229", + "\u222a\u0007C\u0002\u0002\u222a\u222b\u0007T\u0002\u0002\u222b\u222c", + "\u0007a\u0002\u0002\u222c\u222d\u0007N\u0002\u0002\u222d\u222e\u0007", + "G\u0002\u0002\u222e\u222f\u0007P\u0002\u0002\u222f\u2230\u0007I\u0002", + "\u0002\u2230\u2231\u0007V\u0002\u0002\u2231\u2232\u0007J\u0002\u0002", + "\u2232\u05ba\u0003\u0002\u0002\u0002\u2233\u2234\u0007E\u0002\u0002", + "\u2234\u2235\u0007Q\u0002\u0002\u2235\u2236\u0007G\u0002\u0002\u2236", + "\u2237\u0007T\u0002\u0002\u2237\u2238\u0007E\u0002\u0002\u2238\u2239", + "\u0007K\u0002\u0002\u2239\u223a\u0007D\u0002\u0002\u223a\u223b\u0007", + "K\u0002\u0002\u223b\u223c\u0007N\u0002\u0002\u223c\u223d\u0007K\u0002", + "\u0002\u223d\u223e\u0007V\u0002\u0002\u223e\u223f\u0007[\u0002\u0002", + "\u223f\u05bc\u0003\u0002\u0002\u0002\u2240\u2241\u0007E\u0002\u0002", + "\u2241\u2242\u0007Q\u0002\u0002\u2242\u2243\u0007N\u0002\u0002\u2243", + "\u2244\u0007N\u0002\u0002\u2244\u2245\u0007C\u0002\u0002\u2245\u2246", + "\u0007V\u0002\u0002\u2246\u2247\u0007K\u0002\u0002\u2247\u2248\u0007", + "Q\u0002\u0002\u2248\u2249\u0007P\u0002\u0002\u2249\u05be\u0003\u0002", + "\u0002\u0002\u224a\u224b\u0007E\u0002\u0002\u224b\u224c\u0007Q\u0002", + "\u0002\u224c\u224d\u0007O\u0002\u0002\u224d\u224e\u0007R\u0002\u0002", + "\u224e\u224f\u0007T\u0002\u0002\u224f\u2250\u0007G\u0002\u0002\u2250", + "\u2251\u0007U\u0002\u0002\u2251\u2252\u0007U\u0002\u0002\u2252\u05c0", + "\u0003\u0002\u0002\u0002\u2253\u2254\u0007E\u0002\u0002\u2254\u2255", + "\u0007Q\u0002\u0002\u2255\u2256\u0007P\u0002\u0002\u2256\u2257\u0007", + "E\u0002\u0002\u2257\u2258\u0007C\u0002\u0002\u2258\u2259\u0007V\u0002", + "\u0002\u2259\u05c2\u0003\u0002\u0002\u0002\u225a\u225b\u0007E\u0002", + "\u0002\u225b\u225c\u0007Q\u0002\u0002\u225c\u225d\u0007P\u0002\u0002", + "\u225d\u225e\u0007E\u0002\u0002\u225e\u225f\u0007C\u0002\u0002\u225f", + "\u2260\u0007V\u0002\u0002\u2260\u2261\u0007a\u0002\u0002\u2261\u2262", + "\u0007Y\u0002\u0002\u2262\u2263\u0007U\u0002\u0002\u2263\u05c4\u0003", + "\u0002\u0002\u0002\u2264\u2265\u0007E\u0002\u0002\u2265\u2266\u0007", + "Q\u0002\u0002\u2266\u2267\u0007P\u0002\u0002\u2267\u2268\u0007P\u0002", + "\u0002\u2268\u2269\u0007G\u0002\u0002\u2269\u226a\u0007E\u0002\u0002", + "\u226a\u226b\u0007V\u0002\u0002\u226b\u226c\u0007K\u0002\u0002\u226c", + "\u226d\u0007Q\u0002\u0002\u226d\u226e\u0007P\u0002\u0002\u226e\u226f", + "\u0007a\u0002\u0002\u226f\u2270\u0007K\u0002\u0002\u2270\u2271\u0007", + "F\u0002\u0002\u2271\u05c6\u0003\u0002\u0002\u0002\u2272\u2273\u0007", + "E\u0002\u0002\u2273\u2274\u0007Q\u0002\u0002\u2274\u2275\u0007P\u0002", + "\u0002\u2275\u2276\u0007X\u0002\u0002\u2276\u05c8\u0003\u0002\u0002", + "\u0002\u2277\u2278\u0007E\u0002\u0002\u2278\u2279\u0007Q\u0002\u0002", + "\u2279\u227a\u0007P\u0002\u0002\u227a\u227b\u0007X\u0002\u0002\u227b", + "\u227c\u0007G\u0002\u0002\u227c\u227d\u0007T\u0002\u0002\u227d\u227e", + "\u0007V\u0002\u0002\u227e\u227f\u0007a\u0002\u0002\u227f\u2280\u0007", + "V\u0002\u0002\u2280\u2281\u0007\\\u0002\u0002\u2281\u05ca\u0003\u0002", + "\u0002\u0002\u2282\u2283\u0007E\u0002\u0002\u2283\u2284\u0007Q\u0002", + "\u0002\u2284\u2285\u0007U\u0002\u0002\u2285\u05cc\u0003\u0002\u0002", + "\u0002\u2286\u2287\u0007E\u0002\u0002\u2287\u2288\u0007Q\u0002\u0002", + "\u2288\u2289\u0007V\u0002\u0002\u2289\u05ce\u0003\u0002\u0002\u0002", + "\u228a\u228b\u0007E\u0002\u0002\u228b\u228c\u0007T\u0002\u0002\u228c", + "\u228d\u0007E\u0002\u0002\u228d\u228e\u00075\u0002\u0002\u228e\u228f", + "\u00074\u0002\u0002\u228f\u05d0\u0003\u0002\u0002\u0002\u2290\u2291", + "\u0007E\u0002\u0002\u2291\u2292\u0007T\u0002\u0002\u2292\u2293\u0007", + "G\u0002\u0002\u2293\u2294\u0007C\u0002\u0002\u2294\u2295\u0007V\u0002", + "\u0002\u2295\u2296\u0007G\u0002\u0002\u2296\u2297\u0007a\u0002\u0002", + "\u2297\u2298\u0007C\u0002\u0002\u2298\u2299\u0007U\u0002\u0002\u2299", + "\u229a\u0007[\u0002\u0002\u229a\u229b\u0007O\u0002\u0002\u229b\u229c", + "\u0007O\u0002\u0002\u229c\u229d\u0007G\u0002\u0002\u229d\u229e\u0007", + "V\u0002\u0002\u229e\u229f\u0007T\u0002\u0002\u229f\u22a0\u0007K\u0002", + "\u0002\u22a0\u22a1\u0007E\u0002\u0002\u22a1\u22a2\u0007a\u0002\u0002", + "\u22a2\u22a3\u0007R\u0002\u0002\u22a3\u22a4\u0007T\u0002\u0002\u22a4", + "\u22a5\u0007K\u0002\u0002\u22a5\u22a6\u0007X\u0002\u0002\u22a6\u22a7", + "\u0007a\u0002\u0002\u22a7\u22a8\u0007M\u0002\u0002\u22a8\u22a9\u0007", + "G\u0002\u0002\u22a9\u22aa\u0007[\u0002\u0002\u22aa\u05d2\u0003\u0002", + "\u0002\u0002\u22ab\u22ac\u0007E\u0002\u0002\u22ac\u22ad\u0007T\u0002", + "\u0002\u22ad\u22ae\u0007G\u0002\u0002\u22ae\u22af\u0007C\u0002\u0002", + "\u22af\u22b0\u0007V\u0002\u0002\u22b0\u22b1\u0007G\u0002\u0002\u22b1", + "\u22b2\u0007a\u0002\u0002\u22b2\u22b3\u0007C\u0002\u0002\u22b3\u22b4", + "\u0007U\u0002\u0002\u22b4\u22b5\u0007[\u0002\u0002\u22b5\u22b6\u0007", + "O\u0002\u0002\u22b6\u22b7\u0007O\u0002\u0002\u22b7\u22b8\u0007G\u0002", + "\u0002\u22b8\u22b9\u0007V\u0002\u0002\u22b9\u22ba\u0007T\u0002\u0002", + "\u22ba\u22bb\u0007K\u0002\u0002\u22bb\u22bc\u0007E\u0002\u0002\u22bc", + "\u22bd\u0007a\u0002\u0002\u22bd\u22be\u0007R\u0002\u0002\u22be\u22bf", + "\u0007W\u0002\u0002\u22bf\u22c0\u0007D\u0002\u0002\u22c0\u22c1\u0007", + "a\u0002\u0002\u22c1\u22c2\u0007M\u0002\u0002\u22c2\u22c3\u0007G\u0002", + "\u0002\u22c3\u22c4\u0007[\u0002\u0002\u22c4\u05d4\u0003\u0002\u0002", + "\u0002\u22c5\u22c6\u0007E\u0002\u0002\u22c6\u22c7\u0007T\u0002\u0002", + "\u22c7\u22c8\u0007G\u0002\u0002\u22c8\u22c9\u0007C\u0002\u0002\u22c9", + "\u22ca\u0007V\u0002\u0002\u22ca\u22cb\u0007G\u0002\u0002\u22cb\u22cc", + "\u0007a\u0002\u0002\u22cc\u22cd\u0007F\u0002\u0002\u22cd\u22ce\u0007", + "J\u0002\u0002\u22ce\u22cf\u0007a\u0002\u0002\u22cf\u22d0\u0007R\u0002", + "\u0002\u22d0\u22d1\u0007C\u0002\u0002\u22d1\u22d2\u0007T\u0002\u0002", + "\u22d2\u22d3\u0007C\u0002\u0002\u22d3\u22d4\u0007O\u0002\u0002\u22d4", + "\u22d5\u0007G\u0002\u0002\u22d5\u22d6\u0007V\u0002\u0002\u22d6\u22d7", + "\u0007G\u0002\u0002\u22d7\u22d8\u0007T\u0002\u0002\u22d8\u22d9\u0007", + "U\u0002\u0002\u22d9\u05d6\u0003\u0002\u0002\u0002\u22da\u22db\u0007", + "E\u0002\u0002\u22db\u22dc\u0007T\u0002\u0002\u22dc\u22dd\u0007G\u0002", + "\u0002\u22dd\u22de\u0007C\u0002\u0002\u22de\u22df\u0007V\u0002\u0002", + "\u22df\u22e0\u0007G\u0002\u0002\u22e0\u22e1\u0007a\u0002\u0002\u22e1", + "\u22e2\u0007F\u0002\u0002\u22e2\u22e3\u0007K\u0002\u0002\u22e3\u22e4", + "\u0007I\u0002\u0002\u22e4\u22e5\u0007G\u0002\u0002\u22e5\u22e6\u0007", + "U\u0002\u0002\u22e6\u22e7\u0007V\u0002\u0002\u22e7\u05d8\u0003\u0002", + "\u0002\u0002\u22e8\u22e9\u0007E\u0002\u0002\u22e9\u22ea\u0007T\u0002", + "\u0002\u22ea\u22eb\u0007Q\u0002\u0002\u22eb\u22ec\u0007U\u0002\u0002", + "\u22ec\u22ed\u0007U\u0002\u0002\u22ed\u22ee\u0007G\u0002\u0002\u22ee", + "\u22ef\u0007U\u0002\u0002\u22ef\u05da\u0003\u0002\u0002\u0002\u22f0", + "\u22f1\u0007F\u0002\u0002\u22f1\u22f2\u0007C\u0002\u0002\u22f2\u22f3", + "\u0007V\u0002\u0002\u22f3\u22f4\u0007G\u0002\u0002\u22f4\u22f5\u0007", + "F\u0002\u0002\u22f5\u22f6\u0007K\u0002\u0002\u22f6\u22f7\u0007H\u0002", + "\u0002\u22f7\u22f8\u0007H\u0002\u0002\u22f8\u05dc\u0003\u0002\u0002", + "\u0002\u22f9\u22fa\u0007F\u0002\u0002\u22fa\u22fb\u0007C\u0002\u0002", + "\u22fb\u22fc\u0007V\u0002\u0002\u22fc\u22fd\u0007G\u0002\u0002\u22fd", + "\u22fe\u0007a\u0002\u0002\u22fe\u22ff\u0007H\u0002\u0002\u22ff\u2300", + "\u0007Q\u0002\u0002\u2300\u2301\u0007T\u0002\u0002\u2301\u2302\u0007", + "O\u0002\u0002\u2302\u2303\u0007C\u0002\u0002\u2303\u2304\u0007V\u0002", + "\u0002\u2304\u05de\u0003\u0002\u0002\u0002\u2305\u2306\u0007F\u0002", + "\u0002\u2306\u2307\u0007C\u0002\u0002\u2307\u2308\u0007[\u0002\u0002", + "\u2308\u2309\u0007P\u0002\u0002\u2309\u230a\u0007C\u0002\u0002\u230a", + "\u230b\u0007O\u0002\u0002\u230b\u230c\u0007G\u0002\u0002\u230c\u05e0", + "\u0003\u0002\u0002\u0002\u230d\u230e\u0007F\u0002\u0002\u230e\u230f", + "\u0007C\u0002\u0002\u230f\u2310\u0007[\u0002\u0002\u2310\u2311\u0007", + "Q\u0002\u0002\u2311\u2312\u0007H\u0002\u0002\u2312\u2313\u0007O\u0002", + "\u0002\u2313\u2314\u0007Q\u0002\u0002\u2314\u2315\u0007P\u0002\u0002", + "\u2315\u2316\u0007V\u0002\u0002\u2316\u2317\u0007J\u0002\u0002\u2317", + "\u05e2\u0003\u0002\u0002\u0002\u2318\u2319\u0007F\u0002\u0002\u2319", + "\u231a\u0007C\u0002\u0002\u231a\u231b\u0007[\u0002\u0002\u231b\u231c", + "\u0007Q\u0002\u0002\u231c\u231d\u0007H\u0002\u0002\u231d\u231e\u0007", + "Y\u0002\u0002\u231e\u231f\u0007G\u0002\u0002\u231f\u2320\u0007G\u0002", + "\u0002\u2320\u2321\u0007M\u0002\u0002\u2321\u05e4\u0003\u0002\u0002", + "\u0002\u2322\u2323\u0007F\u0002\u0002\u2323\u2324\u0007C\u0002\u0002", + "\u2324\u2325\u0007[\u0002\u0002\u2325\u2326\u0007Q\u0002\u0002\u2326", + "\u2327\u0007H\u0002\u0002\u2327\u2328\u0007[\u0002\u0002\u2328\u2329", + "\u0007G\u0002\u0002\u2329\u232a\u0007C\u0002\u0002\u232a\u232b\u0007", + "T\u0002\u0002\u232b\u05e6\u0003\u0002\u0002\u0002\u232c\u232d\u0007", + "F\u0002\u0002\u232d\u232e\u0007G\u0002\u0002\u232e\u232f\u0007E\u0002", + "\u0002\u232f\u2330\u0007Q\u0002\u0002\u2330\u2331\u0007F\u0002\u0002", + "\u2331\u2332\u0007G\u0002\u0002\u2332\u05e8\u0003\u0002\u0002\u0002", + "\u2333\u2334\u0007F\u0002\u0002\u2334\u2335\u0007G\u0002\u0002\u2335", + "\u2336\u0007I\u0002\u0002\u2336\u2337\u0007T\u0002\u0002\u2337\u2338", + "\u0007G\u0002\u0002\u2338\u2339\u0007G\u0002\u0002\u2339\u233a\u0007", + "U\u0002\u0002\u233a\u05ea\u0003\u0002\u0002\u0002\u233b\u233c\u0007", + "F\u0002\u0002\u233c\u233d\u0007G\u0002\u0002\u233d\u233e\u0007U\u0002", + "\u0002\u233e\u233f\u0007a\u0002\u0002\u233f\u2340\u0007F\u0002\u0002", + "\u2340\u2341\u0007G\u0002\u0002\u2341\u2342\u0007E\u0002\u0002\u2342", + "\u2343\u0007T\u0002\u0002\u2343\u2344\u0007[\u0002\u0002\u2344\u2345", + "\u0007R\u0002\u0002\u2345\u2346\u0007V\u0002\u0002\u2346\u05ec\u0003", + "\u0002\u0002\u0002\u2347\u2348\u0007F\u0002\u0002\u2348\u2349\u0007", + "G\u0002\u0002\u2349\u234a\u0007U\u0002\u0002\u234a\u234b\u0007a\u0002", + "\u0002\u234b\u234c\u0007G\u0002\u0002\u234c\u234d\u0007P\u0002\u0002", + "\u234d\u234e\u0007E\u0002\u0002\u234e\u234f\u0007T\u0002\u0002\u234f", + "\u2350\u0007[\u0002\u0002\u2350\u2351\u0007R\u0002\u0002\u2351\u2352", + "\u0007V\u0002\u0002\u2352\u05ee\u0003\u0002\u0002\u0002\u2353\u2354", + "\u0007F\u0002\u0002\u2354\u2355\u0007K\u0002\u0002\u2355\u2356\u0007", + "O\u0002\u0002\u2356\u2357\u0007G\u0002\u0002\u2357\u2358\u0007P\u0002", + "\u0002\u2358\u2359\u0007U\u0002\u0002\u2359\u235a\u0007K\u0002\u0002", + "\u235a\u235b\u0007Q\u0002\u0002\u235b\u235c\u0007P\u0002\u0002\u235c", + "\u05f0\u0003\u0002\u0002\u0002\u235d\u235e\u0007F\u0002\u0002\u235e", + "\u235f\u0007K\u0002\u0002\u235f\u2360\u0007U\u0002\u0002\u2360\u2361", + "\u0007L\u0002\u0002\u2361\u2362\u0007Q\u0002\u0002\u2362\u2363\u0007", + "K\u0002\u0002\u2363\u2364\u0007P\u0002\u0002\u2364\u2365\u0007V\u0002", + "\u0002\u2365\u05f2\u0003\u0002\u0002\u0002\u2366\u2367\u0007G\u0002", + "\u0002\u2367\u2368\u0007N\u0002\u0002\u2368\u2369\u0007V\u0002\u0002", + "\u2369\u05f4\u0003\u0002\u0002\u0002\u236a\u236b\u0007G\u0002\u0002", + "\u236b\u236c\u0007P\u0002\u0002\u236c\u236d\u0007E\u0002\u0002\u236d", + "\u236e\u0007Q\u0002\u0002\u236e\u236f\u0007F\u0002\u0002\u236f\u2370", + "\u0007G\u0002\u0002\u2370\u05f6\u0003\u0002\u0002\u0002\u2371\u2372", + "\u0007G\u0002\u0002\u2372\u2373\u0007P\u0002\u0002\u2373\u2374\u0007", + "E\u0002\u0002\u2374\u2375\u0007T\u0002\u0002\u2375\u2376\u0007[\u0002", + "\u0002\u2376\u2377\u0007R\u0002\u0002\u2377\u2378\u0007V\u0002\u0002", + "\u2378\u05f8\u0003\u0002\u0002\u0002\u2379\u237a\u0007G\u0002\u0002", + "\u237a\u237b\u0007P\u0002\u0002\u237b\u237c\u0007F\u0002\u0002\u237c", + "\u237d\u0007R\u0002\u0002\u237d\u237e\u0007Q\u0002\u0002\u237e\u237f", + "\u0007K\u0002\u0002\u237f\u2380\u0007P\u0002\u0002\u2380\u2381\u0007", + "V\u0002\u0002\u2381\u05fa\u0003\u0002\u0002\u0002\u2382\u2383\u0007", + "G\u0002\u0002\u2383\u2384\u0007P\u0002\u0002\u2384\u2385\u0007X\u0002", + "\u0002\u2385\u2386\u0007G\u0002\u0002\u2386\u2387\u0007N\u0002\u0002", + "\u2387\u2388\u0007Q\u0002\u0002\u2388\u2389\u0007R\u0002\u0002\u2389", + "\u238a\u0007G\u0002\u0002\u238a\u05fc\u0003\u0002\u0002\u0002\u238b", + "\u238c\u0007G\u0002\u0002\u238c\u238d\u0007S\u0002\u0002\u238d\u238e", + "\u0007W\u0002\u0002\u238e\u238f\u0007C\u0002\u0002\u238f\u2390\u0007", + "N\u0002\u0002\u2390\u2391\u0007U\u0002\u0002\u2391\u05fe\u0003\u0002", + "\u0002\u0002\u2392\u2393\u0007G\u0002\u0002\u2393\u2394\u0007Z\u0002", + "\u0002\u2394\u2395\u0007R\u0002\u0002\u2395\u0600\u0003\u0002\u0002", + "\u0002\u2396\u2397\u0007G\u0002\u0002\u2397\u2398\u0007Z\u0002\u0002", + "\u2398\u2399\u0007R\u0002\u0002\u2399\u239a\u0007Q\u0002\u0002\u239a", + "\u239b\u0007T\u0002\u0002\u239b\u239c\u0007V\u0002\u0002\u239c\u239d", + "\u0007a\u0002\u0002\u239d\u239e\u0007U\u0002\u0002\u239e\u239f\u0007", + "G\u0002\u0002\u239f\u23a0\u0007V\u0002\u0002\u23a0\u0602\u0003\u0002", + "\u0002\u0002\u23a1\u23a2\u0007G\u0002\u0002\u23a2\u23a3\u0007Z\u0002", + "\u0002\u23a3\u23a4\u0007V\u0002\u0002\u23a4\u23a5\u0007G\u0002\u0002", + "\u23a5\u23a6\u0007T\u0002\u0002\u23a6\u23a7\u0007K\u0002\u0002\u23a7", + "\u23a8\u0007Q\u0002\u0002\u23a8\u23a9\u0007T\u0002\u0002\u23a9\u23aa", + "\u0007T\u0002\u0002\u23aa\u23ab\u0007K\u0002\u0002\u23ab\u23ac\u0007", + "P\u0002\u0002\u23ac\u23ad\u0007I\u0002\u0002\u23ad\u0604\u0003\u0002", + "\u0002\u0002\u23ae\u23af\u0007G\u0002\u0002\u23af\u23b0\u0007Z\u0002", + "\u0002\u23b0\u23b1\u0007V\u0002\u0002\u23b1\u23b2\u0007T\u0002\u0002", + "\u23b2\u23b3\u0007C\u0002\u0002\u23b3\u23b4\u0007E\u0002\u0002\u23b4", + "\u23b5\u0007V\u0002\u0002\u23b5\u23b6\u0007X\u0002\u0002\u23b6\u23b7", + "\u0007C\u0002\u0002\u23b7\u23b8\u0007N\u0002\u0002\u23b8\u23b9\u0007", + "W\u0002\u0002\u23b9\u23ba\u0007G\u0002\u0002\u23ba\u0606\u0003\u0002", + "\u0002\u0002\u23bb\u23bc\u0007H\u0002\u0002\u23bc\u23bd\u0007K\u0002", + "\u0002\u23bd\u23be\u0007G\u0002\u0002\u23be\u23bf\u0007N\u0002\u0002", + "\u23bf\u23c0\u0007F\u0002\u0002\u23c0\u0608\u0003\u0002\u0002\u0002", + "\u23c1\u23c2\u0007H\u0002\u0002\u23c2\u23c3\u0007K\u0002\u0002\u23c3", + "\u23c4\u0007P\u0002\u0002\u23c4\u23c5\u0007F\u0002\u0002\u23c5\u23c6", + "\u0007a\u0002\u0002\u23c6\u23c7\u0007K\u0002\u0002\u23c7\u23c8\u0007", + "P\u0002\u0002\u23c8\u23c9\u0007a\u0002\u0002\u23c9\u23ca\u0007U\u0002", + "\u0002\u23ca\u23cb\u0007G\u0002\u0002\u23cb\u23cc\u0007V\u0002\u0002", + "\u23cc\u060a\u0003\u0002\u0002\u0002\u23cd\u23ce\u0007H\u0002\u0002", + "\u23ce\u23cf\u0007N\u0002\u0002\u23cf\u23d0\u0007Q\u0002\u0002\u23d0", + "\u23d1\u0007Q\u0002\u0002\u23d1\u23d2\u0007T\u0002\u0002\u23d2\u060c", + "\u0003\u0002\u0002\u0002\u23d3\u23d4\u0007H\u0002\u0002\u23d4\u23d5", + "\u0007Q\u0002\u0002\u23d5\u23d6\u0007T\u0002\u0002\u23d6\u23d7\u0007", + "O\u0002\u0002\u23d7\u23d8\u0007C\u0002\u0002\u23d8\u23d9\u0007V\u0002", + "\u0002\u23d9\u060e\u0003\u0002\u0002\u0002\u23da\u23db\u0007H\u0002", + "\u0002\u23db\u23dc\u0007Q\u0002\u0002\u23dc\u23dd\u0007W\u0002\u0002", + "\u23dd\u23de\u0007P\u0002\u0002\u23de\u23df\u0007F\u0002\u0002\u23df", + "\u23e0\u0007a\u0002\u0002\u23e0\u23e1\u0007T\u0002\u0002\u23e1\u23e2", + "\u0007Q\u0002\u0002\u23e2\u23e3\u0007Y\u0002\u0002\u23e3\u23e4\u0007", + "U\u0002\u0002\u23e4\u0610\u0003\u0002\u0002\u0002\u23e5\u23e6\u0007", + "H\u0002\u0002\u23e6\u23e7\u0007T\u0002\u0002\u23e7\u23e8\u0007Q\u0002", + "\u0002\u23e8\u23e9\u0007O\u0002\u0002\u23e9\u23ea\u0007a\u0002\u0002", + "\u23ea\u23eb\u0007D\u0002\u0002\u23eb\u23ec\u0007C\u0002\u0002\u23ec", + "\u23ed\u0007U\u0002\u0002\u23ed\u23ee\u0007G\u0002\u0002\u23ee\u23ef", + "\u00078\u0002\u0002\u23ef\u23f0\u00076\u0002\u0002\u23f0\u0612\u0003", + "\u0002\u0002\u0002\u23f1\u23f2\u0007H\u0002\u0002\u23f2\u23f3\u0007", + "T\u0002\u0002\u23f3\u23f4\u0007Q\u0002\u0002\u23f4\u23f5\u0007O\u0002", + "\u0002\u23f5\u23f6\u0007a\u0002\u0002\u23f6\u23f7\u0007F\u0002\u0002", + "\u23f7\u23f8\u0007C\u0002\u0002\u23f8\u23f9\u0007[\u0002\u0002\u23f9", + "\u23fa\u0007U\u0002\u0002\u23fa\u0614\u0003\u0002\u0002\u0002\u23fb", + "\u23fc\u0007H\u0002\u0002\u23fc\u23fd\u0007T\u0002\u0002\u23fd\u23fe", + "\u0007Q\u0002\u0002\u23fe\u23ff\u0007O\u0002\u0002\u23ff\u2400\u0007", + "a\u0002\u0002\u2400\u2401\u0007W\u0002\u0002\u2401\u2402\u0007P\u0002", + "\u0002\u2402\u2403\u0007K\u0002\u0002\u2403\u2404\u0007Z\u0002\u0002", + "\u2404\u2405\u0007V\u0002\u0002\u2405\u2406\u0007K\u0002\u0002\u2406", + "\u2407\u0007O\u0002\u0002\u2407\u2408\u0007G\u0002\u0002\u2408\u0616", + "\u0003\u0002\u0002\u0002\u2409\u240a\u0007I\u0002\u0002\u240a\u240b", + "\u0007G\u0002\u0002\u240b\u240c\u0007Q\u0002\u0002\u240c\u240d\u0007", + "O\u0002\u0002\u240d\u240e\u0007E\u0002\u0002\u240e\u240f\u0007Q\u0002", + "\u0002\u240f\u2410\u0007N\u0002\u0002\u2410\u2411\u0007N\u0002\u0002", + "\u2411\u2412\u0007H\u0002\u0002\u2412\u2413\u0007T\u0002\u0002\u2413", + "\u2414\u0007Q\u0002\u0002\u2414\u2415\u0007O\u0002\u0002\u2415\u2416", + "\u0007V\u0002\u0002\u2416\u2417\u0007G\u0002\u0002\u2417\u2418\u0007", + "Z\u0002\u0002\u2418\u2419\u0007V\u0002\u0002\u2419\u0618\u0003\u0002", + "\u0002\u0002\u241a\u241b\u0007I\u0002\u0002\u241b\u241c\u0007G\u0002", + "\u0002\u241c\u241d\u0007Q\u0002\u0002\u241d\u241e\u0007O\u0002\u0002", + "\u241e\u241f\u0007E\u0002\u0002\u241f\u2420\u0007Q\u0002\u0002\u2420", + "\u2421\u0007N\u0002\u0002\u2421\u2422\u0007N\u0002\u0002\u2422\u2423", + "\u0007H\u0002\u0002\u2423\u2424\u0007T\u0002\u0002\u2424\u2425\u0007", + "Q\u0002\u0002\u2425\u2426\u0007O\u0002\u0002\u2426\u2427\u0007Y\u0002", + "\u0002\u2427\u2428\u0007M\u0002\u0002\u2428\u2429\u0007D\u0002\u0002", + "\u2429\u061a\u0003\u0002\u0002\u0002\u242a\u242b\u0007I\u0002\u0002", + "\u242b\u242c\u0007G\u0002\u0002\u242c\u242d\u0007Q\u0002\u0002\u242d", + "\u242e\u0007O\u0002\u0002\u242e\u242f\u0007G\u0002\u0002\u242f\u2430", + "\u0007V\u0002\u0002\u2430\u2431\u0007T\u0002\u0002\u2431\u2432\u0007", + "[\u0002\u0002\u2432\u2433\u0007E\u0002\u0002\u2433\u2434\u0007Q\u0002", + "\u0002\u2434\u2435\u0007N\u0002\u0002\u2435\u2436\u0007N\u0002\u0002", + "\u2436\u2437\u0007G\u0002\u0002\u2437\u2438\u0007E\u0002\u0002\u2438", + "\u2439\u0007V\u0002\u0002\u2439\u243a\u0007K\u0002\u0002\u243a\u243b", + "\u0007Q\u0002\u0002\u243b\u243c\u0007P\u0002\u0002\u243c\u243d\u0007", + "H\u0002\u0002\u243d\u243e\u0007T\u0002\u0002\u243e\u243f\u0007Q\u0002", + "\u0002\u243f\u2440\u0007O\u0002\u0002\u2440\u2441\u0007V\u0002\u0002", + "\u2441\u2442\u0007G\u0002\u0002\u2442\u2443\u0007Z\u0002\u0002\u2443", + "\u2444\u0007V\u0002\u0002\u2444\u061c\u0003\u0002\u0002\u0002\u2445", + "\u2446\u0007I\u0002\u0002\u2446\u2447\u0007G\u0002\u0002\u2447\u2448", + "\u0007Q\u0002\u0002\u2448\u2449\u0007O\u0002\u0002\u2449\u244a\u0007", + "G\u0002\u0002\u244a\u244b\u0007V\u0002\u0002\u244b\u244c\u0007T\u0002", + "\u0002\u244c\u244d\u0007[\u0002\u0002\u244d\u244e\u0007E\u0002\u0002", + "\u244e\u244f\u0007Q\u0002\u0002\u244f\u2450\u0007N\u0002\u0002\u2450", + "\u2451\u0007N\u0002\u0002\u2451\u2452\u0007G\u0002\u0002\u2452\u2453", + "\u0007E\u0002\u0002\u2453\u2454\u0007V\u0002\u0002\u2454\u2455\u0007", + "K\u0002\u0002\u2455\u2456\u0007Q\u0002\u0002\u2456\u2457\u0007P\u0002", + "\u0002\u2457\u2458\u0007H\u0002\u0002\u2458\u2459\u0007T\u0002\u0002", + "\u2459\u245a\u0007Q\u0002\u0002\u245a\u245b\u0007O\u0002\u0002\u245b", + "\u245c\u0007Y\u0002\u0002\u245c\u245d\u0007M\u0002\u0002\u245d\u245e", + "\u0007D\u0002\u0002\u245e\u061e\u0003\u0002\u0002\u0002\u245f\u2460", + "\u0007I\u0002\u0002\u2460\u2461\u0007G\u0002\u0002\u2461\u2462\u0007", + "Q\u0002\u0002\u2462\u2463\u0007O\u0002\u0002\u2463\u2464\u0007G\u0002", + "\u0002\u2464\u2465\u0007V\u0002\u0002\u2465\u2466\u0007T\u0002\u0002", + "\u2466\u2467\u0007[\u0002\u0002\u2467\u2468\u0007H\u0002\u0002\u2468", + "\u2469\u0007T\u0002\u0002\u2469\u246a\u0007Q\u0002\u0002\u246a\u246b", + "\u0007O\u0002\u0002\u246b\u246c\u0007V\u0002\u0002\u246c\u246d\u0007", + "G\u0002\u0002\u246d\u246e\u0007Z\u0002\u0002\u246e\u246f\u0007V\u0002", + "\u0002\u246f\u0620\u0003\u0002\u0002\u0002\u2470\u2471\u0007I\u0002", + "\u0002\u2471\u2472\u0007G\u0002\u0002\u2472\u2473\u0007Q\u0002\u0002", + "\u2473\u2474\u0007O\u0002\u0002\u2474\u2475\u0007G\u0002\u0002\u2475", + "\u2476\u0007V\u0002\u0002\u2476\u2477\u0007T\u0002\u0002\u2477\u2478", + "\u0007[\u0002\u0002\u2478\u2479\u0007H\u0002\u0002\u2479\u247a\u0007", + "T\u0002\u0002\u247a\u247b\u0007Q\u0002\u0002\u247b\u247c\u0007O\u0002", + "\u0002\u247c\u247d\u0007Y\u0002\u0002\u247d\u247e\u0007M\u0002\u0002", + "\u247e\u247f\u0007D\u0002\u0002\u247f\u0622\u0003\u0002\u0002\u0002", + "\u2480\u2481\u0007I\u0002\u0002\u2481\u2482\u0007G\u0002\u0002\u2482", + "\u2483\u0007Q\u0002\u0002\u2483\u2484\u0007O\u0002\u0002\u2484\u2485", + "\u0007G\u0002\u0002\u2485\u2486\u0007V\u0002\u0002\u2486\u2487\u0007", + "T\u0002\u0002\u2487\u2488\u0007[\u0002\u0002\u2488\u2489\u0007P\u0002", + "\u0002\u2489\u0624\u0003\u0002\u0002\u0002\u248a\u248b\u0007I\u0002", + "\u0002\u248b\u248c\u0007G\u0002\u0002\u248c\u248d\u0007Q\u0002\u0002", + "\u248d\u248e\u0007O\u0002\u0002\u248e\u248f\u0007G\u0002\u0002\u248f", + "\u2490\u0007V\u0002\u0002\u2490\u2491\u0007T\u0002\u0002\u2491\u2492", + "\u0007[\u0002\u0002\u2492\u2493\u0007V\u0002\u0002\u2493\u2494\u0007", + "[\u0002\u0002\u2494\u2495\u0007R\u0002\u0002\u2495\u2496\u0007G\u0002", + "\u0002\u2496\u0626\u0003\u0002\u0002\u0002\u2497\u2498\u0007I\u0002", + "\u0002\u2498\u2499\u0007G\u0002\u0002\u2499\u249a\u0007Q\u0002\u0002", + "\u249a\u249b\u0007O\u0002\u0002\u249b\u249c\u0007H\u0002\u0002\u249c", + "\u249d\u0007T\u0002\u0002\u249d\u249e\u0007Q\u0002\u0002\u249e\u249f", + "\u0007O\u0002\u0002\u249f\u24a0\u0007V\u0002\u0002\u24a0\u24a1\u0007", + "G\u0002\u0002\u24a1\u24a2\u0007Z\u0002\u0002\u24a2\u24a3\u0007V\u0002", + "\u0002\u24a3\u0628\u0003\u0002\u0002\u0002\u24a4\u24a5\u0007I\u0002", + "\u0002\u24a5\u24a6\u0007G\u0002\u0002\u24a6\u24a7\u0007Q\u0002\u0002", + "\u24a7\u24a8\u0007O\u0002\u0002\u24a8\u24a9\u0007H\u0002\u0002\u24a9", + "\u24aa\u0007T\u0002\u0002\u24aa\u24ab\u0007Q\u0002\u0002\u24ab\u24ac", + "\u0007O\u0002\u0002\u24ac\u24ad\u0007Y\u0002\u0002\u24ad\u24ae\u0007", + "M\u0002\u0002\u24ae\u24af\u0007D\u0002\u0002\u24af\u062a\u0003\u0002", + "\u0002\u0002\u24b0\u24b1\u0007I\u0002\u0002\u24b1\u24b2\u0007G\u0002", + "\u0002\u24b2\u24b3\u0007V\u0002\u0002\u24b3\u24b4\u0007a\u0002\u0002", + "\u24b4\u24b5\u0007H\u0002\u0002\u24b5\u24b6\u0007Q\u0002\u0002\u24b6", + "\u24b7\u0007T\u0002\u0002\u24b7\u24b8\u0007O\u0002\u0002\u24b8\u24b9", + "\u0007C\u0002\u0002\u24b9\u24ba\u0007V\u0002\u0002\u24ba\u062c\u0003", + "\u0002\u0002\u0002\u24bb\u24bc\u0007I\u0002\u0002\u24bc\u24bd\u0007", + "G\u0002\u0002\u24bd\u24be\u0007V\u0002\u0002\u24be\u24bf\u0007a\u0002", + "\u0002\u24bf\u24c0\u0007N\u0002\u0002\u24c0\u24c1\u0007Q\u0002\u0002", + "\u24c1\u24c2\u0007E\u0002\u0002\u24c2\u24c3\u0007M\u0002\u0002\u24c3", + "\u062e\u0003\u0002\u0002\u0002\u24c4\u24c5\u0007I\u0002\u0002\u24c5", + "\u24c6\u0007N\u0002\u0002\u24c6\u24c7\u0007G\u0002\u0002\u24c7\u24c8", + "\u0007P\u0002\u0002\u24c8\u24c9\u0007I\u0002\u0002\u24c9\u24ca\u0007", + "V\u0002\u0002\u24ca\u24cb\u0007J\u0002\u0002\u24cb\u0630\u0003\u0002", + "\u0002\u0002\u24cc\u24cd\u0007I\u0002\u0002\u24cd\u24ce\u0007T\u0002", + "\u0002\u24ce\u24cf\u0007G\u0002\u0002\u24cf\u24d0\u0007C\u0002\u0002", + "\u24d0\u24d1\u0007V\u0002\u0002\u24d1\u24d2\u0007G\u0002\u0002\u24d2", + "\u24d3\u0007U\u0002\u0002\u24d3\u24d4\u0007V\u0002\u0002\u24d4\u0632", + "\u0003\u0002\u0002\u0002\u24d5\u24d6\u0007I\u0002\u0002\u24d6\u24d7", + "\u0007V\u0002\u0002\u24d7\u24d8\u0007K\u0002\u0002\u24d8\u24d9\u0007", + "F\u0002\u0002\u24d9\u24da\u0007a\u0002\u0002\u24da\u24db\u0007U\u0002", + "\u0002\u24db\u24dc\u0007W\u0002\u0002\u24dc\u24dd\u0007D\u0002\u0002", + "\u24dd\u24de\u0007U\u0002\u0002\u24de\u24df\u0007G\u0002\u0002\u24df", + "\u24e0\u0007V\u0002\u0002\u24e0\u0634\u0003\u0002\u0002\u0002\u24e1", + "\u24e2\u0007I\u0002\u0002\u24e2\u24e3\u0007V\u0002\u0002\u24e3\u24e4", + "\u0007K\u0002\u0002\u24e4\u24e5\u0007F\u0002\u0002\u24e5\u24e6\u0007", + "a\u0002\u0002\u24e6\u24e7\u0007U\u0002\u0002\u24e7\u24e8\u0007W\u0002", + "\u0002\u24e8\u24e9\u0007D\u0002\u0002\u24e9\u24ea\u0007V\u0002\u0002", + "\u24ea\u24eb\u0007T\u0002\u0002\u24eb\u24ec\u0007C\u0002\u0002\u24ec", + "\u24ed\u0007E\u0002\u0002\u24ed\u24ee\u0007V\u0002\u0002\u24ee\u0636", + "\u0003\u0002\u0002\u0002\u24ef\u24f0\u0007J\u0002\u0002\u24f0\u24f1", + "\u0007G\u0002\u0002\u24f1\u24f2\u0007Z\u0002\u0002\u24f2\u0638\u0003", + "\u0002\u0002\u0002\u24f3\u24f4\u0007K\u0002\u0002\u24f4\u24f5\u0007", + "H\u0002\u0002\u24f5\u24f6\u0007P\u0002\u0002\u24f6\u24f7\u0007W\u0002", + "\u0002\u24f7\u24f8\u0007N\u0002\u0002\u24f8\u24f9\u0007N\u0002\u0002", + "\u24f9\u063a\u0003\u0002\u0002\u0002\u24fa\u24fb\u0007K\u0002\u0002", + "\u24fb\u24fc\u0007P\u0002\u0002\u24fc\u24fd\u0007G\u0002\u0002\u24fd", + "\u24fe\u0007V\u0002\u0002\u24fe\u24ff\u00078\u0002\u0002\u24ff\u2500", + "\u0007a\u0002\u0002\u2500\u2501\u0007C\u0002\u0002\u2501\u2502\u0007", + "V\u0002\u0002\u2502\u2503\u0007Q\u0002\u0002\u2503\u2504\u0007P\u0002", + "\u0002\u2504\u063c\u0003\u0002\u0002\u0002\u2505\u2506\u0007K\u0002", + "\u0002\u2506\u2507\u0007P\u0002\u0002\u2507\u2508\u0007G\u0002\u0002", + "\u2508\u2509\u0007V\u0002\u0002\u2509\u250a\u00078\u0002\u0002\u250a", + "\u250b\u0007a\u0002\u0002\u250b\u250c\u0007P\u0002\u0002\u250c\u250d", + "\u0007V\u0002\u0002\u250d\u250e\u0007Q\u0002\u0002\u250e\u250f\u0007", + "C\u0002\u0002\u250f\u063e\u0003\u0002\u0002\u0002\u2510\u2511\u0007", + "K\u0002\u0002\u2511\u2512\u0007P\u0002\u0002\u2512\u2513\u0007G\u0002", + "\u0002\u2513\u2514\u0007V\u0002\u0002\u2514\u2515\u0007a\u0002\u0002", + "\u2515\u2516\u0007C\u0002\u0002\u2516\u2517\u0007V\u0002\u0002\u2517", + "\u2518\u0007Q\u0002\u0002\u2518\u2519\u0007P\u0002\u0002\u2519\u0640", + "\u0003\u0002\u0002\u0002\u251a\u251b\u0007K\u0002\u0002\u251b\u251c", + "\u0007P\u0002\u0002\u251c\u251d\u0007G\u0002\u0002\u251d\u251e\u0007", + "V\u0002\u0002\u251e\u251f\u0007a\u0002\u0002\u251f\u2520\u0007P\u0002", + "\u0002\u2520\u2521\u0007V\u0002\u0002\u2521\u2522\u0007Q\u0002\u0002", + "\u2522\u2523\u0007C\u0002\u0002\u2523\u0642\u0003\u0002\u0002\u0002", + "\u2524\u2525\u0007K\u0002\u0002\u2525\u2526\u0007P\u0002\u0002\u2526", + "\u2527\u0007U\u0002\u0002\u2527\u2528\u0007V\u0002\u0002\u2528\u2529", + "\u0007T\u0002\u0002\u2529\u0644\u0003\u0002\u0002\u0002\u252a\u252b", + "\u0007K\u0002\u0002\u252b\u252c\u0007P\u0002\u0002\u252c\u252d\u0007", + "V\u0002\u0002\u252d\u252e\u0007G\u0002\u0002\u252e\u252f\u0007T\u0002", + "\u0002\u252f\u2530\u0007K\u0002\u0002\u2530\u2531\u0007Q\u0002\u0002", + "\u2531\u2532\u0007T\u0002\u0002\u2532\u2533\u0007T\u0002\u0002\u2533", + "\u2534\u0007K\u0002\u0002\u2534\u2535\u0007P\u0002\u0002\u2535\u2536", + "\u0007I\u0002\u0002\u2536\u2537\u0007P\u0002\u0002\u2537\u0646\u0003", + "\u0002\u0002\u0002\u2538\u2539\u0007K\u0002\u0002\u2539\u253a\u0007", + "P\u0002\u0002\u253a\u253b\u0007V\u0002\u0002\u253b\u253c\u0007G\u0002", + "\u0002\u253c\u253d\u0007T\u0002\u0002\u253d\u253e\u0007U\u0002\u0002", + "\u253e\u253f\u0007G\u0002\u0002\u253f\u2540\u0007E\u0002\u0002\u2540", + "\u2541\u0007V\u0002\u0002\u2541\u2542\u0007U\u0002\u0002\u2542\u0648", + "\u0003\u0002\u0002\u0002\u2543\u2544\u0007K\u0002\u0002\u2544\u2545", + "\u0007U\u0002\u0002\u2545\u2546\u0007E\u0002\u0002\u2546\u2547\u0007", + "N\u0002\u0002\u2547\u2548\u0007Q\u0002\u0002\u2548\u2549\u0007U\u0002", + "\u0002\u2549\u254a\u0007G\u0002\u0002\u254a\u254b\u0007F\u0002\u0002", + "\u254b\u064a\u0003\u0002\u0002\u0002\u254c\u254d\u0007K\u0002\u0002", + "\u254d\u254e\u0007U\u0002\u0002\u254e\u254f\u0007G\u0002\u0002\u254f", + "\u2550\u0007O\u0002\u0002\u2550\u2551\u0007R\u0002\u0002\u2551\u2552", + "\u0007V\u0002\u0002\u2552\u2553\u0007[\u0002\u0002\u2553\u064c\u0003", + "\u0002\u0002\u0002\u2554\u2555\u0007K\u0002\u0002\u2555\u2556\u0007", + "U\u0002\u0002\u2556\u2557\u0007P\u0002\u0002\u2557\u2558\u0007W\u0002", + "\u0002\u2558\u2559\u0007N\u0002\u0002\u2559\u255a\u0007N\u0002\u0002", + "\u255a\u064e\u0003\u0002\u0002\u0002\u255b\u255c\u0007K\u0002\u0002", + "\u255c\u255d\u0007U\u0002\u0002\u255d\u255e\u0007U\u0002\u0002\u255e", + "\u255f\u0007K\u0002\u0002\u255f\u2560\u0007O\u0002\u0002\u2560\u2561", + "\u0007R\u0002\u0002\u2561\u2562\u0007N\u0002\u0002\u2562\u2563\u0007", + "G\u0002\u0002\u2563\u0650\u0003\u0002\u0002\u0002\u2564\u2565\u0007", + "K\u0002\u0002\u2565\u2566\u0007U\u0002\u0002\u2566\u2567\u0007a\u0002", + "\u0002\u2567\u2568\u0007H\u0002\u0002\u2568\u2569\u0007T\u0002\u0002", + "\u2569\u256a\u0007G\u0002\u0002\u256a\u256b\u0007G\u0002\u0002\u256b", + "\u256c\u0007a\u0002\u0002\u256c\u256d\u0007N\u0002\u0002\u256d\u256e", + "\u0007Q\u0002\u0002\u256e\u256f\u0007E\u0002\u0002\u256f\u2570\u0007", + "M\u0002\u0002\u2570\u0652\u0003\u0002\u0002\u0002\u2571\u2572\u0007", + "K\u0002\u0002\u2572\u2573\u0007U\u0002\u0002\u2573\u2574\u0007a\u0002", + "\u0002\u2574\u2575\u0007K\u0002\u0002\u2575\u2576\u0007R\u0002\u0002", + "\u2576\u2577\u0007X\u0002\u0002\u2577\u2578\u00076\u0002\u0002\u2578", + "\u0654\u0003\u0002\u0002\u0002\u2579\u257a\u0007K\u0002\u0002\u257a", + "\u257b\u0007U\u0002\u0002\u257b\u257c\u0007a\u0002\u0002\u257c\u257d", + "\u0007K\u0002\u0002\u257d\u257e\u0007R\u0002\u0002\u257e\u257f\u0007", + "X\u0002\u0002\u257f\u2580\u00076\u0002\u0002\u2580\u2581\u0007a\u0002", + "\u0002\u2581\u2582\u0007E\u0002\u0002\u2582\u2583\u0007Q\u0002\u0002", + "\u2583\u2584\u0007O\u0002\u0002\u2584\u2585\u0007R\u0002\u0002\u2585", + "\u2586\u0007C\u0002\u0002\u2586\u2587\u0007V\u0002\u0002\u2587\u0656", + "\u0003\u0002\u0002\u0002\u2588\u2589\u0007K\u0002\u0002\u2589\u258a", + "\u0007U\u0002\u0002\u258a\u258b\u0007a\u0002\u0002\u258b\u258c\u0007", + "K\u0002\u0002\u258c\u258d\u0007R\u0002\u0002\u258d\u258e\u0007X\u0002", + "\u0002\u258e\u258f\u00076\u0002\u0002\u258f\u2590\u0007a\u0002\u0002", + "\u2590\u2591\u0007O\u0002\u0002\u2591\u2592\u0007C\u0002\u0002\u2592", + "\u2593\u0007R\u0002\u0002\u2593\u2594\u0007R\u0002\u0002\u2594\u2595", + "\u0007G\u0002\u0002\u2595\u2596\u0007F\u0002\u0002\u2596\u0658\u0003", + "\u0002\u0002\u0002\u2597\u2598\u0007K\u0002\u0002\u2598\u2599\u0007", + "U\u0002\u0002\u2599\u259a\u0007a\u0002\u0002\u259a\u259b\u0007K\u0002", + "\u0002\u259b\u259c\u0007R\u0002\u0002\u259c\u259d\u0007X\u0002\u0002", + "\u259d\u259e\u00078\u0002\u0002\u259e\u065a\u0003\u0002\u0002\u0002", + "\u259f\u25a0\u0007K\u0002\u0002\u25a0\u25a1\u0007U\u0002\u0002\u25a1", + "\u25a2\u0007a\u0002\u0002\u25a2\u25a3\u0007W\u0002\u0002\u25a3\u25a4", + "\u0007U\u0002\u0002\u25a4\u25a5\u0007G\u0002\u0002\u25a5\u25a6\u0007", + "F\u0002\u0002\u25a6\u25a7\u0007a\u0002\u0002\u25a7\u25a8\u0007N\u0002", + "\u0002\u25a8\u25a9\u0007Q\u0002\u0002\u25a9\u25aa\u0007E\u0002\u0002", + "\u25aa\u25ab\u0007M\u0002\u0002\u25ab\u065c\u0003\u0002\u0002\u0002", + "\u25ac\u25ad\u0007N\u0002\u0002\u25ad\u25ae\u0007C\u0002\u0002\u25ae", + "\u25af\u0007U\u0002\u0002\u25af\u25b0\u0007V\u0002\u0002\u25b0\u25b1", + "\u0007a\u0002\u0002\u25b1\u25b2\u0007K\u0002\u0002\u25b2\u25b3\u0007", + "P\u0002\u0002\u25b3\u25b4\u0007U\u0002\u0002\u25b4\u25b5\u0007G\u0002", + "\u0002\u25b5\u25b6\u0007T\u0002\u0002\u25b6\u25b7\u0007V\u0002\u0002", + "\u25b7\u25b8\u0007a\u0002\u0002\u25b8\u25b9\u0007K\u0002\u0002\u25b9", + "\u25ba\u0007F\u0002\u0002\u25ba\u065e\u0003\u0002\u0002\u0002\u25bb", + "\u25bc\u0007N\u0002\u0002\u25bc\u25bd\u0007E\u0002\u0002\u25bd\u25be", + "\u0007C\u0002\u0002\u25be\u25bf\u0007U\u0002\u0002\u25bf\u25c0\u0007", + "G\u0002\u0002\u25c0\u0660\u0003\u0002\u0002\u0002\u25c1\u25c2\u0007", + "N\u0002\u0002\u25c2\u25c3\u0007G\u0002\u0002\u25c3\u25c4\u0007C\u0002", + "\u0002\u25c4\u25c5\u0007U\u0002\u0002\u25c5\u25c6\u0007V\u0002\u0002", + "\u25c6\u0662\u0003\u0002\u0002\u0002\u25c7\u25c8\u0007N\u0002\u0002", + "\u25c8\u25c9\u0007G\u0002\u0002\u25c9\u25ca\u0007P\u0002\u0002\u25ca", + "\u25cb\u0007I\u0002\u0002\u25cb\u25cc\u0007V\u0002\u0002\u25cc\u25cd", + "\u0007J\u0002\u0002\u25cd\u0664\u0003\u0002\u0002\u0002\u25ce\u25cf", + "\u0007N\u0002\u0002\u25cf\u25d0\u0007K\u0002\u0002\u25d0\u25d1\u0007", + "P\u0002\u0002\u25d1\u25d2\u0007G\u0002\u0002\u25d2\u25d3\u0007H\u0002", + "\u0002\u25d3\u25d4\u0007T\u0002\u0002\u25d4\u25d5\u0007Q\u0002\u0002", + "\u25d5\u25d6\u0007O\u0002\u0002\u25d6\u25d7\u0007V\u0002\u0002\u25d7", + "\u25d8\u0007G\u0002\u0002\u25d8\u25d9\u0007Z\u0002\u0002\u25d9\u25da", + "\u0007V\u0002\u0002\u25da\u0666\u0003\u0002\u0002\u0002\u25db\u25dc", + "\u0007N\u0002\u0002\u25dc\u25dd\u0007K\u0002\u0002\u25dd\u25de\u0007", + "P\u0002\u0002\u25de\u25df\u0007G\u0002\u0002\u25df\u25e0\u0007H\u0002", + "\u0002\u25e0\u25e1\u0007T\u0002\u0002\u25e1\u25e2\u0007Q\u0002\u0002", + "\u25e2\u25e3\u0007O\u0002\u0002\u25e3\u25e4\u0007Y\u0002\u0002\u25e4", + "\u25e5\u0007M\u0002\u0002\u25e5\u25e6\u0007D\u0002\u0002\u25e6\u0668", + "\u0003\u0002\u0002\u0002\u25e7\u25e8\u0007N\u0002\u0002\u25e8\u25e9", + "\u0007K\u0002\u0002\u25e9\u25ea\u0007P\u0002\u0002\u25ea\u25eb\u0007", + "G\u0002\u0002\u25eb\u25ec\u0007U\u0002\u0002\u25ec\u25ed\u0007V\u0002", + "\u0002\u25ed\u25ee\u0007T\u0002\u0002\u25ee\u25ef\u0007K\u0002\u0002", + "\u25ef\u25f0\u0007P\u0002\u0002\u25f0\u25f1\u0007I\u0002\u0002\u25f1", + "\u25f2\u0007H\u0002\u0002\u25f2\u25f3\u0007T\u0002\u0002\u25f3\u25f4", + "\u0007Q\u0002\u0002\u25f4\u25f5\u0007O\u0002\u0002\u25f5\u25f6\u0007", + "V\u0002\u0002\u25f6\u25f7\u0007G\u0002\u0002\u25f7\u25f8\u0007Z\u0002", + "\u0002\u25f8\u25f9\u0007V\u0002\u0002\u25f9\u066a\u0003\u0002\u0002", + "\u0002\u25fa\u25fb\u0007N\u0002\u0002\u25fb\u25fc\u0007K\u0002\u0002", + "\u25fc\u25fd\u0007P\u0002\u0002\u25fd\u25fe\u0007G\u0002\u0002\u25fe", + "\u25ff\u0007U\u0002\u0002\u25ff\u2600\u0007V\u0002\u0002\u2600\u2601", + "\u0007T\u0002\u0002\u2601\u2602\u0007K\u0002\u0002\u2602\u2603\u0007", + "P\u0002\u0002\u2603\u2604\u0007I\u0002\u0002\u2604\u2605\u0007H\u0002", + "\u0002\u2605\u2606\u0007T\u0002\u0002\u2606\u2607\u0007Q\u0002\u0002", + "\u2607\u2608\u0007O\u0002\u0002\u2608\u2609\u0007Y\u0002\u0002\u2609", + "\u260a\u0007M\u0002\u0002\u260a\u260b\u0007D\u0002\u0002\u260b\u066c", + "\u0003\u0002\u0002\u0002\u260c\u260d\u0007N\u0002\u0002\u260d\u260e", + "\u0007P\u0002\u0002\u260e\u066e\u0003\u0002\u0002\u0002\u260f\u2610", + "\u0007N\u0002\u0002\u2610\u2611\u0007Q\u0002\u0002\u2611\u2612\u0007", + "C\u0002\u0002\u2612\u2613\u0007F\u0002\u0002\u2613\u2614\u0007a\u0002", + "\u0002\u2614\u2615\u0007H\u0002\u0002\u2615\u2616\u0007K\u0002\u0002", + "\u2616\u2617\u0007N\u0002\u0002\u2617\u2618\u0007G\u0002\u0002\u2618", + "\u0670\u0003\u0002\u0002\u0002\u2619\u261a\u0007N\u0002\u0002\u261a", + "\u261b\u0007Q\u0002\u0002\u261b\u261c\u0007E\u0002\u0002\u261c\u261d", + "\u0007C\u0002\u0002\u261d\u261e\u0007V\u0002\u0002\u261e\u261f\u0007", + "G\u0002\u0002\u261f\u0672\u0003\u0002\u0002\u0002\u2620\u2621\u0007", + "N\u0002\u0002\u2621\u2622\u0007Q\u0002\u0002\u2622\u2623\u0007I\u0002", + "\u0002\u2623\u0674\u0003\u0002\u0002\u0002\u2624\u2625\u0007N\u0002", + "\u0002\u2625\u2626\u0007Q\u0002\u0002\u2626\u2627\u0007I\u0002\u0002", + "\u2627\u2628\u00073\u0002\u0002\u2628\u2629\u00072\u0002\u0002\u2629", + "\u0676\u0003\u0002\u0002\u0002\u262a\u262b\u0007N\u0002\u0002\u262b", + "\u262c\u0007Q\u0002\u0002\u262c\u262d\u0007I\u0002\u0002\u262d\u262e", + "\u00074\u0002\u0002\u262e\u0678\u0003\u0002\u0002\u0002\u262f\u2630", + "\u0007N\u0002\u0002\u2630\u2631\u0007Q\u0002\u0002\u2631\u2632\u0007", + "Y\u0002\u0002\u2632\u2633\u0007G\u0002\u0002\u2633\u2634\u0007T\u0002", + "\u0002\u2634\u067a\u0003\u0002\u0002\u0002\u2635\u2636\u0007N\u0002", + "\u0002\u2636\u2637\u0007R\u0002\u0002\u2637\u2638\u0007C\u0002\u0002", + "\u2638\u2639\u0007F\u0002\u0002\u2639\u067c\u0003\u0002\u0002\u0002", + "\u263a\u263b\u0007N\u0002\u0002\u263b\u263c\u0007V\u0002\u0002\u263c", + "\u263d\u0007T\u0002\u0002\u263d\u263e\u0007K\u0002\u0002\u263e\u263f", + "\u0007O\u0002\u0002\u263f\u067e\u0003\u0002\u0002\u0002\u2640\u2641", + "\u0007O\u0002\u0002\u2641\u2642\u0007C\u0002\u0002\u2642\u2643\u0007", + "M\u0002\u0002\u2643\u2644\u0007G\u0002\u0002\u2644\u2645\u0007F\u0002", + "\u0002\u2645\u2646\u0007C\u0002\u0002\u2646\u2647\u0007V\u0002\u0002", + "\u2647\u2648\u0007G\u0002\u0002\u2648\u0680\u0003\u0002\u0002\u0002", + "\u2649\u264a\u0007O\u0002\u0002\u264a\u264b\u0007C\u0002\u0002\u264b", + "\u264c\u0007M\u0002\u0002\u264c\u264d\u0007G\u0002\u0002\u264d\u264e", + "\u0007V\u0002\u0002\u264e\u264f\u0007K\u0002\u0002\u264f\u2650\u0007", + "O\u0002\u0002\u2650\u2651\u0007G\u0002\u0002\u2651\u0682\u0003\u0002", + "\u0002\u0002\u2652\u2653\u0007O\u0002\u0002\u2653\u2654\u0007C\u0002", + "\u0002\u2654\u2655\u0007M\u0002\u0002\u2655\u2656\u0007G\u0002\u0002", + "\u2656\u2657\u0007a\u0002\u0002\u2657\u2658\u0007U\u0002\u0002\u2658", + "\u2659\u0007G\u0002\u0002\u2659\u265a\u0007V\u0002\u0002\u265a\u0684", + "\u0003\u0002\u0002\u0002\u265b\u265c\u0007O\u0002\u0002\u265c\u265d", + "\u0007C\u0002\u0002\u265d\u265e\u0007U\u0002\u0002\u265e\u265f\u0007", + "V\u0002\u0002\u265f\u2660\u0007G\u0002\u0002\u2660\u2661\u0007T\u0002", + "\u0002\u2661\u2662\u0007a\u0002\u0002\u2662\u2663\u0007R\u0002\u0002", + "\u2663\u2664\u0007Q\u0002\u0002\u2664\u2665\u0007U\u0002\u0002\u2665", + "\u2666\u0007a\u0002\u0002\u2666\u2667\u0007Y\u0002\u0002\u2667\u2668", + "\u0007C\u0002\u0002\u2668\u2669\u0007K\u0002\u0002\u2669\u266a\u0007", + "V\u0002\u0002\u266a\u0686\u0003\u0002\u0002\u0002\u266b\u266c\u0007", + "O\u0002\u0002\u266c\u266d\u0007D\u0002\u0002\u266d\u266e\u0007T\u0002", + "\u0002\u266e\u266f\u0007E\u0002\u0002\u266f\u2670\u0007Q\u0002\u0002", + "\u2670\u2671\u0007P\u0002\u0002\u2671\u2672\u0007V\u0002\u0002\u2672", + "\u2673\u0007C\u0002\u0002\u2673\u2674\u0007K\u0002\u0002\u2674\u2675", + "\u0007P\u0002\u0002\u2675\u2676\u0007U\u0002\u0002\u2676\u0688\u0003", + "\u0002\u0002\u0002\u2677\u2678\u0007O\u0002\u0002\u2678\u2679\u0007", + "D\u0002\u0002\u2679\u267a\u0007T\u0002\u0002\u267a\u267b\u0007F\u0002", + "\u0002\u267b\u267c\u0007K\u0002\u0002\u267c\u267d\u0007U\u0002\u0002", + "\u267d\u267e\u0007L\u0002\u0002\u267e\u267f\u0007Q\u0002\u0002\u267f", + "\u2680\u0007K\u0002\u0002\u2680\u2681\u0007P\u0002\u0002\u2681\u2682", + "\u0007V\u0002\u0002\u2682\u068a\u0003\u0002\u0002\u0002\u2683\u2684", + "\u0007O\u0002\u0002\u2684\u2685\u0007D\u0002\u0002\u2685\u2686\u0007", + "T\u0002\u0002\u2686\u2687\u0007G\u0002\u0002\u2687\u2688\u0007S\u0002", + "\u0002\u2688\u2689\u0007W\u0002\u0002\u2689\u268a\u0007C\u0002\u0002", + "\u268a\u268b\u0007N\u0002\u0002\u268b\u068c\u0003\u0002\u0002\u0002", + "\u268c\u268d\u0007O\u0002\u0002\u268d\u268e\u0007D\u0002\u0002\u268e", + "\u268f\u0007T\u0002\u0002\u268f\u2690\u0007K\u0002\u0002\u2690\u2691", + "\u0007P\u0002\u0002\u2691\u2692\u0007V\u0002\u0002\u2692\u2693\u0007", + "G\u0002\u0002\u2693\u2694\u0007T\u0002\u0002\u2694\u2695\u0007U\u0002", + "\u0002\u2695\u2696\u0007G\u0002\u0002\u2696\u2697\u0007E\u0002\u0002", + "\u2697\u2698\u0007V\u0002\u0002\u2698\u2699\u0007U\u0002\u0002\u2699", + "\u068e\u0003\u0002\u0002\u0002\u269a\u269b\u0007O\u0002\u0002\u269b", + "\u269c\u0007D\u0002\u0002\u269c\u269d\u0007T\u0002\u0002\u269d\u269e", + "\u0007Q\u0002\u0002\u269e\u269f\u0007X\u0002\u0002\u269f\u26a0\u0007", + "G\u0002\u0002\u26a0\u26a1\u0007T\u0002\u0002\u26a1\u26a2\u0007N\u0002", + "\u0002\u26a2\u26a3\u0007C\u0002\u0002\u26a3\u26a4\u0007R\u0002\u0002", + "\u26a4\u26a5\u0007U\u0002\u0002\u26a5\u0690\u0003\u0002\u0002\u0002", + "\u26a6\u26a7\u0007O\u0002\u0002\u26a7\u26a8\u0007D\u0002\u0002\u26a8", + "\u26a9\u0007T\u0002\u0002\u26a9\u26aa\u0007V\u0002\u0002\u26aa\u26ab", + "\u0007Q\u0002\u0002\u26ab\u26ac\u0007W\u0002\u0002\u26ac\u26ad\u0007", + "E\u0002\u0002\u26ad\u26ae\u0007J\u0002\u0002\u26ae\u26af\u0007G\u0002", + "\u0002\u26af\u26b0\u0007U\u0002\u0002\u26b0\u0692\u0003\u0002\u0002", + "\u0002\u26b1\u26b2\u0007O\u0002\u0002\u26b2\u26b3\u0007D\u0002\u0002", + "\u26b3\u26b4\u0007T\u0002\u0002\u26b4\u26b5\u0007Y\u0002\u0002\u26b5", + "\u26b6\u0007K\u0002\u0002\u26b6\u26b7\u0007V\u0002\u0002\u26b7\u26b8", + "\u0007J\u0002\u0002\u26b8\u26b9\u0007K\u0002\u0002\u26b9\u26ba\u0007", + "P\u0002\u0002\u26ba\u0694\u0003\u0002\u0002\u0002\u26bb\u26bc\u0007", + "O\u0002\u0002\u26bc\u26bd\u0007F\u0002\u0002\u26bd\u26be\u00077\u0002", + "\u0002\u26be\u0696\u0003\u0002\u0002\u0002\u26bf\u26c0\u0007O\u0002", + "\u0002\u26c0\u26c1\u0007N\u0002\u0002\u26c1\u26c2\u0007K\u0002\u0002", + "\u26c2\u26c3\u0007P\u0002\u0002\u26c3\u26c4\u0007G\u0002\u0002\u26c4", + "\u26c5\u0007H\u0002\u0002\u26c5\u26c6\u0007T\u0002\u0002\u26c6\u26c7", + "\u0007Q\u0002\u0002\u26c7\u26c8\u0007O\u0002\u0002\u26c8\u26c9\u0007", + "V\u0002\u0002\u26c9\u26ca\u0007G\u0002\u0002\u26ca\u26cb\u0007Z\u0002", + "\u0002\u26cb\u26cc\u0007V\u0002\u0002\u26cc\u0698\u0003\u0002\u0002", + "\u0002\u26cd\u26ce\u0007O\u0002\u0002\u26ce\u26cf\u0007N\u0002\u0002", + "\u26cf\u26d0\u0007K\u0002\u0002\u26d0\u26d1\u0007P\u0002\u0002\u26d1", + "\u26d2\u0007G\u0002\u0002\u26d2\u26d3\u0007H\u0002\u0002\u26d3\u26d4", + "\u0007T\u0002\u0002\u26d4\u26d5\u0007Q\u0002\u0002\u26d5\u26d6\u0007", + "O\u0002\u0002\u26d6\u26d7\u0007Y\u0002\u0002\u26d7\u26d8\u0007M\u0002", + "\u0002\u26d8\u26d9\u0007D\u0002\u0002\u26d9\u069a\u0003\u0002\u0002", + "\u0002\u26da\u26db\u0007O\u0002\u0002\u26db\u26dc\u0007Q\u0002\u0002", + "\u26dc\u26dd\u0007P\u0002\u0002\u26dd\u26de\u0007V\u0002\u0002\u26de", + "\u26df\u0007J\u0002\u0002\u26df\u26e0\u0007P\u0002\u0002\u26e0\u26e1", + "\u0007C\u0002\u0002\u26e1\u26e2\u0007O\u0002\u0002\u26e2\u26e3\u0007", + "G\u0002\u0002\u26e3\u069c\u0003\u0002\u0002\u0002\u26e4\u26e5\u0007", + "O\u0002\u0002\u26e5\u26e6\u0007R\u0002\u0002\u26e6\u26e7\u0007Q\u0002", + "\u0002\u26e7\u26e8\u0007K\u0002\u0002\u26e8\u26e9\u0007P\u0002\u0002", + "\u26e9\u26ea\u0007V\u0002\u0002\u26ea\u26eb\u0007H\u0002\u0002\u26eb", + "\u26ec\u0007T\u0002\u0002\u26ec\u26ed\u0007Q\u0002\u0002\u26ed\u26ee", + "\u0007O\u0002\u0002\u26ee\u26ef\u0007V\u0002\u0002\u26ef\u26f0\u0007", + "G\u0002\u0002\u26f0\u26f1\u0007Z\u0002\u0002\u26f1\u26f2\u0007V\u0002", + "\u0002\u26f2\u069e\u0003\u0002\u0002\u0002\u26f3\u26f4\u0007O\u0002", + "\u0002\u26f4\u26f5\u0007R\u0002\u0002\u26f5\u26f6\u0007Q\u0002\u0002", + "\u26f6\u26f7\u0007K\u0002\u0002\u26f7\u26f8\u0007P\u0002\u0002\u26f8", + "\u26f9\u0007V\u0002\u0002\u26f9\u26fa\u0007H\u0002\u0002\u26fa\u26fb", + "\u0007T\u0002\u0002\u26fb\u26fc\u0007Q\u0002\u0002\u26fc\u26fd\u0007", + "O\u0002\u0002\u26fd\u26fe\u0007Y\u0002\u0002\u26fe\u26ff\u0007M\u0002", + "\u0002\u26ff\u2700\u0007D\u0002\u0002\u2700\u06a0\u0003\u0002\u0002", + "\u0002\u2701\u2702\u0007O\u0002\u0002\u2702\u2703\u0007R\u0002\u0002", + "\u2703\u2704\u0007Q\u0002\u0002\u2704\u2705\u0007N\u0002\u0002\u2705", + "\u2706\u0007[\u0002\u0002\u2706\u2707\u0007H\u0002\u0002\u2707\u2708", + "\u0007T\u0002\u0002\u2708\u2709\u0007Q\u0002\u0002\u2709\u270a\u0007", + "O\u0002\u0002\u270a\u270b\u0007V\u0002\u0002\u270b\u270c\u0007G\u0002", + "\u0002\u270c\u270d\u0007Z\u0002\u0002\u270d\u270e\u0007V\u0002\u0002", + "\u270e\u06a2\u0003\u0002\u0002\u0002\u270f\u2710\u0007O\u0002\u0002", + "\u2710\u2711\u0007R\u0002\u0002\u2711\u2712\u0007Q\u0002\u0002\u2712", + "\u2713\u0007N\u0002\u0002\u2713\u2714\u0007[\u0002\u0002\u2714\u2715", + "\u0007H\u0002\u0002\u2715\u2716\u0007T\u0002\u0002\u2716\u2717\u0007", + "Q\u0002\u0002\u2717\u2718\u0007O\u0002\u0002\u2718\u2719\u0007Y\u0002", + "\u0002\u2719\u271a\u0007M\u0002\u0002\u271a\u271b\u0007D\u0002\u0002", + "\u271b\u06a4\u0003\u0002\u0002\u0002\u271c\u271d\u0007O\u0002\u0002", + "\u271d\u271e\u0007W\u0002\u0002\u271e\u271f\u0007N\u0002\u0002\u271f", + "\u2720\u0007V\u0002\u0002\u2720\u2721\u0007K\u0002\u0002\u2721\u2722", + "\u0007N\u0002\u0002\u2722\u2723\u0007K\u0002\u0002\u2723\u2724\u0007", + "P\u0002\u0002\u2724\u2725\u0007G\u0002\u0002\u2725\u2726\u0007U\u0002", + "\u0002\u2726\u2727\u0007V\u0002\u0002\u2727\u2728\u0007T\u0002\u0002", + "\u2728\u2729\u0007K\u0002\u0002\u2729\u272a\u0007P\u0002\u0002\u272a", + "\u272b\u0007I\u0002\u0002\u272b\u272c\u0007H\u0002\u0002\u272c\u272d", + "\u0007T\u0002\u0002\u272d\u272e\u0007Q\u0002\u0002\u272e\u272f\u0007", + "O\u0002\u0002\u272f\u2730\u0007V\u0002\u0002\u2730\u2731\u0007G\u0002", + "\u0002\u2731\u2732\u0007Z\u0002\u0002\u2732\u2733\u0007V\u0002\u0002", + "\u2733\u06a6\u0003\u0002\u0002\u0002\u2734\u2735\u0007O\u0002\u0002", + "\u2735\u2736\u0007W\u0002\u0002\u2736\u2737\u0007N\u0002\u0002\u2737", + "\u2738\u0007V\u0002\u0002\u2738\u2739\u0007K\u0002\u0002\u2739\u273a", + "\u0007N\u0002\u0002\u273a\u273b\u0007K\u0002\u0002\u273b\u273c\u0007", + "P\u0002\u0002\u273c\u273d\u0007G\u0002\u0002\u273d\u273e\u0007U\u0002", + "\u0002\u273e\u273f\u0007V\u0002\u0002\u273f\u2740\u0007T\u0002\u0002", + "\u2740\u2741\u0007K\u0002\u0002\u2741\u2742\u0007P\u0002\u0002\u2742", + "\u2743\u0007I\u0002\u0002\u2743\u2744\u0007H\u0002\u0002\u2744\u2745", + "\u0007T\u0002\u0002\u2745\u2746\u0007Q\u0002\u0002\u2746\u2747\u0007", + "O\u0002\u0002\u2747\u2748\u0007Y\u0002\u0002\u2748\u2749\u0007M\u0002", + "\u0002\u2749\u274a\u0007D\u0002\u0002\u274a\u06a8\u0003\u0002\u0002", + "\u0002\u274b\u274c\u0007O\u0002\u0002\u274c\u274d\u0007W\u0002\u0002", + "\u274d\u274e\u0007N\u0002\u0002\u274e\u274f\u0007V\u0002\u0002\u274f", + "\u2750\u0007K\u0002\u0002\u2750\u2751\u0007R\u0002\u0002\u2751\u2752", + "\u0007Q\u0002\u0002\u2752\u2753\u0007K\u0002\u0002\u2753\u2754\u0007", + "P\u0002\u0002\u2754\u2755\u0007V\u0002\u0002\u2755\u2756\u0007H\u0002", + "\u0002\u2756\u2757\u0007T\u0002\u0002\u2757\u2758\u0007Q\u0002\u0002", + "\u2758\u2759\u0007O\u0002\u0002\u2759\u275a\u0007V\u0002\u0002\u275a", + "\u275b\u0007G\u0002\u0002\u275b\u275c\u0007Z\u0002\u0002\u275c\u275d", + "\u0007V\u0002\u0002\u275d\u06aa\u0003\u0002\u0002\u0002\u275e\u275f", + "\u0007O\u0002\u0002\u275f\u2760\u0007W\u0002\u0002\u2760\u2761\u0007", + "N\u0002\u0002\u2761\u2762\u0007V\u0002\u0002\u2762\u2763\u0007K\u0002", + "\u0002\u2763\u2764\u0007R\u0002\u0002\u2764\u2765\u0007Q\u0002\u0002", + "\u2765\u2766\u0007K\u0002\u0002\u2766\u2767\u0007P\u0002\u0002\u2767", + "\u2768\u0007V\u0002\u0002\u2768\u2769\u0007H\u0002\u0002\u2769\u276a", + "\u0007T\u0002\u0002\u276a\u276b\u0007Q\u0002\u0002\u276b\u276c\u0007", + "O\u0002\u0002\u276c\u276d\u0007Y\u0002\u0002\u276d\u276e\u0007M\u0002", + "\u0002\u276e\u276f\u0007D\u0002\u0002\u276f\u06ac\u0003\u0002\u0002", + "\u0002\u2770\u2771\u0007O\u0002\u0002\u2771\u2772\u0007W\u0002\u0002", + "\u2772\u2773\u0007N\u0002\u0002\u2773\u2774\u0007V\u0002\u0002\u2774", + "\u2775\u0007K\u0002\u0002\u2775\u2776\u0007R\u0002\u0002\u2776\u2777", + "\u0007Q\u0002\u0002\u2777\u2778\u0007N\u0002\u0002\u2778\u2779\u0007", + "[\u0002\u0002\u2779\u277a\u0007I\u0002\u0002\u277a\u277b\u0007Q\u0002", + "\u0002\u277b\u277c\u0007P\u0002\u0002\u277c\u277d\u0007H\u0002\u0002", + "\u277d\u277e\u0007T\u0002\u0002\u277e\u277f\u0007Q\u0002\u0002\u277f", + "\u2780\u0007O\u0002\u0002\u2780\u2781\u0007V\u0002\u0002\u2781\u2782", + "\u0007G\u0002\u0002\u2782\u2783\u0007Z\u0002\u0002\u2783\u2784\u0007", + "V\u0002\u0002\u2784\u06ae\u0003\u0002\u0002\u0002\u2785\u2786\u0007", + "O\u0002\u0002\u2786\u2787\u0007W\u0002\u0002\u2787\u2788\u0007N\u0002", + "\u0002\u2788\u2789\u0007V\u0002\u0002\u2789\u278a\u0007K\u0002\u0002", + "\u278a\u278b\u0007R\u0002\u0002\u278b\u278c\u0007Q\u0002\u0002\u278c", + "\u278d\u0007N\u0002\u0002\u278d\u278e\u0007[\u0002\u0002\u278e\u278f", + "\u0007I\u0002\u0002\u278f\u2790\u0007Q\u0002\u0002\u2790\u2791\u0007", + "P\u0002\u0002\u2791\u2792\u0007H\u0002\u0002\u2792\u2793\u0007T\u0002", + "\u0002\u2793\u2794\u0007Q\u0002\u0002\u2794\u2795\u0007O\u0002\u0002", + "\u2795\u2796\u0007Y\u0002\u0002\u2796\u2797\u0007M\u0002\u0002\u2797", + "\u2798\u0007D\u0002\u0002\u2798\u06b0\u0003\u0002\u0002\u0002\u2799", + "\u279a\u0007P\u0002\u0002\u279a\u279b\u0007C\u0002\u0002\u279b\u279c", + "\u0007O\u0002\u0002\u279c\u279d\u0007G\u0002\u0002\u279d\u279e\u0007", + "a\u0002\u0002\u279e\u279f\u0007E\u0002\u0002\u279f\u27a0\u0007Q\u0002", + "\u0002\u27a0\u27a1\u0007P\u0002\u0002\u27a1\u27a2\u0007U\u0002\u0002", + "\u27a2\u27a3\u0007V\u0002\u0002\u27a3\u06b2\u0003\u0002\u0002\u0002", + "\u27a4\u27a5\u0007P\u0002\u0002\u27a5\u27a6\u0007W\u0002\u0002\u27a6", + "\u27a7\u0007N\u0002\u0002\u27a7\u27a8\u0007N\u0002\u0002\u27a8\u27a9", + "\u0007K\u0002\u0002\u27a9\u27aa\u0007H\u0002\u0002\u27aa\u06b4\u0003", + "\u0002\u0002\u0002\u27ab\u27ac\u0007P\u0002\u0002\u27ac\u27ad\u0007", + "W\u0002\u0002\u27ad\u27ae\u0007O\u0002\u0002\u27ae\u27af\u0007I\u0002", + "\u0002\u27af\u27b0\u0007G\u0002\u0002\u27b0\u27b1\u0007Q\u0002\u0002", + "\u27b1\u27b2\u0007O\u0002\u0002\u27b2\u27b3\u0007G\u0002\u0002\u27b3", + "\u27b4\u0007V\u0002\u0002\u27b4\u27b5\u0007T\u0002\u0002\u27b5\u27b6", + "\u0007K\u0002\u0002\u27b6\u27b7\u0007G\u0002\u0002\u27b7\u27b8\u0007", + "U\u0002\u0002\u27b8\u06b6\u0003\u0002\u0002\u0002\u27b9\u27ba\u0007", + "P\u0002\u0002\u27ba\u27bb\u0007W\u0002\u0002\u27bb\u27bc\u0007O\u0002", + "\u0002\u27bc\u27bd\u0007K\u0002\u0002\u27bd\u27be\u0007P\u0002\u0002", + "\u27be\u27bf\u0007V\u0002\u0002\u27bf\u27c0\u0007G\u0002\u0002\u27c0", + "\u27c1\u0007T\u0002\u0002\u27c1\u27c2\u0007K\u0002\u0002\u27c2\u27c3", + "\u0007Q\u0002\u0002\u27c3\u27c4\u0007T\u0002\u0002\u27c4\u27c5\u0007", + "T\u0002\u0002\u27c5\u27c6\u0007K\u0002\u0002\u27c6\u27c7\u0007P\u0002", + "\u0002\u27c7\u27c8\u0007I\u0002\u0002\u27c8\u27c9\u0007U\u0002\u0002", + "\u27c9\u06b8\u0003\u0002\u0002\u0002\u27ca\u27cb\u0007P\u0002\u0002", + "\u27cb\u27cc\u0007W\u0002\u0002\u27cc\u27cd\u0007O\u0002\u0002\u27cd", + "\u27ce\u0007R\u0002\u0002\u27ce\u27cf\u0007Q\u0002\u0002\u27cf\u27d0", + "\u0007K\u0002\u0002\u27d0\u27d1\u0007P\u0002\u0002\u27d1\u27d2\u0007", + "V\u0002\u0002\u27d2\u27d3\u0007U\u0002\u0002\u27d3\u06ba\u0003\u0002", + "\u0002\u0002\u27d4\u27d5\u0007Q\u0002\u0002\u27d5\u27d6\u0007E\u0002", + "\u0002\u27d6\u27d7\u0007V\u0002\u0002\u27d7\u06bc\u0003\u0002\u0002", + "\u0002\u27d8\u27d9\u0007Q\u0002\u0002\u27d9\u27da\u0007E\u0002\u0002", + "\u27da\u27db\u0007V\u0002\u0002\u27db\u27dc\u0007G\u0002\u0002\u27dc", + "\u27dd\u0007V\u0002\u0002\u27dd\u27de\u0007a\u0002\u0002\u27de\u27df", + "\u0007N\u0002\u0002\u27df\u27e0\u0007G\u0002\u0002\u27e0\u27e1\u0007", + "P\u0002\u0002\u27e1\u27e2\u0007I\u0002\u0002\u27e2\u27e3\u0007V\u0002", + "\u0002\u27e3\u27e4\u0007J\u0002\u0002\u27e4\u06be\u0003\u0002\u0002", + "\u0002\u27e5\u27e6\u0007Q\u0002\u0002\u27e6\u27e7\u0007T\u0002\u0002", + "\u27e7\u27e8\u0007F\u0002\u0002\u27e8\u06c0\u0003\u0002\u0002\u0002", + "\u27e9\u27ea\u0007Q\u0002\u0002\u27ea\u27eb\u0007X\u0002\u0002\u27eb", + "\u27ec\u0007G\u0002\u0002\u27ec\u27ed\u0007T\u0002\u0002\u27ed\u27ee", + "\u0007N\u0002\u0002\u27ee\u27ef\u0007C\u0002\u0002\u27ef\u27f0\u0007", + "R\u0002\u0002\u27f0\u27f1\u0007U\u0002\u0002\u27f1\u06c2\u0003\u0002", + "\u0002\u0002\u27f2\u27f3\u0007R\u0002\u0002\u27f3\u27f4\u0007G\u0002", + "\u0002\u27f4\u27f5\u0007T\u0002\u0002\u27f5\u27f6\u0007K\u0002\u0002", + "\u27f6\u27f7\u0007Q\u0002\u0002\u27f7\u27f8\u0007F\u0002\u0002\u27f8", + "\u27f9\u0007a\u0002\u0002\u27f9\u27fa\u0007C\u0002\u0002\u27fa\u27fb", + "\u0007F\u0002\u0002\u27fb\u27fc\u0007F\u0002\u0002\u27fc\u06c4\u0003", + "\u0002\u0002\u0002\u27fd\u27fe\u0007R\u0002\u0002\u27fe\u27ff\u0007", + "G\u0002\u0002\u27ff\u2800\u0007T\u0002\u0002\u2800\u2801\u0007K\u0002", + "\u0002\u2801\u2802\u0007Q\u0002\u0002\u2802\u2803\u0007F\u0002\u0002", + "\u2803\u2804\u0007a\u0002\u0002\u2804\u2805\u0007F\u0002\u0002\u2805", + "\u2806\u0007K\u0002\u0002\u2806\u2807\u0007H\u0002\u0002\u2807\u2808", + "\u0007H\u0002\u0002\u2808\u06c6\u0003\u0002\u0002\u0002\u2809\u280a", + "\u0007R\u0002\u0002\u280a\u280b\u0007K\u0002\u0002\u280b\u06c8\u0003", + "\u0002\u0002\u0002\u280c\u280d\u0007R\u0002\u0002\u280d\u280e\u0007", + "Q\u0002\u0002\u280e\u280f\u0007K\u0002\u0002\u280f\u2810\u0007P\u0002", + "\u0002\u2810\u2811\u0007V\u0002\u0002\u2811\u2812\u0007H\u0002\u0002", + "\u2812\u2813\u0007T\u0002\u0002\u2813\u2814\u0007Q\u0002\u0002\u2814", + "\u2815\u0007O\u0002\u0002\u2815\u2816\u0007V\u0002\u0002\u2816\u2817", + "\u0007G\u0002\u0002\u2817\u2818\u0007Z\u0002\u0002\u2818\u2819\u0007", + "V\u0002\u0002\u2819\u06ca\u0003\u0002\u0002\u0002\u281a\u281b\u0007", + "R\u0002\u0002\u281b\u281c\u0007Q\u0002\u0002\u281c\u281d\u0007K\u0002", + "\u0002\u281d\u281e\u0007P\u0002\u0002\u281e\u281f\u0007V\u0002\u0002", + "\u281f\u2820\u0007H\u0002\u0002\u2820\u2821\u0007T\u0002\u0002\u2821", + "\u2822\u0007Q\u0002\u0002\u2822\u2823\u0007O\u0002\u0002\u2823\u2824", + "\u0007Y\u0002\u0002\u2824\u2825\u0007M\u0002\u0002\u2825\u2826\u0007", + "D\u0002\u0002\u2826\u06cc\u0003\u0002\u0002\u0002\u2827\u2828\u0007", + "R\u0002\u0002\u2828\u2829\u0007Q\u0002\u0002\u2829\u282a\u0007K\u0002", + "\u0002\u282a\u282b\u0007P\u0002\u0002\u282b\u282c\u0007V\u0002\u0002", + "\u282c\u282d\u0007P\u0002\u0002\u282d\u06ce\u0003\u0002\u0002\u0002", + "\u282e\u282f\u0007R\u0002\u0002\u282f\u2830\u0007Q\u0002\u0002\u2830", + "\u2831\u0007N\u0002\u0002\u2831\u2832\u0007[\u0002\u0002\u2832\u2833", + "\u0007H\u0002\u0002\u2833\u2834\u0007T\u0002\u0002\u2834\u2835\u0007", + "Q\u0002\u0002\u2835\u2836\u0007O\u0002\u0002\u2836\u2837\u0007V\u0002", + "\u0002\u2837\u2838\u0007G\u0002\u0002\u2838\u2839\u0007Z\u0002\u0002", + "\u2839\u283a\u0007V\u0002\u0002\u283a\u06d0\u0003\u0002\u0002\u0002", + "\u283b\u283c\u0007R\u0002\u0002\u283c\u283d\u0007Q\u0002\u0002\u283d", + "\u283e\u0007N\u0002\u0002\u283e\u283f\u0007[\u0002\u0002\u283f\u2840", + "\u0007H\u0002\u0002\u2840\u2841\u0007T\u0002\u0002\u2841\u2842\u0007", + "Q\u0002\u0002\u2842\u2843\u0007O\u0002\u0002\u2843\u2844\u0007Y\u0002", + "\u0002\u2844\u2845\u0007M\u0002\u0002\u2845\u2846\u0007D\u0002\u0002", + "\u2846\u06d2\u0003\u0002\u0002\u0002\u2847\u2848\u0007R\u0002\u0002", + "\u2848\u2849\u0007Q\u0002\u0002\u2849\u284a\u0007N\u0002\u0002\u284a", + "\u284b\u0007[\u0002\u0002\u284b\u284c\u0007I\u0002\u0002\u284c\u284d", + "\u0007Q\u0002\u0002\u284d\u284e\u0007P\u0002\u0002\u284e\u284f\u0007", + "H\u0002\u0002\u284f\u2850\u0007T\u0002\u0002\u2850\u2851\u0007Q\u0002", + "\u0002\u2851\u2852\u0007O\u0002\u0002\u2852\u2853\u0007V\u0002\u0002", + "\u2853\u2854\u0007G\u0002\u0002\u2854\u2855\u0007Z\u0002\u0002\u2855", + "\u2856\u0007V\u0002\u0002\u2856\u06d4\u0003\u0002\u0002\u0002\u2857", + "\u2858\u0007R\u0002\u0002\u2858\u2859\u0007Q\u0002\u0002\u2859\u285a", + "\u0007N\u0002\u0002\u285a\u285b\u0007[\u0002\u0002\u285b\u285c\u0007", + "I\u0002\u0002\u285c\u285d\u0007Q\u0002\u0002\u285d\u285e\u0007P\u0002", + "\u0002\u285e\u285f\u0007H\u0002\u0002\u285f\u2860\u0007T\u0002\u0002", + "\u2860\u2861\u0007Q\u0002\u0002\u2861\u2862\u0007O\u0002\u0002\u2862", + "\u2863\u0007Y\u0002\u0002\u2863\u2864\u0007M\u0002\u0002\u2864\u2865", + "\u0007D\u0002\u0002\u2865\u06d6\u0003\u0002\u0002\u0002\u2866\u2867", + "\u0007R\u0002\u0002\u2867\u2868\u0007Q\u0002\u0002\u2868\u2869\u0007", + "Y\u0002\u0002\u2869\u06d8\u0003\u0002\u0002\u0002\u286a\u286b\u0007", + "R\u0002\u0002\u286b\u286c\u0007Q\u0002\u0002\u286c\u286d\u0007Y\u0002", + "\u0002\u286d\u286e\u0007G\u0002\u0002\u286e\u286f\u0007T\u0002\u0002", + "\u286f\u06da\u0003\u0002\u0002\u0002\u2870\u2871\u0007S\u0002\u0002", + "\u2871\u2872\u0007W\u0002\u0002\u2872\u2873\u0007Q\u0002\u0002\u2873", + "\u2874\u0007V\u0002\u0002\u2874\u2875\u0007G\u0002\u0002\u2875\u06dc", + "\u0003\u0002\u0002\u0002\u2876\u2877\u0007T\u0002\u0002\u2877\u2878", + "\u0007C\u0002\u0002\u2878\u2879\u0007F\u0002\u0002\u2879\u287a\u0007", + "K\u0002\u0002\u287a\u287b\u0007C\u0002\u0002\u287b\u287c\u0007P\u0002", + "\u0002\u287c\u287d\u0007U\u0002\u0002\u287d\u06de\u0003\u0002\u0002", + "\u0002\u287e\u287f\u0007T\u0002\u0002\u287f\u2880\u0007C\u0002\u0002", + "\u2880\u2881\u0007P\u0002\u0002\u2881\u2882\u0007F\u0002\u0002\u2882", + "\u06e0\u0003\u0002\u0002\u0002\u2883\u2884\u0007T\u0002\u0002\u2884", + "\u2885\u0007C\u0002\u0002\u2885\u2886\u0007P\u0002\u0002\u2886\u2887", + "\u0007F\u0002\u0002\u2887\u2888\u0007Q\u0002\u0002\u2888\u2889\u0007", + "O\u0002\u0002\u2889\u288a\u0007a\u0002\u0002\u288a\u288b\u0007D\u0002", + "\u0002\u288b\u288c\u0007[\u0002\u0002\u288c\u288d\u0007V\u0002\u0002", + "\u288d\u288e\u0007G\u0002\u0002\u288e\u288f\u0007U\u0002\u0002\u288f", + "\u06e2\u0003\u0002\u0002\u0002\u2890\u2891\u0007T\u0002\u0002\u2891", + "\u2892\u0007G\u0002\u0002\u2892\u2893\u0007N\u0002\u0002\u2893\u2894", + "\u0007G\u0002\u0002\u2894\u2895\u0007C\u0002\u0002\u2895\u2896\u0007", + "U\u0002\u0002\u2896\u2897\u0007G\u0002\u0002\u2897\u2898\u0007a\u0002", + "\u0002\u2898\u2899\u0007N\u0002\u0002\u2899\u289a\u0007Q\u0002\u0002", + "\u289a\u289b\u0007E\u0002\u0002\u289b\u289c\u0007M\u0002\u0002\u289c", + "\u06e4\u0003\u0002\u0002\u0002\u289d\u289e\u0007T\u0002\u0002\u289e", + "\u289f\u0007G\u0002\u0002\u289f\u28a0\u0007X\u0002\u0002\u28a0\u28a1", + "\u0007G\u0002\u0002\u28a1\u28a2\u0007T\u0002\u0002\u28a2\u28a3\u0007", + "U\u0002\u0002\u28a3\u28a4\u0007G\u0002\u0002\u28a4\u06e6\u0003\u0002", + "\u0002\u0002\u28a5\u28a6\u0007T\u0002\u0002\u28a6\u28a7\u0007Q\u0002", + "\u0002\u28a7\u28a8\u0007W\u0002\u0002\u28a8\u28a9\u0007P\u0002\u0002", + "\u28a9\u28aa\u0007F\u0002\u0002\u28aa\u06e8\u0003\u0002\u0002\u0002", + "\u28ab\u28ac\u0007T\u0002\u0002\u28ac\u28ad\u0007Q\u0002\u0002\u28ad", + "\u28ae\u0007Y\u0002\u0002\u28ae\u28af\u0007a\u0002\u0002\u28af\u28b0", + "\u0007E\u0002\u0002\u28b0\u28b1\u0007Q\u0002\u0002\u28b1\u28b2\u0007", + "W\u0002\u0002\u28b2\u28b3\u0007P\u0002\u0002\u28b3\u28b4\u0007V\u0002", + "\u0002\u28b4\u06ea\u0003\u0002\u0002\u0002\u28b5\u28b6\u0007T\u0002", + "\u0002\u28b6\u28b7\u0007R\u0002\u0002\u28b7\u28b8\u0007C\u0002\u0002", + "\u28b8\u28b9\u0007F\u0002\u0002\u28b9\u06ec\u0003\u0002\u0002\u0002", + "\u28ba\u28bb\u0007T\u0002\u0002\u28bb\u28bc\u0007V\u0002\u0002\u28bc", + "\u28bd\u0007T\u0002\u0002\u28bd\u28be\u0007K\u0002\u0002\u28be\u28bf", + "\u0007O\u0002\u0002\u28bf\u06ee\u0003\u0002\u0002\u0002\u28c0\u28c1", + "\u0007U\u0002\u0002\u28c1\u28c2\u0007G\u0002\u0002\u28c2\u28c3\u0007", + "E\u0002\u0002\u28c3\u28c4\u0007a\u0002\u0002\u28c4\u28c5\u0007V\u0002", + "\u0002\u28c5\u28c6\u0007Q\u0002\u0002\u28c6\u28c7\u0007a\u0002\u0002", + "\u28c7\u28c8\u0007V\u0002\u0002\u28c8\u28c9\u0007K\u0002\u0002\u28c9", + "\u28ca\u0007O\u0002\u0002\u28ca\u28cb\u0007G\u0002\u0002\u28cb\u06f0", + "\u0003\u0002\u0002\u0002\u28cc\u28cd\u0007U\u0002\u0002\u28cd\u28ce", + "\u0007G\u0002\u0002\u28ce\u28cf\u0007U\u0002\u0002\u28cf\u28d0\u0007", + "U\u0002\u0002\u28d0\u28d1\u0007K\u0002\u0002\u28d1\u28d2\u0007Q\u0002", + "\u0002\u28d2\u28d3\u0007P\u0002\u0002\u28d3\u28d4\u0007a\u0002\u0002", + "\u28d4\u28d5\u0007W\u0002\u0002\u28d5\u28d6\u0007U\u0002\u0002\u28d6", + "\u28d7\u0007G\u0002\u0002\u28d7\u28d8\u0007T\u0002\u0002\u28d8\u06f2", + "\u0003\u0002\u0002\u0002\u28d9\u28da\u0007U\u0002\u0002\u28da\u28db", + "\u0007J\u0002\u0002\u28db\u28dc\u0007C\u0002\u0002\u28dc\u06f4\u0003", + "\u0002\u0002\u0002\u28dd\u28de\u0007U\u0002\u0002\u28de\u28df\u0007", + "J\u0002\u0002\u28df\u28e0\u0007C\u0002\u0002\u28e0\u28e1\u00073\u0002", + "\u0002\u28e1\u06f6\u0003\u0002\u0002\u0002\u28e2\u28e3\u0007U\u0002", + "\u0002\u28e3\u28e4\u0007J\u0002\u0002\u28e4\u28e5\u0007C\u0002\u0002", + "\u28e5\u28e6\u00074\u0002\u0002\u28e6\u06f8\u0003\u0002\u0002\u0002", + "\u28e7\u28e8\u0007U\u0002\u0002\u28e8\u28e9\u0007E\u0002\u0002\u28e9", + "\u28ea\u0007J\u0002\u0002\u28ea\u28eb\u0007G\u0002\u0002\u28eb\u28ec", + "\u0007O\u0002\u0002\u28ec\u28ed\u0007C\u0002\u0002\u28ed\u28ee\u0007", + "a\u0002\u0002\u28ee\u28ef\u0007P\u0002\u0002\u28ef\u28f0\u0007C\u0002", + "\u0002\u28f0\u28f1\u0007O\u0002\u0002\u28f1\u28f2\u0007G\u0002\u0002", + "\u28f2\u06fa\u0003\u0002\u0002\u0002\u28f3\u28f4\u0007U\u0002\u0002", + "\u28f4\u28f5\u0007K\u0002\u0002\u28f5\u28f6\u0007I\u0002\u0002\u28f6", + "\u28f7\u0007P\u0002\u0002\u28f7\u06fc\u0003\u0002\u0002\u0002\u28f8", + "\u28f9\u0007U\u0002\u0002\u28f9\u28fa\u0007K\u0002\u0002\u28fa\u28fb", + "\u0007P\u0002\u0002\u28fb\u06fe\u0003\u0002\u0002\u0002\u28fc\u28fd", + "\u0007U\u0002\u0002\u28fd\u28fe\u0007N\u0002\u0002\u28fe\u28ff\u0007", + "G\u0002\u0002\u28ff\u2900\u0007G\u0002\u0002\u2900\u2901\u0007R\u0002", + "\u0002\u2901\u0700\u0003\u0002\u0002\u0002\u2902\u2903\u0007U\u0002", + "\u0002\u2903\u2904\u0007Q\u0002\u0002\u2904\u2905\u0007W\u0002\u0002", + "\u2905\u2906\u0007P\u0002\u0002\u2906\u2907\u0007F\u0002\u0002\u2907", + "\u2908\u0007G\u0002\u0002\u2908\u2909\u0007Z\u0002\u0002\u2909\u0702", + "\u0003\u0002\u0002\u0002\u290a\u290b\u0007U\u0002\u0002\u290b\u290c", + "\u0007S\u0002\u0002\u290c\u290d\u0007N\u0002\u0002\u290d\u290e\u0007", + "a\u0002\u0002\u290e\u290f\u0007V\u0002\u0002\u290f\u2910\u0007J\u0002", + "\u0002\u2910\u2911\u0007T\u0002\u0002\u2911\u2912\u0007G\u0002\u0002", + "\u2912\u2913\u0007C\u0002\u0002\u2913\u2914\u0007F\u0002\u0002\u2914", + "\u2915\u0007a\u0002\u0002\u2915\u2916\u0007Y\u0002\u0002\u2916\u2917", + "\u0007C\u0002\u0002\u2917\u2918\u0007K\u0002\u0002\u2918\u2919\u0007", + "V\u0002\u0002\u2919\u291a\u0007a\u0002\u0002\u291a\u291b\u0007C\u0002", + "\u0002\u291b\u291c\u0007H\u0002\u0002\u291c\u291d\u0007V\u0002\u0002", + "\u291d\u291e\u0007G\u0002\u0002\u291e\u291f\u0007T\u0002\u0002\u291f", + "\u2920\u0007a\u0002\u0002\u2920\u2921\u0007I\u0002\u0002\u2921\u2922", + "\u0007V\u0002\u0002\u2922\u2923\u0007K\u0002\u0002\u2923\u2924\u0007", + "F\u0002\u0002\u2924\u2925\u0007U\u0002\u0002\u2925\u0704\u0003\u0002", + "\u0002\u0002\u2926\u2927\u0007U\u0002\u0002\u2927\u2928\u0007S\u0002", + "\u0002\u2928\u2929\u0007T\u0002\u0002\u2929\u292a\u0007V\u0002\u0002", + "\u292a\u0706\u0003\u0002\u0002\u0002\u292b\u292c\u0007U\u0002\u0002", + "\u292c\u292d\u0007T\u0002\u0002\u292d\u292e\u0007K\u0002\u0002\u292e", + "\u292f\u0007F\u0002\u0002\u292f\u0708\u0003\u0002\u0002\u0002\u2930", + "\u2931\u0007U\u0002\u0002\u2931\u2932\u0007V\u0002\u0002\u2932\u2933", + "\u0007C\u0002\u0002\u2933\u2934\u0007T\u0002\u0002\u2934\u2935\u0007", + "V\u0002\u0002\u2935\u2936\u0007R\u0002\u0002\u2936\u2937\u0007Q\u0002", + "\u0002\u2937\u2938\u0007K\u0002\u0002\u2938\u2939\u0007P\u0002\u0002", + "\u2939\u293a\u0007V\u0002\u0002\u293a\u070a\u0003\u0002\u0002\u0002", + "\u293b\u293c\u0007U\u0002\u0002\u293c\u293d\u0007V\u0002\u0002\u293d", + "\u293e\u0007T\u0002\u0002\u293e\u293f\u0007E\u0002\u0002\u293f\u2940", + "\u0007O\u0002\u0002\u2940\u2941\u0007R\u0002\u0002\u2941\u070c\u0003", + "\u0002\u0002\u0002\u2942\u2943\u0007U\u0002\u0002\u2943\u2944\u0007", + "V\u0002\u0002\u2944\u2945\u0007T\u0002\u0002\u2945\u2946\u0007a\u0002", + "\u0002\u2946\u2947\u0007V\u0002\u0002\u2947\u2948\u0007Q\u0002\u0002", + "\u2948\u2949\u0007a\u0002\u0002\u2949\u294a\u0007F\u0002\u0002\u294a", + "\u294b\u0007C\u0002\u0002\u294b\u294c\u0007V\u0002\u0002\u294c\u294d", + "\u0007G\u0002\u0002\u294d\u070e\u0003\u0002\u0002\u0002\u294e\u294f", + "\u0007U\u0002\u0002\u294f\u2950\u0007V\u0002\u0002\u2950\u2951\u0007", + "a\u0002\u0002\u2951\u2952\u0007C\u0002\u0002\u2952\u2953\u0007T\u0002", + "\u0002\u2953\u2954\u0007G\u0002\u0002\u2954\u2955\u0007C\u0002\u0002", + "\u2955\u0710\u0003\u0002\u0002\u0002\u2956\u2957\u0007U\u0002\u0002", + "\u2957\u2958\u0007V\u0002\u0002\u2958\u2959\u0007a\u0002\u0002\u2959", + "\u295a\u0007C\u0002\u0002\u295a\u295b\u0007U\u0002\u0002\u295b\u295c", + "\u0007D\u0002\u0002\u295c\u295d\u0007K\u0002\u0002\u295d\u295e\u0007", + "P\u0002\u0002\u295e\u295f\u0007C\u0002\u0002\u295f\u2960\u0007T\u0002", + "\u0002\u2960\u2961\u0007[\u0002\u0002\u2961\u0712\u0003\u0002\u0002", + "\u0002\u2962\u2963\u0007U\u0002\u0002\u2963\u2964\u0007V\u0002\u0002", + "\u2964\u2965\u0007a\u0002\u0002\u2965\u2966\u0007C\u0002\u0002\u2966", + "\u2967\u0007U\u0002\u0002\u2967\u2968\u0007V\u0002\u0002\u2968\u2969", + "\u0007G\u0002\u0002\u2969\u296a\u0007Z\u0002\u0002\u296a\u296b\u0007", + "V\u0002\u0002\u296b\u0714\u0003\u0002\u0002\u0002\u296c\u296d\u0007", + "U\u0002\u0002\u296d\u296e\u0007V\u0002\u0002\u296e\u296f\u0007a\u0002", + "\u0002\u296f\u2970\u0007C\u0002\u0002\u2970\u2971\u0007U\u0002\u0002", + "\u2971\u2972\u0007Y\u0002\u0002\u2972\u2973\u0007M\u0002\u0002\u2973", + "\u2974\u0007D\u0002\u0002\u2974\u0716\u0003\u0002\u0002\u0002\u2975", + "\u2976\u0007U\u0002\u0002\u2976\u2977\u0007V\u0002\u0002\u2977\u2978", + "\u0007a\u0002\u0002\u2978\u2979\u0007C\u0002\u0002\u2979\u297a\u0007", + "U\u0002\u0002\u297a\u297b\u0007Y\u0002\u0002\u297b\u297c\u0007M\u0002", + "\u0002\u297c\u297d\u0007V\u0002\u0002\u297d\u0718\u0003\u0002\u0002", + "\u0002\u297e\u297f\u0007U\u0002\u0002\u297f\u2980\u0007V\u0002\u0002", + "\u2980\u2981\u0007a\u0002\u0002\u2981\u2982\u0007D\u0002\u0002\u2982", + "\u2983\u0007W\u0002\u0002\u2983\u2984\u0007H\u0002\u0002\u2984\u2985", + "\u0007H\u0002\u0002\u2985\u2986\u0007G\u0002\u0002\u2986\u2987\u0007", + "T\u0002\u0002\u2987\u071a\u0003\u0002\u0002\u0002\u2988\u2989\u0007", + "U\u0002\u0002\u2989\u298a\u0007V\u0002\u0002\u298a\u298b\u0007a\u0002", + "\u0002\u298b\u298c\u0007E\u0002\u0002\u298c\u298d\u0007G\u0002\u0002", + "\u298d\u298e\u0007P\u0002\u0002\u298e\u298f\u0007V\u0002\u0002\u298f", + "\u2990\u0007T\u0002\u0002\u2990\u2991\u0007Q\u0002\u0002\u2991\u2992", + "\u0007K\u0002\u0002\u2992\u2993\u0007F\u0002\u0002\u2993\u071c\u0003", + "\u0002\u0002\u0002\u2994\u2995\u0007U\u0002\u0002\u2995\u2996\u0007", + "V\u0002\u0002\u2996\u2997\u0007a\u0002\u0002\u2997\u2998\u0007E\u0002", + "\u0002\u2998\u2999\u0007Q\u0002\u0002\u2999\u299a\u0007P\u0002\u0002", + "\u299a\u299b\u0007V\u0002\u0002\u299b\u299c\u0007C\u0002\u0002\u299c", + "\u299d\u0007K\u0002\u0002\u299d\u299e\u0007P\u0002\u0002\u299e\u299f", + "\u0007U\u0002\u0002\u299f\u071e\u0003\u0002\u0002\u0002\u29a0\u29a1", + "\u0007U\u0002\u0002\u29a1\u29a2\u0007V\u0002\u0002\u29a2\u29a3\u0007", + "a\u0002\u0002\u29a3\u29a4\u0007E\u0002\u0002\u29a4\u29a5\u0007T\u0002", + "\u0002\u29a5\u29a6\u0007Q\u0002\u0002\u29a6\u29a7\u0007U\u0002\u0002", + "\u29a7\u29a8\u0007U\u0002\u0002\u29a8\u29a9\u0007G\u0002\u0002\u29a9", + "\u29aa\u0007U\u0002\u0002\u29aa\u0720\u0003\u0002\u0002\u0002\u29ab", + "\u29ac\u0007U\u0002\u0002\u29ac\u29ad\u0007V\u0002\u0002\u29ad\u29ae", + "\u0007a\u0002\u0002\u29ae\u29af\u0007F\u0002\u0002\u29af\u29b0\u0007", + "K\u0002\u0002\u29b0\u29b1\u0007H\u0002\u0002\u29b1\u29b2\u0007H\u0002", + "\u0002\u29b2\u29b3\u0007G\u0002\u0002\u29b3\u29b4\u0007T\u0002\u0002", + "\u29b4\u29b5\u0007G\u0002\u0002\u29b5\u29b6\u0007P\u0002\u0002\u29b6", + "\u29b7\u0007E\u0002\u0002\u29b7\u29b8\u0007G\u0002\u0002\u29b8\u0722", + "\u0003\u0002\u0002\u0002\u29b9\u29ba\u0007U\u0002\u0002\u29ba\u29bb", + "\u0007V\u0002\u0002\u29bb\u29bc\u0007a\u0002\u0002\u29bc\u29bd\u0007", + "F\u0002\u0002\u29bd\u29be\u0007K\u0002\u0002\u29be\u29bf\u0007O\u0002", + "\u0002\u29bf\u29c0\u0007G\u0002\u0002\u29c0\u29c1\u0007P\u0002\u0002", + "\u29c1\u29c2\u0007U\u0002\u0002\u29c2\u29c3\u0007K\u0002\u0002\u29c3", + "\u29c4\u0007Q\u0002\u0002\u29c4\u29c5\u0007P\u0002\u0002\u29c5\u0724", + "\u0003\u0002\u0002\u0002\u29c6\u29c7\u0007U\u0002\u0002\u29c7\u29c8", + "\u0007V\u0002\u0002\u29c8\u29c9\u0007a\u0002\u0002\u29c9\u29ca\u0007", + "F\u0002\u0002\u29ca\u29cb\u0007K\u0002\u0002\u29cb\u29cc\u0007U\u0002", + "\u0002\u29cc\u29cd\u0007L\u0002\u0002\u29cd\u29ce\u0007Q\u0002\u0002", + "\u29ce\u29cf\u0007K\u0002\u0002\u29cf\u29d0\u0007P\u0002\u0002\u29d0", + "\u29d1\u0007V\u0002\u0002\u29d1\u0726\u0003\u0002\u0002\u0002\u29d2", + "\u29d3\u0007U\u0002\u0002\u29d3\u29d4\u0007V\u0002\u0002\u29d4\u29d5", + "\u0007a\u0002\u0002\u29d5\u29d6\u0007F\u0002\u0002\u29d6\u29d7\u0007", + "K\u0002\u0002\u29d7\u29d8\u0007U\u0002\u0002\u29d8\u29d9\u0007V\u0002", + "\u0002\u29d9\u29da\u0007C\u0002\u0002\u29da\u29db\u0007P\u0002\u0002", + "\u29db\u29dc\u0007E\u0002\u0002\u29dc\u29dd\u0007G\u0002\u0002\u29dd", + "\u0728\u0003\u0002\u0002\u0002\u29de\u29df\u0007U\u0002\u0002\u29df", + "\u29e0\u0007V\u0002\u0002\u29e0\u29e1\u0007a\u0002\u0002\u29e1\u29e2", + "\u0007G\u0002\u0002\u29e2\u29e3\u0007P\u0002\u0002\u29e3\u29e4\u0007", + "F\u0002\u0002\u29e4\u29e5\u0007R\u0002\u0002\u29e5\u29e6\u0007Q\u0002", + "\u0002\u29e6\u29e7\u0007K\u0002\u0002\u29e7\u29e8\u0007P\u0002\u0002", + "\u29e8\u29e9\u0007V\u0002\u0002\u29e9\u072a\u0003\u0002\u0002\u0002", + "\u29ea\u29eb\u0007U\u0002\u0002\u29eb\u29ec\u0007V\u0002\u0002\u29ec", + "\u29ed\u0007a\u0002\u0002\u29ed\u29ee\u0007G\u0002\u0002\u29ee\u29ef", + "\u0007P\u0002\u0002\u29ef\u29f0\u0007X\u0002\u0002\u29f0\u29f1\u0007", + "G\u0002\u0002\u29f1\u29f2\u0007N\u0002\u0002\u29f2\u29f3\u0007Q\u0002", + "\u0002\u29f3\u29f4\u0007R\u0002\u0002\u29f4\u29f5\u0007G\u0002\u0002", + "\u29f5\u072c\u0003\u0002\u0002\u0002\u29f6\u29f7\u0007U\u0002\u0002", + "\u29f7\u29f8\u0007V\u0002\u0002\u29f8\u29f9\u0007a\u0002\u0002\u29f9", + "\u29fa\u0007G\u0002\u0002\u29fa\u29fb\u0007S\u0002\u0002\u29fb\u29fc", + "\u0007W\u0002\u0002\u29fc\u29fd\u0007C\u0002\u0002\u29fd\u29fe\u0007", + "N\u0002\u0002\u29fe\u29ff\u0007U\u0002\u0002\u29ff\u072e\u0003\u0002", + "\u0002\u0002\u2a00\u2a01\u0007U\u0002\u0002\u2a01\u2a02\u0007V\u0002", + "\u0002\u2a02\u2a03\u0007a\u0002\u0002\u2a03\u2a04\u0007G\u0002\u0002", + "\u2a04\u2a05\u0007Z\u0002\u0002\u2a05\u2a06\u0007V\u0002\u0002\u2a06", + "\u2a07\u0007G\u0002\u0002\u2a07\u2a08\u0007T\u0002\u0002\u2a08\u2a09", + "\u0007K\u0002\u0002\u2a09\u2a0a\u0007Q\u0002\u0002\u2a0a\u2a0b\u0007", + "T\u0002\u0002\u2a0b\u2a0c\u0007T\u0002\u0002\u2a0c\u2a0d\u0007K\u0002", + "\u0002\u2a0d\u2a0e\u0007P\u0002\u0002\u2a0e\u2a0f\u0007I\u0002\u0002", + "\u2a0f\u0730\u0003\u0002\u0002\u0002\u2a10\u2a11\u0007U\u0002\u0002", + "\u2a11\u2a12\u0007V\u0002\u0002\u2a12\u2a13\u0007a\u0002\u0002\u2a13", + "\u2a14\u0007I\u0002\u0002\u2a14\u2a15\u0007G\u0002\u0002\u2a15\u2a16", + "\u0007Q\u0002\u0002\u2a16\u2a17\u0007O\u0002\u0002\u2a17\u2a18\u0007", + "E\u0002\u0002\u2a18\u2a19\u0007Q\u0002\u0002\u2a19\u2a1a\u0007N\u0002", + "\u0002\u2a1a\u2a1b\u0007N\u0002\u0002\u2a1b\u2a1c\u0007H\u0002\u0002", + "\u2a1c\u2a1d\u0007T\u0002\u0002\u2a1d\u2a1e\u0007Q\u0002\u0002\u2a1e", + "\u2a1f\u0007O\u0002\u0002\u2a1f\u2a20\u0007V\u0002\u0002\u2a20\u2a21", + "\u0007G\u0002\u0002\u2a21\u2a22\u0007Z\u0002\u0002\u2a22\u2a23\u0007", + "V\u0002\u0002\u2a23\u0732\u0003\u0002\u0002\u0002\u2a24\u2a25\u0007", + "U\u0002\u0002\u2a25\u2a26\u0007V\u0002\u0002\u2a26\u2a27\u0007a\u0002", + "\u0002\u2a27\u2a28\u0007I\u0002\u0002\u2a28\u2a29\u0007G\u0002\u0002", + "\u2a29\u2a2a\u0007Q\u0002\u0002\u2a2a\u2a2b\u0007O\u0002\u0002\u2a2b", + "\u2a2c\u0007E\u0002\u0002\u2a2c\u2a2d\u0007Q\u0002\u0002\u2a2d\u2a2e", + "\u0007N\u0002\u0002\u2a2e\u2a2f\u0007N\u0002\u0002\u2a2f\u2a30\u0007", + "H\u0002\u0002\u2a30\u2a31\u0007T\u0002\u0002\u2a31\u2a32\u0007Q\u0002", + "\u0002\u2a32\u2a33\u0007O\u0002\u0002\u2a33\u2a34\u0007V\u0002\u0002", + "\u2a34\u2a35\u0007Z\u0002\u0002\u2a35\u2a36\u0007V\u0002\u0002\u2a36", + "\u0734\u0003\u0002\u0002\u0002\u2a37\u2a38\u0007U\u0002\u0002\u2a38", + "\u2a39\u0007V\u0002\u0002\u2a39\u2a3a\u0007a\u0002\u0002\u2a3a\u2a3b", + "\u0007I\u0002\u0002\u2a3b\u2a3c\u0007G\u0002\u0002\u2a3c\u2a3d\u0007", + "Q\u0002\u0002\u2a3d\u2a3e\u0007O\u0002\u0002\u2a3e\u2a3f\u0007E\u0002", + "\u0002\u2a3f\u2a40\u0007Q\u0002\u0002\u2a40\u2a41\u0007N\u0002\u0002", + "\u2a41\u2a42\u0007N\u0002\u0002\u2a42\u2a43\u0007H\u0002\u0002\u2a43", + "\u2a44\u0007T\u0002\u0002\u2a44\u2a45\u0007Q\u0002\u0002\u2a45\u2a46", + "\u0007O\u0002\u0002\u2a46\u2a47\u0007Y\u0002\u0002\u2a47\u2a48\u0007", + "M\u0002\u0002\u2a48\u2a49\u0007D\u0002\u0002\u2a49\u0736\u0003\u0002", + "\u0002\u0002\u2a4a\u2a4b\u0007U\u0002\u0002\u2a4b\u2a4c\u0007V\u0002", + "\u0002\u2a4c\u2a4d\u0007a\u0002\u0002\u2a4d\u2a4e\u0007I\u0002\u0002", + "\u2a4e\u2a4f\u0007G\u0002\u0002\u2a4f\u2a50\u0007Q\u0002\u0002\u2a50", + "\u2a51\u0007O\u0002\u0002\u2a51\u2a52\u0007G\u0002\u0002\u2a52\u2a53", + "\u0007V\u0002\u0002\u2a53\u2a54\u0007T\u0002\u0002\u2a54\u2a55\u0007", + "[\u0002\u0002\u2a55\u2a56\u0007E\u0002\u0002\u2a56\u2a57\u0007Q\u0002", + "\u0002\u2a57\u2a58\u0007N\u0002\u0002\u2a58\u2a59\u0007N\u0002\u0002", + "\u2a59\u2a5a\u0007G\u0002\u0002\u2a5a\u2a5b\u0007E\u0002\u0002\u2a5b", + "\u2a5c\u0007V\u0002\u0002\u2a5c\u2a5d\u0007K\u0002\u0002\u2a5d\u2a5e", + "\u0007Q\u0002\u0002\u2a5e\u2a5f\u0007P\u0002\u0002\u2a5f\u2a60\u0007", + "H\u0002\u0002\u2a60\u2a61\u0007T\u0002\u0002\u2a61\u2a62\u0007Q\u0002", + "\u0002\u2a62\u2a63\u0007O\u0002\u0002\u2a63\u2a64\u0007V\u0002\u0002", + "\u2a64\u2a65\u0007G\u0002\u0002\u2a65\u2a66\u0007Z\u0002\u0002\u2a66", + "\u2a67\u0007V\u0002\u0002\u2a67\u0738\u0003\u0002\u0002\u0002\u2a68", + "\u2a69\u0007U\u0002\u0002\u2a69\u2a6a\u0007V\u0002\u0002\u2a6a\u2a6b", + "\u0007a\u0002\u0002\u2a6b\u2a6c\u0007I\u0002\u0002\u2a6c\u2a6d\u0007", + "G\u0002\u0002\u2a6d\u2a6e\u0007Q\u0002\u0002\u2a6e\u2a6f\u0007O\u0002", + "\u0002\u2a6f\u2a70\u0007G\u0002\u0002\u2a70\u2a71\u0007V\u0002\u0002", + "\u2a71\u2a72\u0007T\u0002\u0002\u2a72\u2a73\u0007[\u0002\u0002\u2a73", + "\u2a74\u0007E\u0002\u0002\u2a74\u2a75\u0007Q\u0002\u0002\u2a75\u2a76", + "\u0007N\u0002\u0002\u2a76\u2a77\u0007N\u0002\u0002\u2a77\u2a78\u0007", + "G\u0002\u0002\u2a78\u2a79\u0007E\u0002\u0002\u2a79\u2a7a\u0007V\u0002", + "\u0002\u2a7a\u2a7b\u0007K\u0002\u0002\u2a7b\u2a7c\u0007Q\u0002\u0002", + "\u2a7c\u2a7d\u0007P\u0002\u0002\u2a7d\u2a7e\u0007H\u0002\u0002\u2a7e", + "\u2a7f\u0007T\u0002\u0002\u2a7f\u2a80\u0007Q\u0002\u0002\u2a80\u2a81", + "\u0007O\u0002\u0002\u2a81\u2a82\u0007Y\u0002\u0002\u2a82\u2a83\u0007", + "M\u0002\u0002\u2a83\u2a84\u0007D\u0002\u0002\u2a84\u073a\u0003\u0002", + "\u0002\u0002\u2a85\u2a86\u0007U\u0002\u0002\u2a86\u2a87\u0007V\u0002", + "\u0002\u2a87\u2a88\u0007a\u0002\u0002\u2a88\u2a89\u0007I\u0002\u0002", + "\u2a89\u2a8a\u0007G\u0002\u0002\u2a8a\u2a8b\u0007Q\u0002\u0002\u2a8b", + "\u2a8c\u0007O\u0002\u0002\u2a8c\u2a8d\u0007G\u0002\u0002\u2a8d\u2a8e", + "\u0007V\u0002\u0002\u2a8e\u2a8f\u0007T\u0002\u0002\u2a8f\u2a90\u0007", + "[\u0002\u0002\u2a90\u2a91\u0007H\u0002\u0002\u2a91\u2a92\u0007T\u0002", + "\u0002\u2a92\u2a93\u0007Q\u0002\u0002\u2a93\u2a94\u0007O\u0002\u0002", + "\u2a94\u2a95\u0007V\u0002\u0002\u2a95\u2a96\u0007G\u0002\u0002\u2a96", + "\u2a97\u0007Z\u0002\u0002\u2a97\u2a98\u0007V\u0002\u0002\u2a98\u073c", + "\u0003\u0002\u0002\u0002\u2a99\u2a9a\u0007U\u0002\u0002\u2a9a\u2a9b", + "\u0007V\u0002\u0002\u2a9b\u2a9c\u0007a\u0002\u0002\u2a9c\u2a9d\u0007", + "I\u0002\u0002\u2a9d\u2a9e\u0007G\u0002\u0002\u2a9e\u2a9f\u0007Q\u0002", + "\u0002\u2a9f\u2aa0\u0007O\u0002\u0002\u2aa0\u2aa1\u0007G\u0002\u0002", + "\u2aa1\u2aa2\u0007V\u0002\u0002\u2aa2\u2aa3\u0007T\u0002\u0002\u2aa3", + "\u2aa4\u0007[\u0002\u0002\u2aa4\u2aa5\u0007H\u0002\u0002\u2aa5\u2aa6", + "\u0007T\u0002\u0002\u2aa6\u2aa7\u0007Q\u0002\u0002\u2aa7\u2aa8\u0007", + "O\u0002\u0002\u2aa8\u2aa9\u0007Y\u0002\u0002\u2aa9\u2aaa\u0007M\u0002", + "\u0002\u2aaa\u2aab\u0007D\u0002\u0002\u2aab\u073e\u0003\u0002\u0002", + "\u0002\u2aac\u2aad\u0007U\u0002\u0002\u2aad\u2aae\u0007V\u0002\u0002", + "\u2aae\u2aaf\u0007a\u0002\u0002\u2aaf\u2ab0\u0007I\u0002\u0002\u2ab0", + "\u2ab1\u0007G\u0002\u0002\u2ab1\u2ab2\u0007Q\u0002\u0002\u2ab2\u2ab3", + "\u0007O\u0002\u0002\u2ab3\u2ab4\u0007G\u0002\u0002\u2ab4\u2ab5\u0007", + "V\u0002\u0002\u2ab5\u2ab6\u0007T\u0002\u0002\u2ab6\u2ab7\u0007[\u0002", + "\u0002\u2ab7\u2ab8\u0007P\u0002\u0002\u2ab8\u0740\u0003\u0002\u0002", + "\u0002\u2ab9\u2aba\u0007U\u0002\u0002\u2aba\u2abb\u0007V\u0002\u0002", + "\u2abb\u2abc\u0007a\u0002\u0002\u2abc\u2abd\u0007I\u0002\u0002\u2abd", + "\u2abe\u0007G\u0002\u0002\u2abe\u2abf\u0007Q\u0002\u0002\u2abf\u2ac0", + "\u0007O\u0002\u0002\u2ac0\u2ac1\u0007G\u0002\u0002\u2ac1\u2ac2\u0007", + "V\u0002\u0002\u2ac2\u2ac3\u0007T\u0002\u0002\u2ac3\u2ac4\u0007[\u0002", + "\u0002\u2ac4\u2ac5\u0007V\u0002\u0002\u2ac5\u2ac6\u0007[\u0002\u0002", + "\u2ac6\u2ac7\u0007R\u0002\u0002\u2ac7\u2ac8\u0007G\u0002\u0002\u2ac8", + "\u0742\u0003\u0002\u0002\u0002\u2ac9\u2aca\u0007U\u0002\u0002\u2aca", + "\u2acb\u0007V\u0002\u0002\u2acb\u2acc\u0007a\u0002\u0002\u2acc\u2acd", + "\u0007I\u0002\u0002\u2acd\u2ace\u0007G\u0002\u0002\u2ace\u2acf\u0007", + "Q\u0002\u0002\u2acf\u2ad0\u0007O\u0002\u0002\u2ad0\u2ad1\u0007H\u0002", + "\u0002\u2ad1\u2ad2\u0007T\u0002\u0002\u2ad2\u2ad3\u0007Q\u0002\u0002", + "\u2ad3\u2ad4\u0007O\u0002\u0002\u2ad4\u2ad5\u0007V\u0002\u0002\u2ad5", + "\u2ad6\u0007G\u0002\u0002\u2ad6\u2ad7\u0007Z\u0002\u0002\u2ad7\u2ad8", + "\u0007V\u0002\u0002\u2ad8\u0744\u0003\u0002\u0002\u0002\u2ad9\u2ada", + "\u0007U\u0002\u0002\u2ada\u2adb\u0007V\u0002\u0002\u2adb\u2adc\u0007", + "a\u0002\u0002\u2adc\u2add\u0007I\u0002\u0002\u2add\u2ade\u0007G\u0002", + "\u0002\u2ade\u2adf\u0007Q\u0002\u0002\u2adf\u2ae0\u0007O\u0002\u0002", + "\u2ae0\u2ae1\u0007H\u0002\u0002\u2ae1\u2ae2\u0007T\u0002\u0002\u2ae2", + "\u2ae3\u0007Q\u0002\u0002\u2ae3\u2ae4\u0007O\u0002\u0002\u2ae4\u2ae5", + "\u0007Y\u0002\u0002\u2ae5\u2ae6\u0007M\u0002\u0002\u2ae6\u2ae7\u0007", + "D\u0002\u0002\u2ae7\u0746\u0003\u0002\u0002\u0002\u2ae8\u2ae9\u0007", + "U\u0002\u0002\u2ae9\u2aea\u0007V\u0002\u0002\u2aea\u2aeb\u0007a\u0002", + "\u0002\u2aeb\u2aec\u0007K\u0002\u0002\u2aec\u2aed\u0007P\u0002\u0002", + "\u2aed\u2aee\u0007V\u0002\u0002\u2aee\u2aef\u0007G\u0002\u0002\u2aef", + "\u2af0\u0007T\u0002\u0002\u2af0\u2af1\u0007K\u0002\u0002\u2af1\u2af2", + "\u0007Q\u0002\u0002\u2af2\u2af3\u0007T\u0002\u0002\u2af3\u2af4\u0007", + "T\u0002\u0002\u2af4\u2af5\u0007K\u0002\u0002\u2af5\u2af6\u0007P\u0002", + "\u0002\u2af6\u2af7\u0007I\u0002\u0002\u2af7\u2af8\u0007P\u0002\u0002", + "\u2af8\u0748\u0003\u0002\u0002\u0002\u2af9\u2afa\u0007U\u0002\u0002", + "\u2afa\u2afb\u0007V\u0002\u0002\u2afb\u2afc\u0007a\u0002\u0002\u2afc", + "\u2afd\u0007K\u0002\u0002\u2afd\u2afe\u0007P\u0002\u0002\u2afe\u2aff", + "\u0007V\u0002\u0002\u2aff\u2b00\u0007G\u0002\u0002\u2b00\u2b01\u0007", + "T\u0002\u0002\u2b01\u2b02\u0007U\u0002\u0002\u2b02\u2b03\u0007G\u0002", + "\u0002\u2b03\u2b04\u0007E\u0002\u0002\u2b04\u2b05\u0007V\u0002\u0002", + "\u2b05\u2b06\u0007K\u0002\u0002\u2b06\u2b07\u0007Q\u0002\u0002\u2b07", + "\u2b08\u0007P\u0002\u0002\u2b08\u074a\u0003\u0002\u0002\u0002\u2b09", + "\u2b0a\u0007U\u0002\u0002\u2b0a\u2b0b\u0007V\u0002\u0002\u2b0b\u2b0c", + "\u0007a\u0002\u0002\u2b0c\u2b0d\u0007K\u0002\u0002\u2b0d\u2b0e\u0007", + "P\u0002\u0002\u2b0e\u2b0f\u0007V\u0002\u0002\u2b0f\u2b10\u0007G\u0002", + "\u0002\u2b10\u2b11\u0007T\u0002\u0002\u2b11\u2b12\u0007U\u0002\u0002", + "\u2b12\u2b13\u0007G\u0002\u0002\u2b13\u2b14\u0007E\u0002\u0002\u2b14", + "\u2b15\u0007V\u0002\u0002\u2b15\u2b16\u0007U\u0002\u0002\u2b16\u074c", + "\u0003\u0002\u0002\u0002\u2b17\u2b18\u0007U\u0002\u0002\u2b18\u2b19", + "\u0007V\u0002\u0002\u2b19\u2b1a\u0007a\u0002\u0002\u2b1a\u2b1b\u0007", + "K\u0002\u0002\u2b1b\u2b1c\u0007U\u0002\u0002\u2b1c\u2b1d\u0007E\u0002", + "\u0002\u2b1d\u2b1e\u0007N\u0002\u0002\u2b1e\u2b1f\u0007Q\u0002\u0002", + "\u2b1f\u2b20\u0007U\u0002\u0002\u2b20\u2b21\u0007G\u0002\u0002\u2b21", + "\u2b22\u0007F\u0002\u0002\u2b22\u074e\u0003\u0002\u0002\u0002\u2b23", + "\u2b24\u0007U\u0002\u0002\u2b24\u2b25\u0007V\u0002\u0002\u2b25\u2b26", + "\u0007a\u0002\u0002\u2b26\u2b27\u0007K\u0002\u0002\u2b27\u2b28\u0007", + "U\u0002\u0002\u2b28\u2b29\u0007G\u0002\u0002\u2b29\u2b2a\u0007O\u0002", + "\u0002\u2b2a\u2b2b\u0007R\u0002\u0002\u2b2b\u2b2c\u0007V\u0002\u0002", + "\u2b2c\u2b2d\u0007[\u0002\u0002\u2b2d\u0750\u0003\u0002\u0002\u0002", + "\u2b2e\u2b2f\u0007U\u0002\u0002\u2b2f\u2b30\u0007V\u0002\u0002\u2b30", + "\u2b31\u0007a\u0002\u0002\u2b31\u2b32\u0007K\u0002\u0002\u2b32\u2b33", + "\u0007U\u0002\u0002\u2b33\u2b34\u0007U\u0002\u0002\u2b34\u2b35\u0007", + "K\u0002\u0002\u2b35\u2b36\u0007O\u0002\u0002\u2b36\u2b37\u0007R\u0002", + "\u0002\u2b37\u2b38\u0007N\u0002\u0002\u2b38\u2b39\u0007G\u0002\u0002", + "\u2b39\u0752\u0003\u0002\u0002\u0002\u2b3a\u2b3b\u0007U\u0002\u0002", + "\u2b3b\u2b3c\u0007V\u0002\u0002\u2b3c\u2b3d\u0007a\u0002\u0002\u2b3d", + "\u2b3e\u0007N\u0002\u0002\u2b3e\u2b3f\u0007K\u0002\u0002\u2b3f\u2b40", + "\u0007P\u0002\u0002\u2b40\u2b41\u0007G\u0002\u0002\u2b41\u2b42\u0007", + "H\u0002\u0002\u2b42\u2b43\u0007T\u0002\u0002\u2b43\u2b44\u0007Q\u0002", + "\u0002\u2b44\u2b45\u0007O\u0002\u0002\u2b45\u2b46\u0007V\u0002\u0002", + "\u2b46\u2b47\u0007G\u0002\u0002\u2b47\u2b48\u0007Z\u0002\u0002\u2b48", + "\u2b49\u0007V\u0002\u0002\u2b49\u0754\u0003\u0002\u0002\u0002\u2b4a", + "\u2b4b\u0007U\u0002\u0002\u2b4b\u2b4c\u0007V\u0002\u0002\u2b4c\u2b4d", + "\u0007a\u0002\u0002\u2b4d\u2b4e\u0007N\u0002\u0002\u2b4e\u2b4f\u0007", + "K\u0002\u0002\u2b4f\u2b50\u0007P\u0002\u0002\u2b50\u2b51\u0007G\u0002", + "\u0002\u2b51\u2b52\u0007H\u0002\u0002\u2b52\u2b53\u0007T\u0002\u0002", + "\u2b53\u2b54\u0007Q\u0002\u0002\u2b54\u2b55\u0007O\u0002\u0002\u2b55", + "\u2b56\u0007Y\u0002\u0002\u2b56\u2b57\u0007M\u0002\u0002\u2b57\u2b58", + "\u0007D\u0002\u0002\u2b58\u0756\u0003\u0002\u0002\u0002\u2b59\u2b5a", + "\u0007U\u0002\u0002\u2b5a\u2b5b\u0007V\u0002\u0002\u2b5b\u2b5c\u0007", + "a\u0002\u0002\u2b5c\u2b5d\u0007N\u0002\u0002\u2b5d\u2b5e\u0007K\u0002", + "\u0002\u2b5e\u2b5f\u0007P\u0002\u0002\u2b5f\u2b60\u0007G\u0002\u0002", + "\u2b60\u2b61\u0007U\u0002\u0002\u2b61\u2b62\u0007V\u0002\u0002\u2b62", + "\u2b63\u0007T\u0002\u0002\u2b63\u2b64\u0007K\u0002\u0002\u2b64\u2b65", + "\u0007P\u0002\u0002\u2b65\u2b66\u0007I\u0002\u0002\u2b66\u2b67\u0007", + "H\u0002\u0002\u2b67\u2b68\u0007T\u0002\u0002\u2b68\u2b69\u0007Q\u0002", + "\u0002\u2b69\u2b6a\u0007O\u0002\u0002\u2b6a\u2b6b\u0007V\u0002\u0002", + "\u2b6b\u2b6c\u0007G\u0002\u0002\u2b6c\u2b6d\u0007Z\u0002\u0002\u2b6d", + "\u2b6e\u0007V\u0002\u0002\u2b6e\u0758\u0003\u0002\u0002\u0002\u2b6f", + "\u2b70\u0007U\u0002\u0002\u2b70\u2b71\u0007V\u0002\u0002\u2b71\u2b72", + "\u0007a\u0002\u0002\u2b72\u2b73\u0007N\u0002\u0002\u2b73\u2b74\u0007", + "K\u0002\u0002\u2b74\u2b75\u0007P\u0002\u0002\u2b75\u2b76\u0007G\u0002", + "\u0002\u2b76\u2b77\u0007U\u0002\u0002\u2b77\u2b78\u0007V\u0002\u0002", + "\u2b78\u2b79\u0007T\u0002\u0002\u2b79\u2b7a\u0007K\u0002\u0002\u2b7a", + "\u2b7b\u0007P\u0002\u0002\u2b7b\u2b7c\u0007I\u0002\u0002\u2b7c\u2b7d", + "\u0007H\u0002\u0002\u2b7d\u2b7e\u0007T\u0002\u0002\u2b7e\u2b7f\u0007", + "Q\u0002\u0002\u2b7f\u2b80\u0007O\u0002\u0002\u2b80\u2b81\u0007Y\u0002", + "\u0002\u2b81\u2b82\u0007M\u0002\u0002\u2b82\u2b83\u0007D\u0002\u0002", + "\u2b83\u075a\u0003\u0002\u0002\u0002\u2b84\u2b85\u0007U\u0002\u0002", + "\u2b85\u2b86\u0007V\u0002\u0002\u2b86\u2b87\u0007a\u0002\u0002\u2b87", + "\u2b88\u0007P\u0002\u0002\u2b88\u2b89\u0007W\u0002\u0002\u2b89\u2b8a", + "\u0007O\u0002\u0002\u2b8a\u2b8b\u0007I\u0002\u0002\u2b8b\u2b8c\u0007", + "G\u0002\u0002\u2b8c\u2b8d\u0007Q\u0002\u0002\u2b8d\u2b8e\u0007O\u0002", + "\u0002\u2b8e\u2b8f\u0007G\u0002\u0002\u2b8f\u2b90\u0007V\u0002\u0002", + "\u2b90\u2b91\u0007T\u0002\u0002\u2b91\u2b92\u0007K\u0002\u0002\u2b92", + "\u2b93\u0007G\u0002\u0002\u2b93\u2b94\u0007U\u0002\u0002\u2b94\u075c", + "\u0003\u0002\u0002\u0002\u2b95\u2b96\u0007U\u0002\u0002\u2b96\u2b97", + "\u0007V\u0002\u0002\u2b97\u2b98\u0007a\u0002\u0002\u2b98\u2b99\u0007", + "P\u0002\u0002\u2b99\u2b9a\u0007W\u0002\u0002\u2b9a\u2b9b\u0007O\u0002", + "\u0002\u2b9b\u2b9c\u0007K\u0002\u0002\u2b9c\u2b9d\u0007P\u0002\u0002", + "\u2b9d\u2b9e\u0007V\u0002\u0002\u2b9e\u2b9f\u0007G\u0002\u0002\u2b9f", + "\u2ba0\u0007T\u0002\u0002\u2ba0\u2ba1\u0007K\u0002\u0002\u2ba1\u2ba2", + "\u0007Q\u0002\u0002\u2ba2\u2ba3\u0007T\u0002\u0002\u2ba3\u2ba4\u0007", + "T\u0002\u0002\u2ba4\u2ba5\u0007K\u0002\u0002\u2ba5\u2ba6\u0007P\u0002", + "\u0002\u2ba6\u2ba7\u0007I\u0002\u0002\u2ba7\u075e\u0003\u0002\u0002", + "\u0002\u2ba8\u2ba9\u0007U\u0002\u0002\u2ba9\u2baa\u0007V\u0002\u0002", + "\u2baa\u2bab\u0007a\u0002\u0002\u2bab\u2bac\u0007P\u0002\u0002\u2bac", + "\u2bad\u0007W\u0002\u0002\u2bad\u2bae\u0007O\u0002\u0002\u2bae\u2baf", + "\u0007K\u0002\u0002\u2baf\u2bb0\u0007P\u0002\u0002\u2bb0\u2bb1\u0007", + "V\u0002\u0002\u2bb1\u2bb2\u0007G\u0002\u0002\u2bb2\u2bb3\u0007T\u0002", + "\u0002\u2bb3\u2bb4\u0007K\u0002\u0002\u2bb4\u2bb5\u0007Q\u0002\u0002", + "\u2bb5\u2bb6\u0007T\u0002\u0002\u2bb6\u2bb7\u0007T\u0002\u0002\u2bb7", + "\u2bb8\u0007K\u0002\u0002\u2bb8\u2bb9\u0007P\u0002\u0002\u2bb9\u2bba", + "\u0007I\u0002\u0002\u2bba\u2bbb\u0007U\u0002\u0002\u2bbb\u0760\u0003", + "\u0002\u0002\u0002\u2bbc\u2bbd\u0007U\u0002\u0002\u2bbd\u2bbe\u0007", + "V\u0002\u0002\u2bbe\u2bbf\u0007a\u0002\u0002\u2bbf\u2bc0\u0007P\u0002", + "\u0002\u2bc0\u2bc1\u0007W\u0002\u0002\u2bc1\u2bc2\u0007O\u0002\u0002", + "\u2bc2\u2bc3\u0007R\u0002\u0002\u2bc3\u2bc4\u0007Q\u0002\u0002\u2bc4", + "\u2bc5\u0007K\u0002\u0002\u2bc5\u2bc6\u0007P\u0002\u0002\u2bc6\u2bc7", + "\u0007V\u0002\u0002\u2bc7\u2bc8\u0007U\u0002\u0002\u2bc8\u0762\u0003", + "\u0002\u0002\u0002\u2bc9\u2bca\u0007U\u0002\u0002\u2bca\u2bcb\u0007", + "V\u0002\u0002\u2bcb\u2bcc\u0007a\u0002\u0002\u2bcc\u2bcd\u0007Q\u0002", + "\u0002\u2bcd\u2bce\u0007X\u0002\u0002\u2bce\u2bcf\u0007G\u0002\u0002", + "\u2bcf\u2bd0\u0007T\u0002\u0002\u2bd0\u2bd1\u0007N\u0002\u0002\u2bd1", + "\u2bd2\u0007C\u0002\u0002\u2bd2\u2bd3\u0007R\u0002\u0002\u2bd3\u2bd4", + "\u0007U\u0002\u0002\u2bd4\u0764\u0003\u0002\u0002\u0002\u2bd5\u2bd6", + "\u0007U\u0002\u0002\u2bd6\u2bd7\u0007V\u0002\u0002\u2bd7\u2bd8\u0007", + "a\u0002\u0002\u2bd8\u2bd9\u0007R\u0002\u0002\u2bd9\u2bda\u0007Q\u0002", + "\u0002\u2bda\u2bdb\u0007K\u0002\u0002\u2bdb\u2bdc\u0007P\u0002\u0002", + "\u2bdc\u2bdd\u0007V\u0002\u0002\u2bdd\u2bde\u0007H\u0002\u0002\u2bde", + "\u2bdf\u0007T\u0002\u0002\u2bdf\u2be0\u0007Q\u0002\u0002\u2be0\u2be1", + "\u0007O\u0002\u0002\u2be1\u2be2\u0007V\u0002\u0002\u2be2\u2be3\u0007", + "G\u0002\u0002\u2be3\u2be4\u0007Z\u0002\u0002\u2be4\u2be5\u0007V\u0002", + "\u0002\u2be5\u0766\u0003\u0002\u0002\u0002\u2be6\u2be7\u0007U\u0002", + "\u0002\u2be7\u2be8\u0007V\u0002\u0002\u2be8\u2be9\u0007a\u0002\u0002", + "\u2be9\u2bea\u0007R\u0002\u0002\u2bea\u2beb\u0007Q\u0002\u0002\u2beb", + "\u2bec\u0007K\u0002\u0002\u2bec\u2bed\u0007P\u0002\u0002\u2bed\u2bee", + "\u0007V\u0002\u0002\u2bee\u2bef\u0007H\u0002\u0002\u2bef\u2bf0\u0007", + "T\u0002\u0002\u2bf0\u2bf1\u0007Q\u0002\u0002\u2bf1\u2bf2\u0007O\u0002", + "\u0002\u2bf2\u2bf3\u0007Y\u0002\u0002\u2bf3\u2bf4\u0007M\u0002\u0002", + "\u2bf4\u2bf5\u0007D\u0002\u0002\u2bf5\u0768\u0003\u0002\u0002\u0002", + "\u2bf6\u2bf7\u0007U\u0002\u0002\u2bf7\u2bf8\u0007V\u0002\u0002\u2bf8", + "\u2bf9\u0007a\u0002\u0002\u2bf9\u2bfa\u0007R\u0002\u0002\u2bfa\u2bfb", + "\u0007Q\u0002\u0002\u2bfb\u2bfc\u0007K\u0002\u0002\u2bfc\u2bfd\u0007", + "P\u0002\u0002\u2bfd\u2bfe\u0007V\u0002\u0002\u2bfe\u2bff\u0007P\u0002", + "\u0002\u2bff\u076a\u0003\u0002\u0002\u0002\u2c00\u2c01\u0007U\u0002", + "\u0002\u2c01\u2c02\u0007V\u0002\u0002\u2c02\u2c03\u0007a\u0002\u0002", + "\u2c03\u2c04\u0007R\u0002\u0002\u2c04\u2c05\u0007Q\u0002\u0002\u2c05", + "\u2c06\u0007N\u0002\u0002\u2c06\u2c07\u0007[\u0002\u0002\u2c07\u2c08", + "\u0007H\u0002\u0002\u2c08\u2c09\u0007T\u0002\u0002\u2c09\u2c0a\u0007", + "Q\u0002\u0002\u2c0a\u2c0b\u0007O\u0002\u0002\u2c0b\u2c0c\u0007V\u0002", + "\u0002\u2c0c\u2c0d\u0007G\u0002\u0002\u2c0d\u2c0e\u0007Z\u0002\u0002", + "\u2c0e\u2c0f\u0007V\u0002\u0002\u2c0f\u076c\u0003\u0002\u0002\u0002", + "\u2c10\u2c11\u0007U\u0002\u0002\u2c11\u2c12\u0007V\u0002\u0002\u2c12", + "\u2c13\u0007a\u0002\u0002\u2c13\u2c14\u0007R\u0002\u0002\u2c14\u2c15", + "\u0007Q\u0002\u0002\u2c15\u2c16\u0007N\u0002\u0002\u2c16\u2c17\u0007", + "[\u0002\u0002\u2c17\u2c18\u0007H\u0002\u0002\u2c18\u2c19\u0007T\u0002", + "\u0002\u2c19\u2c1a\u0007Q\u0002\u0002\u2c1a\u2c1b\u0007O\u0002\u0002", + "\u2c1b\u2c1c\u0007Y\u0002\u0002\u2c1c\u2c1d\u0007M\u0002\u0002\u2c1d", + "\u2c1e\u0007D\u0002\u0002\u2c1e\u076e\u0003\u0002\u0002\u0002\u2c1f", + "\u2c20\u0007U\u0002\u0002\u2c20\u2c21\u0007V\u0002\u0002\u2c21\u2c22", + "\u0007a\u0002\u0002\u2c22\u2c23\u0007R\u0002\u0002\u2c23\u2c24\u0007", + "Q\u0002\u0002\u2c24\u2c25\u0007N\u0002\u0002\u2c25\u2c26\u0007[\u0002", + "\u0002\u2c26\u2c27\u0007I\u0002\u0002\u2c27\u2c28\u0007Q\u0002\u0002", + "\u2c28\u2c29\u0007P\u0002\u0002\u2c29\u2c2a\u0007H\u0002\u0002\u2c2a", + "\u2c2b\u0007T\u0002\u0002\u2c2b\u2c2c\u0007Q\u0002\u0002\u2c2c\u2c2d", + "\u0007O\u0002\u0002\u2c2d\u2c2e\u0007V\u0002\u0002\u2c2e\u2c2f\u0007", + "G\u0002\u0002\u2c2f\u2c30\u0007Z\u0002\u0002\u2c30\u2c31\u0007V\u0002", + "\u0002\u2c31\u0770\u0003\u0002\u0002\u0002\u2c32\u2c33\u0007U\u0002", + "\u0002\u2c33\u2c34\u0007V\u0002\u0002\u2c34\u2c35\u0007a\u0002\u0002", + "\u2c35\u2c36\u0007R\u0002\u0002\u2c36\u2c37\u0007Q\u0002\u0002\u2c37", + "\u2c38\u0007N\u0002\u0002\u2c38\u2c39\u0007[\u0002\u0002\u2c39\u2c3a", + "\u0007I\u0002\u0002\u2c3a\u2c3b\u0007Q\u0002\u0002\u2c3b\u2c3c\u0007", + "P\u0002\u0002\u2c3c\u2c3d\u0007H\u0002\u0002\u2c3d\u2c3e\u0007T\u0002", + "\u0002\u2c3e\u2c3f\u0007Q\u0002\u0002\u2c3f\u2c40\u0007O\u0002\u0002", + "\u2c40\u2c41\u0007Y\u0002\u0002\u2c41\u2c42\u0007M\u0002\u0002\u2c42", + "\u2c43\u0007D\u0002\u0002\u2c43\u0772\u0003\u0002\u0002\u0002\u2c44", + "\u2c45\u0007U\u0002\u0002\u2c45\u2c46\u0007V\u0002\u0002\u2c46\u2c47", + "\u0007a\u0002\u0002\u2c47\u2c48\u0007U\u0002\u0002\u2c48\u2c49\u0007", + "T\u0002\u0002\u2c49\u2c4a\u0007K\u0002\u0002\u2c4a\u2c4b\u0007F\u0002", + "\u0002\u2c4b\u0774\u0003\u0002\u0002\u0002\u2c4c\u2c4d\u0007U\u0002", + "\u0002\u2c4d\u2c4e\u0007V\u0002\u0002\u2c4e\u2c4f\u0007a\u0002\u0002", + "\u2c4f\u2c50\u0007U\u0002\u0002\u2c50\u2c51\u0007V\u0002\u0002\u2c51", + "\u2c52\u0007C\u0002\u0002\u2c52\u2c53\u0007T\u0002\u0002\u2c53\u2c54", + "\u0007V\u0002\u0002\u2c54\u2c55\u0007R\u0002\u0002\u2c55\u2c56\u0007", + "Q\u0002\u0002\u2c56\u2c57\u0007K\u0002\u0002\u2c57\u2c58\u0007P\u0002", + "\u0002\u2c58\u2c59\u0007V\u0002\u0002\u2c59\u0776\u0003\u0002\u0002", + "\u0002\u2c5a\u2c5b\u0007U\u0002\u0002\u2c5b\u2c5c\u0007V\u0002\u0002", + "\u2c5c\u2c5d\u0007a\u0002\u0002\u2c5d\u2c5e\u0007U\u0002\u0002\u2c5e", + "\u2c5f\u0007[\u0002\u0002\u2c5f\u2c60\u0007O\u0002\u0002\u2c60\u2c61", + "\u0007F\u0002\u0002\u2c61\u2c62\u0007K\u0002\u0002\u2c62\u2c63\u0007", + "H\u0002\u0002\u2c63\u2c64\u0007H\u0002\u0002\u2c64\u2c65\u0007G\u0002", + "\u0002\u2c65\u2c66\u0007T\u0002\u0002\u2c66\u2c67\u0007G\u0002\u0002", + "\u2c67\u2c68\u0007P\u0002\u0002\u2c68\u2c69\u0007E\u0002\u0002\u2c69", + "\u2c6a\u0007G\u0002\u0002\u2c6a\u0778\u0003\u0002\u0002\u0002\u2c6b", + "\u2c6c\u0007U\u0002\u0002\u2c6c\u2c6d\u0007V\u0002\u0002\u2c6d\u2c6e", + "\u0007a\u0002\u0002\u2c6e\u2c6f\u0007V\u0002\u0002\u2c6f\u2c70\u0007", + "Q\u0002\u0002\u2c70\u2c71\u0007W\u0002\u0002\u2c71\u2c72\u0007E\u0002", + "\u0002\u2c72\u2c73\u0007J\u0002\u0002\u2c73\u2c74\u0007G\u0002\u0002", + "\u2c74\u2c75\u0007U\u0002\u0002\u2c75\u077a\u0003\u0002\u0002\u0002", + "\u2c76\u2c77\u0007U\u0002\u0002\u2c77\u2c78\u0007V\u0002\u0002\u2c78", + "\u2c79\u0007a\u0002\u0002\u2c79\u2c7a\u0007W\u0002\u0002\u2c7a\u2c7b", + "\u0007P\u0002\u0002\u2c7b\u2c7c\u0007K\u0002\u0002\u2c7c\u2c7d\u0007", + "Q\u0002\u0002\u2c7d\u2c7e\u0007P\u0002\u0002\u2c7e\u077c\u0003\u0002", + "\u0002\u0002\u2c7f\u2c80\u0007U\u0002\u0002\u2c80\u2c81\u0007V\u0002", + "\u0002\u2c81\u2c82\u0007a\u0002\u0002\u2c82\u2c83\u0007Y\u0002\u0002", + "\u2c83\u2c84\u0007K\u0002\u0002\u2c84\u2c85\u0007V\u0002\u0002\u2c85", + "\u2c86\u0007J\u0002\u0002\u2c86\u2c87\u0007K\u0002\u0002\u2c87\u2c88", + "\u0007P\u0002\u0002\u2c88\u077e\u0003\u0002\u0002\u0002\u2c89\u2c8a", + "\u0007U\u0002\u0002\u2c8a\u2c8b\u0007V\u0002\u0002\u2c8b\u2c8c\u0007", + "a\u0002\u0002\u2c8c\u2c8d\u0007Z\u0002\u0002\u2c8d\u0780\u0003\u0002", + "\u0002\u0002\u2c8e\u2c8f\u0007U\u0002\u0002\u2c8f\u2c90\u0007V\u0002", + "\u0002\u2c90\u2c91\u0007a\u0002\u0002\u2c91\u2c92\u0007[\u0002\u0002", + "\u2c92\u0782\u0003\u0002\u0002\u0002\u2c93\u2c94\u0007U\u0002\u0002", + "\u2c94\u2c95\u0007W\u0002\u0002\u2c95\u2c96\u0007D\u0002\u0002\u2c96", + "\u2c97\u0007F\u0002\u0002\u2c97\u2c98\u0007C\u0002\u0002\u2c98\u2c99", + "\u0007V\u0002\u0002\u2c99\u2c9a\u0007G\u0002\u0002\u2c9a\u0784\u0003", + "\u0002\u0002\u0002\u2c9b\u2c9c\u0007U\u0002\u0002\u2c9c\u2c9d\u0007", + "W\u0002\u0002\u2c9d\u2c9e\u0007D\u0002\u0002\u2c9e\u2c9f\u0007U\u0002", + "\u0002\u2c9f\u2ca0\u0007V\u0002\u0002\u2ca0\u2ca1\u0007T\u0002\u0002", + "\u2ca1\u2ca2\u0007K\u0002\u0002\u2ca2\u2ca3\u0007P\u0002\u0002\u2ca3", + "\u2ca4\u0007I\u0002\u0002\u2ca4\u2ca5\u0007a\u0002\u0002\u2ca5\u2ca6", + "\u0007K\u0002\u0002\u2ca6\u2ca7\u0007P\u0002\u0002\u2ca7\u2ca8\u0007", + "F\u0002\u0002\u2ca8\u2ca9\u0007G\u0002\u0002\u2ca9\u2caa\u0007Z\u0002", + "\u0002\u2caa\u0786\u0003\u0002\u0002\u0002\u2cab\u2cac\u0007U\u0002", + "\u0002\u2cac\u2cad\u0007W\u0002\u0002\u2cad\u2cae\u0007D\u0002\u0002", + "\u2cae\u2caf\u0007V\u0002\u0002\u2caf\u2cb0\u0007K\u0002\u0002\u2cb0", + "\u2cb1\u0007O\u0002\u0002\u2cb1\u2cb2\u0007G\u0002\u0002\u2cb2\u0788", + "\u0003\u0002\u0002\u0002\u2cb3\u2cb4\u0007U\u0002\u0002\u2cb4\u2cb5", + "\u0007[\u0002\u0002\u2cb5\u2cb6\u0007U\u0002\u0002\u2cb6\u2cb7\u0007", + "V\u0002\u0002\u2cb7\u2cb8\u0007G\u0002\u0002\u2cb8\u2cb9\u0007O\u0002", + "\u0002\u2cb9\u2cba\u0007a\u0002\u0002\u2cba\u2cbb\u0007W\u0002\u0002", + "\u2cbb\u2cbc\u0007U\u0002\u0002\u2cbc\u2cbd\u0007G\u0002\u0002\u2cbd", + "\u2cbe\u0007T\u0002\u0002\u2cbe\u078a\u0003\u0002\u0002\u0002\u2cbf", + "\u2cc0\u0007V\u0002\u0002\u2cc0\u2cc1\u0007C\u0002\u0002\u2cc1\u2cc2", + "\u0007P\u0002\u0002\u2cc2\u078c\u0003\u0002\u0002\u0002\u2cc3\u2cc4", + "\u0007V\u0002\u0002\u2cc4\u2cc5\u0007K\u0002\u0002\u2cc5\u2cc6\u0007", + "O\u0002\u0002\u2cc6\u2cc7\u0007G\u0002\u0002\u2cc7\u2cc8\u0007F\u0002", + "\u0002\u2cc8\u2cc9\u0007K\u0002\u0002\u2cc9\u2cca\u0007H\u0002\u0002", + "\u2cca\u2ccb\u0007H\u0002\u0002\u2ccb\u078e\u0003\u0002\u0002\u0002", + "\u2ccc\u2ccd\u0007V\u0002\u0002\u2ccd\u2cce\u0007K\u0002\u0002\u2cce", + "\u2ccf\u0007O\u0002\u0002\u2ccf\u2cd0\u0007G\u0002\u0002\u2cd0\u2cd1", + "\u0007U\u0002\u0002\u2cd1\u2cd2\u0007V\u0002\u0002\u2cd2\u2cd3\u0007", + "C\u0002\u0002\u2cd3\u2cd4\u0007O\u0002\u0002\u2cd4\u2cd5\u0007R\u0002", + "\u0002\u2cd5\u2cd6\u0007C\u0002\u0002\u2cd6\u2cd7\u0007F\u0002\u0002", + "\u2cd7\u2cd8\u0007F\u0002\u0002\u2cd8\u0790\u0003\u0002\u0002\u0002", + "\u2cd9\u2cda\u0007V\u0002\u0002\u2cda\u2cdb\u0007K\u0002\u0002\u2cdb", + "\u2cdc\u0007O\u0002\u0002\u2cdc\u2cdd\u0007G\u0002\u0002\u2cdd\u2cde", + "\u0007U\u0002\u0002\u2cde\u2cdf\u0007V\u0002\u0002\u2cdf\u2ce0\u0007", + "C\u0002\u0002\u2ce0\u2ce1\u0007O\u0002\u0002\u2ce1\u2ce2\u0007R\u0002", + "\u0002\u2ce2\u2ce3\u0007F\u0002\u0002\u2ce3\u2ce4\u0007K\u0002\u0002", + "\u2ce4\u2ce5\u0007H\u0002\u0002\u2ce5\u2ce6\u0007H\u0002\u0002\u2ce6", + "\u0792\u0003\u0002\u0002\u0002\u2ce7\u2ce8\u0007V\u0002\u0002\u2ce8", + "\u2ce9\u0007K\u0002\u0002\u2ce9\u2cea\u0007O\u0002\u0002\u2cea\u2ceb", + "\u0007G\u0002\u0002\u2ceb\u2cec\u0007a\u0002\u0002\u2cec\u2ced\u0007", + "H\u0002\u0002\u2ced\u2cee\u0007Q\u0002\u0002\u2cee\u2cef\u0007T\u0002", + "\u0002\u2cef\u2cf0\u0007O\u0002\u0002\u2cf0\u2cf1\u0007C\u0002\u0002", + "\u2cf1\u2cf2\u0007V\u0002\u0002\u2cf2\u0794\u0003\u0002\u0002\u0002", + "\u2cf3\u2cf4\u0007V\u0002\u0002\u2cf4\u2cf5\u0007K\u0002\u0002\u2cf5", + "\u2cf6\u0007O\u0002\u0002\u2cf6\u2cf7\u0007G\u0002\u0002\u2cf7\u2cf8", + "\u0007a\u0002\u0002\u2cf8\u2cf9\u0007V\u0002\u0002\u2cf9\u2cfa\u0007", + "Q\u0002\u0002\u2cfa\u2cfb\u0007a\u0002\u0002\u2cfb\u2cfc\u0007U\u0002", + "\u0002\u2cfc\u2cfd\u0007G\u0002\u0002\u2cfd\u2cfe\u0007E\u0002\u0002", + "\u2cfe\u0796\u0003\u0002\u0002\u0002\u2cff\u2d00\u0007V\u0002\u0002", + "\u2d00\u2d01\u0007Q\u0002\u0002\u2d01\u2d02\u0007W\u0002\u0002\u2d02", + "\u2d03\u0007E\u0002\u0002\u2d03\u2d04\u0007J\u0002\u0002\u2d04\u2d05", + "\u0007G\u0002\u0002\u2d05\u2d06\u0007U\u0002\u0002\u2d06\u0798\u0003", + "\u0002\u0002\u0002\u2d07\u2d08\u0007V\u0002\u0002\u2d08\u2d09\u0007", + "Q\u0002\u0002\u2d09\u2d0a\u0007a\u0002\u0002\u2d0a\u2d0b\u0007D\u0002", + "\u0002\u2d0b\u2d0c\u0007C\u0002\u0002\u2d0c\u2d0d\u0007U\u0002\u0002", + "\u2d0d\u2d0e\u0007G\u0002\u0002\u2d0e\u2d0f\u00078\u0002\u0002\u2d0f", + "\u2d10\u00076\u0002\u0002\u2d10\u079a\u0003\u0002\u0002\u0002\u2d11", + "\u2d12\u0007V\u0002\u0002\u2d12\u2d13\u0007Q\u0002\u0002\u2d13\u2d14", + "\u0007a\u0002\u0002\u2d14\u2d15\u0007F\u0002\u0002\u2d15\u2d16\u0007", + "C\u0002\u0002\u2d16\u2d17\u0007[\u0002\u0002\u2d17\u2d18\u0007U\u0002", + "\u0002\u2d18\u079c\u0003\u0002\u0002\u0002\u2d19\u2d1a\u0007V\u0002", + "\u0002\u2d1a\u2d1b\u0007Q\u0002\u0002\u2d1b\u2d1c\u0007a\u0002\u0002", + "\u2d1c\u2d1d\u0007U\u0002\u0002\u2d1d\u2d1e\u0007G\u0002\u0002\u2d1e", + "\u2d1f\u0007E\u0002\u0002\u2d1f\u2d20\u0007Q\u0002\u0002\u2d20\u2d21", + "\u0007P\u0002\u0002\u2d21\u2d22\u0007F\u0002\u0002\u2d22\u2d23\u0007", + "U\u0002\u0002\u2d23\u079e\u0003\u0002\u0002\u0002\u2d24\u2d25\u0007", + "W\u0002\u0002\u2d25\u2d26\u0007E\u0002\u0002\u2d26\u2d27\u0007C\u0002", + "\u0002\u2d27\u2d28\u0007U\u0002\u0002\u2d28\u2d29\u0007G\u0002\u0002", + "\u2d29\u07a0\u0003\u0002\u0002\u0002\u2d2a\u2d2b\u0007W\u0002\u0002", + "\u2d2b\u2d2c\u0007P\u0002\u0002\u2d2c\u2d2d\u0007E\u0002\u0002\u2d2d", + "\u2d2e\u0007Q\u0002\u0002\u2d2e\u2d2f\u0007O\u0002\u0002\u2d2f\u2d30", + "\u0007R\u0002\u0002\u2d30\u2d31\u0007T\u0002\u0002\u2d31\u2d32\u0007", + "G\u0002\u0002\u2d32\u2d33\u0007U\u0002\u0002\u2d33\u2d34\u0007U\u0002", + "\u0002\u2d34\u07a2\u0003\u0002\u0002\u0002\u2d35\u2d36\u0007W\u0002", + "\u0002\u2d36\u2d37\u0007P\u0002\u0002\u2d37\u2d38\u0007E\u0002\u0002", + "\u2d38\u2d39\u0007Q\u0002\u0002\u2d39\u2d3a\u0007O\u0002\u0002\u2d3a", + "\u2d3b\u0007R\u0002\u0002\u2d3b\u2d3c\u0007T\u0002\u0002\u2d3c\u2d3d", + "\u0007G\u0002\u0002\u2d3d\u2d3e\u0007U\u0002\u0002\u2d3e\u2d3f\u0007", + "U\u0002\u0002\u2d3f\u2d40\u0007G\u0002\u0002\u2d40\u2d41\u0007F\u0002", + "\u0002\u2d41\u2d42\u0007a\u0002\u0002\u2d42\u2d43\u0007N\u0002\u0002", + "\u2d43\u2d44\u0007G\u0002\u0002\u2d44\u2d45\u0007P\u0002\u0002\u2d45", + "\u2d46\u0007I\u0002\u0002\u2d46\u2d47\u0007V\u0002\u0002\u2d47\u2d48", + "\u0007J\u0002\u0002\u2d48\u07a4\u0003\u0002\u0002\u0002\u2d49\u2d4a", + "\u0007W\u0002\u0002\u2d4a\u2d4b\u0007P\u0002\u0002\u2d4b\u2d4c\u0007", + "J\u0002\u0002\u2d4c\u2d4d\u0007G\u0002\u0002\u2d4d\u2d4e\u0007Z\u0002", + "\u0002\u2d4e\u07a6\u0003\u0002\u0002\u0002\u2d4f\u2d50\u0007W\u0002", + "\u0002\u2d50\u2d51\u0007P\u0002\u0002\u2d51\u2d52\u0007K\u0002\u0002", + "\u2d52\u2d53\u0007Z\u0002\u0002\u2d53\u2d54\u0007a\u0002\u0002\u2d54", + "\u2d55\u0007V\u0002\u0002\u2d55\u2d56\u0007K\u0002\u0002\u2d56\u2d57", + "\u0007O\u0002\u0002\u2d57\u2d58\u0007G\u0002\u0002\u2d58\u2d59\u0007", + "U\u0002\u0002\u2d59\u2d5a\u0007V\u0002\u0002\u2d5a\u2d5b\u0007C\u0002", + "\u0002\u2d5b\u2d5c\u0007O\u0002\u0002\u2d5c\u2d5d\u0007R\u0002\u0002", + "\u2d5d\u07a8\u0003\u0002\u0002\u0002\u2d5e\u2d5f\u0007W\u0002\u0002", + "\u2d5f\u2d60\u0007R\u0002\u0002\u2d60\u2d61\u0007F\u0002\u0002\u2d61", + "\u2d62\u0007C\u0002\u0002\u2d62\u2d63\u0007V\u0002\u0002\u2d63\u2d64", + "\u0007G\u0002\u0002\u2d64\u2d65\u0007Z\u0002\u0002\u2d65\u2d66\u0007", + "O\u0002\u0002\u2d66\u2d67\u0007N\u0002\u0002\u2d67\u07aa\u0003\u0002", + "\u0002\u0002\u2d68\u2d69\u0007W\u0002\u0002\u2d69\u2d6a\u0007R\u0002", + "\u0002\u2d6a\u2d6b\u0007R\u0002\u0002\u2d6b\u2d6c\u0007G\u0002\u0002", + "\u2d6c\u2d6d\u0007T\u0002\u0002\u2d6d\u07ac\u0003\u0002\u0002\u0002", + "\u2d6e\u2d6f\u0007W\u0002\u0002\u2d6f\u2d70\u0007W\u0002\u0002\u2d70", + "\u2d71\u0007K\u0002\u0002\u2d71\u2d72\u0007F\u0002\u0002\u2d72\u07ae", + "\u0003\u0002\u0002\u0002\u2d73\u2d74\u0007W\u0002\u0002\u2d74\u2d75", + "\u0007W\u0002\u0002\u2d75\u2d76\u0007K\u0002\u0002\u2d76\u2d77\u0007", + "F\u0002\u0002\u2d77\u2d78\u0007a\u0002\u0002\u2d78\u2d79\u0007U\u0002", + "\u0002\u2d79\u2d7a\u0007J\u0002\u0002\u2d7a\u2d7b\u0007Q\u0002\u0002", + "\u2d7b\u2d7c\u0007T\u0002\u0002\u2d7c\u2d7d\u0007V\u0002\u0002\u2d7d", + "\u07b0\u0003\u0002\u0002\u0002\u2d7e\u2d7f\u0007X\u0002\u0002\u2d7f", + "\u2d80\u0007C\u0002\u0002\u2d80\u2d81\u0007N\u0002\u0002\u2d81\u2d82", + "\u0007K\u0002\u0002\u2d82\u2d83\u0007F\u0002\u0002\u2d83\u2d84\u0007", + "C\u0002\u0002\u2d84\u2d85\u0007V\u0002\u0002\u2d85\u2d86\u0007G\u0002", + "\u0002\u2d86\u2d87\u0007a\u0002\u0002\u2d87\u2d88\u0007R\u0002\u0002", + "\u2d88\u2d89\u0007C\u0002\u0002\u2d89\u2d8a\u0007U\u0002\u0002\u2d8a", + "\u2d8b\u0007U\u0002\u0002\u2d8b\u2d8c\u0007Y\u0002\u0002\u2d8c\u2d8d", + "\u0007Q\u0002\u0002\u2d8d\u2d8e\u0007T\u0002\u0002\u2d8e\u2d8f\u0007", + "F\u0002\u0002\u2d8f\u2d90\u0007a\u0002\u0002\u2d90\u2d91\u0007U\u0002", + "\u0002\u2d91\u2d92\u0007V\u0002\u0002\u2d92\u2d93\u0007T\u0002\u0002", + "\u2d93\u2d94\u0007G\u0002\u0002\u2d94\u2d95\u0007P\u0002\u0002\u2d95", + "\u2d96\u0007I\u0002\u0002\u2d96\u2d97\u0007V\u0002\u0002\u2d97\u2d98", + "\u0007J\u0002\u0002\u2d98\u07b2\u0003\u0002\u0002\u0002\u2d99\u2d9a", + "\u0007X\u0002\u0002\u2d9a\u2d9b\u0007G\u0002\u0002\u2d9b\u2d9c\u0007", + "T\u0002\u0002\u2d9c\u2d9d\u0007U\u0002\u0002\u2d9d\u2d9e\u0007K\u0002", + "\u0002\u2d9e\u2d9f\u0007Q\u0002\u0002\u2d9f\u2da0\u0007P\u0002\u0002", + "\u2da0\u07b4\u0003\u0002\u0002\u0002\u2da1\u2da2\u0007Y\u0002\u0002", + "\u2da2\u2da3\u0007C\u0002\u0002\u2da3\u2da4\u0007K\u0002\u0002\u2da4", + "\u2da5\u0007V\u0002\u0002\u2da5\u2da6\u0007a\u0002\u0002\u2da6\u2da7", + "\u0007W\u0002\u0002\u2da7\u2da8\u0007P\u0002\u0002\u2da8\u2da9\u0007", + "V\u0002\u0002\u2da9\u2daa\u0007K\u0002\u0002\u2daa\u2dab\u0007N\u0002", + "\u0002\u2dab\u2dac\u0007a\u0002\u0002\u2dac\u2dad\u0007U\u0002\u0002", + "\u2dad\u2dae\u0007S\u0002\u0002\u2dae\u2daf\u0007N\u0002\u0002\u2daf", + "\u2db0\u0007a\u0002\u0002\u2db0\u2db1\u0007V\u0002\u0002\u2db1\u2db2", + "\u0007J\u0002\u0002\u2db2\u2db3\u0007T\u0002\u0002\u2db3\u2db4\u0007", + "G\u0002\u0002\u2db4\u2db5\u0007C\u0002\u0002\u2db5\u2db6\u0007F\u0002", + "\u0002\u2db6\u2db7\u0007a\u0002\u0002\u2db7\u2db8\u0007C\u0002\u0002", + "\u2db8\u2db9\u0007H\u0002\u0002\u2db9\u2dba\u0007V\u0002\u0002\u2dba", + "\u2dbb\u0007G\u0002\u0002\u2dbb\u2dbc\u0007T\u0002\u0002\u2dbc\u2dbd", + "\u0007a\u0002\u0002\u2dbd\u2dbe\u0007I\u0002\u0002\u2dbe\u2dbf\u0007", + "V\u0002\u0002\u2dbf\u2dc0\u0007K\u0002\u0002\u2dc0\u2dc1\u0007F\u0002", + "\u0002\u2dc1\u2dc2\u0007U\u0002\u0002\u2dc2\u07b6\u0003\u0002\u0002", + "\u0002\u2dc3\u2dc4\u0007Y\u0002\u0002\u2dc4\u2dc5\u0007G\u0002\u0002", + "\u2dc5\u2dc6\u0007G\u0002\u0002\u2dc6\u2dc7\u0007M\u0002\u0002\u2dc7", + "\u2dc8\u0007F\u0002\u0002\u2dc8\u2dc9\u0007C\u0002\u0002\u2dc9\u2dca", + "\u0007[\u0002\u0002\u2dca\u07b8\u0003\u0002\u0002\u0002\u2dcb\u2dcc", + "\u0007Y\u0002\u0002\u2dcc\u2dcd\u0007G\u0002\u0002\u2dcd\u2dce\u0007", + "G\u0002\u0002\u2dce\u2dcf\u0007M\u0002\u0002\u2dcf\u2dd0\u0007Q\u0002", + "\u0002\u2dd0\u2dd1\u0007H\u0002\u0002\u2dd1\u2dd2\u0007[\u0002\u0002", + "\u2dd2\u2dd3\u0007G\u0002\u0002\u2dd3\u2dd4\u0007C\u0002\u0002\u2dd4", + "\u2dd5\u0007T\u0002\u0002\u2dd5\u07ba\u0003\u0002\u0002\u0002\u2dd6", + "\u2dd7\u0007Y\u0002\u0002\u2dd7\u2dd8\u0007G\u0002\u0002\u2dd8\u2dd9", + "\u0007K\u0002\u0002\u2dd9\u2dda\u0007I\u0002\u0002\u2dda\u2ddb\u0007", + "J\u0002\u0002\u2ddb\u2ddc\u0007V\u0002\u0002\u2ddc\u2ddd\u0007a\u0002", + "\u0002\u2ddd\u2dde\u0007U\u0002\u0002\u2dde\u2ddf\u0007V\u0002\u0002", + "\u2ddf\u2de0\u0007T\u0002\u0002\u2de0\u2de1\u0007K\u0002\u0002\u2de1", + "\u2de2\u0007P\u0002\u0002\u2de2\u2de3\u0007I\u0002\u0002\u2de3\u07bc", + "\u0003\u0002\u0002\u0002\u2de4\u2de5\u0007Y\u0002\u0002\u2de5\u2de6", + "\u0007K\u0002\u0002\u2de6\u2de7\u0007V\u0002\u0002\u2de7\u2de8\u0007", + "J\u0002\u0002\u2de8\u2de9\u0007K\u0002\u0002\u2de9\u2dea\u0007P\u0002", + "\u0002\u2dea\u07be\u0003\u0002\u0002\u0002\u2deb\u2dec\u0007[\u0002", + "\u0002\u2dec\u2ded\u0007G\u0002\u0002\u2ded\u2dee\u0007C\u0002\u0002", + "\u2dee\u2def\u0007T\u0002\u0002\u2def\u2df0\u0007Y\u0002\u0002\u2df0", + "\u2df1\u0007G\u0002\u0002\u2df1\u2df2\u0007G\u0002\u0002\u2df2\u2df3", + "\u0007M\u0002\u0002\u2df3\u07c0\u0003\u0002\u0002\u0002\u2df4\u2df5", + "\u0007[\u0002\u0002\u2df5\u07c2\u0003\u0002\u0002\u0002\u2df6\u2df7", + "\u0007Z\u0002\u0002\u2df7\u07c4\u0003\u0002\u0002\u0002\u2df8\u2df9", + "\u0007<\u0002\u0002\u2df9\u2dfa\u0007?\u0002\u0002\u2dfa\u07c6\u0003", + "\u0002\u0002\u0002\u2dfb\u2dfc\u0007-\u0002\u0002\u2dfc\u2dfd\u0007", + "?\u0002\u0002\u2dfd\u07c8\u0003\u0002\u0002\u0002\u2dfe\u2dff\u0007", + "/\u0002\u0002\u2dff\u2e00\u0007?\u0002\u0002\u2e00\u07ca\u0003\u0002", + "\u0002\u0002\u2e01\u2e02\u0007,\u0002\u0002\u2e02\u2e03\u0007?\u0002", + "\u0002\u2e03\u07cc\u0003\u0002\u0002\u0002\u2e04\u2e05\u00071\u0002", + "\u0002\u2e05\u2e06\u0007?\u0002\u0002\u2e06\u07ce\u0003\u0002\u0002", + "\u0002\u2e07\u2e08\u0007\'\u0002\u0002\u2e08\u2e09\u0007?\u0002\u0002", + "\u2e09\u07d0\u0003\u0002\u0002\u0002\u2e0a\u2e0b\u0007(\u0002\u0002", + "\u2e0b\u2e0c\u0007?\u0002\u0002\u2e0c\u07d2\u0003\u0002\u0002\u0002", + "\u2e0d\u2e0e\u0007`\u0002\u0002\u2e0e\u2e0f\u0007?\u0002\u0002\u2e0f", + "\u07d4\u0003\u0002\u0002\u0002\u2e10\u2e11\u0007~\u0002\u0002\u2e11", + "\u2e12\u0007?\u0002\u0002\u2e12\u07d6\u0003\u0002\u0002\u0002\u2e13", + "\u2e14\u0007,\u0002\u0002\u2e14\u07d8\u0003\u0002\u0002\u0002\u2e15", + "\u2e16\u00071\u0002\u0002\u2e16\u07da\u0003\u0002\u0002\u0002\u2e17", + "\u2e18\u0007\'\u0002\u0002\u2e18\u07dc\u0003\u0002\u0002\u0002\u2e19", + "\u2e1a\u0007-\u0002\u0002\u2e1a\u07de\u0003\u0002\u0002\u0002\u2e1b", + "\u2e1c\u0007/\u0002\u0002\u2e1c\u2e1d\u0007/\u0002\u0002\u2e1d\u07e0", + "\u0003\u0002\u0002\u0002\u2e1e\u2e1f\u0007/\u0002\u0002\u2e1f\u07e2", + "\u0003\u0002\u0002\u0002\u2e20\u2e21\u0007F\u0002\u0002\u2e21\u2e22", + "\u0007K\u0002\u0002\u2e22\u2e23\u0007X\u0002\u0002\u2e23\u07e4\u0003", + "\u0002\u0002\u0002\u2e24\u2e25\u0007O\u0002\u0002\u2e25\u2e26\u0007", + "Q\u0002\u0002\u2e26\u2e27\u0007F\u0002\u0002\u2e27\u07e6\u0003\u0002", + "\u0002\u0002\u2e28\u2e29\u0007?\u0002\u0002\u2e29\u07e8\u0003\u0002", + "\u0002\u0002\u2e2a\u2e2b\u0007@\u0002\u0002\u2e2b\u07ea\u0003\u0002", + "\u0002\u0002\u2e2c\u2e2d\u0007>\u0002\u0002\u2e2d\u07ec\u0003\u0002", + "\u0002\u0002\u2e2e\u2e2f\u0007#\u0002\u0002\u2e2f\u07ee\u0003\u0002", + "\u0002\u0002\u2e30\u2e31\u0007\u0080\u0002\u0002\u2e31\u07f0\u0003\u0002", + "\u0002\u0002\u2e32\u2e33\u0007~\u0002\u0002\u2e33\u07f2\u0003\u0002", + "\u0002\u0002\u2e34\u2e35\u0007(\u0002\u0002\u2e35\u07f4\u0003\u0002", + "\u0002\u0002\u2e36\u2e37\u0007`\u0002\u0002\u2e37\u07f6\u0003\u0002", + "\u0002\u0002\u2e38\u2e39\u00070\u0002\u0002\u2e39\u07f8\u0003\u0002", + "\u0002\u0002\u2e3a\u2e3b\u0007*\u0002\u0002\u2e3b\u07fa\u0003\u0002", + "\u0002\u0002\u2e3c\u2e3d\u0007+\u0002\u0002\u2e3d\u07fc\u0003\u0002", + "\u0002\u0002\u2e3e\u2e3f\u0007.\u0002\u0002\u2e3f\u07fe\u0003\u0002", + "\u0002\u0002\u2e40\u2e41\u0007=\u0002\u0002\u2e41\u0800\u0003\u0002", + "\u0002\u0002\u2e42\u2e43\u0007B\u0002\u0002\u2e43\u0802\u0003\u0002", + "\u0002\u0002\u2e44\u2e45\u00072\u0002\u0002\u2e45\u0804\u0003\u0002", + "\u0002\u0002\u2e46\u2e47\u00073\u0002\u0002\u2e47\u0806\u0003\u0002", + "\u0002\u0002\u2e48\u2e49\u00074\u0002\u0002\u2e49\u0808\u0003\u0002", + "\u0002\u0002\u2e4a\u2e4b\u0007)\u0002\u0002\u2e4b\u080a\u0003\u0002", + "\u0002\u0002\u2e4c\u2e4d\u0007$\u0002\u0002\u2e4d\u080c\u0003\u0002", + "\u0002\u0002\u2e4e\u2e4f\u0007b\u0002\u0002\u2e4f\u080e\u0003\u0002", + "\u0002\u0002\u2e50\u2e51\u0007<\u0002\u0002\u2e51\u0810\u0003\u0002", + "\u0002\u0002\u2e52\u2e56\u0005\u0809\u0405\u0002\u2e53\u2e56\u0005\u080b", + "\u0406\u0002\u2e54\u2e56\u0005\u080d\u0407\u0002\u2e55\u2e52\u0003\u0002", + "\u0002\u0002\u2e55\u2e53\u0003\u0002\u0002\u0002\u2e55\u2e54\u0003\u0002", + "\u0002\u0002\u2e56\u0812\u0003\u0002\u0002\u0002\u2e57\u2e58\u0007b", + "\u0002\u0002\u2e58\u2e59\u0005\u0833\u041a\u0002\u2e59\u2e5a\u0007b", + "\u0002\u0002\u2e5a\u0814\u0003\u0002\u0002\u0002\u2e5b\u2e5d\u0005\u0841", + "\u0421\u0002\u2e5c\u2e5b\u0003\u0002\u0002\u0002\u2e5d\u2e5e\u0003\u0002", + "\u0002\u0002\u2e5e\u2e5c\u0003\u0002\u0002\u0002\u2e5e\u2e5f\u0003\u0002", + "\u0002\u0002\u2e5f\u2e60\u0003\u0002\u0002\u0002\u2e60\u2e61\t\u0004", + "\u0002\u0002\u2e61\u0816\u0003\u0002\u0002\u0002\u2e62\u2e63\u0007P", + "\u0002\u0002\u2e63\u2e64\u0005\u083b\u041e\u0002\u2e64\u0818\u0003\u0002", + "\u0002\u0002\u2e65\u2e69\u0005\u0839\u041d\u0002\u2e66\u2e69\u0005\u083b", + "\u041e\u0002\u2e67\u2e69\u0005\u083d\u041f\u0002\u2e68\u2e65\u0003\u0002", + "\u0002\u0002\u2e68\u2e66\u0003\u0002\u0002\u0002\u2e68\u2e67\u0003\u0002", + "\u0002\u0002\u2e69\u081a\u0003\u0002\u0002\u0002\u2e6a\u2e6c\u0005\u0841", + "\u0421\u0002\u2e6b\u2e6a\u0003\u0002\u0002\u0002\u2e6c\u2e6d\u0003\u0002", + "\u0002\u0002\u2e6d\u2e6b\u0003\u0002\u0002\u0002\u2e6d\u2e6e\u0003\u0002", + "\u0002\u0002\u2e6e\u081c\u0003\u0002\u0002\u0002\u2e6f\u2e70\u0007Z", + "\u0002\u0002\u2e70\u2e74\u0007)\u0002\u0002\u2e71\u2e72\u0005\u083f", + "\u0420\u0002\u2e72\u2e73\u0005\u083f\u0420\u0002\u2e73\u2e75\u0003\u0002", + "\u0002\u0002\u2e74\u2e71\u0003\u0002\u0002\u0002\u2e75\u2e76\u0003\u0002", + "\u0002\u0002\u2e76\u2e74\u0003\u0002\u0002\u0002\u2e76\u2e77\u0003\u0002", + "\u0002\u0002\u2e77\u2e78\u0003\u0002\u0002\u0002\u2e78\u2e79\u0007)", + "\u0002\u0002\u2e79\u2e83\u0003\u0002\u0002\u0002\u2e7a\u2e7b\u00072", + "\u0002\u0002\u2e7b\u2e7c\u0007Z\u0002\u0002\u2e7c\u2e7e\u0003\u0002", + "\u0002\u0002\u2e7d\u2e7f\u0005\u083f\u0420\u0002\u2e7e\u2e7d\u0003\u0002", + "\u0002\u0002\u2e7f\u2e80\u0003\u0002\u0002\u0002\u2e80\u2e7e\u0003\u0002", + "\u0002\u0002\u2e80\u2e81\u0003\u0002\u0002\u0002\u2e81\u2e83\u0003\u0002", + "\u0002\u0002\u2e82\u2e6f\u0003\u0002\u0002\u0002\u2e82\u2e7a\u0003\u0002", + "\u0002\u0002\u2e83\u081e\u0003\u0002\u0002\u0002\u2e84\u2e86\u0005\u0841", + "\u0421\u0002\u2e85\u2e84\u0003\u0002\u0002\u0002\u2e86\u2e87\u0003\u0002", + "\u0002\u0002\u2e87\u2e85\u0003\u0002\u0002\u0002\u2e87\u2e88\u0003\u0002", + "\u0002\u0002\u2e88\u2e8a\u0003\u0002\u0002\u0002\u2e89\u2e85\u0003\u0002", + "\u0002\u0002\u2e89\u2e8a\u0003\u0002\u0002\u0002\u2e8a\u2e8b\u0003\u0002", + "\u0002\u0002\u2e8b\u2e8d\u00070\u0002\u0002\u2e8c\u2e8e\u0005\u0841", + "\u0421\u0002\u2e8d\u2e8c\u0003\u0002\u0002\u0002\u2e8e\u2e8f\u0003\u0002", + "\u0002\u0002\u2e8f\u2e8d\u0003\u0002\u0002\u0002\u2e8f\u2e90\u0003\u0002", + "\u0002\u0002\u2e90\u2eb0\u0003\u0002\u0002\u0002\u2e91\u2e93\u0005\u0841", + "\u0421\u0002\u2e92\u2e91\u0003\u0002\u0002\u0002\u2e93\u2e94\u0003\u0002", + "\u0002\u0002\u2e94\u2e92\u0003\u0002\u0002\u0002\u2e94\u2e95\u0003\u0002", + "\u0002\u0002\u2e95\u2e96\u0003\u0002\u0002\u0002\u2e96\u2e97\u00070", + "\u0002\u0002\u2e97\u2e98\u0005\u0835\u041b\u0002\u2e98\u2eb0\u0003\u0002", + "\u0002\u0002\u2e99\u2e9b\u0005\u0841\u0421\u0002\u2e9a\u2e99\u0003\u0002", + "\u0002\u0002\u2e9b\u2e9c\u0003\u0002\u0002\u0002\u2e9c\u2e9a\u0003\u0002", + "\u0002\u0002\u2e9c\u2e9d\u0003\u0002\u0002\u0002\u2e9d\u2e9f\u0003\u0002", + "\u0002\u0002\u2e9e\u2e9a\u0003\u0002\u0002\u0002\u2e9e\u2e9f\u0003\u0002", + "\u0002\u0002\u2e9f\u2ea0\u0003\u0002\u0002\u0002\u2ea0\u2ea2\u00070", + "\u0002\u0002\u2ea1\u2ea3\u0005\u0841\u0421\u0002\u2ea2\u2ea1\u0003\u0002", + "\u0002\u0002\u2ea3\u2ea4\u0003\u0002\u0002\u0002\u2ea4\u2ea2\u0003\u0002", + "\u0002\u0002\u2ea4\u2ea5\u0003\u0002\u0002\u0002\u2ea5\u2ea6\u0003\u0002", + "\u0002\u0002\u2ea6\u2ea7\u0005\u0835\u041b\u0002\u2ea7\u2eb0\u0003\u0002", + "\u0002\u0002\u2ea8\u2eaa\u0005\u0841\u0421\u0002\u2ea9\u2ea8\u0003\u0002", + "\u0002\u0002\u2eaa\u2eab\u0003\u0002\u0002\u0002\u2eab\u2ea9\u0003\u0002", + "\u0002\u0002\u2eab\u2eac\u0003\u0002\u0002\u0002\u2eac\u2ead\u0003\u0002", + "\u0002\u0002\u2ead\u2eae\u0005\u0835\u041b\u0002\u2eae\u2eb0\u0003\u0002", + "\u0002\u0002\u2eaf\u2e89\u0003\u0002\u0002\u0002\u2eaf\u2e92\u0003\u0002", + "\u0002\u0002\u2eaf\u2e9e\u0003\u0002\u0002\u0002\u2eaf\u2ea9\u0003\u0002", + "\u0002\u0002\u2eb0\u0820\u0003\u0002\u0002\u0002\u2eb1\u2eb2\u0007^", + "\u0002\u0002\u2eb2\u2eb3\u0007P\u0002\u0002\u2eb3\u0822\u0003\u0002", + "\u0002\u0002\u2eb4\u2eb5\u0005\u0843\u0422\u0002\u2eb5\u0824\u0003\u0002", + "\u0002\u0002\u2eb6\u2eb7\u0007a\u0002\u0002\u2eb7\u2eb8\u0005\u0833", + "\u041a\u0002\u2eb8\u0826\u0003\u0002\u0002\u0002\u2eb9\u2eba\u00070", + "\u0002\u0002\u2eba\u2ebb\u0005\u0837\u041c\u0002\u2ebb\u0828\u0003\u0002", + "\u0002\u0002\u2ebc\u2ebd\u0005\u0837\u041c\u0002\u2ebd\u082a\u0003\u0002", + "\u0002\u0002\u2ebe\u2ec0\u0007b\u0002\u0002\u2ebf\u2ec1\n\u0005\u0002", + "\u0002\u2ec0\u2ebf\u0003\u0002\u0002\u0002\u2ec1\u2ec2\u0003\u0002\u0002", + "\u0002\u2ec2\u2ec0\u0003\u0002\u0002\u0002\u2ec2\u2ec3\u0003\u0002\u0002", + "\u0002\u2ec3\u2ec4\u0003\u0002\u0002\u0002\u2ec4\u2ec5\u0007b\u0002", + "\u0002\u2ec5\u082c\u0003\u0002\u0002\u0002\u2ec6\u2ecb\u0005\u083b\u041e", + "\u0002\u2ec7\u2ecb\u0005\u0839\u041d\u0002\u2ec8\u2ecb\u0005\u083d\u041f", + "\u0002\u2ec9\u2ecb\u0005\u0837\u041c\u0002\u2eca\u2ec6\u0003\u0002\u0002", + "\u0002\u2eca\u2ec7\u0003\u0002\u0002\u0002\u2eca\u2ec8\u0003\u0002\u0002", + "\u0002\u2eca\u2ec9\u0003\u0002\u0002\u0002\u2ecb\u2ecc\u0003\u0002\u0002", + "\u0002\u2ecc\u2ed1\u0007B\u0002\u0002\u2ecd\u2ed2\u0005\u083b\u041e", + "\u0002\u2ece\u2ed2\u0005\u0839\u041d\u0002\u2ecf\u2ed2\u0005\u083d\u041f", + "\u0002\u2ed0\u2ed2\u0005\u0837\u041c\u0002\u2ed1\u2ecd\u0003\u0002\u0002", + "\u0002\u2ed1\u2ece\u0003\u0002\u0002\u0002\u2ed1\u2ecf\u0003\u0002\u0002", + "\u0002\u2ed1\u2ed0\u0003\u0002\u0002\u0002\u2ed2\u082e\u0003\u0002\u0002", + "\u0002\u2ed3\u2edc\u0007B\u0002\u0002\u2ed4\u2ed6\t\u0006\u0002\u0002", + "\u2ed5\u2ed4\u0003\u0002\u0002\u0002\u2ed6\u2ed7\u0003\u0002\u0002\u0002", + "\u2ed7\u2ed5\u0003\u0002\u0002\u0002\u2ed7\u2ed8\u0003\u0002\u0002\u0002", + "\u2ed8\u2edd\u0003\u0002\u0002\u0002\u2ed9\u2edd\u0005\u083b\u041e\u0002", + "\u2eda\u2edd\u0005\u0839\u041d\u0002\u2edb\u2edd\u0005\u083d\u041f\u0002", + "\u2edc\u2ed5\u0003\u0002\u0002\u0002\u2edc\u2ed9\u0003\u0002\u0002\u0002", + "\u2edc\u2eda\u0003\u0002\u0002\u0002\u2edc\u2edb\u0003\u0002\u0002\u0002", + "\u2edd\u0830\u0003\u0002\u0002\u0002\u2ede\u2edf\u0007B\u0002\u0002", + "\u2edf\u2ee6\u0007B\u0002\u0002\u2ee0\u2ee2\t\u0006\u0002\u0002\u2ee1", + "\u2ee0\u0003\u0002\u0002\u0002\u2ee2\u2ee3\u0003\u0002\u0002\u0002\u2ee3", + "\u2ee1\u0003\u0002\u0002\u0002\u2ee3\u2ee4\u0003\u0002\u0002\u0002\u2ee4", + "\u2ee7\u0003\u0002\u0002\u0002\u2ee5\u2ee7\u0005\u083d\u041f\u0002\u2ee6", + "\u2ee1\u0003\u0002\u0002\u0002\u2ee6\u2ee5\u0003\u0002\u0002\u0002\u2ee7", + "\u0832\u0003\u0002\u0002\u0002\u2ee8\u2f12\u0005\u04fb\u027e\u0002\u2ee9", + "\u2f12\u0005\u04fd\u027f\u0002\u2eea\u2f12\u0005\u04ff\u0280\u0002\u2eeb", + "\u2f12\u0005\u01a1\u00d1\u0002\u2eec\u2f12\u0005\u0501\u0281\u0002\u2eed", + "\u2f12\u0005\u0503\u0282\u0002\u2eee\u2f12\u0005\u0505\u0283\u0002\u2eef", + "\u2f12\u0005\u0507\u0284\u0002\u2ef0\u2f12\u0005\u0509\u0285\u0002\u2ef1", + "\u2f12\u0005\u050b\u0286\u0002\u2ef2\u2f12\u0005\u050d\u0287\u0002\u2ef3", + "\u2f12\u0005\u050f\u0288\u0002\u2ef4\u2f12\u0005\u0511\u0289\u0002\u2ef5", + "\u2f12\u0005\u0513\u028a\u0002\u2ef6\u2f12\u0005\u0515\u028b\u0002\u2ef7", + "\u2f12\u0005\u0517\u028c\u0002\u2ef8\u2f12\u0005\u0519\u028d\u0002\u2ef9", + "\u2f12\u0005\u051b\u028e\u0002\u2efa\u2f12\u0005\u051d\u028f\u0002\u2efb", + "\u2f12\u0005\u051f\u0290\u0002\u2efc\u2f12\u0005\u0521\u0291\u0002\u2efd", + "\u2f12\u0005\u0523\u0292\u0002\u2efe\u2f12\u0005\u0525\u0293\u0002\u2eff", + "\u2f12\u0005\u0527\u0294\u0002\u2f00\u2f12\u0005\u0529\u0295\u0002\u2f01", + "\u2f12\u0005\u052b\u0296\u0002\u2f02\u2f12\u0005\u052d\u0297\u0002\u2f03", + "\u2f12\u0005\u052f\u0298\u0002\u2f04\u2f12\u0005\u0531\u0299\u0002\u2f05", + "\u2f12\u0005\u0533\u029a\u0002\u2f06\u2f12\u0005\u0535\u029b\u0002\u2f07", + "\u2f12\u0005\u0537\u029c\u0002\u2f08\u2f12\u0005\u0539\u029d\u0002\u2f09", + "\u2f12\u0005\u053b\u029e\u0002\u2f0a\u2f12\u0005\u053d\u029f\u0002\u2f0b", + "\u2f12\u0005\u053f\u02a0\u0002\u2f0c\u2f12\u0005\u0541\u02a1\u0002\u2f0d", + "\u2f12\u0005\u0543\u02a2\u0002\u2f0e\u2f12\u0005\u0545\u02a3\u0002\u2f0f", + "\u2f12\u0005\u0547\u02a4\u0002\u2f10\u2f12\u0005\u0549\u02a5\u0002\u2f11", + "\u2ee8\u0003\u0002\u0002\u0002\u2f11\u2ee9\u0003\u0002\u0002\u0002\u2f11", + "\u2eea\u0003\u0002\u0002\u0002\u2f11\u2eeb\u0003\u0002\u0002\u0002\u2f11", + "\u2eec\u0003\u0002\u0002\u0002\u2f11\u2eed\u0003\u0002\u0002\u0002\u2f11", + "\u2eee\u0003\u0002\u0002\u0002\u2f11\u2eef\u0003\u0002\u0002\u0002\u2f11", + "\u2ef0\u0003\u0002\u0002\u0002\u2f11\u2ef1\u0003\u0002\u0002\u0002\u2f11", + "\u2ef2\u0003\u0002\u0002\u0002\u2f11\u2ef3\u0003\u0002\u0002\u0002\u2f11", + "\u2ef4\u0003\u0002\u0002\u0002\u2f11\u2ef5\u0003\u0002\u0002\u0002\u2f11", + "\u2ef6\u0003\u0002\u0002\u0002\u2f11\u2ef7\u0003\u0002\u0002\u0002\u2f11", + "\u2ef8\u0003\u0002\u0002\u0002\u2f11\u2ef9\u0003\u0002\u0002\u0002\u2f11", + "\u2efa\u0003\u0002\u0002\u0002\u2f11\u2efb\u0003\u0002\u0002\u0002\u2f11", + "\u2efc\u0003\u0002\u0002\u0002\u2f11\u2efd\u0003\u0002\u0002\u0002\u2f11", + "\u2efe\u0003\u0002\u0002\u0002\u2f11\u2eff\u0003\u0002\u0002\u0002\u2f11", + "\u2f00\u0003\u0002\u0002\u0002\u2f11\u2f01\u0003\u0002\u0002\u0002\u2f11", + "\u2f02\u0003\u0002\u0002\u0002\u2f11\u2f03\u0003\u0002\u0002\u0002\u2f11", + "\u2f04\u0003\u0002\u0002\u0002\u2f11\u2f05\u0003\u0002\u0002\u0002\u2f11", + "\u2f06\u0003\u0002\u0002\u0002\u2f11\u2f07\u0003\u0002\u0002\u0002\u2f11", + "\u2f08\u0003\u0002\u0002\u0002\u2f11\u2f09\u0003\u0002\u0002\u0002\u2f11", + "\u2f0a\u0003\u0002\u0002\u0002\u2f11\u2f0b\u0003\u0002\u0002\u0002\u2f11", + "\u2f0c\u0003\u0002\u0002\u0002\u2f11\u2f0d\u0003\u0002\u0002\u0002\u2f11", + "\u2f0e\u0003\u0002\u0002\u0002\u2f11\u2f0f\u0003\u0002\u0002\u0002\u2f11", + "\u2f10\u0003\u0002\u0002\u0002\u2f12\u0834\u0003\u0002\u0002\u0002\u2f13", + "\u2f15\u0007G\u0002\u0002\u2f14\u2f16\t\u0007\u0002\u0002\u2f15\u2f14", + "\u0003\u0002\u0002\u0002\u2f15\u2f16\u0003\u0002\u0002\u0002\u2f16\u2f18", + "\u0003\u0002\u0002\u0002\u2f17\u2f19\u0005\u0841\u0421\u0002\u2f18\u2f17", + "\u0003\u0002\u0002\u0002\u2f19\u2f1a\u0003\u0002\u0002\u0002\u2f1a\u2f18", + "\u0003\u0002\u0002\u0002\u2f1a\u2f1b\u0003\u0002\u0002\u0002\u2f1b\u0836", + "\u0003\u0002\u0002\u0002\u2f1c\u2f1e\t\b\u0002\u0002\u2f1d\u2f1c\u0003", + "\u0002\u0002\u0002\u2f1e\u2f21\u0003\u0002\u0002\u0002\u2f1f\u2f20\u0003", + "\u0002\u0002\u0002\u2f1f\u2f1d\u0003\u0002\u0002\u0002\u2f20\u2f23\u0003", + "\u0002\u0002\u0002\u2f21\u2f1f\u0003\u0002\u0002\u0002\u2f22\u2f24\t", + "\t\u0002\u0002\u2f23\u2f22\u0003\u0002\u0002\u0002\u2f24\u2f25\u0003", + "\u0002\u0002\u0002\u2f25\u2f26\u0003\u0002\u0002\u0002\u2f25\u2f23\u0003", + "\u0002\u0002\u0002\u2f26\u2f2a\u0003\u0002\u0002\u0002\u2f27\u2f29\t", + "\b\u0002\u0002\u2f28\u2f27\u0003\u0002\u0002\u0002\u2f29\u2f2c\u0003", + "\u0002\u0002\u0002\u2f2a\u2f28\u0003\u0002\u0002\u0002\u2f2a\u2f2b\u0003", + "\u0002\u0002\u0002\u2f2b\u0838\u0003\u0002\u0002\u0002\u2f2c\u2f2a\u0003", + "\u0002\u0002\u0002\u2f2d\u2f35\u0007$\u0002\u0002\u2f2e\u2f2f\u0007", + "^\u0002\u0002\u2f2f\u2f34\u000b\u0002\u0002\u0002\u2f30\u2f31\u0007", + "$\u0002\u0002\u2f31\u2f34\u0007$\u0002\u0002\u2f32\u2f34\n\n\u0002\u0002", + "\u2f33\u2f2e\u0003\u0002\u0002\u0002\u2f33\u2f30\u0003\u0002\u0002\u0002", + "\u2f33\u2f32\u0003\u0002\u0002\u0002\u2f34\u2f37\u0003\u0002\u0002\u0002", + "\u2f35\u2f33\u0003\u0002\u0002\u0002\u2f35\u2f36\u0003\u0002\u0002\u0002", + "\u2f36\u2f38\u0003\u0002\u0002\u0002\u2f37\u2f35\u0003\u0002\u0002\u0002", + "\u2f38\u2f39\u0007$\u0002\u0002\u2f39\u083a\u0003\u0002\u0002\u0002", + "\u2f3a\u2f42\u0007)\u0002\u0002\u2f3b\u2f3c\u0007^\u0002\u0002\u2f3c", + "\u2f41\u000b\u0002\u0002\u0002\u2f3d\u2f3e\u0007)\u0002\u0002\u2f3e", + "\u2f41\u0007)\u0002\u0002\u2f3f\u2f41\n\u000b\u0002\u0002\u2f40\u2f3b", + "\u0003\u0002\u0002\u0002\u2f40\u2f3d\u0003\u0002\u0002\u0002\u2f40\u2f3f", + "\u0003\u0002\u0002\u0002\u2f41\u2f44\u0003\u0002\u0002\u0002\u2f42\u2f40", + "\u0003\u0002\u0002\u0002\u2f42\u2f43\u0003\u0002\u0002\u0002\u2f43\u2f45", + "\u0003\u0002\u0002\u0002\u2f44\u2f42\u0003\u0002\u0002\u0002\u2f45\u2f46", + "\u0007)\u0002\u0002\u2f46\u083c\u0003\u0002\u0002\u0002\u2f47\u2f4f", + "\u0007b\u0002\u0002\u2f48\u2f49\u0007^\u0002\u0002\u2f49\u2f4e\u000b", + "\u0002\u0002\u0002\u2f4a\u2f4b\u0007b\u0002\u0002\u2f4b\u2f4e\u0007", + "b\u0002\u0002\u2f4c\u2f4e\n\f\u0002\u0002\u2f4d\u2f48\u0003\u0002\u0002", + "\u0002\u2f4d\u2f4a\u0003\u0002\u0002\u0002\u2f4d\u2f4c\u0003\u0002\u0002", + "\u0002\u2f4e\u2f51\u0003\u0002\u0002\u0002\u2f4f\u2f4d\u0003\u0002\u0002", + "\u0002\u2f4f\u2f50\u0003\u0002\u0002\u0002\u2f50\u2f52\u0003\u0002\u0002", + "\u0002\u2f51\u2f4f\u0003\u0002\u0002\u0002\u2f52\u2f53\u0007b\u0002", + "\u0002\u2f53\u083e\u0003\u0002\u0002\u0002\u2f54\u2f55\t\r\u0002\u0002", + "\u2f55\u0840\u0003\u0002\u0002\u0002\u2f56\u2f57\t\u000e\u0002\u0002", + "\u2f57\u0842\u0003\u0002\u0002\u0002\u2f58\u2f59\u0007D\u0002\u0002", + "\u2f59\u2f5b\u0007)\u0002\u0002\u2f5a\u2f5c\t\u000f\u0002\u0002\u2f5b", + "\u2f5a\u0003\u0002\u0002\u0002\u2f5c\u2f5d\u0003\u0002\u0002\u0002\u2f5d", + "\u2f5b\u0003\u0002\u0002\u0002\u2f5d\u2f5e\u0003\u0002\u0002\u0002\u2f5e", + "\u2f5f\u0003\u0002\u0002\u0002\u2f5f\u2f60\u0007)\u0002\u0002\u2f60", + "\u0844\u0003\u0002\u0002\u0002\u2f61\u2f62\u000b\u0002\u0002\u0002\u2f62", + "\u2f63\u0003\u0002\u0002\u0002\u2f63\u2f64\b\u0423\u0004\u0002\u2f64", + "\u0846\u0003\u0002\u0002\u00023\u0002\u084a\u0855\u0862\u086e\u0873", + "\u0877\u087b\u0881\u0885\u0887\u1e77\u1e92\u2e55\u2e5e\u2e68\u2e6d\u2e76", + "\u2e80\u2e82\u2e87\u2e89\u2e8f\u2e94\u2e9c\u2e9e\u2ea4\u2eab\u2eaf\u2ec2", + "\u2eca\u2ed1\u2ed7\u2edc\u2ee3\u2ee6\u2f11\u2f15\u2f1a\u2f1f\u2f25\u2f2a", + "\u2f33\u2f35\u2f40\u2f42\u2f4d\u2f4f\u2f5d\u0005\u0002\u0003\u0002\u0002", + "\u0004\u0002\u0002\u0005\u0002"].join(""); + + +var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); + +function MySQLLexer(input) { + antlr4.Lexer.call(this, input); + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); + return this; +} + +MySQLLexer.prototype = Object.create(antlr4.Lexer.prototype); +MySQLLexer.prototype.constructor = MySQLLexer; + +Object.defineProperty(MySQLLexer.prototype, "atn", { + get : function() { + return atn; + } +}); + +MySQLLexer.EOF = antlr4.Token.EOF; +MySQLLexer.SPACE = 1; +MySQLLexer.SPEC_MYSQL_COMMENT = 2; +MySQLLexer.COMMENT_INPUT = 3; +MySQLLexer.LINE_COMMENT = 4; +MySQLLexer.ADD = 5; +MySQLLexer.ALL = 6; +MySQLLexer.ALTER = 7; +MySQLLexer.ALWAYS = 8; +MySQLLexer.ANALYZE = 9; +MySQLLexer.AND = 10; +MySQLLexer.AS = 11; +MySQLLexer.ASC = 12; +MySQLLexer.BEFORE = 13; +MySQLLexer.BETWEEN = 14; +MySQLLexer.BOTH = 15; +MySQLLexer.BY = 16; +MySQLLexer.CALL = 17; +MySQLLexer.CASCADE = 18; +MySQLLexer.CASE = 19; +MySQLLexer.CAST = 20; +MySQLLexer.CHANGE = 21; +MySQLLexer.CHARACTER = 22; +MySQLLexer.CHECK = 23; +MySQLLexer.COLLATE = 24; +MySQLLexer.COLUMN = 25; +MySQLLexer.CONDITION = 26; +MySQLLexer.CONSTRAINT = 27; +MySQLLexer.CONTINUE = 28; +MySQLLexer.CONVERT = 29; +MySQLLexer.CREATE = 30; +MySQLLexer.CROSS = 31; +MySQLLexer.CURRENT = 32; +MySQLLexer.CURRENT_USER = 33; +MySQLLexer.CURSOR = 34; +MySQLLexer.DATABASE = 35; +MySQLLexer.DATABASES = 36; +MySQLLexer.DECLARE = 37; +MySQLLexer.DEFAULT = 38; +MySQLLexer.DELAYED = 39; +MySQLLexer.DELETE = 40; +MySQLLexer.DESC = 41; +MySQLLexer.DESCRIBE = 42; +MySQLLexer.DETERMINISTIC = 43; +MySQLLexer.DIAGNOSTICS = 44; +MySQLLexer.DISTINCT = 45; +MySQLLexer.DISTINCTROW = 46; +MySQLLexer.DROP = 47; +MySQLLexer.EACH = 48; +MySQLLexer.ELSE = 49; +MySQLLexer.ELSEIF = 50; +MySQLLexer.ENCLOSED = 51; +MySQLLexer.ESCAPED = 52; +MySQLLexer.EXISTS = 53; +MySQLLexer.EXIT = 54; +MySQLLexer.EXPLAIN = 55; +MySQLLexer.FALSE = 56; +MySQLLexer.FETCH = 57; +MySQLLexer.FOR = 58; +MySQLLexer.FORCE = 59; +MySQLLexer.FOREIGN = 60; +MySQLLexer.FROM = 61; +MySQLLexer.FULLTEXT = 62; +MySQLLexer.GENERATED = 63; +MySQLLexer.GET = 64; +MySQLLexer.GRANT = 65; +MySQLLexer.GROUP = 66; +MySQLLexer.HAVING = 67; +MySQLLexer.HIGH_PRIORITY = 68; +MySQLLexer.IF = 69; +MySQLLexer.IGNORE = 70; +MySQLLexer.IN = 71; +MySQLLexer.INDEX = 72; +MySQLLexer.INFILE = 73; +MySQLLexer.INNER = 74; +MySQLLexer.INOUT = 75; +MySQLLexer.INSERT = 76; +MySQLLexer.INTERVAL = 77; +MySQLLexer.INTO = 78; +MySQLLexer.IS = 79; +MySQLLexer.ITERATE = 80; +MySQLLexer.JOIN = 81; +MySQLLexer.KEY = 82; +MySQLLexer.KEYS = 83; +MySQLLexer.KILL = 84; +MySQLLexer.LEADING = 85; +MySQLLexer.LEAVE = 86; +MySQLLexer.LEFT = 87; +MySQLLexer.LIKE = 88; +MySQLLexer.LIMIT = 89; +MySQLLexer.LINEAR = 90; +MySQLLexer.LINES = 91; +MySQLLexer.LOAD = 92; +MySQLLexer.LOCK = 93; +MySQLLexer.LOOP = 94; +MySQLLexer.LOW_PRIORITY = 95; +MySQLLexer.MASTER_BIND = 96; +MySQLLexer.MASTER_SSL_VERIFY_SERVER_CERT = 97; +MySQLLexer.MATCH = 98; +MySQLLexer.MAXVALUE = 99; +MySQLLexer.MODIFIES = 100; +MySQLLexer.NATURAL = 101; +MySQLLexer.NOT = 102; +MySQLLexer.NO_WRITE_TO_BINLOG = 103; +MySQLLexer.NULL_LITERAL = 104; +MySQLLexer.NUMBER = 105; +MySQLLexer.ON = 106; +MySQLLexer.OPTIMIZE = 107; +MySQLLexer.OPTION = 108; +MySQLLexer.OPTIONALLY = 109; +MySQLLexer.OR = 110; +MySQLLexer.ORDER = 111; +MySQLLexer.OUT = 112; +MySQLLexer.OUTER = 113; +MySQLLexer.OUTFILE = 114; +MySQLLexer.PARTITION = 115; +MySQLLexer.PRIMARY = 116; +MySQLLexer.PROCEDURE = 117; +MySQLLexer.PURGE = 118; +MySQLLexer.RANGE = 119; +MySQLLexer.READ = 120; +MySQLLexer.READS = 121; +MySQLLexer.REFERENCES = 122; +MySQLLexer.REGEXP = 123; +MySQLLexer.RELEASE = 124; +MySQLLexer.RENAME = 125; +MySQLLexer.REPEAT = 126; +MySQLLexer.REPLACE = 127; +MySQLLexer.REQUIRE = 128; +MySQLLexer.RESIGNAL = 129; +MySQLLexer.RESTRICT = 130; +MySQLLexer.RETURN = 131; +MySQLLexer.REVOKE = 132; +MySQLLexer.RIGHT = 133; +MySQLLexer.RLIKE = 134; +MySQLLexer.SCHEMA = 135; +MySQLLexer.SCHEMAS = 136; +MySQLLexer.SELECT = 137; +MySQLLexer.SET = 138; +MySQLLexer.SEPARATOR = 139; +MySQLLexer.SHOW = 140; +MySQLLexer.SIGNAL = 141; +MySQLLexer.SPATIAL = 142; +MySQLLexer.SQL = 143; +MySQLLexer.SQLEXCEPTION = 144; +MySQLLexer.SQLSTATE = 145; +MySQLLexer.SQLWARNING = 146; +MySQLLexer.SQL_BIG_RESULT = 147; +MySQLLexer.SQL_CALC_FOUND_ROWS = 148; +MySQLLexer.SQL_SMALL_RESULT = 149; +MySQLLexer.SSL = 150; +MySQLLexer.STACKED = 151; +MySQLLexer.STARTING = 152; +MySQLLexer.STRAIGHT_JOIN = 153; +MySQLLexer.TABLE = 154; +MySQLLexer.TERMINATED = 155; +MySQLLexer.THEN = 156; +MySQLLexer.TO = 157; +MySQLLexer.TRAILING = 158; +MySQLLexer.TRIGGER = 159; +MySQLLexer.TRUE = 160; +MySQLLexer.UNDO = 161; +MySQLLexer.UNION = 162; +MySQLLexer.UNIQUE = 163; +MySQLLexer.UNLOCK = 164; +MySQLLexer.UNSIGNED = 165; +MySQLLexer.UPDATE = 166; +MySQLLexer.USAGE = 167; +MySQLLexer.USE = 168; +MySQLLexer.USING = 169; +MySQLLexer.VALUES = 170; +MySQLLexer.WHEN = 171; +MySQLLexer.WHERE = 172; +MySQLLexer.WHILE = 173; +MySQLLexer.WITH = 174; +MySQLLexer.WRITE = 175; +MySQLLexer.XOR = 176; +MySQLLexer.ZEROFILL = 177; +MySQLLexer.TINYINT = 178; +MySQLLexer.SMALLINT = 179; +MySQLLexer.MEDIUMINT = 180; +MySQLLexer.MIDDLEINT = 181; +MySQLLexer.INT = 182; +MySQLLexer.INT1 = 183; +MySQLLexer.INT2 = 184; +MySQLLexer.INT3 = 185; +MySQLLexer.INT4 = 186; +MySQLLexer.INT8 = 187; +MySQLLexer.INTEGER = 188; +MySQLLexer.BIGINT = 189; +MySQLLexer.REAL = 190; +MySQLLexer.DOUBLE = 191; +MySQLLexer.PRECISION = 192; +MySQLLexer.FLOAT = 193; +MySQLLexer.FLOAT4 = 194; +MySQLLexer.FLOAT8 = 195; +MySQLLexer.DECIMAL = 196; +MySQLLexer.DEC = 197; +MySQLLexer.NUMERIC = 198; +MySQLLexer.DATE = 199; +MySQLLexer.TIME = 200; +MySQLLexer.TIMESTAMP = 201; +MySQLLexer.DATETIME = 202; +MySQLLexer.YEAR = 203; +MySQLLexer.CHAR = 204; +MySQLLexer.VARCHAR = 205; +MySQLLexer.NVARCHAR = 206; +MySQLLexer.NATIONAL = 207; +MySQLLexer.BINARY = 208; +MySQLLexer.VARBINARY = 209; +MySQLLexer.TINYBLOB = 210; +MySQLLexer.BLOB = 211; +MySQLLexer.MEDIUMBLOB = 212; +MySQLLexer.LONG = 213; +MySQLLexer.LONGBLOB = 214; +MySQLLexer.TINYTEXT = 215; +MySQLLexer.TEXT = 216; +MySQLLexer.MEDIUMTEXT = 217; +MySQLLexer.LONGTEXT = 218; +MySQLLexer.ENUM = 219; +MySQLLexer.VARYING = 220; +MySQLLexer.SERIAL = 221; +MySQLLexer.YEAR_MONTH = 222; +MySQLLexer.DAY_HOUR = 223; +MySQLLexer.DAY_MINUTE = 224; +MySQLLexer.DAY_SECOND = 225; +MySQLLexer.HOUR_MINUTE = 226; +MySQLLexer.HOUR_SECOND = 227; +MySQLLexer.MINUTE_SECOND = 228; +MySQLLexer.SECOND_MICROSECOND = 229; +MySQLLexer.MINUTE_MICROSECOND = 230; +MySQLLexer.HOUR_MICROSECOND = 231; +MySQLLexer.DAY_MICROSECOND = 232; +MySQLLexer.JSON_VALID = 233; +MySQLLexer.JSON_SCHEMA_VALID = 234; +MySQLLexer.AVG = 235; +MySQLLexer.BIT_AND = 236; +MySQLLexer.BIT_OR = 237; +MySQLLexer.BIT_XOR = 238; +MySQLLexer.COUNT = 239; +MySQLLexer.GROUP_CONCAT = 240; +MySQLLexer.MAX = 241; +MySQLLexer.MIN = 242; +MySQLLexer.STD = 243; +MySQLLexer.STDDEV = 244; +MySQLLexer.STDDEV_POP = 245; +MySQLLexer.STDDEV_SAMP = 246; +MySQLLexer.SUM = 247; +MySQLLexer.VAR_POP = 248; +MySQLLexer.VAR_SAMP = 249; +MySQLLexer.VARIANCE = 250; +MySQLLexer.CURRENT_DATE = 251; +MySQLLexer.CURRENT_TIME = 252; +MySQLLexer.CURRENT_TIMESTAMP = 253; +MySQLLexer.LOCALTIME = 254; +MySQLLexer.CURDATE = 255; +MySQLLexer.CURTIME = 256; +MySQLLexer.DATE_ADD = 257; +MySQLLexer.DATE_SUB = 258; +MySQLLexer.EXTRACT = 259; +MySQLLexer.LOCALTIMESTAMP = 260; +MySQLLexer.NOW = 261; +MySQLLexer.POSITION = 262; +MySQLLexer.SUBSTR = 263; +MySQLLexer.SUBSTRING = 264; +MySQLLexer.SYSDATE = 265; +MySQLLexer.TRIM = 266; +MySQLLexer.UTC_DATE = 267; +MySQLLexer.UTC_TIME = 268; +MySQLLexer.UTC_TIMESTAMP = 269; +MySQLLexer.ACCOUNT = 270; +MySQLLexer.ACTION = 271; +MySQLLexer.AFTER = 272; +MySQLLexer.AGGREGATE = 273; +MySQLLexer.ALGORITHM = 274; +MySQLLexer.ANY = 275; +MySQLLexer.AT = 276; +MySQLLexer.AUTHORS = 277; +MySQLLexer.AUTOCOMMIT = 278; +MySQLLexer.AUTOEXTEND_SIZE = 279; +MySQLLexer.AUTO_INCREMENT = 280; +MySQLLexer.AVG_ROW_LENGTH = 281; +MySQLLexer.BEGIN = 282; +MySQLLexer.BINLOG = 283; +MySQLLexer.BIT = 284; +MySQLLexer.BLOCK = 285; +MySQLLexer.BOOL = 286; +MySQLLexer.BOOLEAN = 287; +MySQLLexer.BTREE = 288; +MySQLLexer.CACHE = 289; +MySQLLexer.CASCADED = 290; +MySQLLexer.CHAIN = 291; +MySQLLexer.CHANGED = 292; +MySQLLexer.CHANNEL = 293; +MySQLLexer.CHECKSUM = 294; +MySQLLexer.PAGE_CHECKSUM = 295; +MySQLLexer.CIPHER = 296; +MySQLLexer.CLASS_ORIGIN = 297; +MySQLLexer.CLIENT = 298; +MySQLLexer.CLOSE = 299; +MySQLLexer.COALESCE = 300; +MySQLLexer.CODE = 301; +MySQLLexer.COLUMNS = 302; +MySQLLexer.COLUMN_FORMAT = 303; +MySQLLexer.COLUMN_NAME = 304; +MySQLLexer.COMMENT = 305; +MySQLLexer.COMMIT = 306; +MySQLLexer.COMPACT = 307; +MySQLLexer.COMPLETION = 308; +MySQLLexer.COMPRESSED = 309; +MySQLLexer.COMPRESSION = 310; +MySQLLexer.CONCURRENT = 311; +MySQLLexer.CONNECTION = 312; +MySQLLexer.CONSISTENT = 313; +MySQLLexer.CONSTRAINT_CATALOG = 314; +MySQLLexer.CONSTRAINT_SCHEMA = 315; +MySQLLexer.CONSTRAINT_NAME = 316; +MySQLLexer.CONTAINS = 317; +MySQLLexer.CONTEXT = 318; +MySQLLexer.CONTRIBUTORS = 319; +MySQLLexer.COPY = 320; +MySQLLexer.CPU = 321; +MySQLLexer.CURSOR_NAME = 322; +MySQLLexer.DATA = 323; +MySQLLexer.DATAFILE = 324; +MySQLLexer.DEALLOCATE = 325; +MySQLLexer.DEFAULT_AUTH = 326; +MySQLLexer.DEFINER = 327; +MySQLLexer.DELAY_KEY_WRITE = 328; +MySQLLexer.DES_KEY_FILE = 329; +MySQLLexer.DIRECTORY = 330; +MySQLLexer.DISABLE = 331; +MySQLLexer.DISCARD = 332; +MySQLLexer.DISK = 333; +MySQLLexer.DO = 334; +MySQLLexer.DUMPFILE = 335; +MySQLLexer.DUPLICATE = 336; +MySQLLexer.DYNAMIC = 337; +MySQLLexer.ENABLE = 338; +MySQLLexer.ENCRYPTION = 339; +MySQLLexer.END = 340; +MySQLLexer.ENDS = 341; +MySQLLexer.ENGINE = 342; +MySQLLexer.ENGINES = 343; +MySQLLexer.ERROR = 344; +MySQLLexer.ERRORS = 345; +MySQLLexer.ESCAPE = 346; +MySQLLexer.EVEN = 347; +MySQLLexer.EVENT = 348; +MySQLLexer.EVENTS = 349; +MySQLLexer.EVERY = 350; +MySQLLexer.EXCHANGE = 351; +MySQLLexer.EXCLUSIVE = 352; +MySQLLexer.EXPIRE = 353; +MySQLLexer.EXPORT = 354; +MySQLLexer.EXTENDED = 355; +MySQLLexer.EXTENT_SIZE = 356; +MySQLLexer.FAST = 357; +MySQLLexer.FAULTS = 358; +MySQLLexer.FIELDS = 359; +MySQLLexer.FILE_BLOCK_SIZE = 360; +MySQLLexer.FILTER = 361; +MySQLLexer.FIRST = 362; +MySQLLexer.FIXED = 363; +MySQLLexer.FLUSH = 364; +MySQLLexer.FOLLOWS = 365; +MySQLLexer.FOUND = 366; +MySQLLexer.FULL = 367; +MySQLLexer.FUNCTION = 368; +MySQLLexer.GENERAL = 369; +MySQLLexer.GLOBAL = 370; +MySQLLexer.GRANTS = 371; +MySQLLexer.GROUP_REPLICATION = 372; +MySQLLexer.HANDLER = 373; +MySQLLexer.HASH = 374; +MySQLLexer.HELP = 375; +MySQLLexer.HOST = 376; +MySQLLexer.HOSTS = 377; +MySQLLexer.IDENTIFIED = 378; +MySQLLexer.IGNORE_SERVER_IDS = 379; +MySQLLexer.IMPORT = 380; +MySQLLexer.INDEXES = 381; +MySQLLexer.INITIAL_SIZE = 382; +MySQLLexer.INPLACE = 383; +MySQLLexer.INSERT_METHOD = 384; +MySQLLexer.INSTALL = 385; +MySQLLexer.INSTANCE = 386; +MySQLLexer.INVISIBLE = 387; +MySQLLexer.INVOKER = 388; +MySQLLexer.IO = 389; +MySQLLexer.IO_THREAD = 390; +MySQLLexer.IPC = 391; +MySQLLexer.ISOLATION = 392; +MySQLLexer.ISSUER = 393; +MySQLLexer.JSON = 394; +MySQLLexer.KEY_BLOCK_SIZE = 395; +MySQLLexer.LANGUAGE = 396; +MySQLLexer.LAST = 397; +MySQLLexer.LEAVES = 398; +MySQLLexer.LESS = 399; +MySQLLexer.LEVEL = 400; +MySQLLexer.LIST = 401; +MySQLLexer.LOCAL = 402; +MySQLLexer.LOGFILE = 403; +MySQLLexer.LOGS = 404; +MySQLLexer.MASTER = 405; +MySQLLexer.MASTER_AUTO_POSITION = 406; +MySQLLexer.MASTER_CONNECT_RETRY = 407; +MySQLLexer.MASTER_DELAY = 408; +MySQLLexer.MASTER_HEARTBEAT_PERIOD = 409; +MySQLLexer.MASTER_HOST = 410; +MySQLLexer.MASTER_LOG_FILE = 411; +MySQLLexer.MASTER_LOG_POS = 412; +MySQLLexer.MASTER_PASSWORD = 413; +MySQLLexer.MASTER_PORT = 414; +MySQLLexer.MASTER_RETRY_COUNT = 415; +MySQLLexer.MASTER_SSL = 416; +MySQLLexer.MASTER_SSL_CA = 417; +MySQLLexer.MASTER_SSL_CAPATH = 418; +MySQLLexer.MASTER_SSL_CERT = 419; +MySQLLexer.MASTER_SSL_CIPHER = 420; +MySQLLexer.MASTER_SSL_CRL = 421; +MySQLLexer.MASTER_SSL_CRLPATH = 422; +MySQLLexer.MASTER_SSL_KEY = 423; +MySQLLexer.MASTER_TLS_VERSION = 424; +MySQLLexer.MASTER_USER = 425; +MySQLLexer.MAX_CONNECTIONS_PER_HOUR = 426; +MySQLLexer.MAX_QUERIES_PER_HOUR = 427; +MySQLLexer.MAX_ROWS = 428; +MySQLLexer.MAX_SIZE = 429; +MySQLLexer.MAX_UPDATES_PER_HOUR = 430; +MySQLLexer.MAX_USER_CONNECTIONS = 431; +MySQLLexer.MEDIUM = 432; +MySQLLexer.MERGE = 433; +MySQLLexer.MESSAGE_TEXT = 434; +MySQLLexer.MID = 435; +MySQLLexer.MIGRATE = 436; +MySQLLexer.MIN_ROWS = 437; +MySQLLexer.MODE = 438; +MySQLLexer.MODIFY = 439; +MySQLLexer.MUTEX = 440; +MySQLLexer.MYSQL = 441; +MySQLLexer.MYSQL_ERRNO = 442; +MySQLLexer.NAME = 443; +MySQLLexer.NAMES = 444; +MySQLLexer.NCHAR = 445; +MySQLLexer.NEVER = 446; +MySQLLexer.NEXT = 447; +MySQLLexer.NO = 448; +MySQLLexer.NODEGROUP = 449; +MySQLLexer.NONE = 450; +MySQLLexer.OFFLINE = 451; +MySQLLexer.OFFSET = 452; +MySQLLexer.OJ = 453; +MySQLLexer.OLD_PASSWORD = 454; +MySQLLexer.ONE = 455; +MySQLLexer.ONLINE = 456; +MySQLLexer.ONLY = 457; +MySQLLexer.OPEN = 458; +MySQLLexer.OPTIMIZER_COSTS = 459; +MySQLLexer.OPTIONS = 460; +MySQLLexer.OWNER = 461; +MySQLLexer.PACK_KEYS = 462; +MySQLLexer.PAGE = 463; +MySQLLexer.PARSER = 464; +MySQLLexer.PARTIAL = 465; +MySQLLexer.PARTITIONING = 466; +MySQLLexer.PARTITIONS = 467; +MySQLLexer.PASSWORD = 468; +MySQLLexer.PHASE = 469; +MySQLLexer.PLUGIN = 470; +MySQLLexer.PLUGIN_DIR = 471; +MySQLLexer.PLUGINS = 472; +MySQLLexer.PORT = 473; +MySQLLexer.PRECEDES = 474; +MySQLLexer.PREPARE = 475; +MySQLLexer.PRESERVE = 476; +MySQLLexer.PREV = 477; +MySQLLexer.PROCESSLIST = 478; +MySQLLexer.PROFILE = 479; +MySQLLexer.PROFILES = 480; +MySQLLexer.PROXY = 481; +MySQLLexer.QUERY = 482; +MySQLLexer.QUICK = 483; +MySQLLexer.REBUILD = 484; +MySQLLexer.RECOVER = 485; +MySQLLexer.REDO_BUFFER_SIZE = 486; +MySQLLexer.REDUNDANT = 487; +MySQLLexer.RELAY = 488; +MySQLLexer.RELAY_LOG_FILE = 489; +MySQLLexer.RELAY_LOG_POS = 490; +MySQLLexer.RELAYLOG = 491; +MySQLLexer.REMOVE = 492; +MySQLLexer.REORGANIZE = 493; +MySQLLexer.REPAIR = 494; +MySQLLexer.REPLICATE_DO_DB = 495; +MySQLLexer.REPLICATE_DO_TABLE = 496; +MySQLLexer.REPLICATE_IGNORE_DB = 497; +MySQLLexer.REPLICATE_IGNORE_TABLE = 498; +MySQLLexer.REPLICATE_REWRITE_DB = 499; +MySQLLexer.REPLICATE_WILD_DO_TABLE = 500; +MySQLLexer.REPLICATE_WILD_IGNORE_TABLE = 501; +MySQLLexer.REPLICATION = 502; +MySQLLexer.RESET = 503; +MySQLLexer.RESUME = 504; +MySQLLexer.RETURNED_SQLSTATE = 505; +MySQLLexer.RETURNS = 506; +MySQLLexer.ROLE = 507; +MySQLLexer.ROLLBACK = 508; +MySQLLexer.ROLLUP = 509; +MySQLLexer.ROTATE = 510; +MySQLLexer.ROW = 511; +MySQLLexer.ROWS = 512; +MySQLLexer.ROW_FORMAT = 513; +MySQLLexer.SAVEPOINT = 514; +MySQLLexer.SCHEDULE = 515; +MySQLLexer.SECURITY = 516; +MySQLLexer.SERVER = 517; +MySQLLexer.SESSION = 518; +MySQLLexer.SHARE = 519; +MySQLLexer.SHARED = 520; +MySQLLexer.SIGNED = 521; +MySQLLexer.SIMPLE = 522; +MySQLLexer.SLAVE = 523; +MySQLLexer.SLOW = 524; +MySQLLexer.SNAPSHOT = 525; +MySQLLexer.SOCKET = 526; +MySQLLexer.SOME = 527; +MySQLLexer.SONAME = 528; +MySQLLexer.SOUNDS = 529; +MySQLLexer.SOURCE = 530; +MySQLLexer.SQL_AFTER_GTIDS = 531; +MySQLLexer.SQL_AFTER_MTS_GAPS = 532; +MySQLLexer.SQL_BEFORE_GTIDS = 533; +MySQLLexer.SQL_BUFFER_RESULT = 534; +MySQLLexer.SQL_CACHE = 535; +MySQLLexer.SQL_NO_CACHE = 536; +MySQLLexer.SQL_THREAD = 537; +MySQLLexer.START = 538; +MySQLLexer.STARTS = 539; +MySQLLexer.STATS_AUTO_RECALC = 540; +MySQLLexer.STATS_PERSISTENT = 541; +MySQLLexer.STATS_SAMPLE_PAGES = 542; +MySQLLexer.STATUS = 543; +MySQLLexer.STOP = 544; +MySQLLexer.STORAGE = 545; +MySQLLexer.STORED = 546; +MySQLLexer.STRING = 547; +MySQLLexer.SUBCLASS_ORIGIN = 548; +MySQLLexer.SUBJECT = 549; +MySQLLexer.SUBPARTITION = 550; +MySQLLexer.SUBPARTITIONS = 551; +MySQLLexer.SUSPEND = 552; +MySQLLexer.SWAPS = 553; +MySQLLexer.SWITCHES = 554; +MySQLLexer.TABLE_NAME = 555; +MySQLLexer.TABLESPACE = 556; +MySQLLexer.TEMPORARY = 557; +MySQLLexer.TEMPTABLE = 558; +MySQLLexer.THAN = 559; +MySQLLexer.TRADITIONAL = 560; +MySQLLexer.TRANSACTION = 561; +MySQLLexer.TRANSACTIONAL = 562; +MySQLLexer.TRIGGERS = 563; +MySQLLexer.TRUNCATE = 564; +MySQLLexer.UNDEFINED = 565; +MySQLLexer.UNDOFILE = 566; +MySQLLexer.UNDO_BUFFER_SIZE = 567; +MySQLLexer.UNINSTALL = 568; +MySQLLexer.UNKNOWN = 569; +MySQLLexer.UNTIL = 570; +MySQLLexer.UPGRADE = 571; +MySQLLexer.USER = 572; +MySQLLexer.USE_FRM = 573; +MySQLLexer.USER_RESOURCES = 574; +MySQLLexer.VALIDATION = 575; +MySQLLexer.VALUE = 576; +MySQLLexer.VARIABLES = 577; +MySQLLexer.VIEW = 578; +MySQLLexer.VIRTUAL = 579; +MySQLLexer.VISIBLE = 580; +MySQLLexer.WAIT = 581; +MySQLLexer.WARNINGS = 582; +MySQLLexer.WITHOUT = 583; +MySQLLexer.WORK = 584; +MySQLLexer.WRAPPER = 585; +MySQLLexer.X509 = 586; +MySQLLexer.XA = 587; +MySQLLexer.XML = 588; +MySQLLexer.EUR = 589; +MySQLLexer.USA = 590; +MySQLLexer.JIS = 591; +MySQLLexer.ISO = 592; +MySQLLexer.INTERNAL = 593; +MySQLLexer.QUARTER = 594; +MySQLLexer.MONTH = 595; +MySQLLexer.DAY = 596; +MySQLLexer.HOUR = 597; +MySQLLexer.MINUTE = 598; +MySQLLexer.WEEK = 599; +MySQLLexer.SECOND = 600; +MySQLLexer.MICROSECOND = 601; +MySQLLexer.TABLES = 602; +MySQLLexer.ROUTINE = 603; +MySQLLexer.EXECUTE = 604; +MySQLLexer.FILE = 605; +MySQLLexer.PROCESS = 606; +MySQLLexer.RELOAD = 607; +MySQLLexer.SHUTDOWN = 608; +MySQLLexer.SUPER = 609; +MySQLLexer.PRIVILEGES = 610; +MySQLLexer.APPLICATION_PASSWORD_ADMIN = 611; +MySQLLexer.AUDIT_ADMIN = 612; +MySQLLexer.BACKUP_ADMIN = 613; +MySQLLexer.BINLOG_ADMIN = 614; +MySQLLexer.BINLOG_ENCRYPTION_ADMIN = 615; +MySQLLexer.CLONE_ADMIN = 616; +MySQLLexer.CONNECTION_ADMIN = 617; +MySQLLexer.ENCRYPTION_KEY_ADMIN = 618; +MySQLLexer.FIREWALL_ADMIN = 619; +MySQLLexer.FIREWALL_USER = 620; +MySQLLexer.GROUP_REPLICATION_ADMIN = 621; +MySQLLexer.INNODB_REDO_LOG_ARCHIVE = 622; +MySQLLexer.NDB_STORED_USER = 623; +MySQLLexer.PERSIST_RO_VARIABLES_ADMIN = 624; +MySQLLexer.REPLICATION_APPLIER = 625; +MySQLLexer.REPLICATION_SLAVE_ADMIN = 626; +MySQLLexer.RESOURCE_GROUP_ADMIN = 627; +MySQLLexer.RESOURCE_GROUP_USER = 628; +MySQLLexer.ROLE_ADMIN = 629; +MySQLLexer.SESSION_VARIABLES_ADMIN = 630; +MySQLLexer.SET_USER_ID = 631; +MySQLLexer.SHOW_ROUTINE = 632; +MySQLLexer.SYSTEM_VARIABLES_ADMIN = 633; +MySQLLexer.TABLE_ENCRYPTION_ADMIN = 634; +MySQLLexer.VERSION_TOKEN_ADMIN = 635; +MySQLLexer.XA_RECOVER_ADMIN = 636; +MySQLLexer.ARMSCII8 = 637; +MySQLLexer.ASCII = 638; +MySQLLexer.BIG5 = 639; +MySQLLexer.CP1250 = 640; +MySQLLexer.CP1251 = 641; +MySQLLexer.CP1256 = 642; +MySQLLexer.CP1257 = 643; +MySQLLexer.CP850 = 644; +MySQLLexer.CP852 = 645; +MySQLLexer.CP866 = 646; +MySQLLexer.CP932 = 647; +MySQLLexer.DEC8 = 648; +MySQLLexer.EUCJPMS = 649; +MySQLLexer.EUCKR = 650; +MySQLLexer.GB2312 = 651; +MySQLLexer.GBK = 652; +MySQLLexer.GEOSTD8 = 653; +MySQLLexer.GREEK = 654; +MySQLLexer.HEBREW = 655; +MySQLLexer.HP8 = 656; +MySQLLexer.KEYBCS2 = 657; +MySQLLexer.KOI8R = 658; +MySQLLexer.KOI8U = 659; +MySQLLexer.LATIN1 = 660; +MySQLLexer.LATIN2 = 661; +MySQLLexer.LATIN5 = 662; +MySQLLexer.LATIN7 = 663; +MySQLLexer.MACCE = 664; +MySQLLexer.MACROMAN = 665; +MySQLLexer.SJIS = 666; +MySQLLexer.SWE7 = 667; +MySQLLexer.TIS620 = 668; +MySQLLexer.UCS2 = 669; +MySQLLexer.UJIS = 670; +MySQLLexer.UTF16 = 671; +MySQLLexer.UTF16LE = 672; +MySQLLexer.UTF32 = 673; +MySQLLexer.UTF8 = 674; +MySQLLexer.UTF8MB3 = 675; +MySQLLexer.UTF8MB4 = 676; +MySQLLexer.ARCHIVE = 677; +MySQLLexer.BLACKHOLE = 678; +MySQLLexer.CSV = 679; +MySQLLexer.FEDERATED = 680; +MySQLLexer.INNODB = 681; +MySQLLexer.MEMORY = 682; +MySQLLexer.MRG_MYISAM = 683; +MySQLLexer.MYISAM = 684; +MySQLLexer.NDB = 685; +MySQLLexer.NDBCLUSTER = 686; +MySQLLexer.PERFORMANCE_SCHEMA = 687; +MySQLLexer.TOKUDB = 688; +MySQLLexer.REPEATABLE = 689; +MySQLLexer.COMMITTED = 690; +MySQLLexer.UNCOMMITTED = 691; +MySQLLexer.SERIALIZABLE = 692; +MySQLLexer.GEOMETRYCOLLECTION = 693; +MySQLLexer.GEOMCOLLECTION = 694; +MySQLLexer.GEOMETRY = 695; +MySQLLexer.LINESTRING = 696; +MySQLLexer.MULTILINESTRING = 697; +MySQLLexer.MULTIPOINT = 698; +MySQLLexer.MULTIPOLYGON = 699; +MySQLLexer.POINT = 700; +MySQLLexer.POLYGON = 701; +MySQLLexer.ABS = 702; +MySQLLexer.ACOS = 703; +MySQLLexer.ADDDATE = 704; +MySQLLexer.ADDTIME = 705; +MySQLLexer.AES_DECRYPT = 706; +MySQLLexer.AES_ENCRYPT = 707; +MySQLLexer.AREA = 708; +MySQLLexer.ASBINARY = 709; +MySQLLexer.ASIN = 710; +MySQLLexer.ASTEXT = 711; +MySQLLexer.ASWKB = 712; +MySQLLexer.ASWKT = 713; +MySQLLexer.ASYMMETRIC_DECRYPT = 714; +MySQLLexer.ASYMMETRIC_DERIVE = 715; +MySQLLexer.ASYMMETRIC_ENCRYPT = 716; +MySQLLexer.ASYMMETRIC_SIGN = 717; +MySQLLexer.ASYMMETRIC_VERIFY = 718; +MySQLLexer.ATAN = 719; +MySQLLexer.ATAN2 = 720; +MySQLLexer.BENCHMARK = 721; +MySQLLexer.BIN = 722; +MySQLLexer.BIT_COUNT = 723; +MySQLLexer.BIT_LENGTH = 724; +MySQLLexer.BUFFER = 725; +MySQLLexer.CATALOG_NAME = 726; +MySQLLexer.CEIL = 727; +MySQLLexer.CEILING = 728; +MySQLLexer.CENTROID = 729; +MySQLLexer.CHARACTER_LENGTH = 730; +MySQLLexer.CHARSET = 731; +MySQLLexer.CHAR_LENGTH = 732; +MySQLLexer.COERCIBILITY = 733; +MySQLLexer.COLLATION = 734; +MySQLLexer.COMPRESS = 735; +MySQLLexer.CONCAT = 736; +MySQLLexer.CONCAT_WS = 737; +MySQLLexer.CONNECTION_ID = 738; +MySQLLexer.CONV = 739; +MySQLLexer.CONVERT_TZ = 740; +MySQLLexer.COS = 741; +MySQLLexer.COT = 742; +MySQLLexer.CRC32 = 743; +MySQLLexer.CREATE_ASYMMETRIC_PRIV_KEY = 744; +MySQLLexer.CREATE_ASYMMETRIC_PUB_KEY = 745; +MySQLLexer.CREATE_DH_PARAMETERS = 746; +MySQLLexer.CREATE_DIGEST = 747; +MySQLLexer.CROSSES = 748; +MySQLLexer.DATEDIFF = 749; +MySQLLexer.DATE_FORMAT = 750; +MySQLLexer.DAYNAME = 751; +MySQLLexer.DAYOFMONTH = 752; +MySQLLexer.DAYOFWEEK = 753; +MySQLLexer.DAYOFYEAR = 754; +MySQLLexer.DECODE = 755; +MySQLLexer.DEGREES = 756; +MySQLLexer.DES_DECRYPT = 757; +MySQLLexer.DES_ENCRYPT = 758; +MySQLLexer.DIMENSION = 759; +MySQLLexer.DISJOINT = 760; +MySQLLexer.ELT = 761; +MySQLLexer.ENCODE = 762; +MySQLLexer.ENCRYPT = 763; +MySQLLexer.ENDPOINT = 764; +MySQLLexer.ENVELOPE = 765; +MySQLLexer.EQUALS = 766; +MySQLLexer.EXP = 767; +MySQLLexer.EXPORT_SET = 768; +MySQLLexer.EXTERIORRING = 769; +MySQLLexer.EXTRACTVALUE = 770; +MySQLLexer.FIELD = 771; +MySQLLexer.FIND_IN_SET = 772; +MySQLLexer.FLOOR = 773; +MySQLLexer.FORMAT = 774; +MySQLLexer.FOUND_ROWS = 775; +MySQLLexer.FROM_BASE64 = 776; +MySQLLexer.FROM_DAYS = 777; +MySQLLexer.FROM_UNIXTIME = 778; +MySQLLexer.GEOMCOLLFROMTEXT = 779; +MySQLLexer.GEOMCOLLFROMWKB = 780; +MySQLLexer.GEOMETRYCOLLECTIONFROMTEXT = 781; +MySQLLexer.GEOMETRYCOLLECTIONFROMWKB = 782; +MySQLLexer.GEOMETRYFROMTEXT = 783; +MySQLLexer.GEOMETRYFROMWKB = 784; +MySQLLexer.GEOMETRYN = 785; +MySQLLexer.GEOMETRYTYPE = 786; +MySQLLexer.GEOMFROMTEXT = 787; +MySQLLexer.GEOMFROMWKB = 788; +MySQLLexer.GET_FORMAT = 789; +MySQLLexer.GET_LOCK = 790; +MySQLLexer.GLENGTH = 791; +MySQLLexer.GREATEST = 792; +MySQLLexer.GTID_SUBSET = 793; +MySQLLexer.GTID_SUBTRACT = 794; +MySQLLexer.HEX = 795; +MySQLLexer.IFNULL = 796; +MySQLLexer.INET6_ATON = 797; +MySQLLexer.INET6_NTOA = 798; +MySQLLexer.INET_ATON = 799; +MySQLLexer.INET_NTOA = 800; +MySQLLexer.INSTR = 801; +MySQLLexer.INTERIORRINGN = 802; +MySQLLexer.INTERSECTS = 803; +MySQLLexer.ISCLOSED = 804; +MySQLLexer.ISEMPTY = 805; +MySQLLexer.ISNULL = 806; +MySQLLexer.ISSIMPLE = 807; +MySQLLexer.IS_FREE_LOCK = 808; +MySQLLexer.IS_IPV4 = 809; +MySQLLexer.IS_IPV4_COMPAT = 810; +MySQLLexer.IS_IPV4_MAPPED = 811; +MySQLLexer.IS_IPV6 = 812; +MySQLLexer.IS_USED_LOCK = 813; +MySQLLexer.LAST_INSERT_ID = 814; +MySQLLexer.LCASE = 815; +MySQLLexer.LEAST = 816; +MySQLLexer.LENGTH = 817; +MySQLLexer.LINEFROMTEXT = 818; +MySQLLexer.LINEFROMWKB = 819; +MySQLLexer.LINESTRINGFROMTEXT = 820; +MySQLLexer.LINESTRINGFROMWKB = 821; +MySQLLexer.LN = 822; +MySQLLexer.LOAD_FILE = 823; +MySQLLexer.LOCATE = 824; +MySQLLexer.LOG = 825; +MySQLLexer.LOG10 = 826; +MySQLLexer.LOG2 = 827; +MySQLLexer.LOWER = 828; +MySQLLexer.LPAD = 829; +MySQLLexer.LTRIM = 830; +MySQLLexer.MAKEDATE = 831; +MySQLLexer.MAKETIME = 832; +MySQLLexer.MAKE_SET = 833; +MySQLLexer.MASTER_POS_WAIT = 834; +MySQLLexer.MBRCONTAINS = 835; +MySQLLexer.MBRDISJOINT = 836; +MySQLLexer.MBREQUAL = 837; +MySQLLexer.MBRINTERSECTS = 838; +MySQLLexer.MBROVERLAPS = 839; +MySQLLexer.MBRTOUCHES = 840; +MySQLLexer.MBRWITHIN = 841; +MySQLLexer.MD5 = 842; +MySQLLexer.MLINEFROMTEXT = 843; +MySQLLexer.MLINEFROMWKB = 844; +MySQLLexer.MONTHNAME = 845; +MySQLLexer.MPOINTFROMTEXT = 846; +MySQLLexer.MPOINTFROMWKB = 847; +MySQLLexer.MPOLYFROMTEXT = 848; +MySQLLexer.MPOLYFROMWKB = 849; +MySQLLexer.MULTILINESTRINGFROMTEXT = 850; +MySQLLexer.MULTILINESTRINGFROMWKB = 851; +MySQLLexer.MULTIPOINTFROMTEXT = 852; +MySQLLexer.MULTIPOINTFROMWKB = 853; +MySQLLexer.MULTIPOLYGONFROMTEXT = 854; +MySQLLexer.MULTIPOLYGONFROMWKB = 855; +MySQLLexer.NAME_CONST = 856; +MySQLLexer.NULLIF = 857; +MySQLLexer.NUMGEOMETRIES = 858; +MySQLLexer.NUMINTERIORRINGS = 859; +MySQLLexer.NUMPOINTS = 860; +MySQLLexer.OCT = 861; +MySQLLexer.OCTET_LENGTH = 862; +MySQLLexer.ORD = 863; +MySQLLexer.OVERLAPS = 864; +MySQLLexer.PERIOD_ADD = 865; +MySQLLexer.PERIOD_DIFF = 866; +MySQLLexer.PI = 867; +MySQLLexer.POINTFROMTEXT = 868; +MySQLLexer.POINTFROMWKB = 869; +MySQLLexer.POINTN = 870; +MySQLLexer.POLYFROMTEXT = 871; +MySQLLexer.POLYFROMWKB = 872; +MySQLLexer.POLYGONFROMTEXT = 873; +MySQLLexer.POLYGONFROMWKB = 874; +MySQLLexer.POW = 875; +MySQLLexer.POWER = 876; +MySQLLexer.QUOTE = 877; +MySQLLexer.RADIANS = 878; +MySQLLexer.RAND = 879; +MySQLLexer.RANDOM_BYTES = 880; +MySQLLexer.RELEASE_LOCK = 881; +MySQLLexer.REVERSE = 882; +MySQLLexer.ROUND = 883; +MySQLLexer.ROW_COUNT = 884; +MySQLLexer.RPAD = 885; +MySQLLexer.RTRIM = 886; +MySQLLexer.SEC_TO_TIME = 887; +MySQLLexer.SESSION_USER = 888; +MySQLLexer.SHA = 889; +MySQLLexer.SHA1 = 890; +MySQLLexer.SHA2 = 891; +MySQLLexer.SCHEMA_NAME = 892; +MySQLLexer.SIGN = 893; +MySQLLexer.SIN = 894; +MySQLLexer.SLEEP = 895; +MySQLLexer.SOUNDEX = 896; +MySQLLexer.SQL_THREAD_WAIT_AFTER_GTIDS = 897; +MySQLLexer.SQRT = 898; +MySQLLexer.SRID = 899; +MySQLLexer.STARTPOINT = 900; +MySQLLexer.STRCMP = 901; +MySQLLexer.STR_TO_DATE = 902; +MySQLLexer.ST_AREA = 903; +MySQLLexer.ST_ASBINARY = 904; +MySQLLexer.ST_ASTEXT = 905; +MySQLLexer.ST_ASWKB = 906; +MySQLLexer.ST_ASWKT = 907; +MySQLLexer.ST_BUFFER = 908; +MySQLLexer.ST_CENTROID = 909; +MySQLLexer.ST_CONTAINS = 910; +MySQLLexer.ST_CROSSES = 911; +MySQLLexer.ST_DIFFERENCE = 912; +MySQLLexer.ST_DIMENSION = 913; +MySQLLexer.ST_DISJOINT = 914; +MySQLLexer.ST_DISTANCE = 915; +MySQLLexer.ST_ENDPOINT = 916; +MySQLLexer.ST_ENVELOPE = 917; +MySQLLexer.ST_EQUALS = 918; +MySQLLexer.ST_EXTERIORRING = 919; +MySQLLexer.ST_GEOMCOLLFROMTEXT = 920; +MySQLLexer.ST_GEOMCOLLFROMTXT = 921; +MySQLLexer.ST_GEOMCOLLFROMWKB = 922; +MySQLLexer.ST_GEOMETRYCOLLECTIONFROMTEXT = 923; +MySQLLexer.ST_GEOMETRYCOLLECTIONFROMWKB = 924; +MySQLLexer.ST_GEOMETRYFROMTEXT = 925; +MySQLLexer.ST_GEOMETRYFROMWKB = 926; +MySQLLexer.ST_GEOMETRYN = 927; +MySQLLexer.ST_GEOMETRYTYPE = 928; +MySQLLexer.ST_GEOMFROMTEXT = 929; +MySQLLexer.ST_GEOMFROMWKB = 930; +MySQLLexer.ST_INTERIORRINGN = 931; +MySQLLexer.ST_INTERSECTION = 932; +MySQLLexer.ST_INTERSECTS = 933; +MySQLLexer.ST_ISCLOSED = 934; +MySQLLexer.ST_ISEMPTY = 935; +MySQLLexer.ST_ISSIMPLE = 936; +MySQLLexer.ST_LINEFROMTEXT = 937; +MySQLLexer.ST_LINEFROMWKB = 938; +MySQLLexer.ST_LINESTRINGFROMTEXT = 939; +MySQLLexer.ST_LINESTRINGFROMWKB = 940; +MySQLLexer.ST_NUMGEOMETRIES = 941; +MySQLLexer.ST_NUMINTERIORRING = 942; +MySQLLexer.ST_NUMINTERIORRINGS = 943; +MySQLLexer.ST_NUMPOINTS = 944; +MySQLLexer.ST_OVERLAPS = 945; +MySQLLexer.ST_POINTFROMTEXT = 946; +MySQLLexer.ST_POINTFROMWKB = 947; +MySQLLexer.ST_POINTN = 948; +MySQLLexer.ST_POLYFROMTEXT = 949; +MySQLLexer.ST_POLYFROMWKB = 950; +MySQLLexer.ST_POLYGONFROMTEXT = 951; +MySQLLexer.ST_POLYGONFROMWKB = 952; +MySQLLexer.ST_SRID = 953; +MySQLLexer.ST_STARTPOINT = 954; +MySQLLexer.ST_SYMDIFFERENCE = 955; +MySQLLexer.ST_TOUCHES = 956; +MySQLLexer.ST_UNION = 957; +MySQLLexer.ST_WITHIN = 958; +MySQLLexer.ST_X = 959; +MySQLLexer.ST_Y = 960; +MySQLLexer.SUBDATE = 961; +MySQLLexer.SUBSTRING_INDEX = 962; +MySQLLexer.SUBTIME = 963; +MySQLLexer.SYSTEM_USER = 964; +MySQLLexer.TAN = 965; +MySQLLexer.TIMEDIFF = 966; +MySQLLexer.TIMESTAMPADD = 967; +MySQLLexer.TIMESTAMPDIFF = 968; +MySQLLexer.TIME_FORMAT = 969; +MySQLLexer.TIME_TO_SEC = 970; +MySQLLexer.TOUCHES = 971; +MySQLLexer.TO_BASE64 = 972; +MySQLLexer.TO_DAYS = 973; +MySQLLexer.TO_SECONDS = 974; +MySQLLexer.UCASE = 975; +MySQLLexer.UNCOMPRESS = 976; +MySQLLexer.UNCOMPRESSED_LENGTH = 977; +MySQLLexer.UNHEX = 978; +MySQLLexer.UNIX_TIMESTAMP = 979; +MySQLLexer.UPDATEXML = 980; +MySQLLexer.UPPER = 981; +MySQLLexer.UUID = 982; +MySQLLexer.UUID_SHORT = 983; +MySQLLexer.VALIDATE_PASSWORD_STRENGTH = 984; +MySQLLexer.VERSION = 985; +MySQLLexer.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 986; +MySQLLexer.WEEKDAY = 987; +MySQLLexer.WEEKOFYEAR = 988; +MySQLLexer.WEIGHT_STRING = 989; +MySQLLexer.WITHIN = 990; +MySQLLexer.YEARWEEK = 991; +MySQLLexer.Y_FUNCTION = 992; +MySQLLexer.X_FUNCTION = 993; +MySQLLexer.VAR_ASSIGN = 994; +MySQLLexer.PLUS_ASSIGN = 995; +MySQLLexer.MINUS_ASSIGN = 996; +MySQLLexer.MULT_ASSIGN = 997; +MySQLLexer.DIV_ASSIGN = 998; +MySQLLexer.MOD_ASSIGN = 999; +MySQLLexer.AND_ASSIGN = 1000; +MySQLLexer.XOR_ASSIGN = 1001; +MySQLLexer.OR_ASSIGN = 1002; +MySQLLexer.STAR = 1003; +MySQLLexer.DIVIDE = 1004; +MySQLLexer.MODULE = 1005; +MySQLLexer.PLUS = 1006; +MySQLLexer.MINUSMINUS = 1007; +MySQLLexer.MINUS = 1008; +MySQLLexer.DIV = 1009; +MySQLLexer.MOD = 1010; +MySQLLexer.EQUAL_SYMBOL = 1011; +MySQLLexer.GREATER_SYMBOL = 1012; +MySQLLexer.LESS_SYMBOL = 1013; +MySQLLexer.EXCLAMATION_SYMBOL = 1014; +MySQLLexer.BIT_NOT_OP = 1015; +MySQLLexer.BIT_OR_OP = 1016; +MySQLLexer.BIT_AND_OP = 1017; +MySQLLexer.BIT_XOR_OP = 1018; +MySQLLexer.DOT = 1019; +MySQLLexer.LR_BRACKET = 1020; +MySQLLexer.RR_BRACKET = 1021; +MySQLLexer.COMMA = 1022; +MySQLLexer.SEMI = 1023; +MySQLLexer.AT_SIGN = 1024; +MySQLLexer.ZERO_DECIMAL = 1025; +MySQLLexer.ONE_DECIMAL = 1026; +MySQLLexer.TWO_DECIMAL = 1027; +MySQLLexer.SINGLE_QUOTE_SYMB = 1028; +MySQLLexer.DOUBLE_QUOTE_SYMB = 1029; +MySQLLexer.REVERSE_QUOTE_SYMB = 1030; +MySQLLexer.COLON_SYMB = 1031; +MySQLLexer.CHARSET_REVERSE_QOUTE_STRING = 1032; +MySQLLexer.FILESIZE_LITERAL = 1033; +MySQLLexer.START_NATIONAL_STRING_LITERAL = 1034; +MySQLLexer.STRING_LITERAL = 1035; +MySQLLexer.DECIMAL_LITERAL = 1036; +MySQLLexer.HEXADECIMAL_LITERAL = 1037; +MySQLLexer.REAL_LITERAL = 1038; +MySQLLexer.NULL_SPEC_LITERAL = 1039; +MySQLLexer.BIT_STRING = 1040; +MySQLLexer.STRING_CHARSET_NAME = 1041; +MySQLLexer.DOT_ID = 1042; +MySQLLexer.ID = 1043; +MySQLLexer.REVERSE_QUOTE_ID = 1044; +MySQLLexer.STRING_USER_NAME = 1045; +MySQLLexer.LOCAL_ID = 1046; +MySQLLexer.GLOBAL_ID = 1047; +MySQLLexer.ERROR_RECONGNIGION = 1048; + +MySQLLexer.MYSQLCOMMENT = 2; +MySQLLexer.ERRORCHANNEL = 3; + +MySQLLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN", + "MYSQLCOMMENT", + "ERRORCHANNEL" ]; + +MySQLLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; + +MySQLLexer.prototype.literalNames = [ 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'", "'''", + "'\"'", "'`'", "':'" ]; + +MySQLLexer.prototype.symbolicNames = [ 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" ]; + +MySQLLexer.prototype.ruleNames = [ "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" ]; + +MySQLLexer.prototype.grammarFileName = "MySQLLexer.g4"; + + +exports.MySQLLexer = MySQLLexer; + diff --git a/src/parser/MySQLLexer.tokens b/src/parser/MySQLLexer.tokens new file mode 100644 index 0000000..57b4669 --- /dev/null +++ b/src/parser/MySQLLexer.tokens @@ -0,0 +1,2074 @@ +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/parser/MySQLParser.js b/src/parser/MySQLParser.js new file mode 100644 index 0000000..44a3c1b --- /dev/null +++ b/src/parser/MySQLParser.js @@ -0,0 +1,87808 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/mysql/MySQLParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); +var MySQLParserListener = require('./MySQLParserListener').MySQLParserListener; +var MySQLParserVisitor = require('./MySQLParserVisitor').MySQLParserVisitor; + +var grammarFileName = "MySQLParser.g4"; + + +var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", + "\u0003\u041a\u18eb\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", + "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", + "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", + "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", + "\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013\u0004\u0014", + "\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017\t\u0017", + "\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a\u0004\u001b", + "\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e\t\u001e", + "\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#\t#\u0004", + "$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004*\t*\u0004", + "+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u00041\t1\u0004", + "2\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u00048\t8\u0004", + "9\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004?\t?\u0004", + "@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004F\tF\u0004", + "G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004M\tM\u0004", + "N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004T\tT\u0004", + "U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004[\t[\u0004", + "\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004b\tb\u0004", + "c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004i\ti\u0004", + "j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004p\tp\u0004", + "q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004w\tw\u0004", + "x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004~\t~\u0004", + "\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004\u0082\t", + "\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t\u0085\u0004", + "\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004\u0089\t", + "\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t\u008c\u0004", + "\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004\u0090\t", + "\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t\u0093\u0004", + "\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004\u0097\t", + "\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t\u009a\u0004", + "\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004\u009e\t", + "\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t\u00a1\u0004", + "\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004\u00a5\t", + "\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t\u00a8\u0004", + "\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004\u00ac\t", + "\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t\u00af\u0004", + "\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004\u00b3\t", + "\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t\u00b6\u0004", + "\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004\u00ba\t", + "\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t\u00bd\u0004", + "\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004\u00c1\t", + "\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t\u00c4\u0004", + "\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004\u00c8\t", + "\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t\u00cb\u0004", + "\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004\u00cf\t", + "\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t\u00d2\u0004", + "\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004\u00d6\t", + "\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t\u00d9\u0004", + "\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004\u00dd\t", + "\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t\u00e0\u0004", + "\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004\u00e4\t", + "\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t\u00e7\u0004", + "\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004\u00eb\t", + "\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t\u00ee\u0004", + "\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004\u00f2\t", + "\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t\u00f5\u0004", + "\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004\u00f9\t", + "\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t\u00fc\u0004", + "\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004\u0100\t", + "\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t\u0103\u0004", + "\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004\u0107\t", + "\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t\u010a\u0004", + "\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004\u010e\t", + "\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t\u0111\u0004", + "\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004\u0115\t", + "\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t\u0118\u0004", + "\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004\u011c\t", + "\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t\u011f\u0004", + "\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004\u0123\t", + "\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t\u0126\u0004", + "\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004\u012a\t", + "\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t\u012d\u0004", + "\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004\u0131\t", + "\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t\u0134\u0004", + "\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004\u0138\t", + "\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t\u013b\u0004", + "\u013c\t\u013c\u0003\u0002\u0005\u0002\u027a\n\u0002\u0003\u0002\u0005", + "\u0002\u027d\n\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003", + "\u0005\u0003\u0283\n\u0003\u0003\u0003\u0005\u0003\u0286\n\u0003\u0003", + "\u0003\u0007\u0003\u0289\n\u0003\f\u0003\u000e\u0003\u028c\u000b\u0003", + "\u0003\u0003\u0003\u0003\u0005\u0003\u0290\n\u0003\u0003\u0003\u0005", + "\u0003\u0293\n\u0003\u0003\u0003\u0005\u0003\u0296\n\u0003\u0003\u0004", + "\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004", + "\u0005\u0004\u029f\n\u0004\u0003\u0005\u0003\u0005\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0005\u0006\u02c6\n\u0006", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0005\u0007\u02d2\n", + "\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0005\b\u02dd\n\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t", + "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", + "\t\u0003\t\u0005\t\u02ee\n\t\u0003\n\u0003\n\u0003\n\u0005\n\u02f3\n", + "\n\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003", + "\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0005\u000b\u02ff", + "\n\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003", + "\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003", + "\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0005", + "\f\u031a\n\f\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r", + "\u0005\r\u0323\n\r\u0003\u000e\u0003\u000e\u0003\u000e\u0005\u000e\u0328", + "\n\u000e\u0003\u000e\u0003\u000e\u0007\u000e\u032c\n\u000e\f\u000e\u000e", + "\u000e\u032f\u000b\u000e\u0003\u000f\u0003\u000f\u0005\u000f\u0333\n", + "\u000f\u0003\u000f\u0003\u000f\u0005\u000f\u0337\n\u000f\u0003\u000f", + "\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f", + "\u0005\u000f\u0340\n\u000f\u0003\u000f\u0005\u000f\u0343\n\u000f\u0003", + "\u000f\u0005\u000f\u0346\n\u000f\u0003\u000f\u0003\u000f\u0005\u000f", + "\u034a\n\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u0010\u0003", + "\u0010\u0005\u0010\u0351\n\u0010\u0003\u0010\u0005\u0010\u0354\n\u0010", + "\u0003\u0010\u0003\u0010\u0003\u0010\u0005\u0010\u0359\n\u0010\u0003", + "\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0007\u0010\u035f\n\u0010", + "\f\u0010\u000e\u0010\u0362\u000b\u0010\u0003\u0010\u0003\u0010\u0005", + "\u0010\u0366\n\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0005\u0010", + "\u036b\n\u0010\u0003\u0010\u0007\u0010\u036e\n\u0010\f\u0010\u000e\u0010", + "\u0371\u000b\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", + "\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0005\u0011\u037c", + "\n\u0011\u0003\u0011\u0005\u0011\u037f\n\u0011\u0003\u0011\u0003\u0011", + "\u0005\u0011\u0383\n\u0011\u0003\u0011\u0005\u0011\u0386\n\u0011\u0003", + "\u0011\u0003\u0011\u0005\u0011\u038a\n\u0011\u0003\u0011\u0005\u0011", + "\u038d\n\u0011\u0003\u0011\u0003\u0011\u0005\u0011\u0391\n\u0011\u0003", + "\u0011\u0005\u0011\u0394\n\u0011\u0003\u0011\u0005\u0011\u0397\n\u0011", + "\u0003\u0011\u0003\u0011\u0005\u0011\u039b\n\u0011\u0003\u0011\u0005", + "\u0011\u039e\n\u0011\u0003\u0011\u0003\u0011\u0005\u0011\u03a2\n\u0011", + "\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0005\u0012\u03a8\n", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0005\u0012\u03ae", + "\n\u0012\u0003\u0012\u0003\u0012\u0007\u0012\u03b2\n\u0012\f\u0012\u000e", + "\u0012\u03b5\u000b\u0012\u0003\u0012\u0003\u0012\u0007\u0012\u03b9\n", + "\u0012\f\u0012\u000e\u0012\u03bc\u000b\u0012\u0003\u0012\u0003\u0012", + "\u0003\u0013\u0003\u0013\u0005\u0013\u03c2\n\u0013\u0003\u0013\u0003", + "\u0013\u0003\u0013\u0003\u0013\u0005\u0013\u03c8\n\u0013\u0003\u0013", + "\u0003\u0013\u0007\u0013\u03cc\n\u0013\f\u0013\u000e\u0013\u03cf\u000b", + "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0007\u0013\u03d5", + "\n\u0013\f\u0013\u000e\u0013\u03d8\u000b\u0013\u0003\u0013\u0003\u0013", + "\u0005\u0013\u03dc\n\u0013\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0007\u0014\u03ea\n\u0014\f\u0014\u000e", + "\u0014\u03ed\u000b\u0014\u0003\u0014\u0003\u0014\u0003\u0015\u0003\u0015", + "\u0005\u0015\u03f3\n\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u03f7", + "\n\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015", + "\u0003\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u0401\n\u0015\u0003", + "\u0015\u0003\u0015\u0005\u0015\u0405\n\u0015\u0003\u0015\u0003\u0015", + "\u0005\u0015\u0409\n\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u040d", + "\n\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u0411\n\u0015\u0003\u0015", + "\u0007\u0015\u0414\n\u0015\f\u0015\u000e\u0015\u0417\u000b\u0015\u0005", + "\u0015\u0419\n\u0015\u0003\u0015\u0005\u0015\u041c\n\u0015\u0003\u0015", + "\u0005\u0015\u041f\n\u0015\u0003\u0015\u0005\u0015\u0422\n\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u0428\n\u0015", + "\u0003\u0015\u0003\u0015\u0005\u0015\u042c\n\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u0432\n\u0015\u0003\u0015", + "\u0007\u0015\u0435\n\u0015\f\u0015\u000e\u0015\u0438\u000b\u0015\u0005", + "\u0015\u043a\n\u0015\u0003\u0015\u0005\u0015\u043d\n\u0015\u0005\u0015", + "\u043f\n\u0015\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u044a", + "\n\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u044e\n\u0016\u0003\u0016", + "\u0005\u0016\u0451\n\u0016\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0017\u0003\u0017\u0003\u0017\u0005\u0017\u045f\n\u0017\u0003\u0017", + "\u0005\u0017\u0462\n\u0017\u0003\u0017\u0003\u0017\u0005\u0017\u0466", + "\n\u0017\u0003\u0017\u0005\u0017\u0469\n\u0017\u0003\u0017\u0003\u0017", + "\u0005\u0017\u046d\n\u0017\u0003\u0017\u0005\u0017\u0470\n\u0017\u0003", + "\u0017\u0003\u0017\u0005\u0017\u0474\n\u0017\u0003\u0017\u0005\u0017", + "\u0477\n\u0017\u0003\u0017\u0003\u0017\u0005\u0017\u047b\n\u0017\u0003", + "\u0017\u0005\u0017\u047e\n\u0017\u0003\u0017\u0005\u0017\u0481\n\u0017", + "\u0003\u0017\u0003\u0017\u0005\u0017\u0485\n\u0017\u0003\u0017\u0005", + "\u0017\u0488\n\u0017\u0003\u0017\u0003\u0017\u0005\u0017\u048c\n\u0017", + "\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0005\u0018\u0492\n", + "\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003", + "\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0005", + "\u0018\u049f\n\u0018\u0003\u0018\u0003\u0018\u0003\u0019\u0003\u0019", + "\u0003\u0019\u0005\u0019\u04a6\n\u0019\u0003\u0019\u0003\u0019\u0003", + "\u0019\u0005\u0019\u04ab\n\u0019\u0003\u0019\u0005\u0019\u04ae\n\u0019", + "\u0003\u0019\u0003\u0019\u0003\u0019\u0005\u0019\u04b3\n\u0019\u0003", + "\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0005", + "\u0019\u04bb\n\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019", + "\u0005\u0019\u04c1\n\u0019\u0003\u0019\u0003\u0019\u0005\u0019\u04c5", + "\n\u0019\u0003\u001a\u0005\u001a\u04c8\n\u001a\u0003\u001a\u0003\u001a", + "\u0003\u001a\u0005\u001a\u04cd\n\u001a\u0003\u001a\u0005\u001a\u04d0", + "\n\u001a\u0003\u001a\u0003\u001a\u0005\u001a\u04d4\n\u001a\u0003\u001a", + "\u0005\u001a\u04d7\n\u001a\u0003\u001a\u0003\u001a\u0005\u001a\u04db", + "\n\u001a\u0003\u001a\u0005\u001a\u04de\n\u001a\u0003\u001b\u0003\u001b", + "\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0005\u001b\u04e6\n", + "\u001b\u0005\u001b\u04e8\n\u001b\u0003\u001c\u0003\u001c\u0003\u001c", + "\u0007\u001c\u04ed\n\u001c\f\u001c\u000e\u001c\u04f0\u000b\u001c\u0003", + "\u001c\u0003\u001c\u0003\u001c\u0005\u001c\u04f5\n\u001c\u0003\u001c", + "\u0003\u001c\u0003\u001c\u0003\u001c\u0007\u001c\u04fb\n\u001c\f\u001c", + "\u000e\u001c\u04fe\u000b\u001c\u0005\u001c\u0500\n\u001c\u0003\u001c", + "\u0003\u001c\u0003\u001c\u0007\u001c\u0505\n\u001c\f\u001c\u000e\u001c", + "\u0508\u000b\u001c\u0005\u001c\u050a\n\u001c\u0005\u001c\u050c\n\u001c", + "\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0005\u001d\u0512\n", + "\u001d\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0005\u001e\u0518", + "\n\u001e\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003\u001f", + "\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f", + "\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0005\u001f\u0529\n", + "\u001f\u0003 \u0003 \u0003 \u0003 \u0003 \u0005 \u0530\n \u0003!\u0003", + "!\u0003!\u0003\"\u0003\"\u0005\"\u0537\n\"\u0003\"\u0003\"\u0003\"\u0003", + "\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0005\"\u0542\n\"\u0003#", + "\u0005#\u0545\n#\u0003#\u0003#\u0003#\u0003$\u0003$\u0003$\u0003%\u0003", + "%\u0003%\u0003%\u0003%\u0005%\u0552\n%\u0003%\u0003%\u0003%\u0003%\u0003", + "%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u055f\n%\u0003%\u0003", + "%\u0003%\u0005%\u0564\n%\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003", + "&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003&\u0005&\u0574\n&\u0003", + "\'\u0003\'\u0003\'\u0003\'\u0007\'\u057a\n\'\f\'\u000e\'\u057d\u000b", + "\'\u0003\'\u0003\'\u0003(\u0003(\u0003(\u0003(\u0003(\u0005(\u0586\n", + "(\u0003)\u0003)\u0007)\u058a\n)\f)\u000e)\u058d\u000b)\u0003*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0005*\u0596\n*\u0003*\u0005*\u0599", + "\n*\u0003*\u0003*\u0003*\u0005*\u059e\n*\u0003*\u0003*\u0003*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0005*\u05ab\n*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0005*\u05b2\n*\u0003*\u0003*\u0003*\u0003", + "*\u0003*\u0005*\u05b9\n*\u0005*\u05bb\n*\u0003*\u0003*\u0003*\u0003", + "*\u0003*\u0005*\u05c2\n*\u0003+\u0003+\u0005+\u05c6\n+\u0005+\u05c8", + "\n+\u0003+\u0003+\u0003+\u0005+\u05cd\n+\u0003+\u0005+\u05d0\n+\u0003", + "+\u0003+\u0007+\u05d4\n+\f+\u000e+\u05d7\u000b+\u0003+\u0003+\u0005", + "+\u05db\n+\u0005+\u05dd\n+\u0003+\u0003+\u0005+\u05e1\n+\u0003+\u0005", + "+\u05e4\n+\u0003+\u0005+\u05e7\n+\u0003+\u0003+\u0007+\u05eb\n+\f+\u000e", + "+\u05ee\u000b+\u0003+\u0003+\u0005+\u05f2\n+\u0005+\u05f4\n+\u0003+", + "\u0003+\u0003+\u0005+\u05f9\n+\u0003+\u0003+\u0003+\u0003+\u0003+\u0005", + "+\u0600\n+\u0005+\u0602\n+\u0003+\u0003+\u0003+\u0003+\u0003+\u0005", + "+\u0609\n+\u0003,\u0003,\u0003,\u0005,\u060e\n,\u0003,\u0003,\u0005", + ",\u0612\n,\u0003,\u0005,\u0615\n,\u0003-\u0003-\u0003-\u0003-\u0003", + "-\u0003-\u0005-\u061d\n-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0005", + "-\u0625\n-\u0005-\u0627\n-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003", + ".\u0005.\u062f\n.\u0003/\u0003/\u0005/\u0633\n/\u0003/\u0005/\u0636", + "\n/\u0003/\u0003/\u0007/\u063a\n/\f/\u000e/\u063d\u000b/\u0003/\u0003", + "/\u0005/\u0641\n/\u0003/\u0005/\u0644\n/\u0003/\u0003/\u0007/\u0648", + "\n/\f/\u000e/\u064b\u000b/\u0005/\u064d\n/\u00030\u00030\u00050\u0651", + "\n0\u00030\u00030\u00030\u00050\u0656\n0\u00030\u00030\u00030\u0005", + "0\u065b\n0\u00030\u00030\u00050\u065f\n0\u00030\u00030\u00030\u0005", + "0\u0664\n0\u00030\u00050\u0667\n0\u00030\u00030\u00050\u066b\n0\u0003", + "0\u00030\u00050\u066f\n0\u00030\u00030\u00050\u0673\n0\u00030\u0003", + "0\u00050\u0677\n0\u00030\u00030\u00030\u00050\u067c\n0\u00030\u0003", + "0\u00030\u00050\u0681\n0\u00030\u00030\u00030\u00050\u0686\n0\u0003", + "0\u00030\u00030\u00030\u00050\u068c\n0\u00030\u00030\u00030\u00050\u0691", + "\n0\u00030\u00030\u00030\u00050\u0696\n0\u00030\u00030\u00030\u0003", + "0\u00050\u069c\n0\u00030\u00030\u00030\u00050\u06a1\n0\u00030\u0003", + "0\u00030\u00050\u06a6\n0\u00030\u00030\u00030\u00050\u06ab\n0\u0003", + "0\u00030\u00030\u00050\u06b0\n0\u00030\u00030\u00030\u00050\u06b5\n", + "0\u00030\u00030\u00030\u00050\u06ba\n0\u00030\u00030\u00030\u00050\u06bf", + "\n0\u00030\u00030\u00030\u00050\u06c4\n0\u00030\u00030\u00030\u0005", + "0\u06c9\n0\u00030\u00030\u00030\u00050\u06ce\n0\u00030\u00030\u0003", + "0\u00030\u00050\u06d4\n0\u00030\u00030\u00030\u00050\u06d9\n0\u0003", + "0\u00030\u00030\u00030\u00050\u06df\n0\u00031\u00031\u00031\u00032\u0003", + "2\u00032\u00032\u00032\u00052\u06e9\n2\u00032\u00032\u00032\u00032\u0003", + "2\u00052\u06f0\n2\u00052\u06f2\n2\u00032\u00032\u00032\u00032\u0007", + "2\u06f8\n2\f2\u000e2\u06fb\u000b2\u00032\u00032\u00052\u06ff\n2\u0003", + "3\u00053\u0702\n3\u00033\u00033\u00033\u00033\u00033\u00033\u00053\u070a", + "\n3\u00033\u00033\u00033\u00033\u00053\u0710\n3\u00033\u00033\u0003", + "3\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u0003", + "3\u00033\u00053\u0720\n3\u00033\u00033\u00033\u00033\u00033\u00033\u0003", + "3\u00033\u00033\u00033\u00053\u072c\n3\u00053\u072e\n3\u00034\u0005", + "4\u0731\n4\u00034\u00034\u00034\u00034\u00034\u00034\u00054\u0739\n", + "4\u00034\u00034\u00034\u00034\u00054\u073f\n4\u00034\u00034\u00034\u0003", + "4\u00054\u0745\n4\u00035\u00035\u00035\u00035\u00035\u00035\u00035\u0003", + "5\u00035\u00075\u0750\n5\f5\u000e5\u0753\u000b5\u00035\u00035\u0007", + "5\u0757\n5\f5\u000e5\u075a\u000b5\u00035\u00035\u00035\u00075\u075f", + "\n5\f5\u000e5\u0762\u000b5\u00055\u0764\n5\u00035\u00035\u00035\u0003", + "5\u00035\u00035\u00035\u00075\u076d\n5\f5\u000e5\u0770\u000b5\u0003", + "5\u00035\u00035\u00075\u0775\n5\f5\u000e5\u0778\u000b5\u00055\u077a", + "\n5\u00035\u00035\u00035\u00035\u00035\u00035\u00035\u00035\u00075\u0784", + "\n5\f5\u000e5\u0787\u000b5\u00035\u00035\u00075\u078b\n5\f5\u000e5\u078e", + "\u000b5\u00035\u00035\u00035\u00075\u0793\n5\f5\u000e5\u0796\u000b5", + "\u00055\u0798\n5\u00035\u00035\u00035\u00035\u00035\u00035\u00035\u0003", + "5\u00075\u07a2\n5\f5\u000e5\u07a5\u000b5\u00035\u00035\u00075\u07a9", + "\n5\f5\u000e5\u07ac\u000b5\u00035\u00035\u00035\u00075\u07b1\n5\f5\u000e", + "5\u07b4\u000b5\u00055\u07b6\n5\u00035\u00035\u00035\u00075\u07bb\n5", + "\f5\u000e5\u07be\u000b5\u00035\u00035\u00035\u00075\u07c3\n5\f5\u000e", + "5\u07c6\u000b5\u00055\u07c8\n5\u00055\u07ca\n5\u00036\u00036\u00036", + "\u00056\u07cf\n6\u00037\u00037\u00037\u00037\u00067\u07d5\n7\r7\u000e", + "7\u07d6\u00037\u00037\u00038\u00038\u00038\u00078\u07de\n8\f8\u000e", + "8\u07e1\u000b8\u00039\u00059\u07e4\n9\u00039\u00039\u00059\u07e8\n9", + "\u00039\u00039\u00039\u00059\u07ed\n9\u00039\u00039\u00039\u00039\u0005", + "9\u07f3\n9\u00039\u00039\u00039\u00039\u00059\u07f9\n9\u00039\u0003", + "9\u00039\u00059\u07fe\n9\u00039\u00039\u00039\u00059\u0803\n9\u0003", + "9\u00039\u00039\u00059\u0808\n9\u00039\u00039\u00039\u00059\u080d\n", + "9\u00039\u00059\u0810\n9\u0003:\u0003:\u0003:\u0005:\u0815\n:\u0003", + ":\u0006:\u0818\n:\r:\u000e:\u0819\u0003:\u0003:\u0003:\u0003:\u0003", + ":\u0003:\u0003:\u0003:\u0005:\u0824\n:\u0003;\u0003;\u0005;\u0828\n", + ";\u0003;\u0003;\u0003;\u0003;\u0003;\u0005;\u082f\n;\u0003;\u0003;\u0003", + ";\u0005;\u0834\n;\u0003;\u0005;\u0837\n;\u0003;\u0003;\u0003;\u0005", + ";\u083c\n;\u0003;\u0005;\u083f\n;\u0003;\u0003;\u0005;\u0843\n;\u0003", + ";\u0003;\u0005;\u0847\n;\u0003<\u0003<\u0003<\u0003<\u0007<\u084d\n", + "<\f<\u000e<\u0850\u000b<\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", + "=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0005", + ">\u0862\n>\u0003>\u0005>\u0865\n>\u0003>\u0005>\u0868\n>\u0003>\u0003", + ">\u0005>\u086c\n>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003?\u0007?\u0874", + "\n?\f?\u000e?\u0877\u000b?\u0003@\u0003@\u0003@\u0003@\u0003@\u0003", + "@\u0003@\u0003@\u0007@\u0881\n@\f@\u000e@\u0884\u000b@\u0003@\u0003", + "@\u0003A\u0003A\u0005A\u088a\nA\u0003A\u0005A\u088d\nA\u0003A\u0003", + "A\u0003A\u0003A\u0003A\u0007A\u0894\nA\fA\u000eA\u0897\u000bA\u0005", + "A\u0899\nA\u0003A\u0005A\u089c\nA\u0003B\u0003B\u0003B\u0003B\u0003", + "B\u0003B\u0003B\u0003B\u0003B\u0005B\u08a7\nB\u0003B\u0005B\u08aa\n", + "B\u0003B\u0003B\u0005B\u08ae\nB\u0003B\u0003B\u0003C\u0003C\u0003C\u0003", + "C\u0005C\u08b6\nC\u0003C\u0005C\u08b9\nC\u0003C\u0003C\u0003C\u0005", + "C\u08be\nC\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0005C\u08c6\n", + "C\u0003C\u0003C\u0003C\u0003C\u0005C\u08cc\nC\u0003C\u0003C\u0005C\u08d0", + "\nC\u0003D\u0003D\u0005D\u08d4\nD\u0003D\u0007D\u08d7\nD\fD\u000eD\u08da", + "\u000bD\u0003D\u0003D\u0005D\u08de\nD\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0005D\u08e5\nD\u0003D\u0003D\u0005D\u08e9\nD\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0007D\u08f2\nD\fD\u000eD\u08f5\u000b", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0005D\u08fc\nD\u0003D\u0005D\u08ff", + "\nD\u0003D\u0003D\u0007D\u0903\nD\fD\u000eD\u0906\u000bD\u0003D\u0003", + "D\u0003D\u0005D\u090b\nD\u0005D\u090d\nD\u0003D\u0003D\u0003D\u0005", + "D\u0912\nD\u0003D\u0005D\u0915\nD\u0003D\u0003D\u0007D\u0919\nD\fD\u000e", + "D\u091c\u000bD\u0003D\u0003D\u0003D\u0005D\u0921\nD\u0005D\u0923\nD", + "\u0003D\u0003D\u0005D\u0927\nD\u0003D\u0005D\u092a\nD\u0003D\u0005D", + "\u092d\nD\u0003D\u0003D\u0007D\u0931\nD\fD\u000eD\u0934\u000bD\u0003", + "D\u0003D\u0003D\u0005D\u0939\nD\u0003D\u0005D\u093c\nD\u0003D\u0003", + "D\u0007D\u0940\nD\fD\u000eD\u0943\u000bD\u0003D\u0003D\u0003D\u0005", + "D\u0948\nD\u0005D\u094a\nD\u0003D\u0003D\u0003D\u0005D\u094f\nD\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0005D\u0957\nD\u0005D\u0959\n", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0005D\u0962\nD\u0003", + "D\u0003D\u0003D\u0005D\u0967\nD\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0005D\u096f\nD\u0003D\u0003D\u0005D\u0973\nD\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0005D\u097b\nD\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0005D\u0985\nD\u0003D\u0003D\u0003D\u0005D\u098a", + "\nD\u0003D\u0003D\u0003D\u0003D\u0003D\u0005D\u0991\nD\u0003D\u0003", + "D\u0005D\u0995\nD\u0003D\u0003D\u0005D\u0999\nD\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0005D\u09b6\nD\u0003D\u0003D\u0005D\u09ba", + "\nD\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0005D\u09c6\nD\u0003D\u0005D\u09c9\nD\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0005D\u09d2\nD\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0007D\u09e1", + "\nD\fD\u000eD\u09e4\u000bD\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0005D\u09ef\nD\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0005D\u09f6\nD\u0003D\u0003D\u0003D\u0003D\u0003D\u0005D\u09fd\n", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0007D\u0a0a\nD\fD\u000eD\u0a0d\u000bD\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0005D\u0a19\nD\u0003", + "D\u0003D\u0003D\u0003D\u0005D\u0a1f\nD\u0003D\u0003D\u0003D\u0003D\u0005", + "D\u0a25\nD\u0003D\u0003D\u0003D\u0003D\u0005D\u0a2b\nD\u0003D\u0003", + "D\u0003D\u0003D\u0005D\u0a31\nD\u0003D\u0003D\u0003D\u0003D\u0005D\u0a37", + "\nD\u0003D\u0003D\u0003D\u0003D\u0005D\u0a3d\nD\u0003E\u0003E\u0003", + "E\u0005E\u0a42\nE\u0003E\u0003E\u0003F\u0003F\u0003F\u0005F\u0a49\n", + "F\u0003F\u0003F\u0003G\u0003G\u0003G\u0005G\u0a50\nG\u0003G\u0003G\u0003", + "G\u0003G\u0003G\u0005G\u0a57\nG\u0003G\u0003G\u0003G\u0005G\u0a5c\n", + "G\u0003G\u0007G\u0a5f\nG\fG\u000eG\u0a62\u000bG\u0003H\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0005I\u0a6f", + "\nI\u0003I\u0003I\u0003J\u0003J\u0003J\u0005J\u0a76\nJ\u0003J\u0003", + "J\u0003K\u0003K\u0003K\u0005K\u0a7d\nK\u0003K\u0003K\u0003L\u0003L\u0005", + "L\u0a83\nL\u0003L\u0003L\u0005L\u0a87\nL\u0003L\u0003L\u0005L\u0a8b", + "\nL\u0003M\u0003M\u0003M\u0003M\u0003M\u0005M\u0a92\nM\u0003M\u0005", + "M\u0a95\nM\u0003N\u0003N\u0003N\u0005N\u0a9a\nN\u0003N\u0003N\u0003", + "O\u0003O\u0003O\u0005O\u0aa1\nO\u0003O\u0003O\u0003O\u0007O\u0aa6\n", + "O\fO\u000eO\u0aa9\u000bO\u0003O\u0005O\u0aac\nO\u0003P\u0003P\u0003", + "P\u0003P\u0003P\u0007P\u0ab3\nP\fP\u000eP\u0ab6\u000bP\u0003Q\u0003", + "Q\u0003Q\u0003Q\u0003R\u0003R\u0005R\u0abe\nR\u0003R\u0003R\u0003S\u0003", + "S\u0003S\u0003S\u0003S\u0005S\u0ac7\nS\u0003S\u0005S\u0aca\nS\u0003", + "T\u0003T\u0005T\u0ace\nT\u0003U\u0003U\u0003U\u0003V\u0003V\u0003V\u0003", + "V\u0005V\u0ad7\nV\u0003W\u0003W\u0005W\u0adb\nW\u0003W\u0005W\u0ade", + "\nW\u0003W\u0005W\u0ae1\nW\u0003W\u0003W\u0003W\u0003W\u0005W\u0ae7", + "\nW\u0003W\u0005W\u0aea\nW\u0003W\u0003W\u0003W\u0003W\u0005W\u0af0", + "\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0007W\u0af7\nW\fW\u000eW\u0afa", + "\u000bW\u0005W\u0afc\nW\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", + "W\u0007W\u0b05\nW\fW\u000eW\u0b08\u000bW\u0005W\u0b0a\nW\u0003X\u0003", + "X\u0003X\u0005X\u0b0f\nX\u0003X\u0005X\u0b12\nX\u0003X\u0003X\u0003", + "X\u0005X\u0b17\nX\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003", + "X\u0005X\u0b21\nX\u0003X\u0003X\u0003X\u0005X\u0b26\nX\u0003X\u0003", + "X\u0006X\u0b2a\nX\rX\u000eX\u0b2b\u0005X\u0b2e\nX\u0003X\u0003X\u0006", + "X\u0b32\nX\rX\u000eX\u0b33\u0005X\u0b36\nX\u0003X\u0003X\u0003X\u0003", + "X\u0005X\u0b3c\nX\u0003X\u0003X\u0003X\u0003X\u0007X\u0b42\nX\fX\u000e", + "X\u0b45\u000bX\u0003X\u0003X\u0005X\u0b49\nX\u0003X\u0003X\u0003X\u0003", + "X\u0007X\u0b4f\nX\fX\u000eX\u0b52\u000bX\u0005X\u0b54\nX\u0003Y\u0003", + "Y\u0003Y\u0005Y\u0b59\nY\u0003Y\u0005Y\u0b5c\nY\u0003Y\u0003Y\u0003", + "Y\u0005Y\u0b61\nY\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0005Y\u0b69", + "\nY\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0005Y\u0b71\nY\u0003", + "Y\u0003Y\u0003Y\u0003Y\u0005Y\u0b77\nY\u0003Y\u0003Y\u0003Y\u0003Y\u0007", + "Y\u0b7d\nY\fY\u000eY\u0b80\u000bY\u0003Y\u0003Y\u0005Y\u0b84\nY\u0003", + "Y\u0003Y\u0003Y\u0003Y\u0007Y\u0b8a\nY\fY\u000eY\u0b8d\u000bY\u0005", + "Y\u0b8f\nY\u0003Z\u0003Z\u0005Z\u0b93\nZ\u0003Z\u0005Z\u0b96\nZ\u0003", + "Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0005Z\u0b9e\nZ\u0003Z\u0003Z\u0003", + "Z\u0003Z\u0005Z\u0ba4\nZ\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0007Z\u0bab", + "\nZ\fZ\u000eZ\u0bae\u000bZ\u0005Z\u0bb0\nZ\u0003[\u0003[\u0005[\u0bb4", + "\n[\u0003[\u0003[\u0005[\u0bb8\n[\u0003[\u0003[\u0006[\u0bbc\n[\r[\u000e", + "[\u0bbd\u0003[\u0003[\u0005[\u0bc2\n[\u0003[\u0003[\u0005[\u0bc6\n[", + "\u0005[\u0bc8\n[\u0003[\u0005[\u0bcb\n[\u0003[\u0005[\u0bce\n[\u0003", + "[\u0005[\u0bd1\n[\u0003[\u0003[\u0006[\u0bd5\n[\r[\u000e[\u0bd6\u0003", + "[\u0003[\u0005[\u0bdb\n[\u0003[\u0005[\u0bde\n[\u0003[\u0005[\u0be1", + "\n[\u0003[\u0005[\u0be4\n[\u0003[\u0005[\u0be7\n[\u0005[\u0be9\n[\u0003", + "\\\u0003\\\u0005\\\u0bed\n\\\u0003]\u0003]\u0003]\u0003]\u0005]\u0bf3", + "\n]\u0003]\u0003]\u0003]\u0003]\u0005]\u0bf9\n]\u0003]\u0007]\u0bfc", + "\n]\f]\u000e]\u0bff\u000b]\u0005]\u0c01\n]\u0003^\u0003^\u0003^\u0003", + "^\u0005^\u0c07\n^\u0003_\u0003_\u0005_\u0c0b\n_\u0003`\u0003`\u0003", + "`\u0003`\u0003`\u0003`\u0005`\u0c13\n`\u0003a\u0003a\u0005a\u0c17\n", + "a\u0003a\u0005a\u0c1a\na\u0003a\u0005a\u0c1d\na\u0003a\u0003a\u0003", + "a\u0003a\u0003a\u0003a\u0003a\u0005a\u0c26\na\u0003a\u0003a\u0005a\u0c2a", + "\na\u0003a\u0005a\u0c2d\na\u0003a\u0003a\u0005a\u0c31\na\u0003b\u0003", + "b\u0005b\u0c35\nb\u0003b\u0005b\u0c38\nb\u0003b\u0005b\u0c3b\nb\u0003", + "b\u0003b\u0003b\u0005b\u0c40\nb\u0003b\u0003b\u0003b\u0003b\u0005b\u0c46", + "\nb\u0007b\u0c48\nb\fb\u000eb\u0c4b\u000bb\u0003b\u0003b\u0003b\u0003", + "b\u0003b\u0003b\u0003b\u0005b\u0c54\nb\u0003b\u0003b\u0003b\u0003b\u0005", + "b\u0c5a\nb\u0007b\u0c5c\nb\fb\u000eb\u0c5f\u000bb\u0003b\u0003b\u0003", + "b\u0005b\u0c64\nb\u0003b\u0003b\u0005b\u0c68\nb\u0003c\u0003c\u0003", + "c\u0003c\u0005c\u0c6e\nc\u0003c\u0005c\u0c71\nc\u0003d\u0003d\u0003", + "d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0005d\u0c7d\nd\u0003", + "d\u0003d\u0005d\u0c81\nd\u0003d\u0003d\u0005d\u0c85\nd\u0003e\u0003", + "e\u0003e\u0003e\u0003e\u0003e\u0005e\u0c8d\ne\u0003e\u0003e\u0005e\u0c91", + "\ne\u0003f\u0003f\u0003f\u0003f\u0003g\u0003g\u0005g\u0c99\ng\u0003", + "g\u0005g\u0c9c\ng\u0003g\u0003g\u0005g\u0ca0\ng\u0003g\u0005g\u0ca3", + "\ng\u0003g\u0003g\u0003g\u0003g\u0007g\u0ca9\ng\fg\u000eg\u0cac\u000b", + "g\u0003g\u0003g\u0005g\u0cb0\ng\u0003g\u0005g\u0cb3\ng\u0003g\u0005", + "g\u0cb6\ng\u0003h\u0003h\u0005h\u0cba\nh\u0003h\u0005h\u0cbd\nh\u0003", + "h\u0003h\u0003h\u0003h\u0003h\u0007h\u0cc4\nh\fh\u000eh\u0cc7\u000b", + "h\u0003h\u0003h\u0005h\u0ccb\nh\u0003i\u0003i\u0003i\u0003i\u0003i\u0007", + "i\u0cd2\ni\fi\u000ei\u0cd5\u000bi\u0003j\u0003j\u0005j\u0cd9\nj\u0003", + "k\u0003k\u0003k\u0007k\u0cde\nk\fk\u000ek\u0ce1\u000bk\u0003l\u0003", + "l\u0007l\u0ce5\nl\fl\u000el\u0ce8\u000bl\u0003l\u0003l\u0003l\u0007", + "l\u0ced\nl\fl\u000el\u0cf0\u000bl\u0003l\u0003l\u0005l\u0cf4\nl\u0003", + "m\u0003m\u0003m\u0003m\u0003m\u0003m\u0005m\u0cfc\nm\u0003m\u0005m\u0cff", + "\nm\u0003m\u0005m\u0d02\nm\u0003m\u0003m\u0003m\u0007m\u0d07\nm\fm\u000e", + "m\u0d0a\u000bm\u0005m\u0d0c\nm\u0003m\u0003m\u0003m\u0003m\u0003m\u0005", + "m\u0d13\nm\u0003m\u0005m\u0d16\nm\u0003m\u0003m\u0003m\u0003m\u0003", + "m\u0003m\u0005m\u0d1e\nm\u0003n\u0003n\u0003n\u0003n\u0005n\u0d24\n", + "n\u0003n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003o\u0003o\u0003o\u0005", + "o\u0d2f\no\u0003p\u0005p\u0d32\np\u0003p\u0003p\u0003p\u0003p\u0003", + "p\u0003p\u0003p\u0003p\u0003p\u0005p\u0d3d\np\u0003p\u0003p\u0003p\u0003", + "p\u0005p\u0d43\np\u0003p\u0003p\u0005p\u0d47\np\u0003p\u0003p\u0003", + "p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0005p\u0d52\np\u0003p\u0003", + "p\u0003p\u0005p\u0d57\np\u0005p\u0d59\np\u0003p\u0003p\u0005p\u0d5d", + "\np\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0005q\u0d67", + "\nq\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0005r\u0d71", + "\nr\u0003s\u0003s\u0007s\u0d75\ns\fs\u000es\u0d78\u000bs\u0003s\u0003", + "s\u0005s\u0d7c\ns\u0003s\u0005s\u0d7f\ns\u0003s\u0005s\u0d82\ns\u0003", + "s\u0005s\u0d85\ns\u0003s\u0003s\u0007s\u0d89\ns\fs\u000es\u0d8c\u000b", + "s\u0003s\u0003s\u0005s\u0d90\ns\u0003s\u0005s\u0d93\ns\u0003s\u0005", + "s\u0d96\ns\u0003s\u0005s\u0d99\ns\u0005s\u0d9b\ns\u0003t\u0003t\u0007", + "t\u0d9f\nt\ft\u000et\u0da2\u000bt\u0003t\u0003t\u0005t\u0da6\nt\u0003", + "t\u0005t\u0da9\nt\u0003t\u0005t\u0dac\nt\u0003u\u0003u\u0005u\u0db0", + "\nu\u0003u\u0003u\u0003v\u0003v\u0005v\u0db6\nv\u0003v\u0003v\u0005", + "v\u0dba\nv\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0005", + "w\u0dc4\nw\u0003x\u0003x\u0005x\u0dc8\nx\u0003x\u0003x\u0007x\u0dcc", + "\nx\fx\u000ex\u0dcf\u000bx\u0003y\u0003y\u0003y\u0003y\u0003y\u0003", + "y\u0005y\u0dd7\ny\u0003y\u0005y\u0dda\ny\u0003y\u0003y\u0005y\u0dde", + "\ny\u0003y\u0005y\u0de1\ny\u0003y\u0003y\u0005y\u0de5\ny\u0003y\u0003", + "y\u0005y\u0de9\ny\u0003y\u0005y\u0dec\ny\u0005y\u0dee\ny\u0003z\u0003", + "z\u0003z\u0003z\u0007z\u0df4\nz\fz\u000ez\u0df7\u000bz\u0003z\u0003", + "z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0005z\u0e02\nz\u0003", + "z\u0003z\u0006z\u0e06\nz\rz\u000ez\u0e07\u0005z\u0e0a\nz\u0003z\u0003", + "z\u0006z\u0e0e\nz\rz\u000ez\u0e0f\u0005z\u0e12\nz\u0005z\u0e14\nz\u0003", + "{\u0003{\u0003{\u0003{\u0005{\u0e1a\n{\u0003{\u0003{\u0003{\u0003{\u0003", + "{\u0003{\u0005{\u0e22\n{\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0005", + "|\u0e2a\n|\u0003}\u0003}\u0003}\u0003}\u0005}\u0e30\n}\u0003}\u0003", + "}\u0003}\u0003}\u0003}\u0007}\u0e37\n}\f}\u000e}\u0e3a\u000b}\u0003", + "}\u0003}\u0005}\u0e3e\n}\u0005}\u0e40\n}\u0003}\u0003}\u0005}\u0e44", + "\n}\u0003~\u0003~\u0005~\u0e48\n~\u0003\u007f\u0003\u007f\u0003\u007f", + "\u0003\u007f\u0005\u007f\u0e4e\n\u007f\u0003\u007f\u0003\u007f\u0003", + "\u007f\u0003\u007f\u0003\u007f\u0005\u007f\u0e55\n\u007f\u0003\u0080", + "\u0003\u0080\u0005\u0080\u0e59\n\u0080\u0003\u0081\u0003\u0081\u0003", + "\u0081\u0003\u0081\u0003\u0081\u0007\u0081\u0e60\n\u0081\f\u0081\u000e", + "\u0081\u0e63\u000b\u0081\u0005\u0081\u0e65\n\u0081\u0003\u0082\u0003", + "\u0082\u0005\u0082\u0e69\n\u0082\u0003\u0083\u0003\u0083\u0005\u0083", + "\u0e6d\n\u0083\u0003\u0083\u0003\u0083\u0005\u0083\u0e71\n\u0083\u0003", + "\u0083\u0005\u0083\u0e74\n\u0083\u0003\u0083\u0005\u0083\u0e77\n\u0083", + "\u0003\u0083\u0005\u0083\u0e7a\n\u0083\u0003\u0084\u0003\u0084\u0005", + "\u0084\u0e7e\n\u0084\u0003\u0084\u0003\u0084\u0005\u0084\u0e82\n\u0084", + "\u0003\u0084\u0005\u0084\u0e85\n\u0084\u0003\u0084\u0005\u0084\u0e88", + "\n\u0084\u0003\u0084\u0005\u0084\u0e8b\n\u0084\u0003\u0085\u0003\u0085", + "\u0003\u0085\u0003\u0086\u0003\u0086\u0005\u0086\u0e92\n\u0086\u0003", + "\u0086\u0003\u0086\u0005\u0086\u0e96\n\u0086\u0003\u0086\u0003\u0086", + "\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0088\u0003\u0088", + "\u0003\u0088\u0003\u0088\u0003\u0088\u0007\u0088\u0ea3\n\u0088\f\u0088", + "\u000e\u0088\u0ea6\u000b\u0088\u0003\u0089\u0003\u0089\u0003\u0089\u0003", + "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003", + "\u008b\u0005\u008b\u0eb2\n\u008b\u0003\u008b\u0003\u008b\u0003\u008b", + "\u0003\u008b\u0007\u008b\u0eb8\n\u008b\f\u008b\u000e\u008b\u0ebb\u000b", + "\u008b\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0003\u008c\u0005\u008c\u0ec4\n\u008c\u0003\u008d\u0003\u008d", + "\u0005\u008d\u0ec8\n\u008d\u0003\u008d\u0005\u008d\u0ecb\n\u008d\u0003", + "\u008d\u0003\u008d\u0003\u008e\u0003\u008e\u0005\u008e\u0ed1\n\u008e", + "\u0003\u008e\u0005\u008e\u0ed4\n\u008e\u0003\u008e\u0005\u008e\u0ed7", + "\n\u008e\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f", + "\u0003\u008f\u0003\u008f\u0005\u008f\u0ee0\n\u008f\u0003\u0090\u0003", + "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0005", + "\u0090\u0ee9\n\u0090\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0091\u0007\u0091\u0ef1\n\u0091\f\u0091\u000e\u0091", + "\u0ef4\u000b\u0091\u0003\u0091\u0005\u0091\u0ef7\n\u0091\u0003\u0092", + "\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0007\u0092", + "\u0eff\n\u0092\f\u0092\u000e\u0092\u0f02\u000b\u0092\u0003\u0093\u0003", + "\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0005", + "\u0093\u0f0b\n\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0095", + "\u0003\u0095\u0003\u0095\u0005\u0095\u0f13\n\u0095\u0003\u0095\u0005", + "\u0095\u0f16\n\u0095\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096", + "\u0003\u0096\u0007\u0096\u0f1d\n\u0096\f\u0096\u000e\u0096\u0f20\u000b", + "\u0096\u0005\u0096\u0f22\n\u0096\u0003\u0096\u0003\u0096\u0005\u0096", + "\u0f26\n\u0096\u0003\u0096\u0007\u0096\u0f29\n\u0096\f\u0096\u000e\u0096", + "\u0f2c\u000b\u0096\u0003\u0096\u0005\u0096\u0f2f\n\u0096\u0003\u0097", + "\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0007\u0097\u0f36\n", + "\u0097\f\u0097\u000e\u0097\u0f39\u000b\u0097\u0005\u0097\u0f3b\n\u0097", + "\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0007\u009a\u0f58\n\u009a\f\u009a", + "\u000e\u009a\u0f5b\u000b\u009a\u0005\u009a\u0f5d\n\u009a\u0003\u009a", + "\u0005\u009a\u0f60\n\u009a\u0003\u009b\u0003\u009b\u0003\u009c\u0003", + "\u009c\u0003\u009d\u0003\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003", + "\u009e\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0007\u009f\u0f96\n\u009f\f\u009f\u000e\u009f\u0f99\u000b\u009f", + "\u0003\u009f\u0003\u009f\u0005\u009f\u0f9d\n\u009f\u0003\u00a0\u0003", + "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003", + "\u00a1\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003", + "\u00a2\u0005\u00a2\u0fb9\n\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3", + "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3", + "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3\u0fc7\n\u00a3\u0003", + "\u00a4\u0003\u00a4\u0003\u00a4\u0007\u00a4\u0fcc\n\u00a4\f\u00a4\u000e", + "\u00a4\u0fcf\u000b\u00a4\u0003\u00a4\u0005\u00a4\u0fd2\n\u00a4\u0003", + "\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0005\u00a5\u0fd8\n\u00a5", + "\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", + "\u0005\u00a6\u0fe0\n\u00a6\u0005\u00a6\u0fe2\n\u00a6\u0003\u00a7\u0003", + "\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0005\u00a8\u0fed\n\u00a8\u0003\u00a9\u0003\u00a9", + "\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa", + "\u0005\u00aa\u0ff7\n\u00aa\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003", + "\u00ab\u0003\u00ab\u0005\u00ab\u0ffe\n\u00ab\u0003\u00ac\u0003\u00ac", + "\u0003\u00ac\u0003\u00ac\u0005\u00ac\u1004\n\u00ac\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ae\u0003\u00ae\u0005\u00ae\u100c", + "\n\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0005\u00af\u1011\n\u00af", + "\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0007\u00af\u1017\n", + "\u00af\f\u00af\u000e\u00af\u101a\u000b\u00af\u0003\u00af\u0003\u00af", + "\u0003\u00af\u0007\u00af\u101f\n\u00af\f\u00af\u000e\u00af\u1022\u000b", + "\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0007\u00af\u1027\n\u00af", + "\f\u00af\u000e\u00af\u102a\u000b\u00af\u0003\u00af\u0003\u00af\u0003", + "\u00af\u0007\u00af\u102f\n\u00af\f\u00af\u000e\u00af\u1032\u000b\u00af", + "\u0003\u00af\u0007\u00af\u1035\n\u00af\f\u00af\u000e\u00af\u1038\u000b", + "\u00af\u0005\u00af\u103a\n\u00af\u0003\u00af\u0003\u00af\u0005\u00af", + "\u103e\n\u00af\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0005\u00b0\u1043", + "\n\u00b0\u0003\u00b0\u0006\u00b0\u1046\n\u00b0\r\u00b0\u000e\u00b0\u1047", + "\u0003\u00b0\u0003\u00b0\u0006\u00b0\u104c\n\u00b0\r\u00b0\u000e\u00b0", + "\u104d\u0005\u00b0\u1050\n\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0", + "\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0006\u00b1\u1059\n", + "\u00b1\r\u00b1\u000e\u00b1\u105a\u0003\u00b1\u0007\u00b1\u105e\n\u00b1", + "\f\u00b1\u000e\u00b1\u1061\u000b\u00b1\u0003\u00b1\u0003\u00b1\u0006", + "\u00b1\u1065\n\u00b1\r\u00b1\u000e\u00b1\u1066\u0005\u00b1\u1069\n\u00b1", + "\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2", + "\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003\u00b4", + "\u0005\u00b4\u1077\n\u00b4\u0003\u00b4\u0003\u00b4\u0006\u00b4\u107b", + "\n\u00b4\r\u00b4\u000e\u00b4\u107c\u0003\u00b4\u0003\u00b4\u0003\u00b4", + "\u0005\u00b4\u1082\n\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0005", + "\u00b5\u1087\n\u00b5\u0003\u00b5\u0003\u00b5\u0006\u00b5\u108b\n\u00b5", + "\r\u00b5\u000e\u00b5\u108c\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", + "\u00b5\u0003\u00b5\u0005\u00b5\u1094\n\u00b5\u0003\u00b6\u0003\u00b6", + "\u0003\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0005\u00b7\u109c\n", + "\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0006\u00b7\u10a2", + "\n\u00b7\r\u00b7\u000e\u00b7\u10a3\u0003\u00b7\u0003\u00b7\u0003\u00b7", + "\u0005\u00b7\u10a9\n\u00b7\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003", + "\u00b8\u0005\u00b8\u10af\n\u00b8\u0003\u00b8\u0005\u00b8\u10b2\n\u00b8", + "\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0005\u00b8\u10ba\n\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0005\u00b9\u10c1\n\u00b9\u0003\u00ba\u0003\u00ba", + "\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba", + "\u10ca\n\u00ba\u0003\u00ba\u0005\u00ba\u10cd\n\u00ba\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0007", + "\u00bc\u10dc\n\u00bc\f\u00bc\u000e\u00bc\u10df\u000b\u00bc\u0003\u00bc", + "\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0005\u00bd\u10e6\n", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0005\u00bd\u10ee\n\u00bd\u0003\u00be\u0003\u00be\u0005\u00be", + "\u10f2\n\u00be\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0005\u00bf\u10f9\n\u00bf\u0003\u00bf\u0003\u00bf\u0006\u00bf", + "\u10fd\n\u00bf\r\u00bf\u000e\u00bf\u10fe\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0006\u00c0\u1105\n\u00c0\r\u00c0\u000e\u00c0\u1106", + "\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0007\u00c1", + "\u110e\n\u00c1\f\u00c1\u000e\u00c1\u1111\u000b\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0005\u00c1\u1116\n\u00c1\u0003\u00c1\u0003\u00c1", + "\u0003\u00c1\u0007\u00c1\u111b\n\u00c1\f\u00c1\u000e\u00c1\u111e\u000b", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0005\u00c1\u1124", + "\n\u00c1\u0003\u00c1\u0007\u00c1\u1127\n\u00c1\f\u00c1\u000e\u00c1\u112a", + "\u000b\u00c1\u0005\u00c1\u112c\n\u00c1\u0005\u00c1\u112e\n\u00c1\u0003", + "\u00c1\u0003\u00c1\u0006\u00c1\u1132\n\u00c1\r\u00c1\u000e\u00c1\u1133", + "\u0005\u00c1\u1136\n\u00c1\u0003\u00c1\u0003\u00c1\u0007\u00c1\u113a", + "\n\u00c1\f\u00c1\u000e\u00c1\u113d\u000b\u00c1\u0005\u00c1\u113f\n\u00c1", + "\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0007\u00c2", + "\u1146\n\u00c2\f\u00c2\u000e\u00c2\u1149\u000b\u00c2\u0003\u00c2\u0003", + "\u00c2\u0003\u00c2\u0005\u00c2\u114e\n\u00c2\u0003\u00c2\u0003\u00c2", + "\u0003\u00c2\u0007\u00c2\u1153\n\u00c2\f\u00c2\u000e\u00c2\u1156\u000b", + "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0005\u00c2\u115c", + "\n\u00c2\u0003\u00c2\u0007\u00c2\u115f\n\u00c2\f\u00c2\u000e\u00c2\u1162", + "\u000b\u00c2\u0005\u00c2\u1164\n\u00c2\u0005\u00c2\u1166\n\u00c2\u0003", + "\u00c2\u0003\u00c2\u0006\u00c2\u116a\n\u00c2\r\u00c2\u000e\u00c2\u116b", + "\u0005\u00c2\u116e\n\u00c2\u0003\u00c2\u0003\u00c2\u0007\u00c2\u1172", + "\n\u00c2\f\u00c2\u000e\u00c2\u1175\u000b\u00c2\u0005\u00c2\u1177\n\u00c2", + "\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0005\u00c3\u117c\n\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0007\u00c3\u1181\n\u00c3\f\u00c3\u000e", + "\u00c3\u1184\u000b\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4", + "\u0007\u00c4\u118a\n\u00c4\f\u00c4\u000e\u00c4\u118d\u000b\u00c4\u0003", + "\u00c4\u0003\u00c4\u0005\u00c4\u1191\n\u00c4\u0003\u00c4\u0003\u00c4", + "\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0007\u00c4\u1198\n\u00c4\f\u00c4", + "\u000e\u00c4\u119b\u000b\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c4\u0005\u00c4\u11a1\n\u00c4\u0003\u00c4\u0007\u00c4\u11a4\n\u00c4", + "\f\u00c4\u000e\u00c4\u11a7\u000b\u00c4\u0005\u00c4\u11a9\n\u00c4\u0005", + "\u00c4\u11ab\n\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4", + "\u0007\u00c4\u11b1\n\u00c4\f\u00c4\u000e\u00c4\u11b4\u000b\u00c4\u0005", + "\u00c4\u11b6\n\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5", + "\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0007\u00c5\u11c0\n", + "\u00c5\f\u00c5\u000e\u00c5\u11c3\u000b\u00c5\u0003\u00c5\u0003\u00c5", + "\u0003\u00c5\u0005\u00c5\u11c8\n\u00c5\u0003\u00c6\u0003\u00c6\u0003", + "\u00c6\u0003\u00c6\u0003\u00c6\u0007\u00c6\u11cf\n\u00c6\f\u00c6\u000e", + "\u00c6\u11d2\u000b\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7", + "\u0007\u00c7\u11d8\n\u00c7\f\u00c7\u000e\u00c7\u11db\u000b\u00c7\u0003", + "\u00c7\u0003\u00c7\u0005\u00c7\u11df\n\u00c7\u0003\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0007\u00c7\u11e6\n\u00c7\f\u00c7", + "\u000e\u00c7\u11e9\u000b\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0005", + "\u00c7\u11ee\n\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0007\u00c7\u11f7\n\u00c7\f\u00c7", + "\u000e\u00c7\u11fa\u000b\u00c7\u0005\u00c7\u11fc\n\u00c7\u0003\u00c8", + "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8", + "\u0003\u00c8\u0007\u00c8\u1206\n\u00c8\f\u00c8\u000e\u00c8\u1209\u000b", + "\u00c8\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0005\u00c9\u120f", + "\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0005\u00c9\u1214\n\u00c9", + "\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0005\u00cb\u1223\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0005\u00cb\u122e\n\u00cb\u0003\u00cb\u0005\u00cb\u1231\n\u00cb", + "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc", + "\u0003\u00cc\u0003\u00cc\u0005\u00cc\u123b\n\u00cc\u0003\u00cd\u0003", + "\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0005\u00cd\u1245\n\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce", + "\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0005\u00ce", + "\u124f\n\u00ce\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00d0\u0003", + "\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0005\u00d0\u1259\n\u00d0", + "\u0003\u00d1\u0003\u00d1\u0005\u00d1\u125d\n\u00d1\u0003\u00d1\u0003", + "\u00d1\u0005\u00d1\u1261\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0005\u00d1", + "\u126b\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0005\u00d1\u1270", + "\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0005\u00d1\u12a2\n\u00d1\u0003\u00d2\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0005\u00d2\u12b4\n\u00d2\u0003\u00d3\u0003\u00d3", + "\u0003\u00d3\u0003\u00d3\u0003\u00d4\u0003\u00d4\u0005\u00d4\u12bc\n", + "\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d5\u0003\u00d5\u0003", + "\u00d5\u0003\u00d5\u0007\u00d5\u12c5\n\u00d5\f\u00d5\u000e\u00d5\u12c8", + "\u000b\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0005\u00d6", + "\u12ce\n\u00d6\u0003\u00d7\u0003\u00d7\u0005\u00d7\u12d2\n\u00d7\u0003", + "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d8\u0003\u00d8\u0005\u00d8\u12d9", + "\n\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8\u12de\n\u00d8", + "\u0003\u00d8\u0005\u00d8\u12e1\n\u00d8\u0003\u00d8\u0005\u00d8\u12e4", + "\n\u00d8\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9", + "\u0003\u00d9\u0003\u00d9\u0005\u00d9\u12ed\n\u00d9\u0003\u00da\u0003", + "\u00da\u0005\u00da\u12f1\n\u00da\u0003\u00da\u0003\u00da\u0003\u00da", + "\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00db\u0003\u00db", + "\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00dc\u0003\u00dc", + "\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd", + "\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0007\u00dd", + "\u130d\n\u00dd\f\u00dd\u000e\u00dd\u1310\u000b\u00dd\u0003\u00dd\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0005\u00dd\u1316\n\u00dd\u0003\u00dd", + "\u0003\u00dd\u0005\u00dd\u131a\n\u00dd\u0003\u00dd\u0003\u00dd\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0005\u00dd\u1321\n\u00dd\u0003\u00dd", + "\u0005\u00dd\u1324\n\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0007\u00dd\u1332\n\u00dd\f\u00dd\u000e", + "\u00dd\u1335\u000b\u00dd\u0005\u00dd\u1337\n\u00dd\u0003\u00de\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00de\u0005\u00de\u1341\n\u00de\u0003\u00de\u0003\u00de\u0005\u00de", + "\u1345\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0005", + "\u00de\u134b\n\u00de\u0003\u00de\u0005\u00de\u134e\n\u00de\u0003\u00de", + "\u0003\u00de\u0003\u00de\u0005\u00de\u1353\n\u00de\u0003\u00de\u0003", + "\u00de\u0005\u00de\u1357\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de", + "\u0003\u00de\u0003\u00de\u0005\u00de\u135e\n\u00de\u0003\u00de\u0005", + "\u00de\u1361\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de", + "\u0005\u00de\u1367\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00de\u0005\u00de\u137f\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de", + "\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de", + "\u0003\u00de\u0003\u00de\u0005\u00de\u138c\n\u00de\u0003\u00de\u0005", + "\u00de\u138f\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de", + "\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0005\u00de\u1399\n", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00de\u0005\u00de\u13a1\n\u00de\u0003\u00de\u0003\u00de\u0005\u00de", + "\u13a5\n\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00de\u0005\u00de\u13ac\n\u00de\u0003\u00de\u0005\u00de\u13af\n\u00de", + "\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0007\u00de", + "\u13b6\n\u00de\f\u00de\u000e\u00de\u13b9\u000b\u00de\u0003\u00de\u0003", + "\u00de\u0003\u00de\u0005\u00de\u13be\n\u00de\u0003\u00de\u0003\u00de", + "\u0003\u00de\u0003\u00de\u0005\u00de\u13c4\n\u00de\u0003\u00de\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003", + "\u00de\u0005\u00de\u13ce\n\u00de\u0005\u00de\u13d0\n\u00de\u0003\u00df", + "\u0003\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u13d6\n\u00df\u0003", + "\u00df\u0005\u00df\u13d9\n\u00df\u0003\u00df\u0005\u00df\u13dc\n\u00df", + "\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0", + "\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0005\u00e0\u13e8\n", + "\u00e0\u0003\u00e0\u0005\u00e0\u13eb\n\u00e0\u0003\u00e1\u0003\u00e1", + "\u0003\u00e1\u0003\u00e1\u0005\u00e1\u13f1\n\u00e1\u0003\u00e2\u0005", + "\u00e2\u13f4\n\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2", + "\u0003\u00e2\u0003\u00e2\u0005\u00e2\u13fc\n\u00e2\u0003\u00e2\u0003", + "\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0005\u00e2\u1404", + "\n\u00e2\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0005\u00e3", + "\u140a\n\u00e3\u0003\u00e3\u0003\u00e3\u0005\u00e3\u140e\n\u00e3\u0003", + "\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003", + "\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0005", + "\u00e4\u141c\n\u00e4\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e6", + "\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0007\u00e6\u1426\n", + "\u00e6\f\u00e6\u000e\u00e6\u1429\u000b\u00e6\u0003\u00e6\u0003\u00e6", + "\u0003\u00e6\u0003\u00e6\u0005\u00e6\u142f\n\u00e6\u0003\u00e6\u0005", + "\u00e6\u1432\n\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7", + "\u0003\u00e7\u0005\u00e7\u1439\n\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0007\u00e7\u143e\n\u00e7\f\u00e7\u000e\u00e7\u1441\u000b\u00e7", + "\u0003\u00e8\u0003\u00e8\u0005\u00e8\u1445\n\u00e8\u0003\u00e8\u0006", + "\u00e8\u1448\n\u00e8\r\u00e8\u000e\u00e8\u1449\u0003\u00e9\u0003\u00e9", + "\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0007\u00e9", + "\u1453\n\u00e9\f\u00e9\u000e\u00e9\u1456\u000b\u00e9\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00eb\u0003\u00eb\u0003\u00ec\u0003", + "\u00ec\u0005\u00ec\u1460\n\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec", + "\u0003\u00ec\u0005\u00ec\u1466\n\u00ec\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0005\u00ed\u146b\n\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed", + "\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed", + "\u0003\u00ed\u0003\u00ed\u0005\u00ed\u1478\n\u00ed\u0005\u00ed\u147a", + "\n\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0005\u00ed\u147f\n\u00ed", + "\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0005\u00ed\u1484\n\u00ed\u0005", + "\u00ed\u1486\n\u00ed\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee", + "\u0003\u00ee\u0005\u00ee\u148d\n\u00ee\u0003\u00ef\u0003\u00ef\u0003", + "\u00ef\u0003\u00ef\u0003\u00ef\u0005\u00ef\u1494\n\u00ef\u0003\u00ef", + "\u0005\u00ef\u1497\n\u00ef\u0003\u00ef\u0005\u00ef\u149a\n\u00ef\u0003", + "\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0005\u00ef\u14a0\n\u00ef", + "\u0003\u00ef\u0003\u00ef\u0005\u00ef\u14a4\n\u00ef\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0005\u00f0\u14aa\n\u00f0\u0003\u00f1", + "\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0005\u00f1\u14b0\n\u00f1\u0003", + "\u00f1\u0003\u00f1\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f3\u0003", + "\u00f3\u0003\u00f3\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0005\u00f4\u14bd", + "\n\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0005\u00f4\u14c2\n\u00f4", + "\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0007\u00f4\u14c8\n", + "\u00f4\f\u00f4\u000e\u00f4\u14cb\u000b\u00f4\u0005\u00f4\u14cd\n\u00f4", + "\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0005\u00f5\u14d2\n\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0005\u00f5\u14d7\n\u00f5\u0003\u00f5", + "\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0007\u00f5\u14dd\n\u00f5\f\u00f5", + "\u000e\u00f5\u14e0\u000b\u00f5\u0005\u00f5\u14e2\n\u00f5\u0003\u00f6", + "\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0005\u00f6\u14e8\n\u00f6\u0003", + "\u00f7\u0003\u00f7\u0005\u00f7\u14ec\n\u00f7\u0003\u00f7\u0003\u00f7", + "\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7", + "\u0003\u00f7\u0007\u00f7\u14f7\n\u00f7\f\u00f7\u000e\u00f7\u14fa\u000b", + "\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0005\u00f7\u14ff\n\u00f7", + "\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7", + "\u0003\u00f7\u0003\u00f7\u0007\u00f7\u1509\n\u00f7\f\u00f7\u000e\u00f7", + "\u150c\u000b\u00f7\u0005\u00f7\u150e\n\u00f7\u0003\u00f8\u0003\u00f8", + "\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0005\u00f9", + "\u1517\n\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0005\u00f9\u151c", + "\n\u00f9\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0005\u00fa", + "\u1522\n\u00fa\u0003\u00fb\u0003\u00fb\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0005\u00fc\u1529\n\u00fc\u0005\u00fc\u152b\n\u00fc\u0003\u00fd", + "\u0003\u00fd\u0005\u00fd\u152f\n\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fd\u0003\u00fd\u0005\u00fd\u1535\n\u00fd\u0003\u00fd\u0005\u00fd", + "\u1538\n\u00fd\u0003\u00fe\u0003\u00fe\u0003\u00ff\u0003\u00ff\u0003", + "\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0005\u0100\u1542\n\u0100", + "\u0003\u0101\u0003\u0101\u0005\u0101\u1546\n\u0101\u0003\u0102\u0003", + "\u0102\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0006\u0103\u1558\n\u0103\r\u0103\u000e", + "\u0103\u1559\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104", + "\u0005\u0104\u1561\n\u0104\u0005\u0104\u1563\n\u0104\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0006\u0105\u1568\n\u0105\r\u0105\u000e\u0105\u1569", + "\u0005\u0105\u156c\n\u0105\u0003\u0106\u0003\u0106\u0005\u0106\u1570", + "\n\u0106\u0003\u0107\u0003\u0107\u0003\u0107\u0005\u0107\u1575\n\u0107", + "\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108", + "\u0003\u0108\u0003\u0108\u0003\u0108\u0005\u0108\u1580\n\u0108\u0003", + "\u0109\u0003\u0109\u0003\u0109\u0005\u0109\u1585\n\u0109\u0003\u010a", + "\u0003\u010a\u0003\u010b\u0003\u010b\u0005\u010b\u158b\n\u010b\u0003", + "\u010c\u0005\u010c\u158e\n\u010c\u0003\u010c\u0003\u010c\u0005\u010c", + "\u1592\n\u010c\u0003\u010c\u0006\u010c\u1595\n\u010c\r\u010c\u000e\u010c", + "\u1596\u0003\u010c\u0005\u010c\u159a\n\u010c\u0003\u010c\u0003\u010c", + "\u0005\u010c\u159e\n\u010c\u0003\u010c\u0003\u010c\u0005\u010c\u15a2", + "\n\u010c\u0005\u010c\u15a4\n\u010c\u0003\u010d\u0003\u010d\u0003\u010e", + "\u0005\u010e\u15a9\n\u010e\u0003\u010e\u0003\u010e\u0003\u010f\u0005", + "\u010f\u15ae\n\u010f\u0003\u010f\u0003\u010f\u0003\u0110\u0003\u0110", + "\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110", + "\u0003\u0110\u0005\u0110\u15bb\n\u0110\u0003\u0110\u0005\u0110\u15be", + "\n\u0110\u0003\u0111\u0003\u0111\u0005\u0111\u15c2\n\u0111\u0003\u0111", + "\u0005\u0111\u15c5\n\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0005", + "\u0111\u15ca\n\u0111\u0003\u0111\u0005\u0111\u15cd\n\u0111\u0003\u0111", + "\u0003\u0111\u0005\u0111\u15d1\n\u0111\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0005\u0111\u15d6\n\u0111\u0003\u0111\u0005\u0111\u15d9\n\u0111", + "\u0003\u0111\u0003\u0111\u0003\u0111\u0005\u0111\u15de\n\u0111\u0003", + "\u0111\u0005\u0111\u15e1\n\u0111\u0003\u0111\u0003\u0111\u0003\u0111", + "\u0003\u0111\u0005\u0111\u15e7\n\u0111\u0003\u0111\u0005\u0111\u15ea", + "\n\u0111\u0003\u0111\u0003\u0111\u0005\u0111\u15ee\n\u0111\u0003\u0111", + "\u0005\u0111\u15f1\n\u0111\u0003\u0111\u0005\u0111\u15f4\n\u0111\u0003", + "\u0111\u0003\u0111\u0005\u0111\u15f8\n\u0111\u0003\u0111\u0005\u0111", + "\u15fb\n\u0111\u0003\u0111\u0005\u0111\u15fe\n\u0111\u0003\u0111\u0003", + "\u0111\u0005\u0111\u1602\n\u0111\u0003\u0111\u0005\u0111\u1605\n\u0111", + "\u0003\u0111\u0005\u0111\u1608\n\u0111\u0003\u0111\u0005\u0111\u160b", + "\n\u0111\u0003\u0111\u0003\u0111\u0005\u0111\u160f\n\u0111\u0003\u0111", + "\u0005\u0111\u1612\n\u0111\u0003\u0111\u0005\u0111\u1615\n\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0005\u0111\u161a\n\u0111\u0003\u0111", + "\u0003\u0111\u0003\u0111\u0005\u0111\u161f\n\u0111\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0005\u0111\u1624\n\u0111\u0003\u0111\u0005\u0111", + "\u1627\n\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0005\u0111\u162c", + "\n\u0111\u0003\u0111\u0005\u0111\u162f\n\u0111\u0003\u0111\u0003\u0111", + "\u0003\u0111\u0005\u0111\u1634\n\u0111\u0003\u0111\u0005\u0111\u1637", + "\n\u0111\u0003\u0111\u0003\u0111\u0005\u0111\u163b\n\u0111\u0003\u0111", + "\u0003\u0111\u0005\u0111\u163f\n\u0111\u0003\u0112\u0003\u0112\u0003", + "\u0112\u0003\u0112\u0007\u0112\u1645\n\u0112\f\u0112\u000e\u0112\u1648", + "\u000b\u0112\u0003\u0112\u0003\u0112\u0003\u0113\u0003\u0113\u0005\u0113", + "\u164e\n\u0113\u0003\u0113\u0003\u0113\u0005\u0113\u1652\n\u0113\u0003", + "\u0113\u0003\u0113\u0003\u0113\u0005\u0113\u1657\n\u0113\u0003\u0113", + "\u0005\u0113\u165a\n\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0005", + "\u0113\u165f\n\u0113\u0003\u0113\u0003\u0113\u0005\u0113\u1663\n\u0113", + "\u0005\u0113\u1665\n\u0113\u0003\u0114\u0003\u0114\u0003\u0114\u0003", + "\u0114\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003", + "\u0115\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0005\u0116\u1675", + "\n\u0116\u0003\u0116\u0003\u0116\u0003\u0117\u0003\u0117\u0003\u0117", + "\u0007\u0117\u167c\n\u0117\f\u0117\u000e\u0117\u167f\u000b\u0117\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0007\u0118\u1684\n\u0118\f\u0118\u000e", + "\u0118\u1687\u000b\u0118\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119", + "\u0007\u0119\u168d\n\u0119\f\u0119\u000e\u0119\u1690\u000b\u0119\u0003", + "\u0119\u0003\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0007\u011a\u1697", + "\n\u011a\f\u011a\u000e\u011a\u169a\u000b\u011a\u0003\u011b\u0003\u011b", + "\u0003\u011b\u0007\u011b\u169f\n\u011b\f\u011b\u000e\u011b\u16a2\u000b", + "\u011b\u0003\u011c\u0003\u011c\u0003\u011c\u0007\u011c\u16a7\n\u011c", + "\f\u011c\u000e\u011c\u16aa\u000b\u011c\u0003\u011d\u0003\u011d\u0003", + "\u011d\u0007\u011d\u16af\n\u011d\f\u011d\u000e\u011d\u16b2\u000b\u011d", + "\u0003\u011e\u0003\u011e\u0003\u011e\u0007\u011e\u16b7\n\u011e\f\u011e", + "\u000e\u011e\u16ba\u000b\u011e\u0003\u011f\u0003\u011f\u0005\u011f\u16be", + "\n\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f", + "\u0005\u011f\u16c5\n\u011f\u0005\u011f\u16c7\n\u011f\u0003\u0120\u0003", + "\u0120\u0003\u0120\u0005\u0120\u16cc\n\u0120\u0003\u0120\u0005\u0120", + "\u16cf\n\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0005\u0120\u16d4", + "\n\u0120\u0003\u0120\u0005\u0120\u16d7\n\u0120\u0003\u0121\u0003\u0121", + "\u0005\u0121\u16db\n\u0121\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0124\u0003\u0124\u0003", + "\u0124\u0003\u0124\u0003\u0124\u0005\u0124\u16e9\n\u0124\u0003\u0124", + "\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0005\u0124\u16f0\n", + "\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0005\u0124\u16f5\n\u0124", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125", + "\u0006\u0125\u1715\n\u0125\r\u0125\u000e\u0125\u1716\u0003\u0125\u0003", + "\u0125\u0005\u0125\u171b\n\u0125\u0003\u0125\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0006\u0125\u1721\n\u0125\r\u0125\u000e\u0125\u1722\u0003", + "\u0125\u0003\u0125\u0005\u0125\u1727\n\u0125\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125", + "\u1730\n\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0005\u0125\u1738\n\u0125\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0005\u0125\u173d\n\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u1745\n\u0125", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u174a\n\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u174f\n\u0125\u0005\u0125", + "\u1751\n\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u175a\n\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0005\u0125\u175f\n\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u1767", + "\n\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u176c\n\u0125", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125", + "\u0005\u0125\u1774\n\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u177c\n\u0125\u0003\u0125", + "\u0005\u0125\u177f\n\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u1789", + "\n\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0005\u0125\u1794\n", + "\u0125\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003", + "\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0007\u0127\u179f\n\u0127", + "\f\u0127\u000e\u0127\u17a2\u000b\u0127\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0003\u0127\u0003\u0127\u0005\u0127\u17a9\n\u0127\u0003\u0128", + "\u0003\u0128\u0005\u0128\u17ad\n\u0128\u0003\u0129\u0003\u0129\u0003", + "\u0129\u0005\u0129\u17b2\n\u0129\u0003\u0129\u0003\u0129\u0003\u0129", + "\u0003\u0129\u0003\u0129\u0003\u0129\u0003\u0129\u0005\u0129\u17bb\n", + "\u0129\u0003\u0129\u0005\u0129\u17be\n\u0129\u0003\u0129\u0003\u0129", + "\u0003\u0129\u0003\u0129\u0003\u0129\u0003\u0129\u0003\u0129\u0003\u0129", + "\u0003\u0129\u0003\u0129\u0005\u0129\u17ca\n\u0129\u0003\u0129\u0003", + "\u0129\u0003\u0129\u0003\u0129\u0003\u0129\u0003\u0129\u0005\u0129\u17d2", + "\n\u0129\u0003\u0129\u0003\u0129\u0003\u0129\u0003\u0129\u0003\u0129", + "\u0003\u0129\u0007\u0129\u17da\n\u0129\f\u0129\u000e\u0129\u17dd\u000b", + "\u0129\u0005\u0129\u17df\n\u0129\u0003\u0129\u0003\u0129\u0005\u0129", + "\u17e3\n\u0129\u0003\u0129\u0003\u0129\u0005\u0129\u17e7\n\u0129\u0003", + "\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003", + "\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003", + "\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003", + "\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0005\u012a\u1800", + "\n\u012a\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b", + "\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0005\u012c\u180b\n", + "\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0005", + "\u012c\u1812\n\u012c\u0007\u012c\u1814\n\u012c\f\u012c\u000e\u012c\u1817", + "\u000b\u012c\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0005\u012d", + "\u181d\n\u012d\u0003\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003", + "\u012e\u0003\u012e\u0005\u012e\u1825\n\u012e\u0003\u012e\u0003\u012e", + "\u0003\u012e\u0005\u012e\u182a\n\u012e\u0003\u012e\u0003\u012e\u0003", + "\u012e\u0003\u012e\u0007\u012e\u1830\n\u012e\f\u012e\u000e\u012e\u1833", + "\u000b\u012e\u0003\u012f\u0003\u012f\u0003\u012f\u0005\u012f\u1838\n", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0005\u012f\u1842\n\u012f\u0003\u012f", + "\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f", + "\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0005\u012f\u184f\n", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0005\u012f\u1855", + "\n\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0005\u012f", + "\u185b\n\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0005\u012f\u186b\n\u012f", + "\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0005\u012f\u1871\n", + "\u012f\u0007\u012f\u1873\n\u012f\f\u012f\u000e\u012f\u1876\u000b\u012f", + "\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130", + "\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130", + "\u0003\u0130\u0003\u0130\u0007\u0130\u1886\n\u0130\f\u0130\u000e\u0130", + "\u1889\u000b\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0006\u0130\u1892\n\u0130\r\u0130\u000e", + "\u0130\u1893\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130", + "\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130", + "\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0005\u0130\u18a5\n", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0007", + "\u0130\u18b2\n\u0130\f\u0130\u000e\u0130\u18b5\u000b\u0130\u0003\u0131", + "\u0003\u0131\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132", + "\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132", + "\u0003\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u18c7\n\u0132\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0005\u0133\u18d0\n\u0133\u0003\u0134\u0003\u0134\u0003\u0134", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u18d9\n", + "\u0134\u0003\u0135\u0003\u0135\u0003\u0136\u0003\u0136\u0003\u0137\u0003", + "\u0137\u0003\u0138\u0003\u0138\u0003\u0139\u0003\u0139\u0003\u013a\u0003", + "\u013a\u0003\u013b\u0003\u013b\u0003\u013c\u0003\u013c\u0003\u013c\u0002", + "\u0005\u025a\u025c\u025e\u013d\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012", + "\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ", + "\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e", + "\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6", + "\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be", + "\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6", + "\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee", + "\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106", + "\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e", + "\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136", + "\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e", + "\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166", + "\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e", + "\u0180\u0182\u0184\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196", + "\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae", + "\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6", + "\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01de", + "\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f0\u01f2\u01f4\u01f6", + "\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e", + "\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226", + "\u0228\u022a\u022c\u022e\u0230\u0232\u0234\u0236\u0238\u023a\u023c\u023e", + "\u0240\u0242\u0244\u0246\u0248\u024a\u024c\u024e\u0250\u0252\u0254\u0256", + "\u0258\u025a\u025c\u025e\u0260\u0262\u0264\u0266\u0268\u026a\u026c\u026e", + "\u0270\u0272\u0274\u0276\u0002\u0080\u0004\u0002%%\u0089\u0089\u0004", + "\u0002\u01c5\u01c5\u01ca\u01ca\u0005\u0002@@\u0090\u0090\u00a5\u00a5", + "\u0005\u0002((\u0142\u0142\u0181\u0181\u0006\u0002((\u0162\u0162\u01c4", + "\u01c4\u020a\u020a\u0004\u0002\u01bb\u01bb\u040d\u040d\u0004\u0002H", + "H\u0081\u0081\u0004\u0002\u000f\u000f\u0112\u0112\u0005\u0002**NN\u00a8", + "\u00a8\u0004\u0002\u016f\u016f\u01dc\u01dc\u0005\u0002\u01b3\u01b3\u0230", + "\u0230\u0237\u0237\u0004\u0002\u0149\u0149\u0186\u0186\u0004\u0002\u0124", + "\u0124\u0194\u0194\u0004\u0002\u0122\u0122\u0178\u0178\u0005\u0002I", + "IMMrr\u0005\u0002((\u0153\u0153\u016d\u016d\u0005\u0002((\u014f\u014f", + "\u02ac\u02ac\u0004\u0002\u0224\u0224\u0245\u0245\u0004\u0002JJTT\u0005", + "\u0002\u0171\u0171\u01d3\u01d3\u020c\u020c\u0004\u0002@@\u0090\u0090", + "\u0003\u0002\u0128\u0129\u0003\u0002\u0403\u0404\u0004\u0002\u040d\u040d", + "\u0415\u0415\u0005\u0002\u016c\u016c\u018f\u018f\u01c2\u01c2\u0004\u0002", + "((\u0403\u0404\b\u0002((\u0135\u0135\u0137\u0137\u0153\u0153\u016d\u016d", + "\u01e9\u01e9\u0003\u0002\u0404\u0405\u0004\u0002\u0007\u000711\u0004", + "\u0002\u0185\u0185\u0246\u0246\u0004\u0002\r\r\u009f\u009f\u0004\u0002", + "\u00b0\u00b0\u0249\u0249\u0004\u0002\u0014\u0014\u0084\u0084\u0005\u0002", + "))FFaa\u0004\u0002aa\u0139\u0139\u0004\u0002\u0130\u0130\u0169\u0169", + "\u0004\u0002]]\u0202\u0202\u0004\u0002))aa\u0004\u0002\b\b//\u0004\u0002", + "\u00ac\u00ac\u0242\u0242\u0006\u0002\u016c\u016c\u018f\u018f\u01c1\u01c1", + "\u01df\u01df\u0004\u0002\u016c\u016c\u01c1\u01c1\u0004\u0002\u000e\u000e", + "++\u0005\u0002==HH\u00aa\u00aa\u0004\u0002!!LL\u0004\u0002YY\u0087\u0087", + "\u0004\u0002\b\b/0\u0003\u0002\u0219\u021a\u0004\u0002\u0174\u0174\u0208", + "\u0208\u0004\u0002\u00d2\u00d2\u0197\u0197\u0007\u0002bb\u019c\u019d", + "\u019f\u019f\u01a3\u01ab\u01eb\u01eb\u0006\u0002\u0199\u019a\u019e\u019e", + "\u01a0\u01a1\u01ec\u01ec\u0005\u0002cc\u0198\u0198\u01a2\u01a2\u0004", + "\u0002\u0188\u0188\u021b\u021b\u0004\u0002\u0215\u0215\u0217\u0217\u0004", + "\u0002\u011c\u011c\u021c\u021c\u0004\u0002SS\u01fa\u01fa\u0004\u0002", + "11\u0147\u0147\u0005\u0002\u001e\u001e88\u00a3\u00a3\u0005\u0002ww\u009c", + "\u009c\u0172\u0172\u0004\u0002__\u00a6\u00a6\u0004\u0002\u012c\u012c", + "\u020d\u020d\u0004\u0002&&\u0244\u0244\u0004\u0002ii\u0194\u0194\u0004", + "\u0002\u0165\u0165\u01e5\u01e5\u0006\u0002\u00be\u00be\u00c0\u00c0\u00c6", + "\u00c6\u0225\u0225\u0004\u0002\u03e4\u03e4\u03f5\u03f5\u0004\u0002\u011d", + "\u011d\u01ed\u01ed\u0004\u0002??II\b\u0002ww\u009c\u009c\u00a1\u00a1", + "\u015e\u015e\u0172\u0172\u0244\u0244\u0004\u0002\u01ba\u01ba\u0221\u0221", + "\u0004\u0002\u015b\u015b\u0248\u0248\u0004\u0002ww\u0172\u0172\u0005", + "\u0002JJUU\u017f\u017f\u0005\u0002\u0174\u0174\u0194\u0194\u0208\u0208", + "\u0004\u0002\u0221\u0221\u0243\u0243\u0004\u0002\u013a\u013a\u01e4\u01e4", + "\b\u0002\u00d2\u00d2\u0158\u0158\u015a\u015a\u0173\u0173\u01ea\u01ea", + "\u020e\u020e\u0004\u0002+,99\u0005\u0002\u0165\u0165\u01d5\u01d5\u0308", + "\u0308\u0004\u0002\u018c\u018c\u0232\u0232\f\u0002\u012b\u012b\u0132", + "\u0132\u013c\u013e\u0144\u0144\u01b4\u01b4\u01bc\u01bc\u0226\u0226\u022d", + "\u022d\u02d8\u02d8\u037e\u037e\u0004\u0002\"\"\u0099\u0099\u0004\u0002", + "kk\u0376\u0376\r\u0002\u012b\u012b\u0132\u0132\u013c\u013e\u0144\u0144", + "\u01b4\u01b4\u01bc\u01bc\u01fb\u01fb\u0226\u0226\u022d\u022d\u02d8\u02d8", + "\u037e\u037e\u0005\u0002\u040d\u040d\u0415\u0415\u0417\u0417\u0003\u0002", + "\u0418\u0419\u0005\u0002\u02a7\u02b2\u040d\u040d\u0415\u0416\u0004\u0002", + "\u0403\u0405\u040e\u040e\u0004\u0002::\u00a2\u00a2\u0004\u0002jj\u0411", + "\u0411\u0007\u0002\u0018\u0018\u00ce\u00d0\u00d7\u00d7\u00d9\u00dc\u01bf", + "\u01bf\u0004\u0002\u0018\u0018\u00cf\u00cf\u0004\u0002\u0018\u0018\u00ce", + "\u00ce\u0003\u0002\u00b4\u00bf\u0004\u0002\u00a7\u00a7\u020b\u020b\u0004", + "\u0002\u00c3\u00c8\u016d\u016d\u0007\u0002\u00c9\u00c9\u00d4\u00d6\u00d8", + "\u00d8\u00df\u00df\u0120\u0121\u0005\u0002\u00ca\u00cd\u00d2\u00d3\u011e", + "\u011e\u0004\u0002\u008c\u008c\u00dd\u00dd\u0004\u0002\u018c\u018c\u02b7", + "\u02bf\u0004\u0002\u00d2\u00d2\u01bf\u01bf\u0005\u0002\u00c9\u00ca\u00cc", + "\u00cc\u018c\u018c\u0004\u0002\u00ff\u0100\u0106\u0106\u0004\u0002#", + "#\u00fd\u0100\u0003\u0002\u0109\u010a\u0005\u0002\u0011\u0011WW\u00a0", + "\u00a0\u0004\u0002\u00ce\u00ce\u00d2\u00d2\u0004\u0002\u00c9\u00ca\u00cc", + "\u00cc\u0005\u0002\u000e\u000e++\u0374\u0374\u0005\u0002\u00ed\u00ed", + "\u00f3\u00f4\u00f9\u00f9\u0005\u0002\u00ee\u00f0\u00f5\u00f8\u00fa\u00fc", + "\u0004\u0002\u01c8\u01c8\u01d6\u01d6\u0004\u0002hh\u03f8\u03f8\u0005", + "\u0002::\u00a2\u00a2\u023b\u023b\u0004\u0002}}\u0088\u0088\u0005\u0002", + "\b\b\u0115\u0115\u0211\u0211\u0006\u0002hh\u03f0\u03f0\u03f2\u03f2\u03f8", + "\u03f9\u0003\u0002\u03ed\u03f4\u0003\u0002\u027f\u02a6\u0003\u0002\u02b3", + "\u02b6\u0003\u0002\u025c\u0264\u0003\u0002\u0254\u025b\u0005\u0002\u00c9", + "\u00cd\u00da\u00da\u00dd\u00dd\u0010\u0002\"\"..kk\u0099\u0099\u00df", + "\u00df\u0110\u0184\u0186\u0223\u0225\u0244\u0247\u024e\u0253\u0253\u0266", + "\u027e\u02ac\u02ac\u02d8\u02d8\u037e\u037e\u0012\u0002%%YY\u0087\u0087", + "\u00c9\u00cb\u00cd\u00cd\u00eb\u00ec\u00f1\u00f1\u0108\u0108\u0185\u0185", + "\u0246\u0246\u0254\u025b\u0278\u0278\u02b7\u02b7\u02ba\u02d7\u02d9\u037d", + "\u037f\u03e3\u0002\u1d4d\u0002\u0279\u0003\u0002\u0002\u0002\u0004\u028a", + "\u0003\u0002\u0002\u0002\u0006\u029e\u0003\u0002\u0002\u0002\b\u02a0", + "\u0003\u0002\u0002\u0002\n\u02c5\u0003\u0002\u0002\u0002\f\u02d1\u0003", + "\u0002\u0002\u0002\u000e\u02dc\u0003\u0002\u0002\u0002\u0010\u02ed\u0003", + "\u0002\u0002\u0002\u0012\u02f2\u0003\u0002\u0002\u0002\u0014\u02fe\u0003", + "\u0002\u0002\u0002\u0016\u0319\u0003\u0002\u0002\u0002\u0018\u0322\u0003", + "\u0002\u0002\u0002\u001a\u0324\u0003\u0002\u0002\u0002\u001c\u0330\u0003", + "\u0002\u0002\u0002\u001e\u034e\u0003\u0002\u0002\u0002 \u0372\u0003", + "\u0002\u0002\u0002\"\u03a5\u0003\u0002\u0002\u0002$\u03bf\u0003\u0002", + "\u0002\u0002&\u03dd\u0003\u0002\u0002\u0002(\u043e\u0003\u0002\u0002", + "\u0002*\u0440\u0003\u0002\u0002\u0002,\u0452\u0003\u0002\u0002\u0002", + ".\u048f\u0003\u0002\u0002\u00020\u04a2\u0003\u0002\u0002\u00022\u04dd", + "\u0003\u0002\u0002\u00024\u04df\u0003\u0002\u0002\u00026\u050b\u0003", + "\u0002\u0002\u00028\u0511\u0003\u0002\u0002\u0002:\u0513\u0003\u0002", + "\u0002\u0002<\u0528\u0003\u0002\u0002\u0002>\u052f\u0003\u0002\u0002", + "\u0002@\u0531\u0003\u0002\u0002\u0002B\u0541\u0003\u0002\u0002\u0002", + "D\u0544\u0003\u0002\u0002\u0002F\u0549\u0003\u0002\u0002\u0002H\u0563", + "\u0003\u0002\u0002\u0002J\u0573\u0003\u0002\u0002\u0002L\u0575\u0003", + "\u0002\u0002\u0002N\u0585\u0003\u0002\u0002\u0002P\u0587\u0003\u0002", + "\u0002\u0002R\u05c1\u0003\u0002\u0002\u0002T\u0608\u0003\u0002\u0002", + "\u0002V\u060a\u0003\u0002\u0002\u0002X\u0626\u0003\u0002\u0002\u0002", + "Z\u062e\u0003\u0002\u0002\u0002\\\u064c\u0003\u0002\u0002\u0002^\u06de", + "\u0003\u0002\u0002\u0002`\u06e0\u0003\u0002\u0002\u0002b\u06e3\u0003", + "\u0002\u0002\u0002d\u072d\u0003\u0002\u0002\u0002f\u0744\u0003\u0002", + "\u0002\u0002h\u07c9\u0003\u0002\u0002\u0002j\u07ce\u0003\u0002\u0002", + "\u0002l\u07d0\u0003\u0002\u0002\u0002n\u07da\u0003\u0002\u0002\u0002", + "p\u080f\u0003\u0002\u0002\u0002r\u0823\u0003\u0002\u0002\u0002t\u0825", + "\u0003\u0002\u0002\u0002v\u0848\u0003\u0002\u0002\u0002x\u0851\u0003", + "\u0002\u0002\u0002z\u0858\u0003\u0002\u0002\u0002|\u086f\u0003\u0002", + "\u0002\u0002~\u0878\u0003\u0002\u0002\u0002\u0080\u0887\u0003\u0002", + "\u0002\u0002\u0082\u089d\u0003\u0002\u0002\u0002\u0084\u08b1\u0003\u0002", + "\u0002\u0002\u0086\u0a3c\u0003\u0002\u0002\u0002\u0088\u0a3e\u0003\u0002", + "\u0002\u0002\u008a\u0a45\u0003\u0002\u0002\u0002\u008c\u0a4c\u0003\u0002", + "\u0002\u0002\u008e\u0a63\u0003\u0002\u0002\u0002\u0090\u0a6b\u0003\u0002", + "\u0002\u0002\u0092\u0a72\u0003\u0002\u0002\u0002\u0094\u0a79\u0003\u0002", + "\u0002\u0002\u0096\u0a80\u0003\u0002\u0002\u0002\u0098\u0a8c\u0003\u0002", + "\u0002\u0002\u009a\u0a96\u0003\u0002\u0002\u0002\u009c\u0a9d\u0003\u0002", + "\u0002\u0002\u009e\u0aad\u0003\u0002\u0002\u0002\u00a0\u0ab7\u0003\u0002", + "\u0002\u0002\u00a2\u0abb\u0003\u0002\u0002\u0002\u00a4\u0ac1\u0003\u0002", + "\u0002\u0002\u00a6\u0acd\u0003\u0002\u0002\u0002\u00a8\u0acf\u0003\u0002", + "\u0002\u0002\u00aa\u0ad6\u0003\u0002\u0002\u0002\u00ac\u0ad8\u0003\u0002", + "\u0002\u0002\u00ae\u0b0b\u0003\u0002\u0002\u0002\u00b0\u0b55\u0003\u0002", + "\u0002\u0002\u00b2\u0b90\u0003\u0002\u0002\u0002\u00b4\u0be8\u0003\u0002", + "\u0002\u0002\u00b6\u0bec\u0003\u0002\u0002\u0002\u00b8\u0c00\u0003\u0002", + "\u0002\u0002\u00ba\u0c02\u0003\u0002\u0002\u0002\u00bc\u0c0a\u0003\u0002", + "\u0002\u0002\u00be\u0c12\u0003\u0002\u0002\u0002\u00c0\u0c14\u0003\u0002", + "\u0002\u0002\u00c2\u0c32\u0003\u0002\u0002\u0002\u00c4\u0c69\u0003\u0002", + "\u0002\u0002\u00c6\u0c72\u0003\u0002\u0002\u0002\u00c8\u0c86\u0003\u0002", + "\u0002\u0002\u00ca\u0c92\u0003\u0002\u0002\u0002\u00cc\u0c96\u0003\u0002", + "\u0002\u0002\u00ce\u0cb7\u0003\u0002\u0002\u0002\u00d0\u0ccc\u0003\u0002", + "\u0002\u0002\u00d2\u0cd6\u0003\u0002\u0002\u0002\u00d4\u0cda\u0003\u0002", + "\u0002\u0002\u00d6\u0cf3\u0003\u0002\u0002\u0002\u00d8\u0d1d\u0003\u0002", + "\u0002\u0002\u00da\u0d1f\u0003\u0002\u0002\u0002\u00dc\u0d2e\u0003\u0002", + "\u0002\u0002\u00de\u0d5c\u0003\u0002\u0002\u0002\u00e0\u0d66\u0003\u0002", + "\u0002\u0002\u00e2\u0d70\u0003\u0002\u0002\u0002\u00e4\u0d9a\u0003\u0002", + "\u0002\u0002\u00e6\u0d9c\u0003\u0002\u0002\u0002\u00e8\u0dad\u0003\u0002", + "\u0002\u0002\u00ea\u0db3\u0003\u0002\u0002\u0002\u00ec\u0dc3\u0003\u0002", + "\u0002\u0002\u00ee\u0dc7\u0003\u0002\u0002\u0002\u00f0\u0ded\u0003\u0002", + "\u0002\u0002\u00f2\u0e13\u0003\u0002\u0002\u0002\u00f4\u0e21\u0003\u0002", + "\u0002\u0002\u00f6\u0e29\u0003\u0002\u0002\u0002\u00f8\u0e2b\u0003\u0002", + "\u0002\u0002\u00fa\u0e45\u0003\u0002\u0002\u0002\u00fc\u0e49\u0003\u0002", + "\u0002\u0002\u00fe\u0e58\u0003\u0002\u0002\u0002\u0100\u0e5a\u0003\u0002", + "\u0002\u0002\u0102\u0e66\u0003\u0002\u0002\u0002\u0104\u0e6a\u0003\u0002", + "\u0002\u0002\u0106\u0e7b\u0003\u0002\u0002\u0002\u0108\u0e8c\u0003\u0002", + "\u0002\u0002\u010a\u0e8f\u0003\u0002\u0002\u0002\u010c\u0e99\u0003\u0002", + "\u0002\u0002\u010e\u0e9d\u0003\u0002\u0002\u0002\u0110\u0ea7\u0003\u0002", + "\u0002\u0002\u0112\u0eaa\u0003\u0002\u0002\u0002\u0114\u0eaf\u0003\u0002", + "\u0002\u0002\u0116\u0ec3\u0003\u0002\u0002\u0002\u0118\u0ec5\u0003\u0002", + "\u0002\u0002\u011a\u0ed6\u0003\u0002\u0002\u0002\u011c\u0edf\u0003\u0002", + "\u0002\u0002\u011e\u0ee8\u0003\u0002\u0002\u0002\u0120\u0eea\u0003\u0002", + "\u0002\u0002\u0122\u0ef8\u0003\u0002\u0002\u0002\u0124\u0f03\u0003\u0002", + "\u0002\u0002\u0126\u0f0c\u0003\u0002\u0002\u0002\u0128\u0f0f\u0003\u0002", + "\u0002\u0002\u012a\u0f17\u0003\u0002\u0002\u0002\u012c\u0f30\u0003\u0002", + "\u0002\u0002\u012e\u0f3c\u0003\u0002\u0002\u0002\u0130\u0f3f\u0003\u0002", + "\u0002\u0002\u0132\u0f5f\u0003\u0002\u0002\u0002\u0134\u0f61\u0003\u0002", + "\u0002\u0002\u0136\u0f63\u0003\u0002\u0002\u0002\u0138\u0f65\u0003\u0002", + "\u0002\u0002\u013a\u0f67\u0003\u0002\u0002\u0002\u013c\u0f9c\u0003\u0002", + "\u0002\u0002\u013e\u0f9e\u0003\u0002\u0002\u0002\u0140\u0fa4\u0003\u0002", + "\u0002\u0002\u0142\u0fb8\u0003\u0002\u0002\u0002\u0144\u0fc6\u0003\u0002", + "\u0002\u0002\u0146\u0fd1\u0003\u0002\u0002\u0002\u0148\u0fd3\u0003\u0002", + "\u0002\u0002\u014a\u0fd9\u0003\u0002\u0002\u0002\u014c\u0fe3\u0003\u0002", + "\u0002\u0002\u014e\u0fe7\u0003\u0002\u0002\u0002\u0150\u0fee\u0003\u0002", + "\u0002\u0002\u0152\u0ff2\u0003\u0002\u0002\u0002\u0154\u0ff8\u0003\u0002", + "\u0002\u0002\u0156\u0fff\u0003\u0002\u0002\u0002\u0158\u1005\u0003\u0002", + "\u0002\u0002\u015a\u100b\u0003\u0002\u0002\u0002\u015c\u1010\u0003\u0002", + "\u0002\u0002\u015e\u103f\u0003\u0002\u0002\u0002\u0160\u1054\u0003\u0002", + "\u0002\u0002\u0162\u106d\u0003\u0002\u0002\u0002\u0164\u1070\u0003\u0002", + "\u0002\u0002\u0166\u1076\u0003\u0002\u0002\u0002\u0168\u1086\u0003\u0002", + "\u0002\u0002\u016a\u1095\u0003\u0002\u0002\u0002\u016c\u109b\u0003\u0002", + "\u0002\u0002\u016e\u10b9\u0003\u0002\u0002\u0002\u0170\u10bb\u0003\u0002", + "\u0002\u0002\u0172\u10c2\u0003\u0002\u0002\u0002\u0174\u10ce\u0003\u0002", + "\u0002\u0002\u0176\u10d4\u0003\u0002\u0002\u0002\u0178\u10ed\u0003\u0002", + "\u0002\u0002\u017a\u10f1\u0003\u0002\u0002\u0002\u017c\u10f5\u0003\u0002", + "\u0002\u0002\u017e\u1100\u0003\u0002\u0002\u0002\u0180\u113e\u0003\u0002", + "\u0002\u0002\u0182\u1176\u0003\u0002\u0002\u0002\u0184\u1178\u0003\u0002", + "\u0002\u0002\u0186\u1185\u0003\u0002\u0002\u0002\u0188\u11b7\u0003\u0002", + "\u0002\u0002\u018a\u11c9\u0003\u0002\u0002\u0002\u018c\u11fb\u0003\u0002", + "\u0002\u0002\u018e\u11fd\u0003\u0002\u0002\u0002\u0190\u120a\u0003\u0002", + "\u0002\u0002\u0192\u1215\u0003\u0002\u0002\u0002\u0194\u1230\u0003\u0002", + "\u0002\u0002\u0196\u123a\u0003\u0002\u0002\u0002\u0198\u1244\u0003\u0002", + "\u0002\u0002\u019a\u1246\u0003\u0002\u0002\u0002\u019c\u1250\u0003\u0002", + "\u0002\u0002\u019e\u1253\u0003\u0002\u0002\u0002\u01a0\u12a1\u0003\u0002", + "\u0002\u0002\u01a2\u12b3\u0003\u0002\u0002\u0002\u01a4\u12b5\u0003\u0002", + "\u0002\u0002\u01a6\u12b9\u0003\u0002\u0002\u0002\u01a8\u12c0\u0003\u0002", + "\u0002\u0002\u01aa\u12c9\u0003\u0002\u0002\u0002\u01ac\u12cf\u0003\u0002", + "\u0002\u0002\u01ae\u12d6\u0003\u0002\u0002\u0002\u01b0\u12ec\u0003\u0002", + "\u0002\u0002\u01b2\u12ee\u0003\u0002\u0002\u0002\u01b4\u12f9\u0003\u0002", + "\u0002\u0002\u01b6\u12ff\u0003\u0002\u0002\u0002\u01b8\u1336\u0003\u0002", + "\u0002\u0002\u01ba\u13cf\u0003\u0002\u0002\u0002\u01bc\u13db\u0003\u0002", + "\u0002\u0002\u01be\u13ea\u0003\u0002\u0002\u0002\u01c0\u13f0\u0003\u0002", + "\u0002\u0002\u01c2\u1403\u0003\u0002\u0002\u0002\u01c4\u140d\u0003\u0002", + "\u0002\u0002\u01c6\u141b\u0003\u0002\u0002\u0002\u01c8\u141d\u0003\u0002", + "\u0002\u0002\u01ca\u1420\u0003\u0002\u0002\u0002\u01cc\u1436\u0003\u0002", + "\u0002\u0002\u01ce\u1442\u0003\u0002\u0002\u0002\u01d0\u144b\u0003\u0002", + "\u0002\u0002\u01d2\u1457\u0003\u0002\u0002\u0002\u01d4\u145b\u0003\u0002", + "\u0002\u0002\u01d6\u145d\u0003\u0002\u0002\u0002\u01d8\u1485\u0003\u0002", + "\u0002\u0002\u01da\u148c\u0003\u0002\u0002\u0002\u01dc\u148e\u0003\u0002", + "\u0002\u0002\u01de\u14a5\u0003\u0002\u0002\u0002\u01e0\u14ab\u0003\u0002", + "\u0002\u0002\u01e2\u14b3\u0003\u0002\u0002\u0002\u01e4\u14b6\u0003\u0002", + "\u0002\u0002\u01e6\u14b9\u0003\u0002\u0002\u0002\u01e8\u14ce\u0003\u0002", + "\u0002\u0002\u01ea\u14e3\u0003\u0002\u0002\u0002\u01ec\u14e9\u0003\u0002", + "\u0002\u0002\u01ee\u150f\u0003\u0002\u0002\u0002\u01f0\u151b\u0003\u0002", + "\u0002\u0002\u01f2\u151d\u0003\u0002\u0002\u0002\u01f4\u1523\u0003\u0002", + "\u0002\u0002\u01f6\u1525\u0003\u0002\u0002\u0002\u01f8\u152e\u0003\u0002", + "\u0002\u0002\u01fa\u1539\u0003\u0002\u0002\u0002\u01fc\u153b\u0003\u0002", + "\u0002\u0002\u01fe\u1541\u0003\u0002\u0002\u0002\u0200\u1545\u0003\u0002", + "\u0002\u0002\u0202\u1547\u0003\u0002\u0002\u0002\u0204\u1549\u0003\u0002", + "\u0002\u0002\u0206\u155b\u0003\u0002\u0002\u0002\u0208\u156b\u0003\u0002", + "\u0002\u0002\u020a\u156f\u0003\u0002\u0002\u0002\u020c\u1574\u0003\u0002", + "\u0002\u0002\u020e\u157f\u0003\u0002\u0002\u0002\u0210\u1584\u0003\u0002", + "\u0002\u0002\u0212\u1586\u0003\u0002\u0002\u0002\u0214\u158a\u0003\u0002", + "\u0002\u0002\u0216\u15a3\u0003\u0002\u0002\u0002\u0218\u15a5\u0003\u0002", + "\u0002\u0002\u021a\u15a8\u0003\u0002\u0002\u0002\u021c\u15ad\u0003\u0002", + "\u0002\u0002\u021e\u15bd\u0003\u0002\u0002\u0002\u0220\u163e\u0003\u0002", + "\u0002\u0002\u0222\u1640\u0003\u0002\u0002\u0002\u0224\u1664\u0003\u0002", + "\u0002\u0002\u0226\u1666\u0003\u0002\u0002\u0002\u0228\u166a\u0003\u0002", + "\u0002\u0002\u022a\u1670\u0003\u0002\u0002\u0002\u022c\u1678\u0003\u0002", + "\u0002\u0002\u022e\u1680\u0003\u0002\u0002\u0002\u0230\u1688\u0003\u0002", + "\u0002\u0002\u0232\u1693\u0003\u0002\u0002\u0002\u0234\u169b\u0003\u0002", + "\u0002\u0002\u0236\u16a3\u0003\u0002\u0002\u0002\u0238\u16ab\u0003\u0002", + "\u0002\u0002\u023a\u16b3\u0003\u0002\u0002\u0002\u023c\u16c6\u0003\u0002", + "\u0002\u0002\u023e\u16d6\u0003\u0002\u0002\u0002\u0240\u16da\u0003\u0002", + "\u0002\u0002\u0242\u16dc\u0003\u0002\u0002\u0002\u0244\u16df\u0003\u0002", + "\u0002\u0002\u0246\u16f4\u0003\u0002\u0002\u0002\u0248\u1793\u0003\u0002", + "\u0002\u0002\u024a\u1795\u0003\u0002\u0002\u0002\u024c\u17a8\u0003\u0002", + "\u0002\u0002\u024e\u17aa\u0003\u0002\u0002\u0002\u0250\u17e6\u0003\u0002", + "\u0002\u0002\u0252\u17ff\u0003\u0002\u0002\u0002\u0254\u1801\u0003\u0002", + "\u0002\u0002\u0256\u180a\u0003\u0002\u0002\u0002\u0258\u181c\u0003\u0002", + "\u0002\u0002\u025a\u1829\u0003\u0002\u0002\u0002\u025c\u1834\u0003\u0002", + "\u0002\u0002\u025e\u18a4\u0003\u0002\u0002\u0002\u0260\u18b6\u0003\u0002", + "\u0002\u0002\u0262\u18c6\u0003\u0002\u0002\u0002\u0264\u18cf\u0003\u0002", + "\u0002\u0002\u0266\u18d8\u0003\u0002\u0002\u0002\u0268\u18da\u0003\u0002", + "\u0002\u0002\u026a\u18dc\u0003\u0002\u0002\u0002\u026c\u18de\u0003\u0002", + "\u0002\u0002\u026e\u18e0\u0003\u0002\u0002\u0002\u0270\u18e2\u0003\u0002", + "\u0002\u0002\u0272\u18e4\u0003\u0002\u0002\u0002\u0274\u18e6\u0003\u0002", + "\u0002\u0002\u0276\u18e8\u0003\u0002\u0002\u0002\u0278\u027a\u0005\u0004", + "\u0003\u0002\u0279\u0278\u0003\u0002\u0002\u0002\u0279\u027a\u0003\u0002", + "\u0002\u0002\u027a\u027c\u0003\u0002\u0002\u0002\u027b\u027d\u0007\u03f1", + "\u0002\u0002\u027c\u027b\u0003\u0002\u0002\u0002\u027c\u027d\u0003\u0002", + "\u0002\u0002\u027d\u027e\u0003\u0002\u0002\u0002\u027e\u027f\u0007\u0002", + "\u0002\u0003\u027f\u0003\u0003\u0002\u0002\u0002\u0280\u0282\u0005\u0006", + "\u0004\u0002\u0281\u0283\u0007\u03f1\u0002\u0002\u0282\u0281\u0003\u0002", + "\u0002\u0002\u0282\u0283\u0003\u0002\u0002\u0002\u0283\u0285\u0003\u0002", + "\u0002\u0002\u0284\u0286\u0007\u0401\u0002\u0002\u0285\u0284\u0003\u0002", + "\u0002\u0002\u0285\u0286\u0003\u0002\u0002\u0002\u0286\u0289\u0003\u0002", + "\u0002\u0002\u0287\u0289\u0005\b\u0005\u0002\u0288\u0280\u0003\u0002", + "\u0002\u0002\u0288\u0287\u0003\u0002\u0002\u0002\u0289\u028c\u0003\u0002", + "\u0002\u0002\u028a\u0288\u0003\u0002\u0002\u0002\u028a\u028b\u0003\u0002", + "\u0002\u0002\u028b\u0295\u0003\u0002\u0002\u0002\u028c\u028a\u0003\u0002", + "\u0002\u0002\u028d\u0292\u0005\u0006\u0004\u0002\u028e\u0290\u0007\u03f1", + "\u0002\u0002\u028f\u028e\u0003\u0002\u0002\u0002\u028f\u0290\u0003\u0002", + "\u0002\u0002\u0290\u0291\u0003\u0002\u0002\u0002\u0291\u0293\u0007\u0401", + "\u0002\u0002\u0292\u028f\u0003\u0002\u0002\u0002\u0292\u0293\u0003\u0002", + "\u0002\u0002\u0293\u0296\u0003\u0002\u0002\u0002\u0294\u0296\u0005\b", + "\u0005\u0002\u0295\u028d\u0003\u0002\u0002\u0002\u0295\u0294\u0003\u0002", + "\u0002\u0002\u0296\u0005\u0003\u0002\u0002\u0002\u0297\u029f\u0005\n", + "\u0006\u0002\u0298\u029f\u0005\f\u0007\u0002\u0299\u029f\u0005\u000e", + "\b\u0002\u029a\u029f\u0005\u0010\t\u0002\u029b\u029f\u0005\u0012\n\u0002", + "\u029c\u029f\u0005\u0016\f\u0002\u029d\u029f\u0005\u0018\r\u0002\u029e", + "\u0297\u0003\u0002\u0002\u0002\u029e\u0298\u0003\u0002\u0002\u0002\u029e", + "\u0299\u0003\u0002\u0002\u0002\u029e\u029a\u0003\u0002\u0002\u0002\u029e", + "\u029b\u0003\u0002\u0002\u0002\u029e\u029c\u0003\u0002\u0002\u0002\u029e", + "\u029d\u0003\u0002\u0002\u0002\u029f\u0007\u0003\u0002\u0002\u0002\u02a0", + "\u02a1\u0007\u0401\u0002\u0002\u02a1\t\u0003\u0002\u0002\u0002\u02a2", + "\u02c6\u0005\u001a\u000e\u0002\u02a3\u02c6\u0005\u001c\u000f\u0002\u02a4", + "\u02c6\u0005\u001e\u0010\u0002\u02a5\u02c6\u0005 \u0011\u0002\u02a6", + "\u02c6\u0005\"\u0012\u0002\u02a7\u02c6\u0005$\u0013\u0002\u02a8\u02c6", + "\u0005&\u0014\u0002\u02a9\u02c6\u0005(\u0015\u0002\u02aa\u02c6\u0005", + "*\u0016\u0002\u02ab\u02c6\u0005,\u0017\u0002\u02ac\u02c6\u0005.\u0018", + "\u0002\u02ad\u02c6\u00050\u0019\u0002\u02ae\u02c6\u0005r:\u0002\u02af", + "\u02c6\u0005t;\u0002\u02b0\u02c6\u0005v<\u0002\u02b1\u02c6\u0005x=\u0002", + "\u02b2\u02c6\u0005z>\u0002\u02b3\u02c6\u0005|?\u0002\u02b4\u02c6\u0005", + "~@\u0002\u02b5\u02c6\u0005\u0080A\u0002\u02b6\u02c6\u0005\u0082B\u0002", + "\u02b7\u02c6\u0005\u0084C\u0002\u02b8\u02c6\u0005\u0088E\u0002\u02b9", + "\u02c6\u0005\u008aF\u0002\u02ba\u02c6\u0005\u008cG\u0002\u02bb\u02c6", + "\u0005\u008eH\u0002\u02bc\u02c6\u0005\u0090I\u0002\u02bd\u02c6\u0005", + "\u0092J\u0002\u02be\u02c6\u0005\u0094K\u0002\u02bf\u02c6\u0005\u0096", + "L\u0002\u02c0\u02c6\u0005\u0098M\u0002\u02c1\u02c6\u0005\u009aN\u0002", + "\u02c2\u02c6\u0005\u009cO\u0002\u02c3\u02c6\u0005\u009eP\u0002\u02c4", + "\u02c6\u0005\u00a2R\u0002\u02c5\u02a2\u0003\u0002\u0002\u0002\u02c5", + "\u02a3\u0003\u0002\u0002\u0002\u02c5\u02a4\u0003\u0002\u0002\u0002\u02c5", + "\u02a5\u0003\u0002\u0002\u0002\u02c5\u02a6\u0003\u0002\u0002\u0002\u02c5", + "\u02a7\u0003\u0002\u0002\u0002\u02c5\u02a8\u0003\u0002\u0002\u0002\u02c5", + "\u02a9\u0003\u0002\u0002\u0002\u02c5\u02aa\u0003\u0002\u0002\u0002\u02c5", + "\u02ab\u0003\u0002\u0002\u0002\u02c5\u02ac\u0003\u0002\u0002\u0002\u02c5", + "\u02ad\u0003\u0002\u0002\u0002\u02c5\u02ae\u0003\u0002\u0002\u0002\u02c5", + "\u02af\u0003\u0002\u0002\u0002\u02c5\u02b0\u0003\u0002\u0002\u0002\u02c5", + "\u02b1\u0003\u0002\u0002\u0002\u02c5\u02b2\u0003\u0002\u0002\u0002\u02c5", + "\u02b3\u0003\u0002\u0002\u0002\u02c5\u02b4\u0003\u0002\u0002\u0002\u02c5", + "\u02b5\u0003\u0002\u0002\u0002\u02c5\u02b6\u0003\u0002\u0002\u0002\u02c5", + "\u02b7\u0003\u0002\u0002\u0002\u02c5\u02b8\u0003\u0002\u0002\u0002\u02c5", + "\u02b9\u0003\u0002\u0002\u0002\u02c5\u02ba\u0003\u0002\u0002\u0002\u02c5", + "\u02bb\u0003\u0002\u0002\u0002\u02c5\u02bc\u0003\u0002\u0002\u0002\u02c5", + "\u02bd\u0003\u0002\u0002\u0002\u02c5\u02be\u0003\u0002\u0002\u0002\u02c5", + "\u02bf\u0003\u0002\u0002\u0002\u02c5\u02c0\u0003\u0002\u0002\u0002\u02c5", + "\u02c1\u0003\u0002\u0002\u0002\u02c5\u02c2\u0003\u0002\u0002\u0002\u02c5", + "\u02c3\u0003\u0002\u0002\u0002\u02c5\u02c4\u0003\u0002\u0002\u0002\u02c6", + "\u000b\u0003\u0002\u0002\u0002\u02c7\u02d2\u0005\u00b4[\u0002\u02c8", + "\u02d2\u0005\u00acW\u0002\u02c9\u02d2\u0005\u00b6\\\u0002\u02ca\u02d2", + "\u0005\u00a6T\u0002\u02cb\u02d2\u0005\u00b2Z\u0002\u02cc\u02d2\u0005", + "\u00a4S\u0002\u02cd\u02d2\u0005\u00aeX\u0002\u02ce\u02d2\u0005\u00b0", + "Y\u0002\u02cf\u02d2\u0005\u00a8U\u0002\u02d0\u02d2\u0005\u00aaV\u0002", + "\u02d1\u02c7\u0003\u0002\u0002\u0002\u02d1\u02c8\u0003\u0002\u0002\u0002", + "\u02d1\u02c9\u0003\u0002\u0002\u0002\u02d1\u02ca\u0003\u0002\u0002\u0002", + "\u02d1\u02cb\u0003\u0002\u0002\u0002\u02d1\u02cc\u0003\u0002\u0002\u0002", + "\u02d1\u02cd\u0003\u0002\u0002\u0002\u02d1\u02ce\u0003\u0002\u0002\u0002", + "\u02d1\u02cf\u0003\u0002\u0002\u0002\u02d1\u02d0\u0003\u0002\u0002\u0002", + "\u02d2\r\u0003\u0002\u0002\u0002\u02d3\u02dd\u0005\u0100\u0081\u0002", + "\u02d4\u02dd\u0005\u0102\u0082\u0002\u02d5\u02dd\u0005\u0104\u0083\u0002", + "\u02d6\u02dd\u0005\u0106\u0084\u0002\u02d7\u02dd\u0005\u0108\u0085\u0002", + "\u02d8\u02dd\u0005\u010a\u0086\u0002\u02d9\u02dd\u0005\u010c\u0087\u0002", + "\u02da\u02dd\u0005\u010e\u0088\u0002\u02db\u02dd\u0005\u0110\u0089\u0002", + "\u02dc\u02d3\u0003\u0002\u0002\u0002\u02dc\u02d4\u0003\u0002\u0002\u0002", + "\u02dc\u02d5\u0003\u0002\u0002\u0002\u02dc\u02d6\u0003\u0002\u0002\u0002", + "\u02dc\u02d7\u0003\u0002\u0002\u0002\u02dc\u02d8\u0003\u0002\u0002\u0002", + "\u02dc\u02d9\u0003\u0002\u0002\u0002\u02dc\u02da\u0003\u0002\u0002\u0002", + "\u02dc\u02db\u0003\u0002\u0002\u0002\u02dd\u000f\u0003\u0002\u0002\u0002", + "\u02de\u02ee\u0005\u0120\u0091\u0002\u02df\u02ee\u0005\u0122\u0092\u0002", + "\u02e0\u02ee\u0005\u0124\u0093\u0002\u02e1\u02ee\u0005\u0126\u0094\u0002", + "\u02e2\u02ee\u0005\u0128\u0095\u0002\u02e3\u02ee\u0005\u012a\u0096\u0002", + "\u02e4\u02ee\u0005\u012c\u0097\u0002\u02e5\u02ee\u0005\u012e\u0098\u0002", + "\u02e6\u02ee\u0005\u0130\u0099\u0002\u02e7\u02ee\u0005\u0148\u00a5\u0002", + "\u02e8\u02ee\u0005\u014a\u00a6\u0002\u02e9\u02ee\u0005\u014c\u00a7\u0002", + "\u02ea\u02ee\u0005\u014e\u00a8\u0002\u02eb\u02ee\u0005\u0150\u00a9\u0002", + "\u02ec\u02ee\u0005\u0152\u00aa\u0002\u02ed\u02de\u0003\u0002\u0002\u0002", + "\u02ed\u02df\u0003\u0002\u0002\u0002\u02ed\u02e0\u0003\u0002\u0002\u0002", + "\u02ed\u02e1\u0003\u0002\u0002\u0002\u02ed\u02e2\u0003\u0002\u0002\u0002", + "\u02ed\u02e3\u0003\u0002\u0002\u0002\u02ed\u02e4\u0003\u0002\u0002\u0002", + "\u02ed\u02e5\u0003\u0002\u0002\u0002\u02ed\u02e6\u0003\u0002\u0002\u0002", + "\u02ed\u02e7\u0003\u0002\u0002\u0002\u02ed\u02e8\u0003\u0002\u0002\u0002", + "\u02ed\u02e9\u0003\u0002\u0002\u0002\u02ed\u02ea\u0003\u0002\u0002\u0002", + "\u02ed\u02eb\u0003\u0002\u0002\u0002\u02ed\u02ec\u0003\u0002\u0002\u0002", + "\u02ee\u0011\u0003\u0002\u0002\u0002\u02ef\u02f3\u0005\u0154\u00ab\u0002", + "\u02f0\u02f3\u0005\u0156\u00ac\u0002\u02f1\u02f3\u0005\u0158\u00ad\u0002", + "\u02f2\u02ef\u0003\u0002\u0002\u0002\u02f2\u02f0\u0003\u0002\u0002\u0002", + "\u02f2\u02f1\u0003\u0002\u0002\u0002\u02f3\u0013\u0003\u0002\u0002\u0002", + "\u02f4\u02ff\u0005\u015c\u00af\u0002\u02f5\u02ff\u0005\u015e\u00b0\u0002", + "\u02f6\u02ff\u0005\u0160\u00b1\u0002\u02f7\u02ff\u0005\u0164\u00b3\u0002", + "\u02f8\u02ff\u0005\u0166\u00b4\u0002\u02f9\u02ff\u0005\u0168\u00b5\u0002", + "\u02fa\u02ff\u0005\u016c\u00b7\u0002\u02fb\u02ff\u0005\u0162\u00b2\u0002", + "\u02fc\u02ff\u0005\u016a\u00b6\u0002\u02fd\u02ff\u0005\u016e\u00b8\u0002", + "\u02fe\u02f4\u0003\u0002\u0002\u0002\u02fe\u02f5\u0003\u0002\u0002\u0002", + "\u02fe\u02f6\u0003\u0002\u0002\u0002\u02fe\u02f7\u0003\u0002\u0002\u0002", + "\u02fe\u02f8\u0003\u0002\u0002\u0002\u02fe\u02f9\u0003\u0002\u0002\u0002", + "\u02fe\u02fa\u0003\u0002\u0002\u0002\u02fe\u02fb\u0003\u0002\u0002\u0002", + "\u02fe\u02fc\u0003\u0002\u0002\u0002\u02fe\u02fd\u0003\u0002\u0002\u0002", + "\u02ff\u0015\u0003\u0002\u0002\u0002\u0300\u031a\u0005\u0180\u00c1\u0002", + "\u0301\u031a\u0005\u0182\u00c2\u0002\u0302\u031a\u0005\u0184\u00c3\u0002", + "\u0303\u031a\u0005\u0186\u00c4\u0002\u0304\u031a\u0005\u0188\u00c5\u0002", + "\u0305\u031a\u0005\u018a\u00c6\u0002\u0306\u031a\u0005\u018c\u00c7\u0002", + "\u0307\u031a\u0005\u018e\u00c8\u0002\u0308\u031a\u0005\u01a6\u00d4\u0002", + "\u0309\u031a\u0005\u01a8\u00d5\u0002\u030a\u031a\u0005\u01aa\u00d6\u0002", + "\u030b\u031a\u0005\u01ac\u00d7\u0002\u030c\u031a\u0005\u01ae\u00d8\u0002", + "\u030d\u031a\u0005\u01b2\u00da\u0002\u030e\u031a\u0005\u01b4\u00db\u0002", + "\u030f\u031a\u0005\u01b6\u00dc\u0002\u0310\u031a\u0005\u01b8\u00dd\u0002", + "\u0311\u031a\u0005\u01ba\u00de\u0002\u0312\u031a\u0005\u01c8\u00e5\u0002", + "\u0313\u031a\u0005\u01ca\u00e6\u0002\u0314\u031a\u0005\u01cc\u00e7\u0002", + "\u0315\u031a\u0005\u01ce\u00e8\u0002\u0316\u031a\u0005\u01d0\u00e9\u0002", + "\u0317\u031a\u0005\u01d2\u00ea\u0002\u0318\u031a\u0005\u01d4\u00eb\u0002", + "\u0319\u0300\u0003\u0002\u0002\u0002\u0319\u0301\u0003\u0002\u0002\u0002", + "\u0319\u0302\u0003\u0002\u0002\u0002\u0319\u0303\u0003\u0002\u0002\u0002", + "\u0319\u0304\u0003\u0002\u0002\u0002\u0319\u0305\u0003\u0002\u0002\u0002", + "\u0319\u0306\u0003\u0002\u0002\u0002\u0319\u0307\u0003\u0002\u0002\u0002", + "\u0319\u0308\u0003\u0002\u0002\u0002\u0319\u0309\u0003\u0002\u0002\u0002", + "\u0319\u030a\u0003\u0002\u0002\u0002\u0319\u030b\u0003\u0002\u0002\u0002", + "\u0319\u030c\u0003\u0002\u0002\u0002\u0319\u030d\u0003\u0002\u0002\u0002", + "\u0319\u030e\u0003\u0002\u0002\u0002\u0319\u030f\u0003\u0002\u0002\u0002", + "\u0319\u0310\u0003\u0002\u0002\u0002\u0319\u0311\u0003\u0002\u0002\u0002", + "\u0319\u0312\u0003\u0002\u0002\u0002\u0319\u0313\u0003\u0002\u0002\u0002", + "\u0319\u0314\u0003\u0002\u0002\u0002\u0319\u0315\u0003\u0002\u0002\u0002", + "\u0319\u0316\u0003\u0002\u0002\u0002\u0319\u0317\u0003\u0002\u0002\u0002", + "\u0319\u0318\u0003\u0002\u0002\u0002\u031a\u0017\u0003\u0002\u0002\u0002", + "\u031b\u0323\u0005\u01de\u00f0\u0002\u031c\u0323\u0005\u01e0\u00f1\u0002", + "\u031d\u0323\u0005\u01e2\u00f2\u0002\u031e\u0323\u0005\u01e4\u00f3\u0002", + "\u031f\u0323\u0005\u01e6\u00f4\u0002\u0320\u0323\u0005\u01e8\u00f5\u0002", + "\u0321\u0323\u0005\u01ec\u00f7\u0002\u0322\u031b\u0003\u0002\u0002\u0002", + "\u0322\u031c\u0003\u0002\u0002\u0002\u0322\u031d\u0003\u0002\u0002\u0002", + "\u0322\u031e\u0003\u0002\u0002\u0002\u0322\u031f\u0003\u0002\u0002\u0002", + "\u0322\u0320\u0003\u0002\u0002\u0002\u0322\u0321\u0003\u0002\u0002\u0002", + "\u0323\u0019\u0003\u0002\u0002\u0002\u0324\u0325\u0007 \u0002\u0002", + "\u0325\u0327\t\u0002\u0002\u0002\u0326\u0328\u0005\u0244\u0123\u0002", + "\u0327\u0326\u0003\u0002\u0002\u0002\u0327\u0328\u0003\u0002\u0002\u0002", + "\u0328\u0329\u0003\u0002\u0002\u0002\u0329\u032d\u0005\u020c\u0107\u0002", + "\u032a\u032c\u00052\u001a\u0002\u032b\u032a\u0003\u0002\u0002\u0002", + "\u032c\u032f\u0003\u0002\u0002\u0002\u032d\u032b\u0003\u0002\u0002\u0002", + "\u032d\u032e\u0003\u0002\u0002\u0002\u032e\u001b\u0003\u0002\u0002\u0002", + "\u032f\u032d\u0003\u0002\u0002\u0002\u0330\u0332\u0007 \u0002\u0002", + "\u0331\u0333\u00054\u001b\u0002\u0332\u0331\u0003\u0002\u0002\u0002", + "\u0332\u0333\u0003\u0002\u0002\u0002\u0333\u0334\u0003\u0002\u0002\u0002", + "\u0334\u0336\u0007\u015e\u0002\u0002\u0335\u0337\u0005\u0244\u0123\u0002", + "\u0336\u0335\u0003\u0002\u0002\u0002\u0336\u0337\u0003\u0002\u0002\u0002", + "\u0337\u0338\u0003\u0002\u0002\u0002\u0338\u0339\u0005\u01f2\u00fa\u0002", + "\u0339\u033a\u0007l\u0002\u0002\u033a\u033b\u0007\u0205\u0002\u0002", + "\u033b\u0342\u00056\u001c\u0002\u033c\u033d\u0007l\u0002\u0002\u033d", + "\u033f\u0007\u0136\u0002\u0002\u033e\u0340\u0007h\u0002\u0002\u033f", + "\u033e\u0003\u0002\u0002\u0002\u033f\u0340\u0003\u0002\u0002\u0002\u0340", + "\u0341\u0003\u0002\u0002\u0002\u0341\u0343\u0007\u01de\u0002\u0002\u0342", + "\u033c\u0003\u0002\u0002\u0002\u0342\u0343\u0003\u0002\u0002\u0002\u0343", + "\u0345\u0003\u0002\u0002\u0002\u0344\u0346\u0005> \u0002\u0345\u0344", + "\u0003\u0002\u0002\u0002\u0345\u0346\u0003\u0002\u0002\u0002\u0346\u0349", + "\u0003\u0002\u0002\u0002\u0347\u0348\u0007\u0133\u0002\u0002\u0348\u034a", + "\u0007\u040d\u0002\u0002\u0349\u0347\u0003\u0002\u0002\u0002\u0349\u034a", + "\u0003\u0002\u0002\u0002\u034a\u034b\u0003\u0002\u0002\u0002\u034b\u034c", + "\u0007\u0150\u0002\u0002\u034c\u034d\u0005\u015a\u00ae\u0002\u034d\u001d", + "\u0003\u0002\u0002\u0002\u034e\u0350\u0007 \u0002\u0002\u034f\u0351", + "\t\u0003\u0002\u0002\u0350\u034f\u0003\u0002\u0002\u0002\u0350\u0351", + "\u0003\u0002\u0002\u0002\u0351\u0353\u0003\u0002\u0002\u0002\u0352\u0354", + "\t\u0004\u0002\u0002\u0353\u0352\u0003\u0002\u0002\u0002\u0353\u0354", + "\u0003\u0002\u0002\u0002\u0354\u0355\u0003\u0002\u0002\u0002\u0355\u0356", + "\u0007J\u0002\u0002\u0356\u0358\u0005\u020c\u0107\u0002\u0357\u0359", + "\u0005@!\u0002\u0358\u0357\u0003\u0002\u0002\u0002\u0358\u0359\u0003", + "\u0002\u0002\u0002\u0359\u035a\u0003\u0002\u0002\u0002\u035a\u035b\u0007", + "l\u0002\u0002\u035b\u035c\u0005\u01f4\u00fb\u0002\u035c\u0360\u0005", + "\u0230\u0119\u0002\u035d\u035f\u0005B\"\u0002\u035e\u035d\u0003\u0002", + "\u0002\u0002\u035f\u0362\u0003\u0002\u0002\u0002\u0360\u035e\u0003\u0002", + "\u0002\u0002\u0360\u0361\u0003\u0002\u0002\u0002\u0361\u036f\u0003\u0002", + "\u0002\u0002\u0362\u0360\u0003\u0002\u0002\u0002\u0363\u0365\u0007\u0114", + "\u0002\u0002\u0364\u0366\u0007\u03f5\u0002\u0002\u0365\u0364\u0003\u0002", + "\u0002\u0002\u0365\u0366\u0003\u0002\u0002\u0002\u0366\u0367\u0003\u0002", + "\u0002\u0002\u0367\u036e\t\u0005\u0002\u0002\u0368\u036a\u0007_\u0002", + "\u0002\u0369\u036b\u0007\u03f5\u0002\u0002\u036a\u0369\u0003\u0002\u0002", + "\u0002\u036a\u036b\u0003\u0002\u0002\u0002\u036b\u036c\u0003\u0002\u0002", + "\u0002\u036c\u036e\t\u0006\u0002\u0002\u036d\u0363\u0003\u0002\u0002", + "\u0002\u036d\u0368\u0003\u0002\u0002\u0002\u036e\u0371\u0003\u0002\u0002", + "\u0002\u036f\u036d\u0003\u0002\u0002\u0002\u036f\u0370\u0003\u0002\u0002", + "\u0002\u0370\u001f\u0003\u0002\u0002\u0002\u0371\u036f\u0003\u0002\u0002", + "\u0002\u0372\u0373\u0007 \u0002\u0002\u0373\u0374\u0007\u0195\u0002", + "\u0002\u0374\u0375\u0007D\u0002\u0002\u0375\u0376\u0005\u020c\u0107", + "\u0002\u0376\u0377\u0007\u0007\u0002\u0002\u0377\u0378\u0007\u0238\u0002", + "\u0002\u0378\u037e\u0007\u040d\u0002\u0002\u0379\u037b\u0007\u0180\u0002", + "\u0002\u037a\u037c\u0007\u03f5\u0002\u0002\u037b\u037a\u0003\u0002\u0002", + "\u0002\u037b\u037c\u0003\u0002\u0002\u0002\u037c\u037d\u0003\u0002\u0002", + "\u0002\u037d\u037f\u0005\u0214\u010b\u0002\u037e\u0379\u0003\u0002\u0002", + "\u0002\u037e\u037f\u0003\u0002\u0002\u0002\u037f\u0385\u0003\u0002\u0002", + "\u0002\u0380\u0382\u0007\u0239\u0002\u0002\u0381\u0383\u0007\u03f5\u0002", + "\u0002\u0382\u0381\u0003\u0002\u0002\u0002\u0382\u0383\u0003\u0002\u0002", + "\u0002\u0383\u0384\u0003\u0002\u0002\u0002\u0384\u0386\u0005\u0214\u010b", + "\u0002\u0385\u0380\u0003\u0002\u0002\u0002\u0385\u0386\u0003\u0002\u0002", + "\u0002\u0386\u038c\u0003\u0002\u0002\u0002\u0387\u0389\u0007\u01e8\u0002", + "\u0002\u0388\u038a\u0007\u03f5\u0002\u0002\u0389\u0388\u0003\u0002\u0002", + "\u0002\u0389\u038a\u0003\u0002\u0002\u0002\u038a\u038b\u0003\u0002\u0002", + "\u0002\u038b\u038d\u0005\u0214\u010b\u0002\u038c\u0387\u0003\u0002\u0002", + "\u0002\u038c\u038d\u0003\u0002\u0002\u0002\u038d\u0393\u0003\u0002\u0002", + "\u0002\u038e\u0390\u0007\u01c3\u0002\u0002\u038f\u0391\u0007\u03f5\u0002", + "\u0002\u0390\u038f\u0003\u0002\u0002\u0002\u0390\u0391\u0003\u0002\u0002", + "\u0002\u0391\u0392\u0003\u0002\u0002\u0002\u0392\u0394\u0005\u020c\u0107", + "\u0002\u0393\u038e\u0003\u0002\u0002\u0002\u0393\u0394\u0003\u0002\u0002", + "\u0002\u0394\u0396\u0003\u0002\u0002\u0002\u0395\u0397\u0007\u0247\u0002", + "\u0002\u0396\u0395\u0003\u0002\u0002\u0002\u0396\u0397\u0003\u0002\u0002", + "\u0002\u0397\u039d\u0003\u0002\u0002\u0002\u0398\u039a\u0007\u0133\u0002", + "\u0002\u0399\u039b\u0007\u03f5\u0002\u0002\u039a\u0399\u0003\u0002\u0002", + "\u0002\u039a\u039b\u0003\u0002\u0002\u0002\u039b\u039c\u0003\u0002\u0002", + "\u0002\u039c\u039e\u0007\u040d\u0002\u0002\u039d\u0398\u0003\u0002\u0002", + "\u0002\u039d\u039e\u0003\u0002\u0002\u0002\u039e\u039f\u0003\u0002\u0002", + "\u0002\u039f\u03a1\u0007\u0158\u0002\u0002\u03a0\u03a2\u0007\u03f5\u0002", + "\u0002\u03a1\u03a0\u0003\u0002\u0002\u0002\u03a1\u03a2\u0003\u0002\u0002", + "\u0002\u03a2\u03a3\u0003\u0002\u0002\u0002\u03a3\u03a4\u0005\u0202\u0102", + "\u0002\u03a4!\u0003\u0002\u0002\u0002\u03a5\u03a7\u0007 \u0002\u0002", + "\u03a6\u03a8\u00054\u001b\u0002\u03a7\u03a6\u0003\u0002\u0002\u0002", + "\u03a7\u03a8\u0003\u0002\u0002\u0002\u03a8\u03a9\u0003\u0002\u0002\u0002", + "\u03a9\u03aa\u0007w\u0002\u0002\u03aa\u03ab\u0005\u01f2\u00fa\u0002", + "\u03ab\u03ad\u0007\u03fe\u0002\u0002\u03ac\u03ae\u0005D#\u0002\u03ad", + "\u03ac\u0003\u0002\u0002\u0002\u03ad\u03ae\u0003\u0002\u0002\u0002\u03ae", + "\u03b3\u0003\u0002\u0002\u0002\u03af\u03b0\u0007\u0400\u0002\u0002\u03b0", + "\u03b2\u0005D#\u0002\u03b1\u03af\u0003\u0002\u0002\u0002\u03b2\u03b5", + "\u0003\u0002\u0002\u0002\u03b3\u03b1\u0003\u0002\u0002\u0002\u03b3\u03b4", + "\u0003\u0002\u0002\u0002\u03b4\u03b6\u0003\u0002\u0002\u0002\u03b5\u03b3", + "\u0003\u0002\u0002\u0002\u03b6\u03ba\u0007\u03ff\u0002\u0002\u03b7\u03b9", + "\u0005H%\u0002\u03b8\u03b7\u0003\u0002\u0002\u0002\u03b9\u03bc\u0003", + "\u0002\u0002\u0002\u03ba\u03b8\u0003\u0002\u0002\u0002\u03ba\u03bb\u0003", + "\u0002\u0002\u0002\u03bb\u03bd\u0003\u0002\u0002\u0002\u03bc\u03ba\u0003", + "\u0002\u0002\u0002\u03bd\u03be\u0005\u015a\u00ae\u0002\u03be#\u0003", + "\u0002\u0002\u0002\u03bf\u03c1\u0007 \u0002\u0002\u03c0\u03c2\u0005", + "4\u001b\u0002\u03c1\u03c0\u0003\u0002\u0002\u0002\u03c1\u03c2\u0003", + "\u0002\u0002\u0002\u03c2\u03c3\u0003\u0002\u0002\u0002\u03c3\u03c4\u0007", + "\u0172\u0002\u0002\u03c4\u03c5\u0005\u01f2\u00fa\u0002\u03c5\u03c7\u0007", + "\u03fe\u0002\u0002\u03c6\u03c8\u0005F$\u0002\u03c7\u03c6\u0003\u0002", + "\u0002\u0002\u03c7\u03c8\u0003\u0002\u0002\u0002\u03c8\u03cd\u0003\u0002", + "\u0002\u0002\u03c9\u03ca\u0007\u0400\u0002\u0002\u03ca\u03cc\u0005F", + "$\u0002\u03cb\u03c9\u0003\u0002\u0002\u0002\u03cc\u03cf\u0003\u0002", + "\u0002\u0002\u03cd\u03cb\u0003\u0002\u0002\u0002\u03cd\u03ce\u0003\u0002", + "\u0002\u0002\u03ce\u03d0\u0003\u0002\u0002\u0002\u03cf\u03cd\u0003\u0002", + "\u0002\u0002\u03d0\u03d1\u0007\u03ff\u0002\u0002\u03d1\u03d2\u0007\u01fc", + "\u0002\u0002\u03d2\u03d6\u0005\u0220\u0111\u0002\u03d3\u03d5\u0005H", + "%\u0002\u03d4\u03d3\u0003\u0002\u0002\u0002\u03d5\u03d8\u0003\u0002", + "\u0002\u0002\u03d6\u03d4\u0003\u0002\u0002\u0002\u03d6\u03d7\u0003\u0002", + "\u0002\u0002\u03d7\u03db\u0003\u0002\u0002\u0002\u03d8\u03d6\u0003\u0002", + "\u0002\u0002\u03d9\u03dc\u0005\u015a\u00ae\u0002\u03da\u03dc\u0005\u016a", + "\u00b6\u0002\u03db\u03d9\u0003\u0002\u0002\u0002\u03db\u03da\u0003\u0002", + "\u0002\u0002\u03dc%\u0003\u0002\u0002\u0002\u03dd\u03de\u0007 \u0002", + "\u0002\u03de\u03df\u0007\u0207\u0002\u0002\u03df\u03e0\u0005\u020c\u0107", + "\u0002\u03e0\u03e1\u0007>\u0002\u0002\u03e1\u03e2\u0007\u0145\u0002", + "\u0002\u03e2\u03e3\u0007\u024b\u0002\u0002\u03e3\u03e4\t\u0007\u0002", + "\u0002\u03e4\u03e5\u0007\u01ce\u0002\u0002\u03e5\u03e6\u0007\u03fe\u0002", + "\u0002\u03e6\u03eb\u0005J&\u0002\u03e7\u03e8\u0007\u0400\u0002\u0002", + "\u03e8\u03ea\u0005J&\u0002\u03e9\u03e7\u0003\u0002\u0002\u0002\u03ea", + "\u03ed\u0003\u0002\u0002\u0002\u03eb\u03e9\u0003\u0002\u0002\u0002\u03eb", + "\u03ec\u0003\u0002\u0002\u0002\u03ec\u03ee\u0003\u0002\u0002\u0002\u03ed", + "\u03eb\u0003\u0002\u0002\u0002\u03ee\u03ef\u0007\u03ff\u0002\u0002\u03ef", + "\'\u0003\u0002\u0002\u0002\u03f0\u03f2\u0007 \u0002\u0002\u03f1\u03f3", + "\u0007\u022f\u0002\u0002\u03f2\u03f1\u0003\u0002\u0002\u0002\u03f2\u03f3", + "\u0003\u0002\u0002\u0002\u03f3\u03f4\u0003\u0002\u0002\u0002\u03f4\u03f6", + "\u0007\u009c\u0002\u0002\u03f5\u03f7\u0005\u0244\u0123\u0002\u03f6\u03f5", + "\u0003\u0002\u0002\u0002\u03f6\u03f7\u0003\u0002\u0002\u0002\u03f7\u03f8", + "\u0003\u0002\u0002\u0002\u03f8\u0400\u0005\u01f4\u00fb\u0002\u03f9\u03fa", + "\u0007Z\u0002\u0002\u03fa\u0401\u0005\u01f4\u00fb\u0002\u03fb\u03fc", + "\u0007\u03fe\u0002\u0002\u03fc\u03fd\u0007Z\u0002\u0002\u03fd\u03fe", + "\u0005\u01f4\u00fb\u0002\u03fe\u03ff\u0007\u03ff\u0002\u0002\u03ff\u0401", + "\u0003\u0002\u0002\u0002\u0400\u03f9\u0003\u0002\u0002\u0002\u0400\u03fb", + "\u0003\u0002\u0002\u0002\u0401\u043f\u0003\u0002\u0002\u0002\u0402\u0404", + "\u0007 \u0002\u0002\u0403\u0405\u0007\u022f\u0002\u0002\u0404\u0403", + "\u0003\u0002\u0002\u0002\u0404\u0405\u0003\u0002\u0002\u0002\u0405\u0406", + "\u0003\u0002\u0002\u0002\u0406\u0408\u0007\u009c\u0002\u0002\u0407\u0409", + "\u0005\u0244\u0123\u0002\u0408\u0407\u0003\u0002\u0002\u0002\u0408\u0409", + "\u0003\u0002\u0002\u0002\u0409\u040a\u0003\u0002\u0002\u0002\u040a\u040c", + "\u0005\u01f4\u00fb\u0002\u040b\u040d\u0005L\'\u0002\u040c\u040b\u0003", + "\u0002\u0002\u0002\u040c\u040d\u0003\u0002\u0002\u0002\u040d\u0418\u0003", + "\u0002\u0002\u0002\u040e\u0415\u0005^0\u0002\u040f\u0411\u0007\u0400", + "\u0002\u0002\u0410\u040f\u0003\u0002\u0002\u0002\u0410\u0411\u0003\u0002", + "\u0002\u0002\u0411\u0412\u0003\u0002\u0002\u0002\u0412\u0414\u0005^", + "0\u0002\u0413\u0410\u0003\u0002\u0002\u0002\u0414\u0417\u0003\u0002", + "\u0002\u0002\u0415\u0413\u0003\u0002\u0002\u0002\u0415\u0416\u0003\u0002", + "\u0002\u0002\u0416\u0419\u0003\u0002\u0002\u0002\u0417\u0415\u0003\u0002", + "\u0002\u0002\u0418\u040e\u0003\u0002\u0002\u0002\u0418\u0419\u0003\u0002", + "\u0002\u0002\u0419\u041b\u0003\u0002\u0002\u0002\u041a\u041c\u0005b", + "2\u0002\u041b\u041a\u0003\u0002\u0002\u0002\u041b\u041c\u0003\u0002", + "\u0002\u0002\u041c\u041e\u0003\u0002\u0002\u0002\u041d\u041f\t\b\u0002", + "\u0002\u041e\u041d\u0003\u0002\u0002\u0002\u041e\u041f\u0003\u0002\u0002", + "\u0002\u041f\u0421\u0003\u0002\u0002\u0002\u0420\u0422\u0007\r\u0002", + "\u0002\u0421\u0420\u0003\u0002\u0002\u0002\u0421\u0422\u0003\u0002\u0002", + "\u0002\u0422\u0423\u0003\u0002\u0002\u0002\u0423\u0424\u0005\u00b4[", + "\u0002\u0424\u043f\u0003\u0002\u0002\u0002\u0425\u0427\u0007 \u0002", + "\u0002\u0426\u0428\u0007\u022f\u0002\u0002\u0427\u0426\u0003\u0002\u0002", + "\u0002\u0427\u0428\u0003\u0002\u0002\u0002\u0428\u0429\u0003\u0002\u0002", + "\u0002\u0429\u042b\u0007\u009c\u0002\u0002\u042a\u042c\u0005\u0244\u0123", + "\u0002\u042b\u042a\u0003\u0002\u0002\u0002\u042b\u042c\u0003\u0002\u0002", + "\u0002\u042c\u042d\u0003\u0002\u0002\u0002\u042d\u042e\u0005\u01f4\u00fb", + "\u0002\u042e\u0439\u0005L\'\u0002\u042f\u0436\u0005^0\u0002\u0430\u0432", + "\u0007\u0400\u0002\u0002\u0431\u0430\u0003\u0002\u0002\u0002\u0431\u0432", + "\u0003\u0002\u0002\u0002\u0432\u0433\u0003\u0002\u0002\u0002\u0433\u0435", + "\u0005^0\u0002\u0434\u0431\u0003\u0002\u0002\u0002\u0435\u0438\u0003", + "\u0002\u0002\u0002\u0436\u0434\u0003\u0002\u0002\u0002\u0436\u0437\u0003", + "\u0002\u0002\u0002\u0437\u043a\u0003\u0002\u0002\u0002\u0438\u0436\u0003", + "\u0002\u0002\u0002\u0439\u042f\u0003\u0002\u0002\u0002\u0439\u043a\u0003", + "\u0002\u0002\u0002\u043a\u043c\u0003\u0002\u0002\u0002\u043b\u043d\u0005", + "b2\u0002\u043c\u043b\u0003\u0002\u0002\u0002\u043c\u043d\u0003\u0002", + "\u0002\u0002\u043d\u043f\u0003\u0002\u0002\u0002\u043e\u03f0\u0003\u0002", + "\u0002\u0002\u043e\u0402\u0003\u0002\u0002\u0002\u043e\u0425\u0003\u0002", + "\u0002\u0002\u043f)\u0003\u0002\u0002\u0002\u0440\u0441\u0007 \u0002", + "\u0002\u0441\u0442\u0007\u022e\u0002\u0002\u0442\u0443\u0005\u020c\u0107", + "\u0002\u0443\u0444\u0007\u0007\u0002\u0002\u0444\u0445\u0007\u0146\u0002", + "\u0002\u0445\u0449\u0007\u040d\u0002\u0002\u0446\u0447\u0007\u016a\u0002", + "\u0002\u0447\u0448\u0007\u03f5\u0002\u0002\u0448\u044a\u0005\u0214\u010b", + "\u0002\u0449\u0446\u0003\u0002\u0002\u0002\u0449\u044a\u0003\u0002\u0002", + "\u0002\u044a\u0450\u0003\u0002\u0002\u0002\u044b\u044d\u0007\u0158\u0002", + "\u0002\u044c\u044e\u0007\u03f5\u0002\u0002\u044d\u044c\u0003\u0002\u0002", + "\u0002\u044d\u044e\u0003\u0002\u0002\u0002\u044e\u044f\u0003\u0002\u0002", + "\u0002\u044f\u0451\u0005\u0202\u0102\u0002\u0450\u044b\u0003\u0002\u0002", + "\u0002\u0450\u0451\u0003\u0002\u0002\u0002\u0451+\u0003\u0002\u0002", + "\u0002\u0452\u0453\u0007 \u0002\u0002\u0453\u0454\u0007\u022e\u0002", + "\u0002\u0454\u0455\u0005\u020c\u0107\u0002\u0455\u0456\u0007\u0007\u0002", + "\u0002\u0456\u0457\u0007\u0146\u0002\u0002\u0457\u0458\u0007\u040d\u0002", + "\u0002\u0458\u0459\u0007\u00aa\u0002\u0002\u0459\u045a\u0007\u0195\u0002", + "\u0002\u045a\u045b\u0007D\u0002\u0002\u045b\u0461\u0005\u020c\u0107", + "\u0002\u045c\u045e\u0007\u0166\u0002\u0002\u045d\u045f\u0007\u03f5\u0002", + "\u0002\u045e\u045d\u0003\u0002\u0002\u0002\u045e\u045f\u0003\u0002\u0002", + "\u0002\u045f\u0460\u0003\u0002\u0002\u0002\u0460\u0462\u0005\u0214\u010b", + "\u0002\u0461\u045c\u0003\u0002\u0002\u0002\u0461\u0462\u0003\u0002\u0002", + "\u0002\u0462\u0468\u0003\u0002\u0002\u0002\u0463\u0465\u0007\u0180\u0002", + "\u0002\u0464\u0466\u0007\u03f5\u0002\u0002\u0465\u0464\u0003\u0002\u0002", + "\u0002\u0465\u0466\u0003\u0002\u0002\u0002\u0466\u0467\u0003\u0002\u0002", + "\u0002\u0467\u0469\u0005\u0214\u010b\u0002\u0468\u0463\u0003\u0002\u0002", + "\u0002\u0468\u0469\u0003\u0002\u0002\u0002\u0469\u046f\u0003\u0002\u0002", + "\u0002\u046a\u046c\u0007\u0119\u0002\u0002\u046b\u046d\u0007\u03f5\u0002", + "\u0002\u046c\u046b\u0003\u0002\u0002\u0002\u046c\u046d\u0003\u0002\u0002", + "\u0002\u046d\u046e\u0003\u0002\u0002\u0002\u046e\u0470\u0005\u0214\u010b", + "\u0002\u046f\u046a\u0003\u0002\u0002\u0002\u046f\u0470\u0003\u0002\u0002", + "\u0002\u0470\u0476\u0003\u0002\u0002\u0002\u0471\u0473\u0007\u01af\u0002", + "\u0002\u0472\u0474\u0007\u03f5\u0002\u0002\u0473\u0472\u0003\u0002\u0002", + "\u0002\u0473\u0474\u0003\u0002\u0002\u0002\u0474\u0475\u0003\u0002\u0002", + "\u0002\u0475\u0477\u0005\u0214\u010b\u0002\u0476\u0471\u0003\u0002\u0002", + "\u0002\u0476\u0477\u0003\u0002\u0002\u0002\u0477\u047d\u0003\u0002\u0002", + "\u0002\u0478\u047a\u0007\u01c3\u0002\u0002\u0479\u047b\u0007\u03f5\u0002", + "\u0002\u047a\u0479\u0003\u0002\u0002\u0002\u047a\u047b\u0003\u0002\u0002", + "\u0002\u047b\u047c\u0003\u0002\u0002\u0002\u047c\u047e\u0005\u020c\u0107", + "\u0002\u047d\u0478\u0003\u0002\u0002\u0002\u047d\u047e\u0003\u0002\u0002", + "\u0002\u047e\u0480\u0003\u0002\u0002\u0002\u047f\u0481\u0007\u0247\u0002", + "\u0002\u0480\u047f\u0003\u0002\u0002\u0002\u0480\u0481\u0003\u0002\u0002", + "\u0002\u0481\u0487\u0003\u0002\u0002\u0002\u0482\u0484\u0007\u0133\u0002", + "\u0002\u0483\u0485\u0007\u03f5\u0002\u0002\u0484\u0483\u0003\u0002\u0002", + "\u0002\u0484\u0485\u0003\u0002\u0002\u0002\u0485\u0486\u0003\u0002\u0002", + "\u0002\u0486\u0488\u0007\u040d\u0002\u0002\u0487\u0482\u0003\u0002\u0002", + "\u0002\u0487\u0488\u0003\u0002\u0002\u0002\u0488\u0489\u0003\u0002\u0002", + "\u0002\u0489\u048b\u0007\u0158\u0002\u0002\u048a\u048c\u0007\u03f5\u0002", + "\u0002\u048b\u048a\u0003\u0002\u0002\u0002\u048b\u048c\u0003\u0002\u0002", + "\u0002\u048c\u048d\u0003\u0002\u0002\u0002\u048d\u048e\u0005\u0202\u0102", + "\u0002\u048e-\u0003\u0002\u0002\u0002\u048f\u0491\u0007 \u0002\u0002", + "\u0490\u0492\u00054\u001b\u0002\u0491\u0490\u0003\u0002\u0002\u0002", + "\u0491\u0492\u0003\u0002\u0002\u0002\u0492\u0493\u0003\u0002\u0002\u0002", + "\u0493\u0494\u0007\u00a1\u0002\u0002\u0494\u0495\u0005\u01f2\u00fa\u0002", + "\u0495\u0496\t\t\u0002\u0002\u0496\u0497\t\n\u0002\u0002\u0497\u0498", + "\u0007l\u0002\u0002\u0498\u0499\u0005\u01f4\u00fb\u0002\u0499\u049a", + "\u0007<\u0002\u0002\u049a\u049b\u00072\u0002\u0002\u049b\u049e\u0007", + "\u0201\u0002\u0002\u049c\u049d\t\u000b\u0002\u0002\u049d\u049f\u0005", + "\u01f2\u00fa\u0002\u049e\u049c\u0003\u0002\u0002\u0002\u049e\u049f\u0003", + "\u0002\u0002\u0002\u049f\u04a0\u0003\u0002\u0002\u0002\u04a0\u04a1\u0005", + "\u015a\u00ae\u0002\u04a1/\u0003\u0002\u0002\u0002\u04a2\u04a5\u0007", + " \u0002\u0002\u04a3\u04a4\u0007p\u0002\u0002\u04a4\u04a6\u0007\u0081", + "\u0002\u0002\u04a5\u04a3\u0003\u0002\u0002\u0002\u04a5\u04a6\u0003\u0002", + "\u0002\u0002\u04a6\u04aa\u0003\u0002\u0002\u0002\u04a7\u04a8\u0007\u0114", + "\u0002\u0002\u04a8\u04a9\u0007\u03f5\u0002\u0002\u04a9\u04ab\t\f\u0002", + "\u0002\u04aa\u04a7\u0003\u0002\u0002\u0002\u04aa\u04ab\u0003\u0002\u0002", + "\u0002\u04ab\u04ad\u0003\u0002\u0002\u0002\u04ac\u04ae\u00054\u001b", + "\u0002\u04ad\u04ac\u0003\u0002\u0002\u0002\u04ad\u04ae\u0003\u0002\u0002", + "\u0002\u04ae\u04b2\u0003\u0002\u0002\u0002\u04af\u04b0\u0007\u0091\u0002", + "\u0002\u04b0\u04b1\u0007\u0206\u0002\u0002\u04b1\u04b3\t\r\u0002\u0002", + "\u04b2\u04af\u0003\u0002\u0002\u0002\u04b2\u04b3\u0003\u0002\u0002\u0002", + "\u04b3\u04b4\u0003\u0002\u0002\u0002\u04b4\u04b5\u0007\u0244\u0002\u0002", + "\u04b5\u04ba\u0005\u01f2\u00fa\u0002\u04b6\u04b7\u0007\u03fe\u0002\u0002", + "\u04b7\u04b8\u0005\u022c\u0117\u0002\u04b8\u04b9\u0007\u03ff\u0002\u0002", + "\u04b9\u04bb\u0003\u0002\u0002\u0002\u04ba\u04b6\u0003\u0002\u0002\u0002", + "\u04ba\u04bb\u0003\u0002\u0002\u0002\u04bb\u04bc\u0003\u0002\u0002\u0002", + "\u04bc\u04bd\u0007\r\u0002\u0002\u04bd\u04c4\u0005\u00b4[\u0002\u04be", + "\u04c0\u0007\u00b0\u0002\u0002\u04bf\u04c1\t\u000e\u0002\u0002\u04c0", + "\u04bf\u0003\u0002\u0002\u0002\u04c0\u04c1\u0003\u0002\u0002\u0002\u04c1", + "\u04c2\u0003\u0002\u0002\u0002\u04c2\u04c3\u0007\u0019\u0002\u0002\u04c3", + "\u04c5\u0007n\u0002\u0002\u04c4\u04be\u0003\u0002\u0002\u0002\u04c4", + "\u04c5\u0003\u0002\u0002\u0002\u04c51\u0003\u0002\u0002\u0002\u04c6", + "\u04c8\u0007(\u0002\u0002\u04c7\u04c6\u0003\u0002\u0002\u0002\u04c7", + "\u04c8\u0003\u0002\u0002\u0002\u04c8\u04cc\u0003\u0002\u0002\u0002\u04c9", + "\u04ca\u0007\u0018\u0002\u0002\u04ca\u04cd\u0007\u008c\u0002\u0002\u04cb", + "\u04cd\u0007\u02dd\u0002\u0002\u04cc\u04c9\u0003\u0002\u0002\u0002\u04cc", + "\u04cb\u0003\u0002\u0002\u0002\u04cd\u04cf\u0003\u0002\u0002\u0002\u04ce", + "\u04d0\u0007\u03f5\u0002\u0002\u04cf\u04ce\u0003\u0002\u0002\u0002\u04cf", + "\u04d0\u0003\u0002\u0002\u0002\u04d0\u04d3\u0003\u0002\u0002\u0002\u04d1", + "\u04d4\u0005\u01fe\u0100\u0002\u04d2\u04d4\u0007(\u0002\u0002\u04d3", + "\u04d1\u0003\u0002\u0002\u0002\u04d3\u04d2\u0003\u0002\u0002\u0002\u04d4", + "\u04de\u0003\u0002\u0002\u0002\u04d5\u04d7\u0007(\u0002\u0002\u04d6", + "\u04d5\u0003\u0002\u0002\u0002\u04d6\u04d7\u0003\u0002\u0002\u0002\u04d7", + "\u04d8\u0003\u0002\u0002\u0002\u04d8\u04da\u0007\u001a\u0002\u0002\u04d9", + "\u04db\u0007\u03f5\u0002\u0002\u04da\u04d9\u0003\u0002\u0002\u0002\u04da", + "\u04db\u0003\u0002\u0002\u0002\u04db\u04dc\u0003\u0002\u0002\u0002\u04dc", + "\u04de\u0005\u0200\u0101\u0002\u04dd\u04c7\u0003\u0002\u0002\u0002\u04dd", + "\u04d6\u0003\u0002\u0002\u0002\u04de3\u0003\u0002\u0002\u0002\u04df", + "\u04e0\u0007\u0149\u0002\u0002\u04e0\u04e7\u0007\u03f5\u0002\u0002\u04e1", + "\u04e8\u0005\u01fa\u00fe\u0002\u04e2\u04e5\u0007#\u0002\u0002\u04e3", + "\u04e4\u0007\u03fe\u0002\u0002\u04e4\u04e6\u0007\u03ff\u0002\u0002\u04e5", + "\u04e3\u0003\u0002\u0002\u0002\u04e5\u04e6\u0003\u0002\u0002\u0002\u04e6", + "\u04e8\u0003\u0002\u0002\u0002\u04e7\u04e1\u0003\u0002\u0002\u0002\u04e7", + "\u04e2\u0003\u0002\u0002\u0002\u04e85\u0003\u0002\u0002\u0002\u04e9", + "\u04ea\u0007\u0116\u0002\u0002\u04ea\u04ee\u00058\u001d\u0002\u04eb", + "\u04ed\u0005:\u001e\u0002\u04ec\u04eb\u0003\u0002\u0002\u0002\u04ed", + "\u04f0\u0003\u0002\u0002\u0002\u04ee\u04ec\u0003\u0002\u0002\u0002\u04ee", + "\u04ef\u0003\u0002\u0002\u0002\u04ef\u050c\u0003\u0002\u0002\u0002\u04f0", + "\u04ee\u0003\u0002\u0002\u0002\u04f1\u04f4\u0007\u0160\u0002\u0002\u04f2", + "\u04f5\u0005\u0212\u010a\u0002\u04f3\u04f5\u0005\u025a\u012e\u0002\u04f4", + "\u04f2\u0003\u0002\u0002\u0002\u04f4\u04f3\u0003\u0002\u0002\u0002\u04f5", + "\u04f6\u0003\u0002\u0002\u0002\u04f6\u04ff\u0005<\u001f\u0002\u04f7", + "\u04f8\u0007\u021d\u0002\u0002\u04f8\u04fc\u00058\u001d\u0002\u04f9", + "\u04fb\u0005:\u001e\u0002\u04fa\u04f9\u0003\u0002\u0002\u0002\u04fb", + "\u04fe\u0003\u0002\u0002\u0002\u04fc\u04fa\u0003\u0002\u0002\u0002\u04fc", + "\u04fd\u0003\u0002\u0002\u0002\u04fd\u0500\u0003\u0002\u0002\u0002\u04fe", + "\u04fc\u0003\u0002\u0002\u0002\u04ff\u04f7\u0003\u0002\u0002\u0002\u04ff", + "\u0500\u0003\u0002\u0002\u0002\u0500\u0509\u0003\u0002\u0002\u0002\u0501", + "\u0502\u0007\u0157\u0002\u0002\u0502\u0506\u00058\u001d\u0002\u0503", + "\u0505\u0005:\u001e\u0002\u0504\u0503\u0003\u0002\u0002\u0002\u0505", + "\u0508\u0003\u0002\u0002\u0002\u0506\u0504\u0003\u0002\u0002\u0002\u0506", + "\u0507\u0003\u0002\u0002\u0002\u0507\u050a\u0003\u0002\u0002\u0002\u0508", + "\u0506\u0003\u0002\u0002\u0002\u0509\u0501\u0003\u0002\u0002\u0002\u0509", + "\u050a\u0003\u0002\u0002\u0002\u050a\u050c\u0003\u0002\u0002\u0002\u050b", + "\u04e9\u0003\u0002\u0002\u0002\u050b\u04f1\u0003\u0002\u0002\u0002\u050c", + "7\u0003\u0002\u0002\u0002\u050d\u0512\u0007\u00ff\u0002\u0002\u050e", + "\u0512\u0005\u0216\u010c\u0002\u050f\u0512\u0005\u0212\u010a\u0002\u0510", + "\u0512\u0005\u025a\u012e\u0002\u0511\u050d\u0003\u0002\u0002\u0002\u0511", + "\u050e\u0003\u0002\u0002\u0002\u0511\u050f\u0003\u0002\u0002\u0002\u0511", + "\u0510\u0003\u0002\u0002\u0002\u05129\u0003\u0002\u0002\u0002\u0513", + "\u0514\u0007\u03f0\u0002\u0002\u0514\u0517\u0007O\u0002\u0002\u0515", + "\u0518\u0005\u0212\u010a\u0002\u0516\u0518\u0005\u025a\u012e\u0002\u0517", + "\u0515\u0003\u0002\u0002\u0002\u0517\u0516\u0003\u0002\u0002\u0002\u0518", + "\u0519\u0003\u0002\u0002\u0002\u0519\u051a\u0005<\u001f\u0002\u051a", + ";\u0003\u0002\u0002\u0002\u051b\u0529\u0005\u0270\u0139\u0002\u051c", + "\u0529\u0007\u00cd\u0002\u0002\u051d\u0529\u0007\u00e0\u0002\u0002\u051e", + "\u0529\u0007\u00e1\u0002\u0002\u051f\u0529\u0007\u00e2\u0002\u0002\u0520", + "\u0529\u0007\u00e3\u0002\u0002\u0521\u0529\u0007\u00e4\u0002\u0002\u0522", + "\u0529\u0007\u00e5\u0002\u0002\u0523\u0529\u0007\u00e6\u0002\u0002\u0524", + "\u0529\u0007\u00e7\u0002\u0002\u0525\u0529\u0007\u00e8\u0002\u0002\u0526", + "\u0529\u0007\u00e9\u0002\u0002\u0527\u0529\u0007\u00ea\u0002\u0002\u0528", + "\u051b\u0003\u0002\u0002\u0002\u0528\u051c\u0003\u0002\u0002\u0002\u0528", + "\u051d\u0003\u0002\u0002\u0002\u0528\u051e\u0003\u0002\u0002\u0002\u0528", + "\u051f\u0003\u0002\u0002\u0002\u0528\u0520\u0003\u0002\u0002\u0002\u0528", + "\u0521\u0003\u0002\u0002\u0002\u0528\u0522\u0003\u0002\u0002\u0002\u0528", + "\u0523\u0003\u0002\u0002\u0002\u0528\u0524\u0003\u0002\u0002\u0002\u0528", + "\u0525\u0003\u0002\u0002\u0002\u0528\u0526\u0003\u0002\u0002\u0002\u0528", + "\u0527\u0003\u0002\u0002\u0002\u0529=\u0003\u0002\u0002\u0002\u052a", + "\u0530\u0007\u0154\u0002\u0002\u052b\u0530\u0007\u014d\u0002\u0002\u052c", + "\u052d\u0007\u014d\u0002\u0002\u052d\u052e\u0007l\u0002\u0002\u052e", + "\u0530\u0007\u020d\u0002\u0002\u052f\u052a\u0003\u0002\u0002\u0002\u052f", + "\u052b\u0003\u0002\u0002\u0002\u052f\u052c\u0003\u0002\u0002\u0002\u0530", + "?\u0003\u0002\u0002\u0002\u0531\u0532\u0007\u00ab\u0002\u0002\u0532", + "\u0533\t\u000f\u0002\u0002\u0533A\u0003\u0002\u0002\u0002\u0534\u0536", + "\u0007\u018d\u0002\u0002\u0535\u0537\u0007\u03f5\u0002\u0002\u0536\u0535", + "\u0003\u0002\u0002\u0002\u0536\u0537\u0003\u0002\u0002\u0002\u0537\u0538", + "\u0003\u0002\u0002\u0002\u0538\u0542\u0005\u0214\u010b\u0002\u0539\u0542", + "\u0005@!\u0002\u053a\u053b\u0007\u00b0\u0002\u0002\u053b\u053c\u0007", + "\u01d2\u0002\u0002\u053c\u0542\u0005\u020c\u0107\u0002\u053d\u053e\u0007", + "\u0133\u0002\u0002\u053e\u0542\u0007\u040d\u0002\u0002\u053f\u0542\u0007", + "\u0185\u0002\u0002\u0540\u0542\u0007\u0246\u0002\u0002\u0541\u0534\u0003", + "\u0002\u0002\u0002\u0541\u0539\u0003\u0002\u0002\u0002\u0541\u053a\u0003", + "\u0002\u0002\u0002\u0541\u053d\u0003\u0002\u0002\u0002\u0541\u053f\u0003", + "\u0002\u0002\u0002\u0541\u0540\u0003\u0002\u0002\u0002\u0542C\u0003", + "\u0002\u0002\u0002\u0543\u0545\t\u0010\u0002\u0002\u0544\u0543\u0003", + "\u0002\u0002\u0002\u0544\u0545\u0003\u0002\u0002\u0002\u0545\u0546\u0003", + "\u0002\u0002\u0002\u0546\u0547\u0005\u020c\u0107\u0002\u0547\u0548\u0005", + "\u0220\u0111\u0002\u0548E\u0003\u0002\u0002\u0002\u0549\u054a\u0005", + "\u020c\u0107\u0002\u054a\u054b\u0005\u0220\u0111\u0002\u054bG\u0003", + "\u0002\u0002\u0002\u054c\u054d\u0007\u0133\u0002\u0002\u054d\u0564\u0007", + "\u040d\u0002\u0002\u054e\u054f\u0007\u018e\u0002\u0002\u054f\u0564\u0007", + "\u0091\u0002\u0002\u0550\u0552\u0007h\u0002\u0002\u0551\u0550\u0003", + "\u0002\u0002\u0002\u0551\u0552\u0003\u0002\u0002\u0002\u0552\u0553\u0003", + "\u0002\u0002\u0002\u0553\u0564\u0007-\u0002\u0002\u0554\u0555\u0007", + "\u013f\u0002\u0002\u0555\u055f\u0007\u0091\u0002\u0002\u0556\u0557\u0007", + "\u01c2\u0002\u0002\u0557\u055f\u0007\u0091\u0002\u0002\u0558\u0559\u0007", + "{\u0002\u0002\u0559\u055a\u0007\u0091\u0002\u0002\u055a\u055f\u0007", + "\u0145\u0002\u0002\u055b\u055c\u0007f\u0002\u0002\u055c\u055d\u0007", + "\u0091\u0002\u0002\u055d\u055f\u0007\u0145\u0002\u0002\u055e\u0554\u0003", + "\u0002\u0002\u0002\u055e\u0556\u0003\u0002\u0002\u0002\u055e\u0558\u0003", + "\u0002\u0002\u0002\u055e\u055b\u0003\u0002\u0002\u0002\u055f\u0564\u0003", + "\u0002\u0002\u0002\u0560\u0561\u0007\u0091\u0002\u0002\u0561\u0562\u0007", + "\u0206\u0002\u0002\u0562\u0564\t\r\u0002\u0002\u0563\u054c\u0003\u0002", + "\u0002\u0002\u0563\u054e\u0003\u0002\u0002\u0002\u0563\u0551\u0003\u0002", + "\u0002\u0002\u0563\u055e\u0003\u0002\u0002\u0002\u0563\u0560\u0003\u0002", + "\u0002\u0002\u0564I\u0003\u0002\u0002\u0002\u0565\u0566\u0007\u017a", + "\u0002\u0002\u0566\u0574\u0007\u040d\u0002\u0002\u0567\u0568\u0007%", + "\u0002\u0002\u0568\u0574\u0007\u040d\u0002\u0002\u0569\u056a\u0007\u023e", + "\u0002\u0002\u056a\u0574\u0007\u040d\u0002\u0002\u056b\u056c\u0007\u01d6", + "\u0002\u0002\u056c\u0574\u0007\u040d\u0002\u0002\u056d\u056e\u0007\u0210", + "\u0002\u0002\u056e\u0574\u0007\u040d\u0002\u0002\u056f\u0570\u0007\u01cf", + "\u0002\u0002\u0570\u0574\u0007\u040d\u0002\u0002\u0571\u0572\u0007\u01db", + "\u0002\u0002\u0572\u0574\u0005\u0212\u010a\u0002\u0573\u0565\u0003\u0002", + "\u0002\u0002\u0573\u0567\u0003\u0002\u0002\u0002\u0573\u0569\u0003\u0002", + "\u0002\u0002\u0573\u056b\u0003\u0002\u0002\u0002\u0573\u056d\u0003\u0002", + "\u0002\u0002\u0573\u056f\u0003\u0002\u0002\u0002\u0573\u0571\u0003\u0002", + "\u0002\u0002\u0574K\u0003\u0002\u0002\u0002\u0575\u0576\u0007\u03fe", + "\u0002\u0002\u0576\u057b\u0005N(\u0002\u0577\u0578\u0007\u0400\u0002", + "\u0002\u0578\u057a\u0005N(\u0002\u0579\u0577\u0003\u0002\u0002\u0002", + "\u057a\u057d\u0003\u0002\u0002\u0002\u057b\u0579\u0003\u0002\u0002\u0002", + "\u057b\u057c\u0003\u0002\u0002\u0002\u057c\u057e\u0003\u0002\u0002\u0002", + "\u057d\u057b\u0003\u0002\u0002\u0002\u057e\u057f\u0007\u03ff\u0002\u0002", + "\u057fM\u0003\u0002\u0002\u0002\u0580\u0581\u0005\u020c\u0107\u0002", + "\u0581\u0582\u0005P)\u0002\u0582\u0586\u0003\u0002\u0002\u0002\u0583", + "\u0586\u0005T+\u0002\u0584\u0586\u0005\\/\u0002\u0585\u0580\u0003\u0002", + "\u0002\u0002\u0585\u0583\u0003\u0002\u0002\u0002\u0585\u0584\u0003\u0002", + "\u0002\u0002\u0586O\u0003\u0002\u0002\u0002\u0587\u058b\u0005\u0220", + "\u0111\u0002\u0588\u058a\u0005R*\u0002\u0589\u0588\u0003\u0002\u0002", + "\u0002\u058a\u058d\u0003\u0002\u0002\u0002\u058b\u0589\u0003\u0002\u0002", + "\u0002\u058b\u058c\u0003\u0002\u0002\u0002\u058cQ\u0003\u0002\u0002", + "\u0002\u058d\u058b\u0003\u0002\u0002\u0002\u058e\u05c2\u0005\u021c\u010f", + "\u0002\u058f\u0590\u0007(\u0002\u0002\u0590\u05c2\u0005\u023c\u011f", + "\u0002\u0591\u0596\u0007\u011a\u0002\u0002\u0592\u0593\u0007l\u0002", + "\u0002\u0593\u0594\u0007\u00a8\u0002\u0002\u0594\u0596\u0005\u023e\u0120", + "\u0002\u0595\u0591\u0003\u0002\u0002\u0002\u0595\u0592\u0003\u0002\u0002", + "\u0002\u0596\u05c2\u0003\u0002\u0002\u0002\u0597\u0599\u0007v\u0002", + "\u0002\u0598\u0597\u0003\u0002\u0002\u0002\u0598\u0599\u0003\u0002\u0002", + "\u0002\u0599\u059a\u0003\u0002\u0002\u0002\u059a\u05c2\u0007T\u0002", + "\u0002\u059b\u059d\u0007\u00a5\u0002\u0002\u059c\u059e\u0007T\u0002", + "\u0002\u059d\u059c\u0003\u0002\u0002\u0002\u059d\u059e\u0003\u0002\u0002", + "\u0002\u059e\u05c2\u0003\u0002\u0002\u0002\u059f\u05a0\u0007\u0133\u0002", + "\u0002\u05a0\u05c2\u0007\u040d\u0002\u0002\u05a1\u05a2\u0007\u0131\u0002", + "\u0002\u05a2\u05c2\t\u0011\u0002\u0002\u05a3\u05a4\u0007\u0223\u0002", + "\u0002\u05a4\u05c2\t\u0012\u0002\u0002\u05a5\u05c2\u0005V,\u0002\u05a6", + "\u05a7\u0007\u001a\u0002\u0002\u05a7\u05c2\u0005\u0200\u0101\u0002\u05a8", + "\u05a9\u0007A\u0002\u0002\u05a9\u05ab\u0007\n\u0002\u0002\u05aa\u05a8", + "\u0003\u0002\u0002\u0002\u05aa\u05ab\u0003\u0002\u0002\u0002\u05ab\u05ac", + "\u0003\u0002\u0002\u0002\u05ac\u05ad\u0007\r\u0002\u0002\u05ad\u05ae", + "\u0007\u03fe\u0002\u0002\u05ae\u05af\u0005\u025a\u012e\u0002\u05af\u05b1", + "\u0007\u03ff\u0002\u0002\u05b0\u05b2\t\u0013\u0002\u0002\u05b1\u05b0", + "\u0003\u0002\u0002\u0002\u05b1\u05b2\u0003\u0002\u0002\u0002\u05b2\u05c2", + "\u0003\u0002\u0002\u0002\u05b3\u05b4\u0007\u00df\u0002\u0002\u05b4\u05b5", + "\u0007(\u0002\u0002\u05b5\u05c2\u0007\u0242\u0002\u0002\u05b6\u05b8", + "\u0007\u001d\u0002\u0002\u05b7\u05b9\u0005\u020c\u0107\u0002\u05b8\u05b7", + "\u0003\u0002\u0002\u0002\u05b8\u05b9\u0003\u0002\u0002\u0002\u05b9\u05bb", + "\u0003\u0002\u0002\u0002\u05ba\u05b6\u0003\u0002\u0002\u0002\u05ba\u05bb", + "\u0003\u0002\u0002\u0002\u05bb\u05bc\u0003\u0002\u0002\u0002\u05bc\u05bd", + "\u0007\u0019\u0002\u0002\u05bd\u05be\u0007\u03fe\u0002\u0002\u05be\u05bf", + "\u0005\u025a\u012e\u0002\u05bf\u05c0\u0007\u03ff\u0002\u0002\u05c0\u05c2", + "\u0003\u0002\u0002\u0002\u05c1\u058e\u0003\u0002\u0002\u0002\u05c1\u058f", + "\u0003\u0002\u0002\u0002\u05c1\u0595\u0003\u0002\u0002\u0002\u05c1\u0598", + "\u0003\u0002\u0002\u0002\u05c1\u059b\u0003\u0002\u0002\u0002\u05c1\u059f", + "\u0003\u0002\u0002\u0002\u05c1\u05a1\u0003\u0002\u0002\u0002\u05c1\u05a3", + "\u0003\u0002\u0002\u0002\u05c1\u05a5\u0003\u0002\u0002\u0002\u05c1\u05a6", + "\u0003\u0002\u0002\u0002\u05c1\u05aa\u0003\u0002\u0002\u0002\u05c1\u05b3", + "\u0003\u0002\u0002\u0002\u05c1\u05ba\u0003\u0002\u0002\u0002\u05c2S", + "\u0003\u0002\u0002\u0002\u05c3\u05c5\u0007\u001d\u0002\u0002\u05c4\u05c6", + "\u0005\u020c\u0107\u0002\u05c5\u05c4\u0003\u0002\u0002\u0002\u05c5\u05c6", + "\u0003\u0002\u0002\u0002\u05c6\u05c8\u0003\u0002\u0002\u0002\u05c7\u05c3", + "\u0003\u0002\u0002\u0002\u05c7\u05c8\u0003\u0002\u0002\u0002\u05c8\u05c9", + "\u0003\u0002\u0002\u0002\u05c9\u05ca\u0007v\u0002\u0002\u05ca\u05cc", + "\u0007T\u0002\u0002\u05cb\u05cd\u0005\u020c\u0107\u0002\u05cc\u05cb", + "\u0003\u0002\u0002\u0002\u05cc\u05cd\u0003\u0002\u0002\u0002\u05cd\u05cf", + "\u0003\u0002\u0002\u0002\u05ce\u05d0\u0005@!\u0002\u05cf\u05ce\u0003", + "\u0002\u0002\u0002\u05cf\u05d0\u0003\u0002\u0002\u0002\u05d0\u05d1\u0003", + "\u0002\u0002\u0002\u05d1\u05d5\u0005\u0230\u0119\u0002\u05d2\u05d4\u0005", + "B\"\u0002\u05d3\u05d2\u0003\u0002\u0002\u0002\u05d4\u05d7\u0003\u0002", + "\u0002\u0002\u05d5\u05d3\u0003\u0002\u0002\u0002\u05d5\u05d6\u0003\u0002", + "\u0002\u0002\u05d6\u0609\u0003\u0002\u0002\u0002\u05d7\u05d5\u0003\u0002", + "\u0002\u0002\u05d8\u05da\u0007\u001d\u0002\u0002\u05d9\u05db\u0005\u020c", + "\u0107\u0002\u05da\u05d9\u0003\u0002\u0002\u0002\u05da\u05db\u0003\u0002", + "\u0002\u0002\u05db\u05dd\u0003\u0002\u0002\u0002\u05dc\u05d8\u0003\u0002", + "\u0002\u0002\u05dc\u05dd\u0003\u0002\u0002\u0002\u05dd\u05de\u0003\u0002", + "\u0002\u0002\u05de\u05e0\u0007\u00a5\u0002\u0002\u05df\u05e1\t\u0014", + "\u0002\u0002\u05e0\u05df\u0003\u0002\u0002\u0002\u05e0\u05e1\u0003\u0002", + "\u0002\u0002\u05e1\u05e3\u0003\u0002\u0002\u0002\u05e2\u05e4\u0005\u020c", + "\u0107\u0002\u05e3\u05e2\u0003\u0002\u0002\u0002\u05e3\u05e4\u0003\u0002", + "\u0002\u0002\u05e4\u05e6\u0003\u0002\u0002\u0002\u05e5\u05e7\u0005@", + "!\u0002\u05e6\u05e5\u0003\u0002\u0002\u0002\u05e6\u05e7\u0003\u0002", + "\u0002\u0002\u05e7\u05e8\u0003\u0002\u0002\u0002\u05e8\u05ec\u0005\u0230", + "\u0119\u0002\u05e9\u05eb\u0005B\"\u0002\u05ea\u05e9\u0003\u0002\u0002", + "\u0002\u05eb\u05ee\u0003\u0002\u0002\u0002\u05ec\u05ea\u0003\u0002\u0002", + "\u0002\u05ec\u05ed\u0003\u0002\u0002\u0002\u05ed\u0609\u0003\u0002\u0002", + "\u0002\u05ee\u05ec\u0003\u0002\u0002\u0002\u05ef\u05f1\u0007\u001d\u0002", + "\u0002\u05f0\u05f2\u0005\u020c\u0107\u0002\u05f1\u05f0\u0003\u0002\u0002", + "\u0002\u05f1\u05f2\u0003\u0002\u0002\u0002\u05f2\u05f4\u0003\u0002\u0002", + "\u0002\u05f3\u05ef\u0003\u0002\u0002\u0002\u05f3\u05f4\u0003\u0002\u0002", + "\u0002\u05f4\u05f5\u0003\u0002\u0002\u0002\u05f5\u05f6\u0007>\u0002", + "\u0002\u05f6\u05f8\u0007T\u0002\u0002\u05f7\u05f9\u0005\u020c\u0107", + "\u0002\u05f8\u05f7\u0003\u0002\u0002\u0002\u05f8\u05f9\u0003\u0002\u0002", + "\u0002\u05f9\u05fa\u0003\u0002\u0002\u0002\u05fa\u05fb\u0005\u0230\u0119", + "\u0002\u05fb\u05fc\u0005V,\u0002\u05fc\u0609\u0003\u0002\u0002\u0002", + "\u05fd\u05ff\u0007\u001d\u0002\u0002\u05fe\u0600\u0005\u020c\u0107\u0002", + "\u05ff\u05fe\u0003\u0002\u0002\u0002\u05ff\u0600\u0003\u0002\u0002\u0002", + "\u0600\u0602\u0003\u0002\u0002\u0002\u0601\u05fd\u0003\u0002\u0002\u0002", + "\u0601\u0602\u0003\u0002\u0002\u0002\u0602\u0603\u0003\u0002\u0002\u0002", + "\u0603\u0604\u0007\u0019\u0002\u0002\u0604\u0605\u0007\u03fe\u0002\u0002", + "\u0605\u0606\u0005\u025a\u012e\u0002\u0606\u0607\u0007\u03ff\u0002\u0002", + "\u0607\u0609\u0003\u0002\u0002\u0002\u0608\u05c7\u0003\u0002\u0002\u0002", + "\u0608\u05dc\u0003\u0002\u0002\u0002\u0608\u05f3\u0003\u0002\u0002\u0002", + "\u0608\u0601\u0003\u0002\u0002\u0002\u0609U\u0003\u0002\u0002\u0002", + "\u060a\u060b\u0007|\u0002\u0002\u060b\u060d\u0005\u01f4\u00fb\u0002", + "\u060c\u060e\u0005\u0230\u0119\u0002\u060d\u060c\u0003\u0002\u0002\u0002", + "\u060d\u060e\u0003\u0002\u0002\u0002\u060e\u0611\u0003\u0002\u0002\u0002", + "\u060f\u0610\u0007d\u0002\u0002\u0610\u0612\t\u0015\u0002\u0002\u0611", + "\u060f\u0003\u0002\u0002\u0002\u0611\u0612\u0003\u0002\u0002\u0002\u0612", + "\u0614\u0003\u0002\u0002\u0002\u0613\u0615\u0005X-\u0002\u0614\u0613", + "\u0003\u0002\u0002\u0002\u0614\u0615\u0003\u0002\u0002\u0002\u0615W", + "\u0003\u0002\u0002\u0002\u0616\u0617\u0007l\u0002\u0002\u0617\u0618", + "\u0007*\u0002\u0002\u0618\u061c\u0005Z.\u0002\u0619\u061a\u0007l\u0002", + "\u0002\u061a\u061b\u0007\u00a8\u0002\u0002\u061b\u061d\u0005Z.\u0002", + "\u061c\u0619\u0003\u0002\u0002\u0002\u061c\u061d\u0003\u0002\u0002\u0002", + "\u061d\u0627\u0003\u0002\u0002\u0002\u061e\u061f\u0007l\u0002\u0002", + "\u061f\u0620\u0007\u00a8\u0002\u0002\u0620\u0624\u0005Z.\u0002\u0621", + "\u0622\u0007l\u0002\u0002\u0622\u0623\u0007*\u0002\u0002\u0623\u0625", + "\u0005Z.\u0002\u0624\u0621\u0003\u0002\u0002\u0002\u0624\u0625\u0003", + "\u0002\u0002\u0002\u0625\u0627\u0003\u0002\u0002\u0002\u0626\u0616\u0003", + "\u0002\u0002\u0002\u0626\u061e\u0003\u0002\u0002\u0002\u0627Y\u0003", + "\u0002\u0002\u0002\u0628\u062f\u0007\u0084\u0002\u0002\u0629\u062f\u0007", + "\u0014\u0002\u0002\u062a\u062b\u0007\u008c\u0002\u0002\u062b\u062f\u0007", + "j\u0002\u0002\u062c\u062d\u0007\u01c2\u0002\u0002\u062d\u062f\u0007", + "\u0111\u0002\u0002\u062e\u0628\u0003\u0002\u0002\u0002\u062e\u0629\u0003", + "\u0002\u0002\u0002\u062e\u062a\u0003\u0002\u0002\u0002\u062e\u062c\u0003", + "\u0002\u0002\u0002\u062f[\u0003\u0002\u0002\u0002\u0630\u0632\t\u0014", + "\u0002\u0002\u0631\u0633\u0005\u020c\u0107\u0002\u0632\u0631\u0003\u0002", + "\u0002\u0002\u0632\u0633\u0003\u0002\u0002\u0002\u0633\u0635\u0003\u0002", + "\u0002\u0002\u0634\u0636\u0005@!\u0002\u0635\u0634\u0003\u0002\u0002", + "\u0002\u0635\u0636\u0003\u0002\u0002\u0002\u0636\u0637\u0003\u0002\u0002", + "\u0002\u0637\u063b\u0005\u0230\u0119\u0002\u0638\u063a\u0005B\"\u0002", + "\u0639\u0638\u0003\u0002\u0002\u0002\u063a\u063d\u0003\u0002\u0002\u0002", + "\u063b\u0639\u0003\u0002\u0002\u0002\u063b\u063c\u0003\u0002\u0002\u0002", + "\u063c\u064d\u0003\u0002\u0002\u0002\u063d\u063b\u0003\u0002\u0002\u0002", + "\u063e\u0640\t\u0016\u0002\u0002\u063f\u0641\t\u0014\u0002\u0002\u0640", + "\u063f\u0003\u0002\u0002\u0002\u0640\u0641\u0003\u0002\u0002\u0002\u0641", + "\u0643\u0003\u0002\u0002\u0002\u0642\u0644\u0005\u020c\u0107\u0002\u0643", + "\u0642\u0003\u0002\u0002\u0002\u0643\u0644\u0003\u0002\u0002\u0002\u0644", + "\u0645\u0003\u0002\u0002\u0002\u0645\u0649\u0005\u0230\u0119\u0002\u0646", + "\u0648\u0005B\"\u0002\u0647\u0646\u0003\u0002\u0002\u0002\u0648\u064b", + "\u0003\u0002\u0002\u0002\u0649\u0647\u0003\u0002\u0002\u0002\u0649\u064a", + "\u0003\u0002\u0002\u0002\u064a\u064d\u0003\u0002\u0002\u0002\u064b\u0649", + "\u0003\u0002\u0002\u0002\u064c\u0630\u0003\u0002\u0002\u0002\u064c\u063e", + "\u0003\u0002\u0002\u0002\u064d]\u0003\u0002\u0002\u0002\u064e\u0650", + "\u0007\u0158\u0002\u0002\u064f\u0651\u0007\u03f5\u0002\u0002\u0650\u064f", + "\u0003\u0002\u0002\u0002\u0650\u0651\u0003\u0002\u0002\u0002\u0651\u0652", + "\u0003\u0002\u0002\u0002\u0652\u06df\u0005\u0202\u0102\u0002\u0653\u0655", + "\u0007\u011a\u0002\u0002\u0654\u0656\u0007\u03f5\u0002\u0002\u0655\u0654", + "\u0003\u0002\u0002\u0002\u0655\u0656\u0003\u0002\u0002\u0002\u0656\u0657", + "\u0003\u0002\u0002\u0002\u0657\u06df\u0005\u0212\u010a\u0002\u0658\u065a", + "\u0007\u011b\u0002\u0002\u0659\u065b\u0007\u03f5\u0002\u0002\u065a\u0659", + "\u0003\u0002\u0002\u0002\u065a\u065b\u0003\u0002\u0002\u0002\u065b\u065c", + "\u0003\u0002\u0002\u0002\u065c\u06df\u0005\u0212\u010a\u0002\u065d\u065f", + "\u0007(\u0002\u0002\u065e\u065d\u0003\u0002\u0002\u0002\u065e\u065f", + "\u0003\u0002\u0002\u0002\u065f\u0663\u0003\u0002\u0002\u0002\u0660\u0661", + "\u0007\u0018\u0002\u0002\u0661\u0664\u0007\u008c\u0002\u0002\u0662\u0664", + "\u0007\u02dd\u0002\u0002\u0663\u0660\u0003\u0002\u0002\u0002\u0663\u0662", + "\u0003\u0002\u0002\u0002\u0664\u0666\u0003\u0002\u0002\u0002\u0665\u0667", + "\u0007\u03f5\u0002\u0002\u0666\u0665\u0003\u0002\u0002\u0002\u0666\u0667", + "\u0003\u0002\u0002\u0002\u0667\u066a\u0003\u0002\u0002\u0002\u0668\u066b", + "\u0005\u01fe\u0100\u0002\u0669\u066b\u0007(\u0002\u0002\u066a\u0668", + "\u0003\u0002\u0002\u0002\u066a\u0669\u0003\u0002\u0002\u0002\u066b\u06df", + "\u0003\u0002\u0002\u0002\u066c\u066e\t\u0017\u0002\u0002\u066d\u066f", + "\u0007\u03f5\u0002\u0002\u066e\u066d\u0003\u0002\u0002\u0002\u066e\u066f", + "\u0003\u0002\u0002\u0002\u066f\u0670\u0003\u0002\u0002\u0002\u0670\u06df", + "\t\u0018\u0002\u0002\u0671\u0673\u0007(\u0002\u0002\u0672\u0671\u0003", + "\u0002\u0002\u0002\u0672\u0673\u0003\u0002\u0002\u0002\u0673\u0674\u0003", + "\u0002\u0002\u0002\u0674\u0676\u0007\u001a\u0002\u0002\u0675\u0677\u0007", + "\u03f5\u0002\u0002\u0676\u0675\u0003\u0002\u0002\u0002\u0676\u0677\u0003", + "\u0002\u0002\u0002\u0677\u0678\u0003\u0002\u0002\u0002\u0678\u06df\u0005", + "\u0200\u0101\u0002\u0679\u067b\u0007\u0133\u0002\u0002\u067a\u067c\u0007", + "\u03f5\u0002\u0002\u067b\u067a\u0003\u0002\u0002\u0002\u067b\u067c\u0003", + "\u0002\u0002\u0002\u067c\u067d\u0003\u0002\u0002\u0002\u067d\u06df\u0007", + "\u040d\u0002\u0002\u067e\u0680\u0007\u0138\u0002\u0002\u067f\u0681\u0007", + "\u03f5\u0002\u0002\u0680\u067f\u0003\u0002\u0002\u0002\u0680\u0681\u0003", + "\u0002\u0002\u0002\u0681\u0682\u0003\u0002\u0002\u0002\u0682\u06df\t", + "\u0019\u0002\u0002\u0683\u0685\u0007\u013a\u0002\u0002\u0684\u0686\u0007", + "\u03f5\u0002\u0002\u0685\u0684\u0003\u0002\u0002\u0002\u0685\u0686\u0003", + "\u0002\u0002\u0002\u0686\u0687\u0003\u0002\u0002\u0002\u0687\u06df\u0007", + "\u040d\u0002\u0002\u0688\u0689\u0007\u0145\u0002\u0002\u0689\u068b\u0007", + "\u014c\u0002\u0002\u068a\u068c\u0007\u03f5\u0002\u0002\u068b\u068a\u0003", + "\u0002\u0002\u0002\u068b\u068c\u0003\u0002\u0002\u0002\u068c\u068d\u0003", + "\u0002\u0002\u0002\u068d\u06df\u0007\u040d\u0002\u0002\u068e\u0690\u0007", + "\u014a\u0002\u0002\u068f\u0691\u0007\u03f5\u0002\u0002\u0690\u068f\u0003", + "\u0002\u0002\u0002\u0690\u0691\u0003\u0002\u0002\u0002\u0691\u0692\u0003", + "\u0002\u0002\u0002\u0692\u06df\t\u0018\u0002\u0002\u0693\u0695\u0007", + "\u0155\u0002\u0002\u0694\u0696\u0007\u03f5\u0002\u0002\u0695\u0694\u0003", + "\u0002\u0002\u0002\u0695\u0696\u0003\u0002\u0002\u0002\u0696\u0697\u0003", + "\u0002\u0002\u0002\u0697\u06df\u0007\u040d\u0002\u0002\u0698\u0699\u0007", + "J\u0002\u0002\u0699\u069b\u0007\u014c\u0002\u0002\u069a\u069c\u0007", + "\u03f5\u0002\u0002\u069b\u069a\u0003\u0002\u0002\u0002\u069b\u069c\u0003", + "\u0002\u0002\u0002\u069c\u069d\u0003\u0002\u0002\u0002\u069d\u06df\u0007", + "\u040d\u0002\u0002\u069e\u06a0\u0007\u0182\u0002\u0002\u069f\u06a1\u0007", + "\u03f5\u0002\u0002\u06a0\u069f\u0003\u0002\u0002\u0002\u06a0\u06a1\u0003", + "\u0002\u0002\u0002\u06a1\u06a2\u0003\u0002\u0002\u0002\u06a2\u06df\t", + "\u001a\u0002\u0002\u06a3\u06a5\u0007\u018d\u0002\u0002\u06a4\u06a6\u0007", + "\u03f5\u0002\u0002\u06a5\u06a4\u0003\u0002\u0002\u0002\u06a5\u06a6\u0003", + "\u0002\u0002\u0002\u06a6\u06a7\u0003\u0002\u0002\u0002\u06a7\u06df\u0005", + "\u0214\u010b\u0002\u06a8\u06aa\u0007\u01ae\u0002\u0002\u06a9\u06ab\u0007", + "\u03f5\u0002\u0002\u06aa\u06a9\u0003\u0002\u0002\u0002\u06aa\u06ab\u0003", + "\u0002\u0002\u0002\u06ab\u06ac\u0003\u0002\u0002\u0002\u06ac\u06df\u0005", + "\u0212\u010a\u0002\u06ad\u06af\u0007\u01b7\u0002\u0002\u06ae\u06b0\u0007", + "\u03f5\u0002\u0002\u06af\u06ae\u0003\u0002\u0002\u0002\u06af\u06b0\u0003", + "\u0002\u0002\u0002\u06b0\u06b1\u0003\u0002\u0002\u0002\u06b1\u06df\u0005", + "\u0212\u010a\u0002\u06b2\u06b4\u0007\u01d0\u0002\u0002\u06b3\u06b5\u0007", + "\u03f5\u0002\u0002\u06b4\u06b3\u0003\u0002\u0002\u0002\u06b4\u06b5\u0003", + "\u0002\u0002\u0002\u06b5\u06b6\u0003\u0002\u0002\u0002\u06b6\u06df\t", + "\u001b\u0002\u0002\u06b7\u06b9\u0007\u01d6\u0002\u0002\u06b8\u06ba\u0007", + "\u03f5\u0002\u0002\u06b9\u06b8\u0003\u0002\u0002\u0002\u06b9\u06ba\u0003", + "\u0002\u0002\u0002\u06ba\u06bb\u0003\u0002\u0002\u0002\u06bb\u06df\u0007", + "\u040d\u0002\u0002\u06bc\u06be\u0007\u0203\u0002\u0002\u06bd\u06bf\u0007", + "\u03f5\u0002\u0002\u06be\u06bd\u0003\u0002\u0002\u0002\u06be\u06bf\u0003", + "\u0002\u0002\u0002\u06bf\u06c0\u0003\u0002\u0002\u0002\u06c0\u06df\t", + "\u001c\u0002\u0002\u06c1\u06c3\u0007\u021e\u0002\u0002\u06c2\u06c4\u0007", + "\u03f5\u0002\u0002\u06c3\u06c2\u0003\u0002\u0002\u0002\u06c3\u06c4\u0003", + "\u0002\u0002\u0002\u06c4\u06c5\u0003\u0002\u0002\u0002\u06c5\u06df\t", + "\u001b\u0002\u0002\u06c6\u06c8\u0007\u021f\u0002\u0002\u06c7\u06c9\u0007", + "\u03f5\u0002\u0002\u06c8\u06c7\u0003\u0002\u0002\u0002\u06c8\u06c9\u0003", + "\u0002\u0002\u0002\u06c9\u06ca\u0003\u0002\u0002\u0002\u06ca\u06df\t", + "\u001b\u0002\u0002\u06cb\u06cd\u0007\u0220\u0002\u0002\u06cc\u06ce\u0007", + "\u03f5\u0002\u0002\u06cd\u06cc\u0003\u0002\u0002\u0002\u06cd\u06ce\u0003", + "\u0002\u0002\u0002\u06ce\u06cf\u0003\u0002\u0002\u0002\u06cf\u06df\u0005", + "\u0212\u010a\u0002\u06d0\u06d1\u0007\u022e\u0002\u0002\u06d1\u06d3\u0005", + "\u020c\u0107\u0002\u06d2\u06d4\u0005`1\u0002\u06d3\u06d2\u0003\u0002", + "\u0002\u0002\u06d3\u06d4\u0003\u0002\u0002\u0002\u06d4\u06df\u0003\u0002", + "\u0002\u0002\u06d5\u06df\u0005`1\u0002\u06d6\u06d8\u0007\u00a4\u0002", + "\u0002\u06d7\u06d9\u0007\u03f5\u0002\u0002\u06d8\u06d7\u0003\u0002\u0002", + "\u0002\u06d8\u06d9\u0003\u0002\u0002\u0002\u06d9\u06da\u0003\u0002\u0002", + "\u0002\u06da\u06db\u0007\u03fe\u0002\u0002\u06db\u06dc\u0005\u022e\u0118", + "\u0002\u06dc\u06dd\u0007\u03ff\u0002\u0002\u06dd\u06df\u0003\u0002\u0002", + "\u0002\u06de\u064e\u0003\u0002\u0002\u0002\u06de\u0653\u0003\u0002\u0002", + "\u0002\u06de\u0658\u0003\u0002\u0002\u0002\u06de\u065e\u0003\u0002\u0002", + "\u0002\u06de\u066c\u0003\u0002\u0002\u0002\u06de\u0672\u0003\u0002\u0002", + "\u0002\u06de\u0679\u0003\u0002\u0002\u0002\u06de\u067e\u0003\u0002\u0002", + "\u0002\u06de\u0683\u0003\u0002\u0002\u0002\u06de\u0688\u0003\u0002\u0002", + "\u0002\u06de\u068e\u0003\u0002\u0002\u0002\u06de\u0693\u0003\u0002\u0002", + "\u0002\u06de\u0698\u0003\u0002\u0002\u0002\u06de\u069e\u0003\u0002\u0002", + "\u0002\u06de\u06a3\u0003\u0002\u0002\u0002\u06de\u06a8\u0003\u0002\u0002", + "\u0002\u06de\u06ad\u0003\u0002\u0002\u0002\u06de\u06b2\u0003\u0002\u0002", + "\u0002\u06de\u06b7\u0003\u0002\u0002\u0002\u06de\u06bc\u0003\u0002\u0002", + "\u0002\u06de\u06c1\u0003\u0002\u0002\u0002\u06de\u06c6\u0003\u0002\u0002", + "\u0002\u06de\u06cb\u0003\u0002\u0002\u0002\u06de\u06d0\u0003\u0002\u0002", + "\u0002\u06de\u06d5\u0003\u0002\u0002\u0002\u06de\u06d6\u0003\u0002\u0002", + "\u0002\u06df_\u0003\u0002\u0002\u0002\u06e0\u06e1\u0007\u0223\u0002", + "\u0002\u06e1\u06e2\t\u0012\u0002\u0002\u06e2a\u0003\u0002\u0002\u0002", + "\u06e3\u06e4\u0007u\u0002\u0002\u06e4\u06e5\u0007\u0012\u0002\u0002", + "\u06e5\u06e8\u0005d3\u0002\u06e6\u06e7\u0007\u01d5\u0002\u0002\u06e7", + "\u06e9\u0005\u0212\u010a\u0002\u06e8\u06e6\u0003\u0002\u0002\u0002\u06e8", + "\u06e9\u0003\u0002\u0002\u0002\u06e9\u06f1\u0003\u0002\u0002\u0002\u06ea", + "\u06eb\u0007\u0228\u0002\u0002\u06eb\u06ec\u0007\u0012\u0002\u0002\u06ec", + "\u06ef\u0005f4\u0002\u06ed\u06ee\u0007\u0229\u0002\u0002\u06ee\u06f0", + "\u0005\u0212\u010a\u0002\u06ef\u06ed\u0003\u0002\u0002\u0002\u06ef\u06f0", + "\u0003\u0002\u0002\u0002\u06f0\u06f2\u0003\u0002\u0002\u0002\u06f1\u06ea", + "\u0003\u0002\u0002\u0002\u06f1\u06f2\u0003\u0002\u0002\u0002\u06f2\u06fe", + "\u0003\u0002\u0002\u0002\u06f3\u06f4\u0007\u03fe\u0002\u0002\u06f4\u06f9", + "\u0005h5\u0002\u06f5\u06f6\u0007\u0400\u0002\u0002\u06f6\u06f8\u0005", + "h5\u0002\u06f7\u06f5\u0003\u0002\u0002\u0002\u06f8\u06fb\u0003\u0002", + "\u0002\u0002\u06f9\u06f7\u0003\u0002\u0002\u0002\u06f9\u06fa\u0003\u0002", + "\u0002\u0002\u06fa\u06fc\u0003\u0002\u0002\u0002\u06fb\u06f9\u0003\u0002", + "\u0002\u0002\u06fc\u06fd\u0007\u03ff\u0002\u0002\u06fd\u06ff\u0003\u0002", + "\u0002\u0002\u06fe\u06f3\u0003\u0002\u0002\u0002\u06fe\u06ff\u0003\u0002", + "\u0002\u0002\u06ffc\u0003\u0002\u0002\u0002\u0700\u0702\u0007\\\u0002", + "\u0002\u0701\u0700\u0003\u0002\u0002\u0002\u0701\u0702\u0003\u0002\u0002", + "\u0002\u0702\u0703\u0003\u0002\u0002\u0002\u0703\u0704\u0007\u0178\u0002", + "\u0002\u0704\u0705\u0007\u03fe\u0002\u0002\u0705\u0706\u0005\u025a\u012e", + "\u0002\u0706\u0707\u0007\u03ff\u0002\u0002\u0707\u072e\u0003\u0002\u0002", + "\u0002\u0708\u070a\u0007\\\u0002\u0002\u0709\u0708\u0003\u0002\u0002", + "\u0002\u0709\u070a\u0003\u0002\u0002\u0002\u070a\u070b\u0003\u0002\u0002", + "\u0002\u070b\u070f\u0007T\u0002\u0002\u070c\u070d\u0007\u0114\u0002", + "\u0002\u070d\u070e\u0007\u03f5\u0002\u0002\u070e\u0710\t\u001d\u0002", + "\u0002\u070f\u070c\u0003\u0002\u0002\u0002\u070f\u0710\u0003\u0002\u0002", + "\u0002\u0710\u0711\u0003\u0002\u0002\u0002\u0711\u0712\u0007\u03fe\u0002", + "\u0002\u0712\u0713\u0005\u022c\u0117\u0002\u0713\u0714\u0007\u03ff\u0002", + "\u0002\u0714\u072e\u0003\u0002\u0002\u0002\u0715\u071f\u0007y\u0002", + "\u0002\u0716\u0717\u0007\u03fe\u0002\u0002\u0717\u0718\u0005\u025a\u012e", + "\u0002\u0718\u0719\u0007\u03ff\u0002\u0002\u0719\u0720\u0003\u0002\u0002", + "\u0002\u071a\u071b\u0007\u0130\u0002\u0002\u071b\u071c\u0007\u03fe\u0002", + "\u0002\u071c\u071d\u0005\u022c\u0117\u0002\u071d\u071e\u0007\u03ff\u0002", + "\u0002\u071e\u0720\u0003\u0002\u0002\u0002\u071f\u0716\u0003\u0002\u0002", + "\u0002\u071f\u071a\u0003\u0002\u0002\u0002\u0720\u072e\u0003\u0002\u0002", + "\u0002\u0721\u072b\u0007\u0193\u0002\u0002\u0722\u0723\u0007\u03fe\u0002", + "\u0002\u0723\u0724\u0005\u025a\u012e\u0002\u0724\u0725\u0007\u03ff\u0002", + "\u0002\u0725\u072c\u0003\u0002\u0002\u0002\u0726\u0727\u0007\u0130\u0002", + "\u0002\u0727\u0728\u0007\u03fe\u0002\u0002\u0728\u0729\u0005\u022c\u0117", + "\u0002\u0729\u072a\u0007\u03ff\u0002\u0002\u072a\u072c\u0003\u0002\u0002", + "\u0002\u072b\u0722\u0003\u0002\u0002\u0002\u072b\u0726\u0003\u0002\u0002", + "\u0002\u072c\u072e\u0003\u0002\u0002\u0002\u072d\u0701\u0003\u0002\u0002", + "\u0002\u072d\u0709\u0003\u0002\u0002\u0002\u072d\u0715\u0003\u0002\u0002", + "\u0002\u072d\u0721\u0003\u0002\u0002\u0002\u072ee\u0003\u0002\u0002", + "\u0002\u072f\u0731\u0007\\\u0002\u0002\u0730\u072f\u0003\u0002\u0002", + "\u0002\u0730\u0731\u0003\u0002\u0002\u0002\u0731\u0732\u0003\u0002\u0002", + "\u0002\u0732\u0733\u0007\u0178\u0002\u0002\u0733\u0734\u0007\u03fe\u0002", + "\u0002\u0734\u0735\u0005\u025a\u012e\u0002\u0735\u0736\u0007\u03ff\u0002", + "\u0002\u0736\u0745\u0003\u0002\u0002\u0002\u0737\u0739\u0007\\\u0002", + "\u0002\u0738\u0737\u0003\u0002\u0002\u0002\u0738\u0739\u0003\u0002\u0002", + "\u0002\u0739\u073a\u0003\u0002\u0002\u0002\u073a\u073e\u0007T\u0002", + "\u0002\u073b\u073c\u0007\u0114\u0002\u0002\u073c\u073d\u0007\u03f5\u0002", + "\u0002\u073d\u073f\t\u001d\u0002\u0002\u073e\u073b\u0003\u0002\u0002", + "\u0002\u073e\u073f\u0003\u0002\u0002\u0002\u073f\u0740\u0003\u0002\u0002", + "\u0002\u0740\u0741\u0007\u03fe\u0002\u0002\u0741\u0742\u0005\u022c\u0117", + "\u0002\u0742\u0743\u0007\u03ff\u0002\u0002\u0743\u0745\u0003\u0002\u0002", + "\u0002\u0744\u0730\u0003\u0002\u0002\u0002\u0744\u0738\u0003\u0002\u0002", + "\u0002\u0745g\u0003\u0002\u0002\u0002\u0746\u0747\u0007u\u0002\u0002", + "\u0747\u0748\u0005\u020c\u0107\u0002\u0748\u0749\u0007\u00ac\u0002\u0002", + "\u0749\u074a\u0007\u0191\u0002\u0002\u074a\u074b\u0007\u0231\u0002\u0002", + "\u074b\u074c\u0007\u03fe\u0002\u0002\u074c\u0751\u0005j6\u0002\u074d", + "\u074e\u0007\u0400\u0002\u0002\u074e\u0750\u0005j6\u0002\u074f\u074d", + "\u0003\u0002\u0002\u0002\u0750\u0753\u0003\u0002\u0002\u0002\u0751\u074f", + "\u0003\u0002\u0002\u0002\u0751\u0752\u0003\u0002\u0002\u0002\u0752\u0754", + "\u0003\u0002\u0002\u0002\u0753\u0751\u0003\u0002\u0002\u0002\u0754\u0758", + "\u0007\u03ff\u0002\u0002\u0755\u0757\u0005p9\u0002\u0756\u0755\u0003", + "\u0002\u0002\u0002\u0757\u075a\u0003\u0002\u0002\u0002\u0758\u0756\u0003", + "\u0002\u0002\u0002\u0758\u0759\u0003\u0002\u0002\u0002\u0759\u0763\u0003", + "\u0002\u0002\u0002\u075a\u0758\u0003\u0002\u0002\u0002\u075b\u0760\u0005", + "n8\u0002\u075c\u075d\u0007\u0400\u0002\u0002\u075d\u075f\u0005n8\u0002", + "\u075e\u075c\u0003\u0002\u0002\u0002\u075f\u0762\u0003\u0002\u0002\u0002", + "\u0760\u075e\u0003\u0002\u0002\u0002\u0760\u0761\u0003\u0002\u0002\u0002", + "\u0761\u0764\u0003\u0002\u0002\u0002\u0762\u0760\u0003\u0002\u0002\u0002", + "\u0763\u075b\u0003\u0002\u0002\u0002\u0763\u0764\u0003\u0002\u0002\u0002", + "\u0764\u07ca\u0003\u0002\u0002\u0002\u0765\u0766\u0007u\u0002\u0002", + "\u0766\u0767\u0005\u020c\u0107\u0002\u0767\u0768\u0007\u00ac\u0002\u0002", + "\u0768\u0769\u0007\u0191\u0002\u0002\u0769\u076a\u0007\u0231\u0002\u0002", + "\u076a\u076e\u0005j6\u0002\u076b\u076d\u0005p9\u0002\u076c\u076b\u0003", + "\u0002\u0002\u0002\u076d\u0770\u0003\u0002\u0002\u0002\u076e\u076c\u0003", + "\u0002\u0002\u0002\u076e\u076f\u0003\u0002\u0002\u0002\u076f\u0779\u0003", + "\u0002\u0002\u0002\u0770\u076e\u0003\u0002\u0002\u0002\u0771\u0776\u0005", + "n8\u0002\u0772\u0773\u0007\u0400\u0002\u0002\u0773\u0775\u0005n8\u0002", + "\u0774\u0772\u0003\u0002\u0002\u0002\u0775\u0778\u0003\u0002\u0002\u0002", + "\u0776\u0774\u0003\u0002\u0002\u0002\u0776\u0777\u0003\u0002\u0002\u0002", + "\u0777\u077a\u0003\u0002\u0002\u0002\u0778\u0776\u0003\u0002\u0002\u0002", + "\u0779\u0771\u0003\u0002\u0002\u0002\u0779\u077a\u0003\u0002\u0002\u0002", + "\u077a\u07ca\u0003\u0002\u0002\u0002\u077b\u077c\u0007u\u0002\u0002", + "\u077c\u077d\u0005\u020c\u0107\u0002\u077d\u077e\u0007\u00ac\u0002\u0002", + "\u077e\u077f\u0007I\u0002\u0002\u077f\u0780\u0007\u03fe\u0002\u0002", + "\u0780\u0785\u0005j6\u0002\u0781\u0782\u0007\u0400\u0002\u0002\u0782", + "\u0784\u0005j6\u0002\u0783\u0781\u0003\u0002\u0002\u0002\u0784\u0787", + "\u0003\u0002\u0002\u0002\u0785\u0783\u0003\u0002\u0002\u0002\u0785\u0786", + "\u0003\u0002\u0002\u0002\u0786\u0788\u0003\u0002\u0002\u0002\u0787\u0785", + "\u0003\u0002\u0002\u0002\u0788\u078c\u0007\u03ff\u0002\u0002\u0789\u078b", + "\u0005p9\u0002\u078a\u0789\u0003\u0002\u0002\u0002\u078b\u078e\u0003", + "\u0002\u0002\u0002\u078c\u078a\u0003\u0002\u0002\u0002\u078c\u078d\u0003", + "\u0002\u0002\u0002\u078d\u0797\u0003\u0002\u0002\u0002\u078e\u078c\u0003", + "\u0002\u0002\u0002\u078f\u0794\u0005n8\u0002\u0790\u0791\u0007\u0400", + "\u0002\u0002\u0791\u0793\u0005n8\u0002\u0792\u0790\u0003\u0002\u0002", + "\u0002\u0793\u0796\u0003\u0002\u0002\u0002\u0794\u0792\u0003\u0002\u0002", + "\u0002\u0794\u0795\u0003\u0002\u0002\u0002\u0795\u0798\u0003\u0002\u0002", + "\u0002\u0796\u0794\u0003\u0002\u0002\u0002\u0797\u078f\u0003\u0002\u0002", + "\u0002\u0797\u0798\u0003\u0002\u0002\u0002\u0798\u07ca\u0003\u0002\u0002", + "\u0002\u0799\u079a\u0007u\u0002\u0002\u079a\u079b\u0005\u020c\u0107", + "\u0002\u079b\u079c\u0007\u00ac\u0002\u0002\u079c\u079d\u0007I\u0002", + "\u0002\u079d\u079e\u0007\u03fe\u0002\u0002\u079e\u07a3\u0005l7\u0002", + "\u079f\u07a0\u0007\u0400\u0002\u0002\u07a0\u07a2\u0005l7\u0002\u07a1", + "\u079f\u0003\u0002\u0002\u0002\u07a2\u07a5\u0003\u0002\u0002\u0002\u07a3", + "\u07a1\u0003\u0002\u0002\u0002\u07a3\u07a4\u0003\u0002\u0002\u0002\u07a4", + "\u07a6\u0003\u0002\u0002\u0002\u07a5\u07a3\u0003\u0002\u0002\u0002\u07a6", + "\u07aa\u0007\u03ff\u0002\u0002\u07a7\u07a9\u0005p9\u0002\u07a8\u07a7", + "\u0003\u0002\u0002\u0002\u07a9\u07ac\u0003\u0002\u0002\u0002\u07aa\u07a8", + "\u0003\u0002\u0002\u0002\u07aa\u07ab\u0003\u0002\u0002\u0002\u07ab\u07b5", + "\u0003\u0002\u0002\u0002\u07ac\u07aa\u0003\u0002\u0002\u0002\u07ad\u07b2", + "\u0005n8\u0002\u07ae\u07af\u0007\u0400\u0002\u0002\u07af\u07b1\u0005", + "n8\u0002\u07b0\u07ae\u0003\u0002\u0002\u0002\u07b1\u07b4\u0003\u0002", + "\u0002\u0002\u07b2\u07b0\u0003\u0002\u0002\u0002\u07b2\u07b3\u0003\u0002", + "\u0002\u0002\u07b3\u07b6\u0003\u0002\u0002\u0002\u07b4\u07b2\u0003\u0002", + "\u0002\u0002\u07b5\u07ad\u0003\u0002\u0002\u0002\u07b5\u07b6\u0003\u0002", + "\u0002\u0002\u07b6\u07ca\u0003\u0002\u0002\u0002\u07b7\u07b8\u0007u", + "\u0002\u0002\u07b8\u07bc\u0005\u020c\u0107\u0002\u07b9\u07bb\u0005p", + "9\u0002\u07ba\u07b9\u0003\u0002\u0002\u0002\u07bb\u07be\u0003\u0002", + "\u0002\u0002\u07bc\u07ba\u0003\u0002\u0002\u0002\u07bc\u07bd\u0003\u0002", + "\u0002\u0002\u07bd\u07c7\u0003\u0002\u0002\u0002\u07be\u07bc\u0003\u0002", + "\u0002\u0002\u07bf\u07c4\u0005n8\u0002\u07c0\u07c1\u0007\u0400\u0002", + "\u0002\u07c1\u07c3\u0005n8\u0002\u07c2\u07c0\u0003\u0002\u0002\u0002", + "\u07c3\u07c6\u0003\u0002\u0002\u0002\u07c4\u07c2\u0003\u0002\u0002\u0002", + "\u07c4\u07c5\u0003\u0002\u0002\u0002\u07c5\u07c8\u0003\u0002\u0002\u0002", + "\u07c6\u07c4\u0003\u0002\u0002\u0002\u07c7\u07bf\u0003\u0002\u0002\u0002", + "\u07c7\u07c8\u0003\u0002\u0002\u0002\u07c8\u07ca\u0003\u0002\u0002\u0002", + "\u07c9\u0746\u0003\u0002\u0002\u0002\u07c9\u0765\u0003\u0002\u0002\u0002", + "\u07c9\u077b\u0003\u0002\u0002\u0002\u07c9\u0799\u0003\u0002\u0002\u0002", + "\u07c9\u07b7\u0003\u0002\u0002\u0002\u07cai\u0003\u0002\u0002\u0002", + "\u07cb\u07cf\u0005\u021e\u0110\u0002\u07cc\u07cf\u0005\u025a\u012e\u0002", + "\u07cd\u07cf\u0007e\u0002\u0002\u07ce\u07cb\u0003\u0002\u0002\u0002", + "\u07ce\u07cc\u0003\u0002\u0002\u0002\u07ce\u07cd\u0003\u0002\u0002\u0002", + "\u07cfk\u0003\u0002\u0002\u0002\u07d0\u07d1\u0007\u03fe\u0002\u0002", + "\u07d1\u07d4\u0005j6\u0002\u07d2\u07d3\u0007\u0400\u0002\u0002\u07d3", + "\u07d5\u0005j6\u0002\u07d4\u07d2\u0003\u0002\u0002\u0002\u07d5\u07d6", + "\u0003\u0002\u0002\u0002\u07d6\u07d4\u0003\u0002\u0002\u0002\u07d6\u07d7", + "\u0003\u0002\u0002\u0002\u07d7\u07d8\u0003\u0002\u0002\u0002\u07d8\u07d9", + "\u0007\u03ff\u0002\u0002\u07d9m\u0003\u0002\u0002\u0002\u07da\u07db", + "\u0007\u0228\u0002\u0002\u07db\u07df\u0005\u020c\u0107\u0002\u07dc\u07de", + "\u0005p9\u0002\u07dd\u07dc\u0003\u0002\u0002\u0002\u07de\u07e1\u0003", + "\u0002\u0002\u0002\u07df\u07dd\u0003\u0002\u0002\u0002\u07df\u07e0\u0003", + "\u0002\u0002\u0002\u07e0o\u0003\u0002\u0002\u0002\u07e1\u07df\u0003", + "\u0002\u0002\u0002\u07e2\u07e4\u0007\u0223\u0002\u0002\u07e3\u07e2\u0003", + "\u0002\u0002\u0002\u07e3\u07e4\u0003\u0002\u0002\u0002\u07e4\u07e5\u0003", + "\u0002\u0002\u0002\u07e5\u07e7\u0007\u0158\u0002\u0002\u07e6\u07e8\u0007", + "\u03f5\u0002\u0002\u07e7\u07e6\u0003\u0002\u0002\u0002\u07e7\u07e8\u0003", + "\u0002\u0002\u0002\u07e8\u07e9\u0003\u0002\u0002\u0002\u07e9\u0810\u0005", + "\u0202\u0102\u0002\u07ea\u07ec\u0007\u0133\u0002\u0002\u07eb\u07ed\u0007", + "\u03f5\u0002\u0002\u07ec\u07eb\u0003\u0002\u0002\u0002\u07ec\u07ed\u0003", + "\u0002\u0002\u0002\u07ed\u07ee\u0003\u0002\u0002\u0002\u07ee\u0810\u0007", + "\u040d\u0002\u0002\u07ef\u07f0\u0007\u0145\u0002\u0002\u07f0\u07f2\u0007", + "\u014c\u0002\u0002\u07f1\u07f3\u0007\u03f5\u0002\u0002\u07f2\u07f1\u0003", + "\u0002\u0002\u0002\u07f2\u07f3\u0003\u0002\u0002\u0002\u07f3\u07f4\u0003", + "\u0002\u0002\u0002\u07f4\u0810\u0007\u040d\u0002\u0002\u07f5\u07f6\u0007", + "J\u0002\u0002\u07f6\u07f8\u0007\u014c\u0002\u0002\u07f7\u07f9\u0007", + "\u03f5\u0002\u0002\u07f8\u07f7\u0003\u0002\u0002\u0002\u07f8\u07f9\u0003", + "\u0002\u0002\u0002\u07f9\u07fa\u0003\u0002\u0002\u0002\u07fa\u0810\u0007", + "\u040d\u0002\u0002\u07fb\u07fd\u0007\u01ae\u0002\u0002\u07fc\u07fe\u0007", + "\u03f5\u0002\u0002\u07fd\u07fc\u0003\u0002\u0002\u0002\u07fd\u07fe\u0003", + "\u0002\u0002\u0002\u07fe\u07ff\u0003\u0002\u0002\u0002\u07ff\u0810\u0005", + "\u0212\u010a\u0002\u0800\u0802\u0007\u01b7\u0002\u0002\u0801\u0803\u0007", + "\u03f5\u0002\u0002\u0802\u0801\u0003\u0002\u0002\u0002\u0802\u0803\u0003", + "\u0002\u0002\u0002\u0803\u0804\u0003\u0002\u0002\u0002\u0804\u0810\u0005", + "\u0212\u010a\u0002\u0805\u0807\u0007\u022e\u0002\u0002\u0806\u0808\u0007", + "\u03f5\u0002\u0002\u0807\u0806\u0003\u0002\u0002\u0002\u0807\u0808\u0003", + "\u0002\u0002\u0002\u0808\u0809\u0003\u0002\u0002\u0002\u0809\u0810\u0005", + "\u020c\u0107\u0002\u080a\u080c\u0007\u01c3\u0002\u0002\u080b\u080d\u0007", + "\u03f5\u0002\u0002\u080c\u080b\u0003\u0002\u0002\u0002\u080c\u080d\u0003", + "\u0002\u0002\u0002\u080d\u080e\u0003\u0002\u0002\u0002\u080e\u0810\u0005", + "\u020c\u0107\u0002\u080f\u07e3\u0003\u0002\u0002\u0002\u080f\u07ea\u0003", + "\u0002\u0002\u0002\u080f\u07ef\u0003\u0002\u0002\u0002\u080f\u07f5\u0003", + "\u0002\u0002\u0002\u080f\u07fb\u0003\u0002\u0002\u0002\u080f\u0800\u0003", + "\u0002\u0002\u0002\u080f\u0805\u0003\u0002\u0002\u0002\u080f\u080a\u0003", + "\u0002\u0002\u0002\u0810q\u0003\u0002\u0002\u0002\u0811\u0812\u0007", + "\t\u0002\u0002\u0812\u0814\t\u0002\u0002\u0002\u0813\u0815\u0005\u020c", + "\u0107\u0002\u0814\u0813\u0003\u0002\u0002\u0002\u0814\u0815\u0003\u0002", + "\u0002\u0002\u0815\u0817\u0003\u0002\u0002\u0002\u0816\u0818\u00052", + "\u001a\u0002\u0817\u0816\u0003\u0002\u0002\u0002\u0818\u0819\u0003\u0002", + "\u0002\u0002\u0819\u0817\u0003\u0002\u0002\u0002\u0819\u081a\u0003\u0002", + "\u0002\u0002\u081a\u0824\u0003\u0002\u0002\u0002\u081b\u081c\u0007\t", + "\u0002\u0002\u081c\u081d\t\u0002\u0002\u0002\u081d\u081e\u0005\u020c", + "\u0107\u0002\u081e\u081f\u0007\u023d\u0002\u0002\u081f\u0820\u0007\u0145", + "\u0002\u0002\u0820\u0821\u0007\u014c\u0002\u0002\u0821\u0822\u0007\u01bd", + "\u0002\u0002\u0822\u0824\u0003\u0002\u0002\u0002\u0823\u0811\u0003\u0002", + "\u0002\u0002\u0823\u081b\u0003\u0002\u0002\u0002\u0824s\u0003\u0002", + "\u0002\u0002\u0825\u0827\u0007\t\u0002\u0002\u0826\u0828\u00054\u001b", + "\u0002\u0827\u0826\u0003\u0002\u0002\u0002\u0827\u0828\u0003\u0002\u0002", + "\u0002\u0828\u0829\u0003\u0002\u0002\u0002\u0829\u082a\u0007\u015e\u0002", + "\u0002\u082a\u082e\u0005\u01f2\u00fa\u0002\u082b\u082c\u0007l\u0002", + "\u0002\u082c\u082d\u0007\u0205\u0002\u0002\u082d\u082f\u00056\u001c", + "\u0002\u082e\u082b\u0003\u0002\u0002\u0002\u082e\u082f\u0003\u0002\u0002", + "\u0002\u082f\u0836\u0003\u0002\u0002\u0002\u0830\u0831\u0007l\u0002", + "\u0002\u0831\u0833\u0007\u0136\u0002\u0002\u0832\u0834\u0007h\u0002", + "\u0002\u0833\u0832\u0003\u0002\u0002\u0002\u0833\u0834\u0003\u0002\u0002", + "\u0002\u0834\u0835\u0003\u0002\u0002\u0002\u0835\u0837\u0007\u01de\u0002", + "\u0002\u0836\u0830\u0003\u0002\u0002\u0002\u0836\u0837\u0003\u0002\u0002", + "\u0002\u0837\u083b\u0003\u0002\u0002\u0002\u0838\u0839\u0007\u007f\u0002", + "\u0002\u0839\u083a\u0007\u009f\u0002\u0002\u083a\u083c\u0005\u01f2\u00fa", + "\u0002\u083b\u0838\u0003\u0002\u0002\u0002\u083b\u083c\u0003\u0002\u0002", + "\u0002\u083c\u083e\u0003\u0002\u0002\u0002\u083d\u083f\u0005> \u0002", + "\u083e\u083d\u0003\u0002\u0002\u0002\u083e\u083f\u0003\u0002\u0002\u0002", + "\u083f\u0842\u0003\u0002\u0002\u0002\u0840\u0841\u0007\u0133\u0002\u0002", + "\u0841\u0843\u0007\u040d\u0002\u0002\u0842\u0840\u0003\u0002\u0002\u0002", + "\u0842\u0843\u0003\u0002\u0002\u0002\u0843\u0846\u0003\u0002\u0002\u0002", + "\u0844\u0845\u0007\u0150\u0002\u0002\u0845\u0847\u0005\u015a\u00ae\u0002", + "\u0846\u0844\u0003\u0002\u0002\u0002\u0846\u0847\u0003\u0002\u0002\u0002", + "\u0847u\u0003\u0002\u0002\u0002\u0848\u0849\u0007\t\u0002\u0002\u0849", + "\u084a\u0007\u0172\u0002\u0002\u084a\u084e\u0005\u01f2\u00fa\u0002\u084b", + "\u084d\u0005H%\u0002\u084c\u084b\u0003\u0002\u0002\u0002\u084d\u0850", + "\u0003\u0002\u0002\u0002\u084e\u084c\u0003\u0002\u0002\u0002\u084e\u084f", + "\u0003\u0002\u0002\u0002\u084fw\u0003\u0002\u0002\u0002\u0850\u084e", + "\u0003\u0002\u0002\u0002\u0851\u0852\u0007\t\u0002\u0002\u0852\u0853", + "\u0007\u0184\u0002\u0002\u0853\u0854\u0007\u0200\u0002\u0002\u0854\u0855", + "\u0007\u02ab\u0002\u0002\u0855\u0856\u0007\u0197\u0002\u0002\u0856\u0857", + "\u0007T\u0002\u0002\u0857y\u0003\u0002\u0002\u0002\u0858\u0859\u0007", + "\t\u0002\u0002\u0859\u085a\u0007\u0195\u0002\u0002\u085a\u085b\u0007", + "D\u0002\u0002\u085b\u085c\u0005\u020c\u0107\u0002\u085c\u085d\u0007", + "\u0007\u0002\u0002\u085d\u085e\u0007\u0238\u0002\u0002\u085e\u0864\u0007", + "\u040d\u0002\u0002\u085f\u0861\u0007\u0180\u0002\u0002\u0860\u0862\u0007", + "\u03f5\u0002\u0002\u0861\u0860\u0003\u0002\u0002\u0002\u0861\u0862\u0003", + "\u0002\u0002\u0002\u0862\u0863\u0003\u0002\u0002\u0002\u0863\u0865\u0005", + "\u0214\u010b\u0002\u0864\u085f\u0003\u0002\u0002\u0002\u0864\u0865\u0003", + "\u0002\u0002\u0002\u0865\u0867\u0003\u0002\u0002\u0002\u0866\u0868\u0007", + "\u0247\u0002\u0002\u0867\u0866\u0003\u0002\u0002\u0002\u0867\u0868\u0003", + "\u0002\u0002\u0002\u0868\u0869\u0003\u0002\u0002\u0002\u0869\u086b\u0007", + "\u0158\u0002\u0002\u086a\u086c\u0007\u03f5\u0002\u0002\u086b\u086a\u0003", + "\u0002\u0002\u0002\u086b\u086c\u0003\u0002\u0002\u0002\u086c\u086d\u0003", + "\u0002\u0002\u0002\u086d\u086e\u0005\u0202\u0102\u0002\u086e{\u0003", + "\u0002\u0002\u0002\u086f\u0870\u0007\t\u0002\u0002\u0870\u0871\u0007", + "w\u0002\u0002\u0871\u0875\u0005\u01f2\u00fa\u0002\u0872\u0874\u0005", + "H%\u0002\u0873\u0872\u0003\u0002\u0002\u0002\u0874\u0877\u0003\u0002", + "\u0002\u0002\u0875\u0873\u0003\u0002\u0002\u0002\u0875\u0876\u0003\u0002", + "\u0002\u0002\u0876}\u0003\u0002\u0002\u0002\u0877\u0875\u0003\u0002", + "\u0002\u0002\u0878\u0879\u0007\t\u0002\u0002\u0879\u087a\u0007\u0207", + "\u0002\u0002\u087a\u087b\u0005\u020c\u0107\u0002\u087b\u087c\u0007\u01ce", + "\u0002\u0002\u087c\u087d\u0007\u03fe\u0002\u0002\u087d\u0882\u0005J", + "&\u0002\u087e\u087f\u0007\u0400\u0002\u0002\u087f\u0881\u0005J&\u0002", + "\u0880\u087e\u0003\u0002\u0002\u0002\u0881\u0884\u0003\u0002\u0002\u0002", + "\u0882\u0880\u0003\u0002\u0002\u0002\u0882\u0883\u0003\u0002\u0002\u0002", + "\u0883\u0885\u0003\u0002\u0002\u0002\u0884\u0882\u0003\u0002\u0002\u0002", + "\u0885\u0886\u0007\u03ff\u0002\u0002\u0886\u007f\u0003\u0002\u0002\u0002", + "\u0887\u0889\u0007\t\u0002\u0002\u0888\u088a\t\u0003\u0002\u0002\u0889", + "\u0888\u0003\u0002\u0002\u0002\u0889\u088a\u0003\u0002\u0002\u0002\u088a", + "\u088c\u0003\u0002\u0002\u0002\u088b\u088d\u0007H\u0002\u0002\u088c", + "\u088b\u0003\u0002\u0002\u0002\u088c\u088d\u0003\u0002\u0002\u0002\u088d", + "\u088e\u0003\u0002\u0002\u0002\u088e\u088f\u0007\u009c\u0002\u0002\u088f", + "\u0898\u0005\u01f4\u00fb\u0002\u0890\u0895\u0005\u0086D\u0002\u0891", + "\u0892\u0007\u0400\u0002\u0002\u0892\u0894\u0005\u0086D\u0002\u0893", + "\u0891\u0003\u0002\u0002\u0002\u0894\u0897\u0003\u0002\u0002\u0002\u0895", + "\u0893\u0003\u0002\u0002\u0002\u0895\u0896\u0003\u0002\u0002\u0002\u0896", + "\u0899\u0003\u0002\u0002\u0002\u0897\u0895\u0003\u0002\u0002\u0002\u0898", + "\u0890\u0003\u0002\u0002\u0002\u0898\u0899\u0003\u0002\u0002\u0002\u0899", + "\u089b\u0003\u0002\u0002\u0002\u089a\u089c\u0005b2\u0002\u089b\u089a", + "\u0003\u0002\u0002\u0002\u089b\u089c\u0003\u0002\u0002\u0002\u089c\u0081", + "\u0003\u0002\u0002\u0002\u089d\u089e\u0007\t\u0002\u0002\u089e\u089f", + "\u0007\u022e\u0002\u0002\u089f\u08a0\u0005\u020c\u0107\u0002\u08a0\u08a1", + "\t\u001e\u0002\u0002\u08a1\u08a2\u0007\u0146\u0002\u0002\u08a2\u08a6", + "\u0007\u040d\u0002\u0002\u08a3\u08a4\u0007\u0180\u0002\u0002\u08a4\u08a5", + "\u0007\u03f5\u0002\u0002\u08a5\u08a7\u0005\u0214\u010b\u0002\u08a6\u08a3", + "\u0003\u0002\u0002\u0002\u08a6\u08a7\u0003\u0002\u0002\u0002\u08a7\u08a9", + "\u0003\u0002\u0002\u0002\u08a8\u08aa\u0007\u0247\u0002\u0002\u08a9\u08a8", + "\u0003\u0002\u0002\u0002\u08a9\u08aa\u0003\u0002\u0002\u0002\u08aa\u08ab", + "\u0003\u0002\u0002\u0002\u08ab\u08ad\u0007\u0158\u0002\u0002\u08ac\u08ae", + "\u0007\u03f5\u0002\u0002\u08ad\u08ac\u0003\u0002\u0002\u0002\u08ad\u08ae", + "\u0003\u0002\u0002\u0002\u08ae\u08af\u0003\u0002\u0002\u0002\u08af\u08b0", + "\u0005\u0202\u0102\u0002\u08b0\u0083\u0003\u0002\u0002\u0002\u08b1\u08b5", + "\u0007\t\u0002\u0002\u08b2\u08b3\u0007\u0114\u0002\u0002\u08b3\u08b4", + "\u0007\u03f5\u0002\u0002\u08b4\u08b6\t\f\u0002\u0002\u08b5\u08b2\u0003", + "\u0002\u0002\u0002\u08b5\u08b6\u0003\u0002\u0002\u0002\u08b6\u08b8\u0003", + "\u0002\u0002\u0002\u08b7\u08b9\u00054\u001b\u0002\u08b8\u08b7\u0003", + "\u0002\u0002\u0002\u08b8\u08b9\u0003\u0002\u0002\u0002\u08b9\u08bd\u0003", + "\u0002\u0002\u0002\u08ba\u08bb\u0007\u0091\u0002\u0002\u08bb\u08bc\u0007", + "\u0206\u0002\u0002\u08bc\u08be\t\r\u0002\u0002\u08bd\u08ba\u0003\u0002", + "\u0002\u0002\u08bd\u08be\u0003\u0002\u0002\u0002\u08be\u08bf\u0003\u0002", + "\u0002\u0002\u08bf\u08c0\u0007\u0244\u0002\u0002\u08c0\u08c5\u0005\u01f2", + "\u00fa\u0002\u08c1\u08c2\u0007\u03fe\u0002\u0002\u08c2\u08c3\u0005\u022c", + "\u0117\u0002\u08c3\u08c4\u0007\u03ff\u0002\u0002\u08c4\u08c6\u0003\u0002", + "\u0002\u0002\u08c5\u08c1\u0003\u0002\u0002\u0002\u08c5\u08c6\u0003\u0002", + "\u0002\u0002\u08c6\u08c7\u0003\u0002\u0002\u0002\u08c7\u08c8\u0007\r", + "\u0002\u0002\u08c8\u08cf\u0005\u00b4[\u0002\u08c9\u08cb\u0007\u00b0", + "\u0002\u0002\u08ca\u08cc\t\u000e\u0002\u0002\u08cb\u08ca\u0003\u0002", + "\u0002\u0002\u08cb\u08cc\u0003\u0002\u0002\u0002\u08cc\u08cd\u0003\u0002", + "\u0002\u0002\u08cd\u08ce\u0007\u0019\u0002\u0002\u08ce\u08d0\u0007n", + "\u0002\u0002\u08cf\u08c9\u0003\u0002\u0002\u0002\u08cf\u08d0\u0003\u0002", + "\u0002\u0002\u08d0\u0085\u0003\u0002\u0002\u0002\u08d1\u08d8\u0005^", + "0\u0002\u08d2\u08d4\u0007\u0400\u0002\u0002\u08d3\u08d2\u0003\u0002", + "\u0002\u0002\u08d3\u08d4\u0003\u0002\u0002\u0002\u08d4\u08d5\u0003\u0002", + "\u0002\u0002\u08d5\u08d7\u0005^0\u0002\u08d6\u08d3\u0003\u0002\u0002", + "\u0002\u08d7\u08da\u0003\u0002\u0002\u0002\u08d8\u08d6\u0003\u0002\u0002", + "\u0002\u08d8\u08d9\u0003\u0002\u0002\u0002\u08d9\u0a3d\u0003\u0002\u0002", + "\u0002\u08da\u08d8\u0003\u0002\u0002\u0002\u08db\u08dd\u0007\u0007\u0002", + "\u0002\u08dc\u08de\u0007\u001b\u0002\u0002\u08dd\u08dc\u0003\u0002\u0002", + "\u0002\u08dd\u08de\u0003\u0002\u0002\u0002\u08de\u08df\u0003\u0002\u0002", + "\u0002\u08df\u08e0\u0005\u020c\u0107\u0002\u08e0\u08e4\u0005P)\u0002", + "\u08e1\u08e5\u0007\u016c\u0002\u0002\u08e2\u08e3\u0007\u0112\u0002\u0002", + "\u08e3\u08e5\u0005\u020c\u0107\u0002\u08e4\u08e1\u0003\u0002\u0002\u0002", + "\u08e4\u08e2\u0003\u0002\u0002\u0002\u08e4\u08e5\u0003\u0002\u0002\u0002", + "\u08e5\u0a3d\u0003\u0002\u0002\u0002\u08e6\u08e8\u0007\u0007\u0002\u0002", + "\u08e7\u08e9\u0007\u001b\u0002\u0002\u08e8\u08e7\u0003\u0002\u0002\u0002", + "\u08e8\u08e9\u0003\u0002\u0002\u0002\u08e9\u08ea\u0003\u0002\u0002\u0002", + "\u08ea\u08eb\u0007\u03fe\u0002\u0002\u08eb\u08ec\u0005\u020c\u0107\u0002", + "\u08ec\u08f3\u0005P)\u0002\u08ed\u08ee\u0007\u0400\u0002\u0002\u08ee", + "\u08ef\u0005\u020c\u0107\u0002\u08ef\u08f0\u0005P)\u0002\u08f0\u08f2", + "\u0003\u0002\u0002\u0002\u08f1\u08ed\u0003\u0002\u0002\u0002\u08f2\u08f5", + "\u0003\u0002\u0002\u0002\u08f3\u08f1\u0003\u0002\u0002\u0002\u08f3\u08f4", + "\u0003\u0002\u0002\u0002\u08f4\u08f6\u0003\u0002\u0002\u0002\u08f5\u08f3", + "\u0003\u0002\u0002\u0002\u08f6\u08f7\u0007\u03ff\u0002\u0002\u08f7\u0a3d", + "\u0003\u0002\u0002\u0002\u08f8\u08f9\u0007\u0007\u0002\u0002\u08f9\u08fb", + "\t\u0014\u0002\u0002\u08fa\u08fc\u0005\u020c\u0107\u0002\u08fb\u08fa", + "\u0003\u0002\u0002\u0002\u08fb\u08fc\u0003\u0002\u0002\u0002\u08fc\u08fe", + "\u0003\u0002\u0002\u0002\u08fd\u08ff\u0005@!\u0002\u08fe\u08fd\u0003", + "\u0002\u0002\u0002\u08fe\u08ff\u0003\u0002\u0002\u0002\u08ff\u0900\u0003", + "\u0002\u0002\u0002\u0900\u0904\u0005\u0230\u0119\u0002\u0901\u0903\u0005", + "B\"\u0002\u0902\u0901\u0003\u0002\u0002\u0002\u0903\u0906\u0003\u0002", + "\u0002\u0002\u0904\u0902\u0003\u0002\u0002\u0002\u0904\u0905\u0003\u0002", + "\u0002\u0002\u0905\u0a3d\u0003\u0002\u0002\u0002\u0906\u0904\u0003\u0002", + "\u0002\u0002\u0907\u090c\u0007\u0007\u0002\u0002\u0908\u090a\u0007\u001d", + "\u0002\u0002\u0909\u090b\u0005\u020c\u0107\u0002\u090a\u0909\u0003\u0002", + "\u0002\u0002\u090a\u090b\u0003\u0002\u0002\u0002\u090b\u090d\u0003\u0002", + "\u0002\u0002\u090c\u0908\u0003\u0002\u0002\u0002\u090c\u090d\u0003\u0002", + "\u0002\u0002\u090d\u090e\u0003\u0002\u0002\u0002\u090e\u090f\u0007v", + "\u0002\u0002\u090f\u0911\u0007T\u0002\u0002\u0910\u0912\u0005\u020c", + "\u0107\u0002\u0911\u0910\u0003\u0002\u0002\u0002\u0911\u0912\u0003\u0002", + "\u0002\u0002\u0912\u0914\u0003\u0002\u0002\u0002\u0913\u0915\u0005@", + "!\u0002\u0914\u0913\u0003\u0002\u0002\u0002\u0914\u0915\u0003\u0002", + "\u0002\u0002\u0915\u0916\u0003\u0002\u0002\u0002\u0916\u091a\u0005\u0230", + "\u0119\u0002\u0917\u0919\u0005B\"\u0002\u0918\u0917\u0003\u0002\u0002", + "\u0002\u0919\u091c\u0003\u0002\u0002\u0002\u091a\u0918\u0003\u0002\u0002", + "\u0002\u091a\u091b\u0003\u0002\u0002\u0002\u091b\u0a3d\u0003\u0002\u0002", + "\u0002\u091c\u091a\u0003\u0002\u0002\u0002\u091d\u0922\u0007\u0007\u0002", + "\u0002\u091e\u0920\u0007\u001d\u0002\u0002\u091f\u0921\u0005\u020c\u0107", + "\u0002\u0920\u091f\u0003\u0002\u0002\u0002\u0920\u0921\u0003\u0002\u0002", + "\u0002\u0921\u0923\u0003\u0002\u0002\u0002\u0922\u091e\u0003\u0002\u0002", + "\u0002\u0922\u0923\u0003\u0002\u0002\u0002\u0923\u0924\u0003\u0002\u0002", + "\u0002\u0924\u0926\u0007\u00a5\u0002\u0002\u0925\u0927\t\u0014\u0002", + "\u0002\u0926\u0925\u0003\u0002\u0002\u0002\u0926\u0927\u0003\u0002\u0002", + "\u0002\u0927\u0929\u0003\u0002\u0002\u0002\u0928\u092a\u0005\u020c\u0107", + "\u0002\u0929\u0928\u0003\u0002\u0002\u0002\u0929\u092a\u0003\u0002\u0002", + "\u0002\u092a\u092c\u0003\u0002\u0002\u0002\u092b\u092d\u0005@!\u0002", + "\u092c\u092b\u0003\u0002\u0002\u0002\u092c\u092d\u0003\u0002\u0002\u0002", + "\u092d\u092e\u0003\u0002\u0002\u0002\u092e\u0932\u0005\u0230\u0119\u0002", + "\u092f\u0931\u0005B\"\u0002\u0930\u092f\u0003\u0002\u0002\u0002\u0931", + "\u0934\u0003\u0002\u0002\u0002\u0932\u0930\u0003\u0002\u0002\u0002\u0932", + "\u0933\u0003\u0002\u0002\u0002\u0933\u0a3d\u0003\u0002\u0002\u0002\u0934", + "\u0932\u0003\u0002\u0002\u0002\u0935\u0936\u0007\u0007\u0002\u0002\u0936", + "\u0938\t\u0016\u0002\u0002\u0937\u0939\t\u0014\u0002\u0002\u0938\u0937", + "\u0003\u0002\u0002\u0002\u0938\u0939\u0003\u0002\u0002\u0002\u0939\u093b", + "\u0003\u0002\u0002\u0002\u093a\u093c\u0005\u020c\u0107\u0002\u093b\u093a", + "\u0003\u0002\u0002\u0002\u093b\u093c\u0003\u0002\u0002\u0002\u093c\u093d", + "\u0003\u0002\u0002\u0002\u093d\u0941\u0005\u0230\u0119\u0002\u093e\u0940", + "\u0005B\"\u0002\u093f\u093e\u0003\u0002\u0002\u0002\u0940\u0943\u0003", + "\u0002\u0002\u0002\u0941\u093f\u0003\u0002\u0002\u0002\u0941\u0942\u0003", + "\u0002\u0002\u0002\u0942\u0a3d\u0003\u0002\u0002\u0002\u0943\u0941\u0003", + "\u0002\u0002\u0002\u0944\u0949\u0007\u0007\u0002\u0002\u0945\u0947\u0007", + "\u001d\u0002\u0002\u0946\u0948\u0005\u020c\u0107\u0002\u0947\u0946\u0003", + "\u0002\u0002\u0002\u0947\u0948\u0003\u0002\u0002\u0002\u0948\u094a\u0003", + "\u0002\u0002\u0002\u0949\u0945\u0003\u0002\u0002\u0002\u0949\u094a\u0003", + "\u0002\u0002\u0002\u094a\u094b\u0003\u0002\u0002\u0002\u094b\u094c\u0007", + ">\u0002\u0002\u094c\u094e\u0007T\u0002\u0002\u094d\u094f\u0005\u020c", + "\u0107\u0002\u094e\u094d\u0003\u0002\u0002\u0002\u094e\u094f\u0003\u0002", + "\u0002\u0002\u094f\u0950\u0003\u0002\u0002\u0002\u0950\u0951\u0005\u0230", + "\u0119\u0002\u0951\u0952\u0005V,\u0002\u0952\u0a3d\u0003\u0002\u0002", + "\u0002\u0953\u0958\u0007\u0007\u0002\u0002\u0954\u0956\u0007\u001d\u0002", + "\u0002\u0955\u0957\u0005\u020c\u0107\u0002\u0956\u0955\u0003\u0002\u0002", + "\u0002\u0956\u0957\u0003\u0002\u0002\u0002\u0957\u0959\u0003\u0002\u0002", + "\u0002\u0958\u0954\u0003\u0002\u0002\u0002\u0958\u0959\u0003\u0002\u0002", + "\u0002\u0959\u095a\u0003\u0002\u0002\u0002\u095a\u095b\u0007\u0019\u0002", + "\u0002\u095b\u095c\u0007\u03fe\u0002\u0002\u095c\u095d\u0005\u025a\u012e", + "\u0002\u095d\u095e\u0007\u03ff\u0002\u0002\u095e\u0a3d\u0003\u0002\u0002", + "\u0002\u095f\u0961\u0007\u0114\u0002\u0002\u0960\u0962\u0007\u03f5\u0002", + "\u0002\u0961\u0960\u0003\u0002\u0002\u0002\u0961\u0962\u0003\u0002\u0002", + "\u0002\u0962\u0963\u0003\u0002\u0002\u0002\u0963\u0a3d\t\u0005\u0002", + "\u0002\u0964\u0966\u0007\t\u0002\u0002\u0965\u0967\u0007\u001b\u0002", + "\u0002\u0966\u0965\u0003\u0002\u0002\u0002\u0966\u0967\u0003\u0002\u0002", + "\u0002\u0967\u0968\u0003\u0002\u0002\u0002\u0968\u096e\u0005\u020c\u0107", + "\u0002\u0969\u096a\u0007\u008c\u0002\u0002\u096a\u096b\u0007(\u0002", + "\u0002\u096b\u096f\u0005\u023c\u011f\u0002\u096c\u096d\u00071\u0002", + "\u0002\u096d\u096f\u0007(\u0002\u0002\u096e\u0969\u0003\u0002\u0002", + "\u0002\u096e\u096c\u0003\u0002\u0002\u0002\u096f\u0a3d\u0003\u0002\u0002", + "\u0002\u0970\u0972\u0007\u0017\u0002\u0002\u0971\u0973\u0007\u001b\u0002", + "\u0002\u0972\u0971\u0003\u0002\u0002\u0002\u0972\u0973\u0003\u0002\u0002", + "\u0002\u0973\u0974\u0003\u0002\u0002\u0002\u0974\u0975\u0005\u020c\u0107", + "\u0002\u0975\u0976\u0005\u020c\u0107\u0002\u0976\u097a\u0005P)\u0002", + "\u0977\u097b\u0007\u016c\u0002\u0002\u0978\u0979\u0007\u0112\u0002\u0002", + "\u0979\u097b\u0005\u020c\u0107\u0002\u097a\u0977\u0003\u0002\u0002\u0002", + "\u097a\u0978\u0003\u0002\u0002\u0002\u097a\u097b\u0003\u0002\u0002\u0002", + "\u097b\u0a3d\u0003\u0002\u0002\u0002\u097c\u097d\u0007\u007f\u0002\u0002", + "\u097d\u097e\u0007\u001b\u0002\u0002\u097e\u097f\u0005\u020c\u0107\u0002", + "\u097f\u0980\u0007\u009f\u0002\u0002\u0980\u0981\u0005\u020c\u0107\u0002", + "\u0981\u0a3d\u0003\u0002\u0002\u0002\u0982\u0984\u0007_\u0002\u0002", + "\u0983\u0985\u0007\u03f5\u0002\u0002\u0984\u0983\u0003\u0002\u0002\u0002", + "\u0984\u0985\u0003\u0002\u0002\u0002\u0985\u0986\u0003\u0002\u0002\u0002", + "\u0986\u0a3d\t\u0006\u0002\u0002\u0987\u0989\u0007\u01b9\u0002\u0002", + "\u0988\u098a\u0007\u001b\u0002\u0002\u0989\u0988\u0003\u0002\u0002\u0002", + "\u0989\u098a\u0003\u0002\u0002\u0002\u098a\u098b\u0003\u0002\u0002\u0002", + "\u098b\u098c\u0005\u020c\u0107\u0002\u098c\u0990\u0005P)\u0002\u098d", + "\u0991\u0007\u016c\u0002\u0002\u098e\u098f\u0007\u0112\u0002\u0002\u098f", + "\u0991\u0005\u020c\u0107\u0002\u0990\u098d\u0003\u0002\u0002\u0002\u0990", + "\u098e\u0003\u0002\u0002\u0002\u0990\u0991\u0003\u0002\u0002\u0002\u0991", + "\u0a3d\u0003\u0002\u0002\u0002\u0992\u0994\u00071\u0002\u0002\u0993", + "\u0995\u0007\u001b\u0002\u0002\u0994\u0993\u0003\u0002\u0002\u0002\u0994", + "\u0995\u0003\u0002\u0002\u0002\u0995\u0996\u0003\u0002\u0002\u0002\u0996", + "\u0998\u0005\u020c\u0107\u0002\u0997\u0999\u0007\u0084\u0002\u0002\u0998", + "\u0997\u0003\u0002\u0002\u0002\u0998\u0999\u0003\u0002\u0002\u0002\u0999", + "\u0a3d\u0003\u0002\u0002\u0002\u099a\u099b\u00071\u0002\u0002\u099b", + "\u099c\u0007v\u0002\u0002\u099c\u0a3d\u0007T\u0002\u0002\u099d\u099e", + "\u0007\u007f\u0002\u0002\u099e\u099f\t\u0014\u0002\u0002\u099f\u09a0", + "\u0005\u020c\u0107\u0002\u09a0\u09a1\u0007\u009f\u0002\u0002\u09a1\u09a2", + "\u0005\u020c\u0107\u0002\u09a2\u0a3d\u0003\u0002\u0002\u0002\u09a3\u09a4", + "\u0007\t\u0002\u0002\u09a4\u09a5\u0007J\u0002\u0002\u09a5\u09a6\u0005", + "\u020c\u0107\u0002\u09a6\u09a7\t\u001f\u0002\u0002\u09a7\u0a3d\u0003", + "\u0002\u0002\u0002\u09a8\u09a9\u00071\u0002\u0002\u09a9\u09aa\t\u0014", + "\u0002\u0002\u09aa\u0a3d\u0005\u020c\u0107\u0002\u09ab\u09ac\u00071", + "\u0002\u0002\u09ac\u09ad\u0007>\u0002\u0002\u09ad\u09ae\u0007T\u0002", + "\u0002\u09ae\u0a3d\u0005\u020c\u0107\u0002\u09af\u09b0\u0007\u014d\u0002", + "\u0002\u09b0\u0a3d\u0007U\u0002\u0002\u09b1\u09b2\u0007\u0154\u0002", + "\u0002\u09b2\u0a3d\u0007U\u0002\u0002\u09b3\u09b5\u0007\u007f\u0002", + "\u0002\u09b4\u09b6\t \u0002\u0002\u09b5\u09b4\u0003\u0002\u0002\u0002", + "\u09b5\u09b6\u0003\u0002\u0002\u0002\u09b6\u09b9\u0003\u0002\u0002\u0002", + "\u09b7\u09ba\u0005\u020c\u0107\u0002\u09b8\u09ba\u0005\u01f2\u00fa\u0002", + "\u09b9\u09b7\u0003\u0002\u0002\u0002\u09b9\u09b8\u0003\u0002\u0002\u0002", + "\u09ba\u0a3d\u0003\u0002\u0002\u0002\u09bb\u09bc\u0007q\u0002\u0002", + "\u09bc\u09bd\u0007\u0012\u0002\u0002\u09bd\u0a3d\u0005\u022c\u0117\u0002", + "\u09be\u09bf\u0007\u001f\u0002\u0002\u09bf\u09c0\u0007\u009f\u0002\u0002", + "\u09c0\u09c1\u0007\u0018\u0002\u0002\u09c1\u09c2\u0007\u008c\u0002\u0002", + "\u09c2\u09c5\u0005\u01fe\u0100\u0002\u09c3\u09c4\u0007\u001a\u0002\u0002", + "\u09c4\u09c6\u0005\u0200\u0101\u0002\u09c5\u09c3\u0003\u0002\u0002\u0002", + "\u09c5\u09c6\u0003\u0002\u0002\u0002\u09c6\u0a3d\u0003\u0002\u0002\u0002", + "\u09c7\u09c9\u0007(\u0002\u0002\u09c8\u09c7\u0003\u0002\u0002\u0002", + "\u09c8\u09c9\u0003\u0002\u0002\u0002\u09c9\u09ca\u0003\u0002\u0002\u0002", + "\u09ca\u09cb\u0007\u0018\u0002\u0002\u09cb\u09cc\u0007\u008c\u0002\u0002", + "\u09cc\u09cd\u0007\u03f5\u0002\u0002\u09cd\u09d1\u0005\u01fe\u0100\u0002", + "\u09ce\u09cf\u0007\u001a\u0002\u0002\u09cf\u09d0\u0007\u03f5\u0002\u0002", + "\u09d0\u09d2\u0005\u0200\u0101\u0002\u09d1\u09ce\u0003\u0002\u0002\u0002", + "\u09d1\u09d2\u0003\u0002\u0002\u0002\u09d2\u0a3d\u0003\u0002\u0002\u0002", + "\u09d3\u09d4\u0007\u014e\u0002\u0002\u09d4\u0a3d\u0007\u022e\u0002\u0002", + "\u09d5\u09d6\u0007\u017e\u0002\u0002\u09d6\u0a3d\u0007\u022e\u0002\u0002", + "\u09d7\u0a3d\u0007=\u0002\u0002\u09d8\u09d9\t!\u0002\u0002\u09d9\u0a3d", + "\u0007\u0241\u0002\u0002\u09da\u09db\u0007\u0007\u0002\u0002\u09db\u09dc", + "\u0007u\u0002\u0002\u09dc\u09dd\u0007\u03fe\u0002\u0002\u09dd\u09e2", + "\u0005h5\u0002\u09de\u09df\u0007\u0400\u0002\u0002\u09df\u09e1\u0005", + "h5\u0002\u09e0\u09de\u0003\u0002\u0002\u0002\u09e1\u09e4\u0003\u0002", + "\u0002\u0002\u09e2\u09e0\u0003\u0002\u0002\u0002\u09e2\u09e3\u0003\u0002", + "\u0002\u0002\u09e3\u09e5\u0003\u0002\u0002\u0002\u09e4\u09e2\u0003\u0002", + "\u0002\u0002\u09e5\u09e6\u0007\u03ff\u0002\u0002\u09e6\u0a3d\u0003\u0002", + "\u0002\u0002\u09e7\u09e8\u00071\u0002\u0002\u09e8\u09e9\u0007u\u0002", + "\u0002\u09e9\u0a3d\u0005\u022c\u0117\u0002\u09ea\u09eb\u0007\u014e\u0002", + "\u0002\u09eb\u09ee\u0007u\u0002\u0002\u09ec\u09ef\u0005\u022c\u0117", + "\u0002\u09ed\u09ef\u0007\b\u0002\u0002\u09ee\u09ec\u0003\u0002\u0002", + "\u0002\u09ee\u09ed\u0003\u0002\u0002\u0002\u09ef\u09f0\u0003\u0002\u0002", + "\u0002\u09f0\u0a3d\u0007\u022e\u0002\u0002\u09f1\u09f2\u0007\u017e\u0002", + "\u0002\u09f2\u09f5\u0007u\u0002\u0002\u09f3\u09f6\u0005\u022c\u0117", + "\u0002\u09f4\u09f6\u0007\b\u0002\u0002\u09f5\u09f3\u0003\u0002\u0002", + "\u0002\u09f5\u09f4\u0003\u0002\u0002\u0002\u09f6\u09f7\u0003\u0002\u0002", + "\u0002\u09f7\u0a3d\u0007\u022e\u0002\u0002\u09f8\u09f9\u0007\u0236\u0002", + "\u0002\u09f9\u09fc\u0007u\u0002\u0002\u09fa\u09fd\u0005\u022c\u0117", + "\u0002\u09fb\u09fd\u0007\b\u0002\u0002\u09fc\u09fa\u0003\u0002\u0002", + "\u0002\u09fc\u09fb\u0003\u0002\u0002\u0002\u09fd\u0a3d\u0003\u0002\u0002", + "\u0002\u09fe\u09ff\u0007\u012e\u0002\u0002\u09ff\u0a00\u0007u\u0002", + "\u0002\u0a00\u0a3d\u0005\u0212\u010a\u0002\u0a01\u0a02\u0007\u01ef\u0002", + "\u0002\u0a02\u0a03\u0007u\u0002\u0002\u0a03\u0a04\u0005\u022c\u0117", + "\u0002\u0a04\u0a05\u0007P\u0002\u0002\u0a05\u0a06\u0007\u03fe\u0002", + "\u0002\u0a06\u0a0b\u0005h5\u0002\u0a07\u0a08\u0007\u0400\u0002\u0002", + "\u0a08\u0a0a\u0005h5\u0002\u0a09\u0a07\u0003\u0002\u0002\u0002\u0a0a", + "\u0a0d\u0003\u0002\u0002\u0002\u0a0b\u0a09\u0003\u0002\u0002\u0002\u0a0b", + "\u0a0c\u0003\u0002\u0002\u0002\u0a0c\u0a0e\u0003\u0002\u0002\u0002\u0a0d", + "\u0a0b\u0003\u0002\u0002\u0002\u0a0e\u0a0f\u0007\u03ff\u0002\u0002\u0a0f", + "\u0a3d\u0003\u0002\u0002\u0002\u0a10\u0a11\u0007\u0161\u0002\u0002\u0a11", + "\u0a12\u0007u\u0002\u0002\u0a12\u0a13\u0005\u020c\u0107\u0002\u0a13", + "\u0a14\u0007\u00b0\u0002\u0002\u0a14\u0a15\u0007\u009c\u0002\u0002\u0a15", + "\u0a18\u0005\u01f4\u00fb\u0002\u0a16\u0a17\t!\u0002\u0002\u0a17\u0a19", + "\u0007\u0241\u0002\u0002\u0a18\u0a16\u0003\u0002\u0002\u0002\u0a18\u0a19", + "\u0003\u0002\u0002\u0002\u0a19\u0a3d\u0003\u0002\u0002\u0002\u0a1a\u0a1b", + "\u0007\u000b\u0002\u0002\u0a1b\u0a1e\u0007u\u0002\u0002\u0a1c\u0a1f", + "\u0005\u022c\u0117\u0002\u0a1d\u0a1f\u0007\b\u0002\u0002\u0a1e\u0a1c", + "\u0003\u0002\u0002\u0002\u0a1e\u0a1d\u0003\u0002\u0002\u0002\u0a1f\u0a3d", + "\u0003\u0002\u0002\u0002\u0a20\u0a21\u0007\u0019\u0002\u0002\u0a21\u0a24", + "\u0007u\u0002\u0002\u0a22\u0a25\u0005\u022c\u0117\u0002\u0a23\u0a25", + "\u0007\b\u0002\u0002\u0a24\u0a22\u0003\u0002\u0002\u0002\u0a24\u0a23", + "\u0003\u0002\u0002\u0002\u0a25\u0a3d\u0003\u0002\u0002\u0002\u0a26\u0a27", + "\u0007m\u0002\u0002\u0a27\u0a2a\u0007u\u0002\u0002\u0a28\u0a2b\u0005", + "\u022c\u0117\u0002\u0a29\u0a2b\u0007\b\u0002\u0002\u0a2a\u0a28\u0003", + "\u0002\u0002\u0002\u0a2a\u0a29\u0003\u0002\u0002\u0002\u0a2b\u0a3d\u0003", + "\u0002\u0002\u0002\u0a2c\u0a2d\u0007\u01e6\u0002\u0002\u0a2d\u0a30\u0007", + "u\u0002\u0002\u0a2e\u0a31\u0005\u022c\u0117\u0002\u0a2f\u0a31\u0007", + "\b\u0002\u0002\u0a30\u0a2e\u0003\u0002\u0002\u0002\u0a30\u0a2f\u0003", + "\u0002\u0002\u0002\u0a31\u0a3d\u0003\u0002\u0002\u0002\u0a32\u0a33\u0007", + "\u01f0\u0002\u0002\u0a33\u0a36\u0007u\u0002\u0002\u0a34\u0a37\u0005", + "\u022c\u0117\u0002\u0a35\u0a37\u0007\b\u0002\u0002\u0a36\u0a34\u0003", + "\u0002\u0002\u0002\u0a36\u0a35\u0003\u0002\u0002\u0002\u0a37\u0a3d\u0003", + "\u0002\u0002\u0002\u0a38\u0a39\u0007\u01ee\u0002\u0002\u0a39\u0a3d\u0007", + "\u01d4\u0002\u0002\u0a3a\u0a3b\u0007\u023d\u0002\u0002\u0a3b\u0a3d\u0007", + "\u01d4\u0002\u0002\u0a3c\u08d1\u0003\u0002\u0002\u0002\u0a3c\u08db\u0003", + "\u0002\u0002\u0002\u0a3c\u08e6\u0003\u0002\u0002\u0002\u0a3c\u08f8\u0003", + "\u0002\u0002\u0002\u0a3c\u0907\u0003\u0002\u0002\u0002\u0a3c\u091d\u0003", + "\u0002\u0002\u0002\u0a3c\u0935\u0003\u0002\u0002\u0002\u0a3c\u0944\u0003", + "\u0002\u0002\u0002\u0a3c\u0953\u0003\u0002\u0002\u0002\u0a3c\u095f\u0003", + "\u0002\u0002\u0002\u0a3c\u0964\u0003\u0002\u0002\u0002\u0a3c\u0970\u0003", + "\u0002\u0002\u0002\u0a3c\u097c\u0003\u0002\u0002\u0002\u0a3c\u0982\u0003", + "\u0002\u0002\u0002\u0a3c\u0987\u0003\u0002\u0002\u0002\u0a3c\u0992\u0003", + "\u0002\u0002\u0002\u0a3c\u099a\u0003\u0002\u0002\u0002\u0a3c\u099d\u0003", + "\u0002\u0002\u0002\u0a3c\u09a3\u0003\u0002\u0002\u0002\u0a3c\u09a8\u0003", + "\u0002\u0002\u0002\u0a3c\u09ab\u0003\u0002\u0002\u0002\u0a3c\u09af\u0003", + "\u0002\u0002\u0002\u0a3c\u09b1\u0003\u0002\u0002\u0002\u0a3c\u09b3\u0003", + "\u0002\u0002\u0002\u0a3c\u09bb\u0003\u0002\u0002\u0002\u0a3c\u09be\u0003", + "\u0002\u0002\u0002\u0a3c\u09c8\u0003\u0002\u0002\u0002\u0a3c\u09d3\u0003", + "\u0002\u0002\u0002\u0a3c\u09d5\u0003\u0002\u0002\u0002\u0a3c\u09d7\u0003", + "\u0002\u0002\u0002\u0a3c\u09d8\u0003\u0002\u0002\u0002\u0a3c\u09da\u0003", + "\u0002\u0002\u0002\u0a3c\u09e7\u0003\u0002\u0002\u0002\u0a3c\u09ea\u0003", + "\u0002\u0002\u0002\u0a3c\u09f1\u0003\u0002\u0002\u0002\u0a3c\u09f8\u0003", + "\u0002\u0002\u0002\u0a3c\u09fe\u0003\u0002\u0002\u0002\u0a3c\u0a01\u0003", + "\u0002\u0002\u0002\u0a3c\u0a10\u0003\u0002\u0002\u0002\u0a3c\u0a1a\u0003", + "\u0002\u0002\u0002\u0a3c\u0a20\u0003\u0002\u0002\u0002\u0a3c\u0a26\u0003", + "\u0002\u0002\u0002\u0a3c\u0a2c\u0003\u0002\u0002\u0002\u0a3c\u0a32\u0003", + "\u0002\u0002\u0002\u0a3c\u0a38\u0003\u0002\u0002\u0002\u0a3c\u0a3a\u0003", + "\u0002\u0002\u0002\u0a3d\u0087\u0003\u0002\u0002\u0002\u0a3e\u0a3f\u0007", + "1\u0002\u0002\u0a3f\u0a41\t\u0002\u0002\u0002\u0a40\u0a42\u0005\u0242", + "\u0122\u0002\u0a41\u0a40\u0003\u0002\u0002\u0002\u0a41\u0a42\u0003\u0002", + "\u0002\u0002\u0a42\u0a43\u0003\u0002\u0002\u0002\u0a43\u0a44\u0005\u020c", + "\u0107\u0002\u0a44\u0089\u0003\u0002\u0002\u0002\u0a45\u0a46\u00071", + "\u0002\u0002\u0a46\u0a48\u0007\u015e\u0002\u0002\u0a47\u0a49\u0005\u0242", + "\u0122\u0002\u0a48\u0a47\u0003\u0002\u0002\u0002\u0a48\u0a49\u0003\u0002", + "\u0002\u0002\u0a49\u0a4a\u0003\u0002\u0002\u0002\u0a4a\u0a4b\u0005\u01f2", + "\u00fa\u0002\u0a4b\u008b\u0003\u0002\u0002\u0002\u0a4c\u0a4d\u00071", + "\u0002\u0002\u0a4d\u0a4f\u0007J\u0002\u0002\u0a4e\u0a50\t\u0003\u0002", + "\u0002\u0a4f\u0a4e\u0003\u0002\u0002\u0002\u0a4f\u0a50\u0003\u0002\u0002", + "\u0002\u0a50\u0a51\u0003\u0002\u0002\u0002\u0a51\u0a52\u0005\u020c\u0107", + "\u0002\u0a52\u0a53\u0007l\u0002\u0002\u0a53\u0a60\u0005\u01f4\u00fb", + "\u0002\u0a54\u0a56\u0007\u0114\u0002\u0002\u0a55\u0a57\u0007\u03f5\u0002", + "\u0002\u0a56\u0a55\u0003\u0002\u0002\u0002\u0a56\u0a57\u0003\u0002\u0002", + "\u0002\u0a57\u0a58\u0003\u0002\u0002\u0002\u0a58\u0a5f\t\u0005\u0002", + "\u0002\u0a59\u0a5b\u0007_\u0002\u0002\u0a5a\u0a5c\u0007\u03f5\u0002", + "\u0002\u0a5b\u0a5a\u0003\u0002\u0002\u0002\u0a5b\u0a5c\u0003\u0002\u0002", + "\u0002\u0a5c\u0a5d\u0003\u0002\u0002\u0002\u0a5d\u0a5f\t\u0006\u0002", + "\u0002\u0a5e\u0a54\u0003\u0002\u0002\u0002\u0a5e\u0a59\u0003\u0002\u0002", + "\u0002\u0a5f\u0a62\u0003\u0002\u0002\u0002\u0a60\u0a5e\u0003\u0002\u0002", + "\u0002\u0a60\u0a61\u0003\u0002\u0002\u0002\u0a61\u008d\u0003\u0002\u0002", + "\u0002\u0a62\u0a60\u0003\u0002\u0002\u0002\u0a63\u0a64\u00071\u0002", + "\u0002\u0a64\u0a65\u0007\u0195\u0002\u0002\u0a65\u0a66\u0007D\u0002", + "\u0002\u0a66\u0a67\u0005\u020c\u0107\u0002\u0a67\u0a68\u0007\u0158\u0002", + "\u0002\u0a68\u0a69\u0007\u03f5\u0002\u0002\u0a69\u0a6a\u0005\u0202\u0102", + "\u0002\u0a6a\u008f\u0003\u0002\u0002\u0002\u0a6b\u0a6c\u00071\u0002", + "\u0002\u0a6c\u0a6e\u0007w\u0002\u0002\u0a6d\u0a6f\u0005\u0242\u0122", + "\u0002\u0a6e\u0a6d\u0003\u0002\u0002\u0002\u0a6e\u0a6f\u0003\u0002\u0002", + "\u0002\u0a6f\u0a70\u0003\u0002\u0002\u0002\u0a70\u0a71\u0005\u01f2\u00fa", + "\u0002\u0a71\u0091\u0003\u0002\u0002\u0002\u0a72\u0a73\u00071\u0002", + "\u0002\u0a73\u0a75\u0007\u0172\u0002\u0002\u0a74\u0a76\u0005\u0242\u0122", + "\u0002\u0a75\u0a74\u0003\u0002\u0002\u0002\u0a75\u0a76\u0003\u0002\u0002", + "\u0002\u0a76\u0a77\u0003\u0002\u0002\u0002\u0a77\u0a78\u0005\u01f2\u00fa", + "\u0002\u0a78\u0093\u0003\u0002\u0002\u0002\u0a79\u0a7a\u00071\u0002", + "\u0002\u0a7a\u0a7c\u0007\u0207\u0002\u0002\u0a7b\u0a7d\u0005\u0242\u0122", + "\u0002\u0a7c\u0a7b\u0003\u0002\u0002\u0002\u0a7c\u0a7d\u0003\u0002\u0002", + "\u0002\u0a7d\u0a7e\u0003\u0002\u0002\u0002\u0a7e\u0a7f\u0005\u020c\u0107", + "\u0002\u0a7f\u0095\u0003\u0002\u0002\u0002\u0a80\u0a82\u00071\u0002", + "\u0002\u0a81\u0a83\u0007\u022f\u0002\u0002\u0a82\u0a81\u0003\u0002\u0002", + "\u0002\u0a82\u0a83\u0003\u0002\u0002\u0002\u0a83\u0a84\u0003\u0002\u0002", + "\u0002\u0a84\u0a86\u0007\u009c\u0002\u0002\u0a85\u0a87\u0005\u0242\u0122", + "\u0002\u0a86\u0a85\u0003\u0002\u0002\u0002\u0a86\u0a87\u0003\u0002\u0002", + "\u0002\u0a87\u0a88\u0003\u0002\u0002\u0002\u0a88\u0a8a\u0005\u022e\u0118", + "\u0002\u0a89\u0a8b\t\"\u0002\u0002\u0a8a\u0a89\u0003\u0002\u0002\u0002", + "\u0a8a\u0a8b\u0003\u0002\u0002\u0002\u0a8b\u0097\u0003\u0002\u0002\u0002", + "\u0a8c\u0a8d\u00071\u0002\u0002\u0a8d\u0a8e\u0007\u022e\u0002\u0002", + "\u0a8e\u0a94\u0005\u020c\u0107\u0002\u0a8f\u0a91\u0007\u0158\u0002\u0002", + "\u0a90\u0a92\u0007\u03f5\u0002\u0002\u0a91\u0a90\u0003\u0002\u0002\u0002", + "\u0a91\u0a92\u0003\u0002\u0002\u0002\u0a92\u0a93\u0003\u0002\u0002\u0002", + "\u0a93\u0a95\u0005\u0202\u0102\u0002\u0a94\u0a8f\u0003\u0002\u0002\u0002", + "\u0a94\u0a95\u0003\u0002\u0002\u0002\u0a95\u0099\u0003\u0002\u0002\u0002", + "\u0a96\u0a97\u00071\u0002\u0002\u0a97\u0a99\u0007\u00a1\u0002\u0002", + "\u0a98\u0a9a\u0005\u0242\u0122\u0002\u0a99\u0a98\u0003\u0002\u0002\u0002", + "\u0a99\u0a9a\u0003\u0002\u0002\u0002\u0a9a\u0a9b\u0003\u0002\u0002\u0002", + "\u0a9b\u0a9c\u0005\u01f2\u00fa\u0002\u0a9c\u009b\u0003\u0002\u0002\u0002", + "\u0a9d\u0a9e\u00071\u0002\u0002\u0a9e\u0aa0\u0007\u0244\u0002\u0002", + "\u0a9f\u0aa1\u0005\u0242\u0122\u0002\u0aa0\u0a9f\u0003\u0002\u0002\u0002", + "\u0aa0\u0aa1\u0003\u0002\u0002\u0002\u0aa1\u0aa2\u0003\u0002\u0002\u0002", + "\u0aa2\u0aa7\u0005\u01f2\u00fa\u0002\u0aa3\u0aa4\u0007\u0400\u0002\u0002", + "\u0aa4\u0aa6\u0005\u01f2\u00fa\u0002\u0aa5\u0aa3\u0003\u0002\u0002\u0002", + "\u0aa6\u0aa9\u0003\u0002\u0002\u0002\u0aa7\u0aa5\u0003\u0002\u0002\u0002", + "\u0aa7\u0aa8\u0003\u0002\u0002\u0002\u0aa8\u0aab\u0003\u0002\u0002\u0002", + "\u0aa9\u0aa7\u0003\u0002\u0002\u0002\u0aaa\u0aac\t\"\u0002\u0002\u0aab", + "\u0aaa\u0003\u0002\u0002\u0002\u0aab\u0aac\u0003\u0002\u0002\u0002\u0aac", + "\u009d\u0003\u0002\u0002\u0002\u0aad\u0aae\u0007\u007f\u0002\u0002\u0aae", + "\u0aaf\u0007\u009c\u0002\u0002\u0aaf\u0ab4\u0005\u00a0Q\u0002\u0ab0", + "\u0ab1\u0007\u0400\u0002\u0002\u0ab1\u0ab3\u0005\u00a0Q\u0002\u0ab2", + "\u0ab0\u0003\u0002\u0002\u0002\u0ab3\u0ab6\u0003\u0002\u0002\u0002\u0ab4", + "\u0ab2\u0003\u0002\u0002\u0002\u0ab4\u0ab5\u0003\u0002\u0002\u0002\u0ab5", + "\u009f\u0003\u0002\u0002\u0002\u0ab6\u0ab4\u0003\u0002\u0002\u0002\u0ab7", + "\u0ab8\u0005\u01f4\u00fb\u0002\u0ab8\u0ab9\u0007\u009f\u0002\u0002\u0ab9", + "\u0aba\u0005\u01f4\u00fb\u0002\u0aba\u00a1\u0003\u0002\u0002\u0002\u0abb", + "\u0abd\u0007\u0236\u0002\u0002\u0abc\u0abe\u0007\u009c\u0002\u0002\u0abd", + "\u0abc\u0003\u0002\u0002\u0002\u0abd\u0abe\u0003\u0002\u0002\u0002\u0abe", + "\u0abf\u0003\u0002\u0002\u0002\u0abf\u0ac0\u0005\u01f4\u00fb\u0002\u0ac0", + "\u00a3\u0003\u0002\u0002\u0002\u0ac1\u0ac2\u0007\u0013\u0002\u0002\u0ac2", + "\u0ac9\u0005\u01f2\u00fa\u0002\u0ac3\u0ac6\u0007\u03fe\u0002\u0002\u0ac4", + "\u0ac7\u0005\u0236\u011c\u0002\u0ac5\u0ac7\u0005\u0232\u011a\u0002\u0ac6", + "\u0ac4\u0003\u0002\u0002\u0002\u0ac6\u0ac5\u0003\u0002\u0002\u0002\u0ac6", + "\u0ac7\u0003\u0002\u0002\u0002\u0ac7\u0ac8\u0003\u0002\u0002\u0002\u0ac8", + "\u0aca\u0007\u03ff\u0002\u0002\u0ac9\u0ac3\u0003\u0002\u0002\u0002\u0ac9", + "\u0aca\u0003\u0002\u0002\u0002\u0aca\u00a5\u0003\u0002\u0002\u0002\u0acb", + "\u0ace\u0005\u00c0a\u0002\u0acc\u0ace\u0005\u00c2b\u0002\u0acd\u0acb", + "\u0003\u0002\u0002\u0002\u0acd\u0acc\u0003\u0002\u0002\u0002\u0ace\u00a7", + "\u0003\u0002\u0002\u0002\u0acf\u0ad0\u0007\u0150\u0002\u0002\u0ad0\u0ad1", + "\u0005\u0232\u011a\u0002\u0ad1\u00a9\u0003\u0002\u0002\u0002\u0ad2\u0ad7", + "\u0005\u00c4c\u0002\u0ad3\u0ad7\u0005\u00c6d\u0002\u0ad4\u0ad7\u0005", + "\u00c8e\u0002\u0ad5\u0ad7\u0005\u00caf\u0002\u0ad6\u0ad2\u0003\u0002", + "\u0002\u0002\u0ad6\u0ad3\u0003\u0002\u0002\u0002\u0ad6\u0ad4\u0003\u0002", + "\u0002\u0002\u0ad6\u0ad5\u0003\u0002\u0002\u0002\u0ad7\u00ab\u0003\u0002", + "\u0002\u0002\u0ad8\u0ada\u0007N\u0002\u0002\u0ad9\u0adb\t#\u0002\u0002", + "\u0ada\u0ad9\u0003\u0002\u0002\u0002\u0ada\u0adb\u0003\u0002\u0002\u0002", + "\u0adb\u0add\u0003\u0002\u0002\u0002\u0adc\u0ade\u0007H\u0002\u0002", + "\u0add\u0adc\u0003\u0002\u0002\u0002\u0add\u0ade\u0003\u0002\u0002\u0002", + "\u0ade\u0ae0\u0003\u0002\u0002\u0002\u0adf\u0ae1\u0007P\u0002\u0002", + "\u0ae0\u0adf\u0003\u0002\u0002\u0002\u0ae0\u0ae1\u0003\u0002\u0002\u0002", + "\u0ae1\u0ae2\u0003\u0002\u0002\u0002\u0ae2\u0ae9\u0005\u01f4\u00fb\u0002", + "\u0ae3\u0ae4\u0007u\u0002\u0002\u0ae4\u0ae6\u0007\u03fe\u0002\u0002", + "\u0ae5\u0ae7\u0005\u022c\u0117\u0002\u0ae6\u0ae5\u0003\u0002\u0002\u0002", + "\u0ae6\u0ae7\u0003\u0002\u0002\u0002\u0ae7\u0ae8\u0003\u0002\u0002\u0002", + "\u0ae8\u0aea\u0007\u03ff\u0002\u0002\u0ae9\u0ae3\u0003\u0002\u0002\u0002", + "\u0ae9\u0aea\u0003\u0002\u0002\u0002\u0aea\u0afb\u0003\u0002\u0002\u0002", + "\u0aeb\u0aec\u0007\u03fe\u0002\u0002\u0aec\u0aed\u0005\u022c\u0117\u0002", + "\u0aed\u0aee\u0007\u03ff\u0002\u0002\u0aee\u0af0\u0003\u0002\u0002\u0002", + "\u0aef\u0aeb\u0003\u0002\u0002\u0002\u0aef\u0af0\u0003\u0002\u0002\u0002", + "\u0af0\u0af1\u0003\u0002\u0002\u0002\u0af1\u0afc\u0005\u00b8]\u0002", + "\u0af2\u0af3\u0007\u008c\u0002\u0002\u0af3\u0af8\u0005\u00ba^\u0002", + "\u0af4\u0af5\u0007\u0400\u0002\u0002\u0af5\u0af7\u0005\u00ba^\u0002", + "\u0af6\u0af4\u0003\u0002\u0002\u0002\u0af7\u0afa\u0003\u0002\u0002\u0002", + "\u0af8\u0af6\u0003\u0002\u0002\u0002\u0af8\u0af9\u0003\u0002\u0002\u0002", + "\u0af9\u0afc\u0003\u0002\u0002\u0002\u0afa\u0af8\u0003\u0002\u0002\u0002", + "\u0afb\u0aef\u0003\u0002\u0002\u0002\u0afb\u0af2\u0003\u0002\u0002\u0002", + "\u0afc\u0b09\u0003\u0002\u0002\u0002\u0afd\u0afe\u0007l\u0002\u0002", + "\u0afe\u0aff\u0007\u0152\u0002\u0002\u0aff\u0b00\u0007T\u0002\u0002", + "\u0b00\u0b01\u0007\u00a8\u0002\u0002\u0b01\u0b06\u0005\u00ba^\u0002", + "\u0b02\u0b03\u0007\u0400\u0002\u0002\u0b03\u0b05\u0005\u00ba^\u0002", + "\u0b04\u0b02\u0003\u0002\u0002\u0002\u0b05\u0b08\u0003\u0002\u0002\u0002", + "\u0b06\u0b04\u0003\u0002\u0002\u0002\u0b06\u0b07\u0003\u0002\u0002\u0002", + "\u0b07\u0b0a\u0003\u0002\u0002\u0002\u0b08\u0b06\u0003\u0002\u0002\u0002", + "\u0b09\u0afd\u0003\u0002\u0002\u0002\u0b09\u0b0a\u0003\u0002\u0002\u0002", + "\u0b0a\u00ad\u0003\u0002\u0002\u0002\u0b0b\u0b0c\u0007^\u0002\u0002", + "\u0b0c\u0b0e\u0007\u0145\u0002\u0002\u0b0d\u0b0f\t$\u0002\u0002\u0b0e", + "\u0b0d\u0003\u0002\u0002\u0002\u0b0e\u0b0f\u0003\u0002\u0002\u0002\u0b0f", + "\u0b11\u0003\u0002\u0002\u0002\u0b10\u0b12\u0007\u0194\u0002\u0002\u0b11", + "\u0b10\u0003\u0002\u0002\u0002\u0b11\u0b12\u0003\u0002\u0002\u0002\u0b12", + "\u0b13\u0003\u0002\u0002\u0002\u0b13\u0b14\u0007K\u0002\u0002\u0b14", + "\u0b16\u0007\u040d\u0002\u0002\u0b15\u0b17\t\b\u0002\u0002\u0b16\u0b15", + "\u0003\u0002\u0002\u0002\u0b16\u0b17\u0003\u0002\u0002\u0002\u0b17\u0b18", + "\u0003\u0002\u0002\u0002\u0b18\u0b19\u0007P\u0002\u0002\u0b19\u0b1a", + "\u0007\u009c\u0002\u0002\u0b1a\u0b20\u0005\u01f4\u00fb\u0002\u0b1b\u0b1c", + "\u0007u\u0002\u0002\u0b1c\u0b1d\u0007\u03fe\u0002\u0002\u0b1d\u0b1e", + "\u0005\u022c\u0117\u0002\u0b1e\u0b1f\u0007\u03ff\u0002\u0002\u0b1f\u0b21", + "\u0003\u0002\u0002\u0002\u0b20\u0b1b\u0003\u0002\u0002\u0002\u0b20\u0b21", + "\u0003\u0002\u0002\u0002\u0b21\u0b25\u0003\u0002\u0002\u0002\u0b22\u0b23", + "\u0007\u0018\u0002\u0002\u0b23\u0b24\u0007\u008c\u0002\u0002\u0b24\u0b26", + "\u0005\u01fe\u0100\u0002\u0b25\u0b22\u0003\u0002\u0002\u0002\u0b25\u0b26", + "\u0003\u0002\u0002\u0002\u0b26\u0b2d\u0003\u0002\u0002\u0002\u0b27\u0b29", + "\t%\u0002\u0002\u0b28\u0b2a\u0005\u00f4{\u0002\u0b29\u0b28\u0003\u0002", + "\u0002\u0002\u0b2a\u0b2b\u0003\u0002\u0002\u0002\u0b2b\u0b29\u0003\u0002", + "\u0002\u0002\u0b2b\u0b2c\u0003\u0002\u0002\u0002\u0b2c\u0b2e\u0003\u0002", + "\u0002\u0002\u0b2d\u0b27\u0003\u0002\u0002\u0002\u0b2d\u0b2e\u0003\u0002", + "\u0002\u0002\u0b2e\u0b35\u0003\u0002\u0002\u0002\u0b2f\u0b31\u0007]", + "\u0002\u0002\u0b30\u0b32\u0005\u00f6|\u0002\u0b31\u0b30\u0003\u0002", + "\u0002\u0002\u0b32\u0b33\u0003\u0002\u0002\u0002\u0b33\u0b31\u0003\u0002", + "\u0002\u0002\u0b33\u0b34\u0003\u0002\u0002\u0002\u0b34\u0b36\u0003\u0002", + "\u0002\u0002\u0b35\u0b2f\u0003\u0002\u0002\u0002\u0b35\u0b36\u0003\u0002", + "\u0002\u0002\u0b36\u0b3b\u0003\u0002\u0002\u0002\u0b37\u0b38\u0007H", + "\u0002\u0002\u0b38\u0b39\u0005\u0212\u010a\u0002\u0b39\u0b3a\t&\u0002", + "\u0002\u0b3a\u0b3c\u0003\u0002\u0002\u0002\u0b3b\u0b37\u0003\u0002\u0002", + "\u0002\u0b3b\u0b3c\u0003\u0002\u0002\u0002\u0b3c\u0b48\u0003\u0002\u0002", + "\u0002\u0b3d\u0b3e\u0007\u03fe\u0002\u0002\u0b3e\u0b43\u0005\u00bc_", + "\u0002\u0b3f\u0b40\u0007\u0400\u0002\u0002\u0b40\u0b42\u0005\u00bc_", + "\u0002\u0b41\u0b3f\u0003\u0002\u0002\u0002\u0b42\u0b45\u0003\u0002\u0002", + "\u0002\u0b43\u0b41\u0003\u0002\u0002\u0002\u0b43\u0b44\u0003\u0002\u0002", + "\u0002\u0b44\u0b46\u0003\u0002\u0002\u0002\u0b45\u0b43\u0003\u0002\u0002", + "\u0002\u0b46\u0b47\u0007\u03ff\u0002\u0002\u0b47\u0b49\u0003\u0002\u0002", + "\u0002\u0b48\u0b3d\u0003\u0002\u0002\u0002\u0b48\u0b49\u0003\u0002\u0002", + "\u0002\u0b49\u0b53\u0003\u0002\u0002\u0002\u0b4a\u0b4b\u0007\u008c\u0002", + "\u0002\u0b4b\u0b50\u0005\u00ba^\u0002\u0b4c\u0b4d\u0007\u0400\u0002", + "\u0002\u0b4d\u0b4f\u0005\u00ba^\u0002\u0b4e\u0b4c\u0003\u0002\u0002", + "\u0002\u0b4f\u0b52\u0003\u0002\u0002\u0002\u0b50\u0b4e\u0003\u0002\u0002", + "\u0002\u0b50\u0b51\u0003\u0002\u0002\u0002\u0b51\u0b54\u0003\u0002\u0002", + "\u0002\u0b52\u0b50\u0003\u0002\u0002\u0002\u0b53\u0b4a\u0003\u0002\u0002", + "\u0002\u0b53\u0b54\u0003\u0002\u0002\u0002\u0b54\u00af\u0003\u0002\u0002", + "\u0002\u0b55\u0b56\u0007^\u0002\u0002\u0b56\u0b58\u0007\u024e\u0002", + "\u0002\u0b57\u0b59\t$\u0002\u0002\u0b58\u0b57\u0003\u0002\u0002\u0002", + "\u0b58\u0b59\u0003\u0002\u0002\u0002\u0b59\u0b5b\u0003\u0002\u0002\u0002", + "\u0b5a\u0b5c\u0007\u0194\u0002\u0002\u0b5b\u0b5a\u0003\u0002\u0002\u0002", + "\u0b5b\u0b5c\u0003\u0002\u0002\u0002\u0b5c\u0b5d\u0003\u0002\u0002\u0002", + "\u0b5d\u0b5e\u0007K\u0002\u0002\u0b5e\u0b60\u0007\u040d\u0002\u0002", + "\u0b5f\u0b61\t\b\u0002\u0002\u0b60\u0b5f\u0003\u0002\u0002\u0002\u0b60", + "\u0b61\u0003\u0002\u0002\u0002\u0b61\u0b62\u0003\u0002\u0002\u0002\u0b62", + "\u0b63\u0007P\u0002\u0002\u0b63\u0b64\u0007\u009c\u0002\u0002\u0b64", + "\u0b68\u0005\u01f4\u00fb\u0002\u0b65\u0b66\u0007\u0018\u0002\u0002\u0b66", + "\u0b67\u0007\u008c\u0002\u0002\u0b67\u0b69\u0005\u01fe\u0100\u0002\u0b68", + "\u0b65\u0003\u0002\u0002\u0002\u0b68\u0b69\u0003\u0002\u0002\u0002\u0b69", + "\u0b70\u0003\u0002\u0002\u0002\u0b6a\u0b6b\u0007\u0202\u0002\u0002\u0b6b", + "\u0b6c\u0007\u017c\u0002\u0002\u0b6c\u0b6d\u0007\u0012\u0002\u0002\u0b6d", + "\u0b6e\u0007\u03f7\u0002\u0002\u0b6e\u0b6f\u0007\u040d\u0002\u0002\u0b6f", + "\u0b71\u0007\u03f6\u0002\u0002\u0b70\u0b6a\u0003\u0002\u0002\u0002\u0b70", + "\u0b71\u0003\u0002\u0002\u0002\u0b71\u0b76\u0003\u0002\u0002\u0002\u0b72", + "\u0b73\u0007H\u0002\u0002\u0b73\u0b74\u0005\u0212\u010a\u0002\u0b74", + "\u0b75\t&\u0002\u0002\u0b75\u0b77\u0003\u0002\u0002\u0002\u0b76\u0b72", + "\u0003\u0002\u0002\u0002\u0b76\u0b77\u0003\u0002\u0002\u0002\u0b77\u0b83", + "\u0003\u0002\u0002\u0002\u0b78\u0b79\u0007\u03fe\u0002\u0002\u0b79\u0b7e", + "\u0005\u00bc_\u0002\u0b7a\u0b7b\u0007\u0400\u0002\u0002\u0b7b\u0b7d", + "\u0005\u00bc_\u0002\u0b7c\u0b7a\u0003\u0002\u0002\u0002\u0b7d\u0b80", + "\u0003\u0002\u0002\u0002\u0b7e\u0b7c\u0003\u0002\u0002\u0002\u0b7e\u0b7f", + "\u0003\u0002\u0002\u0002\u0b7f\u0b81\u0003\u0002\u0002\u0002\u0b80\u0b7e", + "\u0003\u0002\u0002\u0002\u0b81\u0b82\u0007\u03ff\u0002\u0002\u0b82\u0b84", + "\u0003\u0002\u0002\u0002\u0b83\u0b78\u0003\u0002\u0002\u0002\u0b83\u0b84", + "\u0003\u0002\u0002\u0002\u0b84\u0b8e\u0003\u0002\u0002\u0002\u0b85\u0b86", + "\u0007\u008c\u0002\u0002\u0b86\u0b8b\u0005\u00ba^\u0002\u0b87\u0b88", + "\u0007\u0400\u0002\u0002\u0b88\u0b8a\u0005\u00ba^\u0002\u0b89\u0b87", + "\u0003\u0002\u0002\u0002\u0b8a\u0b8d\u0003\u0002\u0002\u0002\u0b8b\u0b89", + "\u0003\u0002\u0002\u0002\u0b8b\u0b8c\u0003\u0002\u0002\u0002\u0b8c\u0b8f", + "\u0003\u0002\u0002\u0002\u0b8d\u0b8b\u0003\u0002\u0002\u0002\u0b8e\u0b85", + "\u0003\u0002\u0002\u0002\u0b8e\u0b8f\u0003\u0002\u0002\u0002\u0b8f\u00b1", + "\u0003\u0002\u0002\u0002\u0b90\u0b92\u0007\u0081\u0002\u0002\u0b91\u0b93", + "\t\'\u0002\u0002\u0b92\u0b91\u0003\u0002\u0002\u0002\u0b92\u0b93\u0003", + "\u0002\u0002\u0002\u0b93\u0b95\u0003\u0002\u0002\u0002\u0b94\u0b96\u0007", + "P\u0002\u0002\u0b95\u0b94\u0003\u0002\u0002\u0002\u0b95\u0b96\u0003", + "\u0002\u0002\u0002\u0b96\u0b97\u0003\u0002\u0002\u0002\u0b97\u0b9d\u0005", + "\u01f4\u00fb\u0002\u0b98\u0b99\u0007u\u0002\u0002\u0b99\u0b9a\u0007", + "\u03fe\u0002\u0002\u0b9a\u0b9b\u0005\u022c\u0117\u0002\u0b9b\u0b9c\u0007", + "\u03ff\u0002\u0002\u0b9c\u0b9e\u0003\u0002\u0002\u0002\u0b9d\u0b98\u0003", + "\u0002\u0002\u0002\u0b9d\u0b9e\u0003\u0002\u0002\u0002\u0b9e\u0baf\u0003", + "\u0002\u0002\u0002\u0b9f\u0ba0\u0007\u03fe\u0002\u0002\u0ba0\u0ba1\u0005", + "\u022c\u0117\u0002\u0ba1\u0ba2\u0007\u03ff\u0002\u0002\u0ba2\u0ba4\u0003", + "\u0002\u0002\u0002\u0ba3\u0b9f\u0003\u0002\u0002\u0002\u0ba3\u0ba4\u0003", + "\u0002\u0002\u0002\u0ba4\u0ba5\u0003\u0002\u0002\u0002\u0ba5\u0bb0\u0005", + "\u00b8]\u0002\u0ba6\u0ba7\u0007\u008c\u0002\u0002\u0ba7\u0bac\u0005", + "\u00ba^\u0002\u0ba8\u0ba9\u0007\u0400\u0002\u0002\u0ba9\u0bab\u0005", + "\u00ba^\u0002\u0baa\u0ba8\u0003\u0002\u0002\u0002\u0bab\u0bae\u0003", + "\u0002\u0002\u0002\u0bac\u0baa\u0003\u0002\u0002\u0002\u0bac\u0bad\u0003", + "\u0002\u0002\u0002\u0bad\u0bb0\u0003\u0002\u0002\u0002\u0bae\u0bac\u0003", + "\u0002\u0002\u0002\u0baf\u0ba3\u0003\u0002\u0002\u0002\u0baf\u0ba6\u0003", + "\u0002\u0002\u0002\u0bb0\u00b3\u0003\u0002\u0002\u0002\u0bb1\u0bb3\u0005", + "\u00e4s\u0002\u0bb2\u0bb4\u0005\u00be`\u0002\u0bb3\u0bb2\u0003\u0002", + "\u0002\u0002\u0bb3\u0bb4\u0003\u0002\u0002\u0002\u0bb4\u0be9\u0003\u0002", + "\u0002\u0002\u0bb5\u0bb7\u0005\u00e0q\u0002\u0bb6\u0bb8\u0005\u00be", + "`\u0002\u0bb7\u0bb6\u0003\u0002\u0002\u0002\u0bb7\u0bb8\u0003\u0002", + "\u0002\u0002\u0bb8\u0be9\u0003\u0002\u0002\u0002\u0bb9\u0bbb\u0005\u00e6", + "t\u0002\u0bba\u0bbc\u0005\u00eav\u0002\u0bbb\u0bba\u0003\u0002\u0002", + "\u0002\u0bbc\u0bbd\u0003\u0002\u0002\u0002\u0bbd\u0bbb\u0003\u0002\u0002", + "\u0002\u0bbd\u0bbe\u0003\u0002\u0002\u0002\u0bbe\u0bc7\u0003\u0002\u0002", + "\u0002\u0bbf\u0bc1\u0007\u00a4\u0002\u0002\u0bc0\u0bc2\t(\u0002\u0002", + "\u0bc1\u0bc0\u0003\u0002\u0002\u0002\u0bc1\u0bc2\u0003\u0002\u0002\u0002", + "\u0bc2\u0bc5\u0003\u0002\u0002\u0002\u0bc3\u0bc6\u0005\u00e4s\u0002", + "\u0bc4\u0bc6\u0005\u00e0q\u0002\u0bc5\u0bc3\u0003\u0002\u0002\u0002", + "\u0bc5\u0bc4\u0003\u0002\u0002\u0002\u0bc6\u0bc8\u0003\u0002\u0002\u0002", + "\u0bc7\u0bbf\u0003\u0002\u0002\u0002\u0bc7\u0bc8\u0003\u0002\u0002\u0002", + "\u0bc8\u0bca\u0003\u0002\u0002\u0002\u0bc9\u0bcb\u0005\u00d0i\u0002", + "\u0bca\u0bc9\u0003\u0002\u0002\u0002\u0bca\u0bcb\u0003\u0002\u0002\u0002", + "\u0bcb\u0bcd\u0003\u0002\u0002\u0002\u0bcc\u0bce\u0005\u00fc\u007f\u0002", + "\u0bcd\u0bcc\u0003\u0002\u0002\u0002\u0bcd\u0bce\u0003\u0002\u0002\u0002", + "\u0bce\u0bd0\u0003\u0002\u0002\u0002\u0bcf\u0bd1\u0005\u00be`\u0002", + "\u0bd0\u0bcf\u0003\u0002\u0002\u0002\u0bd0\u0bd1\u0003\u0002\u0002\u0002", + "\u0bd1\u0be9\u0003\u0002\u0002\u0002\u0bd2\u0bd4\u0005\u00e2r\u0002", + "\u0bd3\u0bd5\u0005\u00e8u\u0002\u0bd4\u0bd3\u0003\u0002\u0002\u0002", + "\u0bd5\u0bd6\u0003\u0002\u0002\u0002\u0bd6\u0bd4\u0003\u0002\u0002\u0002", + "\u0bd6\u0bd7\u0003\u0002\u0002\u0002\u0bd7\u0bdd\u0003\u0002\u0002\u0002", + "\u0bd8\u0bda\u0007\u00a4\u0002\u0002\u0bd9\u0bdb\t(\u0002\u0002\u0bda", + "\u0bd9\u0003\u0002\u0002\u0002\u0bda\u0bdb\u0003\u0002\u0002\u0002\u0bdb", + "\u0bdc\u0003\u0002\u0002\u0002\u0bdc\u0bde\u0005\u00e0q\u0002\u0bdd", + "\u0bd8\u0003\u0002\u0002\u0002\u0bdd\u0bde\u0003\u0002\u0002\u0002\u0bde", + "\u0be0\u0003\u0002\u0002\u0002\u0bdf\u0be1\u0005\u00d0i\u0002\u0be0", + "\u0bdf\u0003\u0002\u0002\u0002\u0be0\u0be1\u0003\u0002\u0002\u0002\u0be1", + "\u0be3\u0003\u0002\u0002\u0002\u0be2\u0be4\u0005\u00fc\u007f\u0002\u0be3", + "\u0be2\u0003\u0002\u0002\u0002\u0be3\u0be4\u0003\u0002\u0002\u0002\u0be4", + "\u0be6\u0003\u0002\u0002\u0002\u0be5\u0be7\u0005\u00be`\u0002\u0be6", + "\u0be5\u0003\u0002\u0002\u0002\u0be6\u0be7\u0003\u0002\u0002\u0002\u0be7", + "\u0be9\u0003\u0002\u0002\u0002\u0be8\u0bb1\u0003\u0002\u0002\u0002\u0be8", + "\u0bb5\u0003\u0002\u0002\u0002\u0be8\u0bb9\u0003\u0002\u0002\u0002\u0be8", + "\u0bd2\u0003\u0002\u0002\u0002\u0be9\u00b5\u0003\u0002\u0002\u0002\u0bea", + "\u0bed\u0005\u00ccg\u0002\u0beb\u0bed\u0005\u00ceh\u0002\u0bec\u0bea", + "\u0003\u0002\u0002\u0002\u0bec\u0beb\u0003\u0002\u0002\u0002\u0bed\u00b7", + "\u0003\u0002\u0002\u0002\u0bee\u0c01\u0005\u00b4[\u0002\u0bef\u0bf0", + "\t)\u0002\u0002\u0bf0\u0bf2\u0007\u03fe\u0002\u0002\u0bf1\u0bf3\u0005", + "\u0234\u011b\u0002\u0bf2\u0bf1\u0003\u0002\u0002\u0002\u0bf2\u0bf3\u0003", + "\u0002\u0002\u0002\u0bf3\u0bf4\u0003\u0002\u0002\u0002\u0bf4\u0bfd\u0007", + "\u03ff\u0002\u0002\u0bf5\u0bf6\u0007\u0400\u0002\u0002\u0bf6\u0bf8\u0007", + "\u03fe\u0002\u0002\u0bf7\u0bf9\u0005\u0234\u011b\u0002\u0bf8\u0bf7\u0003", + "\u0002\u0002\u0002\u0bf8\u0bf9\u0003\u0002\u0002\u0002\u0bf9\u0bfa\u0003", + "\u0002\u0002\u0002\u0bfa\u0bfc\u0007\u03ff\u0002\u0002\u0bfb\u0bf5\u0003", + "\u0002\u0002\u0002\u0bfc\u0bff\u0003\u0002\u0002\u0002\u0bfd\u0bfb\u0003", + "\u0002\u0002\u0002\u0bfd\u0bfe\u0003\u0002\u0002\u0002\u0bfe\u0c01\u0003", + "\u0002\u0002\u0002\u0bff\u0bfd\u0003\u0002\u0002\u0002\u0c00\u0bee\u0003", + "\u0002\u0002\u0002\u0c00\u0bef\u0003\u0002\u0002\u0002\u0c01\u00b9\u0003", + "\u0002\u0002\u0002\u0c02\u0c03\u0005\u01f6\u00fc\u0002\u0c03\u0c06\u0007", + "\u03f5\u0002\u0002\u0c04\u0c07\u0005\u025a\u012e\u0002\u0c05\u0c07\u0007", + "(\u0002\u0002\u0c06\u0c04\u0003\u0002\u0002\u0002\u0c06\u0c05\u0003", + "\u0002\u0002\u0002\u0c07\u00bb\u0003\u0002\u0002\u0002\u0c08\u0c0b\u0005", + "\u020c\u0107\u0002\u0c09\u0c0b\u0007\u0418\u0002\u0002\u0c0a\u0c08\u0003", + "\u0002\u0002\u0002\u0c0a\u0c09\u0003\u0002\u0002\u0002\u0c0b\u00bd\u0003", + "\u0002\u0002\u0002\u0c0c\u0c0d\u0007<\u0002\u0002\u0c0d\u0c13\u0007", + "\u00a8\u0002\u0002\u0c0e\u0c0f\u0007_\u0002\u0002\u0c0f\u0c10\u0007", + "I\u0002\u0002\u0c10\u0c11\u0007\u0209\u0002\u0002\u0c11\u0c13\u0007", + "\u01b8\u0002\u0002\u0c12\u0c0c\u0003\u0002\u0002\u0002\u0c12\u0c0e\u0003", + "\u0002\u0002\u0002\u0c13\u00bf\u0003\u0002\u0002\u0002\u0c14\u0c16\u0007", + "*\u0002\u0002\u0c15\u0c17\u0007a\u0002\u0002\u0c16\u0c15\u0003\u0002", + "\u0002\u0002\u0c16\u0c17\u0003\u0002\u0002\u0002\u0c17\u0c19\u0003\u0002", + "\u0002\u0002\u0c18\u0c1a\u0007\u01e5\u0002\u0002\u0c19\u0c18\u0003\u0002", + "\u0002\u0002\u0c19\u0c1a\u0003\u0002\u0002\u0002\u0c1a\u0c1c\u0003\u0002", + "\u0002\u0002\u0c1b\u0c1d\u0007H\u0002\u0002\u0c1c\u0c1b\u0003\u0002", + "\u0002\u0002\u0c1c\u0c1d\u0003\u0002\u0002\u0002\u0c1d\u0c1e\u0003\u0002", + "\u0002\u0002\u0c1e\u0c1f\u0007?\u0002\u0002\u0c1f\u0c25\u0005\u01f4", + "\u00fb\u0002\u0c20\u0c21\u0007u\u0002\u0002\u0c21\u0c22\u0007\u03fe", + "\u0002\u0002\u0c22\u0c23\u0005\u022c\u0117\u0002\u0c23\u0c24\u0007\u03ff", + "\u0002\u0002\u0c24\u0c26\u0003\u0002\u0002\u0002\u0c25\u0c20\u0003\u0002", + "\u0002\u0002\u0c25\u0c26\u0003\u0002\u0002\u0002\u0c26\u0c29\u0003\u0002", + "\u0002\u0002\u0c27\u0c28\u0007\u00ae\u0002\u0002\u0c28\u0c2a\u0005\u025a", + "\u012e\u0002\u0c29\u0c27\u0003\u0002\u0002\u0002\u0c29\u0c2a\u0003\u0002", + "\u0002\u0002\u0c2a\u0c2c\u0003\u0002\u0002\u0002\u0c2b\u0c2d\u0005\u00d0", + "i\u0002\u0c2c\u0c2b\u0003\u0002\u0002\u0002\u0c2c\u0c2d\u0003\u0002", + "\u0002\u0002\u0c2d\u0c30\u0003\u0002\u0002\u0002\u0c2e\u0c2f\u0007[", + "\u0002\u0002\u0c2f\u0c31\u0005\u00fe\u0080\u0002\u0c30\u0c2e\u0003\u0002", + "\u0002\u0002\u0c30\u0c31\u0003\u0002\u0002\u0002\u0c31\u00c1\u0003\u0002", + "\u0002\u0002\u0c32\u0c34\u0007*\u0002\u0002\u0c33\u0c35\u0007a\u0002", + "\u0002\u0c34\u0c33\u0003\u0002\u0002\u0002\u0c34\u0c35\u0003\u0002\u0002", + "\u0002\u0c35\u0c37\u0003\u0002\u0002\u0002\u0c36\u0c38\u0007\u01e5\u0002", + "\u0002\u0c37\u0c36\u0003\u0002\u0002\u0002\u0c37\u0c38\u0003\u0002\u0002", + "\u0002\u0c38\u0c3a\u0003\u0002\u0002\u0002\u0c39\u0c3b\u0007H\u0002", + "\u0002\u0c3a\u0c39\u0003\u0002\u0002\u0002\u0c3a\u0c3b\u0003\u0002\u0002", + "\u0002\u0c3b\u0c63\u0003\u0002\u0002\u0002\u0c3c\u0c3f\u0005\u01f4\u00fb", + "\u0002\u0c3d\u0c3e\u0007\u03fd\u0002\u0002\u0c3e\u0c40\u0007\u03ed\u0002", + "\u0002\u0c3f\u0c3d\u0003\u0002\u0002\u0002\u0c3f\u0c40\u0003\u0002\u0002", + "\u0002\u0c40\u0c49\u0003\u0002\u0002\u0002\u0c41\u0c42\u0007\u0400\u0002", + "\u0002\u0c42\u0c45\u0005\u01f4\u00fb\u0002\u0c43\u0c44\u0007\u03fd\u0002", + "\u0002\u0c44\u0c46\u0007\u03ed\u0002\u0002\u0c45\u0c43\u0003\u0002\u0002", + "\u0002\u0c45\u0c46\u0003\u0002\u0002\u0002\u0c46\u0c48\u0003\u0002\u0002", + "\u0002\u0c47\u0c41\u0003\u0002\u0002\u0002\u0c48\u0c4b\u0003\u0002\u0002", + "\u0002\u0c49\u0c47\u0003\u0002\u0002\u0002\u0c49\u0c4a\u0003\u0002\u0002", + "\u0002\u0c4a\u0c4c\u0003\u0002\u0002\u0002\u0c4b\u0c49\u0003\u0002\u0002", + "\u0002\u0c4c\u0c4d\u0007?\u0002\u0002\u0c4d\u0c4e\u0005\u00d4k\u0002", + "\u0c4e\u0c64\u0003\u0002\u0002\u0002\u0c4f\u0c50\u0007?\u0002\u0002", + "\u0c50\u0c53\u0005\u01f4\u00fb\u0002\u0c51\u0c52\u0007\u03fd\u0002\u0002", + "\u0c52\u0c54\u0007\u03ed\u0002\u0002\u0c53\u0c51\u0003\u0002\u0002\u0002", + "\u0c53\u0c54\u0003\u0002\u0002\u0002\u0c54\u0c5d\u0003\u0002\u0002\u0002", + "\u0c55\u0c56\u0007\u0400\u0002\u0002\u0c56\u0c59\u0005\u01f4\u00fb\u0002", + "\u0c57\u0c58\u0007\u03fd\u0002\u0002\u0c58\u0c5a\u0007\u03ed\u0002\u0002", + "\u0c59\u0c57\u0003\u0002\u0002\u0002\u0c59\u0c5a\u0003\u0002\u0002\u0002", + "\u0c5a\u0c5c\u0003\u0002\u0002\u0002\u0c5b\u0c55\u0003\u0002\u0002\u0002", + "\u0c5c\u0c5f\u0003\u0002\u0002\u0002\u0c5d\u0c5b\u0003\u0002\u0002\u0002", + "\u0c5d\u0c5e\u0003\u0002\u0002\u0002\u0c5e\u0c60\u0003\u0002\u0002\u0002", + "\u0c5f\u0c5d\u0003\u0002\u0002\u0002\u0c60\u0c61\u0007\u00ab\u0002\u0002", + "\u0c61\u0c62\u0005\u00d4k\u0002\u0c62\u0c64\u0003\u0002\u0002\u0002", + "\u0c63\u0c3c\u0003\u0002\u0002\u0002\u0c63\u0c4f\u0003\u0002\u0002\u0002", + "\u0c64\u0c67\u0003\u0002\u0002\u0002\u0c65\u0c66\u0007\u00ae\u0002\u0002", + "\u0c66\u0c68\u0005\u025a\u012e\u0002\u0c67\u0c65\u0003\u0002\u0002\u0002", + "\u0c67\u0c68\u0003\u0002\u0002\u0002\u0c68\u00c3\u0003\u0002\u0002\u0002", + "\u0c69\u0c6a\u0007\u0177\u0002\u0002\u0c6a\u0c6b\u0005\u01f4\u00fb\u0002", + "\u0c6b\u0c70\u0007\u01cc\u0002\u0002\u0c6c\u0c6e\u0007\r\u0002\u0002", + "\u0c6d\u0c6c\u0003\u0002\u0002\u0002\u0c6d\u0c6e\u0003\u0002\u0002\u0002", + "\u0c6e\u0c6f\u0003\u0002\u0002\u0002\u0c6f\u0c71\u0005\u020c\u0107\u0002", + "\u0c70\u0c6d\u0003\u0002\u0002\u0002\u0c70\u0c71\u0003\u0002\u0002\u0002", + "\u0c71\u00c5\u0003\u0002\u0002\u0002\u0c72\u0c73\u0007\u0177\u0002\u0002", + "\u0c73\u0c74\u0005\u01f4\u00fb\u0002\u0c74\u0c75\u0007z\u0002\u0002", + "\u0c75\u0c7c\u0005\u020c\u0107\u0002\u0c76\u0c77\u0005\u0262\u0132\u0002", + "\u0c77\u0c78\u0007\u03fe\u0002\u0002\u0c78\u0c79\u0005\u0236\u011c\u0002", + "\u0c79\u0c7a\u0007\u03ff\u0002\u0002\u0c7a\u0c7d\u0003\u0002\u0002\u0002", + "\u0c7b\u0c7d\t*\u0002\u0002\u0c7c\u0c76\u0003\u0002\u0002\u0002\u0c7c", + "\u0c7b\u0003\u0002\u0002\u0002\u0c7d\u0c80\u0003\u0002\u0002\u0002\u0c7e", + "\u0c7f\u0007\u00ae\u0002\u0002\u0c7f\u0c81\u0005\u025a\u012e\u0002\u0c80", + "\u0c7e\u0003\u0002\u0002\u0002\u0c80\u0c81\u0003\u0002\u0002\u0002\u0c81", + "\u0c84\u0003\u0002\u0002\u0002\u0c82\u0c83\u0007[\u0002\u0002\u0c83", + "\u0c85\u0005\u00fe\u0080\u0002\u0c84\u0c82\u0003\u0002\u0002\u0002\u0c84", + "\u0c85\u0003\u0002\u0002\u0002\u0c85\u00c7\u0003\u0002\u0002\u0002\u0c86", + "\u0c87\u0007\u0177\u0002\u0002\u0c87\u0c88\u0005\u01f4\u00fb\u0002\u0c88", + "\u0c89\u0007z\u0002\u0002\u0c89\u0c8c\t+\u0002\u0002\u0c8a\u0c8b\u0007", + "\u00ae\u0002\u0002\u0c8b\u0c8d\u0005\u025a\u012e\u0002\u0c8c\u0c8a\u0003", + "\u0002\u0002\u0002\u0c8c\u0c8d\u0003\u0002\u0002\u0002\u0c8d\u0c90\u0003", + "\u0002\u0002\u0002\u0c8e\u0c8f\u0007[\u0002\u0002\u0c8f\u0c91\u0005", + "\u00fe\u0080\u0002\u0c90\u0c8e\u0003\u0002\u0002\u0002\u0c90\u0c91\u0003", + "\u0002\u0002\u0002\u0c91\u00c9\u0003\u0002\u0002\u0002\u0c92\u0c93\u0007", + "\u0177\u0002\u0002\u0c93\u0c94\u0005\u01f4\u00fb\u0002\u0c94\u0c95\u0007", + "\u012d\u0002\u0002\u0c95\u00cb\u0003\u0002\u0002\u0002\u0c96\u0c98\u0007", + "\u00a8\u0002\u0002\u0c97\u0c99\u0007a\u0002\u0002\u0c98\u0c97\u0003", + "\u0002\u0002\u0002\u0c98\u0c99\u0003\u0002\u0002\u0002\u0c99\u0c9b\u0003", + "\u0002\u0002\u0002\u0c9a\u0c9c\u0007H\u0002\u0002\u0c9b\u0c9a\u0003", + "\u0002\u0002\u0002\u0c9b\u0c9c\u0003\u0002\u0002\u0002\u0c9c\u0c9d\u0003", + "\u0002\u0002\u0002\u0c9d\u0ca2\u0005\u01f4\u00fb\u0002\u0c9e\u0ca0\u0007", + "\r\u0002\u0002\u0c9f\u0c9e\u0003\u0002\u0002\u0002\u0c9f\u0ca0\u0003", + "\u0002\u0002\u0002\u0ca0\u0ca1\u0003\u0002\u0002\u0002\u0ca1\u0ca3\u0005", + "\u020c\u0107\u0002\u0ca2\u0c9f\u0003\u0002\u0002\u0002\u0ca2\u0ca3\u0003", + "\u0002\u0002\u0002\u0ca3\u0ca4\u0003\u0002\u0002\u0002\u0ca4\u0ca5\u0007", + "\u008c\u0002\u0002\u0ca5\u0caa\u0005\u00ba^\u0002\u0ca6\u0ca7\u0007", + "\u0400\u0002\u0002\u0ca7\u0ca9\u0005\u00ba^\u0002\u0ca8\u0ca6\u0003", + "\u0002\u0002\u0002\u0ca9\u0cac\u0003\u0002\u0002\u0002\u0caa\u0ca8\u0003", + "\u0002\u0002\u0002\u0caa\u0cab\u0003\u0002\u0002\u0002\u0cab\u0caf\u0003", + "\u0002\u0002\u0002\u0cac\u0caa\u0003\u0002\u0002\u0002\u0cad\u0cae\u0007", + "\u00ae\u0002\u0002\u0cae\u0cb0\u0005\u025a\u012e\u0002\u0caf\u0cad\u0003", + "\u0002\u0002\u0002\u0caf\u0cb0\u0003\u0002\u0002\u0002\u0cb0\u0cb2\u0003", + "\u0002\u0002\u0002\u0cb1\u0cb3\u0005\u00d0i\u0002\u0cb2\u0cb1\u0003", + "\u0002\u0002\u0002\u0cb2\u0cb3\u0003\u0002\u0002\u0002\u0cb3\u0cb5\u0003", + "\u0002\u0002\u0002\u0cb4\u0cb6\u0005\u00fc\u007f\u0002\u0cb5\u0cb4\u0003", + "\u0002\u0002\u0002\u0cb5\u0cb6\u0003\u0002\u0002\u0002\u0cb6\u00cd\u0003", + "\u0002\u0002\u0002\u0cb7\u0cb9\u0007\u00a8\u0002\u0002\u0cb8\u0cba\u0007", + "a\u0002\u0002\u0cb9\u0cb8\u0003\u0002\u0002\u0002\u0cb9\u0cba\u0003", + "\u0002\u0002\u0002\u0cba\u0cbc\u0003\u0002\u0002\u0002\u0cbb\u0cbd\u0007", + "H\u0002\u0002\u0cbc\u0cbb\u0003\u0002\u0002\u0002\u0cbc\u0cbd\u0003", + "\u0002\u0002\u0002\u0cbd\u0cbe\u0003\u0002\u0002\u0002\u0cbe\u0cbf\u0005", + "\u00d4k\u0002\u0cbf\u0cc0\u0007\u008c\u0002\u0002\u0cc0\u0cc5\u0005", + "\u00ba^\u0002\u0cc1\u0cc2\u0007\u0400\u0002\u0002\u0cc2\u0cc4\u0005", + "\u00ba^\u0002\u0cc3\u0cc1\u0003\u0002\u0002\u0002\u0cc4\u0cc7\u0003", + "\u0002\u0002\u0002\u0cc5\u0cc3\u0003\u0002\u0002\u0002\u0cc5\u0cc6\u0003", + "\u0002\u0002\u0002\u0cc6\u0cca\u0003\u0002\u0002\u0002\u0cc7\u0cc5\u0003", + "\u0002\u0002\u0002\u0cc8\u0cc9\u0007\u00ae\u0002\u0002\u0cc9\u0ccb\u0005", + "\u025a\u012e\u0002\u0cca\u0cc8\u0003\u0002\u0002\u0002\u0cca\u0ccb\u0003", + "\u0002\u0002\u0002\u0ccb\u00cf\u0003\u0002\u0002\u0002\u0ccc\u0ccd\u0007", + "q\u0002\u0002\u0ccd\u0cce\u0007\u0012\u0002\u0002\u0cce\u0cd3\u0005", + "\u00d2j\u0002\u0ccf\u0cd0\u0007\u0400\u0002\u0002\u0cd0\u0cd2\u0005", + "\u00d2j\u0002\u0cd1\u0ccf\u0003\u0002\u0002\u0002\u0cd2\u0cd5\u0003", + "\u0002\u0002\u0002\u0cd3\u0cd1\u0003\u0002\u0002\u0002\u0cd3\u0cd4\u0003", + "\u0002\u0002\u0002\u0cd4\u00d1\u0003\u0002\u0002\u0002\u0cd5\u0cd3\u0003", + "\u0002\u0002\u0002\u0cd6\u0cd8\u0005\u025a\u012e\u0002\u0cd7\u0cd9\t", + ",\u0002\u0002\u0cd8\u0cd7\u0003\u0002\u0002\u0002\u0cd8\u0cd9\u0003", + "\u0002\u0002\u0002\u0cd9\u00d3\u0003\u0002\u0002\u0002\u0cda\u0cdf\u0005", + "\u00d6l\u0002\u0cdb\u0cdc\u0007\u0400\u0002\u0002\u0cdc\u0cde\u0005", + "\u00d6l\u0002\u0cdd\u0cdb\u0003\u0002\u0002\u0002\u0cde\u0ce1\u0003", + "\u0002\u0002\u0002\u0cdf\u0cdd\u0003\u0002\u0002\u0002\u0cdf\u0ce0\u0003", + "\u0002\u0002\u0002\u0ce0\u00d5\u0003\u0002\u0002\u0002\u0ce1\u0cdf\u0003", + "\u0002\u0002\u0002\u0ce2\u0ce6\u0005\u00d8m\u0002\u0ce3\u0ce5\u0005", + "\u00dep\u0002\u0ce4\u0ce3\u0003\u0002\u0002\u0002\u0ce5\u0ce8\u0003", + "\u0002\u0002\u0002\u0ce6\u0ce4\u0003\u0002\u0002\u0002\u0ce6\u0ce7\u0003", + "\u0002\u0002\u0002\u0ce7\u0cf4\u0003\u0002\u0002\u0002\u0ce8\u0ce6\u0003", + "\u0002\u0002\u0002\u0ce9\u0cea\u0007\u03fe\u0002\u0002\u0cea\u0cee\u0005", + "\u00d8m\u0002\u0ceb\u0ced\u0005\u00dep\u0002\u0cec\u0ceb\u0003\u0002", + "\u0002\u0002\u0ced\u0cf0\u0003\u0002\u0002\u0002\u0cee\u0cec\u0003\u0002", + "\u0002\u0002\u0cee\u0cef\u0003\u0002\u0002\u0002\u0cef\u0cf1\u0003\u0002", + "\u0002\u0002\u0cf0\u0cee\u0003\u0002\u0002\u0002\u0cf1\u0cf2\u0007\u03ff", + "\u0002\u0002\u0cf2\u0cf4\u0003\u0002\u0002\u0002\u0cf3\u0ce2\u0003\u0002", + "\u0002\u0002\u0cf3\u0ce9\u0003\u0002\u0002\u0002\u0cf4\u00d7\u0003\u0002", + "\u0002\u0002\u0cf5\u0cfb\u0005\u01f4\u00fb\u0002\u0cf6\u0cf7\u0007u", + "\u0002\u0002\u0cf7\u0cf8\u0007\u03fe\u0002\u0002\u0cf8\u0cf9\u0005\u022c", + "\u0117\u0002\u0cf9\u0cfa\u0007\u03ff\u0002\u0002\u0cfa\u0cfc\u0003\u0002", + "\u0002\u0002\u0cfb\u0cf6\u0003\u0002\u0002\u0002\u0cfb\u0cfc\u0003\u0002", + "\u0002\u0002\u0cfc\u0d01\u0003\u0002\u0002\u0002\u0cfd\u0cff\u0007\r", + "\u0002\u0002\u0cfe\u0cfd\u0003\u0002\u0002\u0002\u0cfe\u0cff\u0003\u0002", + "\u0002\u0002\u0cff\u0d00\u0003\u0002\u0002\u0002\u0d00\u0d02\u0005\u020c", + "\u0107\u0002\u0d01\u0cfe\u0003\u0002\u0002\u0002\u0d01\u0d02\u0003\u0002", + "\u0002\u0002\u0d02\u0d0b\u0003\u0002\u0002\u0002\u0d03\u0d08\u0005\u00da", + "n\u0002\u0d04\u0d05\u0007\u0400\u0002\u0002\u0d05\u0d07\u0005\u00da", + "n\u0002\u0d06\u0d04\u0003\u0002\u0002\u0002\u0d07\u0d0a\u0003\u0002", + "\u0002\u0002\u0d08\u0d06\u0003\u0002\u0002\u0002\u0d08\u0d09\u0003\u0002", + "\u0002\u0002\u0d09\u0d0c\u0003\u0002\u0002\u0002\u0d0a\u0d08\u0003\u0002", + "\u0002\u0002\u0d0b\u0d03\u0003\u0002\u0002\u0002\u0d0b\u0d0c\u0003\u0002", + "\u0002\u0002\u0d0c\u0d1e\u0003\u0002\u0002\u0002\u0d0d\u0d13\u0005\u00b4", + "[\u0002\u0d0e\u0d0f\u0007\u03fe\u0002\u0002\u0d0f\u0d10\u0005\u00b4", + "[\u0002\u0d10\u0d11\u0007\u03ff\u0002\u0002\u0d11\u0d13\u0003\u0002", + "\u0002\u0002\u0d12\u0d0d\u0003\u0002\u0002\u0002\u0d12\u0d0e\u0003\u0002", + "\u0002\u0002\u0d13\u0d15\u0003\u0002\u0002\u0002\u0d14\u0d16\u0007\r", + "\u0002\u0002\u0d15\u0d14\u0003\u0002\u0002\u0002\u0d15\u0d16\u0003\u0002", + "\u0002\u0002\u0d16\u0d17\u0003\u0002\u0002\u0002\u0d17\u0d18\u0005\u020c", + "\u0107\u0002\u0d18\u0d1e\u0003\u0002\u0002\u0002\u0d19\u0d1a\u0007\u03fe", + "\u0002\u0002\u0d1a\u0d1b\u0005\u00d4k\u0002\u0d1b\u0d1c\u0007\u03ff", + "\u0002\u0002\u0d1c\u0d1e\u0003\u0002\u0002\u0002\u0d1d\u0cf5\u0003\u0002", + "\u0002\u0002\u0d1d\u0d12\u0003\u0002\u0002\u0002\u0d1d\u0d19\u0003\u0002", + "\u0002\u0002\u0d1e\u00d9\u0003\u0002\u0002\u0002\u0d1f\u0d20\t-\u0002", + "\u0002\u0d20\u0d23\t\u0014\u0002\u0002\u0d21\u0d22\u0007<\u0002\u0002", + "\u0d22\u0d24\u0005\u00dco\u0002\u0d23\u0d21\u0003\u0002\u0002\u0002", + "\u0d23\u0d24\u0003\u0002\u0002\u0002\u0d24\u0d25\u0003\u0002\u0002\u0002", + "\u0d25\u0d26\u0007\u03fe\u0002\u0002\u0d26\u0d27\u0005\u022c\u0117\u0002", + "\u0d27\u0d28\u0007\u03ff\u0002\u0002\u0d28\u00db\u0003\u0002\u0002\u0002", + "\u0d29\u0d2f\u0007S\u0002\u0002\u0d2a\u0d2b\u0007q\u0002\u0002\u0d2b", + "\u0d2f\u0007\u0012\u0002\u0002\u0d2c\u0d2d\u0007D\u0002\u0002\u0d2d", + "\u0d2f\u0007\u0012\u0002\u0002\u0d2e\u0d29\u0003\u0002\u0002\u0002\u0d2e", + "\u0d2a\u0003\u0002\u0002\u0002\u0d2e\u0d2c\u0003\u0002\u0002\u0002\u0d2f", + "\u00dd\u0003\u0002\u0002\u0002\u0d30\u0d32\t.\u0002\u0002\u0d31\u0d30", + "\u0003\u0002\u0002\u0002\u0d31\u0d32\u0003\u0002\u0002\u0002\u0d32\u0d33", + "\u0003\u0002\u0002\u0002\u0d33\u0d34\u0007S\u0002\u0002\u0d34\u0d3c", + "\u0005\u00d8m\u0002\u0d35\u0d36\u0007l\u0002\u0002\u0d36\u0d3d\u0005", + "\u025a\u012e\u0002\u0d37\u0d38\u0007\u00ab\u0002\u0002\u0d38\u0d39\u0007", + "\u03fe\u0002\u0002\u0d39\u0d3a\u0005\u022c\u0117\u0002\u0d3a\u0d3b\u0007", + "\u03ff\u0002\u0002\u0d3b\u0d3d\u0003\u0002\u0002\u0002\u0d3c\u0d35\u0003", + "\u0002\u0002\u0002\u0d3c\u0d37\u0003\u0002\u0002\u0002\u0d3c\u0d3d\u0003", + "\u0002\u0002\u0002\u0d3d\u0d5d\u0003\u0002\u0002\u0002\u0d3e\u0d3f\u0007", + "\u009b\u0002\u0002\u0d3f\u0d42\u0005\u00d8m\u0002\u0d40\u0d41\u0007", + "l\u0002\u0002\u0d41\u0d43\u0005\u025a\u012e\u0002\u0d42\u0d40\u0003", + "\u0002\u0002\u0002\u0d42\u0d43\u0003\u0002\u0002\u0002\u0d43\u0d5d\u0003", + "\u0002\u0002\u0002\u0d44\u0d46\t/\u0002\u0002\u0d45\u0d47\u0007s\u0002", + "\u0002\u0d46\u0d45\u0003\u0002\u0002\u0002\u0d46\u0d47\u0003\u0002\u0002", + "\u0002\u0d47\u0d48\u0003\u0002\u0002\u0002\u0d48\u0d49\u0007S\u0002", + "\u0002\u0d49\u0d51\u0005\u00d8m\u0002\u0d4a\u0d4b\u0007l\u0002\u0002", + "\u0d4b\u0d52\u0005\u025a\u012e\u0002\u0d4c\u0d4d\u0007\u00ab\u0002\u0002", + "\u0d4d\u0d4e\u0007\u03fe\u0002\u0002\u0d4e\u0d4f\u0005\u022c\u0117\u0002", + "\u0d4f\u0d50\u0007\u03ff\u0002\u0002\u0d50\u0d52\u0003\u0002\u0002\u0002", + "\u0d51\u0d4a\u0003\u0002\u0002\u0002\u0d51\u0d4c\u0003\u0002\u0002\u0002", + "\u0d52\u0d5d\u0003\u0002\u0002\u0002\u0d53\u0d58\u0007g\u0002\u0002", + "\u0d54\u0d56\t/\u0002\u0002\u0d55\u0d57\u0007s\u0002\u0002\u0d56\u0d55", + "\u0003\u0002\u0002\u0002\u0d56\u0d57\u0003\u0002\u0002\u0002\u0d57\u0d59", + "\u0003\u0002\u0002\u0002\u0d58\u0d54\u0003\u0002\u0002\u0002\u0d58\u0d59", + "\u0003\u0002\u0002\u0002\u0d59\u0d5a\u0003\u0002\u0002\u0002\u0d5a\u0d5b", + "\u0007S\u0002\u0002\u0d5b\u0d5d\u0005\u00d8m\u0002\u0d5c\u0d31\u0003", + "\u0002\u0002\u0002\u0d5c\u0d3e\u0003\u0002\u0002\u0002\u0d5c\u0d44\u0003", + "\u0002\u0002\u0002\u0d5c\u0d53\u0003\u0002\u0002\u0002\u0d5d\u00df\u0003", + "\u0002\u0002\u0002\u0d5e\u0d5f\u0007\u03fe\u0002\u0002\u0d5f\u0d60\u0005", + "\u00e4s\u0002\u0d60\u0d61\u0007\u03ff\u0002\u0002\u0d61\u0d67\u0003", + "\u0002\u0002\u0002\u0d62\u0d63\u0007\u03fe\u0002\u0002\u0d63\u0d64\u0005", + "\u00e0q\u0002\u0d64\u0d65\u0007\u03ff\u0002\u0002\u0d65\u0d67\u0003", + "\u0002\u0002\u0002\u0d66\u0d5e\u0003\u0002\u0002\u0002\u0d66\u0d62\u0003", + "\u0002\u0002\u0002\u0d67\u00e1\u0003\u0002\u0002\u0002\u0d68\u0d69\u0007", + "\u03fe\u0002\u0002\u0d69\u0d6a\u0005\u00e6t\u0002\u0d6a\u0d6b\u0007", + "\u03ff\u0002\u0002\u0d6b\u0d71\u0003\u0002\u0002\u0002\u0d6c\u0d6d\u0007", + "\u03fe\u0002\u0002\u0d6d\u0d6e\u0005\u00e2r\u0002\u0d6e\u0d6f\u0007", + "\u03ff\u0002\u0002\u0d6f\u0d71\u0003\u0002\u0002\u0002\u0d70\u0d68\u0003", + "\u0002\u0002\u0002\u0d70\u0d6c\u0003\u0002\u0002\u0002\u0d71\u00e3\u0003", + "\u0002\u0002\u0002\u0d72\u0d76\u0007\u008b\u0002\u0002\u0d73\u0d75\u0005", + "\u00ecw\u0002\u0d74\u0d73\u0003\u0002\u0002\u0002\u0d75\u0d78\u0003", + "\u0002\u0002\u0002\u0d76\u0d74\u0003\u0002\u0002\u0002\u0d76\u0d77\u0003", + "\u0002\u0002\u0002\u0d77\u0d79\u0003\u0002\u0002\u0002\u0d78\u0d76\u0003", + "\u0002\u0002\u0002\u0d79\u0d7b\u0005\u00eex\u0002\u0d7a\u0d7c\u0005", + "\u00f2z\u0002\u0d7b\u0d7a\u0003\u0002\u0002\u0002\u0d7b\u0d7c\u0003", + "\u0002\u0002\u0002\u0d7c\u0d7e\u0003\u0002\u0002\u0002\u0d7d\u0d7f\u0005", + "\u00f8}\u0002\u0d7e\u0d7d\u0003\u0002\u0002\u0002\u0d7e\u0d7f\u0003", + "\u0002\u0002\u0002\u0d7f\u0d81\u0003\u0002\u0002\u0002\u0d80\u0d82\u0005", + "\u00d0i\u0002\u0d81\u0d80\u0003\u0002\u0002\u0002\u0d81\u0d82\u0003", + "\u0002\u0002\u0002\u0d82\u0d84\u0003\u0002\u0002\u0002\u0d83\u0d85\u0005", + "\u00fc\u007f\u0002\u0d84\u0d83\u0003\u0002\u0002\u0002\u0d84\u0d85\u0003", + "\u0002\u0002\u0002\u0d85\u0d9b\u0003\u0002\u0002\u0002\u0d86\u0d8a\u0007", + "\u008b\u0002\u0002\u0d87\u0d89\u0005\u00ecw\u0002\u0d88\u0d87\u0003", + "\u0002\u0002\u0002\u0d89\u0d8c\u0003\u0002\u0002\u0002\u0d8a\u0d88\u0003", + "\u0002\u0002\u0002\u0d8a\u0d8b\u0003\u0002\u0002\u0002\u0d8b\u0d8d\u0003", + "\u0002\u0002\u0002\u0d8c\u0d8a\u0003\u0002\u0002\u0002\u0d8d\u0d8f\u0005", + "\u00eex\u0002\u0d8e\u0d90\u0005\u00f8}\u0002\u0d8f\u0d8e\u0003\u0002", + "\u0002\u0002\u0d8f\u0d90\u0003\u0002\u0002\u0002\u0d90\u0d92\u0003\u0002", + "\u0002\u0002\u0d91\u0d93\u0005\u00d0i\u0002\u0d92\u0d91\u0003\u0002", + "\u0002\u0002\u0d92\u0d93\u0003\u0002\u0002\u0002\u0d93\u0d95\u0003\u0002", + "\u0002\u0002\u0d94\u0d96\u0005\u00fc\u007f\u0002\u0d95\u0d94\u0003\u0002", + "\u0002\u0002\u0d95\u0d96\u0003\u0002\u0002\u0002\u0d96\u0d98\u0003\u0002", + "\u0002\u0002\u0d97\u0d99\u0005\u00f2z\u0002\u0d98\u0d97\u0003\u0002", + "\u0002\u0002\u0d98\u0d99\u0003\u0002\u0002\u0002\u0d99\u0d9b\u0003\u0002", + "\u0002\u0002\u0d9a\u0d72\u0003\u0002\u0002\u0002\u0d9a\u0d86\u0003\u0002", + "\u0002\u0002\u0d9b\u00e5\u0003\u0002\u0002\u0002\u0d9c\u0da0\u0007\u008b", + "\u0002\u0002\u0d9d\u0d9f\u0005\u00ecw\u0002\u0d9e\u0d9d\u0003\u0002", + "\u0002\u0002\u0d9f\u0da2\u0003\u0002\u0002\u0002\u0da0\u0d9e\u0003\u0002", + "\u0002\u0002\u0da0\u0da1\u0003\u0002\u0002\u0002\u0da1\u0da3\u0003\u0002", + "\u0002\u0002\u0da2\u0da0\u0003\u0002\u0002\u0002\u0da3\u0da5\u0005\u00ee", + "x\u0002\u0da4\u0da6\u0005\u00f8}\u0002\u0da5\u0da4\u0003\u0002\u0002", + "\u0002\u0da5\u0da6\u0003\u0002\u0002\u0002\u0da6\u0da8\u0003\u0002\u0002", + "\u0002\u0da7\u0da9\u0005\u00d0i\u0002\u0da8\u0da7\u0003\u0002\u0002", + "\u0002\u0da8\u0da9\u0003\u0002\u0002\u0002\u0da9\u0dab\u0003\u0002\u0002", + "\u0002\u0daa\u0dac\u0005\u00fc\u007f\u0002\u0dab\u0daa\u0003\u0002\u0002", + "\u0002\u0dab\u0dac\u0003\u0002\u0002\u0002\u0dac\u00e7\u0003\u0002\u0002", + "\u0002\u0dad\u0daf\u0007\u00a4\u0002\u0002\u0dae\u0db0\t(\u0002\u0002", + "\u0daf\u0dae\u0003\u0002\u0002\u0002\u0daf\u0db0\u0003\u0002\u0002\u0002", + "\u0db0\u0db1\u0003\u0002\u0002\u0002\u0db1\u0db2\u0005\u00e2r\u0002", + "\u0db2\u00e9\u0003\u0002\u0002\u0002\u0db3\u0db5\u0007\u00a4\u0002\u0002", + "\u0db4\u0db6\t(\u0002\u0002\u0db5\u0db4\u0003\u0002\u0002\u0002\u0db5", + "\u0db6\u0003\u0002\u0002\u0002\u0db6\u0db9\u0003\u0002\u0002\u0002\u0db7", + "\u0dba\u0005\u00e6t\u0002\u0db8\u0dba\u0005\u00e2r\u0002\u0db9\u0db7", + "\u0003\u0002\u0002\u0002\u0db9\u0db8\u0003\u0002\u0002\u0002\u0dba\u00eb", + "\u0003\u0002\u0002\u0002\u0dbb\u0dc4\t0\u0002\u0002\u0dbc\u0dc4\u0007", + "F\u0002\u0002\u0dbd\u0dc4\u0007\u009b\u0002\u0002\u0dbe\u0dc4\u0007", + "\u0097\u0002\u0002\u0dbf\u0dc4\u0007\u0095\u0002\u0002\u0dc0\u0dc4\u0007", + "\u0218\u0002\u0002\u0dc1\u0dc4\t1\u0002\u0002\u0dc2\u0dc4\u0007\u0096", + "\u0002\u0002\u0dc3\u0dbb\u0003\u0002\u0002\u0002\u0dc3\u0dbc\u0003\u0002", + "\u0002\u0002\u0dc3\u0dbd\u0003\u0002\u0002\u0002\u0dc3\u0dbe\u0003\u0002", + "\u0002\u0002\u0dc3\u0dbf\u0003\u0002\u0002\u0002\u0dc3\u0dc0\u0003\u0002", + "\u0002\u0002\u0dc3\u0dc1\u0003\u0002\u0002\u0002\u0dc3\u0dc2\u0003\u0002", + "\u0002\u0002\u0dc4\u00ed\u0003\u0002\u0002\u0002\u0dc5\u0dc8\u0007\u03ed", + "\u0002\u0002\u0dc6\u0dc8\u0005\u00f0y\u0002\u0dc7\u0dc5\u0003\u0002", + "\u0002\u0002\u0dc7\u0dc6\u0003\u0002\u0002\u0002\u0dc8\u0dcd\u0003\u0002", + "\u0002\u0002\u0dc9\u0dca\u0007\u0400\u0002\u0002\u0dca\u0dcc\u0005\u00f0", + "y\u0002\u0dcb\u0dc9\u0003\u0002\u0002\u0002\u0dcc\u0dcf\u0003\u0002", + "\u0002\u0002\u0dcd\u0dcb\u0003\u0002\u0002\u0002\u0dcd\u0dce\u0003\u0002", + "\u0002\u0002\u0dce\u00ef\u0003\u0002\u0002\u0002\u0dcf\u0dcd\u0003\u0002", + "\u0002\u0002\u0dd0\u0dd1\u0005\u01f2\u00fa\u0002\u0dd1\u0dd2\u0007\u03fd", + "\u0002\u0002\u0dd2\u0dd3\u0007\u03ed\u0002\u0002\u0dd3\u0dee\u0003\u0002", + "\u0002\u0002\u0dd4\u0dd9\u0005\u01f6\u00fc\u0002\u0dd5\u0dd7\u0007\r", + "\u0002\u0002\u0dd6\u0dd5\u0003\u0002\u0002\u0002\u0dd6\u0dd7\u0003\u0002", + "\u0002\u0002\u0dd7\u0dd8\u0003\u0002\u0002\u0002\u0dd8\u0dda\u0005\u020c", + "\u0107\u0002\u0dd9\u0dd6\u0003\u0002\u0002\u0002\u0dd9\u0dda\u0003\u0002", + "\u0002\u0002\u0dda\u0dee\u0003\u0002\u0002\u0002\u0ddb\u0de0\u0005\u0246", + "\u0124\u0002\u0ddc\u0dde\u0007\r\u0002\u0002\u0ddd\u0ddc\u0003\u0002", + "\u0002\u0002\u0ddd\u0dde\u0003\u0002\u0002\u0002\u0dde\u0ddf\u0003\u0002", + "\u0002\u0002\u0ddf\u0de1\u0005\u020c\u0107\u0002\u0de0\u0ddd\u0003\u0002", + "\u0002\u0002\u0de0\u0de1\u0003\u0002\u0002\u0002\u0de1\u0dee\u0003\u0002", + "\u0002\u0002\u0de2\u0de3\u0007\u0418\u0002\u0002\u0de3\u0de5\u0007\u03e4", + "\u0002\u0002\u0de4\u0de2\u0003\u0002\u0002\u0002\u0de4\u0de5\u0003\u0002", + "\u0002\u0002\u0de5\u0de6\u0003\u0002\u0002\u0002\u0de6\u0deb\u0005\u025a", + "\u012e\u0002\u0de7\u0de9\u0007\r\u0002\u0002\u0de8\u0de7\u0003\u0002", + "\u0002\u0002\u0de8\u0de9\u0003\u0002\u0002\u0002\u0de9\u0dea\u0003\u0002", + "\u0002\u0002\u0dea\u0dec\u0005\u020c\u0107\u0002\u0deb\u0de8\u0003\u0002", + "\u0002\u0002\u0deb\u0dec\u0003\u0002\u0002\u0002\u0dec\u0dee\u0003\u0002", + "\u0002\u0002\u0ded\u0dd0\u0003\u0002\u0002\u0002\u0ded\u0dd4\u0003\u0002", + "\u0002\u0002\u0ded\u0ddb\u0003\u0002\u0002\u0002\u0ded\u0de4\u0003\u0002", + "\u0002\u0002\u0dee\u00f1\u0003\u0002\u0002\u0002\u0def\u0df0\u0007P", + "\u0002\u0002\u0df0\u0df5\u0005\u00bc_\u0002\u0df1\u0df2\u0007\u0400", + "\u0002\u0002\u0df2\u0df4\u0005\u00bc_\u0002\u0df3\u0df1\u0003\u0002", + "\u0002\u0002\u0df4\u0df7\u0003\u0002\u0002\u0002\u0df5\u0df3\u0003\u0002", + "\u0002\u0002\u0df5\u0df6\u0003\u0002\u0002\u0002\u0df6\u0e14\u0003\u0002", + "\u0002\u0002\u0df7\u0df5\u0003\u0002\u0002\u0002\u0df8\u0df9\u0007P", + "\u0002\u0002\u0df9\u0dfa\u0007\u0151\u0002\u0002\u0dfa\u0e14\u0007\u040d", + "\u0002\u0002\u0dfb\u0dfc\u0007P\u0002\u0002\u0dfc\u0dfd\u0007t\u0002", + "\u0002\u0dfd\u0e01\u0007\u040d\u0002\u0002\u0dfe\u0dff\u0007\u0018\u0002", + "\u0002\u0dff\u0e00\u0007\u008c\u0002\u0002\u0e00\u0e02\u0005\u01fe\u0100", + "\u0002\u0e01\u0dfe\u0003\u0002\u0002\u0002\u0e01\u0e02\u0003\u0002\u0002", + "\u0002\u0e02\u0e09\u0003\u0002\u0002\u0002\u0e03\u0e05\t%\u0002\u0002", + "\u0e04\u0e06\u0005\u00f4{\u0002\u0e05\u0e04\u0003\u0002\u0002\u0002", + "\u0e06\u0e07\u0003\u0002\u0002\u0002\u0e07\u0e05\u0003\u0002\u0002\u0002", + "\u0e07\u0e08\u0003\u0002\u0002\u0002\u0e08\u0e0a\u0003\u0002\u0002\u0002", + "\u0e09\u0e03\u0003\u0002\u0002\u0002\u0e09\u0e0a\u0003\u0002\u0002\u0002", + "\u0e0a\u0e11\u0003\u0002\u0002\u0002\u0e0b\u0e0d\u0007]\u0002\u0002", + "\u0e0c\u0e0e\u0005\u00f6|\u0002\u0e0d\u0e0c\u0003\u0002\u0002\u0002", + "\u0e0e\u0e0f\u0003\u0002\u0002\u0002\u0e0f\u0e0d\u0003\u0002\u0002\u0002", + "\u0e0f\u0e10\u0003\u0002\u0002\u0002\u0e10\u0e12\u0003\u0002\u0002\u0002", + "\u0e11\u0e0b\u0003\u0002\u0002\u0002\u0e11\u0e12\u0003\u0002\u0002\u0002", + "\u0e12\u0e14\u0003\u0002\u0002\u0002\u0e13\u0def\u0003\u0002\u0002\u0002", + "\u0e13\u0df8\u0003\u0002\u0002\u0002\u0e13\u0dfb\u0003\u0002\u0002\u0002", + "\u0e14\u00f3\u0003\u0002\u0002\u0002\u0e15\u0e16\u0007\u009d\u0002\u0002", + "\u0e16\u0e17\u0007\u0012\u0002\u0002\u0e17\u0e22\u0007\u040d\u0002\u0002", + "\u0e18\u0e1a\u0007o\u0002\u0002\u0e19\u0e18\u0003\u0002\u0002\u0002", + "\u0e19\u0e1a\u0003\u0002\u0002\u0002\u0e1a\u0e1b\u0003\u0002\u0002\u0002", + "\u0e1b\u0e1c\u00075\u0002\u0002\u0e1c\u0e1d\u0007\u0012\u0002\u0002", + "\u0e1d\u0e22\u0007\u040d\u0002\u0002\u0e1e\u0e1f\u00076\u0002\u0002", + "\u0e1f\u0e20\u0007\u0012\u0002\u0002\u0e20\u0e22\u0007\u040d\u0002\u0002", + "\u0e21\u0e15\u0003\u0002\u0002\u0002\u0e21\u0e19\u0003\u0002\u0002\u0002", + "\u0e21\u0e1e\u0003\u0002\u0002\u0002\u0e22\u00f5\u0003\u0002\u0002\u0002", + "\u0e23\u0e24\u0007\u009a\u0002\u0002\u0e24\u0e25\u0007\u0012\u0002\u0002", + "\u0e25\u0e2a\u0007\u040d\u0002\u0002\u0e26\u0e27\u0007\u009d\u0002\u0002", + "\u0e27\u0e28\u0007\u0012\u0002\u0002\u0e28\u0e2a\u0007\u040d\u0002\u0002", + "\u0e29\u0e23\u0003\u0002\u0002\u0002\u0e29\u0e26\u0003\u0002\u0002\u0002", + "\u0e2a\u00f7\u0003\u0002\u0002\u0002\u0e2b\u0e2c\u0007?\u0002\u0002", + "\u0e2c\u0e2f\u0005\u00d4k\u0002\u0e2d\u0e2e\u0007\u00ae\u0002\u0002", + "\u0e2e\u0e30\u0005\u025a\u012e\u0002\u0e2f\u0e2d\u0003\u0002\u0002\u0002", + "\u0e2f\u0e30\u0003\u0002\u0002\u0002\u0e30\u0e3f\u0003\u0002\u0002\u0002", + "\u0e31\u0e32\u0007D\u0002\u0002\u0e32\u0e33\u0007\u0012\u0002\u0002", + "\u0e33\u0e38\u0005\u00fa~\u0002\u0e34\u0e35\u0007\u0400\u0002\u0002", + "\u0e35\u0e37\u0005\u00fa~\u0002\u0e36\u0e34\u0003\u0002\u0002\u0002", + "\u0e37\u0e3a\u0003\u0002\u0002\u0002\u0e38\u0e36\u0003\u0002\u0002\u0002", + "\u0e38\u0e39\u0003\u0002\u0002\u0002\u0e39\u0e3d\u0003\u0002\u0002\u0002", + "\u0e3a\u0e38\u0003\u0002\u0002\u0002\u0e3b\u0e3c\u0007\u00b0\u0002\u0002", + "\u0e3c\u0e3e\u0007\u01ff\u0002\u0002\u0e3d\u0e3b\u0003\u0002\u0002\u0002", + "\u0e3d\u0e3e\u0003\u0002\u0002\u0002\u0e3e\u0e40\u0003\u0002\u0002\u0002", + "\u0e3f\u0e31\u0003\u0002\u0002\u0002\u0e3f\u0e40\u0003\u0002\u0002\u0002", + "\u0e40\u0e43\u0003\u0002\u0002\u0002\u0e41\u0e42\u0007E\u0002\u0002", + "\u0e42\u0e44\u0005\u025a\u012e\u0002\u0e43\u0e41\u0003\u0002\u0002\u0002", + "\u0e43\u0e44\u0003\u0002\u0002\u0002\u0e44\u00f9\u0003\u0002\u0002\u0002", + "\u0e45\u0e47\u0005\u025a\u012e\u0002\u0e46\u0e48\t,\u0002\u0002\u0e47", + "\u0e46\u0003\u0002\u0002\u0002\u0e47\u0e48\u0003\u0002\u0002\u0002\u0e48", + "\u00fb\u0003\u0002\u0002\u0002\u0e49\u0e54\u0007[\u0002\u0002\u0e4a", + "\u0e4b\u0005\u00fe\u0080\u0002\u0e4b\u0e4c\u0007\u0400\u0002\u0002\u0e4c", + "\u0e4e\u0003\u0002\u0002\u0002\u0e4d\u0e4a\u0003\u0002\u0002\u0002\u0e4d", + "\u0e4e\u0003\u0002\u0002\u0002\u0e4e\u0e4f\u0003\u0002\u0002\u0002\u0e4f", + "\u0e55\u0005\u00fe\u0080\u0002\u0e50\u0e51\u0005\u00fe\u0080\u0002\u0e51", + "\u0e52\u0007\u01c6\u0002\u0002\u0e52\u0e53\u0005\u00fe\u0080\u0002\u0e53", + "\u0e55\u0003\u0002\u0002\u0002\u0e54\u0e4d\u0003\u0002\u0002\u0002\u0e54", + "\u0e50\u0003\u0002\u0002\u0002\u0e55\u00fd\u0003\u0002\u0002\u0002\u0e56", + "\u0e59\u0005\u0212\u010a\u0002\u0e57\u0e59\u0005\u01fc\u00ff\u0002\u0e58", + "\u0e56\u0003\u0002\u0002\u0002\u0e58\u0e57\u0003\u0002\u0002\u0002\u0e59", + "\u00ff\u0003\u0002\u0002\u0002\u0e5a\u0e5b\u0007\u021c\u0002\u0002\u0e5b", + "\u0e64\u0007\u0233\u0002\u0002\u0e5c\u0e61\u0005\u0116\u008c\u0002\u0e5d", + "\u0e5e\u0007\u0400\u0002\u0002\u0e5e\u0e60\u0005\u0116\u008c\u0002\u0e5f", + "\u0e5d\u0003\u0002\u0002\u0002\u0e60\u0e63\u0003\u0002\u0002\u0002\u0e61", + "\u0e5f\u0003\u0002\u0002\u0002\u0e61\u0e62\u0003\u0002\u0002\u0002\u0e62", + "\u0e65\u0003\u0002\u0002\u0002\u0e63\u0e61\u0003\u0002\u0002\u0002\u0e64", + "\u0e5c\u0003\u0002\u0002\u0002\u0e64\u0e65\u0003\u0002\u0002\u0002\u0e65", + "\u0101\u0003\u0002\u0002\u0002\u0e66\u0e68\u0007\u011c\u0002\u0002\u0e67", + "\u0e69\u0007\u024a\u0002\u0002\u0e68\u0e67\u0003\u0002\u0002\u0002\u0e68", + "\u0e69\u0003\u0002\u0002\u0002\u0e69\u0103\u0003\u0002\u0002\u0002\u0e6a", + "\u0e6c\u0007\u0134\u0002\u0002\u0e6b\u0e6d\u0007\u024a\u0002\u0002\u0e6c", + "\u0e6b\u0003\u0002\u0002\u0002\u0e6c\u0e6d\u0003\u0002\u0002\u0002\u0e6d", + "\u0e73\u0003\u0002\u0002\u0002\u0e6e\u0e70\u0007\f\u0002\u0002\u0e6f", + "\u0e71\u0007\u01c2\u0002\u0002\u0e70\u0e6f\u0003\u0002\u0002\u0002\u0e70", + "\u0e71\u0003\u0002\u0002\u0002\u0e71\u0e72\u0003\u0002\u0002\u0002\u0e72", + "\u0e74\u0007\u0125\u0002\u0002\u0e73\u0e6e\u0003\u0002\u0002\u0002\u0e73", + "\u0e74\u0003\u0002\u0002\u0002\u0e74\u0e79\u0003\u0002\u0002\u0002\u0e75", + "\u0e77\u0007\u01c2\u0002\u0002\u0e76\u0e75\u0003\u0002\u0002\u0002\u0e76", + "\u0e77\u0003\u0002\u0002\u0002\u0e77\u0e78\u0003\u0002\u0002\u0002\u0e78", + "\u0e7a\u0007~\u0002\u0002\u0e79\u0e76\u0003\u0002\u0002\u0002\u0e79", + "\u0e7a\u0003\u0002\u0002\u0002\u0e7a\u0105\u0003\u0002\u0002\u0002\u0e7b", + "\u0e7d\u0007\u01fe\u0002\u0002\u0e7c\u0e7e\u0007\u024a\u0002\u0002\u0e7d", + "\u0e7c\u0003\u0002\u0002\u0002\u0e7d\u0e7e\u0003\u0002\u0002\u0002\u0e7e", + "\u0e84\u0003\u0002\u0002\u0002\u0e7f\u0e81\u0007\f\u0002\u0002\u0e80", + "\u0e82\u0007\u01c2\u0002\u0002\u0e81\u0e80\u0003\u0002\u0002\u0002\u0e81", + "\u0e82\u0003\u0002\u0002\u0002\u0e82\u0e83\u0003\u0002\u0002\u0002\u0e83", + "\u0e85\u0007\u0125\u0002\u0002\u0e84\u0e7f\u0003\u0002\u0002\u0002\u0e84", + "\u0e85\u0003\u0002\u0002\u0002\u0e85\u0e8a\u0003\u0002\u0002\u0002\u0e86", + "\u0e88\u0007\u01c2\u0002\u0002\u0e87\u0e86\u0003\u0002\u0002\u0002\u0e87", + "\u0e88\u0003\u0002\u0002\u0002\u0e88\u0e89\u0003\u0002\u0002\u0002\u0e89", + "\u0e8b\u0007~\u0002\u0002\u0e8a\u0e87\u0003\u0002\u0002\u0002\u0e8a", + "\u0e8b\u0003\u0002\u0002\u0002\u0e8b\u0107\u0003\u0002\u0002\u0002\u0e8c", + "\u0e8d\u0007\u0204\u0002\u0002\u0e8d\u0e8e\u0005\u020c\u0107\u0002\u0e8e", + "\u0109\u0003\u0002\u0002\u0002\u0e8f\u0e91\u0007\u01fe\u0002\u0002\u0e90", + "\u0e92\u0007\u024a\u0002\u0002\u0e91\u0e90\u0003\u0002\u0002\u0002\u0e91", + "\u0e92\u0003\u0002\u0002\u0002\u0e92\u0e93\u0003\u0002\u0002\u0002\u0e93", + "\u0e95\u0007\u009f\u0002\u0002\u0e94\u0e96\u0007\u0204\u0002\u0002\u0e95", + "\u0e94\u0003\u0002\u0002\u0002\u0e95\u0e96\u0003\u0002\u0002\u0002\u0e96", + "\u0e97\u0003\u0002\u0002\u0002\u0e97\u0e98\u0005\u020c\u0107\u0002\u0e98", + "\u010b\u0003\u0002\u0002\u0002\u0e99\u0e9a\u0007~\u0002\u0002\u0e9a", + "\u0e9b\u0007\u0204\u0002\u0002\u0e9b\u0e9c\u0005\u020c\u0107\u0002\u0e9c", + "\u010d\u0003\u0002\u0002\u0002\u0e9d\u0e9e\u0007_\u0002\u0002\u0e9e", + "\u0e9f\u0007\u025c\u0002\u0002\u0e9f\u0ea4\u0005\u0118\u008d\u0002\u0ea0", + "\u0ea1\u0007\u0400\u0002\u0002\u0ea1\u0ea3\u0005\u0118\u008d\u0002\u0ea2", + "\u0ea0\u0003\u0002\u0002\u0002\u0ea3\u0ea6\u0003\u0002\u0002\u0002\u0ea4", + "\u0ea2\u0003\u0002\u0002\u0002\u0ea4\u0ea5\u0003\u0002\u0002\u0002\u0ea5", + "\u010f\u0003\u0002\u0002\u0002\u0ea6\u0ea4\u0003\u0002\u0002\u0002\u0ea7", + "\u0ea8\u0007\u00a6\u0002\u0002\u0ea8\u0ea9\u0007\u025c\u0002\u0002\u0ea9", + "\u0111\u0003\u0002\u0002\u0002\u0eaa\u0eab\u0007\u008c\u0002\u0002\u0eab", + "\u0eac\u0007\u0118\u0002\u0002\u0eac\u0ead\u0007\u03f5\u0002\u0002\u0ead", + "\u0eae\t\u0018\u0002\u0002\u0eae\u0113\u0003\u0002\u0002\u0002\u0eaf", + "\u0eb1\u0007\u008c\u0002\u0002\u0eb0\u0eb2\t2\u0002\u0002\u0eb1\u0eb0", + "\u0003\u0002\u0002\u0002\u0eb1\u0eb2\u0003\u0002\u0002\u0002\u0eb2\u0eb3", + "\u0003\u0002\u0002\u0002\u0eb3\u0eb4\u0007\u0233\u0002\u0002\u0eb4\u0eb9", + "\u0005\u011c\u008f\u0002\u0eb5\u0eb6\u0007\u0400\u0002\u0002\u0eb6\u0eb8", + "\u0005\u011c\u008f\u0002\u0eb7\u0eb5\u0003\u0002\u0002\u0002\u0eb8\u0ebb", + "\u0003\u0002\u0002\u0002\u0eb9\u0eb7\u0003\u0002\u0002\u0002\u0eb9\u0eba", + "\u0003\u0002\u0002\u0002\u0eba\u0115\u0003\u0002\u0002\u0002\u0ebb\u0eb9", + "\u0003\u0002\u0002\u0002\u0ebc\u0ebd\u0007\u00b0\u0002\u0002\u0ebd\u0ebe", + "\u0007\u013b\u0002\u0002\u0ebe\u0ec4\u0007\u020f\u0002\u0002\u0ebf\u0ec0", + "\u0007z\u0002\u0002\u0ec0\u0ec4\u0007\u00b1\u0002\u0002\u0ec1\u0ec2", + "\u0007z\u0002\u0002\u0ec2\u0ec4\u0007\u01cb\u0002\u0002\u0ec3\u0ebc", + "\u0003\u0002\u0002\u0002\u0ec3\u0ebf\u0003\u0002\u0002\u0002\u0ec3\u0ec1", + "\u0003\u0002\u0002\u0002\u0ec4\u0117\u0003\u0002\u0002\u0002\u0ec5\u0eca", + "\u0005\u01f4\u00fb\u0002\u0ec6\u0ec8\u0007\r\u0002\u0002\u0ec7\u0ec6", + "\u0003\u0002\u0002\u0002\u0ec7\u0ec8\u0003\u0002\u0002\u0002\u0ec8\u0ec9", + "\u0003\u0002\u0002\u0002\u0ec9\u0ecb\u0005\u020c\u0107\u0002\u0eca\u0ec7", + "\u0003\u0002\u0002\u0002\u0eca\u0ecb\u0003\u0002\u0002\u0002\u0ecb\u0ecc", + "\u0003\u0002\u0002\u0002\u0ecc\u0ecd\u0005\u011a\u008e\u0002\u0ecd\u0119", + "\u0003\u0002\u0002\u0002\u0ece\u0ed0\u0007z\u0002\u0002\u0ecf\u0ed1", + "\u0007\u0194\u0002\u0002\u0ed0\u0ecf\u0003\u0002\u0002\u0002\u0ed0\u0ed1", + "\u0003\u0002\u0002\u0002\u0ed1\u0ed7\u0003\u0002\u0002\u0002\u0ed2\u0ed4", + "\u0007a\u0002\u0002\u0ed3\u0ed2\u0003\u0002\u0002\u0002\u0ed3\u0ed4", + "\u0003\u0002\u0002\u0002\u0ed4\u0ed5\u0003\u0002\u0002\u0002\u0ed5\u0ed7", + "\u0007\u00b1\u0002\u0002\u0ed6\u0ece\u0003\u0002\u0002\u0002\u0ed6\u0ed3", + "\u0003\u0002\u0002\u0002\u0ed7\u011b\u0003\u0002\u0002\u0002\u0ed8\u0ed9", + "\u0007\u018a\u0002\u0002\u0ed9\u0eda\u0007\u0192\u0002\u0002\u0eda\u0ee0", + "\u0005\u011e\u0090\u0002\u0edb\u0edc\u0007z\u0002\u0002\u0edc\u0ee0", + "\u0007\u00b1\u0002\u0002\u0edd\u0ede\u0007z\u0002\u0002\u0ede\u0ee0", + "\u0007\u01cb\u0002\u0002\u0edf\u0ed8\u0003\u0002\u0002\u0002\u0edf\u0edb", + "\u0003\u0002\u0002\u0002\u0edf\u0edd\u0003\u0002\u0002\u0002\u0ee0\u011d", + "\u0003\u0002\u0002\u0002\u0ee1\u0ee2\u0007\u02b3\u0002\u0002\u0ee2\u0ee9", + "\u0007z\u0002\u0002\u0ee3\u0ee4\u0007z\u0002\u0002\u0ee4\u0ee9\u0007", + "\u02b4\u0002\u0002\u0ee5\u0ee6\u0007z\u0002\u0002\u0ee6\u0ee9\u0007", + "\u02b5\u0002\u0002\u0ee7\u0ee9\u0007\u02b6\u0002\u0002\u0ee8\u0ee1\u0003", + "\u0002\u0002\u0002\u0ee8\u0ee3\u0003\u0002\u0002\u0002\u0ee8\u0ee5\u0003", + "\u0002\u0002\u0002\u0ee8\u0ee7\u0003\u0002\u0002\u0002\u0ee9\u011f\u0003", + "\u0002\u0002\u0002\u0eea\u0eeb\u0007\u0017\u0002\u0002\u0eeb\u0eec\u0007", + "\u0197\u0002\u0002\u0eec\u0eed\u0007\u009f\u0002\u0002\u0eed\u0ef2\u0005", + "\u0132\u009a\u0002\u0eee\u0eef\u0007\u0400\u0002\u0002\u0eef\u0ef1\u0005", + "\u0132\u009a\u0002\u0ef0\u0eee\u0003\u0002\u0002\u0002\u0ef1\u0ef4\u0003", + "\u0002\u0002\u0002\u0ef2\u0ef0\u0003\u0002\u0002\u0002\u0ef2\u0ef3\u0003", + "\u0002\u0002\u0002\u0ef3\u0ef6\u0003\u0002\u0002\u0002\u0ef4\u0ef2\u0003", + "\u0002\u0002\u0002\u0ef5\u0ef7\u0005\u013a\u009e\u0002\u0ef6\u0ef5\u0003", + "\u0002\u0002\u0002\u0ef6\u0ef7\u0003\u0002\u0002\u0002\u0ef7\u0121\u0003", + "\u0002\u0002\u0002\u0ef8\u0ef9\u0007\u0017\u0002\u0002\u0ef9\u0efa\u0007", + "\u01f8\u0002\u0002\u0efa\u0efb\u0007\u016b\u0002\u0002\u0efb\u0f00\u0005", + "\u013c\u009f\u0002\u0efc\u0efd\u0007\u0400\u0002\u0002\u0efd\u0eff\u0005", + "\u013c\u009f\u0002\u0efe\u0efc\u0003\u0002\u0002\u0002\u0eff\u0f02\u0003", + "\u0002\u0002\u0002\u0f00\u0efe\u0003\u0002\u0002\u0002\u0f00\u0f01\u0003", + "\u0002\u0002\u0002\u0f01\u0123\u0003\u0002\u0002\u0002\u0f02\u0f00\u0003", + "\u0002\u0002\u0002\u0f03\u0f04\u0007x\u0002\u0002\u0f04\u0f05\t3\u0002", + "\u0002\u0f05\u0f0a\u0007\u0196\u0002\u0002\u0f06\u0f07\u0007\u009f\u0002", + "\u0002\u0f07\u0f0b\u0007\u040d\u0002\u0002\u0f08\u0f09\u0007\u000f\u0002", + "\u0002\u0f09\u0f0b\u0007\u040d\u0002\u0002\u0f0a\u0f06\u0003\u0002\u0002", + "\u0002\u0f0a\u0f08\u0003\u0002\u0002\u0002\u0f0b\u0125\u0003\u0002\u0002", + "\u0002\u0f0c\u0f0d\u0007\u01f9\u0002\u0002\u0f0d\u0f0e\u0007\u0197\u0002", + "\u0002\u0f0e\u0127\u0003\u0002\u0002\u0002\u0f0f\u0f10\u0007\u01f9\u0002", + "\u0002\u0f10\u0f12\u0007\u020d\u0002\u0002\u0f11\u0f13\u0007\b\u0002", + "\u0002\u0f12\u0f11\u0003\u0002\u0002\u0002\u0f12\u0f13\u0003\u0002\u0002", + "\u0002\u0f13\u0f15\u0003\u0002\u0002\u0002\u0f14\u0f16\u0005\u013a\u009e", + "\u0002\u0f15\u0f14\u0003\u0002\u0002\u0002\u0f15\u0f16\u0003\u0002\u0002", + "\u0002\u0f16\u0129\u0003\u0002\u0002\u0002\u0f17\u0f18\u0007\u021c\u0002", + "\u0002\u0f18\u0f21\u0007\u020d\u0002\u0002\u0f19\u0f1e\u0005\u0140\u00a1", + "\u0002\u0f1a\u0f1b\u0007\u0400\u0002\u0002\u0f1b\u0f1d\u0005\u0140\u00a1", + "\u0002\u0f1c\u0f1a\u0003\u0002\u0002\u0002\u0f1d\u0f20\u0003\u0002\u0002", + "\u0002\u0f1e\u0f1c\u0003\u0002\u0002\u0002\u0f1e\u0f1f\u0003\u0002\u0002", + "\u0002\u0f1f\u0f22\u0003\u0002\u0002\u0002\u0f20\u0f1e\u0003\u0002\u0002", + "\u0002\u0f21\u0f19\u0003\u0002\u0002\u0002\u0f21\u0f22\u0003\u0002\u0002", + "\u0002\u0f22\u0f25\u0003\u0002\u0002\u0002\u0f23\u0f24\u0007\u023c\u0002", + "\u0002\u0f24\u0f26\u0005\u0142\u00a2\u0002\u0f25\u0f23\u0003\u0002\u0002", + "\u0002\u0f25\u0f26\u0003\u0002\u0002\u0002\u0f26\u0f2a\u0003\u0002\u0002", + "\u0002\u0f27\u0f29\u0005\u0144\u00a3\u0002\u0f28\u0f27\u0003\u0002\u0002", + "\u0002\u0f29\u0f2c\u0003\u0002\u0002\u0002\u0f2a\u0f28\u0003\u0002\u0002", + "\u0002\u0f2a\u0f2b\u0003\u0002\u0002\u0002\u0f2b\u0f2e\u0003\u0002\u0002", + "\u0002\u0f2c\u0f2a\u0003\u0002\u0002\u0002\u0f2d\u0f2f\u0005\u013a\u009e", + "\u0002\u0f2e\u0f2d\u0003\u0002\u0002\u0002\u0f2e\u0f2f\u0003\u0002\u0002", + "\u0002\u0f2f\u012b\u0003\u0002\u0002\u0002\u0f30\u0f31\u0007\u0222\u0002", + "\u0002\u0f31\u0f3a\u0007\u020d\u0002\u0002\u0f32\u0f37\u0005\u0140\u00a1", + "\u0002\u0f33\u0f34\u0007\u0400\u0002\u0002\u0f34\u0f36\u0005\u0140\u00a1", + "\u0002\u0f35\u0f33\u0003\u0002\u0002\u0002\u0f36\u0f39\u0003\u0002\u0002", + "\u0002\u0f37\u0f35\u0003\u0002\u0002\u0002\u0f37\u0f38\u0003\u0002\u0002", + "\u0002\u0f38\u0f3b\u0003\u0002\u0002\u0002\u0f39\u0f37\u0003\u0002\u0002", + "\u0002\u0f3a\u0f32\u0003\u0002\u0002\u0002\u0f3a\u0f3b\u0003\u0002\u0002", + "\u0002\u0f3b\u012d\u0003\u0002\u0002\u0002\u0f3c\u0f3d\u0007\u021c\u0002", + "\u0002\u0f3d\u0f3e\u0007\u0176\u0002\u0002\u0f3e\u012f\u0003\u0002\u0002", + "\u0002\u0f3f\u0f40\u0007\u0222\u0002\u0002\u0f40\u0f41\u0007\u0176\u0002", + "\u0002\u0f41\u0131\u0003\u0002\u0002\u0002\u0f42\u0f43\u0005\u0134\u009b", + "\u0002\u0f43\u0f44\u0007\u03f5\u0002\u0002\u0f44\u0f45\u0007\u040d\u0002", + "\u0002\u0f45\u0f60\u0003\u0002\u0002\u0002\u0f46\u0f47\u0005\u0136\u009c", + "\u0002\u0f47\u0f48\u0007\u03f5\u0002\u0002\u0f48\u0f49\u0005\u0212\u010a", + "\u0002\u0f49\u0f60\u0003\u0002\u0002\u0002\u0f4a\u0f4b\u0005\u0138\u009d", + "\u0002\u0f4b\u0f4c\u0007\u03f5\u0002\u0002\u0f4c\u0f4d\t\u0018\u0002", + "\u0002\u0f4d\u0f60\u0003\u0002\u0002\u0002\u0f4e\u0f4f\u0007\u019b\u0002", + "\u0002\u0f4f\u0f50\u0007\u03f5\u0002\u0002\u0f50\u0f60\u0007\u0410\u0002", + "\u0002\u0f51\u0f52\u0007\u017d\u0002\u0002\u0f52\u0f53\u0007\u03f5\u0002", + "\u0002\u0f53\u0f5c\u0007\u03fe\u0002\u0002\u0f54\u0f59\u0005\u020c\u0107", + "\u0002\u0f55\u0f56\u0007\u0400\u0002\u0002\u0f56\u0f58\u0005\u020c\u0107", + "\u0002\u0f57\u0f55\u0003\u0002\u0002\u0002\u0f58\u0f5b\u0003\u0002\u0002", + "\u0002\u0f59\u0f57\u0003\u0002\u0002\u0002\u0f59\u0f5a\u0003\u0002\u0002", + "\u0002\u0f5a\u0f5d\u0003\u0002\u0002\u0002\u0f5b\u0f59\u0003\u0002\u0002", + "\u0002\u0f5c\u0f54\u0003\u0002\u0002\u0002\u0f5c\u0f5d\u0003\u0002\u0002", + "\u0002\u0f5d\u0f5e\u0003\u0002\u0002\u0002\u0f5e\u0f60\u0007\u03ff\u0002", + "\u0002\u0f5f\u0f42\u0003\u0002\u0002\u0002\u0f5f\u0f46\u0003\u0002\u0002", + "\u0002\u0f5f\u0f4a\u0003\u0002\u0002\u0002\u0f5f\u0f4e\u0003\u0002\u0002", + "\u0002\u0f5f\u0f51\u0003\u0002\u0002\u0002\u0f60\u0133\u0003\u0002\u0002", + "\u0002\u0f61\u0f62\t4\u0002\u0002\u0f62\u0135\u0003\u0002\u0002\u0002", + "\u0f63\u0f64\t5\u0002\u0002\u0f64\u0137\u0003\u0002\u0002\u0002\u0f65", + "\u0f66\t6\u0002\u0002\u0f66\u0139\u0003\u0002\u0002\u0002\u0f67\u0f68", + "\u0007<\u0002\u0002\u0f68\u0f69\u0007\u0127\u0002\u0002\u0f69\u0f6a", + "\u0007\u040d\u0002\u0002\u0f6a\u013b\u0003\u0002\u0002\u0002\u0f6b\u0f6c", + "\u0007\u01f1\u0002\u0002\u0f6c\u0f6d\u0007\u03f5\u0002\u0002\u0f6d\u0f6e", + "\u0007\u03fe\u0002\u0002\u0f6e\u0f6f\u0005\u022c\u0117\u0002\u0f6f\u0f70", + "\u0007\u03ff\u0002\u0002\u0f70\u0f9d\u0003\u0002\u0002\u0002\u0f71\u0f72", + "\u0007\u01f3\u0002\u0002\u0f72\u0f73\u0007\u03f5\u0002\u0002\u0f73\u0f74", + "\u0007\u03fe\u0002\u0002\u0f74\u0f75\u0005\u022c\u0117\u0002\u0f75\u0f76", + "\u0007\u03ff\u0002\u0002\u0f76\u0f9d\u0003\u0002\u0002\u0002\u0f77\u0f78", + "\u0007\u01f2\u0002\u0002\u0f78\u0f79\u0007\u03f5\u0002\u0002\u0f79\u0f7a", + "\u0007\u03fe\u0002\u0002\u0f7a\u0f7b\u0005\u022e\u0118\u0002\u0f7b\u0f7c", + "\u0007\u03ff\u0002\u0002\u0f7c\u0f9d\u0003\u0002\u0002\u0002\u0f7d\u0f7e", + "\u0007\u01f4\u0002\u0002\u0f7e\u0f7f\u0007\u03f5\u0002\u0002\u0f7f\u0f80", + "\u0007\u03fe\u0002\u0002\u0f80\u0f81\u0005\u022e\u0118\u0002\u0f81\u0f82", + "\u0007\u03ff\u0002\u0002\u0f82\u0f9d\u0003\u0002\u0002\u0002\u0f83\u0f84", + "\u0007\u01f6\u0002\u0002\u0f84\u0f85\u0007\u03f5\u0002\u0002\u0f85\u0f86", + "\u0007\u03fe\u0002\u0002\u0f86\u0f87\u0005\u0238\u011d\u0002\u0f87\u0f88", + "\u0007\u03ff\u0002\u0002\u0f88\u0f9d\u0003\u0002\u0002\u0002\u0f89\u0f8a", + "\u0007\u01f7\u0002\u0002\u0f8a\u0f8b\u0007\u03f5\u0002\u0002\u0f8b\u0f8c", + "\u0007\u03fe\u0002\u0002\u0f8c\u0f8d\u0005\u0238\u011d\u0002\u0f8d\u0f8e", + "\u0007\u03ff\u0002\u0002\u0f8e\u0f9d\u0003\u0002\u0002\u0002\u0f8f\u0f90", + "\u0007\u01f5\u0002\u0002\u0f90\u0f91\u0007\u03f5\u0002\u0002\u0f91\u0f92", + "\u0007\u03fe\u0002\u0002\u0f92\u0f97\u0005\u013e\u00a0\u0002\u0f93\u0f94", + "\u0007\u0400\u0002\u0002\u0f94\u0f96\u0005\u013e\u00a0\u0002\u0f95\u0f93", + "\u0003\u0002\u0002\u0002\u0f96\u0f99\u0003\u0002\u0002\u0002\u0f97\u0f95", + "\u0003\u0002\u0002\u0002\u0f97\u0f98\u0003\u0002\u0002\u0002\u0f98\u0f9a", + "\u0003\u0002\u0002\u0002\u0f99\u0f97\u0003\u0002\u0002\u0002\u0f9a\u0f9b", + "\u0007\u03ff\u0002\u0002\u0f9b\u0f9d\u0003\u0002\u0002\u0002\u0f9c\u0f6b", + "\u0003\u0002\u0002\u0002\u0f9c\u0f71\u0003\u0002\u0002\u0002\u0f9c\u0f77", + "\u0003\u0002\u0002\u0002\u0f9c\u0f7d\u0003\u0002\u0002\u0002\u0f9c\u0f83", + "\u0003\u0002\u0002\u0002\u0f9c\u0f89\u0003\u0002\u0002\u0002\u0f9c\u0f8f", + "\u0003\u0002\u0002\u0002\u0f9d\u013d\u0003\u0002\u0002\u0002\u0f9e\u0f9f", + "\u0007\u03fe\u0002\u0002\u0f9f\u0fa0\u0005\u01f4\u00fb\u0002\u0fa0\u0fa1", + "\u0007\u0400\u0002\u0002\u0fa1\u0fa2\u0005\u01f4\u00fb\u0002\u0fa2\u0fa3", + "\u0007\u03ff\u0002\u0002\u0fa3\u013f\u0003\u0002\u0002\u0002\u0fa4\u0fa5", + "\t7\u0002\u0002\u0fa5\u0141\u0003\u0002\u0002\u0002\u0fa6\u0fa7\t8\u0002", + "\u0002\u0fa7\u0fa8\u0007\u03f5\u0002\u0002\u0fa8\u0fb9\u0005\u0146\u00a4", + "\u0002\u0fa9\u0faa\u0007\u019d\u0002\u0002\u0faa\u0fab\u0007\u03f5\u0002", + "\u0002\u0fab\u0fac\u0007\u040d\u0002\u0002\u0fac\u0fad\u0007\u0400\u0002", + "\u0002\u0fad\u0fae\u0007\u019e\u0002\u0002\u0fae\u0faf\u0007\u03f5\u0002", + "\u0002\u0faf\u0fb9\u0005\u0212\u010a\u0002\u0fb0\u0fb1\u0007\u01eb\u0002", + "\u0002\u0fb1\u0fb2\u0007\u03f5\u0002\u0002\u0fb2\u0fb3\u0007\u040d\u0002", + "\u0002\u0fb3\u0fb4\u0007\u0400\u0002\u0002\u0fb4\u0fb5\u0007\u01ec\u0002", + "\u0002\u0fb5\u0fb6\u0007\u03f5\u0002\u0002\u0fb6\u0fb9\u0005\u0212\u010a", + "\u0002\u0fb7\u0fb9\u0007\u0216\u0002\u0002\u0fb8\u0fa6\u0003\u0002\u0002", + "\u0002\u0fb8\u0fa9\u0003\u0002\u0002\u0002\u0fb8\u0fb0\u0003\u0002\u0002", + "\u0002\u0fb8\u0fb7\u0003\u0002\u0002\u0002\u0fb9\u0143\u0003\u0002\u0002", + "\u0002\u0fba\u0fbb\u0007\u023e\u0002\u0002\u0fbb\u0fbc\u0007\u03f5\u0002", + "\u0002\u0fbc\u0fc7\u0007\u040d\u0002\u0002\u0fbd\u0fbe\u0007\u01d6\u0002", + "\u0002\u0fbe\u0fbf\u0007\u03f5\u0002\u0002\u0fbf\u0fc7\u0007\u040d\u0002", + "\u0002\u0fc0\u0fc1\u0007\u0148\u0002\u0002\u0fc1\u0fc2\u0007\u03f5\u0002", + "\u0002\u0fc2\u0fc7\u0007\u040d\u0002\u0002\u0fc3\u0fc4\u0007\u01d9\u0002", + "\u0002\u0fc4\u0fc5\u0007\u03f5\u0002\u0002\u0fc5\u0fc7\u0007\u040d\u0002", + "\u0002\u0fc6\u0fba\u0003\u0002\u0002\u0002\u0fc6\u0fbd\u0003\u0002\u0002", + "\u0002\u0fc6\u0fc0\u0003\u0002\u0002\u0002\u0fc6\u0fc3\u0003\u0002\u0002", + "\u0002\u0fc7\u0145\u0003\u0002\u0002\u0002\u0fc8\u0fcd\u0005\u0204\u0103", + "\u0002\u0fc9\u0fca\u0007\u0400\u0002\u0002\u0fca\u0fcc\u0005\u0204\u0103", + "\u0002\u0fcb\u0fc9\u0003\u0002\u0002\u0002\u0fcc\u0fcf\u0003\u0002\u0002", + "\u0002\u0fcd\u0fcb\u0003\u0002\u0002\u0002\u0fcd\u0fce\u0003\u0002\u0002", + "\u0002\u0fce\u0fd2\u0003\u0002\u0002\u0002\u0fcf\u0fcd\u0003\u0002\u0002", + "\u0002\u0fd0\u0fd2\u0007\u040d\u0002\u0002\u0fd1\u0fc8\u0003\u0002\u0002", + "\u0002\u0fd1\u0fd0\u0003\u0002\u0002\u0002\u0fd2\u0147\u0003\u0002\u0002", + "\u0002\u0fd3\u0fd4\u0007\u024d\u0002\u0002\u0fd4\u0fd5\t9\u0002\u0002", + "\u0fd5\u0fd7\u0005\u0206\u0104\u0002\u0fd6\u0fd8\t:\u0002\u0002\u0fd7", + "\u0fd6\u0003\u0002\u0002\u0002\u0fd7\u0fd8\u0003\u0002\u0002\u0002\u0fd8", + "\u0149\u0003\u0002\u0002\u0002\u0fd9\u0fda\u0007\u024d\u0002\u0002\u0fda", + "\u0fdb\u0007\u0156\u0002\u0002\u0fdb\u0fe1\u0005\u0206\u0104\u0002\u0fdc", + "\u0fdf\u0007\u022a\u0002\u0002\u0fdd\u0fde\u0007<\u0002\u0002\u0fde", + "\u0fe0\u0007\u01b6\u0002\u0002\u0fdf\u0fdd\u0003\u0002\u0002\u0002\u0fdf", + "\u0fe0\u0003\u0002\u0002\u0002\u0fe0\u0fe2\u0003\u0002\u0002\u0002\u0fe1", + "\u0fdc\u0003\u0002\u0002\u0002\u0fe1\u0fe2\u0003\u0002\u0002\u0002\u0fe2", + "\u014b\u0003\u0002\u0002\u0002\u0fe3\u0fe4\u0007\u024d\u0002\u0002\u0fe4", + "\u0fe5\u0007\u01dd\u0002\u0002\u0fe5\u0fe6\u0005\u0206\u0104\u0002\u0fe6", + "\u014d\u0003\u0002\u0002\u0002\u0fe7\u0fe8\u0007\u024d\u0002\u0002\u0fe8", + "\u0fe9\u0007\u0134\u0002\u0002\u0fe9\u0fec\u0005\u0206\u0104\u0002\u0fea", + "\u0feb\u0007\u01c9\u0002\u0002\u0feb\u0fed\u0007\u01d7\u0002\u0002\u0fec", + "\u0fea\u0003\u0002\u0002\u0002\u0fec\u0fed\u0003\u0002\u0002\u0002\u0fed", + "\u014f\u0003\u0002\u0002\u0002\u0fee\u0fef\u0007\u024d\u0002\u0002\u0fef", + "\u0ff0\u0007\u01fe\u0002\u0002\u0ff0\u0ff1\u0005\u0206\u0104\u0002\u0ff1", + "\u0151\u0003\u0002\u0002\u0002\u0ff2\u0ff3\u0007\u024d\u0002\u0002\u0ff3", + "\u0ff6\u0007\u01e7\u0002\u0002\u0ff4\u0ff5\u0007\u001f\u0002\u0002\u0ff5", + "\u0ff7\u0005\u0206\u0104\u0002\u0ff6\u0ff4\u0003\u0002\u0002\u0002\u0ff6", + "\u0ff7\u0003\u0002\u0002\u0002\u0ff7\u0153\u0003\u0002\u0002\u0002\u0ff8", + "\u0ff9\u0007\u01dd\u0002\u0002\u0ff9\u0ffa\u0005\u020c\u0107\u0002\u0ffa", + "\u0ffd\u0007?\u0002\u0002\u0ffb\u0ffe\u0007\u040d\u0002\u0002\u0ffc", + "\u0ffe\u0007\u0418\u0002\u0002\u0ffd\u0ffb\u0003\u0002\u0002\u0002\u0ffd", + "\u0ffc\u0003\u0002\u0002\u0002\u0ffe\u0155\u0003\u0002\u0002\u0002\u0fff", + "\u1000\u0007\u025e\u0002\u0002\u1000\u1003\u0005\u020c\u0107\u0002\u1001", + "\u1002\u0007\u00ab\u0002\u0002\u1002\u1004\u0005\u023a\u011e\u0002\u1003", + "\u1001\u0003\u0002\u0002\u0002\u1003\u1004\u0003\u0002\u0002\u0002\u1004", + "\u0157\u0003\u0002\u0002\u0002\u1005\u1006\t;\u0002\u0002\u1006\u1007", + "\u0007\u01dd\u0002\u0002\u1007\u1008\u0005\u020c\u0107\u0002\u1008\u0159", + "\u0003\u0002\u0002\u0002\u1009\u100c\u0005\u015c\u00af\u0002\u100a\u100c", + "\u0005\u0006\u0004\u0002\u100b\u1009\u0003\u0002\u0002\u0002\u100b\u100a", + "\u0003\u0002\u0002\u0002\u100c\u015b\u0003\u0002\u0002\u0002\u100d\u100e", + "\u0005\u020c\u0107\u0002\u100e\u100f\u0007\u0409\u0002\u0002\u100f\u1011", + "\u0003\u0002\u0002\u0002\u1010\u100d\u0003\u0002\u0002\u0002\u1010\u1011", + "\u0003\u0002\u0002\u0002\u1011\u1012\u0003\u0002\u0002\u0002\u1012\u1039", + "\u0007\u011c\u0002\u0002\u1013\u1014\u0005\u0170\u00b9\u0002\u1014\u1015", + "\u0007\u0401\u0002\u0002\u1015\u1017\u0003\u0002\u0002\u0002\u1016\u1013", + "\u0003\u0002\u0002\u0002\u1017\u101a\u0003\u0002\u0002\u0002\u1018\u1016", + "\u0003\u0002\u0002\u0002\u1018\u1019\u0003\u0002\u0002\u0002\u1019\u1020", + "\u0003\u0002\u0002\u0002\u101a\u1018\u0003\u0002\u0002\u0002\u101b\u101c", + "\u0005\u0172\u00ba\u0002\u101c\u101d\u0007\u0401\u0002\u0002\u101d\u101f", + "\u0003\u0002\u0002\u0002\u101e\u101b\u0003\u0002\u0002\u0002\u101f\u1022", + "\u0003\u0002\u0002\u0002\u1020\u101e\u0003\u0002\u0002\u0002\u1020\u1021", + "\u0003\u0002\u0002\u0002\u1021\u1028\u0003\u0002\u0002\u0002\u1022\u1020", + "\u0003\u0002\u0002\u0002\u1023\u1024\u0005\u0174\u00bb\u0002\u1024\u1025", + "\u0007\u0401\u0002\u0002\u1025\u1027\u0003\u0002\u0002\u0002\u1026\u1023", + "\u0003\u0002\u0002\u0002\u1027\u102a\u0003\u0002\u0002\u0002\u1028\u1026", + "\u0003\u0002\u0002\u0002\u1028\u1029\u0003\u0002\u0002\u0002\u1029\u1030", + "\u0003\u0002\u0002\u0002\u102a\u1028\u0003\u0002\u0002\u0002\u102b\u102c", + "\u0005\u0176\u00bc\u0002\u102c\u102d\u0007\u0401\u0002\u0002\u102d\u102f", + "\u0003\u0002\u0002\u0002\u102e\u102b\u0003\u0002\u0002\u0002\u102f\u1032", + "\u0003\u0002\u0002\u0002\u1030\u102e\u0003\u0002\u0002\u0002\u1030\u1031", + "\u0003\u0002\u0002\u0002\u1031\u1036\u0003\u0002\u0002\u0002\u1032\u1030", + "\u0003\u0002\u0002\u0002\u1033\u1035\u0005\u017a\u00be\u0002\u1034\u1033", + "\u0003\u0002\u0002\u0002\u1035\u1038\u0003\u0002\u0002\u0002\u1036\u1034", + "\u0003\u0002\u0002\u0002\u1036\u1037\u0003\u0002\u0002\u0002\u1037\u103a", + "\u0003\u0002\u0002\u0002\u1038\u1036\u0003\u0002\u0002\u0002\u1039\u1018", + "\u0003\u0002\u0002\u0002\u1039\u103a\u0003\u0002\u0002\u0002\u103a\u103b", + "\u0003\u0002\u0002\u0002\u103b\u103d\u0007\u0156\u0002\u0002\u103c\u103e", + "\u0005\u020c\u0107\u0002\u103d\u103c\u0003\u0002\u0002\u0002\u103d\u103e", + "\u0003\u0002\u0002\u0002\u103e\u015d\u0003\u0002\u0002\u0002\u103f\u1042", + "\u0007\u0015\u0002\u0002\u1040\u1043\u0005\u020c\u0107\u0002\u1041\u1043", + "\u0005\u025a\u012e\u0002\u1042\u1040\u0003\u0002\u0002\u0002\u1042\u1041", + "\u0003\u0002\u0002\u0002\u1042\u1043\u0003\u0002\u0002\u0002\u1043\u1045", + "\u0003\u0002\u0002\u0002\u1044\u1046\u0005\u017c\u00bf\u0002\u1045\u1044", + "\u0003\u0002\u0002\u0002\u1046\u1047\u0003\u0002\u0002\u0002\u1047\u1045", + "\u0003\u0002\u0002\u0002\u1047\u1048\u0003\u0002\u0002\u0002\u1048\u104f", + "\u0003\u0002\u0002\u0002\u1049\u104b\u00073\u0002\u0002\u104a\u104c", + "\u0005\u017a\u00be\u0002\u104b\u104a\u0003\u0002\u0002\u0002\u104c\u104d", + "\u0003\u0002\u0002\u0002\u104d\u104b\u0003\u0002\u0002\u0002\u104d\u104e", + "\u0003\u0002\u0002\u0002\u104e\u1050\u0003\u0002\u0002\u0002\u104f\u1049", + "\u0003\u0002\u0002\u0002\u104f\u1050\u0003\u0002\u0002\u0002\u1050\u1051", + "\u0003\u0002\u0002\u0002\u1051\u1052\u0007\u0156\u0002\u0002\u1052\u1053", + "\u0007\u0015\u0002\u0002\u1053\u015f\u0003\u0002\u0002\u0002\u1054\u1055", + "\u0007G\u0002\u0002\u1055\u1056\u0005\u025a\u012e\u0002\u1056\u1058", + "\u0007\u009e\u0002\u0002\u1057\u1059\u0005\u017a\u00be\u0002\u1058\u1057", + "\u0003\u0002\u0002\u0002\u1059\u105a\u0003\u0002\u0002\u0002\u105a\u1058", + "\u0003\u0002\u0002\u0002\u105a\u105b\u0003\u0002\u0002\u0002\u105b\u105f", + "\u0003\u0002\u0002\u0002\u105c\u105e\u0005\u017e\u00c0\u0002\u105d\u105c", + "\u0003\u0002\u0002\u0002\u105e\u1061\u0003\u0002\u0002\u0002\u105f\u105d", + "\u0003\u0002\u0002\u0002\u105f\u1060\u0003\u0002\u0002\u0002\u1060\u1068", + "\u0003\u0002\u0002\u0002\u1061\u105f\u0003\u0002\u0002\u0002\u1062\u1064", + "\u00073\u0002\u0002\u1063\u1065\u0005\u017a\u00be\u0002\u1064\u1063", + "\u0003\u0002\u0002\u0002\u1065\u1066\u0003\u0002\u0002\u0002\u1066\u1064", + "\u0003\u0002\u0002\u0002\u1066\u1067\u0003\u0002\u0002\u0002\u1067\u1069", + "\u0003\u0002\u0002\u0002\u1068\u1062\u0003\u0002\u0002\u0002\u1068\u1069", + "\u0003\u0002\u0002\u0002\u1069\u106a\u0003\u0002\u0002\u0002\u106a\u106b", + "\u0007\u0156\u0002\u0002\u106b\u106c\u0007G\u0002\u0002\u106c\u0161", + "\u0003\u0002\u0002\u0002\u106d\u106e\u0007R\u0002\u0002\u106e\u106f", + "\u0005\u020c\u0107\u0002\u106f\u0163\u0003\u0002\u0002\u0002\u1070\u1071", + "\u0007X\u0002\u0002\u1071\u1072\u0005\u020c\u0107\u0002\u1072\u0165", + "\u0003\u0002\u0002\u0002\u1073\u1074\u0005\u020c\u0107\u0002\u1074\u1075", + "\u0007\u0409\u0002\u0002\u1075\u1077\u0003\u0002\u0002\u0002\u1076\u1073", + "\u0003\u0002\u0002\u0002\u1076\u1077\u0003\u0002\u0002\u0002\u1077\u1078", + "\u0003\u0002\u0002\u0002\u1078\u107a\u0007`\u0002\u0002\u1079\u107b", + "\u0005\u017a\u00be\u0002\u107a\u1079\u0003\u0002\u0002\u0002\u107b\u107c", + "\u0003\u0002\u0002\u0002\u107c\u107a\u0003\u0002\u0002\u0002\u107c\u107d", + "\u0003\u0002\u0002\u0002\u107d\u107e\u0003\u0002\u0002\u0002\u107e\u107f", + "\u0007\u0156\u0002\u0002\u107f\u1081\u0007`\u0002\u0002\u1080\u1082", + "\u0005\u020c\u0107\u0002\u1081\u1080\u0003\u0002\u0002\u0002\u1081\u1082", + "\u0003\u0002\u0002\u0002\u1082\u0167\u0003\u0002\u0002\u0002\u1083\u1084", + "\u0005\u020c\u0107\u0002\u1084\u1085\u0007\u0409\u0002\u0002\u1085\u1087", + "\u0003\u0002\u0002\u0002\u1086\u1083\u0003\u0002\u0002\u0002\u1086\u1087", + "\u0003\u0002\u0002\u0002\u1087\u1088\u0003\u0002\u0002\u0002\u1088\u108a", + "\u0007\u0080\u0002\u0002\u1089\u108b\u0005\u017a\u00be\u0002\u108a\u1089", + "\u0003\u0002\u0002\u0002\u108b\u108c\u0003\u0002\u0002\u0002\u108c\u108a", + "\u0003\u0002\u0002\u0002\u108c\u108d\u0003\u0002\u0002\u0002\u108d\u108e", + "\u0003\u0002\u0002\u0002\u108e\u108f\u0007\u023c\u0002\u0002\u108f\u1090", + "\u0005\u025a\u012e\u0002\u1090\u1091\u0007\u0156\u0002\u0002\u1091\u1093", + "\u0007\u0080\u0002\u0002\u1092\u1094\u0005\u020c\u0107\u0002\u1093\u1092", + "\u0003\u0002\u0002\u0002\u1093\u1094\u0003\u0002\u0002\u0002\u1094\u0169", + "\u0003\u0002\u0002\u0002\u1095\u1096\u0007\u0085\u0002\u0002\u1096\u1097", + "\u0005\u025a\u012e\u0002\u1097\u016b\u0003\u0002\u0002\u0002\u1098\u1099", + "\u0005\u020c\u0107\u0002\u1099\u109a\u0007\u0409\u0002\u0002\u109a\u109c", + "\u0003\u0002\u0002\u0002\u109b\u1098\u0003\u0002\u0002\u0002\u109b\u109c", + "\u0003\u0002\u0002\u0002\u109c\u109d\u0003\u0002\u0002\u0002\u109d\u109e", + "\u0007\u00af\u0002\u0002\u109e\u109f\u0005\u025a\u012e\u0002\u109f\u10a1", + "\u0007\u0150\u0002\u0002\u10a0\u10a2\u0005\u017a\u00be\u0002\u10a1\u10a0", + "\u0003\u0002\u0002\u0002\u10a2\u10a3\u0003\u0002\u0002\u0002\u10a3\u10a1", + "\u0003\u0002\u0002\u0002\u10a3\u10a4\u0003\u0002\u0002\u0002\u10a4\u10a5", + "\u0003\u0002\u0002\u0002\u10a5\u10a6\u0007\u0156\u0002\u0002\u10a6\u10a8", + "\u0007\u00af\u0002\u0002\u10a7\u10a9\u0005\u020c\u0107\u0002\u10a8\u10a7", + "\u0003\u0002\u0002\u0002\u10a8\u10a9\u0003\u0002\u0002\u0002\u10a9\u016d", + "\u0003\u0002\u0002\u0002\u10aa\u10ab\u0007\u012d\u0002\u0002\u10ab\u10ba", + "\u0005\u020c\u0107\u0002\u10ac\u10b1\u0007;\u0002\u0002\u10ad\u10af", + "\u0007\u01c1\u0002\u0002\u10ae\u10ad\u0003\u0002\u0002\u0002\u10ae\u10af", + "\u0003\u0002\u0002\u0002\u10af\u10b0\u0003\u0002\u0002\u0002\u10b0\u10b2", + "\u0007?\u0002\u0002\u10b1\u10ae\u0003\u0002\u0002\u0002\u10b1\u10b2", + "\u0003\u0002\u0002\u0002\u10b2\u10b3\u0003\u0002\u0002\u0002\u10b3\u10b4", + "\u0005\u020c\u0107\u0002\u10b4\u10b5\u0007P\u0002\u0002\u10b5\u10b6", + "\u0005\u022c\u0117\u0002\u10b6\u10ba\u0003\u0002\u0002\u0002\u10b7\u10b8", + "\u0007\u01cc\u0002\u0002\u10b8\u10ba\u0005\u020c\u0107\u0002\u10b9\u10aa", + "\u0003\u0002\u0002\u0002\u10b9\u10ac\u0003\u0002\u0002\u0002\u10b9\u10b7", + "\u0003\u0002\u0002\u0002\u10ba\u016f\u0003\u0002\u0002\u0002\u10bb\u10bc", + "\u0007\'\u0002\u0002\u10bc\u10bd\u0005\u022c\u0117\u0002\u10bd\u10c0", + "\u0005\u0220\u0111\u0002\u10be\u10bf\u0007(\u0002\u0002\u10bf\u10c1", + "\u0005\u023c\u011f\u0002\u10c0\u10be\u0003\u0002\u0002\u0002\u10c0\u10c1", + "\u0003\u0002\u0002\u0002\u10c1\u0171\u0003\u0002\u0002\u0002\u10c2\u10c3", + "\u0007\'\u0002\u0002\u10c3\u10c4\u0005\u020c\u0107\u0002\u10c4\u10c5", + "\u0007\u001c\u0002\u0002\u10c5\u10cc\u0007<\u0002\u0002\u10c6\u10cd", + "\u0005\u0212\u010a\u0002\u10c7\u10c9\u0007\u0093\u0002\u0002\u10c8\u10ca", + "\u0007\u0242\u0002\u0002\u10c9\u10c8\u0003\u0002\u0002\u0002\u10c9\u10ca", + "\u0003\u0002\u0002\u0002\u10ca\u10cb\u0003\u0002\u0002\u0002\u10cb\u10cd", + "\u0007\u040d\u0002\u0002\u10cc\u10c6\u0003\u0002\u0002\u0002\u10cc\u10c7", + "\u0003\u0002\u0002\u0002\u10cd\u0173\u0003\u0002\u0002\u0002\u10ce\u10cf", + "\u0007\'\u0002\u0002\u10cf\u10d0\u0005\u020c\u0107\u0002\u10d0\u10d1", + "\u0007$\u0002\u0002\u10d1\u10d2\u0007<\u0002\u0002\u10d2\u10d3\u0005", + "\u00b4[\u0002\u10d3\u0175\u0003\u0002\u0002\u0002\u10d4\u10d5\u0007", + "\'\u0002\u0002\u10d5\u10d6\t<\u0002\u0002\u10d6\u10d7\u0007\u0177\u0002", + "\u0002\u10d7\u10d8\u0007<\u0002\u0002\u10d8\u10dd\u0005\u0178\u00bd", + "\u0002\u10d9\u10da\u0007\u0400\u0002\u0002\u10da\u10dc\u0005\u0178\u00bd", + "\u0002\u10db\u10d9\u0003\u0002\u0002\u0002\u10dc\u10df\u0003\u0002\u0002", + "\u0002\u10dd\u10db\u0003\u0002\u0002\u0002\u10dd\u10de\u0003\u0002\u0002", + "\u0002\u10de\u10e0\u0003\u0002\u0002\u0002\u10df\u10dd\u0003\u0002\u0002", + "\u0002\u10e0\u10e1\u0005\u015a\u00ae\u0002\u10e1\u0177\u0003\u0002\u0002", + "\u0002\u10e2\u10ee\u0005\u0212\u010a\u0002\u10e3\u10e5\u0007\u0093\u0002", + "\u0002\u10e4\u10e6\u0007\u0242\u0002\u0002\u10e5\u10e4\u0003\u0002\u0002", + "\u0002\u10e5\u10e6\u0003\u0002\u0002\u0002\u10e6\u10e7\u0003\u0002\u0002", + "\u0002\u10e7\u10ee\u0007\u040d\u0002\u0002\u10e8\u10ee\u0005\u020c\u0107", + "\u0002\u10e9\u10ee\u0007\u0094\u0002\u0002\u10ea\u10eb\u0007h\u0002", + "\u0002\u10eb\u10ee\u0007\u0170\u0002\u0002\u10ec\u10ee\u0007\u0092\u0002", + "\u0002\u10ed\u10e2\u0003\u0002\u0002\u0002\u10ed\u10e3\u0003\u0002\u0002", + "\u0002\u10ed\u10e8\u0003\u0002\u0002\u0002\u10ed\u10e9\u0003\u0002\u0002", + "\u0002\u10ed\u10ea\u0003\u0002\u0002\u0002\u10ed\u10ec\u0003\u0002\u0002", + "\u0002\u10ee\u0179\u0003\u0002\u0002\u0002\u10ef\u10f2\u0005\u0014\u000b", + "\u0002\u10f0\u10f2\u0005\u0006\u0004\u0002\u10f1\u10ef\u0003\u0002\u0002", + "\u0002\u10f1\u10f0\u0003\u0002\u0002\u0002\u10f2\u10f3\u0003\u0002\u0002", + "\u0002\u10f3\u10f4\u0007\u0401\u0002\u0002\u10f4\u017b\u0003\u0002\u0002", + "\u0002\u10f5\u10f8\u0007\u00ad\u0002\u0002\u10f6\u10f9\u0005\u021e\u0110", + "\u0002\u10f7\u10f9\u0005\u025a\u012e\u0002\u10f8\u10f6\u0003\u0002\u0002", + "\u0002\u10f8\u10f7\u0003\u0002\u0002\u0002\u10f9\u10fa\u0003\u0002\u0002", + "\u0002\u10fa\u10fc\u0007\u009e\u0002\u0002\u10fb\u10fd\u0005\u017a\u00be", + "\u0002\u10fc\u10fb\u0003\u0002\u0002\u0002\u10fd\u10fe\u0003\u0002\u0002", + "\u0002\u10fe\u10fc\u0003\u0002\u0002\u0002\u10fe\u10ff\u0003\u0002\u0002", + "\u0002\u10ff\u017d\u0003\u0002\u0002\u0002\u1100\u1101\u00074\u0002", + "\u0002\u1101\u1102\u0005\u025a\u012e\u0002\u1102\u1104\u0007\u009e\u0002", + "\u0002\u1103\u1105\u0005\u017a\u00be\u0002\u1104\u1103\u0003\u0002\u0002", + "\u0002\u1105\u1106\u0003\u0002\u0002\u0002\u1106\u1104\u0003\u0002\u0002", + "\u0002\u1106\u1107\u0003\u0002\u0002\u0002\u1107\u017f\u0003\u0002\u0002", + "\u0002\u1108\u1109\u0007\t\u0002\u0002\u1109\u110a\u0007\u023e\u0002", + "\u0002\u110a\u110f\u0005\u0192\u00ca\u0002\u110b\u110c\u0007\u0400\u0002", + "\u0002\u110c\u110e\u0005\u0192\u00ca\u0002\u110d\u110b\u0003\u0002\u0002", + "\u0002\u110e\u1111\u0003\u0002\u0002\u0002\u110f\u110d\u0003\u0002\u0002", + "\u0002\u110f\u1110\u0003\u0002\u0002\u0002\u1110\u113f\u0003\u0002\u0002", + "\u0002\u1111\u110f\u0003\u0002\u0002\u0002\u1112\u1113\u0007\t\u0002", + "\u0002\u1113\u1115\u0007\u023e\u0002\u0002\u1114\u1116\u0005\u0242\u0122", + "\u0002\u1115\u1114\u0003\u0002\u0002\u0002\u1115\u1116\u0003\u0002\u0002", + "\u0002\u1116\u1117\u0003\u0002\u0002\u0002\u1117\u111c\u0005\u0194\u00cb", + "\u0002\u1118\u1119\u0007\u0400\u0002\u0002\u1119\u111b\u0005\u0194\u00cb", + "\u0002\u111a\u1118\u0003\u0002\u0002\u0002\u111b\u111e\u0003\u0002\u0002", + "\u0002\u111c\u111a\u0003\u0002\u0002\u0002\u111c\u111d\u0003\u0002\u0002", + "\u0002\u111d\u112d\u0003\u0002\u0002\u0002\u111e\u111c\u0003\u0002\u0002", + "\u0002\u111f\u112b\u0007\u0082\u0002\u0002\u1120\u112c\u0007\u01c4\u0002", + "\u0002\u1121\u1128\u0005\u0196\u00cc\u0002\u1122\u1124\u0007\f\u0002", + "\u0002\u1123\u1122\u0003\u0002\u0002\u0002\u1123\u1124\u0003\u0002\u0002", + "\u0002\u1124\u1125\u0003\u0002\u0002\u0002\u1125\u1127\u0005\u0196\u00cc", + "\u0002\u1126\u1123\u0003\u0002\u0002\u0002\u1127\u112a\u0003\u0002\u0002", + "\u0002\u1128\u1126\u0003\u0002\u0002\u0002\u1128\u1129\u0003\u0002\u0002", + "\u0002\u1129\u112c\u0003\u0002\u0002\u0002\u112a\u1128\u0003\u0002\u0002", + "\u0002\u112b\u1120\u0003\u0002\u0002\u0002\u112b\u1121\u0003\u0002\u0002", + "\u0002\u112c\u112e\u0003\u0002\u0002\u0002\u112d\u111f\u0003\u0002\u0002", + "\u0002\u112d\u112e\u0003\u0002\u0002\u0002\u112e\u1135\u0003\u0002\u0002", + "\u0002\u112f\u1131\u0007\u00b0\u0002\u0002\u1130\u1132\u0005\u0198\u00cd", + "\u0002\u1131\u1130\u0003\u0002\u0002\u0002\u1132\u1133\u0003\u0002\u0002", + "\u0002\u1133\u1131\u0003\u0002\u0002\u0002\u1133\u1134\u0003\u0002\u0002", + "\u0002\u1134\u1136\u0003\u0002\u0002\u0002\u1135\u112f\u0003\u0002\u0002", + "\u0002\u1135\u1136\u0003\u0002\u0002\u0002\u1136\u113b\u0003\u0002\u0002", + "\u0002\u1137\u113a\u0005\u019a\u00ce\u0002\u1138\u113a\u0005\u019c\u00cf", + "\u0002\u1139\u1137\u0003\u0002\u0002\u0002\u1139\u1138\u0003\u0002\u0002", + "\u0002\u113a\u113d\u0003\u0002\u0002\u0002\u113b\u1139\u0003\u0002\u0002", + "\u0002\u113b\u113c\u0003\u0002\u0002\u0002\u113c\u113f\u0003\u0002\u0002", + "\u0002\u113d\u113b\u0003\u0002\u0002\u0002\u113e\u1108\u0003\u0002\u0002", + "\u0002\u113e\u1112\u0003\u0002\u0002\u0002\u113f\u0181\u0003\u0002\u0002", + "\u0002\u1140\u1141\u0007 \u0002\u0002\u1141\u1142\u0007\u023e\u0002", + "\u0002\u1142\u1147\u0005\u0194\u00cb\u0002\u1143\u1144\u0007\u0400\u0002", + "\u0002\u1144\u1146\u0005\u0194\u00cb\u0002\u1145\u1143\u0003\u0002\u0002", + "\u0002\u1146\u1149\u0003\u0002\u0002\u0002\u1147\u1145\u0003\u0002\u0002", + "\u0002\u1147\u1148\u0003\u0002\u0002\u0002\u1148\u1177\u0003\u0002\u0002", + "\u0002\u1149\u1147\u0003\u0002\u0002\u0002\u114a\u114b\u0007 \u0002", + "\u0002\u114b\u114d\u0007\u023e\u0002\u0002\u114c\u114e\u0005\u0244\u0123", + "\u0002\u114d\u114c\u0003\u0002\u0002\u0002\u114d\u114e\u0003\u0002\u0002", + "\u0002\u114e\u114f\u0003\u0002\u0002\u0002\u114f\u1154\u0005\u0194\u00cb", + "\u0002\u1150\u1151\u0007\u0400\u0002\u0002\u1151\u1153\u0005\u0194\u00cb", + "\u0002\u1152\u1150\u0003\u0002\u0002\u0002\u1153\u1156\u0003\u0002\u0002", + "\u0002\u1154\u1152\u0003\u0002\u0002\u0002\u1154\u1155\u0003\u0002\u0002", + "\u0002\u1155\u1165\u0003\u0002\u0002\u0002\u1156\u1154\u0003\u0002\u0002", + "\u0002\u1157\u1163\u0007\u0082\u0002\u0002\u1158\u1164\u0007\u01c4\u0002", + "\u0002\u1159\u1160\u0005\u0196\u00cc\u0002\u115a\u115c\u0007\f\u0002", + "\u0002\u115b\u115a\u0003\u0002\u0002\u0002\u115b\u115c\u0003\u0002\u0002", + "\u0002\u115c\u115d\u0003\u0002\u0002\u0002\u115d\u115f\u0005\u0196\u00cc", + "\u0002\u115e\u115b\u0003\u0002\u0002\u0002\u115f\u1162\u0003\u0002\u0002", + "\u0002\u1160\u115e\u0003\u0002\u0002\u0002\u1160\u1161\u0003\u0002\u0002", + "\u0002\u1161\u1164\u0003\u0002\u0002\u0002\u1162\u1160\u0003\u0002\u0002", + "\u0002\u1163\u1158\u0003\u0002\u0002\u0002\u1163\u1159\u0003\u0002\u0002", + "\u0002\u1164\u1166\u0003\u0002\u0002\u0002\u1165\u1157\u0003\u0002\u0002", + "\u0002\u1165\u1166\u0003\u0002\u0002\u0002\u1166\u116d\u0003\u0002\u0002", + "\u0002\u1167\u1169\u0007\u00b0\u0002\u0002\u1168\u116a\u0005\u0198\u00cd", + "\u0002\u1169\u1168\u0003\u0002\u0002\u0002\u116a\u116b\u0003\u0002\u0002", + "\u0002\u116b\u1169\u0003\u0002\u0002\u0002\u116b\u116c\u0003\u0002\u0002", + "\u0002\u116c\u116e\u0003\u0002\u0002\u0002\u116d\u1167\u0003\u0002\u0002", + "\u0002\u116d\u116e\u0003\u0002\u0002\u0002\u116e\u1173\u0003\u0002\u0002", + "\u0002\u116f\u1172\u0005\u019a\u00ce\u0002\u1170\u1172\u0005\u019c\u00cf", + "\u0002\u1171\u116f\u0003\u0002\u0002\u0002\u1171\u1170\u0003\u0002\u0002", + "\u0002\u1172\u1175\u0003\u0002\u0002\u0002\u1173\u1171\u0003\u0002\u0002", + "\u0002\u1173\u1174\u0003\u0002\u0002\u0002\u1174\u1177\u0003\u0002\u0002", + "\u0002\u1175\u1173\u0003\u0002\u0002\u0002\u1176\u1140\u0003\u0002\u0002", + "\u0002\u1176\u114a\u0003\u0002\u0002\u0002\u1177\u0183\u0003\u0002\u0002", + "\u0002\u1178\u1179\u00071\u0002\u0002\u1179\u117b\u0007\u023e\u0002", + "\u0002\u117a\u117c\u0005\u0242\u0122\u0002\u117b\u117a\u0003\u0002\u0002", + "\u0002\u117b\u117c\u0003\u0002\u0002\u0002\u117c\u117d\u0003\u0002\u0002", + "\u0002\u117d\u1182\u0005\u01fa\u00fe\u0002\u117e\u117f\u0007\u0400\u0002", + "\u0002\u117f\u1181\u0005\u01fa\u00fe\u0002\u1180\u117e\u0003\u0002\u0002", + "\u0002\u1181\u1184\u0003\u0002\u0002\u0002\u1182\u1180\u0003\u0002\u0002", + "\u0002\u1182\u1183\u0003\u0002\u0002\u0002\u1183\u0185\u0003\u0002\u0002", + "\u0002\u1184\u1182\u0003\u0002\u0002\u0002\u1185\u1186\u0007C\u0002", + "\u0002\u1186\u118b\u0005\u019e\u00d0\u0002\u1187\u1188\u0007\u0400\u0002", + "\u0002\u1188\u118a\u0005\u019e\u00d0\u0002\u1189\u1187\u0003\u0002\u0002", + "\u0002\u118a\u118d\u0003\u0002\u0002\u0002\u118b\u1189\u0003\u0002\u0002", + "\u0002\u118b\u118c\u0003\u0002\u0002\u0002\u118c\u118e\u0003\u0002\u0002", + "\u0002\u118d\u118b\u0003\u0002\u0002\u0002\u118e\u1190\u0007l\u0002", + "\u0002\u118f\u1191\t=\u0002\u0002\u1190\u118f\u0003\u0002\u0002\u0002", + "\u1190\u1191\u0003\u0002\u0002\u0002\u1191\u1192\u0003\u0002\u0002\u0002", + "\u1192\u1193\u0005\u01a2\u00d2\u0002\u1193\u1194\u0007\u009f\u0002\u0002", + "\u1194\u1199\u0005\u0194\u00cb\u0002\u1195\u1196\u0007\u0400\u0002\u0002", + "\u1196\u1198\u0005\u0194\u00cb\u0002\u1197\u1195\u0003\u0002\u0002\u0002", + "\u1198\u119b\u0003\u0002\u0002\u0002\u1199\u1197\u0003\u0002\u0002\u0002", + "\u1199\u119a\u0003\u0002\u0002\u0002\u119a\u11aa\u0003\u0002\u0002\u0002", + "\u119b\u1199\u0003\u0002\u0002\u0002\u119c\u11a8\u0007\u0082\u0002\u0002", + "\u119d\u11a9\u0007\u01c4\u0002\u0002\u119e\u11a5\u0005\u0196\u00cc\u0002", + "\u119f\u11a1\u0007\f\u0002\u0002\u11a0\u119f\u0003\u0002\u0002\u0002", + "\u11a0\u11a1\u0003\u0002\u0002\u0002\u11a1\u11a2\u0003\u0002\u0002\u0002", + "\u11a2\u11a4\u0005\u0196\u00cc\u0002\u11a3\u11a0\u0003\u0002\u0002\u0002", + "\u11a4\u11a7\u0003\u0002\u0002\u0002\u11a5\u11a3\u0003\u0002\u0002\u0002", + "\u11a5\u11a6\u0003\u0002\u0002\u0002\u11a6\u11a9\u0003\u0002\u0002\u0002", + "\u11a7\u11a5\u0003\u0002\u0002\u0002\u11a8\u119d\u0003\u0002\u0002\u0002", + "\u11a8\u119e\u0003\u0002\u0002\u0002\u11a9\u11ab\u0003\u0002\u0002\u0002", + "\u11aa\u119c\u0003\u0002\u0002\u0002\u11aa\u11ab\u0003\u0002\u0002\u0002", + "\u11ab\u11b5\u0003\u0002\u0002\u0002\u11ac\u11b2\u0007\u00b0\u0002\u0002", + "\u11ad\u11ae\u0007C\u0002\u0002\u11ae\u11b1\u0007n\u0002\u0002\u11af", + "\u11b1\u0005\u0198\u00cd\u0002\u11b0\u11ad\u0003\u0002\u0002\u0002\u11b0", + "\u11af\u0003\u0002\u0002\u0002\u11b1\u11b4\u0003\u0002\u0002\u0002\u11b2", + "\u11b0\u0003\u0002\u0002\u0002\u11b2\u11b3\u0003\u0002\u0002\u0002\u11b3", + "\u11b6\u0003\u0002\u0002\u0002\u11b4\u11b2\u0003\u0002\u0002\u0002\u11b5", + "\u11ac\u0003\u0002\u0002\u0002\u11b5\u11b6\u0003\u0002\u0002\u0002\u11b6", + "\u0187\u0003\u0002\u0002\u0002\u11b7\u11b8\u0007C\u0002\u0002\u11b8", + "\u11b9\u0007\u01e3\u0002\u0002\u11b9\u11ba\u0007l\u0002\u0002\u11ba", + "\u11bb\u0005\u01fa\u00fe\u0002\u11bb\u11bc\u0007\u009f\u0002\u0002\u11bc", + "\u11c1\u0005\u01fa\u00fe\u0002\u11bd\u11be\u0007\u0400\u0002\u0002\u11be", + "\u11c0\u0005\u01fa\u00fe\u0002\u11bf\u11bd\u0003\u0002\u0002\u0002\u11c0", + "\u11c3\u0003\u0002\u0002\u0002\u11c1\u11bf\u0003\u0002\u0002\u0002\u11c1", + "\u11c2\u0003\u0002\u0002\u0002\u11c2\u11c7\u0003\u0002\u0002\u0002\u11c3", + "\u11c1\u0003\u0002\u0002\u0002\u11c4\u11c5\u0007\u00b0\u0002\u0002\u11c5", + "\u11c6\u0007C\u0002\u0002\u11c6\u11c8\u0007n\u0002\u0002\u11c7\u11c4", + "\u0003\u0002\u0002\u0002\u11c7\u11c8\u0003\u0002\u0002\u0002\u11c8\u0189", + "\u0003\u0002\u0002\u0002\u11c9\u11ca\u0007\u007f\u0002\u0002\u11ca\u11cb", + "\u0007\u023e\u0002\u0002\u11cb\u11d0\u0005\u01a4\u00d3\u0002\u11cc\u11cd", + "\u0007\u0400\u0002\u0002\u11cd\u11cf\u0005\u01a4\u00d3\u0002\u11ce\u11cc", + "\u0003\u0002\u0002\u0002\u11cf\u11d2\u0003\u0002\u0002\u0002\u11d0\u11ce", + "\u0003\u0002\u0002\u0002\u11d0\u11d1\u0003\u0002\u0002\u0002\u11d1\u018b", + "\u0003\u0002\u0002\u0002\u11d2\u11d0\u0003\u0002\u0002\u0002\u11d3\u11d4", + "\u0007\u0086\u0002\u0002\u11d4\u11d9\u0005\u019e\u00d0\u0002\u11d5\u11d6", + "\u0007\u0400\u0002\u0002\u11d6\u11d8\u0005\u019e\u00d0\u0002\u11d7\u11d5", + "\u0003\u0002\u0002\u0002\u11d8\u11db\u0003\u0002\u0002\u0002\u11d9\u11d7", + "\u0003\u0002\u0002\u0002\u11d9\u11da\u0003\u0002\u0002\u0002\u11da\u11dc", + "\u0003\u0002\u0002\u0002\u11db\u11d9\u0003\u0002\u0002\u0002\u11dc\u11de", + "\u0007l\u0002\u0002\u11dd\u11df\t=\u0002\u0002\u11de\u11dd\u0003\u0002", + "\u0002\u0002\u11de\u11df\u0003\u0002\u0002\u0002\u11df\u11e0\u0003\u0002", + "\u0002\u0002\u11e0\u11e1\u0005\u01a2\u00d2\u0002\u11e1\u11e2\u0007?", + "\u0002\u0002\u11e2\u11e7\u0005\u01fa\u00fe\u0002\u11e3\u11e4\u0007\u0400", + "\u0002\u0002\u11e4\u11e6\u0005\u01fa\u00fe\u0002\u11e5\u11e3\u0003\u0002", + "\u0002\u0002\u11e6\u11e9\u0003\u0002\u0002\u0002\u11e7\u11e5\u0003\u0002", + "\u0002\u0002\u11e7\u11e8\u0003\u0002\u0002\u0002\u11e8\u11fc\u0003\u0002", + "\u0002\u0002\u11e9\u11e7\u0003\u0002\u0002\u0002\u11ea\u11eb\u0007\u0086", + "\u0002\u0002\u11eb\u11ed\u0007\b\u0002\u0002\u11ec\u11ee\u0007\u0264", + "\u0002\u0002\u11ed\u11ec\u0003\u0002\u0002\u0002\u11ed\u11ee\u0003\u0002", + "\u0002\u0002\u11ee\u11ef\u0003\u0002\u0002\u0002\u11ef\u11f0\u0007\u0400", + "\u0002\u0002\u11f0\u11f1\u0007C\u0002\u0002\u11f1\u11f2\u0007n\u0002", + "\u0002\u11f2\u11f3\u0007?\u0002\u0002\u11f3\u11f8\u0005\u01fa\u00fe", + "\u0002\u11f4\u11f5\u0007\u0400\u0002\u0002\u11f5\u11f7\u0005\u01fa\u00fe", + "\u0002\u11f6\u11f4\u0003\u0002\u0002\u0002\u11f7\u11fa\u0003\u0002\u0002", + "\u0002\u11f8\u11f6\u0003\u0002\u0002\u0002\u11f8\u11f9\u0003\u0002\u0002", + "\u0002\u11f9\u11fc\u0003\u0002\u0002\u0002\u11fa\u11f8\u0003\u0002\u0002", + "\u0002\u11fb\u11d3\u0003\u0002\u0002\u0002\u11fb\u11ea\u0003\u0002\u0002", + "\u0002\u11fc\u018d\u0003\u0002\u0002\u0002\u11fd\u11fe\u0007\u0086\u0002", + "\u0002\u11fe\u11ff\u0007\u01e3\u0002\u0002\u11ff\u1200\u0007l\u0002", + "\u0002\u1200\u1201\u0005\u01fa\u00fe\u0002\u1201\u1202\u0007?\u0002", + "\u0002\u1202\u1207\u0005\u01fa\u00fe\u0002\u1203\u1204\u0007\u0400\u0002", + "\u0002\u1204\u1206\u0005\u01fa\u00fe\u0002\u1205\u1203\u0003\u0002\u0002", + "\u0002\u1206\u1209\u0003\u0002\u0002\u0002\u1207\u1205\u0003\u0002\u0002", + "\u0002\u1207\u1208\u0003\u0002\u0002\u0002\u1208\u018f\u0003\u0002\u0002", + "\u0002\u1209\u1207\u0003\u0002\u0002\u0002\u120a\u120b\u0007\u008c\u0002", + "\u0002\u120b\u120e\u0007\u01d6\u0002\u0002\u120c\u120d\u0007<\u0002", + "\u0002\u120d\u120f\u0005\u01fa\u00fe\u0002\u120e\u120c\u0003\u0002\u0002", + "\u0002\u120e\u120f\u0003\u0002\u0002\u0002\u120f\u1210\u0003\u0002\u0002", + "\u0002\u1210\u1213\u0007\u03f5\u0002\u0002\u1211\u1214\u0005\u0254\u012b", + "\u0002\u1212\u1214\u0007\u040d\u0002\u0002\u1213\u1211\u0003\u0002\u0002", + "\u0002\u1213\u1212\u0003\u0002\u0002\u0002\u1214\u0191\u0003\u0002\u0002", + "\u0002\u1215\u1216\u0005\u01fa\u00fe\u0002\u1216\u1217\u0005\u019a\u00ce", + "\u0002\u1217\u0193\u0003\u0002\u0002\u0002\u1218\u1219\u0005\u01fa\u00fe", + "\u0002\u1219\u121a\u0007\u017c\u0002\u0002\u121a\u121b\u0007\u0012\u0002", + "\u0002\u121b\u121c\u0007\u01d6\u0002\u0002\u121c\u121d\u0007\u040d\u0002", + "\u0002\u121d\u1231\u0003\u0002\u0002\u0002\u121e\u121f\u0005\u01fa\u00fe", + "\u0002\u121f\u1222\u0007\u017c\u0002\u0002\u1220\u1221\u0007\u00b0\u0002", + "\u0002\u1221\u1223\u0005\u020a\u0106\u0002\u1222\u1220\u0003\u0002\u0002", + "\u0002\u1222\u1223\u0003\u0002\u0002\u0002\u1223\u1224\u0003\u0002\u0002", + "\u0002\u1224\u1225\u0007\u0012\u0002\u0002\u1225\u1226\u0007\u040d\u0002", + "\u0002\u1226\u1231\u0003\u0002\u0002\u0002\u1227\u1228\u0005\u01fa\u00fe", + "\u0002\u1228\u1229\u0007\u017c\u0002\u0002\u1229\u122a\u0007\u00b0\u0002", + "\u0002\u122a\u122d\u0005\u020a\u0106\u0002\u122b\u122c\u0007\r\u0002", + "\u0002\u122c\u122e\u0007\u040d\u0002\u0002\u122d\u122b\u0003\u0002\u0002", + "\u0002\u122d\u122e\u0003\u0002\u0002\u0002\u122e\u1231\u0003\u0002\u0002", + "\u0002\u122f\u1231\u0005\u01fa\u00fe\u0002\u1230\u1218\u0003\u0002\u0002", + "\u0002\u1230\u121e\u0003\u0002\u0002\u0002\u1230\u1227\u0003\u0002\u0002", + "\u0002\u1230\u122f\u0003\u0002\u0002\u0002\u1231\u0195\u0003\u0002\u0002", + "\u0002\u1232\u123b\u0007\u0098\u0002\u0002\u1233\u123b\u0007\u024c\u0002", + "\u0002\u1234\u1235\u0007\u012a\u0002\u0002\u1235\u123b\u0007\u040d\u0002", + "\u0002\u1236\u1237\u0007\u018b\u0002\u0002\u1237\u123b\u0007\u040d\u0002", + "\u0002\u1238\u1239\u0007\u0227\u0002\u0002\u1239\u123b\u0007\u040d\u0002", + "\u0002\u123a\u1232\u0003\u0002\u0002\u0002\u123a\u1233\u0003\u0002\u0002", + "\u0002\u123a\u1234\u0003\u0002\u0002\u0002\u123a\u1236\u0003\u0002\u0002", + "\u0002\u123a\u1238\u0003\u0002\u0002\u0002\u123b\u0197\u0003\u0002\u0002", + "\u0002\u123c\u123d\u0007\u01ad\u0002\u0002\u123d\u1245\u0005\u0212\u010a", + "\u0002\u123e\u123f\u0007\u01b0\u0002\u0002\u123f\u1245\u0005\u0212\u010a", + "\u0002\u1240\u1241\u0007\u01ac\u0002\u0002\u1241\u1245\u0005\u0212\u010a", + "\u0002\u1242\u1243\u0007\u01b1\u0002\u0002\u1243\u1245\u0005\u0212\u010a", + "\u0002\u1244\u123c\u0003\u0002\u0002\u0002\u1244\u123e\u0003\u0002\u0002", + "\u0002\u1244\u1240\u0003\u0002\u0002\u0002\u1244\u1242\u0003\u0002\u0002", + "\u0002\u1245\u0199\u0003\u0002\u0002\u0002\u1246\u1247\u0007\u01d6\u0002", + "\u0002\u1247\u124e\u0007\u0163\u0002\u0002\u1248\u124f\u0007(\u0002", + "\u0002\u1249\u124f\u0007\u01c0\u0002\u0002\u124a\u124b\u0007O\u0002", + "\u0002\u124b\u124c\u0005\u0212\u010a\u0002\u124c\u124d\u0007\u0256\u0002", + "\u0002\u124d\u124f\u0003\u0002\u0002\u0002\u124e\u1248\u0003\u0002\u0002", + "\u0002\u124e\u1249\u0003\u0002\u0002\u0002\u124e\u124a\u0003\u0002\u0002", + "\u0002\u124e\u124f\u0003\u0002\u0002\u0002\u124f\u019b\u0003\u0002\u0002", + "\u0002\u1250\u1251\u0007\u0110\u0002\u0002\u1251\u1252\t>\u0002\u0002", + "\u1252\u019d\u0003\u0002\u0002\u0002\u1253\u1258\u0005\u01a0\u00d1\u0002", + "\u1254\u1255\u0007\u03fe\u0002\u0002\u1255\u1256\u0005\u022c\u0117\u0002", + "\u1256\u1257\u0007\u03ff\u0002\u0002\u1257\u1259\u0003\u0002\u0002\u0002", + "\u1258\u1254\u0003\u0002\u0002\u0002\u1258\u1259\u0003\u0002\u0002\u0002", + "\u1259\u019f\u0003\u0002\u0002\u0002\u125a\u125c\u0007\b\u0002\u0002", + "\u125b\u125d\u0007\u0264\u0002\u0002\u125c\u125b\u0003\u0002\u0002\u0002", + "\u125c\u125d\u0003\u0002\u0002\u0002\u125d\u12a2\u0003\u0002\u0002\u0002", + "\u125e\u1260\u0007\t\u0002\u0002\u125f\u1261\u0007\u025d\u0002\u0002", + "\u1260\u125f\u0003\u0002\u0002\u0002\u1260\u1261\u0003\u0002\u0002\u0002", + "\u1261\u12a2\u0003\u0002\u0002\u0002\u1262\u126a\u0007 \u0002\u0002", + "\u1263\u1264\u0007\u022f\u0002\u0002\u1264\u126b\u0007\u025c\u0002\u0002", + "\u1265\u126b\u0007\u025d\u0002\u0002\u1266\u126b\u0007\u0244\u0002\u0002", + "\u1267\u126b\u0007\u023e\u0002\u0002\u1268\u126b\u0007\u022e\u0002\u0002", + "\u1269\u126b\u0007\u01fd\u0002\u0002\u126a\u1263\u0003\u0002\u0002\u0002", + "\u126a\u1265\u0003\u0002\u0002\u0002\u126a\u1266\u0003\u0002\u0002\u0002", + "\u126a\u1267\u0003\u0002\u0002\u0002\u126a\u1268\u0003\u0002\u0002\u0002", + "\u126a\u1269\u0003\u0002\u0002\u0002\u126a\u126b\u0003\u0002\u0002\u0002", + "\u126b\u12a2\u0003\u0002\u0002\u0002\u126c\u12a2\u0007*\u0002\u0002", + "\u126d\u126f\u00071\u0002\u0002\u126e\u1270\u0007\u01fd\u0002\u0002", + "\u126f\u126e\u0003\u0002\u0002\u0002\u126f\u1270\u0003\u0002\u0002\u0002", + "\u1270\u12a2\u0003\u0002\u0002\u0002\u1271\u12a2\u0007\u015e\u0002\u0002", + "\u1272\u12a2\u0007\u025e\u0002\u0002\u1273\u12a2\u0007\u025f\u0002\u0002", + "\u1274\u1275\u0007C\u0002\u0002\u1275\u12a2\u0007n\u0002\u0002\u1276", + "\u12a2\u0007J\u0002\u0002\u1277\u12a2\u0007N\u0002\u0002\u1278\u1279", + "\u0007_\u0002\u0002\u1279\u12a2\u0007\u025c\u0002\u0002\u127a\u12a2", + "\u0007\u0260\u0002\u0002\u127b\u12a2\u0007\u01e3\u0002\u0002\u127c\u12a2", + "\u0007|\u0002\u0002\u127d\u12a2\u0007\u0261\u0002\u0002\u127e\u127f", + "\u0007\u01f8\u0002\u0002\u127f\u12a2\t?\u0002\u0002\u1280\u12a2\u0007", + "\u008b\u0002\u0002\u1281\u1282\u0007\u008e\u0002\u0002\u1282\u12a2\t", + "@\u0002\u0002\u1283\u12a2\u0007\u0262\u0002\u0002\u1284\u12a2\u0007", + "\u0263\u0002\u0002\u1285\u12a2\u0007\u00a1\u0002\u0002\u1286\u12a2\u0007", + "\u00a8\u0002\u0002\u1287\u12a2\u0007\u00a9\u0002\u0002\u1288\u12a2\u0007", + "\u0266\u0002\u0002\u1289\u12a2\u0007\u0267\u0002\u0002\u128a\u12a2\u0007", + "\u0268\u0002\u0002\u128b\u12a2\u0007\u0269\u0002\u0002\u128c\u12a2\u0007", + "\u026a\u0002\u0002\u128d\u12a2\u0007\u026b\u0002\u0002\u128e\u12a2\u0007", + "\u026c\u0002\u0002\u128f\u12a2\u0007\u026d\u0002\u0002\u1290\u12a2\u0007", + "\u026e\u0002\u0002\u1291\u12a2\u0007\u026f\u0002\u0002\u1292\u12a2\u0007", + "\u0270\u0002\u0002\u1293\u12a2\u0007\u0271\u0002\u0002\u1294\u12a2\u0007", + "\u0272\u0002\u0002\u1295\u12a2\u0007\u0273\u0002\u0002\u1296\u12a2\u0007", + "\u0274\u0002\u0002\u1297\u12a2\u0007\u0275\u0002\u0002\u1298\u12a2\u0007", + "\u0276\u0002\u0002\u1299\u12a2\u0007\u0277\u0002\u0002\u129a\u12a2\u0007", + "\u0278\u0002\u0002\u129b\u12a2\u0007\u0279\u0002\u0002\u129c\u12a2\u0007", + "\u027a\u0002\u0002\u129d\u12a2\u0007\u027b\u0002\u0002\u129e\u12a2\u0007", + "\u027c\u0002\u0002\u129f\u12a2\u0007\u027d\u0002\u0002\u12a0\u12a2\u0007", + "\u027e\u0002\u0002\u12a1\u125a\u0003\u0002\u0002\u0002\u12a1\u125e\u0003", + "\u0002\u0002\u0002\u12a1\u1262\u0003\u0002\u0002\u0002\u12a1\u126c\u0003", + "\u0002\u0002\u0002\u12a1\u126d\u0003\u0002\u0002\u0002\u12a1\u1271\u0003", + "\u0002\u0002\u0002\u12a1\u1272\u0003\u0002\u0002\u0002\u12a1\u1273\u0003", + "\u0002\u0002\u0002\u12a1\u1274\u0003\u0002\u0002\u0002\u12a1\u1276\u0003", + "\u0002\u0002\u0002\u12a1\u1277\u0003\u0002\u0002\u0002\u12a1\u1278\u0003", + "\u0002\u0002\u0002\u12a1\u127a\u0003\u0002\u0002\u0002\u12a1\u127b\u0003", + "\u0002\u0002\u0002\u12a1\u127c\u0003\u0002\u0002\u0002\u12a1\u127d\u0003", + "\u0002\u0002\u0002\u12a1\u127e\u0003\u0002\u0002\u0002\u12a1\u1280\u0003", + "\u0002\u0002\u0002\u12a1\u1281\u0003\u0002\u0002\u0002\u12a1\u1283\u0003", + "\u0002\u0002\u0002\u12a1\u1284\u0003\u0002\u0002\u0002\u12a1\u1285\u0003", + "\u0002\u0002\u0002\u12a1\u1286\u0003\u0002\u0002\u0002\u12a1\u1287\u0003", + "\u0002\u0002\u0002\u12a1\u1288\u0003\u0002\u0002\u0002\u12a1\u1289\u0003", + "\u0002\u0002\u0002\u12a1\u128a\u0003\u0002\u0002\u0002\u12a1\u128b\u0003", + "\u0002\u0002\u0002\u12a1\u128c\u0003\u0002\u0002\u0002\u12a1\u128d\u0003", + "\u0002\u0002\u0002\u12a1\u128e\u0003\u0002\u0002\u0002\u12a1\u128f\u0003", + "\u0002\u0002\u0002\u12a1\u1290\u0003\u0002\u0002\u0002\u12a1\u1291\u0003", + "\u0002\u0002\u0002\u12a1\u1292\u0003\u0002\u0002\u0002\u12a1\u1293\u0003", + "\u0002\u0002\u0002\u12a1\u1294\u0003\u0002\u0002\u0002\u12a1\u1295\u0003", + "\u0002\u0002\u0002\u12a1\u1296\u0003\u0002\u0002\u0002\u12a1\u1297\u0003", + "\u0002\u0002\u0002\u12a1\u1298\u0003\u0002\u0002\u0002\u12a1\u1299\u0003", + "\u0002\u0002\u0002\u12a1\u129a\u0003\u0002\u0002\u0002\u12a1\u129b\u0003", + "\u0002\u0002\u0002\u12a1\u129c\u0003\u0002\u0002\u0002\u12a1\u129d\u0003", + "\u0002\u0002\u0002\u12a1\u129e\u0003\u0002\u0002\u0002\u12a1\u129f\u0003", + "\u0002\u0002\u0002\u12a1\u12a0\u0003\u0002\u0002\u0002\u12a2\u01a1\u0003", + "\u0002\u0002\u0002\u12a3\u12b4\u0007\u03ed\u0002\u0002\u12a4\u12a5\u0007", + "\u03ed\u0002\u0002\u12a5\u12a6\u0007\u03fd\u0002\u0002\u12a6\u12b4\u0007", + "\u03ed\u0002\u0002\u12a7\u12a8\u0005\u020c\u0107\u0002\u12a8\u12a9\u0007", + "\u03fd\u0002\u0002\u12a9\u12aa\u0007\u03ed\u0002\u0002\u12aa\u12b4\u0003", + "\u0002\u0002\u0002\u12ab\u12ac\u0005\u020c\u0107\u0002\u12ac\u12ad\u0007", + "\u03fd\u0002\u0002\u12ad\u12ae\u0005\u020c\u0107\u0002\u12ae\u12b4\u0003", + "\u0002\u0002\u0002\u12af\u12b0\u0005\u020c\u0107\u0002\u12b0\u12b1\u0005", + "\u0210\u0109\u0002\u12b1\u12b4\u0003\u0002\u0002\u0002\u12b2\u12b4\u0005", + "\u020c\u0107\u0002\u12b3\u12a3\u0003\u0002\u0002\u0002\u12b3\u12a4\u0003", + "\u0002\u0002\u0002\u12b3\u12a7\u0003\u0002\u0002\u0002\u12b3\u12ab\u0003", + "\u0002\u0002\u0002\u12b3\u12af\u0003\u0002\u0002\u0002\u12b3\u12b2\u0003", + "\u0002\u0002\u0002\u12b4\u01a3\u0003\u0002\u0002\u0002\u12b5\u12b6\u0005", + "\u01fa\u00fe\u0002\u12b6\u12b7\u0007\u009f\u0002\u0002\u12b7\u12b8\u0005", + "\u01fa\u00fe\u0002\u12b8\u01a5\u0003\u0002\u0002\u0002\u12b9\u12bb\u0007", + "\u000b\u0002\u0002\u12ba\u12bc\tA\u0002\u0002\u12bb\u12ba\u0003\u0002", + "\u0002\u0002\u12bb\u12bc\u0003\u0002\u0002\u0002\u12bc\u12bd\u0003\u0002", + "\u0002\u0002\u12bd\u12be\u0007\u009c\u0002\u0002\u12be\u12bf\u0005\u022e", + "\u0118\u0002\u12bf\u01a7\u0003\u0002\u0002\u0002\u12c0\u12c1\u0007\u0019", + "\u0002\u0002\u12c1\u12c2\u0007\u009c\u0002\u0002\u12c2\u12c6\u0005\u022e", + "\u0118\u0002\u12c3\u12c5\u0005\u01b0\u00d9\u0002\u12c4\u12c3\u0003\u0002", + "\u0002\u0002\u12c5\u12c8\u0003\u0002\u0002\u0002\u12c6\u12c4\u0003\u0002", + "\u0002\u0002\u12c6\u12c7\u0003\u0002\u0002\u0002\u12c7\u01a9\u0003\u0002", + "\u0002\u0002\u12c8\u12c6\u0003\u0002\u0002\u0002\u12c9\u12ca\u0007\u0128", + "\u0002\u0002\u12ca\u12cb\u0007\u009c\u0002\u0002\u12cb\u12cd\u0005\u022e", + "\u0118\u0002\u12cc\u12ce\tB\u0002\u0002\u12cd\u12cc\u0003\u0002\u0002", + "\u0002\u12cd\u12ce\u0003\u0002\u0002\u0002\u12ce\u01ab\u0003\u0002\u0002", + "\u0002\u12cf\u12d1\u0007m\u0002\u0002\u12d0\u12d2\tA\u0002\u0002\u12d1", + "\u12d0\u0003\u0002\u0002\u0002\u12d1\u12d2\u0003\u0002\u0002\u0002\u12d2", + "\u12d3\u0003\u0002\u0002\u0002\u12d3\u12d4\u0007\u009c\u0002\u0002\u12d4", + "\u12d5\u0005\u022e\u0118\u0002\u12d5\u01ad\u0003\u0002\u0002\u0002\u12d6", + "\u12d8\u0007\u01f0\u0002\u0002\u12d7\u12d9\tA\u0002\u0002\u12d8\u12d7", + "\u0003\u0002\u0002\u0002\u12d8\u12d9\u0003\u0002\u0002\u0002\u12d9\u12da", + "\u0003\u0002\u0002\u0002\u12da\u12db\u0007\u009c\u0002\u0002\u12db\u12dd", + "\u0005\u022e\u0118\u0002\u12dc\u12de\u0007\u01e5\u0002\u0002\u12dd\u12dc", + "\u0003\u0002\u0002\u0002\u12dd\u12de\u0003\u0002\u0002\u0002\u12de\u12e0", + "\u0003\u0002\u0002\u0002\u12df\u12e1\u0007\u0165\u0002\u0002\u12e0\u12df", + "\u0003\u0002\u0002\u0002\u12e0\u12e1\u0003\u0002\u0002\u0002\u12e1\u12e3", + "\u0003\u0002\u0002\u0002\u12e2\u12e4\u0007\u023f\u0002\u0002\u12e3\u12e2", + "\u0003\u0002\u0002\u0002\u12e3\u12e4\u0003\u0002\u0002\u0002\u12e4\u01af", + "\u0003\u0002\u0002\u0002\u12e5\u12e6\u0007<\u0002\u0002\u12e6\u12ed", + "\u0007\u023d\u0002\u0002\u12e7\u12ed\u0007\u01e5\u0002\u0002\u12e8\u12ed", + "\u0007\u0167\u0002\u0002\u12e9\u12ed\u0007\u01b2\u0002\u0002\u12ea\u12ed", + "\u0007\u0165\u0002\u0002\u12eb\u12ed\u0007\u0126\u0002\u0002\u12ec\u12e5", + "\u0003\u0002\u0002\u0002\u12ec\u12e7\u0003\u0002\u0002\u0002\u12ec\u12e8", + "\u0003\u0002\u0002\u0002\u12ec\u12e9\u0003\u0002\u0002\u0002\u12ec\u12ea", + "\u0003\u0002\u0002\u0002\u12ec\u12eb\u0003\u0002\u0002\u0002\u12ed\u01b1", + "\u0003\u0002\u0002\u0002\u12ee\u12f0\u0007 \u0002\u0002\u12ef\u12f1", + "\u0007\u0113\u0002\u0002\u12f0\u12ef\u0003\u0002\u0002\u0002\u12f0\u12f1", + "\u0003\u0002\u0002\u0002\u12f1\u12f2\u0003\u0002\u0002\u0002\u12f2\u12f3", + "\u0007\u0172\u0002\u0002\u12f3\u12f4\u0005\u020c\u0107\u0002\u12f4\u12f5", + "\u0007\u01fc\u0002\u0002\u12f5\u12f6\tC\u0002\u0002\u12f6\u12f7\u0007", + "\u0212\u0002\u0002\u12f7\u12f8\u0007\u040d\u0002\u0002\u12f8\u01b3\u0003", + "\u0002\u0002\u0002\u12f9\u12fa\u0007\u0183\u0002\u0002\u12fa\u12fb\u0007", + "\u01d8\u0002\u0002\u12fb\u12fc\u0005\u020c\u0107\u0002\u12fc\u12fd\u0007", + "\u0212\u0002\u0002\u12fd\u12fe\u0007\u040d\u0002\u0002\u12fe\u01b5\u0003", + "\u0002\u0002\u0002\u12ff\u1300\u0007\u023a\u0002\u0002\u1300\u1301\u0007", + "\u01d8\u0002\u0002\u1301\u1302\u0005\u020c\u0107\u0002\u1302\u01b7\u0003", + "\u0002\u0002\u0002\u1303\u1304\u0007\u008c\u0002\u0002\u1304\u1305\u0005", + "\u01bc\u00df\u0002\u1305\u1306\tD\u0002\u0002\u1306\u130e\u0005\u025a", + "\u012e\u0002\u1307\u1308\u0007\u0400\u0002\u0002\u1308\u1309\u0005\u01bc", + "\u00df\u0002\u1309\u130a\tD\u0002\u0002\u130a\u130b\u0005\u025a\u012e", + "\u0002\u130b\u130d\u0003\u0002\u0002\u0002\u130c\u1307\u0003\u0002\u0002", + "\u0002\u130d\u1310\u0003\u0002\u0002\u0002\u130e\u130c\u0003\u0002\u0002", + "\u0002\u130e\u130f\u0003\u0002\u0002\u0002\u130f\u1337\u0003\u0002\u0002", + "\u0002\u1310\u130e\u0003\u0002\u0002\u0002\u1311\u1315\u0007\u008c\u0002", + "\u0002\u1312\u1313\u0007\u0018\u0002\u0002\u1313\u1316\u0007\u008c\u0002", + "\u0002\u1314\u1316\u0007\u02dd\u0002\u0002\u1315\u1312\u0003\u0002\u0002", + "\u0002\u1315\u1314\u0003\u0002\u0002\u0002\u1316\u1319\u0003\u0002\u0002", + "\u0002\u1317\u131a\u0005\u01fe\u0100\u0002\u1318\u131a\u0007(\u0002", + "\u0002\u1319\u1317\u0003\u0002\u0002\u0002\u1319\u1318\u0003\u0002\u0002", + "\u0002\u131a\u1337\u0003\u0002\u0002\u0002\u131b\u131c\u0007\u008c\u0002", + "\u0002\u131c\u1323\u0007\u01be\u0002\u0002\u131d\u1320\u0005\u01fe\u0100", + "\u0002\u131e\u131f\u0007\u001a\u0002\u0002\u131f\u1321\u0005\u0200\u0101", + "\u0002\u1320\u131e\u0003\u0002\u0002\u0002\u1320\u1321\u0003\u0002\u0002", + "\u0002\u1321\u1324\u0003\u0002\u0002\u0002\u1322\u1324\u0007(\u0002", + "\u0002\u1323\u131d\u0003\u0002\u0002\u0002\u1323\u1322\u0003\u0002\u0002", + "\u0002\u1324\u1337\u0003\u0002\u0002\u0002\u1325\u1337\u0005\u0190\u00c9", + "\u0002\u1326\u1337\u0005\u0114\u008b\u0002\u1327\u1337\u0005\u0112\u008a", + "\u0002\u1328\u1329\u0007\u008c\u0002\u0002\u1329\u132a\u0005\u01f2\u00fa", + "\u0002\u132a\u132b\tD\u0002\u0002\u132b\u1333\u0005\u025a\u012e\u0002", + "\u132c\u132d\u0007\u0400\u0002\u0002\u132d\u132e\u0005\u01f2\u00fa\u0002", + "\u132e\u132f\tD\u0002\u0002\u132f\u1330\u0005\u025a\u012e\u0002\u1330", + "\u1332\u0003\u0002\u0002\u0002\u1331\u132c\u0003\u0002\u0002\u0002\u1332", + "\u1335\u0003\u0002\u0002\u0002\u1333\u1331\u0003\u0002\u0002\u0002\u1333", + "\u1334\u0003\u0002\u0002\u0002\u1334\u1337\u0003\u0002\u0002\u0002\u1335", + "\u1333\u0003\u0002\u0002\u0002\u1336\u1303\u0003\u0002\u0002\u0002\u1336", + "\u1311\u0003\u0002\u0002\u0002\u1336\u131b\u0003\u0002\u0002\u0002\u1336", + "\u1325\u0003\u0002\u0002\u0002\u1336\u1326\u0003\u0002\u0002\u0002\u1336", + "\u1327\u0003\u0002\u0002\u0002\u1336\u1328\u0003\u0002\u0002\u0002\u1337", + "\u01b9\u0003\u0002\u0002\u0002\u1338\u1339\u0007\u008e\u0002\u0002\u1339", + "\u133a\t3\u0002\u0002\u133a\u13d0\u0007\u0196\u0002\u0002\u133b\u133c", + "\u0007\u008e\u0002\u0002\u133c\u133d\tE\u0002\u0002\u133d\u1340\u0007", + "\u015f\u0002\u0002\u133e\u133f\u0007I\u0002\u0002\u133f\u1341\u0007", + "\u040d\u0002\u0002\u1340\u133e\u0003\u0002\u0002\u0002\u1340\u1341\u0003", + "\u0002\u0002\u0002\u1341\u1344\u0003\u0002\u0002\u0002\u1342\u1343\u0007", + "?\u0002\u0002\u1343\u1345\u0005\u0212\u010a\u0002\u1344\u1342\u0003", + "\u0002\u0002\u0002\u1344\u1345\u0003\u0002\u0002\u0002\u1345\u134d\u0003", + "\u0002\u0002\u0002\u1346\u134a\u0007[\u0002\u0002\u1347\u1348\u0005", + "\u0212\u010a\u0002\u1348\u1349\u0007\u0400\u0002\u0002\u1349\u134b\u0003", + "\u0002\u0002\u0002\u134a\u1347\u0003\u0002\u0002\u0002\u134a\u134b\u0003", + "\u0002\u0002\u0002\u134b\u134c\u0003\u0002\u0002\u0002\u134c\u134e\u0005", + "\u0212\u010a\u0002\u134d\u1346\u0003\u0002\u0002\u0002\u134d\u134e\u0003", + "\u0002\u0002\u0002\u134e\u13d0\u0003\u0002\u0002\u0002\u134f\u1350\u0007", + "\u008e\u0002\u0002\u1350\u1352\u0005\u01be\u00e0\u0002\u1351\u1353\u0005", + "\u01c0\u00e1\u0002\u1352\u1351\u0003\u0002\u0002\u0002\u1352\u1353\u0003", + "\u0002\u0002\u0002\u1353\u13d0\u0003\u0002\u0002\u0002\u1354\u1356\u0007", + "\u008e\u0002\u0002\u1355\u1357\u0007\u0171\u0002\u0002\u1356\u1355\u0003", + "\u0002\u0002\u0002\u1356\u1357\u0003\u0002\u0002\u0002\u1357\u1358\u0003", + "\u0002\u0002\u0002\u1358\u1359\t%\u0002\u0002\u1359\u135a\tF\u0002\u0002", + "\u135a\u135d\u0005\u01f4\u00fb\u0002\u135b\u135c\tF\u0002\u0002\u135c", + "\u135e\u0005\u020c\u0107\u0002\u135d\u135b\u0003\u0002\u0002\u0002\u135d", + "\u135e\u0003\u0002\u0002\u0002\u135e\u1360\u0003\u0002\u0002\u0002\u135f", + "\u1361\u0005\u01c0\u00e1\u0002\u1360\u135f\u0003\u0002\u0002\u0002\u1360", + "\u1361\u0003\u0002\u0002\u0002\u1361\u13d0\u0003\u0002\u0002\u0002\u1362", + "\u1363\u0007\u008e\u0002\u0002\u1363\u1364\u0007 \u0002\u0002\u1364", + "\u1366\t\u0002\u0002\u0002\u1365\u1367\u0005\u0244\u0123\u0002\u1366", + "\u1365\u0003\u0002\u0002\u0002\u1366\u1367\u0003\u0002\u0002\u0002\u1367", + "\u1368\u0003\u0002\u0002\u0002\u1368\u13d0\u0005\u020c\u0107\u0002\u1369", + "\u136a\u0007\u008e\u0002\u0002\u136a\u136b\u0007 \u0002\u0002\u136b", + "\u136c\tG\u0002\u0002\u136c\u13d0\u0005\u01f2\u00fa\u0002\u136d\u136e", + "\u0007\u008e\u0002\u0002\u136e\u136f\u0007 \u0002\u0002\u136f\u1370", + "\u0007\u023e\u0002\u0002\u1370\u13d0\u0005\u01fa\u00fe\u0002\u1371\u1372", + "\u0007\u008e\u0002\u0002\u1372\u1373\u0007\u0158\u0002\u0002\u1373\u1374", + "\u0005\u0202\u0102\u0002\u1374\u1375\tH\u0002\u0002\u1375\u13d0\u0003", + "\u0002\u0002\u0002\u1376\u1377\u0007\u008e\u0002\u0002\u1377\u13d0\u0005", + "\u01c2\u00e2\u0002\u1378\u1379\u0007\u008e\u0002\u0002\u1379\u137a\t", + "I\u0002\u0002\u137a\u137e\u0007[\u0002\u0002\u137b\u137c\u0005\u0212", + "\u010a\u0002\u137c\u137d\u0007\u0400\u0002\u0002\u137d\u137f\u0003\u0002", + "\u0002\u0002\u137e\u137b\u0003\u0002\u0002\u0002\u137e\u137f\u0003\u0002", + "\u0002\u0002\u137f\u1380\u0003\u0002\u0002\u0002\u1380\u13d0\u0005\u0212", + "\u010a\u0002\u1381\u1382\u0007\u008e\u0002\u0002\u1382\u1383\u0007\u00f1", + "\u0002\u0002\u1383\u1384\u0007\u03fe\u0002\u0002\u1384\u1385\u0007\u03ed", + "\u0002\u0002\u1385\u1386\u0007\u03ff\u0002\u0002\u1386\u13d0\tI\u0002", + "\u0002\u1387\u1388\u0007\u008e\u0002\u0002\u1388\u138b\u0005\u01c4\u00e3", + "\u0002\u1389\u138a\tF\u0002\u0002\u138a\u138c\u0005\u020c\u0107\u0002", + "\u138b\u1389\u0003\u0002\u0002\u0002\u138b\u138c\u0003\u0002\u0002\u0002", + "\u138c\u138e\u0003\u0002\u0002\u0002\u138d\u138f\u0005\u01c0\u00e1\u0002", + "\u138e\u138d\u0003\u0002\u0002\u0002\u138e\u138f\u0003\u0002\u0002\u0002", + "\u138f\u13d0\u0003\u0002\u0002\u0002\u1390\u1391\u0007\u008e\u0002\u0002", + "\u1391\u1392\tJ\u0002\u0002\u1392\u1393\u0007\u012f\u0002\u0002\u1393", + "\u13d0\u0005\u01f2\u00fa\u0002\u1394\u1395\u0007\u008e\u0002\u0002\u1395", + "\u1398\u0007\u0175\u0002\u0002\u1396\u1397\u0007<\u0002\u0002\u1397", + "\u1399\u0005\u01fa\u00fe\u0002\u1398\u1396\u0003\u0002\u0002\u0002\u1398", + "\u1399\u0003\u0002\u0002\u0002\u1399\u13d0\u0003\u0002\u0002\u0002\u139a", + "\u139b\u0007\u008e\u0002\u0002\u139b\u139c\tK\u0002\u0002\u139c\u139d", + "\tF\u0002\u0002\u139d\u13a0\u0005\u01f4\u00fb\u0002\u139e\u139f\tF\u0002", + "\u0002\u139f\u13a1\u0005\u020c\u0107\u0002\u13a0\u139e\u0003\u0002\u0002", + "\u0002\u13a0\u13a1\u0003\u0002\u0002\u0002\u13a1\u13a4\u0003\u0002\u0002", + "\u0002\u13a2\u13a3\u0007\u00ae\u0002\u0002\u13a3\u13a5\u0005\u025a\u012e", + "\u0002\u13a4\u13a2\u0003\u0002\u0002\u0002\u13a4\u13a5\u0003\u0002\u0002", + "\u0002\u13a5\u13d0\u0003\u0002\u0002\u0002\u13a6\u13a7\u0007\u008e\u0002", + "\u0002\u13a7\u13a8\u0007\u01cc\u0002\u0002\u13a8\u13ab\u0007\u025c\u0002", + "\u0002\u13a9\u13aa\tF\u0002\u0002\u13aa\u13ac\u0005\u020c\u0107\u0002", + "\u13ab\u13a9\u0003\u0002\u0002\u0002\u13ab\u13ac\u0003\u0002\u0002\u0002", + "\u13ac\u13ae\u0003\u0002\u0002\u0002\u13ad\u13af\u0005\u01c0\u00e1\u0002", + "\u13ae\u13ad\u0003\u0002\u0002\u0002\u13ae\u13af\u0003\u0002\u0002\u0002", + "\u13af\u13d0\u0003\u0002\u0002\u0002\u13b0\u13b1\u0007\u008e\u0002\u0002", + "\u13b1\u13b2\u0007\u01e1\u0002\u0002\u13b2\u13b7\u0005\u01c6\u00e4\u0002", + "\u13b3\u13b4\u0007\u0400\u0002\u0002\u13b4\u13b6\u0005\u01c6\u00e4\u0002", + "\u13b5\u13b3\u0003\u0002\u0002\u0002\u13b6\u13b9\u0003\u0002\u0002\u0002", + "\u13b7\u13b5\u0003\u0002\u0002\u0002\u13b7\u13b8\u0003\u0002\u0002\u0002", + "\u13b8\u13bd\u0003\u0002\u0002\u0002\u13b9\u13b7\u0003\u0002\u0002\u0002", + "\u13ba\u13bb\u0007<\u0002\u0002\u13bb\u13bc\u0007\u01e4\u0002\u0002", + "\u13bc\u13be\u0005\u0212\u010a\u0002\u13bd\u13ba\u0003\u0002\u0002\u0002", + "\u13bd\u13be\u0003\u0002\u0002\u0002\u13be\u13bf\u0003\u0002\u0002\u0002", + "\u13bf\u13c3\u0007[\u0002\u0002\u13c0\u13c1\u0005\u0212\u010a\u0002", + "\u13c1\u13c2\u0007\u0400\u0002\u0002\u13c2\u13c4\u0003\u0002\u0002\u0002", + "\u13c3\u13c0\u0003\u0002\u0002\u0002\u13c3\u13c4\u0003\u0002\u0002\u0002", + "\u13c4\u13c5\u0003\u0002\u0002\u0002\u13c5\u13c6\u0005\u0212\u010a\u0002", + "\u13c6\u13d0\u0003\u0002\u0002\u0002\u13c7\u13c8\u0007\u008e\u0002\u0002", + "\u13c8\u13c9\u0007\u020d\u0002\u0002\u13c9\u13cd\u0007\u0221\u0002\u0002", + "\u13ca\u13cb\u0007<\u0002\u0002\u13cb\u13cc\u0007\u0127\u0002\u0002", + "\u13cc\u13ce\u0007\u040d\u0002\u0002\u13cd\u13ca\u0003\u0002\u0002\u0002", + "\u13cd\u13ce\u0003\u0002\u0002\u0002\u13ce\u13d0\u0003\u0002\u0002\u0002", + "\u13cf\u1338\u0003\u0002\u0002\u0002\u13cf\u133b\u0003\u0002\u0002\u0002", + "\u13cf\u134f\u0003\u0002\u0002\u0002\u13cf\u1354\u0003\u0002\u0002\u0002", + "\u13cf\u1362\u0003\u0002\u0002\u0002\u13cf\u1369\u0003\u0002\u0002\u0002", + "\u13cf\u136d\u0003\u0002\u0002\u0002\u13cf\u1371\u0003\u0002\u0002\u0002", + "\u13cf\u1376\u0003\u0002\u0002\u0002\u13cf\u1378\u0003\u0002\u0002\u0002", + "\u13cf\u1381\u0003\u0002\u0002\u0002\u13cf\u1387\u0003\u0002\u0002\u0002", + "\u13cf\u1390\u0003\u0002\u0002\u0002\u13cf\u1394\u0003\u0002\u0002\u0002", + "\u13cf\u139a\u0003\u0002\u0002\u0002\u13cf\u13a6\u0003\u0002\u0002\u0002", + "\u13cf\u13b0\u0003\u0002\u0002\u0002\u13cf\u13c7\u0003\u0002\u0002\u0002", + "\u13d0\u01bb\u0003\u0002\u0002\u0002\u13d1\u13dc\u0007\u0418\u0002\u0002", + "\u13d2\u13dc\u0007\u0419\u0002\u0002\u13d3\u13d4\u0007\u0402\u0002\u0002", + "\u13d4\u13d6\u0007\u0402\u0002\u0002\u13d5\u13d3\u0003\u0002\u0002\u0002", + "\u13d5\u13d6\u0003\u0002\u0002\u0002\u13d6\u13d7\u0003\u0002\u0002\u0002", + "\u13d7\u13d9\tL\u0002\u0002\u13d8\u13d5\u0003\u0002\u0002\u0002\u13d8", + "\u13d9\u0003\u0002\u0002\u0002\u13d9\u13da\u0003\u0002\u0002\u0002\u13da", + "\u13dc\u0005\u020c\u0107\u0002\u13db\u13d1\u0003\u0002\u0002\u0002\u13db", + "\u13d2\u0003\u0002\u0002\u0002\u13db\u13d8\u0003\u0002\u0002\u0002\u13dc", + "\u01bd\u0003\u0002\u0002\u0002\u13dd\u13de\u0007\u0018\u0002\u0002\u13de", + "\u13eb\u0007\u008c\u0002\u0002\u13df\u13eb\u0007\u02e0\u0002\u0002\u13e0", + "\u13eb\u0007&\u0002\u0002\u13e1\u13eb\u0007\u008a\u0002\u0002\u13e2", + "\u13e3\u0007\u0172\u0002\u0002\u13e3\u13eb\u0007\u0221\u0002\u0002\u13e4", + "\u13e5\u0007w\u0002\u0002\u13e5\u13eb\u0007\u0221\u0002\u0002\u13e6", + "\u13e8\t2\u0002\u0002\u13e7\u13e6\u0003\u0002\u0002\u0002\u13e7\u13e8", + "\u0003\u0002\u0002\u0002\u13e8\u13e9\u0003\u0002\u0002\u0002\u13e9\u13eb", + "\tM\u0002\u0002\u13ea\u13dd\u0003\u0002\u0002\u0002\u13ea\u13df\u0003", + "\u0002\u0002\u0002\u13ea\u13e0\u0003\u0002\u0002\u0002\u13ea\u13e1\u0003", + "\u0002\u0002\u0002\u13ea\u13e2\u0003\u0002\u0002\u0002\u13ea\u13e4\u0003", + "\u0002\u0002\u0002\u13ea\u13e7\u0003\u0002\u0002\u0002\u13eb\u01bf\u0003", + "\u0002\u0002\u0002\u13ec\u13ed\u0007Z\u0002\u0002\u13ed\u13f1\u0007", + "\u040d\u0002\u0002\u13ee\u13ef\u0007\u00ae\u0002\u0002\u13ef\u13f1\u0005", + "\u025a\u012e\u0002\u13f0\u13ec\u0003\u0002\u0002\u0002\u13f0\u13ee\u0003", + "\u0002\u0002\u0002\u13f1\u01c1\u0003\u0002\u0002\u0002\u13f2\u13f4\u0007", + "\u0223\u0002\u0002\u13f3\u13f2\u0003\u0002\u0002\u0002\u13f3\u13f4\u0003", + "\u0002\u0002\u0002\u13f4\u13f5\u0003\u0002\u0002\u0002\u13f5\u1404\u0007", + "\u0159\u0002\u0002\u13f6\u13f7\u0007\u0197\u0002\u0002\u13f7\u1404\u0007", + "\u0221\u0002\u0002\u13f8\u1404\u0007\u01da\u0002\u0002\u13f9\u1404\u0007", + "\u0264\u0002\u0002\u13fa\u13fc\u0007\u0171\u0002\u0002\u13fb\u13fa\u0003", + "\u0002\u0002\u0002\u13fb\u13fc\u0003\u0002\u0002\u0002\u13fc\u13fd\u0003", + "\u0002\u0002\u0002\u13fd\u1404\u0007\u01e0\u0002\u0002\u13fe\u1404\u0007", + "\u01e2\u0002\u0002\u13ff\u1400\u0007\u020d\u0002\u0002\u1400\u1404\u0007", + "\u017b\u0002\u0002\u1401\u1404\u0007\u0117\u0002\u0002\u1402\u1404\u0007", + "\u0141\u0002\u0002\u1403\u13f3\u0003\u0002\u0002\u0002\u1403\u13f6\u0003", + "\u0002\u0002\u0002\u1403\u13f8\u0003\u0002\u0002\u0002\u1403\u13f9\u0003", + "\u0002\u0002\u0002\u1403\u13fb\u0003\u0002\u0002\u0002\u1403\u13fe\u0003", + "\u0002\u0002\u0002\u1403\u13ff\u0003\u0002\u0002\u0002\u1403\u1401\u0003", + "\u0002\u0002\u0002\u1403\u1402\u0003\u0002\u0002\u0002\u1404\u01c3\u0003", + "\u0002\u0002\u0002\u1405\u140e\u0007\u015f\u0002\u0002\u1406\u1407\u0007", + "\u009c\u0002\u0002\u1407\u140e\u0007\u0221\u0002\u0002\u1408\u140a\u0007", + "\u0171\u0002\u0002\u1409\u1408\u0003\u0002\u0002\u0002\u1409\u140a\u0003", + "\u0002\u0002\u0002\u140a\u140b\u0003\u0002\u0002\u0002\u140b\u140e\u0007", + "\u025c\u0002\u0002\u140c\u140e\u0007\u0235\u0002\u0002\u140d\u1405\u0003", + "\u0002\u0002\u0002\u140d\u1406\u0003\u0002\u0002\u0002\u140d\u1409\u0003", + "\u0002\u0002\u0002\u140d\u140c\u0003\u0002\u0002\u0002\u140e\u01c5\u0003", + "\u0002\u0002\u0002\u140f\u141c\u0007\b\u0002\u0002\u1410\u1411\u0007", + "\u011f\u0002\u0002\u1411\u141c\u0007\u0187\u0002\u0002\u1412\u1413\u0007", + "\u0140\u0002\u0002\u1413\u141c\u0007\u022c\u0002\u0002\u1414\u141c\u0007", + "\u0143\u0002\u0002\u1415\u141c\u0007\u0189\u0002\u0002\u1416\u141c\u0007", + "\u02ac\u0002\u0002\u1417\u1418\u0007\u01d1\u0002\u0002\u1418\u141c\u0007", + "\u0168\u0002\u0002\u1419\u141c\u0007\u0214\u0002\u0002\u141a\u141c\u0007", + "\u022b\u0002\u0002\u141b\u140f\u0003\u0002\u0002\u0002\u141b\u1410\u0003", + "\u0002\u0002\u0002\u141b\u1412\u0003\u0002\u0002\u0002\u141b\u1414\u0003", + "\u0002\u0002\u0002\u141b\u1415\u0003\u0002\u0002\u0002\u141b\u1416\u0003", + "\u0002\u0002\u0002\u141b\u1417\u0003\u0002\u0002\u0002\u141b\u1419\u0003", + "\u0002\u0002\u0002\u141b\u141a\u0003\u0002\u0002\u0002\u141c\u01c7\u0003", + "\u0002\u0002\u0002\u141d\u141e\u0007\u011d\u0002\u0002\u141e\u141f\u0007", + "\u040d\u0002\u0002\u141f\u01c9\u0003\u0002\u0002\u0002\u1420\u1421\u0007", + "\u0123\u0002\u0002\u1421\u1422\u0007J\u0002\u0002\u1422\u1427\u0005", + "\u01d6\u00ec\u0002\u1423\u1424\u0007\u0400\u0002\u0002\u1424\u1426\u0005", + "\u01d6\u00ec\u0002\u1425\u1423\u0003\u0002\u0002\u0002\u1426\u1429\u0003", + "\u0002\u0002\u0002\u1427\u1425\u0003\u0002\u0002\u0002\u1427\u1428\u0003", + "\u0002\u0002\u0002\u1428\u1431\u0003\u0002\u0002\u0002\u1429\u1427\u0003", + "\u0002\u0002\u0002\u142a\u142b\u0007u\u0002\u0002\u142b\u142e\u0007", + "\u03fe\u0002\u0002\u142c\u142f\u0005\u022c\u0117\u0002\u142d\u142f\u0007", + "\b\u0002\u0002\u142e\u142c\u0003\u0002\u0002\u0002\u142e\u142d\u0003", + "\u0002\u0002\u0002\u142f\u1430\u0003\u0002\u0002\u0002\u1430\u1432\u0007", + "\u03ff\u0002\u0002\u1431\u142a\u0003\u0002\u0002\u0002\u1431\u1432\u0003", + "\u0002\u0002\u0002\u1432\u1433\u0003\u0002\u0002\u0002\u1433\u1434\u0007", + "I\u0002\u0002\u1434\u1435\u0005\u020c\u0107\u0002\u1435\u01cb\u0003", + "\u0002\u0002\u0002\u1436\u1438\u0007\u016e\u0002\u0002\u1437\u1439\t", + "A\u0002\u0002\u1438\u1437\u0003\u0002\u0002\u0002\u1438\u1439\u0003", + "\u0002\u0002\u0002\u1439\u143a\u0003\u0002\u0002\u0002\u143a\u143f\u0005", + "\u01d8\u00ed\u0002\u143b\u143c\u0007\u0400\u0002\u0002\u143c\u143e\u0005", + "\u01d8\u00ed\u0002\u143d\u143b\u0003\u0002\u0002\u0002\u143e\u1441\u0003", + "\u0002\u0002\u0002\u143f\u143d\u0003\u0002\u0002\u0002\u143f\u1440\u0003", + "\u0002\u0002\u0002\u1440\u01cd\u0003\u0002\u0002\u0002\u1441\u143f\u0003", + "\u0002\u0002\u0002\u1442\u1444\u0007V\u0002\u0002\u1443\u1445\tN\u0002", + "\u0002\u1444\u1443\u0003\u0002\u0002\u0002\u1444\u1445\u0003\u0002\u0002", + "\u0002\u1445\u1447\u0003\u0002\u0002\u0002\u1446\u1448\u0005\u0212\u010a", + "\u0002\u1447\u1446\u0003\u0002\u0002\u0002\u1448\u1449\u0003\u0002\u0002", + "\u0002\u1449\u1447\u0003\u0002\u0002\u0002\u1449\u144a\u0003\u0002\u0002", + "\u0002\u144a\u01cf\u0003\u0002\u0002\u0002\u144b\u144c\u0007^\u0002", + "\u0002\u144c\u144d\u0007J\u0002\u0002\u144d\u144e\u0007P\u0002\u0002", + "\u144e\u144f\u0007\u0123\u0002\u0002\u144f\u1454\u0005\u01dc\u00ef\u0002", + "\u1450\u1451\u0007\u0400\u0002\u0002\u1451\u1453\u0005\u01dc\u00ef\u0002", + "\u1452\u1450\u0003\u0002\u0002\u0002\u1453\u1456\u0003\u0002\u0002\u0002", + "\u1454\u1452\u0003\u0002\u0002\u0002\u1454\u1455\u0003\u0002\u0002\u0002", + "\u1455\u01d1\u0003\u0002\u0002\u0002\u1456\u1454\u0003\u0002\u0002\u0002", + "\u1457\u1458\u0007\u01f9\u0002\u0002\u1458\u1459\u0007\u01e4\u0002\u0002", + "\u1459\u145a\u0007\u0123\u0002\u0002\u145a\u01d3\u0003\u0002\u0002\u0002", + "\u145b\u145c\u0007\u0262\u0002\u0002\u145c\u01d5\u0003\u0002\u0002\u0002", + "\u145d\u1465\u0005\u01f4\u00fb\u0002\u145e\u1460\t\u0014\u0002\u0002", + "\u145f\u145e\u0003\u0002\u0002\u0002\u145f\u1460\u0003\u0002\u0002\u0002", + "\u1460\u1461\u0003\u0002\u0002\u0002\u1461\u1462\u0007\u03fe\u0002\u0002", + "\u1462\u1463\u0005\u022c\u0117\u0002\u1463\u1464\u0007\u03ff\u0002\u0002", + "\u1464\u1466\u0003\u0002\u0002\u0002\u1465\u145f\u0003\u0002\u0002\u0002", + "\u1465\u1466\u0003\u0002\u0002\u0002\u1466\u01d7\u0003\u0002\u0002\u0002", + "\u1467\u147a\u0007\u014b\u0002\u0002\u1468\u147a\u0007\u017b\u0002\u0002", + "\u1469\u146b\tO\u0002\u0002\u146a\u1469\u0003\u0002\u0002\u0002\u146a", + "\u146b\u0003\u0002\u0002\u0002\u146b\u146c\u0003\u0002\u0002\u0002\u146c", + "\u147a\u0007\u0196\u0002\u0002\u146d\u147a\u0007\u01cd\u0002\u0002\u146e", + "\u147a\u0007\u0264\u0002\u0002\u146f\u1470\u0007\u01e4\u0002\u0002\u1470", + "\u147a\u0007\u0123\u0002\u0002\u1471\u147a\u0007\u0221\u0002\u0002\u1472", + "\u147a\u0007\u0240\u0002\u0002\u1473\u1477\u0007\u025c\u0002\u0002\u1474", + "\u1475\u0007\u00b0\u0002\u0002\u1475\u1476\u0007z\u0002\u0002\u1476", + "\u1478\u0007_\u0002\u0002\u1477\u1474\u0003\u0002\u0002\u0002\u1477", + "\u1478\u0003\u0002\u0002\u0002\u1478\u147a\u0003\u0002\u0002\u0002\u1479", + "\u1467\u0003\u0002\u0002\u0002\u1479\u1468\u0003\u0002\u0002\u0002\u1479", + "\u146a\u0003\u0002\u0002\u0002\u1479\u146d\u0003\u0002\u0002\u0002\u1479", + "\u146e\u0003\u0002\u0002\u0002\u1479\u146f\u0003\u0002\u0002\u0002\u1479", + "\u1471\u0003\u0002\u0002\u0002\u1479\u1472\u0003\u0002\u0002\u0002\u1479", + "\u1473\u0003\u0002\u0002\u0002\u147a\u1486\u0003\u0002\u0002\u0002\u147b", + "\u147c\u0007\u01ea\u0002\u0002\u147c\u147e\u0007\u0196\u0002\u0002\u147d", + "\u147f\u0005\u013a\u009e\u0002\u147e\u147d\u0003\u0002\u0002\u0002\u147e", + "\u147f\u0003\u0002\u0002\u0002\u147f\u1486\u0003\u0002\u0002\u0002\u1480", + "\u1481\u0007\u025c\u0002\u0002\u1481\u1483\u0005\u022e\u0118\u0002\u1482", + "\u1484\u0005\u01da\u00ee\u0002\u1483\u1482\u0003\u0002\u0002\u0002\u1483", + "\u1484\u0003\u0002\u0002\u0002\u1484\u1486\u0003\u0002\u0002\u0002\u1485", + "\u1479\u0003\u0002\u0002\u0002\u1485\u147b\u0003\u0002\u0002\u0002\u1485", + "\u1480\u0003\u0002\u0002\u0002\u1486\u01d9\u0003\u0002\u0002\u0002\u1487", + "\u1488\u0007\u00b0\u0002\u0002\u1488\u1489\u0007z\u0002\u0002\u1489", + "\u148d\u0007_\u0002\u0002\u148a\u148b\u0007<\u0002\u0002\u148b\u148d", + "\u0007\u0164\u0002\u0002\u148c\u1487\u0003\u0002\u0002\u0002\u148c\u148a", + "\u0003\u0002\u0002\u0002\u148d\u01db\u0003\u0002\u0002\u0002\u148e\u1496", + "\u0005\u01f4\u00fb\u0002\u148f\u1490\u0007u\u0002\u0002\u1490\u1493", + "\u0007\u03fe\u0002\u0002\u1491\u1494\u0005\u022c\u0117\u0002\u1492\u1494", + "\u0007\b\u0002\u0002\u1493\u1491\u0003\u0002\u0002\u0002\u1493\u1492", + "\u0003\u0002\u0002\u0002\u1494\u1495\u0003\u0002\u0002\u0002\u1495\u1497", + "\u0007\u03ff\u0002\u0002\u1496\u148f\u0003\u0002\u0002\u0002\u1496\u1497", + "\u0003\u0002\u0002\u0002\u1497\u149f\u0003\u0002\u0002\u0002\u1498\u149a", + "\t\u0014\u0002\u0002\u1499\u1498\u0003\u0002\u0002\u0002\u1499\u149a", + "\u0003\u0002\u0002\u0002\u149a\u149b\u0003\u0002\u0002\u0002\u149b\u149c", + "\u0007\u03fe\u0002\u0002\u149c\u149d\u0005\u022c\u0117\u0002\u149d\u149e", + "\u0007\u03ff\u0002\u0002\u149e\u14a0\u0003\u0002\u0002\u0002\u149f\u1499", + "\u0003\u0002\u0002\u0002\u149f\u14a0\u0003\u0002\u0002\u0002\u14a0\u14a3", + "\u0003\u0002\u0002\u0002\u14a1\u14a2\u0007H\u0002\u0002\u14a2\u14a4", + "\u0007\u0190\u0002\u0002\u14a3\u14a1\u0003\u0002\u0002\u0002\u14a3\u14a4", + "\u0003\u0002\u0002\u0002\u14a4\u01dd\u0003\u0002\u0002\u0002\u14a5\u14a6", + "\tP\u0002\u0002\u14a6\u14a9\u0005\u01f4\u00fb\u0002\u14a7\u14aa\u0005", + "\u020c\u0107\u0002\u14a8\u14aa\u0007\u040d\u0002\u0002\u14a9\u14a7\u0003", + "\u0002\u0002\u0002\u14a9\u14a8\u0003\u0002\u0002\u0002\u14a9\u14aa\u0003", + "\u0002\u0002\u0002\u14aa\u01df\u0003\u0002\u0002\u0002\u14ab\u14af\t", + "P\u0002\u0002\u14ac\u14ad\tQ\u0002\u0002\u14ad\u14ae\u0007\u03f5\u0002", + "\u0002\u14ae\u14b0\tR\u0002\u0002\u14af\u14ac\u0003\u0002\u0002\u0002", + "\u14af\u14b0\u0003\u0002\u0002\u0002\u14b0\u14b1\u0003\u0002\u0002\u0002", + "\u14b1\u14b2\u0005\u01f0\u00f9\u0002\u14b2\u01e1\u0003\u0002\u0002\u0002", + "\u14b3\u14b4\u0007\u0179\u0002\u0002\u14b4\u14b5\u0007\u040d\u0002\u0002", + "\u14b5\u01e3\u0003\u0002\u0002\u0002\u14b6\u14b7\u0007\u00aa\u0002\u0002", + "\u14b7\u14b8\u0005\u020c\u0107\u0002\u14b8\u01e5\u0003\u0002\u0002\u0002", + "\u14b9\u14c1\u0007\u008f\u0002\u0002\u14ba\u14bc\u0007\u0093\u0002\u0002", + "\u14bb\u14bd\u0007\u0242\u0002\u0002\u14bc\u14bb\u0003\u0002\u0002\u0002", + "\u14bc\u14bd\u0003\u0002\u0002\u0002\u14bd\u14be\u0003\u0002\u0002\u0002", + "\u14be\u14c2\u0005\u0216\u010c\u0002\u14bf\u14c2\u0007\u0415\u0002\u0002", + "\u14c0\u14c2\u0007\u0416\u0002\u0002\u14c1\u14ba\u0003\u0002\u0002\u0002", + "\u14c1\u14bf\u0003\u0002\u0002\u0002\u14c1\u14c0\u0003\u0002\u0002\u0002", + "\u14c2\u14cc\u0003\u0002\u0002\u0002\u14c3\u14c4\u0007\u008c\u0002\u0002", + "\u14c4\u14c9\u0005\u01ea\u00f6\u0002\u14c5\u14c6\u0007\u0400\u0002\u0002", + "\u14c6\u14c8\u0005\u01ea\u00f6\u0002\u14c7\u14c5\u0003\u0002\u0002\u0002", + "\u14c8\u14cb\u0003\u0002\u0002\u0002\u14c9\u14c7\u0003\u0002\u0002\u0002", + "\u14c9\u14ca\u0003\u0002\u0002\u0002\u14ca\u14cd\u0003\u0002\u0002\u0002", + "\u14cb\u14c9\u0003\u0002\u0002\u0002\u14cc\u14c3\u0003\u0002\u0002\u0002", + "\u14cc\u14cd\u0003\u0002\u0002\u0002\u14cd\u01e7\u0003\u0002\u0002\u0002", + "\u14ce\u14d6\u0007\u0083\u0002\u0002\u14cf\u14d1\u0007\u0093\u0002\u0002", + "\u14d0\u14d2\u0007\u0242\u0002\u0002\u14d1\u14d0\u0003\u0002\u0002\u0002", + "\u14d1\u14d2\u0003\u0002\u0002\u0002\u14d2\u14d3\u0003\u0002\u0002\u0002", + "\u14d3\u14d7\u0005\u0216\u010c\u0002\u14d4\u14d7\u0007\u0415\u0002\u0002", + "\u14d5\u14d7\u0007\u0416\u0002\u0002\u14d6\u14cf\u0003\u0002\u0002\u0002", + "\u14d6\u14d4\u0003\u0002\u0002\u0002\u14d6\u14d5\u0003\u0002\u0002\u0002", + "\u14d6\u14d7\u0003\u0002\u0002\u0002\u14d7\u14e1\u0003\u0002\u0002\u0002", + "\u14d8\u14d9\u0007\u008c\u0002\u0002\u14d9\u14de\u0005\u01ea\u00f6\u0002", + "\u14da\u14db\u0007\u0400\u0002\u0002\u14db\u14dd\u0005\u01ea\u00f6\u0002", + "\u14dc\u14da\u0003\u0002\u0002\u0002\u14dd\u14e0\u0003\u0002\u0002\u0002", + "\u14de\u14dc\u0003\u0002\u0002\u0002\u14de\u14df\u0003\u0002\u0002\u0002", + "\u14df\u14e2\u0003\u0002\u0002\u0002\u14e0\u14de\u0003\u0002\u0002\u0002", + "\u14e1\u14d8\u0003\u0002\u0002\u0002\u14e1\u14e2\u0003\u0002\u0002\u0002", + "\u14e2\u01e9\u0003\u0002\u0002\u0002\u14e3\u14e4\tS\u0002\u0002\u14e4", + "\u14e7\u0007\u03f5\u0002\u0002\u14e5\u14e8\u0005\u0216\u010c\u0002\u14e6", + "\u14e8\u0007\u040e\u0002\u0002\u14e7\u14e5\u0003\u0002\u0002\u0002\u14e7", + "\u14e6\u0003\u0002\u0002\u0002\u14e8\u01eb\u0003\u0002\u0002\u0002\u14e9", + "\u14eb\u0007B\u0002\u0002\u14ea\u14ec\tT\u0002\u0002\u14eb\u14ea\u0003", + "\u0002\u0002\u0002\u14eb\u14ec\u0003\u0002\u0002\u0002\u14ec\u14ed\u0003", + "\u0002\u0002\u0002\u14ed\u150d\u0007.\u0002\u0002\u14ee\u14ef\u0005", + "\u01bc\u00df\u0002\u14ef\u14f0\u0007\u03f5\u0002\u0002\u14f0\u14f8\t", + "U\u0002\u0002\u14f1\u14f2\u0007\u0400\u0002\u0002\u14f2\u14f3\u0005", + "\u01bc\u00df\u0002\u14f3\u14f4\u0007\u03f5\u0002\u0002\u14f4\u14f5\t", + "U\u0002\u0002\u14f5\u14f7\u0003\u0002\u0002\u0002\u14f6\u14f1\u0003", + "\u0002\u0002\u0002\u14f7\u14fa\u0003\u0002\u0002\u0002\u14f8\u14f6\u0003", + "\u0002\u0002\u0002\u14f8\u14f9\u0003\u0002\u0002\u0002\u14f9\u150e\u0003", + "\u0002\u0002\u0002\u14fa\u14f8\u0003\u0002\u0002\u0002\u14fb\u14fe\u0007", + "\u001c\u0002\u0002\u14fc\u14ff\u0005\u0212\u010a\u0002\u14fd\u14ff\u0005", + "\u01bc\u00df\u0002\u14fe\u14fc\u0003\u0002\u0002\u0002\u14fe\u14fd\u0003", + "\u0002\u0002\u0002\u14ff\u1500\u0003\u0002\u0002\u0002\u1500\u1501\u0005", + "\u01bc\u00df\u0002\u1501\u1502\u0007\u03f5\u0002\u0002\u1502\u150a\u0005", + "\u01ee\u00f8\u0002\u1503\u1504\u0007\u0400\u0002\u0002\u1504\u1505\u0005", + "\u01bc\u00df\u0002\u1505\u1506\u0007\u03f5\u0002\u0002\u1506\u1507\u0005", + "\u01ee\u00f8\u0002\u1507\u1509\u0003\u0002\u0002\u0002\u1508\u1503\u0003", + "\u0002\u0002\u0002\u1509\u150c\u0003\u0002\u0002\u0002\u150a\u1508\u0003", + "\u0002\u0002\u0002\u150a\u150b\u0003\u0002\u0002\u0002\u150b\u150e\u0003", + "\u0002\u0002\u0002\u150c\u150a\u0003\u0002\u0002\u0002\u150d\u14ee\u0003", + "\u0002\u0002\u0002\u150d\u14fb\u0003\u0002\u0002\u0002\u150e\u01ed\u0003", + "\u0002\u0002\u0002\u150f\u1510\tV\u0002\u0002\u1510\u01ef\u0003\u0002", + "\u0002\u0002\u1511\u1517\u0005\u00b4[\u0002\u1512\u1517\u0005\u00a6", + "T\u0002\u1513\u1517\u0005\u00acW\u0002\u1514\u1517\u0005\u00b2Z\u0002", + "\u1515\u1517\u0005\u00b6\\\u0002\u1516\u1511\u0003\u0002\u0002\u0002", + "\u1516\u1512\u0003\u0002\u0002\u0002\u1516\u1513\u0003\u0002\u0002\u0002", + "\u1516\u1514\u0003\u0002\u0002\u0002\u1516\u1515\u0003\u0002\u0002\u0002", + "\u1517\u151c\u0003\u0002\u0002\u0002\u1518\u1519\u0007<\u0002\u0002", + "\u1519\u151a\u0007\u013a\u0002\u0002\u151a\u151c\u0005\u020c\u0107\u0002", + "\u151b\u1516\u0003\u0002\u0002\u0002\u151b\u1518\u0003\u0002\u0002\u0002", + "\u151c\u01f1\u0003\u0002\u0002\u0002\u151d\u1521\u0005\u020c\u0107\u0002", + "\u151e\u1522\u0007\u0414\u0002\u0002\u151f\u1520\u0007\u03fd\u0002\u0002", + "\u1520\u1522\u0005\u020c\u0107\u0002\u1521\u151e\u0003\u0002\u0002\u0002", + "\u1521\u151f\u0003\u0002\u0002\u0002\u1521\u1522\u0003\u0002\u0002\u0002", + "\u1522\u01f3\u0003\u0002\u0002\u0002\u1523\u1524\u0005\u01f2\u00fa\u0002", + "\u1524\u01f5\u0003\u0002\u0002\u0002\u1525\u152a\u0005\u020c\u0107\u0002", + "\u1526\u1528\u0005\u0210\u0109\u0002\u1527\u1529\u0005\u0210\u0109\u0002", + "\u1528\u1527\u0003\u0002\u0002\u0002\u1528\u1529\u0003\u0002\u0002\u0002", + "\u1529\u152b\u0003\u0002\u0002\u0002\u152a\u1526\u0003\u0002\u0002\u0002", + "\u152a\u152b\u0003\u0002\u0002\u0002\u152b\u01f7\u0003\u0002\u0002\u0002", + "\u152c\u152f\u0005\u020c\u0107\u0002\u152d\u152f\u0007\u040d\u0002\u0002", + "\u152e\u152c\u0003\u0002\u0002\u0002\u152e\u152d\u0003\u0002\u0002\u0002", + "\u152f\u1534\u0003\u0002\u0002\u0002\u1530\u1531\u0007\u03fe\u0002\u0002", + "\u1531\u1532\u0005\u0212\u010a\u0002\u1532\u1533\u0007\u03ff\u0002\u0002", + "\u1533\u1535\u0003\u0002\u0002\u0002\u1534\u1530\u0003\u0002\u0002\u0002", + "\u1534\u1535\u0003\u0002\u0002\u0002\u1535\u1537\u0003\u0002\u0002\u0002", + "\u1536\u1538\t,\u0002\u0002\u1537\u1536\u0003\u0002\u0002\u0002\u1537", + "\u1538\u0003\u0002\u0002\u0002\u1538\u01f9\u0003\u0002\u0002\u0002\u1539", + "\u153a\tW\u0002\u0002\u153a\u01fb\u0003\u0002\u0002\u0002\u153b\u153c", + "\tX\u0002\u0002\u153c\u01fd\u0003\u0002\u0002\u0002\u153d\u1542\u0007", + "\u00d2\u0002\u0002\u153e\u1542\u0005\u026a\u0136\u0002\u153f\u1542\u0007", + "\u040d\u0002\u0002\u1540\u1542\u0007\u040a\u0002\u0002\u1541\u153d\u0003", + "\u0002\u0002\u0002\u1541\u153e\u0003\u0002\u0002\u0002\u1541\u153f\u0003", + "\u0002\u0002\u0002\u1541\u1540\u0003\u0002\u0002\u0002\u1542\u01ff\u0003", + "\u0002\u0002\u0002\u1543\u1546\u0005\u020c\u0107\u0002\u1544\u1546\u0007", + "\u040d\u0002\u0002\u1545\u1543\u0003\u0002\u0002\u0002\u1545\u1544\u0003", + "\u0002\u0002\u0002\u1546\u0201\u0003\u0002\u0002\u0002\u1547\u1548\t", + "Y\u0002\u0002\u1548\u0203\u0003\u0002\u0002\u0002\u1549\u154a\u0005", + "\u0212\u010a\u0002\u154a\u154b\u0007\u03f2\u0002\u0002\u154b\u154c\u0005", + "\u0212\u010a\u0002\u154c\u154d\u0007\u03f2\u0002\u0002\u154d\u154e\u0005", + "\u0212\u010a\u0002\u154e\u154f\u0007\u03f2\u0002\u0002\u154f\u1550\u0005", + "\u0212\u010a\u0002\u1550\u1551\u0007\u03f2\u0002\u0002\u1551\u1557\u0005", + "\u0212\u010a\u0002\u1552\u1553\u0007\u0409\u0002\u0002\u1553\u1554\u0005", + "\u0212\u010a\u0002\u1554\u1555\u0007\u03f2\u0002\u0002\u1555\u1556\u0005", + "\u0212\u010a\u0002\u1556\u1558\u0003\u0002\u0002\u0002\u1557\u1552\u0003", + "\u0002\u0002\u0002\u1558\u1559\u0003\u0002\u0002\u0002\u1559\u1557\u0003", + "\u0002\u0002\u0002\u1559\u155a\u0003\u0002\u0002\u0002\u155a\u0205\u0003", + "\u0002\u0002\u0002\u155b\u1562\u0005\u0208\u0105\u0002\u155c\u155d\u0007", + "\u0400\u0002\u0002\u155d\u1560\u0005\u0208\u0105\u0002\u155e\u155f\u0007", + "\u0400\u0002\u0002\u155f\u1561\u0005\u0212\u010a\u0002\u1560\u155e\u0003", + "\u0002\u0002\u0002\u1560\u1561\u0003\u0002\u0002\u0002\u1561\u1563\u0003", + "\u0002\u0002\u0002\u1562\u155c\u0003\u0002\u0002\u0002\u1562\u1563\u0003", + "\u0002\u0002\u0002\u1563\u0207\u0003\u0002\u0002\u0002\u1564\u156c\u0007", + "\u040d\u0002\u0002\u1565\u156c\u0007\u0412\u0002\u0002\u1566\u1568\u0007", + "\u040f\u0002\u0002\u1567\u1566\u0003\u0002\u0002\u0002\u1568\u1569\u0003", + "\u0002\u0002\u0002\u1569\u1567\u0003\u0002\u0002\u0002\u1569\u156a\u0003", + "\u0002\u0002\u0002\u156a\u156c\u0003\u0002\u0002\u0002\u156b\u1564\u0003", + "\u0002\u0002\u0002\u156b\u1565\u0003\u0002\u0002\u0002\u156b\u1567\u0003", + "\u0002\u0002\u0002\u156c\u0209\u0003\u0002\u0002\u0002\u156d\u1570\u0005", + "\u020c\u0107\u0002\u156e\u1570\u0007\u040d\u0002\u0002\u156f\u156d\u0003", + "\u0002\u0002\u0002\u156f\u156e\u0003\u0002\u0002\u0002\u1570\u020b\u0003", + "\u0002\u0002\u0002\u1571\u1575\u0005\u020e\u0108\u0002\u1572\u1575\u0007", + "\u0416\u0002\u0002\u1573\u1575\u0007\u040a\u0002\u0002\u1574\u1571\u0003", + "\u0002\u0002\u0002\u1574\u1572\u0003\u0002\u0002\u0002\u1574\u1573\u0003", + "\u0002\u0002\u0002\u1575\u020d\u0003\u0002\u0002\u0002\u1576\u1580\u0007", + "\u0415\u0002\u0002\u1577\u1580\u0005\u026a\u0136\u0002\u1578\u1580\u0005", + "\u026c\u0137\u0002\u1579\u1580\u0005\u0202\u0102\u0002\u157a\u1580\u0005", + "\u026e\u0138\u0002\u157b\u1580\u0005\u0270\u0139\u0002\u157c\u1580\u0005", + "\u0272\u013a\u0002\u157d\u1580\u0005\u0274\u013b\u0002\u157e\u1580\u0005", + "\u0276\u013c\u0002\u157f\u1576\u0003\u0002\u0002\u0002\u157f\u1577\u0003", + "\u0002\u0002\u0002\u157f\u1578\u0003\u0002\u0002\u0002\u157f\u1579\u0003", + "\u0002\u0002\u0002\u157f\u157a\u0003\u0002\u0002\u0002\u157f\u157b\u0003", + "\u0002\u0002\u0002\u157f\u157c\u0003\u0002\u0002\u0002\u157f\u157d\u0003", + "\u0002\u0002\u0002\u157f\u157e\u0003\u0002\u0002\u0002\u1580\u020f\u0003", + "\u0002\u0002\u0002\u1581\u1585\u0007\u0414\u0002\u0002\u1582\u1583\u0007", + "\u03fd\u0002\u0002\u1583\u1585\u0005\u020c\u0107\u0002\u1584\u1581\u0003", + "\u0002\u0002\u0002\u1584\u1582\u0003\u0002\u0002\u0002\u1585\u0211\u0003", + "\u0002\u0002\u0002\u1586\u1587\tZ\u0002\u0002\u1587\u0213\u0003\u0002", + "\u0002\u0002\u1588\u158b\u0007\u040b\u0002\u0002\u1589\u158b\u0005\u0212", + "\u010a\u0002\u158a\u1588\u0003\u0002\u0002\u0002\u158a\u1589\u0003\u0002", + "\u0002\u0002\u158b\u0215\u0003\u0002\u0002\u0002\u158c\u158e\u0007\u0413", + "\u0002\u0002\u158d\u158c\u0003\u0002\u0002\u0002\u158d\u158e\u0003\u0002", + "\u0002\u0002\u158e\u158f\u0003\u0002\u0002\u0002\u158f\u1592\u0007\u040d", + "\u0002\u0002\u1590\u1592\u0007\u040c\u0002\u0002\u1591\u158d\u0003\u0002", + "\u0002\u0002\u1591\u1590\u0003\u0002\u0002\u0002\u1592\u1594\u0003\u0002", + "\u0002\u0002\u1593\u1595\u0007\u040d\u0002\u0002\u1594\u1593\u0003\u0002", + "\u0002\u0002\u1595\u1596\u0003\u0002\u0002\u0002\u1596\u1594\u0003\u0002", + "\u0002\u0002\u1596\u1597\u0003\u0002\u0002\u0002\u1597\u15a4\u0003\u0002", + "\u0002\u0002\u1598\u159a\u0007\u0413\u0002\u0002\u1599\u1598\u0003\u0002", + "\u0002\u0002\u1599\u159a\u0003\u0002\u0002\u0002\u159a\u159b\u0003\u0002", + "\u0002\u0002\u159b\u159e\u0007\u040d\u0002\u0002\u159c\u159e\u0007\u040c", + "\u0002\u0002\u159d\u1599\u0003\u0002\u0002\u0002\u159d\u159c\u0003\u0002", + "\u0002\u0002\u159e\u15a1\u0003\u0002\u0002\u0002\u159f\u15a0\u0007\u001a", + "\u0002\u0002\u15a0\u15a2\u0005\u0200\u0101\u0002\u15a1\u159f\u0003\u0002", + "\u0002\u0002\u15a1\u15a2\u0003\u0002\u0002\u0002\u15a2\u15a4\u0003\u0002", + "\u0002\u0002\u15a3\u1591\u0003\u0002\u0002\u0002\u15a3\u159d\u0003\u0002", + "\u0002\u0002\u15a4\u0217\u0003\u0002\u0002\u0002\u15a5\u15a6\t[\u0002", + "\u0002\u15a6\u0219\u0003\u0002\u0002\u0002\u15a7\u15a9\u0007\u0413\u0002", + "\u0002\u15a8\u15a7\u0003\u0002\u0002\u0002\u15a8\u15a9\u0003\u0002\u0002", + "\u0002\u15a9\u15aa\u0003\u0002\u0002\u0002\u15aa\u15ab\u0007\u040f\u0002", + "\u0002\u15ab\u021b\u0003\u0002\u0002\u0002\u15ac\u15ae\u0007h\u0002", + "\u0002\u15ad\u15ac\u0003\u0002\u0002\u0002\u15ad\u15ae\u0003\u0002\u0002", + "\u0002\u15ae\u15af\u0003\u0002\u0002\u0002\u15af\u15b0\t\\\u0002\u0002", + "\u15b0\u021d\u0003\u0002\u0002\u0002\u15b1\u15be\u0005\u0216\u010c\u0002", + "\u15b2\u15be\u0005\u0212\u010a\u0002\u15b3\u15b4\u0007\u03f2\u0002\u0002", + "\u15b4\u15be\u0005\u0212\u010a\u0002\u15b5\u15be\u0005\u021a\u010e\u0002", + "\u15b6\u15be\u0005\u0218\u010d\u0002\u15b7\u15be\u0007\u0410\u0002\u0002", + "\u15b8\u15be\u0007\u0412\u0002\u0002\u15b9\u15bb\u0007h\u0002\u0002", + "\u15ba\u15b9\u0003\u0002\u0002\u0002\u15ba\u15bb\u0003\u0002\u0002\u0002", + "\u15bb\u15bc\u0003\u0002\u0002\u0002\u15bc\u15be\t\\\u0002\u0002\u15bd", + "\u15b1\u0003\u0002\u0002\u0002\u15bd\u15b2\u0003\u0002\u0002\u0002\u15bd", + "\u15b3\u0003\u0002\u0002\u0002\u15bd\u15b5\u0003\u0002\u0002\u0002\u15bd", + "\u15b6\u0003\u0002\u0002\u0002\u15bd\u15b7\u0003\u0002\u0002\u0002\u15bd", + "\u15b8\u0003\u0002\u0002\u0002\u15bd\u15ba\u0003\u0002\u0002\u0002\u15be", + "\u021f\u0003\u0002\u0002\u0002\u15bf\u15c1\t]\u0002\u0002\u15c0\u15c2", + "\u0005\u0226\u0114\u0002\u15c1\u15c0\u0003\u0002\u0002\u0002\u15c1\u15c2", + "\u0003\u0002\u0002\u0002\u15c2\u15c4\u0003\u0002\u0002\u0002\u15c3\u15c5", + "\u0007\u00d2\u0002\u0002\u15c4\u15c3\u0003\u0002\u0002\u0002\u15c4\u15c5", + "\u0003\u0002\u0002\u0002\u15c5\u15cc\u0003\u0002\u0002\u0002\u15c6\u15c7", + "\u0007\u0018\u0002\u0002\u15c7\u15ca\u0007\u008c\u0002\u0002\u15c8\u15ca", + "\u0007\u02dd\u0002\u0002\u15c9\u15c6\u0003\u0002\u0002\u0002\u15c9\u15c8", + "\u0003\u0002\u0002\u0002\u15ca\u15cb\u0003\u0002\u0002\u0002\u15cb\u15cd", + "\u0005\u01fe\u0100\u0002\u15cc\u15c9\u0003\u0002\u0002\u0002\u15cc\u15cd", + "\u0003\u0002\u0002\u0002\u15cd\u15d0\u0003\u0002\u0002\u0002\u15ce\u15cf", + "\u0007\u001a\u0002\u0002\u15cf\u15d1\u0005\u0200\u0101\u0002\u15d0\u15ce", + "\u0003\u0002\u0002\u0002\u15d0\u15d1\u0003\u0002\u0002\u0002\u15d1\u163f", + "\u0003\u0002\u0002\u0002\u15d2\u15d3\u0007\u00d1\u0002\u0002\u15d3\u15d5", + "\t^\u0002\u0002\u15d4\u15d6\u0005\u0226\u0114\u0002\u15d5\u15d4\u0003", + "\u0002\u0002\u0002\u15d5\u15d6\u0003\u0002\u0002\u0002\u15d6\u15d8\u0003", + "\u0002\u0002\u0002\u15d7\u15d9\u0007\u00d2\u0002\u0002\u15d8\u15d7\u0003", + "\u0002\u0002\u0002\u15d8\u15d9\u0003\u0002\u0002\u0002\u15d9\u163f\u0003", + "\u0002\u0002\u0002\u15da\u15db\u0007\u01bf\u0002\u0002\u15db\u15dd\u0007", + "\u00cf\u0002\u0002\u15dc\u15de\u0005\u0226\u0114\u0002\u15dd\u15dc\u0003", + "\u0002\u0002\u0002\u15dd\u15de\u0003\u0002\u0002\u0002\u15de\u15e0\u0003", + "\u0002\u0002\u0002\u15df\u15e1\u0007\u00d2\u0002\u0002\u15e0\u15df\u0003", + "\u0002\u0002\u0002\u15e0\u15e1\u0003\u0002\u0002\u0002\u15e1\u163f\u0003", + "\u0002\u0002\u0002\u15e2\u15e3\u0007\u00d1\u0002\u0002\u15e3\u15e4\t", + "_\u0002\u0002\u15e4\u15e6\u0007\u00de\u0002\u0002\u15e5\u15e7\u0005", + "\u0226\u0114\u0002\u15e6\u15e5\u0003\u0002\u0002\u0002\u15e6\u15e7\u0003", + "\u0002\u0002\u0002\u15e7\u15e9\u0003\u0002\u0002\u0002\u15e8\u15ea\u0007", + "\u00d2\u0002\u0002\u15e9\u15e8\u0003\u0002\u0002\u0002\u15e9\u15ea\u0003", + "\u0002\u0002\u0002\u15ea\u163f\u0003\u0002\u0002\u0002\u15eb\u15ed\t", + "`\u0002\u0002\u15ec\u15ee\u0005\u0226\u0114\u0002\u15ed\u15ec\u0003", + "\u0002\u0002\u0002\u15ed\u15ee\u0003\u0002\u0002\u0002\u15ee\u15f0\u0003", + "\u0002\u0002\u0002\u15ef\u15f1\ta\u0002\u0002\u15f0\u15ef\u0003\u0002", + "\u0002\u0002\u15f0\u15f1\u0003\u0002\u0002\u0002\u15f1\u15f3\u0003\u0002", + "\u0002\u0002\u15f2\u15f4\u0007\u00b3\u0002\u0002\u15f3\u15f2\u0003\u0002", + "\u0002\u0002\u15f3\u15f4\u0003\u0002\u0002\u0002\u15f4\u163f\u0003\u0002", + "\u0002\u0002\u15f5\u15f7\u0007\u00c0\u0002\u0002\u15f6\u15f8\u0005\u0228", + "\u0115\u0002\u15f7\u15f6\u0003\u0002\u0002\u0002\u15f7\u15f8\u0003\u0002", + "\u0002\u0002\u15f8\u15fa\u0003\u0002\u0002\u0002\u15f9\u15fb\ta\u0002", + "\u0002\u15fa\u15f9\u0003\u0002\u0002\u0002\u15fa\u15fb\u0003\u0002\u0002", + "\u0002\u15fb\u15fd\u0003\u0002\u0002\u0002\u15fc\u15fe\u0007\u00b3\u0002", + "\u0002\u15fd\u15fc\u0003\u0002\u0002\u0002\u15fd\u15fe\u0003\u0002\u0002", + "\u0002\u15fe\u163f\u0003\u0002\u0002\u0002\u15ff\u1601\u0007\u00c1\u0002", + "\u0002\u1600\u1602\u0007\u00c2\u0002\u0002\u1601\u1600\u0003\u0002\u0002", + "\u0002\u1601\u1602\u0003\u0002\u0002\u0002\u1602\u1604\u0003\u0002\u0002", + "\u0002\u1603\u1605\u0005\u0228\u0115\u0002\u1604\u1603\u0003\u0002\u0002", + "\u0002\u1604\u1605\u0003\u0002\u0002\u0002\u1605\u1607\u0003\u0002\u0002", + "\u0002\u1606\u1608\ta\u0002\u0002\u1607\u1606\u0003\u0002\u0002\u0002", + "\u1607\u1608\u0003\u0002\u0002\u0002\u1608\u160a\u0003\u0002\u0002\u0002", + "\u1609\u160b\u0007\u00b3\u0002\u0002\u160a\u1609\u0003\u0002\u0002\u0002", + "\u160a\u160b\u0003\u0002\u0002\u0002\u160b\u163f\u0003\u0002\u0002\u0002", + "\u160c\u160e\tb\u0002\u0002\u160d\u160f\u0005\u022a\u0116\u0002\u160e", + "\u160d\u0003\u0002\u0002\u0002\u160e\u160f\u0003\u0002\u0002\u0002\u160f", + "\u1611\u0003\u0002\u0002\u0002\u1610\u1612\ta\u0002\u0002\u1611\u1610", + "\u0003\u0002\u0002\u0002\u1611\u1612\u0003\u0002\u0002\u0002\u1612\u1614", + "\u0003\u0002\u0002\u0002\u1613\u1615\u0007\u00b3\u0002\u0002\u1614\u1613", + "\u0003\u0002\u0002\u0002\u1614\u1615\u0003\u0002\u0002\u0002\u1615\u163f", + "\u0003\u0002\u0002\u0002\u1616\u163f\tc\u0002\u0002\u1617\u1619\td\u0002", + "\u0002\u1618\u161a\u0005\u0226\u0114\u0002\u1619\u1618\u0003\u0002\u0002", + "\u0002\u1619\u161a\u0003\u0002\u0002\u0002\u161a\u163f\u0003\u0002\u0002", + "\u0002\u161b\u161c\te\u0002\u0002\u161c\u161e\u0005\u0222\u0112\u0002", + "\u161d\u161f\u0007\u00d2\u0002\u0002\u161e\u161d\u0003\u0002\u0002\u0002", + "\u161e\u161f\u0003\u0002\u0002\u0002\u161f\u1626\u0003\u0002\u0002\u0002", + "\u1620\u1621\u0007\u0018\u0002\u0002\u1621\u1624\u0007\u008c\u0002\u0002", + "\u1622\u1624\u0007\u02dd\u0002\u0002\u1623\u1620\u0003\u0002\u0002\u0002", + "\u1623\u1622\u0003\u0002\u0002\u0002\u1624\u1625\u0003\u0002\u0002\u0002", + "\u1625\u1627\u0005\u01fe\u0100\u0002\u1626\u1623\u0003\u0002\u0002\u0002", + "\u1626\u1627\u0003\u0002\u0002\u0002\u1627\u163f\u0003\u0002\u0002\u0002", + "\u1628\u163f\tf\u0002\u0002\u1629\u162b\u0007\u00d7\u0002\u0002\u162a", + "\u162c\u0007\u00cf\u0002\u0002\u162b\u162a\u0003\u0002\u0002\u0002\u162b", + "\u162c\u0003\u0002\u0002\u0002\u162c\u162e\u0003\u0002\u0002\u0002\u162d", + "\u162f\u0007\u00d2\u0002\u0002\u162e\u162d\u0003\u0002\u0002\u0002\u162e", + "\u162f\u0003\u0002\u0002\u0002\u162f\u1636\u0003\u0002\u0002\u0002\u1630", + "\u1631\u0007\u0018\u0002\u0002\u1631\u1634\u0007\u008c\u0002\u0002\u1632", + "\u1634\u0007\u02dd\u0002\u0002\u1633\u1630\u0003\u0002\u0002\u0002\u1633", + "\u1632\u0003\u0002\u0002\u0002\u1634\u1635\u0003\u0002\u0002\u0002\u1635", + "\u1637\u0005\u01fe\u0100\u0002\u1636\u1633\u0003\u0002\u0002\u0002\u1636", + "\u1637\u0003\u0002\u0002\u0002\u1637\u163a\u0003\u0002\u0002\u0002\u1638", + "\u1639\u0007\u001a\u0002\u0002\u1639\u163b\u0005\u0200\u0101\u0002\u163a", + "\u1638\u0003\u0002\u0002\u0002\u163a\u163b\u0003\u0002\u0002\u0002\u163b", + "\u163f\u0003\u0002\u0002\u0002\u163c\u163d\u0007\u00d7\u0002\u0002\u163d", + "\u163f\u0007\u00d3\u0002\u0002\u163e\u15bf\u0003\u0002\u0002\u0002\u163e", + "\u15d2\u0003\u0002\u0002\u0002\u163e\u15da\u0003\u0002\u0002\u0002\u163e", + "\u15e2\u0003\u0002\u0002\u0002\u163e\u15eb\u0003\u0002\u0002\u0002\u163e", + "\u15f5\u0003\u0002\u0002\u0002\u163e\u15ff\u0003\u0002\u0002\u0002\u163e", + "\u160c\u0003\u0002\u0002\u0002\u163e\u1616\u0003\u0002\u0002\u0002\u163e", + "\u1617\u0003\u0002\u0002\u0002\u163e\u161b\u0003\u0002\u0002\u0002\u163e", + "\u1628\u0003\u0002\u0002\u0002\u163e\u1629\u0003\u0002\u0002\u0002\u163e", + "\u163c\u0003\u0002\u0002\u0002\u163f\u0221\u0003\u0002\u0002\u0002\u1640", + "\u1641\u0007\u03fe\u0002\u0002\u1641\u1646\u0007\u040d\u0002\u0002\u1642", + "\u1643\u0007\u0400\u0002\u0002\u1643\u1645\u0007\u040d\u0002\u0002\u1644", + "\u1642\u0003\u0002\u0002\u0002\u1645\u1648\u0003\u0002\u0002\u0002\u1646", + "\u1644\u0003\u0002\u0002\u0002\u1646\u1647\u0003\u0002\u0002\u0002\u1647", + "\u1649\u0003\u0002\u0002\u0002\u1648\u1646\u0003\u0002\u0002\u0002\u1649", + "\u164a\u0007\u03ff\u0002\u0002\u164a\u0223\u0003\u0002\u0002\u0002\u164b", + "\u164d\tg\u0002\u0002\u164c\u164e\u0005\u0226\u0114\u0002\u164d\u164c", + "\u0003\u0002\u0002\u0002\u164d\u164e\u0003\u0002\u0002\u0002\u164e\u1665", + "\u0003\u0002\u0002\u0002\u164f\u1651\u0007\u00ce\u0002\u0002\u1650\u1652", + "\u0005\u0226\u0114\u0002\u1651\u1650\u0003\u0002\u0002\u0002\u1651\u1652", + "\u0003\u0002\u0002\u0002\u1652\u1659\u0003\u0002\u0002\u0002\u1653\u1654", + "\u0007\u0018\u0002\u0002\u1654\u1657\u0007\u008c\u0002\u0002\u1655\u1657", + "\u0007\u02dd\u0002\u0002\u1656\u1653\u0003\u0002\u0002\u0002\u1656\u1655", + "\u0003\u0002\u0002\u0002\u1657\u1658\u0003\u0002\u0002\u0002\u1658\u165a", + "\u0005\u01fe\u0100\u0002\u1659\u1656\u0003\u0002\u0002\u0002\u1659\u165a", + "\u0003\u0002\u0002\u0002\u165a\u1665\u0003\u0002\u0002\u0002\u165b\u1665", + "\th\u0002\u0002\u165c\u165e\u0007\u00c6\u0002\u0002\u165d\u165f\u0005", + "\u0228\u0115\u0002\u165e\u165d\u0003\u0002\u0002\u0002\u165e\u165f\u0003", + "\u0002\u0002\u0002\u165f\u1665\u0003\u0002\u0002\u0002\u1660\u1662\t", + "a\u0002\u0002\u1661\u1663\u0007\u00be\u0002\u0002\u1662\u1661\u0003", + "\u0002\u0002\u0002\u1662\u1663\u0003\u0002\u0002\u0002\u1663\u1665\u0003", + "\u0002\u0002\u0002\u1664\u164b\u0003\u0002\u0002\u0002\u1664\u164f\u0003", + "\u0002\u0002\u0002\u1664\u165b\u0003\u0002\u0002\u0002\u1664\u165c\u0003", + "\u0002\u0002\u0002\u1664\u1660\u0003\u0002\u0002\u0002\u1665\u0225\u0003", + "\u0002\u0002\u0002\u1666\u1667\u0007\u03fe\u0002\u0002\u1667\u1668\u0005", + "\u0212\u010a\u0002\u1668\u1669\u0007\u03ff\u0002\u0002\u1669\u0227\u0003", + "\u0002\u0002\u0002\u166a\u166b\u0007\u03fe\u0002\u0002\u166b\u166c\u0005", + "\u0212\u010a\u0002\u166c\u166d\u0007\u0400\u0002\u0002\u166d\u166e\u0005", + "\u0212\u010a\u0002\u166e\u166f\u0007\u03ff\u0002\u0002\u166f\u0229\u0003", + "\u0002\u0002\u0002\u1670\u1671\u0007\u03fe\u0002\u0002\u1671\u1674\u0005", + "\u0212\u010a\u0002\u1672\u1673\u0007\u0400\u0002\u0002\u1673\u1675\u0005", + "\u0212\u010a\u0002\u1674\u1672\u0003\u0002\u0002\u0002\u1674\u1675\u0003", + "\u0002\u0002\u0002\u1675\u1676\u0003\u0002\u0002\u0002\u1676\u1677\u0007", + "\u03ff\u0002\u0002\u1677\u022b\u0003\u0002\u0002\u0002\u1678\u167d\u0005", + "\u020c\u0107\u0002\u1679\u167a\u0007\u0400\u0002\u0002\u167a\u167c\u0005", + "\u020c\u0107\u0002\u167b\u1679\u0003\u0002\u0002\u0002\u167c\u167f\u0003", + "\u0002\u0002\u0002\u167d\u167b\u0003\u0002\u0002\u0002\u167d\u167e\u0003", + "\u0002\u0002\u0002\u167e\u022d\u0003\u0002\u0002\u0002\u167f\u167d\u0003", + "\u0002\u0002\u0002\u1680\u1685\u0005\u01f4\u00fb\u0002\u1681\u1682\u0007", + "\u0400\u0002\u0002\u1682\u1684\u0005\u01f4\u00fb\u0002\u1683\u1681\u0003", + "\u0002\u0002\u0002\u1684\u1687\u0003\u0002\u0002\u0002\u1685\u1683\u0003", + "\u0002\u0002\u0002\u1685\u1686\u0003\u0002\u0002\u0002\u1686\u022f\u0003", + "\u0002\u0002\u0002\u1687\u1685\u0003\u0002\u0002\u0002\u1688\u1689\u0007", + "\u03fe\u0002\u0002\u1689\u168e\u0005\u01f8\u00fd\u0002\u168a\u168b\u0007", + "\u0400\u0002\u0002\u168b\u168d\u0005\u01f8\u00fd\u0002\u168c\u168a\u0003", + "\u0002\u0002\u0002\u168d\u1690\u0003\u0002\u0002\u0002\u168e\u168c\u0003", + "\u0002\u0002\u0002\u168e\u168f\u0003\u0002\u0002\u0002\u168f\u1691\u0003", + "\u0002\u0002\u0002\u1690\u168e\u0003\u0002\u0002\u0002\u1691\u1692\u0007", + "\u03ff\u0002\u0002\u1692\u0231\u0003\u0002\u0002\u0002\u1693\u1698\u0005", + "\u025a\u012e\u0002\u1694\u1695\u0007\u0400\u0002\u0002\u1695\u1697\u0005", + "\u025a\u012e\u0002\u1696\u1694\u0003\u0002\u0002\u0002\u1697\u169a\u0003", + "\u0002\u0002\u0002\u1698\u1696\u0003\u0002\u0002\u0002\u1698\u1699\u0003", + "\u0002\u0002\u0002\u1699\u0233\u0003\u0002\u0002\u0002\u169a\u1698\u0003", + "\u0002\u0002\u0002\u169b\u16a0\u0005\u0240\u0121\u0002\u169c\u169d\u0007", + "\u0400\u0002\u0002\u169d\u169f\u0005\u0240\u0121\u0002\u169e\u169c\u0003", + "\u0002\u0002\u0002\u169f\u16a2\u0003\u0002\u0002\u0002\u16a0\u169e\u0003", + "\u0002\u0002\u0002\u16a0\u16a1\u0003\u0002\u0002\u0002\u16a1\u0235\u0003", + "\u0002\u0002\u0002\u16a2\u16a0\u0003\u0002\u0002\u0002\u16a3\u16a8\u0005", + "\u021e\u0110\u0002\u16a4\u16a5\u0007\u0400\u0002\u0002\u16a5\u16a7\u0005", + "\u021e\u0110\u0002\u16a6\u16a4\u0003\u0002\u0002\u0002\u16a7\u16aa\u0003", + "\u0002\u0002\u0002\u16a8\u16a6\u0003\u0002\u0002\u0002\u16a8\u16a9\u0003", + "\u0002\u0002\u0002\u16a9\u0237\u0003\u0002\u0002\u0002\u16aa\u16a8\u0003", + "\u0002\u0002\u0002\u16ab\u16b0\u0007\u040d\u0002\u0002\u16ac\u16ad\u0007", + "\u0400\u0002\u0002\u16ad\u16af\u0007\u040d\u0002\u0002\u16ae\u16ac\u0003", + "\u0002\u0002\u0002\u16af\u16b2\u0003\u0002\u0002\u0002\u16b0\u16ae\u0003", + "\u0002\u0002\u0002\u16b0\u16b1\u0003\u0002\u0002\u0002\u16b1\u0239\u0003", + "\u0002\u0002\u0002\u16b2\u16b0\u0003\u0002\u0002\u0002\u16b3\u16b8\u0007", + "\u0418\u0002\u0002\u16b4\u16b5\u0007\u0400\u0002\u0002\u16b5\u16b7\u0007", + "\u0418\u0002\u0002\u16b6\u16b4\u0003\u0002\u0002\u0002\u16b7\u16ba\u0003", + "\u0002\u0002\u0002\u16b8\u16b6\u0003\u0002\u0002\u0002\u16b8\u16b9\u0003", + "\u0002\u0002\u0002\u16b9\u023b\u0003\u0002\u0002\u0002\u16ba\u16b8\u0003", + "\u0002\u0002\u0002\u16bb\u16c7\u0007j\u0002\u0002\u16bc\u16be\u0005", + "\u0260\u0131\u0002\u16bd\u16bc\u0003\u0002\u0002\u0002\u16bd\u16be\u0003", + "\u0002\u0002\u0002\u16be\u16bf\u0003\u0002\u0002\u0002\u16bf\u16c7\u0005", + "\u021e\u0110\u0002\u16c0\u16c4\u0005\u023e\u0120\u0002\u16c1\u16c2\u0007", + "l\u0002\u0002\u16c2\u16c3\u0007\u00a8\u0002\u0002\u16c3\u16c5\u0005", + "\u023e\u0120\u0002\u16c4\u16c1\u0003\u0002\u0002\u0002\u16c4\u16c5\u0003", + "\u0002\u0002\u0002\u16c5\u16c7\u0003\u0002\u0002\u0002\u16c6\u16bb\u0003", + "\u0002\u0002\u0002\u16c6\u16bd\u0003\u0002\u0002\u0002\u16c6\u16c0\u0003", + "\u0002\u0002\u0002\u16c7\u023d\u0003\u0002\u0002\u0002\u16c8\u16ce\t", + "i\u0002\u0002\u16c9\u16cb\u0007\u03fe\u0002\u0002\u16ca\u16cc\u0005", + "\u0212\u010a\u0002\u16cb\u16ca\u0003\u0002\u0002\u0002\u16cb\u16cc\u0003", + "\u0002\u0002\u0002\u16cc\u16cd\u0003\u0002\u0002\u0002\u16cd\u16cf\u0007", + "\u03ff\u0002\u0002\u16ce\u16c9\u0003\u0002\u0002\u0002\u16ce\u16cf\u0003", + "\u0002\u0002\u0002\u16cf\u16d7\u0003\u0002\u0002\u0002\u16d0\u16d1\u0007", + "\u0107\u0002\u0002\u16d1\u16d3\u0007\u03fe\u0002\u0002\u16d2\u16d4\u0005", + "\u0212\u010a\u0002\u16d3\u16d2\u0003\u0002\u0002\u0002\u16d3\u16d4\u0003", + "\u0002\u0002\u0002\u16d4\u16d5\u0003\u0002\u0002\u0002\u16d5\u16d7\u0007", + "\u03ff\u0002\u0002\u16d6\u16c8\u0003\u0002\u0002\u0002\u16d6\u16d0\u0003", + "\u0002\u0002\u0002\u16d7\u023f\u0003\u0002\u0002\u0002\u16d8\u16db\u0005", + "\u025a\u012e\u0002\u16d9\u16db\u0007(\u0002\u0002\u16da\u16d8\u0003", + "\u0002\u0002\u0002\u16da\u16d9\u0003\u0002\u0002\u0002\u16db\u0241\u0003", + "\u0002\u0002\u0002\u16dc\u16dd\u0007G\u0002\u0002\u16dd\u16de\u0007", + "7\u0002\u0002\u16de\u0243\u0003\u0002\u0002\u0002\u16df\u16e0\u0007", + "G\u0002\u0002\u16e0\u16e1\u0007h\u0002\u0002\u16e1\u16e2\u00077\u0002", + "\u0002\u16e2\u0245\u0003\u0002\u0002\u0002\u16e3\u16f5\u0005\u0248\u0125", + "\u0002\u16e4\u16f5\u0005\u0250\u0129\u0002\u16e5\u16e6\u0005\u0252\u012a", + "\u0002\u16e6\u16e8\u0007\u03fe\u0002\u0002\u16e7\u16e9\u0005\u0256\u012c", + "\u0002\u16e8\u16e7\u0003\u0002\u0002\u0002\u16e8\u16e9\u0003\u0002\u0002", + "\u0002\u16e9\u16ea\u0003\u0002\u0002\u0002\u16ea\u16eb\u0007\u03ff\u0002", + "\u0002\u16eb\u16f5\u0003\u0002\u0002\u0002\u16ec\u16ed\u0005\u01f2\u00fa", + "\u0002\u16ed\u16ef\u0007\u03fe\u0002\u0002\u16ee\u16f0\u0005\u0256\u012c", + "\u0002\u16ef\u16ee\u0003\u0002\u0002\u0002\u16ef\u16f0\u0003\u0002\u0002", + "\u0002\u16f0\u16f1\u0003\u0002\u0002\u0002\u16f1\u16f2\u0007\u03ff\u0002", + "\u0002\u16f2\u16f5\u0003\u0002\u0002\u0002\u16f3\u16f5\u0005\u0254\u012b", + "\u0002\u16f4\u16e3\u0003\u0002\u0002\u0002\u16f4\u16e4\u0003\u0002\u0002", + "\u0002\u16f4\u16e5\u0003\u0002\u0002\u0002\u16f4\u16ec\u0003\u0002\u0002", + "\u0002\u16f4\u16f3\u0003\u0002\u0002\u0002\u16f5\u0247\u0003\u0002\u0002", + "\u0002\u16f6\u1794\tj\u0002\u0002\u16f7\u16f8\u0007\u001f\u0002\u0002", + "\u16f8\u16f9\u0007\u03fe\u0002\u0002\u16f9\u16fa\u0005\u025a\u012e\u0002", + "\u16fa\u16fb\u0007\u0400\u0002\u0002\u16fb\u16fc\u0005\u0224\u0113\u0002", + "\u16fc\u16fd\u0007\u03ff\u0002\u0002\u16fd\u1794\u0003\u0002\u0002\u0002", + "\u16fe\u16ff\u0007\u001f\u0002\u0002\u16ff\u1700\u0007\u03fe\u0002\u0002", + "\u1700\u1701\u0005\u025a\u012e\u0002\u1701\u1702\u0007\u00ab\u0002\u0002", + "\u1702\u1703\u0005\u01fe\u0100\u0002\u1703\u1704\u0007\u03ff\u0002\u0002", + "\u1704\u1794\u0003\u0002\u0002\u0002\u1705\u1706\u0007\u0016\u0002\u0002", + "\u1706\u1707\u0007\u03fe\u0002\u0002\u1707\u1708\u0005\u025a\u012e\u0002", + "\u1708\u1709\u0007\r\u0002\u0002\u1709\u170a\u0005\u0224\u0113\u0002", + "\u170a\u170b\u0007\u03ff\u0002\u0002\u170b\u1794\u0003\u0002\u0002\u0002", + "\u170c\u170d\u0007\u00ac\u0002\u0002\u170d\u170e\u0007\u03fe\u0002\u0002", + "\u170e\u170f\u0005\u01f6\u00fc\u0002\u170f\u1710\u0007\u03ff\u0002\u0002", + "\u1710\u1794\u0003\u0002\u0002\u0002\u1711\u1712\u0007\u0015\u0002\u0002", + "\u1712\u1714\u0005\u025a\u012e\u0002\u1713\u1715\u0005\u024a\u0126\u0002", + "\u1714\u1713\u0003\u0002\u0002\u0002\u1715\u1716\u0003\u0002\u0002\u0002", + "\u1716\u1714\u0003\u0002\u0002\u0002\u1716\u1717\u0003\u0002\u0002\u0002", + "\u1717\u171a\u0003\u0002\u0002\u0002\u1718\u1719\u00073\u0002\u0002", + "\u1719\u171b\u0005\u0258\u012d\u0002\u171a\u1718\u0003\u0002\u0002\u0002", + "\u171a\u171b\u0003\u0002\u0002\u0002\u171b\u171c\u0003\u0002\u0002\u0002", + "\u171c\u171d\u0007\u0156\u0002\u0002\u171d\u1794\u0003\u0002\u0002\u0002", + "\u171e\u1720\u0007\u0015\u0002\u0002\u171f\u1721\u0005\u024a\u0126\u0002", + "\u1720\u171f\u0003\u0002\u0002\u0002\u1721\u1722\u0003\u0002\u0002\u0002", + "\u1722\u1720\u0003\u0002\u0002\u0002\u1722\u1723\u0003\u0002\u0002\u0002", + "\u1723\u1726\u0003\u0002\u0002\u0002\u1724\u1725\u00073\u0002\u0002", + "\u1725\u1727\u0005\u0258\u012d\u0002\u1726\u1724\u0003\u0002\u0002\u0002", + "\u1726\u1727\u0003\u0002\u0002\u0002\u1727\u1728\u0003\u0002\u0002\u0002", + "\u1728\u1729\u0007\u0156\u0002\u0002\u1729\u1794\u0003\u0002\u0002\u0002", + "\u172a\u172b\u0007\u00ce\u0002\u0002\u172b\u172c\u0007\u03fe\u0002\u0002", + "\u172c\u172f\u0005\u0256\u012c\u0002\u172d\u172e\u0007\u00ab\u0002\u0002", + "\u172e\u1730\u0005\u01fe\u0100\u0002\u172f\u172d\u0003\u0002\u0002\u0002", + "\u172f\u1730\u0003\u0002\u0002\u0002\u1730\u1731\u0003\u0002\u0002\u0002", + "\u1731\u1732\u0007\u03ff\u0002\u0002\u1732\u1794\u0003\u0002\u0002\u0002", + "\u1733\u1734\u0007\u0108\u0002\u0002\u1734\u1737\u0007\u03fe\u0002\u0002", + "\u1735\u1738\u0005\u0216\u010c\u0002\u1736\u1738\u0005\u025a\u012e\u0002", + "\u1737\u1735\u0003\u0002\u0002\u0002\u1737\u1736\u0003\u0002\u0002\u0002", + "\u1738\u1739\u0003\u0002\u0002\u0002\u1739\u173c\u0007I\u0002\u0002", + "\u173a\u173d\u0005\u0216\u010c\u0002\u173b\u173d\u0005\u025a\u012e\u0002", + "\u173c\u173a\u0003\u0002\u0002\u0002\u173c\u173b\u0003\u0002\u0002\u0002", + "\u173d\u173e\u0003\u0002\u0002\u0002\u173e\u173f\u0007\u03ff\u0002\u0002", + "\u173f\u1794\u0003\u0002\u0002\u0002\u1740\u1741\tk\u0002\u0002\u1741", + "\u1744\u0007\u03fe\u0002\u0002\u1742\u1745\u0005\u0216\u010c\u0002\u1743", + "\u1745\u0005\u025a\u012e\u0002\u1744\u1742\u0003\u0002\u0002\u0002\u1744", + "\u1743\u0003\u0002\u0002\u0002\u1745\u1746\u0003\u0002\u0002\u0002\u1746", + "\u1749\u0007?\u0002\u0002\u1747\u174a\u0005\u0212\u010a\u0002\u1748", + "\u174a\u0005\u025a\u012e\u0002\u1749\u1747\u0003\u0002\u0002\u0002\u1749", + "\u1748\u0003\u0002\u0002\u0002\u174a\u1750\u0003\u0002\u0002\u0002\u174b", + "\u174e\u0007<\u0002\u0002\u174c\u174f\u0005\u0212\u010a\u0002\u174d", + "\u174f\u0005\u025a\u012e\u0002\u174e\u174c\u0003\u0002\u0002\u0002\u174e", + "\u174d\u0003\u0002\u0002\u0002\u174f\u1751\u0003\u0002\u0002\u0002\u1750", + "\u174b\u0003\u0002\u0002\u0002\u1750\u1751\u0003\u0002\u0002\u0002\u1751", + "\u1752\u0003\u0002\u0002\u0002\u1752\u1753\u0007\u03ff\u0002\u0002\u1753", + "\u1794\u0003\u0002\u0002\u0002\u1754\u1755\u0007\u010c\u0002\u0002\u1755", + "\u1756\u0007\u03fe\u0002\u0002\u1756\u1759\tl\u0002\u0002\u1757\u175a", + "\u0005\u0216\u010c\u0002\u1758\u175a\u0005\u025a\u012e\u0002\u1759\u1757", + "\u0003\u0002\u0002\u0002\u1759\u1758\u0003\u0002\u0002\u0002\u1759\u175a", + "\u0003\u0002\u0002\u0002\u175a\u175b\u0003\u0002\u0002\u0002\u175b\u175e", + "\u0007?\u0002\u0002\u175c\u175f\u0005\u0216\u010c\u0002\u175d\u175f", + "\u0005\u025a\u012e\u0002\u175e\u175c\u0003\u0002\u0002\u0002\u175e\u175d", + "\u0003\u0002\u0002\u0002\u175f\u1760\u0003\u0002\u0002\u0002\u1760\u1761", + "\u0007\u03ff\u0002\u0002\u1761\u1794\u0003\u0002\u0002\u0002\u1762\u1763", + "\u0007\u010c\u0002\u0002\u1763\u1766\u0007\u03fe\u0002\u0002\u1764\u1767", + "\u0005\u0216\u010c\u0002\u1765\u1767\u0005\u025a\u012e\u0002\u1766\u1764", + "\u0003\u0002\u0002\u0002\u1766\u1765\u0003\u0002\u0002\u0002\u1767\u1768", + "\u0003\u0002\u0002\u0002\u1768\u176b\u0007?\u0002\u0002\u1769\u176c", + "\u0005\u0216\u010c\u0002\u176a\u176c\u0005\u025a\u012e\u0002\u176b\u1769", + "\u0003\u0002\u0002\u0002\u176b\u176a\u0003\u0002\u0002\u0002\u176c\u176d", + "\u0003\u0002\u0002\u0002\u176d\u176e\u0007\u03ff\u0002\u0002\u176e\u1794", + "\u0003\u0002\u0002\u0002\u176f\u1770\u0007\u03df\u0002\u0002\u1770\u1773", + "\u0007\u03fe\u0002\u0002\u1771\u1774\u0005\u0216\u010c\u0002\u1772\u1774", + "\u0005\u025a\u012e\u0002\u1773\u1771\u0003\u0002\u0002\u0002\u1773\u1772", + "\u0003\u0002\u0002\u0002\u1774\u177b\u0003\u0002\u0002\u0002\u1775\u1776", + "\u0007\r\u0002\u0002\u1776\u1777\tm\u0002\u0002\u1777\u1778\u0007\u03fe", + "\u0002\u0002\u1778\u1779\u0005\u0212\u010a\u0002\u1779\u177a\u0007\u03ff", + "\u0002\u0002\u177a\u177c\u0003\u0002\u0002\u0002\u177b\u1775\u0003\u0002", + "\u0002\u0002\u177b\u177c\u0003\u0002\u0002\u0002\u177c\u177e\u0003\u0002", + "\u0002\u0002\u177d\u177f\u0005\u024c\u0127\u0002\u177e\u177d\u0003\u0002", + "\u0002\u0002\u177e\u177f\u0003\u0002\u0002\u0002\u177f\u1780\u0003\u0002", + "\u0002\u0002\u1780\u1781\u0007\u03ff\u0002\u0002\u1781\u1794\u0003\u0002", + "\u0002\u0002\u1782\u1783\u0007\u0105\u0002\u0002\u1783\u1784\u0007\u03fe", + "\u0002\u0002\u1784\u1785\u0005<\u001f\u0002\u1785\u1788\u0007?\u0002", + "\u0002\u1786\u1789\u0005\u0216\u010c\u0002\u1787\u1789\u0005\u025a\u012e", + "\u0002\u1788\u1786\u0003\u0002\u0002\u0002\u1788\u1787\u0003\u0002\u0002", + "\u0002\u1789\u178a\u0003\u0002\u0002\u0002\u178a\u178b\u0007\u03ff\u0002", + "\u0002\u178b\u1794\u0003\u0002\u0002\u0002\u178c\u178d\u0007\u0317\u0002", + "\u0002\u178d\u178e\u0007\u03fe\u0002\u0002\u178e\u178f\tn\u0002\u0002", + "\u178f\u1790\u0007\u0400\u0002\u0002\u1790\u1791\u0005\u0216\u010c\u0002", + "\u1791\u1792\u0007\u03ff\u0002\u0002\u1792\u1794\u0003\u0002\u0002\u0002", + "\u1793\u16f6\u0003\u0002\u0002\u0002\u1793\u16f7\u0003\u0002\u0002\u0002", + "\u1793\u16fe\u0003\u0002\u0002\u0002\u1793\u1705\u0003\u0002\u0002\u0002", + "\u1793\u170c\u0003\u0002\u0002\u0002\u1793\u1711\u0003\u0002\u0002\u0002", + "\u1793\u171e\u0003\u0002\u0002\u0002\u1793\u172a\u0003\u0002\u0002\u0002", + "\u1793\u1733\u0003\u0002\u0002\u0002\u1793\u1740\u0003\u0002\u0002\u0002", + "\u1793\u1754\u0003\u0002\u0002\u0002\u1793\u1762\u0003\u0002\u0002\u0002", + "\u1793\u176f\u0003\u0002\u0002\u0002\u1793\u1782\u0003\u0002\u0002\u0002", + "\u1793\u178c\u0003\u0002\u0002\u0002\u1794\u0249\u0003\u0002\u0002\u0002", + "\u1795\u1796\u0007\u00ad\u0002\u0002\u1796\u1797\u0005\u0258\u012d\u0002", + "\u1797\u1798\u0007\u009e\u0002\u0002\u1798\u1799\u0005\u0258\u012d\u0002", + "\u1799\u024b\u0003\u0002\u0002\u0002\u179a\u179b\u0007\u0192\u0002\u0002", + "\u179b\u17a0\u0005\u024e\u0128\u0002\u179c\u179d\u0007\u0400\u0002\u0002", + "\u179d\u179f\u0005\u024e\u0128\u0002\u179e\u179c\u0003\u0002\u0002\u0002", + "\u179f\u17a2\u0003\u0002\u0002\u0002\u17a0\u179e\u0003\u0002\u0002\u0002", + "\u17a0\u17a1\u0003\u0002\u0002\u0002\u17a1\u17a9\u0003\u0002\u0002\u0002", + "\u17a2\u17a0\u0003\u0002\u0002\u0002\u17a3\u17a4\u0007\u0192\u0002\u0002", + "\u17a4\u17a5\u0005\u0212\u010a\u0002\u17a5\u17a6\u0007\u03f2\u0002\u0002", + "\u17a6\u17a7\u0005\u0212\u010a\u0002\u17a7\u17a9\u0003\u0002\u0002\u0002", + "\u17a8\u179a\u0003\u0002\u0002\u0002\u17a8\u17a3\u0003\u0002\u0002\u0002", + "\u17a9\u024d\u0003\u0002\u0002\u0002\u17aa\u17ac\u0005\u0212\u010a\u0002", + "\u17ab\u17ad\to\u0002\u0002\u17ac\u17ab\u0003\u0002\u0002\u0002\u17ac", + "\u17ad\u0003\u0002\u0002\u0002\u17ad\u024f\u0003\u0002\u0002\u0002\u17ae", + "\u17af\tp\u0002\u0002\u17af\u17b1\u0007\u03fe\u0002\u0002\u17b0\u17b2", + "\t(\u0002\u0002\u17b1\u17b0\u0003\u0002\u0002\u0002\u17b1\u17b2\u0003", + "\u0002\u0002\u0002\u17b2\u17b3\u0003\u0002\u0002\u0002\u17b3\u17b4\u0005", + "\u0258\u012d\u0002\u17b4\u17b5\u0007\u03ff\u0002\u0002\u17b5\u17e7\u0003", + "\u0002\u0002\u0002\u17b6\u17b7\u0007\u00f1\u0002\u0002\u17b7\u17bd\u0007", + "\u03fe\u0002\u0002\u17b8\u17be\u0007\u03ed\u0002\u0002\u17b9\u17bb\u0007", + "\b\u0002\u0002\u17ba\u17b9\u0003\u0002\u0002\u0002\u17ba\u17bb\u0003", + "\u0002\u0002\u0002\u17bb\u17bc\u0003\u0002\u0002\u0002\u17bc\u17be\u0005", + "\u0258\u012d\u0002\u17bd\u17b8\u0003\u0002\u0002\u0002\u17bd\u17ba\u0003", + "\u0002\u0002\u0002\u17be\u17bf\u0003\u0002\u0002\u0002\u17bf\u17e7\u0007", + "\u03ff\u0002\u0002\u17c0\u17c1\u0007\u00f1\u0002\u0002\u17c1\u17c2\u0007", + "\u03fe\u0002\u0002\u17c2\u17c3\u0007/\u0002\u0002\u17c3\u17c4\u0005", + "\u0256\u012c\u0002\u17c4\u17c5\u0007\u03ff\u0002\u0002\u17c5\u17e7\u0003", + "\u0002\u0002\u0002\u17c6\u17c7\tq\u0002\u0002\u17c7\u17c9\u0007\u03fe", + "\u0002\u0002\u17c8\u17ca\u0007\b\u0002\u0002\u17c9\u17c8\u0003\u0002", + "\u0002\u0002\u17c9\u17ca\u0003\u0002\u0002\u0002\u17ca\u17cb\u0003\u0002", + "\u0002\u0002\u17cb\u17cc\u0005\u0258\u012d\u0002\u17cc\u17cd\u0007\u03ff", + "\u0002\u0002\u17cd\u17e7\u0003\u0002\u0002\u0002\u17ce\u17cf\u0007\u00f2", + "\u0002\u0002\u17cf\u17d1\u0007\u03fe\u0002\u0002\u17d0\u17d2\u0007/", + "\u0002\u0002\u17d1\u17d0\u0003\u0002\u0002\u0002\u17d1\u17d2\u0003\u0002", + "\u0002\u0002\u17d2\u17d3\u0003\u0002\u0002\u0002\u17d3\u17de\u0005\u0256", + "\u012c\u0002\u17d4\u17d5\u0007q\u0002\u0002\u17d5\u17d6\u0007\u0012", + "\u0002\u0002\u17d6\u17db\u0005\u00d2j\u0002\u17d7\u17d8\u0007\u0400", + "\u0002\u0002\u17d8\u17da\u0005\u00d2j\u0002\u17d9\u17d7\u0003\u0002", + "\u0002\u0002\u17da\u17dd\u0003\u0002\u0002\u0002\u17db\u17d9\u0003\u0002", + "\u0002\u0002\u17db\u17dc\u0003\u0002\u0002\u0002\u17dc\u17df\u0003\u0002", + "\u0002\u0002\u17dd\u17db\u0003\u0002\u0002\u0002\u17de\u17d4\u0003\u0002", + "\u0002\u0002\u17de\u17df\u0003\u0002\u0002\u0002\u17df\u17e2\u0003\u0002", + "\u0002\u0002\u17e0\u17e1\u0007\u008d\u0002\u0002\u17e1\u17e3\u0007\u040d", + "\u0002\u0002\u17e2\u17e0\u0003\u0002\u0002\u0002\u17e2\u17e3\u0003\u0002", + "\u0002\u0002\u17e3\u17e4\u0003\u0002\u0002\u0002\u17e4\u17e5\u0007\u03ff", + "\u0002\u0002\u17e5\u17e7\u0003\u0002\u0002\u0002\u17e6\u17ae\u0003\u0002", + "\u0002\u0002\u17e6\u17b6\u0003\u0002\u0002\u0002\u17e6\u17c0\u0003\u0002", + "\u0002\u0002\u17e6\u17c6\u0003\u0002\u0002\u0002\u17e6\u17ce\u0003\u0002", + "\u0002\u0002\u17e7\u0251\u0003\u0002\u0002\u0002\u17e8\u1800\u0005\u0276", + "\u013c\u0002\u17e9\u1800\u0007\u0280\u0002\u0002\u17ea\u1800\u0007\u0101", + "\u0002\u0002\u17eb\u1800\u0007\u00fd\u0002\u0002\u17ec\u1800\u0007\u00fe", + "\u0002\u0002\u17ed\u1800\u0007\u00ff\u0002\u0002\u17ee\u1800\u0007\u0102", + "\u0002\u0002\u17ef\u1800\u0007\u0103\u0002\u0002\u17f0\u1800\u0007\u0104", + "\u0002\u0002\u17f1\u1800\u0007G\u0002\u0002\u17f2\u1800\u0007N\u0002", + "\u0002\u17f3\u1800\u0007\u0100\u0002\u0002\u17f4\u1800\u0007\u0106\u0002", + "\u0002\u17f5\u1800\u0007\u01b5\u0002\u0002\u17f6\u1800\u0007\u0107\u0002", + "\u0002\u17f7\u1800\u0007\u0081\u0002\u0002\u17f8\u1800\u0007\u0109\u0002", + "\u0002\u17f9\u1800\u0007\u010a\u0002\u0002\u17fa\u1800\u0007\u010b\u0002", + "\u0002\u17fb\u1800\u0007\u010c\u0002\u0002\u17fc\u1800\u0007\u010d\u0002", + "\u0002\u17fd\u1800\u0007\u010e\u0002\u0002\u17fe\u1800\u0007\u010f\u0002", + "\u0002\u17ff\u17e8\u0003\u0002\u0002\u0002\u17ff\u17e9\u0003\u0002\u0002", + "\u0002\u17ff\u17ea\u0003\u0002\u0002\u0002\u17ff\u17eb\u0003\u0002\u0002", + "\u0002\u17ff\u17ec\u0003\u0002\u0002\u0002\u17ff\u17ed\u0003\u0002\u0002", + "\u0002\u17ff\u17ee\u0003\u0002\u0002\u0002\u17ff\u17ef\u0003\u0002\u0002", + "\u0002\u17ff\u17f0\u0003\u0002\u0002\u0002\u17ff\u17f1\u0003\u0002\u0002", + "\u0002\u17ff\u17f2\u0003\u0002\u0002\u0002\u17ff\u17f3\u0003\u0002\u0002", + "\u0002\u17ff\u17f4\u0003\u0002\u0002\u0002\u17ff\u17f5\u0003\u0002\u0002", + "\u0002\u17ff\u17f6\u0003\u0002\u0002\u0002\u17ff\u17f7\u0003\u0002\u0002", + "\u0002\u17ff\u17f8\u0003\u0002\u0002\u0002\u17ff\u17f9\u0003\u0002\u0002", + "\u0002\u17ff\u17fa\u0003\u0002\u0002\u0002\u17ff\u17fb\u0003\u0002\u0002", + "\u0002\u17ff\u17fc\u0003\u0002\u0002\u0002\u17ff\u17fd\u0003\u0002\u0002", + "\u0002\u17ff\u17fe\u0003\u0002\u0002\u0002\u1800\u0253\u0003\u0002\u0002", + "\u0002\u1801\u1802\tr\u0002\u0002\u1802\u1803\u0007\u03fe\u0002\u0002", + "\u1803\u1804\u0005\u0258\u012d\u0002\u1804\u1805\u0007\u03ff\u0002\u0002", + "\u1805\u0255\u0003\u0002\u0002\u0002\u1806\u180b\u0005\u021e\u0110\u0002", + "\u1807\u180b\u0005\u01f6\u00fc\u0002\u1808\u180b\u0005\u0246\u0124\u0002", + "\u1809\u180b\u0005\u025a\u012e\u0002\u180a\u1806\u0003\u0002\u0002\u0002", + "\u180a\u1807\u0003\u0002\u0002\u0002\u180a\u1808\u0003\u0002\u0002\u0002", + "\u180a\u1809\u0003\u0002\u0002\u0002\u180b\u1815\u0003\u0002\u0002\u0002", + "\u180c\u1811\u0007\u0400\u0002\u0002\u180d\u1812\u0005\u021e\u0110\u0002", + "\u180e\u1812\u0005\u01f6\u00fc\u0002\u180f\u1812\u0005\u0246\u0124\u0002", + "\u1810\u1812\u0005\u025a\u012e\u0002\u1811\u180d\u0003\u0002\u0002\u0002", + "\u1811\u180e\u0003\u0002\u0002\u0002\u1811\u180f\u0003\u0002\u0002\u0002", + "\u1811\u1810\u0003\u0002\u0002\u0002\u1812\u1814\u0003\u0002\u0002\u0002", + "\u1813\u180c\u0003\u0002\u0002\u0002\u1814\u1817\u0003\u0002\u0002\u0002", + "\u1815\u1813\u0003\u0002\u0002\u0002\u1815\u1816\u0003\u0002\u0002\u0002", + "\u1816\u0257\u0003\u0002\u0002\u0002\u1817\u1815\u0003\u0002\u0002\u0002", + "\u1818\u181d\u0005\u021e\u0110\u0002\u1819\u181d\u0005\u01f6\u00fc\u0002", + "\u181a\u181d\u0005\u0246\u0124\u0002\u181b\u181d\u0005\u025a\u012e\u0002", + "\u181c\u1818\u0003\u0002\u0002\u0002\u181c\u1819\u0003\u0002\u0002\u0002", + "\u181c\u181a\u0003\u0002\u0002\u0002\u181c\u181b\u0003\u0002\u0002\u0002", + "\u181d\u0259\u0003\u0002\u0002\u0002\u181e\u181f\b\u012e\u0001\u0002", + "\u181f\u1820\ts\u0002\u0002\u1820\u182a\u0005\u025a\u012e\u0006\u1821", + "\u1822\u0005\u025c\u012f\u0002\u1822\u1824\u0007Q\u0002\u0002\u1823", + "\u1825\u0007h\u0002\u0002\u1824\u1823\u0003\u0002\u0002\u0002\u1824", + "\u1825\u0003\u0002\u0002\u0002\u1825\u1826\u0003\u0002\u0002\u0002\u1826", + "\u1827\tt\u0002\u0002\u1827\u182a\u0003\u0002\u0002\u0002\u1828\u182a", + "\u0005\u025c\u012f\u0002\u1829\u181e\u0003\u0002\u0002\u0002\u1829\u1821", + "\u0003\u0002\u0002\u0002\u1829\u1828\u0003\u0002\u0002\u0002\u182a\u1831", + "\u0003\u0002\u0002\u0002\u182b\u182c\f\u0005\u0002\u0002\u182c\u182d", + "\u0005\u0264\u0133\u0002\u182d\u182e\u0005\u025a\u012e\u0006\u182e\u1830", + "\u0003\u0002\u0002\u0002\u182f\u182b\u0003\u0002\u0002\u0002\u1830\u1833", + "\u0003\u0002\u0002\u0002\u1831\u182f\u0003\u0002\u0002\u0002\u1831\u1832", + "\u0003\u0002\u0002\u0002\u1832\u025b\u0003\u0002\u0002\u0002\u1833\u1831", + "\u0003\u0002\u0002\u0002\u1834\u1837\b\u012f\u0001\u0002\u1835\u1836", + "\u0007\u0418\u0002\u0002\u1836\u1838\u0007\u03e4\u0002\u0002\u1837\u1835", + "\u0003\u0002\u0002\u0002\u1837\u1838\u0003\u0002\u0002\u0002\u1838\u1839", + "\u0003\u0002\u0002\u0002\u1839\u183a\u0005\u025e\u0130\u0002\u183a\u1874", + "\u0003\u0002\u0002\u0002\u183b\u183c\f\t\u0002\u0002\u183c\u183d\u0005", + "\u0262\u0132\u0002\u183d\u183e\u0005\u025c\u012f\n\u183e\u1873\u0003", + "\u0002\u0002\u0002\u183f\u1841\f\u0007\u0002\u0002\u1840\u1842\u0007", + "h\u0002\u0002\u1841\u1840\u0003\u0002\u0002\u0002\u1841\u1842\u0003", + "\u0002\u0002\u0002\u1842\u1843\u0003\u0002\u0002\u0002\u1843\u1844\u0007", + "\u0010\u0002\u0002\u1844\u1845\u0005\u025c\u012f\u0002\u1845\u1846\u0007", + "\f\u0002\u0002\u1846\u1847\u0005\u025c\u012f\b\u1847\u1873\u0003\u0002", + "\u0002\u0002\u1848\u1849\f\u0006\u0002\u0002\u1849\u184a\u0007\u0213", + "\u0002\u0002\u184a\u184b\u0007Z\u0002\u0002\u184b\u1873\u0005\u025c", + "\u012f\u0007\u184c\u184e\f\u0004\u0002\u0002\u184d\u184f\u0007h\u0002", + "\u0002\u184e\u184d\u0003\u0002\u0002\u0002\u184e\u184f\u0003\u0002\u0002", + "\u0002\u184f\u1850\u0003\u0002\u0002\u0002\u1850\u1851\tu\u0002\u0002", + "\u1851\u1873\u0005\u025c\u012f\u0005\u1852\u1854\f\u000b\u0002\u0002", + "\u1853\u1855\u0007h\u0002\u0002\u1854\u1853\u0003\u0002\u0002\u0002", + "\u1854\u1855\u0003\u0002\u0002\u0002\u1855\u1856\u0003\u0002\u0002\u0002", + "\u1856\u1857\u0007I\u0002\u0002\u1857\u185a\u0007\u03fe\u0002\u0002", + "\u1858\u185b\u0005\u00b4[\u0002\u1859\u185b\u0005\u0232\u011a\u0002", + "\u185a\u1858\u0003\u0002\u0002\u0002\u185a\u1859\u0003\u0002\u0002\u0002", + "\u185b\u185c\u0003\u0002\u0002\u0002\u185c\u185d\u0007\u03ff\u0002\u0002", + "\u185d\u1873\u0003\u0002\u0002\u0002\u185e\u185f\f\n\u0002\u0002\u185f", + "\u1860\u0007Q\u0002\u0002\u1860\u1873\u0005\u021c\u010f\u0002\u1861", + "\u1862\f\b\u0002\u0002\u1862\u1863\u0005\u0262\u0132\u0002\u1863\u1864", + "\tv\u0002\u0002\u1864\u1865\u0007\u03fe\u0002\u0002\u1865\u1866\u0005", + "\u00b4[\u0002\u1866\u1867\u0007\u03ff\u0002\u0002\u1867\u1873\u0003", + "\u0002\u0002\u0002\u1868\u186a\f\u0005\u0002\u0002\u1869\u186b\u0007", + "h\u0002\u0002\u186a\u1869\u0003\u0002\u0002\u0002\u186a\u186b\u0003", + "\u0002\u0002\u0002\u186b\u186c\u0003\u0002\u0002\u0002\u186c\u186d\u0007", + "Z\u0002\u0002\u186d\u1870\u0005\u025c\u012f\u0002\u186e\u186f\u0007", + "\u015c\u0002\u0002\u186f\u1871\u0007\u040d\u0002\u0002\u1870\u186e\u0003", + "\u0002\u0002\u0002\u1870\u1871\u0003\u0002\u0002\u0002\u1871\u1873\u0003", + "\u0002\u0002\u0002\u1872\u183b\u0003\u0002\u0002\u0002\u1872\u183f\u0003", + "\u0002\u0002\u0002\u1872\u1848\u0003\u0002\u0002\u0002\u1872\u184c\u0003", + "\u0002\u0002\u0002\u1872\u1852\u0003\u0002\u0002\u0002\u1872\u185e\u0003", + "\u0002\u0002\u0002\u1872\u1861\u0003\u0002\u0002\u0002\u1872\u1868\u0003", + "\u0002\u0002\u0002\u1873\u1876\u0003\u0002\u0002\u0002\u1874\u1872\u0003", + "\u0002\u0002\u0002\u1874\u1875\u0003\u0002\u0002\u0002\u1875\u025d\u0003", + "\u0002\u0002\u0002\u1876\u1874\u0003\u0002\u0002\u0002\u1877\u1878\b", + "\u0130\u0001\u0002\u1878\u18a5\u0005\u021e\u0110\u0002\u1879\u18a5\u0005", + "\u01f6\u00fc\u0002\u187a\u18a5\u0005\u0246\u0124\u0002\u187b\u18a5\u0005", + "\u01fc\u00ff\u0002\u187c\u187d\u0005\u0260\u0131\u0002\u187d\u187e\u0005", + "\u025e\u0130\u000b\u187e\u18a5\u0003\u0002\u0002\u0002\u187f\u1880\u0007", + "\u00d2\u0002\u0002\u1880\u18a5\u0005\u025e\u0130\n\u1881\u1882\u0007", + "\u03fe\u0002\u0002\u1882\u1887\u0005\u025a\u012e\u0002\u1883\u1884\u0007", + "\u0400\u0002\u0002\u1884\u1886\u0005\u025a\u012e\u0002\u1885\u1883\u0003", + "\u0002\u0002\u0002\u1886\u1889\u0003\u0002\u0002\u0002\u1887\u1885\u0003", + "\u0002\u0002\u0002\u1887\u1888\u0003\u0002\u0002\u0002\u1888\u188a\u0003", + "\u0002\u0002\u0002\u1889\u1887\u0003\u0002\u0002\u0002\u188a\u188b\u0007", + "\u03ff\u0002\u0002\u188b\u18a5\u0003\u0002\u0002\u0002\u188c\u188d\u0007", + "\u0201\u0002\u0002\u188d\u188e\u0007\u03fe\u0002\u0002\u188e\u1891\u0005", + "\u025a\u012e\u0002\u188f\u1890\u0007\u0400\u0002\u0002\u1890\u1892\u0005", + "\u025a\u012e\u0002\u1891\u188f\u0003\u0002\u0002\u0002\u1892\u1893\u0003", + "\u0002\u0002\u0002\u1893\u1891\u0003\u0002\u0002\u0002\u1893\u1894\u0003", + "\u0002\u0002\u0002\u1894\u1895\u0003\u0002\u0002\u0002\u1895\u1896\u0007", + "\u03ff\u0002\u0002\u1896\u18a5\u0003\u0002\u0002\u0002\u1897\u1898\u0007", + "7\u0002\u0002\u1898\u1899\u0007\u03fe\u0002\u0002\u1899\u189a\u0005", + "\u00b4[\u0002\u189a\u189b\u0007\u03ff\u0002\u0002\u189b\u18a5\u0003", + "\u0002\u0002\u0002\u189c\u189d\u0007\u03fe\u0002\u0002\u189d\u189e\u0005", + "\u00b4[\u0002\u189e\u189f\u0007\u03ff\u0002\u0002\u189f\u18a5\u0003", + "\u0002\u0002\u0002\u18a0\u18a1\u0007O\u0002\u0002\u18a1\u18a2\u0005", + "\u025a\u012e\u0002\u18a2\u18a3\u0005<\u001f\u0002\u18a3\u18a5\u0003", + "\u0002\u0002\u0002\u18a4\u1877\u0003\u0002\u0002\u0002\u18a4\u1879\u0003", + "\u0002\u0002\u0002\u18a4\u187a\u0003\u0002\u0002\u0002\u18a4\u187b\u0003", + "\u0002\u0002\u0002\u18a4\u187c\u0003\u0002\u0002\u0002\u18a4\u187f\u0003", + "\u0002\u0002\u0002\u18a4\u1881\u0003\u0002\u0002\u0002\u18a4\u188c\u0003", + "\u0002\u0002\u0002\u18a4\u1897\u0003\u0002\u0002\u0002\u18a4\u189c\u0003", + "\u0002\u0002\u0002\u18a4\u18a0\u0003\u0002\u0002\u0002\u18a5\u18b3\u0003", + "\u0002\u0002\u0002\u18a6\u18a7\f\u0004\u0002\u0002\u18a7\u18a8\u0005", + "\u0266\u0134\u0002\u18a8\u18a9\u0005\u025e\u0130\u0005\u18a9\u18b2\u0003", + "\u0002\u0002\u0002\u18aa\u18ab\f\u0003\u0002\u0002\u18ab\u18ac\u0005", + "\u0268\u0135\u0002\u18ac\u18ad\u0005\u025e\u0130\u0004\u18ad\u18b2\u0003", + "\u0002\u0002\u0002\u18ae\u18af\f\r\u0002\u0002\u18af\u18b0\u0007\u001a", + "\u0002\u0002\u18b0\u18b2\u0005\u0200\u0101\u0002\u18b1\u18a6\u0003\u0002", + "\u0002\u0002\u18b1\u18aa\u0003\u0002\u0002\u0002\u18b1\u18ae\u0003\u0002", + "\u0002\u0002\u18b2\u18b5\u0003\u0002\u0002\u0002\u18b3\u18b1\u0003\u0002", + "\u0002\u0002\u18b3\u18b4\u0003\u0002\u0002\u0002\u18b4\u025f\u0003\u0002", + "\u0002\u0002\u18b5\u18b3\u0003\u0002\u0002\u0002\u18b6\u18b7\tw\u0002", + "\u0002\u18b7\u0261\u0003\u0002\u0002\u0002\u18b8\u18c7\u0007\u03f5\u0002", + "\u0002\u18b9\u18c7\u0007\u03f6\u0002\u0002\u18ba\u18c7\u0007\u03f7\u0002", + "\u0002\u18bb\u18bc\u0007\u03f7\u0002\u0002\u18bc\u18c7\u0007\u03f5\u0002", + "\u0002\u18bd\u18be\u0007\u03f6\u0002\u0002\u18be\u18c7\u0007\u03f5\u0002", + "\u0002\u18bf\u18c0\u0007\u03f7\u0002\u0002\u18c0\u18c7\u0007\u03f6\u0002", + "\u0002\u18c1\u18c2\u0007\u03f8\u0002\u0002\u18c2\u18c7\u0007\u03f5\u0002", + "\u0002\u18c3\u18c4\u0007\u03f7\u0002\u0002\u18c4\u18c5\u0007\u03f5\u0002", + "\u0002\u18c5\u18c7\u0007\u03f6\u0002\u0002\u18c6\u18b8\u0003\u0002\u0002", + "\u0002\u18c6\u18b9\u0003\u0002\u0002\u0002\u18c6\u18ba\u0003\u0002\u0002", + "\u0002\u18c6\u18bb\u0003\u0002\u0002\u0002\u18c6\u18bd\u0003\u0002\u0002", + "\u0002\u18c6\u18bf\u0003\u0002\u0002\u0002\u18c6\u18c1\u0003\u0002\u0002", + "\u0002\u18c6\u18c3\u0003\u0002\u0002\u0002\u18c7\u0263\u0003\u0002\u0002", + "\u0002\u18c8\u18d0\u0007\f\u0002\u0002\u18c9\u18ca\u0007\u03fb\u0002", + "\u0002\u18ca\u18d0\u0007\u03fb\u0002\u0002\u18cb\u18d0\u0007\u00b2\u0002", + "\u0002\u18cc\u18d0\u0007p\u0002\u0002\u18cd\u18ce\u0007\u03fa\u0002", + "\u0002\u18ce\u18d0\u0007\u03fa\u0002\u0002\u18cf\u18c8\u0003\u0002\u0002", + "\u0002\u18cf\u18c9\u0003\u0002\u0002\u0002\u18cf\u18cb\u0003\u0002\u0002", + "\u0002\u18cf\u18cc\u0003\u0002\u0002\u0002\u18cf\u18cd\u0003\u0002\u0002", + "\u0002\u18d0\u0265\u0003\u0002\u0002\u0002\u18d1\u18d2\u0007\u03f7\u0002", + "\u0002\u18d2\u18d9\u0007\u03f7\u0002\u0002\u18d3\u18d4\u0007\u03f6\u0002", + "\u0002\u18d4\u18d9\u0007\u03f6\u0002\u0002\u18d5\u18d9\u0007\u03fb\u0002", + "\u0002\u18d6\u18d9\u0007\u03fc\u0002\u0002\u18d7\u18d9\u0007\u03fa\u0002", + "\u0002\u18d8\u18d1\u0003\u0002\u0002\u0002\u18d8\u18d3\u0003\u0002\u0002", + "\u0002\u18d8\u18d5\u0003\u0002\u0002\u0002\u18d8\u18d6\u0003\u0002\u0002", + "\u0002\u18d8\u18d7\u0003\u0002\u0002\u0002\u18d9\u0267\u0003\u0002\u0002", + "\u0002\u18da\u18db\tx\u0002\u0002\u18db\u0269\u0003\u0002\u0002\u0002", + "\u18dc\u18dd\ty\u0002\u0002\u18dd\u026b\u0003\u0002\u0002\u0002\u18de", + "\u18df\tz\u0002\u0002\u18df\u026d\u0003\u0002\u0002\u0002\u18e0\u18e1", + "\t{\u0002\u0002\u18e1\u026f\u0003\u0002\u0002\u0002\u18e2\u18e3\t|\u0002", + "\u0002\u18e3\u0271\u0003\u0002\u0002\u0002\u18e4\u18e5\t}\u0002\u0002", + "\u18e5\u0273\u0003\u0002\u0002\u0002\u18e6\u18e7\t~\u0002\u0002\u18e7", + "\u0275\u0003\u0002\u0002\u0002\u18e8\u18e9\t\u007f\u0002\u0002\u18e9", + "\u0277\u0003\u0002\u0002\u0002\u03a2\u0279\u027c\u0282\u0285\u0288\u028a", + "\u028f\u0292\u0295\u029e\u02c5\u02d1\u02dc\u02ed\u02f2\u02fe\u0319\u0322", + "\u0327\u032d\u0332\u0336\u033f\u0342\u0345\u0349\u0350\u0353\u0358\u0360", + "\u0365\u036a\u036d\u036f\u037b\u037e\u0382\u0385\u0389\u038c\u0390\u0393", + "\u0396\u039a\u039d\u03a1\u03a7\u03ad\u03b3\u03ba\u03c1\u03c7\u03cd\u03d6", + "\u03db\u03eb\u03f2\u03f6\u0400\u0404\u0408\u040c\u0410\u0415\u0418\u041b", + "\u041e\u0421\u0427\u042b\u0431\u0436\u0439\u043c\u043e\u0449\u044d\u0450", + "\u045e\u0461\u0465\u0468\u046c\u046f\u0473\u0476\u047a\u047d\u0480\u0484", + "\u0487\u048b\u0491\u049e\u04a5\u04aa\u04ad\u04b2\u04ba\u04c0\u04c4\u04c7", + "\u04cc\u04cf\u04d3\u04d6\u04da\u04dd\u04e5\u04e7\u04ee\u04f4\u04fc\u04ff", + "\u0506\u0509\u050b\u0511\u0517\u0528\u052f\u0536\u0541\u0544\u0551\u055e", + "\u0563\u0573\u057b\u0585\u058b\u0595\u0598\u059d\u05aa\u05b1\u05b8\u05ba", + "\u05c1\u05c5\u05c7\u05cc\u05cf\u05d5\u05da\u05dc\u05e0\u05e3\u05e6\u05ec", + "\u05f1\u05f3\u05f8\u05ff\u0601\u0608\u060d\u0611\u0614\u061c\u0624\u0626", + "\u062e\u0632\u0635\u063b\u0640\u0643\u0649\u064c\u0650\u0655\u065a\u065e", + "\u0663\u0666\u066a\u066e\u0672\u0676\u067b\u0680\u0685\u068b\u0690\u0695", + "\u069b\u06a0\u06a5\u06aa\u06af\u06b4\u06b9\u06be\u06c3\u06c8\u06cd\u06d3", + "\u06d8\u06de\u06e8\u06ef\u06f1\u06f9\u06fe\u0701\u0709\u070f\u071f\u072b", + "\u072d\u0730\u0738\u073e\u0744\u0751\u0758\u0760\u0763\u076e\u0776\u0779", + "\u0785\u078c\u0794\u0797\u07a3\u07aa\u07b2\u07b5\u07bc\u07c4\u07c7\u07c9", + "\u07ce\u07d6\u07df\u07e3\u07e7\u07ec\u07f2\u07f8\u07fd\u0802\u0807\u080c", + "\u080f\u0814\u0819\u0823\u0827\u082e\u0833\u0836\u083b\u083e\u0842\u0846", + "\u084e\u0861\u0864\u0867\u086b\u0875\u0882\u0889\u088c\u0895\u0898\u089b", + "\u08a6\u08a9\u08ad\u08b5\u08b8\u08bd\u08c5\u08cb\u08cf\u08d3\u08d8\u08dd", + "\u08e4\u08e8\u08f3\u08fb\u08fe\u0904\u090a\u090c\u0911\u0914\u091a\u0920", + "\u0922\u0926\u0929\u092c\u0932\u0938\u093b\u0941\u0947\u0949\u094e\u0956", + "\u0958\u0961\u0966\u096e\u0972\u097a\u0984\u0989\u0990\u0994\u0998\u09b5", + "\u09b9\u09c5\u09c8\u09d1\u09e2\u09ee\u09f5\u09fc\u0a0b\u0a18\u0a1e\u0a24", + "\u0a2a\u0a30\u0a36\u0a3c\u0a41\u0a48\u0a4f\u0a56\u0a5b\u0a5e\u0a60\u0a6e", + "\u0a75\u0a7c\u0a82\u0a86\u0a8a\u0a91\u0a94\u0a99\u0aa0\u0aa7\u0aab\u0ab4", + "\u0abd\u0ac6\u0ac9\u0acd\u0ad6\u0ada\u0add\u0ae0\u0ae6\u0ae9\u0aef\u0af8", + "\u0afb\u0b06\u0b09\u0b0e\u0b11\u0b16\u0b20\u0b25\u0b2b\u0b2d\u0b33\u0b35", + "\u0b3b\u0b43\u0b48\u0b50\u0b53\u0b58\u0b5b\u0b60\u0b68\u0b70\u0b76\u0b7e", + "\u0b83\u0b8b\u0b8e\u0b92\u0b95\u0b9d\u0ba3\u0bac\u0baf\u0bb3\u0bb7\u0bbd", + "\u0bc1\u0bc5\u0bc7\u0bca\u0bcd\u0bd0\u0bd6\u0bda\u0bdd\u0be0\u0be3\u0be6", + "\u0be8\u0bec\u0bf2\u0bf8\u0bfd\u0c00\u0c06\u0c0a\u0c12\u0c16\u0c19\u0c1c", + "\u0c25\u0c29\u0c2c\u0c30\u0c34\u0c37\u0c3a\u0c3f\u0c45\u0c49\u0c53\u0c59", + "\u0c5d\u0c63\u0c67\u0c6d\u0c70\u0c7c\u0c80\u0c84\u0c8c\u0c90\u0c98\u0c9b", + "\u0c9f\u0ca2\u0caa\u0caf\u0cb2\u0cb5\u0cb9\u0cbc\u0cc5\u0cca\u0cd3\u0cd8", + "\u0cdf\u0ce6\u0cee\u0cf3\u0cfb\u0cfe\u0d01\u0d08\u0d0b\u0d12\u0d15\u0d1d", + "\u0d23\u0d2e\u0d31\u0d3c\u0d42\u0d46\u0d51\u0d56\u0d58\u0d5c\u0d66\u0d70", + "\u0d76\u0d7b\u0d7e\u0d81\u0d84\u0d8a\u0d8f\u0d92\u0d95\u0d98\u0d9a\u0da0", + "\u0da5\u0da8\u0dab\u0daf\u0db5\u0db9\u0dc3\u0dc7\u0dcd\u0dd6\u0dd9\u0ddd", + "\u0de0\u0de4\u0de8\u0deb\u0ded\u0df5\u0e01\u0e07\u0e09\u0e0f\u0e11\u0e13", + "\u0e19\u0e21\u0e29\u0e2f\u0e38\u0e3d\u0e3f\u0e43\u0e47\u0e4d\u0e54\u0e58", + "\u0e61\u0e64\u0e68\u0e6c\u0e70\u0e73\u0e76\u0e79\u0e7d\u0e81\u0e84\u0e87", + "\u0e8a\u0e91\u0e95\u0ea4\u0eb1\u0eb9\u0ec3\u0ec7\u0eca\u0ed0\u0ed3\u0ed6", + "\u0edf\u0ee8\u0ef2\u0ef6\u0f00\u0f0a\u0f12\u0f15\u0f1e\u0f21\u0f25\u0f2a", + "\u0f2e\u0f37\u0f3a\u0f59\u0f5c\u0f5f\u0f97\u0f9c\u0fb8\u0fc6\u0fcd\u0fd1", + "\u0fd7\u0fdf\u0fe1\u0fec\u0ff6\u0ffd\u1003\u100b\u1010\u1018\u1020\u1028", + "\u1030\u1036\u1039\u103d\u1042\u1047\u104d\u104f\u105a\u105f\u1066\u1068", + "\u1076\u107c\u1081\u1086\u108c\u1093\u109b\u10a3\u10a8\u10ae\u10b1\u10b9", + "\u10c0\u10c9\u10cc\u10dd\u10e5\u10ed\u10f1\u10f8\u10fe\u1106\u110f\u1115", + "\u111c\u1123\u1128\u112b\u112d\u1133\u1135\u1139\u113b\u113e\u1147\u114d", + "\u1154\u115b\u1160\u1163\u1165\u116b\u116d\u1171\u1173\u1176\u117b\u1182", + "\u118b\u1190\u1199\u11a0\u11a5\u11a8\u11aa\u11b0\u11b2\u11b5\u11c1\u11c7", + "\u11d0\u11d9\u11de\u11e7\u11ed\u11f8\u11fb\u1207\u120e\u1213\u1222\u122d", + "\u1230\u123a\u1244\u124e\u1258\u125c\u1260\u126a\u126f\u12a1\u12b3\u12bb", + "\u12c6\u12cd\u12d1\u12d8\u12dd\u12e0\u12e3\u12ec\u12f0\u130e\u1315\u1319", + "\u1320\u1323\u1333\u1336\u1340\u1344\u134a\u134d\u1352\u1356\u135d\u1360", + "\u1366\u137e\u138b\u138e\u1398\u13a0\u13a4\u13ab\u13ae\u13b7\u13bd\u13c3", + "\u13cd\u13cf\u13d5\u13d8\u13db\u13e7\u13ea\u13f0\u13f3\u13fb\u1403\u1409", + "\u140d\u141b\u1427\u142e\u1431\u1438\u143f\u1444\u1449\u1454\u145f\u1465", + "\u146a\u1477\u1479\u147e\u1483\u1485\u148c\u1493\u1496\u1499\u149f\u14a3", + "\u14a9\u14af\u14bc\u14c1\u14c9\u14cc\u14d1\u14d6\u14de\u14e1\u14e7\u14eb", + "\u14f8\u14fe\u150a\u150d\u1516\u151b\u1521\u1528\u152a\u152e\u1534\u1537", + "\u1541\u1545\u1559\u1560\u1562\u1569\u156b\u156f\u1574\u157f\u1584\u158a", + "\u158d\u1591\u1596\u1599\u159d\u15a1\u15a3\u15a8\u15ad\u15ba\u15bd\u15c1", + "\u15c4\u15c9\u15cc\u15d0\u15d5\u15d8\u15dd\u15e0\u15e6\u15e9\u15ed\u15f0", + "\u15f3\u15f7\u15fa\u15fd\u1601\u1604\u1607\u160a\u160e\u1611\u1614\u1619", + "\u161e\u1623\u1626\u162b\u162e\u1633\u1636\u163a\u163e\u1646\u164d\u1651", + "\u1656\u1659\u165e\u1662\u1664\u1674\u167d\u1685\u168e\u1698\u16a0\u16a8", + "\u16b0\u16b8\u16bd\u16c4\u16c6\u16cb\u16ce\u16d3\u16d6\u16da\u16e8\u16ef", + "\u16f4\u1716\u171a\u1722\u1726\u172f\u1737\u173c\u1744\u1749\u174e\u1750", + "\u1759\u175e\u1766\u176b\u1773\u177b\u177e\u1788\u1793\u17a0\u17a8\u17ac", + "\u17b1\u17ba\u17bd\u17c9\u17d1\u17db\u17de\u17e2\u17e6\u17ff\u180a\u1811", + "\u1815\u181c\u1824\u1829\u1831\u1837\u1841\u184e\u1854\u185a\u186a\u1870", + "\u1872\u1874\u1887\u1893\u18a4\u18b1\u18b3\u18c6\u18cf\u18d8"].join(""); + + +var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); + +var sharedContextCache = new antlr4.PredictionContextCache(); + +var literalNames = [ null, null, null, null, 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'", "'''", "'\"'", "'`'", "':'" ]; + +var symbolicNames = [ 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" ]; + +var ruleNames = [ "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" ]; + +function MySQLParser (input) { + antlr4.Parser.call(this, input); + this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); + this.ruleNames = ruleNames; + this.literalNames = literalNames; + this.symbolicNames = symbolicNames; + return this; +} + +MySQLParser.prototype = Object.create(antlr4.Parser.prototype); +MySQLParser.prototype.constructor = MySQLParser; + +Object.defineProperty(MySQLParser.prototype, "atn", { + get : function() { + return atn; + } +}); + +MySQLParser.EOF = antlr4.Token.EOF; +MySQLParser.SPACE = 1; +MySQLParser.SPEC_MYSQL_COMMENT = 2; +MySQLParser.COMMENT_INPUT = 3; +MySQLParser.LINE_COMMENT = 4; +MySQLParser.ADD = 5; +MySQLParser.ALL = 6; +MySQLParser.ALTER = 7; +MySQLParser.ALWAYS = 8; +MySQLParser.ANALYZE = 9; +MySQLParser.AND = 10; +MySQLParser.AS = 11; +MySQLParser.ASC = 12; +MySQLParser.BEFORE = 13; +MySQLParser.BETWEEN = 14; +MySQLParser.BOTH = 15; +MySQLParser.BY = 16; +MySQLParser.CALL = 17; +MySQLParser.CASCADE = 18; +MySQLParser.CASE = 19; +MySQLParser.CAST = 20; +MySQLParser.CHANGE = 21; +MySQLParser.CHARACTER = 22; +MySQLParser.CHECK = 23; +MySQLParser.COLLATE = 24; +MySQLParser.COLUMN = 25; +MySQLParser.CONDITION = 26; +MySQLParser.CONSTRAINT = 27; +MySQLParser.CONTINUE = 28; +MySQLParser.CONVERT = 29; +MySQLParser.CREATE = 30; +MySQLParser.CROSS = 31; +MySQLParser.CURRENT = 32; +MySQLParser.CURRENT_USER = 33; +MySQLParser.CURSOR = 34; +MySQLParser.DATABASE = 35; +MySQLParser.DATABASES = 36; +MySQLParser.DECLARE = 37; +MySQLParser.DEFAULT = 38; +MySQLParser.DELAYED = 39; +MySQLParser.DELETE = 40; +MySQLParser.DESC = 41; +MySQLParser.DESCRIBE = 42; +MySQLParser.DETERMINISTIC = 43; +MySQLParser.DIAGNOSTICS = 44; +MySQLParser.DISTINCT = 45; +MySQLParser.DISTINCTROW = 46; +MySQLParser.DROP = 47; +MySQLParser.EACH = 48; +MySQLParser.ELSE = 49; +MySQLParser.ELSEIF = 50; +MySQLParser.ENCLOSED = 51; +MySQLParser.ESCAPED = 52; +MySQLParser.EXISTS = 53; +MySQLParser.EXIT = 54; +MySQLParser.EXPLAIN = 55; +MySQLParser.FALSE = 56; +MySQLParser.FETCH = 57; +MySQLParser.FOR = 58; +MySQLParser.FORCE = 59; +MySQLParser.FOREIGN = 60; +MySQLParser.FROM = 61; +MySQLParser.FULLTEXT = 62; +MySQLParser.GENERATED = 63; +MySQLParser.GET = 64; +MySQLParser.GRANT = 65; +MySQLParser.GROUP = 66; +MySQLParser.HAVING = 67; +MySQLParser.HIGH_PRIORITY = 68; +MySQLParser.IF = 69; +MySQLParser.IGNORE = 70; +MySQLParser.IN = 71; +MySQLParser.INDEX = 72; +MySQLParser.INFILE = 73; +MySQLParser.INNER = 74; +MySQLParser.INOUT = 75; +MySQLParser.INSERT = 76; +MySQLParser.INTERVAL = 77; +MySQLParser.INTO = 78; +MySQLParser.IS = 79; +MySQLParser.ITERATE = 80; +MySQLParser.JOIN = 81; +MySQLParser.KEY = 82; +MySQLParser.KEYS = 83; +MySQLParser.KILL = 84; +MySQLParser.LEADING = 85; +MySQLParser.LEAVE = 86; +MySQLParser.LEFT = 87; +MySQLParser.LIKE = 88; +MySQLParser.LIMIT = 89; +MySQLParser.LINEAR = 90; +MySQLParser.LINES = 91; +MySQLParser.LOAD = 92; +MySQLParser.LOCK = 93; +MySQLParser.LOOP = 94; +MySQLParser.LOW_PRIORITY = 95; +MySQLParser.MASTER_BIND = 96; +MySQLParser.MASTER_SSL_VERIFY_SERVER_CERT = 97; +MySQLParser.MATCH = 98; +MySQLParser.MAXVALUE = 99; +MySQLParser.MODIFIES = 100; +MySQLParser.NATURAL = 101; +MySQLParser.NOT = 102; +MySQLParser.NO_WRITE_TO_BINLOG = 103; +MySQLParser.NULL_LITERAL = 104; +MySQLParser.NUMBER = 105; +MySQLParser.ON = 106; +MySQLParser.OPTIMIZE = 107; +MySQLParser.OPTION = 108; +MySQLParser.OPTIONALLY = 109; +MySQLParser.OR = 110; +MySQLParser.ORDER = 111; +MySQLParser.OUT = 112; +MySQLParser.OUTER = 113; +MySQLParser.OUTFILE = 114; +MySQLParser.PARTITION = 115; +MySQLParser.PRIMARY = 116; +MySQLParser.PROCEDURE = 117; +MySQLParser.PURGE = 118; +MySQLParser.RANGE = 119; +MySQLParser.READ = 120; +MySQLParser.READS = 121; +MySQLParser.REFERENCES = 122; +MySQLParser.REGEXP = 123; +MySQLParser.RELEASE = 124; +MySQLParser.RENAME = 125; +MySQLParser.REPEAT = 126; +MySQLParser.REPLACE = 127; +MySQLParser.REQUIRE = 128; +MySQLParser.RESIGNAL = 129; +MySQLParser.RESTRICT = 130; +MySQLParser.RETURN = 131; +MySQLParser.REVOKE = 132; +MySQLParser.RIGHT = 133; +MySQLParser.RLIKE = 134; +MySQLParser.SCHEMA = 135; +MySQLParser.SCHEMAS = 136; +MySQLParser.SELECT = 137; +MySQLParser.SET = 138; +MySQLParser.SEPARATOR = 139; +MySQLParser.SHOW = 140; +MySQLParser.SIGNAL = 141; +MySQLParser.SPATIAL = 142; +MySQLParser.SQL = 143; +MySQLParser.SQLEXCEPTION = 144; +MySQLParser.SQLSTATE = 145; +MySQLParser.SQLWARNING = 146; +MySQLParser.SQL_BIG_RESULT = 147; +MySQLParser.SQL_CALC_FOUND_ROWS = 148; +MySQLParser.SQL_SMALL_RESULT = 149; +MySQLParser.SSL = 150; +MySQLParser.STACKED = 151; +MySQLParser.STARTING = 152; +MySQLParser.STRAIGHT_JOIN = 153; +MySQLParser.TABLE = 154; +MySQLParser.TERMINATED = 155; +MySQLParser.THEN = 156; +MySQLParser.TO = 157; +MySQLParser.TRAILING = 158; +MySQLParser.TRIGGER = 159; +MySQLParser.TRUE = 160; +MySQLParser.UNDO = 161; +MySQLParser.UNION = 162; +MySQLParser.UNIQUE = 163; +MySQLParser.UNLOCK = 164; +MySQLParser.UNSIGNED = 165; +MySQLParser.UPDATE = 166; +MySQLParser.USAGE = 167; +MySQLParser.USE = 168; +MySQLParser.USING = 169; +MySQLParser.VALUES = 170; +MySQLParser.WHEN = 171; +MySQLParser.WHERE = 172; +MySQLParser.WHILE = 173; +MySQLParser.WITH = 174; +MySQLParser.WRITE = 175; +MySQLParser.XOR = 176; +MySQLParser.ZEROFILL = 177; +MySQLParser.TINYINT = 178; +MySQLParser.SMALLINT = 179; +MySQLParser.MEDIUMINT = 180; +MySQLParser.MIDDLEINT = 181; +MySQLParser.INT = 182; +MySQLParser.INT1 = 183; +MySQLParser.INT2 = 184; +MySQLParser.INT3 = 185; +MySQLParser.INT4 = 186; +MySQLParser.INT8 = 187; +MySQLParser.INTEGER = 188; +MySQLParser.BIGINT = 189; +MySQLParser.REAL = 190; +MySQLParser.DOUBLE = 191; +MySQLParser.PRECISION = 192; +MySQLParser.FLOAT = 193; +MySQLParser.FLOAT4 = 194; +MySQLParser.FLOAT8 = 195; +MySQLParser.DECIMAL = 196; +MySQLParser.DEC = 197; +MySQLParser.NUMERIC = 198; +MySQLParser.DATE = 199; +MySQLParser.TIME = 200; +MySQLParser.TIMESTAMP = 201; +MySQLParser.DATETIME = 202; +MySQLParser.YEAR = 203; +MySQLParser.CHAR = 204; +MySQLParser.VARCHAR = 205; +MySQLParser.NVARCHAR = 206; +MySQLParser.NATIONAL = 207; +MySQLParser.BINARY = 208; +MySQLParser.VARBINARY = 209; +MySQLParser.TINYBLOB = 210; +MySQLParser.BLOB = 211; +MySQLParser.MEDIUMBLOB = 212; +MySQLParser.LONG = 213; +MySQLParser.LONGBLOB = 214; +MySQLParser.TINYTEXT = 215; +MySQLParser.TEXT = 216; +MySQLParser.MEDIUMTEXT = 217; +MySQLParser.LONGTEXT = 218; +MySQLParser.ENUM = 219; +MySQLParser.VARYING = 220; +MySQLParser.SERIAL = 221; +MySQLParser.YEAR_MONTH = 222; +MySQLParser.DAY_HOUR = 223; +MySQLParser.DAY_MINUTE = 224; +MySQLParser.DAY_SECOND = 225; +MySQLParser.HOUR_MINUTE = 226; +MySQLParser.HOUR_SECOND = 227; +MySQLParser.MINUTE_SECOND = 228; +MySQLParser.SECOND_MICROSECOND = 229; +MySQLParser.MINUTE_MICROSECOND = 230; +MySQLParser.HOUR_MICROSECOND = 231; +MySQLParser.DAY_MICROSECOND = 232; +MySQLParser.JSON_VALID = 233; +MySQLParser.JSON_SCHEMA_VALID = 234; +MySQLParser.AVG = 235; +MySQLParser.BIT_AND = 236; +MySQLParser.BIT_OR = 237; +MySQLParser.BIT_XOR = 238; +MySQLParser.COUNT = 239; +MySQLParser.GROUP_CONCAT = 240; +MySQLParser.MAX = 241; +MySQLParser.MIN = 242; +MySQLParser.STD = 243; +MySQLParser.STDDEV = 244; +MySQLParser.STDDEV_POP = 245; +MySQLParser.STDDEV_SAMP = 246; +MySQLParser.SUM = 247; +MySQLParser.VAR_POP = 248; +MySQLParser.VAR_SAMP = 249; +MySQLParser.VARIANCE = 250; +MySQLParser.CURRENT_DATE = 251; +MySQLParser.CURRENT_TIME = 252; +MySQLParser.CURRENT_TIMESTAMP = 253; +MySQLParser.LOCALTIME = 254; +MySQLParser.CURDATE = 255; +MySQLParser.CURTIME = 256; +MySQLParser.DATE_ADD = 257; +MySQLParser.DATE_SUB = 258; +MySQLParser.EXTRACT = 259; +MySQLParser.LOCALTIMESTAMP = 260; +MySQLParser.NOW = 261; +MySQLParser.POSITION = 262; +MySQLParser.SUBSTR = 263; +MySQLParser.SUBSTRING = 264; +MySQLParser.SYSDATE = 265; +MySQLParser.TRIM = 266; +MySQLParser.UTC_DATE = 267; +MySQLParser.UTC_TIME = 268; +MySQLParser.UTC_TIMESTAMP = 269; +MySQLParser.ACCOUNT = 270; +MySQLParser.ACTION = 271; +MySQLParser.AFTER = 272; +MySQLParser.AGGREGATE = 273; +MySQLParser.ALGORITHM = 274; +MySQLParser.ANY = 275; +MySQLParser.AT = 276; +MySQLParser.AUTHORS = 277; +MySQLParser.AUTOCOMMIT = 278; +MySQLParser.AUTOEXTEND_SIZE = 279; +MySQLParser.AUTO_INCREMENT = 280; +MySQLParser.AVG_ROW_LENGTH = 281; +MySQLParser.BEGIN = 282; +MySQLParser.BINLOG = 283; +MySQLParser.BIT = 284; +MySQLParser.BLOCK = 285; +MySQLParser.BOOL = 286; +MySQLParser.BOOLEAN = 287; +MySQLParser.BTREE = 288; +MySQLParser.CACHE = 289; +MySQLParser.CASCADED = 290; +MySQLParser.CHAIN = 291; +MySQLParser.CHANGED = 292; +MySQLParser.CHANNEL = 293; +MySQLParser.CHECKSUM = 294; +MySQLParser.PAGE_CHECKSUM = 295; +MySQLParser.CIPHER = 296; +MySQLParser.CLASS_ORIGIN = 297; +MySQLParser.CLIENT = 298; +MySQLParser.CLOSE = 299; +MySQLParser.COALESCE = 300; +MySQLParser.CODE = 301; +MySQLParser.COLUMNS = 302; +MySQLParser.COLUMN_FORMAT = 303; +MySQLParser.COLUMN_NAME = 304; +MySQLParser.COMMENT = 305; +MySQLParser.COMMIT = 306; +MySQLParser.COMPACT = 307; +MySQLParser.COMPLETION = 308; +MySQLParser.COMPRESSED = 309; +MySQLParser.COMPRESSION = 310; +MySQLParser.CONCURRENT = 311; +MySQLParser.CONNECTION = 312; +MySQLParser.CONSISTENT = 313; +MySQLParser.CONSTRAINT_CATALOG = 314; +MySQLParser.CONSTRAINT_SCHEMA = 315; +MySQLParser.CONSTRAINT_NAME = 316; +MySQLParser.CONTAINS = 317; +MySQLParser.CONTEXT = 318; +MySQLParser.CONTRIBUTORS = 319; +MySQLParser.COPY = 320; +MySQLParser.CPU = 321; +MySQLParser.CURSOR_NAME = 322; +MySQLParser.DATA = 323; +MySQLParser.DATAFILE = 324; +MySQLParser.DEALLOCATE = 325; +MySQLParser.DEFAULT_AUTH = 326; +MySQLParser.DEFINER = 327; +MySQLParser.DELAY_KEY_WRITE = 328; +MySQLParser.DES_KEY_FILE = 329; +MySQLParser.DIRECTORY = 330; +MySQLParser.DISABLE = 331; +MySQLParser.DISCARD = 332; +MySQLParser.DISK = 333; +MySQLParser.DO = 334; +MySQLParser.DUMPFILE = 335; +MySQLParser.DUPLICATE = 336; +MySQLParser.DYNAMIC = 337; +MySQLParser.ENABLE = 338; +MySQLParser.ENCRYPTION = 339; +MySQLParser.END = 340; +MySQLParser.ENDS = 341; +MySQLParser.ENGINE = 342; +MySQLParser.ENGINES = 343; +MySQLParser.ERROR = 344; +MySQLParser.ERRORS = 345; +MySQLParser.ESCAPE = 346; +MySQLParser.EVEN = 347; +MySQLParser.EVENT = 348; +MySQLParser.EVENTS = 349; +MySQLParser.EVERY = 350; +MySQLParser.EXCHANGE = 351; +MySQLParser.EXCLUSIVE = 352; +MySQLParser.EXPIRE = 353; +MySQLParser.EXPORT = 354; +MySQLParser.EXTENDED = 355; +MySQLParser.EXTENT_SIZE = 356; +MySQLParser.FAST = 357; +MySQLParser.FAULTS = 358; +MySQLParser.FIELDS = 359; +MySQLParser.FILE_BLOCK_SIZE = 360; +MySQLParser.FILTER = 361; +MySQLParser.FIRST = 362; +MySQLParser.FIXED = 363; +MySQLParser.FLUSH = 364; +MySQLParser.FOLLOWS = 365; +MySQLParser.FOUND = 366; +MySQLParser.FULL = 367; +MySQLParser.FUNCTION = 368; +MySQLParser.GENERAL = 369; +MySQLParser.GLOBAL = 370; +MySQLParser.GRANTS = 371; +MySQLParser.GROUP_REPLICATION = 372; +MySQLParser.HANDLER = 373; +MySQLParser.HASH = 374; +MySQLParser.HELP = 375; +MySQLParser.HOST = 376; +MySQLParser.HOSTS = 377; +MySQLParser.IDENTIFIED = 378; +MySQLParser.IGNORE_SERVER_IDS = 379; +MySQLParser.IMPORT = 380; +MySQLParser.INDEXES = 381; +MySQLParser.INITIAL_SIZE = 382; +MySQLParser.INPLACE = 383; +MySQLParser.INSERT_METHOD = 384; +MySQLParser.INSTALL = 385; +MySQLParser.INSTANCE = 386; +MySQLParser.INVISIBLE = 387; +MySQLParser.INVOKER = 388; +MySQLParser.IO = 389; +MySQLParser.IO_THREAD = 390; +MySQLParser.IPC = 391; +MySQLParser.ISOLATION = 392; +MySQLParser.ISSUER = 393; +MySQLParser.JSON = 394; +MySQLParser.KEY_BLOCK_SIZE = 395; +MySQLParser.LANGUAGE = 396; +MySQLParser.LAST = 397; +MySQLParser.LEAVES = 398; +MySQLParser.LESS = 399; +MySQLParser.LEVEL = 400; +MySQLParser.LIST = 401; +MySQLParser.LOCAL = 402; +MySQLParser.LOGFILE = 403; +MySQLParser.LOGS = 404; +MySQLParser.MASTER = 405; +MySQLParser.MASTER_AUTO_POSITION = 406; +MySQLParser.MASTER_CONNECT_RETRY = 407; +MySQLParser.MASTER_DELAY = 408; +MySQLParser.MASTER_HEARTBEAT_PERIOD = 409; +MySQLParser.MASTER_HOST = 410; +MySQLParser.MASTER_LOG_FILE = 411; +MySQLParser.MASTER_LOG_POS = 412; +MySQLParser.MASTER_PASSWORD = 413; +MySQLParser.MASTER_PORT = 414; +MySQLParser.MASTER_RETRY_COUNT = 415; +MySQLParser.MASTER_SSL = 416; +MySQLParser.MASTER_SSL_CA = 417; +MySQLParser.MASTER_SSL_CAPATH = 418; +MySQLParser.MASTER_SSL_CERT = 419; +MySQLParser.MASTER_SSL_CIPHER = 420; +MySQLParser.MASTER_SSL_CRL = 421; +MySQLParser.MASTER_SSL_CRLPATH = 422; +MySQLParser.MASTER_SSL_KEY = 423; +MySQLParser.MASTER_TLS_VERSION = 424; +MySQLParser.MASTER_USER = 425; +MySQLParser.MAX_CONNECTIONS_PER_HOUR = 426; +MySQLParser.MAX_QUERIES_PER_HOUR = 427; +MySQLParser.MAX_ROWS = 428; +MySQLParser.MAX_SIZE = 429; +MySQLParser.MAX_UPDATES_PER_HOUR = 430; +MySQLParser.MAX_USER_CONNECTIONS = 431; +MySQLParser.MEDIUM = 432; +MySQLParser.MERGE = 433; +MySQLParser.MESSAGE_TEXT = 434; +MySQLParser.MID = 435; +MySQLParser.MIGRATE = 436; +MySQLParser.MIN_ROWS = 437; +MySQLParser.MODE = 438; +MySQLParser.MODIFY = 439; +MySQLParser.MUTEX = 440; +MySQLParser.MYSQL = 441; +MySQLParser.MYSQL_ERRNO = 442; +MySQLParser.NAME = 443; +MySQLParser.NAMES = 444; +MySQLParser.NCHAR = 445; +MySQLParser.NEVER = 446; +MySQLParser.NEXT = 447; +MySQLParser.NO = 448; +MySQLParser.NODEGROUP = 449; +MySQLParser.NONE = 450; +MySQLParser.OFFLINE = 451; +MySQLParser.OFFSET = 452; +MySQLParser.OJ = 453; +MySQLParser.OLD_PASSWORD = 454; +MySQLParser.ONE = 455; +MySQLParser.ONLINE = 456; +MySQLParser.ONLY = 457; +MySQLParser.OPEN = 458; +MySQLParser.OPTIMIZER_COSTS = 459; +MySQLParser.OPTIONS = 460; +MySQLParser.OWNER = 461; +MySQLParser.PACK_KEYS = 462; +MySQLParser.PAGE = 463; +MySQLParser.PARSER = 464; +MySQLParser.PARTIAL = 465; +MySQLParser.PARTITIONING = 466; +MySQLParser.PARTITIONS = 467; +MySQLParser.PASSWORD = 468; +MySQLParser.PHASE = 469; +MySQLParser.PLUGIN = 470; +MySQLParser.PLUGIN_DIR = 471; +MySQLParser.PLUGINS = 472; +MySQLParser.PORT = 473; +MySQLParser.PRECEDES = 474; +MySQLParser.PREPARE = 475; +MySQLParser.PRESERVE = 476; +MySQLParser.PREV = 477; +MySQLParser.PROCESSLIST = 478; +MySQLParser.PROFILE = 479; +MySQLParser.PROFILES = 480; +MySQLParser.PROXY = 481; +MySQLParser.QUERY = 482; +MySQLParser.QUICK = 483; +MySQLParser.REBUILD = 484; +MySQLParser.RECOVER = 485; +MySQLParser.REDO_BUFFER_SIZE = 486; +MySQLParser.REDUNDANT = 487; +MySQLParser.RELAY = 488; +MySQLParser.RELAY_LOG_FILE = 489; +MySQLParser.RELAY_LOG_POS = 490; +MySQLParser.RELAYLOG = 491; +MySQLParser.REMOVE = 492; +MySQLParser.REORGANIZE = 493; +MySQLParser.REPAIR = 494; +MySQLParser.REPLICATE_DO_DB = 495; +MySQLParser.REPLICATE_DO_TABLE = 496; +MySQLParser.REPLICATE_IGNORE_DB = 497; +MySQLParser.REPLICATE_IGNORE_TABLE = 498; +MySQLParser.REPLICATE_REWRITE_DB = 499; +MySQLParser.REPLICATE_WILD_DO_TABLE = 500; +MySQLParser.REPLICATE_WILD_IGNORE_TABLE = 501; +MySQLParser.REPLICATION = 502; +MySQLParser.RESET = 503; +MySQLParser.RESUME = 504; +MySQLParser.RETURNED_SQLSTATE = 505; +MySQLParser.RETURNS = 506; +MySQLParser.ROLE = 507; +MySQLParser.ROLLBACK = 508; +MySQLParser.ROLLUP = 509; +MySQLParser.ROTATE = 510; +MySQLParser.ROW = 511; +MySQLParser.ROWS = 512; +MySQLParser.ROW_FORMAT = 513; +MySQLParser.SAVEPOINT = 514; +MySQLParser.SCHEDULE = 515; +MySQLParser.SECURITY = 516; +MySQLParser.SERVER = 517; +MySQLParser.SESSION = 518; +MySQLParser.SHARE = 519; +MySQLParser.SHARED = 520; +MySQLParser.SIGNED = 521; +MySQLParser.SIMPLE = 522; +MySQLParser.SLAVE = 523; +MySQLParser.SLOW = 524; +MySQLParser.SNAPSHOT = 525; +MySQLParser.SOCKET = 526; +MySQLParser.SOME = 527; +MySQLParser.SONAME = 528; +MySQLParser.SOUNDS = 529; +MySQLParser.SOURCE = 530; +MySQLParser.SQL_AFTER_GTIDS = 531; +MySQLParser.SQL_AFTER_MTS_GAPS = 532; +MySQLParser.SQL_BEFORE_GTIDS = 533; +MySQLParser.SQL_BUFFER_RESULT = 534; +MySQLParser.SQL_CACHE = 535; +MySQLParser.SQL_NO_CACHE = 536; +MySQLParser.SQL_THREAD = 537; +MySQLParser.START = 538; +MySQLParser.STARTS = 539; +MySQLParser.STATS_AUTO_RECALC = 540; +MySQLParser.STATS_PERSISTENT = 541; +MySQLParser.STATS_SAMPLE_PAGES = 542; +MySQLParser.STATUS = 543; +MySQLParser.STOP = 544; +MySQLParser.STORAGE = 545; +MySQLParser.STORED = 546; +MySQLParser.STRING = 547; +MySQLParser.SUBCLASS_ORIGIN = 548; +MySQLParser.SUBJECT = 549; +MySQLParser.SUBPARTITION = 550; +MySQLParser.SUBPARTITIONS = 551; +MySQLParser.SUSPEND = 552; +MySQLParser.SWAPS = 553; +MySQLParser.SWITCHES = 554; +MySQLParser.TABLE_NAME = 555; +MySQLParser.TABLESPACE = 556; +MySQLParser.TEMPORARY = 557; +MySQLParser.TEMPTABLE = 558; +MySQLParser.THAN = 559; +MySQLParser.TRADITIONAL = 560; +MySQLParser.TRANSACTION = 561; +MySQLParser.TRANSACTIONAL = 562; +MySQLParser.TRIGGERS = 563; +MySQLParser.TRUNCATE = 564; +MySQLParser.UNDEFINED = 565; +MySQLParser.UNDOFILE = 566; +MySQLParser.UNDO_BUFFER_SIZE = 567; +MySQLParser.UNINSTALL = 568; +MySQLParser.UNKNOWN = 569; +MySQLParser.UNTIL = 570; +MySQLParser.UPGRADE = 571; +MySQLParser.USER = 572; +MySQLParser.USE_FRM = 573; +MySQLParser.USER_RESOURCES = 574; +MySQLParser.VALIDATION = 575; +MySQLParser.VALUE = 576; +MySQLParser.VARIABLES = 577; +MySQLParser.VIEW = 578; +MySQLParser.VIRTUAL = 579; +MySQLParser.VISIBLE = 580; +MySQLParser.WAIT = 581; +MySQLParser.WARNINGS = 582; +MySQLParser.WITHOUT = 583; +MySQLParser.WORK = 584; +MySQLParser.WRAPPER = 585; +MySQLParser.X509 = 586; +MySQLParser.XA = 587; +MySQLParser.XML = 588; +MySQLParser.EUR = 589; +MySQLParser.USA = 590; +MySQLParser.JIS = 591; +MySQLParser.ISO = 592; +MySQLParser.INTERNAL = 593; +MySQLParser.QUARTER = 594; +MySQLParser.MONTH = 595; +MySQLParser.DAY = 596; +MySQLParser.HOUR = 597; +MySQLParser.MINUTE = 598; +MySQLParser.WEEK = 599; +MySQLParser.SECOND = 600; +MySQLParser.MICROSECOND = 601; +MySQLParser.TABLES = 602; +MySQLParser.ROUTINE = 603; +MySQLParser.EXECUTE = 604; +MySQLParser.FILE = 605; +MySQLParser.PROCESS = 606; +MySQLParser.RELOAD = 607; +MySQLParser.SHUTDOWN = 608; +MySQLParser.SUPER = 609; +MySQLParser.PRIVILEGES = 610; +MySQLParser.APPLICATION_PASSWORD_ADMIN = 611; +MySQLParser.AUDIT_ADMIN = 612; +MySQLParser.BACKUP_ADMIN = 613; +MySQLParser.BINLOG_ADMIN = 614; +MySQLParser.BINLOG_ENCRYPTION_ADMIN = 615; +MySQLParser.CLONE_ADMIN = 616; +MySQLParser.CONNECTION_ADMIN = 617; +MySQLParser.ENCRYPTION_KEY_ADMIN = 618; +MySQLParser.FIREWALL_ADMIN = 619; +MySQLParser.FIREWALL_USER = 620; +MySQLParser.GROUP_REPLICATION_ADMIN = 621; +MySQLParser.INNODB_REDO_LOG_ARCHIVE = 622; +MySQLParser.NDB_STORED_USER = 623; +MySQLParser.PERSIST_RO_VARIABLES_ADMIN = 624; +MySQLParser.REPLICATION_APPLIER = 625; +MySQLParser.REPLICATION_SLAVE_ADMIN = 626; +MySQLParser.RESOURCE_GROUP_ADMIN = 627; +MySQLParser.RESOURCE_GROUP_USER = 628; +MySQLParser.ROLE_ADMIN = 629; +MySQLParser.SESSION_VARIABLES_ADMIN = 630; +MySQLParser.SET_USER_ID = 631; +MySQLParser.SHOW_ROUTINE = 632; +MySQLParser.SYSTEM_VARIABLES_ADMIN = 633; +MySQLParser.TABLE_ENCRYPTION_ADMIN = 634; +MySQLParser.VERSION_TOKEN_ADMIN = 635; +MySQLParser.XA_RECOVER_ADMIN = 636; +MySQLParser.ARMSCII8 = 637; +MySQLParser.ASCII = 638; +MySQLParser.BIG5 = 639; +MySQLParser.CP1250 = 640; +MySQLParser.CP1251 = 641; +MySQLParser.CP1256 = 642; +MySQLParser.CP1257 = 643; +MySQLParser.CP850 = 644; +MySQLParser.CP852 = 645; +MySQLParser.CP866 = 646; +MySQLParser.CP932 = 647; +MySQLParser.DEC8 = 648; +MySQLParser.EUCJPMS = 649; +MySQLParser.EUCKR = 650; +MySQLParser.GB2312 = 651; +MySQLParser.GBK = 652; +MySQLParser.GEOSTD8 = 653; +MySQLParser.GREEK = 654; +MySQLParser.HEBREW = 655; +MySQLParser.HP8 = 656; +MySQLParser.KEYBCS2 = 657; +MySQLParser.KOI8R = 658; +MySQLParser.KOI8U = 659; +MySQLParser.LATIN1 = 660; +MySQLParser.LATIN2 = 661; +MySQLParser.LATIN5 = 662; +MySQLParser.LATIN7 = 663; +MySQLParser.MACCE = 664; +MySQLParser.MACROMAN = 665; +MySQLParser.SJIS = 666; +MySQLParser.SWE7 = 667; +MySQLParser.TIS620 = 668; +MySQLParser.UCS2 = 669; +MySQLParser.UJIS = 670; +MySQLParser.UTF16 = 671; +MySQLParser.UTF16LE = 672; +MySQLParser.UTF32 = 673; +MySQLParser.UTF8 = 674; +MySQLParser.UTF8MB3 = 675; +MySQLParser.UTF8MB4 = 676; +MySQLParser.ARCHIVE = 677; +MySQLParser.BLACKHOLE = 678; +MySQLParser.CSV = 679; +MySQLParser.FEDERATED = 680; +MySQLParser.INNODB = 681; +MySQLParser.MEMORY = 682; +MySQLParser.MRG_MYISAM = 683; +MySQLParser.MYISAM = 684; +MySQLParser.NDB = 685; +MySQLParser.NDBCLUSTER = 686; +MySQLParser.PERFORMANCE_SCHEMA = 687; +MySQLParser.TOKUDB = 688; +MySQLParser.REPEATABLE = 689; +MySQLParser.COMMITTED = 690; +MySQLParser.UNCOMMITTED = 691; +MySQLParser.SERIALIZABLE = 692; +MySQLParser.GEOMETRYCOLLECTION = 693; +MySQLParser.GEOMCOLLECTION = 694; +MySQLParser.GEOMETRY = 695; +MySQLParser.LINESTRING = 696; +MySQLParser.MULTILINESTRING = 697; +MySQLParser.MULTIPOINT = 698; +MySQLParser.MULTIPOLYGON = 699; +MySQLParser.POINT = 700; +MySQLParser.POLYGON = 701; +MySQLParser.ABS = 702; +MySQLParser.ACOS = 703; +MySQLParser.ADDDATE = 704; +MySQLParser.ADDTIME = 705; +MySQLParser.AES_DECRYPT = 706; +MySQLParser.AES_ENCRYPT = 707; +MySQLParser.AREA = 708; +MySQLParser.ASBINARY = 709; +MySQLParser.ASIN = 710; +MySQLParser.ASTEXT = 711; +MySQLParser.ASWKB = 712; +MySQLParser.ASWKT = 713; +MySQLParser.ASYMMETRIC_DECRYPT = 714; +MySQLParser.ASYMMETRIC_DERIVE = 715; +MySQLParser.ASYMMETRIC_ENCRYPT = 716; +MySQLParser.ASYMMETRIC_SIGN = 717; +MySQLParser.ASYMMETRIC_VERIFY = 718; +MySQLParser.ATAN = 719; +MySQLParser.ATAN2 = 720; +MySQLParser.BENCHMARK = 721; +MySQLParser.BIN = 722; +MySQLParser.BIT_COUNT = 723; +MySQLParser.BIT_LENGTH = 724; +MySQLParser.BUFFER = 725; +MySQLParser.CATALOG_NAME = 726; +MySQLParser.CEIL = 727; +MySQLParser.CEILING = 728; +MySQLParser.CENTROID = 729; +MySQLParser.CHARACTER_LENGTH = 730; +MySQLParser.CHARSET = 731; +MySQLParser.CHAR_LENGTH = 732; +MySQLParser.COERCIBILITY = 733; +MySQLParser.COLLATION = 734; +MySQLParser.COMPRESS = 735; +MySQLParser.CONCAT = 736; +MySQLParser.CONCAT_WS = 737; +MySQLParser.CONNECTION_ID = 738; +MySQLParser.CONV = 739; +MySQLParser.CONVERT_TZ = 740; +MySQLParser.COS = 741; +MySQLParser.COT = 742; +MySQLParser.CRC32 = 743; +MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY = 744; +MySQLParser.CREATE_ASYMMETRIC_PUB_KEY = 745; +MySQLParser.CREATE_DH_PARAMETERS = 746; +MySQLParser.CREATE_DIGEST = 747; +MySQLParser.CROSSES = 748; +MySQLParser.DATEDIFF = 749; +MySQLParser.DATE_FORMAT = 750; +MySQLParser.DAYNAME = 751; +MySQLParser.DAYOFMONTH = 752; +MySQLParser.DAYOFWEEK = 753; +MySQLParser.DAYOFYEAR = 754; +MySQLParser.DECODE = 755; +MySQLParser.DEGREES = 756; +MySQLParser.DES_DECRYPT = 757; +MySQLParser.DES_ENCRYPT = 758; +MySQLParser.DIMENSION = 759; +MySQLParser.DISJOINT = 760; +MySQLParser.ELT = 761; +MySQLParser.ENCODE = 762; +MySQLParser.ENCRYPT = 763; +MySQLParser.ENDPOINT = 764; +MySQLParser.ENVELOPE = 765; +MySQLParser.EQUALS = 766; +MySQLParser.EXP = 767; +MySQLParser.EXPORT_SET = 768; +MySQLParser.EXTERIORRING = 769; +MySQLParser.EXTRACTVALUE = 770; +MySQLParser.FIELD = 771; +MySQLParser.FIND_IN_SET = 772; +MySQLParser.FLOOR = 773; +MySQLParser.FORMAT = 774; +MySQLParser.FOUND_ROWS = 775; +MySQLParser.FROM_BASE64 = 776; +MySQLParser.FROM_DAYS = 777; +MySQLParser.FROM_UNIXTIME = 778; +MySQLParser.GEOMCOLLFROMTEXT = 779; +MySQLParser.GEOMCOLLFROMWKB = 780; +MySQLParser.GEOMETRYCOLLECTIONFROMTEXT = 781; +MySQLParser.GEOMETRYCOLLECTIONFROMWKB = 782; +MySQLParser.GEOMETRYFROMTEXT = 783; +MySQLParser.GEOMETRYFROMWKB = 784; +MySQLParser.GEOMETRYN = 785; +MySQLParser.GEOMETRYTYPE = 786; +MySQLParser.GEOMFROMTEXT = 787; +MySQLParser.GEOMFROMWKB = 788; +MySQLParser.GET_FORMAT = 789; +MySQLParser.GET_LOCK = 790; +MySQLParser.GLENGTH = 791; +MySQLParser.GREATEST = 792; +MySQLParser.GTID_SUBSET = 793; +MySQLParser.GTID_SUBTRACT = 794; +MySQLParser.HEX = 795; +MySQLParser.IFNULL = 796; +MySQLParser.INET6_ATON = 797; +MySQLParser.INET6_NTOA = 798; +MySQLParser.INET_ATON = 799; +MySQLParser.INET_NTOA = 800; +MySQLParser.INSTR = 801; +MySQLParser.INTERIORRINGN = 802; +MySQLParser.INTERSECTS = 803; +MySQLParser.ISCLOSED = 804; +MySQLParser.ISEMPTY = 805; +MySQLParser.ISNULL = 806; +MySQLParser.ISSIMPLE = 807; +MySQLParser.IS_FREE_LOCK = 808; +MySQLParser.IS_IPV4 = 809; +MySQLParser.IS_IPV4_COMPAT = 810; +MySQLParser.IS_IPV4_MAPPED = 811; +MySQLParser.IS_IPV6 = 812; +MySQLParser.IS_USED_LOCK = 813; +MySQLParser.LAST_INSERT_ID = 814; +MySQLParser.LCASE = 815; +MySQLParser.LEAST = 816; +MySQLParser.LENGTH = 817; +MySQLParser.LINEFROMTEXT = 818; +MySQLParser.LINEFROMWKB = 819; +MySQLParser.LINESTRINGFROMTEXT = 820; +MySQLParser.LINESTRINGFROMWKB = 821; +MySQLParser.LN = 822; +MySQLParser.LOAD_FILE = 823; +MySQLParser.LOCATE = 824; +MySQLParser.LOG = 825; +MySQLParser.LOG10 = 826; +MySQLParser.LOG2 = 827; +MySQLParser.LOWER = 828; +MySQLParser.LPAD = 829; +MySQLParser.LTRIM = 830; +MySQLParser.MAKEDATE = 831; +MySQLParser.MAKETIME = 832; +MySQLParser.MAKE_SET = 833; +MySQLParser.MASTER_POS_WAIT = 834; +MySQLParser.MBRCONTAINS = 835; +MySQLParser.MBRDISJOINT = 836; +MySQLParser.MBREQUAL = 837; +MySQLParser.MBRINTERSECTS = 838; +MySQLParser.MBROVERLAPS = 839; +MySQLParser.MBRTOUCHES = 840; +MySQLParser.MBRWITHIN = 841; +MySQLParser.MD5 = 842; +MySQLParser.MLINEFROMTEXT = 843; +MySQLParser.MLINEFROMWKB = 844; +MySQLParser.MONTHNAME = 845; +MySQLParser.MPOINTFROMTEXT = 846; +MySQLParser.MPOINTFROMWKB = 847; +MySQLParser.MPOLYFROMTEXT = 848; +MySQLParser.MPOLYFROMWKB = 849; +MySQLParser.MULTILINESTRINGFROMTEXT = 850; +MySQLParser.MULTILINESTRINGFROMWKB = 851; +MySQLParser.MULTIPOINTFROMTEXT = 852; +MySQLParser.MULTIPOINTFROMWKB = 853; +MySQLParser.MULTIPOLYGONFROMTEXT = 854; +MySQLParser.MULTIPOLYGONFROMWKB = 855; +MySQLParser.NAME_CONST = 856; +MySQLParser.NULLIF = 857; +MySQLParser.NUMGEOMETRIES = 858; +MySQLParser.NUMINTERIORRINGS = 859; +MySQLParser.NUMPOINTS = 860; +MySQLParser.OCT = 861; +MySQLParser.OCTET_LENGTH = 862; +MySQLParser.ORD = 863; +MySQLParser.OVERLAPS = 864; +MySQLParser.PERIOD_ADD = 865; +MySQLParser.PERIOD_DIFF = 866; +MySQLParser.PI = 867; +MySQLParser.POINTFROMTEXT = 868; +MySQLParser.POINTFROMWKB = 869; +MySQLParser.POINTN = 870; +MySQLParser.POLYFROMTEXT = 871; +MySQLParser.POLYFROMWKB = 872; +MySQLParser.POLYGONFROMTEXT = 873; +MySQLParser.POLYGONFROMWKB = 874; +MySQLParser.POW = 875; +MySQLParser.POWER = 876; +MySQLParser.QUOTE = 877; +MySQLParser.RADIANS = 878; +MySQLParser.RAND = 879; +MySQLParser.RANDOM_BYTES = 880; +MySQLParser.RELEASE_LOCK = 881; +MySQLParser.REVERSE = 882; +MySQLParser.ROUND = 883; +MySQLParser.ROW_COUNT = 884; +MySQLParser.RPAD = 885; +MySQLParser.RTRIM = 886; +MySQLParser.SEC_TO_TIME = 887; +MySQLParser.SESSION_USER = 888; +MySQLParser.SHA = 889; +MySQLParser.SHA1 = 890; +MySQLParser.SHA2 = 891; +MySQLParser.SCHEMA_NAME = 892; +MySQLParser.SIGN = 893; +MySQLParser.SIN = 894; +MySQLParser.SLEEP = 895; +MySQLParser.SOUNDEX = 896; +MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS = 897; +MySQLParser.SQRT = 898; +MySQLParser.SRID = 899; +MySQLParser.STARTPOINT = 900; +MySQLParser.STRCMP = 901; +MySQLParser.STR_TO_DATE = 902; +MySQLParser.ST_AREA = 903; +MySQLParser.ST_ASBINARY = 904; +MySQLParser.ST_ASTEXT = 905; +MySQLParser.ST_ASWKB = 906; +MySQLParser.ST_ASWKT = 907; +MySQLParser.ST_BUFFER = 908; +MySQLParser.ST_CENTROID = 909; +MySQLParser.ST_CONTAINS = 910; +MySQLParser.ST_CROSSES = 911; +MySQLParser.ST_DIFFERENCE = 912; +MySQLParser.ST_DIMENSION = 913; +MySQLParser.ST_DISJOINT = 914; +MySQLParser.ST_DISTANCE = 915; +MySQLParser.ST_ENDPOINT = 916; +MySQLParser.ST_ENVELOPE = 917; +MySQLParser.ST_EQUALS = 918; +MySQLParser.ST_EXTERIORRING = 919; +MySQLParser.ST_GEOMCOLLFROMTEXT = 920; +MySQLParser.ST_GEOMCOLLFROMTXT = 921; +MySQLParser.ST_GEOMCOLLFROMWKB = 922; +MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT = 923; +MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB = 924; +MySQLParser.ST_GEOMETRYFROMTEXT = 925; +MySQLParser.ST_GEOMETRYFROMWKB = 926; +MySQLParser.ST_GEOMETRYN = 927; +MySQLParser.ST_GEOMETRYTYPE = 928; +MySQLParser.ST_GEOMFROMTEXT = 929; +MySQLParser.ST_GEOMFROMWKB = 930; +MySQLParser.ST_INTERIORRINGN = 931; +MySQLParser.ST_INTERSECTION = 932; +MySQLParser.ST_INTERSECTS = 933; +MySQLParser.ST_ISCLOSED = 934; +MySQLParser.ST_ISEMPTY = 935; +MySQLParser.ST_ISSIMPLE = 936; +MySQLParser.ST_LINEFROMTEXT = 937; +MySQLParser.ST_LINEFROMWKB = 938; +MySQLParser.ST_LINESTRINGFROMTEXT = 939; +MySQLParser.ST_LINESTRINGFROMWKB = 940; +MySQLParser.ST_NUMGEOMETRIES = 941; +MySQLParser.ST_NUMINTERIORRING = 942; +MySQLParser.ST_NUMINTERIORRINGS = 943; +MySQLParser.ST_NUMPOINTS = 944; +MySQLParser.ST_OVERLAPS = 945; +MySQLParser.ST_POINTFROMTEXT = 946; +MySQLParser.ST_POINTFROMWKB = 947; +MySQLParser.ST_POINTN = 948; +MySQLParser.ST_POLYFROMTEXT = 949; +MySQLParser.ST_POLYFROMWKB = 950; +MySQLParser.ST_POLYGONFROMTEXT = 951; +MySQLParser.ST_POLYGONFROMWKB = 952; +MySQLParser.ST_SRID = 953; +MySQLParser.ST_STARTPOINT = 954; +MySQLParser.ST_SYMDIFFERENCE = 955; +MySQLParser.ST_TOUCHES = 956; +MySQLParser.ST_UNION = 957; +MySQLParser.ST_WITHIN = 958; +MySQLParser.ST_X = 959; +MySQLParser.ST_Y = 960; +MySQLParser.SUBDATE = 961; +MySQLParser.SUBSTRING_INDEX = 962; +MySQLParser.SUBTIME = 963; +MySQLParser.SYSTEM_USER = 964; +MySQLParser.TAN = 965; +MySQLParser.TIMEDIFF = 966; +MySQLParser.TIMESTAMPADD = 967; +MySQLParser.TIMESTAMPDIFF = 968; +MySQLParser.TIME_FORMAT = 969; +MySQLParser.TIME_TO_SEC = 970; +MySQLParser.TOUCHES = 971; +MySQLParser.TO_BASE64 = 972; +MySQLParser.TO_DAYS = 973; +MySQLParser.TO_SECONDS = 974; +MySQLParser.UCASE = 975; +MySQLParser.UNCOMPRESS = 976; +MySQLParser.UNCOMPRESSED_LENGTH = 977; +MySQLParser.UNHEX = 978; +MySQLParser.UNIX_TIMESTAMP = 979; +MySQLParser.UPDATEXML = 980; +MySQLParser.UPPER = 981; +MySQLParser.UUID = 982; +MySQLParser.UUID_SHORT = 983; +MySQLParser.VALIDATE_PASSWORD_STRENGTH = 984; +MySQLParser.VERSION = 985; +MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 986; +MySQLParser.WEEKDAY = 987; +MySQLParser.WEEKOFYEAR = 988; +MySQLParser.WEIGHT_STRING = 989; +MySQLParser.WITHIN = 990; +MySQLParser.YEARWEEK = 991; +MySQLParser.Y_FUNCTION = 992; +MySQLParser.X_FUNCTION = 993; +MySQLParser.VAR_ASSIGN = 994; +MySQLParser.PLUS_ASSIGN = 995; +MySQLParser.MINUS_ASSIGN = 996; +MySQLParser.MULT_ASSIGN = 997; +MySQLParser.DIV_ASSIGN = 998; +MySQLParser.MOD_ASSIGN = 999; +MySQLParser.AND_ASSIGN = 1000; +MySQLParser.XOR_ASSIGN = 1001; +MySQLParser.OR_ASSIGN = 1002; +MySQLParser.STAR = 1003; +MySQLParser.DIVIDE = 1004; +MySQLParser.MODULE = 1005; +MySQLParser.PLUS = 1006; +MySQLParser.MINUSMINUS = 1007; +MySQLParser.MINUS = 1008; +MySQLParser.DIV = 1009; +MySQLParser.MOD = 1010; +MySQLParser.EQUAL_SYMBOL = 1011; +MySQLParser.GREATER_SYMBOL = 1012; +MySQLParser.LESS_SYMBOL = 1013; +MySQLParser.EXCLAMATION_SYMBOL = 1014; +MySQLParser.BIT_NOT_OP = 1015; +MySQLParser.BIT_OR_OP = 1016; +MySQLParser.BIT_AND_OP = 1017; +MySQLParser.BIT_XOR_OP = 1018; +MySQLParser.DOT = 1019; +MySQLParser.LR_BRACKET = 1020; +MySQLParser.RR_BRACKET = 1021; +MySQLParser.COMMA = 1022; +MySQLParser.SEMI = 1023; +MySQLParser.AT_SIGN = 1024; +MySQLParser.ZERO_DECIMAL = 1025; +MySQLParser.ONE_DECIMAL = 1026; +MySQLParser.TWO_DECIMAL = 1027; +MySQLParser.SINGLE_QUOTE_SYMB = 1028; +MySQLParser.DOUBLE_QUOTE_SYMB = 1029; +MySQLParser.REVERSE_QUOTE_SYMB = 1030; +MySQLParser.COLON_SYMB = 1031; +MySQLParser.CHARSET_REVERSE_QOUTE_STRING = 1032; +MySQLParser.FILESIZE_LITERAL = 1033; +MySQLParser.START_NATIONAL_STRING_LITERAL = 1034; +MySQLParser.STRING_LITERAL = 1035; +MySQLParser.DECIMAL_LITERAL = 1036; +MySQLParser.HEXADECIMAL_LITERAL = 1037; +MySQLParser.REAL_LITERAL = 1038; +MySQLParser.NULL_SPEC_LITERAL = 1039; +MySQLParser.BIT_STRING = 1040; +MySQLParser.STRING_CHARSET_NAME = 1041; +MySQLParser.DOT_ID = 1042; +MySQLParser.ID = 1043; +MySQLParser.REVERSE_QUOTE_ID = 1044; +MySQLParser.STRING_USER_NAME = 1045; +MySQLParser.LOCAL_ID = 1046; +MySQLParser.GLOBAL_ID = 1047; +MySQLParser.ERROR_RECONGNIGION = 1048; + +MySQLParser.RULE_statement = 0; +MySQLParser.RULE_sqlStatements = 1; +MySQLParser.RULE_sqlStatement = 2; +MySQLParser.RULE_emptyStatement = 3; +MySQLParser.RULE_ddlStatement = 4; +MySQLParser.RULE_dmlStatement = 5; +MySQLParser.RULE_transactionStatement = 6; +MySQLParser.RULE_replicationStatement = 7; +MySQLParser.RULE_preparedStatement = 8; +MySQLParser.RULE_compoundStatement = 9; +MySQLParser.RULE_administrationStatement = 10; +MySQLParser.RULE_utilityStatement = 11; +MySQLParser.RULE_createDatabase = 12; +MySQLParser.RULE_createEvent = 13; +MySQLParser.RULE_createIndex = 14; +MySQLParser.RULE_createLogfileGroup = 15; +MySQLParser.RULE_createProcedure = 16; +MySQLParser.RULE_createFunction = 17; +MySQLParser.RULE_createServer = 18; +MySQLParser.RULE_createTable = 19; +MySQLParser.RULE_createTablespaceInnodb = 20; +MySQLParser.RULE_createTablespaceNdb = 21; +MySQLParser.RULE_createTrigger = 22; +MySQLParser.RULE_createView = 23; +MySQLParser.RULE_createDatabaseOption = 24; +MySQLParser.RULE_ownerStatement = 25; +MySQLParser.RULE_scheduleExpression = 26; +MySQLParser.RULE_timestampValue = 27; +MySQLParser.RULE_intervalExpr = 28; +MySQLParser.RULE_intervalType = 29; +MySQLParser.RULE_enableType = 30; +MySQLParser.RULE_indexType = 31; +MySQLParser.RULE_indexOption = 32; +MySQLParser.RULE_procedureParameter = 33; +MySQLParser.RULE_functionParameter = 34; +MySQLParser.RULE_routineOption = 35; +MySQLParser.RULE_serverOption = 36; +MySQLParser.RULE_createDefinitions = 37; +MySQLParser.RULE_createDefinition = 38; +MySQLParser.RULE_columnDefinition = 39; +MySQLParser.RULE_columnConstraint = 40; +MySQLParser.RULE_tableConstraint = 41; +MySQLParser.RULE_referenceDefinition = 42; +MySQLParser.RULE_referenceAction = 43; +MySQLParser.RULE_referenceControlType = 44; +MySQLParser.RULE_indexColumnDefinition = 45; +MySQLParser.RULE_tableOption = 46; +MySQLParser.RULE_tablespaceStorage = 47; +MySQLParser.RULE_partitionDefinitions = 48; +MySQLParser.RULE_partitionFunctionDefinition = 49; +MySQLParser.RULE_subpartitionFunctionDefinition = 50; +MySQLParser.RULE_partitionDefinition = 51; +MySQLParser.RULE_partitionDefinerAtom = 52; +MySQLParser.RULE_partitionDefinerVector = 53; +MySQLParser.RULE_subpartitionDefinition = 54; +MySQLParser.RULE_partitionOption = 55; +MySQLParser.RULE_alterDatabase = 56; +MySQLParser.RULE_alterEvent = 57; +MySQLParser.RULE_alterFunction = 58; +MySQLParser.RULE_alterInstance = 59; +MySQLParser.RULE_alterLogfileGroup = 60; +MySQLParser.RULE_alterProcedure = 61; +MySQLParser.RULE_alterServer = 62; +MySQLParser.RULE_alterTable = 63; +MySQLParser.RULE_alterTablespace = 64; +MySQLParser.RULE_alterView = 65; +MySQLParser.RULE_alterSpecification = 66; +MySQLParser.RULE_dropDatabase = 67; +MySQLParser.RULE_dropEvent = 68; +MySQLParser.RULE_dropIndex = 69; +MySQLParser.RULE_dropLogfileGroup = 70; +MySQLParser.RULE_dropProcedure = 71; +MySQLParser.RULE_dropFunction = 72; +MySQLParser.RULE_dropServer = 73; +MySQLParser.RULE_dropTable = 74; +MySQLParser.RULE_dropTablespace = 75; +MySQLParser.RULE_dropTrigger = 76; +MySQLParser.RULE_dropView = 77; +MySQLParser.RULE_renameTable = 78; +MySQLParser.RULE_renameTableClause = 79; +MySQLParser.RULE_truncateTable = 80; +MySQLParser.RULE_callStatement = 81; +MySQLParser.RULE_deleteStatement = 82; +MySQLParser.RULE_doStatement = 83; +MySQLParser.RULE_handlerStatement = 84; +MySQLParser.RULE_insertStatement = 85; +MySQLParser.RULE_loadDataStatement = 86; +MySQLParser.RULE_loadXmlStatement = 87; +MySQLParser.RULE_replaceStatement = 88; +MySQLParser.RULE_selectStatement = 89; +MySQLParser.RULE_updateStatement = 90; +MySQLParser.RULE_insertStatementValue = 91; +MySQLParser.RULE_updatedElement = 92; +MySQLParser.RULE_assignmentField = 93; +MySQLParser.RULE_lockClause = 94; +MySQLParser.RULE_singleDeleteStatement = 95; +MySQLParser.RULE_multipleDeleteStatement = 96; +MySQLParser.RULE_handlerOpenStatement = 97; +MySQLParser.RULE_handlerReadIndexStatement = 98; +MySQLParser.RULE_handlerReadStatement = 99; +MySQLParser.RULE_handlerCloseStatement = 100; +MySQLParser.RULE_singleUpdateStatement = 101; +MySQLParser.RULE_multipleUpdateStatement = 102; +MySQLParser.RULE_orderByClause = 103; +MySQLParser.RULE_orderByExpression = 104; +MySQLParser.RULE_tableSources = 105; +MySQLParser.RULE_tableSource = 106; +MySQLParser.RULE_tableSourceItem = 107; +MySQLParser.RULE_indexHint = 108; +MySQLParser.RULE_indexHintType = 109; +MySQLParser.RULE_joinPart = 110; +MySQLParser.RULE_queryExpression = 111; +MySQLParser.RULE_queryExpressionNointo = 112; +MySQLParser.RULE_querySpecification = 113; +MySQLParser.RULE_querySpecificationNointo = 114; +MySQLParser.RULE_unionParenthesis = 115; +MySQLParser.RULE_unionStatement = 116; +MySQLParser.RULE_selectSpec = 117; +MySQLParser.RULE_selectElements = 118; +MySQLParser.RULE_selectElement = 119; +MySQLParser.RULE_selectIntoExpression = 120; +MySQLParser.RULE_selectFieldsInto = 121; +MySQLParser.RULE_selectLinesInto = 122; +MySQLParser.RULE_fromClause = 123; +MySQLParser.RULE_groupByItem = 124; +MySQLParser.RULE_limitClause = 125; +MySQLParser.RULE_limitClauseAtom = 126; +MySQLParser.RULE_startTransaction = 127; +MySQLParser.RULE_beginWork = 128; +MySQLParser.RULE_commitWork = 129; +MySQLParser.RULE_rollbackWork = 130; +MySQLParser.RULE_savepointStatement = 131; +MySQLParser.RULE_rollbackStatement = 132; +MySQLParser.RULE_releaseStatement = 133; +MySQLParser.RULE_lockTables = 134; +MySQLParser.RULE_unlockTables = 135; +MySQLParser.RULE_setAutocommitStatement = 136; +MySQLParser.RULE_setTransactionStatement = 137; +MySQLParser.RULE_transactionMode = 138; +MySQLParser.RULE_lockTableElement = 139; +MySQLParser.RULE_lockAction = 140; +MySQLParser.RULE_transactionOption = 141; +MySQLParser.RULE_transactionLevel = 142; +MySQLParser.RULE_changeMaster = 143; +MySQLParser.RULE_changeReplicationFilter = 144; +MySQLParser.RULE_purgeBinaryLogs = 145; +MySQLParser.RULE_resetMaster = 146; +MySQLParser.RULE_resetSlave = 147; +MySQLParser.RULE_startSlave = 148; +MySQLParser.RULE_stopSlave = 149; +MySQLParser.RULE_startGroupReplication = 150; +MySQLParser.RULE_stopGroupReplication = 151; +MySQLParser.RULE_masterOption = 152; +MySQLParser.RULE_stringMasterOption = 153; +MySQLParser.RULE_decimalMasterOption = 154; +MySQLParser.RULE_boolMasterOption = 155; +MySQLParser.RULE_channelOption = 156; +MySQLParser.RULE_replicationFilter = 157; +MySQLParser.RULE_tablePair = 158; +MySQLParser.RULE_threadType = 159; +MySQLParser.RULE_untilOption = 160; +MySQLParser.RULE_connectionOption = 161; +MySQLParser.RULE_gtuidSet = 162; +MySQLParser.RULE_xaStartTransaction = 163; +MySQLParser.RULE_xaEndTransaction = 164; +MySQLParser.RULE_xaPrepareStatement = 165; +MySQLParser.RULE_xaCommitWork = 166; +MySQLParser.RULE_xaRollbackWork = 167; +MySQLParser.RULE_xaRecoverWork = 168; +MySQLParser.RULE_prepareStatement = 169; +MySQLParser.RULE_executeStatement = 170; +MySQLParser.RULE_deallocatePrepare = 171; +MySQLParser.RULE_routineBody = 172; +MySQLParser.RULE_blockStatement = 173; +MySQLParser.RULE_caseStatement = 174; +MySQLParser.RULE_ifStatement = 175; +MySQLParser.RULE_iterateStatement = 176; +MySQLParser.RULE_leaveStatement = 177; +MySQLParser.RULE_loopStatement = 178; +MySQLParser.RULE_repeatStatement = 179; +MySQLParser.RULE_returnStatement = 180; +MySQLParser.RULE_whileStatement = 181; +MySQLParser.RULE_cursorStatement = 182; +MySQLParser.RULE_declareVariable = 183; +MySQLParser.RULE_declareCondition = 184; +MySQLParser.RULE_declareCursor = 185; +MySQLParser.RULE_declareHandler = 186; +MySQLParser.RULE_handlerConditionValue = 187; +MySQLParser.RULE_procedureSqlStatement = 188; +MySQLParser.RULE_caseAlternative = 189; +MySQLParser.RULE_elifAlternative = 190; +MySQLParser.RULE_alterUser = 191; +MySQLParser.RULE_createUser = 192; +MySQLParser.RULE_dropUser = 193; +MySQLParser.RULE_grantStatement = 194; +MySQLParser.RULE_grantProxy = 195; +MySQLParser.RULE_renameUser = 196; +MySQLParser.RULE_revokeStatement = 197; +MySQLParser.RULE_revokeProxy = 198; +MySQLParser.RULE_setPasswordStatement = 199; +MySQLParser.RULE_userSpecification = 200; +MySQLParser.RULE_userAuthOption = 201; +MySQLParser.RULE_tlsOption = 202; +MySQLParser.RULE_userResourceOption = 203; +MySQLParser.RULE_userPasswordOption = 204; +MySQLParser.RULE_userLockOption = 205; +MySQLParser.RULE_privelegeClause = 206; +MySQLParser.RULE_privilege = 207; +MySQLParser.RULE_privilegeLevel = 208; +MySQLParser.RULE_renameUserClause = 209; +MySQLParser.RULE_analyzeTable = 210; +MySQLParser.RULE_checkTable = 211; +MySQLParser.RULE_checksumTable = 212; +MySQLParser.RULE_optimizeTable = 213; +MySQLParser.RULE_repairTable = 214; +MySQLParser.RULE_checkTableOption = 215; +MySQLParser.RULE_createUdfunction = 216; +MySQLParser.RULE_installPlugin = 217; +MySQLParser.RULE_uninstallPlugin = 218; +MySQLParser.RULE_setStatement = 219; +MySQLParser.RULE_showStatement = 220; +MySQLParser.RULE_variableClause = 221; +MySQLParser.RULE_showCommonEntity = 222; +MySQLParser.RULE_showFilter = 223; +MySQLParser.RULE_showGlobalInfoClause = 224; +MySQLParser.RULE_showSchemaEntity = 225; +MySQLParser.RULE_showProfileType = 226; +MySQLParser.RULE_binlogStatement = 227; +MySQLParser.RULE_cacheIndexStatement = 228; +MySQLParser.RULE_flushStatement = 229; +MySQLParser.RULE_killStatement = 230; +MySQLParser.RULE_loadIndexIntoCache = 231; +MySQLParser.RULE_resetStatement = 232; +MySQLParser.RULE_shutdownStatement = 233; +MySQLParser.RULE_tableIndexes = 234; +MySQLParser.RULE_flushOption = 235; +MySQLParser.RULE_flushTableOption = 236; +MySQLParser.RULE_loadedTableIndexes = 237; +MySQLParser.RULE_simpleDescribeStatement = 238; +MySQLParser.RULE_fullDescribeStatement = 239; +MySQLParser.RULE_helpStatement = 240; +MySQLParser.RULE_useStatement = 241; +MySQLParser.RULE_signalStatement = 242; +MySQLParser.RULE_resignalStatement = 243; +MySQLParser.RULE_signalConditionInformation = 244; +MySQLParser.RULE_diagnosticsStatement = 245; +MySQLParser.RULE_diagnosticsConditionInformationName = 246; +MySQLParser.RULE_describeObjectClause = 247; +MySQLParser.RULE_fullId = 248; +MySQLParser.RULE_tableName = 249; +MySQLParser.RULE_fullColumnName = 250; +MySQLParser.RULE_indexColumnName = 251; +MySQLParser.RULE_userName = 252; +MySQLParser.RULE_mysqlVariable = 253; +MySQLParser.RULE_charsetName = 254; +MySQLParser.RULE_collationName = 255; +MySQLParser.RULE_engineName = 256; +MySQLParser.RULE_uuidSet = 257; +MySQLParser.RULE_xid = 258; +MySQLParser.RULE_xuidStringId = 259; +MySQLParser.RULE_authPlugin = 260; +MySQLParser.RULE_uid = 261; +MySQLParser.RULE_simpleId = 262; +MySQLParser.RULE_dottedId = 263; +MySQLParser.RULE_decimalLiteral = 264; +MySQLParser.RULE_fileSizeLiteral = 265; +MySQLParser.RULE_stringLiteral = 266; +MySQLParser.RULE_booleanLiteral = 267; +MySQLParser.RULE_hexadecimalLiteral = 268; +MySQLParser.RULE_nullNotnull = 269; +MySQLParser.RULE_constant = 270; +MySQLParser.RULE_dataType = 271; +MySQLParser.RULE_collectionOptions = 272; +MySQLParser.RULE_convertedDataType = 273; +MySQLParser.RULE_lengthOneDimension = 274; +MySQLParser.RULE_lengthTwoDimension = 275; +MySQLParser.RULE_lengthTwoOptionalDimension = 276; +MySQLParser.RULE_uidList = 277; +MySQLParser.RULE_tables = 278; +MySQLParser.RULE_indexColumnNames = 279; +MySQLParser.RULE_expressions = 280; +MySQLParser.RULE_expressionsWithDefaults = 281; +MySQLParser.RULE_constants = 282; +MySQLParser.RULE_simpleStrings = 283; +MySQLParser.RULE_userVariables = 284; +MySQLParser.RULE_defaultValue = 285; +MySQLParser.RULE_currentTimestamp = 286; +MySQLParser.RULE_expressionOrDefault = 287; +MySQLParser.RULE_ifExists = 288; +MySQLParser.RULE_ifNotExists = 289; +MySQLParser.RULE_functionCall = 290; +MySQLParser.RULE_specificFunction = 291; +MySQLParser.RULE_caseFuncAlternative = 292; +MySQLParser.RULE_levelsInWeightString = 293; +MySQLParser.RULE_levelInWeightListElement = 294; +MySQLParser.RULE_aggregateWindowedFunction = 295; +MySQLParser.RULE_scalarFunctionName = 296; +MySQLParser.RULE_passwordFunctionClause = 297; +MySQLParser.RULE_functionArgs = 298; +MySQLParser.RULE_functionArg = 299; +MySQLParser.RULE_expression = 300; +MySQLParser.RULE_predicate = 301; +MySQLParser.RULE_expressionAtom = 302; +MySQLParser.RULE_unaryOperator = 303; +MySQLParser.RULE_comparisonOperator = 304; +MySQLParser.RULE_logicalOperator = 305; +MySQLParser.RULE_bitOperator = 306; +MySQLParser.RULE_mathOperator = 307; +MySQLParser.RULE_charsetNameBase = 308; +MySQLParser.RULE_transactionLevelBase = 309; +MySQLParser.RULE_privilegesBase = 310; +MySQLParser.RULE_intervalTypeBase = 311; +MySQLParser.RULE_dataTypeBase = 312; +MySQLParser.RULE_keywordsCanBeId = 313; +MySQLParser.RULE_functionNameBase = 314; + + +function StatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_statement; + return this; +} + +StatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StatementContext.prototype.constructor = StatementContext; + +StatementContext.prototype.EOF = function() { + return this.getToken(MySQLParser.EOF, 0); +}; + +StatementContext.prototype.sqlStatements = function() { + return this.getTypedRuleContext(SqlStatementsContext,0); +}; + +StatementContext.prototype.MINUSMINUS = function() { + return this.getToken(MySQLParser.MINUSMINUS, 0); +}; + +StatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStatement(this); + } +}; + +StatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStatement(this); + } +}; + +StatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.StatementContext = StatementContext; + +MySQLParser.prototype.statement = function() { + + var localctx = new StatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, MySQLParser.RULE_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 631; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << MySQLParser.ALTER) | (1 << MySQLParser.ANALYZE) | (1 << MySQLParser.CALL) | (1 << MySQLParser.CHANGE) | (1 << MySQLParser.CHECK) | (1 << MySQLParser.CREATE))) !== 0) || ((((_la - 40)) & ~0x1f) == 0 && ((1 << (_la - 40)) & ((1 << (MySQLParser.DELETE - 40)) | (1 << (MySQLParser.DESC - 40)) | (1 << (MySQLParser.DESCRIBE - 40)) | (1 << (MySQLParser.DROP - 40)) | (1 << (MySQLParser.EXPLAIN - 40)) | (1 << (MySQLParser.GET - 40)) | (1 << (MySQLParser.GRANT - 40)))) !== 0) || ((((_la - 76)) & ~0x1f) == 0 && ((1 << (_la - 76)) & ((1 << (MySQLParser.INSERT - 76)) | (1 << (MySQLParser.KILL - 76)) | (1 << (MySQLParser.LOAD - 76)) | (1 << (MySQLParser.LOCK - 76)) | (1 << (MySQLParser.OPTIMIZE - 76)))) !== 0) || ((((_la - 118)) & ~0x1f) == 0 && ((1 << (_la - 118)) & ((1 << (MySQLParser.PURGE - 118)) | (1 << (MySQLParser.RELEASE - 118)) | (1 << (MySQLParser.RENAME - 118)) | (1 << (MySQLParser.REPLACE - 118)) | (1 << (MySQLParser.RESIGNAL - 118)) | (1 << (MySQLParser.REVOKE - 118)) | (1 << (MySQLParser.SELECT - 118)) | (1 << (MySQLParser.SET - 118)) | (1 << (MySQLParser.SHOW - 118)) | (1 << (MySQLParser.SIGNAL - 118)))) !== 0) || ((((_la - 164)) & ~0x1f) == 0 && ((1 << (_la - 164)) & ((1 << (MySQLParser.UNLOCK - 164)) | (1 << (MySQLParser.UPDATE - 164)) | (1 << (MySQLParser.USE - 164)))) !== 0) || ((((_la - 282)) & ~0x1f) == 0 && ((1 << (_la - 282)) & ((1 << (MySQLParser.BEGIN - 282)) | (1 << (MySQLParser.BINLOG - 282)) | (1 << (MySQLParser.CACHE - 282)) | (1 << (MySQLParser.CHECKSUM - 282)) | (1 << (MySQLParser.COMMIT - 282)))) !== 0) || _la===MySQLParser.DEALLOCATE || _la===MySQLParser.DO || ((((_la - 364)) & ~0x1f) == 0 && ((1 << (_la - 364)) & ((1 << (MySQLParser.FLUSH - 364)) | (1 << (MySQLParser.HANDLER - 364)) | (1 << (MySQLParser.HELP - 364)) | (1 << (MySQLParser.INSTALL - 364)))) !== 0) || ((((_la - 475)) & ~0x1f) == 0 && ((1 << (_la - 475)) & ((1 << (MySQLParser.PREPARE - 475)) | (1 << (MySQLParser.REPAIR - 475)) | (1 << (MySQLParser.RESET - 475)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (MySQLParser.ROLLBACK - 508)) | (1 << (MySQLParser.SAVEPOINT - 508)) | (1 << (MySQLParser.START - 508)))) !== 0) || ((((_la - 544)) & ~0x1f) == 0 && ((1 << (_la - 544)) & ((1 << (MySQLParser.STOP - 544)) | (1 << (MySQLParser.TRUNCATE - 544)) | (1 << (MySQLParser.UNINSTALL - 544)))) !== 0) || ((((_la - 587)) & ~0x1f) == 0 && ((1 << (_la - 587)) & ((1 << (MySQLParser.XA - 587)) | (1 << (MySQLParser.EXECUTE - 587)) | (1 << (MySQLParser.SHUTDOWN - 587)))) !== 0) || _la===MySQLParser.LR_BRACKET || _la===MySQLParser.SEMI) { + this.state = 630; + this.sqlStatements(); + } + + this.state = 634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.MINUSMINUS) { + this.state = 633; + this.match(MySQLParser.MINUSMINUS); + } + + this.state = 636; + this.match(MySQLParser.EOF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SqlStatementsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_sqlStatements; + return this; +} + +SqlStatementsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SqlStatementsContext.prototype.constructor = SqlStatementsContext; + +SqlStatementsContext.prototype.sqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SqlStatementContext); + } else { + return this.getTypedRuleContext(SqlStatementContext,i); + } +}; + +SqlStatementsContext.prototype.emptyStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(EmptyStatementContext); + } else { + return this.getTypedRuleContext(EmptyStatementContext,i); + } +}; + +SqlStatementsContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.SEMI); + } else { + return this.getToken(MySQLParser.SEMI, i); + } +}; + + +SqlStatementsContext.prototype.MINUSMINUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.MINUSMINUS); + } else { + return this.getToken(MySQLParser.MINUSMINUS, i); + } +}; + + +SqlStatementsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSqlStatements(this); + } +}; + +SqlStatementsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSqlStatements(this); + } +}; + +SqlStatementsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSqlStatements(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SqlStatementsContext = SqlStatementsContext; + +MySQLParser.prototype.sqlStatements = function() { + + var localctx = new SqlStatementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, MySQLParser.RULE_sqlStatements); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 648; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,5,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 646; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ALTER: + case MySQLParser.ANALYZE: + case MySQLParser.CALL: + case MySQLParser.CHANGE: + case MySQLParser.CHECK: + case MySQLParser.CREATE: + case MySQLParser.DELETE: + case MySQLParser.DESC: + case MySQLParser.DESCRIBE: + case MySQLParser.DROP: + case MySQLParser.EXPLAIN: + case MySQLParser.GET: + case MySQLParser.GRANT: + case MySQLParser.INSERT: + case MySQLParser.KILL: + case MySQLParser.LOAD: + case MySQLParser.LOCK: + case MySQLParser.OPTIMIZE: + case MySQLParser.PURGE: + case MySQLParser.RELEASE: + case MySQLParser.RENAME: + case MySQLParser.REPLACE: + case MySQLParser.RESIGNAL: + case MySQLParser.REVOKE: + case MySQLParser.SELECT: + case MySQLParser.SET: + case MySQLParser.SHOW: + case MySQLParser.SIGNAL: + case MySQLParser.UNLOCK: + case MySQLParser.UPDATE: + case MySQLParser.USE: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.CACHE: + case MySQLParser.CHECKSUM: + case MySQLParser.COMMIT: + case MySQLParser.DEALLOCATE: + case MySQLParser.DO: + case MySQLParser.FLUSH: + case MySQLParser.HANDLER: + case MySQLParser.HELP: + case MySQLParser.INSTALL: + case MySQLParser.PREPARE: + case MySQLParser.REPAIR: + case MySQLParser.RESET: + case MySQLParser.ROLLBACK: + case MySQLParser.SAVEPOINT: + case MySQLParser.START: + case MySQLParser.STOP: + case MySQLParser.TRUNCATE: + case MySQLParser.UNINSTALL: + case MySQLParser.XA: + case MySQLParser.EXECUTE: + case MySQLParser.SHUTDOWN: + case MySQLParser.LR_BRACKET: + this.state = 638; + this.sqlStatement(); + this.state = 640; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.MINUSMINUS) { + this.state = 639; + this.match(MySQLParser.MINUSMINUS); + } + + this.state = 643; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,3,this._ctx); + if(la_===1) { + this.state = 642; + this.match(MySQLParser.SEMI); + + } + break; + case MySQLParser.SEMI: + this.state = 645; + this.emptyStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 650; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,5,this._ctx); + } + + this.state = 659; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ALTER: + case MySQLParser.ANALYZE: + case MySQLParser.CALL: + case MySQLParser.CHANGE: + case MySQLParser.CHECK: + case MySQLParser.CREATE: + case MySQLParser.DELETE: + case MySQLParser.DESC: + case MySQLParser.DESCRIBE: + case MySQLParser.DROP: + case MySQLParser.EXPLAIN: + case MySQLParser.GET: + case MySQLParser.GRANT: + case MySQLParser.INSERT: + case MySQLParser.KILL: + case MySQLParser.LOAD: + case MySQLParser.LOCK: + case MySQLParser.OPTIMIZE: + case MySQLParser.PURGE: + case MySQLParser.RELEASE: + case MySQLParser.RENAME: + case MySQLParser.REPLACE: + case MySQLParser.RESIGNAL: + case MySQLParser.REVOKE: + case MySQLParser.SELECT: + case MySQLParser.SET: + case MySQLParser.SHOW: + case MySQLParser.SIGNAL: + case MySQLParser.UNLOCK: + case MySQLParser.UPDATE: + case MySQLParser.USE: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.CACHE: + case MySQLParser.CHECKSUM: + case MySQLParser.COMMIT: + case MySQLParser.DEALLOCATE: + case MySQLParser.DO: + case MySQLParser.FLUSH: + case MySQLParser.HANDLER: + case MySQLParser.HELP: + case MySQLParser.INSTALL: + case MySQLParser.PREPARE: + case MySQLParser.REPAIR: + case MySQLParser.RESET: + case MySQLParser.ROLLBACK: + case MySQLParser.SAVEPOINT: + case MySQLParser.START: + case MySQLParser.STOP: + case MySQLParser.TRUNCATE: + case MySQLParser.UNINSTALL: + case MySQLParser.XA: + case MySQLParser.EXECUTE: + case MySQLParser.SHUTDOWN: + case MySQLParser.LR_BRACKET: + this.state = 651; + this.sqlStatement(); + this.state = 656; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,7,this._ctx); + if(la_===1) { + this.state = 653; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.MINUSMINUS) { + this.state = 652; + this.match(MySQLParser.MINUSMINUS); + } + + this.state = 655; + this.match(MySQLParser.SEMI); + + } + break; + case MySQLParser.SEMI: + this.state = 658; + this.emptyStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SqlStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_sqlStatement; + return this; +} + +SqlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SqlStatementContext.prototype.constructor = SqlStatementContext; + +SqlStatementContext.prototype.ddlStatement = function() { + return this.getTypedRuleContext(DdlStatementContext,0); +}; + +SqlStatementContext.prototype.dmlStatement = function() { + return this.getTypedRuleContext(DmlStatementContext,0); +}; + +SqlStatementContext.prototype.transactionStatement = function() { + return this.getTypedRuleContext(TransactionStatementContext,0); +}; + +SqlStatementContext.prototype.replicationStatement = function() { + return this.getTypedRuleContext(ReplicationStatementContext,0); +}; + +SqlStatementContext.prototype.preparedStatement = function() { + return this.getTypedRuleContext(PreparedStatementContext,0); +}; + +SqlStatementContext.prototype.administrationStatement = function() { + return this.getTypedRuleContext(AdministrationStatementContext,0); +}; + +SqlStatementContext.prototype.utilityStatement = function() { + return this.getTypedRuleContext(UtilityStatementContext,0); +}; + +SqlStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSqlStatement(this); + } +}; + +SqlStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSqlStatement(this); + } +}; + +SqlStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSqlStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SqlStatementContext = SqlStatementContext; + +MySQLParser.prototype.sqlStatement = function() { + + var localctx = new SqlStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, MySQLParser.RULE_sqlStatement); + try { + this.state = 668; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 661; + this.ddlStatement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 662; + this.dmlStatement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 663; + this.transactionStatement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 664; + this.replicationStatement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 665; + this.preparedStatement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 666; + this.administrationStatement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 667; + this.utilityStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function EmptyStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_emptyStatement; + return this; +} + +EmptyStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +EmptyStatementContext.prototype.constructor = EmptyStatementContext; + +EmptyStatementContext.prototype.SEMI = function() { + return this.getToken(MySQLParser.SEMI, 0); +}; + +EmptyStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterEmptyStatement(this); + } +}; + +EmptyStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitEmptyStatement(this); + } +}; + +EmptyStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitEmptyStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.EmptyStatementContext = EmptyStatementContext; + +MySQLParser.prototype.emptyStatement = function() { + + var localctx = new EmptyStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, MySQLParser.RULE_emptyStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 670; + this.match(MySQLParser.SEMI); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DdlStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_ddlStatement; + return this; +} + +DdlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DdlStatementContext.prototype.constructor = DdlStatementContext; + +DdlStatementContext.prototype.createDatabase = function() { + return this.getTypedRuleContext(CreateDatabaseContext,0); +}; + +DdlStatementContext.prototype.createEvent = function() { + return this.getTypedRuleContext(CreateEventContext,0); +}; + +DdlStatementContext.prototype.createIndex = function() { + return this.getTypedRuleContext(CreateIndexContext,0); +}; + +DdlStatementContext.prototype.createLogfileGroup = function() { + return this.getTypedRuleContext(CreateLogfileGroupContext,0); +}; + +DdlStatementContext.prototype.createProcedure = function() { + return this.getTypedRuleContext(CreateProcedureContext,0); +}; + +DdlStatementContext.prototype.createFunction = function() { + return this.getTypedRuleContext(CreateFunctionContext,0); +}; + +DdlStatementContext.prototype.createServer = function() { + return this.getTypedRuleContext(CreateServerContext,0); +}; + +DdlStatementContext.prototype.createTable = function() { + return this.getTypedRuleContext(CreateTableContext,0); +}; + +DdlStatementContext.prototype.createTablespaceInnodb = function() { + return this.getTypedRuleContext(CreateTablespaceInnodbContext,0); +}; + +DdlStatementContext.prototype.createTablespaceNdb = function() { + return this.getTypedRuleContext(CreateTablespaceNdbContext,0); +}; + +DdlStatementContext.prototype.createTrigger = function() { + return this.getTypedRuleContext(CreateTriggerContext,0); +}; + +DdlStatementContext.prototype.createView = function() { + return this.getTypedRuleContext(CreateViewContext,0); +}; + +DdlStatementContext.prototype.alterDatabase = function() { + return this.getTypedRuleContext(AlterDatabaseContext,0); +}; + +DdlStatementContext.prototype.alterEvent = function() { + return this.getTypedRuleContext(AlterEventContext,0); +}; + +DdlStatementContext.prototype.alterFunction = function() { + return this.getTypedRuleContext(AlterFunctionContext,0); +}; + +DdlStatementContext.prototype.alterInstance = function() { + return this.getTypedRuleContext(AlterInstanceContext,0); +}; + +DdlStatementContext.prototype.alterLogfileGroup = function() { + return this.getTypedRuleContext(AlterLogfileGroupContext,0); +}; + +DdlStatementContext.prototype.alterProcedure = function() { + return this.getTypedRuleContext(AlterProcedureContext,0); +}; + +DdlStatementContext.prototype.alterServer = function() { + return this.getTypedRuleContext(AlterServerContext,0); +}; + +DdlStatementContext.prototype.alterTable = function() { + return this.getTypedRuleContext(AlterTableContext,0); +}; + +DdlStatementContext.prototype.alterTablespace = function() { + return this.getTypedRuleContext(AlterTablespaceContext,0); +}; + +DdlStatementContext.prototype.alterView = function() { + return this.getTypedRuleContext(AlterViewContext,0); +}; + +DdlStatementContext.prototype.dropDatabase = function() { + return this.getTypedRuleContext(DropDatabaseContext,0); +}; + +DdlStatementContext.prototype.dropEvent = function() { + return this.getTypedRuleContext(DropEventContext,0); +}; + +DdlStatementContext.prototype.dropIndex = function() { + return this.getTypedRuleContext(DropIndexContext,0); +}; + +DdlStatementContext.prototype.dropLogfileGroup = function() { + return this.getTypedRuleContext(DropLogfileGroupContext,0); +}; + +DdlStatementContext.prototype.dropProcedure = function() { + return this.getTypedRuleContext(DropProcedureContext,0); +}; + +DdlStatementContext.prototype.dropFunction = function() { + return this.getTypedRuleContext(DropFunctionContext,0); +}; + +DdlStatementContext.prototype.dropServer = function() { + return this.getTypedRuleContext(DropServerContext,0); +}; + +DdlStatementContext.prototype.dropTable = function() { + return this.getTypedRuleContext(DropTableContext,0); +}; + +DdlStatementContext.prototype.dropTablespace = function() { + return this.getTypedRuleContext(DropTablespaceContext,0); +}; + +DdlStatementContext.prototype.dropTrigger = function() { + return this.getTypedRuleContext(DropTriggerContext,0); +}; + +DdlStatementContext.prototype.dropView = function() { + return this.getTypedRuleContext(DropViewContext,0); +}; + +DdlStatementContext.prototype.renameTable = function() { + return this.getTypedRuleContext(RenameTableContext,0); +}; + +DdlStatementContext.prototype.truncateTable = function() { + return this.getTypedRuleContext(TruncateTableContext,0); +}; + +DdlStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDdlStatement(this); + } +}; + +DdlStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDdlStatement(this); + } +}; + +DdlStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDdlStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DdlStatementContext = DdlStatementContext; + +MySQLParser.prototype.ddlStatement = function() { + + var localctx = new DdlStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, MySQLParser.RULE_ddlStatement); + try { + this.state = 707; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,10,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 672; + this.createDatabase(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 673; + this.createEvent(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 674; + this.createIndex(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 675; + this.createLogfileGroup(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 676; + this.createProcedure(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 677; + this.createFunction(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 678; + this.createServer(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 679; + this.createTable(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 680; + this.createTablespaceInnodb(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 681; + this.createTablespaceNdb(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 682; + this.createTrigger(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 683; + this.createView(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 684; + this.alterDatabase(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 685; + this.alterEvent(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 686; + this.alterFunction(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 687; + this.alterInstance(); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 688; + this.alterLogfileGroup(); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 689; + this.alterProcedure(); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 690; + this.alterServer(); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 691; + this.alterTable(); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 692; + this.alterTablespace(); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 693; + this.alterView(); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 694; + this.dropDatabase(); + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 695; + this.dropEvent(); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 696; + this.dropIndex(); + break; + + case 26: + this.enterOuterAlt(localctx, 26); + this.state = 697; + this.dropLogfileGroup(); + break; + + case 27: + this.enterOuterAlt(localctx, 27); + this.state = 698; + this.dropProcedure(); + break; + + case 28: + this.enterOuterAlt(localctx, 28); + this.state = 699; + this.dropFunction(); + break; + + case 29: + this.enterOuterAlt(localctx, 29); + this.state = 700; + this.dropServer(); + break; + + case 30: + this.enterOuterAlt(localctx, 30); + this.state = 701; + this.dropTable(); + break; + + case 31: + this.enterOuterAlt(localctx, 31); + this.state = 702; + this.dropTablespace(); + break; + + case 32: + this.enterOuterAlt(localctx, 32); + this.state = 703; + this.dropTrigger(); + break; + + case 33: + this.enterOuterAlt(localctx, 33); + this.state = 704; + this.dropView(); + break; + + case 34: + this.enterOuterAlt(localctx, 34); + this.state = 705; + this.renameTable(); + break; + + case 35: + this.enterOuterAlt(localctx, 35); + this.state = 706; + this.truncateTable(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DmlStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dmlStatement; + return this; +} + +DmlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DmlStatementContext.prototype.constructor = DmlStatementContext; + +DmlStatementContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +DmlStatementContext.prototype.insertStatement = function() { + return this.getTypedRuleContext(InsertStatementContext,0); +}; + +DmlStatementContext.prototype.updateStatement = function() { + return this.getTypedRuleContext(UpdateStatementContext,0); +}; + +DmlStatementContext.prototype.deleteStatement = function() { + return this.getTypedRuleContext(DeleteStatementContext,0); +}; + +DmlStatementContext.prototype.replaceStatement = function() { + return this.getTypedRuleContext(ReplaceStatementContext,0); +}; + +DmlStatementContext.prototype.callStatement = function() { + return this.getTypedRuleContext(CallStatementContext,0); +}; + +DmlStatementContext.prototype.loadDataStatement = function() { + return this.getTypedRuleContext(LoadDataStatementContext,0); +}; + +DmlStatementContext.prototype.loadXmlStatement = function() { + return this.getTypedRuleContext(LoadXmlStatementContext,0); +}; + +DmlStatementContext.prototype.doStatement = function() { + return this.getTypedRuleContext(DoStatementContext,0); +}; + +DmlStatementContext.prototype.handlerStatement = function() { + return this.getTypedRuleContext(HandlerStatementContext,0); +}; + +DmlStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDmlStatement(this); + } +}; + +DmlStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDmlStatement(this); + } +}; + +DmlStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDmlStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DmlStatementContext = DmlStatementContext; + +MySQLParser.prototype.dmlStatement = function() { + + var localctx = new DmlStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 10, MySQLParser.RULE_dmlStatement); + try { + this.state = 719; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,11,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 709; + this.selectStatement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 710; + this.insertStatement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 711; + this.updateStatement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 712; + this.deleteStatement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 713; + this.replaceStatement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 714; + this.callStatement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 715; + this.loadDataStatement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 716; + this.loadXmlStatement(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 717; + this.doStatement(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 718; + this.handlerStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TransactionStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_transactionStatement; + return this; +} + +TransactionStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TransactionStatementContext.prototype.constructor = TransactionStatementContext; + +TransactionStatementContext.prototype.startTransaction = function() { + return this.getTypedRuleContext(StartTransactionContext,0); +}; + +TransactionStatementContext.prototype.beginWork = function() { + return this.getTypedRuleContext(BeginWorkContext,0); +}; + +TransactionStatementContext.prototype.commitWork = function() { + return this.getTypedRuleContext(CommitWorkContext,0); +}; + +TransactionStatementContext.prototype.rollbackWork = function() { + return this.getTypedRuleContext(RollbackWorkContext,0); +}; + +TransactionStatementContext.prototype.savepointStatement = function() { + return this.getTypedRuleContext(SavepointStatementContext,0); +}; + +TransactionStatementContext.prototype.rollbackStatement = function() { + return this.getTypedRuleContext(RollbackStatementContext,0); +}; + +TransactionStatementContext.prototype.releaseStatement = function() { + return this.getTypedRuleContext(ReleaseStatementContext,0); +}; + +TransactionStatementContext.prototype.lockTables = function() { + return this.getTypedRuleContext(LockTablesContext,0); +}; + +TransactionStatementContext.prototype.unlockTables = function() { + return this.getTypedRuleContext(UnlockTablesContext,0); +}; + +TransactionStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTransactionStatement(this); + } +}; + +TransactionStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTransactionStatement(this); + } +}; + +TransactionStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTransactionStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TransactionStatementContext = TransactionStatementContext; + +MySQLParser.prototype.transactionStatement = function() { + + var localctx = new TransactionStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 12, MySQLParser.RULE_transactionStatement); + try { + this.state = 730; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,12,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 721; + this.startTransaction(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 722; + this.beginWork(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 723; + this.commitWork(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 724; + this.rollbackWork(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 725; + this.savepointStatement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 726; + this.rollbackStatement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 727; + this.releaseStatement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 728; + this.lockTables(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 729; + this.unlockTables(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ReplicationStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_replicationStatement; + return this; +} + +ReplicationStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ReplicationStatementContext.prototype.constructor = ReplicationStatementContext; + +ReplicationStatementContext.prototype.changeMaster = function() { + return this.getTypedRuleContext(ChangeMasterContext,0); +}; + +ReplicationStatementContext.prototype.changeReplicationFilter = function() { + return this.getTypedRuleContext(ChangeReplicationFilterContext,0); +}; + +ReplicationStatementContext.prototype.purgeBinaryLogs = function() { + return this.getTypedRuleContext(PurgeBinaryLogsContext,0); +}; + +ReplicationStatementContext.prototype.resetMaster = function() { + return this.getTypedRuleContext(ResetMasterContext,0); +}; + +ReplicationStatementContext.prototype.resetSlave = function() { + return this.getTypedRuleContext(ResetSlaveContext,0); +}; + +ReplicationStatementContext.prototype.startSlave = function() { + return this.getTypedRuleContext(StartSlaveContext,0); +}; + +ReplicationStatementContext.prototype.stopSlave = function() { + return this.getTypedRuleContext(StopSlaveContext,0); +}; + +ReplicationStatementContext.prototype.startGroupReplication = function() { + return this.getTypedRuleContext(StartGroupReplicationContext,0); +}; + +ReplicationStatementContext.prototype.stopGroupReplication = function() { + return this.getTypedRuleContext(StopGroupReplicationContext,0); +}; + +ReplicationStatementContext.prototype.xaStartTransaction = function() { + return this.getTypedRuleContext(XaStartTransactionContext,0); +}; + +ReplicationStatementContext.prototype.xaEndTransaction = function() { + return this.getTypedRuleContext(XaEndTransactionContext,0); +}; + +ReplicationStatementContext.prototype.xaPrepareStatement = function() { + return this.getTypedRuleContext(XaPrepareStatementContext,0); +}; + +ReplicationStatementContext.prototype.xaCommitWork = function() { + return this.getTypedRuleContext(XaCommitWorkContext,0); +}; + +ReplicationStatementContext.prototype.xaRollbackWork = function() { + return this.getTypedRuleContext(XaRollbackWorkContext,0); +}; + +ReplicationStatementContext.prototype.xaRecoverWork = function() { + return this.getTypedRuleContext(XaRecoverWorkContext,0); +}; + +ReplicationStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterReplicationStatement(this); + } +}; + +ReplicationStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitReplicationStatement(this); + } +}; + +ReplicationStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitReplicationStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ReplicationStatementContext = ReplicationStatementContext; + +MySQLParser.prototype.replicationStatement = function() { + + var localctx = new ReplicationStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 14, MySQLParser.RULE_replicationStatement); + try { + this.state = 747; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,13,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 732; + this.changeMaster(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 733; + this.changeReplicationFilter(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 734; + this.purgeBinaryLogs(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 735; + this.resetMaster(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 736; + this.resetSlave(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 737; + this.startSlave(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 738; + this.stopSlave(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 739; + this.startGroupReplication(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 740; + this.stopGroupReplication(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 741; + this.xaStartTransaction(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 742; + this.xaEndTransaction(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 743; + this.xaPrepareStatement(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 744; + this.xaCommitWork(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 745; + this.xaRollbackWork(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 746; + this.xaRecoverWork(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PreparedStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_preparedStatement; + return this; +} + +PreparedStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PreparedStatementContext.prototype.constructor = PreparedStatementContext; + +PreparedStatementContext.prototype.prepareStatement = function() { + return this.getTypedRuleContext(PrepareStatementContext,0); +}; + +PreparedStatementContext.prototype.executeStatement = function() { + return this.getTypedRuleContext(ExecuteStatementContext,0); +}; + +PreparedStatementContext.prototype.deallocatePrepare = function() { + return this.getTypedRuleContext(DeallocatePrepareContext,0); +}; + +PreparedStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPreparedStatement(this); + } +}; + +PreparedStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPreparedStatement(this); + } +}; + +PreparedStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPreparedStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PreparedStatementContext = PreparedStatementContext; + +MySQLParser.prototype.preparedStatement = function() { + + var localctx = new PreparedStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 16, MySQLParser.RULE_preparedStatement); + try { + this.state = 752; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.PREPARE: + this.enterOuterAlt(localctx, 1); + this.state = 749; + this.prepareStatement(); + break; + case MySQLParser.EXECUTE: + this.enterOuterAlt(localctx, 2); + this.state = 750; + this.executeStatement(); + break; + case MySQLParser.DROP: + case MySQLParser.DEALLOCATE: + this.enterOuterAlt(localctx, 3); + this.state = 751; + this.deallocatePrepare(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CompoundStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_compoundStatement; + return this; +} + +CompoundStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CompoundStatementContext.prototype.constructor = CompoundStatementContext; + +CompoundStatementContext.prototype.blockStatement = function() { + return this.getTypedRuleContext(BlockStatementContext,0); +}; + +CompoundStatementContext.prototype.caseStatement = function() { + return this.getTypedRuleContext(CaseStatementContext,0); +}; + +CompoundStatementContext.prototype.ifStatement = function() { + return this.getTypedRuleContext(IfStatementContext,0); +}; + +CompoundStatementContext.prototype.leaveStatement = function() { + return this.getTypedRuleContext(LeaveStatementContext,0); +}; + +CompoundStatementContext.prototype.loopStatement = function() { + return this.getTypedRuleContext(LoopStatementContext,0); +}; + +CompoundStatementContext.prototype.repeatStatement = function() { + return this.getTypedRuleContext(RepeatStatementContext,0); +}; + +CompoundStatementContext.prototype.whileStatement = function() { + return this.getTypedRuleContext(WhileStatementContext,0); +}; + +CompoundStatementContext.prototype.iterateStatement = function() { + return this.getTypedRuleContext(IterateStatementContext,0); +}; + +CompoundStatementContext.prototype.returnStatement = function() { + return this.getTypedRuleContext(ReturnStatementContext,0); +}; + +CompoundStatementContext.prototype.cursorStatement = function() { + return this.getTypedRuleContext(CursorStatementContext,0); +}; + +CompoundStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCompoundStatement(this); + } +}; + +CompoundStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCompoundStatement(this); + } +}; + +CompoundStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCompoundStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CompoundStatementContext = CompoundStatementContext; + +MySQLParser.prototype.compoundStatement = function() { + + var localctx = new CompoundStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 18, MySQLParser.RULE_compoundStatement); + try { + this.state = 764; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,15,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 754; + this.blockStatement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 755; + this.caseStatement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 756; + this.ifStatement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 757; + this.leaveStatement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 758; + this.loopStatement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 759; + this.repeatStatement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 760; + this.whileStatement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 761; + this.iterateStatement(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 762; + this.returnStatement(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 763; + this.cursorStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AdministrationStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_administrationStatement; + return this; +} + +AdministrationStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AdministrationStatementContext.prototype.constructor = AdministrationStatementContext; + +AdministrationStatementContext.prototype.alterUser = function() { + return this.getTypedRuleContext(AlterUserContext,0); +}; + +AdministrationStatementContext.prototype.createUser = function() { + return this.getTypedRuleContext(CreateUserContext,0); +}; + +AdministrationStatementContext.prototype.dropUser = function() { + return this.getTypedRuleContext(DropUserContext,0); +}; + +AdministrationStatementContext.prototype.grantStatement = function() { + return this.getTypedRuleContext(GrantStatementContext,0); +}; + +AdministrationStatementContext.prototype.grantProxy = function() { + return this.getTypedRuleContext(GrantProxyContext,0); +}; + +AdministrationStatementContext.prototype.renameUser = function() { + return this.getTypedRuleContext(RenameUserContext,0); +}; + +AdministrationStatementContext.prototype.revokeStatement = function() { + return this.getTypedRuleContext(RevokeStatementContext,0); +}; + +AdministrationStatementContext.prototype.revokeProxy = function() { + return this.getTypedRuleContext(RevokeProxyContext,0); +}; + +AdministrationStatementContext.prototype.analyzeTable = function() { + return this.getTypedRuleContext(AnalyzeTableContext,0); +}; + +AdministrationStatementContext.prototype.checkTable = function() { + return this.getTypedRuleContext(CheckTableContext,0); +}; + +AdministrationStatementContext.prototype.checksumTable = function() { + return this.getTypedRuleContext(ChecksumTableContext,0); +}; + +AdministrationStatementContext.prototype.optimizeTable = function() { + return this.getTypedRuleContext(OptimizeTableContext,0); +}; + +AdministrationStatementContext.prototype.repairTable = function() { + return this.getTypedRuleContext(RepairTableContext,0); +}; + +AdministrationStatementContext.prototype.createUdfunction = function() { + return this.getTypedRuleContext(CreateUdfunctionContext,0); +}; + +AdministrationStatementContext.prototype.installPlugin = function() { + return this.getTypedRuleContext(InstallPluginContext,0); +}; + +AdministrationStatementContext.prototype.uninstallPlugin = function() { + return this.getTypedRuleContext(UninstallPluginContext,0); +}; + +AdministrationStatementContext.prototype.setStatement = function() { + return this.getTypedRuleContext(SetStatementContext,0); +}; + +AdministrationStatementContext.prototype.showStatement = function() { + return this.getTypedRuleContext(ShowStatementContext,0); +}; + +AdministrationStatementContext.prototype.binlogStatement = function() { + return this.getTypedRuleContext(BinlogStatementContext,0); +}; + +AdministrationStatementContext.prototype.cacheIndexStatement = function() { + return this.getTypedRuleContext(CacheIndexStatementContext,0); +}; + +AdministrationStatementContext.prototype.flushStatement = function() { + return this.getTypedRuleContext(FlushStatementContext,0); +}; + +AdministrationStatementContext.prototype.killStatement = function() { + return this.getTypedRuleContext(KillStatementContext,0); +}; + +AdministrationStatementContext.prototype.loadIndexIntoCache = function() { + return this.getTypedRuleContext(LoadIndexIntoCacheContext,0); +}; + +AdministrationStatementContext.prototype.resetStatement = function() { + return this.getTypedRuleContext(ResetStatementContext,0); +}; + +AdministrationStatementContext.prototype.shutdownStatement = function() { + return this.getTypedRuleContext(ShutdownStatementContext,0); +}; + +AdministrationStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAdministrationStatement(this); + } +}; + +AdministrationStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAdministrationStatement(this); + } +}; + +AdministrationStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAdministrationStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AdministrationStatementContext = AdministrationStatementContext; + +MySQLParser.prototype.administrationStatement = function() { + + var localctx = new AdministrationStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 20, MySQLParser.RULE_administrationStatement); + try { + this.state = 791; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,16,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 766; + this.alterUser(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 767; + this.createUser(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 768; + this.dropUser(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 769; + this.grantStatement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 770; + this.grantProxy(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 771; + this.renameUser(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 772; + this.revokeStatement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 773; + this.revokeProxy(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 774; + this.analyzeTable(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 775; + this.checkTable(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 776; + this.checksumTable(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 777; + this.optimizeTable(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 778; + this.repairTable(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 779; + this.createUdfunction(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 780; + this.installPlugin(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 781; + this.uninstallPlugin(); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 782; + this.setStatement(); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 783; + this.showStatement(); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 784; + this.binlogStatement(); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 785; + this.cacheIndexStatement(); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 786; + this.flushStatement(); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 787; + this.killStatement(); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 788; + this.loadIndexIntoCache(); + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 789; + this.resetStatement(); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 790; + this.shutdownStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UtilityStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_utilityStatement; + return this; +} + +UtilityStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UtilityStatementContext.prototype.constructor = UtilityStatementContext; + +UtilityStatementContext.prototype.simpleDescribeStatement = function() { + return this.getTypedRuleContext(SimpleDescribeStatementContext,0); +}; + +UtilityStatementContext.prototype.fullDescribeStatement = function() { + return this.getTypedRuleContext(FullDescribeStatementContext,0); +}; + +UtilityStatementContext.prototype.helpStatement = function() { + return this.getTypedRuleContext(HelpStatementContext,0); +}; + +UtilityStatementContext.prototype.useStatement = function() { + return this.getTypedRuleContext(UseStatementContext,0); +}; + +UtilityStatementContext.prototype.signalStatement = function() { + return this.getTypedRuleContext(SignalStatementContext,0); +}; + +UtilityStatementContext.prototype.resignalStatement = function() { + return this.getTypedRuleContext(ResignalStatementContext,0); +}; + +UtilityStatementContext.prototype.diagnosticsStatement = function() { + return this.getTypedRuleContext(DiagnosticsStatementContext,0); +}; + +UtilityStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUtilityStatement(this); + } +}; + +UtilityStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUtilityStatement(this); + } +}; + +UtilityStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUtilityStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UtilityStatementContext = UtilityStatementContext; + +MySQLParser.prototype.utilityStatement = function() { + + var localctx = new UtilityStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 22, MySQLParser.RULE_utilityStatement); + try { + this.state = 800; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,17,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 793; + this.simpleDescribeStatement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 794; + this.fullDescribeStatement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 795; + this.helpStatement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 796; + this.useStatement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 797; + this.signalStatement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 798; + this.resignalStatement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 799; + this.diagnosticsStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateDatabaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createDatabase; + this.dbFormat = null; // Token + return this; +} + +CreateDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateDatabaseContext.prototype.constructor = CreateDatabaseContext; + +CreateDatabaseContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateDatabaseContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateDatabaseContext.prototype.DATABASE = function() { + return this.getToken(MySQLParser.DATABASE, 0); +}; + +CreateDatabaseContext.prototype.SCHEMA = function() { + return this.getToken(MySQLParser.SCHEMA, 0); +}; + +CreateDatabaseContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; + +CreateDatabaseContext.prototype.createDatabaseOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(CreateDatabaseOptionContext); + } else { + return this.getTypedRuleContext(CreateDatabaseOptionContext,i); + } +}; + +CreateDatabaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateDatabase(this); + } +}; + +CreateDatabaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateDatabase(this); + } +}; + +CreateDatabaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateDatabase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateDatabaseContext = CreateDatabaseContext; + +MySQLParser.prototype.createDatabase = function() { + + var localctx = new CreateDatabaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 24, MySQLParser.RULE_createDatabase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 802; + this.match(MySQLParser.CREATE); + this.state = 803; + localctx.dbFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DATABASE || _la===MySQLParser.SCHEMA)) { + localctx.dbFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 805; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 804; + this.ifNotExists(); + } + + this.state = 807; + this.uid(); + this.state = 811; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(((((_la - 22)) & ~0x1f) == 0 && ((1 << (_la - 22)) & ((1 << (MySQLParser.CHARACTER - 22)) | (1 << (MySQLParser.COLLATE - 22)) | (1 << (MySQLParser.DEFAULT - 22)))) !== 0) || _la===MySQLParser.CHARSET) { + this.state = 808; + this.createDatabaseOption(); + this.state = 813; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateEventContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createEvent; + return this; +} + +CreateEventContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateEventContext.prototype.constructor = CreateEventContext; + +CreateEventContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateEventContext.prototype.EVENT = function() { + return this.getToken(MySQLParser.EVENT, 0); +}; + +CreateEventContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +CreateEventContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.ON); + } else { + return this.getToken(MySQLParser.ON, i); + } +}; + + +CreateEventContext.prototype.SCHEDULE = function() { + return this.getToken(MySQLParser.SCHEDULE, 0); +}; + +CreateEventContext.prototype.scheduleExpression = function() { + return this.getTypedRuleContext(ScheduleExpressionContext,0); +}; + +CreateEventContext.prototype.DO = function() { + return this.getToken(MySQLParser.DO, 0); +}; + +CreateEventContext.prototype.routineBody = function() { + return this.getTypedRuleContext(RoutineBodyContext,0); +}; + +CreateEventContext.prototype.ownerStatement = function() { + return this.getTypedRuleContext(OwnerStatementContext,0); +}; + +CreateEventContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; + +CreateEventContext.prototype.COMPLETION = function() { + return this.getToken(MySQLParser.COMPLETION, 0); +}; + +CreateEventContext.prototype.PRESERVE = function() { + return this.getToken(MySQLParser.PRESERVE, 0); +}; + +CreateEventContext.prototype.enableType = function() { + return this.getTypedRuleContext(EnableTypeContext,0); +}; + +CreateEventContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +CreateEventContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +CreateEventContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +CreateEventContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateEvent(this); + } +}; + +CreateEventContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateEvent(this); + } +}; + +CreateEventContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateEvent(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateEventContext = CreateEventContext; + +MySQLParser.prototype.createEvent = function() { + + var localctx = new CreateEventContext(this, this._ctx, this.state); + this.enterRule(localctx, 26, MySQLParser.RULE_createEvent); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 814; + this.match(MySQLParser.CREATE); + this.state = 816; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFINER) { + this.state = 815; + this.ownerStatement(); + } + + this.state = 818; + this.match(MySQLParser.EVENT); + this.state = 820; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 819; + this.ifNotExists(); + } + + this.state = 822; + this.fullId(); + this.state = 823; + this.match(MySQLParser.ON); + this.state = 824; + this.match(MySQLParser.SCHEDULE); + this.state = 825; + this.scheduleExpression(); + this.state = 832; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ON) { + this.state = 826; + this.match(MySQLParser.ON); + this.state = 827; + this.match(MySQLParser.COMPLETION); + this.state = 829; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 828; + this.match(MySQLParser.NOT); + } + + this.state = 831; + this.match(MySQLParser.PRESERVE); + } + + this.state = 835; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DISABLE || _la===MySQLParser.ENABLE) { + this.state = 834; + this.enableType(); + } + + this.state = 839; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMENT) { + this.state = 837; + this.match(MySQLParser.COMMENT); + this.state = 838; + this.match(MySQLParser.STRING_LITERAL); + } + + this.state = 841; + this.match(MySQLParser.DO); + this.state = 842; + this.routineBody(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateIndexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createIndex; + this.intimeAction = null; // Token + this.indexCategory = null; // Token + this.algType = null; // Token + this.lockType = null; // Token + return this; +} + +CreateIndexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateIndexContext.prototype.constructor = CreateIndexContext; + +CreateIndexContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateIndexContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +CreateIndexContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateIndexContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +CreateIndexContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +CreateIndexContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +CreateIndexContext.prototype.indexType = function() { + return this.getTypedRuleContext(IndexTypeContext,0); +}; + +CreateIndexContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; + +CreateIndexContext.prototype.ALGORITHM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.ALGORITHM); + } else { + return this.getToken(MySQLParser.ALGORITHM, i); + } +}; + + +CreateIndexContext.prototype.LOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LOCK); + } else { + return this.getToken(MySQLParser.LOCK, i); + } +}; + + +CreateIndexContext.prototype.ONLINE = function() { + return this.getToken(MySQLParser.ONLINE, 0); +}; + +CreateIndexContext.prototype.OFFLINE = function() { + return this.getToken(MySQLParser.OFFLINE, 0); +}; + +CreateIndexContext.prototype.UNIQUE = function() { + return this.getToken(MySQLParser.UNIQUE, 0); +}; + +CreateIndexContext.prototype.FULLTEXT = function() { + return this.getToken(MySQLParser.FULLTEXT, 0); +}; + +CreateIndexContext.prototype.SPATIAL = function() { + return this.getToken(MySQLParser.SPATIAL, 0); +}; + +CreateIndexContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.DEFAULT); + } else { + return this.getToken(MySQLParser.DEFAULT, i); + } +}; + + +CreateIndexContext.prototype.INPLACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.INPLACE); + } else { + return this.getToken(MySQLParser.INPLACE, i); + } +}; + + +CreateIndexContext.prototype.COPY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COPY); + } else { + return this.getToken(MySQLParser.COPY, i); + } +}; + + +CreateIndexContext.prototype.NONE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.NONE); + } else { + return this.getToken(MySQLParser.NONE, i); + } +}; + + +CreateIndexContext.prototype.SHARED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.SHARED); + } else { + return this.getToken(MySQLParser.SHARED, i); + } +}; + + +CreateIndexContext.prototype.EXCLUSIVE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EXCLUSIVE); + } else { + return this.getToken(MySQLParser.EXCLUSIVE, i); + } +}; + + +CreateIndexContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +CreateIndexContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateIndex(this); + } +}; + +CreateIndexContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateIndex(this); + } +}; + +CreateIndexContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateIndex(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateIndexContext = CreateIndexContext; + +MySQLParser.prototype.createIndex = function() { + + var localctx = new CreateIndexContext(this, this._ctx, this.state); + this.enterRule(localctx, 28, MySQLParser.RULE_createIndex); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 844; + this.match(MySQLParser.CREATE); + this.state = 846; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.OFFLINE || _la===MySQLParser.ONLINE) { + this.state = 845; + localctx.intimeAction = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.OFFLINE || _la===MySQLParser.ONLINE)) { + localctx.intimeAction = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 849; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FULLTEXT || _la===MySQLParser.SPATIAL || _la===MySQLParser.UNIQUE) { + this.state = 848; + localctx.indexCategory = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FULLTEXT || _la===MySQLParser.SPATIAL || _la===MySQLParser.UNIQUE)) { + localctx.indexCategory = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 851; + this.match(MySQLParser.INDEX); + this.state = 852; + this.uid(); + this.state = 854; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 853; + this.indexType(); + } + + this.state = 856; + this.match(MySQLParser.ON); + this.state = 857; + this.tableName(); + this.state = 858; + this.indexColumnNames(); + this.state = 862; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 859; + this.indexOption(); + this.state = 864; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 877; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,33,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 875; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ALGORITHM: + this.state = 865; + this.match(MySQLParser.ALGORITHM); + this.state = 867; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 866; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 869; + localctx.algType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.COPY || _la===MySQLParser.INPLACE)) { + localctx.algType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.LOCK: + this.state = 870; + this.match(MySQLParser.LOCK); + this.state = 872; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 871; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 874; + localctx.lockType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.EXCLUSIVE || _la===MySQLParser.NONE || _la===MySQLParser.SHARED)) { + localctx.lockType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 879; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,33,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateLogfileGroupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createLogfileGroup; + this.undoFile = null; // Token + this.initSize = null; // FileSizeLiteralContext + this.undoSize = null; // FileSizeLiteralContext + this.redoSize = null; // FileSizeLiteralContext + this.comment = null; // Token + return this; +} + +CreateLogfileGroupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateLogfileGroupContext.prototype.constructor = CreateLogfileGroupContext; + +CreateLogfileGroupContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateLogfileGroupContext.prototype.LOGFILE = function() { + return this.getToken(MySQLParser.LOGFILE, 0); +}; + +CreateLogfileGroupContext.prototype.GROUP = function() { + return this.getToken(MySQLParser.GROUP, 0); +}; + +CreateLogfileGroupContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +CreateLogfileGroupContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +CreateLogfileGroupContext.prototype.UNDOFILE = function() { + return this.getToken(MySQLParser.UNDOFILE, 0); +}; + +CreateLogfileGroupContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +CreateLogfileGroupContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +CreateLogfileGroupContext.prototype.STRING_LITERAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.STRING_LITERAL); + } else { + return this.getToken(MySQLParser.STRING_LITERAL, i); + } +}; + + +CreateLogfileGroupContext.prototype.INITIAL_SIZE = function() { + return this.getToken(MySQLParser.INITIAL_SIZE, 0); +}; + +CreateLogfileGroupContext.prototype.UNDO_BUFFER_SIZE = function() { + return this.getToken(MySQLParser.UNDO_BUFFER_SIZE, 0); +}; + +CreateLogfileGroupContext.prototype.REDO_BUFFER_SIZE = function() { + return this.getToken(MySQLParser.REDO_BUFFER_SIZE, 0); +}; + +CreateLogfileGroupContext.prototype.NODEGROUP = function() { + return this.getToken(MySQLParser.NODEGROUP, 0); +}; + +CreateLogfileGroupContext.prototype.WAIT = function() { + return this.getToken(MySQLParser.WAIT, 0); +}; + +CreateLogfileGroupContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +CreateLogfileGroupContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +CreateLogfileGroupContext.prototype.fileSizeLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FileSizeLiteralContext); + } else { + return this.getTypedRuleContext(FileSizeLiteralContext,i); + } +}; + +CreateLogfileGroupContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateLogfileGroup(this); + } +}; + +CreateLogfileGroupContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateLogfileGroup(this); + } +}; + +CreateLogfileGroupContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateLogfileGroup(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateLogfileGroupContext = CreateLogfileGroupContext; + +MySQLParser.prototype.createLogfileGroup = function() { + + var localctx = new CreateLogfileGroupContext(this, this._ctx, this.state); + this.enterRule(localctx, 30, MySQLParser.RULE_createLogfileGroup); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 880; + this.match(MySQLParser.CREATE); + this.state = 881; + this.match(MySQLParser.LOGFILE); + this.state = 882; + this.match(MySQLParser.GROUP); + this.state = 883; + this.uid(); + this.state = 884; + this.match(MySQLParser.ADD); + this.state = 885; + this.match(MySQLParser.UNDOFILE); + this.state = 886; + localctx.undoFile = this.match(MySQLParser.STRING_LITERAL); + this.state = 892; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INITIAL_SIZE) { + this.state = 887; + this.match(MySQLParser.INITIAL_SIZE); + this.state = 889; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 888; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 891; + localctx.initSize = this.fileSizeLiteral(); + } + + this.state = 899; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.UNDO_BUFFER_SIZE) { + this.state = 894; + this.match(MySQLParser.UNDO_BUFFER_SIZE); + this.state = 896; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 895; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 898; + localctx.undoSize = this.fileSizeLiteral(); + } + + this.state = 906; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.REDO_BUFFER_SIZE) { + this.state = 901; + this.match(MySQLParser.REDO_BUFFER_SIZE); + this.state = 903; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 902; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 905; + localctx.redoSize = this.fileSizeLiteral(); + } + + this.state = 913; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NODEGROUP) { + this.state = 908; + this.match(MySQLParser.NODEGROUP); + this.state = 910; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 909; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 912; + this.uid(); + } + + this.state = 916; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WAIT) { + this.state = 915; + this.match(MySQLParser.WAIT); + } + + this.state = 923; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMENT) { + this.state = 918; + this.match(MySQLParser.COMMENT); + this.state = 920; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 919; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 922; + localctx.comment = this.match(MySQLParser.STRING_LITERAL); + } + + this.state = 925; + this.match(MySQLParser.ENGINE); + this.state = 927; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 926; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 929; + this.engineName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateProcedureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createProcedure; + return this; +} + +CreateProcedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateProcedureContext.prototype.constructor = CreateProcedureContext; + +CreateProcedureContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateProcedureContext.prototype.PROCEDURE = function() { + return this.getToken(MySQLParser.PROCEDURE, 0); +}; + +CreateProcedureContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +CreateProcedureContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CreateProcedureContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CreateProcedureContext.prototype.routineBody = function() { + return this.getTypedRuleContext(RoutineBodyContext,0); +}; + +CreateProcedureContext.prototype.ownerStatement = function() { + return this.getTypedRuleContext(OwnerStatementContext,0); +}; + +CreateProcedureContext.prototype.procedureParameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureParameterContext); + } else { + return this.getTypedRuleContext(ProcedureParameterContext,i); + } +}; + +CreateProcedureContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +CreateProcedureContext.prototype.routineOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(RoutineOptionContext); + } else { + return this.getTypedRuleContext(RoutineOptionContext,i); + } +}; + +CreateProcedureContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateProcedure(this); + } +}; + +CreateProcedureContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateProcedure(this); + } +}; + +CreateProcedureContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateProcedure(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateProcedureContext = CreateProcedureContext; + +MySQLParser.prototype.createProcedure = function() { + + var localctx = new CreateProcedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 32, MySQLParser.RULE_createProcedure); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 931; + this.match(MySQLParser.CREATE); + this.state = 933; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFINER) { + this.state = 932; + this.ownerStatement(); + } + + this.state = 935; + this.match(MySQLParser.PROCEDURE); + this.state = 936; + this.fullId(); + this.state = 937; + this.match(MySQLParser.LR_BRACKET); + this.state = 939; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || ((((_la - 71)) & ~0x1f) == 0 && ((1 << (_la - 71)) & ((1 << (MySQLParser.IN - 71)) | (1 << (MySQLParser.INOUT - 71)) | (1 << (MySQLParser.LEFT - 71)))) !== 0) || ((((_la - 105)) & ~0x1f) == 0 && ((1 << (_la - 105)) & ((1 << (MySQLParser.NUMBER - 105)) | (1 << (MySQLParser.OUT - 105)) | (1 << (MySQLParser.RIGHT - 105)))) !== 0) || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 938; + this.procedureParameter(); + } + + this.state = 945; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 941; + this.match(MySQLParser.COMMA); + this.state = 942; + this.procedureParameter(); + this.state = 947; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 948; + this.match(MySQLParser.RR_BRACKET); + this.state = 952; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,49,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 949; + this.routineOption(); + } + this.state = 954; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,49,this._ctx); + } + + this.state = 955; + this.routineBody(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateFunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createFunction; + return this; +} + +CreateFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateFunctionContext.prototype.constructor = CreateFunctionContext; + +CreateFunctionContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateFunctionContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +CreateFunctionContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +CreateFunctionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CreateFunctionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CreateFunctionContext.prototype.RETURNS = function() { + return this.getToken(MySQLParser.RETURNS, 0); +}; + +CreateFunctionContext.prototype.dataType = function() { + return this.getTypedRuleContext(DataTypeContext,0); +}; + +CreateFunctionContext.prototype.routineBody = function() { + return this.getTypedRuleContext(RoutineBodyContext,0); +}; + +CreateFunctionContext.prototype.returnStatement = function() { + return this.getTypedRuleContext(ReturnStatementContext,0); +}; + +CreateFunctionContext.prototype.ownerStatement = function() { + return this.getTypedRuleContext(OwnerStatementContext,0); +}; + +CreateFunctionContext.prototype.functionParameter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FunctionParameterContext); + } else { + return this.getTypedRuleContext(FunctionParameterContext,i); + } +}; + +CreateFunctionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +CreateFunctionContext.prototype.routineOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(RoutineOptionContext); + } else { + return this.getTypedRuleContext(RoutineOptionContext,i); + } +}; + +CreateFunctionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateFunction(this); + } +}; + +CreateFunctionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateFunction(this); + } +}; + +CreateFunctionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateFunction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateFunctionContext = CreateFunctionContext; + +MySQLParser.prototype.createFunction = function() { + + var localctx = new CreateFunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 34, MySQLParser.RULE_createFunction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 957; + this.match(MySQLParser.CREATE); + this.state = 959; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFINER) { + this.state = 958; + this.ownerStatement(); + } + + this.state = 961; + this.match(MySQLParser.FUNCTION); + this.state = 962; + this.fullId(); + this.state = 963; + this.match(MySQLParser.LR_BRACKET); + this.state = 965; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 964; + this.functionParameter(); + } + + this.state = 971; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 967; + this.match(MySQLParser.COMMA); + this.state = 968; + this.functionParameter(); + this.state = 973; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 974; + this.match(MySQLParser.RR_BRACKET); + this.state = 975; + this.match(MySQLParser.RETURNS); + this.state = 976; + this.dataType(); + this.state = 980; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,53,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 977; + this.routineOption(); + } + this.state = 982; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,53,this._ctx); + } + + this.state = 985; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ALTER: + case MySQLParser.ANALYZE: + case MySQLParser.CALL: + case MySQLParser.CHANGE: + case MySQLParser.CHECK: + case MySQLParser.CREATE: + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DELETE: + case MySQLParser.DESC: + case MySQLParser.DESCRIBE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.DROP: + case MySQLParser.EXPLAIN: + case MySQLParser.GET: + case MySQLParser.GRANT: + case MySQLParser.INSERT: + case MySQLParser.KILL: + case MySQLParser.LEFT: + case MySQLParser.LOAD: + case MySQLParser.LOCK: + case MySQLParser.NUMBER: + case MySQLParser.OPTIMIZE: + case MySQLParser.PURGE: + case MySQLParser.RELEASE: + case MySQLParser.RENAME: + case MySQLParser.REPLACE: + case MySQLParser.RESIGNAL: + case MySQLParser.REVOKE: + case MySQLParser.RIGHT: + case MySQLParser.SELECT: + case MySQLParser.SET: + case MySQLParser.SHOW: + case MySQLParser.SIGNAL: + case MySQLParser.STACKED: + case MySQLParser.UNLOCK: + case MySQLParser.UPDATE: + case MySQLParser.USE: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.LR_BRACKET: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 983; + this.routineBody(); + break; + case MySQLParser.RETURN: + this.state = 984; + this.returnStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateServerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createServer; + this.wrapperName = null; // Token + return this; +} + +CreateServerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateServerContext.prototype.constructor = CreateServerContext; + +CreateServerContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateServerContext.prototype.SERVER = function() { + return this.getToken(MySQLParser.SERVER, 0); +}; + +CreateServerContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateServerContext.prototype.FOREIGN = function() { + return this.getToken(MySQLParser.FOREIGN, 0); +}; + +CreateServerContext.prototype.DATA = function() { + return this.getToken(MySQLParser.DATA, 0); +}; + +CreateServerContext.prototype.WRAPPER = function() { + return this.getToken(MySQLParser.WRAPPER, 0); +}; + +CreateServerContext.prototype.OPTIONS = function() { + return this.getToken(MySQLParser.OPTIONS, 0); +}; + +CreateServerContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CreateServerContext.prototype.serverOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ServerOptionContext); + } else { + return this.getTypedRuleContext(ServerOptionContext,i); + } +}; + +CreateServerContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CreateServerContext.prototype.MYSQL = function() { + return this.getToken(MySQLParser.MYSQL, 0); +}; + +CreateServerContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +CreateServerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +CreateServerContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateServer(this); + } +}; + +CreateServerContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateServer(this); + } +}; + +CreateServerContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateServer(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateServerContext = CreateServerContext; + +MySQLParser.prototype.createServer = function() { + + var localctx = new CreateServerContext(this, this._ctx, this.state); + this.enterRule(localctx, 36, MySQLParser.RULE_createServer); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 987; + this.match(MySQLParser.CREATE); + this.state = 988; + this.match(MySQLParser.SERVER); + this.state = 989; + this.uid(); + this.state = 990; + this.match(MySQLParser.FOREIGN); + this.state = 991; + this.match(MySQLParser.DATA); + this.state = 992; + this.match(MySQLParser.WRAPPER); + this.state = 993; + localctx.wrapperName = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.MYSQL || _la===MySQLParser.STRING_LITERAL)) { + localctx.wrapperName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 994; + this.match(MySQLParser.OPTIONS); + this.state = 995; + this.match(MySQLParser.LR_BRACKET); + this.state = 996; + this.serverOption(); + this.state = 1001; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 997; + this.match(MySQLParser.COMMA); + this.state = 998; + this.serverOption(); + this.state = 1003; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1004; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createTable; + return this; +} + +CreateTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateTableContext.prototype.constructor = CreateTableContext; + + + +CreateTableContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function CopyCreateTableContext(parser, ctx) { + CreateTableContext.call(this, parser); + this.parenthesisTable = null; // TableNameContext; + CreateTableContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CopyCreateTableContext.prototype = Object.create(CreateTableContext.prototype); +CopyCreateTableContext.prototype.constructor = CopyCreateTableContext; + +MySQLParser.CopyCreateTableContext = CopyCreateTableContext; + +CopyCreateTableContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CopyCreateTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +CopyCreateTableContext.prototype.tableName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableNameContext); + } else { + return this.getTypedRuleContext(TableNameContext,i); + } +}; + +CopyCreateTableContext.prototype.LIKE = function() { + return this.getToken(MySQLParser.LIKE, 0); +}; + +CopyCreateTableContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CopyCreateTableContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CopyCreateTableContext.prototype.TEMPORARY = function() { + return this.getToken(MySQLParser.TEMPORARY, 0); +}; + +CopyCreateTableContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; +CopyCreateTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCopyCreateTable(this); + } +}; + +CopyCreateTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCopyCreateTable(this); + } +}; + +CopyCreateTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCopyCreateTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ColumnCreateTableContext(parser, ctx) { + CreateTableContext.call(this, parser); + CreateTableContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ColumnCreateTableContext.prototype = Object.create(CreateTableContext.prototype); +ColumnCreateTableContext.prototype.constructor = ColumnCreateTableContext; + +MySQLParser.ColumnCreateTableContext = ColumnCreateTableContext; + +ColumnCreateTableContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +ColumnCreateTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +ColumnCreateTableContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +ColumnCreateTableContext.prototype.createDefinitions = function() { + return this.getTypedRuleContext(CreateDefinitionsContext,0); +}; + +ColumnCreateTableContext.prototype.TEMPORARY = function() { + return this.getToken(MySQLParser.TEMPORARY, 0); +}; + +ColumnCreateTableContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; + +ColumnCreateTableContext.prototype.tableOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableOptionContext); + } else { + return this.getTypedRuleContext(TableOptionContext,i); + } +}; + +ColumnCreateTableContext.prototype.partitionDefinitions = function() { + return this.getTypedRuleContext(PartitionDefinitionsContext,0); +}; + +ColumnCreateTableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +ColumnCreateTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterColumnCreateTable(this); + } +}; + +ColumnCreateTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitColumnCreateTable(this); + } +}; + +ColumnCreateTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitColumnCreateTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function QueryCreateTableContext(parser, ctx) { + CreateTableContext.call(this, parser); + this.keyViolate = null; // Token; + CreateTableContext.prototype.copyFrom.call(this, ctx); + return this; +} + +QueryCreateTableContext.prototype = Object.create(CreateTableContext.prototype); +QueryCreateTableContext.prototype.constructor = QueryCreateTableContext; + +MySQLParser.QueryCreateTableContext = QueryCreateTableContext; + +QueryCreateTableContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +QueryCreateTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +QueryCreateTableContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +QueryCreateTableContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +QueryCreateTableContext.prototype.TEMPORARY = function() { + return this.getToken(MySQLParser.TEMPORARY, 0); +}; + +QueryCreateTableContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; + +QueryCreateTableContext.prototype.createDefinitions = function() { + return this.getTypedRuleContext(CreateDefinitionsContext,0); +}; + +QueryCreateTableContext.prototype.tableOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableOptionContext); + } else { + return this.getTypedRuleContext(TableOptionContext,i); + } +}; + +QueryCreateTableContext.prototype.partitionDefinitions = function() { + return this.getTypedRuleContext(PartitionDefinitionsContext,0); +}; + +QueryCreateTableContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +QueryCreateTableContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +QueryCreateTableContext.prototype.REPLACE = function() { + return this.getToken(MySQLParser.REPLACE, 0); +}; + +QueryCreateTableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +QueryCreateTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterQueryCreateTable(this); + } +}; + +QueryCreateTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitQueryCreateTable(this); + } +}; + +QueryCreateTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitQueryCreateTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.CreateTableContext = CreateTableContext; + +MySQLParser.prototype.createTable = function() { + + var localctx = new CreateTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 38, MySQLParser.RULE_createTable); + var _la = 0; // Token type + try { + this.state = 1084; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,74,this._ctx); + switch(la_) { + case 1: + localctx = new CopyCreateTableContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1006; + this.match(MySQLParser.CREATE); + this.state = 1008; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.TEMPORARY) { + this.state = 1007; + this.match(MySQLParser.TEMPORARY); + } + + this.state = 1010; + this.match(MySQLParser.TABLE); + this.state = 1012; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 1011; + this.ifNotExists(); + } + + this.state = 1014; + this.tableName(); + this.state = 1022; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.LIKE: + this.state = 1015; + this.match(MySQLParser.LIKE); + this.state = 1016; + this.tableName(); + break; + case MySQLParser.LR_BRACKET: + this.state = 1017; + this.match(MySQLParser.LR_BRACKET); + this.state = 1018; + this.match(MySQLParser.LIKE); + this.state = 1019; + localctx.parenthesisTable = this.tableName(); + this.state = 1020; + this.match(MySQLParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 2: + localctx = new QueryCreateTableContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1024; + this.match(MySQLParser.CREATE); + this.state = 1026; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.TEMPORARY) { + this.state = 1025; + this.match(MySQLParser.TEMPORARY); + } + + this.state = 1028; + this.match(MySQLParser.TABLE); + this.state = 1030; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 1029; + this.ifNotExists(); + } + + this.state = 1032; + this.tableName(); + this.state = 1034; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,61,this._ctx); + if(la_===1) { + this.state = 1033; + this.createDefinitions(); + + } + this.state = 1046; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 22)) & ~0x1f) == 0 && ((1 << (_la - 22)) & ((1 << (MySQLParser.CHARACTER - 22)) | (1 << (MySQLParser.COLLATE - 22)) | (1 << (MySQLParser.DEFAULT - 22)))) !== 0) || _la===MySQLParser.INDEX || _la===MySQLParser.UNION || ((((_la - 280)) & ~0x1f) == 0 && ((1 << (_la - 280)) & ((1 << (MySQLParser.AUTO_INCREMENT - 280)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 280)) | (1 << (MySQLParser.CHECKSUM - 280)) | (1 << (MySQLParser.PAGE_CHECKSUM - 280)) | (1 << (MySQLParser.COMMENT - 280)) | (1 << (MySQLParser.COMPRESSION - 280)))) !== 0) || ((((_la - 312)) & ~0x1f) == 0 && ((1 << (_la - 312)) & ((1 << (MySQLParser.CONNECTION - 312)) | (1 << (MySQLParser.DATA - 312)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 312)) | (1 << (MySQLParser.ENCRYPTION - 312)) | (1 << (MySQLParser.ENGINE - 312)))) !== 0) || _la===MySQLParser.INSERT_METHOD || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.MAX_ROWS || _la===MySQLParser.MIN_ROWS || _la===MySQLParser.PACK_KEYS || _la===MySQLParser.PASSWORD || ((((_la - 513)) & ~0x1f) == 0 && ((1 << (_la - 513)) & ((1 << (MySQLParser.ROW_FORMAT - 513)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 513)) | (1 << (MySQLParser.STATS_PERSISTENT - 513)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 513)))) !== 0) || _la===MySQLParser.STORAGE || _la===MySQLParser.TABLESPACE || _la===MySQLParser.CHARSET) { + this.state = 1036; + this.tableOption(); + this.state = 1043; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(((((_la - 22)) & ~0x1f) == 0 && ((1 << (_la - 22)) & ((1 << (MySQLParser.CHARACTER - 22)) | (1 << (MySQLParser.COLLATE - 22)) | (1 << (MySQLParser.DEFAULT - 22)))) !== 0) || _la===MySQLParser.INDEX || _la===MySQLParser.UNION || ((((_la - 280)) & ~0x1f) == 0 && ((1 << (_la - 280)) & ((1 << (MySQLParser.AUTO_INCREMENT - 280)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 280)) | (1 << (MySQLParser.CHECKSUM - 280)) | (1 << (MySQLParser.PAGE_CHECKSUM - 280)) | (1 << (MySQLParser.COMMENT - 280)) | (1 << (MySQLParser.COMPRESSION - 280)))) !== 0) || ((((_la - 312)) & ~0x1f) == 0 && ((1 << (_la - 312)) & ((1 << (MySQLParser.CONNECTION - 312)) | (1 << (MySQLParser.DATA - 312)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 312)) | (1 << (MySQLParser.ENCRYPTION - 312)) | (1 << (MySQLParser.ENGINE - 312)))) !== 0) || _la===MySQLParser.INSERT_METHOD || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.MAX_ROWS || _la===MySQLParser.MIN_ROWS || _la===MySQLParser.PACK_KEYS || _la===MySQLParser.PASSWORD || ((((_la - 513)) & ~0x1f) == 0 && ((1 << (_la - 513)) & ((1 << (MySQLParser.ROW_FORMAT - 513)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 513)) | (1 << (MySQLParser.STATS_PERSISTENT - 513)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 513)))) !== 0) || _la===MySQLParser.STORAGE || _la===MySQLParser.TABLESPACE || _la===MySQLParser.CHARSET || _la===MySQLParser.COMMA) { + this.state = 1038; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMA) { + this.state = 1037; + this.match(MySQLParser.COMMA); + } + + this.state = 1040; + this.tableOption(); + this.state = 1045; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 1049; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 1048; + this.partitionDefinitions(); + } + + this.state = 1052; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE || _la===MySQLParser.REPLACE) { + this.state = 1051; + localctx.keyViolate = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.IGNORE || _la===MySQLParser.REPLACE)) { + localctx.keyViolate = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1055; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 1054; + this.match(MySQLParser.AS); + } + + this.state = 1057; + this.selectStatement(); + break; + + case 3: + localctx = new ColumnCreateTableContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1059; + this.match(MySQLParser.CREATE); + this.state = 1061; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.TEMPORARY) { + this.state = 1060; + this.match(MySQLParser.TEMPORARY); + } + + this.state = 1063; + this.match(MySQLParser.TABLE); + this.state = 1065; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 1064; + this.ifNotExists(); + } + + this.state = 1067; + this.tableName(); + this.state = 1068; + this.createDefinitions(); + this.state = 1079; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,72,this._ctx); + if(la_===1) { + this.state = 1069; + this.tableOption(); + this.state = 1076; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,71,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 1071; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMA) { + this.state = 1070; + this.match(MySQLParser.COMMA); + } + + this.state = 1073; + this.tableOption(); + } + this.state = 1078; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,71,this._ctx); + } + + + } + this.state = 1082; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 1081; + this.partitionDefinitions(); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateTablespaceInnodbContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createTablespaceInnodb; + this.datafile = null; // Token + this.fileBlockSize = null; // FileSizeLiteralContext + return this; +} + +CreateTablespaceInnodbContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateTablespaceInnodbContext.prototype.constructor = CreateTablespaceInnodbContext; + +CreateTablespaceInnodbContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateTablespaceInnodbContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +CreateTablespaceInnodbContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateTablespaceInnodbContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +CreateTablespaceInnodbContext.prototype.DATAFILE = function() { + return this.getToken(MySQLParser.DATAFILE, 0); +}; + +CreateTablespaceInnodbContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +CreateTablespaceInnodbContext.prototype.FILE_BLOCK_SIZE = function() { + return this.getToken(MySQLParser.FILE_BLOCK_SIZE, 0); +}; + +CreateTablespaceInnodbContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +CreateTablespaceInnodbContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +CreateTablespaceInnodbContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +CreateTablespaceInnodbContext.prototype.fileSizeLiteral = function() { + return this.getTypedRuleContext(FileSizeLiteralContext,0); +}; + +CreateTablespaceInnodbContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateTablespaceInnodb(this); + } +}; + +CreateTablespaceInnodbContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateTablespaceInnodb(this); + } +}; + +CreateTablespaceInnodbContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateTablespaceInnodb(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateTablespaceInnodbContext = CreateTablespaceInnodbContext; + +MySQLParser.prototype.createTablespaceInnodb = function() { + + var localctx = new CreateTablespaceInnodbContext(this, this._ctx, this.state); + this.enterRule(localctx, 40, MySQLParser.RULE_createTablespaceInnodb); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1086; + this.match(MySQLParser.CREATE); + this.state = 1087; + this.match(MySQLParser.TABLESPACE); + this.state = 1088; + this.uid(); + this.state = 1089; + this.match(MySQLParser.ADD); + this.state = 1090; + this.match(MySQLParser.DATAFILE); + this.state = 1091; + localctx.datafile = this.match(MySQLParser.STRING_LITERAL); + this.state = 1095; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FILE_BLOCK_SIZE) { + this.state = 1092; + this.match(MySQLParser.FILE_BLOCK_SIZE); + this.state = 1093; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 1094; + localctx.fileBlockSize = this.fileSizeLiteral(); + } + + this.state = 1102; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ENGINE) { + this.state = 1097; + this.match(MySQLParser.ENGINE); + this.state = 1099; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1098; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1101; + this.engineName(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateTablespaceNdbContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createTablespaceNdb; + this.datafile = null; // Token + this.extentSize = null; // FileSizeLiteralContext + this.initialSize = null; // FileSizeLiteralContext + this.autoextendSize = null; // FileSizeLiteralContext + this.maxSize = null; // FileSizeLiteralContext + this.comment = null; // Token + return this; +} + +CreateTablespaceNdbContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateTablespaceNdbContext.prototype.constructor = CreateTablespaceNdbContext; + +CreateTablespaceNdbContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateTablespaceNdbContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +CreateTablespaceNdbContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +CreateTablespaceNdbContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +CreateTablespaceNdbContext.prototype.DATAFILE = function() { + return this.getToken(MySQLParser.DATAFILE, 0); +}; + +CreateTablespaceNdbContext.prototype.USE = function() { + return this.getToken(MySQLParser.USE, 0); +}; + +CreateTablespaceNdbContext.prototype.LOGFILE = function() { + return this.getToken(MySQLParser.LOGFILE, 0); +}; + +CreateTablespaceNdbContext.prototype.GROUP = function() { + return this.getToken(MySQLParser.GROUP, 0); +}; + +CreateTablespaceNdbContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +CreateTablespaceNdbContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +CreateTablespaceNdbContext.prototype.STRING_LITERAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.STRING_LITERAL); + } else { + return this.getToken(MySQLParser.STRING_LITERAL, i); + } +}; + + +CreateTablespaceNdbContext.prototype.EXTENT_SIZE = function() { + return this.getToken(MySQLParser.EXTENT_SIZE, 0); +}; + +CreateTablespaceNdbContext.prototype.INITIAL_SIZE = function() { + return this.getToken(MySQLParser.INITIAL_SIZE, 0); +}; + +CreateTablespaceNdbContext.prototype.AUTOEXTEND_SIZE = function() { + return this.getToken(MySQLParser.AUTOEXTEND_SIZE, 0); +}; + +CreateTablespaceNdbContext.prototype.MAX_SIZE = function() { + return this.getToken(MySQLParser.MAX_SIZE, 0); +}; + +CreateTablespaceNdbContext.prototype.NODEGROUP = function() { + return this.getToken(MySQLParser.NODEGROUP, 0); +}; + +CreateTablespaceNdbContext.prototype.WAIT = function() { + return this.getToken(MySQLParser.WAIT, 0); +}; + +CreateTablespaceNdbContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +CreateTablespaceNdbContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +CreateTablespaceNdbContext.prototype.fileSizeLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FileSizeLiteralContext); + } else { + return this.getTypedRuleContext(FileSizeLiteralContext,i); + } +}; + +CreateTablespaceNdbContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateTablespaceNdb(this); + } +}; + +CreateTablespaceNdbContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateTablespaceNdb(this); + } +}; + +CreateTablespaceNdbContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateTablespaceNdb(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateTablespaceNdbContext = CreateTablespaceNdbContext; + +MySQLParser.prototype.createTablespaceNdb = function() { + + var localctx = new CreateTablespaceNdbContext(this, this._ctx, this.state); + this.enterRule(localctx, 42, MySQLParser.RULE_createTablespaceNdb); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1104; + this.match(MySQLParser.CREATE); + this.state = 1105; + this.match(MySQLParser.TABLESPACE); + this.state = 1106; + this.uid(); + this.state = 1107; + this.match(MySQLParser.ADD); + this.state = 1108; + this.match(MySQLParser.DATAFILE); + this.state = 1109; + localctx.datafile = this.match(MySQLParser.STRING_LITERAL); + this.state = 1110; + this.match(MySQLParser.USE); + this.state = 1111; + this.match(MySQLParser.LOGFILE); + this.state = 1112; + this.match(MySQLParser.GROUP); + this.state = 1113; + this.uid(); + this.state = 1119; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EXTENT_SIZE) { + this.state = 1114; + this.match(MySQLParser.EXTENT_SIZE); + this.state = 1116; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1115; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1118; + localctx.extentSize = this.fileSizeLiteral(); + } + + this.state = 1126; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INITIAL_SIZE) { + this.state = 1121; + this.match(MySQLParser.INITIAL_SIZE); + this.state = 1123; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1122; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1125; + localctx.initialSize = this.fileSizeLiteral(); + } + + this.state = 1133; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AUTOEXTEND_SIZE) { + this.state = 1128; + this.match(MySQLParser.AUTOEXTEND_SIZE); + this.state = 1130; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1129; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1132; + localctx.autoextendSize = this.fileSizeLiteral(); + } + + this.state = 1140; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.MAX_SIZE) { + this.state = 1135; + this.match(MySQLParser.MAX_SIZE); + 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.maxSize = this.fileSizeLiteral(); + } + + this.state = 1147; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NODEGROUP) { + this.state = 1142; + this.match(MySQLParser.NODEGROUP); + 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.uid(); + } + + this.state = 1150; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WAIT) { + this.state = 1149; + this.match(MySQLParser.WAIT); + } + + this.state = 1157; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMENT) { + this.state = 1152; + this.match(MySQLParser.COMMENT); + this.state = 1154; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1153; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1156; + localctx.comment = this.match(MySQLParser.STRING_LITERAL); + } + + this.state = 1159; + this.match(MySQLParser.ENGINE); + this.state = 1161; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1160; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1163; + this.engineName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateTriggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createTrigger; + this.thisTrigger = null; // FullIdContext + this.triggerTime = null; // Token + this.triggerEvent = null; // Token + this.triggerPlace = null; // Token + this.otherTrigger = null; // FullIdContext + return this; +} + +CreateTriggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateTriggerContext.prototype.constructor = CreateTriggerContext; + +CreateTriggerContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateTriggerContext.prototype.TRIGGER = function() { + return this.getToken(MySQLParser.TRIGGER, 0); +}; + +CreateTriggerContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +CreateTriggerContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +CreateTriggerContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +CreateTriggerContext.prototype.EACH = function() { + return this.getToken(MySQLParser.EACH, 0); +}; + +CreateTriggerContext.prototype.ROW = function() { + return this.getToken(MySQLParser.ROW, 0); +}; + +CreateTriggerContext.prototype.routineBody = function() { + return this.getTypedRuleContext(RoutineBodyContext,0); +}; + +CreateTriggerContext.prototype.fullId = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FullIdContext); + } else { + return this.getTypedRuleContext(FullIdContext,i); + } +}; + +CreateTriggerContext.prototype.BEFORE = function() { + return this.getToken(MySQLParser.BEFORE, 0); +}; + +CreateTriggerContext.prototype.AFTER = function() { + return this.getToken(MySQLParser.AFTER, 0); +}; + +CreateTriggerContext.prototype.INSERT = function() { + return this.getToken(MySQLParser.INSERT, 0); +}; + +CreateTriggerContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +CreateTriggerContext.prototype.DELETE = function() { + return this.getToken(MySQLParser.DELETE, 0); +}; + +CreateTriggerContext.prototype.ownerStatement = function() { + return this.getTypedRuleContext(OwnerStatementContext,0); +}; + +CreateTriggerContext.prototype.FOLLOWS = function() { + return this.getToken(MySQLParser.FOLLOWS, 0); +}; + +CreateTriggerContext.prototype.PRECEDES = function() { + return this.getToken(MySQLParser.PRECEDES, 0); +}; + +CreateTriggerContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateTrigger(this); + } +}; + +CreateTriggerContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateTrigger(this); + } +}; + +CreateTriggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateTrigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateTriggerContext = CreateTriggerContext; + +MySQLParser.prototype.createTrigger = function() { + + var localctx = new CreateTriggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 44, MySQLParser.RULE_createTrigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1165; + this.match(MySQLParser.CREATE); + this.state = 1167; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFINER) { + this.state = 1166; + this.ownerStatement(); + } + + this.state = 1169; + this.match(MySQLParser.TRIGGER); + this.state = 1170; + localctx.thisTrigger = this.fullId(); + this.state = 1171; + localctx.triggerTime = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.BEFORE || _la===MySQLParser.AFTER)) { + localctx.triggerTime = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1172; + localctx.triggerEvent = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DELETE || _la===MySQLParser.INSERT || _la===MySQLParser.UPDATE)) { + localctx.triggerEvent = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1173; + this.match(MySQLParser.ON); + this.state = 1174; + this.tableName(); + this.state = 1175; + this.match(MySQLParser.FOR); + this.state = 1176; + this.match(MySQLParser.EACH); + this.state = 1177; + this.match(MySQLParser.ROW); + this.state = 1180; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,93,this._ctx); + if(la_===1) { + this.state = 1178; + localctx.triggerPlace = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FOLLOWS || _la===MySQLParser.PRECEDES)) { + localctx.triggerPlace = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1179; + localctx.otherTrigger = this.fullId(); + + } + this.state = 1182; + this.routineBody(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateViewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createView; + this.algType = null; // Token + this.secContext = null; // Token + this.checkOption = null; // Token + return this; +} + +CreateViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateViewContext.prototype.constructor = CreateViewContext; + +CreateViewContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateViewContext.prototype.VIEW = function() { + return this.getToken(MySQLParser.VIEW, 0); +}; + +CreateViewContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +CreateViewContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +CreateViewContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +CreateViewContext.prototype.OR = function() { + return this.getToken(MySQLParser.OR, 0); +}; + +CreateViewContext.prototype.REPLACE = function() { + return this.getToken(MySQLParser.REPLACE, 0); +}; + +CreateViewContext.prototype.ALGORITHM = function() { + return this.getToken(MySQLParser.ALGORITHM, 0); +}; + +CreateViewContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +CreateViewContext.prototype.ownerStatement = function() { + return this.getTypedRuleContext(OwnerStatementContext,0); +}; + +CreateViewContext.prototype.SQL = function() { + return this.getToken(MySQLParser.SQL, 0); +}; + +CreateViewContext.prototype.SECURITY = function() { + return this.getToken(MySQLParser.SECURITY, 0); +}; + +CreateViewContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CreateViewContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +CreateViewContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CreateViewContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +CreateViewContext.prototype.CHECK = function() { + return this.getToken(MySQLParser.CHECK, 0); +}; + +CreateViewContext.prototype.OPTION = function() { + return this.getToken(MySQLParser.OPTION, 0); +}; + +CreateViewContext.prototype.UNDEFINED = function() { + return this.getToken(MySQLParser.UNDEFINED, 0); +}; + +CreateViewContext.prototype.MERGE = function() { + return this.getToken(MySQLParser.MERGE, 0); +}; + +CreateViewContext.prototype.TEMPTABLE = function() { + return this.getToken(MySQLParser.TEMPTABLE, 0); +}; + +CreateViewContext.prototype.DEFINER = function() { + return this.getToken(MySQLParser.DEFINER, 0); +}; + +CreateViewContext.prototype.INVOKER = function() { + return this.getToken(MySQLParser.INVOKER, 0); +}; + +CreateViewContext.prototype.CASCADED = function() { + return this.getToken(MySQLParser.CASCADED, 0); +}; + +CreateViewContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +CreateViewContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateView(this); + } +}; + +CreateViewContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateView(this); + } +}; + +CreateViewContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateView(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateViewContext = CreateViewContext; + +MySQLParser.prototype.createView = function() { + + var localctx = new CreateViewContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, MySQLParser.RULE_createView); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1184; + this.match(MySQLParser.CREATE); + this.state = 1187; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.OR) { + this.state = 1185; + this.match(MySQLParser.OR); + this.state = 1186; + this.match(MySQLParser.REPLACE); + } + + this.state = 1192; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALGORITHM) { + this.state = 1189; + this.match(MySQLParser.ALGORITHM); + this.state = 1190; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 1191; + localctx.algType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.MERGE || _la===MySQLParser.TEMPTABLE || _la===MySQLParser.UNDEFINED)) { + localctx.algType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1195; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFINER) { + this.state = 1194; + this.ownerStatement(); + } + + this.state = 1200; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SQL) { + this.state = 1197; + this.match(MySQLParser.SQL); + this.state = 1198; + this.match(MySQLParser.SECURITY); + this.state = 1199; + localctx.secContext = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFINER || _la===MySQLParser.INVOKER)) { + localctx.secContext = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1202; + this.match(MySQLParser.VIEW); + this.state = 1203; + this.fullId(); + this.state = 1208; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LR_BRACKET) { + this.state = 1204; + this.match(MySQLParser.LR_BRACKET); + this.state = 1205; + this.uidList(); + this.state = 1206; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 1210; + this.match(MySQLParser.AS); + this.state = 1211; + this.selectStatement(); + this.state = 1218; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH) { + this.state = 1212; + this.match(MySQLParser.WITH); + this.state = 1214; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CASCADED || _la===MySQLParser.LOCAL) { + this.state = 1213; + localctx.checkOption = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CASCADED || _la===MySQLParser.LOCAL)) { + localctx.checkOption = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1216; + this.match(MySQLParser.CHECK); + this.state = 1217; + this.match(MySQLParser.OPTION); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateDatabaseOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createDatabaseOption; + return this; +} + +CreateDatabaseOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateDatabaseOptionContext.prototype.constructor = CreateDatabaseOptionContext; + +CreateDatabaseOptionContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +CreateDatabaseOptionContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +CreateDatabaseOptionContext.prototype.CHARSET = function() { + return this.getToken(MySQLParser.CHARSET, 0); +}; + +CreateDatabaseOptionContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +CreateDatabaseOptionContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.DEFAULT); + } else { + return this.getToken(MySQLParser.DEFAULT, i); + } +}; + + +CreateDatabaseOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +CreateDatabaseOptionContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +CreateDatabaseOptionContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; + +CreateDatabaseOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateDatabaseOption(this); + } +}; + +CreateDatabaseOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateDatabaseOption(this); + } +}; + +CreateDatabaseOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateDatabaseOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateDatabaseOptionContext = CreateDatabaseOptionContext; + +MySQLParser.prototype.createDatabaseOption = function() { + + var localctx = new CreateDatabaseOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 48, MySQLParser.RULE_createDatabaseOption); + var _la = 0; // Token type + try { + this.state = 1243; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,107,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1221; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFAULT) { + this.state = 1220; + this.match(MySQLParser.DEFAULT); + } + + this.state = 1226; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CHARACTER: + this.state = 1223; + this.match(MySQLParser.CHARACTER); + this.state = 1224; + this.match(MySQLParser.SET); + break; + case MySQLParser.CHARSET: + this.state = 1225; + this.match(MySQLParser.CHARSET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1229; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1228; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1233; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.BINARY: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + this.state = 1231; + this.charsetName(); + break; + case MySQLParser.DEFAULT: + this.state = 1232; + this.match(MySQLParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1236; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFAULT) { + this.state = 1235; + this.match(MySQLParser.DEFAULT); + } + + this.state = 1238; + this.match(MySQLParser.COLLATE); + this.state = 1240; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1239; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1242; + this.collationName(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OwnerStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_ownerStatement; + return this; +} + +OwnerStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OwnerStatementContext.prototype.constructor = OwnerStatementContext; + +OwnerStatementContext.prototype.DEFINER = function() { + return this.getToken(MySQLParser.DEFINER, 0); +}; + +OwnerStatementContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +OwnerStatementContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; + +OwnerStatementContext.prototype.CURRENT_USER = function() { + return this.getToken(MySQLParser.CURRENT_USER, 0); +}; + +OwnerStatementContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +OwnerStatementContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +OwnerStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterOwnerStatement(this); + } +}; + +OwnerStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitOwnerStatement(this); + } +}; + +OwnerStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitOwnerStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.OwnerStatementContext = OwnerStatementContext; + +MySQLParser.prototype.ownerStatement = function() { + + var localctx = new OwnerStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 50, MySQLParser.RULE_ownerStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1245; + this.match(MySQLParser.DEFINER); + this.state = 1246; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 1253; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.STRING_USER_NAME: + this.state = 1247; + this.userName(); + break; + case MySQLParser.CURRENT_USER: + this.state = 1248; + this.match(MySQLParser.CURRENT_USER); + this.state = 1251; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LR_BRACKET) { + this.state = 1249; + this.match(MySQLParser.LR_BRACKET); + this.state = 1250; + this.match(MySQLParser.RR_BRACKET); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ScheduleExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_scheduleExpression; + return this; +} + +ScheduleExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ScheduleExpressionContext.prototype.constructor = ScheduleExpressionContext; + + + +ScheduleExpressionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function PreciseScheduleContext(parser, ctx) { + ScheduleExpressionContext.call(this, parser); + ScheduleExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PreciseScheduleContext.prototype = Object.create(ScheduleExpressionContext.prototype); +PreciseScheduleContext.prototype.constructor = PreciseScheduleContext; + +MySQLParser.PreciseScheduleContext = PreciseScheduleContext; + +PreciseScheduleContext.prototype.AT = function() { + return this.getToken(MySQLParser.AT, 0); +}; + +PreciseScheduleContext.prototype.timestampValue = function() { + return this.getTypedRuleContext(TimestampValueContext,0); +}; + +PreciseScheduleContext.prototype.intervalExpr = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IntervalExprContext); + } else { + return this.getTypedRuleContext(IntervalExprContext,i); + } +}; +PreciseScheduleContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPreciseSchedule(this); + } +}; + +PreciseScheduleContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPreciseSchedule(this); + } +}; + +PreciseScheduleContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPreciseSchedule(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IntervalScheduleContext(parser, ctx) { + ScheduleExpressionContext.call(this, parser); + this.startTimestamp = null; // TimestampValueContext; + this._intervalExpr = null; // IntervalExprContext; + this.startIntervals = []; // of IntervalExprContexts; + this.endTimestamp = null; // TimestampValueContext; + this.endIntervals = []; // of IntervalExprContexts; + ScheduleExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IntervalScheduleContext.prototype = Object.create(ScheduleExpressionContext.prototype); +IntervalScheduleContext.prototype.constructor = IntervalScheduleContext; + +MySQLParser.IntervalScheduleContext = IntervalScheduleContext; + +IntervalScheduleContext.prototype.EVERY = function() { + return this.getToken(MySQLParser.EVERY, 0); +}; + +IntervalScheduleContext.prototype.intervalType = function() { + return this.getTypedRuleContext(IntervalTypeContext,0); +}; + +IntervalScheduleContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +IntervalScheduleContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +IntervalScheduleContext.prototype.STARTS = function() { + return this.getToken(MySQLParser.STARTS, 0); +}; + +IntervalScheduleContext.prototype.ENDS = function() { + return this.getToken(MySQLParser.ENDS, 0); +}; + +IntervalScheduleContext.prototype.timestampValue = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TimestampValueContext); + } else { + return this.getTypedRuleContext(TimestampValueContext,i); + } +}; + +IntervalScheduleContext.prototype.intervalExpr = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IntervalExprContext); + } else { + return this.getTypedRuleContext(IntervalExprContext,i); + } +}; +IntervalScheduleContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIntervalSchedule(this); + } +}; + +IntervalScheduleContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIntervalSchedule(this); + } +}; + +IntervalScheduleContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIntervalSchedule(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.ScheduleExpressionContext = ScheduleExpressionContext; + +MySQLParser.prototype.scheduleExpression = function() { + + var localctx = new ScheduleExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 52, MySQLParser.RULE_scheduleExpression); + var _la = 0; // Token type + try { + this.state = 1289; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.AT: + localctx = new PreciseScheduleContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1255; + this.match(MySQLParser.AT); + this.state = 1256; + this.timestampValue(); + this.state = 1260; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.PLUS) { + this.state = 1257; + this.intervalExpr(); + this.state = 1262; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case MySQLParser.EVERY: + localctx = new IntervalScheduleContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1263; + this.match(MySQLParser.EVERY); + this.state = 1266; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,111,this._ctx); + switch(la_) { + case 1: + this.state = 1264; + this.decimalLiteral(); + break; + + case 2: + this.state = 1265; + this.expression(0); + break; + + } + this.state = 1268; + this.intervalType(); + this.state = 1277; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.STARTS) { + this.state = 1269; + this.match(MySQLParser.STARTS); + this.state = 1270; + localctx.startTimestamp = this.timestampValue(); + this.state = 1274; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.PLUS) { + this.state = 1271; + localctx._intervalExpr = this.intervalExpr(); + localctx.startIntervals.push(localctx._intervalExpr); + this.state = 1276; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 1287; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ENDS) { + this.state = 1279; + this.match(MySQLParser.ENDS); + this.state = 1280; + localctx.endTimestamp = this.timestampValue(); + this.state = 1284; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.PLUS) { + this.state = 1281; + localctx._intervalExpr = this.intervalExpr(); + localctx.endIntervals.push(localctx._intervalExpr); + this.state = 1286; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TimestampValueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_timestampValue; + return this; +} + +TimestampValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TimestampValueContext.prototype.constructor = TimestampValueContext; + +TimestampValueContext.prototype.CURRENT_TIMESTAMP = function() { + return this.getToken(MySQLParser.CURRENT_TIMESTAMP, 0); +}; + +TimestampValueContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +TimestampValueContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +TimestampValueContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +TimestampValueContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTimestampValue(this); + } +}; + +TimestampValueContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTimestampValue(this); + } +}; + +TimestampValueContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTimestampValue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TimestampValueContext = TimestampValueContext; + +MySQLParser.prototype.timestampValue = function() { + + var localctx = new TimestampValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 54, MySQLParser.RULE_timestampValue); + try { + this.state = 1295; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,117,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1291; + this.match(MySQLParser.CURRENT_TIMESTAMP); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1292; + this.stringLiteral(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1293; + this.decimalLiteral(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1294; + this.expression(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IntervalExprContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_intervalExpr; + return this; +} + +IntervalExprContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IntervalExprContext.prototype.constructor = IntervalExprContext; + +IntervalExprContext.prototype.PLUS = function() { + return this.getToken(MySQLParser.PLUS, 0); +}; + +IntervalExprContext.prototype.INTERVAL = function() { + return this.getToken(MySQLParser.INTERVAL, 0); +}; + +IntervalExprContext.prototype.intervalType = function() { + return this.getTypedRuleContext(IntervalTypeContext,0); +}; + +IntervalExprContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +IntervalExprContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +IntervalExprContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIntervalExpr(this); + } +}; + +IntervalExprContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIntervalExpr(this); + } +}; + +IntervalExprContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIntervalExpr(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IntervalExprContext = IntervalExprContext; + +MySQLParser.prototype.intervalExpr = function() { + + var localctx = new IntervalExprContext(this, this._ctx, this.state); + this.enterRule(localctx, 56, MySQLParser.RULE_intervalExpr); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1297; + this.match(MySQLParser.PLUS); + this.state = 1298; + this.match(MySQLParser.INTERVAL); + this.state = 1301; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,118,this._ctx); + switch(la_) { + case 1: + this.state = 1299; + this.decimalLiteral(); + break; + + case 2: + this.state = 1300; + this.expression(0); + break; + + } + this.state = 1303; + this.intervalType(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IntervalTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_intervalType; + return this; +} + +IntervalTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IntervalTypeContext.prototype.constructor = IntervalTypeContext; + +IntervalTypeContext.prototype.intervalTypeBase = function() { + return this.getTypedRuleContext(IntervalTypeBaseContext,0); +}; + +IntervalTypeContext.prototype.YEAR = function() { + return this.getToken(MySQLParser.YEAR, 0); +}; + +IntervalTypeContext.prototype.YEAR_MONTH = function() { + return this.getToken(MySQLParser.YEAR_MONTH, 0); +}; + +IntervalTypeContext.prototype.DAY_HOUR = function() { + return this.getToken(MySQLParser.DAY_HOUR, 0); +}; + +IntervalTypeContext.prototype.DAY_MINUTE = function() { + return this.getToken(MySQLParser.DAY_MINUTE, 0); +}; + +IntervalTypeContext.prototype.DAY_SECOND = function() { + return this.getToken(MySQLParser.DAY_SECOND, 0); +}; + +IntervalTypeContext.prototype.HOUR_MINUTE = function() { + return this.getToken(MySQLParser.HOUR_MINUTE, 0); +}; + +IntervalTypeContext.prototype.HOUR_SECOND = function() { + return this.getToken(MySQLParser.HOUR_SECOND, 0); +}; + +IntervalTypeContext.prototype.MINUTE_SECOND = function() { + return this.getToken(MySQLParser.MINUTE_SECOND, 0); +}; + +IntervalTypeContext.prototype.SECOND_MICROSECOND = function() { + return this.getToken(MySQLParser.SECOND_MICROSECOND, 0); +}; + +IntervalTypeContext.prototype.MINUTE_MICROSECOND = function() { + return this.getToken(MySQLParser.MINUTE_MICROSECOND, 0); +}; + +IntervalTypeContext.prototype.HOUR_MICROSECOND = function() { + return this.getToken(MySQLParser.HOUR_MICROSECOND, 0); +}; + +IntervalTypeContext.prototype.DAY_MICROSECOND = function() { + return this.getToken(MySQLParser.DAY_MICROSECOND, 0); +}; + +IntervalTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIntervalType(this); + } +}; + +IntervalTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIntervalType(this); + } +}; + +IntervalTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIntervalType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IntervalTypeContext = IntervalTypeContext; + +MySQLParser.prototype.intervalType = function() { + + var localctx = new IntervalTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 58, MySQLParser.RULE_intervalType); + try { + this.state = 1318; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + this.enterOuterAlt(localctx, 1); + this.state = 1305; + this.intervalTypeBase(); + break; + case MySQLParser.YEAR: + this.enterOuterAlt(localctx, 2); + this.state = 1306; + this.match(MySQLParser.YEAR); + break; + case MySQLParser.YEAR_MONTH: + this.enterOuterAlt(localctx, 3); + this.state = 1307; + this.match(MySQLParser.YEAR_MONTH); + break; + case MySQLParser.DAY_HOUR: + this.enterOuterAlt(localctx, 4); + this.state = 1308; + this.match(MySQLParser.DAY_HOUR); + break; + case MySQLParser.DAY_MINUTE: + this.enterOuterAlt(localctx, 5); + this.state = 1309; + this.match(MySQLParser.DAY_MINUTE); + break; + case MySQLParser.DAY_SECOND: + this.enterOuterAlt(localctx, 6); + this.state = 1310; + this.match(MySQLParser.DAY_SECOND); + break; + case MySQLParser.HOUR_MINUTE: + this.enterOuterAlt(localctx, 7); + this.state = 1311; + this.match(MySQLParser.HOUR_MINUTE); + break; + case MySQLParser.HOUR_SECOND: + this.enterOuterAlt(localctx, 8); + this.state = 1312; + this.match(MySQLParser.HOUR_SECOND); + break; + case MySQLParser.MINUTE_SECOND: + this.enterOuterAlt(localctx, 9); + this.state = 1313; + this.match(MySQLParser.MINUTE_SECOND); + break; + case MySQLParser.SECOND_MICROSECOND: + this.enterOuterAlt(localctx, 10); + this.state = 1314; + this.match(MySQLParser.SECOND_MICROSECOND); + break; + case MySQLParser.MINUTE_MICROSECOND: + this.enterOuterAlt(localctx, 11); + this.state = 1315; + this.match(MySQLParser.MINUTE_MICROSECOND); + break; + case MySQLParser.HOUR_MICROSECOND: + this.enterOuterAlt(localctx, 12); + this.state = 1316; + this.match(MySQLParser.HOUR_MICROSECOND); + break; + case MySQLParser.DAY_MICROSECOND: + this.enterOuterAlt(localctx, 13); + this.state = 1317; + this.match(MySQLParser.DAY_MICROSECOND); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function EnableTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_enableType; + return this; +} + +EnableTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +EnableTypeContext.prototype.constructor = EnableTypeContext; + +EnableTypeContext.prototype.ENABLE = function() { + return this.getToken(MySQLParser.ENABLE, 0); +}; + +EnableTypeContext.prototype.DISABLE = function() { + return this.getToken(MySQLParser.DISABLE, 0); +}; + +EnableTypeContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +EnableTypeContext.prototype.SLAVE = function() { + return this.getToken(MySQLParser.SLAVE, 0); +}; + +EnableTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterEnableType(this); + } +}; + +EnableTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitEnableType(this); + } +}; + +EnableTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitEnableType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.EnableTypeContext = EnableTypeContext; + +MySQLParser.prototype.enableType = function() { + + var localctx = new EnableTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 60, MySQLParser.RULE_enableType); + try { + this.state = 1325; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,120,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1320; + this.match(MySQLParser.ENABLE); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1321; + this.match(MySQLParser.DISABLE); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1322; + this.match(MySQLParser.DISABLE); + this.state = 1323; + this.match(MySQLParser.ON); + this.state = 1324; + this.match(MySQLParser.SLAVE); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IndexTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_indexType; + return this; +} + +IndexTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IndexTypeContext.prototype.constructor = IndexTypeContext; + +IndexTypeContext.prototype.USING = function() { + return this.getToken(MySQLParser.USING, 0); +}; + +IndexTypeContext.prototype.BTREE = function() { + return this.getToken(MySQLParser.BTREE, 0); +}; + +IndexTypeContext.prototype.HASH = function() { + return this.getToken(MySQLParser.HASH, 0); +}; + +IndexTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIndexType(this); + } +}; + +IndexTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIndexType(this); + } +}; + +IndexTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIndexType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IndexTypeContext = IndexTypeContext; + +MySQLParser.prototype.indexType = function() { + + var localctx = new IndexTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 62, MySQLParser.RULE_indexType); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1327; + this.match(MySQLParser.USING); + this.state = 1328; + _la = this._input.LA(1); + if(!(_la===MySQLParser.BTREE || _la===MySQLParser.HASH)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IndexOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_indexOption; + return this; +} + +IndexOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IndexOptionContext.prototype.constructor = IndexOptionContext; + +IndexOptionContext.prototype.KEY_BLOCK_SIZE = function() { + return this.getToken(MySQLParser.KEY_BLOCK_SIZE, 0); +}; + +IndexOptionContext.prototype.fileSizeLiteral = function() { + return this.getTypedRuleContext(FileSizeLiteralContext,0); +}; + +IndexOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +IndexOptionContext.prototype.indexType = function() { + return this.getTypedRuleContext(IndexTypeContext,0); +}; + +IndexOptionContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +IndexOptionContext.prototype.PARSER = function() { + return this.getToken(MySQLParser.PARSER, 0); +}; + +IndexOptionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +IndexOptionContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +IndexOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +IndexOptionContext.prototype.INVISIBLE = function() { + return this.getToken(MySQLParser.INVISIBLE, 0); +}; + +IndexOptionContext.prototype.VISIBLE = function() { + return this.getToken(MySQLParser.VISIBLE, 0); +}; + +IndexOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIndexOption(this); + } +}; + +IndexOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIndexOption(this); + } +}; + +IndexOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIndexOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IndexOptionContext = IndexOptionContext; + +MySQLParser.prototype.indexOption = function() { + + var localctx = new IndexOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 64, MySQLParser.RULE_indexOption); + var _la = 0; // Token type + try { + this.state = 1343; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.KEY_BLOCK_SIZE: + this.enterOuterAlt(localctx, 1); + this.state = 1330; + this.match(MySQLParser.KEY_BLOCK_SIZE); + this.state = 1332; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1331; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1334; + this.fileSizeLiteral(); + break; + case MySQLParser.USING: + this.enterOuterAlt(localctx, 2); + this.state = 1335; + this.indexType(); + break; + case MySQLParser.WITH: + this.enterOuterAlt(localctx, 3); + this.state = 1336; + this.match(MySQLParser.WITH); + this.state = 1337; + this.match(MySQLParser.PARSER); + this.state = 1338; + this.uid(); + break; + case MySQLParser.COMMENT: + this.enterOuterAlt(localctx, 4); + this.state = 1339; + this.match(MySQLParser.COMMENT); + this.state = 1340; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.INVISIBLE: + this.enterOuterAlt(localctx, 5); + this.state = 1341; + this.match(MySQLParser.INVISIBLE); + break; + case MySQLParser.VISIBLE: + this.enterOuterAlt(localctx, 6); + this.state = 1342; + this.match(MySQLParser.VISIBLE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ProcedureParameterContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_procedureParameter; + this.direction = null; // Token + return this; +} + +ProcedureParameterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ProcedureParameterContext.prototype.constructor = ProcedureParameterContext; + +ProcedureParameterContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ProcedureParameterContext.prototype.dataType = function() { + return this.getTypedRuleContext(DataTypeContext,0); +}; + +ProcedureParameterContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; + +ProcedureParameterContext.prototype.OUT = function() { + return this.getToken(MySQLParser.OUT, 0); +}; + +ProcedureParameterContext.prototype.INOUT = function() { + return this.getToken(MySQLParser.INOUT, 0); +}; + +ProcedureParameterContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterProcedureParameter(this); + } +}; + +ProcedureParameterContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitProcedureParameter(this); + } +}; + +ProcedureParameterContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitProcedureParameter(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ProcedureParameterContext = ProcedureParameterContext; + +MySQLParser.prototype.procedureParameter = function() { + + var localctx = new ProcedureParameterContext(this, this._ctx, this.state); + this.enterRule(localctx, 66, MySQLParser.RULE_procedureParameter); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1346; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IN || _la===MySQLParser.INOUT || _la===MySQLParser.OUT) { + this.state = 1345; + localctx.direction = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.IN || _la===MySQLParser.INOUT || _la===MySQLParser.OUT)) { + localctx.direction = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1348; + this.uid(); + this.state = 1349; + this.dataType(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FunctionParameterContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_functionParameter; + return this; +} + +FunctionParameterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FunctionParameterContext.prototype.constructor = FunctionParameterContext; + +FunctionParameterContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +FunctionParameterContext.prototype.dataType = function() { + return this.getTypedRuleContext(DataTypeContext,0); +}; + +FunctionParameterContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFunctionParameter(this); + } +}; + +FunctionParameterContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFunctionParameter(this); + } +}; + +FunctionParameterContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFunctionParameter(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FunctionParameterContext = FunctionParameterContext; + +MySQLParser.prototype.functionParameter = function() { + + var localctx = new FunctionParameterContext(this, this._ctx, this.state); + this.enterRule(localctx, 68, MySQLParser.RULE_functionParameter); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1351; + this.uid(); + this.state = 1352; + this.dataType(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RoutineOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_routineOption; + return this; +} + +RoutineOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RoutineOptionContext.prototype.constructor = RoutineOptionContext; + + + +RoutineOptionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function RoutineBehaviorContext(parser, ctx) { + RoutineOptionContext.call(this, parser); + RoutineOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RoutineBehaviorContext.prototype = Object.create(RoutineOptionContext.prototype); +RoutineBehaviorContext.prototype.constructor = RoutineBehaviorContext; + +MySQLParser.RoutineBehaviorContext = RoutineBehaviorContext; + +RoutineBehaviorContext.prototype.DETERMINISTIC = function() { + return this.getToken(MySQLParser.DETERMINISTIC, 0); +}; + +RoutineBehaviorContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; +RoutineBehaviorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRoutineBehavior(this); + } +}; + +RoutineBehaviorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRoutineBehavior(this); + } +}; + +RoutineBehaviorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRoutineBehavior(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RoutineLanguageContext(parser, ctx) { + RoutineOptionContext.call(this, parser); + RoutineOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RoutineLanguageContext.prototype = Object.create(RoutineOptionContext.prototype); +RoutineLanguageContext.prototype.constructor = RoutineLanguageContext; + +MySQLParser.RoutineLanguageContext = RoutineLanguageContext; + +RoutineLanguageContext.prototype.LANGUAGE = function() { + return this.getToken(MySQLParser.LANGUAGE, 0); +}; + +RoutineLanguageContext.prototype.SQL = function() { + return this.getToken(MySQLParser.SQL, 0); +}; +RoutineLanguageContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRoutineLanguage(this); + } +}; + +RoutineLanguageContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRoutineLanguage(this); + } +}; + +RoutineLanguageContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRoutineLanguage(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RoutineCommentContext(parser, ctx) { + RoutineOptionContext.call(this, parser); + RoutineOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RoutineCommentContext.prototype = Object.create(RoutineOptionContext.prototype); +RoutineCommentContext.prototype.constructor = RoutineCommentContext; + +MySQLParser.RoutineCommentContext = RoutineCommentContext; + +RoutineCommentContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +RoutineCommentContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +RoutineCommentContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRoutineComment(this); + } +}; + +RoutineCommentContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRoutineComment(this); + } +}; + +RoutineCommentContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRoutineComment(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RoutineSecurityContext(parser, ctx) { + RoutineOptionContext.call(this, parser); + this.context = null; // Token; + RoutineOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RoutineSecurityContext.prototype = Object.create(RoutineOptionContext.prototype); +RoutineSecurityContext.prototype.constructor = RoutineSecurityContext; + +MySQLParser.RoutineSecurityContext = RoutineSecurityContext; + +RoutineSecurityContext.prototype.SQL = function() { + return this.getToken(MySQLParser.SQL, 0); +}; + +RoutineSecurityContext.prototype.SECURITY = function() { + return this.getToken(MySQLParser.SECURITY, 0); +}; + +RoutineSecurityContext.prototype.DEFINER = function() { + return this.getToken(MySQLParser.DEFINER, 0); +}; + +RoutineSecurityContext.prototype.INVOKER = function() { + return this.getToken(MySQLParser.INVOKER, 0); +}; +RoutineSecurityContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRoutineSecurity(this); + } +}; + +RoutineSecurityContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRoutineSecurity(this); + } +}; + +RoutineSecurityContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRoutineSecurity(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RoutineDataContext(parser, ctx) { + RoutineOptionContext.call(this, parser); + RoutineOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RoutineDataContext.prototype = Object.create(RoutineOptionContext.prototype); +RoutineDataContext.prototype.constructor = RoutineDataContext; + +MySQLParser.RoutineDataContext = RoutineDataContext; + +RoutineDataContext.prototype.CONTAINS = function() { + return this.getToken(MySQLParser.CONTAINS, 0); +}; + +RoutineDataContext.prototype.SQL = function() { + return this.getToken(MySQLParser.SQL, 0); +}; + +RoutineDataContext.prototype.NO = function() { + return this.getToken(MySQLParser.NO, 0); +}; + +RoutineDataContext.prototype.READS = function() { + return this.getToken(MySQLParser.READS, 0); +}; + +RoutineDataContext.prototype.DATA = function() { + return this.getToken(MySQLParser.DATA, 0); +}; + +RoutineDataContext.prototype.MODIFIES = function() { + return this.getToken(MySQLParser.MODIFIES, 0); +}; +RoutineDataContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRoutineData(this); + } +}; + +RoutineDataContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRoutineData(this); + } +}; + +RoutineDataContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRoutineData(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.RoutineOptionContext = RoutineOptionContext; + +MySQLParser.prototype.routineOption = function() { + + var localctx = new RoutineOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 70, MySQLParser.RULE_routineOption); + var _la = 0; // Token type + try { + this.state = 1377; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.COMMENT: + localctx = new RoutineCommentContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1354; + this.match(MySQLParser.COMMENT); + this.state = 1355; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.LANGUAGE: + localctx = new RoutineLanguageContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1356; + this.match(MySQLParser.LANGUAGE); + this.state = 1357; + this.match(MySQLParser.SQL); + break; + case MySQLParser.DETERMINISTIC: + case MySQLParser.NOT: + localctx = new RoutineBehaviorContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 1358; + this.match(MySQLParser.NOT); + } + + this.state = 1361; + this.match(MySQLParser.DETERMINISTIC); + break; + case MySQLParser.MODIFIES: + case MySQLParser.READS: + case MySQLParser.CONTAINS: + case MySQLParser.NO: + localctx = new RoutineDataContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 1372; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CONTAINS: + this.state = 1362; + this.match(MySQLParser.CONTAINS); + this.state = 1363; + this.match(MySQLParser.SQL); + break; + case MySQLParser.NO: + this.state = 1364; + this.match(MySQLParser.NO); + this.state = 1365; + this.match(MySQLParser.SQL); + break; + case MySQLParser.READS: + this.state = 1366; + this.match(MySQLParser.READS); + this.state = 1367; + this.match(MySQLParser.SQL); + this.state = 1368; + this.match(MySQLParser.DATA); + break; + case MySQLParser.MODIFIES: + this.state = 1369; + this.match(MySQLParser.MODIFIES); + this.state = 1370; + this.match(MySQLParser.SQL); + this.state = 1371; + this.match(MySQLParser.DATA); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case MySQLParser.SQL: + localctx = new RoutineSecurityContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 1374; + this.match(MySQLParser.SQL); + this.state = 1375; + this.match(MySQLParser.SECURITY); + this.state = 1376; + localctx.context = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFINER || _la===MySQLParser.INVOKER)) { + localctx.context = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ServerOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_serverOption; + return this; +} + +ServerOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ServerOptionContext.prototype.constructor = ServerOptionContext; + +ServerOptionContext.prototype.HOST = function() { + return this.getToken(MySQLParser.HOST, 0); +}; + +ServerOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +ServerOptionContext.prototype.DATABASE = function() { + return this.getToken(MySQLParser.DATABASE, 0); +}; + +ServerOptionContext.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +ServerOptionContext.prototype.PASSWORD = function() { + return this.getToken(MySQLParser.PASSWORD, 0); +}; + +ServerOptionContext.prototype.SOCKET = function() { + return this.getToken(MySQLParser.SOCKET, 0); +}; + +ServerOptionContext.prototype.OWNER = function() { + return this.getToken(MySQLParser.OWNER, 0); +}; + +ServerOptionContext.prototype.PORT = function() { + return this.getToken(MySQLParser.PORT, 0); +}; + +ServerOptionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +ServerOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterServerOption(this); + } +}; + +ServerOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitServerOption(this); + } +}; + +ServerOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitServerOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ServerOptionContext = ServerOptionContext; + +MySQLParser.prototype.serverOption = function() { + + var localctx = new ServerOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 72, MySQLParser.RULE_serverOption); + try { + this.state = 1393; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.HOST: + this.enterOuterAlt(localctx, 1); + this.state = 1379; + this.match(MySQLParser.HOST); + this.state = 1380; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.DATABASE: + this.enterOuterAlt(localctx, 2); + this.state = 1381; + this.match(MySQLParser.DATABASE); + this.state = 1382; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.USER: + this.enterOuterAlt(localctx, 3); + this.state = 1383; + this.match(MySQLParser.USER); + this.state = 1384; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.PASSWORD: + this.enterOuterAlt(localctx, 4); + this.state = 1385; + this.match(MySQLParser.PASSWORD); + this.state = 1386; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.SOCKET: + this.enterOuterAlt(localctx, 5); + this.state = 1387; + this.match(MySQLParser.SOCKET); + this.state = 1388; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.OWNER: + this.enterOuterAlt(localctx, 6); + this.state = 1389; + this.match(MySQLParser.OWNER); + this.state = 1390; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.PORT: + this.enterOuterAlt(localctx, 7); + this.state = 1391; + this.match(MySQLParser.PORT); + this.state = 1392; + this.decimalLiteral(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateDefinitionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createDefinitions; + return this; +} + +CreateDefinitionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateDefinitionsContext.prototype.constructor = CreateDefinitionsContext; + +CreateDefinitionsContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CreateDefinitionsContext.prototype.createDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(CreateDefinitionContext); + } else { + return this.getTypedRuleContext(CreateDefinitionContext,i); + } +}; + +CreateDefinitionsContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CreateDefinitionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +CreateDefinitionsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateDefinitions(this); + } +}; + +CreateDefinitionsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateDefinitions(this); + } +}; + +CreateDefinitionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateDefinitions(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateDefinitionsContext = CreateDefinitionsContext; + +MySQLParser.prototype.createDefinitions = function() { + + var localctx = new CreateDefinitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 74, MySQLParser.RULE_createDefinitions); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1395; + this.match(MySQLParser.LR_BRACKET); + this.state = 1396; + this.createDefinition(); + this.state = 1401; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 1397; + this.match(MySQLParser.COMMA); + this.state = 1398; + this.createDefinition(); + this.state = 1403; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1404; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createDefinition; + return this; +} + +CreateDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateDefinitionContext.prototype.constructor = CreateDefinitionContext; + + + +CreateDefinitionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function ColumnDeclarationContext(parser, ctx) { + CreateDefinitionContext.call(this, parser); + CreateDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ColumnDeclarationContext.prototype = Object.create(CreateDefinitionContext.prototype); +ColumnDeclarationContext.prototype.constructor = ColumnDeclarationContext; + +MySQLParser.ColumnDeclarationContext = ColumnDeclarationContext; + +ColumnDeclarationContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ColumnDeclarationContext.prototype.columnDefinition = function() { + return this.getTypedRuleContext(ColumnDefinitionContext,0); +}; +ColumnDeclarationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterColumnDeclaration(this); + } +}; + +ColumnDeclarationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitColumnDeclaration(this); + } +}; + +ColumnDeclarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitColumnDeclaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ConstraintDeclarationContext(parser, ctx) { + CreateDefinitionContext.call(this, parser); + CreateDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ConstraintDeclarationContext.prototype = Object.create(CreateDefinitionContext.prototype); +ConstraintDeclarationContext.prototype.constructor = ConstraintDeclarationContext; + +MySQLParser.ConstraintDeclarationContext = ConstraintDeclarationContext; + +ConstraintDeclarationContext.prototype.tableConstraint = function() { + return this.getTypedRuleContext(TableConstraintContext,0); +}; +ConstraintDeclarationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterConstraintDeclaration(this); + } +}; + +ConstraintDeclarationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitConstraintDeclaration(this); + } +}; + +ConstraintDeclarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitConstraintDeclaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IndexDeclarationContext(parser, ctx) { + CreateDefinitionContext.call(this, parser); + CreateDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IndexDeclarationContext.prototype = Object.create(CreateDefinitionContext.prototype); +IndexDeclarationContext.prototype.constructor = IndexDeclarationContext; + +MySQLParser.IndexDeclarationContext = IndexDeclarationContext; + +IndexDeclarationContext.prototype.indexColumnDefinition = function() { + return this.getTypedRuleContext(IndexColumnDefinitionContext,0); +}; +IndexDeclarationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIndexDeclaration(this); + } +}; + +IndexDeclarationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIndexDeclaration(this); + } +}; + +IndexDeclarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIndexDeclaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.CreateDefinitionContext = CreateDefinitionContext; + +MySQLParser.prototype.createDefinition = function() { + + var localctx = new CreateDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 76, MySQLParser.RULE_createDefinition); + try { + this.state = 1411; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + localctx = new ColumnDeclarationContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1406; + this.uid(); + this.state = 1407; + this.columnDefinition(); + break; + case MySQLParser.CHECK: + case MySQLParser.CONSTRAINT: + case MySQLParser.FOREIGN: + case MySQLParser.PRIMARY: + case MySQLParser.UNIQUE: + localctx = new ConstraintDeclarationContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1409; + this.tableConstraint(); + break; + case MySQLParser.FULLTEXT: + case MySQLParser.INDEX: + case MySQLParser.KEY: + case MySQLParser.SPATIAL: + localctx = new IndexDeclarationContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1410; + this.indexColumnDefinition(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ColumnDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_columnDefinition; + return this; +} + +ColumnDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ColumnDefinitionContext.prototype.constructor = ColumnDefinitionContext; + +ColumnDefinitionContext.prototype.dataType = function() { + return this.getTypedRuleContext(DataTypeContext,0); +}; + +ColumnDefinitionContext.prototype.columnConstraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ColumnConstraintContext); + } else { + return this.getTypedRuleContext(ColumnConstraintContext,i); + } +}; + +ColumnDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterColumnDefinition(this); + } +}; + +ColumnDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitColumnDefinition(this); + } +}; + +ColumnDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitColumnDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ColumnDefinitionContext = ColumnDefinitionContext; + +MySQLParser.prototype.columnDefinition = function() { + + var localctx = new ColumnDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 78, MySQLParser.RULE_columnDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1413; + this.dataType(); + this.state = 1417; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,130,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 1414; + this.columnConstraint(); + } + this.state = 1419; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,130,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ColumnConstraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_columnConstraint; + return this; +} + +ColumnConstraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ColumnConstraintContext.prototype.constructor = ColumnConstraintContext; + + + +ColumnConstraintContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function StorageColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + this.storageval = null; // Token; + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +StorageColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +StorageColumnConstraintContext.prototype.constructor = StorageColumnConstraintContext; + +MySQLParser.StorageColumnConstraintContext = StorageColumnConstraintContext; + +StorageColumnConstraintContext.prototype.STORAGE = function() { + return this.getToken(MySQLParser.STORAGE, 0); +}; + +StorageColumnConstraintContext.prototype.DISK = function() { + return this.getToken(MySQLParser.DISK, 0); +}; + +StorageColumnConstraintContext.prototype.MEMORY = function() { + return this.getToken(MySQLParser.MEMORY, 0); +}; + +StorageColumnConstraintContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; +StorageColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStorageColumnConstraint(this); + } +}; + +StorageColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStorageColumnConstraint(this); + } +}; + +StorageColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStorageColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AutoIncrementColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AutoIncrementColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +AutoIncrementColumnConstraintContext.prototype.constructor = AutoIncrementColumnConstraintContext; + +MySQLParser.AutoIncrementColumnConstraintContext = AutoIncrementColumnConstraintContext; + +AutoIncrementColumnConstraintContext.prototype.AUTO_INCREMENT = function() { + return this.getToken(MySQLParser.AUTO_INCREMENT, 0); +}; + +AutoIncrementColumnConstraintContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +AutoIncrementColumnConstraintContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +AutoIncrementColumnConstraintContext.prototype.currentTimestamp = function() { + return this.getTypedRuleContext(CurrentTimestampContext,0); +}; +AutoIncrementColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAutoIncrementColumnConstraint(this); + } +}; + +AutoIncrementColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAutoIncrementColumnConstraint(this); + } +}; + +AutoIncrementColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAutoIncrementColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CommentColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CommentColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +CommentColumnConstraintContext.prototype.constructor = CommentColumnConstraintContext; + +MySQLParser.CommentColumnConstraintContext = CommentColumnConstraintContext; + +CommentColumnConstraintContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +CommentColumnConstraintContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +CommentColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCommentColumnConstraint(this); + } +}; + +CommentColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCommentColumnConstraint(this); + } +}; + +CommentColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCommentColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function UniqueKeyColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +UniqueKeyColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +UniqueKeyColumnConstraintContext.prototype.constructor = UniqueKeyColumnConstraintContext; + +MySQLParser.UniqueKeyColumnConstraintContext = UniqueKeyColumnConstraintContext; + +UniqueKeyColumnConstraintContext.prototype.UNIQUE = function() { + return this.getToken(MySQLParser.UNIQUE, 0); +}; + +UniqueKeyColumnConstraintContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; +UniqueKeyColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUniqueKeyColumnConstraint(this); + } +}; + +UniqueKeyColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUniqueKeyColumnConstraint(this); + } +}; + +UniqueKeyColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUniqueKeyColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SerialDefaultColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SerialDefaultColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +SerialDefaultColumnConstraintContext.prototype.constructor = SerialDefaultColumnConstraintContext; + +MySQLParser.SerialDefaultColumnConstraintContext = SerialDefaultColumnConstraintContext; + +SerialDefaultColumnConstraintContext.prototype.SERIAL = function() { + return this.getToken(MySQLParser.SERIAL, 0); +}; + +SerialDefaultColumnConstraintContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +SerialDefaultColumnConstraintContext.prototype.VALUE = function() { + return this.getToken(MySQLParser.VALUE, 0); +}; +SerialDefaultColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSerialDefaultColumnConstraint(this); + } +}; + +SerialDefaultColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSerialDefaultColumnConstraint(this); + } +}; + +SerialDefaultColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSerialDefaultColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function GeneratedColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +GeneratedColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +GeneratedColumnConstraintContext.prototype.constructor = GeneratedColumnConstraintContext; + +MySQLParser.GeneratedColumnConstraintContext = GeneratedColumnConstraintContext; + +GeneratedColumnConstraintContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +GeneratedColumnConstraintContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +GeneratedColumnConstraintContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +GeneratedColumnConstraintContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +GeneratedColumnConstraintContext.prototype.GENERATED = function() { + return this.getToken(MySQLParser.GENERATED, 0); +}; + +GeneratedColumnConstraintContext.prototype.ALWAYS = function() { + return this.getToken(MySQLParser.ALWAYS, 0); +}; + +GeneratedColumnConstraintContext.prototype.VIRTUAL = function() { + return this.getToken(MySQLParser.VIRTUAL, 0); +}; + +GeneratedColumnConstraintContext.prototype.STORED = function() { + return this.getToken(MySQLParser.STORED, 0); +}; +GeneratedColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterGeneratedColumnConstraint(this); + } +}; + +GeneratedColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitGeneratedColumnConstraint(this); + } +}; + +GeneratedColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitGeneratedColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function FormatColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + this.colformat = null; // Token; + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +FormatColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +FormatColumnConstraintContext.prototype.constructor = FormatColumnConstraintContext; + +MySQLParser.FormatColumnConstraintContext = FormatColumnConstraintContext; + +FormatColumnConstraintContext.prototype.COLUMN_FORMAT = function() { + return this.getToken(MySQLParser.COLUMN_FORMAT, 0); +}; + +FormatColumnConstraintContext.prototype.FIXED = function() { + return this.getToken(MySQLParser.FIXED, 0); +}; + +FormatColumnConstraintContext.prototype.DYNAMIC = function() { + return this.getToken(MySQLParser.DYNAMIC, 0); +}; + +FormatColumnConstraintContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; +FormatColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFormatColumnConstraint(this); + } +}; + +FormatColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFormatColumnConstraint(this); + } +}; + +FormatColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFormatColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CollateColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CollateColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +CollateColumnConstraintContext.prototype.constructor = CollateColumnConstraintContext; + +MySQLParser.CollateColumnConstraintContext = CollateColumnConstraintContext; + +CollateColumnConstraintContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +CollateColumnConstraintContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; +CollateColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCollateColumnConstraint(this); + } +}; + +CollateColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCollateColumnConstraint(this); + } +}; + +CollateColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCollateColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PrimaryKeyColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PrimaryKeyColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +PrimaryKeyColumnConstraintContext.prototype.constructor = PrimaryKeyColumnConstraintContext; + +MySQLParser.PrimaryKeyColumnConstraintContext = PrimaryKeyColumnConstraintContext; + +PrimaryKeyColumnConstraintContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +PrimaryKeyColumnConstraintContext.prototype.PRIMARY = function() { + return this.getToken(MySQLParser.PRIMARY, 0); +}; +PrimaryKeyColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPrimaryKeyColumnConstraint(this); + } +}; + +PrimaryKeyColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPrimaryKeyColumnConstraint(this); + } +}; + +PrimaryKeyColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPrimaryKeyColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CheckColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + this.name = null; // UidContext; + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CheckColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +CheckColumnConstraintContext.prototype.constructor = CheckColumnConstraintContext; + +MySQLParser.CheckColumnConstraintContext = CheckColumnConstraintContext; + +CheckColumnConstraintContext.prototype.CHECK = function() { + return this.getToken(MySQLParser.CHECK, 0); +}; + +CheckColumnConstraintContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CheckColumnConstraintContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +CheckColumnConstraintContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CheckColumnConstraintContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +CheckColumnConstraintContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +CheckColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCheckColumnConstraint(this); + } +}; + +CheckColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCheckColumnConstraint(this); + } +}; + +CheckColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCheckColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NullColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NullColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +NullColumnConstraintContext.prototype.constructor = NullColumnConstraintContext; + +MySQLParser.NullColumnConstraintContext = NullColumnConstraintContext; + +NullColumnConstraintContext.prototype.nullNotnull = function() { + return this.getTypedRuleContext(NullNotnullContext,0); +}; +NullColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterNullColumnConstraint(this); + } +}; + +NullColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitNullColumnConstraint(this); + } +}; + +NullColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitNullColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DefaultColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DefaultColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +DefaultColumnConstraintContext.prototype.constructor = DefaultColumnConstraintContext; + +MySQLParser.DefaultColumnConstraintContext = DefaultColumnConstraintContext; + +DefaultColumnConstraintContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +DefaultColumnConstraintContext.prototype.defaultValue = function() { + return this.getTypedRuleContext(DefaultValueContext,0); +}; +DefaultColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDefaultColumnConstraint(this); + } +}; + +DefaultColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDefaultColumnConstraint(this); + } +}; + +DefaultColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDefaultColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ReferenceColumnConstraintContext(parser, ctx) { + ColumnConstraintContext.call(this, parser); + ColumnConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ReferenceColumnConstraintContext.prototype = Object.create(ColumnConstraintContext.prototype); +ReferenceColumnConstraintContext.prototype.constructor = ReferenceColumnConstraintContext; + +MySQLParser.ReferenceColumnConstraintContext = ReferenceColumnConstraintContext; + +ReferenceColumnConstraintContext.prototype.referenceDefinition = function() { + return this.getTypedRuleContext(ReferenceDefinitionContext,0); +}; +ReferenceColumnConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterReferenceColumnConstraint(this); + } +}; + +ReferenceColumnConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitReferenceColumnConstraint(this); + } +}; + +ReferenceColumnConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitReferenceColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.ColumnConstraintContext = ColumnConstraintContext; + +MySQLParser.prototype.columnConstraint = function() { + + var localctx = new ColumnConstraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 80, MySQLParser.RULE_columnConstraint); + var _la = 0; // Token type + try { + this.state = 1471; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.NOT: + case MySQLParser.NULL_LITERAL: + case MySQLParser.NULL_SPEC_LITERAL: + localctx = new NullColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1420; + this.nullNotnull(); + break; + case MySQLParser.DEFAULT: + localctx = new DefaultColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1421; + this.match(MySQLParser.DEFAULT); + this.state = 1422; + this.defaultValue(); + break; + case MySQLParser.ON: + case MySQLParser.AUTO_INCREMENT: + localctx = new AutoIncrementColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1427; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.AUTO_INCREMENT: + this.state = 1423; + this.match(MySQLParser.AUTO_INCREMENT); + break; + case MySQLParser.ON: + this.state = 1424; + this.match(MySQLParser.ON); + this.state = 1425; + this.match(MySQLParser.UPDATE); + this.state = 1426; + this.currentTimestamp(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case MySQLParser.KEY: + case MySQLParser.PRIMARY: + localctx = new PrimaryKeyColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 1430; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PRIMARY) { + this.state = 1429; + this.match(MySQLParser.PRIMARY); + } + + this.state = 1432; + this.match(MySQLParser.KEY); + break; + case MySQLParser.UNIQUE: + localctx = new UniqueKeyColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 1433; + this.match(MySQLParser.UNIQUE); + this.state = 1435; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,133,this._ctx); + if(la_===1) { + this.state = 1434; + this.match(MySQLParser.KEY); + + } + break; + case MySQLParser.COMMENT: + localctx = new CommentColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 1437; + this.match(MySQLParser.COMMENT); + this.state = 1438; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.COLUMN_FORMAT: + localctx = new FormatColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 1439; + this.match(MySQLParser.COLUMN_FORMAT); + this.state = 1440; + localctx.colformat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.DYNAMIC || _la===MySQLParser.FIXED)) { + localctx.colformat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.STORAGE: + localctx = new StorageColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 1441; + this.match(MySQLParser.STORAGE); + this.state = 1442; + localctx.storageval = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.DISK || _la===MySQLParser.MEMORY)) { + localctx.storageval = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.REFERENCES: + localctx = new ReferenceColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 9); + this.state = 1443; + this.referenceDefinition(); + break; + case MySQLParser.COLLATE: + localctx = new CollateColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 10); + this.state = 1444; + this.match(MySQLParser.COLLATE); + this.state = 1445; + this.collationName(); + break; + case MySQLParser.AS: + case MySQLParser.GENERATED: + localctx = new GeneratedColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 11); + this.state = 1448; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.GENERATED) { + this.state = 1446; + this.match(MySQLParser.GENERATED); + this.state = 1447; + this.match(MySQLParser.ALWAYS); + } + + this.state = 1450; + this.match(MySQLParser.AS); + this.state = 1451; + this.match(MySQLParser.LR_BRACKET); + this.state = 1452; + this.expression(0); + this.state = 1453; + this.match(MySQLParser.RR_BRACKET); + this.state = 1455; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.STORED || _la===MySQLParser.VIRTUAL) { + this.state = 1454; + _la = this._input.LA(1); + if(!(_la===MySQLParser.STORED || _la===MySQLParser.VIRTUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + case MySQLParser.SERIAL: + localctx = new SerialDefaultColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 12); + this.state = 1457; + this.match(MySQLParser.SERIAL); + this.state = 1458; + this.match(MySQLParser.DEFAULT); + this.state = 1459; + this.match(MySQLParser.VALUE); + break; + case MySQLParser.CHECK: + case MySQLParser.CONSTRAINT: + localctx = new CheckColumnConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 13); + this.state = 1464; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 1460; + this.match(MySQLParser.CONSTRAINT); + this.state = 1462; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1461; + localctx.name = this.uid(); + } + + } + + this.state = 1466; + this.match(MySQLParser.CHECK); + this.state = 1467; + this.match(MySQLParser.LR_BRACKET); + this.state = 1468; + this.expression(0); + this.state = 1469; + this.match(MySQLParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableConstraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tableConstraint; + return this; +} + +TableConstraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableConstraintContext.prototype.constructor = TableConstraintContext; + + + +TableConstraintContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function UniqueKeyTableConstraintContext(parser, ctx) { + TableConstraintContext.call(this, parser); + this.name = null; // UidContext; + this.indexFormat = null; // Token; + this.index = null; // UidContext; + TableConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +UniqueKeyTableConstraintContext.prototype = Object.create(TableConstraintContext.prototype); +UniqueKeyTableConstraintContext.prototype.constructor = UniqueKeyTableConstraintContext; + +MySQLParser.UniqueKeyTableConstraintContext = UniqueKeyTableConstraintContext; + +UniqueKeyTableConstraintContext.prototype.UNIQUE = function() { + return this.getToken(MySQLParser.UNIQUE, 0); +}; + +UniqueKeyTableConstraintContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +UniqueKeyTableConstraintContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +UniqueKeyTableConstraintContext.prototype.indexType = function() { + return this.getTypedRuleContext(IndexTypeContext,0); +}; + +UniqueKeyTableConstraintContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; + +UniqueKeyTableConstraintContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +UniqueKeyTableConstraintContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +UniqueKeyTableConstraintContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; +UniqueKeyTableConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUniqueKeyTableConstraint(this); + } +}; + +UniqueKeyTableConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUniqueKeyTableConstraint(this); + } +}; + +UniqueKeyTableConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUniqueKeyTableConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CheckTableConstraintContext(parser, ctx) { + TableConstraintContext.call(this, parser); + this.name = null; // UidContext; + TableConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CheckTableConstraintContext.prototype = Object.create(TableConstraintContext.prototype); +CheckTableConstraintContext.prototype.constructor = CheckTableConstraintContext; + +MySQLParser.CheckTableConstraintContext = CheckTableConstraintContext; + +CheckTableConstraintContext.prototype.CHECK = function() { + return this.getToken(MySQLParser.CHECK, 0); +}; + +CheckTableConstraintContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CheckTableConstraintContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +CheckTableConstraintContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CheckTableConstraintContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +CheckTableConstraintContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +CheckTableConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCheckTableConstraint(this); + } +}; + +CheckTableConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCheckTableConstraint(this); + } +}; + +CheckTableConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCheckTableConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PrimaryKeyTableConstraintContext(parser, ctx) { + TableConstraintContext.call(this, parser); + this.name = null; // UidContext; + this.index = null; // UidContext; + TableConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PrimaryKeyTableConstraintContext.prototype = Object.create(TableConstraintContext.prototype); +PrimaryKeyTableConstraintContext.prototype.constructor = PrimaryKeyTableConstraintContext; + +MySQLParser.PrimaryKeyTableConstraintContext = PrimaryKeyTableConstraintContext; + +PrimaryKeyTableConstraintContext.prototype.PRIMARY = function() { + return this.getToken(MySQLParser.PRIMARY, 0); +}; + +PrimaryKeyTableConstraintContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +PrimaryKeyTableConstraintContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +PrimaryKeyTableConstraintContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +PrimaryKeyTableConstraintContext.prototype.indexType = function() { + return this.getTypedRuleContext(IndexTypeContext,0); +}; + +PrimaryKeyTableConstraintContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; + +PrimaryKeyTableConstraintContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; +PrimaryKeyTableConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPrimaryKeyTableConstraint(this); + } +}; + +PrimaryKeyTableConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPrimaryKeyTableConstraint(this); + } +}; + +PrimaryKeyTableConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPrimaryKeyTableConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ForeignKeyTableConstraintContext(parser, ctx) { + TableConstraintContext.call(this, parser); + this.name = null; // UidContext; + this.index = null; // UidContext; + TableConstraintContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ForeignKeyTableConstraintContext.prototype = Object.create(TableConstraintContext.prototype); +ForeignKeyTableConstraintContext.prototype.constructor = ForeignKeyTableConstraintContext; + +MySQLParser.ForeignKeyTableConstraintContext = ForeignKeyTableConstraintContext; + +ForeignKeyTableConstraintContext.prototype.FOREIGN = function() { + return this.getToken(MySQLParser.FOREIGN, 0); +}; + +ForeignKeyTableConstraintContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +ForeignKeyTableConstraintContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +ForeignKeyTableConstraintContext.prototype.referenceDefinition = function() { + return this.getTypedRuleContext(ReferenceDefinitionContext,0); +}; + +ForeignKeyTableConstraintContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +ForeignKeyTableConstraintContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; +ForeignKeyTableConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterForeignKeyTableConstraint(this); + } +}; + +ForeignKeyTableConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitForeignKeyTableConstraint(this); + } +}; + +ForeignKeyTableConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitForeignKeyTableConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.TableConstraintContext = TableConstraintContext; + +MySQLParser.prototype.tableConstraint = function() { + + var localctx = new TableConstraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 82, MySQLParser.RULE_tableConstraint); + var _la = 0; // Token type + try { + this.state = 1542; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,155,this._ctx); + switch(la_) { + case 1: + localctx = new PrimaryKeyTableConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1477; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 1473; + this.match(MySQLParser.CONSTRAINT); + this.state = 1475; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1474; + localctx.name = this.uid(); + } + + } + + this.state = 1479; + this.match(MySQLParser.PRIMARY); + this.state = 1480; + this.match(MySQLParser.KEY); + this.state = 1482; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1481; + localctx.index = this.uid(); + } + + this.state = 1485; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 1484; + this.indexType(); + } + + this.state = 1487; + this.indexColumnNames(); + this.state = 1491; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 1488; + this.indexOption(); + this.state = 1493; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + localctx = new UniqueKeyTableConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1498; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 1494; + this.match(MySQLParser.CONSTRAINT); + this.state = 1496; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1495; + localctx.name = this.uid(); + } + + } + + this.state = 1500; + this.match(MySQLParser.UNIQUE); + this.state = 1502; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INDEX || _la===MySQLParser.KEY) { + this.state = 1501; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1505; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1504; + localctx.index = this.uid(); + } + + this.state = 1508; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 1507; + this.indexType(); + } + + this.state = 1510; + this.indexColumnNames(); + this.state = 1514; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 1511; + this.indexOption(); + this.state = 1516; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 3: + localctx = new ForeignKeyTableConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1521; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 1517; + this.match(MySQLParser.CONSTRAINT); + this.state = 1519; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1518; + localctx.name = this.uid(); + } + + } + + this.state = 1523; + this.match(MySQLParser.FOREIGN); + this.state = 1524; + this.match(MySQLParser.KEY); + this.state = 1526; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1525; + localctx.index = this.uid(); + } + + this.state = 1528; + this.indexColumnNames(); + this.state = 1529; + this.referenceDefinition(); + break; + + case 4: + localctx = new CheckTableConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 1535; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 1531; + this.match(MySQLParser.CONSTRAINT); + this.state = 1533; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1532; + localctx.name = this.uid(); + } + + } + + this.state = 1537; + this.match(MySQLParser.CHECK); + this.state = 1538; + this.match(MySQLParser.LR_BRACKET); + this.state = 1539; + this.expression(0); + this.state = 1540; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ReferenceDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_referenceDefinition; + this.matchType = null; // Token + return this; +} + +ReferenceDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ReferenceDefinitionContext.prototype.constructor = ReferenceDefinitionContext; + +ReferenceDefinitionContext.prototype.REFERENCES = function() { + return this.getToken(MySQLParser.REFERENCES, 0); +}; + +ReferenceDefinitionContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +ReferenceDefinitionContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +ReferenceDefinitionContext.prototype.MATCH = function() { + return this.getToken(MySQLParser.MATCH, 0); +}; + +ReferenceDefinitionContext.prototype.referenceAction = function() { + return this.getTypedRuleContext(ReferenceActionContext,0); +}; + +ReferenceDefinitionContext.prototype.FULL = function() { + return this.getToken(MySQLParser.FULL, 0); +}; + +ReferenceDefinitionContext.prototype.PARTIAL = function() { + return this.getToken(MySQLParser.PARTIAL, 0); +}; + +ReferenceDefinitionContext.prototype.SIMPLE = function() { + return this.getToken(MySQLParser.SIMPLE, 0); +}; + +ReferenceDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterReferenceDefinition(this); + } +}; + +ReferenceDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitReferenceDefinition(this); + } +}; + +ReferenceDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitReferenceDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ReferenceDefinitionContext = ReferenceDefinitionContext; + +MySQLParser.prototype.referenceDefinition = function() { + + var localctx = new ReferenceDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 84, MySQLParser.RULE_referenceDefinition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1544; + this.match(MySQLParser.REFERENCES); + this.state = 1545; + this.tableName(); + this.state = 1547; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,156,this._ctx); + if(la_===1) { + this.state = 1546; + this.indexColumnNames(); + + } + this.state = 1551; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.MATCH) { + this.state = 1549; + this.match(MySQLParser.MATCH); + this.state = 1550; + localctx.matchType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FULL || _la===MySQLParser.PARTIAL || _la===MySQLParser.SIMPLE)) { + localctx.matchType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1554; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,158,this._ctx); + if(la_===1) { + this.state = 1553; + this.referenceAction(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ReferenceActionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_referenceAction; + this.onDelete = null; // ReferenceControlTypeContext + this.onUpdate = null; // ReferenceControlTypeContext + return this; +} + +ReferenceActionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ReferenceActionContext.prototype.constructor = ReferenceActionContext; + +ReferenceActionContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.ON); + } else { + return this.getToken(MySQLParser.ON, i); + } +}; + + +ReferenceActionContext.prototype.DELETE = function() { + return this.getToken(MySQLParser.DELETE, 0); +}; + +ReferenceActionContext.prototype.referenceControlType = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ReferenceControlTypeContext); + } else { + return this.getTypedRuleContext(ReferenceControlTypeContext,i); + } +}; + +ReferenceActionContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +ReferenceActionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterReferenceAction(this); + } +}; + +ReferenceActionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitReferenceAction(this); + } +}; + +ReferenceActionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitReferenceAction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ReferenceActionContext = ReferenceActionContext; + +MySQLParser.prototype.referenceAction = function() { + + var localctx = new ReferenceActionContext(this, this._ctx, this.state); + this.enterRule(localctx, 86, MySQLParser.RULE_referenceAction); + try { + this.state = 1572; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,161,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1556; + this.match(MySQLParser.ON); + this.state = 1557; + this.match(MySQLParser.DELETE); + this.state = 1558; + localctx.onDelete = this.referenceControlType(); + this.state = 1562; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,159,this._ctx); + if(la_===1) { + this.state = 1559; + this.match(MySQLParser.ON); + this.state = 1560; + this.match(MySQLParser.UPDATE); + this.state = 1561; + localctx.onUpdate = this.referenceControlType(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1564; + this.match(MySQLParser.ON); + this.state = 1565; + this.match(MySQLParser.UPDATE); + this.state = 1566; + localctx.onUpdate = this.referenceControlType(); + this.state = 1570; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,160,this._ctx); + if(la_===1) { + this.state = 1567; + this.match(MySQLParser.ON); + this.state = 1568; + this.match(MySQLParser.DELETE); + this.state = 1569; + localctx.onDelete = this.referenceControlType(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ReferenceControlTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_referenceControlType; + return this; +} + +ReferenceControlTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ReferenceControlTypeContext.prototype.constructor = ReferenceControlTypeContext; + +ReferenceControlTypeContext.prototype.RESTRICT = function() { + return this.getToken(MySQLParser.RESTRICT, 0); +}; + +ReferenceControlTypeContext.prototype.CASCADE = function() { + return this.getToken(MySQLParser.CASCADE, 0); +}; + +ReferenceControlTypeContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +ReferenceControlTypeContext.prototype.NULL_LITERAL = function() { + return this.getToken(MySQLParser.NULL_LITERAL, 0); +}; + +ReferenceControlTypeContext.prototype.NO = function() { + return this.getToken(MySQLParser.NO, 0); +}; + +ReferenceControlTypeContext.prototype.ACTION = function() { + return this.getToken(MySQLParser.ACTION, 0); +}; + +ReferenceControlTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterReferenceControlType(this); + } +}; + +ReferenceControlTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitReferenceControlType(this); + } +}; + +ReferenceControlTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitReferenceControlType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ReferenceControlTypeContext = ReferenceControlTypeContext; + +MySQLParser.prototype.referenceControlType = function() { + + var localctx = new ReferenceControlTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 88, MySQLParser.RULE_referenceControlType); + try { + this.state = 1580; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.RESTRICT: + this.enterOuterAlt(localctx, 1); + this.state = 1574; + this.match(MySQLParser.RESTRICT); + break; + case MySQLParser.CASCADE: + this.enterOuterAlt(localctx, 2); + this.state = 1575; + this.match(MySQLParser.CASCADE); + break; + case MySQLParser.SET: + this.enterOuterAlt(localctx, 3); + this.state = 1576; + this.match(MySQLParser.SET); + this.state = 1577; + this.match(MySQLParser.NULL_LITERAL); + break; + case MySQLParser.NO: + this.enterOuterAlt(localctx, 4); + this.state = 1578; + this.match(MySQLParser.NO); + this.state = 1579; + this.match(MySQLParser.ACTION); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IndexColumnDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_indexColumnDefinition; + return this; +} + +IndexColumnDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IndexColumnDefinitionContext.prototype.constructor = IndexColumnDefinitionContext; + + + +IndexColumnDefinitionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SpecialIndexDeclarationContext(parser, ctx) { + IndexColumnDefinitionContext.call(this, parser); + this.indexFormat = null; // Token; + IndexColumnDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SpecialIndexDeclarationContext.prototype = Object.create(IndexColumnDefinitionContext.prototype); +SpecialIndexDeclarationContext.prototype.constructor = SpecialIndexDeclarationContext; + +MySQLParser.SpecialIndexDeclarationContext = SpecialIndexDeclarationContext; + +SpecialIndexDeclarationContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +SpecialIndexDeclarationContext.prototype.FULLTEXT = function() { + return this.getToken(MySQLParser.FULLTEXT, 0); +}; + +SpecialIndexDeclarationContext.prototype.SPATIAL = function() { + return this.getToken(MySQLParser.SPATIAL, 0); +}; + +SpecialIndexDeclarationContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SpecialIndexDeclarationContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; + +SpecialIndexDeclarationContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +SpecialIndexDeclarationContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; +SpecialIndexDeclarationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSpecialIndexDeclaration(this); + } +}; + +SpecialIndexDeclarationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSpecialIndexDeclaration(this); + } +}; + +SpecialIndexDeclarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSpecialIndexDeclaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SimpleIndexDeclarationContext(parser, ctx) { + IndexColumnDefinitionContext.call(this, parser); + this.indexFormat = null; // Token; + IndexColumnDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SimpleIndexDeclarationContext.prototype = Object.create(IndexColumnDefinitionContext.prototype); +SimpleIndexDeclarationContext.prototype.constructor = SimpleIndexDeclarationContext; + +MySQLParser.SimpleIndexDeclarationContext = SimpleIndexDeclarationContext; + +SimpleIndexDeclarationContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +SimpleIndexDeclarationContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +SimpleIndexDeclarationContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +SimpleIndexDeclarationContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SimpleIndexDeclarationContext.prototype.indexType = function() { + return this.getTypedRuleContext(IndexTypeContext,0); +}; + +SimpleIndexDeclarationContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; +SimpleIndexDeclarationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleIndexDeclaration(this); + } +}; + +SimpleIndexDeclarationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleIndexDeclaration(this); + } +}; + +SimpleIndexDeclarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleIndexDeclaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.IndexColumnDefinitionContext = IndexColumnDefinitionContext; + +MySQLParser.prototype.indexColumnDefinition = function() { + + var localctx = new IndexColumnDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 90, MySQLParser.RULE_indexColumnDefinition); + var _la = 0; // Token type + try { + this.state = 1610; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.INDEX: + case MySQLParser.KEY: + localctx = new SimpleIndexDeclarationContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1582; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1584; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1583; + this.uid(); + } + + this.state = 1587; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 1586; + this.indexType(); + } + + this.state = 1589; + this.indexColumnNames(); + this.state = 1593; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 1590; + this.indexOption(); + this.state = 1595; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case MySQLParser.FULLTEXT: + case MySQLParser.SPATIAL: + localctx = new SpecialIndexDeclarationContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1596; + _la = this._input.LA(1); + if(!(_la===MySQLParser.FULLTEXT || _la===MySQLParser.SPATIAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1598; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INDEX || _la===MySQLParser.KEY) { + this.state = 1597; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1601; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 1600; + this.uid(); + } + + this.state = 1603; + this.indexColumnNames(); + this.state = 1607; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 1604; + this.indexOption(); + this.state = 1609; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tableOption; + return this; +} + +TableOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableOptionContext.prototype.constructor = TableOptionContext; + + + +TableOptionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function TableOptionEngineContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionEngineContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionEngineContext.prototype.constructor = TableOptionEngineContext; + +MySQLParser.TableOptionEngineContext = TableOptionEngineContext; + +TableOptionEngineContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +TableOptionEngineContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +TableOptionEngineContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionEngineContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionEngine(this); + } +}; + +TableOptionEngineContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionEngine(this); + } +}; + +TableOptionEngineContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionEngine(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionMaxRowsContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionMaxRowsContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionMaxRowsContext.prototype.constructor = TableOptionMaxRowsContext; + +MySQLParser.TableOptionMaxRowsContext = TableOptionMaxRowsContext; + +TableOptionMaxRowsContext.prototype.MAX_ROWS = function() { + return this.getToken(MySQLParser.MAX_ROWS, 0); +}; + +TableOptionMaxRowsContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +TableOptionMaxRowsContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionMaxRowsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionMaxRows(this); + } +}; + +TableOptionMaxRowsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionMaxRows(this); + } +}; + +TableOptionMaxRowsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionMaxRows(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionCollateContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionCollateContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionCollateContext.prototype.constructor = TableOptionCollateContext; + +MySQLParser.TableOptionCollateContext = TableOptionCollateContext; + +TableOptionCollateContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +TableOptionCollateContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; + +TableOptionCollateContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +TableOptionCollateContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionCollateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionCollate(this); + } +}; + +TableOptionCollateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionCollate(this); + } +}; + +TableOptionCollateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionCollate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionPersistentContext(parser, ctx) { + TableOptionContext.call(this, parser); + this.extBoolValue = null; // Token; + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionPersistentContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionPersistentContext.prototype.constructor = TableOptionPersistentContext; + +MySQLParser.TableOptionPersistentContext = TableOptionPersistentContext; + +TableOptionPersistentContext.prototype.STATS_PERSISTENT = function() { + return this.getToken(MySQLParser.STATS_PERSISTENT, 0); +}; + +TableOptionPersistentContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +TableOptionPersistentContext.prototype.ZERO_DECIMAL = function() { + return this.getToken(MySQLParser.ZERO_DECIMAL, 0); +}; + +TableOptionPersistentContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +TableOptionPersistentContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionPersistentContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionPersistent(this); + } +}; + +TableOptionPersistentContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionPersistent(this); + } +}; + +TableOptionPersistentContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionPersistent(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionTablespaceContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionTablespaceContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionTablespaceContext.prototype.constructor = TableOptionTablespaceContext; + +MySQLParser.TableOptionTablespaceContext = TableOptionTablespaceContext; + +TableOptionTablespaceContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +TableOptionTablespaceContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +TableOptionTablespaceContext.prototype.tablespaceStorage = function() { + return this.getTypedRuleContext(TablespaceStorageContext,0); +}; +TableOptionTablespaceContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionTablespace(this); + } +}; + +TableOptionTablespaceContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionTablespace(this); + } +}; + +TableOptionTablespaceContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionTablespace(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionPackKeysContext(parser, ctx) { + TableOptionContext.call(this, parser); + this.extBoolValue = null; // Token; + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionPackKeysContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionPackKeysContext.prototype.constructor = TableOptionPackKeysContext; + +MySQLParser.TableOptionPackKeysContext = TableOptionPackKeysContext; + +TableOptionPackKeysContext.prototype.PACK_KEYS = function() { + return this.getToken(MySQLParser.PACK_KEYS, 0); +}; + +TableOptionPackKeysContext.prototype.ZERO_DECIMAL = function() { + return this.getToken(MySQLParser.ZERO_DECIMAL, 0); +}; + +TableOptionPackKeysContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +TableOptionPackKeysContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +TableOptionPackKeysContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionPackKeysContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionPackKeys(this); + } +}; + +TableOptionPackKeysContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionPackKeys(this); + } +}; + +TableOptionPackKeysContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionPackKeys(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionPasswordContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionPasswordContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionPasswordContext.prototype.constructor = TableOptionPasswordContext; + +MySQLParser.TableOptionPasswordContext = TableOptionPasswordContext; + +TableOptionPasswordContext.prototype.PASSWORD = function() { + return this.getToken(MySQLParser.PASSWORD, 0); +}; + +TableOptionPasswordContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +TableOptionPasswordContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionPasswordContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionPassword(this); + } +}; + +TableOptionPasswordContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionPassword(this); + } +}; + +TableOptionPasswordContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionPassword(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionUnionContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionUnionContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionUnionContext.prototype.constructor = TableOptionUnionContext; + +MySQLParser.TableOptionUnionContext = TableOptionUnionContext; + +TableOptionUnionContext.prototype.UNION = function() { + return this.getToken(MySQLParser.UNION, 0); +}; + +TableOptionUnionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +TableOptionUnionContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +TableOptionUnionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +TableOptionUnionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionUnionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionUnion(this); + } +}; + +TableOptionUnionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionUnion(this); + } +}; + +TableOptionUnionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionUnion(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionSamplePageContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionSamplePageContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionSamplePageContext.prototype.constructor = TableOptionSamplePageContext; + +MySQLParser.TableOptionSamplePageContext = TableOptionSamplePageContext; + +TableOptionSamplePageContext.prototype.STATS_SAMPLE_PAGES = function() { + return this.getToken(MySQLParser.STATS_SAMPLE_PAGES, 0); +}; + +TableOptionSamplePageContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +TableOptionSamplePageContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionSamplePageContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionSamplePage(this); + } +}; + +TableOptionSamplePageContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionSamplePage(this); + } +}; + +TableOptionSamplePageContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionSamplePage(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionCharsetContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionCharsetContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionCharsetContext.prototype.constructor = TableOptionCharsetContext; + +MySQLParser.TableOptionCharsetContext = TableOptionCharsetContext; + +TableOptionCharsetContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +TableOptionCharsetContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +TableOptionCharsetContext.prototype.CHARSET = function() { + return this.getToken(MySQLParser.CHARSET, 0); +}; + +TableOptionCharsetContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +TableOptionCharsetContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.DEFAULT); + } else { + return this.getToken(MySQLParser.DEFAULT, i); + } +}; + + +TableOptionCharsetContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionCharsetContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionCharset(this); + } +}; + +TableOptionCharsetContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionCharset(this); + } +}; + +TableOptionCharsetContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionCharset(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionIndexDirectoryContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionIndexDirectoryContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionIndexDirectoryContext.prototype.constructor = TableOptionIndexDirectoryContext; + +MySQLParser.TableOptionIndexDirectoryContext = TableOptionIndexDirectoryContext; + +TableOptionIndexDirectoryContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +TableOptionIndexDirectoryContext.prototype.DIRECTORY = function() { + return this.getToken(MySQLParser.DIRECTORY, 0); +}; + +TableOptionIndexDirectoryContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +TableOptionIndexDirectoryContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionIndexDirectoryContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionIndexDirectory(this); + } +}; + +TableOptionIndexDirectoryContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionIndexDirectory(this); + } +}; + +TableOptionIndexDirectoryContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionIndexDirectory(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionKeyBlockSizeContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionKeyBlockSizeContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionKeyBlockSizeContext.prototype.constructor = TableOptionKeyBlockSizeContext; + +MySQLParser.TableOptionKeyBlockSizeContext = TableOptionKeyBlockSizeContext; + +TableOptionKeyBlockSizeContext.prototype.KEY_BLOCK_SIZE = function() { + return this.getToken(MySQLParser.KEY_BLOCK_SIZE, 0); +}; + +TableOptionKeyBlockSizeContext.prototype.fileSizeLiteral = function() { + return this.getTypedRuleContext(FileSizeLiteralContext,0); +}; + +TableOptionKeyBlockSizeContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionKeyBlockSizeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionKeyBlockSize(this); + } +}; + +TableOptionKeyBlockSizeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionKeyBlockSize(this); + } +}; + +TableOptionKeyBlockSizeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionKeyBlockSize(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionEncryptionContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionEncryptionContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionEncryptionContext.prototype.constructor = TableOptionEncryptionContext; + +MySQLParser.TableOptionEncryptionContext = TableOptionEncryptionContext; + +TableOptionEncryptionContext.prototype.ENCRYPTION = function() { + return this.getToken(MySQLParser.ENCRYPTION, 0); +}; + +TableOptionEncryptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +TableOptionEncryptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionEncryptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionEncryption(this); + } +}; + +TableOptionEncryptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionEncryption(this); + } +}; + +TableOptionEncryptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionEncryption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionDataDirectoryContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionDataDirectoryContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionDataDirectoryContext.prototype.constructor = TableOptionDataDirectoryContext; + +MySQLParser.TableOptionDataDirectoryContext = TableOptionDataDirectoryContext; + +TableOptionDataDirectoryContext.prototype.DATA = function() { + return this.getToken(MySQLParser.DATA, 0); +}; + +TableOptionDataDirectoryContext.prototype.DIRECTORY = function() { + return this.getToken(MySQLParser.DIRECTORY, 0); +}; + +TableOptionDataDirectoryContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +TableOptionDataDirectoryContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionDataDirectoryContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionDataDirectory(this); + } +}; + +TableOptionDataDirectoryContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionDataDirectory(this); + } +}; + +TableOptionDataDirectoryContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionDataDirectory(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionRecalculationContext(parser, ctx) { + TableOptionContext.call(this, parser); + this.extBoolValue = null; // Token; + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionRecalculationContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionRecalculationContext.prototype.constructor = TableOptionRecalculationContext; + +MySQLParser.TableOptionRecalculationContext = TableOptionRecalculationContext; + +TableOptionRecalculationContext.prototype.STATS_AUTO_RECALC = function() { + return this.getToken(MySQLParser.STATS_AUTO_RECALC, 0); +}; + +TableOptionRecalculationContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +TableOptionRecalculationContext.prototype.ZERO_DECIMAL = function() { + return this.getToken(MySQLParser.ZERO_DECIMAL, 0); +}; + +TableOptionRecalculationContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +TableOptionRecalculationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionRecalculationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionRecalculation(this); + } +}; + +TableOptionRecalculationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionRecalculation(this); + } +}; + +TableOptionRecalculationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionRecalculation(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionAutoIncrementContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionAutoIncrementContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionAutoIncrementContext.prototype.constructor = TableOptionAutoIncrementContext; + +MySQLParser.TableOptionAutoIncrementContext = TableOptionAutoIncrementContext; + +TableOptionAutoIncrementContext.prototype.AUTO_INCREMENT = function() { + return this.getToken(MySQLParser.AUTO_INCREMENT, 0); +}; + +TableOptionAutoIncrementContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +TableOptionAutoIncrementContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionAutoIncrementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionAutoIncrement(this); + } +}; + +TableOptionAutoIncrementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionAutoIncrement(this); + } +}; + +TableOptionAutoIncrementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionAutoIncrement(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionChecksumContext(parser, ctx) { + TableOptionContext.call(this, parser); + this.boolValue = null; // Token; + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionChecksumContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionChecksumContext.prototype.constructor = TableOptionChecksumContext; + +MySQLParser.TableOptionChecksumContext = TableOptionChecksumContext; + +TableOptionChecksumContext.prototype.CHECKSUM = function() { + return this.getToken(MySQLParser.CHECKSUM, 0); +}; + +TableOptionChecksumContext.prototype.PAGE_CHECKSUM = function() { + return this.getToken(MySQLParser.PAGE_CHECKSUM, 0); +}; + +TableOptionChecksumContext.prototype.ZERO_DECIMAL = function() { + return this.getToken(MySQLParser.ZERO_DECIMAL, 0); +}; + +TableOptionChecksumContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +TableOptionChecksumContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionChecksumContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionChecksum(this); + } +}; + +TableOptionChecksumContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionChecksum(this); + } +}; + +TableOptionChecksumContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionChecksum(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionDelayContext(parser, ctx) { + TableOptionContext.call(this, parser); + this.boolValue = null; // Token; + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionDelayContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionDelayContext.prototype.constructor = TableOptionDelayContext; + +MySQLParser.TableOptionDelayContext = TableOptionDelayContext; + +TableOptionDelayContext.prototype.DELAY_KEY_WRITE = function() { + return this.getToken(MySQLParser.DELAY_KEY_WRITE, 0); +}; + +TableOptionDelayContext.prototype.ZERO_DECIMAL = function() { + return this.getToken(MySQLParser.ZERO_DECIMAL, 0); +}; + +TableOptionDelayContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +TableOptionDelayContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionDelayContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionDelay(this); + } +}; + +TableOptionDelayContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionDelay(this); + } +}; + +TableOptionDelayContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionDelay(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionConnectionContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionConnectionContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionConnectionContext.prototype.constructor = TableOptionConnectionContext; + +MySQLParser.TableOptionConnectionContext = TableOptionConnectionContext; + +TableOptionConnectionContext.prototype.CONNECTION = function() { + return this.getToken(MySQLParser.CONNECTION, 0); +}; + +TableOptionConnectionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +TableOptionConnectionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionConnectionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionConnection(this); + } +}; + +TableOptionConnectionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionConnection(this); + } +}; + +TableOptionConnectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionConnection(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionCommentContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionCommentContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionCommentContext.prototype.constructor = TableOptionCommentContext; + +MySQLParser.TableOptionCommentContext = TableOptionCommentContext; + +TableOptionCommentContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +TableOptionCommentContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +TableOptionCommentContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionCommentContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionComment(this); + } +}; + +TableOptionCommentContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionComment(this); + } +}; + +TableOptionCommentContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionComment(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionAverageContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionAverageContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionAverageContext.prototype.constructor = TableOptionAverageContext; + +MySQLParser.TableOptionAverageContext = TableOptionAverageContext; + +TableOptionAverageContext.prototype.AVG_ROW_LENGTH = function() { + return this.getToken(MySQLParser.AVG_ROW_LENGTH, 0); +}; + +TableOptionAverageContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +TableOptionAverageContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionAverageContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionAverage(this); + } +}; + +TableOptionAverageContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionAverage(this); + } +}; + +TableOptionAverageContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionAverage(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionRowFormatContext(parser, ctx) { + TableOptionContext.call(this, parser); + this.rowFormat = null; // Token; + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionRowFormatContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionRowFormatContext.prototype.constructor = TableOptionRowFormatContext; + +MySQLParser.TableOptionRowFormatContext = TableOptionRowFormatContext; + +TableOptionRowFormatContext.prototype.ROW_FORMAT = function() { + return this.getToken(MySQLParser.ROW_FORMAT, 0); +}; + +TableOptionRowFormatContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +TableOptionRowFormatContext.prototype.DYNAMIC = function() { + return this.getToken(MySQLParser.DYNAMIC, 0); +}; + +TableOptionRowFormatContext.prototype.FIXED = function() { + return this.getToken(MySQLParser.FIXED, 0); +}; + +TableOptionRowFormatContext.prototype.COMPRESSED = function() { + return this.getToken(MySQLParser.COMPRESSED, 0); +}; + +TableOptionRowFormatContext.prototype.REDUNDANT = function() { + return this.getToken(MySQLParser.REDUNDANT, 0); +}; + +TableOptionRowFormatContext.prototype.COMPACT = function() { + return this.getToken(MySQLParser.COMPACT, 0); +}; + +TableOptionRowFormatContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionRowFormatContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionRowFormat(this); + } +}; + +TableOptionRowFormatContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionRowFormat(this); + } +}; + +TableOptionRowFormatContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionRowFormat(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionCompressionContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionCompressionContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionCompressionContext.prototype.constructor = TableOptionCompressionContext; + +MySQLParser.TableOptionCompressionContext = TableOptionCompressionContext; + +TableOptionCompressionContext.prototype.COMPRESSION = function() { + return this.getToken(MySQLParser.COMPRESSION, 0); +}; + +TableOptionCompressionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +TableOptionCompressionContext.prototype.ID = function() { + return this.getToken(MySQLParser.ID, 0); +}; + +TableOptionCompressionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionCompressionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionCompression(this); + } +}; + +TableOptionCompressionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionCompression(this); + } +}; + +TableOptionCompressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionCompression(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionInsertMethodContext(parser, ctx) { + TableOptionContext.call(this, parser); + this.insertMethod = null; // Token; + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionInsertMethodContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionInsertMethodContext.prototype.constructor = TableOptionInsertMethodContext; + +MySQLParser.TableOptionInsertMethodContext = TableOptionInsertMethodContext; + +TableOptionInsertMethodContext.prototype.INSERT_METHOD = function() { + return this.getToken(MySQLParser.INSERT_METHOD, 0); +}; + +TableOptionInsertMethodContext.prototype.NO = function() { + return this.getToken(MySQLParser.NO, 0); +}; + +TableOptionInsertMethodContext.prototype.FIRST = function() { + return this.getToken(MySQLParser.FIRST, 0); +}; + +TableOptionInsertMethodContext.prototype.LAST = function() { + return this.getToken(MySQLParser.LAST, 0); +}; + +TableOptionInsertMethodContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionInsertMethodContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionInsertMethod(this); + } +}; + +TableOptionInsertMethodContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionInsertMethod(this); + } +}; + +TableOptionInsertMethodContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionInsertMethod(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableOptionMinRowsContext(parser, ctx) { + TableOptionContext.call(this, parser); + TableOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableOptionMinRowsContext.prototype = Object.create(TableOptionContext.prototype); +TableOptionMinRowsContext.prototype.constructor = TableOptionMinRowsContext; + +MySQLParser.TableOptionMinRowsContext = TableOptionMinRowsContext; + +TableOptionMinRowsContext.prototype.MIN_ROWS = function() { + return this.getToken(MySQLParser.MIN_ROWS, 0); +}; + +TableOptionMinRowsContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +TableOptionMinRowsContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +TableOptionMinRowsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableOptionMinRows(this); + } +}; + +TableOptionMinRowsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableOptionMinRows(this); + } +}; + +TableOptionMinRowsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableOptionMinRows(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.TableOptionContext = TableOptionContext; + +MySQLParser.prototype.tableOption = function() { + + var localctx = new TableOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 92, MySQLParser.RULE_tableOption); + var _la = 0; // Token type + try { + this.state = 1756; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,199,this._ctx); + switch(la_) { + case 1: + localctx = new TableOptionEngineContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1612; + this.match(MySQLParser.ENGINE); + this.state = 1614; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1613; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1616; + this.engineName(); + break; + + case 2: + localctx = new TableOptionAutoIncrementContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1617; + this.match(MySQLParser.AUTO_INCREMENT); + this.state = 1619; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1618; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1621; + this.decimalLiteral(); + break; + + case 3: + localctx = new TableOptionAverageContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1622; + this.match(MySQLParser.AVG_ROW_LENGTH); + this.state = 1624; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1623; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1626; + this.decimalLiteral(); + break; + + case 4: + localctx = new TableOptionCharsetContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 1628; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFAULT) { + this.state = 1627; + this.match(MySQLParser.DEFAULT); + } + + this.state = 1633; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CHARACTER: + this.state = 1630; + this.match(MySQLParser.CHARACTER); + this.state = 1631; + this.match(MySQLParser.SET); + break; + case MySQLParser.CHARSET: + this.state = 1632; + this.match(MySQLParser.CHARSET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1636; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1635; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1640; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.BINARY: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + this.state = 1638; + this.charsetName(); + break; + case MySQLParser.DEFAULT: + this.state = 1639; + this.match(MySQLParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 5: + localctx = new TableOptionChecksumContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 1642; + _la = this._input.LA(1); + if(!(_la===MySQLParser.CHECKSUM || _la===MySQLParser.PAGE_CHECKSUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1644; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1643; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1646; + localctx.boolValue = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ZERO_DECIMAL || _la===MySQLParser.ONE_DECIMAL)) { + localctx.boolValue = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 6: + localctx = new TableOptionCollateContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 1648; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFAULT) { + this.state = 1647; + this.match(MySQLParser.DEFAULT); + } + + this.state = 1650; + this.match(MySQLParser.COLLATE); + this.state = 1652; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1651; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1654; + this.collationName(); + break; + + case 7: + localctx = new TableOptionCommentContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 1655; + this.match(MySQLParser.COMMENT); + this.state = 1657; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1656; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1659; + this.match(MySQLParser.STRING_LITERAL); + break; + + case 8: + localctx = new TableOptionCompressionContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 1660; + this.match(MySQLParser.COMPRESSION); + this.state = 1662; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1661; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1664; + _la = this._input.LA(1); + if(!(_la===MySQLParser.STRING_LITERAL || _la===MySQLParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 9: + localctx = new TableOptionConnectionContext(this, localctx); + this.enterOuterAlt(localctx, 9); + this.state = 1665; + this.match(MySQLParser.CONNECTION); + this.state = 1667; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1666; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1669; + this.match(MySQLParser.STRING_LITERAL); + break; + + case 10: + localctx = new TableOptionDataDirectoryContext(this, localctx); + this.enterOuterAlt(localctx, 10); + this.state = 1670; + this.match(MySQLParser.DATA); + this.state = 1671; + this.match(MySQLParser.DIRECTORY); + this.state = 1673; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1672; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1675; + this.match(MySQLParser.STRING_LITERAL); + break; + + case 11: + localctx = new TableOptionDelayContext(this, localctx); + this.enterOuterAlt(localctx, 11); + this.state = 1676; + this.match(MySQLParser.DELAY_KEY_WRITE); + this.state = 1678; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1677; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1680; + localctx.boolValue = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ZERO_DECIMAL || _la===MySQLParser.ONE_DECIMAL)) { + localctx.boolValue = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 12: + localctx = new TableOptionEncryptionContext(this, localctx); + this.enterOuterAlt(localctx, 12); + this.state = 1681; + this.match(MySQLParser.ENCRYPTION); + this.state = 1683; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1682; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1685; + this.match(MySQLParser.STRING_LITERAL); + break; + + case 13: + localctx = new TableOptionIndexDirectoryContext(this, localctx); + this.enterOuterAlt(localctx, 13); + this.state = 1686; + this.match(MySQLParser.INDEX); + this.state = 1687; + this.match(MySQLParser.DIRECTORY); + this.state = 1689; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1688; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1691; + this.match(MySQLParser.STRING_LITERAL); + break; + + case 14: + localctx = new TableOptionInsertMethodContext(this, localctx); + this.enterOuterAlt(localctx, 14); + this.state = 1692; + this.match(MySQLParser.INSERT_METHOD); + this.state = 1694; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1693; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1696; + localctx.insertMethod = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FIRST || _la===MySQLParser.LAST || _la===MySQLParser.NO)) { + localctx.insertMethod = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 15: + localctx = new TableOptionKeyBlockSizeContext(this, localctx); + this.enterOuterAlt(localctx, 15); + this.state = 1697; + this.match(MySQLParser.KEY_BLOCK_SIZE); + this.state = 1699; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1698; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1701; + this.fileSizeLiteral(); + break; + + case 16: + localctx = new TableOptionMaxRowsContext(this, localctx); + this.enterOuterAlt(localctx, 16); + this.state = 1702; + this.match(MySQLParser.MAX_ROWS); + this.state = 1704; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1703; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1706; + this.decimalLiteral(); + break; + + case 17: + localctx = new TableOptionMinRowsContext(this, localctx); + this.enterOuterAlt(localctx, 17); + this.state = 1707; + this.match(MySQLParser.MIN_ROWS); + this.state = 1709; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1708; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1711; + this.decimalLiteral(); + break; + + case 18: + localctx = new TableOptionPackKeysContext(this, localctx); + this.enterOuterAlt(localctx, 18); + this.state = 1712; + this.match(MySQLParser.PACK_KEYS); + this.state = 1714; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1713; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1716; + localctx.extBoolValue = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.ZERO_DECIMAL || _la===MySQLParser.ONE_DECIMAL)) { + localctx.extBoolValue = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 19: + localctx = new TableOptionPasswordContext(this, localctx); + this.enterOuterAlt(localctx, 19); + this.state = 1717; + this.match(MySQLParser.PASSWORD); + this.state = 1719; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1718; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1721; + this.match(MySQLParser.STRING_LITERAL); + break; + + case 20: + localctx = new TableOptionRowFormatContext(this, localctx); + this.enterOuterAlt(localctx, 20); + this.state = 1722; + this.match(MySQLParser.ROW_FORMAT); + this.state = 1724; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1723; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1726; + localctx.rowFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || ((((_la - 307)) & ~0x1f) == 0 && ((1 << (_la - 307)) & ((1 << (MySQLParser.COMPACT - 307)) | (1 << (MySQLParser.COMPRESSED - 307)) | (1 << (MySQLParser.DYNAMIC - 307)))) !== 0) || _la===MySQLParser.FIXED || _la===MySQLParser.REDUNDANT)) { + localctx.rowFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 21: + localctx = new TableOptionRecalculationContext(this, localctx); + this.enterOuterAlt(localctx, 21); + this.state = 1727; + this.match(MySQLParser.STATS_AUTO_RECALC); + this.state = 1729; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1728; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1731; + localctx.extBoolValue = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.ZERO_DECIMAL || _la===MySQLParser.ONE_DECIMAL)) { + localctx.extBoolValue = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 22: + localctx = new TableOptionPersistentContext(this, localctx); + this.enterOuterAlt(localctx, 22); + this.state = 1732; + this.match(MySQLParser.STATS_PERSISTENT); + this.state = 1734; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1733; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1736; + localctx.extBoolValue = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.ZERO_DECIMAL || _la===MySQLParser.ONE_DECIMAL)) { + localctx.extBoolValue = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 23: + localctx = new TableOptionSamplePageContext(this, localctx); + this.enterOuterAlt(localctx, 23); + this.state = 1737; + this.match(MySQLParser.STATS_SAMPLE_PAGES); + this.state = 1739; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1738; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1741; + this.decimalLiteral(); + break; + + case 24: + localctx = new TableOptionTablespaceContext(this, localctx); + this.enterOuterAlt(localctx, 24); + this.state = 1742; + this.match(MySQLParser.TABLESPACE); + this.state = 1743; + this.uid(); + this.state = 1745; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,197,this._ctx); + if(la_===1) { + this.state = 1744; + this.tablespaceStorage(); + + } + break; + + case 25: + localctx = new TableOptionTablespaceContext(this, localctx); + this.enterOuterAlt(localctx, 25); + this.state = 1747; + this.tablespaceStorage(); + break; + + case 26: + localctx = new TableOptionUnionContext(this, localctx); + this.enterOuterAlt(localctx, 26); + this.state = 1748; + this.match(MySQLParser.UNION); + this.state = 1750; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 1749; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 1752; + this.match(MySQLParser.LR_BRACKET); + this.state = 1753; + this.tables(); + this.state = 1754; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TablespaceStorageContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tablespaceStorage; + return this; +} + +TablespaceStorageContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TablespaceStorageContext.prototype.constructor = TablespaceStorageContext; + +TablespaceStorageContext.prototype.STORAGE = function() { + return this.getToken(MySQLParser.STORAGE, 0); +}; + +TablespaceStorageContext.prototype.DISK = function() { + return this.getToken(MySQLParser.DISK, 0); +}; + +TablespaceStorageContext.prototype.MEMORY = function() { + return this.getToken(MySQLParser.MEMORY, 0); +}; + +TablespaceStorageContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +TablespaceStorageContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTablespaceStorage(this); + } +}; + +TablespaceStorageContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTablespaceStorage(this); + } +}; + +TablespaceStorageContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTablespaceStorage(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TablespaceStorageContext = TablespaceStorageContext; + +MySQLParser.prototype.tablespaceStorage = function() { + + var localctx = new TablespaceStorageContext(this, this._ctx, this.state); + this.enterRule(localctx, 94, MySQLParser.RULE_tablespaceStorage); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1758; + this.match(MySQLParser.STORAGE); + this.state = 1759; + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.DISK || _la===MySQLParser.MEMORY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PartitionDefinitionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_partitionDefinitions; + this.count = null; // DecimalLiteralContext + this.subCount = null; // DecimalLiteralContext + return this; +} + +PartitionDefinitionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PartitionDefinitionsContext.prototype.constructor = PartitionDefinitionsContext; + +PartitionDefinitionsContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +PartitionDefinitionsContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.BY); + } else { + return this.getToken(MySQLParser.BY, i); + } +}; + + +PartitionDefinitionsContext.prototype.partitionFunctionDefinition = function() { + return this.getTypedRuleContext(PartitionFunctionDefinitionContext,0); +}; + +PartitionDefinitionsContext.prototype.PARTITIONS = function() { + return this.getToken(MySQLParser.PARTITIONS, 0); +}; + +PartitionDefinitionsContext.prototype.SUBPARTITION = function() { + return this.getToken(MySQLParser.SUBPARTITION, 0); +}; + +PartitionDefinitionsContext.prototype.subpartitionFunctionDefinition = function() { + return this.getTypedRuleContext(SubpartitionFunctionDefinitionContext,0); +}; + +PartitionDefinitionsContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionDefinitionsContext.prototype.partitionDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionDefinitionContext); + } else { + return this.getTypedRuleContext(PartitionDefinitionContext,i); + } +}; + +PartitionDefinitionsContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionDefinitionsContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; + +PartitionDefinitionsContext.prototype.SUBPARTITIONS = function() { + return this.getToken(MySQLParser.SUBPARTITIONS, 0); +}; + +PartitionDefinitionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +PartitionDefinitionsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionDefinitions(this); + } +}; + +PartitionDefinitionsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionDefinitions(this); + } +}; + +PartitionDefinitionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionDefinitions(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PartitionDefinitionsContext = PartitionDefinitionsContext; + +MySQLParser.prototype.partitionDefinitions = function() { + + var localctx = new PartitionDefinitionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 96, MySQLParser.RULE_partitionDefinitions); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1761; + this.match(MySQLParser.PARTITION); + this.state = 1762; + this.match(MySQLParser.BY); + this.state = 1763; + this.partitionFunctionDefinition(); + this.state = 1766; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITIONS) { + this.state = 1764; + this.match(MySQLParser.PARTITIONS); + this.state = 1765; + localctx.count = this.decimalLiteral(); + } + + this.state = 1775; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SUBPARTITION) { + this.state = 1768; + this.match(MySQLParser.SUBPARTITION); + this.state = 1769; + this.match(MySQLParser.BY); + this.state = 1770; + this.subpartitionFunctionDefinition(); + this.state = 1773; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SUBPARTITIONS) { + this.state = 1771; + this.match(MySQLParser.SUBPARTITIONS); + this.state = 1772; + localctx.subCount = this.decimalLiteral(); + } + + } + + this.state = 1788; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,204,this._ctx); + if(la_===1) { + this.state = 1777; + this.match(MySQLParser.LR_BRACKET); + this.state = 1778; + this.partitionDefinition(); + this.state = 1783; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 1779; + this.match(MySQLParser.COMMA); + this.state = 1780; + this.partitionDefinition(); + this.state = 1785; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1786; + this.match(MySQLParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PartitionFunctionDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_partitionFunctionDefinition; + return this; +} + +PartitionFunctionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PartitionFunctionDefinitionContext.prototype.constructor = PartitionFunctionDefinitionContext; + + + +PartitionFunctionDefinitionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function PartitionFunctionKeyContext(parser, ctx) { + PartitionFunctionDefinitionContext.call(this, parser); + this.algType = null; // Token; + PartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionFunctionKeyContext.prototype = Object.create(PartitionFunctionDefinitionContext.prototype); +PartitionFunctionKeyContext.prototype.constructor = PartitionFunctionKeyContext; + +MySQLParser.PartitionFunctionKeyContext = PartitionFunctionKeyContext; + +PartitionFunctionKeyContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +PartitionFunctionKeyContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionFunctionKeyContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +PartitionFunctionKeyContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionFunctionKeyContext.prototype.LINEAR = function() { + return this.getToken(MySQLParser.LINEAR, 0); +}; + +PartitionFunctionKeyContext.prototype.ALGORITHM = function() { + return this.getToken(MySQLParser.ALGORITHM, 0); +}; + +PartitionFunctionKeyContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +PartitionFunctionKeyContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +PartitionFunctionKeyContext.prototype.TWO_DECIMAL = function() { + return this.getToken(MySQLParser.TWO_DECIMAL, 0); +}; +PartitionFunctionKeyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionFunctionKey(this); + } +}; + +PartitionFunctionKeyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionFunctionKey(this); + } +}; + +PartitionFunctionKeyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionFunctionKey(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionFunctionHashContext(parser, ctx) { + PartitionFunctionDefinitionContext.call(this, parser); + PartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionFunctionHashContext.prototype = Object.create(PartitionFunctionDefinitionContext.prototype); +PartitionFunctionHashContext.prototype.constructor = PartitionFunctionHashContext; + +MySQLParser.PartitionFunctionHashContext = PartitionFunctionHashContext; + +PartitionFunctionHashContext.prototype.HASH = function() { + return this.getToken(MySQLParser.HASH, 0); +}; + +PartitionFunctionHashContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionFunctionHashContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +PartitionFunctionHashContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionFunctionHashContext.prototype.LINEAR = function() { + return this.getToken(MySQLParser.LINEAR, 0); +}; +PartitionFunctionHashContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionFunctionHash(this); + } +}; + +PartitionFunctionHashContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionFunctionHash(this); + } +}; + +PartitionFunctionHashContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionFunctionHash(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionFunctionListContext(parser, ctx) { + PartitionFunctionDefinitionContext.call(this, parser); + PartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionFunctionListContext.prototype = Object.create(PartitionFunctionDefinitionContext.prototype); +PartitionFunctionListContext.prototype.constructor = PartitionFunctionListContext; + +MySQLParser.PartitionFunctionListContext = PartitionFunctionListContext; + +PartitionFunctionListContext.prototype.LIST = function() { + return this.getToken(MySQLParser.LIST, 0); +}; + +PartitionFunctionListContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionFunctionListContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +PartitionFunctionListContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionFunctionListContext.prototype.COLUMNS = function() { + return this.getToken(MySQLParser.COLUMNS, 0); +}; + +PartitionFunctionListContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; +PartitionFunctionListContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionFunctionList(this); + } +}; + +PartitionFunctionListContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionFunctionList(this); + } +}; + +PartitionFunctionListContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionFunctionList(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionFunctionRangeContext(parser, ctx) { + PartitionFunctionDefinitionContext.call(this, parser); + PartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionFunctionRangeContext.prototype = Object.create(PartitionFunctionDefinitionContext.prototype); +PartitionFunctionRangeContext.prototype.constructor = PartitionFunctionRangeContext; + +MySQLParser.PartitionFunctionRangeContext = PartitionFunctionRangeContext; + +PartitionFunctionRangeContext.prototype.RANGE = function() { + return this.getToken(MySQLParser.RANGE, 0); +}; + +PartitionFunctionRangeContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionFunctionRangeContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +PartitionFunctionRangeContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionFunctionRangeContext.prototype.COLUMNS = function() { + return this.getToken(MySQLParser.COLUMNS, 0); +}; + +PartitionFunctionRangeContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; +PartitionFunctionRangeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionFunctionRange(this); + } +}; + +PartitionFunctionRangeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionFunctionRange(this); + } +}; + +PartitionFunctionRangeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionFunctionRange(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.PartitionFunctionDefinitionContext = PartitionFunctionDefinitionContext; + +MySQLParser.prototype.partitionFunctionDefinition = function() { + + var localctx = new PartitionFunctionDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 98, MySQLParser.RULE_partitionFunctionDefinition); + var _la = 0; // Token type + try { + this.state = 1835; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,210,this._ctx); + switch(la_) { + case 1: + localctx = new PartitionFunctionHashContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1791; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LINEAR) { + this.state = 1790; + this.match(MySQLParser.LINEAR); + } + + this.state = 1793; + this.match(MySQLParser.HASH); + this.state = 1794; + this.match(MySQLParser.LR_BRACKET); + this.state = 1795; + this.expression(0); + this.state = 1796; + this.match(MySQLParser.RR_BRACKET); + break; + + case 2: + localctx = new PartitionFunctionKeyContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1799; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LINEAR) { + this.state = 1798; + this.match(MySQLParser.LINEAR); + } + + this.state = 1801; + this.match(MySQLParser.KEY); + this.state = 1805; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALGORITHM) { + this.state = 1802; + this.match(MySQLParser.ALGORITHM); + this.state = 1803; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 1804; + localctx.algType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ONE_DECIMAL || _la===MySQLParser.TWO_DECIMAL)) { + localctx.algType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1807; + this.match(MySQLParser.LR_BRACKET); + this.state = 1808; + this.uidList(); + this.state = 1809; + this.match(MySQLParser.RR_BRACKET); + break; + + case 3: + localctx = new PartitionFunctionRangeContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1811; + this.match(MySQLParser.RANGE); + this.state = 1821; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.LR_BRACKET: + this.state = 1812; + this.match(MySQLParser.LR_BRACKET); + this.state = 1813; + this.expression(0); + this.state = 1814; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.COLUMNS: + this.state = 1816; + this.match(MySQLParser.COLUMNS); + this.state = 1817; + this.match(MySQLParser.LR_BRACKET); + this.state = 1818; + this.uidList(); + this.state = 1819; + this.match(MySQLParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 4: + localctx = new PartitionFunctionListContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 1823; + this.match(MySQLParser.LIST); + this.state = 1833; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.LR_BRACKET: + this.state = 1824; + this.match(MySQLParser.LR_BRACKET); + this.state = 1825; + this.expression(0); + this.state = 1826; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.COLUMNS: + this.state = 1828; + this.match(MySQLParser.COLUMNS); + this.state = 1829; + this.match(MySQLParser.LR_BRACKET); + this.state = 1830; + this.uidList(); + this.state = 1831; + this.match(MySQLParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SubpartitionFunctionDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_subpartitionFunctionDefinition; + return this; +} + +SubpartitionFunctionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SubpartitionFunctionDefinitionContext.prototype.constructor = SubpartitionFunctionDefinitionContext; + + + +SubpartitionFunctionDefinitionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SubPartitionFunctionHashContext(parser, ctx) { + SubpartitionFunctionDefinitionContext.call(this, parser); + SubpartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SubPartitionFunctionHashContext.prototype = Object.create(SubpartitionFunctionDefinitionContext.prototype); +SubPartitionFunctionHashContext.prototype.constructor = SubPartitionFunctionHashContext; + +MySQLParser.SubPartitionFunctionHashContext = SubPartitionFunctionHashContext; + +SubPartitionFunctionHashContext.prototype.HASH = function() { + return this.getToken(MySQLParser.HASH, 0); +}; + +SubPartitionFunctionHashContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +SubPartitionFunctionHashContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +SubPartitionFunctionHashContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +SubPartitionFunctionHashContext.prototype.LINEAR = function() { + return this.getToken(MySQLParser.LINEAR, 0); +}; +SubPartitionFunctionHashContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSubPartitionFunctionHash(this); + } +}; + +SubPartitionFunctionHashContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSubPartitionFunctionHash(this); + } +}; + +SubPartitionFunctionHashContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSubPartitionFunctionHash(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SubPartitionFunctionKeyContext(parser, ctx) { + SubpartitionFunctionDefinitionContext.call(this, parser); + this.algType = null; // Token; + SubpartitionFunctionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SubPartitionFunctionKeyContext.prototype = Object.create(SubpartitionFunctionDefinitionContext.prototype); +SubPartitionFunctionKeyContext.prototype.constructor = SubPartitionFunctionKeyContext; + +MySQLParser.SubPartitionFunctionKeyContext = SubPartitionFunctionKeyContext; + +SubPartitionFunctionKeyContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +SubPartitionFunctionKeyContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +SubPartitionFunctionKeyContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +SubPartitionFunctionKeyContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +SubPartitionFunctionKeyContext.prototype.LINEAR = function() { + return this.getToken(MySQLParser.LINEAR, 0); +}; + +SubPartitionFunctionKeyContext.prototype.ALGORITHM = function() { + return this.getToken(MySQLParser.ALGORITHM, 0); +}; + +SubPartitionFunctionKeyContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +SubPartitionFunctionKeyContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +SubPartitionFunctionKeyContext.prototype.TWO_DECIMAL = function() { + return this.getToken(MySQLParser.TWO_DECIMAL, 0); +}; +SubPartitionFunctionKeyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSubPartitionFunctionKey(this); + } +}; + +SubPartitionFunctionKeyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSubPartitionFunctionKey(this); + } +}; + +SubPartitionFunctionKeyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSubPartitionFunctionKey(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.SubpartitionFunctionDefinitionContext = SubpartitionFunctionDefinitionContext; + +MySQLParser.prototype.subpartitionFunctionDefinition = function() { + + var localctx = new SubpartitionFunctionDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 100, MySQLParser.RULE_subpartitionFunctionDefinition); + var _la = 0; // Token type + try { + this.state = 1858; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,214,this._ctx); + switch(la_) { + case 1: + localctx = new SubPartitionFunctionHashContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1838; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LINEAR) { + this.state = 1837; + this.match(MySQLParser.LINEAR); + } + + this.state = 1840; + this.match(MySQLParser.HASH); + this.state = 1841; + this.match(MySQLParser.LR_BRACKET); + this.state = 1842; + this.expression(0); + this.state = 1843; + this.match(MySQLParser.RR_BRACKET); + break; + + case 2: + localctx = new SubPartitionFunctionKeyContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1846; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LINEAR) { + this.state = 1845; + this.match(MySQLParser.LINEAR); + } + + this.state = 1848; + this.match(MySQLParser.KEY); + this.state = 1852; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALGORITHM) { + this.state = 1849; + this.match(MySQLParser.ALGORITHM); + this.state = 1850; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 1851; + localctx.algType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ONE_DECIMAL || _la===MySQLParser.TWO_DECIMAL)) { + localctx.algType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1854; + this.match(MySQLParser.LR_BRACKET); + this.state = 1855; + this.uidList(); + this.state = 1856; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PartitionDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_partitionDefinition; + return this; +} + +PartitionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PartitionDefinitionContext.prototype.constructor = PartitionDefinitionContext; + + + +PartitionDefinitionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function PartitionComparisionContext(parser, ctx) { + PartitionDefinitionContext.call(this, parser); + PartitionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionComparisionContext.prototype = Object.create(PartitionDefinitionContext.prototype); +PartitionComparisionContext.prototype.constructor = PartitionComparisionContext; + +MySQLParser.PartitionComparisionContext = PartitionComparisionContext; + +PartitionComparisionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +PartitionComparisionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +PartitionComparisionContext.prototype.VALUES = function() { + return this.getToken(MySQLParser.VALUES, 0); +}; + +PartitionComparisionContext.prototype.LESS = function() { + return this.getToken(MySQLParser.LESS, 0); +}; + +PartitionComparisionContext.prototype.THAN = function() { + return this.getToken(MySQLParser.THAN, 0); +}; + +PartitionComparisionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionComparisionContext.prototype.partitionDefinerAtom = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionDefinerAtomContext); + } else { + return this.getTypedRuleContext(PartitionDefinerAtomContext,i); + } +}; + +PartitionComparisionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionComparisionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +PartitionComparisionContext.prototype.partitionOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionOptionContext); + } else { + return this.getTypedRuleContext(PartitionOptionContext,i); + } +}; + +PartitionComparisionContext.prototype.subpartitionDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SubpartitionDefinitionContext); + } else { + return this.getTypedRuleContext(SubpartitionDefinitionContext,i); + } +}; +PartitionComparisionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionComparision(this); + } +}; + +PartitionComparisionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionComparision(this); + } +}; + +PartitionComparisionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionComparision(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionListAtomContext(parser, ctx) { + PartitionDefinitionContext.call(this, parser); + PartitionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionListAtomContext.prototype = Object.create(PartitionDefinitionContext.prototype); +PartitionListAtomContext.prototype.constructor = PartitionListAtomContext; + +MySQLParser.PartitionListAtomContext = PartitionListAtomContext; + +PartitionListAtomContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +PartitionListAtomContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +PartitionListAtomContext.prototype.VALUES = function() { + return this.getToken(MySQLParser.VALUES, 0); +}; + +PartitionListAtomContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; + +PartitionListAtomContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionListAtomContext.prototype.partitionDefinerAtom = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionDefinerAtomContext); + } else { + return this.getTypedRuleContext(PartitionDefinerAtomContext,i); + } +}; + +PartitionListAtomContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionListAtomContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +PartitionListAtomContext.prototype.partitionOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionOptionContext); + } else { + return this.getTypedRuleContext(PartitionOptionContext,i); + } +}; + +PartitionListAtomContext.prototype.subpartitionDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SubpartitionDefinitionContext); + } else { + return this.getTypedRuleContext(SubpartitionDefinitionContext,i); + } +}; +PartitionListAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionListAtom(this); + } +}; + +PartitionListAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionListAtom(this); + } +}; + +PartitionListAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionListAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionListVectorContext(parser, ctx) { + PartitionDefinitionContext.call(this, parser); + PartitionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionListVectorContext.prototype = Object.create(PartitionDefinitionContext.prototype); +PartitionListVectorContext.prototype.constructor = PartitionListVectorContext; + +MySQLParser.PartitionListVectorContext = PartitionListVectorContext; + +PartitionListVectorContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +PartitionListVectorContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +PartitionListVectorContext.prototype.VALUES = function() { + return this.getToken(MySQLParser.VALUES, 0); +}; + +PartitionListVectorContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; + +PartitionListVectorContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionListVectorContext.prototype.partitionDefinerVector = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionDefinerVectorContext); + } else { + return this.getTypedRuleContext(PartitionDefinerVectorContext,i); + } +}; + +PartitionListVectorContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionListVectorContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +PartitionListVectorContext.prototype.partitionOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionOptionContext); + } else { + return this.getTypedRuleContext(PartitionOptionContext,i); + } +}; + +PartitionListVectorContext.prototype.subpartitionDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SubpartitionDefinitionContext); + } else { + return this.getTypedRuleContext(SubpartitionDefinitionContext,i); + } +}; +PartitionListVectorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionListVector(this); + } +}; + +PartitionListVectorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionListVector(this); + } +}; + +PartitionListVectorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionListVector(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionSimpleContext(parser, ctx) { + PartitionDefinitionContext.call(this, parser); + PartitionDefinitionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionSimpleContext.prototype = Object.create(PartitionDefinitionContext.prototype); +PartitionSimpleContext.prototype.constructor = PartitionSimpleContext; + +MySQLParser.PartitionSimpleContext = PartitionSimpleContext; + +PartitionSimpleContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +PartitionSimpleContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +PartitionSimpleContext.prototype.partitionOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionOptionContext); + } else { + return this.getTypedRuleContext(PartitionOptionContext,i); + } +}; + +PartitionSimpleContext.prototype.subpartitionDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SubpartitionDefinitionContext); + } else { + return this.getTypedRuleContext(SubpartitionDefinitionContext,i); + } +}; + +PartitionSimpleContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +PartitionSimpleContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionSimple(this); + } +}; + +PartitionSimpleContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionSimple(this); + } +}; + +PartitionSimpleContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionSimple(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.PartitionDefinitionContext = PartitionDefinitionContext; + +MySQLParser.prototype.partitionDefinition = function() { + + var localctx = new PartitionDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 102, MySQLParser.RULE_partitionDefinition); + var _la = 0; // Token type + try { + this.state = 1991; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,233,this._ctx); + switch(la_) { + case 1: + localctx = new PartitionComparisionContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1860; + this.match(MySQLParser.PARTITION); + this.state = 1861; + this.uid(); + this.state = 1862; + this.match(MySQLParser.VALUES); + this.state = 1863; + this.match(MySQLParser.LESS); + this.state = 1864; + this.match(MySQLParser.THAN); + this.state = 1865; + this.match(MySQLParser.LR_BRACKET); + this.state = 1866; + this.partitionDefinerAtom(); + this.state = 1871; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 1867; + this.match(MySQLParser.COMMA); + this.state = 1868; + this.partitionDefinerAtom(); + this.state = 1873; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1874; + this.match(MySQLParser.RR_BRACKET); + this.state = 1878; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.INDEX || _la===MySQLParser.COMMENT || _la===MySQLParser.DATA || _la===MySQLParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (MySQLParser.MAX_ROWS - 428)) | (1 << (MySQLParser.MIN_ROWS - 428)) | (1 << (MySQLParser.NODEGROUP - 428)))) !== 0) || _la===MySQLParser.STORAGE || _la===MySQLParser.TABLESPACE) { + this.state = 1875; + this.partitionOption(); + this.state = 1880; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1889; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SUBPARTITION) { + this.state = 1881; + this.subpartitionDefinition(); + this.state = 1886; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,217,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 1882; + this.match(MySQLParser.COMMA); + this.state = 1883; + this.subpartitionDefinition(); + } + this.state = 1888; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,217,this._ctx); + } + + } + + break; + + case 2: + localctx = new PartitionComparisionContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1891; + this.match(MySQLParser.PARTITION); + this.state = 1892; + this.uid(); + this.state = 1893; + this.match(MySQLParser.VALUES); + this.state = 1894; + this.match(MySQLParser.LESS); + this.state = 1895; + this.match(MySQLParser.THAN); + this.state = 1896; + this.partitionDefinerAtom(); + this.state = 1900; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.INDEX || _la===MySQLParser.COMMENT || _la===MySQLParser.DATA || _la===MySQLParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (MySQLParser.MAX_ROWS - 428)) | (1 << (MySQLParser.MIN_ROWS - 428)) | (1 << (MySQLParser.NODEGROUP - 428)))) !== 0) || _la===MySQLParser.STORAGE || _la===MySQLParser.TABLESPACE) { + this.state = 1897; + this.partitionOption(); + this.state = 1902; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1911; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SUBPARTITION) { + this.state = 1903; + this.subpartitionDefinition(); + this.state = 1908; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,220,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 1904; + this.match(MySQLParser.COMMA); + this.state = 1905; + this.subpartitionDefinition(); + } + this.state = 1910; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,220,this._ctx); + } + + } + + break; + + case 3: + localctx = new PartitionListAtomContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1913; + this.match(MySQLParser.PARTITION); + this.state = 1914; + this.uid(); + this.state = 1915; + this.match(MySQLParser.VALUES); + this.state = 1916; + this.match(MySQLParser.IN); + this.state = 1917; + this.match(MySQLParser.LR_BRACKET); + this.state = 1918; + this.partitionDefinerAtom(); + this.state = 1923; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 1919; + this.match(MySQLParser.COMMA); + this.state = 1920; + this.partitionDefinerAtom(); + this.state = 1925; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1926; + this.match(MySQLParser.RR_BRACKET); + this.state = 1930; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.INDEX || _la===MySQLParser.COMMENT || _la===MySQLParser.DATA || _la===MySQLParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (MySQLParser.MAX_ROWS - 428)) | (1 << (MySQLParser.MIN_ROWS - 428)) | (1 << (MySQLParser.NODEGROUP - 428)))) !== 0) || _la===MySQLParser.STORAGE || _la===MySQLParser.TABLESPACE) { + this.state = 1927; + this.partitionOption(); + this.state = 1932; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1941; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SUBPARTITION) { + this.state = 1933; + this.subpartitionDefinition(); + this.state = 1938; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,224,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 1934; + this.match(MySQLParser.COMMA); + this.state = 1935; + this.subpartitionDefinition(); + } + this.state = 1940; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,224,this._ctx); + } + + } + + break; + + case 4: + localctx = new PartitionListVectorContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 1943; + this.match(MySQLParser.PARTITION); + this.state = 1944; + this.uid(); + this.state = 1945; + this.match(MySQLParser.VALUES); + this.state = 1946; + this.match(MySQLParser.IN); + this.state = 1947; + this.match(MySQLParser.LR_BRACKET); + this.state = 1948; + this.partitionDefinerVector(); + this.state = 1953; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 1949; + this.match(MySQLParser.COMMA); + this.state = 1950; + this.partitionDefinerVector(); + this.state = 1955; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1956; + this.match(MySQLParser.RR_BRACKET); + this.state = 1960; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.INDEX || _la===MySQLParser.COMMENT || _la===MySQLParser.DATA || _la===MySQLParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (MySQLParser.MAX_ROWS - 428)) | (1 << (MySQLParser.MIN_ROWS - 428)) | (1 << (MySQLParser.NODEGROUP - 428)))) !== 0) || _la===MySQLParser.STORAGE || _la===MySQLParser.TABLESPACE) { + this.state = 1957; + this.partitionOption(); + this.state = 1962; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1971; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SUBPARTITION) { + this.state = 1963; + this.subpartitionDefinition(); + this.state = 1968; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,228,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 1964; + this.match(MySQLParser.COMMA); + this.state = 1965; + this.subpartitionDefinition(); + } + this.state = 1970; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,228,this._ctx); + } + + } + + break; + + case 5: + localctx = new PartitionSimpleContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 1973; + this.match(MySQLParser.PARTITION); + this.state = 1974; + this.uid(); + this.state = 1978; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.INDEX || _la===MySQLParser.COMMENT || _la===MySQLParser.DATA || _la===MySQLParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (MySQLParser.MAX_ROWS - 428)) | (1 << (MySQLParser.MIN_ROWS - 428)) | (1 << (MySQLParser.NODEGROUP - 428)))) !== 0) || _la===MySQLParser.STORAGE || _la===MySQLParser.TABLESPACE) { + this.state = 1975; + this.partitionOption(); + this.state = 1980; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1989; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SUBPARTITION) { + this.state = 1981; + this.subpartitionDefinition(); + this.state = 1986; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,231,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 1982; + this.match(MySQLParser.COMMA); + this.state = 1983; + this.subpartitionDefinition(); + } + this.state = 1988; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,231,this._ctx); + } + + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PartitionDefinerAtomContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_partitionDefinerAtom; + return this; +} + +PartitionDefinerAtomContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PartitionDefinerAtomContext.prototype.constructor = PartitionDefinerAtomContext; + +PartitionDefinerAtomContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +PartitionDefinerAtomContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +PartitionDefinerAtomContext.prototype.MAXVALUE = function() { + return this.getToken(MySQLParser.MAXVALUE, 0); +}; + +PartitionDefinerAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionDefinerAtom(this); + } +}; + +PartitionDefinerAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionDefinerAtom(this); + } +}; + +PartitionDefinerAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionDefinerAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PartitionDefinerAtomContext = PartitionDefinerAtomContext; + +MySQLParser.prototype.partitionDefinerAtom = function() { + + var localctx = new PartitionDefinerAtomContext(this, this._ctx, this.state); + this.enterRule(localctx, 104, MySQLParser.RULE_partitionDefinerAtom); + try { + this.state = 1996; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,234,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1993; + this.constant(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1994; + this.expression(0); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1995; + this.match(MySQLParser.MAXVALUE); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PartitionDefinerVectorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_partitionDefinerVector; + return this; +} + +PartitionDefinerVectorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PartitionDefinerVectorContext.prototype.constructor = PartitionDefinerVectorContext; + +PartitionDefinerVectorContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PartitionDefinerVectorContext.prototype.partitionDefinerAtom = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionDefinerAtomContext); + } else { + return this.getTypedRuleContext(PartitionDefinerAtomContext,i); + } +}; + +PartitionDefinerVectorContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PartitionDefinerVectorContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +PartitionDefinerVectorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionDefinerVector(this); + } +}; + +PartitionDefinerVectorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionDefinerVector(this); + } +}; + +PartitionDefinerVectorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionDefinerVector(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PartitionDefinerVectorContext = PartitionDefinerVectorContext; + +MySQLParser.prototype.partitionDefinerVector = function() { + + var localctx = new PartitionDefinerVectorContext(this, this._ctx, this.state); + this.enterRule(localctx, 106, MySQLParser.RULE_partitionDefinerVector); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1998; + this.match(MySQLParser.LR_BRACKET); + this.state = 1999; + this.partitionDefinerAtom(); + this.state = 2002; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2000; + this.match(MySQLParser.COMMA); + this.state = 2001; + this.partitionDefinerAtom(); + this.state = 2004; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.COMMA); + this.state = 2006; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SubpartitionDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_subpartitionDefinition; + return this; +} + +SubpartitionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SubpartitionDefinitionContext.prototype.constructor = SubpartitionDefinitionContext; + +SubpartitionDefinitionContext.prototype.SUBPARTITION = function() { + return this.getToken(MySQLParser.SUBPARTITION, 0); +}; + +SubpartitionDefinitionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SubpartitionDefinitionContext.prototype.partitionOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionOptionContext); + } else { + return this.getTypedRuleContext(PartitionOptionContext,i); + } +}; + +SubpartitionDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSubpartitionDefinition(this); + } +}; + +SubpartitionDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSubpartitionDefinition(this); + } +}; + +SubpartitionDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSubpartitionDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SubpartitionDefinitionContext = SubpartitionDefinitionContext; + +MySQLParser.prototype.subpartitionDefinition = function() { + + var localctx = new SubpartitionDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 108, MySQLParser.RULE_subpartitionDefinition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2008; + this.match(MySQLParser.SUBPARTITION); + this.state = 2009; + this.uid(); + this.state = 2013; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.INDEX || _la===MySQLParser.COMMENT || _la===MySQLParser.DATA || _la===MySQLParser.ENGINE || ((((_la - 428)) & ~0x1f) == 0 && ((1 << (_la - 428)) & ((1 << (MySQLParser.MAX_ROWS - 428)) | (1 << (MySQLParser.MIN_ROWS - 428)) | (1 << (MySQLParser.NODEGROUP - 428)))) !== 0) || _la===MySQLParser.STORAGE || _la===MySQLParser.TABLESPACE) { + this.state = 2010; + this.partitionOption(); + this.state = 2015; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PartitionOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_partitionOption; + return this; +} + +PartitionOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PartitionOptionContext.prototype.constructor = PartitionOptionContext; + + + +PartitionOptionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function PartitionOptionCommentContext(parser, ctx) { + PartitionOptionContext.call(this, parser); + this.comment = null; // Token; + PartitionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionOptionCommentContext.prototype = Object.create(PartitionOptionContext.prototype); +PartitionOptionCommentContext.prototype.constructor = PartitionOptionCommentContext; + +MySQLParser.PartitionOptionCommentContext = PartitionOptionCommentContext; + +PartitionOptionCommentContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +PartitionOptionCommentContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +PartitionOptionCommentContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +PartitionOptionCommentContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionOptionComment(this); + } +}; + +PartitionOptionCommentContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionOptionComment(this); + } +}; + +PartitionOptionCommentContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionOptionComment(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionOptionNodeGroupContext(parser, ctx) { + PartitionOptionContext.call(this, parser); + this.nodegroup = null; // UidContext; + PartitionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionOptionNodeGroupContext.prototype = Object.create(PartitionOptionContext.prototype); +PartitionOptionNodeGroupContext.prototype.constructor = PartitionOptionNodeGroupContext; + +MySQLParser.PartitionOptionNodeGroupContext = PartitionOptionNodeGroupContext; + +PartitionOptionNodeGroupContext.prototype.NODEGROUP = function() { + return this.getToken(MySQLParser.NODEGROUP, 0); +}; + +PartitionOptionNodeGroupContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +PartitionOptionNodeGroupContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +PartitionOptionNodeGroupContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionOptionNodeGroup(this); + } +}; + +PartitionOptionNodeGroupContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionOptionNodeGroup(this); + } +}; + +PartitionOptionNodeGroupContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionOptionNodeGroup(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionOptionIndexDirectoryContext(parser, ctx) { + PartitionOptionContext.call(this, parser); + this.indexDirectory = null; // Token; + PartitionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionOptionIndexDirectoryContext.prototype = Object.create(PartitionOptionContext.prototype); +PartitionOptionIndexDirectoryContext.prototype.constructor = PartitionOptionIndexDirectoryContext; + +MySQLParser.PartitionOptionIndexDirectoryContext = PartitionOptionIndexDirectoryContext; + +PartitionOptionIndexDirectoryContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +PartitionOptionIndexDirectoryContext.prototype.DIRECTORY = function() { + return this.getToken(MySQLParser.DIRECTORY, 0); +}; + +PartitionOptionIndexDirectoryContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +PartitionOptionIndexDirectoryContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +PartitionOptionIndexDirectoryContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionOptionIndexDirectory(this); + } +}; + +PartitionOptionIndexDirectoryContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionOptionIndexDirectory(this); + } +}; + +PartitionOptionIndexDirectoryContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionOptionIndexDirectory(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionOptionMaxRowsContext(parser, ctx) { + PartitionOptionContext.call(this, parser); + this.maxRows = null; // DecimalLiteralContext; + PartitionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionOptionMaxRowsContext.prototype = Object.create(PartitionOptionContext.prototype); +PartitionOptionMaxRowsContext.prototype.constructor = PartitionOptionMaxRowsContext; + +MySQLParser.PartitionOptionMaxRowsContext = PartitionOptionMaxRowsContext; + +PartitionOptionMaxRowsContext.prototype.MAX_ROWS = function() { + return this.getToken(MySQLParser.MAX_ROWS, 0); +}; + +PartitionOptionMaxRowsContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +PartitionOptionMaxRowsContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +PartitionOptionMaxRowsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionOptionMaxRows(this); + } +}; + +PartitionOptionMaxRowsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionOptionMaxRows(this); + } +}; + +PartitionOptionMaxRowsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionOptionMaxRows(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionOptionTablespaceContext(parser, ctx) { + PartitionOptionContext.call(this, parser); + this.tablespace = null; // UidContext; + PartitionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionOptionTablespaceContext.prototype = Object.create(PartitionOptionContext.prototype); +PartitionOptionTablespaceContext.prototype.constructor = PartitionOptionTablespaceContext; + +MySQLParser.PartitionOptionTablespaceContext = PartitionOptionTablespaceContext; + +PartitionOptionTablespaceContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +PartitionOptionTablespaceContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +PartitionOptionTablespaceContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +PartitionOptionTablespaceContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionOptionTablespace(this); + } +}; + +PartitionOptionTablespaceContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionOptionTablespace(this); + } +}; + +PartitionOptionTablespaceContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionOptionTablespace(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionOptionEngineContext(parser, ctx) { + PartitionOptionContext.call(this, parser); + PartitionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionOptionEngineContext.prototype = Object.create(PartitionOptionContext.prototype); +PartitionOptionEngineContext.prototype.constructor = PartitionOptionEngineContext; + +MySQLParser.PartitionOptionEngineContext = PartitionOptionEngineContext; + +PartitionOptionEngineContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +PartitionOptionEngineContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +PartitionOptionEngineContext.prototype.STORAGE = function() { + return this.getToken(MySQLParser.STORAGE, 0); +}; + +PartitionOptionEngineContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +PartitionOptionEngineContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionOptionEngine(this); + } +}; + +PartitionOptionEngineContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionOptionEngine(this); + } +}; + +PartitionOptionEngineContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionOptionEngine(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionOptionMinRowsContext(parser, ctx) { + PartitionOptionContext.call(this, parser); + this.minRows = null; // DecimalLiteralContext; + PartitionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionOptionMinRowsContext.prototype = Object.create(PartitionOptionContext.prototype); +PartitionOptionMinRowsContext.prototype.constructor = PartitionOptionMinRowsContext; + +MySQLParser.PartitionOptionMinRowsContext = PartitionOptionMinRowsContext; + +PartitionOptionMinRowsContext.prototype.MIN_ROWS = function() { + return this.getToken(MySQLParser.MIN_ROWS, 0); +}; + +PartitionOptionMinRowsContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +PartitionOptionMinRowsContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +PartitionOptionMinRowsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionOptionMinRows(this); + } +}; + +PartitionOptionMinRowsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionOptionMinRows(this); + } +}; + +PartitionOptionMinRowsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionOptionMinRows(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PartitionOptionDataDirectoryContext(parser, ctx) { + PartitionOptionContext.call(this, parser); + this.dataDirectory = null; // Token; + PartitionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PartitionOptionDataDirectoryContext.prototype = Object.create(PartitionOptionContext.prototype); +PartitionOptionDataDirectoryContext.prototype.constructor = PartitionOptionDataDirectoryContext; + +MySQLParser.PartitionOptionDataDirectoryContext = PartitionOptionDataDirectoryContext; + +PartitionOptionDataDirectoryContext.prototype.DATA = function() { + return this.getToken(MySQLParser.DATA, 0); +}; + +PartitionOptionDataDirectoryContext.prototype.DIRECTORY = function() { + return this.getToken(MySQLParser.DIRECTORY, 0); +}; + +PartitionOptionDataDirectoryContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +PartitionOptionDataDirectoryContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +PartitionOptionDataDirectoryContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPartitionOptionDataDirectory(this); + } +}; + +PartitionOptionDataDirectoryContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPartitionOptionDataDirectory(this); + } +}; + +PartitionOptionDataDirectoryContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPartitionOptionDataDirectory(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.PartitionOptionContext = PartitionOptionContext; + +MySQLParser.prototype.partitionOption = function() { + + var localctx = new PartitionOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 110, MySQLParser.RULE_partitionOption); + var _la = 0; // Token type + try { + this.state = 2061; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ENGINE: + case MySQLParser.STORAGE: + localctx = new PartitionOptionEngineContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 2017; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.STORAGE) { + this.state = 2016; + this.match(MySQLParser.STORAGE); + } + + this.state = 2019; + this.match(MySQLParser.ENGINE); + this.state = 2021; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2020; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2023; + this.engineName(); + break; + case MySQLParser.COMMENT: + localctx = new PartitionOptionCommentContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 2024; + this.match(MySQLParser.COMMENT); + this.state = 2026; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2025; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2028; + localctx.comment = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.DATA: + localctx = new PartitionOptionDataDirectoryContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 2029; + this.match(MySQLParser.DATA); + this.state = 2030; + this.match(MySQLParser.DIRECTORY); + 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.dataDirectory = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.INDEX: + localctx = new PartitionOptionIndexDirectoryContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 2035; + this.match(MySQLParser.INDEX); + this.state = 2036; + this.match(MySQLParser.DIRECTORY); + this.state = 2038; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2037; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2040; + localctx.indexDirectory = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.MAX_ROWS: + localctx = new PartitionOptionMaxRowsContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 2041; + this.match(MySQLParser.MAX_ROWS); + this.state = 2043; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2042; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2045; + localctx.maxRows = this.decimalLiteral(); + break; + case MySQLParser.MIN_ROWS: + localctx = new PartitionOptionMinRowsContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 2046; + this.match(MySQLParser.MIN_ROWS); + this.state = 2048; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2047; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2050; + localctx.minRows = this.decimalLiteral(); + break; + case MySQLParser.TABLESPACE: + localctx = new PartitionOptionTablespaceContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 2051; + this.match(MySQLParser.TABLESPACE); + this.state = 2053; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2052; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2055; + localctx.tablespace = this.uid(); + break; + case MySQLParser.NODEGROUP: + localctx = new PartitionOptionNodeGroupContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 2056; + this.match(MySQLParser.NODEGROUP); + this.state = 2058; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2057; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2060; + localctx.nodegroup = this.uid(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterDatabaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterDatabase; + return this; +} + +AlterDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterDatabaseContext.prototype.constructor = AlterDatabaseContext; + + + +AlterDatabaseContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function AlterUpgradeNameContext(parser, ctx) { + AlterDatabaseContext.call(this, parser); + this.dbFormat = null; // Token; + AlterDatabaseContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterUpgradeNameContext.prototype = Object.create(AlterDatabaseContext.prototype); +AlterUpgradeNameContext.prototype.constructor = AlterUpgradeNameContext; + +MySQLParser.AlterUpgradeNameContext = AlterUpgradeNameContext; + +AlterUpgradeNameContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterUpgradeNameContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterUpgradeNameContext.prototype.UPGRADE = function() { + return this.getToken(MySQLParser.UPGRADE, 0); +}; + +AlterUpgradeNameContext.prototype.DATA = function() { + return this.getToken(MySQLParser.DATA, 0); +}; + +AlterUpgradeNameContext.prototype.DIRECTORY = function() { + return this.getToken(MySQLParser.DIRECTORY, 0); +}; + +AlterUpgradeNameContext.prototype.NAME = function() { + return this.getToken(MySQLParser.NAME, 0); +}; + +AlterUpgradeNameContext.prototype.DATABASE = function() { + return this.getToken(MySQLParser.DATABASE, 0); +}; + +AlterUpgradeNameContext.prototype.SCHEMA = function() { + return this.getToken(MySQLParser.SCHEMA, 0); +}; +AlterUpgradeNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterUpgradeName(this); + } +}; + +AlterUpgradeNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterUpgradeName(this); + } +}; + +AlterUpgradeNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterUpgradeName(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterSimpleDatabaseContext(parser, ctx) { + AlterDatabaseContext.call(this, parser); + this.dbFormat = null; // Token; + AlterDatabaseContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterSimpleDatabaseContext.prototype = Object.create(AlterDatabaseContext.prototype); +AlterSimpleDatabaseContext.prototype.constructor = AlterSimpleDatabaseContext; + +MySQLParser.AlterSimpleDatabaseContext = AlterSimpleDatabaseContext; + +AlterSimpleDatabaseContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterSimpleDatabaseContext.prototype.DATABASE = function() { + return this.getToken(MySQLParser.DATABASE, 0); +}; + +AlterSimpleDatabaseContext.prototype.SCHEMA = function() { + return this.getToken(MySQLParser.SCHEMA, 0); +}; + +AlterSimpleDatabaseContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterSimpleDatabaseContext.prototype.createDatabaseOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(CreateDatabaseOptionContext); + } else { + return this.getTypedRuleContext(CreateDatabaseOptionContext,i); + } +}; +AlterSimpleDatabaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterSimpleDatabase(this); + } +}; + +AlterSimpleDatabaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterSimpleDatabase(this); + } +}; + +AlterSimpleDatabaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterSimpleDatabase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.AlterDatabaseContext = AlterDatabaseContext; + +MySQLParser.prototype.alterDatabase = function() { + + var localctx = new AlterDatabaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 112, MySQLParser.RULE_alterDatabase); + var _la = 0; // Token type + try { + this.state = 2081; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,249,this._ctx); + switch(la_) { + case 1: + localctx = new AlterSimpleDatabaseContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 2063; + this.match(MySQLParser.ALTER); + this.state = 2064; + localctx.dbFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DATABASE || _la===MySQLParser.SCHEMA)) { + localctx.dbFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2066; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,247,this._ctx); + if(la_===1) { + this.state = 2065; + this.uid(); + + } + this.state = 2069; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2068; + this.createDatabaseOption(); + this.state = 2071; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(((((_la - 22)) & ~0x1f) == 0 && ((1 << (_la - 22)) & ((1 << (MySQLParser.CHARACTER - 22)) | (1 << (MySQLParser.COLLATE - 22)) | (1 << (MySQLParser.DEFAULT - 22)))) !== 0) || _la===MySQLParser.CHARSET); + break; + + case 2: + localctx = new AlterUpgradeNameContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 2073; + this.match(MySQLParser.ALTER); + this.state = 2074; + localctx.dbFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DATABASE || _la===MySQLParser.SCHEMA)) { + localctx.dbFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2075; + this.uid(); + this.state = 2076; + this.match(MySQLParser.UPGRADE); + this.state = 2077; + this.match(MySQLParser.DATA); + this.state = 2078; + this.match(MySQLParser.DIRECTORY); + this.state = 2079; + this.match(MySQLParser.NAME); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterEventContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterEvent; + return this; +} + +AlterEventContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterEventContext.prototype.constructor = AlterEventContext; + +AlterEventContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterEventContext.prototype.EVENT = function() { + return this.getToken(MySQLParser.EVENT, 0); +}; + +AlterEventContext.prototype.fullId = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FullIdContext); + } else { + return this.getTypedRuleContext(FullIdContext,i); + } +}; + +AlterEventContext.prototype.ownerStatement = function() { + return this.getTypedRuleContext(OwnerStatementContext,0); +}; + +AlterEventContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.ON); + } else { + return this.getToken(MySQLParser.ON, i); + } +}; + + +AlterEventContext.prototype.SCHEDULE = function() { + return this.getToken(MySQLParser.SCHEDULE, 0); +}; + +AlterEventContext.prototype.scheduleExpression = function() { + return this.getTypedRuleContext(ScheduleExpressionContext,0); +}; + +AlterEventContext.prototype.COMPLETION = function() { + return this.getToken(MySQLParser.COMPLETION, 0); +}; + +AlterEventContext.prototype.PRESERVE = function() { + return this.getToken(MySQLParser.PRESERVE, 0); +}; + +AlterEventContext.prototype.RENAME = function() { + return this.getToken(MySQLParser.RENAME, 0); +}; + +AlterEventContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +AlterEventContext.prototype.enableType = function() { + return this.getTypedRuleContext(EnableTypeContext,0); +}; + +AlterEventContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +AlterEventContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +AlterEventContext.prototype.DO = function() { + return this.getToken(MySQLParser.DO, 0); +}; + +AlterEventContext.prototype.routineBody = function() { + return this.getTypedRuleContext(RoutineBodyContext,0); +}; + +AlterEventContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +AlterEventContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterEvent(this); + } +}; + +AlterEventContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterEvent(this); + } +}; + +AlterEventContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterEvent(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterEventContext = AlterEventContext; + +MySQLParser.prototype.alterEvent = function() { + + var localctx = new AlterEventContext(this, this._ctx, this.state); + this.enterRule(localctx, 114, MySQLParser.RULE_alterEvent); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2083; + this.match(MySQLParser.ALTER); + this.state = 2085; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFINER) { + this.state = 2084; + this.ownerStatement(); + } + + this.state = 2087; + this.match(MySQLParser.EVENT); + this.state = 2088; + this.fullId(); + this.state = 2092; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,251,this._ctx); + if(la_===1) { + this.state = 2089; + this.match(MySQLParser.ON); + this.state = 2090; + this.match(MySQLParser.SCHEDULE); + this.state = 2091; + this.scheduleExpression(); + + } + this.state = 2100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ON) { + this.state = 2094; + this.match(MySQLParser.ON); + this.state = 2095; + this.match(MySQLParser.COMPLETION); + this.state = 2097; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 2096; + this.match(MySQLParser.NOT); + } + + this.state = 2099; + this.match(MySQLParser.PRESERVE); + } + + this.state = 2105; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,254,this._ctx); + if(la_===1) { + this.state = 2102; + this.match(MySQLParser.RENAME); + this.state = 2103; + this.match(MySQLParser.TO); + this.state = 2104; + this.fullId(); + + } + this.state = 2108; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DISABLE || _la===MySQLParser.ENABLE) { + this.state = 2107; + this.enableType(); + } + + this.state = 2112; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMENT) { + this.state = 2110; + this.match(MySQLParser.COMMENT); + this.state = 2111; + this.match(MySQLParser.STRING_LITERAL); + } + + this.state = 2116; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,257,this._ctx); + if(la_===1) { + this.state = 2114; + this.match(MySQLParser.DO); + this.state = 2115; + this.routineBody(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterFunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterFunction; + return this; +} + +AlterFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterFunctionContext.prototype.constructor = AlterFunctionContext; + +AlterFunctionContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterFunctionContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +AlterFunctionContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +AlterFunctionContext.prototype.routineOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(RoutineOptionContext); + } else { + return this.getTypedRuleContext(RoutineOptionContext,i); + } +}; + +AlterFunctionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterFunction(this); + } +}; + +AlterFunctionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterFunction(this); + } +}; + +AlterFunctionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterFunction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterFunctionContext = AlterFunctionContext; + +MySQLParser.prototype.alterFunction = function() { + + var localctx = new AlterFunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 116, MySQLParser.RULE_alterFunction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2118; + this.match(MySQLParser.ALTER); + this.state = 2119; + this.match(MySQLParser.FUNCTION); + this.state = 2120; + this.fullId(); + this.state = 2124; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.DETERMINISTIC || ((((_la - 100)) & ~0x1f) == 0 && ((1 << (_la - 100)) & ((1 << (MySQLParser.MODIFIES - 100)) | (1 << (MySQLParser.NOT - 100)) | (1 << (MySQLParser.READS - 100)))) !== 0) || _la===MySQLParser.SQL || _la===MySQLParser.COMMENT || _la===MySQLParser.CONTAINS || _la===MySQLParser.LANGUAGE || _la===MySQLParser.NO) { + this.state = 2121; + this.routineOption(); + this.state = 2126; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterInstanceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterInstance; + return this; +} + +AlterInstanceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterInstanceContext.prototype.constructor = AlterInstanceContext; + +AlterInstanceContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterInstanceContext.prototype.INSTANCE = function() { + return this.getToken(MySQLParser.INSTANCE, 0); +}; + +AlterInstanceContext.prototype.ROTATE = function() { + return this.getToken(MySQLParser.ROTATE, 0); +}; + +AlterInstanceContext.prototype.INNODB = function() { + return this.getToken(MySQLParser.INNODB, 0); +}; + +AlterInstanceContext.prototype.MASTER = function() { + return this.getToken(MySQLParser.MASTER, 0); +}; + +AlterInstanceContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +AlterInstanceContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterInstance(this); + } +}; + +AlterInstanceContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterInstance(this); + } +}; + +AlterInstanceContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterInstance(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterInstanceContext = AlterInstanceContext; + +MySQLParser.prototype.alterInstance = function() { + + var localctx = new AlterInstanceContext(this, this._ctx, this.state); + this.enterRule(localctx, 118, MySQLParser.RULE_alterInstance); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2127; + this.match(MySQLParser.ALTER); + this.state = 2128; + this.match(MySQLParser.INSTANCE); + this.state = 2129; + this.match(MySQLParser.ROTATE); + this.state = 2130; + this.match(MySQLParser.INNODB); + this.state = 2131; + this.match(MySQLParser.MASTER); + this.state = 2132; + this.match(MySQLParser.KEY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterLogfileGroupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterLogfileGroup; + return this; +} + +AlterLogfileGroupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterLogfileGroupContext.prototype.constructor = AlterLogfileGroupContext; + +AlterLogfileGroupContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterLogfileGroupContext.prototype.LOGFILE = function() { + return this.getToken(MySQLParser.LOGFILE, 0); +}; + +AlterLogfileGroupContext.prototype.GROUP = function() { + return this.getToken(MySQLParser.GROUP, 0); +}; + +AlterLogfileGroupContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterLogfileGroupContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterLogfileGroupContext.prototype.UNDOFILE = function() { + return this.getToken(MySQLParser.UNDOFILE, 0); +}; + +AlterLogfileGroupContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +AlterLogfileGroupContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +AlterLogfileGroupContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +AlterLogfileGroupContext.prototype.INITIAL_SIZE = function() { + return this.getToken(MySQLParser.INITIAL_SIZE, 0); +}; + +AlterLogfileGroupContext.prototype.fileSizeLiteral = function() { + return this.getTypedRuleContext(FileSizeLiteralContext,0); +}; + +AlterLogfileGroupContext.prototype.WAIT = function() { + return this.getToken(MySQLParser.WAIT, 0); +}; + +AlterLogfileGroupContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +AlterLogfileGroupContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterLogfileGroup(this); + } +}; + +AlterLogfileGroupContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterLogfileGroup(this); + } +}; + +AlterLogfileGroupContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterLogfileGroup(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterLogfileGroupContext = AlterLogfileGroupContext; + +MySQLParser.prototype.alterLogfileGroup = function() { + + var localctx = new AlterLogfileGroupContext(this, this._ctx, this.state); + this.enterRule(localctx, 120, MySQLParser.RULE_alterLogfileGroup); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2134; + this.match(MySQLParser.ALTER); + this.state = 2135; + this.match(MySQLParser.LOGFILE); + this.state = 2136; + this.match(MySQLParser.GROUP); + this.state = 2137; + this.uid(); + this.state = 2138; + this.match(MySQLParser.ADD); + this.state = 2139; + this.match(MySQLParser.UNDOFILE); + this.state = 2140; + this.match(MySQLParser.STRING_LITERAL); + this.state = 2146; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INITIAL_SIZE) { + this.state = 2141; + this.match(MySQLParser.INITIAL_SIZE); + this.state = 2143; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2142; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2145; + this.fileSizeLiteral(); + } + + this.state = 2149; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WAIT) { + this.state = 2148; + this.match(MySQLParser.WAIT); + } + + this.state = 2151; + this.match(MySQLParser.ENGINE); + this.state = 2153; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2152; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2155; + this.engineName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterProcedureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterProcedure; + return this; +} + +AlterProcedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterProcedureContext.prototype.constructor = AlterProcedureContext; + +AlterProcedureContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterProcedureContext.prototype.PROCEDURE = function() { + return this.getToken(MySQLParser.PROCEDURE, 0); +}; + +AlterProcedureContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +AlterProcedureContext.prototype.routineOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(RoutineOptionContext); + } else { + return this.getTypedRuleContext(RoutineOptionContext,i); + } +}; + +AlterProcedureContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterProcedure(this); + } +}; + +AlterProcedureContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterProcedure(this); + } +}; + +AlterProcedureContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterProcedure(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterProcedureContext = AlterProcedureContext; + +MySQLParser.prototype.alterProcedure = function() { + + var localctx = new AlterProcedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 122, MySQLParser.RULE_alterProcedure); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2157; + this.match(MySQLParser.ALTER); + this.state = 2158; + this.match(MySQLParser.PROCEDURE); + this.state = 2159; + this.fullId(); + this.state = 2163; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.DETERMINISTIC || ((((_la - 100)) & ~0x1f) == 0 && ((1 << (_la - 100)) & ((1 << (MySQLParser.MODIFIES - 100)) | (1 << (MySQLParser.NOT - 100)) | (1 << (MySQLParser.READS - 100)))) !== 0) || _la===MySQLParser.SQL || _la===MySQLParser.COMMENT || _la===MySQLParser.CONTAINS || _la===MySQLParser.LANGUAGE || _la===MySQLParser.NO) { + this.state = 2160; + this.routineOption(); + this.state = 2165; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterServerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterServer; + return this; +} + +AlterServerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterServerContext.prototype.constructor = AlterServerContext; + +AlterServerContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterServerContext.prototype.SERVER = function() { + return this.getToken(MySQLParser.SERVER, 0); +}; + +AlterServerContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterServerContext.prototype.OPTIONS = function() { + return this.getToken(MySQLParser.OPTIONS, 0); +}; + +AlterServerContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +AlterServerContext.prototype.serverOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ServerOptionContext); + } else { + return this.getTypedRuleContext(ServerOptionContext,i); + } +}; + +AlterServerContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +AlterServerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +AlterServerContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterServer(this); + } +}; + +AlterServerContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterServer(this); + } +}; + +AlterServerContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterServer(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterServerContext = AlterServerContext; + +MySQLParser.prototype.alterServer = function() { + + var localctx = new AlterServerContext(this, this._ctx, this.state); + this.enterRule(localctx, 124, MySQLParser.RULE_alterServer); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2166; + this.match(MySQLParser.ALTER); + this.state = 2167; + this.match(MySQLParser.SERVER); + this.state = 2168; + this.uid(); + this.state = 2169; + this.match(MySQLParser.OPTIONS); + this.state = 2170; + this.match(MySQLParser.LR_BRACKET); + this.state = 2171; + this.serverOption(); + this.state = 2176; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2172; + this.match(MySQLParser.COMMA); + this.state = 2173; + this.serverOption(); + this.state = 2178; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2179; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterTable; + this.intimeAction = null; // Token + return this; +} + +AlterTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterTableContext.prototype.constructor = AlterTableContext; + +AlterTableContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +AlterTableContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +AlterTableContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +AlterTableContext.prototype.alterSpecification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(AlterSpecificationContext); + } else { + return this.getTypedRuleContext(AlterSpecificationContext,i); + } +}; + +AlterTableContext.prototype.partitionDefinitions = function() { + return this.getTypedRuleContext(PartitionDefinitionsContext,0); +}; + +AlterTableContext.prototype.ONLINE = function() { + return this.getToken(MySQLParser.ONLINE, 0); +}; + +AlterTableContext.prototype.OFFLINE = function() { + return this.getToken(MySQLParser.OFFLINE, 0); +}; + +AlterTableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +AlterTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterTable(this); + } +}; + +AlterTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterTable(this); + } +}; + +AlterTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterTableContext = AlterTableContext; + +MySQLParser.prototype.alterTable = function() { + + var localctx = new AlterTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 126, MySQLParser.RULE_alterTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2181; + this.match(MySQLParser.ALTER); + this.state = 2183; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.OFFLINE || _la===MySQLParser.ONLINE) { + this.state = 2182; + localctx.intimeAction = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.OFFLINE || _la===MySQLParser.ONLINE)) { + localctx.intimeAction = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2186; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 2185; + this.match(MySQLParser.IGNORE); + } + + this.state = 2188; + this.match(MySQLParser.TABLE); + this.state = 2189; + this.tableName(); + this.state = 2198; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,268,this._ctx); + if(la_===1) { + this.state = 2190; + this.alterSpecification(); + this.state = 2195; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2191; + this.match(MySQLParser.COMMA); + this.state = 2192; + this.alterSpecification(); + this.state = 2197; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + this.state = 2201; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 2200; + this.partitionDefinitions(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterTablespaceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterTablespace; + this.objectAction = null; // Token + return this; +} + +AlterTablespaceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterTablespaceContext.prototype.constructor = AlterTablespaceContext; + +AlterTablespaceContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterTablespaceContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +AlterTablespaceContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterTablespaceContext.prototype.DATAFILE = function() { + return this.getToken(MySQLParser.DATAFILE, 0); +}; + +AlterTablespaceContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +AlterTablespaceContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +AlterTablespaceContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +AlterTablespaceContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterTablespaceContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +AlterTablespaceContext.prototype.INITIAL_SIZE = function() { + return this.getToken(MySQLParser.INITIAL_SIZE, 0); +}; + +AlterTablespaceContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +AlterTablespaceContext.prototype.fileSizeLiteral = function() { + return this.getTypedRuleContext(FileSizeLiteralContext,0); +}; + +AlterTablespaceContext.prototype.WAIT = function() { + return this.getToken(MySQLParser.WAIT, 0); +}; + +AlterTablespaceContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterTablespace(this); + } +}; + +AlterTablespaceContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterTablespace(this); + } +}; + +AlterTablespaceContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterTablespace(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterTablespaceContext = AlterTablespaceContext; + +MySQLParser.prototype.alterTablespace = function() { + + var localctx = new AlterTablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 128, MySQLParser.RULE_alterTablespace); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2203; + this.match(MySQLParser.ALTER); + this.state = 2204; + this.match(MySQLParser.TABLESPACE); + this.state = 2205; + this.uid(); + this.state = 2206; + localctx.objectAction = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ADD || _la===MySQLParser.DROP)) { + localctx.objectAction = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2207; + this.match(MySQLParser.DATAFILE); + this.state = 2208; + this.match(MySQLParser.STRING_LITERAL); + this.state = 2212; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INITIAL_SIZE) { + this.state = 2209; + this.match(MySQLParser.INITIAL_SIZE); + this.state = 2210; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 2211; + this.fileSizeLiteral(); + } + + this.state = 2215; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WAIT) { + this.state = 2214; + this.match(MySQLParser.WAIT); + } + + this.state = 2217; + this.match(MySQLParser.ENGINE); + this.state = 2219; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2218; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2221; + this.engineName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterViewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterView; + this.algType = null; // Token + this.secContext = null; // Token + this.checkOpt = null; // Token + return this; +} + +AlterViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterViewContext.prototype.constructor = AlterViewContext; + +AlterViewContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterViewContext.prototype.VIEW = function() { + return this.getToken(MySQLParser.VIEW, 0); +}; + +AlterViewContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +AlterViewContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +AlterViewContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +AlterViewContext.prototype.ALGORITHM = function() { + return this.getToken(MySQLParser.ALGORITHM, 0); +}; + +AlterViewContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +AlterViewContext.prototype.ownerStatement = function() { + return this.getTypedRuleContext(OwnerStatementContext,0); +}; + +AlterViewContext.prototype.SQL = function() { + return this.getToken(MySQLParser.SQL, 0); +}; + +AlterViewContext.prototype.SECURITY = function() { + return this.getToken(MySQLParser.SECURITY, 0); +}; + +AlterViewContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +AlterViewContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterViewContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +AlterViewContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +AlterViewContext.prototype.CHECK = function() { + return this.getToken(MySQLParser.CHECK, 0); +}; + +AlterViewContext.prototype.OPTION = function() { + return this.getToken(MySQLParser.OPTION, 0); +}; + +AlterViewContext.prototype.UNDEFINED = function() { + return this.getToken(MySQLParser.UNDEFINED, 0); +}; + +AlterViewContext.prototype.MERGE = function() { + return this.getToken(MySQLParser.MERGE, 0); +}; + +AlterViewContext.prototype.TEMPTABLE = function() { + return this.getToken(MySQLParser.TEMPTABLE, 0); +}; + +AlterViewContext.prototype.DEFINER = function() { + return this.getToken(MySQLParser.DEFINER, 0); +}; + +AlterViewContext.prototype.INVOKER = function() { + return this.getToken(MySQLParser.INVOKER, 0); +}; + +AlterViewContext.prototype.CASCADED = function() { + return this.getToken(MySQLParser.CASCADED, 0); +}; + +AlterViewContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +AlterViewContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterView(this); + } +}; + +AlterViewContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterView(this); + } +}; + +AlterViewContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterView(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AlterViewContext = AlterViewContext; + +MySQLParser.prototype.alterView = function() { + + var localctx = new AlterViewContext(this, this._ctx, this.state); + this.enterRule(localctx, 130, MySQLParser.RULE_alterView); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2223; + this.match(MySQLParser.ALTER); + this.state = 2227; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALGORITHM) { + this.state = 2224; + this.match(MySQLParser.ALGORITHM); + this.state = 2225; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 2226; + localctx.algType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.MERGE || _la===MySQLParser.TEMPTABLE || _la===MySQLParser.UNDEFINED)) { + localctx.algType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2230; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFINER) { + this.state = 2229; + this.ownerStatement(); + } + + this.state = 2235; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SQL) { + this.state = 2232; + this.match(MySQLParser.SQL); + this.state = 2233; + this.match(MySQLParser.SECURITY); + this.state = 2234; + localctx.secContext = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFINER || _la===MySQLParser.INVOKER)) { + localctx.secContext = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2237; + this.match(MySQLParser.VIEW); + this.state = 2238; + this.fullId(); + this.state = 2243; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LR_BRACKET) { + this.state = 2239; + this.match(MySQLParser.LR_BRACKET); + this.state = 2240; + this.uidList(); + this.state = 2241; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 2245; + this.match(MySQLParser.AS); + this.state = 2246; + this.selectStatement(); + this.state = 2253; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH) { + this.state = 2247; + this.match(MySQLParser.WITH); + this.state = 2249; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CASCADED || _la===MySQLParser.LOCAL) { + this.state = 2248; + localctx.checkOpt = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CASCADED || _la===MySQLParser.LOCAL)) { + localctx.checkOpt = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2251; + this.match(MySQLParser.CHECK); + this.state = 2252; + this.match(MySQLParser.OPTION); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterSpecificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterSpecification; + return this; +} + +AlterSpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterSpecificationContext.prototype.constructor = AlterSpecificationContext; + + + +AlterSpecificationContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function AlterByDisableKeysContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDisableKeysContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDisableKeysContext.prototype.constructor = AlterByDisableKeysContext; + +MySQLParser.AlterByDisableKeysContext = AlterByDisableKeysContext; + +AlterByDisableKeysContext.prototype.DISABLE = function() { + return this.getToken(MySQLParser.DISABLE, 0); +}; + +AlterByDisableKeysContext.prototype.KEYS = function() { + return this.getToken(MySQLParser.KEYS, 0); +}; +AlterByDisableKeysContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDisableKeys(this); + } +}; + +AlterByDisableKeysContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDisableKeys(this); + } +}; + +AlterByDisableKeysContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDisableKeys(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByDefaultCharsetContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDefaultCharsetContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDefaultCharsetContext.prototype.constructor = AlterByDefaultCharsetContext; + +MySQLParser.AlterByDefaultCharsetContext = AlterByDefaultCharsetContext; + +AlterByDefaultCharsetContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +AlterByDefaultCharsetContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +AlterByDefaultCharsetContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +AlterByDefaultCharsetContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +AlterByDefaultCharsetContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +AlterByDefaultCharsetContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +AlterByDefaultCharsetContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; +AlterByDefaultCharsetContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDefaultCharset(this); + } +}; + +AlterByDefaultCharsetContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDefaultCharset(this); + } +}; + +AlterByDefaultCharsetContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDefaultCharset(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByRenameColumnContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.oldColumn = null; // UidContext; + this.newColumn = null; // UidContext; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByRenameColumnContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByRenameColumnContext.prototype.constructor = AlterByRenameColumnContext; + +MySQLParser.AlterByRenameColumnContext = AlterByRenameColumnContext; + +AlterByRenameColumnContext.prototype.RENAME = function() { + return this.getToken(MySQLParser.RENAME, 0); +}; + +AlterByRenameColumnContext.prototype.COLUMN = function() { + return this.getToken(MySQLParser.COLUMN, 0); +}; + +AlterByRenameColumnContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +AlterByRenameColumnContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; +AlterByRenameColumnContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByRenameColumn(this); + } +}; + +AlterByRenameColumnContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByRenameColumn(this); + } +}; + +AlterByRenameColumnContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByRenameColumn(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByConvertCharsetContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByConvertCharsetContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByConvertCharsetContext.prototype.constructor = AlterByConvertCharsetContext; + +MySQLParser.AlterByConvertCharsetContext = AlterByConvertCharsetContext; + +AlterByConvertCharsetContext.prototype.CONVERT = function() { + return this.getToken(MySQLParser.CONVERT, 0); +}; + +AlterByConvertCharsetContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +AlterByConvertCharsetContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +AlterByConvertCharsetContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +AlterByConvertCharsetContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +AlterByConvertCharsetContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +AlterByConvertCharsetContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; +AlterByConvertCharsetContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByConvertCharset(this); + } +}; + +AlterByConvertCharsetContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByConvertCharset(this); + } +}; + +AlterByConvertCharsetContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByConvertCharset(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddPartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddPartitionContext.prototype.constructor = AlterByAddPartitionContext; + +MySQLParser.AlterByAddPartitionContext = AlterByAddPartitionContext; + +AlterByAddPartitionContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddPartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByAddPartitionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +AlterByAddPartitionContext.prototype.partitionDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionDefinitionContext); + } else { + return this.getTypedRuleContext(PartitionDefinitionContext,i); + } +}; + +AlterByAddPartitionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +AlterByAddPartitionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +AlterByAddPartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddPartition(this); + } +}; + +AlterByAddPartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddPartition(this); + } +}; + +AlterByAddPartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddPartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddForeignKeyContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.name = null; // UidContext; + this.indexName = null; // UidContext; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddForeignKeyContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddForeignKeyContext.prototype.constructor = AlterByAddForeignKeyContext; + +MySQLParser.AlterByAddForeignKeyContext = AlterByAddForeignKeyContext; + +AlterByAddForeignKeyContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddForeignKeyContext.prototype.FOREIGN = function() { + return this.getToken(MySQLParser.FOREIGN, 0); +}; + +AlterByAddForeignKeyContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +AlterByAddForeignKeyContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +AlterByAddForeignKeyContext.prototype.referenceDefinition = function() { + return this.getTypedRuleContext(ReferenceDefinitionContext,0); +}; + +AlterByAddForeignKeyContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +AlterByAddForeignKeyContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; +AlterByAddForeignKeyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddForeignKey(this); + } +}; + +AlterByAddForeignKeyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddForeignKey(this); + } +}; + +AlterByAddForeignKeyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddForeignKey(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByRenameIndexContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.indexFormat = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByRenameIndexContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByRenameIndexContext.prototype.constructor = AlterByRenameIndexContext; + +MySQLParser.AlterByRenameIndexContext = AlterByRenameIndexContext; + +AlterByRenameIndexContext.prototype.RENAME = function() { + return this.getToken(MySQLParser.RENAME, 0); +}; + +AlterByRenameIndexContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +AlterByRenameIndexContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +AlterByRenameIndexContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +AlterByRenameIndexContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; +AlterByRenameIndexContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByRenameIndex(this); + } +}; + +AlterByRenameIndexContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByRenameIndex(this); + } +}; + +AlterByRenameIndexContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByRenameIndex(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByRemovePartitioningContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByRemovePartitioningContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByRemovePartitioningContext.prototype.constructor = AlterByRemovePartitioningContext; + +MySQLParser.AlterByRemovePartitioningContext = AlterByRemovePartitioningContext; + +AlterByRemovePartitioningContext.prototype.REMOVE = function() { + return this.getToken(MySQLParser.REMOVE, 0); +}; + +AlterByRemovePartitioningContext.prototype.PARTITIONING = function() { + return this.getToken(MySQLParser.PARTITIONING, 0); +}; +AlterByRemovePartitioningContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByRemovePartitioning(this); + } +}; + +AlterByRemovePartitioningContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByRemovePartitioning(this); + } +}; + +AlterByRemovePartitioningContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByRemovePartitioning(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByRenameContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.renameFormat = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByRenameContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByRenameContext.prototype.constructor = AlterByRenameContext; + +MySQLParser.AlterByRenameContext = AlterByRenameContext; + +AlterByRenameContext.prototype.RENAME = function() { + return this.getToken(MySQLParser.RENAME, 0); +}; + +AlterByRenameContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterByRenameContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +AlterByRenameContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +AlterByRenameContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; +AlterByRenameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByRename(this); + } +}; + +AlterByRenameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByRename(this); + } +}; + +AlterByRenameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByRename(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByOptimizePartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByOptimizePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByOptimizePartitionContext.prototype.constructor = AlterByOptimizePartitionContext; + +MySQLParser.AlterByOptimizePartitionContext = AlterByOptimizePartitionContext; + +AlterByOptimizePartitionContext.prototype.OPTIMIZE = function() { + return this.getToken(MySQLParser.OPTIMIZE, 0); +}; + +AlterByOptimizePartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByOptimizePartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByOptimizePartitionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; +AlterByOptimizePartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByOptimizePartition(this); + } +}; + +AlterByOptimizePartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByOptimizePartition(this); + } +}; + +AlterByOptimizePartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByOptimizePartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByImportTablespaceContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByImportTablespaceContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByImportTablespaceContext.prototype.constructor = AlterByImportTablespaceContext; + +MySQLParser.AlterByImportTablespaceContext = AlterByImportTablespaceContext; + +AlterByImportTablespaceContext.prototype.IMPORT = function() { + return this.getToken(MySQLParser.IMPORT, 0); +}; + +AlterByImportTablespaceContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; +AlterByImportTablespaceContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByImportTablespace(this); + } +}; + +AlterByImportTablespaceContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByImportTablespace(this); + } +}; + +AlterByImportTablespaceContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByImportTablespace(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByCoalescePartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByCoalescePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByCoalescePartitionContext.prototype.constructor = AlterByCoalescePartitionContext; + +MySQLParser.AlterByCoalescePartitionContext = AlterByCoalescePartitionContext; + +AlterByCoalescePartitionContext.prototype.COALESCE = function() { + return this.getToken(MySQLParser.COALESCE, 0); +}; + +AlterByCoalescePartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByCoalescePartitionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; +AlterByCoalescePartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByCoalescePartition(this); + } +}; + +AlterByCoalescePartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByCoalescePartition(this); + } +}; + +AlterByCoalescePartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByCoalescePartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddColumnsContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddColumnsContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddColumnsContext.prototype.constructor = AlterByAddColumnsContext; + +MySQLParser.AlterByAddColumnsContext = AlterByAddColumnsContext; + +AlterByAddColumnsContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddColumnsContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +AlterByAddColumnsContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +AlterByAddColumnsContext.prototype.columnDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ColumnDefinitionContext); + } else { + return this.getTypedRuleContext(ColumnDefinitionContext,i); + } +}; + +AlterByAddColumnsContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +AlterByAddColumnsContext.prototype.COLUMN = function() { + return this.getToken(MySQLParser.COLUMN, 0); +}; + +AlterByAddColumnsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +AlterByAddColumnsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddColumns(this); + } +}; + +AlterByAddColumnsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddColumns(this); + } +}; + +AlterByAddColumnsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddColumns(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAlterIndexVisibilityContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAlterIndexVisibilityContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAlterIndexVisibilityContext.prototype.constructor = AlterByAlterIndexVisibilityContext; + +MySQLParser.AlterByAlterIndexVisibilityContext = AlterByAlterIndexVisibilityContext; + +AlterByAlterIndexVisibilityContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterByAlterIndexVisibilityContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +AlterByAlterIndexVisibilityContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterByAlterIndexVisibilityContext.prototype.VISIBLE = function() { + return this.getToken(MySQLParser.VISIBLE, 0); +}; + +AlterByAlterIndexVisibilityContext.prototype.INVISIBLE = function() { + return this.getToken(MySQLParser.INVISIBLE, 0); +}; +AlterByAlterIndexVisibilityContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAlterIndexVisibility(this); + } +}; + +AlterByAlterIndexVisibilityContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAlterIndexVisibility(this); + } +}; + +AlterByAlterIndexVisibilityContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAlterIndexVisibility(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByDropForeignKeyContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDropForeignKeyContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDropForeignKeyContext.prototype.constructor = AlterByDropForeignKeyContext; + +MySQLParser.AlterByDropForeignKeyContext = AlterByDropForeignKeyContext; + +AlterByDropForeignKeyContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +AlterByDropForeignKeyContext.prototype.FOREIGN = function() { + return this.getToken(MySQLParser.FOREIGN, 0); +}; + +AlterByDropForeignKeyContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +AlterByDropForeignKeyContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +AlterByDropForeignKeyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDropForeignKey(this); + } +}; + +AlterByDropForeignKeyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDropForeignKey(this); + } +}; + +AlterByDropForeignKeyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDropForeignKey(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddCheckTableConstraintContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.name = null; // UidContext; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddCheckTableConstraintContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddCheckTableConstraintContext.prototype.constructor = AlterByAddCheckTableConstraintContext; + +MySQLParser.AlterByAddCheckTableConstraintContext = AlterByAddCheckTableConstraintContext; + +AlterByAddCheckTableConstraintContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddCheckTableConstraintContext.prototype.CHECK = function() { + return this.getToken(MySQLParser.CHECK, 0); +}; + +AlterByAddCheckTableConstraintContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +AlterByAddCheckTableConstraintContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +AlterByAddCheckTableConstraintContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +AlterByAddCheckTableConstraintContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +AlterByAddCheckTableConstraintContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +AlterByAddCheckTableConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddCheckTableConstraint(this); + } +}; + +AlterByAddCheckTableConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddCheckTableConstraint(this); + } +}; + +AlterByAddCheckTableConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddCheckTableConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByRebuildPartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByRebuildPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByRebuildPartitionContext.prototype.constructor = AlterByRebuildPartitionContext; + +MySQLParser.AlterByRebuildPartitionContext = AlterByRebuildPartitionContext; + +AlterByRebuildPartitionContext.prototype.REBUILD = function() { + return this.getToken(MySQLParser.REBUILD, 0); +}; + +AlterByRebuildPartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByRebuildPartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByRebuildPartitionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; +AlterByRebuildPartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByRebuildPartition(this); + } +}; + +AlterByRebuildPartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByRebuildPartition(this); + } +}; + +AlterByRebuildPartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByRebuildPartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByUpgradePartitioningContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByUpgradePartitioningContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByUpgradePartitioningContext.prototype.constructor = AlterByUpgradePartitioningContext; + +MySQLParser.AlterByUpgradePartitioningContext = AlterByUpgradePartitioningContext; + +AlterByUpgradePartitioningContext.prototype.UPGRADE = function() { + return this.getToken(MySQLParser.UPGRADE, 0); +}; + +AlterByUpgradePartitioningContext.prototype.PARTITIONING = function() { + return this.getToken(MySQLParser.PARTITIONING, 0); +}; +AlterByUpgradePartitioningContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByUpgradePartitioning(this); + } +}; + +AlterByUpgradePartitioningContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByUpgradePartitioning(this); + } +}; + +AlterByUpgradePartitioningContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByUpgradePartitioning(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByRepairPartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByRepairPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByRepairPartitionContext.prototype.constructor = AlterByRepairPartitionContext; + +MySQLParser.AlterByRepairPartitionContext = AlterByRepairPartitionContext; + +AlterByRepairPartitionContext.prototype.REPAIR = function() { + return this.getToken(MySQLParser.REPAIR, 0); +}; + +AlterByRepairPartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByRepairPartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByRepairPartitionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; +AlterByRepairPartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByRepairPartition(this); + } +}; + +AlterByRepairPartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByRepairPartition(this); + } +}; + +AlterByRepairPartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByRepairPartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByExchangePartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.validationFormat = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByExchangePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByExchangePartitionContext.prototype.constructor = AlterByExchangePartitionContext; + +MySQLParser.AlterByExchangePartitionContext = AlterByExchangePartitionContext; + +AlterByExchangePartitionContext.prototype.EXCHANGE = function() { + return this.getToken(MySQLParser.EXCHANGE, 0); +}; + +AlterByExchangePartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByExchangePartitionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterByExchangePartitionContext.prototype.WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.WITH); + } else { + return this.getToken(MySQLParser.WITH, i); + } +}; + + +AlterByExchangePartitionContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +AlterByExchangePartitionContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +AlterByExchangePartitionContext.prototype.VALIDATION = function() { + return this.getToken(MySQLParser.VALIDATION, 0); +}; + +AlterByExchangePartitionContext.prototype.WITHOUT = function() { + return this.getToken(MySQLParser.WITHOUT, 0); +}; +AlterByExchangePartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByExchangePartition(this); + } +}; + +AlterByExchangePartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByExchangePartition(this); + } +}; + +AlterByExchangePartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByExchangePartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddIndexContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.indexFormat = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddIndexContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddIndexContext.prototype.constructor = AlterByAddIndexContext; + +MySQLParser.AlterByAddIndexContext = AlterByAddIndexContext; + +AlterByAddIndexContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddIndexContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +AlterByAddIndexContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +AlterByAddIndexContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +AlterByAddIndexContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterByAddIndexContext.prototype.indexType = function() { + return this.getTypedRuleContext(IndexTypeContext,0); +}; + +AlterByAddIndexContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; +AlterByAddIndexContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddIndex(this); + } +}; + +AlterByAddIndexContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddIndex(this); + } +}; + +AlterByAddIndexContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddIndex(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByDropColumnContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDropColumnContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDropColumnContext.prototype.constructor = AlterByDropColumnContext; + +MySQLParser.AlterByDropColumnContext = AlterByDropColumnContext; + +AlterByDropColumnContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +AlterByDropColumnContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterByDropColumnContext.prototype.COLUMN = function() { + return this.getToken(MySQLParser.COLUMN, 0); +}; + +AlterByDropColumnContext.prototype.RESTRICT = function() { + return this.getToken(MySQLParser.RESTRICT, 0); +}; +AlterByDropColumnContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDropColumn(this); + } +}; + +AlterByDropColumnContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDropColumn(this); + } +}; + +AlterByDropColumnContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDropColumn(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByImportPartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByImportPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByImportPartitionContext.prototype.constructor = AlterByImportPartitionContext; + +MySQLParser.AlterByImportPartitionContext = AlterByImportPartitionContext; + +AlterByImportPartitionContext.prototype.IMPORT = function() { + return this.getToken(MySQLParser.IMPORT, 0); +}; + +AlterByImportPartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByImportPartitionContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +AlterByImportPartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByImportPartitionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; +AlterByImportPartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByImportPartition(this); + } +}; + +AlterByImportPartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByImportPartition(this); + } +}; + +AlterByImportPartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByImportPartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByChangeDefaultContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByChangeDefaultContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByChangeDefaultContext.prototype.constructor = AlterByChangeDefaultContext; + +MySQLParser.AlterByChangeDefaultContext = AlterByChangeDefaultContext; + +AlterByChangeDefaultContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterByChangeDefaultContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterByChangeDefaultContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +AlterByChangeDefaultContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +AlterByChangeDefaultContext.prototype.defaultValue = function() { + return this.getTypedRuleContext(DefaultValueContext,0); +}; + +AlterByChangeDefaultContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +AlterByChangeDefaultContext.prototype.COLUMN = function() { + return this.getToken(MySQLParser.COLUMN, 0); +}; +AlterByChangeDefaultContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByChangeDefault(this); + } +}; + +AlterByChangeDefaultContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByChangeDefault(this); + } +}; + +AlterByChangeDefaultContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByChangeDefault(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByForceContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByForceContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByForceContext.prototype.constructor = AlterByForceContext; + +MySQLParser.AlterByForceContext = AlterByForceContext; + +AlterByForceContext.prototype.FORCE = function() { + return this.getToken(MySQLParser.FORCE, 0); +}; +AlterByForceContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByForce(this); + } +}; + +AlterByForceContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByForce(this); + } +}; + +AlterByForceContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByForce(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByDropPartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDropPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDropPartitionContext.prototype.constructor = AlterByDropPartitionContext; + +MySQLParser.AlterByDropPartitionContext = AlterByDropPartitionContext; + +AlterByDropPartitionContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +AlterByDropPartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByDropPartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; +AlterByDropPartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDropPartition(this); + } +}; + +AlterByDropPartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDropPartition(this); + } +}; + +AlterByDropPartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDropPartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddSpecialIndexContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.keyType = null; // Token; + this.indexFormat = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddSpecialIndexContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddSpecialIndexContext.prototype.constructor = AlterByAddSpecialIndexContext; + +MySQLParser.AlterByAddSpecialIndexContext = AlterByAddSpecialIndexContext; + +AlterByAddSpecialIndexContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddSpecialIndexContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +AlterByAddSpecialIndexContext.prototype.FULLTEXT = function() { + return this.getToken(MySQLParser.FULLTEXT, 0); +}; + +AlterByAddSpecialIndexContext.prototype.SPATIAL = function() { + return this.getToken(MySQLParser.SPATIAL, 0); +}; + +AlterByAddSpecialIndexContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterByAddSpecialIndexContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; + +AlterByAddSpecialIndexContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +AlterByAddSpecialIndexContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; +AlterByAddSpecialIndexContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddSpecialIndex(this); + } +}; + +AlterByAddSpecialIndexContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddSpecialIndex(this); + } +}; + +AlterByAddSpecialIndexContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddSpecialIndex(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByModifyColumnContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByModifyColumnContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByModifyColumnContext.prototype.constructor = AlterByModifyColumnContext; + +MySQLParser.AlterByModifyColumnContext = AlterByModifyColumnContext; + +AlterByModifyColumnContext.prototype.MODIFY = function() { + return this.getToken(MySQLParser.MODIFY, 0); +}; + +AlterByModifyColumnContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +AlterByModifyColumnContext.prototype.columnDefinition = function() { + return this.getTypedRuleContext(ColumnDefinitionContext,0); +}; + +AlterByModifyColumnContext.prototype.COLUMN = function() { + return this.getToken(MySQLParser.COLUMN, 0); +}; + +AlterByModifyColumnContext.prototype.FIRST = function() { + return this.getToken(MySQLParser.FIRST, 0); +}; + +AlterByModifyColumnContext.prototype.AFTER = function() { + return this.getToken(MySQLParser.AFTER, 0); +}; +AlterByModifyColumnContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByModifyColumn(this); + } +}; + +AlterByModifyColumnContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByModifyColumn(this); + } +}; + +AlterByModifyColumnContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByModifyColumn(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByTableOptionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByTableOptionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByTableOptionContext.prototype.constructor = AlterByTableOptionContext; + +MySQLParser.AlterByTableOptionContext = AlterByTableOptionContext; + +AlterByTableOptionContext.prototype.tableOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableOptionContext); + } else { + return this.getTypedRuleContext(TableOptionContext,i); + } +}; + +AlterByTableOptionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +AlterByTableOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByTableOption(this); + } +}; + +AlterByTableOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByTableOption(this); + } +}; + +AlterByTableOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByTableOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByDropPrimaryKeyContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDropPrimaryKeyContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDropPrimaryKeyContext.prototype.constructor = AlterByDropPrimaryKeyContext; + +MySQLParser.AlterByDropPrimaryKeyContext = AlterByDropPrimaryKeyContext; + +AlterByDropPrimaryKeyContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +AlterByDropPrimaryKeyContext.prototype.PRIMARY = function() { + return this.getToken(MySQLParser.PRIMARY, 0); +}; + +AlterByDropPrimaryKeyContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; +AlterByDropPrimaryKeyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDropPrimaryKey(this); + } +}; + +AlterByDropPrimaryKeyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDropPrimaryKey(this); + } +}; + +AlterByDropPrimaryKeyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDropPrimaryKey(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByLockContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.lockType = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByLockContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByLockContext.prototype.constructor = AlterByLockContext; + +MySQLParser.AlterByLockContext = AlterByLockContext; + +AlterByLockContext.prototype.LOCK = function() { + return this.getToken(MySQLParser.LOCK, 0); +}; + +AlterByLockContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +AlterByLockContext.prototype.NONE = function() { + return this.getToken(MySQLParser.NONE, 0); +}; + +AlterByLockContext.prototype.SHARED = function() { + return this.getToken(MySQLParser.SHARED, 0); +}; + +AlterByLockContext.prototype.EXCLUSIVE = function() { + return this.getToken(MySQLParser.EXCLUSIVE, 0); +}; + +AlterByLockContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +AlterByLockContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByLock(this); + } +}; + +AlterByLockContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByLock(this); + } +}; + +AlterByLockContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByLock(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByDiscardPartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDiscardPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDiscardPartitionContext.prototype.constructor = AlterByDiscardPartitionContext; + +MySQLParser.AlterByDiscardPartitionContext = AlterByDiscardPartitionContext; + +AlterByDiscardPartitionContext.prototype.DISCARD = function() { + return this.getToken(MySQLParser.DISCARD, 0); +}; + +AlterByDiscardPartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByDiscardPartitionContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +AlterByDiscardPartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByDiscardPartitionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; +AlterByDiscardPartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDiscardPartition(this); + } +}; + +AlterByDiscardPartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDiscardPartition(this); + } +}; + +AlterByDiscardPartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDiscardPartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByDiscardTablespaceContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDiscardTablespaceContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDiscardTablespaceContext.prototype.constructor = AlterByDiscardTablespaceContext; + +MySQLParser.AlterByDiscardTablespaceContext = AlterByDiscardTablespaceContext; + +AlterByDiscardTablespaceContext.prototype.DISCARD = function() { + return this.getToken(MySQLParser.DISCARD, 0); +}; + +AlterByDiscardTablespaceContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; +AlterByDiscardTablespaceContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDiscardTablespace(this); + } +}; + +AlterByDiscardTablespaceContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDiscardTablespace(this); + } +}; + +AlterByDiscardTablespaceContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDiscardTablespace(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByValidateContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.validationFormat = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByValidateContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByValidateContext.prototype.constructor = AlterByValidateContext; + +MySQLParser.AlterByValidateContext = AlterByValidateContext; + +AlterByValidateContext.prototype.VALIDATION = function() { + return this.getToken(MySQLParser.VALIDATION, 0); +}; + +AlterByValidateContext.prototype.WITHOUT = function() { + return this.getToken(MySQLParser.WITHOUT, 0); +}; + +AlterByValidateContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; +AlterByValidateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByValidate(this); + } +}; + +AlterByValidateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByValidate(this); + } +}; + +AlterByValidateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByValidate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddPrimaryKeyContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.name = null; // UidContext; + this.index = null; // UidContext; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddPrimaryKeyContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddPrimaryKeyContext.prototype.constructor = AlterByAddPrimaryKeyContext; + +MySQLParser.AlterByAddPrimaryKeyContext = AlterByAddPrimaryKeyContext; + +AlterByAddPrimaryKeyContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddPrimaryKeyContext.prototype.PRIMARY = function() { + return this.getToken(MySQLParser.PRIMARY, 0); +}; + +AlterByAddPrimaryKeyContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +AlterByAddPrimaryKeyContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +AlterByAddPrimaryKeyContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +AlterByAddPrimaryKeyContext.prototype.indexType = function() { + return this.getTypedRuleContext(IndexTypeContext,0); +}; + +AlterByAddPrimaryKeyContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; + +AlterByAddPrimaryKeyContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; +AlterByAddPrimaryKeyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddPrimaryKey(this); + } +}; + +AlterByAddPrimaryKeyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddPrimaryKey(this); + } +}; + +AlterByAddPrimaryKeyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddPrimaryKey(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByCheckPartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByCheckPartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByCheckPartitionContext.prototype.constructor = AlterByCheckPartitionContext; + +MySQLParser.AlterByCheckPartitionContext = AlterByCheckPartitionContext; + +AlterByCheckPartitionContext.prototype.CHECK = function() { + return this.getToken(MySQLParser.CHECK, 0); +}; + +AlterByCheckPartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByCheckPartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByCheckPartitionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; +AlterByCheckPartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByCheckPartition(this); + } +}; + +AlterByCheckPartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByCheckPartition(this); + } +}; + +AlterByCheckPartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByCheckPartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByEnableKeysContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByEnableKeysContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByEnableKeysContext.prototype.constructor = AlterByEnableKeysContext; + +MySQLParser.AlterByEnableKeysContext = AlterByEnableKeysContext; + +AlterByEnableKeysContext.prototype.ENABLE = function() { + return this.getToken(MySQLParser.ENABLE, 0); +}; + +AlterByEnableKeysContext.prototype.KEYS = function() { + return this.getToken(MySQLParser.KEYS, 0); +}; +AlterByEnableKeysContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByEnableKeys(this); + } +}; + +AlterByEnableKeysContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByEnableKeys(this); + } +}; + +AlterByEnableKeysContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByEnableKeys(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByReorganizePartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByReorganizePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByReorganizePartitionContext.prototype.constructor = AlterByReorganizePartitionContext; + +MySQLParser.AlterByReorganizePartitionContext = AlterByReorganizePartitionContext; + +AlterByReorganizePartitionContext.prototype.REORGANIZE = function() { + return this.getToken(MySQLParser.REORGANIZE, 0); +}; + +AlterByReorganizePartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByReorganizePartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByReorganizePartitionContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +AlterByReorganizePartitionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +AlterByReorganizePartitionContext.prototype.partitionDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PartitionDefinitionContext); + } else { + return this.getTypedRuleContext(PartitionDefinitionContext,i); + } +}; + +AlterByReorganizePartitionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +AlterByReorganizePartitionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +AlterByReorganizePartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByReorganizePartition(this); + } +}; + +AlterByReorganizePartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByReorganizePartition(this); + } +}; + +AlterByReorganizePartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByReorganizePartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterBySetAlgorithmContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.algType = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterBySetAlgorithmContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterBySetAlgorithmContext.prototype.constructor = AlterBySetAlgorithmContext; + +MySQLParser.AlterBySetAlgorithmContext = AlterBySetAlgorithmContext; + +AlterBySetAlgorithmContext.prototype.ALGORITHM = function() { + return this.getToken(MySQLParser.ALGORITHM, 0); +}; + +AlterBySetAlgorithmContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +AlterBySetAlgorithmContext.prototype.INPLACE = function() { + return this.getToken(MySQLParser.INPLACE, 0); +}; + +AlterBySetAlgorithmContext.prototype.COPY = function() { + return this.getToken(MySQLParser.COPY, 0); +}; + +AlterBySetAlgorithmContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; +AlterBySetAlgorithmContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterBySetAlgorithm(this); + } +}; + +AlterBySetAlgorithmContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterBySetAlgorithm(this); + } +}; + +AlterBySetAlgorithmContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterBySetAlgorithm(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAnalyzePartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAnalyzePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAnalyzePartitionContext.prototype.constructor = AlterByAnalyzePartitionContext; + +MySQLParser.AlterByAnalyzePartitionContext = AlterByAnalyzePartitionContext; + +AlterByAnalyzePartitionContext.prototype.ANALYZE = function() { + return this.getToken(MySQLParser.ANALYZE, 0); +}; + +AlterByAnalyzePartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByAnalyzePartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByAnalyzePartitionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; +AlterByAnalyzePartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAnalyzePartition(this); + } +}; + +AlterByAnalyzePartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAnalyzePartition(this); + } +}; + +AlterByAnalyzePartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAnalyzePartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByChangeColumnContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.oldColumn = null; // UidContext; + this.newColumn = null; // UidContext; + this.afterColumn = null; // UidContext; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByChangeColumnContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByChangeColumnContext.prototype.constructor = AlterByChangeColumnContext; + +MySQLParser.AlterByChangeColumnContext = AlterByChangeColumnContext; + +AlterByChangeColumnContext.prototype.CHANGE = function() { + return this.getToken(MySQLParser.CHANGE, 0); +}; + +AlterByChangeColumnContext.prototype.columnDefinition = function() { + return this.getTypedRuleContext(ColumnDefinitionContext,0); +}; + +AlterByChangeColumnContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +AlterByChangeColumnContext.prototype.COLUMN = function() { + return this.getToken(MySQLParser.COLUMN, 0); +}; + +AlterByChangeColumnContext.prototype.FIRST = function() { + return this.getToken(MySQLParser.FIRST, 0); +}; + +AlterByChangeColumnContext.prototype.AFTER = function() { + return this.getToken(MySQLParser.AFTER, 0); +}; +AlterByChangeColumnContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByChangeColumn(this); + } +}; + +AlterByChangeColumnContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByChangeColumn(this); + } +}; + +AlterByChangeColumnContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByChangeColumn(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddUniqueKeyContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.name = null; // UidContext; + this.indexFormat = null; // Token; + this.indexName = null; // UidContext; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddUniqueKeyContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddUniqueKeyContext.prototype.constructor = AlterByAddUniqueKeyContext; + +MySQLParser.AlterByAddUniqueKeyContext = AlterByAddUniqueKeyContext; + +AlterByAddUniqueKeyContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddUniqueKeyContext.prototype.UNIQUE = function() { + return this.getToken(MySQLParser.UNIQUE, 0); +}; + +AlterByAddUniqueKeyContext.prototype.indexColumnNames = function() { + return this.getTypedRuleContext(IndexColumnNamesContext,0); +}; + +AlterByAddUniqueKeyContext.prototype.CONSTRAINT = function() { + return this.getToken(MySQLParser.CONSTRAINT, 0); +}; + +AlterByAddUniqueKeyContext.prototype.indexType = function() { + return this.getTypedRuleContext(IndexTypeContext,0); +}; + +AlterByAddUniqueKeyContext.prototype.indexOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexOptionContext); + } else { + return this.getTypedRuleContext(IndexOptionContext,i); + } +}; + +AlterByAddUniqueKeyContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +AlterByAddUniqueKeyContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +AlterByAddUniqueKeyContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; +AlterByAddUniqueKeyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddUniqueKey(this); + } +}; + +AlterByAddUniqueKeyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddUniqueKey(this); + } +}; + +AlterByAddUniqueKeyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddUniqueKey(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByTruncatePartitionContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByTruncatePartitionContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByTruncatePartitionContext.prototype.constructor = AlterByTruncatePartitionContext; + +MySQLParser.AlterByTruncatePartitionContext = AlterByTruncatePartitionContext; + +AlterByTruncatePartitionContext.prototype.TRUNCATE = function() { + return this.getToken(MySQLParser.TRUNCATE, 0); +}; + +AlterByTruncatePartitionContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AlterByTruncatePartitionContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AlterByTruncatePartitionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; +AlterByTruncatePartitionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByTruncatePartition(this); + } +}; + +AlterByTruncatePartitionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByTruncatePartition(this); + } +}; + +AlterByTruncatePartitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByTruncatePartition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByDropIndexContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + this.indexFormat = null; // Token; + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByDropIndexContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByDropIndexContext.prototype.constructor = AlterByDropIndexContext; + +MySQLParser.AlterByDropIndexContext = AlterByDropIndexContext; + +AlterByDropIndexContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +AlterByDropIndexContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterByDropIndexContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +AlterByDropIndexContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; +AlterByDropIndexContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByDropIndex(this); + } +}; + +AlterByDropIndexContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByDropIndex(this); + } +}; + +AlterByDropIndexContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByDropIndex(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByAddColumnContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByAddColumnContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByAddColumnContext.prototype.constructor = AlterByAddColumnContext; + +MySQLParser.AlterByAddColumnContext = AlterByAddColumnContext; + +AlterByAddColumnContext.prototype.ADD = function() { + return this.getToken(MySQLParser.ADD, 0); +}; + +AlterByAddColumnContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +AlterByAddColumnContext.prototype.columnDefinition = function() { + return this.getTypedRuleContext(ColumnDefinitionContext,0); +}; + +AlterByAddColumnContext.prototype.COLUMN = function() { + return this.getToken(MySQLParser.COLUMN, 0); +}; + +AlterByAddColumnContext.prototype.FIRST = function() { + return this.getToken(MySQLParser.FIRST, 0); +}; + +AlterByAddColumnContext.prototype.AFTER = function() { + return this.getToken(MySQLParser.AFTER, 0); +}; +AlterByAddColumnContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByAddColumn(this); + } +}; + +AlterByAddColumnContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByAddColumn(this); + } +}; + +AlterByAddColumnContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByAddColumn(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterByOrderContext(parser, ctx) { + AlterSpecificationContext.call(this, parser); + AlterSpecificationContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterByOrderContext.prototype = Object.create(AlterSpecificationContext.prototype); +AlterByOrderContext.prototype.constructor = AlterByOrderContext; + +MySQLParser.AlterByOrderContext = AlterByOrderContext; + +AlterByOrderContext.prototype.ORDER = function() { + return this.getToken(MySQLParser.ORDER, 0); +}; + +AlterByOrderContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +AlterByOrderContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; +AlterByOrderContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterByOrder(this); + } +}; + +AlterByOrderContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterByOrder(this); + } +}; + +AlterByOrderContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterByOrder(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.AlterSpecificationContext = AlterSpecificationContext; + +MySQLParser.prototype.alterSpecification = function() { + + var localctx = new AlterSpecificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 132, MySQLParser.RULE_alterSpecification); + var _la = 0; // Token type + try { + this.state = 2618; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,333,this._ctx); + switch(la_) { + case 1: + localctx = new AlterByTableOptionContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 2255; + this.tableOption(); + this.state = 2262; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,280,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2257; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMA) { + this.state = 2256; + this.match(MySQLParser.COMMA); + } + + this.state = 2259; + this.tableOption(); + } + this.state = 2264; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,280,this._ctx); + } + + break; + + case 2: + localctx = new AlterByAddColumnContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 2265; + this.match(MySQLParser.ADD); + this.state = 2267; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLUMN) { + this.state = 2266; + this.match(MySQLParser.COLUMN); + } + + this.state = 2269; + this.uid(); + this.state = 2270; + this.columnDefinition(); + this.state = 2274; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySQLParser.FIRST: + this.state = 2271; + this.match(MySQLParser.FIRST); + break; + case MySQLParser.AFTER: + this.state = 2272; + this.match(MySQLParser.AFTER); + this.state = 2273; + this.uid(); + break; + case MySQLParser.EOF: + case MySQLParser.ALTER: + case MySQLParser.ANALYZE: + case MySQLParser.CALL: + case MySQLParser.CHANGE: + case MySQLParser.CHECK: + case MySQLParser.CREATE: + case MySQLParser.DELETE: + case MySQLParser.DESC: + case MySQLParser.DESCRIBE: + case MySQLParser.DROP: + case MySQLParser.EXPLAIN: + case MySQLParser.GET: + case MySQLParser.GRANT: + case MySQLParser.INSERT: + case MySQLParser.KILL: + case MySQLParser.LOAD: + case MySQLParser.LOCK: + case MySQLParser.OPTIMIZE: + case MySQLParser.PARTITION: + case MySQLParser.PURGE: + case MySQLParser.RELEASE: + case MySQLParser.RENAME: + case MySQLParser.REPLACE: + case MySQLParser.RESIGNAL: + case MySQLParser.REVOKE: + case MySQLParser.SELECT: + case MySQLParser.SET: + case MySQLParser.SHOW: + case MySQLParser.SIGNAL: + case MySQLParser.UNLOCK: + case MySQLParser.UPDATE: + case MySQLParser.USE: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.CACHE: + case MySQLParser.CHECKSUM: + case MySQLParser.COMMIT: + case MySQLParser.DEALLOCATE: + case MySQLParser.DO: + case MySQLParser.FLUSH: + case MySQLParser.HANDLER: + case MySQLParser.HELP: + case MySQLParser.INSTALL: + case MySQLParser.PREPARE: + case MySQLParser.REPAIR: + case MySQLParser.RESET: + case MySQLParser.ROLLBACK: + case MySQLParser.SAVEPOINT: + case MySQLParser.START: + case MySQLParser.STOP: + case MySQLParser.TRUNCATE: + case MySQLParser.UNINSTALL: + case MySQLParser.XA: + case MySQLParser.EXECUTE: + case MySQLParser.SHUTDOWN: + case MySQLParser.MINUSMINUS: + case MySQLParser.LR_BRACKET: + case MySQLParser.COMMA: + case MySQLParser.SEMI: + break; + default: + break; + } + break; + + case 3: + localctx = new AlterByAddColumnsContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 2276; + this.match(MySQLParser.ADD); + this.state = 2278; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLUMN) { + this.state = 2277; + this.match(MySQLParser.COLUMN); + } + + this.state = 2280; + this.match(MySQLParser.LR_BRACKET); + this.state = 2281; + this.uid(); + this.state = 2282; + this.columnDefinition(); + this.state = 2289; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2283; + this.match(MySQLParser.COMMA); + this.state = 2284; + this.uid(); + this.state = 2285; + this.columnDefinition(); + this.state = 2291; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2292; + this.match(MySQLParser.RR_BRACKET); + break; + + case 4: + localctx = new AlterByAddIndexContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 2294; + this.match(MySQLParser.ADD); + this.state = 2295; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2297; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2296; + this.uid(); + } + + this.state = 2300; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 2299; + this.indexType(); + } + + this.state = 2302; + this.indexColumnNames(); + this.state = 2306; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 2303; + this.indexOption(); + this.state = 2308; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 5: + localctx = new AlterByAddPrimaryKeyContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 2309; + this.match(MySQLParser.ADD); + this.state = 2314; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 2310; + this.match(MySQLParser.CONSTRAINT); + this.state = 2312; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2311; + localctx.name = this.uid(); + } + + } + + this.state = 2316; + this.match(MySQLParser.PRIMARY); + this.state = 2317; + this.match(MySQLParser.KEY); + this.state = 2319; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2318; + localctx.index = this.uid(); + } + + this.state = 2322; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 2321; + this.indexType(); + } + + this.state = 2324; + this.indexColumnNames(); + this.state = 2328; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 2325; + this.indexOption(); + this.state = 2330; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 6: + localctx = new AlterByAddUniqueKeyContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 2331; + this.match(MySQLParser.ADD); + this.state = 2336; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 2332; + this.match(MySQLParser.CONSTRAINT); + this.state = 2334; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2333; + localctx.name = this.uid(); + } + + } + + this.state = 2338; + this.match(MySQLParser.UNIQUE); + this.state = 2340; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INDEX || _la===MySQLParser.KEY) { + this.state = 2339; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2343; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2342; + localctx.indexName = this.uid(); + } + + this.state = 2346; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 2345; + this.indexType(); + } + + this.state = 2348; + this.indexColumnNames(); + this.state = 2352; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 2349; + this.indexOption(); + this.state = 2354; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 7: + localctx = new AlterByAddSpecialIndexContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 2355; + this.match(MySQLParser.ADD); + this.state = 2356; + localctx.keyType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FULLTEXT || _la===MySQLParser.SPATIAL)) { + localctx.keyType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2358; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INDEX || _la===MySQLParser.KEY) { + this.state = 2357; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2361; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2360; + this.uid(); + } + + this.state = 2363; + this.indexColumnNames(); + this.state = 2367; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.USING || _la===MySQLParser.WITH || _la===MySQLParser.COMMENT || _la===MySQLParser.INVISIBLE || _la===MySQLParser.KEY_BLOCK_SIZE || _la===MySQLParser.VISIBLE) { + this.state = 2364; + this.indexOption(); + this.state = 2369; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 8: + localctx = new AlterByAddForeignKeyContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 2370; + this.match(MySQLParser.ADD); + this.state = 2375; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 2371; + this.match(MySQLParser.CONSTRAINT); + this.state = 2373; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2372; + localctx.name = this.uid(); + } + + } + + this.state = 2377; + this.match(MySQLParser.FOREIGN); + this.state = 2378; + this.match(MySQLParser.KEY); + this.state = 2380; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2379; + localctx.indexName = this.uid(); + } + + this.state = 2382; + this.indexColumnNames(); + this.state = 2383; + this.referenceDefinition(); + break; + + case 9: + localctx = new AlterByAddCheckTableConstraintContext(this, localctx); + this.enterOuterAlt(localctx, 9); + this.state = 2385; + this.match(MySQLParser.ADD); + this.state = 2390; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONSTRAINT) { + this.state = 2386; + this.match(MySQLParser.CONSTRAINT); + this.state = 2388; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2387; + localctx.name = this.uid(); + } + + } + + this.state = 2392; + this.match(MySQLParser.CHECK); + this.state = 2393; + this.match(MySQLParser.LR_BRACKET); + this.state = 2394; + this.expression(0); + this.state = 2395; + this.match(MySQLParser.RR_BRACKET); + break; + + case 10: + localctx = new AlterBySetAlgorithmContext(this, localctx); + this.enterOuterAlt(localctx, 10); + this.state = 2397; + this.match(MySQLParser.ALGORITHM); + this.state = 2399; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2398; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2401; + localctx.algType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.COPY || _la===MySQLParser.INPLACE)) { + localctx.algType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 11: + localctx = new AlterByChangeDefaultContext(this, localctx); + this.enterOuterAlt(localctx, 11); + this.state = 2402; + this.match(MySQLParser.ALTER); + this.state = 2404; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLUMN) { + this.state = 2403; + this.match(MySQLParser.COLUMN); + } + + this.state = 2406; + this.uid(); + this.state = 2412; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SET: + this.state = 2407; + this.match(MySQLParser.SET); + this.state = 2408; + this.match(MySQLParser.DEFAULT); + this.state = 2409; + this.defaultValue(); + break; + case MySQLParser.DROP: + this.state = 2410; + this.match(MySQLParser.DROP); + this.state = 2411; + this.match(MySQLParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 12: + localctx = new AlterByChangeColumnContext(this, localctx); + this.enterOuterAlt(localctx, 12); + this.state = 2414; + this.match(MySQLParser.CHANGE); + this.state = 2416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLUMN) { + this.state = 2415; + this.match(MySQLParser.COLUMN); + } + + this.state = 2418; + localctx.oldColumn = this.uid(); + this.state = 2419; + localctx.newColumn = this.uid(); + this.state = 2420; + this.columnDefinition(); + this.state = 2424; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySQLParser.FIRST: + this.state = 2421; + this.match(MySQLParser.FIRST); + break; + case MySQLParser.AFTER: + this.state = 2422; + this.match(MySQLParser.AFTER); + this.state = 2423; + localctx.afterColumn = this.uid(); + break; + case MySQLParser.EOF: + case MySQLParser.ALTER: + case MySQLParser.ANALYZE: + case MySQLParser.CALL: + case MySQLParser.CHANGE: + case MySQLParser.CHECK: + case MySQLParser.CREATE: + case MySQLParser.DELETE: + case MySQLParser.DESC: + case MySQLParser.DESCRIBE: + case MySQLParser.DROP: + case MySQLParser.EXPLAIN: + case MySQLParser.GET: + case MySQLParser.GRANT: + case MySQLParser.INSERT: + case MySQLParser.KILL: + case MySQLParser.LOAD: + case MySQLParser.LOCK: + case MySQLParser.OPTIMIZE: + case MySQLParser.PARTITION: + case MySQLParser.PURGE: + case MySQLParser.RELEASE: + case MySQLParser.RENAME: + case MySQLParser.REPLACE: + case MySQLParser.RESIGNAL: + case MySQLParser.REVOKE: + case MySQLParser.SELECT: + case MySQLParser.SET: + case MySQLParser.SHOW: + case MySQLParser.SIGNAL: + case MySQLParser.UNLOCK: + case MySQLParser.UPDATE: + case MySQLParser.USE: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.CACHE: + case MySQLParser.CHECKSUM: + case MySQLParser.COMMIT: + case MySQLParser.DEALLOCATE: + case MySQLParser.DO: + case MySQLParser.FLUSH: + case MySQLParser.HANDLER: + case MySQLParser.HELP: + case MySQLParser.INSTALL: + case MySQLParser.PREPARE: + case MySQLParser.REPAIR: + case MySQLParser.RESET: + case MySQLParser.ROLLBACK: + case MySQLParser.SAVEPOINT: + case MySQLParser.START: + case MySQLParser.STOP: + case MySQLParser.TRUNCATE: + case MySQLParser.UNINSTALL: + case MySQLParser.XA: + case MySQLParser.EXECUTE: + case MySQLParser.SHUTDOWN: + case MySQLParser.MINUSMINUS: + case MySQLParser.LR_BRACKET: + case MySQLParser.COMMA: + case MySQLParser.SEMI: + break; + default: + break; + } + break; + + case 13: + localctx = new AlterByRenameColumnContext(this, localctx); + this.enterOuterAlt(localctx, 13); + this.state = 2426; + this.match(MySQLParser.RENAME); + this.state = 2427; + this.match(MySQLParser.COLUMN); + this.state = 2428; + localctx.oldColumn = this.uid(); + this.state = 2429; + this.match(MySQLParser.TO); + this.state = 2430; + localctx.newColumn = this.uid(); + break; + + case 14: + localctx = new AlterByLockContext(this, localctx); + this.enterOuterAlt(localctx, 14); + this.state = 2432; + this.match(MySQLParser.LOCK); + this.state = 2434; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2433; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2436; + localctx.lockType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.EXCLUSIVE || _la===MySQLParser.NONE || _la===MySQLParser.SHARED)) { + localctx.lockType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 15: + localctx = new AlterByModifyColumnContext(this, localctx); + this.enterOuterAlt(localctx, 15); + this.state = 2437; + this.match(MySQLParser.MODIFY); + this.state = 2439; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLUMN) { + this.state = 2438; + this.match(MySQLParser.COLUMN); + } + + this.state = 2441; + this.uid(); + this.state = 2442; + this.columnDefinition(); + this.state = 2446; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySQLParser.FIRST: + this.state = 2443; + this.match(MySQLParser.FIRST); + break; + case MySQLParser.AFTER: + this.state = 2444; + this.match(MySQLParser.AFTER); + this.state = 2445; + this.uid(); + break; + case MySQLParser.EOF: + case MySQLParser.ALTER: + case MySQLParser.ANALYZE: + case MySQLParser.CALL: + case MySQLParser.CHANGE: + case MySQLParser.CHECK: + case MySQLParser.CREATE: + case MySQLParser.DELETE: + case MySQLParser.DESC: + case MySQLParser.DESCRIBE: + case MySQLParser.DROP: + case MySQLParser.EXPLAIN: + case MySQLParser.GET: + case MySQLParser.GRANT: + case MySQLParser.INSERT: + case MySQLParser.KILL: + case MySQLParser.LOAD: + case MySQLParser.LOCK: + case MySQLParser.OPTIMIZE: + case MySQLParser.PARTITION: + case MySQLParser.PURGE: + case MySQLParser.RELEASE: + case MySQLParser.RENAME: + case MySQLParser.REPLACE: + case MySQLParser.RESIGNAL: + case MySQLParser.REVOKE: + case MySQLParser.SELECT: + case MySQLParser.SET: + case MySQLParser.SHOW: + case MySQLParser.SIGNAL: + case MySQLParser.UNLOCK: + case MySQLParser.UPDATE: + case MySQLParser.USE: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.CACHE: + case MySQLParser.CHECKSUM: + case MySQLParser.COMMIT: + case MySQLParser.DEALLOCATE: + case MySQLParser.DO: + case MySQLParser.FLUSH: + case MySQLParser.HANDLER: + case MySQLParser.HELP: + case MySQLParser.INSTALL: + case MySQLParser.PREPARE: + case MySQLParser.REPAIR: + case MySQLParser.RESET: + case MySQLParser.ROLLBACK: + case MySQLParser.SAVEPOINT: + case MySQLParser.START: + case MySQLParser.STOP: + case MySQLParser.TRUNCATE: + case MySQLParser.UNINSTALL: + case MySQLParser.XA: + case MySQLParser.EXECUTE: + case MySQLParser.SHUTDOWN: + case MySQLParser.MINUSMINUS: + case MySQLParser.LR_BRACKET: + case MySQLParser.COMMA: + case MySQLParser.SEMI: + break; + default: + break; + } + break; + + case 16: + localctx = new AlterByDropColumnContext(this, localctx); + this.enterOuterAlt(localctx, 16); + this.state = 2448; + this.match(MySQLParser.DROP); + this.state = 2450; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLUMN) { + this.state = 2449; + this.match(MySQLParser.COLUMN); + } + + this.state = 2452; + this.uid(); + this.state = 2454; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.RESTRICT) { + this.state = 2453; + this.match(MySQLParser.RESTRICT); + } + + break; + + case 17: + localctx = new AlterByDropPrimaryKeyContext(this, localctx); + this.enterOuterAlt(localctx, 17); + this.state = 2456; + this.match(MySQLParser.DROP); + this.state = 2457; + this.match(MySQLParser.PRIMARY); + this.state = 2458; + this.match(MySQLParser.KEY); + break; + + case 18: + localctx = new AlterByRenameIndexContext(this, localctx); + this.enterOuterAlt(localctx, 18); + this.state = 2459; + this.match(MySQLParser.RENAME); + this.state = 2460; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2461; + this.uid(); + this.state = 2462; + this.match(MySQLParser.TO); + this.state = 2463; + this.uid(); + break; + + case 19: + localctx = new AlterByAlterIndexVisibilityContext(this, localctx); + this.enterOuterAlt(localctx, 19); + this.state = 2465; + this.match(MySQLParser.ALTER); + this.state = 2466; + this.match(MySQLParser.INDEX); + this.state = 2467; + this.uid(); + this.state = 2468; + _la = this._input.LA(1); + if(!(_la===MySQLParser.INVISIBLE || _la===MySQLParser.VISIBLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 20: + localctx = new AlterByDropIndexContext(this, localctx); + this.enterOuterAlt(localctx, 20); + this.state = 2470; + this.match(MySQLParser.DROP); + this.state = 2471; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2472; + this.uid(); + break; + + case 21: + localctx = new AlterByDropForeignKeyContext(this, localctx); + this.enterOuterAlt(localctx, 21); + this.state = 2473; + this.match(MySQLParser.DROP); + this.state = 2474; + this.match(MySQLParser.FOREIGN); + this.state = 2475; + this.match(MySQLParser.KEY); + this.state = 2476; + this.uid(); + break; + + case 22: + localctx = new AlterByDisableKeysContext(this, localctx); + this.enterOuterAlt(localctx, 22); + this.state = 2477; + this.match(MySQLParser.DISABLE); + this.state = 2478; + this.match(MySQLParser.KEYS); + break; + + case 23: + localctx = new AlterByEnableKeysContext(this, localctx); + this.enterOuterAlt(localctx, 23); + this.state = 2479; + this.match(MySQLParser.ENABLE); + this.state = 2480; + this.match(MySQLParser.KEYS); + break; + + case 24: + localctx = new AlterByRenameContext(this, localctx); + this.enterOuterAlt(localctx, 24); + this.state = 2481; + this.match(MySQLParser.RENAME); + this.state = 2483; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS || _la===MySQLParser.TO) { + this.state = 2482; + localctx.renameFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.AS || _la===MySQLParser.TO)) { + localctx.renameFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2487; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,318,this._ctx); + switch(la_) { + case 1: + this.state = 2485; + this.uid(); + break; + + case 2: + this.state = 2486; + this.fullId(); + break; + + } + break; + + case 25: + localctx = new AlterByOrderContext(this, localctx); + this.enterOuterAlt(localctx, 25); + this.state = 2489; + this.match(MySQLParser.ORDER); + this.state = 2490; + this.match(MySQLParser.BY); + this.state = 2491; + this.uidList(); + break; + + case 26: + localctx = new AlterByConvertCharsetContext(this, localctx); + this.enterOuterAlt(localctx, 26); + this.state = 2492; + this.match(MySQLParser.CONVERT); + this.state = 2493; + this.match(MySQLParser.TO); + this.state = 2494; + this.match(MySQLParser.CHARACTER); + this.state = 2495; + this.match(MySQLParser.SET); + this.state = 2496; + this.charsetName(); + this.state = 2499; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLLATE) { + this.state = 2497; + this.match(MySQLParser.COLLATE); + this.state = 2498; + this.collationName(); + } + + break; + + case 27: + localctx = new AlterByDefaultCharsetContext(this, localctx); + this.enterOuterAlt(localctx, 27); + this.state = 2502; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFAULT) { + this.state = 2501; + this.match(MySQLParser.DEFAULT); + } + + this.state = 2504; + this.match(MySQLParser.CHARACTER); + this.state = 2505; + this.match(MySQLParser.SET); + this.state = 2506; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 2507; + this.charsetName(); + this.state = 2511; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLLATE) { + this.state = 2508; + this.match(MySQLParser.COLLATE); + this.state = 2509; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 2510; + this.collationName(); + } + + break; + + case 28: + localctx = new AlterByDiscardTablespaceContext(this, localctx); + this.enterOuterAlt(localctx, 28); + this.state = 2513; + this.match(MySQLParser.DISCARD); + this.state = 2514; + this.match(MySQLParser.TABLESPACE); + break; + + case 29: + localctx = new AlterByImportTablespaceContext(this, localctx); + this.enterOuterAlt(localctx, 29); + this.state = 2515; + this.match(MySQLParser.IMPORT); + this.state = 2516; + this.match(MySQLParser.TABLESPACE); + break; + + case 30: + localctx = new AlterByForceContext(this, localctx); + this.enterOuterAlt(localctx, 30); + this.state = 2517; + this.match(MySQLParser.FORCE); + break; + + case 31: + localctx = new AlterByValidateContext(this, localctx); + this.enterOuterAlt(localctx, 31); + this.state = 2518; + localctx.validationFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.WITH || _la===MySQLParser.WITHOUT)) { + localctx.validationFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2519; + this.match(MySQLParser.VALIDATION); + break; + + case 32: + localctx = new AlterByAddPartitionContext(this, localctx); + this.enterOuterAlt(localctx, 32); + this.state = 2520; + this.match(MySQLParser.ADD); + this.state = 2521; + this.match(MySQLParser.PARTITION); + this.state = 2522; + this.match(MySQLParser.LR_BRACKET); + this.state = 2523; + this.partitionDefinition(); + this.state = 2528; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2524; + this.match(MySQLParser.COMMA); + this.state = 2525; + this.partitionDefinition(); + this.state = 2530; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2531; + this.match(MySQLParser.RR_BRACKET); + break; + + case 33: + localctx = new AlterByDropPartitionContext(this, localctx); + this.enterOuterAlt(localctx, 33); + this.state = 2533; + this.match(MySQLParser.DROP); + this.state = 2534; + this.match(MySQLParser.PARTITION); + this.state = 2535; + this.uidList(); + break; + + case 34: + localctx = new AlterByDiscardPartitionContext(this, localctx); + this.enterOuterAlt(localctx, 34); + this.state = 2536; + this.match(MySQLParser.DISCARD); + this.state = 2537; + this.match(MySQLParser.PARTITION); + this.state = 2540; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 2538; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 2539; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2542; + this.match(MySQLParser.TABLESPACE); + break; + + case 35: + localctx = new AlterByImportPartitionContext(this, localctx); + this.enterOuterAlt(localctx, 35); + this.state = 2543; + this.match(MySQLParser.IMPORT); + this.state = 2544; + this.match(MySQLParser.PARTITION); + this.state = 2547; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 2545; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 2546; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2549; + this.match(MySQLParser.TABLESPACE); + break; + + case 36: + localctx = new AlterByTruncatePartitionContext(this, localctx); + this.enterOuterAlt(localctx, 36); + this.state = 2550; + this.match(MySQLParser.TRUNCATE); + this.state = 2551; + this.match(MySQLParser.PARTITION); + this.state = 2554; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 2552; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 2553; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 37: + localctx = new AlterByCoalescePartitionContext(this, localctx); + this.enterOuterAlt(localctx, 37); + this.state = 2556; + this.match(MySQLParser.COALESCE); + this.state = 2557; + this.match(MySQLParser.PARTITION); + this.state = 2558; + this.decimalLiteral(); + break; + + case 38: + localctx = new AlterByReorganizePartitionContext(this, localctx); + this.enterOuterAlt(localctx, 38); + this.state = 2559; + this.match(MySQLParser.REORGANIZE); + this.state = 2560; + this.match(MySQLParser.PARTITION); + this.state = 2561; + this.uidList(); + this.state = 2562; + this.match(MySQLParser.INTO); + this.state = 2563; + this.match(MySQLParser.LR_BRACKET); + this.state = 2564; + this.partitionDefinition(); + this.state = 2569; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2565; + this.match(MySQLParser.COMMA); + this.state = 2566; + this.partitionDefinition(); + this.state = 2571; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2572; + this.match(MySQLParser.RR_BRACKET); + break; + + case 39: + localctx = new AlterByExchangePartitionContext(this, localctx); + this.enterOuterAlt(localctx, 39); + this.state = 2574; + this.match(MySQLParser.EXCHANGE); + this.state = 2575; + this.match(MySQLParser.PARTITION); + this.state = 2576; + this.uid(); + this.state = 2577; + this.match(MySQLParser.WITH); + this.state = 2578; + this.match(MySQLParser.TABLE); + this.state = 2579; + this.tableName(); + this.state = 2582; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH || _la===MySQLParser.WITHOUT) { + this.state = 2580; + localctx.validationFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.WITH || _la===MySQLParser.WITHOUT)) { + localctx.validationFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2581; + this.match(MySQLParser.VALIDATION); + } + + break; + + case 40: + localctx = new AlterByAnalyzePartitionContext(this, localctx); + this.enterOuterAlt(localctx, 40); + this.state = 2584; + this.match(MySQLParser.ANALYZE); + this.state = 2585; + this.match(MySQLParser.PARTITION); + this.state = 2588; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 2586; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 2587; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 41: + localctx = new AlterByCheckPartitionContext(this, localctx); + this.enterOuterAlt(localctx, 41); + this.state = 2590; + this.match(MySQLParser.CHECK); + this.state = 2591; + this.match(MySQLParser.PARTITION); + this.state = 2594; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 2592; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 2593; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 42: + localctx = new AlterByOptimizePartitionContext(this, localctx); + this.enterOuterAlt(localctx, 42); + this.state = 2596; + this.match(MySQLParser.OPTIMIZE); + this.state = 2597; + this.match(MySQLParser.PARTITION); + this.state = 2600; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 2598; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 2599; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 43: + localctx = new AlterByRebuildPartitionContext(this, localctx); + this.enterOuterAlt(localctx, 43); + this.state = 2602; + this.match(MySQLParser.REBUILD); + this.state = 2603; + this.match(MySQLParser.PARTITION); + this.state = 2606; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 2604; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 2605; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 44: + localctx = new AlterByRepairPartitionContext(this, localctx); + this.enterOuterAlt(localctx, 44); + this.state = 2608; + this.match(MySQLParser.REPAIR); + this.state = 2609; + this.match(MySQLParser.PARTITION); + this.state = 2612; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 2610; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 2611; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 45: + localctx = new AlterByRemovePartitioningContext(this, localctx); + this.enterOuterAlt(localctx, 45); + this.state = 2614; + this.match(MySQLParser.REMOVE); + this.state = 2615; + this.match(MySQLParser.PARTITIONING); + break; + + case 46: + localctx = new AlterByUpgradePartitioningContext(this, localctx); + this.enterOuterAlt(localctx, 46); + this.state = 2616; + this.match(MySQLParser.UPGRADE); + this.state = 2617; + this.match(MySQLParser.PARTITIONING); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropDatabaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropDatabase; + this.dbFormat = null; // Token + return this; +} + +DropDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropDatabaseContext.prototype.constructor = DropDatabaseContext; + +DropDatabaseContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropDatabaseContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropDatabaseContext.prototype.DATABASE = function() { + return this.getToken(MySQLParser.DATABASE, 0); +}; + +DropDatabaseContext.prototype.SCHEMA = function() { + return this.getToken(MySQLParser.SCHEMA, 0); +}; + +DropDatabaseContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropDatabaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropDatabase(this); + } +}; + +DropDatabaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropDatabase(this); + } +}; + +DropDatabaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropDatabase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropDatabaseContext = DropDatabaseContext; + +MySQLParser.prototype.dropDatabase = function() { + + var localctx = new DropDatabaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 134, MySQLParser.RULE_dropDatabase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2620; + this.match(MySQLParser.DROP); + this.state = 2621; + localctx.dbFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DATABASE || _la===MySQLParser.SCHEMA)) { + localctx.dbFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2623; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 2622; + this.ifExists(); + } + + this.state = 2625; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropEventContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropEvent; + return this; +} + +DropEventContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropEventContext.prototype.constructor = DropEventContext; + +DropEventContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropEventContext.prototype.EVENT = function() { + return this.getToken(MySQLParser.EVENT, 0); +}; + +DropEventContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +DropEventContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropEventContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropEvent(this); + } +}; + +DropEventContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropEvent(this); + } +}; + +DropEventContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropEvent(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropEventContext = DropEventContext; + +MySQLParser.prototype.dropEvent = function() { + + var localctx = new DropEventContext(this, this._ctx, this.state); + this.enterRule(localctx, 136, MySQLParser.RULE_dropEvent); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2627; + this.match(MySQLParser.DROP); + this.state = 2628; + this.match(MySQLParser.EVENT); + this.state = 2630; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 2629; + this.ifExists(); + } + + this.state = 2632; + this.fullId(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropIndexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropIndex; + this.intimeAction = null; // Token + this.algType = null; // Token + this.lockType = null; // Token + return this; +} + +DropIndexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropIndexContext.prototype.constructor = DropIndexContext; + +DropIndexContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropIndexContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +DropIndexContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropIndexContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +DropIndexContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +DropIndexContext.prototype.ALGORITHM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.ALGORITHM); + } else { + return this.getToken(MySQLParser.ALGORITHM, i); + } +}; + + +DropIndexContext.prototype.LOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LOCK); + } else { + return this.getToken(MySQLParser.LOCK, i); + } +}; + + +DropIndexContext.prototype.ONLINE = function() { + return this.getToken(MySQLParser.ONLINE, 0); +}; + +DropIndexContext.prototype.OFFLINE = function() { + return this.getToken(MySQLParser.OFFLINE, 0); +}; + +DropIndexContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.DEFAULT); + } else { + return this.getToken(MySQLParser.DEFAULT, i); + } +}; + + +DropIndexContext.prototype.INPLACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.INPLACE); + } else { + return this.getToken(MySQLParser.INPLACE, i); + } +}; + + +DropIndexContext.prototype.COPY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COPY); + } else { + return this.getToken(MySQLParser.COPY, i); + } +}; + + +DropIndexContext.prototype.NONE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.NONE); + } else { + return this.getToken(MySQLParser.NONE, i); + } +}; + + +DropIndexContext.prototype.SHARED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.SHARED); + } else { + return this.getToken(MySQLParser.SHARED, i); + } +}; + + +DropIndexContext.prototype.EXCLUSIVE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EXCLUSIVE); + } else { + return this.getToken(MySQLParser.EXCLUSIVE, i); + } +}; + + +DropIndexContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +DropIndexContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropIndex(this); + } +}; + +DropIndexContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropIndex(this); + } +}; + +DropIndexContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropIndex(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropIndexContext = DropIndexContext; + +MySQLParser.prototype.dropIndex = function() { + + var localctx = new DropIndexContext(this, this._ctx, this.state); + this.enterRule(localctx, 138, MySQLParser.RULE_dropIndex); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2634; + this.match(MySQLParser.DROP); + this.state = 2635; + this.match(MySQLParser.INDEX); + this.state = 2637; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,336,this._ctx); + if(la_===1) { + this.state = 2636; + localctx.intimeAction = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.OFFLINE || _la===MySQLParser.ONLINE)) { + localctx.intimeAction = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 2639; + this.uid(); + this.state = 2640; + this.match(MySQLParser.ON); + this.state = 2641; + this.tableName(); + this.state = 2654; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,340,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2652; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ALGORITHM: + this.state = 2642; + this.match(MySQLParser.ALGORITHM); + this.state = 2644; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2643; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2646; + localctx.algType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.COPY || _la===MySQLParser.INPLACE)) { + localctx.algType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.LOCK: + this.state = 2647; + this.match(MySQLParser.LOCK); + this.state = 2649; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2648; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2651; + localctx.lockType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DEFAULT || _la===MySQLParser.EXCLUSIVE || _la===MySQLParser.NONE || _la===MySQLParser.SHARED)) { + localctx.lockType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 2656; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,340,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropLogfileGroupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropLogfileGroup; + return this; +} + +DropLogfileGroupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropLogfileGroupContext.prototype.constructor = DropLogfileGroupContext; + +DropLogfileGroupContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropLogfileGroupContext.prototype.LOGFILE = function() { + return this.getToken(MySQLParser.LOGFILE, 0); +}; + +DropLogfileGroupContext.prototype.GROUP = function() { + return this.getToken(MySQLParser.GROUP, 0); +}; + +DropLogfileGroupContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropLogfileGroupContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +DropLogfileGroupContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +DropLogfileGroupContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +DropLogfileGroupContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropLogfileGroup(this); + } +}; + +DropLogfileGroupContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropLogfileGroup(this); + } +}; + +DropLogfileGroupContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropLogfileGroup(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropLogfileGroupContext = DropLogfileGroupContext; + +MySQLParser.prototype.dropLogfileGroup = function() { + + var localctx = new DropLogfileGroupContext(this, this._ctx, this.state); + this.enterRule(localctx, 140, MySQLParser.RULE_dropLogfileGroup); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2657; + this.match(MySQLParser.DROP); + this.state = 2658; + this.match(MySQLParser.LOGFILE); + this.state = 2659; + this.match(MySQLParser.GROUP); + this.state = 2660; + this.uid(); + this.state = 2661; + this.match(MySQLParser.ENGINE); + this.state = 2662; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 2663; + this.engineName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropProcedureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropProcedure; + return this; +} + +DropProcedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropProcedureContext.prototype.constructor = DropProcedureContext; + +DropProcedureContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropProcedureContext.prototype.PROCEDURE = function() { + return this.getToken(MySQLParser.PROCEDURE, 0); +}; + +DropProcedureContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +DropProcedureContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropProcedureContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropProcedure(this); + } +}; + +DropProcedureContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropProcedure(this); + } +}; + +DropProcedureContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropProcedure(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropProcedureContext = DropProcedureContext; + +MySQLParser.prototype.dropProcedure = function() { + + var localctx = new DropProcedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 142, MySQLParser.RULE_dropProcedure); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2665; + this.match(MySQLParser.DROP); + this.state = 2666; + this.match(MySQLParser.PROCEDURE); + this.state = 2668; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 2667; + this.ifExists(); + } + + this.state = 2670; + this.fullId(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropFunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropFunction; + return this; +} + +DropFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropFunctionContext.prototype.constructor = DropFunctionContext; + +DropFunctionContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropFunctionContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +DropFunctionContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +DropFunctionContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropFunctionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropFunction(this); + } +}; + +DropFunctionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropFunction(this); + } +}; + +DropFunctionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropFunction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropFunctionContext = DropFunctionContext; + +MySQLParser.prototype.dropFunction = function() { + + var localctx = new DropFunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 144, MySQLParser.RULE_dropFunction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2672; + this.match(MySQLParser.DROP); + this.state = 2673; + this.match(MySQLParser.FUNCTION); + this.state = 2675; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 2674; + this.ifExists(); + } + + this.state = 2677; + this.fullId(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropServerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropServer; + return this; +} + +DropServerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropServerContext.prototype.constructor = DropServerContext; + +DropServerContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropServerContext.prototype.SERVER = function() { + return this.getToken(MySQLParser.SERVER, 0); +}; + +DropServerContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropServerContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropServerContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropServer(this); + } +}; + +DropServerContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropServer(this); + } +}; + +DropServerContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropServer(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropServerContext = DropServerContext; + +MySQLParser.prototype.dropServer = function() { + + var localctx = new DropServerContext(this, this._ctx, this.state); + this.enterRule(localctx, 146, MySQLParser.RULE_dropServer); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2679; + this.match(MySQLParser.DROP); + this.state = 2680; + this.match(MySQLParser.SERVER); + this.state = 2682; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 2681; + this.ifExists(); + } + + this.state = 2684; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropTable; + this.dropType = null; // Token + return this; +} + +DropTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropTableContext.prototype.constructor = DropTableContext; + +DropTableContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +DropTableContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +DropTableContext.prototype.TEMPORARY = function() { + return this.getToken(MySQLParser.TEMPORARY, 0); +}; + +DropTableContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropTableContext.prototype.RESTRICT = function() { + return this.getToken(MySQLParser.RESTRICT, 0); +}; + +DropTableContext.prototype.CASCADE = function() { + return this.getToken(MySQLParser.CASCADE, 0); +}; + +DropTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropTable(this); + } +}; + +DropTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropTable(this); + } +}; + +DropTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropTableContext = DropTableContext; + +MySQLParser.prototype.dropTable = function() { + + var localctx = new DropTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 148, MySQLParser.RULE_dropTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2686; + this.match(MySQLParser.DROP); + this.state = 2688; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.TEMPORARY) { + this.state = 2687; + this.match(MySQLParser.TEMPORARY); + } + + this.state = 2690; + this.match(MySQLParser.TABLE); + this.state = 2692; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 2691; + this.ifExists(); + } + + this.state = 2694; + this.tables(); + this.state = 2696; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CASCADE || _la===MySQLParser.RESTRICT) { + this.state = 2695; + localctx.dropType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CASCADE || _la===MySQLParser.RESTRICT)) { + localctx.dropType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropTablespaceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropTablespace; + return this; +} + +DropTablespaceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropTablespaceContext.prototype.constructor = DropTablespaceContext; + +DropTablespaceContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropTablespaceContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +DropTablespaceContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropTablespaceContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +DropTablespaceContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +DropTablespaceContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +DropTablespaceContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropTablespace(this); + } +}; + +DropTablespaceContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropTablespace(this); + } +}; + +DropTablespaceContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropTablespace(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropTablespaceContext = DropTablespaceContext; + +MySQLParser.prototype.dropTablespace = function() { + + var localctx = new DropTablespaceContext(this, this._ctx, this.state); + this.enterRule(localctx, 150, MySQLParser.RULE_dropTablespace); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2698; + this.match(MySQLParser.DROP); + this.state = 2699; + this.match(MySQLParser.TABLESPACE); + this.state = 2700; + this.uid(); + this.state = 2706; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ENGINE) { + this.state = 2701; + this.match(MySQLParser.ENGINE); + this.state = 2703; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EQUAL_SYMBOL) { + this.state = 2702; + this.match(MySQLParser.EQUAL_SYMBOL); + } + + this.state = 2705; + this.engineName(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropTriggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropTrigger; + return this; +} + +DropTriggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropTriggerContext.prototype.constructor = DropTriggerContext; + +DropTriggerContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropTriggerContext.prototype.TRIGGER = function() { + return this.getToken(MySQLParser.TRIGGER, 0); +}; + +DropTriggerContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +DropTriggerContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropTriggerContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropTrigger(this); + } +}; + +DropTriggerContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropTrigger(this); + } +}; + +DropTriggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropTrigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropTriggerContext = DropTriggerContext; + +MySQLParser.prototype.dropTrigger = function() { + + var localctx = new DropTriggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 152, MySQLParser.RULE_dropTrigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2708; + this.match(MySQLParser.DROP); + this.state = 2709; + this.match(MySQLParser.TRIGGER); + this.state = 2711; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 2710; + this.ifExists(); + } + + this.state = 2713; + this.fullId(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropViewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropView; + this.dropType = null; // Token + return this; +} + +DropViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropViewContext.prototype.constructor = DropViewContext; + +DropViewContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropViewContext.prototype.VIEW = function() { + return this.getToken(MySQLParser.VIEW, 0); +}; + +DropViewContext.prototype.fullId = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FullIdContext); + } else { + return this.getTypedRuleContext(FullIdContext,i); + } +}; + +DropViewContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropViewContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +DropViewContext.prototype.RESTRICT = function() { + return this.getToken(MySQLParser.RESTRICT, 0); +}; + +DropViewContext.prototype.CASCADE = function() { + return this.getToken(MySQLParser.CASCADE, 0); +}; + +DropViewContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropView(this); + } +}; + +DropViewContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropView(this); + } +}; + +DropViewContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropView(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropViewContext = DropViewContext; + +MySQLParser.prototype.dropView = function() { + + var localctx = new DropViewContext(this, this._ctx, this.state); + this.enterRule(localctx, 154, MySQLParser.RULE_dropView); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2715; + this.match(MySQLParser.DROP); + this.state = 2716; + this.match(MySQLParser.VIEW); + this.state = 2718; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 2717; + this.ifExists(); + } + + this.state = 2720; + this.fullId(); + this.state = 2725; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2721; + this.match(MySQLParser.COMMA); + this.state = 2722; + this.fullId(); + this.state = 2727; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2729; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CASCADE || _la===MySQLParser.RESTRICT) { + this.state = 2728; + localctx.dropType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CASCADE || _la===MySQLParser.RESTRICT)) { + localctx.dropType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RenameTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_renameTable; + return this; +} + +RenameTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RenameTableContext.prototype.constructor = RenameTableContext; + +RenameTableContext.prototype.RENAME = function() { + return this.getToken(MySQLParser.RENAME, 0); +}; + +RenameTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +RenameTableContext.prototype.renameTableClause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(RenameTableClauseContext); + } else { + return this.getTypedRuleContext(RenameTableClauseContext,i); + } +}; + +RenameTableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +RenameTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRenameTable(this); + } +}; + +RenameTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRenameTable(this); + } +}; + +RenameTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRenameTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RenameTableContext = RenameTableContext; + +MySQLParser.prototype.renameTable = function() { + + var localctx = new RenameTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 156, MySQLParser.RULE_renameTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2731; + this.match(MySQLParser.RENAME); + this.state = 2732; + this.match(MySQLParser.TABLE); + this.state = 2733; + this.renameTableClause(); + this.state = 2738; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2734; + this.match(MySQLParser.COMMA); + this.state = 2735; + this.renameTableClause(); + this.state = 2740; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RenameTableClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_renameTableClause; + return this; +} + +RenameTableClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RenameTableClauseContext.prototype.constructor = RenameTableClauseContext; + +RenameTableClauseContext.prototype.tableName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableNameContext); + } else { + return this.getTypedRuleContext(TableNameContext,i); + } +}; + +RenameTableClauseContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +RenameTableClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRenameTableClause(this); + } +}; + +RenameTableClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRenameTableClause(this); + } +}; + +RenameTableClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRenameTableClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RenameTableClauseContext = RenameTableClauseContext; + +MySQLParser.prototype.renameTableClause = function() { + + var localctx = new RenameTableClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 158, MySQLParser.RULE_renameTableClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2741; + this.tableName(); + this.state = 2742; + this.match(MySQLParser.TO); + this.state = 2743; + this.tableName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TruncateTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_truncateTable; + return this; +} + +TruncateTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TruncateTableContext.prototype.constructor = TruncateTableContext; + +TruncateTableContext.prototype.TRUNCATE = function() { + return this.getToken(MySQLParser.TRUNCATE, 0); +}; + +TruncateTableContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +TruncateTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +TruncateTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTruncateTable(this); + } +}; + +TruncateTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTruncateTable(this); + } +}; + +TruncateTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTruncateTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TruncateTableContext = TruncateTableContext; + +MySQLParser.prototype.truncateTable = function() { + + var localctx = new TruncateTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 160, MySQLParser.RULE_truncateTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2745; + this.match(MySQLParser.TRUNCATE); + this.state = 2747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.TABLE) { + this.state = 2746; + this.match(MySQLParser.TABLE); + } + + this.state = 2749; + this.tableName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CallStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_callStatement; + return this; +} + +CallStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CallStatementContext.prototype.constructor = CallStatementContext; + +CallStatementContext.prototype.CALL = function() { + return this.getToken(MySQLParser.CALL, 0); +}; + +CallStatementContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +CallStatementContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CallStatementContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CallStatementContext.prototype.constants = function() { + return this.getTypedRuleContext(ConstantsContext,0); +}; + +CallStatementContext.prototype.expressions = function() { + return this.getTypedRuleContext(ExpressionsContext,0); +}; + +CallStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCallStatement(this); + } +}; + +CallStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCallStatement(this); + } +}; + +CallStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCallStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CallStatementContext = CallStatementContext; + +MySQLParser.prototype.callStatement = function() { + + var localctx = new CallStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 162, MySQLParser.RULE_callStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2751; + this.match(MySQLParser.CALL); + this.state = 2752; + this.fullId(); + this.state = 2759; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,356,this._ctx); + if(la_===1) { + this.state = 2753; + this.match(MySQLParser.LR_BRACKET); + this.state = 2756; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,355,this._ctx); + if(la_===1) { + this.state = 2754; + this.constants(); + + } else if(la_===2) { + this.state = 2755; + this.expressions(); + + } + this.state = 2758; + this.match(MySQLParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DeleteStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_deleteStatement; + return this; +} + +DeleteStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DeleteStatementContext.prototype.constructor = DeleteStatementContext; + +DeleteStatementContext.prototype.singleDeleteStatement = function() { + return this.getTypedRuleContext(SingleDeleteStatementContext,0); +}; + +DeleteStatementContext.prototype.multipleDeleteStatement = function() { + return this.getTypedRuleContext(MultipleDeleteStatementContext,0); +}; + +DeleteStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDeleteStatement(this); + } +}; + +DeleteStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDeleteStatement(this); + } +}; + +DeleteStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDeleteStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DeleteStatementContext = DeleteStatementContext; + +MySQLParser.prototype.deleteStatement = function() { + + var localctx = new DeleteStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 164, MySQLParser.RULE_deleteStatement); + try { + this.state = 2763; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,357,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 2761; + this.singleDeleteStatement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 2762; + this.multipleDeleteStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DoStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_doStatement; + return this; +} + +DoStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DoStatementContext.prototype.constructor = DoStatementContext; + +DoStatementContext.prototype.DO = function() { + return this.getToken(MySQLParser.DO, 0); +}; + +DoStatementContext.prototype.expressions = function() { + return this.getTypedRuleContext(ExpressionsContext,0); +}; + +DoStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDoStatement(this); + } +}; + +DoStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDoStatement(this); + } +}; + +DoStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDoStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DoStatementContext = DoStatementContext; + +MySQLParser.prototype.doStatement = function() { + + var localctx = new DoStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 166, MySQLParser.RULE_doStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2765; + this.match(MySQLParser.DO); + this.state = 2766; + this.expressions(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HandlerStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_handlerStatement; + return this; +} + +HandlerStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HandlerStatementContext.prototype.constructor = HandlerStatementContext; + +HandlerStatementContext.prototype.handlerOpenStatement = function() { + return this.getTypedRuleContext(HandlerOpenStatementContext,0); +}; + +HandlerStatementContext.prototype.handlerReadIndexStatement = function() { + return this.getTypedRuleContext(HandlerReadIndexStatementContext,0); +}; + +HandlerStatementContext.prototype.handlerReadStatement = function() { + return this.getTypedRuleContext(HandlerReadStatementContext,0); +}; + +HandlerStatementContext.prototype.handlerCloseStatement = function() { + return this.getTypedRuleContext(HandlerCloseStatementContext,0); +}; + +HandlerStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerStatement(this); + } +}; + +HandlerStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerStatement(this); + } +}; + +HandlerStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.HandlerStatementContext = HandlerStatementContext; + +MySQLParser.prototype.handlerStatement = function() { + + var localctx = new HandlerStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 168, MySQLParser.RULE_handlerStatement); + try { + this.state = 2772; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,358,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 2768; + this.handlerOpenStatement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 2769; + this.handlerReadIndexStatement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 2770; + this.handlerReadStatement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 2771; + this.handlerCloseStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function InsertStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_insertStatement; + this.priority = null; // Token + this.partitions = null; // UidListContext + this.columns = null; // UidListContext + this.setFirst = null; // UpdatedElementContext + this._updatedElement = null; // UpdatedElementContext + this.setElements = []; // of UpdatedElementContexts + this.duplicatedFirst = null; // UpdatedElementContext + this.duplicatedElements = []; // of UpdatedElementContexts + return this; +} + +InsertStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +InsertStatementContext.prototype.constructor = InsertStatementContext; + +InsertStatementContext.prototype.INSERT = function() { + return this.getToken(MySQLParser.INSERT, 0); +}; + +InsertStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +InsertStatementContext.prototype.insertStatementValue = function() { + return this.getTypedRuleContext(InsertStatementValueContext,0); +}; + +InsertStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +InsertStatementContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +InsertStatementContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +InsertStatementContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +InsertStatementContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LR_BRACKET); + } else { + return this.getToken(MySQLParser.LR_BRACKET, i); + } +}; + + +InsertStatementContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.RR_BRACKET); + } else { + return this.getToken(MySQLParser.RR_BRACKET, i); + } +}; + + +InsertStatementContext.prototype.updatedElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UpdatedElementContext); + } else { + return this.getTypedRuleContext(UpdatedElementContext,i); + } +}; + +InsertStatementContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +InsertStatementContext.prototype.DUPLICATE = function() { + return this.getToken(MySQLParser.DUPLICATE, 0); +}; + +InsertStatementContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +InsertStatementContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +InsertStatementContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +InsertStatementContext.prototype.DELAYED = function() { + return this.getToken(MySQLParser.DELAYED, 0); +}; + +InsertStatementContext.prototype.HIGH_PRIORITY = function() { + return this.getToken(MySQLParser.HIGH_PRIORITY, 0); +}; + +InsertStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +InsertStatementContext.prototype.uidList = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidListContext); + } else { + return this.getTypedRuleContext(UidListContext,i); + } +}; + +InsertStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterInsertStatement(this); + } +}; + +InsertStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitInsertStatement(this); + } +}; + +InsertStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitInsertStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.InsertStatementContext = InsertStatementContext; + +MySQLParser.prototype.insertStatement = function() { + + var localctx = new InsertStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 170, MySQLParser.RULE_insertStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2774; + this.match(MySQLParser.INSERT); + this.state = 2776; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DELAYED || _la===MySQLParser.HIGH_PRIORITY || _la===MySQLParser.LOW_PRIORITY) { + this.state = 2775; + localctx.priority = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DELAYED || _la===MySQLParser.HIGH_PRIORITY || _la===MySQLParser.LOW_PRIORITY)) { + localctx.priority = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2779; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 2778; + this.match(MySQLParser.IGNORE); + } + + this.state = 2782; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INTO) { + this.state = 2781; + this.match(MySQLParser.INTO); + } + + this.state = 2784; + this.tableName(); + this.state = 2791; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 2785; + this.match(MySQLParser.PARTITION); + this.state = 2786; + this.match(MySQLParser.LR_BRACKET); + this.state = 2788; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 2787; + localctx.partitions = this.uidList(); + } + + this.state = 2790; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 2809; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SELECT: + case MySQLParser.VALUES: + case MySQLParser.VALUE: + case MySQLParser.LR_BRACKET: + this.state = 2797; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,364,this._ctx); + if(la_===1) { + this.state = 2793; + this.match(MySQLParser.LR_BRACKET); + this.state = 2794; + localctx.columns = this.uidList(); + this.state = 2795; + this.match(MySQLParser.RR_BRACKET); + + } + this.state = 2799; + this.insertStatementValue(); + break; + case MySQLParser.SET: + this.state = 2800; + this.match(MySQLParser.SET); + this.state = 2801; + localctx.setFirst = this.updatedElement(); + this.state = 2806; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2802; + this.match(MySQLParser.COMMA); + this.state = 2803; + localctx._updatedElement = this.updatedElement(); + localctx.setElements.push(localctx._updatedElement); + this.state = 2808; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2823; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ON) { + this.state = 2811; + this.match(MySQLParser.ON); + this.state = 2812; + this.match(MySQLParser.DUPLICATE); + this.state = 2813; + this.match(MySQLParser.KEY); + this.state = 2814; + this.match(MySQLParser.UPDATE); + this.state = 2815; + localctx.duplicatedFirst = this.updatedElement(); + this.state = 2820; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2816; + this.match(MySQLParser.COMMA); + this.state = 2817; + localctx._updatedElement = this.updatedElement(); + localctx.duplicatedElements.push(localctx._updatedElement); + this.state = 2822; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LoadDataStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_loadDataStatement; + this.priority = null; // Token + this.filename = null; // Token + this.violation = null; // Token + this.charset = null; // CharsetNameContext + this.fieldsFormat = null; // Token + this.linesFormat = null; // Token + return this; +} + +LoadDataStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LoadDataStatementContext.prototype.constructor = LoadDataStatementContext; + +LoadDataStatementContext.prototype.LOAD = function() { + return this.getToken(MySQLParser.LOAD, 0); +}; + +LoadDataStatementContext.prototype.DATA = function() { + return this.getToken(MySQLParser.DATA, 0); +}; + +LoadDataStatementContext.prototype.INFILE = function() { + return this.getToken(MySQLParser.INFILE, 0); +}; + +LoadDataStatementContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +LoadDataStatementContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +LoadDataStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +LoadDataStatementContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +LoadDataStatementContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +LoadDataStatementContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +LoadDataStatementContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LR_BRACKET); + } else { + return this.getToken(MySQLParser.LR_BRACKET, i); + } +}; + + +LoadDataStatementContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +LoadDataStatementContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.RR_BRACKET); + } else { + return this.getToken(MySQLParser.RR_BRACKET, i); + } +}; + + +LoadDataStatementContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +LoadDataStatementContext.prototype.SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.SET); + } else { + return this.getToken(MySQLParser.SET, i); + } +}; + + +LoadDataStatementContext.prototype.LINES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LINES); + } else { + return this.getToken(MySQLParser.LINES, i); + } +}; + + +LoadDataStatementContext.prototype.IGNORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.IGNORE); + } else { + return this.getToken(MySQLParser.IGNORE, i); + } +}; + + +LoadDataStatementContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +LoadDataStatementContext.prototype.assignmentField = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(AssignmentFieldContext); + } else { + return this.getTypedRuleContext(AssignmentFieldContext,i); + } +}; + +LoadDataStatementContext.prototype.updatedElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UpdatedElementContext); + } else { + return this.getTypedRuleContext(UpdatedElementContext,i); + } +}; + +LoadDataStatementContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +LoadDataStatementContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +LoadDataStatementContext.prototype.CONCURRENT = function() { + return this.getToken(MySQLParser.CONCURRENT, 0); +}; + +LoadDataStatementContext.prototype.REPLACE = function() { + return this.getToken(MySQLParser.REPLACE, 0); +}; + +LoadDataStatementContext.prototype.FIELDS = function() { + return this.getToken(MySQLParser.FIELDS, 0); +}; + +LoadDataStatementContext.prototype.COLUMNS = function() { + return this.getToken(MySQLParser.COLUMNS, 0); +}; + +LoadDataStatementContext.prototype.ROWS = function() { + return this.getToken(MySQLParser.ROWS, 0); +}; + +LoadDataStatementContext.prototype.selectFieldsInto = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SelectFieldsIntoContext); + } else { + return this.getTypedRuleContext(SelectFieldsIntoContext,i); + } +}; + +LoadDataStatementContext.prototype.selectLinesInto = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SelectLinesIntoContext); + } else { + return this.getTypedRuleContext(SelectLinesIntoContext,i); + } +}; + +LoadDataStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +LoadDataStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLoadDataStatement(this); + } +}; + +LoadDataStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLoadDataStatement(this); + } +}; + +LoadDataStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLoadDataStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LoadDataStatementContext = LoadDataStatementContext; + +MySQLParser.prototype.loadDataStatement = function() { + + var localctx = new LoadDataStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 172, MySQLParser.RULE_loadDataStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2825; + this.match(MySQLParser.LOAD); + this.state = 2826; + this.match(MySQLParser.DATA); + this.state = 2828; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOW_PRIORITY || _la===MySQLParser.CONCURRENT) { + this.state = 2827; + localctx.priority = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.LOW_PRIORITY || _la===MySQLParser.CONCURRENT)) { + localctx.priority = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2831; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOCAL) { + this.state = 2830; + this.match(MySQLParser.LOCAL); + } + + this.state = 2833; + this.match(MySQLParser.INFILE); + this.state = 2834; + localctx.filename = this.match(MySQLParser.STRING_LITERAL); + this.state = 2836; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE || _la===MySQLParser.REPLACE) { + this.state = 2835; + localctx.violation = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.IGNORE || _la===MySQLParser.REPLACE)) { + localctx.violation = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2838; + this.match(MySQLParser.INTO); + this.state = 2839; + this.match(MySQLParser.TABLE); + this.state = 2840; + this.tableName(); + this.state = 2846; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 2841; + this.match(MySQLParser.PARTITION); + this.state = 2842; + this.match(MySQLParser.LR_BRACKET); + this.state = 2843; + this.uidList(); + this.state = 2844; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 2851; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CHARACTER) { + this.state = 2848; + this.match(MySQLParser.CHARACTER); + this.state = 2849; + this.match(MySQLParser.SET); + this.state = 2850; + localctx.charset = this.charsetName(); + } + + this.state = 2859; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLUMNS || _la===MySQLParser.FIELDS) { + this.state = 2853; + localctx.fieldsFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.COLUMNS || _la===MySQLParser.FIELDS)) { + localctx.fieldsFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2855; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2854; + this.selectFieldsInto(); + this.state = 2857; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.ENCLOSED || _la===MySQLParser.ESCAPED || _la===MySQLParser.OPTIONALLY || _la===MySQLParser.TERMINATED); + } + + this.state = 2867; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LINES) { + this.state = 2861; + this.match(MySQLParser.LINES); + this.state = 2863; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2862; + this.selectLinesInto(); + this.state = 2865; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.STARTING || _la===MySQLParser.TERMINATED); + } + + this.state = 2873; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 2869; + this.match(MySQLParser.IGNORE); + this.state = 2870; + this.decimalLiteral(); + this.state = 2871; + localctx.linesFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.LINES || _la===MySQLParser.ROWS)) { + localctx.linesFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2886; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,380,this._ctx); + if(la_===1) { + this.state = 2875; + this.match(MySQLParser.LR_BRACKET); + this.state = 2876; + this.assignmentField(); + this.state = 2881; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2877; + this.match(MySQLParser.COMMA); + this.state = 2878; + this.assignmentField(); + this.state = 2883; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2884; + this.match(MySQLParser.RR_BRACKET); + + } + this.state = 2897; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,382,this._ctx); + if(la_===1) { + this.state = 2888; + this.match(MySQLParser.SET); + this.state = 2889; + this.updatedElement(); + this.state = 2894; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2890; + this.match(MySQLParser.COMMA); + this.state = 2891; + this.updatedElement(); + this.state = 2896; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LoadXmlStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_loadXmlStatement; + this.priority = null; // Token + this.filename = null; // Token + this.violation = null; // Token + this.charset = null; // CharsetNameContext + this.tag = null; // Token + this.linesFormat = null; // Token + return this; +} + +LoadXmlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LoadXmlStatementContext.prototype.constructor = LoadXmlStatementContext; + +LoadXmlStatementContext.prototype.LOAD = function() { + return this.getToken(MySQLParser.LOAD, 0); +}; + +LoadXmlStatementContext.prototype.XML = function() { + return this.getToken(MySQLParser.XML, 0); +}; + +LoadXmlStatementContext.prototype.INFILE = function() { + return this.getToken(MySQLParser.INFILE, 0); +}; + +LoadXmlStatementContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +LoadXmlStatementContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +LoadXmlStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +LoadXmlStatementContext.prototype.STRING_LITERAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.STRING_LITERAL); + } else { + return this.getToken(MySQLParser.STRING_LITERAL, i); + } +}; + + +LoadXmlStatementContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +LoadXmlStatementContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +LoadXmlStatementContext.prototype.SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.SET); + } else { + return this.getToken(MySQLParser.SET, i); + } +}; + + +LoadXmlStatementContext.prototype.ROWS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.ROWS); + } else { + return this.getToken(MySQLParser.ROWS, i); + } +}; + + +LoadXmlStatementContext.prototype.IDENTIFIED = function() { + return this.getToken(MySQLParser.IDENTIFIED, 0); +}; + +LoadXmlStatementContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +LoadXmlStatementContext.prototype.LESS_SYMBOL = function() { + return this.getToken(MySQLParser.LESS_SYMBOL, 0); +}; + +LoadXmlStatementContext.prototype.GREATER_SYMBOL = function() { + return this.getToken(MySQLParser.GREATER_SYMBOL, 0); +}; + +LoadXmlStatementContext.prototype.IGNORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.IGNORE); + } else { + return this.getToken(MySQLParser.IGNORE, i); + } +}; + + +LoadXmlStatementContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +LoadXmlStatementContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +LoadXmlStatementContext.prototype.assignmentField = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(AssignmentFieldContext); + } else { + return this.getTypedRuleContext(AssignmentFieldContext,i); + } +}; + +LoadXmlStatementContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +LoadXmlStatementContext.prototype.updatedElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UpdatedElementContext); + } else { + return this.getTypedRuleContext(UpdatedElementContext,i); + } +}; + +LoadXmlStatementContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +LoadXmlStatementContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +LoadXmlStatementContext.prototype.CONCURRENT = function() { + return this.getToken(MySQLParser.CONCURRENT, 0); +}; + +LoadXmlStatementContext.prototype.REPLACE = function() { + return this.getToken(MySQLParser.REPLACE, 0); +}; + +LoadXmlStatementContext.prototype.LINES = function() { + return this.getToken(MySQLParser.LINES, 0); +}; + +LoadXmlStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +LoadXmlStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLoadXmlStatement(this); + } +}; + +LoadXmlStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLoadXmlStatement(this); + } +}; + +LoadXmlStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLoadXmlStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LoadXmlStatementContext = LoadXmlStatementContext; + +MySQLParser.prototype.loadXmlStatement = function() { + + var localctx = new LoadXmlStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 174, MySQLParser.RULE_loadXmlStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2899; + this.match(MySQLParser.LOAD); + this.state = 2900; + this.match(MySQLParser.XML); + this.state = 2902; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOW_PRIORITY || _la===MySQLParser.CONCURRENT) { + this.state = 2901; + localctx.priority = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.LOW_PRIORITY || _la===MySQLParser.CONCURRENT)) { + localctx.priority = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2905; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOCAL) { + this.state = 2904; + this.match(MySQLParser.LOCAL); + } + + this.state = 2907; + this.match(MySQLParser.INFILE); + this.state = 2908; + localctx.filename = this.match(MySQLParser.STRING_LITERAL); + this.state = 2910; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE || _la===MySQLParser.REPLACE) { + this.state = 2909; + localctx.violation = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.IGNORE || _la===MySQLParser.REPLACE)) { + localctx.violation = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2912; + this.match(MySQLParser.INTO); + this.state = 2913; + this.match(MySQLParser.TABLE); + this.state = 2914; + this.tableName(); + this.state = 2918; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CHARACTER) { + this.state = 2915; + this.match(MySQLParser.CHARACTER); + this.state = 2916; + this.match(MySQLParser.SET); + this.state = 2917; + localctx.charset = this.charsetName(); + } + + this.state = 2926; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ROWS) { + this.state = 2920; + this.match(MySQLParser.ROWS); + this.state = 2921; + this.match(MySQLParser.IDENTIFIED); + this.state = 2922; + this.match(MySQLParser.BY); + this.state = 2923; + this.match(MySQLParser.LESS_SYMBOL); + this.state = 2924; + localctx.tag = this.match(MySQLParser.STRING_LITERAL); + this.state = 2925; + this.match(MySQLParser.GREATER_SYMBOL); + } + + this.state = 2932; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 2928; + this.match(MySQLParser.IGNORE); + this.state = 2929; + this.decimalLiteral(); + this.state = 2930; + localctx.linesFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.LINES || _la===MySQLParser.ROWS)) { + localctx.linesFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2945; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,390,this._ctx); + if(la_===1) { + this.state = 2934; + this.match(MySQLParser.LR_BRACKET); + this.state = 2935; + this.assignmentField(); + this.state = 2940; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2936; + this.match(MySQLParser.COMMA); + this.state = 2937; + this.assignmentField(); + this.state = 2942; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2943; + this.match(MySQLParser.RR_BRACKET); + + } + this.state = 2956; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,392,this._ctx); + if(la_===1) { + this.state = 2947; + this.match(MySQLParser.SET); + this.state = 2948; + this.updatedElement(); + this.state = 2953; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2949; + this.match(MySQLParser.COMMA); + this.state = 2950; + this.updatedElement(); + this.state = 2955; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ReplaceStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_replaceStatement; + this.priority = null; // Token + this.partitions = null; // UidListContext + this.columns = null; // UidListContext + this.setFirst = null; // UpdatedElementContext + this._updatedElement = null; // UpdatedElementContext + this.setElements = []; // of UpdatedElementContexts + return this; +} + +ReplaceStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ReplaceStatementContext.prototype.constructor = ReplaceStatementContext; + +ReplaceStatementContext.prototype.REPLACE = function() { + return this.getToken(MySQLParser.REPLACE, 0); +}; + +ReplaceStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +ReplaceStatementContext.prototype.insertStatementValue = function() { + return this.getTypedRuleContext(InsertStatementValueContext,0); +}; + +ReplaceStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +ReplaceStatementContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +ReplaceStatementContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +ReplaceStatementContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LR_BRACKET); + } else { + return this.getToken(MySQLParser.LR_BRACKET, i); + } +}; + + +ReplaceStatementContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.RR_BRACKET); + } else { + return this.getToken(MySQLParser.RR_BRACKET, i); + } +}; + + +ReplaceStatementContext.prototype.updatedElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UpdatedElementContext); + } else { + return this.getTypedRuleContext(UpdatedElementContext,i); + } +}; + +ReplaceStatementContext.prototype.uidList = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidListContext); + } else { + return this.getTypedRuleContext(UidListContext,i); + } +}; + +ReplaceStatementContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +ReplaceStatementContext.prototype.DELAYED = function() { + return this.getToken(MySQLParser.DELAYED, 0); +}; + +ReplaceStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ReplaceStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterReplaceStatement(this); + } +}; + +ReplaceStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitReplaceStatement(this); + } +}; + +ReplaceStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitReplaceStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ReplaceStatementContext = ReplaceStatementContext; + +MySQLParser.prototype.replaceStatement = function() { + + var localctx = new ReplaceStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 176, MySQLParser.RULE_replaceStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2958; + this.match(MySQLParser.REPLACE); + this.state = 2960; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DELAYED || _la===MySQLParser.LOW_PRIORITY) { + this.state = 2959; + localctx.priority = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DELAYED || _la===MySQLParser.LOW_PRIORITY)) { + localctx.priority = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2963; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INTO) { + this.state = 2962; + this.match(MySQLParser.INTO); + } + + this.state = 2965; + this.tableName(); + this.state = 2971; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 2966; + this.match(MySQLParser.PARTITION); + this.state = 2967; + this.match(MySQLParser.LR_BRACKET); + this.state = 2968; + localctx.partitions = this.uidList(); + this.state = 2969; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 2989; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SELECT: + case MySQLParser.VALUES: + case MySQLParser.VALUE: + case MySQLParser.LR_BRACKET: + this.state = 2977; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,396,this._ctx); + if(la_===1) { + this.state = 2973; + this.match(MySQLParser.LR_BRACKET); + this.state = 2974; + localctx.columns = this.uidList(); + this.state = 2975; + this.match(MySQLParser.RR_BRACKET); + + } + this.state = 2979; + this.insertStatementValue(); + break; + case MySQLParser.SET: + this.state = 2980; + this.match(MySQLParser.SET); + this.state = 2981; + localctx.setFirst = this.updatedElement(); + this.state = 2986; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 2982; + this.match(MySQLParser.COMMA); + this.state = 2983; + localctx._updatedElement = this.updatedElement(); + localctx.setElements.push(localctx._updatedElement); + this.state = 2988; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_selectStatement; + return this; +} + +SelectStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectStatementContext.prototype.constructor = SelectStatementContext; + + + +SelectStatementContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function UnionSelectContext(parser, ctx) { + SelectStatementContext.call(this, parser); + this.unionType = null; // Token; + SelectStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +UnionSelectContext.prototype = Object.create(SelectStatementContext.prototype); +UnionSelectContext.prototype.constructor = UnionSelectContext; + +MySQLParser.UnionSelectContext = UnionSelectContext; + +UnionSelectContext.prototype.querySpecificationNointo = function() { + return this.getTypedRuleContext(QuerySpecificationNointoContext,0); +}; + +UnionSelectContext.prototype.unionStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UnionStatementContext); + } else { + return this.getTypedRuleContext(UnionStatementContext,i); + } +}; + +UnionSelectContext.prototype.UNION = function() { + return this.getToken(MySQLParser.UNION, 0); +}; + +UnionSelectContext.prototype.orderByClause = function() { + return this.getTypedRuleContext(OrderByClauseContext,0); +}; + +UnionSelectContext.prototype.limitClause = function() { + return this.getTypedRuleContext(LimitClauseContext,0); +}; + +UnionSelectContext.prototype.lockClause = function() { + return this.getTypedRuleContext(LockClauseContext,0); +}; + +UnionSelectContext.prototype.querySpecification = function() { + return this.getTypedRuleContext(QuerySpecificationContext,0); +}; + +UnionSelectContext.prototype.queryExpression = function() { + return this.getTypedRuleContext(QueryExpressionContext,0); +}; + +UnionSelectContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +UnionSelectContext.prototype.DISTINCT = function() { + return this.getToken(MySQLParser.DISTINCT, 0); +}; +UnionSelectContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUnionSelect(this); + } +}; + +UnionSelectContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUnionSelect(this); + } +}; + +UnionSelectContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUnionSelect(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function UnionParenthesisSelectContext(parser, ctx) { + SelectStatementContext.call(this, parser); + this.unionType = null; // Token; + SelectStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +UnionParenthesisSelectContext.prototype = Object.create(SelectStatementContext.prototype); +UnionParenthesisSelectContext.prototype.constructor = UnionParenthesisSelectContext; + +MySQLParser.UnionParenthesisSelectContext = UnionParenthesisSelectContext; + +UnionParenthesisSelectContext.prototype.queryExpressionNointo = function() { + return this.getTypedRuleContext(QueryExpressionNointoContext,0); +}; + +UnionParenthesisSelectContext.prototype.unionParenthesis = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UnionParenthesisContext); + } else { + return this.getTypedRuleContext(UnionParenthesisContext,i); + } +}; + +UnionParenthesisSelectContext.prototype.UNION = function() { + return this.getToken(MySQLParser.UNION, 0); +}; + +UnionParenthesisSelectContext.prototype.queryExpression = function() { + return this.getTypedRuleContext(QueryExpressionContext,0); +}; + +UnionParenthesisSelectContext.prototype.orderByClause = function() { + return this.getTypedRuleContext(OrderByClauseContext,0); +}; + +UnionParenthesisSelectContext.prototype.limitClause = function() { + return this.getTypedRuleContext(LimitClauseContext,0); +}; + +UnionParenthesisSelectContext.prototype.lockClause = function() { + return this.getTypedRuleContext(LockClauseContext,0); +}; + +UnionParenthesisSelectContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +UnionParenthesisSelectContext.prototype.DISTINCT = function() { + return this.getToken(MySQLParser.DISTINCT, 0); +}; +UnionParenthesisSelectContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUnionParenthesisSelect(this); + } +}; + +UnionParenthesisSelectContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUnionParenthesisSelect(this); + } +}; + +UnionParenthesisSelectContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUnionParenthesisSelect(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SimpleSelectContext(parser, ctx) { + SelectStatementContext.call(this, parser); + SelectStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SimpleSelectContext.prototype = Object.create(SelectStatementContext.prototype); +SimpleSelectContext.prototype.constructor = SimpleSelectContext; + +MySQLParser.SimpleSelectContext = SimpleSelectContext; + +SimpleSelectContext.prototype.querySpecification = function() { + return this.getTypedRuleContext(QuerySpecificationContext,0); +}; + +SimpleSelectContext.prototype.lockClause = function() { + return this.getTypedRuleContext(LockClauseContext,0); +}; +SimpleSelectContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleSelect(this); + } +}; + +SimpleSelectContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleSelect(this); + } +}; + +SimpleSelectContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleSelect(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ParenthesisSelectContext(parser, ctx) { + SelectStatementContext.call(this, parser); + SelectStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ParenthesisSelectContext.prototype = Object.create(SelectStatementContext.prototype); +ParenthesisSelectContext.prototype.constructor = ParenthesisSelectContext; + +MySQLParser.ParenthesisSelectContext = ParenthesisSelectContext; + +ParenthesisSelectContext.prototype.queryExpression = function() { + return this.getTypedRuleContext(QueryExpressionContext,0); +}; + +ParenthesisSelectContext.prototype.lockClause = function() { + return this.getTypedRuleContext(LockClauseContext,0); +}; +ParenthesisSelectContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterParenthesisSelect(this); + } +}; + +ParenthesisSelectContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitParenthesisSelect(this); + } +}; + +ParenthesisSelectContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitParenthesisSelect(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.SelectStatementContext = SelectStatementContext; + +MySQLParser.prototype.selectStatement = function() { + + var localctx = new SelectStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 178, MySQLParser.RULE_selectStatement); + var _la = 0; // Token type + try { + this.state = 3046; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,414,this._ctx); + switch(la_) { + case 1: + localctx = new SimpleSelectContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 2991; + this.querySpecification(); + this.state = 2993; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,399,this._ctx); + if(la_===1) { + this.state = 2992; + this.lockClause(); + + } + break; + + case 2: + localctx = new ParenthesisSelectContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 2995; + this.queryExpression(); + this.state = 2997; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,400,this._ctx); + if(la_===1) { + this.state = 2996; + this.lockClause(); + + } + break; + + case 3: + localctx = new UnionSelectContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 2999; + this.querySpecificationNointo(); + this.state = 3001; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3000; + this.unionStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3003; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,401, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 3013; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.UNION) { + this.state = 3005; + this.match(MySQLParser.UNION); + this.state = 3007; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT) { + this.state = 3006; + localctx.unionType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT)) { + localctx.unionType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3011; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SELECT: + this.state = 3009; + this.querySpecification(); + break; + case MySQLParser.LR_BRACKET: + this.state = 3010; + this.queryExpression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 3016; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ORDER) { + this.state = 3015; + this.orderByClause(); + } + + this.state = 3019; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIMIT) { + this.state = 3018; + this.limitClause(); + } + + this.state = 3022; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,407,this._ctx); + if(la_===1) { + this.state = 3021; + this.lockClause(); + + } + break; + + case 4: + localctx = new UnionParenthesisSelectContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 3024; + this.queryExpressionNointo(); + this.state = 3026; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3025; + this.unionParenthesis(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3028; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,408, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 3035; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.UNION) { + this.state = 3030; + this.match(MySQLParser.UNION); + this.state = 3032; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT) { + this.state = 3031; + localctx.unionType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT)) { + localctx.unionType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3034; + this.queryExpression(); + } + + this.state = 3038; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ORDER) { + this.state = 3037; + this.orderByClause(); + } + + this.state = 3041; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIMIT) { + this.state = 3040; + this.limitClause(); + } + + this.state = 3044; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,413,this._ctx); + if(la_===1) { + this.state = 3043; + this.lockClause(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UpdateStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_updateStatement; + return this; +} + +UpdateStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UpdateStatementContext.prototype.constructor = UpdateStatementContext; + +UpdateStatementContext.prototype.singleUpdateStatement = function() { + return this.getTypedRuleContext(SingleUpdateStatementContext,0); +}; + +UpdateStatementContext.prototype.multipleUpdateStatement = function() { + return this.getTypedRuleContext(MultipleUpdateStatementContext,0); +}; + +UpdateStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUpdateStatement(this); + } +}; + +UpdateStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUpdateStatement(this); + } +}; + +UpdateStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUpdateStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UpdateStatementContext = UpdateStatementContext; + +MySQLParser.prototype.updateStatement = function() { + + var localctx = new UpdateStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 180, MySQLParser.RULE_updateStatement); + try { + this.state = 3050; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,415,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3048; + this.singleUpdateStatement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3049; + this.multipleUpdateStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function InsertStatementValueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_insertStatementValue; + this.insertFormat = null; // Token + return this; +} + +InsertStatementValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +InsertStatementValueContext.prototype.constructor = InsertStatementValueContext; + +InsertStatementValueContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +InsertStatementValueContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LR_BRACKET); + } else { + return this.getToken(MySQLParser.LR_BRACKET, i); + } +}; + + +InsertStatementValueContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.RR_BRACKET); + } else { + return this.getToken(MySQLParser.RR_BRACKET, i); + } +}; + + +InsertStatementValueContext.prototype.VALUES = function() { + return this.getToken(MySQLParser.VALUES, 0); +}; + +InsertStatementValueContext.prototype.VALUE = function() { + return this.getToken(MySQLParser.VALUE, 0); +}; + +InsertStatementValueContext.prototype.expressionsWithDefaults = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionsWithDefaultsContext); + } else { + return this.getTypedRuleContext(ExpressionsWithDefaultsContext,i); + } +}; + +InsertStatementValueContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +InsertStatementValueContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterInsertStatementValue(this); + } +}; + +InsertStatementValueContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitInsertStatementValue(this); + } +}; + +InsertStatementValueContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitInsertStatementValue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.InsertStatementValueContext = InsertStatementValueContext; + +MySQLParser.prototype.insertStatementValue = function() { + + var localctx = new InsertStatementValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 182, MySQLParser.RULE_insertStatementValue); + var _la = 0; // Token type + try { + this.state = 3070; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SELECT: + case MySQLParser.LR_BRACKET: + this.enterOuterAlt(localctx, 1); + this.state = 3052; + this.selectStatement(); + break; + case MySQLParser.VALUES: + case MySQLParser.VALUE: + this.enterOuterAlt(localctx, 2); + this.state = 3053; + localctx.insertFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.VALUES || _la===MySQLParser.VALUE)) { + localctx.insertFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3054; + this.match(MySQLParser.LR_BRACKET); + this.state = 3056; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << MySQLParser.CASE) | (1 << MySQLParser.CAST) | (1 << MySQLParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.CURRENT_USER - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DEFAULT - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)) | (1 << (MySQLParser.EXISTS - 32)) | (1 << (MySQLParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (MySQLParser.IF - 69)) | (1 << (MySQLParser.INSERT - 69)) | (1 << (MySQLParser.INTERVAL - 69)) | (1 << (MySQLParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (MySQLParser.NOT - 102)) | (1 << (MySQLParser.NULL_LITERAL - 102)) | (1 << (MySQLParser.NUMBER - 102)) | (1 << (MySQLParser.REPLACE - 102)) | (1 << (MySQLParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (MySQLParser.STACKED - 151)) | (1 << (MySQLParser.TRUE - 151)) | (1 << (MySQLParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.CHAR - 199)) | (1 << (MySQLParser.BINARY - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.AVG - 233)) | (1 << (MySQLParser.BIT_AND - 233)) | (1 << (MySQLParser.BIT_OR - 233)) | (1 << (MySQLParser.BIT_XOR - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.GROUP_CONCAT - 233)) | (1 << (MySQLParser.MAX - 233)) | (1 << (MySQLParser.MIN - 233)) | (1 << (MySQLParser.STD - 233)) | (1 << (MySQLParser.STDDEV - 233)) | (1 << (MySQLParser.STDDEV_POP - 233)) | (1 << (MySQLParser.STDDEV_SAMP - 233)) | (1 << (MySQLParser.SUM - 233)) | (1 << (MySQLParser.VAR_POP - 233)) | (1 << (MySQLParser.VAR_SAMP - 233)) | (1 << (MySQLParser.VARIANCE - 233)) | (1 << (MySQLParser.CURRENT_DATE - 233)) | (1 << (MySQLParser.CURRENT_TIME - 233)) | (1 << (MySQLParser.CURRENT_TIMESTAMP - 233)) | (1 << (MySQLParser.LOCALTIME - 233)) | (1 << (MySQLParser.CURDATE - 233)) | (1 << (MySQLParser.CURTIME - 233)) | (1 << (MySQLParser.DATE_ADD - 233)) | (1 << (MySQLParser.DATE_SUB - 233)) | (1 << (MySQLParser.EXTRACT - 233)) | (1 << (MySQLParser.LOCALTIMESTAMP - 233)) | (1 << (MySQLParser.NOW - 233)) | (1 << (MySQLParser.POSITION - 233)) | (1 << (MySQLParser.SUBSTR - 233)) | (1 << (MySQLParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1f) == 0 && ((1 << (_la - 265)) & ((1 << (MySQLParser.SYSDATE - 265)) | (1 << (MySQLParser.TRIM - 265)) | (1 << (MySQLParser.UTC_DATE - 265)) | (1 << (MySQLParser.UTC_TIME - 265)) | (1 << (MySQLParser.UTC_TIMESTAMP - 265)) | (1 << (MySQLParser.ACCOUNT - 265)) | (1 << (MySQLParser.ACTION - 265)) | (1 << (MySQLParser.AFTER - 265)) | (1 << (MySQLParser.AGGREGATE - 265)) | (1 << (MySQLParser.ALGORITHM - 265)) | (1 << (MySQLParser.ANY - 265)) | (1 << (MySQLParser.AT - 265)) | (1 << (MySQLParser.AUTHORS - 265)) | (1 << (MySQLParser.AUTOCOMMIT - 265)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 265)) | (1 << (MySQLParser.AUTO_INCREMENT - 265)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 265)) | (1 << (MySQLParser.BEGIN - 265)) | (1 << (MySQLParser.BINLOG - 265)) | (1 << (MySQLParser.BIT - 265)) | (1 << (MySQLParser.BLOCK - 265)) | (1 << (MySQLParser.BOOL - 265)) | (1 << (MySQLParser.BOOLEAN - 265)) | (1 << (MySQLParser.BTREE - 265)) | (1 << (MySQLParser.CACHE - 265)) | (1 << (MySQLParser.CASCADED - 265)) | (1 << (MySQLParser.CHAIN - 265)) | (1 << (MySQLParser.CHANGED - 265)) | (1 << (MySQLParser.CHANNEL - 265)) | (1 << (MySQLParser.CHECKSUM - 265)) | (1 << (MySQLParser.PAGE_CHECKSUM - 265)) | (1 << (MySQLParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (MySQLParser.CLASS_ORIGIN - 297)) | (1 << (MySQLParser.CLIENT - 297)) | (1 << (MySQLParser.CLOSE - 297)) | (1 << (MySQLParser.COALESCE - 297)) | (1 << (MySQLParser.CODE - 297)) | (1 << (MySQLParser.COLUMNS - 297)) | (1 << (MySQLParser.COLUMN_FORMAT - 297)) | (1 << (MySQLParser.COLUMN_NAME - 297)) | (1 << (MySQLParser.COMMENT - 297)) | (1 << (MySQLParser.COMMIT - 297)) | (1 << (MySQLParser.COMPACT - 297)) | (1 << (MySQLParser.COMPLETION - 297)) | (1 << (MySQLParser.COMPRESSED - 297)) | (1 << (MySQLParser.COMPRESSION - 297)) | (1 << (MySQLParser.CONCURRENT - 297)) | (1 << (MySQLParser.CONNECTION - 297)) | (1 << (MySQLParser.CONSISTENT - 297)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 297)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 297)) | (1 << (MySQLParser.CONSTRAINT_NAME - 297)) | (1 << (MySQLParser.CONTAINS - 297)) | (1 << (MySQLParser.CONTEXT - 297)) | (1 << (MySQLParser.CONTRIBUTORS - 297)) | (1 << (MySQLParser.COPY - 297)) | (1 << (MySQLParser.CPU - 297)) | (1 << (MySQLParser.CURSOR_NAME - 297)) | (1 << (MySQLParser.DATA - 297)) | (1 << (MySQLParser.DATAFILE - 297)) | (1 << (MySQLParser.DEALLOCATE - 297)) | (1 << (MySQLParser.DEFAULT_AUTH - 297)) | (1 << (MySQLParser.DEFINER - 297)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1f) == 0 && ((1 << (_la - 329)) & ((1 << (MySQLParser.DES_KEY_FILE - 329)) | (1 << (MySQLParser.DIRECTORY - 329)) | (1 << (MySQLParser.DISABLE - 329)) | (1 << (MySQLParser.DISCARD - 329)) | (1 << (MySQLParser.DISK - 329)) | (1 << (MySQLParser.DO - 329)) | (1 << (MySQLParser.DUMPFILE - 329)) | (1 << (MySQLParser.DUPLICATE - 329)) | (1 << (MySQLParser.DYNAMIC - 329)) | (1 << (MySQLParser.ENABLE - 329)) | (1 << (MySQLParser.ENCRYPTION - 329)) | (1 << (MySQLParser.END - 329)) | (1 << (MySQLParser.ENDS - 329)) | (1 << (MySQLParser.ENGINE - 329)) | (1 << (MySQLParser.ENGINES - 329)) | (1 << (MySQLParser.ERROR - 329)) | (1 << (MySQLParser.ERRORS - 329)) | (1 << (MySQLParser.ESCAPE - 329)) | (1 << (MySQLParser.EVEN - 329)) | (1 << (MySQLParser.EVENT - 329)) | (1 << (MySQLParser.EVENTS - 329)) | (1 << (MySQLParser.EVERY - 329)) | (1 << (MySQLParser.EXCHANGE - 329)) | (1 << (MySQLParser.EXCLUSIVE - 329)) | (1 << (MySQLParser.EXPIRE - 329)) | (1 << (MySQLParser.EXPORT - 329)) | (1 << (MySQLParser.EXTENDED - 329)) | (1 << (MySQLParser.EXTENT_SIZE - 329)) | (1 << (MySQLParser.FAST - 329)) | (1 << (MySQLParser.FAULTS - 329)) | (1 << (MySQLParser.FIELDS - 329)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1f) == 0 && ((1 << (_la - 361)) & ((1 << (MySQLParser.FILTER - 361)) | (1 << (MySQLParser.FIRST - 361)) | (1 << (MySQLParser.FIXED - 361)) | (1 << (MySQLParser.FLUSH - 361)) | (1 << (MySQLParser.FOLLOWS - 361)) | (1 << (MySQLParser.FOUND - 361)) | (1 << (MySQLParser.FULL - 361)) | (1 << (MySQLParser.FUNCTION - 361)) | (1 << (MySQLParser.GENERAL - 361)) | (1 << (MySQLParser.GLOBAL - 361)) | (1 << (MySQLParser.GRANTS - 361)) | (1 << (MySQLParser.GROUP_REPLICATION - 361)) | (1 << (MySQLParser.HANDLER - 361)) | (1 << (MySQLParser.HASH - 361)) | (1 << (MySQLParser.HELP - 361)) | (1 << (MySQLParser.HOST - 361)) | (1 << (MySQLParser.HOSTS - 361)) | (1 << (MySQLParser.IDENTIFIED - 361)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 361)) | (1 << (MySQLParser.IMPORT - 361)) | (1 << (MySQLParser.INDEXES - 361)) | (1 << (MySQLParser.INITIAL_SIZE - 361)) | (1 << (MySQLParser.INPLACE - 361)) | (1 << (MySQLParser.INSERT_METHOD - 361)) | (1 << (MySQLParser.INSTALL - 361)) | (1 << (MySQLParser.INSTANCE - 361)) | (1 << (MySQLParser.INVISIBLE - 361)) | (1 << (MySQLParser.INVOKER - 361)) | (1 << (MySQLParser.IO - 361)) | (1 << (MySQLParser.IO_THREAD - 361)) | (1 << (MySQLParser.IPC - 361)) | (1 << (MySQLParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1f) == 0 && ((1 << (_la - 393)) & ((1 << (MySQLParser.ISSUER - 393)) | (1 << (MySQLParser.JSON - 393)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 393)) | (1 << (MySQLParser.LANGUAGE - 393)) | (1 << (MySQLParser.LAST - 393)) | (1 << (MySQLParser.LEAVES - 393)) | (1 << (MySQLParser.LESS - 393)) | (1 << (MySQLParser.LEVEL - 393)) | (1 << (MySQLParser.LIST - 393)) | (1 << (MySQLParser.LOCAL - 393)) | (1 << (MySQLParser.LOGFILE - 393)) | (1 << (MySQLParser.LOGS - 393)) | (1 << (MySQLParser.MASTER - 393)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 393)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 393)) | (1 << (MySQLParser.MASTER_DELAY - 393)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (MySQLParser.MASTER_HOST - 393)) | (1 << (MySQLParser.MASTER_LOG_FILE - 393)) | (1 << (MySQLParser.MASTER_LOG_POS - 393)) | (1 << (MySQLParser.MASTER_PASSWORD - 393)) | (1 << (MySQLParser.MASTER_PORT - 393)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 393)) | (1 << (MySQLParser.MASTER_SSL - 393)) | (1 << (MySQLParser.MASTER_SSL_CA - 393)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 393)) | (1 << (MySQLParser.MASTER_SSL_CERT - 393)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 393)) | (1 << (MySQLParser.MASTER_SSL_CRL - 393)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 393)) | (1 << (MySQLParser.MASTER_SSL_KEY - 393)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1f) == 0 && ((1 << (_la - 425)) & ((1 << (MySQLParser.MASTER_USER - 425)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_ROWS - 425)) | (1 << (MySQLParser.MAX_SIZE - 425)) | (1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 425)) | (1 << (MySQLParser.MEDIUM - 425)) | (1 << (MySQLParser.MERGE - 425)) | (1 << (MySQLParser.MESSAGE_TEXT - 425)) | (1 << (MySQLParser.MID - 425)) | (1 << (MySQLParser.MIGRATE - 425)) | (1 << (MySQLParser.MIN_ROWS - 425)) | (1 << (MySQLParser.MODE - 425)) | (1 << (MySQLParser.MODIFY - 425)) | (1 << (MySQLParser.MUTEX - 425)) | (1 << (MySQLParser.MYSQL - 425)) | (1 << (MySQLParser.MYSQL_ERRNO - 425)) | (1 << (MySQLParser.NAME - 425)) | (1 << (MySQLParser.NAMES - 425)) | (1 << (MySQLParser.NCHAR - 425)) | (1 << (MySQLParser.NEVER - 425)) | (1 << (MySQLParser.NEXT - 425)) | (1 << (MySQLParser.NO - 425)) | (1 << (MySQLParser.NODEGROUP - 425)) | (1 << (MySQLParser.NONE - 425)) | (1 << (MySQLParser.OFFLINE - 425)) | (1 << (MySQLParser.OFFSET - 425)) | (1 << (MySQLParser.OJ - 425)) | (1 << (MySQLParser.OLD_PASSWORD - 425)) | (1 << (MySQLParser.ONE - 425)) | (1 << (MySQLParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1f) == 0 && ((1 << (_la - 457)) & ((1 << (MySQLParser.ONLY - 457)) | (1 << (MySQLParser.OPEN - 457)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 457)) | (1 << (MySQLParser.OPTIONS - 457)) | (1 << (MySQLParser.OWNER - 457)) | (1 << (MySQLParser.PACK_KEYS - 457)) | (1 << (MySQLParser.PAGE - 457)) | (1 << (MySQLParser.PARSER - 457)) | (1 << (MySQLParser.PARTIAL - 457)) | (1 << (MySQLParser.PARTITIONING - 457)) | (1 << (MySQLParser.PARTITIONS - 457)) | (1 << (MySQLParser.PASSWORD - 457)) | (1 << (MySQLParser.PHASE - 457)) | (1 << (MySQLParser.PLUGIN - 457)) | (1 << (MySQLParser.PLUGIN_DIR - 457)) | (1 << (MySQLParser.PLUGINS - 457)) | (1 << (MySQLParser.PORT - 457)) | (1 << (MySQLParser.PRECEDES - 457)) | (1 << (MySQLParser.PREPARE - 457)) | (1 << (MySQLParser.PRESERVE - 457)) | (1 << (MySQLParser.PREV - 457)) | (1 << (MySQLParser.PROCESSLIST - 457)) | (1 << (MySQLParser.PROFILE - 457)) | (1 << (MySQLParser.PROFILES - 457)) | (1 << (MySQLParser.PROXY - 457)) | (1 << (MySQLParser.QUERY - 457)) | (1 << (MySQLParser.QUICK - 457)) | (1 << (MySQLParser.REBUILD - 457)) | (1 << (MySQLParser.RECOVER - 457)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 457)) | (1 << (MySQLParser.REDUNDANT - 457)) | (1 << (MySQLParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1f) == 0 && ((1 << (_la - 489)) & ((1 << (MySQLParser.RELAY_LOG_FILE - 489)) | (1 << (MySQLParser.RELAY_LOG_POS - 489)) | (1 << (MySQLParser.RELAYLOG - 489)) | (1 << (MySQLParser.REMOVE - 489)) | (1 << (MySQLParser.REORGANIZE - 489)) | (1 << (MySQLParser.REPAIR - 489)) | (1 << (MySQLParser.REPLICATE_DO_DB - 489)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 489)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 489)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (MySQLParser.REPLICATION - 489)) | (1 << (MySQLParser.RESET - 489)) | (1 << (MySQLParser.RESUME - 489)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 489)) | (1 << (MySQLParser.RETURNS - 489)) | (1 << (MySQLParser.ROLE - 489)) | (1 << (MySQLParser.ROLLBACK - 489)) | (1 << (MySQLParser.ROLLUP - 489)) | (1 << (MySQLParser.ROTATE - 489)) | (1 << (MySQLParser.ROW - 489)) | (1 << (MySQLParser.ROWS - 489)) | (1 << (MySQLParser.ROW_FORMAT - 489)) | (1 << (MySQLParser.SAVEPOINT - 489)) | (1 << (MySQLParser.SCHEDULE - 489)) | (1 << (MySQLParser.SECURITY - 489)) | (1 << (MySQLParser.SERVER - 489)) | (1 << (MySQLParser.SESSION - 489)) | (1 << (MySQLParser.SHARE - 489)) | (1 << (MySQLParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1f) == 0 && ((1 << (_la - 521)) & ((1 << (MySQLParser.SIGNED - 521)) | (1 << (MySQLParser.SIMPLE - 521)) | (1 << (MySQLParser.SLAVE - 521)) | (1 << (MySQLParser.SLOW - 521)) | (1 << (MySQLParser.SNAPSHOT - 521)) | (1 << (MySQLParser.SOCKET - 521)) | (1 << (MySQLParser.SOME - 521)) | (1 << (MySQLParser.SONAME - 521)) | (1 << (MySQLParser.SOUNDS - 521)) | (1 << (MySQLParser.SOURCE - 521)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 521)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 521)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 521)) | (1 << (MySQLParser.SQL_CACHE - 521)) | (1 << (MySQLParser.SQL_NO_CACHE - 521)) | (1 << (MySQLParser.SQL_THREAD - 521)) | (1 << (MySQLParser.START - 521)) | (1 << (MySQLParser.STARTS - 521)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 521)) | (1 << (MySQLParser.STATS_PERSISTENT - 521)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 521)) | (1 << (MySQLParser.STATUS - 521)) | (1 << (MySQLParser.STOP - 521)) | (1 << (MySQLParser.STORAGE - 521)) | (1 << (MySQLParser.STRING - 521)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 521)) | (1 << (MySQLParser.SUBJECT - 521)) | (1 << (MySQLParser.SUBPARTITION - 521)) | (1 << (MySQLParser.SUBPARTITIONS - 521)) | (1 << (MySQLParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1f) == 0 && ((1 << (_la - 553)) & ((1 << (MySQLParser.SWAPS - 553)) | (1 << (MySQLParser.SWITCHES - 553)) | (1 << (MySQLParser.TABLE_NAME - 553)) | (1 << (MySQLParser.TABLESPACE - 553)) | (1 << (MySQLParser.TEMPORARY - 553)) | (1 << (MySQLParser.TEMPTABLE - 553)) | (1 << (MySQLParser.THAN - 553)) | (1 << (MySQLParser.TRADITIONAL - 553)) | (1 << (MySQLParser.TRANSACTION - 553)) | (1 << (MySQLParser.TRANSACTIONAL - 553)) | (1 << (MySQLParser.TRIGGERS - 553)) | (1 << (MySQLParser.TRUNCATE - 553)) | (1 << (MySQLParser.UNDEFINED - 553)) | (1 << (MySQLParser.UNDOFILE - 553)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 553)) | (1 << (MySQLParser.UNINSTALL - 553)) | (1 << (MySQLParser.UNKNOWN - 553)) | (1 << (MySQLParser.UNTIL - 553)) | (1 << (MySQLParser.UPGRADE - 553)) | (1 << (MySQLParser.USER - 553)) | (1 << (MySQLParser.USE_FRM - 553)) | (1 << (MySQLParser.USER_RESOURCES - 553)) | (1 << (MySQLParser.VALIDATION - 553)) | (1 << (MySQLParser.VALUE - 553)) | (1 << (MySQLParser.VARIABLES - 553)) | (1 << (MySQLParser.VIEW - 553)) | (1 << (MySQLParser.VISIBLE - 553)) | (1 << (MySQLParser.WAIT - 553)) | (1 << (MySQLParser.WARNINGS - 553)) | (1 << (MySQLParser.WITHOUT - 553)) | (1 << (MySQLParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1f) == 0 && ((1 << (_la - 585)) & ((1 << (MySQLParser.WRAPPER - 585)) | (1 << (MySQLParser.X509 - 585)) | (1 << (MySQLParser.XA - 585)) | (1 << (MySQLParser.XML - 585)) | (1 << (MySQLParser.INTERNAL - 585)) | (1 << (MySQLParser.QUARTER - 585)) | (1 << (MySQLParser.MONTH - 585)) | (1 << (MySQLParser.DAY - 585)) | (1 << (MySQLParser.HOUR - 585)) | (1 << (MySQLParser.MINUTE - 585)) | (1 << (MySQLParser.WEEK - 585)) | (1 << (MySQLParser.SECOND - 585)) | (1 << (MySQLParser.MICROSECOND - 585)) | (1 << (MySQLParser.TABLES - 585)) | (1 << (MySQLParser.ROUTINE - 585)) | (1 << (MySQLParser.EXECUTE - 585)) | (1 << (MySQLParser.FILE - 585)) | (1 << (MySQLParser.PROCESS - 585)) | (1 << (MySQLParser.RELOAD - 585)) | (1 << (MySQLParser.SHUTDOWN - 585)) | (1 << (MySQLParser.SUPER - 585)) | (1 << (MySQLParser.PRIVILEGES - 585)) | (1 << (MySQLParser.AUDIT_ADMIN - 585)) | (1 << (MySQLParser.BACKUP_ADMIN - 585)) | (1 << (MySQLParser.BINLOG_ADMIN - 585)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (MySQLParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1f) == 0 && ((1 << (_la - 617)) & ((1 << (MySQLParser.CONNECTION_ADMIN - 617)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (MySQLParser.FIREWALL_ADMIN - 617)) | (1 << (MySQLParser.FIREWALL_USER - 617)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (MySQLParser.NDB_STORED_USER - 617)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.REPLICATION_APPLIER - 617)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 617)) | (1 << (MySQLParser.ROLE_ADMIN - 617)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.SET_USER_ID - 617)) | (1 << (MySQLParser.SHOW_ROUTINE - 617)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 617)) | (1 << (MySQLParser.ARMSCII8 - 617)) | (1 << (MySQLParser.ASCII - 617)) | (1 << (MySQLParser.BIG5 - 617)) | (1 << (MySQLParser.CP1250 - 617)) | (1 << (MySQLParser.CP1251 - 617)) | (1 << (MySQLParser.CP1256 - 617)) | (1 << (MySQLParser.CP1257 - 617)) | (1 << (MySQLParser.CP850 - 617)) | (1 << (MySQLParser.CP852 - 617)) | (1 << (MySQLParser.CP866 - 617)) | (1 << (MySQLParser.CP932 - 617)) | (1 << (MySQLParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1f) == 0 && ((1 << (_la - 649)) & ((1 << (MySQLParser.EUCJPMS - 649)) | (1 << (MySQLParser.EUCKR - 649)) | (1 << (MySQLParser.GB2312 - 649)) | (1 << (MySQLParser.GBK - 649)) | (1 << (MySQLParser.GEOSTD8 - 649)) | (1 << (MySQLParser.GREEK - 649)) | (1 << (MySQLParser.HEBREW - 649)) | (1 << (MySQLParser.HP8 - 649)) | (1 << (MySQLParser.KEYBCS2 - 649)) | (1 << (MySQLParser.KOI8R - 649)) | (1 << (MySQLParser.KOI8U - 649)) | (1 << (MySQLParser.LATIN1 - 649)) | (1 << (MySQLParser.LATIN2 - 649)) | (1 << (MySQLParser.LATIN5 - 649)) | (1 << (MySQLParser.LATIN7 - 649)) | (1 << (MySQLParser.MACCE - 649)) | (1 << (MySQLParser.MACROMAN - 649)) | (1 << (MySQLParser.SJIS - 649)) | (1 << (MySQLParser.SWE7 - 649)) | (1 << (MySQLParser.TIS620 - 649)) | (1 << (MySQLParser.UCS2 - 649)) | (1 << (MySQLParser.UJIS - 649)) | (1 << (MySQLParser.UTF16 - 649)) | (1 << (MySQLParser.UTF16LE - 649)) | (1 << (MySQLParser.UTF32 - 649)) | (1 << (MySQLParser.UTF8 - 649)) | (1 << (MySQLParser.UTF8MB3 - 649)) | (1 << (MySQLParser.UTF8MB4 - 649)) | (1 << (MySQLParser.ARCHIVE - 649)) | (1 << (MySQLParser.BLACKHOLE - 649)) | (1 << (MySQLParser.CSV - 649)) | (1 << (MySQLParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1f) == 0 && ((1 << (_la - 681)) & ((1 << (MySQLParser.INNODB - 681)) | (1 << (MySQLParser.MEMORY - 681)) | (1 << (MySQLParser.MRG_MYISAM - 681)) | (1 << (MySQLParser.MYISAM - 681)) | (1 << (MySQLParser.NDB - 681)) | (1 << (MySQLParser.NDBCLUSTER - 681)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 681)) | (1 << (MySQLParser.TOKUDB - 681)) | (1 << (MySQLParser.REPEATABLE - 681)) | (1 << (MySQLParser.COMMITTED - 681)) | (1 << (MySQLParser.UNCOMMITTED - 681)) | (1 << (MySQLParser.SERIALIZABLE - 681)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 681)) | (1 << (MySQLParser.LINESTRING - 681)) | (1 << (MySQLParser.MULTILINESTRING - 681)) | (1 << (MySQLParser.MULTIPOINT - 681)) | (1 << (MySQLParser.MULTIPOLYGON - 681)) | (1 << (MySQLParser.POINT - 681)) | (1 << (MySQLParser.POLYGON - 681)) | (1 << (MySQLParser.ABS - 681)) | (1 << (MySQLParser.ACOS - 681)) | (1 << (MySQLParser.ADDDATE - 681)) | (1 << (MySQLParser.ADDTIME - 681)) | (1 << (MySQLParser.AES_DECRYPT - 681)) | (1 << (MySQLParser.AES_ENCRYPT - 681)) | (1 << (MySQLParser.AREA - 681)) | (1 << (MySQLParser.ASBINARY - 681)) | (1 << (MySQLParser.ASIN - 681)) | (1 << (MySQLParser.ASTEXT - 681)) | (1 << (MySQLParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1f) == 0 && ((1 << (_la - 713)) & ((1 << (MySQLParser.ASWKT - 713)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 713)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 713)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 713)) | (1 << (MySQLParser.ATAN - 713)) | (1 << (MySQLParser.ATAN2 - 713)) | (1 << (MySQLParser.BENCHMARK - 713)) | (1 << (MySQLParser.BIN - 713)) | (1 << (MySQLParser.BIT_COUNT - 713)) | (1 << (MySQLParser.BIT_LENGTH - 713)) | (1 << (MySQLParser.BUFFER - 713)) | (1 << (MySQLParser.CATALOG_NAME - 713)) | (1 << (MySQLParser.CEIL - 713)) | (1 << (MySQLParser.CEILING - 713)) | (1 << (MySQLParser.CENTROID - 713)) | (1 << (MySQLParser.CHARACTER_LENGTH - 713)) | (1 << (MySQLParser.CHARSET - 713)) | (1 << (MySQLParser.CHAR_LENGTH - 713)) | (1 << (MySQLParser.COERCIBILITY - 713)) | (1 << (MySQLParser.COLLATION - 713)) | (1 << (MySQLParser.COMPRESS - 713)) | (1 << (MySQLParser.CONCAT - 713)) | (1 << (MySQLParser.CONCAT_WS - 713)) | (1 << (MySQLParser.CONNECTION_ID - 713)) | (1 << (MySQLParser.CONV - 713)) | (1 << (MySQLParser.CONVERT_TZ - 713)) | (1 << (MySQLParser.COS - 713)) | (1 << (MySQLParser.COT - 713)) | (1 << (MySQLParser.CRC32 - 713)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1f) == 0 && ((1 << (_la - 745)) & ((1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 745)) | (1 << (MySQLParser.CREATE_DIGEST - 745)) | (1 << (MySQLParser.CROSSES - 745)) | (1 << (MySQLParser.DATEDIFF - 745)) | (1 << (MySQLParser.DATE_FORMAT - 745)) | (1 << (MySQLParser.DAYNAME - 745)) | (1 << (MySQLParser.DAYOFMONTH - 745)) | (1 << (MySQLParser.DAYOFWEEK - 745)) | (1 << (MySQLParser.DAYOFYEAR - 745)) | (1 << (MySQLParser.DECODE - 745)) | (1 << (MySQLParser.DEGREES - 745)) | (1 << (MySQLParser.DES_DECRYPT - 745)) | (1 << (MySQLParser.DES_ENCRYPT - 745)) | (1 << (MySQLParser.DIMENSION - 745)) | (1 << (MySQLParser.DISJOINT - 745)) | (1 << (MySQLParser.ELT - 745)) | (1 << (MySQLParser.ENCODE - 745)) | (1 << (MySQLParser.ENCRYPT - 745)) | (1 << (MySQLParser.ENDPOINT - 745)) | (1 << (MySQLParser.ENVELOPE - 745)) | (1 << (MySQLParser.EQUALS - 745)) | (1 << (MySQLParser.EXP - 745)) | (1 << (MySQLParser.EXPORT_SET - 745)) | (1 << (MySQLParser.EXTERIORRING - 745)) | (1 << (MySQLParser.EXTRACTVALUE - 745)) | (1 << (MySQLParser.FIELD - 745)) | (1 << (MySQLParser.FIND_IN_SET - 745)) | (1 << (MySQLParser.FLOOR - 745)) | (1 << (MySQLParser.FORMAT - 745)) | (1 << (MySQLParser.FOUND_ROWS - 745)) | (1 << (MySQLParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1f) == 0 && ((1 << (_la - 777)) & ((1 << (MySQLParser.FROM_DAYS - 777)) | (1 << (MySQLParser.FROM_UNIXTIME - 777)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 777)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 777)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYN - 777)) | (1 << (MySQLParser.GEOMETRYTYPE - 777)) | (1 << (MySQLParser.GEOMFROMTEXT - 777)) | (1 << (MySQLParser.GEOMFROMWKB - 777)) | (1 << (MySQLParser.GET_FORMAT - 777)) | (1 << (MySQLParser.GET_LOCK - 777)) | (1 << (MySQLParser.GLENGTH - 777)) | (1 << (MySQLParser.GREATEST - 777)) | (1 << (MySQLParser.GTID_SUBSET - 777)) | (1 << (MySQLParser.GTID_SUBTRACT - 777)) | (1 << (MySQLParser.HEX - 777)) | (1 << (MySQLParser.IFNULL - 777)) | (1 << (MySQLParser.INET6_ATON - 777)) | (1 << (MySQLParser.INET6_NTOA - 777)) | (1 << (MySQLParser.INET_ATON - 777)) | (1 << (MySQLParser.INET_NTOA - 777)) | (1 << (MySQLParser.INSTR - 777)) | (1 << (MySQLParser.INTERIORRINGN - 777)) | (1 << (MySQLParser.INTERSECTS - 777)) | (1 << (MySQLParser.ISCLOSED - 777)) | (1 << (MySQLParser.ISEMPTY - 777)) | (1 << (MySQLParser.ISNULL - 777)) | (1 << (MySQLParser.ISSIMPLE - 777)) | (1 << (MySQLParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1f) == 0 && ((1 << (_la - 809)) & ((1 << (MySQLParser.IS_IPV4 - 809)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 809)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 809)) | (1 << (MySQLParser.IS_IPV6 - 809)) | (1 << (MySQLParser.IS_USED_LOCK - 809)) | (1 << (MySQLParser.LAST_INSERT_ID - 809)) | (1 << (MySQLParser.LCASE - 809)) | (1 << (MySQLParser.LEAST - 809)) | (1 << (MySQLParser.LENGTH - 809)) | (1 << (MySQLParser.LINEFROMTEXT - 809)) | (1 << (MySQLParser.LINEFROMWKB - 809)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 809)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 809)) | (1 << (MySQLParser.LN - 809)) | (1 << (MySQLParser.LOAD_FILE - 809)) | (1 << (MySQLParser.LOCATE - 809)) | (1 << (MySQLParser.LOG - 809)) | (1 << (MySQLParser.LOG10 - 809)) | (1 << (MySQLParser.LOG2 - 809)) | (1 << (MySQLParser.LOWER - 809)) | (1 << (MySQLParser.LPAD - 809)) | (1 << (MySQLParser.LTRIM - 809)) | (1 << (MySQLParser.MAKEDATE - 809)) | (1 << (MySQLParser.MAKETIME - 809)) | (1 << (MySQLParser.MAKE_SET - 809)) | (1 << (MySQLParser.MASTER_POS_WAIT - 809)) | (1 << (MySQLParser.MBRCONTAINS - 809)) | (1 << (MySQLParser.MBRDISJOINT - 809)) | (1 << (MySQLParser.MBREQUAL - 809)) | (1 << (MySQLParser.MBRINTERSECTS - 809)) | (1 << (MySQLParser.MBROVERLAPS - 809)) | (1 << (MySQLParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1f) == 0 && ((1 << (_la - 841)) & ((1 << (MySQLParser.MBRWITHIN - 841)) | (1 << (MySQLParser.MD5 - 841)) | (1 << (MySQLParser.MLINEFROMTEXT - 841)) | (1 << (MySQLParser.MLINEFROMWKB - 841)) | (1 << (MySQLParser.MONTHNAME - 841)) | (1 << (MySQLParser.MPOINTFROMTEXT - 841)) | (1 << (MySQLParser.MPOINTFROMWKB - 841)) | (1 << (MySQLParser.MPOLYFROMTEXT - 841)) | (1 << (MySQLParser.MPOLYFROMWKB - 841)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 841)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 841)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (MySQLParser.NAME_CONST - 841)) | (1 << (MySQLParser.NULLIF - 841)) | (1 << (MySQLParser.NUMGEOMETRIES - 841)) | (1 << (MySQLParser.NUMINTERIORRINGS - 841)) | (1 << (MySQLParser.NUMPOINTS - 841)) | (1 << (MySQLParser.OCT - 841)) | (1 << (MySQLParser.OCTET_LENGTH - 841)) | (1 << (MySQLParser.ORD - 841)) | (1 << (MySQLParser.OVERLAPS - 841)) | (1 << (MySQLParser.PERIOD_ADD - 841)) | (1 << (MySQLParser.PERIOD_DIFF - 841)) | (1 << (MySQLParser.PI - 841)) | (1 << (MySQLParser.POINTFROMTEXT - 841)) | (1 << (MySQLParser.POINTFROMWKB - 841)) | (1 << (MySQLParser.POINTN - 841)) | (1 << (MySQLParser.POLYFROMTEXT - 841)) | (1 << (MySQLParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1f) == 0 && ((1 << (_la - 873)) & ((1 << (MySQLParser.POLYGONFROMTEXT - 873)) | (1 << (MySQLParser.POLYGONFROMWKB - 873)) | (1 << (MySQLParser.POW - 873)) | (1 << (MySQLParser.POWER - 873)) | (1 << (MySQLParser.QUOTE - 873)) | (1 << (MySQLParser.RADIANS - 873)) | (1 << (MySQLParser.RAND - 873)) | (1 << (MySQLParser.RANDOM_BYTES - 873)) | (1 << (MySQLParser.RELEASE_LOCK - 873)) | (1 << (MySQLParser.REVERSE - 873)) | (1 << (MySQLParser.ROUND - 873)) | (1 << (MySQLParser.ROW_COUNT - 873)) | (1 << (MySQLParser.RPAD - 873)) | (1 << (MySQLParser.RTRIM - 873)) | (1 << (MySQLParser.SEC_TO_TIME - 873)) | (1 << (MySQLParser.SESSION_USER - 873)) | (1 << (MySQLParser.SHA - 873)) | (1 << (MySQLParser.SHA1 - 873)) | (1 << (MySQLParser.SHA2 - 873)) | (1 << (MySQLParser.SCHEMA_NAME - 873)) | (1 << (MySQLParser.SIGN - 873)) | (1 << (MySQLParser.SIN - 873)) | (1 << (MySQLParser.SLEEP - 873)) | (1 << (MySQLParser.SOUNDEX - 873)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (MySQLParser.SQRT - 873)) | (1 << (MySQLParser.SRID - 873)) | (1 << (MySQLParser.STARTPOINT - 873)) | (1 << (MySQLParser.STRCMP - 873)) | (1 << (MySQLParser.STR_TO_DATE - 873)) | (1 << (MySQLParser.ST_AREA - 873)) | (1 << (MySQLParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1f) == 0 && ((1 << (_la - 905)) & ((1 << (MySQLParser.ST_ASTEXT - 905)) | (1 << (MySQLParser.ST_ASWKB - 905)) | (1 << (MySQLParser.ST_ASWKT - 905)) | (1 << (MySQLParser.ST_BUFFER - 905)) | (1 << (MySQLParser.ST_CENTROID - 905)) | (1 << (MySQLParser.ST_CONTAINS - 905)) | (1 << (MySQLParser.ST_CROSSES - 905)) | (1 << (MySQLParser.ST_DIFFERENCE - 905)) | (1 << (MySQLParser.ST_DIMENSION - 905)) | (1 << (MySQLParser.ST_DISJOINT - 905)) | (1 << (MySQLParser.ST_DISTANCE - 905)) | (1 << (MySQLParser.ST_ENDPOINT - 905)) | (1 << (MySQLParser.ST_ENVELOPE - 905)) | (1 << (MySQLParser.ST_EQUALS - 905)) | (1 << (MySQLParser.ST_EXTERIORRING - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYN - 905)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 905)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 905)) | (1 << (MySQLParser.ST_INTERIORRINGN - 905)) | (1 << (MySQLParser.ST_INTERSECTION - 905)) | (1 << (MySQLParser.ST_INTERSECTS - 905)) | (1 << (MySQLParser.ST_ISCLOSED - 905)) | (1 << (MySQLParser.ST_ISEMPTY - 905)) | (1 << (MySQLParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1f) == 0 && ((1 << (_la - 937)) & ((1 << (MySQLParser.ST_LINEFROMTEXT - 937)) | (1 << (MySQLParser.ST_LINEFROMWKB - 937)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 937)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 937)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 937)) | (1 << (MySQLParser.ST_NUMPOINTS - 937)) | (1 << (MySQLParser.ST_OVERLAPS - 937)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 937)) | (1 << (MySQLParser.ST_POINTFROMWKB - 937)) | (1 << (MySQLParser.ST_POINTN - 937)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 937)) | (1 << (MySQLParser.ST_POLYFROMWKB - 937)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 937)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 937)) | (1 << (MySQLParser.ST_SRID - 937)) | (1 << (MySQLParser.ST_STARTPOINT - 937)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 937)) | (1 << (MySQLParser.ST_TOUCHES - 937)) | (1 << (MySQLParser.ST_UNION - 937)) | (1 << (MySQLParser.ST_WITHIN - 937)) | (1 << (MySQLParser.ST_X - 937)) | (1 << (MySQLParser.ST_Y - 937)) | (1 << (MySQLParser.SUBDATE - 937)) | (1 << (MySQLParser.SUBSTRING_INDEX - 937)) | (1 << (MySQLParser.SUBTIME - 937)) | (1 << (MySQLParser.SYSTEM_USER - 937)) | (1 << (MySQLParser.TAN - 937)) | (1 << (MySQLParser.TIMEDIFF - 937)) | (1 << (MySQLParser.TIMESTAMPADD - 937)) | (1 << (MySQLParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1f) == 0 && ((1 << (_la - 969)) & ((1 << (MySQLParser.TIME_FORMAT - 969)) | (1 << (MySQLParser.TIME_TO_SEC - 969)) | (1 << (MySQLParser.TOUCHES - 969)) | (1 << (MySQLParser.TO_BASE64 - 969)) | (1 << (MySQLParser.TO_DAYS - 969)) | (1 << (MySQLParser.TO_SECONDS - 969)) | (1 << (MySQLParser.UCASE - 969)) | (1 << (MySQLParser.UNCOMPRESS - 969)) | (1 << (MySQLParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (MySQLParser.UNHEX - 969)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 969)) | (1 << (MySQLParser.UPDATEXML - 969)) | (1 << (MySQLParser.UPPER - 969)) | (1 << (MySQLParser.UUID - 969)) | (1 << (MySQLParser.UUID_SHORT - 969)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (MySQLParser.VERSION - 969)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (MySQLParser.WEEKDAY - 969)) | (1 << (MySQLParser.WEEKOFYEAR - 969)) | (1 << (MySQLParser.WEIGHT_STRING - 969)) | (1 << (MySQLParser.WITHIN - 969)) | (1 << (MySQLParser.YEARWEEK - 969)) | (1 << (MySQLParser.Y_FUNCTION - 969)) | (1 << (MySQLParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (MySQLParser.PLUS - 1006)) | (1 << (MySQLParser.MINUS - 1006)) | (1 << (MySQLParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (MySQLParser.BIT_NOT_OP - 1006)) | (1 << (MySQLParser.LR_BRACKET - 1006)) | (1 << (MySQLParser.ZERO_DECIMAL - 1006)) | (1 << (MySQLParser.ONE_DECIMAL - 1006)) | (1 << (MySQLParser.TWO_DECIMAL - 1006)) | (1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (MySQLParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (MySQLParser.STRING_LITERAL - 1006)) | (1 << (MySQLParser.DECIMAL_LITERAL - 1006)) | (1 << (MySQLParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1f) == 0 && ((1 << (_la - 1038)) & ((1 << (MySQLParser.REAL_LITERAL - 1038)) | (1 << (MySQLParser.NULL_SPEC_LITERAL - 1038)) | (1 << (MySQLParser.BIT_STRING - 1038)) | (1 << (MySQLParser.STRING_CHARSET_NAME - 1038)) | (1 << (MySQLParser.ID - 1038)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1038)) | (1 << (MySQLParser.LOCAL_ID - 1038)) | (1 << (MySQLParser.GLOBAL_ID - 1038)))) !== 0)) { + this.state = 3055; + this.expressionsWithDefaults(); + } + + this.state = 3058; + this.match(MySQLParser.RR_BRACKET); + this.state = 3067; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3059; + this.match(MySQLParser.COMMA); + this.state = 3060; + this.match(MySQLParser.LR_BRACKET); + this.state = 3062; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << MySQLParser.CASE) | (1 << MySQLParser.CAST) | (1 << MySQLParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.CURRENT_USER - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DEFAULT - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)) | (1 << (MySQLParser.EXISTS - 32)) | (1 << (MySQLParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (MySQLParser.IF - 69)) | (1 << (MySQLParser.INSERT - 69)) | (1 << (MySQLParser.INTERVAL - 69)) | (1 << (MySQLParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (MySQLParser.NOT - 102)) | (1 << (MySQLParser.NULL_LITERAL - 102)) | (1 << (MySQLParser.NUMBER - 102)) | (1 << (MySQLParser.REPLACE - 102)) | (1 << (MySQLParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (MySQLParser.STACKED - 151)) | (1 << (MySQLParser.TRUE - 151)) | (1 << (MySQLParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.CHAR - 199)) | (1 << (MySQLParser.BINARY - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.AVG - 233)) | (1 << (MySQLParser.BIT_AND - 233)) | (1 << (MySQLParser.BIT_OR - 233)) | (1 << (MySQLParser.BIT_XOR - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.GROUP_CONCAT - 233)) | (1 << (MySQLParser.MAX - 233)) | (1 << (MySQLParser.MIN - 233)) | (1 << (MySQLParser.STD - 233)) | (1 << (MySQLParser.STDDEV - 233)) | (1 << (MySQLParser.STDDEV_POP - 233)) | (1 << (MySQLParser.STDDEV_SAMP - 233)) | (1 << (MySQLParser.SUM - 233)) | (1 << (MySQLParser.VAR_POP - 233)) | (1 << (MySQLParser.VAR_SAMP - 233)) | (1 << (MySQLParser.VARIANCE - 233)) | (1 << (MySQLParser.CURRENT_DATE - 233)) | (1 << (MySQLParser.CURRENT_TIME - 233)) | (1 << (MySQLParser.CURRENT_TIMESTAMP - 233)) | (1 << (MySQLParser.LOCALTIME - 233)) | (1 << (MySQLParser.CURDATE - 233)) | (1 << (MySQLParser.CURTIME - 233)) | (1 << (MySQLParser.DATE_ADD - 233)) | (1 << (MySQLParser.DATE_SUB - 233)) | (1 << (MySQLParser.EXTRACT - 233)) | (1 << (MySQLParser.LOCALTIMESTAMP - 233)) | (1 << (MySQLParser.NOW - 233)) | (1 << (MySQLParser.POSITION - 233)) | (1 << (MySQLParser.SUBSTR - 233)) | (1 << (MySQLParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1f) == 0 && ((1 << (_la - 265)) & ((1 << (MySQLParser.SYSDATE - 265)) | (1 << (MySQLParser.TRIM - 265)) | (1 << (MySQLParser.UTC_DATE - 265)) | (1 << (MySQLParser.UTC_TIME - 265)) | (1 << (MySQLParser.UTC_TIMESTAMP - 265)) | (1 << (MySQLParser.ACCOUNT - 265)) | (1 << (MySQLParser.ACTION - 265)) | (1 << (MySQLParser.AFTER - 265)) | (1 << (MySQLParser.AGGREGATE - 265)) | (1 << (MySQLParser.ALGORITHM - 265)) | (1 << (MySQLParser.ANY - 265)) | (1 << (MySQLParser.AT - 265)) | (1 << (MySQLParser.AUTHORS - 265)) | (1 << (MySQLParser.AUTOCOMMIT - 265)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 265)) | (1 << (MySQLParser.AUTO_INCREMENT - 265)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 265)) | (1 << (MySQLParser.BEGIN - 265)) | (1 << (MySQLParser.BINLOG - 265)) | (1 << (MySQLParser.BIT - 265)) | (1 << (MySQLParser.BLOCK - 265)) | (1 << (MySQLParser.BOOL - 265)) | (1 << (MySQLParser.BOOLEAN - 265)) | (1 << (MySQLParser.BTREE - 265)) | (1 << (MySQLParser.CACHE - 265)) | (1 << (MySQLParser.CASCADED - 265)) | (1 << (MySQLParser.CHAIN - 265)) | (1 << (MySQLParser.CHANGED - 265)) | (1 << (MySQLParser.CHANNEL - 265)) | (1 << (MySQLParser.CHECKSUM - 265)) | (1 << (MySQLParser.PAGE_CHECKSUM - 265)) | (1 << (MySQLParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (MySQLParser.CLASS_ORIGIN - 297)) | (1 << (MySQLParser.CLIENT - 297)) | (1 << (MySQLParser.CLOSE - 297)) | (1 << (MySQLParser.COALESCE - 297)) | (1 << (MySQLParser.CODE - 297)) | (1 << (MySQLParser.COLUMNS - 297)) | (1 << (MySQLParser.COLUMN_FORMAT - 297)) | (1 << (MySQLParser.COLUMN_NAME - 297)) | (1 << (MySQLParser.COMMENT - 297)) | (1 << (MySQLParser.COMMIT - 297)) | (1 << (MySQLParser.COMPACT - 297)) | (1 << (MySQLParser.COMPLETION - 297)) | (1 << (MySQLParser.COMPRESSED - 297)) | (1 << (MySQLParser.COMPRESSION - 297)) | (1 << (MySQLParser.CONCURRENT - 297)) | (1 << (MySQLParser.CONNECTION - 297)) | (1 << (MySQLParser.CONSISTENT - 297)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 297)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 297)) | (1 << (MySQLParser.CONSTRAINT_NAME - 297)) | (1 << (MySQLParser.CONTAINS - 297)) | (1 << (MySQLParser.CONTEXT - 297)) | (1 << (MySQLParser.CONTRIBUTORS - 297)) | (1 << (MySQLParser.COPY - 297)) | (1 << (MySQLParser.CPU - 297)) | (1 << (MySQLParser.CURSOR_NAME - 297)) | (1 << (MySQLParser.DATA - 297)) | (1 << (MySQLParser.DATAFILE - 297)) | (1 << (MySQLParser.DEALLOCATE - 297)) | (1 << (MySQLParser.DEFAULT_AUTH - 297)) | (1 << (MySQLParser.DEFINER - 297)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1f) == 0 && ((1 << (_la - 329)) & ((1 << (MySQLParser.DES_KEY_FILE - 329)) | (1 << (MySQLParser.DIRECTORY - 329)) | (1 << (MySQLParser.DISABLE - 329)) | (1 << (MySQLParser.DISCARD - 329)) | (1 << (MySQLParser.DISK - 329)) | (1 << (MySQLParser.DO - 329)) | (1 << (MySQLParser.DUMPFILE - 329)) | (1 << (MySQLParser.DUPLICATE - 329)) | (1 << (MySQLParser.DYNAMIC - 329)) | (1 << (MySQLParser.ENABLE - 329)) | (1 << (MySQLParser.ENCRYPTION - 329)) | (1 << (MySQLParser.END - 329)) | (1 << (MySQLParser.ENDS - 329)) | (1 << (MySQLParser.ENGINE - 329)) | (1 << (MySQLParser.ENGINES - 329)) | (1 << (MySQLParser.ERROR - 329)) | (1 << (MySQLParser.ERRORS - 329)) | (1 << (MySQLParser.ESCAPE - 329)) | (1 << (MySQLParser.EVEN - 329)) | (1 << (MySQLParser.EVENT - 329)) | (1 << (MySQLParser.EVENTS - 329)) | (1 << (MySQLParser.EVERY - 329)) | (1 << (MySQLParser.EXCHANGE - 329)) | (1 << (MySQLParser.EXCLUSIVE - 329)) | (1 << (MySQLParser.EXPIRE - 329)) | (1 << (MySQLParser.EXPORT - 329)) | (1 << (MySQLParser.EXTENDED - 329)) | (1 << (MySQLParser.EXTENT_SIZE - 329)) | (1 << (MySQLParser.FAST - 329)) | (1 << (MySQLParser.FAULTS - 329)) | (1 << (MySQLParser.FIELDS - 329)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1f) == 0 && ((1 << (_la - 361)) & ((1 << (MySQLParser.FILTER - 361)) | (1 << (MySQLParser.FIRST - 361)) | (1 << (MySQLParser.FIXED - 361)) | (1 << (MySQLParser.FLUSH - 361)) | (1 << (MySQLParser.FOLLOWS - 361)) | (1 << (MySQLParser.FOUND - 361)) | (1 << (MySQLParser.FULL - 361)) | (1 << (MySQLParser.FUNCTION - 361)) | (1 << (MySQLParser.GENERAL - 361)) | (1 << (MySQLParser.GLOBAL - 361)) | (1 << (MySQLParser.GRANTS - 361)) | (1 << (MySQLParser.GROUP_REPLICATION - 361)) | (1 << (MySQLParser.HANDLER - 361)) | (1 << (MySQLParser.HASH - 361)) | (1 << (MySQLParser.HELP - 361)) | (1 << (MySQLParser.HOST - 361)) | (1 << (MySQLParser.HOSTS - 361)) | (1 << (MySQLParser.IDENTIFIED - 361)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 361)) | (1 << (MySQLParser.IMPORT - 361)) | (1 << (MySQLParser.INDEXES - 361)) | (1 << (MySQLParser.INITIAL_SIZE - 361)) | (1 << (MySQLParser.INPLACE - 361)) | (1 << (MySQLParser.INSERT_METHOD - 361)) | (1 << (MySQLParser.INSTALL - 361)) | (1 << (MySQLParser.INSTANCE - 361)) | (1 << (MySQLParser.INVISIBLE - 361)) | (1 << (MySQLParser.INVOKER - 361)) | (1 << (MySQLParser.IO - 361)) | (1 << (MySQLParser.IO_THREAD - 361)) | (1 << (MySQLParser.IPC - 361)) | (1 << (MySQLParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1f) == 0 && ((1 << (_la - 393)) & ((1 << (MySQLParser.ISSUER - 393)) | (1 << (MySQLParser.JSON - 393)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 393)) | (1 << (MySQLParser.LANGUAGE - 393)) | (1 << (MySQLParser.LAST - 393)) | (1 << (MySQLParser.LEAVES - 393)) | (1 << (MySQLParser.LESS - 393)) | (1 << (MySQLParser.LEVEL - 393)) | (1 << (MySQLParser.LIST - 393)) | (1 << (MySQLParser.LOCAL - 393)) | (1 << (MySQLParser.LOGFILE - 393)) | (1 << (MySQLParser.LOGS - 393)) | (1 << (MySQLParser.MASTER - 393)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 393)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 393)) | (1 << (MySQLParser.MASTER_DELAY - 393)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (MySQLParser.MASTER_HOST - 393)) | (1 << (MySQLParser.MASTER_LOG_FILE - 393)) | (1 << (MySQLParser.MASTER_LOG_POS - 393)) | (1 << (MySQLParser.MASTER_PASSWORD - 393)) | (1 << (MySQLParser.MASTER_PORT - 393)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 393)) | (1 << (MySQLParser.MASTER_SSL - 393)) | (1 << (MySQLParser.MASTER_SSL_CA - 393)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 393)) | (1 << (MySQLParser.MASTER_SSL_CERT - 393)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 393)) | (1 << (MySQLParser.MASTER_SSL_CRL - 393)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 393)) | (1 << (MySQLParser.MASTER_SSL_KEY - 393)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1f) == 0 && ((1 << (_la - 425)) & ((1 << (MySQLParser.MASTER_USER - 425)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_ROWS - 425)) | (1 << (MySQLParser.MAX_SIZE - 425)) | (1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 425)) | (1 << (MySQLParser.MEDIUM - 425)) | (1 << (MySQLParser.MERGE - 425)) | (1 << (MySQLParser.MESSAGE_TEXT - 425)) | (1 << (MySQLParser.MID - 425)) | (1 << (MySQLParser.MIGRATE - 425)) | (1 << (MySQLParser.MIN_ROWS - 425)) | (1 << (MySQLParser.MODE - 425)) | (1 << (MySQLParser.MODIFY - 425)) | (1 << (MySQLParser.MUTEX - 425)) | (1 << (MySQLParser.MYSQL - 425)) | (1 << (MySQLParser.MYSQL_ERRNO - 425)) | (1 << (MySQLParser.NAME - 425)) | (1 << (MySQLParser.NAMES - 425)) | (1 << (MySQLParser.NCHAR - 425)) | (1 << (MySQLParser.NEVER - 425)) | (1 << (MySQLParser.NEXT - 425)) | (1 << (MySQLParser.NO - 425)) | (1 << (MySQLParser.NODEGROUP - 425)) | (1 << (MySQLParser.NONE - 425)) | (1 << (MySQLParser.OFFLINE - 425)) | (1 << (MySQLParser.OFFSET - 425)) | (1 << (MySQLParser.OJ - 425)) | (1 << (MySQLParser.OLD_PASSWORD - 425)) | (1 << (MySQLParser.ONE - 425)) | (1 << (MySQLParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1f) == 0 && ((1 << (_la - 457)) & ((1 << (MySQLParser.ONLY - 457)) | (1 << (MySQLParser.OPEN - 457)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 457)) | (1 << (MySQLParser.OPTIONS - 457)) | (1 << (MySQLParser.OWNER - 457)) | (1 << (MySQLParser.PACK_KEYS - 457)) | (1 << (MySQLParser.PAGE - 457)) | (1 << (MySQLParser.PARSER - 457)) | (1 << (MySQLParser.PARTIAL - 457)) | (1 << (MySQLParser.PARTITIONING - 457)) | (1 << (MySQLParser.PARTITIONS - 457)) | (1 << (MySQLParser.PASSWORD - 457)) | (1 << (MySQLParser.PHASE - 457)) | (1 << (MySQLParser.PLUGIN - 457)) | (1 << (MySQLParser.PLUGIN_DIR - 457)) | (1 << (MySQLParser.PLUGINS - 457)) | (1 << (MySQLParser.PORT - 457)) | (1 << (MySQLParser.PRECEDES - 457)) | (1 << (MySQLParser.PREPARE - 457)) | (1 << (MySQLParser.PRESERVE - 457)) | (1 << (MySQLParser.PREV - 457)) | (1 << (MySQLParser.PROCESSLIST - 457)) | (1 << (MySQLParser.PROFILE - 457)) | (1 << (MySQLParser.PROFILES - 457)) | (1 << (MySQLParser.PROXY - 457)) | (1 << (MySQLParser.QUERY - 457)) | (1 << (MySQLParser.QUICK - 457)) | (1 << (MySQLParser.REBUILD - 457)) | (1 << (MySQLParser.RECOVER - 457)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 457)) | (1 << (MySQLParser.REDUNDANT - 457)) | (1 << (MySQLParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1f) == 0 && ((1 << (_la - 489)) & ((1 << (MySQLParser.RELAY_LOG_FILE - 489)) | (1 << (MySQLParser.RELAY_LOG_POS - 489)) | (1 << (MySQLParser.RELAYLOG - 489)) | (1 << (MySQLParser.REMOVE - 489)) | (1 << (MySQLParser.REORGANIZE - 489)) | (1 << (MySQLParser.REPAIR - 489)) | (1 << (MySQLParser.REPLICATE_DO_DB - 489)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 489)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 489)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (MySQLParser.REPLICATION - 489)) | (1 << (MySQLParser.RESET - 489)) | (1 << (MySQLParser.RESUME - 489)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 489)) | (1 << (MySQLParser.RETURNS - 489)) | (1 << (MySQLParser.ROLE - 489)) | (1 << (MySQLParser.ROLLBACK - 489)) | (1 << (MySQLParser.ROLLUP - 489)) | (1 << (MySQLParser.ROTATE - 489)) | (1 << (MySQLParser.ROW - 489)) | (1 << (MySQLParser.ROWS - 489)) | (1 << (MySQLParser.ROW_FORMAT - 489)) | (1 << (MySQLParser.SAVEPOINT - 489)) | (1 << (MySQLParser.SCHEDULE - 489)) | (1 << (MySQLParser.SECURITY - 489)) | (1 << (MySQLParser.SERVER - 489)) | (1 << (MySQLParser.SESSION - 489)) | (1 << (MySQLParser.SHARE - 489)) | (1 << (MySQLParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1f) == 0 && ((1 << (_la - 521)) & ((1 << (MySQLParser.SIGNED - 521)) | (1 << (MySQLParser.SIMPLE - 521)) | (1 << (MySQLParser.SLAVE - 521)) | (1 << (MySQLParser.SLOW - 521)) | (1 << (MySQLParser.SNAPSHOT - 521)) | (1 << (MySQLParser.SOCKET - 521)) | (1 << (MySQLParser.SOME - 521)) | (1 << (MySQLParser.SONAME - 521)) | (1 << (MySQLParser.SOUNDS - 521)) | (1 << (MySQLParser.SOURCE - 521)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 521)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 521)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 521)) | (1 << (MySQLParser.SQL_CACHE - 521)) | (1 << (MySQLParser.SQL_NO_CACHE - 521)) | (1 << (MySQLParser.SQL_THREAD - 521)) | (1 << (MySQLParser.START - 521)) | (1 << (MySQLParser.STARTS - 521)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 521)) | (1 << (MySQLParser.STATS_PERSISTENT - 521)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 521)) | (1 << (MySQLParser.STATUS - 521)) | (1 << (MySQLParser.STOP - 521)) | (1 << (MySQLParser.STORAGE - 521)) | (1 << (MySQLParser.STRING - 521)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 521)) | (1 << (MySQLParser.SUBJECT - 521)) | (1 << (MySQLParser.SUBPARTITION - 521)) | (1 << (MySQLParser.SUBPARTITIONS - 521)) | (1 << (MySQLParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1f) == 0 && ((1 << (_la - 553)) & ((1 << (MySQLParser.SWAPS - 553)) | (1 << (MySQLParser.SWITCHES - 553)) | (1 << (MySQLParser.TABLE_NAME - 553)) | (1 << (MySQLParser.TABLESPACE - 553)) | (1 << (MySQLParser.TEMPORARY - 553)) | (1 << (MySQLParser.TEMPTABLE - 553)) | (1 << (MySQLParser.THAN - 553)) | (1 << (MySQLParser.TRADITIONAL - 553)) | (1 << (MySQLParser.TRANSACTION - 553)) | (1 << (MySQLParser.TRANSACTIONAL - 553)) | (1 << (MySQLParser.TRIGGERS - 553)) | (1 << (MySQLParser.TRUNCATE - 553)) | (1 << (MySQLParser.UNDEFINED - 553)) | (1 << (MySQLParser.UNDOFILE - 553)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 553)) | (1 << (MySQLParser.UNINSTALL - 553)) | (1 << (MySQLParser.UNKNOWN - 553)) | (1 << (MySQLParser.UNTIL - 553)) | (1 << (MySQLParser.UPGRADE - 553)) | (1 << (MySQLParser.USER - 553)) | (1 << (MySQLParser.USE_FRM - 553)) | (1 << (MySQLParser.USER_RESOURCES - 553)) | (1 << (MySQLParser.VALIDATION - 553)) | (1 << (MySQLParser.VALUE - 553)) | (1 << (MySQLParser.VARIABLES - 553)) | (1 << (MySQLParser.VIEW - 553)) | (1 << (MySQLParser.VISIBLE - 553)) | (1 << (MySQLParser.WAIT - 553)) | (1 << (MySQLParser.WARNINGS - 553)) | (1 << (MySQLParser.WITHOUT - 553)) | (1 << (MySQLParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1f) == 0 && ((1 << (_la - 585)) & ((1 << (MySQLParser.WRAPPER - 585)) | (1 << (MySQLParser.X509 - 585)) | (1 << (MySQLParser.XA - 585)) | (1 << (MySQLParser.XML - 585)) | (1 << (MySQLParser.INTERNAL - 585)) | (1 << (MySQLParser.QUARTER - 585)) | (1 << (MySQLParser.MONTH - 585)) | (1 << (MySQLParser.DAY - 585)) | (1 << (MySQLParser.HOUR - 585)) | (1 << (MySQLParser.MINUTE - 585)) | (1 << (MySQLParser.WEEK - 585)) | (1 << (MySQLParser.SECOND - 585)) | (1 << (MySQLParser.MICROSECOND - 585)) | (1 << (MySQLParser.TABLES - 585)) | (1 << (MySQLParser.ROUTINE - 585)) | (1 << (MySQLParser.EXECUTE - 585)) | (1 << (MySQLParser.FILE - 585)) | (1 << (MySQLParser.PROCESS - 585)) | (1 << (MySQLParser.RELOAD - 585)) | (1 << (MySQLParser.SHUTDOWN - 585)) | (1 << (MySQLParser.SUPER - 585)) | (1 << (MySQLParser.PRIVILEGES - 585)) | (1 << (MySQLParser.AUDIT_ADMIN - 585)) | (1 << (MySQLParser.BACKUP_ADMIN - 585)) | (1 << (MySQLParser.BINLOG_ADMIN - 585)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (MySQLParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1f) == 0 && ((1 << (_la - 617)) & ((1 << (MySQLParser.CONNECTION_ADMIN - 617)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (MySQLParser.FIREWALL_ADMIN - 617)) | (1 << (MySQLParser.FIREWALL_USER - 617)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (MySQLParser.NDB_STORED_USER - 617)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.REPLICATION_APPLIER - 617)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 617)) | (1 << (MySQLParser.ROLE_ADMIN - 617)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.SET_USER_ID - 617)) | (1 << (MySQLParser.SHOW_ROUTINE - 617)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 617)) | (1 << (MySQLParser.ARMSCII8 - 617)) | (1 << (MySQLParser.ASCII - 617)) | (1 << (MySQLParser.BIG5 - 617)) | (1 << (MySQLParser.CP1250 - 617)) | (1 << (MySQLParser.CP1251 - 617)) | (1 << (MySQLParser.CP1256 - 617)) | (1 << (MySQLParser.CP1257 - 617)) | (1 << (MySQLParser.CP850 - 617)) | (1 << (MySQLParser.CP852 - 617)) | (1 << (MySQLParser.CP866 - 617)) | (1 << (MySQLParser.CP932 - 617)) | (1 << (MySQLParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1f) == 0 && ((1 << (_la - 649)) & ((1 << (MySQLParser.EUCJPMS - 649)) | (1 << (MySQLParser.EUCKR - 649)) | (1 << (MySQLParser.GB2312 - 649)) | (1 << (MySQLParser.GBK - 649)) | (1 << (MySQLParser.GEOSTD8 - 649)) | (1 << (MySQLParser.GREEK - 649)) | (1 << (MySQLParser.HEBREW - 649)) | (1 << (MySQLParser.HP8 - 649)) | (1 << (MySQLParser.KEYBCS2 - 649)) | (1 << (MySQLParser.KOI8R - 649)) | (1 << (MySQLParser.KOI8U - 649)) | (1 << (MySQLParser.LATIN1 - 649)) | (1 << (MySQLParser.LATIN2 - 649)) | (1 << (MySQLParser.LATIN5 - 649)) | (1 << (MySQLParser.LATIN7 - 649)) | (1 << (MySQLParser.MACCE - 649)) | (1 << (MySQLParser.MACROMAN - 649)) | (1 << (MySQLParser.SJIS - 649)) | (1 << (MySQLParser.SWE7 - 649)) | (1 << (MySQLParser.TIS620 - 649)) | (1 << (MySQLParser.UCS2 - 649)) | (1 << (MySQLParser.UJIS - 649)) | (1 << (MySQLParser.UTF16 - 649)) | (1 << (MySQLParser.UTF16LE - 649)) | (1 << (MySQLParser.UTF32 - 649)) | (1 << (MySQLParser.UTF8 - 649)) | (1 << (MySQLParser.UTF8MB3 - 649)) | (1 << (MySQLParser.UTF8MB4 - 649)) | (1 << (MySQLParser.ARCHIVE - 649)) | (1 << (MySQLParser.BLACKHOLE - 649)) | (1 << (MySQLParser.CSV - 649)) | (1 << (MySQLParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1f) == 0 && ((1 << (_la - 681)) & ((1 << (MySQLParser.INNODB - 681)) | (1 << (MySQLParser.MEMORY - 681)) | (1 << (MySQLParser.MRG_MYISAM - 681)) | (1 << (MySQLParser.MYISAM - 681)) | (1 << (MySQLParser.NDB - 681)) | (1 << (MySQLParser.NDBCLUSTER - 681)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 681)) | (1 << (MySQLParser.TOKUDB - 681)) | (1 << (MySQLParser.REPEATABLE - 681)) | (1 << (MySQLParser.COMMITTED - 681)) | (1 << (MySQLParser.UNCOMMITTED - 681)) | (1 << (MySQLParser.SERIALIZABLE - 681)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 681)) | (1 << (MySQLParser.LINESTRING - 681)) | (1 << (MySQLParser.MULTILINESTRING - 681)) | (1 << (MySQLParser.MULTIPOINT - 681)) | (1 << (MySQLParser.MULTIPOLYGON - 681)) | (1 << (MySQLParser.POINT - 681)) | (1 << (MySQLParser.POLYGON - 681)) | (1 << (MySQLParser.ABS - 681)) | (1 << (MySQLParser.ACOS - 681)) | (1 << (MySQLParser.ADDDATE - 681)) | (1 << (MySQLParser.ADDTIME - 681)) | (1 << (MySQLParser.AES_DECRYPT - 681)) | (1 << (MySQLParser.AES_ENCRYPT - 681)) | (1 << (MySQLParser.AREA - 681)) | (1 << (MySQLParser.ASBINARY - 681)) | (1 << (MySQLParser.ASIN - 681)) | (1 << (MySQLParser.ASTEXT - 681)) | (1 << (MySQLParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1f) == 0 && ((1 << (_la - 713)) & ((1 << (MySQLParser.ASWKT - 713)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 713)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 713)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 713)) | (1 << (MySQLParser.ATAN - 713)) | (1 << (MySQLParser.ATAN2 - 713)) | (1 << (MySQLParser.BENCHMARK - 713)) | (1 << (MySQLParser.BIN - 713)) | (1 << (MySQLParser.BIT_COUNT - 713)) | (1 << (MySQLParser.BIT_LENGTH - 713)) | (1 << (MySQLParser.BUFFER - 713)) | (1 << (MySQLParser.CATALOG_NAME - 713)) | (1 << (MySQLParser.CEIL - 713)) | (1 << (MySQLParser.CEILING - 713)) | (1 << (MySQLParser.CENTROID - 713)) | (1 << (MySQLParser.CHARACTER_LENGTH - 713)) | (1 << (MySQLParser.CHARSET - 713)) | (1 << (MySQLParser.CHAR_LENGTH - 713)) | (1 << (MySQLParser.COERCIBILITY - 713)) | (1 << (MySQLParser.COLLATION - 713)) | (1 << (MySQLParser.COMPRESS - 713)) | (1 << (MySQLParser.CONCAT - 713)) | (1 << (MySQLParser.CONCAT_WS - 713)) | (1 << (MySQLParser.CONNECTION_ID - 713)) | (1 << (MySQLParser.CONV - 713)) | (1 << (MySQLParser.CONVERT_TZ - 713)) | (1 << (MySQLParser.COS - 713)) | (1 << (MySQLParser.COT - 713)) | (1 << (MySQLParser.CRC32 - 713)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1f) == 0 && ((1 << (_la - 745)) & ((1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 745)) | (1 << (MySQLParser.CREATE_DIGEST - 745)) | (1 << (MySQLParser.CROSSES - 745)) | (1 << (MySQLParser.DATEDIFF - 745)) | (1 << (MySQLParser.DATE_FORMAT - 745)) | (1 << (MySQLParser.DAYNAME - 745)) | (1 << (MySQLParser.DAYOFMONTH - 745)) | (1 << (MySQLParser.DAYOFWEEK - 745)) | (1 << (MySQLParser.DAYOFYEAR - 745)) | (1 << (MySQLParser.DECODE - 745)) | (1 << (MySQLParser.DEGREES - 745)) | (1 << (MySQLParser.DES_DECRYPT - 745)) | (1 << (MySQLParser.DES_ENCRYPT - 745)) | (1 << (MySQLParser.DIMENSION - 745)) | (1 << (MySQLParser.DISJOINT - 745)) | (1 << (MySQLParser.ELT - 745)) | (1 << (MySQLParser.ENCODE - 745)) | (1 << (MySQLParser.ENCRYPT - 745)) | (1 << (MySQLParser.ENDPOINT - 745)) | (1 << (MySQLParser.ENVELOPE - 745)) | (1 << (MySQLParser.EQUALS - 745)) | (1 << (MySQLParser.EXP - 745)) | (1 << (MySQLParser.EXPORT_SET - 745)) | (1 << (MySQLParser.EXTERIORRING - 745)) | (1 << (MySQLParser.EXTRACTVALUE - 745)) | (1 << (MySQLParser.FIELD - 745)) | (1 << (MySQLParser.FIND_IN_SET - 745)) | (1 << (MySQLParser.FLOOR - 745)) | (1 << (MySQLParser.FORMAT - 745)) | (1 << (MySQLParser.FOUND_ROWS - 745)) | (1 << (MySQLParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1f) == 0 && ((1 << (_la - 777)) & ((1 << (MySQLParser.FROM_DAYS - 777)) | (1 << (MySQLParser.FROM_UNIXTIME - 777)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 777)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 777)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYN - 777)) | (1 << (MySQLParser.GEOMETRYTYPE - 777)) | (1 << (MySQLParser.GEOMFROMTEXT - 777)) | (1 << (MySQLParser.GEOMFROMWKB - 777)) | (1 << (MySQLParser.GET_FORMAT - 777)) | (1 << (MySQLParser.GET_LOCK - 777)) | (1 << (MySQLParser.GLENGTH - 777)) | (1 << (MySQLParser.GREATEST - 777)) | (1 << (MySQLParser.GTID_SUBSET - 777)) | (1 << (MySQLParser.GTID_SUBTRACT - 777)) | (1 << (MySQLParser.HEX - 777)) | (1 << (MySQLParser.IFNULL - 777)) | (1 << (MySQLParser.INET6_ATON - 777)) | (1 << (MySQLParser.INET6_NTOA - 777)) | (1 << (MySQLParser.INET_ATON - 777)) | (1 << (MySQLParser.INET_NTOA - 777)) | (1 << (MySQLParser.INSTR - 777)) | (1 << (MySQLParser.INTERIORRINGN - 777)) | (1 << (MySQLParser.INTERSECTS - 777)) | (1 << (MySQLParser.ISCLOSED - 777)) | (1 << (MySQLParser.ISEMPTY - 777)) | (1 << (MySQLParser.ISNULL - 777)) | (1 << (MySQLParser.ISSIMPLE - 777)) | (1 << (MySQLParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1f) == 0 && ((1 << (_la - 809)) & ((1 << (MySQLParser.IS_IPV4 - 809)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 809)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 809)) | (1 << (MySQLParser.IS_IPV6 - 809)) | (1 << (MySQLParser.IS_USED_LOCK - 809)) | (1 << (MySQLParser.LAST_INSERT_ID - 809)) | (1 << (MySQLParser.LCASE - 809)) | (1 << (MySQLParser.LEAST - 809)) | (1 << (MySQLParser.LENGTH - 809)) | (1 << (MySQLParser.LINEFROMTEXT - 809)) | (1 << (MySQLParser.LINEFROMWKB - 809)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 809)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 809)) | (1 << (MySQLParser.LN - 809)) | (1 << (MySQLParser.LOAD_FILE - 809)) | (1 << (MySQLParser.LOCATE - 809)) | (1 << (MySQLParser.LOG - 809)) | (1 << (MySQLParser.LOG10 - 809)) | (1 << (MySQLParser.LOG2 - 809)) | (1 << (MySQLParser.LOWER - 809)) | (1 << (MySQLParser.LPAD - 809)) | (1 << (MySQLParser.LTRIM - 809)) | (1 << (MySQLParser.MAKEDATE - 809)) | (1 << (MySQLParser.MAKETIME - 809)) | (1 << (MySQLParser.MAKE_SET - 809)) | (1 << (MySQLParser.MASTER_POS_WAIT - 809)) | (1 << (MySQLParser.MBRCONTAINS - 809)) | (1 << (MySQLParser.MBRDISJOINT - 809)) | (1 << (MySQLParser.MBREQUAL - 809)) | (1 << (MySQLParser.MBRINTERSECTS - 809)) | (1 << (MySQLParser.MBROVERLAPS - 809)) | (1 << (MySQLParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1f) == 0 && ((1 << (_la - 841)) & ((1 << (MySQLParser.MBRWITHIN - 841)) | (1 << (MySQLParser.MD5 - 841)) | (1 << (MySQLParser.MLINEFROMTEXT - 841)) | (1 << (MySQLParser.MLINEFROMWKB - 841)) | (1 << (MySQLParser.MONTHNAME - 841)) | (1 << (MySQLParser.MPOINTFROMTEXT - 841)) | (1 << (MySQLParser.MPOINTFROMWKB - 841)) | (1 << (MySQLParser.MPOLYFROMTEXT - 841)) | (1 << (MySQLParser.MPOLYFROMWKB - 841)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 841)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 841)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (MySQLParser.NAME_CONST - 841)) | (1 << (MySQLParser.NULLIF - 841)) | (1 << (MySQLParser.NUMGEOMETRIES - 841)) | (1 << (MySQLParser.NUMINTERIORRINGS - 841)) | (1 << (MySQLParser.NUMPOINTS - 841)) | (1 << (MySQLParser.OCT - 841)) | (1 << (MySQLParser.OCTET_LENGTH - 841)) | (1 << (MySQLParser.ORD - 841)) | (1 << (MySQLParser.OVERLAPS - 841)) | (1 << (MySQLParser.PERIOD_ADD - 841)) | (1 << (MySQLParser.PERIOD_DIFF - 841)) | (1 << (MySQLParser.PI - 841)) | (1 << (MySQLParser.POINTFROMTEXT - 841)) | (1 << (MySQLParser.POINTFROMWKB - 841)) | (1 << (MySQLParser.POINTN - 841)) | (1 << (MySQLParser.POLYFROMTEXT - 841)) | (1 << (MySQLParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1f) == 0 && ((1 << (_la - 873)) & ((1 << (MySQLParser.POLYGONFROMTEXT - 873)) | (1 << (MySQLParser.POLYGONFROMWKB - 873)) | (1 << (MySQLParser.POW - 873)) | (1 << (MySQLParser.POWER - 873)) | (1 << (MySQLParser.QUOTE - 873)) | (1 << (MySQLParser.RADIANS - 873)) | (1 << (MySQLParser.RAND - 873)) | (1 << (MySQLParser.RANDOM_BYTES - 873)) | (1 << (MySQLParser.RELEASE_LOCK - 873)) | (1 << (MySQLParser.REVERSE - 873)) | (1 << (MySQLParser.ROUND - 873)) | (1 << (MySQLParser.ROW_COUNT - 873)) | (1 << (MySQLParser.RPAD - 873)) | (1 << (MySQLParser.RTRIM - 873)) | (1 << (MySQLParser.SEC_TO_TIME - 873)) | (1 << (MySQLParser.SESSION_USER - 873)) | (1 << (MySQLParser.SHA - 873)) | (1 << (MySQLParser.SHA1 - 873)) | (1 << (MySQLParser.SHA2 - 873)) | (1 << (MySQLParser.SCHEMA_NAME - 873)) | (1 << (MySQLParser.SIGN - 873)) | (1 << (MySQLParser.SIN - 873)) | (1 << (MySQLParser.SLEEP - 873)) | (1 << (MySQLParser.SOUNDEX - 873)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (MySQLParser.SQRT - 873)) | (1 << (MySQLParser.SRID - 873)) | (1 << (MySQLParser.STARTPOINT - 873)) | (1 << (MySQLParser.STRCMP - 873)) | (1 << (MySQLParser.STR_TO_DATE - 873)) | (1 << (MySQLParser.ST_AREA - 873)) | (1 << (MySQLParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1f) == 0 && ((1 << (_la - 905)) & ((1 << (MySQLParser.ST_ASTEXT - 905)) | (1 << (MySQLParser.ST_ASWKB - 905)) | (1 << (MySQLParser.ST_ASWKT - 905)) | (1 << (MySQLParser.ST_BUFFER - 905)) | (1 << (MySQLParser.ST_CENTROID - 905)) | (1 << (MySQLParser.ST_CONTAINS - 905)) | (1 << (MySQLParser.ST_CROSSES - 905)) | (1 << (MySQLParser.ST_DIFFERENCE - 905)) | (1 << (MySQLParser.ST_DIMENSION - 905)) | (1 << (MySQLParser.ST_DISJOINT - 905)) | (1 << (MySQLParser.ST_DISTANCE - 905)) | (1 << (MySQLParser.ST_ENDPOINT - 905)) | (1 << (MySQLParser.ST_ENVELOPE - 905)) | (1 << (MySQLParser.ST_EQUALS - 905)) | (1 << (MySQLParser.ST_EXTERIORRING - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYN - 905)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 905)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 905)) | (1 << (MySQLParser.ST_INTERIORRINGN - 905)) | (1 << (MySQLParser.ST_INTERSECTION - 905)) | (1 << (MySQLParser.ST_INTERSECTS - 905)) | (1 << (MySQLParser.ST_ISCLOSED - 905)) | (1 << (MySQLParser.ST_ISEMPTY - 905)) | (1 << (MySQLParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1f) == 0 && ((1 << (_la - 937)) & ((1 << (MySQLParser.ST_LINEFROMTEXT - 937)) | (1 << (MySQLParser.ST_LINEFROMWKB - 937)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 937)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 937)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 937)) | (1 << (MySQLParser.ST_NUMPOINTS - 937)) | (1 << (MySQLParser.ST_OVERLAPS - 937)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 937)) | (1 << (MySQLParser.ST_POINTFROMWKB - 937)) | (1 << (MySQLParser.ST_POINTN - 937)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 937)) | (1 << (MySQLParser.ST_POLYFROMWKB - 937)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 937)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 937)) | (1 << (MySQLParser.ST_SRID - 937)) | (1 << (MySQLParser.ST_STARTPOINT - 937)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 937)) | (1 << (MySQLParser.ST_TOUCHES - 937)) | (1 << (MySQLParser.ST_UNION - 937)) | (1 << (MySQLParser.ST_WITHIN - 937)) | (1 << (MySQLParser.ST_X - 937)) | (1 << (MySQLParser.ST_Y - 937)) | (1 << (MySQLParser.SUBDATE - 937)) | (1 << (MySQLParser.SUBSTRING_INDEX - 937)) | (1 << (MySQLParser.SUBTIME - 937)) | (1 << (MySQLParser.SYSTEM_USER - 937)) | (1 << (MySQLParser.TAN - 937)) | (1 << (MySQLParser.TIMEDIFF - 937)) | (1 << (MySQLParser.TIMESTAMPADD - 937)) | (1 << (MySQLParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1f) == 0 && ((1 << (_la - 969)) & ((1 << (MySQLParser.TIME_FORMAT - 969)) | (1 << (MySQLParser.TIME_TO_SEC - 969)) | (1 << (MySQLParser.TOUCHES - 969)) | (1 << (MySQLParser.TO_BASE64 - 969)) | (1 << (MySQLParser.TO_DAYS - 969)) | (1 << (MySQLParser.TO_SECONDS - 969)) | (1 << (MySQLParser.UCASE - 969)) | (1 << (MySQLParser.UNCOMPRESS - 969)) | (1 << (MySQLParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (MySQLParser.UNHEX - 969)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 969)) | (1 << (MySQLParser.UPDATEXML - 969)) | (1 << (MySQLParser.UPPER - 969)) | (1 << (MySQLParser.UUID - 969)) | (1 << (MySQLParser.UUID_SHORT - 969)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (MySQLParser.VERSION - 969)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (MySQLParser.WEEKDAY - 969)) | (1 << (MySQLParser.WEEKOFYEAR - 969)) | (1 << (MySQLParser.WEIGHT_STRING - 969)) | (1 << (MySQLParser.WITHIN - 969)) | (1 << (MySQLParser.YEARWEEK - 969)) | (1 << (MySQLParser.Y_FUNCTION - 969)) | (1 << (MySQLParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (MySQLParser.PLUS - 1006)) | (1 << (MySQLParser.MINUS - 1006)) | (1 << (MySQLParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (MySQLParser.BIT_NOT_OP - 1006)) | (1 << (MySQLParser.LR_BRACKET - 1006)) | (1 << (MySQLParser.ZERO_DECIMAL - 1006)) | (1 << (MySQLParser.ONE_DECIMAL - 1006)) | (1 << (MySQLParser.TWO_DECIMAL - 1006)) | (1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (MySQLParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (MySQLParser.STRING_LITERAL - 1006)) | (1 << (MySQLParser.DECIMAL_LITERAL - 1006)) | (1 << (MySQLParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1f) == 0 && ((1 << (_la - 1038)) & ((1 << (MySQLParser.REAL_LITERAL - 1038)) | (1 << (MySQLParser.NULL_SPEC_LITERAL - 1038)) | (1 << (MySQLParser.BIT_STRING - 1038)) | (1 << (MySQLParser.STRING_CHARSET_NAME - 1038)) | (1 << (MySQLParser.ID - 1038)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1038)) | (1 << (MySQLParser.LOCAL_ID - 1038)) | (1 << (MySQLParser.GLOBAL_ID - 1038)))) !== 0)) { + this.state = 3061; + this.expressionsWithDefaults(); + } + + this.state = 3064; + this.match(MySQLParser.RR_BRACKET); + this.state = 3069; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UpdatedElementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_updatedElement; + return this; +} + +UpdatedElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UpdatedElementContext.prototype.constructor = UpdatedElementContext; + +UpdatedElementContext.prototype.fullColumnName = function() { + return this.getTypedRuleContext(FullColumnNameContext,0); +}; + +UpdatedElementContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +UpdatedElementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +UpdatedElementContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +UpdatedElementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUpdatedElement(this); + } +}; + +UpdatedElementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUpdatedElement(this); + } +}; + +UpdatedElementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUpdatedElement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UpdatedElementContext = UpdatedElementContext; + +MySQLParser.prototype.updatedElement = function() { + + var localctx = new UpdatedElementContext(this, this._ctx, this.state); + this.enterRule(localctx, 184, MySQLParser.RULE_updatedElement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3072; + this.fullColumnName(); + this.state = 3073; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3076; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CASE: + case MySQLParser.CAST: + case MySQLParser.CONVERT: + case MySQLParser.CURRENT: + case MySQLParser.CURRENT_USER: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.EXISTS: + case MySQLParser.FALSE: + case MySQLParser.IF: + case MySQLParser.INSERT: + case MySQLParser.INTERVAL: + case MySQLParser.LEFT: + case MySQLParser.NOT: + case MySQLParser.NULL_LITERAL: + case MySQLParser.NUMBER: + case MySQLParser.REPLACE: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.TRUE: + case MySQLParser.VALUES: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.CHAR: + case MySQLParser.BINARY: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.AVG: + case MySQLParser.BIT_AND: + case MySQLParser.BIT_OR: + case MySQLParser.BIT_XOR: + case MySQLParser.COUNT: + case MySQLParser.GROUP_CONCAT: + case MySQLParser.MAX: + case MySQLParser.MIN: + case MySQLParser.STD: + case MySQLParser.STDDEV: + case MySQLParser.STDDEV_POP: + case MySQLParser.STDDEV_SAMP: + case MySQLParser.SUM: + case MySQLParser.VAR_POP: + case MySQLParser.VAR_SAMP: + case MySQLParser.VARIANCE: + case MySQLParser.CURRENT_DATE: + case MySQLParser.CURRENT_TIME: + case MySQLParser.CURRENT_TIMESTAMP: + case MySQLParser.LOCALTIME: + case MySQLParser.CURDATE: + case MySQLParser.CURTIME: + case MySQLParser.DATE_ADD: + case MySQLParser.DATE_SUB: + case MySQLParser.EXTRACT: + case MySQLParser.LOCALTIMESTAMP: + case MySQLParser.NOW: + case MySQLParser.POSITION: + case MySQLParser.SUBSTR: + case MySQLParser.SUBSTRING: + case MySQLParser.SYSDATE: + case MySQLParser.TRIM: + case MySQLParser.UTC_DATE: + case MySQLParser.UTC_TIME: + case MySQLParser.UTC_TIMESTAMP: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.PLUS: + case MySQLParser.MINUS: + case MySQLParser.EXCLAMATION_SYMBOL: + case MySQLParser.BIT_NOT_OP: + case MySQLParser.LR_BRACKET: + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.START_NATIONAL_STRING_LITERAL: + case MySQLParser.STRING_LITERAL: + case MySQLParser.DECIMAL_LITERAL: + case MySQLParser.HEXADECIMAL_LITERAL: + case MySQLParser.REAL_LITERAL: + case MySQLParser.NULL_SPEC_LITERAL: + case MySQLParser.BIT_STRING: + case MySQLParser.STRING_CHARSET_NAME: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + case MySQLParser.LOCAL_ID: + case MySQLParser.GLOBAL_ID: + this.state = 3074; + this.expression(0); + break; + case MySQLParser.DEFAULT: + this.state = 3075; + this.match(MySQLParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AssignmentFieldContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_assignmentField; + return this; +} + +AssignmentFieldContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AssignmentFieldContext.prototype.constructor = AssignmentFieldContext; + +AssignmentFieldContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AssignmentFieldContext.prototype.LOCAL_ID = function() { + return this.getToken(MySQLParser.LOCAL_ID, 0); +}; + +AssignmentFieldContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAssignmentField(this); + } +}; + +AssignmentFieldContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAssignmentField(this); + } +}; + +AssignmentFieldContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAssignmentField(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AssignmentFieldContext = AssignmentFieldContext; + +MySQLParser.prototype.assignmentField = function() { + + var localctx = new AssignmentFieldContext(this, this._ctx, this.state); + this.enterRule(localctx, 186, MySQLParser.RULE_assignmentField); + try { + this.state = 3080; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.enterOuterAlt(localctx, 1); + this.state = 3078; + this.uid(); + break; + case MySQLParser.LOCAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 3079; + this.match(MySQLParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LockClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_lockClause; + return this; +} + +LockClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LockClauseContext.prototype.constructor = LockClauseContext; + +LockClauseContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +LockClauseContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +LockClauseContext.prototype.LOCK = function() { + return this.getToken(MySQLParser.LOCK, 0); +}; + +LockClauseContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; + +LockClauseContext.prototype.SHARE = function() { + return this.getToken(MySQLParser.SHARE, 0); +}; + +LockClauseContext.prototype.MODE = function() { + return this.getToken(MySQLParser.MODE, 0); +}; + +LockClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLockClause(this); + } +}; + +LockClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLockClause(this); + } +}; + +LockClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLockClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LockClauseContext = LockClauseContext; + +MySQLParser.prototype.lockClause = function() { + + var localctx = new LockClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 188, MySQLParser.RULE_lockClause); + try { + this.state = 3088; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.FOR: + this.enterOuterAlt(localctx, 1); + this.state = 3082; + this.match(MySQLParser.FOR); + this.state = 3083; + this.match(MySQLParser.UPDATE); + break; + case MySQLParser.LOCK: + this.enterOuterAlt(localctx, 2); + this.state = 3084; + this.match(MySQLParser.LOCK); + this.state = 3085; + this.match(MySQLParser.IN); + this.state = 3086; + this.match(MySQLParser.SHARE); + this.state = 3087; + this.match(MySQLParser.MODE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SingleDeleteStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_singleDeleteStatement; + this.priority = null; // Token + return this; +} + +SingleDeleteStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SingleDeleteStatementContext.prototype.constructor = SingleDeleteStatementContext; + +SingleDeleteStatementContext.prototype.DELETE = function() { + return this.getToken(MySQLParser.DELETE, 0); +}; + +SingleDeleteStatementContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +SingleDeleteStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +SingleDeleteStatementContext.prototype.QUICK = function() { + return this.getToken(MySQLParser.QUICK, 0); +}; + +SingleDeleteStatementContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +SingleDeleteStatementContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +SingleDeleteStatementContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +SingleDeleteStatementContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +SingleDeleteStatementContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +SingleDeleteStatementContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +SingleDeleteStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +SingleDeleteStatementContext.prototype.orderByClause = function() { + return this.getTypedRuleContext(OrderByClauseContext,0); +}; + +SingleDeleteStatementContext.prototype.LIMIT = function() { + return this.getToken(MySQLParser.LIMIT, 0); +}; + +SingleDeleteStatementContext.prototype.limitClauseAtom = function() { + return this.getTypedRuleContext(LimitClauseAtomContext,0); +}; + +SingleDeleteStatementContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +SingleDeleteStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSingleDeleteStatement(this); + } +}; + +SingleDeleteStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSingleDeleteStatement(this); + } +}; + +SingleDeleteStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSingleDeleteStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SingleDeleteStatementContext = SingleDeleteStatementContext; + +MySQLParser.prototype.singleDeleteStatement = function() { + + var localctx = new SingleDeleteStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 190, MySQLParser.RULE_singleDeleteStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3090; + this.match(MySQLParser.DELETE); + this.state = 3092; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOW_PRIORITY) { + this.state = 3091; + localctx.priority = this.match(MySQLParser.LOW_PRIORITY); + } + + this.state = 3095; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.QUICK) { + this.state = 3094; + this.match(MySQLParser.QUICK); + } + + this.state = 3098; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 3097; + this.match(MySQLParser.IGNORE); + } + + this.state = 3100; + this.match(MySQLParser.FROM); + this.state = 3101; + this.tableName(); + this.state = 3107; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 3102; + this.match(MySQLParser.PARTITION); + this.state = 3103; + this.match(MySQLParser.LR_BRACKET); + this.state = 3104; + this.uidList(); + this.state = 3105; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 3111; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WHERE) { + this.state = 3109; + this.match(MySQLParser.WHERE); + this.state = 3110; + this.expression(0); + } + + this.state = 3114; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ORDER) { + this.state = 3113; + this.orderByClause(); + } + + this.state = 3118; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIMIT) { + this.state = 3116; + this.match(MySQLParser.LIMIT); + this.state = 3117; + this.limitClauseAtom(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function MultipleDeleteStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_multipleDeleteStatement; + this.priority = null; // Token + return this; +} + +MultipleDeleteStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +MultipleDeleteStatementContext.prototype.constructor = MultipleDeleteStatementContext; + +MultipleDeleteStatementContext.prototype.DELETE = function() { + return this.getToken(MySQLParser.DELETE, 0); +}; + +MultipleDeleteStatementContext.prototype.tableName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableNameContext); + } else { + return this.getTypedRuleContext(TableNameContext,i); + } +}; + +MultipleDeleteStatementContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +MultipleDeleteStatementContext.prototype.tableSources = function() { + return this.getTypedRuleContext(TableSourcesContext,0); +}; + +MultipleDeleteStatementContext.prototype.USING = function() { + return this.getToken(MySQLParser.USING, 0); +}; + +MultipleDeleteStatementContext.prototype.QUICK = function() { + return this.getToken(MySQLParser.QUICK, 0); +}; + +MultipleDeleteStatementContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +MultipleDeleteStatementContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +MultipleDeleteStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +MultipleDeleteStatementContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +MultipleDeleteStatementContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.DOT); + } else { + return this.getToken(MySQLParser.DOT, i); + } +}; + + +MultipleDeleteStatementContext.prototype.STAR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.STAR); + } else { + return this.getToken(MySQLParser.STAR, i); + } +}; + + +MultipleDeleteStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +MultipleDeleteStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMultipleDeleteStatement(this); + } +}; + +MultipleDeleteStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMultipleDeleteStatement(this); + } +}; + +MultipleDeleteStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMultipleDeleteStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.MultipleDeleteStatementContext = MultipleDeleteStatementContext; + +MySQLParser.prototype.multipleDeleteStatement = function() { + + var localctx = new MultipleDeleteStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 192, MySQLParser.RULE_multipleDeleteStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3120; + this.match(MySQLParser.DELETE); + this.state = 3122; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOW_PRIORITY) { + this.state = 3121; + localctx.priority = this.match(MySQLParser.LOW_PRIORITY); + } + + this.state = 3125; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,431,this._ctx); + if(la_===1) { + this.state = 3124; + this.match(MySQLParser.QUICK); + + } + this.state = 3128; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 3127; + this.match(MySQLParser.IGNORE); + } + + this.state = 3169; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 3130; + this.tableName(); + this.state = 3133; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DOT) { + this.state = 3131; + this.match(MySQLParser.DOT); + this.state = 3132; + this.match(MySQLParser.STAR); + } + + this.state = 3143; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3135; + this.match(MySQLParser.COMMA); + this.state = 3136; + this.tableName(); + this.state = 3139; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DOT) { + this.state = 3137; + this.match(MySQLParser.DOT); + this.state = 3138; + this.match(MySQLParser.STAR); + } + + this.state = 3145; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3146; + this.match(MySQLParser.FROM); + this.state = 3147; + this.tableSources(); + break; + case MySQLParser.FROM: + this.state = 3149; + this.match(MySQLParser.FROM); + this.state = 3150; + this.tableName(); + this.state = 3153; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DOT) { + this.state = 3151; + this.match(MySQLParser.DOT); + this.state = 3152; + this.match(MySQLParser.STAR); + } + + this.state = 3163; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3155; + this.match(MySQLParser.COMMA); + this.state = 3156; + this.tableName(); + this.state = 3159; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DOT) { + this.state = 3157; + this.match(MySQLParser.DOT); + this.state = 3158; + this.match(MySQLParser.STAR); + } + + this.state = 3165; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3166; + this.match(MySQLParser.USING); + this.state = 3167; + this.tableSources(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3173; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WHERE) { + this.state = 3171; + this.match(MySQLParser.WHERE); + this.state = 3172; + this.expression(0); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HandlerOpenStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_handlerOpenStatement; + return this; +} + +HandlerOpenStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HandlerOpenStatementContext.prototype.constructor = HandlerOpenStatementContext; + +HandlerOpenStatementContext.prototype.HANDLER = function() { + return this.getToken(MySQLParser.HANDLER, 0); +}; + +HandlerOpenStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +HandlerOpenStatementContext.prototype.OPEN = function() { + return this.getToken(MySQLParser.OPEN, 0); +}; + +HandlerOpenStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +HandlerOpenStatementContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +HandlerOpenStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerOpenStatement(this); + } +}; + +HandlerOpenStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerOpenStatement(this); + } +}; + +HandlerOpenStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerOpenStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.HandlerOpenStatementContext = HandlerOpenStatementContext; + +MySQLParser.prototype.handlerOpenStatement = function() { + + var localctx = new HandlerOpenStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 194, MySQLParser.RULE_handlerOpenStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3175; + this.match(MySQLParser.HANDLER); + this.state = 3176; + this.tableName(); + this.state = 3177; + this.match(MySQLParser.OPEN); + this.state = 3182; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,442,this._ctx); + if(la_===1) { + this.state = 3179; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 3178; + this.match(MySQLParser.AS); + } + + this.state = 3181; + this.uid(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HandlerReadIndexStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_handlerReadIndexStatement; + this.index = null; // UidContext + this.moveOrder = null; // Token + return this; +} + +HandlerReadIndexStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HandlerReadIndexStatementContext.prototype.constructor = HandlerReadIndexStatementContext; + +HandlerReadIndexStatementContext.prototype.HANDLER = function() { + return this.getToken(MySQLParser.HANDLER, 0); +}; + +HandlerReadIndexStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +HandlerReadIndexStatementContext.prototype.READ = function() { + return this.getToken(MySQLParser.READ, 0); +}; + +HandlerReadIndexStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +HandlerReadIndexStatementContext.prototype.comparisonOperator = function() { + return this.getTypedRuleContext(ComparisonOperatorContext,0); +}; + +HandlerReadIndexStatementContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +HandlerReadIndexStatementContext.prototype.constants = function() { + return this.getTypedRuleContext(ConstantsContext,0); +}; + +HandlerReadIndexStatementContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +HandlerReadIndexStatementContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +HandlerReadIndexStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +HandlerReadIndexStatementContext.prototype.LIMIT = function() { + return this.getToken(MySQLParser.LIMIT, 0); +}; + +HandlerReadIndexStatementContext.prototype.limitClauseAtom = function() { + return this.getTypedRuleContext(LimitClauseAtomContext,0); +}; + +HandlerReadIndexStatementContext.prototype.FIRST = function() { + return this.getToken(MySQLParser.FIRST, 0); +}; + +HandlerReadIndexStatementContext.prototype.NEXT = function() { + return this.getToken(MySQLParser.NEXT, 0); +}; + +HandlerReadIndexStatementContext.prototype.PREV = function() { + return this.getToken(MySQLParser.PREV, 0); +}; + +HandlerReadIndexStatementContext.prototype.LAST = function() { + return this.getToken(MySQLParser.LAST, 0); +}; + +HandlerReadIndexStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerReadIndexStatement(this); + } +}; + +HandlerReadIndexStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerReadIndexStatement(this); + } +}; + +HandlerReadIndexStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerReadIndexStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.HandlerReadIndexStatementContext = HandlerReadIndexStatementContext; + +MySQLParser.prototype.handlerReadIndexStatement = function() { + + var localctx = new HandlerReadIndexStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 196, MySQLParser.RULE_handlerReadIndexStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3184; + this.match(MySQLParser.HANDLER); + this.state = 3185; + this.tableName(); + this.state = 3186; + this.match(MySQLParser.READ); + this.state = 3187; + localctx.index = this.uid(); + this.state = 3194; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.EQUAL_SYMBOL: + case MySQLParser.GREATER_SYMBOL: + case MySQLParser.LESS_SYMBOL: + case MySQLParser.EXCLAMATION_SYMBOL: + this.state = 3188; + this.comparisonOperator(); + this.state = 3189; + this.match(MySQLParser.LR_BRACKET); + this.state = 3190; + this.constants(); + this.state = 3191; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.FIRST: + case MySQLParser.LAST: + case MySQLParser.NEXT: + case MySQLParser.PREV: + this.state = 3193; + localctx.moveOrder = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FIRST || _la===MySQLParser.LAST || _la===MySQLParser.NEXT || _la===MySQLParser.PREV)) { + localctx.moveOrder = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3198; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WHERE) { + this.state = 3196; + this.match(MySQLParser.WHERE); + this.state = 3197; + this.expression(0); + } + + this.state = 3202; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIMIT) { + this.state = 3200; + this.match(MySQLParser.LIMIT); + this.state = 3201; + this.limitClauseAtom(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HandlerReadStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_handlerReadStatement; + this.moveOrder = null; // Token + return this; +} + +HandlerReadStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HandlerReadStatementContext.prototype.constructor = HandlerReadStatementContext; + +HandlerReadStatementContext.prototype.HANDLER = function() { + return this.getToken(MySQLParser.HANDLER, 0); +}; + +HandlerReadStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +HandlerReadStatementContext.prototype.READ = function() { + return this.getToken(MySQLParser.READ, 0); +}; + +HandlerReadStatementContext.prototype.FIRST = function() { + return this.getToken(MySQLParser.FIRST, 0); +}; + +HandlerReadStatementContext.prototype.NEXT = function() { + return this.getToken(MySQLParser.NEXT, 0); +}; + +HandlerReadStatementContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +HandlerReadStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +HandlerReadStatementContext.prototype.LIMIT = function() { + return this.getToken(MySQLParser.LIMIT, 0); +}; + +HandlerReadStatementContext.prototype.limitClauseAtom = function() { + return this.getTypedRuleContext(LimitClauseAtomContext,0); +}; + +HandlerReadStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerReadStatement(this); + } +}; + +HandlerReadStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerReadStatement(this); + } +}; + +HandlerReadStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerReadStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.HandlerReadStatementContext = HandlerReadStatementContext; + +MySQLParser.prototype.handlerReadStatement = function() { + + var localctx = new HandlerReadStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 198, MySQLParser.RULE_handlerReadStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3204; + this.match(MySQLParser.HANDLER); + this.state = 3205; + this.tableName(); + this.state = 3206; + this.match(MySQLParser.READ); + this.state = 3207; + localctx.moveOrder = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FIRST || _la===MySQLParser.NEXT)) { + localctx.moveOrder = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3210; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WHERE) { + this.state = 3208; + this.match(MySQLParser.WHERE); + this.state = 3209; + this.expression(0); + } + + this.state = 3214; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIMIT) { + this.state = 3212; + this.match(MySQLParser.LIMIT); + this.state = 3213; + this.limitClauseAtom(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HandlerCloseStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_handlerCloseStatement; + return this; +} + +HandlerCloseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HandlerCloseStatementContext.prototype.constructor = HandlerCloseStatementContext; + +HandlerCloseStatementContext.prototype.HANDLER = function() { + return this.getToken(MySQLParser.HANDLER, 0); +}; + +HandlerCloseStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +HandlerCloseStatementContext.prototype.CLOSE = function() { + return this.getToken(MySQLParser.CLOSE, 0); +}; + +HandlerCloseStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerCloseStatement(this); + } +}; + +HandlerCloseStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerCloseStatement(this); + } +}; + +HandlerCloseStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerCloseStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.HandlerCloseStatementContext = HandlerCloseStatementContext; + +MySQLParser.prototype.handlerCloseStatement = function() { + + var localctx = new HandlerCloseStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 200, MySQLParser.RULE_handlerCloseStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3216; + this.match(MySQLParser.HANDLER); + this.state = 3217; + this.tableName(); + this.state = 3218; + this.match(MySQLParser.CLOSE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SingleUpdateStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_singleUpdateStatement; + this.priority = null; // Token + return this; +} + +SingleUpdateStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SingleUpdateStatementContext.prototype.constructor = SingleUpdateStatementContext; + +SingleUpdateStatementContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +SingleUpdateStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +SingleUpdateStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SingleUpdateStatementContext.prototype.updatedElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UpdatedElementContext); + } else { + return this.getTypedRuleContext(UpdatedElementContext,i); + } +}; + +SingleUpdateStatementContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +SingleUpdateStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SingleUpdateStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +SingleUpdateStatementContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +SingleUpdateStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +SingleUpdateStatementContext.prototype.orderByClause = function() { + return this.getTypedRuleContext(OrderByClauseContext,0); +}; + +SingleUpdateStatementContext.prototype.limitClause = function() { + return this.getTypedRuleContext(LimitClauseContext,0); +}; + +SingleUpdateStatementContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +SingleUpdateStatementContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +SingleUpdateStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSingleUpdateStatement(this); + } +}; + +SingleUpdateStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSingleUpdateStatement(this); + } +}; + +SingleUpdateStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSingleUpdateStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SingleUpdateStatementContext = SingleUpdateStatementContext; + +MySQLParser.prototype.singleUpdateStatement = function() { + + var localctx = new SingleUpdateStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 202, MySQLParser.RULE_singleUpdateStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3220; + this.match(MySQLParser.UPDATE); + this.state = 3222; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOW_PRIORITY) { + this.state = 3221; + localctx.priority = this.match(MySQLParser.LOW_PRIORITY); + } + + this.state = 3225; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 3224; + this.match(MySQLParser.IGNORE); + } + + this.state = 3227; + this.tableName(); + this.state = 3232; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 3229; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 3228; + this.match(MySQLParser.AS); + } + + this.state = 3231; + this.uid(); + } + + this.state = 3234; + this.match(MySQLParser.SET); + this.state = 3235; + this.updatedElement(); + this.state = 3240; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3236; + this.match(MySQLParser.COMMA); + this.state = 3237; + this.updatedElement(); + this.state = 3242; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3245; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WHERE) { + this.state = 3243; + this.match(MySQLParser.WHERE); + this.state = 3244; + this.expression(0); + } + + this.state = 3248; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ORDER) { + this.state = 3247; + this.orderByClause(); + } + + this.state = 3251; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIMIT) { + this.state = 3250; + this.limitClause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function MultipleUpdateStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_multipleUpdateStatement; + this.priority = null; // Token + return this; +} + +MultipleUpdateStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +MultipleUpdateStatementContext.prototype.constructor = MultipleUpdateStatementContext; + +MultipleUpdateStatementContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +MultipleUpdateStatementContext.prototype.tableSources = function() { + return this.getTypedRuleContext(TableSourcesContext,0); +}; + +MultipleUpdateStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +MultipleUpdateStatementContext.prototype.updatedElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UpdatedElementContext); + } else { + return this.getTypedRuleContext(UpdatedElementContext,i); + } +}; + +MultipleUpdateStatementContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +MultipleUpdateStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +MultipleUpdateStatementContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +MultipleUpdateStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +MultipleUpdateStatementContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +MultipleUpdateStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMultipleUpdateStatement(this); + } +}; + +MultipleUpdateStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMultipleUpdateStatement(this); + } +}; + +MultipleUpdateStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMultipleUpdateStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.MultipleUpdateStatementContext = MultipleUpdateStatementContext; + +MySQLParser.prototype.multipleUpdateStatement = function() { + + var localctx = new MultipleUpdateStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 204, MySQLParser.RULE_multipleUpdateStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3253; + this.match(MySQLParser.UPDATE); + this.state = 3255; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOW_PRIORITY) { + this.state = 3254; + localctx.priority = this.match(MySQLParser.LOW_PRIORITY); + } + + this.state = 3258; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 3257; + this.match(MySQLParser.IGNORE); + } + + this.state = 3260; + this.tableSources(); + this.state = 3261; + this.match(MySQLParser.SET); + this.state = 3262; + this.updatedElement(); + this.state = 3267; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3263; + this.match(MySQLParser.COMMA); + this.state = 3264; + this.updatedElement(); + this.state = 3269; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3272; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WHERE) { + this.state = 3270; + this.match(MySQLParser.WHERE); + this.state = 3271; + this.expression(0); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OrderByClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_orderByClause; + return this; +} + +OrderByClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OrderByClauseContext.prototype.constructor = OrderByClauseContext; + +OrderByClauseContext.prototype.ORDER = function() { + return this.getToken(MySQLParser.ORDER, 0); +}; + +OrderByClauseContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +OrderByClauseContext.prototype.orderByExpression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(OrderByExpressionContext); + } else { + return this.getTypedRuleContext(OrderByExpressionContext,i); + } +}; + +OrderByClauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +OrderByClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterOrderByClause(this); + } +}; + +OrderByClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitOrderByClause(this); + } +}; + +OrderByClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitOrderByClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.OrderByClauseContext = OrderByClauseContext; + +MySQLParser.prototype.orderByClause = function() { + + var localctx = new OrderByClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 206, MySQLParser.RULE_orderByClause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3274; + this.match(MySQLParser.ORDER); + this.state = 3275; + this.match(MySQLParser.BY); + this.state = 3276; + this.orderByExpression(); + this.state = 3281; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3277; + this.match(MySQLParser.COMMA); + this.state = 3278; + this.orderByExpression(); + this.state = 3283; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OrderByExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_orderByExpression; + this.order = null; // Token + return this; +} + +OrderByExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OrderByExpressionContext.prototype.constructor = OrderByExpressionContext; + +OrderByExpressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +OrderByExpressionContext.prototype.ASC = function() { + return this.getToken(MySQLParser.ASC, 0); +}; + +OrderByExpressionContext.prototype.DESC = function() { + return this.getToken(MySQLParser.DESC, 0); +}; + +OrderByExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterOrderByExpression(this); + } +}; + +OrderByExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitOrderByExpression(this); + } +}; + +OrderByExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitOrderByExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.OrderByExpressionContext = OrderByExpressionContext; + +MySQLParser.prototype.orderByExpression = function() { + + var localctx = new OrderByExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 208, MySQLParser.RULE_orderByExpression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3284; + this.expression(0); + this.state = 3286; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,461,this._ctx); + if(la_===1) { + this.state = 3285; + localctx.order = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ASC || _la===MySQLParser.DESC)) { + localctx.order = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableSourcesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tableSources; + return this; +} + +TableSourcesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableSourcesContext.prototype.constructor = TableSourcesContext; + +TableSourcesContext.prototype.tableSource = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableSourceContext); + } else { + return this.getTypedRuleContext(TableSourceContext,i); + } +}; + +TableSourcesContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +TableSourcesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableSources(this); + } +}; + +TableSourcesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableSources(this); + } +}; + +TableSourcesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableSources(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TableSourcesContext = TableSourcesContext; + +MySQLParser.prototype.tableSources = function() { + + var localctx = new TableSourcesContext(this, this._ctx, this.state); + this.enterRule(localctx, 210, MySQLParser.RULE_tableSources); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3288; + this.tableSource(); + this.state = 3293; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3289; + this.match(MySQLParser.COMMA); + this.state = 3290; + this.tableSource(); + this.state = 3295; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableSourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tableSource; + return this; +} + +TableSourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableSourceContext.prototype.constructor = TableSourceContext; + + + +TableSourceContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function TableSourceNestedContext(parser, ctx) { + TableSourceContext.call(this, parser); + TableSourceContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableSourceNestedContext.prototype = Object.create(TableSourceContext.prototype); +TableSourceNestedContext.prototype.constructor = TableSourceNestedContext; + +MySQLParser.TableSourceNestedContext = TableSourceNestedContext; + +TableSourceNestedContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +TableSourceNestedContext.prototype.tableSourceItem = function() { + return this.getTypedRuleContext(TableSourceItemContext,0); +}; + +TableSourceNestedContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +TableSourceNestedContext.prototype.joinPart = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(JoinPartContext); + } else { + return this.getTypedRuleContext(JoinPartContext,i); + } +}; +TableSourceNestedContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableSourceNested(this); + } +}; + +TableSourceNestedContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableSourceNested(this); + } +}; + +TableSourceNestedContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableSourceNested(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableSourceBaseContext(parser, ctx) { + TableSourceContext.call(this, parser); + TableSourceContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableSourceBaseContext.prototype = Object.create(TableSourceContext.prototype); +TableSourceBaseContext.prototype.constructor = TableSourceBaseContext; + +MySQLParser.TableSourceBaseContext = TableSourceBaseContext; + +TableSourceBaseContext.prototype.tableSourceItem = function() { + return this.getTypedRuleContext(TableSourceItemContext,0); +}; + +TableSourceBaseContext.prototype.joinPart = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(JoinPartContext); + } else { + return this.getTypedRuleContext(JoinPartContext,i); + } +}; +TableSourceBaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableSourceBase(this); + } +}; + +TableSourceBaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableSourceBase(this); + } +}; + +TableSourceBaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableSourceBase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.TableSourceContext = TableSourceContext; + +MySQLParser.prototype.tableSource = function() { + + var localctx = new TableSourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 212, MySQLParser.RULE_tableSource); + var _la = 0; // Token type + try { + this.state = 3313; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,465,this._ctx); + switch(la_) { + case 1: + localctx = new TableSourceBaseContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 3296; + this.tableSourceItem(); + this.state = 3300; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,463,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3297; + this.joinPart(); + } + this.state = 3302; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,463,this._ctx); + } + + break; + + case 2: + localctx = new TableSourceNestedContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 3303; + this.match(MySQLParser.LR_BRACKET); + this.state = 3304; + this.tableSourceItem(); + this.state = 3308; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.CROSS || ((((_la - 74)) & ~0x1f) == 0 && ((1 << (_la - 74)) & ((1 << (MySQLParser.INNER - 74)) | (1 << (MySQLParser.JOIN - 74)) | (1 << (MySQLParser.LEFT - 74)) | (1 << (MySQLParser.NATURAL - 74)))) !== 0) || _la===MySQLParser.RIGHT || _la===MySQLParser.STRAIGHT_JOIN) { + this.state = 3305; + this.joinPart(); + this.state = 3310; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3311; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableSourceItemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tableSourceItem; + return this; +} + +TableSourceItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableSourceItemContext.prototype.constructor = TableSourceItemContext; + + + +TableSourceItemContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SubqueryTableItemContext(parser, ctx) { + TableSourceItemContext.call(this, parser); + this.parenthesisSubquery = null; // SelectStatementContext; + this.alias = null; // UidContext; + TableSourceItemContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SubqueryTableItemContext.prototype = Object.create(TableSourceItemContext.prototype); +SubqueryTableItemContext.prototype.constructor = SubqueryTableItemContext; + +MySQLParser.SubqueryTableItemContext = SubqueryTableItemContext; + +SubqueryTableItemContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SubqueryTableItemContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +SubqueryTableItemContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +SubqueryTableItemContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +SubqueryTableItemContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; +SubqueryTableItemContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSubqueryTableItem(this); + } +}; + +SubqueryTableItemContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSubqueryTableItem(this); + } +}; + +SubqueryTableItemContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSubqueryTableItem(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AtomTableItemContext(parser, ctx) { + TableSourceItemContext.call(this, parser); + this.alias = null; // UidContext; + TableSourceItemContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AtomTableItemContext.prototype = Object.create(TableSourceItemContext.prototype); +AtomTableItemContext.prototype.constructor = AtomTableItemContext; + +MySQLParser.AtomTableItemContext = AtomTableItemContext; + +AtomTableItemContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +AtomTableItemContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +AtomTableItemContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +AtomTableItemContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +AtomTableItemContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +AtomTableItemContext.prototype.indexHint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexHintContext); + } else { + return this.getTypedRuleContext(IndexHintContext,i); + } +}; + +AtomTableItemContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AtomTableItemContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +AtomTableItemContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +AtomTableItemContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAtomTableItem(this); + } +}; + +AtomTableItemContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAtomTableItem(this); + } +}; + +AtomTableItemContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAtomTableItem(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TableSourcesItemContext(parser, ctx) { + TableSourceItemContext.call(this, parser); + TableSourceItemContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableSourcesItemContext.prototype = Object.create(TableSourceItemContext.prototype); +TableSourcesItemContext.prototype.constructor = TableSourcesItemContext; + +MySQLParser.TableSourcesItemContext = TableSourcesItemContext; + +TableSourcesItemContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +TableSourcesItemContext.prototype.tableSources = function() { + return this.getTypedRuleContext(TableSourcesContext,0); +}; + +TableSourcesItemContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +TableSourcesItemContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableSourcesItem(this); + } +}; + +TableSourcesItemContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableSourcesItem(this); + } +}; + +TableSourcesItemContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableSourcesItem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.TableSourceItemContext = TableSourceItemContext; + +MySQLParser.prototype.tableSourceItem = function() { + + var localctx = new TableSourceItemContext(this, this._ctx, this.state); + this.enterRule(localctx, 214, MySQLParser.RULE_tableSourceItem); + var _la = 0; // Token type + try { + this.state = 3355; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,473,this._ctx); + switch(la_) { + case 1: + localctx = new AtomTableItemContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 3315; + this.tableName(); + this.state = 3321; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 3316; + this.match(MySQLParser.PARTITION); + this.state = 3317; + this.match(MySQLParser.LR_BRACKET); + this.state = 3318; + this.uidList(); + this.state = 3319; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 3327; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,468,this._ctx); + if(la_===1) { + this.state = 3324; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 3323; + this.match(MySQLParser.AS); + } + + this.state = 3326; + localctx.alias = this.uid(); + + } + this.state = 3337; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,470,this._ctx); + if(la_===1) { + this.state = 3329; + this.indexHint(); + this.state = 3334; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,469,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3330; + this.match(MySQLParser.COMMA); + this.state = 3331; + this.indexHint(); + } + this.state = 3336; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,469,this._ctx); + } + + + } + break; + + case 2: + localctx = new SubqueryTableItemContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 3344; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,471,this._ctx); + switch(la_) { + case 1: + this.state = 3339; + this.selectStatement(); + break; + + case 2: + this.state = 3340; + this.match(MySQLParser.LR_BRACKET); + this.state = 3341; + localctx.parenthesisSubquery = this.selectStatement(); + this.state = 3342; + this.match(MySQLParser.RR_BRACKET); + break; + + } + this.state = 3347; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 3346; + this.match(MySQLParser.AS); + } + + this.state = 3349; + localctx.alias = this.uid(); + break; + + case 3: + localctx = new TableSourcesItemContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 3351; + this.match(MySQLParser.LR_BRACKET); + this.state = 3352; + this.tableSources(); + this.state = 3353; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IndexHintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_indexHint; + this.indexHintAction = null; // Token + this.keyFormat = null; // Token + return this; +} + +IndexHintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IndexHintContext.prototype.constructor = IndexHintContext; + +IndexHintContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +IndexHintContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +IndexHintContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +IndexHintContext.prototype.USE = function() { + return this.getToken(MySQLParser.USE, 0); +}; + +IndexHintContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +IndexHintContext.prototype.FORCE = function() { + return this.getToken(MySQLParser.FORCE, 0); +}; + +IndexHintContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +IndexHintContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +IndexHintContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +IndexHintContext.prototype.indexHintType = function() { + return this.getTypedRuleContext(IndexHintTypeContext,0); +}; + +IndexHintContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIndexHint(this); + } +}; + +IndexHintContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIndexHint(this); + } +}; + +IndexHintContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIndexHint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IndexHintContext = IndexHintContext; + +MySQLParser.prototype.indexHint = function() { + + var localctx = new IndexHintContext(this, this._ctx, this.state); + this.enterRule(localctx, 216, MySQLParser.RULE_indexHint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3357; + localctx.indexHintAction = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FORCE || _la===MySQLParser.IGNORE || _la===MySQLParser.USE)) { + localctx.indexHintAction = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3358; + localctx.keyFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.keyFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3361; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 3359; + this.match(MySQLParser.FOR); + this.state = 3360; + this.indexHintType(); + } + + this.state = 3363; + this.match(MySQLParser.LR_BRACKET); + this.state = 3364; + this.uidList(); + this.state = 3365; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IndexHintTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_indexHintType; + return this; +} + +IndexHintTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IndexHintTypeContext.prototype.constructor = IndexHintTypeContext; + +IndexHintTypeContext.prototype.JOIN = function() { + return this.getToken(MySQLParser.JOIN, 0); +}; + +IndexHintTypeContext.prototype.ORDER = function() { + return this.getToken(MySQLParser.ORDER, 0); +}; + +IndexHintTypeContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +IndexHintTypeContext.prototype.GROUP = function() { + return this.getToken(MySQLParser.GROUP, 0); +}; + +IndexHintTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIndexHintType(this); + } +}; + +IndexHintTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIndexHintType(this); + } +}; + +IndexHintTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIndexHintType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IndexHintTypeContext = IndexHintTypeContext; + +MySQLParser.prototype.indexHintType = function() { + + var localctx = new IndexHintTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 218, MySQLParser.RULE_indexHintType); + try { + this.state = 3372; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.JOIN: + this.enterOuterAlt(localctx, 1); + this.state = 3367; + this.match(MySQLParser.JOIN); + break; + case MySQLParser.ORDER: + this.enterOuterAlt(localctx, 2); + this.state = 3368; + this.match(MySQLParser.ORDER); + this.state = 3369; + this.match(MySQLParser.BY); + break; + case MySQLParser.GROUP: + this.enterOuterAlt(localctx, 3); + this.state = 3370; + this.match(MySQLParser.GROUP); + this.state = 3371; + this.match(MySQLParser.BY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function JoinPartContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_joinPart; + return this; +} + +JoinPartContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +JoinPartContext.prototype.constructor = JoinPartContext; + + + +JoinPartContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function InnerJoinContext(parser, ctx) { + JoinPartContext.call(this, parser); + JoinPartContext.prototype.copyFrom.call(this, ctx); + return this; +} + +InnerJoinContext.prototype = Object.create(JoinPartContext.prototype); +InnerJoinContext.prototype.constructor = InnerJoinContext; + +MySQLParser.InnerJoinContext = InnerJoinContext; + +InnerJoinContext.prototype.JOIN = function() { + return this.getToken(MySQLParser.JOIN, 0); +}; + +InnerJoinContext.prototype.tableSourceItem = function() { + return this.getTypedRuleContext(TableSourceItemContext,0); +}; + +InnerJoinContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +InnerJoinContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +InnerJoinContext.prototype.USING = function() { + return this.getToken(MySQLParser.USING, 0); +}; + +InnerJoinContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +InnerJoinContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +InnerJoinContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +InnerJoinContext.prototype.INNER = function() { + return this.getToken(MySQLParser.INNER, 0); +}; + +InnerJoinContext.prototype.CROSS = function() { + return this.getToken(MySQLParser.CROSS, 0); +}; +InnerJoinContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterInnerJoin(this); + } +}; + +InnerJoinContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitInnerJoin(this); + } +}; + +InnerJoinContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitInnerJoin(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NaturalJoinContext(parser, ctx) { + JoinPartContext.call(this, parser); + JoinPartContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NaturalJoinContext.prototype = Object.create(JoinPartContext.prototype); +NaturalJoinContext.prototype.constructor = NaturalJoinContext; + +MySQLParser.NaturalJoinContext = NaturalJoinContext; + +NaturalJoinContext.prototype.NATURAL = function() { + return this.getToken(MySQLParser.NATURAL, 0); +}; + +NaturalJoinContext.prototype.JOIN = function() { + return this.getToken(MySQLParser.JOIN, 0); +}; + +NaturalJoinContext.prototype.tableSourceItem = function() { + return this.getTypedRuleContext(TableSourceItemContext,0); +}; + +NaturalJoinContext.prototype.LEFT = function() { + return this.getToken(MySQLParser.LEFT, 0); +}; + +NaturalJoinContext.prototype.RIGHT = function() { + return this.getToken(MySQLParser.RIGHT, 0); +}; + +NaturalJoinContext.prototype.OUTER = function() { + return this.getToken(MySQLParser.OUTER, 0); +}; +NaturalJoinContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterNaturalJoin(this); + } +}; + +NaturalJoinContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitNaturalJoin(this); + } +}; + +NaturalJoinContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitNaturalJoin(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function OuterJoinContext(parser, ctx) { + JoinPartContext.call(this, parser); + JoinPartContext.prototype.copyFrom.call(this, ctx); + return this; +} + +OuterJoinContext.prototype = Object.create(JoinPartContext.prototype); +OuterJoinContext.prototype.constructor = OuterJoinContext; + +MySQLParser.OuterJoinContext = OuterJoinContext; + +OuterJoinContext.prototype.JOIN = function() { + return this.getToken(MySQLParser.JOIN, 0); +}; + +OuterJoinContext.prototype.tableSourceItem = function() { + return this.getTypedRuleContext(TableSourceItemContext,0); +}; + +OuterJoinContext.prototype.LEFT = function() { + return this.getToken(MySQLParser.LEFT, 0); +}; + +OuterJoinContext.prototype.RIGHT = function() { + return this.getToken(MySQLParser.RIGHT, 0); +}; + +OuterJoinContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +OuterJoinContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +OuterJoinContext.prototype.USING = function() { + return this.getToken(MySQLParser.USING, 0); +}; + +OuterJoinContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +OuterJoinContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +OuterJoinContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +OuterJoinContext.prototype.OUTER = function() { + return this.getToken(MySQLParser.OUTER, 0); +}; +OuterJoinContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterOuterJoin(this); + } +}; + +OuterJoinContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitOuterJoin(this); + } +}; + +OuterJoinContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitOuterJoin(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function StraightJoinContext(parser, ctx) { + JoinPartContext.call(this, parser); + JoinPartContext.prototype.copyFrom.call(this, ctx); + return this; +} + +StraightJoinContext.prototype = Object.create(JoinPartContext.prototype); +StraightJoinContext.prototype.constructor = StraightJoinContext; + +MySQLParser.StraightJoinContext = StraightJoinContext; + +StraightJoinContext.prototype.STRAIGHT_JOIN = function() { + return this.getToken(MySQLParser.STRAIGHT_JOIN, 0); +}; + +StraightJoinContext.prototype.tableSourceItem = function() { + return this.getTypedRuleContext(TableSourceItemContext,0); +}; + +StraightJoinContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +StraightJoinContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; +StraightJoinContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStraightJoin(this); + } +}; + +StraightJoinContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStraightJoin(this); + } +}; + +StraightJoinContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStraightJoin(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.JoinPartContext = JoinPartContext; + +MySQLParser.prototype.joinPart = function() { + + var localctx = new JoinPartContext(this, this._ctx, this.state); + this.enterRule(localctx, 220, MySQLParser.RULE_joinPart); + var _la = 0; // Token type + try { + this.state = 3418; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CROSS: + case MySQLParser.INNER: + case MySQLParser.JOIN: + localctx = new InnerJoinContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 3375; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CROSS || _la===MySQLParser.INNER) { + this.state = 3374; + _la = this._input.LA(1); + if(!(_la===MySQLParser.CROSS || _la===MySQLParser.INNER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3377; + this.match(MySQLParser.JOIN); + this.state = 3378; + this.tableSourceItem(); + this.state = 3386; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,477,this._ctx); + if(la_===1) { + this.state = 3379; + this.match(MySQLParser.ON); + this.state = 3380; + this.expression(0); + + } else if(la_===2) { + this.state = 3381; + this.match(MySQLParser.USING); + this.state = 3382; + this.match(MySQLParser.LR_BRACKET); + this.state = 3383; + this.uidList(); + this.state = 3384; + this.match(MySQLParser.RR_BRACKET); + + } + break; + case MySQLParser.STRAIGHT_JOIN: + localctx = new StraightJoinContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 3388; + this.match(MySQLParser.STRAIGHT_JOIN); + this.state = 3389; + this.tableSourceItem(); + this.state = 3392; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,478,this._ctx); + if(la_===1) { + this.state = 3390; + this.match(MySQLParser.ON); + this.state = 3391; + this.expression(0); + + } + break; + case MySQLParser.LEFT: + case MySQLParser.RIGHT: + localctx = new OuterJoinContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 3394; + _la = this._input.LA(1); + if(!(_la===MySQLParser.LEFT || _la===MySQLParser.RIGHT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3396; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.OUTER) { + this.state = 3395; + this.match(MySQLParser.OUTER); + } + + this.state = 3398; + this.match(MySQLParser.JOIN); + this.state = 3399; + this.tableSourceItem(); + this.state = 3407; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ON: + this.state = 3400; + this.match(MySQLParser.ON); + this.state = 3401; + this.expression(0); + break; + case MySQLParser.USING: + this.state = 3402; + this.match(MySQLParser.USING); + this.state = 3403; + this.match(MySQLParser.LR_BRACKET); + this.state = 3404; + this.uidList(); + this.state = 3405; + this.match(MySQLParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case MySQLParser.NATURAL: + localctx = new NaturalJoinContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 3409; + this.match(MySQLParser.NATURAL); + this.state = 3414; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LEFT || _la===MySQLParser.RIGHT) { + this.state = 3410; + _la = this._input.LA(1); + if(!(_la===MySQLParser.LEFT || _la===MySQLParser.RIGHT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3412; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.OUTER) { + this.state = 3411; + this.match(MySQLParser.OUTER); + } + + } + + this.state = 3416; + this.match(MySQLParser.JOIN); + this.state = 3417; + this.tableSourceItem(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function QueryExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_queryExpression; + return this; +} + +QueryExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +QueryExpressionContext.prototype.constructor = QueryExpressionContext; + +QueryExpressionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +QueryExpressionContext.prototype.querySpecification = function() { + return this.getTypedRuleContext(QuerySpecificationContext,0); +}; + +QueryExpressionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +QueryExpressionContext.prototype.queryExpression = function() { + return this.getTypedRuleContext(QueryExpressionContext,0); +}; + +QueryExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterQueryExpression(this); + } +}; + +QueryExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitQueryExpression(this); + } +}; + +QueryExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitQueryExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.QueryExpressionContext = QueryExpressionContext; + +MySQLParser.prototype.queryExpression = function() { + + var localctx = new QueryExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 222, MySQLParser.RULE_queryExpression); + try { + this.state = 3428; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,484,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3420; + this.match(MySQLParser.LR_BRACKET); + this.state = 3421; + this.querySpecification(); + this.state = 3422; + this.match(MySQLParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3424; + this.match(MySQLParser.LR_BRACKET); + this.state = 3425; + this.queryExpression(); + this.state = 3426; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function QueryExpressionNointoContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_queryExpressionNointo; + return this; +} + +QueryExpressionNointoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +QueryExpressionNointoContext.prototype.constructor = QueryExpressionNointoContext; + +QueryExpressionNointoContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +QueryExpressionNointoContext.prototype.querySpecificationNointo = function() { + return this.getTypedRuleContext(QuerySpecificationNointoContext,0); +}; + +QueryExpressionNointoContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +QueryExpressionNointoContext.prototype.queryExpressionNointo = function() { + return this.getTypedRuleContext(QueryExpressionNointoContext,0); +}; + +QueryExpressionNointoContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterQueryExpressionNointo(this); + } +}; + +QueryExpressionNointoContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitQueryExpressionNointo(this); + } +}; + +QueryExpressionNointoContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitQueryExpressionNointo(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.QueryExpressionNointoContext = QueryExpressionNointoContext; + +MySQLParser.prototype.queryExpressionNointo = function() { + + var localctx = new QueryExpressionNointoContext(this, this._ctx, this.state); + this.enterRule(localctx, 224, MySQLParser.RULE_queryExpressionNointo); + try { + this.state = 3438; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,485,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3430; + this.match(MySQLParser.LR_BRACKET); + this.state = 3431; + this.querySpecificationNointo(); + this.state = 3432; + this.match(MySQLParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3434; + this.match(MySQLParser.LR_BRACKET); + this.state = 3435; + this.queryExpressionNointo(); + this.state = 3436; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function QuerySpecificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_querySpecification; + return this; +} + +QuerySpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +QuerySpecificationContext.prototype.constructor = QuerySpecificationContext; + +QuerySpecificationContext.prototype.SELECT = function() { + return this.getToken(MySQLParser.SELECT, 0); +}; + +QuerySpecificationContext.prototype.selectElements = function() { + return this.getTypedRuleContext(SelectElementsContext,0); +}; + +QuerySpecificationContext.prototype.selectSpec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SelectSpecContext); + } else { + return this.getTypedRuleContext(SelectSpecContext,i); + } +}; + +QuerySpecificationContext.prototype.selectIntoExpression = function() { + return this.getTypedRuleContext(SelectIntoExpressionContext,0); +}; + +QuerySpecificationContext.prototype.fromClause = function() { + return this.getTypedRuleContext(FromClauseContext,0); +}; + +QuerySpecificationContext.prototype.orderByClause = function() { + return this.getTypedRuleContext(OrderByClauseContext,0); +}; + +QuerySpecificationContext.prototype.limitClause = function() { + return this.getTypedRuleContext(LimitClauseContext,0); +}; + +QuerySpecificationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterQuerySpecification(this); + } +}; + +QuerySpecificationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitQuerySpecification(this); + } +}; + +QuerySpecificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitQuerySpecification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.QuerySpecificationContext = QuerySpecificationContext; + +MySQLParser.prototype.querySpecification = function() { + + var localctx = new QuerySpecificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 226, MySQLParser.RULE_querySpecification); + var _la = 0; // Token type + try { + this.state = 3480; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,496,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3440; + this.match(MySQLParser.SELECT); + this.state = 3444; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,486,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3441; + this.selectSpec(); + } + this.state = 3446; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,486,this._ctx); + } + + this.state = 3447; + this.selectElements(); + this.state = 3449; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INTO) { + this.state = 3448; + this.selectIntoExpression(); + } + + this.state = 3452; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FROM) { + this.state = 3451; + this.fromClause(); + } + + this.state = 3455; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,489,this._ctx); + if(la_===1) { + this.state = 3454; + this.orderByClause(); + + } + this.state = 3458; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,490,this._ctx); + if(la_===1) { + this.state = 3457; + this.limitClause(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3460; + this.match(MySQLParser.SELECT); + this.state = 3464; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,491,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3461; + this.selectSpec(); + } + this.state = 3466; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,491,this._ctx); + } + + this.state = 3467; + this.selectElements(); + this.state = 3469; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FROM) { + this.state = 3468; + this.fromClause(); + } + + this.state = 3472; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,493,this._ctx); + if(la_===1) { + this.state = 3471; + this.orderByClause(); + + } + this.state = 3475; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,494,this._ctx); + if(la_===1) { + this.state = 3474; + this.limitClause(); + + } + this.state = 3478; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INTO) { + this.state = 3477; + this.selectIntoExpression(); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function QuerySpecificationNointoContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_querySpecificationNointo; + return this; +} + +QuerySpecificationNointoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +QuerySpecificationNointoContext.prototype.constructor = QuerySpecificationNointoContext; + +QuerySpecificationNointoContext.prototype.SELECT = function() { + return this.getToken(MySQLParser.SELECT, 0); +}; + +QuerySpecificationNointoContext.prototype.selectElements = function() { + return this.getTypedRuleContext(SelectElementsContext,0); +}; + +QuerySpecificationNointoContext.prototype.selectSpec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SelectSpecContext); + } else { + return this.getTypedRuleContext(SelectSpecContext,i); + } +}; + +QuerySpecificationNointoContext.prototype.fromClause = function() { + return this.getTypedRuleContext(FromClauseContext,0); +}; + +QuerySpecificationNointoContext.prototype.orderByClause = function() { + return this.getTypedRuleContext(OrderByClauseContext,0); +}; + +QuerySpecificationNointoContext.prototype.limitClause = function() { + return this.getTypedRuleContext(LimitClauseContext,0); +}; + +QuerySpecificationNointoContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterQuerySpecificationNointo(this); + } +}; + +QuerySpecificationNointoContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitQuerySpecificationNointo(this); + } +}; + +QuerySpecificationNointoContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitQuerySpecificationNointo(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.QuerySpecificationNointoContext = QuerySpecificationNointoContext; + +MySQLParser.prototype.querySpecificationNointo = function() { + + var localctx = new QuerySpecificationNointoContext(this, this._ctx, this.state); + this.enterRule(localctx, 228, MySQLParser.RULE_querySpecificationNointo); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3482; + this.match(MySQLParser.SELECT); + this.state = 3486; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,497,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3483; + this.selectSpec(); + } + this.state = 3488; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,497,this._ctx); + } + + this.state = 3489; + this.selectElements(); + this.state = 3491; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FROM) { + this.state = 3490; + this.fromClause(); + } + + this.state = 3494; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,499,this._ctx); + if(la_===1) { + this.state = 3493; + this.orderByClause(); + + } + this.state = 3497; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,500,this._ctx); + if(la_===1) { + this.state = 3496; + this.limitClause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UnionParenthesisContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_unionParenthesis; + this.unionType = null; // Token + return this; +} + +UnionParenthesisContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UnionParenthesisContext.prototype.constructor = UnionParenthesisContext; + +UnionParenthesisContext.prototype.UNION = function() { + return this.getToken(MySQLParser.UNION, 0); +}; + +UnionParenthesisContext.prototype.queryExpressionNointo = function() { + return this.getTypedRuleContext(QueryExpressionNointoContext,0); +}; + +UnionParenthesisContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +UnionParenthesisContext.prototype.DISTINCT = function() { + return this.getToken(MySQLParser.DISTINCT, 0); +}; + +UnionParenthesisContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUnionParenthesis(this); + } +}; + +UnionParenthesisContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUnionParenthesis(this); + } +}; + +UnionParenthesisContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUnionParenthesis(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UnionParenthesisContext = UnionParenthesisContext; + +MySQLParser.prototype.unionParenthesis = function() { + + var localctx = new UnionParenthesisContext(this, this._ctx, this.state); + this.enterRule(localctx, 230, MySQLParser.RULE_unionParenthesis); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3499; + this.match(MySQLParser.UNION); + this.state = 3501; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT) { + this.state = 3500; + localctx.unionType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT)) { + localctx.unionType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3503; + this.queryExpressionNointo(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UnionStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_unionStatement; + this.unionType = null; // Token + return this; +} + +UnionStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UnionStatementContext.prototype.constructor = UnionStatementContext; + +UnionStatementContext.prototype.UNION = function() { + return this.getToken(MySQLParser.UNION, 0); +}; + +UnionStatementContext.prototype.querySpecificationNointo = function() { + return this.getTypedRuleContext(QuerySpecificationNointoContext,0); +}; + +UnionStatementContext.prototype.queryExpressionNointo = function() { + return this.getTypedRuleContext(QueryExpressionNointoContext,0); +}; + +UnionStatementContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +UnionStatementContext.prototype.DISTINCT = function() { + return this.getToken(MySQLParser.DISTINCT, 0); +}; + +UnionStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUnionStatement(this); + } +}; + +UnionStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUnionStatement(this); + } +}; + +UnionStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUnionStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UnionStatementContext = UnionStatementContext; + +MySQLParser.prototype.unionStatement = function() { + + var localctx = new UnionStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 232, MySQLParser.RULE_unionStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3505; + this.match(MySQLParser.UNION); + this.state = 3507; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT) { + this.state = 3506; + localctx.unionType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT)) { + localctx.unionType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3511; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SELECT: + this.state = 3509; + this.querySpecificationNointo(); + break; + case MySQLParser.LR_BRACKET: + this.state = 3510; + this.queryExpressionNointo(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectSpecContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_selectSpec; + return this; +} + +SelectSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectSpecContext.prototype.constructor = SelectSpecContext; + +SelectSpecContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +SelectSpecContext.prototype.DISTINCT = function() { + return this.getToken(MySQLParser.DISTINCT, 0); +}; + +SelectSpecContext.prototype.DISTINCTROW = function() { + return this.getToken(MySQLParser.DISTINCTROW, 0); +}; + +SelectSpecContext.prototype.HIGH_PRIORITY = function() { + return this.getToken(MySQLParser.HIGH_PRIORITY, 0); +}; + +SelectSpecContext.prototype.STRAIGHT_JOIN = function() { + return this.getToken(MySQLParser.STRAIGHT_JOIN, 0); +}; + +SelectSpecContext.prototype.SQL_SMALL_RESULT = function() { + return this.getToken(MySQLParser.SQL_SMALL_RESULT, 0); +}; + +SelectSpecContext.prototype.SQL_BIG_RESULT = function() { + return this.getToken(MySQLParser.SQL_BIG_RESULT, 0); +}; + +SelectSpecContext.prototype.SQL_BUFFER_RESULT = function() { + return this.getToken(MySQLParser.SQL_BUFFER_RESULT, 0); +}; + +SelectSpecContext.prototype.SQL_CACHE = function() { + return this.getToken(MySQLParser.SQL_CACHE, 0); +}; + +SelectSpecContext.prototype.SQL_NO_CACHE = function() { + return this.getToken(MySQLParser.SQL_NO_CACHE, 0); +}; + +SelectSpecContext.prototype.SQL_CALC_FOUND_ROWS = function() { + return this.getToken(MySQLParser.SQL_CALC_FOUND_ROWS, 0); +}; + +SelectSpecContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectSpec(this); + } +}; + +SelectSpecContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectSpec(this); + } +}; + +SelectSpecContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectSpec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SelectSpecContext = SelectSpecContext; + +MySQLParser.prototype.selectSpec = function() { + + var localctx = new SelectSpecContext(this, this._ctx, this.state); + this.enterRule(localctx, 234, MySQLParser.RULE_selectSpec); + var _la = 0; // Token type + try { + this.state = 3521; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ALL: + case MySQLParser.DISTINCT: + case MySQLParser.DISTINCTROW: + this.enterOuterAlt(localctx, 1); + this.state = 3513; + _la = this._input.LA(1); + if(!(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT || _la===MySQLParser.DISTINCTROW)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.HIGH_PRIORITY: + this.enterOuterAlt(localctx, 2); + this.state = 3514; + this.match(MySQLParser.HIGH_PRIORITY); + break; + case MySQLParser.STRAIGHT_JOIN: + this.enterOuterAlt(localctx, 3); + this.state = 3515; + this.match(MySQLParser.STRAIGHT_JOIN); + break; + case MySQLParser.SQL_SMALL_RESULT: + this.enterOuterAlt(localctx, 4); + this.state = 3516; + this.match(MySQLParser.SQL_SMALL_RESULT); + break; + case MySQLParser.SQL_BIG_RESULT: + this.enterOuterAlt(localctx, 5); + this.state = 3517; + this.match(MySQLParser.SQL_BIG_RESULT); + break; + case MySQLParser.SQL_BUFFER_RESULT: + this.enterOuterAlt(localctx, 6); + this.state = 3518; + this.match(MySQLParser.SQL_BUFFER_RESULT); + break; + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + this.enterOuterAlt(localctx, 7); + this.state = 3519; + _la = this._input.LA(1); + if(!(_la===MySQLParser.SQL_CACHE || _la===MySQLParser.SQL_NO_CACHE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.SQL_CALC_FOUND_ROWS: + this.enterOuterAlt(localctx, 8); + this.state = 3520; + this.match(MySQLParser.SQL_CALC_FOUND_ROWS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectElementsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_selectElements; + this.star = null; // Token + return this; +} + +SelectElementsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectElementsContext.prototype.constructor = SelectElementsContext; + +SelectElementsContext.prototype.selectElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SelectElementContext); + } else { + return this.getTypedRuleContext(SelectElementContext,i); + } +}; + +SelectElementsContext.prototype.STAR = function() { + return this.getToken(MySQLParser.STAR, 0); +}; + +SelectElementsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +SelectElementsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectElements(this); + } +}; + +SelectElementsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectElements(this); + } +}; + +SelectElementsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectElements(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SelectElementsContext = SelectElementsContext; + +MySQLParser.prototype.selectElements = function() { + + var localctx = new SelectElementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 236, MySQLParser.RULE_selectElements); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3525; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.STAR: + this.state = 3523; + localctx.star = this.match(MySQLParser.STAR); + break; + case MySQLParser.CASE: + case MySQLParser.CAST: + case MySQLParser.CONVERT: + case MySQLParser.CURRENT: + case MySQLParser.CURRENT_USER: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.EXISTS: + case MySQLParser.FALSE: + case MySQLParser.IF: + case MySQLParser.INSERT: + case MySQLParser.INTERVAL: + case MySQLParser.LEFT: + case MySQLParser.NOT: + case MySQLParser.NULL_LITERAL: + case MySQLParser.NUMBER: + case MySQLParser.REPLACE: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.TRUE: + case MySQLParser.VALUES: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.CHAR: + case MySQLParser.BINARY: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.AVG: + case MySQLParser.BIT_AND: + case MySQLParser.BIT_OR: + case MySQLParser.BIT_XOR: + case MySQLParser.COUNT: + case MySQLParser.GROUP_CONCAT: + case MySQLParser.MAX: + case MySQLParser.MIN: + case MySQLParser.STD: + case MySQLParser.STDDEV: + case MySQLParser.STDDEV_POP: + case MySQLParser.STDDEV_SAMP: + case MySQLParser.SUM: + case MySQLParser.VAR_POP: + case MySQLParser.VAR_SAMP: + case MySQLParser.VARIANCE: + case MySQLParser.CURRENT_DATE: + case MySQLParser.CURRENT_TIME: + case MySQLParser.CURRENT_TIMESTAMP: + case MySQLParser.LOCALTIME: + case MySQLParser.CURDATE: + case MySQLParser.CURTIME: + case MySQLParser.DATE_ADD: + case MySQLParser.DATE_SUB: + case MySQLParser.EXTRACT: + case MySQLParser.LOCALTIMESTAMP: + case MySQLParser.NOW: + case MySQLParser.POSITION: + case MySQLParser.SUBSTR: + case MySQLParser.SUBSTRING: + case MySQLParser.SYSDATE: + case MySQLParser.TRIM: + case MySQLParser.UTC_DATE: + case MySQLParser.UTC_TIME: + case MySQLParser.UTC_TIMESTAMP: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.PLUS: + case MySQLParser.MINUS: + case MySQLParser.EXCLAMATION_SYMBOL: + case MySQLParser.BIT_NOT_OP: + case MySQLParser.LR_BRACKET: + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.START_NATIONAL_STRING_LITERAL: + case MySQLParser.STRING_LITERAL: + case MySQLParser.DECIMAL_LITERAL: + case MySQLParser.HEXADECIMAL_LITERAL: + case MySQLParser.REAL_LITERAL: + case MySQLParser.NULL_SPEC_LITERAL: + case MySQLParser.BIT_STRING: + case MySQLParser.STRING_CHARSET_NAME: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + case MySQLParser.LOCAL_ID: + case MySQLParser.GLOBAL_ID: + this.state = 3524; + this.selectElement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3531; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3527; + this.match(MySQLParser.COMMA); + this.state = 3528; + this.selectElement(); + this.state = 3533; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectElementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_selectElement; + return this; +} + +SelectElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectElementContext.prototype.constructor = SelectElementContext; + + + +SelectElementContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SelectExpressionElementContext(parser, ctx) { + SelectElementContext.call(this, parser); + SelectElementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SelectExpressionElementContext.prototype = Object.create(SelectElementContext.prototype); +SelectExpressionElementContext.prototype.constructor = SelectExpressionElementContext; + +MySQLParser.SelectExpressionElementContext = SelectExpressionElementContext; + +SelectExpressionElementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +SelectExpressionElementContext.prototype.LOCAL_ID = function() { + return this.getToken(MySQLParser.LOCAL_ID, 0); +}; + +SelectExpressionElementContext.prototype.VAR_ASSIGN = function() { + return this.getToken(MySQLParser.VAR_ASSIGN, 0); +}; + +SelectExpressionElementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SelectExpressionElementContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; +SelectExpressionElementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectExpressionElement(this); + } +}; + +SelectExpressionElementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectExpressionElement(this); + } +}; + +SelectExpressionElementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectExpressionElement(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SelectFunctionElementContext(parser, ctx) { + SelectElementContext.call(this, parser); + SelectElementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SelectFunctionElementContext.prototype = Object.create(SelectElementContext.prototype); +SelectFunctionElementContext.prototype.constructor = SelectFunctionElementContext; + +MySQLParser.SelectFunctionElementContext = SelectFunctionElementContext; + +SelectFunctionElementContext.prototype.functionCall = function() { + return this.getTypedRuleContext(FunctionCallContext,0); +}; + +SelectFunctionElementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SelectFunctionElementContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; +SelectFunctionElementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectFunctionElement(this); + } +}; + +SelectFunctionElementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectFunctionElement(this); + } +}; + +SelectFunctionElementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectFunctionElement(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SelectStarElementContext(parser, ctx) { + SelectElementContext.call(this, parser); + SelectElementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SelectStarElementContext.prototype = Object.create(SelectElementContext.prototype); +SelectStarElementContext.prototype.constructor = SelectStarElementContext; + +MySQLParser.SelectStarElementContext = SelectStarElementContext; + +SelectStarElementContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +SelectStarElementContext.prototype.DOT = function() { + return this.getToken(MySQLParser.DOT, 0); +}; + +SelectStarElementContext.prototype.STAR = function() { + return this.getToken(MySQLParser.STAR, 0); +}; +SelectStarElementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectStarElement(this); + } +}; + +SelectStarElementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectStarElement(this); + } +}; + +SelectStarElementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectStarElement(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SelectColumnElementContext(parser, ctx) { + SelectElementContext.call(this, parser); + SelectElementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SelectColumnElementContext.prototype = Object.create(SelectElementContext.prototype); +SelectColumnElementContext.prototype.constructor = SelectColumnElementContext; + +MySQLParser.SelectColumnElementContext = SelectColumnElementContext; + +SelectColumnElementContext.prototype.fullColumnName = function() { + return this.getTypedRuleContext(FullColumnNameContext,0); +}; + +SelectColumnElementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SelectColumnElementContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; +SelectColumnElementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectColumnElement(this); + } +}; + +SelectColumnElementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectColumnElement(this); + } +}; + +SelectColumnElementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectColumnElement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.SelectElementContext = SelectElementContext; + +MySQLParser.prototype.selectElement = function() { + + var localctx = new SelectElementContext(this, this._ctx, this.state); + this.enterRule(localctx, 238, MySQLParser.RULE_selectElement); + var _la = 0; // Token type + try { + this.state = 3563; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,514,this._ctx); + switch(la_) { + case 1: + localctx = new SelectStarElementContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 3534; + this.fullId(); + this.state = 3535; + this.match(MySQLParser.DOT); + this.state = 3536; + this.match(MySQLParser.STAR); + break; + + case 2: + localctx = new SelectColumnElementContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 3538; + this.fullColumnName(); + this.state = 3543; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,508,this._ctx); + if(la_===1) { + this.state = 3540; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 3539; + this.match(MySQLParser.AS); + } + + this.state = 3542; + this.uid(); + + } + break; + + case 3: + localctx = new SelectFunctionElementContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 3545; + this.functionCall(); + this.state = 3550; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,510,this._ctx); + if(la_===1) { + this.state = 3547; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 3546; + this.match(MySQLParser.AS); + } + + this.state = 3549; + this.uid(); + + } + break; + + case 4: + localctx = new SelectExpressionElementContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 3554; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,511,this._ctx); + if(la_===1) { + this.state = 3552; + this.match(MySQLParser.LOCAL_ID); + this.state = 3553; + this.match(MySQLParser.VAR_ASSIGN); + + } + this.state = 3556; + this.expression(0); + this.state = 3561; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,513,this._ctx); + if(la_===1) { + this.state = 3558; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 3557; + this.match(MySQLParser.AS); + } + + this.state = 3560; + this.uid(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectIntoExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_selectIntoExpression; + return this; +} + +SelectIntoExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectIntoExpressionContext.prototype.constructor = SelectIntoExpressionContext; + + + +SelectIntoExpressionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SelectIntoVariablesContext(parser, ctx) { + SelectIntoExpressionContext.call(this, parser); + SelectIntoExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SelectIntoVariablesContext.prototype = Object.create(SelectIntoExpressionContext.prototype); +SelectIntoVariablesContext.prototype.constructor = SelectIntoVariablesContext; + +MySQLParser.SelectIntoVariablesContext = SelectIntoVariablesContext; + +SelectIntoVariablesContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +SelectIntoVariablesContext.prototype.assignmentField = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(AssignmentFieldContext); + } else { + return this.getTypedRuleContext(AssignmentFieldContext,i); + } +}; + +SelectIntoVariablesContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +SelectIntoVariablesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectIntoVariables(this); + } +}; + +SelectIntoVariablesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectIntoVariables(this); + } +}; + +SelectIntoVariablesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectIntoVariables(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SelectIntoTextFileContext(parser, ctx) { + SelectIntoExpressionContext.call(this, parser); + this.filename = null; // Token; + this.charset = null; // CharsetNameContext; + this.fieldsFormat = null; // Token; + SelectIntoExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SelectIntoTextFileContext.prototype = Object.create(SelectIntoExpressionContext.prototype); +SelectIntoTextFileContext.prototype.constructor = SelectIntoTextFileContext; + +MySQLParser.SelectIntoTextFileContext = SelectIntoTextFileContext; + +SelectIntoTextFileContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +SelectIntoTextFileContext.prototype.OUTFILE = function() { + return this.getToken(MySQLParser.OUTFILE, 0); +}; + +SelectIntoTextFileContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +SelectIntoTextFileContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +SelectIntoTextFileContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SelectIntoTextFileContext.prototype.LINES = function() { + return this.getToken(MySQLParser.LINES, 0); +}; + +SelectIntoTextFileContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +SelectIntoTextFileContext.prototype.FIELDS = function() { + return this.getToken(MySQLParser.FIELDS, 0); +}; + +SelectIntoTextFileContext.prototype.COLUMNS = function() { + return this.getToken(MySQLParser.COLUMNS, 0); +}; + +SelectIntoTextFileContext.prototype.selectFieldsInto = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SelectFieldsIntoContext); + } else { + return this.getTypedRuleContext(SelectFieldsIntoContext,i); + } +}; + +SelectIntoTextFileContext.prototype.selectLinesInto = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SelectLinesIntoContext); + } else { + return this.getTypedRuleContext(SelectLinesIntoContext,i); + } +}; +SelectIntoTextFileContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectIntoTextFile(this); + } +}; + +SelectIntoTextFileContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectIntoTextFile(this); + } +}; + +SelectIntoTextFileContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectIntoTextFile(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SelectIntoDumpFileContext(parser, ctx) { + SelectIntoExpressionContext.call(this, parser); + SelectIntoExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SelectIntoDumpFileContext.prototype = Object.create(SelectIntoExpressionContext.prototype); +SelectIntoDumpFileContext.prototype.constructor = SelectIntoDumpFileContext; + +MySQLParser.SelectIntoDumpFileContext = SelectIntoDumpFileContext; + +SelectIntoDumpFileContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +SelectIntoDumpFileContext.prototype.DUMPFILE = function() { + return this.getToken(MySQLParser.DUMPFILE, 0); +}; + +SelectIntoDumpFileContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +SelectIntoDumpFileContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectIntoDumpFile(this); + } +}; + +SelectIntoDumpFileContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectIntoDumpFile(this); + } +}; + +SelectIntoDumpFileContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectIntoDumpFile(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.SelectIntoExpressionContext = SelectIntoExpressionContext; + +MySQLParser.prototype.selectIntoExpression = function() { + + var localctx = new SelectIntoExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 240, MySQLParser.RULE_selectIntoExpression); + var _la = 0; // Token type + try { + this.state = 3601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,521,this._ctx); + switch(la_) { + case 1: + localctx = new SelectIntoVariablesContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 3565; + this.match(MySQLParser.INTO); + this.state = 3566; + this.assignmentField(); + this.state = 3571; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3567; + this.match(MySQLParser.COMMA); + this.state = 3568; + this.assignmentField(); + this.state = 3573; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + localctx = new SelectIntoDumpFileContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 3574; + this.match(MySQLParser.INTO); + this.state = 3575; + this.match(MySQLParser.DUMPFILE); + this.state = 3576; + this.match(MySQLParser.STRING_LITERAL); + break; + + case 3: + localctx = new SelectIntoTextFileContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 3577; + this.match(MySQLParser.INTO); + this.state = 3578; + this.match(MySQLParser.OUTFILE); + this.state = 3579; + localctx.filename = this.match(MySQLParser.STRING_LITERAL); + this.state = 3583; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CHARACTER) { + this.state = 3580; + this.match(MySQLParser.CHARACTER); + this.state = 3581; + this.match(MySQLParser.SET); + this.state = 3582; + localctx.charset = this.charsetName(); + } + + this.state = 3591; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,518,this._ctx); + if(la_===1) { + this.state = 3585; + localctx.fieldsFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.COLUMNS || _la===MySQLParser.FIELDS)) { + localctx.fieldsFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3587; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3586; + this.selectFieldsInto(); + this.state = 3589; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.ENCLOSED || _la===MySQLParser.ESCAPED || _la===MySQLParser.OPTIONALLY || _la===MySQLParser.TERMINATED); + + } + this.state = 3599; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LINES) { + this.state = 3593; + this.match(MySQLParser.LINES); + this.state = 3595; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3594; + this.selectLinesInto(); + this.state = 3597; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.STARTING || _la===MySQLParser.TERMINATED); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectFieldsIntoContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_selectFieldsInto; + this.terminationField = null; // Token + this.enclosion = null; // Token + this.escaping = null; // Token + return this; +} + +SelectFieldsIntoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectFieldsIntoContext.prototype.constructor = SelectFieldsIntoContext; + +SelectFieldsIntoContext.prototype.TERMINATED = function() { + return this.getToken(MySQLParser.TERMINATED, 0); +}; + +SelectFieldsIntoContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +SelectFieldsIntoContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +SelectFieldsIntoContext.prototype.ENCLOSED = function() { + return this.getToken(MySQLParser.ENCLOSED, 0); +}; + +SelectFieldsIntoContext.prototype.OPTIONALLY = function() { + return this.getToken(MySQLParser.OPTIONALLY, 0); +}; + +SelectFieldsIntoContext.prototype.ESCAPED = function() { + return this.getToken(MySQLParser.ESCAPED, 0); +}; + +SelectFieldsIntoContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectFieldsInto(this); + } +}; + +SelectFieldsIntoContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectFieldsInto(this); + } +}; + +SelectFieldsIntoContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectFieldsInto(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SelectFieldsIntoContext = SelectFieldsIntoContext; + +MySQLParser.prototype.selectFieldsInto = function() { + + var localctx = new SelectFieldsIntoContext(this, this._ctx, this.state); + this.enterRule(localctx, 242, MySQLParser.RULE_selectFieldsInto); + var _la = 0; // Token type + try { + this.state = 3615; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.TERMINATED: + this.enterOuterAlt(localctx, 1); + this.state = 3603; + this.match(MySQLParser.TERMINATED); + this.state = 3604; + this.match(MySQLParser.BY); + this.state = 3605; + localctx.terminationField = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.ENCLOSED: + case MySQLParser.OPTIONALLY: + this.enterOuterAlt(localctx, 2); + this.state = 3607; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.OPTIONALLY) { + this.state = 3606; + this.match(MySQLParser.OPTIONALLY); + } + + this.state = 3609; + this.match(MySQLParser.ENCLOSED); + this.state = 3610; + this.match(MySQLParser.BY); + this.state = 3611; + localctx.enclosion = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.ESCAPED: + this.enterOuterAlt(localctx, 3); + this.state = 3612; + this.match(MySQLParser.ESCAPED); + this.state = 3613; + this.match(MySQLParser.BY); + this.state = 3614; + localctx.escaping = this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectLinesIntoContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_selectLinesInto; + this.starting = null; // Token + this.terminationLine = null; // Token + return this; +} + +SelectLinesIntoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectLinesIntoContext.prototype.constructor = SelectLinesIntoContext; + +SelectLinesIntoContext.prototype.STARTING = function() { + return this.getToken(MySQLParser.STARTING, 0); +}; + +SelectLinesIntoContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +SelectLinesIntoContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +SelectLinesIntoContext.prototype.TERMINATED = function() { + return this.getToken(MySQLParser.TERMINATED, 0); +}; + +SelectLinesIntoContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSelectLinesInto(this); + } +}; + +SelectLinesIntoContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSelectLinesInto(this); + } +}; + +SelectLinesIntoContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSelectLinesInto(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SelectLinesIntoContext = SelectLinesIntoContext; + +MySQLParser.prototype.selectLinesInto = function() { + + var localctx = new SelectLinesIntoContext(this, this._ctx, this.state); + this.enterRule(localctx, 244, MySQLParser.RULE_selectLinesInto); + try { + this.state = 3623; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.STARTING: + this.enterOuterAlt(localctx, 1); + this.state = 3617; + this.match(MySQLParser.STARTING); + this.state = 3618; + this.match(MySQLParser.BY); + this.state = 3619; + localctx.starting = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.TERMINATED: + this.enterOuterAlt(localctx, 2); + this.state = 3620; + this.match(MySQLParser.TERMINATED); + this.state = 3621; + this.match(MySQLParser.BY); + this.state = 3622; + localctx.terminationLine = this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FromClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_fromClause; + this.whereExpr = null; // ExpressionContext + this.havingExpr = null; // ExpressionContext + return this; +} + +FromClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FromClauseContext.prototype.constructor = FromClauseContext; + +FromClauseContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +FromClauseContext.prototype.tableSources = function() { + return this.getTypedRuleContext(TableSourcesContext,0); +}; + +FromClauseContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +FromClauseContext.prototype.GROUP = function() { + return this.getToken(MySQLParser.GROUP, 0); +}; + +FromClauseContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +FromClauseContext.prototype.groupByItem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(GroupByItemContext); + } else { + return this.getTypedRuleContext(GroupByItemContext,i); + } +}; + +FromClauseContext.prototype.HAVING = function() { + return this.getToken(MySQLParser.HAVING, 0); +}; + +FromClauseContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +FromClauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +FromClauseContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +FromClauseContext.prototype.ROLLUP = function() { + return this.getToken(MySQLParser.ROLLUP, 0); +}; + +FromClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFromClause(this); + } +}; + +FromClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFromClause(this); + } +}; + +FromClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFromClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FromClauseContext = FromClauseContext; + +MySQLParser.prototype.fromClause = function() { + + var localctx = new FromClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 246, MySQLParser.RULE_fromClause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3625; + this.match(MySQLParser.FROM); + this.state = 3626; + this.tableSources(); + this.state = 3629; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WHERE) { + this.state = 3627; + this.match(MySQLParser.WHERE); + this.state = 3628; + localctx.whereExpr = this.expression(0); + } + + this.state = 3645; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.GROUP) { + this.state = 3631; + this.match(MySQLParser.GROUP); + this.state = 3632; + this.match(MySQLParser.BY); + this.state = 3633; + this.groupByItem(); + this.state = 3638; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3634; + this.match(MySQLParser.COMMA); + this.state = 3635; + this.groupByItem(); + this.state = 3640; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3643; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,527,this._ctx); + if(la_===1) { + this.state = 3641; + this.match(MySQLParser.WITH); + this.state = 3642; + this.match(MySQLParser.ROLLUP); + + } + } + + this.state = 3649; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.HAVING) { + this.state = 3647; + this.match(MySQLParser.HAVING); + this.state = 3648; + localctx.havingExpr = this.expression(0); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function GroupByItemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_groupByItem; + this.order = null; // Token + return this; +} + +GroupByItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +GroupByItemContext.prototype.constructor = GroupByItemContext; + +GroupByItemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +GroupByItemContext.prototype.ASC = function() { + return this.getToken(MySQLParser.ASC, 0); +}; + +GroupByItemContext.prototype.DESC = function() { + return this.getToken(MySQLParser.DESC, 0); +}; + +GroupByItemContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterGroupByItem(this); + } +}; + +GroupByItemContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitGroupByItem(this); + } +}; + +GroupByItemContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitGroupByItem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.GroupByItemContext = GroupByItemContext; + +MySQLParser.prototype.groupByItem = function() { + + var localctx = new GroupByItemContext(this, this._ctx, this.state); + this.enterRule(localctx, 248, MySQLParser.RULE_groupByItem); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3651; + this.expression(0); + this.state = 3653; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,530,this._ctx); + if(la_===1) { + this.state = 3652; + localctx.order = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ASC || _la===MySQLParser.DESC)) { + localctx.order = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LimitClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_limitClause; + this.offset = null; // LimitClauseAtomContext + this.limit = null; // LimitClauseAtomContext + return this; +} + +LimitClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LimitClauseContext.prototype.constructor = LimitClauseContext; + +LimitClauseContext.prototype.LIMIT = function() { + return this.getToken(MySQLParser.LIMIT, 0); +}; + +LimitClauseContext.prototype.OFFSET = function() { + return this.getToken(MySQLParser.OFFSET, 0); +}; + +LimitClauseContext.prototype.limitClauseAtom = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LimitClauseAtomContext); + } else { + return this.getTypedRuleContext(LimitClauseAtomContext,i); + } +}; + +LimitClauseContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; + +LimitClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLimitClause(this); + } +}; + +LimitClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLimitClause(this); + } +}; + +LimitClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLimitClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LimitClauseContext = LimitClauseContext; + +MySQLParser.prototype.limitClause = function() { + + var localctx = new LimitClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 250, MySQLParser.RULE_limitClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3655; + this.match(MySQLParser.LIMIT); + this.state = 3666; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,532,this._ctx); + switch(la_) { + case 1: + this.state = 3659; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,531,this._ctx); + if(la_===1) { + this.state = 3656; + localctx.offset = this.limitClauseAtom(); + this.state = 3657; + this.match(MySQLParser.COMMA); + + } + this.state = 3661; + localctx.limit = this.limitClauseAtom(); + break; + + case 2: + this.state = 3662; + localctx.limit = this.limitClauseAtom(); + this.state = 3663; + this.match(MySQLParser.OFFSET); + this.state = 3664; + localctx.offset = this.limitClauseAtom(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LimitClauseAtomContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_limitClauseAtom; + return this; +} + +LimitClauseAtomContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LimitClauseAtomContext.prototype.constructor = LimitClauseAtomContext; + +LimitClauseAtomContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +LimitClauseAtomContext.prototype.mysqlVariable = function() { + return this.getTypedRuleContext(MysqlVariableContext,0); +}; + +LimitClauseAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLimitClauseAtom(this); + } +}; + +LimitClauseAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLimitClauseAtom(this); + } +}; + +LimitClauseAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLimitClauseAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LimitClauseAtomContext = LimitClauseAtomContext; + +MySQLParser.prototype.limitClauseAtom = function() { + + var localctx = new LimitClauseAtomContext(this, this._ctx, this.state); + this.enterRule(localctx, 252, MySQLParser.RULE_limitClauseAtom); + try { + this.state = 3670; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.DECIMAL_LITERAL: + this.enterOuterAlt(localctx, 1); + this.state = 3668; + this.decimalLiteral(); + break; + case MySQLParser.LOCAL_ID: + case MySQLParser.GLOBAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 3669; + this.mysqlVariable(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StartTransactionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_startTransaction; + return this; +} + +StartTransactionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StartTransactionContext.prototype.constructor = StartTransactionContext; + +StartTransactionContext.prototype.START = function() { + return this.getToken(MySQLParser.START, 0); +}; + +StartTransactionContext.prototype.TRANSACTION = function() { + return this.getToken(MySQLParser.TRANSACTION, 0); +}; + +StartTransactionContext.prototype.transactionMode = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TransactionModeContext); + } else { + return this.getTypedRuleContext(TransactionModeContext,i); + } +}; + +StartTransactionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +StartTransactionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStartTransaction(this); + } +}; + +StartTransactionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStartTransaction(this); + } +}; + +StartTransactionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStartTransaction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.StartTransactionContext = StartTransactionContext; + +MySQLParser.prototype.startTransaction = function() { + + var localctx = new StartTransactionContext(this, this._ctx, this.state); + this.enterRule(localctx, 254, MySQLParser.RULE_startTransaction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3672; + this.match(MySQLParser.START); + this.state = 3673; + this.match(MySQLParser.TRANSACTION); + this.state = 3682; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.READ || _la===MySQLParser.WITH) { + this.state = 3674; + this.transactionMode(); + this.state = 3679; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3675; + this.match(MySQLParser.COMMA); + this.state = 3676; + this.transactionMode(); + this.state = 3681; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BeginWorkContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_beginWork; + return this; +} + +BeginWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BeginWorkContext.prototype.constructor = BeginWorkContext; + +BeginWorkContext.prototype.BEGIN = function() { + return this.getToken(MySQLParser.BEGIN, 0); +}; + +BeginWorkContext.prototype.WORK = function() { + return this.getToken(MySQLParser.WORK, 0); +}; + +BeginWorkContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBeginWork(this); + } +}; + +BeginWorkContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBeginWork(this); + } +}; + +BeginWorkContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBeginWork(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.BeginWorkContext = BeginWorkContext; + +MySQLParser.prototype.beginWork = function() { + + var localctx = new BeginWorkContext(this, this._ctx, this.state); + this.enterRule(localctx, 256, MySQLParser.RULE_beginWork); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3684; + this.match(MySQLParser.BEGIN); + this.state = 3686; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WORK) { + this.state = 3685; + this.match(MySQLParser.WORK); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CommitWorkContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_commitWork; + this.nochain = null; // Token + this.norelease = null; // Token + return this; +} + +CommitWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CommitWorkContext.prototype.constructor = CommitWorkContext; + +CommitWorkContext.prototype.COMMIT = function() { + return this.getToken(MySQLParser.COMMIT, 0); +}; + +CommitWorkContext.prototype.WORK = function() { + return this.getToken(MySQLParser.WORK, 0); +}; + +CommitWorkContext.prototype.AND = function() { + return this.getToken(MySQLParser.AND, 0); +}; + +CommitWorkContext.prototype.CHAIN = function() { + return this.getToken(MySQLParser.CHAIN, 0); +}; + +CommitWorkContext.prototype.RELEASE = function() { + return this.getToken(MySQLParser.RELEASE, 0); +}; + +CommitWorkContext.prototype.NO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.NO); + } else { + return this.getToken(MySQLParser.NO, i); + } +}; + + +CommitWorkContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCommitWork(this); + } +}; + +CommitWorkContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCommitWork(this); + } +}; + +CommitWorkContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCommitWork(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CommitWorkContext = CommitWorkContext; + +MySQLParser.prototype.commitWork = function() { + + var localctx = new CommitWorkContext(this, this._ctx, this.state); + this.enterRule(localctx, 258, MySQLParser.RULE_commitWork); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3688; + this.match(MySQLParser.COMMIT); + this.state = 3690; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WORK) { + this.state = 3689; + this.match(MySQLParser.WORK); + } + + this.state = 3697; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AND) { + this.state = 3692; + this.match(MySQLParser.AND); + this.state = 3694; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NO) { + this.state = 3693; + localctx.nochain = this.match(MySQLParser.NO); + } + + this.state = 3696; + this.match(MySQLParser.CHAIN); + } + + this.state = 3703; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,541,this._ctx); + if(la_===1) { + this.state = 3700; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NO) { + this.state = 3699; + localctx.norelease = this.match(MySQLParser.NO); + } + + this.state = 3702; + this.match(MySQLParser.RELEASE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RollbackWorkContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_rollbackWork; + this.nochain = null; // Token + this.norelease = null; // Token + return this; +} + +RollbackWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RollbackWorkContext.prototype.constructor = RollbackWorkContext; + +RollbackWorkContext.prototype.ROLLBACK = function() { + return this.getToken(MySQLParser.ROLLBACK, 0); +}; + +RollbackWorkContext.prototype.WORK = function() { + return this.getToken(MySQLParser.WORK, 0); +}; + +RollbackWorkContext.prototype.AND = function() { + return this.getToken(MySQLParser.AND, 0); +}; + +RollbackWorkContext.prototype.CHAIN = function() { + return this.getToken(MySQLParser.CHAIN, 0); +}; + +RollbackWorkContext.prototype.RELEASE = function() { + return this.getToken(MySQLParser.RELEASE, 0); +}; + +RollbackWorkContext.prototype.NO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.NO); + } else { + return this.getToken(MySQLParser.NO, i); + } +}; + + +RollbackWorkContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRollbackWork(this); + } +}; + +RollbackWorkContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRollbackWork(this); + } +}; + +RollbackWorkContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRollbackWork(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RollbackWorkContext = RollbackWorkContext; + +MySQLParser.prototype.rollbackWork = function() { + + var localctx = new RollbackWorkContext(this, this._ctx, this.state); + this.enterRule(localctx, 260, MySQLParser.RULE_rollbackWork); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3705; + this.match(MySQLParser.ROLLBACK); + this.state = 3707; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WORK) { + this.state = 3706; + this.match(MySQLParser.WORK); + } + + this.state = 3714; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AND) { + this.state = 3709; + this.match(MySQLParser.AND); + this.state = 3711; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NO) { + this.state = 3710; + localctx.nochain = this.match(MySQLParser.NO); + } + + this.state = 3713; + this.match(MySQLParser.CHAIN); + } + + this.state = 3720; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,546,this._ctx); + if(la_===1) { + this.state = 3717; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NO) { + this.state = 3716; + localctx.norelease = this.match(MySQLParser.NO); + } + + this.state = 3719; + this.match(MySQLParser.RELEASE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SavepointStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_savepointStatement; + return this; +} + +SavepointStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SavepointStatementContext.prototype.constructor = SavepointStatementContext; + +SavepointStatementContext.prototype.SAVEPOINT = function() { + return this.getToken(MySQLParser.SAVEPOINT, 0); +}; + +SavepointStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SavepointStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSavepointStatement(this); + } +}; + +SavepointStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSavepointStatement(this); + } +}; + +SavepointStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSavepointStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SavepointStatementContext = SavepointStatementContext; + +MySQLParser.prototype.savepointStatement = function() { + + var localctx = new SavepointStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 262, MySQLParser.RULE_savepointStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3722; + this.match(MySQLParser.SAVEPOINT); + this.state = 3723; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RollbackStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_rollbackStatement; + return this; +} + +RollbackStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RollbackStatementContext.prototype.constructor = RollbackStatementContext; + +RollbackStatementContext.prototype.ROLLBACK = function() { + return this.getToken(MySQLParser.ROLLBACK, 0); +}; + +RollbackStatementContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +RollbackStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +RollbackStatementContext.prototype.WORK = function() { + return this.getToken(MySQLParser.WORK, 0); +}; + +RollbackStatementContext.prototype.SAVEPOINT = function() { + return this.getToken(MySQLParser.SAVEPOINT, 0); +}; + +RollbackStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRollbackStatement(this); + } +}; + +RollbackStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRollbackStatement(this); + } +}; + +RollbackStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRollbackStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RollbackStatementContext = RollbackStatementContext; + +MySQLParser.prototype.rollbackStatement = function() { + + var localctx = new RollbackStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 264, MySQLParser.RULE_rollbackStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3725; + this.match(MySQLParser.ROLLBACK); + this.state = 3727; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WORK) { + this.state = 3726; + this.match(MySQLParser.WORK); + } + + this.state = 3729; + this.match(MySQLParser.TO); + this.state = 3731; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,548,this._ctx); + if(la_===1) { + this.state = 3730; + this.match(MySQLParser.SAVEPOINT); + + } + this.state = 3733; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ReleaseStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_releaseStatement; + return this; +} + +ReleaseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ReleaseStatementContext.prototype.constructor = ReleaseStatementContext; + +ReleaseStatementContext.prototype.RELEASE = function() { + return this.getToken(MySQLParser.RELEASE, 0); +}; + +ReleaseStatementContext.prototype.SAVEPOINT = function() { + return this.getToken(MySQLParser.SAVEPOINT, 0); +}; + +ReleaseStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ReleaseStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterReleaseStatement(this); + } +}; + +ReleaseStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitReleaseStatement(this); + } +}; + +ReleaseStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitReleaseStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ReleaseStatementContext = ReleaseStatementContext; + +MySQLParser.prototype.releaseStatement = function() { + + var localctx = new ReleaseStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 266, MySQLParser.RULE_releaseStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3735; + this.match(MySQLParser.RELEASE); + this.state = 3736; + this.match(MySQLParser.SAVEPOINT); + this.state = 3737; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LockTablesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_lockTables; + return this; +} + +LockTablesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LockTablesContext.prototype.constructor = LockTablesContext; + +LockTablesContext.prototype.LOCK = function() { + return this.getToken(MySQLParser.LOCK, 0); +}; + +LockTablesContext.prototype.TABLES = function() { + return this.getToken(MySQLParser.TABLES, 0); +}; + +LockTablesContext.prototype.lockTableElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LockTableElementContext); + } else { + return this.getTypedRuleContext(LockTableElementContext,i); + } +}; + +LockTablesContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +LockTablesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLockTables(this); + } +}; + +LockTablesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLockTables(this); + } +}; + +LockTablesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLockTables(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LockTablesContext = LockTablesContext; + +MySQLParser.prototype.lockTables = function() { + + var localctx = new LockTablesContext(this, this._ctx, this.state); + this.enterRule(localctx, 268, MySQLParser.RULE_lockTables); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3739; + this.match(MySQLParser.LOCK); + this.state = 3740; + this.match(MySQLParser.TABLES); + this.state = 3741; + this.lockTableElement(); + this.state = 3746; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3742; + this.match(MySQLParser.COMMA); + this.state = 3743; + this.lockTableElement(); + this.state = 3748; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UnlockTablesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_unlockTables; + return this; +} + +UnlockTablesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UnlockTablesContext.prototype.constructor = UnlockTablesContext; + +UnlockTablesContext.prototype.UNLOCK = function() { + return this.getToken(MySQLParser.UNLOCK, 0); +}; + +UnlockTablesContext.prototype.TABLES = function() { + return this.getToken(MySQLParser.TABLES, 0); +}; + +UnlockTablesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUnlockTables(this); + } +}; + +UnlockTablesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUnlockTables(this); + } +}; + +UnlockTablesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUnlockTables(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UnlockTablesContext = UnlockTablesContext; + +MySQLParser.prototype.unlockTables = function() { + + var localctx = new UnlockTablesContext(this, this._ctx, this.state); + this.enterRule(localctx, 270, MySQLParser.RULE_unlockTables); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3749; + this.match(MySQLParser.UNLOCK); + this.state = 3750; + this.match(MySQLParser.TABLES); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SetAutocommitStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_setAutocommitStatement; + this.autocommitValue = null; // Token + return this; +} + +SetAutocommitStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SetAutocommitStatementContext.prototype.constructor = SetAutocommitStatementContext; + +SetAutocommitStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SetAutocommitStatementContext.prototype.AUTOCOMMIT = function() { + return this.getToken(MySQLParser.AUTOCOMMIT, 0); +}; + +SetAutocommitStatementContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +SetAutocommitStatementContext.prototype.ZERO_DECIMAL = function() { + return this.getToken(MySQLParser.ZERO_DECIMAL, 0); +}; + +SetAutocommitStatementContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +SetAutocommitStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetAutocommitStatement(this); + } +}; + +SetAutocommitStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetAutocommitStatement(this); + } +}; + +SetAutocommitStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetAutocommitStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SetAutocommitStatementContext = SetAutocommitStatementContext; + +MySQLParser.prototype.setAutocommitStatement = function() { + + var localctx = new SetAutocommitStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 272, MySQLParser.RULE_setAutocommitStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3752; + this.match(MySQLParser.SET); + this.state = 3753; + this.match(MySQLParser.AUTOCOMMIT); + this.state = 3754; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3755; + 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 { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SetTransactionStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_setTransactionStatement; + this.transactionContext = null; // Token + return this; +} + +SetTransactionStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SetTransactionStatementContext.prototype.constructor = SetTransactionStatementContext; + +SetTransactionStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SetTransactionStatementContext.prototype.TRANSACTION = function() { + return this.getToken(MySQLParser.TRANSACTION, 0); +}; + +SetTransactionStatementContext.prototype.transactionOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TransactionOptionContext); + } else { + return this.getTypedRuleContext(TransactionOptionContext,i); + } +}; + +SetTransactionStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +SetTransactionStatementContext.prototype.GLOBAL = function() { + return this.getToken(MySQLParser.GLOBAL, 0); +}; + +SetTransactionStatementContext.prototype.SESSION = function() { + return this.getToken(MySQLParser.SESSION, 0); +}; + +SetTransactionStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetTransactionStatement(this); + } +}; + +SetTransactionStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetTransactionStatement(this); + } +}; + +SetTransactionStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetTransactionStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SetTransactionStatementContext = SetTransactionStatementContext; + +MySQLParser.prototype.setTransactionStatement = function() { + + var localctx = new SetTransactionStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 274, MySQLParser.RULE_setTransactionStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3757; + this.match(MySQLParser.SET); + this.state = 3759; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.GLOBAL || _la===MySQLParser.SESSION) { + this.state = 3758; + localctx.transactionContext = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.GLOBAL || _la===MySQLParser.SESSION)) { + localctx.transactionContext = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3761; + this.match(MySQLParser.TRANSACTION); + this.state = 3762; + this.transactionOption(); + this.state = 3767; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3763; + this.match(MySQLParser.COMMA); + this.state = 3764; + this.transactionOption(); + this.state = 3769; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TransactionModeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_transactionMode; + return this; +} + +TransactionModeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TransactionModeContext.prototype.constructor = TransactionModeContext; + +TransactionModeContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +TransactionModeContext.prototype.CONSISTENT = function() { + return this.getToken(MySQLParser.CONSISTENT, 0); +}; + +TransactionModeContext.prototype.SNAPSHOT = function() { + return this.getToken(MySQLParser.SNAPSHOT, 0); +}; + +TransactionModeContext.prototype.READ = function() { + return this.getToken(MySQLParser.READ, 0); +}; + +TransactionModeContext.prototype.WRITE = function() { + return this.getToken(MySQLParser.WRITE, 0); +}; + +TransactionModeContext.prototype.ONLY = function() { + return this.getToken(MySQLParser.ONLY, 0); +}; + +TransactionModeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTransactionMode(this); + } +}; + +TransactionModeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTransactionMode(this); + } +}; + +TransactionModeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTransactionMode(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TransactionModeContext = TransactionModeContext; + +MySQLParser.prototype.transactionMode = function() { + + var localctx = new TransactionModeContext(this, this._ctx, this.state); + this.enterRule(localctx, 276, MySQLParser.RULE_transactionMode); + try { + this.state = 3777; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,552,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3770; + this.match(MySQLParser.WITH); + this.state = 3771; + this.match(MySQLParser.CONSISTENT); + this.state = 3772; + this.match(MySQLParser.SNAPSHOT); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3773; + this.match(MySQLParser.READ); + this.state = 3774; + this.match(MySQLParser.WRITE); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 3775; + this.match(MySQLParser.READ); + this.state = 3776; + this.match(MySQLParser.ONLY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LockTableElementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_lockTableElement; + return this; +} + +LockTableElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LockTableElementContext.prototype.constructor = LockTableElementContext; + +LockTableElementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +LockTableElementContext.prototype.lockAction = function() { + return this.getTypedRuleContext(LockActionContext,0); +}; + +LockTableElementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +LockTableElementContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +LockTableElementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLockTableElement(this); + } +}; + +LockTableElementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLockTableElement(this); + } +}; + +LockTableElementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLockTableElement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LockTableElementContext = LockTableElementContext; + +MySQLParser.prototype.lockTableElement = function() { + + var localctx = new LockTableElementContext(this, this._ctx, this.state); + this.enterRule(localctx, 278, MySQLParser.RULE_lockTableElement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3779; + this.tableName(); + this.state = 3784; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 3781; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 3780; + this.match(MySQLParser.AS); + } + + this.state = 3783; + this.uid(); + } + + this.state = 3786; + this.lockAction(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LockActionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_lockAction; + return this; +} + +LockActionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LockActionContext.prototype.constructor = LockActionContext; + +LockActionContext.prototype.READ = function() { + return this.getToken(MySQLParser.READ, 0); +}; + +LockActionContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +LockActionContext.prototype.WRITE = function() { + return this.getToken(MySQLParser.WRITE, 0); +}; + +LockActionContext.prototype.LOW_PRIORITY = function() { + return this.getToken(MySQLParser.LOW_PRIORITY, 0); +}; + +LockActionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLockAction(this); + } +}; + +LockActionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLockAction(this); + } +}; + +LockActionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLockAction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LockActionContext = LockActionContext; + +MySQLParser.prototype.lockAction = function() { + + var localctx = new LockActionContext(this, this._ctx, this.state); + this.enterRule(localctx, 280, MySQLParser.RULE_lockAction); + var _la = 0; // Token type + try { + this.state = 3796; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.READ: + this.enterOuterAlt(localctx, 1); + this.state = 3788; + this.match(MySQLParser.READ); + this.state = 3790; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOCAL) { + this.state = 3789; + this.match(MySQLParser.LOCAL); + } + + break; + case MySQLParser.LOW_PRIORITY: + case MySQLParser.WRITE: + this.enterOuterAlt(localctx, 2); + this.state = 3793; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LOW_PRIORITY) { + this.state = 3792; + this.match(MySQLParser.LOW_PRIORITY); + } + + this.state = 3795; + this.match(MySQLParser.WRITE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TransactionOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_transactionOption; + return this; +} + +TransactionOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TransactionOptionContext.prototype.constructor = TransactionOptionContext; + +TransactionOptionContext.prototype.ISOLATION = function() { + return this.getToken(MySQLParser.ISOLATION, 0); +}; + +TransactionOptionContext.prototype.LEVEL = function() { + return this.getToken(MySQLParser.LEVEL, 0); +}; + +TransactionOptionContext.prototype.transactionLevel = function() { + return this.getTypedRuleContext(TransactionLevelContext,0); +}; + +TransactionOptionContext.prototype.READ = function() { + return this.getToken(MySQLParser.READ, 0); +}; + +TransactionOptionContext.prototype.WRITE = function() { + return this.getToken(MySQLParser.WRITE, 0); +}; + +TransactionOptionContext.prototype.ONLY = function() { + return this.getToken(MySQLParser.ONLY, 0); +}; + +TransactionOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTransactionOption(this); + } +}; + +TransactionOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTransactionOption(this); + } +}; + +TransactionOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTransactionOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TransactionOptionContext = TransactionOptionContext; + +MySQLParser.prototype.transactionOption = function() { + + var localctx = new TransactionOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 282, MySQLParser.RULE_transactionOption); + try { + this.state = 3805; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,558,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3798; + this.match(MySQLParser.ISOLATION); + this.state = 3799; + this.match(MySQLParser.LEVEL); + this.state = 3800; + this.transactionLevel(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3801; + this.match(MySQLParser.READ); + this.state = 3802; + this.match(MySQLParser.WRITE); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 3803; + this.match(MySQLParser.READ); + this.state = 3804; + this.match(MySQLParser.ONLY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TransactionLevelContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_transactionLevel; + return this; +} + +TransactionLevelContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TransactionLevelContext.prototype.constructor = TransactionLevelContext; + +TransactionLevelContext.prototype.REPEATABLE = function() { + return this.getToken(MySQLParser.REPEATABLE, 0); +}; + +TransactionLevelContext.prototype.READ = function() { + return this.getToken(MySQLParser.READ, 0); +}; + +TransactionLevelContext.prototype.COMMITTED = function() { + return this.getToken(MySQLParser.COMMITTED, 0); +}; + +TransactionLevelContext.prototype.UNCOMMITTED = function() { + return this.getToken(MySQLParser.UNCOMMITTED, 0); +}; + +TransactionLevelContext.prototype.SERIALIZABLE = function() { + return this.getToken(MySQLParser.SERIALIZABLE, 0); +}; + +TransactionLevelContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTransactionLevel(this); + } +}; + +TransactionLevelContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTransactionLevel(this); + } +}; + +TransactionLevelContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTransactionLevel(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TransactionLevelContext = TransactionLevelContext; + +MySQLParser.prototype.transactionLevel = function() { + + var localctx = new TransactionLevelContext(this, this._ctx, this.state); + this.enterRule(localctx, 284, MySQLParser.RULE_transactionLevel); + try { + this.state = 3814; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,559,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3807; + this.match(MySQLParser.REPEATABLE); + this.state = 3808; + this.match(MySQLParser.READ); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3809; + this.match(MySQLParser.READ); + this.state = 3810; + this.match(MySQLParser.COMMITTED); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 3811; + this.match(MySQLParser.READ); + this.state = 3812; + this.match(MySQLParser.UNCOMMITTED); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 3813; + this.match(MySQLParser.SERIALIZABLE); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ChangeMasterContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_changeMaster; + return this; +} + +ChangeMasterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ChangeMasterContext.prototype.constructor = ChangeMasterContext; + +ChangeMasterContext.prototype.CHANGE = function() { + return this.getToken(MySQLParser.CHANGE, 0); +}; + +ChangeMasterContext.prototype.MASTER = function() { + return this.getToken(MySQLParser.MASTER, 0); +}; + +ChangeMasterContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +ChangeMasterContext.prototype.masterOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(MasterOptionContext); + } else { + return this.getTypedRuleContext(MasterOptionContext,i); + } +}; + +ChangeMasterContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ChangeMasterContext.prototype.channelOption = function() { + return this.getTypedRuleContext(ChannelOptionContext,0); +}; + +ChangeMasterContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterChangeMaster(this); + } +}; + +ChangeMasterContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitChangeMaster(this); + } +}; + +ChangeMasterContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitChangeMaster(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ChangeMasterContext = ChangeMasterContext; + +MySQLParser.prototype.changeMaster = function() { + + var localctx = new ChangeMasterContext(this, this._ctx, this.state); + this.enterRule(localctx, 286, MySQLParser.RULE_changeMaster); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3816; + this.match(MySQLParser.CHANGE); + this.state = 3817; + this.match(MySQLParser.MASTER); + this.state = 3818; + this.match(MySQLParser.TO); + this.state = 3819; + this.masterOption(); + this.state = 3824; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3820; + this.match(MySQLParser.COMMA); + this.state = 3821; + this.masterOption(); + this.state = 3826; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3828; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 3827; + this.channelOption(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ChangeReplicationFilterContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_changeReplicationFilter; + return this; +} + +ChangeReplicationFilterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ChangeReplicationFilterContext.prototype.constructor = ChangeReplicationFilterContext; + +ChangeReplicationFilterContext.prototype.CHANGE = function() { + return this.getToken(MySQLParser.CHANGE, 0); +}; + +ChangeReplicationFilterContext.prototype.REPLICATION = function() { + return this.getToken(MySQLParser.REPLICATION, 0); +}; + +ChangeReplicationFilterContext.prototype.FILTER = function() { + return this.getToken(MySQLParser.FILTER, 0); +}; + +ChangeReplicationFilterContext.prototype.replicationFilter = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ReplicationFilterContext); + } else { + return this.getTypedRuleContext(ReplicationFilterContext,i); + } +}; + +ChangeReplicationFilterContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ChangeReplicationFilterContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterChangeReplicationFilter(this); + } +}; + +ChangeReplicationFilterContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitChangeReplicationFilter(this); + } +}; + +ChangeReplicationFilterContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitChangeReplicationFilter(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ChangeReplicationFilterContext = ChangeReplicationFilterContext; + +MySQLParser.prototype.changeReplicationFilter = function() { + + var localctx = new ChangeReplicationFilterContext(this, this._ctx, this.state); + this.enterRule(localctx, 288, MySQLParser.RULE_changeReplicationFilter); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3830; + this.match(MySQLParser.CHANGE); + this.state = 3831; + this.match(MySQLParser.REPLICATION); + this.state = 3832; + this.match(MySQLParser.FILTER); + this.state = 3833; + this.replicationFilter(); + this.state = 3838; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3834; + this.match(MySQLParser.COMMA); + this.state = 3835; + this.replicationFilter(); + this.state = 3840; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PurgeBinaryLogsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_purgeBinaryLogs; + this.purgeFormat = null; // Token + this.fileName = null; // Token + this.timeValue = null; // Token + return this; +} + +PurgeBinaryLogsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PurgeBinaryLogsContext.prototype.constructor = PurgeBinaryLogsContext; + +PurgeBinaryLogsContext.prototype.PURGE = function() { + return this.getToken(MySQLParser.PURGE, 0); +}; + +PurgeBinaryLogsContext.prototype.LOGS = function() { + return this.getToken(MySQLParser.LOGS, 0); +}; + +PurgeBinaryLogsContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +PurgeBinaryLogsContext.prototype.MASTER = function() { + return this.getToken(MySQLParser.MASTER, 0); +}; + +PurgeBinaryLogsContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +PurgeBinaryLogsContext.prototype.BEFORE = function() { + return this.getToken(MySQLParser.BEFORE, 0); +}; + +PurgeBinaryLogsContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +PurgeBinaryLogsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPurgeBinaryLogs(this); + } +}; + +PurgeBinaryLogsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPurgeBinaryLogs(this); + } +}; + +PurgeBinaryLogsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPurgeBinaryLogs(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PurgeBinaryLogsContext = PurgeBinaryLogsContext; + +MySQLParser.prototype.purgeBinaryLogs = function() { + + var localctx = new PurgeBinaryLogsContext(this, this._ctx, this.state); + this.enterRule(localctx, 290, MySQLParser.RULE_purgeBinaryLogs); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3841; + this.match(MySQLParser.PURGE); + this.state = 3842; + localctx.purgeFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.BINARY || _la===MySQLParser.MASTER)) { + localctx.purgeFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3843; + this.match(MySQLParser.LOGS); + this.state = 3848; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.TO: + this.state = 3844; + this.match(MySQLParser.TO); + this.state = 3845; + localctx.fileName = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.BEFORE: + this.state = 3846; + this.match(MySQLParser.BEFORE); + this.state = 3847; + localctx.timeValue = this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ResetMasterContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_resetMaster; + return this; +} + +ResetMasterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ResetMasterContext.prototype.constructor = ResetMasterContext; + +ResetMasterContext.prototype.RESET = function() { + return this.getToken(MySQLParser.RESET, 0); +}; + +ResetMasterContext.prototype.MASTER = function() { + return this.getToken(MySQLParser.MASTER, 0); +}; + +ResetMasterContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterResetMaster(this); + } +}; + +ResetMasterContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitResetMaster(this); + } +}; + +ResetMasterContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitResetMaster(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ResetMasterContext = ResetMasterContext; + +MySQLParser.prototype.resetMaster = function() { + + var localctx = new ResetMasterContext(this, this._ctx, this.state); + this.enterRule(localctx, 292, MySQLParser.RULE_resetMaster); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3850; + this.match(MySQLParser.RESET); + this.state = 3851; + this.match(MySQLParser.MASTER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ResetSlaveContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_resetSlave; + return this; +} + +ResetSlaveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ResetSlaveContext.prototype.constructor = ResetSlaveContext; + +ResetSlaveContext.prototype.RESET = function() { + return this.getToken(MySQLParser.RESET, 0); +}; + +ResetSlaveContext.prototype.SLAVE = function() { + return this.getToken(MySQLParser.SLAVE, 0); +}; + +ResetSlaveContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +ResetSlaveContext.prototype.channelOption = function() { + return this.getTypedRuleContext(ChannelOptionContext,0); +}; + +ResetSlaveContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterResetSlave(this); + } +}; + +ResetSlaveContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitResetSlave(this); + } +}; + +ResetSlaveContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitResetSlave(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ResetSlaveContext = ResetSlaveContext; + +MySQLParser.prototype.resetSlave = function() { + + var localctx = new ResetSlaveContext(this, this._ctx, this.state); + this.enterRule(localctx, 294, MySQLParser.RULE_resetSlave); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3853; + this.match(MySQLParser.RESET); + this.state = 3854; + this.match(MySQLParser.SLAVE); + this.state = 3856; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALL) { + this.state = 3855; + this.match(MySQLParser.ALL); + } + + this.state = 3859; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 3858; + this.channelOption(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StartSlaveContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_startSlave; + return this; +} + +StartSlaveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StartSlaveContext.prototype.constructor = StartSlaveContext; + +StartSlaveContext.prototype.START = function() { + return this.getToken(MySQLParser.START, 0); +}; + +StartSlaveContext.prototype.SLAVE = function() { + return this.getToken(MySQLParser.SLAVE, 0); +}; + +StartSlaveContext.prototype.threadType = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ThreadTypeContext); + } else { + return this.getTypedRuleContext(ThreadTypeContext,i); + } +}; + +StartSlaveContext.prototype.UNTIL = function() { + return this.getToken(MySQLParser.UNTIL, 0); +}; + +StartSlaveContext.prototype.untilOption = function() { + return this.getTypedRuleContext(UntilOptionContext,0); +}; + +StartSlaveContext.prototype.connectionOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConnectionOptionContext); + } else { + return this.getTypedRuleContext(ConnectionOptionContext,i); + } +}; + +StartSlaveContext.prototype.channelOption = function() { + return this.getTypedRuleContext(ChannelOptionContext,0); +}; + +StartSlaveContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +StartSlaveContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStartSlave(this); + } +}; + +StartSlaveContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStartSlave(this); + } +}; + +StartSlaveContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStartSlave(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.StartSlaveContext = StartSlaveContext; + +MySQLParser.prototype.startSlave = function() { + + var localctx = new StartSlaveContext(this, this._ctx, this.state); + this.enterRule(localctx, 296, MySQLParser.RULE_startSlave); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3861; + this.match(MySQLParser.START); + this.state = 3862; + this.match(MySQLParser.SLAVE); + this.state = 3871; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IO_THREAD || _la===MySQLParser.SQL_THREAD) { + this.state = 3863; + this.threadType(); + 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.threadType(); + this.state = 3870; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 3875; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.UNTIL) { + this.state = 3873; + this.match(MySQLParser.UNTIL); + this.state = 3874; + this.untilOption(); + } + + this.state = 3880; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.DEFAULT_AUTH || _la===MySQLParser.PASSWORD || _la===MySQLParser.PLUGIN_DIR || _la===MySQLParser.USER) { + this.state = 3877; + this.connectionOption(); + this.state = 3882; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3884; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 3883; + this.channelOption(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StopSlaveContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_stopSlave; + return this; +} + +StopSlaveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StopSlaveContext.prototype.constructor = StopSlaveContext; + +StopSlaveContext.prototype.STOP = function() { + return this.getToken(MySQLParser.STOP, 0); +}; + +StopSlaveContext.prototype.SLAVE = function() { + return this.getToken(MySQLParser.SLAVE, 0); +}; + +StopSlaveContext.prototype.threadType = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ThreadTypeContext); + } else { + return this.getTypedRuleContext(ThreadTypeContext,i); + } +}; + +StopSlaveContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +StopSlaveContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStopSlave(this); + } +}; + +StopSlaveContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStopSlave(this); + } +}; + +StopSlaveContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStopSlave(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.StopSlaveContext = StopSlaveContext; + +MySQLParser.prototype.stopSlave = function() { + + var localctx = new StopSlaveContext(this, this._ctx, this.state); + this.enterRule(localctx, 298, MySQLParser.RULE_stopSlave); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3886; + this.match(MySQLParser.STOP); + this.state = 3887; + this.match(MySQLParser.SLAVE); + this.state = 3896; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IO_THREAD || _la===MySQLParser.SQL_THREAD) { + this.state = 3888; + this.threadType(); + this.state = 3893; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3889; + this.match(MySQLParser.COMMA); + this.state = 3890; + this.threadType(); + this.state = 3895; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StartGroupReplicationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_startGroupReplication; + return this; +} + +StartGroupReplicationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StartGroupReplicationContext.prototype.constructor = StartGroupReplicationContext; + +StartGroupReplicationContext.prototype.START = function() { + return this.getToken(MySQLParser.START, 0); +}; + +StartGroupReplicationContext.prototype.GROUP_REPLICATION = function() { + return this.getToken(MySQLParser.GROUP_REPLICATION, 0); +}; + +StartGroupReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStartGroupReplication(this); + } +}; + +StartGroupReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStartGroupReplication(this); + } +}; + +StartGroupReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStartGroupReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.StartGroupReplicationContext = StartGroupReplicationContext; + +MySQLParser.prototype.startGroupReplication = function() { + + var localctx = new StartGroupReplicationContext(this, this._ctx, this.state); + this.enterRule(localctx, 300, MySQLParser.RULE_startGroupReplication); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3898; + this.match(MySQLParser.START); + this.state = 3899; + this.match(MySQLParser.GROUP_REPLICATION); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StopGroupReplicationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_stopGroupReplication; + return this; +} + +StopGroupReplicationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StopGroupReplicationContext.prototype.constructor = StopGroupReplicationContext; + +StopGroupReplicationContext.prototype.STOP = function() { + return this.getToken(MySQLParser.STOP, 0); +}; + +StopGroupReplicationContext.prototype.GROUP_REPLICATION = function() { + return this.getToken(MySQLParser.GROUP_REPLICATION, 0); +}; + +StopGroupReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStopGroupReplication(this); + } +}; + +StopGroupReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStopGroupReplication(this); + } +}; + +StopGroupReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStopGroupReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.StopGroupReplicationContext = StopGroupReplicationContext; + +MySQLParser.prototype.stopGroupReplication = function() { + + var localctx = new StopGroupReplicationContext(this, this._ctx, this.state); + this.enterRule(localctx, 302, MySQLParser.RULE_stopGroupReplication); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3901; + this.match(MySQLParser.STOP); + this.state = 3902; + this.match(MySQLParser.GROUP_REPLICATION); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function MasterOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_masterOption; + return this; +} + +MasterOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +MasterOptionContext.prototype.constructor = MasterOptionContext; + + + +MasterOptionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function MasterStringOptionContext(parser, ctx) { + MasterOptionContext.call(this, parser); + MasterOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MasterStringOptionContext.prototype = Object.create(MasterOptionContext.prototype); +MasterStringOptionContext.prototype.constructor = MasterStringOptionContext; + +MySQLParser.MasterStringOptionContext = MasterStringOptionContext; + +MasterStringOptionContext.prototype.stringMasterOption = function() { + return this.getTypedRuleContext(StringMasterOptionContext,0); +}; + +MasterStringOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +MasterStringOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +MasterStringOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMasterStringOption(this); + } +}; + +MasterStringOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMasterStringOption(this); + } +}; + +MasterStringOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMasterStringOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MasterRealOptionContext(parser, ctx) { + MasterOptionContext.call(this, parser); + MasterOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MasterRealOptionContext.prototype = Object.create(MasterOptionContext.prototype); +MasterRealOptionContext.prototype.constructor = MasterRealOptionContext; + +MySQLParser.MasterRealOptionContext = MasterRealOptionContext; + +MasterRealOptionContext.prototype.MASTER_HEARTBEAT_PERIOD = function() { + return this.getToken(MySQLParser.MASTER_HEARTBEAT_PERIOD, 0); +}; + +MasterRealOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +MasterRealOptionContext.prototype.REAL_LITERAL = function() { + return this.getToken(MySQLParser.REAL_LITERAL, 0); +}; +MasterRealOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMasterRealOption(this); + } +}; + +MasterRealOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMasterRealOption(this); + } +}; + +MasterRealOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMasterRealOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MasterBoolOptionContext(parser, ctx) { + MasterOptionContext.call(this, parser); + this.boolVal = null; // Token; + MasterOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MasterBoolOptionContext.prototype = Object.create(MasterOptionContext.prototype); +MasterBoolOptionContext.prototype.constructor = MasterBoolOptionContext; + +MySQLParser.MasterBoolOptionContext = MasterBoolOptionContext; + +MasterBoolOptionContext.prototype.boolMasterOption = function() { + return this.getTypedRuleContext(BoolMasterOptionContext,0); +}; + +MasterBoolOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +MasterBoolOptionContext.prototype.ZERO_DECIMAL = function() { + return this.getToken(MySQLParser.ZERO_DECIMAL, 0); +}; + +MasterBoolOptionContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; +MasterBoolOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMasterBoolOption(this); + } +}; + +MasterBoolOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMasterBoolOption(this); + } +}; + +MasterBoolOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMasterBoolOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MasterUidListOptionContext(parser, ctx) { + MasterOptionContext.call(this, parser); + MasterOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MasterUidListOptionContext.prototype = Object.create(MasterOptionContext.prototype); +MasterUidListOptionContext.prototype.constructor = MasterUidListOptionContext; + +MySQLParser.MasterUidListOptionContext = MasterUidListOptionContext; + +MasterUidListOptionContext.prototype.IGNORE_SERVER_IDS = function() { + return this.getToken(MySQLParser.IGNORE_SERVER_IDS, 0); +}; + +MasterUidListOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +MasterUidListOptionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +MasterUidListOptionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +MasterUidListOptionContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +MasterUidListOptionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +MasterUidListOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMasterUidListOption(this); + } +}; + +MasterUidListOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMasterUidListOption(this); + } +}; + +MasterUidListOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMasterUidListOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MasterDecimalOptionContext(parser, ctx) { + MasterOptionContext.call(this, parser); + MasterOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MasterDecimalOptionContext.prototype = Object.create(MasterOptionContext.prototype); +MasterDecimalOptionContext.prototype.constructor = MasterDecimalOptionContext; + +MySQLParser.MasterDecimalOptionContext = MasterDecimalOptionContext; + +MasterDecimalOptionContext.prototype.decimalMasterOption = function() { + return this.getTypedRuleContext(DecimalMasterOptionContext,0); +}; + +MasterDecimalOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +MasterDecimalOptionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; +MasterDecimalOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMasterDecimalOption(this); + } +}; + +MasterDecimalOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMasterDecimalOption(this); + } +}; + +MasterDecimalOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMasterDecimalOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.MasterOptionContext = MasterOptionContext; + +MySQLParser.prototype.masterOption = function() { + + var localctx = new MasterOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 304, MySQLParser.RULE_masterOption); + var _la = 0; // Token type + try { + this.state = 3933; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.MASTER_BIND: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.RELAY_LOG_FILE: + localctx = new MasterStringOptionContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 3904; + this.stringMasterOption(); + this.state = 3905; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3906; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.RELAY_LOG_POS: + localctx = new MasterDecimalOptionContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 3908; + this.decimalMasterOption(); + this.state = 3909; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3910; + this.decimalLiteral(); + break; + case MySQLParser.MASTER_SSL_VERIFY_SERVER_CERT: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_SSL: + localctx = new MasterBoolOptionContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 3912; + this.boolMasterOption(); + this.state = 3913; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3914; + localctx.boolVal = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ZERO_DECIMAL || _la===MySQLParser.ONE_DECIMAL)) { + localctx.boolVal = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + localctx = new MasterRealOptionContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 3916; + this.match(MySQLParser.MASTER_HEARTBEAT_PERIOD); + this.state = 3917; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3918; + this.match(MySQLParser.REAL_LITERAL); + break; + case MySQLParser.IGNORE_SERVER_IDS: + localctx = new MasterUidListOptionContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 3919; + this.match(MySQLParser.IGNORE_SERVER_IDS); + this.state = 3920; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3921; + this.match(MySQLParser.LR_BRACKET); + this.state = 3930; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 3922; + this.uid(); + this.state = 3927; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3923; + this.match(MySQLParser.COMMA); + this.state = 3924; + this.uid(); + this.state = 3929; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 3932; + this.match(MySQLParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StringMasterOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_stringMasterOption; + return this; +} + +StringMasterOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StringMasterOptionContext.prototype.constructor = StringMasterOptionContext; + +StringMasterOptionContext.prototype.MASTER_BIND = function() { + return this.getToken(MySQLParser.MASTER_BIND, 0); +}; + +StringMasterOptionContext.prototype.MASTER_HOST = function() { + return this.getToken(MySQLParser.MASTER_HOST, 0); +}; + +StringMasterOptionContext.prototype.MASTER_USER = function() { + return this.getToken(MySQLParser.MASTER_USER, 0); +}; + +StringMasterOptionContext.prototype.MASTER_PASSWORD = function() { + return this.getToken(MySQLParser.MASTER_PASSWORD, 0); +}; + +StringMasterOptionContext.prototype.MASTER_LOG_FILE = function() { + return this.getToken(MySQLParser.MASTER_LOG_FILE, 0); +}; + +StringMasterOptionContext.prototype.RELAY_LOG_FILE = function() { + return this.getToken(MySQLParser.RELAY_LOG_FILE, 0); +}; + +StringMasterOptionContext.prototype.MASTER_SSL_CA = function() { + return this.getToken(MySQLParser.MASTER_SSL_CA, 0); +}; + +StringMasterOptionContext.prototype.MASTER_SSL_CAPATH = function() { + return this.getToken(MySQLParser.MASTER_SSL_CAPATH, 0); +}; + +StringMasterOptionContext.prototype.MASTER_SSL_CERT = function() { + return this.getToken(MySQLParser.MASTER_SSL_CERT, 0); +}; + +StringMasterOptionContext.prototype.MASTER_SSL_CRL = function() { + return this.getToken(MySQLParser.MASTER_SSL_CRL, 0); +}; + +StringMasterOptionContext.prototype.MASTER_SSL_CRLPATH = function() { + return this.getToken(MySQLParser.MASTER_SSL_CRLPATH, 0); +}; + +StringMasterOptionContext.prototype.MASTER_SSL_KEY = function() { + return this.getToken(MySQLParser.MASTER_SSL_KEY, 0); +}; + +StringMasterOptionContext.prototype.MASTER_SSL_CIPHER = function() { + return this.getToken(MySQLParser.MASTER_SSL_CIPHER, 0); +}; + +StringMasterOptionContext.prototype.MASTER_TLS_VERSION = function() { + return this.getToken(MySQLParser.MASTER_TLS_VERSION, 0); +}; + +StringMasterOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStringMasterOption(this); + } +}; + +StringMasterOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStringMasterOption(this); + } +}; + +StringMasterOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStringMasterOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.StringMasterOptionContext = StringMasterOptionContext; + +MySQLParser.prototype.stringMasterOption = function() { + + var localctx = new StringMasterOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 306, MySQLParser.RULE_stringMasterOption); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3935; + _la = this._input.LA(1); + if(!(_la===MySQLParser.MASTER_BIND || ((((_la - 410)) & ~0x1f) == 0 && ((1 << (_la - 410)) & ((1 << (MySQLParser.MASTER_HOST - 410)) | (1 << (MySQLParser.MASTER_LOG_FILE - 410)) | (1 << (MySQLParser.MASTER_PASSWORD - 410)) | (1 << (MySQLParser.MASTER_SSL_CA - 410)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 410)) | (1 << (MySQLParser.MASTER_SSL_CERT - 410)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 410)) | (1 << (MySQLParser.MASTER_SSL_CRL - 410)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 410)) | (1 << (MySQLParser.MASTER_SSL_KEY - 410)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 410)) | (1 << (MySQLParser.MASTER_USER - 410)))) !== 0) || _la===MySQLParser.RELAY_LOG_FILE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DecimalMasterOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_decimalMasterOption; + return this; +} + +DecimalMasterOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DecimalMasterOptionContext.prototype.constructor = DecimalMasterOptionContext; + +DecimalMasterOptionContext.prototype.MASTER_PORT = function() { + return this.getToken(MySQLParser.MASTER_PORT, 0); +}; + +DecimalMasterOptionContext.prototype.MASTER_CONNECT_RETRY = function() { + return this.getToken(MySQLParser.MASTER_CONNECT_RETRY, 0); +}; + +DecimalMasterOptionContext.prototype.MASTER_RETRY_COUNT = function() { + return this.getToken(MySQLParser.MASTER_RETRY_COUNT, 0); +}; + +DecimalMasterOptionContext.prototype.MASTER_DELAY = function() { + return this.getToken(MySQLParser.MASTER_DELAY, 0); +}; + +DecimalMasterOptionContext.prototype.MASTER_LOG_POS = function() { + return this.getToken(MySQLParser.MASTER_LOG_POS, 0); +}; + +DecimalMasterOptionContext.prototype.RELAY_LOG_POS = function() { + return this.getToken(MySQLParser.RELAY_LOG_POS, 0); +}; + +DecimalMasterOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDecimalMasterOption(this); + } +}; + +DecimalMasterOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDecimalMasterOption(this); + } +}; + +DecimalMasterOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDecimalMasterOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DecimalMasterOptionContext = DecimalMasterOptionContext; + +MySQLParser.prototype.decimalMasterOption = function() { + + var localctx = new DecimalMasterOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 308, MySQLParser.RULE_decimalMasterOption); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3937; + _la = this._input.LA(1); + if(!(((((_la - 407)) & ~0x1f) == 0 && ((1 << (_la - 407)) & ((1 << (MySQLParser.MASTER_CONNECT_RETRY - 407)) | (1 << (MySQLParser.MASTER_DELAY - 407)) | (1 << (MySQLParser.MASTER_LOG_POS - 407)) | (1 << (MySQLParser.MASTER_PORT - 407)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 407)))) !== 0) || _la===MySQLParser.RELAY_LOG_POS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BoolMasterOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_boolMasterOption; + return this; +} + +BoolMasterOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BoolMasterOptionContext.prototype.constructor = BoolMasterOptionContext; + +BoolMasterOptionContext.prototype.MASTER_AUTO_POSITION = function() { + return this.getToken(MySQLParser.MASTER_AUTO_POSITION, 0); +}; + +BoolMasterOptionContext.prototype.MASTER_SSL = function() { + return this.getToken(MySQLParser.MASTER_SSL, 0); +}; + +BoolMasterOptionContext.prototype.MASTER_SSL_VERIFY_SERVER_CERT = function() { + return this.getToken(MySQLParser.MASTER_SSL_VERIFY_SERVER_CERT, 0); +}; + +BoolMasterOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBoolMasterOption(this); + } +}; + +BoolMasterOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBoolMasterOption(this); + } +}; + +BoolMasterOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBoolMasterOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.BoolMasterOptionContext = BoolMasterOptionContext; + +MySQLParser.prototype.boolMasterOption = function() { + + var localctx = new BoolMasterOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 310, MySQLParser.RULE_boolMasterOption); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3939; + _la = this._input.LA(1); + if(!(_la===MySQLParser.MASTER_SSL_VERIFY_SERVER_CERT || _la===MySQLParser.MASTER_AUTO_POSITION || _la===MySQLParser.MASTER_SSL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ChannelOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_channelOption; + return this; +} + +ChannelOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ChannelOptionContext.prototype.constructor = ChannelOptionContext; + +ChannelOptionContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +ChannelOptionContext.prototype.CHANNEL = function() { + return this.getToken(MySQLParser.CHANNEL, 0); +}; + +ChannelOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +ChannelOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterChannelOption(this); + } +}; + +ChannelOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitChannelOption(this); + } +}; + +ChannelOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitChannelOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ChannelOptionContext = ChannelOptionContext; + +MySQLParser.prototype.channelOption = function() { + + var localctx = new ChannelOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 312, MySQLParser.RULE_channelOption); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3941; + this.match(MySQLParser.FOR); + this.state = 3942; + this.match(MySQLParser.CHANNEL); + this.state = 3943; + this.match(MySQLParser.STRING_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ReplicationFilterContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_replicationFilter; + return this; +} + +ReplicationFilterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ReplicationFilterContext.prototype.constructor = ReplicationFilterContext; + + + +ReplicationFilterContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function WildIgnoreTableReplicationContext(parser, ctx) { + ReplicationFilterContext.call(this, parser); + ReplicationFilterContext.prototype.copyFrom.call(this, ctx); + return this; +} + +WildIgnoreTableReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype); +WildIgnoreTableReplicationContext.prototype.constructor = WildIgnoreTableReplicationContext; + +MySQLParser.WildIgnoreTableReplicationContext = WildIgnoreTableReplicationContext; + +WildIgnoreTableReplicationContext.prototype.REPLICATE_WILD_IGNORE_TABLE = function() { + return this.getToken(MySQLParser.REPLICATE_WILD_IGNORE_TABLE, 0); +}; + +WildIgnoreTableReplicationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +WildIgnoreTableReplicationContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +WildIgnoreTableReplicationContext.prototype.simpleStrings = function() { + return this.getTypedRuleContext(SimpleStringsContext,0); +}; + +WildIgnoreTableReplicationContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +WildIgnoreTableReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterWildIgnoreTableReplication(this); + } +}; + +WildIgnoreTableReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitWildIgnoreTableReplication(this); + } +}; + +WildIgnoreTableReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitWildIgnoreTableReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DoTableReplicationContext(parser, ctx) { + ReplicationFilterContext.call(this, parser); + ReplicationFilterContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DoTableReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype); +DoTableReplicationContext.prototype.constructor = DoTableReplicationContext; + +MySQLParser.DoTableReplicationContext = DoTableReplicationContext; + +DoTableReplicationContext.prototype.REPLICATE_DO_TABLE = function() { + return this.getToken(MySQLParser.REPLICATE_DO_TABLE, 0); +}; + +DoTableReplicationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +DoTableReplicationContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +DoTableReplicationContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +DoTableReplicationContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +DoTableReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDoTableReplication(this); + } +}; + +DoTableReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDoTableReplication(this); + } +}; + +DoTableReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDoTableReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IgnoreTableReplicationContext(parser, ctx) { + ReplicationFilterContext.call(this, parser); + ReplicationFilterContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IgnoreTableReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype); +IgnoreTableReplicationContext.prototype.constructor = IgnoreTableReplicationContext; + +MySQLParser.IgnoreTableReplicationContext = IgnoreTableReplicationContext; + +IgnoreTableReplicationContext.prototype.REPLICATE_IGNORE_TABLE = function() { + return this.getToken(MySQLParser.REPLICATE_IGNORE_TABLE, 0); +}; + +IgnoreTableReplicationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +IgnoreTableReplicationContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +IgnoreTableReplicationContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +IgnoreTableReplicationContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +IgnoreTableReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIgnoreTableReplication(this); + } +}; + +IgnoreTableReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIgnoreTableReplication(this); + } +}; + +IgnoreTableReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIgnoreTableReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RewriteDbReplicationContext(parser, ctx) { + ReplicationFilterContext.call(this, parser); + ReplicationFilterContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RewriteDbReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype); +RewriteDbReplicationContext.prototype.constructor = RewriteDbReplicationContext; + +MySQLParser.RewriteDbReplicationContext = RewriteDbReplicationContext; + +RewriteDbReplicationContext.prototype.REPLICATE_REWRITE_DB = function() { + return this.getToken(MySQLParser.REPLICATE_REWRITE_DB, 0); +}; + +RewriteDbReplicationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +RewriteDbReplicationContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +RewriteDbReplicationContext.prototype.tablePair = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablePairContext); + } else { + return this.getTypedRuleContext(TablePairContext,i); + } +}; + +RewriteDbReplicationContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +RewriteDbReplicationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +RewriteDbReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRewriteDbReplication(this); + } +}; + +RewriteDbReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRewriteDbReplication(this); + } +}; + +RewriteDbReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRewriteDbReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DoDbReplicationContext(parser, ctx) { + ReplicationFilterContext.call(this, parser); + ReplicationFilterContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DoDbReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype); +DoDbReplicationContext.prototype.constructor = DoDbReplicationContext; + +MySQLParser.DoDbReplicationContext = DoDbReplicationContext; + +DoDbReplicationContext.prototype.REPLICATE_DO_DB = function() { + return this.getToken(MySQLParser.REPLICATE_DO_DB, 0); +}; + +DoDbReplicationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +DoDbReplicationContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +DoDbReplicationContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +DoDbReplicationContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +DoDbReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDoDbReplication(this); + } +}; + +DoDbReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDoDbReplication(this); + } +}; + +DoDbReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDoDbReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IgnoreDbReplicationContext(parser, ctx) { + ReplicationFilterContext.call(this, parser); + ReplicationFilterContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IgnoreDbReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype); +IgnoreDbReplicationContext.prototype.constructor = IgnoreDbReplicationContext; + +MySQLParser.IgnoreDbReplicationContext = IgnoreDbReplicationContext; + +IgnoreDbReplicationContext.prototype.REPLICATE_IGNORE_DB = function() { + return this.getToken(MySQLParser.REPLICATE_IGNORE_DB, 0); +}; + +IgnoreDbReplicationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +IgnoreDbReplicationContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +IgnoreDbReplicationContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +IgnoreDbReplicationContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +IgnoreDbReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIgnoreDbReplication(this); + } +}; + +IgnoreDbReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIgnoreDbReplication(this); + } +}; + +IgnoreDbReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIgnoreDbReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function WildDoTableReplicationContext(parser, ctx) { + ReplicationFilterContext.call(this, parser); + ReplicationFilterContext.prototype.copyFrom.call(this, ctx); + return this; +} + +WildDoTableReplicationContext.prototype = Object.create(ReplicationFilterContext.prototype); +WildDoTableReplicationContext.prototype.constructor = WildDoTableReplicationContext; + +MySQLParser.WildDoTableReplicationContext = WildDoTableReplicationContext; + +WildDoTableReplicationContext.prototype.REPLICATE_WILD_DO_TABLE = function() { + return this.getToken(MySQLParser.REPLICATE_WILD_DO_TABLE, 0); +}; + +WildDoTableReplicationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +WildDoTableReplicationContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +WildDoTableReplicationContext.prototype.simpleStrings = function() { + return this.getTypedRuleContext(SimpleStringsContext,0); +}; + +WildDoTableReplicationContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +WildDoTableReplicationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterWildDoTableReplication(this); + } +}; + +WildDoTableReplicationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitWildDoTableReplication(this); + } +}; + +WildDoTableReplicationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitWildDoTableReplication(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.ReplicationFilterContext = ReplicationFilterContext; + +MySQLParser.prototype.replicationFilter = function() { + + var localctx = new ReplicationFilterContext(this, this._ctx, this.state); + this.enterRule(localctx, 314, MySQLParser.RULE_replicationFilter); + var _la = 0; // Token type + try { + this.state = 3994; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.REPLICATE_DO_DB: + localctx = new DoDbReplicationContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 3945; + this.match(MySQLParser.REPLICATE_DO_DB); + this.state = 3946; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3947; + this.match(MySQLParser.LR_BRACKET); + this.state = 3948; + this.uidList(); + this.state = 3949; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.REPLICATE_IGNORE_DB: + localctx = new IgnoreDbReplicationContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 3951; + this.match(MySQLParser.REPLICATE_IGNORE_DB); + this.state = 3952; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3953; + this.match(MySQLParser.LR_BRACKET); + this.state = 3954; + this.uidList(); + this.state = 3955; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.REPLICATE_DO_TABLE: + localctx = new DoTableReplicationContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 3957; + this.match(MySQLParser.REPLICATE_DO_TABLE); + this.state = 3958; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3959; + this.match(MySQLParser.LR_BRACKET); + this.state = 3960; + this.tables(); + this.state = 3961; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.REPLICATE_IGNORE_TABLE: + localctx = new IgnoreTableReplicationContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 3963; + this.match(MySQLParser.REPLICATE_IGNORE_TABLE); + this.state = 3964; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3965; + this.match(MySQLParser.LR_BRACKET); + this.state = 3966; + this.tables(); + this.state = 3967; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.REPLICATE_WILD_DO_TABLE: + localctx = new WildDoTableReplicationContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 3969; + this.match(MySQLParser.REPLICATE_WILD_DO_TABLE); + this.state = 3970; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3971; + this.match(MySQLParser.LR_BRACKET); + this.state = 3972; + this.simpleStrings(); + this.state = 3973; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + localctx = new WildIgnoreTableReplicationContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 3975; + this.match(MySQLParser.REPLICATE_WILD_IGNORE_TABLE); + this.state = 3976; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3977; + this.match(MySQLParser.LR_BRACKET); + this.state = 3978; + this.simpleStrings(); + this.state = 3979; + this.match(MySQLParser.RR_BRACKET); + break; + case MySQLParser.REPLICATE_REWRITE_DB: + localctx = new RewriteDbReplicationContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 3981; + this.match(MySQLParser.REPLICATE_REWRITE_DB); + this.state = 3982; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 3983; + this.match(MySQLParser.LR_BRACKET); + this.state = 3984; + this.tablePair(); + this.state = 3989; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 3985; + this.match(MySQLParser.COMMA); + this.state = 3986; + this.tablePair(); + this.state = 3991; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3992; + this.match(MySQLParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TablePairContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tablePair; + this.firstTable = null; // TableNameContext + this.secondTable = null; // TableNameContext + return this; +} + +TablePairContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TablePairContext.prototype.constructor = TablePairContext; + +TablePairContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +TablePairContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; + +TablePairContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +TablePairContext.prototype.tableName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableNameContext); + } else { + return this.getTypedRuleContext(TableNameContext,i); + } +}; + +TablePairContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTablePair(this); + } +}; + +TablePairContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTablePair(this); + } +}; + +TablePairContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTablePair(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TablePairContext = TablePairContext; + +MySQLParser.prototype.tablePair = function() { + + var localctx = new TablePairContext(this, this._ctx, this.state); + this.enterRule(localctx, 316, MySQLParser.RULE_tablePair); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3996; + this.match(MySQLParser.LR_BRACKET); + this.state = 3997; + localctx.firstTable = this.tableName(); + this.state = 3998; + this.match(MySQLParser.COMMA); + this.state = 3999; + localctx.secondTable = this.tableName(); + this.state = 4000; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ThreadTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_threadType; + return this; +} + +ThreadTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ThreadTypeContext.prototype.constructor = ThreadTypeContext; + +ThreadTypeContext.prototype.IO_THREAD = function() { + return this.getToken(MySQLParser.IO_THREAD, 0); +}; + +ThreadTypeContext.prototype.SQL_THREAD = function() { + return this.getToken(MySQLParser.SQL_THREAD, 0); +}; + +ThreadTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterThreadType(this); + } +}; + +ThreadTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitThreadType(this); + } +}; + +ThreadTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitThreadType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ThreadTypeContext = ThreadTypeContext; + +MySQLParser.prototype.threadType = function() { + + var localctx = new ThreadTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 318, MySQLParser.RULE_threadType); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4002; + _la = this._input.LA(1); + if(!(_la===MySQLParser.IO_THREAD || _la===MySQLParser.SQL_THREAD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UntilOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_untilOption; + return this; +} + +UntilOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UntilOptionContext.prototype.constructor = UntilOptionContext; + + + +UntilOptionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function GtidsUntilOptionContext(parser, ctx) { + UntilOptionContext.call(this, parser); + this.gtids = null; // Token; + UntilOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +GtidsUntilOptionContext.prototype = Object.create(UntilOptionContext.prototype); +GtidsUntilOptionContext.prototype.constructor = GtidsUntilOptionContext; + +MySQLParser.GtidsUntilOptionContext = GtidsUntilOptionContext; + +GtidsUntilOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +GtidsUntilOptionContext.prototype.gtuidSet = function() { + return this.getTypedRuleContext(GtuidSetContext,0); +}; + +GtidsUntilOptionContext.prototype.SQL_BEFORE_GTIDS = function() { + return this.getToken(MySQLParser.SQL_BEFORE_GTIDS, 0); +}; + +GtidsUntilOptionContext.prototype.SQL_AFTER_GTIDS = function() { + return this.getToken(MySQLParser.SQL_AFTER_GTIDS, 0); +}; +GtidsUntilOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterGtidsUntilOption(this); + } +}; + +GtidsUntilOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitGtidsUntilOption(this); + } +}; + +GtidsUntilOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitGtidsUntilOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SqlGapsUntilOptionContext(parser, ctx) { + UntilOptionContext.call(this, parser); + UntilOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SqlGapsUntilOptionContext.prototype = Object.create(UntilOptionContext.prototype); +SqlGapsUntilOptionContext.prototype.constructor = SqlGapsUntilOptionContext; + +MySQLParser.SqlGapsUntilOptionContext = SqlGapsUntilOptionContext; + +SqlGapsUntilOptionContext.prototype.SQL_AFTER_MTS_GAPS = function() { + return this.getToken(MySQLParser.SQL_AFTER_MTS_GAPS, 0); +}; +SqlGapsUntilOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSqlGapsUntilOption(this); + } +}; + +SqlGapsUntilOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSqlGapsUntilOption(this); + } +}; + +SqlGapsUntilOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSqlGapsUntilOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MasterLogUntilOptionContext(parser, ctx) { + UntilOptionContext.call(this, parser); + UntilOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MasterLogUntilOptionContext.prototype = Object.create(UntilOptionContext.prototype); +MasterLogUntilOptionContext.prototype.constructor = MasterLogUntilOptionContext; + +MySQLParser.MasterLogUntilOptionContext = MasterLogUntilOptionContext; + +MasterLogUntilOptionContext.prototype.MASTER_LOG_FILE = function() { + return this.getToken(MySQLParser.MASTER_LOG_FILE, 0); +}; + +MasterLogUntilOptionContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +MasterLogUntilOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +MasterLogUntilOptionContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; + +MasterLogUntilOptionContext.prototype.MASTER_LOG_POS = function() { + return this.getToken(MySQLParser.MASTER_LOG_POS, 0); +}; + +MasterLogUntilOptionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; +MasterLogUntilOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMasterLogUntilOption(this); + } +}; + +MasterLogUntilOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMasterLogUntilOption(this); + } +}; + +MasterLogUntilOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMasterLogUntilOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RelayLogUntilOptionContext(parser, ctx) { + UntilOptionContext.call(this, parser); + UntilOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RelayLogUntilOptionContext.prototype = Object.create(UntilOptionContext.prototype); +RelayLogUntilOptionContext.prototype.constructor = RelayLogUntilOptionContext; + +MySQLParser.RelayLogUntilOptionContext = RelayLogUntilOptionContext; + +RelayLogUntilOptionContext.prototype.RELAY_LOG_FILE = function() { + return this.getToken(MySQLParser.RELAY_LOG_FILE, 0); +}; + +RelayLogUntilOptionContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +RelayLogUntilOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +RelayLogUntilOptionContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; + +RelayLogUntilOptionContext.prototype.RELAY_LOG_POS = function() { + return this.getToken(MySQLParser.RELAY_LOG_POS, 0); +}; + +RelayLogUntilOptionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; +RelayLogUntilOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRelayLogUntilOption(this); + } +}; + +RelayLogUntilOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRelayLogUntilOption(this); + } +}; + +RelayLogUntilOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRelayLogUntilOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.UntilOptionContext = UntilOptionContext; + +MySQLParser.prototype.untilOption = function() { + + var localctx = new UntilOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 320, MySQLParser.RULE_untilOption); + var _la = 0; // Token type + try { + this.state = 4022; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_BEFORE_GTIDS: + localctx = new GtidsUntilOptionContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4004; + localctx.gtids = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.SQL_AFTER_GTIDS || _la===MySQLParser.SQL_BEFORE_GTIDS)) { + localctx.gtids = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4005; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4006; + this.gtuidSet(); + break; + case MySQLParser.MASTER_LOG_FILE: + localctx = new MasterLogUntilOptionContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4007; + this.match(MySQLParser.MASTER_LOG_FILE); + this.state = 4008; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4009; + this.match(MySQLParser.STRING_LITERAL); + this.state = 4010; + this.match(MySQLParser.COMMA); + this.state = 4011; + this.match(MySQLParser.MASTER_LOG_POS); + this.state = 4012; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4013; + this.decimalLiteral(); + break; + case MySQLParser.RELAY_LOG_FILE: + localctx = new RelayLogUntilOptionContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 4014; + this.match(MySQLParser.RELAY_LOG_FILE); + this.state = 4015; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4016; + this.match(MySQLParser.STRING_LITERAL); + this.state = 4017; + this.match(MySQLParser.COMMA); + this.state = 4018; + this.match(MySQLParser.RELAY_LOG_POS); + this.state = 4019; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4020; + this.decimalLiteral(); + break; + case MySQLParser.SQL_AFTER_MTS_GAPS: + localctx = new SqlGapsUntilOptionContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 4021; + this.match(MySQLParser.SQL_AFTER_MTS_GAPS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ConnectionOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_connectionOption; + return this; +} + +ConnectionOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ConnectionOptionContext.prototype.constructor = ConnectionOptionContext; + + + +ConnectionOptionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function PluginDirConnectionOptionContext(parser, ctx) { + ConnectionOptionContext.call(this, parser); + this.conOptPluginDir = null; // Token; + ConnectionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PluginDirConnectionOptionContext.prototype = Object.create(ConnectionOptionContext.prototype); +PluginDirConnectionOptionContext.prototype.constructor = PluginDirConnectionOptionContext; + +MySQLParser.PluginDirConnectionOptionContext = PluginDirConnectionOptionContext; + +PluginDirConnectionOptionContext.prototype.PLUGIN_DIR = function() { + return this.getToken(MySQLParser.PLUGIN_DIR, 0); +}; + +PluginDirConnectionOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +PluginDirConnectionOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +PluginDirConnectionOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPluginDirConnectionOption(this); + } +}; + +PluginDirConnectionOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPluginDirConnectionOption(this); + } +}; + +PluginDirConnectionOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPluginDirConnectionOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function UserConnectionOptionContext(parser, ctx) { + ConnectionOptionContext.call(this, parser); + this.conOptUser = null; // Token; + ConnectionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +UserConnectionOptionContext.prototype = Object.create(ConnectionOptionContext.prototype); +UserConnectionOptionContext.prototype.constructor = UserConnectionOptionContext; + +MySQLParser.UserConnectionOptionContext = UserConnectionOptionContext; + +UserConnectionOptionContext.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +UserConnectionOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +UserConnectionOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +UserConnectionOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUserConnectionOption(this); + } +}; + +UserConnectionOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUserConnectionOption(this); + } +}; + +UserConnectionOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUserConnectionOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DefaultAuthConnectionOptionContext(parser, ctx) { + ConnectionOptionContext.call(this, parser); + this.conOptDefAuth = null; // Token; + ConnectionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DefaultAuthConnectionOptionContext.prototype = Object.create(ConnectionOptionContext.prototype); +DefaultAuthConnectionOptionContext.prototype.constructor = DefaultAuthConnectionOptionContext; + +MySQLParser.DefaultAuthConnectionOptionContext = DefaultAuthConnectionOptionContext; + +DefaultAuthConnectionOptionContext.prototype.DEFAULT_AUTH = function() { + return this.getToken(MySQLParser.DEFAULT_AUTH, 0); +}; + +DefaultAuthConnectionOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +DefaultAuthConnectionOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +DefaultAuthConnectionOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDefaultAuthConnectionOption(this); + } +}; + +DefaultAuthConnectionOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDefaultAuthConnectionOption(this); + } +}; + +DefaultAuthConnectionOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDefaultAuthConnectionOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PasswordConnectionOptionContext(parser, ctx) { + ConnectionOptionContext.call(this, parser); + this.conOptPassword = null; // Token; + ConnectionOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PasswordConnectionOptionContext.prototype = Object.create(ConnectionOptionContext.prototype); +PasswordConnectionOptionContext.prototype.constructor = PasswordConnectionOptionContext; + +MySQLParser.PasswordConnectionOptionContext = PasswordConnectionOptionContext; + +PasswordConnectionOptionContext.prototype.PASSWORD = function() { + return this.getToken(MySQLParser.PASSWORD, 0); +}; + +PasswordConnectionOptionContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +PasswordConnectionOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +PasswordConnectionOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPasswordConnectionOption(this); + } +}; + +PasswordConnectionOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPasswordConnectionOption(this); + } +}; + +PasswordConnectionOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPasswordConnectionOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.ConnectionOptionContext = ConnectionOptionContext; + +MySQLParser.prototype.connectionOption = function() { + + var localctx = new ConnectionOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 322, MySQLParser.RULE_connectionOption); + try { + this.state = 4036; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.USER: + localctx = new UserConnectionOptionContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4024; + this.match(MySQLParser.USER); + this.state = 4025; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4026; + localctx.conOptUser = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.PASSWORD: + localctx = new PasswordConnectionOptionContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4027; + this.match(MySQLParser.PASSWORD); + this.state = 4028; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4029; + localctx.conOptPassword = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.DEFAULT_AUTH: + localctx = new DefaultAuthConnectionOptionContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 4030; + this.match(MySQLParser.DEFAULT_AUTH); + this.state = 4031; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4032; + localctx.conOptDefAuth = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.PLUGIN_DIR: + localctx = new PluginDirConnectionOptionContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 4033; + this.match(MySQLParser.PLUGIN_DIR); + this.state = 4034; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4035; + localctx.conOptPluginDir = this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function GtuidSetContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_gtuidSet; + return this; +} + +GtuidSetContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +GtuidSetContext.prototype.constructor = GtuidSetContext; + +GtuidSetContext.prototype.uuidSet = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UuidSetContext); + } else { + return this.getTypedRuleContext(UuidSetContext,i); + } +}; + +GtuidSetContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +GtuidSetContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +GtuidSetContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterGtuidSet(this); + } +}; + +GtuidSetContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitGtuidSet(this); + } +}; + +GtuidSetContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitGtuidSet(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.GtuidSetContext = GtuidSetContext; + +MySQLParser.prototype.gtuidSet = function() { + + var localctx = new GtuidSetContext(this, this._ctx, this.state); + this.enterRule(localctx, 324, MySQLParser.RULE_gtuidSet); + var _la = 0; // Token type + try { + this.state = 4047; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.DECIMAL_LITERAL: + this.enterOuterAlt(localctx, 1); + this.state = 4038; + this.uuidSet(); + this.state = 4043; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4039; + this.match(MySQLParser.COMMA); + this.state = 4040; + this.uuidSet(); + this.state = 4045; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case MySQLParser.STRING_LITERAL: + this.enterOuterAlt(localctx, 2); + this.state = 4046; + this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function XaStartTransactionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_xaStartTransaction; + this.xaStart = null; // Token + this.xaAction = null; // Token + return this; +} + +XaStartTransactionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +XaStartTransactionContext.prototype.constructor = XaStartTransactionContext; + +XaStartTransactionContext.prototype.XA = function() { + return this.getToken(MySQLParser.XA, 0); +}; + +XaStartTransactionContext.prototype.xid = function() { + return this.getTypedRuleContext(XidContext,0); +}; + +XaStartTransactionContext.prototype.START = function() { + return this.getToken(MySQLParser.START, 0); +}; + +XaStartTransactionContext.prototype.BEGIN = function() { + return this.getToken(MySQLParser.BEGIN, 0); +}; + +XaStartTransactionContext.prototype.JOIN = function() { + return this.getToken(MySQLParser.JOIN, 0); +}; + +XaStartTransactionContext.prototype.RESUME = function() { + return this.getToken(MySQLParser.RESUME, 0); +}; + +XaStartTransactionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterXaStartTransaction(this); + } +}; + +XaStartTransactionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitXaStartTransaction(this); + } +}; + +XaStartTransactionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitXaStartTransaction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.XaStartTransactionContext = XaStartTransactionContext; + +MySQLParser.prototype.xaStartTransaction = function() { + + var localctx = new XaStartTransactionContext(this, this._ctx, this.state); + this.enterRule(localctx, 326, MySQLParser.RULE_xaStartTransaction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4049; + this.match(MySQLParser.XA); + this.state = 4050; + localctx.xaStart = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.BEGIN || _la===MySQLParser.START)) { + localctx.xaStart = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4051; + this.xid(); + this.state = 4053; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.JOIN || _la===MySQLParser.RESUME) { + this.state = 4052; + localctx.xaAction = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.JOIN || _la===MySQLParser.RESUME)) { + localctx.xaAction = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function XaEndTransactionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_xaEndTransaction; + return this; +} + +XaEndTransactionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +XaEndTransactionContext.prototype.constructor = XaEndTransactionContext; + +XaEndTransactionContext.prototype.XA = function() { + return this.getToken(MySQLParser.XA, 0); +}; + +XaEndTransactionContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +XaEndTransactionContext.prototype.xid = function() { + return this.getTypedRuleContext(XidContext,0); +}; + +XaEndTransactionContext.prototype.SUSPEND = function() { + return this.getToken(MySQLParser.SUSPEND, 0); +}; + +XaEndTransactionContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +XaEndTransactionContext.prototype.MIGRATE = function() { + return this.getToken(MySQLParser.MIGRATE, 0); +}; + +XaEndTransactionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterXaEndTransaction(this); + } +}; + +XaEndTransactionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitXaEndTransaction(this); + } +}; + +XaEndTransactionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitXaEndTransaction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.XaEndTransactionContext = XaEndTransactionContext; + +MySQLParser.prototype.xaEndTransaction = function() { + + var localctx = new XaEndTransactionContext(this, this._ctx, this.state); + this.enterRule(localctx, 328, MySQLParser.RULE_xaEndTransaction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4055; + this.match(MySQLParser.XA); + this.state = 4056; + this.match(MySQLParser.END); + this.state = 4057; + this.xid(); + this.state = 4063; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SUSPEND) { + this.state = 4058; + this.match(MySQLParser.SUSPEND); + this.state = 4061; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 4059; + this.match(MySQLParser.FOR); + this.state = 4060; + this.match(MySQLParser.MIGRATE); + } + + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function XaPrepareStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_xaPrepareStatement; + return this; +} + +XaPrepareStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +XaPrepareStatementContext.prototype.constructor = XaPrepareStatementContext; + +XaPrepareStatementContext.prototype.XA = function() { + return this.getToken(MySQLParser.XA, 0); +}; + +XaPrepareStatementContext.prototype.PREPARE = function() { + return this.getToken(MySQLParser.PREPARE, 0); +}; + +XaPrepareStatementContext.prototype.xid = function() { + return this.getTypedRuleContext(XidContext,0); +}; + +XaPrepareStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterXaPrepareStatement(this); + } +}; + +XaPrepareStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitXaPrepareStatement(this); + } +}; + +XaPrepareStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitXaPrepareStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.XaPrepareStatementContext = XaPrepareStatementContext; + +MySQLParser.prototype.xaPrepareStatement = function() { + + var localctx = new XaPrepareStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 330, MySQLParser.RULE_xaPrepareStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4065; + this.match(MySQLParser.XA); + this.state = 4066; + this.match(MySQLParser.PREPARE); + this.state = 4067; + this.xid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function XaCommitWorkContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_xaCommitWork; + return this; +} + +XaCommitWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +XaCommitWorkContext.prototype.constructor = XaCommitWorkContext; + +XaCommitWorkContext.prototype.XA = function() { + return this.getToken(MySQLParser.XA, 0); +}; + +XaCommitWorkContext.prototype.COMMIT = function() { + return this.getToken(MySQLParser.COMMIT, 0); +}; + +XaCommitWorkContext.prototype.xid = function() { + return this.getTypedRuleContext(XidContext,0); +}; + +XaCommitWorkContext.prototype.ONE = function() { + return this.getToken(MySQLParser.ONE, 0); +}; + +XaCommitWorkContext.prototype.PHASE = function() { + return this.getToken(MySQLParser.PHASE, 0); +}; + +XaCommitWorkContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterXaCommitWork(this); + } +}; + +XaCommitWorkContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitXaCommitWork(this); + } +}; + +XaCommitWorkContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitXaCommitWork(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.XaCommitWorkContext = XaCommitWorkContext; + +MySQLParser.prototype.xaCommitWork = function() { + + var localctx = new XaCommitWorkContext(this, this._ctx, this.state); + this.enterRule(localctx, 332, MySQLParser.RULE_xaCommitWork); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4069; + this.match(MySQLParser.XA); + this.state = 4070; + this.match(MySQLParser.COMMIT); + this.state = 4071; + this.xid(); + this.state = 4074; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ONE) { + this.state = 4072; + this.match(MySQLParser.ONE); + this.state = 4073; + this.match(MySQLParser.PHASE); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function XaRollbackWorkContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_xaRollbackWork; + return this; +} + +XaRollbackWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +XaRollbackWorkContext.prototype.constructor = XaRollbackWorkContext; + +XaRollbackWorkContext.prototype.XA = function() { + return this.getToken(MySQLParser.XA, 0); +}; + +XaRollbackWorkContext.prototype.ROLLBACK = function() { + return this.getToken(MySQLParser.ROLLBACK, 0); +}; + +XaRollbackWorkContext.prototype.xid = function() { + return this.getTypedRuleContext(XidContext,0); +}; + +XaRollbackWorkContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterXaRollbackWork(this); + } +}; + +XaRollbackWorkContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitXaRollbackWork(this); + } +}; + +XaRollbackWorkContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitXaRollbackWork(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.XaRollbackWorkContext = XaRollbackWorkContext; + +MySQLParser.prototype.xaRollbackWork = function() { + + var localctx = new XaRollbackWorkContext(this, this._ctx, this.state); + this.enterRule(localctx, 334, MySQLParser.RULE_xaRollbackWork); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4076; + this.match(MySQLParser.XA); + this.state = 4077; + this.match(MySQLParser.ROLLBACK); + this.state = 4078; + this.xid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function XaRecoverWorkContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_xaRecoverWork; + return this; +} + +XaRecoverWorkContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +XaRecoverWorkContext.prototype.constructor = XaRecoverWorkContext; + +XaRecoverWorkContext.prototype.XA = function() { + return this.getToken(MySQLParser.XA, 0); +}; + +XaRecoverWorkContext.prototype.RECOVER = function() { + return this.getToken(MySQLParser.RECOVER, 0); +}; + +XaRecoverWorkContext.prototype.CONVERT = function() { + return this.getToken(MySQLParser.CONVERT, 0); +}; + +XaRecoverWorkContext.prototype.xid = function() { + return this.getTypedRuleContext(XidContext,0); +}; + +XaRecoverWorkContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterXaRecoverWork(this); + } +}; + +XaRecoverWorkContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitXaRecoverWork(this); + } +}; + +XaRecoverWorkContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitXaRecoverWork(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.XaRecoverWorkContext = XaRecoverWorkContext; + +MySQLParser.prototype.xaRecoverWork = function() { + + var localctx = new XaRecoverWorkContext(this, this._ctx, this.state); + this.enterRule(localctx, 336, MySQLParser.RULE_xaRecoverWork); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4080; + this.match(MySQLParser.XA); + this.state = 4081; + this.match(MySQLParser.RECOVER); + this.state = 4084; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONVERT) { + this.state = 4082; + this.match(MySQLParser.CONVERT); + this.state = 4083; + this.xid(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PrepareStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_prepareStatement; + this.query = null; // Token + this.variable = null; // Token + return this; +} + +PrepareStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PrepareStatementContext.prototype.constructor = PrepareStatementContext; + +PrepareStatementContext.prototype.PREPARE = function() { + return this.getToken(MySQLParser.PREPARE, 0); +}; + +PrepareStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +PrepareStatementContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +PrepareStatementContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +PrepareStatementContext.prototype.LOCAL_ID = function() { + return this.getToken(MySQLParser.LOCAL_ID, 0); +}; + +PrepareStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPrepareStatement(this); + } +}; + +PrepareStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPrepareStatement(this); + } +}; + +PrepareStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPrepareStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PrepareStatementContext = PrepareStatementContext; + +MySQLParser.prototype.prepareStatement = function() { + + var localctx = new PrepareStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 338, MySQLParser.RULE_prepareStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4086; + this.match(MySQLParser.PREPARE); + this.state = 4087; + this.uid(); + this.state = 4088; + this.match(MySQLParser.FROM); + this.state = 4091; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.STRING_LITERAL: + this.state = 4089; + localctx.query = this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.LOCAL_ID: + this.state = 4090; + localctx.variable = this.match(MySQLParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExecuteStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_executeStatement; + return this; +} + +ExecuteStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExecuteStatementContext.prototype.constructor = ExecuteStatementContext; + +ExecuteStatementContext.prototype.EXECUTE = function() { + return this.getToken(MySQLParser.EXECUTE, 0); +}; + +ExecuteStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ExecuteStatementContext.prototype.USING = function() { + return this.getToken(MySQLParser.USING, 0); +}; + +ExecuteStatementContext.prototype.userVariables = function() { + return this.getTypedRuleContext(UserVariablesContext,0); +}; + +ExecuteStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterExecuteStatement(this); + } +}; + +ExecuteStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitExecuteStatement(this); + } +}; + +ExecuteStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitExecuteStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ExecuteStatementContext = ExecuteStatementContext; + +MySQLParser.prototype.executeStatement = function() { + + var localctx = new ExecuteStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 340, MySQLParser.RULE_executeStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4093; + this.match(MySQLParser.EXECUTE); + this.state = 4094; + this.uid(); + this.state = 4097; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 4095; + this.match(MySQLParser.USING); + this.state = 4096; + this.userVariables(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DeallocatePrepareContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_deallocatePrepare; + this.dropFormat = null; // Token + return this; +} + +DeallocatePrepareContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DeallocatePrepareContext.prototype.constructor = DeallocatePrepareContext; + +DeallocatePrepareContext.prototype.PREPARE = function() { + return this.getToken(MySQLParser.PREPARE, 0); +}; + +DeallocatePrepareContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DeallocatePrepareContext.prototype.DEALLOCATE = function() { + return this.getToken(MySQLParser.DEALLOCATE, 0); +}; + +DeallocatePrepareContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DeallocatePrepareContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDeallocatePrepare(this); + } +}; + +DeallocatePrepareContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDeallocatePrepare(this); + } +}; + +DeallocatePrepareContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDeallocatePrepare(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DeallocatePrepareContext = DeallocatePrepareContext; + +MySQLParser.prototype.deallocatePrepare = function() { + + var localctx = new DeallocatePrepareContext(this, this._ctx, this.state); + this.enterRule(localctx, 342, MySQLParser.RULE_deallocatePrepare); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4099; + localctx.dropFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DROP || _la===MySQLParser.DEALLOCATE)) { + localctx.dropFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4100; + this.match(MySQLParser.PREPARE); + this.state = 4101; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RoutineBodyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_routineBody; + return this; +} + +RoutineBodyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RoutineBodyContext.prototype.constructor = RoutineBodyContext; + +RoutineBodyContext.prototype.blockStatement = function() { + return this.getTypedRuleContext(BlockStatementContext,0); +}; + +RoutineBodyContext.prototype.sqlStatement = function() { + return this.getTypedRuleContext(SqlStatementContext,0); +}; + +RoutineBodyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRoutineBody(this); + } +}; + +RoutineBodyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRoutineBody(this); + } +}; + +RoutineBodyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRoutineBody(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RoutineBodyContext = RoutineBodyContext; + +MySQLParser.prototype.routineBody = function() { + + var localctx = new RoutineBodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 344, MySQLParser.RULE_routineBody); + try { + this.state = 4105; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,589,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 4103; + this.blockStatement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 4104; + this.sqlStatement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BlockStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_blockStatement; + return this; +} + +BlockStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BlockStatementContext.prototype.constructor = BlockStatementContext; + +BlockStatementContext.prototype.BEGIN = function() { + return this.getToken(MySQLParser.BEGIN, 0); +}; + +BlockStatementContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +BlockStatementContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +BlockStatementContext.prototype.COLON_SYMB = function() { + return this.getToken(MySQLParser.COLON_SYMB, 0); +}; + +BlockStatementContext.prototype.declareVariable = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DeclareVariableContext); + } else { + return this.getTypedRuleContext(DeclareVariableContext,i); + } +}; + +BlockStatementContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.SEMI); + } else { + return this.getToken(MySQLParser.SEMI, i); + } +}; + + +BlockStatementContext.prototype.declareCondition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DeclareConditionContext); + } else { + return this.getTypedRuleContext(DeclareConditionContext,i); + } +}; + +BlockStatementContext.prototype.declareCursor = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DeclareCursorContext); + } else { + return this.getTypedRuleContext(DeclareCursorContext,i); + } +}; + +BlockStatementContext.prototype.declareHandler = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DeclareHandlerContext); + } else { + return this.getTypedRuleContext(DeclareHandlerContext,i); + } +}; + +BlockStatementContext.prototype.procedureSqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getTypedRuleContext(ProcedureSqlStatementContext,i); + } +}; + +BlockStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBlockStatement(this); + } +}; + +BlockStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBlockStatement(this); + } +}; + +BlockStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBlockStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.BlockStatementContext = BlockStatementContext; + +MySQLParser.prototype.blockStatement = function() { + + var localctx = new BlockStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 346, MySQLParser.RULE_blockStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4110; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,590,this._ctx); + if(la_===1) { + this.state = 4107; + this.uid(); + this.state = 4108; + this.match(MySQLParser.COLON_SYMB); + + } + this.state = 4112; + this.match(MySQLParser.BEGIN); + this.state = 4151; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,596,this._ctx); + if(la_===1) { + this.state = 4118; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,591,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4113; + this.declareVariable(); + this.state = 4114; + this.match(MySQLParser.SEMI); + } + this.state = 4120; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,591,this._ctx); + } + + this.state = 4126; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,592,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4121; + this.declareCondition(); + this.state = 4122; + this.match(MySQLParser.SEMI); + } + this.state = 4128; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,592,this._ctx); + } + + this.state = 4134; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,593,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4129; + this.declareCursor(); + this.state = 4130; + this.match(MySQLParser.SEMI); + } + this.state = 4136; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,593,this._ctx); + } + + this.state = 4142; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.DECLARE) { + this.state = 4137; + this.declareHandler(); + this.state = 4138; + this.match(MySQLParser.SEMI); + this.state = 4144; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4148; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,595,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4145; + this.procedureSqlStatement(); + } + this.state = 4150; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,595,this._ctx); + } + + + } + this.state = 4153; + this.match(MySQLParser.END); + this.state = 4155; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,597,this._ctx); + if(la_===1) { + this.state = 4154; + this.uid(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CaseStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_caseStatement; + return this; +} + +CaseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CaseStatementContext.prototype.constructor = CaseStatementContext; + +CaseStatementContext.prototype.CASE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.CASE); + } else { + return this.getToken(MySQLParser.CASE, i); + } +}; + + +CaseStatementContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +CaseStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CaseStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +CaseStatementContext.prototype.caseAlternative = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(CaseAlternativeContext); + } else { + return this.getTypedRuleContext(CaseAlternativeContext,i); + } +}; + +CaseStatementContext.prototype.ELSE = function() { + return this.getToken(MySQLParser.ELSE, 0); +}; + +CaseStatementContext.prototype.procedureSqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getTypedRuleContext(ProcedureSqlStatementContext,i); + } +}; + +CaseStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCaseStatement(this); + } +}; + +CaseStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCaseStatement(this); + } +}; + +CaseStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCaseStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CaseStatementContext = CaseStatementContext; + +MySQLParser.prototype.caseStatement = function() { + + var localctx = new CaseStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 348, MySQLParser.RULE_caseStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4157; + this.match(MySQLParser.CASE); + this.state = 4160; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,598,this._ctx); + if(la_===1) { + this.state = 4158; + this.uid(); + + } else if(la_===2) { + this.state = 4159; + this.expression(0); + + } + this.state = 4163; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4162; + this.caseAlternative(); + this.state = 4165; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.WHEN); + this.state = 4173; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ELSE) { + this.state = 4167; + this.match(MySQLParser.ELSE); + this.state = 4169; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4168; + this.procedureSqlStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4171; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,600, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } + + this.state = 4175; + this.match(MySQLParser.END); + this.state = 4176; + this.match(MySQLParser.CASE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IfStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_ifStatement; + this._procedureSqlStatement = null; // ProcedureSqlStatementContext + this.thenStatements = []; // of ProcedureSqlStatementContexts + this.elseStatements = []; // of ProcedureSqlStatementContexts + return this; +} + +IfStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IfStatementContext.prototype.constructor = IfStatementContext; + +IfStatementContext.prototype.IF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.IF); + } else { + return this.getToken(MySQLParser.IF, i); + } +}; + + +IfStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +IfStatementContext.prototype.THEN = function() { + return this.getToken(MySQLParser.THEN, 0); +}; + +IfStatementContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +IfStatementContext.prototype.elifAlternative = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ElifAlternativeContext); + } else { + return this.getTypedRuleContext(ElifAlternativeContext,i); + } +}; + +IfStatementContext.prototype.ELSE = function() { + return this.getToken(MySQLParser.ELSE, 0); +}; + +IfStatementContext.prototype.procedureSqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getTypedRuleContext(ProcedureSqlStatementContext,i); + } +}; + +IfStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIfStatement(this); + } +}; + +IfStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIfStatement(this); + } +}; + +IfStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIfStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IfStatementContext = IfStatementContext; + +MySQLParser.prototype.ifStatement = function() { + + var localctx = new IfStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 350, MySQLParser.RULE_ifStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4178; + this.match(MySQLParser.IF); + this.state = 4179; + this.expression(0); + this.state = 4180; + this.match(MySQLParser.THEN); + this.state = 4182; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4181; + localctx._procedureSqlStatement = this.procedureSqlStatement(); + localctx.thenStatements.push(localctx._procedureSqlStatement); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4184; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,602, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 4189; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.ELSEIF) { + this.state = 4186; + this.elifAlternative(); + this.state = 4191; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4198; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ELSE) { + this.state = 4192; + this.match(MySQLParser.ELSE); + this.state = 4194; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4193; + localctx._procedureSqlStatement = this.procedureSqlStatement(); + localctx.elseStatements.push(localctx._procedureSqlStatement); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4196; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,604, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } + + this.state = 4200; + this.match(MySQLParser.END); + this.state = 4201; + this.match(MySQLParser.IF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IterateStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_iterateStatement; + return this; +} + +IterateStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IterateStatementContext.prototype.constructor = IterateStatementContext; + +IterateStatementContext.prototype.ITERATE = function() { + return this.getToken(MySQLParser.ITERATE, 0); +}; + +IterateStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +IterateStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIterateStatement(this); + } +}; + +IterateStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIterateStatement(this); + } +}; + +IterateStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIterateStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IterateStatementContext = IterateStatementContext; + +MySQLParser.prototype.iterateStatement = function() { + + var localctx = new IterateStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 352, MySQLParser.RULE_iterateStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4203; + this.match(MySQLParser.ITERATE); + this.state = 4204; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LeaveStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_leaveStatement; + return this; +} + +LeaveStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LeaveStatementContext.prototype.constructor = LeaveStatementContext; + +LeaveStatementContext.prototype.LEAVE = function() { + return this.getToken(MySQLParser.LEAVE, 0); +}; + +LeaveStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +LeaveStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLeaveStatement(this); + } +}; + +LeaveStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLeaveStatement(this); + } +}; + +LeaveStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLeaveStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LeaveStatementContext = LeaveStatementContext; + +MySQLParser.prototype.leaveStatement = function() { + + var localctx = new LeaveStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 354, MySQLParser.RULE_leaveStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4206; + this.match(MySQLParser.LEAVE); + this.state = 4207; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LoopStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_loopStatement; + return this; +} + +LoopStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LoopStatementContext.prototype.constructor = LoopStatementContext; + +LoopStatementContext.prototype.LOOP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LOOP); + } else { + return this.getToken(MySQLParser.LOOP, i); + } +}; + + +LoopStatementContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +LoopStatementContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +LoopStatementContext.prototype.COLON_SYMB = function() { + return this.getToken(MySQLParser.COLON_SYMB, 0); +}; + +LoopStatementContext.prototype.procedureSqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getTypedRuleContext(ProcedureSqlStatementContext,i); + } +}; + +LoopStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLoopStatement(this); + } +}; + +LoopStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLoopStatement(this); + } +}; + +LoopStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLoopStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LoopStatementContext = LoopStatementContext; + +MySQLParser.prototype.loopStatement = function() { + + var localctx = new LoopStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 356, MySQLParser.RULE_loopStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4212; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 4209; + this.uid(); + this.state = 4210; + this.match(MySQLParser.COLON_SYMB); + } + + this.state = 4214; + this.match(MySQLParser.LOOP); + this.state = 4216; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4215; + this.procedureSqlStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4218; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,607, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 4220; + this.match(MySQLParser.END); + this.state = 4221; + this.match(MySQLParser.LOOP); + this.state = 4223; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 4222; + this.uid(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RepeatStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_repeatStatement; + return this; +} + +RepeatStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RepeatStatementContext.prototype.constructor = RepeatStatementContext; + +RepeatStatementContext.prototype.REPEAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.REPEAT); + } else { + return this.getToken(MySQLParser.REPEAT, i); + } +}; + + +RepeatStatementContext.prototype.UNTIL = function() { + return this.getToken(MySQLParser.UNTIL, 0); +}; + +RepeatStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +RepeatStatementContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +RepeatStatementContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +RepeatStatementContext.prototype.COLON_SYMB = function() { + return this.getToken(MySQLParser.COLON_SYMB, 0); +}; + +RepeatStatementContext.prototype.procedureSqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getTypedRuleContext(ProcedureSqlStatementContext,i); + } +}; + +RepeatStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRepeatStatement(this); + } +}; + +RepeatStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRepeatStatement(this); + } +}; + +RepeatStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRepeatStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RepeatStatementContext = RepeatStatementContext; + +MySQLParser.prototype.repeatStatement = function() { + + var localctx = new RepeatStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 358, MySQLParser.RULE_repeatStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4228; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 4225; + this.uid(); + this.state = 4226; + this.match(MySQLParser.COLON_SYMB); + } + + this.state = 4230; + this.match(MySQLParser.REPEAT); + this.state = 4232; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4231; + this.procedureSqlStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4234; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,610, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 4236; + this.match(MySQLParser.UNTIL); + this.state = 4237; + this.expression(0); + this.state = 4238; + this.match(MySQLParser.END); + this.state = 4239; + this.match(MySQLParser.REPEAT); + this.state = 4241; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 4240; + this.uid(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ReturnStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_returnStatement; + return this; +} + +ReturnStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ReturnStatementContext.prototype.constructor = ReturnStatementContext; + +ReturnStatementContext.prototype.RETURN = function() { + return this.getToken(MySQLParser.RETURN, 0); +}; + +ReturnStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +ReturnStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterReturnStatement(this); + } +}; + +ReturnStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitReturnStatement(this); + } +}; + +ReturnStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitReturnStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ReturnStatementContext = ReturnStatementContext; + +MySQLParser.prototype.returnStatement = function() { + + var localctx = new ReturnStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 360, MySQLParser.RULE_returnStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4243; + this.match(MySQLParser.RETURN); + this.state = 4244; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function WhileStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_whileStatement; + return this; +} + +WhileStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +WhileStatementContext.prototype.constructor = WhileStatementContext; + +WhileStatementContext.prototype.WHILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.WHILE); + } else { + return this.getToken(MySQLParser.WHILE, i); + } +}; + + +WhileStatementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +WhileStatementContext.prototype.DO = function() { + return this.getToken(MySQLParser.DO, 0); +}; + +WhileStatementContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +WhileStatementContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +WhileStatementContext.prototype.COLON_SYMB = function() { + return this.getToken(MySQLParser.COLON_SYMB, 0); +}; + +WhileStatementContext.prototype.procedureSqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getTypedRuleContext(ProcedureSqlStatementContext,i); + } +}; + +WhileStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterWhileStatement(this); + } +}; + +WhileStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitWhileStatement(this); + } +}; + +WhileStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitWhileStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.WhileStatementContext = WhileStatementContext; + +MySQLParser.prototype.whileStatement = function() { + + var localctx = new WhileStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 362, MySQLParser.RULE_whileStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4249; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 4246; + this.uid(); + this.state = 4247; + this.match(MySQLParser.COLON_SYMB); + } + + this.state = 4251; + this.match(MySQLParser.WHILE); + this.state = 4252; + this.expression(0); + this.state = 4253; + this.match(MySQLParser.DO); + this.state = 4255; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4254; + this.procedureSqlStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4257; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,613, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 4259; + this.match(MySQLParser.END); + this.state = 4260; + this.match(MySQLParser.WHILE); + this.state = 4262; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)))) !== 0) || _la===MySQLParser.LEFT || _la===MySQLParser.NUMBER || _la===MySQLParser.RIGHT || _la===MySQLParser.STACKED || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVISIBLE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.VISIBLE - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.QUARTER - 593)) | (1 << (MySQLParser.MONTH - 593)) | (1 << (MySQLParser.DAY - 593)) | (1 << (MySQLParser.HOUR - 593)) | (1 << (MySQLParser.MINUTE - 593)) | (1 << (MySQLParser.WEEK - 593)) | (1 << (MySQLParser.SECOND - 593)) | (1 << (MySQLParser.MICROSECOND - 593)) | (1 << (MySQLParser.TABLES - 593)) | (1 << (MySQLParser.ROUTINE - 593)) | (1 << (MySQLParser.EXECUTE - 593)) | (1 << (MySQLParser.FILE - 593)) | (1 << (MySQLParser.PROCESS - 593)) | (1 << (MySQLParser.RELOAD - 593)) | (1 << (MySQLParser.SHUTDOWN - 593)) | (1 << (MySQLParser.SUPER - 593)) | (1 << (MySQLParser.PRIVILEGES - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)) | (1 << (MySQLParser.ARMSCII8 - 625)) | (1 << (MySQLParser.ASCII - 625)) | (1 << (MySQLParser.BIG5 - 625)) | (1 << (MySQLParser.CP1250 - 625)) | (1 << (MySQLParser.CP1251 - 625)) | (1 << (MySQLParser.CP1256 - 625)) | (1 << (MySQLParser.CP1257 - 625)) | (1 << (MySQLParser.CP850 - 625)) | (1 << (MySQLParser.CP852 - 625)) | (1 << (MySQLParser.CP866 - 625)) | (1 << (MySQLParser.CP932 - 625)) | (1 << (MySQLParser.DEC8 - 625)) | (1 << (MySQLParser.EUCJPMS - 625)) | (1 << (MySQLParser.EUCKR - 625)) | (1 << (MySQLParser.GB2312 - 625)) | (1 << (MySQLParser.GBK - 625)) | (1 << (MySQLParser.GEOSTD8 - 625)) | (1 << (MySQLParser.GREEK - 625)) | (1 << (MySQLParser.HEBREW - 625)) | (1 << (MySQLParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1f) == 0 && ((1 << (_la - 657)) & ((1 << (MySQLParser.KEYBCS2 - 657)) | (1 << (MySQLParser.KOI8R - 657)) | (1 << (MySQLParser.KOI8U - 657)) | (1 << (MySQLParser.LATIN1 - 657)) | (1 << (MySQLParser.LATIN2 - 657)) | (1 << (MySQLParser.LATIN5 - 657)) | (1 << (MySQLParser.LATIN7 - 657)) | (1 << (MySQLParser.MACCE - 657)) | (1 << (MySQLParser.MACROMAN - 657)) | (1 << (MySQLParser.SJIS - 657)) | (1 << (MySQLParser.SWE7 - 657)) | (1 << (MySQLParser.TIS620 - 657)) | (1 << (MySQLParser.UCS2 - 657)) | (1 << (MySQLParser.UJIS - 657)) | (1 << (MySQLParser.UTF16 - 657)) | (1 << (MySQLParser.UTF16LE - 657)) | (1 << (MySQLParser.UTF32 - 657)) | (1 << (MySQLParser.UTF8 - 657)) | (1 << (MySQLParser.UTF8MB3 - 657)) | (1 << (MySQLParser.UTF8MB4 - 657)) | (1 << (MySQLParser.ARCHIVE - 657)) | (1 << (MySQLParser.BLACKHOLE - 657)) | (1 << (MySQLParser.CSV - 657)) | (1 << (MySQLParser.FEDERATED - 657)) | (1 << (MySQLParser.INNODB - 657)) | (1 << (MySQLParser.MEMORY - 657)) | (1 << (MySQLParser.MRG_MYISAM - 657)) | (1 << (MySQLParser.MYISAM - 657)) | (1 << (MySQLParser.NDB - 657)) | (1 << (MySQLParser.NDBCLUSTER - 657)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 657)) | (1 << (MySQLParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 689)) | (1 << (MySQLParser.LINESTRING - 689)) | (1 << (MySQLParser.MULTILINESTRING - 689)) | (1 << (MySQLParser.MULTIPOINT - 689)) | (1 << (MySQLParser.MULTIPOLYGON - 689)) | (1 << (MySQLParser.POINT - 689)) | (1 << (MySQLParser.POLYGON - 689)) | (1 << (MySQLParser.ABS - 689)) | (1 << (MySQLParser.ACOS - 689)) | (1 << (MySQLParser.ADDDATE - 689)) | (1 << (MySQLParser.ADDTIME - 689)) | (1 << (MySQLParser.AES_DECRYPT - 689)) | (1 << (MySQLParser.AES_ENCRYPT - 689)) | (1 << (MySQLParser.AREA - 689)) | (1 << (MySQLParser.ASBINARY - 689)) | (1 << (MySQLParser.ASIN - 689)) | (1 << (MySQLParser.ASTEXT - 689)) | (1 << (MySQLParser.ASWKB - 689)) | (1 << (MySQLParser.ASWKT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 689)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 689)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 689)) | (1 << (MySQLParser.ATAN - 689)) | (1 << (MySQLParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1f) == 0 && ((1 << (_la - 721)) & ((1 << (MySQLParser.BENCHMARK - 721)) | (1 << (MySQLParser.BIN - 721)) | (1 << (MySQLParser.BIT_COUNT - 721)) | (1 << (MySQLParser.BIT_LENGTH - 721)) | (1 << (MySQLParser.BUFFER - 721)) | (1 << (MySQLParser.CATALOG_NAME - 721)) | (1 << (MySQLParser.CEIL - 721)) | (1 << (MySQLParser.CEILING - 721)) | (1 << (MySQLParser.CENTROID - 721)) | (1 << (MySQLParser.CHARACTER_LENGTH - 721)) | (1 << (MySQLParser.CHARSET - 721)) | (1 << (MySQLParser.CHAR_LENGTH - 721)) | (1 << (MySQLParser.COERCIBILITY - 721)) | (1 << (MySQLParser.COLLATION - 721)) | (1 << (MySQLParser.COMPRESS - 721)) | (1 << (MySQLParser.CONCAT - 721)) | (1 << (MySQLParser.CONCAT_WS - 721)) | (1 << (MySQLParser.CONNECTION_ID - 721)) | (1 << (MySQLParser.CONV - 721)) | (1 << (MySQLParser.CONVERT_TZ - 721)) | (1 << (MySQLParser.COS - 721)) | (1 << (MySQLParser.COT - 721)) | (1 << (MySQLParser.CRC32 - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 721)) | (1 << (MySQLParser.CREATE_DIGEST - 721)) | (1 << (MySQLParser.CROSSES - 721)) | (1 << (MySQLParser.DATEDIFF - 721)) | (1 << (MySQLParser.DATE_FORMAT - 721)) | (1 << (MySQLParser.DAYNAME - 721)) | (1 << (MySQLParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1f) == 0 && ((1 << (_la - 753)) & ((1 << (MySQLParser.DAYOFWEEK - 753)) | (1 << (MySQLParser.DAYOFYEAR - 753)) | (1 << (MySQLParser.DECODE - 753)) | (1 << (MySQLParser.DEGREES - 753)) | (1 << (MySQLParser.DES_DECRYPT - 753)) | (1 << (MySQLParser.DES_ENCRYPT - 753)) | (1 << (MySQLParser.DIMENSION - 753)) | (1 << (MySQLParser.DISJOINT - 753)) | (1 << (MySQLParser.ELT - 753)) | (1 << (MySQLParser.ENCODE - 753)) | (1 << (MySQLParser.ENCRYPT - 753)) | (1 << (MySQLParser.ENDPOINT - 753)) | (1 << (MySQLParser.ENVELOPE - 753)) | (1 << (MySQLParser.EQUALS - 753)) | (1 << (MySQLParser.EXP - 753)) | (1 << (MySQLParser.EXPORT_SET - 753)) | (1 << (MySQLParser.EXTERIORRING - 753)) | (1 << (MySQLParser.EXTRACTVALUE - 753)) | (1 << (MySQLParser.FIELD - 753)) | (1 << (MySQLParser.FIND_IN_SET - 753)) | (1 << (MySQLParser.FLOOR - 753)) | (1 << (MySQLParser.FORMAT - 753)) | (1 << (MySQLParser.FOUND_ROWS - 753)) | (1 << (MySQLParser.FROM_BASE64 - 753)) | (1 << (MySQLParser.FROM_DAYS - 753)) | (1 << (MySQLParser.FROM_UNIXTIME - 753)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 753)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 753)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1f) == 0 && ((1 << (_la - 785)) & ((1 << (MySQLParser.GEOMETRYN - 785)) | (1 << (MySQLParser.GEOMETRYTYPE - 785)) | (1 << (MySQLParser.GEOMFROMTEXT - 785)) | (1 << (MySQLParser.GEOMFROMWKB - 785)) | (1 << (MySQLParser.GET_FORMAT - 785)) | (1 << (MySQLParser.GET_LOCK - 785)) | (1 << (MySQLParser.GLENGTH - 785)) | (1 << (MySQLParser.GREATEST - 785)) | (1 << (MySQLParser.GTID_SUBSET - 785)) | (1 << (MySQLParser.GTID_SUBTRACT - 785)) | (1 << (MySQLParser.HEX - 785)) | (1 << (MySQLParser.IFNULL - 785)) | (1 << (MySQLParser.INET6_ATON - 785)) | (1 << (MySQLParser.INET6_NTOA - 785)) | (1 << (MySQLParser.INET_ATON - 785)) | (1 << (MySQLParser.INET_NTOA - 785)) | (1 << (MySQLParser.INSTR - 785)) | (1 << (MySQLParser.INTERIORRINGN - 785)) | (1 << (MySQLParser.INTERSECTS - 785)) | (1 << (MySQLParser.ISCLOSED - 785)) | (1 << (MySQLParser.ISEMPTY - 785)) | (1 << (MySQLParser.ISNULL - 785)) | (1 << (MySQLParser.ISSIMPLE - 785)) | (1 << (MySQLParser.IS_FREE_LOCK - 785)) | (1 << (MySQLParser.IS_IPV4 - 785)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 785)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 785)) | (1 << (MySQLParser.IS_IPV6 - 785)) | (1 << (MySQLParser.IS_USED_LOCK - 785)) | (1 << (MySQLParser.LAST_INSERT_ID - 785)) | (1 << (MySQLParser.LCASE - 785)) | (1 << (MySQLParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1f) == 0 && ((1 << (_la - 817)) & ((1 << (MySQLParser.LENGTH - 817)) | (1 << (MySQLParser.LINEFROMTEXT - 817)) | (1 << (MySQLParser.LINEFROMWKB - 817)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 817)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 817)) | (1 << (MySQLParser.LN - 817)) | (1 << (MySQLParser.LOAD_FILE - 817)) | (1 << (MySQLParser.LOCATE - 817)) | (1 << (MySQLParser.LOG - 817)) | (1 << (MySQLParser.LOG10 - 817)) | (1 << (MySQLParser.LOG2 - 817)) | (1 << (MySQLParser.LOWER - 817)) | (1 << (MySQLParser.LPAD - 817)) | (1 << (MySQLParser.LTRIM - 817)) | (1 << (MySQLParser.MAKEDATE - 817)) | (1 << (MySQLParser.MAKETIME - 817)) | (1 << (MySQLParser.MAKE_SET - 817)) | (1 << (MySQLParser.MASTER_POS_WAIT - 817)) | (1 << (MySQLParser.MBRCONTAINS - 817)) | (1 << (MySQLParser.MBRDISJOINT - 817)) | (1 << (MySQLParser.MBREQUAL - 817)) | (1 << (MySQLParser.MBRINTERSECTS - 817)) | (1 << (MySQLParser.MBROVERLAPS - 817)) | (1 << (MySQLParser.MBRTOUCHES - 817)) | (1 << (MySQLParser.MBRWITHIN - 817)) | (1 << (MySQLParser.MD5 - 817)) | (1 << (MySQLParser.MLINEFROMTEXT - 817)) | (1 << (MySQLParser.MLINEFROMWKB - 817)) | (1 << (MySQLParser.MONTHNAME - 817)) | (1 << (MySQLParser.MPOINTFROMTEXT - 817)) | (1 << (MySQLParser.MPOINTFROMWKB - 817)) | (1 << (MySQLParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1f) == 0 && ((1 << (_la - 849)) & ((1 << (MySQLParser.MPOLYFROMWKB - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (MySQLParser.NAME_CONST - 849)) | (1 << (MySQLParser.NULLIF - 849)) | (1 << (MySQLParser.NUMGEOMETRIES - 849)) | (1 << (MySQLParser.NUMINTERIORRINGS - 849)) | (1 << (MySQLParser.NUMPOINTS - 849)) | (1 << (MySQLParser.OCT - 849)) | (1 << (MySQLParser.OCTET_LENGTH - 849)) | (1 << (MySQLParser.ORD - 849)) | (1 << (MySQLParser.OVERLAPS - 849)) | (1 << (MySQLParser.PERIOD_ADD - 849)) | (1 << (MySQLParser.PERIOD_DIFF - 849)) | (1 << (MySQLParser.PI - 849)) | (1 << (MySQLParser.POINTFROMTEXT - 849)) | (1 << (MySQLParser.POINTFROMWKB - 849)) | (1 << (MySQLParser.POINTN - 849)) | (1 << (MySQLParser.POLYFROMTEXT - 849)) | (1 << (MySQLParser.POLYFROMWKB - 849)) | (1 << (MySQLParser.POLYGONFROMTEXT - 849)) | (1 << (MySQLParser.POLYGONFROMWKB - 849)) | (1 << (MySQLParser.POW - 849)) | (1 << (MySQLParser.POWER - 849)) | (1 << (MySQLParser.QUOTE - 849)) | (1 << (MySQLParser.RADIANS - 849)) | (1 << (MySQLParser.RAND - 849)) | (1 << (MySQLParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1f) == 0 && ((1 << (_la - 881)) & ((1 << (MySQLParser.RELEASE_LOCK - 881)) | (1 << (MySQLParser.REVERSE - 881)) | (1 << (MySQLParser.ROUND - 881)) | (1 << (MySQLParser.ROW_COUNT - 881)) | (1 << (MySQLParser.RPAD - 881)) | (1 << (MySQLParser.RTRIM - 881)) | (1 << (MySQLParser.SEC_TO_TIME - 881)) | (1 << (MySQLParser.SESSION_USER - 881)) | (1 << (MySQLParser.SHA - 881)) | (1 << (MySQLParser.SHA1 - 881)) | (1 << (MySQLParser.SHA2 - 881)) | (1 << (MySQLParser.SCHEMA_NAME - 881)) | (1 << (MySQLParser.SIGN - 881)) | (1 << (MySQLParser.SIN - 881)) | (1 << (MySQLParser.SLEEP - 881)) | (1 << (MySQLParser.SOUNDEX - 881)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (MySQLParser.SQRT - 881)) | (1 << (MySQLParser.SRID - 881)) | (1 << (MySQLParser.STARTPOINT - 881)) | (1 << (MySQLParser.STRCMP - 881)) | (1 << (MySQLParser.STR_TO_DATE - 881)) | (1 << (MySQLParser.ST_AREA - 881)) | (1 << (MySQLParser.ST_ASBINARY - 881)) | (1 << (MySQLParser.ST_ASTEXT - 881)) | (1 << (MySQLParser.ST_ASWKB - 881)) | (1 << (MySQLParser.ST_ASWKT - 881)) | (1 << (MySQLParser.ST_BUFFER - 881)) | (1 << (MySQLParser.ST_CENTROID - 881)) | (1 << (MySQLParser.ST_CONTAINS - 881)) | (1 << (MySQLParser.ST_CROSSES - 881)) | (1 << (MySQLParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1f) == 0 && ((1 << (_la - 913)) & ((1 << (MySQLParser.ST_DIMENSION - 913)) | (1 << (MySQLParser.ST_DISJOINT - 913)) | (1 << (MySQLParser.ST_DISTANCE - 913)) | (1 << (MySQLParser.ST_ENDPOINT - 913)) | (1 << (MySQLParser.ST_ENVELOPE - 913)) | (1 << (MySQLParser.ST_EQUALS - 913)) | (1 << (MySQLParser.ST_EXTERIORRING - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (MySQLParser.ST_GEOMETRYN - 913)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 913)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 913)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 913)) | (1 << (MySQLParser.ST_INTERIORRINGN - 913)) | (1 << (MySQLParser.ST_INTERSECTION - 913)) | (1 << (MySQLParser.ST_INTERSECTS - 913)) | (1 << (MySQLParser.ST_ISCLOSED - 913)) | (1 << (MySQLParser.ST_ISEMPTY - 913)) | (1 << (MySQLParser.ST_ISSIMPLE - 913)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINEFROMWKB - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 913)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 913)) | (1 << (MySQLParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1f) == 0 && ((1 << (_la - 945)) & ((1 << (MySQLParser.ST_OVERLAPS - 945)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 945)) | (1 << (MySQLParser.ST_POINTFROMWKB - 945)) | (1 << (MySQLParser.ST_POINTN - 945)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYFROMWKB - 945)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 945)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 945)) | (1 << (MySQLParser.ST_SRID - 945)) | (1 << (MySQLParser.ST_STARTPOINT - 945)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 945)) | (1 << (MySQLParser.ST_TOUCHES - 945)) | (1 << (MySQLParser.ST_UNION - 945)) | (1 << (MySQLParser.ST_WITHIN - 945)) | (1 << (MySQLParser.ST_X - 945)) | (1 << (MySQLParser.ST_Y - 945)) | (1 << (MySQLParser.SUBDATE - 945)) | (1 << (MySQLParser.SUBSTRING_INDEX - 945)) | (1 << (MySQLParser.SUBTIME - 945)) | (1 << (MySQLParser.SYSTEM_USER - 945)) | (1 << (MySQLParser.TAN - 945)) | (1 << (MySQLParser.TIMEDIFF - 945)) | (1 << (MySQLParser.TIMESTAMPADD - 945)) | (1 << (MySQLParser.TIMESTAMPDIFF - 945)) | (1 << (MySQLParser.TIME_FORMAT - 945)) | (1 << (MySQLParser.TIME_TO_SEC - 945)) | (1 << (MySQLParser.TOUCHES - 945)) | (1 << (MySQLParser.TO_BASE64 - 945)) | (1 << (MySQLParser.TO_DAYS - 945)) | (1 << (MySQLParser.TO_SECONDS - 945)) | (1 << (MySQLParser.UCASE - 945)) | (1 << (MySQLParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1f) == 0 && ((1 << (_la - 977)) & ((1 << (MySQLParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (MySQLParser.UNHEX - 977)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 977)) | (1 << (MySQLParser.UPDATEXML - 977)) | (1 << (MySQLParser.UPPER - 977)) | (1 << (MySQLParser.UUID - 977)) | (1 << (MySQLParser.UUID_SHORT - 977)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (MySQLParser.VERSION - 977)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (MySQLParser.WEEKDAY - 977)) | (1 << (MySQLParser.WEEKOFYEAR - 977)) | (1 << (MySQLParser.WEIGHT_STRING - 977)) | (1 << (MySQLParser.WITHIN - 977)) | (1 << (MySQLParser.YEARWEEK - 977)) | (1 << (MySQLParser.Y_FUNCTION - 977)) | (1 << (MySQLParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1f) == 0 && ((1 << (_la - 1032)) & ((1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (MySQLParser.STRING_LITERAL - 1032)) | (1 << (MySQLParser.ID - 1032)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { + this.state = 4261; + this.uid(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CursorStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_cursorStatement; + return this; +} + +CursorStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CursorStatementContext.prototype.constructor = CursorStatementContext; + + + +CursorStatementContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function CloseCursorContext(parser, ctx) { + CursorStatementContext.call(this, parser); + CursorStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CloseCursorContext.prototype = Object.create(CursorStatementContext.prototype); +CloseCursorContext.prototype.constructor = CloseCursorContext; + +MySQLParser.CloseCursorContext = CloseCursorContext; + +CloseCursorContext.prototype.CLOSE = function() { + return this.getToken(MySQLParser.CLOSE, 0); +}; + +CloseCursorContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +CloseCursorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCloseCursor(this); + } +}; + +CloseCursorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCloseCursor(this); + } +}; + +CloseCursorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCloseCursor(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function OpenCursorContext(parser, ctx) { + CursorStatementContext.call(this, parser); + CursorStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +OpenCursorContext.prototype = Object.create(CursorStatementContext.prototype); +OpenCursorContext.prototype.constructor = OpenCursorContext; + +MySQLParser.OpenCursorContext = OpenCursorContext; + +OpenCursorContext.prototype.OPEN = function() { + return this.getToken(MySQLParser.OPEN, 0); +}; + +OpenCursorContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +OpenCursorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterOpenCursor(this); + } +}; + +OpenCursorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitOpenCursor(this); + } +}; + +OpenCursorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitOpenCursor(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function FetchCursorContext(parser, ctx) { + CursorStatementContext.call(this, parser); + CursorStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +FetchCursorContext.prototype = Object.create(CursorStatementContext.prototype); +FetchCursorContext.prototype.constructor = FetchCursorContext; + +MySQLParser.FetchCursorContext = FetchCursorContext; + +FetchCursorContext.prototype.FETCH = function() { + return this.getToken(MySQLParser.FETCH, 0); +}; + +FetchCursorContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +FetchCursorContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +FetchCursorContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +FetchCursorContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +FetchCursorContext.prototype.NEXT = function() { + return this.getToken(MySQLParser.NEXT, 0); +}; +FetchCursorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFetchCursor(this); + } +}; + +FetchCursorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFetchCursor(this); + } +}; + +FetchCursorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFetchCursor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.CursorStatementContext = CursorStatementContext; + +MySQLParser.prototype.cursorStatement = function() { + + var localctx = new CursorStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 364, MySQLParser.RULE_cursorStatement); + var _la = 0; // Token type + try { + this.state = 4279; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CLOSE: + localctx = new CloseCursorContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4264; + this.match(MySQLParser.CLOSE); + this.state = 4265; + this.uid(); + break; + case MySQLParser.FETCH: + localctx = new FetchCursorContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4266; + this.match(MySQLParser.FETCH); + this.state = 4271; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,616,this._ctx); + if(la_===1) { + this.state = 4268; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NEXT) { + this.state = 4267; + this.match(MySQLParser.NEXT); + } + + this.state = 4270; + this.match(MySQLParser.FROM); + + } + this.state = 4273; + this.uid(); + this.state = 4274; + this.match(MySQLParser.INTO); + this.state = 4275; + this.uidList(); + break; + case MySQLParser.OPEN: + localctx = new OpenCursorContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 4277; + this.match(MySQLParser.OPEN); + this.state = 4278; + this.uid(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DeclareVariableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_declareVariable; + return this; +} + +DeclareVariableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DeclareVariableContext.prototype.constructor = DeclareVariableContext; + +DeclareVariableContext.prototype.DECLARE = function() { + return this.getToken(MySQLParser.DECLARE, 0); +}; + +DeclareVariableContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +DeclareVariableContext.prototype.dataType = function() { + return this.getTypedRuleContext(DataTypeContext,0); +}; + +DeclareVariableContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +DeclareVariableContext.prototype.defaultValue = function() { + return this.getTypedRuleContext(DefaultValueContext,0); +}; + +DeclareVariableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDeclareVariable(this); + } +}; + +DeclareVariableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDeclareVariable(this); + } +}; + +DeclareVariableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDeclareVariable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DeclareVariableContext = DeclareVariableContext; + +MySQLParser.prototype.declareVariable = function() { + + var localctx = new DeclareVariableContext(this, this._ctx, this.state); + this.enterRule(localctx, 366, MySQLParser.RULE_declareVariable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4281; + this.match(MySQLParser.DECLARE); + this.state = 4282; + this.uidList(); + this.state = 4283; + this.dataType(); + this.state = 4286; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DEFAULT) { + this.state = 4284; + this.match(MySQLParser.DEFAULT); + this.state = 4285; + this.defaultValue(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DeclareConditionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_declareCondition; + return this; +} + +DeclareConditionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DeclareConditionContext.prototype.constructor = DeclareConditionContext; + +DeclareConditionContext.prototype.DECLARE = function() { + return this.getToken(MySQLParser.DECLARE, 0); +}; + +DeclareConditionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DeclareConditionContext.prototype.CONDITION = function() { + return this.getToken(MySQLParser.CONDITION, 0); +}; + +DeclareConditionContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +DeclareConditionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +DeclareConditionContext.prototype.SQLSTATE = function() { + return this.getToken(MySQLParser.SQLSTATE, 0); +}; + +DeclareConditionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +DeclareConditionContext.prototype.VALUE = function() { + return this.getToken(MySQLParser.VALUE, 0); +}; + +DeclareConditionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDeclareCondition(this); + } +}; + +DeclareConditionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDeclareCondition(this); + } +}; + +DeclareConditionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDeclareCondition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DeclareConditionContext = DeclareConditionContext; + +MySQLParser.prototype.declareCondition = function() { + + var localctx = new DeclareConditionContext(this, this._ctx, this.state); + this.enterRule(localctx, 368, MySQLParser.RULE_declareCondition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4288; + this.match(MySQLParser.DECLARE); + this.state = 4289; + this.uid(); + this.state = 4290; + this.match(MySQLParser.CONDITION); + this.state = 4291; + this.match(MySQLParser.FOR); + this.state = 4298; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.DECIMAL_LITERAL: + this.state = 4292; + this.decimalLiteral(); + break; + case MySQLParser.SQLSTATE: + this.state = 4293; + this.match(MySQLParser.SQLSTATE); + this.state = 4295; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.VALUE) { + this.state = 4294; + this.match(MySQLParser.VALUE); + } + + this.state = 4297; + this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DeclareCursorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_declareCursor; + return this; +} + +DeclareCursorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DeclareCursorContext.prototype.constructor = DeclareCursorContext; + +DeclareCursorContext.prototype.DECLARE = function() { + return this.getToken(MySQLParser.DECLARE, 0); +}; + +DeclareCursorContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DeclareCursorContext.prototype.CURSOR = function() { + return this.getToken(MySQLParser.CURSOR, 0); +}; + +DeclareCursorContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +DeclareCursorContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +DeclareCursorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDeclareCursor(this); + } +}; + +DeclareCursorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDeclareCursor(this); + } +}; + +DeclareCursorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDeclareCursor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DeclareCursorContext = DeclareCursorContext; + +MySQLParser.prototype.declareCursor = function() { + + var localctx = new DeclareCursorContext(this, this._ctx, this.state); + this.enterRule(localctx, 370, MySQLParser.RULE_declareCursor); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4300; + this.match(MySQLParser.DECLARE); + this.state = 4301; + this.uid(); + this.state = 4302; + this.match(MySQLParser.CURSOR); + this.state = 4303; + this.match(MySQLParser.FOR); + this.state = 4304; + this.selectStatement(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DeclareHandlerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_declareHandler; + this.handlerAction = null; // Token + return this; +} + +DeclareHandlerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DeclareHandlerContext.prototype.constructor = DeclareHandlerContext; + +DeclareHandlerContext.prototype.DECLARE = function() { + return this.getToken(MySQLParser.DECLARE, 0); +}; + +DeclareHandlerContext.prototype.HANDLER = function() { + return this.getToken(MySQLParser.HANDLER, 0); +}; + +DeclareHandlerContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +DeclareHandlerContext.prototype.handlerConditionValue = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(HandlerConditionValueContext); + } else { + return this.getTypedRuleContext(HandlerConditionValueContext,i); + } +}; + +DeclareHandlerContext.prototype.routineBody = function() { + return this.getTypedRuleContext(RoutineBodyContext,0); +}; + +DeclareHandlerContext.prototype.CONTINUE = function() { + return this.getToken(MySQLParser.CONTINUE, 0); +}; + +DeclareHandlerContext.prototype.EXIT = function() { + return this.getToken(MySQLParser.EXIT, 0); +}; + +DeclareHandlerContext.prototype.UNDO = function() { + return this.getToken(MySQLParser.UNDO, 0); +}; + +DeclareHandlerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +DeclareHandlerContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDeclareHandler(this); + } +}; + +DeclareHandlerContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDeclareHandler(this); + } +}; + +DeclareHandlerContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDeclareHandler(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DeclareHandlerContext = DeclareHandlerContext; + +MySQLParser.prototype.declareHandler = function() { + + var localctx = new DeclareHandlerContext(this, this._ctx, this.state); + this.enterRule(localctx, 372, MySQLParser.RULE_declareHandler); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4306; + this.match(MySQLParser.DECLARE); + this.state = 4307; + localctx.handlerAction = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CONTINUE || _la===MySQLParser.EXIT || _la===MySQLParser.UNDO)) { + localctx.handlerAction = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4308; + this.match(MySQLParser.HANDLER); + this.state = 4309; + this.match(MySQLParser.FOR); + this.state = 4310; + this.handlerConditionValue(); + this.state = 4315; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4311; + this.match(MySQLParser.COMMA); + this.state = 4312; + this.handlerConditionValue(); + this.state = 4317; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4318; + this.routineBody(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HandlerConditionValueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_handlerConditionValue; + return this; +} + +HandlerConditionValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HandlerConditionValueContext.prototype.constructor = HandlerConditionValueContext; + + + +HandlerConditionValueContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function HandlerConditionWarningContext(parser, ctx) { + HandlerConditionValueContext.call(this, parser); + HandlerConditionValueContext.prototype.copyFrom.call(this, ctx); + return this; +} + +HandlerConditionWarningContext.prototype = Object.create(HandlerConditionValueContext.prototype); +HandlerConditionWarningContext.prototype.constructor = HandlerConditionWarningContext; + +MySQLParser.HandlerConditionWarningContext = HandlerConditionWarningContext; + +HandlerConditionWarningContext.prototype.SQLWARNING = function() { + return this.getToken(MySQLParser.SQLWARNING, 0); +}; +HandlerConditionWarningContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerConditionWarning(this); + } +}; + +HandlerConditionWarningContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerConditionWarning(this); + } +}; + +HandlerConditionWarningContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerConditionWarning(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function HandlerConditionCodeContext(parser, ctx) { + HandlerConditionValueContext.call(this, parser); + HandlerConditionValueContext.prototype.copyFrom.call(this, ctx); + return this; +} + +HandlerConditionCodeContext.prototype = Object.create(HandlerConditionValueContext.prototype); +HandlerConditionCodeContext.prototype.constructor = HandlerConditionCodeContext; + +MySQLParser.HandlerConditionCodeContext = HandlerConditionCodeContext; + +HandlerConditionCodeContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; +HandlerConditionCodeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerConditionCode(this); + } +}; + +HandlerConditionCodeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerConditionCode(this); + } +}; + +HandlerConditionCodeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerConditionCode(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function HandlerConditionNotfoundContext(parser, ctx) { + HandlerConditionValueContext.call(this, parser); + HandlerConditionValueContext.prototype.copyFrom.call(this, ctx); + return this; +} + +HandlerConditionNotfoundContext.prototype = Object.create(HandlerConditionValueContext.prototype); +HandlerConditionNotfoundContext.prototype.constructor = HandlerConditionNotfoundContext; + +MySQLParser.HandlerConditionNotfoundContext = HandlerConditionNotfoundContext; + +HandlerConditionNotfoundContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +HandlerConditionNotfoundContext.prototype.FOUND = function() { + return this.getToken(MySQLParser.FOUND, 0); +}; +HandlerConditionNotfoundContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerConditionNotfound(this); + } +}; + +HandlerConditionNotfoundContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerConditionNotfound(this); + } +}; + +HandlerConditionNotfoundContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerConditionNotfound(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function HandlerConditionStateContext(parser, ctx) { + HandlerConditionValueContext.call(this, parser); + HandlerConditionValueContext.prototype.copyFrom.call(this, ctx); + return this; +} + +HandlerConditionStateContext.prototype = Object.create(HandlerConditionValueContext.prototype); +HandlerConditionStateContext.prototype.constructor = HandlerConditionStateContext; + +MySQLParser.HandlerConditionStateContext = HandlerConditionStateContext; + +HandlerConditionStateContext.prototype.SQLSTATE = function() { + return this.getToken(MySQLParser.SQLSTATE, 0); +}; + +HandlerConditionStateContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +HandlerConditionStateContext.prototype.VALUE = function() { + return this.getToken(MySQLParser.VALUE, 0); +}; +HandlerConditionStateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerConditionState(this); + } +}; + +HandlerConditionStateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerConditionState(this); + } +}; + +HandlerConditionStateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerConditionState(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function HandlerConditionExceptionContext(parser, ctx) { + HandlerConditionValueContext.call(this, parser); + HandlerConditionValueContext.prototype.copyFrom.call(this, ctx); + return this; +} + +HandlerConditionExceptionContext.prototype = Object.create(HandlerConditionValueContext.prototype); +HandlerConditionExceptionContext.prototype.constructor = HandlerConditionExceptionContext; + +MySQLParser.HandlerConditionExceptionContext = HandlerConditionExceptionContext; + +HandlerConditionExceptionContext.prototype.SQLEXCEPTION = function() { + return this.getToken(MySQLParser.SQLEXCEPTION, 0); +}; +HandlerConditionExceptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerConditionException(this); + } +}; + +HandlerConditionExceptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerConditionException(this); + } +}; + +HandlerConditionExceptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerConditionException(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function HandlerConditionNameContext(parser, ctx) { + HandlerConditionValueContext.call(this, parser); + HandlerConditionValueContext.prototype.copyFrom.call(this, ctx); + return this; +} + +HandlerConditionNameContext.prototype = Object.create(HandlerConditionValueContext.prototype); +HandlerConditionNameContext.prototype.constructor = HandlerConditionNameContext; + +MySQLParser.HandlerConditionNameContext = HandlerConditionNameContext; + +HandlerConditionNameContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +HandlerConditionNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHandlerConditionName(this); + } +}; + +HandlerConditionNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHandlerConditionName(this); + } +}; + +HandlerConditionNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHandlerConditionName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.HandlerConditionValueContext = HandlerConditionValueContext; + +MySQLParser.prototype.handlerConditionValue = function() { + + var localctx = new HandlerConditionValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 374, MySQLParser.RULE_handlerConditionValue); + var _la = 0; // Token type + try { + this.state = 4331; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.DECIMAL_LITERAL: + localctx = new HandlerConditionCodeContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4320; + this.decimalLiteral(); + break; + case MySQLParser.SQLSTATE: + localctx = new HandlerConditionStateContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4321; + this.match(MySQLParser.SQLSTATE); + this.state = 4323; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.VALUE) { + this.state = 4322; + this.match(MySQLParser.VALUE); + } + + this.state = 4325; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + localctx = new HandlerConditionNameContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 4326; + this.uid(); + break; + case MySQLParser.SQLWARNING: + localctx = new HandlerConditionWarningContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 4327; + this.match(MySQLParser.SQLWARNING); + break; + case MySQLParser.NOT: + localctx = new HandlerConditionNotfoundContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 4328; + this.match(MySQLParser.NOT); + this.state = 4329; + this.match(MySQLParser.FOUND); + break; + case MySQLParser.SQLEXCEPTION: + localctx = new HandlerConditionExceptionContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 4330; + this.match(MySQLParser.SQLEXCEPTION); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ProcedureSqlStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_procedureSqlStatement; + return this; +} + +ProcedureSqlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ProcedureSqlStatementContext.prototype.constructor = ProcedureSqlStatementContext; + +ProcedureSqlStatementContext.prototype.SEMI = function() { + return this.getToken(MySQLParser.SEMI, 0); +}; + +ProcedureSqlStatementContext.prototype.compoundStatement = function() { + return this.getTypedRuleContext(CompoundStatementContext,0); +}; + +ProcedureSqlStatementContext.prototype.sqlStatement = function() { + return this.getTypedRuleContext(SqlStatementContext,0); +}; + +ProcedureSqlStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterProcedureSqlStatement(this); + } +}; + +ProcedureSqlStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitProcedureSqlStatement(this); + } +}; + +ProcedureSqlStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitProcedureSqlStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ProcedureSqlStatementContext = ProcedureSqlStatementContext; + +MySQLParser.prototype.procedureSqlStatement = function() { + + var localctx = new ProcedureSqlStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 376, MySQLParser.RULE_procedureSqlStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4335; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,624,this._ctx); + switch(la_) { + case 1: + this.state = 4333; + this.compoundStatement(); + break; + + case 2: + this.state = 4334; + this.sqlStatement(); + break; + + } + this.state = 4337; + this.match(MySQLParser.SEMI); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CaseAlternativeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_caseAlternative; + return this; +} + +CaseAlternativeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CaseAlternativeContext.prototype.constructor = CaseAlternativeContext; + +CaseAlternativeContext.prototype.WHEN = function() { + return this.getToken(MySQLParser.WHEN, 0); +}; + +CaseAlternativeContext.prototype.THEN = function() { + return this.getToken(MySQLParser.THEN, 0); +}; + +CaseAlternativeContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +CaseAlternativeContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +CaseAlternativeContext.prototype.procedureSqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getTypedRuleContext(ProcedureSqlStatementContext,i); + } +}; + +CaseAlternativeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCaseAlternative(this); + } +}; + +CaseAlternativeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCaseAlternative(this); + } +}; + +CaseAlternativeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCaseAlternative(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CaseAlternativeContext = CaseAlternativeContext; + +MySQLParser.prototype.caseAlternative = function() { + + var localctx = new CaseAlternativeContext(this, this._ctx, this.state); + this.enterRule(localctx, 378, MySQLParser.RULE_caseAlternative); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4339; + this.match(MySQLParser.WHEN); + this.state = 4342; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,625,this._ctx); + switch(la_) { + case 1: + this.state = 4340; + this.constant(); + break; + + case 2: + this.state = 4341; + this.expression(0); + break; + + } + this.state = 4344; + this.match(MySQLParser.THEN); + this.state = 4346; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4345; + this.procedureSqlStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4348; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,626, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ElifAlternativeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_elifAlternative; + return this; +} + +ElifAlternativeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ElifAlternativeContext.prototype.constructor = ElifAlternativeContext; + +ElifAlternativeContext.prototype.ELSEIF = function() { + return this.getToken(MySQLParser.ELSEIF, 0); +}; + +ElifAlternativeContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +ElifAlternativeContext.prototype.THEN = function() { + return this.getToken(MySQLParser.THEN, 0); +}; + +ElifAlternativeContext.prototype.procedureSqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getTypedRuleContext(ProcedureSqlStatementContext,i); + } +}; + +ElifAlternativeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterElifAlternative(this); + } +}; + +ElifAlternativeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitElifAlternative(this); + } +}; + +ElifAlternativeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitElifAlternative(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ElifAlternativeContext = ElifAlternativeContext; + +MySQLParser.prototype.elifAlternative = function() { + + var localctx = new ElifAlternativeContext(this, this._ctx, this.state); + this.enterRule(localctx, 380, MySQLParser.RULE_elifAlternative); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4350; + this.match(MySQLParser.ELSEIF); + this.state = 4351; + this.expression(0); + this.state = 4352; + this.match(MySQLParser.THEN); + this.state = 4354; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4353; + this.procedureSqlStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4356; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,627, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterUserContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_alterUser; + return this; +} + +AlterUserContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterUserContext.prototype.constructor = AlterUserContext; + + + +AlterUserContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function AlterUserMysqlV56Context(parser, ctx) { + AlterUserContext.call(this, parser); + AlterUserContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterUserMysqlV56Context.prototype = Object.create(AlterUserContext.prototype); +AlterUserMysqlV56Context.prototype.constructor = AlterUserMysqlV56Context; + +MySQLParser.AlterUserMysqlV56Context = AlterUserMysqlV56Context; + +AlterUserMysqlV56Context.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterUserMysqlV56Context.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +AlterUserMysqlV56Context.prototype.userSpecification = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserSpecificationContext); + } else { + return this.getTypedRuleContext(UserSpecificationContext,i); + } +}; + +AlterUserMysqlV56Context.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +AlterUserMysqlV56Context.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterUserMysqlV56(this); + } +}; + +AlterUserMysqlV56Context.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterUserMysqlV56(this); + } +}; + +AlterUserMysqlV56Context.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterUserMysqlV56(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AlterUserMysqlV57Context(parser, ctx) { + AlterUserContext.call(this, parser); + this.tlsNone = null; // Token; + AlterUserContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AlterUserMysqlV57Context.prototype = Object.create(AlterUserContext.prototype); +AlterUserMysqlV57Context.prototype.constructor = AlterUserMysqlV57Context; + +MySQLParser.AlterUserMysqlV57Context = AlterUserMysqlV57Context; + +AlterUserMysqlV57Context.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +AlterUserMysqlV57Context.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +AlterUserMysqlV57Context.prototype.userAuthOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserAuthOptionContext); + } else { + return this.getTypedRuleContext(UserAuthOptionContext,i); + } +}; + +AlterUserMysqlV57Context.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +AlterUserMysqlV57Context.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +AlterUserMysqlV57Context.prototype.REQUIRE = function() { + return this.getToken(MySQLParser.REQUIRE, 0); +}; + +AlterUserMysqlV57Context.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +AlterUserMysqlV57Context.prototype.userPasswordOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserPasswordOptionContext); + } else { + return this.getTypedRuleContext(UserPasswordOptionContext,i); + } +}; + +AlterUserMysqlV57Context.prototype.userLockOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserLockOptionContext); + } else { + return this.getTypedRuleContext(UserLockOptionContext,i); + } +}; + +AlterUserMysqlV57Context.prototype.tlsOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TlsOptionContext); + } else { + return this.getTypedRuleContext(TlsOptionContext,i); + } +}; + +AlterUserMysqlV57Context.prototype.NONE = function() { + return this.getToken(MySQLParser.NONE, 0); +}; + +AlterUserMysqlV57Context.prototype.userResourceOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserResourceOptionContext); + } else { + return this.getTypedRuleContext(UserResourceOptionContext,i); + } +}; + +AlterUserMysqlV57Context.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.AND); + } else { + return this.getToken(MySQLParser.AND, i); + } +}; + +AlterUserMysqlV57Context.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAlterUserMysqlV57(this); + } +}; + +AlterUserMysqlV57Context.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAlterUserMysqlV57(this); + } +}; + +AlterUserMysqlV57Context.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAlterUserMysqlV57(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.AlterUserContext = AlterUserContext; + +MySQLParser.prototype.alterUser = function() { + + var localctx = new AlterUserContext(this, this._ctx, this.state); + this.enterRule(localctx, 382, MySQLParser.RULE_alterUser); + var _la = 0; // Token type + try { + this.state = 4412; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,639,this._ctx); + switch(la_) { + case 1: + localctx = new AlterUserMysqlV56Context(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4358; + this.match(MySQLParser.ALTER); + this.state = 4359; + this.match(MySQLParser.USER); + this.state = 4360; + this.userSpecification(); + this.state = 4365; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4361; + this.match(MySQLParser.COMMA); + this.state = 4362; + this.userSpecification(); + this.state = 4367; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + localctx = new AlterUserMysqlV57Context(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4368; + this.match(MySQLParser.ALTER); + this.state = 4369; + this.match(MySQLParser.USER); + this.state = 4371; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 4370; + this.ifExists(); + } + + this.state = 4373; + this.userAuthOption(); + this.state = 4378; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4374; + this.match(MySQLParser.COMMA); + this.state = 4375; + this.userAuthOption(); + this.state = 4380; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4395; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.REQUIRE) { + this.state = 4381; + this.match(MySQLParser.REQUIRE); + this.state = 4393; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.NONE: + this.state = 4382; + localctx.tlsNone = this.match(MySQLParser.NONE); + break; + case MySQLParser.SSL: + case MySQLParser.CIPHER: + case MySQLParser.ISSUER: + case MySQLParser.SUBJECT: + case MySQLParser.X509: + this.state = 4383; + this.tlsOption(); + this.state = 4390; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.AND || _la===MySQLParser.SSL || _la===MySQLParser.CIPHER || _la===MySQLParser.ISSUER || _la===MySQLParser.SUBJECT || _la===MySQLParser.X509) { + this.state = 4385; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AND) { + this.state = 4384; + this.match(MySQLParser.AND); + } + + this.state = 4387; + this.tlsOption(); + this.state = 4392; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 4403; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH) { + this.state = 4397; + this.match(MySQLParser.WITH); + this.state = 4399; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4398; + this.userResourceOption(); + this.state = 4401; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(((((_la - 426)) & ~0x1f) == 0 && ((1 << (_la - 426)) & ((1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 426)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 426)) | (1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 426)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 426)))) !== 0)); + } + + this.state = 4409; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.ACCOUNT || _la===MySQLParser.PASSWORD) { + this.state = 4407; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.PASSWORD: + this.state = 4405; + this.userPasswordOption(); + break; + case MySQLParser.ACCOUNT: + this.state = 4406; + this.userLockOption(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4411; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateUserContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createUser; + return this; +} + +CreateUserContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateUserContext.prototype.constructor = CreateUserContext; + + + +CreateUserContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function CreateUserMysqlV57Context(parser, ctx) { + CreateUserContext.call(this, parser); + this.tlsNone = null; // Token; + CreateUserContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CreateUserMysqlV57Context.prototype = Object.create(CreateUserContext.prototype); +CreateUserMysqlV57Context.prototype.constructor = CreateUserMysqlV57Context; + +MySQLParser.CreateUserMysqlV57Context = CreateUserMysqlV57Context; + +CreateUserMysqlV57Context.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateUserMysqlV57Context.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +CreateUserMysqlV57Context.prototype.userAuthOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserAuthOptionContext); + } else { + return this.getTypedRuleContext(UserAuthOptionContext,i); + } +}; + +CreateUserMysqlV57Context.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; + +CreateUserMysqlV57Context.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +CreateUserMysqlV57Context.prototype.REQUIRE = function() { + return this.getToken(MySQLParser.REQUIRE, 0); +}; + +CreateUserMysqlV57Context.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +CreateUserMysqlV57Context.prototype.userPasswordOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserPasswordOptionContext); + } else { + return this.getTypedRuleContext(UserPasswordOptionContext,i); + } +}; + +CreateUserMysqlV57Context.prototype.userLockOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserLockOptionContext); + } else { + return this.getTypedRuleContext(UserLockOptionContext,i); + } +}; + +CreateUserMysqlV57Context.prototype.tlsOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TlsOptionContext); + } else { + return this.getTypedRuleContext(TlsOptionContext,i); + } +}; + +CreateUserMysqlV57Context.prototype.NONE = function() { + return this.getToken(MySQLParser.NONE, 0); +}; + +CreateUserMysqlV57Context.prototype.userResourceOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserResourceOptionContext); + } else { + return this.getTypedRuleContext(UserResourceOptionContext,i); + } +}; + +CreateUserMysqlV57Context.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.AND); + } else { + return this.getToken(MySQLParser.AND, i); + } +}; + +CreateUserMysqlV57Context.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateUserMysqlV57(this); + } +}; + +CreateUserMysqlV57Context.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateUserMysqlV57(this); + } +}; + +CreateUserMysqlV57Context.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateUserMysqlV57(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CreateUserMysqlV56Context(parser, ctx) { + CreateUserContext.call(this, parser); + CreateUserContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CreateUserMysqlV56Context.prototype = Object.create(CreateUserContext.prototype); +CreateUserMysqlV56Context.prototype.constructor = CreateUserMysqlV56Context; + +MySQLParser.CreateUserMysqlV56Context = CreateUserMysqlV56Context; + +CreateUserMysqlV56Context.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateUserMysqlV56Context.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +CreateUserMysqlV56Context.prototype.userAuthOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserAuthOptionContext); + } else { + return this.getTypedRuleContext(UserAuthOptionContext,i); + } +}; + +CreateUserMysqlV56Context.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +CreateUserMysqlV56Context.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateUserMysqlV56(this); + } +}; + +CreateUserMysqlV56Context.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateUserMysqlV56(this); + } +}; + +CreateUserMysqlV56Context.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateUserMysqlV56(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.CreateUserContext = CreateUserContext; + +MySQLParser.prototype.createUser = function() { + + var localctx = new CreateUserContext(this, this._ctx, this.state); + this.enterRule(localctx, 384, MySQLParser.RULE_createUser); + var _la = 0; // Token type + try { + this.state = 4468; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,651,this._ctx); + switch(la_) { + case 1: + localctx = new CreateUserMysqlV56Context(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4414; + this.match(MySQLParser.CREATE); + this.state = 4415; + this.match(MySQLParser.USER); + this.state = 4416; + this.userAuthOption(); + this.state = 4421; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4417; + this.match(MySQLParser.COMMA); + this.state = 4418; + this.userAuthOption(); + this.state = 4423; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + localctx = new CreateUserMysqlV57Context(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4424; + this.match(MySQLParser.CREATE); + this.state = 4425; + this.match(MySQLParser.USER); + this.state = 4427; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 4426; + this.ifNotExists(); + } + + this.state = 4429; + this.userAuthOption(); + this.state = 4434; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4430; + this.match(MySQLParser.COMMA); + this.state = 4431; + this.userAuthOption(); + this.state = 4436; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4451; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.REQUIRE) { + this.state = 4437; + this.match(MySQLParser.REQUIRE); + this.state = 4449; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.NONE: + this.state = 4438; + localctx.tlsNone = this.match(MySQLParser.NONE); + break; + case MySQLParser.SSL: + case MySQLParser.CIPHER: + case MySQLParser.ISSUER: + case MySQLParser.SUBJECT: + case MySQLParser.X509: + this.state = 4439; + this.tlsOption(); + this.state = 4446; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.AND || _la===MySQLParser.SSL || _la===MySQLParser.CIPHER || _la===MySQLParser.ISSUER || _la===MySQLParser.SUBJECT || _la===MySQLParser.X509) { + this.state = 4441; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AND) { + this.state = 4440; + this.match(MySQLParser.AND); + } + + this.state = 4443; + this.tlsOption(); + this.state = 4448; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 4459; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH) { + this.state = 4453; + this.match(MySQLParser.WITH); + this.state = 4455; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4454; + this.userResourceOption(); + this.state = 4457; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(((((_la - 426)) & ~0x1f) == 0 && ((1 << (_la - 426)) & ((1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 426)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 426)) | (1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 426)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 426)))) !== 0)); + } + + this.state = 4465; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.ACCOUNT || _la===MySQLParser.PASSWORD) { + this.state = 4463; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.PASSWORD: + this.state = 4461; + this.userPasswordOption(); + break; + case MySQLParser.ACCOUNT: + this.state = 4462; + this.userLockOption(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4467; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropUserContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dropUser; + return this; +} + +DropUserContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropUserContext.prototype.constructor = DropUserContext; + +DropUserContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +DropUserContext.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +DropUserContext.prototype.userName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserNameContext); + } else { + return this.getTypedRuleContext(UserNameContext,i); + } +}; + +DropUserContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropUserContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +DropUserContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDropUser(this); + } +}; + +DropUserContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDropUser(this); + } +}; + +DropUserContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDropUser(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DropUserContext = DropUserContext; + +MySQLParser.prototype.dropUser = function() { + + var localctx = new DropUserContext(this, this._ctx, this.state); + this.enterRule(localctx, 386, MySQLParser.RULE_dropUser); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4470; + this.match(MySQLParser.DROP); + this.state = 4471; + this.match(MySQLParser.USER); + this.state = 4473; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 4472; + this.ifExists(); + } + + this.state = 4475; + this.userName(); + this.state = 4480; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4476; + this.match(MySQLParser.COMMA); + this.state = 4477; + this.userName(); + this.state = 4482; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function GrantStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_grantStatement; + this.privilegeObject = null; // Token + this.tlsNone = null; // Token + return this; +} + +GrantStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +GrantStatementContext.prototype.constructor = GrantStatementContext; + +GrantStatementContext.prototype.GRANT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.GRANT); + } else { + return this.getToken(MySQLParser.GRANT, i); + } +}; + + +GrantStatementContext.prototype.privelegeClause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PrivelegeClauseContext); + } else { + return this.getTypedRuleContext(PrivelegeClauseContext,i); + } +}; + +GrantStatementContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +GrantStatementContext.prototype.privilegeLevel = function() { + return this.getTypedRuleContext(PrivilegeLevelContext,0); +}; + +GrantStatementContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +GrantStatementContext.prototype.userAuthOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserAuthOptionContext); + } else { + return this.getTypedRuleContext(UserAuthOptionContext,i); + } +}; + +GrantStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +GrantStatementContext.prototype.REQUIRE = function() { + return this.getToken(MySQLParser.REQUIRE, 0); +}; + +GrantStatementContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +GrantStatementContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +GrantStatementContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +GrantStatementContext.prototype.PROCEDURE = function() { + return this.getToken(MySQLParser.PROCEDURE, 0); +}; + +GrantStatementContext.prototype.tlsOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TlsOptionContext); + } else { + return this.getTypedRuleContext(TlsOptionContext,i); + } +}; + +GrantStatementContext.prototype.NONE = function() { + return this.getToken(MySQLParser.NONE, 0); +}; + +GrantStatementContext.prototype.OPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.OPTION); + } else { + return this.getToken(MySQLParser.OPTION, i); + } +}; + + +GrantStatementContext.prototype.userResourceOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserResourceOptionContext); + } else { + return this.getTypedRuleContext(UserResourceOptionContext,i); + } +}; + +GrantStatementContext.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.AND); + } else { + return this.getToken(MySQLParser.AND, i); + } +}; + + +GrantStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterGrantStatement(this); + } +}; + +GrantStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitGrantStatement(this); + } +}; + +GrantStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitGrantStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.GrantStatementContext = GrantStatementContext; + +MySQLParser.prototype.grantStatement = function() { + + var localctx = new GrantStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 388, MySQLParser.RULE_grantStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4483; + this.match(MySQLParser.GRANT); + this.state = 4484; + this.privelegeClause(); + this.state = 4489; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4485; + this.match(MySQLParser.COMMA); + this.state = 4486; + this.privelegeClause(); + this.state = 4491; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4492; + this.match(MySQLParser.ON); + this.state = 4494; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,655,this._ctx); + if(la_===1) { + this.state = 4493; + localctx.privilegeObject = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.PROCEDURE || _la===MySQLParser.TABLE || _la===MySQLParser.FUNCTION)) { + localctx.privilegeObject = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 4496; + this.privilegeLevel(); + this.state = 4497; + this.match(MySQLParser.TO); + this.state = 4498; + this.userAuthOption(); + this.state = 4503; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4499; + this.match(MySQLParser.COMMA); + this.state = 4500; + this.userAuthOption(); + this.state = 4505; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4520; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.REQUIRE) { + this.state = 4506; + this.match(MySQLParser.REQUIRE); + this.state = 4518; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.NONE: + this.state = 4507; + localctx.tlsNone = this.match(MySQLParser.NONE); + break; + case MySQLParser.SSL: + case MySQLParser.CIPHER: + case MySQLParser.ISSUER: + case MySQLParser.SUBJECT: + case MySQLParser.X509: + this.state = 4508; + this.tlsOption(); + this.state = 4515; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.AND || _la===MySQLParser.SSL || _la===MySQLParser.CIPHER || _la===MySQLParser.ISSUER || _la===MySQLParser.SUBJECT || _la===MySQLParser.X509) { + this.state = 4510; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AND) { + this.state = 4509; + this.match(MySQLParser.AND); + } + + this.state = 4512; + this.tlsOption(); + this.state = 4517; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 4531; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH) { + this.state = 4522; + this.match(MySQLParser.WITH); + this.state = 4528; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,662,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4526; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.GRANT: + this.state = 4523; + this.match(MySQLParser.GRANT); + this.state = 4524; + this.match(MySQLParser.OPTION); + break; + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + this.state = 4525; + this.userResourceOption(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + this.state = 4530; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,662,this._ctx); + } + + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function GrantProxyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_grantProxy; + this.fromFirst = null; // UserNameContext + this.toFirst = null; // UserNameContext + this._userName = null; // UserNameContext + this.toOther = []; // of UserNameContexts + return this; +} + +GrantProxyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +GrantProxyContext.prototype.constructor = GrantProxyContext; + +GrantProxyContext.prototype.GRANT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.GRANT); + } else { + return this.getToken(MySQLParser.GRANT, i); + } +}; + + +GrantProxyContext.prototype.PROXY = function() { + return this.getToken(MySQLParser.PROXY, 0); +}; + +GrantProxyContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +GrantProxyContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +GrantProxyContext.prototype.userName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserNameContext); + } else { + return this.getTypedRuleContext(UserNameContext,i); + } +}; + +GrantProxyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +GrantProxyContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +GrantProxyContext.prototype.OPTION = function() { + return this.getToken(MySQLParser.OPTION, 0); +}; + +GrantProxyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterGrantProxy(this); + } +}; + +GrantProxyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitGrantProxy(this); + } +}; + +GrantProxyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitGrantProxy(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.GrantProxyContext = GrantProxyContext; + +MySQLParser.prototype.grantProxy = function() { + + var localctx = new GrantProxyContext(this, this._ctx, this.state); + this.enterRule(localctx, 390, MySQLParser.RULE_grantProxy); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4533; + this.match(MySQLParser.GRANT); + this.state = 4534; + this.match(MySQLParser.PROXY); + this.state = 4535; + this.match(MySQLParser.ON); + this.state = 4536; + localctx.fromFirst = this.userName(); + this.state = 4537; + this.match(MySQLParser.TO); + this.state = 4538; + localctx.toFirst = this.userName(); + this.state = 4543; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4539; + this.match(MySQLParser.COMMA); + this.state = 4540; + localctx._userName = this.userName(); + localctx.toOther.push(localctx._userName); + this.state = 4545; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4549; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH) { + this.state = 4546; + this.match(MySQLParser.WITH); + this.state = 4547; + this.match(MySQLParser.GRANT); + this.state = 4548; + this.match(MySQLParser.OPTION); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RenameUserContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_renameUser; + return this; +} + +RenameUserContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RenameUserContext.prototype.constructor = RenameUserContext; + +RenameUserContext.prototype.RENAME = function() { + return this.getToken(MySQLParser.RENAME, 0); +}; + +RenameUserContext.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +RenameUserContext.prototype.renameUserClause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(RenameUserClauseContext); + } else { + return this.getTypedRuleContext(RenameUserClauseContext,i); + } +}; + +RenameUserContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +RenameUserContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRenameUser(this); + } +}; + +RenameUserContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRenameUser(this); + } +}; + +RenameUserContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRenameUser(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RenameUserContext = RenameUserContext; + +MySQLParser.prototype.renameUser = function() { + + var localctx = new RenameUserContext(this, this._ctx, this.state); + this.enterRule(localctx, 392, MySQLParser.RULE_renameUser); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4551; + this.match(MySQLParser.RENAME); + this.state = 4552; + this.match(MySQLParser.USER); + this.state = 4553; + this.renameUserClause(); + this.state = 4558; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4554; + this.match(MySQLParser.COMMA); + this.state = 4555; + this.renameUserClause(); + this.state = 4560; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RevokeStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_revokeStatement; + return this; +} + +RevokeStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RevokeStatementContext.prototype.constructor = RevokeStatementContext; + + + +RevokeStatementContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function DetailRevokeContext(parser, ctx) { + RevokeStatementContext.call(this, parser); + this.privilegeObject = null; // Token; + RevokeStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DetailRevokeContext.prototype = Object.create(RevokeStatementContext.prototype); +DetailRevokeContext.prototype.constructor = DetailRevokeContext; + +MySQLParser.DetailRevokeContext = DetailRevokeContext; + +DetailRevokeContext.prototype.REVOKE = function() { + return this.getToken(MySQLParser.REVOKE, 0); +}; + +DetailRevokeContext.prototype.privelegeClause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PrivelegeClauseContext); + } else { + return this.getTypedRuleContext(PrivelegeClauseContext,i); + } +}; + +DetailRevokeContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +DetailRevokeContext.prototype.privilegeLevel = function() { + return this.getTypedRuleContext(PrivilegeLevelContext,0); +}; + +DetailRevokeContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +DetailRevokeContext.prototype.userName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserNameContext); + } else { + return this.getTypedRuleContext(UserNameContext,i); + } +}; + +DetailRevokeContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +DetailRevokeContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +DetailRevokeContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +DetailRevokeContext.prototype.PROCEDURE = function() { + return this.getToken(MySQLParser.PROCEDURE, 0); +}; +DetailRevokeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDetailRevoke(this); + } +}; + +DetailRevokeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDetailRevoke(this); + } +}; + +DetailRevokeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDetailRevoke(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShortRevokeContext(parser, ctx) { + RevokeStatementContext.call(this, parser); + RevokeStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShortRevokeContext.prototype = Object.create(RevokeStatementContext.prototype); +ShortRevokeContext.prototype.constructor = ShortRevokeContext; + +MySQLParser.ShortRevokeContext = ShortRevokeContext; + +ShortRevokeContext.prototype.REVOKE = function() { + return this.getToken(MySQLParser.REVOKE, 0); +}; + +ShortRevokeContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +ShortRevokeContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ShortRevokeContext.prototype.GRANT = function() { + return this.getToken(MySQLParser.GRANT, 0); +}; + +ShortRevokeContext.prototype.OPTION = function() { + return this.getToken(MySQLParser.OPTION, 0); +}; + +ShortRevokeContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +ShortRevokeContext.prototype.userName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserNameContext); + } else { + return this.getTypedRuleContext(UserNameContext,i); + } +}; + +ShortRevokeContext.prototype.PRIVILEGES = function() { + return this.getToken(MySQLParser.PRIVILEGES, 0); +}; +ShortRevokeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShortRevoke(this); + } +}; + +ShortRevokeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShortRevoke(this); + } +}; + +ShortRevokeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShortRevoke(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.RevokeStatementContext = RevokeStatementContext; + +MySQLParser.prototype.revokeStatement = function() { + + var localctx = new RevokeStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 394, MySQLParser.RULE_revokeStatement); + var _la = 0; // Token type + try { + this.state = 4601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,672,this._ctx); + switch(la_) { + case 1: + localctx = new DetailRevokeContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4561; + this.match(MySQLParser.REVOKE); + this.state = 4562; + this.privelegeClause(); + this.state = 4567; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4563; + this.match(MySQLParser.COMMA); + this.state = 4564; + this.privelegeClause(); + this.state = 4569; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4570; + this.match(MySQLParser.ON); + this.state = 4572; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,668,this._ctx); + if(la_===1) { + this.state = 4571; + localctx.privilegeObject = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.PROCEDURE || _la===MySQLParser.TABLE || _la===MySQLParser.FUNCTION)) { + localctx.privilegeObject = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 4574; + this.privilegeLevel(); + this.state = 4575; + this.match(MySQLParser.FROM); + this.state = 4576; + this.userName(); + this.state = 4581; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4577; + this.match(MySQLParser.COMMA); + this.state = 4578; + this.userName(); + this.state = 4583; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + localctx = new ShortRevokeContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4584; + this.match(MySQLParser.REVOKE); + this.state = 4585; + this.match(MySQLParser.ALL); + this.state = 4587; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PRIVILEGES) { + this.state = 4586; + this.match(MySQLParser.PRIVILEGES); + } + + this.state = 4589; + this.match(MySQLParser.COMMA); + this.state = 4590; + this.match(MySQLParser.GRANT); + this.state = 4591; + this.match(MySQLParser.OPTION); + this.state = 4592; + this.match(MySQLParser.FROM); + this.state = 4593; + this.userName(); + this.state = 4598; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4594; + this.match(MySQLParser.COMMA); + this.state = 4595; + this.userName(); + this.state = 4600; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RevokeProxyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_revokeProxy; + this.onUser = null; // UserNameContext + this.fromFirst = null; // UserNameContext + this._userName = null; // UserNameContext + this.fromOther = []; // of UserNameContexts + return this; +} + +RevokeProxyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RevokeProxyContext.prototype.constructor = RevokeProxyContext; + +RevokeProxyContext.prototype.REVOKE = function() { + return this.getToken(MySQLParser.REVOKE, 0); +}; + +RevokeProxyContext.prototype.PROXY = function() { + return this.getToken(MySQLParser.PROXY, 0); +}; + +RevokeProxyContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +RevokeProxyContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +RevokeProxyContext.prototype.userName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserNameContext); + } else { + return this.getTypedRuleContext(UserNameContext,i); + } +}; + +RevokeProxyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +RevokeProxyContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRevokeProxy(this); + } +}; + +RevokeProxyContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRevokeProxy(this); + } +}; + +RevokeProxyContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRevokeProxy(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RevokeProxyContext = RevokeProxyContext; + +MySQLParser.prototype.revokeProxy = function() { + + var localctx = new RevokeProxyContext(this, this._ctx, this.state); + this.enterRule(localctx, 396, MySQLParser.RULE_revokeProxy); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4603; + this.match(MySQLParser.REVOKE); + this.state = 4604; + this.match(MySQLParser.PROXY); + this.state = 4605; + this.match(MySQLParser.ON); + this.state = 4606; + localctx.onUser = this.userName(); + this.state = 4607; + this.match(MySQLParser.FROM); + this.state = 4608; + localctx.fromFirst = this.userName(); + this.state = 4613; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4609; + this.match(MySQLParser.COMMA); + this.state = 4610; + localctx._userName = this.userName(); + localctx.fromOther.push(localctx._userName); + this.state = 4615; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SetPasswordStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_setPasswordStatement; + return this; +} + +SetPasswordStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SetPasswordStatementContext.prototype.constructor = SetPasswordStatementContext; + +SetPasswordStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SetPasswordStatementContext.prototype.PASSWORD = function() { + return this.getToken(MySQLParser.PASSWORD, 0); +}; + +SetPasswordStatementContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +SetPasswordStatementContext.prototype.passwordFunctionClause = function() { + return this.getTypedRuleContext(PasswordFunctionClauseContext,0); +}; + +SetPasswordStatementContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +SetPasswordStatementContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +SetPasswordStatementContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; + +SetPasswordStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetPasswordStatement(this); + } +}; + +SetPasswordStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetPasswordStatement(this); + } +}; + +SetPasswordStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetPasswordStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SetPasswordStatementContext = SetPasswordStatementContext; + +MySQLParser.prototype.setPasswordStatement = function() { + + var localctx = new SetPasswordStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 398, MySQLParser.RULE_setPasswordStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4616; + this.match(MySQLParser.SET); + this.state = 4617; + this.match(MySQLParser.PASSWORD); + this.state = 4620; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 4618; + this.match(MySQLParser.FOR); + this.state = 4619; + this.userName(); + } + + this.state = 4622; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 4625; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.OLD_PASSWORD: + case MySQLParser.PASSWORD: + this.state = 4623; + this.passwordFunctionClause(); + break; + case MySQLParser.STRING_LITERAL: + this.state = 4624; + this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UserSpecificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_userSpecification; + return this; +} + +UserSpecificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UserSpecificationContext.prototype.constructor = UserSpecificationContext; + +UserSpecificationContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; + +UserSpecificationContext.prototype.userPasswordOption = function() { + return this.getTypedRuleContext(UserPasswordOptionContext,0); +}; + +UserSpecificationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUserSpecification(this); + } +}; + +UserSpecificationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUserSpecification(this); + } +}; + +UserSpecificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUserSpecification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UserSpecificationContext = UserSpecificationContext; + +MySQLParser.prototype.userSpecification = function() { + + var localctx = new UserSpecificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 400, MySQLParser.RULE_userSpecification); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4627; + this.userName(); + this.state = 4628; + this.userPasswordOption(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UserAuthOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_userAuthOption; + return this; +} + +UserAuthOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UserAuthOptionContext.prototype.constructor = UserAuthOptionContext; + + + +UserAuthOptionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SimpleAuthOptionContext(parser, ctx) { + UserAuthOptionContext.call(this, parser); + UserAuthOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SimpleAuthOptionContext.prototype = Object.create(UserAuthOptionContext.prototype); +SimpleAuthOptionContext.prototype.constructor = SimpleAuthOptionContext; + +MySQLParser.SimpleAuthOptionContext = SimpleAuthOptionContext; + +SimpleAuthOptionContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; +SimpleAuthOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleAuthOption(this); + } +}; + +SimpleAuthOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleAuthOption(this); + } +}; + +SimpleAuthOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleAuthOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PasswordAuthOptionContext(parser, ctx) { + UserAuthOptionContext.call(this, parser); + this.hashed = null; // Token; + UserAuthOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PasswordAuthOptionContext.prototype = Object.create(UserAuthOptionContext.prototype); +PasswordAuthOptionContext.prototype.constructor = PasswordAuthOptionContext; + +MySQLParser.PasswordAuthOptionContext = PasswordAuthOptionContext; + +PasswordAuthOptionContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; + +PasswordAuthOptionContext.prototype.IDENTIFIED = function() { + return this.getToken(MySQLParser.IDENTIFIED, 0); +}; + +PasswordAuthOptionContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +PasswordAuthOptionContext.prototype.PASSWORD = function() { + return this.getToken(MySQLParser.PASSWORD, 0); +}; + +PasswordAuthOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +PasswordAuthOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPasswordAuthOption(this); + } +}; + +PasswordAuthOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPasswordAuthOption(this); + } +}; + +PasswordAuthOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPasswordAuthOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function StringAuthOptionContext(parser, ctx) { + UserAuthOptionContext.call(this, parser); + UserAuthOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +StringAuthOptionContext.prototype = Object.create(UserAuthOptionContext.prototype); +StringAuthOptionContext.prototype.constructor = StringAuthOptionContext; + +MySQLParser.StringAuthOptionContext = StringAuthOptionContext; + +StringAuthOptionContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; + +StringAuthOptionContext.prototype.IDENTIFIED = function() { + return this.getToken(MySQLParser.IDENTIFIED, 0); +}; + +StringAuthOptionContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +StringAuthOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +StringAuthOptionContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +StringAuthOptionContext.prototype.authPlugin = function() { + return this.getTypedRuleContext(AuthPluginContext,0); +}; +StringAuthOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStringAuthOption(this); + } +}; + +StringAuthOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStringAuthOption(this); + } +}; + +StringAuthOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStringAuthOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function HashAuthOptionContext(parser, ctx) { + UserAuthOptionContext.call(this, parser); + UserAuthOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +HashAuthOptionContext.prototype = Object.create(UserAuthOptionContext.prototype); +HashAuthOptionContext.prototype.constructor = HashAuthOptionContext; + +MySQLParser.HashAuthOptionContext = HashAuthOptionContext; + +HashAuthOptionContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; + +HashAuthOptionContext.prototype.IDENTIFIED = function() { + return this.getToken(MySQLParser.IDENTIFIED, 0); +}; + +HashAuthOptionContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +HashAuthOptionContext.prototype.authPlugin = function() { + return this.getTypedRuleContext(AuthPluginContext,0); +}; + +HashAuthOptionContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +HashAuthOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +HashAuthOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHashAuthOption(this); + } +}; + +HashAuthOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHashAuthOption(this); + } +}; + +HashAuthOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHashAuthOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.UserAuthOptionContext = UserAuthOptionContext; + +MySQLParser.prototype.userAuthOption = function() { + + var localctx = new UserAuthOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 402, MySQLParser.RULE_userAuthOption); + var _la = 0; // Token type + try { + this.state = 4654; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,678,this._ctx); + switch(la_) { + case 1: + localctx = new PasswordAuthOptionContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4630; + this.userName(); + this.state = 4631; + this.match(MySQLParser.IDENTIFIED); + this.state = 4632; + this.match(MySQLParser.BY); + this.state = 4633; + this.match(MySQLParser.PASSWORD); + this.state = 4634; + localctx.hashed = this.match(MySQLParser.STRING_LITERAL); + break; + + case 2: + localctx = new StringAuthOptionContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4636; + this.userName(); + this.state = 4637; + this.match(MySQLParser.IDENTIFIED); + this.state = 4640; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH) { + this.state = 4638; + this.match(MySQLParser.WITH); + this.state = 4639; + this.authPlugin(); + } + + this.state = 4642; + this.match(MySQLParser.BY); + this.state = 4643; + this.match(MySQLParser.STRING_LITERAL); + break; + + case 3: + localctx = new HashAuthOptionContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 4645; + this.userName(); + this.state = 4646; + this.match(MySQLParser.IDENTIFIED); + this.state = 4647; + this.match(MySQLParser.WITH); + this.state = 4648; + this.authPlugin(); + this.state = 4651; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 4649; + this.match(MySQLParser.AS); + this.state = 4650; + this.match(MySQLParser.STRING_LITERAL); + } + + break; + + case 4: + localctx = new SimpleAuthOptionContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 4653; + this.userName(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TlsOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tlsOption; + return this; +} + +TlsOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TlsOptionContext.prototype.constructor = TlsOptionContext; + +TlsOptionContext.prototype.SSL = function() { + return this.getToken(MySQLParser.SSL, 0); +}; + +TlsOptionContext.prototype.X509 = function() { + return this.getToken(MySQLParser.X509, 0); +}; + +TlsOptionContext.prototype.CIPHER = function() { + return this.getToken(MySQLParser.CIPHER, 0); +}; + +TlsOptionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +TlsOptionContext.prototype.ISSUER = function() { + return this.getToken(MySQLParser.ISSUER, 0); +}; + +TlsOptionContext.prototype.SUBJECT = function() { + return this.getToken(MySQLParser.SUBJECT, 0); +}; + +TlsOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTlsOption(this); + } +}; + +TlsOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTlsOption(this); + } +}; + +TlsOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTlsOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TlsOptionContext = TlsOptionContext; + +MySQLParser.prototype.tlsOption = function() { + + var localctx = new TlsOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 404, MySQLParser.RULE_tlsOption); + try { + this.state = 4664; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SSL: + this.enterOuterAlt(localctx, 1); + this.state = 4656; + this.match(MySQLParser.SSL); + break; + case MySQLParser.X509: + this.enterOuterAlt(localctx, 2); + this.state = 4657; + this.match(MySQLParser.X509); + break; + case MySQLParser.CIPHER: + this.enterOuterAlt(localctx, 3); + this.state = 4658; + this.match(MySQLParser.CIPHER); + this.state = 4659; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.ISSUER: + this.enterOuterAlt(localctx, 4); + this.state = 4660; + this.match(MySQLParser.ISSUER); + this.state = 4661; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.SUBJECT: + this.enterOuterAlt(localctx, 5); + this.state = 4662; + this.match(MySQLParser.SUBJECT); + this.state = 4663; + this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UserResourceOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_userResourceOption; + return this; +} + +UserResourceOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UserResourceOptionContext.prototype.constructor = UserResourceOptionContext; + +UserResourceOptionContext.prototype.MAX_QUERIES_PER_HOUR = function() { + return this.getToken(MySQLParser.MAX_QUERIES_PER_HOUR, 0); +}; + +UserResourceOptionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +UserResourceOptionContext.prototype.MAX_UPDATES_PER_HOUR = function() { + return this.getToken(MySQLParser.MAX_UPDATES_PER_HOUR, 0); +}; + +UserResourceOptionContext.prototype.MAX_CONNECTIONS_PER_HOUR = function() { + return this.getToken(MySQLParser.MAX_CONNECTIONS_PER_HOUR, 0); +}; + +UserResourceOptionContext.prototype.MAX_USER_CONNECTIONS = function() { + return this.getToken(MySQLParser.MAX_USER_CONNECTIONS, 0); +}; + +UserResourceOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUserResourceOption(this); + } +}; + +UserResourceOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUserResourceOption(this); + } +}; + +UserResourceOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUserResourceOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UserResourceOptionContext = UserResourceOptionContext; + +MySQLParser.prototype.userResourceOption = function() { + + var localctx = new UserResourceOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 406, MySQLParser.RULE_userResourceOption); + try { + this.state = 4674; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.MAX_QUERIES_PER_HOUR: + this.enterOuterAlt(localctx, 1); + this.state = 4666; + this.match(MySQLParser.MAX_QUERIES_PER_HOUR); + this.state = 4667; + this.decimalLiteral(); + break; + case MySQLParser.MAX_UPDATES_PER_HOUR: + this.enterOuterAlt(localctx, 2); + this.state = 4668; + this.match(MySQLParser.MAX_UPDATES_PER_HOUR); + this.state = 4669; + this.decimalLiteral(); + break; + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + this.enterOuterAlt(localctx, 3); + this.state = 4670; + this.match(MySQLParser.MAX_CONNECTIONS_PER_HOUR); + this.state = 4671; + this.decimalLiteral(); + break; + case MySQLParser.MAX_USER_CONNECTIONS: + this.enterOuterAlt(localctx, 4); + this.state = 4672; + this.match(MySQLParser.MAX_USER_CONNECTIONS); + this.state = 4673; + this.decimalLiteral(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UserPasswordOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_userPasswordOption; + this.expireType = null; // Token + return this; +} + +UserPasswordOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UserPasswordOptionContext.prototype.constructor = UserPasswordOptionContext; + +UserPasswordOptionContext.prototype.PASSWORD = function() { + return this.getToken(MySQLParser.PASSWORD, 0); +}; + +UserPasswordOptionContext.prototype.EXPIRE = function() { + return this.getToken(MySQLParser.EXPIRE, 0); +}; + +UserPasswordOptionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +UserPasswordOptionContext.prototype.DAY = function() { + return this.getToken(MySQLParser.DAY, 0); +}; + +UserPasswordOptionContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +UserPasswordOptionContext.prototype.NEVER = function() { + return this.getToken(MySQLParser.NEVER, 0); +}; + +UserPasswordOptionContext.prototype.INTERVAL = function() { + return this.getToken(MySQLParser.INTERVAL, 0); +}; + +UserPasswordOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUserPasswordOption(this); + } +}; + +UserPasswordOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUserPasswordOption(this); + } +}; + +UserPasswordOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUserPasswordOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UserPasswordOptionContext = UserPasswordOptionContext; + +MySQLParser.prototype.userPasswordOption = function() { + + var localctx = new UserPasswordOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 408, MySQLParser.RULE_userPasswordOption); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4676; + this.match(MySQLParser.PASSWORD); + this.state = 4677; + this.match(MySQLParser.EXPIRE); + this.state = 4684; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySQLParser.DEFAULT: + this.state = 4678; + localctx.expireType = this.match(MySQLParser.DEFAULT); + break; + case MySQLParser.NEVER: + this.state = 4679; + localctx.expireType = this.match(MySQLParser.NEVER); + break; + case MySQLParser.INTERVAL: + this.state = 4680; + localctx.expireType = this.match(MySQLParser.INTERVAL); + this.state = 4681; + this.decimalLiteral(); + this.state = 4682; + this.match(MySQLParser.DAY); + break; + case MySQLParser.EOF: + case MySQLParser.ALTER: + case MySQLParser.ANALYZE: + case MySQLParser.CALL: + case MySQLParser.CHANGE: + case MySQLParser.CHECK: + case MySQLParser.CREATE: + case MySQLParser.DELETE: + case MySQLParser.DESC: + case MySQLParser.DESCRIBE: + case MySQLParser.DROP: + case MySQLParser.EXPLAIN: + case MySQLParser.GET: + case MySQLParser.GRANT: + case MySQLParser.INSERT: + case MySQLParser.KILL: + case MySQLParser.LOAD: + case MySQLParser.LOCK: + case MySQLParser.OPTIMIZE: + case MySQLParser.PURGE: + case MySQLParser.RELEASE: + case MySQLParser.RENAME: + case MySQLParser.REPLACE: + case MySQLParser.RESIGNAL: + case MySQLParser.REVOKE: + case MySQLParser.SELECT: + case MySQLParser.SET: + case MySQLParser.SHOW: + case MySQLParser.SIGNAL: + case MySQLParser.UNLOCK: + case MySQLParser.UPDATE: + case MySQLParser.USE: + case MySQLParser.ACCOUNT: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.CACHE: + case MySQLParser.CHECKSUM: + case MySQLParser.COMMIT: + case MySQLParser.DEALLOCATE: + case MySQLParser.DO: + case MySQLParser.FLUSH: + case MySQLParser.HANDLER: + case MySQLParser.HELP: + case MySQLParser.INSTALL: + case MySQLParser.PASSWORD: + case MySQLParser.PREPARE: + case MySQLParser.REPAIR: + case MySQLParser.RESET: + case MySQLParser.ROLLBACK: + case MySQLParser.SAVEPOINT: + case MySQLParser.START: + case MySQLParser.STOP: + case MySQLParser.TRUNCATE: + case MySQLParser.UNINSTALL: + case MySQLParser.XA: + case MySQLParser.EXECUTE: + case MySQLParser.SHUTDOWN: + case MySQLParser.MINUSMINUS: + case MySQLParser.LR_BRACKET: + case MySQLParser.COMMA: + case MySQLParser.SEMI: + break; + default: + break; + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UserLockOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_userLockOption; + this.lockType = null; // Token + return this; +} + +UserLockOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UserLockOptionContext.prototype.constructor = UserLockOptionContext; + +UserLockOptionContext.prototype.ACCOUNT = function() { + return this.getToken(MySQLParser.ACCOUNT, 0); +}; + +UserLockOptionContext.prototype.LOCK = function() { + return this.getToken(MySQLParser.LOCK, 0); +}; + +UserLockOptionContext.prototype.UNLOCK = function() { + return this.getToken(MySQLParser.UNLOCK, 0); +}; + +UserLockOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUserLockOption(this); + } +}; + +UserLockOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUserLockOption(this); + } +}; + +UserLockOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUserLockOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UserLockOptionContext = UserLockOptionContext; + +MySQLParser.prototype.userLockOption = function() { + + var localctx = new UserLockOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 410, MySQLParser.RULE_userLockOption); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4686; + this.match(MySQLParser.ACCOUNT); + this.state = 4687; + localctx.lockType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.LOCK || _la===MySQLParser.UNLOCK)) { + localctx.lockType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PrivelegeClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_privelegeClause; + return this; +} + +PrivelegeClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PrivelegeClauseContext.prototype.constructor = PrivelegeClauseContext; + +PrivelegeClauseContext.prototype.privilege = function() { + return this.getTypedRuleContext(PrivilegeContext,0); +}; + +PrivelegeClauseContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PrivelegeClauseContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +PrivelegeClauseContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PrivelegeClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPrivelegeClause(this); + } +}; + +PrivelegeClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPrivelegeClause(this); + } +}; + +PrivelegeClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPrivelegeClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PrivelegeClauseContext = PrivelegeClauseContext; + +MySQLParser.prototype.privelegeClause = function() { + + var localctx = new PrivelegeClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 412, MySQLParser.RULE_privelegeClause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4689; + this.privilege(); + this.state = 4694; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LR_BRACKET) { + this.state = 4690; + this.match(MySQLParser.LR_BRACKET); + this.state = 4691; + this.uidList(); + this.state = 4692; + this.match(MySQLParser.RR_BRACKET); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PrivilegeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_privilege; + return this; +} + +PrivilegeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PrivilegeContext.prototype.constructor = PrivilegeContext; + +PrivilegeContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +PrivilegeContext.prototype.PRIVILEGES = function() { + return this.getToken(MySQLParser.PRIVILEGES, 0); +}; + +PrivilegeContext.prototype.ALTER = function() { + return this.getToken(MySQLParser.ALTER, 0); +}; + +PrivilegeContext.prototype.ROUTINE = function() { + return this.getToken(MySQLParser.ROUTINE, 0); +}; + +PrivilegeContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +PrivilegeContext.prototype.TEMPORARY = function() { + return this.getToken(MySQLParser.TEMPORARY, 0); +}; + +PrivilegeContext.prototype.TABLES = function() { + return this.getToken(MySQLParser.TABLES, 0); +}; + +PrivilegeContext.prototype.VIEW = function() { + return this.getToken(MySQLParser.VIEW, 0); +}; + +PrivilegeContext.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +PrivilegeContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +PrivilegeContext.prototype.ROLE = function() { + return this.getToken(MySQLParser.ROLE, 0); +}; + +PrivilegeContext.prototype.DELETE = function() { + return this.getToken(MySQLParser.DELETE, 0); +}; + +PrivilegeContext.prototype.DROP = function() { + return this.getToken(MySQLParser.DROP, 0); +}; + +PrivilegeContext.prototype.EVENT = function() { + return this.getToken(MySQLParser.EVENT, 0); +}; + +PrivilegeContext.prototype.EXECUTE = function() { + return this.getToken(MySQLParser.EXECUTE, 0); +}; + +PrivilegeContext.prototype.FILE = function() { + return this.getToken(MySQLParser.FILE, 0); +}; + +PrivilegeContext.prototype.GRANT = function() { + return this.getToken(MySQLParser.GRANT, 0); +}; + +PrivilegeContext.prototype.OPTION = function() { + return this.getToken(MySQLParser.OPTION, 0); +}; + +PrivilegeContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +PrivilegeContext.prototype.INSERT = function() { + return this.getToken(MySQLParser.INSERT, 0); +}; + +PrivilegeContext.prototype.LOCK = function() { + return this.getToken(MySQLParser.LOCK, 0); +}; + +PrivilegeContext.prototype.PROCESS = function() { + return this.getToken(MySQLParser.PROCESS, 0); +}; + +PrivilegeContext.prototype.PROXY = function() { + return this.getToken(MySQLParser.PROXY, 0); +}; + +PrivilegeContext.prototype.REFERENCES = function() { + return this.getToken(MySQLParser.REFERENCES, 0); +}; + +PrivilegeContext.prototype.RELOAD = function() { + return this.getToken(MySQLParser.RELOAD, 0); +}; + +PrivilegeContext.prototype.REPLICATION = function() { + return this.getToken(MySQLParser.REPLICATION, 0); +}; + +PrivilegeContext.prototype.CLIENT = function() { + return this.getToken(MySQLParser.CLIENT, 0); +}; + +PrivilegeContext.prototype.SLAVE = function() { + return this.getToken(MySQLParser.SLAVE, 0); +}; + +PrivilegeContext.prototype.SELECT = function() { + return this.getToken(MySQLParser.SELECT, 0); +}; + +PrivilegeContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +PrivilegeContext.prototype.DATABASES = function() { + return this.getToken(MySQLParser.DATABASES, 0); +}; + +PrivilegeContext.prototype.SHUTDOWN = function() { + return this.getToken(MySQLParser.SHUTDOWN, 0); +}; + +PrivilegeContext.prototype.SUPER = function() { + return this.getToken(MySQLParser.SUPER, 0); +}; + +PrivilegeContext.prototype.TRIGGER = function() { + return this.getToken(MySQLParser.TRIGGER, 0); +}; + +PrivilegeContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +PrivilegeContext.prototype.USAGE = function() { + return this.getToken(MySQLParser.USAGE, 0); +}; + +PrivilegeContext.prototype.AUDIT_ADMIN = function() { + return this.getToken(MySQLParser.AUDIT_ADMIN, 0); +}; + +PrivilegeContext.prototype.BACKUP_ADMIN = function() { + return this.getToken(MySQLParser.BACKUP_ADMIN, 0); +}; + +PrivilegeContext.prototype.BINLOG_ADMIN = function() { + return this.getToken(MySQLParser.BINLOG_ADMIN, 0); +}; + +PrivilegeContext.prototype.BINLOG_ENCRYPTION_ADMIN = function() { + return this.getToken(MySQLParser.BINLOG_ENCRYPTION_ADMIN, 0); +}; + +PrivilegeContext.prototype.CLONE_ADMIN = function() { + return this.getToken(MySQLParser.CLONE_ADMIN, 0); +}; + +PrivilegeContext.prototype.CONNECTION_ADMIN = function() { + return this.getToken(MySQLParser.CONNECTION_ADMIN, 0); +}; + +PrivilegeContext.prototype.ENCRYPTION_KEY_ADMIN = function() { + return this.getToken(MySQLParser.ENCRYPTION_KEY_ADMIN, 0); +}; + +PrivilegeContext.prototype.FIREWALL_ADMIN = function() { + return this.getToken(MySQLParser.FIREWALL_ADMIN, 0); +}; + +PrivilegeContext.prototype.FIREWALL_USER = function() { + return this.getToken(MySQLParser.FIREWALL_USER, 0); +}; + +PrivilegeContext.prototype.GROUP_REPLICATION_ADMIN = function() { + return this.getToken(MySQLParser.GROUP_REPLICATION_ADMIN, 0); +}; + +PrivilegeContext.prototype.INNODB_REDO_LOG_ARCHIVE = function() { + return this.getToken(MySQLParser.INNODB_REDO_LOG_ARCHIVE, 0); +}; + +PrivilegeContext.prototype.NDB_STORED_USER = function() { + return this.getToken(MySQLParser.NDB_STORED_USER, 0); +}; + +PrivilegeContext.prototype.PERSIST_RO_VARIABLES_ADMIN = function() { + return this.getToken(MySQLParser.PERSIST_RO_VARIABLES_ADMIN, 0); +}; + +PrivilegeContext.prototype.REPLICATION_APPLIER = function() { + return this.getToken(MySQLParser.REPLICATION_APPLIER, 0); +}; + +PrivilegeContext.prototype.REPLICATION_SLAVE_ADMIN = function() { + return this.getToken(MySQLParser.REPLICATION_SLAVE_ADMIN, 0); +}; + +PrivilegeContext.prototype.RESOURCE_GROUP_ADMIN = function() { + return this.getToken(MySQLParser.RESOURCE_GROUP_ADMIN, 0); +}; + +PrivilegeContext.prototype.RESOURCE_GROUP_USER = function() { + return this.getToken(MySQLParser.RESOURCE_GROUP_USER, 0); +}; + +PrivilegeContext.prototype.ROLE_ADMIN = function() { + return this.getToken(MySQLParser.ROLE_ADMIN, 0); +}; + +PrivilegeContext.prototype.SESSION_VARIABLES_ADMIN = function() { + return this.getToken(MySQLParser.SESSION_VARIABLES_ADMIN, 0); +}; + +PrivilegeContext.prototype.SET_USER_ID = function() { + return this.getToken(MySQLParser.SET_USER_ID, 0); +}; + +PrivilegeContext.prototype.SHOW_ROUTINE = function() { + return this.getToken(MySQLParser.SHOW_ROUTINE, 0); +}; + +PrivilegeContext.prototype.SYSTEM_VARIABLES_ADMIN = function() { + return this.getToken(MySQLParser.SYSTEM_VARIABLES_ADMIN, 0); +}; + +PrivilegeContext.prototype.TABLE_ENCRYPTION_ADMIN = function() { + return this.getToken(MySQLParser.TABLE_ENCRYPTION_ADMIN, 0); +}; + +PrivilegeContext.prototype.VERSION_TOKEN_ADMIN = function() { + return this.getToken(MySQLParser.VERSION_TOKEN_ADMIN, 0); +}; + +PrivilegeContext.prototype.XA_RECOVER_ADMIN = function() { + return this.getToken(MySQLParser.XA_RECOVER_ADMIN, 0); +}; + +PrivilegeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPrivilege(this); + } +}; + +PrivilegeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPrivilege(this); + } +}; + +PrivilegeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPrivilege(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PrivilegeContext = PrivilegeContext; + +MySQLParser.prototype.privilege = function() { + + var localctx = new PrivilegeContext(this, this._ctx, this.state); + this.enterRule(localctx, 414, MySQLParser.RULE_privilege); + var _la = 0; // Token type + try { + this.state = 4767; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ALL: + this.enterOuterAlt(localctx, 1); + this.state = 4696; + this.match(MySQLParser.ALL); + this.state = 4698; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PRIVILEGES) { + this.state = 4697; + this.match(MySQLParser.PRIVILEGES); + } + + break; + case MySQLParser.ALTER: + this.enterOuterAlt(localctx, 2); + this.state = 4700; + this.match(MySQLParser.ALTER); + this.state = 4702; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ROUTINE) { + this.state = 4701; + this.match(MySQLParser.ROUTINE); + } + + break; + case MySQLParser.CREATE: + this.enterOuterAlt(localctx, 3); + this.state = 4704; + this.match(MySQLParser.CREATE); + this.state = 4712; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySQLParser.TEMPORARY: + this.state = 4705; + this.match(MySQLParser.TEMPORARY); + this.state = 4706; + this.match(MySQLParser.TABLES); + break; + case MySQLParser.ROUTINE: + this.state = 4707; + this.match(MySQLParser.ROUTINE); + break; + case MySQLParser.VIEW: + this.state = 4708; + this.match(MySQLParser.VIEW); + break; + case MySQLParser.USER: + this.state = 4709; + this.match(MySQLParser.USER); + break; + case MySQLParser.TABLESPACE: + this.state = 4710; + this.match(MySQLParser.TABLESPACE); + break; + case MySQLParser.ROLE: + this.state = 4711; + this.match(MySQLParser.ROLE); + break; + case MySQLParser.ON: + case MySQLParser.LR_BRACKET: + case MySQLParser.COMMA: + break; + default: + break; + } + break; + case MySQLParser.DELETE: + this.enterOuterAlt(localctx, 4); + this.state = 4714; + this.match(MySQLParser.DELETE); + break; + case MySQLParser.DROP: + this.enterOuterAlt(localctx, 5); + this.state = 4715; + this.match(MySQLParser.DROP); + this.state = 4717; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ROLE) { + this.state = 4716; + this.match(MySQLParser.ROLE); + } + + break; + case MySQLParser.EVENT: + this.enterOuterAlt(localctx, 6); + this.state = 4719; + this.match(MySQLParser.EVENT); + break; + case MySQLParser.EXECUTE: + this.enterOuterAlt(localctx, 7); + this.state = 4720; + this.match(MySQLParser.EXECUTE); + break; + case MySQLParser.FILE: + this.enterOuterAlt(localctx, 8); + this.state = 4721; + this.match(MySQLParser.FILE); + break; + case MySQLParser.GRANT: + this.enterOuterAlt(localctx, 9); + this.state = 4722; + this.match(MySQLParser.GRANT); + this.state = 4723; + this.match(MySQLParser.OPTION); + break; + case MySQLParser.INDEX: + this.enterOuterAlt(localctx, 10); + this.state = 4724; + this.match(MySQLParser.INDEX); + break; + case MySQLParser.INSERT: + this.enterOuterAlt(localctx, 11); + this.state = 4725; + this.match(MySQLParser.INSERT); + break; + case MySQLParser.LOCK: + this.enterOuterAlt(localctx, 12); + this.state = 4726; + this.match(MySQLParser.LOCK); + this.state = 4727; + this.match(MySQLParser.TABLES); + break; + case MySQLParser.PROCESS: + this.enterOuterAlt(localctx, 13); + this.state = 4728; + this.match(MySQLParser.PROCESS); + break; + case MySQLParser.PROXY: + this.enterOuterAlt(localctx, 14); + this.state = 4729; + this.match(MySQLParser.PROXY); + break; + case MySQLParser.REFERENCES: + this.enterOuterAlt(localctx, 15); + this.state = 4730; + this.match(MySQLParser.REFERENCES); + break; + case MySQLParser.RELOAD: + this.enterOuterAlt(localctx, 16); + this.state = 4731; + this.match(MySQLParser.RELOAD); + break; + case MySQLParser.REPLICATION: + this.enterOuterAlt(localctx, 17); + this.state = 4732; + this.match(MySQLParser.REPLICATION); + this.state = 4733; + _la = this._input.LA(1); + if(!(_la===MySQLParser.CLIENT || _la===MySQLParser.SLAVE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.SELECT: + this.enterOuterAlt(localctx, 18); + this.state = 4734; + this.match(MySQLParser.SELECT); + break; + case MySQLParser.SHOW: + this.enterOuterAlt(localctx, 19); + this.state = 4735; + this.match(MySQLParser.SHOW); + this.state = 4736; + _la = this._input.LA(1); + if(!(_la===MySQLParser.DATABASES || _la===MySQLParser.VIEW)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.SHUTDOWN: + this.enterOuterAlt(localctx, 20); + this.state = 4737; + this.match(MySQLParser.SHUTDOWN); + break; + case MySQLParser.SUPER: + this.enterOuterAlt(localctx, 21); + this.state = 4738; + this.match(MySQLParser.SUPER); + break; + case MySQLParser.TRIGGER: + this.enterOuterAlt(localctx, 22); + this.state = 4739; + this.match(MySQLParser.TRIGGER); + break; + case MySQLParser.UPDATE: + this.enterOuterAlt(localctx, 23); + this.state = 4740; + this.match(MySQLParser.UPDATE); + break; + case MySQLParser.USAGE: + this.enterOuterAlt(localctx, 24); + this.state = 4741; + this.match(MySQLParser.USAGE); + break; + case MySQLParser.AUDIT_ADMIN: + this.enterOuterAlt(localctx, 25); + this.state = 4742; + this.match(MySQLParser.AUDIT_ADMIN); + break; + case MySQLParser.BACKUP_ADMIN: + this.enterOuterAlt(localctx, 26); + this.state = 4743; + this.match(MySQLParser.BACKUP_ADMIN); + break; + case MySQLParser.BINLOG_ADMIN: + this.enterOuterAlt(localctx, 27); + this.state = 4744; + this.match(MySQLParser.BINLOG_ADMIN); + break; + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + this.enterOuterAlt(localctx, 28); + this.state = 4745; + this.match(MySQLParser.BINLOG_ENCRYPTION_ADMIN); + break; + case MySQLParser.CLONE_ADMIN: + this.enterOuterAlt(localctx, 29); + this.state = 4746; + this.match(MySQLParser.CLONE_ADMIN); + break; + case MySQLParser.CONNECTION_ADMIN: + this.enterOuterAlt(localctx, 30); + this.state = 4747; + this.match(MySQLParser.CONNECTION_ADMIN); + break; + case MySQLParser.ENCRYPTION_KEY_ADMIN: + this.enterOuterAlt(localctx, 31); + this.state = 4748; + this.match(MySQLParser.ENCRYPTION_KEY_ADMIN); + break; + case MySQLParser.FIREWALL_ADMIN: + this.enterOuterAlt(localctx, 32); + this.state = 4749; + this.match(MySQLParser.FIREWALL_ADMIN); + break; + case MySQLParser.FIREWALL_USER: + this.enterOuterAlt(localctx, 33); + this.state = 4750; + this.match(MySQLParser.FIREWALL_USER); + break; + case MySQLParser.GROUP_REPLICATION_ADMIN: + this.enterOuterAlt(localctx, 34); + this.state = 4751; + this.match(MySQLParser.GROUP_REPLICATION_ADMIN); + break; + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + this.enterOuterAlt(localctx, 35); + this.state = 4752; + this.match(MySQLParser.INNODB_REDO_LOG_ARCHIVE); + break; + case MySQLParser.NDB_STORED_USER: + this.enterOuterAlt(localctx, 36); + this.state = 4753; + this.match(MySQLParser.NDB_STORED_USER); + break; + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + this.enterOuterAlt(localctx, 37); + this.state = 4754; + this.match(MySQLParser.PERSIST_RO_VARIABLES_ADMIN); + break; + case MySQLParser.REPLICATION_APPLIER: + this.enterOuterAlt(localctx, 38); + this.state = 4755; + this.match(MySQLParser.REPLICATION_APPLIER); + break; + case MySQLParser.REPLICATION_SLAVE_ADMIN: + this.enterOuterAlt(localctx, 39); + this.state = 4756; + this.match(MySQLParser.REPLICATION_SLAVE_ADMIN); + break; + case MySQLParser.RESOURCE_GROUP_ADMIN: + this.enterOuterAlt(localctx, 40); + this.state = 4757; + this.match(MySQLParser.RESOURCE_GROUP_ADMIN); + break; + case MySQLParser.RESOURCE_GROUP_USER: + this.enterOuterAlt(localctx, 41); + this.state = 4758; + this.match(MySQLParser.RESOURCE_GROUP_USER); + break; + case MySQLParser.ROLE_ADMIN: + this.enterOuterAlt(localctx, 42); + this.state = 4759; + this.match(MySQLParser.ROLE_ADMIN); + break; + case MySQLParser.SESSION_VARIABLES_ADMIN: + this.enterOuterAlt(localctx, 43); + this.state = 4760; + this.match(MySQLParser.SESSION_VARIABLES_ADMIN); + break; + case MySQLParser.SET_USER_ID: + this.enterOuterAlt(localctx, 44); + this.state = 4761; + this.match(MySQLParser.SET_USER_ID); + break; + case MySQLParser.SHOW_ROUTINE: + this.enterOuterAlt(localctx, 45); + this.state = 4762; + this.match(MySQLParser.SHOW_ROUTINE); + break; + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + this.enterOuterAlt(localctx, 46); + this.state = 4763; + this.match(MySQLParser.SYSTEM_VARIABLES_ADMIN); + break; + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + this.enterOuterAlt(localctx, 47); + this.state = 4764; + this.match(MySQLParser.TABLE_ENCRYPTION_ADMIN); + break; + case MySQLParser.VERSION_TOKEN_ADMIN: + this.enterOuterAlt(localctx, 48); + this.state = 4765; + this.match(MySQLParser.VERSION_TOKEN_ADMIN); + break; + case MySQLParser.XA_RECOVER_ADMIN: + this.enterOuterAlt(localctx, 49); + this.state = 4766; + this.match(MySQLParser.XA_RECOVER_ADMIN); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PrivilegeLevelContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_privilegeLevel; + return this; +} + +PrivilegeLevelContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PrivilegeLevelContext.prototype.constructor = PrivilegeLevelContext; + + + +PrivilegeLevelContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function DefiniteSchemaPrivLevelContext(parser, ctx) { + PrivilegeLevelContext.call(this, parser); + PrivilegeLevelContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DefiniteSchemaPrivLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype); +DefiniteSchemaPrivLevelContext.prototype.constructor = DefiniteSchemaPrivLevelContext; + +MySQLParser.DefiniteSchemaPrivLevelContext = DefiniteSchemaPrivLevelContext; + +DefiniteSchemaPrivLevelContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DefiniteSchemaPrivLevelContext.prototype.DOT = function() { + return this.getToken(MySQLParser.DOT, 0); +}; + +DefiniteSchemaPrivLevelContext.prototype.STAR = function() { + return this.getToken(MySQLParser.STAR, 0); +}; +DefiniteSchemaPrivLevelContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDefiniteSchemaPrivLevel(this); + } +}; + +DefiniteSchemaPrivLevelContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDefiniteSchemaPrivLevel(this); + } +}; + +DefiniteSchemaPrivLevelContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDefiniteSchemaPrivLevel(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DefiniteFullTablePrivLevel2Context(parser, ctx) { + PrivilegeLevelContext.call(this, parser); + PrivilegeLevelContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DefiniteFullTablePrivLevel2Context.prototype = Object.create(PrivilegeLevelContext.prototype); +DefiniteFullTablePrivLevel2Context.prototype.constructor = DefiniteFullTablePrivLevel2Context; + +MySQLParser.DefiniteFullTablePrivLevel2Context = DefiniteFullTablePrivLevel2Context; + +DefiniteFullTablePrivLevel2Context.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DefiniteFullTablePrivLevel2Context.prototype.dottedId = function() { + return this.getTypedRuleContext(DottedIdContext,0); +}; +DefiniteFullTablePrivLevel2Context.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDefiniteFullTablePrivLevel2(this); + } +}; + +DefiniteFullTablePrivLevel2Context.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDefiniteFullTablePrivLevel2(this); + } +}; + +DefiniteFullTablePrivLevel2Context.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDefiniteFullTablePrivLevel2(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DefiniteFullTablePrivLevelContext(parser, ctx) { + PrivilegeLevelContext.call(this, parser); + PrivilegeLevelContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DefiniteFullTablePrivLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype); +DefiniteFullTablePrivLevelContext.prototype.constructor = DefiniteFullTablePrivLevelContext; + +MySQLParser.DefiniteFullTablePrivLevelContext = DefiniteFullTablePrivLevelContext; + +DefiniteFullTablePrivLevelContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +DefiniteFullTablePrivLevelContext.prototype.DOT = function() { + return this.getToken(MySQLParser.DOT, 0); +}; +DefiniteFullTablePrivLevelContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDefiniteFullTablePrivLevel(this); + } +}; + +DefiniteFullTablePrivLevelContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDefiniteFullTablePrivLevel(this); + } +}; + +DefiniteFullTablePrivLevelContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDefiniteFullTablePrivLevel(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function GlobalPrivLevelContext(parser, ctx) { + PrivilegeLevelContext.call(this, parser); + PrivilegeLevelContext.prototype.copyFrom.call(this, ctx); + return this; +} + +GlobalPrivLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype); +GlobalPrivLevelContext.prototype.constructor = GlobalPrivLevelContext; + +MySQLParser.GlobalPrivLevelContext = GlobalPrivLevelContext; + +GlobalPrivLevelContext.prototype.STAR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.STAR); + } else { + return this.getToken(MySQLParser.STAR, i); + } +}; + + +GlobalPrivLevelContext.prototype.DOT = function() { + return this.getToken(MySQLParser.DOT, 0); +}; +GlobalPrivLevelContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterGlobalPrivLevel(this); + } +}; + +GlobalPrivLevelContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitGlobalPrivLevel(this); + } +}; + +GlobalPrivLevelContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitGlobalPrivLevel(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DefiniteTablePrivLevelContext(parser, ctx) { + PrivilegeLevelContext.call(this, parser); + PrivilegeLevelContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DefiniteTablePrivLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype); +DefiniteTablePrivLevelContext.prototype.constructor = DefiniteTablePrivLevelContext; + +MySQLParser.DefiniteTablePrivLevelContext = DefiniteTablePrivLevelContext; + +DefiniteTablePrivLevelContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +DefiniteTablePrivLevelContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDefiniteTablePrivLevel(this); + } +}; + +DefiniteTablePrivLevelContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDefiniteTablePrivLevel(this); + } +}; + +DefiniteTablePrivLevelContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDefiniteTablePrivLevel(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CurrentSchemaPriviLevelContext(parser, ctx) { + PrivilegeLevelContext.call(this, parser); + PrivilegeLevelContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CurrentSchemaPriviLevelContext.prototype = Object.create(PrivilegeLevelContext.prototype); +CurrentSchemaPriviLevelContext.prototype.constructor = CurrentSchemaPriviLevelContext; + +MySQLParser.CurrentSchemaPriviLevelContext = CurrentSchemaPriviLevelContext; + +CurrentSchemaPriviLevelContext.prototype.STAR = function() { + return this.getToken(MySQLParser.STAR, 0); +}; +CurrentSchemaPriviLevelContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCurrentSchemaPriviLevel(this); + } +}; + +CurrentSchemaPriviLevelContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCurrentSchemaPriviLevel(this); + } +}; + +CurrentSchemaPriviLevelContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCurrentSchemaPriviLevel(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.PrivilegeLevelContext = PrivilegeLevelContext; + +MySQLParser.prototype.privilegeLevel = function() { + + var localctx = new PrivilegeLevelContext(this, this._ctx, this.state); + this.enterRule(localctx, 416, MySQLParser.RULE_privilegeLevel); + try { + this.state = 4785; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,688,this._ctx); + switch(la_) { + case 1: + localctx = new CurrentSchemaPriviLevelContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4769; + this.match(MySQLParser.STAR); + break; + + case 2: + localctx = new GlobalPrivLevelContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4770; + this.match(MySQLParser.STAR); + this.state = 4771; + this.match(MySQLParser.DOT); + this.state = 4772; + this.match(MySQLParser.STAR); + break; + + case 3: + localctx = new DefiniteSchemaPrivLevelContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 4773; + this.uid(); + this.state = 4774; + this.match(MySQLParser.DOT); + this.state = 4775; + this.match(MySQLParser.STAR); + break; + + case 4: + localctx = new DefiniteFullTablePrivLevelContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 4777; + this.uid(); + this.state = 4778; + this.match(MySQLParser.DOT); + this.state = 4779; + this.uid(); + break; + + case 5: + localctx = new DefiniteFullTablePrivLevel2Context(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 4781; + this.uid(); + this.state = 4782; + this.dottedId(); + break; + + case 6: + localctx = new DefiniteTablePrivLevelContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 4784; + this.uid(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RenameUserClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_renameUserClause; + this.fromFirst = null; // UserNameContext + this.toFirst = null; // UserNameContext + return this; +} + +RenameUserClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RenameUserClauseContext.prototype.constructor = RenameUserClauseContext; + +RenameUserClauseContext.prototype.TO = function() { + return this.getToken(MySQLParser.TO, 0); +}; + +RenameUserClauseContext.prototype.userName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UserNameContext); + } else { + return this.getTypedRuleContext(UserNameContext,i); + } +}; + +RenameUserClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRenameUserClause(this); + } +}; + +RenameUserClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRenameUserClause(this); + } +}; + +RenameUserClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRenameUserClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RenameUserClauseContext = RenameUserClauseContext; + +MySQLParser.prototype.renameUserClause = function() { + + var localctx = new RenameUserClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 418, MySQLParser.RULE_renameUserClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4787; + localctx.fromFirst = this.userName(); + this.state = 4788; + this.match(MySQLParser.TO); + this.state = 4789; + localctx.toFirst = this.userName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AnalyzeTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_analyzeTable; + this.actionOption = null; // Token + return this; +} + +AnalyzeTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AnalyzeTableContext.prototype.constructor = AnalyzeTableContext; + +AnalyzeTableContext.prototype.ANALYZE = function() { + return this.getToken(MySQLParser.ANALYZE, 0); +}; + +AnalyzeTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +AnalyzeTableContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +AnalyzeTableContext.prototype.NO_WRITE_TO_BINLOG = function() { + return this.getToken(MySQLParser.NO_WRITE_TO_BINLOG, 0); +}; + +AnalyzeTableContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +AnalyzeTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAnalyzeTable(this); + } +}; + +AnalyzeTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAnalyzeTable(this); + } +}; + +AnalyzeTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAnalyzeTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AnalyzeTableContext = AnalyzeTableContext; + +MySQLParser.prototype.analyzeTable = function() { + + var localctx = new AnalyzeTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 420, MySQLParser.RULE_analyzeTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4791; + this.match(MySQLParser.ANALYZE); + this.state = 4793; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NO_WRITE_TO_BINLOG || _la===MySQLParser.LOCAL) { + this.state = 4792; + localctx.actionOption = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.NO_WRITE_TO_BINLOG || _la===MySQLParser.LOCAL)) { + localctx.actionOption = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4795; + this.match(MySQLParser.TABLE); + this.state = 4796; + this.tables(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CheckTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_checkTable; + return this; +} + +CheckTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CheckTableContext.prototype.constructor = CheckTableContext; + +CheckTableContext.prototype.CHECK = function() { + return this.getToken(MySQLParser.CHECK, 0); +}; + +CheckTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +CheckTableContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +CheckTableContext.prototype.checkTableOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(CheckTableOptionContext); + } else { + return this.getTypedRuleContext(CheckTableOptionContext,i); + } +}; + +CheckTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCheckTable(this); + } +}; + +CheckTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCheckTable(this); + } +}; + +CheckTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCheckTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CheckTableContext = CheckTableContext; + +MySQLParser.prototype.checkTable = function() { + + var localctx = new CheckTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 422, MySQLParser.RULE_checkTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4798; + this.match(MySQLParser.CHECK); + this.state = 4799; + this.match(MySQLParser.TABLE); + this.state = 4800; + this.tables(); + this.state = 4804; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.FOR || _la===MySQLParser.CHANGED || _la===MySQLParser.EXTENDED || _la===MySQLParser.FAST || _la===MySQLParser.MEDIUM || _la===MySQLParser.QUICK) { + this.state = 4801; + this.checkTableOption(); + this.state = 4806; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ChecksumTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_checksumTable; + this.actionOption = null; // Token + return this; +} + +ChecksumTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ChecksumTableContext.prototype.constructor = ChecksumTableContext; + +ChecksumTableContext.prototype.CHECKSUM = function() { + return this.getToken(MySQLParser.CHECKSUM, 0); +}; + +ChecksumTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +ChecksumTableContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +ChecksumTableContext.prototype.QUICK = function() { + return this.getToken(MySQLParser.QUICK, 0); +}; + +ChecksumTableContext.prototype.EXTENDED = function() { + return this.getToken(MySQLParser.EXTENDED, 0); +}; + +ChecksumTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterChecksumTable(this); + } +}; + +ChecksumTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitChecksumTable(this); + } +}; + +ChecksumTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitChecksumTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ChecksumTableContext = ChecksumTableContext; + +MySQLParser.prototype.checksumTable = function() { + + var localctx = new ChecksumTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 424, MySQLParser.RULE_checksumTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4807; + this.match(MySQLParser.CHECKSUM); + this.state = 4808; + this.match(MySQLParser.TABLE); + this.state = 4809; + this.tables(); + this.state = 4811; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EXTENDED || _la===MySQLParser.QUICK) { + this.state = 4810; + localctx.actionOption = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.EXTENDED || _la===MySQLParser.QUICK)) { + localctx.actionOption = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OptimizeTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_optimizeTable; + this.actionOption = null; // Token + return this; +} + +OptimizeTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OptimizeTableContext.prototype.constructor = OptimizeTableContext; + +OptimizeTableContext.prototype.OPTIMIZE = function() { + return this.getToken(MySQLParser.OPTIMIZE, 0); +}; + +OptimizeTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +OptimizeTableContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +OptimizeTableContext.prototype.NO_WRITE_TO_BINLOG = function() { + return this.getToken(MySQLParser.NO_WRITE_TO_BINLOG, 0); +}; + +OptimizeTableContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +OptimizeTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterOptimizeTable(this); + } +}; + +OptimizeTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitOptimizeTable(this); + } +}; + +OptimizeTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitOptimizeTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.OptimizeTableContext = OptimizeTableContext; + +MySQLParser.prototype.optimizeTable = function() { + + var localctx = new OptimizeTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 426, MySQLParser.RULE_optimizeTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4813; + this.match(MySQLParser.OPTIMIZE); + this.state = 4815; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NO_WRITE_TO_BINLOG || _la===MySQLParser.LOCAL) { + this.state = 4814; + localctx.actionOption = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.NO_WRITE_TO_BINLOG || _la===MySQLParser.LOCAL)) { + localctx.actionOption = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4817; + this.match(MySQLParser.TABLE); + this.state = 4818; + this.tables(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RepairTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_repairTable; + this.actionOption = null; // Token + return this; +} + +RepairTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RepairTableContext.prototype.constructor = RepairTableContext; + +RepairTableContext.prototype.REPAIR = function() { + return this.getToken(MySQLParser.REPAIR, 0); +}; + +RepairTableContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +RepairTableContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +RepairTableContext.prototype.QUICK = function() { + return this.getToken(MySQLParser.QUICK, 0); +}; + +RepairTableContext.prototype.EXTENDED = function() { + return this.getToken(MySQLParser.EXTENDED, 0); +}; + +RepairTableContext.prototype.USE_FRM = function() { + return this.getToken(MySQLParser.USE_FRM, 0); +}; + +RepairTableContext.prototype.NO_WRITE_TO_BINLOG = function() { + return this.getToken(MySQLParser.NO_WRITE_TO_BINLOG, 0); +}; + +RepairTableContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +RepairTableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRepairTable(this); + } +}; + +RepairTableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRepairTable(this); + } +}; + +RepairTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRepairTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.RepairTableContext = RepairTableContext; + +MySQLParser.prototype.repairTable = function() { + + var localctx = new RepairTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 428, MySQLParser.RULE_repairTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4820; + this.match(MySQLParser.REPAIR); + this.state = 4822; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NO_WRITE_TO_BINLOG || _la===MySQLParser.LOCAL) { + this.state = 4821; + localctx.actionOption = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.NO_WRITE_TO_BINLOG || _la===MySQLParser.LOCAL)) { + localctx.actionOption = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4824; + this.match(MySQLParser.TABLE); + this.state = 4825; + this.tables(); + this.state = 4827; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.QUICK) { + this.state = 4826; + this.match(MySQLParser.QUICK); + } + + this.state = 4830; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EXTENDED) { + this.state = 4829; + this.match(MySQLParser.EXTENDED); + } + + this.state = 4833; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USE_FRM) { + this.state = 4832; + this.match(MySQLParser.USE_FRM); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CheckTableOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_checkTableOption; + return this; +} + +CheckTableOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CheckTableOptionContext.prototype.constructor = CheckTableOptionContext; + +CheckTableOptionContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +CheckTableOptionContext.prototype.UPGRADE = function() { + return this.getToken(MySQLParser.UPGRADE, 0); +}; + +CheckTableOptionContext.prototype.QUICK = function() { + return this.getToken(MySQLParser.QUICK, 0); +}; + +CheckTableOptionContext.prototype.FAST = function() { + return this.getToken(MySQLParser.FAST, 0); +}; + +CheckTableOptionContext.prototype.MEDIUM = function() { + return this.getToken(MySQLParser.MEDIUM, 0); +}; + +CheckTableOptionContext.prototype.EXTENDED = function() { + return this.getToken(MySQLParser.EXTENDED, 0); +}; + +CheckTableOptionContext.prototype.CHANGED = function() { + return this.getToken(MySQLParser.CHANGED, 0); +}; + +CheckTableOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCheckTableOption(this); + } +}; + +CheckTableOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCheckTableOption(this); + } +}; + +CheckTableOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCheckTableOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CheckTableOptionContext = CheckTableOptionContext; + +MySQLParser.prototype.checkTableOption = function() { + + var localctx = new CheckTableOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 430, MySQLParser.RULE_checkTableOption); + try { + this.state = 4842; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.FOR: + this.enterOuterAlt(localctx, 1); + this.state = 4835; + this.match(MySQLParser.FOR); + this.state = 4836; + this.match(MySQLParser.UPGRADE); + break; + case MySQLParser.QUICK: + this.enterOuterAlt(localctx, 2); + this.state = 4837; + this.match(MySQLParser.QUICK); + break; + case MySQLParser.FAST: + this.enterOuterAlt(localctx, 3); + this.state = 4838; + this.match(MySQLParser.FAST); + break; + case MySQLParser.MEDIUM: + this.enterOuterAlt(localctx, 4); + this.state = 4839; + this.match(MySQLParser.MEDIUM); + break; + case MySQLParser.EXTENDED: + this.enterOuterAlt(localctx, 5); + this.state = 4840; + this.match(MySQLParser.EXTENDED); + break; + case MySQLParser.CHANGED: + this.enterOuterAlt(localctx, 6); + this.state = 4841; + this.match(MySQLParser.CHANGED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateUdfunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_createUdfunction; + this.returnType = null; // Token + return this; +} + +CreateUdfunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateUdfunctionContext.prototype.constructor = CreateUdfunctionContext; + +CreateUdfunctionContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +CreateUdfunctionContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +CreateUdfunctionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateUdfunctionContext.prototype.RETURNS = function() { + return this.getToken(MySQLParser.RETURNS, 0); +}; + +CreateUdfunctionContext.prototype.SONAME = function() { + return this.getToken(MySQLParser.SONAME, 0); +}; + +CreateUdfunctionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +CreateUdfunctionContext.prototype.STRING = function() { + return this.getToken(MySQLParser.STRING, 0); +}; + +CreateUdfunctionContext.prototype.INTEGER = function() { + return this.getToken(MySQLParser.INTEGER, 0); +}; + +CreateUdfunctionContext.prototype.REAL = function() { + return this.getToken(MySQLParser.REAL, 0); +}; + +CreateUdfunctionContext.prototype.DECIMAL = function() { + return this.getToken(MySQLParser.DECIMAL, 0); +}; + +CreateUdfunctionContext.prototype.AGGREGATE = function() { + return this.getToken(MySQLParser.AGGREGATE, 0); +}; + +CreateUdfunctionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCreateUdfunction(this); + } +}; + +CreateUdfunctionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCreateUdfunction(this); + } +}; + +CreateUdfunctionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCreateUdfunction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CreateUdfunctionContext = CreateUdfunctionContext; + +MySQLParser.prototype.createUdfunction = function() { + + var localctx = new CreateUdfunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 432, MySQLParser.RULE_createUdfunction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4844; + this.match(MySQLParser.CREATE); + this.state = 4846; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AGGREGATE) { + this.state = 4845; + this.match(MySQLParser.AGGREGATE); + } + + this.state = 4848; + this.match(MySQLParser.FUNCTION); + this.state = 4849; + this.uid(); + this.state = 4850; + this.match(MySQLParser.RETURNS); + this.state = 4851; + localctx.returnType = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 188)) & ~0x1f) == 0 && ((1 << (_la - 188)) & ((1 << (MySQLParser.INTEGER - 188)) | (1 << (MySQLParser.REAL - 188)) | (1 << (MySQLParser.DECIMAL - 188)))) !== 0) || _la===MySQLParser.STRING)) { + localctx.returnType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4852; + this.match(MySQLParser.SONAME); + this.state = 4853; + this.match(MySQLParser.STRING_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function InstallPluginContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_installPlugin; + return this; +} + +InstallPluginContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +InstallPluginContext.prototype.constructor = InstallPluginContext; + +InstallPluginContext.prototype.INSTALL = function() { + return this.getToken(MySQLParser.INSTALL, 0); +}; + +InstallPluginContext.prototype.PLUGIN = function() { + return this.getToken(MySQLParser.PLUGIN, 0); +}; + +InstallPluginContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +InstallPluginContext.prototype.SONAME = function() { + return this.getToken(MySQLParser.SONAME, 0); +}; + +InstallPluginContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +InstallPluginContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterInstallPlugin(this); + } +}; + +InstallPluginContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitInstallPlugin(this); + } +}; + +InstallPluginContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitInstallPlugin(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.InstallPluginContext = InstallPluginContext; + +MySQLParser.prototype.installPlugin = function() { + + var localctx = new InstallPluginContext(this, this._ctx, this.state); + this.enterRule(localctx, 434, MySQLParser.RULE_installPlugin); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4855; + this.match(MySQLParser.INSTALL); + this.state = 4856; + this.match(MySQLParser.PLUGIN); + this.state = 4857; + this.uid(); + this.state = 4858; + this.match(MySQLParser.SONAME); + this.state = 4859; + this.match(MySQLParser.STRING_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UninstallPluginContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_uninstallPlugin; + return this; +} + +UninstallPluginContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UninstallPluginContext.prototype.constructor = UninstallPluginContext; + +UninstallPluginContext.prototype.UNINSTALL = function() { + return this.getToken(MySQLParser.UNINSTALL, 0); +}; + +UninstallPluginContext.prototype.PLUGIN = function() { + return this.getToken(MySQLParser.PLUGIN, 0); +}; + +UninstallPluginContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +UninstallPluginContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUninstallPlugin(this); + } +}; + +UninstallPluginContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUninstallPlugin(this); + } +}; + +UninstallPluginContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUninstallPlugin(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UninstallPluginContext = UninstallPluginContext; + +MySQLParser.prototype.uninstallPlugin = function() { + + var localctx = new UninstallPluginContext(this, this._ctx, this.state); + this.enterRule(localctx, 436, MySQLParser.RULE_uninstallPlugin); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4861; + this.match(MySQLParser.UNINSTALL); + this.state = 4862; + this.match(MySQLParser.PLUGIN); + this.state = 4863; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SetStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_setStatement; + return this; +} + +SetStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SetStatementContext.prototype.constructor = SetStatementContext; + + + +SetStatementContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SetTransactionContext(parser, ctx) { + SetStatementContext.call(this, parser); + SetStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SetTransactionContext.prototype = Object.create(SetStatementContext.prototype); +SetTransactionContext.prototype.constructor = SetTransactionContext; + +MySQLParser.SetTransactionContext = SetTransactionContext; + +SetTransactionContext.prototype.setTransactionStatement = function() { + return this.getTypedRuleContext(SetTransactionStatementContext,0); +}; +SetTransactionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetTransaction(this); + } +}; + +SetTransactionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetTransaction(this); + } +}; + +SetTransactionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetTransaction(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SetCharsetContext(parser, ctx) { + SetStatementContext.call(this, parser); + SetStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SetCharsetContext.prototype = Object.create(SetStatementContext.prototype); +SetCharsetContext.prototype.constructor = SetCharsetContext; + +MySQLParser.SetCharsetContext = SetCharsetContext; + +SetCharsetContext.prototype.SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.SET); + } else { + return this.getToken(MySQLParser.SET, i); + } +}; + + +SetCharsetContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +SetCharsetContext.prototype.CHARSET = function() { + return this.getToken(MySQLParser.CHARSET, 0); +}; + +SetCharsetContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +SetCharsetContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; +SetCharsetContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetCharset(this); + } +}; + +SetCharsetContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetCharset(this); + } +}; + +SetCharsetContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetCharset(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SetNamesContext(parser, ctx) { + SetStatementContext.call(this, parser); + SetStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SetNamesContext.prototype = Object.create(SetStatementContext.prototype); +SetNamesContext.prototype.constructor = SetNamesContext; + +MySQLParser.SetNamesContext = SetNamesContext; + +SetNamesContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SetNamesContext.prototype.NAMES = function() { + return this.getToken(MySQLParser.NAMES, 0); +}; + +SetNamesContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +SetNamesContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +SetNamesContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +SetNamesContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; +SetNamesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetNames(this); + } +}; + +SetNamesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetNames(this); + } +}; + +SetNamesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetNames(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SetPasswordContext(parser, ctx) { + SetStatementContext.call(this, parser); + SetStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SetPasswordContext.prototype = Object.create(SetStatementContext.prototype); +SetPasswordContext.prototype.constructor = SetPasswordContext; + +MySQLParser.SetPasswordContext = SetPasswordContext; + +SetPasswordContext.prototype.setPasswordStatement = function() { + return this.getTypedRuleContext(SetPasswordStatementContext,0); +}; +SetPasswordContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetPassword(this); + } +}; + +SetPasswordContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetPassword(this); + } +}; + +SetPasswordContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetPassword(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SetAutocommitContext(parser, ctx) { + SetStatementContext.call(this, parser); + SetStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SetAutocommitContext.prototype = Object.create(SetStatementContext.prototype); +SetAutocommitContext.prototype.constructor = SetAutocommitContext; + +MySQLParser.SetAutocommitContext = SetAutocommitContext; + +SetAutocommitContext.prototype.setAutocommitStatement = function() { + return this.getTypedRuleContext(SetAutocommitStatementContext,0); +}; +SetAutocommitContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetAutocommit(this); + } +}; + +SetAutocommitContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetAutocommit(this); + } +}; + +SetAutocommitContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetAutocommit(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SetNewValueInsideTriggerContext(parser, ctx) { + SetStatementContext.call(this, parser); + SetStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SetNewValueInsideTriggerContext.prototype = Object.create(SetStatementContext.prototype); +SetNewValueInsideTriggerContext.prototype.constructor = SetNewValueInsideTriggerContext; + +MySQLParser.SetNewValueInsideTriggerContext = SetNewValueInsideTriggerContext; + +SetNewValueInsideTriggerContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SetNewValueInsideTriggerContext.prototype.fullId = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FullIdContext); + } else { + return this.getTypedRuleContext(FullIdContext,i); + } +}; + +SetNewValueInsideTriggerContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +SetNewValueInsideTriggerContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +SetNewValueInsideTriggerContext.prototype.VAR_ASSIGN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.VAR_ASSIGN); + } else { + return this.getToken(MySQLParser.VAR_ASSIGN, i); + } +}; + + +SetNewValueInsideTriggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +SetNewValueInsideTriggerContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetNewValueInsideTrigger(this); + } +}; + +SetNewValueInsideTriggerContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetNewValueInsideTrigger(this); + } +}; + +SetNewValueInsideTriggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetNewValueInsideTrigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SetVariableContext(parser, ctx) { + SetStatementContext.call(this, parser); + SetStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SetVariableContext.prototype = Object.create(SetStatementContext.prototype); +SetVariableContext.prototype.constructor = SetVariableContext; + +MySQLParser.SetVariableContext = SetVariableContext; + +SetVariableContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SetVariableContext.prototype.variableClause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(VariableClauseContext); + } else { + return this.getTypedRuleContext(VariableClauseContext,i); + } +}; + +SetVariableContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +SetVariableContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +SetVariableContext.prototype.VAR_ASSIGN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.VAR_ASSIGN); + } else { + return this.getToken(MySQLParser.VAR_ASSIGN, i); + } +}; + + +SetVariableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +SetVariableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSetVariable(this); + } +}; + +SetVariableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSetVariable(this); + } +}; + +SetVariableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSetVariable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.SetStatementContext = SetStatementContext; + +MySQLParser.prototype.setStatement = function() { + + var localctx = new SetStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 438, MySQLParser.RULE_setStatement); + var _la = 0; // Token type + try { + this.state = 4916; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,705,this._ctx); + switch(la_) { + case 1: + localctx = new SetVariableContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4865; + this.match(MySQLParser.SET); + this.state = 4866; + this.variableClause(); + this.state = 4867; + _la = this._input.LA(1); + if(!(_la===MySQLParser.VAR_ASSIGN || _la===MySQLParser.EQUAL_SYMBOL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4868; + this.expression(0); + this.state = 4876; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4869; + this.match(MySQLParser.COMMA); + this.state = 4870; + this.variableClause(); + this.state = 4871; + _la = this._input.LA(1); + if(!(_la===MySQLParser.VAR_ASSIGN || _la===MySQLParser.EQUAL_SYMBOL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4872; + this.expression(0); + this.state = 4878; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + localctx = new SetCharsetContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4879; + this.match(MySQLParser.SET); + this.state = 4883; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CHARACTER: + this.state = 4880; + this.match(MySQLParser.CHARACTER); + this.state = 4881; + this.match(MySQLParser.SET); + break; + case MySQLParser.CHARSET: + this.state = 4882; + this.match(MySQLParser.CHARSET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4887; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.BINARY: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + this.state = 4885; + this.charsetName(); + break; + case MySQLParser.DEFAULT: + this.state = 4886; + this.match(MySQLParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + localctx = new SetNamesContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 4889; + this.match(MySQLParser.SET); + this.state = 4890; + this.match(MySQLParser.NAMES); + this.state = 4897; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.BINARY: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + this.state = 4891; + this.charsetName(); + this.state = 4894; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COLLATE) { + this.state = 4892; + this.match(MySQLParser.COLLATE); + this.state = 4893; + this.collationName(); + } + + break; + case MySQLParser.DEFAULT: + this.state = 4896; + this.match(MySQLParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 4: + localctx = new SetPasswordContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 4899; + this.setPasswordStatement(); + break; + + case 5: + localctx = new SetTransactionContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 4900; + this.setTransactionStatement(); + break; + + case 6: + localctx = new SetAutocommitContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 4901; + this.setAutocommitStatement(); + break; + + case 7: + localctx = new SetNewValueInsideTriggerContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 4902; + this.match(MySQLParser.SET); + this.state = 4903; + this.fullId(); + this.state = 4904; + _la = this._input.LA(1); + if(!(_la===MySQLParser.VAR_ASSIGN || _la===MySQLParser.EQUAL_SYMBOL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4905; + this.expression(0); + this.state = 4913; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 4906; + this.match(MySQLParser.COMMA); + this.state = 4907; + this.fullId(); + this.state = 4908; + _la = this._input.LA(1); + if(!(_la===MySQLParser.VAR_ASSIGN || _la===MySQLParser.EQUAL_SYMBOL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4909; + this.expression(0); + this.state = 4915; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ShowStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_showStatement; + return this; +} + +ShowStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ShowStatementContext.prototype.constructor = ShowStatementContext; + + + +ShowStatementContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function ShowOpenTablesContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.schemaFormat = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowOpenTablesContext.prototype = Object.create(ShowStatementContext.prototype); +ShowOpenTablesContext.prototype.constructor = ShowOpenTablesContext; + +MySQLParser.ShowOpenTablesContext = ShowOpenTablesContext; + +ShowOpenTablesContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowOpenTablesContext.prototype.OPEN = function() { + return this.getToken(MySQLParser.OPEN, 0); +}; + +ShowOpenTablesContext.prototype.TABLES = function() { + return this.getToken(MySQLParser.TABLES, 0); +}; + +ShowOpenTablesContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ShowOpenTablesContext.prototype.showFilter = function() { + return this.getTypedRuleContext(ShowFilterContext,0); +}; + +ShowOpenTablesContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +ShowOpenTablesContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; +ShowOpenTablesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowOpenTables(this); + } +}; + +ShowOpenTablesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowOpenTables(this); + } +}; + +ShowOpenTablesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowOpenTables(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowGlobalInfoContext(parser, ctx) { + ShowStatementContext.call(this, parser); + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowGlobalInfoContext.prototype = Object.create(ShowStatementContext.prototype); +ShowGlobalInfoContext.prototype.constructor = ShowGlobalInfoContext; + +MySQLParser.ShowGlobalInfoContext = ShowGlobalInfoContext; + +ShowGlobalInfoContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowGlobalInfoContext.prototype.showGlobalInfoClause = function() { + return this.getTypedRuleContext(ShowGlobalInfoClauseContext,0); +}; +ShowGlobalInfoContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowGlobalInfo(this); + } +}; + +ShowGlobalInfoContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowGlobalInfo(this); + } +}; + +ShowGlobalInfoContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowGlobalInfo(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowCreateFullIdObjectContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.namedEntity = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowCreateFullIdObjectContext.prototype = Object.create(ShowStatementContext.prototype); +ShowCreateFullIdObjectContext.prototype.constructor = ShowCreateFullIdObjectContext; + +MySQLParser.ShowCreateFullIdObjectContext = ShowCreateFullIdObjectContext; + +ShowCreateFullIdObjectContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowCreateFullIdObjectContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +ShowCreateFullIdObjectContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +ShowCreateFullIdObjectContext.prototype.EVENT = function() { + return this.getToken(MySQLParser.EVENT, 0); +}; + +ShowCreateFullIdObjectContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +ShowCreateFullIdObjectContext.prototype.PROCEDURE = function() { + return this.getToken(MySQLParser.PROCEDURE, 0); +}; + +ShowCreateFullIdObjectContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +ShowCreateFullIdObjectContext.prototype.TRIGGER = function() { + return this.getToken(MySQLParser.TRIGGER, 0); +}; + +ShowCreateFullIdObjectContext.prototype.VIEW = function() { + return this.getToken(MySQLParser.VIEW, 0); +}; +ShowCreateFullIdObjectContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowCreateFullIdObject(this); + } +}; + +ShowCreateFullIdObjectContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowCreateFullIdObject(this); + } +}; + +ShowCreateFullIdObjectContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowCreateFullIdObject(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowCreateUserContext(parser, ctx) { + ShowStatementContext.call(this, parser); + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowCreateUserContext.prototype = Object.create(ShowStatementContext.prototype); +ShowCreateUserContext.prototype.constructor = ShowCreateUserContext; + +MySQLParser.ShowCreateUserContext = ShowCreateUserContext; + +ShowCreateUserContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowCreateUserContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +ShowCreateUserContext.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +ShowCreateUserContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; +ShowCreateUserContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowCreateUser(this); + } +}; + +ShowCreateUserContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowCreateUser(this); + } +}; + +ShowCreateUserContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowCreateUser(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowErrorsContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.errorFormat = null; // Token; + this.offset = null; // DecimalLiteralContext; + this.rowCount = null; // DecimalLiteralContext; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowErrorsContext.prototype = Object.create(ShowStatementContext.prototype); +ShowErrorsContext.prototype.constructor = ShowErrorsContext; + +MySQLParser.ShowErrorsContext = ShowErrorsContext; + +ShowErrorsContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowErrorsContext.prototype.ERRORS = function() { + return this.getToken(MySQLParser.ERRORS, 0); +}; + +ShowErrorsContext.prototype.WARNINGS = function() { + return this.getToken(MySQLParser.WARNINGS, 0); +}; + +ShowErrorsContext.prototype.LIMIT = function() { + return this.getToken(MySQLParser.LIMIT, 0); +}; + +ShowErrorsContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; + +ShowErrorsContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; +ShowErrorsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowErrors(this); + } +}; + +ShowErrorsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowErrors(this); + } +}; + +ShowErrorsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowErrors(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowCountErrorsContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.errorFormat = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowCountErrorsContext.prototype = Object.create(ShowStatementContext.prototype); +ShowCountErrorsContext.prototype.constructor = ShowCountErrorsContext; + +MySQLParser.ShowCountErrorsContext = ShowCountErrorsContext; + +ShowCountErrorsContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowCountErrorsContext.prototype.COUNT = function() { + return this.getToken(MySQLParser.COUNT, 0); +}; + +ShowCountErrorsContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +ShowCountErrorsContext.prototype.STAR = function() { + return this.getToken(MySQLParser.STAR, 0); +}; + +ShowCountErrorsContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +ShowCountErrorsContext.prototype.ERRORS = function() { + return this.getToken(MySQLParser.ERRORS, 0); +}; + +ShowCountErrorsContext.prototype.WARNINGS = function() { + return this.getToken(MySQLParser.WARNINGS, 0); +}; +ShowCountErrorsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowCountErrors(this); + } +}; + +ShowCountErrorsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowCountErrors(this); + } +}; + +ShowCountErrorsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowCountErrors(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowObjectFilterContext(parser, ctx) { + ShowStatementContext.call(this, parser); + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowObjectFilterContext.prototype = Object.create(ShowStatementContext.prototype); +ShowObjectFilterContext.prototype.constructor = ShowObjectFilterContext; + +MySQLParser.ShowObjectFilterContext = ShowObjectFilterContext; + +ShowObjectFilterContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowObjectFilterContext.prototype.showCommonEntity = function() { + return this.getTypedRuleContext(ShowCommonEntityContext,0); +}; + +ShowObjectFilterContext.prototype.showFilter = function() { + return this.getTypedRuleContext(ShowFilterContext,0); +}; +ShowObjectFilterContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowObjectFilter(this); + } +}; + +ShowObjectFilterContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowObjectFilter(this); + } +}; + +ShowObjectFilterContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowObjectFilter(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowCreateDbContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.schemaFormat = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowCreateDbContext.prototype = Object.create(ShowStatementContext.prototype); +ShowCreateDbContext.prototype.constructor = ShowCreateDbContext; + +MySQLParser.ShowCreateDbContext = ShowCreateDbContext; + +ShowCreateDbContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowCreateDbContext.prototype.CREATE = function() { + return this.getToken(MySQLParser.CREATE, 0); +}; + +ShowCreateDbContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ShowCreateDbContext.prototype.DATABASE = function() { + return this.getToken(MySQLParser.DATABASE, 0); +}; + +ShowCreateDbContext.prototype.SCHEMA = function() { + return this.getToken(MySQLParser.SCHEMA, 0); +}; + +ShowCreateDbContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; +ShowCreateDbContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowCreateDb(this); + } +}; + +ShowCreateDbContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowCreateDb(this); + } +}; + +ShowCreateDbContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowCreateDb(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowEngineContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.engineOption = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowEngineContext.prototype = Object.create(ShowStatementContext.prototype); +ShowEngineContext.prototype.constructor = ShowEngineContext; + +MySQLParser.ShowEngineContext = ShowEngineContext; + +ShowEngineContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowEngineContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +ShowEngineContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +ShowEngineContext.prototype.STATUS = function() { + return this.getToken(MySQLParser.STATUS, 0); +}; + +ShowEngineContext.prototype.MUTEX = function() { + return this.getToken(MySQLParser.MUTEX, 0); +}; +ShowEngineContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowEngine(this); + } +}; + +ShowEngineContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowEngine(this); + } +}; + +ShowEngineContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowEngine(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowSchemaFilterContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.schemaFormat = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowSchemaFilterContext.prototype = Object.create(ShowStatementContext.prototype); +ShowSchemaFilterContext.prototype.constructor = ShowSchemaFilterContext; + +MySQLParser.ShowSchemaFilterContext = ShowSchemaFilterContext; + +ShowSchemaFilterContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowSchemaFilterContext.prototype.showSchemaEntity = function() { + return this.getTypedRuleContext(ShowSchemaEntityContext,0); +}; + +ShowSchemaFilterContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ShowSchemaFilterContext.prototype.showFilter = function() { + return this.getTypedRuleContext(ShowFilterContext,0); +}; + +ShowSchemaFilterContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +ShowSchemaFilterContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; +ShowSchemaFilterContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowSchemaFilter(this); + } +}; + +ShowSchemaFilterContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowSchemaFilter(this); + } +}; + +ShowSchemaFilterContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowSchemaFilter(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowIndexesContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.indexFormat = null; // Token; + this.tableFormat = null; // Token; + this.schemaFormat = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowIndexesContext.prototype = Object.create(ShowStatementContext.prototype); +ShowIndexesContext.prototype.constructor = ShowIndexesContext; + +MySQLParser.ShowIndexesContext = ShowIndexesContext; + +ShowIndexesContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowIndexesContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +ShowIndexesContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +ShowIndexesContext.prototype.INDEXES = function() { + return this.getToken(MySQLParser.INDEXES, 0); +}; + +ShowIndexesContext.prototype.KEYS = function() { + return this.getToken(MySQLParser.KEYS, 0); +}; + +ShowIndexesContext.prototype.FROM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.FROM); + } else { + return this.getToken(MySQLParser.FROM, i); + } +}; + + +ShowIndexesContext.prototype.IN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.IN); + } else { + return this.getToken(MySQLParser.IN, i); + } +}; + + +ShowIndexesContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ShowIndexesContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +ShowIndexesContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; +ShowIndexesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowIndexes(this); + } +}; + +ShowIndexesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowIndexes(this); + } +}; + +ShowIndexesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowIndexes(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowLogEventsContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.logFormat = null; // Token; + this.filename = null; // Token; + this.fromPosition = null; // DecimalLiteralContext; + this.offset = null; // DecimalLiteralContext; + this.rowCount = null; // DecimalLiteralContext; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowLogEventsContext.prototype = Object.create(ShowStatementContext.prototype); +ShowLogEventsContext.prototype.constructor = ShowLogEventsContext; + +MySQLParser.ShowLogEventsContext = ShowLogEventsContext; + +ShowLogEventsContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowLogEventsContext.prototype.EVENTS = function() { + return this.getToken(MySQLParser.EVENTS, 0); +}; + +ShowLogEventsContext.prototype.BINLOG = function() { + return this.getToken(MySQLParser.BINLOG, 0); +}; + +ShowLogEventsContext.prototype.RELAYLOG = function() { + return this.getToken(MySQLParser.RELAYLOG, 0); +}; + +ShowLogEventsContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; + +ShowLogEventsContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +ShowLogEventsContext.prototype.LIMIT = function() { + return this.getToken(MySQLParser.LIMIT, 0); +}; + +ShowLogEventsContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +ShowLogEventsContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; + +ShowLogEventsContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; +ShowLogEventsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowLogEvents(this); + } +}; + +ShowLogEventsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowLogEvents(this); + } +}; + +ShowLogEventsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowLogEvents(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowMasterLogsContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.logFormat = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowMasterLogsContext.prototype = Object.create(ShowStatementContext.prototype); +ShowMasterLogsContext.prototype.constructor = ShowMasterLogsContext; + +MySQLParser.ShowMasterLogsContext = ShowMasterLogsContext; + +ShowMasterLogsContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowMasterLogsContext.prototype.LOGS = function() { + return this.getToken(MySQLParser.LOGS, 0); +}; + +ShowMasterLogsContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +ShowMasterLogsContext.prototype.MASTER = function() { + return this.getToken(MySQLParser.MASTER, 0); +}; +ShowMasterLogsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowMasterLogs(this); + } +}; + +ShowMasterLogsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowMasterLogs(this); + } +}; + +ShowMasterLogsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowMasterLogs(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowGrantsContext(parser, ctx) { + ShowStatementContext.call(this, parser); + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowGrantsContext.prototype = Object.create(ShowStatementContext.prototype); +ShowGrantsContext.prototype.constructor = ShowGrantsContext; + +MySQLParser.ShowGrantsContext = ShowGrantsContext; + +ShowGrantsContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowGrantsContext.prototype.GRANTS = function() { + return this.getToken(MySQLParser.GRANTS, 0); +}; + +ShowGrantsContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +ShowGrantsContext.prototype.userName = function() { + return this.getTypedRuleContext(UserNameContext,0); +}; +ShowGrantsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowGrants(this); + } +}; + +ShowGrantsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowGrants(this); + } +}; + +ShowGrantsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowGrants(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowSlaveStatusContext(parser, ctx) { + ShowStatementContext.call(this, parser); + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowSlaveStatusContext.prototype = Object.create(ShowStatementContext.prototype); +ShowSlaveStatusContext.prototype.constructor = ShowSlaveStatusContext; + +MySQLParser.ShowSlaveStatusContext = ShowSlaveStatusContext; + +ShowSlaveStatusContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowSlaveStatusContext.prototype.SLAVE = function() { + return this.getToken(MySQLParser.SLAVE, 0); +}; + +ShowSlaveStatusContext.prototype.STATUS = function() { + return this.getToken(MySQLParser.STATUS, 0); +}; + +ShowSlaveStatusContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +ShowSlaveStatusContext.prototype.CHANNEL = function() { + return this.getToken(MySQLParser.CHANNEL, 0); +}; + +ShowSlaveStatusContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +ShowSlaveStatusContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowSlaveStatus(this); + } +}; + +ShowSlaveStatusContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowSlaveStatus(this); + } +}; + +ShowSlaveStatusContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowSlaveStatus(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowRoutineContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.routine = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowRoutineContext.prototype = Object.create(ShowStatementContext.prototype); +ShowRoutineContext.prototype.constructor = ShowRoutineContext; + +MySQLParser.ShowRoutineContext = ShowRoutineContext; + +ShowRoutineContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowRoutineContext.prototype.CODE = function() { + return this.getToken(MySQLParser.CODE, 0); +}; + +ShowRoutineContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +ShowRoutineContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +ShowRoutineContext.prototype.PROCEDURE = function() { + return this.getToken(MySQLParser.PROCEDURE, 0); +}; +ShowRoutineContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowRoutine(this); + } +}; + +ShowRoutineContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowRoutine(this); + } +}; + +ShowRoutineContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowRoutine(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowProfileContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.queryCount = null; // DecimalLiteralContext; + this.offset = null; // DecimalLiteralContext; + this.rowCount = null; // DecimalLiteralContext; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowProfileContext.prototype = Object.create(ShowStatementContext.prototype); +ShowProfileContext.prototype.constructor = ShowProfileContext; + +MySQLParser.ShowProfileContext = ShowProfileContext; + +ShowProfileContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowProfileContext.prototype.PROFILE = function() { + return this.getToken(MySQLParser.PROFILE, 0); +}; + +ShowProfileContext.prototype.showProfileType = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ShowProfileTypeContext); + } else { + return this.getTypedRuleContext(ShowProfileTypeContext,i); + } +}; + +ShowProfileContext.prototype.LIMIT = function() { + return this.getToken(MySQLParser.LIMIT, 0); +}; + +ShowProfileContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ShowProfileContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +ShowProfileContext.prototype.QUERY = function() { + return this.getToken(MySQLParser.QUERY, 0); +}; + +ShowProfileContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; +ShowProfileContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowProfile(this); + } +}; + +ShowProfileContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowProfile(this); + } +}; + +ShowProfileContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowProfile(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ShowColumnsContext(parser, ctx) { + ShowStatementContext.call(this, parser); + this.columnsFormat = null; // Token; + this.tableFormat = null; // Token; + this.schemaFormat = null; // Token; + ShowStatementContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ShowColumnsContext.prototype = Object.create(ShowStatementContext.prototype); +ShowColumnsContext.prototype.constructor = ShowColumnsContext; + +MySQLParser.ShowColumnsContext = ShowColumnsContext; + +ShowColumnsContext.prototype.SHOW = function() { + return this.getToken(MySQLParser.SHOW, 0); +}; + +ShowColumnsContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +ShowColumnsContext.prototype.COLUMNS = function() { + return this.getToken(MySQLParser.COLUMNS, 0); +}; + +ShowColumnsContext.prototype.FIELDS = function() { + return this.getToken(MySQLParser.FIELDS, 0); +}; + +ShowColumnsContext.prototype.FROM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.FROM); + } else { + return this.getToken(MySQLParser.FROM, i); + } +}; + + +ShowColumnsContext.prototype.IN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.IN); + } else { + return this.getToken(MySQLParser.IN, i); + } +}; + + +ShowColumnsContext.prototype.FULL = function() { + return this.getToken(MySQLParser.FULL, 0); +}; + +ShowColumnsContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +ShowColumnsContext.prototype.showFilter = function() { + return this.getTypedRuleContext(ShowFilterContext,0); +}; +ShowColumnsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowColumns(this); + } +}; + +ShowColumnsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowColumns(this); + } +}; + +ShowColumnsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowColumns(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.ShowStatementContext = ShowStatementContext; + +MySQLParser.prototype.showStatement = function() { + + var localctx = new ShowStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 440, MySQLParser.RULE_showStatement); + var _la = 0; // Token type + try { + this.state = 5069; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,727,this._ctx); + switch(la_) { + case 1: + localctx = new ShowMasterLogsContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 4918; + this.match(MySQLParser.SHOW); + this.state = 4919; + localctx.logFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.BINARY || _la===MySQLParser.MASTER)) { + localctx.logFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4920; + this.match(MySQLParser.LOGS); + break; + + case 2: + localctx = new ShowLogEventsContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 4921; + this.match(MySQLParser.SHOW); + this.state = 4922; + localctx.logFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.BINLOG || _la===MySQLParser.RELAYLOG)) { + localctx.logFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4923; + this.match(MySQLParser.EVENTS); + this.state = 4926; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IN) { + this.state = 4924; + this.match(MySQLParser.IN); + this.state = 4925; + localctx.filename = this.match(MySQLParser.STRING_LITERAL); + } + + this.state = 4930; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FROM) { + this.state = 4928; + this.match(MySQLParser.FROM); + this.state = 4929; + localctx.fromPosition = this.decimalLiteral(); + } + + this.state = 4939; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIMIT) { + this.state = 4932; + this.match(MySQLParser.LIMIT); + this.state = 4936; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,708,this._ctx); + if(la_===1) { + this.state = 4933; + localctx.offset = this.decimalLiteral(); + this.state = 4934; + this.match(MySQLParser.COMMA); + + } + this.state = 4938; + localctx.rowCount = this.decimalLiteral(); + } + + break; + + case 3: + localctx = new ShowObjectFilterContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 4941; + this.match(MySQLParser.SHOW); + this.state = 4942; + this.showCommonEntity(); + this.state = 4944; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIKE || _la===MySQLParser.WHERE) { + this.state = 4943; + this.showFilter(); + } + + break; + + case 4: + localctx = new ShowColumnsContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 4946; + this.match(MySQLParser.SHOW); + this.state = 4948; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FULL) { + this.state = 4947; + this.match(MySQLParser.FULL); + } + + this.state = 4950; + localctx.columnsFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.COLUMNS || _la===MySQLParser.FIELDS)) { + localctx.columnsFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4951; + localctx.tableFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FROM || _la===MySQLParser.IN)) { + localctx.tableFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4952; + this.tableName(); + this.state = 4955; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FROM || _la===MySQLParser.IN) { + this.state = 4953; + localctx.schemaFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FROM || _la===MySQLParser.IN)) { + localctx.schemaFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4954; + this.uid(); + } + + this.state = 4958; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIKE || _la===MySQLParser.WHERE) { + this.state = 4957; + this.showFilter(); + } + + break; + + case 5: + localctx = new ShowCreateDbContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 4960; + this.match(MySQLParser.SHOW); + this.state = 4961; + this.match(MySQLParser.CREATE); + this.state = 4962; + localctx.schemaFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.DATABASE || _la===MySQLParser.SCHEMA)) { + localctx.schemaFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4964; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IF) { + this.state = 4963; + this.ifNotExists(); + } + + this.state = 4966; + this.uid(); + break; + + case 6: + localctx = new ShowCreateFullIdObjectContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 4967; + this.match(MySQLParser.SHOW); + this.state = 4968; + this.match(MySQLParser.CREATE); + this.state = 4969; + localctx.namedEntity = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.PROCEDURE || _la===MySQLParser.TABLE || _la===MySQLParser.TRIGGER || _la===MySQLParser.EVENT || _la===MySQLParser.FUNCTION || _la===MySQLParser.VIEW)) { + localctx.namedEntity = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4970; + this.fullId(); + break; + + case 7: + localctx = new ShowCreateUserContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 4971; + this.match(MySQLParser.SHOW); + this.state = 4972; + this.match(MySQLParser.CREATE); + this.state = 4973; + this.match(MySQLParser.USER); + this.state = 4974; + this.userName(); + break; + + case 8: + localctx = new ShowEngineContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 4975; + this.match(MySQLParser.SHOW); + this.state = 4976; + this.match(MySQLParser.ENGINE); + this.state = 4977; + this.engineName(); + this.state = 4978; + localctx.engineOption = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.MUTEX || _la===MySQLParser.STATUS)) { + localctx.engineOption = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 9: + localctx = new ShowGlobalInfoContext(this, localctx); + this.enterOuterAlt(localctx, 9); + this.state = 4980; + this.match(MySQLParser.SHOW); + this.state = 4981; + this.showGlobalInfoClause(); + break; + + case 10: + localctx = new ShowErrorsContext(this, localctx); + this.enterOuterAlt(localctx, 10); + this.state = 4982; + this.match(MySQLParser.SHOW); + this.state = 4983; + localctx.errorFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ERRORS || _la===MySQLParser.WARNINGS)) { + localctx.errorFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + this.state = 4984; + this.match(MySQLParser.LIMIT); + this.state = 4988; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,715,this._ctx); + if(la_===1) { + this.state = 4985; + localctx.offset = this.decimalLiteral(); + this.state = 4986; + this.match(MySQLParser.COMMA); + + } + this.state = 4990; + localctx.rowCount = this.decimalLiteral(); + break; + + case 11: + localctx = new ShowCountErrorsContext(this, localctx); + this.enterOuterAlt(localctx, 11); + this.state = 4991; + this.match(MySQLParser.SHOW); + this.state = 4992; + this.match(MySQLParser.COUNT); + this.state = 4993; + this.match(MySQLParser.LR_BRACKET); + this.state = 4994; + this.match(MySQLParser.STAR); + this.state = 4995; + this.match(MySQLParser.RR_BRACKET); + this.state = 4996; + localctx.errorFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ERRORS || _la===MySQLParser.WARNINGS)) { + localctx.errorFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 12: + localctx = new ShowSchemaFilterContext(this, localctx); + this.enterOuterAlt(localctx, 12); + this.state = 4997; + this.match(MySQLParser.SHOW); + this.state = 4998; + this.showSchemaEntity(); + this.state = 5001; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FROM || _la===MySQLParser.IN) { + this.state = 4999; + localctx.schemaFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FROM || _la===MySQLParser.IN)) { + localctx.schemaFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5000; + this.uid(); + } + + this.state = 5004; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIKE || _la===MySQLParser.WHERE) { + this.state = 5003; + this.showFilter(); + } + + break; + + case 13: + localctx = new ShowRoutineContext(this, localctx); + this.enterOuterAlt(localctx, 13); + this.state = 5006; + this.match(MySQLParser.SHOW); + this.state = 5007; + localctx.routine = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.PROCEDURE || _la===MySQLParser.FUNCTION)) { + localctx.routine = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5008; + this.match(MySQLParser.CODE); + this.state = 5009; + this.fullId(); + break; + + case 14: + localctx = new ShowGrantsContext(this, localctx); + this.enterOuterAlt(localctx, 14); + this.state = 5010; + this.match(MySQLParser.SHOW); + this.state = 5011; + this.match(MySQLParser.GRANTS); + this.state = 5014; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 5012; + this.match(MySQLParser.FOR); + this.state = 5013; + this.userName(); + } + + break; + + case 15: + localctx = new ShowIndexesContext(this, localctx); + this.enterOuterAlt(localctx, 15); + this.state = 5016; + this.match(MySQLParser.SHOW); + this.state = 5017; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEYS || _la===MySQLParser.INDEXES)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5018; + localctx.tableFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FROM || _la===MySQLParser.IN)) { + localctx.tableFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5019; + this.tableName(); + this.state = 5022; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FROM || _la===MySQLParser.IN) { + this.state = 5020; + localctx.schemaFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FROM || _la===MySQLParser.IN)) { + localctx.schemaFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5021; + this.uid(); + } + + this.state = 5026; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WHERE) { + this.state = 5024; + this.match(MySQLParser.WHERE); + this.state = 5025; + this.expression(0); + } + + break; + + case 16: + localctx = new ShowOpenTablesContext(this, localctx); + this.enterOuterAlt(localctx, 16); + this.state = 5028; + this.match(MySQLParser.SHOW); + this.state = 5029; + this.match(MySQLParser.OPEN); + this.state = 5030; + this.match(MySQLParser.TABLES); + this.state = 5033; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FROM || _la===MySQLParser.IN) { + this.state = 5031; + localctx.schemaFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FROM || _la===MySQLParser.IN)) { + localctx.schemaFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5032; + this.uid(); + } + + this.state = 5036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LIKE || _la===MySQLParser.WHERE) { + this.state = 5035; + this.showFilter(); + } + + break; + + case 17: + localctx = new ShowProfileContext(this, localctx); + this.enterOuterAlt(localctx, 17); + this.state = 5038; + this.match(MySQLParser.SHOW); + this.state = 5039; + this.match(MySQLParser.PROFILE); + this.state = 5040; + this.showProfileType(); + this.state = 5045; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5041; + this.match(MySQLParser.COMMA); + this.state = 5042; + this.showProfileType(); + this.state = 5047; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5051; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 5048; + this.match(MySQLParser.FOR); + this.state = 5049; + this.match(MySQLParser.QUERY); + this.state = 5050; + localctx.queryCount = this.decimalLiteral(); + } + + this.state = 5053; + this.match(MySQLParser.LIMIT); + this.state = 5057; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,725,this._ctx); + if(la_===1) { + this.state = 5054; + localctx.offset = this.decimalLiteral(); + this.state = 5055; + this.match(MySQLParser.COMMA); + + } + this.state = 5059; + localctx.rowCount = this.decimalLiteral(); + break; + + case 18: + localctx = new ShowSlaveStatusContext(this, localctx); + this.enterOuterAlt(localctx, 18); + this.state = 5061; + this.match(MySQLParser.SHOW); + this.state = 5062; + this.match(MySQLParser.SLAVE); + this.state = 5063; + this.match(MySQLParser.STATUS); + this.state = 5067; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 5064; + this.match(MySQLParser.FOR); + this.state = 5065; + this.match(MySQLParser.CHANNEL); + this.state = 5066; + this.match(MySQLParser.STRING_LITERAL); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function VariableClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_variableClause; + return this; +} + +VariableClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +VariableClauseContext.prototype.constructor = VariableClauseContext; + +VariableClauseContext.prototype.LOCAL_ID = function() { + return this.getToken(MySQLParser.LOCAL_ID, 0); +}; + +VariableClauseContext.prototype.GLOBAL_ID = function() { + return this.getToken(MySQLParser.GLOBAL_ID, 0); +}; + +VariableClauseContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +VariableClauseContext.prototype.GLOBAL = function() { + return this.getToken(MySQLParser.GLOBAL, 0); +}; + +VariableClauseContext.prototype.SESSION = function() { + return this.getToken(MySQLParser.SESSION, 0); +}; + +VariableClauseContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +VariableClauseContext.prototype.AT_SIGN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.AT_SIGN); + } else { + return this.getToken(MySQLParser.AT_SIGN, i); + } +}; + + +VariableClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterVariableClause(this); + } +}; + +VariableClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitVariableClause(this); + } +}; + +VariableClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitVariableClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.VariableClauseContext = VariableClauseContext; + +MySQLParser.prototype.variableClause = function() { + + var localctx = new VariableClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 442, MySQLParser.RULE_variableClause); + var _la = 0; // Token type + try { + this.state = 5081; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.LOCAL_ID: + this.enterOuterAlt(localctx, 1); + this.state = 5071; + this.match(MySQLParser.LOCAL_ID); + break; + case MySQLParser.GLOBAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 5072; + this.match(MySQLParser.GLOBAL_ID); + break; + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.AT_SIGN: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.enterOuterAlt(localctx, 3); + this.state = 5078; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,729,this._ctx); + if(la_===1) { + this.state = 5075; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AT_SIGN) { + this.state = 5073; + this.match(MySQLParser.AT_SIGN); + this.state = 5074; + this.match(MySQLParser.AT_SIGN); + } + + this.state = 5077; + _la = this._input.LA(1); + if(!(_la===MySQLParser.GLOBAL || _la===MySQLParser.LOCAL || _la===MySQLParser.SESSION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 5080; + this.uid(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ShowCommonEntityContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_showCommonEntity; + return this; +} + +ShowCommonEntityContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ShowCommonEntityContext.prototype.constructor = ShowCommonEntityContext; + +ShowCommonEntityContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +ShowCommonEntityContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +ShowCommonEntityContext.prototype.COLLATION = function() { + return this.getToken(MySQLParser.COLLATION, 0); +}; + +ShowCommonEntityContext.prototype.DATABASES = function() { + return this.getToken(MySQLParser.DATABASES, 0); +}; + +ShowCommonEntityContext.prototype.SCHEMAS = function() { + return this.getToken(MySQLParser.SCHEMAS, 0); +}; + +ShowCommonEntityContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +ShowCommonEntityContext.prototype.STATUS = function() { + return this.getToken(MySQLParser.STATUS, 0); +}; + +ShowCommonEntityContext.prototype.PROCEDURE = function() { + return this.getToken(MySQLParser.PROCEDURE, 0); +}; + +ShowCommonEntityContext.prototype.VARIABLES = function() { + return this.getToken(MySQLParser.VARIABLES, 0); +}; + +ShowCommonEntityContext.prototype.GLOBAL = function() { + return this.getToken(MySQLParser.GLOBAL, 0); +}; + +ShowCommonEntityContext.prototype.SESSION = function() { + return this.getToken(MySQLParser.SESSION, 0); +}; + +ShowCommonEntityContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowCommonEntity(this); + } +}; + +ShowCommonEntityContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowCommonEntity(this); + } +}; + +ShowCommonEntityContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowCommonEntity(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ShowCommonEntityContext = ShowCommonEntityContext; + +MySQLParser.prototype.showCommonEntity = function() { + + var localctx = new ShowCommonEntityContext(this, this._ctx, this.state); + this.enterRule(localctx, 444, MySQLParser.RULE_showCommonEntity); + var _la = 0; // Token type + try { + this.state = 5096; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CHARACTER: + this.enterOuterAlt(localctx, 1); + this.state = 5083; + this.match(MySQLParser.CHARACTER); + this.state = 5084; + this.match(MySQLParser.SET); + break; + case MySQLParser.COLLATION: + this.enterOuterAlt(localctx, 2); + this.state = 5085; + this.match(MySQLParser.COLLATION); + break; + case MySQLParser.DATABASES: + this.enterOuterAlt(localctx, 3); + this.state = 5086; + this.match(MySQLParser.DATABASES); + break; + case MySQLParser.SCHEMAS: + this.enterOuterAlt(localctx, 4); + this.state = 5087; + this.match(MySQLParser.SCHEMAS); + break; + case MySQLParser.FUNCTION: + this.enterOuterAlt(localctx, 5); + this.state = 5088; + this.match(MySQLParser.FUNCTION); + this.state = 5089; + this.match(MySQLParser.STATUS); + break; + case MySQLParser.PROCEDURE: + this.enterOuterAlt(localctx, 6); + this.state = 5090; + this.match(MySQLParser.PROCEDURE); + this.state = 5091; + this.match(MySQLParser.STATUS); + break; + case MySQLParser.GLOBAL: + case MySQLParser.SESSION: + case MySQLParser.STATUS: + case MySQLParser.VARIABLES: + this.enterOuterAlt(localctx, 7); + this.state = 5093; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.GLOBAL || _la===MySQLParser.SESSION) { + this.state = 5092; + _la = this._input.LA(1); + if(!(_la===MySQLParser.GLOBAL || _la===MySQLParser.SESSION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5095; + _la = this._input.LA(1); + if(!(_la===MySQLParser.STATUS || _la===MySQLParser.VARIABLES)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ShowFilterContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_showFilter; + return this; +} + +ShowFilterContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ShowFilterContext.prototype.constructor = ShowFilterContext; + +ShowFilterContext.prototype.LIKE = function() { + return this.getToken(MySQLParser.LIKE, 0); +}; + +ShowFilterContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +ShowFilterContext.prototype.WHERE = function() { + return this.getToken(MySQLParser.WHERE, 0); +}; + +ShowFilterContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +ShowFilterContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowFilter(this); + } +}; + +ShowFilterContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowFilter(this); + } +}; + +ShowFilterContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowFilter(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ShowFilterContext = ShowFilterContext; + +MySQLParser.prototype.showFilter = function() { + + var localctx = new ShowFilterContext(this, this._ctx, this.state); + this.enterRule(localctx, 446, MySQLParser.RULE_showFilter); + try { + this.state = 5102; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.LIKE: + this.enterOuterAlt(localctx, 1); + this.state = 5098; + this.match(MySQLParser.LIKE); + this.state = 5099; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.WHERE: + this.enterOuterAlt(localctx, 2); + this.state = 5100; + this.match(MySQLParser.WHERE); + this.state = 5101; + this.expression(0); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ShowGlobalInfoClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_showGlobalInfoClause; + return this; +} + +ShowGlobalInfoClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ShowGlobalInfoClauseContext.prototype.constructor = ShowGlobalInfoClauseContext; + +ShowGlobalInfoClauseContext.prototype.ENGINES = function() { + return this.getToken(MySQLParser.ENGINES, 0); +}; + +ShowGlobalInfoClauseContext.prototype.STORAGE = function() { + return this.getToken(MySQLParser.STORAGE, 0); +}; + +ShowGlobalInfoClauseContext.prototype.MASTER = function() { + return this.getToken(MySQLParser.MASTER, 0); +}; + +ShowGlobalInfoClauseContext.prototype.STATUS = function() { + return this.getToken(MySQLParser.STATUS, 0); +}; + +ShowGlobalInfoClauseContext.prototype.PLUGINS = function() { + return this.getToken(MySQLParser.PLUGINS, 0); +}; + +ShowGlobalInfoClauseContext.prototype.PRIVILEGES = function() { + return this.getToken(MySQLParser.PRIVILEGES, 0); +}; + +ShowGlobalInfoClauseContext.prototype.PROCESSLIST = function() { + return this.getToken(MySQLParser.PROCESSLIST, 0); +}; + +ShowGlobalInfoClauseContext.prototype.FULL = function() { + return this.getToken(MySQLParser.FULL, 0); +}; + +ShowGlobalInfoClauseContext.prototype.PROFILES = function() { + return this.getToken(MySQLParser.PROFILES, 0); +}; + +ShowGlobalInfoClauseContext.prototype.SLAVE = function() { + return this.getToken(MySQLParser.SLAVE, 0); +}; + +ShowGlobalInfoClauseContext.prototype.HOSTS = function() { + return this.getToken(MySQLParser.HOSTS, 0); +}; + +ShowGlobalInfoClauseContext.prototype.AUTHORS = function() { + return this.getToken(MySQLParser.AUTHORS, 0); +}; + +ShowGlobalInfoClauseContext.prototype.CONTRIBUTORS = function() { + return this.getToken(MySQLParser.CONTRIBUTORS, 0); +}; + +ShowGlobalInfoClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowGlobalInfoClause(this); + } +}; + +ShowGlobalInfoClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowGlobalInfoClause(this); + } +}; + +ShowGlobalInfoClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowGlobalInfoClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ShowGlobalInfoClauseContext = ShowGlobalInfoClauseContext; + +MySQLParser.prototype.showGlobalInfoClause = function() { + + var localctx = new ShowGlobalInfoClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 448, MySQLParser.RULE_showGlobalInfoClause); + var _la = 0; // Token type + try { + this.state = 5121; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ENGINES: + case MySQLParser.STORAGE: + this.enterOuterAlt(localctx, 1); + this.state = 5105; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.STORAGE) { + this.state = 5104; + this.match(MySQLParser.STORAGE); + } + + this.state = 5107; + this.match(MySQLParser.ENGINES); + break; + case MySQLParser.MASTER: + this.enterOuterAlt(localctx, 2); + this.state = 5108; + this.match(MySQLParser.MASTER); + this.state = 5109; + this.match(MySQLParser.STATUS); + break; + case MySQLParser.PLUGINS: + this.enterOuterAlt(localctx, 3); + this.state = 5110; + this.match(MySQLParser.PLUGINS); + break; + case MySQLParser.PRIVILEGES: + this.enterOuterAlt(localctx, 4); + this.state = 5111; + this.match(MySQLParser.PRIVILEGES); + break; + case MySQLParser.FULL: + case MySQLParser.PROCESSLIST: + this.enterOuterAlt(localctx, 5); + this.state = 5113; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FULL) { + this.state = 5112; + this.match(MySQLParser.FULL); + } + + this.state = 5115; + this.match(MySQLParser.PROCESSLIST); + break; + case MySQLParser.PROFILES: + this.enterOuterAlt(localctx, 6); + this.state = 5116; + this.match(MySQLParser.PROFILES); + break; + case MySQLParser.SLAVE: + this.enterOuterAlt(localctx, 7); + this.state = 5117; + this.match(MySQLParser.SLAVE); + this.state = 5118; + this.match(MySQLParser.HOSTS); + break; + case MySQLParser.AUTHORS: + this.enterOuterAlt(localctx, 8); + this.state = 5119; + this.match(MySQLParser.AUTHORS); + break; + case MySQLParser.CONTRIBUTORS: + this.enterOuterAlt(localctx, 9); + this.state = 5120; + this.match(MySQLParser.CONTRIBUTORS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ShowSchemaEntityContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_showSchemaEntity; + return this; +} + +ShowSchemaEntityContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ShowSchemaEntityContext.prototype.constructor = ShowSchemaEntityContext; + +ShowSchemaEntityContext.prototype.EVENTS = function() { + return this.getToken(MySQLParser.EVENTS, 0); +}; + +ShowSchemaEntityContext.prototype.TABLE = function() { + return this.getToken(MySQLParser.TABLE, 0); +}; + +ShowSchemaEntityContext.prototype.STATUS = function() { + return this.getToken(MySQLParser.STATUS, 0); +}; + +ShowSchemaEntityContext.prototype.TABLES = function() { + return this.getToken(MySQLParser.TABLES, 0); +}; + +ShowSchemaEntityContext.prototype.FULL = function() { + return this.getToken(MySQLParser.FULL, 0); +}; + +ShowSchemaEntityContext.prototype.TRIGGERS = function() { + return this.getToken(MySQLParser.TRIGGERS, 0); +}; + +ShowSchemaEntityContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowSchemaEntity(this); + } +}; + +ShowSchemaEntityContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowSchemaEntity(this); + } +}; + +ShowSchemaEntityContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowSchemaEntity(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ShowSchemaEntityContext = ShowSchemaEntityContext; + +MySQLParser.prototype.showSchemaEntity = function() { + + var localctx = new ShowSchemaEntityContext(this, this._ctx, this.state); + this.enterRule(localctx, 450, MySQLParser.RULE_showSchemaEntity); + var _la = 0; // Token type + try { + this.state = 5131; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.EVENTS: + this.enterOuterAlt(localctx, 1); + this.state = 5123; + this.match(MySQLParser.EVENTS); + break; + case MySQLParser.TABLE: + this.enterOuterAlt(localctx, 2); + this.state = 5124; + this.match(MySQLParser.TABLE); + this.state = 5125; + this.match(MySQLParser.STATUS); + break; + case MySQLParser.FULL: + case MySQLParser.TABLES: + this.enterOuterAlt(localctx, 3); + this.state = 5127; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FULL) { + this.state = 5126; + this.match(MySQLParser.FULL); + } + + this.state = 5129; + this.match(MySQLParser.TABLES); + break; + case MySQLParser.TRIGGERS: + this.enterOuterAlt(localctx, 4); + this.state = 5130; + this.match(MySQLParser.TRIGGERS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ShowProfileTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_showProfileType; + return this; +} + +ShowProfileTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ShowProfileTypeContext.prototype.constructor = ShowProfileTypeContext; + +ShowProfileTypeContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +ShowProfileTypeContext.prototype.BLOCK = function() { + return this.getToken(MySQLParser.BLOCK, 0); +}; + +ShowProfileTypeContext.prototype.IO = function() { + return this.getToken(MySQLParser.IO, 0); +}; + +ShowProfileTypeContext.prototype.CONTEXT = function() { + return this.getToken(MySQLParser.CONTEXT, 0); +}; + +ShowProfileTypeContext.prototype.SWITCHES = function() { + return this.getToken(MySQLParser.SWITCHES, 0); +}; + +ShowProfileTypeContext.prototype.CPU = function() { + return this.getToken(MySQLParser.CPU, 0); +}; + +ShowProfileTypeContext.prototype.IPC = function() { + return this.getToken(MySQLParser.IPC, 0); +}; + +ShowProfileTypeContext.prototype.MEMORY = function() { + return this.getToken(MySQLParser.MEMORY, 0); +}; + +ShowProfileTypeContext.prototype.PAGE = function() { + return this.getToken(MySQLParser.PAGE, 0); +}; + +ShowProfileTypeContext.prototype.FAULTS = function() { + return this.getToken(MySQLParser.FAULTS, 0); +}; + +ShowProfileTypeContext.prototype.SOURCE = function() { + return this.getToken(MySQLParser.SOURCE, 0); +}; + +ShowProfileTypeContext.prototype.SWAPS = function() { + return this.getToken(MySQLParser.SWAPS, 0); +}; + +ShowProfileTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShowProfileType(this); + } +}; + +ShowProfileTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShowProfileType(this); + } +}; + +ShowProfileTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShowProfileType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ShowProfileTypeContext = ShowProfileTypeContext; + +MySQLParser.prototype.showProfileType = function() { + + var localctx = new ShowProfileTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 452, MySQLParser.RULE_showProfileType); + try { + this.state = 5145; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ALL: + this.enterOuterAlt(localctx, 1); + this.state = 5133; + this.match(MySQLParser.ALL); + break; + case MySQLParser.BLOCK: + this.enterOuterAlt(localctx, 2); + this.state = 5134; + this.match(MySQLParser.BLOCK); + this.state = 5135; + this.match(MySQLParser.IO); + break; + case MySQLParser.CONTEXT: + this.enterOuterAlt(localctx, 3); + this.state = 5136; + this.match(MySQLParser.CONTEXT); + this.state = 5137; + this.match(MySQLParser.SWITCHES); + break; + case MySQLParser.CPU: + this.enterOuterAlt(localctx, 4); + this.state = 5138; + this.match(MySQLParser.CPU); + break; + case MySQLParser.IPC: + this.enterOuterAlt(localctx, 5); + this.state = 5139; + this.match(MySQLParser.IPC); + break; + case MySQLParser.MEMORY: + this.enterOuterAlt(localctx, 6); + this.state = 5140; + this.match(MySQLParser.MEMORY); + break; + case MySQLParser.PAGE: + this.enterOuterAlt(localctx, 7); + this.state = 5141; + this.match(MySQLParser.PAGE); + this.state = 5142; + this.match(MySQLParser.FAULTS); + break; + case MySQLParser.SOURCE: + this.enterOuterAlt(localctx, 8); + this.state = 5143; + this.match(MySQLParser.SOURCE); + break; + case MySQLParser.SWAPS: + this.enterOuterAlt(localctx, 9); + this.state = 5144; + this.match(MySQLParser.SWAPS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BinlogStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_binlogStatement; + return this; +} + +BinlogStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BinlogStatementContext.prototype.constructor = BinlogStatementContext; + +BinlogStatementContext.prototype.BINLOG = function() { + return this.getToken(MySQLParser.BINLOG, 0); +}; + +BinlogStatementContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +BinlogStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBinlogStatement(this); + } +}; + +BinlogStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBinlogStatement(this); + } +}; + +BinlogStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBinlogStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.BinlogStatementContext = BinlogStatementContext; + +MySQLParser.prototype.binlogStatement = function() { + + var localctx = new BinlogStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 454, MySQLParser.RULE_binlogStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5147; + this.match(MySQLParser.BINLOG); + this.state = 5148; + this.match(MySQLParser.STRING_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CacheIndexStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_cacheIndexStatement; + this.schema = null; // UidContext + return this; +} + +CacheIndexStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CacheIndexStatementContext.prototype.constructor = CacheIndexStatementContext; + +CacheIndexStatementContext.prototype.CACHE = function() { + return this.getToken(MySQLParser.CACHE, 0); +}; + +CacheIndexStatementContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +CacheIndexStatementContext.prototype.tableIndexes = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableIndexesContext); + } else { + return this.getTypedRuleContext(TableIndexesContext,i); + } +}; + +CacheIndexStatementContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; + +CacheIndexStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CacheIndexStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +CacheIndexStatementContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +CacheIndexStatementContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CacheIndexStatementContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CacheIndexStatementContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +CacheIndexStatementContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +CacheIndexStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCacheIndexStatement(this); + } +}; + +CacheIndexStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCacheIndexStatement(this); + } +}; + +CacheIndexStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCacheIndexStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CacheIndexStatementContext = CacheIndexStatementContext; + +MySQLParser.prototype.cacheIndexStatement = function() { + + var localctx = new CacheIndexStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 456, MySQLParser.RULE_cacheIndexStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5150; + this.match(MySQLParser.CACHE); + this.state = 5151; + this.match(MySQLParser.INDEX); + this.state = 5152; + this.tableIndexes(); + this.state = 5157; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5153; + this.match(MySQLParser.COMMA); + this.state = 5154; + this.tableIndexes(); + this.state = 5159; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5167; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 5160; + this.match(MySQLParser.PARTITION); + this.state = 5161; + this.match(MySQLParser.LR_BRACKET); + this.state = 5164; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 5162; + this.uidList(); + break; + case MySQLParser.ALL: + this.state = 5163; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5166; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 5169; + this.match(MySQLParser.IN); + this.state = 5170; + localctx.schema = this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FlushStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_flushStatement; + this.flushFormat = null; // Token + return this; +} + +FlushStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FlushStatementContext.prototype.constructor = FlushStatementContext; + +FlushStatementContext.prototype.FLUSH = function() { + return this.getToken(MySQLParser.FLUSH, 0); +}; + +FlushStatementContext.prototype.flushOption = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FlushOptionContext); + } else { + return this.getTypedRuleContext(FlushOptionContext,i); + } +}; + +FlushStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +FlushStatementContext.prototype.NO_WRITE_TO_BINLOG = function() { + return this.getToken(MySQLParser.NO_WRITE_TO_BINLOG, 0); +}; + +FlushStatementContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +FlushStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFlushStatement(this); + } +}; + +FlushStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFlushStatement(this); + } +}; + +FlushStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFlushStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FlushStatementContext = FlushStatementContext; + +MySQLParser.prototype.flushStatement = function() { + + var localctx = new FlushStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 458, MySQLParser.RULE_flushStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5172; + this.match(MySQLParser.FLUSH); + this.state = 5174; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NO_WRITE_TO_BINLOG || _la===MySQLParser.LOCAL) { + this.state = 5173; + localctx.flushFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.NO_WRITE_TO_BINLOG || _la===MySQLParser.LOCAL)) { + localctx.flushFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5176; + this.flushOption(); + this.state = 5181; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5177; + this.match(MySQLParser.COMMA); + this.state = 5178; + this.flushOption(); + this.state = 5183; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function KillStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_killStatement; + this.connectionFormat = null; // Token + return this; +} + +KillStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +KillStatementContext.prototype.constructor = KillStatementContext; + +KillStatementContext.prototype.KILL = function() { + return this.getToken(MySQLParser.KILL, 0); +}; + +KillStatementContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; + +KillStatementContext.prototype.CONNECTION = function() { + return this.getToken(MySQLParser.CONNECTION, 0); +}; + +KillStatementContext.prototype.QUERY = function() { + return this.getToken(MySQLParser.QUERY, 0); +}; + +KillStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterKillStatement(this); + } +}; + +KillStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitKillStatement(this); + } +}; + +KillStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitKillStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.KillStatementContext = KillStatementContext; + +MySQLParser.prototype.killStatement = function() { + + var localctx = new KillStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 460, MySQLParser.RULE_killStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5184; + this.match(MySQLParser.KILL); + this.state = 5186; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CONNECTION || _la===MySQLParser.QUERY) { + this.state = 5185; + localctx.connectionFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CONNECTION || _la===MySQLParser.QUERY)) { + localctx.connectionFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5189; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5188; + this.decimalLiteral(); + this.state = 5191; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(((((_la - 1025)) & ~0x1f) == 0 && ((1 << (_la - 1025)) & ((1 << (MySQLParser.ZERO_DECIMAL - 1025)) | (1 << (MySQLParser.ONE_DECIMAL - 1025)) | (1 << (MySQLParser.TWO_DECIMAL - 1025)) | (1 << (MySQLParser.DECIMAL_LITERAL - 1025)))) !== 0)); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LoadIndexIntoCacheContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_loadIndexIntoCache; + return this; +} + +LoadIndexIntoCacheContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LoadIndexIntoCacheContext.prototype.constructor = LoadIndexIntoCacheContext; + +LoadIndexIntoCacheContext.prototype.LOAD = function() { + return this.getToken(MySQLParser.LOAD, 0); +}; + +LoadIndexIntoCacheContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +LoadIndexIntoCacheContext.prototype.INTO = function() { + return this.getToken(MySQLParser.INTO, 0); +}; + +LoadIndexIntoCacheContext.prototype.CACHE = function() { + return this.getToken(MySQLParser.CACHE, 0); +}; + +LoadIndexIntoCacheContext.prototype.loadedTableIndexes = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LoadedTableIndexesContext); + } else { + return this.getTypedRuleContext(LoadedTableIndexesContext,i); + } +}; + +LoadIndexIntoCacheContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +LoadIndexIntoCacheContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLoadIndexIntoCache(this); + } +}; + +LoadIndexIntoCacheContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLoadIndexIntoCache(this); + } +}; + +LoadIndexIntoCacheContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLoadIndexIntoCache(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LoadIndexIntoCacheContext = LoadIndexIntoCacheContext; + +MySQLParser.prototype.loadIndexIntoCache = function() { + + var localctx = new LoadIndexIntoCacheContext(this, this._ctx, this.state); + this.enterRule(localctx, 462, MySQLParser.RULE_loadIndexIntoCache); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5193; + this.match(MySQLParser.LOAD); + this.state = 5194; + this.match(MySQLParser.INDEX); + this.state = 5195; + this.match(MySQLParser.INTO); + this.state = 5196; + this.match(MySQLParser.CACHE); + this.state = 5197; + this.loadedTableIndexes(); + this.state = 5202; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5198; + this.match(MySQLParser.COMMA); + this.state = 5199; + this.loadedTableIndexes(); + this.state = 5204; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ResetStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_resetStatement; + return this; +} + +ResetStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ResetStatementContext.prototype.constructor = ResetStatementContext; + +ResetStatementContext.prototype.RESET = function() { + return this.getToken(MySQLParser.RESET, 0); +}; + +ResetStatementContext.prototype.QUERY = function() { + return this.getToken(MySQLParser.QUERY, 0); +}; + +ResetStatementContext.prototype.CACHE = function() { + return this.getToken(MySQLParser.CACHE, 0); +}; + +ResetStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterResetStatement(this); + } +}; + +ResetStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitResetStatement(this); + } +}; + +ResetStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitResetStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ResetStatementContext = ResetStatementContext; + +MySQLParser.prototype.resetStatement = function() { + + var localctx = new ResetStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 464, MySQLParser.RULE_resetStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5205; + this.match(MySQLParser.RESET); + this.state = 5206; + this.match(MySQLParser.QUERY); + this.state = 5207; + this.match(MySQLParser.CACHE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ShutdownStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_shutdownStatement; + return this; +} + +ShutdownStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ShutdownStatementContext.prototype.constructor = ShutdownStatementContext; + +ShutdownStatementContext.prototype.SHUTDOWN = function() { + return this.getToken(MySQLParser.SHUTDOWN, 0); +}; + +ShutdownStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterShutdownStatement(this); + } +}; + +ShutdownStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitShutdownStatement(this); + } +}; + +ShutdownStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitShutdownStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ShutdownStatementContext = ShutdownStatementContext; + +MySQLParser.prototype.shutdownStatement = function() { + + var localctx = new ShutdownStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 466, MySQLParser.RULE_shutdownStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5209; + this.match(MySQLParser.SHUTDOWN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableIndexesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tableIndexes; + this.indexFormat = null; // Token + return this; +} + +TableIndexesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableIndexesContext.prototype.constructor = TableIndexesContext; + +TableIndexesContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +TableIndexesContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +TableIndexesContext.prototype.uidList = function() { + return this.getTypedRuleContext(UidListContext,0); +}; + +TableIndexesContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +TableIndexesContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +TableIndexesContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +TableIndexesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableIndexes(this); + } +}; + +TableIndexesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableIndexes(this); + } +}; + +TableIndexesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableIndexes(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TableIndexesContext = TableIndexesContext; + +MySQLParser.prototype.tableIndexes = function() { + + var localctx = new TableIndexesContext(this, this._ctx, this.state); + this.enterRule(localctx, 468, MySQLParser.RULE_tableIndexes); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5211; + this.tableName(); + this.state = 5219; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INDEX || _la===MySQLParser.KEY || _la===MySQLParser.LR_BRACKET) { + this.state = 5213; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INDEX || _la===MySQLParser.KEY) { + this.state = 5212; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5215; + this.match(MySQLParser.LR_BRACKET); + this.state = 5216; + this.uidList(); + this.state = 5217; + this.match(MySQLParser.RR_BRACKET); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FlushOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_flushOption; + return this; +} + +FlushOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FlushOptionContext.prototype.constructor = FlushOptionContext; + + + +FlushOptionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function TableFlushOptionContext(parser, ctx) { + FlushOptionContext.call(this, parser); + FlushOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TableFlushOptionContext.prototype = Object.create(FlushOptionContext.prototype); +TableFlushOptionContext.prototype.constructor = TableFlushOptionContext; + +MySQLParser.TableFlushOptionContext = TableFlushOptionContext; + +TableFlushOptionContext.prototype.TABLES = function() { + return this.getToken(MySQLParser.TABLES, 0); +}; + +TableFlushOptionContext.prototype.tables = function() { + return this.getTypedRuleContext(TablesContext,0); +}; + +TableFlushOptionContext.prototype.flushTableOption = function() { + return this.getTypedRuleContext(FlushTableOptionContext,0); +}; +TableFlushOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableFlushOption(this); + } +}; + +TableFlushOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableFlushOption(this); + } +}; + +TableFlushOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableFlushOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ChannelFlushOptionContext(parser, ctx) { + FlushOptionContext.call(this, parser); + FlushOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ChannelFlushOptionContext.prototype = Object.create(FlushOptionContext.prototype); +ChannelFlushOptionContext.prototype.constructor = ChannelFlushOptionContext; + +MySQLParser.ChannelFlushOptionContext = ChannelFlushOptionContext; + +ChannelFlushOptionContext.prototype.RELAY = function() { + return this.getToken(MySQLParser.RELAY, 0); +}; + +ChannelFlushOptionContext.prototype.LOGS = function() { + return this.getToken(MySQLParser.LOGS, 0); +}; + +ChannelFlushOptionContext.prototype.channelOption = function() { + return this.getTypedRuleContext(ChannelOptionContext,0); +}; +ChannelFlushOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterChannelFlushOption(this); + } +}; + +ChannelFlushOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitChannelFlushOption(this); + } +}; + +ChannelFlushOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitChannelFlushOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SimpleFlushOptionContext(parser, ctx) { + FlushOptionContext.call(this, parser); + FlushOptionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SimpleFlushOptionContext.prototype = Object.create(FlushOptionContext.prototype); +SimpleFlushOptionContext.prototype.constructor = SimpleFlushOptionContext; + +MySQLParser.SimpleFlushOptionContext = SimpleFlushOptionContext; + +SimpleFlushOptionContext.prototype.DES_KEY_FILE = function() { + return this.getToken(MySQLParser.DES_KEY_FILE, 0); +}; + +SimpleFlushOptionContext.prototype.HOSTS = function() { + return this.getToken(MySQLParser.HOSTS, 0); +}; + +SimpleFlushOptionContext.prototype.LOGS = function() { + return this.getToken(MySQLParser.LOGS, 0); +}; + +SimpleFlushOptionContext.prototype.OPTIMIZER_COSTS = function() { + return this.getToken(MySQLParser.OPTIMIZER_COSTS, 0); +}; + +SimpleFlushOptionContext.prototype.PRIVILEGES = function() { + return this.getToken(MySQLParser.PRIVILEGES, 0); +}; + +SimpleFlushOptionContext.prototype.QUERY = function() { + return this.getToken(MySQLParser.QUERY, 0); +}; + +SimpleFlushOptionContext.prototype.CACHE = function() { + return this.getToken(MySQLParser.CACHE, 0); +}; + +SimpleFlushOptionContext.prototype.STATUS = function() { + return this.getToken(MySQLParser.STATUS, 0); +}; + +SimpleFlushOptionContext.prototype.USER_RESOURCES = function() { + return this.getToken(MySQLParser.USER_RESOURCES, 0); +}; + +SimpleFlushOptionContext.prototype.TABLES = function() { + return this.getToken(MySQLParser.TABLES, 0); +}; + +SimpleFlushOptionContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +SimpleFlushOptionContext.prototype.READ = function() { + return this.getToken(MySQLParser.READ, 0); +}; + +SimpleFlushOptionContext.prototype.LOCK = function() { + return this.getToken(MySQLParser.LOCK, 0); +}; + +SimpleFlushOptionContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +SimpleFlushOptionContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +SimpleFlushOptionContext.prototype.ERROR = function() { + return this.getToken(MySQLParser.ERROR, 0); +}; + +SimpleFlushOptionContext.prototype.GENERAL = function() { + return this.getToken(MySQLParser.GENERAL, 0); +}; + +SimpleFlushOptionContext.prototype.RELAY = function() { + return this.getToken(MySQLParser.RELAY, 0); +}; + +SimpleFlushOptionContext.prototype.SLOW = function() { + return this.getToken(MySQLParser.SLOW, 0); +}; +SimpleFlushOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleFlushOption(this); + } +}; + +SimpleFlushOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleFlushOption(this); + } +}; + +SimpleFlushOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleFlushOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.FlushOptionContext = FlushOptionContext; + +MySQLParser.prototype.flushOption = function() { + + var localctx = new FlushOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 470, MySQLParser.RULE_flushOption); + var _la = 0; // Token type + try { + this.state = 5251; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,755,this._ctx); + switch(la_) { + case 1: + localctx = new SimpleFlushOptionContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 5239; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.DES_KEY_FILE: + this.state = 5221; + this.match(MySQLParser.DES_KEY_FILE); + break; + case MySQLParser.HOSTS: + this.state = 5222; + this.match(MySQLParser.HOSTS); + break; + case MySQLParser.BINARY: + case MySQLParser.ENGINE: + case MySQLParser.ERROR: + case MySQLParser.GENERAL: + case MySQLParser.LOGS: + case MySQLParser.RELAY: + case MySQLParser.SLOW: + this.state = 5224; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.BINARY || ((((_la - 342)) & ~0x1f) == 0 && ((1 << (_la - 342)) & ((1 << (MySQLParser.ENGINE - 342)) | (1 << (MySQLParser.ERROR - 342)) | (1 << (MySQLParser.GENERAL - 342)))) !== 0) || _la===MySQLParser.RELAY || _la===MySQLParser.SLOW) { + this.state = 5223; + _la = this._input.LA(1); + if(!(_la===MySQLParser.BINARY || ((((_la - 342)) & ~0x1f) == 0 && ((1 << (_la - 342)) & ((1 << (MySQLParser.ENGINE - 342)) | (1 << (MySQLParser.ERROR - 342)) | (1 << (MySQLParser.GENERAL - 342)))) !== 0) || _la===MySQLParser.RELAY || _la===MySQLParser.SLOW)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5226; + this.match(MySQLParser.LOGS); + break; + case MySQLParser.OPTIMIZER_COSTS: + this.state = 5227; + this.match(MySQLParser.OPTIMIZER_COSTS); + break; + case MySQLParser.PRIVILEGES: + this.state = 5228; + this.match(MySQLParser.PRIVILEGES); + break; + case MySQLParser.QUERY: + this.state = 5229; + this.match(MySQLParser.QUERY); + this.state = 5230; + this.match(MySQLParser.CACHE); + break; + case MySQLParser.STATUS: + this.state = 5231; + this.match(MySQLParser.STATUS); + break; + case MySQLParser.USER_RESOURCES: + this.state = 5232; + this.match(MySQLParser.USER_RESOURCES); + break; + case MySQLParser.TABLES: + this.state = 5233; + this.match(MySQLParser.TABLES); + this.state = 5237; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.WITH) { + this.state = 5234; + this.match(MySQLParser.WITH); + this.state = 5235; + this.match(MySQLParser.READ); + this.state = 5236; + this.match(MySQLParser.LOCK); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 2: + localctx = new ChannelFlushOptionContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 5241; + this.match(MySQLParser.RELAY); + this.state = 5242; + this.match(MySQLParser.LOGS); + this.state = 5244; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 5243; + this.channelOption(); + } + + break; + + case 3: + localctx = new TableFlushOptionContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 5246; + this.match(MySQLParser.TABLES); + this.state = 5247; + this.tables(); + this.state = 5249; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR || _la===MySQLParser.WITH) { + this.state = 5248; + this.flushTableOption(); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FlushTableOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_flushTableOption; + return this; +} + +FlushTableOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FlushTableOptionContext.prototype.constructor = FlushTableOptionContext; + +FlushTableOptionContext.prototype.WITH = function() { + return this.getToken(MySQLParser.WITH, 0); +}; + +FlushTableOptionContext.prototype.READ = function() { + return this.getToken(MySQLParser.READ, 0); +}; + +FlushTableOptionContext.prototype.LOCK = function() { + return this.getToken(MySQLParser.LOCK, 0); +}; + +FlushTableOptionContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +FlushTableOptionContext.prototype.EXPORT = function() { + return this.getToken(MySQLParser.EXPORT, 0); +}; + +FlushTableOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFlushTableOption(this); + } +}; + +FlushTableOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFlushTableOption(this); + } +}; + +FlushTableOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFlushTableOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FlushTableOptionContext = FlushTableOptionContext; + +MySQLParser.prototype.flushTableOption = function() { + + var localctx = new FlushTableOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 472, MySQLParser.RULE_flushTableOption); + try { + this.state = 5258; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.WITH: + this.enterOuterAlt(localctx, 1); + this.state = 5253; + this.match(MySQLParser.WITH); + this.state = 5254; + this.match(MySQLParser.READ); + this.state = 5255; + this.match(MySQLParser.LOCK); + break; + case MySQLParser.FOR: + this.enterOuterAlt(localctx, 2); + this.state = 5256; + this.match(MySQLParser.FOR); + this.state = 5257; + this.match(MySQLParser.EXPORT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LoadedTableIndexesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_loadedTableIndexes; + this.partitionList = null; // UidListContext + this.indexFormat = null; // Token + this.indexList = null; // UidListContext + return this; +} + +LoadedTableIndexesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LoadedTableIndexesContext.prototype.constructor = LoadedTableIndexesContext; + +LoadedTableIndexesContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +LoadedTableIndexesContext.prototype.PARTITION = function() { + return this.getToken(MySQLParser.PARTITION, 0); +}; + +LoadedTableIndexesContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LR_BRACKET); + } else { + return this.getToken(MySQLParser.LR_BRACKET, i); + } +}; + + +LoadedTableIndexesContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.RR_BRACKET); + } else { + return this.getToken(MySQLParser.RR_BRACKET, i); + } +}; + + +LoadedTableIndexesContext.prototype.IGNORE = function() { + return this.getToken(MySQLParser.IGNORE, 0); +}; + +LoadedTableIndexesContext.prototype.LEAVES = function() { + return this.getToken(MySQLParser.LEAVES, 0); +}; + +LoadedTableIndexesContext.prototype.uidList = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidListContext); + } else { + return this.getTypedRuleContext(UidListContext,i); + } +}; + +LoadedTableIndexesContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +LoadedTableIndexesContext.prototype.INDEX = function() { + return this.getToken(MySQLParser.INDEX, 0); +}; + +LoadedTableIndexesContext.prototype.KEY = function() { + return this.getToken(MySQLParser.KEY, 0); +}; + +LoadedTableIndexesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLoadedTableIndexes(this); + } +}; + +LoadedTableIndexesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLoadedTableIndexes(this); + } +}; + +LoadedTableIndexesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLoadedTableIndexes(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LoadedTableIndexesContext = LoadedTableIndexesContext; + +MySQLParser.prototype.loadedTableIndexes = function() { + + var localctx = new LoadedTableIndexesContext(this, this._ctx, this.state); + this.enterRule(localctx, 474, MySQLParser.RULE_loadedTableIndexes); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5260; + this.tableName(); + this.state = 5268; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PARTITION) { + this.state = 5261; + this.match(MySQLParser.PARTITION); + this.state = 5262; + this.match(MySQLParser.LR_BRACKET); + this.state = 5265; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 5263; + localctx.partitionList = this.uidList(); + break; + case MySQLParser.ALL: + this.state = 5264; + this.match(MySQLParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5267; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 5277; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,760,this._ctx); + if(la_===1) { + this.state = 5271; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INDEX || _la===MySQLParser.KEY) { + this.state = 5270; + localctx.indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.INDEX || _la===MySQLParser.KEY)) { + localctx.indexFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5273; + this.match(MySQLParser.LR_BRACKET); + this.state = 5274; + localctx.indexList = this.uidList(); + this.state = 5275; + this.match(MySQLParser.RR_BRACKET); + + } + this.state = 5281; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.IGNORE) { + this.state = 5279; + this.match(MySQLParser.IGNORE); + this.state = 5280; + this.match(MySQLParser.LEAVES); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SimpleDescribeStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_simpleDescribeStatement; + this.command = null; // Token + this.column = null; // UidContext + this.pattern = null; // Token + return this; +} + +SimpleDescribeStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SimpleDescribeStatementContext.prototype.constructor = SimpleDescribeStatementContext; + +SimpleDescribeStatementContext.prototype.tableName = function() { + return this.getTypedRuleContext(TableNameContext,0); +}; + +SimpleDescribeStatementContext.prototype.EXPLAIN = function() { + return this.getToken(MySQLParser.EXPLAIN, 0); +}; + +SimpleDescribeStatementContext.prototype.DESCRIBE = function() { + return this.getToken(MySQLParser.DESCRIBE, 0); +}; + +SimpleDescribeStatementContext.prototype.DESC = function() { + return this.getToken(MySQLParser.DESC, 0); +}; + +SimpleDescribeStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +SimpleDescribeStatementContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +SimpleDescribeStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleDescribeStatement(this); + } +}; + +SimpleDescribeStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleDescribeStatement(this); + } +}; + +SimpleDescribeStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleDescribeStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SimpleDescribeStatementContext = SimpleDescribeStatementContext; + +MySQLParser.prototype.simpleDescribeStatement = function() { + + var localctx = new SimpleDescribeStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 476, MySQLParser.RULE_simpleDescribeStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5283; + localctx.command = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 41)) & ~0x1f) == 0 && ((1 << (_la - 41)) & ((1 << (MySQLParser.DESC - 41)) | (1 << (MySQLParser.DESCRIBE - 41)) | (1 << (MySQLParser.EXPLAIN - 41)))) !== 0))) { + localctx.command = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5284; + this.tableName(); + this.state = 5287; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,762,this._ctx); + if(la_===1) { + this.state = 5285; + localctx.column = this.uid(); + + } else if(la_===2) { + this.state = 5286; + localctx.pattern = this.match(MySQLParser.STRING_LITERAL); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FullDescribeStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_fullDescribeStatement; + this.command = null; // Token + this.formatType = null; // Token + this.formatValue = null; // Token + return this; +} + +FullDescribeStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FullDescribeStatementContext.prototype.constructor = FullDescribeStatementContext; + +FullDescribeStatementContext.prototype.describeObjectClause = function() { + return this.getTypedRuleContext(DescribeObjectClauseContext,0); +}; + +FullDescribeStatementContext.prototype.EXPLAIN = function() { + return this.getToken(MySQLParser.EXPLAIN, 0); +}; + +FullDescribeStatementContext.prototype.DESCRIBE = function() { + return this.getToken(MySQLParser.DESCRIBE, 0); +}; + +FullDescribeStatementContext.prototype.DESC = function() { + return this.getToken(MySQLParser.DESC, 0); +}; + +FullDescribeStatementContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +FullDescribeStatementContext.prototype.EXTENDED = function() { + return this.getToken(MySQLParser.EXTENDED, 0); +}; + +FullDescribeStatementContext.prototype.PARTITIONS = function() { + return this.getToken(MySQLParser.PARTITIONS, 0); +}; + +FullDescribeStatementContext.prototype.FORMAT = function() { + return this.getToken(MySQLParser.FORMAT, 0); +}; + +FullDescribeStatementContext.prototype.TRADITIONAL = function() { + return this.getToken(MySQLParser.TRADITIONAL, 0); +}; + +FullDescribeStatementContext.prototype.JSON = function() { + return this.getToken(MySQLParser.JSON, 0); +}; + +FullDescribeStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFullDescribeStatement(this); + } +}; + +FullDescribeStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFullDescribeStatement(this); + } +}; + +FullDescribeStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFullDescribeStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FullDescribeStatementContext = FullDescribeStatementContext; + +MySQLParser.prototype.fullDescribeStatement = function() { + + var localctx = new FullDescribeStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 478, MySQLParser.RULE_fullDescribeStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5289; + localctx.command = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 41)) & ~0x1f) == 0 && ((1 << (_la - 41)) & ((1 << (MySQLParser.DESC - 41)) | (1 << (MySQLParser.DESCRIBE - 41)) | (1 << (MySQLParser.EXPLAIN - 41)))) !== 0))) { + localctx.command = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5293; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.EXTENDED || _la===MySQLParser.PARTITIONS || _la===MySQLParser.FORMAT) { + this.state = 5290; + localctx.formatType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.EXTENDED || _la===MySQLParser.PARTITIONS || _la===MySQLParser.FORMAT)) { + localctx.formatType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5291; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 5292; + localctx.formatValue = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.JSON || _la===MySQLParser.TRADITIONAL)) { + localctx.formatValue = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5295; + this.describeObjectClause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HelpStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_helpStatement; + return this; +} + +HelpStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HelpStatementContext.prototype.constructor = HelpStatementContext; + +HelpStatementContext.prototype.HELP = function() { + return this.getToken(MySQLParser.HELP, 0); +}; + +HelpStatementContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +HelpStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHelpStatement(this); + } +}; + +HelpStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHelpStatement(this); + } +}; + +HelpStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHelpStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.HelpStatementContext = HelpStatementContext; + +MySQLParser.prototype.helpStatement = function() { + + var localctx = new HelpStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 480, MySQLParser.RULE_helpStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5297; + this.match(MySQLParser.HELP); + this.state = 5298; + this.match(MySQLParser.STRING_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UseStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_useStatement; + return this; +} + +UseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UseStatementContext.prototype.constructor = UseStatementContext; + +UseStatementContext.prototype.USE = function() { + return this.getToken(MySQLParser.USE, 0); +}; + +UseStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +UseStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUseStatement(this); + } +}; + +UseStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUseStatement(this); + } +}; + +UseStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUseStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UseStatementContext = UseStatementContext; + +MySQLParser.prototype.useStatement = function() { + + var localctx = new UseStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 482, MySQLParser.RULE_useStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5300; + this.match(MySQLParser.USE); + this.state = 5301; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SignalStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_signalStatement; + return this; +} + +SignalStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SignalStatementContext.prototype.constructor = SignalStatementContext; + +SignalStatementContext.prototype.SIGNAL = function() { + return this.getToken(MySQLParser.SIGNAL, 0); +}; + +SignalStatementContext.prototype.ID = function() { + return this.getToken(MySQLParser.ID, 0); +}; + +SignalStatementContext.prototype.REVERSE_QUOTE_ID = function() { + return this.getToken(MySQLParser.REVERSE_QUOTE_ID, 0); +}; + +SignalStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +SignalStatementContext.prototype.signalConditionInformation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SignalConditionInformationContext); + } else { + return this.getTypedRuleContext(SignalConditionInformationContext,i); + } +}; + +SignalStatementContext.prototype.SQLSTATE = function() { + return this.getToken(MySQLParser.SQLSTATE, 0); +}; + +SignalStatementContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +SignalStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +SignalStatementContext.prototype.VALUE = function() { + return this.getToken(MySQLParser.VALUE, 0); +}; + +SignalStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSignalStatement(this); + } +}; + +SignalStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSignalStatement(this); + } +}; + +SignalStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSignalStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SignalStatementContext = SignalStatementContext; + +MySQLParser.prototype.signalStatement = function() { + + var localctx = new SignalStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 484, MySQLParser.RULE_signalStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5303; + this.match(MySQLParser.SIGNAL); + this.state = 5311; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SQLSTATE: + this.state = 5304; + this.match(MySQLParser.SQLSTATE); + this.state = 5306; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.VALUE) { + this.state = 5305; + this.match(MySQLParser.VALUE); + } + + this.state = 5308; + this.stringLiteral(); + break; + case MySQLParser.ID: + this.state = 5309; + this.match(MySQLParser.ID); + break; + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 5310; + this.match(MySQLParser.REVERSE_QUOTE_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5322; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,767,this._ctx); + if(la_===1) { + this.state = 5313; + this.match(MySQLParser.SET); + this.state = 5314; + this.signalConditionInformation(); + this.state = 5319; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5315; + this.match(MySQLParser.COMMA); + this.state = 5316; + this.signalConditionInformation(); + this.state = 5321; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ResignalStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_resignalStatement; + return this; +} + +ResignalStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ResignalStatementContext.prototype.constructor = ResignalStatementContext; + +ResignalStatementContext.prototype.RESIGNAL = function() { + return this.getToken(MySQLParser.RESIGNAL, 0); +}; + +ResignalStatementContext.prototype.ID = function() { + return this.getToken(MySQLParser.ID, 0); +}; + +ResignalStatementContext.prototype.REVERSE_QUOTE_ID = function() { + return this.getToken(MySQLParser.REVERSE_QUOTE_ID, 0); +}; + +ResignalStatementContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +ResignalStatementContext.prototype.signalConditionInformation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SignalConditionInformationContext); + } else { + return this.getTypedRuleContext(SignalConditionInformationContext,i); + } +}; + +ResignalStatementContext.prototype.SQLSTATE = function() { + return this.getToken(MySQLParser.SQLSTATE, 0); +}; + +ResignalStatementContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +ResignalStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ResignalStatementContext.prototype.VALUE = function() { + return this.getToken(MySQLParser.VALUE, 0); +}; + +ResignalStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterResignalStatement(this); + } +}; + +ResignalStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitResignalStatement(this); + } +}; + +ResignalStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitResignalStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ResignalStatementContext = ResignalStatementContext; + +MySQLParser.prototype.resignalStatement = function() { + + var localctx = new ResignalStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 486, MySQLParser.RULE_resignalStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5324; + this.match(MySQLParser.RESIGNAL); + this.state = 5332; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySQLParser.SQLSTATE: + this.state = 5325; + this.match(MySQLParser.SQLSTATE); + this.state = 5327; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.VALUE) { + this.state = 5326; + this.match(MySQLParser.VALUE); + } + + this.state = 5329; + this.stringLiteral(); + break; + case MySQLParser.ID: + this.state = 5330; + this.match(MySQLParser.ID); + break; + case MySQLParser.REVERSE_QUOTE_ID: + this.state = 5331; + this.match(MySQLParser.REVERSE_QUOTE_ID); + break; + case MySQLParser.EOF: + case MySQLParser.ALTER: + case MySQLParser.ANALYZE: + case MySQLParser.CALL: + case MySQLParser.CHANGE: + case MySQLParser.CHECK: + case MySQLParser.CREATE: + case MySQLParser.DELETE: + case MySQLParser.DESC: + case MySQLParser.DESCRIBE: + case MySQLParser.DROP: + case MySQLParser.EXPLAIN: + case MySQLParser.GET: + case MySQLParser.GRANT: + case MySQLParser.INSERT: + case MySQLParser.KILL: + case MySQLParser.LOAD: + case MySQLParser.LOCK: + case MySQLParser.OPTIMIZE: + case MySQLParser.PURGE: + case MySQLParser.RELEASE: + case MySQLParser.RENAME: + case MySQLParser.REPLACE: + case MySQLParser.RESIGNAL: + case MySQLParser.REVOKE: + case MySQLParser.SELECT: + case MySQLParser.SET: + case MySQLParser.SHOW: + case MySQLParser.SIGNAL: + case MySQLParser.UNLOCK: + case MySQLParser.UPDATE: + case MySQLParser.USE: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.CACHE: + case MySQLParser.CHECKSUM: + case MySQLParser.COMMIT: + case MySQLParser.DEALLOCATE: + case MySQLParser.DO: + case MySQLParser.FLUSH: + case MySQLParser.HANDLER: + case MySQLParser.HELP: + case MySQLParser.INSTALL: + case MySQLParser.PREPARE: + case MySQLParser.REPAIR: + case MySQLParser.RESET: + case MySQLParser.ROLLBACK: + case MySQLParser.SAVEPOINT: + case MySQLParser.START: + case MySQLParser.STOP: + case MySQLParser.TRUNCATE: + case MySQLParser.UNINSTALL: + case MySQLParser.XA: + case MySQLParser.EXECUTE: + case MySQLParser.SHUTDOWN: + case MySQLParser.MINUSMINUS: + case MySQLParser.LR_BRACKET: + case MySQLParser.SEMI: + break; + default: + break; + } + this.state = 5343; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,771,this._ctx); + if(la_===1) { + this.state = 5334; + this.match(MySQLParser.SET); + this.state = 5335; + this.signalConditionInformation(); + this.state = 5340; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5336; + this.match(MySQLParser.COMMA); + this.state = 5337; + this.signalConditionInformation(); + this.state = 5342; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SignalConditionInformationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_signalConditionInformation; + return this; +} + +SignalConditionInformationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SignalConditionInformationContext.prototype.constructor = SignalConditionInformationContext; + +SignalConditionInformationContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +SignalConditionInformationContext.prototype.CLASS_ORIGIN = function() { + return this.getToken(MySQLParser.CLASS_ORIGIN, 0); +}; + +SignalConditionInformationContext.prototype.SUBCLASS_ORIGIN = function() { + return this.getToken(MySQLParser.SUBCLASS_ORIGIN, 0); +}; + +SignalConditionInformationContext.prototype.MESSAGE_TEXT = function() { + return this.getToken(MySQLParser.MESSAGE_TEXT, 0); +}; + +SignalConditionInformationContext.prototype.MYSQL_ERRNO = function() { + return this.getToken(MySQLParser.MYSQL_ERRNO, 0); +}; + +SignalConditionInformationContext.prototype.CONSTRAINT_CATALOG = function() { + return this.getToken(MySQLParser.CONSTRAINT_CATALOG, 0); +}; + +SignalConditionInformationContext.prototype.CONSTRAINT_SCHEMA = function() { + return this.getToken(MySQLParser.CONSTRAINT_SCHEMA, 0); +}; + +SignalConditionInformationContext.prototype.CONSTRAINT_NAME = function() { + return this.getToken(MySQLParser.CONSTRAINT_NAME, 0); +}; + +SignalConditionInformationContext.prototype.CATALOG_NAME = function() { + return this.getToken(MySQLParser.CATALOG_NAME, 0); +}; + +SignalConditionInformationContext.prototype.SCHEMA_NAME = function() { + return this.getToken(MySQLParser.SCHEMA_NAME, 0); +}; + +SignalConditionInformationContext.prototype.TABLE_NAME = function() { + return this.getToken(MySQLParser.TABLE_NAME, 0); +}; + +SignalConditionInformationContext.prototype.COLUMN_NAME = function() { + return this.getToken(MySQLParser.COLUMN_NAME, 0); +}; + +SignalConditionInformationContext.prototype.CURSOR_NAME = function() { + return this.getToken(MySQLParser.CURSOR_NAME, 0); +}; + +SignalConditionInformationContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +SignalConditionInformationContext.prototype.DECIMAL_LITERAL = function() { + return this.getToken(MySQLParser.DECIMAL_LITERAL, 0); +}; + +SignalConditionInformationContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSignalConditionInformation(this); + } +}; + +SignalConditionInformationContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSignalConditionInformation(this); + } +}; + +SignalConditionInformationContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSignalConditionInformation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SignalConditionInformationContext = SignalConditionInformationContext; + +MySQLParser.prototype.signalConditionInformation = function() { + + var localctx = new SignalConditionInformationContext(this, this._ctx, this.state); + this.enterRule(localctx, 488, MySQLParser.RULE_signalConditionInformation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5345; + _la = this._input.LA(1); + if(!(((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (MySQLParser.CLASS_ORIGIN - 297)) | (1 << (MySQLParser.COLUMN_NAME - 297)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 297)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 297)) | (1 << (MySQLParser.CONSTRAINT_NAME - 297)) | (1 << (MySQLParser.CURSOR_NAME - 297)))) !== 0) || _la===MySQLParser.MESSAGE_TEXT || _la===MySQLParser.MYSQL_ERRNO || _la===MySQLParser.SUBCLASS_ORIGIN || _la===MySQLParser.TABLE_NAME || _la===MySQLParser.CATALOG_NAME || _la===MySQLParser.SCHEMA_NAME)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5346; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 5349; + 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 = 5347; + this.stringLiteral(); + break; + case MySQLParser.DECIMAL_LITERAL: + this.state = 5348; + this.match(MySQLParser.DECIMAL_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DiagnosticsStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_diagnosticsStatement; + return this; +} + +DiagnosticsStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DiagnosticsStatementContext.prototype.constructor = DiagnosticsStatementContext; + +DiagnosticsStatementContext.prototype.GET = function() { + return this.getToken(MySQLParser.GET, 0); +}; + +DiagnosticsStatementContext.prototype.DIAGNOSTICS = function() { + return this.getToken(MySQLParser.DIAGNOSTICS, 0); +}; + +DiagnosticsStatementContext.prototype.CURRENT = function() { + return this.getToken(MySQLParser.CURRENT, 0); +}; + +DiagnosticsStatementContext.prototype.STACKED = function() { + return this.getToken(MySQLParser.STACKED, 0); +}; + +DiagnosticsStatementContext.prototype.variableClause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(VariableClauseContext); + } else { + return this.getTypedRuleContext(VariableClauseContext,i); + } +}; + +DiagnosticsStatementContext.prototype.EQUAL_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySQLParser.EQUAL_SYMBOL, i); + } +}; + + +DiagnosticsStatementContext.prototype.CONDITION = function() { + return this.getToken(MySQLParser.CONDITION, 0); +}; + +DiagnosticsStatementContext.prototype.diagnosticsConditionInformationName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DiagnosticsConditionInformationNameContext); + } else { + return this.getTypedRuleContext(DiagnosticsConditionInformationNameContext,i); + } +}; + +DiagnosticsStatementContext.prototype.NUMBER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.NUMBER); + } else { + return this.getToken(MySQLParser.NUMBER, i); + } +}; + + +DiagnosticsStatementContext.prototype.ROW_COUNT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.ROW_COUNT); + } else { + return this.getToken(MySQLParser.ROW_COUNT, i); + } +}; + + +DiagnosticsStatementContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +DiagnosticsStatementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +DiagnosticsStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDiagnosticsStatement(this); + } +}; + +DiagnosticsStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDiagnosticsStatement(this); + } +}; + +DiagnosticsStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDiagnosticsStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DiagnosticsStatementContext = DiagnosticsStatementContext; + +MySQLParser.prototype.diagnosticsStatement = function() { + + var localctx = new DiagnosticsStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 490, MySQLParser.RULE_diagnosticsStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5351; + this.match(MySQLParser.GET); + this.state = 5353; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CURRENT || _la===MySQLParser.STACKED) { + this.state = 5352; + _la = this._input.LA(1); + if(!(_la===MySQLParser.CURRENT || _la===MySQLParser.STACKED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 5355; + this.match(MySQLParser.DIAGNOSTICS); + this.state = 5387; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.AT_SIGN: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + case MySQLParser.LOCAL_ID: + case MySQLParser.GLOBAL_ID: + this.state = 5356; + this.variableClause(); + this.state = 5357; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 5358; + _la = this._input.LA(1); + if(!(_la===MySQLParser.NUMBER || _la===MySQLParser.ROW_COUNT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5366; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5359; + this.match(MySQLParser.COMMA); + this.state = 5360; + this.variableClause(); + this.state = 5361; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 5362; + _la = this._input.LA(1); + if(!(_la===MySQLParser.NUMBER || _la===MySQLParser.ROW_COUNT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5368; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case MySQLParser.CONDITION: + this.state = 5369; + this.match(MySQLParser.CONDITION); + this.state = 5372; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.DECIMAL_LITERAL: + this.state = 5370; + this.decimalLiteral(); + break; + case MySQLParser.CURRENT: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.LEFT: + case MySQLParser.NUMBER: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.AT_SIGN: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.STRING_LITERAL: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + case MySQLParser.LOCAL_ID: + case MySQLParser.GLOBAL_ID: + this.state = 5371; + this.variableClause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5374; + this.variableClause(); + this.state = 5375; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 5376; + this.diagnosticsConditionInformationName(); + this.state = 5384; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5377; + this.match(MySQLParser.COMMA); + this.state = 5378; + this.variableClause(); + this.state = 5379; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 5380; + this.diagnosticsConditionInformationName(); + this.state = 5386; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DiagnosticsConditionInformationNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_diagnosticsConditionInformationName; + return this; +} + +DiagnosticsConditionInformationNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DiagnosticsConditionInformationNameContext.prototype.constructor = DiagnosticsConditionInformationNameContext; + +DiagnosticsConditionInformationNameContext.prototype.CLASS_ORIGIN = function() { + return this.getToken(MySQLParser.CLASS_ORIGIN, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.SUBCLASS_ORIGIN = function() { + return this.getToken(MySQLParser.SUBCLASS_ORIGIN, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.RETURNED_SQLSTATE = function() { + return this.getToken(MySQLParser.RETURNED_SQLSTATE, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.MESSAGE_TEXT = function() { + return this.getToken(MySQLParser.MESSAGE_TEXT, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.MYSQL_ERRNO = function() { + return this.getToken(MySQLParser.MYSQL_ERRNO, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.CONSTRAINT_CATALOG = function() { + return this.getToken(MySQLParser.CONSTRAINT_CATALOG, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.CONSTRAINT_SCHEMA = function() { + return this.getToken(MySQLParser.CONSTRAINT_SCHEMA, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.CONSTRAINT_NAME = function() { + return this.getToken(MySQLParser.CONSTRAINT_NAME, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.CATALOG_NAME = function() { + return this.getToken(MySQLParser.CATALOG_NAME, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.SCHEMA_NAME = function() { + return this.getToken(MySQLParser.SCHEMA_NAME, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.TABLE_NAME = function() { + return this.getToken(MySQLParser.TABLE_NAME, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.COLUMN_NAME = function() { + return this.getToken(MySQLParser.COLUMN_NAME, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.CURSOR_NAME = function() { + return this.getToken(MySQLParser.CURSOR_NAME, 0); +}; + +DiagnosticsConditionInformationNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDiagnosticsConditionInformationName(this); + } +}; + +DiagnosticsConditionInformationNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDiagnosticsConditionInformationName(this); + } +}; + +DiagnosticsConditionInformationNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDiagnosticsConditionInformationName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DiagnosticsConditionInformationNameContext = DiagnosticsConditionInformationNameContext; + +MySQLParser.prototype.diagnosticsConditionInformationName = function() { + + var localctx = new DiagnosticsConditionInformationNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 492, MySQLParser.RULE_diagnosticsConditionInformationName); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5389; + _la = this._input.LA(1); + if(!(((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (MySQLParser.CLASS_ORIGIN - 297)) | (1 << (MySQLParser.COLUMN_NAME - 297)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 297)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 297)) | (1 << (MySQLParser.CONSTRAINT_NAME - 297)) | (1 << (MySQLParser.CURSOR_NAME - 297)))) !== 0) || _la===MySQLParser.MESSAGE_TEXT || _la===MySQLParser.MYSQL_ERRNO || _la===MySQLParser.RETURNED_SQLSTATE || _la===MySQLParser.SUBCLASS_ORIGIN || _la===MySQLParser.TABLE_NAME || _la===MySQLParser.CATALOG_NAME || _la===MySQLParser.SCHEMA_NAME)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DescribeObjectClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_describeObjectClause; + return this; +} + +DescribeObjectClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DescribeObjectClauseContext.prototype.constructor = DescribeObjectClauseContext; + + + +DescribeObjectClauseContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function DescribeStatementsContext(parser, ctx) { + DescribeObjectClauseContext.call(this, parser); + DescribeObjectClauseContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DescribeStatementsContext.prototype = Object.create(DescribeObjectClauseContext.prototype); +DescribeStatementsContext.prototype.constructor = DescribeStatementsContext; + +MySQLParser.DescribeStatementsContext = DescribeStatementsContext; + +DescribeStatementsContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +DescribeStatementsContext.prototype.deleteStatement = function() { + return this.getTypedRuleContext(DeleteStatementContext,0); +}; + +DescribeStatementsContext.prototype.insertStatement = function() { + return this.getTypedRuleContext(InsertStatementContext,0); +}; + +DescribeStatementsContext.prototype.replaceStatement = function() { + return this.getTypedRuleContext(ReplaceStatementContext,0); +}; + +DescribeStatementsContext.prototype.updateStatement = function() { + return this.getTypedRuleContext(UpdateStatementContext,0); +}; +DescribeStatementsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDescribeStatements(this); + } +}; + +DescribeStatementsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDescribeStatements(this); + } +}; + +DescribeStatementsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDescribeStatements(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DescribeConnectionContext(parser, ctx) { + DescribeObjectClauseContext.call(this, parser); + DescribeObjectClauseContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DescribeConnectionContext.prototype = Object.create(DescribeObjectClauseContext.prototype); +DescribeConnectionContext.prototype.constructor = DescribeConnectionContext; + +MySQLParser.DescribeConnectionContext = DescribeConnectionContext; + +DescribeConnectionContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; + +DescribeConnectionContext.prototype.CONNECTION = function() { + return this.getToken(MySQLParser.CONNECTION, 0); +}; + +DescribeConnectionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; +DescribeConnectionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDescribeConnection(this); + } +}; + +DescribeConnectionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDescribeConnection(this); + } +}; + +DescribeConnectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDescribeConnection(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.DescribeObjectClauseContext = DescribeObjectClauseContext; + +MySQLParser.prototype.describeObjectClause = function() { + + var localctx = new DescribeObjectClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 494, MySQLParser.RULE_describeObjectClause); + try { + this.state = 5401; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.DELETE: + case MySQLParser.INSERT: + case MySQLParser.REPLACE: + case MySQLParser.SELECT: + case MySQLParser.UPDATE: + case MySQLParser.LR_BRACKET: + localctx = new DescribeStatementsContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 5396; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.SELECT: + case MySQLParser.LR_BRACKET: + this.state = 5391; + this.selectStatement(); + break; + case MySQLParser.DELETE: + this.state = 5392; + this.deleteStatement(); + break; + case MySQLParser.INSERT: + this.state = 5393; + this.insertStatement(); + break; + case MySQLParser.REPLACE: + this.state = 5394; + this.replaceStatement(); + break; + case MySQLParser.UPDATE: + this.state = 5395; + this.updateStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case MySQLParser.FOR: + localctx = new DescribeConnectionContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 5398; + this.match(MySQLParser.FOR); + this.state = 5399; + this.match(MySQLParser.CONNECTION); + this.state = 5400; + this.uid(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FullIdContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_fullId; + return this; +} + +FullIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FullIdContext.prototype.constructor = FullIdContext; + +FullIdContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +FullIdContext.prototype.DOT_ID = function() { + return this.getToken(MySQLParser.DOT_ID, 0); +}; + +FullIdContext.prototype.DOT = function() { + return this.getToken(MySQLParser.DOT, 0); +}; + +FullIdContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFullId(this); + } +}; + +FullIdContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFullId(this); + } +}; + +FullIdContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFullId(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FullIdContext = FullIdContext; + +MySQLParser.prototype.fullId = function() { + + var localctx = new FullIdContext(this, this._ctx, this.state); + this.enterRule(localctx, 496, MySQLParser.RULE_fullId); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5403; + this.uid(); + this.state = 5407; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,780,this._ctx); + if(la_===1) { + this.state = 5404; + this.match(MySQLParser.DOT_ID); + + } else if(la_===2) { + this.state = 5405; + this.match(MySQLParser.DOT); + this.state = 5406; + this.uid(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tableName; + return this; +} + +TableNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableNameContext.prototype.constructor = TableNameContext; + +TableNameContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +TableNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTableName(this); + } +}; + +TableNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTableName(this); + } +}; + +TableNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTableName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TableNameContext = TableNameContext; + +MySQLParser.prototype.tableName = function() { + + var localctx = new TableNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 498, MySQLParser.RULE_tableName); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5409; + this.fullId(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FullColumnNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_fullColumnName; + return this; +} + +FullColumnNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FullColumnNameContext.prototype.constructor = FullColumnNameContext; + +FullColumnNameContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +FullColumnNameContext.prototype.dottedId = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DottedIdContext); + } else { + return this.getTypedRuleContext(DottedIdContext,i); + } +}; + +FullColumnNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFullColumnName(this); + } +}; + +FullColumnNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFullColumnName(this); + } +}; + +FullColumnNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFullColumnName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FullColumnNameContext = FullColumnNameContext; + +MySQLParser.prototype.fullColumnName = function() { + + var localctx = new FullColumnNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 500, MySQLParser.RULE_fullColumnName); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5411; + this.uid(); + this.state = 5416; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,782,this._ctx); + if(la_===1) { + this.state = 5412; + this.dottedId(); + this.state = 5414; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,781,this._ctx); + if(la_===1) { + this.state = 5413; + this.dottedId(); + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IndexColumnNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_indexColumnName; + this.sortType = null; // Token + return this; +} + +IndexColumnNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IndexColumnNameContext.prototype.constructor = IndexColumnNameContext; + +IndexColumnNameContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +IndexColumnNameContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +IndexColumnNameContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +IndexColumnNameContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +IndexColumnNameContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +IndexColumnNameContext.prototype.ASC = function() { + return this.getToken(MySQLParser.ASC, 0); +}; + +IndexColumnNameContext.prototype.DESC = function() { + return this.getToken(MySQLParser.DESC, 0); +}; + +IndexColumnNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIndexColumnName(this); + } +}; + +IndexColumnNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIndexColumnName(this); + } +}; + +IndexColumnNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIndexColumnName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IndexColumnNameContext = IndexColumnNameContext; + +MySQLParser.prototype.indexColumnName = function() { + + var localctx = new IndexColumnNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 502, MySQLParser.RULE_indexColumnName); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5420; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,783,this._ctx); + switch(la_) { + case 1: + this.state = 5418; + this.uid(); + break; + + case 2: + this.state = 5419; + this.match(MySQLParser.STRING_LITERAL); + break; + + } + this.state = 5426; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LR_BRACKET) { + this.state = 5422; + this.match(MySQLParser.LR_BRACKET); + this.state = 5423; + this.decimalLiteral(); + this.state = 5424; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 5429; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ASC || _la===MySQLParser.DESC) { + this.state = 5428; + localctx.sortType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ASC || _la===MySQLParser.DESC)) { + localctx.sortType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UserNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_userName; + return this; +} + +UserNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UserNameContext.prototype.constructor = UserNameContext; + +UserNameContext.prototype.STRING_USER_NAME = function() { + return this.getToken(MySQLParser.STRING_USER_NAME, 0); +}; + +UserNameContext.prototype.ID = function() { + return this.getToken(MySQLParser.ID, 0); +}; + +UserNameContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +UserNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUserName(this); + } +}; + +UserNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUserName(this); + } +}; + +UserNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUserName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UserNameContext = UserNameContext; + +MySQLParser.prototype.userName = function() { + + var localctx = new UserNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 504, MySQLParser.RULE_userName); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5431; + _la = this._input.LA(1); + if(!(((((_la - 1035)) & ~0x1f) == 0 && ((1 << (_la - 1035)) & ((1 << (MySQLParser.STRING_LITERAL - 1035)) | (1 << (MySQLParser.ID - 1035)) | (1 << (MySQLParser.STRING_USER_NAME - 1035)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function MysqlVariableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_mysqlVariable; + return this; +} + +MysqlVariableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +MysqlVariableContext.prototype.constructor = MysqlVariableContext; + +MysqlVariableContext.prototype.LOCAL_ID = function() { + return this.getToken(MySQLParser.LOCAL_ID, 0); +}; + +MysqlVariableContext.prototype.GLOBAL_ID = function() { + return this.getToken(MySQLParser.GLOBAL_ID, 0); +}; + +MysqlVariableContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMysqlVariable(this); + } +}; + +MysqlVariableContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMysqlVariable(this); + } +}; + +MysqlVariableContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMysqlVariable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.MysqlVariableContext = MysqlVariableContext; + +MySQLParser.prototype.mysqlVariable = function() { + + var localctx = new MysqlVariableContext(this, this._ctx, this.state); + this.enterRule(localctx, 506, MySQLParser.RULE_mysqlVariable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5433; + _la = this._input.LA(1); + if(!(_la===MySQLParser.LOCAL_ID || _la===MySQLParser.GLOBAL_ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CharsetNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_charsetName; + return this; +} + +CharsetNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CharsetNameContext.prototype.constructor = CharsetNameContext; + +CharsetNameContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +CharsetNameContext.prototype.charsetNameBase = function() { + return this.getTypedRuleContext(CharsetNameBaseContext,0); +}; + +CharsetNameContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +CharsetNameContext.prototype.CHARSET_REVERSE_QOUTE_STRING = function() { + return this.getToken(MySQLParser.CHARSET_REVERSE_QOUTE_STRING, 0); +}; + +CharsetNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCharsetName(this); + } +}; + +CharsetNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCharsetName(this); + } +}; + +CharsetNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCharsetName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CharsetNameContext = CharsetNameContext; + +MySQLParser.prototype.charsetName = function() { + + var localctx = new CharsetNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 508, MySQLParser.RULE_charsetName); + try { + this.state = 5439; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.BINARY: + this.enterOuterAlt(localctx, 1); + this.state = 5435; + this.match(MySQLParser.BINARY); + break; + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + this.enterOuterAlt(localctx, 2); + this.state = 5436; + this.charsetNameBase(); + break; + case MySQLParser.STRING_LITERAL: + this.enterOuterAlt(localctx, 3); + this.state = 5437; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + this.enterOuterAlt(localctx, 4); + this.state = 5438; + this.match(MySQLParser.CHARSET_REVERSE_QOUTE_STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CollationNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_collationName; + return this; +} + +CollationNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CollationNameContext.prototype.constructor = CollationNameContext; + +CollationNameContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CollationNameContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +CollationNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCollationName(this); + } +}; + +CollationNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCollationName(this); + } +}; + +CollationNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCollationName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CollationNameContext = CollationNameContext; + +MySQLParser.prototype.collationName = function() { + + var localctx = new CollationNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 510, MySQLParser.RULE_collationName); + try { + this.state = 5443; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,787,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5441; + this.uid(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5442; + this.match(MySQLParser.STRING_LITERAL); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function EngineNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_engineName; + return this; +} + +EngineNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +EngineNameContext.prototype.constructor = EngineNameContext; + +EngineNameContext.prototype.ARCHIVE = function() { + return this.getToken(MySQLParser.ARCHIVE, 0); +}; + +EngineNameContext.prototype.BLACKHOLE = function() { + return this.getToken(MySQLParser.BLACKHOLE, 0); +}; + +EngineNameContext.prototype.CSV = function() { + return this.getToken(MySQLParser.CSV, 0); +}; + +EngineNameContext.prototype.FEDERATED = function() { + return this.getToken(MySQLParser.FEDERATED, 0); +}; + +EngineNameContext.prototype.INNODB = function() { + return this.getToken(MySQLParser.INNODB, 0); +}; + +EngineNameContext.prototype.MEMORY = function() { + return this.getToken(MySQLParser.MEMORY, 0); +}; + +EngineNameContext.prototype.MRG_MYISAM = function() { + return this.getToken(MySQLParser.MRG_MYISAM, 0); +}; + +EngineNameContext.prototype.MYISAM = function() { + return this.getToken(MySQLParser.MYISAM, 0); +}; + +EngineNameContext.prototype.NDB = function() { + return this.getToken(MySQLParser.NDB, 0); +}; + +EngineNameContext.prototype.NDBCLUSTER = function() { + return this.getToken(MySQLParser.NDBCLUSTER, 0); +}; + +EngineNameContext.prototype.PERFORMANCE_SCHEMA = function() { + return this.getToken(MySQLParser.PERFORMANCE_SCHEMA, 0); +}; + +EngineNameContext.prototype.TOKUDB = function() { + return this.getToken(MySQLParser.TOKUDB, 0); +}; + +EngineNameContext.prototype.ID = function() { + return this.getToken(MySQLParser.ID, 0); +}; + +EngineNameContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +EngineNameContext.prototype.REVERSE_QUOTE_ID = function() { + return this.getToken(MySQLParser.REVERSE_QUOTE_ID, 0); +}; + +EngineNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterEngineName(this); + } +}; + +EngineNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitEngineName(this); + } +}; + +EngineNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitEngineName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.EngineNameContext = EngineNameContext; + +MySQLParser.prototype.engineName = function() { + + var localctx = new EngineNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 512, MySQLParser.RULE_engineName); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5445; + _la = this._input.LA(1); + if(!(((((_la - 677)) & ~0x1f) == 0 && ((1 << (_la - 677)) & ((1 << (MySQLParser.ARCHIVE - 677)) | (1 << (MySQLParser.BLACKHOLE - 677)) | (1 << (MySQLParser.CSV - 677)) | (1 << (MySQLParser.FEDERATED - 677)) | (1 << (MySQLParser.INNODB - 677)) | (1 << (MySQLParser.MEMORY - 677)) | (1 << (MySQLParser.MRG_MYISAM - 677)) | (1 << (MySQLParser.MYISAM - 677)) | (1 << (MySQLParser.NDB - 677)) | (1 << (MySQLParser.NDBCLUSTER - 677)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 677)) | (1 << (MySQLParser.TOKUDB - 677)))) !== 0) || ((((_la - 1035)) & ~0x1f) == 0 && ((1 << (_la - 1035)) & ((1 << (MySQLParser.STRING_LITERAL - 1035)) | (1 << (MySQLParser.ID - 1035)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1035)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UuidSetContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_uuidSet; + return this; +} + +UuidSetContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UuidSetContext.prototype.constructor = UuidSetContext; + +UuidSetContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; + +UuidSetContext.prototype.MINUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.MINUS); + } else { + return this.getToken(MySQLParser.MINUS, i); + } +}; + + +UuidSetContext.prototype.COLON_SYMB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COLON_SYMB); + } else { + return this.getToken(MySQLParser.COLON_SYMB, i); + } +}; + + +UuidSetContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUuidSet(this); + } +}; + +UuidSetContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUuidSet(this); + } +}; + +UuidSetContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUuidSet(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UuidSetContext = UuidSetContext; + +MySQLParser.prototype.uuidSet = function() { + + var localctx = new UuidSetContext(this, this._ctx, this.state); + this.enterRule(localctx, 514, MySQLParser.RULE_uuidSet); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5447; + this.decimalLiteral(); + this.state = 5448; + this.match(MySQLParser.MINUS); + this.state = 5449; + this.decimalLiteral(); + this.state = 5450; + this.match(MySQLParser.MINUS); + this.state = 5451; + this.decimalLiteral(); + this.state = 5452; + this.match(MySQLParser.MINUS); + this.state = 5453; + this.decimalLiteral(); + this.state = 5454; + this.match(MySQLParser.MINUS); + this.state = 5455; + this.decimalLiteral(); + this.state = 5461; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5456; + this.match(MySQLParser.COLON_SYMB); + this.state = 5457; + this.decimalLiteral(); + this.state = 5458; + this.match(MySQLParser.MINUS); + this.state = 5459; + this.decimalLiteral(); + this.state = 5463; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.COLON_SYMB); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function XidContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_xid; + this.globalTableUid = null; // XuidStringIdContext + this.qualifier = null; // XuidStringIdContext + this.idFormat = null; // DecimalLiteralContext + return this; +} + +XidContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +XidContext.prototype.constructor = XidContext; + +XidContext.prototype.xuidStringId = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(XuidStringIdContext); + } else { + return this.getTypedRuleContext(XuidStringIdContext,i); + } +}; + +XidContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +XidContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +XidContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterXid(this); + } +}; + +XidContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitXid(this); + } +}; + +XidContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitXid(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.XidContext = XidContext; + +MySQLParser.prototype.xid = function() { + + var localctx = new XidContext(this, this._ctx, this.state); + this.enterRule(localctx, 516, MySQLParser.RULE_xid); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5465; + localctx.globalTableUid = this.xuidStringId(); + this.state = 5472; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMA) { + this.state = 5466; + this.match(MySQLParser.COMMA); + this.state = 5467; + localctx.qualifier = this.xuidStringId(); + this.state = 5470; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMA) { + this.state = 5468; + this.match(MySQLParser.COMMA); + this.state = 5469; + localctx.idFormat = this.decimalLiteral(); + } + + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function XuidStringIdContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_xuidStringId; + return this; +} + +XuidStringIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +XuidStringIdContext.prototype.constructor = XuidStringIdContext; + +XuidStringIdContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +XuidStringIdContext.prototype.BIT_STRING = function() { + return this.getToken(MySQLParser.BIT_STRING, 0); +}; + +XuidStringIdContext.prototype.HEXADECIMAL_LITERAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.HEXADECIMAL_LITERAL); + } else { + return this.getToken(MySQLParser.HEXADECIMAL_LITERAL, i); + } +}; + + +XuidStringIdContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterXuidStringId(this); + } +}; + +XuidStringIdContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitXuidStringId(this); + } +}; + +XuidStringIdContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitXuidStringId(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.XuidStringIdContext = XuidStringIdContext; + +MySQLParser.prototype.xuidStringId = function() { + + var localctx = new XuidStringIdContext(this, this._ctx, this.state); + this.enterRule(localctx, 518, MySQLParser.RULE_xuidStringId); + var _la = 0; // Token type + try { + this.state = 5481; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.STRING_LITERAL: + this.enterOuterAlt(localctx, 1); + this.state = 5474; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.BIT_STRING: + this.enterOuterAlt(localctx, 2); + this.state = 5475; + this.match(MySQLParser.BIT_STRING); + break; + case MySQLParser.HEXADECIMAL_LITERAL: + this.enterOuterAlt(localctx, 3); + this.state = 5477; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5476; + this.match(MySQLParser.HEXADECIMAL_LITERAL); + this.state = 5479; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.HEXADECIMAL_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AuthPluginContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_authPlugin; + return this; +} + +AuthPluginContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AuthPluginContext.prototype.constructor = AuthPluginContext; + +AuthPluginContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AuthPluginContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +AuthPluginContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAuthPlugin(this); + } +}; + +AuthPluginContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAuthPlugin(this); + } +}; + +AuthPluginContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAuthPlugin(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AuthPluginContext = AuthPluginContext; + +MySQLParser.prototype.authPlugin = function() { + + var localctx = new AuthPluginContext(this, this._ctx, this.state); + this.enterRule(localctx, 520, MySQLParser.RULE_authPlugin); + try { + this.state = 5485; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,793,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5483; + this.uid(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5484; + this.match(MySQLParser.STRING_LITERAL); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UidContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_uid; + return this; +} + +UidContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UidContext.prototype.constructor = UidContext; + +UidContext.prototype.simpleId = function() { + return this.getTypedRuleContext(SimpleIdContext,0); +}; + +UidContext.prototype.REVERSE_QUOTE_ID = function() { + return this.getToken(MySQLParser.REVERSE_QUOTE_ID, 0); +}; + +UidContext.prototype.CHARSET_REVERSE_QOUTE_STRING = function() { + return this.getToken(MySQLParser.CHARSET_REVERSE_QOUTE_STRING, 0); +}; + +UidContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUid(this); + } +}; + +UidContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUid(this); + } +}; + +UidContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUid(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UidContext = UidContext; + +MySQLParser.prototype.uid = function() { + + var localctx = new UidContext(this, this._ctx, this.state); + this.enterRule(localctx, 522, MySQLParser.RULE_uid); + try { + this.state = 5490; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,794,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5487; + this.simpleId(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5488; + this.match(MySQLParser.REVERSE_QUOTE_ID); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5489; + this.match(MySQLParser.CHARSET_REVERSE_QOUTE_STRING); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SimpleIdContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_simpleId; + return this; +} + +SimpleIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SimpleIdContext.prototype.constructor = SimpleIdContext; + +SimpleIdContext.prototype.ID = function() { + return this.getToken(MySQLParser.ID, 0); +}; + +SimpleIdContext.prototype.charsetNameBase = function() { + return this.getTypedRuleContext(CharsetNameBaseContext,0); +}; + +SimpleIdContext.prototype.transactionLevelBase = function() { + return this.getTypedRuleContext(TransactionLevelBaseContext,0); +}; + +SimpleIdContext.prototype.engineName = function() { + return this.getTypedRuleContext(EngineNameContext,0); +}; + +SimpleIdContext.prototype.privilegesBase = function() { + return this.getTypedRuleContext(PrivilegesBaseContext,0); +}; + +SimpleIdContext.prototype.intervalTypeBase = function() { + return this.getTypedRuleContext(IntervalTypeBaseContext,0); +}; + +SimpleIdContext.prototype.dataTypeBase = function() { + return this.getTypedRuleContext(DataTypeBaseContext,0); +}; + +SimpleIdContext.prototype.keywordsCanBeId = function() { + return this.getTypedRuleContext(KeywordsCanBeIdContext,0); +}; + +SimpleIdContext.prototype.functionNameBase = function() { + return this.getTypedRuleContext(FunctionNameBaseContext,0); +}; + +SimpleIdContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleId(this); + } +}; + +SimpleIdContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleId(this); + } +}; + +SimpleIdContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleId(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SimpleIdContext = SimpleIdContext; + +MySQLParser.prototype.simpleId = function() { + + var localctx = new SimpleIdContext(this, this._ctx, this.state); + this.enterRule(localctx, 524, MySQLParser.RULE_simpleId); + try { + this.state = 5501; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,795,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5492; + this.match(MySQLParser.ID); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5493; + this.charsetNameBase(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5494; + this.transactionLevelBase(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5495; + this.engineName(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 5496; + this.privilegesBase(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 5497; + this.intervalTypeBase(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 5498; + this.dataTypeBase(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 5499; + this.keywordsCanBeId(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 5500; + this.functionNameBase(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DottedIdContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dottedId; + return this; +} + +DottedIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DottedIdContext.prototype.constructor = DottedIdContext; + +DottedIdContext.prototype.DOT_ID = function() { + return this.getToken(MySQLParser.DOT_ID, 0); +}; + +DottedIdContext.prototype.DOT = function() { + return this.getToken(MySQLParser.DOT, 0); +}; + +DottedIdContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DottedIdContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDottedId(this); + } +}; + +DottedIdContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDottedId(this); + } +}; + +DottedIdContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDottedId(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DottedIdContext = DottedIdContext; + +MySQLParser.prototype.dottedId = function() { + + var localctx = new DottedIdContext(this, this._ctx, this.state); + this.enterRule(localctx, 526, MySQLParser.RULE_dottedId); + try { + this.state = 5506; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.DOT_ID: + this.enterOuterAlt(localctx, 1); + this.state = 5503; + this.match(MySQLParser.DOT_ID); + break; + case MySQLParser.DOT: + this.enterOuterAlt(localctx, 2); + this.state = 5504; + this.match(MySQLParser.DOT); + this.state = 5505; + this.uid(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DecimalLiteralContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_decimalLiteral; + return this; +} + +DecimalLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DecimalLiteralContext.prototype.constructor = DecimalLiteralContext; + +DecimalLiteralContext.prototype.DECIMAL_LITERAL = function() { + return this.getToken(MySQLParser.DECIMAL_LITERAL, 0); +}; + +DecimalLiteralContext.prototype.ZERO_DECIMAL = function() { + return this.getToken(MySQLParser.ZERO_DECIMAL, 0); +}; + +DecimalLiteralContext.prototype.ONE_DECIMAL = function() { + return this.getToken(MySQLParser.ONE_DECIMAL, 0); +}; + +DecimalLiteralContext.prototype.TWO_DECIMAL = function() { + return this.getToken(MySQLParser.TWO_DECIMAL, 0); +}; + +DecimalLiteralContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDecimalLiteral(this); + } +}; + +DecimalLiteralContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDecimalLiteral(this); + } +}; + +DecimalLiteralContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDecimalLiteral(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DecimalLiteralContext = DecimalLiteralContext; + +MySQLParser.prototype.decimalLiteral = function() { + + var localctx = new DecimalLiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 528, MySQLParser.RULE_decimalLiteral); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5508; + _la = this._input.LA(1); + if(!(((((_la - 1025)) & ~0x1f) == 0 && ((1 << (_la - 1025)) & ((1 << (MySQLParser.ZERO_DECIMAL - 1025)) | (1 << (MySQLParser.ONE_DECIMAL - 1025)) | (1 << (MySQLParser.TWO_DECIMAL - 1025)) | (1 << (MySQLParser.DECIMAL_LITERAL - 1025)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FileSizeLiteralContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_fileSizeLiteral; + return this; +} + +FileSizeLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FileSizeLiteralContext.prototype.constructor = FileSizeLiteralContext; + +FileSizeLiteralContext.prototype.FILESIZE_LITERAL = function() { + return this.getToken(MySQLParser.FILESIZE_LITERAL, 0); +}; + +FileSizeLiteralContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +FileSizeLiteralContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFileSizeLiteral(this); + } +}; + +FileSizeLiteralContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFileSizeLiteral(this); + } +}; + +FileSizeLiteralContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFileSizeLiteral(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FileSizeLiteralContext = FileSizeLiteralContext; + +MySQLParser.prototype.fileSizeLiteral = function() { + + var localctx = new FileSizeLiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 530, MySQLParser.RULE_fileSizeLiteral); + try { + this.state = 5512; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.FILESIZE_LITERAL: + this.enterOuterAlt(localctx, 1); + this.state = 5510; + this.match(MySQLParser.FILESIZE_LITERAL); + break; + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.DECIMAL_LITERAL: + this.enterOuterAlt(localctx, 2); + this.state = 5511; + this.decimalLiteral(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StringLiteralContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_stringLiteral; + return this; +} + +StringLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StringLiteralContext.prototype.constructor = StringLiteralContext; + +StringLiteralContext.prototype.STRING_LITERAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.STRING_LITERAL); + } else { + return this.getToken(MySQLParser.STRING_LITERAL, i); + } +}; + + +StringLiteralContext.prototype.START_NATIONAL_STRING_LITERAL = function() { + return this.getToken(MySQLParser.START_NATIONAL_STRING_LITERAL, 0); +}; + +StringLiteralContext.prototype.STRING_CHARSET_NAME = function() { + return this.getToken(MySQLParser.STRING_CHARSET_NAME, 0); +}; + +StringLiteralContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +StringLiteralContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; + +StringLiteralContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStringLiteral(this); + } +}; + +StringLiteralContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStringLiteral(this); + } +}; + +StringLiteralContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStringLiteral(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.StringLiteralContext = StringLiteralContext; + +MySQLParser.prototype.stringLiteral = function() { + + var localctx = new StringLiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 532, MySQLParser.RULE_stringLiteral); + var _la = 0; // Token type + try { + this.state = 5537; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,804,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5519; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.STRING_LITERAL: + case MySQLParser.STRING_CHARSET_NAME: + this.state = 5515; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.STRING_CHARSET_NAME) { + this.state = 5514; + this.match(MySQLParser.STRING_CHARSET_NAME); + } + + this.state = 5517; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.START_NATIONAL_STRING_LITERAL: + this.state = 5518; + this.match(MySQLParser.START_NATIONAL_STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5522; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 5521; + this.match(MySQLParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5524; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,800, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5531; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.STRING_LITERAL: + case MySQLParser.STRING_CHARSET_NAME: + this.state = 5527; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.STRING_CHARSET_NAME) { + this.state = 5526; + this.match(MySQLParser.STRING_CHARSET_NAME); + } + + this.state = 5529; + this.match(MySQLParser.STRING_LITERAL); + break; + case MySQLParser.START_NATIONAL_STRING_LITERAL: + this.state = 5530; + this.match(MySQLParser.START_NATIONAL_STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5535; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,803,this._ctx); + if(la_===1) { + this.state = 5533; + this.match(MySQLParser.COLLATE); + this.state = 5534; + this.collationName(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BooleanLiteralContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_booleanLiteral; + return this; +} + +BooleanLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BooleanLiteralContext.prototype.constructor = BooleanLiteralContext; + +BooleanLiteralContext.prototype.TRUE = function() { + return this.getToken(MySQLParser.TRUE, 0); +}; + +BooleanLiteralContext.prototype.FALSE = function() { + return this.getToken(MySQLParser.FALSE, 0); +}; + +BooleanLiteralContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBooleanLiteral(this); + } +}; + +BooleanLiteralContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBooleanLiteral(this); + } +}; + +BooleanLiteralContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBooleanLiteral(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.BooleanLiteralContext = BooleanLiteralContext; + +MySQLParser.prototype.booleanLiteral = function() { + + var localctx = new BooleanLiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 534, MySQLParser.RULE_booleanLiteral); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5539; + _la = this._input.LA(1); + if(!(_la===MySQLParser.FALSE || _la===MySQLParser.TRUE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HexadecimalLiteralContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_hexadecimalLiteral; + return this; +} + +HexadecimalLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HexadecimalLiteralContext.prototype.constructor = HexadecimalLiteralContext; + +HexadecimalLiteralContext.prototype.HEXADECIMAL_LITERAL = function() { + return this.getToken(MySQLParser.HEXADECIMAL_LITERAL, 0); +}; + +HexadecimalLiteralContext.prototype.STRING_CHARSET_NAME = function() { + return this.getToken(MySQLParser.STRING_CHARSET_NAME, 0); +}; + +HexadecimalLiteralContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterHexadecimalLiteral(this); + } +}; + +HexadecimalLiteralContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitHexadecimalLiteral(this); + } +}; + +HexadecimalLiteralContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitHexadecimalLiteral(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.HexadecimalLiteralContext = HexadecimalLiteralContext; + +MySQLParser.prototype.hexadecimalLiteral = function() { + + var localctx = new HexadecimalLiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 536, MySQLParser.RULE_hexadecimalLiteral); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5542; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.STRING_CHARSET_NAME) { + this.state = 5541; + this.match(MySQLParser.STRING_CHARSET_NAME); + } + + this.state = 5544; + this.match(MySQLParser.HEXADECIMAL_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function NullNotnullContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_nullNotnull; + return this; +} + +NullNotnullContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +NullNotnullContext.prototype.constructor = NullNotnullContext; + +NullNotnullContext.prototype.NULL_LITERAL = function() { + return this.getToken(MySQLParser.NULL_LITERAL, 0); +}; + +NullNotnullContext.prototype.NULL_SPEC_LITERAL = function() { + return this.getToken(MySQLParser.NULL_SPEC_LITERAL, 0); +}; + +NullNotnullContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +NullNotnullContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterNullNotnull(this); + } +}; + +NullNotnullContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitNullNotnull(this); + } +}; + +NullNotnullContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitNullNotnull(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.NullNotnullContext = NullNotnullContext; + +MySQLParser.prototype.nullNotnull = function() { + + var localctx = new NullNotnullContext(this, this._ctx, this.state); + this.enterRule(localctx, 538, MySQLParser.RULE_nullNotnull); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5547; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 5546; + this.match(MySQLParser.NOT); + } + + this.state = 5549; + _la = this._input.LA(1); + if(!(_la===MySQLParser.NULL_LITERAL || _la===MySQLParser.NULL_SPEC_LITERAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ConstantContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_constant; + this.nullLiteral = null; // Token + return this; +} + +ConstantContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ConstantContext.prototype.constructor = ConstantContext; + +ConstantContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +ConstantContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +ConstantContext.prototype.MINUS = function() { + return this.getToken(MySQLParser.MINUS, 0); +}; + +ConstantContext.prototype.hexadecimalLiteral = function() { + return this.getTypedRuleContext(HexadecimalLiteralContext,0); +}; + +ConstantContext.prototype.booleanLiteral = function() { + return this.getTypedRuleContext(BooleanLiteralContext,0); +}; + +ConstantContext.prototype.REAL_LITERAL = function() { + return this.getToken(MySQLParser.REAL_LITERAL, 0); +}; + +ConstantContext.prototype.BIT_STRING = function() { + return this.getToken(MySQLParser.BIT_STRING, 0); +}; + +ConstantContext.prototype.NULL_LITERAL = function() { + return this.getToken(MySQLParser.NULL_LITERAL, 0); +}; + +ConstantContext.prototype.NULL_SPEC_LITERAL = function() { + return this.getToken(MySQLParser.NULL_SPEC_LITERAL, 0); +}; + +ConstantContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +ConstantContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterConstant(this); + } +}; + +ConstantContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitConstant(this); + } +}; + +ConstantContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitConstant(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ConstantContext = ConstantContext; + +MySQLParser.prototype.constant = function() { + + var localctx = new ConstantContext(this, this._ctx, this.state); + this.enterRule(localctx, 540, MySQLParser.RULE_constant); + var _la = 0; // Token type + try { + this.state = 5563; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,808,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5551; + this.stringLiteral(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5552; + this.decimalLiteral(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5553; + this.match(MySQLParser.MINUS); + this.state = 5554; + this.decimalLiteral(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5555; + this.hexadecimalLiteral(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 5556; + this.booleanLiteral(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 5557; + this.match(MySQLParser.REAL_LITERAL); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 5558; + this.match(MySQLParser.BIT_STRING); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 5560; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 5559; + this.match(MySQLParser.NOT); + } + + this.state = 5562; + localctx.nullLiteral = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.NULL_LITERAL || _la===MySQLParser.NULL_SPEC_LITERAL)) { + localctx.nullLiteral = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DataTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dataType; + return this; +} + +DataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DataTypeContext.prototype.constructor = DataTypeContext; + + + +DataTypeContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SpatialDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + this.typeName = null; // Token; + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SpatialDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +SpatialDataTypeContext.prototype.constructor = SpatialDataTypeContext; + +MySQLParser.SpatialDataTypeContext = SpatialDataTypeContext; + +SpatialDataTypeContext.prototype.GEOMETRYCOLLECTION = function() { + return this.getToken(MySQLParser.GEOMETRYCOLLECTION, 0); +}; + +SpatialDataTypeContext.prototype.GEOMCOLLECTION = function() { + return this.getToken(MySQLParser.GEOMCOLLECTION, 0); +}; + +SpatialDataTypeContext.prototype.LINESTRING = function() { + return this.getToken(MySQLParser.LINESTRING, 0); +}; + +SpatialDataTypeContext.prototype.MULTILINESTRING = function() { + return this.getToken(MySQLParser.MULTILINESTRING, 0); +}; + +SpatialDataTypeContext.prototype.MULTIPOINT = function() { + return this.getToken(MySQLParser.MULTIPOINT, 0); +}; + +SpatialDataTypeContext.prototype.MULTIPOLYGON = function() { + return this.getToken(MySQLParser.MULTIPOLYGON, 0); +}; + +SpatialDataTypeContext.prototype.POINT = function() { + return this.getToken(MySQLParser.POINT, 0); +}; + +SpatialDataTypeContext.prototype.POLYGON = function() { + return this.getToken(MySQLParser.POLYGON, 0); +}; + +SpatialDataTypeContext.prototype.JSON = function() { + return this.getToken(MySQLParser.JSON, 0); +}; + +SpatialDataTypeContext.prototype.GEOMETRY = function() { + return this.getToken(MySQLParser.GEOMETRY, 0); +}; +SpatialDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSpatialDataType(this); + } +}; + +SpatialDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSpatialDataType(this); + } +}; + +SpatialDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSpatialDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function LongVarbinaryDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LongVarbinaryDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +LongVarbinaryDataTypeContext.prototype.constructor = LongVarbinaryDataTypeContext; + +MySQLParser.LongVarbinaryDataTypeContext = LongVarbinaryDataTypeContext; + +LongVarbinaryDataTypeContext.prototype.LONG = function() { + return this.getToken(MySQLParser.LONG, 0); +}; + +LongVarbinaryDataTypeContext.prototype.VARBINARY = function() { + return this.getToken(MySQLParser.VARBINARY, 0); +}; +LongVarbinaryDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLongVarbinaryDataType(this); + } +}; + +LongVarbinaryDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLongVarbinaryDataType(this); + } +}; + +LongVarbinaryDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLongVarbinaryDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CollectionDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + this.typeName = null; // Token; + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CollectionDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +CollectionDataTypeContext.prototype.constructor = CollectionDataTypeContext; + +MySQLParser.CollectionDataTypeContext = CollectionDataTypeContext; + +CollectionDataTypeContext.prototype.collectionOptions = function() { + return this.getTypedRuleContext(CollectionOptionsContext,0); +}; + +CollectionDataTypeContext.prototype.ENUM = function() { + return this.getToken(MySQLParser.ENUM, 0); +}; + +CollectionDataTypeContext.prototype.SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.SET); + } else { + return this.getToken(MySQLParser.SET, i); + } +}; + + +CollectionDataTypeContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +CollectionDataTypeContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +CollectionDataTypeContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +CollectionDataTypeContext.prototype.CHARSET = function() { + return this.getToken(MySQLParser.CHARSET, 0); +}; +CollectionDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCollectionDataType(this); + } +}; + +CollectionDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCollectionDataType(this); + } +}; + +CollectionDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCollectionDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NationalVaryingStringDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + this.typeName = null; // Token; + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NationalVaryingStringDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +NationalVaryingStringDataTypeContext.prototype.constructor = NationalVaryingStringDataTypeContext; + +MySQLParser.NationalVaryingStringDataTypeContext = NationalVaryingStringDataTypeContext; + +NationalVaryingStringDataTypeContext.prototype.NATIONAL = function() { + return this.getToken(MySQLParser.NATIONAL, 0); +}; + +NationalVaryingStringDataTypeContext.prototype.VARYING = function() { + return this.getToken(MySQLParser.VARYING, 0); +}; + +NationalVaryingStringDataTypeContext.prototype.CHAR = function() { + return this.getToken(MySQLParser.CHAR, 0); +}; + +NationalVaryingStringDataTypeContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +NationalVaryingStringDataTypeContext.prototype.lengthOneDimension = function() { + return this.getTypedRuleContext(LengthOneDimensionContext,0); +}; + +NationalVaryingStringDataTypeContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; +NationalVaryingStringDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterNationalVaryingStringDataType(this); + } +}; + +NationalVaryingStringDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitNationalVaryingStringDataType(this); + } +}; + +NationalVaryingStringDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitNationalVaryingStringDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DimensionDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + this.typeName = null; // Token; + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DimensionDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +DimensionDataTypeContext.prototype.constructor = DimensionDataTypeContext; + +MySQLParser.DimensionDataTypeContext = DimensionDataTypeContext; + +DimensionDataTypeContext.prototype.TINYINT = function() { + return this.getToken(MySQLParser.TINYINT, 0); +}; + +DimensionDataTypeContext.prototype.SMALLINT = function() { + return this.getToken(MySQLParser.SMALLINT, 0); +}; + +DimensionDataTypeContext.prototype.MEDIUMINT = function() { + return this.getToken(MySQLParser.MEDIUMINT, 0); +}; + +DimensionDataTypeContext.prototype.INT = function() { + return this.getToken(MySQLParser.INT, 0); +}; + +DimensionDataTypeContext.prototype.INTEGER = function() { + return this.getToken(MySQLParser.INTEGER, 0); +}; + +DimensionDataTypeContext.prototype.BIGINT = function() { + return this.getToken(MySQLParser.BIGINT, 0); +}; + +DimensionDataTypeContext.prototype.MIDDLEINT = function() { + return this.getToken(MySQLParser.MIDDLEINT, 0); +}; + +DimensionDataTypeContext.prototype.INT1 = function() { + return this.getToken(MySQLParser.INT1, 0); +}; + +DimensionDataTypeContext.prototype.INT2 = function() { + return this.getToken(MySQLParser.INT2, 0); +}; + +DimensionDataTypeContext.prototype.INT3 = function() { + return this.getToken(MySQLParser.INT3, 0); +}; + +DimensionDataTypeContext.prototype.INT4 = function() { + return this.getToken(MySQLParser.INT4, 0); +}; + +DimensionDataTypeContext.prototype.INT8 = function() { + return this.getToken(MySQLParser.INT8, 0); +}; + +DimensionDataTypeContext.prototype.lengthOneDimension = function() { + return this.getTypedRuleContext(LengthOneDimensionContext,0); +}; + +DimensionDataTypeContext.prototype.ZEROFILL = function() { + return this.getToken(MySQLParser.ZEROFILL, 0); +}; + +DimensionDataTypeContext.prototype.SIGNED = function() { + return this.getToken(MySQLParser.SIGNED, 0); +}; + +DimensionDataTypeContext.prototype.UNSIGNED = function() { + return this.getToken(MySQLParser.UNSIGNED, 0); +}; + +DimensionDataTypeContext.prototype.REAL = function() { + return this.getToken(MySQLParser.REAL, 0); +}; + +DimensionDataTypeContext.prototype.lengthTwoDimension = function() { + return this.getTypedRuleContext(LengthTwoDimensionContext,0); +}; + +DimensionDataTypeContext.prototype.DOUBLE = function() { + return this.getToken(MySQLParser.DOUBLE, 0); +}; + +DimensionDataTypeContext.prototype.PRECISION = function() { + return this.getToken(MySQLParser.PRECISION, 0); +}; + +DimensionDataTypeContext.prototype.DECIMAL = function() { + return this.getToken(MySQLParser.DECIMAL, 0); +}; + +DimensionDataTypeContext.prototype.DEC = function() { + return this.getToken(MySQLParser.DEC, 0); +}; + +DimensionDataTypeContext.prototype.FIXED = function() { + return this.getToken(MySQLParser.FIXED, 0); +}; + +DimensionDataTypeContext.prototype.NUMERIC = function() { + return this.getToken(MySQLParser.NUMERIC, 0); +}; + +DimensionDataTypeContext.prototype.FLOAT = function() { + return this.getToken(MySQLParser.FLOAT, 0); +}; + +DimensionDataTypeContext.prototype.FLOAT4 = function() { + return this.getToken(MySQLParser.FLOAT4, 0); +}; + +DimensionDataTypeContext.prototype.FLOAT8 = function() { + return this.getToken(MySQLParser.FLOAT8, 0); +}; + +DimensionDataTypeContext.prototype.lengthTwoOptionalDimension = function() { + return this.getTypedRuleContext(LengthTwoOptionalDimensionContext,0); +}; + +DimensionDataTypeContext.prototype.BIT = function() { + return this.getToken(MySQLParser.BIT, 0); +}; + +DimensionDataTypeContext.prototype.TIME = function() { + return this.getToken(MySQLParser.TIME, 0); +}; + +DimensionDataTypeContext.prototype.TIMESTAMP = function() { + return this.getToken(MySQLParser.TIMESTAMP, 0); +}; + +DimensionDataTypeContext.prototype.DATETIME = function() { + return this.getToken(MySQLParser.DATETIME, 0); +}; + +DimensionDataTypeContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +DimensionDataTypeContext.prototype.VARBINARY = function() { + return this.getToken(MySQLParser.VARBINARY, 0); +}; + +DimensionDataTypeContext.prototype.YEAR = function() { + return this.getToken(MySQLParser.YEAR, 0); +}; +DimensionDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDimensionDataType(this); + } +}; + +DimensionDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDimensionDataType(this); + } +}; + +DimensionDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDimensionDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function StringDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + this.typeName = null; // Token; + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +StringDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +StringDataTypeContext.prototype.constructor = StringDataTypeContext; + +MySQLParser.StringDataTypeContext = StringDataTypeContext; + +StringDataTypeContext.prototype.CHAR = function() { + return this.getToken(MySQLParser.CHAR, 0); +}; + +StringDataTypeContext.prototype.CHARACTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.CHARACTER); + } else { + return this.getToken(MySQLParser.CHARACTER, i); + } +}; + + +StringDataTypeContext.prototype.VARCHAR = function() { + return this.getToken(MySQLParser.VARCHAR, 0); +}; + +StringDataTypeContext.prototype.TINYTEXT = function() { + return this.getToken(MySQLParser.TINYTEXT, 0); +}; + +StringDataTypeContext.prototype.TEXT = function() { + return this.getToken(MySQLParser.TEXT, 0); +}; + +StringDataTypeContext.prototype.MEDIUMTEXT = function() { + return this.getToken(MySQLParser.MEDIUMTEXT, 0); +}; + +StringDataTypeContext.prototype.LONGTEXT = function() { + return this.getToken(MySQLParser.LONGTEXT, 0); +}; + +StringDataTypeContext.prototype.NCHAR = function() { + return this.getToken(MySQLParser.NCHAR, 0); +}; + +StringDataTypeContext.prototype.NVARCHAR = function() { + return this.getToken(MySQLParser.NVARCHAR, 0); +}; + +StringDataTypeContext.prototype.LONG = function() { + return this.getToken(MySQLParser.LONG, 0); +}; + +StringDataTypeContext.prototype.lengthOneDimension = function() { + return this.getTypedRuleContext(LengthOneDimensionContext,0); +}; + +StringDataTypeContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +StringDataTypeContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +StringDataTypeContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +StringDataTypeContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; + +StringDataTypeContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +StringDataTypeContext.prototype.CHARSET = function() { + return this.getToken(MySQLParser.CHARSET, 0); +}; +StringDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterStringDataType(this); + } +}; + +StringDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitStringDataType(this); + } +}; + +StringDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitStringDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function LongVarcharDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + this.typeName = null; // Token; + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LongVarcharDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +LongVarcharDataTypeContext.prototype.constructor = LongVarcharDataTypeContext; + +MySQLParser.LongVarcharDataTypeContext = LongVarcharDataTypeContext; + +LongVarcharDataTypeContext.prototype.LONG = function() { + return this.getToken(MySQLParser.LONG, 0); +}; + +LongVarcharDataTypeContext.prototype.VARCHAR = function() { + return this.getToken(MySQLParser.VARCHAR, 0); +}; + +LongVarcharDataTypeContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +LongVarcharDataTypeContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +LongVarcharDataTypeContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +LongVarcharDataTypeContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; + +LongVarcharDataTypeContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +LongVarcharDataTypeContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +LongVarcharDataTypeContext.prototype.CHARSET = function() { + return this.getToken(MySQLParser.CHARSET, 0); +}; +LongVarcharDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLongVarcharDataType(this); + } +}; + +LongVarcharDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLongVarcharDataType(this); + } +}; + +LongVarcharDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLongVarcharDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NationalStringDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + this.typeName = null; // Token; + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NationalStringDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +NationalStringDataTypeContext.prototype.constructor = NationalStringDataTypeContext; + +MySQLParser.NationalStringDataTypeContext = NationalStringDataTypeContext; + +NationalStringDataTypeContext.prototype.NATIONAL = function() { + return this.getToken(MySQLParser.NATIONAL, 0); +}; + +NationalStringDataTypeContext.prototype.VARCHAR = function() { + return this.getToken(MySQLParser.VARCHAR, 0); +}; + +NationalStringDataTypeContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +NationalStringDataTypeContext.prototype.lengthOneDimension = function() { + return this.getTypedRuleContext(LengthOneDimensionContext,0); +}; + +NationalStringDataTypeContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +NationalStringDataTypeContext.prototype.NCHAR = function() { + return this.getToken(MySQLParser.NCHAR, 0); +}; +NationalStringDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterNationalStringDataType(this); + } +}; + +NationalStringDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitNationalStringDataType(this); + } +}; + +NationalStringDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitNationalStringDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SimpleDataTypeContext(parser, ctx) { + DataTypeContext.call(this, parser); + this.typeName = null; // Token; + DataTypeContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SimpleDataTypeContext.prototype = Object.create(DataTypeContext.prototype); +SimpleDataTypeContext.prototype.constructor = SimpleDataTypeContext; + +MySQLParser.SimpleDataTypeContext = SimpleDataTypeContext; + +SimpleDataTypeContext.prototype.DATE = function() { + return this.getToken(MySQLParser.DATE, 0); +}; + +SimpleDataTypeContext.prototype.TINYBLOB = function() { + return this.getToken(MySQLParser.TINYBLOB, 0); +}; + +SimpleDataTypeContext.prototype.BLOB = function() { + return this.getToken(MySQLParser.BLOB, 0); +}; + +SimpleDataTypeContext.prototype.MEDIUMBLOB = function() { + return this.getToken(MySQLParser.MEDIUMBLOB, 0); +}; + +SimpleDataTypeContext.prototype.LONGBLOB = function() { + return this.getToken(MySQLParser.LONGBLOB, 0); +}; + +SimpleDataTypeContext.prototype.BOOL = function() { + return this.getToken(MySQLParser.BOOL, 0); +}; + +SimpleDataTypeContext.prototype.BOOLEAN = function() { + return this.getToken(MySQLParser.BOOLEAN, 0); +}; + +SimpleDataTypeContext.prototype.SERIAL = function() { + return this.getToken(MySQLParser.SERIAL, 0); +}; +SimpleDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleDataType(this); + } +}; + +SimpleDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleDataType(this); + } +}; + +SimpleDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.DataTypeContext = DataTypeContext; + +MySQLParser.prototype.dataType = function() { + + var localctx = new DataTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 542, MySQLParser.RULE_dataType); + var _la = 0; // Token type + try { + this.state = 5692; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,842,this._ctx); + switch(la_) { + case 1: + localctx = new StringDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 5565; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CHARACTER || ((((_la - 204)) & ~0x1f) == 0 && ((1 << (_la - 204)) & ((1 << (MySQLParser.CHAR - 204)) | (1 << (MySQLParser.VARCHAR - 204)) | (1 << (MySQLParser.NVARCHAR - 204)) | (1 << (MySQLParser.LONG - 204)) | (1 << (MySQLParser.TINYTEXT - 204)) | (1 << (MySQLParser.TEXT - 204)) | (1 << (MySQLParser.MEDIUMTEXT - 204)) | (1 << (MySQLParser.LONGTEXT - 204)))) !== 0) || _la===MySQLParser.NCHAR)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5567; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,809,this._ctx); + if(la_===1) { + this.state = 5566; + this.lengthOneDimension(); + + } + this.state = 5570; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.BINARY) { + this.state = 5569; + this.match(MySQLParser.BINARY); + } + + this.state = 5578; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,812,this._ctx); + if(la_===1) { + this.state = 5575; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CHARACTER: + this.state = 5572; + this.match(MySQLParser.CHARACTER); + this.state = 5573; + this.match(MySQLParser.SET); + break; + case MySQLParser.CHARSET: + this.state = 5574; + this.match(MySQLParser.CHARSET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5577; + this.charsetName(); + + } + this.state = 5582; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,813,this._ctx); + if(la_===1) { + this.state = 5580; + this.match(MySQLParser.COLLATE); + this.state = 5581; + this.collationName(); + + } + break; + + case 2: + localctx = new NationalStringDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 5584; + this.match(MySQLParser.NATIONAL); + this.state = 5585; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CHARACTER || _la===MySQLParser.VARCHAR)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5587; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,814,this._ctx); + if(la_===1) { + this.state = 5586; + this.lengthOneDimension(); + + } + this.state = 5590; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.BINARY) { + this.state = 5589; + this.match(MySQLParser.BINARY); + } + + break; + + case 3: + localctx = new NationalStringDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 5592; + this.match(MySQLParser.NCHAR); + this.state = 5593; + localctx.typeName = this.match(MySQLParser.VARCHAR); + this.state = 5595; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,816,this._ctx); + if(la_===1) { + this.state = 5594; + this.lengthOneDimension(); + + } + this.state = 5598; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.BINARY) { + this.state = 5597; + this.match(MySQLParser.BINARY); + } + + break; + + case 4: + localctx = new NationalVaryingStringDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 5600; + this.match(MySQLParser.NATIONAL); + this.state = 5601; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CHARACTER || _la===MySQLParser.CHAR)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5602; + this.match(MySQLParser.VARYING); + this.state = 5604; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,818,this._ctx); + if(la_===1) { + this.state = 5603; + this.lengthOneDimension(); + + } + this.state = 5607; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.BINARY) { + this.state = 5606; + this.match(MySQLParser.BINARY); + } + + break; + + case 5: + localctx = new DimensionDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 5609; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 178)) & ~0x1f) == 0 && ((1 << (_la - 178)) & ((1 << (MySQLParser.TINYINT - 178)) | (1 << (MySQLParser.SMALLINT - 178)) | (1 << (MySQLParser.MEDIUMINT - 178)) | (1 << (MySQLParser.MIDDLEINT - 178)) | (1 << (MySQLParser.INT - 178)) | (1 << (MySQLParser.INT1 - 178)) | (1 << (MySQLParser.INT2 - 178)) | (1 << (MySQLParser.INT3 - 178)) | (1 << (MySQLParser.INT4 - 178)) | (1 << (MySQLParser.INT8 - 178)) | (1 << (MySQLParser.INTEGER - 178)) | (1 << (MySQLParser.BIGINT - 178)))) !== 0))) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5611; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,820,this._ctx); + if(la_===1) { + this.state = 5610; + this.lengthOneDimension(); + + } + this.state = 5614; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,821,this._ctx); + if(la_===1) { + this.state = 5613; + _la = this._input.LA(1); + if(!(_la===MySQLParser.UNSIGNED || _la===MySQLParser.SIGNED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 5617; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ZEROFILL) { + this.state = 5616; + this.match(MySQLParser.ZEROFILL); + } + + break; + + case 6: + localctx = new DimensionDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 5619; + localctx.typeName = this.match(MySQLParser.REAL); + this.state = 5621; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,823,this._ctx); + if(la_===1) { + this.state = 5620; + this.lengthTwoDimension(); + + } + this.state = 5624; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,824,this._ctx); + if(la_===1) { + this.state = 5623; + _la = this._input.LA(1); + if(!(_la===MySQLParser.UNSIGNED || _la===MySQLParser.SIGNED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 5627; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ZEROFILL) { + this.state = 5626; + this.match(MySQLParser.ZEROFILL); + } + + break; + + case 7: + localctx = new DimensionDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 5629; + localctx.typeName = this.match(MySQLParser.DOUBLE); + this.state = 5631; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.PRECISION) { + this.state = 5630; + this.match(MySQLParser.PRECISION); + } + + this.state = 5634; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,827,this._ctx); + if(la_===1) { + this.state = 5633; + this.lengthTwoDimension(); + + } + this.state = 5637; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,828,this._ctx); + if(la_===1) { + this.state = 5636; + _la = this._input.LA(1); + if(!(_la===MySQLParser.UNSIGNED || _la===MySQLParser.SIGNED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 5640; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ZEROFILL) { + this.state = 5639; + this.match(MySQLParser.ZEROFILL); + } + + break; + + case 8: + localctx = new DimensionDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 5642; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 193)) & ~0x1f) == 0 && ((1 << (_la - 193)) & ((1 << (MySQLParser.FLOAT - 193)) | (1 << (MySQLParser.FLOAT4 - 193)) | (1 << (MySQLParser.FLOAT8 - 193)) | (1 << (MySQLParser.DECIMAL - 193)) | (1 << (MySQLParser.DEC - 193)) | (1 << (MySQLParser.NUMERIC - 193)))) !== 0) || _la===MySQLParser.FIXED)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5644; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,830,this._ctx); + if(la_===1) { + this.state = 5643; + this.lengthTwoOptionalDimension(); + + } + this.state = 5647; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,831,this._ctx); + if(la_===1) { + this.state = 5646; + _la = this._input.LA(1); + if(!(_la===MySQLParser.UNSIGNED || _la===MySQLParser.SIGNED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 5650; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ZEROFILL) { + this.state = 5649; + this.match(MySQLParser.ZEROFILL); + } + + break; + + case 9: + localctx = new SimpleDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 9); + this.state = 5652; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TINYBLOB - 199)) | (1 << (MySQLParser.BLOB - 199)) | (1 << (MySQLParser.MEDIUMBLOB - 199)) | (1 << (MySQLParser.LONGBLOB - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || _la===MySQLParser.BOOL || _la===MySQLParser.BOOLEAN)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 10: + localctx = new DimensionDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 10); + this.state = 5653; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 200)) & ~0x1f) == 0 && ((1 << (_la - 200)) & ((1 << (MySQLParser.TIME - 200)) | (1 << (MySQLParser.TIMESTAMP - 200)) | (1 << (MySQLParser.DATETIME - 200)) | (1 << (MySQLParser.YEAR - 200)) | (1 << (MySQLParser.BINARY - 200)) | (1 << (MySQLParser.VARBINARY - 200)))) !== 0) || _la===MySQLParser.BIT)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5655; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,833,this._ctx); + if(la_===1) { + this.state = 5654; + this.lengthOneDimension(); + + } + break; + + case 11: + localctx = new CollectionDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 11); + this.state = 5657; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.SET || _la===MySQLParser.ENUM)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5658; + this.collectionOptions(); + this.state = 5660; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.BINARY) { + this.state = 5659; + this.match(MySQLParser.BINARY); + } + + this.state = 5668; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,836,this._ctx); + if(la_===1) { + this.state = 5665; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CHARACTER: + this.state = 5662; + this.match(MySQLParser.CHARACTER); + this.state = 5663; + this.match(MySQLParser.SET); + break; + case MySQLParser.CHARSET: + this.state = 5664; + this.match(MySQLParser.CHARSET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5667; + this.charsetName(); + + } + break; + + case 12: + localctx = new SpatialDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 12); + this.state = 5670; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.JSON || ((((_la - 693)) & ~0x1f) == 0 && ((1 << (_la - 693)) & ((1 << (MySQLParser.GEOMETRYCOLLECTION - 693)) | (1 << (MySQLParser.GEOMCOLLECTION - 693)) | (1 << (MySQLParser.GEOMETRY - 693)) | (1 << (MySQLParser.LINESTRING - 693)) | (1 << (MySQLParser.MULTILINESTRING - 693)) | (1 << (MySQLParser.MULTIPOINT - 693)) | (1 << (MySQLParser.MULTIPOLYGON - 693)) | (1 << (MySQLParser.POINT - 693)) | (1 << (MySQLParser.POLYGON - 693)))) !== 0))) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 13: + localctx = new LongVarcharDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 13); + this.state = 5671; + localctx.typeName = this.match(MySQLParser.LONG); + this.state = 5673; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.VARCHAR) { + this.state = 5672; + this.match(MySQLParser.VARCHAR); + } + + this.state = 5676; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.BINARY) { + this.state = 5675; + this.match(MySQLParser.BINARY); + } + + this.state = 5684; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,840,this._ctx); + if(la_===1) { + this.state = 5681; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CHARACTER: + this.state = 5678; + this.match(MySQLParser.CHARACTER); + this.state = 5679; + this.match(MySQLParser.SET); + break; + case MySQLParser.CHARSET: + this.state = 5680; + this.match(MySQLParser.CHARSET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5683; + this.charsetName(); + + } + this.state = 5688; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,841,this._ctx); + if(la_===1) { + this.state = 5686; + this.match(MySQLParser.COLLATE); + this.state = 5687; + this.collationName(); + + } + break; + + case 14: + localctx = new LongVarbinaryDataTypeContext(this, localctx); + this.enterOuterAlt(localctx, 14); + this.state = 5690; + this.match(MySQLParser.LONG); + this.state = 5691; + this.match(MySQLParser.VARBINARY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CollectionOptionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_collectionOptions; + return this; +} + +CollectionOptionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CollectionOptionsContext.prototype.constructor = CollectionOptionsContext; + +CollectionOptionsContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CollectionOptionsContext.prototype.STRING_LITERAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.STRING_LITERAL); + } else { + return this.getToken(MySQLParser.STRING_LITERAL, i); + } +}; + + +CollectionOptionsContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CollectionOptionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +CollectionOptionsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCollectionOptions(this); + } +}; + +CollectionOptionsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCollectionOptions(this); + } +}; + +CollectionOptionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCollectionOptions(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CollectionOptionsContext = CollectionOptionsContext; + +MySQLParser.prototype.collectionOptions = function() { + + var localctx = new CollectionOptionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 544, MySQLParser.RULE_collectionOptions); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5694; + this.match(MySQLParser.LR_BRACKET); + this.state = 5695; + this.match(MySQLParser.STRING_LITERAL); + this.state = 5700; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5696; + this.match(MySQLParser.COMMA); + this.state = 5697; + this.match(MySQLParser.STRING_LITERAL); + this.state = 5702; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5703; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ConvertedDataTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_convertedDataType; + this.typeName = null; // Token + return this; +} + +ConvertedDataTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ConvertedDataTypeContext.prototype.constructor = ConvertedDataTypeContext; + +ConvertedDataTypeContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +ConvertedDataTypeContext.prototype.NCHAR = function() { + return this.getToken(MySQLParser.NCHAR, 0); +}; + +ConvertedDataTypeContext.prototype.lengthOneDimension = function() { + return this.getTypedRuleContext(LengthOneDimensionContext,0); +}; + +ConvertedDataTypeContext.prototype.CHAR = function() { + return this.getToken(MySQLParser.CHAR, 0); +}; + +ConvertedDataTypeContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +ConvertedDataTypeContext.prototype.CHARACTER = function() { + return this.getToken(MySQLParser.CHARACTER, 0); +}; + +ConvertedDataTypeContext.prototype.SET = function() { + return this.getToken(MySQLParser.SET, 0); +}; + +ConvertedDataTypeContext.prototype.CHARSET = function() { + return this.getToken(MySQLParser.CHARSET, 0); +}; + +ConvertedDataTypeContext.prototype.DATE = function() { + return this.getToken(MySQLParser.DATE, 0); +}; + +ConvertedDataTypeContext.prototype.DATETIME = function() { + return this.getToken(MySQLParser.DATETIME, 0); +}; + +ConvertedDataTypeContext.prototype.TIME = function() { + return this.getToken(MySQLParser.TIME, 0); +}; + +ConvertedDataTypeContext.prototype.JSON = function() { + return this.getToken(MySQLParser.JSON, 0); +}; + +ConvertedDataTypeContext.prototype.DECIMAL = function() { + return this.getToken(MySQLParser.DECIMAL, 0); +}; + +ConvertedDataTypeContext.prototype.lengthTwoDimension = function() { + return this.getTypedRuleContext(LengthTwoDimensionContext,0); +}; + +ConvertedDataTypeContext.prototype.SIGNED = function() { + return this.getToken(MySQLParser.SIGNED, 0); +}; + +ConvertedDataTypeContext.prototype.UNSIGNED = function() { + return this.getToken(MySQLParser.UNSIGNED, 0); +}; + +ConvertedDataTypeContext.prototype.INTEGER = function() { + return this.getToken(MySQLParser.INTEGER, 0); +}; + +ConvertedDataTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterConvertedDataType(this); + } +}; + +ConvertedDataTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitConvertedDataType(this); + } +}; + +ConvertedDataTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitConvertedDataType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ConvertedDataTypeContext = ConvertedDataTypeContext; + +MySQLParser.prototype.convertedDataType = function() { + + var localctx = new ConvertedDataTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 546, MySQLParser.RULE_convertedDataType); + var _la = 0; // Token type + try { + this.state = 5730; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.BINARY: + case MySQLParser.NCHAR: + this.enterOuterAlt(localctx, 1); + this.state = 5705; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.BINARY || _la===MySQLParser.NCHAR)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5707; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LR_BRACKET) { + this.state = 5706; + this.lengthOneDimension(); + } + + break; + case MySQLParser.CHAR: + this.enterOuterAlt(localctx, 2); + this.state = 5709; + localctx.typeName = this.match(MySQLParser.CHAR); + this.state = 5711; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LR_BRACKET) { + this.state = 5710; + this.lengthOneDimension(); + } + + this.state = 5719; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.CHARACTER || _la===MySQLParser.CHARSET) { + this.state = 5716; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CHARACTER: + this.state = 5713; + this.match(MySQLParser.CHARACTER); + this.state = 5714; + this.match(MySQLParser.SET); + break; + case MySQLParser.CHARSET: + this.state = 5715; + this.match(MySQLParser.CHARSET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5718; + this.charsetName(); + } + + break; + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.DATETIME: + case MySQLParser.JSON: + this.enterOuterAlt(localctx, 3); + this.state = 5721; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.DATETIME - 199)))) !== 0) || _la===MySQLParser.JSON)) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case MySQLParser.DECIMAL: + this.enterOuterAlt(localctx, 4); + this.state = 5722; + localctx.typeName = this.match(MySQLParser.DECIMAL); + this.state = 5724; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LR_BRACKET) { + this.state = 5723; + this.lengthTwoDimension(); + } + + break; + case MySQLParser.UNSIGNED: + case MySQLParser.SIGNED: + this.enterOuterAlt(localctx, 5); + this.state = 5726; + _la = this._input.LA(1); + if(!(_la===MySQLParser.UNSIGNED || _la===MySQLParser.SIGNED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5728; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.INTEGER) { + this.state = 5727; + this.match(MySQLParser.INTEGER); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LengthOneDimensionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_lengthOneDimension; + return this; +} + +LengthOneDimensionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LengthOneDimensionContext.prototype.constructor = LengthOneDimensionContext; + +LengthOneDimensionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +LengthOneDimensionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +LengthOneDimensionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +LengthOneDimensionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLengthOneDimension(this); + } +}; + +LengthOneDimensionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLengthOneDimension(this); + } +}; + +LengthOneDimensionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLengthOneDimension(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LengthOneDimensionContext = LengthOneDimensionContext; + +MySQLParser.prototype.lengthOneDimension = function() { + + var localctx = new LengthOneDimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 548, MySQLParser.RULE_lengthOneDimension); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5732; + this.match(MySQLParser.LR_BRACKET); + this.state = 5733; + this.decimalLiteral(); + this.state = 5734; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LengthTwoDimensionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_lengthTwoDimension; + return this; +} + +LengthTwoDimensionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LengthTwoDimensionContext.prototype.constructor = LengthTwoDimensionContext; + +LengthTwoDimensionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +LengthTwoDimensionContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; + +LengthTwoDimensionContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; + +LengthTwoDimensionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +LengthTwoDimensionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLengthTwoDimension(this); + } +}; + +LengthTwoDimensionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLengthTwoDimension(this); + } +}; + +LengthTwoDimensionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLengthTwoDimension(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LengthTwoDimensionContext = LengthTwoDimensionContext; + +MySQLParser.prototype.lengthTwoDimension = function() { + + var localctx = new LengthTwoDimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 550, MySQLParser.RULE_lengthTwoDimension); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5736; + this.match(MySQLParser.LR_BRACKET); + this.state = 5737; + this.decimalLiteral(); + this.state = 5738; + this.match(MySQLParser.COMMA); + this.state = 5739; + this.decimalLiteral(); + this.state = 5740; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LengthTwoOptionalDimensionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_lengthTwoOptionalDimension; + return this; +} + +LengthTwoOptionalDimensionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LengthTwoOptionalDimensionContext.prototype.constructor = LengthTwoOptionalDimensionContext; + +LengthTwoOptionalDimensionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +LengthTwoOptionalDimensionContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; + +LengthTwoOptionalDimensionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +LengthTwoOptionalDimensionContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; + +LengthTwoOptionalDimensionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLengthTwoOptionalDimension(this); + } +}; + +LengthTwoOptionalDimensionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLengthTwoOptionalDimension(this); + } +}; + +LengthTwoOptionalDimensionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLengthTwoOptionalDimension(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LengthTwoOptionalDimensionContext = LengthTwoOptionalDimensionContext; + +MySQLParser.prototype.lengthTwoOptionalDimension = function() { + + var localctx = new LengthTwoOptionalDimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 552, MySQLParser.RULE_lengthTwoOptionalDimension); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5742; + this.match(MySQLParser.LR_BRACKET); + this.state = 5743; + this.decimalLiteral(); + this.state = 5746; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.COMMA) { + this.state = 5744; + this.match(MySQLParser.COMMA); + this.state = 5745; + this.decimalLiteral(); + } + + this.state = 5748; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UidListContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_uidList; + return this; +} + +UidListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UidListContext.prototype.constructor = UidListContext; + +UidListContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +UidListContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +UidListContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUidList(this); + } +}; + +UidListContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUidList(this); + } +}; + +UidListContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUidList(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UidListContext = UidListContext; + +MySQLParser.prototype.uidList = function() { + + var localctx = new UidListContext(this, this._ctx, this.state); + this.enterRule(localctx, 554, MySQLParser.RULE_uidList); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5750; + this.uid(); + this.state = 5755; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,852,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5751; + this.match(MySQLParser.COMMA); + this.state = 5752; + this.uid(); + } + this.state = 5757; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,852,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TablesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_tables; + return this; +} + +TablesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TablesContext.prototype.constructor = TablesContext; + +TablesContext.prototype.tableName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableNameContext); + } else { + return this.getTypedRuleContext(TableNameContext,i); + } +}; + +TablesContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +TablesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTables(this); + } +}; + +TablesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTables(this); + } +}; + +TablesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTables(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TablesContext = TablesContext; + +MySQLParser.prototype.tables = function() { + + var localctx = new TablesContext(this, this._ctx, this.state); + this.enterRule(localctx, 556, MySQLParser.RULE_tables); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5758; + this.tableName(); + this.state = 5763; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,853,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5759; + this.match(MySQLParser.COMMA); + this.state = 5760; + this.tableName(); + } + this.state = 5765; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,853,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IndexColumnNamesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_indexColumnNames; + return this; +} + +IndexColumnNamesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IndexColumnNamesContext.prototype.constructor = IndexColumnNamesContext; + +IndexColumnNamesContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +IndexColumnNamesContext.prototype.indexColumnName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IndexColumnNameContext); + } else { + return this.getTypedRuleContext(IndexColumnNameContext,i); + } +}; + +IndexColumnNamesContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +IndexColumnNamesContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +IndexColumnNamesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIndexColumnNames(this); + } +}; + +IndexColumnNamesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIndexColumnNames(this); + } +}; + +IndexColumnNamesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIndexColumnNames(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IndexColumnNamesContext = IndexColumnNamesContext; + +MySQLParser.prototype.indexColumnNames = function() { + + var localctx = new IndexColumnNamesContext(this, this._ctx, this.state); + this.enterRule(localctx, 558, MySQLParser.RULE_indexColumnNames); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5766; + this.match(MySQLParser.LR_BRACKET); + this.state = 5767; + this.indexColumnName(); + this.state = 5772; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5768; + this.match(MySQLParser.COMMA); + this.state = 5769; + this.indexColumnName(); + this.state = 5774; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5775; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExpressionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_expressions; + return this; +} + +ExpressionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExpressionsContext.prototype.constructor = ExpressionsContext; + +ExpressionsContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +ExpressionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ExpressionsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterExpressions(this); + } +}; + +ExpressionsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitExpressions(this); + } +}; + +ExpressionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitExpressions(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ExpressionsContext = ExpressionsContext; + +MySQLParser.prototype.expressions = function() { + + var localctx = new ExpressionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 560, MySQLParser.RULE_expressions); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5777; + this.expression(0); + this.state = 5782; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5778; + this.match(MySQLParser.COMMA); + this.state = 5779; + this.expression(0); + this.state = 5784; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExpressionsWithDefaultsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_expressionsWithDefaults; + return this; +} + +ExpressionsWithDefaultsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExpressionsWithDefaultsContext.prototype.constructor = ExpressionsWithDefaultsContext; + +ExpressionsWithDefaultsContext.prototype.expressionOrDefault = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionOrDefaultContext); + } else { + return this.getTypedRuleContext(ExpressionOrDefaultContext,i); + } +}; + +ExpressionsWithDefaultsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ExpressionsWithDefaultsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterExpressionsWithDefaults(this); + } +}; + +ExpressionsWithDefaultsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitExpressionsWithDefaults(this); + } +}; + +ExpressionsWithDefaultsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitExpressionsWithDefaults(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ExpressionsWithDefaultsContext = ExpressionsWithDefaultsContext; + +MySQLParser.prototype.expressionsWithDefaults = function() { + + var localctx = new ExpressionsWithDefaultsContext(this, this._ctx, this.state); + this.enterRule(localctx, 562, MySQLParser.RULE_expressionsWithDefaults); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5785; + this.expressionOrDefault(); + this.state = 5790; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5786; + this.match(MySQLParser.COMMA); + this.state = 5787; + this.expressionOrDefault(); + this.state = 5792; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ConstantsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_constants; + return this; +} + +ConstantsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ConstantsContext.prototype.constructor = ConstantsContext; + +ConstantsContext.prototype.constant = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConstantContext); + } else { + return this.getTypedRuleContext(ConstantContext,i); + } +}; + +ConstantsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +ConstantsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterConstants(this); + } +}; + +ConstantsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitConstants(this); + } +}; + +ConstantsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitConstants(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ConstantsContext = ConstantsContext; + +MySQLParser.prototype.constants = function() { + + var localctx = new ConstantsContext(this, this._ctx, this.state); + this.enterRule(localctx, 564, MySQLParser.RULE_constants); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5793; + this.constant(); + this.state = 5798; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5794; + this.match(MySQLParser.COMMA); + this.state = 5795; + this.constant(); + this.state = 5800; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SimpleStringsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_simpleStrings; + return this; +} + +SimpleStringsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SimpleStringsContext.prototype.constructor = SimpleStringsContext; + +SimpleStringsContext.prototype.STRING_LITERAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.STRING_LITERAL); + } else { + return this.getToken(MySQLParser.STRING_LITERAL, i); + } +}; + + +SimpleStringsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +SimpleStringsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleStrings(this); + } +}; + +SimpleStringsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleStrings(this); + } +}; + +SimpleStringsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleStrings(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.SimpleStringsContext = SimpleStringsContext; + +MySQLParser.prototype.simpleStrings = function() { + + var localctx = new SimpleStringsContext(this, this._ctx, this.state); + this.enterRule(localctx, 566, MySQLParser.RULE_simpleStrings); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5801; + this.match(MySQLParser.STRING_LITERAL); + this.state = 5806; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5802; + this.match(MySQLParser.COMMA); + this.state = 5803; + this.match(MySQLParser.STRING_LITERAL); + this.state = 5808; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UserVariablesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_userVariables; + return this; +} + +UserVariablesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UserVariablesContext.prototype.constructor = UserVariablesContext; + +UserVariablesContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LOCAL_ID); + } else { + return this.getToken(MySQLParser.LOCAL_ID, i); + } +}; + + +UserVariablesContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +UserVariablesContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUserVariables(this); + } +}; + +UserVariablesContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUserVariables(this); + } +}; + +UserVariablesContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUserVariables(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UserVariablesContext = UserVariablesContext; + +MySQLParser.prototype.userVariables = function() { + + var localctx = new UserVariablesContext(this, this._ctx, this.state); + this.enterRule(localctx, 568, MySQLParser.RULE_userVariables); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5809; + this.match(MySQLParser.LOCAL_ID); + this.state = 5814; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 5810; + this.match(MySQLParser.COMMA); + this.state = 5811; + this.match(MySQLParser.LOCAL_ID); + this.state = 5816; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DefaultValueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_defaultValue; + return this; +} + +DefaultValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DefaultValueContext.prototype.constructor = DefaultValueContext; + +DefaultValueContext.prototype.NULL_LITERAL = function() { + return this.getToken(MySQLParser.NULL_LITERAL, 0); +}; + +DefaultValueContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +DefaultValueContext.prototype.unaryOperator = function() { + return this.getTypedRuleContext(UnaryOperatorContext,0); +}; + +DefaultValueContext.prototype.currentTimestamp = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(CurrentTimestampContext); + } else { + return this.getTypedRuleContext(CurrentTimestampContext,i); + } +}; + +DefaultValueContext.prototype.ON = function() { + return this.getToken(MySQLParser.ON, 0); +}; + +DefaultValueContext.prototype.UPDATE = function() { + return this.getToken(MySQLParser.UPDATE, 0); +}; + +DefaultValueContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDefaultValue(this); + } +}; + +DefaultValueContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDefaultValue(this); + } +}; + +DefaultValueContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDefaultValue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DefaultValueContext = DefaultValueContext; + +MySQLParser.prototype.defaultValue = function() { + + var localctx = new DefaultValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 570, MySQLParser.RULE_defaultValue); + try { + this.state = 5828; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,862,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5817; + this.match(MySQLParser.NULL_LITERAL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5819; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,860,this._ctx); + if(la_===1) { + this.state = 5818; + this.unaryOperator(); + + } + this.state = 5821; + this.constant(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5822; + this.currentTimestamp(); + this.state = 5826; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,861,this._ctx); + if(la_===1) { + this.state = 5823; + this.match(MySQLParser.ON); + this.state = 5824; + this.match(MySQLParser.UPDATE); + this.state = 5825; + this.currentTimestamp(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CurrentTimestampContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_currentTimestamp; + return this; +} + +CurrentTimestampContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CurrentTimestampContext.prototype.constructor = CurrentTimestampContext; + +CurrentTimestampContext.prototype.NOW = function() { + return this.getToken(MySQLParser.NOW, 0); +}; + +CurrentTimestampContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CurrentTimestampContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CurrentTimestampContext.prototype.CURRENT_TIMESTAMP = function() { + return this.getToken(MySQLParser.CURRENT_TIMESTAMP, 0); +}; + +CurrentTimestampContext.prototype.LOCALTIME = function() { + return this.getToken(MySQLParser.LOCALTIME, 0); +}; + +CurrentTimestampContext.prototype.LOCALTIMESTAMP = function() { + return this.getToken(MySQLParser.LOCALTIMESTAMP, 0); +}; + +CurrentTimestampContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +CurrentTimestampContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCurrentTimestamp(this); + } +}; + +CurrentTimestampContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCurrentTimestamp(this); + } +}; + +CurrentTimestampContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCurrentTimestamp(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CurrentTimestampContext = CurrentTimestampContext; + +MySQLParser.prototype.currentTimestamp = function() { + + var localctx = new CurrentTimestampContext(this, this._ctx, this.state); + this.enterRule(localctx, 572, MySQLParser.RULE_currentTimestamp); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5844; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CURRENT_TIMESTAMP: + case MySQLParser.LOCALTIME: + case MySQLParser.LOCALTIMESTAMP: + this.state = 5830; + _la = this._input.LA(1); + if(!(((((_la - 253)) & ~0x1f) == 0 && ((1 << (_la - 253)) & ((1 << (MySQLParser.CURRENT_TIMESTAMP - 253)) | (1 << (MySQLParser.LOCALTIME - 253)) | (1 << (MySQLParser.LOCALTIMESTAMP - 253)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5836; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,864,this._ctx); + if(la_===1) { + this.state = 5831; + this.match(MySQLParser.LR_BRACKET); + this.state = 5833; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 1025)) & ~0x1f) == 0 && ((1 << (_la - 1025)) & ((1 << (MySQLParser.ZERO_DECIMAL - 1025)) | (1 << (MySQLParser.ONE_DECIMAL - 1025)) | (1 << (MySQLParser.TWO_DECIMAL - 1025)) | (1 << (MySQLParser.DECIMAL_LITERAL - 1025)))) !== 0)) { + this.state = 5832; + this.decimalLiteral(); + } + + this.state = 5835; + this.match(MySQLParser.RR_BRACKET); + + } + break; + case MySQLParser.NOW: + this.state = 5838; + this.match(MySQLParser.NOW); + this.state = 5839; + this.match(MySQLParser.LR_BRACKET); + this.state = 5841; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 1025)) & ~0x1f) == 0 && ((1 << (_la - 1025)) & ((1 << (MySQLParser.ZERO_DECIMAL - 1025)) | (1 << (MySQLParser.ONE_DECIMAL - 1025)) | (1 << (MySQLParser.TWO_DECIMAL - 1025)) | (1 << (MySQLParser.DECIMAL_LITERAL - 1025)))) !== 0)) { + this.state = 5840; + this.decimalLiteral(); + } + + this.state = 5843; + this.match(MySQLParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExpressionOrDefaultContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_expressionOrDefault; + return this; +} + +ExpressionOrDefaultContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExpressionOrDefaultContext.prototype.constructor = ExpressionOrDefaultContext; + +ExpressionOrDefaultContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +ExpressionOrDefaultContext.prototype.DEFAULT = function() { + return this.getToken(MySQLParser.DEFAULT, 0); +}; + +ExpressionOrDefaultContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterExpressionOrDefault(this); + } +}; + +ExpressionOrDefaultContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitExpressionOrDefault(this); + } +}; + +ExpressionOrDefaultContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitExpressionOrDefault(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ExpressionOrDefaultContext = ExpressionOrDefaultContext; + +MySQLParser.prototype.expressionOrDefault = function() { + + var localctx = new ExpressionOrDefaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 574, MySQLParser.RULE_expressionOrDefault); + try { + this.state = 5848; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.CASE: + case MySQLParser.CAST: + case MySQLParser.CONVERT: + case MySQLParser.CURRENT: + case MySQLParser.CURRENT_USER: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.EXISTS: + case MySQLParser.FALSE: + case MySQLParser.IF: + case MySQLParser.INSERT: + case MySQLParser.INTERVAL: + case MySQLParser.LEFT: + case MySQLParser.NOT: + case MySQLParser.NULL_LITERAL: + case MySQLParser.NUMBER: + case MySQLParser.REPLACE: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.TRUE: + case MySQLParser.VALUES: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.CHAR: + case MySQLParser.BINARY: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.AVG: + case MySQLParser.BIT_AND: + case MySQLParser.BIT_OR: + case MySQLParser.BIT_XOR: + case MySQLParser.COUNT: + case MySQLParser.GROUP_CONCAT: + case MySQLParser.MAX: + case MySQLParser.MIN: + case MySQLParser.STD: + case MySQLParser.STDDEV: + case MySQLParser.STDDEV_POP: + case MySQLParser.STDDEV_SAMP: + case MySQLParser.SUM: + case MySQLParser.VAR_POP: + case MySQLParser.VAR_SAMP: + case MySQLParser.VARIANCE: + case MySQLParser.CURRENT_DATE: + case MySQLParser.CURRENT_TIME: + case MySQLParser.CURRENT_TIMESTAMP: + case MySQLParser.LOCALTIME: + case MySQLParser.CURDATE: + case MySQLParser.CURTIME: + case MySQLParser.DATE_ADD: + case MySQLParser.DATE_SUB: + case MySQLParser.EXTRACT: + case MySQLParser.LOCALTIMESTAMP: + case MySQLParser.NOW: + case MySQLParser.POSITION: + case MySQLParser.SUBSTR: + case MySQLParser.SUBSTRING: + case MySQLParser.SYSDATE: + case MySQLParser.TRIM: + case MySQLParser.UTC_DATE: + case MySQLParser.UTC_TIME: + case MySQLParser.UTC_TIMESTAMP: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.PLUS: + case MySQLParser.MINUS: + case MySQLParser.EXCLAMATION_SYMBOL: + case MySQLParser.BIT_NOT_OP: + case MySQLParser.LR_BRACKET: + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.START_NATIONAL_STRING_LITERAL: + case MySQLParser.STRING_LITERAL: + case MySQLParser.DECIMAL_LITERAL: + case MySQLParser.HEXADECIMAL_LITERAL: + case MySQLParser.REAL_LITERAL: + case MySQLParser.NULL_SPEC_LITERAL: + case MySQLParser.BIT_STRING: + case MySQLParser.STRING_CHARSET_NAME: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + case MySQLParser.LOCAL_ID: + case MySQLParser.GLOBAL_ID: + this.enterOuterAlt(localctx, 1); + this.state = 5846; + this.expression(0); + break; + case MySQLParser.DEFAULT: + this.enterOuterAlt(localctx, 2); + this.state = 5847; + this.match(MySQLParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IfExistsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_ifExists; + return this; +} + +IfExistsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IfExistsContext.prototype.constructor = IfExistsContext; + +IfExistsContext.prototype.IF = function() { + return this.getToken(MySQLParser.IF, 0); +}; + +IfExistsContext.prototype.EXISTS = function() { + return this.getToken(MySQLParser.EXISTS, 0); +}; + +IfExistsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIfExists(this); + } +}; + +IfExistsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIfExists(this); + } +}; + +IfExistsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIfExists(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IfExistsContext = IfExistsContext; + +MySQLParser.prototype.ifExists = function() { + + var localctx = new IfExistsContext(this, this._ctx, this.state); + this.enterRule(localctx, 576, MySQLParser.RULE_ifExists); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5850; + this.match(MySQLParser.IF); + this.state = 5851; + this.match(MySQLParser.EXISTS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IfNotExistsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_ifNotExists; + return this; +} + +IfNotExistsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IfNotExistsContext.prototype.constructor = IfNotExistsContext; + +IfNotExistsContext.prototype.IF = function() { + return this.getToken(MySQLParser.IF, 0); +}; + +IfNotExistsContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +IfNotExistsContext.prototype.EXISTS = function() { + return this.getToken(MySQLParser.EXISTS, 0); +}; + +IfNotExistsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIfNotExists(this); + } +}; + +IfNotExistsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIfNotExists(this); + } +}; + +IfNotExistsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIfNotExists(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IfNotExistsContext = IfNotExistsContext; + +MySQLParser.prototype.ifNotExists = function() { + + var localctx = new IfNotExistsContext(this, this._ctx, this.state); + this.enterRule(localctx, 578, MySQLParser.RULE_ifNotExists); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5853; + this.match(MySQLParser.IF); + this.state = 5854; + this.match(MySQLParser.NOT); + this.state = 5855; + this.match(MySQLParser.EXISTS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FunctionCallContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_functionCall; + return this; +} + +FunctionCallContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FunctionCallContext.prototype.constructor = FunctionCallContext; + + + +FunctionCallContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function SpecificFunctionCallContext(parser, ctx) { + FunctionCallContext.call(this, parser); + FunctionCallContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SpecificFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype); +SpecificFunctionCallContext.prototype.constructor = SpecificFunctionCallContext; + +MySQLParser.SpecificFunctionCallContext = SpecificFunctionCallContext; + +SpecificFunctionCallContext.prototype.specificFunction = function() { + return this.getTypedRuleContext(SpecificFunctionContext,0); +}; +SpecificFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSpecificFunctionCall(this); + } +}; + +SpecificFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSpecificFunctionCall(this); + } +}; + +SpecificFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSpecificFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PasswordFunctionCallContext(parser, ctx) { + FunctionCallContext.call(this, parser); + FunctionCallContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PasswordFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype); +PasswordFunctionCallContext.prototype.constructor = PasswordFunctionCallContext; + +MySQLParser.PasswordFunctionCallContext = PasswordFunctionCallContext; + +PasswordFunctionCallContext.prototype.passwordFunctionClause = function() { + return this.getTypedRuleContext(PasswordFunctionClauseContext,0); +}; +PasswordFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPasswordFunctionCall(this); + } +}; + +PasswordFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPasswordFunctionCall(this); + } +}; + +PasswordFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPasswordFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function UdfFunctionCallContext(parser, ctx) { + FunctionCallContext.call(this, parser); + FunctionCallContext.prototype.copyFrom.call(this, ctx); + return this; +} + +UdfFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype); +UdfFunctionCallContext.prototype.constructor = UdfFunctionCallContext; + +MySQLParser.UdfFunctionCallContext = UdfFunctionCallContext; + +UdfFunctionCallContext.prototype.fullId = function() { + return this.getTypedRuleContext(FullIdContext,0); +}; + +UdfFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +UdfFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +UdfFunctionCallContext.prototype.functionArgs = function() { + return this.getTypedRuleContext(FunctionArgsContext,0); +}; +UdfFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUdfFunctionCall(this); + } +}; + +UdfFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUdfFunctionCall(this); + } +}; + +UdfFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUdfFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AggregateFunctionCallContext(parser, ctx) { + FunctionCallContext.call(this, parser); + FunctionCallContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AggregateFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype); +AggregateFunctionCallContext.prototype.constructor = AggregateFunctionCallContext; + +MySQLParser.AggregateFunctionCallContext = AggregateFunctionCallContext; + +AggregateFunctionCallContext.prototype.aggregateWindowedFunction = function() { + return this.getTypedRuleContext(AggregateWindowedFunctionContext,0); +}; +AggregateFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAggregateFunctionCall(this); + } +}; + +AggregateFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAggregateFunctionCall(this); + } +}; + +AggregateFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAggregateFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ScalarFunctionCallContext(parser, ctx) { + FunctionCallContext.call(this, parser); + FunctionCallContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ScalarFunctionCallContext.prototype = Object.create(FunctionCallContext.prototype); +ScalarFunctionCallContext.prototype.constructor = ScalarFunctionCallContext; + +MySQLParser.ScalarFunctionCallContext = ScalarFunctionCallContext; + +ScalarFunctionCallContext.prototype.scalarFunctionName = function() { + return this.getTypedRuleContext(ScalarFunctionNameContext,0); +}; + +ScalarFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +ScalarFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +ScalarFunctionCallContext.prototype.functionArgs = function() { + return this.getTypedRuleContext(FunctionArgsContext,0); +}; +ScalarFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterScalarFunctionCall(this); + } +}; + +ScalarFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitScalarFunctionCall(this); + } +}; + +ScalarFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitScalarFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.FunctionCallContext = FunctionCallContext; + +MySQLParser.prototype.functionCall = function() { + + var localctx = new FunctionCallContext(this, this._ctx, this.state); + this.enterRule(localctx, 580, MySQLParser.RULE_functionCall); + var _la = 0; // Token type + try { + this.state = 5874; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,870,this._ctx); + switch(la_) { + case 1: + localctx = new SpecificFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 5857; + this.specificFunction(); + break; + + case 2: + localctx = new AggregateFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 5858; + this.aggregateWindowedFunction(); + break; + + case 3: + localctx = new ScalarFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 5859; + this.scalarFunctionName(); + this.state = 5860; + this.match(MySQLParser.LR_BRACKET); + this.state = 5862; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << MySQLParser.CASE) | (1 << MySQLParser.CAST) | (1 << MySQLParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.CURRENT_USER - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)) | (1 << (MySQLParser.EXISTS - 32)) | (1 << (MySQLParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (MySQLParser.IF - 69)) | (1 << (MySQLParser.INSERT - 69)) | (1 << (MySQLParser.INTERVAL - 69)) | (1 << (MySQLParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (MySQLParser.NOT - 102)) | (1 << (MySQLParser.NULL_LITERAL - 102)) | (1 << (MySQLParser.NUMBER - 102)) | (1 << (MySQLParser.REPLACE - 102)) | (1 << (MySQLParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (MySQLParser.STACKED - 151)) | (1 << (MySQLParser.TRUE - 151)) | (1 << (MySQLParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.CHAR - 199)) | (1 << (MySQLParser.BINARY - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.AVG - 233)) | (1 << (MySQLParser.BIT_AND - 233)) | (1 << (MySQLParser.BIT_OR - 233)) | (1 << (MySQLParser.BIT_XOR - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.GROUP_CONCAT - 233)) | (1 << (MySQLParser.MAX - 233)) | (1 << (MySQLParser.MIN - 233)) | (1 << (MySQLParser.STD - 233)) | (1 << (MySQLParser.STDDEV - 233)) | (1 << (MySQLParser.STDDEV_POP - 233)) | (1 << (MySQLParser.STDDEV_SAMP - 233)) | (1 << (MySQLParser.SUM - 233)) | (1 << (MySQLParser.VAR_POP - 233)) | (1 << (MySQLParser.VAR_SAMP - 233)) | (1 << (MySQLParser.VARIANCE - 233)) | (1 << (MySQLParser.CURRENT_DATE - 233)) | (1 << (MySQLParser.CURRENT_TIME - 233)) | (1 << (MySQLParser.CURRENT_TIMESTAMP - 233)) | (1 << (MySQLParser.LOCALTIME - 233)) | (1 << (MySQLParser.CURDATE - 233)) | (1 << (MySQLParser.CURTIME - 233)) | (1 << (MySQLParser.DATE_ADD - 233)) | (1 << (MySQLParser.DATE_SUB - 233)) | (1 << (MySQLParser.EXTRACT - 233)) | (1 << (MySQLParser.LOCALTIMESTAMP - 233)) | (1 << (MySQLParser.NOW - 233)) | (1 << (MySQLParser.POSITION - 233)) | (1 << (MySQLParser.SUBSTR - 233)) | (1 << (MySQLParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1f) == 0 && ((1 << (_la - 265)) & ((1 << (MySQLParser.SYSDATE - 265)) | (1 << (MySQLParser.TRIM - 265)) | (1 << (MySQLParser.UTC_DATE - 265)) | (1 << (MySQLParser.UTC_TIME - 265)) | (1 << (MySQLParser.UTC_TIMESTAMP - 265)) | (1 << (MySQLParser.ACCOUNT - 265)) | (1 << (MySQLParser.ACTION - 265)) | (1 << (MySQLParser.AFTER - 265)) | (1 << (MySQLParser.AGGREGATE - 265)) | (1 << (MySQLParser.ALGORITHM - 265)) | (1 << (MySQLParser.ANY - 265)) | (1 << (MySQLParser.AT - 265)) | (1 << (MySQLParser.AUTHORS - 265)) | (1 << (MySQLParser.AUTOCOMMIT - 265)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 265)) | (1 << (MySQLParser.AUTO_INCREMENT - 265)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 265)) | (1 << (MySQLParser.BEGIN - 265)) | (1 << (MySQLParser.BINLOG - 265)) | (1 << (MySQLParser.BIT - 265)) | (1 << (MySQLParser.BLOCK - 265)) | (1 << (MySQLParser.BOOL - 265)) | (1 << (MySQLParser.BOOLEAN - 265)) | (1 << (MySQLParser.BTREE - 265)) | (1 << (MySQLParser.CACHE - 265)) | (1 << (MySQLParser.CASCADED - 265)) | (1 << (MySQLParser.CHAIN - 265)) | (1 << (MySQLParser.CHANGED - 265)) | (1 << (MySQLParser.CHANNEL - 265)) | (1 << (MySQLParser.CHECKSUM - 265)) | (1 << (MySQLParser.PAGE_CHECKSUM - 265)) | (1 << (MySQLParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (MySQLParser.CLASS_ORIGIN - 297)) | (1 << (MySQLParser.CLIENT - 297)) | (1 << (MySQLParser.CLOSE - 297)) | (1 << (MySQLParser.COALESCE - 297)) | (1 << (MySQLParser.CODE - 297)) | (1 << (MySQLParser.COLUMNS - 297)) | (1 << (MySQLParser.COLUMN_FORMAT - 297)) | (1 << (MySQLParser.COLUMN_NAME - 297)) | (1 << (MySQLParser.COMMENT - 297)) | (1 << (MySQLParser.COMMIT - 297)) | (1 << (MySQLParser.COMPACT - 297)) | (1 << (MySQLParser.COMPLETION - 297)) | (1 << (MySQLParser.COMPRESSED - 297)) | (1 << (MySQLParser.COMPRESSION - 297)) | (1 << (MySQLParser.CONCURRENT - 297)) | (1 << (MySQLParser.CONNECTION - 297)) | (1 << (MySQLParser.CONSISTENT - 297)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 297)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 297)) | (1 << (MySQLParser.CONSTRAINT_NAME - 297)) | (1 << (MySQLParser.CONTAINS - 297)) | (1 << (MySQLParser.CONTEXT - 297)) | (1 << (MySQLParser.CONTRIBUTORS - 297)) | (1 << (MySQLParser.COPY - 297)) | (1 << (MySQLParser.CPU - 297)) | (1 << (MySQLParser.CURSOR_NAME - 297)) | (1 << (MySQLParser.DATA - 297)) | (1 << (MySQLParser.DATAFILE - 297)) | (1 << (MySQLParser.DEALLOCATE - 297)) | (1 << (MySQLParser.DEFAULT_AUTH - 297)) | (1 << (MySQLParser.DEFINER - 297)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1f) == 0 && ((1 << (_la - 329)) & ((1 << (MySQLParser.DES_KEY_FILE - 329)) | (1 << (MySQLParser.DIRECTORY - 329)) | (1 << (MySQLParser.DISABLE - 329)) | (1 << (MySQLParser.DISCARD - 329)) | (1 << (MySQLParser.DISK - 329)) | (1 << (MySQLParser.DO - 329)) | (1 << (MySQLParser.DUMPFILE - 329)) | (1 << (MySQLParser.DUPLICATE - 329)) | (1 << (MySQLParser.DYNAMIC - 329)) | (1 << (MySQLParser.ENABLE - 329)) | (1 << (MySQLParser.ENCRYPTION - 329)) | (1 << (MySQLParser.END - 329)) | (1 << (MySQLParser.ENDS - 329)) | (1 << (MySQLParser.ENGINE - 329)) | (1 << (MySQLParser.ENGINES - 329)) | (1 << (MySQLParser.ERROR - 329)) | (1 << (MySQLParser.ERRORS - 329)) | (1 << (MySQLParser.ESCAPE - 329)) | (1 << (MySQLParser.EVEN - 329)) | (1 << (MySQLParser.EVENT - 329)) | (1 << (MySQLParser.EVENTS - 329)) | (1 << (MySQLParser.EVERY - 329)) | (1 << (MySQLParser.EXCHANGE - 329)) | (1 << (MySQLParser.EXCLUSIVE - 329)) | (1 << (MySQLParser.EXPIRE - 329)) | (1 << (MySQLParser.EXPORT - 329)) | (1 << (MySQLParser.EXTENDED - 329)) | (1 << (MySQLParser.EXTENT_SIZE - 329)) | (1 << (MySQLParser.FAST - 329)) | (1 << (MySQLParser.FAULTS - 329)) | (1 << (MySQLParser.FIELDS - 329)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1f) == 0 && ((1 << (_la - 361)) & ((1 << (MySQLParser.FILTER - 361)) | (1 << (MySQLParser.FIRST - 361)) | (1 << (MySQLParser.FIXED - 361)) | (1 << (MySQLParser.FLUSH - 361)) | (1 << (MySQLParser.FOLLOWS - 361)) | (1 << (MySQLParser.FOUND - 361)) | (1 << (MySQLParser.FULL - 361)) | (1 << (MySQLParser.FUNCTION - 361)) | (1 << (MySQLParser.GENERAL - 361)) | (1 << (MySQLParser.GLOBAL - 361)) | (1 << (MySQLParser.GRANTS - 361)) | (1 << (MySQLParser.GROUP_REPLICATION - 361)) | (1 << (MySQLParser.HANDLER - 361)) | (1 << (MySQLParser.HASH - 361)) | (1 << (MySQLParser.HELP - 361)) | (1 << (MySQLParser.HOST - 361)) | (1 << (MySQLParser.HOSTS - 361)) | (1 << (MySQLParser.IDENTIFIED - 361)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 361)) | (1 << (MySQLParser.IMPORT - 361)) | (1 << (MySQLParser.INDEXES - 361)) | (1 << (MySQLParser.INITIAL_SIZE - 361)) | (1 << (MySQLParser.INPLACE - 361)) | (1 << (MySQLParser.INSERT_METHOD - 361)) | (1 << (MySQLParser.INSTALL - 361)) | (1 << (MySQLParser.INSTANCE - 361)) | (1 << (MySQLParser.INVISIBLE - 361)) | (1 << (MySQLParser.INVOKER - 361)) | (1 << (MySQLParser.IO - 361)) | (1 << (MySQLParser.IO_THREAD - 361)) | (1 << (MySQLParser.IPC - 361)) | (1 << (MySQLParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1f) == 0 && ((1 << (_la - 393)) & ((1 << (MySQLParser.ISSUER - 393)) | (1 << (MySQLParser.JSON - 393)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 393)) | (1 << (MySQLParser.LANGUAGE - 393)) | (1 << (MySQLParser.LAST - 393)) | (1 << (MySQLParser.LEAVES - 393)) | (1 << (MySQLParser.LESS - 393)) | (1 << (MySQLParser.LEVEL - 393)) | (1 << (MySQLParser.LIST - 393)) | (1 << (MySQLParser.LOCAL - 393)) | (1 << (MySQLParser.LOGFILE - 393)) | (1 << (MySQLParser.LOGS - 393)) | (1 << (MySQLParser.MASTER - 393)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 393)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 393)) | (1 << (MySQLParser.MASTER_DELAY - 393)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (MySQLParser.MASTER_HOST - 393)) | (1 << (MySQLParser.MASTER_LOG_FILE - 393)) | (1 << (MySQLParser.MASTER_LOG_POS - 393)) | (1 << (MySQLParser.MASTER_PASSWORD - 393)) | (1 << (MySQLParser.MASTER_PORT - 393)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 393)) | (1 << (MySQLParser.MASTER_SSL - 393)) | (1 << (MySQLParser.MASTER_SSL_CA - 393)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 393)) | (1 << (MySQLParser.MASTER_SSL_CERT - 393)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 393)) | (1 << (MySQLParser.MASTER_SSL_CRL - 393)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 393)) | (1 << (MySQLParser.MASTER_SSL_KEY - 393)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1f) == 0 && ((1 << (_la - 425)) & ((1 << (MySQLParser.MASTER_USER - 425)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_ROWS - 425)) | (1 << (MySQLParser.MAX_SIZE - 425)) | (1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 425)) | (1 << (MySQLParser.MEDIUM - 425)) | (1 << (MySQLParser.MERGE - 425)) | (1 << (MySQLParser.MESSAGE_TEXT - 425)) | (1 << (MySQLParser.MID - 425)) | (1 << (MySQLParser.MIGRATE - 425)) | (1 << (MySQLParser.MIN_ROWS - 425)) | (1 << (MySQLParser.MODE - 425)) | (1 << (MySQLParser.MODIFY - 425)) | (1 << (MySQLParser.MUTEX - 425)) | (1 << (MySQLParser.MYSQL - 425)) | (1 << (MySQLParser.MYSQL_ERRNO - 425)) | (1 << (MySQLParser.NAME - 425)) | (1 << (MySQLParser.NAMES - 425)) | (1 << (MySQLParser.NCHAR - 425)) | (1 << (MySQLParser.NEVER - 425)) | (1 << (MySQLParser.NEXT - 425)) | (1 << (MySQLParser.NO - 425)) | (1 << (MySQLParser.NODEGROUP - 425)) | (1 << (MySQLParser.NONE - 425)) | (1 << (MySQLParser.OFFLINE - 425)) | (1 << (MySQLParser.OFFSET - 425)) | (1 << (MySQLParser.OJ - 425)) | (1 << (MySQLParser.OLD_PASSWORD - 425)) | (1 << (MySQLParser.ONE - 425)) | (1 << (MySQLParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1f) == 0 && ((1 << (_la - 457)) & ((1 << (MySQLParser.ONLY - 457)) | (1 << (MySQLParser.OPEN - 457)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 457)) | (1 << (MySQLParser.OPTIONS - 457)) | (1 << (MySQLParser.OWNER - 457)) | (1 << (MySQLParser.PACK_KEYS - 457)) | (1 << (MySQLParser.PAGE - 457)) | (1 << (MySQLParser.PARSER - 457)) | (1 << (MySQLParser.PARTIAL - 457)) | (1 << (MySQLParser.PARTITIONING - 457)) | (1 << (MySQLParser.PARTITIONS - 457)) | (1 << (MySQLParser.PASSWORD - 457)) | (1 << (MySQLParser.PHASE - 457)) | (1 << (MySQLParser.PLUGIN - 457)) | (1 << (MySQLParser.PLUGIN_DIR - 457)) | (1 << (MySQLParser.PLUGINS - 457)) | (1 << (MySQLParser.PORT - 457)) | (1 << (MySQLParser.PRECEDES - 457)) | (1 << (MySQLParser.PREPARE - 457)) | (1 << (MySQLParser.PRESERVE - 457)) | (1 << (MySQLParser.PREV - 457)) | (1 << (MySQLParser.PROCESSLIST - 457)) | (1 << (MySQLParser.PROFILE - 457)) | (1 << (MySQLParser.PROFILES - 457)) | (1 << (MySQLParser.PROXY - 457)) | (1 << (MySQLParser.QUERY - 457)) | (1 << (MySQLParser.QUICK - 457)) | (1 << (MySQLParser.REBUILD - 457)) | (1 << (MySQLParser.RECOVER - 457)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 457)) | (1 << (MySQLParser.REDUNDANT - 457)) | (1 << (MySQLParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1f) == 0 && ((1 << (_la - 489)) & ((1 << (MySQLParser.RELAY_LOG_FILE - 489)) | (1 << (MySQLParser.RELAY_LOG_POS - 489)) | (1 << (MySQLParser.RELAYLOG - 489)) | (1 << (MySQLParser.REMOVE - 489)) | (1 << (MySQLParser.REORGANIZE - 489)) | (1 << (MySQLParser.REPAIR - 489)) | (1 << (MySQLParser.REPLICATE_DO_DB - 489)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 489)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 489)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (MySQLParser.REPLICATION - 489)) | (1 << (MySQLParser.RESET - 489)) | (1 << (MySQLParser.RESUME - 489)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 489)) | (1 << (MySQLParser.RETURNS - 489)) | (1 << (MySQLParser.ROLE - 489)) | (1 << (MySQLParser.ROLLBACK - 489)) | (1 << (MySQLParser.ROLLUP - 489)) | (1 << (MySQLParser.ROTATE - 489)) | (1 << (MySQLParser.ROW - 489)) | (1 << (MySQLParser.ROWS - 489)) | (1 << (MySQLParser.ROW_FORMAT - 489)) | (1 << (MySQLParser.SAVEPOINT - 489)) | (1 << (MySQLParser.SCHEDULE - 489)) | (1 << (MySQLParser.SECURITY - 489)) | (1 << (MySQLParser.SERVER - 489)) | (1 << (MySQLParser.SESSION - 489)) | (1 << (MySQLParser.SHARE - 489)) | (1 << (MySQLParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1f) == 0 && ((1 << (_la - 521)) & ((1 << (MySQLParser.SIGNED - 521)) | (1 << (MySQLParser.SIMPLE - 521)) | (1 << (MySQLParser.SLAVE - 521)) | (1 << (MySQLParser.SLOW - 521)) | (1 << (MySQLParser.SNAPSHOT - 521)) | (1 << (MySQLParser.SOCKET - 521)) | (1 << (MySQLParser.SOME - 521)) | (1 << (MySQLParser.SONAME - 521)) | (1 << (MySQLParser.SOUNDS - 521)) | (1 << (MySQLParser.SOURCE - 521)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 521)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 521)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 521)) | (1 << (MySQLParser.SQL_CACHE - 521)) | (1 << (MySQLParser.SQL_NO_CACHE - 521)) | (1 << (MySQLParser.SQL_THREAD - 521)) | (1 << (MySQLParser.START - 521)) | (1 << (MySQLParser.STARTS - 521)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 521)) | (1 << (MySQLParser.STATS_PERSISTENT - 521)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 521)) | (1 << (MySQLParser.STATUS - 521)) | (1 << (MySQLParser.STOP - 521)) | (1 << (MySQLParser.STORAGE - 521)) | (1 << (MySQLParser.STRING - 521)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 521)) | (1 << (MySQLParser.SUBJECT - 521)) | (1 << (MySQLParser.SUBPARTITION - 521)) | (1 << (MySQLParser.SUBPARTITIONS - 521)) | (1 << (MySQLParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1f) == 0 && ((1 << (_la - 553)) & ((1 << (MySQLParser.SWAPS - 553)) | (1 << (MySQLParser.SWITCHES - 553)) | (1 << (MySQLParser.TABLE_NAME - 553)) | (1 << (MySQLParser.TABLESPACE - 553)) | (1 << (MySQLParser.TEMPORARY - 553)) | (1 << (MySQLParser.TEMPTABLE - 553)) | (1 << (MySQLParser.THAN - 553)) | (1 << (MySQLParser.TRADITIONAL - 553)) | (1 << (MySQLParser.TRANSACTION - 553)) | (1 << (MySQLParser.TRANSACTIONAL - 553)) | (1 << (MySQLParser.TRIGGERS - 553)) | (1 << (MySQLParser.TRUNCATE - 553)) | (1 << (MySQLParser.UNDEFINED - 553)) | (1 << (MySQLParser.UNDOFILE - 553)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 553)) | (1 << (MySQLParser.UNINSTALL - 553)) | (1 << (MySQLParser.UNKNOWN - 553)) | (1 << (MySQLParser.UNTIL - 553)) | (1 << (MySQLParser.UPGRADE - 553)) | (1 << (MySQLParser.USER - 553)) | (1 << (MySQLParser.USE_FRM - 553)) | (1 << (MySQLParser.USER_RESOURCES - 553)) | (1 << (MySQLParser.VALIDATION - 553)) | (1 << (MySQLParser.VALUE - 553)) | (1 << (MySQLParser.VARIABLES - 553)) | (1 << (MySQLParser.VIEW - 553)) | (1 << (MySQLParser.VISIBLE - 553)) | (1 << (MySQLParser.WAIT - 553)) | (1 << (MySQLParser.WARNINGS - 553)) | (1 << (MySQLParser.WITHOUT - 553)) | (1 << (MySQLParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1f) == 0 && ((1 << (_la - 585)) & ((1 << (MySQLParser.WRAPPER - 585)) | (1 << (MySQLParser.X509 - 585)) | (1 << (MySQLParser.XA - 585)) | (1 << (MySQLParser.XML - 585)) | (1 << (MySQLParser.INTERNAL - 585)) | (1 << (MySQLParser.QUARTER - 585)) | (1 << (MySQLParser.MONTH - 585)) | (1 << (MySQLParser.DAY - 585)) | (1 << (MySQLParser.HOUR - 585)) | (1 << (MySQLParser.MINUTE - 585)) | (1 << (MySQLParser.WEEK - 585)) | (1 << (MySQLParser.SECOND - 585)) | (1 << (MySQLParser.MICROSECOND - 585)) | (1 << (MySQLParser.TABLES - 585)) | (1 << (MySQLParser.ROUTINE - 585)) | (1 << (MySQLParser.EXECUTE - 585)) | (1 << (MySQLParser.FILE - 585)) | (1 << (MySQLParser.PROCESS - 585)) | (1 << (MySQLParser.RELOAD - 585)) | (1 << (MySQLParser.SHUTDOWN - 585)) | (1 << (MySQLParser.SUPER - 585)) | (1 << (MySQLParser.PRIVILEGES - 585)) | (1 << (MySQLParser.AUDIT_ADMIN - 585)) | (1 << (MySQLParser.BACKUP_ADMIN - 585)) | (1 << (MySQLParser.BINLOG_ADMIN - 585)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (MySQLParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1f) == 0 && ((1 << (_la - 617)) & ((1 << (MySQLParser.CONNECTION_ADMIN - 617)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (MySQLParser.FIREWALL_ADMIN - 617)) | (1 << (MySQLParser.FIREWALL_USER - 617)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (MySQLParser.NDB_STORED_USER - 617)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.REPLICATION_APPLIER - 617)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 617)) | (1 << (MySQLParser.ROLE_ADMIN - 617)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.SET_USER_ID - 617)) | (1 << (MySQLParser.SHOW_ROUTINE - 617)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 617)) | (1 << (MySQLParser.ARMSCII8 - 617)) | (1 << (MySQLParser.ASCII - 617)) | (1 << (MySQLParser.BIG5 - 617)) | (1 << (MySQLParser.CP1250 - 617)) | (1 << (MySQLParser.CP1251 - 617)) | (1 << (MySQLParser.CP1256 - 617)) | (1 << (MySQLParser.CP1257 - 617)) | (1 << (MySQLParser.CP850 - 617)) | (1 << (MySQLParser.CP852 - 617)) | (1 << (MySQLParser.CP866 - 617)) | (1 << (MySQLParser.CP932 - 617)) | (1 << (MySQLParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1f) == 0 && ((1 << (_la - 649)) & ((1 << (MySQLParser.EUCJPMS - 649)) | (1 << (MySQLParser.EUCKR - 649)) | (1 << (MySQLParser.GB2312 - 649)) | (1 << (MySQLParser.GBK - 649)) | (1 << (MySQLParser.GEOSTD8 - 649)) | (1 << (MySQLParser.GREEK - 649)) | (1 << (MySQLParser.HEBREW - 649)) | (1 << (MySQLParser.HP8 - 649)) | (1 << (MySQLParser.KEYBCS2 - 649)) | (1 << (MySQLParser.KOI8R - 649)) | (1 << (MySQLParser.KOI8U - 649)) | (1 << (MySQLParser.LATIN1 - 649)) | (1 << (MySQLParser.LATIN2 - 649)) | (1 << (MySQLParser.LATIN5 - 649)) | (1 << (MySQLParser.LATIN7 - 649)) | (1 << (MySQLParser.MACCE - 649)) | (1 << (MySQLParser.MACROMAN - 649)) | (1 << (MySQLParser.SJIS - 649)) | (1 << (MySQLParser.SWE7 - 649)) | (1 << (MySQLParser.TIS620 - 649)) | (1 << (MySQLParser.UCS2 - 649)) | (1 << (MySQLParser.UJIS - 649)) | (1 << (MySQLParser.UTF16 - 649)) | (1 << (MySQLParser.UTF16LE - 649)) | (1 << (MySQLParser.UTF32 - 649)) | (1 << (MySQLParser.UTF8 - 649)) | (1 << (MySQLParser.UTF8MB3 - 649)) | (1 << (MySQLParser.UTF8MB4 - 649)) | (1 << (MySQLParser.ARCHIVE - 649)) | (1 << (MySQLParser.BLACKHOLE - 649)) | (1 << (MySQLParser.CSV - 649)) | (1 << (MySQLParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1f) == 0 && ((1 << (_la - 681)) & ((1 << (MySQLParser.INNODB - 681)) | (1 << (MySQLParser.MEMORY - 681)) | (1 << (MySQLParser.MRG_MYISAM - 681)) | (1 << (MySQLParser.MYISAM - 681)) | (1 << (MySQLParser.NDB - 681)) | (1 << (MySQLParser.NDBCLUSTER - 681)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 681)) | (1 << (MySQLParser.TOKUDB - 681)) | (1 << (MySQLParser.REPEATABLE - 681)) | (1 << (MySQLParser.COMMITTED - 681)) | (1 << (MySQLParser.UNCOMMITTED - 681)) | (1 << (MySQLParser.SERIALIZABLE - 681)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 681)) | (1 << (MySQLParser.LINESTRING - 681)) | (1 << (MySQLParser.MULTILINESTRING - 681)) | (1 << (MySQLParser.MULTIPOINT - 681)) | (1 << (MySQLParser.MULTIPOLYGON - 681)) | (1 << (MySQLParser.POINT - 681)) | (1 << (MySQLParser.POLYGON - 681)) | (1 << (MySQLParser.ABS - 681)) | (1 << (MySQLParser.ACOS - 681)) | (1 << (MySQLParser.ADDDATE - 681)) | (1 << (MySQLParser.ADDTIME - 681)) | (1 << (MySQLParser.AES_DECRYPT - 681)) | (1 << (MySQLParser.AES_ENCRYPT - 681)) | (1 << (MySQLParser.AREA - 681)) | (1 << (MySQLParser.ASBINARY - 681)) | (1 << (MySQLParser.ASIN - 681)) | (1 << (MySQLParser.ASTEXT - 681)) | (1 << (MySQLParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1f) == 0 && ((1 << (_la - 713)) & ((1 << (MySQLParser.ASWKT - 713)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 713)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 713)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 713)) | (1 << (MySQLParser.ATAN - 713)) | (1 << (MySQLParser.ATAN2 - 713)) | (1 << (MySQLParser.BENCHMARK - 713)) | (1 << (MySQLParser.BIN - 713)) | (1 << (MySQLParser.BIT_COUNT - 713)) | (1 << (MySQLParser.BIT_LENGTH - 713)) | (1 << (MySQLParser.BUFFER - 713)) | (1 << (MySQLParser.CATALOG_NAME - 713)) | (1 << (MySQLParser.CEIL - 713)) | (1 << (MySQLParser.CEILING - 713)) | (1 << (MySQLParser.CENTROID - 713)) | (1 << (MySQLParser.CHARACTER_LENGTH - 713)) | (1 << (MySQLParser.CHARSET - 713)) | (1 << (MySQLParser.CHAR_LENGTH - 713)) | (1 << (MySQLParser.COERCIBILITY - 713)) | (1 << (MySQLParser.COLLATION - 713)) | (1 << (MySQLParser.COMPRESS - 713)) | (1 << (MySQLParser.CONCAT - 713)) | (1 << (MySQLParser.CONCAT_WS - 713)) | (1 << (MySQLParser.CONNECTION_ID - 713)) | (1 << (MySQLParser.CONV - 713)) | (1 << (MySQLParser.CONVERT_TZ - 713)) | (1 << (MySQLParser.COS - 713)) | (1 << (MySQLParser.COT - 713)) | (1 << (MySQLParser.CRC32 - 713)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1f) == 0 && ((1 << (_la - 745)) & ((1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 745)) | (1 << (MySQLParser.CREATE_DIGEST - 745)) | (1 << (MySQLParser.CROSSES - 745)) | (1 << (MySQLParser.DATEDIFF - 745)) | (1 << (MySQLParser.DATE_FORMAT - 745)) | (1 << (MySQLParser.DAYNAME - 745)) | (1 << (MySQLParser.DAYOFMONTH - 745)) | (1 << (MySQLParser.DAYOFWEEK - 745)) | (1 << (MySQLParser.DAYOFYEAR - 745)) | (1 << (MySQLParser.DECODE - 745)) | (1 << (MySQLParser.DEGREES - 745)) | (1 << (MySQLParser.DES_DECRYPT - 745)) | (1 << (MySQLParser.DES_ENCRYPT - 745)) | (1 << (MySQLParser.DIMENSION - 745)) | (1 << (MySQLParser.DISJOINT - 745)) | (1 << (MySQLParser.ELT - 745)) | (1 << (MySQLParser.ENCODE - 745)) | (1 << (MySQLParser.ENCRYPT - 745)) | (1 << (MySQLParser.ENDPOINT - 745)) | (1 << (MySQLParser.ENVELOPE - 745)) | (1 << (MySQLParser.EQUALS - 745)) | (1 << (MySQLParser.EXP - 745)) | (1 << (MySQLParser.EXPORT_SET - 745)) | (1 << (MySQLParser.EXTERIORRING - 745)) | (1 << (MySQLParser.EXTRACTVALUE - 745)) | (1 << (MySQLParser.FIELD - 745)) | (1 << (MySQLParser.FIND_IN_SET - 745)) | (1 << (MySQLParser.FLOOR - 745)) | (1 << (MySQLParser.FORMAT - 745)) | (1 << (MySQLParser.FOUND_ROWS - 745)) | (1 << (MySQLParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1f) == 0 && ((1 << (_la - 777)) & ((1 << (MySQLParser.FROM_DAYS - 777)) | (1 << (MySQLParser.FROM_UNIXTIME - 777)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 777)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 777)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYN - 777)) | (1 << (MySQLParser.GEOMETRYTYPE - 777)) | (1 << (MySQLParser.GEOMFROMTEXT - 777)) | (1 << (MySQLParser.GEOMFROMWKB - 777)) | (1 << (MySQLParser.GET_FORMAT - 777)) | (1 << (MySQLParser.GET_LOCK - 777)) | (1 << (MySQLParser.GLENGTH - 777)) | (1 << (MySQLParser.GREATEST - 777)) | (1 << (MySQLParser.GTID_SUBSET - 777)) | (1 << (MySQLParser.GTID_SUBTRACT - 777)) | (1 << (MySQLParser.HEX - 777)) | (1 << (MySQLParser.IFNULL - 777)) | (1 << (MySQLParser.INET6_ATON - 777)) | (1 << (MySQLParser.INET6_NTOA - 777)) | (1 << (MySQLParser.INET_ATON - 777)) | (1 << (MySQLParser.INET_NTOA - 777)) | (1 << (MySQLParser.INSTR - 777)) | (1 << (MySQLParser.INTERIORRINGN - 777)) | (1 << (MySQLParser.INTERSECTS - 777)) | (1 << (MySQLParser.ISCLOSED - 777)) | (1 << (MySQLParser.ISEMPTY - 777)) | (1 << (MySQLParser.ISNULL - 777)) | (1 << (MySQLParser.ISSIMPLE - 777)) | (1 << (MySQLParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1f) == 0 && ((1 << (_la - 809)) & ((1 << (MySQLParser.IS_IPV4 - 809)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 809)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 809)) | (1 << (MySQLParser.IS_IPV6 - 809)) | (1 << (MySQLParser.IS_USED_LOCK - 809)) | (1 << (MySQLParser.LAST_INSERT_ID - 809)) | (1 << (MySQLParser.LCASE - 809)) | (1 << (MySQLParser.LEAST - 809)) | (1 << (MySQLParser.LENGTH - 809)) | (1 << (MySQLParser.LINEFROMTEXT - 809)) | (1 << (MySQLParser.LINEFROMWKB - 809)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 809)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 809)) | (1 << (MySQLParser.LN - 809)) | (1 << (MySQLParser.LOAD_FILE - 809)) | (1 << (MySQLParser.LOCATE - 809)) | (1 << (MySQLParser.LOG - 809)) | (1 << (MySQLParser.LOG10 - 809)) | (1 << (MySQLParser.LOG2 - 809)) | (1 << (MySQLParser.LOWER - 809)) | (1 << (MySQLParser.LPAD - 809)) | (1 << (MySQLParser.LTRIM - 809)) | (1 << (MySQLParser.MAKEDATE - 809)) | (1 << (MySQLParser.MAKETIME - 809)) | (1 << (MySQLParser.MAKE_SET - 809)) | (1 << (MySQLParser.MASTER_POS_WAIT - 809)) | (1 << (MySQLParser.MBRCONTAINS - 809)) | (1 << (MySQLParser.MBRDISJOINT - 809)) | (1 << (MySQLParser.MBREQUAL - 809)) | (1 << (MySQLParser.MBRINTERSECTS - 809)) | (1 << (MySQLParser.MBROVERLAPS - 809)) | (1 << (MySQLParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1f) == 0 && ((1 << (_la - 841)) & ((1 << (MySQLParser.MBRWITHIN - 841)) | (1 << (MySQLParser.MD5 - 841)) | (1 << (MySQLParser.MLINEFROMTEXT - 841)) | (1 << (MySQLParser.MLINEFROMWKB - 841)) | (1 << (MySQLParser.MONTHNAME - 841)) | (1 << (MySQLParser.MPOINTFROMTEXT - 841)) | (1 << (MySQLParser.MPOINTFROMWKB - 841)) | (1 << (MySQLParser.MPOLYFROMTEXT - 841)) | (1 << (MySQLParser.MPOLYFROMWKB - 841)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 841)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 841)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (MySQLParser.NAME_CONST - 841)) | (1 << (MySQLParser.NULLIF - 841)) | (1 << (MySQLParser.NUMGEOMETRIES - 841)) | (1 << (MySQLParser.NUMINTERIORRINGS - 841)) | (1 << (MySQLParser.NUMPOINTS - 841)) | (1 << (MySQLParser.OCT - 841)) | (1 << (MySQLParser.OCTET_LENGTH - 841)) | (1 << (MySQLParser.ORD - 841)) | (1 << (MySQLParser.OVERLAPS - 841)) | (1 << (MySQLParser.PERIOD_ADD - 841)) | (1 << (MySQLParser.PERIOD_DIFF - 841)) | (1 << (MySQLParser.PI - 841)) | (1 << (MySQLParser.POINTFROMTEXT - 841)) | (1 << (MySQLParser.POINTFROMWKB - 841)) | (1 << (MySQLParser.POINTN - 841)) | (1 << (MySQLParser.POLYFROMTEXT - 841)) | (1 << (MySQLParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1f) == 0 && ((1 << (_la - 873)) & ((1 << (MySQLParser.POLYGONFROMTEXT - 873)) | (1 << (MySQLParser.POLYGONFROMWKB - 873)) | (1 << (MySQLParser.POW - 873)) | (1 << (MySQLParser.POWER - 873)) | (1 << (MySQLParser.QUOTE - 873)) | (1 << (MySQLParser.RADIANS - 873)) | (1 << (MySQLParser.RAND - 873)) | (1 << (MySQLParser.RANDOM_BYTES - 873)) | (1 << (MySQLParser.RELEASE_LOCK - 873)) | (1 << (MySQLParser.REVERSE - 873)) | (1 << (MySQLParser.ROUND - 873)) | (1 << (MySQLParser.ROW_COUNT - 873)) | (1 << (MySQLParser.RPAD - 873)) | (1 << (MySQLParser.RTRIM - 873)) | (1 << (MySQLParser.SEC_TO_TIME - 873)) | (1 << (MySQLParser.SESSION_USER - 873)) | (1 << (MySQLParser.SHA - 873)) | (1 << (MySQLParser.SHA1 - 873)) | (1 << (MySQLParser.SHA2 - 873)) | (1 << (MySQLParser.SCHEMA_NAME - 873)) | (1 << (MySQLParser.SIGN - 873)) | (1 << (MySQLParser.SIN - 873)) | (1 << (MySQLParser.SLEEP - 873)) | (1 << (MySQLParser.SOUNDEX - 873)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (MySQLParser.SQRT - 873)) | (1 << (MySQLParser.SRID - 873)) | (1 << (MySQLParser.STARTPOINT - 873)) | (1 << (MySQLParser.STRCMP - 873)) | (1 << (MySQLParser.STR_TO_DATE - 873)) | (1 << (MySQLParser.ST_AREA - 873)) | (1 << (MySQLParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1f) == 0 && ((1 << (_la - 905)) & ((1 << (MySQLParser.ST_ASTEXT - 905)) | (1 << (MySQLParser.ST_ASWKB - 905)) | (1 << (MySQLParser.ST_ASWKT - 905)) | (1 << (MySQLParser.ST_BUFFER - 905)) | (1 << (MySQLParser.ST_CENTROID - 905)) | (1 << (MySQLParser.ST_CONTAINS - 905)) | (1 << (MySQLParser.ST_CROSSES - 905)) | (1 << (MySQLParser.ST_DIFFERENCE - 905)) | (1 << (MySQLParser.ST_DIMENSION - 905)) | (1 << (MySQLParser.ST_DISJOINT - 905)) | (1 << (MySQLParser.ST_DISTANCE - 905)) | (1 << (MySQLParser.ST_ENDPOINT - 905)) | (1 << (MySQLParser.ST_ENVELOPE - 905)) | (1 << (MySQLParser.ST_EQUALS - 905)) | (1 << (MySQLParser.ST_EXTERIORRING - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYN - 905)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 905)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 905)) | (1 << (MySQLParser.ST_INTERIORRINGN - 905)) | (1 << (MySQLParser.ST_INTERSECTION - 905)) | (1 << (MySQLParser.ST_INTERSECTS - 905)) | (1 << (MySQLParser.ST_ISCLOSED - 905)) | (1 << (MySQLParser.ST_ISEMPTY - 905)) | (1 << (MySQLParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1f) == 0 && ((1 << (_la - 937)) & ((1 << (MySQLParser.ST_LINEFROMTEXT - 937)) | (1 << (MySQLParser.ST_LINEFROMWKB - 937)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 937)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 937)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 937)) | (1 << (MySQLParser.ST_NUMPOINTS - 937)) | (1 << (MySQLParser.ST_OVERLAPS - 937)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 937)) | (1 << (MySQLParser.ST_POINTFROMWKB - 937)) | (1 << (MySQLParser.ST_POINTN - 937)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 937)) | (1 << (MySQLParser.ST_POLYFROMWKB - 937)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 937)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 937)) | (1 << (MySQLParser.ST_SRID - 937)) | (1 << (MySQLParser.ST_STARTPOINT - 937)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 937)) | (1 << (MySQLParser.ST_TOUCHES - 937)) | (1 << (MySQLParser.ST_UNION - 937)) | (1 << (MySQLParser.ST_WITHIN - 937)) | (1 << (MySQLParser.ST_X - 937)) | (1 << (MySQLParser.ST_Y - 937)) | (1 << (MySQLParser.SUBDATE - 937)) | (1 << (MySQLParser.SUBSTRING_INDEX - 937)) | (1 << (MySQLParser.SUBTIME - 937)) | (1 << (MySQLParser.SYSTEM_USER - 937)) | (1 << (MySQLParser.TAN - 937)) | (1 << (MySQLParser.TIMEDIFF - 937)) | (1 << (MySQLParser.TIMESTAMPADD - 937)) | (1 << (MySQLParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1f) == 0 && ((1 << (_la - 969)) & ((1 << (MySQLParser.TIME_FORMAT - 969)) | (1 << (MySQLParser.TIME_TO_SEC - 969)) | (1 << (MySQLParser.TOUCHES - 969)) | (1 << (MySQLParser.TO_BASE64 - 969)) | (1 << (MySQLParser.TO_DAYS - 969)) | (1 << (MySQLParser.TO_SECONDS - 969)) | (1 << (MySQLParser.UCASE - 969)) | (1 << (MySQLParser.UNCOMPRESS - 969)) | (1 << (MySQLParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (MySQLParser.UNHEX - 969)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 969)) | (1 << (MySQLParser.UPDATEXML - 969)) | (1 << (MySQLParser.UPPER - 969)) | (1 << (MySQLParser.UUID - 969)) | (1 << (MySQLParser.UUID_SHORT - 969)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (MySQLParser.VERSION - 969)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (MySQLParser.WEEKDAY - 969)) | (1 << (MySQLParser.WEEKOFYEAR - 969)) | (1 << (MySQLParser.WEIGHT_STRING - 969)) | (1 << (MySQLParser.WITHIN - 969)) | (1 << (MySQLParser.YEARWEEK - 969)) | (1 << (MySQLParser.Y_FUNCTION - 969)) | (1 << (MySQLParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (MySQLParser.PLUS - 1006)) | (1 << (MySQLParser.MINUS - 1006)) | (1 << (MySQLParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (MySQLParser.BIT_NOT_OP - 1006)) | (1 << (MySQLParser.LR_BRACKET - 1006)) | (1 << (MySQLParser.ZERO_DECIMAL - 1006)) | (1 << (MySQLParser.ONE_DECIMAL - 1006)) | (1 << (MySQLParser.TWO_DECIMAL - 1006)) | (1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (MySQLParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (MySQLParser.STRING_LITERAL - 1006)) | (1 << (MySQLParser.DECIMAL_LITERAL - 1006)) | (1 << (MySQLParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1f) == 0 && ((1 << (_la - 1038)) & ((1 << (MySQLParser.REAL_LITERAL - 1038)) | (1 << (MySQLParser.NULL_SPEC_LITERAL - 1038)) | (1 << (MySQLParser.BIT_STRING - 1038)) | (1 << (MySQLParser.STRING_CHARSET_NAME - 1038)) | (1 << (MySQLParser.ID - 1038)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1038)) | (1 << (MySQLParser.LOCAL_ID - 1038)) | (1 << (MySQLParser.GLOBAL_ID - 1038)))) !== 0)) { + this.state = 5861; + this.functionArgs(); + } + + this.state = 5864; + this.match(MySQLParser.RR_BRACKET); + break; + + case 4: + localctx = new UdfFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 5866; + this.fullId(); + this.state = 5867; + this.match(MySQLParser.LR_BRACKET); + this.state = 5869; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << MySQLParser.CASE) | (1 << MySQLParser.CAST) | (1 << MySQLParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (MySQLParser.CURRENT - 32)) | (1 << (MySQLParser.CURRENT_USER - 32)) | (1 << (MySQLParser.DATABASE - 32)) | (1 << (MySQLParser.DIAGNOSTICS - 32)) | (1 << (MySQLParser.EXISTS - 32)) | (1 << (MySQLParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (MySQLParser.IF - 69)) | (1 << (MySQLParser.INSERT - 69)) | (1 << (MySQLParser.INTERVAL - 69)) | (1 << (MySQLParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1f) == 0 && ((1 << (_la - 102)) & ((1 << (MySQLParser.NOT - 102)) | (1 << (MySQLParser.NULL_LITERAL - 102)) | (1 << (MySQLParser.NUMBER - 102)) | (1 << (MySQLParser.REPLACE - 102)) | (1 << (MySQLParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1f) == 0 && ((1 << (_la - 151)) & ((1 << (MySQLParser.STACKED - 151)) | (1 << (MySQLParser.TRUE - 151)) | (1 << (MySQLParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.CHAR - 199)) | (1 << (MySQLParser.BINARY - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)) | (1 << (MySQLParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.AVG - 233)) | (1 << (MySQLParser.BIT_AND - 233)) | (1 << (MySQLParser.BIT_OR - 233)) | (1 << (MySQLParser.BIT_XOR - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.GROUP_CONCAT - 233)) | (1 << (MySQLParser.MAX - 233)) | (1 << (MySQLParser.MIN - 233)) | (1 << (MySQLParser.STD - 233)) | (1 << (MySQLParser.STDDEV - 233)) | (1 << (MySQLParser.STDDEV_POP - 233)) | (1 << (MySQLParser.STDDEV_SAMP - 233)) | (1 << (MySQLParser.SUM - 233)) | (1 << (MySQLParser.VAR_POP - 233)) | (1 << (MySQLParser.VAR_SAMP - 233)) | (1 << (MySQLParser.VARIANCE - 233)) | (1 << (MySQLParser.CURRENT_DATE - 233)) | (1 << (MySQLParser.CURRENT_TIME - 233)) | (1 << (MySQLParser.CURRENT_TIMESTAMP - 233)) | (1 << (MySQLParser.LOCALTIME - 233)) | (1 << (MySQLParser.CURDATE - 233)) | (1 << (MySQLParser.CURTIME - 233)) | (1 << (MySQLParser.DATE_ADD - 233)) | (1 << (MySQLParser.DATE_SUB - 233)) | (1 << (MySQLParser.EXTRACT - 233)) | (1 << (MySQLParser.LOCALTIMESTAMP - 233)) | (1 << (MySQLParser.NOW - 233)) | (1 << (MySQLParser.POSITION - 233)) | (1 << (MySQLParser.SUBSTR - 233)) | (1 << (MySQLParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1f) == 0 && ((1 << (_la - 265)) & ((1 << (MySQLParser.SYSDATE - 265)) | (1 << (MySQLParser.TRIM - 265)) | (1 << (MySQLParser.UTC_DATE - 265)) | (1 << (MySQLParser.UTC_TIME - 265)) | (1 << (MySQLParser.UTC_TIMESTAMP - 265)) | (1 << (MySQLParser.ACCOUNT - 265)) | (1 << (MySQLParser.ACTION - 265)) | (1 << (MySQLParser.AFTER - 265)) | (1 << (MySQLParser.AGGREGATE - 265)) | (1 << (MySQLParser.ALGORITHM - 265)) | (1 << (MySQLParser.ANY - 265)) | (1 << (MySQLParser.AT - 265)) | (1 << (MySQLParser.AUTHORS - 265)) | (1 << (MySQLParser.AUTOCOMMIT - 265)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 265)) | (1 << (MySQLParser.AUTO_INCREMENT - 265)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 265)) | (1 << (MySQLParser.BEGIN - 265)) | (1 << (MySQLParser.BINLOG - 265)) | (1 << (MySQLParser.BIT - 265)) | (1 << (MySQLParser.BLOCK - 265)) | (1 << (MySQLParser.BOOL - 265)) | (1 << (MySQLParser.BOOLEAN - 265)) | (1 << (MySQLParser.BTREE - 265)) | (1 << (MySQLParser.CACHE - 265)) | (1 << (MySQLParser.CASCADED - 265)) | (1 << (MySQLParser.CHAIN - 265)) | (1 << (MySQLParser.CHANGED - 265)) | (1 << (MySQLParser.CHANNEL - 265)) | (1 << (MySQLParser.CHECKSUM - 265)) | (1 << (MySQLParser.PAGE_CHECKSUM - 265)) | (1 << (MySQLParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1f) == 0 && ((1 << (_la - 297)) & ((1 << (MySQLParser.CLASS_ORIGIN - 297)) | (1 << (MySQLParser.CLIENT - 297)) | (1 << (MySQLParser.CLOSE - 297)) | (1 << (MySQLParser.COALESCE - 297)) | (1 << (MySQLParser.CODE - 297)) | (1 << (MySQLParser.COLUMNS - 297)) | (1 << (MySQLParser.COLUMN_FORMAT - 297)) | (1 << (MySQLParser.COLUMN_NAME - 297)) | (1 << (MySQLParser.COMMENT - 297)) | (1 << (MySQLParser.COMMIT - 297)) | (1 << (MySQLParser.COMPACT - 297)) | (1 << (MySQLParser.COMPLETION - 297)) | (1 << (MySQLParser.COMPRESSED - 297)) | (1 << (MySQLParser.COMPRESSION - 297)) | (1 << (MySQLParser.CONCURRENT - 297)) | (1 << (MySQLParser.CONNECTION - 297)) | (1 << (MySQLParser.CONSISTENT - 297)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 297)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 297)) | (1 << (MySQLParser.CONSTRAINT_NAME - 297)) | (1 << (MySQLParser.CONTAINS - 297)) | (1 << (MySQLParser.CONTEXT - 297)) | (1 << (MySQLParser.CONTRIBUTORS - 297)) | (1 << (MySQLParser.COPY - 297)) | (1 << (MySQLParser.CPU - 297)) | (1 << (MySQLParser.CURSOR_NAME - 297)) | (1 << (MySQLParser.DATA - 297)) | (1 << (MySQLParser.DATAFILE - 297)) | (1 << (MySQLParser.DEALLOCATE - 297)) | (1 << (MySQLParser.DEFAULT_AUTH - 297)) | (1 << (MySQLParser.DEFINER - 297)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1f) == 0 && ((1 << (_la - 329)) & ((1 << (MySQLParser.DES_KEY_FILE - 329)) | (1 << (MySQLParser.DIRECTORY - 329)) | (1 << (MySQLParser.DISABLE - 329)) | (1 << (MySQLParser.DISCARD - 329)) | (1 << (MySQLParser.DISK - 329)) | (1 << (MySQLParser.DO - 329)) | (1 << (MySQLParser.DUMPFILE - 329)) | (1 << (MySQLParser.DUPLICATE - 329)) | (1 << (MySQLParser.DYNAMIC - 329)) | (1 << (MySQLParser.ENABLE - 329)) | (1 << (MySQLParser.ENCRYPTION - 329)) | (1 << (MySQLParser.END - 329)) | (1 << (MySQLParser.ENDS - 329)) | (1 << (MySQLParser.ENGINE - 329)) | (1 << (MySQLParser.ENGINES - 329)) | (1 << (MySQLParser.ERROR - 329)) | (1 << (MySQLParser.ERRORS - 329)) | (1 << (MySQLParser.ESCAPE - 329)) | (1 << (MySQLParser.EVEN - 329)) | (1 << (MySQLParser.EVENT - 329)) | (1 << (MySQLParser.EVENTS - 329)) | (1 << (MySQLParser.EVERY - 329)) | (1 << (MySQLParser.EXCHANGE - 329)) | (1 << (MySQLParser.EXCLUSIVE - 329)) | (1 << (MySQLParser.EXPIRE - 329)) | (1 << (MySQLParser.EXPORT - 329)) | (1 << (MySQLParser.EXTENDED - 329)) | (1 << (MySQLParser.EXTENT_SIZE - 329)) | (1 << (MySQLParser.FAST - 329)) | (1 << (MySQLParser.FAULTS - 329)) | (1 << (MySQLParser.FIELDS - 329)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1f) == 0 && ((1 << (_la - 361)) & ((1 << (MySQLParser.FILTER - 361)) | (1 << (MySQLParser.FIRST - 361)) | (1 << (MySQLParser.FIXED - 361)) | (1 << (MySQLParser.FLUSH - 361)) | (1 << (MySQLParser.FOLLOWS - 361)) | (1 << (MySQLParser.FOUND - 361)) | (1 << (MySQLParser.FULL - 361)) | (1 << (MySQLParser.FUNCTION - 361)) | (1 << (MySQLParser.GENERAL - 361)) | (1 << (MySQLParser.GLOBAL - 361)) | (1 << (MySQLParser.GRANTS - 361)) | (1 << (MySQLParser.GROUP_REPLICATION - 361)) | (1 << (MySQLParser.HANDLER - 361)) | (1 << (MySQLParser.HASH - 361)) | (1 << (MySQLParser.HELP - 361)) | (1 << (MySQLParser.HOST - 361)) | (1 << (MySQLParser.HOSTS - 361)) | (1 << (MySQLParser.IDENTIFIED - 361)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 361)) | (1 << (MySQLParser.IMPORT - 361)) | (1 << (MySQLParser.INDEXES - 361)) | (1 << (MySQLParser.INITIAL_SIZE - 361)) | (1 << (MySQLParser.INPLACE - 361)) | (1 << (MySQLParser.INSERT_METHOD - 361)) | (1 << (MySQLParser.INSTALL - 361)) | (1 << (MySQLParser.INSTANCE - 361)) | (1 << (MySQLParser.INVISIBLE - 361)) | (1 << (MySQLParser.INVOKER - 361)) | (1 << (MySQLParser.IO - 361)) | (1 << (MySQLParser.IO_THREAD - 361)) | (1 << (MySQLParser.IPC - 361)) | (1 << (MySQLParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1f) == 0 && ((1 << (_la - 393)) & ((1 << (MySQLParser.ISSUER - 393)) | (1 << (MySQLParser.JSON - 393)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 393)) | (1 << (MySQLParser.LANGUAGE - 393)) | (1 << (MySQLParser.LAST - 393)) | (1 << (MySQLParser.LEAVES - 393)) | (1 << (MySQLParser.LESS - 393)) | (1 << (MySQLParser.LEVEL - 393)) | (1 << (MySQLParser.LIST - 393)) | (1 << (MySQLParser.LOCAL - 393)) | (1 << (MySQLParser.LOGFILE - 393)) | (1 << (MySQLParser.LOGS - 393)) | (1 << (MySQLParser.MASTER - 393)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 393)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 393)) | (1 << (MySQLParser.MASTER_DELAY - 393)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (MySQLParser.MASTER_HOST - 393)) | (1 << (MySQLParser.MASTER_LOG_FILE - 393)) | (1 << (MySQLParser.MASTER_LOG_POS - 393)) | (1 << (MySQLParser.MASTER_PASSWORD - 393)) | (1 << (MySQLParser.MASTER_PORT - 393)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 393)) | (1 << (MySQLParser.MASTER_SSL - 393)) | (1 << (MySQLParser.MASTER_SSL_CA - 393)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 393)) | (1 << (MySQLParser.MASTER_SSL_CERT - 393)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 393)) | (1 << (MySQLParser.MASTER_SSL_CRL - 393)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 393)) | (1 << (MySQLParser.MASTER_SSL_KEY - 393)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1f) == 0 && ((1 << (_la - 425)) & ((1 << (MySQLParser.MASTER_USER - 425)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_ROWS - 425)) | (1 << (MySQLParser.MAX_SIZE - 425)) | (1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 425)) | (1 << (MySQLParser.MEDIUM - 425)) | (1 << (MySQLParser.MERGE - 425)) | (1 << (MySQLParser.MESSAGE_TEXT - 425)) | (1 << (MySQLParser.MID - 425)) | (1 << (MySQLParser.MIGRATE - 425)) | (1 << (MySQLParser.MIN_ROWS - 425)) | (1 << (MySQLParser.MODE - 425)) | (1 << (MySQLParser.MODIFY - 425)) | (1 << (MySQLParser.MUTEX - 425)) | (1 << (MySQLParser.MYSQL - 425)) | (1 << (MySQLParser.MYSQL_ERRNO - 425)) | (1 << (MySQLParser.NAME - 425)) | (1 << (MySQLParser.NAMES - 425)) | (1 << (MySQLParser.NCHAR - 425)) | (1 << (MySQLParser.NEVER - 425)) | (1 << (MySQLParser.NEXT - 425)) | (1 << (MySQLParser.NO - 425)) | (1 << (MySQLParser.NODEGROUP - 425)) | (1 << (MySQLParser.NONE - 425)) | (1 << (MySQLParser.OFFLINE - 425)) | (1 << (MySQLParser.OFFSET - 425)) | (1 << (MySQLParser.OJ - 425)) | (1 << (MySQLParser.OLD_PASSWORD - 425)) | (1 << (MySQLParser.ONE - 425)) | (1 << (MySQLParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1f) == 0 && ((1 << (_la - 457)) & ((1 << (MySQLParser.ONLY - 457)) | (1 << (MySQLParser.OPEN - 457)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 457)) | (1 << (MySQLParser.OPTIONS - 457)) | (1 << (MySQLParser.OWNER - 457)) | (1 << (MySQLParser.PACK_KEYS - 457)) | (1 << (MySQLParser.PAGE - 457)) | (1 << (MySQLParser.PARSER - 457)) | (1 << (MySQLParser.PARTIAL - 457)) | (1 << (MySQLParser.PARTITIONING - 457)) | (1 << (MySQLParser.PARTITIONS - 457)) | (1 << (MySQLParser.PASSWORD - 457)) | (1 << (MySQLParser.PHASE - 457)) | (1 << (MySQLParser.PLUGIN - 457)) | (1 << (MySQLParser.PLUGIN_DIR - 457)) | (1 << (MySQLParser.PLUGINS - 457)) | (1 << (MySQLParser.PORT - 457)) | (1 << (MySQLParser.PRECEDES - 457)) | (1 << (MySQLParser.PREPARE - 457)) | (1 << (MySQLParser.PRESERVE - 457)) | (1 << (MySQLParser.PREV - 457)) | (1 << (MySQLParser.PROCESSLIST - 457)) | (1 << (MySQLParser.PROFILE - 457)) | (1 << (MySQLParser.PROFILES - 457)) | (1 << (MySQLParser.PROXY - 457)) | (1 << (MySQLParser.QUERY - 457)) | (1 << (MySQLParser.QUICK - 457)) | (1 << (MySQLParser.REBUILD - 457)) | (1 << (MySQLParser.RECOVER - 457)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 457)) | (1 << (MySQLParser.REDUNDANT - 457)) | (1 << (MySQLParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1f) == 0 && ((1 << (_la - 489)) & ((1 << (MySQLParser.RELAY_LOG_FILE - 489)) | (1 << (MySQLParser.RELAY_LOG_POS - 489)) | (1 << (MySQLParser.RELAYLOG - 489)) | (1 << (MySQLParser.REMOVE - 489)) | (1 << (MySQLParser.REORGANIZE - 489)) | (1 << (MySQLParser.REPAIR - 489)) | (1 << (MySQLParser.REPLICATE_DO_DB - 489)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 489)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 489)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (MySQLParser.REPLICATION - 489)) | (1 << (MySQLParser.RESET - 489)) | (1 << (MySQLParser.RESUME - 489)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 489)) | (1 << (MySQLParser.RETURNS - 489)) | (1 << (MySQLParser.ROLE - 489)) | (1 << (MySQLParser.ROLLBACK - 489)) | (1 << (MySQLParser.ROLLUP - 489)) | (1 << (MySQLParser.ROTATE - 489)) | (1 << (MySQLParser.ROW - 489)) | (1 << (MySQLParser.ROWS - 489)) | (1 << (MySQLParser.ROW_FORMAT - 489)) | (1 << (MySQLParser.SAVEPOINT - 489)) | (1 << (MySQLParser.SCHEDULE - 489)) | (1 << (MySQLParser.SECURITY - 489)) | (1 << (MySQLParser.SERVER - 489)) | (1 << (MySQLParser.SESSION - 489)) | (1 << (MySQLParser.SHARE - 489)) | (1 << (MySQLParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1f) == 0 && ((1 << (_la - 521)) & ((1 << (MySQLParser.SIGNED - 521)) | (1 << (MySQLParser.SIMPLE - 521)) | (1 << (MySQLParser.SLAVE - 521)) | (1 << (MySQLParser.SLOW - 521)) | (1 << (MySQLParser.SNAPSHOT - 521)) | (1 << (MySQLParser.SOCKET - 521)) | (1 << (MySQLParser.SOME - 521)) | (1 << (MySQLParser.SONAME - 521)) | (1 << (MySQLParser.SOUNDS - 521)) | (1 << (MySQLParser.SOURCE - 521)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 521)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 521)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 521)) | (1 << (MySQLParser.SQL_CACHE - 521)) | (1 << (MySQLParser.SQL_NO_CACHE - 521)) | (1 << (MySQLParser.SQL_THREAD - 521)) | (1 << (MySQLParser.START - 521)) | (1 << (MySQLParser.STARTS - 521)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 521)) | (1 << (MySQLParser.STATS_PERSISTENT - 521)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 521)) | (1 << (MySQLParser.STATUS - 521)) | (1 << (MySQLParser.STOP - 521)) | (1 << (MySQLParser.STORAGE - 521)) | (1 << (MySQLParser.STRING - 521)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 521)) | (1 << (MySQLParser.SUBJECT - 521)) | (1 << (MySQLParser.SUBPARTITION - 521)) | (1 << (MySQLParser.SUBPARTITIONS - 521)) | (1 << (MySQLParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1f) == 0 && ((1 << (_la - 553)) & ((1 << (MySQLParser.SWAPS - 553)) | (1 << (MySQLParser.SWITCHES - 553)) | (1 << (MySQLParser.TABLE_NAME - 553)) | (1 << (MySQLParser.TABLESPACE - 553)) | (1 << (MySQLParser.TEMPORARY - 553)) | (1 << (MySQLParser.TEMPTABLE - 553)) | (1 << (MySQLParser.THAN - 553)) | (1 << (MySQLParser.TRADITIONAL - 553)) | (1 << (MySQLParser.TRANSACTION - 553)) | (1 << (MySQLParser.TRANSACTIONAL - 553)) | (1 << (MySQLParser.TRIGGERS - 553)) | (1 << (MySQLParser.TRUNCATE - 553)) | (1 << (MySQLParser.UNDEFINED - 553)) | (1 << (MySQLParser.UNDOFILE - 553)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 553)) | (1 << (MySQLParser.UNINSTALL - 553)) | (1 << (MySQLParser.UNKNOWN - 553)) | (1 << (MySQLParser.UNTIL - 553)) | (1 << (MySQLParser.UPGRADE - 553)) | (1 << (MySQLParser.USER - 553)) | (1 << (MySQLParser.USE_FRM - 553)) | (1 << (MySQLParser.USER_RESOURCES - 553)) | (1 << (MySQLParser.VALIDATION - 553)) | (1 << (MySQLParser.VALUE - 553)) | (1 << (MySQLParser.VARIABLES - 553)) | (1 << (MySQLParser.VIEW - 553)) | (1 << (MySQLParser.VISIBLE - 553)) | (1 << (MySQLParser.WAIT - 553)) | (1 << (MySQLParser.WARNINGS - 553)) | (1 << (MySQLParser.WITHOUT - 553)) | (1 << (MySQLParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1f) == 0 && ((1 << (_la - 585)) & ((1 << (MySQLParser.WRAPPER - 585)) | (1 << (MySQLParser.X509 - 585)) | (1 << (MySQLParser.XA - 585)) | (1 << (MySQLParser.XML - 585)) | (1 << (MySQLParser.INTERNAL - 585)) | (1 << (MySQLParser.QUARTER - 585)) | (1 << (MySQLParser.MONTH - 585)) | (1 << (MySQLParser.DAY - 585)) | (1 << (MySQLParser.HOUR - 585)) | (1 << (MySQLParser.MINUTE - 585)) | (1 << (MySQLParser.WEEK - 585)) | (1 << (MySQLParser.SECOND - 585)) | (1 << (MySQLParser.MICROSECOND - 585)) | (1 << (MySQLParser.TABLES - 585)) | (1 << (MySQLParser.ROUTINE - 585)) | (1 << (MySQLParser.EXECUTE - 585)) | (1 << (MySQLParser.FILE - 585)) | (1 << (MySQLParser.PROCESS - 585)) | (1 << (MySQLParser.RELOAD - 585)) | (1 << (MySQLParser.SHUTDOWN - 585)) | (1 << (MySQLParser.SUPER - 585)) | (1 << (MySQLParser.PRIVILEGES - 585)) | (1 << (MySQLParser.AUDIT_ADMIN - 585)) | (1 << (MySQLParser.BACKUP_ADMIN - 585)) | (1 << (MySQLParser.BINLOG_ADMIN - 585)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (MySQLParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1f) == 0 && ((1 << (_la - 617)) & ((1 << (MySQLParser.CONNECTION_ADMIN - 617)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (MySQLParser.FIREWALL_ADMIN - 617)) | (1 << (MySQLParser.FIREWALL_USER - 617)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (MySQLParser.NDB_STORED_USER - 617)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.REPLICATION_APPLIER - 617)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 617)) | (1 << (MySQLParser.ROLE_ADMIN - 617)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.SET_USER_ID - 617)) | (1 << (MySQLParser.SHOW_ROUTINE - 617)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 617)) | (1 << (MySQLParser.ARMSCII8 - 617)) | (1 << (MySQLParser.ASCII - 617)) | (1 << (MySQLParser.BIG5 - 617)) | (1 << (MySQLParser.CP1250 - 617)) | (1 << (MySQLParser.CP1251 - 617)) | (1 << (MySQLParser.CP1256 - 617)) | (1 << (MySQLParser.CP1257 - 617)) | (1 << (MySQLParser.CP850 - 617)) | (1 << (MySQLParser.CP852 - 617)) | (1 << (MySQLParser.CP866 - 617)) | (1 << (MySQLParser.CP932 - 617)) | (1 << (MySQLParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1f) == 0 && ((1 << (_la - 649)) & ((1 << (MySQLParser.EUCJPMS - 649)) | (1 << (MySQLParser.EUCKR - 649)) | (1 << (MySQLParser.GB2312 - 649)) | (1 << (MySQLParser.GBK - 649)) | (1 << (MySQLParser.GEOSTD8 - 649)) | (1 << (MySQLParser.GREEK - 649)) | (1 << (MySQLParser.HEBREW - 649)) | (1 << (MySQLParser.HP8 - 649)) | (1 << (MySQLParser.KEYBCS2 - 649)) | (1 << (MySQLParser.KOI8R - 649)) | (1 << (MySQLParser.KOI8U - 649)) | (1 << (MySQLParser.LATIN1 - 649)) | (1 << (MySQLParser.LATIN2 - 649)) | (1 << (MySQLParser.LATIN5 - 649)) | (1 << (MySQLParser.LATIN7 - 649)) | (1 << (MySQLParser.MACCE - 649)) | (1 << (MySQLParser.MACROMAN - 649)) | (1 << (MySQLParser.SJIS - 649)) | (1 << (MySQLParser.SWE7 - 649)) | (1 << (MySQLParser.TIS620 - 649)) | (1 << (MySQLParser.UCS2 - 649)) | (1 << (MySQLParser.UJIS - 649)) | (1 << (MySQLParser.UTF16 - 649)) | (1 << (MySQLParser.UTF16LE - 649)) | (1 << (MySQLParser.UTF32 - 649)) | (1 << (MySQLParser.UTF8 - 649)) | (1 << (MySQLParser.UTF8MB3 - 649)) | (1 << (MySQLParser.UTF8MB4 - 649)) | (1 << (MySQLParser.ARCHIVE - 649)) | (1 << (MySQLParser.BLACKHOLE - 649)) | (1 << (MySQLParser.CSV - 649)) | (1 << (MySQLParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1f) == 0 && ((1 << (_la - 681)) & ((1 << (MySQLParser.INNODB - 681)) | (1 << (MySQLParser.MEMORY - 681)) | (1 << (MySQLParser.MRG_MYISAM - 681)) | (1 << (MySQLParser.MYISAM - 681)) | (1 << (MySQLParser.NDB - 681)) | (1 << (MySQLParser.NDBCLUSTER - 681)) | (1 << (MySQLParser.PERFORMANCE_SCHEMA - 681)) | (1 << (MySQLParser.TOKUDB - 681)) | (1 << (MySQLParser.REPEATABLE - 681)) | (1 << (MySQLParser.COMMITTED - 681)) | (1 << (MySQLParser.UNCOMMITTED - 681)) | (1 << (MySQLParser.SERIALIZABLE - 681)) | (1 << (MySQLParser.GEOMETRYCOLLECTION - 681)) | (1 << (MySQLParser.LINESTRING - 681)) | (1 << (MySQLParser.MULTILINESTRING - 681)) | (1 << (MySQLParser.MULTIPOINT - 681)) | (1 << (MySQLParser.MULTIPOLYGON - 681)) | (1 << (MySQLParser.POINT - 681)) | (1 << (MySQLParser.POLYGON - 681)) | (1 << (MySQLParser.ABS - 681)) | (1 << (MySQLParser.ACOS - 681)) | (1 << (MySQLParser.ADDDATE - 681)) | (1 << (MySQLParser.ADDTIME - 681)) | (1 << (MySQLParser.AES_DECRYPT - 681)) | (1 << (MySQLParser.AES_ENCRYPT - 681)) | (1 << (MySQLParser.AREA - 681)) | (1 << (MySQLParser.ASBINARY - 681)) | (1 << (MySQLParser.ASIN - 681)) | (1 << (MySQLParser.ASTEXT - 681)) | (1 << (MySQLParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1f) == 0 && ((1 << (_la - 713)) & ((1 << (MySQLParser.ASWKT - 713)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 713)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 713)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 713)) | (1 << (MySQLParser.ATAN - 713)) | (1 << (MySQLParser.ATAN2 - 713)) | (1 << (MySQLParser.BENCHMARK - 713)) | (1 << (MySQLParser.BIN - 713)) | (1 << (MySQLParser.BIT_COUNT - 713)) | (1 << (MySQLParser.BIT_LENGTH - 713)) | (1 << (MySQLParser.BUFFER - 713)) | (1 << (MySQLParser.CATALOG_NAME - 713)) | (1 << (MySQLParser.CEIL - 713)) | (1 << (MySQLParser.CEILING - 713)) | (1 << (MySQLParser.CENTROID - 713)) | (1 << (MySQLParser.CHARACTER_LENGTH - 713)) | (1 << (MySQLParser.CHARSET - 713)) | (1 << (MySQLParser.CHAR_LENGTH - 713)) | (1 << (MySQLParser.COERCIBILITY - 713)) | (1 << (MySQLParser.COLLATION - 713)) | (1 << (MySQLParser.COMPRESS - 713)) | (1 << (MySQLParser.CONCAT - 713)) | (1 << (MySQLParser.CONCAT_WS - 713)) | (1 << (MySQLParser.CONNECTION_ID - 713)) | (1 << (MySQLParser.CONV - 713)) | (1 << (MySQLParser.CONVERT_TZ - 713)) | (1 << (MySQLParser.COS - 713)) | (1 << (MySQLParser.COT - 713)) | (1 << (MySQLParser.CRC32 - 713)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1f) == 0 && ((1 << (_la - 745)) & ((1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 745)) | (1 << (MySQLParser.CREATE_DIGEST - 745)) | (1 << (MySQLParser.CROSSES - 745)) | (1 << (MySQLParser.DATEDIFF - 745)) | (1 << (MySQLParser.DATE_FORMAT - 745)) | (1 << (MySQLParser.DAYNAME - 745)) | (1 << (MySQLParser.DAYOFMONTH - 745)) | (1 << (MySQLParser.DAYOFWEEK - 745)) | (1 << (MySQLParser.DAYOFYEAR - 745)) | (1 << (MySQLParser.DECODE - 745)) | (1 << (MySQLParser.DEGREES - 745)) | (1 << (MySQLParser.DES_DECRYPT - 745)) | (1 << (MySQLParser.DES_ENCRYPT - 745)) | (1 << (MySQLParser.DIMENSION - 745)) | (1 << (MySQLParser.DISJOINT - 745)) | (1 << (MySQLParser.ELT - 745)) | (1 << (MySQLParser.ENCODE - 745)) | (1 << (MySQLParser.ENCRYPT - 745)) | (1 << (MySQLParser.ENDPOINT - 745)) | (1 << (MySQLParser.ENVELOPE - 745)) | (1 << (MySQLParser.EQUALS - 745)) | (1 << (MySQLParser.EXP - 745)) | (1 << (MySQLParser.EXPORT_SET - 745)) | (1 << (MySQLParser.EXTERIORRING - 745)) | (1 << (MySQLParser.EXTRACTVALUE - 745)) | (1 << (MySQLParser.FIELD - 745)) | (1 << (MySQLParser.FIND_IN_SET - 745)) | (1 << (MySQLParser.FLOOR - 745)) | (1 << (MySQLParser.FORMAT - 745)) | (1 << (MySQLParser.FOUND_ROWS - 745)) | (1 << (MySQLParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1f) == 0 && ((1 << (_la - 777)) & ((1 << (MySQLParser.FROM_DAYS - 777)) | (1 << (MySQLParser.FROM_UNIXTIME - 777)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 777)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 777)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 777)) | (1 << (MySQLParser.GEOMETRYN - 777)) | (1 << (MySQLParser.GEOMETRYTYPE - 777)) | (1 << (MySQLParser.GEOMFROMTEXT - 777)) | (1 << (MySQLParser.GEOMFROMWKB - 777)) | (1 << (MySQLParser.GET_FORMAT - 777)) | (1 << (MySQLParser.GET_LOCK - 777)) | (1 << (MySQLParser.GLENGTH - 777)) | (1 << (MySQLParser.GREATEST - 777)) | (1 << (MySQLParser.GTID_SUBSET - 777)) | (1 << (MySQLParser.GTID_SUBTRACT - 777)) | (1 << (MySQLParser.HEX - 777)) | (1 << (MySQLParser.IFNULL - 777)) | (1 << (MySQLParser.INET6_ATON - 777)) | (1 << (MySQLParser.INET6_NTOA - 777)) | (1 << (MySQLParser.INET_ATON - 777)) | (1 << (MySQLParser.INET_NTOA - 777)) | (1 << (MySQLParser.INSTR - 777)) | (1 << (MySQLParser.INTERIORRINGN - 777)) | (1 << (MySQLParser.INTERSECTS - 777)) | (1 << (MySQLParser.ISCLOSED - 777)) | (1 << (MySQLParser.ISEMPTY - 777)) | (1 << (MySQLParser.ISNULL - 777)) | (1 << (MySQLParser.ISSIMPLE - 777)) | (1 << (MySQLParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1f) == 0 && ((1 << (_la - 809)) & ((1 << (MySQLParser.IS_IPV4 - 809)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 809)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 809)) | (1 << (MySQLParser.IS_IPV6 - 809)) | (1 << (MySQLParser.IS_USED_LOCK - 809)) | (1 << (MySQLParser.LAST_INSERT_ID - 809)) | (1 << (MySQLParser.LCASE - 809)) | (1 << (MySQLParser.LEAST - 809)) | (1 << (MySQLParser.LENGTH - 809)) | (1 << (MySQLParser.LINEFROMTEXT - 809)) | (1 << (MySQLParser.LINEFROMWKB - 809)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 809)) | (1 << (MySQLParser.LINESTRINGFROMWKB - 809)) | (1 << (MySQLParser.LN - 809)) | (1 << (MySQLParser.LOAD_FILE - 809)) | (1 << (MySQLParser.LOCATE - 809)) | (1 << (MySQLParser.LOG - 809)) | (1 << (MySQLParser.LOG10 - 809)) | (1 << (MySQLParser.LOG2 - 809)) | (1 << (MySQLParser.LOWER - 809)) | (1 << (MySQLParser.LPAD - 809)) | (1 << (MySQLParser.LTRIM - 809)) | (1 << (MySQLParser.MAKEDATE - 809)) | (1 << (MySQLParser.MAKETIME - 809)) | (1 << (MySQLParser.MAKE_SET - 809)) | (1 << (MySQLParser.MASTER_POS_WAIT - 809)) | (1 << (MySQLParser.MBRCONTAINS - 809)) | (1 << (MySQLParser.MBRDISJOINT - 809)) | (1 << (MySQLParser.MBREQUAL - 809)) | (1 << (MySQLParser.MBRINTERSECTS - 809)) | (1 << (MySQLParser.MBROVERLAPS - 809)) | (1 << (MySQLParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1f) == 0 && ((1 << (_la - 841)) & ((1 << (MySQLParser.MBRWITHIN - 841)) | (1 << (MySQLParser.MD5 - 841)) | (1 << (MySQLParser.MLINEFROMTEXT - 841)) | (1 << (MySQLParser.MLINEFROMWKB - 841)) | (1 << (MySQLParser.MONTHNAME - 841)) | (1 << (MySQLParser.MPOINTFROMTEXT - 841)) | (1 << (MySQLParser.MPOINTFROMWKB - 841)) | (1 << (MySQLParser.MPOLYFROMTEXT - 841)) | (1 << (MySQLParser.MPOLYFROMWKB - 841)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 841)) | (1 << (MySQLParser.MULTIPOINTFROMWKB - 841)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (MySQLParser.NAME_CONST - 841)) | (1 << (MySQLParser.NULLIF - 841)) | (1 << (MySQLParser.NUMGEOMETRIES - 841)) | (1 << (MySQLParser.NUMINTERIORRINGS - 841)) | (1 << (MySQLParser.NUMPOINTS - 841)) | (1 << (MySQLParser.OCT - 841)) | (1 << (MySQLParser.OCTET_LENGTH - 841)) | (1 << (MySQLParser.ORD - 841)) | (1 << (MySQLParser.OVERLAPS - 841)) | (1 << (MySQLParser.PERIOD_ADD - 841)) | (1 << (MySQLParser.PERIOD_DIFF - 841)) | (1 << (MySQLParser.PI - 841)) | (1 << (MySQLParser.POINTFROMTEXT - 841)) | (1 << (MySQLParser.POINTFROMWKB - 841)) | (1 << (MySQLParser.POINTN - 841)) | (1 << (MySQLParser.POLYFROMTEXT - 841)) | (1 << (MySQLParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1f) == 0 && ((1 << (_la - 873)) & ((1 << (MySQLParser.POLYGONFROMTEXT - 873)) | (1 << (MySQLParser.POLYGONFROMWKB - 873)) | (1 << (MySQLParser.POW - 873)) | (1 << (MySQLParser.POWER - 873)) | (1 << (MySQLParser.QUOTE - 873)) | (1 << (MySQLParser.RADIANS - 873)) | (1 << (MySQLParser.RAND - 873)) | (1 << (MySQLParser.RANDOM_BYTES - 873)) | (1 << (MySQLParser.RELEASE_LOCK - 873)) | (1 << (MySQLParser.REVERSE - 873)) | (1 << (MySQLParser.ROUND - 873)) | (1 << (MySQLParser.ROW_COUNT - 873)) | (1 << (MySQLParser.RPAD - 873)) | (1 << (MySQLParser.RTRIM - 873)) | (1 << (MySQLParser.SEC_TO_TIME - 873)) | (1 << (MySQLParser.SESSION_USER - 873)) | (1 << (MySQLParser.SHA - 873)) | (1 << (MySQLParser.SHA1 - 873)) | (1 << (MySQLParser.SHA2 - 873)) | (1 << (MySQLParser.SCHEMA_NAME - 873)) | (1 << (MySQLParser.SIGN - 873)) | (1 << (MySQLParser.SIN - 873)) | (1 << (MySQLParser.SLEEP - 873)) | (1 << (MySQLParser.SOUNDEX - 873)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (MySQLParser.SQRT - 873)) | (1 << (MySQLParser.SRID - 873)) | (1 << (MySQLParser.STARTPOINT - 873)) | (1 << (MySQLParser.STRCMP - 873)) | (1 << (MySQLParser.STR_TO_DATE - 873)) | (1 << (MySQLParser.ST_AREA - 873)) | (1 << (MySQLParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1f) == 0 && ((1 << (_la - 905)) & ((1 << (MySQLParser.ST_ASTEXT - 905)) | (1 << (MySQLParser.ST_ASWKB - 905)) | (1 << (MySQLParser.ST_ASWKT - 905)) | (1 << (MySQLParser.ST_BUFFER - 905)) | (1 << (MySQLParser.ST_CENTROID - 905)) | (1 << (MySQLParser.ST_CONTAINS - 905)) | (1 << (MySQLParser.ST_CROSSES - 905)) | (1 << (MySQLParser.ST_DIFFERENCE - 905)) | (1 << (MySQLParser.ST_DIMENSION - 905)) | (1 << (MySQLParser.ST_DISJOINT - 905)) | (1 << (MySQLParser.ST_DISTANCE - 905)) | (1 << (MySQLParser.ST_ENDPOINT - 905)) | (1 << (MySQLParser.ST_ENVELOPE - 905)) | (1 << (MySQLParser.ST_EQUALS - 905)) | (1 << (MySQLParser.ST_EXTERIORRING - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (MySQLParser.ST_GEOMETRYN - 905)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 905)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 905)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 905)) | (1 << (MySQLParser.ST_INTERIORRINGN - 905)) | (1 << (MySQLParser.ST_INTERSECTION - 905)) | (1 << (MySQLParser.ST_INTERSECTS - 905)) | (1 << (MySQLParser.ST_ISCLOSED - 905)) | (1 << (MySQLParser.ST_ISEMPTY - 905)) | (1 << (MySQLParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1f) == 0 && ((1 << (_la - 937)) & ((1 << (MySQLParser.ST_LINEFROMTEXT - 937)) | (1 << (MySQLParser.ST_LINEFROMWKB - 937)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 937)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 937)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 937)) | (1 << (MySQLParser.ST_NUMPOINTS - 937)) | (1 << (MySQLParser.ST_OVERLAPS - 937)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 937)) | (1 << (MySQLParser.ST_POINTFROMWKB - 937)) | (1 << (MySQLParser.ST_POINTN - 937)) | (1 << (MySQLParser.ST_POLYFROMTEXT - 937)) | (1 << (MySQLParser.ST_POLYFROMWKB - 937)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 937)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 937)) | (1 << (MySQLParser.ST_SRID - 937)) | (1 << (MySQLParser.ST_STARTPOINT - 937)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 937)) | (1 << (MySQLParser.ST_TOUCHES - 937)) | (1 << (MySQLParser.ST_UNION - 937)) | (1 << (MySQLParser.ST_WITHIN - 937)) | (1 << (MySQLParser.ST_X - 937)) | (1 << (MySQLParser.ST_Y - 937)) | (1 << (MySQLParser.SUBDATE - 937)) | (1 << (MySQLParser.SUBSTRING_INDEX - 937)) | (1 << (MySQLParser.SUBTIME - 937)) | (1 << (MySQLParser.SYSTEM_USER - 937)) | (1 << (MySQLParser.TAN - 937)) | (1 << (MySQLParser.TIMEDIFF - 937)) | (1 << (MySQLParser.TIMESTAMPADD - 937)) | (1 << (MySQLParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1f) == 0 && ((1 << (_la - 969)) & ((1 << (MySQLParser.TIME_FORMAT - 969)) | (1 << (MySQLParser.TIME_TO_SEC - 969)) | (1 << (MySQLParser.TOUCHES - 969)) | (1 << (MySQLParser.TO_BASE64 - 969)) | (1 << (MySQLParser.TO_DAYS - 969)) | (1 << (MySQLParser.TO_SECONDS - 969)) | (1 << (MySQLParser.UCASE - 969)) | (1 << (MySQLParser.UNCOMPRESS - 969)) | (1 << (MySQLParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (MySQLParser.UNHEX - 969)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 969)) | (1 << (MySQLParser.UPDATEXML - 969)) | (1 << (MySQLParser.UPPER - 969)) | (1 << (MySQLParser.UUID - 969)) | (1 << (MySQLParser.UUID_SHORT - 969)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (MySQLParser.VERSION - 969)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (MySQLParser.WEEKDAY - 969)) | (1 << (MySQLParser.WEEKOFYEAR - 969)) | (1 << (MySQLParser.WEIGHT_STRING - 969)) | (1 << (MySQLParser.WITHIN - 969)) | (1 << (MySQLParser.YEARWEEK - 969)) | (1 << (MySQLParser.Y_FUNCTION - 969)) | (1 << (MySQLParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (MySQLParser.PLUS - 1006)) | (1 << (MySQLParser.MINUS - 1006)) | (1 << (MySQLParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (MySQLParser.BIT_NOT_OP - 1006)) | (1 << (MySQLParser.LR_BRACKET - 1006)) | (1 << (MySQLParser.ZERO_DECIMAL - 1006)) | (1 << (MySQLParser.ONE_DECIMAL - 1006)) | (1 << (MySQLParser.TWO_DECIMAL - 1006)) | (1 << (MySQLParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (MySQLParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (MySQLParser.STRING_LITERAL - 1006)) | (1 << (MySQLParser.DECIMAL_LITERAL - 1006)) | (1 << (MySQLParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1f) == 0 && ((1 << (_la - 1038)) & ((1 << (MySQLParser.REAL_LITERAL - 1038)) | (1 << (MySQLParser.NULL_SPEC_LITERAL - 1038)) | (1 << (MySQLParser.BIT_STRING - 1038)) | (1 << (MySQLParser.STRING_CHARSET_NAME - 1038)) | (1 << (MySQLParser.ID - 1038)) | (1 << (MySQLParser.REVERSE_QUOTE_ID - 1038)) | (1 << (MySQLParser.LOCAL_ID - 1038)) | (1 << (MySQLParser.GLOBAL_ID - 1038)))) !== 0)) { + this.state = 5868; + this.functionArgs(); + } + + this.state = 5871; + this.match(MySQLParser.RR_BRACKET); + break; + + case 5: + localctx = new PasswordFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 5873; + this.passwordFunctionClause(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SpecificFunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_specificFunction; + return this; +} + +SpecificFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SpecificFunctionContext.prototype.constructor = SpecificFunctionContext; + + + +SpecificFunctionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function PositionFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + this.positionString = null; // StringLiteralContext; + this.positionExpression = null; // ExpressionContext; + this.inString = null; // StringLiteralContext; + this.inExpression = null; // ExpressionContext; + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PositionFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +PositionFunctionCallContext.prototype.constructor = PositionFunctionCallContext; + +MySQLParser.PositionFunctionCallContext = PositionFunctionCallContext; + +PositionFunctionCallContext.prototype.POSITION = function() { + return this.getToken(MySQLParser.POSITION, 0); +}; + +PositionFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PositionFunctionCallContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; + +PositionFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PositionFunctionCallContext.prototype.stringLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(StringLiteralContext); + } else { + return this.getTypedRuleContext(StringLiteralContext,i); + } +}; + +PositionFunctionCallContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; +PositionFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPositionFunctionCall(this); + } +}; + +PositionFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPositionFunctionCall(this); + } +}; + +PositionFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPositionFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function TrimFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + this.positioinForm = null; // Token; + this.sourceString = null; // StringLiteralContext; + this.sourceExpression = null; // ExpressionContext; + this.fromString = null; // StringLiteralContext; + this.fromExpression = null; // ExpressionContext; + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +TrimFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +TrimFunctionCallContext.prototype.constructor = TrimFunctionCallContext; + +MySQLParser.TrimFunctionCallContext = TrimFunctionCallContext; + +TrimFunctionCallContext.prototype.TRIM = function() { + return this.getToken(MySQLParser.TRIM, 0); +}; + +TrimFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +TrimFunctionCallContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +TrimFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +TrimFunctionCallContext.prototype.BOTH = function() { + return this.getToken(MySQLParser.BOTH, 0); +}; + +TrimFunctionCallContext.prototype.LEADING = function() { + return this.getToken(MySQLParser.LEADING, 0); +}; + +TrimFunctionCallContext.prototype.TRAILING = function() { + return this.getToken(MySQLParser.TRAILING, 0); +}; + +TrimFunctionCallContext.prototype.stringLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(StringLiteralContext); + } else { + return this.getTypedRuleContext(StringLiteralContext,i); + } +}; + +TrimFunctionCallContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; +TrimFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTrimFunctionCall(this); + } +}; + +TrimFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTrimFunctionCall(this); + } +}; + +TrimFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTrimFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SimpleFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SimpleFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +SimpleFunctionCallContext.prototype.constructor = SimpleFunctionCallContext; + +MySQLParser.SimpleFunctionCallContext = SimpleFunctionCallContext; + +SimpleFunctionCallContext.prototype.CURRENT_DATE = function() { + return this.getToken(MySQLParser.CURRENT_DATE, 0); +}; + +SimpleFunctionCallContext.prototype.CURRENT_TIME = function() { + return this.getToken(MySQLParser.CURRENT_TIME, 0); +}; + +SimpleFunctionCallContext.prototype.CURRENT_TIMESTAMP = function() { + return this.getToken(MySQLParser.CURRENT_TIMESTAMP, 0); +}; + +SimpleFunctionCallContext.prototype.CURRENT_USER = function() { + return this.getToken(MySQLParser.CURRENT_USER, 0); +}; + +SimpleFunctionCallContext.prototype.LOCALTIME = function() { + return this.getToken(MySQLParser.LOCALTIME, 0); +}; +SimpleFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSimpleFunctionCall(this); + } +}; + +SimpleFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSimpleFunctionCall(this); + } +}; + +SimpleFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSimpleFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CharFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CharFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +CharFunctionCallContext.prototype.constructor = CharFunctionCallContext; + +MySQLParser.CharFunctionCallContext = CharFunctionCallContext; + +CharFunctionCallContext.prototype.CHAR = function() { + return this.getToken(MySQLParser.CHAR, 0); +}; + +CharFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +CharFunctionCallContext.prototype.functionArgs = function() { + return this.getTypedRuleContext(FunctionArgsContext,0); +}; + +CharFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +CharFunctionCallContext.prototype.USING = function() { + return this.getToken(MySQLParser.USING, 0); +}; + +CharFunctionCallContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; +CharFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCharFunctionCall(this); + } +}; + +CharFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCharFunctionCall(this); + } +}; + +CharFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCharFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function WeightFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + this.stringFormat = null; // Token; + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +WeightFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +WeightFunctionCallContext.prototype.constructor = WeightFunctionCallContext; + +MySQLParser.WeightFunctionCallContext = WeightFunctionCallContext; + +WeightFunctionCallContext.prototype.WEIGHT_STRING = function() { + return this.getToken(MySQLParser.WEIGHT_STRING, 0); +}; + +WeightFunctionCallContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LR_BRACKET); + } else { + return this.getToken(MySQLParser.LR_BRACKET, i); + } +}; + + +WeightFunctionCallContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.RR_BRACKET); + } else { + return this.getToken(MySQLParser.RR_BRACKET, i); + } +}; + + +WeightFunctionCallContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +WeightFunctionCallContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +WeightFunctionCallContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; + +WeightFunctionCallContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +WeightFunctionCallContext.prototype.levelsInWeightString = function() { + return this.getTypedRuleContext(LevelsInWeightStringContext,0); +}; + +WeightFunctionCallContext.prototype.CHAR = function() { + return this.getToken(MySQLParser.CHAR, 0); +}; + +WeightFunctionCallContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; +WeightFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterWeightFunctionCall(this); + } +}; + +WeightFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitWeightFunctionCall(this); + } +}; + +WeightFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitWeightFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function GetFormatFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + this.datetimeFormat = null; // Token; + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +GetFormatFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +GetFormatFunctionCallContext.prototype.constructor = GetFormatFunctionCallContext; + +MySQLParser.GetFormatFunctionCallContext = GetFormatFunctionCallContext; + +GetFormatFunctionCallContext.prototype.GET_FORMAT = function() { + return this.getToken(MySQLParser.GET_FORMAT, 0); +}; + +GetFormatFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +GetFormatFunctionCallContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; + +GetFormatFunctionCallContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +GetFormatFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +GetFormatFunctionCallContext.prototype.DATE = function() { + return this.getToken(MySQLParser.DATE, 0); +}; + +GetFormatFunctionCallContext.prototype.TIME = function() { + return this.getToken(MySQLParser.TIME, 0); +}; + +GetFormatFunctionCallContext.prototype.DATETIME = function() { + return this.getToken(MySQLParser.DATETIME, 0); +}; +GetFormatFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterGetFormatFunctionCall(this); + } +}; + +GetFormatFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitGetFormatFunctionCall(this); + } +}; + +GetFormatFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitGetFormatFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CaseFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + this.elseArg = null; // FunctionArgContext; + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CaseFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +CaseFunctionCallContext.prototype.constructor = CaseFunctionCallContext; + +MySQLParser.CaseFunctionCallContext = CaseFunctionCallContext; + +CaseFunctionCallContext.prototype.CASE = function() { + return this.getToken(MySQLParser.CASE, 0); +}; + +CaseFunctionCallContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +CaseFunctionCallContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +CaseFunctionCallContext.prototype.caseFuncAlternative = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(CaseFuncAlternativeContext); + } else { + return this.getTypedRuleContext(CaseFuncAlternativeContext,i); + } +}; + +CaseFunctionCallContext.prototype.ELSE = function() { + return this.getToken(MySQLParser.ELSE, 0); +}; + +CaseFunctionCallContext.prototype.functionArg = function() { + return this.getTypedRuleContext(FunctionArgContext,0); +}; +CaseFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCaseFunctionCall(this); + } +}; + +CaseFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCaseFunctionCall(this); + } +}; + +CaseFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCaseFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ExtractFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + this.sourceString = null; // StringLiteralContext; + this.sourceExpression = null; // ExpressionContext; + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ExtractFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +ExtractFunctionCallContext.prototype.constructor = ExtractFunctionCallContext; + +MySQLParser.ExtractFunctionCallContext = ExtractFunctionCallContext; + +ExtractFunctionCallContext.prototype.EXTRACT = function() { + return this.getToken(MySQLParser.EXTRACT, 0); +}; + +ExtractFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +ExtractFunctionCallContext.prototype.intervalType = function() { + return this.getTypedRuleContext(IntervalTypeContext,0); +}; + +ExtractFunctionCallContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +ExtractFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +ExtractFunctionCallContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +ExtractFunctionCallContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; +ExtractFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterExtractFunctionCall(this); + } +}; + +ExtractFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitExtractFunctionCall(this); + } +}; + +ExtractFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitExtractFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DataTypeFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + this.separator = null; // Token; + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DataTypeFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +DataTypeFunctionCallContext.prototype.constructor = DataTypeFunctionCallContext; + +MySQLParser.DataTypeFunctionCallContext = DataTypeFunctionCallContext; + +DataTypeFunctionCallContext.prototype.CONVERT = function() { + return this.getToken(MySQLParser.CONVERT, 0); +}; + +DataTypeFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +DataTypeFunctionCallContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +DataTypeFunctionCallContext.prototype.convertedDataType = function() { + return this.getTypedRuleContext(ConvertedDataTypeContext,0); +}; + +DataTypeFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +DataTypeFunctionCallContext.prototype.COMMA = function() { + return this.getToken(MySQLParser.COMMA, 0); +}; + +DataTypeFunctionCallContext.prototype.USING = function() { + return this.getToken(MySQLParser.USING, 0); +}; + +DataTypeFunctionCallContext.prototype.charsetName = function() { + return this.getTypedRuleContext(CharsetNameContext,0); +}; + +DataTypeFunctionCallContext.prototype.CAST = function() { + return this.getToken(MySQLParser.CAST, 0); +}; + +DataTypeFunctionCallContext.prototype.AS = function() { + return this.getToken(MySQLParser.AS, 0); +}; +DataTypeFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDataTypeFunctionCall(this); + } +}; + +DataTypeFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDataTypeFunctionCall(this); + } +}; + +DataTypeFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDataTypeFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ValuesFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ValuesFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +ValuesFunctionCallContext.prototype.constructor = ValuesFunctionCallContext; + +MySQLParser.ValuesFunctionCallContext = ValuesFunctionCallContext; + +ValuesFunctionCallContext.prototype.VALUES = function() { + return this.getToken(MySQLParser.VALUES, 0); +}; + +ValuesFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +ValuesFunctionCallContext.prototype.fullColumnName = function() { + return this.getTypedRuleContext(FullColumnNameContext,0); +}; + +ValuesFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +ValuesFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterValuesFunctionCall(this); + } +}; + +ValuesFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitValuesFunctionCall(this); + } +}; + +ValuesFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitValuesFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SubstrFunctionCallContext(parser, ctx) { + SpecificFunctionContext.call(this, parser); + this.sourceString = null; // StringLiteralContext; + this.sourceExpression = null; // ExpressionContext; + this.fromDecimal = null; // DecimalLiteralContext; + this.fromExpression = null; // ExpressionContext; + this.forDecimal = null; // DecimalLiteralContext; + this.forExpression = null; // ExpressionContext; + SpecificFunctionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SubstrFunctionCallContext.prototype = Object.create(SpecificFunctionContext.prototype); +SubstrFunctionCallContext.prototype.constructor = SubstrFunctionCallContext; + +MySQLParser.SubstrFunctionCallContext = SubstrFunctionCallContext; + +SubstrFunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +SubstrFunctionCallContext.prototype.FROM = function() { + return this.getToken(MySQLParser.FROM, 0); +}; + +SubstrFunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +SubstrFunctionCallContext.prototype.SUBSTR = function() { + return this.getToken(MySQLParser.SUBSTR, 0); +}; + +SubstrFunctionCallContext.prototype.SUBSTRING = function() { + return this.getToken(MySQLParser.SUBSTRING, 0); +}; + +SubstrFunctionCallContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +SubstrFunctionCallContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +SubstrFunctionCallContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; + +SubstrFunctionCallContext.prototype.FOR = function() { + return this.getToken(MySQLParser.FOR, 0); +}; +SubstrFunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSubstrFunctionCall(this); + } +}; + +SubstrFunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSubstrFunctionCall(this); + } +}; + +SubstrFunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSubstrFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.SpecificFunctionContext = SpecificFunctionContext; + +MySQLParser.prototype.specificFunction = function() { + + var localctx = new SpecificFunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 582, MySQLParser.RULE_specificFunction); + var _la = 0; // Token type + try { + this.state = 6033; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,890,this._ctx); + switch(la_) { + case 1: + localctx = new SimpleFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 5876; + _la = this._input.LA(1); + if(!(_la===MySQLParser.CURRENT_USER || ((((_la - 251)) & ~0x1f) == 0 && ((1 << (_la - 251)) & ((1 << (MySQLParser.CURRENT_DATE - 251)) | (1 << (MySQLParser.CURRENT_TIME - 251)) | (1 << (MySQLParser.CURRENT_TIMESTAMP - 251)) | (1 << (MySQLParser.LOCALTIME - 251)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + localctx = new DataTypeFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 5877; + this.match(MySQLParser.CONVERT); + this.state = 5878; + this.match(MySQLParser.LR_BRACKET); + this.state = 5879; + this.expression(0); + this.state = 5880; + localctx.separator = this.match(MySQLParser.COMMA); + this.state = 5881; + this.convertedDataType(); + this.state = 5882; + this.match(MySQLParser.RR_BRACKET); + break; + + case 3: + localctx = new DataTypeFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 5884; + this.match(MySQLParser.CONVERT); + this.state = 5885; + this.match(MySQLParser.LR_BRACKET); + this.state = 5886; + this.expression(0); + this.state = 5887; + this.match(MySQLParser.USING); + this.state = 5888; + this.charsetName(); + this.state = 5889; + this.match(MySQLParser.RR_BRACKET); + break; + + case 4: + localctx = new DataTypeFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 5891; + this.match(MySQLParser.CAST); + this.state = 5892; + this.match(MySQLParser.LR_BRACKET); + this.state = 5893; + this.expression(0); + this.state = 5894; + this.match(MySQLParser.AS); + this.state = 5895; + this.convertedDataType(); + this.state = 5896; + this.match(MySQLParser.RR_BRACKET); + break; + + case 5: + localctx = new ValuesFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 5898; + this.match(MySQLParser.VALUES); + this.state = 5899; + this.match(MySQLParser.LR_BRACKET); + this.state = 5900; + this.fullColumnName(); + this.state = 5901; + this.match(MySQLParser.RR_BRACKET); + break; + + case 6: + localctx = new CaseFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 5903; + this.match(MySQLParser.CASE); + this.state = 5904; + this.expression(0); + this.state = 5906; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5905; + this.caseFuncAlternative(); + this.state = 5908; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.WHEN); + this.state = 5912; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ELSE) { + this.state = 5910; + this.match(MySQLParser.ELSE); + this.state = 5911; + localctx.elseArg = this.functionArg(); + } + + this.state = 5914; + this.match(MySQLParser.END); + break; + + case 7: + localctx = new CaseFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 5916; + this.match(MySQLParser.CASE); + this.state = 5918; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5917; + this.caseFuncAlternative(); + this.state = 5920; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.WHEN); + this.state = 5924; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ELSE) { + this.state = 5922; + this.match(MySQLParser.ELSE); + this.state = 5923; + localctx.elseArg = this.functionArg(); + } + + this.state = 5926; + this.match(MySQLParser.END); + break; + + case 8: + localctx = new CharFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 5928; + this.match(MySQLParser.CHAR); + this.state = 5929; + this.match(MySQLParser.LR_BRACKET); + this.state = 5930; + this.functionArgs(); + this.state = 5933; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.USING) { + this.state = 5931; + this.match(MySQLParser.USING); + this.state = 5932; + this.charsetName(); + } + + this.state = 5935; + this.match(MySQLParser.RR_BRACKET); + break; + + case 9: + localctx = new PositionFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 9); + this.state = 5937; + this.match(MySQLParser.POSITION); + this.state = 5938; + this.match(MySQLParser.LR_BRACKET); + this.state = 5941; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,876,this._ctx); + switch(la_) { + case 1: + this.state = 5939; + localctx.positionString = this.stringLiteral(); + break; + + case 2: + this.state = 5940; + localctx.positionExpression = this.expression(0); + break; + + } + this.state = 5943; + this.match(MySQLParser.IN); + this.state = 5946; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,877,this._ctx); + switch(la_) { + case 1: + this.state = 5944; + localctx.inString = this.stringLiteral(); + break; + + case 2: + this.state = 5945; + localctx.inExpression = this.expression(0); + break; + + } + this.state = 5948; + this.match(MySQLParser.RR_BRACKET); + break; + + case 10: + localctx = new SubstrFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 10); + this.state = 5950; + _la = this._input.LA(1); + if(!(_la===MySQLParser.SUBSTR || _la===MySQLParser.SUBSTRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5951; + this.match(MySQLParser.LR_BRACKET); + this.state = 5954; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,878,this._ctx); + switch(la_) { + case 1: + this.state = 5952; + localctx.sourceString = this.stringLiteral(); + break; + + case 2: + this.state = 5953; + localctx.sourceExpression = this.expression(0); + break; + + } + this.state = 5956; + this.match(MySQLParser.FROM); + this.state = 5959; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,879,this._ctx); + switch(la_) { + case 1: + this.state = 5957; + localctx.fromDecimal = this.decimalLiteral(); + break; + + case 2: + this.state = 5958; + localctx.fromExpression = this.expression(0); + break; + + } + this.state = 5966; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.FOR) { + this.state = 5961; + this.match(MySQLParser.FOR); + this.state = 5964; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,880,this._ctx); + switch(la_) { + case 1: + this.state = 5962; + localctx.forDecimal = this.decimalLiteral(); + break; + + case 2: + this.state = 5963; + localctx.forExpression = this.expression(0); + break; + + } + } + + this.state = 5968; + this.match(MySQLParser.RR_BRACKET); + break; + + case 11: + localctx = new TrimFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 11); + this.state = 5970; + this.match(MySQLParser.TRIM); + this.state = 5971; + this.match(MySQLParser.LR_BRACKET); + this.state = 5972; + localctx.positioinForm = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.BOTH || _la===MySQLParser.LEADING || _la===MySQLParser.TRAILING)) { + localctx.positioinForm = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5975; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,882,this._ctx); + if(la_===1) { + this.state = 5973; + localctx.sourceString = this.stringLiteral(); + + } else if(la_===2) { + this.state = 5974; + localctx.sourceExpression = this.expression(0); + + } + this.state = 5977; + this.match(MySQLParser.FROM); + this.state = 5980; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,883,this._ctx); + switch(la_) { + case 1: + this.state = 5978; + localctx.fromString = this.stringLiteral(); + break; + + case 2: + this.state = 5979; + localctx.fromExpression = this.expression(0); + break; + + } + this.state = 5982; + this.match(MySQLParser.RR_BRACKET); + break; + + case 12: + localctx = new TrimFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 12); + this.state = 5984; + this.match(MySQLParser.TRIM); + this.state = 5985; + this.match(MySQLParser.LR_BRACKET); + this.state = 5988; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,884,this._ctx); + switch(la_) { + case 1: + this.state = 5986; + localctx.sourceString = this.stringLiteral(); + break; + + case 2: + this.state = 5987; + localctx.sourceExpression = this.expression(0); + break; + + } + this.state = 5990; + this.match(MySQLParser.FROM); + this.state = 5993; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,885,this._ctx); + switch(la_) { + case 1: + this.state = 5991; + localctx.fromString = this.stringLiteral(); + break; + + case 2: + this.state = 5992; + localctx.fromExpression = this.expression(0); + break; + + } + this.state = 5995; + this.match(MySQLParser.RR_BRACKET); + break; + + case 13: + localctx = new WeightFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 13); + this.state = 5997; + this.match(MySQLParser.WEIGHT_STRING); + this.state = 5998; + this.match(MySQLParser.LR_BRACKET); + this.state = 6001; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,886,this._ctx); + switch(la_) { + case 1: + this.state = 5999; + this.stringLiteral(); + break; + + case 2: + this.state = 6000; + this.expression(0); + break; + + } + this.state = 6009; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.AS) { + this.state = 6003; + this.match(MySQLParser.AS); + this.state = 6004; + localctx.stringFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.CHAR || _la===MySQLParser.BINARY)) { + localctx.stringFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6005; + this.match(MySQLParser.LR_BRACKET); + this.state = 6006; + this.decimalLiteral(); + this.state = 6007; + this.match(MySQLParser.RR_BRACKET); + } + + this.state = 6012; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.LEVEL) { + this.state = 6011; + this.levelsInWeightString(); + } + + this.state = 6014; + this.match(MySQLParser.RR_BRACKET); + break; + + case 14: + localctx = new ExtractFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 14); + this.state = 6016; + this.match(MySQLParser.EXTRACT); + this.state = 6017; + this.match(MySQLParser.LR_BRACKET); + this.state = 6018; + this.intervalType(); + this.state = 6019; + this.match(MySQLParser.FROM); + this.state = 6022; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,889,this._ctx); + switch(la_) { + case 1: + this.state = 6020; + localctx.sourceString = this.stringLiteral(); + break; + + case 2: + this.state = 6021; + localctx.sourceExpression = this.expression(0); + break; + + } + this.state = 6024; + this.match(MySQLParser.RR_BRACKET); + break; + + case 15: + localctx = new GetFormatFunctionCallContext(this, localctx); + this.enterOuterAlt(localctx, 15); + this.state = 6026; + this.match(MySQLParser.GET_FORMAT); + this.state = 6027; + this.match(MySQLParser.LR_BRACKET); + this.state = 6028; + localctx.datetimeFormat = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.DATETIME - 199)))) !== 0))) { + localctx.datetimeFormat = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6029; + this.match(MySQLParser.COMMA); + this.state = 6030; + this.stringLiteral(); + this.state = 6031; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CaseFuncAlternativeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_caseFuncAlternative; + this.condition = null; // FunctionArgContext + this.consequent = null; // FunctionArgContext + return this; +} + +CaseFuncAlternativeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CaseFuncAlternativeContext.prototype.constructor = CaseFuncAlternativeContext; + +CaseFuncAlternativeContext.prototype.WHEN = function() { + return this.getToken(MySQLParser.WHEN, 0); +}; + +CaseFuncAlternativeContext.prototype.THEN = function() { + return this.getToken(MySQLParser.THEN, 0); +}; + +CaseFuncAlternativeContext.prototype.functionArg = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FunctionArgContext); + } else { + return this.getTypedRuleContext(FunctionArgContext,i); + } +}; + +CaseFuncAlternativeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCaseFuncAlternative(this); + } +}; + +CaseFuncAlternativeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCaseFuncAlternative(this); + } +}; + +CaseFuncAlternativeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCaseFuncAlternative(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CaseFuncAlternativeContext = CaseFuncAlternativeContext; + +MySQLParser.prototype.caseFuncAlternative = function() { + + var localctx = new CaseFuncAlternativeContext(this, this._ctx, this.state); + this.enterRule(localctx, 584, MySQLParser.RULE_caseFuncAlternative); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6035; + this.match(MySQLParser.WHEN); + this.state = 6036; + localctx.condition = this.functionArg(); + this.state = 6037; + this.match(MySQLParser.THEN); + this.state = 6038; + localctx.consequent = this.functionArg(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LevelsInWeightStringContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_levelsInWeightString; + return this; +} + +LevelsInWeightStringContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LevelsInWeightStringContext.prototype.constructor = LevelsInWeightStringContext; + + + +LevelsInWeightStringContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function LevelWeightRangeContext(parser, ctx) { + LevelsInWeightStringContext.call(this, parser); + this.firstLevel = null; // DecimalLiteralContext; + this.lastLevel = null; // DecimalLiteralContext; + LevelsInWeightStringContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LevelWeightRangeContext.prototype = Object.create(LevelsInWeightStringContext.prototype); +LevelWeightRangeContext.prototype.constructor = LevelWeightRangeContext; + +MySQLParser.LevelWeightRangeContext = LevelWeightRangeContext; + +LevelWeightRangeContext.prototype.LEVEL = function() { + return this.getToken(MySQLParser.LEVEL, 0); +}; + +LevelWeightRangeContext.prototype.MINUS = function() { + return this.getToken(MySQLParser.MINUS, 0); +}; + +LevelWeightRangeContext.prototype.decimalLiteral = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(DecimalLiteralContext); + } else { + return this.getTypedRuleContext(DecimalLiteralContext,i); + } +}; +LevelWeightRangeContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLevelWeightRange(this); + } +}; + +LevelWeightRangeContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLevelWeightRange(this); + } +}; + +LevelWeightRangeContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLevelWeightRange(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function LevelWeightListContext(parser, ctx) { + LevelsInWeightStringContext.call(this, parser); + LevelsInWeightStringContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LevelWeightListContext.prototype = Object.create(LevelsInWeightStringContext.prototype); +LevelWeightListContext.prototype.constructor = LevelWeightListContext; + +MySQLParser.LevelWeightListContext = LevelWeightListContext; + +LevelWeightListContext.prototype.LEVEL = function() { + return this.getToken(MySQLParser.LEVEL, 0); +}; + +LevelWeightListContext.prototype.levelInWeightListElement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(LevelInWeightListElementContext); + } else { + return this.getTypedRuleContext(LevelInWeightListElementContext,i); + } +}; + +LevelWeightListContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +LevelWeightListContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLevelWeightList(this); + } +}; + +LevelWeightListContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLevelWeightList(this); + } +}; + +LevelWeightListContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLevelWeightList(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.LevelsInWeightStringContext = LevelsInWeightStringContext; + +MySQLParser.prototype.levelsInWeightString = function() { + + var localctx = new LevelsInWeightStringContext(this, this._ctx, this.state); + this.enterRule(localctx, 586, MySQLParser.RULE_levelsInWeightString); + var _la = 0; // Token type + try { + this.state = 6054; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,892,this._ctx); + switch(la_) { + case 1: + localctx = new LevelWeightListContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 6040; + this.match(MySQLParser.LEVEL); + this.state = 6041; + this.levelInWeightListElement(); + this.state = 6046; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 6042; + this.match(MySQLParser.COMMA); + this.state = 6043; + this.levelInWeightListElement(); + this.state = 6048; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + localctx = new LevelWeightRangeContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 6049; + this.match(MySQLParser.LEVEL); + this.state = 6050; + localctx.firstLevel = this.decimalLiteral(); + this.state = 6051; + this.match(MySQLParser.MINUS); + this.state = 6052; + localctx.lastLevel = this.decimalLiteral(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LevelInWeightListElementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_levelInWeightListElement; + this.orderType = null; // Token + return this; +} + +LevelInWeightListElementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LevelInWeightListElementContext.prototype.constructor = LevelInWeightListElementContext; + +LevelInWeightListElementContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +LevelInWeightListElementContext.prototype.ASC = function() { + return this.getToken(MySQLParser.ASC, 0); +}; + +LevelInWeightListElementContext.prototype.DESC = function() { + return this.getToken(MySQLParser.DESC, 0); +}; + +LevelInWeightListElementContext.prototype.REVERSE = function() { + return this.getToken(MySQLParser.REVERSE, 0); +}; + +LevelInWeightListElementContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLevelInWeightListElement(this); + } +}; + +LevelInWeightListElementContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLevelInWeightListElement(this); + } +}; + +LevelInWeightListElementContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLevelInWeightListElement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LevelInWeightListElementContext = LevelInWeightListElementContext; + +MySQLParser.prototype.levelInWeightListElement = function() { + + var localctx = new LevelInWeightListElementContext(this, this._ctx, this.state); + this.enterRule(localctx, 588, MySQLParser.RULE_levelInWeightListElement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6056; + this.decimalLiteral(); + this.state = 6058; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ASC || _la===MySQLParser.DESC || _la===MySQLParser.REVERSE) { + this.state = 6057; + localctx.orderType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ASC || _la===MySQLParser.DESC || _la===MySQLParser.REVERSE)) { + localctx.orderType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AggregateWindowedFunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_aggregateWindowedFunction; + this.aggregator = null; // Token + this.starArg = null; // Token + this.separator = null; // Token + return this; +} + +AggregateWindowedFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AggregateWindowedFunctionContext.prototype.constructor = AggregateWindowedFunctionContext; + +AggregateWindowedFunctionContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +AggregateWindowedFunctionContext.prototype.functionArg = function() { + return this.getTypedRuleContext(FunctionArgContext,0); +}; + +AggregateWindowedFunctionContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +AggregateWindowedFunctionContext.prototype.AVG = function() { + return this.getToken(MySQLParser.AVG, 0); +}; + +AggregateWindowedFunctionContext.prototype.MAX = function() { + return this.getToken(MySQLParser.MAX, 0); +}; + +AggregateWindowedFunctionContext.prototype.MIN = function() { + return this.getToken(MySQLParser.MIN, 0); +}; + +AggregateWindowedFunctionContext.prototype.SUM = function() { + return this.getToken(MySQLParser.SUM, 0); +}; + +AggregateWindowedFunctionContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +AggregateWindowedFunctionContext.prototype.DISTINCT = function() { + return this.getToken(MySQLParser.DISTINCT, 0); +}; + +AggregateWindowedFunctionContext.prototype.COUNT = function() { + return this.getToken(MySQLParser.COUNT, 0); +}; + +AggregateWindowedFunctionContext.prototype.STAR = function() { + return this.getToken(MySQLParser.STAR, 0); +}; + +AggregateWindowedFunctionContext.prototype.functionArgs = function() { + return this.getTypedRuleContext(FunctionArgsContext,0); +}; + +AggregateWindowedFunctionContext.prototype.BIT_AND = function() { + return this.getToken(MySQLParser.BIT_AND, 0); +}; + +AggregateWindowedFunctionContext.prototype.BIT_OR = function() { + return this.getToken(MySQLParser.BIT_OR, 0); +}; + +AggregateWindowedFunctionContext.prototype.BIT_XOR = function() { + return this.getToken(MySQLParser.BIT_XOR, 0); +}; + +AggregateWindowedFunctionContext.prototype.STD = function() { + return this.getToken(MySQLParser.STD, 0); +}; + +AggregateWindowedFunctionContext.prototype.STDDEV = function() { + return this.getToken(MySQLParser.STDDEV, 0); +}; + +AggregateWindowedFunctionContext.prototype.STDDEV_POP = function() { + return this.getToken(MySQLParser.STDDEV_POP, 0); +}; + +AggregateWindowedFunctionContext.prototype.STDDEV_SAMP = function() { + return this.getToken(MySQLParser.STDDEV_SAMP, 0); +}; + +AggregateWindowedFunctionContext.prototype.VAR_POP = function() { + return this.getToken(MySQLParser.VAR_POP, 0); +}; + +AggregateWindowedFunctionContext.prototype.VAR_SAMP = function() { + return this.getToken(MySQLParser.VAR_SAMP, 0); +}; + +AggregateWindowedFunctionContext.prototype.VARIANCE = function() { + return this.getToken(MySQLParser.VARIANCE, 0); +}; + +AggregateWindowedFunctionContext.prototype.GROUP_CONCAT = function() { + return this.getToken(MySQLParser.GROUP_CONCAT, 0); +}; + +AggregateWindowedFunctionContext.prototype.ORDER = function() { + return this.getToken(MySQLParser.ORDER, 0); +}; + +AggregateWindowedFunctionContext.prototype.BY = function() { + return this.getToken(MySQLParser.BY, 0); +}; + +AggregateWindowedFunctionContext.prototype.orderByExpression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(OrderByExpressionContext); + } else { + return this.getTypedRuleContext(OrderByExpressionContext,i); + } +}; + +AggregateWindowedFunctionContext.prototype.SEPARATOR = function() { + return this.getToken(MySQLParser.SEPARATOR, 0); +}; + +AggregateWindowedFunctionContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; + +AggregateWindowedFunctionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +AggregateWindowedFunctionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterAggregateWindowedFunction(this); + } +}; + +AggregateWindowedFunctionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitAggregateWindowedFunction(this); + } +}; + +AggregateWindowedFunctionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitAggregateWindowedFunction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.AggregateWindowedFunctionContext = AggregateWindowedFunctionContext; + +MySQLParser.prototype.aggregateWindowedFunction = function() { + + var localctx = new AggregateWindowedFunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 590, MySQLParser.RULE_aggregateWindowedFunction); + var _la = 0; // Token type + try { + this.state = 6116; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,902,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6060; + _la = this._input.LA(1); + if(!(((((_la - 235)) & ~0x1f) == 0 && ((1 << (_la - 235)) & ((1 << (MySQLParser.AVG - 235)) | (1 << (MySQLParser.MAX - 235)) | (1 << (MySQLParser.MIN - 235)) | (1 << (MySQLParser.SUM - 235)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6061; + this.match(MySQLParser.LR_BRACKET); + this.state = 6063; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT) { + this.state = 6062; + localctx.aggregator = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ALL || _la===MySQLParser.DISTINCT)) { + localctx.aggregator = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6065; + this.functionArg(); + this.state = 6066; + this.match(MySQLParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6068; + this.match(MySQLParser.COUNT); + this.state = 6069; + this.match(MySQLParser.LR_BRACKET); + this.state = 6075; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.STAR: + this.state = 6070; + localctx.starArg = this.match(MySQLParser.STAR); + break; + case MySQLParser.ALL: + case MySQLParser.CASE: + case MySQLParser.CAST: + case MySQLParser.CONVERT: + case MySQLParser.CURRENT: + case MySQLParser.CURRENT_USER: + case MySQLParser.DATABASE: + case MySQLParser.DIAGNOSTICS: + case MySQLParser.EXISTS: + case MySQLParser.FALSE: + case MySQLParser.IF: + case MySQLParser.INSERT: + case MySQLParser.INTERVAL: + case MySQLParser.LEFT: + case MySQLParser.NOT: + case MySQLParser.NULL_LITERAL: + case MySQLParser.NUMBER: + case MySQLParser.REPLACE: + case MySQLParser.RIGHT: + case MySQLParser.STACKED: + case MySQLParser.TRUE: + case MySQLParser.VALUES: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.DATETIME: + case MySQLParser.YEAR: + case MySQLParser.CHAR: + case MySQLParser.BINARY: + case MySQLParser.TEXT: + case MySQLParser.ENUM: + case MySQLParser.SERIAL: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.AVG: + case MySQLParser.BIT_AND: + case MySQLParser.BIT_OR: + case MySQLParser.BIT_XOR: + case MySQLParser.COUNT: + case MySQLParser.GROUP_CONCAT: + case MySQLParser.MAX: + case MySQLParser.MIN: + case MySQLParser.STD: + case MySQLParser.STDDEV: + case MySQLParser.STDDEV_POP: + case MySQLParser.STDDEV_SAMP: + case MySQLParser.SUM: + case MySQLParser.VAR_POP: + case MySQLParser.VAR_SAMP: + case MySQLParser.VARIANCE: + case MySQLParser.CURRENT_DATE: + case MySQLParser.CURRENT_TIME: + case MySQLParser.CURRENT_TIMESTAMP: + case MySQLParser.LOCALTIME: + case MySQLParser.CURDATE: + case MySQLParser.CURTIME: + case MySQLParser.DATE_ADD: + case MySQLParser.DATE_SUB: + case MySQLParser.EXTRACT: + case MySQLParser.LOCALTIMESTAMP: + case MySQLParser.NOW: + case MySQLParser.POSITION: + case MySQLParser.SUBSTR: + case MySQLParser.SUBSTRING: + case MySQLParser.SYSDATE: + case MySQLParser.TRIM: + case MySQLParser.UTC_DATE: + case MySQLParser.UTC_TIME: + case MySQLParser.UTC_TIMESTAMP: + case MySQLParser.ACCOUNT: + case MySQLParser.ACTION: + case MySQLParser.AFTER: + case MySQLParser.AGGREGATE: + case MySQLParser.ALGORITHM: + case MySQLParser.ANY: + case MySQLParser.AT: + case MySQLParser.AUTHORS: + case MySQLParser.AUTOCOMMIT: + case MySQLParser.AUTOEXTEND_SIZE: + case MySQLParser.AUTO_INCREMENT: + case MySQLParser.AVG_ROW_LENGTH: + case MySQLParser.BEGIN: + case MySQLParser.BINLOG: + case MySQLParser.BIT: + case MySQLParser.BLOCK: + case MySQLParser.BOOL: + case MySQLParser.BOOLEAN: + case MySQLParser.BTREE: + case MySQLParser.CACHE: + case MySQLParser.CASCADED: + case MySQLParser.CHAIN: + case MySQLParser.CHANGED: + case MySQLParser.CHANNEL: + case MySQLParser.CHECKSUM: + case MySQLParser.PAGE_CHECKSUM: + case MySQLParser.CIPHER: + case MySQLParser.CLASS_ORIGIN: + case MySQLParser.CLIENT: + case MySQLParser.CLOSE: + case MySQLParser.COALESCE: + case MySQLParser.CODE: + case MySQLParser.COLUMNS: + case MySQLParser.COLUMN_FORMAT: + case MySQLParser.COLUMN_NAME: + case MySQLParser.COMMENT: + case MySQLParser.COMMIT: + case MySQLParser.COMPACT: + case MySQLParser.COMPLETION: + case MySQLParser.COMPRESSED: + case MySQLParser.COMPRESSION: + case MySQLParser.CONCURRENT: + case MySQLParser.CONNECTION: + case MySQLParser.CONSISTENT: + case MySQLParser.CONSTRAINT_CATALOG: + case MySQLParser.CONSTRAINT_SCHEMA: + case MySQLParser.CONSTRAINT_NAME: + case MySQLParser.CONTAINS: + case MySQLParser.CONTEXT: + case MySQLParser.CONTRIBUTORS: + case MySQLParser.COPY: + case MySQLParser.CPU: + case MySQLParser.CURSOR_NAME: + case MySQLParser.DATA: + case MySQLParser.DATAFILE: + case MySQLParser.DEALLOCATE: + case MySQLParser.DEFAULT_AUTH: + case MySQLParser.DEFINER: + case MySQLParser.DELAY_KEY_WRITE: + case MySQLParser.DES_KEY_FILE: + case MySQLParser.DIRECTORY: + case MySQLParser.DISABLE: + case MySQLParser.DISCARD: + case MySQLParser.DISK: + case MySQLParser.DO: + case MySQLParser.DUMPFILE: + case MySQLParser.DUPLICATE: + case MySQLParser.DYNAMIC: + case MySQLParser.ENABLE: + case MySQLParser.ENCRYPTION: + case MySQLParser.END: + case MySQLParser.ENDS: + case MySQLParser.ENGINE: + case MySQLParser.ENGINES: + case MySQLParser.ERROR: + case MySQLParser.ERRORS: + case MySQLParser.ESCAPE: + case MySQLParser.EVEN: + case MySQLParser.EVENT: + case MySQLParser.EVENTS: + case MySQLParser.EVERY: + case MySQLParser.EXCHANGE: + case MySQLParser.EXCLUSIVE: + case MySQLParser.EXPIRE: + case MySQLParser.EXPORT: + case MySQLParser.EXTENDED: + case MySQLParser.EXTENT_SIZE: + case MySQLParser.FAST: + case MySQLParser.FAULTS: + case MySQLParser.FIELDS: + case MySQLParser.FILE_BLOCK_SIZE: + case MySQLParser.FILTER: + case MySQLParser.FIRST: + case MySQLParser.FIXED: + case MySQLParser.FLUSH: + case MySQLParser.FOLLOWS: + case MySQLParser.FOUND: + case MySQLParser.FULL: + case MySQLParser.FUNCTION: + case MySQLParser.GENERAL: + case MySQLParser.GLOBAL: + case MySQLParser.GRANTS: + case MySQLParser.GROUP_REPLICATION: + case MySQLParser.HANDLER: + case MySQLParser.HASH: + case MySQLParser.HELP: + case MySQLParser.HOST: + case MySQLParser.HOSTS: + case MySQLParser.IDENTIFIED: + case MySQLParser.IGNORE_SERVER_IDS: + case MySQLParser.IMPORT: + case MySQLParser.INDEXES: + case MySQLParser.INITIAL_SIZE: + case MySQLParser.INPLACE: + case MySQLParser.INSERT_METHOD: + case MySQLParser.INSTALL: + case MySQLParser.INSTANCE: + case MySQLParser.INVISIBLE: + case MySQLParser.INVOKER: + case MySQLParser.IO: + case MySQLParser.IO_THREAD: + case MySQLParser.IPC: + case MySQLParser.ISOLATION: + case MySQLParser.ISSUER: + case MySQLParser.JSON: + case MySQLParser.KEY_BLOCK_SIZE: + case MySQLParser.LANGUAGE: + case MySQLParser.LAST: + case MySQLParser.LEAVES: + case MySQLParser.LESS: + case MySQLParser.LEVEL: + case MySQLParser.LIST: + case MySQLParser.LOCAL: + case MySQLParser.LOGFILE: + case MySQLParser.LOGS: + case MySQLParser.MASTER: + case MySQLParser.MASTER_AUTO_POSITION: + case MySQLParser.MASTER_CONNECT_RETRY: + case MySQLParser.MASTER_DELAY: + case MySQLParser.MASTER_HEARTBEAT_PERIOD: + case MySQLParser.MASTER_HOST: + case MySQLParser.MASTER_LOG_FILE: + case MySQLParser.MASTER_LOG_POS: + case MySQLParser.MASTER_PASSWORD: + case MySQLParser.MASTER_PORT: + case MySQLParser.MASTER_RETRY_COUNT: + case MySQLParser.MASTER_SSL: + case MySQLParser.MASTER_SSL_CA: + case MySQLParser.MASTER_SSL_CAPATH: + case MySQLParser.MASTER_SSL_CERT: + case MySQLParser.MASTER_SSL_CIPHER: + case MySQLParser.MASTER_SSL_CRL: + case MySQLParser.MASTER_SSL_CRLPATH: + case MySQLParser.MASTER_SSL_KEY: + case MySQLParser.MASTER_TLS_VERSION: + case MySQLParser.MASTER_USER: + case MySQLParser.MAX_CONNECTIONS_PER_HOUR: + case MySQLParser.MAX_QUERIES_PER_HOUR: + case MySQLParser.MAX_ROWS: + case MySQLParser.MAX_SIZE: + case MySQLParser.MAX_UPDATES_PER_HOUR: + case MySQLParser.MAX_USER_CONNECTIONS: + case MySQLParser.MEDIUM: + case MySQLParser.MERGE: + case MySQLParser.MESSAGE_TEXT: + case MySQLParser.MID: + case MySQLParser.MIGRATE: + case MySQLParser.MIN_ROWS: + case MySQLParser.MODE: + case MySQLParser.MODIFY: + case MySQLParser.MUTEX: + case MySQLParser.MYSQL: + case MySQLParser.MYSQL_ERRNO: + case MySQLParser.NAME: + case MySQLParser.NAMES: + case MySQLParser.NCHAR: + case MySQLParser.NEVER: + case MySQLParser.NEXT: + case MySQLParser.NO: + case MySQLParser.NODEGROUP: + case MySQLParser.NONE: + case MySQLParser.OFFLINE: + case MySQLParser.OFFSET: + case MySQLParser.OJ: + case MySQLParser.OLD_PASSWORD: + case MySQLParser.ONE: + case MySQLParser.ONLINE: + case MySQLParser.ONLY: + case MySQLParser.OPEN: + case MySQLParser.OPTIMIZER_COSTS: + case MySQLParser.OPTIONS: + case MySQLParser.OWNER: + case MySQLParser.PACK_KEYS: + case MySQLParser.PAGE: + case MySQLParser.PARSER: + case MySQLParser.PARTIAL: + case MySQLParser.PARTITIONING: + case MySQLParser.PARTITIONS: + case MySQLParser.PASSWORD: + case MySQLParser.PHASE: + case MySQLParser.PLUGIN: + case MySQLParser.PLUGIN_DIR: + case MySQLParser.PLUGINS: + case MySQLParser.PORT: + case MySQLParser.PRECEDES: + case MySQLParser.PREPARE: + case MySQLParser.PRESERVE: + case MySQLParser.PREV: + case MySQLParser.PROCESSLIST: + case MySQLParser.PROFILE: + case MySQLParser.PROFILES: + case MySQLParser.PROXY: + case MySQLParser.QUERY: + case MySQLParser.QUICK: + case MySQLParser.REBUILD: + case MySQLParser.RECOVER: + case MySQLParser.REDO_BUFFER_SIZE: + case MySQLParser.REDUNDANT: + case MySQLParser.RELAY: + case MySQLParser.RELAY_LOG_FILE: + case MySQLParser.RELAY_LOG_POS: + case MySQLParser.RELAYLOG: + case MySQLParser.REMOVE: + case MySQLParser.REORGANIZE: + case MySQLParser.REPAIR: + case MySQLParser.REPLICATE_DO_DB: + case MySQLParser.REPLICATE_DO_TABLE: + case MySQLParser.REPLICATE_IGNORE_DB: + case MySQLParser.REPLICATE_IGNORE_TABLE: + case MySQLParser.REPLICATE_REWRITE_DB: + case MySQLParser.REPLICATE_WILD_DO_TABLE: + case MySQLParser.REPLICATE_WILD_IGNORE_TABLE: + case MySQLParser.REPLICATION: + case MySQLParser.RESET: + case MySQLParser.RESUME: + case MySQLParser.RETURNED_SQLSTATE: + case MySQLParser.RETURNS: + case MySQLParser.ROLE: + case MySQLParser.ROLLBACK: + case MySQLParser.ROLLUP: + case MySQLParser.ROTATE: + case MySQLParser.ROW: + case MySQLParser.ROWS: + case MySQLParser.ROW_FORMAT: + case MySQLParser.SAVEPOINT: + case MySQLParser.SCHEDULE: + case MySQLParser.SECURITY: + case MySQLParser.SERVER: + case MySQLParser.SESSION: + case MySQLParser.SHARE: + case MySQLParser.SHARED: + case MySQLParser.SIGNED: + case MySQLParser.SIMPLE: + case MySQLParser.SLAVE: + case MySQLParser.SLOW: + case MySQLParser.SNAPSHOT: + case MySQLParser.SOCKET: + case MySQLParser.SOME: + case MySQLParser.SONAME: + case MySQLParser.SOUNDS: + case MySQLParser.SOURCE: + case MySQLParser.SQL_AFTER_GTIDS: + case MySQLParser.SQL_AFTER_MTS_GAPS: + case MySQLParser.SQL_BEFORE_GTIDS: + case MySQLParser.SQL_BUFFER_RESULT: + case MySQLParser.SQL_CACHE: + case MySQLParser.SQL_NO_CACHE: + case MySQLParser.SQL_THREAD: + case MySQLParser.START: + case MySQLParser.STARTS: + case MySQLParser.STATS_AUTO_RECALC: + case MySQLParser.STATS_PERSISTENT: + case MySQLParser.STATS_SAMPLE_PAGES: + case MySQLParser.STATUS: + case MySQLParser.STOP: + case MySQLParser.STORAGE: + case MySQLParser.STRING: + case MySQLParser.SUBCLASS_ORIGIN: + case MySQLParser.SUBJECT: + case MySQLParser.SUBPARTITION: + case MySQLParser.SUBPARTITIONS: + case MySQLParser.SUSPEND: + case MySQLParser.SWAPS: + case MySQLParser.SWITCHES: + case MySQLParser.TABLE_NAME: + case MySQLParser.TABLESPACE: + case MySQLParser.TEMPORARY: + case MySQLParser.TEMPTABLE: + case MySQLParser.THAN: + case MySQLParser.TRADITIONAL: + case MySQLParser.TRANSACTION: + case MySQLParser.TRANSACTIONAL: + case MySQLParser.TRIGGERS: + case MySQLParser.TRUNCATE: + case MySQLParser.UNDEFINED: + case MySQLParser.UNDOFILE: + case MySQLParser.UNDO_BUFFER_SIZE: + case MySQLParser.UNINSTALL: + case MySQLParser.UNKNOWN: + case MySQLParser.UNTIL: + case MySQLParser.UPGRADE: + case MySQLParser.USER: + case MySQLParser.USE_FRM: + case MySQLParser.USER_RESOURCES: + case MySQLParser.VALIDATION: + case MySQLParser.VALUE: + case MySQLParser.VARIABLES: + case MySQLParser.VIEW: + case MySQLParser.VISIBLE: + case MySQLParser.WAIT: + case MySQLParser.WARNINGS: + case MySQLParser.WITHOUT: + case MySQLParser.WORK: + case MySQLParser.WRAPPER: + case MySQLParser.X509: + case MySQLParser.XA: + case MySQLParser.XML: + case MySQLParser.INTERNAL: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.TABLES: + case MySQLParser.ROUTINE: + case MySQLParser.EXECUTE: + case MySQLParser.FILE: + case MySQLParser.PROCESS: + case MySQLParser.RELOAD: + case MySQLParser.SHUTDOWN: + case MySQLParser.SUPER: + case MySQLParser.PRIVILEGES: + case MySQLParser.AUDIT_ADMIN: + case MySQLParser.BACKUP_ADMIN: + case MySQLParser.BINLOG_ADMIN: + case MySQLParser.BINLOG_ENCRYPTION_ADMIN: + case MySQLParser.CLONE_ADMIN: + case MySQLParser.CONNECTION_ADMIN: + case MySQLParser.ENCRYPTION_KEY_ADMIN: + case MySQLParser.FIREWALL_ADMIN: + case MySQLParser.FIREWALL_USER: + case MySQLParser.GROUP_REPLICATION_ADMIN: + case MySQLParser.INNODB_REDO_LOG_ARCHIVE: + case MySQLParser.NDB_STORED_USER: + case MySQLParser.PERSIST_RO_VARIABLES_ADMIN: + case MySQLParser.REPLICATION_APPLIER: + case MySQLParser.REPLICATION_SLAVE_ADMIN: + case MySQLParser.RESOURCE_GROUP_ADMIN: + case MySQLParser.RESOURCE_GROUP_USER: + case MySQLParser.ROLE_ADMIN: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.SET_USER_ID: + case MySQLParser.SHOW_ROUTINE: + case MySQLParser.SYSTEM_VARIABLES_ADMIN: + case MySQLParser.TABLE_ENCRYPTION_ADMIN: + case MySQLParser.VERSION_TOKEN_ADMIN: + case MySQLParser.XA_RECOVER_ADMIN: + case MySQLParser.ARMSCII8: + case MySQLParser.ASCII: + case MySQLParser.BIG5: + case MySQLParser.CP1250: + case MySQLParser.CP1251: + case MySQLParser.CP1256: + case MySQLParser.CP1257: + case MySQLParser.CP850: + case MySQLParser.CP852: + case MySQLParser.CP866: + case MySQLParser.CP932: + case MySQLParser.DEC8: + case MySQLParser.EUCJPMS: + case MySQLParser.EUCKR: + case MySQLParser.GB2312: + case MySQLParser.GBK: + case MySQLParser.GEOSTD8: + case MySQLParser.GREEK: + case MySQLParser.HEBREW: + case MySQLParser.HP8: + case MySQLParser.KEYBCS2: + case MySQLParser.KOI8R: + case MySQLParser.KOI8U: + case MySQLParser.LATIN1: + case MySQLParser.LATIN2: + case MySQLParser.LATIN5: + case MySQLParser.LATIN7: + case MySQLParser.MACCE: + case MySQLParser.MACROMAN: + case MySQLParser.SJIS: + case MySQLParser.SWE7: + case MySQLParser.TIS620: + case MySQLParser.UCS2: + case MySQLParser.UJIS: + case MySQLParser.UTF16: + case MySQLParser.UTF16LE: + case MySQLParser.UTF32: + case MySQLParser.UTF8: + case MySQLParser.UTF8MB3: + case MySQLParser.UTF8MB4: + case MySQLParser.ARCHIVE: + case MySQLParser.BLACKHOLE: + case MySQLParser.CSV: + case MySQLParser.FEDERATED: + case MySQLParser.INNODB: + case MySQLParser.MEMORY: + case MySQLParser.MRG_MYISAM: + case MySQLParser.MYISAM: + case MySQLParser.NDB: + case MySQLParser.NDBCLUSTER: + case MySQLParser.PERFORMANCE_SCHEMA: + case MySQLParser.TOKUDB: + case MySQLParser.REPEATABLE: + case MySQLParser.COMMITTED: + case MySQLParser.UNCOMMITTED: + case MySQLParser.SERIALIZABLE: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CATALOG_NAME: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SCHEMA_NAME: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + case MySQLParser.PLUS: + case MySQLParser.MINUS: + case MySQLParser.EXCLAMATION_SYMBOL: + case MySQLParser.BIT_NOT_OP: + case MySQLParser.LR_BRACKET: + case MySQLParser.ZERO_DECIMAL: + case MySQLParser.ONE_DECIMAL: + case MySQLParser.TWO_DECIMAL: + case MySQLParser.CHARSET_REVERSE_QOUTE_STRING: + case MySQLParser.START_NATIONAL_STRING_LITERAL: + case MySQLParser.STRING_LITERAL: + case MySQLParser.DECIMAL_LITERAL: + case MySQLParser.HEXADECIMAL_LITERAL: + case MySQLParser.REAL_LITERAL: + case MySQLParser.NULL_SPEC_LITERAL: + case MySQLParser.BIT_STRING: + case MySQLParser.STRING_CHARSET_NAME: + case MySQLParser.ID: + case MySQLParser.REVERSE_QUOTE_ID: + case MySQLParser.LOCAL_ID: + case MySQLParser.GLOBAL_ID: + this.state = 6072; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALL) { + this.state = 6071; + localctx.aggregator = this.match(MySQLParser.ALL); + } + + this.state = 6074; + this.functionArg(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6077; + this.match(MySQLParser.RR_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 6078; + this.match(MySQLParser.COUNT); + this.state = 6079; + this.match(MySQLParser.LR_BRACKET); + this.state = 6080; + localctx.aggregator = this.match(MySQLParser.DISTINCT); + this.state = 6081; + this.functionArgs(); + this.state = 6082; + this.match(MySQLParser.RR_BRACKET); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 6084; + _la = this._input.LA(1); + if(!(((((_la - 236)) & ~0x1f) == 0 && ((1 << (_la - 236)) & ((1 << (MySQLParser.BIT_AND - 236)) | (1 << (MySQLParser.BIT_OR - 236)) | (1 << (MySQLParser.BIT_XOR - 236)) | (1 << (MySQLParser.STD - 236)) | (1 << (MySQLParser.STDDEV - 236)) | (1 << (MySQLParser.STDDEV_POP - 236)) | (1 << (MySQLParser.STDDEV_SAMP - 236)) | (1 << (MySQLParser.VAR_POP - 236)) | (1 << (MySQLParser.VAR_SAMP - 236)) | (1 << (MySQLParser.VARIANCE - 236)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6085; + this.match(MySQLParser.LR_BRACKET); + this.state = 6087; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ALL) { + this.state = 6086; + localctx.aggregator = this.match(MySQLParser.ALL); + } + + this.state = 6089; + this.functionArg(); + this.state = 6090; + this.match(MySQLParser.RR_BRACKET); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 6092; + this.match(MySQLParser.GROUP_CONCAT); + this.state = 6093; + this.match(MySQLParser.LR_BRACKET); + this.state = 6095; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.DISTINCT) { + this.state = 6094; + localctx.aggregator = this.match(MySQLParser.DISTINCT); + } + + this.state = 6097; + this.functionArgs(); + this.state = 6108; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.ORDER) { + this.state = 6098; + this.match(MySQLParser.ORDER); + this.state = 6099; + this.match(MySQLParser.BY); + this.state = 6100; + this.orderByExpression(); + this.state = 6105; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 6101; + this.match(MySQLParser.COMMA); + this.state = 6102; + this.orderByExpression(); + this.state = 6107; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6112; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.SEPARATOR) { + this.state = 6110; + this.match(MySQLParser.SEPARATOR); + this.state = 6111; + localctx.separator = this.match(MySQLParser.STRING_LITERAL); + } + + this.state = 6114; + this.match(MySQLParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ScalarFunctionNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_scalarFunctionName; + return this; +} + +ScalarFunctionNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ScalarFunctionNameContext.prototype.constructor = ScalarFunctionNameContext; + +ScalarFunctionNameContext.prototype.functionNameBase = function() { + return this.getTypedRuleContext(FunctionNameBaseContext,0); +}; + +ScalarFunctionNameContext.prototype.ASCII = function() { + return this.getToken(MySQLParser.ASCII, 0); +}; + +ScalarFunctionNameContext.prototype.CURDATE = function() { + return this.getToken(MySQLParser.CURDATE, 0); +}; + +ScalarFunctionNameContext.prototype.CURRENT_DATE = function() { + return this.getToken(MySQLParser.CURRENT_DATE, 0); +}; + +ScalarFunctionNameContext.prototype.CURRENT_TIME = function() { + return this.getToken(MySQLParser.CURRENT_TIME, 0); +}; + +ScalarFunctionNameContext.prototype.CURRENT_TIMESTAMP = function() { + return this.getToken(MySQLParser.CURRENT_TIMESTAMP, 0); +}; + +ScalarFunctionNameContext.prototype.CURTIME = function() { + return this.getToken(MySQLParser.CURTIME, 0); +}; + +ScalarFunctionNameContext.prototype.DATE_ADD = function() { + return this.getToken(MySQLParser.DATE_ADD, 0); +}; + +ScalarFunctionNameContext.prototype.DATE_SUB = function() { + return this.getToken(MySQLParser.DATE_SUB, 0); +}; + +ScalarFunctionNameContext.prototype.IF = function() { + return this.getToken(MySQLParser.IF, 0); +}; + +ScalarFunctionNameContext.prototype.INSERT = function() { + return this.getToken(MySQLParser.INSERT, 0); +}; + +ScalarFunctionNameContext.prototype.LOCALTIME = function() { + return this.getToken(MySQLParser.LOCALTIME, 0); +}; + +ScalarFunctionNameContext.prototype.LOCALTIMESTAMP = function() { + return this.getToken(MySQLParser.LOCALTIMESTAMP, 0); +}; + +ScalarFunctionNameContext.prototype.MID = function() { + return this.getToken(MySQLParser.MID, 0); +}; + +ScalarFunctionNameContext.prototype.NOW = function() { + return this.getToken(MySQLParser.NOW, 0); +}; + +ScalarFunctionNameContext.prototype.REPLACE = function() { + return this.getToken(MySQLParser.REPLACE, 0); +}; + +ScalarFunctionNameContext.prototype.SUBSTR = function() { + return this.getToken(MySQLParser.SUBSTR, 0); +}; + +ScalarFunctionNameContext.prototype.SUBSTRING = function() { + return this.getToken(MySQLParser.SUBSTRING, 0); +}; + +ScalarFunctionNameContext.prototype.SYSDATE = function() { + return this.getToken(MySQLParser.SYSDATE, 0); +}; + +ScalarFunctionNameContext.prototype.TRIM = function() { + return this.getToken(MySQLParser.TRIM, 0); +}; + +ScalarFunctionNameContext.prototype.UTC_DATE = function() { + return this.getToken(MySQLParser.UTC_DATE, 0); +}; + +ScalarFunctionNameContext.prototype.UTC_TIME = function() { + return this.getToken(MySQLParser.UTC_TIME, 0); +}; + +ScalarFunctionNameContext.prototype.UTC_TIMESTAMP = function() { + return this.getToken(MySQLParser.UTC_TIMESTAMP, 0); +}; + +ScalarFunctionNameContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterScalarFunctionName(this); + } +}; + +ScalarFunctionNameContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitScalarFunctionName(this); + } +}; + +ScalarFunctionNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitScalarFunctionName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ScalarFunctionNameContext = ScalarFunctionNameContext; + +MySQLParser.prototype.scalarFunctionName = function() { + + var localctx = new ScalarFunctionNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 592, MySQLParser.RULE_scalarFunctionName); + try { + this.state = 6141; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.DATABASE: + case MySQLParser.LEFT: + case MySQLParser.RIGHT: + case MySQLParser.DATE: + case MySQLParser.TIME: + case MySQLParser.TIMESTAMP: + case MySQLParser.YEAR: + case MySQLParser.JSON_VALID: + case MySQLParser.JSON_SCHEMA_VALID: + case MySQLParser.COUNT: + case MySQLParser.POSITION: + case MySQLParser.INVISIBLE: + case MySQLParser.VISIBLE: + case MySQLParser.QUARTER: + case MySQLParser.MONTH: + case MySQLParser.DAY: + case MySQLParser.HOUR: + case MySQLParser.MINUTE: + case MySQLParser.WEEK: + case MySQLParser.SECOND: + case MySQLParser.MICROSECOND: + case MySQLParser.SESSION_VARIABLES_ADMIN: + case MySQLParser.GEOMETRYCOLLECTION: + case MySQLParser.LINESTRING: + case MySQLParser.MULTILINESTRING: + case MySQLParser.MULTIPOINT: + case MySQLParser.MULTIPOLYGON: + case MySQLParser.POINT: + case MySQLParser.POLYGON: + case MySQLParser.ABS: + case MySQLParser.ACOS: + case MySQLParser.ADDDATE: + case MySQLParser.ADDTIME: + case MySQLParser.AES_DECRYPT: + case MySQLParser.AES_ENCRYPT: + case MySQLParser.AREA: + case MySQLParser.ASBINARY: + case MySQLParser.ASIN: + case MySQLParser.ASTEXT: + case MySQLParser.ASWKB: + case MySQLParser.ASWKT: + case MySQLParser.ASYMMETRIC_DECRYPT: + case MySQLParser.ASYMMETRIC_DERIVE: + case MySQLParser.ASYMMETRIC_ENCRYPT: + case MySQLParser.ASYMMETRIC_SIGN: + case MySQLParser.ASYMMETRIC_VERIFY: + case MySQLParser.ATAN: + case MySQLParser.ATAN2: + case MySQLParser.BENCHMARK: + case MySQLParser.BIN: + case MySQLParser.BIT_COUNT: + case MySQLParser.BIT_LENGTH: + case MySQLParser.BUFFER: + case MySQLParser.CEIL: + case MySQLParser.CEILING: + case MySQLParser.CENTROID: + case MySQLParser.CHARACTER_LENGTH: + case MySQLParser.CHARSET: + case MySQLParser.CHAR_LENGTH: + case MySQLParser.COERCIBILITY: + case MySQLParser.COLLATION: + case MySQLParser.COMPRESS: + case MySQLParser.CONCAT: + case MySQLParser.CONCAT_WS: + case MySQLParser.CONNECTION_ID: + case MySQLParser.CONV: + case MySQLParser.CONVERT_TZ: + case MySQLParser.COS: + case MySQLParser.COT: + case MySQLParser.CRC32: + case MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY: + case MySQLParser.CREATE_ASYMMETRIC_PUB_KEY: + case MySQLParser.CREATE_DH_PARAMETERS: + case MySQLParser.CREATE_DIGEST: + case MySQLParser.CROSSES: + case MySQLParser.DATEDIFF: + case MySQLParser.DATE_FORMAT: + case MySQLParser.DAYNAME: + case MySQLParser.DAYOFMONTH: + case MySQLParser.DAYOFWEEK: + case MySQLParser.DAYOFYEAR: + case MySQLParser.DECODE: + case MySQLParser.DEGREES: + case MySQLParser.DES_DECRYPT: + case MySQLParser.DES_ENCRYPT: + case MySQLParser.DIMENSION: + case MySQLParser.DISJOINT: + case MySQLParser.ELT: + case MySQLParser.ENCODE: + case MySQLParser.ENCRYPT: + case MySQLParser.ENDPOINT: + case MySQLParser.ENVELOPE: + case MySQLParser.EQUALS: + case MySQLParser.EXP: + case MySQLParser.EXPORT_SET: + case MySQLParser.EXTERIORRING: + case MySQLParser.EXTRACTVALUE: + case MySQLParser.FIELD: + case MySQLParser.FIND_IN_SET: + case MySQLParser.FLOOR: + case MySQLParser.FORMAT: + case MySQLParser.FOUND_ROWS: + case MySQLParser.FROM_BASE64: + case MySQLParser.FROM_DAYS: + case MySQLParser.FROM_UNIXTIME: + case MySQLParser.GEOMCOLLFROMTEXT: + case MySQLParser.GEOMCOLLFROMWKB: + case MySQLParser.GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.GEOMETRYFROMTEXT: + case MySQLParser.GEOMETRYFROMWKB: + case MySQLParser.GEOMETRYN: + case MySQLParser.GEOMETRYTYPE: + case MySQLParser.GEOMFROMTEXT: + case MySQLParser.GEOMFROMWKB: + case MySQLParser.GET_FORMAT: + case MySQLParser.GET_LOCK: + case MySQLParser.GLENGTH: + case MySQLParser.GREATEST: + case MySQLParser.GTID_SUBSET: + case MySQLParser.GTID_SUBTRACT: + case MySQLParser.HEX: + case MySQLParser.IFNULL: + case MySQLParser.INET6_ATON: + case MySQLParser.INET6_NTOA: + case MySQLParser.INET_ATON: + case MySQLParser.INET_NTOA: + case MySQLParser.INSTR: + case MySQLParser.INTERIORRINGN: + case MySQLParser.INTERSECTS: + case MySQLParser.ISCLOSED: + case MySQLParser.ISEMPTY: + case MySQLParser.ISNULL: + case MySQLParser.ISSIMPLE: + case MySQLParser.IS_FREE_LOCK: + case MySQLParser.IS_IPV4: + case MySQLParser.IS_IPV4_COMPAT: + case MySQLParser.IS_IPV4_MAPPED: + case MySQLParser.IS_IPV6: + case MySQLParser.IS_USED_LOCK: + case MySQLParser.LAST_INSERT_ID: + case MySQLParser.LCASE: + case MySQLParser.LEAST: + case MySQLParser.LENGTH: + case MySQLParser.LINEFROMTEXT: + case MySQLParser.LINEFROMWKB: + case MySQLParser.LINESTRINGFROMTEXT: + case MySQLParser.LINESTRINGFROMWKB: + case MySQLParser.LN: + case MySQLParser.LOAD_FILE: + case MySQLParser.LOCATE: + case MySQLParser.LOG: + case MySQLParser.LOG10: + case MySQLParser.LOG2: + case MySQLParser.LOWER: + case MySQLParser.LPAD: + case MySQLParser.LTRIM: + case MySQLParser.MAKEDATE: + case MySQLParser.MAKETIME: + case MySQLParser.MAKE_SET: + case MySQLParser.MASTER_POS_WAIT: + case MySQLParser.MBRCONTAINS: + case MySQLParser.MBRDISJOINT: + case MySQLParser.MBREQUAL: + case MySQLParser.MBRINTERSECTS: + case MySQLParser.MBROVERLAPS: + case MySQLParser.MBRTOUCHES: + case MySQLParser.MBRWITHIN: + case MySQLParser.MD5: + case MySQLParser.MLINEFROMTEXT: + case MySQLParser.MLINEFROMWKB: + case MySQLParser.MONTHNAME: + case MySQLParser.MPOINTFROMTEXT: + case MySQLParser.MPOINTFROMWKB: + case MySQLParser.MPOLYFROMTEXT: + case MySQLParser.MPOLYFROMWKB: + case MySQLParser.MULTILINESTRINGFROMTEXT: + case MySQLParser.MULTILINESTRINGFROMWKB: + case MySQLParser.MULTIPOINTFROMTEXT: + case MySQLParser.MULTIPOINTFROMWKB: + case MySQLParser.MULTIPOLYGONFROMTEXT: + case MySQLParser.MULTIPOLYGONFROMWKB: + case MySQLParser.NAME_CONST: + case MySQLParser.NULLIF: + case MySQLParser.NUMGEOMETRIES: + case MySQLParser.NUMINTERIORRINGS: + case MySQLParser.NUMPOINTS: + case MySQLParser.OCT: + case MySQLParser.OCTET_LENGTH: + case MySQLParser.ORD: + case MySQLParser.OVERLAPS: + case MySQLParser.PERIOD_ADD: + case MySQLParser.PERIOD_DIFF: + case MySQLParser.PI: + case MySQLParser.POINTFROMTEXT: + case MySQLParser.POINTFROMWKB: + case MySQLParser.POINTN: + case MySQLParser.POLYFROMTEXT: + case MySQLParser.POLYFROMWKB: + case MySQLParser.POLYGONFROMTEXT: + case MySQLParser.POLYGONFROMWKB: + case MySQLParser.POW: + case MySQLParser.POWER: + case MySQLParser.QUOTE: + case MySQLParser.RADIANS: + case MySQLParser.RAND: + case MySQLParser.RANDOM_BYTES: + case MySQLParser.RELEASE_LOCK: + case MySQLParser.REVERSE: + case MySQLParser.ROUND: + case MySQLParser.ROW_COUNT: + case MySQLParser.RPAD: + case MySQLParser.RTRIM: + case MySQLParser.SEC_TO_TIME: + case MySQLParser.SESSION_USER: + case MySQLParser.SHA: + case MySQLParser.SHA1: + case MySQLParser.SHA2: + case MySQLParser.SIGN: + case MySQLParser.SIN: + case MySQLParser.SLEEP: + case MySQLParser.SOUNDEX: + case MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS: + case MySQLParser.SQRT: + case MySQLParser.SRID: + case MySQLParser.STARTPOINT: + case MySQLParser.STRCMP: + case MySQLParser.STR_TO_DATE: + case MySQLParser.ST_AREA: + case MySQLParser.ST_ASBINARY: + case MySQLParser.ST_ASTEXT: + case MySQLParser.ST_ASWKB: + case MySQLParser.ST_ASWKT: + case MySQLParser.ST_BUFFER: + case MySQLParser.ST_CENTROID: + case MySQLParser.ST_CONTAINS: + case MySQLParser.ST_CROSSES: + case MySQLParser.ST_DIFFERENCE: + case MySQLParser.ST_DIMENSION: + case MySQLParser.ST_DISJOINT: + case MySQLParser.ST_DISTANCE: + case MySQLParser.ST_ENDPOINT: + case MySQLParser.ST_ENVELOPE: + case MySQLParser.ST_EQUALS: + case MySQLParser.ST_EXTERIORRING: + case MySQLParser.ST_GEOMCOLLFROMTEXT: + case MySQLParser.ST_GEOMCOLLFROMTXT: + case MySQLParser.ST_GEOMCOLLFROMWKB: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT: + case MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB: + case MySQLParser.ST_GEOMETRYFROMTEXT: + case MySQLParser.ST_GEOMETRYFROMWKB: + case MySQLParser.ST_GEOMETRYN: + case MySQLParser.ST_GEOMETRYTYPE: + case MySQLParser.ST_GEOMFROMTEXT: + case MySQLParser.ST_GEOMFROMWKB: + case MySQLParser.ST_INTERIORRINGN: + case MySQLParser.ST_INTERSECTION: + case MySQLParser.ST_INTERSECTS: + case MySQLParser.ST_ISCLOSED: + case MySQLParser.ST_ISEMPTY: + case MySQLParser.ST_ISSIMPLE: + case MySQLParser.ST_LINEFROMTEXT: + case MySQLParser.ST_LINEFROMWKB: + case MySQLParser.ST_LINESTRINGFROMTEXT: + case MySQLParser.ST_LINESTRINGFROMWKB: + case MySQLParser.ST_NUMGEOMETRIES: + case MySQLParser.ST_NUMINTERIORRING: + case MySQLParser.ST_NUMINTERIORRINGS: + case MySQLParser.ST_NUMPOINTS: + case MySQLParser.ST_OVERLAPS: + case MySQLParser.ST_POINTFROMTEXT: + case MySQLParser.ST_POINTFROMWKB: + case MySQLParser.ST_POINTN: + case MySQLParser.ST_POLYFROMTEXT: + case MySQLParser.ST_POLYFROMWKB: + case MySQLParser.ST_POLYGONFROMTEXT: + case MySQLParser.ST_POLYGONFROMWKB: + case MySQLParser.ST_SRID: + case MySQLParser.ST_STARTPOINT: + case MySQLParser.ST_SYMDIFFERENCE: + case MySQLParser.ST_TOUCHES: + case MySQLParser.ST_UNION: + case MySQLParser.ST_WITHIN: + case MySQLParser.ST_X: + case MySQLParser.ST_Y: + case MySQLParser.SUBDATE: + case MySQLParser.SUBSTRING_INDEX: + case MySQLParser.SUBTIME: + case MySQLParser.SYSTEM_USER: + case MySQLParser.TAN: + case MySQLParser.TIMEDIFF: + case MySQLParser.TIMESTAMPADD: + case MySQLParser.TIMESTAMPDIFF: + case MySQLParser.TIME_FORMAT: + case MySQLParser.TIME_TO_SEC: + case MySQLParser.TOUCHES: + case MySQLParser.TO_BASE64: + case MySQLParser.TO_DAYS: + case MySQLParser.TO_SECONDS: + case MySQLParser.UCASE: + case MySQLParser.UNCOMPRESS: + case MySQLParser.UNCOMPRESSED_LENGTH: + case MySQLParser.UNHEX: + case MySQLParser.UNIX_TIMESTAMP: + case MySQLParser.UPDATEXML: + case MySQLParser.UPPER: + case MySQLParser.UUID: + case MySQLParser.UUID_SHORT: + case MySQLParser.VALIDATE_PASSWORD_STRENGTH: + case MySQLParser.VERSION: + case MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: + case MySQLParser.WEEKDAY: + case MySQLParser.WEEKOFYEAR: + case MySQLParser.WEIGHT_STRING: + case MySQLParser.WITHIN: + case MySQLParser.YEARWEEK: + case MySQLParser.Y_FUNCTION: + case MySQLParser.X_FUNCTION: + this.enterOuterAlt(localctx, 1); + this.state = 6118; + this.functionNameBase(); + break; + case MySQLParser.ASCII: + this.enterOuterAlt(localctx, 2); + this.state = 6119; + this.match(MySQLParser.ASCII); + break; + case MySQLParser.CURDATE: + this.enterOuterAlt(localctx, 3); + this.state = 6120; + this.match(MySQLParser.CURDATE); + break; + case MySQLParser.CURRENT_DATE: + this.enterOuterAlt(localctx, 4); + this.state = 6121; + this.match(MySQLParser.CURRENT_DATE); + break; + case MySQLParser.CURRENT_TIME: + this.enterOuterAlt(localctx, 5); + this.state = 6122; + this.match(MySQLParser.CURRENT_TIME); + break; + case MySQLParser.CURRENT_TIMESTAMP: + this.enterOuterAlt(localctx, 6); + this.state = 6123; + this.match(MySQLParser.CURRENT_TIMESTAMP); + break; + case MySQLParser.CURTIME: + this.enterOuterAlt(localctx, 7); + this.state = 6124; + this.match(MySQLParser.CURTIME); + break; + case MySQLParser.DATE_ADD: + this.enterOuterAlt(localctx, 8); + this.state = 6125; + this.match(MySQLParser.DATE_ADD); + break; + case MySQLParser.DATE_SUB: + this.enterOuterAlt(localctx, 9); + this.state = 6126; + this.match(MySQLParser.DATE_SUB); + break; + case MySQLParser.IF: + this.enterOuterAlt(localctx, 10); + this.state = 6127; + this.match(MySQLParser.IF); + break; + case MySQLParser.INSERT: + this.enterOuterAlt(localctx, 11); + this.state = 6128; + this.match(MySQLParser.INSERT); + break; + case MySQLParser.LOCALTIME: + this.enterOuterAlt(localctx, 12); + this.state = 6129; + this.match(MySQLParser.LOCALTIME); + break; + case MySQLParser.LOCALTIMESTAMP: + this.enterOuterAlt(localctx, 13); + this.state = 6130; + this.match(MySQLParser.LOCALTIMESTAMP); + break; + case MySQLParser.MID: + this.enterOuterAlt(localctx, 14); + this.state = 6131; + this.match(MySQLParser.MID); + break; + case MySQLParser.NOW: + this.enterOuterAlt(localctx, 15); + this.state = 6132; + this.match(MySQLParser.NOW); + break; + case MySQLParser.REPLACE: + this.enterOuterAlt(localctx, 16); + this.state = 6133; + this.match(MySQLParser.REPLACE); + break; + case MySQLParser.SUBSTR: + this.enterOuterAlt(localctx, 17); + this.state = 6134; + this.match(MySQLParser.SUBSTR); + break; + case MySQLParser.SUBSTRING: + this.enterOuterAlt(localctx, 18); + this.state = 6135; + this.match(MySQLParser.SUBSTRING); + break; + case MySQLParser.SYSDATE: + this.enterOuterAlt(localctx, 19); + this.state = 6136; + this.match(MySQLParser.SYSDATE); + break; + case MySQLParser.TRIM: + this.enterOuterAlt(localctx, 20); + this.state = 6137; + this.match(MySQLParser.TRIM); + break; + case MySQLParser.UTC_DATE: + this.enterOuterAlt(localctx, 21); + this.state = 6138; + this.match(MySQLParser.UTC_DATE); + break; + case MySQLParser.UTC_TIME: + this.enterOuterAlt(localctx, 22); + this.state = 6139; + this.match(MySQLParser.UTC_TIME); + break; + case MySQLParser.UTC_TIMESTAMP: + this.enterOuterAlt(localctx, 23); + this.state = 6140; + this.match(MySQLParser.UTC_TIMESTAMP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PasswordFunctionClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_passwordFunctionClause; + this.functionName = null; // Token + return this; +} + +PasswordFunctionClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PasswordFunctionClauseContext.prototype.constructor = PasswordFunctionClauseContext; + +PasswordFunctionClauseContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +PasswordFunctionClauseContext.prototype.functionArg = function() { + return this.getTypedRuleContext(FunctionArgContext,0); +}; + +PasswordFunctionClauseContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +PasswordFunctionClauseContext.prototype.PASSWORD = function() { + return this.getToken(MySQLParser.PASSWORD, 0); +}; + +PasswordFunctionClauseContext.prototype.OLD_PASSWORD = function() { + return this.getToken(MySQLParser.OLD_PASSWORD, 0); +}; + +PasswordFunctionClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPasswordFunctionClause(this); + } +}; + +PasswordFunctionClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPasswordFunctionClause(this); + } +}; + +PasswordFunctionClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPasswordFunctionClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PasswordFunctionClauseContext = PasswordFunctionClauseContext; + +MySQLParser.prototype.passwordFunctionClause = function() { + + var localctx = new PasswordFunctionClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 594, MySQLParser.RULE_passwordFunctionClause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6143; + localctx.functionName = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.OLD_PASSWORD || _la===MySQLParser.PASSWORD)) { + localctx.functionName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6144; + this.match(MySQLParser.LR_BRACKET); + this.state = 6145; + this.functionArg(); + this.state = 6146; + this.match(MySQLParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FunctionArgsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_functionArgs; + return this; +} + +FunctionArgsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FunctionArgsContext.prototype.constructor = FunctionArgsContext; + +FunctionArgsContext.prototype.constant = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConstantContext); + } else { + return this.getTypedRuleContext(ConstantContext,i); + } +}; + +FunctionArgsContext.prototype.fullColumnName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FullColumnNameContext); + } else { + return this.getTypedRuleContext(FullColumnNameContext,i); + } +}; + +FunctionArgsContext.prototype.functionCall = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(FunctionCallContext); + } else { + return this.getTypedRuleContext(FunctionCallContext,i); + } +}; + +FunctionArgsContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +FunctionArgsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + + +FunctionArgsContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFunctionArgs(this); + } +}; + +FunctionArgsContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFunctionArgs(this); + } +}; + +FunctionArgsContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFunctionArgs(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FunctionArgsContext = FunctionArgsContext; + +MySQLParser.prototype.functionArgs = function() { + + var localctx = new FunctionArgsContext(this, this._ctx, this.state); + this.enterRule(localctx, 596, MySQLParser.RULE_functionArgs); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6152; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,904,this._ctx); + switch(la_) { + case 1: + this.state = 6148; + this.constant(); + break; + + case 2: + this.state = 6149; + this.fullColumnName(); + break; + + case 3: + this.state = 6150; + this.functionCall(); + break; + + case 4: + this.state = 6151; + this.expression(0); + break; + + } + this.state = 6163; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 6154; + this.match(MySQLParser.COMMA); + this.state = 6159; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,905,this._ctx); + switch(la_) { + case 1: + this.state = 6155; + this.constant(); + break; + + case 2: + this.state = 6156; + this.fullColumnName(); + break; + + case 3: + this.state = 6157; + this.functionCall(); + break; + + case 4: + this.state = 6158; + this.expression(0); + break; + + } + this.state = 6165; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FunctionArgContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_functionArg; + return this; +} + +FunctionArgContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FunctionArgContext.prototype.constructor = FunctionArgContext; + +FunctionArgContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +FunctionArgContext.prototype.fullColumnName = function() { + return this.getTypedRuleContext(FullColumnNameContext,0); +}; + +FunctionArgContext.prototype.functionCall = function() { + return this.getTypedRuleContext(FunctionCallContext,0); +}; + +FunctionArgContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +FunctionArgContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFunctionArg(this); + } +}; + +FunctionArgContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFunctionArg(this); + } +}; + +FunctionArgContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFunctionArg(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FunctionArgContext = FunctionArgContext; + +MySQLParser.prototype.functionArg = function() { + + var localctx = new FunctionArgContext(this, this._ctx, this.state); + this.enterRule(localctx, 598, MySQLParser.RULE_functionArg); + try { + this.state = 6170; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,907,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6166; + this.constant(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6167; + this.fullColumnName(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 6168; + this.functionCall(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 6169; + this.expression(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_expression; + return this; +} + +ExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExpressionContext.prototype.constructor = ExpressionContext; + + + +ExpressionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + +function IsExpressionContext(parser, ctx) { + ExpressionContext.call(this, parser); + this.testValue = null; // Token; + ExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IsExpressionContext.prototype = Object.create(ExpressionContext.prototype); +IsExpressionContext.prototype.constructor = IsExpressionContext; + +MySQLParser.IsExpressionContext = IsExpressionContext; + +IsExpressionContext.prototype.predicate = function() { + return this.getTypedRuleContext(PredicateContext,0); +}; + +IsExpressionContext.prototype.IS = function() { + return this.getToken(MySQLParser.IS, 0); +}; + +IsExpressionContext.prototype.TRUE = function() { + return this.getToken(MySQLParser.TRUE, 0); +}; + +IsExpressionContext.prototype.FALSE = function() { + return this.getToken(MySQLParser.FALSE, 0); +}; + +IsExpressionContext.prototype.UNKNOWN = function() { + return this.getToken(MySQLParser.UNKNOWN, 0); +}; + +IsExpressionContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; +IsExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIsExpression(this); + } +}; + +IsExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIsExpression(this); + } +}; + +IsExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIsExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NotExpressionContext(parser, ctx) { + ExpressionContext.call(this, parser); + this.notOperator = null; // Token; + ExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NotExpressionContext.prototype = Object.create(ExpressionContext.prototype); +NotExpressionContext.prototype.constructor = NotExpressionContext; + +MySQLParser.NotExpressionContext = NotExpressionContext; + +NotExpressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +NotExpressionContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +NotExpressionContext.prototype.EXCLAMATION_SYMBOL = function() { + return this.getToken(MySQLParser.EXCLAMATION_SYMBOL, 0); +}; +NotExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterNotExpression(this); + } +}; + +NotExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitNotExpression(this); + } +}; + +NotExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitNotExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function LogicalExpressionContext(parser, ctx) { + ExpressionContext.call(this, parser); + ExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LogicalExpressionContext.prototype = Object.create(ExpressionContext.prototype); +LogicalExpressionContext.prototype.constructor = LogicalExpressionContext; + +MySQLParser.LogicalExpressionContext = LogicalExpressionContext; + +LogicalExpressionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +LogicalExpressionContext.prototype.logicalOperator = function() { + return this.getTypedRuleContext(LogicalOperatorContext,0); +}; +LogicalExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLogicalExpression(this); + } +}; + +LogicalExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLogicalExpression(this); + } +}; + +LogicalExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLogicalExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PredicateExpressionContext(parser, ctx) { + ExpressionContext.call(this, parser); + ExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PredicateExpressionContext.prototype = Object.create(ExpressionContext.prototype); +PredicateExpressionContext.prototype.constructor = PredicateExpressionContext; + +MySQLParser.PredicateExpressionContext = PredicateExpressionContext; + +PredicateExpressionContext.prototype.predicate = function() { + return this.getTypedRuleContext(PredicateContext,0); +}; +PredicateExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPredicateExpression(this); + } +}; + +PredicateExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPredicateExpression(this); + } +}; + +PredicateExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPredicateExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.prototype.expression = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new ExpressionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 600; + this.enterRecursionRule(localctx, 600, MySQLParser.RULE_expression, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6183; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,909,this._ctx); + switch(la_) { + case 1: + localctx = new NotExpressionContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + + this.state = 6173; + localctx.notOperator = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.NOT || _la===MySQLParser.EXCLAMATION_SYMBOL)) { + localctx.notOperator = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6174; + this.expression(4); + break; + + case 2: + localctx = new IsExpressionContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6175; + this.predicate(0); + this.state = 6176; + this.match(MySQLParser.IS); + this.state = 6178; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 6177; + this.match(MySQLParser.NOT); + } + + this.state = 6180; + localctx.testValue = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.FALSE || _la===MySQLParser.TRUE || _la===MySQLParser.UNKNOWN)) { + localctx.testValue = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + localctx = new PredicateExpressionContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6182; + this.predicate(0); + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 6191; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,910,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new LogicalExpressionContext(this, new ExpressionContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_expression); + this.state = 6185; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 6186; + this.logicalOperator(); + this.state = 6187; + this.expression(4); + } + this.state = 6193; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,910,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function PredicateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_predicate; + return this; +} + +PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PredicateContext.prototype.constructor = PredicateContext; + + + +PredicateContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + +function SoundsLikePredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SoundsLikePredicateContext.prototype = Object.create(PredicateContext.prototype); +SoundsLikePredicateContext.prototype.constructor = SoundsLikePredicateContext; + +MySQLParser.SoundsLikePredicateContext = SoundsLikePredicateContext; + +SoundsLikePredicateContext.prototype.predicate = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PredicateContext); + } else { + return this.getTypedRuleContext(PredicateContext,i); + } +}; + +SoundsLikePredicateContext.prototype.SOUNDS = function() { + return this.getToken(MySQLParser.SOUNDS, 0); +}; + +SoundsLikePredicateContext.prototype.LIKE = function() { + return this.getToken(MySQLParser.LIKE, 0); +}; +SoundsLikePredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSoundsLikePredicate(this); + } +}; + +SoundsLikePredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSoundsLikePredicate(this); + } +}; + +SoundsLikePredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSoundsLikePredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ExpressionAtomPredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ExpressionAtomPredicateContext.prototype = Object.create(PredicateContext.prototype); +ExpressionAtomPredicateContext.prototype.constructor = ExpressionAtomPredicateContext; + +MySQLParser.ExpressionAtomPredicateContext = ExpressionAtomPredicateContext; + +ExpressionAtomPredicateContext.prototype.expressionAtom = function() { + return this.getTypedRuleContext(ExpressionAtomContext,0); +}; + +ExpressionAtomPredicateContext.prototype.LOCAL_ID = function() { + return this.getToken(MySQLParser.LOCAL_ID, 0); +}; + +ExpressionAtomPredicateContext.prototype.VAR_ASSIGN = function() { + return this.getToken(MySQLParser.VAR_ASSIGN, 0); +}; +ExpressionAtomPredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterExpressionAtomPredicate(this); + } +}; + +ExpressionAtomPredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitExpressionAtomPredicate(this); + } +}; + +ExpressionAtomPredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitExpressionAtomPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function InPredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +InPredicateContext.prototype = Object.create(PredicateContext.prototype); +InPredicateContext.prototype.constructor = InPredicateContext; + +MySQLParser.InPredicateContext = InPredicateContext; + +InPredicateContext.prototype.predicate = function() { + return this.getTypedRuleContext(PredicateContext,0); +}; + +InPredicateContext.prototype.IN = function() { + return this.getToken(MySQLParser.IN, 0); +}; + +InPredicateContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +InPredicateContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +InPredicateContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +InPredicateContext.prototype.expressions = function() { + return this.getTypedRuleContext(ExpressionsContext,0); +}; + +InPredicateContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; +InPredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterInPredicate(this); + } +}; + +InPredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitInPredicate(this); + } +}; + +InPredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitInPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SubqueryComparasionPredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + this.quantifier = null; // Token; + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SubqueryComparasionPredicateContext.prototype = Object.create(PredicateContext.prototype); +SubqueryComparasionPredicateContext.prototype.constructor = SubqueryComparasionPredicateContext; + +MySQLParser.SubqueryComparasionPredicateContext = SubqueryComparasionPredicateContext; + +SubqueryComparasionPredicateContext.prototype.predicate = function() { + return this.getTypedRuleContext(PredicateContext,0); +}; + +SubqueryComparasionPredicateContext.prototype.comparisonOperator = function() { + return this.getTypedRuleContext(ComparisonOperatorContext,0); +}; + +SubqueryComparasionPredicateContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +SubqueryComparasionPredicateContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +SubqueryComparasionPredicateContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +SubqueryComparasionPredicateContext.prototype.ALL = function() { + return this.getToken(MySQLParser.ALL, 0); +}; + +SubqueryComparasionPredicateContext.prototype.ANY = function() { + return this.getToken(MySQLParser.ANY, 0); +}; + +SubqueryComparasionPredicateContext.prototype.SOME = function() { + return this.getToken(MySQLParser.SOME, 0); +}; +SubqueryComparasionPredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSubqueryComparasionPredicate(this); + } +}; + +SubqueryComparasionPredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSubqueryComparasionPredicate(this); + } +}; + +SubqueryComparasionPredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSubqueryComparasionPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function BetweenPredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +BetweenPredicateContext.prototype = Object.create(PredicateContext.prototype); +BetweenPredicateContext.prototype.constructor = BetweenPredicateContext; + +MySQLParser.BetweenPredicateContext = BetweenPredicateContext; + +BetweenPredicateContext.prototype.predicate = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PredicateContext); + } else { + return this.getTypedRuleContext(PredicateContext,i); + } +}; + +BetweenPredicateContext.prototype.BETWEEN = function() { + return this.getToken(MySQLParser.BETWEEN, 0); +}; + +BetweenPredicateContext.prototype.AND = function() { + return this.getToken(MySQLParser.AND, 0); +}; + +BetweenPredicateContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; +BetweenPredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBetweenPredicate(this); + } +}; + +BetweenPredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBetweenPredicate(this); + } +}; + +BetweenPredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBetweenPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function BinaryComparasionPredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + this.left = null; // PredicateContext; + this.right = null; // PredicateContext; + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +BinaryComparasionPredicateContext.prototype = Object.create(PredicateContext.prototype); +BinaryComparasionPredicateContext.prototype.constructor = BinaryComparasionPredicateContext; + +MySQLParser.BinaryComparasionPredicateContext = BinaryComparasionPredicateContext; + +BinaryComparasionPredicateContext.prototype.comparisonOperator = function() { + return this.getTypedRuleContext(ComparisonOperatorContext,0); +}; + +BinaryComparasionPredicateContext.prototype.predicate = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PredicateContext); + } else { + return this.getTypedRuleContext(PredicateContext,i); + } +}; +BinaryComparasionPredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBinaryComparasionPredicate(this); + } +}; + +BinaryComparasionPredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBinaryComparasionPredicate(this); + } +}; + +BinaryComparasionPredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBinaryComparasionPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IsNullPredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IsNullPredicateContext.prototype = Object.create(PredicateContext.prototype); +IsNullPredicateContext.prototype.constructor = IsNullPredicateContext; + +MySQLParser.IsNullPredicateContext = IsNullPredicateContext; + +IsNullPredicateContext.prototype.predicate = function() { + return this.getTypedRuleContext(PredicateContext,0); +}; + +IsNullPredicateContext.prototype.IS = function() { + return this.getToken(MySQLParser.IS, 0); +}; + +IsNullPredicateContext.prototype.nullNotnull = function() { + return this.getTypedRuleContext(NullNotnullContext,0); +}; +IsNullPredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIsNullPredicate(this); + } +}; + +IsNullPredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIsNullPredicate(this); + } +}; + +IsNullPredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIsNullPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function LikePredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LikePredicateContext.prototype = Object.create(PredicateContext.prototype); +LikePredicateContext.prototype.constructor = LikePredicateContext; + +MySQLParser.LikePredicateContext = LikePredicateContext; + +LikePredicateContext.prototype.predicate = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PredicateContext); + } else { + return this.getTypedRuleContext(PredicateContext,i); + } +}; + +LikePredicateContext.prototype.LIKE = function() { + return this.getToken(MySQLParser.LIKE, 0); +}; + +LikePredicateContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +LikePredicateContext.prototype.ESCAPE = function() { + return this.getToken(MySQLParser.ESCAPE, 0); +}; + +LikePredicateContext.prototype.STRING_LITERAL = function() { + return this.getToken(MySQLParser.STRING_LITERAL, 0); +}; +LikePredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLikePredicate(this); + } +}; + +LikePredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLikePredicate(this); + } +}; + +LikePredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLikePredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RegexpPredicateContext(parser, ctx) { + PredicateContext.call(this, parser); + this.regex = null; // Token; + PredicateContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RegexpPredicateContext.prototype = Object.create(PredicateContext.prototype); +RegexpPredicateContext.prototype.constructor = RegexpPredicateContext; + +MySQLParser.RegexpPredicateContext = RegexpPredicateContext; + +RegexpPredicateContext.prototype.predicate = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(PredicateContext); + } else { + return this.getTypedRuleContext(PredicateContext,i); + } +}; + +RegexpPredicateContext.prototype.REGEXP = function() { + return this.getToken(MySQLParser.REGEXP, 0); +}; + +RegexpPredicateContext.prototype.RLIKE = function() { + return this.getToken(MySQLParser.RLIKE, 0); +}; + +RegexpPredicateContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; +RegexpPredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterRegexpPredicate(this); + } +}; + +RegexpPredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitRegexpPredicate(this); + } +}; + +RegexpPredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitRegexpPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.prototype.predicate = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new PredicateContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 602; + this.enterRecursionRule(localctx, 602, MySQLParser.RULE_predicate, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + localctx = new ExpressionAtomPredicateContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + + this.state = 6197; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,911,this._ctx); + if(la_===1) { + this.state = 6195; + this.match(MySQLParser.LOCAL_ID); + this.state = 6196; + this.match(MySQLParser.VAR_ASSIGN); + + } + this.state = 6199; + this.expressionAtom(0); + this._ctx.stop = this._input.LT(-1); + this.state = 6258; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,919,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 6256; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,918,this._ctx); + switch(la_) { + case 1: + localctx = new BinaryComparasionPredicateContext(this, new PredicateContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_predicate); + this.state = 6201; + if (!( this.precpred(this._ctx, 7))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 7)"); + } + this.state = 6202; + this.comparisonOperator(); + this.state = 6203; + localctx.right = this.predicate(8); + break; + + case 2: + localctx = new BetweenPredicateContext(this, new PredicateContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_predicate); + this.state = 6205; + if (!( this.precpred(this._ctx, 5))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); + } + this.state = 6207; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 6206; + this.match(MySQLParser.NOT); + } + + this.state = 6209; + this.match(MySQLParser.BETWEEN); + this.state = 6210; + this.predicate(0); + this.state = 6211; + this.match(MySQLParser.AND); + this.state = 6212; + this.predicate(6); + break; + + case 3: + localctx = new SoundsLikePredicateContext(this, new PredicateContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_predicate); + this.state = 6214; + if (!( this.precpred(this._ctx, 4))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); + } + this.state = 6215; + this.match(MySQLParser.SOUNDS); + this.state = 6216; + this.match(MySQLParser.LIKE); + this.state = 6217; + this.predicate(5); + break; + + case 4: + localctx = new RegexpPredicateContext(this, new PredicateContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_predicate); + this.state = 6218; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 6220; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 6219; + this.match(MySQLParser.NOT); + } + + this.state = 6222; + localctx.regex = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.REGEXP || _la===MySQLParser.RLIKE)) { + localctx.regex = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6223; + this.predicate(3); + break; + + case 5: + localctx = new InPredicateContext(this, new PredicateContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_predicate); + this.state = 6224; + if (!( this.precpred(this._ctx, 9))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 9)"); + } + this.state = 6226; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 6225; + this.match(MySQLParser.NOT); + } + + this.state = 6228; + this.match(MySQLParser.IN); + this.state = 6229; + this.match(MySQLParser.LR_BRACKET); + this.state = 6232; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,915,this._ctx); + switch(la_) { + case 1: + this.state = 6230; + this.selectStatement(); + break; + + case 2: + this.state = 6231; + this.expressions(); + break; + + } + this.state = 6234; + this.match(MySQLParser.RR_BRACKET); + break; + + case 6: + localctx = new IsNullPredicateContext(this, new PredicateContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_predicate); + this.state = 6236; + if (!( this.precpred(this._ctx, 8))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 8)"); + } + this.state = 6237; + this.match(MySQLParser.IS); + this.state = 6238; + this.nullNotnull(); + break; + + case 7: + localctx = new SubqueryComparasionPredicateContext(this, new PredicateContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_predicate); + this.state = 6239; + if (!( this.precpred(this._ctx, 6))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 6)"); + } + this.state = 6240; + this.comparisonOperator(); + this.state = 6241; + localctx.quantifier = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===MySQLParser.ALL || _la===MySQLParser.ANY || _la===MySQLParser.SOME)) { + localctx.quantifier = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6242; + this.match(MySQLParser.LR_BRACKET); + this.state = 6243; + this.selectStatement(); + this.state = 6244; + this.match(MySQLParser.RR_BRACKET); + break; + + case 8: + localctx = new LikePredicateContext(this, new PredicateContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_predicate); + this.state = 6246; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 6248; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===MySQLParser.NOT) { + this.state = 6247; + this.match(MySQLParser.NOT); + } + + this.state = 6250; + this.match(MySQLParser.LIKE); + this.state = 6251; + this.predicate(0); + this.state = 6254; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,917,this._ctx); + if(la_===1) { + this.state = 6252; + this.match(MySQLParser.ESCAPE); + this.state = 6253; + this.match(MySQLParser.STRING_LITERAL); + + } + break; + + } + } + this.state = 6260; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,919,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function ExpressionAtomContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_expressionAtom; + return this; +} + +ExpressionAtomContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExpressionAtomContext.prototype.constructor = ExpressionAtomContext; + + + +ExpressionAtomContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + +function UnaryExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +UnaryExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +UnaryExpressionAtomContext.prototype.constructor = UnaryExpressionAtomContext; + +MySQLParser.UnaryExpressionAtomContext = UnaryExpressionAtomContext; + +UnaryExpressionAtomContext.prototype.unaryOperator = function() { + return this.getTypedRuleContext(UnaryOperatorContext,0); +}; + +UnaryExpressionAtomContext.prototype.expressionAtom = function() { + return this.getTypedRuleContext(ExpressionAtomContext,0); +}; +UnaryExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUnaryExpressionAtom(this); + } +}; + +UnaryExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUnaryExpressionAtom(this); + } +}; + +UnaryExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUnaryExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CollateExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CollateExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +CollateExpressionAtomContext.prototype.constructor = CollateExpressionAtomContext; + +MySQLParser.CollateExpressionAtomContext = CollateExpressionAtomContext; + +CollateExpressionAtomContext.prototype.expressionAtom = function() { + return this.getTypedRuleContext(ExpressionAtomContext,0); +}; + +CollateExpressionAtomContext.prototype.COLLATE = function() { + return this.getToken(MySQLParser.COLLATE, 0); +}; + +CollateExpressionAtomContext.prototype.collationName = function() { + return this.getTypedRuleContext(CollationNameContext,0); +}; +CollateExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCollateExpressionAtom(this); + } +}; + +CollateExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCollateExpressionAtom(this); + } +}; + +CollateExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCollateExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SubqueryExpessionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SubqueryExpessionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +SubqueryExpessionAtomContext.prototype.constructor = SubqueryExpessionAtomContext; + +MySQLParser.SubqueryExpessionAtomContext = SubqueryExpessionAtomContext; + +SubqueryExpessionAtomContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +SubqueryExpessionAtomContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +SubqueryExpessionAtomContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +SubqueryExpessionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterSubqueryExpessionAtom(this); + } +}; + +SubqueryExpessionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitSubqueryExpessionAtom(this); + } +}; + +SubqueryExpessionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitSubqueryExpessionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MysqlVariableExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MysqlVariableExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +MysqlVariableExpressionAtomContext.prototype.constructor = MysqlVariableExpressionAtomContext; + +MySQLParser.MysqlVariableExpressionAtomContext = MysqlVariableExpressionAtomContext; + +MysqlVariableExpressionAtomContext.prototype.mysqlVariable = function() { + return this.getTypedRuleContext(MysqlVariableContext,0); +}; +MysqlVariableExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMysqlVariableExpressionAtom(this); + } +}; + +MysqlVariableExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMysqlVariableExpressionAtom(this); + } +}; + +MysqlVariableExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMysqlVariableExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NestedExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NestedExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +NestedExpressionAtomContext.prototype.constructor = NestedExpressionAtomContext; + +MySQLParser.NestedExpressionAtomContext = NestedExpressionAtomContext; + +NestedExpressionAtomContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +NestedExpressionAtomContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +NestedExpressionAtomContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +NestedExpressionAtomContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +NestedExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterNestedExpressionAtom(this); + } +}; + +NestedExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitNestedExpressionAtom(this); + } +}; + +NestedExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitNestedExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NestedRowExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NestedRowExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +NestedRowExpressionAtomContext.prototype.constructor = NestedRowExpressionAtomContext; + +MySQLParser.NestedRowExpressionAtomContext = NestedRowExpressionAtomContext; + +NestedRowExpressionAtomContext.prototype.ROW = function() { + return this.getToken(MySQLParser.ROW, 0); +}; + +NestedRowExpressionAtomContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +NestedRowExpressionAtomContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +NestedRowExpressionAtomContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; + +NestedRowExpressionAtomContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.COMMA); + } else { + return this.getToken(MySQLParser.COMMA, i); + } +}; + +NestedRowExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterNestedRowExpressionAtom(this); + } +}; + +NestedRowExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitNestedRowExpressionAtom(this); + } +}; + +NestedRowExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitNestedRowExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MathExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + this.left = null; // ExpressionAtomContext; + this.right = null; // ExpressionAtomContext; + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MathExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +MathExpressionAtomContext.prototype.constructor = MathExpressionAtomContext; + +MySQLParser.MathExpressionAtomContext = MathExpressionAtomContext; + +MathExpressionAtomContext.prototype.mathOperator = function() { + return this.getTypedRuleContext(MathOperatorContext,0); +}; + +MathExpressionAtomContext.prototype.expressionAtom = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionAtomContext); + } else { + return this.getTypedRuleContext(ExpressionAtomContext,i); + } +}; +MathExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMathExpressionAtom(this); + } +}; + +MathExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMathExpressionAtom(this); + } +}; + +MathExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMathExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IntervalExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IntervalExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +IntervalExpressionAtomContext.prototype.constructor = IntervalExpressionAtomContext; + +MySQLParser.IntervalExpressionAtomContext = IntervalExpressionAtomContext; + +IntervalExpressionAtomContext.prototype.INTERVAL = function() { + return this.getToken(MySQLParser.INTERVAL, 0); +}; + +IntervalExpressionAtomContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +IntervalExpressionAtomContext.prototype.intervalType = function() { + return this.getTypedRuleContext(IntervalTypeContext,0); +}; +IntervalExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIntervalExpressionAtom(this); + } +}; + +IntervalExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIntervalExpressionAtom(this); + } +}; + +IntervalExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIntervalExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ExistsExpessionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ExistsExpessionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +ExistsExpessionAtomContext.prototype.constructor = ExistsExpessionAtomContext; + +MySQLParser.ExistsExpessionAtomContext = ExistsExpessionAtomContext; + +ExistsExpessionAtomContext.prototype.EXISTS = function() { + return this.getToken(MySQLParser.EXISTS, 0); +}; + +ExistsExpessionAtomContext.prototype.LR_BRACKET = function() { + return this.getToken(MySQLParser.LR_BRACKET, 0); +}; + +ExistsExpessionAtomContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +ExistsExpessionAtomContext.prototype.RR_BRACKET = function() { + return this.getToken(MySQLParser.RR_BRACKET, 0); +}; +ExistsExpessionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterExistsExpessionAtom(this); + } +}; + +ExistsExpessionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitExistsExpessionAtom(this); + } +}; + +ExistsExpessionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitExistsExpessionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ConstantExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ConstantExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +ConstantExpressionAtomContext.prototype.constructor = ConstantExpressionAtomContext; + +MySQLParser.ConstantExpressionAtomContext = ConstantExpressionAtomContext; + +ConstantExpressionAtomContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; +ConstantExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterConstantExpressionAtom(this); + } +}; + +ConstantExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitConstantExpressionAtom(this); + } +}; + +ConstantExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitConstantExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function FunctionCallExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +FunctionCallExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +FunctionCallExpressionAtomContext.prototype.constructor = FunctionCallExpressionAtomContext; + +MySQLParser.FunctionCallExpressionAtomContext = FunctionCallExpressionAtomContext; + +FunctionCallExpressionAtomContext.prototype.functionCall = function() { + return this.getTypedRuleContext(FunctionCallContext,0); +}; +FunctionCallExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFunctionCallExpressionAtom(this); + } +}; + +FunctionCallExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFunctionCallExpressionAtom(this); + } +}; + +FunctionCallExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFunctionCallExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function BinaryExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +BinaryExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +BinaryExpressionAtomContext.prototype.constructor = BinaryExpressionAtomContext; + +MySQLParser.BinaryExpressionAtomContext = BinaryExpressionAtomContext; + +BinaryExpressionAtomContext.prototype.BINARY = function() { + return this.getToken(MySQLParser.BINARY, 0); +}; + +BinaryExpressionAtomContext.prototype.expressionAtom = function() { + return this.getTypedRuleContext(ExpressionAtomContext,0); +}; +BinaryExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBinaryExpressionAtom(this); + } +}; + +BinaryExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBinaryExpressionAtom(this); + } +}; + +BinaryExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBinaryExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function FullColumnNameExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +FullColumnNameExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +FullColumnNameExpressionAtomContext.prototype.constructor = FullColumnNameExpressionAtomContext; + +MySQLParser.FullColumnNameExpressionAtomContext = FullColumnNameExpressionAtomContext; + +FullColumnNameExpressionAtomContext.prototype.fullColumnName = function() { + return this.getTypedRuleContext(FullColumnNameContext,0); +}; +FullColumnNameExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFullColumnNameExpressionAtom(this); + } +}; + +FullColumnNameExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFullColumnNameExpressionAtom(this); + } +}; + +FullColumnNameExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFullColumnNameExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function BitExpressionAtomContext(parser, ctx) { + ExpressionAtomContext.call(this, parser); + this.left = null; // ExpressionAtomContext; + this.right = null; // ExpressionAtomContext; + ExpressionAtomContext.prototype.copyFrom.call(this, ctx); + return this; +} + +BitExpressionAtomContext.prototype = Object.create(ExpressionAtomContext.prototype); +BitExpressionAtomContext.prototype.constructor = BitExpressionAtomContext; + +MySQLParser.BitExpressionAtomContext = BitExpressionAtomContext; + +BitExpressionAtomContext.prototype.bitOperator = function() { + return this.getTypedRuleContext(BitOperatorContext,0); +}; + +BitExpressionAtomContext.prototype.expressionAtom = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionAtomContext); + } else { + return this.getTypedRuleContext(ExpressionAtomContext,i); + } +}; +BitExpressionAtomContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBitExpressionAtom(this); + } +}; + +BitExpressionAtomContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBitExpressionAtom(this); + } +}; + +BitExpressionAtomContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBitExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +MySQLParser.prototype.expressionAtom = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new ExpressionAtomContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 604; + this.enterRecursionRule(localctx, 604, MySQLParser.RULE_expressionAtom, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6306; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,922,this._ctx); + switch(la_) { + case 1: + localctx = new ConstantExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + + this.state = 6262; + this.constant(); + break; + + case 2: + localctx = new FullColumnNameExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6263; + this.fullColumnName(); + break; + + case 3: + localctx = new FunctionCallExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6264; + this.functionCall(); + break; + + case 4: + localctx = new MysqlVariableExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6265; + this.mysqlVariable(); + break; + + case 5: + localctx = new UnaryExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6266; + this.unaryOperator(); + this.state = 6267; + this.expressionAtom(9); + break; + + case 6: + localctx = new BinaryExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6269; + this.match(MySQLParser.BINARY); + this.state = 6270; + this.expressionAtom(8); + break; + + case 7: + localctx = new NestedExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6271; + this.match(MySQLParser.LR_BRACKET); + this.state = 6272; + this.expression(0); + this.state = 6277; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===MySQLParser.COMMA) { + this.state = 6273; + this.match(MySQLParser.COMMA); + this.state = 6274; + this.expression(0); + this.state = 6279; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6280; + this.match(MySQLParser.RR_BRACKET); + break; + + case 8: + localctx = new NestedRowExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6282; + this.match(MySQLParser.ROW); + this.state = 6283; + this.match(MySQLParser.LR_BRACKET); + this.state = 6284; + this.expression(0); + this.state = 6287; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 6285; + this.match(MySQLParser.COMMA); + this.state = 6286; + this.expression(0); + this.state = 6289; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===MySQLParser.COMMA); + this.state = 6291; + this.match(MySQLParser.RR_BRACKET); + break; + + case 9: + localctx = new ExistsExpessionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6293; + this.match(MySQLParser.EXISTS); + this.state = 6294; + this.match(MySQLParser.LR_BRACKET); + this.state = 6295; + this.selectStatement(); + this.state = 6296; + this.match(MySQLParser.RR_BRACKET); + break; + + case 10: + localctx = new SubqueryExpessionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6298; + this.match(MySQLParser.LR_BRACKET); + this.state = 6299; + this.selectStatement(); + this.state = 6300; + this.match(MySQLParser.RR_BRACKET); + break; + + case 11: + localctx = new IntervalExpressionAtomContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 6302; + this.match(MySQLParser.INTERVAL); + this.state = 6303; + this.expression(0); + this.state = 6304; + this.intervalType(); + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 6321; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,924,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 6319; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,923,this._ctx); + switch(la_) { + case 1: + localctx = new BitExpressionAtomContext(this, new ExpressionAtomContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_expressionAtom); + this.state = 6308; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 6309; + this.bitOperator(); + this.state = 6310; + localctx.right = this.expressionAtom(3); + break; + + case 2: + localctx = new MathExpressionAtomContext(this, new ExpressionAtomContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_expressionAtom); + this.state = 6312; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 6313; + this.mathOperator(); + this.state = 6314; + localctx.right = this.expressionAtom(2); + break; + + case 3: + localctx = new CollateExpressionAtomContext(this, new ExpressionAtomContext(this, _parentctx, _parentState)); + this.pushNewRecursionContext(localctx, _startState, MySQLParser.RULE_expressionAtom); + this.state = 6316; + if (!( this.precpred(this._ctx, 11))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 11)"); + } + this.state = 6317; + this.match(MySQLParser.COLLATE); + this.state = 6318; + this.collationName(); + break; + + } + } + this.state = 6323; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,924,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function UnaryOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_unaryOperator; + return this; +} + +UnaryOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UnaryOperatorContext.prototype.constructor = UnaryOperatorContext; + +UnaryOperatorContext.prototype.EXCLAMATION_SYMBOL = function() { + return this.getToken(MySQLParser.EXCLAMATION_SYMBOL, 0); +}; + +UnaryOperatorContext.prototype.BIT_NOT_OP = function() { + return this.getToken(MySQLParser.BIT_NOT_OP, 0); +}; + +UnaryOperatorContext.prototype.PLUS = function() { + return this.getToken(MySQLParser.PLUS, 0); +}; + +UnaryOperatorContext.prototype.MINUS = function() { + return this.getToken(MySQLParser.MINUS, 0); +}; + +UnaryOperatorContext.prototype.NOT = function() { + return this.getToken(MySQLParser.NOT, 0); +}; + +UnaryOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterUnaryOperator(this); + } +}; + +UnaryOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitUnaryOperator(this); + } +}; + +UnaryOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitUnaryOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.UnaryOperatorContext = UnaryOperatorContext; + +MySQLParser.prototype.unaryOperator = function() { + + var localctx = new UnaryOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 606, MySQLParser.RULE_unaryOperator); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6324; + _la = this._input.LA(1); + if(!(_la===MySQLParser.NOT || ((((_la - 1006)) & ~0x1f) == 0 && ((1 << (_la - 1006)) & ((1 << (MySQLParser.PLUS - 1006)) | (1 << (MySQLParser.MINUS - 1006)) | (1 << (MySQLParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (MySQLParser.BIT_NOT_OP - 1006)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ComparisonOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_comparisonOperator; + return this; +} + +ComparisonOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ComparisonOperatorContext.prototype.constructor = ComparisonOperatorContext; + +ComparisonOperatorContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(MySQLParser.EQUAL_SYMBOL, 0); +}; + +ComparisonOperatorContext.prototype.GREATER_SYMBOL = function() { + return this.getToken(MySQLParser.GREATER_SYMBOL, 0); +}; + +ComparisonOperatorContext.prototype.LESS_SYMBOL = function() { + return this.getToken(MySQLParser.LESS_SYMBOL, 0); +}; + +ComparisonOperatorContext.prototype.EXCLAMATION_SYMBOL = function() { + return this.getToken(MySQLParser.EXCLAMATION_SYMBOL, 0); +}; + +ComparisonOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterComparisonOperator(this); + } +}; + +ComparisonOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitComparisonOperator(this); + } +}; + +ComparisonOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitComparisonOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.ComparisonOperatorContext = ComparisonOperatorContext; + +MySQLParser.prototype.comparisonOperator = function() { + + var localctx = new ComparisonOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 608, MySQLParser.RULE_comparisonOperator); + try { + this.state = 6340; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,925,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6326; + this.match(MySQLParser.EQUAL_SYMBOL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6327; + this.match(MySQLParser.GREATER_SYMBOL); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 6328; + this.match(MySQLParser.LESS_SYMBOL); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 6329; + this.match(MySQLParser.LESS_SYMBOL); + this.state = 6330; + this.match(MySQLParser.EQUAL_SYMBOL); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 6331; + this.match(MySQLParser.GREATER_SYMBOL); + this.state = 6332; + this.match(MySQLParser.EQUAL_SYMBOL); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 6333; + this.match(MySQLParser.LESS_SYMBOL); + this.state = 6334; + this.match(MySQLParser.GREATER_SYMBOL); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 6335; + this.match(MySQLParser.EXCLAMATION_SYMBOL); + this.state = 6336; + this.match(MySQLParser.EQUAL_SYMBOL); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 6337; + this.match(MySQLParser.LESS_SYMBOL); + this.state = 6338; + this.match(MySQLParser.EQUAL_SYMBOL); + this.state = 6339; + this.match(MySQLParser.GREATER_SYMBOL); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LogicalOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_logicalOperator; + return this; +} + +LogicalOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LogicalOperatorContext.prototype.constructor = LogicalOperatorContext; + +LogicalOperatorContext.prototype.AND = function() { + return this.getToken(MySQLParser.AND, 0); +}; + +LogicalOperatorContext.prototype.BIT_AND_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.BIT_AND_OP); + } else { + return this.getToken(MySQLParser.BIT_AND_OP, i); + } +}; + + +LogicalOperatorContext.prototype.XOR = function() { + return this.getToken(MySQLParser.XOR, 0); +}; + +LogicalOperatorContext.prototype.OR = function() { + return this.getToken(MySQLParser.OR, 0); +}; + +LogicalOperatorContext.prototype.BIT_OR_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.BIT_OR_OP); + } else { + return this.getToken(MySQLParser.BIT_OR_OP, i); + } +}; + + +LogicalOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterLogicalOperator(this); + } +}; + +LogicalOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitLogicalOperator(this); + } +}; + +LogicalOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitLogicalOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.LogicalOperatorContext = LogicalOperatorContext; + +MySQLParser.prototype.logicalOperator = function() { + + var localctx = new LogicalOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 610, MySQLParser.RULE_logicalOperator); + try { + this.state = 6349; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.AND: + this.enterOuterAlt(localctx, 1); + this.state = 6342; + this.match(MySQLParser.AND); + break; + case MySQLParser.BIT_AND_OP: + this.enterOuterAlt(localctx, 2); + this.state = 6343; + this.match(MySQLParser.BIT_AND_OP); + this.state = 6344; + this.match(MySQLParser.BIT_AND_OP); + break; + case MySQLParser.XOR: + this.enterOuterAlt(localctx, 3); + this.state = 6345; + this.match(MySQLParser.XOR); + break; + case MySQLParser.OR: + this.enterOuterAlt(localctx, 4); + this.state = 6346; + this.match(MySQLParser.OR); + break; + case MySQLParser.BIT_OR_OP: + this.enterOuterAlt(localctx, 5); + this.state = 6347; + this.match(MySQLParser.BIT_OR_OP); + this.state = 6348; + this.match(MySQLParser.BIT_OR_OP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BitOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_bitOperator; + return this; +} + +BitOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BitOperatorContext.prototype.constructor = BitOperatorContext; + +BitOperatorContext.prototype.LESS_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.LESS_SYMBOL); + } else { + return this.getToken(MySQLParser.LESS_SYMBOL, i); + } +}; + + +BitOperatorContext.prototype.GREATER_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(MySQLParser.GREATER_SYMBOL); + } else { + return this.getToken(MySQLParser.GREATER_SYMBOL, i); + } +}; + + +BitOperatorContext.prototype.BIT_AND_OP = function() { + return this.getToken(MySQLParser.BIT_AND_OP, 0); +}; + +BitOperatorContext.prototype.BIT_XOR_OP = function() { + return this.getToken(MySQLParser.BIT_XOR_OP, 0); +}; + +BitOperatorContext.prototype.BIT_OR_OP = function() { + return this.getToken(MySQLParser.BIT_OR_OP, 0); +}; + +BitOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterBitOperator(this); + } +}; + +BitOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitBitOperator(this); + } +}; + +BitOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitBitOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.BitOperatorContext = BitOperatorContext; + +MySQLParser.prototype.bitOperator = function() { + + var localctx = new BitOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 612, MySQLParser.RULE_bitOperator); + try { + this.state = 6358; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case MySQLParser.LESS_SYMBOL: + this.enterOuterAlt(localctx, 1); + this.state = 6351; + this.match(MySQLParser.LESS_SYMBOL); + this.state = 6352; + this.match(MySQLParser.LESS_SYMBOL); + break; + case MySQLParser.GREATER_SYMBOL: + this.enterOuterAlt(localctx, 2); + this.state = 6353; + this.match(MySQLParser.GREATER_SYMBOL); + this.state = 6354; + this.match(MySQLParser.GREATER_SYMBOL); + break; + case MySQLParser.BIT_AND_OP: + this.enterOuterAlt(localctx, 3); + this.state = 6355; + this.match(MySQLParser.BIT_AND_OP); + break; + case MySQLParser.BIT_XOR_OP: + this.enterOuterAlt(localctx, 4); + this.state = 6356; + this.match(MySQLParser.BIT_XOR_OP); + break; + case MySQLParser.BIT_OR_OP: + this.enterOuterAlt(localctx, 5); + this.state = 6357; + this.match(MySQLParser.BIT_OR_OP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function MathOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_mathOperator; + return this; +} + +MathOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +MathOperatorContext.prototype.constructor = MathOperatorContext; + +MathOperatorContext.prototype.STAR = function() { + return this.getToken(MySQLParser.STAR, 0); +}; + +MathOperatorContext.prototype.DIVIDE = function() { + return this.getToken(MySQLParser.DIVIDE, 0); +}; + +MathOperatorContext.prototype.MODULE = function() { + return this.getToken(MySQLParser.MODULE, 0); +}; + +MathOperatorContext.prototype.DIV = function() { + return this.getToken(MySQLParser.DIV, 0); +}; + +MathOperatorContext.prototype.MOD = function() { + return this.getToken(MySQLParser.MOD, 0); +}; + +MathOperatorContext.prototype.PLUS = function() { + return this.getToken(MySQLParser.PLUS, 0); +}; + +MathOperatorContext.prototype.MINUS = function() { + return this.getToken(MySQLParser.MINUS, 0); +}; + +MathOperatorContext.prototype.MINUSMINUS = function() { + return this.getToken(MySQLParser.MINUSMINUS, 0); +}; + +MathOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterMathOperator(this); + } +}; + +MathOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitMathOperator(this); + } +}; + +MathOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitMathOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.MathOperatorContext = MathOperatorContext; + +MySQLParser.prototype.mathOperator = function() { + + var localctx = new MathOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 614, MySQLParser.RULE_mathOperator); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6360; + _la = this._input.LA(1); + if(!(((((_la - 1003)) & ~0x1f) == 0 && ((1 << (_la - 1003)) & ((1 << (MySQLParser.STAR - 1003)) | (1 << (MySQLParser.DIVIDE - 1003)) | (1 << (MySQLParser.MODULE - 1003)) | (1 << (MySQLParser.PLUS - 1003)) | (1 << (MySQLParser.MINUSMINUS - 1003)) | (1 << (MySQLParser.MINUS - 1003)) | (1 << (MySQLParser.DIV - 1003)) | (1 << (MySQLParser.MOD - 1003)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CharsetNameBaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_charsetNameBase; + return this; +} + +CharsetNameBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CharsetNameBaseContext.prototype.constructor = CharsetNameBaseContext; + +CharsetNameBaseContext.prototype.ARMSCII8 = function() { + return this.getToken(MySQLParser.ARMSCII8, 0); +}; + +CharsetNameBaseContext.prototype.ASCII = function() { + return this.getToken(MySQLParser.ASCII, 0); +}; + +CharsetNameBaseContext.prototype.BIG5 = function() { + return this.getToken(MySQLParser.BIG5, 0); +}; + +CharsetNameBaseContext.prototype.CP1250 = function() { + return this.getToken(MySQLParser.CP1250, 0); +}; + +CharsetNameBaseContext.prototype.CP1251 = function() { + return this.getToken(MySQLParser.CP1251, 0); +}; + +CharsetNameBaseContext.prototype.CP1256 = function() { + return this.getToken(MySQLParser.CP1256, 0); +}; + +CharsetNameBaseContext.prototype.CP1257 = function() { + return this.getToken(MySQLParser.CP1257, 0); +}; + +CharsetNameBaseContext.prototype.CP850 = function() { + return this.getToken(MySQLParser.CP850, 0); +}; + +CharsetNameBaseContext.prototype.CP852 = function() { + return this.getToken(MySQLParser.CP852, 0); +}; + +CharsetNameBaseContext.prototype.CP866 = function() { + return this.getToken(MySQLParser.CP866, 0); +}; + +CharsetNameBaseContext.prototype.CP932 = function() { + return this.getToken(MySQLParser.CP932, 0); +}; + +CharsetNameBaseContext.prototype.DEC8 = function() { + return this.getToken(MySQLParser.DEC8, 0); +}; + +CharsetNameBaseContext.prototype.EUCJPMS = function() { + return this.getToken(MySQLParser.EUCJPMS, 0); +}; + +CharsetNameBaseContext.prototype.EUCKR = function() { + return this.getToken(MySQLParser.EUCKR, 0); +}; + +CharsetNameBaseContext.prototype.GB2312 = function() { + return this.getToken(MySQLParser.GB2312, 0); +}; + +CharsetNameBaseContext.prototype.GBK = function() { + return this.getToken(MySQLParser.GBK, 0); +}; + +CharsetNameBaseContext.prototype.GEOSTD8 = function() { + return this.getToken(MySQLParser.GEOSTD8, 0); +}; + +CharsetNameBaseContext.prototype.GREEK = function() { + return this.getToken(MySQLParser.GREEK, 0); +}; + +CharsetNameBaseContext.prototype.HEBREW = function() { + return this.getToken(MySQLParser.HEBREW, 0); +}; + +CharsetNameBaseContext.prototype.HP8 = function() { + return this.getToken(MySQLParser.HP8, 0); +}; + +CharsetNameBaseContext.prototype.KEYBCS2 = function() { + return this.getToken(MySQLParser.KEYBCS2, 0); +}; + +CharsetNameBaseContext.prototype.KOI8R = function() { + return this.getToken(MySQLParser.KOI8R, 0); +}; + +CharsetNameBaseContext.prototype.KOI8U = function() { + return this.getToken(MySQLParser.KOI8U, 0); +}; + +CharsetNameBaseContext.prototype.LATIN1 = function() { + return this.getToken(MySQLParser.LATIN1, 0); +}; + +CharsetNameBaseContext.prototype.LATIN2 = function() { + return this.getToken(MySQLParser.LATIN2, 0); +}; + +CharsetNameBaseContext.prototype.LATIN5 = function() { + return this.getToken(MySQLParser.LATIN5, 0); +}; + +CharsetNameBaseContext.prototype.LATIN7 = function() { + return this.getToken(MySQLParser.LATIN7, 0); +}; + +CharsetNameBaseContext.prototype.MACCE = function() { + return this.getToken(MySQLParser.MACCE, 0); +}; + +CharsetNameBaseContext.prototype.MACROMAN = function() { + return this.getToken(MySQLParser.MACROMAN, 0); +}; + +CharsetNameBaseContext.prototype.SJIS = function() { + return this.getToken(MySQLParser.SJIS, 0); +}; + +CharsetNameBaseContext.prototype.SWE7 = function() { + return this.getToken(MySQLParser.SWE7, 0); +}; + +CharsetNameBaseContext.prototype.TIS620 = function() { + return this.getToken(MySQLParser.TIS620, 0); +}; + +CharsetNameBaseContext.prototype.UCS2 = function() { + return this.getToken(MySQLParser.UCS2, 0); +}; + +CharsetNameBaseContext.prototype.UJIS = function() { + return this.getToken(MySQLParser.UJIS, 0); +}; + +CharsetNameBaseContext.prototype.UTF16 = function() { + return this.getToken(MySQLParser.UTF16, 0); +}; + +CharsetNameBaseContext.prototype.UTF16LE = function() { + return this.getToken(MySQLParser.UTF16LE, 0); +}; + +CharsetNameBaseContext.prototype.UTF32 = function() { + return this.getToken(MySQLParser.UTF32, 0); +}; + +CharsetNameBaseContext.prototype.UTF8 = function() { + return this.getToken(MySQLParser.UTF8, 0); +}; + +CharsetNameBaseContext.prototype.UTF8MB3 = function() { + return this.getToken(MySQLParser.UTF8MB3, 0); +}; + +CharsetNameBaseContext.prototype.UTF8MB4 = function() { + return this.getToken(MySQLParser.UTF8MB4, 0); +}; + +CharsetNameBaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterCharsetNameBase(this); + } +}; + +CharsetNameBaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitCharsetNameBase(this); + } +}; + +CharsetNameBaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitCharsetNameBase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.CharsetNameBaseContext = CharsetNameBaseContext; + +MySQLParser.prototype.charsetNameBase = function() { + + var localctx = new CharsetNameBaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 616, MySQLParser.RULE_charsetNameBase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6362; + _la = this._input.LA(1); + if(!(((((_la - 637)) & ~0x1f) == 0 && ((1 << (_la - 637)) & ((1 << (MySQLParser.ARMSCII8 - 637)) | (1 << (MySQLParser.ASCII - 637)) | (1 << (MySQLParser.BIG5 - 637)) | (1 << (MySQLParser.CP1250 - 637)) | (1 << (MySQLParser.CP1251 - 637)) | (1 << (MySQLParser.CP1256 - 637)) | (1 << (MySQLParser.CP1257 - 637)) | (1 << (MySQLParser.CP850 - 637)) | (1 << (MySQLParser.CP852 - 637)) | (1 << (MySQLParser.CP866 - 637)) | (1 << (MySQLParser.CP932 - 637)) | (1 << (MySQLParser.DEC8 - 637)) | (1 << (MySQLParser.EUCJPMS - 637)) | (1 << (MySQLParser.EUCKR - 637)) | (1 << (MySQLParser.GB2312 - 637)) | (1 << (MySQLParser.GBK - 637)) | (1 << (MySQLParser.GEOSTD8 - 637)) | (1 << (MySQLParser.GREEK - 637)) | (1 << (MySQLParser.HEBREW - 637)) | (1 << (MySQLParser.HP8 - 637)) | (1 << (MySQLParser.KEYBCS2 - 637)) | (1 << (MySQLParser.KOI8R - 637)) | (1 << (MySQLParser.KOI8U - 637)) | (1 << (MySQLParser.LATIN1 - 637)) | (1 << (MySQLParser.LATIN2 - 637)) | (1 << (MySQLParser.LATIN5 - 637)) | (1 << (MySQLParser.LATIN7 - 637)) | (1 << (MySQLParser.MACCE - 637)) | (1 << (MySQLParser.MACROMAN - 637)) | (1 << (MySQLParser.SJIS - 637)) | (1 << (MySQLParser.SWE7 - 637)) | (1 << (MySQLParser.TIS620 - 637)))) !== 0) || ((((_la - 669)) & ~0x1f) == 0 && ((1 << (_la - 669)) & ((1 << (MySQLParser.UCS2 - 669)) | (1 << (MySQLParser.UJIS - 669)) | (1 << (MySQLParser.UTF16 - 669)) | (1 << (MySQLParser.UTF16LE - 669)) | (1 << (MySQLParser.UTF32 - 669)) | (1 << (MySQLParser.UTF8 - 669)) | (1 << (MySQLParser.UTF8MB3 - 669)) | (1 << (MySQLParser.UTF8MB4 - 669)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TransactionLevelBaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_transactionLevelBase; + return this; +} + +TransactionLevelBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TransactionLevelBaseContext.prototype.constructor = TransactionLevelBaseContext; + +TransactionLevelBaseContext.prototype.REPEATABLE = function() { + return this.getToken(MySQLParser.REPEATABLE, 0); +}; + +TransactionLevelBaseContext.prototype.COMMITTED = function() { + return this.getToken(MySQLParser.COMMITTED, 0); +}; + +TransactionLevelBaseContext.prototype.UNCOMMITTED = function() { + return this.getToken(MySQLParser.UNCOMMITTED, 0); +}; + +TransactionLevelBaseContext.prototype.SERIALIZABLE = function() { + return this.getToken(MySQLParser.SERIALIZABLE, 0); +}; + +TransactionLevelBaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterTransactionLevelBase(this); + } +}; + +TransactionLevelBaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitTransactionLevelBase(this); + } +}; + +TransactionLevelBaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitTransactionLevelBase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.TransactionLevelBaseContext = TransactionLevelBaseContext; + +MySQLParser.prototype.transactionLevelBase = function() { + + var localctx = new TransactionLevelBaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 618, MySQLParser.RULE_transactionLevelBase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6364; + _la = this._input.LA(1); + if(!(((((_la - 689)) & ~0x1f) == 0 && ((1 << (_la - 689)) & ((1 << (MySQLParser.REPEATABLE - 689)) | (1 << (MySQLParser.COMMITTED - 689)) | (1 << (MySQLParser.UNCOMMITTED - 689)) | (1 << (MySQLParser.SERIALIZABLE - 689)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PrivilegesBaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_privilegesBase; + return this; +} + +PrivilegesBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PrivilegesBaseContext.prototype.constructor = PrivilegesBaseContext; + +PrivilegesBaseContext.prototype.TABLES = function() { + return this.getToken(MySQLParser.TABLES, 0); +}; + +PrivilegesBaseContext.prototype.ROUTINE = function() { + return this.getToken(MySQLParser.ROUTINE, 0); +}; + +PrivilegesBaseContext.prototype.EXECUTE = function() { + return this.getToken(MySQLParser.EXECUTE, 0); +}; + +PrivilegesBaseContext.prototype.FILE = function() { + return this.getToken(MySQLParser.FILE, 0); +}; + +PrivilegesBaseContext.prototype.PROCESS = function() { + return this.getToken(MySQLParser.PROCESS, 0); +}; + +PrivilegesBaseContext.prototype.RELOAD = function() { + return this.getToken(MySQLParser.RELOAD, 0); +}; + +PrivilegesBaseContext.prototype.SHUTDOWN = function() { + return this.getToken(MySQLParser.SHUTDOWN, 0); +}; + +PrivilegesBaseContext.prototype.SUPER = function() { + return this.getToken(MySQLParser.SUPER, 0); +}; + +PrivilegesBaseContext.prototype.PRIVILEGES = function() { + return this.getToken(MySQLParser.PRIVILEGES, 0); +}; + +PrivilegesBaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterPrivilegesBase(this); + } +}; + +PrivilegesBaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitPrivilegesBase(this); + } +}; + +PrivilegesBaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitPrivilegesBase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.PrivilegesBaseContext = PrivilegesBaseContext; + +MySQLParser.prototype.privilegesBase = function() { + + var localctx = new PrivilegesBaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 620, MySQLParser.RULE_privilegesBase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6366; + _la = this._input.LA(1); + if(!(((((_la - 602)) & ~0x1f) == 0 && ((1 << (_la - 602)) & ((1 << (MySQLParser.TABLES - 602)) | (1 << (MySQLParser.ROUTINE - 602)) | (1 << (MySQLParser.EXECUTE - 602)) | (1 << (MySQLParser.FILE - 602)) | (1 << (MySQLParser.PROCESS - 602)) | (1 << (MySQLParser.RELOAD - 602)) | (1 << (MySQLParser.SHUTDOWN - 602)) | (1 << (MySQLParser.SUPER - 602)) | (1 << (MySQLParser.PRIVILEGES - 602)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IntervalTypeBaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_intervalTypeBase; + return this; +} + +IntervalTypeBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IntervalTypeBaseContext.prototype.constructor = IntervalTypeBaseContext; + +IntervalTypeBaseContext.prototype.QUARTER = function() { + return this.getToken(MySQLParser.QUARTER, 0); +}; + +IntervalTypeBaseContext.prototype.MONTH = function() { + return this.getToken(MySQLParser.MONTH, 0); +}; + +IntervalTypeBaseContext.prototype.DAY = function() { + return this.getToken(MySQLParser.DAY, 0); +}; + +IntervalTypeBaseContext.prototype.HOUR = function() { + return this.getToken(MySQLParser.HOUR, 0); +}; + +IntervalTypeBaseContext.prototype.MINUTE = function() { + return this.getToken(MySQLParser.MINUTE, 0); +}; + +IntervalTypeBaseContext.prototype.WEEK = function() { + return this.getToken(MySQLParser.WEEK, 0); +}; + +IntervalTypeBaseContext.prototype.SECOND = function() { + return this.getToken(MySQLParser.SECOND, 0); +}; + +IntervalTypeBaseContext.prototype.MICROSECOND = function() { + return this.getToken(MySQLParser.MICROSECOND, 0); +}; + +IntervalTypeBaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterIntervalTypeBase(this); + } +}; + +IntervalTypeBaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitIntervalTypeBase(this); + } +}; + +IntervalTypeBaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitIntervalTypeBase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.IntervalTypeBaseContext = IntervalTypeBaseContext; + +MySQLParser.prototype.intervalTypeBase = function() { + + var localctx = new IntervalTypeBaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 622, MySQLParser.RULE_intervalTypeBase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6368; + _la = this._input.LA(1); + if(!(((((_la - 594)) & ~0x1f) == 0 && ((1 << (_la - 594)) & ((1 << (MySQLParser.QUARTER - 594)) | (1 << (MySQLParser.MONTH - 594)) | (1 << (MySQLParser.DAY - 594)) | (1 << (MySQLParser.HOUR - 594)) | (1 << (MySQLParser.MINUTE - 594)) | (1 << (MySQLParser.WEEK - 594)) | (1 << (MySQLParser.SECOND - 594)) | (1 << (MySQLParser.MICROSECOND - 594)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DataTypeBaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_dataTypeBase; + return this; +} + +DataTypeBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DataTypeBaseContext.prototype.constructor = DataTypeBaseContext; + +DataTypeBaseContext.prototype.DATE = function() { + return this.getToken(MySQLParser.DATE, 0); +}; + +DataTypeBaseContext.prototype.TIME = function() { + return this.getToken(MySQLParser.TIME, 0); +}; + +DataTypeBaseContext.prototype.TIMESTAMP = function() { + return this.getToken(MySQLParser.TIMESTAMP, 0); +}; + +DataTypeBaseContext.prototype.DATETIME = function() { + return this.getToken(MySQLParser.DATETIME, 0); +}; + +DataTypeBaseContext.prototype.YEAR = function() { + return this.getToken(MySQLParser.YEAR, 0); +}; + +DataTypeBaseContext.prototype.ENUM = function() { + return this.getToken(MySQLParser.ENUM, 0); +}; + +DataTypeBaseContext.prototype.TEXT = function() { + return this.getToken(MySQLParser.TEXT, 0); +}; + +DataTypeBaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterDataTypeBase(this); + } +}; + +DataTypeBaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitDataTypeBase(this); + } +}; + +DataTypeBaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitDataTypeBase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.DataTypeBaseContext = DataTypeBaseContext; + +MySQLParser.prototype.dataTypeBase = function() { + + var localctx = new DataTypeBaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 624, MySQLParser.RULE_dataTypeBase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6370; + _la = this._input.LA(1); + if(!(((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.DATETIME - 199)) | (1 << (MySQLParser.YEAR - 199)) | (1 << (MySQLParser.TEXT - 199)) | (1 << (MySQLParser.ENUM - 199)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function KeywordsCanBeIdContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_keywordsCanBeId; + return this; +} + +KeywordsCanBeIdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +KeywordsCanBeIdContext.prototype.constructor = KeywordsCanBeIdContext; + +KeywordsCanBeIdContext.prototype.ACCOUNT = function() { + return this.getToken(MySQLParser.ACCOUNT, 0); +}; + +KeywordsCanBeIdContext.prototype.ACTION = function() { + return this.getToken(MySQLParser.ACTION, 0); +}; + +KeywordsCanBeIdContext.prototype.AFTER = function() { + return this.getToken(MySQLParser.AFTER, 0); +}; + +KeywordsCanBeIdContext.prototype.AGGREGATE = function() { + return this.getToken(MySQLParser.AGGREGATE, 0); +}; + +KeywordsCanBeIdContext.prototype.ALGORITHM = function() { + return this.getToken(MySQLParser.ALGORITHM, 0); +}; + +KeywordsCanBeIdContext.prototype.ANY = function() { + return this.getToken(MySQLParser.ANY, 0); +}; + +KeywordsCanBeIdContext.prototype.AT = function() { + return this.getToken(MySQLParser.AT, 0); +}; + +KeywordsCanBeIdContext.prototype.AUDIT_ADMIN = function() { + return this.getToken(MySQLParser.AUDIT_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.AUTHORS = function() { + return this.getToken(MySQLParser.AUTHORS, 0); +}; + +KeywordsCanBeIdContext.prototype.AUTOCOMMIT = function() { + return this.getToken(MySQLParser.AUTOCOMMIT, 0); +}; + +KeywordsCanBeIdContext.prototype.AUTOEXTEND_SIZE = function() { + return this.getToken(MySQLParser.AUTOEXTEND_SIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.AUTO_INCREMENT = function() { + return this.getToken(MySQLParser.AUTO_INCREMENT, 0); +}; + +KeywordsCanBeIdContext.prototype.AVG_ROW_LENGTH = function() { + return this.getToken(MySQLParser.AVG_ROW_LENGTH, 0); +}; + +KeywordsCanBeIdContext.prototype.BACKUP_ADMIN = function() { + return this.getToken(MySQLParser.BACKUP_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.BEGIN = function() { + return this.getToken(MySQLParser.BEGIN, 0); +}; + +KeywordsCanBeIdContext.prototype.BINLOG = function() { + return this.getToken(MySQLParser.BINLOG, 0); +}; + +KeywordsCanBeIdContext.prototype.BINLOG_ADMIN = function() { + return this.getToken(MySQLParser.BINLOG_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.BINLOG_ENCRYPTION_ADMIN = function() { + return this.getToken(MySQLParser.BINLOG_ENCRYPTION_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.BIT = function() { + return this.getToken(MySQLParser.BIT, 0); +}; + +KeywordsCanBeIdContext.prototype.BLOCK = function() { + return this.getToken(MySQLParser.BLOCK, 0); +}; + +KeywordsCanBeIdContext.prototype.BOOL = function() { + return this.getToken(MySQLParser.BOOL, 0); +}; + +KeywordsCanBeIdContext.prototype.BOOLEAN = function() { + return this.getToken(MySQLParser.BOOLEAN, 0); +}; + +KeywordsCanBeIdContext.prototype.BTREE = function() { + return this.getToken(MySQLParser.BTREE, 0); +}; + +KeywordsCanBeIdContext.prototype.CACHE = function() { + return this.getToken(MySQLParser.CACHE, 0); +}; + +KeywordsCanBeIdContext.prototype.CASCADED = function() { + return this.getToken(MySQLParser.CASCADED, 0); +}; + +KeywordsCanBeIdContext.prototype.CHAIN = function() { + return this.getToken(MySQLParser.CHAIN, 0); +}; + +KeywordsCanBeIdContext.prototype.CHANGED = function() { + return this.getToken(MySQLParser.CHANGED, 0); +}; + +KeywordsCanBeIdContext.prototype.CHANNEL = function() { + return this.getToken(MySQLParser.CHANNEL, 0); +}; + +KeywordsCanBeIdContext.prototype.CHECKSUM = function() { + return this.getToken(MySQLParser.CHECKSUM, 0); +}; + +KeywordsCanBeIdContext.prototype.PAGE_CHECKSUM = function() { + return this.getToken(MySQLParser.PAGE_CHECKSUM, 0); +}; + +KeywordsCanBeIdContext.prototype.CATALOG_NAME = function() { + return this.getToken(MySQLParser.CATALOG_NAME, 0); +}; + +KeywordsCanBeIdContext.prototype.CIPHER = function() { + return this.getToken(MySQLParser.CIPHER, 0); +}; + +KeywordsCanBeIdContext.prototype.CLASS_ORIGIN = function() { + return this.getToken(MySQLParser.CLASS_ORIGIN, 0); +}; + +KeywordsCanBeIdContext.prototype.CLIENT = function() { + return this.getToken(MySQLParser.CLIENT, 0); +}; + +KeywordsCanBeIdContext.prototype.CLONE_ADMIN = function() { + return this.getToken(MySQLParser.CLONE_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.CLOSE = function() { + return this.getToken(MySQLParser.CLOSE, 0); +}; + +KeywordsCanBeIdContext.prototype.COALESCE = function() { + return this.getToken(MySQLParser.COALESCE, 0); +}; + +KeywordsCanBeIdContext.prototype.CODE = function() { + return this.getToken(MySQLParser.CODE, 0); +}; + +KeywordsCanBeIdContext.prototype.COLUMNS = function() { + return this.getToken(MySQLParser.COLUMNS, 0); +}; + +KeywordsCanBeIdContext.prototype.COLUMN_FORMAT = function() { + return this.getToken(MySQLParser.COLUMN_FORMAT, 0); +}; + +KeywordsCanBeIdContext.prototype.COLUMN_NAME = function() { + return this.getToken(MySQLParser.COLUMN_NAME, 0); +}; + +KeywordsCanBeIdContext.prototype.COMMENT = function() { + return this.getToken(MySQLParser.COMMENT, 0); +}; + +KeywordsCanBeIdContext.prototype.COMMIT = function() { + return this.getToken(MySQLParser.COMMIT, 0); +}; + +KeywordsCanBeIdContext.prototype.COMPACT = function() { + return this.getToken(MySQLParser.COMPACT, 0); +}; + +KeywordsCanBeIdContext.prototype.COMPLETION = function() { + return this.getToken(MySQLParser.COMPLETION, 0); +}; + +KeywordsCanBeIdContext.prototype.COMPRESSED = function() { + return this.getToken(MySQLParser.COMPRESSED, 0); +}; + +KeywordsCanBeIdContext.prototype.COMPRESSION = function() { + return this.getToken(MySQLParser.COMPRESSION, 0); +}; + +KeywordsCanBeIdContext.prototype.CONCURRENT = function() { + return this.getToken(MySQLParser.CONCURRENT, 0); +}; + +KeywordsCanBeIdContext.prototype.CONNECTION = function() { + return this.getToken(MySQLParser.CONNECTION, 0); +}; + +KeywordsCanBeIdContext.prototype.CONNECTION_ADMIN = function() { + return this.getToken(MySQLParser.CONNECTION_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.CONSISTENT = function() { + return this.getToken(MySQLParser.CONSISTENT, 0); +}; + +KeywordsCanBeIdContext.prototype.CONSTRAINT_CATALOG = function() { + return this.getToken(MySQLParser.CONSTRAINT_CATALOG, 0); +}; + +KeywordsCanBeIdContext.prototype.CONSTRAINT_NAME = function() { + return this.getToken(MySQLParser.CONSTRAINT_NAME, 0); +}; + +KeywordsCanBeIdContext.prototype.CONSTRAINT_SCHEMA = function() { + return this.getToken(MySQLParser.CONSTRAINT_SCHEMA, 0); +}; + +KeywordsCanBeIdContext.prototype.CONTAINS = function() { + return this.getToken(MySQLParser.CONTAINS, 0); +}; + +KeywordsCanBeIdContext.prototype.CONTEXT = function() { + return this.getToken(MySQLParser.CONTEXT, 0); +}; + +KeywordsCanBeIdContext.prototype.CONTRIBUTORS = function() { + return this.getToken(MySQLParser.CONTRIBUTORS, 0); +}; + +KeywordsCanBeIdContext.prototype.COPY = function() { + return this.getToken(MySQLParser.COPY, 0); +}; + +KeywordsCanBeIdContext.prototype.CPU = function() { + return this.getToken(MySQLParser.CPU, 0); +}; + +KeywordsCanBeIdContext.prototype.CURRENT = function() { + return this.getToken(MySQLParser.CURRENT, 0); +}; + +KeywordsCanBeIdContext.prototype.CURSOR_NAME = function() { + return this.getToken(MySQLParser.CURSOR_NAME, 0); +}; + +KeywordsCanBeIdContext.prototype.DATA = function() { + return this.getToken(MySQLParser.DATA, 0); +}; + +KeywordsCanBeIdContext.prototype.DATAFILE = function() { + return this.getToken(MySQLParser.DATAFILE, 0); +}; + +KeywordsCanBeIdContext.prototype.DEALLOCATE = function() { + return this.getToken(MySQLParser.DEALLOCATE, 0); +}; + +KeywordsCanBeIdContext.prototype.DEFAULT_AUTH = function() { + return this.getToken(MySQLParser.DEFAULT_AUTH, 0); +}; + +KeywordsCanBeIdContext.prototype.DEFINER = function() { + return this.getToken(MySQLParser.DEFINER, 0); +}; + +KeywordsCanBeIdContext.prototype.DELAY_KEY_WRITE = function() { + return this.getToken(MySQLParser.DELAY_KEY_WRITE, 0); +}; + +KeywordsCanBeIdContext.prototype.DES_KEY_FILE = function() { + return this.getToken(MySQLParser.DES_KEY_FILE, 0); +}; + +KeywordsCanBeIdContext.prototype.DIAGNOSTICS = function() { + return this.getToken(MySQLParser.DIAGNOSTICS, 0); +}; + +KeywordsCanBeIdContext.prototype.DIRECTORY = function() { + return this.getToken(MySQLParser.DIRECTORY, 0); +}; + +KeywordsCanBeIdContext.prototype.DISABLE = function() { + return this.getToken(MySQLParser.DISABLE, 0); +}; + +KeywordsCanBeIdContext.prototype.DISCARD = function() { + return this.getToken(MySQLParser.DISCARD, 0); +}; + +KeywordsCanBeIdContext.prototype.DISK = function() { + return this.getToken(MySQLParser.DISK, 0); +}; + +KeywordsCanBeIdContext.prototype.DO = function() { + return this.getToken(MySQLParser.DO, 0); +}; + +KeywordsCanBeIdContext.prototype.DUMPFILE = function() { + return this.getToken(MySQLParser.DUMPFILE, 0); +}; + +KeywordsCanBeIdContext.prototype.DUPLICATE = function() { + return this.getToken(MySQLParser.DUPLICATE, 0); +}; + +KeywordsCanBeIdContext.prototype.DYNAMIC = function() { + return this.getToken(MySQLParser.DYNAMIC, 0); +}; + +KeywordsCanBeIdContext.prototype.ENABLE = function() { + return this.getToken(MySQLParser.ENABLE, 0); +}; + +KeywordsCanBeIdContext.prototype.ENCRYPTION = function() { + return this.getToken(MySQLParser.ENCRYPTION, 0); +}; + +KeywordsCanBeIdContext.prototype.ENCRYPTION_KEY_ADMIN = function() { + return this.getToken(MySQLParser.ENCRYPTION_KEY_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.END = function() { + return this.getToken(MySQLParser.END, 0); +}; + +KeywordsCanBeIdContext.prototype.ENDS = function() { + return this.getToken(MySQLParser.ENDS, 0); +}; + +KeywordsCanBeIdContext.prototype.ENGINE = function() { + return this.getToken(MySQLParser.ENGINE, 0); +}; + +KeywordsCanBeIdContext.prototype.ENGINES = function() { + return this.getToken(MySQLParser.ENGINES, 0); +}; + +KeywordsCanBeIdContext.prototype.ERROR = function() { + return this.getToken(MySQLParser.ERROR, 0); +}; + +KeywordsCanBeIdContext.prototype.ERRORS = function() { + return this.getToken(MySQLParser.ERRORS, 0); +}; + +KeywordsCanBeIdContext.prototype.ESCAPE = function() { + return this.getToken(MySQLParser.ESCAPE, 0); +}; + +KeywordsCanBeIdContext.prototype.EVEN = function() { + return this.getToken(MySQLParser.EVEN, 0); +}; + +KeywordsCanBeIdContext.prototype.EVENT = function() { + return this.getToken(MySQLParser.EVENT, 0); +}; + +KeywordsCanBeIdContext.prototype.EVENTS = function() { + return this.getToken(MySQLParser.EVENTS, 0); +}; + +KeywordsCanBeIdContext.prototype.EVERY = function() { + return this.getToken(MySQLParser.EVERY, 0); +}; + +KeywordsCanBeIdContext.prototype.EXCHANGE = function() { + return this.getToken(MySQLParser.EXCHANGE, 0); +}; + +KeywordsCanBeIdContext.prototype.EXCLUSIVE = function() { + return this.getToken(MySQLParser.EXCLUSIVE, 0); +}; + +KeywordsCanBeIdContext.prototype.EXPIRE = function() { + return this.getToken(MySQLParser.EXPIRE, 0); +}; + +KeywordsCanBeIdContext.prototype.EXPORT = function() { + return this.getToken(MySQLParser.EXPORT, 0); +}; + +KeywordsCanBeIdContext.prototype.EXTENDED = function() { + return this.getToken(MySQLParser.EXTENDED, 0); +}; + +KeywordsCanBeIdContext.prototype.EXTENT_SIZE = function() { + return this.getToken(MySQLParser.EXTENT_SIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.FAST = function() { + return this.getToken(MySQLParser.FAST, 0); +}; + +KeywordsCanBeIdContext.prototype.FAULTS = function() { + return this.getToken(MySQLParser.FAULTS, 0); +}; + +KeywordsCanBeIdContext.prototype.FIELDS = function() { + return this.getToken(MySQLParser.FIELDS, 0); +}; + +KeywordsCanBeIdContext.prototype.FILE_BLOCK_SIZE = function() { + return this.getToken(MySQLParser.FILE_BLOCK_SIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.FILTER = function() { + return this.getToken(MySQLParser.FILTER, 0); +}; + +KeywordsCanBeIdContext.prototype.FIREWALL_ADMIN = function() { + return this.getToken(MySQLParser.FIREWALL_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.FIREWALL_USER = function() { + return this.getToken(MySQLParser.FIREWALL_USER, 0); +}; + +KeywordsCanBeIdContext.prototype.FIRST = function() { + return this.getToken(MySQLParser.FIRST, 0); +}; + +KeywordsCanBeIdContext.prototype.FIXED = function() { + return this.getToken(MySQLParser.FIXED, 0); +}; + +KeywordsCanBeIdContext.prototype.FLUSH = function() { + return this.getToken(MySQLParser.FLUSH, 0); +}; + +KeywordsCanBeIdContext.prototype.FOLLOWS = function() { + return this.getToken(MySQLParser.FOLLOWS, 0); +}; + +KeywordsCanBeIdContext.prototype.FOUND = function() { + return this.getToken(MySQLParser.FOUND, 0); +}; + +KeywordsCanBeIdContext.prototype.FULL = function() { + return this.getToken(MySQLParser.FULL, 0); +}; + +KeywordsCanBeIdContext.prototype.FUNCTION = function() { + return this.getToken(MySQLParser.FUNCTION, 0); +}; + +KeywordsCanBeIdContext.prototype.GENERAL = function() { + return this.getToken(MySQLParser.GENERAL, 0); +}; + +KeywordsCanBeIdContext.prototype.GLOBAL = function() { + return this.getToken(MySQLParser.GLOBAL, 0); +}; + +KeywordsCanBeIdContext.prototype.GRANTS = function() { + return this.getToken(MySQLParser.GRANTS, 0); +}; + +KeywordsCanBeIdContext.prototype.GROUP_REPLICATION = function() { + return this.getToken(MySQLParser.GROUP_REPLICATION, 0); +}; + +KeywordsCanBeIdContext.prototype.GROUP_REPLICATION_ADMIN = function() { + return this.getToken(MySQLParser.GROUP_REPLICATION_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.HANDLER = function() { + return this.getToken(MySQLParser.HANDLER, 0); +}; + +KeywordsCanBeIdContext.prototype.HASH = function() { + return this.getToken(MySQLParser.HASH, 0); +}; + +KeywordsCanBeIdContext.prototype.HELP = function() { + return this.getToken(MySQLParser.HELP, 0); +}; + +KeywordsCanBeIdContext.prototype.HOST = function() { + return this.getToken(MySQLParser.HOST, 0); +}; + +KeywordsCanBeIdContext.prototype.HOSTS = function() { + return this.getToken(MySQLParser.HOSTS, 0); +}; + +KeywordsCanBeIdContext.prototype.IDENTIFIED = function() { + return this.getToken(MySQLParser.IDENTIFIED, 0); +}; + +KeywordsCanBeIdContext.prototype.IGNORE_SERVER_IDS = function() { + return this.getToken(MySQLParser.IGNORE_SERVER_IDS, 0); +}; + +KeywordsCanBeIdContext.prototype.IMPORT = function() { + return this.getToken(MySQLParser.IMPORT, 0); +}; + +KeywordsCanBeIdContext.prototype.INDEXES = function() { + return this.getToken(MySQLParser.INDEXES, 0); +}; + +KeywordsCanBeIdContext.prototype.INITIAL_SIZE = function() { + return this.getToken(MySQLParser.INITIAL_SIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.INNODB_REDO_LOG_ARCHIVE = function() { + return this.getToken(MySQLParser.INNODB_REDO_LOG_ARCHIVE, 0); +}; + +KeywordsCanBeIdContext.prototype.INPLACE = function() { + return this.getToken(MySQLParser.INPLACE, 0); +}; + +KeywordsCanBeIdContext.prototype.INSERT_METHOD = function() { + return this.getToken(MySQLParser.INSERT_METHOD, 0); +}; + +KeywordsCanBeIdContext.prototype.INSTALL = function() { + return this.getToken(MySQLParser.INSTALL, 0); +}; + +KeywordsCanBeIdContext.prototype.INSTANCE = function() { + return this.getToken(MySQLParser.INSTANCE, 0); +}; + +KeywordsCanBeIdContext.prototype.INTERNAL = function() { + return this.getToken(MySQLParser.INTERNAL, 0); +}; + +KeywordsCanBeIdContext.prototype.INVOKER = function() { + return this.getToken(MySQLParser.INVOKER, 0); +}; + +KeywordsCanBeIdContext.prototype.IO = function() { + return this.getToken(MySQLParser.IO, 0); +}; + +KeywordsCanBeIdContext.prototype.IO_THREAD = function() { + return this.getToken(MySQLParser.IO_THREAD, 0); +}; + +KeywordsCanBeIdContext.prototype.IPC = function() { + return this.getToken(MySQLParser.IPC, 0); +}; + +KeywordsCanBeIdContext.prototype.ISOLATION = function() { + return this.getToken(MySQLParser.ISOLATION, 0); +}; + +KeywordsCanBeIdContext.prototype.ISSUER = function() { + return this.getToken(MySQLParser.ISSUER, 0); +}; + +KeywordsCanBeIdContext.prototype.JSON = function() { + return this.getToken(MySQLParser.JSON, 0); +}; + +KeywordsCanBeIdContext.prototype.KEY_BLOCK_SIZE = function() { + return this.getToken(MySQLParser.KEY_BLOCK_SIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.LANGUAGE = function() { + return this.getToken(MySQLParser.LANGUAGE, 0); +}; + +KeywordsCanBeIdContext.prototype.LAST = function() { + return this.getToken(MySQLParser.LAST, 0); +}; + +KeywordsCanBeIdContext.prototype.LEAVES = function() { + return this.getToken(MySQLParser.LEAVES, 0); +}; + +KeywordsCanBeIdContext.prototype.LESS = function() { + return this.getToken(MySQLParser.LESS, 0); +}; + +KeywordsCanBeIdContext.prototype.LEVEL = function() { + return this.getToken(MySQLParser.LEVEL, 0); +}; + +KeywordsCanBeIdContext.prototype.LIST = function() { + return this.getToken(MySQLParser.LIST, 0); +}; + +KeywordsCanBeIdContext.prototype.LOCAL = function() { + return this.getToken(MySQLParser.LOCAL, 0); +}; + +KeywordsCanBeIdContext.prototype.LOGFILE = function() { + return this.getToken(MySQLParser.LOGFILE, 0); +}; + +KeywordsCanBeIdContext.prototype.LOGS = function() { + return this.getToken(MySQLParser.LOGS, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER = function() { + return this.getToken(MySQLParser.MASTER, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_AUTO_POSITION = function() { + return this.getToken(MySQLParser.MASTER_AUTO_POSITION, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_CONNECT_RETRY = function() { + return this.getToken(MySQLParser.MASTER_CONNECT_RETRY, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_DELAY = function() { + return this.getToken(MySQLParser.MASTER_DELAY, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_HEARTBEAT_PERIOD = function() { + return this.getToken(MySQLParser.MASTER_HEARTBEAT_PERIOD, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_HOST = function() { + return this.getToken(MySQLParser.MASTER_HOST, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_LOG_FILE = function() { + return this.getToken(MySQLParser.MASTER_LOG_FILE, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_LOG_POS = function() { + return this.getToken(MySQLParser.MASTER_LOG_POS, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_PASSWORD = function() { + return this.getToken(MySQLParser.MASTER_PASSWORD, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_PORT = function() { + return this.getToken(MySQLParser.MASTER_PORT, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_RETRY_COUNT = function() { + return this.getToken(MySQLParser.MASTER_RETRY_COUNT, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_SSL = function() { + return this.getToken(MySQLParser.MASTER_SSL, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_SSL_CA = function() { + return this.getToken(MySQLParser.MASTER_SSL_CA, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_SSL_CAPATH = function() { + return this.getToken(MySQLParser.MASTER_SSL_CAPATH, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_SSL_CERT = function() { + return this.getToken(MySQLParser.MASTER_SSL_CERT, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_SSL_CIPHER = function() { + return this.getToken(MySQLParser.MASTER_SSL_CIPHER, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_SSL_CRL = function() { + return this.getToken(MySQLParser.MASTER_SSL_CRL, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_SSL_CRLPATH = function() { + return this.getToken(MySQLParser.MASTER_SSL_CRLPATH, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_SSL_KEY = function() { + return this.getToken(MySQLParser.MASTER_SSL_KEY, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_TLS_VERSION = function() { + return this.getToken(MySQLParser.MASTER_TLS_VERSION, 0); +}; + +KeywordsCanBeIdContext.prototype.MASTER_USER = function() { + return this.getToken(MySQLParser.MASTER_USER, 0); +}; + +KeywordsCanBeIdContext.prototype.MAX_CONNECTIONS_PER_HOUR = function() { + return this.getToken(MySQLParser.MAX_CONNECTIONS_PER_HOUR, 0); +}; + +KeywordsCanBeIdContext.prototype.MAX_QUERIES_PER_HOUR = function() { + return this.getToken(MySQLParser.MAX_QUERIES_PER_HOUR, 0); +}; + +KeywordsCanBeIdContext.prototype.MAX_ROWS = function() { + return this.getToken(MySQLParser.MAX_ROWS, 0); +}; + +KeywordsCanBeIdContext.prototype.MAX_SIZE = function() { + return this.getToken(MySQLParser.MAX_SIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.MAX_UPDATES_PER_HOUR = function() { + return this.getToken(MySQLParser.MAX_UPDATES_PER_HOUR, 0); +}; + +KeywordsCanBeIdContext.prototype.MAX_USER_CONNECTIONS = function() { + return this.getToken(MySQLParser.MAX_USER_CONNECTIONS, 0); +}; + +KeywordsCanBeIdContext.prototype.MEDIUM = function() { + return this.getToken(MySQLParser.MEDIUM, 0); +}; + +KeywordsCanBeIdContext.prototype.MEMORY = function() { + return this.getToken(MySQLParser.MEMORY, 0); +}; + +KeywordsCanBeIdContext.prototype.MERGE = function() { + return this.getToken(MySQLParser.MERGE, 0); +}; + +KeywordsCanBeIdContext.prototype.MESSAGE_TEXT = function() { + return this.getToken(MySQLParser.MESSAGE_TEXT, 0); +}; + +KeywordsCanBeIdContext.prototype.MID = function() { + return this.getToken(MySQLParser.MID, 0); +}; + +KeywordsCanBeIdContext.prototype.MIGRATE = function() { + return this.getToken(MySQLParser.MIGRATE, 0); +}; + +KeywordsCanBeIdContext.prototype.MIN_ROWS = function() { + return this.getToken(MySQLParser.MIN_ROWS, 0); +}; + +KeywordsCanBeIdContext.prototype.MODE = function() { + return this.getToken(MySQLParser.MODE, 0); +}; + +KeywordsCanBeIdContext.prototype.MODIFY = function() { + return this.getToken(MySQLParser.MODIFY, 0); +}; + +KeywordsCanBeIdContext.prototype.MUTEX = function() { + return this.getToken(MySQLParser.MUTEX, 0); +}; + +KeywordsCanBeIdContext.prototype.MYSQL = function() { + return this.getToken(MySQLParser.MYSQL, 0); +}; + +KeywordsCanBeIdContext.prototype.MYSQL_ERRNO = function() { + return this.getToken(MySQLParser.MYSQL_ERRNO, 0); +}; + +KeywordsCanBeIdContext.prototype.NAME = function() { + return this.getToken(MySQLParser.NAME, 0); +}; + +KeywordsCanBeIdContext.prototype.NAMES = function() { + return this.getToken(MySQLParser.NAMES, 0); +}; + +KeywordsCanBeIdContext.prototype.NCHAR = function() { + return this.getToken(MySQLParser.NCHAR, 0); +}; + +KeywordsCanBeIdContext.prototype.NDB_STORED_USER = function() { + return this.getToken(MySQLParser.NDB_STORED_USER, 0); +}; + +KeywordsCanBeIdContext.prototype.NEVER = function() { + return this.getToken(MySQLParser.NEVER, 0); +}; + +KeywordsCanBeIdContext.prototype.NEXT = function() { + return this.getToken(MySQLParser.NEXT, 0); +}; + +KeywordsCanBeIdContext.prototype.NO = function() { + return this.getToken(MySQLParser.NO, 0); +}; + +KeywordsCanBeIdContext.prototype.NODEGROUP = function() { + return this.getToken(MySQLParser.NODEGROUP, 0); +}; + +KeywordsCanBeIdContext.prototype.NONE = function() { + return this.getToken(MySQLParser.NONE, 0); +}; + +KeywordsCanBeIdContext.prototype.NUMBER = function() { + return this.getToken(MySQLParser.NUMBER, 0); +}; + +KeywordsCanBeIdContext.prototype.OFFLINE = function() { + return this.getToken(MySQLParser.OFFLINE, 0); +}; + +KeywordsCanBeIdContext.prototype.OFFSET = function() { + return this.getToken(MySQLParser.OFFSET, 0); +}; + +KeywordsCanBeIdContext.prototype.OJ = function() { + return this.getToken(MySQLParser.OJ, 0); +}; + +KeywordsCanBeIdContext.prototype.OLD_PASSWORD = function() { + return this.getToken(MySQLParser.OLD_PASSWORD, 0); +}; + +KeywordsCanBeIdContext.prototype.ONE = function() { + return this.getToken(MySQLParser.ONE, 0); +}; + +KeywordsCanBeIdContext.prototype.ONLINE = function() { + return this.getToken(MySQLParser.ONLINE, 0); +}; + +KeywordsCanBeIdContext.prototype.ONLY = function() { + return this.getToken(MySQLParser.ONLY, 0); +}; + +KeywordsCanBeIdContext.prototype.OPEN = function() { + return this.getToken(MySQLParser.OPEN, 0); +}; + +KeywordsCanBeIdContext.prototype.OPTIMIZER_COSTS = function() { + return this.getToken(MySQLParser.OPTIMIZER_COSTS, 0); +}; + +KeywordsCanBeIdContext.prototype.OPTIONS = function() { + return this.getToken(MySQLParser.OPTIONS, 0); +}; + +KeywordsCanBeIdContext.prototype.OWNER = function() { + return this.getToken(MySQLParser.OWNER, 0); +}; + +KeywordsCanBeIdContext.prototype.PACK_KEYS = function() { + return this.getToken(MySQLParser.PACK_KEYS, 0); +}; + +KeywordsCanBeIdContext.prototype.PAGE = function() { + return this.getToken(MySQLParser.PAGE, 0); +}; + +KeywordsCanBeIdContext.prototype.PARSER = function() { + return this.getToken(MySQLParser.PARSER, 0); +}; + +KeywordsCanBeIdContext.prototype.PARTIAL = function() { + return this.getToken(MySQLParser.PARTIAL, 0); +}; + +KeywordsCanBeIdContext.prototype.PARTITIONING = function() { + return this.getToken(MySQLParser.PARTITIONING, 0); +}; + +KeywordsCanBeIdContext.prototype.PARTITIONS = function() { + return this.getToken(MySQLParser.PARTITIONS, 0); +}; + +KeywordsCanBeIdContext.prototype.PASSWORD = function() { + return this.getToken(MySQLParser.PASSWORD, 0); +}; + +KeywordsCanBeIdContext.prototype.PERSIST_RO_VARIABLES_ADMIN = function() { + return this.getToken(MySQLParser.PERSIST_RO_VARIABLES_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.PHASE = function() { + return this.getToken(MySQLParser.PHASE, 0); +}; + +KeywordsCanBeIdContext.prototype.PLUGINS = function() { + return this.getToken(MySQLParser.PLUGINS, 0); +}; + +KeywordsCanBeIdContext.prototype.PLUGIN_DIR = function() { + return this.getToken(MySQLParser.PLUGIN_DIR, 0); +}; + +KeywordsCanBeIdContext.prototype.PLUGIN = function() { + return this.getToken(MySQLParser.PLUGIN, 0); +}; + +KeywordsCanBeIdContext.prototype.PORT = function() { + return this.getToken(MySQLParser.PORT, 0); +}; + +KeywordsCanBeIdContext.prototype.PRECEDES = function() { + return this.getToken(MySQLParser.PRECEDES, 0); +}; + +KeywordsCanBeIdContext.prototype.PREPARE = function() { + return this.getToken(MySQLParser.PREPARE, 0); +}; + +KeywordsCanBeIdContext.prototype.PRESERVE = function() { + return this.getToken(MySQLParser.PRESERVE, 0); +}; + +KeywordsCanBeIdContext.prototype.PREV = function() { + return this.getToken(MySQLParser.PREV, 0); +}; + +KeywordsCanBeIdContext.prototype.PROCESSLIST = function() { + return this.getToken(MySQLParser.PROCESSLIST, 0); +}; + +KeywordsCanBeIdContext.prototype.PROFILE = function() { + return this.getToken(MySQLParser.PROFILE, 0); +}; + +KeywordsCanBeIdContext.prototype.PROFILES = function() { + return this.getToken(MySQLParser.PROFILES, 0); +}; + +KeywordsCanBeIdContext.prototype.PROXY = function() { + return this.getToken(MySQLParser.PROXY, 0); +}; + +KeywordsCanBeIdContext.prototype.QUERY = function() { + return this.getToken(MySQLParser.QUERY, 0); +}; + +KeywordsCanBeIdContext.prototype.QUICK = function() { + return this.getToken(MySQLParser.QUICK, 0); +}; + +KeywordsCanBeIdContext.prototype.REBUILD = function() { + return this.getToken(MySQLParser.REBUILD, 0); +}; + +KeywordsCanBeIdContext.prototype.RECOVER = function() { + return this.getToken(MySQLParser.RECOVER, 0); +}; + +KeywordsCanBeIdContext.prototype.REDO_BUFFER_SIZE = function() { + return this.getToken(MySQLParser.REDO_BUFFER_SIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.REDUNDANT = function() { + return this.getToken(MySQLParser.REDUNDANT, 0); +}; + +KeywordsCanBeIdContext.prototype.RELAY = function() { + return this.getToken(MySQLParser.RELAY, 0); +}; + +KeywordsCanBeIdContext.prototype.RELAYLOG = function() { + return this.getToken(MySQLParser.RELAYLOG, 0); +}; + +KeywordsCanBeIdContext.prototype.RELAY_LOG_FILE = function() { + return this.getToken(MySQLParser.RELAY_LOG_FILE, 0); +}; + +KeywordsCanBeIdContext.prototype.RELAY_LOG_POS = function() { + return this.getToken(MySQLParser.RELAY_LOG_POS, 0); +}; + +KeywordsCanBeIdContext.prototype.REMOVE = function() { + return this.getToken(MySQLParser.REMOVE, 0); +}; + +KeywordsCanBeIdContext.prototype.REORGANIZE = function() { + return this.getToken(MySQLParser.REORGANIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.REPAIR = function() { + return this.getToken(MySQLParser.REPAIR, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATE_DO_DB = function() { + return this.getToken(MySQLParser.REPLICATE_DO_DB, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATE_DO_TABLE = function() { + return this.getToken(MySQLParser.REPLICATE_DO_TABLE, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATE_IGNORE_DB = function() { + return this.getToken(MySQLParser.REPLICATE_IGNORE_DB, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATE_IGNORE_TABLE = function() { + return this.getToken(MySQLParser.REPLICATE_IGNORE_TABLE, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATE_REWRITE_DB = function() { + return this.getToken(MySQLParser.REPLICATE_REWRITE_DB, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATE_WILD_DO_TABLE = function() { + return this.getToken(MySQLParser.REPLICATE_WILD_DO_TABLE, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATE_WILD_IGNORE_TABLE = function() { + return this.getToken(MySQLParser.REPLICATE_WILD_IGNORE_TABLE, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATION = function() { + return this.getToken(MySQLParser.REPLICATION, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATION_APPLIER = function() { + return this.getToken(MySQLParser.REPLICATION_APPLIER, 0); +}; + +KeywordsCanBeIdContext.prototype.REPLICATION_SLAVE_ADMIN = function() { + return this.getToken(MySQLParser.REPLICATION_SLAVE_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.RESET = function() { + return this.getToken(MySQLParser.RESET, 0); +}; + +KeywordsCanBeIdContext.prototype.RESOURCE_GROUP_ADMIN = function() { + return this.getToken(MySQLParser.RESOURCE_GROUP_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.RESOURCE_GROUP_USER = function() { + return this.getToken(MySQLParser.RESOURCE_GROUP_USER, 0); +}; + +KeywordsCanBeIdContext.prototype.RESUME = function() { + return this.getToken(MySQLParser.RESUME, 0); +}; + +KeywordsCanBeIdContext.prototype.RETURNED_SQLSTATE = function() { + return this.getToken(MySQLParser.RETURNED_SQLSTATE, 0); +}; + +KeywordsCanBeIdContext.prototype.RETURNS = function() { + return this.getToken(MySQLParser.RETURNS, 0); +}; + +KeywordsCanBeIdContext.prototype.ROLE = function() { + return this.getToken(MySQLParser.ROLE, 0); +}; + +KeywordsCanBeIdContext.prototype.ROLE_ADMIN = function() { + return this.getToken(MySQLParser.ROLE_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.ROLLBACK = function() { + return this.getToken(MySQLParser.ROLLBACK, 0); +}; + +KeywordsCanBeIdContext.prototype.ROLLUP = function() { + return this.getToken(MySQLParser.ROLLUP, 0); +}; + +KeywordsCanBeIdContext.prototype.ROTATE = function() { + return this.getToken(MySQLParser.ROTATE, 0); +}; + +KeywordsCanBeIdContext.prototype.ROW = function() { + return this.getToken(MySQLParser.ROW, 0); +}; + +KeywordsCanBeIdContext.prototype.ROWS = function() { + return this.getToken(MySQLParser.ROWS, 0); +}; + +KeywordsCanBeIdContext.prototype.ROW_FORMAT = function() { + return this.getToken(MySQLParser.ROW_FORMAT, 0); +}; + +KeywordsCanBeIdContext.prototype.SAVEPOINT = function() { + return this.getToken(MySQLParser.SAVEPOINT, 0); +}; + +KeywordsCanBeIdContext.prototype.SCHEDULE = function() { + return this.getToken(MySQLParser.SCHEDULE, 0); +}; + +KeywordsCanBeIdContext.prototype.SCHEMA_NAME = function() { + return this.getToken(MySQLParser.SCHEMA_NAME, 0); +}; + +KeywordsCanBeIdContext.prototype.SECURITY = function() { + return this.getToken(MySQLParser.SECURITY, 0); +}; + +KeywordsCanBeIdContext.prototype.SERIAL = function() { + return this.getToken(MySQLParser.SERIAL, 0); +}; + +KeywordsCanBeIdContext.prototype.SERVER = function() { + return this.getToken(MySQLParser.SERVER, 0); +}; + +KeywordsCanBeIdContext.prototype.SESSION = function() { + return this.getToken(MySQLParser.SESSION, 0); +}; + +KeywordsCanBeIdContext.prototype.SESSION_VARIABLES_ADMIN = function() { + return this.getToken(MySQLParser.SESSION_VARIABLES_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.SET_USER_ID = function() { + return this.getToken(MySQLParser.SET_USER_ID, 0); +}; + +KeywordsCanBeIdContext.prototype.SHARE = function() { + return this.getToken(MySQLParser.SHARE, 0); +}; + +KeywordsCanBeIdContext.prototype.SHARED = function() { + return this.getToken(MySQLParser.SHARED, 0); +}; + +KeywordsCanBeIdContext.prototype.SHOW_ROUTINE = function() { + return this.getToken(MySQLParser.SHOW_ROUTINE, 0); +}; + +KeywordsCanBeIdContext.prototype.SIGNED = function() { + return this.getToken(MySQLParser.SIGNED, 0); +}; + +KeywordsCanBeIdContext.prototype.SIMPLE = function() { + return this.getToken(MySQLParser.SIMPLE, 0); +}; + +KeywordsCanBeIdContext.prototype.SLAVE = function() { + return this.getToken(MySQLParser.SLAVE, 0); +}; + +KeywordsCanBeIdContext.prototype.SLOW = function() { + return this.getToken(MySQLParser.SLOW, 0); +}; + +KeywordsCanBeIdContext.prototype.SNAPSHOT = function() { + return this.getToken(MySQLParser.SNAPSHOT, 0); +}; + +KeywordsCanBeIdContext.prototype.SOCKET = function() { + return this.getToken(MySQLParser.SOCKET, 0); +}; + +KeywordsCanBeIdContext.prototype.SOME = function() { + return this.getToken(MySQLParser.SOME, 0); +}; + +KeywordsCanBeIdContext.prototype.SONAME = function() { + return this.getToken(MySQLParser.SONAME, 0); +}; + +KeywordsCanBeIdContext.prototype.SOUNDS = function() { + return this.getToken(MySQLParser.SOUNDS, 0); +}; + +KeywordsCanBeIdContext.prototype.SOURCE = function() { + return this.getToken(MySQLParser.SOURCE, 0); +}; + +KeywordsCanBeIdContext.prototype.SQL_AFTER_GTIDS = function() { + return this.getToken(MySQLParser.SQL_AFTER_GTIDS, 0); +}; + +KeywordsCanBeIdContext.prototype.SQL_AFTER_MTS_GAPS = function() { + return this.getToken(MySQLParser.SQL_AFTER_MTS_GAPS, 0); +}; + +KeywordsCanBeIdContext.prototype.SQL_BEFORE_GTIDS = function() { + return this.getToken(MySQLParser.SQL_BEFORE_GTIDS, 0); +}; + +KeywordsCanBeIdContext.prototype.SQL_BUFFER_RESULT = function() { + return this.getToken(MySQLParser.SQL_BUFFER_RESULT, 0); +}; + +KeywordsCanBeIdContext.prototype.SQL_CACHE = function() { + return this.getToken(MySQLParser.SQL_CACHE, 0); +}; + +KeywordsCanBeIdContext.prototype.SQL_NO_CACHE = function() { + return this.getToken(MySQLParser.SQL_NO_CACHE, 0); +}; + +KeywordsCanBeIdContext.prototype.SQL_THREAD = function() { + return this.getToken(MySQLParser.SQL_THREAD, 0); +}; + +KeywordsCanBeIdContext.prototype.STACKED = function() { + return this.getToken(MySQLParser.STACKED, 0); +}; + +KeywordsCanBeIdContext.prototype.START = function() { + return this.getToken(MySQLParser.START, 0); +}; + +KeywordsCanBeIdContext.prototype.STARTS = function() { + return this.getToken(MySQLParser.STARTS, 0); +}; + +KeywordsCanBeIdContext.prototype.STATS_AUTO_RECALC = function() { + return this.getToken(MySQLParser.STATS_AUTO_RECALC, 0); +}; + +KeywordsCanBeIdContext.prototype.STATS_PERSISTENT = function() { + return this.getToken(MySQLParser.STATS_PERSISTENT, 0); +}; + +KeywordsCanBeIdContext.prototype.STATS_SAMPLE_PAGES = function() { + return this.getToken(MySQLParser.STATS_SAMPLE_PAGES, 0); +}; + +KeywordsCanBeIdContext.prototype.STATUS = function() { + return this.getToken(MySQLParser.STATUS, 0); +}; + +KeywordsCanBeIdContext.prototype.STOP = function() { + return this.getToken(MySQLParser.STOP, 0); +}; + +KeywordsCanBeIdContext.prototype.STORAGE = function() { + return this.getToken(MySQLParser.STORAGE, 0); +}; + +KeywordsCanBeIdContext.prototype.STRING = function() { + return this.getToken(MySQLParser.STRING, 0); +}; + +KeywordsCanBeIdContext.prototype.SUBCLASS_ORIGIN = function() { + return this.getToken(MySQLParser.SUBCLASS_ORIGIN, 0); +}; + +KeywordsCanBeIdContext.prototype.SUBJECT = function() { + return this.getToken(MySQLParser.SUBJECT, 0); +}; + +KeywordsCanBeIdContext.prototype.SUBPARTITION = function() { + return this.getToken(MySQLParser.SUBPARTITION, 0); +}; + +KeywordsCanBeIdContext.prototype.SUBPARTITIONS = function() { + return this.getToken(MySQLParser.SUBPARTITIONS, 0); +}; + +KeywordsCanBeIdContext.prototype.SUSPEND = function() { + return this.getToken(MySQLParser.SUSPEND, 0); +}; + +KeywordsCanBeIdContext.prototype.SWAPS = function() { + return this.getToken(MySQLParser.SWAPS, 0); +}; + +KeywordsCanBeIdContext.prototype.SWITCHES = function() { + return this.getToken(MySQLParser.SWITCHES, 0); +}; + +KeywordsCanBeIdContext.prototype.SYSTEM_VARIABLES_ADMIN = function() { + return this.getToken(MySQLParser.SYSTEM_VARIABLES_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.TABLE_NAME = function() { + return this.getToken(MySQLParser.TABLE_NAME, 0); +}; + +KeywordsCanBeIdContext.prototype.TABLESPACE = function() { + return this.getToken(MySQLParser.TABLESPACE, 0); +}; + +KeywordsCanBeIdContext.prototype.TABLE_ENCRYPTION_ADMIN = function() { + return this.getToken(MySQLParser.TABLE_ENCRYPTION_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.TEMPORARY = function() { + return this.getToken(MySQLParser.TEMPORARY, 0); +}; + +KeywordsCanBeIdContext.prototype.TEMPTABLE = function() { + return this.getToken(MySQLParser.TEMPTABLE, 0); +}; + +KeywordsCanBeIdContext.prototype.THAN = function() { + return this.getToken(MySQLParser.THAN, 0); +}; + +KeywordsCanBeIdContext.prototype.TRADITIONAL = function() { + return this.getToken(MySQLParser.TRADITIONAL, 0); +}; + +KeywordsCanBeIdContext.prototype.TRANSACTION = function() { + return this.getToken(MySQLParser.TRANSACTION, 0); +}; + +KeywordsCanBeIdContext.prototype.TRANSACTIONAL = function() { + return this.getToken(MySQLParser.TRANSACTIONAL, 0); +}; + +KeywordsCanBeIdContext.prototype.TRIGGERS = function() { + return this.getToken(MySQLParser.TRIGGERS, 0); +}; + +KeywordsCanBeIdContext.prototype.TRUNCATE = function() { + return this.getToken(MySQLParser.TRUNCATE, 0); +}; + +KeywordsCanBeIdContext.prototype.UNDEFINED = function() { + return this.getToken(MySQLParser.UNDEFINED, 0); +}; + +KeywordsCanBeIdContext.prototype.UNDOFILE = function() { + return this.getToken(MySQLParser.UNDOFILE, 0); +}; + +KeywordsCanBeIdContext.prototype.UNDO_BUFFER_SIZE = function() { + return this.getToken(MySQLParser.UNDO_BUFFER_SIZE, 0); +}; + +KeywordsCanBeIdContext.prototype.UNINSTALL = function() { + return this.getToken(MySQLParser.UNINSTALL, 0); +}; + +KeywordsCanBeIdContext.prototype.UNKNOWN = function() { + return this.getToken(MySQLParser.UNKNOWN, 0); +}; + +KeywordsCanBeIdContext.prototype.UNTIL = function() { + return this.getToken(MySQLParser.UNTIL, 0); +}; + +KeywordsCanBeIdContext.prototype.UPGRADE = function() { + return this.getToken(MySQLParser.UPGRADE, 0); +}; + +KeywordsCanBeIdContext.prototype.USER = function() { + return this.getToken(MySQLParser.USER, 0); +}; + +KeywordsCanBeIdContext.prototype.USE_FRM = function() { + return this.getToken(MySQLParser.USE_FRM, 0); +}; + +KeywordsCanBeIdContext.prototype.USER_RESOURCES = function() { + return this.getToken(MySQLParser.USER_RESOURCES, 0); +}; + +KeywordsCanBeIdContext.prototype.VALIDATION = function() { + return this.getToken(MySQLParser.VALIDATION, 0); +}; + +KeywordsCanBeIdContext.prototype.VALUE = function() { + return this.getToken(MySQLParser.VALUE, 0); +}; + +KeywordsCanBeIdContext.prototype.VARIABLES = function() { + return this.getToken(MySQLParser.VARIABLES, 0); +}; + +KeywordsCanBeIdContext.prototype.VERSION_TOKEN_ADMIN = function() { + return this.getToken(MySQLParser.VERSION_TOKEN_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.VIEW = function() { + return this.getToken(MySQLParser.VIEW, 0); +}; + +KeywordsCanBeIdContext.prototype.WAIT = function() { + return this.getToken(MySQLParser.WAIT, 0); +}; + +KeywordsCanBeIdContext.prototype.WARNINGS = function() { + return this.getToken(MySQLParser.WARNINGS, 0); +}; + +KeywordsCanBeIdContext.prototype.WITHOUT = function() { + return this.getToken(MySQLParser.WITHOUT, 0); +}; + +KeywordsCanBeIdContext.prototype.WORK = function() { + return this.getToken(MySQLParser.WORK, 0); +}; + +KeywordsCanBeIdContext.prototype.WRAPPER = function() { + return this.getToken(MySQLParser.WRAPPER, 0); +}; + +KeywordsCanBeIdContext.prototype.X509 = function() { + return this.getToken(MySQLParser.X509, 0); +}; + +KeywordsCanBeIdContext.prototype.XA = function() { + return this.getToken(MySQLParser.XA, 0); +}; + +KeywordsCanBeIdContext.prototype.XA_RECOVER_ADMIN = function() { + return this.getToken(MySQLParser.XA_RECOVER_ADMIN, 0); +}; + +KeywordsCanBeIdContext.prototype.XML = function() { + return this.getToken(MySQLParser.XML, 0); +}; + +KeywordsCanBeIdContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterKeywordsCanBeId(this); + } +}; + +KeywordsCanBeIdContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitKeywordsCanBeId(this); + } +}; + +KeywordsCanBeIdContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitKeywordsCanBeId(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.KeywordsCanBeIdContext = KeywordsCanBeIdContext; + +MySQLParser.prototype.keywordsCanBeId = function() { + + var localctx = new KeywordsCanBeIdContext(this, this._ctx, this.state); + this.enterRule(localctx, 626, MySQLParser.RULE_keywordsCanBeId); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6372; + _la = this._input.LA(1); + if(!(_la===MySQLParser.CURRENT || _la===MySQLParser.DIAGNOSTICS || _la===MySQLParser.NUMBER || _la===MySQLParser.STACKED || _la===MySQLParser.SERIAL || ((((_la - 270)) & ~0x1f) == 0 && ((1 << (_la - 270)) & ((1 << (MySQLParser.ACCOUNT - 270)) | (1 << (MySQLParser.ACTION - 270)) | (1 << (MySQLParser.AFTER - 270)) | (1 << (MySQLParser.AGGREGATE - 270)) | (1 << (MySQLParser.ALGORITHM - 270)) | (1 << (MySQLParser.ANY - 270)) | (1 << (MySQLParser.AT - 270)) | (1 << (MySQLParser.AUTHORS - 270)) | (1 << (MySQLParser.AUTOCOMMIT - 270)) | (1 << (MySQLParser.AUTOEXTEND_SIZE - 270)) | (1 << (MySQLParser.AUTO_INCREMENT - 270)) | (1 << (MySQLParser.AVG_ROW_LENGTH - 270)) | (1 << (MySQLParser.BEGIN - 270)) | (1 << (MySQLParser.BINLOG - 270)) | (1 << (MySQLParser.BIT - 270)) | (1 << (MySQLParser.BLOCK - 270)) | (1 << (MySQLParser.BOOL - 270)) | (1 << (MySQLParser.BOOLEAN - 270)) | (1 << (MySQLParser.BTREE - 270)) | (1 << (MySQLParser.CACHE - 270)) | (1 << (MySQLParser.CASCADED - 270)) | (1 << (MySQLParser.CHAIN - 270)) | (1 << (MySQLParser.CHANGED - 270)) | (1 << (MySQLParser.CHANNEL - 270)) | (1 << (MySQLParser.CHECKSUM - 270)) | (1 << (MySQLParser.PAGE_CHECKSUM - 270)) | (1 << (MySQLParser.CIPHER - 270)) | (1 << (MySQLParser.CLASS_ORIGIN - 270)) | (1 << (MySQLParser.CLIENT - 270)) | (1 << (MySQLParser.CLOSE - 270)) | (1 << (MySQLParser.COALESCE - 270)) | (1 << (MySQLParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1f) == 0 && ((1 << (_la - 302)) & ((1 << (MySQLParser.COLUMNS - 302)) | (1 << (MySQLParser.COLUMN_FORMAT - 302)) | (1 << (MySQLParser.COLUMN_NAME - 302)) | (1 << (MySQLParser.COMMENT - 302)) | (1 << (MySQLParser.COMMIT - 302)) | (1 << (MySQLParser.COMPACT - 302)) | (1 << (MySQLParser.COMPLETION - 302)) | (1 << (MySQLParser.COMPRESSED - 302)) | (1 << (MySQLParser.COMPRESSION - 302)) | (1 << (MySQLParser.CONCURRENT - 302)) | (1 << (MySQLParser.CONNECTION - 302)) | (1 << (MySQLParser.CONSISTENT - 302)) | (1 << (MySQLParser.CONSTRAINT_CATALOG - 302)) | (1 << (MySQLParser.CONSTRAINT_SCHEMA - 302)) | (1 << (MySQLParser.CONSTRAINT_NAME - 302)) | (1 << (MySQLParser.CONTAINS - 302)) | (1 << (MySQLParser.CONTEXT - 302)) | (1 << (MySQLParser.CONTRIBUTORS - 302)) | (1 << (MySQLParser.COPY - 302)) | (1 << (MySQLParser.CPU - 302)) | (1 << (MySQLParser.CURSOR_NAME - 302)) | (1 << (MySQLParser.DATA - 302)) | (1 << (MySQLParser.DATAFILE - 302)) | (1 << (MySQLParser.DEALLOCATE - 302)) | (1 << (MySQLParser.DEFAULT_AUTH - 302)) | (1 << (MySQLParser.DEFINER - 302)) | (1 << (MySQLParser.DELAY_KEY_WRITE - 302)) | (1 << (MySQLParser.DES_KEY_FILE - 302)) | (1 << (MySQLParser.DIRECTORY - 302)) | (1 << (MySQLParser.DISABLE - 302)) | (1 << (MySQLParser.DISCARD - 302)) | (1 << (MySQLParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1f) == 0 && ((1 << (_la - 334)) & ((1 << (MySQLParser.DO - 334)) | (1 << (MySQLParser.DUMPFILE - 334)) | (1 << (MySQLParser.DUPLICATE - 334)) | (1 << (MySQLParser.DYNAMIC - 334)) | (1 << (MySQLParser.ENABLE - 334)) | (1 << (MySQLParser.ENCRYPTION - 334)) | (1 << (MySQLParser.END - 334)) | (1 << (MySQLParser.ENDS - 334)) | (1 << (MySQLParser.ENGINE - 334)) | (1 << (MySQLParser.ENGINES - 334)) | (1 << (MySQLParser.ERROR - 334)) | (1 << (MySQLParser.ERRORS - 334)) | (1 << (MySQLParser.ESCAPE - 334)) | (1 << (MySQLParser.EVEN - 334)) | (1 << (MySQLParser.EVENT - 334)) | (1 << (MySQLParser.EVENTS - 334)) | (1 << (MySQLParser.EVERY - 334)) | (1 << (MySQLParser.EXCHANGE - 334)) | (1 << (MySQLParser.EXCLUSIVE - 334)) | (1 << (MySQLParser.EXPIRE - 334)) | (1 << (MySQLParser.EXPORT - 334)) | (1 << (MySQLParser.EXTENDED - 334)) | (1 << (MySQLParser.EXTENT_SIZE - 334)) | (1 << (MySQLParser.FAST - 334)) | (1 << (MySQLParser.FAULTS - 334)) | (1 << (MySQLParser.FIELDS - 334)) | (1 << (MySQLParser.FILE_BLOCK_SIZE - 334)) | (1 << (MySQLParser.FILTER - 334)) | (1 << (MySQLParser.FIRST - 334)) | (1 << (MySQLParser.FIXED - 334)) | (1 << (MySQLParser.FLUSH - 334)) | (1 << (MySQLParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1f) == 0 && ((1 << (_la - 366)) & ((1 << (MySQLParser.FOUND - 366)) | (1 << (MySQLParser.FULL - 366)) | (1 << (MySQLParser.FUNCTION - 366)) | (1 << (MySQLParser.GENERAL - 366)) | (1 << (MySQLParser.GLOBAL - 366)) | (1 << (MySQLParser.GRANTS - 366)) | (1 << (MySQLParser.GROUP_REPLICATION - 366)) | (1 << (MySQLParser.HANDLER - 366)) | (1 << (MySQLParser.HASH - 366)) | (1 << (MySQLParser.HELP - 366)) | (1 << (MySQLParser.HOST - 366)) | (1 << (MySQLParser.HOSTS - 366)) | (1 << (MySQLParser.IDENTIFIED - 366)) | (1 << (MySQLParser.IGNORE_SERVER_IDS - 366)) | (1 << (MySQLParser.IMPORT - 366)) | (1 << (MySQLParser.INDEXES - 366)) | (1 << (MySQLParser.INITIAL_SIZE - 366)) | (1 << (MySQLParser.INPLACE - 366)) | (1 << (MySQLParser.INSERT_METHOD - 366)) | (1 << (MySQLParser.INSTALL - 366)) | (1 << (MySQLParser.INSTANCE - 366)) | (1 << (MySQLParser.INVOKER - 366)) | (1 << (MySQLParser.IO - 366)) | (1 << (MySQLParser.IO_THREAD - 366)) | (1 << (MySQLParser.IPC - 366)) | (1 << (MySQLParser.ISOLATION - 366)) | (1 << (MySQLParser.ISSUER - 366)) | (1 << (MySQLParser.JSON - 366)) | (1 << (MySQLParser.KEY_BLOCK_SIZE - 366)) | (1 << (MySQLParser.LANGUAGE - 366)) | (1 << (MySQLParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1f) == 0 && ((1 << (_la - 398)) & ((1 << (MySQLParser.LEAVES - 398)) | (1 << (MySQLParser.LESS - 398)) | (1 << (MySQLParser.LEVEL - 398)) | (1 << (MySQLParser.LIST - 398)) | (1 << (MySQLParser.LOCAL - 398)) | (1 << (MySQLParser.LOGFILE - 398)) | (1 << (MySQLParser.LOGS - 398)) | (1 << (MySQLParser.MASTER - 398)) | (1 << (MySQLParser.MASTER_AUTO_POSITION - 398)) | (1 << (MySQLParser.MASTER_CONNECT_RETRY - 398)) | (1 << (MySQLParser.MASTER_DELAY - 398)) | (1 << (MySQLParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (MySQLParser.MASTER_HOST - 398)) | (1 << (MySQLParser.MASTER_LOG_FILE - 398)) | (1 << (MySQLParser.MASTER_LOG_POS - 398)) | (1 << (MySQLParser.MASTER_PASSWORD - 398)) | (1 << (MySQLParser.MASTER_PORT - 398)) | (1 << (MySQLParser.MASTER_RETRY_COUNT - 398)) | (1 << (MySQLParser.MASTER_SSL - 398)) | (1 << (MySQLParser.MASTER_SSL_CA - 398)) | (1 << (MySQLParser.MASTER_SSL_CAPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_CERT - 398)) | (1 << (MySQLParser.MASTER_SSL_CIPHER - 398)) | (1 << (MySQLParser.MASTER_SSL_CRL - 398)) | (1 << (MySQLParser.MASTER_SSL_CRLPATH - 398)) | (1 << (MySQLParser.MASTER_SSL_KEY - 398)) | (1 << (MySQLParser.MASTER_TLS_VERSION - 398)) | (1 << (MySQLParser.MASTER_USER - 398)) | (1 << (MySQLParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (MySQLParser.MAX_ROWS - 398)) | (1 << (MySQLParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1f) == 0 && ((1 << (_la - 430)) & ((1 << (MySQLParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (MySQLParser.MAX_USER_CONNECTIONS - 430)) | (1 << (MySQLParser.MEDIUM - 430)) | (1 << (MySQLParser.MERGE - 430)) | (1 << (MySQLParser.MESSAGE_TEXT - 430)) | (1 << (MySQLParser.MID - 430)) | (1 << (MySQLParser.MIGRATE - 430)) | (1 << (MySQLParser.MIN_ROWS - 430)) | (1 << (MySQLParser.MODE - 430)) | (1 << (MySQLParser.MODIFY - 430)) | (1 << (MySQLParser.MUTEX - 430)) | (1 << (MySQLParser.MYSQL - 430)) | (1 << (MySQLParser.MYSQL_ERRNO - 430)) | (1 << (MySQLParser.NAME - 430)) | (1 << (MySQLParser.NAMES - 430)) | (1 << (MySQLParser.NCHAR - 430)) | (1 << (MySQLParser.NEVER - 430)) | (1 << (MySQLParser.NEXT - 430)) | (1 << (MySQLParser.NO - 430)) | (1 << (MySQLParser.NODEGROUP - 430)) | (1 << (MySQLParser.NONE - 430)) | (1 << (MySQLParser.OFFLINE - 430)) | (1 << (MySQLParser.OFFSET - 430)) | (1 << (MySQLParser.OJ - 430)) | (1 << (MySQLParser.OLD_PASSWORD - 430)) | (1 << (MySQLParser.ONE - 430)) | (1 << (MySQLParser.ONLINE - 430)) | (1 << (MySQLParser.ONLY - 430)) | (1 << (MySQLParser.OPEN - 430)) | (1 << (MySQLParser.OPTIMIZER_COSTS - 430)) | (1 << (MySQLParser.OPTIONS - 430)) | (1 << (MySQLParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1f) == 0 && ((1 << (_la - 462)) & ((1 << (MySQLParser.PACK_KEYS - 462)) | (1 << (MySQLParser.PAGE - 462)) | (1 << (MySQLParser.PARSER - 462)) | (1 << (MySQLParser.PARTIAL - 462)) | (1 << (MySQLParser.PARTITIONING - 462)) | (1 << (MySQLParser.PARTITIONS - 462)) | (1 << (MySQLParser.PASSWORD - 462)) | (1 << (MySQLParser.PHASE - 462)) | (1 << (MySQLParser.PLUGIN - 462)) | (1 << (MySQLParser.PLUGIN_DIR - 462)) | (1 << (MySQLParser.PLUGINS - 462)) | (1 << (MySQLParser.PORT - 462)) | (1 << (MySQLParser.PRECEDES - 462)) | (1 << (MySQLParser.PREPARE - 462)) | (1 << (MySQLParser.PRESERVE - 462)) | (1 << (MySQLParser.PREV - 462)) | (1 << (MySQLParser.PROCESSLIST - 462)) | (1 << (MySQLParser.PROFILE - 462)) | (1 << (MySQLParser.PROFILES - 462)) | (1 << (MySQLParser.PROXY - 462)) | (1 << (MySQLParser.QUERY - 462)) | (1 << (MySQLParser.QUICK - 462)) | (1 << (MySQLParser.REBUILD - 462)) | (1 << (MySQLParser.RECOVER - 462)) | (1 << (MySQLParser.REDO_BUFFER_SIZE - 462)) | (1 << (MySQLParser.REDUNDANT - 462)) | (1 << (MySQLParser.RELAY - 462)) | (1 << (MySQLParser.RELAY_LOG_FILE - 462)) | (1 << (MySQLParser.RELAY_LOG_POS - 462)) | (1 << (MySQLParser.RELAYLOG - 462)) | (1 << (MySQLParser.REMOVE - 462)) | (1 << (MySQLParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1f) == 0 && ((1 << (_la - 494)) & ((1 << (MySQLParser.REPAIR - 494)) | (1 << (MySQLParser.REPLICATE_DO_DB - 494)) | (1 << (MySQLParser.REPLICATE_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_DB - 494)) | (1 << (MySQLParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_REWRITE_DB - 494)) | (1 << (MySQLParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (MySQLParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (MySQLParser.REPLICATION - 494)) | (1 << (MySQLParser.RESET - 494)) | (1 << (MySQLParser.RESUME - 494)) | (1 << (MySQLParser.RETURNED_SQLSTATE - 494)) | (1 << (MySQLParser.RETURNS - 494)) | (1 << (MySQLParser.ROLE - 494)) | (1 << (MySQLParser.ROLLBACK - 494)) | (1 << (MySQLParser.ROLLUP - 494)) | (1 << (MySQLParser.ROTATE - 494)) | (1 << (MySQLParser.ROW - 494)) | (1 << (MySQLParser.ROWS - 494)) | (1 << (MySQLParser.ROW_FORMAT - 494)) | (1 << (MySQLParser.SAVEPOINT - 494)) | (1 << (MySQLParser.SCHEDULE - 494)) | (1 << (MySQLParser.SECURITY - 494)) | (1 << (MySQLParser.SERVER - 494)) | (1 << (MySQLParser.SESSION - 494)) | (1 << (MySQLParser.SHARE - 494)) | (1 << (MySQLParser.SHARED - 494)) | (1 << (MySQLParser.SIGNED - 494)) | (1 << (MySQLParser.SIMPLE - 494)) | (1 << (MySQLParser.SLAVE - 494)) | (1 << (MySQLParser.SLOW - 494)) | (1 << (MySQLParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1f) == 0 && ((1 << (_la - 526)) & ((1 << (MySQLParser.SOCKET - 526)) | (1 << (MySQLParser.SOME - 526)) | (1 << (MySQLParser.SONAME - 526)) | (1 << (MySQLParser.SOUNDS - 526)) | (1 << (MySQLParser.SOURCE - 526)) | (1 << (MySQLParser.SQL_AFTER_GTIDS - 526)) | (1 << (MySQLParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (MySQLParser.SQL_BEFORE_GTIDS - 526)) | (1 << (MySQLParser.SQL_BUFFER_RESULT - 526)) | (1 << (MySQLParser.SQL_CACHE - 526)) | (1 << (MySQLParser.SQL_NO_CACHE - 526)) | (1 << (MySQLParser.SQL_THREAD - 526)) | (1 << (MySQLParser.START - 526)) | (1 << (MySQLParser.STARTS - 526)) | (1 << (MySQLParser.STATS_AUTO_RECALC - 526)) | (1 << (MySQLParser.STATS_PERSISTENT - 526)) | (1 << (MySQLParser.STATS_SAMPLE_PAGES - 526)) | (1 << (MySQLParser.STATUS - 526)) | (1 << (MySQLParser.STOP - 526)) | (1 << (MySQLParser.STORAGE - 526)) | (1 << (MySQLParser.STRING - 526)) | (1 << (MySQLParser.SUBCLASS_ORIGIN - 526)) | (1 << (MySQLParser.SUBJECT - 526)) | (1 << (MySQLParser.SUBPARTITION - 526)) | (1 << (MySQLParser.SUBPARTITIONS - 526)) | (1 << (MySQLParser.SUSPEND - 526)) | (1 << (MySQLParser.SWAPS - 526)) | (1 << (MySQLParser.SWITCHES - 526)) | (1 << (MySQLParser.TABLE_NAME - 526)) | (1 << (MySQLParser.TABLESPACE - 526)) | (1 << (MySQLParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1f) == 0 && ((1 << (_la - 558)) & ((1 << (MySQLParser.TEMPTABLE - 558)) | (1 << (MySQLParser.THAN - 558)) | (1 << (MySQLParser.TRADITIONAL - 558)) | (1 << (MySQLParser.TRANSACTION - 558)) | (1 << (MySQLParser.TRANSACTIONAL - 558)) | (1 << (MySQLParser.TRIGGERS - 558)) | (1 << (MySQLParser.TRUNCATE - 558)) | (1 << (MySQLParser.UNDEFINED - 558)) | (1 << (MySQLParser.UNDOFILE - 558)) | (1 << (MySQLParser.UNDO_BUFFER_SIZE - 558)) | (1 << (MySQLParser.UNINSTALL - 558)) | (1 << (MySQLParser.UNKNOWN - 558)) | (1 << (MySQLParser.UNTIL - 558)) | (1 << (MySQLParser.UPGRADE - 558)) | (1 << (MySQLParser.USER - 558)) | (1 << (MySQLParser.USE_FRM - 558)) | (1 << (MySQLParser.USER_RESOURCES - 558)) | (1 << (MySQLParser.VALIDATION - 558)) | (1 << (MySQLParser.VALUE - 558)) | (1 << (MySQLParser.VARIABLES - 558)) | (1 << (MySQLParser.VIEW - 558)) | (1 << (MySQLParser.WAIT - 558)) | (1 << (MySQLParser.WARNINGS - 558)) | (1 << (MySQLParser.WITHOUT - 558)) | (1 << (MySQLParser.WORK - 558)) | (1 << (MySQLParser.WRAPPER - 558)) | (1 << (MySQLParser.X509 - 558)) | (1 << (MySQLParser.XA - 558)) | (1 << (MySQLParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1f) == 0 && ((1 << (_la - 593)) & ((1 << (MySQLParser.INTERNAL - 593)) | (1 << (MySQLParser.AUDIT_ADMIN - 593)) | (1 << (MySQLParser.BACKUP_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ADMIN - 593)) | (1 << (MySQLParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (MySQLParser.CLONE_ADMIN - 593)) | (1 << (MySQLParser.CONNECTION_ADMIN - 593)) | (1 << (MySQLParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_ADMIN - 593)) | (1 << (MySQLParser.FIREWALL_USER - 593)) | (1 << (MySQLParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (MySQLParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (MySQLParser.NDB_STORED_USER - 593)) | (1 << (MySQLParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1f) == 0 && ((1 << (_la - 625)) & ((1 << (MySQLParser.REPLICATION_APPLIER - 625)) | (1 << (MySQLParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (MySQLParser.RESOURCE_GROUP_USER - 625)) | (1 << (MySQLParser.ROLE_ADMIN - 625)) | (1 << (MySQLParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.SET_USER_ID - 625)) | (1 << (MySQLParser.SHOW_ROUTINE - 625)) | (1 << (MySQLParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (MySQLParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (MySQLParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (MySQLParser.XA_RECOVER_ADMIN - 625)))) !== 0) || _la===MySQLParser.MEMORY || _la===MySQLParser.CATALOG_NAME || _la===MySQLParser.SCHEMA_NAME)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FunctionNameBaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = MySQLParser.RULE_functionNameBase; + return this; +} + +FunctionNameBaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FunctionNameBaseContext.prototype.constructor = FunctionNameBaseContext; + +FunctionNameBaseContext.prototype.ABS = function() { + return this.getToken(MySQLParser.ABS, 0); +}; + +FunctionNameBaseContext.prototype.ACOS = function() { + return this.getToken(MySQLParser.ACOS, 0); +}; + +FunctionNameBaseContext.prototype.ADDDATE = function() { + return this.getToken(MySQLParser.ADDDATE, 0); +}; + +FunctionNameBaseContext.prototype.ADDTIME = function() { + return this.getToken(MySQLParser.ADDTIME, 0); +}; + +FunctionNameBaseContext.prototype.AES_DECRYPT = function() { + return this.getToken(MySQLParser.AES_DECRYPT, 0); +}; + +FunctionNameBaseContext.prototype.AES_ENCRYPT = function() { + return this.getToken(MySQLParser.AES_ENCRYPT, 0); +}; + +FunctionNameBaseContext.prototype.AREA = function() { + return this.getToken(MySQLParser.AREA, 0); +}; + +FunctionNameBaseContext.prototype.ASBINARY = function() { + return this.getToken(MySQLParser.ASBINARY, 0); +}; + +FunctionNameBaseContext.prototype.ASIN = function() { + return this.getToken(MySQLParser.ASIN, 0); +}; + +FunctionNameBaseContext.prototype.ASTEXT = function() { + return this.getToken(MySQLParser.ASTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ASWKB = function() { + return this.getToken(MySQLParser.ASWKB, 0); +}; + +FunctionNameBaseContext.prototype.ASWKT = function() { + return this.getToken(MySQLParser.ASWKT, 0); +}; + +FunctionNameBaseContext.prototype.ASYMMETRIC_DECRYPT = function() { + return this.getToken(MySQLParser.ASYMMETRIC_DECRYPT, 0); +}; + +FunctionNameBaseContext.prototype.ASYMMETRIC_DERIVE = function() { + return this.getToken(MySQLParser.ASYMMETRIC_DERIVE, 0); +}; + +FunctionNameBaseContext.prototype.ASYMMETRIC_ENCRYPT = function() { + return this.getToken(MySQLParser.ASYMMETRIC_ENCRYPT, 0); +}; + +FunctionNameBaseContext.prototype.ASYMMETRIC_SIGN = function() { + return this.getToken(MySQLParser.ASYMMETRIC_SIGN, 0); +}; + +FunctionNameBaseContext.prototype.ASYMMETRIC_VERIFY = function() { + return this.getToken(MySQLParser.ASYMMETRIC_VERIFY, 0); +}; + +FunctionNameBaseContext.prototype.ATAN = function() { + return this.getToken(MySQLParser.ATAN, 0); +}; + +FunctionNameBaseContext.prototype.ATAN2 = function() { + return this.getToken(MySQLParser.ATAN2, 0); +}; + +FunctionNameBaseContext.prototype.BENCHMARK = function() { + return this.getToken(MySQLParser.BENCHMARK, 0); +}; + +FunctionNameBaseContext.prototype.BIN = function() { + return this.getToken(MySQLParser.BIN, 0); +}; + +FunctionNameBaseContext.prototype.BIT_COUNT = function() { + return this.getToken(MySQLParser.BIT_COUNT, 0); +}; + +FunctionNameBaseContext.prototype.BIT_LENGTH = function() { + return this.getToken(MySQLParser.BIT_LENGTH, 0); +}; + +FunctionNameBaseContext.prototype.BUFFER = function() { + return this.getToken(MySQLParser.BUFFER, 0); +}; + +FunctionNameBaseContext.prototype.CEIL = function() { + return this.getToken(MySQLParser.CEIL, 0); +}; + +FunctionNameBaseContext.prototype.CEILING = function() { + return this.getToken(MySQLParser.CEILING, 0); +}; + +FunctionNameBaseContext.prototype.CENTROID = function() { + return this.getToken(MySQLParser.CENTROID, 0); +}; + +FunctionNameBaseContext.prototype.CHARACTER_LENGTH = function() { + return this.getToken(MySQLParser.CHARACTER_LENGTH, 0); +}; + +FunctionNameBaseContext.prototype.CHARSET = function() { + return this.getToken(MySQLParser.CHARSET, 0); +}; + +FunctionNameBaseContext.prototype.CHAR_LENGTH = function() { + return this.getToken(MySQLParser.CHAR_LENGTH, 0); +}; + +FunctionNameBaseContext.prototype.COERCIBILITY = function() { + return this.getToken(MySQLParser.COERCIBILITY, 0); +}; + +FunctionNameBaseContext.prototype.COLLATION = function() { + return this.getToken(MySQLParser.COLLATION, 0); +}; + +FunctionNameBaseContext.prototype.COMPRESS = function() { + return this.getToken(MySQLParser.COMPRESS, 0); +}; + +FunctionNameBaseContext.prototype.CONCAT = function() { + return this.getToken(MySQLParser.CONCAT, 0); +}; + +FunctionNameBaseContext.prototype.CONCAT_WS = function() { + return this.getToken(MySQLParser.CONCAT_WS, 0); +}; + +FunctionNameBaseContext.prototype.CONNECTION_ID = function() { + return this.getToken(MySQLParser.CONNECTION_ID, 0); +}; + +FunctionNameBaseContext.prototype.CONV = function() { + return this.getToken(MySQLParser.CONV, 0); +}; + +FunctionNameBaseContext.prototype.CONVERT_TZ = function() { + return this.getToken(MySQLParser.CONVERT_TZ, 0); +}; + +FunctionNameBaseContext.prototype.COS = function() { + return this.getToken(MySQLParser.COS, 0); +}; + +FunctionNameBaseContext.prototype.COT = function() { + return this.getToken(MySQLParser.COT, 0); +}; + +FunctionNameBaseContext.prototype.COUNT = function() { + return this.getToken(MySQLParser.COUNT, 0); +}; + +FunctionNameBaseContext.prototype.CRC32 = function() { + return this.getToken(MySQLParser.CRC32, 0); +}; + +FunctionNameBaseContext.prototype.CREATE_ASYMMETRIC_PRIV_KEY = function() { + return this.getToken(MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY, 0); +}; + +FunctionNameBaseContext.prototype.CREATE_ASYMMETRIC_PUB_KEY = function() { + return this.getToken(MySQLParser.CREATE_ASYMMETRIC_PUB_KEY, 0); +}; + +FunctionNameBaseContext.prototype.CREATE_DH_PARAMETERS = function() { + return this.getToken(MySQLParser.CREATE_DH_PARAMETERS, 0); +}; + +FunctionNameBaseContext.prototype.CREATE_DIGEST = function() { + return this.getToken(MySQLParser.CREATE_DIGEST, 0); +}; + +FunctionNameBaseContext.prototype.CROSSES = function() { + return this.getToken(MySQLParser.CROSSES, 0); +}; + +FunctionNameBaseContext.prototype.DATABASE = function() { + return this.getToken(MySQLParser.DATABASE, 0); +}; + +FunctionNameBaseContext.prototype.DATE = function() { + return this.getToken(MySQLParser.DATE, 0); +}; + +FunctionNameBaseContext.prototype.DATEDIFF = function() { + return this.getToken(MySQLParser.DATEDIFF, 0); +}; + +FunctionNameBaseContext.prototype.DATE_FORMAT = function() { + return this.getToken(MySQLParser.DATE_FORMAT, 0); +}; + +FunctionNameBaseContext.prototype.DAY = function() { + return this.getToken(MySQLParser.DAY, 0); +}; + +FunctionNameBaseContext.prototype.DAYNAME = function() { + return this.getToken(MySQLParser.DAYNAME, 0); +}; + +FunctionNameBaseContext.prototype.DAYOFMONTH = function() { + return this.getToken(MySQLParser.DAYOFMONTH, 0); +}; + +FunctionNameBaseContext.prototype.DAYOFWEEK = function() { + return this.getToken(MySQLParser.DAYOFWEEK, 0); +}; + +FunctionNameBaseContext.prototype.DAYOFYEAR = function() { + return this.getToken(MySQLParser.DAYOFYEAR, 0); +}; + +FunctionNameBaseContext.prototype.DECODE = function() { + return this.getToken(MySQLParser.DECODE, 0); +}; + +FunctionNameBaseContext.prototype.DEGREES = function() { + return this.getToken(MySQLParser.DEGREES, 0); +}; + +FunctionNameBaseContext.prototype.DES_DECRYPT = function() { + return this.getToken(MySQLParser.DES_DECRYPT, 0); +}; + +FunctionNameBaseContext.prototype.DES_ENCRYPT = function() { + return this.getToken(MySQLParser.DES_ENCRYPT, 0); +}; + +FunctionNameBaseContext.prototype.DIMENSION = function() { + return this.getToken(MySQLParser.DIMENSION, 0); +}; + +FunctionNameBaseContext.prototype.DISJOINT = function() { + return this.getToken(MySQLParser.DISJOINT, 0); +}; + +FunctionNameBaseContext.prototype.ELT = function() { + return this.getToken(MySQLParser.ELT, 0); +}; + +FunctionNameBaseContext.prototype.ENCODE = function() { + return this.getToken(MySQLParser.ENCODE, 0); +}; + +FunctionNameBaseContext.prototype.ENCRYPT = function() { + return this.getToken(MySQLParser.ENCRYPT, 0); +}; + +FunctionNameBaseContext.prototype.ENDPOINT = function() { + return this.getToken(MySQLParser.ENDPOINT, 0); +}; + +FunctionNameBaseContext.prototype.ENVELOPE = function() { + return this.getToken(MySQLParser.ENVELOPE, 0); +}; + +FunctionNameBaseContext.prototype.EQUALS = function() { + return this.getToken(MySQLParser.EQUALS, 0); +}; + +FunctionNameBaseContext.prototype.EXP = function() { + return this.getToken(MySQLParser.EXP, 0); +}; + +FunctionNameBaseContext.prototype.EXPORT_SET = function() { + return this.getToken(MySQLParser.EXPORT_SET, 0); +}; + +FunctionNameBaseContext.prototype.EXTERIORRING = function() { + return this.getToken(MySQLParser.EXTERIORRING, 0); +}; + +FunctionNameBaseContext.prototype.EXTRACTVALUE = function() { + return this.getToken(MySQLParser.EXTRACTVALUE, 0); +}; + +FunctionNameBaseContext.prototype.FIELD = function() { + return this.getToken(MySQLParser.FIELD, 0); +}; + +FunctionNameBaseContext.prototype.FIND_IN_SET = function() { + return this.getToken(MySQLParser.FIND_IN_SET, 0); +}; + +FunctionNameBaseContext.prototype.FLOOR = function() { + return this.getToken(MySQLParser.FLOOR, 0); +}; + +FunctionNameBaseContext.prototype.FORMAT = function() { + return this.getToken(MySQLParser.FORMAT, 0); +}; + +FunctionNameBaseContext.prototype.FOUND_ROWS = function() { + return this.getToken(MySQLParser.FOUND_ROWS, 0); +}; + +FunctionNameBaseContext.prototype.FROM_BASE64 = function() { + return this.getToken(MySQLParser.FROM_BASE64, 0); +}; + +FunctionNameBaseContext.prototype.FROM_DAYS = function() { + return this.getToken(MySQLParser.FROM_DAYS, 0); +}; + +FunctionNameBaseContext.prototype.FROM_UNIXTIME = function() { + return this.getToken(MySQLParser.FROM_UNIXTIME, 0); +}; + +FunctionNameBaseContext.prototype.GEOMCOLLFROMTEXT = function() { + return this.getToken(MySQLParser.GEOMCOLLFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.GEOMCOLLFROMWKB = function() { + return this.getToken(MySQLParser.GEOMCOLLFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.GEOMETRYCOLLECTION = function() { + return this.getToken(MySQLParser.GEOMETRYCOLLECTION, 0); +}; + +FunctionNameBaseContext.prototype.GEOMETRYCOLLECTIONFROMTEXT = function() { + return this.getToken(MySQLParser.GEOMETRYCOLLECTIONFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.GEOMETRYCOLLECTIONFROMWKB = function() { + return this.getToken(MySQLParser.GEOMETRYCOLLECTIONFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.GEOMETRYFROMTEXT = function() { + return this.getToken(MySQLParser.GEOMETRYFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.GEOMETRYFROMWKB = function() { + return this.getToken(MySQLParser.GEOMETRYFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.GEOMETRYN = function() { + return this.getToken(MySQLParser.GEOMETRYN, 0); +}; + +FunctionNameBaseContext.prototype.GEOMETRYTYPE = function() { + return this.getToken(MySQLParser.GEOMETRYTYPE, 0); +}; + +FunctionNameBaseContext.prototype.GEOMFROMTEXT = function() { + return this.getToken(MySQLParser.GEOMFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.GEOMFROMWKB = function() { + return this.getToken(MySQLParser.GEOMFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.GET_FORMAT = function() { + return this.getToken(MySQLParser.GET_FORMAT, 0); +}; + +FunctionNameBaseContext.prototype.GET_LOCK = function() { + return this.getToken(MySQLParser.GET_LOCK, 0); +}; + +FunctionNameBaseContext.prototype.GLENGTH = function() { + return this.getToken(MySQLParser.GLENGTH, 0); +}; + +FunctionNameBaseContext.prototype.GREATEST = function() { + return this.getToken(MySQLParser.GREATEST, 0); +}; + +FunctionNameBaseContext.prototype.GTID_SUBSET = function() { + return this.getToken(MySQLParser.GTID_SUBSET, 0); +}; + +FunctionNameBaseContext.prototype.GTID_SUBTRACT = function() { + return this.getToken(MySQLParser.GTID_SUBTRACT, 0); +}; + +FunctionNameBaseContext.prototype.HEX = function() { + return this.getToken(MySQLParser.HEX, 0); +}; + +FunctionNameBaseContext.prototype.HOUR = function() { + return this.getToken(MySQLParser.HOUR, 0); +}; + +FunctionNameBaseContext.prototype.IFNULL = function() { + return this.getToken(MySQLParser.IFNULL, 0); +}; + +FunctionNameBaseContext.prototype.INET6_ATON = function() { + return this.getToken(MySQLParser.INET6_ATON, 0); +}; + +FunctionNameBaseContext.prototype.INET6_NTOA = function() { + return this.getToken(MySQLParser.INET6_NTOA, 0); +}; + +FunctionNameBaseContext.prototype.INET_ATON = function() { + return this.getToken(MySQLParser.INET_ATON, 0); +}; + +FunctionNameBaseContext.prototype.INET_NTOA = function() { + return this.getToken(MySQLParser.INET_NTOA, 0); +}; + +FunctionNameBaseContext.prototype.INSTR = function() { + return this.getToken(MySQLParser.INSTR, 0); +}; + +FunctionNameBaseContext.prototype.INTERIORRINGN = function() { + return this.getToken(MySQLParser.INTERIORRINGN, 0); +}; + +FunctionNameBaseContext.prototype.INTERSECTS = function() { + return this.getToken(MySQLParser.INTERSECTS, 0); +}; + +FunctionNameBaseContext.prototype.INVISIBLE = function() { + return this.getToken(MySQLParser.INVISIBLE, 0); +}; + +FunctionNameBaseContext.prototype.ISCLOSED = function() { + return this.getToken(MySQLParser.ISCLOSED, 0); +}; + +FunctionNameBaseContext.prototype.ISEMPTY = function() { + return this.getToken(MySQLParser.ISEMPTY, 0); +}; + +FunctionNameBaseContext.prototype.ISNULL = function() { + return this.getToken(MySQLParser.ISNULL, 0); +}; + +FunctionNameBaseContext.prototype.ISSIMPLE = function() { + return this.getToken(MySQLParser.ISSIMPLE, 0); +}; + +FunctionNameBaseContext.prototype.IS_FREE_LOCK = function() { + return this.getToken(MySQLParser.IS_FREE_LOCK, 0); +}; + +FunctionNameBaseContext.prototype.IS_IPV4 = function() { + return this.getToken(MySQLParser.IS_IPV4, 0); +}; + +FunctionNameBaseContext.prototype.IS_IPV4_COMPAT = function() { + return this.getToken(MySQLParser.IS_IPV4_COMPAT, 0); +}; + +FunctionNameBaseContext.prototype.IS_IPV4_MAPPED = function() { + return this.getToken(MySQLParser.IS_IPV4_MAPPED, 0); +}; + +FunctionNameBaseContext.prototype.IS_IPV6 = function() { + return this.getToken(MySQLParser.IS_IPV6, 0); +}; + +FunctionNameBaseContext.prototype.IS_USED_LOCK = function() { + return this.getToken(MySQLParser.IS_USED_LOCK, 0); +}; + +FunctionNameBaseContext.prototype.LAST_INSERT_ID = function() { + return this.getToken(MySQLParser.LAST_INSERT_ID, 0); +}; + +FunctionNameBaseContext.prototype.LCASE = function() { + return this.getToken(MySQLParser.LCASE, 0); +}; + +FunctionNameBaseContext.prototype.LEAST = function() { + return this.getToken(MySQLParser.LEAST, 0); +}; + +FunctionNameBaseContext.prototype.LEFT = function() { + return this.getToken(MySQLParser.LEFT, 0); +}; + +FunctionNameBaseContext.prototype.LENGTH = function() { + return this.getToken(MySQLParser.LENGTH, 0); +}; + +FunctionNameBaseContext.prototype.LINEFROMTEXT = function() { + return this.getToken(MySQLParser.LINEFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.LINEFROMWKB = function() { + return this.getToken(MySQLParser.LINEFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.LINESTRING = function() { + return this.getToken(MySQLParser.LINESTRING, 0); +}; + +FunctionNameBaseContext.prototype.LINESTRINGFROMTEXT = function() { + return this.getToken(MySQLParser.LINESTRINGFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.LINESTRINGFROMWKB = function() { + return this.getToken(MySQLParser.LINESTRINGFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.LN = function() { + return this.getToken(MySQLParser.LN, 0); +}; + +FunctionNameBaseContext.prototype.LOAD_FILE = function() { + return this.getToken(MySQLParser.LOAD_FILE, 0); +}; + +FunctionNameBaseContext.prototype.LOCATE = function() { + return this.getToken(MySQLParser.LOCATE, 0); +}; + +FunctionNameBaseContext.prototype.LOG = function() { + return this.getToken(MySQLParser.LOG, 0); +}; + +FunctionNameBaseContext.prototype.LOG10 = function() { + return this.getToken(MySQLParser.LOG10, 0); +}; + +FunctionNameBaseContext.prototype.LOG2 = function() { + return this.getToken(MySQLParser.LOG2, 0); +}; + +FunctionNameBaseContext.prototype.LOWER = function() { + return this.getToken(MySQLParser.LOWER, 0); +}; + +FunctionNameBaseContext.prototype.LPAD = function() { + return this.getToken(MySQLParser.LPAD, 0); +}; + +FunctionNameBaseContext.prototype.LTRIM = function() { + return this.getToken(MySQLParser.LTRIM, 0); +}; + +FunctionNameBaseContext.prototype.MAKEDATE = function() { + return this.getToken(MySQLParser.MAKEDATE, 0); +}; + +FunctionNameBaseContext.prototype.MAKETIME = function() { + return this.getToken(MySQLParser.MAKETIME, 0); +}; + +FunctionNameBaseContext.prototype.MAKE_SET = function() { + return this.getToken(MySQLParser.MAKE_SET, 0); +}; + +FunctionNameBaseContext.prototype.MASTER_POS_WAIT = function() { + return this.getToken(MySQLParser.MASTER_POS_WAIT, 0); +}; + +FunctionNameBaseContext.prototype.MBRCONTAINS = function() { + return this.getToken(MySQLParser.MBRCONTAINS, 0); +}; + +FunctionNameBaseContext.prototype.MBRDISJOINT = function() { + return this.getToken(MySQLParser.MBRDISJOINT, 0); +}; + +FunctionNameBaseContext.prototype.MBREQUAL = function() { + return this.getToken(MySQLParser.MBREQUAL, 0); +}; + +FunctionNameBaseContext.prototype.MBRINTERSECTS = function() { + return this.getToken(MySQLParser.MBRINTERSECTS, 0); +}; + +FunctionNameBaseContext.prototype.MBROVERLAPS = function() { + return this.getToken(MySQLParser.MBROVERLAPS, 0); +}; + +FunctionNameBaseContext.prototype.MBRTOUCHES = function() { + return this.getToken(MySQLParser.MBRTOUCHES, 0); +}; + +FunctionNameBaseContext.prototype.MBRWITHIN = function() { + return this.getToken(MySQLParser.MBRWITHIN, 0); +}; + +FunctionNameBaseContext.prototype.MD5 = function() { + return this.getToken(MySQLParser.MD5, 0); +}; + +FunctionNameBaseContext.prototype.MICROSECOND = function() { + return this.getToken(MySQLParser.MICROSECOND, 0); +}; + +FunctionNameBaseContext.prototype.MINUTE = function() { + return this.getToken(MySQLParser.MINUTE, 0); +}; + +FunctionNameBaseContext.prototype.MLINEFROMTEXT = function() { + return this.getToken(MySQLParser.MLINEFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.MLINEFROMWKB = function() { + return this.getToken(MySQLParser.MLINEFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.MONTH = function() { + return this.getToken(MySQLParser.MONTH, 0); +}; + +FunctionNameBaseContext.prototype.MONTHNAME = function() { + return this.getToken(MySQLParser.MONTHNAME, 0); +}; + +FunctionNameBaseContext.prototype.MPOINTFROMTEXT = function() { + return this.getToken(MySQLParser.MPOINTFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.MPOINTFROMWKB = function() { + return this.getToken(MySQLParser.MPOINTFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.MPOLYFROMTEXT = function() { + return this.getToken(MySQLParser.MPOLYFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.MPOLYFROMWKB = function() { + return this.getToken(MySQLParser.MPOLYFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.MULTILINESTRING = function() { + return this.getToken(MySQLParser.MULTILINESTRING, 0); +}; + +FunctionNameBaseContext.prototype.MULTILINESTRINGFROMTEXT = function() { + return this.getToken(MySQLParser.MULTILINESTRINGFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.MULTILINESTRINGFROMWKB = function() { + return this.getToken(MySQLParser.MULTILINESTRINGFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.MULTIPOINT = function() { + return this.getToken(MySQLParser.MULTIPOINT, 0); +}; + +FunctionNameBaseContext.prototype.MULTIPOINTFROMTEXT = function() { + return this.getToken(MySQLParser.MULTIPOINTFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.MULTIPOINTFROMWKB = function() { + return this.getToken(MySQLParser.MULTIPOINTFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.MULTIPOLYGON = function() { + return this.getToken(MySQLParser.MULTIPOLYGON, 0); +}; + +FunctionNameBaseContext.prototype.MULTIPOLYGONFROMTEXT = function() { + return this.getToken(MySQLParser.MULTIPOLYGONFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.MULTIPOLYGONFROMWKB = function() { + return this.getToken(MySQLParser.MULTIPOLYGONFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.NAME_CONST = function() { + return this.getToken(MySQLParser.NAME_CONST, 0); +}; + +FunctionNameBaseContext.prototype.NULLIF = function() { + return this.getToken(MySQLParser.NULLIF, 0); +}; + +FunctionNameBaseContext.prototype.NUMGEOMETRIES = function() { + return this.getToken(MySQLParser.NUMGEOMETRIES, 0); +}; + +FunctionNameBaseContext.prototype.NUMINTERIORRINGS = function() { + return this.getToken(MySQLParser.NUMINTERIORRINGS, 0); +}; + +FunctionNameBaseContext.prototype.NUMPOINTS = function() { + return this.getToken(MySQLParser.NUMPOINTS, 0); +}; + +FunctionNameBaseContext.prototype.OCT = function() { + return this.getToken(MySQLParser.OCT, 0); +}; + +FunctionNameBaseContext.prototype.OCTET_LENGTH = function() { + return this.getToken(MySQLParser.OCTET_LENGTH, 0); +}; + +FunctionNameBaseContext.prototype.ORD = function() { + return this.getToken(MySQLParser.ORD, 0); +}; + +FunctionNameBaseContext.prototype.OVERLAPS = function() { + return this.getToken(MySQLParser.OVERLAPS, 0); +}; + +FunctionNameBaseContext.prototype.PERIOD_ADD = function() { + return this.getToken(MySQLParser.PERIOD_ADD, 0); +}; + +FunctionNameBaseContext.prototype.PERIOD_DIFF = function() { + return this.getToken(MySQLParser.PERIOD_DIFF, 0); +}; + +FunctionNameBaseContext.prototype.PI = function() { + return this.getToken(MySQLParser.PI, 0); +}; + +FunctionNameBaseContext.prototype.POINT = function() { + return this.getToken(MySQLParser.POINT, 0); +}; + +FunctionNameBaseContext.prototype.POINTFROMTEXT = function() { + return this.getToken(MySQLParser.POINTFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.POINTFROMWKB = function() { + return this.getToken(MySQLParser.POINTFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.POINTN = function() { + return this.getToken(MySQLParser.POINTN, 0); +}; + +FunctionNameBaseContext.prototype.POLYFROMTEXT = function() { + return this.getToken(MySQLParser.POLYFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.POLYFROMWKB = function() { + return this.getToken(MySQLParser.POLYFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.POLYGON = function() { + return this.getToken(MySQLParser.POLYGON, 0); +}; + +FunctionNameBaseContext.prototype.POLYGONFROMTEXT = function() { + return this.getToken(MySQLParser.POLYGONFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.POLYGONFROMWKB = function() { + return this.getToken(MySQLParser.POLYGONFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.POSITION = function() { + return this.getToken(MySQLParser.POSITION, 0); +}; + +FunctionNameBaseContext.prototype.POW = function() { + return this.getToken(MySQLParser.POW, 0); +}; + +FunctionNameBaseContext.prototype.POWER = function() { + return this.getToken(MySQLParser.POWER, 0); +}; + +FunctionNameBaseContext.prototype.QUARTER = function() { + return this.getToken(MySQLParser.QUARTER, 0); +}; + +FunctionNameBaseContext.prototype.QUOTE = function() { + return this.getToken(MySQLParser.QUOTE, 0); +}; + +FunctionNameBaseContext.prototype.RADIANS = function() { + return this.getToken(MySQLParser.RADIANS, 0); +}; + +FunctionNameBaseContext.prototype.RAND = function() { + return this.getToken(MySQLParser.RAND, 0); +}; + +FunctionNameBaseContext.prototype.RANDOM_BYTES = function() { + return this.getToken(MySQLParser.RANDOM_BYTES, 0); +}; + +FunctionNameBaseContext.prototype.RELEASE_LOCK = function() { + return this.getToken(MySQLParser.RELEASE_LOCK, 0); +}; + +FunctionNameBaseContext.prototype.REVERSE = function() { + return this.getToken(MySQLParser.REVERSE, 0); +}; + +FunctionNameBaseContext.prototype.RIGHT = function() { + return this.getToken(MySQLParser.RIGHT, 0); +}; + +FunctionNameBaseContext.prototype.ROUND = function() { + return this.getToken(MySQLParser.ROUND, 0); +}; + +FunctionNameBaseContext.prototype.ROW_COUNT = function() { + return this.getToken(MySQLParser.ROW_COUNT, 0); +}; + +FunctionNameBaseContext.prototype.RPAD = function() { + return this.getToken(MySQLParser.RPAD, 0); +}; + +FunctionNameBaseContext.prototype.RTRIM = function() { + return this.getToken(MySQLParser.RTRIM, 0); +}; + +FunctionNameBaseContext.prototype.SECOND = function() { + return this.getToken(MySQLParser.SECOND, 0); +}; + +FunctionNameBaseContext.prototype.SEC_TO_TIME = function() { + return this.getToken(MySQLParser.SEC_TO_TIME, 0); +}; + +FunctionNameBaseContext.prototype.SESSION_USER = function() { + return this.getToken(MySQLParser.SESSION_USER, 0); +}; + +FunctionNameBaseContext.prototype.SESSION_VARIABLES_ADMIN = function() { + return this.getToken(MySQLParser.SESSION_VARIABLES_ADMIN, 0); +}; + +FunctionNameBaseContext.prototype.SHA = function() { + return this.getToken(MySQLParser.SHA, 0); +}; + +FunctionNameBaseContext.prototype.SHA1 = function() { + return this.getToken(MySQLParser.SHA1, 0); +}; + +FunctionNameBaseContext.prototype.SHA2 = function() { + return this.getToken(MySQLParser.SHA2, 0); +}; + +FunctionNameBaseContext.prototype.SIGN = function() { + return this.getToken(MySQLParser.SIGN, 0); +}; + +FunctionNameBaseContext.prototype.SIN = function() { + return this.getToken(MySQLParser.SIN, 0); +}; + +FunctionNameBaseContext.prototype.SLEEP = function() { + return this.getToken(MySQLParser.SLEEP, 0); +}; + +FunctionNameBaseContext.prototype.SOUNDEX = function() { + return this.getToken(MySQLParser.SOUNDEX, 0); +}; + +FunctionNameBaseContext.prototype.SQL_THREAD_WAIT_AFTER_GTIDS = function() { + return this.getToken(MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS, 0); +}; + +FunctionNameBaseContext.prototype.SQRT = function() { + return this.getToken(MySQLParser.SQRT, 0); +}; + +FunctionNameBaseContext.prototype.SRID = function() { + return this.getToken(MySQLParser.SRID, 0); +}; + +FunctionNameBaseContext.prototype.STARTPOINT = function() { + return this.getToken(MySQLParser.STARTPOINT, 0); +}; + +FunctionNameBaseContext.prototype.STRCMP = function() { + return this.getToken(MySQLParser.STRCMP, 0); +}; + +FunctionNameBaseContext.prototype.STR_TO_DATE = function() { + return this.getToken(MySQLParser.STR_TO_DATE, 0); +}; + +FunctionNameBaseContext.prototype.ST_AREA = function() { + return this.getToken(MySQLParser.ST_AREA, 0); +}; + +FunctionNameBaseContext.prototype.ST_ASBINARY = function() { + return this.getToken(MySQLParser.ST_ASBINARY, 0); +}; + +FunctionNameBaseContext.prototype.ST_ASTEXT = function() { + return this.getToken(MySQLParser.ST_ASTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_ASWKB = function() { + return this.getToken(MySQLParser.ST_ASWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_ASWKT = function() { + return this.getToken(MySQLParser.ST_ASWKT, 0); +}; + +FunctionNameBaseContext.prototype.ST_BUFFER = function() { + return this.getToken(MySQLParser.ST_BUFFER, 0); +}; + +FunctionNameBaseContext.prototype.ST_CENTROID = function() { + return this.getToken(MySQLParser.ST_CENTROID, 0); +}; + +FunctionNameBaseContext.prototype.ST_CONTAINS = function() { + return this.getToken(MySQLParser.ST_CONTAINS, 0); +}; + +FunctionNameBaseContext.prototype.ST_CROSSES = function() { + return this.getToken(MySQLParser.ST_CROSSES, 0); +}; + +FunctionNameBaseContext.prototype.ST_DIFFERENCE = function() { + return this.getToken(MySQLParser.ST_DIFFERENCE, 0); +}; + +FunctionNameBaseContext.prototype.ST_DIMENSION = function() { + return this.getToken(MySQLParser.ST_DIMENSION, 0); +}; + +FunctionNameBaseContext.prototype.ST_DISJOINT = function() { + return this.getToken(MySQLParser.ST_DISJOINT, 0); +}; + +FunctionNameBaseContext.prototype.ST_DISTANCE = function() { + return this.getToken(MySQLParser.ST_DISTANCE, 0); +}; + +FunctionNameBaseContext.prototype.ST_ENDPOINT = function() { + return this.getToken(MySQLParser.ST_ENDPOINT, 0); +}; + +FunctionNameBaseContext.prototype.ST_ENVELOPE = function() { + return this.getToken(MySQLParser.ST_ENVELOPE, 0); +}; + +FunctionNameBaseContext.prototype.ST_EQUALS = function() { + return this.getToken(MySQLParser.ST_EQUALS, 0); +}; + +FunctionNameBaseContext.prototype.ST_EXTERIORRING = function() { + return this.getToken(MySQLParser.ST_EXTERIORRING, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMCOLLFROMTEXT = function() { + return this.getToken(MySQLParser.ST_GEOMCOLLFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMCOLLFROMTXT = function() { + return this.getToken(MySQLParser.ST_GEOMCOLLFROMTXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMCOLLFROMWKB = function() { + return this.getToken(MySQLParser.ST_GEOMCOLLFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMETRYCOLLECTIONFROMTEXT = function() { + return this.getToken(MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMETRYCOLLECTIONFROMWKB = function() { + return this.getToken(MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMETRYFROMTEXT = function() { + return this.getToken(MySQLParser.ST_GEOMETRYFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMETRYFROMWKB = function() { + return this.getToken(MySQLParser.ST_GEOMETRYFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMETRYN = function() { + return this.getToken(MySQLParser.ST_GEOMETRYN, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMETRYTYPE = function() { + return this.getToken(MySQLParser.ST_GEOMETRYTYPE, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMFROMTEXT = function() { + return this.getToken(MySQLParser.ST_GEOMFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_GEOMFROMWKB = function() { + return this.getToken(MySQLParser.ST_GEOMFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_INTERIORRINGN = function() { + return this.getToken(MySQLParser.ST_INTERIORRINGN, 0); +}; + +FunctionNameBaseContext.prototype.ST_INTERSECTION = function() { + return this.getToken(MySQLParser.ST_INTERSECTION, 0); +}; + +FunctionNameBaseContext.prototype.ST_INTERSECTS = function() { + return this.getToken(MySQLParser.ST_INTERSECTS, 0); +}; + +FunctionNameBaseContext.prototype.ST_ISCLOSED = function() { + return this.getToken(MySQLParser.ST_ISCLOSED, 0); +}; + +FunctionNameBaseContext.prototype.ST_ISEMPTY = function() { + return this.getToken(MySQLParser.ST_ISEMPTY, 0); +}; + +FunctionNameBaseContext.prototype.ST_ISSIMPLE = function() { + return this.getToken(MySQLParser.ST_ISSIMPLE, 0); +}; + +FunctionNameBaseContext.prototype.ST_LINEFROMTEXT = function() { + return this.getToken(MySQLParser.ST_LINEFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_LINEFROMWKB = function() { + return this.getToken(MySQLParser.ST_LINEFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_LINESTRINGFROMTEXT = function() { + return this.getToken(MySQLParser.ST_LINESTRINGFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_LINESTRINGFROMWKB = function() { + return this.getToken(MySQLParser.ST_LINESTRINGFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_NUMGEOMETRIES = function() { + return this.getToken(MySQLParser.ST_NUMGEOMETRIES, 0); +}; + +FunctionNameBaseContext.prototype.ST_NUMINTERIORRING = function() { + return this.getToken(MySQLParser.ST_NUMINTERIORRING, 0); +}; + +FunctionNameBaseContext.prototype.ST_NUMINTERIORRINGS = function() { + return this.getToken(MySQLParser.ST_NUMINTERIORRINGS, 0); +}; + +FunctionNameBaseContext.prototype.ST_NUMPOINTS = function() { + return this.getToken(MySQLParser.ST_NUMPOINTS, 0); +}; + +FunctionNameBaseContext.prototype.ST_OVERLAPS = function() { + return this.getToken(MySQLParser.ST_OVERLAPS, 0); +}; + +FunctionNameBaseContext.prototype.ST_POINTFROMTEXT = function() { + return this.getToken(MySQLParser.ST_POINTFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_POINTFROMWKB = function() { + return this.getToken(MySQLParser.ST_POINTFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_POINTN = function() { + return this.getToken(MySQLParser.ST_POINTN, 0); +}; + +FunctionNameBaseContext.prototype.ST_POLYFROMTEXT = function() { + return this.getToken(MySQLParser.ST_POLYFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_POLYFROMWKB = function() { + return this.getToken(MySQLParser.ST_POLYFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_POLYGONFROMTEXT = function() { + return this.getToken(MySQLParser.ST_POLYGONFROMTEXT, 0); +}; + +FunctionNameBaseContext.prototype.ST_POLYGONFROMWKB = function() { + return this.getToken(MySQLParser.ST_POLYGONFROMWKB, 0); +}; + +FunctionNameBaseContext.prototype.ST_SRID = function() { + return this.getToken(MySQLParser.ST_SRID, 0); +}; + +FunctionNameBaseContext.prototype.ST_STARTPOINT = function() { + return this.getToken(MySQLParser.ST_STARTPOINT, 0); +}; + +FunctionNameBaseContext.prototype.ST_SYMDIFFERENCE = function() { + return this.getToken(MySQLParser.ST_SYMDIFFERENCE, 0); +}; + +FunctionNameBaseContext.prototype.ST_TOUCHES = function() { + return this.getToken(MySQLParser.ST_TOUCHES, 0); +}; + +FunctionNameBaseContext.prototype.ST_UNION = function() { + return this.getToken(MySQLParser.ST_UNION, 0); +}; + +FunctionNameBaseContext.prototype.ST_WITHIN = function() { + return this.getToken(MySQLParser.ST_WITHIN, 0); +}; + +FunctionNameBaseContext.prototype.ST_X = function() { + return this.getToken(MySQLParser.ST_X, 0); +}; + +FunctionNameBaseContext.prototype.ST_Y = function() { + return this.getToken(MySQLParser.ST_Y, 0); +}; + +FunctionNameBaseContext.prototype.SUBDATE = function() { + return this.getToken(MySQLParser.SUBDATE, 0); +}; + +FunctionNameBaseContext.prototype.SUBSTRING_INDEX = function() { + return this.getToken(MySQLParser.SUBSTRING_INDEX, 0); +}; + +FunctionNameBaseContext.prototype.SUBTIME = function() { + return this.getToken(MySQLParser.SUBTIME, 0); +}; + +FunctionNameBaseContext.prototype.SYSTEM_USER = function() { + return this.getToken(MySQLParser.SYSTEM_USER, 0); +}; + +FunctionNameBaseContext.prototype.TAN = function() { + return this.getToken(MySQLParser.TAN, 0); +}; + +FunctionNameBaseContext.prototype.TIME = function() { + return this.getToken(MySQLParser.TIME, 0); +}; + +FunctionNameBaseContext.prototype.TIMEDIFF = function() { + return this.getToken(MySQLParser.TIMEDIFF, 0); +}; + +FunctionNameBaseContext.prototype.TIMESTAMP = function() { + return this.getToken(MySQLParser.TIMESTAMP, 0); +}; + +FunctionNameBaseContext.prototype.TIMESTAMPADD = function() { + return this.getToken(MySQLParser.TIMESTAMPADD, 0); +}; + +FunctionNameBaseContext.prototype.TIMESTAMPDIFF = function() { + return this.getToken(MySQLParser.TIMESTAMPDIFF, 0); +}; + +FunctionNameBaseContext.prototype.TIME_FORMAT = function() { + return this.getToken(MySQLParser.TIME_FORMAT, 0); +}; + +FunctionNameBaseContext.prototype.TIME_TO_SEC = function() { + return this.getToken(MySQLParser.TIME_TO_SEC, 0); +}; + +FunctionNameBaseContext.prototype.TOUCHES = function() { + return this.getToken(MySQLParser.TOUCHES, 0); +}; + +FunctionNameBaseContext.prototype.TO_BASE64 = function() { + return this.getToken(MySQLParser.TO_BASE64, 0); +}; + +FunctionNameBaseContext.prototype.TO_DAYS = function() { + return this.getToken(MySQLParser.TO_DAYS, 0); +}; + +FunctionNameBaseContext.prototype.TO_SECONDS = function() { + return this.getToken(MySQLParser.TO_SECONDS, 0); +}; + +FunctionNameBaseContext.prototype.UCASE = function() { + return this.getToken(MySQLParser.UCASE, 0); +}; + +FunctionNameBaseContext.prototype.UNCOMPRESS = function() { + return this.getToken(MySQLParser.UNCOMPRESS, 0); +}; + +FunctionNameBaseContext.prototype.UNCOMPRESSED_LENGTH = function() { + return this.getToken(MySQLParser.UNCOMPRESSED_LENGTH, 0); +}; + +FunctionNameBaseContext.prototype.UNHEX = function() { + return this.getToken(MySQLParser.UNHEX, 0); +}; + +FunctionNameBaseContext.prototype.UNIX_TIMESTAMP = function() { + return this.getToken(MySQLParser.UNIX_TIMESTAMP, 0); +}; + +FunctionNameBaseContext.prototype.UPDATEXML = function() { + return this.getToken(MySQLParser.UPDATEXML, 0); +}; + +FunctionNameBaseContext.prototype.UPPER = function() { + return this.getToken(MySQLParser.UPPER, 0); +}; + +FunctionNameBaseContext.prototype.UUID = function() { + return this.getToken(MySQLParser.UUID, 0); +}; + +FunctionNameBaseContext.prototype.UUID_SHORT = function() { + return this.getToken(MySQLParser.UUID_SHORT, 0); +}; + +FunctionNameBaseContext.prototype.VALIDATE_PASSWORD_STRENGTH = function() { + return this.getToken(MySQLParser.VALIDATE_PASSWORD_STRENGTH, 0); +}; + +FunctionNameBaseContext.prototype.VERSION = function() { + return this.getToken(MySQLParser.VERSION, 0); +}; + +FunctionNameBaseContext.prototype.VISIBLE = function() { + return this.getToken(MySQLParser.VISIBLE, 0); +}; + +FunctionNameBaseContext.prototype.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = function() { + return this.getToken(MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS, 0); +}; + +FunctionNameBaseContext.prototype.WEEK = function() { + return this.getToken(MySQLParser.WEEK, 0); +}; + +FunctionNameBaseContext.prototype.WEEKDAY = function() { + return this.getToken(MySQLParser.WEEKDAY, 0); +}; + +FunctionNameBaseContext.prototype.WEEKOFYEAR = function() { + return this.getToken(MySQLParser.WEEKOFYEAR, 0); +}; + +FunctionNameBaseContext.prototype.WEIGHT_STRING = function() { + return this.getToken(MySQLParser.WEIGHT_STRING, 0); +}; + +FunctionNameBaseContext.prototype.WITHIN = function() { + return this.getToken(MySQLParser.WITHIN, 0); +}; + +FunctionNameBaseContext.prototype.YEAR = function() { + return this.getToken(MySQLParser.YEAR, 0); +}; + +FunctionNameBaseContext.prototype.YEARWEEK = function() { + return this.getToken(MySQLParser.YEARWEEK, 0); +}; + +FunctionNameBaseContext.prototype.Y_FUNCTION = function() { + return this.getToken(MySQLParser.Y_FUNCTION, 0); +}; + +FunctionNameBaseContext.prototype.X_FUNCTION = function() { + return this.getToken(MySQLParser.X_FUNCTION, 0); +}; + +FunctionNameBaseContext.prototype.JSON_VALID = function() { + return this.getToken(MySQLParser.JSON_VALID, 0); +}; + +FunctionNameBaseContext.prototype.JSON_SCHEMA_VALID = function() { + return this.getToken(MySQLParser.JSON_SCHEMA_VALID, 0); +}; + +FunctionNameBaseContext.prototype.enterRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.enterFunctionNameBase(this); + } +}; + +FunctionNameBaseContext.prototype.exitRule = function(listener) { + if(listener instanceof MySQLParserListener ) { + listener.exitFunctionNameBase(this); + } +}; + +FunctionNameBaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof MySQLParserVisitor ) { + return visitor.visitFunctionNameBase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +MySQLParser.FunctionNameBaseContext = FunctionNameBaseContext; + +MySQLParser.prototype.functionNameBase = function() { + + var localctx = new FunctionNameBaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 628, MySQLParser.RULE_functionNameBase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6374; + _la = this._input.LA(1); + if(!(_la===MySQLParser.DATABASE || _la===MySQLParser.LEFT || _la===MySQLParser.RIGHT || ((((_la - 199)) & ~0x1f) == 0 && ((1 << (_la - 199)) & ((1 << (MySQLParser.DATE - 199)) | (1 << (MySQLParser.TIME - 199)) | (1 << (MySQLParser.TIMESTAMP - 199)) | (1 << (MySQLParser.YEAR - 199)))) !== 0) || ((((_la - 233)) & ~0x1f) == 0 && ((1 << (_la - 233)) & ((1 << (MySQLParser.JSON_VALID - 233)) | (1 << (MySQLParser.JSON_SCHEMA_VALID - 233)) | (1 << (MySQLParser.COUNT - 233)) | (1 << (MySQLParser.POSITION - 233)))) !== 0) || _la===MySQLParser.INVISIBLE || ((((_la - 580)) & ~0x1f) == 0 && ((1 << (_la - 580)) & ((1 << (MySQLParser.VISIBLE - 580)) | (1 << (MySQLParser.QUARTER - 580)) | (1 << (MySQLParser.MONTH - 580)) | (1 << (MySQLParser.DAY - 580)) | (1 << (MySQLParser.HOUR - 580)) | (1 << (MySQLParser.MINUTE - 580)) | (1 << (MySQLParser.WEEK - 580)) | (1 << (MySQLParser.SECOND - 580)) | (1 << (MySQLParser.MICROSECOND - 580)))) !== 0) || _la===MySQLParser.SESSION_VARIABLES_ADMIN || ((((_la - 693)) & ~0x1f) == 0 && ((1 << (_la - 693)) & ((1 << (MySQLParser.GEOMETRYCOLLECTION - 693)) | (1 << (MySQLParser.LINESTRING - 693)) | (1 << (MySQLParser.MULTILINESTRING - 693)) | (1 << (MySQLParser.MULTIPOINT - 693)) | (1 << (MySQLParser.MULTIPOLYGON - 693)) | (1 << (MySQLParser.POINT - 693)) | (1 << (MySQLParser.POLYGON - 693)) | (1 << (MySQLParser.ABS - 693)) | (1 << (MySQLParser.ACOS - 693)) | (1 << (MySQLParser.ADDDATE - 693)) | (1 << (MySQLParser.ADDTIME - 693)) | (1 << (MySQLParser.AES_DECRYPT - 693)) | (1 << (MySQLParser.AES_ENCRYPT - 693)) | (1 << (MySQLParser.AREA - 693)) | (1 << (MySQLParser.ASBINARY - 693)) | (1 << (MySQLParser.ASIN - 693)) | (1 << (MySQLParser.ASTEXT - 693)) | (1 << (MySQLParser.ASWKB - 693)) | (1 << (MySQLParser.ASWKT - 693)) | (1 << (MySQLParser.ASYMMETRIC_DECRYPT - 693)) | (1 << (MySQLParser.ASYMMETRIC_DERIVE - 693)) | (1 << (MySQLParser.ASYMMETRIC_ENCRYPT - 693)) | (1 << (MySQLParser.ASYMMETRIC_SIGN - 693)) | (1 << (MySQLParser.ASYMMETRIC_VERIFY - 693)) | (1 << (MySQLParser.ATAN - 693)) | (1 << (MySQLParser.ATAN2 - 693)) | (1 << (MySQLParser.BENCHMARK - 693)) | (1 << (MySQLParser.BIN - 693)) | (1 << (MySQLParser.BIT_COUNT - 693)) | (1 << (MySQLParser.BIT_LENGTH - 693)))) !== 0) || ((((_la - 725)) & ~0x1f) == 0 && ((1 << (_la - 725)) & ((1 << (MySQLParser.BUFFER - 725)) | (1 << (MySQLParser.CEIL - 725)) | (1 << (MySQLParser.CEILING - 725)) | (1 << (MySQLParser.CENTROID - 725)) | (1 << (MySQLParser.CHARACTER_LENGTH - 725)) | (1 << (MySQLParser.CHARSET - 725)) | (1 << (MySQLParser.CHAR_LENGTH - 725)) | (1 << (MySQLParser.COERCIBILITY - 725)) | (1 << (MySQLParser.COLLATION - 725)) | (1 << (MySQLParser.COMPRESS - 725)) | (1 << (MySQLParser.CONCAT - 725)) | (1 << (MySQLParser.CONCAT_WS - 725)) | (1 << (MySQLParser.CONNECTION_ID - 725)) | (1 << (MySQLParser.CONV - 725)) | (1 << (MySQLParser.CONVERT_TZ - 725)) | (1 << (MySQLParser.COS - 725)) | (1 << (MySQLParser.COT - 725)) | (1 << (MySQLParser.CRC32 - 725)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PRIV_KEY - 725)) | (1 << (MySQLParser.CREATE_ASYMMETRIC_PUB_KEY - 725)) | (1 << (MySQLParser.CREATE_DH_PARAMETERS - 725)) | (1 << (MySQLParser.CREATE_DIGEST - 725)) | (1 << (MySQLParser.CROSSES - 725)) | (1 << (MySQLParser.DATEDIFF - 725)) | (1 << (MySQLParser.DATE_FORMAT - 725)) | (1 << (MySQLParser.DAYNAME - 725)) | (1 << (MySQLParser.DAYOFMONTH - 725)) | (1 << (MySQLParser.DAYOFWEEK - 725)) | (1 << (MySQLParser.DAYOFYEAR - 725)) | (1 << (MySQLParser.DECODE - 725)) | (1 << (MySQLParser.DEGREES - 725)))) !== 0) || ((((_la - 757)) & ~0x1f) == 0 && ((1 << (_la - 757)) & ((1 << (MySQLParser.DES_DECRYPT - 757)) | (1 << (MySQLParser.DES_ENCRYPT - 757)) | (1 << (MySQLParser.DIMENSION - 757)) | (1 << (MySQLParser.DISJOINT - 757)) | (1 << (MySQLParser.ELT - 757)) | (1 << (MySQLParser.ENCODE - 757)) | (1 << (MySQLParser.ENCRYPT - 757)) | (1 << (MySQLParser.ENDPOINT - 757)) | (1 << (MySQLParser.ENVELOPE - 757)) | (1 << (MySQLParser.EQUALS - 757)) | (1 << (MySQLParser.EXP - 757)) | (1 << (MySQLParser.EXPORT_SET - 757)) | (1 << (MySQLParser.EXTERIORRING - 757)) | (1 << (MySQLParser.EXTRACTVALUE - 757)) | (1 << (MySQLParser.FIELD - 757)) | (1 << (MySQLParser.FIND_IN_SET - 757)) | (1 << (MySQLParser.FLOOR - 757)) | (1 << (MySQLParser.FORMAT - 757)) | (1 << (MySQLParser.FOUND_ROWS - 757)) | (1 << (MySQLParser.FROM_BASE64 - 757)) | (1 << (MySQLParser.FROM_DAYS - 757)) | (1 << (MySQLParser.FROM_UNIXTIME - 757)) | (1 << (MySQLParser.GEOMCOLLFROMTEXT - 757)) | (1 << (MySQLParser.GEOMCOLLFROMWKB - 757)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMTEXT - 757)) | (1 << (MySQLParser.GEOMETRYCOLLECTIONFROMWKB - 757)) | (1 << (MySQLParser.GEOMETRYFROMTEXT - 757)) | (1 << (MySQLParser.GEOMETRYFROMWKB - 757)) | (1 << (MySQLParser.GEOMETRYN - 757)) | (1 << (MySQLParser.GEOMETRYTYPE - 757)) | (1 << (MySQLParser.GEOMFROMTEXT - 757)) | (1 << (MySQLParser.GEOMFROMWKB - 757)))) !== 0) || ((((_la - 789)) & ~0x1f) == 0 && ((1 << (_la - 789)) & ((1 << (MySQLParser.GET_FORMAT - 789)) | (1 << (MySQLParser.GET_LOCK - 789)) | (1 << (MySQLParser.GLENGTH - 789)) | (1 << (MySQLParser.GREATEST - 789)) | (1 << (MySQLParser.GTID_SUBSET - 789)) | (1 << (MySQLParser.GTID_SUBTRACT - 789)) | (1 << (MySQLParser.HEX - 789)) | (1 << (MySQLParser.IFNULL - 789)) | (1 << (MySQLParser.INET6_ATON - 789)) | (1 << (MySQLParser.INET6_NTOA - 789)) | (1 << (MySQLParser.INET_ATON - 789)) | (1 << (MySQLParser.INET_NTOA - 789)) | (1 << (MySQLParser.INSTR - 789)) | (1 << (MySQLParser.INTERIORRINGN - 789)) | (1 << (MySQLParser.INTERSECTS - 789)) | (1 << (MySQLParser.ISCLOSED - 789)) | (1 << (MySQLParser.ISEMPTY - 789)) | (1 << (MySQLParser.ISNULL - 789)) | (1 << (MySQLParser.ISSIMPLE - 789)) | (1 << (MySQLParser.IS_FREE_LOCK - 789)) | (1 << (MySQLParser.IS_IPV4 - 789)) | (1 << (MySQLParser.IS_IPV4_COMPAT - 789)) | (1 << (MySQLParser.IS_IPV4_MAPPED - 789)) | (1 << (MySQLParser.IS_IPV6 - 789)) | (1 << (MySQLParser.IS_USED_LOCK - 789)) | (1 << (MySQLParser.LAST_INSERT_ID - 789)) | (1 << (MySQLParser.LCASE - 789)) | (1 << (MySQLParser.LEAST - 789)) | (1 << (MySQLParser.LENGTH - 789)) | (1 << (MySQLParser.LINEFROMTEXT - 789)) | (1 << (MySQLParser.LINEFROMWKB - 789)) | (1 << (MySQLParser.LINESTRINGFROMTEXT - 789)))) !== 0) || ((((_la - 821)) & ~0x1f) == 0 && ((1 << (_la - 821)) & ((1 << (MySQLParser.LINESTRINGFROMWKB - 821)) | (1 << (MySQLParser.LN - 821)) | (1 << (MySQLParser.LOAD_FILE - 821)) | (1 << (MySQLParser.LOCATE - 821)) | (1 << (MySQLParser.LOG - 821)) | (1 << (MySQLParser.LOG10 - 821)) | (1 << (MySQLParser.LOG2 - 821)) | (1 << (MySQLParser.LOWER - 821)) | (1 << (MySQLParser.LPAD - 821)) | (1 << (MySQLParser.LTRIM - 821)) | (1 << (MySQLParser.MAKEDATE - 821)) | (1 << (MySQLParser.MAKETIME - 821)) | (1 << (MySQLParser.MAKE_SET - 821)) | (1 << (MySQLParser.MASTER_POS_WAIT - 821)) | (1 << (MySQLParser.MBRCONTAINS - 821)) | (1 << (MySQLParser.MBRDISJOINT - 821)) | (1 << (MySQLParser.MBREQUAL - 821)) | (1 << (MySQLParser.MBRINTERSECTS - 821)) | (1 << (MySQLParser.MBROVERLAPS - 821)) | (1 << (MySQLParser.MBRTOUCHES - 821)) | (1 << (MySQLParser.MBRWITHIN - 821)) | (1 << (MySQLParser.MD5 - 821)) | (1 << (MySQLParser.MLINEFROMTEXT - 821)) | (1 << (MySQLParser.MLINEFROMWKB - 821)) | (1 << (MySQLParser.MONTHNAME - 821)) | (1 << (MySQLParser.MPOINTFROMTEXT - 821)) | (1 << (MySQLParser.MPOINTFROMWKB - 821)) | (1 << (MySQLParser.MPOLYFROMTEXT - 821)) | (1 << (MySQLParser.MPOLYFROMWKB - 821)) | (1 << (MySQLParser.MULTILINESTRINGFROMTEXT - 821)) | (1 << (MySQLParser.MULTILINESTRINGFROMWKB - 821)) | (1 << (MySQLParser.MULTIPOINTFROMTEXT - 821)))) !== 0) || ((((_la - 853)) & ~0x1f) == 0 && ((1 << (_la - 853)) & ((1 << (MySQLParser.MULTIPOINTFROMWKB - 853)) | (1 << (MySQLParser.MULTIPOLYGONFROMTEXT - 853)) | (1 << (MySQLParser.MULTIPOLYGONFROMWKB - 853)) | (1 << (MySQLParser.NAME_CONST - 853)) | (1 << (MySQLParser.NULLIF - 853)) | (1 << (MySQLParser.NUMGEOMETRIES - 853)) | (1 << (MySQLParser.NUMINTERIORRINGS - 853)) | (1 << (MySQLParser.NUMPOINTS - 853)) | (1 << (MySQLParser.OCT - 853)) | (1 << (MySQLParser.OCTET_LENGTH - 853)) | (1 << (MySQLParser.ORD - 853)) | (1 << (MySQLParser.OVERLAPS - 853)) | (1 << (MySQLParser.PERIOD_ADD - 853)) | (1 << (MySQLParser.PERIOD_DIFF - 853)) | (1 << (MySQLParser.PI - 853)) | (1 << (MySQLParser.POINTFROMTEXT - 853)) | (1 << (MySQLParser.POINTFROMWKB - 853)) | (1 << (MySQLParser.POINTN - 853)) | (1 << (MySQLParser.POLYFROMTEXT - 853)) | (1 << (MySQLParser.POLYFROMWKB - 853)) | (1 << (MySQLParser.POLYGONFROMTEXT - 853)) | (1 << (MySQLParser.POLYGONFROMWKB - 853)) | (1 << (MySQLParser.POW - 853)) | (1 << (MySQLParser.POWER - 853)) | (1 << (MySQLParser.QUOTE - 853)) | (1 << (MySQLParser.RADIANS - 853)) | (1 << (MySQLParser.RAND - 853)) | (1 << (MySQLParser.RANDOM_BYTES - 853)) | (1 << (MySQLParser.RELEASE_LOCK - 853)) | (1 << (MySQLParser.REVERSE - 853)) | (1 << (MySQLParser.ROUND - 853)) | (1 << (MySQLParser.ROW_COUNT - 853)))) !== 0) || ((((_la - 885)) & ~0x1f) == 0 && ((1 << (_la - 885)) & ((1 << (MySQLParser.RPAD - 885)) | (1 << (MySQLParser.RTRIM - 885)) | (1 << (MySQLParser.SEC_TO_TIME - 885)) | (1 << (MySQLParser.SESSION_USER - 885)) | (1 << (MySQLParser.SHA - 885)) | (1 << (MySQLParser.SHA1 - 885)) | (1 << (MySQLParser.SHA2 - 885)) | (1 << (MySQLParser.SIGN - 885)) | (1 << (MySQLParser.SIN - 885)) | (1 << (MySQLParser.SLEEP - 885)) | (1 << (MySQLParser.SOUNDEX - 885)) | (1 << (MySQLParser.SQL_THREAD_WAIT_AFTER_GTIDS - 885)) | (1 << (MySQLParser.SQRT - 885)) | (1 << (MySQLParser.SRID - 885)) | (1 << (MySQLParser.STARTPOINT - 885)) | (1 << (MySQLParser.STRCMP - 885)) | (1 << (MySQLParser.STR_TO_DATE - 885)) | (1 << (MySQLParser.ST_AREA - 885)) | (1 << (MySQLParser.ST_ASBINARY - 885)) | (1 << (MySQLParser.ST_ASTEXT - 885)) | (1 << (MySQLParser.ST_ASWKB - 885)) | (1 << (MySQLParser.ST_ASWKT - 885)) | (1 << (MySQLParser.ST_BUFFER - 885)) | (1 << (MySQLParser.ST_CENTROID - 885)) | (1 << (MySQLParser.ST_CONTAINS - 885)) | (1 << (MySQLParser.ST_CROSSES - 885)) | (1 << (MySQLParser.ST_DIFFERENCE - 885)) | (1 << (MySQLParser.ST_DIMENSION - 885)) | (1 << (MySQLParser.ST_DISJOINT - 885)) | (1 << (MySQLParser.ST_DISTANCE - 885)) | (1 << (MySQLParser.ST_ENDPOINT - 885)))) !== 0) || ((((_la - 917)) & ~0x1f) == 0 && ((1 << (_la - 917)) & ((1 << (MySQLParser.ST_ENVELOPE - 917)) | (1 << (MySQLParser.ST_EQUALS - 917)) | (1 << (MySQLParser.ST_EXTERIORRING - 917)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTEXT - 917)) | (1 << (MySQLParser.ST_GEOMCOLLFROMTXT - 917)) | (1 << (MySQLParser.ST_GEOMCOLLFROMWKB - 917)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 917)) | (1 << (MySQLParser.ST_GEOMETRYCOLLECTIONFROMWKB - 917)) | (1 << (MySQLParser.ST_GEOMETRYFROMTEXT - 917)) | (1 << (MySQLParser.ST_GEOMETRYFROMWKB - 917)) | (1 << (MySQLParser.ST_GEOMETRYN - 917)) | (1 << (MySQLParser.ST_GEOMETRYTYPE - 917)) | (1 << (MySQLParser.ST_GEOMFROMTEXT - 917)) | (1 << (MySQLParser.ST_GEOMFROMWKB - 917)) | (1 << (MySQLParser.ST_INTERIORRINGN - 917)) | (1 << (MySQLParser.ST_INTERSECTION - 917)) | (1 << (MySQLParser.ST_INTERSECTS - 917)) | (1 << (MySQLParser.ST_ISCLOSED - 917)) | (1 << (MySQLParser.ST_ISEMPTY - 917)) | (1 << (MySQLParser.ST_ISSIMPLE - 917)) | (1 << (MySQLParser.ST_LINEFROMTEXT - 917)) | (1 << (MySQLParser.ST_LINEFROMWKB - 917)) | (1 << (MySQLParser.ST_LINESTRINGFROMTEXT - 917)) | (1 << (MySQLParser.ST_LINESTRINGFROMWKB - 917)) | (1 << (MySQLParser.ST_NUMGEOMETRIES - 917)) | (1 << (MySQLParser.ST_NUMINTERIORRING - 917)) | (1 << (MySQLParser.ST_NUMINTERIORRINGS - 917)) | (1 << (MySQLParser.ST_NUMPOINTS - 917)) | (1 << (MySQLParser.ST_OVERLAPS - 917)) | (1 << (MySQLParser.ST_POINTFROMTEXT - 917)) | (1 << (MySQLParser.ST_POINTFROMWKB - 917)) | (1 << (MySQLParser.ST_POINTN - 917)))) !== 0) || ((((_la - 949)) & ~0x1f) == 0 && ((1 << (_la - 949)) & ((1 << (MySQLParser.ST_POLYFROMTEXT - 949)) | (1 << (MySQLParser.ST_POLYFROMWKB - 949)) | (1 << (MySQLParser.ST_POLYGONFROMTEXT - 949)) | (1 << (MySQLParser.ST_POLYGONFROMWKB - 949)) | (1 << (MySQLParser.ST_SRID - 949)) | (1 << (MySQLParser.ST_STARTPOINT - 949)) | (1 << (MySQLParser.ST_SYMDIFFERENCE - 949)) | (1 << (MySQLParser.ST_TOUCHES - 949)) | (1 << (MySQLParser.ST_UNION - 949)) | (1 << (MySQLParser.ST_WITHIN - 949)) | (1 << (MySQLParser.ST_X - 949)) | (1 << (MySQLParser.ST_Y - 949)) | (1 << (MySQLParser.SUBDATE - 949)) | (1 << (MySQLParser.SUBSTRING_INDEX - 949)) | (1 << (MySQLParser.SUBTIME - 949)) | (1 << (MySQLParser.SYSTEM_USER - 949)) | (1 << (MySQLParser.TAN - 949)) | (1 << (MySQLParser.TIMEDIFF - 949)) | (1 << (MySQLParser.TIMESTAMPADD - 949)) | (1 << (MySQLParser.TIMESTAMPDIFF - 949)) | (1 << (MySQLParser.TIME_FORMAT - 949)) | (1 << (MySQLParser.TIME_TO_SEC - 949)) | (1 << (MySQLParser.TOUCHES - 949)) | (1 << (MySQLParser.TO_BASE64 - 949)) | (1 << (MySQLParser.TO_DAYS - 949)) | (1 << (MySQLParser.TO_SECONDS - 949)) | (1 << (MySQLParser.UCASE - 949)) | (1 << (MySQLParser.UNCOMPRESS - 949)) | (1 << (MySQLParser.UNCOMPRESSED_LENGTH - 949)) | (1 << (MySQLParser.UNHEX - 949)) | (1 << (MySQLParser.UNIX_TIMESTAMP - 949)) | (1 << (MySQLParser.UPDATEXML - 949)))) !== 0) || ((((_la - 981)) & ~0x1f) == 0 && ((1 << (_la - 981)) & ((1 << (MySQLParser.UPPER - 981)) | (1 << (MySQLParser.UUID - 981)) | (1 << (MySQLParser.UUID_SHORT - 981)) | (1 << (MySQLParser.VALIDATE_PASSWORD_STRENGTH - 981)) | (1 << (MySQLParser.VERSION - 981)) | (1 << (MySQLParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 981)) | (1 << (MySQLParser.WEEKDAY - 981)) | (1 << (MySQLParser.WEEKOFYEAR - 981)) | (1 << (MySQLParser.WEIGHT_STRING - 981)) | (1 << (MySQLParser.WITHIN - 981)) | (1 << (MySQLParser.YEARWEEK - 981)) | (1 << (MySQLParser.Y_FUNCTION - 981)) | (1 << (MySQLParser.X_FUNCTION - 981)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +MySQLParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { + switch(ruleIndex) { + case 300: + return this.expression_sempred(localctx, predIndex); + case 301: + return this.predicate_sempred(localctx, predIndex); + case 302: + return this.expressionAtom_sempred(localctx, predIndex); + default: + throw "No predicate with index:" + ruleIndex; + } +}; + +MySQLParser.prototype.expression_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 0: + return this.precpred(this._ctx, 3); + default: + throw "No predicate with index:" + predIndex; + } +}; + +MySQLParser.prototype.predicate_sempred = function(localctx, predIndex) { + 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); + default: + throw "No predicate with index:" + predIndex; + } +}; + +MySQLParser.prototype.expressionAtom_sempred = function(localctx, predIndex) { + 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); + default: + throw "No predicate with index:" + predIndex; + } +}; + + +exports.MySQLParser = MySQLParser; diff --git a/src/parser/MySQLParser.tokens b/src/parser/MySQLParser.tokens new file mode 100644 index 0000000..57b4669 --- /dev/null +++ b/src/parser/MySQLParser.tokens @@ -0,0 +1,2074 @@ +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/parser/MySQLParserListener.js b/src/parser/MySQLParserListener.js new file mode 100644 index 0000000..7eb83c3 --- /dev/null +++ b/src/parser/MySQLParserListener.js @@ -0,0 +1,4920 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/mysql/MySQLParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + +// This class defines a complete listener for a parse tree produced by MySQLParser. +function MySQLParserListener() { + antlr4.tree.ParseTreeListener.call(this); + return this; +} + +MySQLParserListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); +MySQLParserListener.prototype.constructor = MySQLParserListener; + +// Enter a parse tree produced by MySQLParser#statement. +MySQLParserListener.prototype.enterStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#statement. +MySQLParserListener.prototype.exitStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#sqlStatements. +MySQLParserListener.prototype.enterSqlStatements = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#sqlStatements. +MySQLParserListener.prototype.exitSqlStatements = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#sqlStatement. +MySQLParserListener.prototype.enterSqlStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#sqlStatement. +MySQLParserListener.prototype.exitSqlStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#emptyStatement. +MySQLParserListener.prototype.enterEmptyStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#emptyStatement. +MySQLParserListener.prototype.exitEmptyStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#ddlStatement. +MySQLParserListener.prototype.enterDdlStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#ddlStatement. +MySQLParserListener.prototype.exitDdlStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dmlStatement. +MySQLParserListener.prototype.enterDmlStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dmlStatement. +MySQLParserListener.prototype.exitDmlStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#transactionStatement. +MySQLParserListener.prototype.enterTransactionStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#transactionStatement. +MySQLParserListener.prototype.exitTransactionStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#replicationStatement. +MySQLParserListener.prototype.enterReplicationStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#replicationStatement. +MySQLParserListener.prototype.exitReplicationStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#preparedStatement. +MySQLParserListener.prototype.enterPreparedStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#preparedStatement. +MySQLParserListener.prototype.exitPreparedStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#compoundStatement. +MySQLParserListener.prototype.enterCompoundStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#compoundStatement. +MySQLParserListener.prototype.exitCompoundStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#administrationStatement. +MySQLParserListener.prototype.enterAdministrationStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#administrationStatement. +MySQLParserListener.prototype.exitAdministrationStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#utilityStatement. +MySQLParserListener.prototype.enterUtilityStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#utilityStatement. +MySQLParserListener.prototype.exitUtilityStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createDatabase. +MySQLParserListener.prototype.enterCreateDatabase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createDatabase. +MySQLParserListener.prototype.exitCreateDatabase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createEvent. +MySQLParserListener.prototype.enterCreateEvent = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createEvent. +MySQLParserListener.prototype.exitCreateEvent = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createIndex. +MySQLParserListener.prototype.enterCreateIndex = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createIndex. +MySQLParserListener.prototype.exitCreateIndex = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createLogfileGroup. +MySQLParserListener.prototype.enterCreateLogfileGroup = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createLogfileGroup. +MySQLParserListener.prototype.exitCreateLogfileGroup = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createProcedure. +MySQLParserListener.prototype.enterCreateProcedure = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createProcedure. +MySQLParserListener.prototype.exitCreateProcedure = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createFunction. +MySQLParserListener.prototype.enterCreateFunction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createFunction. +MySQLParserListener.prototype.exitCreateFunction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createServer. +MySQLParserListener.prototype.enterCreateServer = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createServer. +MySQLParserListener.prototype.exitCreateServer = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#copyCreateTable. +MySQLParserListener.prototype.enterCopyCreateTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#copyCreateTable. +MySQLParserListener.prototype.exitCopyCreateTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#queryCreateTable. +MySQLParserListener.prototype.enterQueryCreateTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#queryCreateTable. +MySQLParserListener.prototype.exitQueryCreateTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#columnCreateTable. +MySQLParserListener.prototype.enterColumnCreateTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#columnCreateTable. +MySQLParserListener.prototype.exitColumnCreateTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createTablespaceInnodb. +MySQLParserListener.prototype.enterCreateTablespaceInnodb = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createTablespaceInnodb. +MySQLParserListener.prototype.exitCreateTablespaceInnodb = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createTablespaceNdb. +MySQLParserListener.prototype.enterCreateTablespaceNdb = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createTablespaceNdb. +MySQLParserListener.prototype.exitCreateTablespaceNdb = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createTrigger. +MySQLParserListener.prototype.enterCreateTrigger = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createTrigger. +MySQLParserListener.prototype.exitCreateTrigger = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createView. +MySQLParserListener.prototype.enterCreateView = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createView. +MySQLParserListener.prototype.exitCreateView = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createDatabaseOption. +MySQLParserListener.prototype.enterCreateDatabaseOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createDatabaseOption. +MySQLParserListener.prototype.exitCreateDatabaseOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#ownerStatement. +MySQLParserListener.prototype.enterOwnerStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#ownerStatement. +MySQLParserListener.prototype.exitOwnerStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#preciseSchedule. +MySQLParserListener.prototype.enterPreciseSchedule = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#preciseSchedule. +MySQLParserListener.prototype.exitPreciseSchedule = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#intervalSchedule. +MySQLParserListener.prototype.enterIntervalSchedule = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#intervalSchedule. +MySQLParserListener.prototype.exitIntervalSchedule = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#timestampValue. +MySQLParserListener.prototype.enterTimestampValue = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#timestampValue. +MySQLParserListener.prototype.exitTimestampValue = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#intervalExpr. +MySQLParserListener.prototype.enterIntervalExpr = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#intervalExpr. +MySQLParserListener.prototype.exitIntervalExpr = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#intervalType. +MySQLParserListener.prototype.enterIntervalType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#intervalType. +MySQLParserListener.prototype.exitIntervalType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#enableType. +MySQLParserListener.prototype.enterEnableType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#enableType. +MySQLParserListener.prototype.exitEnableType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#indexType. +MySQLParserListener.prototype.enterIndexType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#indexType. +MySQLParserListener.prototype.exitIndexType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#indexOption. +MySQLParserListener.prototype.enterIndexOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#indexOption. +MySQLParserListener.prototype.exitIndexOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#procedureParameter. +MySQLParserListener.prototype.enterProcedureParameter = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#procedureParameter. +MySQLParserListener.prototype.exitProcedureParameter = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#functionParameter. +MySQLParserListener.prototype.enterFunctionParameter = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#functionParameter. +MySQLParserListener.prototype.exitFunctionParameter = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#routineComment. +MySQLParserListener.prototype.enterRoutineComment = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#routineComment. +MySQLParserListener.prototype.exitRoutineComment = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#routineLanguage. +MySQLParserListener.prototype.enterRoutineLanguage = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#routineLanguage. +MySQLParserListener.prototype.exitRoutineLanguage = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#routineBehavior. +MySQLParserListener.prototype.enterRoutineBehavior = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#routineBehavior. +MySQLParserListener.prototype.exitRoutineBehavior = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#routineData. +MySQLParserListener.prototype.enterRoutineData = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#routineData. +MySQLParserListener.prototype.exitRoutineData = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#routineSecurity. +MySQLParserListener.prototype.enterRoutineSecurity = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#routineSecurity. +MySQLParserListener.prototype.exitRoutineSecurity = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#serverOption. +MySQLParserListener.prototype.enterServerOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#serverOption. +MySQLParserListener.prototype.exitServerOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createDefinitions. +MySQLParserListener.prototype.enterCreateDefinitions = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createDefinitions. +MySQLParserListener.prototype.exitCreateDefinitions = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#columnDeclaration. +MySQLParserListener.prototype.enterColumnDeclaration = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#columnDeclaration. +MySQLParserListener.prototype.exitColumnDeclaration = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#constraintDeclaration. +MySQLParserListener.prototype.enterConstraintDeclaration = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#constraintDeclaration. +MySQLParserListener.prototype.exitConstraintDeclaration = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#indexDeclaration. +MySQLParserListener.prototype.enterIndexDeclaration = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#indexDeclaration. +MySQLParserListener.prototype.exitIndexDeclaration = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#columnDefinition. +MySQLParserListener.prototype.enterColumnDefinition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#columnDefinition. +MySQLParserListener.prototype.exitColumnDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#nullColumnConstraint. +MySQLParserListener.prototype.enterNullColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#nullColumnConstraint. +MySQLParserListener.prototype.exitNullColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#defaultColumnConstraint. +MySQLParserListener.prototype.enterDefaultColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#defaultColumnConstraint. +MySQLParserListener.prototype.exitDefaultColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#autoIncrementColumnConstraint. +MySQLParserListener.prototype.enterAutoIncrementColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#autoIncrementColumnConstraint. +MySQLParserListener.prototype.exitAutoIncrementColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#primaryKeyColumnConstraint. +MySQLParserListener.prototype.enterPrimaryKeyColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#primaryKeyColumnConstraint. +MySQLParserListener.prototype.exitPrimaryKeyColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#uniqueKeyColumnConstraint. +MySQLParserListener.prototype.enterUniqueKeyColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#uniqueKeyColumnConstraint. +MySQLParserListener.prototype.exitUniqueKeyColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#commentColumnConstraint. +MySQLParserListener.prototype.enterCommentColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#commentColumnConstraint. +MySQLParserListener.prototype.exitCommentColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#formatColumnConstraint. +MySQLParserListener.prototype.enterFormatColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#formatColumnConstraint. +MySQLParserListener.prototype.exitFormatColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#storageColumnConstraint. +MySQLParserListener.prototype.enterStorageColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#storageColumnConstraint. +MySQLParserListener.prototype.exitStorageColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#referenceColumnConstraint. +MySQLParserListener.prototype.enterReferenceColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#referenceColumnConstraint. +MySQLParserListener.prototype.exitReferenceColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#collateColumnConstraint. +MySQLParserListener.prototype.enterCollateColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#collateColumnConstraint. +MySQLParserListener.prototype.exitCollateColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#generatedColumnConstraint. +MySQLParserListener.prototype.enterGeneratedColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#generatedColumnConstraint. +MySQLParserListener.prototype.exitGeneratedColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#serialDefaultColumnConstraint. +MySQLParserListener.prototype.enterSerialDefaultColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#serialDefaultColumnConstraint. +MySQLParserListener.prototype.exitSerialDefaultColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#checkColumnConstraint. +MySQLParserListener.prototype.enterCheckColumnConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#checkColumnConstraint. +MySQLParserListener.prototype.exitCheckColumnConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#primaryKeyTableConstraint. +MySQLParserListener.prototype.enterPrimaryKeyTableConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#primaryKeyTableConstraint. +MySQLParserListener.prototype.exitPrimaryKeyTableConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#uniqueKeyTableConstraint. +MySQLParserListener.prototype.enterUniqueKeyTableConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#uniqueKeyTableConstraint. +MySQLParserListener.prototype.exitUniqueKeyTableConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#foreignKeyTableConstraint. +MySQLParserListener.prototype.enterForeignKeyTableConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#foreignKeyTableConstraint. +MySQLParserListener.prototype.exitForeignKeyTableConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#checkTableConstraint. +MySQLParserListener.prototype.enterCheckTableConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#checkTableConstraint. +MySQLParserListener.prototype.exitCheckTableConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#referenceDefinition. +MySQLParserListener.prototype.enterReferenceDefinition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#referenceDefinition. +MySQLParserListener.prototype.exitReferenceDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#referenceAction. +MySQLParserListener.prototype.enterReferenceAction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#referenceAction. +MySQLParserListener.prototype.exitReferenceAction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#referenceControlType. +MySQLParserListener.prototype.enterReferenceControlType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#referenceControlType. +MySQLParserListener.prototype.exitReferenceControlType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleIndexDeclaration. +MySQLParserListener.prototype.enterSimpleIndexDeclaration = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleIndexDeclaration. +MySQLParserListener.prototype.exitSimpleIndexDeclaration = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#specialIndexDeclaration. +MySQLParserListener.prototype.enterSpecialIndexDeclaration = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#specialIndexDeclaration. +MySQLParserListener.prototype.exitSpecialIndexDeclaration = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionEngine. +MySQLParserListener.prototype.enterTableOptionEngine = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionEngine. +MySQLParserListener.prototype.exitTableOptionEngine = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionAutoIncrement. +MySQLParserListener.prototype.enterTableOptionAutoIncrement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionAutoIncrement. +MySQLParserListener.prototype.exitTableOptionAutoIncrement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionAverage. +MySQLParserListener.prototype.enterTableOptionAverage = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionAverage. +MySQLParserListener.prototype.exitTableOptionAverage = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionCharset. +MySQLParserListener.prototype.enterTableOptionCharset = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionCharset. +MySQLParserListener.prototype.exitTableOptionCharset = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionChecksum. +MySQLParserListener.prototype.enterTableOptionChecksum = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionChecksum. +MySQLParserListener.prototype.exitTableOptionChecksum = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionCollate. +MySQLParserListener.prototype.enterTableOptionCollate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionCollate. +MySQLParserListener.prototype.exitTableOptionCollate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionComment. +MySQLParserListener.prototype.enterTableOptionComment = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionComment. +MySQLParserListener.prototype.exitTableOptionComment = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionCompression. +MySQLParserListener.prototype.enterTableOptionCompression = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionCompression. +MySQLParserListener.prototype.exitTableOptionCompression = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionConnection. +MySQLParserListener.prototype.enterTableOptionConnection = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionConnection. +MySQLParserListener.prototype.exitTableOptionConnection = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionDataDirectory. +MySQLParserListener.prototype.enterTableOptionDataDirectory = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionDataDirectory. +MySQLParserListener.prototype.exitTableOptionDataDirectory = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionDelay. +MySQLParserListener.prototype.enterTableOptionDelay = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionDelay. +MySQLParserListener.prototype.exitTableOptionDelay = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionEncryption. +MySQLParserListener.prototype.enterTableOptionEncryption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionEncryption. +MySQLParserListener.prototype.exitTableOptionEncryption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionIndexDirectory. +MySQLParserListener.prototype.enterTableOptionIndexDirectory = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionIndexDirectory. +MySQLParserListener.prototype.exitTableOptionIndexDirectory = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionInsertMethod. +MySQLParserListener.prototype.enterTableOptionInsertMethod = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionInsertMethod. +MySQLParserListener.prototype.exitTableOptionInsertMethod = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionKeyBlockSize. +MySQLParserListener.prototype.enterTableOptionKeyBlockSize = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionKeyBlockSize. +MySQLParserListener.prototype.exitTableOptionKeyBlockSize = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionMaxRows. +MySQLParserListener.prototype.enterTableOptionMaxRows = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionMaxRows. +MySQLParserListener.prototype.exitTableOptionMaxRows = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionMinRows. +MySQLParserListener.prototype.enterTableOptionMinRows = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionMinRows. +MySQLParserListener.prototype.exitTableOptionMinRows = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionPackKeys. +MySQLParserListener.prototype.enterTableOptionPackKeys = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionPackKeys. +MySQLParserListener.prototype.exitTableOptionPackKeys = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionPassword. +MySQLParserListener.prototype.enterTableOptionPassword = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionPassword. +MySQLParserListener.prototype.exitTableOptionPassword = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionRowFormat. +MySQLParserListener.prototype.enterTableOptionRowFormat = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionRowFormat. +MySQLParserListener.prototype.exitTableOptionRowFormat = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionRecalculation. +MySQLParserListener.prototype.enterTableOptionRecalculation = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionRecalculation. +MySQLParserListener.prototype.exitTableOptionRecalculation = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionPersistent. +MySQLParserListener.prototype.enterTableOptionPersistent = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionPersistent. +MySQLParserListener.prototype.exitTableOptionPersistent = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionSamplePage. +MySQLParserListener.prototype.enterTableOptionSamplePage = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionSamplePage. +MySQLParserListener.prototype.exitTableOptionSamplePage = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionTablespace. +MySQLParserListener.prototype.enterTableOptionTablespace = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionTablespace. +MySQLParserListener.prototype.exitTableOptionTablespace = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableOptionUnion. +MySQLParserListener.prototype.enterTableOptionUnion = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableOptionUnion. +MySQLParserListener.prototype.exitTableOptionUnion = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tablespaceStorage. +MySQLParserListener.prototype.enterTablespaceStorage = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tablespaceStorage. +MySQLParserListener.prototype.exitTablespaceStorage = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionDefinitions. +MySQLParserListener.prototype.enterPartitionDefinitions = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionDefinitions. +MySQLParserListener.prototype.exitPartitionDefinitions = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionFunctionHash. +MySQLParserListener.prototype.enterPartitionFunctionHash = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionFunctionHash. +MySQLParserListener.prototype.exitPartitionFunctionHash = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionFunctionKey. +MySQLParserListener.prototype.enterPartitionFunctionKey = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionFunctionKey. +MySQLParserListener.prototype.exitPartitionFunctionKey = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionFunctionRange. +MySQLParserListener.prototype.enterPartitionFunctionRange = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionFunctionRange. +MySQLParserListener.prototype.exitPartitionFunctionRange = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionFunctionList. +MySQLParserListener.prototype.enterPartitionFunctionList = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionFunctionList. +MySQLParserListener.prototype.exitPartitionFunctionList = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#subPartitionFunctionHash. +MySQLParserListener.prototype.enterSubPartitionFunctionHash = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#subPartitionFunctionHash. +MySQLParserListener.prototype.exitSubPartitionFunctionHash = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#subPartitionFunctionKey. +MySQLParserListener.prototype.enterSubPartitionFunctionKey = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#subPartitionFunctionKey. +MySQLParserListener.prototype.exitSubPartitionFunctionKey = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionComparision. +MySQLParserListener.prototype.enterPartitionComparision = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionComparision. +MySQLParserListener.prototype.exitPartitionComparision = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionListAtom. +MySQLParserListener.prototype.enterPartitionListAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionListAtom. +MySQLParserListener.prototype.exitPartitionListAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionListVector. +MySQLParserListener.prototype.enterPartitionListVector = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionListVector. +MySQLParserListener.prototype.exitPartitionListVector = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionSimple. +MySQLParserListener.prototype.enterPartitionSimple = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionSimple. +MySQLParserListener.prototype.exitPartitionSimple = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionDefinerAtom. +MySQLParserListener.prototype.enterPartitionDefinerAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionDefinerAtom. +MySQLParserListener.prototype.exitPartitionDefinerAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionDefinerVector. +MySQLParserListener.prototype.enterPartitionDefinerVector = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionDefinerVector. +MySQLParserListener.prototype.exitPartitionDefinerVector = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#subpartitionDefinition. +MySQLParserListener.prototype.enterSubpartitionDefinition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#subpartitionDefinition. +MySQLParserListener.prototype.exitSubpartitionDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionOptionEngine. +MySQLParserListener.prototype.enterPartitionOptionEngine = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionOptionEngine. +MySQLParserListener.prototype.exitPartitionOptionEngine = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionOptionComment. +MySQLParserListener.prototype.enterPartitionOptionComment = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionOptionComment. +MySQLParserListener.prototype.exitPartitionOptionComment = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionOptionDataDirectory. +MySQLParserListener.prototype.enterPartitionOptionDataDirectory = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionOptionDataDirectory. +MySQLParserListener.prototype.exitPartitionOptionDataDirectory = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionOptionIndexDirectory. +MySQLParserListener.prototype.enterPartitionOptionIndexDirectory = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionOptionIndexDirectory. +MySQLParserListener.prototype.exitPartitionOptionIndexDirectory = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionOptionMaxRows. +MySQLParserListener.prototype.enterPartitionOptionMaxRows = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionOptionMaxRows. +MySQLParserListener.prototype.exitPartitionOptionMaxRows = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionOptionMinRows. +MySQLParserListener.prototype.enterPartitionOptionMinRows = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionOptionMinRows. +MySQLParserListener.prototype.exitPartitionOptionMinRows = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionOptionTablespace. +MySQLParserListener.prototype.enterPartitionOptionTablespace = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionOptionTablespace. +MySQLParserListener.prototype.exitPartitionOptionTablespace = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#partitionOptionNodeGroup. +MySQLParserListener.prototype.enterPartitionOptionNodeGroup = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#partitionOptionNodeGroup. +MySQLParserListener.prototype.exitPartitionOptionNodeGroup = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterSimpleDatabase. +MySQLParserListener.prototype.enterAlterSimpleDatabase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterSimpleDatabase. +MySQLParserListener.prototype.exitAlterSimpleDatabase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterUpgradeName. +MySQLParserListener.prototype.enterAlterUpgradeName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterUpgradeName. +MySQLParserListener.prototype.exitAlterUpgradeName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterEvent. +MySQLParserListener.prototype.enterAlterEvent = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterEvent. +MySQLParserListener.prototype.exitAlterEvent = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterFunction. +MySQLParserListener.prototype.enterAlterFunction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterFunction. +MySQLParserListener.prototype.exitAlterFunction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterInstance. +MySQLParserListener.prototype.enterAlterInstance = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterInstance. +MySQLParserListener.prototype.exitAlterInstance = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterLogfileGroup. +MySQLParserListener.prototype.enterAlterLogfileGroup = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterLogfileGroup. +MySQLParserListener.prototype.exitAlterLogfileGroup = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterProcedure. +MySQLParserListener.prototype.enterAlterProcedure = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterProcedure. +MySQLParserListener.prototype.exitAlterProcedure = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterServer. +MySQLParserListener.prototype.enterAlterServer = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterServer. +MySQLParserListener.prototype.exitAlterServer = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterTable. +MySQLParserListener.prototype.enterAlterTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterTable. +MySQLParserListener.prototype.exitAlterTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterTablespace. +MySQLParserListener.prototype.enterAlterTablespace = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterTablespace. +MySQLParserListener.prototype.exitAlterTablespace = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterView. +MySQLParserListener.prototype.enterAlterView = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterView. +MySQLParserListener.prototype.exitAlterView = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByTableOption. +MySQLParserListener.prototype.enterAlterByTableOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByTableOption. +MySQLParserListener.prototype.exitAlterByTableOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddColumn. +MySQLParserListener.prototype.enterAlterByAddColumn = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddColumn. +MySQLParserListener.prototype.exitAlterByAddColumn = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddColumns. +MySQLParserListener.prototype.enterAlterByAddColumns = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddColumns. +MySQLParserListener.prototype.exitAlterByAddColumns = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddIndex. +MySQLParserListener.prototype.enterAlterByAddIndex = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddIndex. +MySQLParserListener.prototype.exitAlterByAddIndex = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddPrimaryKey. +MySQLParserListener.prototype.enterAlterByAddPrimaryKey = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddPrimaryKey. +MySQLParserListener.prototype.exitAlterByAddPrimaryKey = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddUniqueKey. +MySQLParserListener.prototype.enterAlterByAddUniqueKey = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddUniqueKey. +MySQLParserListener.prototype.exitAlterByAddUniqueKey = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddSpecialIndex. +MySQLParserListener.prototype.enterAlterByAddSpecialIndex = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddSpecialIndex. +MySQLParserListener.prototype.exitAlterByAddSpecialIndex = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddForeignKey. +MySQLParserListener.prototype.enterAlterByAddForeignKey = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddForeignKey. +MySQLParserListener.prototype.exitAlterByAddForeignKey = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddCheckTableConstraint. +MySQLParserListener.prototype.enterAlterByAddCheckTableConstraint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddCheckTableConstraint. +MySQLParserListener.prototype.exitAlterByAddCheckTableConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterBySetAlgorithm. +MySQLParserListener.prototype.enterAlterBySetAlgorithm = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterBySetAlgorithm. +MySQLParserListener.prototype.exitAlterBySetAlgorithm = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByChangeDefault. +MySQLParserListener.prototype.enterAlterByChangeDefault = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByChangeDefault. +MySQLParserListener.prototype.exitAlterByChangeDefault = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByChangeColumn. +MySQLParserListener.prototype.enterAlterByChangeColumn = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByChangeColumn. +MySQLParserListener.prototype.exitAlterByChangeColumn = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByRenameColumn. +MySQLParserListener.prototype.enterAlterByRenameColumn = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByRenameColumn. +MySQLParserListener.prototype.exitAlterByRenameColumn = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByLock. +MySQLParserListener.prototype.enterAlterByLock = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByLock. +MySQLParserListener.prototype.exitAlterByLock = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByModifyColumn. +MySQLParserListener.prototype.enterAlterByModifyColumn = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByModifyColumn. +MySQLParserListener.prototype.exitAlterByModifyColumn = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDropColumn. +MySQLParserListener.prototype.enterAlterByDropColumn = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDropColumn. +MySQLParserListener.prototype.exitAlterByDropColumn = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDropPrimaryKey. +MySQLParserListener.prototype.enterAlterByDropPrimaryKey = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDropPrimaryKey. +MySQLParserListener.prototype.exitAlterByDropPrimaryKey = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByRenameIndex. +MySQLParserListener.prototype.enterAlterByRenameIndex = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByRenameIndex. +MySQLParserListener.prototype.exitAlterByRenameIndex = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAlterIndexVisibility. +MySQLParserListener.prototype.enterAlterByAlterIndexVisibility = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAlterIndexVisibility. +MySQLParserListener.prototype.exitAlterByAlterIndexVisibility = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDropIndex. +MySQLParserListener.prototype.enterAlterByDropIndex = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDropIndex. +MySQLParserListener.prototype.exitAlterByDropIndex = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDropForeignKey. +MySQLParserListener.prototype.enterAlterByDropForeignKey = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDropForeignKey. +MySQLParserListener.prototype.exitAlterByDropForeignKey = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDisableKeys. +MySQLParserListener.prototype.enterAlterByDisableKeys = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDisableKeys. +MySQLParserListener.prototype.exitAlterByDisableKeys = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByEnableKeys. +MySQLParserListener.prototype.enterAlterByEnableKeys = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByEnableKeys. +MySQLParserListener.prototype.exitAlterByEnableKeys = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByRename. +MySQLParserListener.prototype.enterAlterByRename = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByRename. +MySQLParserListener.prototype.exitAlterByRename = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByOrder. +MySQLParserListener.prototype.enterAlterByOrder = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByOrder. +MySQLParserListener.prototype.exitAlterByOrder = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByConvertCharset. +MySQLParserListener.prototype.enterAlterByConvertCharset = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByConvertCharset. +MySQLParserListener.prototype.exitAlterByConvertCharset = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDefaultCharset. +MySQLParserListener.prototype.enterAlterByDefaultCharset = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDefaultCharset. +MySQLParserListener.prototype.exitAlterByDefaultCharset = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDiscardTablespace. +MySQLParserListener.prototype.enterAlterByDiscardTablespace = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDiscardTablespace. +MySQLParserListener.prototype.exitAlterByDiscardTablespace = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByImportTablespace. +MySQLParserListener.prototype.enterAlterByImportTablespace = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByImportTablespace. +MySQLParserListener.prototype.exitAlterByImportTablespace = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByForce. +MySQLParserListener.prototype.enterAlterByForce = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByForce. +MySQLParserListener.prototype.exitAlterByForce = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByValidate. +MySQLParserListener.prototype.enterAlterByValidate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByValidate. +MySQLParserListener.prototype.exitAlterByValidate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAddPartition. +MySQLParserListener.prototype.enterAlterByAddPartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAddPartition. +MySQLParserListener.prototype.exitAlterByAddPartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDropPartition. +MySQLParserListener.prototype.enterAlterByDropPartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDropPartition. +MySQLParserListener.prototype.exitAlterByDropPartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByDiscardPartition. +MySQLParserListener.prototype.enterAlterByDiscardPartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByDiscardPartition. +MySQLParserListener.prototype.exitAlterByDiscardPartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByImportPartition. +MySQLParserListener.prototype.enterAlterByImportPartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByImportPartition. +MySQLParserListener.prototype.exitAlterByImportPartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByTruncatePartition. +MySQLParserListener.prototype.enterAlterByTruncatePartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByTruncatePartition. +MySQLParserListener.prototype.exitAlterByTruncatePartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByCoalescePartition. +MySQLParserListener.prototype.enterAlterByCoalescePartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByCoalescePartition. +MySQLParserListener.prototype.exitAlterByCoalescePartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByReorganizePartition. +MySQLParserListener.prototype.enterAlterByReorganizePartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByReorganizePartition. +MySQLParserListener.prototype.exitAlterByReorganizePartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByExchangePartition. +MySQLParserListener.prototype.enterAlterByExchangePartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByExchangePartition. +MySQLParserListener.prototype.exitAlterByExchangePartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByAnalyzePartition. +MySQLParserListener.prototype.enterAlterByAnalyzePartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByAnalyzePartition. +MySQLParserListener.prototype.exitAlterByAnalyzePartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByCheckPartition. +MySQLParserListener.prototype.enterAlterByCheckPartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByCheckPartition. +MySQLParserListener.prototype.exitAlterByCheckPartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByOptimizePartition. +MySQLParserListener.prototype.enterAlterByOptimizePartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByOptimizePartition. +MySQLParserListener.prototype.exitAlterByOptimizePartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByRebuildPartition. +MySQLParserListener.prototype.enterAlterByRebuildPartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByRebuildPartition. +MySQLParserListener.prototype.exitAlterByRebuildPartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByRepairPartition. +MySQLParserListener.prototype.enterAlterByRepairPartition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByRepairPartition. +MySQLParserListener.prototype.exitAlterByRepairPartition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByRemovePartitioning. +MySQLParserListener.prototype.enterAlterByRemovePartitioning = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByRemovePartitioning. +MySQLParserListener.prototype.exitAlterByRemovePartitioning = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterByUpgradePartitioning. +MySQLParserListener.prototype.enterAlterByUpgradePartitioning = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterByUpgradePartitioning. +MySQLParserListener.prototype.exitAlterByUpgradePartitioning = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropDatabase. +MySQLParserListener.prototype.enterDropDatabase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropDatabase. +MySQLParserListener.prototype.exitDropDatabase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropEvent. +MySQLParserListener.prototype.enterDropEvent = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropEvent. +MySQLParserListener.prototype.exitDropEvent = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropIndex. +MySQLParserListener.prototype.enterDropIndex = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropIndex. +MySQLParserListener.prototype.exitDropIndex = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropLogfileGroup. +MySQLParserListener.prototype.enterDropLogfileGroup = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropLogfileGroup. +MySQLParserListener.prototype.exitDropLogfileGroup = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropProcedure. +MySQLParserListener.prototype.enterDropProcedure = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropProcedure. +MySQLParserListener.prototype.exitDropProcedure = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropFunction. +MySQLParserListener.prototype.enterDropFunction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropFunction. +MySQLParserListener.prototype.exitDropFunction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropServer. +MySQLParserListener.prototype.enterDropServer = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropServer. +MySQLParserListener.prototype.exitDropServer = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropTable. +MySQLParserListener.prototype.enterDropTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropTable. +MySQLParserListener.prototype.exitDropTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropTablespace. +MySQLParserListener.prototype.enterDropTablespace = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropTablespace. +MySQLParserListener.prototype.exitDropTablespace = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropTrigger. +MySQLParserListener.prototype.enterDropTrigger = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropTrigger. +MySQLParserListener.prototype.exitDropTrigger = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropView. +MySQLParserListener.prototype.enterDropView = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropView. +MySQLParserListener.prototype.exitDropView = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#renameTable. +MySQLParserListener.prototype.enterRenameTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#renameTable. +MySQLParserListener.prototype.exitRenameTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#renameTableClause. +MySQLParserListener.prototype.enterRenameTableClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#renameTableClause. +MySQLParserListener.prototype.exitRenameTableClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#truncateTable. +MySQLParserListener.prototype.enterTruncateTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#truncateTable. +MySQLParserListener.prototype.exitTruncateTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#callStatement. +MySQLParserListener.prototype.enterCallStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#callStatement. +MySQLParserListener.prototype.exitCallStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#deleteStatement. +MySQLParserListener.prototype.enterDeleteStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#deleteStatement. +MySQLParserListener.prototype.exitDeleteStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#doStatement. +MySQLParserListener.prototype.enterDoStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#doStatement. +MySQLParserListener.prototype.exitDoStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerStatement. +MySQLParserListener.prototype.enterHandlerStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerStatement. +MySQLParserListener.prototype.exitHandlerStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#insertStatement. +MySQLParserListener.prototype.enterInsertStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#insertStatement. +MySQLParserListener.prototype.exitInsertStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#loadDataStatement. +MySQLParserListener.prototype.enterLoadDataStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#loadDataStatement. +MySQLParserListener.prototype.exitLoadDataStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#loadXmlStatement. +MySQLParserListener.prototype.enterLoadXmlStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#loadXmlStatement. +MySQLParserListener.prototype.exitLoadXmlStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#replaceStatement. +MySQLParserListener.prototype.enterReplaceStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#replaceStatement. +MySQLParserListener.prototype.exitReplaceStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleSelect. +MySQLParserListener.prototype.enterSimpleSelect = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleSelect. +MySQLParserListener.prototype.exitSimpleSelect = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#parenthesisSelect. +MySQLParserListener.prototype.enterParenthesisSelect = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#parenthesisSelect. +MySQLParserListener.prototype.exitParenthesisSelect = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#unionSelect. +MySQLParserListener.prototype.enterUnionSelect = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#unionSelect. +MySQLParserListener.prototype.exitUnionSelect = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#unionParenthesisSelect. +MySQLParserListener.prototype.enterUnionParenthesisSelect = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#unionParenthesisSelect. +MySQLParserListener.prototype.exitUnionParenthesisSelect = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#updateStatement. +MySQLParserListener.prototype.enterUpdateStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#updateStatement. +MySQLParserListener.prototype.exitUpdateStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#insertStatementValue. +MySQLParserListener.prototype.enterInsertStatementValue = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#insertStatementValue. +MySQLParserListener.prototype.exitInsertStatementValue = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#updatedElement. +MySQLParserListener.prototype.enterUpdatedElement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#updatedElement. +MySQLParserListener.prototype.exitUpdatedElement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#assignmentField. +MySQLParserListener.prototype.enterAssignmentField = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#assignmentField. +MySQLParserListener.prototype.exitAssignmentField = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#lockClause. +MySQLParserListener.prototype.enterLockClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#lockClause. +MySQLParserListener.prototype.exitLockClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#singleDeleteStatement. +MySQLParserListener.prototype.enterSingleDeleteStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#singleDeleteStatement. +MySQLParserListener.prototype.exitSingleDeleteStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#multipleDeleteStatement. +MySQLParserListener.prototype.enterMultipleDeleteStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#multipleDeleteStatement. +MySQLParserListener.prototype.exitMultipleDeleteStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerOpenStatement. +MySQLParserListener.prototype.enterHandlerOpenStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerOpenStatement. +MySQLParserListener.prototype.exitHandlerOpenStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerReadIndexStatement. +MySQLParserListener.prototype.enterHandlerReadIndexStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerReadIndexStatement. +MySQLParserListener.prototype.exitHandlerReadIndexStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerReadStatement. +MySQLParserListener.prototype.enterHandlerReadStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerReadStatement. +MySQLParserListener.prototype.exitHandlerReadStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerCloseStatement. +MySQLParserListener.prototype.enterHandlerCloseStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerCloseStatement. +MySQLParserListener.prototype.exitHandlerCloseStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#singleUpdateStatement. +MySQLParserListener.prototype.enterSingleUpdateStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#singleUpdateStatement. +MySQLParserListener.prototype.exitSingleUpdateStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#multipleUpdateStatement. +MySQLParserListener.prototype.enterMultipleUpdateStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#multipleUpdateStatement. +MySQLParserListener.prototype.exitMultipleUpdateStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#orderByClause. +MySQLParserListener.prototype.enterOrderByClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#orderByClause. +MySQLParserListener.prototype.exitOrderByClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#orderByExpression. +MySQLParserListener.prototype.enterOrderByExpression = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#orderByExpression. +MySQLParserListener.prototype.exitOrderByExpression = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableSources. +MySQLParserListener.prototype.enterTableSources = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableSources. +MySQLParserListener.prototype.exitTableSources = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableSourceBase. +MySQLParserListener.prototype.enterTableSourceBase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableSourceBase. +MySQLParserListener.prototype.exitTableSourceBase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableSourceNested. +MySQLParserListener.prototype.enterTableSourceNested = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableSourceNested. +MySQLParserListener.prototype.exitTableSourceNested = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#atomTableItem. +MySQLParserListener.prototype.enterAtomTableItem = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#atomTableItem. +MySQLParserListener.prototype.exitAtomTableItem = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#subqueryTableItem. +MySQLParserListener.prototype.enterSubqueryTableItem = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#subqueryTableItem. +MySQLParserListener.prototype.exitSubqueryTableItem = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableSourcesItem. +MySQLParserListener.prototype.enterTableSourcesItem = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableSourcesItem. +MySQLParserListener.prototype.exitTableSourcesItem = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#indexHint. +MySQLParserListener.prototype.enterIndexHint = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#indexHint. +MySQLParserListener.prototype.exitIndexHint = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#indexHintType. +MySQLParserListener.prototype.enterIndexHintType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#indexHintType. +MySQLParserListener.prototype.exitIndexHintType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#innerJoin. +MySQLParserListener.prototype.enterInnerJoin = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#innerJoin. +MySQLParserListener.prototype.exitInnerJoin = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#straightJoin. +MySQLParserListener.prototype.enterStraightJoin = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#straightJoin. +MySQLParserListener.prototype.exitStraightJoin = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#outerJoin. +MySQLParserListener.prototype.enterOuterJoin = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#outerJoin. +MySQLParserListener.prototype.exitOuterJoin = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#naturalJoin. +MySQLParserListener.prototype.enterNaturalJoin = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#naturalJoin. +MySQLParserListener.prototype.exitNaturalJoin = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#queryExpression. +MySQLParserListener.prototype.enterQueryExpression = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#queryExpression. +MySQLParserListener.prototype.exitQueryExpression = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#queryExpressionNointo. +MySQLParserListener.prototype.enterQueryExpressionNointo = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#queryExpressionNointo. +MySQLParserListener.prototype.exitQueryExpressionNointo = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#querySpecification. +MySQLParserListener.prototype.enterQuerySpecification = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#querySpecification. +MySQLParserListener.prototype.exitQuerySpecification = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#querySpecificationNointo. +MySQLParserListener.prototype.enterQuerySpecificationNointo = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#querySpecificationNointo. +MySQLParserListener.prototype.exitQuerySpecificationNointo = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#unionParenthesis. +MySQLParserListener.prototype.enterUnionParenthesis = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#unionParenthesis. +MySQLParserListener.prototype.exitUnionParenthesis = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#unionStatement. +MySQLParserListener.prototype.enterUnionStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#unionStatement. +MySQLParserListener.prototype.exitUnionStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectSpec. +MySQLParserListener.prototype.enterSelectSpec = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectSpec. +MySQLParserListener.prototype.exitSelectSpec = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectElements. +MySQLParserListener.prototype.enterSelectElements = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectElements. +MySQLParserListener.prototype.exitSelectElements = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectStarElement. +MySQLParserListener.prototype.enterSelectStarElement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectStarElement. +MySQLParserListener.prototype.exitSelectStarElement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectColumnElement. +MySQLParserListener.prototype.enterSelectColumnElement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectColumnElement. +MySQLParserListener.prototype.exitSelectColumnElement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectFunctionElement. +MySQLParserListener.prototype.enterSelectFunctionElement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectFunctionElement. +MySQLParserListener.prototype.exitSelectFunctionElement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectExpressionElement. +MySQLParserListener.prototype.enterSelectExpressionElement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectExpressionElement. +MySQLParserListener.prototype.exitSelectExpressionElement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectIntoVariables. +MySQLParserListener.prototype.enterSelectIntoVariables = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectIntoVariables. +MySQLParserListener.prototype.exitSelectIntoVariables = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectIntoDumpFile. +MySQLParserListener.prototype.enterSelectIntoDumpFile = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectIntoDumpFile. +MySQLParserListener.prototype.exitSelectIntoDumpFile = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectIntoTextFile. +MySQLParserListener.prototype.enterSelectIntoTextFile = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectIntoTextFile. +MySQLParserListener.prototype.exitSelectIntoTextFile = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectFieldsInto. +MySQLParserListener.prototype.enterSelectFieldsInto = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectFieldsInto. +MySQLParserListener.prototype.exitSelectFieldsInto = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#selectLinesInto. +MySQLParserListener.prototype.enterSelectLinesInto = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#selectLinesInto. +MySQLParserListener.prototype.exitSelectLinesInto = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#fromClause. +MySQLParserListener.prototype.enterFromClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#fromClause. +MySQLParserListener.prototype.exitFromClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#groupByItem. +MySQLParserListener.prototype.enterGroupByItem = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#groupByItem. +MySQLParserListener.prototype.exitGroupByItem = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#limitClause. +MySQLParserListener.prototype.enterLimitClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#limitClause. +MySQLParserListener.prototype.exitLimitClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#limitClauseAtom. +MySQLParserListener.prototype.enterLimitClauseAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#limitClauseAtom. +MySQLParserListener.prototype.exitLimitClauseAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#startTransaction. +MySQLParserListener.prototype.enterStartTransaction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#startTransaction. +MySQLParserListener.prototype.exitStartTransaction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#beginWork. +MySQLParserListener.prototype.enterBeginWork = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#beginWork. +MySQLParserListener.prototype.exitBeginWork = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#commitWork. +MySQLParserListener.prototype.enterCommitWork = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#commitWork. +MySQLParserListener.prototype.exitCommitWork = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#rollbackWork. +MySQLParserListener.prototype.enterRollbackWork = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#rollbackWork. +MySQLParserListener.prototype.exitRollbackWork = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#savepointStatement. +MySQLParserListener.prototype.enterSavepointStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#savepointStatement. +MySQLParserListener.prototype.exitSavepointStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#rollbackStatement. +MySQLParserListener.prototype.enterRollbackStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#rollbackStatement. +MySQLParserListener.prototype.exitRollbackStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#releaseStatement. +MySQLParserListener.prototype.enterReleaseStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#releaseStatement. +MySQLParserListener.prototype.exitReleaseStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#lockTables. +MySQLParserListener.prototype.enterLockTables = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#lockTables. +MySQLParserListener.prototype.exitLockTables = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#unlockTables. +MySQLParserListener.prototype.enterUnlockTables = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#unlockTables. +MySQLParserListener.prototype.exitUnlockTables = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setAutocommitStatement. +MySQLParserListener.prototype.enterSetAutocommitStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setAutocommitStatement. +MySQLParserListener.prototype.exitSetAutocommitStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setTransactionStatement. +MySQLParserListener.prototype.enterSetTransactionStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setTransactionStatement. +MySQLParserListener.prototype.exitSetTransactionStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#transactionMode. +MySQLParserListener.prototype.enterTransactionMode = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#transactionMode. +MySQLParserListener.prototype.exitTransactionMode = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#lockTableElement. +MySQLParserListener.prototype.enterLockTableElement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#lockTableElement. +MySQLParserListener.prototype.exitLockTableElement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#lockAction. +MySQLParserListener.prototype.enterLockAction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#lockAction. +MySQLParserListener.prototype.exitLockAction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#transactionOption. +MySQLParserListener.prototype.enterTransactionOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#transactionOption. +MySQLParserListener.prototype.exitTransactionOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#transactionLevel. +MySQLParserListener.prototype.enterTransactionLevel = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#transactionLevel. +MySQLParserListener.prototype.exitTransactionLevel = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#changeMaster. +MySQLParserListener.prototype.enterChangeMaster = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#changeMaster. +MySQLParserListener.prototype.exitChangeMaster = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#changeReplicationFilter. +MySQLParserListener.prototype.enterChangeReplicationFilter = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#changeReplicationFilter. +MySQLParserListener.prototype.exitChangeReplicationFilter = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#purgeBinaryLogs. +MySQLParserListener.prototype.enterPurgeBinaryLogs = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#purgeBinaryLogs. +MySQLParserListener.prototype.exitPurgeBinaryLogs = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#resetMaster. +MySQLParserListener.prototype.enterResetMaster = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#resetMaster. +MySQLParserListener.prototype.exitResetMaster = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#resetSlave. +MySQLParserListener.prototype.enterResetSlave = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#resetSlave. +MySQLParserListener.prototype.exitResetSlave = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#startSlave. +MySQLParserListener.prototype.enterStartSlave = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#startSlave. +MySQLParserListener.prototype.exitStartSlave = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#stopSlave. +MySQLParserListener.prototype.enterStopSlave = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#stopSlave. +MySQLParserListener.prototype.exitStopSlave = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#startGroupReplication. +MySQLParserListener.prototype.enterStartGroupReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#startGroupReplication. +MySQLParserListener.prototype.exitStartGroupReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#stopGroupReplication. +MySQLParserListener.prototype.enterStopGroupReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#stopGroupReplication. +MySQLParserListener.prototype.exitStopGroupReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#masterStringOption. +MySQLParserListener.prototype.enterMasterStringOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#masterStringOption. +MySQLParserListener.prototype.exitMasterStringOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#masterDecimalOption. +MySQLParserListener.prototype.enterMasterDecimalOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#masterDecimalOption. +MySQLParserListener.prototype.exitMasterDecimalOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#masterBoolOption. +MySQLParserListener.prototype.enterMasterBoolOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#masterBoolOption. +MySQLParserListener.prototype.exitMasterBoolOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#masterRealOption. +MySQLParserListener.prototype.enterMasterRealOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#masterRealOption. +MySQLParserListener.prototype.exitMasterRealOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#masterUidListOption. +MySQLParserListener.prototype.enterMasterUidListOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#masterUidListOption. +MySQLParserListener.prototype.exitMasterUidListOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#stringMasterOption. +MySQLParserListener.prototype.enterStringMasterOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#stringMasterOption. +MySQLParserListener.prototype.exitStringMasterOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#decimalMasterOption. +MySQLParserListener.prototype.enterDecimalMasterOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#decimalMasterOption. +MySQLParserListener.prototype.exitDecimalMasterOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#boolMasterOption. +MySQLParserListener.prototype.enterBoolMasterOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#boolMasterOption. +MySQLParserListener.prototype.exitBoolMasterOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#channelOption. +MySQLParserListener.prototype.enterChannelOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#channelOption. +MySQLParserListener.prototype.exitChannelOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#doDbReplication. +MySQLParserListener.prototype.enterDoDbReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#doDbReplication. +MySQLParserListener.prototype.exitDoDbReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#ignoreDbReplication. +MySQLParserListener.prototype.enterIgnoreDbReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#ignoreDbReplication. +MySQLParserListener.prototype.exitIgnoreDbReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#doTableReplication. +MySQLParserListener.prototype.enterDoTableReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#doTableReplication. +MySQLParserListener.prototype.exitDoTableReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#ignoreTableReplication. +MySQLParserListener.prototype.enterIgnoreTableReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#ignoreTableReplication. +MySQLParserListener.prototype.exitIgnoreTableReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#wildDoTableReplication. +MySQLParserListener.prototype.enterWildDoTableReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#wildDoTableReplication. +MySQLParserListener.prototype.exitWildDoTableReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#wildIgnoreTableReplication. +MySQLParserListener.prototype.enterWildIgnoreTableReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#wildIgnoreTableReplication. +MySQLParserListener.prototype.exitWildIgnoreTableReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#rewriteDbReplication. +MySQLParserListener.prototype.enterRewriteDbReplication = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#rewriteDbReplication. +MySQLParserListener.prototype.exitRewriteDbReplication = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tablePair. +MySQLParserListener.prototype.enterTablePair = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tablePair. +MySQLParserListener.prototype.exitTablePair = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#threadType. +MySQLParserListener.prototype.enterThreadType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#threadType. +MySQLParserListener.prototype.exitThreadType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#gtidsUntilOption. +MySQLParserListener.prototype.enterGtidsUntilOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#gtidsUntilOption. +MySQLParserListener.prototype.exitGtidsUntilOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#masterLogUntilOption. +MySQLParserListener.prototype.enterMasterLogUntilOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#masterLogUntilOption. +MySQLParserListener.prototype.exitMasterLogUntilOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#relayLogUntilOption. +MySQLParserListener.prototype.enterRelayLogUntilOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#relayLogUntilOption. +MySQLParserListener.prototype.exitRelayLogUntilOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#sqlGapsUntilOption. +MySQLParserListener.prototype.enterSqlGapsUntilOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#sqlGapsUntilOption. +MySQLParserListener.prototype.exitSqlGapsUntilOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#userConnectionOption. +MySQLParserListener.prototype.enterUserConnectionOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#userConnectionOption. +MySQLParserListener.prototype.exitUserConnectionOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#passwordConnectionOption. +MySQLParserListener.prototype.enterPasswordConnectionOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#passwordConnectionOption. +MySQLParserListener.prototype.exitPasswordConnectionOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#defaultAuthConnectionOption. +MySQLParserListener.prototype.enterDefaultAuthConnectionOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#defaultAuthConnectionOption. +MySQLParserListener.prototype.exitDefaultAuthConnectionOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#pluginDirConnectionOption. +MySQLParserListener.prototype.enterPluginDirConnectionOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#pluginDirConnectionOption. +MySQLParserListener.prototype.exitPluginDirConnectionOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#gtuidSet. +MySQLParserListener.prototype.enterGtuidSet = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#gtuidSet. +MySQLParserListener.prototype.exitGtuidSet = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#xaStartTransaction. +MySQLParserListener.prototype.enterXaStartTransaction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#xaStartTransaction. +MySQLParserListener.prototype.exitXaStartTransaction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#xaEndTransaction. +MySQLParserListener.prototype.enterXaEndTransaction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#xaEndTransaction. +MySQLParserListener.prototype.exitXaEndTransaction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#xaPrepareStatement. +MySQLParserListener.prototype.enterXaPrepareStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#xaPrepareStatement. +MySQLParserListener.prototype.exitXaPrepareStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#xaCommitWork. +MySQLParserListener.prototype.enterXaCommitWork = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#xaCommitWork. +MySQLParserListener.prototype.exitXaCommitWork = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#xaRollbackWork. +MySQLParserListener.prototype.enterXaRollbackWork = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#xaRollbackWork. +MySQLParserListener.prototype.exitXaRollbackWork = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#xaRecoverWork. +MySQLParserListener.prototype.enterXaRecoverWork = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#xaRecoverWork. +MySQLParserListener.prototype.exitXaRecoverWork = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#prepareStatement. +MySQLParserListener.prototype.enterPrepareStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#prepareStatement. +MySQLParserListener.prototype.exitPrepareStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#executeStatement. +MySQLParserListener.prototype.enterExecuteStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#executeStatement. +MySQLParserListener.prototype.exitExecuteStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#deallocatePrepare. +MySQLParserListener.prototype.enterDeallocatePrepare = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#deallocatePrepare. +MySQLParserListener.prototype.exitDeallocatePrepare = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#routineBody. +MySQLParserListener.prototype.enterRoutineBody = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#routineBody. +MySQLParserListener.prototype.exitRoutineBody = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#blockStatement. +MySQLParserListener.prototype.enterBlockStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#blockStatement. +MySQLParserListener.prototype.exitBlockStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#caseStatement. +MySQLParserListener.prototype.enterCaseStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#caseStatement. +MySQLParserListener.prototype.exitCaseStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#ifStatement. +MySQLParserListener.prototype.enterIfStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#ifStatement. +MySQLParserListener.prototype.exitIfStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#iterateStatement. +MySQLParserListener.prototype.enterIterateStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#iterateStatement. +MySQLParserListener.prototype.exitIterateStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#leaveStatement. +MySQLParserListener.prototype.enterLeaveStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#leaveStatement. +MySQLParserListener.prototype.exitLeaveStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#loopStatement. +MySQLParserListener.prototype.enterLoopStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#loopStatement. +MySQLParserListener.prototype.exitLoopStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#repeatStatement. +MySQLParserListener.prototype.enterRepeatStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#repeatStatement. +MySQLParserListener.prototype.exitRepeatStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#returnStatement. +MySQLParserListener.prototype.enterReturnStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#returnStatement. +MySQLParserListener.prototype.exitReturnStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#whileStatement. +MySQLParserListener.prototype.enterWhileStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#whileStatement. +MySQLParserListener.prototype.exitWhileStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#CloseCursor. +MySQLParserListener.prototype.enterCloseCursor = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#CloseCursor. +MySQLParserListener.prototype.exitCloseCursor = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#FetchCursor. +MySQLParserListener.prototype.enterFetchCursor = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#FetchCursor. +MySQLParserListener.prototype.exitFetchCursor = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#OpenCursor. +MySQLParserListener.prototype.enterOpenCursor = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#OpenCursor. +MySQLParserListener.prototype.exitOpenCursor = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#declareVariable. +MySQLParserListener.prototype.enterDeclareVariable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#declareVariable. +MySQLParserListener.prototype.exitDeclareVariable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#declareCondition. +MySQLParserListener.prototype.enterDeclareCondition = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#declareCondition. +MySQLParserListener.prototype.exitDeclareCondition = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#declareCursor. +MySQLParserListener.prototype.enterDeclareCursor = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#declareCursor. +MySQLParserListener.prototype.exitDeclareCursor = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#declareHandler. +MySQLParserListener.prototype.enterDeclareHandler = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#declareHandler. +MySQLParserListener.prototype.exitDeclareHandler = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerConditionCode. +MySQLParserListener.prototype.enterHandlerConditionCode = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerConditionCode. +MySQLParserListener.prototype.exitHandlerConditionCode = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerConditionState. +MySQLParserListener.prototype.enterHandlerConditionState = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerConditionState. +MySQLParserListener.prototype.exitHandlerConditionState = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerConditionName. +MySQLParserListener.prototype.enterHandlerConditionName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerConditionName. +MySQLParserListener.prototype.exitHandlerConditionName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerConditionWarning. +MySQLParserListener.prototype.enterHandlerConditionWarning = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerConditionWarning. +MySQLParserListener.prototype.exitHandlerConditionWarning = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerConditionNotfound. +MySQLParserListener.prototype.enterHandlerConditionNotfound = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerConditionNotfound. +MySQLParserListener.prototype.exitHandlerConditionNotfound = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#handlerConditionException. +MySQLParserListener.prototype.enterHandlerConditionException = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#handlerConditionException. +MySQLParserListener.prototype.exitHandlerConditionException = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#procedureSqlStatement. +MySQLParserListener.prototype.enterProcedureSqlStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#procedureSqlStatement. +MySQLParserListener.prototype.exitProcedureSqlStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#caseAlternative. +MySQLParserListener.prototype.enterCaseAlternative = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#caseAlternative. +MySQLParserListener.prototype.exitCaseAlternative = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#elifAlternative. +MySQLParserListener.prototype.enterElifAlternative = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#elifAlternative. +MySQLParserListener.prototype.exitElifAlternative = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterUserMysqlV56. +MySQLParserListener.prototype.enterAlterUserMysqlV56 = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterUserMysqlV56. +MySQLParserListener.prototype.exitAlterUserMysqlV56 = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#alterUserMysqlV57. +MySQLParserListener.prototype.enterAlterUserMysqlV57 = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#alterUserMysqlV57. +MySQLParserListener.prototype.exitAlterUserMysqlV57 = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createUserMysqlV56. +MySQLParserListener.prototype.enterCreateUserMysqlV56 = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createUserMysqlV56. +MySQLParserListener.prototype.exitCreateUserMysqlV56 = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createUserMysqlV57. +MySQLParserListener.prototype.enterCreateUserMysqlV57 = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createUserMysqlV57. +MySQLParserListener.prototype.exitCreateUserMysqlV57 = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dropUser. +MySQLParserListener.prototype.enterDropUser = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dropUser. +MySQLParserListener.prototype.exitDropUser = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#grantStatement. +MySQLParserListener.prototype.enterGrantStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#grantStatement. +MySQLParserListener.prototype.exitGrantStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#grantProxy. +MySQLParserListener.prototype.enterGrantProxy = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#grantProxy. +MySQLParserListener.prototype.exitGrantProxy = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#renameUser. +MySQLParserListener.prototype.enterRenameUser = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#renameUser. +MySQLParserListener.prototype.exitRenameUser = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#detailRevoke. +MySQLParserListener.prototype.enterDetailRevoke = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#detailRevoke. +MySQLParserListener.prototype.exitDetailRevoke = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#shortRevoke. +MySQLParserListener.prototype.enterShortRevoke = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#shortRevoke. +MySQLParserListener.prototype.exitShortRevoke = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#revokeProxy. +MySQLParserListener.prototype.enterRevokeProxy = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#revokeProxy. +MySQLParserListener.prototype.exitRevokeProxy = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setPasswordStatement. +MySQLParserListener.prototype.enterSetPasswordStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setPasswordStatement. +MySQLParserListener.prototype.exitSetPasswordStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#userSpecification. +MySQLParserListener.prototype.enterUserSpecification = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#userSpecification. +MySQLParserListener.prototype.exitUserSpecification = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#passwordAuthOption. +MySQLParserListener.prototype.enterPasswordAuthOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#passwordAuthOption. +MySQLParserListener.prototype.exitPasswordAuthOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#stringAuthOption. +MySQLParserListener.prototype.enterStringAuthOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#stringAuthOption. +MySQLParserListener.prototype.exitStringAuthOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#hashAuthOption. +MySQLParserListener.prototype.enterHashAuthOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#hashAuthOption. +MySQLParserListener.prototype.exitHashAuthOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleAuthOption. +MySQLParserListener.prototype.enterSimpleAuthOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleAuthOption. +MySQLParserListener.prototype.exitSimpleAuthOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tlsOption. +MySQLParserListener.prototype.enterTlsOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tlsOption. +MySQLParserListener.prototype.exitTlsOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#userResourceOption. +MySQLParserListener.prototype.enterUserResourceOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#userResourceOption. +MySQLParserListener.prototype.exitUserResourceOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#userPasswordOption. +MySQLParserListener.prototype.enterUserPasswordOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#userPasswordOption. +MySQLParserListener.prototype.exitUserPasswordOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#userLockOption. +MySQLParserListener.prototype.enterUserLockOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#userLockOption. +MySQLParserListener.prototype.exitUserLockOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#privelegeClause. +MySQLParserListener.prototype.enterPrivelegeClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#privelegeClause. +MySQLParserListener.prototype.exitPrivelegeClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#privilege. +MySQLParserListener.prototype.enterPrivilege = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#privilege. +MySQLParserListener.prototype.exitPrivilege = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#currentSchemaPriviLevel. +MySQLParserListener.prototype.enterCurrentSchemaPriviLevel = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#currentSchemaPriviLevel. +MySQLParserListener.prototype.exitCurrentSchemaPriviLevel = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#globalPrivLevel. +MySQLParserListener.prototype.enterGlobalPrivLevel = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#globalPrivLevel. +MySQLParserListener.prototype.exitGlobalPrivLevel = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#definiteSchemaPrivLevel. +MySQLParserListener.prototype.enterDefiniteSchemaPrivLevel = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#definiteSchemaPrivLevel. +MySQLParserListener.prototype.exitDefiniteSchemaPrivLevel = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#definiteFullTablePrivLevel. +MySQLParserListener.prototype.enterDefiniteFullTablePrivLevel = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#definiteFullTablePrivLevel. +MySQLParserListener.prototype.exitDefiniteFullTablePrivLevel = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#definiteFullTablePrivLevel2. +MySQLParserListener.prototype.enterDefiniteFullTablePrivLevel2 = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#definiteFullTablePrivLevel2. +MySQLParserListener.prototype.exitDefiniteFullTablePrivLevel2 = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#definiteTablePrivLevel. +MySQLParserListener.prototype.enterDefiniteTablePrivLevel = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#definiteTablePrivLevel. +MySQLParserListener.prototype.exitDefiniteTablePrivLevel = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#renameUserClause. +MySQLParserListener.prototype.enterRenameUserClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#renameUserClause. +MySQLParserListener.prototype.exitRenameUserClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#analyzeTable. +MySQLParserListener.prototype.enterAnalyzeTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#analyzeTable. +MySQLParserListener.prototype.exitAnalyzeTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#checkTable. +MySQLParserListener.prototype.enterCheckTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#checkTable. +MySQLParserListener.prototype.exitCheckTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#checksumTable. +MySQLParserListener.prototype.enterChecksumTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#checksumTable. +MySQLParserListener.prototype.exitChecksumTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#optimizeTable. +MySQLParserListener.prototype.enterOptimizeTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#optimizeTable. +MySQLParserListener.prototype.exitOptimizeTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#repairTable. +MySQLParserListener.prototype.enterRepairTable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#repairTable. +MySQLParserListener.prototype.exitRepairTable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#checkTableOption. +MySQLParserListener.prototype.enterCheckTableOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#checkTableOption. +MySQLParserListener.prototype.exitCheckTableOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#createUdfunction. +MySQLParserListener.prototype.enterCreateUdfunction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#createUdfunction. +MySQLParserListener.prototype.exitCreateUdfunction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#installPlugin. +MySQLParserListener.prototype.enterInstallPlugin = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#installPlugin. +MySQLParserListener.prototype.exitInstallPlugin = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#uninstallPlugin. +MySQLParserListener.prototype.enterUninstallPlugin = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#uninstallPlugin. +MySQLParserListener.prototype.exitUninstallPlugin = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setVariable. +MySQLParserListener.prototype.enterSetVariable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setVariable. +MySQLParserListener.prototype.exitSetVariable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setCharset. +MySQLParserListener.prototype.enterSetCharset = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setCharset. +MySQLParserListener.prototype.exitSetCharset = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setNames. +MySQLParserListener.prototype.enterSetNames = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setNames. +MySQLParserListener.prototype.exitSetNames = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setPassword. +MySQLParserListener.prototype.enterSetPassword = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setPassword. +MySQLParserListener.prototype.exitSetPassword = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setTransaction. +MySQLParserListener.prototype.enterSetTransaction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setTransaction. +MySQLParserListener.prototype.exitSetTransaction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setAutocommit. +MySQLParserListener.prototype.enterSetAutocommit = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setAutocommit. +MySQLParserListener.prototype.exitSetAutocommit = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#setNewValueInsideTrigger. +MySQLParserListener.prototype.enterSetNewValueInsideTrigger = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#setNewValueInsideTrigger. +MySQLParserListener.prototype.exitSetNewValueInsideTrigger = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showMasterLogs. +MySQLParserListener.prototype.enterShowMasterLogs = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showMasterLogs. +MySQLParserListener.prototype.exitShowMasterLogs = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showLogEvents. +MySQLParserListener.prototype.enterShowLogEvents = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showLogEvents. +MySQLParserListener.prototype.exitShowLogEvents = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showObjectFilter. +MySQLParserListener.prototype.enterShowObjectFilter = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showObjectFilter. +MySQLParserListener.prototype.exitShowObjectFilter = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showColumns. +MySQLParserListener.prototype.enterShowColumns = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showColumns. +MySQLParserListener.prototype.exitShowColumns = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showCreateDb. +MySQLParserListener.prototype.enterShowCreateDb = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showCreateDb. +MySQLParserListener.prototype.exitShowCreateDb = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showCreateFullIdObject. +MySQLParserListener.prototype.enterShowCreateFullIdObject = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showCreateFullIdObject. +MySQLParserListener.prototype.exitShowCreateFullIdObject = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showCreateUser. +MySQLParserListener.prototype.enterShowCreateUser = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showCreateUser. +MySQLParserListener.prototype.exitShowCreateUser = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showEngine. +MySQLParserListener.prototype.enterShowEngine = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showEngine. +MySQLParserListener.prototype.exitShowEngine = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showGlobalInfo. +MySQLParserListener.prototype.enterShowGlobalInfo = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showGlobalInfo. +MySQLParserListener.prototype.exitShowGlobalInfo = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showErrors. +MySQLParserListener.prototype.enterShowErrors = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showErrors. +MySQLParserListener.prototype.exitShowErrors = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showCountErrors. +MySQLParserListener.prototype.enterShowCountErrors = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showCountErrors. +MySQLParserListener.prototype.exitShowCountErrors = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showSchemaFilter. +MySQLParserListener.prototype.enterShowSchemaFilter = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showSchemaFilter. +MySQLParserListener.prototype.exitShowSchemaFilter = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showRoutine. +MySQLParserListener.prototype.enterShowRoutine = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showRoutine. +MySQLParserListener.prototype.exitShowRoutine = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showGrants. +MySQLParserListener.prototype.enterShowGrants = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showGrants. +MySQLParserListener.prototype.exitShowGrants = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showIndexes. +MySQLParserListener.prototype.enterShowIndexes = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showIndexes. +MySQLParserListener.prototype.exitShowIndexes = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showOpenTables. +MySQLParserListener.prototype.enterShowOpenTables = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showOpenTables. +MySQLParserListener.prototype.exitShowOpenTables = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showProfile. +MySQLParserListener.prototype.enterShowProfile = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showProfile. +MySQLParserListener.prototype.exitShowProfile = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showSlaveStatus. +MySQLParserListener.prototype.enterShowSlaveStatus = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showSlaveStatus. +MySQLParserListener.prototype.exitShowSlaveStatus = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#variableClause. +MySQLParserListener.prototype.enterVariableClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#variableClause. +MySQLParserListener.prototype.exitVariableClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showCommonEntity. +MySQLParserListener.prototype.enterShowCommonEntity = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showCommonEntity. +MySQLParserListener.prototype.exitShowCommonEntity = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showFilter. +MySQLParserListener.prototype.enterShowFilter = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showFilter. +MySQLParserListener.prototype.exitShowFilter = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showGlobalInfoClause. +MySQLParserListener.prototype.enterShowGlobalInfoClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showGlobalInfoClause. +MySQLParserListener.prototype.exitShowGlobalInfoClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showSchemaEntity. +MySQLParserListener.prototype.enterShowSchemaEntity = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showSchemaEntity. +MySQLParserListener.prototype.exitShowSchemaEntity = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#showProfileType. +MySQLParserListener.prototype.enterShowProfileType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#showProfileType. +MySQLParserListener.prototype.exitShowProfileType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#binlogStatement. +MySQLParserListener.prototype.enterBinlogStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#binlogStatement. +MySQLParserListener.prototype.exitBinlogStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#cacheIndexStatement. +MySQLParserListener.prototype.enterCacheIndexStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#cacheIndexStatement. +MySQLParserListener.prototype.exitCacheIndexStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#flushStatement. +MySQLParserListener.prototype.enterFlushStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#flushStatement. +MySQLParserListener.prototype.exitFlushStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#killStatement. +MySQLParserListener.prototype.enterKillStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#killStatement. +MySQLParserListener.prototype.exitKillStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#loadIndexIntoCache. +MySQLParserListener.prototype.enterLoadIndexIntoCache = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#loadIndexIntoCache. +MySQLParserListener.prototype.exitLoadIndexIntoCache = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#resetStatement. +MySQLParserListener.prototype.enterResetStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#resetStatement. +MySQLParserListener.prototype.exitResetStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#shutdownStatement. +MySQLParserListener.prototype.enterShutdownStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#shutdownStatement. +MySQLParserListener.prototype.exitShutdownStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableIndexes. +MySQLParserListener.prototype.enterTableIndexes = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableIndexes. +MySQLParserListener.prototype.exitTableIndexes = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleFlushOption. +MySQLParserListener.prototype.enterSimpleFlushOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleFlushOption. +MySQLParserListener.prototype.exitSimpleFlushOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#channelFlushOption. +MySQLParserListener.prototype.enterChannelFlushOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#channelFlushOption. +MySQLParserListener.prototype.exitChannelFlushOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableFlushOption. +MySQLParserListener.prototype.enterTableFlushOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableFlushOption. +MySQLParserListener.prototype.exitTableFlushOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#flushTableOption. +MySQLParserListener.prototype.enterFlushTableOption = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#flushTableOption. +MySQLParserListener.prototype.exitFlushTableOption = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#loadedTableIndexes. +MySQLParserListener.prototype.enterLoadedTableIndexes = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#loadedTableIndexes. +MySQLParserListener.prototype.exitLoadedTableIndexes = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleDescribeStatement. +MySQLParserListener.prototype.enterSimpleDescribeStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleDescribeStatement. +MySQLParserListener.prototype.exitSimpleDescribeStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#fullDescribeStatement. +MySQLParserListener.prototype.enterFullDescribeStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#fullDescribeStatement. +MySQLParserListener.prototype.exitFullDescribeStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#helpStatement. +MySQLParserListener.prototype.enterHelpStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#helpStatement. +MySQLParserListener.prototype.exitHelpStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#useStatement. +MySQLParserListener.prototype.enterUseStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#useStatement. +MySQLParserListener.prototype.exitUseStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#signalStatement. +MySQLParserListener.prototype.enterSignalStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#signalStatement. +MySQLParserListener.prototype.exitSignalStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#resignalStatement. +MySQLParserListener.prototype.enterResignalStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#resignalStatement. +MySQLParserListener.prototype.exitResignalStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#signalConditionInformation. +MySQLParserListener.prototype.enterSignalConditionInformation = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#signalConditionInformation. +MySQLParserListener.prototype.exitSignalConditionInformation = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#diagnosticsStatement. +MySQLParserListener.prototype.enterDiagnosticsStatement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#diagnosticsStatement. +MySQLParserListener.prototype.exitDiagnosticsStatement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#diagnosticsConditionInformationName. +MySQLParserListener.prototype.enterDiagnosticsConditionInformationName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#diagnosticsConditionInformationName. +MySQLParserListener.prototype.exitDiagnosticsConditionInformationName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#describeStatements. +MySQLParserListener.prototype.enterDescribeStatements = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#describeStatements. +MySQLParserListener.prototype.exitDescribeStatements = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#describeConnection. +MySQLParserListener.prototype.enterDescribeConnection = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#describeConnection. +MySQLParserListener.prototype.exitDescribeConnection = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#fullId. +MySQLParserListener.prototype.enterFullId = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#fullId. +MySQLParserListener.prototype.exitFullId = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tableName. +MySQLParserListener.prototype.enterTableName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tableName. +MySQLParserListener.prototype.exitTableName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#fullColumnName. +MySQLParserListener.prototype.enterFullColumnName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#fullColumnName. +MySQLParserListener.prototype.exitFullColumnName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#indexColumnName. +MySQLParserListener.prototype.enterIndexColumnName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#indexColumnName. +MySQLParserListener.prototype.exitIndexColumnName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#userName. +MySQLParserListener.prototype.enterUserName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#userName. +MySQLParserListener.prototype.exitUserName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#mysqlVariable. +MySQLParserListener.prototype.enterMysqlVariable = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#mysqlVariable. +MySQLParserListener.prototype.exitMysqlVariable = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#charsetName. +MySQLParserListener.prototype.enterCharsetName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#charsetName. +MySQLParserListener.prototype.exitCharsetName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#collationName. +MySQLParserListener.prototype.enterCollationName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#collationName. +MySQLParserListener.prototype.exitCollationName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#engineName. +MySQLParserListener.prototype.enterEngineName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#engineName. +MySQLParserListener.prototype.exitEngineName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#uuidSet. +MySQLParserListener.prototype.enterUuidSet = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#uuidSet. +MySQLParserListener.prototype.exitUuidSet = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#xid. +MySQLParserListener.prototype.enterXid = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#xid. +MySQLParserListener.prototype.exitXid = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#xuidStringId. +MySQLParserListener.prototype.enterXuidStringId = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#xuidStringId. +MySQLParserListener.prototype.exitXuidStringId = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#authPlugin. +MySQLParserListener.prototype.enterAuthPlugin = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#authPlugin. +MySQLParserListener.prototype.exitAuthPlugin = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#uid. +MySQLParserListener.prototype.enterUid = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#uid. +MySQLParserListener.prototype.exitUid = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleId. +MySQLParserListener.prototype.enterSimpleId = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleId. +MySQLParserListener.prototype.exitSimpleId = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dottedId. +MySQLParserListener.prototype.enterDottedId = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dottedId. +MySQLParserListener.prototype.exitDottedId = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#decimalLiteral. +MySQLParserListener.prototype.enterDecimalLiteral = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#decimalLiteral. +MySQLParserListener.prototype.exitDecimalLiteral = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#fileSizeLiteral. +MySQLParserListener.prototype.enterFileSizeLiteral = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#fileSizeLiteral. +MySQLParserListener.prototype.exitFileSizeLiteral = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#stringLiteral. +MySQLParserListener.prototype.enterStringLiteral = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#stringLiteral. +MySQLParserListener.prototype.exitStringLiteral = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#booleanLiteral. +MySQLParserListener.prototype.enterBooleanLiteral = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#booleanLiteral. +MySQLParserListener.prototype.exitBooleanLiteral = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#hexadecimalLiteral. +MySQLParserListener.prototype.enterHexadecimalLiteral = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#hexadecimalLiteral. +MySQLParserListener.prototype.exitHexadecimalLiteral = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#nullNotnull. +MySQLParserListener.prototype.enterNullNotnull = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#nullNotnull. +MySQLParserListener.prototype.exitNullNotnull = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#constant. +MySQLParserListener.prototype.enterConstant = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#constant. +MySQLParserListener.prototype.exitConstant = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#stringDataType. +MySQLParserListener.prototype.enterStringDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#stringDataType. +MySQLParserListener.prototype.exitStringDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#nationalStringDataType. +MySQLParserListener.prototype.enterNationalStringDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#nationalStringDataType. +MySQLParserListener.prototype.exitNationalStringDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#nationalVaryingStringDataType. +MySQLParserListener.prototype.enterNationalVaryingStringDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#nationalVaryingStringDataType. +MySQLParserListener.prototype.exitNationalVaryingStringDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dimensionDataType. +MySQLParserListener.prototype.enterDimensionDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dimensionDataType. +MySQLParserListener.prototype.exitDimensionDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleDataType. +MySQLParserListener.prototype.enterSimpleDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleDataType. +MySQLParserListener.prototype.exitSimpleDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#collectionDataType. +MySQLParserListener.prototype.enterCollectionDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#collectionDataType. +MySQLParserListener.prototype.exitCollectionDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#spatialDataType. +MySQLParserListener.prototype.enterSpatialDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#spatialDataType. +MySQLParserListener.prototype.exitSpatialDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#longVarcharDataType. +MySQLParserListener.prototype.enterLongVarcharDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#longVarcharDataType. +MySQLParserListener.prototype.exitLongVarcharDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#longVarbinaryDataType. +MySQLParserListener.prototype.enterLongVarbinaryDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#longVarbinaryDataType. +MySQLParserListener.prototype.exitLongVarbinaryDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#collectionOptions. +MySQLParserListener.prototype.enterCollectionOptions = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#collectionOptions. +MySQLParserListener.prototype.exitCollectionOptions = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#convertedDataType. +MySQLParserListener.prototype.enterConvertedDataType = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#convertedDataType. +MySQLParserListener.prototype.exitConvertedDataType = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#lengthOneDimension. +MySQLParserListener.prototype.enterLengthOneDimension = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#lengthOneDimension. +MySQLParserListener.prototype.exitLengthOneDimension = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#lengthTwoDimension. +MySQLParserListener.prototype.enterLengthTwoDimension = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#lengthTwoDimension. +MySQLParserListener.prototype.exitLengthTwoDimension = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#lengthTwoOptionalDimension. +MySQLParserListener.prototype.enterLengthTwoOptionalDimension = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#lengthTwoOptionalDimension. +MySQLParserListener.prototype.exitLengthTwoOptionalDimension = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#uidList. +MySQLParserListener.prototype.enterUidList = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#uidList. +MySQLParserListener.prototype.exitUidList = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#tables. +MySQLParserListener.prototype.enterTables = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#tables. +MySQLParserListener.prototype.exitTables = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#indexColumnNames. +MySQLParserListener.prototype.enterIndexColumnNames = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#indexColumnNames. +MySQLParserListener.prototype.exitIndexColumnNames = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#expressions. +MySQLParserListener.prototype.enterExpressions = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#expressions. +MySQLParserListener.prototype.exitExpressions = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#expressionsWithDefaults. +MySQLParserListener.prototype.enterExpressionsWithDefaults = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#expressionsWithDefaults. +MySQLParserListener.prototype.exitExpressionsWithDefaults = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#constants. +MySQLParserListener.prototype.enterConstants = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#constants. +MySQLParserListener.prototype.exitConstants = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleStrings. +MySQLParserListener.prototype.enterSimpleStrings = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleStrings. +MySQLParserListener.prototype.exitSimpleStrings = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#userVariables. +MySQLParserListener.prototype.enterUserVariables = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#userVariables. +MySQLParserListener.prototype.exitUserVariables = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#defaultValue. +MySQLParserListener.prototype.enterDefaultValue = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#defaultValue. +MySQLParserListener.prototype.exitDefaultValue = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#currentTimestamp. +MySQLParserListener.prototype.enterCurrentTimestamp = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#currentTimestamp. +MySQLParserListener.prototype.exitCurrentTimestamp = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#expressionOrDefault. +MySQLParserListener.prototype.enterExpressionOrDefault = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#expressionOrDefault. +MySQLParserListener.prototype.exitExpressionOrDefault = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#ifExists. +MySQLParserListener.prototype.enterIfExists = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#ifExists. +MySQLParserListener.prototype.exitIfExists = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#ifNotExists. +MySQLParserListener.prototype.enterIfNotExists = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#ifNotExists. +MySQLParserListener.prototype.exitIfNotExists = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#specificFunctionCall. +MySQLParserListener.prototype.enterSpecificFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#specificFunctionCall. +MySQLParserListener.prototype.exitSpecificFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#aggregateFunctionCall. +MySQLParserListener.prototype.enterAggregateFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#aggregateFunctionCall. +MySQLParserListener.prototype.exitAggregateFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#scalarFunctionCall. +MySQLParserListener.prototype.enterScalarFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#scalarFunctionCall. +MySQLParserListener.prototype.exitScalarFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#udfFunctionCall. +MySQLParserListener.prototype.enterUdfFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#udfFunctionCall. +MySQLParserListener.prototype.exitUdfFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#passwordFunctionCall. +MySQLParserListener.prototype.enterPasswordFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#passwordFunctionCall. +MySQLParserListener.prototype.exitPasswordFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#simpleFunctionCall. +MySQLParserListener.prototype.enterSimpleFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#simpleFunctionCall. +MySQLParserListener.prototype.exitSimpleFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dataTypeFunctionCall. +MySQLParserListener.prototype.enterDataTypeFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dataTypeFunctionCall. +MySQLParserListener.prototype.exitDataTypeFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#valuesFunctionCall. +MySQLParserListener.prototype.enterValuesFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#valuesFunctionCall. +MySQLParserListener.prototype.exitValuesFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#caseFunctionCall. +MySQLParserListener.prototype.enterCaseFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#caseFunctionCall. +MySQLParserListener.prototype.exitCaseFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#charFunctionCall. +MySQLParserListener.prototype.enterCharFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#charFunctionCall. +MySQLParserListener.prototype.exitCharFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#positionFunctionCall. +MySQLParserListener.prototype.enterPositionFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#positionFunctionCall. +MySQLParserListener.prototype.exitPositionFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#substrFunctionCall. +MySQLParserListener.prototype.enterSubstrFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#substrFunctionCall. +MySQLParserListener.prototype.exitSubstrFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#trimFunctionCall. +MySQLParserListener.prototype.enterTrimFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#trimFunctionCall. +MySQLParserListener.prototype.exitTrimFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#weightFunctionCall. +MySQLParserListener.prototype.enterWeightFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#weightFunctionCall. +MySQLParserListener.prototype.exitWeightFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#extractFunctionCall. +MySQLParserListener.prototype.enterExtractFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#extractFunctionCall. +MySQLParserListener.prototype.exitExtractFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#getFormatFunctionCall. +MySQLParserListener.prototype.enterGetFormatFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#getFormatFunctionCall. +MySQLParserListener.prototype.exitGetFormatFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#caseFuncAlternative. +MySQLParserListener.prototype.enterCaseFuncAlternative = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#caseFuncAlternative. +MySQLParserListener.prototype.exitCaseFuncAlternative = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#levelWeightList. +MySQLParserListener.prototype.enterLevelWeightList = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#levelWeightList. +MySQLParserListener.prototype.exitLevelWeightList = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#levelWeightRange. +MySQLParserListener.prototype.enterLevelWeightRange = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#levelWeightRange. +MySQLParserListener.prototype.exitLevelWeightRange = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#levelInWeightListElement. +MySQLParserListener.prototype.enterLevelInWeightListElement = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#levelInWeightListElement. +MySQLParserListener.prototype.exitLevelInWeightListElement = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#aggregateWindowedFunction. +MySQLParserListener.prototype.enterAggregateWindowedFunction = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#aggregateWindowedFunction. +MySQLParserListener.prototype.exitAggregateWindowedFunction = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#scalarFunctionName. +MySQLParserListener.prototype.enterScalarFunctionName = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#scalarFunctionName. +MySQLParserListener.prototype.exitScalarFunctionName = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#passwordFunctionClause. +MySQLParserListener.prototype.enterPasswordFunctionClause = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#passwordFunctionClause. +MySQLParserListener.prototype.exitPasswordFunctionClause = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#functionArgs. +MySQLParserListener.prototype.enterFunctionArgs = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#functionArgs. +MySQLParserListener.prototype.exitFunctionArgs = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#functionArg. +MySQLParserListener.prototype.enterFunctionArg = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#functionArg. +MySQLParserListener.prototype.exitFunctionArg = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#isExpression. +MySQLParserListener.prototype.enterIsExpression = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#isExpression. +MySQLParserListener.prototype.exitIsExpression = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#notExpression. +MySQLParserListener.prototype.enterNotExpression = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#notExpression. +MySQLParserListener.prototype.exitNotExpression = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#logicalExpression. +MySQLParserListener.prototype.enterLogicalExpression = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#logicalExpression. +MySQLParserListener.prototype.exitLogicalExpression = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#predicateExpression. +MySQLParserListener.prototype.enterPredicateExpression = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#predicateExpression. +MySQLParserListener.prototype.exitPredicateExpression = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#soundsLikePredicate. +MySQLParserListener.prototype.enterSoundsLikePredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#soundsLikePredicate. +MySQLParserListener.prototype.exitSoundsLikePredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#expressionAtomPredicate. +MySQLParserListener.prototype.enterExpressionAtomPredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#expressionAtomPredicate. +MySQLParserListener.prototype.exitExpressionAtomPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#inPredicate. +MySQLParserListener.prototype.enterInPredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#inPredicate. +MySQLParserListener.prototype.exitInPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#subqueryComparasionPredicate. +MySQLParserListener.prototype.enterSubqueryComparasionPredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#subqueryComparasionPredicate. +MySQLParserListener.prototype.exitSubqueryComparasionPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#betweenPredicate. +MySQLParserListener.prototype.enterBetweenPredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#betweenPredicate. +MySQLParserListener.prototype.exitBetweenPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#binaryComparasionPredicate. +MySQLParserListener.prototype.enterBinaryComparasionPredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#binaryComparasionPredicate. +MySQLParserListener.prototype.exitBinaryComparasionPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#isNullPredicate. +MySQLParserListener.prototype.enterIsNullPredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#isNullPredicate. +MySQLParserListener.prototype.exitIsNullPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#likePredicate. +MySQLParserListener.prototype.enterLikePredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#likePredicate. +MySQLParserListener.prototype.exitLikePredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#regexpPredicate. +MySQLParserListener.prototype.enterRegexpPredicate = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#regexpPredicate. +MySQLParserListener.prototype.exitRegexpPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#unaryExpressionAtom. +MySQLParserListener.prototype.enterUnaryExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#unaryExpressionAtom. +MySQLParserListener.prototype.exitUnaryExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#collateExpressionAtom. +MySQLParserListener.prototype.enterCollateExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#collateExpressionAtom. +MySQLParserListener.prototype.exitCollateExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#subqueryExpessionAtom. +MySQLParserListener.prototype.enterSubqueryExpessionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#subqueryExpessionAtom. +MySQLParserListener.prototype.exitSubqueryExpessionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#mysqlVariableExpressionAtom. +MySQLParserListener.prototype.enterMysqlVariableExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#mysqlVariableExpressionAtom. +MySQLParserListener.prototype.exitMysqlVariableExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#nestedExpressionAtom. +MySQLParserListener.prototype.enterNestedExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#nestedExpressionAtom. +MySQLParserListener.prototype.exitNestedExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#nestedRowExpressionAtom. +MySQLParserListener.prototype.enterNestedRowExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#nestedRowExpressionAtom. +MySQLParserListener.prototype.exitNestedRowExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#mathExpressionAtom. +MySQLParserListener.prototype.enterMathExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#mathExpressionAtom. +MySQLParserListener.prototype.exitMathExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#intervalExpressionAtom. +MySQLParserListener.prototype.enterIntervalExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#intervalExpressionAtom. +MySQLParserListener.prototype.exitIntervalExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#existsExpessionAtom. +MySQLParserListener.prototype.enterExistsExpessionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#existsExpessionAtom. +MySQLParserListener.prototype.exitExistsExpessionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#constantExpressionAtom. +MySQLParserListener.prototype.enterConstantExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#constantExpressionAtom. +MySQLParserListener.prototype.exitConstantExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#functionCallExpressionAtom. +MySQLParserListener.prototype.enterFunctionCallExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#functionCallExpressionAtom. +MySQLParserListener.prototype.exitFunctionCallExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#binaryExpressionAtom. +MySQLParserListener.prototype.enterBinaryExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#binaryExpressionAtom. +MySQLParserListener.prototype.exitBinaryExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#fullColumnNameExpressionAtom. +MySQLParserListener.prototype.enterFullColumnNameExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#fullColumnNameExpressionAtom. +MySQLParserListener.prototype.exitFullColumnNameExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#bitExpressionAtom. +MySQLParserListener.prototype.enterBitExpressionAtom = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#bitExpressionAtom. +MySQLParserListener.prototype.exitBitExpressionAtom = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#unaryOperator. +MySQLParserListener.prototype.enterUnaryOperator = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#unaryOperator. +MySQLParserListener.prototype.exitUnaryOperator = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#comparisonOperator. +MySQLParserListener.prototype.enterComparisonOperator = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#comparisonOperator. +MySQLParserListener.prototype.exitComparisonOperator = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#logicalOperator. +MySQLParserListener.prototype.enterLogicalOperator = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#logicalOperator. +MySQLParserListener.prototype.exitLogicalOperator = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#bitOperator. +MySQLParserListener.prototype.enterBitOperator = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#bitOperator. +MySQLParserListener.prototype.exitBitOperator = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#mathOperator. +MySQLParserListener.prototype.enterMathOperator = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#mathOperator. +MySQLParserListener.prototype.exitMathOperator = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#charsetNameBase. +MySQLParserListener.prototype.enterCharsetNameBase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#charsetNameBase. +MySQLParserListener.prototype.exitCharsetNameBase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#transactionLevelBase. +MySQLParserListener.prototype.enterTransactionLevelBase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#transactionLevelBase. +MySQLParserListener.prototype.exitTransactionLevelBase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#privilegesBase. +MySQLParserListener.prototype.enterPrivilegesBase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#privilegesBase. +MySQLParserListener.prototype.exitPrivilegesBase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#intervalTypeBase. +MySQLParserListener.prototype.enterIntervalTypeBase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#intervalTypeBase. +MySQLParserListener.prototype.exitIntervalTypeBase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#dataTypeBase. +MySQLParserListener.prototype.enterDataTypeBase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#dataTypeBase. +MySQLParserListener.prototype.exitDataTypeBase = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#keywordsCanBeId. +MySQLParserListener.prototype.enterKeywordsCanBeId = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#keywordsCanBeId. +MySQLParserListener.prototype.exitKeywordsCanBeId = function(ctx) { +}; + + +// Enter a parse tree produced by MySQLParser#functionNameBase. +MySQLParserListener.prototype.enterFunctionNameBase = function(ctx) { +}; + +// Exit a parse tree produced by MySQLParser#functionNameBase. +MySQLParserListener.prototype.exitFunctionNameBase = function(ctx) { +}; + + + +exports.MySQLParserListener = MySQLParserListener; \ No newline at end of file diff --git a/src/parser/MySQLParserVisitor.js b/src/parser/MySQLParserVisitor.js new file mode 100644 index 0000000..ae16399 --- /dev/null +++ b/src/parser/MySQLParserVisitor.js @@ -0,0 +1,3286 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/mysql/MySQLParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + +// This class defines a complete generic visitor for a parse tree produced by MySQLParser. + +function MySQLParserVisitor() { + antlr4.tree.ParseTreeVisitor.call(this); + return this; +} + +MySQLParserVisitor.prototype = Object.create(antlr4.tree.ParseTreeVisitor.prototype); +MySQLParserVisitor.prototype.constructor = MySQLParserVisitor; + +// Visit a parse tree produced by MySQLParser#statement. +MySQLParserVisitor.prototype.visitStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#sqlStatements. +MySQLParserVisitor.prototype.visitSqlStatements = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#sqlStatement. +MySQLParserVisitor.prototype.visitSqlStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#emptyStatement. +MySQLParserVisitor.prototype.visitEmptyStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#ddlStatement. +MySQLParserVisitor.prototype.visitDdlStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dmlStatement. +MySQLParserVisitor.prototype.visitDmlStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#transactionStatement. +MySQLParserVisitor.prototype.visitTransactionStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#replicationStatement. +MySQLParserVisitor.prototype.visitReplicationStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#preparedStatement. +MySQLParserVisitor.prototype.visitPreparedStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#compoundStatement. +MySQLParserVisitor.prototype.visitCompoundStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#administrationStatement. +MySQLParserVisitor.prototype.visitAdministrationStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#utilityStatement. +MySQLParserVisitor.prototype.visitUtilityStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createDatabase. +MySQLParserVisitor.prototype.visitCreateDatabase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createEvent. +MySQLParserVisitor.prototype.visitCreateEvent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createIndex. +MySQLParserVisitor.prototype.visitCreateIndex = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createLogfileGroup. +MySQLParserVisitor.prototype.visitCreateLogfileGroup = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createProcedure. +MySQLParserVisitor.prototype.visitCreateProcedure = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createFunction. +MySQLParserVisitor.prototype.visitCreateFunction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createServer. +MySQLParserVisitor.prototype.visitCreateServer = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#copyCreateTable. +MySQLParserVisitor.prototype.visitCopyCreateTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#queryCreateTable. +MySQLParserVisitor.prototype.visitQueryCreateTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#columnCreateTable. +MySQLParserVisitor.prototype.visitColumnCreateTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createTablespaceInnodb. +MySQLParserVisitor.prototype.visitCreateTablespaceInnodb = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createTablespaceNdb. +MySQLParserVisitor.prototype.visitCreateTablespaceNdb = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createTrigger. +MySQLParserVisitor.prototype.visitCreateTrigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createView. +MySQLParserVisitor.prototype.visitCreateView = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createDatabaseOption. +MySQLParserVisitor.prototype.visitCreateDatabaseOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#ownerStatement. +MySQLParserVisitor.prototype.visitOwnerStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#preciseSchedule. +MySQLParserVisitor.prototype.visitPreciseSchedule = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#intervalSchedule. +MySQLParserVisitor.prototype.visitIntervalSchedule = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#timestampValue. +MySQLParserVisitor.prototype.visitTimestampValue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#intervalExpr. +MySQLParserVisitor.prototype.visitIntervalExpr = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#intervalType. +MySQLParserVisitor.prototype.visitIntervalType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#enableType. +MySQLParserVisitor.prototype.visitEnableType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#indexType. +MySQLParserVisitor.prototype.visitIndexType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#indexOption. +MySQLParserVisitor.prototype.visitIndexOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#procedureParameter. +MySQLParserVisitor.prototype.visitProcedureParameter = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#functionParameter. +MySQLParserVisitor.prototype.visitFunctionParameter = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#routineComment. +MySQLParserVisitor.prototype.visitRoutineComment = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#routineLanguage. +MySQLParserVisitor.prototype.visitRoutineLanguage = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#routineBehavior. +MySQLParserVisitor.prototype.visitRoutineBehavior = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#routineData. +MySQLParserVisitor.prototype.visitRoutineData = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#routineSecurity. +MySQLParserVisitor.prototype.visitRoutineSecurity = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#serverOption. +MySQLParserVisitor.prototype.visitServerOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createDefinitions. +MySQLParserVisitor.prototype.visitCreateDefinitions = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#columnDeclaration. +MySQLParserVisitor.prototype.visitColumnDeclaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#constraintDeclaration. +MySQLParserVisitor.prototype.visitConstraintDeclaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#indexDeclaration. +MySQLParserVisitor.prototype.visitIndexDeclaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#columnDefinition. +MySQLParserVisitor.prototype.visitColumnDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#nullColumnConstraint. +MySQLParserVisitor.prototype.visitNullColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#defaultColumnConstraint. +MySQLParserVisitor.prototype.visitDefaultColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#autoIncrementColumnConstraint. +MySQLParserVisitor.prototype.visitAutoIncrementColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#primaryKeyColumnConstraint. +MySQLParserVisitor.prototype.visitPrimaryKeyColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#uniqueKeyColumnConstraint. +MySQLParserVisitor.prototype.visitUniqueKeyColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#commentColumnConstraint. +MySQLParserVisitor.prototype.visitCommentColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#formatColumnConstraint. +MySQLParserVisitor.prototype.visitFormatColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#storageColumnConstraint. +MySQLParserVisitor.prototype.visitStorageColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#referenceColumnConstraint. +MySQLParserVisitor.prototype.visitReferenceColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#collateColumnConstraint. +MySQLParserVisitor.prototype.visitCollateColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#generatedColumnConstraint. +MySQLParserVisitor.prototype.visitGeneratedColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#serialDefaultColumnConstraint. +MySQLParserVisitor.prototype.visitSerialDefaultColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#checkColumnConstraint. +MySQLParserVisitor.prototype.visitCheckColumnConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#primaryKeyTableConstraint. +MySQLParserVisitor.prototype.visitPrimaryKeyTableConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#uniqueKeyTableConstraint. +MySQLParserVisitor.prototype.visitUniqueKeyTableConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#foreignKeyTableConstraint. +MySQLParserVisitor.prototype.visitForeignKeyTableConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#checkTableConstraint. +MySQLParserVisitor.prototype.visitCheckTableConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#referenceDefinition. +MySQLParserVisitor.prototype.visitReferenceDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#referenceAction. +MySQLParserVisitor.prototype.visitReferenceAction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#referenceControlType. +MySQLParserVisitor.prototype.visitReferenceControlType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleIndexDeclaration. +MySQLParserVisitor.prototype.visitSimpleIndexDeclaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#specialIndexDeclaration. +MySQLParserVisitor.prototype.visitSpecialIndexDeclaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionEngine. +MySQLParserVisitor.prototype.visitTableOptionEngine = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionAutoIncrement. +MySQLParserVisitor.prototype.visitTableOptionAutoIncrement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionAverage. +MySQLParserVisitor.prototype.visitTableOptionAverage = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionCharset. +MySQLParserVisitor.prototype.visitTableOptionCharset = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionChecksum. +MySQLParserVisitor.prototype.visitTableOptionChecksum = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionCollate. +MySQLParserVisitor.prototype.visitTableOptionCollate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionComment. +MySQLParserVisitor.prototype.visitTableOptionComment = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionCompression. +MySQLParserVisitor.prototype.visitTableOptionCompression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionConnection. +MySQLParserVisitor.prototype.visitTableOptionConnection = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionDataDirectory. +MySQLParserVisitor.prototype.visitTableOptionDataDirectory = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionDelay. +MySQLParserVisitor.prototype.visitTableOptionDelay = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionEncryption. +MySQLParserVisitor.prototype.visitTableOptionEncryption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionIndexDirectory. +MySQLParserVisitor.prototype.visitTableOptionIndexDirectory = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionInsertMethod. +MySQLParserVisitor.prototype.visitTableOptionInsertMethod = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionKeyBlockSize. +MySQLParserVisitor.prototype.visitTableOptionKeyBlockSize = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionMaxRows. +MySQLParserVisitor.prototype.visitTableOptionMaxRows = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionMinRows. +MySQLParserVisitor.prototype.visitTableOptionMinRows = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionPackKeys. +MySQLParserVisitor.prototype.visitTableOptionPackKeys = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionPassword. +MySQLParserVisitor.prototype.visitTableOptionPassword = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionRowFormat. +MySQLParserVisitor.prototype.visitTableOptionRowFormat = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionRecalculation. +MySQLParserVisitor.prototype.visitTableOptionRecalculation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionPersistent. +MySQLParserVisitor.prototype.visitTableOptionPersistent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionSamplePage. +MySQLParserVisitor.prototype.visitTableOptionSamplePage = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionTablespace. +MySQLParserVisitor.prototype.visitTableOptionTablespace = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableOptionUnion. +MySQLParserVisitor.prototype.visitTableOptionUnion = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tablespaceStorage. +MySQLParserVisitor.prototype.visitTablespaceStorage = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionDefinitions. +MySQLParserVisitor.prototype.visitPartitionDefinitions = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionFunctionHash. +MySQLParserVisitor.prototype.visitPartitionFunctionHash = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionFunctionKey. +MySQLParserVisitor.prototype.visitPartitionFunctionKey = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionFunctionRange. +MySQLParserVisitor.prototype.visitPartitionFunctionRange = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionFunctionList. +MySQLParserVisitor.prototype.visitPartitionFunctionList = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#subPartitionFunctionHash. +MySQLParserVisitor.prototype.visitSubPartitionFunctionHash = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#subPartitionFunctionKey. +MySQLParserVisitor.prototype.visitSubPartitionFunctionKey = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionComparision. +MySQLParserVisitor.prototype.visitPartitionComparision = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionListAtom. +MySQLParserVisitor.prototype.visitPartitionListAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionListVector. +MySQLParserVisitor.prototype.visitPartitionListVector = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionSimple. +MySQLParserVisitor.prototype.visitPartitionSimple = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionDefinerAtom. +MySQLParserVisitor.prototype.visitPartitionDefinerAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionDefinerVector. +MySQLParserVisitor.prototype.visitPartitionDefinerVector = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#subpartitionDefinition. +MySQLParserVisitor.prototype.visitSubpartitionDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionOptionEngine. +MySQLParserVisitor.prototype.visitPartitionOptionEngine = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionOptionComment. +MySQLParserVisitor.prototype.visitPartitionOptionComment = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionOptionDataDirectory. +MySQLParserVisitor.prototype.visitPartitionOptionDataDirectory = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionOptionIndexDirectory. +MySQLParserVisitor.prototype.visitPartitionOptionIndexDirectory = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionOptionMaxRows. +MySQLParserVisitor.prototype.visitPartitionOptionMaxRows = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionOptionMinRows. +MySQLParserVisitor.prototype.visitPartitionOptionMinRows = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionOptionTablespace. +MySQLParserVisitor.prototype.visitPartitionOptionTablespace = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#partitionOptionNodeGroup. +MySQLParserVisitor.prototype.visitPartitionOptionNodeGroup = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterSimpleDatabase. +MySQLParserVisitor.prototype.visitAlterSimpleDatabase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterUpgradeName. +MySQLParserVisitor.prototype.visitAlterUpgradeName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterEvent. +MySQLParserVisitor.prototype.visitAlterEvent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterFunction. +MySQLParserVisitor.prototype.visitAlterFunction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterInstance. +MySQLParserVisitor.prototype.visitAlterInstance = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterLogfileGroup. +MySQLParserVisitor.prototype.visitAlterLogfileGroup = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterProcedure. +MySQLParserVisitor.prototype.visitAlterProcedure = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterServer. +MySQLParserVisitor.prototype.visitAlterServer = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterTable. +MySQLParserVisitor.prototype.visitAlterTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterTablespace. +MySQLParserVisitor.prototype.visitAlterTablespace = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterView. +MySQLParserVisitor.prototype.visitAlterView = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByTableOption. +MySQLParserVisitor.prototype.visitAlterByTableOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddColumn. +MySQLParserVisitor.prototype.visitAlterByAddColumn = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddColumns. +MySQLParserVisitor.prototype.visitAlterByAddColumns = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddIndex. +MySQLParserVisitor.prototype.visitAlterByAddIndex = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddPrimaryKey. +MySQLParserVisitor.prototype.visitAlterByAddPrimaryKey = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddUniqueKey. +MySQLParserVisitor.prototype.visitAlterByAddUniqueKey = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddSpecialIndex. +MySQLParserVisitor.prototype.visitAlterByAddSpecialIndex = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddForeignKey. +MySQLParserVisitor.prototype.visitAlterByAddForeignKey = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddCheckTableConstraint. +MySQLParserVisitor.prototype.visitAlterByAddCheckTableConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterBySetAlgorithm. +MySQLParserVisitor.prototype.visitAlterBySetAlgorithm = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByChangeDefault. +MySQLParserVisitor.prototype.visitAlterByChangeDefault = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByChangeColumn. +MySQLParserVisitor.prototype.visitAlterByChangeColumn = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByRenameColumn. +MySQLParserVisitor.prototype.visitAlterByRenameColumn = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByLock. +MySQLParserVisitor.prototype.visitAlterByLock = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByModifyColumn. +MySQLParserVisitor.prototype.visitAlterByModifyColumn = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDropColumn. +MySQLParserVisitor.prototype.visitAlterByDropColumn = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDropPrimaryKey. +MySQLParserVisitor.prototype.visitAlterByDropPrimaryKey = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByRenameIndex. +MySQLParserVisitor.prototype.visitAlterByRenameIndex = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAlterIndexVisibility. +MySQLParserVisitor.prototype.visitAlterByAlterIndexVisibility = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDropIndex. +MySQLParserVisitor.prototype.visitAlterByDropIndex = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDropForeignKey. +MySQLParserVisitor.prototype.visitAlterByDropForeignKey = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDisableKeys. +MySQLParserVisitor.prototype.visitAlterByDisableKeys = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByEnableKeys. +MySQLParserVisitor.prototype.visitAlterByEnableKeys = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByRename. +MySQLParserVisitor.prototype.visitAlterByRename = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByOrder. +MySQLParserVisitor.prototype.visitAlterByOrder = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByConvertCharset. +MySQLParserVisitor.prototype.visitAlterByConvertCharset = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDefaultCharset. +MySQLParserVisitor.prototype.visitAlterByDefaultCharset = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDiscardTablespace. +MySQLParserVisitor.prototype.visitAlterByDiscardTablespace = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByImportTablespace. +MySQLParserVisitor.prototype.visitAlterByImportTablespace = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByForce. +MySQLParserVisitor.prototype.visitAlterByForce = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByValidate. +MySQLParserVisitor.prototype.visitAlterByValidate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAddPartition. +MySQLParserVisitor.prototype.visitAlterByAddPartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDropPartition. +MySQLParserVisitor.prototype.visitAlterByDropPartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByDiscardPartition. +MySQLParserVisitor.prototype.visitAlterByDiscardPartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByImportPartition. +MySQLParserVisitor.prototype.visitAlterByImportPartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByTruncatePartition. +MySQLParserVisitor.prototype.visitAlterByTruncatePartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByCoalescePartition. +MySQLParserVisitor.prototype.visitAlterByCoalescePartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByReorganizePartition. +MySQLParserVisitor.prototype.visitAlterByReorganizePartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByExchangePartition. +MySQLParserVisitor.prototype.visitAlterByExchangePartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByAnalyzePartition. +MySQLParserVisitor.prototype.visitAlterByAnalyzePartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByCheckPartition. +MySQLParserVisitor.prototype.visitAlterByCheckPartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByOptimizePartition. +MySQLParserVisitor.prototype.visitAlterByOptimizePartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByRebuildPartition. +MySQLParserVisitor.prototype.visitAlterByRebuildPartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByRepairPartition. +MySQLParserVisitor.prototype.visitAlterByRepairPartition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByRemovePartitioning. +MySQLParserVisitor.prototype.visitAlterByRemovePartitioning = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterByUpgradePartitioning. +MySQLParserVisitor.prototype.visitAlterByUpgradePartitioning = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropDatabase. +MySQLParserVisitor.prototype.visitDropDatabase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropEvent. +MySQLParserVisitor.prototype.visitDropEvent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropIndex. +MySQLParserVisitor.prototype.visitDropIndex = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropLogfileGroup. +MySQLParserVisitor.prototype.visitDropLogfileGroup = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropProcedure. +MySQLParserVisitor.prototype.visitDropProcedure = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropFunction. +MySQLParserVisitor.prototype.visitDropFunction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropServer. +MySQLParserVisitor.prototype.visitDropServer = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropTable. +MySQLParserVisitor.prototype.visitDropTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropTablespace. +MySQLParserVisitor.prototype.visitDropTablespace = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropTrigger. +MySQLParserVisitor.prototype.visitDropTrigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropView. +MySQLParserVisitor.prototype.visitDropView = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#renameTable. +MySQLParserVisitor.prototype.visitRenameTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#renameTableClause. +MySQLParserVisitor.prototype.visitRenameTableClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#truncateTable. +MySQLParserVisitor.prototype.visitTruncateTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#callStatement. +MySQLParserVisitor.prototype.visitCallStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#deleteStatement. +MySQLParserVisitor.prototype.visitDeleteStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#doStatement. +MySQLParserVisitor.prototype.visitDoStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerStatement. +MySQLParserVisitor.prototype.visitHandlerStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#insertStatement. +MySQLParserVisitor.prototype.visitInsertStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#loadDataStatement. +MySQLParserVisitor.prototype.visitLoadDataStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#loadXmlStatement. +MySQLParserVisitor.prototype.visitLoadXmlStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#replaceStatement. +MySQLParserVisitor.prototype.visitReplaceStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleSelect. +MySQLParserVisitor.prototype.visitSimpleSelect = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#parenthesisSelect. +MySQLParserVisitor.prototype.visitParenthesisSelect = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#unionSelect. +MySQLParserVisitor.prototype.visitUnionSelect = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#unionParenthesisSelect. +MySQLParserVisitor.prototype.visitUnionParenthesisSelect = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#updateStatement. +MySQLParserVisitor.prototype.visitUpdateStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#insertStatementValue. +MySQLParserVisitor.prototype.visitInsertStatementValue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#updatedElement. +MySQLParserVisitor.prototype.visitUpdatedElement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#assignmentField. +MySQLParserVisitor.prototype.visitAssignmentField = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#lockClause. +MySQLParserVisitor.prototype.visitLockClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#singleDeleteStatement. +MySQLParserVisitor.prototype.visitSingleDeleteStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#multipleDeleteStatement. +MySQLParserVisitor.prototype.visitMultipleDeleteStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerOpenStatement. +MySQLParserVisitor.prototype.visitHandlerOpenStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerReadIndexStatement. +MySQLParserVisitor.prototype.visitHandlerReadIndexStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerReadStatement. +MySQLParserVisitor.prototype.visitHandlerReadStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerCloseStatement. +MySQLParserVisitor.prototype.visitHandlerCloseStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#singleUpdateStatement. +MySQLParserVisitor.prototype.visitSingleUpdateStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#multipleUpdateStatement. +MySQLParserVisitor.prototype.visitMultipleUpdateStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#orderByClause. +MySQLParserVisitor.prototype.visitOrderByClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#orderByExpression. +MySQLParserVisitor.prototype.visitOrderByExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableSources. +MySQLParserVisitor.prototype.visitTableSources = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableSourceBase. +MySQLParserVisitor.prototype.visitTableSourceBase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableSourceNested. +MySQLParserVisitor.prototype.visitTableSourceNested = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#atomTableItem. +MySQLParserVisitor.prototype.visitAtomTableItem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#subqueryTableItem. +MySQLParserVisitor.prototype.visitSubqueryTableItem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableSourcesItem. +MySQLParserVisitor.prototype.visitTableSourcesItem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#indexHint. +MySQLParserVisitor.prototype.visitIndexHint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#indexHintType. +MySQLParserVisitor.prototype.visitIndexHintType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#innerJoin. +MySQLParserVisitor.prototype.visitInnerJoin = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#straightJoin. +MySQLParserVisitor.prototype.visitStraightJoin = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#outerJoin. +MySQLParserVisitor.prototype.visitOuterJoin = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#naturalJoin. +MySQLParserVisitor.prototype.visitNaturalJoin = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#queryExpression. +MySQLParserVisitor.prototype.visitQueryExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#queryExpressionNointo. +MySQLParserVisitor.prototype.visitQueryExpressionNointo = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#querySpecification. +MySQLParserVisitor.prototype.visitQuerySpecification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#querySpecificationNointo. +MySQLParserVisitor.prototype.visitQuerySpecificationNointo = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#unionParenthesis. +MySQLParserVisitor.prototype.visitUnionParenthesis = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#unionStatement. +MySQLParserVisitor.prototype.visitUnionStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectSpec. +MySQLParserVisitor.prototype.visitSelectSpec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectElements. +MySQLParserVisitor.prototype.visitSelectElements = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectStarElement. +MySQLParserVisitor.prototype.visitSelectStarElement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectColumnElement. +MySQLParserVisitor.prototype.visitSelectColumnElement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectFunctionElement. +MySQLParserVisitor.prototype.visitSelectFunctionElement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectExpressionElement. +MySQLParserVisitor.prototype.visitSelectExpressionElement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectIntoVariables. +MySQLParserVisitor.prototype.visitSelectIntoVariables = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectIntoDumpFile. +MySQLParserVisitor.prototype.visitSelectIntoDumpFile = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectIntoTextFile. +MySQLParserVisitor.prototype.visitSelectIntoTextFile = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectFieldsInto. +MySQLParserVisitor.prototype.visitSelectFieldsInto = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#selectLinesInto. +MySQLParserVisitor.prototype.visitSelectLinesInto = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#fromClause. +MySQLParserVisitor.prototype.visitFromClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#groupByItem. +MySQLParserVisitor.prototype.visitGroupByItem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#limitClause. +MySQLParserVisitor.prototype.visitLimitClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#limitClauseAtom. +MySQLParserVisitor.prototype.visitLimitClauseAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#startTransaction. +MySQLParserVisitor.prototype.visitStartTransaction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#beginWork. +MySQLParserVisitor.prototype.visitBeginWork = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#commitWork. +MySQLParserVisitor.prototype.visitCommitWork = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#rollbackWork. +MySQLParserVisitor.prototype.visitRollbackWork = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#savepointStatement. +MySQLParserVisitor.prototype.visitSavepointStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#rollbackStatement. +MySQLParserVisitor.prototype.visitRollbackStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#releaseStatement. +MySQLParserVisitor.prototype.visitReleaseStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#lockTables. +MySQLParserVisitor.prototype.visitLockTables = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#unlockTables. +MySQLParserVisitor.prototype.visitUnlockTables = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setAutocommitStatement. +MySQLParserVisitor.prototype.visitSetAutocommitStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setTransactionStatement. +MySQLParserVisitor.prototype.visitSetTransactionStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#transactionMode. +MySQLParserVisitor.prototype.visitTransactionMode = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#lockTableElement. +MySQLParserVisitor.prototype.visitLockTableElement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#lockAction. +MySQLParserVisitor.prototype.visitLockAction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#transactionOption. +MySQLParserVisitor.prototype.visitTransactionOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#transactionLevel. +MySQLParserVisitor.prototype.visitTransactionLevel = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#changeMaster. +MySQLParserVisitor.prototype.visitChangeMaster = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#changeReplicationFilter. +MySQLParserVisitor.prototype.visitChangeReplicationFilter = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#purgeBinaryLogs. +MySQLParserVisitor.prototype.visitPurgeBinaryLogs = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#resetMaster. +MySQLParserVisitor.prototype.visitResetMaster = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#resetSlave. +MySQLParserVisitor.prototype.visitResetSlave = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#startSlave. +MySQLParserVisitor.prototype.visitStartSlave = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#stopSlave. +MySQLParserVisitor.prototype.visitStopSlave = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#startGroupReplication. +MySQLParserVisitor.prototype.visitStartGroupReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#stopGroupReplication. +MySQLParserVisitor.prototype.visitStopGroupReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#masterStringOption. +MySQLParserVisitor.prototype.visitMasterStringOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#masterDecimalOption. +MySQLParserVisitor.prototype.visitMasterDecimalOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#masterBoolOption. +MySQLParserVisitor.prototype.visitMasterBoolOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#masterRealOption. +MySQLParserVisitor.prototype.visitMasterRealOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#masterUidListOption. +MySQLParserVisitor.prototype.visitMasterUidListOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#stringMasterOption. +MySQLParserVisitor.prototype.visitStringMasterOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#decimalMasterOption. +MySQLParserVisitor.prototype.visitDecimalMasterOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#boolMasterOption. +MySQLParserVisitor.prototype.visitBoolMasterOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#channelOption. +MySQLParserVisitor.prototype.visitChannelOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#doDbReplication. +MySQLParserVisitor.prototype.visitDoDbReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#ignoreDbReplication. +MySQLParserVisitor.prototype.visitIgnoreDbReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#doTableReplication. +MySQLParserVisitor.prototype.visitDoTableReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#ignoreTableReplication. +MySQLParserVisitor.prototype.visitIgnoreTableReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#wildDoTableReplication. +MySQLParserVisitor.prototype.visitWildDoTableReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#wildIgnoreTableReplication. +MySQLParserVisitor.prototype.visitWildIgnoreTableReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#rewriteDbReplication. +MySQLParserVisitor.prototype.visitRewriteDbReplication = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tablePair. +MySQLParserVisitor.prototype.visitTablePair = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#threadType. +MySQLParserVisitor.prototype.visitThreadType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#gtidsUntilOption. +MySQLParserVisitor.prototype.visitGtidsUntilOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#masterLogUntilOption. +MySQLParserVisitor.prototype.visitMasterLogUntilOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#relayLogUntilOption. +MySQLParserVisitor.prototype.visitRelayLogUntilOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#sqlGapsUntilOption. +MySQLParserVisitor.prototype.visitSqlGapsUntilOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#userConnectionOption. +MySQLParserVisitor.prototype.visitUserConnectionOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#passwordConnectionOption. +MySQLParserVisitor.prototype.visitPasswordConnectionOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#defaultAuthConnectionOption. +MySQLParserVisitor.prototype.visitDefaultAuthConnectionOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#pluginDirConnectionOption. +MySQLParserVisitor.prototype.visitPluginDirConnectionOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#gtuidSet. +MySQLParserVisitor.prototype.visitGtuidSet = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#xaStartTransaction. +MySQLParserVisitor.prototype.visitXaStartTransaction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#xaEndTransaction. +MySQLParserVisitor.prototype.visitXaEndTransaction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#xaPrepareStatement. +MySQLParserVisitor.prototype.visitXaPrepareStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#xaCommitWork. +MySQLParserVisitor.prototype.visitXaCommitWork = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#xaRollbackWork. +MySQLParserVisitor.prototype.visitXaRollbackWork = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#xaRecoverWork. +MySQLParserVisitor.prototype.visitXaRecoverWork = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#prepareStatement. +MySQLParserVisitor.prototype.visitPrepareStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#executeStatement. +MySQLParserVisitor.prototype.visitExecuteStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#deallocatePrepare. +MySQLParserVisitor.prototype.visitDeallocatePrepare = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#routineBody. +MySQLParserVisitor.prototype.visitRoutineBody = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#blockStatement. +MySQLParserVisitor.prototype.visitBlockStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#caseStatement. +MySQLParserVisitor.prototype.visitCaseStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#ifStatement. +MySQLParserVisitor.prototype.visitIfStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#iterateStatement. +MySQLParserVisitor.prototype.visitIterateStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#leaveStatement. +MySQLParserVisitor.prototype.visitLeaveStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#loopStatement. +MySQLParserVisitor.prototype.visitLoopStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#repeatStatement. +MySQLParserVisitor.prototype.visitRepeatStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#returnStatement. +MySQLParserVisitor.prototype.visitReturnStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#whileStatement. +MySQLParserVisitor.prototype.visitWhileStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#CloseCursor. +MySQLParserVisitor.prototype.visitCloseCursor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#FetchCursor. +MySQLParserVisitor.prototype.visitFetchCursor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#OpenCursor. +MySQLParserVisitor.prototype.visitOpenCursor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#declareVariable. +MySQLParserVisitor.prototype.visitDeclareVariable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#declareCondition. +MySQLParserVisitor.prototype.visitDeclareCondition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#declareCursor. +MySQLParserVisitor.prototype.visitDeclareCursor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#declareHandler. +MySQLParserVisitor.prototype.visitDeclareHandler = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerConditionCode. +MySQLParserVisitor.prototype.visitHandlerConditionCode = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerConditionState. +MySQLParserVisitor.prototype.visitHandlerConditionState = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerConditionName. +MySQLParserVisitor.prototype.visitHandlerConditionName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerConditionWarning. +MySQLParserVisitor.prototype.visitHandlerConditionWarning = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerConditionNotfound. +MySQLParserVisitor.prototype.visitHandlerConditionNotfound = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#handlerConditionException. +MySQLParserVisitor.prototype.visitHandlerConditionException = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#procedureSqlStatement. +MySQLParserVisitor.prototype.visitProcedureSqlStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#caseAlternative. +MySQLParserVisitor.prototype.visitCaseAlternative = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#elifAlternative. +MySQLParserVisitor.prototype.visitElifAlternative = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterUserMysqlV56. +MySQLParserVisitor.prototype.visitAlterUserMysqlV56 = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#alterUserMysqlV57. +MySQLParserVisitor.prototype.visitAlterUserMysqlV57 = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createUserMysqlV56. +MySQLParserVisitor.prototype.visitCreateUserMysqlV56 = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createUserMysqlV57. +MySQLParserVisitor.prototype.visitCreateUserMysqlV57 = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dropUser. +MySQLParserVisitor.prototype.visitDropUser = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#grantStatement. +MySQLParserVisitor.prototype.visitGrantStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#grantProxy. +MySQLParserVisitor.prototype.visitGrantProxy = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#renameUser. +MySQLParserVisitor.prototype.visitRenameUser = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#detailRevoke. +MySQLParserVisitor.prototype.visitDetailRevoke = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#shortRevoke. +MySQLParserVisitor.prototype.visitShortRevoke = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#revokeProxy. +MySQLParserVisitor.prototype.visitRevokeProxy = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setPasswordStatement. +MySQLParserVisitor.prototype.visitSetPasswordStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#userSpecification. +MySQLParserVisitor.prototype.visitUserSpecification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#passwordAuthOption. +MySQLParserVisitor.prototype.visitPasswordAuthOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#stringAuthOption. +MySQLParserVisitor.prototype.visitStringAuthOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#hashAuthOption. +MySQLParserVisitor.prototype.visitHashAuthOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleAuthOption. +MySQLParserVisitor.prototype.visitSimpleAuthOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tlsOption. +MySQLParserVisitor.prototype.visitTlsOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#userResourceOption. +MySQLParserVisitor.prototype.visitUserResourceOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#userPasswordOption. +MySQLParserVisitor.prototype.visitUserPasswordOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#userLockOption. +MySQLParserVisitor.prototype.visitUserLockOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#privelegeClause. +MySQLParserVisitor.prototype.visitPrivelegeClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#privilege. +MySQLParserVisitor.prototype.visitPrivilege = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#currentSchemaPriviLevel. +MySQLParserVisitor.prototype.visitCurrentSchemaPriviLevel = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#globalPrivLevel. +MySQLParserVisitor.prototype.visitGlobalPrivLevel = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#definiteSchemaPrivLevel. +MySQLParserVisitor.prototype.visitDefiniteSchemaPrivLevel = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#definiteFullTablePrivLevel. +MySQLParserVisitor.prototype.visitDefiniteFullTablePrivLevel = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#definiteFullTablePrivLevel2. +MySQLParserVisitor.prototype.visitDefiniteFullTablePrivLevel2 = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#definiteTablePrivLevel. +MySQLParserVisitor.prototype.visitDefiniteTablePrivLevel = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#renameUserClause. +MySQLParserVisitor.prototype.visitRenameUserClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#analyzeTable. +MySQLParserVisitor.prototype.visitAnalyzeTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#checkTable. +MySQLParserVisitor.prototype.visitCheckTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#checksumTable. +MySQLParserVisitor.prototype.visitChecksumTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#optimizeTable. +MySQLParserVisitor.prototype.visitOptimizeTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#repairTable. +MySQLParserVisitor.prototype.visitRepairTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#checkTableOption. +MySQLParserVisitor.prototype.visitCheckTableOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#createUdfunction. +MySQLParserVisitor.prototype.visitCreateUdfunction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#installPlugin. +MySQLParserVisitor.prototype.visitInstallPlugin = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#uninstallPlugin. +MySQLParserVisitor.prototype.visitUninstallPlugin = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setVariable. +MySQLParserVisitor.prototype.visitSetVariable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setCharset. +MySQLParserVisitor.prototype.visitSetCharset = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setNames. +MySQLParserVisitor.prototype.visitSetNames = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setPassword. +MySQLParserVisitor.prototype.visitSetPassword = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setTransaction. +MySQLParserVisitor.prototype.visitSetTransaction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setAutocommit. +MySQLParserVisitor.prototype.visitSetAutocommit = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#setNewValueInsideTrigger. +MySQLParserVisitor.prototype.visitSetNewValueInsideTrigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showMasterLogs. +MySQLParserVisitor.prototype.visitShowMasterLogs = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showLogEvents. +MySQLParserVisitor.prototype.visitShowLogEvents = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showObjectFilter. +MySQLParserVisitor.prototype.visitShowObjectFilter = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showColumns. +MySQLParserVisitor.prototype.visitShowColumns = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showCreateDb. +MySQLParserVisitor.prototype.visitShowCreateDb = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showCreateFullIdObject. +MySQLParserVisitor.prototype.visitShowCreateFullIdObject = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showCreateUser. +MySQLParserVisitor.prototype.visitShowCreateUser = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showEngine. +MySQLParserVisitor.prototype.visitShowEngine = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showGlobalInfo. +MySQLParserVisitor.prototype.visitShowGlobalInfo = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showErrors. +MySQLParserVisitor.prototype.visitShowErrors = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showCountErrors. +MySQLParserVisitor.prototype.visitShowCountErrors = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showSchemaFilter. +MySQLParserVisitor.prototype.visitShowSchemaFilter = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showRoutine. +MySQLParserVisitor.prototype.visitShowRoutine = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showGrants. +MySQLParserVisitor.prototype.visitShowGrants = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showIndexes. +MySQLParserVisitor.prototype.visitShowIndexes = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showOpenTables. +MySQLParserVisitor.prototype.visitShowOpenTables = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showProfile. +MySQLParserVisitor.prototype.visitShowProfile = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showSlaveStatus. +MySQLParserVisitor.prototype.visitShowSlaveStatus = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#variableClause. +MySQLParserVisitor.prototype.visitVariableClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showCommonEntity. +MySQLParserVisitor.prototype.visitShowCommonEntity = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showFilter. +MySQLParserVisitor.prototype.visitShowFilter = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showGlobalInfoClause. +MySQLParserVisitor.prototype.visitShowGlobalInfoClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showSchemaEntity. +MySQLParserVisitor.prototype.visitShowSchemaEntity = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#showProfileType. +MySQLParserVisitor.prototype.visitShowProfileType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#binlogStatement. +MySQLParserVisitor.prototype.visitBinlogStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#cacheIndexStatement. +MySQLParserVisitor.prototype.visitCacheIndexStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#flushStatement. +MySQLParserVisitor.prototype.visitFlushStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#killStatement. +MySQLParserVisitor.prototype.visitKillStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#loadIndexIntoCache. +MySQLParserVisitor.prototype.visitLoadIndexIntoCache = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#resetStatement. +MySQLParserVisitor.prototype.visitResetStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#shutdownStatement. +MySQLParserVisitor.prototype.visitShutdownStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableIndexes. +MySQLParserVisitor.prototype.visitTableIndexes = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleFlushOption. +MySQLParserVisitor.prototype.visitSimpleFlushOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#channelFlushOption. +MySQLParserVisitor.prototype.visitChannelFlushOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableFlushOption. +MySQLParserVisitor.prototype.visitTableFlushOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#flushTableOption. +MySQLParserVisitor.prototype.visitFlushTableOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#loadedTableIndexes. +MySQLParserVisitor.prototype.visitLoadedTableIndexes = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleDescribeStatement. +MySQLParserVisitor.prototype.visitSimpleDescribeStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#fullDescribeStatement. +MySQLParserVisitor.prototype.visitFullDescribeStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#helpStatement. +MySQLParserVisitor.prototype.visitHelpStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#useStatement. +MySQLParserVisitor.prototype.visitUseStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#signalStatement. +MySQLParserVisitor.prototype.visitSignalStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#resignalStatement. +MySQLParserVisitor.prototype.visitResignalStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#signalConditionInformation. +MySQLParserVisitor.prototype.visitSignalConditionInformation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#diagnosticsStatement. +MySQLParserVisitor.prototype.visitDiagnosticsStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#diagnosticsConditionInformationName. +MySQLParserVisitor.prototype.visitDiagnosticsConditionInformationName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#describeStatements. +MySQLParserVisitor.prototype.visitDescribeStatements = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#describeConnection. +MySQLParserVisitor.prototype.visitDescribeConnection = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#fullId. +MySQLParserVisitor.prototype.visitFullId = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tableName. +MySQLParserVisitor.prototype.visitTableName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#fullColumnName. +MySQLParserVisitor.prototype.visitFullColumnName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#indexColumnName. +MySQLParserVisitor.prototype.visitIndexColumnName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#userName. +MySQLParserVisitor.prototype.visitUserName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#mysqlVariable. +MySQLParserVisitor.prototype.visitMysqlVariable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#charsetName. +MySQLParserVisitor.prototype.visitCharsetName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#collationName. +MySQLParserVisitor.prototype.visitCollationName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#engineName. +MySQLParserVisitor.prototype.visitEngineName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#uuidSet. +MySQLParserVisitor.prototype.visitUuidSet = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#xid. +MySQLParserVisitor.prototype.visitXid = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#xuidStringId. +MySQLParserVisitor.prototype.visitXuidStringId = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#authPlugin. +MySQLParserVisitor.prototype.visitAuthPlugin = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#uid. +MySQLParserVisitor.prototype.visitUid = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleId. +MySQLParserVisitor.prototype.visitSimpleId = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dottedId. +MySQLParserVisitor.prototype.visitDottedId = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#decimalLiteral. +MySQLParserVisitor.prototype.visitDecimalLiteral = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#fileSizeLiteral. +MySQLParserVisitor.prototype.visitFileSizeLiteral = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#stringLiteral. +MySQLParserVisitor.prototype.visitStringLiteral = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#booleanLiteral. +MySQLParserVisitor.prototype.visitBooleanLiteral = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#hexadecimalLiteral. +MySQLParserVisitor.prototype.visitHexadecimalLiteral = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#nullNotnull. +MySQLParserVisitor.prototype.visitNullNotnull = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#constant. +MySQLParserVisitor.prototype.visitConstant = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#stringDataType. +MySQLParserVisitor.prototype.visitStringDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#nationalStringDataType. +MySQLParserVisitor.prototype.visitNationalStringDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#nationalVaryingStringDataType. +MySQLParserVisitor.prototype.visitNationalVaryingStringDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dimensionDataType. +MySQLParserVisitor.prototype.visitDimensionDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleDataType. +MySQLParserVisitor.prototype.visitSimpleDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#collectionDataType. +MySQLParserVisitor.prototype.visitCollectionDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#spatialDataType. +MySQLParserVisitor.prototype.visitSpatialDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#longVarcharDataType. +MySQLParserVisitor.prototype.visitLongVarcharDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#longVarbinaryDataType. +MySQLParserVisitor.prototype.visitLongVarbinaryDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#collectionOptions. +MySQLParserVisitor.prototype.visitCollectionOptions = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#convertedDataType. +MySQLParserVisitor.prototype.visitConvertedDataType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#lengthOneDimension. +MySQLParserVisitor.prototype.visitLengthOneDimension = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#lengthTwoDimension. +MySQLParserVisitor.prototype.visitLengthTwoDimension = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#lengthTwoOptionalDimension. +MySQLParserVisitor.prototype.visitLengthTwoOptionalDimension = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#uidList. +MySQLParserVisitor.prototype.visitUidList = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#tables. +MySQLParserVisitor.prototype.visitTables = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#indexColumnNames. +MySQLParserVisitor.prototype.visitIndexColumnNames = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#expressions. +MySQLParserVisitor.prototype.visitExpressions = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#expressionsWithDefaults. +MySQLParserVisitor.prototype.visitExpressionsWithDefaults = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#constants. +MySQLParserVisitor.prototype.visitConstants = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleStrings. +MySQLParserVisitor.prototype.visitSimpleStrings = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#userVariables. +MySQLParserVisitor.prototype.visitUserVariables = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#defaultValue. +MySQLParserVisitor.prototype.visitDefaultValue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#currentTimestamp. +MySQLParserVisitor.prototype.visitCurrentTimestamp = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#expressionOrDefault. +MySQLParserVisitor.prototype.visitExpressionOrDefault = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#ifExists. +MySQLParserVisitor.prototype.visitIfExists = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#ifNotExists. +MySQLParserVisitor.prototype.visitIfNotExists = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#specificFunctionCall. +MySQLParserVisitor.prototype.visitSpecificFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#aggregateFunctionCall. +MySQLParserVisitor.prototype.visitAggregateFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#scalarFunctionCall. +MySQLParserVisitor.prototype.visitScalarFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#udfFunctionCall. +MySQLParserVisitor.prototype.visitUdfFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#passwordFunctionCall. +MySQLParserVisitor.prototype.visitPasswordFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#simpleFunctionCall. +MySQLParserVisitor.prototype.visitSimpleFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dataTypeFunctionCall. +MySQLParserVisitor.prototype.visitDataTypeFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#valuesFunctionCall. +MySQLParserVisitor.prototype.visitValuesFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#caseFunctionCall. +MySQLParserVisitor.prototype.visitCaseFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#charFunctionCall. +MySQLParserVisitor.prototype.visitCharFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#positionFunctionCall. +MySQLParserVisitor.prototype.visitPositionFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#substrFunctionCall. +MySQLParserVisitor.prototype.visitSubstrFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#trimFunctionCall. +MySQLParserVisitor.prototype.visitTrimFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#weightFunctionCall. +MySQLParserVisitor.prototype.visitWeightFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#extractFunctionCall. +MySQLParserVisitor.prototype.visitExtractFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#getFormatFunctionCall. +MySQLParserVisitor.prototype.visitGetFormatFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#caseFuncAlternative. +MySQLParserVisitor.prototype.visitCaseFuncAlternative = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#levelWeightList. +MySQLParserVisitor.prototype.visitLevelWeightList = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#levelWeightRange. +MySQLParserVisitor.prototype.visitLevelWeightRange = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#levelInWeightListElement. +MySQLParserVisitor.prototype.visitLevelInWeightListElement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#aggregateWindowedFunction. +MySQLParserVisitor.prototype.visitAggregateWindowedFunction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#scalarFunctionName. +MySQLParserVisitor.prototype.visitScalarFunctionName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#passwordFunctionClause. +MySQLParserVisitor.prototype.visitPasswordFunctionClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#functionArgs. +MySQLParserVisitor.prototype.visitFunctionArgs = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#functionArg. +MySQLParserVisitor.prototype.visitFunctionArg = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#isExpression. +MySQLParserVisitor.prototype.visitIsExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#notExpression. +MySQLParserVisitor.prototype.visitNotExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#logicalExpression. +MySQLParserVisitor.prototype.visitLogicalExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#predicateExpression. +MySQLParserVisitor.prototype.visitPredicateExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#soundsLikePredicate. +MySQLParserVisitor.prototype.visitSoundsLikePredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#expressionAtomPredicate. +MySQLParserVisitor.prototype.visitExpressionAtomPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#inPredicate. +MySQLParserVisitor.prototype.visitInPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#subqueryComparasionPredicate. +MySQLParserVisitor.prototype.visitSubqueryComparasionPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#betweenPredicate. +MySQLParserVisitor.prototype.visitBetweenPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#binaryComparasionPredicate. +MySQLParserVisitor.prototype.visitBinaryComparasionPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#isNullPredicate. +MySQLParserVisitor.prototype.visitIsNullPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#likePredicate. +MySQLParserVisitor.prototype.visitLikePredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#regexpPredicate. +MySQLParserVisitor.prototype.visitRegexpPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#unaryExpressionAtom. +MySQLParserVisitor.prototype.visitUnaryExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#collateExpressionAtom. +MySQLParserVisitor.prototype.visitCollateExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#subqueryExpessionAtom. +MySQLParserVisitor.prototype.visitSubqueryExpessionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#mysqlVariableExpressionAtom. +MySQLParserVisitor.prototype.visitMysqlVariableExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#nestedExpressionAtom. +MySQLParserVisitor.prototype.visitNestedExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#nestedRowExpressionAtom. +MySQLParserVisitor.prototype.visitNestedRowExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#mathExpressionAtom. +MySQLParserVisitor.prototype.visitMathExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#intervalExpressionAtom. +MySQLParserVisitor.prototype.visitIntervalExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#existsExpessionAtom. +MySQLParserVisitor.prototype.visitExistsExpessionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#constantExpressionAtom. +MySQLParserVisitor.prototype.visitConstantExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#functionCallExpressionAtom. +MySQLParserVisitor.prototype.visitFunctionCallExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#binaryExpressionAtom. +MySQLParserVisitor.prototype.visitBinaryExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#fullColumnNameExpressionAtom. +MySQLParserVisitor.prototype.visitFullColumnNameExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#bitExpressionAtom. +MySQLParserVisitor.prototype.visitBitExpressionAtom = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#unaryOperator. +MySQLParserVisitor.prototype.visitUnaryOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#comparisonOperator. +MySQLParserVisitor.prototype.visitComparisonOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#logicalOperator. +MySQLParserVisitor.prototype.visitLogicalOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#bitOperator. +MySQLParserVisitor.prototype.visitBitOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#mathOperator. +MySQLParserVisitor.prototype.visitMathOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#charsetNameBase. +MySQLParserVisitor.prototype.visitCharsetNameBase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#transactionLevelBase. +MySQLParserVisitor.prototype.visitTransactionLevelBase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#privilegesBase. +MySQLParserVisitor.prototype.visitPrivilegesBase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#intervalTypeBase. +MySQLParserVisitor.prototype.visitIntervalTypeBase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#dataTypeBase. +MySQLParserVisitor.prototype.visitDataTypeBase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#keywordsCanBeId. +MySQLParserVisitor.prototype.visitKeywordsCanBeId = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by MySQLParser#functionNameBase. +MySQLParserVisitor.prototype.visitFunctionNameBase = function(ctx) { + return this.visitChildren(ctx); +}; + + + +exports.MySQLParserVisitor = MySQLParserVisitor; \ No newline at end of file diff --git a/src/parser/TSqlLexer.js b/src/parser/TSqlLexer.js new file mode 100644 index 0000000..9b2ca46 --- /dev/null +++ b/src/parser/TSqlLexer.js @@ -0,0 +1,8175 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/tsql/TSqlLexer.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + + + +var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", + "\u0002\u034a\u276b\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004", + "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t", + "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", + "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", + "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", + "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", + "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", + "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", + "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", + "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", + "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", + "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", + "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", + "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", + "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", + "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", + "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", + "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", + "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", + "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", + "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", + "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", + "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", + "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", + "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", + "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", + "\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", + "\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", + "\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", + "\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", + "\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", + "\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", + "\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", + "\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", + "\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", + "\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", + "\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", + "\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", + "\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", + "\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", + "\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", + "\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", + "\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", + "\u00c8\t\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t", + "\u00cb\u0004\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004", + "\u00cf\t\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t", + "\u00d2\u0004\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004", + "\u00d6\t\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t", + "\u00d9\u0004\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004", + "\u00dd\t\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t", + "\u00e0\u0004\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004", + "\u00e4\t\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t", + "\u00e7\u0004\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004", + "\u00eb\t\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t", + "\u00ee\u0004\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004", + "\u00f2\t\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t", + "\u00f5\u0004\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004", + "\u00f9\t\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t", + "\u00fc\u0004\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004", + "\u0100\t\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t", + "\u0103\u0004\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004", + "\u0107\t\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t", + "\u010a\u0004\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004", + "\u010e\t\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t", + "\u0111\u0004\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004", + "\u0115\t\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t", + "\u0118\u0004\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004", + "\u011c\t\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t", + "\u011f\u0004\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004", + "\u0123\t\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t", + "\u0126\u0004\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004", + "\u012a\t\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t", + "\u012d\u0004\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004", + "\u0131\t\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t", + "\u0134\u0004\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004", + "\u0138\t\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t", + "\u013b\u0004\u013c\t\u013c\u0004\u013d\t\u013d\u0004\u013e\t\u013e\u0004", + "\u013f\t\u013f\u0004\u0140\t\u0140\u0004\u0141\t\u0141\u0004\u0142\t", + "\u0142\u0004\u0143\t\u0143\u0004\u0144\t\u0144\u0004\u0145\t\u0145\u0004", + "\u0146\t\u0146\u0004\u0147\t\u0147\u0004\u0148\t\u0148\u0004\u0149\t", + "\u0149\u0004\u014a\t\u014a\u0004\u014b\t\u014b\u0004\u014c\t\u014c\u0004", + "\u014d\t\u014d\u0004\u014e\t\u014e\u0004\u014f\t\u014f\u0004\u0150\t", + "\u0150\u0004\u0151\t\u0151\u0004\u0152\t\u0152\u0004\u0153\t\u0153\u0004", + "\u0154\t\u0154\u0004\u0155\t\u0155\u0004\u0156\t\u0156\u0004\u0157\t", + "\u0157\u0004\u0158\t\u0158\u0004\u0159\t\u0159\u0004\u015a\t\u015a\u0004", + "\u015b\t\u015b\u0004\u015c\t\u015c\u0004\u015d\t\u015d\u0004\u015e\t", + "\u015e\u0004\u015f\t\u015f\u0004\u0160\t\u0160\u0004\u0161\t\u0161\u0004", + "\u0162\t\u0162\u0004\u0163\t\u0163\u0004\u0164\t\u0164\u0004\u0165\t", + "\u0165\u0004\u0166\t\u0166\u0004\u0167\t\u0167\u0004\u0168\t\u0168\u0004", + "\u0169\t\u0169\u0004\u016a\t\u016a\u0004\u016b\t\u016b\u0004\u016c\t", + "\u016c\u0004\u016d\t\u016d\u0004\u016e\t\u016e\u0004\u016f\t\u016f\u0004", + "\u0170\t\u0170\u0004\u0171\t\u0171\u0004\u0172\t\u0172\u0004\u0173\t", + "\u0173\u0004\u0174\t\u0174\u0004\u0175\t\u0175\u0004\u0176\t\u0176\u0004", + "\u0177\t\u0177\u0004\u0178\t\u0178\u0004\u0179\t\u0179\u0004\u017a\t", + "\u017a\u0004\u017b\t\u017b\u0004\u017c\t\u017c\u0004\u017d\t\u017d\u0004", + "\u017e\t\u017e\u0004\u017f\t\u017f\u0004\u0180\t\u0180\u0004\u0181\t", + "\u0181\u0004\u0182\t\u0182\u0004\u0183\t\u0183\u0004\u0184\t\u0184\u0004", + "\u0185\t\u0185\u0004\u0186\t\u0186\u0004\u0187\t\u0187\u0004\u0188\t", + "\u0188\u0004\u0189\t\u0189\u0004\u018a\t\u018a\u0004\u018b\t\u018b\u0004", + "\u018c\t\u018c\u0004\u018d\t\u018d\u0004\u018e\t\u018e\u0004\u018f\t", + "\u018f\u0004\u0190\t\u0190\u0004\u0191\t\u0191\u0004\u0192\t\u0192\u0004", + "\u0193\t\u0193\u0004\u0194\t\u0194\u0004\u0195\t\u0195\u0004\u0196\t", + "\u0196\u0004\u0197\t\u0197\u0004\u0198\t\u0198\u0004\u0199\t\u0199\u0004", + "\u019a\t\u019a\u0004\u019b\t\u019b\u0004\u019c\t\u019c\u0004\u019d\t", + "\u019d\u0004\u019e\t\u019e\u0004\u019f\t\u019f\u0004\u01a0\t\u01a0\u0004", + "\u01a1\t\u01a1\u0004\u01a2\t\u01a2\u0004\u01a3\t\u01a3\u0004\u01a4\t", + "\u01a4\u0004\u01a5\t\u01a5\u0004\u01a6\t\u01a6\u0004\u01a7\t\u01a7\u0004", + "\u01a8\t\u01a8\u0004\u01a9\t\u01a9\u0004\u01aa\t\u01aa\u0004\u01ab\t", + "\u01ab\u0004\u01ac\t\u01ac\u0004\u01ad\t\u01ad\u0004\u01ae\t\u01ae\u0004", + "\u01af\t\u01af\u0004\u01b0\t\u01b0\u0004\u01b1\t\u01b1\u0004\u01b2\t", + "\u01b2\u0004\u01b3\t\u01b3\u0004\u01b4\t\u01b4\u0004\u01b5\t\u01b5\u0004", + "\u01b6\t\u01b6\u0004\u01b7\t\u01b7\u0004\u01b8\t\u01b8\u0004\u01b9\t", + "\u01b9\u0004\u01ba\t\u01ba\u0004\u01bb\t\u01bb\u0004\u01bc\t\u01bc\u0004", + "\u01bd\t\u01bd\u0004\u01be\t\u01be\u0004\u01bf\t\u01bf\u0004\u01c0\t", + "\u01c0\u0004\u01c1\t\u01c1\u0004\u01c2\t\u01c2\u0004\u01c3\t\u01c3\u0004", + "\u01c4\t\u01c4\u0004\u01c5\t\u01c5\u0004\u01c6\t\u01c6\u0004\u01c7\t", + "\u01c7\u0004\u01c8\t\u01c8\u0004\u01c9\t\u01c9\u0004\u01ca\t\u01ca\u0004", + "\u01cb\t\u01cb\u0004\u01cc\t\u01cc\u0004\u01cd\t\u01cd\u0004\u01ce\t", + "\u01ce\u0004\u01cf\t\u01cf\u0004\u01d0\t\u01d0\u0004\u01d1\t\u01d1\u0004", + "\u01d2\t\u01d2\u0004\u01d3\t\u01d3\u0004\u01d4\t\u01d4\u0004\u01d5\t", + "\u01d5\u0004\u01d6\t\u01d6\u0004\u01d7\t\u01d7\u0004\u01d8\t\u01d8\u0004", + "\u01d9\t\u01d9\u0004\u01da\t\u01da\u0004\u01db\t\u01db\u0004\u01dc\t", + "\u01dc\u0004\u01dd\t\u01dd\u0004\u01de\t\u01de\u0004\u01df\t\u01df\u0004", + "\u01e0\t\u01e0\u0004\u01e1\t\u01e1\u0004\u01e2\t\u01e2\u0004\u01e3\t", + "\u01e3\u0004\u01e4\t\u01e4\u0004\u01e5\t\u01e5\u0004\u01e6\t\u01e6\u0004", + "\u01e7\t\u01e7\u0004\u01e8\t\u01e8\u0004\u01e9\t\u01e9\u0004\u01ea\t", + "\u01ea\u0004\u01eb\t\u01eb\u0004\u01ec\t\u01ec\u0004\u01ed\t\u01ed\u0004", + "\u01ee\t\u01ee\u0004\u01ef\t\u01ef\u0004\u01f0\t\u01f0\u0004\u01f1\t", + "\u01f1\u0004\u01f2\t\u01f2\u0004\u01f3\t\u01f3\u0004\u01f4\t\u01f4\u0004", + "\u01f5\t\u01f5\u0004\u01f6\t\u01f6\u0004\u01f7\t\u01f7\u0004\u01f8\t", + "\u01f8\u0004\u01f9\t\u01f9\u0004\u01fa\t\u01fa\u0004\u01fb\t\u01fb\u0004", + "\u01fc\t\u01fc\u0004\u01fd\t\u01fd\u0004\u01fe\t\u01fe\u0004\u01ff\t", + "\u01ff\u0004\u0200\t\u0200\u0004\u0201\t\u0201\u0004\u0202\t\u0202\u0004", + "\u0203\t\u0203\u0004\u0204\t\u0204\u0004\u0205\t\u0205\u0004\u0206\t", + "\u0206\u0004\u0207\t\u0207\u0004\u0208\t\u0208\u0004\u0209\t\u0209\u0004", + "\u020a\t\u020a\u0004\u020b\t\u020b\u0004\u020c\t\u020c\u0004\u020d\t", + "\u020d\u0004\u020e\t\u020e\u0004\u020f\t\u020f\u0004\u0210\t\u0210\u0004", + "\u0211\t\u0211\u0004\u0212\t\u0212\u0004\u0213\t\u0213\u0004\u0214\t", + "\u0214\u0004\u0215\t\u0215\u0004\u0216\t\u0216\u0004\u0217\t\u0217\u0004", + "\u0218\t\u0218\u0004\u0219\t\u0219\u0004\u021a\t\u021a\u0004\u021b\t", + "\u021b\u0004\u021c\t\u021c\u0004\u021d\t\u021d\u0004\u021e\t\u021e\u0004", + "\u021f\t\u021f\u0004\u0220\t\u0220\u0004\u0221\t\u0221\u0004\u0222\t", + "\u0222\u0004\u0223\t\u0223\u0004\u0224\t\u0224\u0004\u0225\t\u0225\u0004", + "\u0226\t\u0226\u0004\u0227\t\u0227\u0004\u0228\t\u0228\u0004\u0229\t", + "\u0229\u0004\u022a\t\u022a\u0004\u022b\t\u022b\u0004\u022c\t\u022c\u0004", + "\u022d\t\u022d\u0004\u022e\t\u022e\u0004\u022f\t\u022f\u0004\u0230\t", + "\u0230\u0004\u0231\t\u0231\u0004\u0232\t\u0232\u0004\u0233\t\u0233\u0004", + "\u0234\t\u0234\u0004\u0235\t\u0235\u0004\u0236\t\u0236\u0004\u0237\t", + "\u0237\u0004\u0238\t\u0238\u0004\u0239\t\u0239\u0004\u023a\t\u023a\u0004", + "\u023b\t\u023b\u0004\u023c\t\u023c\u0004\u023d\t\u023d\u0004\u023e\t", + "\u023e\u0004\u023f\t\u023f\u0004\u0240\t\u0240\u0004\u0241\t\u0241\u0004", + "\u0242\t\u0242\u0004\u0243\t\u0243\u0004\u0244\t\u0244\u0004\u0245\t", + "\u0245\u0004\u0246\t\u0246\u0004\u0247\t\u0247\u0004\u0248\t\u0248\u0004", + "\u0249\t\u0249\u0004\u024a\t\u024a\u0004\u024b\t\u024b\u0004\u024c\t", + "\u024c\u0004\u024d\t\u024d\u0004\u024e\t\u024e\u0004\u024f\t\u024f\u0004", + "\u0250\t\u0250\u0004\u0251\t\u0251\u0004\u0252\t\u0252\u0004\u0253\t", + "\u0253\u0004\u0254\t\u0254\u0004\u0255\t\u0255\u0004\u0256\t\u0256\u0004", + "\u0257\t\u0257\u0004\u0258\t\u0258\u0004\u0259\t\u0259\u0004\u025a\t", + "\u025a\u0004\u025b\t\u025b\u0004\u025c\t\u025c\u0004\u025d\t\u025d\u0004", + "\u025e\t\u025e\u0004\u025f\t\u025f\u0004\u0260\t\u0260\u0004\u0261\t", + "\u0261\u0004\u0262\t\u0262\u0004\u0263\t\u0263\u0004\u0264\t\u0264\u0004", + "\u0265\t\u0265\u0004\u0266\t\u0266\u0004\u0267\t\u0267\u0004\u0268\t", + "\u0268\u0004\u0269\t\u0269\u0004\u026a\t\u026a\u0004\u026b\t\u026b\u0004", + "\u026c\t\u026c\u0004\u026d\t\u026d\u0004\u026e\t\u026e\u0004\u026f\t", + "\u026f\u0004\u0270\t\u0270\u0004\u0271\t\u0271\u0004\u0272\t\u0272\u0004", + "\u0273\t\u0273\u0004\u0274\t\u0274\u0004\u0275\t\u0275\u0004\u0276\t", + "\u0276\u0004\u0277\t\u0277\u0004\u0278\t\u0278\u0004\u0279\t\u0279\u0004", + "\u027a\t\u027a\u0004\u027b\t\u027b\u0004\u027c\t\u027c\u0004\u027d\t", + "\u027d\u0004\u027e\t\u027e\u0004\u027f\t\u027f\u0004\u0280\t\u0280\u0004", + "\u0281\t\u0281\u0004\u0282\t\u0282\u0004\u0283\t\u0283\u0004\u0284\t", + "\u0284\u0004\u0285\t\u0285\u0004\u0286\t\u0286\u0004\u0287\t\u0287\u0004", + "\u0288\t\u0288\u0004\u0289\t\u0289\u0004\u028a\t\u028a\u0004\u028b\t", + "\u028b\u0004\u028c\t\u028c\u0004\u028d\t\u028d\u0004\u028e\t\u028e\u0004", + "\u028f\t\u028f\u0004\u0290\t\u0290\u0004\u0291\t\u0291\u0004\u0292\t", + "\u0292\u0004\u0293\t\u0293\u0004\u0294\t\u0294\u0004\u0295\t\u0295\u0004", + "\u0296\t\u0296\u0004\u0297\t\u0297\u0004\u0298\t\u0298\u0004\u0299\t", + "\u0299\u0004\u029a\t\u029a\u0004\u029b\t\u029b\u0004\u029c\t\u029c\u0004", + "\u029d\t\u029d\u0004\u029e\t\u029e\u0004\u029f\t\u029f\u0004\u02a0\t", + "\u02a0\u0004\u02a1\t\u02a1\u0004\u02a2\t\u02a2\u0004\u02a3\t\u02a3\u0004", + "\u02a4\t\u02a4\u0004\u02a5\t\u02a5\u0004\u02a6\t\u02a6\u0004\u02a7\t", + "\u02a7\u0004\u02a8\t\u02a8\u0004\u02a9\t\u02a9\u0004\u02aa\t\u02aa\u0004", + "\u02ab\t\u02ab\u0004\u02ac\t\u02ac\u0004\u02ad\t\u02ad\u0004\u02ae\t", + "\u02ae\u0004\u02af\t\u02af\u0004\u02b0\t\u02b0\u0004\u02b1\t\u02b1\u0004", + "\u02b2\t\u02b2\u0004\u02b3\t\u02b3\u0004\u02b4\t\u02b4\u0004\u02b5\t", + "\u02b5\u0004\u02b6\t\u02b6\u0004\u02b7\t\u02b7\u0004\u02b8\t\u02b8\u0004", + "\u02b9\t\u02b9\u0004\u02ba\t\u02ba\u0004\u02bb\t\u02bb\u0004\u02bc\t", + "\u02bc\u0004\u02bd\t\u02bd\u0004\u02be\t\u02be\u0004\u02bf\t\u02bf\u0004", + "\u02c0\t\u02c0\u0004\u02c1\t\u02c1\u0004\u02c2\t\u02c2\u0004\u02c3\t", + "\u02c3\u0004\u02c4\t\u02c4\u0004\u02c5\t\u02c5\u0004\u02c6\t\u02c6\u0004", + "\u02c7\t\u02c7\u0004\u02c8\t\u02c8\u0004\u02c9\t\u02c9\u0004\u02ca\t", + "\u02ca\u0004\u02cb\t\u02cb\u0004\u02cc\t\u02cc\u0004\u02cd\t\u02cd\u0004", + "\u02ce\t\u02ce\u0004\u02cf\t\u02cf\u0004\u02d0\t\u02d0\u0004\u02d1\t", + "\u02d1\u0004\u02d2\t\u02d2\u0004\u02d3\t\u02d3\u0004\u02d4\t\u02d4\u0004", + "\u02d5\t\u02d5\u0004\u02d6\t\u02d6\u0004\u02d7\t\u02d7\u0004\u02d8\t", + "\u02d8\u0004\u02d9\t\u02d9\u0004\u02da\t\u02da\u0004\u02db\t\u02db\u0004", + "\u02dc\t\u02dc\u0004\u02dd\t\u02dd\u0004\u02de\t\u02de\u0004\u02df\t", + "\u02df\u0004\u02e0\t\u02e0\u0004\u02e1\t\u02e1\u0004\u02e2\t\u02e2\u0004", + "\u02e3\t\u02e3\u0004\u02e4\t\u02e4\u0004\u02e5\t\u02e5\u0004\u02e6\t", + "\u02e6\u0004\u02e7\t\u02e7\u0004\u02e8\t\u02e8\u0004\u02e9\t\u02e9\u0004", + "\u02ea\t\u02ea\u0004\u02eb\t\u02eb\u0004\u02ec\t\u02ec\u0004\u02ed\t", + "\u02ed\u0004\u02ee\t\u02ee\u0004\u02ef\t\u02ef\u0004\u02f0\t\u02f0\u0004", + "\u02f1\t\u02f1\u0004\u02f2\t\u02f2\u0004\u02f3\t\u02f3\u0004\u02f4\t", + "\u02f4\u0004\u02f5\t\u02f5\u0004\u02f6\t\u02f6\u0004\u02f7\t\u02f7\u0004", + "\u02f8\t\u02f8\u0004\u02f9\t\u02f9\u0004\u02fa\t\u02fa\u0004\u02fb\t", + "\u02fb\u0004\u02fc\t\u02fc\u0004\u02fd\t\u02fd\u0004\u02fe\t\u02fe\u0004", + "\u02ff\t\u02ff\u0004\u0300\t\u0300\u0004\u0301\t\u0301\u0004\u0302\t", + "\u0302\u0004\u0303\t\u0303\u0004\u0304\t\u0304\u0004\u0305\t\u0305\u0004", + "\u0306\t\u0306\u0004\u0307\t\u0307\u0004\u0308\t\u0308\u0004\u0309\t", + "\u0309\u0004\u030a\t\u030a\u0004\u030b\t\u030b\u0004\u030c\t\u030c\u0004", + "\u030d\t\u030d\u0004\u030e\t\u030e\u0004\u030f\t\u030f\u0004\u0310\t", + "\u0310\u0004\u0311\t\u0311\u0004\u0312\t\u0312\u0004\u0313\t\u0313\u0004", + "\u0314\t\u0314\u0004\u0315\t\u0315\u0004\u0316\t\u0316\u0004\u0317\t", + "\u0317\u0004\u0318\t\u0318\u0004\u0319\t\u0319\u0004\u031a\t\u031a\u0004", + "\u031b\t\u031b\u0004\u031c\t\u031c\u0004\u031d\t\u031d\u0004\u031e\t", + "\u031e\u0004\u031f\t\u031f\u0004\u0320\t\u0320\u0004\u0321\t\u0321\u0004", + "\u0322\t\u0322\u0004\u0323\t\u0323\u0004\u0324\t\u0324\u0004\u0325\t", + "\u0325\u0004\u0326\t\u0326\u0004\u0327\t\u0327\u0004\u0328\t\u0328\u0004", + "\u0329\t\u0329\u0004\u032a\t\u032a\u0004\u032b\t\u032b\u0004\u032c\t", + "\u032c\u0004\u032d\t\u032d\u0004\u032e\t\u032e\u0004\u032f\t\u032f\u0004", + "\u0330\t\u0330\u0004\u0331\t\u0331\u0004\u0332\t\u0332\u0004\u0333\t", + "\u0333\u0004\u0334\t\u0334\u0004\u0335\t\u0335\u0004\u0336\t\u0336\u0004", + "\u0337\t\u0337\u0004\u0338\t\u0338\u0004\u0339\t\u0339\u0004\u033a\t", + "\u033a\u0004\u033b\t\u033b\u0004\u033c\t\u033c\u0004\u033d\t\u033d\u0004", + "\u033e\t\u033e\u0004\u033f\t\u033f\u0004\u0340\t\u0340\u0004\u0341\t", + "\u0341\u0004\u0342\t\u0342\u0004\u0343\t\u0343\u0004\u0344\t\u0344\u0004", + "\u0345\t\u0345\u0004\u0346\t\u0346\u0004\u0347\t\u0347\u0004\u0348\t", + "\u0348\u0004\u0349\t\u0349\u0004\u034a\t\u034a\u0004\u034b\t\u034b\u0004", + "\u034c\t\u034c\u0004\u034d\t\u034d\u0004\u034e\t\u034e\u0004\u034f\t", + "\u034f\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003", + "\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003", + "\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0003\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", + "\n\u0003\n\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0003\u000b\u0003", + "\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003", + "\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\r\u0003\r\u0003\r\u0003", + "\r\u0003\r\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003", + "\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011\u0003", + "\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", + "\u0011\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003", + "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003", + "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003", + "\u0013\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003", + "\u0019\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003", + "\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003", + "\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001c\u0003\u001c\u0003", + "\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003", + "\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", + "\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003", + "\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003 \u0003", + " \u0003 \u0003 \u0003 \u0003 \u0003!\u0003!\u0003!\u0003!\u0003!\u0003", + "!\u0003!\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003", + "#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003", + "#\u0003#\u0003$\u0003$\u0003$\u0003$\u0003$\u0003%\u0003%\u0003%\u0003", + "&\u0003&\u0003&\u0003&\u0003&\u0003&\u0003\'\u0003\'\u0003\'\u0003\'", + "\u0003\'\u0003\'\u0003\'\u0003(\u0003(\u0003(\u0003(\u0003(\u0003(\u0003", + "(\u0003(\u0003)\u0003)\u0003)\u0003)\u0003)\u0003*\u0003*\u0003*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003+\u0003", + "+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003", + "+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003-\u0003", + "-\u0003-\u0003-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003", + ".\u0003.\u0003.\u0003.\u0003.\u0003.\u0003/\u0003/\u0003/\u0003/\u0003", + "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u00030\u0003", + "0\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u0003", + "0\u00030\u00030\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u0003", + "1\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u0003", + "1\u00031\u00031\u00031\u00031\u00031\u00032\u00032\u00032\u00032\u0003", + "2\u00032\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u00033\u0003", + "4\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u00034\u0003", + "5\u00035\u00035\u00035\u00035\u00035\u00035\u00035\u00035\u00036\u0003", + "6\u00036\u00036\u00036\u00036\u00036\u00036\u00037\u00037\u00037\u0003", + "7\u00037\u00037\u00037\u00038\u00038\u00038\u00038\u00038\u00038\u0003", + "8\u00038\u00038\u00038\u00038\u00038\u00039\u00039\u00039\u00039\u0003", + "9\u00039\u00039\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003", + ":\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003", + ";\u0003;\u0003;\u0003;\u0003;\u0003<\u0003<\u0003<\u0003<\u0003<\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003", + "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003>\u0003>\u0003", + ">\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003", + "?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003", + "?\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003A\u0003", + "A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003B\u0003B\u0003", + "B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003", + "B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003C\u0003", + "C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003", + "D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003D\u0003", + "D\u0003D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", + "E\u0003E\u0003E\u0003E\u0003E\u0003F\u0003F\u0003F\u0003F\u0005F\u0958", + "\nF\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003G\u0003", + "G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003", + "L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003M\u0003M\u0003M\u0003M\u0003", + "M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003", + "M\u0003M\u0003M\u0003M\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003", + "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003O\u0003O\u0003O\u0003", + "O\u0003O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003P\u0003P\u0003P\u0003", + "Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003", + "Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003S\u0003", + "S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003T\u0003T\u0003", + "T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003", + "T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003", + "U\u0003U\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", + "V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", + "W\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003Y\u0003", + "Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003", + "Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003Z\u0003", + "Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003", + "Z\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003\\\u0003", + "\\\u0003\\\u0003\\\u0003]\u0003]\u0003]\u0003]\u0003]\u0003^\u0003^", + "\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003", + "^\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003", + "_\u0003_\u0003_\u0003_\u0003`\u0003`\u0003`\u0003`\u0003`\u0003a\u0003", + "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003b\u0003b\u0003", + "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", + "c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003d\u0003d\u0003d\u0003", + "e\u0003e\u0003e\u0003f\u0003f\u0003f\u0003f\u0003f\u0003g\u0003g\u0003", + "g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003", + "h\u0003h\u0003h\u0003h\u0003h\u0003i\u0003i\u0003i\u0003i\u0003i\u0003", + "j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003", + "k\u0003k\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003", + "l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003n\u0003", + "n\u0003n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003o\u0003o\u0003o\u0003", + "o\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003", + "q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003", + "r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003", + "r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003", + "r\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003t\u0003", + "t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003", + "t\u0003t\u0003t\u0003t\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003", + "u\u0003u\u0005u\u0b1c\nu\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003", + "v\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003", + "w\u0003w\u0003x\u0003x\u0003x\u0003x\u0003x\u0003y\u0003y\u0003y\u0003", + "y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003z\u0003z\u0003", + "z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003", + "{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003", + "{\u0003{\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0003|\u0003", + "|\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003", + "}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003", + "}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003~\u0003~\u0003", + "\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003", + "\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0081\u0003", + "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003", + "\u0081\u0003\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003", + "\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003", + "\u0082\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003\u0084\u0003\u0084\u0003", + "\u0084\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003", + "\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0087\u0003", + "\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003", + "\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0089\u0003\u0089\u0003", + "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003", + "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003", + "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008e\u0003", + "\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008f\u0003\u008f\u0003", + "\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003", + "\u008f\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", + "\u0090\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003", + "\u0092\u0003\u0092\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003", + "\u0093\u0003\u0093\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003", + "\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003", + "\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003", + "\u009a\u0003\u009a\u0003\u009a\u0003\u009b\u0003\u009b\u0003\u009b\u0003", + "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009d\u0003\u009d\u0003\u009d\u0003", + "\u009d\u0003\u009d\u0003\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003", + "\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u00a0\u0003", + "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003", + "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003", + "\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003", + "\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a5\u0005", + "\u00a5\u0cc2\n\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5", + "\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0005\u00a5\u0ccc\n", + "\u00a5\u0003\u00a6\u0005\u00a6\u0ccf\n\u00a6\u0003\u00a6\u0005\u00a6", + "\u0cd2\n\u00a6\u0003\u00a6\u0005\u00a6\u0cd5\n\u00a6\u0003\u00a6\u0005", + "\u00a6\u0cd8\n\u00a6\u0003\u00a6\u0005\u00a6\u0cdb\n\u00a6\u0003\u00a6", + "\u0003\u00a6\u0005\u00a6\u0cdf\n\u00a6\u0003\u00a6\u0005\u00a6\u0ce2", + "\n\u00a6\u0003\u00a6\u0005\u00a6\u0ce5\n\u00a6\u0003\u00a6\u0005\u00a6", + "\u0ce8\n\u00a6\u0003\u00a6\u0003\u00a6\u0005\u00a6\u0cec\n\u00a6\u0003", + "\u00a6\u0005\u00a6\u0cef\n\u00a6\u0003\u00a6\u0005\u00a6\u0cf2\n\u00a6", + "\u0003\u00a6\u0005\u00a6\u0cf5\n\u00a6\u0003\u00a6\u0003\u00a6\u0005", + "\u00a6\u0cf9\n\u00a6\u0003\u00a6\u0005\u00a6\u0cfc\n\u00a6\u0003\u00a6", + "\u0005\u00a6\u0cff\n\u00a6\u0003\u00a6\u0005\u00a6\u0d02\n\u00a6\u0003", + "\u00a6\u0003\u00a6\u0005\u00a6\u0d06\n\u00a6\u0003\u00a6\u0005\u00a6", + "\u0d09\n\u00a6\u0003\u00a6\u0005\u00a6\u0d0c\n\u00a6\u0003\u00a6\u0005", + "\u00a6\u0d0f\n\u00a6\u0003\u00a6\u0003\u00a6\u0005\u00a6\u0d13\n\u00a6", + "\u0003\u00a6\u0005\u00a6\u0d16\n\u00a6\u0003\u00a6\u0005\u00a6\u0d19", + "\n\u00a6\u0003\u00a6\u0005\u00a6\u0d1c\n\u00a6\u0003\u00a6\u0003\u00a6", + "\u0005\u00a6\u0d20\n\u00a6\u0003\u00a6\u0005\u00a6\u0d23\n\u00a6\u0003", + "\u00a6\u0005\u00a6\u0d26\n\u00a6\u0003\u00a6\u0005\u00a6\u0d29\n\u00a6", + "\u0003\u00a6\u0003\u00a6\u0005\u00a6\u0d2d\n\u00a6\u0003\u00a6\u0005", + "\u00a6\u0d30\n\u00a6\u0003\u00a6\u0005\u00a6\u0d33\n\u00a6\u0003\u00a6", + "\u0005\u00a6\u0d36\n\u00a6\u0003\u00a6\u0005\u00a6\u0d39\n\u00a6\u0003", + "\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a9\u0003\u00a9\u0003", + "\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003", + "\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003", + "\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ac\u0003\u00ac\u0003", + "\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003", + "\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003", + "\u00af\u0003\u00af\u0003\u00af\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", + "\u00b0\u0003\u00b0\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", + "\u00b5\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003", + "\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003", + "\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003", + "\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003", + "\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003", + "\u00b8\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003", + "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c4\u0003\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003", + "\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c8\u0003", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003", + "\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003", + "\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003", + "\u00d4\u0003\u00d4\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003", + "\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003", + "\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", + "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", + "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003", + "\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003", + "\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e4\u0003\u00e4\u0003", + "\u00e4\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003", + "\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003", + "\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", + "\u00ea\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003", + "\u00eb\u0003\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ed\u0003", + "\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ee\u0003", + "\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ef\u0003", + "\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003", + "\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003", + "\u00f1\u0003\u00f1\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003", + "\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f3\u0003\u00f3\u0003", + "\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003", + "\u00f3\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003", + "\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", + "\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003", + "\u00f6\u0003\u00f6\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003", + "\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003", + "\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003", + "\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003", + "\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fb\u0003", + "\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003", + "\u00fb\u0003\u00fb\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fd\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00ff\u0003", + "\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003", + "\u00ff\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003", + "\u0100\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0103\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0003\u0106\u0003\u0106\u0003\u0107\u0003\u0107\u0003", + "\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003", + "\u0107\u0003\u0107\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003", + "\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003", + "\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010e\u0003", + "\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003", + "\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0112\u0003\u0112\u0003", + "\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003", + "\u0112\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003", + "\u0113\u0003\u0114\u0003\u0114\u0003\u0114\u0003\u0114\u0003\u0114\u0003", + "\u0114\u0003\u0114\u0003\u0114\u0003\u0115\u0003\u0115\u0003\u0115\u0003", + "\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003", + "\u0117\u0003\u0117\u0003\u0117\u0003\u0118\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u0119\u0003\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0003", + "\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011b\u0003", + "\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003", + "\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003", + "\u011c\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003", + "\u011d\u0003\u011d\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003", + "\u011e\u0003\u011e\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003", + "\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u0120\u0003", + "\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003", + "\u0123\u0003\u0123\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003", + "\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003", + "\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0127\u0003", + "\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0003\u0127\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003", + "\u0128\u0003\u0128\u0003\u0128\u0003\u0129\u0003\u0129\u0003\u0129\u0003", + "\u0129\u0003\u0129\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003", + "\u012a\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003", + "\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003", + "\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012d\u0003\u012d\u0003", + "\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012e\u0003", + "\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0137\u0003\u0137\u0003\u0137\u0003", + "\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003", + "\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0138\u0003\u0138\u0003", + "\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003", + "\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u0139\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013b\u0003", + "\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013d\u0003\u013d\u0003", + "\u013d\u0003\u013d\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003", + "\u013e\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u0140\u0003\u0140\u0003", + "\u0140\u0003\u0140\u0003\u0140\u0003\u0141\u0003\u0141\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003", + "\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014b\u0003\u014b\u0003", + "\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003", + "\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014c\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003", + "\u014e\u0003\u014e\u0003\u014e\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0150\u0003\u0151\u0003\u0151\u0003\u0151\u0003", + "\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003", + "\u0151\u0003\u0151\u0003\u0151\u0003\u0152\u0003\u0152\u0003\u0152\u0003", + "\u0152\u0003\u0152\u0003\u0152\u0003\u0153\u0003\u0153\u0003\u0153\u0003", + "\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003", + "\u0153\u0003\u0153\u0003\u0153\u0003\u0154\u0003\u0154\u0003\u0154\u0003", + "\u0154\u0003\u0154\u0003\u0155\u0003\u0155\u0003\u0155\u0003\u0155\u0003", + "\u0155\u0003\u0155\u0003\u0155\u0003\u0156\u0003\u0156\u0003\u0156\u0003", + "\u0156\u0003\u0157\u0003\u0157\u0003\u0157\u0003\u0157\u0003\u0157\u0003", + "\u0157\u0003\u0157\u0003\u0157\u0003\u0157\u0003\u0158\u0003\u0158\u0003", + "\u0158\u0003\u0158\u0003\u0158\u0003\u0159\u0003\u0159\u0003\u0159\u0003", + "\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015c\u0003\u015c\u0003\u015c\u0003\u015c\u0003", + "\u015c\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003", + "\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003\u015d\u0003", + "\u015d\u0003\u015e\u0003\u015e\u0003\u015e\u0003\u015e\u0003\u015e\u0003", + "\u015e\u0003\u015e\u0003\u015e\u0003\u015e\u0003\u015f\u0003\u015f\u0003", + "\u015f\u0003\u015f\u0003\u015f\u0003\u015f\u0003\u015f\u0003\u015f\u0003", + "\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003", + "\u0160\u0003\u0160\u0003\u0160\u0003\u0161\u0003\u0161\u0003\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0163\u0003\u0163\u0003\u0163\u0003", + "\u0163\u0003\u0163\u0003\u0163\u0003\u0164\u0003\u0164\u0003\u0164\u0003", + "\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0165\u0003\u0165\u0003", + "\u0165\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0166\u0003", + "\u0166\u0003\u0166\u0003\u0166\u0003\u0166\u0003\u0166\u0003\u0166\u0003", + "\u0166\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003", + "\u0167\u0003\u0167\u0003\u0168\u0003\u0168\u0003\u0168\u0003\u0168\u0003", + "\u0168\u0003\u0168\u0003\u0168\u0003\u0169\u0003\u0169\u0003\u0169\u0003", + "\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003", + "\u0169\u0003\u0169\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016c\u0003\u016c\u0003", + "\u016c\u0003\u016c\u0003\u016c\u0003\u016d\u0003\u016d\u0003\u016d\u0003", + "\u016d\u0003\u016d\u0003\u016e\u0003\u016e\u0003\u016e\u0003\u016e\u0003", + "\u016e\u0003\u016e\u0003\u016e\u0003\u016f\u0003\u016f\u0003\u016f\u0003", + "\u016f\u0003\u016f\u0003\u016f\u0003\u016f\u0003\u016f\u0003\u0170\u0003", + "\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003", + "\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003\u0170\u0003", + "\u0170\u0003\u0170\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003", + "\u0171\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003", + "\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003", + "\u0173\u0003\u0173\u0003\u0173\u0003\u0173\u0003\u0173\u0003\u0173\u0003", + "\u0173\u0003\u0173\u0003\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003", + "\u0174\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003", + "\u0175\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003", + "\u0176\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0177\u0003", + "\u0177\u0003\u0177\u0003\u0177\u0003\u0178\u0003\u0178\u0003\u0178\u0003", + "\u0178\u0003\u0178\u0003\u0179\u0003\u0179\u0003\u0179\u0003\u0179\u0003", + "\u0179\u0003\u0179\u0003\u0179\u0003\u017a\u0003\u017a\u0003\u017a\u0003", + "\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017b\u0003", + "\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003", + "\u017b\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003", + "\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017d\u0003", + "\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003", + "\u017d\u0003\u017d\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0003\u017f\u0003\u017f\u0003\u017f\u0003", + "\u017f\u0003\u017f\u0003\u017f\u0003\u017f\u0003\u0180\u0003\u0180\u0003", + "\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003", + "\u0180\u0003\u0180\u0003\u0180\u0003\u0181\u0003\u0181\u0003\u0181\u0003", + "\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0003\u0182\u0003\u0182\u0003", + "\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003", + "\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003", + "\u0183\u0003\u0183\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003", + "\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0185\u0003\u0185\u0003", + "\u0185\u0003\u0185\u0003\u0185\u0003\u0185\u0003\u0185\u0003\u0185\u0003", + "\u0186\u0003\u0186\u0003\u0186\u0003\u0186\u0003\u0186\u0003\u0186\u0003", + "\u0186\u0003\u0186\u0003\u0186\u0003\u0187\u0003\u0187\u0003\u0187\u0003", + "\u0187\u0003\u0187\u0003\u0187\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003", + "\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018a\u0003\u018b\u0003", + "\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0003", + "\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003\u018c\u0003", + "\u018c\u0003\u018c\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0003\u018d\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003", + "\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0003", + "\u018e\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003", + "\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003", + "\u018f\u0003\u018f\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003", + "\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003", + "\u0190\u0003\u0190\u0003\u0190\u0003\u0190\u0003\u0191\u0003\u0191\u0003", + "\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003", + "\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003\u0191\u0003", + "\u0191\u0003\u0191\u0003\u0192\u0003\u0192\u0003\u0192\u0003\u0192\u0003", + "\u0192\u0003\u0192\u0003\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003", + "\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003\u0193\u0003", + "\u0193\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0195\u0003\u0195\u0003", + "\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0196\u0003\u0196\u0003", + "\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003\u0196\u0003", + "\u0196\u0003\u0196\u0003\u0196\u0003\u0197\u0003\u0197\u0003\u0197\u0003", + "\u0197\u0003\u0197\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003", + "\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003", + "\u0198\u0003\u0198\u0003\u0198\u0003\u0199\u0003\u0199\u0003\u0199\u0003", + "\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003", + "\u0199\u0003\u0199\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019b\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003\u019c\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003", + "\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019d\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003", + "\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a5\u0003\u01a5\u0003", + "\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003", + "\u01a6\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003", + "\u01a7\u0003\u01a7\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a8\u0003", + "\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003\u01aa\u0003", + "\u01aa\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ab\u0003\u01ac\u0003", + "\u01ac\u0003\u01ac\u0003\u01ac\u0005\u01ac\u1722\n\u01ac\u0003\u01ac", + "\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ac\u0003\u01ad\u0003\u01ad", + "\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad", + "\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae\u0003\u01ae", + "\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af", + "\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af", + "\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01b0", + "\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0", + "\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b0", + "\u0003\u01b0\u0003\u01b0\u0003\u01b0\u0003\u01b1\u0003\u01b1\u0003\u01b1", + "\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003\u01b1", + "\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2", + "\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2\u0003\u01b2", + "\u0003\u01b2\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3", + "\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b4\u0003\u01b4\u0003\u01b4", + "\u0003\u01b4\u0003\u01b4\u0003\u01b4\u0003\u01b4\u0003\u01b4\u0003\u01b4", + "\u0003\u01b4\u0003\u01b4\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5", + "\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5", + "\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5", + "\u0003\u01b5\u0003\u01b5\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7", + "\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7", + "\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7", + "\u0003\u01b7\u0003\u01b7\u0003\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b8", + "\u0003\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b9\u0003\u01b9\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01ba\u0003\u01ba\u0003\u01ba", + "\u0003\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01ba\u0003\u01bb", + "\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb", + "\u0003\u01bb\u0003\u01bc\u0003\u01bc\u0003\u01bc\u0003\u01bc\u0003\u01bc", + "\u0003\u01bc\u0003\u01bc\u0003\u01bd\u0003\u01bd\u0003\u01bd\u0003\u01bd", + "\u0003\u01bd\u0003\u01bd\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01be", + "\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01be\u0003\u01be", + "\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf", + "\u0003\u01bf\u0003\u01bf\u0003\u01c0\u0003\u01c0\u0003\u01c0\u0003\u01c0", + "\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1", + "\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c1\u0003\u01c2", + "\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2", + "\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2", + "\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2", + "\u0003\u01c2\u0003\u01c2\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3", + "\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3", + "\u0003\u01c3\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4", + "\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4", + "\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c5\u0003\u01c5\u0003\u01c5", + "\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5", + "\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5", + "\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003\u01c5", + "\u0003\u01c5\u0003\u01c5\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6", + "\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6", + "\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0003\u01c7", + "\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c9\u0003\u01c9", + "\u0003\u01c9\u0003\u01c9\u0003\u01c9\u0003\u01c9\u0003\u01c9\u0003\u01c9", + "\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003\u01ca", + "\u0003\u01ca\u0003\u01ca\u0003\u01ca\u0003\u01cb\u0003\u01cb\u0003\u01cb", + "\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb", + "\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cc", + "\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0003\u01cd\u0003\u01cd\u0003\u01cd", + "\u0003\u01cd\u0003\u01cd\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce", + "\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce", + "\u0003\u01ce\u0003\u01ce\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf", + "\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf\u0003\u01cf", + "\u0003\u01cf\u0003\u01cf\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0", + "\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0003\u01d0", + "\u0003\u01d0\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1", + "\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1\u0003\u01d1", + "\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2", + "\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2", + "\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2", + "\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2\u0003\u01d2", + "\u0003\u01d2\u0003\u01d2\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3", + "\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3", + "\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3\u0003\u01d3", + "\u0003\u01d3\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003\u01d4\u0003\u01d4", + "\u0003\u01d4\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5", + "\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5", + "\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5", + "\u0003\u01d5\u0003\u01d5\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d6", + "\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d7\u0003\u01d7", + "\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7", + "\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d8\u0003\u01d8\u0003\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d9\u0003\u01d9\u0003\u01d9\u0003\u01d9", + "\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da", + "\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da\u0003\u01da", + "\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01dc", + "\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0003\u01dd\u0003\u01dd", + "\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01de", + "\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de", + "\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de", + "\u0003\u01de\u0003\u01de\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df", + "\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01e0\u0003\u01e0", + "\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0", + "\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0", + "\u0003\u01e0\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1", + "\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0003\u01e2\u0003\u01e2", + "\u0003\u01e2\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e3", + "\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e3\u0003\u01e4\u0003\u01e4", + "\u0003\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e4\u0003\u01e4", + "\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e5", + "\u0003\u01e5\u0003\u01e5\u0003\u01e5\u0003\u01e6\u0003\u01e6\u0003\u01e6", + "\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6", + "\u0003\u01e6\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7\u0003\u01e7", + "\u0003\u01e7\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003\u01e8\u0003\u01e8", + "\u0003\u01e8\u0003\u01e8\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9", + "\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9", + "\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01e9\u0003\u01ea\u0003\u01ea", + "\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea", + "\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea\u0003\u01ea", + "\u0003\u01ea\u0003\u01ea\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb", + "\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb\u0003\u01eb", + "\u0003\u01eb\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec", + "\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec\u0003\u01ec", + "\u0003\u01ec\u0003\u01ec\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed", + "\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed", + "\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed", + "\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed", + "\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ed\u0003\u01ee", + "\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ee", + "\u0003\u01ee\u0003\u01ee\u0003\u01ee\u0003\u01ef\u0003\u01ef\u0003\u01ef", + "\u0003\u01ef\u0003\u01ef\u0003\u01ef\u0003\u01ef\u0003\u01ef\u0003\u01ef", + "\u0003\u01ef\u0003\u01ef\u0003\u01f0\u0003\u01f0\u0003\u01f0\u0003\u01f0", + "\u0003\u01f0\u0003\u01f0\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f1", + "\u0003\u01f1\u0003\u01f1\u0003\u01f1\u0003\u01f2\u0003\u01f2\u0003\u01f2", + "\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f2", + "\u0003\u01f2\u0003\u01f2\u0003\u01f2\u0003\u01f3\u0003\u01f3\u0003\u01f3", + "\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3\u0003\u01f3", + "\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4", + "\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f4", + "\u0003\u01f4\u0003\u01f4\u0003\u01f4\u0003\u01f5\u0003\u01f5\u0003\u01f5", + "\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5", + "\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f5\u0003\u01f6", + "\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6\u0003\u01f6", + "\u0003\u01f6\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7", + "\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7", + "\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7", + "\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7\u0003\u01f7", + "\u0003\u01f7\u0003\u01f8\u0003\u01f8\u0003\u01f8\u0003\u01f8\u0003\u01f8", + "\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9", + "\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9\u0003\u01f9", + "\u0003\u01f9\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa", + "\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fa\u0003\u01fb", + "\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb", + "\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fb\u0003\u01fc\u0003\u01fc", + "\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003\u01fc\u0003\u01fc", + "\u0003\u01fc\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd", + "\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd\u0003\u01fd", + "\u0003\u01fe\u0003\u01fe\u0003\u01fe\u0003\u01fe\u0003\u01fe\u0003\u01fe", + "\u0003\u01fe\u0003\u01ff\u0003\u01ff\u0003\u01ff\u0003\u01ff\u0003\u01ff", + "\u0003\u01ff\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200", + "\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200\u0003\u0200", + "\u0003\u0200\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0201", + "\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0201\u0003\u0202", + "\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0202\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203\u0003\u0203", + "\u0003\u0204\u0003\u0204\u0003\u0204\u0003\u0204\u0003\u0204\u0003\u0204", + "\u0003\u0204\u0003\u0205\u0003\u0205\u0003\u0205\u0003\u0205\u0003\u0205", + "\u0003\u0205\u0003\u0205\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206", + "\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0206", + "\u0003\u0206\u0003\u0206\u0003\u0206\u0003\u0207\u0003\u0207\u0003\u0207", + "\u0003\u0207\u0003\u0207\u0003\u0207\u0003\u0207\u0003\u0207\u0003\u0207", + "\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0208", + "\u0003\u0208\u0003\u0208\u0003\u0208\u0003\u0209\u0003\u0209\u0003\u0209", + "\u0003\u020a\u0003\u020a\u0003\u020a\u0003\u020a\u0003\u020a\u0003\u020a", + "\u0003\u020a\u0003\u020a\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b", + "\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b\u0003\u020b", + "\u0003\u020b\u0003\u020c\u0003\u020c\u0003\u020c\u0003\u020c\u0003\u020c", + "\u0003\u020c\u0003\u020c\u0003\u020d\u0003\u020d\u0003\u020d\u0003\u020e", + "\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e", + "\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e", + "\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e\u0003\u020e", + "\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u020f", + "\u0003\u020f\u0003\u020f\u0003\u020f\u0003\u0210\u0003\u0210\u0003\u0210", + "\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0210", + "\u0003\u0210\u0003\u0210\u0003\u0210\u0003\u0211\u0003\u0211\u0003\u0211", + "\u0003\u0211\u0003\u0211\u0003\u0212\u0003\u0212\u0003\u0212\u0003\u0212", + "\u0003\u0212\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213", + "\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213", + "\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213", + "\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0213\u0003\u0214\u0003\u0214", + "\u0003\u0214\u0003\u0214\u0003\u0214\u0003\u0215\u0003\u0215\u0003\u0215", + "\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215", + "\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215", + "\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215\u0003\u0215", + "\u0003\u0215\u0003\u0216\u0003\u0216\u0003\u0216\u0003\u0216\u0003\u0216", + "\u0003\u0216\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217", + "\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217", + "\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0217\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218\u0003\u0218", + "\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219", + "\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u0219\u0003\u021a\u0003\u021a", + "\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a", + "\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021a\u0003\u021b\u0003\u021b", + "\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021b", + "\u0003\u021b\u0003\u021b\u0003\u021b\u0003\u021c\u0003\u021c\u0003\u021c", + "\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c", + "\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c", + "\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021c\u0003\u021d", + "\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d", + "\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021d\u0003\u021e", + "\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021e", + "\u0003\u021e\u0003\u021e\u0003\u021e\u0003\u021f\u0003\u021f\u0003\u021f", + "\u0003\u021f\u0003\u021f\u0003\u021f\u0003\u0220\u0003\u0220\u0003\u0220", + "\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0220", + "\u0003\u0220\u0003\u0220\u0003\u0220\u0003\u0221\u0003\u0221\u0003\u0221", + "\u0003\u0221\u0003\u0221\u0003\u0221\u0003\u0221\u0003\u0221\u0003\u0221", + "\u0003\u0222\u0003\u0222\u0003\u0222\u0003\u0222\u0003\u0223\u0003\u0223", + "\u0003\u0223\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224", + "\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0224\u0003\u0225", + "\u0003\u0225\u0003\u0225\u0003\u0225\u0003\u0226\u0003\u0226\u0003\u0226", + "\u0003\u0226\u0003\u0226\u0003\u0227\u0003\u0227\u0003\u0227\u0003\u0228", + "\u0003\u0228\u0003\u0228\u0003\u0228\u0003\u0228\u0003\u0229\u0003\u0229", + "\u0003\u0229\u0003\u0229\u0003\u0229\u0003\u0229\u0003\u0229\u0003\u0229", + "\u0003\u0229\u0003\u0229\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022a", + "\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022a\u0003\u022a", + "\u0003\u022a\u0003\u022b\u0003\u022b\u0003\u022b\u0003\u022b\u0003\u022b", + "\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c\u0003\u022c", + "\u0003\u022c\u0003\u022d\u0003\u022d\u0003\u022d\u0003\u022d\u0003\u022e", + "\u0003\u022e\u0003\u022e\u0003\u022e\u0003\u022e\u0003\u022f\u0003\u022f", + "\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u022f", + "\u0003\u022f\u0003\u022f\u0003\u022f\u0003\u0230\u0003\u0230\u0003\u0230", + "\u0003\u0230\u0003\u0230\u0003\u0231\u0003\u0231\u0003\u0231\u0003\u0231", + "\u0003\u0231\u0003\u0231\u0003\u0232\u0003\u0232\u0003\u0232\u0003\u0232", + "\u0003\u0232\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233", + "\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0233\u0003\u0234\u0003\u0234", + "\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234", + "\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0234\u0003\u0235", + "\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235", + "\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235\u0003\u0235", + "\u0003\u0235\u0003\u0235\u0003\u0236\u0003\u0236\u0003\u0236\u0003\u0236", + "\u0003\u0236\u0003\u0236\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0237", + "\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0237\u0003\u0238", + "\u0003\u0238\u0003\u0238\u0003\u0238\u0003\u0238\u0003\u0239\u0003\u0239", + "\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239", + "\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239\u0003\u0239", + "\u0003\u0239\u0003\u0239\u0003\u023a\u0003\u023a\u0003\u023a\u0003\u023a", + "\u0003\u023a\u0003\u023a\u0003\u023b\u0003\u023b\u0003\u023b\u0003\u023b", + "\u0003\u023b\u0003\u023c\u0003\u023c\u0003\u023c\u0003\u023c\u0003\u023d", + "\u0003\u023d\u0003\u023d\u0003\u023d\u0003\u023d\u0003\u023d\u0003\u023d", + "\u0003\u023e\u0003\u023e\u0003\u023e\u0003\u023e\u0003\u023e\u0003\u023f", + "\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f", + "\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f\u0003\u023f", + "\u0003\u0240\u0003\u0240\u0003\u0240\u0003\u0240\u0003\u0241\u0003\u0241", + "\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241", + "\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241\u0003\u0241", + "\u0003\u0241\u0003\u0241\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0242", + "\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0242\u0003\u0243\u0003\u0243", + "\u0003\u0243\u0003\u0243\u0003\u0243\u0003\u0243\u0003\u0243\u0003\u0243", + "\u0003\u0243\u0003\u0243\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244", + "\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244", + "\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244", + "\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0244\u0003\u0245\u0003\u0245", + "\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245", + "\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245", + "\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0245\u0003\u0246", + "\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246", + "\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246\u0003\u0246", + "\u0003\u0246\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247", + "\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247", + "\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247\u0003\u0247", + "\u0003\u0247\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248", + "\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248", + "\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248\u0003\u0248", + "\u0003\u0248\u0003\u0248\u0003\u0249\u0003\u0249\u0003\u0249\u0003\u0249", + "\u0003\u0249\u0003\u0249\u0003\u0249\u0003\u024a\u0003\u024a\u0003\u024a", + "\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a", + "\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024a\u0003\u024b\u0003\u024b", + "\u0003\u024b\u0003\u024b\u0003\u024b\u0003\u024b\u0003\u024b\u0003\u024b", + "\u0003\u024c\u0003\u024c\u0003\u024c\u0003\u024d\u0003\u024d\u0003\u024d", + "\u0003\u024d\u0003\u024d\u0003\u024d\u0003\u024d\u0003\u024e\u0003\u024e", + "\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e", + "\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e", + "\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e\u0003\u024e", + "\u0003\u024e\u0003\u024e\u0003\u024f\u0003\u024f\u0003\u024f\u0003\u024f", + "\u0003\u024f\u0003\u024f\u0003\u024f\u0003\u024f\u0003\u0250\u0003\u0250", + "\u0003\u0250\u0003\u0250\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251", + "\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251", + "\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251", + "\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251\u0003\u0251", + "\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252", + "\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252", + "\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0252\u0003\u0253\u0003\u0253", + "\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253", + "\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253", + "\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253\u0003\u0253", + "\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254", + "\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254", + "\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254\u0003\u0254", + "\u0003\u0254\u0003\u0255\u0003\u0255\u0003\u0255\u0003\u0255\u0003\u0255", + "\u0003\u0255\u0003\u0255\u0003\u0255\u0003\u0256\u0003\u0256\u0003\u0256", + "\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256", + "\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256\u0003\u0256", + "\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257", + "\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257", + "\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257", + "\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0257\u0003\u0258\u0003\u0258", + "\u0003\u0258\u0003\u0258\u0003\u0258\u0003\u0259\u0003\u0259\u0003\u0259", + "\u0003\u0259\u0003\u0259\u0003\u0259\u0003\u0259\u0003\u025a\u0003\u025a", + "\u0003\u025a\u0003\u025a\u0003\u025a\u0003\u025b\u0003\u025b\u0003\u025b", + "\u0003\u025b\u0003\u025b\u0003\u025b\u0003\u025b\u0003\u025b\u0003\u025b", + "\u0003\u025b\u0003\u025b\u0003\u025c\u0003\u025c\u0003\u025c\u0003\u025c", + "\u0003\u025c\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d", + "\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d", + "\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025d\u0003\u025e", + "\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e", + "\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025e\u0003\u025f", + "\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f", + "\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u025f\u0003\u0260\u0003\u0260", + "\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260", + "\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0260\u0003\u0261", + "\u0003\u0261\u0003\u0261\u0003\u0261\u0003\u0261\u0003\u0262\u0003\u0262", + "\u0003\u0262\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263", + "\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263\u0003\u0263", + "\u0003\u0263\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0264", + "\u0003\u0264\u0003\u0264\u0003\u0264\u0003\u0265\u0003\u0265\u0003\u0265", + "\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0265\u0003\u0266", + "\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0266\u0003\u0267", + "\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0267\u0003\u0267", + "\u0003\u0267\u0003\u0267\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268", + "\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268", + "\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268", + "\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268\u0003\u0268", + "\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269", + "\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269\u0003\u0269", + "\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a", + "\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026a\u0003\u026b", + "\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b\u0003\u026b", + "\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c\u0003\u026c", + "\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026d", + "\u0003\u026d\u0003\u026d\u0003\u026d\u0003\u026e\u0003\u026e\u0003\u026e", + "\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026e\u0003\u026f\u0003\u026f", + "\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f", + "\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f", + "\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u026f\u0003\u0270", + "\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270\u0003\u0270", + "\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271\u0003\u0271", + "\u0003\u0271\u0003\u0271\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0272", + "\u0003\u0272\u0003\u0272\u0003\u0272\u0003\u0273\u0003\u0273\u0003\u0273", + "\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0273", + "\u0003\u0273\u0003\u0273\u0003\u0273\u0003\u0274\u0003\u0274\u0003\u0274", + "\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0274\u0003\u0275\u0003\u0275", + "\u0003\u0275\u0003\u0275\u0003\u0275\u0003\u0276\u0003\u0276\u0003\u0276", + "\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276", + "\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0276\u0003\u0277", + "\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277", + "\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0277\u0003\u0278\u0003\u0278", + "\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278\u0003\u0278", + "\u0003\u0278\u0003\u0279\u0003\u0279\u0003\u0279\u0003\u0279\u0003\u027a", + "\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a\u0003\u027a", + "\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027b", + "\u0003\u027b\u0003\u027b\u0003\u027b\u0003\u027c\u0003\u027c\u0003\u027c", + "\u0003\u027c\u0003\u027c\u0003\u027c\u0003\u027d\u0003\u027d\u0003\u027d", + "\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027d", + "\u0003\u027d\u0003\u027d\u0003\u027d\u0003\u027e\u0003\u027e\u0003\u027e", + "\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e", + "\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e\u0003\u027e", + "\u0003\u027e\u0003\u027e\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u027f", + "\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u027f\u0003\u027f", + "\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280", + "\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0280\u0003\u0281", + "\u0003\u0281\u0003\u0281\u0003\u0281\u0003\u0281\u0003\u0281\u0003\u0281", + "\u0003\u0281\u0003\u0282\u0003\u0282\u0003\u0282\u0003\u0282\u0003\u0282", + "\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283", + "\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283", + "\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283", + "\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283\u0003\u0283", + "\u0003\u0284\u0003\u0284\u0003\u0284\u0003\u0284\u0003\u0284\u0003\u0285", + "\u0003\u0285\u0003\u0285\u0003\u0285\u0003\u0285\u0003\u0286\u0003\u0286", + "\u0003\u0286\u0003\u0286\u0003\u0286\u0003\u0286\u0003\u0286\u0003\u0286", + "\u0003\u0286\u0003\u0286\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287", + "\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0287", + "\u0003\u0287\u0003\u0287\u0003\u0287\u0003\u0288\u0003\u0288\u0003\u0288", + "\u0003\u0288\u0003\u0288\u0003\u0288\u0003\u0289\u0003\u0289\u0003\u0289", + "\u0003\u0289\u0003\u0289\u0003\u0289\u0003\u0289\u0003\u0289\u0003\u0289", + "\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a", + "\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028a", + "\u0003\u028a\u0003\u028a\u0003\u028a\u0003\u028b\u0003\u028b\u0003\u028b", + "\u0003\u028b\u0003\u028b\u0003\u028b\u0003\u028b\u0003\u028b\u0003\u028c", + "\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c", + "\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028c\u0003\u028d", + "\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028d", + "\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028d\u0003\u028e\u0003\u028e", + "\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e", + "\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e\u0003\u028e", + "\u0003\u028e\u0003\u028f\u0003\u028f\u0003\u028f\u0003\u028f\u0003\u028f", + "\u0003\u028f\u0003\u028f\u0003\u028f\u0003\u028f\u0003\u0290\u0003\u0290", + "\u0003\u0290\u0003\u0290\u0003\u0290\u0003\u0290\u0003\u0290\u0003\u0290", + "\u0003\u0290\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291", + "\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291", + "\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291\u0003\u0291", + "\u0003\u0291\u0003\u0292\u0003\u0292\u0003\u0292\u0003\u0292\u0003\u0292", + "\u0003\u0292\u0003\u0293\u0003\u0293\u0003\u0293\u0003\u0293\u0003\u0293", + "\u0003\u0293\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294", + "\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294\u0003\u0294", + "\u0003\u0294\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295", + "\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295", + "\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295\u0003\u0295", + "\u0003\u0295\u0003\u0296\u0003\u0296\u0003\u0296\u0003\u0296\u0003\u0296", + "\u0003\u0296\u0003\u0297\u0003\u0297\u0003\u0297\u0003\u0297\u0003\u0297", + "\u0003\u0298\u0003\u0298\u0003\u0298\u0003\u0298\u0003\u0299\u0003\u0299", + "\u0003\u0299\u0003\u0299\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029a", + "\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029a\u0003\u029b\u0003\u029b", + "\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b", + "\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b", + "\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b", + "\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029b\u0003\u029c\u0003\u029c", + "\u0003\u029c\u0003\u029c\u0003\u029c\u0003\u029c\u0003\u029c\u0003\u029c", + "\u0003\u029c\u0003\u029c\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d", + "\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d", + "\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d", + "\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d\u0003\u029d", + "\u0003\u029d\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e", + "\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e\u0003\u029e", + "\u0003\u029f\u0003\u029f\u0003\u029f\u0003\u029f\u0003\u029f\u0003\u029f", + "\u0003\u029f\u0003\u029f\u0003\u029f\u0003\u02a0\u0003\u02a0\u0003\u02a0", + "\u0003\u02a0\u0003\u02a0\u0003\u02a0\u0003\u02a0\u0003\u02a0\u0003\u02a1", + "\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a1\u0003\u02a1", + "\u0003\u02a1\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2", + "\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a2\u0003\u02a3", + "\u0003\u02a3\u0003\u02a3\u0003\u02a3\u0003\u02a3\u0003\u02a3\u0003\u02a3", + "\u0003\u02a3\u0003\u02a3\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4", + "\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4", + "\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a4", + "\u0003\u02a4\u0003\u02a4\u0003\u02a4\u0003\u02a5\u0003\u02a5\u0003\u02a5", + "\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5\u0003\u02a5", + "\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a6\u0003\u02a6", + "\u0003\u02a6\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7", + "\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7", + "\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a7", + "\u0003\u02a7\u0003\u02a7\u0003\u02a7\u0003\u02a8\u0003\u02a8\u0003\u02a8", + "\u0003\u02a8\u0003\u02a8\u0003\u02a8\u0003\u02a8\u0003\u02a9\u0003\u02a9", + "\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02a9", + "\u0003\u02a9\u0003\u02a9\u0003\u02a9\u0003\u02aa\u0003\u02aa\u0003\u02aa", + "\u0003\u02aa\u0003\u02aa\u0003\u02aa\u0003\u02aa\u0003\u02aa\u0003\u02aa", + "\u0003\u02aa\u0003\u02aa\u0003\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ab", + "\u0003\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ab\u0003\u02ac\u0003\u02ac", + "\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac", + "\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac", + "\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac", + "\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ac\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad\u0003\u02ad", + "\u0003\u02ad\u0003\u02ad\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae", + "\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02ae\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af\u0003\u02af", + "\u0003\u02af\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0", + "\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0", + "\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0\u0003\u02b0", + "\u0003\u02b0\u0003\u02b0\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b1", + "\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b1\u0003\u02b2", + "\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2", + "\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2", + "\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2", + "\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2\u0003\u02b2", + "\u0003\u02b2\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3", + "\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3", + "\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b3\u0003\u02b4", + "\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b4", + "\u0003\u02b4\u0003\u02b4\u0003\u02b4\u0003\u02b5\u0003\u02b5\u0003\u02b5", + "\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b5\u0003\u02b6\u0003\u02b6", + "\u0003\u02b6\u0003\u02b6\u0003\u02b6\u0003\u02b7\u0003\u02b7\u0003\u02b7", + "\u0003\u02b7\u0003\u02b7\u0003\u02b7\u0003\u02b8\u0003\u02b8\u0003\u02b8", + "\u0003\u02b8\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9", + "\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9\u0003\u02b9", + "\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba\u0003\u02ba", + "\u0003\u02ba\u0003\u02ba\u0003\u02bb\u0003\u02bb\u0003\u02bb\u0003\u02bb", + "\u0003\u02bb\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc\u0003\u02bc", + "\u0003\u02bc\u0003\u02bc\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd", + "\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd", + "\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02bd\u0003\u02be\u0003\u02be", + "\u0003\u02be\u0003\u02be\u0003\u02be\u0003\u02be\u0003\u02be\u0003\u02bf", + "\u0003\u02bf\u0003\u02bf\u0003\u02bf\u0003\u02bf\u0003\u02bf\u0003\u02bf", + "\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0", + "\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0\u0003\u02c0", + "\u0003\u02c0\u0003\u02c1\u0003\u02c1\u0003\u02c1\u0003\u02c1\u0003\u02c1", + "\u0003\u02c1\u0003\u02c1\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2", + "\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2\u0003\u02c2", + "\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3", + "\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c3", + "\u0003\u02c3\u0003\u02c3\u0003\u02c3\u0003\u02c4\u0003\u02c4\u0003\u02c4", + "\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4", + "\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4\u0003\u02c4", + "\u0003\u02c5\u0003\u02c5\u0003\u02c5\u0003\u02c5\u0003\u02c5\u0003\u02c5", + "\u0003\u02c5\u0003\u02c5\u0003\u02c6\u0003\u02c6\u0003\u02c6\u0003\u02c6", + "\u0003\u02c6\u0003\u02c6\u0003\u02c6\u0003\u02c7\u0003\u02c7\u0003\u02c7", + "\u0003\u02c7\u0003\u02c7\u0003\u02c7\u0003\u02c7\u0003\u02c7\u0003\u02c7", + "\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8", + "\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8\u0003\u02c8", + "\u0003\u02c8\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9", + "\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9\u0003\u02c9", + "\u0003\u02c9\u0003\u02c9\u0003\u02ca\u0003\u02ca\u0003\u02ca\u0003\u02ca", + "\u0003\u02ca\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb", + "\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb", + "\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cb\u0003\u02cc\u0003\u02cc", + "\u0003\u02cc\u0003\u02cc\u0003\u02cc\u0003\u02cd\u0003\u02cd\u0003\u02cd", + "\u0003\u02cd\u0003\u02cd\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce", + "\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02ce\u0003\u02cf", + "\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf", + "\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf\u0003\u02cf", + "\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0", + "\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0", + "\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d0\u0003\u02d1\u0003\u02d1", + "\u0003\u02d1\u0003\u02d1\u0003\u02d1\u0003\u02d1\u0003\u02d1\u0003\u02d1", + "\u0003\u02d1\u0003\u02d2\u0003\u02d2\u0003\u02d2\u0003\u02d2\u0003\u02d2", + "\u0003\u02d2\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d3", + "\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d3\u0003\u02d4\u0003\u02d4", + "\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4\u0003\u02d4", + "\u0003\u02d4\u0003\u02d4\u0003\u02d5\u0003\u02d5\u0003\u02d5\u0003\u02d5", + "\u0003\u02d5\u0003\u02d5\u0003\u02d5\u0003\u02d6\u0003\u02d6\u0003\u02d6", + "\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d6", + "\u0003\u02d6\u0003\u02d6\u0003\u02d6\u0003\u02d7\u0003\u02d7\u0003\u02d7", + "\u0003\u02d7\u0003\u02d7\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d8", + "\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d8\u0003\u02d9", + "\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9\u0003\u02d9", + "\u0003\u02d9\u0003\u02d9\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da", + "\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da", + "\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da", + "\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02da", + "\u0003\u02da\u0003\u02da\u0003\u02da\u0003\u02db\u0003\u02db\u0003\u02db", + "\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02db\u0003\u02dc", + "\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc", + "\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dc\u0003\u02dd\u0003\u02dd", + "\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02dd\u0003\u02de", + "\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de", + "\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de\u0003\u02de", + "\u0003\u02df\u0003\u02df\u0003\u02df\u0003\u02df\u0003\u02df\u0003\u02df", + "\u0003\u02df\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0", + "\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0\u0003\u02e0", + "\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1\u0003\u02e1", + "\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2\u0003\u02e2", + "\u0003\u02e2\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3", + "\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e3\u0003\u02e4\u0003\u02e4", + "\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e4", + "\u0003\u02e4\u0003\u02e4\u0003\u02e4\u0003\u02e5\u0003\u02e5\u0003\u02e5", + "\u0003\u02e5\u0003\u02e5\u0003\u02e5\u0003\u02e6\u0003\u02e6\u0003\u02e6", + "\u0003\u02e6\u0003\u02e6\u0003\u02e6\u0003\u02e6\u0003\u02e6\u0003\u02e7", + "\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7", + "\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7\u0003\u02e7", + "\u0003\u02e8\u0003\u02e8\u0003\u02e8\u0003\u02e8\u0003\u02e9\u0003\u02e9", + "\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9\u0003\u02e9", + "\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea", + "\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02ea\u0003\u02eb\u0003\u02eb", + "\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb", + "\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb", + "\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02eb\u0003\u02ec", + "\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec\u0003\u02ec", + "\u0003\u02ec\u0003\u02ed\u0003\u02ed\u0003\u02ed\u0003\u02ed\u0003\u02ed", + "\u0003\u02ed\u0003\u02ed\u0003\u02ee\u0003\u02ee\u0003\u02ee\u0003\u02ee", + "\u0003\u02ee\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef", + "\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef", + "\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef", + "\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02ef\u0003\u02f0\u0003\u02f0", + "\u0003\u02f0\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1", + "\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1\u0003\u02f1", + "\u0003\u02f1\u0003\u02f1\u0003\u02f2\u0003\u02f2\u0003\u02f2\u0003\u02f2", + "\u0003\u02f2\u0003\u02f2\u0003\u02f3\u0003\u02f3\u0003\u02f3\u0003\u02f3", + "\u0003\u02f3\u0003\u02f4\u0003\u02f4\u0003\u02f4\u0003\u02f4\u0003\u02f4", + "\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f5\u0003\u02f5", + "\u0003\u02f5\u0003\u02f5\u0003\u02f6\u0003\u02f6\u0003\u02f6\u0003\u02f6", + "\u0003\u02f6\u0003\u02f6\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f7", + "\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f7\u0003\u02f8\u0003\u02f8", + "\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8", + "\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8", + "\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8\u0003\u02f8", + "\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9", + "\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9", + "\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9", + "\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02f9\u0003\u02fa\u0003\u02fa", + "\u0003\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fa", + "\u0003\u02fa\u0003\u02fa\u0003\u02fa\u0003\u02fb\u0003\u02fb\u0003\u02fb", + "\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb", + "\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb\u0003\u02fb", + "\u0003\u02fb\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc", + "\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc\u0003\u02fc", + "\u0003\u02fc\u0003\u02fd\u0003\u02fd\u0003\u02fd\u0003\u02fd\u0003\u02fe", + "\u0003\u02fe\u0003\u02fe\u0003\u02fe\u0003\u02fe\u0003\u02ff\u0003\u02ff", + "\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff", + "\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff", + "\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff\u0003\u02ff", + "\u0003\u02ff\u0003\u02ff\u0003\u0300\u0003\u0300\u0003\u0300\u0003\u0300", + "\u0003\u0300\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301", + "\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301\u0003\u0301", + "\u0003\u0301\u0003\u0301\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302", + "\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302\u0003\u0302", + "\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303", + "\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303\u0003\u0303", + "\u0003\u0304\u0003\u0304\u0003\u0304\u0003\u0304\u0003\u0304\u0003\u0304", + "\u0003\u0304\u0003\u0304\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305", + "\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305\u0003\u0305", + "\u0003\u0306\u0003\u0306\u0003\u0306\u0003\u0306\u0003\u0307\u0003\u0307", + "\u0003\u0307\u0003\u0307\u0003\u0307\u0003\u0307\u0003\u0308\u0003\u0308", + "\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308\u0003\u0308", + "\u0003\u0308\u0003\u0308\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309", + "\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309\u0003\u0309", + "\u0003\u0309\u0003\u030a\u0003\u030a\u0003\u030a\u0003\u030a\u0003\u030a", + "\u0003\u030a\u0003\u030b\u0003\u030b\u0003\u030b\u0003\u030b\u0003\u030c", + "\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030c\u0003\u030d\u0003\u030d", + "\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d", + "\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d\u0003\u030d", + "\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e\u0003\u030e", + "\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u030f\u0003\u0310", + "\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310", + "\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0310", + "\u0003\u0310\u0003\u0310\u0003\u0310\u0003\u0311\u0003\u0311\u0003\u0311", + "\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311", + "\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311", + "\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311\u0003\u0311", + "\u0003\u0311\u0003\u0312\u0003\u0312\u0003\u0312\u0003\u0312\u0003\u0312", + "\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0313", + "\u0003\u0313\u0003\u0313\u0003\u0313\u0003\u0314\u0003\u0314\u0003\u0314", + "\u0003\u0314\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0315", + "\u0003\u0315\u0003\u0315\u0003\u0315\u0003\u0316\u0003\u0316\u0003\u0316", + "\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316", + "\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0316\u0003\u0317", + "\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0317", + "\u0003\u0317\u0003\u0317\u0003\u0317\u0003\u0318\u0003\u0318\u0003\u0318", + "\u0003\u0318\u0003\u0318\u0003\u0318\u0003\u0318\u0003\u0319\u0003\u0319", + "\u0003\u0319\u0003\u0319\u0003\u0319\u0003\u0319\u0003\u0319\u0003\u0319", + "\u0003\u031a\u0006\u031a\u2650\n\u031a\r\u031a\u000e\u031a\u2651\u0003", + "\u031a\u0003\u031a\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003", + "\u031b\u0007\u031b\u265b\n\u031b\f\u031b\u000e\u031b\u265e\u000b\u031b", + "\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031b\u0003\u031c", + "\u0003\u031c\u0003\u031c\u0003\u031c\u0007\u031c\u2669\n\u031c\f\u031c", + "\u000e\u031c\u266c\u000b\u031c\u0003\u031c\u0003\u031c\u0003\u031d\u0003", + "\u031d\u0006\u031d\u2672\n\u031d\r\u031d\u000e\u031d\u2673\u0003\u031d", + "\u0003\u031d\u0003\u031e\u0003\u031e\u0003\u031f\u0003\u031f\u0006\u031f", + "\u267c\n\u031f\r\u031f\u000e\u031f\u267d\u0003\u031f\u0003\u031f\u0003", + "\u0320\u0003\u0320\u0003\u0320\u0006\u0320\u2685\n\u0320\r\u0320\u000e", + "\u0320\u2686\u0003\u0321\u0006\u0321\u268a\n\u0321\r\u0321\u000e\u0321", + "\u268b\u0003\u0322\u0003\u0322\u0005\u0322\u2690\n\u0322\u0003\u0322", + "\u0003\u0322\u0007\u0322\u2694\n\u0322\f\u0322\u000e\u0322\u2697\u000b", + "\u0322\u0003\u0323\u0003\u0323\u0003\u0323\u0006\u0323\u269c\n\u0323", + "\r\u0323\u000e\u0323\u269d\u0003\u0323\u0003\u0323\u0003\u0323\u0003", + "\u0323\u0003\u0323\u0003\u0323\u0006\u0323\u26a6\n\u0323\r\u0323\u000e", + "\u0323\u26a7\u0003\u0323\u0003\u0323\u0006\u0323\u26ac\n\u0323\r\u0323", + "\u000e\u0323\u26ad\u0005\u0323\u26b0\n\u0323\u0003\u0323\u0005\u0323", + "\u26b3\n\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003\u0323\u0003", + "\u0324\u0003\u0324\u0006\u0324\u26bb\n\u0324\r\u0324\u000e\u0324\u26bc", + "\u0003\u0324\u0003\u0324\u0006\u0324\u26c1\n\u0324\r\u0324\u000e\u0324", + "\u26c2\u0005\u0324\u26c5\n\u0324\u0003\u0324\u0005\u0324\u26c8\n\u0324", + "\u0003\u0324\u0003\u0324\u0003\u0324\u0003\u0324\u0003\u0324\u0003\u0325", + "\u0005\u0325\u26d0\n\u0325\u0003\u0325\u0003\u0325\u0003\u0325\u0003", + "\u0325\u0007\u0325\u26d6\n\u0325\f\u0325\u000e\u0325\u26d9\u000b\u0325", + "\u0003\u0325\u0003\u0325\u0003\u0326\u0003\u0326\u0003\u0326\u0007\u0326", + "\u26e0\n\u0326\f\u0326\u000e\u0326\u26e3\u000b\u0326\u0003\u0327\u0003", + "\u0327\u0003\u0328\u0003\u0328\u0005\u0328\u26e9\n\u0328\u0003\u0328", + "\u0003\u0328\u0005\u0328\u26ed\n\u0328\u0003\u0328\u0006\u0328\u26f0", + "\n\u0328\r\u0328\u000e\u0328\u26f1\u0003\u0329\u0003\u0329\u0003\u032a", + "\u0003\u032a\u0003\u032b\u0003\u032b\u0003\u032c\u0003\u032c\u0003\u032d", + "\u0003\u032d\u0003\u032d\u0003\u032e\u0003\u032e\u0003\u032e\u0003\u032f", + "\u0003\u032f\u0003\u032f\u0003\u0330\u0003\u0330\u0003\u0330\u0003\u0331", + "\u0003\u0331\u0003\u0331\u0003\u0332\u0003\u0332\u0003\u0332\u0003\u0333", + "\u0003\u0333\u0003\u0333\u0003\u0334\u0003\u0334\u0003\u0334\u0003\u0335", + "\u0003\u0335\u0003\u0335\u0003\u0336\u0003\u0336\u0003\u0337\u0003\u0337", + "\u0003\u0338\u0003\u0338\u0003\u0339\u0003\u0339\u0003\u033a\u0003\u033a", + "\u0003\u033b\u0003\u033b\u0003\u033c\u0003\u033c\u0003\u033d\u0003\u033d", + "\u0003\u033e\u0003\u033e\u0003\u033f\u0003\u033f\u0003\u0340\u0003\u0340", + "\u0003\u0341\u0003\u0341\u0003\u0342\u0003\u0342\u0003\u0343\u0003\u0343", + "\u0003\u0344\u0003\u0344\u0003\u0345\u0003\u0345\u0003\u0346\u0003\u0346", + "\u0003\u0347\u0003\u0347\u0003\u0348\u0003\u0348\u0003\u0349\u0003\u0349", + "\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034a\u0003\u034b", + "\u0005\u034b\u2745\n\u034b\u0003\u034b\u0005\u034b\u2748\n\u034b\u0003", + "\u034b\u0003\u034b\u0003\u034c\u0006\u034c\u274d\n\u034c\r\u034c\u000e", + "\u034c\u274e\u0003\u034c\u0003\u034c\u0006\u034c\u2753\n\u034c\r\u034c", + "\u000e\u034c\u2754\u0003\u034c\u0006\u034c\u2758\n\u034c\r\u034c\u000e", + "\u034c\u2759\u0003\u034c\u0003\u034c\u0003\u034c\u0003\u034c\u0006\u034c", + "\u2760\n\u034c\r\u034c\u000e\u034c\u2761\u0005\u034c\u2764\n\u034c\u0003", + "\u034d\u0003\u034d\u0003\u034e\u0003\u034e\u0003\u034f\u0003\u034f\u0003", + "\u265c\u0002\u0350\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b", + "\u0007\r\b\u000f\t\u0011\n\u0013\u000b\u0015\f\u0017\r\u0019\u000e\u001b", + "\u000f\u001d\u0010\u001f\u0011!\u0012#\u0013%\u0014\'\u0015)\u0016+", + "\u0017-\u0018/\u00191\u001a3\u001b5\u001c7\u001d9\u001e;\u001f= ?!A", + "\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:s;u{?}@\u007f", + "A\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093", + "K\u0095L\u0097M\u0099N\u009bO\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7", + "U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb", + "_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cf", + "i\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3", + "s\u00e5t\u00e7u\u00e9v\u00ebw\u00edx\u00efy\u00f1z\u00f3{\u00f5|\u00f7", + "}\u00f9~\u00fb\u007f\u00fd\u0080\u00ff\u0081\u0101\u0082\u0103\u0083", + "\u0105\u0084\u0107\u0085\u0109\u0086\u010b\u0087\u010d\u0088\u010f\u0089", + "\u0111\u008a\u0113\u008b\u0115\u008c\u0117\u008d\u0119\u008e\u011b\u008f", + "\u011d\u0090\u011f\u0091\u0121\u0092\u0123\u0093\u0125\u0094\u0127\u0095", + "\u0129\u0096\u012b\u0097\u012d\u0098\u012f\u0099\u0131\u009a\u0133\u009b", + "\u0135\u009c\u0137\u009d\u0139\u009e\u013b\u009f\u013d\u00a0\u013f\u00a1", + "\u0141\u00a2\u0143\u00a3\u0145\u00a4\u0147\u00a5\u0149\u00a6\u014b\u00a7", + "\u014d\u00a8\u014f\u00a9\u0151\u00aa\u0153\u00ab\u0155\u00ac\u0157\u00ad", + "\u0159\u00ae\u015b\u00af\u015d\u00b0\u015f\u00b1\u0161\u00b2\u0163\u00b3", + "\u0165\u00b4\u0167\u00b5\u0169\u00b6\u016b\u00b7\u016d\u00b8\u016f\u00b9", + "\u0171\u00ba\u0173\u00bb\u0175\u00bc\u0177\u00bd\u0179\u00be\u017b\u00bf", + "\u017d\u00c0\u017f\u00c1\u0181\u00c2\u0183\u00c3\u0185\u00c4\u0187\u00c5", + "\u0189\u00c6\u018b\u00c7\u018d\u00c8\u018f\u00c9\u0191\u00ca\u0193\u00cb", + "\u0195\u00cc\u0197\u00cd\u0199\u00ce\u019b\u00cf\u019d\u00d0\u019f\u00d1", + "\u01a1\u00d2\u01a3\u00d3\u01a5\u00d4\u01a7\u00d5\u01a9\u00d6\u01ab\u00d7", + "\u01ad\u00d8\u01af\u00d9\u01b1\u00da\u01b3\u00db\u01b5\u00dc\u01b7\u00dd", + "\u01b9\u00de\u01bb\u00df\u01bd\u00e0\u01bf\u00e1\u01c1\u00e2\u01c3\u00e3", + "\u01c5\u00e4\u01c7\u00e5\u01c9\u00e6\u01cb\u00e7\u01cd\u00e8\u01cf\u00e9", + "\u01d1\u00ea\u01d3\u00eb\u01d5\u00ec\u01d7\u00ed\u01d9\u00ee\u01db\u00ef", + "\u01dd\u00f0\u01df\u00f1\u01e1\u00f2\u01e3\u00f3\u01e5\u00f4\u01e7\u00f5", + "\u01e9\u00f6\u01eb\u00f7\u01ed\u00f8\u01ef\u00f9\u01f1\u00fa\u01f3\u00fb", + "\u01f5\u00fc\u01f7\u00fd\u01f9\u00fe\u01fb\u00ff\u01fd\u0100\u01ff\u0101", + "\u0201\u0102\u0203\u0103\u0205\u0104\u0207\u0105\u0209\u0106\u020b\u0107", + "\u020d\u0108\u020f\u0109\u0211\u010a\u0213\u010b\u0215\u010c\u0217\u010d", + "\u0219\u010e\u021b\u010f\u021d\u0110\u021f\u0111\u0221\u0112\u0223\u0113", + "\u0225\u0114\u0227\u0115\u0229\u0116\u022b\u0117\u022d\u0118\u022f\u0119", + "\u0231\u011a\u0233\u011b\u0235\u011c\u0237\u011d\u0239\u011e\u023b\u011f", + "\u023d\u0120\u023f\u0121\u0241\u0122\u0243\u0123\u0245\u0124\u0247\u0125", + "\u0249\u0126\u024b\u0127\u024d\u0128\u024f\u0129\u0251\u012a\u0253\u012b", + "\u0255\u012c\u0257\u012d\u0259\u012e\u025b\u012f\u025d\u0130\u025f\u0131", + "\u0261\u0132\u0263\u0133\u0265\u0134\u0267\u0135\u0269\u0136\u026b\u0137", + "\u026d\u0138\u026f\u0139\u0271\u013a\u0273\u013b\u0275\u013c\u0277\u013d", + "\u0279\u013e\u027b\u013f\u027d\u0140\u027f\u0141\u0281\u0142\u0283\u0143", + "\u0285\u0144\u0287\u0145\u0289\u0146\u028b\u0147\u028d\u0148\u028f\u0149", + "\u0291\u014a\u0293\u014b\u0295\u014c\u0297\u014d\u0299\u014e\u029b\u014f", + "\u029d\u0150\u029f\u0151\u02a1\u0152\u02a3\u0153\u02a5\u0154\u02a7\u0155", + "\u02a9\u0156\u02ab\u0157\u02ad\u0158\u02af\u0159\u02b1\u015a\u02b3\u015b", + "\u02b5\u015c\u02b7\u015d\u02b9\u015e\u02bb\u015f\u02bd\u0160\u02bf\u0161", + "\u02c1\u0162\u02c3\u0163\u02c5\u0164\u02c7\u0165\u02c9\u0166\u02cb\u0167", + "\u02cd\u0168\u02cf\u0169\u02d1\u016a\u02d3\u016b\u02d5\u016c\u02d7\u016d", + "\u02d9\u016e\u02db\u016f\u02dd\u0170\u02df\u0171\u02e1\u0172\u02e3\u0173", + "\u02e5\u0174\u02e7\u0175\u02e9\u0176\u02eb\u0177\u02ed\u0178\u02ef\u0179", + "\u02f1\u017a\u02f3\u017b\u02f5\u017c\u02f7\u017d\u02f9\u017e\u02fb\u017f", + "\u02fd\u0180\u02ff\u0181\u0301\u0182\u0303\u0183\u0305\u0184\u0307\u0185", + "\u0309\u0186\u030b\u0187\u030d\u0188\u030f\u0189\u0311\u018a\u0313\u018b", + "\u0315\u018c\u0317\u018d\u0319\u018e\u031b\u018f\u031d\u0190\u031f\u0191", + "\u0321\u0192\u0323\u0193\u0325\u0194\u0327\u0195\u0329\u0196\u032b\u0197", + "\u032d\u0198\u032f\u0199\u0331\u019a\u0333\u019b\u0335\u019c\u0337\u019d", + "\u0339\u019e\u033b\u019f\u033d\u01a0\u033f\u01a1\u0341\u01a2\u0343\u01a3", + "\u0345\u01a4\u0347\u01a5\u0349\u01a6\u034b\u01a7\u034d\u01a8\u034f\u01a9", + "\u0351\u01aa\u0353\u01ab\u0355\u01ac\u0357\u01ad\u0359\u01ae\u035b\u01af", + "\u035d\u01b0\u035f\u01b1\u0361\u01b2\u0363\u01b3\u0365\u01b4\u0367\u01b5", + "\u0369\u01b6\u036b\u01b7\u036d\u01b8\u036f\u01b9\u0371\u01ba\u0373\u01bb", + "\u0375\u01bc\u0377\u01bd\u0379\u01be\u037b\u01bf\u037d\u01c0\u037f\u01c1", + "\u0381\u01c2\u0383\u01c3\u0385\u01c4\u0387\u01c5\u0389\u01c6\u038b\u01c7", + "\u038d\u01c8\u038f\u01c9\u0391\u01ca\u0393\u01cb\u0395\u01cc\u0397\u01cd", + "\u0399\u01ce\u039b\u01cf\u039d\u01d0\u039f\u01d1\u03a1\u01d2\u03a3\u01d3", + "\u03a5\u01d4\u03a7\u01d5\u03a9\u01d6\u03ab\u01d7\u03ad\u01d8\u03af\u01d9", + "\u03b1\u01da\u03b3\u01db\u03b5\u01dc\u03b7\u01dd\u03b9\u01de\u03bb\u01df", + "\u03bd\u01e0\u03bf\u01e1\u03c1\u01e2\u03c3\u01e3\u03c5\u01e4\u03c7\u01e5", + "\u03c9\u01e6\u03cb\u01e7\u03cd\u01e8\u03cf\u01e9\u03d1\u01ea\u03d3\u01eb", + "\u03d5\u01ec\u03d7\u01ed\u03d9\u01ee\u03db\u01ef\u03dd\u01f0\u03df\u01f1", + "\u03e1\u01f2\u03e3\u01f3\u03e5\u01f4\u03e7\u01f5\u03e9\u01f6\u03eb\u01f7", + "\u03ed\u01f8\u03ef\u01f9\u03f1\u01fa\u03f3\u01fb\u03f5\u01fc\u03f7\u01fd", + "\u03f9\u01fe\u03fb\u01ff\u03fd\u0200\u03ff\u0201\u0401\u0202\u0403\u0203", + "\u0405\u0204\u0407\u0205\u0409\u0206\u040b\u0207\u040d\u0208\u040f\u0209", + "\u0411\u020a\u0413\u020b\u0415\u020c\u0417\u020d\u0419\u020e\u041b\u020f", + "\u041d\u0210\u041f\u0211\u0421\u0212\u0423\u0213\u0425\u0214\u0427\u0215", + "\u0429\u0216\u042b\u0217\u042d\u0218\u042f\u0219\u0431\u021a\u0433\u021b", + "\u0435\u021c\u0437\u021d\u0439\u021e\u043b\u021f\u043d\u0220\u043f\u0221", + "\u0441\u0222\u0443\u0223\u0445\u0224\u0447\u0225\u0449\u0226\u044b\u0227", + "\u044d\u0228\u044f\u0229\u0451\u022a\u0453\u022b\u0455\u022c\u0457\u022d", + "\u0459\u022e\u045b\u022f\u045d\u0230\u045f\u0231\u0461\u0232\u0463\u0233", + "\u0465\u0234\u0467\u0235\u0469\u0236\u046b\u0237\u046d\u0238\u046f\u0239", + "\u0471\u023a\u0473\u023b\u0475\u023c\u0477\u023d\u0479\u023e\u047b\u023f", + "\u047d\u0240\u047f\u0241\u0481\u0242\u0483\u0243\u0485\u0244\u0487\u0245", + "\u0489\u0246\u048b\u0247\u048d\u0248\u048f\u0249\u0491\u024a\u0493\u024b", + "\u0495\u024c\u0497\u024d\u0499\u024e\u049b\u024f\u049d\u0250\u049f\u0251", + "\u04a1\u0252\u04a3\u0253\u04a5\u0254\u04a7\u0255\u04a9\u0256\u04ab\u0257", + "\u04ad\u0258\u04af\u0259\u04b1\u025a\u04b3\u025b\u04b5\u025c\u04b7\u025d", + "\u04b9\u025e\u04bb\u025f\u04bd\u0260\u04bf\u0261\u04c1\u0262\u04c3\u0263", + "\u04c5\u0264\u04c7\u0265\u04c9\u0266\u04cb\u0267\u04cd\u0268\u04cf\u0269", + "\u04d1\u026a\u04d3\u026b\u04d5\u026c\u04d7\u026d\u04d9\u026e\u04db\u026f", + "\u04dd\u0270\u04df\u0271\u04e1\u0272\u04e3\u0273\u04e5\u0274\u04e7\u0275", + "\u04e9\u0276\u04eb\u0277\u04ed\u0278\u04ef\u0279\u04f1\u027a\u04f3\u027b", + "\u04f5\u027c\u04f7\u027d\u04f9\u027e\u04fb\u027f\u04fd\u0280\u04ff\u0281", + "\u0501\u0282\u0503\u0283\u0505\u0284\u0507\u0285\u0509\u0286\u050b\u0287", + "\u050d\u0288\u050f\u0289\u0511\u028a\u0513\u028b\u0515\u028c\u0517\u028d", + "\u0519\u028e\u051b\u028f\u051d\u0290\u051f\u0291\u0521\u0292\u0523\u0293", + "\u0525\u0294\u0527\u0295\u0529\u0296\u052b\u0297\u052d\u0298\u052f\u0299", + "\u0531\u029a\u0533\u029b\u0535\u029c\u0537\u029d\u0539\u029e\u053b\u029f", + "\u053d\u02a0\u053f\u02a1\u0541\u02a2\u0543\u02a3\u0545\u02a4\u0547\u02a5", + "\u0549\u02a6\u054b\u02a7\u054d\u02a8\u054f\u02a9\u0551\u02aa\u0553\u02ab", + "\u0555\u02ac\u0557\u02ad\u0559\u02ae\u055b\u02af\u055d\u02b0\u055f\u02b1", + "\u0561\u02b2\u0563\u02b3\u0565\u02b4\u0567\u02b5\u0569\u02b6\u056b\u02b7", + "\u056d\u02b8\u056f\u02b9\u0571\u02ba\u0573\u02bb\u0575\u02bc\u0577\u02bd", + "\u0579\u02be\u057b\u02bf\u057d\u02c0\u057f\u02c1\u0581\u02c2\u0583\u02c3", + "\u0585\u02c4\u0587\u02c5\u0589\u02c6\u058b\u02c7\u058d\u02c8\u058f\u02c9", + "\u0591\u02ca\u0593\u02cb\u0595\u02cc\u0597\u02cd\u0599\u02ce\u059b\u02cf", + "\u059d\u02d0\u059f\u02d1\u05a1\u02d2\u05a3\u02d3\u05a5\u02d4\u05a7\u02d5", + "\u05a9\u02d6\u05ab\u02d7\u05ad\u02d8\u05af\u02d9\u05b1\u02da\u05b3\u02db", + "\u05b5\u02dc\u05b7\u02dd\u05b9\u02de\u05bb\u02df\u05bd\u02e0\u05bf\u02e1", + "\u05c1\u02e2\u05c3\u02e3\u05c5\u02e4\u05c7\u02e5\u05c9\u02e6\u05cb\u02e7", + "\u05cd\u02e8\u05cf\u02e9\u05d1\u02ea\u05d3\u02eb\u05d5\u02ec\u05d7\u02ed", + "\u05d9\u02ee\u05db\u02ef\u05dd\u02f0\u05df\u02f1\u05e1\u02f2\u05e3\u02f3", + "\u05e5\u02f4\u05e7\u02f5\u05e9\u02f6\u05eb\u02f7\u05ed\u02f8\u05ef\u02f9", + "\u05f1\u02fa\u05f3\u02fb\u05f5\u02fc\u05f7\u02fd\u05f9\u02fe\u05fb\u02ff", + "\u05fd\u0300\u05ff\u0301\u0601\u0302\u0603\u0303\u0605\u0304\u0607\u0305", + "\u0609\u0306\u060b\u0307\u060d\u0308\u060f\u0309\u0611\u030a\u0613\u030b", + "\u0615\u030c\u0617\u030d\u0619\u030e\u061b\u030f\u061d\u0310\u061f\u0311", + "\u0621\u0312\u0623\u0313\u0625\u0314\u0627\u0315\u0629\u0316\u062b\u0317", + "\u062d\u0318\u062f\u0319\u0631\u031a\u0633\u031b\u0635\u031c\u0637\u031d", + "\u0639\u031e\u063b\u031f\u063d\u0320\u063f\u0321\u0641\u0322\u0643\u0323", + "\u0645\u0324\u0647\u0325\u0649\u0326\u064b\u0327\u064d\u0328\u064f\u0329", + "\u0651\u032a\u0653\u032b\u0655\u032c\u0657\u032d\u0659\u032e\u065b\u032f", + "\u065d\u0330\u065f\u0331\u0661\u0332\u0663\u0333\u0665\u0334\u0667\u0335", + "\u0669\u0336\u066b\u0337\u066d\u0338\u066f\u0339\u0671\u033a\u0673\u033b", + "\u0675\u033c\u0677\u033d\u0679\u033e\u067b\u033f\u067d\u0340\u067f\u0341", + "\u0681\u0342\u0683\u0343\u0685\u0344\u0687\u0345\u0689\u0346\u068b\u0347", + "\u068d\u0348\u068f\u0349\u0691\u0002\u0693\u0002\u0695\u034a\u0697\u0002", + "\u0699\u0002\u069b\u0002\u069d\u0002\u0003\u0002\u0011\u0003\u0002)", + ")\u0004\u00022;CH\u0003\u0002<<\u0003\u0002$$\u0003\u0002C\\\u0005\u0002", + "\u000b\f\u000f\u000f\"\"\u0004\u0002\f\f\u000f\u000f\u0003\u0002__\u0006", + "\u0002%&2;B\\aa\u0005\u0002%%C\\aa\u0003\u000200\u0004\u0002--//\u0004", + "\u0002C\\aa\u0003\u00022;\f\u0002\u00c2\u00d8\u00da\u00f8\u00fa\u2001", + "\u2c02\u3001\u3042\u3191\u3302\u3381\u3402\u4001\u4e02\ud801\uf902\ufb01", + "\uff02\ufff2\u0002\u27af\u0002\u0003\u0003\u0002\u0002\u0002\u0002\u0005", + "\u0003\u0002\u0002\u0002\u0002\u0007\u0003\u0002\u0002\u0002\u0002\t", + "\u0003\u0002\u0002\u0002\u0002\u000b\u0003\u0002\u0002\u0002\u0002\r", + "\u0003\u0002\u0002\u0002\u0002\u000f\u0003\u0002\u0002\u0002\u0002\u0011", + "\u0003\u0002\u0002\u0002\u0002\u0013\u0003\u0002\u0002\u0002\u0002\u0015", + "\u0003\u0002\u0002\u0002\u0002\u0017\u0003\u0002\u0002\u0002\u0002\u0019", + "\u0003\u0002\u0002\u0002\u0002\u001b\u0003\u0002\u0002\u0002\u0002\u001d", + "\u0003\u0002\u0002\u0002\u0002\u001f\u0003\u0002\u0002\u0002\u0002!", + "\u0003\u0002\u0002\u0002\u0002#\u0003\u0002\u0002\u0002\u0002%\u0003", + "\u0002\u0002\u0002\u0002\'\u0003\u0002\u0002\u0002\u0002)\u0003\u0002", + "\u0002\u0002\u0002+\u0003\u0002\u0002\u0002\u0002-\u0003\u0002\u0002", + "\u0002\u0002/\u0003\u0002\u0002\u0002\u00021\u0003\u0002\u0002\u0002", + "\u00023\u0003\u0002\u0002\u0002\u00025\u0003\u0002\u0002\u0002\u0002", + "7\u0003\u0002\u0002\u0002\u00029\u0003\u0002\u0002\u0002\u0002;\u0003", + "\u0002\u0002\u0002\u0002=\u0003\u0002\u0002\u0002\u0002?\u0003\u0002", + "\u0002\u0002\u0002A\u0003\u0002\u0002\u0002\u0002C\u0003\u0002\u0002", + "\u0002\u0002E\u0003\u0002\u0002\u0002\u0002G\u0003\u0002\u0002\u0002", + "\u0002I\u0003\u0002\u0002\u0002\u0002K\u0003\u0002\u0002\u0002\u0002", + "M\u0003\u0002\u0002\u0002\u0002O\u0003\u0002\u0002\u0002\u0002Q\u0003", + "\u0002\u0002\u0002\u0002S\u0003\u0002\u0002\u0002\u0002U\u0003\u0002", + "\u0002\u0002\u0002W\u0003\u0002\u0002\u0002\u0002Y\u0003\u0002\u0002", + "\u0002\u0002[\u0003\u0002\u0002\u0002\u0002]\u0003\u0002\u0002\u0002", + "\u0002_\u0003\u0002\u0002\u0002\u0002a\u0003\u0002\u0002\u0002\u0002", + "c\u0003\u0002\u0002\u0002\u0002e\u0003\u0002\u0002\u0002\u0002g\u0003", + "\u0002\u0002\u0002\u0002i\u0003\u0002\u0002\u0002\u0002k\u0003\u0002", + "\u0002\u0002\u0002m\u0003\u0002\u0002\u0002\u0002o\u0003\u0002\u0002", + "\u0002\u0002q\u0003\u0002\u0002\u0002\u0002s\u0003\u0002\u0002\u0002", + "\u0002u\u0003\u0002\u0002\u0002\u0002w\u0003\u0002\u0002\u0002\u0002", + "y\u0003\u0002\u0002\u0002\u0002{\u0003\u0002\u0002\u0002\u0002}\u0003", + "\u0002\u0002\u0002\u0002\u007f\u0003\u0002\u0002\u0002\u0002\u0081\u0003", + "\u0002\u0002\u0002\u0002\u0083\u0003\u0002\u0002\u0002\u0002\u0085\u0003", + "\u0002\u0002\u0002\u0002\u0087\u0003\u0002\u0002\u0002\u0002\u0089\u0003", + "\u0002\u0002\u0002\u0002\u008b\u0003\u0002\u0002\u0002\u0002\u008d\u0003", + "\u0002\u0002\u0002\u0002\u008f\u0003\u0002\u0002\u0002\u0002\u0091\u0003", + "\u0002\u0002\u0002\u0002\u0093\u0003\u0002\u0002\u0002\u0002\u0095\u0003", + "\u0002\u0002\u0002\u0002\u0097\u0003\u0002\u0002\u0002\u0002\u0099\u0003", + "\u0002\u0002\u0002\u0002\u009b\u0003\u0002\u0002\u0002\u0002\u009d\u0003", + "\u0002\u0002\u0002\u0002\u009f\u0003\u0002\u0002\u0002\u0002\u00a1\u0003", + "\u0002\u0002\u0002\u0002\u00a3\u0003\u0002\u0002\u0002\u0002\u00a5\u0003", + "\u0002\u0002\u0002\u0002\u00a7\u0003\u0002\u0002\u0002\u0002\u00a9\u0003", + "\u0002\u0002\u0002\u0002\u00ab\u0003\u0002\u0002\u0002\u0002\u00ad\u0003", + "\u0002\u0002\u0002\u0002\u00af\u0003\u0002\u0002\u0002\u0002\u00b1\u0003", + "\u0002\u0002\u0002\u0002\u00b3\u0003\u0002\u0002\u0002\u0002\u00b5\u0003", + "\u0002\u0002\u0002\u0002\u00b7\u0003\u0002\u0002\u0002\u0002\u00b9\u0003", + "\u0002\u0002\u0002\u0002\u00bb\u0003\u0002\u0002\u0002\u0002\u00bd\u0003", + "\u0002\u0002\u0002\u0002\u00bf\u0003\u0002\u0002\u0002\u0002\u00c1\u0003", + "\u0002\u0002\u0002\u0002\u00c3\u0003\u0002\u0002\u0002\u0002\u00c5\u0003", + "\u0002\u0002\u0002\u0002\u00c7\u0003\u0002\u0002\u0002\u0002\u00c9\u0003", + "\u0002\u0002\u0002\u0002\u00cb\u0003\u0002\u0002\u0002\u0002\u00cd\u0003", + "\u0002\u0002\u0002\u0002\u00cf\u0003\u0002\u0002\u0002\u0002\u00d1\u0003", + "\u0002\u0002\u0002\u0002\u00d3\u0003\u0002\u0002\u0002\u0002\u00d5\u0003", + "\u0002\u0002\u0002\u0002\u00d7\u0003\u0002\u0002\u0002\u0002\u00d9\u0003", + "\u0002\u0002\u0002\u0002\u00db\u0003\u0002\u0002\u0002\u0002\u00dd\u0003", + "\u0002\u0002\u0002\u0002\u00df\u0003\u0002\u0002\u0002\u0002\u00e1\u0003", + "\u0002\u0002\u0002\u0002\u00e3\u0003\u0002\u0002\u0002\u0002\u00e5\u0003", + "\u0002\u0002\u0002\u0002\u00e7\u0003\u0002\u0002\u0002\u0002\u00e9\u0003", + "\u0002\u0002\u0002\u0002\u00eb\u0003\u0002\u0002\u0002\u0002\u00ed\u0003", + "\u0002\u0002\u0002\u0002\u00ef\u0003\u0002\u0002\u0002\u0002\u00f1\u0003", + "\u0002\u0002\u0002\u0002\u00f3\u0003\u0002\u0002\u0002\u0002\u00f5\u0003", + "\u0002\u0002\u0002\u0002\u00f7\u0003\u0002\u0002\u0002\u0002\u00f9\u0003", + "\u0002\u0002\u0002\u0002\u00fb\u0003\u0002\u0002\u0002\u0002\u00fd\u0003", + "\u0002\u0002\u0002\u0002\u00ff\u0003\u0002\u0002\u0002\u0002\u0101\u0003", + "\u0002\u0002\u0002\u0002\u0103\u0003\u0002\u0002\u0002\u0002\u0105\u0003", + "\u0002\u0002\u0002\u0002\u0107\u0003\u0002\u0002\u0002\u0002\u0109\u0003", + "\u0002\u0002\u0002\u0002\u010b\u0003\u0002\u0002\u0002\u0002\u010d\u0003", + "\u0002\u0002\u0002\u0002\u010f\u0003\u0002\u0002\u0002\u0002\u0111\u0003", + "\u0002\u0002\u0002\u0002\u0113\u0003\u0002\u0002\u0002\u0002\u0115\u0003", + "\u0002\u0002\u0002\u0002\u0117\u0003\u0002\u0002\u0002\u0002\u0119\u0003", + "\u0002\u0002\u0002\u0002\u011b\u0003\u0002\u0002\u0002\u0002\u011d\u0003", + "\u0002\u0002\u0002\u0002\u011f\u0003\u0002\u0002\u0002\u0002\u0121\u0003", + "\u0002\u0002\u0002\u0002\u0123\u0003\u0002\u0002\u0002\u0002\u0125\u0003", + "\u0002\u0002\u0002\u0002\u0127\u0003\u0002\u0002\u0002\u0002\u0129\u0003", + "\u0002\u0002\u0002\u0002\u012b\u0003\u0002\u0002\u0002\u0002\u012d\u0003", + "\u0002\u0002\u0002\u0002\u012f\u0003\u0002\u0002\u0002\u0002\u0131\u0003", + "\u0002\u0002\u0002\u0002\u0133\u0003\u0002\u0002\u0002\u0002\u0135\u0003", + "\u0002\u0002\u0002\u0002\u0137\u0003\u0002\u0002\u0002\u0002\u0139\u0003", + "\u0002\u0002\u0002\u0002\u013b\u0003\u0002\u0002\u0002\u0002\u013d\u0003", + "\u0002\u0002\u0002\u0002\u013f\u0003\u0002\u0002\u0002\u0002\u0141\u0003", + "\u0002\u0002\u0002\u0002\u0143\u0003\u0002\u0002\u0002\u0002\u0145\u0003", + "\u0002\u0002\u0002\u0002\u0147\u0003\u0002\u0002\u0002\u0002\u0149\u0003", + "\u0002\u0002\u0002\u0002\u014b\u0003\u0002\u0002\u0002\u0002\u014d\u0003", + "\u0002\u0002\u0002\u0002\u014f\u0003\u0002\u0002\u0002\u0002\u0151\u0003", + "\u0002\u0002\u0002\u0002\u0153\u0003\u0002\u0002\u0002\u0002\u0155\u0003", + "\u0002\u0002\u0002\u0002\u0157\u0003\u0002\u0002\u0002\u0002\u0159\u0003", + "\u0002\u0002\u0002\u0002\u015b\u0003\u0002\u0002\u0002\u0002\u015d\u0003", + "\u0002\u0002\u0002\u0002\u015f\u0003\u0002\u0002\u0002\u0002\u0161\u0003", + "\u0002\u0002\u0002\u0002\u0163\u0003\u0002\u0002\u0002\u0002\u0165\u0003", + "\u0002\u0002\u0002\u0002\u0167\u0003\u0002\u0002\u0002\u0002\u0169\u0003", + "\u0002\u0002\u0002\u0002\u016b\u0003\u0002\u0002\u0002\u0002\u016d\u0003", + "\u0002\u0002\u0002\u0002\u016f\u0003\u0002\u0002\u0002\u0002\u0171\u0003", + "\u0002\u0002\u0002\u0002\u0173\u0003\u0002\u0002\u0002\u0002\u0175\u0003", + "\u0002\u0002\u0002\u0002\u0177\u0003\u0002\u0002\u0002\u0002\u0179\u0003", + "\u0002\u0002\u0002\u0002\u017b\u0003\u0002\u0002\u0002\u0002\u017d\u0003", + "\u0002\u0002\u0002\u0002\u017f\u0003\u0002\u0002\u0002\u0002\u0181\u0003", + "\u0002\u0002\u0002\u0002\u0183\u0003\u0002\u0002\u0002\u0002\u0185\u0003", + "\u0002\u0002\u0002\u0002\u0187\u0003\u0002\u0002\u0002\u0002\u0189\u0003", + "\u0002\u0002\u0002\u0002\u018b\u0003\u0002\u0002\u0002\u0002\u018d\u0003", + "\u0002\u0002\u0002\u0002\u018f\u0003\u0002\u0002\u0002\u0002\u0191\u0003", + "\u0002\u0002\u0002\u0002\u0193\u0003\u0002\u0002\u0002\u0002\u0195\u0003", + "\u0002\u0002\u0002\u0002\u0197\u0003\u0002\u0002\u0002\u0002\u0199\u0003", + "\u0002\u0002\u0002\u0002\u019b\u0003\u0002\u0002\u0002\u0002\u019d\u0003", + "\u0002\u0002\u0002\u0002\u019f\u0003\u0002\u0002\u0002\u0002\u01a1\u0003", + "\u0002\u0002\u0002\u0002\u01a3\u0003\u0002\u0002\u0002\u0002\u01a5\u0003", + "\u0002\u0002\u0002\u0002\u01a7\u0003\u0002\u0002\u0002\u0002\u01a9\u0003", + "\u0002\u0002\u0002\u0002\u01ab\u0003\u0002\u0002\u0002\u0002\u01ad\u0003", + "\u0002\u0002\u0002\u0002\u01af\u0003\u0002\u0002\u0002\u0002\u01b1\u0003", + "\u0002\u0002\u0002\u0002\u01b3\u0003\u0002\u0002\u0002\u0002\u01b5\u0003", + "\u0002\u0002\u0002\u0002\u01b7\u0003\u0002\u0002\u0002\u0002\u01b9\u0003", + "\u0002\u0002\u0002\u0002\u01bb\u0003\u0002\u0002\u0002\u0002\u01bd\u0003", + "\u0002\u0002\u0002\u0002\u01bf\u0003\u0002\u0002\u0002\u0002\u01c1\u0003", + "\u0002\u0002\u0002\u0002\u01c3\u0003\u0002\u0002\u0002\u0002\u01c5\u0003", + "\u0002\u0002\u0002\u0002\u01c7\u0003\u0002\u0002\u0002\u0002\u01c9\u0003", + "\u0002\u0002\u0002\u0002\u01cb\u0003\u0002\u0002\u0002\u0002\u01cd\u0003", + "\u0002\u0002\u0002\u0002\u01cf\u0003\u0002\u0002\u0002\u0002\u01d1\u0003", + "\u0002\u0002\u0002\u0002\u01d3\u0003\u0002\u0002\u0002\u0002\u01d5\u0003", + "\u0002\u0002\u0002\u0002\u01d7\u0003\u0002\u0002\u0002\u0002\u01d9\u0003", + "\u0002\u0002\u0002\u0002\u01db\u0003\u0002\u0002\u0002\u0002\u01dd\u0003", + "\u0002\u0002\u0002\u0002\u01df\u0003\u0002\u0002\u0002\u0002\u01e1\u0003", + "\u0002\u0002\u0002\u0002\u01e3\u0003\u0002\u0002\u0002\u0002\u01e5\u0003", + "\u0002\u0002\u0002\u0002\u01e7\u0003\u0002\u0002\u0002\u0002\u01e9\u0003", + "\u0002\u0002\u0002\u0002\u01eb\u0003\u0002\u0002\u0002\u0002\u01ed\u0003", + "\u0002\u0002\u0002\u0002\u01ef\u0003\u0002\u0002\u0002\u0002\u01f1\u0003", + "\u0002\u0002\u0002\u0002\u01f3\u0003\u0002\u0002\u0002\u0002\u01f5\u0003", + "\u0002\u0002\u0002\u0002\u01f7\u0003\u0002\u0002\u0002\u0002\u01f9\u0003", + "\u0002\u0002\u0002\u0002\u01fb\u0003\u0002\u0002\u0002\u0002\u01fd\u0003", + "\u0002\u0002\u0002\u0002\u01ff\u0003\u0002\u0002\u0002\u0002\u0201\u0003", + "\u0002\u0002\u0002\u0002\u0203\u0003\u0002\u0002\u0002\u0002\u0205\u0003", + "\u0002\u0002\u0002\u0002\u0207\u0003\u0002\u0002\u0002\u0002\u0209\u0003", + "\u0002\u0002\u0002\u0002\u020b\u0003\u0002\u0002\u0002\u0002\u020d\u0003", + "\u0002\u0002\u0002\u0002\u020f\u0003\u0002\u0002\u0002\u0002\u0211\u0003", + "\u0002\u0002\u0002\u0002\u0213\u0003\u0002\u0002\u0002\u0002\u0215\u0003", + "\u0002\u0002\u0002\u0002\u0217\u0003\u0002\u0002\u0002\u0002\u0219\u0003", + "\u0002\u0002\u0002\u0002\u021b\u0003\u0002\u0002\u0002\u0002\u021d\u0003", + "\u0002\u0002\u0002\u0002\u021f\u0003\u0002\u0002\u0002\u0002\u0221\u0003", + "\u0002\u0002\u0002\u0002\u0223\u0003\u0002\u0002\u0002\u0002\u0225\u0003", + "\u0002\u0002\u0002\u0002\u0227\u0003\u0002\u0002\u0002\u0002\u0229\u0003", + "\u0002\u0002\u0002\u0002\u022b\u0003\u0002\u0002\u0002\u0002\u022d\u0003", + "\u0002\u0002\u0002\u0002\u022f\u0003\u0002\u0002\u0002\u0002\u0231\u0003", + "\u0002\u0002\u0002\u0002\u0233\u0003\u0002\u0002\u0002\u0002\u0235\u0003", + "\u0002\u0002\u0002\u0002\u0237\u0003\u0002\u0002\u0002\u0002\u0239\u0003", + "\u0002\u0002\u0002\u0002\u023b\u0003\u0002\u0002\u0002\u0002\u023d\u0003", + "\u0002\u0002\u0002\u0002\u023f\u0003\u0002\u0002\u0002\u0002\u0241\u0003", + "\u0002\u0002\u0002\u0002\u0243\u0003\u0002\u0002\u0002\u0002\u0245\u0003", + "\u0002\u0002\u0002\u0002\u0247\u0003\u0002\u0002\u0002\u0002\u0249\u0003", + "\u0002\u0002\u0002\u0002\u024b\u0003\u0002\u0002\u0002\u0002\u024d\u0003", + "\u0002\u0002\u0002\u0002\u024f\u0003\u0002\u0002\u0002\u0002\u0251\u0003", + "\u0002\u0002\u0002\u0002\u0253\u0003\u0002\u0002\u0002\u0002\u0255\u0003", + "\u0002\u0002\u0002\u0002\u0257\u0003\u0002\u0002\u0002\u0002\u0259\u0003", + "\u0002\u0002\u0002\u0002\u025b\u0003\u0002\u0002\u0002\u0002\u025d\u0003", + "\u0002\u0002\u0002\u0002\u025f\u0003\u0002\u0002\u0002\u0002\u0261\u0003", + "\u0002\u0002\u0002\u0002\u0263\u0003\u0002\u0002\u0002\u0002\u0265\u0003", + "\u0002\u0002\u0002\u0002\u0267\u0003\u0002\u0002\u0002\u0002\u0269\u0003", + "\u0002\u0002\u0002\u0002\u026b\u0003\u0002\u0002\u0002\u0002\u026d\u0003", + "\u0002\u0002\u0002\u0002\u026f\u0003\u0002\u0002\u0002\u0002\u0271\u0003", + "\u0002\u0002\u0002\u0002\u0273\u0003\u0002\u0002\u0002\u0002\u0275\u0003", + "\u0002\u0002\u0002\u0002\u0277\u0003\u0002\u0002\u0002\u0002\u0279\u0003", + "\u0002\u0002\u0002\u0002\u027b\u0003\u0002\u0002\u0002\u0002\u027d\u0003", + "\u0002\u0002\u0002\u0002\u027f\u0003\u0002\u0002\u0002\u0002\u0281\u0003", + "\u0002\u0002\u0002\u0002\u0283\u0003\u0002\u0002\u0002\u0002\u0285\u0003", + "\u0002\u0002\u0002\u0002\u0287\u0003\u0002\u0002\u0002\u0002\u0289\u0003", + "\u0002\u0002\u0002\u0002\u028b\u0003\u0002\u0002\u0002\u0002\u028d\u0003", + "\u0002\u0002\u0002\u0002\u028f\u0003\u0002\u0002\u0002\u0002\u0291\u0003", + "\u0002\u0002\u0002\u0002\u0293\u0003\u0002\u0002\u0002\u0002\u0295\u0003", + "\u0002\u0002\u0002\u0002\u0297\u0003\u0002\u0002\u0002\u0002\u0299\u0003", + "\u0002\u0002\u0002\u0002\u029b\u0003\u0002\u0002\u0002\u0002\u029d\u0003", + "\u0002\u0002\u0002\u0002\u029f\u0003\u0002\u0002\u0002\u0002\u02a1\u0003", + "\u0002\u0002\u0002\u0002\u02a3\u0003\u0002\u0002\u0002\u0002\u02a5\u0003", + "\u0002\u0002\u0002\u0002\u02a7\u0003\u0002\u0002\u0002\u0002\u02a9\u0003", + "\u0002\u0002\u0002\u0002\u02ab\u0003\u0002\u0002\u0002\u0002\u02ad\u0003", + "\u0002\u0002\u0002\u0002\u02af\u0003\u0002\u0002\u0002\u0002\u02b1\u0003", + "\u0002\u0002\u0002\u0002\u02b3\u0003\u0002\u0002\u0002\u0002\u02b5\u0003", + "\u0002\u0002\u0002\u0002\u02b7\u0003\u0002\u0002\u0002\u0002\u02b9\u0003", + "\u0002\u0002\u0002\u0002\u02bb\u0003\u0002\u0002\u0002\u0002\u02bd\u0003", + "\u0002\u0002\u0002\u0002\u02bf\u0003\u0002\u0002\u0002\u0002\u02c1\u0003", + "\u0002\u0002\u0002\u0002\u02c3\u0003\u0002\u0002\u0002\u0002\u02c5\u0003", + "\u0002\u0002\u0002\u0002\u02c7\u0003\u0002\u0002\u0002\u0002\u02c9\u0003", + "\u0002\u0002\u0002\u0002\u02cb\u0003\u0002\u0002\u0002\u0002\u02cd\u0003", + "\u0002\u0002\u0002\u0002\u02cf\u0003\u0002\u0002\u0002\u0002\u02d1\u0003", + "\u0002\u0002\u0002\u0002\u02d3\u0003\u0002\u0002\u0002\u0002\u02d5\u0003", + "\u0002\u0002\u0002\u0002\u02d7\u0003\u0002\u0002\u0002\u0002\u02d9\u0003", + "\u0002\u0002\u0002\u0002\u02db\u0003\u0002\u0002\u0002\u0002\u02dd\u0003", + "\u0002\u0002\u0002\u0002\u02df\u0003\u0002\u0002\u0002\u0002\u02e1\u0003", + "\u0002\u0002\u0002\u0002\u02e3\u0003\u0002\u0002\u0002\u0002\u02e5\u0003", + "\u0002\u0002\u0002\u0002\u02e7\u0003\u0002\u0002\u0002\u0002\u02e9\u0003", + "\u0002\u0002\u0002\u0002\u02eb\u0003\u0002\u0002\u0002\u0002\u02ed\u0003", + "\u0002\u0002\u0002\u0002\u02ef\u0003\u0002\u0002\u0002\u0002\u02f1\u0003", + "\u0002\u0002\u0002\u0002\u02f3\u0003\u0002\u0002\u0002\u0002\u02f5\u0003", + "\u0002\u0002\u0002\u0002\u02f7\u0003\u0002\u0002\u0002\u0002\u02f9\u0003", + "\u0002\u0002\u0002\u0002\u02fb\u0003\u0002\u0002\u0002\u0002\u02fd\u0003", + "\u0002\u0002\u0002\u0002\u02ff\u0003\u0002\u0002\u0002\u0002\u0301\u0003", + "\u0002\u0002\u0002\u0002\u0303\u0003\u0002\u0002\u0002\u0002\u0305\u0003", + "\u0002\u0002\u0002\u0002\u0307\u0003\u0002\u0002\u0002\u0002\u0309\u0003", + "\u0002\u0002\u0002\u0002\u030b\u0003\u0002\u0002\u0002\u0002\u030d\u0003", + "\u0002\u0002\u0002\u0002\u030f\u0003\u0002\u0002\u0002\u0002\u0311\u0003", + "\u0002\u0002\u0002\u0002\u0313\u0003\u0002\u0002\u0002\u0002\u0315\u0003", + "\u0002\u0002\u0002\u0002\u0317\u0003\u0002\u0002\u0002\u0002\u0319\u0003", + "\u0002\u0002\u0002\u0002\u031b\u0003\u0002\u0002\u0002\u0002\u031d\u0003", + "\u0002\u0002\u0002\u0002\u031f\u0003\u0002\u0002\u0002\u0002\u0321\u0003", + "\u0002\u0002\u0002\u0002\u0323\u0003\u0002\u0002\u0002\u0002\u0325\u0003", + "\u0002\u0002\u0002\u0002\u0327\u0003\u0002\u0002\u0002\u0002\u0329\u0003", + "\u0002\u0002\u0002\u0002\u032b\u0003\u0002\u0002\u0002\u0002\u032d\u0003", + "\u0002\u0002\u0002\u0002\u032f\u0003\u0002\u0002\u0002\u0002\u0331\u0003", + "\u0002\u0002\u0002\u0002\u0333\u0003\u0002\u0002\u0002\u0002\u0335\u0003", + "\u0002\u0002\u0002\u0002\u0337\u0003\u0002\u0002\u0002\u0002\u0339\u0003", + "\u0002\u0002\u0002\u0002\u033b\u0003\u0002\u0002\u0002\u0002\u033d\u0003", + "\u0002\u0002\u0002\u0002\u033f\u0003\u0002\u0002\u0002\u0002\u0341\u0003", + "\u0002\u0002\u0002\u0002\u0343\u0003\u0002\u0002\u0002\u0002\u0345\u0003", + "\u0002\u0002\u0002\u0002\u0347\u0003\u0002\u0002\u0002\u0002\u0349\u0003", + "\u0002\u0002\u0002\u0002\u034b\u0003\u0002\u0002\u0002\u0002\u034d\u0003", + "\u0002\u0002\u0002\u0002\u034f\u0003\u0002\u0002\u0002\u0002\u0351\u0003", + "\u0002\u0002\u0002\u0002\u0353\u0003\u0002\u0002\u0002\u0002\u0355\u0003", + "\u0002\u0002\u0002\u0002\u0357\u0003\u0002\u0002\u0002\u0002\u0359\u0003", + "\u0002\u0002\u0002\u0002\u035b\u0003\u0002\u0002\u0002\u0002\u035d\u0003", + "\u0002\u0002\u0002\u0002\u035f\u0003\u0002\u0002\u0002\u0002\u0361\u0003", + "\u0002\u0002\u0002\u0002\u0363\u0003\u0002\u0002\u0002\u0002\u0365\u0003", + "\u0002\u0002\u0002\u0002\u0367\u0003\u0002\u0002\u0002\u0002\u0369\u0003", + "\u0002\u0002\u0002\u0002\u036b\u0003\u0002\u0002\u0002\u0002\u036d\u0003", + "\u0002\u0002\u0002\u0002\u036f\u0003\u0002\u0002\u0002\u0002\u0371\u0003", + "\u0002\u0002\u0002\u0002\u0373\u0003\u0002\u0002\u0002\u0002\u0375\u0003", + "\u0002\u0002\u0002\u0002\u0377\u0003\u0002\u0002\u0002\u0002\u0379\u0003", + "\u0002\u0002\u0002\u0002\u037b\u0003\u0002\u0002\u0002\u0002\u037d\u0003", + "\u0002\u0002\u0002\u0002\u037f\u0003\u0002\u0002\u0002\u0002\u0381\u0003", + "\u0002\u0002\u0002\u0002\u0383\u0003\u0002\u0002\u0002\u0002\u0385\u0003", + "\u0002\u0002\u0002\u0002\u0387\u0003\u0002\u0002\u0002\u0002\u0389\u0003", + "\u0002\u0002\u0002\u0002\u038b\u0003\u0002\u0002\u0002\u0002\u038d\u0003", + "\u0002\u0002\u0002\u0002\u038f\u0003\u0002\u0002\u0002\u0002\u0391\u0003", + "\u0002\u0002\u0002\u0002\u0393\u0003\u0002\u0002\u0002\u0002\u0395\u0003", + "\u0002\u0002\u0002\u0002\u0397\u0003\u0002\u0002\u0002\u0002\u0399\u0003", + "\u0002\u0002\u0002\u0002\u039b\u0003\u0002\u0002\u0002\u0002\u039d\u0003", + "\u0002\u0002\u0002\u0002\u039f\u0003\u0002\u0002\u0002\u0002\u03a1\u0003", + "\u0002\u0002\u0002\u0002\u03a3\u0003\u0002\u0002\u0002\u0002\u03a5\u0003", + "\u0002\u0002\u0002\u0002\u03a7\u0003\u0002\u0002\u0002\u0002\u03a9\u0003", + "\u0002\u0002\u0002\u0002\u03ab\u0003\u0002\u0002\u0002\u0002\u03ad\u0003", + "\u0002\u0002\u0002\u0002\u03af\u0003\u0002\u0002\u0002\u0002\u03b1\u0003", + "\u0002\u0002\u0002\u0002\u03b3\u0003\u0002\u0002\u0002\u0002\u03b5\u0003", + "\u0002\u0002\u0002\u0002\u03b7\u0003\u0002\u0002\u0002\u0002\u03b9\u0003", + "\u0002\u0002\u0002\u0002\u03bb\u0003\u0002\u0002\u0002\u0002\u03bd\u0003", + "\u0002\u0002\u0002\u0002\u03bf\u0003\u0002\u0002\u0002\u0002\u03c1\u0003", + "\u0002\u0002\u0002\u0002\u03c3\u0003\u0002\u0002\u0002\u0002\u03c5\u0003", + "\u0002\u0002\u0002\u0002\u03c7\u0003\u0002\u0002\u0002\u0002\u03c9\u0003", + "\u0002\u0002\u0002\u0002\u03cb\u0003\u0002\u0002\u0002\u0002\u03cd\u0003", + "\u0002\u0002\u0002\u0002\u03cf\u0003\u0002\u0002\u0002\u0002\u03d1\u0003", + "\u0002\u0002\u0002\u0002\u03d3\u0003\u0002\u0002\u0002\u0002\u03d5\u0003", + "\u0002\u0002\u0002\u0002\u03d7\u0003\u0002\u0002\u0002\u0002\u03d9\u0003", + "\u0002\u0002\u0002\u0002\u03db\u0003\u0002\u0002\u0002\u0002\u03dd\u0003", + "\u0002\u0002\u0002\u0002\u03df\u0003\u0002\u0002\u0002\u0002\u03e1\u0003", + "\u0002\u0002\u0002\u0002\u03e3\u0003\u0002\u0002\u0002\u0002\u03e5\u0003", + "\u0002\u0002\u0002\u0002\u03e7\u0003\u0002\u0002\u0002\u0002\u03e9\u0003", + "\u0002\u0002\u0002\u0002\u03eb\u0003\u0002\u0002\u0002\u0002\u03ed\u0003", + "\u0002\u0002\u0002\u0002\u03ef\u0003\u0002\u0002\u0002\u0002\u03f1\u0003", + "\u0002\u0002\u0002\u0002\u03f3\u0003\u0002\u0002\u0002\u0002\u03f5\u0003", + "\u0002\u0002\u0002\u0002\u03f7\u0003\u0002\u0002\u0002\u0002\u03f9\u0003", + "\u0002\u0002\u0002\u0002\u03fb\u0003\u0002\u0002\u0002\u0002\u03fd\u0003", + "\u0002\u0002\u0002\u0002\u03ff\u0003\u0002\u0002\u0002\u0002\u0401\u0003", + "\u0002\u0002\u0002\u0002\u0403\u0003\u0002\u0002\u0002\u0002\u0405\u0003", + "\u0002\u0002\u0002\u0002\u0407\u0003\u0002\u0002\u0002\u0002\u0409\u0003", + "\u0002\u0002\u0002\u0002\u040b\u0003\u0002\u0002\u0002\u0002\u040d\u0003", + "\u0002\u0002\u0002\u0002\u040f\u0003\u0002\u0002\u0002\u0002\u0411\u0003", + "\u0002\u0002\u0002\u0002\u0413\u0003\u0002\u0002\u0002\u0002\u0415\u0003", + "\u0002\u0002\u0002\u0002\u0417\u0003\u0002\u0002\u0002\u0002\u0419\u0003", + "\u0002\u0002\u0002\u0002\u041b\u0003\u0002\u0002\u0002\u0002\u041d\u0003", + "\u0002\u0002\u0002\u0002\u041f\u0003\u0002\u0002\u0002\u0002\u0421\u0003", + "\u0002\u0002\u0002\u0002\u0423\u0003\u0002\u0002\u0002\u0002\u0425\u0003", + "\u0002\u0002\u0002\u0002\u0427\u0003\u0002\u0002\u0002\u0002\u0429\u0003", + "\u0002\u0002\u0002\u0002\u042b\u0003\u0002\u0002\u0002\u0002\u042d\u0003", + "\u0002\u0002\u0002\u0002\u042f\u0003\u0002\u0002\u0002\u0002\u0431\u0003", + "\u0002\u0002\u0002\u0002\u0433\u0003\u0002\u0002\u0002\u0002\u0435\u0003", + "\u0002\u0002\u0002\u0002\u0437\u0003\u0002\u0002\u0002\u0002\u0439\u0003", + "\u0002\u0002\u0002\u0002\u043b\u0003\u0002\u0002\u0002\u0002\u043d\u0003", + "\u0002\u0002\u0002\u0002\u043f\u0003\u0002\u0002\u0002\u0002\u0441\u0003", + "\u0002\u0002\u0002\u0002\u0443\u0003\u0002\u0002\u0002\u0002\u0445\u0003", + "\u0002\u0002\u0002\u0002\u0447\u0003\u0002\u0002\u0002\u0002\u0449\u0003", + "\u0002\u0002\u0002\u0002\u044b\u0003\u0002\u0002\u0002\u0002\u044d\u0003", + "\u0002\u0002\u0002\u0002\u044f\u0003\u0002\u0002\u0002\u0002\u0451\u0003", + "\u0002\u0002\u0002\u0002\u0453\u0003\u0002\u0002\u0002\u0002\u0455\u0003", + "\u0002\u0002\u0002\u0002\u0457\u0003\u0002\u0002\u0002\u0002\u0459\u0003", + "\u0002\u0002\u0002\u0002\u045b\u0003\u0002\u0002\u0002\u0002\u045d\u0003", + "\u0002\u0002\u0002\u0002\u045f\u0003\u0002\u0002\u0002\u0002\u0461\u0003", + "\u0002\u0002\u0002\u0002\u0463\u0003\u0002\u0002\u0002\u0002\u0465\u0003", + "\u0002\u0002\u0002\u0002\u0467\u0003\u0002\u0002\u0002\u0002\u0469\u0003", + "\u0002\u0002\u0002\u0002\u046b\u0003\u0002\u0002\u0002\u0002\u046d\u0003", + "\u0002\u0002\u0002\u0002\u046f\u0003\u0002\u0002\u0002\u0002\u0471\u0003", + "\u0002\u0002\u0002\u0002\u0473\u0003\u0002\u0002\u0002\u0002\u0475\u0003", + "\u0002\u0002\u0002\u0002\u0477\u0003\u0002\u0002\u0002\u0002\u0479\u0003", + "\u0002\u0002\u0002\u0002\u047b\u0003\u0002\u0002\u0002\u0002\u047d\u0003", + "\u0002\u0002\u0002\u0002\u047f\u0003\u0002\u0002\u0002\u0002\u0481\u0003", + "\u0002\u0002\u0002\u0002\u0483\u0003\u0002\u0002\u0002\u0002\u0485\u0003", + "\u0002\u0002\u0002\u0002\u0487\u0003\u0002\u0002\u0002\u0002\u0489\u0003", + "\u0002\u0002\u0002\u0002\u048b\u0003\u0002\u0002\u0002\u0002\u048d\u0003", + "\u0002\u0002\u0002\u0002\u048f\u0003\u0002\u0002\u0002\u0002\u0491\u0003", + "\u0002\u0002\u0002\u0002\u0493\u0003\u0002\u0002\u0002\u0002\u0495\u0003", + "\u0002\u0002\u0002\u0002\u0497\u0003\u0002\u0002\u0002\u0002\u0499\u0003", + "\u0002\u0002\u0002\u0002\u049b\u0003\u0002\u0002\u0002\u0002\u049d\u0003", + "\u0002\u0002\u0002\u0002\u049f\u0003\u0002\u0002\u0002\u0002\u04a1\u0003", + "\u0002\u0002\u0002\u0002\u04a3\u0003\u0002\u0002\u0002\u0002\u04a5\u0003", + "\u0002\u0002\u0002\u0002\u04a7\u0003\u0002\u0002\u0002\u0002\u04a9\u0003", + "\u0002\u0002\u0002\u0002\u04ab\u0003\u0002\u0002\u0002\u0002\u04ad\u0003", + "\u0002\u0002\u0002\u0002\u04af\u0003\u0002\u0002\u0002\u0002\u04b1\u0003", + "\u0002\u0002\u0002\u0002\u04b3\u0003\u0002\u0002\u0002\u0002\u04b5\u0003", + "\u0002\u0002\u0002\u0002\u04b7\u0003\u0002\u0002\u0002\u0002\u04b9\u0003", + "\u0002\u0002\u0002\u0002\u04bb\u0003\u0002\u0002\u0002\u0002\u04bd\u0003", + "\u0002\u0002\u0002\u0002\u04bf\u0003\u0002\u0002\u0002\u0002\u04c1\u0003", + "\u0002\u0002\u0002\u0002\u04c3\u0003\u0002\u0002\u0002\u0002\u04c5\u0003", + "\u0002\u0002\u0002\u0002\u04c7\u0003\u0002\u0002\u0002\u0002\u04c9\u0003", + "\u0002\u0002\u0002\u0002\u04cb\u0003\u0002\u0002\u0002\u0002\u04cd\u0003", + "\u0002\u0002\u0002\u0002\u04cf\u0003\u0002\u0002\u0002\u0002\u04d1\u0003", + "\u0002\u0002\u0002\u0002\u04d3\u0003\u0002\u0002\u0002\u0002\u04d5\u0003", + "\u0002\u0002\u0002\u0002\u04d7\u0003\u0002\u0002\u0002\u0002\u04d9\u0003", + "\u0002\u0002\u0002\u0002\u04db\u0003\u0002\u0002\u0002\u0002\u04dd\u0003", + "\u0002\u0002\u0002\u0002\u04df\u0003\u0002\u0002\u0002\u0002\u04e1\u0003", + "\u0002\u0002\u0002\u0002\u04e3\u0003\u0002\u0002\u0002\u0002\u04e5\u0003", + "\u0002\u0002\u0002\u0002\u04e7\u0003\u0002\u0002\u0002\u0002\u04e9\u0003", + "\u0002\u0002\u0002\u0002\u04eb\u0003\u0002\u0002\u0002\u0002\u04ed\u0003", + "\u0002\u0002\u0002\u0002\u04ef\u0003\u0002\u0002\u0002\u0002\u04f1\u0003", + "\u0002\u0002\u0002\u0002\u04f3\u0003\u0002\u0002\u0002\u0002\u04f5\u0003", + "\u0002\u0002\u0002\u0002\u04f7\u0003\u0002\u0002\u0002\u0002\u04f9\u0003", + "\u0002\u0002\u0002\u0002\u04fb\u0003\u0002\u0002\u0002\u0002\u04fd\u0003", + "\u0002\u0002\u0002\u0002\u04ff\u0003\u0002\u0002\u0002\u0002\u0501\u0003", + "\u0002\u0002\u0002\u0002\u0503\u0003\u0002\u0002\u0002\u0002\u0505\u0003", + "\u0002\u0002\u0002\u0002\u0507\u0003\u0002\u0002\u0002\u0002\u0509\u0003", + "\u0002\u0002\u0002\u0002\u050b\u0003\u0002\u0002\u0002\u0002\u050d\u0003", + "\u0002\u0002\u0002\u0002\u050f\u0003\u0002\u0002\u0002\u0002\u0511\u0003", + "\u0002\u0002\u0002\u0002\u0513\u0003\u0002\u0002\u0002\u0002\u0515\u0003", + "\u0002\u0002\u0002\u0002\u0517\u0003\u0002\u0002\u0002\u0002\u0519\u0003", + "\u0002\u0002\u0002\u0002\u051b\u0003\u0002\u0002\u0002\u0002\u051d\u0003", + "\u0002\u0002\u0002\u0002\u051f\u0003\u0002\u0002\u0002\u0002\u0521\u0003", + "\u0002\u0002\u0002\u0002\u0523\u0003\u0002\u0002\u0002\u0002\u0525\u0003", + "\u0002\u0002\u0002\u0002\u0527\u0003\u0002\u0002\u0002\u0002\u0529\u0003", + "\u0002\u0002\u0002\u0002\u052b\u0003\u0002\u0002\u0002\u0002\u052d\u0003", + "\u0002\u0002\u0002\u0002\u052f\u0003\u0002\u0002\u0002\u0002\u0531\u0003", + "\u0002\u0002\u0002\u0002\u0533\u0003\u0002\u0002\u0002\u0002\u0535\u0003", + "\u0002\u0002\u0002\u0002\u0537\u0003\u0002\u0002\u0002\u0002\u0539\u0003", + "\u0002\u0002\u0002\u0002\u053b\u0003\u0002\u0002\u0002\u0002\u053d\u0003", + "\u0002\u0002\u0002\u0002\u053f\u0003\u0002\u0002\u0002\u0002\u0541\u0003", + "\u0002\u0002\u0002\u0002\u0543\u0003\u0002\u0002\u0002\u0002\u0545\u0003", + "\u0002\u0002\u0002\u0002\u0547\u0003\u0002\u0002\u0002\u0002\u0549\u0003", + "\u0002\u0002\u0002\u0002\u054b\u0003\u0002\u0002\u0002\u0002\u054d\u0003", + "\u0002\u0002\u0002\u0002\u054f\u0003\u0002\u0002\u0002\u0002\u0551\u0003", + "\u0002\u0002\u0002\u0002\u0553\u0003\u0002\u0002\u0002\u0002\u0555\u0003", + "\u0002\u0002\u0002\u0002\u0557\u0003\u0002\u0002\u0002\u0002\u0559\u0003", + "\u0002\u0002\u0002\u0002\u055b\u0003\u0002\u0002\u0002\u0002\u055d\u0003", + "\u0002\u0002\u0002\u0002\u055f\u0003\u0002\u0002\u0002\u0002\u0561\u0003", + "\u0002\u0002\u0002\u0002\u0563\u0003\u0002\u0002\u0002\u0002\u0565\u0003", + "\u0002\u0002\u0002\u0002\u0567\u0003\u0002\u0002\u0002\u0002\u0569\u0003", + "\u0002\u0002\u0002\u0002\u056b\u0003\u0002\u0002\u0002\u0002\u056d\u0003", + "\u0002\u0002\u0002\u0002\u056f\u0003\u0002\u0002\u0002\u0002\u0571\u0003", + "\u0002\u0002\u0002\u0002\u0573\u0003\u0002\u0002\u0002\u0002\u0575\u0003", + "\u0002\u0002\u0002\u0002\u0577\u0003\u0002\u0002\u0002\u0002\u0579\u0003", + "\u0002\u0002\u0002\u0002\u057b\u0003\u0002\u0002\u0002\u0002\u057d\u0003", + "\u0002\u0002\u0002\u0002\u057f\u0003\u0002\u0002\u0002\u0002\u0581\u0003", + "\u0002\u0002\u0002\u0002\u0583\u0003\u0002\u0002\u0002\u0002\u0585\u0003", + "\u0002\u0002\u0002\u0002\u0587\u0003\u0002\u0002\u0002\u0002\u0589\u0003", + "\u0002\u0002\u0002\u0002\u058b\u0003\u0002\u0002\u0002\u0002\u058d\u0003", + "\u0002\u0002\u0002\u0002\u058f\u0003\u0002\u0002\u0002\u0002\u0591\u0003", + "\u0002\u0002\u0002\u0002\u0593\u0003\u0002\u0002\u0002\u0002\u0595\u0003", + "\u0002\u0002\u0002\u0002\u0597\u0003\u0002\u0002\u0002\u0002\u0599\u0003", + "\u0002\u0002\u0002\u0002\u059b\u0003\u0002\u0002\u0002\u0002\u059d\u0003", + "\u0002\u0002\u0002\u0002\u059f\u0003\u0002\u0002\u0002\u0002\u05a1\u0003", + "\u0002\u0002\u0002\u0002\u05a3\u0003\u0002\u0002\u0002\u0002\u05a5\u0003", + "\u0002\u0002\u0002\u0002\u05a7\u0003\u0002\u0002\u0002\u0002\u05a9\u0003", + "\u0002\u0002\u0002\u0002\u05ab\u0003\u0002\u0002\u0002\u0002\u05ad\u0003", + "\u0002\u0002\u0002\u0002\u05af\u0003\u0002\u0002\u0002\u0002\u05b1\u0003", + "\u0002\u0002\u0002\u0002\u05b3\u0003\u0002\u0002\u0002\u0002\u05b5\u0003", + "\u0002\u0002\u0002\u0002\u05b7\u0003\u0002\u0002\u0002\u0002\u05b9\u0003", + "\u0002\u0002\u0002\u0002\u05bb\u0003\u0002\u0002\u0002\u0002\u05bd\u0003", + "\u0002\u0002\u0002\u0002\u05bf\u0003\u0002\u0002\u0002\u0002\u05c1\u0003", + "\u0002\u0002\u0002\u0002\u05c3\u0003\u0002\u0002\u0002\u0002\u05c5\u0003", + "\u0002\u0002\u0002\u0002\u05c7\u0003\u0002\u0002\u0002\u0002\u05c9\u0003", + "\u0002\u0002\u0002\u0002\u05cb\u0003\u0002\u0002\u0002\u0002\u05cd\u0003", + "\u0002\u0002\u0002\u0002\u05cf\u0003\u0002\u0002\u0002\u0002\u05d1\u0003", + "\u0002\u0002\u0002\u0002\u05d3\u0003\u0002\u0002\u0002\u0002\u05d5\u0003", + "\u0002\u0002\u0002\u0002\u05d7\u0003\u0002\u0002\u0002\u0002\u05d9\u0003", + "\u0002\u0002\u0002\u0002\u05db\u0003\u0002\u0002\u0002\u0002\u05dd\u0003", + "\u0002\u0002\u0002\u0002\u05df\u0003\u0002\u0002\u0002\u0002\u05e1\u0003", + "\u0002\u0002\u0002\u0002\u05e3\u0003\u0002\u0002\u0002\u0002\u05e5\u0003", + "\u0002\u0002\u0002\u0002\u05e7\u0003\u0002\u0002\u0002\u0002\u05e9\u0003", + "\u0002\u0002\u0002\u0002\u05eb\u0003\u0002\u0002\u0002\u0002\u05ed\u0003", + "\u0002\u0002\u0002\u0002\u05ef\u0003\u0002\u0002\u0002\u0002\u05f1\u0003", + "\u0002\u0002\u0002\u0002\u05f3\u0003\u0002\u0002\u0002\u0002\u05f5\u0003", + "\u0002\u0002\u0002\u0002\u05f7\u0003\u0002\u0002\u0002\u0002\u05f9\u0003", + "\u0002\u0002\u0002\u0002\u05fb\u0003\u0002\u0002\u0002\u0002\u05fd\u0003", + "\u0002\u0002\u0002\u0002\u05ff\u0003\u0002\u0002\u0002\u0002\u0601\u0003", + "\u0002\u0002\u0002\u0002\u0603\u0003\u0002\u0002\u0002\u0002\u0605\u0003", + "\u0002\u0002\u0002\u0002\u0607\u0003\u0002\u0002\u0002\u0002\u0609\u0003", + "\u0002\u0002\u0002\u0002\u060b\u0003\u0002\u0002\u0002\u0002\u060d\u0003", + "\u0002\u0002\u0002\u0002\u060f\u0003\u0002\u0002\u0002\u0002\u0611\u0003", + "\u0002\u0002\u0002\u0002\u0613\u0003\u0002\u0002\u0002\u0002\u0615\u0003", + "\u0002\u0002\u0002\u0002\u0617\u0003\u0002\u0002\u0002\u0002\u0619\u0003", + "\u0002\u0002\u0002\u0002\u061b\u0003\u0002\u0002\u0002\u0002\u061d\u0003", + "\u0002\u0002\u0002\u0002\u061f\u0003\u0002\u0002\u0002\u0002\u0621\u0003", + "\u0002\u0002\u0002\u0002\u0623\u0003\u0002\u0002\u0002\u0002\u0625\u0003", + "\u0002\u0002\u0002\u0002\u0627\u0003\u0002\u0002\u0002\u0002\u0629\u0003", + "\u0002\u0002\u0002\u0002\u062b\u0003\u0002\u0002\u0002\u0002\u062d\u0003", + "\u0002\u0002\u0002\u0002\u062f\u0003\u0002\u0002\u0002\u0002\u0631\u0003", + "\u0002\u0002\u0002\u0002\u0633\u0003\u0002\u0002\u0002\u0002\u0635\u0003", + "\u0002\u0002\u0002\u0002\u0637\u0003\u0002\u0002\u0002\u0002\u0639\u0003", + "\u0002\u0002\u0002\u0002\u063b\u0003\u0002\u0002\u0002\u0002\u063d\u0003", + "\u0002\u0002\u0002\u0002\u063f\u0003\u0002\u0002\u0002\u0002\u0641\u0003", + "\u0002\u0002\u0002\u0002\u0643\u0003\u0002\u0002\u0002\u0002\u0645\u0003", + "\u0002\u0002\u0002\u0002\u0647\u0003\u0002\u0002\u0002\u0002\u0649\u0003", + "\u0002\u0002\u0002\u0002\u064b\u0003\u0002\u0002\u0002\u0002\u064d\u0003", + "\u0002\u0002\u0002\u0002\u064f\u0003\u0002\u0002\u0002\u0002\u0651\u0003", + "\u0002\u0002\u0002\u0002\u0653\u0003\u0002\u0002\u0002\u0002\u0655\u0003", + "\u0002\u0002\u0002\u0002\u0657\u0003\u0002\u0002\u0002\u0002\u0659\u0003", + "\u0002\u0002\u0002\u0002\u065b\u0003\u0002\u0002\u0002\u0002\u065d\u0003", + "\u0002\u0002\u0002\u0002\u065f\u0003\u0002\u0002\u0002\u0002\u0661\u0003", + "\u0002\u0002\u0002\u0002\u0663\u0003\u0002\u0002\u0002\u0002\u0665\u0003", + "\u0002\u0002\u0002\u0002\u0667\u0003\u0002\u0002\u0002\u0002\u0669\u0003", + "\u0002\u0002\u0002\u0002\u066b\u0003\u0002\u0002\u0002\u0002\u066d\u0003", + "\u0002\u0002\u0002\u0002\u066f\u0003\u0002\u0002\u0002\u0002\u0671\u0003", + "\u0002\u0002\u0002\u0002\u0673\u0003\u0002\u0002\u0002\u0002\u0675\u0003", + "\u0002\u0002\u0002\u0002\u0677\u0003\u0002\u0002\u0002\u0002\u0679\u0003", + "\u0002\u0002\u0002\u0002\u067b\u0003\u0002\u0002\u0002\u0002\u067d\u0003", + "\u0002\u0002\u0002\u0002\u067f\u0003\u0002\u0002\u0002\u0002\u0681\u0003", + "\u0002\u0002\u0002\u0002\u0683\u0003\u0002\u0002\u0002\u0002\u0685\u0003", + "\u0002\u0002\u0002\u0002\u0687\u0003\u0002\u0002\u0002\u0002\u0689\u0003", + "\u0002\u0002\u0002\u0002\u068b\u0003\u0002\u0002\u0002\u0002\u068d\u0003", + "\u0002\u0002\u0002\u0002\u068f\u0003\u0002\u0002\u0002\u0002\u0695\u0003", + "\u0002\u0002\u0002\u0003\u069f\u0003\u0002\u0002\u0002\u0005\u06a6\u0003", + "\u0002\u0002\u0002\u0007\u06aa\u0003\u0002\u0002\u0002\t\u06ae\u0003", + "\u0002\u0002\u0002\u000b\u06b2\u0003\u0002\u0002\u0002\r\u06c4\u0003", + "\u0002\u0002\u0002\u000f\u06de\u0003\u0002\u0002\u0002\u0011\u06f6\u0003", + "\u0002\u0002\u0002\u0013\u06fc\u0003\u0002\u0002\u0002\u0015\u0700\u0003", + "\u0002\u0002\u0002\u0017\u070a\u0003\u0002\u0002\u0002\u0019\u070e\u0003", + "\u0002\u0002\u0002\u001b\u0715\u0003\u0002\u0002\u0002\u001d\u0721\u0003", + "\u0002\u0002\u0002\u001f\u0724\u0003\u0002\u0002\u0002!\u0728\u0003", + "\u0002\u0002\u0002#\u0733\u0003\u0002\u0002\u0002%\u0747\u0003\u0002", + "\u0002\u0002\'\u0755\u0003\u0002\u0002\u0002)\u0764\u0003\u0002\u0002", + "\u0002+\u0780\u0003\u0002\u0002\u0002-\u078a\u0003\u0002\u0002\u0002", + "/\u079c\u0003\u0002\u0002\u00021\u079e\u0003\u0002\u0002\u00023\u07a5", + "\u0003\u0002\u0002\u00025\u07ac\u0003\u0002\u0002\u00027\u07b2\u0003", + "\u0002\u0002\u00029\u07ba\u0003\u0002\u0002\u0002;\u07c0\u0003\u0002", + "\u0002\u0002=\u07ca\u0003\u0002\u0002\u0002?\u07dd\u0003\u0002\u0002", + "\u0002A\u07e3\u0003\u0002\u0002\u0002C\u07ea\u0003\u0002\u0002\u0002", + "E\u07f1\u0003\u0002\u0002\u0002G\u07fd\u0003\u0002\u0002\u0002I\u0802", + "\u0003\u0002\u0002\u0002K\u0805\u0003\u0002\u0002\u0002M\u080b\u0003", + "\u0002\u0002\u0002O\u0812\u0003\u0002\u0002\u0002Q\u081a\u0003\u0002", + "\u0002\u0002S\u081f\u0003\u0002\u0002\u0002U\u082b\u0003\u0002\u0002", + "\u0002W\u0837\u0003\u0002\u0002\u0002Y\u083f\u0003\u0002\u0002\u0002", + "[\u0845\u0003\u0002\u0002\u0002]\u0850\u0003\u0002\u0002\u0002_\u085d", + "\u0003\u0002\u0002\u0002a\u086e\u0003\u0002\u0002\u0002c\u0882\u0003", + "\u0002\u0002\u0002e\u0888\u0003\u0002\u0002\u0002g\u0890\u0003\u0002", + "\u0002\u0002i\u089a\u0003\u0002\u0002\u0002k\u08a3\u0003\u0002\u0002", + "\u0002m\u08ab\u0003\u0002\u0002\u0002o\u08b2\u0003\u0002\u0002\u0002", + "q\u08be\u0003\u0002\u0002\u0002s\u08c5\u0003\u0002\u0002\u0002u\u08cd", + "\u0003\u0002\u0002\u0002w\u08db\u0003\u0002\u0002\u0002y\u08e6\u0003", + "\u0002\u0002\u0002{\u08f2\u0003\u0002\u0002\u0002}\u08fb\u0003\u0002", + "\u0002\u0002\u007f\u0909\u0003\u0002\u0002\u0002\u0081\u0911\u0003\u0002", + "\u0002\u0002\u0083\u091a\u0003\u0002\u0002\u0002\u0085\u092f\u0003\u0002", + "\u0002\u0002\u0087\u0938\u0003\u0002\u0002\u0002\u0089\u0946\u0003\u0002", + "\u0002\u0002\u008b\u0957\u0003\u0002\u0002\u0002\u008d\u0961\u0003\u0002", + "\u0002\u0002\u008f\u096b\u0003\u0002\u0002\u0002\u0091\u0972\u0003\u0002", + "\u0002\u0002\u0093\u0978\u0003\u0002\u0002\u0002\u0095\u0980\u0003\u0002", + "\u0002\u0002\u0097\u098d\u0003\u0002\u0002\u0002\u0099\u099a\u0003\u0002", + "\u0002\u0002\u009b\u09ac\u0003\u0002\u0002\u0002\u009d\u09b9\u0003\u0002", + "\u0002\u0002\u009f\u09c0\u0003\u0002\u0002\u0002\u00a1\u09c6\u0003\u0002", + "\u0002\u0002\u00a3\u09d7\u0003\u0002\u0002\u0002\u00a5\u09e3\u0003\u0002", + "\u0002\u0002\u00a7\u09ec\u0003\u0002\u0002\u0002\u00a9\u09ff\u0003\u0002", + "\u0002\u0002\u00ab\u0a04\u0003\u0002\u0002\u0002\u00ad\u0a0f\u0003\u0002", + "\u0002\u0002\u00af\u0a17\u0003\u0002\u0002\u0002\u00b1\u0a1f\u0003\u0002", + "\u0002\u0002\u00b3\u0a30\u0003\u0002\u0002\u0002\u00b5\u0a3f\u0003\u0002", + "\u0002\u0002\u00b7\u0a46\u0003\u0002\u0002\u0002\u00b9\u0a4b\u0003\u0002", + "\u0002\u0002\u00bb\u0a50\u0003\u0002\u0002\u0002\u00bd\u0a5c\u0003\u0002", + "\u0002\u0002\u00bf\u0a69\u0003\u0002\u0002\u0002\u00c1\u0a6e\u0003\u0002", + "\u0002\u0002\u00c3\u0a77\u0003\u0002\u0002\u0002\u00c5\u0a83\u0003\u0002", + "\u0002\u0002\u00c7\u0a8a\u0003\u0002\u0002\u0002\u00c9\u0a8d\u0003\u0002", + "\u0002\u0002\u00cb\u0a90\u0003\u0002\u0002\u0002\u00cd\u0a95\u0003\u0002", + "\u0002\u0002\u00cf\u0aa1\u0003\u0002\u0002\u0002\u00d1\u0aa6\u0003\u0002", + "\u0002\u0002\u00d3\u0aab\u0003\u0002\u0002\u0002\u00d5\u0ab3\u0003\u0002", + "\u0002\u0002\u00d7\u0ab7\u0003\u0002\u0002\u0002\u00d9\u0ac0\u0003\u0002", + "\u0002\u0002\u00db\u0ac7\u0003\u0002\u0002\u0002\u00dd\u0ace\u0003\u0002", + "\u0002\u0002\u00df\u0ad4\u0003\u0002\u0002\u0002\u00e1\u0ada\u0003\u0002", + "\u0002\u0002\u00e3\u0ae7\u0003\u0002\u0002\u0002\u00e5\u0afc\u0003\u0002", + "\u0002\u0002\u00e7\u0b03\u0003\u0002\u0002\u0002\u00e9\u0b13\u0003\u0002", + "\u0002\u0002\u00eb\u0b1d\u0003\u0002\u0002\u0002\u00ed\u0b24\u0003\u0002", + "\u0002\u0002\u00ef\u0b2f\u0003\u0002\u0002\u0002\u00f1\u0b34\u0003\u0002", + "\u0002\u0002\u00f3\u0b3e\u0003\u0002\u0002\u0002\u00f5\u0b47\u0003\u0002", + "\u0002\u0002\u00f7\u0b57\u0003\u0002\u0002\u0002\u00f9\u0b60\u0003\u0002", + "\u0002\u0002\u00fb\u0b76\u0003\u0002\u0002\u0002\u00fd\u0b7d\u0003\u0002", + "\u0002\u0002\u00ff\u0b83\u0003\u0002\u0002\u0002\u0101\u0b88\u0003\u0002", + "\u0002\u0002\u0103\u0b91\u0003\u0002\u0002\u0002\u0105\u0b9c\u0003\u0002", + "\u0002\u0002\u0107\u0baa\u0003\u0002\u0002\u0002\u0109\u0bae\u0003\u0002", + "\u0002\u0002\u010b\u0bb8\u0003\u0002\u0002\u0002\u010d\u0bd6\u0003\u0002", + "\u0002\u0002\u010f\u0bde\u0003\u0002\u0002\u0002\u0111\u0be7\u0003\u0002", + "\u0002\u0002\u0113\u0bf5\u0003\u0002\u0002\u0002\u0115\u0bfa\u0003\u0002", + "\u0002\u0002\u0117\u0bff\u0003\u0002\u0002\u0002\u0119\u0c08\u0003\u0002", + "\u0002\u0002\u011b\u0c0c\u0003\u0002\u0002\u0002\u011d\u0c11\u0003\u0002", + "\u0002\u0002\u011f\u0c1a\u0003\u0002\u0002\u0002\u0121\u0c20\u0003\u0002", + "\u0002\u0002\u0123\u0c26\u0003\u0002\u0002\u0002\u0125\u0c2d\u0003\u0002", + "\u0002\u0002\u0127\u0c34\u0003\u0002\u0002\u0002\u0129\u0c47\u0003\u0002", + "\u0002\u0002\u012b\u0c50\u0003\u0002\u0002\u0002\u012d\u0c5c\u0003\u0002", + "\u0002\u0002\u012f\u0c6c\u0003\u0002\u0002\u0002\u0131\u0c6f\u0003\u0002", + "\u0002\u0002\u0133\u0c73\u0003\u0002\u0002\u0002\u0135\u0c76\u0003\u0002", + "\u0002\u0002\u0137\u0c7e\u0003\u0002\u0002\u0002\u0139\u0c88\u0003\u0002", + "\u0002\u0002\u013b\u0c8e\u0003\u0002\u0002\u0002\u013d\u0c97\u0003\u0002", + "\u0002\u0002\u013f\u0c9c\u0003\u0002\u0002\u0002\u0141\u0ca2\u0003\u0002", + "\u0002\u0002\u0143\u0ca9\u0003\u0002\u0002\u0002\u0145\u0cb1\u0003\u0002", + "\u0002\u0002\u0147\u0cbb\u0003\u0002\u0002\u0002\u0149\u0cc1\u0003\u0002", + "\u0002\u0002\u014b\u0cce\u0003\u0002\u0002\u0002\u014d\u0d3a\u0003\u0002", + "\u0002\u0002\u014f\u0d3d\u0003\u0002\u0002\u0002\u0151\u0d44\u0003\u0002", + "\u0002\u0002\u0153\u0d49\u0003\u0002\u0002\u0002\u0155\u0d52\u0003\u0002", + "\u0002\u0002\u0157\u0d56\u0003\u0002\u0002\u0002\u0159\u0d5f\u0003\u0002", + "\u0002\u0002\u015b\u0d77\u0003\u0002\u0002\u0002\u015d\u0d7c\u0003\u0002", + "\u0002\u0002\u015f\u0d85\u0003\u0002\u0002\u0002\u0161\u0d8a\u0003\u0002", + "\u0002\u0002\u0163\u0d92\u0003\u0002\u0002\u0002\u0165\u0d9b\u0003\u0002", + "\u0002\u0002\u0167\u0da0\u0003\u0002\u0002\u0002\u0169\u0da7\u0003\u0002", + "\u0002\u0002\u016b\u0dad\u0003\u0002\u0002\u0002\u016d\u0db9\u0003\u0002", + "\u0002\u0002\u016f\u0dc7\u0003\u0002\u0002\u0002\u0171\u0dcc\u0003\u0002", + "\u0002\u0002\u0173\u0ddf\u0003\u0002\u0002\u0002\u0175\u0de3\u0003\u0002", + "\u0002\u0002\u0177\u0deb\u0003\u0002\u0002\u0002\u0179\u0df2\u0003\u0002", + "\u0002\u0002\u017b\u0dfd\u0003\u0002\u0002\u0002\u017d\u0e09\u0003\u0002", + "\u0002\u0002\u017f\u0e12\u0003\u0002\u0002\u0002\u0181\u0e27\u0003\u0002", + "\u0002\u0002\u0183\u0e36\u0003\u0002\u0002\u0002\u0185\u0e3f\u0003\u0002", + "\u0002\u0002\u0187\u0e5d\u0003\u0002\u0002\u0002\u0189\u0e6e\u0003\u0002", + "\u0002\u0002\u018b\u0e78\u0003\u0002\u0002\u0002\u018d\u0e7f\u0003\u0002", + "\u0002\u0002\u018f\u0e95\u0003\u0002\u0002\u0002\u0191\u0e9b\u0003\u0002", + "\u0002\u0002\u0193\u0eae\u0003\u0002\u0002\u0002\u0195\u0ec3\u0003\u0002", + "\u0002\u0002\u0197\u0ecc\u0003\u0002\u0002\u0002\u0199\u0ed3\u0003\u0002", + "\u0002\u0002\u019b\u0edf\u0003\u0002\u0002\u0002\u019d\u0ee8\u0003\u0002", + "\u0002\u0002\u019f\u0ef2\u0003\u0002\u0002\u0002\u01a1\u0efa\u0003\u0002", + "\u0002\u0002\u01a3\u0f03\u0003\u0002\u0002\u0002\u01a5\u0f0a\u0003\u0002", + "\u0002\u0002\u01a7\u0f17\u0003\u0002\u0002\u0002\u01a9\u0f1c\u0003\u0002", + "\u0002\u0002\u01ab\u0f25\u0003\u0002\u0002\u0002\u01ad\u0f2c\u0003\u0002", + "\u0002\u0002\u01af\u0f35\u0003\u0002\u0002\u0002\u01b1\u0f41\u0003\u0002", + "\u0002\u0002\u01b3\u0f50\u0003\u0002\u0002\u0002\u01b5\u0f5e\u0003\u0002", + "\u0002\u0002\u01b7\u0f62\u0003\u0002\u0002\u0002\u01b9\u0f6f\u0003\u0002", + "\u0002\u0002\u01bb\u0f74\u0003\u0002\u0002\u0002\u01bd\u0f79\u0003\u0002", + "\u0002\u0002\u01bf\u0f80\u0003\u0002\u0002\u0002\u01c1\u0f83\u0003\u0002", + "\u0002\u0002\u01c3\u0f87\u0003\u0002\u0002\u0002\u01c5\u0f8f\u0003\u0002", + "\u0002\u0002\u01c7\u0f9c\u0003\u0002\u0002\u0002\u01c9\u0f9f\u0003\u0002", + "\u0002\u0002\u01cb\u0faa\u0003\u0002\u0002\u0002\u01cd\u0faf\u0003\u0002", + "\u0002\u0002\u01cf\u0fbe\u0003\u0002\u0002\u0002\u01d1\u0fc8\u0003\u0002", + "\u0002\u0002\u01d3\u0fd3\u0003\u0002\u0002\u0002\u01d5\u0fdb\u0003\u0002", + "\u0002\u0002\u01d7\u0fe2\u0003\u0002\u0002\u0002\u01d9\u0fe5\u0003\u0002", + "\u0002\u0002\u01db\u0feb\u0003\u0002\u0002\u0002\u01dd\u0ff1\u0003\u0002", + "\u0002\u0002\u01df\u0ff6\u0003\u0002\u0002\u0002\u01e1\u0ffb\u0003\u0002", + "\u0002\u0002\u01e3\u1006\u0003\u0002\u0002\u0002\u01e5\u100e\u0003\u0002", + "\u0002\u0002\u01e7\u1017\u0003\u0002\u0002\u0002\u01e9\u101f\u0003\u0002", + "\u0002\u0002\u01eb\u102e\u0003\u0002\u0002\u0002\u01ed\u1036\u0003\u0002", + "\u0002\u0002\u01ef\u103d\u0003\u0002\u0002\u0002\u01f1\u1046\u0003\u0002", + "\u0002\u0002\u01f3\u104c\u0003\u0002\u0002\u0002\u01f5\u1051\u0003\u0002", + "\u0002\u0002\u01f7\u105a\u0003\u0002\u0002\u0002\u01f9\u1061\u0003\u0002", + "\u0002\u0002\u01fb\u106b\u0003\u0002\u0002\u0002\u01fd\u1075\u0003\u0002", + "\u0002\u0002\u01ff\u107d\u0003\u0002\u0002\u0002\u0201\u1083\u0003\u0002", + "\u0002\u0002\u0203\u1088\u0003\u0002\u0002\u0002\u0205\u1092\u0003\u0002", + "\u0002\u0002\u0207\u109a\u0003\u0002\u0002\u0002\u0209\u10a1\u0003\u0002", + "\u0002\u0002\u020b\u10a8\u0003\u0002\u0002\u0002\u020d\u10aa\u0003\u0002", + "\u0002\u0002\u020f\u10b4\u0003\u0002\u0002\u0002\u0211\u10b8\u0003\u0002", + "\u0002\u0002\u0213\u10bd\u0003\u0002\u0002\u0002\u0215\u10c6\u0003\u0002", + "\u0002\u0002\u0217\u10dc\u0003\u0002\u0002\u0002\u0219\u10e8\u0003\u0002", + "\u0002\u0002\u021b\u10f3\u0003\u0002\u0002\u0002\u021d\u10fe\u0003\u0002", + "\u0002\u0002\u021f\u1113\u0003\u0002\u0002\u0002\u0221\u112e\u0003\u0002", + "\u0002\u0002\u0223\u113a\u0003\u0002\u0002\u0002\u0225\u1143\u0003\u0002", + "\u0002\u0002\u0227\u1149\u0003\u0002\u0002\u0002\u0229\u1151\u0003\u0002", + "\u0002\u0002\u022b\u1159\u0003\u0002\u0002\u0002\u022d\u1162\u0003\u0002", + "\u0002\u0002\u022f\u1169\u0003\u0002\u0002\u0002\u0231\u1174\u0003\u0002", + "\u0002\u0002\u0233\u117b\u0003\u0002\u0002\u0002\u0235\u1183\u0003\u0002", + "\u0002\u0002\u0237\u118a\u0003\u0002\u0002\u0002\u0239\u1191\u0003\u0002", + "\u0002\u0002\u023b\u1198\u0003\u0002\u0002\u0002\u023d\u119e\u0003\u0002", + "\u0002\u0002\u023f\u11a7\u0003\u0002\u0002\u0002\u0241\u11ac\u0003\u0002", + "\u0002\u0002\u0243\u11b5\u0003\u0002\u0002\u0002\u0245\u11c0\u0003\u0002", + "\u0002\u0002\u0247\u11c8\u0003\u0002\u0002\u0002\u0249\u11d1\u0003\u0002", + "\u0002\u0002\u024b\u11da\u0003\u0002\u0002\u0002\u024d\u11e3\u0003\u0002", + "\u0002\u0002\u024f\u11ec\u0003\u0002\u0002\u0002\u0251\u11f3\u0003\u0002", + "\u0002\u0002\u0253\u11f8\u0003\u0002\u0002\u0002\u0255\u11fd\u0003\u0002", + "\u0002\u0002\u0257\u1202\u0003\u0002\u0002\u0002\u0259\u120c\u0003\u0002", + "\u0002\u0002\u025b\u1213\u0003\u0002\u0002\u0002\u025d\u121a\u0003\u0002", + "\u0002\u0002\u025f\u1228\u0003\u0002\u0002\u0002\u0261\u122f\u0003\u0002", + "\u0002\u0002\u0263\u1246\u0003\u0002\u0002\u0002\u0265\u1265\u0003\u0002", + "\u0002\u0002\u0267\u127d\u0003\u0002\u0002\u0002\u0269\u1284\u0003\u0002", + "\u0002\u0002\u026b\u128c\u0003\u0002\u0002\u0002\u026d\u129b\u0003\u0002", + "\u0002\u0002\u026f\u12a8\u0003\u0002\u0002\u0002\u0271\u12b0\u0003\u0002", + "\u0002\u0002\u0273\u12bd\u0003\u0002\u0002\u0002\u0275\u12c1\u0003\u0002", + "\u0002\u0002\u0277\u12c9\u0003\u0002\u0002\u0002\u0279\u12d2\u0003\u0002", + "\u0002\u0002\u027b\u12d6\u0003\u0002\u0002\u0002\u027d\u12db\u0003\u0002", + "\u0002\u0002\u027f\u12e4\u0003\u0002\u0002\u0002\u0281\u12e9\u0003\u0002", + "\u0002\u0002\u0283\u12f0\u0003\u0002\u0002\u0002\u0285\u12fe\u0003\u0002", + "\u0002\u0002\u0287\u1304\u0003\u0002\u0002\u0002\u0289\u1313\u0003\u0002", + "\u0002\u0002\u028b\u1321\u0003\u0002\u0002\u0002\u028d\u1333\u0003\u0002", + "\u0002\u0002\u028f\u133e\u0003\u0002\u0002\u0002\u0291\u1344\u0003\u0002", + "\u0002\u0002\u0293\u134a\u0003\u0002\u0002\u0002\u0295\u1350\u0003\u0002", + "\u0002\u0002\u0297\u1358\u0003\u0002\u0002\u0002\u0299\u1366\u0003\u0002", + "\u0002\u0002\u029b\u136b\u0003\u0002\u0002\u0002\u029d\u1373\u0003\u0002", + "\u0002\u0002\u029f\u1381\u0003\u0002\u0002\u0002\u02a1\u138b\u0003\u0002", + "\u0002\u0002\u02a3\u1397\u0003\u0002\u0002\u0002\u02a5\u139d\u0003\u0002", + "\u0002\u0002\u02a7\u13a9\u0003\u0002\u0002\u0002\u02a9\u13ae\u0003\u0002", + "\u0002\u0002\u02ab\u13b5\u0003\u0002\u0002\u0002\u02ad\u13b9\u0003\u0002", + "\u0002\u0002\u02af\u13c2\u0003\u0002\u0002\u0002\u02b1\u13c7\u0003\u0002", + "\u0002\u0002\u02b3\u13ca\u0003\u0002\u0002\u0002\u02b5\u13ce\u0003\u0002", + "\u0002\u0002\u02b7\u13de\u0003\u0002\u0002\u0002\u02b9\u13e3\u0003\u0002", + "\u0002\u0002\u02bb\u13ef\u0003\u0002\u0002\u0002\u02bd\u13f8\u0003\u0002", + "\u0002\u0002\u02bf\u1400\u0003\u0002\u0002\u0002\u02c1\u1409\u0003\u0002", + "\u0002\u0002\u02c3\u1411\u0003\u0002\u0002\u0002\u02c5\u141b\u0003\u0002", + "\u0002\u0002\u02c7\u1421\u0003\u0002\u0002\u0002\u02c9\u1428\u0003\u0002", + "\u0002\u0002\u02cb\u142f\u0003\u0002\u0002\u0002\u02cd\u1437\u0003\u0002", + "\u0002\u0002\u02cf\u143e\u0003\u0002\u0002\u0002\u02d1\u1445\u0003\u0002", + "\u0002\u0002\u02d3\u1450\u0003\u0002\u0002\u0002\u02d5\u1454\u0003\u0002", + "\u0002\u0002\u02d7\u1458\u0003\u0002\u0002\u0002\u02d9\u145d\u0003\u0002", + "\u0002\u0002\u02db\u1462\u0003\u0002\u0002\u0002\u02dd\u1469\u0003\u0002", + "\u0002\u0002\u02df\u1471\u0003\u0002\u0002\u0002\u02e1\u1480\u0003\u0002", + "\u0002\u0002\u02e3\u1485\u0003\u0002\u0002\u0002\u02e5\u1490\u0003\u0002", + "\u0002\u0002\u02e7\u1498\u0003\u0002\u0002\u0002\u02e9\u149d\u0003\u0002", + "\u0002\u0002\u02eb\u14a3\u0003\u0002\u0002\u0002\u02ed\u14a9\u0003\u0002", + "\u0002\u0002\u02ef\u14b1\u0003\u0002\u0002\u0002\u02f1\u14b6\u0003\u0002", + "\u0002\u0002\u02f3\u14bd\u0003\u0002\u0002\u0002\u02f5\u14c5\u0003\u0002", + "\u0002\u0002\u02f7\u14cd\u0003\u0002\u0002\u0002\u02f9\u14d7\u0003\u0002", + "\u0002\u0002\u02fb\u14e0\u0003\u0002\u0002\u0002\u02fd\u14f3\u0003\u0002", + "\u0002\u0002\u02ff\u14fa\u0003\u0002\u0002\u0002\u0301\u1505\u0003\u0002", + "\u0002\u0002\u0303\u150c\u0003\u0002\u0002\u0002\u0305\u1514\u0003\u0002", + "\u0002\u0002\u0307\u151c\u0003\u0002\u0002\u0002\u0309\u1524\u0003\u0002", + "\u0002\u0002\u030b\u152c\u0003\u0002\u0002\u0002\u030d\u1535\u0003\u0002", + "\u0002\u0002\u030f\u153b\u0003\u0002\u0002\u0002\u0311\u1545\u0003\u0002", + "\u0002\u0002\u0313\u154f\u0003\u0002\u0002\u0002\u0315\u1573\u0003\u0002", + "\u0002\u0002\u0317\u158c\u0003\u0002\u0002\u0002\u0319\u1594\u0003\u0002", + "\u0002\u0002\u031b\u15a6\u0003\u0002\u0002\u0002\u031d\u15b1\u0003\u0002", + "\u0002\u0002\u031f\u15be\u0003\u0002\u0002\u0002\u0321\u15cc\u0003\u0002", + "\u0002\u0002\u0323\u15dc\u0003\u0002\u0002\u0002\u0325\u15e2\u0003\u0002", + "\u0002\u0002\u0327\u15ed\u0003\u0002\u0002\u0002\u0329\u15f6\u0003\u0002", + "\u0002\u0002\u032b\u15fc\u0003\u0002\u0002\u0002\u032d\u1607\u0003\u0002", + "\u0002\u0002\u032f\u160c\u0003\u0002\u0002\u0002\u0331\u1619\u0003\u0002", + "\u0002\u0002\u0333\u1624\u0003\u0002\u0002\u0002\u0335\u163b\u0003\u0002", + "\u0002\u0002\u0337\u1647\u0003\u0002\u0002\u0002\u0339\u165e\u0003\u0002", + "\u0002\u0002\u033b\u167b\u0003\u0002\u0002\u0002\u033d\u1688\u0003\u0002", + "\u0002\u0002\u033f\u168c\u0003\u0002\u0002\u0002\u0341\u169c\u0003\u0002", + "\u0002\u0002\u0343\u16a9\u0003\u0002\u0002\u0002\u0345\u16b0\u0003\u0002", + "\u0002\u0002\u0347\u16be\u0003\u0002\u0002\u0002\u0349\u16ce\u0003\u0002", + "\u0002\u0002\u034b\u16d6\u0003\u0002\u0002\u0002\u034d\u16e3\u0003\u0002", + "\u0002\u0002\u034f\u16ea\u0003\u0002\u0002\u0002\u0351\u16fa\u0003\u0002", + "\u0002\u0002\u0353\u1706\u0003\u0002\u0002\u0002\u0355\u170d\u0003\u0002", + "\u0002\u0002\u0357\u1721\u0003\u0002\u0002\u0002\u0359\u1728\u0003\u0002", + "\u0002\u0002\u035b\u1730\u0003\u0002\u0002\u0002\u035d\u1736\u0003\u0002", + "\u0002\u0002\u035f\u1747\u0003\u0002\u0002\u0002\u0361\u1757\u0003\u0002", + "\u0002\u0002\u0363\u1760\u0003\u0002\u0002\u0002\u0365\u176d\u0003\u0002", + "\u0002\u0002\u0367\u1775\u0003\u0002\u0002\u0002\u0369\u1780\u0003\u0002", + "\u0002\u0002\u036b\u1792\u0003\u0002\u0002\u0002\u036d\u179c\u0003\u0002", + "\u0002\u0002\u036f\u17b0\u0003\u0002\u0002\u0002\u0371\u17b7\u0003\u0002", + "\u0002\u0002\u0373\u17cf\u0003\u0002\u0002\u0002\u0375\u17d7\u0003\u0002", + "\u0002\u0002\u0377\u17df\u0003\u0002\u0002\u0002\u0379\u17e6\u0003\u0002", + "\u0002\u0002\u037b\u17ec\u0003\u0002\u0002\u0002\u037d\u17f6\u0003\u0002", + "\u0002\u0002\u037f\u17fe\u0003\u0002\u0002\u0002\u0381\u1802\u0003\u0002", + "\u0002\u0002\u0383\u180d\u0003\u0002\u0002\u0002\u0385\u1822\u0003\u0002", + "\u0002\u0002\u0387\u182d\u0003\u0002\u0002\u0002\u0389\u183b\u0003\u0002", + "\u0002\u0002\u038b\u1852\u0003\u0002\u0002\u0002\u038d\u1861\u0003\u0002", + "\u0002\u0002\u038f\u1866\u0003\u0002\u0002\u0002\u0391\u1884\u0003\u0002", + "\u0002\u0002\u0393\u188c\u0003\u0002\u0002\u0002\u0395\u1895\u0003\u0002", + "\u0002\u0002\u0397\u189e\u0003\u0002\u0002\u0002\u0399\u18a7\u0003\u0002", + "\u0002\u0002\u039b\u18ac\u0003\u0002\u0002\u0002\u039d\u18b8\u0003\u0002", + "\u0002\u0002\u039f\u18c4\u0003\u0002\u0002\u0002\u03a1\u18cf\u0003\u0002", + "\u0002\u0002\u03a3\u18da\u0003\u0002\u0002\u0002\u03a5\u18f4\u0003\u0002", + "\u0002\u0002\u03a7\u1905\u0003\u0002\u0002\u0002\u03a9\u190b\u0003\u0002", + "\u0002\u0002\u03ab\u191e\u0003\u0002\u0002\u0002\u03ad\u1926\u0003\u0002", + "\u0002\u0002\u03af\u1931\u0003\u0002\u0002\u0002\u03b1\u193c\u0003\u0002", + "\u0002\u0002\u03b3\u1940\u0003\u0002\u0002\u0002\u03b5\u194c\u0003\u0002", + "\u0002\u0002\u03b7\u1951\u0003\u0002\u0002\u0002\u03b9\u1956\u0003\u0002", + "\u0002\u0002\u03bb\u195d\u0003\u0002\u0002\u0002\u03bd\u196c\u0003\u0002", + "\u0002\u0002\u03bf\u1974\u0003\u0002\u0002\u0002\u03c1\u1983\u0003\u0002", + "\u0002\u0002\u03c3\u198c\u0003\u0002\u0002\u0002\u03c5\u198f\u0003\u0002", + "\u0002\u0002\u03c7\u1998\u0003\u0002\u0002\u0002\u03c9\u19a0\u0003\u0002", + "\u0002\u0002\u03cb\u19a9\u0003\u0002\u0002\u0002\u03cd\u19b3\u0003\u0002", + "\u0002\u0002\u03cf\u19b9\u0003\u0002\u0002\u0002\u03d1\u19c0\u0003\u0002", + "\u0002\u0002\u03d3\u19ce\u0003\u0002\u0002\u0002\u03d5\u19de\u0003\u0002", + "\u0002\u0002\u03d7\u19e9\u0003\u0002\u0002\u0002\u03d9\u19f6\u0003\u0002", + "\u0002\u0002\u03db\u1a11\u0003\u0002\u0002\u0002\u03dd\u1a1b\u0003\u0002", + "\u0002\u0002\u03df\u1a26\u0003\u0002\u0002\u0002\u03e1\u1a2c\u0003\u0002", + "\u0002\u0002\u03e3\u1a33\u0003\u0002\u0002\u0002\u03e5\u1a3f\u0003\u0002", + "\u0002\u0002\u03e7\u1a48\u0003\u0002\u0002\u0002\u03e9\u1a57\u0003\u0002", + "\u0002\u0002\u03eb\u1a65\u0003\u0002\u0002\u0002\u03ed\u1a6d\u0003\u0002", + "\u0002\u0002\u03ef\u1a85\u0003\u0002\u0002\u0002\u03f1\u1a8a\u0003\u0002", + "\u0002\u0002\u03f3\u1a97\u0003\u0002\u0002\u0002\u03f5\u1aa1\u0003\u0002", + "\u0002\u0002\u03f7\u1aac\u0003\u0002\u0002\u0002\u03f9\u1ab5\u0003\u0002", + "\u0002\u0002\u03fb\u1ac0\u0003\u0002\u0002\u0002\u03fd\u1ac7\u0003\u0002", + "\u0002\u0002\u03ff\u1acd\u0003\u0002\u0002\u0002\u0401\u1ad9\u0003\u0002", + "\u0002\u0002\u0403\u1ae3\u0003\u0002\u0002\u0002\u0405\u1ae9\u0003\u0002", + "\u0002\u0002\u0407\u1b08\u0003\u0002\u0002\u0002\u0409\u1b0f\u0003\u0002", + "\u0002\u0002\u040b\u1b16\u0003\u0002\u0002\u0002\u040d\u1b23\u0003\u0002", + "\u0002\u0002\u040f\u1b2c\u0003\u0002\u0002\u0002\u0411\u1b35\u0003\u0002", + "\u0002\u0002\u0413\u1b38\u0003\u0002\u0002\u0002\u0415\u1b40\u0003\u0002", + "\u0002\u0002\u0417\u1b4b\u0003\u0002\u0002\u0002\u0419\u1b52\u0003\u0002", + "\u0002\u0002\u041b\u1b55\u0003\u0002\u0002\u0002\u041d\u1b68\u0003\u0002", + "\u0002\u0002\u041f\u1b71\u0003\u0002\u0002\u0002\u0421\u1b7d\u0003\u0002", + "\u0002\u0002\u0423\u1b82\u0003\u0002\u0002\u0002\u0425\u1b87\u0003\u0002", + "\u0002\u0002\u0427\u1b9c\u0003\u0002\u0002\u0002\u0429\u1ba1\u0003\u0002", + "\u0002\u0002\u042b\u1bb7\u0003\u0002\u0002\u0002\u042d\u1bbd\u0003\u0002", + "\u0002\u0002\u042f\u1bcc\u0003\u0002\u0002\u0002\u0431\u1bf2\u0003\u0002", + "\u0002\u0002\u0433\u1bfc\u0003\u0002\u0002\u0002\u0435\u1c08\u0003\u0002", + "\u0002\u0002\u0437\u1c13\u0003\u0002\u0002\u0002\u0439\u1c27\u0003\u0002", + "\u0002\u0002\u043b\u1c33\u0003\u0002\u0002\u0002\u043d\u1c3d\u0003\u0002", + "\u0002\u0002\u043f\u1c43\u0003\u0002\u0002\u0002\u0441\u1c4f\u0003\u0002", + "\u0002\u0002\u0443\u1c58\u0003\u0002\u0002\u0002\u0445\u1c5c\u0003\u0002", + "\u0002\u0002\u0447\u1c5f\u0003\u0002\u0002\u0002\u0449\u1c69\u0003\u0002", + "\u0002\u0002\u044b\u1c6d\u0003\u0002\u0002\u0002\u044d\u1c72\u0003\u0002", + "\u0002\u0002\u044f\u1c75\u0003\u0002\u0002\u0002\u0451\u1c7a\u0003\u0002", + "\u0002\u0002\u0453\u1c84\u0003\u0002\u0002\u0002\u0455\u1c8f\u0003\u0002", + "\u0002\u0002\u0457\u1c94\u0003\u0002\u0002\u0002\u0459\u1c9b\u0003\u0002", + "\u0002\u0002\u045b\u1c9f\u0003\u0002\u0002\u0002\u045d\u1ca4\u0003\u0002", + "\u0002\u0002\u045f\u1caf\u0003\u0002\u0002\u0002\u0461\u1cb4\u0003\u0002", + "\u0002\u0002\u0463\u1cba\u0003\u0002\u0002\u0002\u0465\u1cbf\u0003\u0002", + "\u0002\u0002\u0467\u1cc8\u0003\u0002\u0002\u0002\u0469\u1cd5\u0003\u0002", + "\u0002\u0002\u046b\u1ce4\u0003\u0002\u0002\u0002\u046d\u1cea\u0003\u0002", + "\u0002\u0002\u046f\u1cf3\u0003\u0002\u0002\u0002\u0471\u1cf8\u0003\u0002", + "\u0002\u0002\u0473\u1d08\u0003\u0002\u0002\u0002\u0475\u1d0e\u0003\u0002", + "\u0002\u0002\u0477\u1d13\u0003\u0002\u0002\u0002\u0479\u1d17\u0003\u0002", + "\u0002\u0002\u047b\u1d1e\u0003\u0002\u0002\u0002\u047d\u1d23\u0003\u0002", + "\u0002\u0002\u047f\u1d30\u0003\u0002\u0002\u0002\u0481\u1d34\u0003\u0002", + "\u0002\u0002\u0483\u1d44\u0003\u0002\u0002\u0002\u0485\u1d4c\u0003\u0002", + "\u0002\u0002\u0487\u1d56\u0003\u0002\u0002\u0002\u0489\u1d6a\u0003\u0002", + "\u0002\u0002\u048b\u1d7d\u0003\u0002\u0002\u0002\u048d\u1d8b\u0003\u0002", + "\u0002\u0002\u048f\u1d9d\u0003\u0002\u0002\u0002\u0491\u1db0\u0003\u0002", + "\u0002\u0002\u0493\u1db7\u0003\u0002\u0002\u0002\u0495\u1dc4\u0003\u0002", + "\u0002\u0002\u0497\u1dcc\u0003\u0002\u0002\u0002\u0499\u1dcf\u0003\u0002", + "\u0002\u0002\u049b\u1dd6\u0003\u0002\u0002\u0002\u049d\u1dec\u0003\u0002", + "\u0002\u0002\u049f\u1df4\u0003\u0002\u0002\u0002\u04a1\u1df8\u0003\u0002", + "\u0002\u0002\u04a3\u1e0e\u0003\u0002\u0002\u0002\u04a5\u1e1e\u0003\u0002", + "\u0002\u0002\u04a7\u1e32\u0003\u0002\u0002\u0002\u04a9\u1e45\u0003\u0002", + "\u0002\u0002\u04ab\u1e4d\u0003\u0002\u0002\u0002\u04ad\u1e5c\u0003\u0002", + "\u0002\u0002\u04af\u1e72\u0003\u0002\u0002\u0002\u04b1\u1e77\u0003\u0002", + "\u0002\u0002\u04b3\u1e7e\u0003\u0002\u0002\u0002\u04b5\u1e83\u0003\u0002", + "\u0002\u0002\u04b7\u1e8e\u0003\u0002\u0002\u0002\u04b9\u1e93\u0003\u0002", + "\u0002\u0002\u04bb\u1ea3\u0003\u0002\u0002\u0002\u04bd\u1eaf\u0003\u0002", + "\u0002\u0002\u04bf\u1eba\u0003\u0002\u0002\u0002\u04c1\u1ec7\u0003\u0002", + "\u0002\u0002\u04c3\u1ecc\u0003\u0002\u0002\u0002\u04c5\u1ecf\u0003\u0002", + "\u0002\u0002\u04c7\u1edb\u0003\u0002\u0002\u0002\u04c9\u1ee3\u0003\u0002", + "\u0002\u0002\u04cb\u1eeb\u0003\u0002\u0002\u0002\u04cd\u1ef1\u0003\u0002", + "\u0002\u0002\u04cf\u1efa\u0003\u0002\u0002\u0002\u04d1\u1f10\u0003\u0002", + "\u0002\u0002\u04d3\u1f1c\u0003\u0002\u0002\u0002\u04d5\u1f27\u0003\u0002", + "\u0002\u0002\u04d7\u1f2e\u0003\u0002\u0002\u0002\u04d9\u1f34\u0003\u0002", + "\u0002\u0002\u04db\u1f3d\u0003\u0002\u0002\u0002\u04dd\u1f44\u0003\u0002", + "\u0002\u0002\u04df\u1f57\u0003\u0002\u0002\u0002\u04e1\u1f5e\u0003\u0002", + "\u0002\u0002\u04e3\u1f66\u0003\u0002\u0002\u0002\u04e5\u1f6d\u0003\u0002", + "\u0002\u0002\u04e7\u1f79\u0003\u0002\u0002\u0002\u04e9\u1f80\u0003\u0002", + "\u0002\u0002\u04eb\u1f85\u0003\u0002\u0002\u0002\u04ed\u1f93\u0003\u0002", + "\u0002\u0002\u04ef\u1f9e\u0003\u0002\u0002\u0002\u04f1\u1fa7\u0003\u0002", + "\u0002\u0002\u04f3\u1fab\u0003\u0002\u0002\u0002\u04f5\u1fb2\u0003\u0002", + "\u0002\u0002\u04f7\u1fbb\u0003\u0002\u0002\u0002\u04f9\u1fc1\u0003\u0002", + "\u0002\u0002\u04fb\u1fcd\u0003\u0002\u0002\u0002\u04fd\u1fde\u0003\u0002", + "\u0002\u0002\u04ff\u1fe8\u0003\u0002\u0002\u0002\u0501\u1ff3\u0003\u0002", + "\u0002\u0002\u0503\u1ffb\u0003\u0002\u0002\u0002\u0505\u2000\u0003\u0002", + "\u0002\u0002\u0507\u2018\u0003\u0002\u0002\u0002\u0509\u201d\u0003\u0002", + "\u0002\u0002\u050b\u2022\u0003\u0002\u0002\u0002\u050d\u202c\u0003\u0002", + "\u0002\u0002\u050f\u2039\u0003\u0002\u0002\u0002\u0511\u203f\u0003\u0002", + "\u0002\u0002\u0513\u2048\u0003\u0002\u0002\u0002\u0515\u2057\u0003\u0002", + "\u0002\u0002\u0517\u205f\u0003\u0002\u0002\u0002\u0519\u206b\u0003\u0002", + "\u0002\u0002\u051b\u2076\u0003\u0002\u0002\u0002\u051d\u2085\u0003\u0002", + "\u0002\u0002\u051f\u208e\u0003\u0002\u0002\u0002\u0521\u2097\u0003\u0002", + "\u0002\u0002\u0523\u20a9\u0003\u0002\u0002\u0002\u0525\u20af\u0003\u0002", + "\u0002\u0002\u0527\u20b5\u0003\u0002\u0002\u0002\u0529\u20c1\u0003\u0002", + "\u0002\u0002\u052b\u20d3\u0003\u0002\u0002\u0002\u052d\u20d9\u0003\u0002", + "\u0002\u0002\u052f\u20de\u0003\u0002\u0002\u0002\u0531\u20e2\u0003\u0002", + "\u0002\u0002\u0533\u20e6\u0003\u0002\u0002\u0002\u0535\u20ee\u0003\u0002", + "\u0002\u0002\u0537\u2106\u0003\u0002\u0002\u0002\u0539\u2110\u0003\u0002", + "\u0002\u0002\u053b\u2127\u0003\u0002\u0002\u0002\u053d\u2132\u0003\u0002", + "\u0002\u0002\u053f\u213b\u0003\u0002\u0002\u0002\u0541\u2143\u0003\u0002", + "\u0002\u0002\u0543\u214b\u0003\u0002\u0002\u0002\u0545\u2155\u0003\u0002", + "\u0002\u0002\u0547\u215e\u0003\u0002\u0002\u0002\u0549\u2171\u0003\u0002", + "\u0002\u0002\u054b\u217a\u0003\u0002\u0002\u0002\u054d\u2181\u0003\u0002", + "\u0002\u0002\u054f\u2195\u0003\u0002\u0002\u0002\u0551\u219c\u0003\u0002", + "\u0002\u0002\u0553\u21a7\u0003\u0002\u0002\u0002\u0555\u21b2\u0003\u0002", + "\u0002\u0002\u0557\u21ba\u0003\u0002\u0002\u0002\u0559\u21d3\u0003\u0002", + "\u0002\u0002\u055b\u21f4\u0003\u0002\u0002\u0002\u055d\u2215\u0003\u0002", + "\u0002\u0002\u055f\u2241\u0003\u0002\u0002\u0002\u0561\u2254\u0003\u0002", + "\u0002\u0002\u0563\u225d\u0003\u0002\u0002\u0002\u0565\u2277\u0003\u0002", + "\u0002\u0002\u0567\u2287\u0003\u0002\u0002\u0002\u0569\u2291\u0003\u0002", + "\u0002\u0002\u056b\u2298\u0003\u0002\u0002\u0002\u056d\u229d\u0003\u0002", + "\u0002\u0002\u056f\u22a3\u0003\u0002\u0002\u0002\u0571\u22a7\u0003\u0002", + "\u0002\u0002\u0573\u22b2\u0003\u0002\u0002\u0002\u0575\u22ba\u0003\u0002", + "\u0002\u0002\u0577\u22bf\u0003\u0002\u0002\u0002\u0579\u22c6\u0003\u0002", + "\u0002\u0002\u057b\u22d4\u0003\u0002\u0002\u0002\u057d\u22db\u0003\u0002", + "\u0002\u0002\u057f\u22e2\u0003\u0002\u0002\u0002\u0581\u22ef\u0003\u0002", + "\u0002\u0002\u0583\u22f6\u0003\u0002\u0002\u0002\u0585\u2300\u0003\u0002", + "\u0002\u0002\u0587\u230f\u0003\u0002\u0002\u0002\u0589\u231e\u0003\u0002", + "\u0002\u0002\u058b\u2326\u0003\u0002\u0002\u0002\u058d\u232d\u0003\u0002", + "\u0002\u0002\u058f\u2336\u0003\u0002\u0002\u0002\u0591\u2343\u0003\u0002", + "\u0002\u0002\u0593\u2350\u0003\u0002\u0002\u0002\u0595\u2355\u0003\u0002", + "\u0002\u0002\u0597\u2364\u0003\u0002\u0002\u0002\u0599\u2369\u0003\u0002", + "\u0002\u0002\u059b\u236e\u0003\u0002\u0002\u0002\u059d\u2377\u0003\u0002", + "\u0002\u0002\u059f\u2384\u0003\u0002\u0002\u0002\u05a1\u2394\u0003\u0002", + "\u0002\u0002\u05a3\u239d\u0003\u0002\u0002\u0002\u05a5\u23a3\u0003\u0002", + "\u0002\u0002\u05a7\u23ac\u0003\u0002\u0002\u0002\u05a9\u23b6\u0003\u0002", + "\u0002\u0002\u05ab\u23bd\u0003\u0002\u0002\u0002\u05ad\u23c9\u0003\u0002", + "\u0002\u0002\u05af\u23ce\u0003\u0002\u0002\u0002\u05b1\u23d7\u0003\u0002", + "\u0002\u0002\u05b3\u23e0\u0003\u0002\u0002\u0002\u05b5\u23f9\u0003\u0002", + "\u0002\u0002\u05b7\u2401\u0003\u0002\u0002\u0002\u05b9\u240c\u0003\u0002", + "\u0002\u0002\u05bb\u2413\u0003\u0002\u0002\u0002\u05bd\u2420\u0003\u0002", + "\u0002\u0002\u05bf\u2427\u0003\u0002\u0002\u0002\u05c1\u2432\u0003\u0002", + "\u0002\u0002\u05c3\u2438\u0003\u0002\u0002\u0002\u05c5\u243f\u0003\u0002", + "\u0002\u0002\u05c7\u2448\u0003\u0002\u0002\u0002\u05c9\u2453\u0003\u0002", + "\u0002\u0002\u05cb\u2459\u0003\u0002\u0002\u0002\u05cd\u2461\u0003\u0002", + "\u0002\u0002\u05cf\u246e\u0003\u0002\u0002\u0002\u05d1\u2472\u0003\u0002", + "\u0002\u0002\u05d3\u247a\u0003\u0002\u0002\u0002\u05d5\u2484\u0003\u0002", + "\u0002\u0002\u05d7\u2497\u0003\u0002\u0002\u0002\u05d9\u249f\u0003\u0002", + "\u0002\u0002\u05db\u24a6\u0003\u0002\u0002\u0002\u05dd\u24ab\u0003\u0002", + "\u0002\u0002\u05df\u24c0\u0003\u0002\u0002\u0002\u05e1\u24c3\u0003\u0002", + "\u0002\u0002\u05e3\u24d0\u0003\u0002\u0002\u0002\u05e5\u24d6\u0003\u0002", + "\u0002\u0002\u05e7\u24db\u0003\u0002\u0002\u0002\u05e9\u24e0\u0003\u0002", + "\u0002\u0002\u05eb\u24e8\u0003\u0002\u0002\u0002\u05ed\u24ee\u0003\u0002", + "\u0002\u0002\u05ef\u24f6\u0003\u0002\u0002\u0002\u05f1\u250a\u0003\u0002", + "\u0002\u0002\u05f3\u2520\u0003\u0002\u0002\u0002\u05f5\u252b\u0003\u0002", + "\u0002\u0002\u05f7\u253b\u0003\u0002\u0002\u0002\u05f9\u2547\u0003\u0002", + "\u0002\u0002\u05fb\u254b\u0003\u0002\u0002\u0002\u05fd\u2550\u0003\u0002", + "\u0002\u0002\u05ff\u2566\u0003\u0002\u0002\u0002\u0601\u256b\u0003\u0002", + "\u0002\u0002\u0603\u2578\u0003\u0002\u0002\u0002\u0605\u2582\u0003\u0002", + "\u0002\u0002\u0607\u258e\u0003\u0002\u0002\u0002\u0609\u2596\u0003\u0002", + "\u0002\u0002\u060b\u25a0\u0003\u0002\u0002\u0002\u060d\u25a4\u0003\u0002", + "\u0002\u0002\u060f\u25aa\u0003\u0002\u0002\u0002\u0611\u25b4\u0003\u0002", + "\u0002\u0002\u0613\u25bf\u0003\u0002\u0002\u0002\u0615\u25c5\u0003\u0002", + "\u0002\u0002\u0617\u25c9\u0003\u0002\u0002\u0002\u0619\u25ce\u0003\u0002", + "\u0002\u0002\u061b\u25dc\u0003\u0002\u0002\u0002\u061d\u25e2\u0003\u0002", + "\u0002\u0002\u061f\u25e7\u0003\u0002\u0002\u0002\u0621\u25f7\u0003\u0002", + "\u0002\u0002\u0623\u260d\u0003\u0002\u0002\u0002\u0625\u2612\u0003\u0002", + "\u0002\u0002\u0627\u261b\u0003\u0002\u0002\u0002\u0629\u261f\u0003\u0002", + "\u0002\u0002\u062b\u2627\u0003\u0002\u0002\u0002\u062d\u2635\u0003\u0002", + "\u0002\u0002\u062f\u263f\u0003\u0002\u0002\u0002\u0631\u2646\u0003\u0002", + "\u0002\u0002\u0633\u264f\u0003\u0002\u0002\u0002\u0635\u2655\u0003\u0002", + "\u0002\u0002\u0637\u2664\u0003\u0002\u0002\u0002\u0639\u266f\u0003\u0002", + "\u0002\u0002\u063b\u2677\u0003\u0002\u0002\u0002\u063d\u2679\u0003\u0002", + "\u0002\u0002\u063f\u2681\u0003\u0002\u0002\u0002\u0641\u2689\u0003\u0002", + "\u0002\u0002\u0643\u268f\u0003\u0002\u0002\u0002\u0645\u2698\u0003\u0002", + "\u0002\u0002\u0647\u26b8\u0003\u0002\u0002\u0002\u0649\u26cf\u0003\u0002", + "\u0002\u0002\u064b\u26dc\u0003\u0002\u0002\u0002\u064d\u26e4\u0003\u0002", + "\u0002\u0002\u064f\u26e8\u0003\u0002\u0002\u0002\u0651\u26f3\u0003\u0002", + "\u0002\u0002\u0653\u26f5\u0003\u0002\u0002\u0002\u0655\u26f7\u0003\u0002", + "\u0002\u0002\u0657\u26f9\u0003\u0002\u0002\u0002\u0659\u26fb\u0003\u0002", + "\u0002\u0002\u065b\u26fe\u0003\u0002\u0002\u0002\u065d\u2701\u0003\u0002", + "\u0002\u0002\u065f\u2704\u0003\u0002\u0002\u0002\u0661\u2707\u0003\u0002", + "\u0002\u0002\u0663\u270a\u0003\u0002\u0002\u0002\u0665\u270d\u0003\u0002", + "\u0002\u0002\u0667\u2710\u0003\u0002\u0002\u0002\u0669\u2713\u0003\u0002", + "\u0002\u0002\u066b\u2716\u0003\u0002\u0002\u0002\u066d\u2718\u0003\u0002", + "\u0002\u0002\u066f\u271a\u0003\u0002\u0002\u0002\u0671\u271c\u0003\u0002", + "\u0002\u0002\u0673\u271e\u0003\u0002\u0002\u0002\u0675\u2720\u0003\u0002", + "\u0002\u0002\u0677\u2722\u0003\u0002\u0002\u0002\u0679\u2724\u0003\u0002", + "\u0002\u0002\u067b\u2726\u0003\u0002\u0002\u0002\u067d\u2728\u0003\u0002", + "\u0002\u0002\u067f\u272a\u0003\u0002\u0002\u0002\u0681\u272c\u0003\u0002", + "\u0002\u0002\u0683\u272e\u0003\u0002\u0002\u0002\u0685\u2730\u0003\u0002", + "\u0002\u0002\u0687\u2732\u0003\u0002\u0002\u0002\u0689\u2734\u0003\u0002", + "\u0002\u0002\u068b\u2736\u0003\u0002\u0002\u0002\u068d\u2738\u0003\u0002", + "\u0002\u0002\u068f\u273a\u0003\u0002\u0002\u0002\u0691\u273c\u0003\u0002", + "\u0002\u0002\u0693\u273e\u0003\u0002\u0002\u0002\u0695\u2744\u0003\u0002", + "\u0002\u0002\u0697\u2763\u0003\u0002\u0002\u0002\u0699\u2765\u0003\u0002", + "\u0002\u0002\u069b\u2767\u0003\u0002\u0002\u0002\u069d\u2769\u0003\u0002", + "\u0002\u0002\u069f\u06a0\u0007C\u0002\u0002\u06a0\u06a1\u0007D\u0002", + "\u0002\u06a1\u06a2\u0007U\u0002\u0002\u06a2\u06a3\u0007G\u0002\u0002", + "\u06a3\u06a4\u0007P\u0002\u0002\u06a4\u06a5\u0007V\u0002\u0002\u06a5", + "\u0004\u0003\u0002\u0002\u0002\u06a6\u06a7\u0007C\u0002\u0002\u06a7", + "\u06a8\u0007F\u0002\u0002\u06a8\u06a9\u0007F\u0002\u0002\u06a9\u0006", + "\u0003\u0002\u0002\u0002\u06aa\u06ab\u0007C\u0002\u0002\u06ab\u06ac", + "\u0007G\u0002\u0002\u06ac\u06ad\u0007U\u0002\u0002\u06ad\b\u0003\u0002", + "\u0002\u0002\u06ae\u06af\u0007C\u0002\u0002\u06af\u06b0\u0007N\u0002", + "\u0002\u06b0\u06b1\u0007N\u0002\u0002\u06b1\n\u0003\u0002\u0002\u0002", + "\u06b2\u06b3\u0007C\u0002\u0002\u06b3\u06b4\u0007N\u0002\u0002\u06b4", + "\u06b5\u0007N\u0002\u0002\u06b5\u06b6\u0007Q\u0002\u0002\u06b6\u06b7", + "\u0007Y\u0002\u0002\u06b7\u06b8\u0007a\u0002\u0002\u06b8\u06b9\u0007", + "E\u0002\u0002\u06b9\u06ba\u0007Q\u0002\u0002\u06ba\u06bb\u0007P\u0002", + "\u0002\u06bb\u06bc\u0007P\u0002\u0002\u06bc\u06bd\u0007G\u0002\u0002", + "\u06bd\u06be\u0007E\u0002\u0002\u06be\u06bf\u0007V\u0002\u0002\u06bf", + "\u06c0\u0007K\u0002\u0002\u06c0\u06c1\u0007Q\u0002\u0002\u06c1\u06c2", + "\u0007P\u0002\u0002\u06c2\u06c3\u0007U\u0002\u0002\u06c3\f\u0003\u0002", + "\u0002\u0002\u06c4\u06c5\u0007C\u0002\u0002\u06c5\u06c6\u0007N\u0002", + "\u0002\u06c6\u06c7\u0007N\u0002\u0002\u06c7\u06c8\u0007Q\u0002\u0002", + "\u06c8\u06c9\u0007Y\u0002\u0002\u06c9\u06ca\u0007a\u0002\u0002\u06ca", + "\u06cb\u0007O\u0002\u0002\u06cb\u06cc\u0007W\u0002\u0002\u06cc\u06cd", + "\u0007N\u0002\u0002\u06cd\u06ce\u0007V\u0002\u0002\u06ce\u06cf\u0007", + "K\u0002\u0002\u06cf\u06d0\u0007R\u0002\u0002\u06d0\u06d1\u0007N\u0002", + "\u0002\u06d1\u06d2\u0007G\u0002\u0002\u06d2\u06d3\u0007a\u0002\u0002", + "\u06d3\u06d4\u0007G\u0002\u0002\u06d4\u06d5\u0007X\u0002\u0002\u06d5", + "\u06d6\u0007G\u0002\u0002\u06d6\u06d7\u0007P\u0002\u0002\u06d7\u06d8", + "\u0007V\u0002\u0002\u06d8\u06d9\u0007a\u0002\u0002\u06d9\u06da\u0007", + "N\u0002\u0002\u06da\u06db\u0007Q\u0002\u0002\u06db\u06dc\u0007U\u0002", + "\u0002\u06dc\u06dd\u0007U\u0002\u0002\u06dd\u000e\u0003\u0002\u0002", + "\u0002\u06de\u06df\u0007C\u0002\u0002\u06df\u06e0\u0007N\u0002\u0002", + "\u06e0\u06e1\u0007N\u0002\u0002\u06e1\u06e2\u0007Q\u0002\u0002\u06e2", + "\u06e3\u0007Y\u0002\u0002\u06e3\u06e4\u0007a\u0002\u0002\u06e4\u06e5", + "\u0007U\u0002\u0002\u06e5\u06e6\u0007K\u0002\u0002\u06e6\u06e7\u0007", + "P\u0002\u0002\u06e7\u06e8\u0007I\u0002\u0002\u06e8\u06e9\u0007N\u0002", + "\u0002\u06e9\u06ea\u0007G\u0002\u0002\u06ea\u06eb\u0007a\u0002\u0002", + "\u06eb\u06ec\u0007G\u0002\u0002\u06ec\u06ed\u0007X\u0002\u0002\u06ed", + "\u06ee\u0007G\u0002\u0002\u06ee\u06ef\u0007P\u0002\u0002\u06ef\u06f0", + "\u0007V\u0002\u0002\u06f0\u06f1\u0007a\u0002\u0002\u06f1\u06f2\u0007", + "N\u0002\u0002\u06f2\u06f3\u0007Q\u0002\u0002\u06f3\u06f4\u0007U\u0002", + "\u0002\u06f4\u06f5\u0007U\u0002\u0002\u06f5\u0010\u0003\u0002\u0002", + "\u0002\u06f6\u06f7\u0007C\u0002\u0002\u06f7\u06f8\u0007N\u0002\u0002", + "\u06f8\u06f9\u0007V\u0002\u0002\u06f9\u06fa\u0007G\u0002\u0002\u06fa", + "\u06fb\u0007T\u0002\u0002\u06fb\u0012\u0003\u0002\u0002\u0002\u06fc", + "\u06fd\u0007C\u0002\u0002\u06fd\u06fe\u0007P\u0002\u0002\u06fe\u06ff", + "\u0007F\u0002\u0002\u06ff\u0014\u0003\u0002\u0002\u0002\u0700\u0701", + "\u0007C\u0002\u0002\u0701\u0702\u0007P\u0002\u0002\u0702\u0703\u0007", + "Q\u0002\u0002\u0703\u0704\u0007P\u0002\u0002\u0704\u0705\u0007[\u0002", + "\u0002\u0705\u0706\u0007O\u0002\u0002\u0706\u0707\u0007Q\u0002\u0002", + "\u0707\u0708\u0007W\u0002\u0002\u0708\u0709\u0007U\u0002\u0002\u0709", + "\u0016\u0003\u0002\u0002\u0002\u070a\u070b\u0007C\u0002\u0002\u070b", + "\u070c\u0007P\u0002\u0002\u070c\u070d\u0007[\u0002\u0002\u070d\u0018", + "\u0003\u0002\u0002\u0002\u070e\u070f\u0007C\u0002\u0002\u070f\u0710", + "\u0007R\u0002\u0002\u0710\u0711\u0007R\u0002\u0002\u0711\u0712\u0007", + "G\u0002\u0002\u0712\u0713\u0007P\u0002\u0002\u0713\u0714\u0007F\u0002", + "\u0002\u0714\u001a\u0003\u0002\u0002\u0002\u0715\u0716\u0007C\u0002", + "\u0002\u0716\u0717\u0007R\u0002\u0002\u0717\u0718\u0007R\u0002\u0002", + "\u0718\u0719\u0007N\u0002\u0002\u0719\u071a\u0007K\u0002\u0002\u071a", + "\u071b\u0007E\u0002\u0002\u071b\u071c\u0007C\u0002\u0002\u071c\u071d", + "\u0007V\u0002\u0002\u071d\u071e\u0007K\u0002\u0002\u071e\u071f\u0007", + "Q\u0002\u0002\u071f\u0720\u0007P\u0002\u0002\u0720\u001c\u0003\u0002", + "\u0002\u0002\u0721\u0722\u0007C\u0002\u0002\u0722\u0723\u0007U\u0002", + "\u0002\u0723\u001e\u0003\u0002\u0002\u0002\u0724\u0725\u0007C\u0002", + "\u0002\u0725\u0726\u0007U\u0002\u0002\u0726\u0727\u0007E\u0002\u0002", + "\u0727 \u0003\u0002\u0002\u0002\u0728\u0729\u0007C\u0002\u0002\u0729", + "\u072a\u0007U\u0002\u0002\u072a\u072b\u0007[\u0002\u0002\u072b\u072c", + "\u0007O\u0002\u0002\u072c\u072d\u0007O\u0002\u0002\u072d\u072e\u0007", + "G\u0002\u0002\u072e\u072f\u0007V\u0002\u0002\u072f\u0730\u0007T\u0002", + "\u0002\u0730\u0731\u0007K\u0002\u0002\u0731\u0732\u0007E\u0002\u0002", + "\u0732\"\u0003\u0002\u0002\u0002\u0733\u0734\u0007C\u0002\u0002\u0734", + "\u0735\u0007U\u0002\u0002\u0735\u0736\u0007[\u0002\u0002\u0736\u0737", + "\u0007P\u0002\u0002\u0737\u0738\u0007E\u0002\u0002\u0738\u0739\u0007", + "J\u0002\u0002\u0739\u073a\u0007T\u0002\u0002\u073a\u073b\u0007Q\u0002", + "\u0002\u073b\u073c\u0007P\u0002\u0002\u073c\u073d\u0007Q\u0002\u0002", + "\u073d\u073e\u0007W\u0002\u0002\u073e\u073f\u0007U\u0002\u0002\u073f", + "\u0740\u0007a\u0002\u0002\u0740\u0741\u0007E\u0002\u0002\u0741\u0742", + "\u0007Q\u0002\u0002\u0742\u0743\u0007O\u0002\u0002\u0743\u0744\u0007", + "O\u0002\u0002\u0744\u0745\u0007K\u0002\u0002\u0745\u0746\u0007V\u0002", + "\u0002\u0746$\u0003\u0002\u0002\u0002\u0747\u0748\u0007C\u0002\u0002", + "\u0748\u0749\u0007W\u0002\u0002\u0749\u074a\u0007V\u0002\u0002\u074a", + "\u074b\u0007J\u0002\u0002\u074b\u074c\u0007Q\u0002\u0002\u074c\u074d", + "\u0007T\u0002\u0002\u074d\u074e\u0007K\u0002\u0002\u074e\u074f\u0007", + "\\\u0002\u0002\u074f\u0750\u0007C\u0002\u0002\u0750\u0751\u0007V\u0002", + "\u0002\u0751\u0752\u0007K\u0002\u0002\u0752\u0753\u0007Q\u0002\u0002", + "\u0753\u0754\u0007P\u0002\u0002\u0754&\u0003\u0002\u0002\u0002\u0755", + "\u0756\u0007C\u0002\u0002\u0756\u0757\u0007W\u0002\u0002\u0757\u0758", + "\u0007V\u0002\u0002\u0758\u0759\u0007J\u0002\u0002\u0759\u075a\u0007", + "G\u0002\u0002\u075a\u075b\u0007P\u0002\u0002\u075b\u075c\u0007V\u0002", + "\u0002\u075c\u075d\u0007K\u0002\u0002\u075d\u075e\u0007E\u0002\u0002", + "\u075e\u075f\u0007C\u0002\u0002\u075f\u0760\u0007V\u0002\u0002\u0760", + "\u0761\u0007K\u0002\u0002\u0761\u0762\u0007Q\u0002\u0002\u0762\u0763", + "\u0007P\u0002\u0002\u0763(\u0003\u0002\u0002\u0002\u0764\u0765\u0007", + "C\u0002\u0002\u0765\u0766\u0007W\u0002\u0002\u0766\u0767\u0007V\u0002", + "\u0002\u0767\u0768\u0007Q\u0002\u0002\u0768\u0769\u0007O\u0002\u0002", + "\u0769\u076a\u0007C\u0002\u0002\u076a\u076b\u0007V\u0002\u0002\u076b", + "\u076c\u0007G\u0002\u0002\u076c\u076d\u0007F\u0002\u0002\u076d\u076e", + "\u0007a\u0002\u0002\u076e\u076f\u0007D\u0002\u0002\u076f\u0770\u0007", + "C\u0002\u0002\u0770\u0771\u0007E\u0002\u0002\u0771\u0772\u0007M\u0002", + "\u0002\u0772\u0773\u0007W\u0002\u0002\u0773\u0774\u0007R\u0002\u0002", + "\u0774\u0775\u0007a\u0002\u0002\u0775\u0776\u0007R\u0002\u0002\u0776", + "\u0777\u0007T\u0002\u0002\u0777\u0778\u0007G\u0002\u0002\u0778\u0779", + "\u0007H\u0002\u0002\u0779\u077a\u0007G\u0002\u0002\u077a\u077b\u0007", + "T\u0002\u0002\u077b\u077c\u0007G\u0002\u0002\u077c\u077d\u0007P\u0002", + "\u0002\u077d\u077e\u0007E\u0002\u0002\u077e\u077f\u0007G\u0002\u0002", + "\u077f*\u0003\u0002\u0002\u0002\u0780\u0781\u0007C\u0002\u0002\u0781", + "\u0782\u0007W\u0002\u0002\u0782\u0783\u0007V\u0002\u0002\u0783\u0784", + "\u0007Q\u0002\u0002\u0784\u0785\u0007O\u0002\u0002\u0785\u0786\u0007", + "C\u0002\u0002\u0786\u0787\u0007V\u0002\u0002\u0787\u0788\u0007K\u0002", + "\u0002\u0788\u0789\u0007E\u0002\u0002\u0789,\u0003\u0002\u0002\u0002", + "\u078a\u078b\u0007C\u0002\u0002\u078b\u078c\u0007X\u0002\u0002\u078c", + "\u078d\u0007C\u0002\u0002\u078d\u078e\u0007K\u0002\u0002\u078e\u078f", + "\u0007N\u0002\u0002\u078f\u0790\u0007C\u0002\u0002\u0790\u0791\u0007", + "D\u0002\u0002\u0791\u0792\u0007K\u0002\u0002\u0792\u0793\u0007N\u0002", + "\u0002\u0793\u0794\u0007K\u0002\u0002\u0794\u0795\u0007V\u0002\u0002", + "\u0795\u0796\u0007[\u0002\u0002\u0796\u0797\u0007a\u0002\u0002\u0797", + "\u0798\u0007O\u0002\u0002\u0798\u0799\u0007Q\u0002\u0002\u0799\u079a", + "\u0007F\u0002\u0002\u079a\u079b\u0007G\u0002\u0002\u079b.\u0003\u0002", + "\u0002\u0002\u079c\u079d\u0007^\u0002\u0002\u079d0\u0003\u0002\u0002", + "\u0002\u079e\u079f\u0007D\u0002\u0002\u079f\u07a0\u0007C\u0002\u0002", + "\u07a0\u07a1\u0007E\u0002\u0002\u07a1\u07a2\u0007M\u0002\u0002\u07a2", + "\u07a3\u0007W\u0002\u0002\u07a3\u07a4\u0007R\u0002\u0002\u07a42\u0003", + "\u0002\u0002\u0002\u07a5\u07a6\u0007D\u0002\u0002\u07a6\u07a7\u0007", + "G\u0002\u0002\u07a7\u07a8\u0007H\u0002\u0002\u07a8\u07a9\u0007Q\u0002", + "\u0002\u07a9\u07aa\u0007T\u0002\u0002\u07aa\u07ab\u0007G\u0002\u0002", + "\u07ab4\u0003\u0002\u0002\u0002\u07ac\u07ad\u0007D\u0002\u0002\u07ad", + "\u07ae\u0007G\u0002\u0002\u07ae\u07af\u0007I\u0002\u0002\u07af\u07b0", + "\u0007K\u0002\u0002\u07b0\u07b1\u0007P\u0002\u0002\u07b16\u0003\u0002", + "\u0002\u0002\u07b2\u07b3\u0007D\u0002\u0002\u07b3\u07b4\u0007G\u0002", + "\u0002\u07b4\u07b5\u0007V\u0002\u0002\u07b5\u07b6\u0007Y\u0002\u0002", + "\u07b6\u07b7\u0007G\u0002\u0002\u07b7\u07b8\u0007G\u0002\u0002\u07b8", + "\u07b9\u0007P\u0002\u0002\u07b98\u0003\u0002\u0002\u0002\u07ba\u07bb", + "\u0007D\u0002\u0002\u07bb\u07bc\u0007N\u0002\u0002\u07bc\u07bd\u0007", + "Q\u0002\u0002\u07bd\u07be\u0007E\u0002\u0002\u07be\u07bf\u0007M\u0002", + "\u0002\u07bf:\u0003\u0002\u0002\u0002\u07c0\u07c1\u0007D\u0002\u0002", + "\u07c1\u07c2\u0007N\u0002\u0002\u07c2\u07c3\u0007Q\u0002\u0002\u07c3", + "\u07c4\u0007E\u0002\u0002\u07c4\u07c5\u0007M\u0002\u0002\u07c5\u07c6", + "\u0007U\u0002\u0002\u07c6\u07c7\u0007K\u0002\u0002\u07c7\u07c8\u0007", + "\\\u0002\u0002\u07c8\u07c9\u0007G\u0002\u0002\u07c9<\u0003\u0002\u0002", + "\u0002\u07ca\u07cb\u0007D\u0002\u0002\u07cb\u07cc\u0007N\u0002\u0002", + "\u07cc\u07cd\u0007Q\u0002\u0002\u07cd\u07ce\u0007E\u0002\u0002\u07ce", + "\u07cf\u0007M\u0002\u0002\u07cf\u07d0\u0007K\u0002\u0002\u07d0\u07d1", + "\u0007P\u0002\u0002\u07d1\u07d2\u0007I\u0002\u0002\u07d2\u07d3\u0007", + "a\u0002\u0002\u07d3\u07d4\u0007J\u0002\u0002\u07d4\u07d5\u0007K\u0002", + "\u0002\u07d5\u07d6\u0007G\u0002\u0002\u07d6\u07d7\u0007T\u0002\u0002", + "\u07d7\u07d8\u0007C\u0002\u0002\u07d8\u07d9\u0007T\u0002\u0002\u07d9", + "\u07da\u0007E\u0002\u0002\u07da\u07db\u0007J\u0002\u0002\u07db\u07dc", + "\u0007[\u0002\u0002\u07dc>\u0003\u0002\u0002\u0002\u07dd\u07de\u0007", + "D\u0002\u0002\u07de\u07df\u0007T\u0002\u0002\u07df\u07e0\u0007G\u0002", + "\u0002\u07e0\u07e1\u0007C\u0002\u0002\u07e1\u07e2\u0007M\u0002\u0002", + "\u07e2@\u0003\u0002\u0002\u0002\u07e3\u07e4\u0007D\u0002\u0002\u07e4", + "\u07e5\u0007T\u0002\u0002\u07e5\u07e6\u0007Q\u0002\u0002\u07e6\u07e7", + "\u0007Y\u0002\u0002\u07e7\u07e8\u0007U\u0002\u0002\u07e8\u07e9\u0007", + "G\u0002\u0002\u07e9B\u0003\u0002\u0002\u0002\u07ea\u07eb\u0007D\u0002", + "\u0002\u07eb\u07ec\u0007W\u0002\u0002\u07ec\u07ed\u0007H\u0002\u0002", + "\u07ed\u07ee\u0007H\u0002\u0002\u07ee\u07ef\u0007G\u0002\u0002\u07ef", + "\u07f0\u0007T\u0002\u0002\u07f0D\u0003\u0002\u0002\u0002\u07f1\u07f2", + "\u0007D\u0002\u0002\u07f2\u07f3\u0007W\u0002\u0002\u07f3\u07f4\u0007", + "H\u0002\u0002\u07f4\u07f5\u0007H\u0002\u0002\u07f5\u07f6\u0007G\u0002", + "\u0002\u07f6\u07f7\u0007T\u0002\u0002\u07f7\u07f8\u0007E\u0002\u0002", + "\u07f8\u07f9\u0007Q\u0002\u0002\u07f9\u07fa\u0007W\u0002\u0002\u07fa", + "\u07fb\u0007P\u0002\u0002\u07fb\u07fc\u0007V\u0002\u0002\u07fcF\u0003", + "\u0002\u0002\u0002\u07fd\u07fe\u0007D\u0002\u0002\u07fe\u07ff\u0007", + "W\u0002\u0002\u07ff\u0800\u0007N\u0002\u0002\u0800\u0801\u0007M\u0002", + "\u0002\u0801H\u0003\u0002\u0002\u0002\u0802\u0803\u0007D\u0002\u0002", + "\u0803\u0804\u0007[\u0002\u0002\u0804J\u0003\u0002\u0002\u0002\u0805", + "\u0806\u0007E\u0002\u0002\u0806\u0807\u0007C\u0002\u0002\u0807\u0808", + "\u0007E\u0002\u0002\u0808\u0809\u0007J\u0002\u0002\u0809\u080a\u0007", + "G\u0002\u0002\u080aL\u0003\u0002\u0002\u0002\u080b\u080c\u0007E\u0002", + "\u0002\u080c\u080d\u0007C\u0002\u0002\u080d\u080e\u0007N\u0002\u0002", + "\u080e\u080f\u0007N\u0002\u0002\u080f\u0810\u0007G\u0002\u0002\u0810", + "\u0811\u0007F\u0002\u0002\u0811N\u0003\u0002\u0002\u0002\u0812\u0813", + "\u0007E\u0002\u0002\u0813\u0814\u0007C\u0002\u0002\u0814\u0815\u0007", + "U\u0002\u0002\u0815\u0816\u0007E\u0002\u0002\u0816\u0817\u0007C\u0002", + "\u0002\u0817\u0818\u0007F\u0002\u0002\u0818\u0819\u0007G\u0002\u0002", + "\u0819P\u0003\u0002\u0002\u0002\u081a\u081b\u0007E\u0002\u0002\u081b", + "\u081c\u0007C\u0002\u0002\u081c\u081d\u0007U\u0002\u0002\u081d\u081e", + "\u0007G\u0002\u0002\u081eR\u0003\u0002\u0002\u0002\u081f\u0820\u0007", + "E\u0002\u0002\u0820\u0821\u0007G\u0002\u0002\u0821\u0822\u0007T\u0002", + "\u0002\u0822\u0823\u0007V\u0002\u0002\u0823\u0824\u0007K\u0002\u0002", + "\u0824\u0825\u0007H\u0002\u0002\u0825\u0826\u0007K\u0002\u0002\u0826", + "\u0827\u0007E\u0002\u0002\u0827\u0828\u0007C\u0002\u0002\u0828\u0829", + "\u0007V\u0002\u0002\u0829\u082a\u0007G\u0002\u0002\u082aT\u0003\u0002", + "\u0002\u0002\u082b\u082c\u0007E\u0002\u0002\u082c\u082d\u0007J\u0002", + "\u0002\u082d\u082e\u0007C\u0002\u0002\u082e\u082f\u0007P\u0002\u0002", + "\u082f\u0830\u0007I\u0002\u0002\u0830\u0831\u0007G\u0002\u0002\u0831", + "\u0832\u0007V\u0002\u0002\u0832\u0833\u0007C\u0002\u0002\u0833\u0834", + "\u0007D\u0002\u0002\u0834\u0835\u0007N\u0002\u0002\u0835\u0836\u0007", + "G\u0002\u0002\u0836V\u0003\u0002\u0002\u0002\u0837\u0838\u0007E\u0002", + "\u0002\u0838\u0839\u0007J\u0002\u0002\u0839\u083a\u0007C\u0002\u0002", + "\u083a\u083b\u0007P\u0002\u0002\u083b\u083c\u0007I\u0002\u0002\u083c", + "\u083d\u0007G\u0002\u0002\u083d\u083e\u0007U\u0002\u0002\u083eX\u0003", + "\u0002\u0002\u0002\u083f\u0840\u0007E\u0002\u0002\u0840\u0841\u0007", + "J\u0002\u0002\u0841\u0842\u0007G\u0002\u0002\u0842\u0843\u0007E\u0002", + "\u0002\u0843\u0844\u0007M\u0002\u0002\u0844Z\u0003\u0002\u0002\u0002", + "\u0845\u0846\u0007E\u0002\u0002\u0846\u0847\u0007J\u0002\u0002\u0847", + "\u0848\u0007G\u0002\u0002\u0848\u0849\u0007E\u0002\u0002\u0849\u084a", + "\u0007M\u0002\u0002\u084a\u084b\u0007R\u0002\u0002\u084b\u084c\u0007", + "Q\u0002\u0002\u084c\u084d\u0007K\u0002\u0002\u084d\u084e\u0007P\u0002", + "\u0002\u084e\u084f\u0007V\u0002\u0002\u084f\\\u0003\u0002\u0002\u0002", + "\u0850\u0851\u0007E\u0002\u0002\u0851\u0852\u0007J\u0002\u0002\u0852", + "\u0853\u0007G\u0002\u0002\u0853\u0854\u0007E\u0002\u0002\u0854\u0855", + "\u0007M\u0002\u0002\u0855\u0856\u0007a\u0002\u0002\u0856\u0857\u0007", + "R\u0002\u0002\u0857\u0858\u0007Q\u0002\u0002\u0858\u0859\u0007N\u0002", + "\u0002\u0859\u085a\u0007K\u0002\u0002\u085a\u085b\u0007E\u0002\u0002", + "\u085b\u085c\u0007[\u0002\u0002\u085c^\u0003\u0002\u0002\u0002\u085d", + "\u085e\u0007E\u0002\u0002\u085e\u085f\u0007J\u0002\u0002\u085f\u0860", + "\u0007G\u0002\u0002\u0860\u0861\u0007E\u0002\u0002\u0861\u0862\u0007", + "M\u0002\u0002\u0862\u0863\u0007a\u0002\u0002\u0863\u0864\u0007G\u0002", + "\u0002\u0864\u0865\u0007Z\u0002\u0002\u0865\u0866\u0007R\u0002\u0002", + "\u0866\u0867\u0007K\u0002\u0002\u0867\u0868\u0007T\u0002\u0002\u0868", + "\u0869\u0007C\u0002\u0002\u0869\u086a\u0007V\u0002\u0002\u086a\u086b", + "\u0007K\u0002\u0002\u086b\u086c\u0007Q\u0002\u0002\u086c\u086d\u0007", + "P\u0002\u0002\u086d`\u0003\u0002\u0002\u0002\u086e\u086f\u0007E\u0002", + "\u0002\u086f\u0870\u0007N\u0002\u0002\u0870\u0871\u0007C\u0002\u0002", + "\u0871\u0872\u0007U\u0002\u0002\u0872\u0873\u0007U\u0002\u0002\u0873", + "\u0874\u0007K\u0002\u0002\u0874\u0875\u0007H\u0002\u0002\u0875\u0876", + "\u0007K\u0002\u0002\u0876\u0877\u0007G\u0002\u0002\u0877\u0878\u0007", + "T\u0002\u0002\u0878\u0879\u0007a\u0002\u0002\u0879\u087a\u0007H\u0002", + "\u0002\u087a\u087b\u0007W\u0002\u0002\u087b\u087c\u0007P\u0002\u0002", + "\u087c\u087d\u0007E\u0002\u0002\u087d\u087e\u0007V\u0002\u0002\u087e", + "\u087f\u0007K\u0002\u0002\u087f\u0880\u0007Q\u0002\u0002\u0880\u0881", + "\u0007P\u0002\u0002\u0881b\u0003\u0002\u0002\u0002\u0882\u0883\u0007", + "E\u0002\u0002\u0883\u0884\u0007N\u0002\u0002\u0884\u0885\u0007Q\u0002", + "\u0002\u0885\u0886\u0007U\u0002\u0002\u0886\u0887\u0007G\u0002\u0002", + "\u0887d\u0003\u0002\u0002\u0002\u0888\u0889\u0007E\u0002\u0002\u0889", + "\u088a\u0007N\u0002\u0002\u088a\u088b\u0007W\u0002\u0002\u088b\u088c", + "\u0007U\u0002\u0002\u088c\u088d\u0007V\u0002\u0002\u088d\u088e\u0007", + "G\u0002\u0002\u088e\u088f\u0007T\u0002\u0002\u088ff\u0003\u0002\u0002", + "\u0002\u0890\u0891\u0007E\u0002\u0002\u0891\u0892\u0007N\u0002\u0002", + "\u0892\u0893\u0007W\u0002\u0002\u0893\u0894\u0007U\u0002\u0002\u0894", + "\u0895\u0007V\u0002\u0002\u0895\u0896\u0007G\u0002\u0002\u0896\u0897", + "\u0007T\u0002\u0002\u0897\u0898\u0007G\u0002\u0002\u0898\u0899\u0007", + "F\u0002\u0002\u0899h\u0003\u0002\u0002\u0002\u089a\u089b\u0007E\u0002", + "\u0002\u089b\u089c\u0007Q\u0002\u0002\u089c\u089d\u0007C\u0002\u0002", + "\u089d\u089e\u0007N\u0002\u0002\u089e\u089f\u0007G\u0002\u0002\u089f", + "\u08a0\u0007U\u0002\u0002\u08a0\u08a1\u0007E\u0002\u0002\u08a1\u08a2", + "\u0007G\u0002\u0002\u08a2j\u0003\u0002\u0002\u0002\u08a3\u08a4\u0007", + "E\u0002\u0002\u08a4\u08a5\u0007Q\u0002\u0002\u08a5\u08a6\u0007N\u0002", + "\u0002\u08a6\u08a7\u0007N\u0002\u0002\u08a7\u08a8\u0007C\u0002\u0002", + "\u08a8\u08a9\u0007V\u0002\u0002\u08a9\u08aa\u0007G\u0002\u0002\u08aa", + "l\u0003\u0002\u0002\u0002\u08ab\u08ac\u0007E\u0002\u0002\u08ac\u08ad", + "\u0007Q\u0002\u0002\u08ad\u08ae\u0007N\u0002\u0002\u08ae\u08af\u0007", + "W\u0002\u0002\u08af\u08b0\u0007O\u0002\u0002\u08b0\u08b1\u0007P\u0002", + "\u0002\u08b1n\u0003\u0002\u0002\u0002\u08b2\u08b3\u0007E\u0002\u0002", + "\u08b3\u08b4\u0007Q\u0002\u0002\u08b4\u08b5\u0007O\u0002\u0002\u08b5", + "\u08b6\u0007R\u0002\u0002\u08b6\u08b7\u0007T\u0002\u0002\u08b7\u08b8", + "\u0007G\u0002\u0002\u08b8\u08b9\u0007U\u0002\u0002\u08b9\u08ba\u0007", + "U\u0002\u0002\u08ba\u08bb\u0007K\u0002\u0002\u08bb\u08bc\u0007Q\u0002", + "\u0002\u08bc\u08bd\u0007P\u0002\u0002\u08bdp\u0003\u0002\u0002\u0002", + "\u08be\u08bf\u0007E\u0002\u0002\u08bf\u08c0\u0007Q\u0002\u0002\u08c0", + "\u08c1\u0007O\u0002\u0002\u08c1\u08c2\u0007O\u0002\u0002\u08c2\u08c3", + "\u0007K\u0002\u0002\u08c3\u08c4\u0007V\u0002\u0002\u08c4r\u0003\u0002", + "\u0002\u0002\u08c5\u08c6\u0007E\u0002\u0002\u08c6\u08c7\u0007Q\u0002", + "\u0002\u08c7\u08c8\u0007O\u0002\u0002\u08c8\u08c9\u0007R\u0002\u0002", + "\u08c9\u08ca\u0007W\u0002\u0002\u08ca\u08cb\u0007V\u0002\u0002\u08cb", + "\u08cc\u0007G\u0002\u0002\u08cct\u0003\u0002\u0002\u0002\u08cd\u08ce", + "\u0007E\u0002\u0002\u08ce\u08cf\u0007Q\u0002\u0002\u08cf\u08d0\u0007", + "P\u0002\u0002\u08d0\u08d1\u0007H\u0002\u0002\u08d1\u08d2\u0007K\u0002", + "\u0002\u08d2\u08d3\u0007I\u0002\u0002\u08d3\u08d4\u0007W\u0002\u0002", + "\u08d4\u08d5\u0007T\u0002\u0002\u08d5\u08d6\u0007C\u0002\u0002\u08d6", + "\u08d7\u0007V\u0002\u0002\u08d7\u08d8\u0007K\u0002\u0002\u08d8\u08d9", + "\u0007Q\u0002\u0002\u08d9\u08da\u0007P\u0002\u0002\u08dav\u0003\u0002", + "\u0002\u0002\u08db\u08dc\u0007E\u0002\u0002\u08dc\u08dd\u0007Q\u0002", + "\u0002\u08dd\u08de\u0007P\u0002\u0002\u08de\u08df\u0007U\u0002\u0002", + "\u08df\u08e0\u0007V\u0002\u0002\u08e0\u08e1\u0007T\u0002\u0002\u08e1", + "\u08e2\u0007C\u0002\u0002\u08e2\u08e3\u0007K\u0002\u0002\u08e3\u08e4", + "\u0007P\u0002\u0002\u08e4\u08e5\u0007V\u0002\u0002\u08e5x\u0003\u0002", + "\u0002\u0002\u08e6\u08e7\u0007E\u0002\u0002\u08e7\u08e8\u0007Q\u0002", + "\u0002\u08e8\u08e9\u0007P\u0002\u0002\u08e9\u08ea\u0007V\u0002\u0002", + "\u08ea\u08eb\u0007C\u0002\u0002\u08eb\u08ec\u0007K\u0002\u0002\u08ec", + "\u08ed\u0007P\u0002\u0002\u08ed\u08ee\u0007O\u0002\u0002\u08ee\u08ef", + "\u0007G\u0002\u0002\u08ef\u08f0\u0007P\u0002\u0002\u08f0\u08f1\u0007", + "V\u0002\u0002\u08f1z\u0003\u0002\u0002\u0002\u08f2\u08f3\u0007E\u0002", + "\u0002\u08f3\u08f4\u0007Q\u0002\u0002\u08f4\u08f5\u0007P\u0002\u0002", + "\u08f5\u08f6\u0007V\u0002\u0002\u08f6\u08f7\u0007C\u0002\u0002\u08f7", + "\u08f8\u0007K\u0002\u0002\u08f8\u08f9\u0007P\u0002\u0002\u08f9\u08fa", + "\u0007U\u0002\u0002\u08fa|\u0003\u0002\u0002\u0002\u08fb\u08fc\u0007", + "E\u0002\u0002\u08fc\u08fd\u0007Q\u0002\u0002\u08fd\u08fe\u0007P\u0002", + "\u0002\u08fe\u08ff\u0007V\u0002\u0002\u08ff\u0900\u0007C\u0002\u0002", + "\u0900\u0901\u0007K\u0002\u0002\u0901\u0902\u0007P\u0002\u0002\u0902", + "\u0903\u0007U\u0002\u0002\u0903\u0904\u0007V\u0002\u0002\u0904\u0905", + "\u0007C\u0002\u0002\u0905\u0906\u0007D\u0002\u0002\u0906\u0907\u0007", + "N\u0002\u0002\u0907\u0908\u0007G\u0002\u0002\u0908~\u0003\u0002\u0002", + "\u0002\u0909\u090a\u0007E\u0002\u0002\u090a\u090b\u0007Q\u0002\u0002", + "\u090b\u090c\u0007P\u0002\u0002\u090c\u090d\u0007V\u0002\u0002\u090d", + "\u090e\u0007G\u0002\u0002\u090e\u090f\u0007Z\u0002\u0002\u090f\u0910", + "\u0007V\u0002\u0002\u0910\u0080\u0003\u0002\u0002\u0002\u0911\u0912", + "\u0007E\u0002\u0002\u0912\u0913\u0007Q\u0002\u0002\u0913\u0914\u0007", + "P\u0002\u0002\u0914\u0915\u0007V\u0002\u0002\u0915\u0916\u0007K\u0002", + "\u0002\u0916\u0917\u0007P\u0002\u0002\u0917\u0918\u0007W\u0002\u0002", + "\u0918\u0919\u0007G\u0002\u0002\u0919\u0082\u0003\u0002\u0002\u0002", + "\u091a\u091b\u0007E\u0002\u0002\u091b\u091c\u0007Q\u0002\u0002\u091c", + "\u091d\u0007P\u0002\u0002\u091d\u091e\u0007V\u0002\u0002\u091e\u091f", + "\u0007K\u0002\u0002\u091f\u0920\u0007P\u0002\u0002\u0920\u0921\u0007", + "W\u0002\u0002\u0921\u0922\u0007G\u0002\u0002\u0922\u0923\u0007a\u0002", + "\u0002\u0923\u0924\u0007C\u0002\u0002\u0924\u0925\u0007H\u0002\u0002", + "\u0925\u0926\u0007V\u0002\u0002\u0926\u0927\u0007G\u0002\u0002\u0927", + "\u0928\u0007T\u0002\u0002\u0928\u0929\u0007a\u0002\u0002\u0929\u092a", + "\u0007G\u0002\u0002\u092a\u092b\u0007T\u0002\u0002\u092b\u092c\u0007", + "T\u0002\u0002\u092c\u092d\u0007Q\u0002\u0002\u092d\u092e\u0007T\u0002", + "\u0002\u092e\u0084\u0003\u0002\u0002\u0002\u092f\u0930\u0007E\u0002", + "\u0002\u0930\u0931\u0007Q\u0002\u0002\u0931\u0932\u0007P\u0002\u0002", + "\u0932\u0933\u0007V\u0002\u0002\u0933\u0934\u0007T\u0002\u0002\u0934", + "\u0935\u0007C\u0002\u0002\u0935\u0936\u0007E\u0002\u0002\u0936\u0937", + "\u0007V\u0002\u0002\u0937\u0086\u0003\u0002\u0002\u0002\u0938\u0939", + "\u0007E\u0002\u0002\u0939\u093a\u0007Q\u0002\u0002\u093a\u093b\u0007", + "P\u0002\u0002\u093b\u093c\u0007V\u0002\u0002\u093c\u093d\u0007T\u0002", + "\u0002\u093d\u093e\u0007C\u0002\u0002\u093e\u093f\u0007E\u0002\u0002", + "\u093f\u0940\u0007V\u0002\u0002\u0940\u0941\u0007a\u0002\u0002\u0941", + "\u0942\u0007P\u0002\u0002\u0942\u0943\u0007C\u0002\u0002\u0943\u0944", + "\u0007O\u0002\u0002\u0944\u0945\u0007G\u0002\u0002\u0945\u0088\u0003", + "\u0002\u0002\u0002\u0946\u0947\u0007E\u0002\u0002\u0947\u0948\u0007", + "Q\u0002\u0002\u0948\u0949\u0007P\u0002\u0002\u0949\u094a\u0007X\u0002", + "\u0002\u094a\u094b\u0007G\u0002\u0002\u094b\u094c\u0007T\u0002\u0002", + "\u094c\u094d\u0007U\u0002\u0002\u094d\u094e\u0007C\u0002\u0002\u094e", + "\u094f\u0007V\u0002\u0002\u094f\u0950\u0007K\u0002\u0002\u0950\u0951", + "\u0007Q\u0002\u0002\u0951\u0952\u0007P\u0002\u0002\u0952\u008a\u0003", + "\u0002\u0002\u0002\u0953\u0954\u0007V\u0002\u0002\u0954\u0955\u0007", + "T\u0002\u0002\u0955\u0956\u0007[\u0002\u0002\u0956\u0958\u0007a\u0002", + "\u0002\u0957\u0953\u0003\u0002\u0002\u0002\u0957\u0958\u0003\u0002\u0002", + "\u0002\u0958\u0959\u0003\u0002\u0002\u0002\u0959\u095a\u0007E\u0002", + "\u0002\u095a\u095b\u0007Q\u0002\u0002\u095b\u095c\u0007P\u0002\u0002", + "\u095c\u095d\u0007X\u0002\u0002\u095d\u095e\u0007G\u0002\u0002\u095e", + "\u095f\u0007T\u0002\u0002\u095f\u0960\u0007V\u0002\u0002\u0960\u008c", + "\u0003\u0002\u0002\u0002\u0961\u0962\u0007E\u0002\u0002\u0962\u0963", + "\u0007Q\u0002\u0002\u0963\u0964\u0007R\u0002\u0002\u0964\u0965\u0007", + "[\u0002\u0002\u0965\u0966\u0007a\u0002\u0002\u0966\u0967\u0007Q\u0002", + "\u0002\u0967\u0968\u0007P\u0002\u0002\u0968\u0969\u0007N\u0002\u0002", + "\u0969\u096a\u0007[\u0002\u0002\u096a\u008e\u0003\u0002\u0002\u0002", + "\u096b\u096c\u0007E\u0002\u0002\u096c\u096d\u0007T\u0002\u0002\u096d", + "\u096e\u0007G\u0002\u0002\u096e\u096f\u0007C\u0002\u0002\u096f\u0970", + "\u0007V\u0002\u0002\u0970\u0971\u0007G\u0002\u0002\u0971\u0090\u0003", + "\u0002\u0002\u0002\u0972\u0973\u0007E\u0002\u0002\u0973\u0974\u0007", + "T\u0002\u0002\u0974\u0975\u0007Q\u0002\u0002\u0975\u0976\u0007U\u0002", + "\u0002\u0976\u0977\u0007U\u0002\u0002\u0977\u0092\u0003\u0002\u0002", + "\u0002\u0978\u0979\u0007E\u0002\u0002\u0979\u097a\u0007W\u0002\u0002", + "\u097a\u097b\u0007T\u0002\u0002\u097b\u097c\u0007T\u0002\u0002\u097c", + "\u097d\u0007G\u0002\u0002\u097d\u097e\u0007P\u0002\u0002\u097e\u097f", + "\u0007V\u0002\u0002\u097f\u0094\u0003\u0002\u0002\u0002\u0980\u0981", + "\u0007E\u0002\u0002\u0981\u0982\u0007W\u0002\u0002\u0982\u0983\u0007", + "T\u0002\u0002\u0983\u0984\u0007T\u0002\u0002\u0984\u0985\u0007G\u0002", + "\u0002\u0985\u0986\u0007P\u0002\u0002\u0986\u0987\u0007V\u0002\u0002", + "\u0987\u0988\u0007a\u0002\u0002\u0988\u0989\u0007F\u0002\u0002\u0989", + "\u098a\u0007C\u0002\u0002\u098a\u098b\u0007V\u0002\u0002\u098b\u098c", + "\u0007G\u0002\u0002\u098c\u0096\u0003\u0002\u0002\u0002\u098d\u098e", + "\u0007E\u0002\u0002\u098e\u098f\u0007W\u0002\u0002\u098f\u0990\u0007", + "T\u0002\u0002\u0990\u0991\u0007T\u0002\u0002\u0991\u0992\u0007G\u0002", + "\u0002\u0992\u0993\u0007P\u0002\u0002\u0993\u0994\u0007V\u0002\u0002", + "\u0994\u0995\u0007a\u0002\u0002\u0995\u0996\u0007V\u0002\u0002\u0996", + "\u0997\u0007K\u0002\u0002\u0997\u0998\u0007O\u0002\u0002\u0998\u0999", + "\u0007G\u0002\u0002\u0999\u0098\u0003\u0002\u0002\u0002\u099a\u099b", + "\u0007E\u0002\u0002\u099b\u099c\u0007W\u0002\u0002\u099c\u099d\u0007", + "T\u0002\u0002\u099d\u099e\u0007T\u0002\u0002\u099e\u099f\u0007G\u0002", + "\u0002\u099f\u09a0\u0007P\u0002\u0002\u09a0\u09a1\u0007V\u0002\u0002", + "\u09a1\u09a2\u0007a\u0002\u0002\u09a2\u09a3\u0007V\u0002\u0002\u09a3", + "\u09a4\u0007K\u0002\u0002\u09a4\u09a5\u0007O\u0002\u0002\u09a5\u09a6", + "\u0007G\u0002\u0002\u09a6\u09a7\u0007U\u0002\u0002\u09a7\u09a8\u0007", + "V\u0002\u0002\u09a8\u09a9\u0007C\u0002\u0002\u09a9\u09aa\u0007O\u0002", + "\u0002\u09aa\u09ab\u0007R\u0002\u0002\u09ab\u009a\u0003\u0002\u0002", + "\u0002\u09ac\u09ad\u0007E\u0002\u0002\u09ad\u09ae\u0007W\u0002\u0002", + "\u09ae\u09af\u0007T\u0002\u0002\u09af\u09b0\u0007T\u0002\u0002\u09b0", + "\u09b1\u0007G\u0002\u0002\u09b1\u09b2\u0007P\u0002\u0002\u09b2\u09b3", + "\u0007V\u0002\u0002\u09b3\u09b4\u0007a\u0002\u0002\u09b4\u09b5\u0007", + "W\u0002\u0002\u09b5\u09b6\u0007U\u0002\u0002\u09b6\u09b7\u0007G\u0002", + "\u0002\u09b7\u09b8\u0007T\u0002\u0002\u09b8\u009c\u0003\u0002\u0002", + "\u0002\u09b9\u09ba\u0007E\u0002\u0002\u09ba\u09bb\u0007W\u0002\u0002", + "\u09bb\u09bc\u0007T\u0002\u0002\u09bc\u09bd\u0007U\u0002\u0002\u09bd", + "\u09be\u0007Q\u0002\u0002\u09be\u09bf\u0007T\u0002\u0002\u09bf\u009e", + "\u0003\u0002\u0002\u0002\u09c0\u09c1\u0007E\u0002\u0002\u09c1\u09c2", + "\u0007[\u0002\u0002\u09c2\u09c3\u0007E\u0002\u0002\u09c3\u09c4\u0007", + "N\u0002\u0002\u09c4\u09c5\u0007G\u0002\u0002\u09c5\u00a0\u0003\u0002", + "\u0002\u0002\u09c6\u09c7\u0007F\u0002\u0002\u09c7\u09c8\u0007C\u0002", + "\u0002\u09c8\u09c9\u0007V\u0002\u0002\u09c9\u09ca\u0007C\u0002\u0002", + "\u09ca\u09cb\u0007a\u0002\u0002\u09cb\u09cc\u0007E\u0002\u0002\u09cc", + "\u09cd\u0007Q\u0002\u0002\u09cd\u09ce\u0007O\u0002\u0002\u09ce\u09cf", + "\u0007R\u0002\u0002\u09cf\u09d0\u0007T\u0002\u0002\u09d0\u09d1\u0007", + "G\u0002\u0002\u09d1\u09d2\u0007U\u0002\u0002\u09d2\u09d3\u0007U\u0002", + "\u0002\u09d3\u09d4\u0007K\u0002\u0002\u09d4\u09d5\u0007Q\u0002\u0002", + "\u09d5\u09d6\u0007P\u0002\u0002\u09d6\u00a2\u0003\u0002\u0002\u0002", + "\u09d7\u09d8\u0007F\u0002\u0002\u09d8\u09d9\u0007C\u0002\u0002\u09d9", + "\u09da\u0007V\u0002\u0002\u09da\u09db\u0007C\u0002\u0002\u09db\u09dc", + "\u0007a\u0002\u0002\u09dc\u09dd\u0007U\u0002\u0002\u09dd\u09de\u0007", + "Q\u0002\u0002\u09de\u09df\u0007W\u0002\u0002\u09df\u09e0\u0007T\u0002", + "\u0002\u09e0\u09e1\u0007E\u0002\u0002\u09e1\u09e2\u0007G\u0002\u0002", + "\u09e2\u00a4\u0003\u0002\u0002\u0002\u09e3\u09e4\u0007F\u0002\u0002", + "\u09e4\u09e5\u0007C\u0002\u0002\u09e5\u09e6\u0007V\u0002\u0002\u09e6", + "\u09e7\u0007C\u0002\u0002\u09e7\u09e8\u0007D\u0002\u0002\u09e8\u09e9", + "\u0007C\u0002\u0002\u09e9\u09ea\u0007U\u0002\u0002\u09ea\u09eb\u0007", + "G\u0002\u0002\u09eb\u00a6\u0003\u0002\u0002\u0002\u09ec\u09ed\u0007", + "F\u0002\u0002\u09ed\u09ee\u0007C\u0002\u0002\u09ee\u09ef\u0007V\u0002", + "\u0002\u09ef\u09f0\u0007C\u0002\u0002\u09f0\u09f1\u0007D\u0002\u0002", + "\u09f1\u09f2\u0007C\u0002\u0002\u09f2\u09f3\u0007U\u0002\u0002\u09f3", + "\u09f4\u0007G\u0002\u0002\u09f4\u09f5\u0007a\u0002\u0002\u09f5\u09f6", + "\u0007O\u0002\u0002\u09f6\u09f7\u0007K\u0002\u0002\u09f7\u09f8\u0007", + "T\u0002\u0002\u09f8\u09f9\u0007T\u0002\u0002\u09f9\u09fa\u0007Q\u0002", + "\u0002\u09fa\u09fb\u0007T\u0002\u0002\u09fb\u09fc\u0007K\u0002\u0002", + "\u09fc\u09fd\u0007P\u0002\u0002\u09fd\u09fe\u0007I\u0002\u0002\u09fe", + "\u00a8\u0003\u0002\u0002\u0002\u09ff\u0a00\u0007F\u0002\u0002\u0a00", + "\u0a01\u0007D\u0002\u0002\u0a01\u0a02\u0007E\u0002\u0002\u0a02\u0a03", + "\u0007E\u0002\u0002\u0a03\u00aa\u0003\u0002\u0002\u0002\u0a04\u0a05", + "\u0007F\u0002\u0002\u0a05\u0a06\u0007G\u0002\u0002\u0a06\u0a07\u0007", + "C\u0002\u0002\u0a07\u0a08\u0007N\u0002\u0002\u0a08\u0a09\u0007N\u0002", + "\u0002\u0a09\u0a0a\u0007Q\u0002\u0002\u0a0a\u0a0b\u0007E\u0002\u0002", + "\u0a0b\u0a0c\u0007C\u0002\u0002\u0a0c\u0a0d\u0007V\u0002\u0002\u0a0d", + "\u0a0e\u0007G\u0002\u0002\u0a0e\u00ac\u0003\u0002\u0002\u0002\u0a0f", + "\u0a10\u0007F\u0002\u0002\u0a10\u0a11\u0007G\u0002\u0002\u0a11\u0a12", + "\u0007E\u0002\u0002\u0a12\u0a13\u0007N\u0002\u0002\u0a13\u0a14\u0007", + "C\u0002\u0002\u0a14\u0a15\u0007T\u0002\u0002\u0a15\u0a16\u0007G\u0002", + "\u0002\u0a16\u00ae\u0003\u0002\u0002\u0002\u0a17\u0a18\u0007F\u0002", + "\u0002\u0a18\u0a19\u0007G\u0002\u0002\u0a19\u0a1a\u0007H\u0002\u0002", + "\u0a1a\u0a1b\u0007C\u0002\u0002\u0a1b\u0a1c\u0007W\u0002\u0002\u0a1c", + "\u0a1d\u0007N\u0002\u0002\u0a1d\u0a1e\u0007V\u0002\u0002\u0a1e\u00b0", + "\u0003\u0002\u0002\u0002\u0a1f\u0a20\u0007F\u0002\u0002\u0a20\u0a21", + "\u0007G\u0002\u0002\u0a21\u0a22\u0007H\u0002\u0002\u0a22\u0a23\u0007", + "C\u0002\u0002\u0a23\u0a24\u0007W\u0002\u0002\u0a24\u0a25\u0007N\u0002", + "\u0002\u0a25\u0a26\u0007V\u0002\u0002\u0a26\u0a27\u0007a\u0002\u0002", + "\u0a27\u0a28\u0007F\u0002\u0002\u0a28\u0a29\u0007C\u0002\u0002\u0a29", + "\u0a2a\u0007V\u0002\u0002\u0a2a\u0a2b\u0007C\u0002\u0002\u0a2b\u0a2c", + "\u0007D\u0002\u0002\u0a2c\u0a2d\u0007C\u0002\u0002\u0a2d\u0a2e\u0007", + "U\u0002\u0002\u0a2e\u0a2f\u0007G\u0002\u0002\u0a2f\u00b2\u0003\u0002", + "\u0002\u0002\u0a30\u0a31\u0007F\u0002\u0002\u0a31\u0a32\u0007G\u0002", + "\u0002\u0a32\u0a33\u0007H\u0002\u0002\u0a33\u0a34\u0007C\u0002\u0002", + "\u0a34\u0a35\u0007W\u0002\u0002\u0a35\u0a36\u0007N\u0002\u0002\u0a36", + "\u0a37\u0007V\u0002\u0002\u0a37\u0a38\u0007a\u0002\u0002\u0a38\u0a39", + "\u0007U\u0002\u0002\u0a39\u0a3a\u0007E\u0002\u0002\u0a3a\u0a3b\u0007", + "J\u0002\u0002\u0a3b\u0a3c\u0007G\u0002\u0002\u0a3c\u0a3d\u0007O\u0002", + "\u0002\u0a3d\u0a3e\u0007C\u0002\u0002\u0a3e\u00b4\u0003\u0002\u0002", + "\u0002\u0a3f\u0a40\u0007F\u0002\u0002\u0a40\u0a41\u0007G\u0002\u0002", + "\u0a41\u0a42\u0007N\u0002\u0002\u0a42\u0a43\u0007G\u0002\u0002\u0a43", + "\u0a44\u0007V\u0002\u0002\u0a44\u0a45\u0007G\u0002\u0002\u0a45\u00b6", + "\u0003\u0002\u0002\u0002\u0a46\u0a47\u0007F\u0002\u0002\u0a47\u0a48", + "\u0007G\u0002\u0002\u0a48\u0a49\u0007P\u0002\u0002\u0a49\u0a4a\u0007", + "[\u0002\u0002\u0a4a\u00b8\u0003\u0002\u0002\u0002\u0a4b\u0a4c\u0007", + "F\u0002\u0002\u0a4c\u0a4d\u0007G\u0002\u0002\u0a4d\u0a4e\u0007U\u0002", + "\u0002\u0a4e\u0a4f\u0007E\u0002\u0002\u0a4f\u00ba\u0003\u0002\u0002", + "\u0002\u0a50\u0a51\u0007F\u0002\u0002\u0a51\u0a52\u0007K\u0002\u0002", + "\u0a52\u0a53\u0007C\u0002\u0002\u0a53\u0a54\u0007I\u0002\u0002\u0a54", + "\u0a55\u0007P\u0002\u0002\u0a55\u0a56\u0007Q\u0002\u0002\u0a56\u0a57", + "\u0007U\u0002\u0002\u0a57\u0a58\u0007V\u0002\u0002\u0a58\u0a59\u0007", + "K\u0002\u0002\u0a59\u0a5a\u0007E\u0002\u0002\u0a5a\u0a5b\u0007U\u0002", + "\u0002\u0a5b\u00bc\u0003\u0002\u0002\u0002\u0a5c\u0a5d\u0007F\u0002", + "\u0002\u0a5d\u0a5e\u0007K\u0002\u0002\u0a5e\u0a5f\u0007H\u0002\u0002", + "\u0a5f\u0a60\u0007H\u0002\u0002\u0a60\u0a61\u0007G\u0002\u0002\u0a61", + "\u0a62\u0007T\u0002\u0002\u0a62\u0a63\u0007G\u0002\u0002\u0a63\u0a64", + "\u0007P\u0002\u0002\u0a64\u0a65\u0007V\u0002\u0002\u0a65\u0a66\u0007", + "K\u0002\u0002\u0a66\u0a67\u0007C\u0002\u0002\u0a67\u0a68\u0007N\u0002", + "\u0002\u0a68\u00be\u0003\u0002\u0002\u0002\u0a69\u0a6a\u0007F\u0002", + "\u0002\u0a6a\u0a6b\u0007K\u0002\u0002\u0a6b\u0a6c\u0007U\u0002\u0002", + "\u0a6c\u0a6d\u0007M\u0002\u0002\u0a6d\u00c0\u0003\u0002\u0002\u0002", + "\u0a6e\u0a6f\u0007F\u0002\u0002\u0a6f\u0a70\u0007K\u0002\u0002\u0a70", + "\u0a71\u0007U\u0002\u0002\u0a71\u0a72\u0007V\u0002\u0002\u0a72\u0a73", + "\u0007K\u0002\u0002\u0a73\u0a74\u0007P\u0002\u0002\u0a74\u0a75\u0007", + "E\u0002\u0002\u0a75\u0a76\u0007V\u0002\u0002\u0a76\u00c2\u0003\u0002", + "\u0002\u0002\u0a77\u0a78\u0007F\u0002\u0002\u0a78\u0a79\u0007K\u0002", + "\u0002\u0a79\u0a7a\u0007U\u0002\u0002\u0a7a\u0a7b\u0007V\u0002\u0002", + "\u0a7b\u0a7c\u0007T\u0002\u0002\u0a7c\u0a7d\u0007K\u0002\u0002\u0a7d", + "\u0a7e\u0007D\u0002\u0002\u0a7e\u0a7f\u0007W\u0002\u0002\u0a7f\u0a80", + "\u0007V\u0002\u0002\u0a80\u0a81\u0007G\u0002\u0002\u0a81\u0a82\u0007", + "F\u0002\u0002\u0a82\u00c4\u0003\u0002\u0002\u0002\u0a83\u0a84\u0007", + "F\u0002\u0002\u0a84\u0a85\u0007Q\u0002\u0002\u0a85\u0a86\u0007W\u0002", + "\u0002\u0a86\u0a87\u0007D\u0002\u0002\u0a87\u0a88\u0007N\u0002\u0002", + "\u0a88\u0a89\u0007G\u0002\u0002\u0a89\u00c6\u0003\u0002\u0002\u0002", + "\u0a8a\u0a8b\u0007^\u0002\u0002\u0a8b\u0a8c\u0007^\u0002\u0002\u0a8c", + "\u00c8\u0003\u0002\u0002\u0002\u0a8d\u0a8e\u00071\u0002\u0002\u0a8e", + "\u0a8f\u00071\u0002\u0002\u0a8f\u00ca\u0003\u0002\u0002\u0002\u0a90", + "\u0a91\u0007F\u0002\u0002\u0a91\u0a92\u0007T\u0002\u0002\u0a92\u0a93", + "\u0007Q\u0002\u0002\u0a93\u0a94\u0007R\u0002\u0002\u0a94\u00cc\u0003", + "\u0002\u0002\u0002\u0a95\u0a96\u0007F\u0002\u0002\u0a96\u0a97\u0007", + "V\u0002\u0002\u0a97\u0a98\u0007E\u0002\u0002\u0a98\u0a99\u0007a\u0002", + "\u0002\u0a99\u0a9a\u0007U\u0002\u0002\u0a9a\u0a9b\u0007W\u0002\u0002", + "\u0a9b\u0a9c\u0007R\u0002\u0002\u0a9c\u0a9d\u0007R\u0002\u0002\u0a9d", + "\u0a9e\u0007Q\u0002\u0002\u0a9e\u0a9f\u0007T\u0002\u0002\u0a9f\u0aa0", + "\u0007V\u0002\u0002\u0aa0\u00ce\u0003\u0002\u0002\u0002\u0aa1\u0aa2", + "\u0007F\u0002\u0002\u0aa2\u0aa3\u0007W\u0002\u0002\u0aa3\u0aa4\u0007", + "O\u0002\u0002\u0aa4\u0aa5\u0007R\u0002\u0002\u0aa5\u00d0\u0003\u0002", + "\u0002\u0002\u0aa6\u0aa7\u0007G\u0002\u0002\u0aa7\u0aa8\u0007N\u0002", + "\u0002\u0aa8\u0aa9\u0007U\u0002\u0002\u0aa9\u0aaa\u0007G\u0002\u0002", + "\u0aaa\u00d2\u0003\u0002\u0002\u0002\u0aab\u0aac\u0007G\u0002\u0002", + "\u0aac\u0aad\u0007P\u0002\u0002\u0aad\u0aae\u0007C\u0002\u0002\u0aae", + "\u0aaf\u0007D\u0002\u0002\u0aaf\u0ab0\u0007N\u0002\u0002\u0ab0\u0ab1", + "\u0007G\u0002\u0002\u0ab1\u0ab2\u0007F\u0002\u0002\u0ab2\u00d4\u0003", + "\u0002\u0002\u0002\u0ab3\u0ab4\u0007G\u0002\u0002\u0ab4\u0ab5\u0007", + "P\u0002\u0002\u0ab5\u0ab6\u0007F\u0002\u0002\u0ab6\u00d6\u0003\u0002", + "\u0002\u0002\u0ab7\u0ab8\u0007G\u0002\u0002\u0ab8\u0ab9\u0007P\u0002", + "\u0002\u0ab9\u0aba\u0007F\u0002\u0002\u0aba\u0abb\u0007R\u0002\u0002", + "\u0abb\u0abc\u0007Q\u0002\u0002\u0abc\u0abd\u0007K\u0002\u0002\u0abd", + "\u0abe\u0007P\u0002\u0002\u0abe\u0abf\u0007V\u0002\u0002\u0abf\u00d8", + "\u0003\u0002\u0002\u0002\u0ac0\u0ac1\u0007G\u0002\u0002\u0ac1\u0ac2", + "\u0007T\u0002\u0002\u0ac2\u0ac3\u0007T\u0002\u0002\u0ac3\u0ac4\u0007", + "N\u0002\u0002\u0ac4\u0ac5\u0007X\u0002\u0002\u0ac5\u0ac6\u0007N\u0002", + "\u0002\u0ac6\u00da\u0003\u0002\u0002\u0002\u0ac7\u0ac8\u0007G\u0002", + "\u0002\u0ac8\u0ac9\u0007U\u0002\u0002\u0ac9\u0aca\u0007E\u0002\u0002", + "\u0aca\u0acb\u0007C\u0002\u0002\u0acb\u0acc\u0007R\u0002\u0002\u0acc", + "\u0acd\u0007G\u0002\u0002\u0acd\u00dc\u0003\u0002\u0002\u0002\u0ace", + "\u0acf\u0007G\u0002\u0002\u0acf\u0ad0\u0007T\u0002\u0002\u0ad0\u0ad1", + "\u0007T\u0002\u0002\u0ad1\u0ad2\u0007Q\u0002\u0002\u0ad2\u0ad3\u0007", + "T\u0002\u0002\u0ad3\u00de\u0003\u0002\u0002\u0002\u0ad4\u0ad5\u0007", + "G\u0002\u0002\u0ad5\u0ad6\u0007X\u0002\u0002\u0ad6\u0ad7\u0007G\u0002", + "\u0002\u0ad7\u0ad8\u0007P\u0002\u0002\u0ad8\u0ad9\u0007V\u0002\u0002", + "\u0ad9\u00e0\u0003\u0002\u0002\u0002\u0ada\u0adb\u0007G\u0002\u0002", + "\u0adb\u0adc\u0007X\u0002\u0002\u0adc\u0add\u0007G\u0002\u0002\u0add", + "\u0ade\u0007P\u0002\u0002\u0ade\u0adf\u0007V\u0002\u0002\u0adf\u0ae0", + "\u0007F\u0002\u0002\u0ae0\u0ae1\u0007C\u0002\u0002\u0ae1\u0ae2\u0007", + "V\u0002\u0002\u0ae2\u0ae3\u0007C\u0002\u0002\u0ae3\u0ae4\u0003\u0002", + "\u0002\u0002\u0ae4\u0ae5\u0007*\u0002\u0002\u0ae5\u0ae6\u0007+\u0002", + "\u0002\u0ae6\u00e2\u0003\u0002\u0002\u0002\u0ae7\u0ae8\u0007G\u0002", + "\u0002\u0ae8\u0ae9\u0007X\u0002\u0002\u0ae9\u0aea\u0007G\u0002\u0002", + "\u0aea\u0aeb\u0007P\u0002\u0002\u0aeb\u0aec\u0007V\u0002\u0002\u0aec", + "\u0aed\u0007a\u0002\u0002\u0aed\u0aee\u0007T\u0002\u0002\u0aee\u0aef", + "\u0007G\u0002\u0002\u0aef\u0af0\u0007V\u0002\u0002\u0af0\u0af1\u0007", + "G\u0002\u0002\u0af1\u0af2\u0007P\u0002\u0002\u0af2\u0af3\u0007V\u0002", + "\u0002\u0af3\u0af4\u0007K\u0002\u0002\u0af4\u0af5\u0007Q\u0002\u0002", + "\u0af5\u0af6\u0007P\u0002\u0002\u0af6\u0af7\u0007a\u0002\u0002\u0af7", + "\u0af8\u0007O\u0002\u0002\u0af8\u0af9\u0007Q\u0002\u0002\u0af9\u0afa", + "\u0007F\u0002\u0002\u0afa\u0afb\u0007G\u0002\u0002\u0afb\u00e4\u0003", + "\u0002\u0002\u0002\u0afc\u0afd\u0007G\u0002\u0002\u0afd\u0afe\u0007", + "Z\u0002\u0002\u0afe\u0aff\u0007E\u0002\u0002\u0aff\u0b00\u0007G\u0002", + "\u0002\u0b00\u0b01\u0007R\u0002\u0002\u0b01\u0b02\u0007V\u0002\u0002", + "\u0b02\u00e6\u0003\u0002\u0002\u0002\u0b03\u0b04\u0007G\u0002\u0002", + "\u0b04\u0b05\u0007Z\u0002\u0002\u0b05\u0b06\u0007G\u0002\u0002\u0b06", + "\u0b07\u0007E\u0002\u0002\u0b07\u0b08\u0007W\u0002\u0002\u0b08\u0b09", + "\u0007V\u0002\u0002\u0b09\u0b0a\u0007C\u0002\u0002\u0b0a\u0b0b\u0007", + "D\u0002\u0002\u0b0b\u0b0c\u0007N\u0002\u0002\u0b0c\u0b0d\u0007G\u0002", + "\u0002\u0b0d\u0b0e\u0007a\u0002\u0002\u0b0e\u0b0f\u0007H\u0002\u0002", + "\u0b0f\u0b10\u0007K\u0002\u0002\u0b10\u0b11\u0007N\u0002\u0002\u0b11", + "\u0b12\u0007G\u0002\u0002\u0b12\u00e8\u0003\u0002\u0002\u0002\u0b13", + "\u0b14\u0007G\u0002\u0002\u0b14\u0b15\u0007Z\u0002\u0002\u0b15\u0b16", + "\u0007G\u0002\u0002\u0b16\u0b17\u0007E\u0002\u0002\u0b17\u0b1b\u0003", + "\u0002\u0002\u0002\u0b18\u0b19\u0007W\u0002\u0002\u0b19\u0b1a\u0007", + "V\u0002\u0002\u0b1a\u0b1c\u0007G\u0002\u0002\u0b1b\u0b18\u0003\u0002", + "\u0002\u0002\u0b1b\u0b1c\u0003\u0002\u0002\u0002\u0b1c\u00ea\u0003\u0002", + "\u0002\u0002\u0b1d\u0b1e\u0007G\u0002\u0002\u0b1e\u0b1f\u0007Z\u0002", + "\u0002\u0b1f\u0b20\u0007K\u0002\u0002\u0b20\u0b21\u0007U\u0002\u0002", + "\u0b21\u0b22\u0007V\u0002\u0002\u0b22\u0b23\u0007U\u0002\u0002\u0b23", + "\u00ec\u0003\u0002\u0002\u0002\u0b24\u0b25\u0007G\u0002\u0002\u0b25", + "\u0b26\u0007Z\u0002\u0002\u0b26\u0b27\u0007R\u0002\u0002\u0b27\u0b28", + "\u0007K\u0002\u0002\u0b28\u0b29\u0007T\u0002\u0002\u0b29\u0b2a\u0007", + "G\u0002\u0002\u0b2a\u0b2b\u0007F\u0002\u0002\u0b2b\u0b2c\u0007C\u0002", + "\u0002\u0b2c\u0b2d\u0007V\u0002\u0002\u0b2d\u0b2e\u0007G\u0002\u0002", + "\u0b2e\u00ee\u0003\u0002\u0002\u0002\u0b2f\u0b30\u0007G\u0002\u0002", + "\u0b30\u0b31\u0007Z\u0002\u0002\u0b31\u0b32\u0007K\u0002\u0002\u0b32", + "\u0b33\u0007V\u0002\u0002\u0b33\u00f0\u0003\u0002\u0002\u0002\u0b34", + "\u0b35\u0007G\u0002\u0002\u0b35\u0b36\u0007Z\u0002\u0002\u0b36\u0b37", + "\u0007V\u0002\u0002\u0b37\u0b38\u0007G\u0002\u0002\u0b38\u0b39\u0007", + "P\u0002\u0002\u0b39\u0b3a\u0007U\u0002\u0002\u0b3a\u0b3b\u0007K\u0002", + "\u0002\u0b3b\u0b3c\u0007Q\u0002\u0002\u0b3c\u0b3d\u0007P\u0002\u0002", + "\u0b3d\u00f2\u0003\u0002\u0002\u0002\u0b3e\u0b3f\u0007G\u0002\u0002", + "\u0b3f\u0b40\u0007Z\u0002\u0002\u0b40\u0b41\u0007V\u0002\u0002\u0b41", + "\u0b42\u0007G\u0002\u0002\u0b42\u0b43\u0007T\u0002\u0002\u0b43\u0b44", + "\u0007P\u0002\u0002\u0b44\u0b45\u0007C\u0002\u0002\u0b45\u0b46\u0007", + "N\u0002\u0002\u0b46\u00f4\u0003\u0002\u0002\u0002\u0b47\u0b48\u0007", + "G\u0002\u0002\u0b48\u0b49\u0007Z\u0002\u0002\u0b49\u0b4a\u0007V\u0002", + "\u0002\u0b4a\u0b4b\u0007G\u0002\u0002\u0b4b\u0b4c\u0007T\u0002\u0002", + "\u0b4c\u0b4d\u0007P\u0002\u0002\u0b4d\u0b4e\u0007C\u0002\u0002\u0b4e", + "\u0b4f\u0007N\u0002\u0002\u0b4f\u0b50\u0007a\u0002\u0002\u0b50\u0b51", + "\u0007C\u0002\u0002\u0b51\u0b52\u0007E\u0002\u0002\u0b52\u0b53\u0007", + "E\u0002\u0002\u0b53\u0b54\u0007G\u0002\u0002\u0b54\u0b55\u0007U\u0002", + "\u0002\u0b55\u0b56\u0007U\u0002\u0002\u0b56\u00f6\u0003\u0002\u0002", + "\u0002\u0b57\u0b58\u0007H\u0002\u0002\u0b58\u0b59\u0007C\u0002\u0002", + "\u0b59\u0b5a\u0007K\u0002\u0002\u0b5a\u0b5b\u0007N\u0002\u0002\u0b5b", + "\u0b5c\u0007Q\u0002\u0002\u0b5c\u0b5d\u0007X\u0002\u0002\u0b5d\u0b5e", + "\u0007G\u0002\u0002\u0b5e\u0b5f\u0007T\u0002\u0002\u0b5f\u00f8\u0003", + "\u0002\u0002\u0002\u0b60\u0b61\u0007H\u0002\u0002\u0b61\u0b62\u0007", + "C\u0002\u0002\u0b62\u0b63\u0007K\u0002\u0002\u0b63\u0b64\u0007N\u0002", + "\u0002\u0b64\u0b65\u0007W\u0002\u0002\u0b65\u0b66\u0007T\u0002\u0002", + "\u0b66\u0b67\u0007G\u0002\u0002\u0b67\u0b68\u0007E\u0002\u0002\u0b68", + "\u0b69\u0007Q\u0002\u0002\u0b69\u0b6a\u0007P\u0002\u0002\u0b6a\u0b6b", + "\u0007F\u0002\u0002\u0b6b\u0b6c\u0007K\u0002\u0002\u0b6c\u0b6d\u0007", + "V\u0002\u0002\u0b6d\u0b6e\u0007K\u0002\u0002\u0b6e\u0b6f\u0007Q\u0002", + "\u0002\u0b6f\u0b70\u0007P\u0002\u0002\u0b70\u0b71\u0007N\u0002\u0002", + "\u0b71\u0b72\u0007G\u0002\u0002\u0b72\u0b73\u0007X\u0002\u0002\u0b73", + "\u0b74\u0007G\u0002\u0002\u0b74\u0b75\u0007N\u0002\u0002\u0b75\u00fa", + "\u0003\u0002\u0002\u0002\u0b76\u0b77\u0007H\u0002\u0002\u0b77\u0b78", + "\u0007C\u0002\u0002\u0b78\u0b79\u0007P\u0002\u0002\u0b79\u0b7a\u0007", + "a\u0002\u0002\u0b7a\u0b7b\u0007K\u0002\u0002\u0b7b\u0b7c\u0007P\u0002", + "\u0002\u0b7c\u00fc\u0003\u0002\u0002\u0002\u0b7d\u0b7e\u0007H\u0002", + "\u0002\u0b7e\u0b7f\u0007G\u0002\u0002\u0b7f\u0b80\u0007V\u0002\u0002", + "\u0b80\u0b81\u0007E\u0002\u0002\u0b81\u0b82\u0007J\u0002\u0002\u0b82", + "\u00fe\u0003\u0002\u0002\u0002\u0b83\u0b84\u0007H\u0002\u0002\u0b84", + "\u0b85\u0007K\u0002\u0002\u0b85\u0b86\u0007N\u0002\u0002\u0b86\u0b87", + "\u0007G\u0002\u0002\u0b87\u0100\u0003\u0002\u0002\u0002\u0b88\u0b89", + "\u0007H\u0002\u0002\u0b89\u0b8a\u0007K\u0002\u0002\u0b8a\u0b8b\u0007", + "N\u0002\u0002\u0b8b\u0b8c\u0007G\u0002\u0002\u0b8c\u0b8d\u0007P\u0002", + "\u0002\u0b8d\u0b8e\u0007C\u0002\u0002\u0b8e\u0b8f\u0007O\u0002\u0002", + "\u0b8f\u0b90\u0007G\u0002\u0002\u0b90\u0102\u0003\u0002\u0002\u0002", + "\u0b91\u0b92\u0007H\u0002\u0002\u0b92\u0b93\u0007K\u0002\u0002\u0b93", + "\u0b94\u0007N\u0002\u0002\u0b94\u0b95\u0007N\u0002\u0002\u0b95\u0b96", + "\u0007H\u0002\u0002\u0b96\u0b97\u0007C\u0002\u0002\u0b97\u0b98\u0007", + "E\u0002\u0002\u0b98\u0b99\u0007V\u0002\u0002\u0b99\u0b9a\u0007Q\u0002", + "\u0002\u0b9a\u0b9b\u0007T\u0002\u0002\u0b9b\u0104\u0003\u0002\u0002", + "\u0002\u0b9c\u0b9d\u0007H\u0002\u0002\u0b9d\u0b9e\u0007K\u0002\u0002", + "\u0b9e\u0b9f\u0007N\u0002\u0002\u0b9f\u0ba0\u0007G\u0002\u0002\u0ba0", + "\u0ba1\u0007a\u0002\u0002\u0ba1\u0ba2\u0007U\u0002\u0002\u0ba2\u0ba3", + "\u0007P\u0002\u0002\u0ba3\u0ba4\u0007C\u0002\u0002\u0ba4\u0ba5\u0007", + "R\u0002\u0002\u0ba5\u0ba6\u0007U\u0002\u0002\u0ba6\u0ba7\u0007J\u0002", + "\u0002\u0ba7\u0ba8\u0007Q\u0002\u0002\u0ba8\u0ba9\u0007V\u0002\u0002", + "\u0ba9\u0106\u0003\u0002\u0002\u0002\u0baa\u0bab\u0007H\u0002\u0002", + "\u0bab\u0bac\u0007Q\u0002\u0002\u0bac\u0bad\u0007T\u0002\u0002\u0bad", + "\u0108\u0003\u0002\u0002\u0002\u0bae\u0baf\u0007H\u0002\u0002\u0baf", + "\u0bb0\u0007Q\u0002\u0002\u0bb0\u0bb1\u0007T\u0002\u0002\u0bb1\u0bb2", + "\u0007E\u0002\u0002\u0bb2\u0bb3\u0007G\u0002\u0002\u0bb3\u0bb4\u0007", + "U\u0002\u0002\u0bb4\u0bb5\u0007G\u0002\u0002\u0bb5\u0bb6\u0007G\u0002", + "\u0002\u0bb6\u0bb7\u0007M\u0002\u0002\u0bb7\u010a\u0003\u0002\u0002", + "\u0002\u0bb8\u0bb9\u0007H\u0002\u0002\u0bb9\u0bba\u0007Q\u0002\u0002", + "\u0bba\u0bbb\u0007T\u0002\u0002\u0bbb\u0bbc\u0007E\u0002\u0002\u0bbc", + "\u0bbd\u0007G\u0002\u0002\u0bbd\u0bbe\u0007a\u0002\u0002\u0bbe\u0bbf", + "\u0007U\u0002\u0002\u0bbf\u0bc0\u0007G\u0002\u0002\u0bc0\u0bc1\u0007", + "T\u0002\u0002\u0bc1\u0bc2\u0007X\u0002\u0002\u0bc2\u0bc3\u0007K\u0002", + "\u0002\u0bc3\u0bc4\u0007E\u0002\u0002\u0bc4\u0bc5\u0007G\u0002\u0002", + "\u0bc5\u0bc6\u0007a\u0002\u0002\u0bc6\u0bc7\u0007C\u0002\u0002\u0bc7", + "\u0bc8\u0007N\u0002\u0002\u0bc8\u0bc9\u0007N\u0002\u0002\u0bc9\u0bca", + "\u0007Q\u0002\u0002\u0bca\u0bcb\u0007Y\u0002\u0002\u0bcb\u0bcc\u0007", + "a\u0002\u0002\u0bcc\u0bcd\u0007F\u0002\u0002\u0bcd\u0bce\u0007C\u0002", + "\u0002\u0bce\u0bcf\u0007V\u0002\u0002\u0bcf\u0bd0\u0007C\u0002\u0002", + "\u0bd0\u0bd1\u0007a\u0002\u0002\u0bd1\u0bd2\u0007N\u0002\u0002\u0bd2", + "\u0bd3\u0007Q\u0002\u0002\u0bd3\u0bd4\u0007U\u0002\u0002\u0bd4\u0bd5", + "\u0007U\u0002\u0002\u0bd5\u010c\u0003\u0002\u0002\u0002\u0bd6\u0bd7", + "\u0007H\u0002\u0002\u0bd7\u0bd8\u0007Q\u0002\u0002\u0bd8\u0bd9\u0007", + "T\u0002\u0002\u0bd9\u0bda\u0007G\u0002\u0002\u0bda\u0bdb\u0007K\u0002", + "\u0002\u0bdb\u0bdc\u0007I\u0002\u0002\u0bdc\u0bdd\u0007P\u0002\u0002", + "\u0bdd\u010e\u0003\u0002\u0002\u0002\u0bde\u0bdf\u0007H\u0002\u0002", + "\u0bdf\u0be0\u0007T\u0002\u0002\u0be0\u0be1\u0007G\u0002\u0002\u0be1", + "\u0be2\u0007G\u0002\u0002\u0be2\u0be3\u0007V\u0002\u0002\u0be3\u0be4", + "\u0007G\u0002\u0002\u0be4\u0be5\u0007Z\u0002\u0002\u0be5\u0be6\u0007", + "V\u0002\u0002\u0be6\u0110\u0003\u0002\u0002\u0002\u0be7\u0be8\u0007", + "H\u0002\u0002\u0be8\u0be9\u0007T\u0002\u0002\u0be9\u0bea\u0007G\u0002", + "\u0002\u0bea\u0beb\u0007G\u0002\u0002\u0beb\u0bec\u0007V\u0002\u0002", + "\u0bec\u0bed\u0007G\u0002\u0002\u0bed\u0bee\u0007Z\u0002\u0002\u0bee", + "\u0bef\u0007V\u0002\u0002\u0bef\u0bf0\u0007V\u0002\u0002\u0bf0\u0bf1", + "\u0007C\u0002\u0002\u0bf1\u0bf2\u0007D\u0002\u0002\u0bf2\u0bf3\u0007", + "N\u0002\u0002\u0bf3\u0bf4\u0007G\u0002\u0002\u0bf4\u0112\u0003\u0002", + "\u0002\u0002\u0bf5\u0bf6\u0007H\u0002\u0002\u0bf6\u0bf7\u0007T\u0002", + "\u0002\u0bf7\u0bf8\u0007Q\u0002\u0002\u0bf8\u0bf9\u0007O\u0002\u0002", + "\u0bf9\u0114\u0003\u0002\u0002\u0002\u0bfa\u0bfb\u0007H\u0002\u0002", + "\u0bfb\u0bfc\u0007W\u0002\u0002\u0bfc\u0bfd\u0007N\u0002\u0002\u0bfd", + "\u0bfe\u0007N\u0002\u0002\u0bfe\u0116\u0003\u0002\u0002\u0002\u0bff", + "\u0c00\u0007H\u0002\u0002\u0c00\u0c01\u0007W\u0002\u0002\u0c01\u0c02", + "\u0007P\u0002\u0002\u0c02\u0c03\u0007E\u0002\u0002\u0c03\u0c04\u0007", + "V\u0002\u0002\u0c04\u0c05\u0007K\u0002\u0002\u0c05\u0c06\u0007Q\u0002", + "\u0002\u0c06\u0c07\u0007P\u0002\u0002\u0c07\u0118\u0003\u0002\u0002", + "\u0002\u0c08\u0c09\u0007I\u0002\u0002\u0c09\u0c0a\u0007G\u0002\u0002", + "\u0c0a\u0c0b\u0007V\u0002\u0002\u0c0b\u011a\u0003\u0002\u0002\u0002", + "\u0c0c\u0c0d\u0007I\u0002\u0002\u0c0d\u0c0e\u0007Q\u0002\u0002\u0c0e", + "\u0c0f\u0007V\u0002\u0002\u0c0f\u0c10\u0007Q\u0002\u0002\u0c10\u011c", + "\u0003\u0002\u0002\u0002\u0c11\u0c12\u0007I\u0002\u0002\u0c12\u0c13", + "\u0007Q\u0002\u0002\u0c13\u0c14\u0007X\u0002\u0002\u0c14\u0c15\u0007", + "G\u0002\u0002\u0c15\u0c16\u0007T\u0002\u0002\u0c16\u0c17\u0007P\u0002", + "\u0002\u0c17\u0c18\u0007Q\u0002\u0002\u0c18\u0c19\u0007T\u0002\u0002", + "\u0c19\u011e\u0003\u0002\u0002\u0002\u0c1a\u0c1b\u0007I\u0002\u0002", + "\u0c1b\u0c1c\u0007T\u0002\u0002\u0c1c\u0c1d\u0007C\u0002\u0002\u0c1d", + "\u0c1e\u0007P\u0002\u0002\u0c1e\u0c1f\u0007V\u0002\u0002\u0c1f\u0120", + "\u0003\u0002\u0002\u0002\u0c20\u0c21\u0007I\u0002\u0002\u0c21\u0c22", + "\u0007T\u0002\u0002\u0c22\u0c23\u0007Q\u0002\u0002\u0c23\u0c24\u0007", + "W\u0002\u0002\u0c24\u0c25\u0007R\u0002\u0002\u0c25\u0122\u0003\u0002", + "\u0002\u0002\u0c26\u0c27\u0007J\u0002\u0002\u0c27\u0c28\u0007C\u0002", + "\u0002\u0c28\u0c29\u0007X\u0002\u0002\u0c29\u0c2a\u0007K\u0002\u0002", + "\u0c2a\u0c2b\u0007P\u0002\u0002\u0c2b\u0c2c\u0007I\u0002\u0002\u0c2c", + "\u0124\u0003\u0002\u0002\u0002\u0c2d\u0c2e\u0007J\u0002\u0002\u0c2e", + "\u0c2f\u0007C\u0002\u0002\u0c2f\u0c30\u0007U\u0002\u0002\u0c30\u0c31", + "\u0007J\u0002\u0002\u0c31\u0c32\u0007G\u0002\u0002\u0c32\u0c33\u0007", + "F\u0002\u0002\u0c33\u0126\u0003\u0002\u0002\u0002\u0c34\u0c35\u0007", + "J\u0002\u0002\u0c35\u0c36\u0007G\u0002\u0002\u0c36\u0c37\u0007C\u0002", + "\u0002\u0c37\u0c38\u0007N\u0002\u0002\u0c38\u0c39\u0007V\u0002\u0002", + "\u0c39\u0c3a\u0007J\u0002\u0002\u0c3a\u0c3b\u0007E\u0002\u0002\u0c3b", + "\u0c3c\u0007J\u0002\u0002\u0c3c\u0c3d\u0007G\u0002\u0002\u0c3d\u0c3e", + "\u0007E\u0002\u0002\u0c3e\u0c3f\u0007M\u0002\u0002\u0c3f\u0c40\u0007", + "V\u0002\u0002\u0c40\u0c41\u0007K\u0002\u0002\u0c41\u0c42\u0007O\u0002", + "\u0002\u0c42\u0c43\u0007G\u0002\u0002\u0c43\u0c44\u0007Q\u0002\u0002", + "\u0c44\u0c45\u0007W\u0002\u0002\u0c45\u0c46\u0007V\u0002\u0002\u0c46", + "\u0128\u0003\u0002\u0002\u0002\u0c47\u0c48\u0007K\u0002\u0002\u0c48", + "\u0c49\u0007F\u0002\u0002\u0c49\u0c4a\u0007G\u0002\u0002\u0c4a\u0c4b", + "\u0007P\u0002\u0002\u0c4b\u0c4c\u0007V\u0002\u0002\u0c4c\u0c4d\u0007", + "K\u0002\u0002\u0c4d\u0c4e\u0007V\u0002\u0002\u0c4e\u0c4f\u0007[\u0002", + "\u0002\u0c4f\u012a\u0003\u0002\u0002\u0002\u0c50\u0c51\u0007K\u0002", + "\u0002\u0c51\u0c52\u0007F\u0002\u0002\u0c52\u0c53\u0007G\u0002\u0002", + "\u0c53\u0c54\u0007P\u0002\u0002\u0c54\u0c55\u0007V\u0002\u0002\u0c55", + "\u0c56\u0007K\u0002\u0002\u0c56\u0c57\u0007V\u0002\u0002\u0c57\u0c58", + "\u0007[\u0002\u0002\u0c58\u0c59\u0007E\u0002\u0002\u0c59\u0c5a\u0007", + "Q\u0002\u0002\u0c5a\u0c5b\u0007N\u0002\u0002\u0c5b\u012c\u0003\u0002", + "\u0002\u0002\u0c5c\u0c5d\u0007K\u0002\u0002\u0c5d\u0c5e\u0007F\u0002", + "\u0002\u0c5e\u0c5f\u0007G\u0002\u0002\u0c5f\u0c60\u0007P\u0002\u0002", + "\u0c60\u0c61\u0007V\u0002\u0002\u0c61\u0c62\u0007K\u0002\u0002\u0c62", + "\u0c63\u0007V\u0002\u0002\u0c63\u0c64\u0007[\u0002\u0002\u0c64\u0c65", + "\u0007a\u0002\u0002\u0c65\u0c66\u0007K\u0002\u0002\u0c66\u0c67\u0007", + "P\u0002\u0002\u0c67\u0c68\u0007U\u0002\u0002\u0c68\u0c69\u0007G\u0002", + "\u0002\u0c69\u0c6a\u0007T\u0002\u0002\u0c6a\u0c6b\u0007V\u0002\u0002", + "\u0c6b\u012e\u0003\u0002\u0002\u0002\u0c6c\u0c6d\u0007K\u0002\u0002", + "\u0c6d\u0c6e\u0007H\u0002\u0002\u0c6e\u0130\u0003\u0002\u0002\u0002", + "\u0c6f\u0c70\u0007K\u0002\u0002\u0c70\u0c71\u0007K\u0002\u0002\u0c71", + "\u0c72\u0007H\u0002\u0002\u0c72\u0132\u0003\u0002\u0002\u0002\u0c73", + "\u0c74\u0007K\u0002\u0002\u0c74\u0c75\u0007P\u0002\u0002\u0c75\u0134", + "\u0003\u0002\u0002\u0002\u0c76\u0c77\u0007K\u0002\u0002\u0c77\u0c78", + "\u0007P\u0002\u0002\u0c78\u0c79\u0007E\u0002\u0002\u0c79\u0c7a\u0007", + "N\u0002\u0002\u0c7a\u0c7b\u0007W\u0002\u0002\u0c7b\u0c7c\u0007F\u0002", + "\u0002\u0c7c\u0c7d\u0007G\u0002\u0002\u0c7d\u0136\u0003\u0002\u0002", + "\u0002\u0c7e\u0c7f\u0007K\u0002\u0002\u0c7f\u0c80\u0007P\u0002\u0002", + "\u0c80\u0c81\u0007E\u0002\u0002\u0c81\u0c82\u0007T\u0002\u0002\u0c82", + "\u0c83\u0007G\u0002\u0002\u0c83\u0c84\u0007O\u0002\u0002\u0c84\u0c85", + "\u0007G\u0002\u0002\u0c85\u0c86\u0007P\u0002\u0002\u0c86\u0c87\u0007", + "V\u0002\u0002\u0c87\u0138\u0003\u0002\u0002\u0002\u0c88\u0c89\u0007", + "K\u0002\u0002\u0c89\u0c8a\u0007P\u0002\u0002\u0c8a\u0c8b\u0007F\u0002", + "\u0002\u0c8b\u0c8c\u0007G\u0002\u0002\u0c8c\u0c8d\u0007Z\u0002\u0002", + "\u0c8d\u013a\u0003\u0002\u0002\u0002\u0c8e\u0c8f\u0007K\u0002\u0002", + "\u0c8f\u0c90\u0007P\u0002\u0002\u0c90\u0c91\u0007H\u0002\u0002\u0c91", + "\u0c92\u0007K\u0002\u0002\u0c92\u0c93\u0007P\u0002\u0002\u0c93\u0c94", + "\u0007K\u0002\u0002\u0c94\u0c95\u0007V\u0002\u0002\u0c95\u0c96\u0007", + "G\u0002\u0002\u0c96\u013c\u0003\u0002\u0002\u0002\u0c97\u0c98\u0007", + "K\u0002\u0002\u0c98\u0c99\u0007P\u0002\u0002\u0c99\u0c9a\u0007K\u0002", + "\u0002\u0c9a\u0c9b\u0007V\u0002\u0002\u0c9b\u013e\u0003\u0002\u0002", + "\u0002\u0c9c\u0c9d\u0007K\u0002\u0002\u0c9d\u0c9e\u0007P\u0002\u0002", + "\u0c9e\u0c9f\u0007P\u0002\u0002\u0c9f\u0ca0\u0007G\u0002\u0002\u0ca0", + "\u0ca1\u0007T\u0002\u0002\u0ca1\u0140\u0003\u0002\u0002\u0002\u0ca2", + "\u0ca3\u0007K\u0002\u0002\u0ca3\u0ca4\u0007P\u0002\u0002\u0ca4\u0ca5", + "\u0007U\u0002\u0002\u0ca5\u0ca6\u0007G\u0002\u0002\u0ca6\u0ca7\u0007", + "T\u0002\u0002\u0ca7\u0ca8\u0007V\u0002\u0002\u0ca8\u0142\u0003\u0002", + "\u0002\u0002\u0ca9\u0caa\u0007K\u0002\u0002\u0caa\u0cab\u0007P\u0002", + "\u0002\u0cab\u0cac\u0007U\u0002\u0002\u0cac\u0cad\u0007V\u0002\u0002", + "\u0cad\u0cae\u0007G\u0002\u0002\u0cae\u0caf\u0007C\u0002\u0002\u0caf", + "\u0cb0\u0007F\u0002\u0002\u0cb0\u0144\u0003\u0002\u0002\u0002\u0cb1", + "\u0cb2\u0007K\u0002\u0002\u0cb2\u0cb3\u0007P\u0002\u0002\u0cb3\u0cb4", + "\u0007V\u0002\u0002\u0cb4\u0cb5\u0007G\u0002\u0002\u0cb5\u0cb6\u0007", + "T\u0002\u0002\u0cb6\u0cb7\u0007U\u0002\u0002\u0cb7\u0cb8\u0007G\u0002", + "\u0002\u0cb8\u0cb9\u0007E\u0002\u0002\u0cb9\u0cba\u0007V\u0002\u0002", + "\u0cba\u0146\u0003\u0002\u0002\u0002\u0cbb\u0cbc\u0007K\u0002\u0002", + "\u0cbc\u0cbd\u0007P\u0002\u0002\u0cbd\u0cbe\u0007V\u0002\u0002\u0cbe", + "\u0cbf\u0007Q\u0002\u0002\u0cbf\u0148\u0003\u0002\u0002\u0002\u0cc0", + "\u0cc2\t\u0002\u0002\u0002\u0cc1\u0cc0\u0003\u0002\u0002\u0002\u0cc1", + "\u0cc2\u0003\u0002\u0002\u0002\u0cc2\u0cc3\u0003\u0002\u0002\u0002\u0cc3", + "\u0cc4\u0005\u0695\u034b\u0002\u0cc4\u0cc5\u0005\u066b\u0336\u0002\u0cc5", + "\u0cc6\u0005\u0695\u034b\u0002\u0cc6\u0cc7\u0005\u066b\u0336\u0002\u0cc7", + "\u0cc8\u0005\u0695\u034b\u0002\u0cc8\u0cc9\u0005\u066b\u0336\u0002\u0cc9", + "\u0ccb\u0005\u0695\u034b\u0002\u0cca\u0ccc\t\u0002\u0002\u0002\u0ccb", + "\u0cca\u0003\u0002\u0002\u0002\u0ccb\u0ccc\u0003\u0002\u0002\u0002\u0ccc", + "\u014a\u0003\u0002\u0002\u0002\u0ccd\u0ccf\t\u0002\u0002\u0002\u0cce", + "\u0ccd\u0003\u0002\u0002\u0002\u0cce\u0ccf\u0003\u0002\u0002\u0002\u0ccf", + "\u0cd1\u0003\u0002\u0002\u0002\u0cd0\u0cd2\t\u0003\u0002\u0002\u0cd1", + "\u0cd0\u0003\u0002\u0002\u0002\u0cd1\u0cd2\u0003\u0002\u0002\u0002\u0cd2", + "\u0cd4\u0003\u0002\u0002\u0002\u0cd3\u0cd5\t\u0003\u0002\u0002\u0cd4", + "\u0cd3\u0003\u0002\u0002\u0002\u0cd4\u0cd5\u0003\u0002\u0002\u0002\u0cd5", + "\u0cd7\u0003\u0002\u0002\u0002\u0cd6\u0cd8\t\u0003\u0002\u0002\u0cd7", + "\u0cd6\u0003\u0002\u0002\u0002\u0cd7\u0cd8\u0003\u0002\u0002\u0002\u0cd8", + "\u0cda\u0003\u0002\u0002\u0002\u0cd9\u0cdb\t\u0003\u0002\u0002\u0cda", + "\u0cd9\u0003\u0002\u0002\u0002\u0cda\u0cdb\u0003\u0002\u0002\u0002\u0cdb", + "\u0cdc\u0003\u0002\u0002\u0002\u0cdc\u0cde\t\u0004\u0002\u0002\u0cdd", + "\u0cdf\t\u0003\u0002\u0002\u0cde\u0cdd\u0003\u0002\u0002\u0002\u0cde", + "\u0cdf\u0003\u0002\u0002\u0002\u0cdf\u0ce1\u0003\u0002\u0002\u0002\u0ce0", + "\u0ce2\t\u0003\u0002\u0002\u0ce1\u0ce0\u0003\u0002\u0002\u0002\u0ce1", + "\u0ce2\u0003\u0002\u0002\u0002\u0ce2\u0ce4\u0003\u0002\u0002\u0002\u0ce3", + "\u0ce5\t\u0003\u0002\u0002\u0ce4\u0ce3\u0003\u0002\u0002\u0002\u0ce4", + "\u0ce5\u0003\u0002\u0002\u0002\u0ce5\u0ce7\u0003\u0002\u0002\u0002\u0ce6", + "\u0ce8\t\u0003\u0002\u0002\u0ce7\u0ce6\u0003\u0002\u0002\u0002\u0ce7", + "\u0ce8\u0003\u0002\u0002\u0002\u0ce8\u0ce9\u0003\u0002\u0002\u0002\u0ce9", + "\u0ceb\t\u0004\u0002\u0002\u0cea\u0cec\t\u0003\u0002\u0002\u0ceb\u0cea", + "\u0003\u0002\u0002\u0002\u0ceb\u0cec\u0003\u0002\u0002\u0002\u0cec\u0cee", + "\u0003\u0002\u0002\u0002\u0ced\u0cef\t\u0003\u0002\u0002\u0cee\u0ced", + "\u0003\u0002\u0002\u0002\u0cee\u0cef\u0003\u0002\u0002\u0002\u0cef\u0cf1", + "\u0003\u0002\u0002\u0002\u0cf0\u0cf2\t\u0003\u0002\u0002\u0cf1\u0cf0", + "\u0003\u0002\u0002\u0002\u0cf1\u0cf2\u0003\u0002\u0002\u0002\u0cf2\u0cf4", + "\u0003\u0002\u0002\u0002\u0cf3\u0cf5\t\u0003\u0002\u0002\u0cf4\u0cf3", + "\u0003\u0002\u0002\u0002\u0cf4\u0cf5\u0003\u0002\u0002\u0002\u0cf5\u0cf6", + "\u0003\u0002\u0002\u0002\u0cf6\u0cf8\t\u0004\u0002\u0002\u0cf7\u0cf9", + "\t\u0003\u0002\u0002\u0cf8\u0cf7\u0003\u0002\u0002\u0002\u0cf8\u0cf9", + "\u0003\u0002\u0002\u0002\u0cf9\u0cfb\u0003\u0002\u0002\u0002\u0cfa\u0cfc", + "\t\u0003\u0002\u0002\u0cfb\u0cfa\u0003\u0002\u0002\u0002\u0cfb\u0cfc", + "\u0003\u0002\u0002\u0002\u0cfc\u0cfe\u0003\u0002\u0002\u0002\u0cfd\u0cff", + "\t\u0003\u0002\u0002\u0cfe\u0cfd\u0003\u0002\u0002\u0002\u0cfe\u0cff", + "\u0003\u0002\u0002\u0002\u0cff\u0d01\u0003\u0002\u0002\u0002\u0d00\u0d02", + "\t\u0003\u0002\u0002\u0d01\u0d00\u0003\u0002\u0002\u0002\u0d01\u0d02", + "\u0003\u0002\u0002\u0002\u0d02\u0d03\u0003\u0002\u0002\u0002\u0d03\u0d05", + "\t\u0004\u0002\u0002\u0d04\u0d06\t\u0003\u0002\u0002\u0d05\u0d04\u0003", + "\u0002\u0002\u0002\u0d05\u0d06\u0003\u0002\u0002\u0002\u0d06\u0d08\u0003", + "\u0002\u0002\u0002\u0d07\u0d09\t\u0003\u0002\u0002\u0d08\u0d07\u0003", + "\u0002\u0002\u0002\u0d08\u0d09\u0003\u0002\u0002\u0002\u0d09\u0d0b\u0003", + "\u0002\u0002\u0002\u0d0a\u0d0c\t\u0003\u0002\u0002\u0d0b\u0d0a\u0003", + "\u0002\u0002\u0002\u0d0b\u0d0c\u0003\u0002\u0002\u0002\u0d0c\u0d0e\u0003", + "\u0002\u0002\u0002\u0d0d\u0d0f\t\u0003\u0002\u0002\u0d0e\u0d0d\u0003", + "\u0002\u0002\u0002\u0d0e\u0d0f\u0003\u0002\u0002\u0002\u0d0f\u0d10\u0003", + "\u0002\u0002\u0002\u0d10\u0d12\t\u0004\u0002\u0002\u0d11\u0d13\t\u0003", + "\u0002\u0002\u0d12\u0d11\u0003\u0002\u0002\u0002\u0d12\u0d13\u0003\u0002", + "\u0002\u0002\u0d13\u0d15\u0003\u0002\u0002\u0002\u0d14\u0d16\t\u0003", + "\u0002\u0002\u0d15\u0d14\u0003\u0002\u0002\u0002\u0d15\u0d16\u0003\u0002", + "\u0002\u0002\u0d16\u0d18\u0003\u0002\u0002\u0002\u0d17\u0d19\t\u0003", + "\u0002\u0002\u0d18\u0d17\u0003\u0002\u0002\u0002\u0d18\u0d19\u0003\u0002", + "\u0002\u0002\u0d19\u0d1b\u0003\u0002\u0002\u0002\u0d1a\u0d1c\t\u0003", + "\u0002\u0002\u0d1b\u0d1a\u0003\u0002\u0002\u0002\u0d1b\u0d1c\u0003\u0002", + "\u0002\u0002\u0d1c\u0d1d\u0003\u0002\u0002\u0002\u0d1d\u0d1f\t\u0004", + "\u0002\u0002\u0d1e\u0d20\t\u0003\u0002\u0002\u0d1f\u0d1e\u0003\u0002", + "\u0002\u0002\u0d1f\u0d20\u0003\u0002\u0002\u0002\u0d20\u0d22\u0003\u0002", + "\u0002\u0002\u0d21\u0d23\t\u0003\u0002\u0002\u0d22\u0d21\u0003\u0002", + "\u0002\u0002\u0d22\u0d23\u0003\u0002\u0002\u0002\u0d23\u0d25\u0003\u0002", + "\u0002\u0002\u0d24\u0d26\t\u0003\u0002\u0002\u0d25\u0d24\u0003\u0002", + "\u0002\u0002\u0d25\u0d26\u0003\u0002\u0002\u0002\u0d26\u0d28\u0003\u0002", + "\u0002\u0002\u0d27\u0d29\t\u0003\u0002\u0002\u0d28\u0d27\u0003\u0002", + "\u0002\u0002\u0d28\u0d29\u0003\u0002\u0002\u0002\u0d29\u0d2a\u0003\u0002", + "\u0002\u0002\u0d2a\u0d2c\t\u0004\u0002\u0002\u0d2b\u0d2d\t\u0003\u0002", + "\u0002\u0d2c\u0d2b\u0003\u0002\u0002\u0002\u0d2c\u0d2d\u0003\u0002\u0002", + "\u0002\u0d2d\u0d2f\u0003\u0002\u0002\u0002\u0d2e\u0d30\t\u0003\u0002", + "\u0002\u0d2f\u0d2e\u0003\u0002\u0002\u0002\u0d2f\u0d30\u0003\u0002\u0002", + "\u0002\u0d30\u0d32\u0003\u0002\u0002\u0002\u0d31\u0d33\t\u0003\u0002", + "\u0002\u0d32\u0d31\u0003\u0002\u0002\u0002\u0d32\u0d33\u0003\u0002\u0002", + "\u0002\u0d33\u0d35\u0003\u0002\u0002\u0002\u0d34\u0d36\t\u0003\u0002", + "\u0002\u0d35\u0d34\u0003\u0002\u0002\u0002\u0d35\u0d36\u0003\u0002\u0002", + "\u0002\u0d36\u0d38\u0003\u0002\u0002\u0002\u0d37\u0d39\t\u0002\u0002", + "\u0002\u0d38\u0d37\u0003\u0002\u0002\u0002\u0d38\u0d39\u0003\u0002\u0002", + "\u0002\u0d39\u014c\u0003\u0002\u0002\u0002\u0d3a\u0d3b\u0007K\u0002", + "\u0002\u0d3b\u0d3c\u0007U\u0002\u0002\u0d3c\u014e\u0003\u0002\u0002", + "\u0002\u0d3d\u0d3e\u0007K\u0002\u0002\u0d3e\u0d3f\u0007U\u0002\u0002", + "\u0d3f\u0d40\u0007P\u0002\u0002\u0d40\u0d41\u0007W\u0002\u0002\u0d41", + "\u0d42\u0007N\u0002\u0002\u0d42\u0d43\u0007N\u0002\u0002\u0d43\u0150", + "\u0003\u0002\u0002\u0002\u0d44\u0d45\u0007L\u0002\u0002\u0d45\u0d46", + "\u0007Q\u0002\u0002\u0d46\u0d47\u0007K\u0002\u0002\u0d47\u0d48\u0007", + "P\u0002\u0002\u0d48\u0152\u0003\u0002\u0002\u0002\u0d49\u0d4a\u0007", + "M\u0002\u0002\u0d4a\u0d4b\u0007G\u0002\u0002\u0d4b\u0d4c\u0007T\u0002", + "\u0002\u0d4c\u0d4d\u0007D\u0002\u0002\u0d4d\u0d4e\u0007G\u0002\u0002", + "\u0d4e\u0d4f\u0007T\u0002\u0002\u0d4f\u0d50\u0007Q\u0002\u0002\u0d50", + "\u0d51\u0007U\u0002\u0002\u0d51\u0154\u0003\u0002\u0002\u0002\u0d52", + "\u0d53\u0007M\u0002\u0002\u0d53\u0d54\u0007G\u0002\u0002\u0d54\u0d55", + "\u0007[\u0002\u0002\u0d55\u0156\u0003\u0002\u0002\u0002\u0d56\u0d57", + "\u0007M\u0002\u0002\u0d57\u0d58\u0007G\u0002\u0002\u0d58\u0d59\u0007", + "[\u0002\u0002\u0d59\u0d5a\u0007a\u0002\u0002\u0d5a\u0d5b\u0007R\u0002", + "\u0002\u0d5b\u0d5c\u0007C\u0002\u0002\u0d5c\u0d5d\u0007V\u0002\u0002", + "\u0d5d\u0d5e\u0007J\u0002\u0002\u0d5e\u0158\u0003\u0002\u0002\u0002", + "\u0d5f\u0d60\u0007M\u0002\u0002\u0d60\u0d61\u0007G\u0002\u0002\u0d61", + "\u0d62\u0007[\u0002\u0002\u0d62\u0d63\u0007a\u0002\u0002\u0d63\u0d64", + "\u0007U\u0002\u0002\u0d64\u0d65\u0007V\u0002\u0002\u0d65\u0d66\u0007", + "Q\u0002\u0002\u0d66\u0d67\u0007T\u0002\u0002\u0d67\u0d68\u0007G\u0002", + "\u0002\u0d68\u0d69\u0007a\u0002\u0002\u0d69\u0d6a\u0007R\u0002\u0002", + "\u0d6a\u0d6b\u0007T\u0002\u0002\u0d6b\u0d6c\u0007Q\u0002\u0002\u0d6c", + "\u0d6d\u0007X\u0002\u0002\u0d6d\u0d6e\u0007K\u0002\u0002\u0d6e\u0d6f", + "\u0007F\u0002\u0002\u0d6f\u0d70\u0007G\u0002\u0002\u0d70\u0d71\u0007", + "T\u0002\u0002\u0d71\u0d72\u0007a\u0002\u0002\u0d72\u0d73\u0007P\u0002", + "\u0002\u0d73\u0d74\u0007C\u0002\u0002\u0d74\u0d75\u0007O\u0002\u0002", + "\u0d75\u0d76\u0007G\u0002\u0002\u0d76\u015a\u0003\u0002\u0002\u0002", + "\u0d77\u0d78\u0007M\u0002\u0002\u0d78\u0d79\u0007K\u0002\u0002\u0d79", + "\u0d7a\u0007N\u0002\u0002\u0d7a\u0d7b\u0007N\u0002\u0002\u0d7b\u015c", + "\u0003\u0002\u0002\u0002\u0d7c\u0d7d\u0007N\u0002\u0002\u0d7d\u0d7e", + "\u0007C\u0002\u0002\u0d7e\u0d7f\u0007P\u0002\u0002\u0d7f\u0d80\u0007", + "I\u0002\u0002\u0d80\u0d81\u0007W\u0002\u0002\u0d81\u0d82\u0007C\u0002", + "\u0002\u0d82\u0d83\u0007I\u0002\u0002\u0d83\u0d84\u0007G\u0002\u0002", + "\u0d84\u015e\u0003\u0002\u0002\u0002\u0d85\u0d86\u0007N\u0002\u0002", + "\u0d86\u0d87\u0007G\u0002\u0002\u0d87\u0d88\u0007H\u0002\u0002\u0d88", + "\u0d89\u0007V\u0002\u0002\u0d89\u0160\u0003\u0002\u0002\u0002\u0d8a", + "\u0d8b\u0007N\u0002\u0002\u0d8b\u0d8c\u0007K\u0002\u0002\u0d8c\u0d8d", + "\u0007D\u0002\u0002\u0d8d\u0d8e\u0007T\u0002\u0002\u0d8e\u0d8f\u0007", + "C\u0002\u0002\u0d8f\u0d90\u0007T\u0002\u0002\u0d90\u0d91\u0007[\u0002", + "\u0002\u0d91\u0162\u0003\u0002\u0002\u0002\u0d92\u0d93\u0007N\u0002", + "\u0002\u0d93\u0d94\u0007K\u0002\u0002\u0d94\u0d95\u0007H\u0002\u0002", + "\u0d95\u0d96\u0007G\u0002\u0002\u0d96\u0d97\u0007V\u0002\u0002\u0d97", + "\u0d98\u0007K\u0002\u0002\u0d98\u0d99\u0007O\u0002\u0002\u0d99\u0d9a", + "\u0007G\u0002\u0002\u0d9a\u0164\u0003\u0002\u0002\u0002\u0d9b\u0d9c", + "\u0007N\u0002\u0002\u0d9c\u0d9d\u0007K\u0002\u0002\u0d9d\u0d9e\u0007", + "M\u0002\u0002\u0d9e\u0d9f\u0007G\u0002\u0002\u0d9f\u0166\u0003\u0002", + "\u0002\u0002\u0da0\u0da1\u0007N\u0002\u0002\u0da1\u0da2\u0007K\u0002", + "\u0002\u0da2\u0da3\u0007P\u0002\u0002\u0da3\u0da4\u0007G\u0002\u0002", + "\u0da4\u0da5\u0007P\u0002\u0002\u0da5\u0da6\u0007Q\u0002\u0002\u0da6", + "\u0168\u0003\u0002\u0002\u0002\u0da7\u0da8\u0007N\u0002\u0002\u0da8", + "\u0da9\u0007K\u0002\u0002\u0da9\u0daa\u0007P\u0002\u0002\u0daa\u0dab", + "\u0007W\u0002\u0002\u0dab\u0dac\u0007Z\u0002\u0002\u0dac\u016a\u0003", + "\u0002\u0002\u0002\u0dad\u0dae\u0007N\u0002\u0002\u0dae\u0daf\u0007", + "K\u0002\u0002\u0daf\u0db0\u0007U\u0002\u0002\u0db0\u0db1\u0007V\u0002", + "\u0002\u0db1\u0db2\u0007G\u0002\u0002\u0db2\u0db3\u0007P\u0002\u0002", + "\u0db3\u0db4\u0007G\u0002\u0002\u0db4\u0db5\u0007T\u0002\u0002\u0db5", + "\u0db6\u0007a\u0002\u0002\u0db6\u0db7\u0007K\u0002\u0002\u0db7\u0db8", + "\u0007R\u0002\u0002\u0db8\u016c\u0003\u0002\u0002\u0002\u0db9\u0dba", + "\u0007N\u0002\u0002\u0dba\u0dbb\u0007K\u0002\u0002\u0dbb\u0dbc\u0007", + "U\u0002\u0002\u0dbc\u0dbd\u0007V\u0002\u0002\u0dbd\u0dbe\u0007G\u0002", + "\u0002\u0dbe\u0dbf\u0007P\u0002\u0002\u0dbf\u0dc0\u0007G\u0002\u0002", + "\u0dc0\u0dc1\u0007T\u0002\u0002\u0dc1\u0dc2\u0007a\u0002\u0002\u0dc2", + "\u0dc3\u0007R\u0002\u0002\u0dc3\u0dc4\u0007Q\u0002\u0002\u0dc4\u0dc5", + "\u0007T\u0002\u0002\u0dc5\u0dc6\u0007V\u0002\u0002\u0dc6\u016e\u0003", + "\u0002\u0002\u0002\u0dc7\u0dc8\u0007N\u0002\u0002\u0dc8\u0dc9\u0007", + "Q\u0002\u0002\u0dc9\u0dca\u0007C\u0002\u0002\u0dca\u0dcb\u0007F\u0002", + "\u0002\u0dcb\u0170\u0003\u0002\u0002\u0002\u0dcc\u0dcd\u0007N\u0002", + "\u0002\u0dcd\u0dce\u0007Q\u0002\u0002\u0dce\u0dcf\u0007E\u0002\u0002", + "\u0dcf\u0dd0\u0007C\u0002\u0002\u0dd0\u0dd1\u0007N\u0002\u0002\u0dd1", + "\u0dd2\u0007a\u0002\u0002\u0dd2\u0dd3\u0007U\u0002\u0002\u0dd3\u0dd4", + "\u0007G\u0002\u0002\u0dd4\u0dd5\u0007T\u0002\u0002\u0dd5\u0dd6\u0007", + "X\u0002\u0002\u0dd6\u0dd7\u0007K\u0002\u0002\u0dd7\u0dd8\u0007E\u0002", + "\u0002\u0dd8\u0dd9\u0007G\u0002\u0002\u0dd9\u0dda\u0007a\u0002\u0002", + "\u0dda\u0ddb\u0007P\u0002\u0002\u0ddb\u0ddc\u0007C\u0002\u0002\u0ddc", + "\u0ddd\u0007O\u0002\u0002\u0ddd\u0dde\u0007G\u0002\u0002\u0dde\u0172", + "\u0003\u0002\u0002\u0002\u0ddf\u0de0\u0007N\u0002\u0002\u0de0\u0de1", + "\u0007Q\u0002\u0002\u0de1\u0de2\u0007I\u0002\u0002\u0de2\u0174\u0003", + "\u0002\u0002\u0002\u0de3\u0de4\u0007O\u0002\u0002\u0de4\u0de5\u0007", + "C\u0002\u0002\u0de5\u0de6\u0007V\u0002\u0002\u0de6\u0de7\u0007E\u0002", + "\u0002\u0de7\u0de8\u0007J\u0002\u0002\u0de8\u0de9\u0007G\u0002\u0002", + "\u0de9\u0dea\u0007F\u0002\u0002\u0dea\u0176\u0003\u0002\u0002\u0002", + "\u0deb\u0dec\u0007O\u0002\u0002\u0dec\u0ded\u0007C\u0002\u0002\u0ded", + "\u0dee\u0007U\u0002\u0002\u0dee\u0def\u0007V\u0002\u0002\u0def\u0df0", + "\u0007G\u0002\u0002\u0df0\u0df1\u0007T\u0002\u0002\u0df1\u0178\u0003", + "\u0002\u0002\u0002\u0df2\u0df3\u0007O\u0002\u0002\u0df3\u0df4\u0007", + "C\u0002\u0002\u0df4\u0df5\u0007Z\u0002\u0002\u0df5\u0df6\u0007a\u0002", + "\u0002\u0df6\u0df7\u0007O\u0002\u0002\u0df7\u0df8\u0007G\u0002\u0002", + "\u0df8\u0df9\u0007O\u0002\u0002\u0df9\u0dfa\u0007Q\u0002\u0002\u0dfa", + "\u0dfb\u0007T\u0002\u0002\u0dfb\u0dfc\u0007[\u0002\u0002\u0dfc\u017a", + "\u0003\u0002\u0002\u0002\u0dfd\u0dfe\u0007O\u0002\u0002\u0dfe\u0dff", + "\u0007C\u0002\u0002\u0dff\u0e00\u0007Z\u0002\u0002\u0e00\u0e01\u0007", + "V\u0002\u0002\u0e01\u0e02\u0007T\u0002\u0002\u0e02\u0e03\u0007C\u0002", + "\u0002\u0e03\u0e04\u0007P\u0002\u0002\u0e04\u0e05\u0007U\u0002\u0002", + "\u0e05\u0e06\u0007H\u0002\u0002\u0e06\u0e07\u0007G\u0002\u0002\u0e07", + "\u0e08\u0007T\u0002\u0002\u0e08\u017c\u0003\u0002\u0002\u0002\u0e09", + "\u0e0a\u0007O\u0002\u0002\u0e0a\u0e0b\u0007C\u0002\u0002\u0e0b\u0e0c", + "\u0007Z\u0002\u0002\u0e0c\u0e0d\u0007X\u0002\u0002\u0e0d\u0e0e\u0007", + "C\u0002\u0002\u0e0e\u0e0f\u0007N\u0002\u0002\u0e0f\u0e10\u0007W\u0002", + "\u0002\u0e10\u0e11\u0007G\u0002\u0002\u0e11\u017e\u0003\u0002\u0002", + "\u0002\u0e12\u0e13\u0007O\u0002\u0002\u0e13\u0e14\u0007C\u0002\u0002", + "\u0e14\u0e15\u0007Z\u0002\u0002\u0e15\u0e16\u0007a\u0002\u0002\u0e16", + "\u0e17\u0007F\u0002\u0002\u0e17\u0e18\u0007K\u0002\u0002\u0e18\u0e19", + "\u0007U\u0002\u0002\u0e19\u0e1a\u0007R\u0002\u0002\u0e1a\u0e1b\u0007", + "C\u0002\u0002\u0e1b\u0e1c\u0007V\u0002\u0002\u0e1c\u0e1d\u0007E\u0002", + "\u0002\u0e1d\u0e1e\u0007J\u0002\u0002\u0e1e\u0e1f\u0007a\u0002\u0002", + "\u0e1f\u0e20\u0007N\u0002\u0002\u0e20\u0e21\u0007C\u0002\u0002\u0e21", + "\u0e22\u0007V\u0002\u0002\u0e22\u0e23\u0007G\u0002\u0002\u0e23\u0e24", + "\u0007P\u0002\u0002\u0e24\u0e25\u0007E\u0002\u0002\u0e25\u0e26\u0007", + "[\u0002\u0002\u0e26\u0180\u0003\u0002\u0002\u0002\u0e27\u0e28\u0007", + "O\u0002\u0002\u0e28\u0e29\u0007C\u0002\u0002\u0e29\u0e2a\u0007Z\u0002", + "\u0002\u0e2a\u0e2b\u0007a\u0002\u0002\u0e2b\u0e2c\u0007G\u0002\u0002", + "\u0e2c\u0e2d\u0007X\u0002\u0002\u0e2d\u0e2e\u0007G\u0002\u0002\u0e2e", + "\u0e2f\u0007P\u0002\u0002\u0e2f\u0e30\u0007V\u0002\u0002\u0e30\u0e31", + "\u0007a\u0002\u0002\u0e31\u0e32\u0007U\u0002\u0002\u0e32\u0e33\u0007", + "K\u0002\u0002\u0e33\u0e34\u0007\\\u0002\u0002\u0e34\u0e35\u0007G\u0002", + "\u0002\u0e35\u0182\u0003\u0002\u0002\u0002\u0e36\u0e37\u0007O\u0002", + "\u0002\u0e37\u0e38\u0007C\u0002\u0002\u0e38\u0e39\u0007Z\u0002\u0002", + "\u0e39\u0e3a\u0007a\u0002\u0002\u0e3a\u0e3b\u0007U\u0002\u0002\u0e3b", + "\u0e3c\u0007K\u0002\u0002\u0e3c\u0e3d\u0007\\\u0002\u0002\u0e3d\u0e3e", + "\u0007G\u0002\u0002\u0e3e\u0184\u0003\u0002\u0002\u0002\u0e3f\u0e40", + "\u0007O\u0002\u0002\u0e40\u0e41\u0007C\u0002\u0002\u0e41\u0e42\u0007", + "Z\u0002\u0002\u0e42\u0e43\u0007a\u0002\u0002\u0e43\u0e44\u0007Q\u0002", + "\u0002\u0e44\u0e45\u0007W\u0002\u0002\u0e45\u0e46\u0007V\u0002\u0002", + "\u0e46\u0e47\u0007U\u0002\u0002\u0e47\u0e48\u0007V\u0002\u0002\u0e48", + "\u0e49\u0007C\u0002\u0002\u0e49\u0e4a\u0007P\u0002\u0002\u0e4a\u0e4b", + "\u0007F\u0002\u0002\u0e4b\u0e4c\u0007K\u0002\u0002\u0e4c\u0e4d\u0007", + "P\u0002\u0002\u0e4d\u0e4e\u0007I\u0002\u0002\u0e4e\u0e4f\u0007a\u0002", + "\u0002\u0e4f\u0e50\u0007K\u0002\u0002\u0e50\u0e51\u0007Q\u0002\u0002", + "\u0e51\u0e52\u0007a\u0002\u0002\u0e52\u0e53\u0007R\u0002\u0002\u0e53", + "\u0e54\u0007G\u0002\u0002\u0e54\u0e55\u0007T\u0002\u0002\u0e55\u0e56", + "\u0007a\u0002\u0002\u0e56\u0e57\u0007X\u0002\u0002\u0e57\u0e58\u0007", + "Q\u0002\u0002\u0e58\u0e59\u0007N\u0002\u0002\u0e59\u0e5a\u0007W\u0002", + "\u0002\u0e5a\u0e5b\u0007O\u0002\u0002\u0e5b\u0e5c\u0007G\u0002\u0002", + "\u0e5c\u0186\u0003\u0002\u0002\u0002\u0e5d\u0e5e\u0007O\u0002\u0002", + "\u0e5e\u0e5f\u0007G\u0002\u0002\u0e5f\u0e60\u0007F\u0002\u0002\u0e60", + "\u0e61\u0007K\u0002\u0002\u0e61\u0e62\u0007C\u0002\u0002\u0e62\u0e63", + "\u0007F\u0002\u0002\u0e63\u0e64\u0007G\u0002\u0002\u0e64\u0e65\u0007", + "U\u0002\u0002\u0e65\u0e66\u0007E\u0002\u0002\u0e66\u0e67\u0007T\u0002", + "\u0002\u0e67\u0e68\u0007K\u0002\u0002\u0e68\u0e69\u0007R\u0002\u0002", + "\u0e69\u0e6a\u0007V\u0002\u0002\u0e6a\u0e6b\u0007K\u0002\u0002\u0e6b", + "\u0e6c\u0007Q\u0002\u0002\u0e6c\u0e6d\u0007P\u0002\u0002\u0e6d\u0188", + "\u0003\u0002\u0002\u0002\u0e6e\u0e6f\u0007O\u0002\u0002\u0e6f\u0e70", + "\u0007G\u0002\u0002\u0e70\u0e71\u0007F\u0002\u0002\u0e71\u0e72\u0007", + "K\u0002\u0002\u0e72\u0e73\u0007C\u0002\u0002\u0e73\u0e74\u0007P\u0002", + "\u0002\u0e74\u0e75\u0007C\u0002\u0002\u0e75\u0e76\u0007O\u0002\u0002", + "\u0e76\u0e77\u0007G\u0002\u0002\u0e77\u018a\u0003\u0002\u0002\u0002", + "\u0e78\u0e79\u0007O\u0002\u0002\u0e79\u0e7a\u0007G\u0002\u0002\u0e7a", + "\u0e7b\u0007O\u0002\u0002\u0e7b\u0e7c\u0007D\u0002\u0002\u0e7c\u0e7d", + "\u0007G\u0002\u0002\u0e7d\u0e7e\u0007T\u0002\u0002\u0e7e\u018c\u0003", + "\u0002\u0002\u0002\u0e7f\u0e80\u0007O\u0002\u0002\u0e80\u0e81\u0007", + "G\u0002\u0002\u0e81\u0e82\u0007O\u0002\u0002\u0e82\u0e83\u0007Q\u0002", + "\u0002\u0e83\u0e84\u0007T\u0002\u0002\u0e84\u0e85\u0007[\u0002\u0002", + "\u0e85\u0e86\u0007a\u0002\u0002\u0e86\u0e87\u0007R\u0002\u0002\u0e87", + "\u0e88\u0007C\u0002\u0002\u0e88\u0e89\u0007T\u0002\u0002\u0e89\u0e8a", + "\u0007V\u0002\u0002\u0e8a\u0e8b\u0007K\u0002\u0002\u0e8b\u0e8c\u0007", + "V\u0002\u0002\u0e8c\u0e8d\u0007K\u0002\u0002\u0e8d\u0e8e\u0007Q\u0002", + "\u0002\u0e8e\u0e8f\u0007P\u0002\u0002\u0e8f\u0e90\u0007a\u0002\u0002", + "\u0e90\u0e91\u0007O\u0002\u0002\u0e91\u0e92\u0007Q\u0002\u0002\u0e92", + "\u0e93\u0007F\u0002\u0002\u0e93\u0e94\u0007G\u0002\u0002\u0e94\u018e", + "\u0003\u0002\u0002\u0002\u0e95\u0e96\u0007O\u0002\u0002\u0e96\u0e97", + "\u0007G\u0002\u0002\u0e97\u0e98\u0007T\u0002\u0002\u0e98\u0e99\u0007", + "I\u0002\u0002\u0e99\u0e9a\u0007G\u0002\u0002\u0e9a\u0190\u0003\u0002", + "\u0002\u0002\u0e9b\u0e9c\u0007O\u0002\u0002\u0e9c\u0e9d\u0007G\u0002", + "\u0002\u0e9d\u0e9e\u0007U\u0002\u0002\u0e9e\u0e9f\u0007U\u0002\u0002", + "\u0e9f\u0ea0\u0007C\u0002\u0002\u0ea0\u0ea1\u0007I\u0002\u0002\u0ea1", + "\u0ea2\u0007G\u0002\u0002\u0ea2\u0ea3\u0007a\u0002\u0002\u0ea3\u0ea4", + "\u0007H\u0002\u0002\u0ea4\u0ea5\u0007Q\u0002\u0002\u0ea5\u0ea6\u0007", + "T\u0002\u0002\u0ea6\u0ea7\u0007Y\u0002\u0002\u0ea7\u0ea8\u0007C\u0002", + "\u0002\u0ea8\u0ea9\u0007T\u0002\u0002\u0ea9\u0eaa\u0007F\u0002\u0002", + "\u0eaa\u0eab\u0007K\u0002\u0002\u0eab\u0eac\u0007P\u0002\u0002\u0eac", + "\u0ead\u0007I\u0002\u0002\u0ead\u0192\u0003\u0002\u0002\u0002\u0eae", + "\u0eaf\u0007O\u0002\u0002\u0eaf\u0eb0\u0007G\u0002\u0002\u0eb0\u0eb1", + "\u0007U\u0002\u0002\u0eb1\u0eb2\u0007U\u0002\u0002\u0eb2\u0eb3\u0007", + "C\u0002\u0002\u0eb3\u0eb4\u0007I\u0002\u0002\u0eb4\u0eb5\u0007G\u0002", + "\u0002\u0eb5\u0eb6\u0007a\u0002\u0002\u0eb6\u0eb7\u0007H\u0002\u0002", + "\u0eb7\u0eb8\u0007Q\u0002\u0002\u0eb8\u0eb9\u0007T\u0002\u0002\u0eb9", + "\u0eba\u0007Y\u0002\u0002\u0eba\u0ebb\u0007C\u0002\u0002\u0ebb\u0ebc", + "\u0007T\u0002\u0002\u0ebc\u0ebd\u0007F\u0002\u0002\u0ebd\u0ebe\u0007", + "a\u0002\u0002\u0ebe\u0ebf\u0007U\u0002\u0002\u0ebf\u0ec0\u0007K\u0002", + "\u0002\u0ec0\u0ec1\u0007\\\u0002\u0002\u0ec1\u0ec2\u0007G\u0002\u0002", + "\u0ec2\u0194\u0003\u0002\u0002\u0002\u0ec3\u0ec4\u0007O\u0002\u0002", + "\u0ec4\u0ec5\u0007K\u0002\u0002\u0ec5\u0ec6\u0007P\u0002\u0002\u0ec6", + "\u0ec7\u0007X\u0002\u0002\u0ec7\u0ec8\u0007C\u0002\u0002\u0ec8\u0ec9", + "\u0007N\u0002\u0002\u0ec9\u0eca\u0007W\u0002\u0002\u0eca\u0ecb\u0007", + "G\u0002\u0002\u0ecb\u0196\u0003\u0002\u0002\u0002\u0ecc\u0ecd\u0007", + "O\u0002\u0002\u0ecd\u0ece\u0007K\u0002\u0002\u0ece\u0ecf\u0007T\u0002", + "\u0002\u0ecf\u0ed0\u0007T\u0002\u0002\u0ed0\u0ed1\u0007Q\u0002\u0002", + "\u0ed1\u0ed2\u0007T\u0002\u0002\u0ed2\u0198\u0003\u0002\u0002\u0002", + "\u0ed3\u0ed4\u0007O\u0002\u0002\u0ed4\u0ed5\u0007W\u0002\u0002\u0ed5", + "\u0ed6\u0007U\u0002\u0002\u0ed6\u0ed7\u0007V\u0002\u0002\u0ed7\u0ed8", + "\u0007a\u0002\u0002\u0ed8\u0ed9\u0007E\u0002\u0002\u0ed9\u0eda\u0007", + "J\u0002\u0002\u0eda\u0edb\u0007C\u0002\u0002\u0edb\u0edc\u0007P\u0002", + "\u0002\u0edc\u0edd\u0007I\u0002\u0002\u0edd\u0ede\u0007G\u0002\u0002", + "\u0ede\u019a\u0003\u0002\u0002\u0002\u0edf\u0ee0\u0007P\u0002\u0002", + "\u0ee0\u0ee1\u0007C\u0002\u0002\u0ee1\u0ee2\u0007V\u0002\u0002\u0ee2", + "\u0ee3\u0007K\u0002\u0002\u0ee3\u0ee4\u0007Q\u0002\u0002\u0ee4\u0ee5", + "\u0007P\u0002\u0002\u0ee5\u0ee6\u0007C\u0002\u0002\u0ee6\u0ee7\u0007", + "N\u0002\u0002\u0ee7\u019c\u0003\u0002\u0002\u0002\u0ee8\u0ee9\u0007", + "P\u0002\u0002\u0ee9\u0eea\u0007G\u0002\u0002\u0eea\u0eeb\u0007I\u0002", + "\u0002\u0eeb\u0eec\u0007Q\u0002\u0002\u0eec\u0eed\u0007V\u0002\u0002", + "\u0eed\u0eee\u0007K\u0002\u0002\u0eee\u0eef\u0007C\u0002\u0002\u0eef", + "\u0ef0\u0007V\u0002\u0002\u0ef0\u0ef1\u0007G\u0002\u0002\u0ef1\u019e", + "\u0003\u0002\u0002\u0002\u0ef2\u0ef3\u0007P\u0002\u0002\u0ef3\u0ef4", + "\u0007Q\u0002\u0002\u0ef4\u0ef5\u0007E\u0002\u0002\u0ef5\u0ef6\u0007", + "J\u0002\u0002\u0ef6\u0ef7\u0007G\u0002\u0002\u0ef7\u0ef8\u0007E\u0002", + "\u0002\u0ef8\u0ef9\u0007M\u0002\u0002\u0ef9\u01a0\u0003\u0002\u0002", + "\u0002\u0efa\u0efb\u0007P\u0002\u0002\u0efb\u0efc\u0007Q\u0002\u0002", + "\u0efc\u0efd\u0007H\u0002\u0002\u0efd\u0efe\u0007Q\u0002\u0002\u0efe", + "\u0eff\u0007T\u0002\u0002\u0eff\u0f00\u0007O\u0002\u0002\u0f00\u0f01", + "\u0007C\u0002\u0002\u0f01\u0f02\u0007V\u0002\u0002\u0f02\u01a2\u0003", + "\u0002\u0002\u0002\u0f03\u0f04\u0007P\u0002\u0002\u0f04\u0f05\u0007", + "Q\u0002\u0002\u0f05\u0f06\u0007K\u0002\u0002\u0f06\u0f07\u0007P\u0002", + "\u0002\u0f07\u0f08\u0007K\u0002\u0002\u0f08\u0f09\u0007V\u0002\u0002", + "\u0f09\u01a4\u0003\u0002\u0002\u0002\u0f0a\u0f0b\u0007P\u0002\u0002", + "\u0f0b\u0f0c\u0007Q\u0002\u0002\u0f0c\u0f0d\u0007P\u0002\u0002\u0f0d", + "\u0f0e\u0007E\u0002\u0002\u0f0e\u0f0f\u0007N\u0002\u0002\u0f0f\u0f10", + "\u0007W\u0002\u0002\u0f10\u0f11\u0007U\u0002\u0002\u0f11\u0f12\u0007", + "V\u0002\u0002\u0f12\u0f13\u0007G\u0002\u0002\u0f13\u0f14\u0007T\u0002", + "\u0002\u0f14\u0f15\u0007G\u0002\u0002\u0f15\u0f16\u0007F\u0002\u0002", + "\u0f16\u01a6\u0003\u0002\u0002\u0002\u0f17\u0f18\u0007P\u0002\u0002", + "\u0f18\u0f19\u0007Q\u0002\u0002\u0f19\u0f1a\u0007P\u0002\u0002\u0f1a", + "\u0f1b\u0007G\u0002\u0002\u0f1b\u01a8\u0003\u0002\u0002\u0002\u0f1c", + "\u0f1d\u0007P\u0002\u0002\u0f1d\u0f1e\u0007Q\u0002\u0002\u0f1e\u0f1f", + "\u0007T\u0002\u0002\u0f1f\u0f20\u0007G\u0002\u0002\u0f20\u0f21\u0007", + "Y\u0002\u0002\u0f21\u0f22\u0007K\u0002\u0002\u0f22\u0f23\u0007P\u0002", + "\u0002\u0f23\u0f24\u0007F\u0002\u0002\u0f24\u01aa\u0003\u0002\u0002", + "\u0002\u0f25\u0f26\u0007P\u0002\u0002\u0f26\u0f27\u0007Q\u0002\u0002", + "\u0f27\u0f28\u0007U\u0002\u0002\u0f28\u0f29\u0007M\u0002\u0002\u0f29", + "\u0f2a\u0007K\u0002\u0002\u0f2a\u0f2b\u0007R\u0002\u0002\u0f2b\u01ac", + "\u0003\u0002\u0002\u0002\u0f2c\u0f2d\u0007P\u0002\u0002\u0f2d\u0f2e", + "\u0007Q\u0002\u0002\u0f2e\u0f2f\u0007W\u0002\u0002\u0f2f\u0f30\u0007", + "P\u0002\u0002\u0f30\u0f31\u0007N\u0002\u0002\u0f31\u0f32\u0007Q\u0002", + "\u0002\u0f32\u0f33\u0007C\u0002\u0002\u0f33\u0f34\u0007F\u0002\u0002", + "\u0f34\u01ae\u0003\u0002\u0002\u0002\u0f35\u0f36\u0007P\u0002\u0002", + "\u0f36\u0f37\u0007Q\u0002\u0002\u0f37\u0f38\u0007a\u0002\u0002\u0f38", + "\u0f39\u0007E\u0002\u0002\u0f39\u0f3a\u0007J\u0002\u0002\u0f3a\u0f3b", + "\u0007G\u0002\u0002\u0f3b\u0f3c\u0007E\u0002\u0002\u0f3c\u0f3d\u0007", + "M\u0002\u0002\u0f3d\u0f3e\u0007U\u0002\u0002\u0f3e\u0f3f\u0007W\u0002", + "\u0002\u0f3f\u0f40\u0007O\u0002\u0002\u0f40\u01b0\u0003\u0002\u0002", + "\u0002\u0f41\u0f42\u0007P\u0002\u0002\u0f42\u0f43\u0007Q\u0002\u0002", + "\u0f43\u0f44\u0007a\u0002\u0002\u0f44\u0f45\u0007E\u0002\u0002\u0f45", + "\u0f46\u0007Q\u0002\u0002\u0f46\u0f47\u0007O\u0002\u0002\u0f47\u0f48", + "\u0007R\u0002\u0002\u0f48\u0f49\u0007T\u0002\u0002\u0f49\u0f4a\u0007", + "G\u0002\u0002\u0f4a\u0f4b\u0007U\u0002\u0002\u0f4b\u0f4c\u0007U\u0002", + "\u0002\u0f4c\u0f4d\u0007K\u0002\u0002\u0f4d\u0f4e\u0007Q\u0002\u0002", + "\u0f4e\u0f4f\u0007P\u0002\u0002\u0f4f\u01b2\u0003\u0002\u0002\u0002", + "\u0f50\u0f51\u0007P\u0002\u0002\u0f51\u0f52\u0007Q\u0002\u0002\u0f52", + "\u0f53\u0007a\u0002\u0002\u0f53\u0f54\u0007G\u0002\u0002\u0f54\u0f55", + "\u0007X\u0002\u0002\u0f55\u0f56\u0007G\u0002\u0002\u0f56\u0f57\u0007", + "P\u0002\u0002\u0f57\u0f58\u0007V\u0002\u0002\u0f58\u0f59\u0007a\u0002", + "\u0002\u0f59\u0f5a\u0007N\u0002\u0002\u0f5a\u0f5b\u0007Q\u0002\u0002", + "\u0f5b\u0f5c\u0007U\u0002\u0002\u0f5c\u0f5d\u0007U\u0002\u0002\u0f5d", + "\u01b4\u0003\u0002\u0002\u0002\u0f5e\u0f5f\u0007P\u0002\u0002\u0f5f", + "\u0f60\u0007Q\u0002\u0002\u0f60\u0f61\u0007V\u0002\u0002\u0f61\u01b6", + "\u0003\u0002\u0002\u0002\u0f62\u0f63\u0007P\u0002\u0002\u0f63\u0f64", + "\u0007Q\u0002\u0002\u0f64\u0f65\u0007V\u0002\u0002\u0f65\u0f66\u0007", + "K\u0002\u0002\u0f66\u0f67\u0007H\u0002\u0002\u0f67\u0f68\u0007K\u0002", + "\u0002\u0f68\u0f69\u0007E\u0002\u0002\u0f69\u0f6a\u0007C\u0002\u0002", + "\u0f6a\u0f6b\u0007V\u0002\u0002\u0f6b\u0f6c\u0007K\u0002\u0002\u0f6c", + "\u0f6d\u0007Q\u0002\u0002\u0f6d\u0f6e\u0007P\u0002\u0002\u0f6e\u01b8", + "\u0003\u0002\u0002\u0002\u0f6f\u0f70\u0007P\u0002\u0002\u0f70\u0f71", + "\u0007V\u0002\u0002\u0f71\u0f72\u0007N\u0002\u0002\u0f72\u0f73\u0007", + "O\u0002\u0002\u0f73\u01ba\u0003\u0002\u0002\u0002\u0f74\u0f75\u0007", + "P\u0002\u0002\u0f75\u0f76\u0007W\u0002\u0002\u0f76\u0f77\u0007N\u0002", + "\u0002\u0f77\u0f78\u0007N\u0002\u0002\u0f78\u01bc\u0003\u0002\u0002", + "\u0002\u0f79\u0f7a\u0007P\u0002\u0002\u0f7a\u0f7b\u0007W\u0002\u0002", + "\u0f7b\u0f7c\u0007N\u0002\u0002\u0f7c\u0f7d\u0007N\u0002\u0002\u0f7d", + "\u0f7e\u0007K\u0002\u0002\u0f7e\u0f7f\u0007H\u0002\u0002\u0f7f\u01be", + "\u0003\u0002\u0002\u0002\u0f80\u0f81\u0007Q\u0002\u0002\u0f81\u0f82", + "\u0007H\u0002\u0002\u0f82\u01c0\u0003\u0002\u0002\u0002\u0f83\u0f84", + "\u0007Q\u0002\u0002\u0f84\u0f85\u0007H\u0002\u0002\u0f85\u0f86\u0007", + "H\u0002\u0002\u0f86\u01c2\u0003\u0002\u0002\u0002\u0f87\u0f88\u0007", + "Q\u0002\u0002\u0f88\u0f89\u0007H\u0002\u0002\u0f89\u0f8a\u0007H\u0002", + "\u0002\u0f8a\u0f8b\u0007U\u0002\u0002\u0f8b\u0f8c\u0007G\u0002\u0002", + "\u0f8c\u0f8d\u0007V\u0002\u0002\u0f8d\u0f8e\u0007U\u0002\u0002\u0f8e", + "\u01c4\u0003\u0002\u0002\u0002\u0f8f\u0f90\u0007Q\u0002\u0002\u0f90", + "\u0f91\u0007N\u0002\u0002\u0f91\u0f92\u0007F\u0002\u0002\u0f92\u0f93", + "\u0007a\u0002\u0002\u0f93\u0f94\u0007R\u0002\u0002\u0f94\u0f95\u0007", + "C\u0002\u0002\u0f95\u0f96\u0007U\u0002\u0002\u0f96\u0f97\u0007U\u0002", + "\u0002\u0f97\u0f98\u0007Y\u0002\u0002\u0f98\u0f99\u0007Q\u0002\u0002", + "\u0f99\u0f9a\u0007T\u0002\u0002\u0f9a\u0f9b\u0007F\u0002\u0002\u0f9b", + "\u01c6\u0003\u0002\u0002\u0002\u0f9c\u0f9d\u0007Q\u0002\u0002\u0f9d", + "\u0f9e\u0007P\u0002\u0002\u0f9e\u01c8\u0003\u0002\u0002\u0002\u0f9f", + "\u0fa0\u0007Q\u0002\u0002\u0fa0\u0fa1\u0007P\u0002\u0002\u0fa1\u0fa2", + "\u0007a\u0002\u0002\u0fa2\u0fa3\u0007H\u0002\u0002\u0fa3\u0fa4\u0007", + "C\u0002\u0002\u0fa4\u0fa5\u0007K\u0002\u0002\u0fa5\u0fa6\u0007N\u0002", + "\u0002\u0fa6\u0fa7\u0007W\u0002\u0002\u0fa7\u0fa8\u0007T\u0002\u0002", + "\u0fa8\u0fa9\u0007G\u0002\u0002\u0fa9\u01ca\u0003\u0002\u0002\u0002", + "\u0faa\u0fab\u0007Q\u0002\u0002\u0fab\u0fac\u0007R\u0002\u0002\u0fac", + "\u0fad\u0007G\u0002\u0002\u0fad\u0fae\u0007P\u0002\u0002\u0fae\u01cc", + "\u0003\u0002\u0002\u0002\u0faf\u0fb0\u0007Q\u0002\u0002\u0fb0\u0fb1", + "\u0007R\u0002\u0002\u0fb1\u0fb2\u0007G\u0002\u0002\u0fb2\u0fb3\u0007", + "P\u0002\u0002\u0fb3\u0fb4\u0007F\u0002\u0002\u0fb4\u0fb5\u0007C\u0002", + "\u0002\u0fb5\u0fb6\u0007V\u0002\u0002\u0fb6\u0fb7\u0007C\u0002\u0002", + "\u0fb7\u0fb8\u0007U\u0002\u0002\u0fb8\u0fb9\u0007Q\u0002\u0002\u0fb9", + "\u0fba\u0007W\u0002\u0002\u0fba\u0fbb\u0007T\u0002\u0002\u0fbb\u0fbc", + "\u0007E\u0002\u0002\u0fbc\u0fbd\u0007G\u0002\u0002\u0fbd\u01ce\u0003", + "\u0002\u0002\u0002\u0fbe\u0fbf\u0007Q\u0002\u0002\u0fbf\u0fc0\u0007", + "R\u0002\u0002\u0fc0\u0fc1\u0007G\u0002\u0002\u0fc1\u0fc2\u0007P\u0002", + "\u0002\u0fc2\u0fc3\u0007S\u0002\u0002\u0fc3\u0fc4\u0007W\u0002\u0002", + "\u0fc4\u0fc5\u0007G\u0002\u0002\u0fc5\u0fc6\u0007T\u0002\u0002\u0fc6", + "\u0fc7\u0007[\u0002\u0002\u0fc7\u01d0\u0003\u0002\u0002\u0002\u0fc8", + "\u0fc9\u0007Q\u0002\u0002\u0fc9\u0fca\u0007R\u0002\u0002\u0fca\u0fcb", + "\u0007G\u0002\u0002\u0fcb\u0fcc\u0007P\u0002\u0002\u0fcc\u0fcd\u0007", + "T\u0002\u0002\u0fcd\u0fce\u0007Q\u0002\u0002\u0fce\u0fcf\u0007Y\u0002", + "\u0002\u0fcf\u0fd0\u0007U\u0002\u0002\u0fd0\u0fd1\u0007G\u0002\u0002", + "\u0fd1\u0fd2\u0007V\u0002\u0002\u0fd2\u01d2\u0003\u0002\u0002\u0002", + "\u0fd3\u0fd4\u0007Q\u0002\u0002\u0fd4\u0fd5\u0007R\u0002\u0002\u0fd5", + "\u0fd6\u0007G\u0002\u0002\u0fd6\u0fd7\u0007P\u0002\u0002\u0fd7\u0fd8", + "\u0007Z\u0002\u0002\u0fd8\u0fd9\u0007O\u0002\u0002\u0fd9\u0fda\u0007", + "N\u0002\u0002\u0fda\u01d4\u0003\u0002\u0002\u0002\u0fdb\u0fdc\u0007", + "Q\u0002\u0002\u0fdc\u0fdd\u0007R\u0002\u0002\u0fdd\u0fde\u0007V\u0002", + "\u0002\u0fde\u0fdf\u0007K\u0002\u0002\u0fdf\u0fe0\u0007Q\u0002\u0002", + "\u0fe0\u0fe1\u0007P\u0002\u0002\u0fe1\u01d6\u0003\u0002\u0002\u0002", + "\u0fe2\u0fe3\u0007Q\u0002\u0002\u0fe3\u0fe4\u0007T\u0002\u0002\u0fe4", + "\u01d8\u0003\u0002\u0002\u0002\u0fe5\u0fe6\u0007Q\u0002\u0002\u0fe6", + "\u0fe7\u0007T\u0002\u0002\u0fe7\u0fe8\u0007F\u0002\u0002\u0fe8\u0fe9", + "\u0007G\u0002\u0002\u0fe9\u0fea\u0007T\u0002\u0002\u0fea\u01da\u0003", + "\u0002\u0002\u0002\u0feb\u0fec\u0007Q\u0002\u0002\u0fec\u0fed\u0007", + "W\u0002\u0002\u0fed\u0fee\u0007V\u0002\u0002\u0fee\u0fef\u0007G\u0002", + "\u0002\u0fef\u0ff0\u0007T\u0002\u0002\u0ff0\u01dc\u0003\u0002\u0002", + "\u0002\u0ff1\u0ff2\u0007Q\u0002\u0002\u0ff2\u0ff3\u0007X\u0002\u0002", + "\u0ff3\u0ff4\u0007G\u0002\u0002\u0ff4\u0ff5\u0007T\u0002\u0002\u0ff5", + "\u01de\u0003\u0002\u0002\u0002\u0ff6\u0ff7\u0007R\u0002\u0002\u0ff7", + "\u0ff8\u0007C\u0002\u0002\u0ff8\u0ff9\u0007I\u0002\u0002\u0ff9\u0ffa", + "\u0007G\u0002\u0002\u0ffa\u01e0\u0003\u0002\u0002\u0002\u0ffb\u0ffc", + "\u0007R\u0002\u0002\u0ffc\u0ffd\u0007C\u0002\u0002\u0ffd\u0ffe\u0007", + "T\u0002\u0002\u0ffe\u0fff\u0007C\u0002\u0002\u0fff\u1000\u0007O\u0002", + "\u0002\u1000\u1001\u0007a\u0002\u0002\u1001\u1002\u0007P\u0002\u0002", + "\u1002\u1003\u0007Q\u0002\u0002\u1003\u1004\u0007F\u0002\u0002\u1004", + "\u1005\u0007G\u0002\u0002\u1005\u01e2\u0003\u0002\u0002\u0002\u1006", + "\u1007\u0007R\u0002\u0002\u1007\u1008\u0007C\u0002\u0002\u1008\u1009", + "\u0007T\u0002\u0002\u1009\u100a\u0007V\u0002\u0002\u100a\u100b\u0007", + "K\u0002\u0002\u100b\u100c\u0007C\u0002\u0002\u100c\u100d\u0007N\u0002", + "\u0002\u100d\u01e4\u0003\u0002\u0002\u0002\u100e\u100f\u0007R\u0002", + "\u0002\u100f\u1010\u0007C\u0002\u0002\u1010\u1011\u0007U\u0002\u0002", + "\u1011\u1012\u0007U\u0002\u0002\u1012\u1013\u0007Y\u0002\u0002\u1013", + "\u1014\u0007Q\u0002\u0002\u1014\u1015\u0007T\u0002\u0002\u1015\u1016", + "\u0007F\u0002\u0002\u1016\u01e6\u0003\u0002\u0002\u0002\u1017\u1018", + "\u0007R\u0002\u0002\u1018\u1019\u0007G\u0002\u0002\u1019\u101a\u0007", + "T\u0002\u0002\u101a\u101b\u0007E\u0002\u0002\u101b\u101c\u0007G\u0002", + "\u0002\u101c\u101d\u0007P\u0002\u0002\u101d\u101e\u0007V\u0002\u0002", + "\u101e\u01e8\u0003\u0002\u0002\u0002\u101f\u1020\u0007R\u0002\u0002", + "\u1020\u1021\u0007G\u0002\u0002\u1021\u1022\u0007T\u0002\u0002\u1022", + "\u1023\u0007O\u0002\u0002\u1023\u1024\u0007K\u0002\u0002\u1024\u1025", + "\u0007U\u0002\u0002\u1025\u1026\u0007U\u0002\u0002\u1026\u1027\u0007", + "K\u0002\u0002\u1027\u1028\u0007Q\u0002\u0002\u1028\u1029\u0007P\u0002", + "\u0002\u1029\u102a\u0007a\u0002\u0002\u102a\u102b\u0007U\u0002\u0002", + "\u102b\u102c\u0007G\u0002\u0002\u102c\u102d\u0007V\u0002\u0002\u102d", + "\u01ea\u0003\u0002\u0002\u0002\u102e\u102f\u0007R\u0002\u0002\u102f", + "\u1030\u0007G\u0002\u0002\u1030\u1031\u0007T\u0002\u0002\u1031\u1032", + "\u0007a\u0002\u0002\u1032\u1033\u0007E\u0002\u0002\u1033\u1034\u0007", + "R\u0002\u0002\u1034\u1035\u0007W\u0002\u0002\u1035\u01ec\u0003\u0002", + "\u0002\u0002\u1036\u1037\u0007R\u0002\u0002\u1037\u1038\u0007G\u0002", + "\u0002\u1038\u1039\u0007T\u0002\u0002\u1039\u103a\u0007a\u0002\u0002", + "\u103a\u103b\u0007F\u0002\u0002\u103b\u103c\u0007D\u0002\u0002\u103c", + "\u01ee\u0003\u0002\u0002\u0002\u103d\u103e\u0007R\u0002\u0002\u103e", + "\u103f\u0007G\u0002\u0002\u103f\u1040\u0007T\u0002\u0002\u1040\u1041", + "\u0007a\u0002\u0002\u1041\u1042\u0007P\u0002\u0002\u1042\u1043\u0007", + "Q\u0002\u0002\u1043\u1044\u0007F\u0002\u0002\u1044\u1045\u0007G\u0002", + "\u0002\u1045\u01f0\u0003\u0002\u0002\u0002\u1046\u1047\u0007R\u0002", + "\u0002\u1047\u1048\u0007K\u0002\u0002\u1048\u1049\u0007X\u0002\u0002", + "\u1049\u104a\u0007Q\u0002\u0002\u104a\u104b\u0007V\u0002\u0002\u104b", + "\u01f2\u0003\u0002\u0002\u0002\u104c\u104d\u0007R\u0002\u0002\u104d", + "\u104e\u0007N\u0002\u0002\u104e\u104f\u0007C\u0002\u0002\u104f\u1050", + "\u0007P\u0002\u0002\u1050\u01f4\u0003\u0002\u0002\u0002\u1051\u1052", + "\u0007R\u0002\u0002\u1052\u1053\u0007N\u0002\u0002\u1053\u1054\u0007", + "C\u0002\u0002\u1054\u1055\u0007V\u0002\u0002\u1055\u1056\u0007H\u0002", + "\u0002\u1056\u1057\u0007Q\u0002\u0002\u1057\u1058\u0007T\u0002\u0002", + "\u1058\u1059\u0007O\u0002\u0002\u1059\u01f6\u0003\u0002\u0002\u0002", + "\u105a\u105b\u0007R\u0002\u0002\u105b\u105c\u0007Q\u0002\u0002\u105c", + "\u105d\u0007N\u0002\u0002\u105d\u105e\u0007K\u0002\u0002\u105e\u105f", + "\u0007E\u0002\u0002\u105f\u1060\u0007[\u0002\u0002\u1060\u01f8\u0003", + "\u0002\u0002\u0002\u1061\u1062\u0007R\u0002\u0002\u1062\u1063\u0007", + "T\u0002\u0002\u1063\u1064\u0007G\u0002\u0002\u1064\u1065\u0007E\u0002", + "\u0002\u1065\u1066\u0007K\u0002\u0002\u1066\u1067\u0007U\u0002\u0002", + "\u1067\u1068\u0007K\u0002\u0002\u1068\u1069\u0007Q\u0002\u0002\u1069", + "\u106a\u0007P\u0002\u0002\u106a\u01fa\u0003\u0002\u0002\u0002\u106b", + "\u106c\u0007R\u0002\u0002\u106c\u106d\u0007T\u0002\u0002\u106d\u106e", + "\u0007G\u0002\u0002\u106e\u106f\u0007F\u0002\u0002\u106f\u1070\u0007", + "K\u0002\u0002\u1070\u1071\u0007E\u0002\u0002\u1071\u1072\u0007C\u0002", + "\u0002\u1072\u1073\u0007V\u0002\u0002\u1073\u1074\u0007G\u0002\u0002", + "\u1074\u01fc\u0003\u0002\u0002\u0002\u1075\u1076\u0007R\u0002\u0002", + "\u1076\u1077\u0007T\u0002\u0002\u1077\u1078\u0007K\u0002\u0002\u1078", + "\u1079\u0007O\u0002\u0002\u1079\u107a\u0007C\u0002\u0002\u107a\u107b", + "\u0007T\u0002\u0002\u107b\u107c\u0007[\u0002\u0002\u107c\u01fe\u0003", + "\u0002\u0002\u0002\u107d\u107e\u0007R\u0002\u0002\u107e\u107f\u0007", + "T\u0002\u0002\u107f\u1080\u0007K\u0002\u0002\u1080\u1081\u0007P\u0002", + "\u0002\u1081\u1082\u0007V\u0002\u0002\u1082\u0200\u0003\u0002\u0002", + "\u0002\u1083\u1084\u0007R\u0002\u0002\u1084\u1085\u0007T\u0002\u0002", + "\u1085\u1086\u0007Q\u0002\u0002\u1086\u1087\u0007E\u0002\u0002\u1087", + "\u0202\u0003\u0002\u0002\u0002\u1088\u1089\u0007R\u0002\u0002\u1089", + "\u108a\u0007T\u0002\u0002\u108a\u108b\u0007Q\u0002\u0002\u108b\u108c", + "\u0007E\u0002\u0002\u108c\u108d\u0007G\u0002\u0002\u108d\u108e\u0007", + "F\u0002\u0002\u108e\u108f\u0007W\u0002\u0002\u108f\u1090\u0007T\u0002", + "\u0002\u1090\u1091\u0007G\u0002\u0002\u1091\u0204\u0003\u0002\u0002", + "\u0002\u1092\u1093\u0007R\u0002\u0002\u1093\u1094\u0007T\u0002\u0002", + "\u1094\u1095\u0007Q\u0002\u0002\u1095\u1096\u0007E\u0002\u0002\u1096", + "\u1097\u0007G\u0002\u0002\u1097\u1098\u0007U\u0002\u0002\u1098\u1099", + "\u0007U\u0002\u0002\u1099\u0206\u0003\u0002\u0002\u0002\u109a\u109b", + "\u0007R\u0002\u0002\u109b\u109c\u0007W\u0002\u0002\u109c\u109d\u0007", + "D\u0002\u0002\u109d\u109e\u0007N\u0002\u0002\u109e\u109f\u0007K\u0002", + "\u0002\u109f\u10a0\u0007E\u0002\u0002\u10a0\u0208\u0003\u0002\u0002", + "\u0002\u10a1\u10a2\u0007R\u0002\u0002\u10a2\u10a3\u0007[\u0002\u0002", + "\u10a3\u10a4\u0007V\u0002\u0002\u10a4\u10a5\u0007J\u0002\u0002\u10a5", + "\u10a6\u0007Q\u0002\u0002\u10a6\u10a7\u0007P\u0002\u0002\u10a7\u020a", + "\u0003\u0002\u0002\u0002\u10a8\u10a9\u0007T\u0002\u0002\u10a9\u020c", + "\u0003\u0002\u0002\u0002\u10aa\u10ab\u0007T\u0002\u0002\u10ab\u10ac", + "\u0007C\u0002\u0002\u10ac\u10ad\u0007K\u0002\u0002\u10ad\u10ae\u0007", + "U\u0002\u0002\u10ae\u10af\u0007G\u0002\u0002\u10af\u10b0\u0007T\u0002", + "\u0002\u10b0\u10b1\u0007T\u0002\u0002\u10b1\u10b2\u0007Q\u0002\u0002", + "\u10b2\u10b3\u0007T\u0002\u0002\u10b3\u020e\u0003\u0002\u0002\u0002", + "\u10b4\u10b5\u0007T\u0002\u0002\u10b5\u10b6\u0007C\u0002\u0002\u10b6", + "\u10b7\u0007Y\u0002\u0002\u10b7\u0210\u0003\u0002\u0002\u0002\u10b8", + "\u10b9\u0007T\u0002\u0002\u10b9\u10ba\u0007G\u0002\u0002\u10ba\u10bb", + "\u0007C\u0002\u0002\u10bb\u10bc\u0007F\u0002\u0002\u10bc\u0212\u0003", + "\u0002\u0002\u0002\u10bd\u10be\u0007T\u0002\u0002\u10be\u10bf\u0007", + "G\u0002\u0002\u10bf\u10c0\u0007C\u0002\u0002\u10c0\u10c1\u0007F\u0002", + "\u0002\u10c1\u10c2\u0007V\u0002\u0002\u10c2\u10c3\u0007G\u0002\u0002", + "\u10c3\u10c4\u0007Z\u0002\u0002\u10c4\u10c5\u0007V\u0002\u0002\u10c5", + "\u0214\u0003\u0002\u0002\u0002\u10c6\u10c7\u0007T\u0002\u0002\u10c7", + "\u10c8\u0007G\u0002\u0002\u10c8\u10c9\u0007C\u0002\u0002\u10c9\u10ca", + "\u0007F\u0002\u0002\u10ca\u10cb\u0007a\u0002\u0002\u10cb\u10cc\u0007", + "Y\u0002\u0002\u10cc\u10cd\u0007T\u0002\u0002\u10cd\u10ce\u0007K\u0002", + "\u0002\u10ce\u10cf\u0007V\u0002\u0002\u10cf\u10d0\u0007G\u0002\u0002", + "\u10d0\u10d1\u0007a\u0002\u0002\u10d1\u10d2\u0007H\u0002\u0002\u10d2", + "\u10d3\u0007K\u0002\u0002\u10d3\u10d4\u0007N\u0002\u0002\u10d4\u10d5", + "\u0007G\u0002\u0002\u10d5\u10d6\u0007I\u0002\u0002\u10d6\u10d7\u0007", + "T\u0002\u0002\u10d7\u10d8\u0007Q\u0002\u0002\u10d8\u10d9\u0007W\u0002", + "\u0002\u10d9\u10da\u0007R\u0002\u0002\u10da\u10db\u0007U\u0002\u0002", + "\u10db\u0216\u0003\u0002\u0002\u0002\u10dc\u10dd\u0007T\u0002\u0002", + "\u10dd\u10de\u0007G\u0002\u0002\u10de\u10df\u0007E\u0002\u0002\u10df", + "\u10e0\u0007Q\u0002\u0002\u10e0\u10e1\u0007P\u0002\u0002\u10e1\u10e2", + "\u0007H\u0002\u0002\u10e2\u10e3\u0007K\u0002\u0002\u10e3\u10e4\u0007", + "I\u0002\u0002\u10e4\u10e5\u0007W\u0002\u0002\u10e5\u10e6\u0007T\u0002", + "\u0002\u10e6\u10e7\u0007G\u0002\u0002\u10e7\u0218\u0003\u0002\u0002", + "\u0002\u10e8\u10e9\u0007T\u0002\u0002\u10e9\u10ea\u0007G\u0002\u0002", + "\u10ea\u10eb\u0007H\u0002\u0002\u10eb\u10ec\u0007G\u0002\u0002\u10ec", + "\u10ed\u0007T\u0002\u0002\u10ed\u10ee\u0007G\u0002\u0002\u10ee\u10ef", + "\u0007P\u0002\u0002\u10ef\u10f0\u0007E\u0002\u0002\u10f0\u10f1\u0007", + "G\u0002\u0002\u10f1\u10f2\u0007U\u0002\u0002\u10f2\u021a\u0003\u0002", + "\u0002\u0002\u10f3\u10f4\u0007T\u0002\u0002\u10f4\u10f5\u0007G\u0002", + "\u0002\u10f5\u10f6\u0007I\u0002\u0002\u10f6\u10f7\u0007G\u0002\u0002", + "\u10f7\u10f8\u0007P\u0002\u0002\u10f8\u10f9\u0007G\u0002\u0002\u10f9", + "\u10fa\u0007T\u0002\u0002\u10fa\u10fb\u0007C\u0002\u0002\u10fb\u10fc", + "\u0007V\u0002\u0002\u10fc\u10fd\u0007G\u0002\u0002\u10fd\u021c\u0003", + "\u0002\u0002\u0002\u10fe\u10ff\u0007T\u0002\u0002\u10ff\u1100\u0007", + "G\u0002\u0002\u1100\u1101\u0007N\u0002\u0002\u1101\u1102\u0007C\u0002", + "\u0002\u1102\u1103\u0007V\u0002\u0002\u1103\u1104\u0007G\u0002\u0002", + "\u1104\u1105\u0007F\u0002\u0002\u1105\u1106\u0007a\u0002\u0002\u1106", + "\u1107\u0007E\u0002\u0002\u1107\u1108\u0007Q\u0002\u0002\u1108\u1109", + "\u0007P\u0002\u0002\u1109\u110a\u0007X\u0002\u0002\u110a\u110b\u0007", + "G\u0002\u0002\u110b\u110c\u0007T\u0002\u0002\u110c\u110d\u0007U\u0002", + "\u0002\u110d\u110e\u0007C\u0002\u0002\u110e\u110f\u0007V\u0002\u0002", + "\u110f\u1110\u0007K\u0002\u0002\u1110\u1111\u0007Q\u0002\u0002\u1111", + "\u1112\u0007P\u0002\u0002\u1112\u021e\u0003\u0002\u0002\u0002\u1113", + "\u1114\u0007T\u0002\u0002\u1114\u1115\u0007G\u0002\u0002\u1115\u1116", + "\u0007N\u0002\u0002\u1116\u1117\u0007C\u0002\u0002\u1117\u1118\u0007", + "V\u0002\u0002\u1118\u1119\u0007G\u0002\u0002\u1119\u111a\u0007F\u0002", + "\u0002\u111a\u111b\u0007a\u0002\u0002\u111b\u111c\u0007E\u0002\u0002", + "\u111c\u111d\u0007Q\u0002\u0002\u111d\u111e\u0007P\u0002\u0002\u111e", + "\u111f\u0007X\u0002\u0002\u111f\u1120\u0007G\u0002\u0002\u1120\u1121", + "\u0007T\u0002\u0002\u1121\u1122\u0007U\u0002\u0002\u1122\u1123\u0007", + "C\u0002\u0002\u1123\u1124\u0007V\u0002\u0002\u1124\u1125\u0007K\u0002", + "\u0002\u1125\u1126\u0007Q\u0002\u0002\u1126\u1127\u0007P\u0002\u0002", + "\u1127\u1128\u0007a\u0002\u0002\u1128\u1129\u0007I\u0002\u0002\u1129", + "\u112a\u0007T\u0002\u0002\u112a\u112b\u0007Q\u0002\u0002\u112b\u112c", + "\u0007W\u0002\u0002\u112c\u112d\u0007R\u0002\u0002\u112d\u0220\u0003", + "\u0002\u0002\u0002\u112e\u112f\u0007T\u0002\u0002\u112f\u1130\u0007", + "G\u0002\u0002\u1130\u1131\u0007R\u0002\u0002\u1131\u1132\u0007N\u0002", + "\u0002\u1132\u1133\u0007K\u0002\u0002\u1133\u1134\u0007E\u0002\u0002", + "\u1134\u1135\u0007C\u0002\u0002\u1135\u1136\u0007V\u0002\u0002\u1136", + "\u1137\u0007K\u0002\u0002\u1137\u1138\u0007Q\u0002\u0002\u1138\u1139", + "\u0007P\u0002\u0002\u1139\u0222\u0003\u0002\u0002\u0002\u113a\u113b", + "\u0007T\u0002\u0002\u113b\u113c\u0007G\u0002\u0002\u113c\u113d\u0007", + "S\u0002\u0002\u113d\u113e\u0007W\u0002\u0002\u113e\u113f\u0007K\u0002", + "\u0002\u113f\u1140\u0007T\u0002\u0002\u1140\u1141\u0007G\u0002\u0002", + "\u1141\u1142\u0007F\u0002\u0002\u1142\u0224\u0003\u0002\u0002\u0002", + "\u1143\u1144\u0007T\u0002\u0002\u1144\u1145\u0007G\u0002\u0002\u1145", + "\u1146\u0007U\u0002\u0002\u1146\u1147\u0007G\u0002\u0002\u1147\u1148", + "\u0007V\u0002\u0002\u1148\u0226\u0003\u0002\u0002\u0002\u1149\u114a", + "\u0007T\u0002\u0002\u114a\u114b\u0007G\u0002\u0002\u114b\u114c\u0007", + "U\u0002\u0002\u114c\u114d\u0007V\u0002\u0002\u114d\u114e\u0007C\u0002", + "\u0002\u114e\u114f\u0007T\u0002\u0002\u114f\u1150\u0007V\u0002\u0002", + "\u1150\u0228\u0003\u0002\u0002\u0002\u1151\u1152\u0007T\u0002\u0002", + "\u1152\u1153\u0007G\u0002\u0002\u1153\u1154\u0007U\u0002\u0002\u1154", + "\u1155\u0007V\u0002\u0002\u1155\u1156\u0007Q\u0002\u0002\u1156\u1157", + "\u0007T\u0002\u0002\u1157\u1158\u0007G\u0002\u0002\u1158\u022a\u0003", + "\u0002\u0002\u0002\u1159\u115a\u0007T\u0002\u0002\u115a\u115b\u0007", + "G\u0002\u0002\u115b\u115c\u0007U\u0002\u0002\u115c\u115d\u0007V\u0002", + "\u0002\u115d\u115e\u0007T\u0002\u0002\u115e\u115f\u0007K\u0002\u0002", + "\u115f\u1160\u0007E\u0002\u0002\u1160\u1161\u0007V\u0002\u0002\u1161", + "\u022c\u0003\u0002\u0002\u0002\u1162\u1163\u0007T\u0002\u0002\u1163", + "\u1164\u0007G\u0002\u0002\u1164\u1165\u0007U\u0002\u0002\u1165\u1166", + "\u0007W\u0002\u0002\u1166\u1167\u0007O\u0002\u0002\u1167\u1168\u0007", + "G\u0002\u0002\u1168\u022e\u0003\u0002\u0002\u0002\u1169\u116a\u0007", + "T\u0002\u0002\u116a\u116b\u0007G\u0002\u0002\u116b\u116c\u0007V\u0002", + "\u0002\u116c\u116d\u0007C\u0002\u0002\u116d\u116e\u0007K\u0002\u0002", + "\u116e\u116f\u0007P\u0002\u0002\u116f\u1170\u0007F\u0002\u0002\u1170", + "\u1171\u0007C\u0002\u0002\u1171\u1172\u0007[\u0002\u0002\u1172\u1173", + "\u0007U\u0002\u0002\u1173\u0230\u0003\u0002\u0002\u0002\u1174\u1175", + "\u0007T\u0002\u0002\u1175\u1176\u0007G\u0002\u0002\u1176\u1177\u0007", + "V\u0002\u0002\u1177\u1178\u0007W\u0002\u0002\u1178\u1179\u0007T\u0002", + "\u0002\u1179\u117a\u0007P\u0002\u0002\u117a\u0232\u0003\u0002\u0002", + "\u0002\u117b\u117c\u0007T\u0002\u0002\u117c\u117d\u0007G\u0002\u0002", + "\u117d\u117e\u0007V\u0002\u0002\u117e\u117f\u0007W\u0002\u0002\u117f", + "\u1180\u0007T\u0002\u0002\u1180\u1181\u0007P\u0002\u0002\u1181\u1182", + "\u0007U\u0002\u0002\u1182\u0234\u0003\u0002\u0002\u0002\u1183\u1184", + "\u0007T\u0002\u0002\u1184\u1185\u0007G\u0002\u0002\u1185\u1186\u0007", + "X\u0002\u0002\u1186\u1187\u0007G\u0002\u0002\u1187\u1188\u0007T\u0002", + "\u0002\u1188\u1189\u0007V\u0002\u0002\u1189\u0236\u0003\u0002\u0002", + "\u0002\u118a\u118b\u0007T\u0002\u0002\u118b\u118c\u0007G\u0002\u0002", + "\u118c\u118d\u0007X\u0002\u0002\u118d\u118e\u0007Q\u0002\u0002\u118e", + "\u118f\u0007M\u0002\u0002\u118f\u1190\u0007G\u0002\u0002\u1190\u0238", + "\u0003\u0002\u0002\u0002\u1191\u1192\u0007T\u0002\u0002\u1192\u1193", + "\u0007G\u0002\u0002\u1193\u1194\u0007Y\u0002\u0002\u1194\u1195\u0007", + "K\u0002\u0002\u1195\u1196\u0007P\u0002\u0002\u1196\u1197\u0007F\u0002", + "\u0002\u1197\u023a\u0003\u0002\u0002\u0002\u1198\u1199\u0007T\u0002", + "\u0002\u1199\u119a\u0007K\u0002\u0002\u119a\u119b\u0007I\u0002\u0002", + "\u119b\u119c\u0007J\u0002\u0002\u119c\u119d\u0007V\u0002\u0002\u119d", + "\u023c\u0003\u0002\u0002\u0002\u119e\u119f\u0007T\u0002\u0002\u119f", + "\u11a0\u0007Q\u0002\u0002\u11a0\u11a1\u0007N\u0002\u0002\u11a1\u11a2", + "\u0007N\u0002\u0002\u11a2\u11a3\u0007D\u0002\u0002\u11a3\u11a4\u0007", + "C\u0002\u0002\u11a4\u11a5\u0007E\u0002\u0002\u11a5\u11a6\u0007M\u0002", + "\u0002\u11a6\u023e\u0003\u0002\u0002\u0002\u11a7\u11a8\u0007T\u0002", + "\u0002\u11a8\u11a9\u0007Q\u0002\u0002\u11a9\u11aa\u0007N\u0002\u0002", + "\u11aa\u11ab\u0007G\u0002\u0002\u11ab\u0240\u0003\u0002\u0002\u0002", + "\u11ac\u11ad\u0007T\u0002\u0002\u11ad\u11ae\u0007Q\u0002\u0002\u11ae", + "\u11af\u0007Y\u0002\u0002\u11af\u11b0\u0007E\u0002\u0002\u11b0\u11b1", + "\u0007Q\u0002\u0002\u11b1\u11b2\u0007W\u0002\u0002\u11b2\u11b3\u0007", + "P\u0002\u0002\u11b3\u11b4\u0007V\u0002\u0002\u11b4\u0242\u0003\u0002", + "\u0002\u0002\u11b5\u11b6\u0007T\u0002\u0002\u11b6\u11b7\u0007Q\u0002", + "\u0002\u11b7\u11b8\u0007Y\u0002\u0002\u11b8\u11b9\u0007I\u0002\u0002", + "\u11b9\u11ba\u0007W\u0002\u0002\u11ba\u11bb\u0007K\u0002\u0002\u11bb", + "\u11bc\u0007F\u0002\u0002\u11bc\u11bd\u0007E\u0002\u0002\u11bd\u11be", + "\u0007Q\u0002\u0002\u11be\u11bf\u0007N\u0002\u0002\u11bf\u0244\u0003", + "\u0002\u0002\u0002\u11c0\u11c1\u0007T\u0002\u0002\u11c1\u11c2\u0007", + "U\u0002\u0002\u11c2\u11c3\u0007C\u0002\u0002\u11c3\u11c4\u0007a\u0002", + "\u0002\u11c4\u11c5\u00077\u0002\u0002\u11c5\u11c6\u00073\u0002\u0002", + "\u11c6\u11c7\u00074\u0002\u0002\u11c7\u0246\u0003\u0002\u0002\u0002", + "\u11c8\u11c9\u0007T\u0002\u0002\u11c9\u11ca\u0007U\u0002\u0002\u11ca", + "\u11cb\u0007C\u0002\u0002\u11cb\u11cc\u0007a\u0002\u0002\u11cc\u11cd", + "\u00073\u0002\u0002\u11cd\u11ce\u00072\u0002\u0002\u11ce\u11cf\u0007", + "4\u0002\u0002\u11cf\u11d0\u00076\u0002\u0002\u11d0\u0248\u0003\u0002", + "\u0002\u0002\u11d1\u11d2\u0007T\u0002\u0002\u11d2\u11d3\u0007U\u0002", + "\u0002\u11d3\u11d4\u0007C\u0002\u0002\u11d4\u11d5\u0007a\u0002\u0002", + "\u11d5\u11d6\u00074\u0002\u0002\u11d6\u11d7\u00072\u0002\u0002\u11d7", + "\u11d8\u00076\u0002\u0002\u11d8\u11d9\u0007:\u0002\u0002\u11d9\u024a", + "\u0003\u0002\u0002\u0002\u11da\u11db\u0007T\u0002\u0002\u11db\u11dc", + "\u0007U\u0002\u0002\u11dc\u11dd\u0007C\u0002\u0002\u11dd\u11de\u0007", + "a\u0002\u0002\u11de\u11df\u00075\u0002\u0002\u11df\u11e0\u00072\u0002", + "\u0002\u11e0\u11e1\u00079\u0002\u0002\u11e1\u11e2\u00074\u0002\u0002", + "\u11e2\u024c\u0003\u0002\u0002\u0002\u11e3\u11e4\u0007T\u0002\u0002", + "\u11e4\u11e5\u0007U\u0002\u0002\u11e5\u11e6\u0007C\u0002\u0002\u11e6", + "\u11e7\u0007a\u0002\u0002\u11e7\u11e8\u00076\u0002\u0002\u11e8\u11e9", + "\u00072\u0002\u0002\u11e9\u11ea\u0007;\u0002\u0002\u11ea\u11eb\u0007", + "8\u0002\u0002\u11eb\u024e\u0003\u0002\u0002\u0002\u11ec\u11ed\u0007", + "U\u0002\u0002\u11ed\u11ee\u0007C\u0002\u0002\u11ee\u11ef\u0007H\u0002", + "\u0002\u11ef\u11f0\u0007G\u0002\u0002\u11f0\u11f1\u0007V\u0002\u0002", + "\u11f1\u11f2\u0007[\u0002\u0002\u11f2\u0250\u0003\u0002\u0002\u0002", + "\u11f3\u11f4\u0007T\u0002\u0002\u11f4\u11f5\u0007W\u0002\u0002\u11f5", + "\u11f6\u0007N\u0002\u0002\u11f6\u11f7\u0007G\u0002\u0002\u11f7\u0252", + "\u0003\u0002\u0002\u0002\u11f8\u11f9\u0007U\u0002\u0002\u11f9\u11fa", + "\u0007C\u0002\u0002\u11fa\u11fb\u0007H\u0002\u0002\u11fb\u11fc\u0007", + "G\u0002\u0002\u11fc\u0254\u0003\u0002\u0002\u0002\u11fd\u11fe\u0007", + "U\u0002\u0002\u11fe\u11ff\u0007C\u0002\u0002\u11ff\u1200\u0007X\u0002", + "\u0002\u1200\u1201\u0007G\u0002\u0002\u1201\u0256\u0003\u0002\u0002", + "\u0002\u1202\u1203\u0007U\u0002\u0002\u1203\u1204\u0007E\u0002\u0002", + "\u1204\u1205\u0007J\u0002\u0002\u1205\u1206\u0007G\u0002\u0002\u1206", + "\u1207\u0007F\u0002\u0002\u1207\u1208\u0007W\u0002\u0002\u1208\u1209", + "\u0007N\u0002\u0002\u1209\u120a\u0007G\u0002\u0002\u120a\u120b\u0007", + "T\u0002\u0002\u120b\u0258\u0003\u0002\u0002\u0002\u120c\u120d\u0007", + "U\u0002\u0002\u120d\u120e\u0007E\u0002\u0002\u120e\u120f\u0007J\u0002", + "\u0002\u120f\u1210\u0007G\u0002\u0002\u1210\u1211\u0007O\u0002\u0002", + "\u1211\u1212\u0007C\u0002\u0002\u1212\u025a\u0003\u0002\u0002\u0002", + "\u1213\u1214\u0007U\u0002\u0002\u1214\u1215\u0007E\u0002\u0002\u1215", + "\u1216\u0007J\u0002\u0002\u1216\u1217\u0007G\u0002\u0002\u1217\u1218", + "\u0007O\u0002\u0002\u1218\u1219\u0007G\u0002\u0002\u1219\u025c\u0003", + "\u0002\u0002\u0002\u121a\u121b\u0007U\u0002\u0002\u121b\u121c\u0007", + "G\u0002\u0002\u121c\u121d\u0007E\u0002\u0002\u121d\u121e\u0007W\u0002", + "\u0002\u121e\u121f\u0007T\u0002\u0002\u121f\u1220\u0007K\u0002\u0002", + "\u1220\u1221\u0007V\u0002\u0002\u1221\u1222\u0007[\u0002\u0002\u1222", + "\u1223\u0007C\u0002\u0002\u1223\u1224\u0007W\u0002\u0002\u1224\u1225", + "\u0007F\u0002\u0002\u1225\u1226\u0007K\u0002\u0002\u1226\u1227\u0007", + "V\u0002\u0002\u1227\u025e\u0003\u0002\u0002\u0002\u1228\u1229\u0007", + "U\u0002\u0002\u1229\u122a\u0007G\u0002\u0002\u122a\u122b\u0007N\u0002", + "\u0002\u122b\u122c\u0007G\u0002\u0002\u122c\u122d\u0007E\u0002\u0002", + "\u122d\u122e\u0007V\u0002\u0002\u122e\u0260\u0003\u0002\u0002\u0002", + "\u122f\u1230\u0007U\u0002\u0002\u1230\u1231\u0007G\u0002\u0002\u1231", + "\u1232\u0007O\u0002\u0002\u1232\u1233\u0007C\u0002\u0002\u1233\u1234", + "\u0007P\u0002\u0002\u1234\u1235\u0007V\u0002\u0002\u1235\u1236\u0007", + "K\u0002\u0002\u1236\u1237\u0007E\u0002\u0002\u1237\u1238\u0007M\u0002", + "\u0002\u1238\u1239\u0007G\u0002\u0002\u1239\u123a\u0007[\u0002\u0002", + "\u123a\u123b\u0007R\u0002\u0002\u123b\u123c\u0007J\u0002\u0002\u123c", + "\u123d\u0007T\u0002\u0002\u123d\u123e\u0007C\u0002\u0002\u123e\u123f", + "\u0007U\u0002\u0002\u123f\u1240\u0007G\u0002\u0002\u1240\u1241\u0007", + "V\u0002\u0002\u1241\u1242\u0007C\u0002\u0002\u1242\u1243\u0007D\u0002", + "\u0002\u1243\u1244\u0007N\u0002\u0002\u1244\u1245\u0007G\u0002\u0002", + "\u1245\u0262\u0003\u0002\u0002\u0002\u1246\u1247\u0007U\u0002\u0002", + "\u1247\u1248\u0007G\u0002\u0002\u1248\u1249\u0007O\u0002\u0002\u1249", + "\u124a\u0007C\u0002\u0002\u124a\u124b\u0007P\u0002\u0002\u124b\u124c", + "\u0007V\u0002\u0002\u124c\u124d\u0007K\u0002\u0002\u124d\u124e\u0007", + "E\u0002\u0002\u124e\u124f\u0007U\u0002\u0002\u124f\u1250\u0007K\u0002", + "\u0002\u1250\u1251\u0007O\u0002\u0002\u1251\u1252\u0007K\u0002\u0002", + "\u1252\u1253\u0007N\u0002\u0002\u1253\u1254\u0007C\u0002\u0002\u1254", + "\u1255\u0007T\u0002\u0002\u1255\u1256\u0007K\u0002\u0002\u1256\u1257", + "\u0007V\u0002\u0002\u1257\u1258\u0007[\u0002\u0002\u1258\u1259\u0007", + "F\u0002\u0002\u1259\u125a\u0007G\u0002\u0002\u125a\u125b\u0007V\u0002", + "\u0002\u125b\u125c\u0007C\u0002\u0002\u125c\u125d\u0007K\u0002\u0002", + "\u125d\u125e\u0007N\u0002\u0002\u125e\u125f\u0007U\u0002\u0002\u125f", + "\u1260\u0007V\u0002\u0002\u1260\u1261\u0007C\u0002\u0002\u1261\u1262", + "\u0007D\u0002\u0002\u1262\u1263\u0007N\u0002\u0002\u1263\u1264\u0007", + "G\u0002\u0002\u1264\u0264\u0003\u0002\u0002\u0002\u1265\u1266\u0007", + "U\u0002\u0002\u1266\u1267\u0007G\u0002\u0002\u1267\u1268\u0007O\u0002", + "\u0002\u1268\u1269\u0007C\u0002\u0002\u1269\u126a\u0007P\u0002\u0002", + "\u126a\u126b\u0007V\u0002\u0002\u126b\u126c\u0007K\u0002\u0002\u126c", + "\u126d\u0007E\u0002\u0002\u126d\u126e\u0007U\u0002\u0002\u126e\u126f", + "\u0007K\u0002\u0002\u126f\u1270\u0007O\u0002\u0002\u1270\u1271\u0007", + "K\u0002\u0002\u1271\u1272\u0007N\u0002\u0002\u1272\u1273\u0007C\u0002", + "\u0002\u1273\u1274\u0007T\u0002\u0002\u1274\u1275\u0007K\u0002\u0002", + "\u1275\u1276\u0007V\u0002\u0002\u1276\u1277\u0007[\u0002\u0002\u1277", + "\u1278\u0007V\u0002\u0002\u1278\u1279\u0007C\u0002\u0002\u1279\u127a", + "\u0007D\u0002\u0002\u127a\u127b\u0007N\u0002\u0002\u127b\u127c\u0007", + "G\u0002\u0002\u127c\u0266\u0003\u0002\u0002\u0002\u127d\u127e\u0007", + "U\u0002\u0002\u127e\u127f\u0007G\u0002\u0002\u127f\u1280\u0007T\u0002", + "\u0002\u1280\u1281\u0007X\u0002\u0002\u1281\u1282\u0007G\u0002\u0002", + "\u1282\u1283\u0007T\u0002\u0002\u1283\u0268\u0003\u0002\u0002\u0002", + "\u1284\u1285\u0007U\u0002\u0002\u1285\u1286\u0007G\u0002\u0002\u1286", + "\u1287\u0007T\u0002\u0002\u1287\u1288\u0007X\u0002\u0002\u1288\u1289", + "\u0007K\u0002\u0002\u1289\u128a\u0007E\u0002\u0002\u128a\u128b\u0007", + "G\u0002\u0002\u128b\u026a\u0003\u0002\u0002\u0002\u128c\u128d\u0007", + "U\u0002\u0002\u128d\u128e\u0007G\u0002\u0002\u128e\u128f\u0007T\u0002", + "\u0002\u128f\u1290\u0007X\u0002\u0002\u1290\u1291\u0007K\u0002\u0002", + "\u1291\u1292\u0007E\u0002\u0002\u1292\u1293\u0007G\u0002\u0002\u1293", + "\u1294\u0007a\u0002\u0002\u1294\u1295\u0007D\u0002\u0002\u1295\u1296", + "\u0007T\u0002\u0002\u1296\u1297\u0007Q\u0002\u0002\u1297\u1298\u0007", + "M\u0002\u0002\u1298\u1299\u0007G\u0002\u0002\u1299\u129a\u0007T\u0002", + "\u0002\u129a\u026c\u0003\u0002\u0002\u0002\u129b\u129c\u0007U\u0002", + "\u0002\u129c\u129d\u0007G\u0002\u0002\u129d\u129e\u0007T\u0002\u0002", + "\u129e\u129f\u0007X\u0002\u0002\u129f\u12a0\u0007K\u0002\u0002\u12a0", + "\u12a1\u0007E\u0002\u0002\u12a1\u12a2\u0007G\u0002\u0002\u12a2\u12a3", + "\u0007a\u0002\u0002\u12a3\u12a4\u0007P\u0002\u0002\u12a4\u12a5\u0007", + "C\u0002\u0002\u12a5\u12a6\u0007O\u0002\u0002\u12a6\u12a7\u0007G\u0002", + "\u0002\u12a7\u026e\u0003\u0002\u0002\u0002\u12a8\u12a9\u0007U\u0002", + "\u0002\u12a9\u12aa\u0007G\u0002\u0002\u12aa\u12ab\u0007U\u0002\u0002", + "\u12ab\u12ac\u0007U\u0002\u0002\u12ac\u12ad\u0007K\u0002\u0002\u12ad", + "\u12ae\u0007Q\u0002\u0002\u12ae\u12af\u0007P\u0002\u0002\u12af\u0270", + "\u0003\u0002\u0002\u0002\u12b0\u12b1\u0007U\u0002\u0002\u12b1\u12b2", + "\u0007G\u0002\u0002\u12b2\u12b3\u0007U\u0002\u0002\u12b3\u12b4\u0007", + "U\u0002\u0002\u12b4\u12b5\u0007K\u0002\u0002\u12b5\u12b6\u0007Q\u0002", + "\u0002\u12b6\u12b7\u0007P\u0002\u0002\u12b7\u12b8\u0007a\u0002\u0002", + "\u12b8\u12b9\u0007W\u0002\u0002\u12b9\u12ba\u0007U\u0002\u0002\u12ba", + "\u12bb\u0007G\u0002\u0002\u12bb\u12bc\u0007T\u0002\u0002\u12bc\u0272", + "\u0003\u0002\u0002\u0002\u12bd\u12be\u0007U\u0002\u0002\u12be\u12bf", + "\u0007G\u0002\u0002\u12bf\u12c0\u0007V\u0002\u0002\u12c0\u0274\u0003", + "\u0002\u0002\u0002\u12c1\u12c2\u0007U\u0002\u0002\u12c2\u12c3\u0007", + "G\u0002\u0002\u12c3\u12c4\u0007V\u0002\u0002\u12c4\u12c5\u0007W\u0002", + "\u0002\u12c5\u12c6\u0007U\u0002\u0002\u12c6\u12c7\u0007G\u0002\u0002", + "\u12c7\u12c8\u0007T\u0002\u0002\u12c8\u0276\u0003\u0002\u0002\u0002", + "\u12c9\u12ca\u0007U\u0002\u0002\u12ca\u12cb\u0007J\u0002\u0002\u12cb", + "\u12cc\u0007W\u0002\u0002\u12cc\u12cd\u0007V\u0002\u0002\u12cd\u12ce", + "\u0007F\u0002\u0002\u12ce\u12cf\u0007Q\u0002\u0002\u12cf\u12d0\u0007", + "Y\u0002\u0002\u12d0\u12d1\u0007P\u0002\u0002\u12d1\u0278\u0003\u0002", + "\u0002\u0002\u12d2\u12d3\u0007U\u0002\u0002\u12d3\u12d4\u0007K\u0002", + "\u0002\u12d4\u12d5\u0007F\u0002\u0002\u12d5\u027a\u0003\u0002\u0002", + "\u0002\u12d6\u12d7\u0007U\u0002\u0002\u12d7\u12d8\u0007M\u0002\u0002", + "\u12d8\u12d9\u0007K\u0002\u0002\u12d9\u12da\u0007R\u0002\u0002\u12da", + "\u027c\u0003\u0002\u0002\u0002\u12db\u12dc\u0007U\u0002\u0002\u12dc", + "\u12dd\u0007Q\u0002\u0002\u12dd\u12de\u0007H\u0002\u0002\u12de\u12df", + "\u0007V\u0002\u0002\u12df\u12e0\u0007P\u0002\u0002\u12e0\u12e1\u0007", + "W\u0002\u0002\u12e1\u12e2\u0007O\u0002\u0002\u12e2\u12e3\u0007C\u0002", + "\u0002\u12e3\u027e\u0003\u0002\u0002\u0002\u12e4\u12e5\u0007U\u0002", + "\u0002\u12e5\u12e6\u0007Q\u0002\u0002\u12e6\u12e7\u0007O\u0002\u0002", + "\u12e7\u12e8\u0007G\u0002\u0002\u12e8\u0280\u0003\u0002\u0002\u0002", + "\u12e9\u12ea\u0007U\u0002\u0002\u12ea\u12eb\u0007Q\u0002\u0002\u12eb", + "\u12ec\u0007W\u0002\u0002\u12ec\u12ed\u0007T\u0002\u0002\u12ed\u12ee", + "\u0007E\u0002\u0002\u12ee\u12ef\u0007G\u0002\u0002\u12ef\u0282\u0003", + "\u0002\u0002\u0002\u12f0\u12f1\u0007U\u0002\u0002\u12f1\u12f2\u0007", + "R\u0002\u0002\u12f2\u12f3\u0007G\u0002\u0002\u12f3\u12f4\u0007E\u0002", + "\u0002\u12f4\u12f5\u0007K\u0002\u0002\u12f5\u12f6\u0007H\u0002\u0002", + "\u12f6\u12f7\u0007K\u0002\u0002\u12f7\u12f8\u0007E\u0002\u0002\u12f8", + "\u12f9\u0007C\u0002\u0002\u12f9\u12fa\u0007V\u0002\u0002\u12fa\u12fb", + "\u0007K\u0002\u0002\u12fb\u12fc\u0007Q\u0002\u0002\u12fc\u12fd\u0007", + "P\u0002\u0002\u12fd\u0284\u0003\u0002\u0002\u0002\u12fe\u12ff\u0007", + "U\u0002\u0002\u12ff\u1300\u0007R\u0002\u0002\u1300\u1301\u0007N\u0002", + "\u0002\u1301\u1302\u0007K\u0002\u0002\u1302\u1303\u0007V\u0002\u0002", + "\u1303\u0286\u0003\u0002\u0002\u0002\u1304\u1305\u0007U\u0002\u0002", + "\u1305\u1306\u0007S\u0002\u0002\u1306\u1307\u0007N\u0002\u0002\u1307", + "\u1308\u0007F\u0002\u0002\u1308\u1309\u0007W\u0002\u0002\u1309\u130a", + "\u0007O\u0002\u0002\u130a\u130b\u0007R\u0002\u0002\u130b\u130c\u0007", + "G\u0002\u0002\u130c\u130d\u0007T\u0002\u0002\u130d\u130e\u0007H\u0002", + "\u0002\u130e\u130f\u0007N\u0002\u0002\u130f\u1310\u0007C\u0002\u0002", + "\u1310\u1311\u0007I\u0002\u0002\u1311\u1312\u0007U\u0002\u0002\u1312", + "\u0288\u0003\u0002\u0002\u0002\u1313\u1314\u0007U\u0002\u0002\u1314", + "\u1315\u0007S\u0002\u0002\u1315\u1316\u0007N\u0002\u0002\u1316\u1317", + "\u0007F\u0002\u0002\u1317\u1318\u0007W\u0002\u0002\u1318\u1319\u0007", + "O\u0002\u0002\u1319\u131a\u0007R\u0002\u0002\u131a\u131b\u0007G\u0002", + "\u0002\u131b\u131c\u0007T\u0002\u0002\u131c\u131d\u0007R\u0002\u0002", + "\u131d\u131e\u0007C\u0002\u0002\u131e\u131f\u0007V\u0002\u0002\u131f", + "\u1320\u0007J\u0002\u0002\u1320\u028a\u0003\u0002\u0002\u0002\u1321", + "\u1322\u0007U\u0002\u0002\u1322\u1323\u0007S\u0002\u0002\u1323\u1324", + "\u0007N\u0002\u0002\u1324\u1325\u0007F\u0002\u0002\u1325\u1326\u0007", + "W\u0002\u0002\u1326\u1327\u0007O\u0002\u0002\u1327\u1328\u0007R\u0002", + "\u0002\u1328\u1329\u0007G\u0002\u0002\u1329\u132a\u0007T\u0002\u0002", + "\u132a\u132b\u0007V\u0002\u0002\u132b\u132c\u0007K\u0002\u0002\u132c", + "\u132d\u0007O\u0002\u0002\u132d\u132e\u0007G\u0002\u0002\u132e\u132f", + "\u0007Q\u0002\u0002\u132f\u1330\u0007W\u0002\u0002\u1330\u1331\u0007", + "V\u0002\u0002\u1331\u1332\u0007U\u0002\u0002\u1332\u028c\u0003\u0002", + "\u0002\u0002\u1333\u1334\u0007U\u0002\u0002\u1334\u1335\u0007V\u0002", + "\u0002\u1335\u1336\u0007C\u0002\u0002\u1336\u1337\u0007V\u0002\u0002", + "\u1337\u1338\u0007K\u0002\u0002\u1338\u1339\u0007U\u0002\u0002\u1339", + "\u133a\u0007V\u0002\u0002\u133a\u133b\u0007K\u0002\u0002\u133b\u133c", + "\u0007E\u0002\u0002\u133c\u133d\u0007U\u0002\u0002\u133d\u028e\u0003", + "\u0002\u0002\u0002\u133e\u133f\u0007U\u0002\u0002\u133f\u1340\u0007", + "V\u0002\u0002\u1340\u1341\u0007C\u0002\u0002\u1341\u1342\u0007V\u0002", + "\u0002\u1342\u1343\u0007G\u0002\u0002\u1343\u0290\u0003\u0002\u0002", + "\u0002\u1344\u1345\u0007U\u0002\u0002\u1345\u1346\u0007V\u0002\u0002", + "\u1346\u1347\u0007C\u0002\u0002\u1347\u1348\u0007V\u0002\u0002\u1348", + "\u1349\u0007U\u0002\u0002\u1349\u0292\u0003\u0002\u0002\u0002\u134a", + "\u134b\u0007U\u0002\u0002\u134b\u134c\u0007V\u0002\u0002\u134c\u134d", + "\u0007C\u0002\u0002\u134d\u134e\u0007T\u0002\u0002\u134e\u134f\u0007", + "V\u0002\u0002\u134f\u0294\u0003\u0002\u0002\u0002\u1350\u1351\u0007", + "U\u0002\u0002\u1351\u1352\u0007V\u0002\u0002\u1352\u1353\u0007C\u0002", + "\u0002\u1353\u1354\u0007T\u0002\u0002\u1354\u1355\u0007V\u0002\u0002", + "\u1355\u1356\u0007G\u0002\u0002\u1356\u1357\u0007F\u0002\u0002\u1357", + "\u0296\u0003\u0002\u0002\u0002\u1358\u1359\u0007U\u0002\u0002\u1359", + "\u135a\u0007V\u0002\u0002\u135a\u135b\u0007C\u0002\u0002\u135b\u135c", + "\u0007T\u0002\u0002\u135c\u135d\u0007V\u0002\u0002\u135d\u135e\u0007", + "W\u0002\u0002\u135e\u135f\u0007R\u0002\u0002\u135f\u1360\u0007a\u0002", + "\u0002\u1360\u1361\u0007U\u0002\u0002\u1361\u1362\u0007V\u0002\u0002", + "\u1362\u1363\u0007C\u0002\u0002\u1363\u1364\u0007V\u0002\u0002\u1364", + "\u1365\u0007G\u0002\u0002\u1365\u0298\u0003\u0002\u0002\u0002\u1366", + "\u1367\u0007U\u0002\u0002\u1367\u1368\u0007V\u0002\u0002\u1368\u1369", + "\u0007Q\u0002\u0002\u1369\u136a\u0007R\u0002\u0002\u136a\u029a\u0003", + "\u0002\u0002\u0002\u136b\u136c\u0007U\u0002\u0002\u136c\u136d\u0007", + "V\u0002\u0002\u136d\u136e\u0007Q\u0002\u0002\u136e\u136f\u0007R\u0002", + "\u0002\u136f\u1370\u0007R\u0002\u0002\u1370\u1371\u0007G\u0002\u0002", + "\u1371\u1372\u0007F\u0002\u0002\u1372\u029c\u0003\u0002\u0002\u0002", + "\u1373\u1374\u0007U\u0002\u0002\u1374\u1375\u0007V\u0002\u0002\u1375", + "\u1376\u0007Q\u0002\u0002\u1376\u1377\u0007R\u0002\u0002\u1377\u1378", + "\u0007a\u0002\u0002\u1378\u1379\u0007Q\u0002\u0002\u1379\u137a\u0007", + "P\u0002\u0002\u137a\u137b\u0007a\u0002\u0002\u137b\u137c\u0007G\u0002", + "\u0002\u137c\u137d\u0007T\u0002\u0002\u137d\u137e\u0007T\u0002\u0002", + "\u137e\u137f\u0007Q\u0002\u0002\u137f\u1380\u0007T\u0002\u0002\u1380", + "\u029e\u0003\u0002\u0002\u0002\u1381\u1382\u0007U\u0002\u0002\u1382", + "\u1383\u0007W\u0002\u0002\u1383\u1384\u0007R\u0002\u0002\u1384\u1385", + "\u0007R\u0002\u0002\u1385\u1386\u0007Q\u0002\u0002\u1386\u1387\u0007", + "T\u0002\u0002\u1387\u1388\u0007V\u0002\u0002\u1388\u1389\u0007G\u0002", + "\u0002\u1389\u138a\u0007F\u0002\u0002\u138a\u02a0\u0003\u0002\u0002", + "\u0002\u138b\u138c\u0007U\u0002\u0002\u138c\u138d\u0007[\u0002\u0002", + "\u138d\u138e\u0007U\u0002\u0002\u138e\u138f\u0007V\u0002\u0002\u138f", + "\u1390\u0007G\u0002\u0002\u1390\u1391\u0007O\u0002\u0002\u1391\u1392", + "\u0007a\u0002\u0002\u1392\u1393\u0007W\u0002\u0002\u1393\u1394\u0007", + "U\u0002\u0002\u1394\u1395\u0007G\u0002\u0002\u1395\u1396\u0007T\u0002", + "\u0002\u1396\u02a2\u0003\u0002\u0002\u0002\u1397\u1398\u0007V\u0002", + "\u0002\u1398\u1399\u0007C\u0002\u0002\u1399\u139a\u0007D\u0002\u0002", + "\u139a\u139b\u0007N\u0002\u0002\u139b\u139c\u0007G\u0002\u0002\u139c", + "\u02a4\u0003\u0002\u0002\u0002\u139d\u139e\u0007V\u0002\u0002\u139e", + "\u139f\u0007C\u0002\u0002\u139f\u13a0\u0007D\u0002\u0002\u13a0\u13a1", + "\u0007N\u0002\u0002\u13a1\u13a2\u0007G\u0002\u0002\u13a2\u13a3\u0007", + "U\u0002\u0002\u13a3\u13a4\u0007C\u0002\u0002\u13a4\u13a5\u0007O\u0002", + "\u0002\u13a5\u13a6\u0007R\u0002\u0002\u13a6\u13a7\u0007N\u0002\u0002", + "\u13a7\u13a8\u0007G\u0002\u0002\u13a8\u02a6\u0003\u0002\u0002\u0002", + "\u13a9\u13aa\u0007V\u0002\u0002\u13aa\u13ab\u0007C\u0002\u0002\u13ab", + "\u13ac\u0007R\u0002\u0002\u13ac\u13ad\u0007G\u0002\u0002\u13ad\u02a8", + "\u0003\u0002\u0002\u0002\u13ae\u13af\u0007V\u0002\u0002\u13af\u13b0", + "\u0007C\u0002\u0002\u13b0\u13b1\u0007T\u0002\u0002\u13b1\u13b2\u0007", + "I\u0002\u0002\u13b2\u13b3\u0007G\u0002\u0002\u13b3\u13b4\u0007V\u0002", + "\u0002\u13b4\u02aa\u0003\u0002\u0002\u0002\u13b5\u13b6\u0007V\u0002", + "\u0002\u13b6\u13b7\u0007E\u0002\u0002\u13b7\u13b8\u0007R\u0002\u0002", + "\u13b8\u02ac\u0003\u0002\u0002\u0002\u13b9\u13ba\u0007V\u0002\u0002", + "\u13ba\u13bb\u0007G\u0002\u0002\u13bb\u13bc\u0007Z\u0002\u0002\u13bc", + "\u13bd\u0007V\u0002\u0002\u13bd\u13be\u0007U\u0002\u0002\u13be\u13bf", + "\u0007K\u0002\u0002\u13bf\u13c0\u0007\\\u0002\u0002\u13c0\u13c1\u0007", + "G\u0002\u0002\u13c1\u02ae\u0003\u0002\u0002\u0002\u13c2\u13c3\u0007", + "V\u0002\u0002\u13c3\u13c4\u0007J\u0002\u0002\u13c4\u13c5\u0007G\u0002", + "\u0002\u13c5\u13c6\u0007P\u0002\u0002\u13c6\u02b0\u0003\u0002\u0002", + "\u0002\u13c7\u13c8\u0007V\u0002\u0002\u13c8\u13c9\u0007Q\u0002\u0002", + "\u13c9\u02b2\u0003\u0002\u0002\u0002\u13ca\u13cb\u0007V\u0002\u0002", + "\u13cb\u13cc\u0007Q\u0002\u0002\u13cc\u13cd\u0007R\u0002\u0002\u13cd", + "\u02b4\u0003\u0002\u0002\u0002\u13ce\u13cf\u0007V\u0002\u0002\u13cf", + "\u13d0\u0007T\u0002\u0002\u13d0\u13d1\u0007C\u0002\u0002\u13d1\u13d2", + "\u0007E\u0002\u0002\u13d2\u13d3\u0007M\u0002\u0002\u13d3\u13d4\u0007", + "a\u0002\u0002\u13d4\u13d5\u0007E\u0002\u0002\u13d5\u13d6\u0007C\u0002", + "\u0002\u13d6\u13d7\u0007W\u0002\u0002\u13d7\u13d8\u0007U\u0002\u0002", + "\u13d8\u13d9\u0007C\u0002\u0002\u13d9\u13da\u0007N\u0002\u0002\u13da", + "\u13db\u0007K\u0002\u0002\u13db\u13dc\u0007V\u0002\u0002\u13dc\u13dd", + "\u0007[\u0002\u0002\u13dd\u02b6\u0003\u0002\u0002\u0002\u13de\u13df", + "\u0007V\u0002\u0002\u13df\u13e0\u0007T\u0002\u0002\u13e0\u13e1\u0007", + "C\u0002\u0002\u13e1\u13e2\u0007P\u0002\u0002\u13e2\u02b8\u0003\u0002", + "\u0002\u0002\u13e3\u13e4\u0007V\u0002\u0002\u13e4\u13e5\u0007T\u0002", + "\u0002\u13e5\u13e6\u0007C\u0002\u0002\u13e6\u13e7\u0007P\u0002\u0002", + "\u13e7\u13e8\u0007U\u0002\u0002\u13e8\u13e9\u0007C\u0002\u0002\u13e9", + "\u13ea\u0007E\u0002\u0002\u13ea\u13eb\u0007V\u0002\u0002\u13eb\u13ec", + "\u0007K\u0002\u0002\u13ec\u13ed\u0007Q\u0002\u0002\u13ed\u13ee\u0007", + "P\u0002\u0002\u13ee\u02ba\u0003\u0002\u0002\u0002\u13ef\u13f0\u0007", + "V\u0002\u0002\u13f0\u13f1\u0007T\u0002\u0002\u13f1\u13f2\u0007C\u0002", + "\u0002\u13f2\u13f3\u0007P\u0002\u0002\u13f3\u13f4\u0007U\u0002\u0002", + "\u13f4\u13f5\u0007H\u0002\u0002\u13f5\u13f6\u0007G\u0002\u0002\u13f6", + "\u13f7\u0007T\u0002\u0002\u13f7\u02bc\u0003\u0002\u0002\u0002\u13f8", + "\u13f9\u0007V\u0002\u0002\u13f9\u13fa\u0007T\u0002\u0002\u13fa\u13fb", + "\u0007K\u0002\u0002\u13fb\u13fc\u0007I\u0002\u0002\u13fc\u13fd\u0007", + "I\u0002\u0002\u13fd\u13fe\u0007G\u0002\u0002\u13fe\u13ff\u0007T\u0002", + "\u0002\u13ff\u02be\u0003\u0002\u0002\u0002\u1400\u1401\u0007V\u0002", + "\u0002\u1401\u1402\u0007T\u0002\u0002\u1402\u1403\u0007W\u0002\u0002", + "\u1403\u1404\u0007P\u0002\u0002\u1404\u1405\u0007E\u0002\u0002\u1405", + "\u1406\u0007C\u0002\u0002\u1406\u1407\u0007V\u0002\u0002\u1407\u1408", + "\u0007G\u0002\u0002\u1408\u02c0\u0003\u0002\u0002\u0002\u1409\u140a", + "\u0007V\u0002\u0002\u140a\u140b\u0007U\u0002\u0002\u140b\u140c\u0007", + "G\u0002\u0002\u140c\u140d\u0007S\u0002\u0002\u140d\u140e\u0007W\u0002", + "\u0002\u140e\u140f\u0007C\u0002\u0002\u140f\u1410\u0007N\u0002\u0002", + "\u1410\u02c2\u0003\u0002\u0002\u0002\u1411\u1412\u0007W\u0002\u0002", + "\u1412\u1413\u0007P\u0002\u0002\u1413\u1414\u0007E\u0002\u0002\u1414", + "\u1415\u0007J\u0002\u0002\u1415\u1416\u0007G\u0002\u0002\u1416\u1417", + "\u0007E\u0002\u0002\u1417\u1418\u0007M\u0002\u0002\u1418\u1419\u0007", + "G\u0002\u0002\u1419\u141a\u0007F\u0002\u0002\u141a\u02c4\u0003\u0002", + "\u0002\u0002\u141b\u141c\u0007W\u0002\u0002\u141c\u141d\u0007P\u0002", + "\u0002\u141d\u141e\u0007K\u0002\u0002\u141e\u141f\u0007Q\u0002\u0002", + "\u141f\u1420\u0007P\u0002\u0002\u1420\u02c6\u0003\u0002\u0002\u0002", + "\u1421\u1422\u0007W\u0002\u0002\u1422\u1423\u0007P\u0002\u0002\u1423", + "\u1424\u0007K\u0002\u0002\u1424\u1425\u0007S\u0002\u0002\u1425\u1426", + "\u0007W\u0002\u0002\u1426\u1427\u0007G\u0002\u0002\u1427\u02c8\u0003", + "\u0002\u0002\u0002\u1428\u1429\u0007W\u0002\u0002\u1429\u142a\u0007", + "P\u0002\u0002\u142a\u142b\u0007N\u0002\u0002\u142b\u142c\u0007Q\u0002", + "\u0002\u142c\u142d\u0007E\u0002\u0002\u142d\u142e\u0007M\u0002\u0002", + "\u142e\u02ca\u0003\u0002\u0002\u0002\u142f\u1430\u0007W\u0002\u0002", + "\u1430\u1431\u0007P\u0002\u0002\u1431\u1432\u0007R\u0002\u0002\u1432", + "\u1433\u0007K\u0002\u0002\u1433\u1434\u0007X\u0002\u0002\u1434\u1435", + "\u0007Q\u0002\u0002\u1435\u1436\u0007V\u0002\u0002\u1436\u02cc\u0003", + "\u0002\u0002\u0002\u1437\u1438\u0007W\u0002\u0002\u1438\u1439\u0007", + "P\u0002\u0002\u1439\u143a\u0007U\u0002\u0002\u143a\u143b\u0007C\u0002", + "\u0002\u143b\u143c\u0007H\u0002\u0002\u143c\u143d\u0007G\u0002\u0002", + "\u143d\u02ce\u0003\u0002\u0002\u0002\u143e\u143f\u0007W\u0002\u0002", + "\u143f\u1440\u0007R\u0002\u0002\u1440\u1441\u0007F\u0002\u0002\u1441", + "\u1442\u0007C\u0002\u0002\u1442\u1443\u0007V\u0002\u0002\u1443\u1444", + "\u0007G\u0002\u0002\u1444\u02d0\u0003\u0002\u0002\u0002\u1445\u1446", + "\u0007W\u0002\u0002\u1446\u1447\u0007R\u0002\u0002\u1447\u1448\u0007", + "F\u0002\u0002\u1448\u1449\u0007C\u0002\u0002\u1449\u144a\u0007V\u0002", + "\u0002\u144a\u144b\u0007G\u0002\u0002\u144b\u144c\u0007V\u0002\u0002", + "\u144c\u144d\u0007G\u0002\u0002\u144d\u144e\u0007Z\u0002\u0002\u144e", + "\u144f\u0007V\u0002\u0002\u144f\u02d2\u0003\u0002\u0002\u0002\u1450", + "\u1451\u0007W\u0002\u0002\u1451\u1452\u0007T\u0002\u0002\u1452\u1453", + "\u0007N\u0002\u0002\u1453\u02d4\u0003\u0002\u0002\u0002\u1454\u1455", + "\u0007W\u0002\u0002\u1455\u1456\u0007U\u0002\u0002\u1456\u1457\u0007", + "G\u0002\u0002\u1457\u02d6\u0003\u0002\u0002\u0002\u1458\u1459\u0007", + "W\u0002\u0002\u1459\u145a\u0007U\u0002\u0002\u145a\u145b\u0007G\u0002", + "\u0002\u145b\u145c\u0007F\u0002\u0002\u145c\u02d8\u0003\u0002\u0002", + "\u0002\u145d\u145e\u0007W\u0002\u0002\u145e\u145f\u0007U\u0002\u0002", + "\u145f\u1460\u0007G\u0002\u0002\u1460\u1461\u0007T\u0002\u0002\u1461", + "\u02da\u0003\u0002\u0002\u0002\u1462\u1463\u0007X\u0002\u0002\u1463", + "\u1464\u0007C\u0002\u0002\u1464\u1465\u0007N\u0002\u0002\u1465\u1466", + "\u0007W\u0002\u0002\u1466\u1467\u0007G\u0002\u0002\u1467\u1468\u0007", + "U\u0002\u0002\u1468\u02dc\u0003\u0002\u0002\u0002\u1469\u146a\u0007", + "X\u0002\u0002\u146a\u146b\u0007C\u0002\u0002\u146b\u146c\u0007T\u0002", + "\u0002\u146c\u146d\u0007[\u0002\u0002\u146d\u146e\u0007K\u0002\u0002", + "\u146e\u146f\u0007P\u0002\u0002\u146f\u1470\u0007I\u0002\u0002\u1470", + "\u02de\u0003\u0002\u0002\u0002\u1471\u1472\u0007X\u0002\u0002\u1472", + "\u1473\u0007G\u0002\u0002\u1473\u1474\u0007T\u0002\u0002\u1474\u1475", + "\u0007D\u0002\u0002\u1475\u1476\u0007Q\u0002\u0002\u1476\u1477\u0007", + "U\u0002\u0002\u1477\u1478\u0007G\u0002\u0002\u1478\u1479\u0007N\u0002", + "\u0002\u1479\u147a\u0007Q\u0002\u0002\u147a\u147b\u0007I\u0002\u0002", + "\u147b\u147c\u0007I\u0002\u0002\u147c\u147d\u0007K\u0002\u0002\u147d", + "\u147e\u0007P\u0002\u0002\u147e\u147f\u0007I\u0002\u0002\u147f\u02e0", + "\u0003\u0002\u0002\u0002\u1480\u1481\u0007X\u0002\u0002\u1481\u1482", + "\u0007K\u0002\u0002\u1482\u1483\u0007G\u0002\u0002\u1483\u1484\u0007", + "Y\u0002\u0002\u1484\u02e2\u0003\u0002\u0002\u0002\u1485\u1486\u0007", + "X\u0002\u0002\u1486\u1487\u0007K\u0002\u0002\u1487\u1488\u0007U\u0002", + "\u0002\u1488\u1489\u0007K\u0002\u0002\u1489\u148a\u0007D\u0002\u0002", + "\u148a\u148b\u0007K\u0002\u0002\u148b\u148c\u0007N\u0002\u0002\u148c", + "\u148d\u0007K\u0002\u0002\u148d\u148e\u0007V\u0002\u0002\u148e\u148f", + "\u0007[\u0002\u0002\u148f\u02e4\u0003\u0002\u0002\u0002\u1490\u1491", + "\u0007Y\u0002\u0002\u1491\u1492\u0007C\u0002\u0002\u1492\u1493\u0007", + "K\u0002\u0002\u1493\u1494\u0007V\u0002\u0002\u1494\u1495\u0007H\u0002", + "\u0002\u1495\u1496\u0007Q\u0002\u0002\u1496\u1497\u0007T\u0002\u0002", + "\u1497\u02e6\u0003\u0002\u0002\u0002\u1498\u1499\u0007Y\u0002\u0002", + "\u1499\u149a\u0007J\u0002\u0002\u149a\u149b\u0007G\u0002\u0002\u149b", + "\u149c\u0007P\u0002\u0002\u149c\u02e8\u0003\u0002\u0002\u0002\u149d", + "\u149e\u0007Y\u0002\u0002\u149e\u149f\u0007J\u0002\u0002\u149f\u14a0", + "\u0007G\u0002\u0002\u14a0\u14a1\u0007T\u0002\u0002\u14a1\u14a2\u0007", + "G\u0002\u0002\u14a2\u02ea\u0003\u0002\u0002\u0002\u14a3\u14a4\u0007", + "Y\u0002\u0002\u14a4\u14a5\u0007J\u0002\u0002\u14a5\u14a6\u0007K\u0002", + "\u0002\u14a6\u14a7\u0007N\u0002\u0002\u14a7\u14a8\u0007G\u0002\u0002", + "\u14a8\u02ec\u0003\u0002\u0002\u0002\u14a9\u14aa\u0007Y\u0002\u0002", + "\u14aa\u14ab\u0007K\u0002\u0002\u14ab\u14ac\u0007P\u0002\u0002\u14ac", + "\u14ad\u0007F\u0002\u0002\u14ad\u14ae\u0007Q\u0002\u0002\u14ae\u14af", + "\u0007Y\u0002\u0002\u14af\u14b0\u0007U\u0002\u0002\u14b0\u02ee\u0003", + "\u0002\u0002\u0002\u14b1\u14b2\u0007Y\u0002\u0002\u14b2\u14b3\u0007", + "K\u0002\u0002\u14b3\u14b4\u0007V\u0002\u0002\u14b4\u14b5\u0007J\u0002", + "\u0002\u14b5\u02f0\u0003\u0002\u0002\u0002\u14b6\u14b7\u0007Y\u0002", + "\u0002\u14b7\u14b8\u0007K\u0002\u0002\u14b8\u14b9\u0007V\u0002\u0002", + "\u14b9\u14ba\u0007J\u0002\u0002\u14ba\u14bb\u0007K\u0002\u0002\u14bb", + "\u14bc\u0007P\u0002\u0002\u14bc\u02f2\u0003\u0002\u0002\u0002\u14bd", + "\u14be\u0007Y\u0002\u0002\u14be\u14bf\u0007K\u0002\u0002\u14bf\u14c0", + "\u0007V\u0002\u0002\u14c0\u14c1\u0007J\u0002\u0002\u14c1\u14c2\u0007", + "Q\u0002\u0002\u14c2\u14c3\u0007W\u0002\u0002\u14c3\u14c4\u0007V\u0002", + "\u0002\u14c4\u02f4\u0003\u0002\u0002\u0002\u14c5\u14c6\u0007Y\u0002", + "\u0002\u14c6\u14c7\u0007K\u0002\u0002\u14c7\u14c8\u0007V\u0002\u0002", + "\u14c8\u14c9\u0007P\u0002\u0002\u14c9\u14ca\u0007G\u0002\u0002\u14ca", + "\u14cb\u0007U\u0002\u0002\u14cb\u14cc\u0007U\u0002\u0002\u14cc\u02f6", + "\u0003\u0002\u0002\u0002\u14cd\u14ce\u0007Y\u0002\u0002\u14ce\u14cf", + "\u0007T\u0002\u0002\u14cf\u14d0\u0007K\u0002\u0002\u14d0\u14d1\u0007", + "V\u0002\u0002\u14d1\u14d2\u0007G\u0002\u0002\u14d2\u14d3\u0007V\u0002", + "\u0002\u14d3\u14d4\u0007G\u0002\u0002\u14d4\u14d5\u0007Z\u0002\u0002", + "\u14d5\u14d6\u0007V\u0002\u0002\u14d6\u02f8\u0003\u0002\u0002\u0002", + "\u14d7\u14d8\u0007C\u0002\u0002\u14d8\u14d9\u0007D\u0002\u0002\u14d9", + "\u14da\u0007U\u0002\u0002\u14da\u14db\u0007Q\u0002\u0002\u14db\u14dc", + "\u0007N\u0002\u0002\u14dc\u14dd\u0007W\u0002\u0002\u14dd\u14de\u0007", + "V\u0002\u0002\u14de\u14df\u0007G\u0002\u0002\u14df\u02fa\u0003\u0002", + "\u0002\u0002\u14e0\u14e1\u0007C\u0002\u0002\u14e1\u14e2\u0007E\u0002", + "\u0002\u14e2\u14e3\u0007E\u0002\u0002\u14e3\u14e4\u0007G\u0002\u0002", + "\u14e4\u14e5\u0007P\u0002\u0002\u14e5\u14e6\u0007V\u0002\u0002\u14e6", + "\u14e7\u0007a\u0002\u0002\u14e7\u14e8\u0007U\u0002\u0002\u14e8\u14e9", + "\u0007G\u0002\u0002\u14e9\u14ea\u0007P\u0002\u0002\u14ea\u14eb\u0007", + "U\u0002\u0002\u14eb\u14ec\u0007K\u0002\u0002\u14ec\u14ed\u0007V\u0002", + "\u0002\u14ed\u14ee\u0007K\u0002\u0002\u14ee\u14ef\u0007X\u0002\u0002", + "\u14ef\u14f0\u0007K\u0002\u0002\u14f0\u14f1\u0007V\u0002\u0002\u14f1", + "\u14f2\u0007[\u0002\u0002\u14f2\u02fc\u0003\u0002\u0002\u0002\u14f3", + "\u14f4\u0007C\u0002\u0002\u14f4\u14f5\u0007E\u0002\u0002\u14f5\u14f6", + "\u0007V\u0002\u0002\u14f6\u14f7\u0007K\u0002\u0002\u14f7\u14f8\u0007", + "Q\u0002\u0002\u14f8\u14f9\u0007P\u0002\u0002\u14f9\u02fe\u0003\u0002", + "\u0002\u0002\u14fa\u14fb\u0007C\u0002\u0002\u14fb\u14fc\u0007E\u0002", + "\u0002\u14fc\u14fd\u0007V\u0002\u0002\u14fd\u14fe\u0007K\u0002\u0002", + "\u14fe\u14ff\u0007X\u0002\u0002\u14ff\u1500\u0007C\u0002\u0002\u1500", + "\u1501\u0007V\u0002\u0002\u1501\u1502\u0007K\u0002\u0002\u1502\u1503", + "\u0007Q\u0002\u0002\u1503\u1504\u0007P\u0002\u0002\u1504\u0300\u0003", + "\u0002\u0002\u0002\u1505\u1506\u0007C\u0002\u0002\u1506\u1507\u0007", + "E\u0002\u0002\u1507\u1508\u0007V\u0002\u0002\u1508\u1509\u0007K\u0002", + "\u0002\u1509\u150a\u0007X\u0002\u0002\u150a\u150b\u0007G\u0002\u0002", + "\u150b\u0302\u0003\u0002\u0002\u0002\u150c\u150d\u0007C\u0002\u0002", + "\u150d\u150e\u0007F\u0002\u0002\u150e\u150f\u0007F\u0002\u0002\u150f", + "\u1510\u0007T\u0002\u0002\u1510\u1511\u0007G\u0002\u0002\u1511\u1512", + "\u0007U\u0002\u0002\u1512\u1513\u0007U\u0002\u0002\u1513\u0304\u0003", + "\u0002\u0002\u0002\u1514\u1515\u0007C\u0002\u0002\u1515\u1516\u0007", + "G\u0002\u0002\u1516\u1517\u0007U\u0002\u0002\u1517\u1518\u0007a\u0002", + "\u0002\u1518\u1519\u00073\u0002\u0002\u1519\u151a\u00074\u0002\u0002", + "\u151a\u151b\u0007:\u0002\u0002\u151b\u0306\u0003\u0002\u0002\u0002", + "\u151c\u151d\u0007C\u0002\u0002\u151d\u151e\u0007G\u0002\u0002\u151e", + "\u151f\u0007U\u0002\u0002\u151f\u1520\u0007a\u0002\u0002\u1520\u1521", + "\u00073\u0002\u0002\u1521\u1522\u0007;\u0002\u0002\u1522\u1523\u0007", + "4\u0002\u0002\u1523\u0308\u0003\u0002\u0002\u0002\u1524\u1525\u0007", + "C\u0002\u0002\u1525\u1526\u0007G\u0002\u0002\u1526\u1527\u0007U\u0002", + "\u0002\u1527\u1528\u0007a\u0002\u0002\u1528\u1529\u00074\u0002\u0002", + "\u1529\u152a\u00077\u0002\u0002\u152a\u152b\u00078\u0002\u0002\u152b", + "\u030a\u0003\u0002\u0002\u0002\u152c\u152d\u0007C\u0002\u0002\u152d", + "\u152e\u0007H\u0002\u0002\u152e\u152f\u0007H\u0002\u0002\u152f\u1530", + "\u0007K\u0002\u0002\u1530\u1531\u0007P\u0002\u0002\u1531\u1532\u0007", + "K\u0002\u0002\u1532\u1533\u0007V\u0002\u0002\u1533\u1534\u0007[\u0002", + "\u0002\u1534\u030c\u0003\u0002\u0002\u0002\u1535\u1536\u0007C\u0002", + "\u0002\u1536\u1537\u0007H\u0002\u0002\u1537\u1538\u0007V\u0002\u0002", + "\u1538\u1539\u0007G\u0002\u0002\u1539\u153a\u0007T\u0002\u0002\u153a", + "\u030e\u0003\u0002\u0002\u0002\u153b\u153c\u0007C\u0002\u0002\u153c", + "\u153d\u0007I\u0002\u0002\u153d\u153e\u0007I\u0002\u0002\u153e\u153f", + "\u0007T\u0002\u0002\u153f\u1540\u0007G\u0002\u0002\u1540\u1541\u0007", + "I\u0002\u0002\u1541\u1542\u0007C\u0002\u0002\u1542\u1543\u0007V\u0002", + "\u0002\u1543\u1544\u0007G\u0002\u0002\u1544\u0310\u0003\u0002\u0002", + "\u0002\u1545\u1546\u0007C\u0002\u0002\u1546\u1547\u0007N\u0002\u0002", + "\u1547\u1548\u0007I\u0002\u0002\u1548\u1549\u0007Q\u0002\u0002\u1549", + "\u154a\u0007T\u0002\u0002\u154a\u154b\u0007K\u0002\u0002\u154b\u154c", + "\u0007V\u0002\u0002\u154c\u154d\u0007J\u0002\u0002\u154d\u154e\u0007", + "O\u0002\u0002\u154e\u0312\u0003\u0002\u0002\u0002\u154f\u1550\u0007", + "C\u0002\u0002\u1550\u1551\u0007N\u0002\u0002\u1551\u1552\u0007N\u0002", + "\u0002\u1552\u1553\u0007Q\u0002\u0002\u1553\u1554\u0007Y\u0002\u0002", + "\u1554\u1555\u0007a\u0002\u0002\u1555\u1556\u0007G\u0002\u0002\u1556", + "\u1557\u0007P\u0002\u0002\u1557\u1558\u0007E\u0002\u0002\u1558\u1559", + "\u0007T\u0002\u0002\u1559\u155a\u0007[\u0002\u0002\u155a\u155b\u0007", + "R\u0002\u0002\u155b\u155c\u0007V\u0002\u0002\u155c\u155d\u0007G\u0002", + "\u0002\u155d\u155e\u0007F\u0002\u0002\u155e\u155f\u0007a\u0002\u0002", + "\u155f\u1560\u0007X\u0002\u0002\u1560\u1561\u0007C\u0002\u0002\u1561", + "\u1562\u0007N\u0002\u0002\u1562\u1563\u0007W\u0002\u0002\u1563\u1564", + "\u0007G\u0002\u0002\u1564\u1565\u0007a\u0002\u0002\u1565\u1566\u0007", + "O\u0002\u0002\u1566\u1567\u0007Q\u0002\u0002\u1567\u1568\u0007F\u0002", + "\u0002\u1568\u1569\u0007K\u0002\u0002\u1569\u156a\u0007H\u0002\u0002", + "\u156a\u156b\u0007K\u0002\u0002\u156b\u156c\u0007E\u0002\u0002\u156c", + "\u156d\u0007C\u0002\u0002\u156d\u156e\u0007V\u0002\u0002\u156e\u156f", + "\u0007K\u0002\u0002\u156f\u1570\u0007Q\u0002\u0002\u1570\u1571\u0007", + "P\u0002\u0002\u1571\u1572\u0007U\u0002\u0002\u1572\u0314\u0003\u0002", + "\u0002\u0002\u1573\u1574\u0007C\u0002\u0002\u1574\u1575\u0007N\u0002", + "\u0002\u1575\u1576\u0007N\u0002\u0002\u1576\u1577\u0007Q\u0002\u0002", + "\u1577\u1578\u0007Y\u0002\u0002\u1578\u1579\u0007a\u0002\u0002\u1579", + "\u157a\u0007U\u0002\u0002\u157a\u157b\u0007P\u0002\u0002\u157b\u157c", + "\u0007C\u0002\u0002\u157c\u157d\u0007R\u0002\u0002\u157d\u157e\u0007", + "U\u0002\u0002\u157e\u157f\u0007J\u0002\u0002\u157f\u1580\u0007Q\u0002", + "\u0002\u1580\u1581\u0007V\u0002\u0002\u1581\u1582\u0007a\u0002\u0002", + "\u1582\u1583\u0007K\u0002\u0002\u1583\u1584\u0007U\u0002\u0002\u1584", + "\u1585\u0007Q\u0002\u0002\u1585\u1586\u0007N\u0002\u0002\u1586\u1587", + "\u0007C\u0002\u0002\u1587\u1588\u0007V\u0002\u0002\u1588\u1589\u0007", + "K\u0002\u0002\u1589\u158a\u0007Q\u0002\u0002\u158a\u158b\u0007P\u0002", + "\u0002\u158b\u0316\u0003\u0002\u0002\u0002\u158c\u158d\u0007C\u0002", + "\u0002\u158d\u158e\u0007N\u0002\u0002\u158e\u158f\u0007N\u0002\u0002", + "\u158f\u1590\u0007Q\u0002\u0002\u1590\u1591\u0007Y\u0002\u0002\u1591", + "\u1592\u0007G\u0002\u0002\u1592\u1593\u0007F\u0002\u0002\u1593\u0318", + "\u0003\u0002\u0002\u0002\u1594\u1595\u0007C\u0002\u0002\u1595\u1596", + "\u0007P\u0002\u0002\u1596\u1597\u0007U\u0002\u0002\u1597\u1598\u0007", + "K\u0002\u0002\u1598\u1599\u0007a\u0002\u0002\u1599\u159a\u0007P\u0002", + "\u0002\u159a\u159b\u0007W\u0002\u0002\u159b\u159c\u0007N\u0002\u0002", + "\u159c\u159d\u0007N\u0002\u0002\u159d\u159e\u0007a\u0002\u0002\u159e", + "\u159f\u0007F\u0002\u0002\u159f\u15a0\u0007G\u0002\u0002\u15a0\u15a1", + "\u0007H\u0002\u0002\u15a1\u15a2\u0007C\u0002\u0002\u15a2\u15a3\u0007", + "W\u0002\u0002\u15a3\u15a4\u0007N\u0002\u0002\u15a4\u15a5\u0007V\u0002", + "\u0002\u15a5\u031a\u0003\u0002\u0002\u0002\u15a6\u15a7\u0007C\u0002", + "\u0002\u15a7\u15a8\u0007P\u0002\u0002\u15a8\u15a9\u0007U\u0002\u0002", + "\u15a9\u15aa\u0007K\u0002\u0002\u15aa\u15ab\u0007a\u0002\u0002\u15ab", + "\u15ac\u0007P\u0002\u0002\u15ac\u15ad\u0007W\u0002\u0002\u15ad\u15ae", + "\u0007N\u0002\u0002\u15ae\u15af\u0007N\u0002\u0002\u15af\u15b0\u0007", + "U\u0002\u0002\u15b0\u031c\u0003\u0002\u0002\u0002\u15b1\u15b2\u0007", + "C\u0002\u0002\u15b2\u15b3\u0007P\u0002\u0002\u15b3\u15b4\u0007U\u0002", + "\u0002\u15b4\u15b5\u0007K\u0002\u0002\u15b5\u15b6\u0007a\u0002\u0002", + "\u15b6\u15b7\u0007R\u0002\u0002\u15b7\u15b8\u0007C\u0002\u0002\u15b8", + "\u15b9\u0007F\u0002\u0002\u15b9\u15ba\u0007F\u0002\u0002\u15ba\u15bb", + "\u0007K\u0002\u0002\u15bb\u15bc\u0007P\u0002\u0002\u15bc\u15bd\u0007", + "I\u0002\u0002\u15bd\u031e\u0003\u0002\u0002\u0002\u15be\u15bf\u0007", + "C\u0002\u0002\u15bf\u15c0\u0007P\u0002\u0002\u15c0\u15c1\u0007U\u0002", + "\u0002\u15c1\u15c2\u0007K\u0002\u0002\u15c2\u15c3\u0007a\u0002\u0002", + "\u15c3\u15c4\u0007Y\u0002\u0002\u15c4\u15c5\u0007C\u0002\u0002\u15c5", + "\u15c6\u0007T\u0002\u0002\u15c6\u15c7\u0007P\u0002\u0002\u15c7\u15c8", + "\u0007K\u0002\u0002\u15c8\u15c9\u0007P\u0002\u0002\u15c9\u15ca\u0007", + "I\u0002\u0002\u15ca\u15cb\u0007U\u0002\u0002\u15cb\u0320\u0003\u0002", + "\u0002\u0002\u15cc\u15cd\u0007C\u0002\u0002\u15cd\u15ce\u0007R\u0002", + "\u0002\u15ce\u15cf\u0007R\u0002\u0002\u15cf\u15d0\u0007N\u0002\u0002", + "\u15d0\u15d1\u0007K\u0002\u0002\u15d1\u15d2\u0007E\u0002\u0002\u15d2", + "\u15d3\u0007C\u0002\u0002\u15d3\u15d4\u0007V\u0002\u0002\u15d4\u15d5", + "\u0007K\u0002\u0002\u15d5\u15d6\u0007Q\u0002\u0002\u15d6\u15d7\u0007", + "P\u0002\u0002\u15d7\u15d8\u0007a\u0002\u0002\u15d8\u15d9\u0007N\u0002", + "\u0002\u15d9\u15da\u0007Q\u0002\u0002\u15da\u15db\u0007I\u0002\u0002", + "\u15db\u0322\u0003\u0002\u0002\u0002\u15dc\u15dd\u0007C\u0002\u0002", + "\u15dd\u15de\u0007R\u0002\u0002\u15de\u15df\u0007R\u0002\u0002\u15df", + "\u15e0\u0007N\u0002\u0002\u15e0\u15e1\u0007[\u0002\u0002\u15e1\u0324", + "\u0003\u0002\u0002\u0002\u15e2\u15e3\u0007C\u0002\u0002\u15e3\u15e4", + "\u0007T\u0002\u0002\u15e4\u15e5\u0007K\u0002\u0002\u15e5\u15e6\u0007", + "V\u0002\u0002\u15e6\u15e7\u0007J\u0002\u0002\u15e7\u15e8\u0007C\u0002", + "\u0002\u15e8\u15e9\u0007D\u0002\u0002\u15e9\u15ea\u0007Q\u0002\u0002", + "\u15ea\u15eb\u0007T\u0002\u0002\u15eb\u15ec\u0007V\u0002\u0002\u15ec", + "\u0326\u0003\u0002\u0002\u0002\u15ed\u15ee\u0007C\u0002\u0002\u15ee", + "\u15ef\u0007U\u0002\u0002\u15ef\u15f0\u0007U\u0002\u0002\u15f0\u15f1", + "\u0007G\u0002\u0002\u15f1\u15f2\u0007O\u0002\u0002\u15f2\u15f3\u0007", + "D\u0002\u0002\u15f3\u15f4\u0007N\u0002\u0002\u15f4\u15f5\u0007[\u0002", + "\u0002\u15f5\u0328\u0003\u0002\u0002\u0002\u15f6\u15f7\u0007C\u0002", + "\u0002\u15f7\u15f8\u0007W\u0002\u0002\u15f8\u15f9\u0007F\u0002\u0002", + "\u15f9\u15fa\u0007K\u0002\u0002\u15fa\u15fb\u0007V\u0002\u0002\u15fb", + "\u032a\u0003\u0002\u0002\u0002\u15fc\u15fd\u0007C\u0002\u0002\u15fd", + "\u15fe\u0007W\u0002\u0002\u15fe\u15ff\u0007F\u0002\u0002\u15ff\u1600", + "\u0007K\u0002\u0002\u1600\u1601\u0007V\u0002\u0002\u1601\u1602\u0007", + "a\u0002\u0002\u1602\u1603\u0007I\u0002\u0002\u1603\u1604\u0007W\u0002", + "\u0002\u1604\u1605\u0007K\u0002\u0002\u1605\u1606\u0007F\u0002\u0002", + "\u1606\u032c\u0003\u0002\u0002\u0002\u1607\u1608\u0007C\u0002\u0002", + "\u1608\u1609\u0007W\u0002\u0002\u1609\u160a\u0007V\u0002\u0002\u160a", + "\u160b\u0007Q\u0002\u0002\u160b\u032e\u0003\u0002\u0002\u0002\u160c", + "\u160d\u0007C\u0002\u0002\u160d\u160e\u0007W\u0002\u0002\u160e\u160f", + "\u0007V\u0002\u0002\u160f\u1610\u0007Q\u0002\u0002\u1610\u1611\u0007", + "a\u0002\u0002\u1611\u1612\u0007E\u0002\u0002\u1612\u1613\u0007N\u0002", + "\u0002\u1613\u1614\u0007G\u0002\u0002\u1614\u1615\u0007C\u0002\u0002", + "\u1615\u1616\u0007P\u0002\u0002\u1616\u1617\u0007W\u0002\u0002\u1617", + "\u1618\u0007R\u0002\u0002\u1618\u0330\u0003\u0002\u0002\u0002\u1619", + "\u161a\u0007C\u0002\u0002\u161a\u161b\u0007W\u0002\u0002\u161b\u161c", + "\u0007V\u0002\u0002\u161c\u161d\u0007Q\u0002\u0002\u161d\u161e\u0007", + "a\u0002\u0002\u161e\u161f\u0007E\u0002\u0002\u161f\u1620\u0007N\u0002", + "\u0002\u1620\u1621\u0007Q\u0002\u0002\u1621\u1622\u0007U\u0002\u0002", + "\u1622\u1623\u0007G\u0002\u0002\u1623\u0332\u0003\u0002\u0002\u0002", + "\u1624\u1625\u0007C\u0002\u0002\u1625\u1626\u0007W\u0002\u0002\u1626", + "\u1627\u0007V\u0002\u0002\u1627\u1628\u0007Q\u0002\u0002\u1628\u1629", + "\u0007a\u0002\u0002\u1629\u162a\u0007E\u0002\u0002\u162a\u162b\u0007", + "T\u0002\u0002\u162b\u162c\u0007G\u0002\u0002\u162c\u162d\u0007C\u0002", + "\u0002\u162d\u162e\u0007V\u0002\u0002\u162e\u162f\u0007G\u0002\u0002", + "\u162f\u1630\u0007a\u0002\u0002\u1630\u1631\u0007U\u0002\u0002\u1631", + "\u1632\u0007V\u0002\u0002\u1632\u1633\u0007C\u0002\u0002\u1633\u1634", + "\u0007V\u0002\u0002\u1634\u1635\u0007K\u0002\u0002\u1635\u1636\u0007", + "U\u0002\u0002\u1636\u1637\u0007V\u0002\u0002\u1637\u1638\u0007K\u0002", + "\u0002\u1638\u1639\u0007E\u0002\u0002\u1639\u163a\u0007U\u0002\u0002", + "\u163a\u0334\u0003\u0002\u0002\u0002\u163b\u163c\u0007C\u0002\u0002", + "\u163c\u163d\u0007W\u0002\u0002\u163d\u163e\u0007V\u0002\u0002\u163e", + "\u163f\u0007Q\u0002\u0002\u163f\u1640\u0007a\u0002\u0002\u1640\u1641", + "\u0007U\u0002\u0002\u1641\u1642\u0007J\u0002\u0002\u1642\u1643\u0007", + "T\u0002\u0002\u1643\u1644\u0007K\u0002\u0002\u1644\u1645\u0007P\u0002", + "\u0002\u1645\u1646\u0007M\u0002\u0002\u1646\u0336\u0003\u0002\u0002", + "\u0002\u1647\u1648\u0007C\u0002\u0002\u1648\u1649\u0007W\u0002\u0002", + "\u1649\u164a\u0007V\u0002\u0002\u164a\u164b\u0007Q\u0002\u0002\u164b", + "\u164c\u0007a\u0002\u0002\u164c\u164d\u0007W\u0002\u0002\u164d\u164e", + "\u0007R\u0002\u0002\u164e\u164f\u0007F\u0002\u0002\u164f\u1650\u0007", + "C\u0002\u0002\u1650\u1651\u0007V\u0002\u0002\u1651\u1652\u0007G\u0002", + "\u0002\u1652\u1653\u0007a\u0002\u0002\u1653\u1654\u0007U\u0002\u0002", + "\u1654\u1655\u0007V\u0002\u0002\u1655\u1656\u0007C\u0002\u0002\u1656", + "\u1657\u0007V\u0002\u0002\u1657\u1658\u0007K\u0002\u0002\u1658\u1659", + "\u0007U\u0002\u0002\u1659\u165a\u0007V\u0002\u0002\u165a\u165b\u0007", + "K\u0002\u0002\u165b\u165c\u0007E\u0002\u0002\u165c\u165d\u0007U\u0002", + "\u0002\u165d\u0338\u0003\u0002\u0002\u0002\u165e\u165f\u0007C\u0002", + "\u0002\u165f\u1660\u0007W\u0002\u0002\u1660\u1661\u0007V\u0002\u0002", + "\u1661\u1662\u0007Q\u0002\u0002\u1662\u1663\u0007a\u0002\u0002\u1663", + "\u1664\u0007W\u0002\u0002\u1664\u1665\u0007R\u0002\u0002\u1665\u1666", + "\u0007F\u0002\u0002\u1666\u1667\u0007C\u0002\u0002\u1667\u1668\u0007", + "V\u0002\u0002\u1668\u1669\u0007G\u0002\u0002\u1669\u166a\u0007a\u0002", + "\u0002\u166a\u166b\u0007U\u0002\u0002\u166b\u166c\u0007V\u0002\u0002", + "\u166c\u166d\u0007C\u0002\u0002\u166d\u166e\u0007V\u0002\u0002\u166e", + "\u166f\u0007K\u0002\u0002\u166f\u1670\u0007U\u0002\u0002\u1670\u1671", + "\u0007V\u0002\u0002\u1671\u1672\u0007K\u0002\u0002\u1672\u1673\u0007", + "E\u0002\u0002\u1673\u1674\u0007U\u0002\u0002\u1674\u1675\u0007a\u0002", + "\u0002\u1675\u1676\u0007C\u0002\u0002\u1676\u1677\u0007U\u0002\u0002", + "\u1677\u1678\u0007[\u0002\u0002\u1678\u1679\u0007P\u0002\u0002\u1679", + "\u167a\u0007E\u0002\u0002\u167a\u033a\u0003\u0002\u0002\u0002\u167b", + "\u167c\u0007C\u0002\u0002\u167c\u167d\u0007X\u0002\u0002\u167d\u167e", + "\u0007C\u0002\u0002\u167e\u167f\u0007K\u0002\u0002\u167f\u1680\u0007", + "N\u0002\u0002\u1680\u1681\u0007C\u0002\u0002\u1681\u1682\u0007D\u0002", + "\u0002\u1682\u1683\u0007K\u0002\u0002\u1683\u1684\u0007N\u0002\u0002", + "\u1684\u1685\u0007K\u0002\u0002\u1685\u1686\u0007V\u0002\u0002\u1686", + "\u1687\u0007[\u0002\u0002\u1687\u033c\u0003\u0002\u0002\u0002\u1688", + "\u1689\u0007C\u0002\u0002\u1689\u168a\u0007X\u0002\u0002\u168a\u168b", + "\u0007I\u0002\u0002\u168b\u033e\u0003\u0002\u0002\u0002\u168c\u168d", + "\u0007D\u0002\u0002\u168d\u168e\u0007C\u0002\u0002\u168e\u168f\u0007", + "E\u0002\u0002\u168f\u1690\u0007M\u0002\u0002\u1690\u1691\u0007W\u0002", + "\u0002\u1691\u1692\u0007R\u0002\u0002\u1692\u1693\u0007a\u0002\u0002", + "\u1693\u1694\u0007R\u0002\u0002\u1694\u1695\u0007T\u0002\u0002\u1695", + "\u1696\u0007K\u0002\u0002\u1696\u1697\u0007Q\u0002\u0002\u1697\u1698", + "\u0007T\u0002\u0002\u1698\u1699\u0007K\u0002\u0002\u1699\u169a\u0007", + "V\u0002\u0002\u169a\u169b\u0007[\u0002\u0002\u169b\u0340\u0003\u0002", + "\u0002\u0002\u169c\u169d\u0007D\u0002\u0002\u169d\u169e\u0007G\u0002", + "\u0002\u169e\u169f\u0007I\u0002\u0002\u169f\u16a0\u0007K\u0002\u0002", + "\u16a0\u16a1\u0007P\u0002\u0002\u16a1\u16a2\u0007a\u0002\u0002\u16a2", + "\u16a3\u0007F\u0002\u0002\u16a3\u16a4\u0007K\u0002\u0002\u16a4\u16a5", + "\u0007C\u0002\u0002\u16a5\u16a6\u0007N\u0002\u0002\u16a6\u16a7\u0007", + "Q\u0002\u0002\u16a7\u16a8\u0007I\u0002\u0002\u16a8\u0342\u0003\u0002", + "\u0002\u0002\u16a9\u16aa\u0007D\u0002\u0002\u16aa\u16ab\u0007K\u0002", + "\u0002\u16ab\u16ac\u0007I\u0002\u0002\u16ac\u16ad\u0007K\u0002\u0002", + "\u16ad\u16ae\u0007P\u0002\u0002\u16ae\u16af\u0007V\u0002\u0002\u16af", + "\u0344\u0003\u0002\u0002\u0002\u16b0\u16b1\u0007D\u0002\u0002\u16b1", + "\u16b2\u0007K\u0002\u0002\u16b2\u16b3\u0007P\u0002\u0002\u16b3\u16b4", + "\u0007C\u0002\u0002\u16b4\u16b5\u0007T\u0002\u0002\u16b5\u16b6\u0007", + "[\u0002\u0002\u16b6\u16b7\u0007\"\u0002\u0002\u16b7\u16b8\u0007D\u0002", + "\u0002\u16b8\u16b9\u0007C\u0002\u0002\u16b9\u16ba\u0007U\u0002\u0002", + "\u16ba\u16bb\u0007G\u0002\u0002\u16bb\u16bc\u00078\u0002\u0002\u16bc", + "\u16bd\u00076\u0002\u0002\u16bd\u0346\u0003\u0002\u0002\u0002\u16be", + "\u16bf\u0007D\u0002\u0002\u16bf\u16c0\u0007K\u0002\u0002\u16c0\u16c1", + "\u0007P\u0002\u0002\u16c1\u16c2\u0007C\u0002\u0002\u16c2\u16c3\u0007", + "T\u0002\u0002\u16c3\u16c4\u0007[\u0002\u0002\u16c4\u16c5\u0007a\u0002", + "\u0002\u16c5\u16c6\u0007E\u0002\u0002\u16c6\u16c7\u0007J\u0002\u0002", + "\u16c7\u16c8\u0007G\u0002\u0002\u16c8\u16c9\u0007E\u0002\u0002\u16c9", + "\u16ca\u0007M\u0002\u0002\u16ca\u16cb\u0007U\u0002\u0002\u16cb\u16cc", + "\u0007W\u0002\u0002\u16cc\u16cd\u0007O\u0002\u0002\u16cd\u0348\u0003", + "\u0002\u0002\u0002\u16ce\u16cf\u0007D\u0002\u0002\u16cf\u16d0\u0007", + "K\u0002\u0002\u16d0\u16d1\u0007P\u0002\u0002\u16d1\u16d2\u0007F\u0002", + "\u0002\u16d2\u16d3\u0007K\u0002\u0002\u16d3\u16d4\u0007P\u0002\u0002", + "\u16d4\u16d5\u0007I\u0002\u0002\u16d5\u034a\u0003\u0002\u0002\u0002", + "\u16d6\u16d7\u0007D\u0002\u0002\u16d7\u16d8\u0007N\u0002\u0002\u16d8", + "\u16d9\u0007Q\u0002\u0002\u16d9\u16da\u0007D\u0002\u0002\u16da\u16db", + "\u0007a\u0002\u0002\u16db\u16dc\u0007U\u0002\u0002\u16dc\u16dd\u0007", + "V\u0002\u0002\u16dd\u16de\u0007Q\u0002\u0002\u16de\u16df\u0007T\u0002", + "\u0002\u16df\u16e0\u0007C\u0002\u0002\u16e0\u16e1\u0007I\u0002\u0002", + "\u16e1\u16e2\u0007G\u0002\u0002\u16e2\u034c\u0003\u0002\u0002\u0002", + "\u16e3\u16e4\u0007D\u0002\u0002\u16e4\u16e5\u0007T\u0002\u0002\u16e5", + "\u16e6\u0007Q\u0002\u0002\u16e6\u16e7\u0007M\u0002\u0002\u16e7\u16e8", + "\u0007G\u0002\u0002\u16e8\u16e9\u0007T\u0002\u0002\u16e9\u034e\u0003", + "\u0002\u0002\u0002\u16ea\u16eb\u0007D\u0002\u0002\u16eb\u16ec\u0007", + "T\u0002\u0002\u16ec\u16ed\u0007Q\u0002\u0002\u16ed\u16ee\u0007M\u0002", + "\u0002\u16ee\u16ef\u0007G\u0002\u0002\u16ef\u16f0\u0007T\u0002\u0002", + "\u16f0\u16f1\u0007a\u0002\u0002\u16f1\u16f2\u0007K\u0002\u0002\u16f2", + "\u16f3\u0007P\u0002\u0002\u16f3\u16f4\u0007U\u0002\u0002\u16f4\u16f5", + "\u0007V\u0002\u0002\u16f5\u16f6\u0007C\u0002\u0002\u16f6\u16f7\u0007", + "P\u0002\u0002\u16f7\u16f8\u0007E\u0002\u0002\u16f8\u16f9\u0007G\u0002", + "\u0002\u16f9\u0350\u0003\u0002\u0002\u0002\u16fa\u16fb\u0007D\u0002", + "\u0002\u16fb\u16fc\u0007W\u0002\u0002\u16fc\u16fd\u0007N\u0002\u0002", + "\u16fd\u16fe\u0007M\u0002\u0002\u16fe\u16ff\u0007a\u0002\u0002\u16ff", + "\u1700\u0007N\u0002\u0002\u1700\u1701\u0007Q\u0002\u0002\u1701\u1702", + "\u0007I\u0002\u0002\u1702\u1703\u0007I\u0002\u0002\u1703\u1704\u0007", + "G\u0002\u0002\u1704\u1705\u0007F\u0002\u0002\u1705\u0352\u0003\u0002", + "\u0002\u0002\u1706\u1707\u0007E\u0002\u0002\u1707\u1708\u0007C\u0002", + "\u0002\u1708\u1709\u0007N\u0002\u0002\u1709\u170a\u0007N\u0002\u0002", + "\u170a\u170b\u0007G\u0002\u0002\u170b\u170c\u0007T\u0002\u0002\u170c", + "\u0354\u0003\u0002\u0002\u0002\u170d\u170e\u0007E\u0002\u0002\u170e", + "\u170f\u0007C\u0002\u0002\u170f\u1710\u0007R\u0002\u0002\u1710\u1711", + "\u0007a\u0002\u0002\u1711\u1712\u0007E\u0002\u0002\u1712\u1713\u0007", + "R\u0002\u0002\u1713\u1714\u0007W\u0002\u0002\u1714\u1715\u0007a\u0002", + "\u0002\u1715\u1716\u0007R\u0002\u0002\u1716\u1717\u0007G\u0002\u0002", + "\u1717\u1718\u0007T\u0002\u0002\u1718\u1719\u0007E\u0002\u0002\u1719", + "\u171a\u0007G\u0002\u0002\u171a\u171b\u0007P\u0002\u0002\u171b\u171c", + "\u0007V\u0002\u0002\u171c\u0356\u0003\u0002\u0002\u0002\u171d\u171e", + "\u0007V\u0002\u0002\u171e\u171f\u0007T\u0002\u0002\u171f\u1720\u0007", + "[\u0002\u0002\u1720\u1722\u0007a\u0002\u0002\u1721\u171d\u0003\u0002", + "\u0002\u0002\u1721\u1722\u0003\u0002\u0002\u0002\u1722\u1723\u0003\u0002", + "\u0002\u0002\u1723\u1724\u0007E\u0002\u0002\u1724\u1725\u0007C\u0002", + "\u0002\u1725\u1726\u0007U\u0002\u0002\u1726\u1727\u0007V\u0002\u0002", + "\u1727\u0358\u0003\u0002\u0002\u0002\u1728\u1729\u0007E\u0002\u0002", + "\u1729\u172a\u0007C\u0002\u0002\u172a\u172b\u0007V\u0002\u0002\u172b", + "\u172c\u0007C\u0002\u0002\u172c\u172d\u0007N\u0002\u0002\u172d\u172e", + "\u0007Q\u0002\u0002\u172e\u172f\u0007I\u0002\u0002\u172f\u035a\u0003", + "\u0002\u0002\u0002\u1730\u1731\u0007E\u0002\u0002\u1731\u1732\u0007", + "C\u0002\u0002\u1732\u1733\u0007V\u0002\u0002\u1733\u1734\u0007E\u0002", + "\u0002\u1734\u1735\u0007J\u0002\u0002\u1735\u035c\u0003\u0002\u0002", + "\u0002\u1736\u1737\u0007E\u0002\u0002\u1737\u1738\u0007J\u0002\u0002", + "\u1738\u1739\u0007C\u0002\u0002\u1739\u173a\u0007P\u0002\u0002\u173a", + "\u173b\u0007I\u0002\u0002\u173b\u173c\u0007G\u0002\u0002\u173c\u173d", + "\u0007a\u0002\u0002\u173d\u173e\u0007T\u0002\u0002\u173e\u173f\u0007", + "G\u0002\u0002\u173f\u1740\u0007V\u0002\u0002\u1740\u1741\u0007G\u0002", + "\u0002\u1741\u1742\u0007P\u0002\u0002\u1742\u1743\u0007V\u0002\u0002", + "\u1743\u1744\u0007K\u0002\u0002\u1744\u1745\u0007Q\u0002\u0002\u1745", + "\u1746\u0007P\u0002\u0002\u1746\u035e\u0003\u0002\u0002\u0002\u1747", + "\u1748\u0007E\u0002\u0002\u1748\u1749\u0007J\u0002\u0002\u1749\u174a", + "\u0007C\u0002\u0002\u174a\u174b\u0007P\u0002\u0002\u174b\u174c\u0007", + "I\u0002\u0002\u174c\u174d\u0007G\u0002\u0002\u174d\u174e\u0007a\u0002", + "\u0002\u174e\u174f\u0007V\u0002\u0002\u174f\u1750\u0007T\u0002\u0002", + "\u1750\u1751\u0007C\u0002\u0002\u1751\u1752\u0007E\u0002\u0002\u1752", + "\u1753\u0007M\u0002\u0002\u1753\u1754\u0007K\u0002\u0002\u1754\u1755", + "\u0007P\u0002\u0002\u1755\u1756\u0007I\u0002\u0002\u1756\u0360\u0003", + "\u0002\u0002\u0002\u1757\u1758\u0007E\u0002\u0002\u1758\u1759\u0007", + "J\u0002\u0002\u1759\u175a\u0007G\u0002\u0002\u175a\u175b\u0007E\u0002", + "\u0002\u175b\u175c\u0007M\u0002\u0002\u175c\u175d\u0007U\u0002\u0002", + "\u175d\u175e\u0007W\u0002\u0002\u175e\u175f\u0007O\u0002\u0002\u175f", + "\u0362\u0003\u0002\u0002\u0002\u1760\u1761\u0007E\u0002\u0002\u1761", + "\u1762\u0007J\u0002\u0002\u1762\u1763\u0007G\u0002\u0002\u1763\u1764", + "\u0007E\u0002\u0002\u1764\u1765\u0007M\u0002\u0002\u1765\u1766\u0007", + "U\u0002\u0002\u1766\u1767\u0007W\u0002\u0002\u1767\u1768\u0007O\u0002", + "\u0002\u1768\u1769\u0007a\u0002\u0002\u1769\u176a\u0007C\u0002\u0002", + "\u176a\u176b\u0007I\u0002\u0002\u176b\u176c\u0007I\u0002\u0002\u176c", + "\u0364\u0003\u0002\u0002\u0002\u176d\u176e\u0007E\u0002\u0002\u176e", + "\u176f\u0007N\u0002\u0002\u176f\u1770\u0007G\u0002\u0002\u1770\u1771", + "\u0007C\u0002\u0002\u1771\u1772\u0007P\u0002\u0002\u1772\u1773\u0007", + "W\u0002\u0002\u1773\u1774\u0007R\u0002\u0002\u1774\u0366\u0003\u0002", + "\u0002\u0002\u1775\u1776\u0007E\u0002\u0002\u1776\u1777\u0007Q\u0002", + "\u0002\u1777\u1778\u0007N\u0002\u0002\u1778\u1779\u0007N\u0002\u0002", + "\u1779\u177a\u0007G\u0002\u0002\u177a\u177b\u0007E\u0002\u0002\u177b", + "\u177c\u0007V\u0002\u0002\u177c\u177d\u0007K\u0002\u0002\u177d\u177e", + "\u0007Q\u0002\u0002\u177e\u177f\u0007P\u0002\u0002\u177f\u0368\u0003", + "\u0002\u0002\u0002\u1780\u1781\u0007E\u0002\u0002\u1781\u1782\u0007", + "Q\u0002\u0002\u1782\u1783\u0007N\u0002\u0002\u1783\u1784\u0007W\u0002", + "\u0002\u1784\u1785\u0007O\u0002\u0002\u1785\u1786\u0007P\u0002\u0002", + "\u1786\u1787\u0007a\u0002\u0002\u1787\u1788\u0007O\u0002\u0002\u1788", + "\u1789\u0007C\u0002\u0002\u1789\u178a\u0007U\u0002\u0002\u178a\u178b", + "\u0007V\u0002\u0002\u178b\u178c\u0007G\u0002\u0002\u178c\u178d\u0007", + "T\u0002\u0002\u178d\u178e\u0007a\u0002\u0002\u178e\u178f\u0007M\u0002", + "\u0002\u178f\u1790\u0007G\u0002\u0002\u1790\u1791\u0007[\u0002\u0002", + "\u1791\u036a\u0003\u0002\u0002\u0002\u1792\u1793\u0007E\u0002\u0002", + "\u1793\u1794\u0007Q\u0002\u0002\u1794\u1795\u0007O\u0002\u0002\u1795", + "\u1796\u0007O\u0002\u0002\u1796\u1797\u0007K\u0002\u0002\u1797\u1798", + "\u0007V\u0002\u0002\u1798\u1799\u0007V\u0002\u0002\u1799\u179a\u0007", + "G\u0002\u0002\u179a\u179b\u0007F\u0002\u0002\u179b\u036c\u0003\u0002", + "\u0002\u0002\u179c\u179d\u0007E\u0002\u0002\u179d\u179e\u0007Q\u0002", + "\u0002\u179e\u179f\u0007O\u0002\u0002\u179f\u17a0\u0007R\u0002\u0002", + "\u17a0\u17a1\u0007C\u0002\u0002\u17a1\u17a2\u0007V\u0002\u0002\u17a2", + "\u17a3\u0007K\u0002\u0002\u17a3\u17a4\u0007D\u0002\u0002\u17a4\u17a5", + "\u0007K\u0002\u0002\u17a5\u17a6\u0007N\u0002\u0002\u17a6\u17a7\u0007", + "K\u0002\u0002\u17a7\u17a8\u0007V\u0002\u0002\u17a8\u17a9\u0007[\u0002", + "\u0002\u17a9\u17aa\u0007a\u0002\u0002\u17aa\u17ab\u0007N\u0002\u0002", + "\u17ab\u17ac\u0007G\u0002\u0002\u17ac\u17ad\u0007X\u0002\u0002\u17ad", + "\u17ae\u0007G\u0002\u0002\u17ae\u17af\u0007N\u0002\u0002\u17af\u036e", + "\u0003\u0002\u0002\u0002\u17b0\u17b1\u0007E\u0002\u0002\u17b1\u17b2", + "\u0007Q\u0002\u0002\u17b2\u17b3\u0007P\u0002\u0002\u17b3\u17b4\u0007", + "E\u0002\u0002\u17b4\u17b5\u0007C\u0002\u0002\u17b5\u17b6\u0007V\u0002", + "\u0002\u17b6\u0370\u0003\u0002\u0002\u0002\u17b7\u17b8\u0007E\u0002", + "\u0002\u17b8\u17b9\u0007Q\u0002\u0002\u17b9\u17ba\u0007P\u0002\u0002", + "\u17ba\u17bb\u0007E\u0002\u0002\u17bb\u17bc\u0007C\u0002\u0002\u17bc", + "\u17bd\u0007V\u0002\u0002\u17bd\u17be\u0007a\u0002\u0002\u17be\u17bf", + "\u0007P\u0002\u0002\u17bf\u17c0\u0007W\u0002\u0002\u17c0\u17c1\u0007", + "N\u0002\u0002\u17c1\u17c2\u0007N\u0002\u0002\u17c2\u17c3\u0007a\u0002", + "\u0002\u17c3\u17c4\u0007[\u0002\u0002\u17c4\u17c5\u0007K\u0002\u0002", + "\u17c5\u17c6\u0007G\u0002\u0002\u17c6\u17c7\u0007N\u0002\u0002\u17c7", + "\u17c8\u0007F\u0002\u0002\u17c8\u17c9\u0007U\u0002\u0002\u17c9\u17ca", + "\u0007a\u0002\u0002\u17ca\u17cb\u0007P\u0002\u0002\u17cb\u17cc\u0007", + "W\u0002\u0002\u17cc\u17cd\u0007N\u0002\u0002\u17cd\u17ce\u0007N\u0002", + "\u0002\u17ce\u0372\u0003\u0002\u0002\u0002\u17cf\u17d0\u0007E\u0002", + "\u0002\u17d0\u17d1\u0007Q\u0002\u0002\u17d1\u17d2\u0007P\u0002\u0002", + "\u17d2\u17d3\u0007V\u0002\u0002\u17d3\u17d4\u0007G\u0002\u0002\u17d4", + "\u17d5\u0007P\u0002\u0002\u17d5\u17d6\u0007V\u0002\u0002\u17d6\u0374", + "\u0003\u0002\u0002\u0002\u17d7\u17d8\u0007E\u0002\u0002\u17d8\u17d9", + "\u0007Q\u0002\u0002\u17d9\u17da\u0007P\u0002\u0002\u17da\u17db\u0007", + "V\u0002\u0002\u17db\u17dc\u0007T\u0002\u0002\u17dc\u17dd\u0007Q\u0002", + "\u0002\u17dd\u17de\u0007N\u0002\u0002\u17de\u0376\u0003\u0002\u0002", + "\u0002\u17df\u17e0\u0007E\u0002\u0002\u17e0\u17e1\u0007Q\u0002\u0002", + "\u17e1\u17e2\u0007Q\u0002\u0002\u17e2\u17e3\u0007M\u0002\u0002\u17e3", + "\u17e4\u0007K\u0002\u0002\u17e4\u17e5\u0007G\u0002\u0002\u17e5\u0378", + "\u0003\u0002\u0002\u0002\u17e6\u17e7\u0007E\u0002\u0002\u17e7\u17e8", + "\u0007Q\u0002\u0002\u17e8\u17e9\u0007W\u0002\u0002\u17e9\u17ea\u0007", + "P\u0002\u0002\u17ea\u17eb\u0007V\u0002\u0002\u17eb\u037a\u0003\u0002", + "\u0002\u0002\u17ec\u17ed\u0007E\u0002\u0002\u17ed\u17ee\u0007Q\u0002", + "\u0002\u17ee\u17ef\u0007W\u0002\u0002\u17ef\u17f0\u0007P\u0002\u0002", + "\u17f0\u17f1\u0007V\u0002\u0002\u17f1\u17f2\u0007a\u0002\u0002\u17f2", + "\u17f3\u0007D\u0002\u0002\u17f3\u17f4\u0007K\u0002\u0002\u17f4\u17f5", + "\u0007I\u0002\u0002\u17f5\u037c\u0003\u0002\u0002\u0002\u17f6\u17f7", + "\u0007E\u0002\u0002\u17f7\u17f8\u0007Q\u0002\u0002\u17f8\u17f9\u0007", + "W\u0002\u0002\u17f9\u17fa\u0007P\u0002\u0002\u17fa\u17fb\u0007V\u0002", + "\u0002\u17fb\u17fc\u0007G\u0002\u0002\u17fc\u17fd\u0007T\u0002\u0002", + "\u17fd\u037e\u0003\u0002\u0002\u0002\u17fe\u17ff\u0007E\u0002\u0002", + "\u17ff\u1800\u0007R\u0002\u0002\u1800\u1801\u0007W\u0002\u0002\u1801", + "\u0380\u0003\u0002\u0002\u0002\u1802\u1803\u0007E\u0002\u0002\u1803", + "\u1804\u0007T\u0002\u0002\u1804\u1805\u0007G\u0002\u0002\u1805\u1806", + "\u0007C\u0002\u0002\u1806\u1807\u0007V\u0002\u0002\u1807\u1808\u0007", + "G\u0002\u0002\u1808\u1809\u0007a\u0002\u0002\u1809\u180a\u0007P\u0002", + "\u0002\u180a\u180b\u0007G\u0002\u0002\u180b\u180c\u0007Y\u0002\u0002", + "\u180c\u0382\u0003\u0002\u0002\u0002\u180d\u180e\u0007E\u0002\u0002", + "\u180e\u180f\u0007T\u0002\u0002\u180f\u1810\u0007G\u0002\u0002\u1810", + "\u1811\u0007C\u0002\u0002\u1811\u1812\u0007V\u0002\u0002\u1812\u1813", + "\u0007K\u0002\u0002\u1813\u1814\u0007Q\u0002\u0002\u1814\u1815\u0007", + "P\u0002\u0002\u1815\u1816\u0007a\u0002\u0002\u1816\u1817\u0007F\u0002", + "\u0002\u1817\u1818\u0007K\u0002\u0002\u1818\u1819\u0007U\u0002\u0002", + "\u1819\u181a\u0007R\u0002\u0002\u181a\u181b\u0007Q\u0002\u0002\u181b", + "\u181c\u0007U\u0002\u0002\u181c\u181d\u0007K\u0002\u0002\u181d\u181e", + "\u0007V\u0002\u0002\u181e\u181f\u0007K\u0002\u0002\u181f\u1820\u0007", + "Q\u0002\u0002\u1820\u1821\u0007P\u0002\u0002\u1821\u0384\u0003\u0002", + "\u0002\u0002\u1822\u1823\u0007E\u0002\u0002\u1823\u1824\u0007T\u0002", + "\u0002\u1824\u1825\u0007G\u0002\u0002\u1825\u1826\u0007F\u0002\u0002", + "\u1826\u1827\u0007G\u0002\u0002\u1827\u1828\u0007P\u0002\u0002\u1828", + "\u1829\u0007V\u0002\u0002\u1829\u182a\u0007K\u0002\u0002\u182a\u182b", + "\u0007C\u0002\u0002\u182b\u182c\u0007N\u0002\u0002\u182c\u0386\u0003", + "\u0002\u0002\u0002\u182d\u182e\u0007E\u0002\u0002\u182e\u182f\u0007", + "T\u0002\u0002\u182f\u1830\u0007[\u0002\u0002\u1830\u1831\u0007R\u0002", + "\u0002\u1831\u1832\u0007V\u0002\u0002\u1832\u1833\u0007Q\u0002\u0002", + "\u1833\u1834\u0007I\u0002\u0002\u1834\u1835\u0007T\u0002\u0002\u1835", + "\u1836\u0007C\u0002\u0002\u1836\u1837\u0007R\u0002\u0002\u1837\u1838", + "\u0007J\u0002\u0002\u1838\u1839\u0007K\u0002\u0002\u1839\u183a\u0007", + "E\u0002\u0002\u183a\u0388\u0003\u0002\u0002\u0002\u183b\u183c\u0007", + "E\u0002\u0002\u183c\u183d\u0007W\u0002\u0002\u183d\u183e\u0007T\u0002", + "\u0002\u183e\u183f\u0007U\u0002\u0002\u183f\u1840\u0007Q\u0002\u0002", + "\u1840\u1841\u0007T\u0002\u0002\u1841\u1842\u0007a\u0002\u0002\u1842", + "\u1843\u0007E\u0002\u0002\u1843\u1844\u0007N\u0002\u0002\u1844\u1845", + "\u0007Q\u0002\u0002\u1845\u1846\u0007U\u0002\u0002\u1846\u1847\u0007", + "G\u0002\u0002\u1847\u1848\u0007a\u0002\u0002\u1848\u1849\u0007Q\u0002", + "\u0002\u1849\u184a\u0007P\u0002\u0002\u184a\u184b\u0007a\u0002\u0002", + "\u184b\u184c\u0007E\u0002\u0002\u184c\u184d\u0007Q\u0002\u0002\u184d", + "\u184e\u0007O\u0002\u0002\u184e\u184f\u0007O\u0002\u0002\u184f\u1850", + "\u0007K\u0002\u0002\u1850\u1851\u0007V\u0002\u0002\u1851\u038a\u0003", + "\u0002\u0002\u0002\u1852\u1853\u0007E\u0002\u0002\u1853\u1854\u0007", + "W\u0002\u0002\u1854\u1855\u0007T\u0002\u0002\u1855\u1856\u0007U\u0002", + "\u0002\u1856\u1857\u0007Q\u0002\u0002\u1857\u1858\u0007T\u0002\u0002", + "\u1858\u1859\u0007a\u0002\u0002\u1859\u185a\u0007F\u0002\u0002\u185a", + "\u185b\u0007G\u0002\u0002\u185b\u185c\u0007H\u0002\u0002\u185c\u185d", + "\u0007C\u0002\u0002\u185d\u185e\u0007W\u0002\u0002\u185e\u185f\u0007", + "N\u0002\u0002\u185f\u1860\u0007V\u0002\u0002\u1860\u038c\u0003\u0002", + "\u0002\u0002\u1861\u1862\u0007F\u0002\u0002\u1862\u1863\u0007C\u0002", + "\u0002\u1863\u1864\u0007V\u0002\u0002\u1864\u1865\u0007C\u0002\u0002", + "\u1865\u038e\u0003\u0002\u0002\u0002\u1866\u1867\u0007F\u0002\u0002", + "\u1867\u1868\u0007C\u0002\u0002\u1868\u1869\u0007V\u0002\u0002\u1869", + "\u186a\u0007G\u0002\u0002\u186a\u186b\u0007a\u0002\u0002\u186b\u186c", + "\u0007E\u0002\u0002\u186c\u186d\u0007Q\u0002\u0002\u186d\u186e\u0007", + "T\u0002\u0002\u186e\u186f\u0007T\u0002\u0002\u186f\u1870\u0007G\u0002", + "\u0002\u1870\u1871\u0007N\u0002\u0002\u1871\u1872\u0007C\u0002\u0002", + "\u1872\u1873\u0007V\u0002\u0002\u1873\u1874\u0007K\u0002\u0002\u1874", + "\u1875\u0007Q\u0002\u0002\u1875\u1876\u0007P\u0002\u0002\u1876\u1877", + "\u0007a\u0002\u0002\u1877\u1878\u0007Q\u0002\u0002\u1878\u1879\u0007", + "R\u0002\u0002\u1879\u187a\u0007V\u0002\u0002\u187a\u187b\u0007K\u0002", + "\u0002\u187b\u187c\u0007O\u0002\u0002\u187c\u187d\u0007K\u0002\u0002", + "\u187d\u187e\u0007\\\u0002\u0002\u187e\u187f\u0007C\u0002\u0002\u187f", + "\u1880\u0007V\u0002\u0002\u1880\u1881\u0007K\u0002\u0002\u1881\u1882", + "\u0007Q\u0002\u0002\u1882\u1883\u0007P\u0002\u0002\u1883\u0390\u0003", + "\u0002\u0002\u0002\u1884\u1885\u0007F\u0002\u0002\u1885\u1886\u0007", + "C\u0002\u0002\u1886\u1887\u0007V\u0002\u0002\u1887\u1888\u0007G\u0002", + "\u0002\u1888\u1889\u0007C\u0002\u0002\u1889\u188a\u0007F\u0002\u0002", + "\u188a\u188b\u0007F\u0002\u0002\u188b\u0392\u0003\u0002\u0002\u0002", + "\u188c\u188d\u0007F\u0002\u0002\u188d\u188e\u0007C\u0002\u0002\u188e", + "\u188f\u0007V\u0002\u0002\u188f\u1890\u0007G\u0002\u0002\u1890\u1891", + "\u0007F\u0002\u0002\u1891\u1892\u0007K\u0002\u0002\u1892\u1893\u0007", + "H\u0002\u0002\u1893\u1894\u0007H\u0002\u0002\u1894\u0394\u0003\u0002", + "\u0002\u0002\u1895\u1896\u0007F\u0002\u0002\u1896\u1897\u0007C\u0002", + "\u0002\u1897\u1898\u0007V\u0002\u0002\u1898\u1899\u0007G\u0002\u0002", + "\u1899\u189a\u0007P\u0002\u0002\u189a\u189b\u0007C\u0002\u0002\u189b", + "\u189c\u0007O\u0002\u0002\u189c\u189d\u0007G\u0002\u0002\u189d\u0396", + "\u0003\u0002\u0002\u0002\u189e\u189f\u0007F\u0002\u0002\u189f\u18a0", + "\u0007C\u0002\u0002\u18a0\u18a1\u0007V\u0002\u0002\u18a1\u18a2\u0007", + "G\u0002\u0002\u18a2\u18a3\u0007R\u0002\u0002\u18a3\u18a4\u0007C\u0002", + "\u0002\u18a4\u18a5\u0007T\u0002\u0002\u18a5\u18a6\u0007V\u0002\u0002", + "\u18a6\u0398\u0003\u0002\u0002\u0002\u18a7\u18a8\u0007F\u0002\u0002", + "\u18a8\u18a9\u0007C\u0002\u0002\u18a9\u18aa\u0007[\u0002\u0002\u18aa", + "\u18ab\u0007U\u0002\u0002\u18ab\u039a\u0003\u0002\u0002\u0002\u18ac", + "\u18ad\u0007F\u0002\u0002\u18ad\u18ae\u0007D\u0002\u0002\u18ae\u18af", + "\u0007a\u0002\u0002\u18af\u18b0\u0007E\u0002\u0002\u18b0\u18b1\u0007", + "J\u0002\u0002\u18b1\u18b2\u0007C\u0002\u0002\u18b2\u18b3\u0007K\u0002", + "\u0002\u18b3\u18b4\u0007P\u0002\u0002\u18b4\u18b5\u0007K\u0002\u0002", + "\u18b5\u18b6\u0007P\u0002\u0002\u18b6\u18b7\u0007I\u0002\u0002\u18b7", + "\u039c\u0003\u0002\u0002\u0002\u18b8\u18b9\u0007F\u0002\u0002\u18b9", + "\u18ba\u0007D\u0002\u0002\u18ba\u18bb\u0007a\u0002\u0002\u18bb\u18bc", + "\u0007H\u0002\u0002\u18bc\u18bd\u0007C\u0002\u0002\u18bd\u18be\u0007", + "K\u0002\u0002\u18be\u18bf\u0007N\u0002\u0002\u18bf\u18c0\u0007Q\u0002", + "\u0002\u18c0\u18c1\u0007X\u0002\u0002\u18c1\u18c2\u0007G\u0002\u0002", + "\u18c2\u18c3\u0007T\u0002\u0002\u18c3\u039e\u0003\u0002\u0002\u0002", + "\u18c4\u18c5\u0007F\u0002\u0002\u18c5\u18c6\u0007G\u0002\u0002\u18c6", + "\u18c7\u0007E\u0002\u0002\u18c7\u18c8\u0007T\u0002\u0002\u18c8\u18c9", + "\u0007[\u0002\u0002\u18c9\u18ca\u0007R\u0002\u0002\u18ca\u18cb\u0007", + "V\u0002\u0002\u18cb\u18cc\u0007K\u0002\u0002\u18cc\u18cd\u0007Q\u0002", + "\u0002\u18cd\u18ce\u0007P\u0002\u0002\u18ce\u03a0\u0003\u0002\u0002", + "\u0002\u18cf\u18d0\t\u0005\u0002\u0002\u18d0\u18d1\u0007F\u0002\u0002", + "\u18d1\u18d2\u0007G\u0002\u0002\u18d2\u18d3\u0007H\u0002\u0002\u18d3", + "\u18d4\u0007C\u0002\u0002\u18d4\u18d5\u0007W\u0002\u0002\u18d5\u18d6", + "\u0007N\u0002\u0002\u18d6\u18d7\u0007V\u0002\u0002\u18d7\u18d8\u0003", + "\u0002\u0002\u0002\u18d8\u18d9\t\u0005\u0002\u0002\u18d9\u03a2\u0003", + "\u0002\u0002\u0002\u18da\u18db\u0007F\u0002\u0002\u18db\u18dc\u0007", + "G\u0002\u0002\u18dc\u18dd\u0007H\u0002\u0002\u18dd\u18de\u0007C\u0002", + "\u0002\u18de\u18df\u0007W\u0002\u0002\u18df\u18e0\u0007N\u0002\u0002", + "\u18e0\u18e1\u0007V\u0002\u0002\u18e1\u18e2\u0007a\u0002\u0002\u18e2", + "\u18e3\u0007H\u0002\u0002\u18e3\u18e4\u0007W\u0002\u0002\u18e4\u18e5", + "\u0007N\u0002\u0002\u18e5\u18e6\u0007N\u0002\u0002\u18e6\u18e7\u0007", + "V\u0002\u0002\u18e7\u18e8\u0007G\u0002\u0002\u18e8\u18e9\u0007Z\u0002", + "\u0002\u18e9\u18ea\u0007V\u0002\u0002\u18ea\u18eb\u0007a\u0002\u0002", + "\u18eb\u18ec\u0007N\u0002\u0002\u18ec\u18ed\u0007C\u0002\u0002\u18ed", + "\u18ee\u0007P\u0002\u0002\u18ee\u18ef\u0007I\u0002\u0002\u18ef\u18f0", + "\u0007W\u0002\u0002\u18f0\u18f1\u0007C\u0002\u0002\u18f1\u18f2\u0007", + "I\u0002\u0002\u18f2\u18f3\u0007G\u0002\u0002\u18f3\u03a4\u0003\u0002", + "\u0002\u0002\u18f4\u18f5\u0007F\u0002\u0002\u18f5\u18f6\u0007G\u0002", + "\u0002\u18f6\u18f7\u0007H\u0002\u0002\u18f7\u18f8\u0007C\u0002\u0002", + "\u18f8\u18f9\u0007W\u0002\u0002\u18f9\u18fa\u0007N\u0002\u0002\u18fa", + "\u18fb\u0007V\u0002\u0002\u18fb\u18fc\u0007a\u0002\u0002\u18fc\u18fd", + "\u0007N\u0002\u0002\u18fd\u18fe\u0007C\u0002\u0002\u18fe\u18ff\u0007", + "P\u0002\u0002\u18ff\u1900\u0007I\u0002\u0002\u1900\u1901\u0007W\u0002", + "\u0002\u1901\u1902\u0007C\u0002\u0002\u1902\u1903\u0007I\u0002\u0002", + "\u1903\u1904\u0007G\u0002\u0002\u1904\u03a6\u0003\u0002\u0002\u0002", + "\u1905\u1906\u0007F\u0002\u0002\u1906\u1907\u0007G\u0002\u0002\u1907", + "\u1908\u0007N\u0002\u0002\u1908\u1909\u0007C\u0002\u0002\u1909\u190a", + "\u0007[\u0002\u0002\u190a\u03a8\u0003\u0002\u0002\u0002\u190b\u190c", + "\u0007F\u0002\u0002\u190c\u190d\u0007G\u0002\u0002\u190d\u190e\u0007", + "N\u0002\u0002\u190e\u190f\u0007C\u0002\u0002\u190f\u1910\u0007[\u0002", + "\u0002\u1910\u1911\u0007G\u0002\u0002\u1911\u1912\u0007F\u0002\u0002", + "\u1912\u1913\u0007a\u0002\u0002\u1913\u1914\u0007F\u0002\u0002\u1914", + "\u1915\u0007W\u0002\u0002\u1915\u1916\u0007T\u0002\u0002\u1916\u1917", + "\u0007C\u0002\u0002\u1917\u1918\u0007D\u0002\u0002\u1918\u1919\u0007", + "K\u0002\u0002\u1919\u191a\u0007N\u0002\u0002\u191a\u191b\u0007K\u0002", + "\u0002\u191b\u191c\u0007V\u0002\u0002\u191c\u191d\u0007[\u0002\u0002", + "\u191d\u03aa\u0003\u0002\u0002\u0002\u191e\u191f\u0007F\u0002\u0002", + "\u191f\u1920\u0007G\u0002\u0002\u1920\u1921\u0007N\u0002\u0002\u1921", + "\u1922\u0007G\u0002\u0002\u1922\u1923\u0007V\u0002\u0002\u1923\u1924", + "\u0007G\u0002\u0002\u1924\u1925\u0007F\u0002\u0002\u1925\u03ac\u0003", + "\u0002\u0002\u0002\u1926\u1927\u0007F\u0002\u0002\u1927\u1928\u0007", + "G\u0002\u0002\u1928\u1929\u0007P\u0002\u0002\u1929\u192a\u0007U\u0002", + "\u0002\u192a\u192b\u0007G\u0002\u0002\u192b\u192c\u0007a\u0002\u0002", + "\u192c\u192d\u0007T\u0002\u0002\u192d\u192e\u0007C\u0002\u0002\u192e", + "\u192f\u0007P\u0002\u0002\u192f\u1930\u0007M\u0002\u0002\u1930\u03ae", + "\u0003\u0002\u0002\u0002\u1931\u1932\u0007F\u0002\u0002\u1932\u1933", + "\u0007G\u0002\u0002\u1933\u1934\u0007R\u0002\u0002\u1934\u1935\u0007", + "G\u0002\u0002\u1935\u1936\u0007P\u0002\u0002\u1936\u1937\u0007F\u0002", + "\u0002\u1937\u1938\u0007G\u0002\u0002\u1938\u1939\u0007P\u0002\u0002", + "\u1939\u193a\u0007V\u0002\u0002\u193a\u193b\u0007U\u0002\u0002\u193b", + "\u03b0\u0003\u0002\u0002\u0002\u193c\u193d\u0007F\u0002\u0002\u193d", + "\u193e\u0007G\u0002\u0002\u193e\u193f\u0007U\u0002\u0002\u193f\u03b2", + "\u0003\u0002\u0002\u0002\u1940\u1941\u0007F\u0002\u0002\u1941\u1942", + "\u0007G\u0002\u0002\u1942\u1943\u0007U\u0002\u0002\u1943\u1944\u0007", + "E\u0002\u0002\u1944\u1945\u0007T\u0002\u0002\u1945\u1946\u0007K\u0002", + "\u0002\u1946\u1947\u0007R\u0002\u0002\u1947\u1948\u0007V\u0002\u0002", + "\u1948\u1949\u0007K\u0002\u0002\u1949\u194a\u0007Q\u0002\u0002\u194a", + "\u194b\u0007P\u0002\u0002\u194b\u03b4\u0003\u0002\u0002\u0002\u194c", + "\u194d\u0007F\u0002\u0002\u194d\u194e\u0007G\u0002\u0002\u194e\u194f", + "\u0007U\u0002\u0002\u194f\u1950\u0007Z\u0002\u0002\u1950\u03b6\u0003", + "\u0002\u0002\u0002\u1951\u1952\u0007F\u0002\u0002\u1952\u1953\u0007", + "J\u0002\u0002\u1953\u1954\u0007E\u0002\u0002\u1954\u1955\u0007R\u0002", + "\u0002\u1955\u03b8\u0003\u0002\u0002\u0002\u1956\u1957\u0007F\u0002", + "\u0002\u1957\u1958\u0007K\u0002\u0002\u1958\u1959\u0007C\u0002\u0002", + "\u1959\u195a\u0007N\u0002\u0002\u195a\u195b\u0007Q\u0002\u0002\u195b", + "\u195c\u0007I\u0002\u0002\u195c\u03ba\u0003\u0002\u0002\u0002\u195d", + "\u195e\u0007F\u0002\u0002\u195e\u195f\u0007K\u0002\u0002\u195f\u1960", + "\u0007T\u0002\u0002\u1960\u1961\u0007G\u0002\u0002\u1961\u1962\u0007", + "E\u0002\u0002\u1962\u1963\u0007V\u0002\u0002\u1963\u1964\u0007Q\u0002", + "\u0002\u1964\u1965\u0007T\u0002\u0002\u1965\u1966\u0007[\u0002\u0002", + "\u1966\u1967\u0007a\u0002\u0002\u1967\u1968\u0007P\u0002\u0002\u1968", + "\u1969\u0007C\u0002\u0002\u1969\u196a\u0007O\u0002\u0002\u196a\u196b", + "\u0007G\u0002\u0002\u196b\u03bc\u0003\u0002\u0002\u0002\u196c\u196d", + "\u0007F\u0002\u0002\u196d\u196e\u0007K\u0002\u0002\u196e\u196f\u0007", + "U\u0002\u0002\u196f\u1970\u0007C\u0002\u0002\u1970\u1971\u0007D\u0002", + "\u0002\u1971\u1972\u0007N\u0002\u0002\u1972\u1973\u0007G\u0002\u0002", + "\u1973\u03be\u0003\u0002\u0002\u0002\u1974\u1975\u0007F\u0002\u0002", + "\u1975\u1976\u0007K\u0002\u0002\u1976\u1977\u0007U\u0002\u0002\u1977", + "\u1978\u0007C\u0002\u0002\u1978\u1979\u0007D\u0002\u0002\u1979\u197a", + "\u0007N\u0002\u0002\u197a\u197b\u0007G\u0002\u0002\u197b\u197c\u0007", + "a\u0002\u0002\u197c\u197d\u0007D\u0002\u0002\u197d\u197e\u0007T\u0002", + "\u0002\u197e\u197f\u0007Q\u0002\u0002\u197f\u1980\u0007M\u0002\u0002", + "\u1980\u1981\u0007G\u0002\u0002\u1981\u1982\u0007T\u0002\u0002\u1982", + "\u03c0\u0003\u0002\u0002\u0002\u1983\u1984\u0007F\u0002\u0002\u1984", + "\u1985\u0007K\u0002\u0002\u1985\u1986\u0007U\u0002\u0002\u1986\u1987", + "\u0007C\u0002\u0002\u1987\u1988\u0007D\u0002\u0002\u1988\u1989\u0007", + "N\u0002\u0002\u1989\u198a\u0007G\u0002\u0002\u198a\u198b\u0007F\u0002", + "\u0002\u198b\u03c2\u0003\u0002\u0002\u0002\u198c\u198d\t\u0006\u0002", + "\u0002\u198d\u198e\t\u0004\u0002\u0002\u198e\u03c4\u0003\u0002\u0002", + "\u0002\u198f\u1990\u0007F\u0002\u0002\u1990\u1991\u0007Q\u0002\u0002", + "\u1991\u1992\u0007E\u0002\u0002\u1992\u1993\u0007W\u0002\u0002\u1993", + "\u1994\u0007O\u0002\u0002\u1994\u1995\u0007G\u0002\u0002\u1995\u1996", + "\u0007P\u0002\u0002\u1996\u1997\u0007V\u0002\u0002\u1997\u03c6\u0003", + "\u0002\u0002\u0002\u1998\u1999\u0007F\u0002\u0002\u1999\u199a\u0007", + "[\u0002\u0002\u199a\u199b\u0007P\u0002\u0002\u199b\u199c\u0007C\u0002", + "\u0002\u199c\u199d\u0007O\u0002\u0002\u199d\u199e\u0007K\u0002\u0002", + "\u199e\u199f\u0007E\u0002\u0002\u199f\u03c8\u0003\u0002\u0002\u0002", + "\u19a0\u19a1\u0007G\u0002\u0002\u19a1\u19a2\u0007N\u0002\u0002\u19a2", + "\u19a3\u0007G\u0002\u0002\u19a3\u19a4\u0007O\u0002\u0002\u19a4\u19a5", + "\u0007G\u0002\u0002\u19a5\u19a6\u0007P\u0002\u0002\u19a6\u19a7\u0007", + "V\u0002\u0002\u19a7\u19a8\u0007U\u0002\u0002\u19a8\u03ca\u0003\u0002", + "\u0002\u0002\u19a9\u19aa\u0007G\u0002\u0002\u19aa\u19ab\u0007O\u0002", + "\u0002\u19ab\u19ac\u0007G\u0002\u0002\u19ac\u19ad\u0007T\u0002\u0002", + "\u19ad\u19ae\u0007I\u0002\u0002\u19ae\u19af\u0007G\u0002\u0002\u19af", + "\u19b0\u0007P\u0002\u0002\u19b0\u19b1\u0007E\u0002\u0002\u19b1\u19b2", + "\u0007[\u0002\u0002\u19b2\u03cc\u0003\u0002\u0002\u0002\u19b3\u19b4", + "\u0007G\u0002\u0002\u19b4\u19b5\u0007O\u0002\u0002\u19b5\u19b6\u0007", + "R\u0002\u0002\u19b6\u19b7\u0007V\u0002\u0002\u19b7\u19b8\u0007[\u0002", + "\u0002\u19b8\u03ce\u0003\u0002\u0002\u0002\u19b9\u19ba\u0007G\u0002", + "\u0002\u19ba\u19bb\u0007P\u0002\u0002\u19bb\u19bc\u0007C\u0002\u0002", + "\u19bc\u19bd\u0007D\u0002\u0002\u19bd\u19be\u0007N\u0002\u0002\u19be", + "\u19bf\u0007G\u0002\u0002\u19bf\u03d0\u0003\u0002\u0002\u0002\u19c0", + "\u19c1\u0007G\u0002\u0002\u19c1\u19c2\u0007P\u0002\u0002\u19c2\u19c3", + "\u0007C\u0002\u0002\u19c3\u19c4\u0007D\u0002\u0002\u19c4\u19c5\u0007", + "N\u0002\u0002\u19c5\u19c6\u0007G\u0002\u0002\u19c6\u19c7\u0007a\u0002", + "\u0002\u19c7\u19c8\u0007D\u0002\u0002\u19c8\u19c9\u0007T\u0002\u0002", + "\u19c9\u19ca\u0007Q\u0002\u0002\u19ca\u19cb\u0007M\u0002\u0002\u19cb", + "\u19cc\u0007G\u0002\u0002\u19cc\u19cd\u0007T\u0002\u0002\u19cd\u03d2", + "\u0003\u0002\u0002\u0002\u19ce\u19cf\u0007G\u0002\u0002\u19cf\u19d0", + "\u0007P\u0002\u0002\u19d0\u19d1\u0007E\u0002\u0002\u19d1\u19d2\u0007", + "T\u0002\u0002\u19d2\u19d3\u0007[\u0002\u0002\u19d3\u19d4\u0007R\u0002", + "\u0002\u19d4\u19d5\u0007V\u0002\u0002\u19d5\u19d6\u0007G\u0002\u0002", + "\u19d6\u19d7\u0007F\u0002\u0002\u19d7\u19d8\u0007a\u0002\u0002\u19d8", + "\u19d9\u0007X\u0002\u0002\u19d9\u19da\u0007C\u0002\u0002\u19da\u19db", + "\u0007N\u0002\u0002\u19db\u19dc\u0007W\u0002\u0002\u19dc\u19dd\u0007", + "G\u0002\u0002\u19dd\u03d4\u0003\u0002\u0002\u0002\u19de\u19df\u0007", + "G\u0002\u0002\u19df\u19e0\u0007P\u0002\u0002\u19e0\u19e1\u0007E\u0002", + "\u0002\u19e1\u19e2\u0007T\u0002\u0002\u19e2\u19e3\u0007[\u0002\u0002", + "\u19e3\u19e4\u0007R\u0002\u0002\u19e4\u19e5\u0007V\u0002\u0002\u19e5", + "\u19e6\u0007K\u0002\u0002\u19e6\u19e7\u0007Q\u0002\u0002\u19e7\u19e8", + "\u0007P\u0002\u0002\u19e8\u03d6\u0003\u0002\u0002\u0002\u19e9\u19ea", + "\u0007G\u0002\u0002\u19ea\u19eb\u0007P\u0002\u0002\u19eb\u19ec\u0007", + "F\u0002\u0002\u19ec\u19ed\u0007R\u0002\u0002\u19ed\u19ee\u0007Q\u0002", + "\u0002\u19ee\u19ef\u0007K\u0002\u0002\u19ef\u19f0\u0007P\u0002\u0002", + "\u19f0\u19f1\u0007V\u0002\u0002\u19f1\u19f2\u0007a\u0002\u0002\u19f2", + "\u19f3\u0007W\u0002\u0002\u19f3\u19f4\u0007T\u0002\u0002\u19f4\u19f5", + "\u0007N\u0002\u0002\u19f5\u03d8\u0003\u0002\u0002\u0002\u19f6\u19f7", + "\u0007G\u0002\u0002\u19f7\u19f8\u0007T\u0002\u0002\u19f8\u19f9\u0007", + "T\u0002\u0002\u19f9\u19fa\u0007Q\u0002\u0002\u19fa\u19fb\u0007T\u0002", + "\u0002\u19fb\u19fc\u0007a\u0002\u0002\u19fc\u19fd\u0007D\u0002\u0002", + "\u19fd\u19fe\u0007T\u0002\u0002\u19fe\u19ff\u0007Q\u0002\u0002\u19ff", + "\u1a00\u0007M\u0002\u0002\u1a00\u1a01\u0007G\u0002\u0002\u1a01\u1a02", + "\u0007T\u0002\u0002\u1a02\u1a03\u0007a\u0002\u0002\u1a03\u1a04\u0007", + "E\u0002\u0002\u1a04\u1a05\u0007Q\u0002\u0002\u1a05\u1a06\u0007P\u0002", + "\u0002\u1a06\u1a07\u0007X\u0002\u0002\u1a07\u1a08\u0007G\u0002\u0002", + "\u1a08\u1a09\u0007T\u0002\u0002\u1a09\u1a0a\u0007U\u0002\u0002\u1a0a", + "\u1a0b\u0007C\u0002\u0002\u1a0b\u1a0c\u0007V\u0002\u0002\u1a0c\u1a0d", + "\u0007K\u0002\u0002\u1a0d\u1a0e\u0007Q\u0002\u0002\u1a0e\u1a0f\u0007", + "P\u0002\u0002\u1a0f\u1a10\u0007U\u0002\u0002\u1a10\u03da\u0003\u0002", + "\u0002\u0002\u1a11\u1a12\u0007G\u0002\u0002\u1a12\u1a13\u0007Z\u0002", + "\u0002\u1a13\u1a14\u0007E\u0002\u0002\u1a14\u1a15\u0007N\u0002\u0002", + "\u1a15\u1a16\u0007W\u0002\u0002\u1a16\u1a17\u0007U\u0002\u0002\u1a17", + "\u1a18\u0007K\u0002\u0002\u1a18\u1a19\u0007X\u0002\u0002\u1a19\u1a1a", + "\u0007G\u0002\u0002\u1a1a\u03dc\u0003\u0002\u0002\u0002\u1a1b\u1a1c", + "\u0007G\u0002\u0002\u1a1c\u1a1d\u0007Z\u0002\u0002\u1a1d\u1a1e\u0007", + "G\u0002\u0002\u1a1e\u1a1f\u0007E\u0002\u0002\u1a1f\u1a20\u0007W\u0002", + "\u0002\u1a20\u1a21\u0007V\u0002\u0002\u1a21\u1a22\u0007C\u0002\u0002", + "\u1a22\u1a23\u0007D\u0002\u0002\u1a23\u1a24\u0007N\u0002\u0002\u1a24", + "\u1a25\u0007G\u0002\u0002\u1a25\u03de\u0003\u0002\u0002\u0002\u1a26", + "\u1a27\u0007G\u0002\u0002\u1a27\u1a28\u0007Z\u0002\u0002\u1a28\u1a29", + "\u0007K\u0002\u0002\u1a29\u1a2a\u0007U\u0002\u0002\u1a2a\u1a2b\u0007", + "V\u0002\u0002\u1a2b\u03e0\u0003\u0002\u0002\u0002\u1a2c\u1a2d\u0007", + "G\u0002\u0002\u1a2d\u1a2e\u0007Z\u0002\u0002\u1a2e\u1a2f\u0007R\u0002", + "\u0002\u1a2f\u1a30\u0007C\u0002\u0002\u1a30\u1a31\u0007P\u0002\u0002", + "\u1a31\u1a32\u0007F\u0002\u0002\u1a32\u03e2\u0003\u0002\u0002\u0002", + "\u1a33\u1a34\u0007G\u0002\u0002\u1a34\u1a35\u0007Z\u0002\u0002\u1a35", + "\u1a36\u0007R\u0002\u0002\u1a36\u1a37\u0007K\u0002\u0002\u1a37\u1a38", + "\u0007T\u0002\u0002\u1a38\u1a39\u0007[\u0002\u0002\u1a39\u1a3a\u0007", + "a\u0002\u0002\u1a3a\u1a3b\u0007F\u0002\u0002\u1a3b\u1a3c\u0007C\u0002", + "\u0002\u1a3c\u1a3d\u0007V\u0002\u0002\u1a3d\u1a3e\u0007G\u0002\u0002", + "\u1a3e\u03e4\u0003\u0002\u0002\u0002\u1a3f\u1a40\u0007G\u0002\u0002", + "\u1a40\u1a41\u0007Z\u0002\u0002\u1a41\u1a42\u0007R\u0002\u0002\u1a42", + "\u1a43\u0007N\u0002\u0002\u1a43\u1a44\u0007K\u0002\u0002\u1a44\u1a45", + "\u0007E\u0002\u0002\u1a45\u1a46\u0007K\u0002\u0002\u1a46\u1a47\u0007", + "V\u0002\u0002\u1a47\u03e6\u0003\u0002\u0002\u0002\u1a48\u1a49\u0007", + "H\u0002\u0002\u1a49\u1a4a\u0007C\u0002\u0002\u1a4a\u1a4b\u0007K\u0002", + "\u0002\u1a4b\u1a4c\u0007N\u0002\u0002\u1a4c\u1a4d\u0007a\u0002\u0002", + "\u1a4d\u1a4e\u0007Q\u0002\u0002\u1a4e\u1a4f\u0007R\u0002\u0002\u1a4f", + "\u1a50\u0007G\u0002\u0002\u1a50\u1a51\u0007T\u0002\u0002\u1a51\u1a52", + "\u0007C\u0002\u0002\u1a52\u1a53\u0007V\u0002\u0002\u1a53\u1a54\u0007", + "K\u0002\u0002\u1a54\u1a55\u0007Q\u0002\u0002\u1a55\u1a56\u0007P\u0002", + "\u0002\u1a56\u03e8\u0003\u0002\u0002\u0002\u1a57\u1a58\u0007H\u0002", + "\u0002\u1a58\u1a59\u0007C\u0002\u0002\u1a59\u1a5a\u0007K\u0002\u0002", + "\u1a5a\u1a5b\u0007N\u0002\u0002\u1a5b\u1a5c\u0007Q\u0002\u0002\u1a5c", + "\u1a5d\u0007X\u0002\u0002\u1a5d\u1a5e\u0007G\u0002\u0002\u1a5e\u1a5f", + "\u0007T\u0002\u0002\u1a5f\u1a60\u0007a\u0002\u0002\u1a60\u1a61\u0007", + "O\u0002\u0002\u1a61\u1a62\u0007Q\u0002\u0002\u1a62\u1a63\u0007F\u0002", + "\u0002\u1a63\u1a64\u0007G\u0002\u0002\u1a64\u03ea\u0003\u0002\u0002", + "\u0002\u1a65\u1a66\u0007H\u0002\u0002\u1a66\u1a67\u0007C\u0002\u0002", + "\u1a67\u1a68\u0007K\u0002\u0002\u1a68\u1a69\u0007N\u0002\u0002\u1a69", + "\u1a6a\u0007W\u0002\u0002\u1a6a\u1a6b\u0007T\u0002\u0002\u1a6b\u1a6c", + "\u0007G\u0002\u0002\u1a6c\u03ec\u0003\u0002\u0002\u0002\u1a6d\u1a6e", + "\u0007H\u0002\u0002\u1a6e\u1a6f\u0007C\u0002\u0002\u1a6f\u1a70\u0007", + "K\u0002\u0002\u1a70\u1a71\u0007N\u0002\u0002\u1a71\u1a72\u0007W\u0002", + "\u0002\u1a72\u1a73\u0007T\u0002\u0002\u1a73\u1a74\u0007G\u0002\u0002", + "\u1a74\u1a75\u0007a\u0002\u0002\u1a75\u1a76\u0007E\u0002\u0002\u1a76", + "\u1a77\u0007Q\u0002\u0002\u1a77\u1a78\u0007P\u0002\u0002\u1a78\u1a79", + "\u0007F\u0002\u0002\u1a79\u1a7a\u0007K\u0002\u0002\u1a7a\u1a7b\u0007", + "V\u0002\u0002\u1a7b\u1a7c\u0007K\u0002\u0002\u1a7c\u1a7d\u0007Q\u0002", + "\u0002\u1a7d\u1a7e\u0007P\u0002\u0002\u1a7e\u1a7f\u0007a\u0002\u0002", + "\u1a7f\u1a80\u0007N\u0002\u0002\u1a80\u1a81\u0007G\u0002\u0002\u1a81", + "\u1a82\u0007X\u0002\u0002\u1a82\u1a83\u0007G\u0002\u0002\u1a83\u1a84", + "\u0007N\u0002\u0002\u1a84\u03ee\u0003\u0002\u0002\u0002\u1a85\u1a86", + "\u0007H\u0002\u0002\u1a86\u1a87\u0007C\u0002\u0002\u1a87\u1a88\u0007", + "U\u0002\u0002\u1a88\u1a89\u0007V\u0002\u0002\u1a89\u03f0\u0003\u0002", + "\u0002\u0002\u1a8a\u1a8b\u0007H\u0002\u0002\u1a8b\u1a8c\u0007C\u0002", + "\u0002\u1a8c\u1a8d\u0007U\u0002\u0002\u1a8d\u1a8e\u0007V\u0002\u0002", + "\u1a8e\u1a8f\u0007a\u0002\u0002\u1a8f\u1a90\u0007H\u0002\u0002\u1a90", + "\u1a91\u0007Q\u0002\u0002\u1a91\u1a92\u0007T\u0002\u0002\u1a92\u1a93", + "\u0007Y\u0002\u0002\u1a93\u1a94\u0007C\u0002\u0002\u1a94\u1a95\u0007", + "T\u0002\u0002\u1a95\u1a96\u0007F\u0002\u0002\u1a96\u03f2\u0003\u0002", + "\u0002\u0002\u1a97\u1a98\u0007H\u0002\u0002\u1a98\u1a99\u0007K\u0002", + "\u0002\u1a99\u1a9a\u0007N\u0002\u0002\u1a9a\u1a9b\u0007G\u0002\u0002", + "\u1a9b\u1a9c\u0007I\u0002\u0002\u1a9c\u1a9d\u0007T\u0002\u0002\u1a9d", + "\u1a9e\u0007Q\u0002\u0002\u1a9e\u1a9f\u0007W\u0002\u0002\u1a9f\u1aa0", + "\u0007R\u0002\u0002\u1aa0\u03f4\u0003\u0002\u0002\u0002\u1aa1\u1aa2", + "\u0007H\u0002\u0002\u1aa2\u1aa3\u0007K\u0002\u0002\u1aa3\u1aa4\u0007", + "N\u0002\u0002\u1aa4\u1aa5\u0007G\u0002\u0002\u1aa5\u1aa6\u0007I\u0002", + "\u0002\u1aa6\u1aa7\u0007T\u0002\u0002\u1aa7\u1aa8\u0007Q\u0002\u0002", + "\u1aa8\u1aa9\u0007Y\u0002\u0002\u1aa9\u1aaa\u0007V\u0002\u0002\u1aaa", + "\u1aab\u0007J\u0002\u0002\u1aab\u03f6\u0003\u0002\u0002\u0002\u1aac", + "\u1aad\u0007H\u0002\u0002\u1aad\u1aae\u0007K\u0002\u0002\u1aae\u1aaf", + "\u0007N\u0002\u0002\u1aaf\u1ab0\u0007G\u0002\u0002\u1ab0\u1ab1\u0007", + "R\u0002\u0002\u1ab1\u1ab2\u0007C\u0002\u0002\u1ab2\u1ab3\u0007V\u0002", + "\u0002\u1ab3\u1ab4\u0007J\u0002\u0002\u1ab4\u03f8\u0003\u0002\u0002", + "\u0002\u1ab5\u1ab6\u0007H\u0002\u0002\u1ab6\u1ab7\u0007K\u0002\u0002", + "\u1ab7\u1ab8\u0007N\u0002\u0002\u1ab8\u1ab9\u0007G\u0002\u0002\u1ab9", + "\u1aba\u0007U\u0002\u0002\u1aba\u1abb\u0007V\u0002\u0002\u1abb\u1abc", + "\u0007T\u0002\u0002\u1abc\u1abd\u0007G\u0002\u0002\u1abd\u1abe\u0007", + "C\u0002\u0002\u1abe\u1abf\u0007O\u0002\u0002\u1abf\u03fa\u0003\u0002", + "\u0002\u0002\u1ac0\u1ac1\u0007H\u0002\u0002\u1ac1\u1ac2\u0007K\u0002", + "\u0002\u1ac2\u1ac3\u0007N\u0002\u0002\u1ac3\u1ac4\u0007V\u0002\u0002", + "\u1ac4\u1ac5\u0007G\u0002\u0002\u1ac5\u1ac6\u0007T\u0002\u0002\u1ac6", + "\u03fc\u0003\u0002\u0002\u0002\u1ac7\u1ac8\u0007H\u0002\u0002\u1ac8", + "\u1ac9\u0007K\u0002\u0002\u1ac9\u1aca\u0007T\u0002\u0002\u1aca\u1acb", + "\u0007U\u0002\u0002\u1acb\u1acc\u0007V\u0002\u0002\u1acc\u03fe\u0003", + "\u0002\u0002\u0002\u1acd\u1ace\u0007H\u0002\u0002\u1ace\u1acf\u0007", + "K\u0002\u0002\u1acf\u1ad0\u0007T\u0002\u0002\u1ad0\u1ad1\u0007U\u0002", + "\u0002\u1ad1\u1ad2\u0007V\u0002\u0002\u1ad2\u1ad3\u0007a\u0002\u0002", + "\u1ad3\u1ad4\u0007X\u0002\u0002\u1ad4\u1ad5\u0007C\u0002\u0002\u1ad5", + "\u1ad6\u0007N\u0002\u0002\u1ad6\u1ad7\u0007W\u0002\u0002\u1ad7\u1ad8", + "\u0007G\u0002\u0002\u1ad8\u0400\u0003\u0002\u0002\u0002\u1ad9\u1ada", + "\u0007H\u0002\u0002\u1ada\u1adb\u0007Q\u0002\u0002\u1adb\u1adc\u0007", + "N\u0002\u0002\u1adc\u1add\u0007N\u0002\u0002\u1add\u1ade\u0007Q\u0002", + "\u0002\u1ade\u1adf\u0007Y\u0002\u0002\u1adf\u1ae0\u0007K\u0002\u0002", + "\u1ae0\u1ae1\u0007P\u0002\u0002\u1ae1\u1ae2\u0007I\u0002\u0002\u1ae2", + "\u0402\u0003\u0002\u0002\u0002\u1ae3\u1ae4\u0007H\u0002\u0002\u1ae4", + "\u1ae5\u0007Q\u0002\u0002\u1ae5\u1ae6\u0007T\u0002\u0002\u1ae6\u1ae7", + "\u0007E\u0002\u0002\u1ae7\u1ae8\u0007G\u0002\u0002\u1ae8\u0404\u0003", + "\u0002\u0002\u0002\u1ae9\u1aea\u0007H\u0002\u0002\u1aea\u1aeb\u0007", + "Q\u0002\u0002\u1aeb\u1aec\u0007T\u0002\u0002\u1aec\u1aed\u0007E\u0002", + "\u0002\u1aed\u1aee\u0007G\u0002\u0002\u1aee\u1aef\u0007a\u0002\u0002", + "\u1aef\u1af0\u0007H\u0002\u0002\u1af0\u1af1\u0007C\u0002\u0002\u1af1", + "\u1af2\u0007K\u0002\u0002\u1af2\u1af3\u0007N\u0002\u0002\u1af3\u1af4", + "\u0007Q\u0002\u0002\u1af4\u1af5\u0007X\u0002\u0002\u1af5\u1af6\u0007", + "G\u0002\u0002\u1af6\u1af7\u0007T\u0002\u0002\u1af7\u1af8\u0007a\u0002", + "\u0002\u1af8\u1af9\u0007C\u0002\u0002\u1af9\u1afa\u0007N\u0002\u0002", + "\u1afa\u1afb\u0007N\u0002\u0002\u1afb\u1afc\u0007Q\u0002\u0002\u1afc", + "\u1afd\u0007Y\u0002\u0002\u1afd\u1afe\u0007a\u0002\u0002\u1afe\u1aff", + "\u0007F\u0002\u0002\u1aff\u1b00\u0007C\u0002\u0002\u1b00\u1b01\u0007", + "V\u0002\u0002\u1b01\u1b02\u0007C\u0002\u0002\u1b02\u1b03\u0007a\u0002", + "\u0002\u1b03\u1b04\u0007N\u0002\u0002\u1b04\u1b05\u0007Q\u0002\u0002", + "\u1b05\u1b06\u0007U\u0002\u0002\u1b06\u1b07\u0007U\u0002\u0002\u1b07", + "\u0406\u0003\u0002\u0002\u0002\u1b08\u1b09\u0007H\u0002\u0002\u1b09", + "\u1b0a\u0007Q\u0002\u0002\u1b0a\u1b0b\u0007T\u0002\u0002\u1b0b\u1b0c", + "\u0007E\u0002\u0002\u1b0c\u1b0d\u0007G\u0002\u0002\u1b0d\u1b0e\u0007", + "F\u0002\u0002\u1b0e\u0408\u0003\u0002\u0002\u0002\u1b0f\u1b10\u0007", + "H\u0002\u0002\u1b10\u1b11\u0007Q\u0002\u0002\u1b11\u1b12\u0007T\u0002", + "\u0002\u1b12\u1b13\u0007O\u0002\u0002\u1b13\u1b14\u0007C\u0002\u0002", + "\u1b14\u1b15\u0007V\u0002\u0002\u1b15\u040a\u0003\u0002\u0002\u0002", + "\u1b16\u1b17\u0007H\u0002\u0002\u1b17\u1b18\u0007Q\u0002\u0002\u1b18", + "\u1b19\u0007T\u0002\u0002\u1b19\u1b1a\u0007Y\u0002\u0002\u1b1a\u1b1b", + "\u0007C\u0002\u0002\u1b1b\u1b1c\u0007T\u0002\u0002\u1b1c\u1b1d\u0007", + "F\u0002\u0002\u1b1d\u1b1e\u0007a\u0002\u0002\u1b1e\u1b1f\u0007Q\u0002", + "\u0002\u1b1f\u1b20\u0007P\u0002\u0002\u1b20\u1b21\u0007N\u0002\u0002", + "\u1b21\u1b22\u0007[\u0002\u0002\u1b22\u040c\u0003\u0002\u0002\u0002", + "\u1b23\u1b24\u0007H\u0002\u0002\u1b24\u1b25\u0007W\u0002\u0002\u1b25", + "\u1b26\u0007N\u0002\u0002\u1b26\u1b27\u0007N\u0002\u0002\u1b27\u1b28", + "\u0007U\u0002\u0002\u1b28\u1b29\u0007E\u0002\u0002\u1b29\u1b2a\u0007", + "C\u0002\u0002\u1b2a\u1b2b\u0007P\u0002\u0002\u1b2b\u040e\u0003\u0002", + "\u0002\u0002\u1b2c\u1b2d\u0007H\u0002\u0002\u1b2d\u1b2e\u0007W\u0002", + "\u0002\u1b2e\u1b2f\u0007N\u0002\u0002\u1b2f\u1b30\u0007N\u0002\u0002", + "\u1b30\u1b31\u0007V\u0002\u0002\u1b31\u1b32\u0007G\u0002\u0002\u1b32", + "\u1b33\u0007Z\u0002\u0002\u1b33\u1b34\u0007V\u0002\u0002\u1b34\u0410", + "\u0003\u0002\u0002\u0002\u1b35\u1b36\u0007I\u0002\u0002\u1b36\u1b37", + "\u0007D\u0002\u0002\u1b37\u0412\u0003\u0002\u0002\u0002\u1b38\u1b39", + "\u0007I\u0002\u0002\u1b39\u1b3a\u0007G\u0002\u0002\u1b3a\u1b3b\u0007", + "V\u0002\u0002\u1b3b\u1b3c\u0007F\u0002\u0002\u1b3c\u1b3d\u0007C\u0002", + "\u0002\u1b3d\u1b3e\u0007V\u0002\u0002\u1b3e\u1b3f\u0007G\u0002\u0002", + "\u1b3f\u0414\u0003\u0002\u0002\u0002\u1b40\u1b41\u0007I\u0002\u0002", + "\u1b41\u1b42\u0007G\u0002\u0002\u1b42\u1b43\u0007V\u0002\u0002\u1b43", + "\u1b44\u0007W\u0002\u0002\u1b44\u1b45\u0007V\u0002\u0002\u1b45\u1b46", + "\u0007E\u0002\u0002\u1b46\u1b47\u0007F\u0002\u0002\u1b47\u1b48\u0007", + "C\u0002\u0002\u1b48\u1b49\u0007V\u0002\u0002\u1b49\u1b4a\u0007G\u0002", + "\u0002\u1b4a\u0416\u0003\u0002\u0002\u0002\u1b4b\u1b4c\u0007I\u0002", + "\u0002\u1b4c\u1b4d\u0007N\u0002\u0002\u1b4d\u1b4e\u0007Q\u0002\u0002", + "\u1b4e\u1b4f\u0007D\u0002\u0002\u1b4f\u1b50\u0007C\u0002\u0002\u1b50", + "\u1b51\u0007N\u0002\u0002\u1b51\u0418\u0003\u0002\u0002\u0002\u1b52", + "\u1b53\u0007I\u0002\u0002\u1b53\u1b54\u0007Q\u0002\u0002\u1b54\u041a", + "\u0003\u0002\u0002\u0002\u1b55\u1b56\u0007I\u0002\u0002\u1b56\u1b57", + "\u0007T\u0002\u0002\u1b57\u1b58\u0007Q\u0002\u0002\u1b58\u1b59\u0007", + "W\u0002\u0002\u1b59\u1b5a\u0007R\u0002\u0002\u1b5a\u1b5b\u0007a\u0002", + "\u0002\u1b5b\u1b5c\u0007O\u0002\u0002\u1b5c\u1b5d\u0007C\u0002\u0002", + "\u1b5d\u1b5e\u0007Z\u0002\u0002\u1b5e\u1b5f\u0007a\u0002\u0002\u1b5f", + "\u1b60\u0007T\u0002\u0002\u1b60\u1b61\u0007G\u0002\u0002\u1b61\u1b62", + "\u0007S\u0002\u0002\u1b62\u1b63\u0007W\u0002\u0002\u1b63\u1b64\u0007", + "G\u0002\u0002\u1b64\u1b65\u0007U\u0002\u0002\u1b65\u1b66\u0007V\u0002", + "\u0002\u1b66\u1b67\u0007U\u0002\u0002\u1b67\u041c\u0003\u0002\u0002", + "\u0002\u1b68\u1b69\u0007I\u0002\u0002\u1b69\u1b6a\u0007T\u0002\u0002", + "\u1b6a\u1b6b\u0007Q\u0002\u0002\u1b6b\u1b6c\u0007W\u0002\u0002\u1b6c", + "\u1b6d\u0007R\u0002\u0002\u1b6d\u1b6e\u0007K\u0002\u0002\u1b6e\u1b6f", + "\u0007P\u0002\u0002\u1b6f\u1b70\u0007I\u0002\u0002\u1b70\u041e\u0003", + "\u0002\u0002\u0002\u1b71\u1b72\u0007I\u0002\u0002\u1b72\u1b73\u0007", + "T\u0002\u0002\u1b73\u1b74\u0007Q\u0002\u0002\u1b74\u1b75\u0007W\u0002", + "\u0002\u1b75\u1b76\u0007R\u0002\u0002\u1b76\u1b77\u0007K\u0002\u0002", + "\u1b77\u1b78\u0007P\u0002\u0002\u1b78\u1b79\u0007I\u0002\u0002\u1b79", + "\u1b7a\u0007a\u0002\u0002\u1b7a\u1b7b\u0007K\u0002\u0002\u1b7b\u1b7c", + "\u0007F\u0002\u0002\u1b7c\u0420\u0003\u0002\u0002\u0002\u1b7d\u1b7e", + "\u0007J\u0002\u0002\u1b7e\u1b7f\u0007C\u0002\u0002\u1b7f\u1b80\u0007", + "F\u0002\u0002\u1b80\u1b81\u0007T\u0002\u0002\u1b81\u0422\u0003\u0002", + "\u0002\u0002\u1b82\u1b83\u0007J\u0002\u0002\u1b83\u1b84\u0007C\u0002", + "\u0002\u1b84\u1b85\u0007U\u0002\u0002\u1b85\u1b86\u0007J\u0002\u0002", + "\u1b86\u0424\u0003\u0002\u0002\u0002\u1b87\u1b88\u0007J\u0002\u0002", + "\u1b88\u1b89\u0007G\u0002\u0002\u1b89\u1b8a\u0007C\u0002\u0002\u1b8a", + "\u1b8b\u0007N\u0002\u0002\u1b8b\u1b8c\u0007V\u0002\u0002\u1b8c\u1b8d", + "\u0007J\u0002\u0002\u1b8d\u1b8e\u0007a\u0002\u0002\u1b8e\u1b8f\u0007", + "E\u0002\u0002\u1b8f\u1b90\u0007J\u0002\u0002\u1b90\u1b91\u0007G\u0002", + "\u0002\u1b91\u1b92\u0007E\u0002\u0002\u1b92\u1b93\u0007M\u0002\u0002", + "\u1b93\u1b94\u0007a\u0002\u0002\u1b94\u1b95\u0007V\u0002\u0002\u1b95", + "\u1b96\u0007K\u0002\u0002\u1b96\u1b97\u0007O\u0002\u0002\u1b97\u1b98", + "\u0007G\u0002\u0002\u1b98\u1b99\u0007Q\u0002\u0002\u1b99\u1b9a\u0007", + "W\u0002\u0002\u1b9a\u1b9b\u0007V\u0002\u0002\u1b9b\u0426\u0003\u0002", + "\u0002\u0002\u1b9c\u1b9d\u0007J\u0002\u0002\u1b9d\u1b9e\u0007K\u0002", + "\u0002\u1b9e\u1b9f\u0007I\u0002\u0002\u1b9f\u1ba0\u0007J\u0002\u0002", + "\u1ba0\u0428\u0003\u0002\u0002\u0002\u1ba1\u1ba2\u0007J\u0002\u0002", + "\u1ba2\u1ba3\u0007Q\u0002\u0002\u1ba3\u1ba4\u0007P\u0002\u0002\u1ba4", + "\u1ba5\u0007Q\u0002\u0002\u1ba5\u1ba6\u0007T\u0002\u0002\u1ba6\u1ba7", + "\u0007a\u0002\u0002\u1ba7\u1ba8\u0007D\u0002\u0002\u1ba8\u1ba9\u0007", + "T\u0002\u0002\u1ba9\u1baa\u0007Q\u0002\u0002\u1baa\u1bab\u0007M\u0002", + "\u0002\u1bab\u1bac\u0007G\u0002\u0002\u1bac\u1bad\u0007T\u0002\u0002", + "\u1bad\u1bae\u0007a\u0002\u0002\u1bae\u1baf\u0007R\u0002\u0002\u1baf", + "\u1bb0\u0007T\u0002\u0002\u1bb0\u1bb1\u0007K\u0002\u0002\u1bb1\u1bb2", + "\u0007Q\u0002\u0002\u1bb2\u1bb3\u0007T\u0002\u0002\u1bb3\u1bb4\u0007", + "K\u0002\u0002\u1bb4\u1bb5\u0007V\u0002\u0002\u1bb5\u1bb6\u0007[\u0002", + "\u0002\u1bb6\u042a\u0003\u0002\u0002\u0002\u1bb7\u1bb8\u0007J\u0002", + "\u0002\u1bb8\u1bb9\u0007Q\u0002\u0002\u1bb9\u1bba\u0007W\u0002\u0002", + "\u1bba\u1bbb\u0007T\u0002\u0002\u1bbb\u1bbc\u0007U\u0002\u0002\u1bbc", + "\u042c\u0003\u0002\u0002\u0002\u1bbd\u1bbe\u0007K\u0002\u0002\u1bbe", + "\u1bbf\u0007F\u0002\u0002\u1bbf\u1bc0\u0007G\u0002\u0002\u1bc0\u1bc1", + "\u0007P\u0002\u0002\u1bc1\u1bc2\u0007V\u0002\u0002\u1bc2\u1bc3\u0007", + "K\u0002\u0002\u1bc3\u1bc4\u0007V\u0002\u0002\u1bc4\u1bc5\u0007[\u0002", + "\u0002\u1bc5\u1bc6\u0007a\u0002\u0002\u1bc6\u1bc7\u0007X\u0002\u0002", + "\u1bc7\u1bc8\u0007C\u0002\u0002\u1bc8\u1bc9\u0007N\u0002\u0002\u1bc9", + "\u1bca\u0007W\u0002\u0002\u1bca\u1bcb\u0007G\u0002\u0002\u1bcb\u042e", + "\u0003\u0002\u0002\u0002\u1bcc\u1bcd\u0007K\u0002\u0002\u1bcd\u1bce", + "\u0007I\u0002\u0002\u1bce\u1bcf\u0007P\u0002\u0002\u1bcf\u1bd0\u0007", + "Q\u0002\u0002\u1bd0\u1bd1\u0007T\u0002\u0002\u1bd1\u1bd2\u0007G\u0002", + "\u0002\u1bd2\u1bd3\u0007a\u0002\u0002\u1bd3\u1bd4\u0007P\u0002\u0002", + "\u1bd4\u1bd5\u0007Q\u0002\u0002\u1bd5\u1bd6\u0007P\u0002\u0002\u1bd6", + "\u1bd7\u0007E\u0002\u0002\u1bd7\u1bd8\u0007N\u0002\u0002\u1bd8\u1bd9", + "\u0007W\u0002\u0002\u1bd9\u1bda\u0007U\u0002\u0002\u1bda\u1bdb\u0007", + "V\u0002\u0002\u1bdb\u1bdc\u0007G\u0002\u0002\u1bdc\u1bdd\u0007T\u0002", + "\u0002\u1bdd\u1bde\u0007G\u0002\u0002\u1bde\u1bdf\u0007F\u0002\u0002", + "\u1bdf\u1be0\u0007a\u0002\u0002\u1be0\u1be1\u0007E\u0002\u0002\u1be1", + "\u1be2\u0007Q\u0002\u0002\u1be2\u1be3\u0007N\u0002\u0002\u1be3\u1be4", + "\u0007W\u0002\u0002\u1be4\u1be5\u0007O\u0002\u0002\u1be5\u1be6\u0007", + "P\u0002\u0002\u1be6\u1be7\u0007U\u0002\u0002\u1be7\u1be8\u0007V\u0002", + "\u0002\u1be8\u1be9\u0007Q\u0002\u0002\u1be9\u1bea\u0007T\u0002\u0002", + "\u1bea\u1beb\u0007G\u0002\u0002\u1beb\u1bec\u0007a\u0002\u0002\u1bec", + "\u1bed\u0007K\u0002\u0002\u1bed\u1bee\u0007P\u0002\u0002\u1bee\u1bef", + "\u0007F\u0002\u0002\u1bef\u1bf0\u0007G\u0002\u0002\u1bf0\u1bf1\u0007", + "Z\u0002\u0002\u1bf1\u0430\u0003\u0002\u0002\u0002\u1bf2\u1bf3\u0007", + "K\u0002\u0002\u1bf3\u1bf4\u0007O\u0002\u0002\u1bf4\u1bf5\u0007O\u0002", + "\u0002\u1bf5\u1bf6\u0007G\u0002\u0002\u1bf6\u1bf7\u0007F\u0002\u0002", + "\u1bf7\u1bf8\u0007K\u0002\u0002\u1bf8\u1bf9\u0007C\u0002\u0002\u1bf9", + "\u1bfa\u0007V\u0002\u0002\u1bfa\u1bfb\u0007G\u0002\u0002\u1bfb\u0432", + "\u0003\u0002\u0002\u0002\u1bfc\u1bfd\u0007K\u0002\u0002\u1bfd\u1bfe", + "\u0007O\u0002\u0002\u1bfe\u1bff\u0007R\u0002\u0002\u1bff\u1c00\u0007", + "G\u0002\u0002\u1c00\u1c01\u0007T\u0002\u0002\u1c01\u1c02\u0007U\u0002", + "\u0002\u1c02\u1c03\u0007Q\u0002\u0002\u1c03\u1c04\u0007P\u0002\u0002", + "\u1c04\u1c05\u0007C\u0002\u0002\u1c05\u1c06\u0007V\u0002\u0002\u1c06", + "\u1c07\u0007G\u0002\u0002\u1c07\u0434\u0003\u0002\u0002\u0002\u1c08", + "\u1c09\u0007K\u0002\u0002\u1c09\u1c0a\u0007O\u0002\u0002\u1c0a\u1c0b", + "\u0007R\u0002\u0002\u1c0b\u1c0c\u0007Q\u0002\u0002\u1c0c\u1c0d\u0007", + "T\u0002\u0002\u1c0d\u1c0e\u0007V\u0002\u0002\u1c0e\u1c0f\u0007C\u0002", + "\u0002\u1c0f\u1c10\u0007P\u0002\u0002\u1c10\u1c11\u0007E\u0002\u0002", + "\u1c11\u1c12\u0007G\u0002\u0002\u1c12\u0436\u0003\u0002\u0002\u0002", + "\u1c13\u1c14\u0007K\u0002\u0002\u1c14\u1c15\u0007P\u0002\u0002\u1c15", + "\u1c16\u0007E\u0002\u0002\u1c16\u1c17\u0007N\u0002\u0002\u1c17\u1c18", + "\u0007W\u0002\u0002\u1c18\u1c19\u0007F\u0002\u0002\u1c19\u1c1a\u0007", + "G\u0002\u0002\u1c1a\u1c1b\u0007a\u0002\u0002\u1c1b\u1c1c\u0007P\u0002", + "\u0002\u1c1c\u1c1d\u0007W\u0002\u0002\u1c1d\u1c1e\u0007N\u0002\u0002", + "\u1c1e\u1c1f\u0007N\u0002\u0002\u1c1f\u1c20\u0007a\u0002\u0002\u1c20", + "\u1c21\u0007X\u0002\u0002\u1c21\u1c22\u0007C\u0002\u0002\u1c22\u1c23", + "\u0007N\u0002\u0002\u1c23\u1c24\u0007W\u0002\u0002\u1c24\u1c25\u0007", + "G\u0002\u0002\u1c25\u1c26\u0007U\u0002\u0002\u1c26\u0438\u0003\u0002", + "\u0002\u0002\u1c27\u1c28\u0007K\u0002\u0002\u1c28\u1c29\u0007P\u0002", + "\u0002\u1c29\u1c2a\u0007E\u0002\u0002\u1c2a\u1c2b\u0007T\u0002\u0002", + "\u1c2b\u1c2c\u0007G\u0002\u0002\u1c2c\u1c2d\u0007O\u0002\u0002\u1c2d", + "\u1c2e\u0007G\u0002\u0002\u1c2e\u1c2f\u0007P\u0002\u0002\u1c2f\u1c30", + "\u0007V\u0002\u0002\u1c30\u1c31\u0007C\u0002\u0002\u1c31\u1c32\u0007", + "N\u0002\u0002\u1c32\u043a\u0003\u0002\u0002\u0002\u1c33\u1c34\u0007", + "K\u0002\u0002\u1c34\u1c35\u0007P\u0002\u0002\u1c35\u1c36\u0007K\u0002", + "\u0002\u1c36\u1c37\u0007V\u0002\u0002\u1c37\u1c38\u0007K\u0002\u0002", + "\u1c38\u1c39\u0007C\u0002\u0002\u1c39\u1c3a\u0007V\u0002\u0002\u1c3a", + "\u1c3b\u0007Q\u0002\u0002\u1c3b\u1c3c\u0007T\u0002\u0002\u1c3c\u043c", + "\u0003\u0002\u0002\u0002\u1c3d\u1c3e\u0007K\u0002\u0002\u1c3e\u1c3f", + "\u0007P\u0002\u0002\u1c3f\u1c40\u0007R\u0002\u0002\u1c40\u1c41\u0007", + "W\u0002\u0002\u1c41\u1c42\u0007V\u0002\u0002\u1c42\u043e\u0003\u0002", + "\u0002\u0002\u1c43\u1c44\u0007K\u0002\u0002\u1c44\u1c45\u0007P\u0002", + "\u0002\u1c45\u1c46\u0007U\u0002\u0002\u1c46\u1c47\u0007G\u0002\u0002", + "\u1c47\u1c48\u0007P\u0002\u0002\u1c48\u1c49\u0007U\u0002\u0002\u1c49", + "\u1c4a\u0007K\u0002\u0002\u1c4a\u1c4b\u0007V\u0002\u0002\u1c4b\u1c4c", + "\u0007K\u0002\u0002\u1c4c\u1c4d\u0007X\u0002\u0002\u1c4d\u1c4e\u0007", + "G\u0002\u0002\u1c4e\u0440\u0003\u0002\u0002\u0002\u1c4f\u1c50\u0007", + "K\u0002\u0002\u1c50\u1c51\u0007P\u0002\u0002\u1c51\u1c52\u0007U\u0002", + "\u0002\u1c52\u1c53\u0007G\u0002\u0002\u1c53\u1c54\u0007T\u0002\u0002", + "\u1c54\u1c55\u0007V\u0002\u0002\u1c55\u1c56\u0007G\u0002\u0002\u1c56", + "\u1c57\u0007F\u0002\u0002\u1c57\u0442\u0003\u0002\u0002\u0002\u1c58", + "\u1c59\u0007K\u0002\u0002\u1c59\u1c5a\u0007P\u0002\u0002\u1c5a\u1c5b", + "\u0007V\u0002\u0002\u1c5b\u0444\u0003\u0002\u0002\u0002\u1c5c\u1c5d", + "\u0007K\u0002\u0002\u1c5d\u1c5e\u0007R\u0002\u0002\u1c5e\u0446\u0003", + "\u0002\u0002\u0002\u1c5f\u1c60\u0007K\u0002\u0002\u1c60\u1c61\u0007", + "U\u0002\u0002\u1c61\u1c62\u0007Q\u0002\u0002\u1c62\u1c63\u0007N\u0002", + "\u0002\u1c63\u1c64\u0007C\u0002\u0002\u1c64\u1c65\u0007V\u0002\u0002", + "\u1c65\u1c66\u0007K\u0002\u0002\u1c66\u1c67\u0007Q\u0002\u0002\u1c67", + "\u1c68\u0007P\u0002\u0002\u1c68\u0448\u0003\u0002\u0002\u0002\u1c69", + "\u1c6a\u0007L\u0002\u0002\u1c6a\u1c6b\u0007Q\u0002\u0002\u1c6b\u1c6c", + "\u0007D\u0002\u0002\u1c6c\u044a\u0003\u0002\u0002\u0002\u1c6d\u1c6e", + "\u0007L\u0002\u0002\u1c6e\u1c6f\u0007U\u0002\u0002\u1c6f\u1c70\u0007", + "Q\u0002\u0002\u1c70\u1c71\u0007P\u0002\u0002\u1c71\u044c\u0003\u0002", + "\u0002\u0002\u1c72\u1c73\u0007M\u0002\u0002\u1c73\u1c74\u0007D\u0002", + "\u0002\u1c74\u044e\u0003\u0002\u0002\u0002\u1c75\u1c76\u0007M\u0002", + "\u0002\u1c76\u1c77\u0007G\u0002\u0002\u1c77\u1c78\u0007G\u0002\u0002", + "\u1c78\u1c79\u0007R\u0002\u0002\u1c79\u0450\u0003\u0002\u0002\u0002", + "\u1c7a\u1c7b\u0007M\u0002\u0002\u1c7b\u1c7c\u0007G\u0002\u0002\u1c7c", + "\u1c7d\u0007G\u0002\u0002\u1c7d\u1c7e\u0007R\u0002\u0002\u1c7e\u1c7f", + "\u0007H\u0002\u0002\u1c7f\u1c80\u0007K\u0002\u0002\u1c80\u1c81\u0007", + "Z\u0002\u0002\u1c81\u1c82\u0007G\u0002\u0002\u1c82\u1c83\u0007F\u0002", + "\u0002\u1c83\u0452\u0003\u0002\u0002\u0002\u1c84\u1c85\u0007M\u0002", + "\u0002\u1c85\u1c86\u0007G\u0002\u0002\u1c86\u1c87\u0007[\u0002\u0002", + "\u1c87\u1c88\u0007a\u0002\u0002\u1c88\u1c89\u0007U\u0002\u0002\u1c89", + "\u1c8a\u0007Q\u0002\u0002\u1c8a\u1c8b\u0007W\u0002\u0002\u1c8b\u1c8c", + "\u0007T\u0002\u0002\u1c8c\u1c8d\u0007E\u0002\u0002\u1c8d\u1c8e\u0007", + "G\u0002\u0002\u1c8e\u0454\u0003\u0002\u0002\u0002\u1c8f\u1c90\u0007", + "M\u0002\u0002\u1c90\u1c91\u0007G\u0002\u0002\u1c91\u1c92\u0007[\u0002", + "\u0002\u1c92\u1c93\u0007U\u0002\u0002\u1c93\u0456\u0003\u0002\u0002", + "\u0002\u1c94\u1c95\u0007M\u0002\u0002\u1c95\u1c96\u0007G\u0002\u0002", + "\u1c96\u1c97\u0007[\u0002\u0002\u1c97\u1c98\u0007U\u0002\u0002\u1c98", + "\u1c99\u0007G\u0002\u0002\u1c99\u1c9a\u0007V\u0002\u0002\u1c9a\u0458", + "\u0003\u0002\u0002\u0002\u1c9b\u1c9c\u0007N\u0002\u0002\u1c9c\u1c9d", + "\u0007C\u0002\u0002\u1c9d\u1c9e\u0007I\u0002\u0002\u1c9e\u045a\u0003", + "\u0002\u0002\u0002\u1c9f\u1ca0\u0007N\u0002\u0002\u1ca0\u1ca1\u0007", + "C\u0002\u0002\u1ca1\u1ca2\u0007U\u0002\u0002\u1ca2\u1ca3\u0007V\u0002", + "\u0002\u1ca3\u045c\u0003\u0002\u0002\u0002\u1ca4\u1ca5\u0007N\u0002", + "\u0002\u1ca5\u1ca6\u0007C\u0002\u0002\u1ca6\u1ca7\u0007U\u0002\u0002", + "\u1ca7\u1ca8\u0007V\u0002\u0002\u1ca8\u1ca9\u0007a\u0002\u0002\u1ca9", + "\u1caa\u0007X\u0002\u0002\u1caa\u1cab\u0007C\u0002\u0002\u1cab\u1cac", + "\u0007N\u0002\u0002\u1cac\u1cad\u0007W\u0002\u0002\u1cad\u1cae\u0007", + "G\u0002\u0002\u1cae\u045e\u0003\u0002\u0002\u0002\u1caf\u1cb0\u0007", + "N\u0002\u0002\u1cb0\u1cb1\u0007G\u0002\u0002\u1cb1\u1cb2\u0007C\u0002", + "\u0002\u1cb2\u1cb3\u0007F\u0002\u0002\u1cb3\u0460\u0003\u0002\u0002", + "\u0002\u1cb4\u1cb5\u0007N\u0002\u0002\u1cb5\u1cb6\u0007G\u0002\u0002", + "\u1cb6\u1cb7\u0007X\u0002\u0002\u1cb7\u1cb8\u0007G\u0002\u0002\u1cb8", + "\u1cb9\u0007N\u0002\u0002\u1cb9\u0462\u0003\u0002\u0002\u0002\u1cba", + "\u1cbb\u0007N\u0002\u0002\u1cbb\u1cbc\u0007K\u0002\u0002\u1cbc\u1cbd", + "\u0007U\u0002\u0002\u1cbd\u1cbe\u0007V\u0002\u0002\u1cbe\u0464\u0003", + "\u0002\u0002\u0002\u1cbf\u1cc0\u0007N\u0002\u0002\u1cc0\u1cc1\u0007", + "K\u0002\u0002\u1cc1\u1cc2\u0007U\u0002\u0002\u1cc2\u1cc3\u0007V\u0002", + "\u0002\u1cc3\u1cc4\u0007G\u0002\u0002\u1cc4\u1cc5\u0007P\u0002\u0002", + "\u1cc5\u1cc6\u0007G\u0002\u0002\u1cc6\u1cc7\u0007T\u0002\u0002\u1cc7", + "\u0466\u0003\u0002\u0002\u0002\u1cc8\u1cc9\u0007N\u0002\u0002\u1cc9", + "\u1cca\u0007K\u0002\u0002\u1cca\u1ccb\u0007U\u0002\u0002\u1ccb\u1ccc", + "\u0007V\u0002\u0002\u1ccc\u1ccd\u0007G\u0002\u0002\u1ccd\u1cce\u0007", + "P\u0002\u0002\u1cce\u1ccf\u0007G\u0002\u0002\u1ccf\u1cd0\u0007T\u0002", + "\u0002\u1cd0\u1cd1\u0007a\u0002\u0002\u1cd1\u1cd2\u0007W\u0002\u0002", + "\u1cd2\u1cd3\u0007T\u0002\u0002\u1cd3\u1cd4\u0007N\u0002\u0002\u1cd4", + "\u0468\u0003\u0002\u0002\u0002\u1cd5\u1cd6\u0007N\u0002\u0002\u1cd6", + "\u1cd7\u0007Q\u0002\u0002\u1cd7\u1cd8\u0007D\u0002\u0002\u1cd8\u1cd9", + "\u0007a\u0002\u0002\u1cd9\u1cda\u0007E\u0002\u0002\u1cda\u1cdb\u0007", + "Q\u0002\u0002\u1cdb\u1cdc\u0007O\u0002\u0002\u1cdc\u1cdd\u0007R\u0002", + "\u0002\u1cdd\u1cde\u0007C\u0002\u0002\u1cde\u1cdf\u0007E\u0002\u0002", + "\u1cdf\u1ce0\u0007V\u0002\u0002\u1ce0\u1ce1\u0007K\u0002\u0002\u1ce1", + "\u1ce2\u0007Q\u0002\u0002\u1ce2\u1ce3\u0007P\u0002\u0002\u1ce3\u046a", + "\u0003\u0002\u0002\u0002\u1ce4\u1ce5\u0007N\u0002\u0002\u1ce5\u1ce6", + "\u0007Q\u0002\u0002\u1ce6\u1ce7\u0007E\u0002\u0002\u1ce7\u1ce8\u0007", + "C\u0002\u0002\u1ce8\u1ce9\u0007N\u0002\u0002\u1ce9\u046c\u0003\u0002", + "\u0002\u0002\u1cea\u1ceb\u0007N\u0002\u0002\u1ceb\u1cec\u0007Q\u0002", + "\u0002\u1cec\u1ced\u0007E\u0002\u0002\u1ced\u1cee\u0007C\u0002\u0002", + "\u1cee\u1cef\u0007V\u0002\u0002\u1cef\u1cf0\u0007K\u0002\u0002\u1cf0", + "\u1cf1\u0007Q\u0002\u0002\u1cf1\u1cf2\u0007P\u0002\u0002\u1cf2\u046e", + "\u0003\u0002\u0002\u0002\u1cf3\u1cf4\u0007N\u0002\u0002\u1cf4\u1cf5", + "\u0007Q\u0002\u0002\u1cf5\u1cf6\u0007E\u0002\u0002\u1cf6\u1cf7\u0007", + "M\u0002\u0002\u1cf7\u0470\u0003\u0002\u0002\u0002\u1cf8\u1cf9\u0007", + "N\u0002\u0002\u1cf9\u1cfa\u0007Q\u0002\u0002\u1cfa\u1cfb\u0007E\u0002", + "\u0002\u1cfb\u1cfc\u0007M\u0002\u0002\u1cfc\u1cfd\u0007a\u0002\u0002", + "\u1cfd\u1cfe\u0007G\u0002\u0002\u1cfe\u1cff\u0007U\u0002\u0002\u1cff", + "\u1d00\u0007E\u0002\u0002\u1d00\u1d01\u0007C\u0002\u0002\u1d01\u1d02", + "\u0007N\u0002\u0002\u1d02\u1d03\u0007C\u0002\u0002\u1d03\u1d04\u0007", + "V\u0002\u0002\u1d04\u1d05\u0007K\u0002\u0002\u1d05\u1d06\u0007Q\u0002", + "\u0002\u1d06\u1d07\u0007P\u0002\u0002\u1d07\u0472\u0003\u0002\u0002", + "\u0002\u1d08\u1d09\u0007N\u0002\u0002\u1d09\u1d0a\u0007Q\u0002\u0002", + "\u1d0a\u1d0b\u0007I\u0002\u0002\u1d0b\u1d0c\u0007K\u0002\u0002\u1d0c", + "\u1d0d\u0007P\u0002\u0002\u1d0d\u0474\u0003\u0002\u0002\u0002\u1d0e", + "\u1d0f\u0007N\u0002\u0002\u1d0f\u1d10\u0007Q\u0002\u0002\u1d10\u1d11", + "\u0007Q\u0002\u0002\u1d11\u1d12\u0007R\u0002\u0002\u1d12\u0476\u0003", + "\u0002\u0002\u0002\u1d13\u1d14\u0007N\u0002\u0002\u1d14\u1d15\u0007", + "Q\u0002\u0002\u1d15\u1d16\u0007Y\u0002\u0002\u1d16\u0478\u0003\u0002", + "\u0002\u0002\u1d17\u1d18\u0007O\u0002\u0002\u1d18\u1d19\u0007C\u0002", + "\u0002\u1d19\u1d1a\u0007P\u0002\u0002\u1d1a\u1d1b\u0007W\u0002\u0002", + "\u1d1b\u1d1c\u0007C\u0002\u0002\u1d1c\u1d1d\u0007N\u0002\u0002\u1d1d", + "\u047a\u0003\u0002\u0002\u0002\u1d1e\u1d1f\u0007O\u0002\u0002\u1d1f", + "\u1d20\u0007C\u0002\u0002\u1d20\u1d21\u0007T\u0002\u0002\u1d21\u1d22", + "\u0007M\u0002\u0002\u1d22\u047c\u0003\u0002\u0002\u0002\u1d23\u1d24", + "\u0007O\u0002\u0002\u1d24\u1d25\u0007C\u0002\u0002\u1d25\u1d26\u0007", + "V\u0002\u0002\u1d26\u1d27\u0007G\u0002\u0002\u1d27\u1d28\u0007T\u0002", + "\u0002\u1d28\u1d29\u0007K\u0002\u0002\u1d29\u1d2a\u0007C\u0002\u0002", + "\u1d2a\u1d2b\u0007N\u0002\u0002\u1d2b\u1d2c\u0007K\u0002\u0002\u1d2c", + "\u1d2d\u0007\\\u0002\u0002\u1d2d\u1d2e\u0007G\u0002\u0002\u1d2e\u1d2f", + "\u0007F\u0002\u0002\u1d2f\u047e\u0003\u0002\u0002\u0002\u1d30\u1d31", + "\u0007O\u0002\u0002\u1d31\u1d32\u0007C\u0002\u0002\u1d32\u1d33\u0007", + "Z\u0002\u0002\u1d33\u0480\u0003\u0002\u0002\u0002\u1d34\u1d35\u0007", + "O\u0002\u0002\u1d35\u1d36\u0007C\u0002\u0002\u1d36\u1d37\u0007Z\u0002", + "\u0002\u1d37\u1d38\u0007a\u0002\u0002\u1d38\u1d39\u0007E\u0002\u0002", + "\u1d39\u1d3a\u0007R\u0002\u0002\u1d3a\u1d3b\u0007W\u0002\u0002\u1d3b", + "\u1d3c\u0007a\u0002\u0002\u1d3c\u1d3d\u0007R\u0002\u0002\u1d3d\u1d3e", + "\u0007G\u0002\u0002\u1d3e\u1d3f\u0007T\u0002\u0002\u1d3f\u1d40\u0007", + "E\u0002\u0002\u1d40\u1d41\u0007G\u0002\u0002\u1d41\u1d42\u0007P\u0002", + "\u0002\u1d42\u1d43\u0007V\u0002\u0002\u1d43\u0482\u0003\u0002\u0002", + "\u0002\u1d44\u1d45\u0007O\u0002\u0002\u1d45\u1d46\u0007C\u0002\u0002", + "\u1d46\u1d47\u0007Z\u0002\u0002\u1d47\u1d48\u0007a\u0002\u0002\u1d48", + "\u1d49\u0007F\u0002\u0002\u1d49\u1d4a\u0007Q\u0002\u0002\u1d4a\u1d4b", + "\u0007R\u0002\u0002\u1d4b\u0484\u0003\u0002\u0002\u0002\u1d4c\u1d4d", + "\u0007O\u0002\u0002\u1d4d\u1d4e\u0007C\u0002\u0002\u1d4e\u1d4f\u0007", + "Z\u0002\u0002\u1d4f\u1d50\u0007a\u0002\u0002\u1d50\u1d51\u0007H\u0002", + "\u0002\u1d51\u1d52\u0007K\u0002\u0002\u1d52\u1d53\u0007N\u0002\u0002", + "\u1d53\u1d54\u0007G\u0002\u0002\u1d54\u1d55\u0007U\u0002\u0002\u1d55", + "\u0486\u0003\u0002\u0002\u0002\u1d56\u1d57\u0007O\u0002\u0002\u1d57", + "\u1d58\u0007C\u0002\u0002\u1d58\u1d59\u0007Z\u0002\u0002\u1d59\u1d5a", + "\u0007a\u0002\u0002\u1d5a\u1d5b\u0007K\u0002\u0002\u1d5b\u1d5c\u0007", + "Q\u0002\u0002\u1d5c\u1d5d\u0007R\u0002\u0002\u1d5d\u1d5e\u0007U\u0002", + "\u0002\u1d5e\u1d5f\u0007a\u0002\u0002\u1d5f\u1d60\u0007R\u0002\u0002", + "\u1d60\u1d61\u0007G\u0002\u0002\u1d61\u1d62\u0007T\u0002\u0002\u1d62", + "\u1d63\u0007a\u0002\u0002\u1d63\u1d64\u0007X\u0002\u0002\u1d64\u1d65", + "\u0007Q\u0002\u0002\u1d65\u1d66\u0007N\u0002\u0002\u1d66\u1d67\u0007", + "W\u0002\u0002\u1d67\u1d68\u0007O\u0002\u0002\u1d68\u1d69\u0007G\u0002", + "\u0002\u1d69\u0488\u0003\u0002\u0002\u0002\u1d6a\u1d6b\u0007O\u0002", + "\u0002\u1d6b\u1d6c\u0007C\u0002\u0002\u1d6c\u1d6d\u0007Z\u0002\u0002", + "\u1d6d\u1d6e\u0007a\u0002\u0002\u1d6e\u1d6f\u0007O\u0002\u0002\u1d6f", + "\u1d70\u0007G\u0002\u0002\u1d70\u1d71\u0007O\u0002\u0002\u1d71\u1d72", + "\u0007Q\u0002\u0002\u1d72\u1d73\u0007T\u0002\u0002\u1d73\u1d74\u0007", + "[\u0002\u0002\u1d74\u1d75\u0007a\u0002\u0002\u1d75\u1d76\u0007R\u0002", + "\u0002\u1d76\u1d77\u0007G\u0002\u0002\u1d77\u1d78\u0007T\u0002\u0002", + "\u1d78\u1d79\u0007E\u0002\u0002\u1d79\u1d7a\u0007G\u0002\u0002\u1d7a", + "\u1d7b\u0007P\u0002\u0002\u1d7b\u1d7c\u0007V\u0002\u0002\u1d7c\u048a", + "\u0003\u0002\u0002\u0002\u1d7d\u1d7e\u0007O\u0002\u0002\u1d7e\u1d7f", + "\u0007C\u0002\u0002\u1d7f\u1d80\u0007Z\u0002\u0002\u1d80\u1d81\u0007", + "a\u0002\u0002\u1d81\u1d82\u0007R\u0002\u0002\u1d82\u1d83\u0007T\u0002", + "\u0002\u1d83\u1d84\u0007Q\u0002\u0002\u1d84\u1d85\u0007E\u0002\u0002", + "\u1d85\u1d86\u0007G\u0002\u0002\u1d86\u1d87\u0007U\u0002\u0002\u1d87", + "\u1d88\u0007U\u0002\u0002\u1d88\u1d89\u0007G\u0002\u0002\u1d89\u1d8a", + "\u0007U\u0002\u0002\u1d8a\u048c\u0003\u0002\u0002\u0002\u1d8b\u1d8c", + "\u0007O\u0002\u0002\u1d8c\u1d8d\u0007C\u0002\u0002\u1d8d\u1d8e\u0007", + "Z\u0002\u0002\u1d8e\u1d8f\u0007a\u0002\u0002\u1d8f\u1d90\u0007S\u0002", + "\u0002\u1d90\u1d91\u0007W\u0002\u0002\u1d91\u1d92\u0007G\u0002\u0002", + "\u1d92\u1d93\u0007W\u0002\u0002\u1d93\u1d94\u0007G\u0002\u0002\u1d94", + "\u1d95\u0007a\u0002\u0002\u1d95\u1d96\u0007T\u0002\u0002\u1d96\u1d97", + "\u0007G\u0002\u0002\u1d97\u1d98\u0007C\u0002\u0002\u1d98\u1d99\u0007", + "F\u0002\u0002\u1d99\u1d9a\u0007G\u0002\u0002\u1d9a\u1d9b\u0007T\u0002", + "\u0002\u1d9b\u1d9c\u0007U\u0002\u0002\u1d9c\u048e\u0003\u0002\u0002", + "\u0002\u1d9d\u1d9e\u0007O\u0002\u0002\u1d9e\u1d9f\u0007C\u0002\u0002", + "\u1d9f\u1da0\u0007Z\u0002\u0002\u1da0\u1da1\u0007a\u0002\u0002\u1da1", + "\u1da2\u0007T\u0002\u0002\u1da2\u1da3\u0007Q\u0002\u0002\u1da3\u1da4", + "\u0007N\u0002\u0002\u1da4\u1da5\u0007N\u0002\u0002\u1da5\u1da6\u0007", + "Q\u0002\u0002\u1da6\u1da7\u0007X\u0002\u0002\u1da7\u1da8\u0007G\u0002", + "\u0002\u1da8\u1da9\u0007T\u0002\u0002\u1da9\u1daa\u0007a\u0002\u0002", + "\u1daa\u1dab\u0007H\u0002\u0002\u1dab\u1dac\u0007K\u0002\u0002\u1dac", + "\u1dad\u0007N\u0002\u0002\u1dad\u1dae\u0007G\u0002\u0002\u1dae\u1daf", + "\u0007U\u0002\u0002\u1daf\u0490\u0003\u0002\u0002\u0002\u1db0\u1db1", + "\u0007O\u0002\u0002\u1db1\u1db2\u0007C\u0002\u0002\u1db2\u1db3\u0007", + "Z\u0002\u0002\u1db3\u1db4\u0007F\u0002\u0002\u1db4\u1db5\u0007Q\u0002", + "\u0002\u1db5\u1db6\u0007R\u0002\u0002\u1db6\u0492\u0003\u0002\u0002", + "\u0002\u1db7\u1db8\u0007O\u0002\u0002\u1db8\u1db9\u0007C\u0002\u0002", + "\u1db9\u1dba\u0007Z\u0002\u0002\u1dba\u1dbb\u0007T\u0002\u0002\u1dbb", + "\u1dbc\u0007G\u0002\u0002\u1dbc\u1dbd\u0007E\u0002\u0002\u1dbd\u1dbe", + "\u0007W\u0002\u0002\u1dbe\u1dbf\u0007T\u0002\u0002\u1dbf\u1dc0\u0007", + "U\u0002\u0002\u1dc0\u1dc1\u0007K\u0002\u0002\u1dc1\u1dc2\u0007Q\u0002", + "\u0002\u1dc2\u1dc3\u0007P\u0002\u0002\u1dc3\u0494\u0003\u0002\u0002", + "\u0002\u1dc4\u1dc5\u0007O\u0002\u0002\u1dc5\u1dc6\u0007C\u0002\u0002", + "\u1dc6\u1dc7\u0007Z\u0002\u0002\u1dc7\u1dc8\u0007U\u0002\u0002\u1dc8", + "\u1dc9\u0007K\u0002\u0002\u1dc9\u1dca\u0007\\\u0002\u0002\u1dca\u1dcb", + "\u0007G\u0002\u0002\u1dcb\u0496\u0003\u0002\u0002\u0002\u1dcc\u1dcd", + "\u0007O\u0002\u0002\u1dcd\u1dce\u0007D\u0002\u0002\u1dce\u0498\u0003", + "\u0002\u0002\u0002\u1dcf\u1dd0\u0007O\u0002\u0002\u1dd0\u1dd1\u0007", + "G\u0002\u0002\u1dd1\u1dd2\u0007F\u0002\u0002\u1dd2\u1dd3\u0007K\u0002", + "\u0002\u1dd3\u1dd4\u0007W\u0002\u0002\u1dd4\u1dd5\u0007O\u0002\u0002", + "\u1dd5\u049a\u0003\u0002\u0002\u0002\u1dd6\u1dd7\u0007O\u0002\u0002", + "\u1dd7\u1dd8\u0007G\u0002\u0002\u1dd8\u1dd9\u0007O\u0002\u0002\u1dd9", + "\u1dda\u0007Q\u0002\u0002\u1dda\u1ddb\u0007T\u0002\u0002\u1ddb\u1ddc", + "\u0007[\u0002\u0002\u1ddc\u1ddd\u0007a\u0002\u0002\u1ddd\u1dde\u0007", + "Q\u0002\u0002\u1dde\u1ddf\u0007R\u0002\u0002\u1ddf\u1de0\u0007V\u0002", + "\u0002\u1de0\u1de1\u0007K\u0002\u0002\u1de1\u1de2\u0007O\u0002\u0002", + "\u1de2\u1de3\u0007K\u0002\u0002\u1de3\u1de4\u0007\\\u0002\u0002\u1de4", + "\u1de5\u0007G\u0002\u0002\u1de5\u1de6\u0007F\u0002\u0002\u1de6\u1de7", + "\u0007a\u0002\u0002\u1de7\u1de8\u0007F\u0002\u0002\u1de8\u1de9\u0007", + "C\u0002\u0002\u1de9\u1dea\u0007V\u0002\u0002\u1dea\u1deb\u0007C\u0002", + "\u0002\u1deb\u049c\u0003\u0002\u0002\u0002\u1dec\u1ded\u0007O\u0002", + "\u0002\u1ded\u1dee\u0007G\u0002\u0002\u1dee\u1def\u0007U\u0002\u0002", + "\u1def\u1df0\u0007U\u0002\u0002\u1df0\u1df1\u0007C\u0002\u0002\u1df1", + "\u1df2\u0007I\u0002\u0002\u1df2\u1df3\u0007G\u0002\u0002\u1df3\u049e", + "\u0003\u0002\u0002\u0002\u1df4\u1df5\u0007O\u0002\u0002\u1df5\u1df6", + "\u0007K\u0002\u0002\u1df6\u1df7\u0007P\u0002\u0002\u1df7\u04a0\u0003", + "\u0002\u0002\u0002\u1df8\u1df9\u0007O\u0002\u0002\u1df9\u1dfa\u0007", + "K\u0002\u0002\u1dfa\u1dfb\u0007P\u0002\u0002\u1dfb\u1dfc\u0007a\u0002", + "\u0002\u1dfc\u1dfd\u0007C\u0002\u0002\u1dfd\u1dfe\u0007E\u0002\u0002", + "\u1dfe\u1dff\u0007V\u0002\u0002\u1dff\u1e00\u0007K\u0002\u0002\u1e00", + "\u1e01\u0007X\u0002\u0002\u1e01\u1e02\u0007G\u0002\u0002\u1e02\u1e03", + "\u0007a\u0002\u0002\u1e03\u1e04\u0007T\u0002\u0002\u1e04\u1e05\u0007", + "Q\u0002\u0002\u1e05\u1e06\u0007Y\u0002\u0002\u1e06\u1e07\u0007X\u0002", + "\u0002\u1e07\u1e08\u0007G\u0002\u0002\u1e08\u1e09\u0007T\u0002\u0002", + "\u1e09\u1e0a\u0007U\u0002\u0002\u1e0a\u1e0b\u0007K\u0002\u0002\u1e0b", + "\u1e0c\u0007Q\u0002\u0002\u1e0c\u1e0d\u0007P\u0002\u0002\u1e0d\u04a2", + "\u0003\u0002\u0002\u0002\u1e0e\u1e0f\u0007O\u0002\u0002\u1e0f\u1e10", + "\u0007K\u0002\u0002\u1e10\u1e11\u0007P\u0002\u0002\u1e11\u1e12\u0007", + "a\u0002\u0002\u1e12\u1e13\u0007E\u0002\u0002\u1e13\u1e14\u0007R\u0002", + "\u0002\u1e14\u1e15\u0007W\u0002\u0002\u1e15\u1e16\u0007a\u0002\u0002", + "\u1e16\u1e17\u0007R\u0002\u0002\u1e17\u1e18\u0007G\u0002\u0002\u1e18", + "\u1e19\u0007T\u0002\u0002\u1e19\u1e1a\u0007E\u0002\u0002\u1e1a\u1e1b", + "\u0007G\u0002\u0002\u1e1b\u1e1c\u0007P\u0002\u0002\u1e1c\u1e1d\u0007", + "V\u0002\u0002\u1e1d\u04a4\u0003\u0002\u0002\u0002\u1e1e\u1e1f\u0007", + "O\u0002\u0002\u1e1f\u1e20\u0007K\u0002\u0002\u1e20\u1e21\u0007P\u0002", + "\u0002\u1e21\u1e22\u0007a\u0002\u0002\u1e22\u1e23\u0007K\u0002\u0002", + "\u1e23\u1e24\u0007Q\u0002\u0002\u1e24\u1e25\u0007R\u0002\u0002\u1e25", + "\u1e26\u0007U\u0002\u0002\u1e26\u1e27\u0007a\u0002\u0002\u1e27\u1e28", + "\u0007R\u0002\u0002\u1e28\u1e29\u0007G\u0002\u0002\u1e29\u1e2a\u0007", + "T\u0002\u0002\u1e2a\u1e2b\u0007a\u0002\u0002\u1e2b\u1e2c\u0007X\u0002", + "\u0002\u1e2c\u1e2d\u0007Q\u0002\u0002\u1e2d\u1e2e\u0007N\u0002\u0002", + "\u1e2e\u1e2f\u0007W\u0002\u0002\u1e2f\u1e30\u0007O\u0002\u0002\u1e30", + "\u1e31\u0007G\u0002\u0002\u1e31\u04a6\u0003\u0002\u0002\u0002\u1e32", + "\u1e33\u0007O\u0002\u0002\u1e33\u1e34\u0007K\u0002\u0002\u1e34\u1e35", + "\u0007P\u0002\u0002\u1e35\u1e36\u0007a\u0002\u0002\u1e36\u1e37\u0007", + "O\u0002\u0002\u1e37\u1e38\u0007G\u0002\u0002\u1e38\u1e39\u0007O\u0002", + "\u0002\u1e39\u1e3a\u0007Q\u0002\u0002\u1e3a\u1e3b\u0007T\u0002\u0002", + "\u1e3b\u1e3c\u0007[\u0002\u0002\u1e3c\u1e3d\u0007a\u0002\u0002\u1e3d", + "\u1e3e\u0007R\u0002\u0002\u1e3e\u1e3f\u0007G\u0002\u0002\u1e3f\u1e40", + "\u0007T\u0002\u0002\u1e40\u1e41\u0007E\u0002\u0002\u1e41\u1e42\u0007", + "G\u0002\u0002\u1e42\u1e43\u0007P\u0002\u0002\u1e43\u1e44\u0007V\u0002", + "\u0002\u1e44\u04a8\u0003\u0002\u0002\u0002\u1e45\u1e46\u0007O\u0002", + "\u0002\u1e46\u1e47\u0007K\u0002\u0002\u1e47\u1e48\u0007P\u0002\u0002", + "\u1e48\u1e49\u0007W\u0002\u0002\u1e49\u1e4a\u0007V\u0002\u0002\u1e4a", + "\u1e4b\u0007G\u0002\u0002\u1e4b\u1e4c\u0007U\u0002\u0002\u1e4c\u04aa", + "\u0003\u0002\u0002\u0002\u1e4d\u1e4e\u0007O\u0002\u0002\u1e4e\u1e4f", + "\u0007K\u0002\u0002\u1e4f\u1e50\u0007T\u0002\u0002\u1e50\u1e51\u0007", + "T\u0002\u0002\u1e51\u1e52\u0007Q\u0002\u0002\u1e52\u1e53\u0007T\u0002", + "\u0002\u1e53\u1e54\u0007a\u0002\u0002\u1e54\u1e55\u0007C\u0002\u0002", + "\u1e55\u1e56\u0007F\u0002\u0002\u1e56\u1e57\u0007F\u0002\u0002\u1e57", + "\u1e58\u0007T\u0002\u0002\u1e58\u1e59\u0007G\u0002\u0002\u1e59\u1e5a", + "\u0007U\u0002\u0002\u1e5a\u1e5b\u0007U\u0002\u0002\u1e5b\u04ac\u0003", + "\u0002\u0002\u0002\u1e5c\u1e5d\u0007O\u0002\u0002\u1e5d\u1e5e\u0007", + "K\u0002\u0002\u1e5e\u1e5f\u0007Z\u0002\u0002\u1e5f\u1e60\u0007G\u0002", + "\u0002\u1e60\u1e61\u0007F\u0002\u0002\u1e61\u1e62\u0007a\u0002\u0002", + "\u1e62\u1e63\u0007R\u0002\u0002\u1e63\u1e64\u0007C\u0002\u0002\u1e64", + "\u1e65\u0007I\u0002\u0002\u1e65\u1e66\u0007G\u0002\u0002\u1e66\u1e67", + "\u0007a\u0002\u0002\u1e67\u1e68\u0007C\u0002\u0002\u1e68\u1e69\u0007", + "N\u0002\u0002\u1e69\u1e6a\u0007N\u0002\u0002\u1e6a\u1e6b\u0007Q\u0002", + "\u0002\u1e6b\u1e6c\u0007E\u0002\u0002\u1e6c\u1e6d\u0007C\u0002\u0002", + "\u1e6d\u1e6e\u0007V\u0002\u0002\u1e6e\u1e6f\u0007K\u0002\u0002\u1e6f", + "\u1e70\u0007Q\u0002\u0002\u1e70\u1e71\u0007P\u0002\u0002\u1e71\u04ae", + "\u0003\u0002\u0002\u0002\u1e72\u1e73\u0007O\u0002\u0002\u1e73\u1e74", + "\u0007Q\u0002\u0002\u1e74\u1e75\u0007F\u0002\u0002\u1e75\u1e76\u0007", + "G\u0002\u0002\u1e76\u04b0\u0003\u0002\u0002\u0002\u1e77\u1e78\u0007", + "O\u0002\u0002\u1e78\u1e79\u0007Q\u0002\u0002\u1e79\u1e7a\u0007F\u0002", + "\u0002\u1e7a\u1e7b\u0007K\u0002\u0002\u1e7b\u1e7c\u0007H\u0002\u0002", + "\u1e7c\u1e7d\u0007[\u0002\u0002\u1e7d\u04b2\u0003\u0002\u0002\u0002", + "\u1e7e\u1e7f\u0007O\u0002\u0002\u1e7f\u1e80\u0007Q\u0002\u0002\u1e80", + "\u1e81\u0007X\u0002\u0002\u1e81\u1e82\u0007G\u0002\u0002\u1e82\u04b4", + "\u0003\u0002\u0002\u0002\u1e83\u1e84\u0007O\u0002\u0002\u1e84\u1e85", + "\u0007W\u0002\u0002\u1e85\u1e86\u0007N\u0002\u0002\u1e86\u1e87\u0007", + "V\u0002\u0002\u1e87\u1e88\u0007K\u0002\u0002\u1e88\u1e89\u0007a\u0002", + "\u0002\u1e89\u1e8a\u0007W\u0002\u0002\u1e8a\u1e8b\u0007U\u0002\u0002", + "\u1e8b\u1e8c\u0007G\u0002\u0002\u1e8c\u1e8d\u0007T\u0002\u0002\u1e8d", + "\u04b6\u0003\u0002\u0002\u0002\u1e8e\u1e8f\u0007P\u0002\u0002\u1e8f", + "\u1e90\u0007C\u0002\u0002\u1e90\u1e91\u0007O\u0002\u0002\u1e91\u1e92", + "\u0007G\u0002\u0002\u1e92\u04b8\u0003\u0002\u0002\u0002\u1e93\u1e94", + "\u0007P\u0002\u0002\u1e94\u1e95\u0007G\u0002\u0002\u1e95\u1e96\u0007", + "U\u0002\u0002\u1e96\u1e97\u0007V\u0002\u0002\u1e97\u1e98\u0007G\u0002", + "\u0002\u1e98\u1e99\u0007F\u0002\u0002\u1e99\u1e9a\u0007a\u0002\u0002", + "\u1e9a\u1e9b\u0007V\u0002\u0002\u1e9b\u1e9c\u0007T\u0002\u0002\u1e9c", + "\u1e9d\u0007K\u0002\u0002\u1e9d\u1e9e\u0007I\u0002\u0002\u1e9e\u1e9f", + "\u0007I\u0002\u0002\u1e9f\u1ea0\u0007G\u0002\u0002\u1ea0\u1ea1\u0007", + "T\u0002\u0002\u1ea1\u1ea2\u0007U\u0002\u0002\u1ea2\u04ba\u0003\u0002", + "\u0002\u0002\u1ea3\u1ea4\u0007P\u0002\u0002\u1ea4\u1ea5\u0007G\u0002", + "\u0002\u1ea5\u1ea6\u0007Y\u0002\u0002\u1ea6\u1ea7\u0007a\u0002\u0002", + "\u1ea7\u1ea8\u0007C\u0002\u0002\u1ea8\u1ea9\u0007E\u0002\u0002\u1ea9", + "\u1eaa\u0007E\u0002\u0002\u1eaa\u1eab\u0007Q\u0002\u0002\u1eab\u1eac", + "\u0007W\u0002\u0002\u1eac\u1ead\u0007P\u0002\u0002\u1ead\u1eae\u0007", + "V\u0002\u0002\u1eae\u04bc\u0003\u0002\u0002\u0002\u1eaf\u1eb0\u0007", + "P\u0002\u0002\u1eb0\u1eb1\u0007G\u0002\u0002\u1eb1\u1eb2\u0007Y\u0002", + "\u0002\u1eb2\u1eb3\u0007a\u0002\u0002\u1eb3\u1eb4\u0007D\u0002\u0002", + "\u1eb4\u1eb5\u0007T\u0002\u0002\u1eb5\u1eb6\u0007Q\u0002\u0002\u1eb6", + "\u1eb7\u0007M\u0002\u0002\u1eb7\u1eb8\u0007G\u0002\u0002\u1eb8\u1eb9", + "\u0007T\u0002\u0002\u1eb9\u04be\u0003\u0002\u0002\u0002\u1eba\u1ebb", + "\u0007P\u0002\u0002\u1ebb\u1ebc\u0007G\u0002\u0002\u1ebc\u1ebd\u0007", + "Y\u0002\u0002\u1ebd\u1ebe\u0007a\u0002\u0002\u1ebe\u1ebf\u0007R\u0002", + "\u0002\u1ebf\u1ec0\u0007C\u0002\u0002\u1ec0\u1ec1\u0007U\u0002\u0002", + "\u1ec1\u1ec2\u0007U\u0002\u0002\u1ec2\u1ec3\u0007Y\u0002\u0002\u1ec3", + "\u1ec4\u0007Q\u0002\u0002\u1ec4\u1ec5\u0007T\u0002\u0002\u1ec5\u1ec6", + "\u0007F\u0002\u0002\u1ec6\u04c0\u0003\u0002\u0002\u0002\u1ec7\u1ec8", + "\u0007P\u0002\u0002\u1ec8\u1ec9\u0007G\u0002\u0002\u1ec9\u1eca\u0007", + "Z\u0002\u0002\u1eca\u1ecb\u0007V\u0002\u0002\u1ecb\u04c2\u0003\u0002", + "\u0002\u0002\u1ecc\u1ecd\u0007P\u0002\u0002\u1ecd\u1ece\u0007Q\u0002", + "\u0002\u1ece\u04c4\u0003\u0002\u0002\u0002\u1ecf\u1ed0\u0007P\u0002", + "\u0002\u1ed0\u1ed1\u0007Q\u0002\u0002\u1ed1\u1ed2\u0007a\u0002\u0002", + "\u1ed2\u1ed3\u0007V\u0002\u0002\u1ed3\u1ed4\u0007T\u0002\u0002\u1ed4", + "\u1ed5\u0007W\u0002\u0002\u1ed5\u1ed6\u0007P\u0002\u0002\u1ed6\u1ed7", + "\u0007E\u0002\u0002\u1ed7\u1ed8\u0007C\u0002\u0002\u1ed8\u1ed9\u0007", + "V\u0002\u0002\u1ed9\u1eda\u0007G\u0002\u0002\u1eda\u04c6\u0003\u0002", + "\u0002\u0002\u1edb\u1edc\u0007P\u0002\u0002\u1edc\u1edd\u0007Q\u0002", + "\u0002\u1edd\u1ede\u0007a\u0002\u0002\u1ede\u1edf\u0007Y\u0002\u0002", + "\u1edf\u1ee0\u0007C\u0002\u0002\u1ee0\u1ee1\u0007K\u0002\u0002\u1ee1", + "\u1ee2\u0007V\u0002\u0002\u1ee2\u04c8\u0003\u0002\u0002\u0002\u1ee3", + "\u1ee4\u0007P\u0002\u0002\u1ee4\u1ee5\u0007Q\u0002\u0002\u1ee5\u1ee6", + "\u0007E\u0002\u0002\u1ee6\u1ee7\u0007Q\u0002\u0002\u1ee7\u1ee8\u0007", + "W\u0002\u0002\u1ee8\u1ee9\u0007P\u0002\u0002\u1ee9\u1eea\u0007V\u0002", + "\u0002\u1eea\u04ca\u0003\u0002\u0002\u0002\u1eeb\u1eec\u0007P\u0002", + "\u0002\u1eec\u1eed\u0007Q\u0002\u0002\u1eed\u1eee\u0007F\u0002\u0002", + "\u1eee\u1eef\u0007G\u0002\u0002\u1eef\u1ef0\u0007U\u0002\u0002\u1ef0", + "\u04cc\u0003\u0002\u0002\u0002\u1ef1\u1ef2\u0007P\u0002\u0002\u1ef2", + "\u1ef3\u0007Q\u0002\u0002\u1ef3\u1ef4\u0007G\u0002\u0002\u1ef4\u1ef5", + "\u0007Z\u0002\u0002\u1ef5\u1ef6\u0007R\u0002\u0002\u1ef6\u1ef7\u0007", + "C\u0002\u0002\u1ef7\u1ef8\u0007P\u0002\u0002\u1ef8\u1ef9\u0007F\u0002", + "\u0002\u1ef9\u04ce\u0003\u0002\u0002\u0002\u1efa\u1efb\u0007P\u0002", + "\u0002\u1efb\u1efc\u0007Q\u0002\u0002\u1efc\u1efd\u0007P\u0002\u0002", + "\u1efd\u1efe\u0007a\u0002\u0002\u1efe\u1eff\u0007V\u0002\u0002\u1eff", + "\u1f00\u0007T\u0002\u0002\u1f00\u1f01\u0007C\u0002\u0002\u1f01\u1f02", + "\u0007P\u0002\u0002\u1f02\u1f03\u0007U\u0002\u0002\u1f03\u1f04\u0007", + "C\u0002\u0002\u1f04\u1f05\u0007E\u0002\u0002\u1f05\u1f06\u0007V\u0002", + "\u0002\u1f06\u1f07\u0007G\u0002\u0002\u1f07\u1f08\u0007F\u0002\u0002", + "\u1f08\u1f09\u0007a\u0002\u0002\u1f09\u1f0a\u0007C\u0002\u0002\u1f0a", + "\u1f0b\u0007E\u0002\u0002\u1f0b\u1f0c\u0007E\u0002\u0002\u1f0c\u1f0d", + "\u0007G\u0002\u0002\u1f0d\u1f0e\u0007U\u0002\u0002\u1f0e\u1f0f\u0007", + "U\u0002\u0002\u1f0f\u04d0\u0003\u0002\u0002\u0002\u1f10\u1f11\u0007", + "P\u0002\u0002\u1f11\u1f12\u0007Q\u0002\u0002\u1f12\u1f13\u0007T\u0002", + "\u0002\u1f13\u1f14\u0007G\u0002\u0002\u1f14\u1f15\u0007E\u0002\u0002", + "\u1f15\u1f16\u0007Q\u0002\u0002\u1f16\u1f17\u0007O\u0002\u0002\u1f17", + "\u1f18\u0007R\u0002\u0002\u1f18\u1f19\u0007W\u0002\u0002\u1f19\u1f1a", + "\u0007V\u0002\u0002\u1f1a\u1f1b\u0007G\u0002\u0002\u1f1b\u04d2\u0003", + "\u0002\u0002\u0002\u1f1c\u1f1d\u0007P\u0002\u0002\u1f1d\u1f1e\u0007", + "Q\u0002\u0002\u1f1e\u1f1f\u0007T\u0002\u0002\u1f1f\u1f20\u0007G\u0002", + "\u0002\u1f20\u1f21\u0007E\u0002\u0002\u1f21\u1f22\u0007Q\u0002\u0002", + "\u1f22\u1f23\u0007X\u0002\u0002\u1f23\u1f24\u0007G\u0002\u0002\u1f24", + "\u1f25\u0007T\u0002\u0002\u1f25\u1f26\u0007[\u0002\u0002\u1f26\u04d4", + "\u0003\u0002\u0002\u0002\u1f27\u1f28\u0007P\u0002\u0002\u1f28\u1f29", + "\u0007Q\u0002\u0002\u1f29\u1f2a\u0007Y\u0002\u0002\u1f2a\u1f2b\u0007", + "C\u0002\u0002\u1f2b\u1f2c\u0007K\u0002\u0002\u1f2c\u1f2d\u0007V\u0002", + "\u0002\u1f2d\u04d6\u0003\u0002\u0002\u0002\u1f2e\u1f2f\u0007P\u0002", + "\u0002\u1f2f\u1f30\u0007V\u0002\u0002\u1f30\u1f31\u0007K\u0002\u0002", + "\u1f31\u1f32\u0007N\u0002\u0002\u1f32\u1f33\u0007G\u0002\u0002\u1f33", + "\u04d8\u0003\u0002\u0002\u0002\u1f34\u1f35\u0007P\u0002\u0002\u1f35", + "\u1f36\u0007W\u0002\u0002\u1f36\u1f37\u0007O\u0002\u0002\u1f37\u1f38", + "\u0007C\u0002\u0002\u1f38\u1f39\u0007P\u0002\u0002\u1f39\u1f3a\u0007", + "Q\u0002\u0002\u1f3a\u1f3b\u0007F\u0002\u0002\u1f3b\u1f3c\u0007G\u0002", + "\u0002\u1f3c\u04da\u0003\u0002\u0002\u0002\u1f3d\u1f3e\u0007P\u0002", + "\u0002\u1f3e\u1f3f\u0007W\u0002\u0002\u1f3f\u1f40\u0007O\u0002\u0002", + "\u1f40\u1f41\u0007D\u0002\u0002\u1f41\u1f42\u0007G\u0002\u0002\u1f42", + "\u1f43\u0007T\u0002\u0002\u1f43\u04dc\u0003\u0002\u0002\u0002\u1f44", + "\u1f45\u0007P\u0002\u0002\u1f45\u1f46\u0007W\u0002\u0002\u1f46\u1f47", + "\u0007O\u0002\u0002\u1f47\u1f48\u0007G\u0002\u0002\u1f48\u1f49\u0007", + "T\u0002\u0002\u1f49\u1f4a\u0007K\u0002\u0002\u1f4a\u1f4b\u0007E\u0002", + "\u0002\u1f4b\u1f4c\u0007a\u0002\u0002\u1f4c\u1f4d\u0007T\u0002\u0002", + "\u1f4d\u1f4e\u0007Q\u0002\u0002\u1f4e\u1f4f\u0007W\u0002\u0002\u1f4f", + "\u1f50\u0007P\u0002\u0002\u1f50\u1f51\u0007F\u0002\u0002\u1f51\u1f52", + "\u0007C\u0002\u0002\u1f52\u1f53\u0007D\u0002\u0002\u1f53\u1f54\u0007", + "Q\u0002\u0002\u1f54\u1f55\u0007T\u0002\u0002\u1f55\u1f56\u0007V\u0002", + "\u0002\u1f56\u04de\u0003\u0002\u0002\u0002\u1f57\u1f58\u0007Q\u0002", + "\u0002\u1f58\u1f59\u0007D\u0002\u0002\u1f59\u1f5a\u0007L\u0002\u0002", + "\u1f5a\u1f5b\u0007G\u0002\u0002\u1f5b\u1f5c\u0007E\u0002\u0002\u1f5c", + "\u1f5d\u0007V\u0002\u0002\u1f5d\u04e0\u0003\u0002\u0002\u0002\u1f5e", + "\u1f5f\u0007Q\u0002\u0002\u1f5f\u1f60\u0007H\u0002\u0002\u1f60\u1f61", + "\u0007H\u0002\u0002\u1f61\u1f62\u0007N\u0002\u0002\u1f62\u1f63\u0007", + "K\u0002\u0002\u1f63\u1f64\u0007P\u0002\u0002\u1f64\u1f65\u0007G\u0002", + "\u0002\u1f65\u04e2\u0003\u0002\u0002\u0002\u1f66\u1f67\u0007Q\u0002", + "\u0002\u1f67\u1f68\u0007H\u0002\u0002\u1f68\u1f69\u0007H\u0002\u0002", + "\u1f69\u1f6a\u0007U\u0002\u0002\u1f6a\u1f6b\u0007G\u0002\u0002\u1f6b", + "\u1f6c\u0007V\u0002\u0002\u1f6c\u04e4\u0003\u0002\u0002\u0002\u1f6d", + "\u1f6e\u0007Q\u0002\u0002\u1f6e\u1f6f\u0007N\u0002\u0002\u1f6f\u1f70", + "\u0007F\u0002\u0002\u1f70\u1f71\u0007a\u0002\u0002\u1f71\u1f72\u0007", + "C\u0002\u0002\u1f72\u1f73\u0007E\u0002\u0002\u1f73\u1f74\u0007E\u0002", + "\u0002\u1f74\u1f75\u0007Q\u0002\u0002\u1f75\u1f76\u0007W\u0002\u0002", + "\u1f76\u1f77\u0007P\u0002\u0002\u1f77\u1f78\u0007V\u0002\u0002\u1f78", + "\u04e6\u0003\u0002\u0002\u0002\u1f79\u1f7a\u0007Q\u0002\u0002\u1f7a", + "\u1f7b\u0007P\u0002\u0002\u1f7b\u1f7c\u0007N\u0002\u0002\u1f7c\u1f7d", + "\u0007K\u0002\u0002\u1f7d\u1f7e\u0007P\u0002\u0002\u1f7e\u1f7f\u0007", + "G\u0002\u0002\u1f7f\u04e8\u0003\u0002\u0002\u0002\u1f80\u1f81\u0007", + "Q\u0002\u0002\u1f81\u1f82\u0007P\u0002\u0002\u1f82\u1f83\u0007N\u0002", + "\u0002\u1f83\u1f84\u0007[\u0002\u0002\u1f84\u04ea\u0003\u0002\u0002", + "\u0002\u1f85\u1f86\u0007Q\u0002\u0002\u1f86\u1f87\u0007R\u0002\u0002", + "\u1f87\u1f88\u0007G\u0002\u0002\u1f88\u1f89\u0007P\u0002\u0002\u1f89", + "\u1f8a\u0007a\u0002\u0002\u1f8a\u1f8b\u0007G\u0002\u0002\u1f8b\u1f8c", + "\u0007Z\u0002\u0002\u1f8c\u1f8d\u0007K\u0002\u0002\u1f8d\u1f8e\u0007", + "U\u0002\u0002\u1f8e\u1f8f\u0007V\u0002\u0002\u1f8f\u1f90\u0007K\u0002", + "\u0002\u1f90\u1f91\u0007P\u0002\u0002\u1f91\u1f92\u0007I\u0002\u0002", + "\u1f92\u04ec\u0003\u0002\u0002\u0002\u1f93\u1f94\u0007Q\u0002\u0002", + "\u1f94\u1f95\u0007R\u0002\u0002\u1f95\u1f96\u0007V\u0002\u0002\u1f96", + "\u1f97\u0007K\u0002\u0002\u1f97\u1f98\u0007O\u0002\u0002\u1f98\u1f99", + "\u0007K\u0002\u0002\u1f99\u1f9a\u0007U\u0002\u0002\u1f9a\u1f9b\u0007", + "V\u0002\u0002\u1f9b\u1f9c\u0007K\u0002\u0002\u1f9c\u1f9d\u0007E\u0002", + "\u0002\u1f9d\u04ee\u0003\u0002\u0002\u0002\u1f9e\u1f9f\u0007Q\u0002", + "\u0002\u1f9f\u1fa0\u0007R\u0002\u0002\u1fa0\u1fa1\u0007V\u0002\u0002", + "\u1fa1\u1fa2\u0007K\u0002\u0002\u1fa2\u1fa3\u0007O\u0002\u0002\u1fa3", + "\u1fa4\u0007K\u0002\u0002\u1fa4\u1fa5\u0007\\\u0002\u0002\u1fa5\u1fa6", + "\u0007G\u0002\u0002\u1fa6\u04f0\u0003\u0002\u0002\u0002\u1fa7\u1fa8", + "\u0007Q\u0002\u0002\u1fa8\u1fa9\u0007W\u0002\u0002\u1fa9\u1faa\u0007", + "V\u0002\u0002\u1faa\u04f2\u0003\u0002\u0002\u0002\u1fab\u1fac\u0007", + "Q\u0002\u0002\u1fac\u1fad\u0007W\u0002\u0002\u1fad\u1fae\u0007V\u0002", + "\u0002\u1fae\u1faf\u0007R\u0002\u0002\u1faf\u1fb0\u0007W\u0002\u0002", + "\u1fb0\u1fb1\u0007V\u0002\u0002\u1fb1\u04f4\u0003\u0002\u0002\u0002", + "\u1fb2\u1fb3\u0007Q\u0002\u0002\u1fb3\u1fb4\u0007X\u0002\u0002\u1fb4", + "\u1fb5\u0007G\u0002\u0002\u1fb5\u1fb6\u0007T\u0002\u0002\u1fb6\u1fb7", + "\u0007T\u0002\u0002\u1fb7\u1fb8\u0007K\u0002\u0002\u1fb8\u1fb9\u0007", + "F\u0002\u0002\u1fb9\u1fba\u0007G\u0002\u0002\u1fba\u04f6\u0003\u0002", + "\u0002\u0002\u1fbb\u1fbc\u0007Q\u0002\u0002\u1fbc\u1fbd\u0007Y\u0002", + "\u0002\u1fbd\u1fbe\u0007P\u0002\u0002\u1fbe\u1fbf\u0007G\u0002\u0002", + "\u1fbf\u1fc0\u0007T\u0002\u0002\u1fc0\u04f8\u0003\u0002\u0002\u0002", + "\u1fc1\u1fc2\u0007R\u0002\u0002\u1fc2\u1fc3\u0007C\u0002\u0002\u1fc3", + "\u1fc4\u0007I\u0002\u0002\u1fc4\u1fc5\u0007G\u0002\u0002\u1fc5\u1fc6", + "\u0007a\u0002\u0002\u1fc6\u1fc7\u0007X\u0002\u0002\u1fc7\u1fc8\u0007", + "G\u0002\u0002\u1fc8\u1fc9\u0007T\u0002\u0002\u1fc9\u1fca\u0007K\u0002", + "\u0002\u1fca\u1fcb\u0007H\u0002\u0002\u1fcb\u1fcc\u0007[\u0002\u0002", + "\u1fcc\u04fa\u0003\u0002\u0002\u0002\u1fcd\u1fce\u0007R\u0002\u0002", + "\u1fce\u1fcf\u0007C\u0002\u0002\u1fcf\u1fd0\u0007T\u0002\u0002\u1fd0", + "\u1fd1\u0007C\u0002\u0002\u1fd1\u1fd2\u0007O\u0002\u0002\u1fd2\u1fd3", + "\u0007G\u0002\u0002\u1fd3\u1fd4\u0007V\u0002\u0002\u1fd4\u1fd5\u0007", + "G\u0002\u0002\u1fd5\u1fd6\u0007T\u0002\u0002\u1fd6\u1fd7\u0007K\u0002", + "\u0002\u1fd7\u1fd8\u0007\\\u0002\u0002\u1fd8\u1fd9\u0007C\u0002\u0002", + "\u1fd9\u1fda\u0007V\u0002\u0002\u1fda\u1fdb\u0007K\u0002\u0002\u1fdb", + "\u1fdc\u0007Q\u0002\u0002\u1fdc\u1fdd\u0007P\u0002\u0002\u1fdd\u04fc", + "\u0003\u0002\u0002\u0002\u1fde\u1fdf\u0007R\u0002\u0002\u1fdf\u1fe0", + "\u0007C\u0002\u0002\u1fe0\u1fe1\u0007T\u0002\u0002\u1fe1\u1fe2\u0007", + "V\u0002\u0002\u1fe2\u1fe3\u0007K\u0002\u0002\u1fe3\u1fe4\u0007V\u0002", + "\u0002\u1fe4\u1fe5\u0007K\u0002\u0002\u1fe5\u1fe6\u0007Q\u0002\u0002", + "\u1fe6\u1fe7\u0007P\u0002\u0002\u1fe7\u04fe\u0003\u0002\u0002\u0002", + "\u1fe8\u1fe9\u0007R\u0002\u0002\u1fe9\u1fea\u0007C\u0002\u0002\u1fea", + "\u1feb\u0007T\u0002\u0002\u1feb\u1fec\u0007V\u0002\u0002\u1fec\u1fed", + "\u0007K\u0002\u0002\u1fed\u1fee\u0007V\u0002\u0002\u1fee\u1fef\u0007", + "K\u0002\u0002\u1fef\u1ff0\u0007Q\u0002\u0002\u1ff0\u1ff1\u0007P\u0002", + "\u0002\u1ff1\u1ff2\u0007U\u0002\u0002\u1ff2\u0500\u0003\u0002\u0002", + "\u0002\u1ff3\u1ff4\u0007R\u0002\u0002\u1ff4\u1ff5\u0007C\u0002\u0002", + "\u1ff5\u1ff6\u0007T\u0002\u0002\u1ff6\u1ff7\u0007V\u0002\u0002\u1ff7", + "\u1ff8\u0007P\u0002\u0002\u1ff8\u1ff9\u0007G\u0002\u0002\u1ff9\u1ffa", + "\u0007T\u0002\u0002\u1ffa\u0502\u0003\u0002\u0002\u0002\u1ffb\u1ffc", + "\u0007R\u0002\u0002\u1ffc\u1ffd\u0007C\u0002\u0002\u1ffd\u1ffe\u0007", + "V\u0002\u0002\u1ffe\u1fff\u0007J\u0002\u0002\u1fff\u0504\u0003\u0002", + "\u0002\u0002\u2000\u2001\u0007R\u0002\u0002\u2001\u2002\u0007Q\u0002", + "\u0002\u2002\u2003\u0007K\u0002\u0002\u2003\u2004\u0007U\u0002\u0002", + "\u2004\u2005\u0007Q\u0002\u0002\u2005\u2006\u0007P\u0002\u0002\u2006", + "\u2007\u0007a\u0002\u0002\u2007\u2008\u0007O\u0002\u0002\u2008\u2009", + "\u0007G\u0002\u0002\u2009\u200a\u0007U\u0002\u0002\u200a\u200b\u0007", + "U\u0002\u0002\u200b\u200c\u0007C\u0002\u0002\u200c\u200d\u0007I\u0002", + "\u0002\u200d\u200e\u0007G\u0002\u0002\u200e\u200f\u0007a\u0002\u0002", + "\u200f\u2010\u0007J\u0002\u0002\u2010\u2011\u0007C\u0002\u0002\u2011", + "\u2012\u0007P\u0002\u0002\u2012\u2013\u0007F\u0002\u0002\u2013\u2014", + "\u0007N\u0002\u0002\u2014\u2015\u0007K\u0002\u0002\u2015\u2016\u0007", + "P\u0002\u0002\u2016\u2017\u0007I\u0002\u0002\u2017\u0506\u0003\u0002", + "\u0002\u0002\u2018\u2019\u0007R\u0002\u0002\u2019\u201a\u0007Q\u0002", + "\u0002\u201a\u201b\u0007Q\u0002\u0002\u201b\u201c\u0007N\u0002\u0002", + "\u201c\u0508\u0003\u0002\u0002\u0002\u201d\u201e\u0007R\u0002\u0002", + "\u201e\u201f\u0007Q\u0002\u0002\u201f\u2020\u0007T\u0002\u0002\u2020", + "\u2021\u0007V\u0002\u0002\u2021\u050a\u0003\u0002\u0002\u0002\u2022", + "\u2023\u0007R\u0002\u0002\u2023\u2024\u0007T\u0002\u0002\u2024\u2025", + "\u0007G\u0002\u0002\u2025\u2026\u0007E\u0002\u0002\u2026\u2027\u0007", + "G\u0002\u0002\u2027\u2028\u0007F\u0002\u0002\u2028\u2029\u0007K\u0002", + "\u0002\u2029\u202a\u0007P\u0002\u0002\u202a\u202b\u0007I\u0002\u0002", + "\u202b\u050c\u0003\u0002\u0002\u0002\u202c\u202d\u0007R\u0002\u0002", + "\u202d\u202e\u0007T\u0002\u0002\u202e\u202f\u0007K\u0002\u0002\u202f", + "\u2030\u0007O\u0002\u0002\u2030\u2031\u0007C\u0002\u0002\u2031\u2032", + "\u0007T\u0002\u0002\u2032\u2033\u0007[\u0002\u0002\u2033\u2034\u0007", + "a\u0002\u0002\u2034\u2035\u0007T\u0002\u0002\u2035\u2036\u0007Q\u0002", + "\u0002\u2036\u2037\u0007N\u0002\u0002\u2037\u2038\u0007G\u0002\u0002", + "\u2038\u050e\u0003\u0002\u0002\u0002\u2039\u203a\u0007R\u0002\u0002", + "\u203a\u203b\u0007T\u0002\u0002\u203b\u203c\u0007K\u0002\u0002\u203c", + "\u203d\u0007Q\u0002\u0002\u203d\u203e\u0007T\u0002\u0002\u203e\u0510", + "\u0003\u0002\u0002\u0002\u203f\u2040\u0007R\u0002\u0002\u2040\u2041", + "\u0007T\u0002\u0002\u2041\u2042\u0007K\u0002\u0002\u2042\u2043\u0007", + "Q\u0002\u0002\u2043\u2044\u0007T\u0002\u0002\u2044\u2045\u0007K\u0002", + "\u0002\u2045\u2046\u0007V\u0002\u0002\u2046\u2047\u0007[\u0002\u0002", + "\u2047\u0512\u0003\u0002\u0002\u0002\u2048\u2049\u0007R\u0002\u0002", + "\u2049\u204a\u0007T\u0002\u0002\u204a\u204b\u0007K\u0002\u0002\u204b", + "\u204c\u0007Q\u0002\u0002\u204c\u204d\u0007T\u0002\u0002\u204d\u204e", + "\u0007K\u0002\u0002\u204e\u204f\u0007V\u0002\u0002\u204f\u2050\u0007", + "[\u0002\u0002\u2050\u2051\u0007a\u0002\u0002\u2051\u2052\u0007N\u0002", + "\u0002\u2052\u2053\u0007G\u0002\u0002\u2053\u2054\u0007X\u0002\u0002", + "\u2054\u2055\u0007G\u0002\u0002\u2055\u2056\u0007N\u0002\u0002\u2056", + "\u0514\u0003\u0002\u0002\u0002\u2057\u2058\u0007R\u0002\u0002\u2058", + "\u2059\u0007T\u0002\u0002\u2059\u205a\u0007K\u0002\u0002\u205a\u205b", + "\u0007X\u0002\u0002\u205b\u205c\u0007C\u0002\u0002\u205c\u205d\u0007", + "V\u0002\u0002\u205d\u205e\u0007G\u0002\u0002\u205e\u0516\u0003\u0002", + "\u0002\u0002\u205f\u2060\u0007R\u0002\u0002\u2060\u2061\u0007T\u0002", + "\u0002\u2061\u2062\u0007K\u0002\u0002\u2062\u2063\u0007X\u0002\u0002", + "\u2063\u2064\u0007C\u0002\u0002\u2064\u2065\u0007V\u0002\u0002\u2065", + "\u2066\u0007G\u0002\u0002\u2066\u2067\u0007a\u0002\u0002\u2067\u2068", + "\u0007M\u0002\u0002\u2068\u2069\u0007G\u0002\u0002\u2069\u206a\u0007", + "[\u0002\u0002\u206a\u0518\u0003\u0002\u0002\u0002\u206b\u206c\u0007", + "R\u0002\u0002\u206c\u206d\u0007T\u0002\u0002\u206d\u206e\u0007K\u0002", + "\u0002\u206e\u206f\u0007X\u0002\u0002\u206f\u2070\u0007K\u0002\u0002", + "\u2070\u2071\u0007N\u0002\u0002\u2071\u2072\u0007G\u0002\u0002\u2072", + "\u2073\u0007I\u0002\u0002\u2073\u2074\u0007G\u0002\u0002\u2074\u2075", + "\u0007U\u0002\u0002\u2075\u051a\u0003\u0002\u0002\u0002\u2076\u2077", + "\u0007R\u0002\u0002\u2077\u2078\u0007T\u0002\u0002\u2078\u2079\u0007", + "Q\u0002\u0002\u2079\u207a\u0007E\u0002\u0002\u207a\u207b\u0007G\u0002", + "\u0002\u207b\u207c\u0007F\u0002\u0002\u207c\u207d\u0007W\u0002\u0002", + "\u207d\u207e\u0007T\u0002\u0002\u207e\u207f\u0007G\u0002\u0002\u207f", + "\u2080\u0007a\u0002\u0002\u2080\u2081\u0007P\u0002\u0002\u2081\u2082", + "\u0007C\u0002\u0002\u2082\u2083\u0007O\u0002\u0002\u2083\u2084\u0007", + "G\u0002\u0002\u2084\u051c\u0003\u0002\u0002\u0002\u2085\u2086\u0007", + "R\u0002\u0002\u2086\u2087\u0007T\u0002\u0002\u2087\u2088\u0007Q\u0002", + "\u0002\u2088\u2089\u0007R\u0002\u0002\u2089\u208a\u0007G\u0002\u0002", + "\u208a\u208b\u0007T\u0002\u0002\u208b\u208c\u0007V\u0002\u0002\u208c", + "\u208d\u0007[\u0002\u0002\u208d\u051e\u0003\u0002\u0002\u0002\u208e", + "\u208f\u0007R\u0002\u0002\u208f\u2090\u0007T\u0002\u0002\u2090\u2091", + "\u0007Q\u0002\u0002\u2091\u2092\u0007X\u0002\u0002\u2092\u2093\u0007", + "K\u0002\u0002\u2093\u2094\u0007F\u0002\u0002\u2094\u2095\u0007G\u0002", + "\u0002\u2095\u2096\u0007T\u0002\u0002\u2096\u0520\u0003\u0002\u0002", + "\u0002\u2097\u2098\u0007R\u0002\u0002\u2098\u2099\u0007T\u0002\u0002", + "\u2099\u209a\u0007Q\u0002\u0002\u209a\u209b\u0007X\u0002\u0002\u209b", + "\u209c\u0007K\u0002\u0002\u209c\u209d\u0007F\u0002\u0002\u209d\u209e", + "\u0007G\u0002\u0002\u209e\u209f\u0007T\u0002\u0002\u209f\u20a0\u0007", + "a\u0002\u0002\u20a0\u20a1\u0007M\u0002\u0002\u20a1\u20a2\u0007G\u0002", + "\u0002\u20a2\u20a3\u0007[\u0002\u0002\u20a3\u20a4\u0007a\u0002\u0002", + "\u20a4\u20a5\u0007P\u0002\u0002\u20a5\u20a6\u0007C\u0002\u0002\u20a6", + "\u20a7\u0007O\u0002\u0002\u20a7\u20a8\u0007G\u0002\u0002\u20a8\u0522", + "\u0003\u0002\u0002\u0002\u20a9\u20aa\u0007S\u0002\u0002\u20aa\u20ab", + "\u0007W\u0002\u0002\u20ab\u20ac\u0007G\u0002\u0002\u20ac\u20ad\u0007", + "T\u0002\u0002\u20ad\u20ae\u0007[\u0002\u0002\u20ae\u0524\u0003\u0002", + "\u0002\u0002\u20af\u20b0\u0007S\u0002\u0002\u20b0\u20b1\u0007W\u0002", + "\u0002\u20b1\u20b2\u0007G\u0002\u0002\u20b2\u20b3\u0007W\u0002\u0002", + "\u20b3\u20b4\u0007G\u0002\u0002\u20b4\u0526\u0003\u0002\u0002\u0002", + "\u20b5\u20b6\u0007S\u0002\u0002\u20b6\u20b7\u0007W\u0002\u0002\u20b7", + "\u20b8\u0007G\u0002\u0002\u20b8\u20b9\u0007W\u0002\u0002\u20b9\u20ba", + "\u0007G\u0002\u0002\u20ba\u20bb\u0007a\u0002\u0002\u20bb\u20bc\u0007", + "F\u0002\u0002\u20bc\u20bd\u0007G\u0002\u0002\u20bd\u20be\u0007N\u0002", + "\u0002\u20be\u20bf\u0007C\u0002\u0002\u20bf\u20c0\u0007[\u0002\u0002", + "\u20c0\u0528\u0003\u0002\u0002\u0002\u20c1\u20c2\u0007S\u0002\u0002", + "\u20c2\u20c3\u0007W\u0002\u0002\u20c3\u20c4\u0007Q\u0002\u0002\u20c4", + "\u20c5\u0007V\u0002\u0002\u20c5\u20c6\u0007G\u0002\u0002\u20c6\u20c7", + "\u0007F\u0002\u0002\u20c7\u20c8\u0007a\u0002\u0002\u20c8\u20c9\u0007", + "K\u0002\u0002\u20c9\u20ca\u0007F\u0002\u0002\u20ca\u20cb\u0007G\u0002", + "\u0002\u20cb\u20cc\u0007P\u0002\u0002\u20cc\u20cd\u0007V\u0002\u0002", + "\u20cd\u20ce\u0007K\u0002\u0002\u20ce\u20cf\u0007H\u0002\u0002\u20cf", + "\u20d0\u0007K\u0002\u0002\u20d0\u20d1\u0007G\u0002\u0002\u20d1\u20d2", + "\u0007T\u0002\u0002\u20d2\u052a\u0003\u0002\u0002\u0002\u20d3\u20d4", + "\u0007T\u0002\u0002\u20d4\u20d5\u0007C\u0002\u0002\u20d5\u20d6\u0007", + "P\u0002\u0002\u20d6\u20d7\u0007I\u0002\u0002\u20d7\u20d8\u0007G\u0002", + "\u0002\u20d8\u052c\u0003\u0002\u0002\u0002\u20d9\u20da\u0007T\u0002", + "\u0002\u20da\u20db\u0007C\u0002\u0002\u20db\u20dc\u0007P\u0002\u0002", + "\u20dc\u20dd\u0007M\u0002\u0002\u20dd\u052e\u0003\u0002\u0002\u0002", + "\u20de\u20df\u0007T\u0002\u0002\u20df\u20e0\u0007E\u0002\u0002\u20e0", + "\u20e1\u00074\u0002\u0002\u20e1\u0530\u0003\u0002\u0002\u0002\u20e2", + "\u20e3\u0007T\u0002\u0002\u20e3\u20e4\u0007E\u0002\u0002\u20e4\u20e5", + "\u00076\u0002\u0002\u20e5\u0532\u0003\u0002\u0002\u0002\u20e6\u20e7", + "\u0007T\u0002\u0002\u20e7\u20e8\u0007E\u0002\u0002\u20e8\u20e9\u0007", + "6\u0002\u0002\u20e9\u20ea\u0007a\u0002\u0002\u20ea\u20eb\u00073\u0002", + "\u0002\u20eb\u20ec\u00074\u0002\u0002\u20ec\u20ed\u0007:\u0002\u0002", + "\u20ed\u0534\u0003\u0002\u0002\u0002\u20ee\u20ef\u0007T\u0002\u0002", + "\u20ef\u20f0\u0007G\u0002\u0002\u20f0\u20f1\u0007C\u0002\u0002\u20f1", + "\u20f2\u0007F\u0002\u0002\u20f2\u20f3\u0007a\u0002\u0002\u20f3\u20f4", + "\u0007E\u0002\u0002\u20f4\u20f5\u0007Q\u0002\u0002\u20f5\u20f6\u0007", + "O\u0002\u0002\u20f6\u20f7\u0007O\u0002\u0002\u20f7\u20f8\u0007K\u0002", + "\u0002\u20f8\u20f9\u0007V\u0002\u0002\u20f9\u20fa\u0007V\u0002\u0002", + "\u20fa\u20fb\u0007G\u0002\u0002\u20fb\u20fc\u0007F\u0002\u0002\u20fc", + "\u20fd\u0007a\u0002\u0002\u20fd\u20fe\u0007U\u0002\u0002\u20fe\u20ff", + "\u0007P\u0002\u0002\u20ff\u2100\u0007C\u0002\u0002\u2100\u2101\u0007", + "R\u0002\u0002\u2101\u2102\u0007U\u0002\u0002\u2102\u2103\u0007J\u0002", + "\u0002\u2103\u2104\u0007Q\u0002\u0002\u2104\u2105\u0007V\u0002\u0002", + "\u2105\u0536\u0003\u0002\u0002\u0002\u2106\u2107\u0007T\u0002\u0002", + "\u2107\u2108\u0007G\u0002\u0002\u2108\u2109\u0007C\u0002\u0002\u2109", + "\u210a\u0007F\u0002\u0002\u210a\u210b\u0007a\u0002\u0002\u210b\u210c", + "\u0007Q\u0002\u0002\u210c\u210d\u0007P\u0002\u0002\u210d\u210e\u0007", + "N\u0002\u0002\u210e\u210f\u0007[\u0002\u0002\u210f\u0538\u0003\u0002", + "\u0002\u0002\u2110\u2111\u0007T\u0002\u0002\u2111\u2112\u0007G\u0002", + "\u0002\u2112\u2113\u0007C\u0002\u0002\u2113\u2114\u0007F\u0002\u0002", + "\u2114\u2115\u0007a\u0002\u0002\u2115\u2116\u0007Q\u0002\u0002\u2116", + "\u2117\u0007P\u0002\u0002\u2117\u2118\u0007N\u0002\u0002\u2118\u2119", + "\u0007[\u0002\u0002\u2119\u211a\u0007a\u0002\u0002\u211a\u211b\u0007", + "T\u0002\u0002\u211b\u211c\u0007Q\u0002\u0002\u211c\u211d\u0007W\u0002", + "\u0002\u211d\u211e\u0007V\u0002\u0002\u211e\u211f\u0007K\u0002\u0002", + "\u211f\u2120\u0007P\u0002\u0002\u2120\u2121\u0007I\u0002\u0002\u2121", + "\u2122\u0007a\u0002\u0002\u2122\u2123\u0007N\u0002\u0002\u2123\u2124", + "\u0007K\u0002\u0002\u2124\u2125\u0007U\u0002\u0002\u2125\u2126\u0007", + "V\u0002\u0002\u2126\u053a\u0003\u0002\u0002\u0002\u2127\u2128\u0007", + "T\u0002\u0002\u2128\u2129\u0007G\u0002\u0002\u2129\u212a\u0007C\u0002", + "\u0002\u212a\u212b\u0007F\u0002\u0002\u212b\u212c\u0007a\u0002\u0002", + "\u212c\u212d\u0007Y\u0002\u0002\u212d\u212e\u0007T\u0002\u0002\u212e", + "\u212f\u0007K\u0002\u0002\u212f\u2130\u0007V\u0002\u0002\u2130\u2131", + "\u0007G\u0002\u0002\u2131\u053c\u0003\u0002\u0002\u0002\u2132\u2133", + "\u0007T\u0002\u0002\u2133\u2134\u0007G\u0002\u0002\u2134\u2135\u0007", + "C\u0002\u0002\u2135\u2136\u0007F\u0002\u0002\u2136\u2137\u0007Q\u0002", + "\u0002\u2137\u2138\u0007P\u0002\u0002\u2138\u2139\u0007N\u0002\u0002", + "\u2139\u213a\u0007[\u0002\u0002\u213a\u053e\u0003\u0002\u0002\u0002", + "\u213b\u213c\u0007T\u0002\u0002\u213c\u213d\u0007G\u0002\u0002\u213d", + "\u213e\u0007D\u0002\u0002\u213e\u213f\u0007W\u0002\u0002\u213f\u2140", + "\u0007K\u0002\u0002\u2140\u2141\u0007N\u0002\u0002\u2141\u2142\u0007", + "F\u0002\u0002\u2142\u0540\u0003\u0002\u0002\u0002\u2143\u2144\u0007", + "T\u0002\u0002\u2144\u2145\u0007G\u0002\u0002\u2145\u2146\u0007E\u0002", + "\u0002\u2146\u2147\u0007G\u0002\u0002\u2147\u2148\u0007K\u0002\u0002", + "\u2148\u2149\u0007X\u0002\u0002\u2149\u214a\u0007G\u0002\u0002\u214a", + "\u0542\u0003\u0002\u0002\u0002\u214b\u214c\u0007T\u0002\u0002\u214c", + "\u214d\u0007G\u0002\u0002\u214d\u214e\u0007E\u0002\u0002\u214e\u214f", + "\u0007Q\u0002\u0002\u214f\u2150\u0007O\u0002\u0002\u2150\u2151\u0007", + "R\u0002\u0002\u2151\u2152\u0007K\u0002\u0002\u2152\u2153\u0007N\u0002", + "\u0002\u2153\u2154\u0007G\u0002\u0002\u2154\u0544\u0003\u0002\u0002", + "\u0002\u2155\u2156\u0007T\u0002\u0002\u2156\u2157\u0007G\u0002\u0002", + "\u2157\u2158\u0007E\u0002\u0002\u2158\u2159\u0007Q\u0002\u0002\u2159", + "\u215a\u0007X\u0002\u0002\u215a\u215b\u0007G\u0002\u0002\u215b\u215c", + "\u0007T\u0002\u0002\u215c\u215d\u0007[\u0002\u0002\u215d\u0546\u0003", + "\u0002\u0002\u0002\u215e\u215f\u0007T\u0002\u0002\u215f\u2160\u0007", + "G\u0002\u0002\u2160\u2161\u0007E\u0002\u0002\u2161\u2162\u0007W\u0002", + "\u0002\u2162\u2163\u0007T\u0002\u0002\u2163\u2164\u0007U\u0002\u0002", + "\u2164\u2165\u0007K\u0002\u0002\u2165\u2166\u0007X\u0002\u0002\u2166", + "\u2167\u0007G\u0002\u0002\u2167\u2168\u0007a\u0002\u0002\u2168\u2169", + "\u0007V\u0002\u0002\u2169\u216a\u0007T\u0002\u0002\u216a\u216b\u0007", + "K\u0002\u0002\u216b\u216c\u0007I\u0002\u0002\u216c\u216d\u0007I\u0002", + "\u0002\u216d\u216e\u0007G\u0002\u0002\u216e\u216f\u0007T\u0002\u0002", + "\u216f\u2170\u0007U\u0002\u0002\u2170\u0548\u0003\u0002\u0002\u0002", + "\u2171\u2172\u0007T\u0002\u0002\u2172\u2173\u0007G\u0002\u0002\u2173", + "\u2174\u0007N\u0002\u0002\u2174\u2175\u0007C\u0002\u0002\u2175\u2176", + "\u0007V\u0002\u0002\u2176\u2177\u0007K\u0002\u0002\u2177\u2178\u0007", + "X\u0002\u0002\u2178\u2179\u0007G\u0002\u0002\u2179\u054a\u0003\u0002", + "\u0002\u0002\u217a\u217b\u0007T\u0002\u0002\u217b\u217c\u0007G\u0002", + "\u0002\u217c\u217d\u0007O\u0002\u0002\u217d\u217e\u0007Q\u0002\u0002", + "\u217e\u217f\u0007V\u0002\u0002\u217f\u2180\u0007G\u0002\u0002\u2180", + "\u054c\u0003\u0002\u0002\u0002\u2181\u2182\u0007T\u0002\u0002\u2182", + "\u2183\u0007G\u0002\u0002\u2183\u2184\u0007O\u0002\u0002\u2184\u2185", + "\u0007Q\u0002\u0002\u2185\u2186\u0007V\u0002\u0002\u2186\u2187\u0007", + "G\u0002\u0002\u2187\u2188\u0007a\u0002\u0002\u2188\u2189\u0007U\u0002", + "\u0002\u2189\u218a\u0007G\u0002\u0002\u218a\u218b\u0007T\u0002\u0002", + "\u218b\u218c\u0007X\u0002\u0002\u218c\u218d\u0007K\u0002\u0002\u218d", + "\u218e\u0007E\u0002\u0002\u218e\u218f\u0007G\u0002\u0002\u218f\u2190", + "\u0007a\u0002\u0002\u2190\u2191\u0007P\u0002\u0002\u2191\u2192\u0007", + "C\u0002\u0002\u2192\u2193\u0007O\u0002\u0002\u2193\u2194\u0007G\u0002", + "\u0002\u2194\u054e\u0003\u0002\u0002\u0002\u2195\u2196\u0007T\u0002", + "\u0002\u2196\u2197\u0007G\u0002\u0002\u2197\u2198\u0007O\u0002\u0002", + "\u2198\u2199\u0007Q\u0002\u0002\u2199\u219a\u0007X\u0002\u0002\u219a", + "\u219b\u0007G\u0002\u0002\u219b\u0550\u0003\u0002\u0002\u0002\u219c", + "\u219d\u0007T\u0002\u0002\u219d\u219e\u0007G\u0002\u0002\u219e\u219f", + "\u0007Q\u0002\u0002\u219f\u21a0\u0007T\u0002\u0002\u21a0\u21a1\u0007", + "I\u0002\u0002\u21a1\u21a2\u0007C\u0002\u0002\u21a2\u21a3\u0007P\u0002", + "\u0002\u21a3\u21a4\u0007K\u0002\u0002\u21a4\u21a5\u0007\\\u0002\u0002", + "\u21a5\u21a6\u0007G\u0002\u0002\u21a6\u0552\u0003\u0002\u0002\u0002", + "\u21a7\u21a8\u0007T\u0002\u0002\u21a8\u21a9\u0007G\u0002\u0002\u21a9", + "\u21aa\u0007R\u0002\u0002\u21aa\u21ab\u0007G\u0002\u0002\u21ab\u21ac", + "\u0007C\u0002\u0002\u21ac\u21ad\u0007V\u0002\u0002\u21ad\u21ae\u0007", + "C\u0002\u0002\u21ae\u21af\u0007D\u0002\u0002\u21af\u21b0\u0007N\u0002", + "\u0002\u21b0\u21b1\u0007G\u0002\u0002\u21b1\u0554\u0003\u0002\u0002", + "\u0002\u21b2\u21b3\u0007T\u0002\u0002\u21b3\u21b4\u0007G\u0002\u0002", + "\u21b4\u21b5\u0007R\u0002\u0002\u21b5\u21b6\u0007N\u0002\u0002\u21b6", + "\u21b7\u0007K\u0002\u0002\u21b7\u21b8\u0007E\u0002\u0002\u21b8\u21b9", + "\u0007C\u0002\u0002\u21b9\u0556\u0003\u0002\u0002\u0002\u21ba\u21bb", + "\u0007T\u0002\u0002\u21bb\u21bc\u0007G\u0002\u0002\u21bc\u21bd\u0007", + "S\u0002\u0002\u21bd\u21be\u0007W\u0002\u0002\u21be\u21bf\u0007G\u0002", + "\u0002\u21bf\u21c0\u0007U\u0002\u0002\u21c0\u21c1\u0007V\u0002\u0002", + "\u21c1\u21c2\u0007a\u0002\u0002\u21c2\u21c3\u0007O\u0002\u0002\u21c3", + "\u21c4\u0007C\u0002\u0002\u21c4\u21c5\u0007Z\u0002\u0002\u21c5\u21c6", + "\u0007a\u0002\u0002\u21c6\u21c7\u0007E\u0002\u0002\u21c7\u21c8\u0007", + "R\u0002\u0002\u21c8\u21c9\u0007W\u0002\u0002\u21c9\u21ca\u0007a\u0002", + "\u0002\u21ca\u21cb\u0007V\u0002\u0002\u21cb\u21cc\u0007K\u0002\u0002", + "\u21cc\u21cd\u0007O\u0002\u0002\u21cd\u21ce\u0007G\u0002\u0002\u21ce", + "\u21cf\u0007a\u0002\u0002\u21cf\u21d0\u0007U\u0002\u0002\u21d0\u21d1", + "\u0007G\u0002\u0002\u21d1\u21d2\u0007E\u0002\u0002\u21d2\u0558\u0003", + "\u0002\u0002\u0002\u21d3\u21d4\u0007T\u0002\u0002\u21d4\u21d5\u0007", + "G\u0002\u0002\u21d5\u21d6\u0007S\u0002\u0002\u21d6\u21d7\u0007W\u0002", + "\u0002\u21d7\u21d8\u0007G\u0002\u0002\u21d8\u21d9\u0007U\u0002\u0002", + "\u21d9\u21da\u0007V\u0002\u0002\u21da\u21db\u0007a\u0002\u0002\u21db", + "\u21dc\u0007O\u0002\u0002\u21dc\u21dd\u0007C\u0002\u0002\u21dd\u21de", + "\u0007Z\u0002\u0002\u21de\u21df\u0007a\u0002\u0002\u21df\u21e0\u0007", + "O\u0002\u0002\u21e0\u21e1\u0007G\u0002\u0002\u21e1\u21e2\u0007O\u0002", + "\u0002\u21e2\u21e3\u0007Q\u0002\u0002\u21e3\u21e4\u0007T\u0002\u0002", + "\u21e4\u21e5\u0007[\u0002\u0002\u21e5\u21e6\u0007a\u0002\u0002\u21e6", + "\u21e7\u0007I\u0002\u0002\u21e7\u21e8\u0007T\u0002\u0002\u21e8\u21e9", + "\u0007C\u0002\u0002\u21e9\u21ea\u0007P\u0002\u0002\u21ea\u21eb\u0007", + "V\u0002\u0002\u21eb\u21ec\u0007a\u0002\u0002\u21ec\u21ed\u0007R\u0002", + "\u0002\u21ed\u21ee\u0007G\u0002\u0002\u21ee\u21ef\u0007T\u0002\u0002", + "\u21ef\u21f0\u0007E\u0002\u0002\u21f0\u21f1\u0007G\u0002\u0002\u21f1", + "\u21f2\u0007P\u0002\u0002\u21f2\u21f3\u0007V\u0002\u0002\u21f3\u055a", + "\u0003\u0002\u0002\u0002\u21f4\u21f5\u0007T\u0002\u0002\u21f5\u21f6", + "\u0007G\u0002\u0002\u21f6\u21f7\u0007S\u0002\u0002\u21f7\u21f8\u0007", + "W\u0002\u0002\u21f8\u21f9\u0007G\u0002\u0002\u21f9\u21fa\u0007U\u0002", + "\u0002\u21fa\u21fb\u0007V\u0002\u0002\u21fb\u21fc\u0007a\u0002\u0002", + "\u21fc\u21fd\u0007O\u0002\u0002\u21fd\u21fe\u0007G\u0002\u0002\u21fe", + "\u21ff\u0007O\u0002\u0002\u21ff\u2200\u0007Q\u0002\u0002\u2200\u2201", + "\u0007T\u0002\u0002\u2201\u2202\u0007[\u0002\u0002\u2202\u2203\u0007", + "a\u0002\u0002\u2203\u2204\u0007I\u0002\u0002\u2204\u2205\u0007T\u0002", + "\u0002\u2205\u2206\u0007C\u0002\u0002\u2206\u2207\u0007P\u0002\u0002", + "\u2207\u2208\u0007V\u0002\u0002\u2208\u2209\u0007a\u0002\u0002\u2209", + "\u220a\u0007V\u0002\u0002\u220a\u220b\u0007K\u0002\u0002\u220b\u220c", + "\u0007O\u0002\u0002\u220c\u220d\u0007G\u0002\u0002\u220d\u220e\u0007", + "Q\u0002\u0002\u220e\u220f\u0007W\u0002\u0002\u220f\u2210\u0007V\u0002", + "\u0002\u2210\u2211\u0007a\u0002\u0002\u2211\u2212\u0007U\u0002\u0002", + "\u2212\u2213\u0007G\u0002\u0002\u2213\u2214\u0007E\u0002\u0002\u2214", + "\u055c\u0003\u0002\u0002\u0002\u2215\u2216\u0007T\u0002\u0002\u2216", + "\u2217\u0007G\u0002\u0002\u2217\u2218\u0007S\u0002\u0002\u2218\u2219", + "\u0007W\u0002\u0002\u2219\u221a\u0007K\u0002\u0002\u221a\u221b\u0007", + "T\u0002\u0002\u221b\u221c\u0007G\u0002\u0002\u221c\u221d\u0007F\u0002", + "\u0002\u221d\u221e\u0007a\u0002\u0002\u221e\u221f\u0007U\u0002\u0002", + "\u221f\u2220\u0007[\u0002\u0002\u2220\u2221\u0007P\u0002\u0002\u2221", + "\u2222\u0007E\u0002\u0002\u2222\u2223\u0007J\u0002\u0002\u2223\u2224", + "\u0007T\u0002\u0002\u2224\u2225\u0007Q\u0002\u0002\u2225\u2226\u0007", + "P\u0002\u0002\u2226\u2227\u0007K\u0002\u0002\u2227\u2228\u0007\\\u0002", + "\u0002\u2228\u2229\u0007G\u0002\u0002\u2229\u222a\u0007F\u0002\u0002", + "\u222a\u222b\u0007a\u0002\u0002\u222b\u222c\u0007U\u0002\u0002\u222c", + "\u222d\u0007G\u0002\u0002\u222d\u222e\u0007E\u0002\u0002\u222e\u222f", + "\u0007Q\u0002\u0002\u222f\u2230\u0007P\u0002\u0002\u2230\u2231\u0007", + "F\u0002\u0002\u2231\u2232\u0007C\u0002\u0002\u2232\u2233\u0007T\u0002", + "\u0002\u2233\u2234\u0007K\u0002\u0002\u2234\u2235\u0007G\u0002\u0002", + "\u2235\u2236\u0007U\u0002\u0002\u2236\u2237\u0007a\u0002\u0002\u2237", + "\u2238\u0007V\u0002\u0002\u2238\u2239\u0007Q\u0002\u0002\u2239\u223a", + "\u0007a\u0002\u0002\u223a\u223b\u0007E\u0002\u0002\u223b\u223c\u0007", + "Q\u0002\u0002\u223c\u223d\u0007O\u0002\u0002\u223d\u223e\u0007O\u0002", + "\u0002\u223e\u223f\u0007K\u0002\u0002\u223f\u2240\u0007V\u0002\u0002", + "\u2240\u055e\u0003\u0002\u0002\u0002\u2241\u2242\u0007T\u0002\u0002", + "\u2242\u2243\u0007G\u0002\u0002\u2243\u2244\u0007U\u0002\u0002\u2244", + "\u2245\u0007G\u0002\u0002\u2245\u2246\u0007T\u0002\u0002\u2246\u2247", + "\u0007X\u0002\u0002\u2247\u2248\u0007G\u0002\u0002\u2248\u2249\u0007", + "a\u0002\u0002\u2249\u224a\u0007F\u0002\u0002\u224a\u224b\u0007K\u0002", + "\u0002\u224b\u224c\u0007U\u0002\u0002\u224c\u224d\u0007M\u0002\u0002", + "\u224d\u224e\u0007a\u0002\u0002\u224e\u224f\u0007U\u0002\u0002\u224f", + "\u2250\u0007R\u0002\u0002\u2250\u2251\u0007C\u0002\u0002\u2251\u2252", + "\u0007E\u0002\u0002\u2252\u2253\u0007G\u0002\u0002\u2253\u0560\u0003", + "\u0002\u0002\u0002\u2254\u2255\u0007T\u0002\u0002\u2255\u2256\u0007", + "G\u0002\u0002\u2256\u2257\u0007U\u0002\u0002\u2257\u2258\u0007Q\u0002", + "\u0002\u2258\u2259\u0007W\u0002\u0002\u2259\u225a\u0007T\u0002\u0002", + "\u225a\u225b\u0007E\u0002\u0002\u225b\u225c\u0007G\u0002\u0002\u225c", + "\u0562\u0003\u0002\u0002\u0002\u225d\u225e\u0007T\u0002\u0002\u225e", + "\u225f\u0007G\u0002\u0002\u225f\u2260\u0007U\u0002\u0002\u2260\u2261", + "\u0007Q\u0002\u0002\u2261\u2262\u0007W\u0002\u0002\u2262\u2263\u0007", + "T\u0002\u0002\u2263\u2264\u0007E\u0002\u0002\u2264\u2265\u0007G\u0002", + "\u0002\u2265\u2266\u0007a\u0002\u0002\u2266\u2267\u0007O\u0002\u0002", + "\u2267\u2268\u0007C\u0002\u0002\u2268\u2269\u0007P\u0002\u0002\u2269", + "\u226a\u0007C\u0002\u0002\u226a\u226b\u0007I\u0002\u0002\u226b\u226c", + "\u0007G\u0002\u0002\u226c\u226d\u0007T\u0002\u0002\u226d\u226e\u0007", + "a\u0002\u0002\u226e\u226f\u0007N\u0002\u0002\u226f\u2270\u0007Q\u0002", + "\u0002\u2270\u2271\u0007E\u0002\u0002\u2271\u2272\u0007C\u0002\u0002", + "\u2272\u2273\u0007V\u0002\u0002\u2273\u2274\u0007K\u0002\u0002\u2274", + "\u2275\u0007Q\u0002\u0002\u2275\u2276\u0007P\u0002\u0002\u2276\u0564", + "\u0003\u0002\u0002\u0002\u2277\u2278\u0007T\u0002\u0002\u2278\u2279", + "\u0007G\u0002\u0002\u2279\u227a\u0007U\u0002\u0002\u227a\u227b\u0007", + "V\u0002\u0002\u227b\u227c\u0007T\u0002\u0002\u227c\u227d\u0007K\u0002", + "\u0002\u227d\u227e\u0007E\u0002\u0002\u227e\u227f\u0007V\u0002\u0002", + "\u227f\u2280\u0007G\u0002\u0002\u2280\u2281\u0007F\u0002\u0002\u2281", + "\u2282\u0007a\u0002\u0002\u2282\u2283\u0007W\u0002\u0002\u2283\u2284", + "\u0007U\u0002\u0002\u2284\u2285\u0007G\u0002\u0002\u2285\u2286\u0007", + "T\u0002\u0002\u2286\u0566\u0003\u0002\u0002\u0002\u2287\u2288\u0007", + "T\u0002\u0002\u2288\u2289\u0007G\u0002\u0002\u2289\u228a\u0007V\u0002", + "\u0002\u228a\u228b\u0007G\u0002\u0002\u228b\u228c\u0007P\u0002\u0002", + "\u228c\u228d\u0007V\u0002\u0002\u228d\u228e\u0007K\u0002\u0002\u228e", + "\u228f\u0007Q\u0002\u0002\u228f\u2290\u0007P\u0002\u0002\u2290\u0568", + "\u0003\u0002\u0002\u0002\u2291\u2292\u0007T\u0002\u0002\u2292\u2293", + "\u0007Q\u0002\u0002\u2293\u2294\u0007D\u0002\u0002\u2294\u2295\u0007", + "W\u0002\u0002\u2295\u2296\u0007U\u0002\u0002\u2296\u2297\u0007V\u0002", + "\u0002\u2297\u056a\u0003\u0002\u0002\u0002\u2298\u2299\u0007T\u0002", + "\u0002\u2299\u229a\u0007Q\u0002\u0002\u229a\u229b\u0007Q\u0002\u0002", + "\u229b\u229c\u0007V\u0002\u0002\u229c\u056c\u0003\u0002\u0002\u0002", + "\u229d\u229e\u0007T\u0002\u0002\u229e\u229f\u0007Q\u0002\u0002\u229f", + "\u22a0\u0007W\u0002\u0002\u22a0\u22a1\u0007V\u0002\u0002\u22a1\u22a2", + "\u0007G\u0002\u0002\u22a2\u056e\u0003\u0002\u0002\u0002\u22a3\u22a4", + "\u0007T\u0002\u0002\u22a4\u22a5\u0007Q\u0002\u0002\u22a5\u22a6\u0007", + "Y\u0002\u0002\u22a6\u0570\u0003\u0002\u0002\u0002\u22a7\u22a8\u0007", + "T\u0002\u0002\u22a8\u22a9\u0007Q\u0002\u0002\u22a9\u22aa\u0007Y\u0002", + "\u0002\u22aa\u22ab\u0007a\u0002\u0002\u22ab\u22ac\u0007P\u0002\u0002", + "\u22ac\u22ad\u0007W\u0002\u0002\u22ad\u22ae\u0007O\u0002\u0002\u22ae", + "\u22af\u0007D\u0002\u0002\u22af\u22b0\u0007G\u0002\u0002\u22b0\u22b1", + "\u0007T\u0002\u0002\u22b1\u0572\u0003\u0002\u0002\u0002\u22b2\u22b3", + "\u0007T\u0002\u0002\u22b3\u22b4\u0007Q\u0002\u0002\u22b4\u22b5\u0007", + "Y\u0002\u0002\u22b5\u22b6\u0007I\u0002\u0002\u22b6\u22b7\u0007W\u0002", + "\u0002\u22b7\u22b8\u0007K\u0002\u0002\u22b8\u22b9\u0007F\u0002\u0002", + "\u22b9\u0574\u0003\u0002\u0002\u0002\u22ba\u22bb\u0007T\u0002\u0002", + "\u22bb\u22bc\u0007Q\u0002\u0002\u22bc\u22bd\u0007Y\u0002\u0002\u22bd", + "\u22be\u0007U\u0002\u0002\u22be\u0576\u0003\u0002\u0002\u0002\u22bf", + "\u22c0\u0007U\u0002\u0002\u22c0\u22c1\u0007C\u0002\u0002\u22c1\u22c2", + "\u0007O\u0002\u0002\u22c2\u22c3\u0007R\u0002\u0002\u22c3\u22c4\u0007", + "N\u0002\u0002\u22c4\u22c5\u0007G\u0002\u0002\u22c5\u0578\u0003\u0002", + "\u0002\u0002\u22c6\u22c7\u0007U\u0002\u0002\u22c7\u22c8\u0007E\u0002", + "\u0002\u22c8\u22c9\u0007J\u0002\u0002\u22c9\u22ca\u0007G\u0002\u0002", + "\u22ca\u22cb\u0007O\u0002\u0002\u22cb\u22cc\u0007C\u0002\u0002\u22cc", + "\u22cd\u0007D\u0002\u0002\u22cd\u22ce\u0007K\u0002\u0002\u22ce\u22cf", + "\u0007P\u0002\u0002\u22cf\u22d0\u0007F\u0002\u0002\u22d0\u22d1\u0007", + "K\u0002\u0002\u22d1\u22d2\u0007P\u0002\u0002\u22d2\u22d3\u0007I\u0002", + "\u0002\u22d3\u057a\u0003\u0002\u0002\u0002\u22d4\u22d5\u0007U\u0002", + "\u0002\u22d5\u22d6\u0007E\u0002\u0002\u22d6\u22d7\u0007Q\u0002\u0002", + "\u22d7\u22d8\u0007R\u0002\u0002\u22d8\u22d9\u0007G\u0002\u0002\u22d9", + "\u22da\u0007F\u0002\u0002\u22da\u057c\u0003\u0002\u0002\u0002\u22db", + "\u22dc\u0007U\u0002\u0002\u22dc\u22dd\u0007E\u0002\u0002\u22dd\u22de", + "\u0007T\u0002\u0002\u22de\u22df\u0007Q\u0002\u0002\u22df\u22e0\u0007", + "N\u0002\u0002\u22e0\u22e1\u0007N\u0002\u0002\u22e1\u057e\u0003\u0002", + "\u0002\u0002\u22e2\u22e3\u0007U\u0002\u0002\u22e3\u22e4\u0007E\u0002", + "\u0002\u22e4\u22e5\u0007T\u0002\u0002\u22e5\u22e6\u0007Q\u0002\u0002", + "\u22e6\u22e7\u0007N\u0002\u0002\u22e7\u22e8\u0007N\u0002\u0002\u22e8", + "\u22e9\u0007a\u0002\u0002\u22e9\u22ea\u0007N\u0002\u0002\u22ea\u22eb", + "\u0007Q\u0002\u0002\u22eb\u22ec\u0007E\u0002\u0002\u22ec\u22ed\u0007", + "M\u0002\u0002\u22ed\u22ee\u0007U\u0002\u0002\u22ee\u0580\u0003\u0002", + "\u0002\u0002\u22ef\u22f0\u0007U\u0002\u0002\u22f0\u22f1\u0007G\u0002", + "\u0002\u22f1\u22f2\u0007C\u0002\u0002\u22f2\u22f3\u0007T\u0002\u0002", + "\u22f3\u22f4\u0007E\u0002\u0002\u22f4\u22f5\u0007J\u0002\u0002\u22f5", + "\u0582\u0003\u0002\u0002\u0002\u22f6\u22f7\u0007U\u0002\u0002\u22f7", + "\u22f8\u0007G\u0002\u0002\u22f8\u22f9\u0007E\u0002\u0002\u22f9\u22fa", + "\u0007Q\u0002\u0002\u22fa\u22fb\u0007P\u0002\u0002\u22fb\u22fc\u0007", + "F\u0002\u0002\u22fc\u22fd\u0007C\u0002\u0002\u22fd\u22fe\u0007T\u0002", + "\u0002\u22fe\u22ff\u0007[\u0002\u0002\u22ff\u0584\u0003\u0002\u0002", + "\u0002\u2300\u2301\u0007U\u0002\u0002\u2301\u2302\u0007G\u0002\u0002", + "\u2302\u2303\u0007E\u0002\u0002\u2303\u2304\u0007Q\u0002\u0002\u2304", + "\u2305\u0007P\u0002\u0002\u2305\u2306\u0007F\u0002\u0002\u2306\u2307", + "\u0007C\u0002\u0002\u2307\u2308\u0007T\u0002\u0002\u2308\u2309\u0007", + "[\u0002\u0002\u2309\u230a\u0007a\u0002\u0002\u230a\u230b\u0007Q\u0002", + "\u0002\u230b\u230c\u0007P\u0002\u0002\u230c\u230d\u0007N\u0002\u0002", + "\u230d\u230e\u0007[\u0002\u0002\u230e\u0586\u0003\u0002\u0002\u0002", + "\u230f\u2310\u0007U\u0002\u0002\u2310\u2311\u0007G\u0002\u0002\u2311", + "\u2312\u0007E\u0002\u0002\u2312\u2313\u0007Q\u0002\u0002\u2313\u2314", + "\u0007P\u0002\u0002\u2314\u2315\u0007F\u0002\u0002\u2315\u2316\u0007", + "C\u0002\u0002\u2316\u2317\u0007T\u0002\u0002\u2317\u2318\u0007[\u0002", + "\u0002\u2318\u2319\u0007a\u0002\u0002\u2319\u231a\u0007T\u0002\u0002", + "\u231a\u231b\u0007Q\u0002\u0002\u231b\u231c\u0007N\u0002\u0002\u231c", + "\u231d\u0007G\u0002\u0002\u231d\u0588\u0003\u0002\u0002\u0002\u231e", + "\u231f\u0007U\u0002\u0002\u231f\u2320\u0007G\u0002\u0002\u2320\u2321", + "\u0007E\u0002\u0002\u2321\u2322\u0007Q\u0002\u0002\u2322\u2323\u0007", + "P\u0002\u0002\u2323\u2324\u0007F\u0002\u0002\u2324\u2325\u0007U\u0002", + "\u0002\u2325\u058a\u0003\u0002\u0002\u0002\u2326\u2327\u0007U\u0002", + "\u0002\u2327\u2328\u0007G\u0002\u0002\u2328\u2329\u0007E\u0002\u0002", + "\u2329\u232a\u0007T\u0002\u0002\u232a\u232b\u0007G\u0002\u0002\u232b", + "\u232c\u0007V\u0002\u0002\u232c\u058c\u0003\u0002\u0002\u0002\u232d", + "\u232e\u0007U\u0002\u0002\u232e\u232f\u0007G\u0002\u0002\u232f\u2330", + "\u0007E\u0002\u0002\u2330\u2331\u0007W\u0002\u0002\u2331\u2332\u0007", + "T\u0002\u0002\u2332\u2333\u0007K\u0002\u0002\u2333\u2334\u0007V\u0002", + "\u0002\u2334\u2335\u0007[\u0002\u0002\u2335\u058e\u0003\u0002\u0002", + "\u0002\u2336\u2337\u0007U\u0002\u0002\u2337\u2338\u0007G\u0002\u0002", + "\u2338\u2339\u0007E\u0002\u0002\u2339\u233a\u0007W\u0002\u0002\u233a", + "\u233b\u0007T\u0002\u0002\u233b\u233c\u0007K\u0002\u0002\u233c\u233d", + "\u0007V\u0002\u0002\u233d\u233e\u0007[\u0002\u0002\u233e\u233f\u0007", + "a\u0002\u0002\u233f\u2340\u0007N\u0002\u0002\u2340\u2341\u0007Q\u0002", + "\u0002\u2341\u2342\u0007I\u0002\u0002\u2342\u0590\u0003\u0002\u0002", + "\u0002\u2343\u2344\u0007U\u0002\u0002\u2344\u2345\u0007G\u0002\u0002", + "\u2345\u2346\u0007G\u0002\u0002\u2346\u2347\u0007F\u0002\u0002\u2347", + "\u2348\u0007K\u0002\u0002\u2348\u2349\u0007P\u0002\u0002\u2349\u234a", + "\u0007I\u0002\u0002\u234a\u234b\u0007a\u0002\u0002\u234b\u234c\u0007", + "O\u0002\u0002\u234c\u234d\u0007Q\u0002\u0002\u234d\u234e\u0007F\u0002", + "\u0002\u234e\u234f\u0007G\u0002\u0002\u234f\u0592\u0003\u0002\u0002", + "\u0002\u2350\u2351\u0007U\u0002\u0002\u2351\u2352\u0007G\u0002\u0002", + "\u2352\u2353\u0007N\u0002\u0002\u2353\u2354\u0007H\u0002\u0002\u2354", + "\u0594\u0003\u0002\u0002\u0002\u2355\u2356\u0007U\u0002\u0002\u2356", + "\u2357\u0007G\u0002\u0002\u2357\u2358\u0007O\u0002\u0002\u2358\u2359", + "\u0007K\u0002\u0002\u2359\u235a\u0007a\u0002\u0002\u235a\u235b\u0007", + "U\u0002\u0002\u235b\u235c\u0007G\u0002\u0002\u235c\u235d\u0007P\u0002", + "\u0002\u235d\u235e\u0007U\u0002\u0002\u235e\u235f\u0007K\u0002\u0002", + "\u235f\u2360\u0007V\u0002\u0002\u2360\u2361\u0007K\u0002\u0002\u2361", + "\u2362\u0007X\u0002\u0002\u2362\u2363\u0007G\u0002\u0002\u2363\u0596", + "\u0003\u0002\u0002\u0002\u2364\u2365\u0007U\u0002\u0002\u2365\u2366", + "\u0007G\u0002\u0002\u2366\u2367\u0007P\u0002\u0002\u2367\u2368\u0007", + "F\u0002\u0002\u2368\u0598\u0003\u0002\u0002\u0002\u2369\u236a\u0007", + "U\u0002\u0002\u236a\u236b\u0007G\u0002\u0002\u236b\u236c\u0007P\u0002", + "\u0002\u236c\u236d\u0007V\u0002\u0002\u236d\u059a\u0003\u0002\u0002", + "\u0002\u236e\u236f\u0007U\u0002\u0002\u236f\u2370\u0007G\u0002\u0002", + "\u2370\u2371\u0007S\u0002\u0002\u2371\u2372\u0007W\u0002\u0002\u2372", + "\u2373\u0007G\u0002\u0002\u2373\u2374\u0007P\u0002\u0002\u2374\u2375", + "\u0007E\u0002\u0002\u2375\u2376\u0007G\u0002\u0002\u2376\u059c\u0003", + "\u0002\u0002\u0002\u2377\u2378\u0007U\u0002\u0002\u2378\u2379\u0007", + "G\u0002\u0002\u2379\u237a\u0007T\u0002\u0002\u237a\u237b\u0007K\u0002", + "\u0002\u237b\u237c\u0007C\u0002\u0002\u237c\u237d\u0007N\u0002\u0002", + "\u237d\u237e\u0007K\u0002\u0002\u237e\u237f\u0007\\\u0002\u0002\u237f", + "\u2380\u0007C\u0002\u0002\u2380\u2381\u0007D\u0002\u0002\u2381\u2382", + "\u0007N\u0002\u0002\u2382\u2383\u0007G\u0002\u0002\u2383\u059e\u0003", + "\u0002\u0002\u0002\u2384\u2385\u0007U\u0002\u0002\u2385\u2386\u0007", + "G\u0002\u0002\u2386\u2387\u0007U\u0002\u0002\u2387\u2388\u0007U\u0002", + "\u0002\u2388\u2389\u0007K\u0002\u0002\u2389\u238a\u0007Q\u0002\u0002", + "\u238a\u238b\u0007P\u0002\u0002\u238b\u238c\u0007a\u0002\u0002\u238c", + "\u238d\u0007V\u0002\u0002\u238d\u238e\u0007K\u0002\u0002\u238e\u238f", + "\u0007O\u0002\u0002\u238f\u2390\u0007G\u0002\u0002\u2390\u2391\u0007", + "Q\u0002\u0002\u2391\u2392\u0007W\u0002\u0002\u2392\u2393\u0007V\u0002", + "\u0002\u2393\u05a0\u0003\u0002\u0002\u0002\u2394\u2395\u0007U\u0002", + "\u0002\u2395\u2396\u0007G\u0002\u0002\u2396\u2397\u0007V\u0002\u0002", + "\u2397\u2398\u0007G\u0002\u0002\u2398\u2399\u0007T\u0002\u0002\u2399", + "\u239a\u0007T\u0002\u0002\u239a\u239b\u0007Q\u0002\u0002\u239b\u239c", + "\u0007T\u0002\u0002\u239c\u05a2\u0003\u0002\u0002\u0002\u239d\u239e", + "\u0007U\u0002\u0002\u239e\u239f\u0007J\u0002\u0002\u239f\u23a0\u0007", + "C\u0002\u0002\u23a0\u23a1\u0007T\u0002\u0002\u23a1\u23a2\u0007G\u0002", + "\u0002\u23a2\u05a4\u0003\u0002\u0002\u0002\u23a3\u23a4\u0007U\u0002", + "\u0002\u23a4\u23a5\u0007J\u0002\u0002\u23a5\u23a6\u0007Q\u0002\u0002", + "\u23a6\u23a7\u0007Y\u0002\u0002\u23a7\u23a8\u0007R\u0002\u0002\u23a8", + "\u23a9\u0007N\u0002\u0002\u23a9\u23aa\u0007C\u0002\u0002\u23aa\u23ab", + "\u0007P\u0002\u0002\u23ab\u05a6\u0003\u0002\u0002\u0002\u23ac\u23ad", + "\u0007U\u0002\u0002\u23ad\u23ae\u0007K\u0002\u0002\u23ae\u23af\u0007", + "I\u0002\u0002\u23af\u23b0\u0007P\u0002\u0002\u23b0\u23b1\u0007C\u0002", + "\u0002\u23b1\u23b2\u0007V\u0002\u0002\u23b2\u23b3\u0007W\u0002\u0002", + "\u23b3\u23b4\u0007T\u0002\u0002\u23b4\u23b5\u0007G\u0002\u0002\u23b5", + "\u05a8\u0003\u0002\u0002\u0002\u23b6\u23b7\u0007U\u0002\u0002\u23b7", + "\u23b8\u0007K\u0002\u0002\u23b8\u23b9\u0007O\u0002\u0002\u23b9\u23ba", + "\u0007R\u0002\u0002\u23ba\u23bb\u0007N\u0002\u0002\u23bb\u23bc\u0007", + "G\u0002\u0002\u23bc\u05aa\u0003\u0002\u0002\u0002\u23bd\u23be\u0007", + "U\u0002\u0002\u23be\u23bf\u0007K\u0002\u0002\u23bf\u23c0\u0007P\u0002", + "\u0002\u23c0\u23c1\u0007I\u0002\u0002\u23c1\u23c2\u0007N\u0002\u0002", + "\u23c2\u23c3\u0007G\u0002\u0002\u23c3\u23c4\u0007a\u0002\u0002\u23c4", + "\u23c5\u0007W\u0002\u0002\u23c5\u23c6\u0007U\u0002\u0002\u23c6\u23c7", + "\u0007G\u0002\u0002\u23c7\u23c8\u0007T\u0002\u0002\u23c8\u05ac\u0003", + "\u0002\u0002\u0002\u23c9\u23ca\u0007U\u0002\u0002\u23ca\u23cb\u0007", + "K\u0002\u0002\u23cb\u23cc\u0007\\\u0002\u0002\u23cc\u23cd\u0007G\u0002", + "\u0002\u23cd\u05ae\u0003\u0002\u0002\u0002\u23ce\u23cf\u0007U\u0002", + "\u0002\u23cf\u23d0\u0007O\u0002\u0002\u23d0\u23d1\u0007C\u0002\u0002", + "\u23d1\u23d2\u0007N\u0002\u0002\u23d2\u23d3\u0007N\u0002\u0002\u23d3", + "\u23d4\u0007K\u0002\u0002\u23d4\u23d5\u0007P\u0002\u0002\u23d5\u23d6", + "\u0007V\u0002\u0002\u23d6\u05b0\u0003\u0002\u0002\u0002\u23d7\u23d8", + "\u0007U\u0002\u0002\u23d8\u23d9\u0007P\u0002\u0002\u23d9\u23da\u0007", + "C\u0002\u0002\u23da\u23db\u0007R\u0002\u0002\u23db\u23dc\u0007U\u0002", + "\u0002\u23dc\u23dd\u0007J\u0002\u0002\u23dd\u23de\u0007Q\u0002\u0002", + "\u23de\u23df\u0007V\u0002\u0002\u23df\u05b2\u0003\u0002\u0002\u0002", + "\u23e0\u23e1\u0007U\u0002\u0002\u23e1\u23e2\u0007R\u0002\u0002\u23e2", + "\u23e3\u0007C\u0002\u0002\u23e3\u23e4\u0007V\u0002\u0002\u23e4\u23e5", + "\u0007K\u0002\u0002\u23e5\u23e6\u0007C\u0002\u0002\u23e6\u23e7\u0007", + "N\u0002\u0002\u23e7\u23e8\u0007a\u0002\u0002\u23e8\u23e9\u0007Y\u0002", + "\u0002\u23e9\u23ea\u0007K\u0002\u0002\u23ea\u23eb\u0007P\u0002\u0002", + "\u23eb\u23ec\u0007F\u0002\u0002\u23ec\u23ed\u0007Q\u0002\u0002\u23ed", + "\u23ee\u0007Y\u0002\u0002\u23ee\u23ef\u0007a\u0002\u0002\u23ef\u23f0", + "\u0007O\u0002\u0002\u23f0\u23f1\u0007C\u0002\u0002\u23f1\u23f2\u0007", + "Z\u0002\u0002\u23f2\u23f3\u0007a\u0002\u0002\u23f3\u23f4\u0007E\u0002", + "\u0002\u23f4\u23f5\u0007G\u0002\u0002\u23f5\u23f6\u0007N\u0002\u0002", + "\u23f6\u23f7\u0007N\u0002\u0002\u23f7\u23f8\u0007U\u0002\u0002\u23f8", + "\u05b4\u0003\u0002\u0002\u0002\u23f9\u23fa\u0007U\u0002\u0002\u23fa", + "\u23fb\u0007V\u0002\u0002\u23fb\u23fc\u0007C\u0002\u0002\u23fc\u23fd", + "\u0007P\u0002\u0002\u23fd\u23fe\u0007F\u0002\u0002\u23fe\u23ff\u0007", + "D\u0002\u0002\u23ff\u2400\u0007[\u0002\u0002\u2400\u05b6\u0003\u0002", + "\u0002\u0002\u2401\u2402\u0007U\u0002\u0002\u2402\u2403\u0007V\u0002", + "\u0002\u2403\u2404\u0007C\u0002\u0002\u2404\u2405\u0007T\u0002\u0002", + "\u2405\u2406\u0007V\u0002\u0002\u2406\u2407\u0007a\u0002\u0002\u2407", + "\u2408\u0007F\u0002\u0002\u2408\u2409\u0007C\u0002\u0002\u2409\u240a", + "\u0007V\u0002\u0002\u240a\u240b\u0007G\u0002\u0002\u240b\u05b8\u0003", + "\u0002\u0002\u0002\u240c\u240d\u0007U\u0002\u0002\u240d\u240e\u0007", + "V\u0002\u0002\u240e\u240f\u0007C\u0002\u0002\u240f\u2410\u0007V\u0002", + "\u0002\u2410\u2411\u0007K\u0002\u0002\u2411\u2412\u0007E\u0002\u0002", + "\u2412\u05ba\u0003\u0002\u0002\u0002\u2413\u2414\u0007U\u0002\u0002", + "\u2414\u2415\u0007V\u0002\u0002\u2415\u2416\u0007C\u0002\u0002\u2416", + "\u2417\u0007V\u0002\u0002\u2417\u2418\u0007U\u0002\u0002\u2418\u2419", + "\u0007a\u0002\u0002\u2419\u241a\u0007U\u0002\u0002\u241a\u241b\u0007", + "V\u0002\u0002\u241b\u241c\u0007T\u0002\u0002\u241c\u241d\u0007G\u0002", + "\u0002\u241d\u241e\u0007C\u0002\u0002\u241e\u241f\u0007O\u0002\u0002", + "\u241f\u05bc\u0003\u0002\u0002\u0002\u2420\u2421\u0007U\u0002\u0002", + "\u2421\u2422\u0007V\u0002\u0002\u2422\u2423\u0007C\u0002\u0002\u2423", + "\u2424\u0007V\u0002\u0002\u2424\u2425\u0007W\u0002\u0002\u2425\u2426", + "\u0007U\u0002\u0002\u2426\u05be\u0003\u0002\u0002\u0002\u2427\u2428", + "\u0007U\u0002\u0002\u2428\u2429\u0007V\u0002\u0002\u2429\u242a\u0007", + "C\u0002\u0002\u242a\u242b\u0007V\u0002\u0002\u242b\u242c\u0007W\u0002", + "\u0002\u242c\u242d\u0007U\u0002\u0002\u242d\u242e\u0007Q\u0002\u0002", + "\u242e\u242f\u0007P\u0002\u0002\u242f\u2430\u0007N\u0002\u0002\u2430", + "\u2431\u0007[\u0002\u0002\u2431\u05c0\u0003\u0002\u0002\u0002\u2432", + "\u2433\u0007U\u0002\u0002\u2433\u2434\u0007V\u0002\u0002\u2434\u2435", + "\u0007F\u0002\u0002\u2435\u2436\u0007G\u0002\u0002\u2436\u2437\u0007", + "X\u0002\u0002\u2437\u05c2\u0003\u0002\u0002\u0002\u2438\u2439\u0007", + "U\u0002\u0002\u2439\u243a\u0007V\u0002\u0002\u243a\u243b\u0007F\u0002", + "\u0002\u243b\u243c\u0007G\u0002\u0002\u243c\u243d\u0007X\u0002\u0002", + "\u243d\u243e\u0007R\u0002\u0002\u243e\u05c4\u0003\u0002\u0002\u0002", + "\u243f\u2440\u0007U\u0002\u0002\u2440\u2441\u0007V\u0002\u0002\u2441", + "\u2442\u0007Q\u0002\u0002\u2442\u2443\u0007R\u0002\u0002\u2443\u2444", + "\u0007N\u0002\u0002\u2444\u2445\u0007K\u0002\u0002\u2445\u2446\u0007", + "U\u0002\u0002\u2446\u2447\u0007V\u0002\u0002\u2447\u05c6\u0003\u0002", + "\u0002\u0002\u2448\u2449\u0007U\u0002\u0002\u2449\u244a\u0007V\u0002", + "\u0002\u244a\u244b\u0007T\u0002\u0002\u244b\u244c\u0007K\u0002\u0002", + "\u244c\u244d\u0007P\u0002\u0002\u244d\u244e\u0007I\u0002\u0002\u244e", + "\u244f\u0007a\u0002\u0002\u244f\u2450\u0007C\u0002\u0002\u2450\u2451", + "\u0007I\u0002\u0002\u2451\u2452\u0007I\u0002\u0002\u2452\u05c8\u0003", + "\u0002\u0002\u0002\u2453\u2454\u0007U\u0002\u0002\u2454\u2455\u0007", + "V\u0002\u0002\u2455\u2456\u0007W\u0002\u0002\u2456\u2457\u0007H\u0002", + "\u0002\u2457\u2458\u0007H\u0002\u0002\u2458\u05ca\u0003\u0002\u0002", + "\u0002\u2459\u245a\u0007U\u0002\u0002\u245a\u245b\u0007W\u0002\u0002", + "\u245b\u245c\u0007D\u0002\u0002\u245c\u245d\u0007L\u0002\u0002\u245d", + "\u245e\u0007G\u0002\u0002\u245e\u245f\u0007E\u0002\u0002\u245f\u2460", + "\u0007V\u0002\u0002\u2460\u05cc\u0003\u0002\u0002\u0002\u2461\u2462", + "\u0007U\u0002\u0002\u2462\u2463\u0007W\u0002\u0002\u2463\u2464\u0007", + "D\u0002\u0002\u2464\u2465\u0007U\u0002\u0002\u2465\u2466\u0007E\u0002", + "\u0002\u2466\u2467\u0007T\u0002\u0002\u2467\u2468\u0007K\u0002\u0002", + "\u2468\u2469\u0007R\u0002\u0002\u2469\u246a\u0007V\u0002\u0002\u246a", + "\u246b\u0007K\u0002\u0002\u246b\u246c\u0007Q\u0002\u0002\u246c\u246d", + "\u0007P\u0002\u0002\u246d\u05ce\u0003\u0002\u0002\u0002\u246e\u246f", + "\u0007U\u0002\u0002\u246f\u2470\u0007W\u0002\u0002\u2470\u2471\u0007", + "O\u0002\u0002\u2471\u05d0\u0003\u0002\u0002\u0002\u2472\u2473\u0007", + "U\u0002\u0002\u2473\u2474\u0007W\u0002\u0002\u2474\u2475\u0007U\u0002", + "\u0002\u2475\u2476\u0007R\u0002\u0002\u2476\u2477\u0007G\u0002\u0002", + "\u2477\u2478\u0007P\u0002\u0002\u2478\u2479\u0007F\u0002\u0002\u2479", + "\u05d2\u0003\u0002\u0002\u0002\u247a\u247b\u0007U\u0002\u0002\u247b", + "\u247c\u0007[\u0002\u0002\u247c\u247d\u0007O\u0002\u0002\u247d\u247e", + "\u0007O\u0002\u0002\u247e\u247f\u0007G\u0002\u0002\u247f\u2480\u0007", + "V\u0002\u0002\u2480\u2481\u0007T\u0002\u0002\u2481\u2482\u0007K\u0002", + "\u0002\u2482\u2483\u0007E\u0002\u0002\u2483\u05d4\u0003\u0002\u0002", + "\u0002\u2484\u2485\u0007U\u0002\u0002\u2485\u2486\u0007[\u0002\u0002", + "\u2486\u2487\u0007P\u0002\u0002\u2487\u2488\u0007E\u0002\u0002\u2488", + "\u2489\u0007J\u0002\u0002\u2489\u248a\u0007T\u0002\u0002\u248a\u248b", + "\u0007Q\u0002\u0002\u248b\u248c\u0007P\u0002\u0002\u248c\u248d\u0007", + "Q\u0002\u0002\u248d\u248e\u0007W\u0002\u0002\u248e\u248f\u0007U\u0002", + "\u0002\u248f\u2490\u0007a\u0002\u0002\u2490\u2491\u0007E\u0002\u0002", + "\u2491\u2492\u0007Q\u0002\u0002\u2492\u2493\u0007O\u0002\u0002\u2493", + "\u2494\u0007O\u0002\u0002\u2494\u2495\u0007K\u0002\u0002\u2495\u2496", + "\u0007V\u0002\u0002\u2496\u05d6\u0003\u0002\u0002\u0002\u2497\u2498", + "\u0007U\u0002\u0002\u2498\u2499\u0007[\u0002\u0002\u2499\u249a\u0007", + "P\u0002\u0002\u249a\u249b\u0007Q\u0002\u0002\u249b\u249c\u0007P\u0002", + "\u0002\u249c\u249d\u0007[\u0002\u0002\u249d\u249e\u0007O\u0002\u0002", + "\u249e\u05d8\u0003\u0002\u0002\u0002\u249f\u24a0\u0007U\u0002\u0002", + "\u24a0\u24a1\u0007[\u0002\u0002\u24a1\u24a2\u0007U\u0002\u0002\u24a2", + "\u24a3\u0007V\u0002\u0002\u24a3\u24a4\u0007G\u0002\u0002\u24a4\u24a5", + "\u0007O\u0002\u0002\u24a5\u05da\u0003\u0002\u0002\u0002\u24a6\u24a7", + "\u0007V\u0002\u0002\u24a7\u24a8\u0007C\u0002\u0002\u24a8\u24a9\u0007", + "M\u0002\u0002\u24a9\u24aa\u0007G\u0002\u0002\u24aa\u05dc\u0003\u0002", + "\u0002\u0002\u24ab\u24ac\u0007V\u0002\u0002\u24ac\u24ad\u0007C\u0002", + "\u0002\u24ad\u24ae\u0007T\u0002\u0002\u24ae\u24af\u0007I\u0002\u0002", + "\u24af\u24b0\u0007G\u0002\u0002\u24b0\u24b1\u0007V\u0002\u0002\u24b1", + "\u24b2\u0007a\u0002\u0002\u24b2\u24b3\u0007T\u0002\u0002\u24b3\u24b4", + "\u0007G\u0002\u0002\u24b4\u24b5\u0007E\u0002\u0002\u24b5\u24b6\u0007", + "Q\u0002\u0002\u24b6\u24b7\u0007X\u0002\u0002\u24b7\u24b8\u0007G\u0002", + "\u0002\u24b8\u24b9\u0007T\u0002\u0002\u24b9\u24ba\u0007[\u0002\u0002", + "\u24ba\u24bb\u0007a\u0002\u0002\u24bb\u24bc\u0007V\u0002\u0002\u24bc", + "\u24bd\u0007K\u0002\u0002\u24bd\u24be\u0007O\u0002\u0002\u24be\u24bf", + "\u0007G\u0002\u0002\u24bf\u05de\u0003\u0002\u0002\u0002\u24c0\u24c1", + "\u0007V\u0002\u0002\u24c1\u24c2\u0007D\u0002\u0002\u24c2\u05e0\u0003", + "\u0002\u0002\u0002\u24c3\u24c4\u0007V\u0002\u0002\u24c4\u24c5\u0007", + "G\u0002\u0002\u24c5\u24c6\u0007Z\u0002\u0002\u24c6\u24c7\u0007V\u0002", + "\u0002\u24c7\u24c8\u0007K\u0002\u0002\u24c8\u24c9\u0007O\u0002\u0002", + "\u24c9\u24ca\u0007C\u0002\u0002\u24ca\u24cb\u0007I\u0002\u0002\u24cb", + "\u24cc\u0007G\u0002\u0002\u24cc\u24cd\u0007a\u0002\u0002\u24cd\u24ce", + "\u0007Q\u0002\u0002\u24ce\u24cf\u0007P\u0002\u0002\u24cf\u05e2\u0003", + "\u0002\u0002\u0002\u24d0\u24d1\u0007V\u0002\u0002\u24d1\u24d2\u0007", + "J\u0002\u0002\u24d2\u24d3\u0007T\u0002\u0002\u24d3\u24d4\u0007Q\u0002", + "\u0002\u24d4\u24d5\u0007Y\u0002\u0002\u24d5\u05e4\u0003\u0002\u0002", + "\u0002\u24d6\u24d7\u0007V\u0002\u0002\u24d7\u24d8\u0007K\u0002\u0002", + "\u24d8\u24d9\u0007G\u0002\u0002\u24d9\u24da\u0007U\u0002\u0002\u24da", + "\u05e6\u0003\u0002\u0002\u0002\u24db\u24dc\u0007V\u0002\u0002\u24dc", + "\u24dd\u0007K\u0002\u0002\u24dd\u24de\u0007O\u0002\u0002\u24de\u24df", + "\u0007G\u0002\u0002\u24df\u05e8\u0003\u0002\u0002\u0002\u24e0\u24e1", + "\u0007V\u0002\u0002\u24e1\u24e2\u0007K\u0002\u0002\u24e2\u24e3\u0007", + "O\u0002\u0002\u24e3\u24e4\u0007G\u0002\u0002\u24e4\u24e5\u0007Q\u0002", + "\u0002\u24e5\u24e6\u0007W\u0002\u0002\u24e6\u24e7\u0007V\u0002\u0002", + "\u24e7\u05ea\u0003\u0002\u0002\u0002\u24e8\u24e9\u0007V\u0002\u0002", + "\u24e9\u24ea\u0007K\u0002\u0002\u24ea\u24eb\u0007O\u0002\u0002\u24eb", + "\u24ec\u0007G\u0002\u0002\u24ec\u24ed\u0007T\u0002\u0002\u24ed\u05ec", + "\u0003\u0002\u0002\u0002\u24ee\u24ef\u0007V\u0002\u0002\u24ef\u24f0", + "\u0007K\u0002\u0002\u24f0\u24f1\u0007P\u0002\u0002\u24f1\u24f2\u0007", + "[\u0002\u0002\u24f2\u24f3\u0007K\u0002\u0002\u24f3\u24f4\u0007P\u0002", + "\u0002\u24f4\u24f5\u0007V\u0002\u0002\u24f5\u05ee\u0003\u0002\u0002", + "\u0002\u24f6\u24f7\u0007V\u0002\u0002\u24f7\u24f8\u0007Q\u0002\u0002", + "\u24f8\u24f9\u0007T\u0002\u0002\u24f9\u24fa\u0007P\u0002\u0002\u24fa", + "\u24fb\u0007a\u0002\u0002\u24fb\u24fc\u0007R\u0002\u0002\u24fc\u24fd", + "\u0007C\u0002\u0002\u24fd\u24fe\u0007I\u0002\u0002\u24fe\u24ff\u0007", + "G\u0002\u0002\u24ff\u2500\u0007a\u0002\u0002\u2500\u2501\u0007F\u0002", + "\u0002\u2501\u2502\u0007G\u0002\u0002\u2502\u2503\u0007V\u0002\u0002", + "\u2503\u2504\u0007G\u0002\u0002\u2504\u2505\u0007E\u0002\u0002\u2505", + "\u2506\u0007V\u0002\u0002\u2506\u2507\u0007K\u0002\u0002\u2507\u2508", + "\u0007Q\u0002\u0002\u2508\u2509\u0007P\u0002\u0002\u2509\u05f0\u0003", + "\u0002\u0002\u0002\u250a\u250b\u0007V\u0002\u0002\u250b\u250c\u0007", + "T\u0002\u0002\u250c\u250d\u0007C\u0002\u0002\u250d\u250e\u0007P\u0002", + "\u0002\u250e\u250f\u0007U\u0002\u0002\u250f\u2510\u0007H\u0002\u0002", + "\u2510\u2511\u0007Q\u0002\u0002\u2511\u2512\u0007T\u0002\u0002\u2512", + "\u2513\u0007O\u0002\u0002\u2513\u2514\u0007a\u0002\u0002\u2514\u2515", + "\u0007P\u0002\u0002\u2515\u2516\u0007Q\u0002\u0002\u2516\u2517\u0007", + "K\u0002\u0002\u2517\u2518\u0007U\u0002\u0002\u2518\u2519\u0007G\u0002", + "\u0002\u2519\u251a\u0007a\u0002\u0002\u251a\u251b\u0007Y\u0002\u0002", + "\u251b\u251c\u0007Q\u0002\u0002\u251c\u251d\u0007T\u0002\u0002\u251d", + "\u251e\u0007F\u0002\u0002\u251e\u251f\u0007U\u0002\u0002\u251f\u05f2", + "\u0003\u0002\u0002\u0002\u2520\u2521\u0007V\u0002\u0002\u2521\u2522", + "\u0007T\u0002\u0002\u2522\u2523\u0007K\u0002\u0002\u2523\u2524\u0007", + "R\u0002\u0002\u2524\u2525\u0007N\u0002\u0002\u2525\u2526\u0007G\u0002", + "\u0002\u2526\u2527\u0007a\u0002\u0002\u2527\u2528\u0007F\u0002\u0002", + "\u2528\u2529\u0007G\u0002\u0002\u2529\u252a\u0007U\u0002\u0002\u252a", + "\u05f4\u0003\u0002\u0002\u0002\u252b\u252c\u0007V\u0002\u0002\u252c", + "\u252d\u0007T\u0002\u0002\u252d\u252e\u0007K\u0002\u0002\u252e\u252f", + "\u0007R\u0002\u0002\u252f\u2530\u0007N\u0002\u0002\u2530\u2531\u0007", + "G\u0002\u0002\u2531\u2532\u0007a\u0002\u0002\u2532\u2533\u0007F\u0002", + "\u0002\u2533\u2534\u0007G\u0002\u0002\u2534\u2535\u0007U\u0002\u0002", + "\u2535\u2536\u0007a\u0002\u0002\u2536\u2537\u00075\u0002\u0002\u2537", + "\u2538\u0007M\u0002\u0002\u2538\u2539\u0007G\u0002\u0002\u2539\u253a", + "\u0007[\u0002\u0002\u253a\u05f6\u0003\u0002\u0002\u0002\u253b\u253c", + "\u0007V\u0002\u0002\u253c\u253d\u0007T\u0002\u0002\u253d\u253e\u0007", + "W\u0002\u0002\u253e\u253f\u0007U\u0002\u0002\u253f\u2540\u0007V\u0002", + "\u0002\u2540\u2541\u0007Y\u0002\u0002\u2541\u2542\u0007Q\u0002\u0002", + "\u2542\u2543\u0007T\u0002\u0002\u2543\u2544\u0007V\u0002\u0002\u2544", + "\u2545\u0007J\u0002\u0002\u2545\u2546\u0007[\u0002\u0002\u2546\u05f8", + "\u0003\u0002\u0002\u0002\u2547\u2548\u0007V\u0002\u0002\u2548\u2549", + "\u0007T\u0002\u0002\u2549\u254a\u0007[\u0002\u0002\u254a\u05fa\u0003", + "\u0002\u0002\u0002\u254b\u254c\u0007V\u0002\u0002\u254c\u254d\u0007", + "U\u0002\u0002\u254d\u254e\u0007S\u0002\u0002\u254e\u254f\u0007N\u0002", + "\u0002\u254f\u05fc\u0003\u0002\u0002\u0002\u2550\u2551\u0007V\u0002", + "\u0002\u2551\u2552\u0007Y\u0002\u0002\u2552\u2553\u0007Q\u0002\u0002", + "\u2553\u2554\u0007a\u0002\u0002\u2554\u2555\u0007F\u0002\u0002\u2555", + "\u2556\u0007K\u0002\u0002\u2556\u2557\u0007I\u0002\u0002\u2557\u2558", + "\u0007K\u0002\u0002\u2558\u2559\u0007V\u0002\u0002\u2559\u255a\u0007", + "a\u0002\u0002\u255a\u255b\u0007[\u0002\u0002\u255b\u255c\u0007G\u0002", + "\u0002\u255c\u255d\u0007C\u0002\u0002\u255d\u255e\u0007T\u0002\u0002", + "\u255e\u255f\u0007a\u0002\u0002\u255f\u2560\u0007E\u0002\u0002\u2560", + "\u2561\u0007W\u0002\u0002\u2561\u2562\u0007V\u0002\u0002\u2562\u2563", + "\u0007Q\u0002\u0002\u2563\u2564\u0007H\u0002\u0002\u2564\u2565\u0007", + "H\u0002\u0002\u2565\u05fe\u0003\u0002\u0002\u0002\u2566\u2567\u0007", + "V\u0002\u0002\u2567\u2568\u0007[\u0002\u0002\u2568\u2569\u0007R\u0002", + "\u0002\u2569\u256a\u0007G\u0002\u0002\u256a\u0600\u0003\u0002\u0002", + "\u0002\u256b\u256c\u0007V\u0002\u0002\u256c\u256d\u0007[\u0002\u0002", + "\u256d\u256e\u0007R\u0002\u0002\u256e\u256f\u0007G\u0002\u0002\u256f", + "\u2570\u0007a\u0002\u0002\u2570\u2571\u0007Y\u0002\u0002\u2571\u2572", + "\u0007C\u0002\u0002\u2572\u2573\u0007T\u0002\u0002\u2573\u2574\u0007", + "P\u0002\u0002\u2574\u2575\u0007K\u0002\u0002\u2575\u2576\u0007P\u0002", + "\u0002\u2576\u2577\u0007I\u0002\u0002\u2577\u0602\u0003\u0002\u0002", + "\u0002\u2578\u2579\u0007W\u0002\u0002\u2579\u257a\u0007P\u0002\u0002", + "\u257a\u257b\u0007D\u0002\u0002\u257b\u257c\u0007Q\u0002\u0002\u257c", + "\u257d\u0007W\u0002\u0002\u257d\u257e\u0007P\u0002\u0002\u257e\u257f", + "\u0007F\u0002\u0002\u257f\u2580\u0007G\u0002\u0002\u2580\u2581\u0007", + "F\u0002\u0002\u2581\u0604\u0003\u0002\u0002\u0002\u2582\u2583\u0007", + "W\u0002\u0002\u2583\u2584\u0007P\u0002\u0002\u2584\u2585\u0007E\u0002", + "\u0002\u2585\u2586\u0007Q\u0002\u0002\u2586\u2587\u0007O\u0002\u0002", + "\u2587\u2588\u0007O\u0002\u0002\u2588\u2589\u0007K\u0002\u0002\u2589", + "\u258a\u0007V\u0002\u0002\u258a\u258b\u0007V\u0002\u0002\u258b\u258c", + "\u0007G\u0002\u0002\u258c\u258d\u0007F\u0002\u0002\u258d\u0606\u0003", + "\u0002\u0002\u0002\u258e\u258f\u0007W\u0002\u0002\u258f\u2590\u0007", + "P\u0002\u0002\u2590\u2591\u0007M\u0002\u0002\u2591\u2592\u0007P\u0002", + "\u0002\u2592\u2593\u0007Q\u0002\u0002\u2593\u2594\u0007Y\u0002\u0002", + "\u2594\u2595\u0007P\u0002\u0002\u2595\u0608\u0003\u0002\u0002\u0002", + "\u2596\u2597\u0007W\u0002\u0002\u2597\u2598\u0007P\u0002\u0002\u2598", + "\u2599\u0007N\u0002\u0002\u2599\u259a\u0007K\u0002\u0002\u259a\u259b", + "\u0007O\u0002\u0002\u259b\u259c\u0007K\u0002\u0002\u259c\u259d\u0007", + "V\u0002\u0002\u259d\u259e\u0007G\u0002\u0002\u259e\u259f\u0007F\u0002", + "\u0002\u259f\u060a\u0003\u0002\u0002\u0002\u25a0\u25a1\u0007W\u0002", + "\u0002\u25a1\u25a2\u0007Q\u0002\u0002\u25a2\u25a3\u0007Y\u0002\u0002", + "\u25a3\u060c\u0003\u0002\u0002\u0002\u25a4\u25a5\u0007W\u0002\u0002", + "\u25a5\u25a6\u0007U\u0002\u0002\u25a6\u25a7\u0007K\u0002\u0002\u25a7", + "\u25a8\u0007P\u0002\u0002\u25a8\u25a9\u0007I\u0002\u0002\u25a9\u060e", + "\u0003\u0002\u0002\u0002\u25aa\u25ab\u0007X\u0002\u0002\u25ab\u25ac", + "\u0007C\u0002\u0002\u25ac\u25ad\u0007N\u0002\u0002\u25ad\u25ae\u0007", + "K\u0002\u0002\u25ae\u25af\u0007F\u0002\u0002\u25af\u25b0\u0007a\u0002", + "\u0002\u25b0\u25b1\u0007Z\u0002\u0002\u25b1\u25b2\u0007O\u0002\u0002", + "\u25b2\u25b3\u0007N\u0002\u0002\u25b3\u0610\u0003\u0002\u0002\u0002", + "\u25b4\u25b5\u0007X\u0002\u0002\u25b5\u25b6\u0007C\u0002\u0002\u25b6", + "\u25b7\u0007N\u0002\u0002\u25b7\u25b8\u0007K\u0002\u0002\u25b8\u25b9", + "\u0007F\u0002\u0002\u25b9\u25ba\u0007C\u0002\u0002\u25ba\u25bb\u0007", + "V\u0002\u0002\u25bb\u25bc\u0007K\u0002\u0002\u25bc\u25bd\u0007Q\u0002", + "\u0002\u25bd\u25be\u0007P\u0002\u0002\u25be\u0612\u0003\u0002\u0002", + "\u0002\u25bf\u25c0\u0007X\u0002\u0002\u25c0\u25c1\u0007C\u0002\u0002", + "\u25c1\u25c2\u0007N\u0002\u0002\u25c2\u25c3\u0007W\u0002\u0002\u25c3", + "\u25c4\u0007G\u0002\u0002\u25c4\u0614\u0003\u0002\u0002\u0002\u25c5", + "\u25c6\u0007X\u0002\u0002\u25c6\u25c7\u0007C\u0002\u0002\u25c7\u25c8", + "\u0007T\u0002\u0002\u25c8\u0616\u0003\u0002\u0002\u0002\u25c9\u25ca", + "\u0007X\u0002\u0002\u25ca\u25cb\u0007C\u0002\u0002\u25cb\u25cc\u0007", + "T\u0002\u0002\u25cc\u25cd\u0007R\u0002\u0002\u25cd\u0618\u0003\u0002", + "\u0002\u0002\u25ce\u25cf\u0007X\u0002\u0002\u25cf\u25d0\u0007K\u0002", + "\u0002\u25d0\u25d1\u0007G\u0002\u0002\u25d1\u25d2\u0007Y\u0002\u0002", + "\u25d2\u25d3\u0007a\u0002\u0002\u25d3\u25d4\u0007O\u0002\u0002\u25d4", + "\u25d5\u0007G\u0002\u0002\u25d5\u25d6\u0007V\u0002\u0002\u25d6\u25d7", + "\u0007C\u0002\u0002\u25d7\u25d8\u0007F\u0002\u0002\u25d8\u25d9\u0007", + "C\u0002\u0002\u25d9\u25da\u0007V\u0002\u0002\u25da\u25db\u0007C\u0002", + "\u0002\u25db\u061a\u0003\u0002\u0002\u0002\u25dc\u25dd\u0007X\u0002", + "\u0002\u25dd\u25de\u0007K\u0002\u0002\u25de\u25df\u0007G\u0002\u0002", + "\u25df\u25e0\u0007Y\u0002\u0002\u25e0\u25e1\u0007U\u0002\u0002\u25e1", + "\u061c\u0003\u0002\u0002\u0002\u25e2\u25e3\u0007Y\u0002\u0002\u25e3", + "\u25e4\u0007C\u0002\u0002\u25e4\u25e5\u0007K\u0002\u0002\u25e5\u25e6", + "\u0007V\u0002\u0002\u25e6\u061e\u0003\u0002\u0002\u0002\u25e7\u25e8", + "\u0007Y\u0002\u0002\u25e8\u25e9\u0007G\u0002\u0002\u25e9\u25ea\u0007", + "N\u0002\u0002\u25ea\u25eb\u0007N\u0002\u0002\u25eb\u25ec\u0007a\u0002", + "\u0002\u25ec\u25ed\u0007H\u0002\u0002\u25ed\u25ee\u0007Q\u0002\u0002", + "\u25ee\u25ef\u0007T\u0002\u0002\u25ef\u25f0\u0007O\u0002\u0002\u25f0", + "\u25f1\u0007G\u0002\u0002\u25f1\u25f2\u0007F\u0002\u0002\u25f2\u25f3", + "\u0007a\u0002\u0002\u25f3\u25f4\u0007Z\u0002\u0002\u25f4\u25f5\u0007", + "O\u0002\u0002\u25f5\u25f6\u0007N\u0002\u0002\u25f6\u0620\u0003\u0002", + "\u0002\u0002\u25f7\u25f8\u0007Y\u0002\u0002\u25f8\u25f9\u0007K\u0002", + "\u0002\u25f9\u25fa\u0007V\u0002\u0002\u25fa\u25fb\u0007J\u0002\u0002", + "\u25fb\u25fc\u0007Q\u0002\u0002\u25fc\u25fd\u0007W\u0002\u0002\u25fd", + "\u25fe\u0007V\u0002\u0002\u25fe\u25ff\u0007a\u0002\u0002\u25ff\u2600", + "\u0007C\u0002\u0002\u2600\u2601\u0007T\u0002\u0002\u2601\u2602\u0007", + "T\u0002\u0002\u2602\u2603\u0007C\u0002\u0002\u2603\u2604\u0007[\u0002", + "\u0002\u2604\u2605\u0007a\u0002\u0002\u2605\u2606\u0007Y\u0002\u0002", + "\u2606\u2607\u0007T\u0002\u0002\u2607\u2608\u0007C\u0002\u0002\u2608", + "\u2609\u0007R\u0002\u0002\u2609\u260a\u0007R\u0002\u0002\u260a\u260b", + "\u0007G\u0002\u0002\u260b\u260c\u0007T\u0002\u0002\u260c\u0622\u0003", + "\u0002\u0002\u0002\u260d\u260e\u0007Y\u0002\u0002\u260e\u260f\u0007", + "Q\u0002\u0002\u260f\u2610\u0007T\u0002\u0002\u2610\u2611\u0007M\u0002", + "\u0002\u2611\u0624\u0003\u0002\u0002\u0002\u2612\u2613\u0007Y\u0002", + "\u0002\u2613\u2614\u0007Q\u0002\u0002\u2614\u2615\u0007T\u0002\u0002", + "\u2615\u2616\u0007M\u0002\u0002\u2616\u2617\u0007N\u0002\u0002\u2617", + "\u2618\u0007Q\u0002\u0002\u2618\u2619\u0007C\u0002\u0002\u2619\u261a", + "\u0007F\u0002\u0002\u261a\u0626\u0003\u0002\u0002\u0002\u261b\u261c", + "\u0007Z\u0002\u0002\u261c\u261d\u0007O\u0002\u0002\u261d\u261e\u0007", + "N\u0002\u0002\u261e\u0628\u0003\u0002\u0002\u0002\u261f\u2620\u0007", + "Z\u0002\u0002\u2620\u2621\u0007O\u0002\u0002\u2621\u2622\u0007N\u0002", + "\u0002\u2622\u2623\u0007F\u0002\u0002\u2623\u2624\u0007C\u0002\u0002", + "\u2624\u2625\u0007V\u0002\u0002\u2625\u2626\u0007C\u0002\u0002\u2626", + "\u062a\u0003\u0002\u0002\u0002\u2627\u2628\u0007Z\u0002\u0002\u2628", + "\u2629\u0007O\u0002\u0002\u2629\u262a\u0007N\u0002\u0002\u262a\u262b", + "\u0007P\u0002\u0002\u262b\u262c\u0007C\u0002\u0002\u262c\u262d\u0007", + "O\u0002\u0002\u262d\u262e\u0007G\u0002\u0002\u262e\u262f\u0007U\u0002", + "\u0002\u262f\u2630\u0007R\u0002\u0002\u2630\u2631\u0007C\u0002\u0002", + "\u2631\u2632\u0007E\u0002\u0002\u2632\u2633\u0007G\u0002\u0002\u2633", + "\u2634\u0007U\u0002\u0002\u2634\u062c\u0003\u0002\u0002\u0002\u2635", + "\u2636\u0007Z\u0002\u0002\u2636\u2637\u0007O\u0002\u0002\u2637\u2638", + "\u0007N\u0002\u0002\u2638\u2639\u0007U\u0002\u0002\u2639\u263a\u0007", + "E\u0002\u0002\u263a\u263b\u0007J\u0002\u0002\u263b\u263c\u0007G\u0002", + "\u0002\u263c\u263d\u0007O\u0002\u0002\u263d\u263e\u0007C\u0002\u0002", + "\u263e\u062e\u0003\u0002\u0002\u0002\u263f\u2640\u0007Z\u0002\u0002", + "\u2640\u2641\u0007U\u0002\u0002\u2641\u2642\u0007K\u0002\u0002\u2642", + "\u2643\u0007P\u0002\u0002\u2643\u2644\u0007K\u0002\u0002\u2644\u2645", + "\u0007N\u0002\u0002\u2645\u0630\u0003\u0002\u0002\u0002\u2646\u2647", + "\u0007&\u0002\u0002\u2647\u2648\u0007C\u0002\u0002\u2648\u2649\u0007", + "E\u0002\u0002\u2649\u264a\u0007V\u0002\u0002\u264a\u264b\u0007K\u0002", + "\u0002\u264b\u264c\u0007Q\u0002\u0002\u264c\u264d\u0007P\u0002\u0002", + "\u264d\u0632\u0003\u0002\u0002\u0002\u264e\u2650\t\u0007\u0002\u0002", + "\u264f\u264e\u0003\u0002\u0002\u0002\u2650\u2651\u0003\u0002\u0002\u0002", + "\u2651\u264f\u0003\u0002\u0002\u0002\u2651\u2652\u0003\u0002\u0002\u0002", + "\u2652\u2653\u0003\u0002\u0002\u0002\u2653\u2654\b\u031a\u0002\u0002", + "\u2654\u0634\u0003\u0002\u0002\u0002\u2655\u2656\u00071\u0002\u0002", + "\u2656\u2657\u0007,\u0002\u0002\u2657\u265c\u0003\u0002\u0002\u0002", + "\u2658\u265b\u0005\u0635\u031b\u0002\u2659\u265b\u000b\u0002\u0002\u0002", + "\u265a\u2658\u0003\u0002\u0002\u0002\u265a\u2659\u0003\u0002\u0002\u0002", + "\u265b\u265e\u0003\u0002\u0002\u0002\u265c\u265d\u0003\u0002\u0002\u0002", + "\u265c\u265a\u0003\u0002\u0002\u0002\u265d\u265f\u0003\u0002\u0002\u0002", + "\u265e\u265c\u0003\u0002\u0002\u0002\u265f\u2660\u0007,\u0002\u0002", + "\u2660\u2661\u00071\u0002\u0002\u2661\u2662\u0003\u0002\u0002\u0002", + "\u2662\u2663\b\u031b\u0003\u0002\u2663\u0636\u0003\u0002\u0002\u0002", + "\u2664\u2665\u0007/\u0002\u0002\u2665\u2666\u0007/\u0002\u0002\u2666", + "\u266a\u0003\u0002\u0002\u0002\u2667\u2669\n\b\u0002\u0002\u2668\u2667", + "\u0003\u0002\u0002\u0002\u2669\u266c\u0003\u0002\u0002\u0002\u266a\u2668", + "\u0003\u0002\u0002\u0002\u266a\u266b\u0003\u0002\u0002\u0002\u266b\u266d", + "\u0003\u0002\u0002\u0002\u266c\u266a\u0003\u0002\u0002\u0002\u266d\u266e", + "\b\u031c\u0003\u0002\u266e\u0638\u0003\u0002\u0002\u0002\u266f\u2671", + "\u0007$\u0002\u0002\u2670\u2672\n\u0005\u0002\u0002\u2671\u2670\u0003", + "\u0002\u0002\u0002\u2672\u2673\u0003\u0002\u0002\u0002\u2673\u2671\u0003", + "\u0002\u0002\u0002\u2673\u2674\u0003\u0002\u0002\u0002\u2674\u2675\u0003", + "\u0002\u0002\u0002\u2675\u2676\u0007$\u0002\u0002\u2676\u063a\u0003", + "\u0002\u0002\u0002\u2677\u2678\u0007)\u0002\u0002\u2678\u063c\u0003", + "\u0002\u0002\u0002\u2679\u267b\u0007]\u0002\u0002\u267a\u267c\n\t\u0002", + "\u0002\u267b\u267a\u0003\u0002\u0002\u0002\u267c\u267d\u0003\u0002\u0002", + "\u0002\u267d\u267b\u0003\u0002\u0002\u0002\u267d\u267e\u0003\u0002\u0002", + "\u0002\u267e\u267f\u0003\u0002\u0002\u0002\u267f\u2680\u0007_\u0002", + "\u0002\u2680\u063e\u0003\u0002\u0002\u0002\u2681\u2684\u0007B\u0002", + "\u0002\u2682\u2685\t\n\u0002\u0002\u2683\u2685\u0005\u069d\u034f\u0002", + "\u2684\u2682\u0003\u0002\u0002\u0002\u2684\u2683\u0003\u0002\u0002\u0002", + "\u2685\u2686\u0003\u0002\u0002\u0002\u2686\u2684\u0003\u0002\u0002\u0002", + "\u2686\u2687\u0003\u0002\u0002\u0002\u2687\u0640\u0003\u0002\u0002\u0002", + "\u2688\u268a\u0005\u069b\u034e\u0002\u2689\u2688\u0003\u0002\u0002\u0002", + "\u268a\u268b\u0003\u0002\u0002\u0002\u268b\u2689\u0003\u0002\u0002\u0002", + "\u268b\u268c\u0003\u0002\u0002\u0002\u268c\u0642\u0003\u0002\u0002\u0002", + "\u268d\u2690\t\u000b\u0002\u0002\u268e\u2690\u0005\u069d\u034f\u0002", + "\u268f\u268d\u0003\u0002\u0002\u0002\u268f\u268e\u0003\u0002\u0002\u0002", + "\u2690\u2695\u0003\u0002\u0002\u0002\u2691\u2694\t\n\u0002\u0002\u2692", + "\u2694\u0005\u069d\u034f\u0002\u2693\u2691\u0003\u0002\u0002\u0002\u2693", + "\u2692\u0003\u0002\u0002\u0002\u2694\u2697\u0003\u0002\u0002\u0002\u2695", + "\u2693\u0003\u0002\u0002\u0002\u2695\u2696\u0003\u0002\u0002\u0002\u2696", + "\u0644\u0003\u0002\u0002\u0002\u2697\u2695\u0003\u0002\u0002\u0002\u2698", + "\u2699\u0007)\u0002\u0002\u2699\u269b\t\u0006\u0002\u0002\u269a\u269c", + "\t\u0006\u0002\u0002\u269b\u269a\u0003\u0002\u0002\u0002\u269c\u269d", + "\u0003\u0002\u0002\u0002\u269d\u269b\u0003\u0002\u0002\u0002\u269d\u269e", + "\u0003\u0002\u0002\u0002\u269e\u269f\u0003\u0002\u0002\u0002\u269f\u26a0", + "\t\u0004\u0002\u0002\u26a0\u26a1\u0003\u0002\u0002\u0002\u26a1\u26a2", + "\u00071\u0002\u0002\u26a2\u26a3\u00071\u0002\u0002\u26a3\u26b2\u0003", + "\u0002\u0002\u0002\u26a4\u26a6\t\u0006\u0002\u0002\u26a5\u26a4\u0003", + "\u0002\u0002\u0002\u26a6\u26a7\u0003\u0002\u0002\u0002\u26a7\u26a5\u0003", + "\u0002\u0002\u0002\u26a7\u26a8\u0003\u0002\u0002\u0002\u26a8\u26a9\u0003", + "\u0002\u0002\u0002\u26a9\u26b0\t\f\u0002\u0002\u26aa\u26ac\t\u0006\u0002", + "\u0002\u26ab\u26aa\u0003\u0002\u0002\u0002\u26ac\u26ad\u0003\u0002\u0002", + "\u0002\u26ad\u26ab\u0003\u0002\u0002\u0002\u26ad\u26ae\u0003\u0002\u0002", + "\u0002\u26ae\u26b0\u0003\u0002\u0002\u0002\u26af\u26a5\u0003\u0002\u0002", + "\u0002\u26af\u26ab\u0003\u0002\u0002\u0002\u26b0\u26b3\u0003\u0002\u0002", + "\u0002\u26b1\u26b3\u0005\u0149\u00a5\u0002\u26b2\u26af\u0003\u0002\u0002", + "\u0002\u26b2\u26b1\u0003\u0002\u0002\u0002\u26b3\u26b4\u0003\u0002\u0002", + "\u0002\u26b4\u26b5\t\u0004\u0002\u0002\u26b5\u26b6\u0005\u0641\u0321", + "\u0002\u26b6\u26b7\u0007)\u0002\u0002\u26b7\u0646\u0003\u0002\u0002", + "\u0002\u26b8\u26c7\u0007)\u0002\u0002\u26b9\u26bb\t\u0006\u0002\u0002", + "\u26ba\u26b9\u0003\u0002\u0002\u0002\u26bb\u26bc\u0003\u0002\u0002\u0002", + "\u26bc\u26ba\u0003\u0002\u0002\u0002\u26bc\u26bd\u0003\u0002\u0002\u0002", + "\u26bd\u26be\u0003\u0002\u0002\u0002\u26be\u26c5\t\f\u0002\u0002\u26bf", + "\u26c1\t\u0006\u0002\u0002\u26c0\u26bf\u0003\u0002\u0002\u0002\u26c1", + "\u26c2\u0003\u0002\u0002\u0002\u26c2\u26c0\u0003\u0002\u0002\u0002\u26c2", + "\u26c3\u0003\u0002\u0002\u0002\u26c3\u26c5\u0003\u0002\u0002\u0002\u26c4", + "\u26ba\u0003\u0002\u0002\u0002\u26c4\u26c0\u0003\u0002\u0002\u0002\u26c5", + "\u26c8\u0003\u0002\u0002\u0002\u26c6\u26c8\u0005\u0149\u00a5\u0002\u26c7", + "\u26c4\u0003\u0002\u0002\u0002\u26c7\u26c6\u0003\u0002\u0002\u0002\u26c8", + "\u26c9\u0003\u0002\u0002\u0002\u26c9\u26ca\t\u0004\u0002\u0002\u26ca", + "\u26cb\u0005\u0641\u0321\u0002\u26cb\u26cc\u0003\u0002\u0002\u0002\u26cc", + "\u26cd\u0007)\u0002\u0002\u26cd\u0648\u0003\u0002\u0002\u0002\u26ce", + "\u26d0\u0007P\u0002\u0002\u26cf\u26ce\u0003\u0002\u0002\u0002\u26cf", + "\u26d0\u0003\u0002\u0002\u0002\u26d0\u26d1\u0003\u0002\u0002\u0002\u26d1", + "\u26d7\u0007)\u0002\u0002\u26d2\u26d6\n\u0002\u0002\u0002\u26d3\u26d4", + "\u0007)\u0002\u0002\u26d4\u26d6\u0007)\u0002\u0002\u26d5\u26d2\u0003", + "\u0002\u0002\u0002\u26d5\u26d3\u0003\u0002\u0002\u0002\u26d6\u26d9\u0003", + "\u0002\u0002\u0002\u26d7\u26d5\u0003\u0002\u0002\u0002\u26d7\u26d8\u0003", + "\u0002\u0002\u0002\u26d8\u26da\u0003\u0002\u0002\u0002\u26d9\u26d7\u0003", + "\u0002\u0002\u0002\u26da\u26db\u0007)\u0002\u0002\u26db\u064a\u0003", + "\u0002\u0002\u0002\u26dc\u26dd\u00072\u0002\u0002\u26dd\u26e1\u0007", + "Z\u0002\u0002\u26de\u26e0\u0005\u0699\u034d\u0002\u26df\u26de\u0003", + "\u0002\u0002\u0002\u26e0\u26e3\u0003\u0002\u0002\u0002\u26e1\u26df\u0003", + "\u0002\u0002\u0002\u26e1\u26e2\u0003\u0002\u0002\u0002\u26e2\u064c\u0003", + "\u0002\u0002\u0002\u26e3\u26e1\u0003\u0002\u0002\u0002\u26e4\u26e5\u0005", + "\u0697\u034c\u0002\u26e5\u064e\u0003\u0002\u0002\u0002\u26e6\u26e9\u0005", + "\u0641\u0321\u0002\u26e7\u26e9\u0005\u0697\u034c\u0002\u26e8\u26e6\u0003", + "\u0002\u0002\u0002\u26e8\u26e7\u0003\u0002\u0002\u0002\u26e9\u26ea\u0003", + "\u0002\u0002\u0002\u26ea\u26ec\u0007G\u0002\u0002\u26eb\u26ed\t\r\u0002", + "\u0002\u26ec\u26eb\u0003\u0002\u0002\u0002\u26ec\u26ed\u0003\u0002\u0002", + "\u0002\u26ed\u26ef\u0003\u0002\u0002\u0002\u26ee\u26f0\u0005\u069b\u034e", + "\u0002\u26ef\u26ee\u0003\u0002\u0002\u0002\u26f0\u26f1\u0003\u0002\u0002", + "\u0002\u26f1\u26ef\u0003\u0002\u0002\u0002\u26f1\u26f2\u0003\u0002\u0002", + "\u0002\u26f2\u0650\u0003\u0002\u0002\u0002\u26f3\u26f4\u0007?\u0002", + "\u0002\u26f4\u0652\u0003\u0002\u0002\u0002\u26f5\u26f6\u0007@\u0002", + "\u0002\u26f6\u0654\u0003\u0002\u0002\u0002\u26f7\u26f8\u0007>\u0002", + "\u0002\u26f8\u0656\u0003\u0002\u0002\u0002\u26f9\u26fa\u0007#\u0002", + "\u0002\u26fa\u0658\u0003\u0002\u0002\u0002\u26fb\u26fc\u0007-\u0002", + "\u0002\u26fc\u26fd\u0007?\u0002\u0002\u26fd\u065a\u0003\u0002\u0002", + "\u0002\u26fe\u26ff\u0007/\u0002\u0002\u26ff\u2700\u0007?\u0002\u0002", + "\u2700\u065c\u0003\u0002\u0002\u0002\u2701\u2702\u0007,\u0002\u0002", + "\u2702\u2703\u0007?\u0002\u0002\u2703\u065e\u0003\u0002\u0002\u0002", + "\u2704\u2705\u00071\u0002\u0002\u2705\u2706\u0007?\u0002\u0002\u2706", + "\u0660\u0003\u0002\u0002\u0002\u2707\u2708\u0007\'\u0002\u0002\u2708", + "\u2709\u0007?\u0002\u0002\u2709\u0662\u0003\u0002\u0002\u0002\u270a", + "\u270b\u0007(\u0002\u0002\u270b\u270c\u0007?\u0002\u0002\u270c\u0664", + "\u0003\u0002\u0002\u0002\u270d\u270e\u0007`\u0002\u0002\u270e\u270f", + "\u0007?\u0002\u0002\u270f\u0666\u0003\u0002\u0002\u0002\u2710\u2711", + "\u0007~\u0002\u0002\u2711\u2712\u0007?\u0002\u0002\u2712\u0668\u0003", + "\u0002\u0002\u0002\u2713\u2714\u0007~\u0002\u0002\u2714\u2715\u0007", + "~\u0002\u0002\u2715\u066a\u0003\u0002\u0002\u0002\u2716\u2717\u0007", + "0\u0002\u0002\u2717\u066c\u0003\u0002\u0002\u0002\u2718\u2719\u0007", + "a\u0002\u0002\u2719\u066e\u0003\u0002\u0002\u0002\u271a\u271b\u0007", + "B\u0002\u0002\u271b\u0670\u0003\u0002\u0002\u0002\u271c\u271d\u0007", + "%\u0002\u0002\u271d\u0672\u0003\u0002\u0002\u0002\u271e\u271f\u0007", + "&\u0002\u0002\u271f\u0674\u0003\u0002\u0002\u0002\u2720\u2721\u0007", + "*\u0002\u0002\u2721\u0676\u0003\u0002\u0002\u0002\u2722\u2723\u0007", + "+\u0002\u0002\u2723\u0678\u0003\u0002\u0002\u0002\u2724\u2725\u0007", + ".\u0002\u0002\u2725\u067a\u0003\u0002\u0002\u0002\u2726\u2727\u0007", + "=\u0002\u0002\u2727\u067c\u0003\u0002\u0002\u0002\u2728\u2729\u0007", + "<\u0002\u0002\u2729\u067e\u0003\u0002\u0002\u0002\u272a\u272b\u0007", + ",\u0002\u0002\u272b\u0680\u0003\u0002\u0002\u0002\u272c\u272d\u0007", + "1\u0002\u0002\u272d\u0682\u0003\u0002\u0002\u0002\u272e\u272f\u0007", + "\'\u0002\u0002\u272f\u0684\u0003\u0002\u0002\u0002\u2730\u2731\u0007", + "-\u0002\u0002\u2731\u0686\u0003\u0002\u0002\u0002\u2732\u2733\u0007", + "/\u0002\u0002\u2733\u0688\u0003\u0002\u0002\u0002\u2734\u2735\u0007", + "\u0080\u0002\u0002\u2735\u068a\u0003\u0002\u0002\u0002\u2736\u2737\u0007", + "~\u0002\u0002\u2737\u068c\u0003\u0002\u0002\u0002\u2738\u2739\u0007", + "(\u0002\u0002\u2739\u068e\u0003\u0002\u0002\u0002\u273a\u273b\u0007", + "`\u0002\u0002\u273b\u0690\u0003\u0002\u0002\u0002\u273c\u273d\t\u000e", + "\u0002\u0002\u273d\u0692\u0003\u0002\u0002\u0002\u273e\u273f\t\u0003", + "\u0002\u0002\u273f\u2740\t\u0003\u0002\u0002\u2740\u2741\t\u0003\u0002", + "\u0002\u2741\u2742\t\u0003\u0002\u0002\u2742\u0694\u0003\u0002\u0002", + "\u0002\u2743\u2745\t\u000f\u0002\u0002\u2744\u2743\u0003\u0002\u0002", + "\u0002\u2744\u2745\u0003\u0002\u0002\u0002\u2745\u2747\u0003\u0002\u0002", + "\u0002\u2746\u2748\t\u000f\u0002\u0002\u2747\u2746\u0003\u0002\u0002", + "\u0002\u2747\u2748\u0003\u0002\u0002\u0002\u2748\u2749\u0003\u0002\u0002", + "\u0002\u2749\u274a\t\u000f\u0002\u0002\u274a\u0696\u0003\u0002\u0002", + "\u0002\u274b\u274d\u0005\u069b\u034e\u0002\u274c\u274b\u0003\u0002\u0002", + "\u0002\u274d\u274e\u0003\u0002\u0002\u0002\u274e\u274c\u0003\u0002\u0002", + "\u0002\u274e\u274f\u0003\u0002\u0002\u0002\u274f\u2750\u0003\u0002\u0002", + "\u0002\u2750\u2752\u00070\u0002\u0002\u2751\u2753\u0005\u069b\u034e", + "\u0002\u2752\u2751\u0003\u0002\u0002\u0002\u2753\u2754\u0003\u0002\u0002", + "\u0002\u2754\u2752\u0003\u0002\u0002\u0002\u2754\u2755\u0003\u0002\u0002", + "\u0002\u2755\u2764\u0003\u0002\u0002\u0002\u2756\u2758\u0005\u069b\u034e", + "\u0002\u2757\u2756\u0003\u0002\u0002\u0002\u2758\u2759\u0003\u0002\u0002", + "\u0002\u2759\u2757\u0003\u0002\u0002\u0002\u2759\u275a\u0003\u0002\u0002", + "\u0002\u275a\u275b\u0003\u0002\u0002\u0002\u275b\u275c\u00070\u0002", + "\u0002\u275c\u2764\u0003\u0002\u0002\u0002\u275d\u275f\u00070\u0002", + "\u0002\u275e\u2760\u0005\u069b\u034e\u0002\u275f\u275e\u0003\u0002\u0002", + "\u0002\u2760\u2761\u0003\u0002\u0002\u0002\u2761\u275f\u0003\u0002\u0002", + "\u0002\u2761\u2762\u0003\u0002\u0002\u0002\u2762\u2764\u0003\u0002\u0002", + "\u0002\u2763\u274c\u0003\u0002\u0002\u0002\u2763\u2757\u0003\u0002\u0002", + "\u0002\u2763\u275d\u0003\u0002\u0002\u0002\u2764\u0698\u0003\u0002\u0002", + "\u0002\u2765\u2766\t\u0003\u0002\u0002\u2766\u069a\u0003\u0002\u0002", + "\u0002\u2767\u2768\t\u000f\u0002\u0002\u2768\u069c\u0003\u0002\u0002", + "\u0002\u2769\u276a\t\u0010\u0002\u0002\u276a\u069e\u0003\u0002\u0002", + "\u0002M\u0002\u0957\u0b1b\u0cc1\u0ccb\u0cce\u0cd1\u0cd4\u0cd7\u0cda", + "\u0cde\u0ce1\u0ce4\u0ce7\u0ceb\u0cee\u0cf1\u0cf4\u0cf8\u0cfb\u0cfe\u0d01", + "\u0d05\u0d08\u0d0b\u0d0e\u0d12\u0d15\u0d18\u0d1b\u0d1f\u0d22\u0d25\u0d28", + "\u0d2c\u0d2f\u0d32\u0d35\u0d38\u1721\u2651\u265a\u265c\u266a\u2673\u267d", + "\u2684\u2686\u268b\u268f\u2693\u2695\u269d\u26a7\u26ad\u26af\u26b2\u26bc", + "\u26c2\u26c4\u26c7\u26cf\u26d5\u26d7\u26e1\u26e8\u26ec\u26f1\u2744\u2747", + "\u274e\u2754\u2759\u2761\u2763\u0004\b\u0002\u0002\u0002\u0003\u0002"].join(""); + + +var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); + +function TSqlLexer(input) { + antlr4.Lexer.call(this, input); + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); + return this; +} + +TSqlLexer.prototype = Object.create(antlr4.Lexer.prototype); +TSqlLexer.prototype.constructor = TSqlLexer; + +Object.defineProperty(TSqlLexer.prototype, "atn", { + get : function() { + return atn; + } +}); + +TSqlLexer.EOF = antlr4.Token.EOF; +TSqlLexer.ABSENT = 1; +TSqlLexer.ADD = 2; +TSqlLexer.AES = 3; +TSqlLexer.ALL = 4; +TSqlLexer.ALLOW_CONNECTIONS = 5; +TSqlLexer.ALLOW_MULTIPLE_EVENT_LOSS = 6; +TSqlLexer.ALLOW_SINGLE_EVENT_LOSS = 7; +TSqlLexer.ALTER = 8; +TSqlLexer.AND = 9; +TSqlLexer.ANONYMOUS = 10; +TSqlLexer.ANY = 11; +TSqlLexer.APPEND = 12; +TSqlLexer.APPLICATION = 13; +TSqlLexer.AS = 14; +TSqlLexer.ASC = 15; +TSqlLexer.ASYMMETRIC = 16; +TSqlLexer.ASYNCHRONOUS_COMMIT = 17; +TSqlLexer.AUTHORIZATION = 18; +TSqlLexer.AUTHENTICATION = 19; +TSqlLexer.AUTOMATED_BACKUP_PREFERENCE = 20; +TSqlLexer.AUTOMATIC = 21; +TSqlLexer.AVAILABILITY_MODE = 22; +TSqlLexer.BACKSLASH = 23; +TSqlLexer.BACKUP = 24; +TSqlLexer.BEFORE = 25; +TSqlLexer.BEGIN = 26; +TSqlLexer.BETWEEN = 27; +TSqlLexer.BLOCK = 28; +TSqlLexer.BLOCKSIZE = 29; +TSqlLexer.BLOCKING_HIERARCHY = 30; +TSqlLexer.BREAK = 31; +TSqlLexer.BROWSE = 32; +TSqlLexer.BUFFER = 33; +TSqlLexer.BUFFERCOUNT = 34; +TSqlLexer.BULK = 35; +TSqlLexer.BY = 36; +TSqlLexer.CACHE = 37; +TSqlLexer.CALLED = 38; +TSqlLexer.CASCADE = 39; +TSqlLexer.CASE = 40; +TSqlLexer.CERTIFICATE = 41; +TSqlLexer.CHANGETABLE = 42; +TSqlLexer.CHANGES = 43; +TSqlLexer.CHECK = 44; +TSqlLexer.CHECKPOINT = 45; +TSqlLexer.CHECK_POLICY = 46; +TSqlLexer.CHECK_EXPIRATION = 47; +TSqlLexer.CLASSIFIER_FUNCTION = 48; +TSqlLexer.CLOSE = 49; +TSqlLexer.CLUSTER = 50; +TSqlLexer.CLUSTERED = 51; +TSqlLexer.COALESCE = 52; +TSqlLexer.COLLATE = 53; +TSqlLexer.COLUMN = 54; +TSqlLexer.COMPRESSION = 55; +TSqlLexer.COMMIT = 56; +TSqlLexer.COMPUTE = 57; +TSqlLexer.CONFIGURATION = 58; +TSqlLexer.CONSTRAINT = 59; +TSqlLexer.CONTAINMENT = 60; +TSqlLexer.CONTAINS = 61; +TSqlLexer.CONTAINSTABLE = 62; +TSqlLexer.CONTEXT = 63; +TSqlLexer.CONTINUE = 64; +TSqlLexer.CONTINUE_AFTER_ERROR = 65; +TSqlLexer.CONTRACT = 66; +TSqlLexer.CONTRACT_NAME = 67; +TSqlLexer.CONVERSATION = 68; +TSqlLexer.CONVERT = 69; +TSqlLexer.COPY_ONLY = 70; +TSqlLexer.CREATE = 71; +TSqlLexer.CROSS = 72; +TSqlLexer.CURRENT = 73; +TSqlLexer.CURRENT_DATE = 74; +TSqlLexer.CURRENT_TIME = 75; +TSqlLexer.CURRENT_TIMESTAMP = 76; +TSqlLexer.CURRENT_USER = 77; +TSqlLexer.CURSOR = 78; +TSqlLexer.CYCLE = 79; +TSqlLexer.DATA_COMPRESSION = 80; +TSqlLexer.DATA_SOURCE = 81; +TSqlLexer.DATABASE = 82; +TSqlLexer.DATABASE_MIRRORING = 83; +TSqlLexer.DBCC = 84; +TSqlLexer.DEALLOCATE = 85; +TSqlLexer.DECLARE = 86; +TSqlLexer.DEFAULT = 87; +TSqlLexer.DEFAULT_DATABASE = 88; +TSqlLexer.DEFAULT_SCHEMA = 89; +TSqlLexer.DELETE = 90; +TSqlLexer.DENY = 91; +TSqlLexer.DESC = 92; +TSqlLexer.DIAGNOSTICS = 93; +TSqlLexer.DIFFERENTIAL = 94; +TSqlLexer.DISK = 95; +TSqlLexer.DISTINCT = 96; +TSqlLexer.DISTRIBUTED = 97; +TSqlLexer.DOUBLE = 98; +TSqlLexer.DOUBLE_BACK_SLASH = 99; +TSqlLexer.DOUBLE_FORWARD_SLASH = 100; +TSqlLexer.DROP = 101; +TSqlLexer.DTC_SUPPORT = 102; +TSqlLexer.DUMP = 103; +TSqlLexer.ELSE = 104; +TSqlLexer.ENABLED = 105; +TSqlLexer.END = 106; +TSqlLexer.ENDPOINT = 107; +TSqlLexer.ERRLVL = 108; +TSqlLexer.ESCAPE = 109; +TSqlLexer.ERROR = 110; +TSqlLexer.EVENT = 111; +TSqlLexer.EVENTDATA = 112; +TSqlLexer.EVENT_RETENTION_MODE = 113; +TSqlLexer.EXCEPT = 114; +TSqlLexer.EXECUTABLE_FILE = 115; +TSqlLexer.EXECUTE = 116; +TSqlLexer.EXISTS = 117; +TSqlLexer.EXPIREDATE = 118; +TSqlLexer.EXIT = 119; +TSqlLexer.EXTENSION = 120; +TSqlLexer.EXTERNAL = 121; +TSqlLexer.EXTERNAL_ACCESS = 122; +TSqlLexer.FAILOVER = 123; +TSqlLexer.FAILURECONDITIONLEVEL = 124; +TSqlLexer.FAN_IN = 125; +TSqlLexer.FETCH = 126; +TSqlLexer.FILE = 127; +TSqlLexer.FILENAME = 128; +TSqlLexer.FILLFACTOR = 129; +TSqlLexer.FILE_SNAPSHOT = 130; +TSqlLexer.FOR = 131; +TSqlLexer.FORCESEEK = 132; +TSqlLexer.FORCE_SERVICE_ALLOW_DATA_LOSS = 133; +TSqlLexer.FOREIGN = 134; +TSqlLexer.FREETEXT = 135; +TSqlLexer.FREETEXTTABLE = 136; +TSqlLexer.FROM = 137; +TSqlLexer.FULL = 138; +TSqlLexer.FUNCTION = 139; +TSqlLexer.GET = 140; +TSqlLexer.GOTO = 141; +TSqlLexer.GOVERNOR = 142; +TSqlLexer.GRANT = 143; +TSqlLexer.GROUP = 144; +TSqlLexer.HAVING = 145; +TSqlLexer.HASHED = 146; +TSqlLexer.HEALTHCHECKTIMEOUT = 147; +TSqlLexer.IDENTITY = 148; +TSqlLexer.IDENTITYCOL = 149; +TSqlLexer.IDENTITY_INSERT = 150; +TSqlLexer.IF = 151; +TSqlLexer.IIF = 152; +TSqlLexer.IN = 153; +TSqlLexer.INCLUDE = 154; +TSqlLexer.INCREMENT = 155; +TSqlLexer.INDEX = 156; +TSqlLexer.INFINITE = 157; +TSqlLexer.INIT = 158; +TSqlLexer.INNER = 159; +TSqlLexer.INSERT = 160; +TSqlLexer.INSTEAD = 161; +TSqlLexer.INTERSECT = 162; +TSqlLexer.INTO = 163; +TSqlLexer.IPV4_ADDR = 164; +TSqlLexer.IPV6_ADDR = 165; +TSqlLexer.IS = 166; +TSqlLexer.ISNULL = 167; +TSqlLexer.JOIN = 168; +TSqlLexer.KERBEROS = 169; +TSqlLexer.KEY = 170; +TSqlLexer.KEY_PATH = 171; +TSqlLexer.KEY_STORE_PROVIDER_NAME = 172; +TSqlLexer.KILL = 173; +TSqlLexer.LANGUAGE = 174; +TSqlLexer.LEFT = 175; +TSqlLexer.LIBRARY = 176; +TSqlLexer.LIFETIME = 177; +TSqlLexer.LIKE = 178; +TSqlLexer.LINENO = 179; +TSqlLexer.LINUX = 180; +TSqlLexer.LISTENER_IP = 181; +TSqlLexer.LISTENER_PORT = 182; +TSqlLexer.LOAD = 183; +TSqlLexer.LOCAL_SERVICE_NAME = 184; +TSqlLexer.LOG = 185; +TSqlLexer.MATCHED = 186; +TSqlLexer.MASTER = 187; +TSqlLexer.MAX_MEMORY = 188; +TSqlLexer.MAXTRANSFER = 189; +TSqlLexer.MAXVALUE = 190; +TSqlLexer.MAX_DISPATCH_LATENCY = 191; +TSqlLexer.MAX_EVENT_SIZE = 192; +TSqlLexer.MAX_SIZE = 193; +TSqlLexer.MAX_OUTSTANDING_IO_PER_VOLUME = 194; +TSqlLexer.MEDIADESCRIPTION = 195; +TSqlLexer.MEDIANAME = 196; +TSqlLexer.MEMBER = 197; +TSqlLexer.MEMORY_PARTITION_MODE = 198; +TSqlLexer.MERGE = 199; +TSqlLexer.MESSAGE_FORWARDING = 200; +TSqlLexer.MESSAGE_FORWARD_SIZE = 201; +TSqlLexer.MINVALUE = 202; +TSqlLexer.MIRROR = 203; +TSqlLexer.MUST_CHANGE = 204; +TSqlLexer.NATIONAL = 205; +TSqlLexer.NEGOTIATE = 206; +TSqlLexer.NOCHECK = 207; +TSqlLexer.NOFORMAT = 208; +TSqlLexer.NOINIT = 209; +TSqlLexer.NONCLUSTERED = 210; +TSqlLexer.NONE = 211; +TSqlLexer.NOREWIND = 212; +TSqlLexer.NOSKIP = 213; +TSqlLexer.NOUNLOAD = 214; +TSqlLexer.NO_CHECKSUM = 215; +TSqlLexer.NO_COMPRESSION = 216; +TSqlLexer.NO_EVENT_LOSS = 217; +TSqlLexer.NOT = 218; +TSqlLexer.NOTIFICATION = 219; +TSqlLexer.NTLM = 220; +TSqlLexer.NULL = 221; +TSqlLexer.NULLIF = 222; +TSqlLexer.OF = 223; +TSqlLexer.OFF = 224; +TSqlLexer.OFFSETS = 225; +TSqlLexer.OLD_PASSWORD = 226; +TSqlLexer.ON = 227; +TSqlLexer.ON_FAILURE = 228; +TSqlLexer.OPEN = 229; +TSqlLexer.OPENDATASOURCE = 230; +TSqlLexer.OPENQUERY = 231; +TSqlLexer.OPENROWSET = 232; +TSqlLexer.OPENXML = 233; +TSqlLexer.OPTION = 234; +TSqlLexer.OR = 235; +TSqlLexer.ORDER = 236; +TSqlLexer.OUTER = 237; +TSqlLexer.OVER = 238; +TSqlLexer.PAGE = 239; +TSqlLexer.PARAM_NODE = 240; +TSqlLexer.PARTIAL = 241; +TSqlLexer.PASSWORD = 242; +TSqlLexer.PERCENT = 243; +TSqlLexer.PERMISSION_SET = 244; +TSqlLexer.PER_CPU = 245; +TSqlLexer.PER_DB = 246; +TSqlLexer.PER_NODE = 247; +TSqlLexer.PIVOT = 248; +TSqlLexer.PLAN = 249; +TSqlLexer.PLATFORM = 250; +TSqlLexer.POLICY = 251; +TSqlLexer.PRECISION = 252; +TSqlLexer.PREDICATE = 253; +TSqlLexer.PRIMARY = 254; +TSqlLexer.PRINT = 255; +TSqlLexer.PROC = 256; +TSqlLexer.PROCEDURE = 257; +TSqlLexer.PROCESS = 258; +TSqlLexer.PUBLIC = 259; +TSqlLexer.PYTHON = 260; +TSqlLexer.R = 261; +TSqlLexer.RAISERROR = 262; +TSqlLexer.RAW = 263; +TSqlLexer.READ = 264; +TSqlLexer.READTEXT = 265; +TSqlLexer.READ_WRITE_FILEGROUPS = 266; +TSqlLexer.RECONFIGURE = 267; +TSqlLexer.REFERENCES = 268; +TSqlLexer.REGENERATE = 269; +TSqlLexer.RELATED_CONVERSATION = 270; +TSqlLexer.RELATED_CONVERSATION_GROUP = 271; +TSqlLexer.REPLICATION = 272; +TSqlLexer.REQUIRED = 273; +TSqlLexer.RESET = 274; +TSqlLexer.RESTART = 275; +TSqlLexer.RESTORE = 276; +TSqlLexer.RESTRICT = 277; +TSqlLexer.RESUME = 278; +TSqlLexer.RETAINDAYS = 279; +TSqlLexer.RETURN = 280; +TSqlLexer.RETURNS = 281; +TSqlLexer.REVERT = 282; +TSqlLexer.REVOKE = 283; +TSqlLexer.REWIND = 284; +TSqlLexer.RIGHT = 285; +TSqlLexer.ROLLBACK = 286; +TSqlLexer.ROLE = 287; +TSqlLexer.ROWCOUNT = 288; +TSqlLexer.ROWGUIDCOL = 289; +TSqlLexer.RSA_512 = 290; +TSqlLexer.RSA_1024 = 291; +TSqlLexer.RSA_2048 = 292; +TSqlLexer.RSA_3072 = 293; +TSqlLexer.RSA_4096 = 294; +TSqlLexer.SAFETY = 295; +TSqlLexer.RULE = 296; +TSqlLexer.SAFE = 297; +TSqlLexer.SAVE = 298; +TSqlLexer.SCHEDULER = 299; +TSqlLexer.SCHEMA = 300; +TSqlLexer.SCHEME = 301; +TSqlLexer.SECURITYAUDIT = 302; +TSqlLexer.SELECT = 303; +TSqlLexer.SEMANTICKEYPHRASETABLE = 304; +TSqlLexer.SEMANTICSIMILARITYDETAILSTABLE = 305; +TSqlLexer.SEMANTICSIMILARITYTABLE = 306; +TSqlLexer.SERVER = 307; +TSqlLexer.SERVICE = 308; +TSqlLexer.SERVICE_BROKER = 309; +TSqlLexer.SERVICE_NAME = 310; +TSqlLexer.SESSION = 311; +TSqlLexer.SESSION_USER = 312; +TSqlLexer.SET = 313; +TSqlLexer.SETUSER = 314; +TSqlLexer.SHUTDOWN = 315; +TSqlLexer.SID = 316; +TSqlLexer.SKIP_KEYWORD = 317; +TSqlLexer.SOFTNUMA = 318; +TSqlLexer.SOME = 319; +TSqlLexer.SOURCE = 320; +TSqlLexer.SPECIFICATION = 321; +TSqlLexer.SPLIT = 322; +TSqlLexer.SQLDUMPERFLAGS = 323; +TSqlLexer.SQLDUMPERPATH = 324; +TSqlLexer.SQLDUMPERTIMEOUT = 325; +TSqlLexer.STATISTICS = 326; +TSqlLexer.STATE = 327; +TSqlLexer.STATS = 328; +TSqlLexer.START = 329; +TSqlLexer.STARTED = 330; +TSqlLexer.STARTUP_STATE = 331; +TSqlLexer.STOP = 332; +TSqlLexer.STOPPED = 333; +TSqlLexer.STOP_ON_ERROR = 334; +TSqlLexer.SUPPORTED = 335; +TSqlLexer.SYSTEM_USER = 336; +TSqlLexer.TABLE = 337; +TSqlLexer.TABLESAMPLE = 338; +TSqlLexer.TAPE = 339; +TSqlLexer.TARGET = 340; +TSqlLexer.TCP = 341; +TSqlLexer.TEXTSIZE = 342; +TSqlLexer.THEN = 343; +TSqlLexer.TO = 344; +TSqlLexer.TOP = 345; +TSqlLexer.TRACK_CAUSALITY = 346; +TSqlLexer.TRAN = 347; +TSqlLexer.TRANSACTION = 348; +TSqlLexer.TRANSFER = 349; +TSqlLexer.TRIGGER = 350; +TSqlLexer.TRUNCATE = 351; +TSqlLexer.TSEQUAL = 352; +TSqlLexer.UNCHECKED = 353; +TSqlLexer.UNION = 354; +TSqlLexer.UNIQUE = 355; +TSqlLexer.UNLOCK = 356; +TSqlLexer.UNPIVOT = 357; +TSqlLexer.UNSAFE = 358; +TSqlLexer.UPDATE = 359; +TSqlLexer.UPDATETEXT = 360; +TSqlLexer.URL = 361; +TSqlLexer.USE = 362; +TSqlLexer.USED = 363; +TSqlLexer.USER = 364; +TSqlLexer.VALUES = 365; +TSqlLexer.VARYING = 366; +TSqlLexer.VERBOSELOGGING = 367; +TSqlLexer.VIEW = 368; +TSqlLexer.VISIBILITY = 369; +TSqlLexer.WAITFOR = 370; +TSqlLexer.WHEN = 371; +TSqlLexer.WHERE = 372; +TSqlLexer.WHILE = 373; +TSqlLexer.WINDOWS = 374; +TSqlLexer.WITH = 375; +TSqlLexer.WITHIN = 376; +TSqlLexer.WITHOUT = 377; +TSqlLexer.WITNESS = 378; +TSqlLexer.WRITETEXT = 379; +TSqlLexer.ABSOLUTE = 380; +TSqlLexer.ACCENT_SENSITIVITY = 381; +TSqlLexer.ACTION = 382; +TSqlLexer.ACTIVATION = 383; +TSqlLexer.ACTIVE = 384; +TSqlLexer.ADDRESS = 385; +TSqlLexer.AES_128 = 386; +TSqlLexer.AES_192 = 387; +TSqlLexer.AES_256 = 388; +TSqlLexer.AFFINITY = 389; +TSqlLexer.AFTER = 390; +TSqlLexer.AGGREGATE = 391; +TSqlLexer.ALGORITHM = 392; +TSqlLexer.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = 393; +TSqlLexer.ALLOW_SNAPSHOT_ISOLATION = 394; +TSqlLexer.ALLOWED = 395; +TSqlLexer.ANSI_NULL_DEFAULT = 396; +TSqlLexer.ANSI_NULLS = 397; +TSqlLexer.ANSI_PADDING = 398; +TSqlLexer.ANSI_WARNINGS = 399; +TSqlLexer.APPLICATION_LOG = 400; +TSqlLexer.APPLY = 401; +TSqlLexer.ARITHABORT = 402; +TSqlLexer.ASSEMBLY = 403; +TSqlLexer.AUDIT = 404; +TSqlLexer.AUDIT_GUID = 405; +TSqlLexer.AUTO = 406; +TSqlLexer.AUTO_CLEANUP = 407; +TSqlLexer.AUTO_CLOSE = 408; +TSqlLexer.AUTO_CREATE_STATISTICS = 409; +TSqlLexer.AUTO_SHRINK = 410; +TSqlLexer.AUTO_UPDATE_STATISTICS = 411; +TSqlLexer.AUTO_UPDATE_STATISTICS_ASYNC = 412; +TSqlLexer.AVAILABILITY = 413; +TSqlLexer.AVG = 414; +TSqlLexer.BACKUP_PRIORITY = 415; +TSqlLexer.BEGIN_DIALOG = 416; +TSqlLexer.BIGINT = 417; +TSqlLexer.BINARY_BASE64 = 418; +TSqlLexer.BINARY_CHECKSUM = 419; +TSqlLexer.BINDING = 420; +TSqlLexer.BLOB_STORAGE = 421; +TSqlLexer.BROKER = 422; +TSqlLexer.BROKER_INSTANCE = 423; +TSqlLexer.BULK_LOGGED = 424; +TSqlLexer.CALLER = 425; +TSqlLexer.CAP_CPU_PERCENT = 426; +TSqlLexer.CAST = 427; +TSqlLexer.CATALOG = 428; +TSqlLexer.CATCH = 429; +TSqlLexer.CHANGE_RETENTION = 430; +TSqlLexer.CHANGE_TRACKING = 431; +TSqlLexer.CHECKSUM = 432; +TSqlLexer.CHECKSUM_AGG = 433; +TSqlLexer.CLEANUP = 434; +TSqlLexer.COLLECTION = 435; +TSqlLexer.COLUMN_MASTER_KEY = 436; +TSqlLexer.COMMITTED = 437; +TSqlLexer.COMPATIBILITY_LEVEL = 438; +TSqlLexer.CONCAT = 439; +TSqlLexer.CONCAT_NULL_YIELDS_NULL = 440; +TSqlLexer.CONTENT = 441; +TSqlLexer.CONTROL = 442; +TSqlLexer.COOKIE = 443; +TSqlLexer.COUNT = 444; +TSqlLexer.COUNT_BIG = 445; +TSqlLexer.COUNTER = 446; +TSqlLexer.CPU = 447; +TSqlLexer.CREATE_NEW = 448; +TSqlLexer.CREATION_DISPOSITION = 449; +TSqlLexer.CREDENTIAL = 450; +TSqlLexer.CRYPTOGRAPHIC = 451; +TSqlLexer.CURSOR_CLOSE_ON_COMMIT = 452; +TSqlLexer.CURSOR_DEFAULT = 453; +TSqlLexer.DATA = 454; +TSqlLexer.DATE_CORRELATION_OPTIMIZATION = 455; +TSqlLexer.DATEADD = 456; +TSqlLexer.DATEDIFF = 457; +TSqlLexer.DATENAME = 458; +TSqlLexer.DATEPART = 459; +TSqlLexer.DAYS = 460; +TSqlLexer.DB_CHAINING = 461; +TSqlLexer.DB_FAILOVER = 462; +TSqlLexer.DECRYPTION = 463; +TSqlLexer.DEFAULT_DOUBLE_QUOTE = 464; +TSqlLexer.DEFAULT_FULLTEXT_LANGUAGE = 465; +TSqlLexer.DEFAULT_LANGUAGE = 466; +TSqlLexer.DELAY = 467; +TSqlLexer.DELAYED_DURABILITY = 468; +TSqlLexer.DELETED = 469; +TSqlLexer.DENSE_RANK = 470; +TSqlLexer.DEPENDENTS = 471; +TSqlLexer.DES = 472; +TSqlLexer.DESCRIPTION = 473; +TSqlLexer.DESX = 474; +TSqlLexer.DHCP = 475; +TSqlLexer.DIALOG = 476; +TSqlLexer.DIRECTORY_NAME = 477; +TSqlLexer.DISABLE = 478; +TSqlLexer.DISABLE_BROKER = 479; +TSqlLexer.DISABLED = 480; +TSqlLexer.DISK_DRIVE = 481; +TSqlLexer.DOCUMENT = 482; +TSqlLexer.DYNAMIC = 483; +TSqlLexer.ELEMENTS = 484; +TSqlLexer.EMERGENCY = 485; +TSqlLexer.EMPTY = 486; +TSqlLexer.ENABLE = 487; +TSqlLexer.ENABLE_BROKER = 488; +TSqlLexer.ENCRYPTED_VALUE = 489; +TSqlLexer.ENCRYPTION = 490; +TSqlLexer.ENDPOINT_URL = 491; +TSqlLexer.ERROR_BROKER_CONVERSATIONS = 492; +TSqlLexer.EXCLUSIVE = 493; +TSqlLexer.EXECUTABLE = 494; +TSqlLexer.EXIST = 495; +TSqlLexer.EXPAND = 496; +TSqlLexer.EXPIRY_DATE = 497; +TSqlLexer.EXPLICIT = 498; +TSqlLexer.FAIL_OPERATION = 499; +TSqlLexer.FAILOVER_MODE = 500; +TSqlLexer.FAILURE = 501; +TSqlLexer.FAILURE_CONDITION_LEVEL = 502; +TSqlLexer.FAST = 503; +TSqlLexer.FAST_FORWARD = 504; +TSqlLexer.FILEGROUP = 505; +TSqlLexer.FILEGROWTH = 506; +TSqlLexer.FILEPATH = 507; +TSqlLexer.FILESTREAM = 508; +TSqlLexer.FILTER = 509; +TSqlLexer.FIRST = 510; +TSqlLexer.FIRST_VALUE = 511; +TSqlLexer.FOLLOWING = 512; +TSqlLexer.FORCE = 513; +TSqlLexer.FORCE_FAILOVER_ALLOW_DATA_LOSS = 514; +TSqlLexer.FORCED = 515; +TSqlLexer.FORMAT = 516; +TSqlLexer.FORWARD_ONLY = 517; +TSqlLexer.FULLSCAN = 518; +TSqlLexer.FULLTEXT = 519; +TSqlLexer.GB = 520; +TSqlLexer.GETDATE = 521; +TSqlLexer.GETUTCDATE = 522; +TSqlLexer.GLOBAL = 523; +TSqlLexer.GO = 524; +TSqlLexer.GROUP_MAX_REQUESTS = 525; +TSqlLexer.GROUPING = 526; +TSqlLexer.GROUPING_ID = 527; +TSqlLexer.HADR = 528; +TSqlLexer.HASH = 529; +TSqlLexer.HEALTH_CHECK_TIMEOUT = 530; +TSqlLexer.HIGH = 531; +TSqlLexer.HONOR_BROKER_PRIORITY = 532; +TSqlLexer.HOURS = 533; +TSqlLexer.IDENTITY_VALUE = 534; +TSqlLexer.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX = 535; +TSqlLexer.IMMEDIATE = 536; +TSqlLexer.IMPERSONATE = 537; +TSqlLexer.IMPORTANCE = 538; +TSqlLexer.INCLUDE_NULL_VALUES = 539; +TSqlLexer.INCREMENTAL = 540; +TSqlLexer.INITIATOR = 541; +TSqlLexer.INPUT = 542; +TSqlLexer.INSENSITIVE = 543; +TSqlLexer.INSERTED = 544; +TSqlLexer.INT = 545; +TSqlLexer.IP = 546; +TSqlLexer.ISOLATION = 547; +TSqlLexer.JOB = 548; +TSqlLexer.JSON = 549; +TSqlLexer.KB = 550; +TSqlLexer.KEEP = 551; +TSqlLexer.KEEPFIXED = 552; +TSqlLexer.KEY_SOURCE = 553; +TSqlLexer.KEYS = 554; +TSqlLexer.KEYSET = 555; +TSqlLexer.LAG = 556; +TSqlLexer.LAST = 557; +TSqlLexer.LAST_VALUE = 558; +TSqlLexer.LEAD = 559; +TSqlLexer.LEVEL = 560; +TSqlLexer.LIST = 561; +TSqlLexer.LISTENER = 562; +TSqlLexer.LISTENER_URL = 563; +TSqlLexer.LOB_COMPACTION = 564; +TSqlLexer.LOCAL = 565; +TSqlLexer.LOCATION = 566; +TSqlLexer.LOCK = 567; +TSqlLexer.LOCK_ESCALATION = 568; +TSqlLexer.LOGIN = 569; +TSqlLexer.LOOP = 570; +TSqlLexer.LOW = 571; +TSqlLexer.MANUAL = 572; +TSqlLexer.MARK = 573; +TSqlLexer.MATERIALIZED = 574; +TSqlLexer.MAX = 575; +TSqlLexer.MAX_CPU_PERCENT = 576; +TSqlLexer.MAX_DOP = 577; +TSqlLexer.MAX_FILES = 578; +TSqlLexer.MAX_IOPS_PER_VOLUME = 579; +TSqlLexer.MAX_MEMORY_PERCENT = 580; +TSqlLexer.MAX_PROCESSES = 581; +TSqlLexer.MAX_QUEUE_READERS = 582; +TSqlLexer.MAX_ROLLOVER_FILES = 583; +TSqlLexer.MAXDOP = 584; +TSqlLexer.MAXRECURSION = 585; +TSqlLexer.MAXSIZE = 586; +TSqlLexer.MB = 587; +TSqlLexer.MEDIUM = 588; +TSqlLexer.MEMORY_OPTIMIZED_DATA = 589; +TSqlLexer.MESSAGE = 590; +TSqlLexer.MIN = 591; +TSqlLexer.MIN_ACTIVE_ROWVERSION = 592; +TSqlLexer.MIN_CPU_PERCENT = 593; +TSqlLexer.MIN_IOPS_PER_VOLUME = 594; +TSqlLexer.MIN_MEMORY_PERCENT = 595; +TSqlLexer.MINUTES = 596; +TSqlLexer.MIRROR_ADDRESS = 597; +TSqlLexer.MIXED_PAGE_ALLOCATION = 598; +TSqlLexer.MODE = 599; +TSqlLexer.MODIFY = 600; +TSqlLexer.MOVE = 601; +TSqlLexer.MULTI_USER = 602; +TSqlLexer.NAME = 603; +TSqlLexer.NESTED_TRIGGERS = 604; +TSqlLexer.NEW_ACCOUNT = 605; +TSqlLexer.NEW_BROKER = 606; +TSqlLexer.NEW_PASSWORD = 607; +TSqlLexer.NEXT = 608; +TSqlLexer.NO = 609; +TSqlLexer.NO_TRUNCATE = 610; +TSqlLexer.NO_WAIT = 611; +TSqlLexer.NOCOUNT = 612; +TSqlLexer.NODES = 613; +TSqlLexer.NOEXPAND = 614; +TSqlLexer.NON_TRANSACTED_ACCESS = 615; +TSqlLexer.NORECOMPUTE = 616; +TSqlLexer.NORECOVERY = 617; +TSqlLexer.NOWAIT = 618; +TSqlLexer.NTILE = 619; +TSqlLexer.NUMANODE = 620; +TSqlLexer.NUMBER = 621; +TSqlLexer.NUMERIC_ROUNDABORT = 622; +TSqlLexer.OBJECT = 623; +TSqlLexer.OFFLINE = 624; +TSqlLexer.OFFSET = 625; +TSqlLexer.OLD_ACCOUNT = 626; +TSqlLexer.ONLINE = 627; +TSqlLexer.ONLY = 628; +TSqlLexer.OPEN_EXISTING = 629; +TSqlLexer.OPTIMISTIC = 630; +TSqlLexer.OPTIMIZE = 631; +TSqlLexer.OUT = 632; +TSqlLexer.OUTPUT = 633; +TSqlLexer.OVERRIDE = 634; +TSqlLexer.OWNER = 635; +TSqlLexer.PAGE_VERIFY = 636; +TSqlLexer.PARAMETERIZATION = 637; +TSqlLexer.PARTITION = 638; +TSqlLexer.PARTITIONS = 639; +TSqlLexer.PARTNER = 640; +TSqlLexer.PATH = 641; +TSqlLexer.POISON_MESSAGE_HANDLING = 642; +TSqlLexer.POOL = 643; +TSqlLexer.PORT = 644; +TSqlLexer.PRECEDING = 645; +TSqlLexer.PRIMARY_ROLE = 646; +TSqlLexer.PRIOR = 647; +TSqlLexer.PRIORITY = 648; +TSqlLexer.PRIORITY_LEVEL = 649; +TSqlLexer.PRIVATE = 650; +TSqlLexer.PRIVATE_KEY = 651; +TSqlLexer.PRIVILEGES = 652; +TSqlLexer.PROCEDURE_NAME = 653; +TSqlLexer.PROPERTY = 654; +TSqlLexer.PROVIDER = 655; +TSqlLexer.PROVIDER_KEY_NAME = 656; +TSqlLexer.QUERY = 657; +TSqlLexer.QUEUE = 658; +TSqlLexer.QUEUE_DELAY = 659; +TSqlLexer.QUOTED_IDENTIFIER = 660; +TSqlLexer.RANGE = 661; +TSqlLexer.RANK = 662; +TSqlLexer.RC2 = 663; +TSqlLexer.RC4 = 664; +TSqlLexer.RC4_128 = 665; +TSqlLexer.READ_COMMITTED_SNAPSHOT = 666; +TSqlLexer.READ_ONLY = 667; +TSqlLexer.READ_ONLY_ROUTING_LIST = 668; +TSqlLexer.READ_WRITE = 669; +TSqlLexer.READONLY = 670; +TSqlLexer.REBUILD = 671; +TSqlLexer.RECEIVE = 672; +TSqlLexer.RECOMPILE = 673; +TSqlLexer.RECOVERY = 674; +TSqlLexer.RECURSIVE_TRIGGERS = 675; +TSqlLexer.RELATIVE = 676; +TSqlLexer.REMOTE = 677; +TSqlLexer.REMOTE_SERVICE_NAME = 678; +TSqlLexer.REMOVE = 679; +TSqlLexer.REORGANIZE = 680; +TSqlLexer.REPEATABLE = 681; +TSqlLexer.REPLICA = 682; +TSqlLexer.REQUEST_MAX_CPU_TIME_SEC = 683; +TSqlLexer.REQUEST_MAX_MEMORY_GRANT_PERCENT = 684; +TSqlLexer.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 685; +TSqlLexer.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 686; +TSqlLexer.RESERVE_DISK_SPACE = 687; +TSqlLexer.RESOURCE = 688; +TSqlLexer.RESOURCE_MANAGER_LOCATION = 689; +TSqlLexer.RESTRICTED_USER = 690; +TSqlLexer.RETENTION = 691; +TSqlLexer.ROBUST = 692; +TSqlLexer.ROOT = 693; +TSqlLexer.ROUTE = 694; +TSqlLexer.ROW = 695; +TSqlLexer.ROW_NUMBER = 696; +TSqlLexer.ROWGUID = 697; +TSqlLexer.ROWS = 698; +TSqlLexer.SAMPLE = 699; +TSqlLexer.SCHEMABINDING = 700; +TSqlLexer.SCOPED = 701; +TSqlLexer.SCROLL = 702; +TSqlLexer.SCROLL_LOCKS = 703; +TSqlLexer.SEARCH = 704; +TSqlLexer.SECONDARY = 705; +TSqlLexer.SECONDARY_ONLY = 706; +TSqlLexer.SECONDARY_ROLE = 707; +TSqlLexer.SECONDS = 708; +TSqlLexer.SECRET = 709; +TSqlLexer.SECURITY = 710; +TSqlLexer.SECURITY_LOG = 711; +TSqlLexer.SEEDING_MODE = 712; +TSqlLexer.SELF = 713; +TSqlLexer.SEMI_SENSITIVE = 714; +TSqlLexer.SEND = 715; +TSqlLexer.SENT = 716; +TSqlLexer.SEQUENCE = 717; +TSqlLexer.SERIALIZABLE = 718; +TSqlLexer.SESSION_TIMEOUT = 719; +TSqlLexer.SETERROR = 720; +TSqlLexer.SHARE = 721; +TSqlLexer.SHOWPLAN = 722; +TSqlLexer.SIGNATURE = 723; +TSqlLexer.SIMPLE = 724; +TSqlLexer.SINGLE_USER = 725; +TSqlLexer.SIZE = 726; +TSqlLexer.SMALLINT = 727; +TSqlLexer.SNAPSHOT = 728; +TSqlLexer.SPATIAL_WINDOW_MAX_CELLS = 729; +TSqlLexer.STANDBY = 730; +TSqlLexer.START_DATE = 731; +TSqlLexer.STATIC = 732; +TSqlLexer.STATS_STREAM = 733; +TSqlLexer.STATUS = 734; +TSqlLexer.STATUSONLY = 735; +TSqlLexer.STDEV = 736; +TSqlLexer.STDEVP = 737; +TSqlLexer.STOPLIST = 738; +TSqlLexer.STRING_AGG = 739; +TSqlLexer.STUFF = 740; +TSqlLexer.SUBJECT = 741; +TSqlLexer.SUBSCRIPTION = 742; +TSqlLexer.SUM = 743; +TSqlLexer.SUSPEND = 744; +TSqlLexer.SYMMETRIC = 745; +TSqlLexer.SYNCHRONOUS_COMMIT = 746; +TSqlLexer.SYNONYM = 747; +TSqlLexer.SYSTEM = 748; +TSqlLexer.TAKE = 749; +TSqlLexer.TARGET_RECOVERY_TIME = 750; +TSqlLexer.TB = 751; +TSqlLexer.TEXTIMAGE_ON = 752; +TSqlLexer.THROW = 753; +TSqlLexer.TIES = 754; +TSqlLexer.TIME = 755; +TSqlLexer.TIMEOUT = 756; +TSqlLexer.TIMER = 757; +TSqlLexer.TINYINT = 758; +TSqlLexer.TORN_PAGE_DETECTION = 759; +TSqlLexer.TRANSFORM_NOISE_WORDS = 760; +TSqlLexer.TRIPLE_DES = 761; +TSqlLexer.TRIPLE_DES_3KEY = 762; +TSqlLexer.TRUSTWORTHY = 763; +TSqlLexer.TRY = 764; +TSqlLexer.TSQL = 765; +TSqlLexer.TWO_DIGIT_YEAR_CUTOFF = 766; +TSqlLexer.TYPE = 767; +TSqlLexer.TYPE_WARNING = 768; +TSqlLexer.UNBOUNDED = 769; +TSqlLexer.UNCOMMITTED = 770; +TSqlLexer.UNKNOWN = 771; +TSqlLexer.UNLIMITED = 772; +TSqlLexer.UOW = 773; +TSqlLexer.USING = 774; +TSqlLexer.VALID_XML = 775; +TSqlLexer.VALIDATION = 776; +TSqlLexer.VALUE = 777; +TSqlLexer.VAR = 778; +TSqlLexer.VARP = 779; +TSqlLexer.VIEW_METADATA = 780; +TSqlLexer.VIEWS = 781; +TSqlLexer.WAIT = 782; +TSqlLexer.WELL_FORMED_XML = 783; +TSqlLexer.WITHOUT_ARRAY_WRAPPER = 784; +TSqlLexer.WORK = 785; +TSqlLexer.WORKLOAD = 786; +TSqlLexer.XML = 787; +TSqlLexer.XMLDATA = 788; +TSqlLexer.XMLNAMESPACES = 789; +TSqlLexer.XMLSCHEMA = 790; +TSqlLexer.XSINIL = 791; +TSqlLexer.DOLLAR_ACTION = 792; +TSqlLexer.SPACE = 793; +TSqlLexer.COMMENT = 794; +TSqlLexer.LINE_COMMENT = 795; +TSqlLexer.DOUBLE_QUOTE_ID = 796; +TSqlLexer.SINGLE_QUOTE = 797; +TSqlLexer.SQUARE_BRACKET_ID = 798; +TSqlLexer.LOCAL_ID = 799; +TSqlLexer.DECIMAL = 800; +TSqlLexer.ID = 801; +TSqlLexer.QUOTED_URL = 802; +TSqlLexer.QUOTED_HOST_AND_PORT = 803; +TSqlLexer.STRING = 804; +TSqlLexer.BINARY = 805; +TSqlLexer.FLOAT = 806; +TSqlLexer.REAL = 807; +TSqlLexer.EQUAL = 808; +TSqlLexer.GREATER = 809; +TSqlLexer.LESS = 810; +TSqlLexer.EXCLAMATION = 811; +TSqlLexer.PLUS_ASSIGN = 812; +TSqlLexer.MINUS_ASSIGN = 813; +TSqlLexer.MULT_ASSIGN = 814; +TSqlLexer.DIV_ASSIGN = 815; +TSqlLexer.MOD_ASSIGN = 816; +TSqlLexer.AND_ASSIGN = 817; +TSqlLexer.XOR_ASSIGN = 818; +TSqlLexer.OR_ASSIGN = 819; +TSqlLexer.DOUBLE_BAR = 820; +TSqlLexer.DOT = 821; +TSqlLexer.UNDERLINE = 822; +TSqlLexer.AT = 823; +TSqlLexer.SHARP = 824; +TSqlLexer.DOLLAR = 825; +TSqlLexer.LR_BRACKET = 826; +TSqlLexer.RR_BRACKET = 827; +TSqlLexer.COMMA = 828; +TSqlLexer.SEMI = 829; +TSqlLexer.COLON = 830; +TSqlLexer.STAR = 831; +TSqlLexer.DIVIDE = 832; +TSqlLexer.MODULE = 833; +TSqlLexer.PLUS = 834; +TSqlLexer.MINUS = 835; +TSqlLexer.BIT_NOT = 836; +TSqlLexer.BIT_OR = 837; +TSqlLexer.BIT_AND = 838; +TSqlLexer.BIT_XOR = 839; +TSqlLexer.IPV4_OCTECT = 840; + +TSqlLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + +TSqlLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; + +TSqlLexer.prototype.literalNames = [ null, "'ABSENT'", "'ADD'", "'AES'", + "'ALL'", "'ALLOW_CONNECTIONS'", "'ALLOW_MULTIPLE_EVENT_LOSS'", + "'ALLOW_SINGLE_EVENT_LOSS'", "'ALTER'", + "'AND'", "'ANONYMOUS'", "'ANY'", "'APPEND'", + "'APPLICATION'", "'AS'", "'ASC'", "'ASYMMETRIC'", + "'ASYNCHRONOUS_COMMIT'", "'AUTHORIZATION'", + "'AUTHENTICATION'", "'AUTOMATED_BACKUP_PREFERENCE'", + "'AUTOMATIC'", "'AVAILABILITY_MODE'", + "'\\'", "'BACKUP'", "'BEFORE'", "'BEGIN'", + "'BETWEEN'", "'BLOCK'", "'BLOCKSIZE'", + "'BLOCKING_HIERARCHY'", "'BREAK'", + "'BROWSE'", "'BUFFER'", "'BUFFERCOUNT'", + "'BULK'", "'BY'", "'CACHE'", "'CALLED'", + "'CASCADE'", "'CASE'", "'CERTIFICATE'", + "'CHANGETABLE'", "'CHANGES'", "'CHECK'", + "'CHECKPOINT'", "'CHECK_POLICY'", "'CHECK_EXPIRATION'", + "'CLASSIFIER_FUNCTION'", "'CLOSE'", + "'CLUSTER'", "'CLUSTERED'", "'COALESCE'", + "'COLLATE'", "'COLUMN'", "'COMPRESSION'", + "'COMMIT'", "'COMPUTE'", "'CONFIGURATION'", + "'CONSTRAINT'", "'CONTAINMENT'", "'CONTAINS'", + "'CONTAINSTABLE'", "'CONTEXT'", "'CONTINUE'", + "'CONTINUE_AFTER_ERROR'", "'CONTRACT'", + "'CONTRACT_NAME'", "'CONVERSATION'", + null, "'COPY_ONLY'", "'CREATE'", "'CROSS'", + "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_TIME'", + "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", + "'CURSOR'", "'CYCLE'", "'DATA_COMPRESSION'", + "'DATA_SOURCE'", "'DATABASE'", "'DATABASE_MIRRORING'", + "'DBCC'", "'DEALLOCATE'", "'DECLARE'", + "'DEFAULT'", "'DEFAULT_DATABASE'", + "'DEFAULT_SCHEMA'", "'DELETE'", "'DENY'", + "'DESC'", "'DIAGNOSTICS'", "'DIFFERENTIAL'", + "'DISK'", "'DISTINCT'", "'DISTRIBUTED'", + "'DOUBLE'", "'\\\\'", "'//'", "'DROP'", + "'DTC_SUPPORT'", "'DUMP'", "'ELSE'", + "'ENABLED'", "'END'", "'ENDPOINT'", + "'ERRLVL'", "'ESCAPE'", "'ERROR'", + "'EVENT'", null, "'EVENT_RETENTION_MODE'", + "'EXCEPT'", "'EXECUTABLE_FILE'", null, + "'EXISTS'", "'EXPIREDATE'", "'EXIT'", + "'EXTENSION'", "'EXTERNAL'", "'EXTERNAL_ACCESS'", + "'FAILOVER'", "'FAILURECONDITIONLEVEL'", + "'FAN_IN'", "'FETCH'", "'FILE'", "'FILENAME'", + "'FILLFACTOR'", "'FILE_SNAPSHOT'", + "'FOR'", "'FORCESEEK'", "'FORCE_SERVICE_ALLOW_DATA_LOSS'", + "'FOREIGN'", "'FREETEXT'", "'FREETEXTTABLE'", + "'FROM'", "'FULL'", "'FUNCTION'", "'GET'", + "'GOTO'", "'GOVERNOR'", "'GRANT'", + "'GROUP'", "'HAVING'", "'HASHED'", + "'HEALTHCHECKTIMEOUT'", "'IDENTITY'", + "'IDENTITYCOL'", "'IDENTITY_INSERT'", + "'IF'", "'IIF'", "'IN'", "'INCLUDE'", + "'INCREMENT'", "'INDEX'", "'INFINITE'", + "'INIT'", "'INNER'", "'INSERT'", "'INSTEAD'", + "'INTERSECT'", "'INTO'", null, null, + "'IS'", "'ISNULL'", "'JOIN'", "'KERBEROS'", + "'KEY'", "'KEY_PATH'", "'KEY_STORE_PROVIDER_NAME'", + "'KILL'", "'LANGUAGE'", "'LEFT'", "'LIBRARY'", + "'LIFETIME'", "'LIKE'", "'LINENO'", + "'LINUX'", "'LISTENER_IP'", "'LISTENER_PORT'", + "'LOAD'", "'LOCAL_SERVICE_NAME'", "'LOG'", + "'MATCHED'", "'MASTER'", "'MAX_MEMORY'", + "'MAXTRANSFER'", "'MAXVALUE'", "'MAX_DISPATCH_LATENCY'", + "'MAX_EVENT_SIZE'", "'MAX_SIZE'", "'MAX_OUTSTANDING_IO_PER_VOLUME'", + "'MEDIADESCRIPTION'", "'MEDIANAME'", + "'MEMBER'", "'MEMORY_PARTITION_MODE'", + "'MERGE'", "'MESSAGE_FORWARDING'", + "'MESSAGE_FORWARD_SIZE'", "'MINVALUE'", + "'MIRROR'", "'MUST_CHANGE'", "'NATIONAL'", + "'NEGOTIATE'", "'NOCHECK'", "'NOFORMAT'", + "'NOINIT'", "'NONCLUSTERED'", "'NONE'", + "'NOREWIND'", "'NOSKIP'", "'NOUNLOAD'", + "'NO_CHECKSUM'", "'NO_COMPRESSION'", + "'NO_EVENT_LOSS'", "'NOT'", "'NOTIFICATION'", + "'NTLM'", "'NULL'", "'NULLIF'", "'OF'", + "'OFF'", "'OFFSETS'", "'OLD_PASSWORD'", + "'ON'", "'ON_FAILURE'", "'OPEN'", "'OPENDATASOURCE'", + "'OPENQUERY'", "'OPENROWSET'", "'OPENXML'", + "'OPTION'", "'OR'", "'ORDER'", "'OUTER'", + "'OVER'", "'PAGE'", "'PARAM_NODE'", + "'PARTIAL'", "'PASSWORD'", "'PERCENT'", + "'PERMISSION_SET'", "'PER_CPU'", "'PER_DB'", + "'PER_NODE'", "'PIVOT'", "'PLAN'", + "'PLATFORM'", "'POLICY'", "'PRECISION'", + "'PREDICATE'", "'PRIMARY'", "'PRINT'", + "'PROC'", "'PROCEDURE'", "'PROCESS'", + "'PUBLIC'", "'PYTHON'", "'R'", "'RAISERROR'", + "'RAW'", "'READ'", "'READTEXT'", "'READ_WRITE_FILEGROUPS'", + "'RECONFIGURE'", "'REFERENCES'", "'REGENERATE'", + "'RELATED_CONVERSATION'", "'RELATED_CONVERSATION_GROUP'", + "'REPLICATION'", "'REQUIRED'", "'RESET'", + "'RESTART'", "'RESTORE'", "'RESTRICT'", + "'RESUME'", "'RETAINDAYS'", "'RETURN'", + "'RETURNS'", "'REVERT'", "'REVOKE'", + "'REWIND'", "'RIGHT'", "'ROLLBACK'", + "'ROLE'", "'ROWCOUNT'", "'ROWGUIDCOL'", + "'RSA_512'", "'RSA_1024'", "'RSA_2048'", + "'RSA_3072'", "'RSA_4096'", "'SAFETY'", + "'RULE'", "'SAFE'", "'SAVE'", "'SCHEDULER'", + "'SCHEMA'", "'SCHEME'", "'SECURITYAUDIT'", + "'SELECT'", "'SEMANTICKEYPHRASETABLE'", + "'SEMANTICSIMILARITYDETAILSTABLE'", + "'SEMANTICSIMILARITYTABLE'", "'SERVER'", + "'SERVICE'", "'SERVICE_BROKER'", "'SERVICE_NAME'", + "'SESSION'", "'SESSION_USER'", "'SET'", + "'SETUSER'", "'SHUTDOWN'", "'SID'", + "'SKIP'", "'SOFTNUMA'", "'SOME'", "'SOURCE'", + "'SPECIFICATION'", "'SPLIT'", "'SQLDUMPERFLAGS'", + "'SQLDUMPERPATH'", "'SQLDUMPERTIMEOUTS'", + "'STATISTICS'", "'STATE'", "'STATS'", + "'START'", "'STARTED'", "'STARTUP_STATE'", + "'STOP'", "'STOPPED'", "'STOP_ON_ERROR'", + "'SUPPORTED'", "'SYSTEM_USER'", "'TABLE'", + "'TABLESAMPLE'", "'TAPE'", "'TARGET'", + "'TCP'", "'TEXTSIZE'", "'THEN'", "'TO'", + "'TOP'", "'TRACK_CAUSALITY'", "'TRAN'", + "'TRANSACTION'", "'TRANSFER'", "'TRIGGER'", + "'TRUNCATE'", "'TSEQUAL'", "'UNCHECKED'", + "'UNION'", "'UNIQUE'", "'UNLOCK'", + "'UNPIVOT'", "'UNSAFE'", "'UPDATE'", + "'UPDATETEXT'", "'URL'", "'USE'", "'USED'", + "'USER'", "'VALUES'", "'VARYING'", + "'VERBOSELOGGING'", "'VIEW'", "'VISIBILITY'", + "'WAITFOR'", "'WHEN'", "'WHERE'", "'WHILE'", + "'WINDOWS'", "'WITH'", "'WITHIN'", + "'WITHOUT'", "'WITNESS'", "'WRITETEXT'", + "'ABSOLUTE'", "'ACCENT_SENSITIVITY'", + "'ACTION'", "'ACTIVATION'", "'ACTIVE'", + "'ADDRESS'", "'AES_128'", "'AES_192'", + "'AES_256'", "'AFFINITY'", "'AFTER'", + "'AGGREGATE'", "'ALGORITHM'", "'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'", + "'ALLOW_SNAPSHOT_ISOLATION'", "'ALLOWED'", + "'ANSI_NULL_DEFAULT'", "'ANSI_NULLS'", + "'ANSI_PADDING'", "'ANSI_WARNINGS'", + "'APPLICATION_LOG'", "'APPLY'", "'ARITHABORT'", + "'ASSEMBLY'", "'AUDIT'", "'AUDIT_GUID'", + "'AUTO'", "'AUTO_CLEANUP'", "'AUTO_CLOSE'", + "'AUTO_CREATE_STATISTICS'", "'AUTO_SHRINK'", + "'AUTO_UPDATE_STATISTICS'", "'AUTO_UPDATE_STATISTICS_ASYNC'", + "'AVAILABILITY'", "'AVG'", "'BACKUP_PRIORITY'", + "'BEGIN_DIALOG'", "'BIGINT'", "'BINARY BASE64'", + "'BINARY_CHECKSUM'", "'BINDING'", "'BLOB_STORAGE'", + "'BROKER'", "'BROKER_INSTANCE'", "'BULK_LOGGED'", + "'CALLER'", "'CAP_CPU_PERCENT'", null, + "'CATALOG'", "'CATCH'", "'CHANGE_RETENTION'", + "'CHANGE_TRACKING'", "'CHECKSUM'", + "'CHECKSUM_AGG'", "'CLEANUP'", "'COLLECTION'", + "'COLUMN_MASTER_KEY'", "'COMMITTED'", + "'COMPATIBILITY_LEVEL'", "'CONCAT'", + "'CONCAT_NULL_YIELDS_NULL'", "'CONTENT'", + "'CONTROL'", "'COOKIE'", "'COUNT'", + "'COUNT_BIG'", "'COUNTER'", "'CPU'", + "'CREATE_NEW'", "'CREATION_DISPOSITION'", + "'CREDENTIAL'", "'CRYPTOGRAPHIC'", + "'CURSOR_CLOSE_ON_COMMIT'", "'CURSOR_DEFAULT'", + "'DATA'", "'DATE_CORRELATION_OPTIMIZATION'", + "'DATEADD'", "'DATEDIFF'", "'DATENAME'", + "'DATEPART'", "'DAYS'", "'DB_CHAINING'", + "'DB_FAILOVER'", "'DECRYPTION'", null, + "'DEFAULT_FULLTEXT_LANGUAGE'", "'DEFAULT_LANGUAGE'", + "'DELAY'", "'DELAYED_DURABILITY'", + "'DELETED'", "'DENSE_RANK'", "'DEPENDENTS'", + "'DES'", "'DESCRIPTION'", "'DESX'", + "'DHCP'", "'DIALOG'", "'DIRECTORY_NAME'", + "'DISABLE'", "'DISABLE_BROKER'", "'DISABLED'", + null, "'DOCUMENT'", "'DYNAMIC'", "'ELEMENTS'", + "'EMERGENCY'", "'EMPTY'", "'ENABLE'", + "'ENABLE_BROKER'", "'ENCRYPTED_VALUE'", + "'ENCRYPTION'", "'ENDPOINT_URL'", "'ERROR_BROKER_CONVERSATIONS'", + "'EXCLUSIVE'", "'EXECUTABLE'", "'EXIST'", + "'EXPAND'", "'EXPIRY_DATE'", "'EXPLICIT'", + "'FAIL_OPERATION'", "'FAILOVER_MODE'", + "'FAILURE'", "'FAILURE_CONDITION_LEVEL'", + "'FAST'", "'FAST_FORWARD'", "'FILEGROUP'", + "'FILEGROWTH'", "'FILEPATH'", "'FILESTREAM'", + "'FILTER'", "'FIRST'", "'FIRST_VALUE'", + "'FOLLOWING'", "'FORCE'", "'FORCE_FAILOVER_ALLOW_DATA_LOSS'", + "'FORCED'", "'FORMAT'", "'FORWARD_ONLY'", + "'FULLSCAN'", "'FULLTEXT'", "'GB'", + "'GETDATE'", "'GETUTCDATE'", "'GLOBAL'", + "'GO'", "'GROUP_MAX_REQUESTS'", "'GROUPING'", + "'GROUPING_ID'", "'HADR'", "'HASH'", + "'HEALTH_CHECK_TIMEOUT'", "'HIGH'", + "'HONOR_BROKER_PRIORITY'", "'HOURS'", + "'IDENTITY_VALUE'", "'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'", + "'IMMEDIATE'", "'IMPERSONATE'", "'IMPORTANCE'", + "'INCLUDE_NULL_VALUES'", "'INCREMENTAL'", + "'INITIATOR'", "'INPUT'", "'INSENSITIVE'", + "'INSERTED'", "'INT'", "'IP'", "'ISOLATION'", + "'JOB'", "'JSON'", "'KB'", "'KEEP'", + "'KEEPFIXED'", "'KEY_SOURCE'", "'KEYS'", + "'KEYSET'", "'LAG'", "'LAST'", "'LAST_VALUE'", + "'LEAD'", "'LEVEL'", "'LIST'", "'LISTENER'", + "'LISTENER_URL'", "'LOB_COMPACTION'", + "'LOCAL'", "'LOCATION'", "'LOCK'", + "'LOCK_ESCALATION'", "'LOGIN'", "'LOOP'", + "'LOW'", "'MANUAL'", "'MARK'", "'MATERIALIZED'", + "'MAX'", "'MAX_CPU_PERCENT'", "'MAX_DOP'", + "'MAX_FILES'", "'MAX_IOPS_PER_VOLUME'", + "'MAX_MEMORY_PERCENT'", "'MAX_PROCESSES'", + "'MAX_QUEUE_READERS'", "'MAX_ROLLOVER_FILES'", + "'MAXDOP'", "'MAXRECURSION'", "'MAXSIZE'", + "'MB'", "'MEDIUM'", "'MEMORY_OPTIMIZED_DATA'", + "'MESSAGE'", "'MIN'", "'MIN_ACTIVE_ROWVERSION'", + "'MIN_CPU_PERCENT'", "'MIN_IOPS_PER_VOLUME'", + "'MIN_MEMORY_PERCENT'", "'MINUTES'", + "'MIRROR_ADDRESS'", "'MIXED_PAGE_ALLOCATION'", + "'MODE'", "'MODIFY'", "'MOVE'", "'MULTI_USER'", + "'NAME'", "'NESTED_TRIGGERS'", "'NEW_ACCOUNT'", + "'NEW_BROKER'", "'NEW_PASSWORD'", "'NEXT'", + "'NO'", "'NO_TRUNCATE'", "'NO_WAIT'", + "'NOCOUNT'", "'NODES'", "'NOEXPAND'", + "'NON_TRANSACTED_ACCESS'", "'NORECOMPUTE'", + "'NORECOVERY'", "'NOWAIT'", "'NTILE'", + "'NUMANODE'", "'NUMBER'", "'NUMERIC_ROUNDABORT'", + "'OBJECT'", "'OFFLINE'", "'OFFSET'", + "'OLD_ACCOUNT'", "'ONLINE'", "'ONLY'", + "'OPEN_EXISTING'", "'OPTIMISTIC'", + "'OPTIMIZE'", "'OUT'", "'OUTPUT'", + "'OVERRIDE'", "'OWNER'", "'PAGE_VERIFY'", + "'PARAMETERIZATION'", "'PARTITION'", + "'PARTITIONS'", "'PARTNER'", "'PATH'", + "'POISON_MESSAGE_HANDLING'", "'POOL'", + "'PORT'", "'PRECEDING'", "'PRIMARY_ROLE'", + "'PRIOR'", "'PRIORITY'", "'PRIORITY_LEVEL'", + "'PRIVATE'", "'PRIVATE_KEY'", "'PRIVILEGES'", + "'PROCEDURE_NAME'", "'PROPERTY'", "'PROVIDER'", + "'PROVIDER_KEY_NAME'", "'QUERY'", "'QUEUE'", + "'QUEUE_DELAY'", "'QUOTED_IDENTIFIER'", + "'RANGE'", "'RANK'", "'RC2'", "'RC4'", + "'RC4_128'", "'READ_COMMITTED_SNAPSHOT'", + "'READ_ONLY'", "'READ_ONLY_ROUTING_LIST'", + "'READ_WRITE'", "'READONLY'", "'REBUILD'", + "'RECEIVE'", "'RECOMPILE'", "'RECOVERY'", + "'RECURSIVE_TRIGGERS'", "'RELATIVE'", + "'REMOTE'", "'REMOTE_SERVICE_NAME'", + "'REMOVE'", "'REORGANIZE'", "'REPEATABLE'", + "'REPLICA'", "'REQUEST_MAX_CPU_TIME_SEC'", + "'REQUEST_MAX_MEMORY_GRANT_PERCENT'", + "'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'", + "'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'", + "'RESERVE_DISK_SPACE'", "'RESOURCE'", + "'RESOURCE_MANAGER_LOCATION'", "'RESTRICTED_USER'", + "'RETENTION'", "'ROBUST'", "'ROOT'", + "'ROUTE'", "'ROW'", "'ROW_NUMBER'", + "'ROWGUID'", "'ROWS'", "'SAMPLE'", + "'SCHEMABINDING'", "'SCOPED'", "'SCROLL'", + "'SCROLL_LOCKS'", "'SEARCH'", "'SECONDARY'", + "'SECONDARY_ONLY'", "'SECONDARY_ROLE'", + "'SECONDS'", "'SECRET'", "'SECURITY'", + "'SECURITY_LOG'", "'SEEDING_MODE'", + "'SELF'", "'SEMI_SENSITIVE'", "'SEND'", + "'SENT'", "'SEQUENCE'", "'SERIALIZABLE'", + "'SESSION_TIMEOUT'", "'SETERROR'", + "'SHARE'", "'SHOWPLAN'", "'SIGNATURE'", + "'SIMPLE'", "'SINGLE_USER'", "'SIZE'", + "'SMALLINT'", "'SNAPSHOT'", "'SPATIAL_WINDOW_MAX_CELLS'", + "'STANDBY'", "'START_DATE'", "'STATIC'", + "'STATS_STREAM'", "'STATUS'", "'STATUSONLY'", + "'STDEV'", "'STDEVP'", "'STOPLIST'", + "'STRING_AGG'", "'STUFF'", "'SUBJECT'", + "'SUBSCRIPTION'", "'SUM'", "'SUSPEND'", + "'SYMMETRIC'", "'SYNCHRONOUS_COMMIT'", + "'SYNONYM'", "'SYSTEM'", "'TAKE'", + "'TARGET_RECOVERY_TIME'", "'TB'", "'TEXTIMAGE_ON'", + "'THROW'", "'TIES'", "'TIME'", "'TIMEOUT'", + "'TIMER'", "'TINYINT'", "'TORN_PAGE_DETECTION'", + "'TRANSFORM_NOISE_WORDS'", "'TRIPLE_DES'", + "'TRIPLE_DES_3KEY'", "'TRUSTWORTHY'", + "'TRY'", "'TSQL'", "'TWO_DIGIT_YEAR_CUTOFF'", + "'TYPE'", "'TYPE_WARNING'", "'UNBOUNDED'", + "'UNCOMMITTED'", "'UNKNOWN'", "'UNLIMITED'", + "'UOW'", "'USING'", "'VALID_XML'", + "'VALIDATION'", "'VALUE'", "'VAR'", + "'VARP'", "'VIEW_METADATA'", "'VIEWS'", + "'WAIT'", "'WELL_FORMED_XML'", "'WITHOUT_ARRAY_WRAPPER'", + "'WORK'", "'WORKLOAD'", "'XML'", "'XMLDATA'", + "'XMLNAMESPACES'", "'XMLSCHEMA'", "'XSINIL'", + "'$ACTION'", null, null, null, null, + "'''", null, null, null, null, null, + null, null, null, null, null, "'='", + "'>'", "'<'", "'!'", "'+='", "'-='", + "'*='", "'/='", "'%='", "'&='", "'^='", + "'|='", "'||'", "'.'", "'_'", "'@'", + "'#'", "'$'", "'('", "')'", "','", + "';'", "':'", "'*'", "'/'", "'%'", + "'+'", "'-'", "'~'", "'|'", "'&'", + "'^'" ]; + +TSqlLexer.prototype.symbolicNames = [ null, "ABSENT", "ADD", "AES", "ALL", + "ALLOW_CONNECTIONS", "ALLOW_MULTIPLE_EVENT_LOSS", + "ALLOW_SINGLE_EVENT_LOSS", "ALTER", + "AND", "ANONYMOUS", "ANY", "APPEND", + "APPLICATION", "AS", "ASC", "ASYMMETRIC", + "ASYNCHRONOUS_COMMIT", "AUTHORIZATION", + "AUTHENTICATION", "AUTOMATED_BACKUP_PREFERENCE", + "AUTOMATIC", "AVAILABILITY_MODE", + "BACKSLASH", "BACKUP", "BEFORE", "BEGIN", + "BETWEEN", "BLOCK", "BLOCKSIZE", "BLOCKING_HIERARCHY", + "BREAK", "BROWSE", "BUFFER", "BUFFERCOUNT", + "BULK", "BY", "CACHE", "CALLED", "CASCADE", + "CASE", "CERTIFICATE", "CHANGETABLE", + "CHANGES", "CHECK", "CHECKPOINT", + "CHECK_POLICY", "CHECK_EXPIRATION", + "CLASSIFIER_FUNCTION", "CLOSE", "CLUSTER", + "CLUSTERED", "COALESCE", "COLLATE", + "COLUMN", "COMPRESSION", "COMMIT", + "COMPUTE", "CONFIGURATION", "CONSTRAINT", + "CONTAINMENT", "CONTAINS", "CONTAINSTABLE", + "CONTEXT", "CONTINUE", "CONTINUE_AFTER_ERROR", + "CONTRACT", "CONTRACT_NAME", "CONVERSATION", + "CONVERT", "COPY_ONLY", "CREATE", + "CROSS", "CURRENT", "CURRENT_DATE", + "CURRENT_TIME", "CURRENT_TIMESTAMP", + "CURRENT_USER", "CURSOR", "CYCLE", + "DATA_COMPRESSION", "DATA_SOURCE", + "DATABASE", "DATABASE_MIRRORING", + "DBCC", "DEALLOCATE", "DECLARE", "DEFAULT", + "DEFAULT_DATABASE", "DEFAULT_SCHEMA", + "DELETE", "DENY", "DESC", "DIAGNOSTICS", + "DIFFERENTIAL", "DISK", "DISTINCT", + "DISTRIBUTED", "DOUBLE", "DOUBLE_BACK_SLASH", + "DOUBLE_FORWARD_SLASH", "DROP", "DTC_SUPPORT", + "DUMP", "ELSE", "ENABLED", "END", + "ENDPOINT", "ERRLVL", "ESCAPE", "ERROR", + "EVENT", "EVENTDATA", "EVENT_RETENTION_MODE", + "EXCEPT", "EXECUTABLE_FILE", "EXECUTE", + "EXISTS", "EXPIREDATE", "EXIT", "EXTENSION", + "EXTERNAL", "EXTERNAL_ACCESS", "FAILOVER", + "FAILURECONDITIONLEVEL", "FAN_IN", + "FETCH", "FILE", "FILENAME", "FILLFACTOR", + "FILE_SNAPSHOT", "FOR", "FORCESEEK", + "FORCE_SERVICE_ALLOW_DATA_LOSS", "FOREIGN", + "FREETEXT", "FREETEXTTABLE", "FROM", + "FULL", "FUNCTION", "GET", "GOTO", + "GOVERNOR", "GRANT", "GROUP", "HAVING", + "HASHED", "HEALTHCHECKTIMEOUT", "IDENTITY", + "IDENTITYCOL", "IDENTITY_INSERT", + "IF", "IIF", "IN", "INCLUDE", "INCREMENT", + "INDEX", "INFINITE", "INIT", "INNER", + "INSERT", "INSTEAD", "INTERSECT", + "INTO", "IPV4_ADDR", "IPV6_ADDR", + "IS", "ISNULL", "JOIN", "KERBEROS", + "KEY", "KEY_PATH", "KEY_STORE_PROVIDER_NAME", + "KILL", "LANGUAGE", "LEFT", "LIBRARY", + "LIFETIME", "LIKE", "LINENO", "LINUX", + "LISTENER_IP", "LISTENER_PORT", "LOAD", + "LOCAL_SERVICE_NAME", "LOG", "MATCHED", + "MASTER", "MAX_MEMORY", "MAXTRANSFER", + "MAXVALUE", "MAX_DISPATCH_LATENCY", + "MAX_EVENT_SIZE", "MAX_SIZE", "MAX_OUTSTANDING_IO_PER_VOLUME", + "MEDIADESCRIPTION", "MEDIANAME", "MEMBER", + "MEMORY_PARTITION_MODE", "MERGE", + "MESSAGE_FORWARDING", "MESSAGE_FORWARD_SIZE", + "MINVALUE", "MIRROR", "MUST_CHANGE", + "NATIONAL", "NEGOTIATE", "NOCHECK", + "NOFORMAT", "NOINIT", "NONCLUSTERED", + "NONE", "NOREWIND", "NOSKIP", "NOUNLOAD", + "NO_CHECKSUM", "NO_COMPRESSION", "NO_EVENT_LOSS", + "NOT", "NOTIFICATION", "NTLM", "NULL", + "NULLIF", "OF", "OFF", "OFFSETS", + "OLD_PASSWORD", "ON", "ON_FAILURE", + "OPEN", "OPENDATASOURCE", "OPENQUERY", + "OPENROWSET", "OPENXML", "OPTION", + "OR", "ORDER", "OUTER", "OVER", "PAGE", + "PARAM_NODE", "PARTIAL", "PASSWORD", + "PERCENT", "PERMISSION_SET", "PER_CPU", + "PER_DB", "PER_NODE", "PIVOT", "PLAN", + "PLATFORM", "POLICY", "PRECISION", + "PREDICATE", "PRIMARY", "PRINT", "PROC", + "PROCEDURE", "PROCESS", "PUBLIC", + "PYTHON", "R", "RAISERROR", "RAW", + "READ", "READTEXT", "READ_WRITE_FILEGROUPS", + "RECONFIGURE", "REFERENCES", "REGENERATE", + "RELATED_CONVERSATION", "RELATED_CONVERSATION_GROUP", + "REPLICATION", "REQUIRED", "RESET", + "RESTART", "RESTORE", "RESTRICT", + "RESUME", "RETAINDAYS", "RETURN", + "RETURNS", "REVERT", "REVOKE", "REWIND", + "RIGHT", "ROLLBACK", "ROLE", "ROWCOUNT", + "ROWGUIDCOL", "RSA_512", "RSA_1024", + "RSA_2048", "RSA_3072", "RSA_4096", + "SAFETY", "RULE", "SAFE", "SAVE", + "SCHEDULER", "SCHEMA", "SCHEME", "SECURITYAUDIT", + "SELECT", "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", + "SEMANTICSIMILARITYTABLE", "SERVER", + "SERVICE", "SERVICE_BROKER", "SERVICE_NAME", + "SESSION", "SESSION_USER", "SET", + "SETUSER", "SHUTDOWN", "SID", "SKIP_KEYWORD", + "SOFTNUMA", "SOME", "SOURCE", "SPECIFICATION", + "SPLIT", "SQLDUMPERFLAGS", "SQLDUMPERPATH", + "SQLDUMPERTIMEOUT", "STATISTICS", + "STATE", "STATS", "START", "STARTED", + "STARTUP_STATE", "STOP", "STOPPED", + "STOP_ON_ERROR", "SUPPORTED", "SYSTEM_USER", + "TABLE", "TABLESAMPLE", "TAPE", "TARGET", + "TCP", "TEXTSIZE", "THEN", "TO", "TOP", + "TRACK_CAUSALITY", "TRAN", "TRANSACTION", + "TRANSFER", "TRIGGER", "TRUNCATE", + "TSEQUAL", "UNCHECKED", "UNION", "UNIQUE", + "UNLOCK", "UNPIVOT", "UNSAFE", "UPDATE", + "UPDATETEXT", "URL", "USE", "USED", + "USER", "VALUES", "VARYING", "VERBOSELOGGING", + "VIEW", "VISIBILITY", "WAITFOR", "WHEN", + "WHERE", "WHILE", "WINDOWS", "WITH", + "WITHIN", "WITHOUT", "WITNESS", "WRITETEXT", + "ABSOLUTE", "ACCENT_SENSITIVITY", + "ACTION", "ACTIVATION", "ACTIVE", + "ADDRESS", "AES_128", "AES_192", "AES_256", + "AFFINITY", "AFTER", "AGGREGATE", + "ALGORITHM", "ALLOW_ENCRYPTED_VALUE_MODIFICATIONS", + "ALLOW_SNAPSHOT_ISOLATION", "ALLOWED", + "ANSI_NULL_DEFAULT", "ANSI_NULLS", + "ANSI_PADDING", "ANSI_WARNINGS", "APPLICATION_LOG", + "APPLY", "ARITHABORT", "ASSEMBLY", + "AUDIT", "AUDIT_GUID", "AUTO", "AUTO_CLEANUP", + "AUTO_CLOSE", "AUTO_CREATE_STATISTICS", + "AUTO_SHRINK", "AUTO_UPDATE_STATISTICS", + "AUTO_UPDATE_STATISTICS_ASYNC", "AVAILABILITY", + "AVG", "BACKUP_PRIORITY", "BEGIN_DIALOG", + "BIGINT", "BINARY_BASE64", "BINARY_CHECKSUM", + "BINDING", "BLOB_STORAGE", "BROKER", + "BROKER_INSTANCE", "BULK_LOGGED", + "CALLER", "CAP_CPU_PERCENT", "CAST", + "CATALOG", "CATCH", "CHANGE_RETENTION", + "CHANGE_TRACKING", "CHECKSUM", "CHECKSUM_AGG", + "CLEANUP", "COLLECTION", "COLUMN_MASTER_KEY", + "COMMITTED", "COMPATIBILITY_LEVEL", + "CONCAT", "CONCAT_NULL_YIELDS_NULL", + "CONTENT", "CONTROL", "COOKIE", "COUNT", + "COUNT_BIG", "COUNTER", "CPU", "CREATE_NEW", + "CREATION_DISPOSITION", "CREDENTIAL", + "CRYPTOGRAPHIC", "CURSOR_CLOSE_ON_COMMIT", + "CURSOR_DEFAULT", "DATA", "DATE_CORRELATION_OPTIMIZATION", + "DATEADD", "DATEDIFF", "DATENAME", + "DATEPART", "DAYS", "DB_CHAINING", + "DB_FAILOVER", "DECRYPTION", "DEFAULT_DOUBLE_QUOTE", + "DEFAULT_FULLTEXT_LANGUAGE", "DEFAULT_LANGUAGE", + "DELAY", "DELAYED_DURABILITY", "DELETED", + "DENSE_RANK", "DEPENDENTS", "DES", + "DESCRIPTION", "DESX", "DHCP", "DIALOG", + "DIRECTORY_NAME", "DISABLE", "DISABLE_BROKER", + "DISABLED", "DISK_DRIVE", "DOCUMENT", + "DYNAMIC", "ELEMENTS", "EMERGENCY", + "EMPTY", "ENABLE", "ENABLE_BROKER", + "ENCRYPTED_VALUE", "ENCRYPTION", "ENDPOINT_URL", + "ERROR_BROKER_CONVERSATIONS", "EXCLUSIVE", + "EXECUTABLE", "EXIST", "EXPAND", "EXPIRY_DATE", + "EXPLICIT", "FAIL_OPERATION", "FAILOVER_MODE", + "FAILURE", "FAILURE_CONDITION_LEVEL", + "FAST", "FAST_FORWARD", "FILEGROUP", + "FILEGROWTH", "FILEPATH", "FILESTREAM", + "FILTER", "FIRST", "FIRST_VALUE", + "FOLLOWING", "FORCE", "FORCE_FAILOVER_ALLOW_DATA_LOSS", + "FORCED", "FORMAT", "FORWARD_ONLY", + "FULLSCAN", "FULLTEXT", "GB", "GETDATE", + "GETUTCDATE", "GLOBAL", "GO", "GROUP_MAX_REQUESTS", + "GROUPING", "GROUPING_ID", "HADR", + "HASH", "HEALTH_CHECK_TIMEOUT", "HIGH", + "HONOR_BROKER_PRIORITY", "HOURS", + "IDENTITY_VALUE", "IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX", + "IMMEDIATE", "IMPERSONATE", "IMPORTANCE", + "INCLUDE_NULL_VALUES", "INCREMENTAL", + "INITIATOR", "INPUT", "INSENSITIVE", + "INSERTED", "INT", "IP", "ISOLATION", + "JOB", "JSON", "KB", "KEEP", "KEEPFIXED", + "KEY_SOURCE", "KEYS", "KEYSET", "LAG", + "LAST", "LAST_VALUE", "LEAD", "LEVEL", + "LIST", "LISTENER", "LISTENER_URL", + "LOB_COMPACTION", "LOCAL", "LOCATION", + "LOCK", "LOCK_ESCALATION", "LOGIN", + "LOOP", "LOW", "MANUAL", "MARK", "MATERIALIZED", + "MAX", "MAX_CPU_PERCENT", "MAX_DOP", + "MAX_FILES", "MAX_IOPS_PER_VOLUME", + "MAX_MEMORY_PERCENT", "MAX_PROCESSES", + "MAX_QUEUE_READERS", "MAX_ROLLOVER_FILES", + "MAXDOP", "MAXRECURSION", "MAXSIZE", + "MB", "MEDIUM", "MEMORY_OPTIMIZED_DATA", + "MESSAGE", "MIN", "MIN_ACTIVE_ROWVERSION", + "MIN_CPU_PERCENT", "MIN_IOPS_PER_VOLUME", + "MIN_MEMORY_PERCENT", "MINUTES", "MIRROR_ADDRESS", + "MIXED_PAGE_ALLOCATION", "MODE", "MODIFY", + "MOVE", "MULTI_USER", "NAME", "NESTED_TRIGGERS", + "NEW_ACCOUNT", "NEW_BROKER", "NEW_PASSWORD", + "NEXT", "NO", "NO_TRUNCATE", "NO_WAIT", + "NOCOUNT", "NODES", "NOEXPAND", "NON_TRANSACTED_ACCESS", + "NORECOMPUTE", "NORECOVERY", "NOWAIT", + "NTILE", "NUMANODE", "NUMBER", "NUMERIC_ROUNDABORT", + "OBJECT", "OFFLINE", "OFFSET", "OLD_ACCOUNT", + "ONLINE", "ONLY", "OPEN_EXISTING", + "OPTIMISTIC", "OPTIMIZE", "OUT", "OUTPUT", + "OVERRIDE", "OWNER", "PAGE_VERIFY", + "PARAMETERIZATION", "PARTITION", "PARTITIONS", + "PARTNER", "PATH", "POISON_MESSAGE_HANDLING", + "POOL", "PORT", "PRECEDING", "PRIMARY_ROLE", + "PRIOR", "PRIORITY", "PRIORITY_LEVEL", + "PRIVATE", "PRIVATE_KEY", "PRIVILEGES", + "PROCEDURE_NAME", "PROPERTY", "PROVIDER", + "PROVIDER_KEY_NAME", "QUERY", "QUEUE", + "QUEUE_DELAY", "QUOTED_IDENTIFIER", + "RANGE", "RANK", "RC2", "RC4", "RC4_128", + "READ_COMMITTED_SNAPSHOT", "READ_ONLY", + "READ_ONLY_ROUTING_LIST", "READ_WRITE", + "READONLY", "REBUILD", "RECEIVE", + "RECOMPILE", "RECOVERY", "RECURSIVE_TRIGGERS", + "RELATIVE", "REMOTE", "REMOTE_SERVICE_NAME", + "REMOVE", "REORGANIZE", "REPEATABLE", + "REPLICA", "REQUEST_MAX_CPU_TIME_SEC", + "REQUEST_MAX_MEMORY_GRANT_PERCENT", + "REQUEST_MEMORY_GRANT_TIMEOUT_SEC", + "REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT", + "RESERVE_DISK_SPACE", "RESOURCE", + "RESOURCE_MANAGER_LOCATION", "RESTRICTED_USER", + "RETENTION", "ROBUST", "ROOT", "ROUTE", + "ROW", "ROW_NUMBER", "ROWGUID", "ROWS", + "SAMPLE", "SCHEMABINDING", "SCOPED", + "SCROLL", "SCROLL_LOCKS", "SEARCH", + "SECONDARY", "SECONDARY_ONLY", "SECONDARY_ROLE", + "SECONDS", "SECRET", "SECURITY", "SECURITY_LOG", + "SEEDING_MODE", "SELF", "SEMI_SENSITIVE", + "SEND", "SENT", "SEQUENCE", "SERIALIZABLE", + "SESSION_TIMEOUT", "SETERROR", "SHARE", + "SHOWPLAN", "SIGNATURE", "SIMPLE", + "SINGLE_USER", "SIZE", "SMALLINT", + "SNAPSHOT", "SPATIAL_WINDOW_MAX_CELLS", + "STANDBY", "START_DATE", "STATIC", + "STATS_STREAM", "STATUS", "STATUSONLY", + "STDEV", "STDEVP", "STOPLIST", "STRING_AGG", + "STUFF", "SUBJECT", "SUBSCRIPTION", + "SUM", "SUSPEND", "SYMMETRIC", "SYNCHRONOUS_COMMIT", + "SYNONYM", "SYSTEM", "TAKE", "TARGET_RECOVERY_TIME", + "TB", "TEXTIMAGE_ON", "THROW", "TIES", + "TIME", "TIMEOUT", "TIMER", "TINYINT", + "TORN_PAGE_DETECTION", "TRANSFORM_NOISE_WORDS", + "TRIPLE_DES", "TRIPLE_DES_3KEY", "TRUSTWORTHY", + "TRY", "TSQL", "TWO_DIGIT_YEAR_CUTOFF", + "TYPE", "TYPE_WARNING", "UNBOUNDED", + "UNCOMMITTED", "UNKNOWN", "UNLIMITED", + "UOW", "USING", "VALID_XML", "VALIDATION", + "VALUE", "VAR", "VARP", "VIEW_METADATA", + "VIEWS", "WAIT", "WELL_FORMED_XML", + "WITHOUT_ARRAY_WRAPPER", "WORK", "WORKLOAD", + "XML", "XMLDATA", "XMLNAMESPACES", + "XMLSCHEMA", "XSINIL", "DOLLAR_ACTION", + "SPACE", "COMMENT", "LINE_COMMENT", + "DOUBLE_QUOTE_ID", "SINGLE_QUOTE", + "SQUARE_BRACKET_ID", "LOCAL_ID", "DECIMAL", + "ID", "QUOTED_URL", "QUOTED_HOST_AND_PORT", + "STRING", "BINARY", "FLOAT", "REAL", + "EQUAL", "GREATER", "LESS", "EXCLAMATION", + "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", + "DIV_ASSIGN", "MOD_ASSIGN", "AND_ASSIGN", + "XOR_ASSIGN", "OR_ASSIGN", "DOUBLE_BAR", + "DOT", "UNDERLINE", "AT", "SHARP", + "DOLLAR", "LR_BRACKET", "RR_BRACKET", + "COMMA", "SEMI", "COLON", "STAR", + "DIVIDE", "MODULE", "PLUS", "MINUS", + "BIT_NOT", "BIT_OR", "BIT_AND", "BIT_XOR", + "IPV4_OCTECT" ]; + +TSqlLexer.prototype.ruleNames = [ "ABSENT", "ADD", "AES", "ALL", "ALLOW_CONNECTIONS", + "ALLOW_MULTIPLE_EVENT_LOSS", "ALLOW_SINGLE_EVENT_LOSS", + "ALTER", "AND", "ANONYMOUS", "ANY", "APPEND", + "APPLICATION", "AS", "ASC", "ASYMMETRIC", + "ASYNCHRONOUS_COMMIT", "AUTHORIZATION", + "AUTHENTICATION", "AUTOMATED_BACKUP_PREFERENCE", + "AUTOMATIC", "AVAILABILITY_MODE", "BACKSLASH", + "BACKUP", "BEFORE", "BEGIN", "BETWEEN", + "BLOCK", "BLOCKSIZE", "BLOCKING_HIERARCHY", + "BREAK", "BROWSE", "BUFFER", "BUFFERCOUNT", + "BULK", "BY", "CACHE", "CALLED", "CASCADE", + "CASE", "CERTIFICATE", "CHANGETABLE", + "CHANGES", "CHECK", "CHECKPOINT", "CHECK_POLICY", + "CHECK_EXPIRATION", "CLASSIFIER_FUNCTION", + "CLOSE", "CLUSTER", "CLUSTERED", "COALESCE", + "COLLATE", "COLUMN", "COMPRESSION", "COMMIT", + "COMPUTE", "CONFIGURATION", "CONSTRAINT", + "CONTAINMENT", "CONTAINS", "CONTAINSTABLE", + "CONTEXT", "CONTINUE", "CONTINUE_AFTER_ERROR", + "CONTRACT", "CONTRACT_NAME", "CONVERSATION", + "CONVERT", "COPY_ONLY", "CREATE", "CROSS", + "CURRENT", "CURRENT_DATE", "CURRENT_TIME", + "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", + "CYCLE", "DATA_COMPRESSION", "DATA_SOURCE", + "DATABASE", "DATABASE_MIRRORING", "DBCC", + "DEALLOCATE", "DECLARE", "DEFAULT", "DEFAULT_DATABASE", + "DEFAULT_SCHEMA", "DELETE", "DENY", "DESC", + "DIAGNOSTICS", "DIFFERENTIAL", "DISK", + "DISTINCT", "DISTRIBUTED", "DOUBLE", "DOUBLE_BACK_SLASH", + "DOUBLE_FORWARD_SLASH", "DROP", "DTC_SUPPORT", + "DUMP", "ELSE", "ENABLED", "END", "ENDPOINT", + "ERRLVL", "ESCAPE", "ERROR", "EVENT", + "EVENTDATA", "EVENT_RETENTION_MODE", "EXCEPT", + "EXECUTABLE_FILE", "EXECUTE", "EXISTS", + "EXPIREDATE", "EXIT", "EXTENSION", "EXTERNAL", + "EXTERNAL_ACCESS", "FAILOVER", "FAILURECONDITIONLEVEL", + "FAN_IN", "FETCH", "FILE", "FILENAME", + "FILLFACTOR", "FILE_SNAPSHOT", "FOR", + "FORCESEEK", "FORCE_SERVICE_ALLOW_DATA_LOSS", + "FOREIGN", "FREETEXT", "FREETEXTTABLE", + "FROM", "FULL", "FUNCTION", "GET", "GOTO", + "GOVERNOR", "GRANT", "GROUP", "HAVING", + "HASHED", "HEALTHCHECKTIMEOUT", "IDENTITY", + "IDENTITYCOL", "IDENTITY_INSERT", "IF", + "IIF", "IN", "INCLUDE", "INCREMENT", "INDEX", + "INFINITE", "INIT", "INNER", "INSERT", + "INSTEAD", "INTERSECT", "INTO", "IPV4_ADDR", + "IPV6_ADDR", "IS", "ISNULL", "JOIN", "KERBEROS", + "KEY", "KEY_PATH", "KEY_STORE_PROVIDER_NAME", + "KILL", "LANGUAGE", "LEFT", "LIBRARY", + "LIFETIME", "LIKE", "LINENO", "LINUX", + "LISTENER_IP", "LISTENER_PORT", "LOAD", + "LOCAL_SERVICE_NAME", "LOG", "MATCHED", + "MASTER", "MAX_MEMORY", "MAXTRANSFER", + "MAXVALUE", "MAX_DISPATCH_LATENCY", "MAX_EVENT_SIZE", + "MAX_SIZE", "MAX_OUTSTANDING_IO_PER_VOLUME", + "MEDIADESCRIPTION", "MEDIANAME", "MEMBER", + "MEMORY_PARTITION_MODE", "MERGE", "MESSAGE_FORWARDING", + "MESSAGE_FORWARD_SIZE", "MINVALUE", "MIRROR", + "MUST_CHANGE", "NATIONAL", "NEGOTIATE", + "NOCHECK", "NOFORMAT", "NOINIT", "NONCLUSTERED", + "NONE", "NOREWIND", "NOSKIP", "NOUNLOAD", + "NO_CHECKSUM", "NO_COMPRESSION", "NO_EVENT_LOSS", + "NOT", "NOTIFICATION", "NTLM", "NULL", + "NULLIF", "OF", "OFF", "OFFSETS", "OLD_PASSWORD", + "ON", "ON_FAILURE", "OPEN", "OPENDATASOURCE", + "OPENQUERY", "OPENROWSET", "OPENXML", + "OPTION", "OR", "ORDER", "OUTER", "OVER", + "PAGE", "PARAM_NODE", "PARTIAL", "PASSWORD", + "PERCENT", "PERMISSION_SET", "PER_CPU", + "PER_DB", "PER_NODE", "PIVOT", "PLAN", + "PLATFORM", "POLICY", "PRECISION", "PREDICATE", + "PRIMARY", "PRINT", "PROC", "PROCEDURE", + "PROCESS", "PUBLIC", "PYTHON", "R", "RAISERROR", + "RAW", "READ", "READTEXT", "READ_WRITE_FILEGROUPS", + "RECONFIGURE", "REFERENCES", "REGENERATE", + "RELATED_CONVERSATION", "RELATED_CONVERSATION_GROUP", + "REPLICATION", "REQUIRED", "RESET", "RESTART", + "RESTORE", "RESTRICT", "RESUME", "RETAINDAYS", + "RETURN", "RETURNS", "REVERT", "REVOKE", + "REWIND", "RIGHT", "ROLLBACK", "ROLE", + "ROWCOUNT", "ROWGUIDCOL", "RSA_512", "RSA_1024", + "RSA_2048", "RSA_3072", "RSA_4096", "SAFETY", + "RULE", "SAFE", "SAVE", "SCHEDULER", "SCHEMA", + "SCHEME", "SECURITYAUDIT", "SELECT", "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", "SEMANTICSIMILARITYTABLE", + "SERVER", "SERVICE", "SERVICE_BROKER", + "SERVICE_NAME", "SESSION", "SESSION_USER", + "SET", "SETUSER", "SHUTDOWN", "SID", "SKIP_KEYWORD", + "SOFTNUMA", "SOME", "SOURCE", "SPECIFICATION", + "SPLIT", "SQLDUMPERFLAGS", "SQLDUMPERPATH", + "SQLDUMPERTIMEOUT", "STATISTICS", "STATE", + "STATS", "START", "STARTED", "STARTUP_STATE", + "STOP", "STOPPED", "STOP_ON_ERROR", "SUPPORTED", + "SYSTEM_USER", "TABLE", "TABLESAMPLE", + "TAPE", "TARGET", "TCP", "TEXTSIZE", "THEN", + "TO", "TOP", "TRACK_CAUSALITY", "TRAN", + "TRANSACTION", "TRANSFER", "TRIGGER", + "TRUNCATE", "TSEQUAL", "UNCHECKED", "UNION", + "UNIQUE", "UNLOCK", "UNPIVOT", "UNSAFE", + "UPDATE", "UPDATETEXT", "URL", "USE", + "USED", "USER", "VALUES", "VARYING", "VERBOSELOGGING", + "VIEW", "VISIBILITY", "WAITFOR", "WHEN", + "WHERE", "WHILE", "WINDOWS", "WITH", "WITHIN", + "WITHOUT", "WITNESS", "WRITETEXT", "ABSOLUTE", + "ACCENT_SENSITIVITY", "ACTION", "ACTIVATION", + "ACTIVE", "ADDRESS", "AES_128", "AES_192", + "AES_256", "AFFINITY", "AFTER", "AGGREGATE", + "ALGORITHM", "ALLOW_ENCRYPTED_VALUE_MODIFICATIONS", + "ALLOW_SNAPSHOT_ISOLATION", "ALLOWED", + "ANSI_NULL_DEFAULT", "ANSI_NULLS", "ANSI_PADDING", + "ANSI_WARNINGS", "APPLICATION_LOG", "APPLY", + "ARITHABORT", "ASSEMBLY", "AUDIT", "AUDIT_GUID", + "AUTO", "AUTO_CLEANUP", "AUTO_CLOSE", + "AUTO_CREATE_STATISTICS", "AUTO_SHRINK", + "AUTO_UPDATE_STATISTICS", "AUTO_UPDATE_STATISTICS_ASYNC", + "AVAILABILITY", "AVG", "BACKUP_PRIORITY", + "BEGIN_DIALOG", "BIGINT", "BINARY_BASE64", + "BINARY_CHECKSUM", "BINDING", "BLOB_STORAGE", + "BROKER", "BROKER_INSTANCE", "BULK_LOGGED", + "CALLER", "CAP_CPU_PERCENT", "CAST", "CATALOG", + "CATCH", "CHANGE_RETENTION", "CHANGE_TRACKING", + "CHECKSUM", "CHECKSUM_AGG", "CLEANUP", + "COLLECTION", "COLUMN_MASTER_KEY", "COMMITTED", + "COMPATIBILITY_LEVEL", "CONCAT", "CONCAT_NULL_YIELDS_NULL", + "CONTENT", "CONTROL", "COOKIE", "COUNT", + "COUNT_BIG", "COUNTER", "CPU", "CREATE_NEW", + "CREATION_DISPOSITION", "CREDENTIAL", + "CRYPTOGRAPHIC", "CURSOR_CLOSE_ON_COMMIT", + "CURSOR_DEFAULT", "DATA", "DATE_CORRELATION_OPTIMIZATION", + "DATEADD", "DATEDIFF", "DATENAME", "DATEPART", + "DAYS", "DB_CHAINING", "DB_FAILOVER", + "DECRYPTION", "DEFAULT_DOUBLE_QUOTE", + "DEFAULT_FULLTEXT_LANGUAGE", "DEFAULT_LANGUAGE", + "DELAY", "DELAYED_DURABILITY", "DELETED", + "DENSE_RANK", "DEPENDENTS", "DES", "DESCRIPTION", + "DESX", "DHCP", "DIALOG", "DIRECTORY_NAME", + "DISABLE", "DISABLE_BROKER", "DISABLED", + "DISK_DRIVE", "DOCUMENT", "DYNAMIC", "ELEMENTS", + "EMERGENCY", "EMPTY", "ENABLE", "ENABLE_BROKER", + "ENCRYPTED_VALUE", "ENCRYPTION", "ENDPOINT_URL", + "ERROR_BROKER_CONVERSATIONS", "EXCLUSIVE", + "EXECUTABLE", "EXIST", "EXPAND", "EXPIRY_DATE", + "EXPLICIT", "FAIL_OPERATION", "FAILOVER_MODE", + "FAILURE", "FAILURE_CONDITION_LEVEL", + "FAST", "FAST_FORWARD", "FILEGROUP", "FILEGROWTH", + "FILEPATH", "FILESTREAM", "FILTER", "FIRST", + "FIRST_VALUE", "FOLLOWING", "FORCE", "FORCE_FAILOVER_ALLOW_DATA_LOSS", + "FORCED", "FORMAT", "FORWARD_ONLY", "FULLSCAN", + "FULLTEXT", "GB", "GETDATE", "GETUTCDATE", + "GLOBAL", "GO", "GROUP_MAX_REQUESTS", + "GROUPING", "GROUPING_ID", "HADR", "HASH", + "HEALTH_CHECK_TIMEOUT", "HIGH", "HONOR_BROKER_PRIORITY", + "HOURS", "IDENTITY_VALUE", "IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX", + "IMMEDIATE", "IMPERSONATE", "IMPORTANCE", + "INCLUDE_NULL_VALUES", "INCREMENTAL", + "INITIATOR", "INPUT", "INSENSITIVE", "INSERTED", + "INT", "IP", "ISOLATION", "JOB", "JSON", + "KB", "KEEP", "KEEPFIXED", "KEY_SOURCE", + "KEYS", "KEYSET", "LAG", "LAST", "LAST_VALUE", + "LEAD", "LEVEL", "LIST", "LISTENER", "LISTENER_URL", + "LOB_COMPACTION", "LOCAL", "LOCATION", + "LOCK", "LOCK_ESCALATION", "LOGIN", "LOOP", + "LOW", "MANUAL", "MARK", "MATERIALIZED", + "MAX", "MAX_CPU_PERCENT", "MAX_DOP", "MAX_FILES", + "MAX_IOPS_PER_VOLUME", "MAX_MEMORY_PERCENT", + "MAX_PROCESSES", "MAX_QUEUE_READERS", + "MAX_ROLLOVER_FILES", "MAXDOP", "MAXRECURSION", + "MAXSIZE", "MB", "MEDIUM", "MEMORY_OPTIMIZED_DATA", + "MESSAGE", "MIN", "MIN_ACTIVE_ROWVERSION", + "MIN_CPU_PERCENT", "MIN_IOPS_PER_VOLUME", + "MIN_MEMORY_PERCENT", "MINUTES", "MIRROR_ADDRESS", + "MIXED_PAGE_ALLOCATION", "MODE", "MODIFY", + "MOVE", "MULTI_USER", "NAME", "NESTED_TRIGGERS", + "NEW_ACCOUNT", "NEW_BROKER", "NEW_PASSWORD", + "NEXT", "NO", "NO_TRUNCATE", "NO_WAIT", + "NOCOUNT", "NODES", "NOEXPAND", "NON_TRANSACTED_ACCESS", + "NORECOMPUTE", "NORECOVERY", "NOWAIT", + "NTILE", "NUMANODE", "NUMBER", "NUMERIC_ROUNDABORT", + "OBJECT", "OFFLINE", "OFFSET", "OLD_ACCOUNT", + "ONLINE", "ONLY", "OPEN_EXISTING", "OPTIMISTIC", + "OPTIMIZE", "OUT", "OUTPUT", "OVERRIDE", + "OWNER", "PAGE_VERIFY", "PARAMETERIZATION", + "PARTITION", "PARTITIONS", "PARTNER", + "PATH", "POISON_MESSAGE_HANDLING", "POOL", + "PORT", "PRECEDING", "PRIMARY_ROLE", "PRIOR", + "PRIORITY", "PRIORITY_LEVEL", "PRIVATE", + "PRIVATE_KEY", "PRIVILEGES", "PROCEDURE_NAME", + "PROPERTY", "PROVIDER", "PROVIDER_KEY_NAME", + "QUERY", "QUEUE", "QUEUE_DELAY", "QUOTED_IDENTIFIER", + "RANGE", "RANK", "RC2", "RC4", "RC4_128", + "READ_COMMITTED_SNAPSHOT", "READ_ONLY", + "READ_ONLY_ROUTING_LIST", "READ_WRITE", + "READONLY", "REBUILD", "RECEIVE", "RECOMPILE", + "RECOVERY", "RECURSIVE_TRIGGERS", "RELATIVE", + "REMOTE", "REMOTE_SERVICE_NAME", "REMOVE", + "REORGANIZE", "REPEATABLE", "REPLICA", + "REQUEST_MAX_CPU_TIME_SEC", "REQUEST_MAX_MEMORY_GRANT_PERCENT", + "REQUEST_MEMORY_GRANT_TIMEOUT_SEC", "REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT", + "RESERVE_DISK_SPACE", "RESOURCE", "RESOURCE_MANAGER_LOCATION", + "RESTRICTED_USER", "RETENTION", "ROBUST", + "ROOT", "ROUTE", "ROW", "ROW_NUMBER", + "ROWGUID", "ROWS", "SAMPLE", "SCHEMABINDING", + "SCOPED", "SCROLL", "SCROLL_LOCKS", "SEARCH", + "SECONDARY", "SECONDARY_ONLY", "SECONDARY_ROLE", + "SECONDS", "SECRET", "SECURITY", "SECURITY_LOG", + "SEEDING_MODE", "SELF", "SEMI_SENSITIVE", + "SEND", "SENT", "SEQUENCE", "SERIALIZABLE", + "SESSION_TIMEOUT", "SETERROR", "SHARE", + "SHOWPLAN", "SIGNATURE", "SIMPLE", "SINGLE_USER", + "SIZE", "SMALLINT", "SNAPSHOT", "SPATIAL_WINDOW_MAX_CELLS", + "STANDBY", "START_DATE", "STATIC", "STATS_STREAM", + "STATUS", "STATUSONLY", "STDEV", "STDEVP", + "STOPLIST", "STRING_AGG", "STUFF", "SUBJECT", + "SUBSCRIPTION", "SUM", "SUSPEND", "SYMMETRIC", + "SYNCHRONOUS_COMMIT", "SYNONYM", "SYSTEM", + "TAKE", "TARGET_RECOVERY_TIME", "TB", + "TEXTIMAGE_ON", "THROW", "TIES", "TIME", + "TIMEOUT", "TIMER", "TINYINT", "TORN_PAGE_DETECTION", + "TRANSFORM_NOISE_WORDS", "TRIPLE_DES", + "TRIPLE_DES_3KEY", "TRUSTWORTHY", "TRY", + "TSQL", "TWO_DIGIT_YEAR_CUTOFF", "TYPE", + "TYPE_WARNING", "UNBOUNDED", "UNCOMMITTED", + "UNKNOWN", "UNLIMITED", "UOW", "USING", + "VALID_XML", "VALIDATION", "VALUE", "VAR", + "VARP", "VIEW_METADATA", "VIEWS", "WAIT", + "WELL_FORMED_XML", "WITHOUT_ARRAY_WRAPPER", + "WORK", "WORKLOAD", "XML", "XMLDATA", + "XMLNAMESPACES", "XMLSCHEMA", "XSINIL", + "DOLLAR_ACTION", "SPACE", "COMMENT", "LINE_COMMENT", + "DOUBLE_QUOTE_ID", "SINGLE_QUOTE", "SQUARE_BRACKET_ID", + "LOCAL_ID", "DECIMAL", "ID", "QUOTED_URL", + "QUOTED_HOST_AND_PORT", "STRING", "BINARY", + "FLOAT", "REAL", "EQUAL", "GREATER", "LESS", + "EXCLAMATION", "PLUS_ASSIGN", "MINUS_ASSIGN", + "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", + "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", + "DOUBLE_BAR", "DOT", "UNDERLINE", "AT", + "SHARP", "DOLLAR", "LR_BRACKET", "RR_BRACKET", + "COMMA", "SEMI", "COLON", "STAR", "DIVIDE", + "MODULE", "PLUS", "MINUS", "BIT_NOT", + "BIT_OR", "BIT_AND", "BIT_XOR", "LETTER", + "IPV6_OCTECT", "IPV4_OCTECT", "DEC_DOT_DEC", + "HEX_DIGIT", "DEC_DIGIT", "FullWidthLetter" ]; + +TSqlLexer.prototype.grammarFileName = "TSqlLexer.g4"; + + +exports.TSqlLexer = TSqlLexer; + diff --git a/src/parser/TSqlLexer.tokens b/src/parser/TSqlLexer.tokens new file mode 100644 index 0000000..5d9475f --- /dev/null +++ b/src/parser/TSqlLexer.tokens @@ -0,0 +1,1657 @@ +ABSENT=1 +ADD=2 +AES=3 +ALL=4 +ALLOW_CONNECTIONS=5 +ALLOW_MULTIPLE_EVENT_LOSS=6 +ALLOW_SINGLE_EVENT_LOSS=7 +ALTER=8 +AND=9 +ANONYMOUS=10 +ANY=11 +APPEND=12 +APPLICATION=13 +AS=14 +ASC=15 +ASYMMETRIC=16 +ASYNCHRONOUS_COMMIT=17 +AUTHORIZATION=18 +AUTHENTICATION=19 +AUTOMATED_BACKUP_PREFERENCE=20 +AUTOMATIC=21 +AVAILABILITY_MODE=22 +BACKSLASH=23 +BACKUP=24 +BEFORE=25 +BEGIN=26 +BETWEEN=27 +BLOCK=28 +BLOCKSIZE=29 +BLOCKING_HIERARCHY=30 +BREAK=31 +BROWSE=32 +BUFFER=33 +BUFFERCOUNT=34 +BULK=35 +BY=36 +CACHE=37 +CALLED=38 +CASCADE=39 +CASE=40 +CERTIFICATE=41 +CHANGETABLE=42 +CHANGES=43 +CHECK=44 +CHECKPOINT=45 +CHECK_POLICY=46 +CHECK_EXPIRATION=47 +CLASSIFIER_FUNCTION=48 +CLOSE=49 +CLUSTER=50 +CLUSTERED=51 +COALESCE=52 +COLLATE=53 +COLUMN=54 +COMPRESSION=55 +COMMIT=56 +COMPUTE=57 +CONFIGURATION=58 +CONSTRAINT=59 +CONTAINMENT=60 +CONTAINS=61 +CONTAINSTABLE=62 +CONTEXT=63 +CONTINUE=64 +CONTINUE_AFTER_ERROR=65 +CONTRACT=66 +CONTRACT_NAME=67 +CONVERSATION=68 +CONVERT=69 +COPY_ONLY=70 +CREATE=71 +CROSS=72 +CURRENT=73 +CURRENT_DATE=74 +CURRENT_TIME=75 +CURRENT_TIMESTAMP=76 +CURRENT_USER=77 +CURSOR=78 +CYCLE=79 +DATA_COMPRESSION=80 +DATA_SOURCE=81 +DATABASE=82 +DATABASE_MIRRORING=83 +DBCC=84 +DEALLOCATE=85 +DECLARE=86 +DEFAULT=87 +DEFAULT_DATABASE=88 +DEFAULT_SCHEMA=89 +DELETE=90 +DENY=91 +DESC=92 +DIAGNOSTICS=93 +DIFFERENTIAL=94 +DISK=95 +DISTINCT=96 +DISTRIBUTED=97 +DOUBLE=98 +DOUBLE_BACK_SLASH=99 +DOUBLE_FORWARD_SLASH=100 +DROP=101 +DTC_SUPPORT=102 +DUMP=103 +ELSE=104 +ENABLED=105 +END=106 +ENDPOINT=107 +ERRLVL=108 +ESCAPE=109 +ERROR=110 +EVENT=111 +EVENTDATA=112 +EVENT_RETENTION_MODE=113 +EXCEPT=114 +EXECUTABLE_FILE=115 +EXECUTE=116 +EXISTS=117 +EXPIREDATE=118 +EXIT=119 +EXTENSION=120 +EXTERNAL=121 +EXTERNAL_ACCESS=122 +FAILOVER=123 +FAILURECONDITIONLEVEL=124 +FAN_IN=125 +FETCH=126 +FILE=127 +FILENAME=128 +FILLFACTOR=129 +FILE_SNAPSHOT=130 +FOR=131 +FORCESEEK=132 +FORCE_SERVICE_ALLOW_DATA_LOSS=133 +FOREIGN=134 +FREETEXT=135 +FREETEXTTABLE=136 +FROM=137 +FULL=138 +FUNCTION=139 +GET=140 +GOTO=141 +GOVERNOR=142 +GRANT=143 +GROUP=144 +HAVING=145 +HASHED=146 +HEALTHCHECKTIMEOUT=147 +IDENTITY=148 +IDENTITYCOL=149 +IDENTITY_INSERT=150 +IF=151 +IIF=152 +IN=153 +INCLUDE=154 +INCREMENT=155 +INDEX=156 +INFINITE=157 +INIT=158 +INNER=159 +INSERT=160 +INSTEAD=161 +INTERSECT=162 +INTO=163 +IPV4_ADDR=164 +IPV6_ADDR=165 +IS=166 +ISNULL=167 +JOIN=168 +KERBEROS=169 +KEY=170 +KEY_PATH=171 +KEY_STORE_PROVIDER_NAME=172 +KILL=173 +LANGUAGE=174 +LEFT=175 +LIBRARY=176 +LIFETIME=177 +LIKE=178 +LINENO=179 +LINUX=180 +LISTENER_IP=181 +LISTENER_PORT=182 +LOAD=183 +LOCAL_SERVICE_NAME=184 +LOG=185 +MATCHED=186 +MASTER=187 +MAX_MEMORY=188 +MAXTRANSFER=189 +MAXVALUE=190 +MAX_DISPATCH_LATENCY=191 +MAX_EVENT_SIZE=192 +MAX_SIZE=193 +MAX_OUTSTANDING_IO_PER_VOLUME=194 +MEDIADESCRIPTION=195 +MEDIANAME=196 +MEMBER=197 +MEMORY_PARTITION_MODE=198 +MERGE=199 +MESSAGE_FORWARDING=200 +MESSAGE_FORWARD_SIZE=201 +MINVALUE=202 +MIRROR=203 +MUST_CHANGE=204 +NATIONAL=205 +NEGOTIATE=206 +NOCHECK=207 +NOFORMAT=208 +NOINIT=209 +NONCLUSTERED=210 +NONE=211 +NOREWIND=212 +NOSKIP=213 +NOUNLOAD=214 +NO_CHECKSUM=215 +NO_COMPRESSION=216 +NO_EVENT_LOSS=217 +NOT=218 +NOTIFICATION=219 +NTLM=220 +NULL=221 +NULLIF=222 +OF=223 +OFF=224 +OFFSETS=225 +OLD_PASSWORD=226 +ON=227 +ON_FAILURE=228 +OPEN=229 +OPENDATASOURCE=230 +OPENQUERY=231 +OPENROWSET=232 +OPENXML=233 +OPTION=234 +OR=235 +ORDER=236 +OUTER=237 +OVER=238 +PAGE=239 +PARAM_NODE=240 +PARTIAL=241 +PASSWORD=242 +PERCENT=243 +PERMISSION_SET=244 +PER_CPU=245 +PER_DB=246 +PER_NODE=247 +PIVOT=248 +PLAN=249 +PLATFORM=250 +POLICY=251 +PRECISION=252 +PREDICATE=253 +PRIMARY=254 +PRINT=255 +PROC=256 +PROCEDURE=257 +PROCESS=258 +PUBLIC=259 +PYTHON=260 +R=261 +RAISERROR=262 +RAW=263 +READ=264 +READTEXT=265 +READ_WRITE_FILEGROUPS=266 +RECONFIGURE=267 +REFERENCES=268 +REGENERATE=269 +RELATED_CONVERSATION=270 +RELATED_CONVERSATION_GROUP=271 +REPLICATION=272 +REQUIRED=273 +RESET=274 +RESTART=275 +RESTORE=276 +RESTRICT=277 +RESUME=278 +RETAINDAYS=279 +RETURN=280 +RETURNS=281 +REVERT=282 +REVOKE=283 +REWIND=284 +RIGHT=285 +ROLLBACK=286 +ROLE=287 +ROWCOUNT=288 +ROWGUIDCOL=289 +RSA_512=290 +RSA_1024=291 +RSA_2048=292 +RSA_3072=293 +RSA_4096=294 +SAFETY=295 +RULE=296 +SAFE=297 +SAVE=298 +SCHEDULER=299 +SCHEMA=300 +SCHEME=301 +SECURITYAUDIT=302 +SELECT=303 +SEMANTICKEYPHRASETABLE=304 +SEMANTICSIMILARITYDETAILSTABLE=305 +SEMANTICSIMILARITYTABLE=306 +SERVER=307 +SERVICE=308 +SERVICE_BROKER=309 +SERVICE_NAME=310 +SESSION=311 +SESSION_USER=312 +SET=313 +SETUSER=314 +SHUTDOWN=315 +SID=316 +SKIP_KEYWORD=317 +SOFTNUMA=318 +SOME=319 +SOURCE=320 +SPECIFICATION=321 +SPLIT=322 +SQLDUMPERFLAGS=323 +SQLDUMPERPATH=324 +SQLDUMPERTIMEOUT=325 +STATISTICS=326 +STATE=327 +STATS=328 +START=329 +STARTED=330 +STARTUP_STATE=331 +STOP=332 +STOPPED=333 +STOP_ON_ERROR=334 +SUPPORTED=335 +SYSTEM_USER=336 +TABLE=337 +TABLESAMPLE=338 +TAPE=339 +TARGET=340 +TCP=341 +TEXTSIZE=342 +THEN=343 +TO=344 +TOP=345 +TRACK_CAUSALITY=346 +TRAN=347 +TRANSACTION=348 +TRANSFER=349 +TRIGGER=350 +TRUNCATE=351 +TSEQUAL=352 +UNCHECKED=353 +UNION=354 +UNIQUE=355 +UNLOCK=356 +UNPIVOT=357 +UNSAFE=358 +UPDATE=359 +UPDATETEXT=360 +URL=361 +USE=362 +USED=363 +USER=364 +VALUES=365 +VARYING=366 +VERBOSELOGGING=367 +VIEW=368 +VISIBILITY=369 +WAITFOR=370 +WHEN=371 +WHERE=372 +WHILE=373 +WINDOWS=374 +WITH=375 +WITHIN=376 +WITHOUT=377 +WITNESS=378 +WRITETEXT=379 +ABSOLUTE=380 +ACCENT_SENSITIVITY=381 +ACTION=382 +ACTIVATION=383 +ACTIVE=384 +ADDRESS=385 +AES_128=386 +AES_192=387 +AES_256=388 +AFFINITY=389 +AFTER=390 +AGGREGATE=391 +ALGORITHM=392 +ALLOW_ENCRYPTED_VALUE_MODIFICATIONS=393 +ALLOW_SNAPSHOT_ISOLATION=394 +ALLOWED=395 +ANSI_NULL_DEFAULT=396 +ANSI_NULLS=397 +ANSI_PADDING=398 +ANSI_WARNINGS=399 +APPLICATION_LOG=400 +APPLY=401 +ARITHABORT=402 +ASSEMBLY=403 +AUDIT=404 +AUDIT_GUID=405 +AUTO=406 +AUTO_CLEANUP=407 +AUTO_CLOSE=408 +AUTO_CREATE_STATISTICS=409 +AUTO_SHRINK=410 +AUTO_UPDATE_STATISTICS=411 +AUTO_UPDATE_STATISTICS_ASYNC=412 +AVAILABILITY=413 +AVG=414 +BACKUP_PRIORITY=415 +BEGIN_DIALOG=416 +BIGINT=417 +BINARY_BASE64=418 +BINARY_CHECKSUM=419 +BINDING=420 +BLOB_STORAGE=421 +BROKER=422 +BROKER_INSTANCE=423 +BULK_LOGGED=424 +CALLER=425 +CAP_CPU_PERCENT=426 +CAST=427 +CATALOG=428 +CATCH=429 +CHANGE_RETENTION=430 +CHANGE_TRACKING=431 +CHECKSUM=432 +CHECKSUM_AGG=433 +CLEANUP=434 +COLLECTION=435 +COLUMN_MASTER_KEY=436 +COMMITTED=437 +COMPATIBILITY_LEVEL=438 +CONCAT=439 +CONCAT_NULL_YIELDS_NULL=440 +CONTENT=441 +CONTROL=442 +COOKIE=443 +COUNT=444 +COUNT_BIG=445 +COUNTER=446 +CPU=447 +CREATE_NEW=448 +CREATION_DISPOSITION=449 +CREDENTIAL=450 +CRYPTOGRAPHIC=451 +CURSOR_CLOSE_ON_COMMIT=452 +CURSOR_DEFAULT=453 +DATA=454 +DATE_CORRELATION_OPTIMIZATION=455 +DATEADD=456 +DATEDIFF=457 +DATENAME=458 +DATEPART=459 +DAYS=460 +DB_CHAINING=461 +DB_FAILOVER=462 +DECRYPTION=463 +DEFAULT_DOUBLE_QUOTE=464 +DEFAULT_FULLTEXT_LANGUAGE=465 +DEFAULT_LANGUAGE=466 +DELAY=467 +DELAYED_DURABILITY=468 +DELETED=469 +DENSE_RANK=470 +DEPENDENTS=471 +DES=472 +DESCRIPTION=473 +DESX=474 +DHCP=475 +DIALOG=476 +DIRECTORY_NAME=477 +DISABLE=478 +DISABLE_BROKER=479 +DISABLED=480 +DISK_DRIVE=481 +DOCUMENT=482 +DYNAMIC=483 +ELEMENTS=484 +EMERGENCY=485 +EMPTY=486 +ENABLE=487 +ENABLE_BROKER=488 +ENCRYPTED_VALUE=489 +ENCRYPTION=490 +ENDPOINT_URL=491 +ERROR_BROKER_CONVERSATIONS=492 +EXCLUSIVE=493 +EXECUTABLE=494 +EXIST=495 +EXPAND=496 +EXPIRY_DATE=497 +EXPLICIT=498 +FAIL_OPERATION=499 +FAILOVER_MODE=500 +FAILURE=501 +FAILURE_CONDITION_LEVEL=502 +FAST=503 +FAST_FORWARD=504 +FILEGROUP=505 +FILEGROWTH=506 +FILEPATH=507 +FILESTREAM=508 +FILTER=509 +FIRST=510 +FIRST_VALUE=511 +FOLLOWING=512 +FORCE=513 +FORCE_FAILOVER_ALLOW_DATA_LOSS=514 +FORCED=515 +FORMAT=516 +FORWARD_ONLY=517 +FULLSCAN=518 +FULLTEXT=519 +GB=520 +GETDATE=521 +GETUTCDATE=522 +GLOBAL=523 +GO=524 +GROUP_MAX_REQUESTS=525 +GROUPING=526 +GROUPING_ID=527 +HADR=528 +HASH=529 +HEALTH_CHECK_TIMEOUT=530 +HIGH=531 +HONOR_BROKER_PRIORITY=532 +HOURS=533 +IDENTITY_VALUE=534 +IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX=535 +IMMEDIATE=536 +IMPERSONATE=537 +IMPORTANCE=538 +INCLUDE_NULL_VALUES=539 +INCREMENTAL=540 +INITIATOR=541 +INPUT=542 +INSENSITIVE=543 +INSERTED=544 +INT=545 +IP=546 +ISOLATION=547 +JOB=548 +JSON=549 +KB=550 +KEEP=551 +KEEPFIXED=552 +KEY_SOURCE=553 +KEYS=554 +KEYSET=555 +LAG=556 +LAST=557 +LAST_VALUE=558 +LEAD=559 +LEVEL=560 +LIST=561 +LISTENER=562 +LISTENER_URL=563 +LOB_COMPACTION=564 +LOCAL=565 +LOCATION=566 +LOCK=567 +LOCK_ESCALATION=568 +LOGIN=569 +LOOP=570 +LOW=571 +MANUAL=572 +MARK=573 +MATERIALIZED=574 +MAX=575 +MAX_CPU_PERCENT=576 +MAX_DOP=577 +MAX_FILES=578 +MAX_IOPS_PER_VOLUME=579 +MAX_MEMORY_PERCENT=580 +MAX_PROCESSES=581 +MAX_QUEUE_READERS=582 +MAX_ROLLOVER_FILES=583 +MAXDOP=584 +MAXRECURSION=585 +MAXSIZE=586 +MB=587 +MEDIUM=588 +MEMORY_OPTIMIZED_DATA=589 +MESSAGE=590 +MIN=591 +MIN_ACTIVE_ROWVERSION=592 +MIN_CPU_PERCENT=593 +MIN_IOPS_PER_VOLUME=594 +MIN_MEMORY_PERCENT=595 +MINUTES=596 +MIRROR_ADDRESS=597 +MIXED_PAGE_ALLOCATION=598 +MODE=599 +MODIFY=600 +MOVE=601 +MULTI_USER=602 +NAME=603 +NESTED_TRIGGERS=604 +NEW_ACCOUNT=605 +NEW_BROKER=606 +NEW_PASSWORD=607 +NEXT=608 +NO=609 +NO_TRUNCATE=610 +NO_WAIT=611 +NOCOUNT=612 +NODES=613 +NOEXPAND=614 +NON_TRANSACTED_ACCESS=615 +NORECOMPUTE=616 +NORECOVERY=617 +NOWAIT=618 +NTILE=619 +NUMANODE=620 +NUMBER=621 +NUMERIC_ROUNDABORT=622 +OBJECT=623 +OFFLINE=624 +OFFSET=625 +OLD_ACCOUNT=626 +ONLINE=627 +ONLY=628 +OPEN_EXISTING=629 +OPTIMISTIC=630 +OPTIMIZE=631 +OUT=632 +OUTPUT=633 +OVERRIDE=634 +OWNER=635 +PAGE_VERIFY=636 +PARAMETERIZATION=637 +PARTITION=638 +PARTITIONS=639 +PARTNER=640 +PATH=641 +POISON_MESSAGE_HANDLING=642 +POOL=643 +PORT=644 +PRECEDING=645 +PRIMARY_ROLE=646 +PRIOR=647 +PRIORITY=648 +PRIORITY_LEVEL=649 +PRIVATE=650 +PRIVATE_KEY=651 +PRIVILEGES=652 +PROCEDURE_NAME=653 +PROPERTY=654 +PROVIDER=655 +PROVIDER_KEY_NAME=656 +QUERY=657 +QUEUE=658 +QUEUE_DELAY=659 +QUOTED_IDENTIFIER=660 +RANGE=661 +RANK=662 +RC2=663 +RC4=664 +RC4_128=665 +READ_COMMITTED_SNAPSHOT=666 +READ_ONLY=667 +READ_ONLY_ROUTING_LIST=668 +READ_WRITE=669 +READONLY=670 +REBUILD=671 +RECEIVE=672 +RECOMPILE=673 +RECOVERY=674 +RECURSIVE_TRIGGERS=675 +RELATIVE=676 +REMOTE=677 +REMOTE_SERVICE_NAME=678 +REMOVE=679 +REORGANIZE=680 +REPEATABLE=681 +REPLICA=682 +REQUEST_MAX_CPU_TIME_SEC=683 +REQUEST_MAX_MEMORY_GRANT_PERCENT=684 +REQUEST_MEMORY_GRANT_TIMEOUT_SEC=685 +REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT=686 +RESERVE_DISK_SPACE=687 +RESOURCE=688 +RESOURCE_MANAGER_LOCATION=689 +RESTRICTED_USER=690 +RETENTION=691 +ROBUST=692 +ROOT=693 +ROUTE=694 +ROW=695 +ROW_NUMBER=696 +ROWGUID=697 +ROWS=698 +SAMPLE=699 +SCHEMABINDING=700 +SCOPED=701 +SCROLL=702 +SCROLL_LOCKS=703 +SEARCH=704 +SECONDARY=705 +SECONDARY_ONLY=706 +SECONDARY_ROLE=707 +SECONDS=708 +SECRET=709 +SECURITY=710 +SECURITY_LOG=711 +SEEDING_MODE=712 +SELF=713 +SEMI_SENSITIVE=714 +SEND=715 +SENT=716 +SEQUENCE=717 +SERIALIZABLE=718 +SESSION_TIMEOUT=719 +SETERROR=720 +SHARE=721 +SHOWPLAN=722 +SIGNATURE=723 +SIMPLE=724 +SINGLE_USER=725 +SIZE=726 +SMALLINT=727 +SNAPSHOT=728 +SPATIAL_WINDOW_MAX_CELLS=729 +STANDBY=730 +START_DATE=731 +STATIC=732 +STATS_STREAM=733 +STATUS=734 +STATUSONLY=735 +STDEV=736 +STDEVP=737 +STOPLIST=738 +STRING_AGG=739 +STUFF=740 +SUBJECT=741 +SUBSCRIPTION=742 +SUM=743 +SUSPEND=744 +SYMMETRIC=745 +SYNCHRONOUS_COMMIT=746 +SYNONYM=747 +SYSTEM=748 +TAKE=749 +TARGET_RECOVERY_TIME=750 +TB=751 +TEXTIMAGE_ON=752 +THROW=753 +TIES=754 +TIME=755 +TIMEOUT=756 +TIMER=757 +TINYINT=758 +TORN_PAGE_DETECTION=759 +TRANSFORM_NOISE_WORDS=760 +TRIPLE_DES=761 +TRIPLE_DES_3KEY=762 +TRUSTWORTHY=763 +TRY=764 +TSQL=765 +TWO_DIGIT_YEAR_CUTOFF=766 +TYPE=767 +TYPE_WARNING=768 +UNBOUNDED=769 +UNCOMMITTED=770 +UNKNOWN=771 +UNLIMITED=772 +UOW=773 +USING=774 +VALID_XML=775 +VALIDATION=776 +VALUE=777 +VAR=778 +VARP=779 +VIEW_METADATA=780 +VIEWS=781 +WAIT=782 +WELL_FORMED_XML=783 +WITHOUT_ARRAY_WRAPPER=784 +WORK=785 +WORKLOAD=786 +XML=787 +XMLDATA=788 +XMLNAMESPACES=789 +XMLSCHEMA=790 +XSINIL=791 +DOLLAR_ACTION=792 +SPACE=793 +COMMENT=794 +LINE_COMMENT=795 +DOUBLE_QUOTE_ID=796 +SINGLE_QUOTE=797 +SQUARE_BRACKET_ID=798 +LOCAL_ID=799 +DECIMAL=800 +ID=801 +QUOTED_URL=802 +QUOTED_HOST_AND_PORT=803 +STRING=804 +BINARY=805 +FLOAT=806 +REAL=807 +EQUAL=808 +GREATER=809 +LESS=810 +EXCLAMATION=811 +PLUS_ASSIGN=812 +MINUS_ASSIGN=813 +MULT_ASSIGN=814 +DIV_ASSIGN=815 +MOD_ASSIGN=816 +AND_ASSIGN=817 +XOR_ASSIGN=818 +OR_ASSIGN=819 +DOUBLE_BAR=820 +DOT=821 +UNDERLINE=822 +AT=823 +SHARP=824 +DOLLAR=825 +LR_BRACKET=826 +RR_BRACKET=827 +COMMA=828 +SEMI=829 +COLON=830 +STAR=831 +DIVIDE=832 +MODULE=833 +PLUS=834 +MINUS=835 +BIT_NOT=836 +BIT_OR=837 +BIT_AND=838 +BIT_XOR=839 +IPV4_OCTECT=840 +'ABSENT'=1 +'ADD'=2 +'AES'=3 +'ALL'=4 +'ALLOW_CONNECTIONS'=5 +'ALLOW_MULTIPLE_EVENT_LOSS'=6 +'ALLOW_SINGLE_EVENT_LOSS'=7 +'ALTER'=8 +'AND'=9 +'ANONYMOUS'=10 +'ANY'=11 +'APPEND'=12 +'APPLICATION'=13 +'AS'=14 +'ASC'=15 +'ASYMMETRIC'=16 +'ASYNCHRONOUS_COMMIT'=17 +'AUTHORIZATION'=18 +'AUTHENTICATION'=19 +'AUTOMATED_BACKUP_PREFERENCE'=20 +'AUTOMATIC'=21 +'AVAILABILITY_MODE'=22 +'\\'=23 +'BACKUP'=24 +'BEFORE'=25 +'BEGIN'=26 +'BETWEEN'=27 +'BLOCK'=28 +'BLOCKSIZE'=29 +'BLOCKING_HIERARCHY'=30 +'BREAK'=31 +'BROWSE'=32 +'BUFFER'=33 +'BUFFERCOUNT'=34 +'BULK'=35 +'BY'=36 +'CACHE'=37 +'CALLED'=38 +'CASCADE'=39 +'CASE'=40 +'CERTIFICATE'=41 +'CHANGETABLE'=42 +'CHANGES'=43 +'CHECK'=44 +'CHECKPOINT'=45 +'CHECK_POLICY'=46 +'CHECK_EXPIRATION'=47 +'CLASSIFIER_FUNCTION'=48 +'CLOSE'=49 +'CLUSTER'=50 +'CLUSTERED'=51 +'COALESCE'=52 +'COLLATE'=53 +'COLUMN'=54 +'COMPRESSION'=55 +'COMMIT'=56 +'COMPUTE'=57 +'CONFIGURATION'=58 +'CONSTRAINT'=59 +'CONTAINMENT'=60 +'CONTAINS'=61 +'CONTAINSTABLE'=62 +'CONTEXT'=63 +'CONTINUE'=64 +'CONTINUE_AFTER_ERROR'=65 +'CONTRACT'=66 +'CONTRACT_NAME'=67 +'CONVERSATION'=68 +'COPY_ONLY'=70 +'CREATE'=71 +'CROSS'=72 +'CURRENT'=73 +'CURRENT_DATE'=74 +'CURRENT_TIME'=75 +'CURRENT_TIMESTAMP'=76 +'CURRENT_USER'=77 +'CURSOR'=78 +'CYCLE'=79 +'DATA_COMPRESSION'=80 +'DATA_SOURCE'=81 +'DATABASE'=82 +'DATABASE_MIRRORING'=83 +'DBCC'=84 +'DEALLOCATE'=85 +'DECLARE'=86 +'DEFAULT'=87 +'DEFAULT_DATABASE'=88 +'DEFAULT_SCHEMA'=89 +'DELETE'=90 +'DENY'=91 +'DESC'=92 +'DIAGNOSTICS'=93 +'DIFFERENTIAL'=94 +'DISK'=95 +'DISTINCT'=96 +'DISTRIBUTED'=97 +'DOUBLE'=98 +'\\\\'=99 +'//'=100 +'DROP'=101 +'DTC_SUPPORT'=102 +'DUMP'=103 +'ELSE'=104 +'ENABLED'=105 +'END'=106 +'ENDPOINT'=107 +'ERRLVL'=108 +'ESCAPE'=109 +'ERROR'=110 +'EVENT'=111 +'EVENT_RETENTION_MODE'=113 +'EXCEPT'=114 +'EXECUTABLE_FILE'=115 +'EXISTS'=117 +'EXPIREDATE'=118 +'EXIT'=119 +'EXTENSION'=120 +'EXTERNAL'=121 +'EXTERNAL_ACCESS'=122 +'FAILOVER'=123 +'FAILURECONDITIONLEVEL'=124 +'FAN_IN'=125 +'FETCH'=126 +'FILE'=127 +'FILENAME'=128 +'FILLFACTOR'=129 +'FILE_SNAPSHOT'=130 +'FOR'=131 +'FORCESEEK'=132 +'FORCE_SERVICE_ALLOW_DATA_LOSS'=133 +'FOREIGN'=134 +'FREETEXT'=135 +'FREETEXTTABLE'=136 +'FROM'=137 +'FULL'=138 +'FUNCTION'=139 +'GET'=140 +'GOTO'=141 +'GOVERNOR'=142 +'GRANT'=143 +'GROUP'=144 +'HAVING'=145 +'HASHED'=146 +'HEALTHCHECKTIMEOUT'=147 +'IDENTITY'=148 +'IDENTITYCOL'=149 +'IDENTITY_INSERT'=150 +'IF'=151 +'IIF'=152 +'IN'=153 +'INCLUDE'=154 +'INCREMENT'=155 +'INDEX'=156 +'INFINITE'=157 +'INIT'=158 +'INNER'=159 +'INSERT'=160 +'INSTEAD'=161 +'INTERSECT'=162 +'INTO'=163 +'IS'=166 +'ISNULL'=167 +'JOIN'=168 +'KERBEROS'=169 +'KEY'=170 +'KEY_PATH'=171 +'KEY_STORE_PROVIDER_NAME'=172 +'KILL'=173 +'LANGUAGE'=174 +'LEFT'=175 +'LIBRARY'=176 +'LIFETIME'=177 +'LIKE'=178 +'LINENO'=179 +'LINUX'=180 +'LISTENER_IP'=181 +'LISTENER_PORT'=182 +'LOAD'=183 +'LOCAL_SERVICE_NAME'=184 +'LOG'=185 +'MATCHED'=186 +'MASTER'=187 +'MAX_MEMORY'=188 +'MAXTRANSFER'=189 +'MAXVALUE'=190 +'MAX_DISPATCH_LATENCY'=191 +'MAX_EVENT_SIZE'=192 +'MAX_SIZE'=193 +'MAX_OUTSTANDING_IO_PER_VOLUME'=194 +'MEDIADESCRIPTION'=195 +'MEDIANAME'=196 +'MEMBER'=197 +'MEMORY_PARTITION_MODE'=198 +'MERGE'=199 +'MESSAGE_FORWARDING'=200 +'MESSAGE_FORWARD_SIZE'=201 +'MINVALUE'=202 +'MIRROR'=203 +'MUST_CHANGE'=204 +'NATIONAL'=205 +'NEGOTIATE'=206 +'NOCHECK'=207 +'NOFORMAT'=208 +'NOINIT'=209 +'NONCLUSTERED'=210 +'NONE'=211 +'NOREWIND'=212 +'NOSKIP'=213 +'NOUNLOAD'=214 +'NO_CHECKSUM'=215 +'NO_COMPRESSION'=216 +'NO_EVENT_LOSS'=217 +'NOT'=218 +'NOTIFICATION'=219 +'NTLM'=220 +'NULL'=221 +'NULLIF'=222 +'OF'=223 +'OFF'=224 +'OFFSETS'=225 +'OLD_PASSWORD'=226 +'ON'=227 +'ON_FAILURE'=228 +'OPEN'=229 +'OPENDATASOURCE'=230 +'OPENQUERY'=231 +'OPENROWSET'=232 +'OPENXML'=233 +'OPTION'=234 +'OR'=235 +'ORDER'=236 +'OUTER'=237 +'OVER'=238 +'PAGE'=239 +'PARAM_NODE'=240 +'PARTIAL'=241 +'PASSWORD'=242 +'PERCENT'=243 +'PERMISSION_SET'=244 +'PER_CPU'=245 +'PER_DB'=246 +'PER_NODE'=247 +'PIVOT'=248 +'PLAN'=249 +'PLATFORM'=250 +'POLICY'=251 +'PRECISION'=252 +'PREDICATE'=253 +'PRIMARY'=254 +'PRINT'=255 +'PROC'=256 +'PROCEDURE'=257 +'PROCESS'=258 +'PUBLIC'=259 +'PYTHON'=260 +'R'=261 +'RAISERROR'=262 +'RAW'=263 +'READ'=264 +'READTEXT'=265 +'READ_WRITE_FILEGROUPS'=266 +'RECONFIGURE'=267 +'REFERENCES'=268 +'REGENERATE'=269 +'RELATED_CONVERSATION'=270 +'RELATED_CONVERSATION_GROUP'=271 +'REPLICATION'=272 +'REQUIRED'=273 +'RESET'=274 +'RESTART'=275 +'RESTORE'=276 +'RESTRICT'=277 +'RESUME'=278 +'RETAINDAYS'=279 +'RETURN'=280 +'RETURNS'=281 +'REVERT'=282 +'REVOKE'=283 +'REWIND'=284 +'RIGHT'=285 +'ROLLBACK'=286 +'ROLE'=287 +'ROWCOUNT'=288 +'ROWGUIDCOL'=289 +'RSA_512'=290 +'RSA_1024'=291 +'RSA_2048'=292 +'RSA_3072'=293 +'RSA_4096'=294 +'SAFETY'=295 +'RULE'=296 +'SAFE'=297 +'SAVE'=298 +'SCHEDULER'=299 +'SCHEMA'=300 +'SCHEME'=301 +'SECURITYAUDIT'=302 +'SELECT'=303 +'SEMANTICKEYPHRASETABLE'=304 +'SEMANTICSIMILARITYDETAILSTABLE'=305 +'SEMANTICSIMILARITYTABLE'=306 +'SERVER'=307 +'SERVICE'=308 +'SERVICE_BROKER'=309 +'SERVICE_NAME'=310 +'SESSION'=311 +'SESSION_USER'=312 +'SET'=313 +'SETUSER'=314 +'SHUTDOWN'=315 +'SID'=316 +'SKIP'=317 +'SOFTNUMA'=318 +'SOME'=319 +'SOURCE'=320 +'SPECIFICATION'=321 +'SPLIT'=322 +'SQLDUMPERFLAGS'=323 +'SQLDUMPERPATH'=324 +'SQLDUMPERTIMEOUTS'=325 +'STATISTICS'=326 +'STATE'=327 +'STATS'=328 +'START'=329 +'STARTED'=330 +'STARTUP_STATE'=331 +'STOP'=332 +'STOPPED'=333 +'STOP_ON_ERROR'=334 +'SUPPORTED'=335 +'SYSTEM_USER'=336 +'TABLE'=337 +'TABLESAMPLE'=338 +'TAPE'=339 +'TARGET'=340 +'TCP'=341 +'TEXTSIZE'=342 +'THEN'=343 +'TO'=344 +'TOP'=345 +'TRACK_CAUSALITY'=346 +'TRAN'=347 +'TRANSACTION'=348 +'TRANSFER'=349 +'TRIGGER'=350 +'TRUNCATE'=351 +'TSEQUAL'=352 +'UNCHECKED'=353 +'UNION'=354 +'UNIQUE'=355 +'UNLOCK'=356 +'UNPIVOT'=357 +'UNSAFE'=358 +'UPDATE'=359 +'UPDATETEXT'=360 +'URL'=361 +'USE'=362 +'USED'=363 +'USER'=364 +'VALUES'=365 +'VARYING'=366 +'VERBOSELOGGING'=367 +'VIEW'=368 +'VISIBILITY'=369 +'WAITFOR'=370 +'WHEN'=371 +'WHERE'=372 +'WHILE'=373 +'WINDOWS'=374 +'WITH'=375 +'WITHIN'=376 +'WITHOUT'=377 +'WITNESS'=378 +'WRITETEXT'=379 +'ABSOLUTE'=380 +'ACCENT_SENSITIVITY'=381 +'ACTION'=382 +'ACTIVATION'=383 +'ACTIVE'=384 +'ADDRESS'=385 +'AES_128'=386 +'AES_192'=387 +'AES_256'=388 +'AFFINITY'=389 +'AFTER'=390 +'AGGREGATE'=391 +'ALGORITHM'=392 +'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'=393 +'ALLOW_SNAPSHOT_ISOLATION'=394 +'ALLOWED'=395 +'ANSI_NULL_DEFAULT'=396 +'ANSI_NULLS'=397 +'ANSI_PADDING'=398 +'ANSI_WARNINGS'=399 +'APPLICATION_LOG'=400 +'APPLY'=401 +'ARITHABORT'=402 +'ASSEMBLY'=403 +'AUDIT'=404 +'AUDIT_GUID'=405 +'AUTO'=406 +'AUTO_CLEANUP'=407 +'AUTO_CLOSE'=408 +'AUTO_CREATE_STATISTICS'=409 +'AUTO_SHRINK'=410 +'AUTO_UPDATE_STATISTICS'=411 +'AUTO_UPDATE_STATISTICS_ASYNC'=412 +'AVAILABILITY'=413 +'AVG'=414 +'BACKUP_PRIORITY'=415 +'BEGIN_DIALOG'=416 +'BIGINT'=417 +'BINARY BASE64'=418 +'BINARY_CHECKSUM'=419 +'BINDING'=420 +'BLOB_STORAGE'=421 +'BROKER'=422 +'BROKER_INSTANCE'=423 +'BULK_LOGGED'=424 +'CALLER'=425 +'CAP_CPU_PERCENT'=426 +'CATALOG'=428 +'CATCH'=429 +'CHANGE_RETENTION'=430 +'CHANGE_TRACKING'=431 +'CHECKSUM'=432 +'CHECKSUM_AGG'=433 +'CLEANUP'=434 +'COLLECTION'=435 +'COLUMN_MASTER_KEY'=436 +'COMMITTED'=437 +'COMPATIBILITY_LEVEL'=438 +'CONCAT'=439 +'CONCAT_NULL_YIELDS_NULL'=440 +'CONTENT'=441 +'CONTROL'=442 +'COOKIE'=443 +'COUNT'=444 +'COUNT_BIG'=445 +'COUNTER'=446 +'CPU'=447 +'CREATE_NEW'=448 +'CREATION_DISPOSITION'=449 +'CREDENTIAL'=450 +'CRYPTOGRAPHIC'=451 +'CURSOR_CLOSE_ON_COMMIT'=452 +'CURSOR_DEFAULT'=453 +'DATA'=454 +'DATE_CORRELATION_OPTIMIZATION'=455 +'DATEADD'=456 +'DATEDIFF'=457 +'DATENAME'=458 +'DATEPART'=459 +'DAYS'=460 +'DB_CHAINING'=461 +'DB_FAILOVER'=462 +'DECRYPTION'=463 +'DEFAULT_FULLTEXT_LANGUAGE'=465 +'DEFAULT_LANGUAGE'=466 +'DELAY'=467 +'DELAYED_DURABILITY'=468 +'DELETED'=469 +'DENSE_RANK'=470 +'DEPENDENTS'=471 +'DES'=472 +'DESCRIPTION'=473 +'DESX'=474 +'DHCP'=475 +'DIALOG'=476 +'DIRECTORY_NAME'=477 +'DISABLE'=478 +'DISABLE_BROKER'=479 +'DISABLED'=480 +'DOCUMENT'=482 +'DYNAMIC'=483 +'ELEMENTS'=484 +'EMERGENCY'=485 +'EMPTY'=486 +'ENABLE'=487 +'ENABLE_BROKER'=488 +'ENCRYPTED_VALUE'=489 +'ENCRYPTION'=490 +'ENDPOINT_URL'=491 +'ERROR_BROKER_CONVERSATIONS'=492 +'EXCLUSIVE'=493 +'EXECUTABLE'=494 +'EXIST'=495 +'EXPAND'=496 +'EXPIRY_DATE'=497 +'EXPLICIT'=498 +'FAIL_OPERATION'=499 +'FAILOVER_MODE'=500 +'FAILURE'=501 +'FAILURE_CONDITION_LEVEL'=502 +'FAST'=503 +'FAST_FORWARD'=504 +'FILEGROUP'=505 +'FILEGROWTH'=506 +'FILEPATH'=507 +'FILESTREAM'=508 +'FILTER'=509 +'FIRST'=510 +'FIRST_VALUE'=511 +'FOLLOWING'=512 +'FORCE'=513 +'FORCE_FAILOVER_ALLOW_DATA_LOSS'=514 +'FORCED'=515 +'FORMAT'=516 +'FORWARD_ONLY'=517 +'FULLSCAN'=518 +'FULLTEXT'=519 +'GB'=520 +'GETDATE'=521 +'GETUTCDATE'=522 +'GLOBAL'=523 +'GO'=524 +'GROUP_MAX_REQUESTS'=525 +'GROUPING'=526 +'GROUPING_ID'=527 +'HADR'=528 +'HASH'=529 +'HEALTH_CHECK_TIMEOUT'=530 +'HIGH'=531 +'HONOR_BROKER_PRIORITY'=532 +'HOURS'=533 +'IDENTITY_VALUE'=534 +'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'=535 +'IMMEDIATE'=536 +'IMPERSONATE'=537 +'IMPORTANCE'=538 +'INCLUDE_NULL_VALUES'=539 +'INCREMENTAL'=540 +'INITIATOR'=541 +'INPUT'=542 +'INSENSITIVE'=543 +'INSERTED'=544 +'INT'=545 +'IP'=546 +'ISOLATION'=547 +'JOB'=548 +'JSON'=549 +'KB'=550 +'KEEP'=551 +'KEEPFIXED'=552 +'KEY_SOURCE'=553 +'KEYS'=554 +'KEYSET'=555 +'LAG'=556 +'LAST'=557 +'LAST_VALUE'=558 +'LEAD'=559 +'LEVEL'=560 +'LIST'=561 +'LISTENER'=562 +'LISTENER_URL'=563 +'LOB_COMPACTION'=564 +'LOCAL'=565 +'LOCATION'=566 +'LOCK'=567 +'LOCK_ESCALATION'=568 +'LOGIN'=569 +'LOOP'=570 +'LOW'=571 +'MANUAL'=572 +'MARK'=573 +'MATERIALIZED'=574 +'MAX'=575 +'MAX_CPU_PERCENT'=576 +'MAX_DOP'=577 +'MAX_FILES'=578 +'MAX_IOPS_PER_VOLUME'=579 +'MAX_MEMORY_PERCENT'=580 +'MAX_PROCESSES'=581 +'MAX_QUEUE_READERS'=582 +'MAX_ROLLOVER_FILES'=583 +'MAXDOP'=584 +'MAXRECURSION'=585 +'MAXSIZE'=586 +'MB'=587 +'MEDIUM'=588 +'MEMORY_OPTIMIZED_DATA'=589 +'MESSAGE'=590 +'MIN'=591 +'MIN_ACTIVE_ROWVERSION'=592 +'MIN_CPU_PERCENT'=593 +'MIN_IOPS_PER_VOLUME'=594 +'MIN_MEMORY_PERCENT'=595 +'MINUTES'=596 +'MIRROR_ADDRESS'=597 +'MIXED_PAGE_ALLOCATION'=598 +'MODE'=599 +'MODIFY'=600 +'MOVE'=601 +'MULTI_USER'=602 +'NAME'=603 +'NESTED_TRIGGERS'=604 +'NEW_ACCOUNT'=605 +'NEW_BROKER'=606 +'NEW_PASSWORD'=607 +'NEXT'=608 +'NO'=609 +'NO_TRUNCATE'=610 +'NO_WAIT'=611 +'NOCOUNT'=612 +'NODES'=613 +'NOEXPAND'=614 +'NON_TRANSACTED_ACCESS'=615 +'NORECOMPUTE'=616 +'NORECOVERY'=617 +'NOWAIT'=618 +'NTILE'=619 +'NUMANODE'=620 +'NUMBER'=621 +'NUMERIC_ROUNDABORT'=622 +'OBJECT'=623 +'OFFLINE'=624 +'OFFSET'=625 +'OLD_ACCOUNT'=626 +'ONLINE'=627 +'ONLY'=628 +'OPEN_EXISTING'=629 +'OPTIMISTIC'=630 +'OPTIMIZE'=631 +'OUT'=632 +'OUTPUT'=633 +'OVERRIDE'=634 +'OWNER'=635 +'PAGE_VERIFY'=636 +'PARAMETERIZATION'=637 +'PARTITION'=638 +'PARTITIONS'=639 +'PARTNER'=640 +'PATH'=641 +'POISON_MESSAGE_HANDLING'=642 +'POOL'=643 +'PORT'=644 +'PRECEDING'=645 +'PRIMARY_ROLE'=646 +'PRIOR'=647 +'PRIORITY'=648 +'PRIORITY_LEVEL'=649 +'PRIVATE'=650 +'PRIVATE_KEY'=651 +'PRIVILEGES'=652 +'PROCEDURE_NAME'=653 +'PROPERTY'=654 +'PROVIDER'=655 +'PROVIDER_KEY_NAME'=656 +'QUERY'=657 +'QUEUE'=658 +'QUEUE_DELAY'=659 +'QUOTED_IDENTIFIER'=660 +'RANGE'=661 +'RANK'=662 +'RC2'=663 +'RC4'=664 +'RC4_128'=665 +'READ_COMMITTED_SNAPSHOT'=666 +'READ_ONLY'=667 +'READ_ONLY_ROUTING_LIST'=668 +'READ_WRITE'=669 +'READONLY'=670 +'REBUILD'=671 +'RECEIVE'=672 +'RECOMPILE'=673 +'RECOVERY'=674 +'RECURSIVE_TRIGGERS'=675 +'RELATIVE'=676 +'REMOTE'=677 +'REMOTE_SERVICE_NAME'=678 +'REMOVE'=679 +'REORGANIZE'=680 +'REPEATABLE'=681 +'REPLICA'=682 +'REQUEST_MAX_CPU_TIME_SEC'=683 +'REQUEST_MAX_MEMORY_GRANT_PERCENT'=684 +'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'=685 +'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'=686 +'RESERVE_DISK_SPACE'=687 +'RESOURCE'=688 +'RESOURCE_MANAGER_LOCATION'=689 +'RESTRICTED_USER'=690 +'RETENTION'=691 +'ROBUST'=692 +'ROOT'=693 +'ROUTE'=694 +'ROW'=695 +'ROW_NUMBER'=696 +'ROWGUID'=697 +'ROWS'=698 +'SAMPLE'=699 +'SCHEMABINDING'=700 +'SCOPED'=701 +'SCROLL'=702 +'SCROLL_LOCKS'=703 +'SEARCH'=704 +'SECONDARY'=705 +'SECONDARY_ONLY'=706 +'SECONDARY_ROLE'=707 +'SECONDS'=708 +'SECRET'=709 +'SECURITY'=710 +'SECURITY_LOG'=711 +'SEEDING_MODE'=712 +'SELF'=713 +'SEMI_SENSITIVE'=714 +'SEND'=715 +'SENT'=716 +'SEQUENCE'=717 +'SERIALIZABLE'=718 +'SESSION_TIMEOUT'=719 +'SETERROR'=720 +'SHARE'=721 +'SHOWPLAN'=722 +'SIGNATURE'=723 +'SIMPLE'=724 +'SINGLE_USER'=725 +'SIZE'=726 +'SMALLINT'=727 +'SNAPSHOT'=728 +'SPATIAL_WINDOW_MAX_CELLS'=729 +'STANDBY'=730 +'START_DATE'=731 +'STATIC'=732 +'STATS_STREAM'=733 +'STATUS'=734 +'STATUSONLY'=735 +'STDEV'=736 +'STDEVP'=737 +'STOPLIST'=738 +'STRING_AGG'=739 +'STUFF'=740 +'SUBJECT'=741 +'SUBSCRIPTION'=742 +'SUM'=743 +'SUSPEND'=744 +'SYMMETRIC'=745 +'SYNCHRONOUS_COMMIT'=746 +'SYNONYM'=747 +'SYSTEM'=748 +'TAKE'=749 +'TARGET_RECOVERY_TIME'=750 +'TB'=751 +'TEXTIMAGE_ON'=752 +'THROW'=753 +'TIES'=754 +'TIME'=755 +'TIMEOUT'=756 +'TIMER'=757 +'TINYINT'=758 +'TORN_PAGE_DETECTION'=759 +'TRANSFORM_NOISE_WORDS'=760 +'TRIPLE_DES'=761 +'TRIPLE_DES_3KEY'=762 +'TRUSTWORTHY'=763 +'TRY'=764 +'TSQL'=765 +'TWO_DIGIT_YEAR_CUTOFF'=766 +'TYPE'=767 +'TYPE_WARNING'=768 +'UNBOUNDED'=769 +'UNCOMMITTED'=770 +'UNKNOWN'=771 +'UNLIMITED'=772 +'UOW'=773 +'USING'=774 +'VALID_XML'=775 +'VALIDATION'=776 +'VALUE'=777 +'VAR'=778 +'VARP'=779 +'VIEW_METADATA'=780 +'VIEWS'=781 +'WAIT'=782 +'WELL_FORMED_XML'=783 +'WITHOUT_ARRAY_WRAPPER'=784 +'WORK'=785 +'WORKLOAD'=786 +'XML'=787 +'XMLDATA'=788 +'XMLNAMESPACES'=789 +'XMLSCHEMA'=790 +'XSINIL'=791 +'$ACTION'=792 +'\''=797 +'='=808 +'>'=809 +'<'=810 +'!'=811 +'+='=812 +'-='=813 +'*='=814 +'/='=815 +'%='=816 +'&='=817 +'^='=818 +'|='=819 +'||'=820 +'.'=821 +'_'=822 +'@'=823 +'#'=824 +'$'=825 +'('=826 +')'=827 +','=828 +';'=829 +':'=830 +'*'=831 +'/'=832 +'%'=833 +'+'=834 +'-'=835 +'~'=836 +'|'=837 +'&'=838 +'^'=839 diff --git a/src/parser/TSqlParser.js b/src/parser/TSqlParser.js new file mode 100644 index 0000000..78a5a88 --- /dev/null +++ b/src/parser/TSqlParser.js @@ -0,0 +1,126333 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/tsql/TSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); +var TSqlParserListener = require('./TSqlParserListener').TSqlParserListener; +var TSqlParserVisitor = require('./TSqlParserVisitor').TSqlParserVisitor; + +var grammarFileName = "TSqlParser.g4"; + + +var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", + "\u0003\u034a\u2a08\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", + "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", + "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", + "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", + "\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013\u0004\u0014", + "\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017\t\u0017", + "\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a\u0004\u001b", + "\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e\t\u001e", + "\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#\t#\u0004", + "$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004*\t*\u0004", + "+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u00041\t1\u0004", + "2\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u00048\t8\u0004", + "9\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004?\t?\u0004", + "@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004F\tF\u0004", + "G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004M\tM\u0004", + "N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004T\tT\u0004", + "U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004[\t[\u0004", + "\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004b\tb\u0004", + "c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004i\ti\u0004", + "j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004p\tp\u0004", + "q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004w\tw\u0004", + "x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004~\t~\u0004", + "\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004\u0082\t", + "\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t\u0085\u0004", + "\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004\u0089\t", + "\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t\u008c\u0004", + "\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004\u0090\t", + "\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t\u0093\u0004", + "\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004\u0097\t", + "\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t\u009a\u0004", + "\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004\u009e\t", + "\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t\u00a1\u0004", + "\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004\u00a5\t", + "\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t\u00a8\u0004", + "\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004\u00ac\t", + "\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t\u00af\u0004", + "\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004\u00b3\t", + "\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t\u00b6\u0004", + "\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004\u00ba\t", + "\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t\u00bd\u0004", + "\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004\u00c1\t", + "\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t\u00c4\u0004", + "\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004\u00c8\t", + "\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t\u00cb\u0004", + "\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004\u00cf\t", + "\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t\u00d2\u0004", + "\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004\u00d6\t", + "\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t\u00d9\u0004", + "\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004\u00dd\t", + "\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t\u00e0\u0004", + "\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004\u00e4\t", + "\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t\u00e7\u0004", + "\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004\u00eb\t", + "\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t\u00ee\u0004", + "\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004\u00f2\t", + "\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t\u00f5\u0004", + "\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004\u00f9\t", + "\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t\u00fc\u0004", + "\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004\u0100\t", + "\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t\u0103\u0004", + "\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004\u0107\t", + "\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t\u010a\u0004", + "\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004\u010e\t", + "\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t\u0111\u0004", + "\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004\u0115\t", + "\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t\u0118\u0004", + "\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004\u011c\t", + "\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t\u011f\u0004", + "\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004\u0123\t", + "\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t\u0126\u0004", + "\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004\u012a\t", + "\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t\u012d\u0004", + "\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004\u0131\t", + "\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t\u0134\u0004", + "\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004\u0138\t", + "\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t\u013b\u0004", + "\u013c\t\u013c\u0004\u013d\t\u013d\u0004\u013e\t\u013e\u0004\u013f\t", + "\u013f\u0004\u0140\t\u0140\u0004\u0141\t\u0141\u0004\u0142\t\u0142\u0004", + "\u0143\t\u0143\u0004\u0144\t\u0144\u0004\u0145\t\u0145\u0004\u0146\t", + "\u0146\u0004\u0147\t\u0147\u0004\u0148\t\u0148\u0004\u0149\t\u0149\u0004", + "\u014a\t\u014a\u0004\u014b\t\u014b\u0004\u014c\t\u014c\u0004\u014d\t", + "\u014d\u0004\u014e\t\u014e\u0004\u014f\t\u014f\u0004\u0150\t\u0150\u0004", + "\u0151\t\u0151\u0004\u0152\t\u0152\u0004\u0153\t\u0153\u0004\u0154\t", + "\u0154\u0004\u0155\t\u0155\u0004\u0156\t\u0156\u0004\u0157\t\u0157\u0004", + "\u0158\t\u0158\u0004\u0159\t\u0159\u0004\u015a\t\u015a\u0004\u015b\t", + "\u015b\u0004\u015c\t\u015c\u0004\u015d\t\u015d\u0004\u015e\t\u015e\u0004", + "\u015f\t\u015f\u0004\u0160\t\u0160\u0004\u0161\t\u0161\u0004\u0162\t", + "\u0162\u0004\u0163\t\u0163\u0004\u0164\t\u0164\u0004\u0165\t\u0165\u0004", + "\u0166\t\u0166\u0004\u0167\t\u0167\u0004\u0168\t\u0168\u0004\u0169\t", + "\u0169\u0004\u016a\t\u016a\u0004\u016b\t\u016b\u0004\u016c\t\u016c\u0004", + "\u016d\t\u016d\u0004\u016e\t\u016e\u0004\u016f\t\u016f\u0004\u0170\t", + "\u0170\u0004\u0171\t\u0171\u0004\u0172\t\u0172\u0004\u0173\t\u0173\u0004", + "\u0174\t\u0174\u0004\u0175\t\u0175\u0004\u0176\t\u0176\u0004\u0177\t", + "\u0177\u0004\u0178\t\u0178\u0004\u0179\t\u0179\u0004\u017a\t\u017a\u0004", + "\u017b\t\u017b\u0004\u017c\t\u017c\u0004\u017d\t\u017d\u0004\u017e\t", + "\u017e\u0004\u017f\t\u017f\u0004\u0180\t\u0180\u0004\u0181\t\u0181\u0004", + "\u0182\t\u0182\u0004\u0183\t\u0183\u0004\u0184\t\u0184\u0004\u0185\t", + "\u0185\u0004\u0186\t\u0186\u0004\u0187\t\u0187\u0004\u0188\t\u0188\u0004", + "\u0189\t\u0189\u0004\u018a\t\u018a\u0004\u018b\t\u018b\u0004\u018c\t", + "\u018c\u0004\u018d\t\u018d\u0004\u018e\t\u018e\u0004\u018f\t\u018f\u0004", + "\u0190\t\u0190\u0004\u0191\t\u0191\u0004\u0192\t\u0192\u0004\u0193\t", + "\u0193\u0004\u0194\t\u0194\u0004\u0195\t\u0195\u0004\u0196\t\u0196\u0004", + "\u0197\t\u0197\u0004\u0198\t\u0198\u0004\u0199\t\u0199\u0004\u019a\t", + "\u019a\u0004\u019b\t\u019b\u0004\u019c\t\u019c\u0004\u019d\t\u019d\u0004", + "\u019e\t\u019e\u0004\u019f\t\u019f\u0004\u01a0\t\u01a0\u0004\u01a1\t", + "\u01a1\u0004\u01a2\t\u01a2\u0004\u01a3\t\u01a3\u0004\u01a4\t\u01a4\u0004", + "\u01a5\t\u01a5\u0004\u01a6\t\u01a6\u0004\u01a7\t\u01a7\u0004\u01a8\t", + "\u01a8\u0004\u01a9\t\u01a9\u0004\u01aa\t\u01aa\u0004\u01ab\t\u01ab\u0004", + "\u01ac\t\u01ac\u0004\u01ad\t\u01ad\u0004\u01ae\t\u01ae\u0004\u01af\t", + "\u01af\u0004\u01b0\t\u01b0\u0004\u01b1\t\u01b1\u0004\u01b2\t\u01b2\u0004", + "\u01b3\t\u01b3\u0004\u01b4\t\u01b4\u0004\u01b5\t\u01b5\u0004\u01b6\t", + "\u01b6\u0004\u01b7\t\u01b7\u0004\u01b8\t\u01b8\u0004\u01b9\t\u01b9\u0004", + "\u01ba\t\u01ba\u0004\u01bb\t\u01bb\u0004\u01bc\t\u01bc\u0004\u01bd\t", + "\u01bd\u0004\u01be\t\u01be\u0004\u01bf\t\u01bf\u0004\u01c0\t\u01c0\u0004", + "\u01c1\t\u01c1\u0004\u01c2\t\u01c2\u0004\u01c3\t\u01c3\u0004\u01c4\t", + "\u01c4\u0004\u01c5\t\u01c5\u0004\u01c6\t\u01c6\u0004\u01c7\t\u01c7\u0004", + "\u01c8\t\u01c8\u0004\u01c9\t\u01c9\u0004\u01ca\t\u01ca\u0004\u01cb\t", + "\u01cb\u0004\u01cc\t\u01cc\u0004\u01cd\t\u01cd\u0004\u01ce\t\u01ce\u0004", + "\u01cf\t\u01cf\u0004\u01d0\t\u01d0\u0004\u01d1\t\u01d1\u0004\u01d2\t", + "\u01d2\u0004\u01d3\t\u01d3\u0004\u01d4\t\u01d4\u0004\u01d5\t\u01d5\u0004", + "\u01d6\t\u01d6\u0004\u01d7\t\u01d7\u0004\u01d8\t\u01d8\u0004\u01d9\t", + "\u01d9\u0004\u01da\t\u01da\u0004\u01db\t\u01db\u0004\u01dc\t\u01dc\u0004", + "\u01dd\t\u01dd\u0004\u01de\t\u01de\u0004\u01df\t\u01df\u0004\u01e0\t", + "\u01e0\u0004\u01e1\t\u01e1\u0004\u01e2\t\u01e2\u0004\u01e3\t\u01e3\u0004", + "\u01e4\t\u01e4\u0004\u01e5\t\u01e5\u0004\u01e6\t\u01e6\u0004\u01e7\t", + "\u01e7\u0004\u01e8\t\u01e8\u0003\u0002\u0007\u0002\u03d2\n\u0002\f\u0002", + "\u000e\u0002\u03d5\u000b\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003", + "\u0003\u0007\u0003\u03db\n\u0003\f\u0003\u000e\u0003\u03de\u000b\u0003", + "\u0003\u0003\u0005\u0003\u03e1\n\u0003\u0003\u0003\u0003\u0003\u0007", + "\u0003\u03e5\n\u0003\f\u0003\u000e\u0003\u03e8\u000b\u0003\u0005\u0003", + "\u03ea\n\u0003\u0003\u0004\u0003\u0004\u0005\u0004\u03ee\n\u0004\u0006", + "\u0004\u03f0\n\u0004\r\u0004\u000e\u0004\u03f1\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005", + "\u03fb\n\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0005\u0006\u0402\n\u0006\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0005\u0007\u04a3\n\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0005", + "\b\u04aa\n\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t", + "\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0005\t\u04b8\n\t\u0003\n\u0003", + "\n\u0005\n\u04bc\n\n\u0003\n\u0005\n\u04bf\n\n\u0003\n\u0003\n\u0005", + "\n\u04c3\n\n\u0003\u000b\u0003\u000b\u0005\u000b\u04c7\n\u000b\u0003", + "\f\u0003\f\u0005\f\u04cb\n\f\u0003\r\u0003\r\u0003\r\u0005\r\u04d0\n", + "\r\u0003\r\u0003\r\u0003\r\u0005\r\u04d5\n\r\u0005\r\u04d7\n\r\u0003", + "\u000e\u0003\u000e\u0005\u000e\u04db\n\u000e\u0003\u000e\u0005\u000e", + "\u04de\n\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003", + "\u000f\u0005\u000f\u04e5\n\u000f\u0003\u000f\u0005\u000f\u04e8\n\u000f", + "\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010", + "\u0003\u0010\u0005\u0010\u04f1\n\u0010\u0003\u0010\u0005\u0010\u04f4", + "\n\u0010\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003\u0013", + "\u0003\u0013\u0003\u0014\u0003\u0014\u0003\u0014\u0005\u0014\u04ff\n", + "\u0014\u0003\u0014\u0005\u0014\u0502\n\u0014\u0003\u0014\u0003\u0014", + "\u0003\u0014\u0005\u0014\u0507\n\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0005\u0014\u050c\n\u0014\u0003\u0014\u0005\u0014\u050f\n\u0014", + "\u0003\u0014\u0003\u0014\u0003\u0014\u0005\u0014\u0514\n\u0014\u0003", + "\u0015\u0003\u0015\u0005\u0015\u0518\n\u0015\u0003\u0015\u0005\u0015", + "\u051b\n\u0015\u0003\u0015\u0003\u0015\u0005\u0015\u051f\n\u0015\u0003", + "\u0015\u0005\u0015\u0522\n\u0015\u0003\u0015\u0005\u0015\u0525\n\u0015", + "\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0005\u0016", + "\u052c\n\u0016\u0003\u0016\u0003\u0016\u0005\u0016\u0530\n\u0016\u0005", + "\u0016\u0532\n\u0016\u0003\u0017\u0003\u0017\u0003\u0017\u0005\u0017", + "\u0537\n\u0017\u0003\u0017\u0003\u0017\u0007\u0017\u053b\n\u0017\f\u0017", + "\u000e\u0017\u053e\u000b\u0017\u0003\u0017\u0005\u0017\u0541\n\u0017", + "\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018", + "\u0003\u0018\u0003\u0018\u0003\u0018\u0007\u0018\u054c\n\u0018\f\u0018", + "\u000e\u0018\u054f\u000b\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0005", + "\u0018\u0554\n\u0018\u0003\u0018\u0005\u0018\u0557\n\u0018\u0003\u0018", + "\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0007\u0018\u055e\n", + "\u0018\f\u0018\u000e\u0018\u0561\u000b\u0018\u0005\u0018\u0563\n\u0018", + "\u0003\u0019\u0003\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a", + "\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a", + "\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001a", + "\u0005\u001a\u0577\n\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003", + "\u001b\u0003\u001b\u0003\u001b\u0005\u001b\u057f\n\u001b\u0003\u001b", + "\u0003\u001b\u0003\u001b\u0005\u001b\u0584\n\u001b\u0003\u001b\u0005", + "\u001b\u0587\n\u001b\u0003\u001b\u0003\u001b\u0003\u001b\u0005\u001b", + "\u058c\n\u001b\u0003\u001b\u0005\u001b\u058f\n\u001b\u0003\u001b\u0003", + "\u001b\u0003\u001b\u0005\u001b\u0594\n\u001b\u0003\u001c\u0003\u001c", + "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0005\u001c\u059c\n", + "\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0005\u001c\u05a1\n\u001c", + "\u0003\u001c\u0005\u001c\u05a4\n\u001c\u0003\u001c\u0003\u001c\u0003", + "\u001c\u0005\u001c\u05a9\n\u001c\u0003\u001d\u0003\u001d\u0003\u001d", + "\u0003\u001d\u0005\u001d\u05af\n\u001d\u0003\u001d\u0003\u001d\u0003", + "\u001d\u0005\u001d\u05b4\n\u001d\u0003\u001d\u0003\u001d\u0003\u001e", + "\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001f\u0003\u001f", + "\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003!\u0005!\u05c5\n", + "!\u0003!\u0005!\u05c8\n!\u0003!\u0005!\u05cb\n!\u0003!\u0005!\u05ce", + "\n!\u0003\"\u0003\"\u0003\"\u0005\"\u05d3\n\"\u0003#\u0003#\u0003$\u0003", + "$\u0003$\u0003%\u0003%\u0005%\u05dc\n%\u0003&\u0003&\u0003\'\u0003\'", + "\u0003\'\u0003(\u0003(\u0003(\u0003(\u0003)\u0003)\u0003)\u0003)\u0005", + ")\u05eb\n)\u0003*\u0003*\u0003+\u0003+\u0003+\u0003,\u0003,\u0003-\u0003", + "-\u0003-\u0003.\u0003.\u0003/\u0003/\u0003/\u0005/\u05fc\n/\u00030\u0003", + "0\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00050\u0607\n0\u0003", + "0\u00030\u00070\u060b\n0\f0\u000e0\u060e\u000b0\u00031\u00031\u0003", + "1\u00031\u00032\u00032\u00033\u00033\u00034\u00034\u00034\u00034\u0005", + "4\u061c\n4\u00035\u00035\u00036\u00036\u00036\u00037\u00037\u00038\u0003", + "8\u00038\u00038\u00038\u00038\u00058\u062b\n8\u00039\u00039\u0003:\u0003", + ":\u0003:\u0003:\u0003:\u0005:\u0634\n:\u0003:\u0003:\u0005:\u0638\n", + ":\u0003:\u0006:\u063b\n:\r:\u000e:\u063c\u0003:\u0003:\u0003:\u0003", + ":\u0005:\u0643\n:\u0003;\u0003;\u0003;\u0003;\u0005;\u0649\n;\u0003", + ";\u0005;\u064c\n;\u0003;\u0006;\u064f\n;\r;\u000e;\u0650\u0003;\u0003", + ";\u0003;\u0005;\u0656\n;\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0005", + "<\u065e\n<\u0003=\u0003=\u0003=\u0003=\u0003>\u0003>\u0003>\u0003>\u0005", + ">\u0668\n>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003?\u0003?\u0003@\u0003", + "@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0005@\u067b", + "\n@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0005A\u0683\nA\u0003", + "A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003", + "A\u0005A\u0690\nA\u0005A\u0692\nA\u0003A\u0003A\u0003A\u0003A\u0003", + "A\u0003A\u0003A\u0003A\u0003A\u0003A\u0005A\u069e\nA\u0005A\u06a0\n", + "A\u0003A\u0003A\u0003A\u0003A\u0003A\u0005A\u06a7\nA\u0003B\u0003B\u0003", + "B\u0003B\u0003B\u0003B\u0003B\u0005B\u06b0\nB\u0003C\u0003C\u0003C\u0003", + "C\u0005C\u06b6\nC\u0003C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003D\u0005", + "D\u06bf\nD\u0003E\u0003E\u0003F\u0003F\u0003F\u0003G\u0003G\u0003G\u0003", + "G\u0003H\u0003H\u0003H\u0003H\u0005H\u06ce\nH\u0003H\u0003H\u0003H\u0003", + "H\u0003I\u0003I\u0003I\u0003I\u0005I\u06d8\nI\u0003I\u0003I\u0003I\u0003", + "I\u0003J\u0003J\u0003J\u0003J\u0005J\u06e2\nJ\u0003J\u0003J\u0003J\u0003", + "J\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0005K\u070a\nK\u0003L\u0003L\u0003L\u0003", + "L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003", + "L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0005L\u0721\nL\u0003", + "M\u0003M\u0003N\u0003N\u0003O\u0003O\u0003O\u0003O\u0003O\u0003P\u0003", + "P\u0003P\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0005R\u0745\nR\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0005R\u0757\nR\u0003R\u0005R\u075a\nR\u0003R\u0003R\u0003", + "R\u0005R\u075f\nR\u0003R\u0005R\u0762\nR\u0003R\u0003R\u0003R\u0005", + "R\u0767\nR\u0003R\u0005R\u076a\nR\u0003R\u0003R\u0003R\u0005R\u076f", + "\nR\u0003R\u0005R\u0772\nR\u0003R\u0003R\u0003R\u0005R\u0777\nR\u0003", + "R\u0005R\u077a\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u0782", + "\nR\u0003R\u0005R\u0785\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0005R\u078d\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0005R\u079a\nR\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0005R\u07a5\nR\u0003R\u0007R\u07a8\n", + "R\fR\u000eR\u07ab\u000bR\u0003R\u0005R\u07ae\nR\u0003R\u0003R\u0003", + "R\u0003R\u0005R\u07b4\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0005R\u07cb\nR\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u07d7\nR\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u07e2\nR\u0003", + "R\u0007R\u07e5\nR\fR\u000eR\u07e8\u000bR\u0003R\u0005R\u07eb\nR\u0003", + "R\u0003R\u0003R\u0003R\u0005R\u07f1\nR\u0005R\u07f3\nR\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005", + "R\u0800\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0006R\u0815\nR\rR\u000eR\u0816\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0005R\u081e\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005", + "R\u0827\nR\u0003R\u0003R\u0003R\u0005R\u082c\nR\u0003R\u0005R\u082f", + "\nR\u0003R\u0003R\u0003R\u0005R\u0834\nR\u0003R\u0005R\u0837\nR\u0003", + "R\u0003R\u0003R\u0005R\u083c\nR\u0003R\u0006R\u083f\nR\rR\u000eR\u0840", + "\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u085d\nR\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0005R\u0864\nR\u0003R\u0006R\u0867\nR\rR\u000e", + "R\u0868\u0003R\u0003R\u0003R\u0003R\u0003R\u0005R\u0870\nR\u0005R\u0872", + "\nR\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0005", + "R\u087d\nR\u0003R\u0003R\u0003R\u0003R\u0005R\u0883\nR\u0003R\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0005R\u0892\nR\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003", + "S\u0003S\u0003S\u0003S\u0003S\u0003S\u0005S\u08a0\nS\u0003S\u0005S\u08a3", + "\nS\u0005S\u08a5\nS\u0003S\u0003S\u0003S\u0005S\u08aa\nS\u0003S\u0003", + "S\u0005S\u08ae\nS\u0003S\u0005S\u08b1\nS\u0005S\u08b3\nS\u0003S\u0003", + "S\u0003S\u0003S\u0005S\u08b9\nS\u0003S\u0005S\u08bc\nS\u0005S\u08be", + "\nS\u0003S\u0003S\u0003S\u0003S\u0005S\u08c4\nS\u0005S\u08c6\nS\u0003", + "S\u0003S\u0003T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003", + "U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0005", + "U\u08dc\nU\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u08e4\n", + "U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u08ec\nU\u0006U\u08ee", + "\nU\rU\u000eU\u08ef\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003", + "U\u0005U\u08f9\nU\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", + "V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003", + "V\u0003V\u0005V\u090e\nV\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003", + "W\u0003W\u0003W\u0003W\u0003W\u0005W\u091b\nW\u0003W\u0003W\u0003W\u0003", + "W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0005", + "W\u092a\nW\u0006W\u092c\nW\rW\u000eW\u092d\u0003X\u0003X\u0003X\u0003", + "X\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003", + "Z\u0003Z\u0003Z\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003\\\u0003\\", + "\u0003\\\u0003]\u0003]\u0003]\u0003]\u0003]\u0003^\u0003^\u0003^\u0003", + "^\u0005^\u0951\n^\u0003^\u0005^\u0954\n^\u0003^\u0006^\u0957\n^\r^\u000e", + "^\u0958\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003`\u0003`\u0003", + "`\u0003`\u0003`\u0003`\u0003a\u0003a\u0003a\u0003a\u0005a\u096b\na\u0003", + "a\u0005a\u096e\na\u0003a\u0003a\u0003a\u0005a\u0973\na\u0003a\u0003", + "a\u0003b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003c\u0003c\u0003c\u0003", + "c\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003e\u0003", + "e\u0003e\u0003e\u0005e\u098d\ne\u0003f\u0003f\u0003f\u0003f\u0003f\u0003", + "f\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0005g\u099b\ng\u0003g\u0003", + "g\u0003g\u0005g\u09a0\ng\u0003g\u0003g\u0003h\u0003h\u0003h\u0003h\u0005", + "h\u09a8\nh\u0003h\u0006h\u09ab\nh\rh\u000eh\u09ac\u0003h\u0003h\u0003", + "h\u0003h\u0003h\u0005h\u09b4\nh\u0003i\u0003i\u0003i\u0003i\u0003i\u0003", + "i\u0003i\u0003j\u0003j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003k\u0003", + "k\u0003k\u0003k\u0003k\u0005k\u09c9\nk\u0003k\u0003k\u0003l\u0003l\u0003", + "l\u0003l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003n\u0003n\u0003n\u0003", + "n\u0003o\u0003o\u0003o\u0003o\u0003o\u0003p\u0003p\u0003p\u0003p\u0003", + "p\u0003q\u0003q\u0003q\u0003q\u0003q\u0003r\u0003r\u0003r\u0003r\u0003", + "r\u0005r\u09ee\nr\u0003r\u0003r\u0003r\u0005r\u09f3\nr\u0003r\u0003", + "r\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003t\u0003t\u0003", + "t\u0003t\u0003u\u0003u\u0003u\u0003u\u0005u\u0a06\nu\u0003u\u0003u\u0003", + "v\u0003v\u0003v\u0003v\u0003w\u0003w\u0003w\u0003w\u0005w\u0a12\nw\u0003", + "w\u0005w\u0a15\nw\u0003w\u0003w\u0003w\u0005w\u0a1a\nw\u0003w\u0005", + "w\u0a1d\nw\u0003x\u0003x\u0003x\u0003x\u0005x\u0a23\nx\u0003x\u0003", + "x\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003z\u0003z\u0003", + "z\u0003z\u0005z\u0a32\nz\u0003z\u0003z\u0003z\u0005z\u0a37\nz\u0003", + "z\u0003z\u0003{\u0003{\u0003{\u0003{\u0005{\u0a3f\n{\u0003{\u0005{\u0a42", + "\n{\u0003{\u0003{\u0003{\u0005{\u0a47\n{\u0003{\u0003{\u0003{\u0005", + "{\u0a4c\n{\u0003{\u0005{\u0a4f\n{\u0003|\u0003|\u0003|\u0003|\u0003", + "|\u0003}\u0003}\u0003}\u0003}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003", + "~\u0003~\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u0080", + "\u0003\u0080\u0005\u0080\u0a67\n\u0080\u0003\u0080\u0003\u0080\u0003", + "\u0080\u0003\u0080\u0003\u0080\u0005\u0080\u0a6e\n\u0080\u0003\u0080", + "\u0003\u0080\u0003\u0080\u0005\u0080\u0a73\n\u0080\u0003\u0080\u0003", + "\u0080\u0003\u0080\u0005\u0080\u0a78\n\u0080\u0003\u0080\u0003\u0080", + "\u0003\u0080\u0006\u0080\u0a7d\n\u0080\r\u0080\u000e\u0080\u0a7e\u0003", + "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0005\u0081\u0a86", + "\n\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0082", + "\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082", + "\u0005\u0082\u0a93\n\u0082\u0003\u0083\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0005\u0083\u0a99\n\u0083\u0003\u0083\u0003\u0083\u0003\u0083", + "\u0005\u0083\u0a9e\n\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003", + "\u0084\u0003\u0084\u0003\u0084\u0005\u0084\u0aa6\n\u0084\u0003\u0084", + "\u0003\u0084\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085", + "\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086", + "\u0003\u0086\u0005\u0086\u0ab6\n\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0087\u0003\u0087\u0003\u0087\u0005\u0087\u0abd\n\u0087\u0003\u0087", + "\u0003\u0087\u0003\u0087\u0005\u0087\u0ac2\n\u0087\u0003\u0087\u0006", + "\u0087\u0ac5\n\u0087\r\u0087\u000e\u0087\u0ac6\u0003\u0087\u0005\u0087", + "\u0aca\n\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0005", + "\u0087\u0ad0\n\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087", + "\u0005\u0087\u0ad6\n\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0005", + "\u0088\u0adb\n\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0005\u0088", + "\u0ae0\n\u0088\u0003\u0088\u0006\u0088\u0ae3\n\u0088\r\u0088\u000e\u0088", + "\u0ae4\u0003\u0088\u0005\u0088\u0ae8\n\u0088\u0003\u0088\u0003\u0088", + "\u0003\u0088\u0003\u0088\u0005\u0088\u0aee\n\u0088\u0003\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0005\u0088\u0af4\n\u0088\u0003\u0089", + "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089", + "\u0003\u0089\u0003\u0089\u0005\u0089\u0aff\n\u0089\u0003\u0089\u0005", + "\u0089\u0b02\n\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a", + "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u0b0c\n", + "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u0b12", + "\n\u008a\u0006\u008a\u0b14\n\u008a\r\u008a\u000e\u008a\u0b15\u0003\u008a", + "\u0003\u008a\u0005\u008a\u0b1a\n\u008a\u0003\u008b\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003", + "\u008c\u0005\u008c\u0b37\n\u008c\u0003\u008d\u0003\u008d\u0003\u008d", + "\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d", + "\u0003\u008d\u0003\u008d\u0005\u008d\u0b44\n\u008d\u0003\u008d\u0003", + "\u008d\u0003\u008d\u0003\u008d\u0005\u008d\u0b4a\n\u008d\u0003\u008e", + "\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e", + "\u0003\u008e\u0005\u008e\u0b54\n\u008e\u0003\u008e\u0005\u008e\u0b57", + "\n\u008e\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f", + "\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u0090\u0003\u0090", + "\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090", + "\u0003\u0090\u0005\u0090\u0b6b\n\u0090\u0003\u0090\u0003\u0090\u0005", + "\u0090\u0b6f\n\u0090\u0003\u0090\u0003\u0090\u0005\u0090\u0b73\n\u0090", + "\u0003\u0090\u0006\u0090\u0b76\n\u0090\r\u0090\u000e\u0090\u0b77\u0003", + "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0005\u0091\u0b87\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0091\u0005\u0091\u0b8e\n\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005", + "\u0091\u0b97\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0007\u0091\u0b9d\n\u0091\f\u0091\u000e\u0091\u0ba0\u000b\u0091\u0005", + "\u0091\u0ba2\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091", + "\u0ba7\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0bac", + "\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0006\u0091", + "\u0bb2\n\u0091\r\u0091\u000e\u0091\u0bb3\u0003\u0091\u0003\u0091\u0006", + "\u0091\u0bb8\n\u0091\r\u0091\u000e\u0091\u0bb9\u0003\u0091\u0003\u0091", + "\u0005\u0091\u0bbe\n\u0091\u0003\u0091\u0003\u0091\u0007\u0091\u0bc2", + "\n\u0091\f\u0091\u000e\u0091\u0bc5\u000b\u0091\u0007\u0091\u0bc7\n\u0091", + "\f\u0091\u000e\u0091\u0bca\u000b\u0091\u0003\u0091\u0005\u0091\u0bcd", + "\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0005\u0091\u0bd4\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0007\u0091\u0bda\n\u0091\f\u0091\u000e\u0091\u0bdd\u000b\u0091", + "\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091", + "\u0be4\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0bed\n\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0091\u0005\u0091\u0bf2\n\u0091\u0003\u0091\u0003", + "\u0091\u0005\u0091\u0bf6\n\u0091\u0003\u0091\u0005\u0091\u0bf9\n\u0091", + "\u0006\u0091\u0bfb\n\u0091\r\u0091\u000e\u0091\u0bfc\u0003\u0091\u0003", + "\u0091\u0007\u0091\u0c01\n\u0091\f\u0091\u000e\u0091\u0c04\u000b\u0091", + "\u0007\u0091\u0c06\n\u0091\f\u0091\u000e\u0091\u0c09\u000b\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c10", + "\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0007\u0091", + "\u0c16\n\u0091\f\u0091\u000e\u0091\u0c19\u000b\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0005\u0091\u0c1e\n\u0091\u0003\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0091\u0005\u0091\u0c24\n\u0091\u0003\u0091\u0005", + "\u0091\u0c27\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091", + "\u0c2c\n\u0091\u0003\u0091\u0005\u0091\u0c2f\n\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c36\n\u0091", + "\u0005\u0091\u0c38\n\u0091\u0003\u0091\u0005\u0091\u0c3b\n\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c41\n\u0091", + "\u0003\u0091\u0005\u0091\u0c44\n\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0005\u0091\u0c49\n\u0091\u0003\u0091\u0005\u0091\u0c4c\n\u0091", + "\u0003\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c51\n\u0091\u0003", + "\u0091\u0005\u0091\u0c54\n\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0005\u0091\u0c59\n\u0091\u0003\u0091\u0005\u0091\u0c5c\n\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0005\u0091\u0c61\n\u0091\u0003\u0092", + "\u0005\u0092\u0c64\n\u0092\u0003\u0092\u0005\u0092\u0c67\n\u0092\u0003", + "\u0092\u0005\u0092\u0c6a\n\u0092\u0003\u0092\u0003\u0092\u0003\u0092", + "\u0003\u0092\u0003\u0092\u0005\u0092\u0c71\n\u0092\u0006\u0092\u0c73", + "\n\u0092\r\u0092\u000e\u0092\u0c74\u0003\u0093\u0003\u0093\u0003\u0093", + "\u0003\u0093\u0003\u0093\u0005\u0093\u0c7c\n\u0093\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0c83\n\u0094", + "\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0c89\n", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0005", + "\u0094\u0c96\n\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0c9a\n\u0094", + "\u0003\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0c9f\n\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0005\u0094\u0ca9\n\u0094\u0003\u0094\u0003\u0094", + "\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0005\u0094", + "\u0cb2\n\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u0cb6\n\u0094\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0005\u0095\u0cc2\n\u0095", + "\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0005\u0095\u0cc8\n", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0006\u0095\u0ccd\n\u0095", + "\r\u0095\u000e\u0095\u0cce\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0095\u0005\u0095\u0ce3\n\u0095\u0003\u0095", + "\u0003\u0095\u0005\u0095\u0ce7\n\u0095\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0005\u0096\u0cef\n\u0096", + "\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096", + "\u0003\u0096\u0005\u0096\u0cf8\n\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0005\u0096\u0cfe\n\u0096\u0003\u0096\u0003\u0096", + "\u0003\u0096\u0003\u0096\u0005\u0096\u0d04\n\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0006\u0096\u0d0c", + "\n\u0096\r\u0096\u000e\u0096\u0d0d\u0003\u0096\u0003\u0096\u0003\u0097", + "\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0005\u0097", + "\u0d18\n\u0097\u0003\u0097\u0003\u0097\u0005\u0097\u0d1c\n\u0097\u0003", + "\u0097\u0005\u0097\u0d1f\n\u0097\u0003\u0097\u0003\u0097\u0005\u0097", + "\u0d23\n\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0005\u0097\u0d28", + "\n\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0005\u0097", + "\u0d2e\n\u0097\u0003\u0097\u0005\u0097\u0d31\n\u0097\u0003\u0097\u0003", + "\u0097\u0005\u0097\u0d35\n\u0097\u0003\u0097\u0003\u0097\u0003\u0097", + "\u0003\u0097\u0003\u0097\u0003\u0097\u0006\u0097\u0d3d\n\u0097\r\u0097", + "\u000e\u0097\u0d3e\u0003\u0097\u0005\u0097\u0d42\n\u0097\u0003\u0098", + "\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0005\u0098", + "\u0d4a\n\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0005\u0098\u0d52\n\u0098\u0003\u0098\u0003\u0098", + "\u0003\u0098\u0003\u0098\u0003\u0098\u0005\u0098\u0d59\n\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0006\u0098\u0d60", + "\n\u0098\r\u0098\u000e\u0098\u0d61\u0005\u0098\u0d64\n\u0098\u0003\u0098", + "\u0003\u0098\u0003\u0098\u0005\u0098\u0d69\n\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0098\u0005\u0098\u0d6f\n\u0098\u0003\u0098", + "\u0006\u0098\u0d72\n\u0098\r\u0098\u000e\u0098\u0d73\u0005\u0098\u0d76", + "\n\u0098\u0003\u0098\u0005\u0098\u0d79\n\u0098\u0003\u0098\u0003\u0098", + "\u0003\u0098\u0005\u0098\u0d7e\n\u0098\u0003\u0098\u0005\u0098\u0d81", + "\n\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0005\u0098\u0d86\n\u0098", + "\u0003\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099", + "\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099", + "\u0003\u0099\u0005\u0099\u0d95\n\u0099\u0003\u0099\u0003\u0099\u0003", + "\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0d9c\n\u0099\u0003\u0099", + "\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0006\u0099\u0da3\n", + "\u0099\r\u0099\u000e\u0099\u0da4\u0005\u0099\u0da7\n\u0099\u0003\u0099", + "\u0003\u0099\u0003\u0099\u0005\u0099\u0dac\n\u0099\u0003\u0099\u0003", + "\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0db2\n\u0099\u0003\u0099", + "\u0006\u0099\u0db5\n\u0099\r\u0099\u000e\u0099\u0db6\u0005\u0099\u0db9", + "\n\u0099\u0003\u0099\u0005\u0099\u0dbc\n\u0099\u0003\u0099\u0003\u0099", + "\u0003\u0099\u0005\u0099\u0dc1\n\u0099\u0003\u0099\u0005\u0099\u0dc4", + "\n\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0dc9\n\u0099", + "\u0003\u0099\u0003\u0099\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0005\u009a", + "\u0dd6\n\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0005\u009a\u0ddb", + "\n\u009a\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b", + "\u0003\u009b\u0003\u009b\u0005\u009b\u0de4\n\u009b\u0003\u009b\u0003", + "\u009b\u0003\u009b\u0005\u009b\u0de9\n\u009b\u0003\u009b\u0003\u009b", + "\u0003\u009b\u0003\u009b\u0005\u009b\u0def\n\u009b\u0003\u009b\u0003", + "\u009b\u0005\u009b\u0df3\n\u009b\u0003\u009b\u0003\u009b\u0005\u009b", + "\u0df7\n\u009b\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0005\u009c\u0e08", + "\n\u009c\u0005\u009c\u0e0a\n\u009c\u0003\u009d\u0003\u009d\u0003\u009d", + "\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0005\u009d", + "\u0e14\n\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0005\u009d\u0e19", + "\n\u009d\u0005\u009d\u0e1b\n\u009d\u0003\u009d\u0003\u009d\u0005\u009d", + "\u0e1f\n\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0005", + "\u009e\u0e25\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e", + "\u0003\u009e\u0003\u009e\u0005\u009e\u0e2d\n\u009e\u0003\u009e\u0007", + "\u009e\u0e30\n\u009e\f\u009e\u000e\u009e\u0e33\u000b\u009e\u0005\u009e", + "\u0e35\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0007", + "\u009e\u0e3b\n\u009e\f\u009e\u000e\u009e\u0e3e\u000b\u009e\u0005\u009e", + "\u0e40\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0e45", + "\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0e4a\n\u009e", + "\u0003\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0e4f\n\u009e\u0003", + "\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0e54\n\u009e\u0003\u009e", + "\u0003\u009e\u0003\u009e\u0005\u009e\u0e59\n\u009e\u0003\u009e\u0003", + "\u009e\u0003\u009e\u0005\u009e\u0e5e\n\u009e\u0003\u009e\u0003\u009e", + "\u0005\u009e\u0e62\n\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0005", + "\u009e\u0e67\n\u009e\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f", + "\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f", + "\u0e72\n\u009f\u0003\u009f\u0007\u009f\u0e75\n\u009f\f\u009f\u000e\u009f", + "\u0e78\u000b\u009f\u0005\u009f\u0e7a\n\u009f\u0003\u009f\u0005\u009f", + "\u0e7d\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0e82", + "\n\u009f\u0003\u009f\u0005\u009f\u0e85\n\u009f\u0003\u009f\u0003\u009f", + "\u0003\u009f\u0005\u009f\u0e8a\n\u009f\u0003\u009f\u0005\u009f\u0e8d", + "\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0e92\n\u009f", + "\u0003\u009f\u0005\u009f\u0e95\n\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0005\u009f\u0e9a\n\u009f\u0003\u009f\u0005\u009f\u0e9d\n\u009f", + "\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0ea2\n\u009f\u0003", + "\u009f\u0005\u009f\u0ea5\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f", + "\u0005\u009f\u0eaa\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003", + "\u009f\u0005\u009f\u0eb0\n\u009f\u0003\u009f\u0003\u009f\u0003\u009f", + "\u0005\u009f\u0eb5\n\u009f\u0003\u009f\u0005\u009f\u0eb8\n\u009f\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0ebd\n\u009f\u0003\u009f", + "\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0005\u009f\u0ec4\n", + "\u009f\u0005\u009f\u0ec6\n\u009f\u0003\u00a0\u0003\u00a0\u0003\u00a0", + "\u0003\u00a0\u0005\u00a0\u0ecc\n\u00a0\u0003\u00a0\u0003\u00a0\u0003", + "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005\u00a0\u0ed5", + "\n\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005\u00a0\u0eda\n\u00a0", + "\u0005\u00a0\u0edc\n\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003", + "\u00a1\u0005\u00a1\u0ee8\n\u00a1\u0003\u00a2\u0003\u00a2\u0003\u00a2", + "\u0003\u00a2\u0005\u00a2\u0eee\n\u00a2\u0003\u00a2\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0007", + "\u00a2\u0ef8\n\u00a2\f\u00a2\u000e\u00a2\u0efb\u000b\u00a2\u0005\u00a2", + "\u0efd\n\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0005\u00a2\u0f02", + "\n\u00a2\u0005\u00a2\u0f04\n\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3", + "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3", + "\u0f0e\n\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3\u0f13", + "\n\u00a3\u0005\u00a3\u0f15\n\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3", + "\u0f19\n\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0005", + "\u00a4\u0f1f\n\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0005\u00a4\u0f31\n\u00a4\u0005\u00a4\u0f33\n\u00a4\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0005", + "\u00a6\u0f42\n\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", + "\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", + "\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", + "\u0005\u00a6\u0f54\n\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003", + "\u00a6\u0003\u00a6\u0003\u00a6\u0005\u00a6\u0f5c\n\u00a6\u0003\u00a7", + "\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7", + "\u0003\u00a7\u0005\u00a7\u0f66\n\u00a7\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0005", + "\u00a8\u0f76\n\u00a8\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9", + "\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9", + "\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa", + "\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0005\u00aa\u0f8b\n\u00aa\u0003", + "\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003", + "\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u0f96\n\u00ab\u0003\u00ab", + "\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u0f9c\n\u00ab\u0003", + "\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003", + "\u00ac\u0005\u00ac\u0fa5\n\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac", + "\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0005\u00ac\u0fae\n", + "\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0005\u00ac\u0fb4", + "\n\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0003\u00ad\u0005\u00ad\u0fbd\n\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0005\u00ad\u0fc2\n\u00ad\u0003\u00ad\u0005\u00ad", + "\u0fc5\n\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad\u0fca", + "\n\u00ad\u0003\u00ad\u0005\u00ad\u0fcd\n\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0005\u00ad\u0fd2\n\u00ad\u0003\u00ad\u0005\u00ad\u0fd5", + "\n\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0005\u00ad\u0fdd\n\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0005\u00ad\u0fe3\n\u00ad\u0006\u00ad\u0fe5\n\u00ad", + "\r\u00ad\u000e\u00ad\u0fe6\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0005\u00ad\u0fee\n\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0003\u00ad\u0005\u00ad\u0ff4\n\u00ad\u0006\u00ad\u0ff6", + "\n\u00ad\r\u00ad\u000e\u00ad\u0ff7\u0003\u00ad\u0005\u00ad\u0ffb\n\u00ad", + "\u0005\u00ad\u0ffd\n\u00ad\u0003\u00ad\u0005\u00ad\u1000\n\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad\u1005\n\u00ad\u0003\u00ad", + "\u0005\u00ad\u1008\n\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005", + "\u00ad\u100d\n\u00ad\u0003\u00ad\u0005\u00ad\u1010\n\u00ad\u0003\u00ad", + "\u0003\u00ad\u0003\u00ad\u0005\u00ad\u1015\n\u00ad\u0003\u00ad\u0005", + "\u00ad\u1018\n\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad", + "\u101d\n\u00ad\u0003\u00ad\u0005\u00ad\u1020\n\u00ad\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0005", + "\u00ae\u102f\n\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae", + "\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0005\u00ae", + "\u103a\n\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003", + "\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0005", + "\u00af\u1046\n\u00af\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0", + "\u0003\u00b0\u0005\u00b0\u104d\n\u00b0\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0005\u00b1\u1054\n\u00b1\u0003\u00b1", + "\u0003\u00b1\u0005\u00b1\u1058\n\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0005\u00b1\u105d\n\u00b1\u0003\u00b1\u0005\u00b1\u1060\n\u00b1", + "\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0005\u00b1\u1065\n\u00b1\u0003", + "\u00b1\u0005\u00b1\u1068\n\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1", + "\u0005\u00b1\u106d\n\u00b1\u0003\u00b1\u0005\u00b1\u1070\n\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0005\u00b1\u1079\n\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2", + "\u0003\u00b2\u0003\u00b2\u0005\u00b2\u1080\n\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003", + "\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0005", + "\u00b3\u108f\n\u00b3\u0003\u00b3\u0003\u00b3\u0005\u00b3\u1093\n\u00b3", + "\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0005\u00b3\u1098\n\u00b3\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0005\u00b4\u10a3\n\u00b4\u0003\u00b4", + "\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4", + "\u0003\u00b4\u0005\u00b4\u10ad\n\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0005\u00b4\u10b9\n\u00b4\u0003\u00b4\u0003\u00b4", + "\u0003\u00b4\u0003\u00b4\u0007\u00b4\u10bf\n\u00b4\f\u00b4\u000e\u00b4", + "\u10c2\u000b\u00b4\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", + "\u00b5\u0005\u00b5\u10c9\n\u00b5\u0003\u00b6\u0003\u00b6\u0003\u00b6", + "\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u10d2\n", + "\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u10d7\n\u00b6", + "\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7", + "\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0005\u00b7\u10e2\n\u00b7\u0003", + "\u00b7\u0005\u00b7\u10e5\n\u00b7\u0003\u00b7\u0003\u00b7\u0005\u00b7", + "\u10e9\n\u00b7\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003", + "\u00b8\u0003\u00b8\u0005\u00b8\u10f1\n\u00b8\u0003\u00b8\u0003\u00b8", + "\u0005\u00b8\u10f5\n\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u10f9", + "\n\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0003\u00b8\u0005\u00b8\u1101\n\u00b8\u0003\u00b8\u0006\u00b8\u1104", + "\n\u00b8\r\u00b8\u000e\u00b8\u1105\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u110e\n\u00b8\u0003", + "\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u1113\n\u00b8\u0003\u00b8", + "\u0003\u00b8\u0007\u00b8\u1117\n\u00b8\f\u00b8\u000e\u00b8\u111a\u000b", + "\u00b8\u0006\u00b8\u111c\n\u00b8\r\u00b8\u000e\u00b8\u111d\u0003\u00b8", + "\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0005\u00b8\u1127\n\u00b8\u0003\u00b8\u0005\u00b8\u112a\n\u00b8\u0003", + "\u00b8\u0003\u00b8\u0003\u00b8\u0005\u00b8\u112f\n\u00b8\u0003\u00b9", + "\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u1136\n", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u113c", + "\n\u00b9\u0005\u00b9\u113e\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0005\u00b9\u1143\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0005\u00b9\u1149\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0003\u00b9\u0005\u00b9\u114f\n\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0005\u00b9\u1154\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0003\u00b9\u0005\u00b9\u115a\n\u00b9\u0003\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1161\n\u00ba\u0003\u00ba", + "\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1166\n\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0005\u00ba\u116b\n\u00ba\u0003\u00ba\u0003\u00ba", + "\u0003\u00ba\u0005\u00ba\u1170\n\u00ba\u0003\u00ba\u0005\u00ba\u1173", + "\n\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1177\n\u00ba\u0003\u00ba", + "\u0003\u00ba\u0005\u00ba\u117b\n\u00ba\u0003\u00ba\u0003\u00ba\u0005", + "\u00ba\u117f\n\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1183\n\u00ba", + "\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u1188\n\u00ba\u0003", + "\u00ba\u0003\u00ba\u0005\u00ba\u118c\n\u00ba\u0003\u00ba\u0003\u00ba", + "\u0005\u00ba\u1190\n\u00ba\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u119a", + "\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb", + "\u11a0\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0005\u00bb\u11a7\n\u00bb\u0003\u00bb\u0005\u00bb\u11aa\n\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11b0\n", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11b6", + "\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0007\u00bb\u11bb\n\u00bb", + "\f\u00bb\u000e\u00bb\u11be\u000b\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0005\u00bb\u11c3\n\u00bb\u0005\u00bb\u11c5\n\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11ca\n\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11d0\n\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u11d6\n\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0007\u00bb\u11db\n\u00bb\f\u00bb\u000e", + "\u00bb\u11de\u000b\u00bb\u0003\u00bb\u0005\u00bb\u11e1\n\u00bb\u0003", + "\u00bb\u0003\u00bb\u0005\u00bb\u11e5\n\u00bb\u0003\u00bb\u0005\u00bb", + "\u11e8\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0005\u00bb\u11f6\n\u00bb\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0005\u00bb\u11fb\n\u00bb\u0003\u00bb\u0003\u00bb\u0005", + "\u00bb\u11ff\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0005\u00bb\u120c\n\u00bb\u0003\u00bb\u0005\u00bb\u120f", + "\n\u00bb\u0005\u00bb\u1211\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u1219\n\u00bb\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0005\u00bc\u1223\n\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0003\u00bc\u0005\u00bc\u1229\n\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc\u1230\n\u00bc", + "\u0003\u00bc\u0005\u00bc\u1233\n\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0005\u00bc\u1239\n\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0003\u00bc\u0005\u00bc\u123f\n\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0007\u00bc\u1244\n\u00bc\f\u00bc\u000e\u00bc\u1247", + "\u000b\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc\u124c\n", + "\u00bc\u0005\u00bc\u124e\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", + "\u0005\u00bc\u1253\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0005\u00bc\u1259\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0005\u00bc\u125f\n\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0005\u00bc\u1265\n\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0007\u00bc\u126a\n\u00bc\f\u00bc\u000e\u00bc\u126d\u000b", + "\u00bc\u0003\u00bc\u0005\u00bc\u1270\n\u00bc\u0003\u00bc\u0003\u00bc", + "\u0005\u00bc\u1274\n\u00bc\u0003\u00bc\u0005\u00bc\u1277\n\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005", + "\u00bc\u1285\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc", + "\u128a\n\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc\u128e\n\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0005\u00bc\u129b", + "\n\u00bc\u0003\u00bc\u0005\u00bc\u129e\n\u00bc\u0005\u00bc\u12a0\n\u00bc", + "\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", + "\u0005\u00bc\u12a8\n\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0005", + "\u00bd\u12b3\n\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd", + "\u0003\u00bd\u0007\u00bd\u12ba\n\u00bd\f\u00bd\u000e\u00bd\u12bd\u000b", + "\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003", + "\u00bd\u0005\u00bd\u12c5\n\u00bd\u0003\u00be\u0003\u00be\u0003\u00be", + "\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be", + "\u0005\u00be\u12d0\n\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0007\u00be\u12d7\n\u00be\f\u00be\u000e\u00be\u12da", + "\u000b\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be", + "\u0003\u00be\u0005\u00be\u12e2\n\u00be\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0005\u00bf\u12ee\n\u00bf\u0003\u00bf\u0003\u00bf", + "\u0005\u00bf\u12f2\n\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0006", + "\u00bf\u12f7\n\u00bf\r\u00bf\u000e\u00bf\u12f8\u0005\u00bf\u12fb\n\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0005\u00bf\u1300\n\u00bf\u0003", + "\u00bf\u0003\u00bf\u0005\u00bf\u1304\n\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0006\u00bf\u1309\n\u00bf\r\u00bf\u000e\u00bf\u130a\u0005", + "\u00bf\u130d\n\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0005\u00bf\u131b\n\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0005\u00bf\u1320\n\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0005\u00bf\u1336\n\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0005\u00bf\u134c", + "\n\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0005\u00bf\u1351\n\u00bf", + "\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0", + "\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0005\u00c0", + "\u135e\n\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0005\u00c1\u1366\n\u00c1\u0003\u00c2\u0003\u00c2", + "\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2", + "\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3", + "\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0005\u00c3\u137a\n", + "\u00c3\u0003\u00c3\u0005\u00c3\u137d\n\u00c3\u0003\u00c3\u0003\u00c3", + "\u0007\u00c3\u1381\n\u00c3\f\u00c3\u000e\u00c3\u1384\u000b\u00c3\u0003", + "\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0005\u00c4\u138b", + "\n\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4", + "\u0005\u00c4\u1392\n\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0005", + "\u00c4\u1397\n\u00c4\u0003\u00c4\u0003\u00c4\u0005\u00c4\u139b\n\u00c4", + "\u0006\u00c4\u139d\n\u00c4\r\u00c4\u000e\u00c4\u139e\u0003\u00c4\u0005", + "\u00c4\u13a2\n\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5", + "\u0003\u00c5\u0005\u00c5\u13a9\n\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0005\u00c5\u13bb\n\u00c5\u0005\u00c5\u13bd\n\u00c5", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0005\u00c6\u13d1\n\u00c6\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0005\u00c7\u13d9\n\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0005\u00c7\u13de\n\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c7\u0003\u00c7\u0005\u00c7\u13f0\n\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7", + "\u0005\u00c7\u13ff\n\u00c7\u0005\u00c7\u1401\n\u00c7\u0003\u00c8\u0003", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u1408\n\u00c8", + "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8", + "\u140f\n\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u1414", + "\n\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u1419\n\u00c8", + "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u141f\n", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0005\u00c8\u1424\n\u00c8", + "\u0005\u00c8\u1426\n\u00c8\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0005\u00c9\u142d\n\u00c9\u0003\u00c9\u0003\u00c9", + "\u0003\u00c9\u0003\u00c9\u0005\u00c9\u1433\n\u00c9\u0003\u00c9\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0005\u00c9\u1439\n\u00c9\u0003\u00c9", + "\u0005\u00c9\u143c\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003", + "\u00c9\u0005\u00c9\u1442\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9", + "\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0006\u00c9\u144a\n\u00c9\r\u00c9", + "\u000e\u00c9\u144b\u0003\u00c9\u0005\u00c9\u144f\n\u00c9\u0003\u00c9", + "\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0005\u00c9\u1456\n", + "\u00c9\u0003\u00c9\u0005\u00c9\u1459\n\u00c9\u0003\u00c9\u0003\u00c9", + "\u0003\u00c9\u0006\u00c9\u145e\n\u00c9\r\u00c9\u000e\u00c9\u145f\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005", + "\u00ca\u1468\n\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u146c\n\u00ca", + "\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u1472\n", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0007\u00ca\u1477\n\u00ca", + "\f\u00ca\u000e\u00ca\u147a\u000b\u00ca\u0005\u00ca\u147c\n\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u1483", + "\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca", + "\u1489\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0005\u00ca\u1490\n\u00ca\u0003\u00ca\u0005\u00ca\u1493\n\u00ca", + "\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u1499\n", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0007\u00ca\u149e\n\u00ca", + "\f\u00ca\u000e\u00ca\u14a1\u000b\u00ca\u0005\u00ca\u14a3\n\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005", + "\u00ca\u14ab\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca", + "\u0005\u00ca\u14b1\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0005\u00ca\u14b8\n\u00ca\u0003\u00ca\u0005\u00ca", + "\u14bb\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005", + "\u00ca\u14c1\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0007\u00ca", + "\u14c6\n\u00ca\f\u00ca\u000e\u00ca\u14c9\u000b\u00ca\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0005\u00ca\u14d0\n\u00ca", + "\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca", + "\u0005\u00ca\u14d8\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0005\u00ca\u14de\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca", + "\u0007\u00ca\u14e3\n\u00ca\f\u00ca\u000e\u00ca\u14e6\u000b\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003", + "\u00ca\u0005\u00ca\u14ef\n\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca", + "\u0005\u00ca\u14f4\n\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u14fe", + "\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", + "\u1504\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005", + "\u00cb\u1510\n\u00cb\u0005\u00cb\u1512\n\u00cb\u0003\u00cc\u0003\u00cc", + "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u1519\n\u00cc\u0003", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u151f\n\u00cc", + "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u1525\n", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0005\u00cc\u152b", + "\n\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0006\u00cc\u1530\n\u00cc", + "\r\u00cc\u000e\u00cc\u1531\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00cd\u0005\u00cd\u1539\n\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0005\u00cd\u1541\n", + "\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0005\u00cd\u1547", + "\n\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00cd\u0006\u00cd\u1555\n\u00cd\r\u00cd\u000e\u00cd\u1556\u0003", + "\u00cd\u0005\u00cd\u155a\n\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd", + "\u0005\u00cd\u155f\n\u00cd\u0005\u00cd\u1561\n\u00cd\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0005\u00ce\u156d\n\u00ce\u0003\u00ce", + "\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0005\u00ce\u1573\n\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0006", + "\u00ce\u1581\n\u00ce\r\u00ce\u000e\u00ce\u1582\u0003\u00ce\u0005\u00ce", + "\u1586\n\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0005\u00ce\u158b", + "\n\u00ce\u0003\u00ce\u0005\u00ce\u158e\n\u00ce\u0003\u00ce\u0003\u00ce", + "\u0003\u00ce\u0005\u00ce\u1593\n\u00ce\u0005\u00ce\u1595\n\u00ce\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0005\u00cf\u159e\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0005\u00cf\u15a5\n\u00cf\u0003\u00d0\u0003", + "\u00d0\u0003\u00d0\u0003\u00d0\u0005\u00d0\u15ab\n\u00d0\u0003\u00d0", + "\u0005\u00d0\u15ae\n\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0005", + "\u00d0\u15b3\n\u00d0\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0005\u00d1\u15ba\n\u00d1\u0005\u00d1\u15bc\n\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0005\u00d1\u15c2\n\u00d1", + "\u0005\u00d1\u15c4\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0005\u00d1\u15cc\n\u00d1\u0005\u00d1", + "\u15ce\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0005", + "\u00d1\u15d4\n\u00d1\u0005\u00d1\u15d6\n\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d1\u0003\u00d1\u0005\u00d1\u15dc\n\u00d1\u0005\u00d1\u15de", + "\n\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0005\u00d1\u15e5\n\u00d1\u0003\u00d1\u0005\u00d1\u15e8\n\u00d1\u0005", + "\u00d1\u15ea\n\u00d1\u0003\u00d1\u0005\u00d1\u15ed\n\u00d1\u0003\u00d1", + "\u0003\u00d1\u0005\u00d1\u15f1\n\u00d1\u0005\u00d1\u15f3\n\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0005\u00d1\u15fc\n\u00d1\u0003\u00d2\u0003\u00d2\u0003\u00d2", + "\u0003\u00d2\u0005\u00d2\u1602\n\u00d2\u0003\u00d2\u0003\u00d2\u0005", + "\u00d2\u1606\n\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3", + "\u0003\u00d3\u0003\u00d3\u0005\u00d3\u160e\n\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0005\u00d3\u1615\n\u00d3", + "\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0005\u00d3\u161b\n", + "\u00d3\u0005\u00d3\u161d\n\u00d3\u0003\u00d4\u0003\u00d4\u0003\u00d4", + "\u0003\u00d4\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5", + "\u0005\u00d5\u1628\n\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0005", + "\u00d5\u162d\n\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5", + "\u0005\u00d5\u1633\n\u00d5\u0006\u00d5\u1635\n\u00d5\r\u00d5\u000e\u00d5", + "\u1636\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", + "\u00d6\u0003\u00d6\u0003\u00d6\u0005\u00d6\u1641\n\u00d6\u0003\u00d7", + "\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005\u00d7", + "\u1649\n\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", + "\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005", + "\u00d7\u1655\n\u00d7\u0003\u00d8\u0005\u00d8\u1658\n\u00d8\u0003\u00d8", + "\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8", + "\u1660\n\u00d8\u0005\u00d8\u1662\n\u00d8\u0003\u00d8\u0005\u00d8\u1665", + "\n\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8\u1669\n\u00d8\u0003\u00d8", + "\u0005\u00d8\u166c\n\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8\u1676", + "\n\u00d8\u0003\u00d8\u0003\u00d8\u0007\u00d8\u167a\n\u00d8\f\u00d8\u000e", + "\u00d8\u167d\u000b\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8", + "\u0003\u00d8\u0005\u00d8\u1684\n\u00d8\u0003\u00d8\u0003\u00d8\u0005", + "\u00d8\u1688\n\u00d8\u0003\u00d8\u0003\u00d8\u0005\u00d8\u168c\n\u00d8", + "\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8", + "\u0003\u00d8\u0005\u00d8\u1695\n\u00d8\u0003\u00d8\u0003\u00d8\u0007", + "\u00d8\u1699\n\u00d8\f\u00d8\u000e\u00d8\u169c\u000b\u00d8\u0003\u00d8", + "\u0005\u00d8\u169f\n\u00d8\u0003\u00d8\u0005\u00d8\u16a2\n\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0007\u00d9\u16ab\n\u00d9\f\u00d9\u000e\u00d9\u16ae\u000b\u00d9", + "\u0003\u00d9\u0005\u00d9\u16b1\n\u00d9\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0005\u00da\u16b8\n\u00da\u0003\u00da", + "\u0003\u00da\u0003\u00da\u0005\u00da\u16bd\n\u00da\u0003\u00db\u0005", + "\u00db\u16c0\n\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db", + "\u0003\u00db\u0003\u00db\u0005\u00db\u16c8\n\u00db\u0003\u00db\u0003", + "\u00db\u0005\u00db\u16cc\n\u00db\u0003\u00db\u0005\u00db\u16cf\n\u00db", + "\u0003\u00db\u0003\u00db\u0005\u00db\u16d3\n\u00db\u0003\u00db\u0005", + "\u00db\u16d6\n\u00db\u0003\u00db\u0003\u00db\u0005\u00db\u16da\n\u00db", + "\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0005\u00db", + "\u16e1\n\u00db\u0003\u00db\u0003\u00db\u0005\u00db\u16e5\n\u00db\u0005", + "\u00db\u16e7\n\u00db\u0005\u00db\u16e9\n\u00db\u0003\u00db\u0005\u00db", + "\u16ec\n\u00db\u0003\u00db\u0005\u00db\u16ef\n\u00db\u0003\u00db\u0005", + "\u00db\u16f2\n\u00db\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc", + "\u0005\u00dc\u16f8\n\u00dc\u0003\u00dd\u0005\u00dd\u16fb\n\u00dd\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0005", + "\u00dd\u1703\n\u00dd\u0005\u00dd\u1705\n\u00dd\u0003\u00dd\u0005\u00dd", + "\u1708\n\u00dd\u0003\u00dd\u0003\u00dd\u0005\u00dd\u170c\n\u00dd\u0003", + "\u00dd\u0005\u00dd\u170f\n\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd", + "\u0003\u00dd\u0005\u00dd\u1715\n\u00dd\u0003\u00dd\u0005\u00dd\u1718", + "\n\u00dd\u0003\u00dd\u0003\u00dd\u0005\u00dd\u171c\n\u00dd\u0003\u00dd", + "\u0005\u00dd\u171f\n\u00dd\u0003\u00dd\u0005\u00dd\u1722\n\u00dd\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0005\u00de\u1729", + "\n\u00de\u0003\u00df\u0005\u00df\u172c\n\u00df\u0003\u00df\u0003\u00df", + "\u0003\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u1733\n\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0005\u00df\u1739\n\u00df", + "\u0007\u00df\u173b\n\u00df\f\u00df\u000e\u00df\u173e\u000b\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003", + "\u00df\u0005\u00df\u1747\n\u00df\u0003\u00df\u0005\u00df\u174a\n\u00df", + "\u0003\u00e0\u0005\u00e0\u174d\n\u00e0\u0003\u00e0\u0003\u00e0\u0005", + "\u00e0\u1751\n\u00e0\u0003\u00e0\u0005\u00e0\u1754\n\u00e0\u0003\u00e0", + "\u0005\u00e0\u1757\n\u00e0\u0003\u00e0\u0005\u00e0\u175a\n\u00e0\u0003", + "\u00e1\u0003\u00e1\u0005\u00e1\u175e\n\u00e1\u0003\u00e2\u0005\u00e2", + "\u1761\n\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0003\u00e2\u0005\u00e2\u1769\n\u00e2\u0005\u00e2\u176b\n\u00e2", + "\u0003\u00e2\u0003\u00e2\u0005\u00e2\u176f\n\u00e2\u0003\u00e2\u0005", + "\u00e2\u1772\n\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2", + "\u0007\u00e2\u1778\n\u00e2\f\u00e2\u000e\u00e2\u177b\u000b\u00e2\u0003", + "\u00e2\u0005\u00e2\u177e\n\u00e2\u0003\u00e2\u0003\u00e2\u0005\u00e2", + "\u1782\n\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0005\u00e2\u1789\n\u00e2\u0003\u00e2\u0003\u00e2\u0005\u00e2", + "\u178d\n\u00e2\u0005\u00e2\u178f\n\u00e2\u0005\u00e2\u1791\n\u00e2\u0003", + "\u00e2\u0005\u00e2\u1794\n\u00e2\u0003\u00e2\u0005\u00e2\u1797\n\u00e2", + "\u0003\u00e2\u0005\u00e2\u179a\n\u00e2\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0007\u00e3\u17a0\n\u00e3\f\u00e3\u000e\u00e3\u17a3", + "\u000b\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0005\u00e3\u17a8\n", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0005\u00e3\u17ae", + "\n\u00e3\u0005\u00e3\u17b0\n\u00e3\u0003\u00e4\u0003\u00e4\u0005\u00e4", + "\u17b4\n\u00e4\u0003\u00e4\u0005\u00e4\u17b7\n\u00e4\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0005\u00e5\u17bc\n\u00e5\u0003\u00e5\u0003\u00e5", + "\u0003\u00e5\u0005\u00e5\u17c1\n\u00e5\u0003\u00e5\u0005\u00e5\u17c4", + "\n\u00e5\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6", + "\u0003\u00e6\u0005\u00e6\u17cc\n\u00e6\u0003\u00e6\u0003\u00e6\u0005", + "\u00e6\u17d0\n\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0007\u00e6", + "\u17d5\n\u00e6\f\u00e6\u000e\u00e6\u17d8\u000b\u00e6\u0005\u00e6\u17da", + "\n\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6", + "\u0007\u00e6\u17e1\n\u00e6\f\u00e6\u000e\u00e6\u17e4\u000b\u00e6\u0005", + "\u00e6\u17e6\n\u00e6\u0003\u00e6\u0003\u00e6\u0005\u00e6\u17ea\n\u00e6", + "\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0007\u00e6\u17f0\n", + "\u00e6\f\u00e6\u000e\u00e6\u17f3\u000b\u00e6\u0005\u00e6\u17f5\n\u00e6", + "\u0003\u00e7\u0003\u00e7\u0005\u00e7\u17f9\n\u00e7\u0003\u00e7\u0005", + "\u00e7\u17fc\n\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7", + "\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7", + "\u0003\u00e7\u0003\u00e7\u0005\u00e7\u180a\n\u00e7\u0003\u00e7\u0003", + "\u00e7\u0005\u00e7\u180e\n\u00e7\u0003\u00e7\u0005\u00e7\u1811\n\u00e7", + "\u0003\u00e7\u0003\u00e7\u0005\u00e7\u1815\n\u00e7\u0003\u00e7\u0005", + "\u00e7\u1818\n\u00e7\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0005\u00e8", + "\u181d\n\u00e8\u0003\u00e8\u0005\u00e8\u1820\n\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0005\u00e8\u1826\n\u00e8\u0003\u00e8", + "\u0005\u00e8\u1829\n\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0007", + "\u00e8\u182e\n\u00e8\f\u00e8\u000e\u00e8\u1831\u000b\u00e8\u0003\u00e8", + "\u0005\u00e8\u1834\n\u00e8\u0005\u00e8\u1836\n\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0007\u00e8\u183c\n\u00e8\f\u00e8\u000e", + "\u00e8\u183f\u000b\u00e8\u0005\u00e8\u1841\n\u00e8\u0003\u00e8\u0003", + "\u00e8\u0005\u00e8\u1845\n\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8", + "\u0003\u00e9\u0003\u00e9\u0005\u00e9\u184c\n\u00e9\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0005\u00ea\u1851\n\u00ea\u0003\u00ea\u0005\u00ea", + "\u1854\n\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0007\u00ea\u185e\n\u00ea", + "\f\u00ea\u000e\u00ea\u1861\u000b\u00ea\u0005\u00ea\u1863\n\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0005\u00ea\u1869\n\u00ea", + "\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0007\u00ea\u186e\n\u00ea\f\u00ea", + "\u000e\u00ea\u1871\u000b\u00ea\u0003\u00ea\u0003\u00ea\u0005\u00ea\u1875", + "\n\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0005\u00ea\u187a\n\u00ea", + "\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00eb\u0003\u00eb\u0005\u00eb", + "\u1881\n\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0005\u00ed\u1888\n\u00ed\u0003\u00ed\u0005\u00ed\u188b\n\u00ed", + "\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed", + "\u0005\u00ed\u1893\n\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0007\u00ed\u1899\n\u00ed\f\u00ed\u000e\u00ed\u189c\u000b\u00ed", + "\u0005\u00ed\u189e\n\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0007\u00ed\u18a4\n\u00ed\f\u00ed\u000e\u00ed\u18a7\u000b\u00ed", + "\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ee\u0003\u00ee\u0003\u00ef", + "\u0003\u00ef\u0003\u00ef\u0005\u00ef\u18b1\n\u00ef\u0003\u00ef\u0005", + "\u00ef\u18b4\n\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef", + "\u0003\u00ef\u0003\u00ef\u0007\u00ef\u18bc\n\u00ef\f\u00ef\u000e\u00ef", + "\u18bf\u000b\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0005", + "\u00ef\u18c5\n\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0005\u00ef", + "\u18ca\n\u00ef\u0003\u00ef\u0005\u00ef\u18cd\n\u00ef\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0007\u00f0\u18d5", + "\n\u00f0\f\u00f0\u000e\u00f0\u18d8\u000b\u00f0\u0005\u00f0\u18da\n\u00f0", + "\u0003\u00f0\u0005\u00f0\u18dd\n\u00f0\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0005\u00f0\u18e5\n\u00f0", + "\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1", + "\u0003\u00f1\u0007\u00f1\u18ee\n\u00f1\f\u00f1\u000e\u00f1\u18f1\u000b", + "\u00f1\u0005\u00f1\u18f3\n\u00f1\u0003\u00f1\u0005\u00f1\u18f6\n\u00f1", + "\u0003\u00f1\u0003\u00f1\u0007\u00f1\u18fa\n\u00f1\f\u00f1\u000e\u00f1", + "\u18fd\u000b\u00f1\u0003\u00f1\u0003\u00f1\u0005\u00f1\u1901\n\u00f1", + "\u0003\u00f1\u0003\u00f1\u0005\u00f1\u1905\n\u00f1\u0003\u00f2\u0003", + "\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0007\u00f2\u190d", + "\n\u00f2\f\u00f2\u000e\u00f2\u1910\u000b\u00f2\u0005\u00f2\u1912\n\u00f2", + "\u0003\u00f2\u0005\u00f2\u1915\n\u00f2\u0003\u00f2\u0003\u00f2\u0007", + "\u00f2\u1919\n\u00f2\f\u00f2\u000e\u00f2\u191c\u000b\u00f2\u0003\u00f2", + "\u0003\u00f2\u0003\u00f2\u0005\u00f2\u1921\n\u00f2\u0003\u00f2\u0003", + "\u00f2\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0005\u00f3\u1929", + "\n\u00f3\u0003\u00f3\u0005\u00f3\u192c\n\u00f3\u0003\u00f3\u0003\u00f3", + "\u0005\u00f3\u1930\n\u00f3\u0003\u00f3\u0003\u00f3\u0005\u00f3\u1934", + "\n\u00f3\u0003\u00f3\u0005\u00f3\u1937\n\u00f3\u0003\u00f4\u0003\u00f4", + "\u0003\u00f4\u0005\u00f4\u193c\n\u00f4\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0005\u00f5\u194a\n\u00f5", + "\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6", + "\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6", + "\u0003\u00f6\u0003\u00f6\u0005\u00f6\u195a\n\u00f6\u0003\u00f6\u0003", + "\u00f6\u0005\u00f6\u195e\n\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6", + "\u0003\u00f6\u0005\u00f6\u1964\n\u00f6\u0005\u00f6\u1966\n\u00f6\u0003", + "\u00f6\u0005\u00f6\u1969\n\u00f6\u0003\u00f7\u0003\u00f7\u0005\u00f7", + "\u196d\n\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0005\u00f7\u1972", + "\n\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0005\u00f7\u1977\n\u00f7", + "\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8", + "\u0005\u00f8\u197f\n\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0005", + "\u00f8\u1984\n\u00f8\u0003\u00f8\u0007\u00f8\u1987\n\u00f8\f\u00f8\u000e", + "\u00f8\u198a\u000b\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0005\u00f8", + "\u198f\n\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0005\u00f8\u1994", + "\n\u00f8\u0003\u00f8\u0005\u00f8\u1997\n\u00f8\u0003\u00f9\u0003\u00f9", + "\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0007\u00f9\u199e\n\u00f9\f\u00f9", + "\u000e\u00f9\u19a1\u000b\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003", + "\u00f9\u0003\u00f9\u0007\u00f9\u19a8\n\u00f9\f\u00f9\u000e\u00f9\u19ab", + "\u000b\u00f9\u0005\u00f9\u19ad\n\u00f9\u0003\u00fa\u0003\u00fa\u0003", + "\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0005\u00fa\u19b6", + "\n\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0007\u00fa", + "\u19bc\n\u00fa\f\u00fa\u000e\u00fa\u19bf\u000b\u00fa\u0005\u00fa\u19c1", + "\n\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa", + "\u0005\u00fa\u19c8\n\u00fa\u0003\u00fa\u0005\u00fa\u19cb\n\u00fa\u0003", + "\u00fb\u0003\u00fb\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003", + "\u00fc\u0003\u00fc\u0005\u00fc\u19f9\n\u00fc\u0003\u00fc\u0003\u00fc", + "\u0005\u00fc\u19fd\n\u00fc\u0003\u00fc\u0005\u00fc\u1a00\n\u00fc\u0003", + "\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0005\u00fd\u1a06\n\u00fd", + "\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd", + "\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0005\u00fd\u1a12\n", + "\u00fd\u0005\u00fd\u1a14\n\u00fd\u0003\u00fd\u0005\u00fd\u1a17\n\u00fd", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0005\u00fe", + "\u1a30\n\u00fe\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003", + "\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0005\u00ff\u1a3b", + "\n\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u00ff", + "\u0003\u00ff\u0005\u00ff\u1a43\n\u00ff\u0003\u0100\u0003\u0100\u0003", + "\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0007\u0100\u1a4c", + "\n\u0100\f\u0100\u000e\u0100\u1a4f\u000b\u0100\u0007\u0100\u1a51\n\u0100", + "\f\u0100\u000e\u0100\u1a54\u000b\u0100\u0005\u0100\u1a56\n\u0100\u0003", + "\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0005", + "\u0101\u1a5e\n\u0101\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102", + "\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0005\u0103\u1a68\n", + "\u0103\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005", + "\u0104\u1a6f\n\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104", + "\u0003\u0104\u0005\u0104\u1a76\n\u0104\u0005\u0104\u1a78\n\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1a84\n\u0104", + "\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104", + "\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1a8f\n\u0104\u0003", + "\u0104\u0003\u0104\u0005\u0104\u1a93\n\u0104\u0003\u0104\u0003\u0104", + "\u0003\u0104\u0005\u0104\u1a98\n\u0104\u0003\u0104\u0005\u0104\u1a9b", + "\n\u0104\u0005\u0104\u1a9d\n\u0104\u0003\u0104\u0005\u0104\u1aa0\n\u0104", + "\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104", + "\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1aac\n", + "\u0104\u0005\u0104\u1aae\n\u0104\u0005\u0104\u1ab0\n\u0104\u0003\u0104", + "\u0005\u0104\u1ab3\n\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005", + "\u0104\u1ab8\n\u0104\u0003\u0104\u0005\u0104\u1abb\n\u0104\u0003\u0104", + "\u0003\u0104\u0003\u0104\u0005\u0104\u1ac0\n\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0005\u0104\u1aca\n\u0104\u0003\u0104\u0003\u0104\u0005\u0104", + "\u1ace\n\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1ad3", + "\n\u0104\u0003\u0104\u0005\u0104\u1ad6\n\u0104\u0005\u0104\u1ad8\n\u0104", + "\u0003\u0104\u0005\u0104\u1adb\n\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0005\u0104\u1ae7\n\u0104\u0005\u0104\u1ae9\n\u0104", + "\u0005\u0104\u1aeb\n\u0104\u0003\u0104\u0005\u0104\u1aee\n\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0005\u0104\u1af4\n\u0104", + "\u0003\u0105\u0003\u0105\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0106", + "\u0003\u0106\u0003\u0106\u0005\u0106\u1afe\n\u0106\u0003\u0107\u0003", + "\u0107\u0003\u0108\u0003\u0108\u0003\u0109\u0003\u0109\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0005\u010a\u1b12", + "\n\u010a\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0005\u010b", + "\u1b18\n\u010b\u0003\u010c\u0003\u010c\u0003\u010d\u0003\u010d\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010e\u0003\u010e\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u0110\u0003\u0110\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0005\u0111\u1b31\n\u0111\u0005\u0111\u1b33\n\u0111\u0003\u0112", + "\u0003\u0112\u0003\u0112\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0114", + "\u0003\u0114\u0003\u0115\u0003\u0115\u0003\u0116\u0003\u0116\u0003\u0117", + "\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0118\u0003\u0118\u0003\u0118", + "\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0005\u0118", + "\u1b4d\n\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0005", + "\u0118\u1b53\n\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118", + "\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0005\u0118", + "\u1b5e\n\u0118\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u0119\u0005\u0119\u1b66\n\u0119\u0003\u0119\u0005\u0119", + "\u1b69\n\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011b\u0003", + "\u011b\u0003\u011b\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003", + "\u011c\u0003\u011c\u0005\u011c\u1b77\n\u011c\u0003\u011d\u0003\u011d", + "\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0005\u011d\u1b7f\n", + "\u011d\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0005", + "\u011e\u1b86\n\u011e\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f", + "\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f", + "\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f", + "\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0005\u011f", + "\u1b9d\n\u011f\u0003\u0120\u0003\u0120\u0003\u0120\u0003\u0120\u0003", + "\u0120\u0003\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0005\u0121\u1baa\n\u0121\u0003\u0122\u0003\u0122\u0003\u0122", + "\u0003\u0122\u0005\u0122\u1bb0\n\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0007\u0122\u1bb5\n\u0122\f\u0122\u000e\u0122\u1bb8\u000b\u0122", + "\u0003\u0122\u0003\u0122\u0003\u0122\u0007\u0122\u1bbd\n\u0122\f\u0122", + "\u000e\u0122\u1bc0\u000b\u0122\u0005\u0122\u1bc2\n\u0122\u0003\u0122", + "\u0005\u0122\u1bc5\n\u0122\u0003\u0123\u0003\u0123\u0003\u0123\u0003", + "\u0123\u0003\u0124\u0003\u0124\u0003\u0124\u0005\u0124\u1bce\n\u0124", + "\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0125\u0003\u0125", + "\u0003\u0125\u0003\u0125\u0005\u0125\u1bd8\n\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0007\u0125\u1bdd\n\u0125\f\u0125\u000e\u0125\u1be0", + "\u000b\u0125\u0003\u0125\u0005\u0125\u1be3\n\u0125\u0003\u0126\u0003", + "\u0126\u0005\u0126\u1be7\n\u0126\u0003\u0127\u0003\u0127\u0003\u0127", + "\u0003\u0127\u0005\u0127\u1bed\n\u0127\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0007\u0127\u1bf2\n\u0127\f\u0127\u000e\u0127\u1bf5\u000b\u0127", + "\u0003\u0127\u0005\u0127\u1bf8\n\u0127\u0003\u0128\u0003\u0128\u0003", + "\u0128\u0003\u0128\u0005\u0128\u1bfe\n\u0128\u0003\u0128\u0003\u0128", + "\u0003\u0128\u0007\u0128\u1c03\n\u0128\f\u0128\u000e\u0128\u1c06\u000b", + "\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0005\u0128\u1c0c", + "\n\u0128\u0003\u0128\u0005\u0128\u1c0f\n\u0128\u0003\u0129\u0003\u0129", + "\u0003\u0129\u0003\u0129\u0005\u0129\u1c15\n\u0129\u0003\u0129\u0003", + "\u0129\u0003\u0129\u0007\u0129\u1c1a\n\u0129\f\u0129\u000e\u0129\u1c1d", + "\u000b\u0129\u0003\u0129\u0005\u0129\u1c20\n\u0129\u0003\u012a\u0003", + "\u012a\u0003\u012a\u0005\u012a\u1c25\n\u012a\u0003\u012a\u0003\u012a", + "\u0003\u012a\u0005\u012a\u1c2a\n\u012a\u0003\u012a\u0006\u012a\u1c2d", + "\n\u012a\r\u012a\u000e\u012a\u1c2e\u0003\u012a\u0003\u012a\u0003\u012b", + "\u0003\u012b\u0003\u012b\u0003\u012b\u0005\u012b\u1c37\n\u012b\u0003", + "\u012b\u0003\u012b\u0005\u012b\u1c3b\n\u012b\u0003\u012c\u0003\u012c", + "\u0003\u012c\u0003\u012c\u0005\u012c\u1c41\n\u012c\u0003\u012c\u0003", + "\u012c\u0003\u012c\u0007\u012c\u1c46\n\u012c\f\u012c\u000e\u012c\u1c49", + "\u000b\u012c\u0003\u012c\u0005\u012c\u1c4c\n\u012c\u0003\u012d\u0003", + "\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0005", + "\u012d\u1c55\n\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d", + "\u0003\u012d\u0003\u012d\u0005\u012d\u1c5d\n\u012d\u0003\u012e\u0003", + "\u012e\u0003\u012e\u0003\u012e\u0005\u012e\u1c63\n\u012e\u0003\u012e", + "\u0003\u012e\u0003\u012f\u0003\u012f\u0005\u012f\u1c69\n\u012f\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0005\u0131\u1c7a\n\u0131\u0003\u0131", + "\u0003\u0131\u0005\u0131\u1c7e\n\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u1c86\n\u0132", + "\u0003\u0132\u0003\u0132\u0005\u0132\u1c8a\n\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0007\u0132\u1c90\n\u0132\f\u0132\u000e", + "\u0132\u1c93\u000b\u0132\u0003\u0132\u0005\u0132\u1c96\n\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u1c9b\n\u0132\u0003\u0132", + "\u0003\u0132\u0005\u0132\u1c9f\n\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u1ca6\n\u0132\u0003\u0132", + "\u0003\u0132\u0003\u0132\u0003\u0132\u0005\u0132\u1cac\n\u0132\u0005", + "\u0132\u1cae\n\u0132\u0003\u0133\u0003\u0133\u0005\u0133\u1cb2\n\u0133", + "\u0003\u0133\u0003\u0133\u0005\u0133\u1cb6\n\u0133\u0003\u0133\u0003", + "\u0133\u0005\u0133\u1cba\n\u0133\u0003\u0133\u0005\u0133\u1cbd\n\u0133", + "\u0003\u0133\u0003\u0133\u0005\u0133\u1cc1\n\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0133\u0003\u0133\u0005\u0133\u1cc7\n\u0133\u0003\u0133", + "\u0003\u0133\u0005\u0133\u1ccb\n\u0133\u0005\u0133\u1ccd\n\u0133\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1cd4", + "\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0007\u0134\u1cd9\n\u0134", + "\f\u0134\u000e\u0134\u1cdc\u000b\u0134\u0005\u0134\u1cde\n\u0134\u0003", + "\u0134\u0005\u0134\u1ce1\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134", + "\u0007\u0134\u1ce6\n\u0134\f\u0134\u000e\u0134\u1ce9\u000b\u0134\u0003", + "\u0134\u0003\u0134\u0005\u0134\u1ced\n\u0134\u0003\u0134\u0006\u0134", + "\u1cf0\n\u0134\r\u0134\u000e\u0134\u1cf1\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1cf6\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134", + "\u0005\u0134\u1cfc\n\u0134\u0006\u0134\u1cfe\n\u0134\r\u0134\u000e\u0134", + "\u1cff\u0005\u0134\u1d02\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134", + "\u0005\u0134\u1d07\n\u0134\u0003\u0134\u0006\u0134\u1d0a\n\u0134\r\u0134", + "\u000e\u0134\u1d0b\u0006\u0134\u1d0e\n\u0134\r\u0134\u000e\u0134\u1d0f", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d15\n\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d1b\n\u0134", + "\u0006\u0134\u1d1d\n\u0134\r\u0134\u000e\u0134\u1d1e\u0006\u0134\u1d21", + "\n\u0134\r\u0134\u000e\u0134\u1d22\u0005\u0134\u1d25\n\u0134\u0003\u0134", + "\u0003\u0134\u0005\u0134\u1d29\n\u0134\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1d2d\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d31\n\u0134", + "\u0003\u0134\u0003\u0134\u0005\u0134\u1d35\n\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d3b\n\u0134\u0003\u0134", + "\u0005\u0134\u1d3e\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0005\u0134\u1d44\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134", + "\u1d48\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d4c\n\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d52\n\u0134", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d58\n", + "\u0134\u0005\u0134\u1d5a\n\u0134\u0003\u0134\u0005\u0134\u1d5d\n\u0134", + "\u0003\u0134\u0003\u0134\u0005\u0134\u1d61\n\u0134\u0003\u0134\u0003", + "\u0134\u0005\u0134\u1d65\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134", + "\u1d69\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1d6f\n\u0134\u0003\u0134\u0005\u0134\u1d72\n\u0134\u0003\u0134", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d78\n\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d7e\n\u0134", + "\u0003\u0134\u0005\u0134\u1d81\n\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0005\u0134\u1d87\n\u0134\u0003\u0134\u0005\u0134", + "\u1d8a\n\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1d90\n\u0134\u0003\u0134\u0005\u0134\u1d93\n\u0134\u0003\u0134", + "\u0003\u0134\u0005\u0134\u1d97\n\u0134\u0003\u0134\u0003\u0134\u0005", + "\u0134\u1d9b\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1d9f\n\u0134", + "\u0003\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1da4\n\u0134\u0003", + "\u0134\u0005\u0134\u1da7\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134", + "\u1dab\n\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1daf\n\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0134\u0003\u0134\u0005\u0134\u1dc0\n\u0134\u0007\u0134", + "\u1dc2\n\u0134\f\u0134\u000e\u0134\u1dc5\u000b\u0134\u0005\u0134\u1dc7", + "\n\u0134\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135", + "\u0005\u0135\u1dce\n\u0135\u0003\u0135\u0006\u0135\u1dd1\n\u0135\r\u0135", + "\u000e\u0135\u1dd2\u0003\u0135\u0003\u0135\u0005\u0135\u1dd7\n\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1ddd\n", + "\u0135\u0006\u0135\u1ddf\n\u0135\r\u0135\u000e\u0135\u1de0\u0005\u0135", + "\u1de3\n\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1de8", + "\n\u0135\u0003\u0135\u0006\u0135\u1deb\n\u0135\r\u0135\u000e\u0135\u1dec", + "\u0006\u0135\u1def\n\u0135\r\u0135\u000e\u0135\u1df0\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0005\u0135\u1df6\n\u0135\u0003\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1dfc\n\u0135\u0006\u0135\u1dfe", + "\n\u0135\r\u0135\u000e\u0135\u1dff\u0006\u0135\u1e02\n\u0135\r\u0135", + "\u000e\u0135\u1e03\u0005\u0135\u1e06\n\u0135\u0003\u0135\u0003\u0135", + "\u0005\u0135\u1e0a\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e0e", + "\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e12\n\u0135\u0003\u0135", + "\u0003\u0135\u0005\u0135\u1e16\n\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0005\u0135\u1e1c\n\u0135\u0003\u0135\u0005\u0135", + "\u1e1f\n\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005", + "\u0135\u1e25\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e29\n\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1e2d\n\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e33\n\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e39\n\u0135\u0005", + "\u0135\u1e3b\n\u0135\u0003\u0135\u0005\u0135\u1e3e\n\u0135\u0003\u0135", + "\u0003\u0135\u0005\u0135\u1e42\n\u0135\u0003\u0135\u0003\u0135\u0005", + "\u0135\u1e46\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e4a\n\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e50\n", + "\u0135\u0003\u0135\u0005\u0135\u1e53\n\u0135\u0003\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1e59\n\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e5f\n\u0135\u0003\u0135", + "\u0005\u0135\u1e62\n\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0005\u0135\u1e68\n\u0135\u0003\u0135\u0005\u0135\u1e6b\n\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e71\n", + "\u0135\u0003\u0135\u0005\u0135\u1e74\n\u0135\u0003\u0135\u0003\u0135", + "\u0005\u0135\u1e78\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e7c", + "\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e80\n\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1e85\n\u0135\u0003\u0135\u0005", + "\u0135\u1e88\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e8c\n\u0135", + "\u0003\u0135\u0003\u0135\u0005\u0135\u1e90\n\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e96\n\u0135\u0003\u0135", + "\u0005\u0135\u1e99\n\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1e9d", + "\n\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135", + "\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0005\u0135\u1eae\n", + "\u0135\u0007\u0135\u1eb0\n\u0135\f\u0135\u000e\u0135\u1eb3\u000b\u0135", + "\u0005\u0135\u1eb5\n\u0135\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0005\u0136\u1ec3\n\u0136\u0003\u0136", + "\u0003\u0136\u0003\u0136\u0003\u0136\u0005\u0136\u1ec9\n\u0136\u0003", + "\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0005", + "\u0136\u1ed1\n\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136", + "\u0003\u0136\u0006\u0136\u1ed8\n\u0136\r\u0136\u000e\u0136\u1ed9\u0003", + "\u0136\u0005\u0136\u1edd\n\u0136\u0003\u0137\u0003\u0137\u0003\u0137", + "\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137", + "\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0138\u0003\u0138", + "\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138", + "\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138", + "\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0005\u0139\u1efe\n", + "\u0139\u0003\u013a\u0003\u013a\u0005\u013a\u1f02\n\u013a\u0003\u013a", + "\u0003\u013a\u0005\u013a\u1f06\n\u013a\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013b\u0003\u013b\u0005\u013b\u1f0d\n\u013b\u0003\u013c", + "\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013d\u0003\u013d\u0003\u013d", + "\u0003\u013e\u0003\u013e\u0005\u013e\u1f18\n\u013e\u0003\u013e\u0003", + "\u013e\u0005\u013e\u1f1c\n\u013e\u0003\u013e\u0003\u013e\u0003\u013e", + "\u0007\u013e\u1f21\n\u013e\f\u013e\u000e\u013e\u1f24\u000b\u013e\u0005", + "\u013e\u1f26\n\u013e\u0003\u013e\u0005\u013e\u1f29\n\u013e\u0003\u013e", + "\u0003\u013e\u0003\u013e\u0003\u013e\u0007\u013e\u1f2f\n\u013e\f\u013e", + "\u000e\u013e\u1f32\u000b\u013e\u0003\u013e\u0003\u013e\u0005\u013e\u1f36", + "\n\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0005\u013e\u1f3b\n\u013e", + "\u0003\u013e\u0005\u013e\u1f3e\n\u013e\u0005\u013e\u1f40\n\u013e\u0003", + "\u013f\u0003\u013f\u0005\u013f\u1f44\n\u013f\u0003\u013f\u0003\u013f", + "\u0005\u013f\u1f48\n\u013f\u0003\u013f\u0005\u013f\u1f4b\n\u013f\u0003", + "\u013f\u0003\u013f\u0005\u013f\u1f4f\n\u013f\u0003\u0140\u0003\u0140", + "\u0003\u0141\u0003\u0141\u0005\u0141\u1f55\n\u0141\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0005\u0141\u1f5a\n\u0141\u0003\u0141\u0003\u0141", + "\u0003\u0141\u0003\u0141\u0003\u0141\u0005\u0141\u1f61\n\u0141\u0005", + "\u0141\u1f63\n\u0141\u0003\u0141\u0003\u0141\u0005\u0141\u1f67\n\u0141", + "\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0007\u0141\u1f6d\n", + "\u0141\f\u0141\u000e\u0141\u1f70\u000b\u0141\u0003\u0141\u0003\u0141", + "\u0003\u0141\u0005\u0141\u1f75\n\u0141\u0003\u0141\u0003\u0141\u0005", + "\u0141\u1f79\n\u0141\u0003\u0141\u0005\u0141\u1f7c\n\u0141\u0003\u0141", + "\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141", + "\u0005\u0141\u1f85\n\u0141\u0003\u0141\u0005\u0141\u1f88\n\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0005\u0141\u1f8e\n\u0141", + "\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0005\u0142", + "\u1f95\n\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0005\u0142\u1f9a", + "\n\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142", + "\u0003\u0142\u0005\u0142\u1fa2\n\u0142\u0003\u0143\u0003\u0143\u0003", + "\u0143\u0005\u0143\u1fa7\n\u0143\u0003\u0143\u0003\u0143\u0003\u0143", + "\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143\u0003\u0143", + "\u0003\u0143\u0005\u0143\u1fb3\n\u0143\u0005\u0143\u1fb5\n\u0143\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0005\u0144\u1fc0\n\u0144\u0003\u0145", + "\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0005\u0145\u1fc7\n", + "\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0145\u0007\u0145\u1fcf\n\u0145\f\u0145\u000e\u0145\u1fd2\u000b\u0145", + "\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0147\u0003\u0147", + "\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147", + "\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147", + "\u0003\u0147\u0003\u0147\u0005\u0147\u1fe8\n\u0147\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0005\u0148\u1ff5\n\u0148", + "\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149", + "\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149", + "\u0003\u0149\u0003\u0149\u0005\u0149\u2005\n\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0005\u0149\u200a\n\u0149\u0003\u0149\u0003\u0149", + "\u0003\u0149\u0003\u0149\u0003\u0149\u0005\u0149\u2011\n\u0149\u0003", + "\u0149\u0005\u0149\u2014\n\u0149\u0006\u0149\u2016\n\u0149\r\u0149\u000e", + "\u0149\u2017\u0005\u0149\u201a\n\u0149\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0005\u014a\u202b\n\u014a\u0003\u014b\u0003\u014b\u0003\u014c", + "\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c", + "\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0005\u014c\u203a\n", + "\u014c\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0005\u014d\u2042\n\u014d\u0003\u014d\u0003\u014d\u0003\u014d", + "\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0005\u014d\u204b\n", + "\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0005\u014d\u2053\n\u014d\u0003\u014e\u0003\u014e\u0003\u014e", + "\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0005\u014e\u205c\n", + "\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0003", + "\u014e\u0003\u014e\u0003\u014e\u0003\u014e\u0005\u014e\u2067\n\u014e", + "\u0003\u014e\u0003\u014e\u0005\u014e\u206b\n\u014e\u0005\u014e\u206d", + "\n\u014e\u0005\u014e\u206f\n\u014e\u0003\u014f\u0003\u014f\u0003\u014f", + "\u0003\u014f\u0005\u014f\u2075\n\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0005\u014f\u207a\n\u014f\u0003\u014f\u0003\u014f\u0003\u014f", + "\u0003\u014f\u0003\u014f\u0005\u014f\u2081\n\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0005\u014f\u208e\n\u014f", + "\u0005\u014f\u2090\n\u014f\u0005\u014f\u2092\n\u014f\u0003\u014f\u0005", + "\u014f\u2095\n\u014f\u0003\u014f\u0005\u014f\u2098\n\u014f\u0003\u0150", + "\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0005\u0150\u209f\n", + "\u0150\u0003\u0150\u0005\u0150\u20a2\n\u0150\u0003\u0150\u0003\u0150", + "\u0003\u0150\u0003\u0150\u0005\u0150\u20a8\n\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0005\u0150\u20ad\n\u0150\u0005\u0150\u20af\n\u0150", + "\u0003\u0150\u0005\u0150\u20b2\n\u0150\u0003\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0005\u0150\u20b8\n\u0150\u0003\u0150\u0003\u0150", + "\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0005\u0150\u20c0\n", + "\u0150\u0005\u0150\u20c2\n\u0150\u0003\u0150\u0005\u0150\u20c5\n\u0150", + "\u0003\u0150\u0003\u0150\u0005\u0150\u20c9\n\u0150\u0003\u0150\u0005", + "\u0150\u20cc\n\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150", + "\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0005\u0150\u20d6\n", + "\u0150\u0003\u0150\u0005\u0150\u20d9\n\u0150\u0003\u0150\u0003\u0150", + "\u0005\u0150\u20dd\n\u0150\u0003\u0150\u0005\u0150\u20e0\n\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0005\u0150\u20e6\n\u0150", + "\u0003\u0150\u0005\u0150\u20e9\n\u0150\u0005\u0150\u20eb\n\u0150\u0003", + "\u0151\u0003\u0151\u0005\u0151\u20ef\n\u0151\u0003\u0152\u0003\u0152", + "\u0003\u0152\u0005\u0152\u20f4\n\u0152\u0003\u0153\u0003\u0153\u0005", + "\u0153\u20f8\n\u0153\u0003\u0154\u0003\u0154\u0003\u0154\u0005\u0154", + "\u20fd\n\u0154\u0003\u0155\u0003\u0155\u0003\u0155\u0005\u0155\u2102", + "\n\u0155\u0003\u0156\u0003\u0156\u0003\u0156\u0003\u0156\u0003\u0156", + "\u0003\u0156\u0005\u0156\u210a\n\u0156\u0003\u0156\u0003\u0156\u0005", + "\u0156\u210e\n\u0156\u0003\u0156\u0005\u0156\u2111\n\u0156\u0003\u0157", + "\u0003\u0157\u0003\u0157\u0005\u0157\u2116\n\u0157\u0003\u0158\u0003", + "\u0158\u0003\u0158\u0003\u0158\u0003\u0159\u0003\u0159\u0005\u0159\u211e", + "\n\u0159\u0003\u0159\u0003\u0159\u0003\u0159\u0005\u0159\u2123\n\u0159", + "\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015b", + "\u0003\u015b\u0003\u015b\u0005\u015b\u212d\n\u015b\u0003\u015b\u0003", + "\u015b\u0003\u015b\u0003\u015c\u0003\u015c\u0003\u015c\u0003\u015c\u0003", + "\u015d\u0003\u015d\u0005\u015d\u2138\n\u015d\u0003\u015d\u0007\u015d", + "\u213b\n\u015d\f\u015d\u000e\u015d\u213e\u000b\u015d\u0003\u015e\u0003", + "\u015e\u0003\u015e\u0005\u015e\u2143\n\u015e\u0003\u015f\u0003\u015f", + "\u0003\u015f\u0003\u015f\u0005\u015f\u2149\n\u015f\u0003\u015f\u0003", + "\u015f\u0005\u015f\u214d\n\u015f\u0003\u015f\u0005\u015f\u2150\n\u015f", + "\u0003\u015f\u0003\u015f\u0005\u015f\u2154\n\u015f\u0003\u015f\u0003", + "\u015f\u0005\u015f\u2158\n\u015f\u0003\u015f\u0003\u015f\u0003\u015f", + "\u0003\u015f\u0003\u015f\u0003\u015f\u0005\u015f\u2160\n\u015f\u0003", + "\u015f\u0003\u015f\u0003\u015f\u0005\u015f\u2165\n\u015f\u0005\u015f", + "\u2167\n\u015f\u0003\u015f\u0005\u015f\u216a\n\u015f\u0003\u015f\u0007", + "\u015f\u216d\n\u015f\f\u015f\u000e\u015f\u2170\u000b\u015f\u0003\u0160", + "\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0003\u0160\u0005\u0160", + "\u2178\n\u0160\u0003\u0161\u0003\u0161\u0005\u0161\u217c\n\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0005\u0161\u2181\n\u0161\u0003\u0161", + "\u0005\u0161\u2184\n\u0161\u0003\u0161\u0005\u0161\u2187\n\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0005\u0161\u218d\n\u0161", + "\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003\u0161", + "\u0005\u0161\u2195\n\u0161\u0003\u0161\u0003\u0161\u0003\u0161\u0003", + "\u0161\u0003\u0161\u0003\u0161\u0005\u0161\u219d\n\u0161\u0003\u0161", + "\u0005\u0161\u21a0\n\u0161\u0003\u0161\u0005\u0161\u21a3\n\u0161\u0003", + "\u0162\u0003\u0162\u0005\u0162\u21a7\n\u0162\u0003\u0162\u0003\u0162", + "\u0003\u0162\u0005\u0162\u21ac\n\u0162\u0003\u0162\u0005\u0162\u21af", + "\n\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0005\u0162", + "\u21b5\n\u0162\u0003\u0162\u0003\u0162\u0005\u0162\u21b9\n\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0005\u0162\u21bf\n\u0162", + "\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162", + "\u0005\u0162\u21c7\n\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0006\u0162\u21cd\n\u0162\r\u0162\u000e\u0162\u21ce\u0003\u0162", + "\u0005\u0162\u21d2\n\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0162\u0003\u0162\u0003\u0162\u0003\u0162\u0005\u0162\u21e1\n\u0162", + "\u0003\u0162\u0005\u0162\u21e4\n\u0162\u0003\u0162\u0005\u0162\u21e7", + "\n\u0162\u0005\u0162\u21e9\n\u0162\u0003\u0163\u0003\u0163\u0003\u0163", + "\u0003\u0163\u0003\u0163\u0003\u0163\u0003\u0163\u0003\u0163\u0003\u0163", + "\u0005\u0163\u21f4\n\u0163\u0003\u0164\u0003\u0164\u0003\u0164\u0003", + "\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0164\u0005", + "\u0164\u21ff\n\u0164\u0003\u0165\u0003\u0165\u0003\u0165\u0003\u0165", + "\u0003\u0165\u0007\u0165\u2206\n\u0165\f\u0165\u000e\u0165\u2209\u000b", + "\u0165\u0003\u0165\u0003\u0165\u0003\u0166\u0003\u0166\u0003\u0166\u0003", + "\u0166\u0003\u0166\u0005\u0166\u2212\n\u0166\u0003\u0167\u0003\u0167", + "\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167", + "\u0005\u0167\u221c\n\u0167\u0005\u0167\u221e\n\u0167\u0005\u0167\u2220", + "\n\u0167\u0003\u0167\u0005\u0167\u2223\n\u0167\u0003\u0167\u0005\u0167", + "\u2226\n\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003", + "\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0003\u0167\u0005\u0167\u2231", + "\n\u0167\u0005\u0167\u2233\n\u0167\u0005\u0167\u2235\n\u0167\u0003\u0167", + "\u0005\u0167\u2238\n\u0167\u0003\u0168\u0007\u0168\u223b\n\u0168\f\u0168", + "\u000e\u0168\u223e\u000b\u0168\u0003\u0168\u0003\u0168\u0003\u0168\u0003", + "\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0003\u0169\u0005\u0169\u2248", + "\n\u0169\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a", + "\u0003\u016a\u0003\u016a\u0005\u016a\u2251\n\u016a\u0003\u016a\u0005", + "\u016a\u2254\n\u016a\u0003\u016a\u0005\u016a\u2257\n\u016a\u0003\u016a", + "\u0003\u016a\u0003\u016a\u0003\u016a\u0003\u016a\u0007\u016a\u225e\n", + "\u016a\f\u016a\u000e\u016a\u2261\u000b\u016a\u0005\u016a\u2263\n\u016a", + "\u0003\u016a\u0005\u016a\u2266\n\u016a\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0005\u016b\u226d\n\u016b\u0003\u016b", + "\u0005\u016b\u2270\n\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0005\u016b\u227f\n\u016b", + "\u0003\u016b\u0005\u016b\u2282\n\u016b\u0003\u016b\u0003\u016b\u0003", + "\u016b\u0003\u016b\u0003\u016b\u0005\u016b\u2289\n\u016b\u0003\u016b", + "\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b", + "\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b\u0003\u016b", + "\u0003\u016b\u0005\u016b\u2299\n\u016b\u0003\u016c\u0003\u016c\u0005", + "\u016c\u229d\n\u016c\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d", + "\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0005\u016d\u22a7\n", + "\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003", + "\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003", + "\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0003\u016d\u0007", + "\u016d\u22ba\n\u016d\f\u016d\u000e\u016d\u22bd\u000b\u016d\u0003\u016e", + "\u0003\u016e\u0003\u016e\u0003\u016e\u0005\u016e\u22c3\n\u016e\u0003", + "\u016f\u0003\u016f\u0003\u016f\u0006\u016f\u22c8\n\u016f\r\u016f\u000e", + "\u016f\u22c9\u0003\u016f\u0003\u016f\u0005\u016f\u22ce\n\u016f\u0003", + "\u016f\u0003\u016f\u0003\u016f\u0003\u016f\u0006\u016f\u22d4\n\u016f", + "\r\u016f\u000e\u016f\u22d5\u0003\u016f\u0003\u016f\u0005\u016f\u22da", + "\n\u016f\u0003\u016f\u0003\u016f\u0005\u016f\u22de\n\u016f\u0003\u0170", + "\u0003\u0170\u0003\u0170\u0003\u0170\u0005\u0170\u22e4\n\u0170\u0003", + "\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003", + "\u0171\u0003\u0171\u0005\u0171\u22ee\n\u0171\u0003\u0172\u0003\u0172", + "\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172\u0003\u0172", + "\u0005\u0172\u22f8\n\u0172\u0003\u0173\u0003\u0173\u0003\u0174\u0003", + "\u0174\u0003\u0174\u0005\u0174\u22ff\n\u0174\u0003\u0174\u0003\u0174", + "\u0003\u0174\u0007\u0174\u2304\n\u0174\f\u0174\u000e\u0174\u2307\u000b", + "\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003\u0174\u0003", + "\u0174\u0005\u0174\u230f\n\u0174\u0003\u0174\u0003\u0174\u0003\u0174", + "\u0003\u0174\u0003\u0174\u0005\u0174\u2316\n\u0174\u0003\u0175\u0003", + "\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0005\u0175\u231d\n\u0175", + "\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0175\u0003\u0176", + "\u0003\u0176\u0005\u0176\u2326\n\u0176\u0003\u0176\u0003\u0176\u0005", + "\u0176\u232a\n\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176", + "\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0005\u0176\u2334\n", + "\u0176\u0003\u0177\u0003\u0177\u0003\u0177\u0007\u0177\u2339\n\u0177", + "\f\u0177\u000e\u0177\u233c\u000b\u0177\u0003\u0178\u0003\u0178\u0003", + "\u0178\u0007\u0178\u2341\n\u0178\f\u0178\u000e\u0178\u2344\u000b\u0178", + "\u0003\u0179\u0003\u0179\u0003\u0179\u0007\u0179\u2349\n\u0179\f\u0179", + "\u000e\u0179\u234c\u000b\u0179\u0003\u017a\u0005\u017a\u234f\n\u017a", + "\u0003\u017a\u0003\u017a\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0003\u017b\u0003\u017b\u0005\u017b\u2365\n\u017b\u0003\u017b\u0003", + "\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0005", + "\u017b\u236e\n\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0005\u017b\u2374\n\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003", + "\u017b\u0005\u017b\u237a\n\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0003\u017b\u0005\u017b\u2380\n\u017b\u0003\u017b\u0003\u017b\u0003", + "\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b\u0005", + "\u017b\u238a\n\u017b\u0003\u017c\u0003\u017c\u0003\u017c\u0003\u017c", + "\u0003\u017c\u0005\u017c\u2391\n\u017c\u0003\u017c\u0007\u017c\u2394", + "\n\u017c\f\u017c\u000e\u017c\u2397\u000b\u017c\u0003\u017d\u0003\u017d", + "\u0005\u017d\u239b\n\u017d\u0003\u017d\u0003\u017d\u0005\u017d\u239f", + "\n\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d\u0003\u017d", + "\u0005\u017d\u23a6\n\u017d\u0003\u017e\u0003\u017e\u0005\u017e\u23aa", + "\n\u017e\u0003\u017e\u0005\u017e\u23ad\n\u017e\u0003\u017e\u0003\u017e", + "\u0003\u017e\u0005\u017e\u23b2\n\u017e\u0003\u017e\u0003\u017e\u0005", + "\u017e\u23b6\n\u017e\u0003\u017e\u0003\u017e\u0005\u017e\u23ba\n\u017e", + "\u0003\u017e\u0003\u017e\u0003\u017e\u0005\u017e\u23bf\n\u017e\u0003", + "\u017e\u0003\u017e\u0003\u017e\u0007\u017e\u23c4\n\u017e\f\u017e\u000e", + "\u017e\u23c7\u000b\u017e\u0005\u017e\u23c9\n\u017e\u0003\u017e\u0003", + "\u017e\u0005\u017e\u23cd\n\u017e\u0003\u017f\u0003\u017f\u0003\u017f", + "\u0005\u017f\u23d2\n\u017f\u0003\u017f\u0003\u017f\u0005\u017f\u23d6", + "\n\u017f\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180\u0003\u0180", + "\u0003\u0180\u0003\u0180\u0005\u0180\u23df\n\u0180\u0003\u0181\u0003", + "\u0181\u0003\u0181\u0003\u0181\u0003\u0181\u0005\u0181\u23e6\n\u0181", + "\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0007\u0182", + "\u23ed\n\u0182\f\u0182\u000e\u0182\u23f0\u000b\u0182\u0003\u0182\u0003", + "\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003\u0182\u0003", + "\u0182\u0003\u0182\u0005\u0182\u23fb\n\u0182\u0005\u0182\u23fd\n\u0182", + "\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183", + "\u0003\u0183\u0003\u0183\u0005\u0183\u2407\n\u0183\u0003\u0183\u0005", + "\u0183\u240a\n\u0183\u0003\u0183\u0007\u0183\u240d\n\u0183\f\u0183\u000e", + "\u0183\u2410\u000b\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183", + "\u0003\u0183\u0003\u0183\u0005\u0183\u2418\n\u0183\u0005\u0183\u241a", + "\n\u0183\u0005\u0183\u241c\n\u0183\u0003\u0183\u0003\u0183\u0003\u0183", + "\u0005\u0183\u2421\n\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003", + "\u0183\u0007\u0183\u2427\n\u0183\f\u0183\u000e\u0183\u242a\u000b\u0183", + "\u0003\u0183\u0003\u0183\u0005\u0183\u242e\n\u0183\u0003\u0183\u0003", + "\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0005\u0183\u2436", + "\n\u0183\u0003\u0183\u0007\u0183\u2439\n\u0183\f\u0183\u000e\u0183\u243c", + "\u000b\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0005\u0183\u2441\n", + "\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003\u0183\u0003", + "\u0183\u0003\u0183\u0003\u0183\u0005\u0183\u244b\n\u0183\u0005\u0183", + "\u244d\n\u0183\u0003\u0183\u0003\u0183\u0005\u0183\u2451\n\u0183\u0003", + "\u0183\u0003\u0183\u0005\u0183\u2455\n\u0183\u0005\u0183\u2457\n\u0183", + "\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184\u0003\u0184", + "\u0003\u0184\u0005\u0184\u2460\n\u0184\u0005\u0184\u2462\n\u0184\u0003", + "\u0185\u0003\u0185\u0005\u0185\u2466\n\u0185\u0003\u0186\u0003\u0186", + "\u0003\u0187\u0003\u0187\u0003\u0187\u0003\u0187\u0003\u0187\u0007\u0187", + "\u246f\n\u0187\f\u0187\u000e\u0187\u2472\u000b\u0187\u0003\u0187\u0003", + "\u0187\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0007\u0188\u2491\n\u0188", + "\f\u0188\u000e\u0188\u2494\u000b\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003", + "\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0003\u0188\u0005\u0188\u24a3", + "\n\u0188\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189\u0003\u0189", + "\u0005\u0189\u24aa\n\u0189\u0005\u0189\u24ac\n\u0189\u0003\u018a\u0003", + "\u018a\u0003\u018a\u0007\u018a\u24b1\n\u018a\f\u018a\u000e\u018a\u24b4", + "\u000b\u018a\u0003\u018b\u0003\u018b\u0003\u018b\u0003\u018b\u0007\u018b", + "\u24ba\n\u018b\f\u018b\u000e\u018b\u24bd\u000b\u018b\u0003\u018b\u0003", + "\u018b\u0003\u018c\u0003\u018c\u0003\u018c\u0005\u018c\u24c4\n\u018c", + "\u0003\u018c\u0003\u018c\u0003\u018d\u0003\u018d\u0003\u018d\u0005\u018d", + "\u24cb\n\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003\u018d\u0003", + "\u018d\u0005\u018d\u24d2\n\u018d\u0003\u018d\u0005\u018d\u24d5\n\u018d", + "\u0003\u018d\u0005\u018d\u24d8\n\u018d\u0003\u018e\u0003\u018e\u0003", + "\u018e\u0003\u018e\u0003\u018e\u0005\u018e\u24df\n\u018e\u0003\u018e", + "\u0003\u018e\u0003\u018e\u0003\u018e\u0003\u018e\u0005\u018e\u24e6\n", + "\u018e\u0003\u018e\u0005\u018e\u24e9\n\u018e\u0005\u018e\u24eb\n\u018e", + "\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f\u0003\u018f", + "\u0005\u018f\u24f3\n\u018f\u0005\u018f\u24f5\n\u018f\u0003\u0190\u0003", + "\u0190\u0003\u0190\u0003\u0190\u0005\u0190\u24fb\n\u0190\u0003\u0191", + "\u0003\u0191\u0003\u0191\u0007\u0191\u2500\n\u0191\f\u0191\u000e\u0191", + "\u2503\u000b\u0191\u0003\u0192\u0003\u0192\u0003\u0192\u0003\u0192\u0003", + "\u0192\u0005\u0192\u250a\n\u0192\u0003\u0193\u0003\u0193\u0007\u0193", + "\u250e\n\u0193\f\u0193\u000e\u0193\u2511\u000b\u0193\u0003\u0194\u0003", + "\u0194\u0005\u0194\u2515\n\u0194\u0003\u0194\u0003\u0194\u0005\u0194", + "\u2519\n\u0194\u0003\u0194\u0003\u0194\u0005\u0194\u251d\n\u0194\u0003", + "\u0194\u0003\u0194\u0003\u0194\u0005\u0194\u2522\n\u0194\u0005\u0194", + "\u2524\n\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0005\u0194\u252c\n\u0194\u0005\u0194\u252e\n\u0194", + "\u0003\u0194\u0003\u0194\u0005\u0194\u2532\n\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0005\u0194\u2539\n\u0194", + "\u0005\u0194\u253b\n\u0194\u0003\u0194\u0003\u0194\u0003\u0194\u0003", + "\u0194\u0003\u0194\u0005\u0194\u2542\n\u0194\u0005\u0194\u2544\n\u0194", + "\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0003\u0195", + "\u0003\u0195\u0005\u0195\u254d\n\u0195\u0003\u0195\u0003\u0195\u0003", + "\u0195\u0003\u0195\u0003\u0195\u0003\u0195\u0005\u0195\u2555\n\u0195", + "\u0003\u0196\u0003\u0196\u0003\u0196\u0007\u0196\u255a\n\u0196\f\u0196", + "\u000e\u0196\u255d\u000b\u0196\u0003\u0197\u0003\u0197\u0003\u0197\u0005", + "\u0197\u2562\n\u0197\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198", + "\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0198\u0003\u0199\u0005\u0199", + "\u256d\n\u0199\u0003\u0199\u0003\u0199\u0005\u0199\u2571\n\u0199\u0005", + "\u0199\u2573\n\u0199\u0003\u0199\u0005\u0199\u2576\n\u0199\u0003\u0199", + "\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199", + "\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199", + "\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199\u0003\u0199", + "\u0003\u0199\u0003\u0199\u0003\u0199\u0005\u0199\u258e\n\u0199\u0003", + "\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003\u019a\u0003", + "\u019a\u0003\u019a\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003\u019b\u0003", + "\u019c\u0003\u019c\u0003\u019c\u0007\u019c\u25a5\n\u019c\f\u019c\u000e", + "\u019c\u25a8\u000b\u019c\u0003\u019d\u0003\u019d\u0005\u019d\u25ac\n", + "\u019d\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003", + "\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0003\u019e\u0007\u019e\u25be", + "\n\u019e\f\u019e\u000e\u019e\u25c1\u000b\u019e\u0003\u019e\u0005\u019e", + "\u25c4\n\u019e\u0003\u019e\u0003\u019e\u0005\u019e\u25c8\n\u019e\u0003", + "\u019f\u0003\u019f\u0003\u019f\u0003\u019f\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003\u01a0\u0003", + "\u01a0\u0003\u01a0\u0005\u01a0\u25d8\n\u01a0\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0005\u01a1\u25ec\n", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0005\u01a1\u2626\n\u01a1\u0003\u01a1", + "\u0003\u01a1\u0005\u01a1\u262a\n\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003", + "\u01a1\u0003\u01a1\u0005\u01a1\u265a\n\u01a1\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1", + "\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1\u0003\u01a1", + "\u0005\u01a1\u266a\n\u01a1\u0005\u01a1\u266c\n\u01a1\u0003\u01a2\u0003", + "\u01a2\u0003\u01a2\u0003\u01a2\u0003\u01a2\u0005\u01a2\u2673\n\u01a2", + "\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0005\u01a3\u2679\n", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0005", + "\u01a3\u2686\n\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3", + "\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3", + "\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0005\u01a3\u2695\n\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003\u01a3\u0003", + "\u01a3\u0003\u01a3\u0003\u01a3\u0005\u01a3\u26a0\n\u01a3\u0003\u01a4", + "\u0003\u01a4\u0003\u01a4\u0005\u01a4\u26a5\n\u01a4\u0003\u01a4\u0003", + "\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003", + "\u01a4\u0005\u01a4\u26af\n\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4", + "\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0003\u01a4\u0005\u01a4\u26b8\n", + "\u01a4\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003\u01a5\u0003", + "\u01a5\u0003\u01a5\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a6\u0003", + "\u01a6\u0003\u01a6\u0003\u01a6\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003", + "\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a7\u0003\u01a8\u0003\u01a8\u0003", + "\u01a8\u0003\u01a8\u0003\u01a8\u0003\u01a9\u0003\u01a9\u0003\u01a9\u0003", + "\u01a9\u0003\u01a9\u0003\u01aa\u0005\u01aa\u26da\n\u01aa\u0003\u01aa", + "\u0003\u01aa\u0003\u01ab\u0005\u01ab\u26df\n\u01ab\u0003\u01ab\u0003", + "\u01ab\u0003\u01ac\u0003\u01ac\u0005\u01ac\u26e5\n\u01ac\u0003\u01ad", + "\u0005\u01ad\u26e8\n\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ad\u0005", + "\u01ad\u26ed\n\u01ad\u0003\u01ad\u0007\u01ad\u26f0\n\u01ad\f\u01ad\u000e", + "\u01ad\u26f3\u000b\u01ad\u0003\u01ad\u0003\u01ad\u0003\u01ae\u0003\u01ae", + "\u0003\u01ae\u0003\u01ae\u0005\u01ae\u26fb\n\u01ae\u0003\u01ae\u0007", + "\u01ae\u26fe\n\u01ae\f\u01ae\u000e\u01ae\u2701\u000b\u01ae\u0003\u01ae", + "\u0003\u01ae\u0003\u01af\u0005\u01af\u2706\n\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0007\u01af\u270d\n\u01af", + "\f\u01af\u000e\u01af\u2710\u000b\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0007\u01af\u2717\n\u01af\f\u01af\u000e", + "\u01af\u271a\u000b\u01af\u0005\u01af\u271c\n\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0003\u01af\u0007\u01af\u2728\n\u01af\f\u01af\u000e", + "\u01af\u272b\u000b\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0005\u01af", + "\u2730\n\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003\u01af\u0003", + "\u01af\u0003\u01af\u0005\u01af\u2738\n\u01af\u0003\u01b0\u0003\u01b0", + "\u0005\u01b0\u273c\n\u01b0\u0003\u01b1\u0003\u01b1\u0003\u01b1\u0003", + "\u01b1\u0007\u01b1\u2742\n\u01b1\f\u01b1\u000e\u01b1\u2745\u000b\u01b1", + "\u0003\u01b1\u0003\u01b1\u0003\u01b2\u0003\u01b2\u0005\u01b2\u274b\n", + "\u01b2\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0003", + "\u01b3\u0003\u01b3\u0003\u01b3\u0003\u01b3\u0007\u01b3\u2756\n\u01b3", + "\f\u01b3\u000e\u01b3\u2759\u000b\u01b3\u0003\u01b4\u0003\u01b4\u0003", + "\u01b4\u0007\u01b4\u275e\n\u01b4\f\u01b4\u000e\u01b4\u2761\u000b\u01b4", + "\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5", + "\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0003\u01b5\u0005\u01b5\u276d\n", + "\u01b5\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0005", + "\u01b6\u2774\n\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0005\u01b6\u277a\n\u01b6\u0003\u01b6\u0003\u01b6\u0005\u01b6\u277e", + "\n\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6", + "\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0003\u01b6\u0005\u01b6\u278f\n", + "\u01b6\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003", + "\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0003", + "\u01b7\u0003\u01b7\u0005\u01b7\u279e\n\u01b7\u0005\u01b7\u27a0\n\u01b7", + "\u0003\u01b7\u0003\u01b7\u0003\u01b7\u0005\u01b7\u27a5\n\u01b7\u0003", + "\u01b8\u0005\u01b8\u27a8\n\u01b8\u0003\u01b8\u0003\u01b8\u0003\u01b9", + "\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01b9\u0005\u01b9\u27b1\n", + "\u01b9\u0003\u01b9\u0005\u01b9\u27b4\n\u01b9\u0003\u01b9\u0005\u01b9", + "\u27b7\n\u01b9\u0003\u01b9\u0003\u01b9\u0003\u01ba\u0003\u01ba\u0003", + "\u01ba\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003\u01bb\u0003", + "\u01bb\u0005\u01bb\u27c4\n\u01bb\u0003\u01bc\u0003\u01bc\u0005\u01bc", + "\u27c8\n\u01bc\u0003\u01bd\u0003\u01bd\u0003\u01bd\u0003\u01bd\u0003", + "\u01bd\u0003\u01bd\u0005\u01bd\u27d0\n\u01bd\u0003\u01be\u0003\u01be", + "\u0003\u01be\u0003\u01be\u0005\u01be\u27d6\n\u01be\u0003\u01bf\u0003", + "\u01bf\u0003\u01bf\u0003\u01bf\u0007\u01bf\u27dc\n\u01bf\f\u01bf\u000e", + "\u01bf\u27df\u000b\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf", + "\u0005\u01bf\u27e5\n\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003", + "\u01bf\u0005\u01bf\u27eb\n\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf", + "\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf", + "\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0003\u01bf\u0005\u01bf\u27fa\n", + "\u01bf\u0003\u01c0\u0003\u01c0\u0003\u01c0\u0003\u01c0\u0003\u01c0\u0003", + "\u01c0\u0003\u01c0\u0005\u01c0\u2803\n\u01c0\u0003\u01c0\u0003\u01c0", + "\u0003\u01c1\u0003\u01c1\u0005\u01c1\u2809\n\u01c1\u0003\u01c2\u0003", + "\u01c2\u0003\u01c2\u0003\u01c2\u0005\u01c2\u280f\n\u01c2\u0003\u01c2", + "\u0005\u01c2\u2812\n\u01c2\u0003\u01c2\u0003\u01c2\u0005\u01c2\u2816", + "\n\u01c2\u0003\u01c2\u0003\u01c2\u0003\u01c2\u0007\u01c2\u281b\n\u01c2", + "\f\u01c2\u000e\u01c2\u281e\u000b\u01c2\u0003\u01c3\u0003\u01c3\u0003", + "\u01c3\u0003\u01c3\u0003\u01c3\u0005\u01c3\u2825\n\u01c3\u0003\u01c3", + "\u0005\u01c3\u2828\n\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0003", + "\u01c3\u0005\u01c3\u282e\n\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3", + "\u0003\u01c3\u0005\u01c3\u2834\n\u01c3\u0005\u01c3\u2836\n\u01c3\u0003", + "\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0005\u01c3\u283c\n\u01c3", + "\u0003\u01c3\u0005\u01c3\u283f\n\u01c3\u0005\u01c3\u2841\n\u01c3\u0003", + "\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c3\u0005\u01c3\u2847\n\u01c3", + "\u0005\u01c3\u2849\n\u01c3\u0003\u01c3\u0003\u01c3\u0003\u01c4\u0003", + "\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003", + "\u01c4\u0003\u01c4\u0003\u01c4\u0005\u01c4\u2857\n\u01c4\u0003\u01c4", + "\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c4\u0005\u01c4\u285e\n", + "\u01c4\u0003\u01c4\u0003\u01c4\u0003\u01c5\u0003\u01c5\u0003\u01c5\u0003", + "\u01c5\u0003\u01c5\u0005\u01c5\u2867\n\u01c5\u0003\u01c6\u0003\u01c6", + "\u0003\u01c6\u0003\u01c6\u0003\u01c6\u0005\u01c6\u286e\n\u01c6\u0003", + "\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003", + "\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0005\u01c7\u287a\n\u01c7", + "\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c7\u0005\u01c7", + "\u2881\n\u01c7\u0003\u01c7\u0003\u01c7\u0003\u01c8\u0003\u01c8\u0003", + "\u01c8\u0005\u01c8\u2888\n\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0005\u01c8\u288f\n\u01c8\u0003\u01c8\u0003", + "\u01c8\u0003\u01c8\u0003\u01c8\u0005\u01c8\u2895\n\u01c8\u0003\u01c8", + "\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0003\u01c8\u0005\u01c8\u289c\n", + "\u01c8\u0003\u01c8\u0005\u01c8\u289f\n\u01c8\u0003\u01c9\u0003\u01c9", + "\u0003\u01c9\u0005\u01c9\u28a4\n\u01c9\u0003\u01c9\u0003\u01c9\u0003", + "\u01ca\u0003\u01ca\u0003\u01ca\u0005\u01ca\u28ab\n\u01ca\u0003\u01ca", + "\u0003\u01ca\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0003\u01cb\u0005\u01cb", + "\u28b3\n\u01cb\u0003\u01cb\u0003\u01cb\u0005\u01cb\u28b7\n\u01cb\u0003", + "\u01cb\u0005\u01cb\u28ba\n\u01cb\u0003\u01cc\u0003\u01cc\u0003\u01cc", + "\u0003\u01cc\u0003\u01cc\u0003\u01cc\u0005\u01cc\u28c2\n\u01cc\u0003", + "\u01cc\u0003\u01cc\u0005\u01cc\u28c6\n\u01cc\u0003\u01cc\u0005\u01cc", + "\u28c9\n\u01cc\u0003\u01cd\u0003\u01cd\u0005\u01cd\u28cd\n\u01cd\u0003", + "\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28d2\n\u01ce\u0003\u01ce", + "\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28d8\n\u01ce\u0003", + "\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28de\n\u01ce", + "\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28e4\n", + "\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce\u28ea", + "\n\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005\u01ce", + "\u28f0\n\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0005", + "\u01ce\u28f6\n\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce\u0003\u01ce", + "\u0005\u01ce\u28fc\n\u01ce\u0003\u01ce\u0005\u01ce\u28ff\n\u01ce\u0003", + "\u01cf\u0003\u01cf\u0005\u01cf\u2903\n\u01cf\u0003\u01cf\u0003\u01cf", + "\u0003\u01cf\u0005\u01cf\u2908\n\u01cf\u0007\u01cf\u290a\n\u01cf\f\u01cf", + "\u000e\u01cf\u290d\u000b\u01cf\u0003\u01d0\u0003\u01d0\u0003\u01d0\u0007", + "\u01d0\u2912\n\u01d0\f\u01d0\u000e\u01d0\u2915\u000b\u01d0\u0003\u01d1", + "\u0003\u01d1\u0005\u01d1\u2919\n\u01d1\u0003\u01d2\u0003\u01d2\u0003", + "\u01d3\u0003\u01d3\u0003\u01d4\u0005\u01d4\u2920\n\u01d4\u0003\u01d4", + "\u0003\u01d4\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5\u0003\u01d5", + "\u0005\u01d5\u2929\n\u01d5\u0005\u01d5\u292b\n\u01d5\u0003\u01d6\u0003", + "\u01d6\u0003\u01d6\u0003\u01d6\u0003\u01d6\u0005\u01d6\u2932\n\u01d6", + "\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7", + "\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0003\u01d7\u0005\u01d7\u293e\n", + "\u01d7\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0005\u01d8\u2943\n\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0005\u01d8\u294e\n\u01d8\u0003", + "\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003", + "\u01d8\u0003\u01d8\u0005\u01d8\u2958\n\u01d8\u0005\u01d8\u295a\n\u01d8", + "\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8\u0005\u01d8\u2960\n", + "\u01d8\u0005\u01d8\u2962\n\u01d8\u0003\u01d8\u0003\u01d8\u0003\u01d8", + "\u0005\u01d8\u2967\n\u01d8\u0005\u01d8\u2969\n\u01d8\u0003\u01d8\u0005", + "\u01d8\u296c\n\u01d8\u0003\u01d9\u0003\u01d9\u0005\u01d9\u2970\n\u01d9", + "\u0003\u01da\u0003\u01da\u0005\u01da\u2974\n\u01da\u0003\u01db\u0003", + "\u01db\u0003\u01db\u0003\u01db\u0005\u01db\u297a\n\u01db\u0003\u01db", + "\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db\u0003\u01db", + "\u0005\u01db\u2983\n\u01db\u0003\u01db\u0005\u01db\u2986\n\u01db\u0005", + "\u01db\u2988\n\u01db\u0003\u01dc\u0005\u01dc\u298b\n\u01dc\u0003\u01dc", + "\u0003\u01dc\u0003\u01dc\u0003\u01dc\u0005\u01dc\u2991\n\u01dc\u0003", + "\u01dc\u0003\u01dc\u0005\u01dc\u2995\n\u01dc\u0003\u01dc\u0005\u01dc", + "\u2998\n\u01dc\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003\u01dd\u0003", + "\u01dd\u0003\u01dd\u0003\u01dd\u0005\u01dd\u29a1\n\u01dd\u0003\u01de", + "\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de\u0003\u01de", + "\u0005\u01de\u29aa\n\u01de\u0003\u01df\u0003\u01df\u0003\u01df\u0003", + "\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003\u01df\u0003", + "\u01df\u0005\u01df\u29b6\n\u01df\u0003\u01df\u0005\u01df\u29b9\n\u01df", + "\u0003\u01e0\u0003\u01e0\u0005\u01e0\u29bd\n\u01e0\u0003\u01e0\u0003", + "\u01e0\u0003\u01e0\u0003\u01e0\u0005\u01e0\u29c3\n\u01e0\u0003\u01e0", + "\u0005\u01e0\u29c6\n\u01e0\u0003\u01e0\u0003\u01e0\u0005\u01e0\u29ca", + "\n\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0003\u01e0\u0005\u01e0", + "\u29d0\n\u01e0\u0003\u01e1\u0003\u01e1\u0003\u01e1\u0005\u01e1\u29d5", + "\n\u01e1\u0003\u01e2\u0003\u01e2\u0003\u01e2\u0005\u01e2\u29da\n\u01e2", + "\u0003\u01e2\u0003\u01e2\u0005\u01e2\u29de\n\u01e2\u0003\u01e2\u0003", + "\u01e2\u0005\u01e2\u29e2\n\u01e2\u0003\u01e2\u0003\u01e2\u0005\u01e2", + "\u29e6\n\u01e2\u0003\u01e3\u0003\u01e3\u0003\u01e4\u0003\u01e4\u0003", + "\u01e4\u0005\u01e4\u29ed\n\u01e4\u0003\u01e5\u0003\u01e5\u0003\u01e6", + "\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6", + "\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6\u0003\u01e6", + "\u0003\u01e6\u0003\u01e6\u0005\u01e6\u2a00\n\u01e6\u0003\u01e7\u0003", + "\u01e7\u0003\u01e8\u0003\u01e8\u0005\u01e8\u2a06\n\u01e8\u0003\u01e8", + "\u0002\u0004^\u02d8\u01e9\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012", + "\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ", + "\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e", + "\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6", + "\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be", + "\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6", + "\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee", + "\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106", + "\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e", + "\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136", + "\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e", + "\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166", + "\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e", + "\u0180\u0182\u0184\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196", + "\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae", + "\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u01c6", + "\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01de", + "\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f0\u01f2\u01f4\u01f6", + "\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e", + "\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226", + "\u0228\u022a\u022c\u022e\u0230\u0232\u0234\u0236\u0238\u023a\u023c\u023e", + "\u0240\u0242\u0244\u0246\u0248\u024a\u024c\u024e\u0250\u0252\u0254\u0256", + "\u0258\u025a\u025c\u025e\u0260\u0262\u0264\u0266\u0268\u026a\u026c\u026e", + "\u0270\u0272\u0274\u0276\u0278\u027a\u027c\u027e\u0280\u0282\u0284\u0286", + "\u0288\u028a\u028c\u028e\u0290\u0292\u0294\u0296\u0298\u029a\u029c\u029e", + "\u02a0\u02a2\u02a4\u02a6\u02a8\u02aa\u02ac\u02ae\u02b0\u02b2\u02b4\u02b6", + "\u02b8\u02ba\u02bc\u02be\u02c0\u02c2\u02c4\u02c6\u02c8\u02ca\u02cc\u02ce", + "\u02d0\u02d2\u02d4\u02d6\u02d8\u02da\u02dc\u02de\u02e0\u02e2\u02e4\u02e6", + "\u02e8\u02ea\u02ec\u02ee\u02f0\u02f2\u02f4\u02f6\u02f8\u02fa\u02fc\u02fe", + "\u0300\u0302\u0304\u0306\u0308\u030a\u030c\u030e\u0310\u0312\u0314\u0316", + "\u0318\u031a\u031c\u031e\u0320\u0322\u0324\u0326\u0328\u032a\u032c\u032e", + "\u0330\u0332\u0334\u0336\u0338\u033a\u033c\u033e\u0340\u0342\u0344\u0346", + "\u0348\u034a\u034c\u034e\u0350\u0352\u0354\u0356\u0358\u035a\u035c\u035e", + "\u0360\u0362\u0364\u0366\u0368\u036a\u036c\u036e\u0370\u0372\u0374\u0376", + "\u0378\u037a\u037c\u037e\u0380\u0382\u0384\u0386\u0388\u038a\u038c\u038e", + "\u0390\u0392\u0394\u0396\u0398\u039a\u039c\u039e\u03a0\u03a2\u03a4\u03a6", + "\u03a8\u03aa\u03ac\u03ae\u03b0\u03b2\u03b4\u03b6\u03b8\u03ba\u03bc\u03be", + "\u03c0\u03c2\u03c4\u03c6\u03c8\u03ca\u03cc\u03ce\u0002\u008b\u0003\u0002", + "\u0321\u0322\u0004\u0002\u0321\u0321\u0326\u0326\u0004\u0002\u01d5\u01d5", + "\u02f5\u02f6\u0004\u0002\u0321\u0322\u0326\u0326\u0004\u0002\u00bb\u00bb", + "\u02d2\u02d2\u0005\u0002\u031e\u031e\u0321\u0321\u0326\u0326\u0005\u0002", + "||\u012b\u012b\u0168\u0168\u0004\u0002\u00e2\u00e2\u00e5\u00e5\u0003", + "\u0002\u0326\u0327\u0003\u0002\u0124\u0128\u0004\u0002\u01c2\u01c2\u0277", + "\u0277\u0004\u0002\u012e\u012e\u0271\u0271\u0005\u0002TT\u012e\u012e", + "\u0271\u0271\u0005\u0002\u00d5\u00d5\u0100\u0100\u02c3\u02c4\u0004\u0002", + "\u0013\u0013\u02ec\u02ec\u0004\u0002\u0017\u0017\u023e\u023e\u0004\u0002", + "\u0006\u0006\u029f\u029f\u0005\u0002\u0006\u0006\u0263\u0263\u029d\u029d", + "\u0004\u0002\n\nII\u0004\u0002\u0004\u0004gg\u0004\u0002\u01ef\u01ef", + "\u02d3\u02d3\u0004\u0002\u01e0\u01e0\u01e9\u01e9\u0004\u0002\u0322\u0322", + "\u0326\u0326\u0004\u0002\u0228\u0228\u024d\u024d\u0004\u0002\b\t\u00db", + "\u00db\u0005\u0002\u00d5\u00d5\u00f7\u00f7\u00f9\u00f9\u0004\u0002\u014b", + "\u014b\u014e\u014e\u0004\u0002\u000b\u000b\u00ed\u00ed\u0003\u0002\u0324", + "\u0325\u0004\u0002\u0004\u0004\u013b\u013b\u0004\u0002\u00b6\u00b6\u0178", + "\u0178\u0003\u0002\u0106\u0107\u0004\u0002\u0322\u0322\u0326\u0327\u0004", + "\u0002\u00ce\u00ce\u0166\u0166\u0004\u0002\u00c9\u00c9\u0144\u0144\u0004", + "\u0002\u010d\u010d\u01e0\u01e0\u0004\u0002\u0324\u0324\u0326\u0326\u0004", + "\u0002]]\u0091\u0091\u0006\u0002\\\\\u00a2\u00a2\u0131\u0131\u0169\u0169", + "\u0004\u0002\u001e\u001e\u01ff\u01ff\u0004\u0002\u00a2\u00a2\u0169\u0169", + "\u0004\u0002\\\\\u0169\u0169\u0005\u0002\u020a\u020a\u024d\u024d\u02f1", + "\u02f1\u0004\u0002\u0306\u0306\u0322\u0322\u0005\u0002BB\u013d\u013d", + "\u01f5\u01f5\u0004\u0002YY\u0326\u0326\u0004\u0002YY\u0322\u0322\u0004", + "\u0002\u0237\u0237\u0326\u0326\u0005\u0002\u020a\u020a\u0228\u0228\u024d", + "\u024d\u0007\u0002\u0184\u0186\u01da\u01da\u01dc\u01dc\u0299\u029b\u02fb", + "\u02fc\u0004\u0002\u0085\u0085\u008b\u008b\u0005\u0002\u0215\u0215\u023d", + "\u023d\u024e\u024e\u0005\u0002\r\r\u0156\u0156\u021f\u021f\u0004\u0002", + "\u00d5\u00d5\u00f3\u00f3\u0003\u0002\u0102\u0103\u0005\u0002\\\\\u00a2", + "\u00a2\u0169\u0169\u0004\u0002\u0085\u0085\u0188\u0188\u0004\u0002\u027a", + "\u027b\u02a0\u02a0\u0004\u0002\u00f5\u00f5\u02bc\u02bc\u0004\u0002\u0006", + "\u0006\u009e\u009e\u0005\u0002\u01ec\u01ec\u02be\u02be\u030e\u030e\u0005", + "\u0002\u0153\u0153\u0198\u0198\u01e0\u01e0\u0005\u0002\u01ce\u01ce\u0217", + "\u0217\u0256\u0256\u0004\u0002\u020d\u020d\u0237\u0237\u0004\u0002\u0006", + "\u0006\u00a6\u00a7\u0005\u0002\u00ab\u00ab\u00d0\u00d0\u00de\u00de\u0005", + "\u0002\u0113\u0113\u0151\u0151\u01e2\u01e2\u0004\u0002kk\u01e2\u01e2", + "\u0005\u0002\u0006\u0006\u017c\u017c\u0282\u0282\u0004\u0002\u008c\u008c", + "\u00e2\u00e2\u0005\u0002\u01e7\u01e7\u0272\u0272\u0275\u0275\u0004\u0002", + "\u029d\u029d\u029f\u029f\u0005\u0002\u025c\u025c\u02b4\u02b4\u02d7\u02d7", + "\u0005\u0002\u018d\u018d\u01e2\u01e2\u0205\u0205\u0004\u0002\u0118\u0118", + "\u02ea\u02ea\u0004\u0002\u0205\u0205\u02d6\u02d6\u0005\u0002\u008c\u008c", + "\u01aa\u01aa\u02d6\u02d6\u0005\u0002\u00d5\u00d5\u01b2\u01b2\u02f9\u02f9", + "\u0004\u0002\u0256\u0256\u02c6\u02c6\u0004\u0002\u0081\u0081\u01fb\u01fb", + "\u0005\u0002aa\u0155\u0155\u016b\u016b\u0004\u000299\u00da\u00da\u0004", + "\u0002\u00a0\u00a0\u00d3\u00d3\u0004\u0002\u00d7\u00d7\u013f\u013f\u0004", + "\u0002\u00d2\u00d2\u0206\u0206\u0004\u0002\u00d9\u00d9\u01b2\u01b2\u0004", + "\u0002CC\u0150\u0150\u0004\u0002\u00d6\u00d6\u011e\u011e\u0004\u0002", + "\u00b9\u00b9\u00d8\u00d8\u0004\u0002\u0184\u0186\u02fc\u02fc\u0004\u0002", + "\u016e\u016e\u023b\u023b\u0003\u0002\u027a\u027b\u0004\u0002\u0081\u0081", + "\u0327\u0327\u0004\u0002\u01d1\u01d1\u01ec\u01ec\u0004\u0002\u01f3\u01f3", + "\u02dd\u02dd\u0004\u0002\u0153\u0153\u0172\u0172\u0003\u0002\u015d\u015e", + "\u0006\u0002\u01ab\u01ab\u027d\u027d\u02cb\u02cb\u0326\u0326\u0004\u0002", + "\u01bb\u01bb\u01e4\u01e4\u0004\u0002\u0010\u0010;;\u0004\u0002\u0221", + "\u0221\u02cc\u02cc\u0004\u0002\u0207\u0207\u02c0\u02c0\u0006\u0002\u01e5", + "\u01e5\u01fa\u01fa\u022d\u022d\u02de\u02de\u0005\u0002\u0278\u0278\u029d", + "\u029d\u02c1\u02c1\u0004\u0002\u017e\u017e\u02a6\u02a6\u0003\u0002\u0341", + "\u0343\u0005\u0002\u0336\u0336\u0344\u0345\u0347\u0349\u0003\u0002\u0344", + "\u0345\u0005\u0002\u0006\u0006\r\r\u0141\u0141\u0004\u0002\u0006\u0006", + "bb\u0003\u0002\u0328\u0329\u0004\u0002\u02b9\u02b9\u02bc\u02bc\u0004", + "\u0002\u0200\u0200\u0262\u0262\u0004\u0002\u0003\u0003\u0319\u0319\u0004", + "\u0002\u0198\u0198\u0283\u0283\u0004\u0002\u0011\u0011^^\u0004\u0002", + "\u00ee\u00ee\u0213\u0213\u0005\u0002\u00c9\u00c9\u01b9\u01b9\u0213\u0213", + "\u0005\u0002\u00c9\u00c9\u0213\u0213\u023c\u023c\u0004\u0002\u00df\u00df", + "\u0321\u0322\u0005\u0002\u008c\u008c\u00b1\u00b1\u011f\u011f\u0006\u0002", + "\u00c9\u00c9\u0213\u0213\u023c\u023c\u02a7\u02a7\u0004\u0002\u0321\u0321", + "\u0323\u0323\u0005\u0002\u01d8\u01d8\u0298\u0298\u02ba\u02ba\b\u0002", + "\u01a0\u01a0\u0241\u0241\u0251\u0251\u02e2\u02e3\u02e9\u02e9\u030c\u030d", + "\u0003\u0002\u01be\u01bf\u0004\u0002\u0201\u0201\u0230\u0230\u0004\u0002", + "\u022e\u022e\u0231\u0231\u0004\u0002\u0297\u0297\u02bc\u02bc\u0005\u0002", + "\u008c\u008c\u00e2\u00e2\u029d\u029d\u0004\u000255\u00d4\u00d4\u0003", + "\u0002\u0110\u0111\u0004\u0002\u0241\u0241\u0322\u0322\u0004\u0002\u0322", + "\u0322\u0328\u0328$\u0002((RRrr\u0082\u0083\u0086\u0086\u00a0\u00a0", + "\u00ac\u00ac\u00bd\u00be\u00e3\u00e3\u00f1\u00f1\u0105\u0105\u0107\u0107", + "\u0109\u0109\u011a\u011b\u0122\u0122\u0129\u0129\u0135\u0135\u013e\u013e", + "\u0142\u0142\u0144\u0144\u0149\u0149\u014b\u014b\u0156\u0156\u017e\u01e5", + "\u01e7\u021c\u021e\u0225\u0228\u027b\u027d\u02e0\u02e2\u02e7\u02e9\u0306", + "\u0308\u0311\u0313\u0315\u0317\u0317\u0323\u0323\u0003\u0002\u032e\u0335", + "\u0007\u0002\u020a\u020a\u0228\u0228\u024d\u024d\u02f1\u02f1\u0343\u0343", + "\u0002\u30e6\u0002\u03d3\u0003\u0002\u0002\u0002\u0004\u03e9\u0003\u0002", + "\u0002\u0002\u0006\u03ef\u0003\u0002\u0002\u0002\b\u03fa\u0003\u0002", + "\u0002\u0002\n\u0401\u0003\u0002\u0002\u0002\f\u04a2\u0003\u0002\u0002", + "\u0002\u000e\u04a9\u0003\u0002\u0002\u0002\u0010\u04b7\u0003\u0002\u0002", + "\u0002\u0012\u04b9\u0003\u0002\u0002\u0002\u0014\u04c4\u0003\u0002\u0002", + "\u0002\u0016\u04c8\u0003\u0002\u0002\u0002\u0018\u04d6\u0003\u0002\u0002", + "\u0002\u001a\u04d8\u0003\u0002\u0002\u0002\u001c\u04df\u0003\u0002\u0002", + "\u0002\u001e\u04e9\u0003\u0002\u0002\u0002 \u04f5\u0003\u0002\u0002", + "\u0002\"\u04f7\u0003\u0002\u0002\u0002$\u04f9\u0003\u0002\u0002\u0002", + "&\u04fb\u0003\u0002\u0002\u0002(\u0515\u0003\u0002\u0002\u0002*\u0526", + "\u0003\u0002\u0002\u0002,\u0533\u0003\u0002\u0002\u0002.\u0562\u0003", + "\u0002\u0002\u00020\u0564\u0003\u0002\u0002\u00022\u0576\u0003\u0002", + "\u0002\u00024\u0578\u0003\u0002\u0002\u00026\u0595\u0003\u0002\u0002", + "\u00028\u05aa\u0003\u0002\u0002\u0002:\u05b7\u0003\u0002\u0002\u0002", + "<\u05bc\u0003\u0002\u0002\u0002>\u05c0\u0003\u0002\u0002\u0002@\u05c4", + "\u0003\u0002\u0002\u0002B\u05cf\u0003\u0002\u0002\u0002D\u05d4\u0003", + "\u0002\u0002\u0002F\u05d6\u0003\u0002\u0002\u0002H\u05db\u0003\u0002", + "\u0002\u0002J\u05dd\u0003\u0002\u0002\u0002L\u05df\u0003\u0002\u0002", + "\u0002N\u05e2\u0003\u0002\u0002\u0002P\u05e6\u0003\u0002\u0002\u0002", + "R\u05ec\u0003\u0002\u0002\u0002T\u05ee\u0003\u0002\u0002\u0002V\u05f1", + "\u0003\u0002\u0002\u0002X\u05f3\u0003\u0002\u0002\u0002Z\u05f6\u0003", + "\u0002\u0002\u0002\\\u05fb\u0003\u0002\u0002\u0002^\u0606\u0003\u0002", + "\u0002\u0002`\u060f\u0003\u0002\u0002\u0002b\u0613\u0003\u0002\u0002", + "\u0002d\u0615\u0003\u0002\u0002\u0002f\u061b\u0003\u0002\u0002\u0002", + "h\u061d\u0003\u0002\u0002\u0002j\u061f\u0003\u0002\u0002\u0002l\u0622", + "\u0003\u0002\u0002\u0002n\u062a\u0003\u0002\u0002\u0002p\u062c\u0003", + "\u0002\u0002\u0002r\u062e\u0003\u0002\u0002\u0002t\u0644\u0003\u0002", + "\u0002\u0002v\u0657\u0003\u0002\u0002\u0002x\u065f\u0003\u0002\u0002", + "\u0002z\u0663\u0003\u0002\u0002\u0002|\u066b\u0003\u0002\u0002\u0002", + "~\u067a\u0003\u0002\u0002\u0002\u0080\u067c\u0003\u0002\u0002\u0002", + "\u0082\u06a8\u0003\u0002\u0002\u0002\u0084\u06b1\u0003\u0002\u0002\u0002", + "\u0086\u06be\u0003\u0002\u0002\u0002\u0088\u06c0\u0003\u0002\u0002\u0002", + "\u008a\u06c2\u0003\u0002\u0002\u0002\u008c\u06c5\u0003\u0002\u0002\u0002", + "\u008e\u06c9\u0003\u0002\u0002\u0002\u0090\u06d3\u0003\u0002\u0002\u0002", + "\u0092\u06dd\u0003\u0002\u0002\u0002\u0094\u0709\u0003\u0002\u0002\u0002", + "\u0096\u0720\u0003\u0002\u0002\u0002\u0098\u0722\u0003\u0002\u0002\u0002", + "\u009a\u0724\u0003\u0002\u0002\u0002\u009c\u0726\u0003\u0002\u0002\u0002", + "\u009e\u072b\u0003\u0002\u0002\u0002\u00a0\u072e\u0003\u0002\u0002\u0002", + "\u00a2\u0891\u0003\u0002\u0002\u0002\u00a4\u0893\u0003\u0002\u0002\u0002", + "\u00a6\u08c9\u0003\u0002\u0002\u0002\u00a8\u08ce\u0003\u0002\u0002\u0002", + "\u00aa\u08fa\u0003\u0002\u0002\u0002\u00ac\u0911\u0003\u0002\u0002\u0002", + "\u00ae\u092f\u0003\u0002\u0002\u0002\u00b0\u0933\u0003\u0002\u0002\u0002", + "\u00b2\u0939\u0003\u0002\u0002\u0002\u00b4\u093f\u0003\u0002\u0002\u0002", + "\u00b6\u0943\u0003\u0002\u0002\u0002\u00b8\u0947\u0003\u0002\u0002\u0002", + "\u00ba\u094c\u0003\u0002\u0002\u0002\u00bc\u095a\u0003\u0002\u0002\u0002", + "\u00be\u0960\u0003\u0002\u0002\u0002\u00c0\u0966\u0003\u0002\u0002\u0002", + "\u00c2\u0976\u0003\u0002\u0002\u0002\u00c4\u097a\u0003\u0002\u0002\u0002", + "\u00c6\u0980\u0003\u0002\u0002\u0002\u00c8\u0986\u0003\u0002\u0002\u0002", + "\u00ca\u098e\u0003\u0002\u0002\u0002\u00cc\u0994\u0003\u0002\u0002\u0002", + "\u00ce\u09a3\u0003\u0002\u0002\u0002\u00d0\u09b5\u0003\u0002\u0002\u0002", + "\u00d2\u09bc\u0003\u0002\u0002\u0002\u00d4\u09c1\u0003\u0002\u0002\u0002", + "\u00d6\u09cc\u0003\u0002\u0002\u0002\u00d8\u09d1\u0003\u0002\u0002\u0002", + "\u00da\u09d5\u0003\u0002\u0002\u0002\u00dc\u09d9\u0003\u0002\u0002\u0002", + "\u00de\u09de\u0003\u0002\u0002\u0002\u00e0\u09e3\u0003\u0002\u0002\u0002", + "\u00e2\u09e8\u0003\u0002\u0002\u0002\u00e4\u09f6\u0003\u0002\u0002\u0002", + "\u00e6\u09fc\u0003\u0002\u0002\u0002\u00e8\u0a01\u0003\u0002\u0002\u0002", + "\u00ea\u0a09\u0003\u0002\u0002\u0002\u00ec\u0a0d\u0003\u0002\u0002\u0002", + "\u00ee\u0a1e\u0003\u0002\u0002\u0002\u00f0\u0a26\u0003\u0002\u0002\u0002", + "\u00f2\u0a2c\u0003\u0002\u0002\u0002\u00f4\u0a3a\u0003\u0002\u0002\u0002", + "\u00f6\u0a50\u0003\u0002\u0002\u0002\u00f8\u0a55\u0003\u0002\u0002\u0002", + "\u00fa\u0a5b\u0003\u0002\u0002\u0002\u00fc\u0a60\u0003\u0002\u0002\u0002", + "\u00fe\u0a64\u0003\u0002\u0002\u0002\u0100\u0a80\u0003\u0002\u0002\u0002", + "\u0102\u0a8b\u0003\u0002\u0002\u0002\u0104\u0a94\u0003\u0002\u0002\u0002", + "\u0106\u0aa1\u0003\u0002\u0002\u0002\u0108\u0aa9\u0003\u0002\u0002\u0002", + "\u010a\u0aae\u0003\u0002\u0002\u0002\u010c\u0ab9\u0003\u0002\u0002\u0002", + "\u010e\u0ad7\u0003\u0002\u0002\u0002\u0110\u0af5\u0003\u0002\u0002\u0002", + "\u0112\u0b03\u0003\u0002\u0002\u0002\u0114\u0b1b\u0003\u0002\u0002\u0002", + "\u0116\u0b2b\u0003\u0002\u0002\u0002\u0118\u0b38\u0003\u0002\u0002\u0002", + "\u011a\u0b4b\u0003\u0002\u0002\u0002\u011c\u0b58\u0003\u0002\u0002\u0002", + "\u011e\u0b61\u0003\u0002\u0002\u0002\u0120\u0b7f\u0003\u0002\u0002\u0002", + "\u0122\u0c72\u0003\u0002\u0002\u0002\u0124\u0c7b\u0003\u0002\u0002\u0002", + "\u0126\u0cb5\u0003\u0002\u0002\u0002\u0128\u0ce6\u0003\u0002\u0002\u0002", + "\u012a\u0ce8\u0003\u0002\u0002\u0002\u012c\u0d11\u0003\u0002\u0002\u0002", + "\u012e\u0d43\u0003\u0002\u0002\u0002\u0130\u0d89\u0003\u0002\u0002\u0002", + "\u0132\u0dcc\u0003\u0002\u0002\u0002\u0134\u0ddc\u0003\u0002\u0002\u0002", + "\u0136\u0df8\u0003\u0002\u0002\u0002\u0138\u0e0b\u0003\u0002\u0002\u0002", + "\u013a\u0e20\u0003\u0002\u0002\u0002\u013c\u0e68\u0003\u0002\u0002\u0002", + "\u013e\u0ec7\u0003\u0002\u0002\u0002\u0140\u0edd\u0003\u0002\u0002\u0002", + "\u0142\u0ee9\u0003\u0002\u0002\u0002\u0144\u0f05\u0003\u0002\u0002\u0002", + "\u0146\u0f1a\u0003\u0002\u0002\u0002\u0148\u0f34\u0003\u0002\u0002\u0002", + "\u014a\u0f3d\u0003\u0002\u0002\u0002\u014c\u0f5d\u0003\u0002\u0002\u0002", + "\u014e\u0f67\u0003\u0002\u0002\u0002\u0150\u0f77\u0003\u0002\u0002\u0002", + "\u0152\u0f83\u0003\u0002\u0002\u0002\u0154\u0f8c\u0003\u0002\u0002\u0002", + "\u0156\u0f9d\u0003\u0002\u0002\u0002\u0158\u0fb5\u0003\u0002\u0002\u0002", + "\u015a\u1021\u0003\u0002\u0002\u0002\u015c\u103b\u0003\u0002\u0002\u0002", + "\u015e\u1047\u0003\u0002\u0002\u0002\u0160\u104e\u0003\u0002\u0002\u0002", + "\u0162\u107a\u0003\u0002\u0002\u0002\u0164\u1085\u0003\u0002\u0002\u0002", + "\u0166\u1099\u0003\u0002\u0002\u0002\u0168\u10c3\u0003\u0002\u0002\u0002", + "\u016a\u10ca\u0003\u0002\u0002\u0002\u016c\u10d8\u0003\u0002\u0002\u0002", + "\u016e\u10ea\u0003\u0002\u0002\u0002\u0170\u1130\u0003\u0002\u0002\u0002", + "\u0172\u115b\u0003\u0002\u0002\u0002\u0174\u1191\u0003\u0002\u0002\u0002", + "\u0176\u121a\u0003\u0002\u0002\u0002\u0178\u12a9\u0003\u0002\u0002\u0002", + "\u017a\u12c6\u0003\u0002\u0002\u0002\u017c\u12e3\u0003\u0002\u0002\u0002", + "\u017e\u1352\u0003\u0002\u0002\u0002\u0180\u135f\u0003\u0002\u0002\u0002", + "\u0182\u1367\u0003\u0002\u0002\u0002\u0184\u136f\u0003\u0002\u0002\u0002", + "\u0186\u1385\u0003\u0002\u0002\u0002\u0188\u13a3\u0003\u0002\u0002\u0002", + "\u018a\u13be\u0003\u0002\u0002\u0002\u018c\u13d2\u0003\u0002\u0002\u0002", + "\u018e\u1402\u0003\u0002\u0002\u0002\u0190\u1427\u0003\u0002\u0002\u0002", + "\u0192\u14f3\u0003\u0002\u0002\u0002\u0194\u1511\u0003\u0002\u0002\u0002", + "\u0196\u1513\u0003\u0002\u0002\u0002\u0198\u1533\u0003\u0002\u0002\u0002", + "\u019a\u1562\u0003\u0002\u0002\u0002\u019c\u1596\u0003\u0002\u0002\u0002", + "\u019e\u15a6\u0003\u0002\u0002\u0002\u01a0\u15b4\u0003\u0002\u0002\u0002", + "\u01a2\u15fd\u0003\u0002\u0002\u0002\u01a4\u161c\u0003\u0002\u0002\u0002", + "\u01a6\u161e\u0003\u0002\u0002\u0002\u01a8\u1622\u0003\u0002\u0002\u0002", + "\u01aa\u1640\u0003\u0002\u0002\u0002\u01ac\u1642\u0003\u0002\u0002\u0002", + "\u01ae\u1657\u0003\u0002\u0002\u0002\u01b0\u16b0\u0003\u0002\u0002\u0002", + "\u01b2\u16b2\u0003\u0002\u0002\u0002\u01b4\u16bf\u0003\u0002\u0002\u0002", + "\u01b6\u16f7\u0003\u0002\u0002\u0002\u01b8\u16fa\u0003\u0002\u0002\u0002", + "\u01ba\u1728\u0003\u0002\u0002\u0002\u01bc\u172b\u0003\u0002\u0002\u0002", + "\u01be\u174c\u0003\u0002\u0002\u0002\u01c0\u175d\u0003\u0002\u0002\u0002", + "\u01c2\u1760\u0003\u0002\u0002\u0002\u01c4\u179b\u0003\u0002\u0002\u0002", + "\u01c6\u17b3\u0003\u0002\u0002\u0002\u01c8\u17c3\u0003\u0002\u0002\u0002", + "\u01ca\u17c5\u0003\u0002\u0002\u0002\u01cc\u17f6\u0003\u0002\u0002\u0002", + "\u01ce\u181f\u0003\u0002\u0002\u0002\u01d0\u184b\u0003\u0002\u0002\u0002", + "\u01d2\u1853\u0003\u0002\u0002\u0002\u01d4\u1880\u0003\u0002\u0002\u0002", + "\u01d6\u1882\u0003\u0002\u0002\u0002\u01d8\u188a\u0003\u0002\u0002\u0002", + "\u01da\u18ab\u0003\u0002\u0002\u0002\u01dc\u18b3\u0003\u0002\u0002\u0002", + "\u01de\u18ce\u0003\u0002\u0002\u0002\u01e0\u18e6\u0003\u0002\u0002\u0002", + "\u01e2\u1906\u0003\u0002\u0002\u0002\u01e4\u1924\u0003\u0002\u0002\u0002", + "\u01e6\u193b\u0003\u0002\u0002\u0002\u01e8\u1949\u0003\u0002\u0002\u0002", + "\u01ea\u194b\u0003\u0002\u0002\u0002\u01ec\u196a\u0003\u0002\u0002\u0002", + "\u01ee\u1978\u0003\u0002\u0002\u0002\u01f0\u1998\u0003\u0002\u0002\u0002", + "\u01f2\u19ae\u0003\u0002\u0002\u0002\u01f4\u19cc\u0003\u0002\u0002\u0002", + "\u01f6\u19ce\u0003\u0002\u0002\u0002\u01f8\u1a01\u0003\u0002\u0002\u0002", + "\u01fa\u1a2f\u0003\u0002\u0002\u0002\u01fc\u1a42\u0003\u0002\u0002\u0002", + "\u01fe\u1a44\u0003\u0002\u0002\u0002\u0200\u1a5d\u0003\u0002\u0002\u0002", + "\u0202\u1a5f\u0003\u0002\u0002\u0002\u0204\u1a67\u0003\u0002\u0002\u0002", + "\u0206\u1a69\u0003\u0002\u0002\u0002\u0208\u1af5\u0003\u0002\u0002\u0002", + "\u020a\u1afd\u0003\u0002\u0002\u0002\u020c\u1aff\u0003\u0002\u0002\u0002", + "\u020e\u1b01\u0003\u0002\u0002\u0002\u0210\u1b03\u0003\u0002\u0002\u0002", + "\u0212\u1b11\u0003\u0002\u0002\u0002\u0214\u1b17\u0003\u0002\u0002\u0002", + "\u0216\u1b19\u0003\u0002\u0002\u0002\u0218\u1b1b\u0003\u0002\u0002\u0002", + "\u021a\u1b20\u0003\u0002\u0002\u0002\u021c\u1b22\u0003\u0002\u0002\u0002", + "\u021e\u1b26\u0003\u0002\u0002\u0002\u0220\u1b32\u0003\u0002\u0002\u0002", + "\u0222\u1b34\u0003\u0002\u0002\u0002\u0224\u1b37\u0003\u0002\u0002\u0002", + "\u0226\u1b3a\u0003\u0002\u0002\u0002\u0228\u1b3c\u0003\u0002\u0002\u0002", + "\u022a\u1b3e\u0003\u0002\u0002\u0002\u022c\u1b40\u0003\u0002\u0002\u0002", + "\u022e\u1b5d\u0003\u0002\u0002\u0002\u0230\u1b5f\u0003\u0002\u0002\u0002", + "\u0232\u1b6a\u0003\u0002\u0002\u0002\u0234\u1b6d\u0003\u0002\u0002\u0002", + "\u0236\u1b76\u0003\u0002\u0002\u0002\u0238\u1b7e\u0003\u0002\u0002\u0002", + "\u023a\u1b85\u0003\u0002\u0002\u0002\u023c\u1b9c\u0003\u0002\u0002\u0002", + "\u023e\u1b9e\u0003\u0002\u0002\u0002\u0240\u1ba9\u0003\u0002\u0002\u0002", + "\u0242\u1bab\u0003\u0002\u0002\u0002\u0244\u1bc6\u0003\u0002\u0002\u0002", + "\u0246\u1bcd\u0003\u0002\u0002\u0002\u0248\u1bd3\u0003\u0002\u0002\u0002", + "\u024a\u1be6\u0003\u0002\u0002\u0002\u024c\u1be8\u0003\u0002\u0002\u0002", + "\u024e\u1bf9\u0003\u0002\u0002\u0002\u0250\u1c10\u0003\u0002\u0002\u0002", + "\u0252\u1c21\u0003\u0002\u0002\u0002\u0254\u1c32\u0003\u0002\u0002\u0002", + "\u0256\u1c3c\u0003\u0002\u0002\u0002\u0258\u1c4d\u0003\u0002\u0002\u0002", + "\u025a\u1c5e\u0003\u0002\u0002\u0002\u025c\u1c68\u0003\u0002\u0002\u0002", + "\u025e\u1c6a\u0003\u0002\u0002\u0002\u0260\u1c71\u0003\u0002\u0002\u0002", + "\u0262\u1cad\u0003\u0002\u0002\u0002\u0264\u1ccc\u0003\u0002\u0002\u0002", + "\u0266\u1cce\u0003\u0002\u0002\u0002\u0268\u1dc8\u0003\u0002\u0002\u0002", + "\u026a\u1eb6\u0003\u0002\u0002\u0002\u026c\u1ede\u0003\u0002\u0002\u0002", + "\u026e\u1eeb\u0003\u0002\u0002\u0002\u0270\u1ef9\u0003\u0002\u0002\u0002", + "\u0272\u1f01\u0003\u0002\u0002\u0002\u0274\u1f07\u0003\u0002\u0002\u0002", + "\u0276\u1f0e\u0003\u0002\u0002\u0002\u0278\u1f12\u0003\u0002\u0002\u0002", + "\u027a\u1f3f\u0003\u0002\u0002\u0002\u027c\u1f43\u0003\u0002\u0002\u0002", + "\u027e\u1f50\u0003\u0002\u0002\u0002\u0280\u1f8d\u0003\u0002\u0002\u0002", + "\u0282\u1f8f\u0003\u0002\u0002\u0002\u0284\u1fb4\u0003\u0002\u0002\u0002", + "\u0286\u1fb6\u0003\u0002\u0002\u0002\u0288\u1fc6\u0003\u0002\u0002\u0002", + "\u028a\u1fd3\u0003\u0002\u0002\u0002\u028c\u1fe7\u0003\u0002\u0002\u0002", + "\u028e\u1ff4\u0003\u0002\u0002\u0002\u0290\u2019\u0003\u0002\u0002\u0002", + "\u0292\u202a\u0003\u0002\u0002\u0002\u0294\u202c\u0003\u0002\u0002\u0002", + "\u0296\u2039\u0003\u0002\u0002\u0002\u0298\u2052\u0003\u0002\u0002\u0002", + "\u029a\u206e\u0003\u0002\u0002\u0002\u029c\u2097\u0003\u0002\u0002\u0002", + "\u029e\u20ea\u0003\u0002\u0002\u0002\u02a0\u20ec\u0003\u0002\u0002\u0002", + "\u02a2\u20f0\u0003\u0002\u0002\u0002\u02a4\u20f5\u0003\u0002\u0002\u0002", + "\u02a6\u20f9\u0003\u0002\u0002\u0002\u02a8\u20fe\u0003\u0002\u0002\u0002", + "\u02aa\u2103\u0003\u0002\u0002\u0002\u02ac\u2112\u0003\u0002\u0002\u0002", + "\u02ae\u2117\u0003\u0002\u0002\u0002\u02b0\u211b\u0003\u0002\u0002\u0002", + "\u02b2\u2124\u0003\u0002\u0002\u0002\u02b4\u2129\u0003\u0002\u0002\u0002", + "\u02b6\u2131\u0003\u0002\u0002\u0002\u02b8\u2135\u0003\u0002\u0002\u0002", + "\u02ba\u2142\u0003\u0002\u0002\u0002\u02bc\u2144\u0003\u0002\u0002\u0002", + "\u02be\u2171\u0003\u0002\u0002\u0002\u02c0\u217b\u0003\u0002\u0002\u0002", + "\u02c2\u21a6\u0003\u0002\u0002\u0002\u02c4\u21ea\u0003\u0002\u0002\u0002", + "\u02c6\u21f5\u0003\u0002\u0002\u0002\u02c8\u2200\u0003\u0002\u0002\u0002", + "\u02ca\u220c\u0003\u0002\u0002\u0002\u02cc\u2213\u0003\u0002\u0002\u0002", + "\u02ce\u223c\u0003\u0002\u0002\u0002\u02d0\u2247\u0003\u0002\u0002\u0002", + "\u02d2\u2249\u0003\u0002\u0002\u0002\u02d4\u2298\u0003\u0002\u0002\u0002", + "\u02d6\u229c\u0003\u0002\u0002\u0002\u02d8\u22a6\u0003\u0002\u0002\u0002", + "\u02da\u22c2\u0003\u0002\u0002\u0002\u02dc\u22dd\u0003\u0002\u0002\u0002", + "\u02de\u22e3\u0003\u0002\u0002\u0002\u02e0\u22ed\u0003\u0002\u0002\u0002", + "\u02e2\u22f7\u0003\u0002\u0002\u0002\u02e4\u22f9\u0003\u0002\u0002\u0002", + "\u02e6\u2315\u0003\u0002\u0002\u0002\u02e8\u2317\u0003\u0002\u0002\u0002", + "\u02ea\u2333\u0003\u0002\u0002\u0002\u02ec\u2335\u0003\u0002\u0002\u0002", + "\u02ee\u233d\u0003\u0002\u0002\u0002\u02f0\u2345\u0003\u0002\u0002\u0002", + "\u02f2\u234e\u0003\u0002\u0002\u0002\u02f4\u2389\u0003\u0002\u0002\u0002", + "\u02f6\u2390\u0003\u0002\u0002\u0002\u02f8\u239e\u0003\u0002\u0002\u0002", + "\u02fa\u23a7\u0003\u0002\u0002\u0002\u02fc\u23ce\u0003\u0002\u0002\u0002", + "\u02fe\u23de\u0003\u0002\u0002\u0002\u0300\u23e5\u0003\u0002\u0002\u0002", + "\u0302\u23e7\u0003\u0002\u0002\u0002\u0304\u2456\u0003\u0002\u0002\u0002", + "\u0306\u2458\u0003\u0002\u0002\u0002\u0308\u2463\u0003\u0002\u0002\u0002", + "\u030a\u2467\u0003\u0002\u0002\u0002\u030c\u2469\u0003\u0002\u0002\u0002", + "\u030e\u24a2\u0003\u0002\u0002\u0002\u0310\u24a4\u0003\u0002\u0002\u0002", + "\u0312\u24ad\u0003\u0002\u0002\u0002\u0314\u24b5\u0003\u0002\u0002\u0002", + "\u0316\u24c3\u0003\u0002\u0002\u0002\u0318\u24d4\u0003\u0002\u0002\u0002", + "\u031a\u24ea\u0003\u0002\u0002\u0002\u031c\u24f4\u0003\u0002\u0002\u0002", + "\u031e\u24fa\u0003\u0002\u0002\u0002\u0320\u24fc\u0003\u0002\u0002\u0002", + "\u0322\u2509\u0003\u0002\u0002\u0002\u0324\u250b\u0003\u0002\u0002\u0002", + "\u0326\u2543\u0003\u0002\u0002\u0002\u0328\u2545\u0003\u0002\u0002\u0002", + "\u032a\u2556\u0003\u0002\u0002\u0002\u032c\u255e\u0003\u0002\u0002\u0002", + "\u032e\u2563\u0003\u0002\u0002\u0002\u0330\u258d\u0003\u0002\u0002\u0002", + "\u0332\u258f\u0003\u0002\u0002\u0002\u0334\u2597\u0003\u0002\u0002\u0002", + "\u0336\u25a1\u0003\u0002\u0002\u0002\u0338\u25a9\u0003\u0002\u0002\u0002", + "\u033a\u25c7\u0003\u0002\u0002\u0002\u033c\u25c9\u0003\u0002\u0002\u0002", + "\u033e\u25d7\u0003\u0002\u0002\u0002\u0340\u266b\u0003\u0002\u0002\u0002", + "\u0342\u2672\u0003\u0002\u0002\u0002\u0344\u269f\u0003\u0002\u0002\u0002", + "\u0346\u26b7\u0003\u0002\u0002\u0002\u0348\u26b9\u0003\u0002\u0002\u0002", + "\u034a\u26c0\u0003\u0002\u0002\u0002\u034c\u26c7\u0003\u0002\u0002\u0002", + "\u034e\u26ce\u0003\u0002\u0002\u0002\u0350\u26d3\u0003\u0002\u0002\u0002", + "\u0352\u26d9\u0003\u0002\u0002\u0002\u0354\u26de\u0003\u0002\u0002\u0002", + "\u0356\u26e2\u0003\u0002\u0002\u0002\u0358\u26e7\u0003\u0002\u0002\u0002", + "\u035a\u26f6\u0003\u0002\u0002\u0002\u035c\u2705\u0003\u0002\u0002\u0002", + "\u035e\u273b\u0003\u0002\u0002\u0002\u0360\u273d\u0003\u0002\u0002\u0002", + "\u0362\u274a\u0003\u0002\u0002\u0002\u0364\u274c\u0003\u0002\u0002\u0002", + "\u0366\u275a\u0003\u0002\u0002\u0002\u0368\u276c\u0003\u0002\u0002\u0002", + "\u036a\u278e\u0003\u0002\u0002\u0002\u036c\u27a4\u0003\u0002\u0002\u0002", + "\u036e\u27a7\u0003\u0002\u0002\u0002\u0370\u27ab\u0003\u0002\u0002\u0002", + "\u0372\u27ba\u0003\u0002\u0002\u0002\u0374\u27c3\u0003\u0002\u0002\u0002", + "\u0376\u27c7\u0003\u0002\u0002\u0002\u0378\u27cf\u0003\u0002\u0002\u0002", + "\u037a\u27d5\u0003\u0002\u0002\u0002\u037c\u27f9\u0003\u0002\u0002\u0002", + "\u037e\u27fb\u0003\u0002\u0002\u0002\u0380\u2808\u0003\u0002\u0002\u0002", + "\u0382\u280a\u0003\u0002\u0002\u0002\u0384\u281f\u0003\u0002\u0002\u0002", + "\u0386\u285d\u0003\u0002\u0002\u0002\u0388\u2866\u0003\u0002\u0002\u0002", + "\u038a\u286d\u0003\u0002\u0002\u0002\u038c\u2880\u0003\u0002\u0002\u0002", + "\u038e\u289e\u0003\u0002\u0002\u0002\u0390\u28a3\u0003\u0002\u0002\u0002", + "\u0392\u28aa\u0003\u0002\u0002\u0002\u0394\u28b9\u0003\u0002\u0002\u0002", + "\u0396\u28c8\u0003\u0002\u0002\u0002\u0398\u28cc\u0003\u0002\u0002\u0002", + "\u039a\u28fe\u0003\u0002\u0002\u0002\u039c\u2900\u0003\u0002\u0002\u0002", + "\u039e\u290e\u0003\u0002\u0002\u0002\u03a0\u2918\u0003\u0002\u0002\u0002", + "\u03a2\u291a\u0003\u0002\u0002\u0002\u03a4\u291c\u0003\u0002\u0002\u0002", + "\u03a6\u291f\u0003\u0002\u0002\u0002\u03a8\u292a\u0003\u0002\u0002\u0002", + "\u03aa\u2931\u0003\u0002\u0002\u0002\u03ac\u2933\u0003\u0002\u0002\u0002", + "\u03ae\u293f\u0003\u0002\u0002\u0002\u03b0\u296f\u0003\u0002\u0002\u0002", + "\u03b2\u2973\u0003\u0002\u0002\u0002\u03b4\u2975\u0003\u0002\u0002\u0002", + "\u03b6\u298a\u0003\u0002\u0002\u0002\u03b8\u2999\u0003\u0002\u0002\u0002", + "\u03ba\u29a9\u0003\u0002\u0002\u0002\u03bc\u29ab\u0003\u0002\u0002\u0002", + "\u03be\u29cf\u0003\u0002\u0002\u0002\u03c0\u29d4\u0003\u0002\u0002\u0002", + "\u03c2\u29e5\u0003\u0002\u0002\u0002\u03c4\u29e7\u0003\u0002\u0002\u0002", + "\u03c6\u29ec\u0003\u0002\u0002\u0002\u03c8\u29ee\u0003\u0002\u0002\u0002", + "\u03ca\u29ff\u0003\u0002\u0002\u0002\u03cc\u2a01\u0003\u0002\u0002\u0002", + "\u03ce\u2a03\u0003\u0002\u0002\u0002\u03d0\u03d2\u0005\u0004\u0003\u0002", + "\u03d1\u03d0\u0003\u0002\u0002\u0002\u03d2\u03d5\u0003\u0002\u0002\u0002", + "\u03d3\u03d1\u0003\u0002\u0002\u0002\u03d3\u03d4\u0003\u0002\u0002\u0002", + "\u03d4\u03d6\u0003\u0002\u0002\u0002\u03d5\u03d3\u0003\u0002\u0002\u0002", + "\u03d6\u03d7\u0007\u0002\u0002\u0003\u03d7\u0003\u0003\u0002\u0002\u0002", + "\u03d8\u03dc\u0005\u027a\u013e\u0002\u03d9\u03db\u0005\u02a0\u0151\u0002", + "\u03da\u03d9\u0003\u0002\u0002\u0002\u03db\u03de\u0003\u0002\u0002\u0002", + "\u03dc\u03da\u0003\u0002\u0002\u0002\u03dc\u03dd\u0003\u0002\u0002\u0002", + "\u03dd\u03ea\u0003\u0002\u0002\u0002\u03de\u03dc\u0003\u0002\u0002\u0002", + "\u03df\u03e1\u0005\u027a\u013e\u0002\u03e0\u03df\u0003\u0002\u0002\u0002", + "\u03e0\u03e1\u0003\u0002\u0002\u0002\u03e1\u03e2\u0003\u0002\u0002\u0002", + "\u03e2\u03e6\u0005\u0006\u0004\u0002\u03e3\u03e5\u0005\u02a0\u0151\u0002", + "\u03e4\u03e3\u0003\u0002\u0002\u0002\u03e5\u03e8\u0003\u0002\u0002\u0002", + "\u03e6\u03e4\u0003\u0002\u0002\u0002\u03e6\u03e7\u0003\u0002\u0002\u0002", + "\u03e7\u03ea\u0003\u0002\u0002\u0002\u03e8\u03e6\u0003\u0002\u0002\u0002", + "\u03e9\u03d8\u0003\u0002\u0002\u0002\u03e9\u03e0\u0003\u0002\u0002\u0002", + "\u03ea\u0005\u0003\u0002\u0002\u0002\u03eb\u03ed\u0005\b\u0005\u0002", + "\u03ec\u03ee\u0007\u033f\u0002\u0002\u03ed\u03ec\u0003\u0002\u0002\u0002", + "\u03ed\u03ee\u0003\u0002\u0002\u0002\u03ee\u03f0\u0003\u0002\u0002\u0002", + "\u03ef\u03eb\u0003\u0002\u0002\u0002\u03f0\u03f1\u0003\u0002\u0002\u0002", + "\u03f1\u03ef\u0003\u0002\u0002\u0002\u03f1\u03f2\u0003\u0002\u0002\u0002", + "\u03f2\u0007\u0003\u0002\u0002\u0002\u03f3\u03fb\u0005\n\u0006\u0002", + "\u03f4\u03fb\u0005\f\u0007\u0002\u03f5\u03fb\u0005\u0010\t\u0002\u03f6", + "\u03fb\u0005\u02aa\u0156\u0002\u03f7\u03fb\u00050\u0019\u0002\u03f8", + "\u03fb\u00052\u001a\u0002\u03f9\u03fb\u0005\u000e\b\u0002\u03fa\u03f3", + "\u0003\u0002\u0002\u0002\u03fa\u03f4\u0003\u0002\u0002\u0002\u03fa\u03f5", + "\u0003\u0002\u0002\u0002\u03fa\u03f6\u0003\u0002\u0002\u0002\u03fa\u03f7", + "\u0003\u0002\u0002\u0002\u03fa\u03f8\u0003\u0002\u0002\u0002\u03fa\u03f9", + "\u0003\u0002\u0002\u0002\u03fb\t\u0003\u0002\u0002\u0002\u03fc\u0402", + "\u0005\u01ae\u00d8\u0002\u03fd\u0402\u0005\u01b4\u00db\u0002\u03fe\u0402", + "\u0005\u01b8\u00dd\u0002\u03ff\u0402\u0005\u01be\u00e0\u0002\u0400\u0402", + "\u0005\u01c2\u00e2\u0002\u0401\u03fc\u0003\u0002\u0002\u0002\u0401\u03fd", + "\u0003\u0002\u0002\u0002\u0401\u03fe\u0003\u0002\u0002\u0002\u0401\u03ff", + "\u0003\u0002\u0002\u0002\u0401\u0400\u0003\u0002\u0002\u0002\u0402\u000b", + "\u0003\u0002\u0002\u0002\u0403\u04a3\u00054\u001b\u0002\u0404\u04a3", + "\u0005<\u001f\u0002\u0405\u04a3\u0005v<\u0002\u0406\u04a3\u0005\u0084", + "C\u0002\u0407\u04a3\u0005\u0090I\u0002\u0408\u04a3\u0005\u0092J\u0002", + "\u0409\u04a3\u0005\u008eH\u0002\u040a\u04a3\u0005\u009eP\u0002\u040b", + "\u04a3\u0005\u00a8U\u0002\u040c\u04a3\u0005\u00aaV\u0002\u040d\u04a3", + "\u0005\u0116\u008c\u0002\u040e\u04a3\u0005\u011a\u008e\u0002\u040f\u04a3", + "\u0005\u01f8\u00fd\u0002\u0410\u04a3\u0005\u015c\u00af\u0002\u0411\u04a3", + "\u0005\u0206\u0104\u0002\u0412\u04a3\u0005\u0120\u0091\u0002\u0413\u04a3", + "\u0005\u0128\u0095\u0002\u0414\u04a3\u0005\u012a\u0096\u0002\u0415\u04a3", + "\u0005\u012e\u0098\u0002\u0416\u04a3\u0005\u0132\u009a\u0002\u0417\u04a3", + "\u0005\u0136\u009c\u0002\u0418\u04a3\u0005\u013e\u00a0\u0002\u0419\u04a3", + "\u0005\u0142\u00a2\u0002\u041a\u04a3\u0005\u013a\u009e\u0002\u041b\u04a3", + "\u0005\u014a\u00a6\u0002\u041c\u04a3\u0005\u0146\u00a4\u0002\u041d\u04a3", + "\u0005\u014e\u00a8\u0002\u041e\u04a3\u0005\u0150\u00a9\u0002\u041f\u04a3", + "\u0005\u0152\u00aa\u0002\u0420\u04a3\u0005\u0154\u00ab\u0002\u0421\u04a3", + "\u0005\u015a\u00ae\u0002\u0422\u04a3\u0005\u016a\u00b6\u0002\u0423\u04a3", + "\u0005\u0164\u00b3\u0002\u0424\u04a3\u0005\u0170\u00b9\u0002\u0425\u04a3", + "\u0005\u0174\u00bb\u0002\u0426\u04a3\u0005\u0178\u00bd\u0002\u0427\u04a3", + "\u0005\u017c\u00bf\u0002\u0428\u04a3\u0005\u017e\u00c0\u0002\u0429\u04a3", + "\u0005\u0182\u00c2\u0002\u042a\u04a3\u0005\u0184\u00c3\u0002\u042b\u04a3", + "\u0005\u0188\u00c5\u0002\u042c\u04a3\u0005\u018a\u00c6\u0002\u042d\u04a3", + "\u0005\u01f6\u00fc\u0002\u042e\u04a3\u0005\u0190\u00c9\u0002\u042f\u04a3", + "\u0005\u0196\u00cc\u0002\u0430\u04a3\u0005\u0198\u00cd\u0002\u0431\u04a3", + "\u00056\u001c\u0002\u0432\u04a3\u0005r:\u0002\u0433\u04a3\u0005\u0080", + "A\u0002\u0434\u04a3\u0005\u00acW\u0002\u0435\u04a3\u0005\u0114\u008b", + "\u0002\u0436\u04a3\u0005\u0118\u008d\u0002\u0437\u04a3\u0005\u011c\u008f", + "\u0002\u0438\u04a3\u0005\u01ca\u00e6\u0002\u0439\u04a3\u0005\u015e\u00b0", + "\u0002\u043a\u04a3\u0005\u011e\u0090\u0002\u043b\u04a3\u0005\u012c\u0097", + "\u0002\u043c\u04a3\u0005\u0130\u0099\u0002\u043d\u04a3\u0005\u0134\u009b", + "\u0002\u043e\u04a3\u0005\u0138\u009d\u0002\u043f\u04a3\u0005\u01cc\u00e7", + "\u0002\u0440\u04a3\u0005\u0140\u00a1\u0002\u0441\u04a3\u0005\u0144\u00a3", + "\u0002\u0442\u04a3\u0005\u013c\u009f\u0002\u0443\u04a3\u0005\u014c\u00a7", + "\u0002\u0444\u04a3\u0005\u0148\u00a5\u0002\u0445\u04a3\u0005\u00a4S", + "\u0002\u0446\u04a3\u0005\u01dc\u00ef\u0002\u0447\u04a3\u0005\u01ce\u00e8", + "\u0002\u0448\u04a3\u0005\u01d0\u00e9\u0002\u0449\u04a3\u0005\u0156\u00ac", + "\u0002\u044a\u04a3\u0005\u0158\u00ad\u0002\u044b\u04a3\u0005\u0160\u00b1", + "\u0002\u044c\u04a3\u0005\u0162\u00b2\u0002\u044d\u04a3\u0005\u0166\u00b4", + "\u0002\u044e\u04a3\u0005\u0168\u00b5\u0002\u044f\u04a3\u0005\u016c\u00b7", + "\u0002\u0450\u04a3\u0005\u016e\u00b8\u0002\u0451\u04a3\u0005\u0172\u00ba", + "\u0002\u0452\u04a3\u0005\u0176\u00bc\u0002\u0453\u04a3\u0005\u017a\u00be", + "\u0002\u0454\u04a3\u0005\u0180\u00c1\u0002\u0455\u04a3\u0005\u0186\u00c4", + "\u0002\u0456\u04a3\u0005\u01ea\u00f6\u0002\u0457\u04a3\u0005\u018c\u00c7", + "\u0002\u0458\u04a3\u0005\u018e\u00c8\u0002\u0459\u04a3\u0005\u01ee\u00f8", + "\u0002\u045a\u04a3\u0005\u0258\u012d\u0002\u045b\u04a3\u0005\u0192\u00ca", + "\u0002\u045c\u04a3\u0005\u0194\u00cb\u0002\u045d\u04a3\u0005\u01f2\u00fa", + "\u0002\u045e\u04a3\u0005\u019a\u00ce\u0002\u045f\u04a3\u0005\u019c\u00cf", + "\u0002\u0460\u04a3\u00058\u001d\u0002\u0461\u04a3\u0005:\u001e\u0002", + "\u0462\u04a3\u0005t;\u0002\u0463\u04a3\u0005\u0082B\u0002\u0464\u04a3", + "\u0005\u009cO\u0002\u0465\u04a3\u0005\u00a6T\u0002\u0466\u04a3\u0005", + "\u00aeX\u0002\u0467\u04a3\u0005\u00b0Y\u0002\u0468\u04a3\u0005\u00b2", + "Z\u0002\u0469\u04a3\u0005\u00b4[\u0002\u046a\u04a3\u0005\u00b6\\\u0002", + "\u046b\u04a3\u0005\u00b8]\u0002\u046c\u04a3\u0005\u00ba^\u0002\u046d", + "\u04a3\u0005\u00bc_\u0002\u046e\u04a3\u0005\u00be`\u0002\u046f\u04a3", + "\u0005\u00e8u\u0002\u0470\u04a3\u0005\u00c0a\u0002\u0471\u04a3\u0005", + "\u00c2b\u0002\u0472\u04a3\u0005\u00ceh\u0002\u0473\u04a3\u0005\u00d0", + "i\u0002\u0474\u04a3\u0005\u00c4c\u0002\u0475\u04a3\u0005\u00c6d\u0002", + "\u0476\u04a3\u0005\u00c8e\u0002\u0477\u04a3\u0005\u00caf\u0002\u0478", + "\u04a3\u0005\u00ccg\u0002\u0479\u04a3\u0005\u00d2j\u0002\u047a\u04a3", + "\u0005\u00d4k\u0002\u047b\u04a3\u0005\u00d6l\u0002\u047c\u04a3\u0005", + "\u0250\u0129\u0002\u047d\u04a3\u0005\u0242\u0122\u0002\u047e\u04a3\u0005", + "\u00d8m\u0002\u047f\u04a3\u0005\u00dan\u0002\u0480\u04a3\u0005\u00dc", + "o\u0002\u0481\u04a3\u0005\u00dep\u0002\u0482\u04a3\u0005\u00e0q\u0002", + "\u0483\u04a3\u0005\u0248\u0125\u0002\u0484\u04a3\u0005\u00e2r\u0002", + "\u0485\u04a3\u0005\u00e4s\u0002\u0486\u04a3\u0005\u00e6t\u0002\u0487", + "\u04a3\u0005\u00eav\u0002\u0488\u04a3\u0005\u00ecw\u0002\u0489\u04a3", + "\u0005\u00eex\u0002\u048a\u04a3\u0005\u00f0y\u0002\u048b\u04a3\u0005", + "\u00f2z\u0002\u048c\u04a3\u0005\u00f4{\u0002\u048d\u04a3\u0005\u00f6", + "|\u0002\u048e\u04a3\u0005\u00f8}\u0002\u048f\u04a3\u0005\u00fa~\u0002", + "\u0490\u04a3\u0005\u00fc\u007f\u0002\u0491\u04a3\u0005\u00fe\u0080\u0002", + "\u0492\u04a3\u0005\u0252\u012a\u0002\u0493\u04a3\u0005\u0100\u0081\u0002", + "\u0494\u04a3\u0005\u0102\u0082\u0002\u0495\u04a3\u0005\u0104\u0083\u0002", + "\u0496\u04a3\u0005\u0254\u012b\u0002\u0497\u04a3\u0005\u024a\u0126\u0002", + "\u0498\u04a3\u0005\u025a\u012e\u0002\u0499\u04a3\u0005\u0106\u0084\u0002", + "\u049a\u04a3\u0005\u0256\u012c\u0002\u049b\u04a3\u0005\u0108\u0085\u0002", + "\u049c\u04a3\u0005\u010a\u0086\u0002\u049d\u04a3\u0005\u010c\u0087\u0002", + "\u049e\u04a3\u0005\u010e\u0088\u0002\u049f\u04a3\u0005\u0110\u0089\u0002", + "\u04a0\u04a3\u0005\u0112\u008a\u0002\u04a1\u04a3\u0005\u01ec\u00f7\u0002", + "\u04a2\u0403\u0003\u0002\u0002\u0002\u04a2\u0404\u0003\u0002\u0002\u0002", + "\u04a2\u0405\u0003\u0002\u0002\u0002\u04a2\u0406\u0003\u0002\u0002\u0002", + "\u04a2\u0407\u0003\u0002\u0002\u0002\u04a2\u0408\u0003\u0002\u0002\u0002", + "\u04a2\u0409\u0003\u0002\u0002\u0002\u04a2\u040a\u0003\u0002\u0002\u0002", + "\u04a2\u040b\u0003\u0002\u0002\u0002\u04a2\u040c\u0003\u0002\u0002\u0002", + "\u04a2\u040d\u0003\u0002\u0002\u0002\u04a2\u040e\u0003\u0002\u0002\u0002", + "\u04a2\u040f\u0003\u0002\u0002\u0002\u04a2\u0410\u0003\u0002\u0002\u0002", + "\u04a2\u0411\u0003\u0002\u0002\u0002\u04a2\u0412\u0003\u0002\u0002\u0002", + "\u04a2\u0413\u0003\u0002\u0002\u0002\u04a2\u0414\u0003\u0002\u0002\u0002", + "\u04a2\u0415\u0003\u0002\u0002\u0002\u04a2\u0416\u0003\u0002\u0002\u0002", + "\u04a2\u0417\u0003\u0002\u0002\u0002\u04a2\u0418\u0003\u0002\u0002\u0002", + "\u04a2\u0419\u0003\u0002\u0002\u0002\u04a2\u041a\u0003\u0002\u0002\u0002", + "\u04a2\u041b\u0003\u0002\u0002\u0002\u04a2\u041c\u0003\u0002\u0002\u0002", + "\u04a2\u041d\u0003\u0002\u0002\u0002\u04a2\u041e\u0003\u0002\u0002\u0002", + "\u04a2\u041f\u0003\u0002\u0002\u0002\u04a2\u0420\u0003\u0002\u0002\u0002", + "\u04a2\u0421\u0003\u0002\u0002\u0002\u04a2\u0422\u0003\u0002\u0002\u0002", + "\u04a2\u0423\u0003\u0002\u0002\u0002\u04a2\u0424\u0003\u0002\u0002\u0002", + "\u04a2\u0425\u0003\u0002\u0002\u0002\u04a2\u0426\u0003\u0002\u0002\u0002", + "\u04a2\u0427\u0003\u0002\u0002\u0002\u04a2\u0428\u0003\u0002\u0002\u0002", + "\u04a2\u0429\u0003\u0002\u0002\u0002\u04a2\u042a\u0003\u0002\u0002\u0002", + "\u04a2\u042b\u0003\u0002\u0002\u0002\u04a2\u042c\u0003\u0002\u0002\u0002", + "\u04a2\u042d\u0003\u0002\u0002\u0002\u04a2\u042e\u0003\u0002\u0002\u0002", + "\u04a2\u042f\u0003\u0002\u0002\u0002\u04a2\u0430\u0003\u0002\u0002\u0002", + "\u04a2\u0431\u0003\u0002\u0002\u0002\u04a2\u0432\u0003\u0002\u0002\u0002", + "\u04a2\u0433\u0003\u0002\u0002\u0002\u04a2\u0434\u0003\u0002\u0002\u0002", + "\u04a2\u0435\u0003\u0002\u0002\u0002\u04a2\u0436\u0003\u0002\u0002\u0002", + "\u04a2\u0437\u0003\u0002\u0002\u0002\u04a2\u0438\u0003\u0002\u0002\u0002", + "\u04a2\u0439\u0003\u0002\u0002\u0002\u04a2\u043a\u0003\u0002\u0002\u0002", + "\u04a2\u043b\u0003\u0002\u0002\u0002\u04a2\u043c\u0003\u0002\u0002\u0002", + "\u04a2\u043d\u0003\u0002\u0002\u0002\u04a2\u043e\u0003\u0002\u0002\u0002", + "\u04a2\u043f\u0003\u0002\u0002\u0002\u04a2\u0440\u0003\u0002\u0002\u0002", + "\u04a2\u0441\u0003\u0002\u0002\u0002\u04a2\u0442\u0003\u0002\u0002\u0002", + "\u04a2\u0443\u0003\u0002\u0002\u0002\u04a2\u0444\u0003\u0002\u0002\u0002", + "\u04a2\u0445\u0003\u0002\u0002\u0002\u04a2\u0446\u0003\u0002\u0002\u0002", + "\u04a2\u0447\u0003\u0002\u0002\u0002\u04a2\u0448\u0003\u0002\u0002\u0002", + "\u04a2\u0449\u0003\u0002\u0002\u0002\u04a2\u044a\u0003\u0002\u0002\u0002", + "\u04a2\u044b\u0003\u0002\u0002\u0002\u04a2\u044c\u0003\u0002\u0002\u0002", + "\u04a2\u044d\u0003\u0002\u0002\u0002\u04a2\u044e\u0003\u0002\u0002\u0002", + "\u04a2\u044f\u0003\u0002\u0002\u0002\u04a2\u0450\u0003\u0002\u0002\u0002", + "\u04a2\u0451\u0003\u0002\u0002\u0002\u04a2\u0452\u0003\u0002\u0002\u0002", + "\u04a2\u0453\u0003\u0002\u0002\u0002\u04a2\u0454\u0003\u0002\u0002\u0002", + "\u04a2\u0455\u0003\u0002\u0002\u0002\u04a2\u0456\u0003\u0002\u0002\u0002", + "\u04a2\u0457\u0003\u0002\u0002\u0002\u04a2\u0458\u0003\u0002\u0002\u0002", + "\u04a2\u0459\u0003\u0002\u0002\u0002\u04a2\u045a\u0003\u0002\u0002\u0002", + "\u04a2\u045b\u0003\u0002\u0002\u0002\u04a2\u045c\u0003\u0002\u0002\u0002", + "\u04a2\u045d\u0003\u0002\u0002\u0002\u04a2\u045e\u0003\u0002\u0002\u0002", + "\u04a2\u045f\u0003\u0002\u0002\u0002\u04a2\u0460\u0003\u0002\u0002\u0002", + "\u04a2\u0461\u0003\u0002\u0002\u0002\u04a2\u0462\u0003\u0002\u0002\u0002", + "\u04a2\u0463\u0003\u0002\u0002\u0002\u04a2\u0464\u0003\u0002\u0002\u0002", + "\u04a2\u0465\u0003\u0002\u0002\u0002\u04a2\u0466\u0003\u0002\u0002\u0002", + "\u04a2\u0467\u0003\u0002\u0002\u0002\u04a2\u0468\u0003\u0002\u0002\u0002", + "\u04a2\u0469\u0003\u0002\u0002\u0002\u04a2\u046a\u0003\u0002\u0002\u0002", + "\u04a2\u046b\u0003\u0002\u0002\u0002\u04a2\u046c\u0003\u0002\u0002\u0002", + "\u04a2\u046d\u0003\u0002\u0002\u0002\u04a2\u046e\u0003\u0002\u0002\u0002", + "\u04a2\u046f\u0003\u0002\u0002\u0002\u04a2\u0470\u0003\u0002\u0002\u0002", + "\u04a2\u0471\u0003\u0002\u0002\u0002\u04a2\u0472\u0003\u0002\u0002\u0002", + "\u04a2\u0473\u0003\u0002\u0002\u0002\u04a2\u0474\u0003\u0002\u0002\u0002", + "\u04a2\u0475\u0003\u0002\u0002\u0002\u04a2\u0476\u0003\u0002\u0002\u0002", + "\u04a2\u0477\u0003\u0002\u0002\u0002\u04a2\u0478\u0003\u0002\u0002\u0002", + "\u04a2\u0479\u0003\u0002\u0002\u0002\u04a2\u047a\u0003\u0002\u0002\u0002", + "\u04a2\u047b\u0003\u0002\u0002\u0002\u04a2\u047c\u0003\u0002\u0002\u0002", + "\u04a2\u047d\u0003\u0002\u0002\u0002\u04a2\u047e\u0003\u0002\u0002\u0002", + "\u04a2\u047f\u0003\u0002\u0002\u0002\u04a2\u0480\u0003\u0002\u0002\u0002", + "\u04a2\u0481\u0003\u0002\u0002\u0002\u04a2\u0482\u0003\u0002\u0002\u0002", + "\u04a2\u0483\u0003\u0002\u0002\u0002\u04a2\u0484\u0003\u0002\u0002\u0002", + "\u04a2\u0485\u0003\u0002\u0002\u0002\u04a2\u0486\u0003\u0002\u0002\u0002", + "\u04a2\u0487\u0003\u0002\u0002\u0002\u04a2\u0488\u0003\u0002\u0002\u0002", + "\u04a2\u0489\u0003\u0002\u0002\u0002\u04a2\u048a\u0003\u0002\u0002\u0002", + "\u04a2\u048b\u0003\u0002\u0002\u0002\u04a2\u048c\u0003\u0002\u0002\u0002", + "\u04a2\u048d\u0003\u0002\u0002\u0002\u04a2\u048e\u0003\u0002\u0002\u0002", + "\u04a2\u048f\u0003\u0002\u0002\u0002\u04a2\u0490\u0003\u0002\u0002\u0002", + "\u04a2\u0491\u0003\u0002\u0002\u0002\u04a2\u0492\u0003\u0002\u0002\u0002", + "\u04a2\u0493\u0003\u0002\u0002\u0002\u04a2\u0494\u0003\u0002\u0002\u0002", + "\u04a2\u0495\u0003\u0002\u0002\u0002\u04a2\u0496\u0003\u0002\u0002\u0002", + "\u04a2\u0497\u0003\u0002\u0002\u0002\u04a2\u0498\u0003\u0002\u0002\u0002", + "\u04a2\u0499\u0003\u0002\u0002\u0002\u04a2\u049a\u0003\u0002\u0002\u0002", + "\u04a2\u049b\u0003\u0002\u0002\u0002\u04a2\u049c\u0003\u0002\u0002\u0002", + "\u04a2\u049d\u0003\u0002\u0002\u0002\u04a2\u049e\u0003\u0002\u0002\u0002", + "\u04a2\u049f\u0003\u0002\u0002\u0002\u04a2\u04a0\u0003\u0002\u0002\u0002", + "\u04a2\u04a1\u0003\u0002\u0002\u0002\u04a3\r\u0003\u0002\u0002\u0002", + "\u04a4\u04aa\u0005\u0266\u0134\u0002\u04a5\u04aa\u0005\u0268\u0135\u0002", + "\u04a6\u04aa\u0005\u026a\u0136\u0002\u04a7\u04aa\u0005\u026c\u0137\u0002", + "\u04a8\u04aa\u0005\u026e\u0138\u0002\u04a9\u04a4\u0003\u0002\u0002\u0002", + "\u04a9\u04a5\u0003\u0002\u0002\u0002\u04a9\u04a6\u0003\u0002\u0002\u0002", + "\u04a9\u04a7\u0003\u0002\u0002\u0002\u04a9\u04a8\u0003\u0002\u0002\u0002", + "\u04aa\u000f\u0003\u0002\u0002\u0002\u04ab\u04b8\u0005\u0012\n\u0002", + "\u04ac\u04b8\u0005\u0014\u000b\u0002\u04ad\u04b8\u0005\u0016\f\u0002", + "\u04ae\u04b8\u0005\u0018\r\u0002\u04af\u04b8\u0005\u001c\u000f\u0002", + "\u04b0\u04b8\u0005\u001a\u000e\u0002\u04b1\u04b8\u0005\u001e\u0010\u0002", + "\u04b2\u04b8\u0005&\u0014\u0002\u04b3\u04b8\u0005(\u0015\u0002\u04b4", + "\u04b8\u0005*\u0016\u0002\u04b5\u04b8\u0005,\u0017\u0002\u04b6\u04b8", + "\u0005.\u0018\u0002\u04b7\u04ab\u0003\u0002\u0002\u0002\u04b7\u04ac", + "\u0003\u0002\u0002\u0002\u04b7\u04ad\u0003\u0002\u0002\u0002\u04b7\u04ae", + "\u0003\u0002\u0002\u0002\u04b7\u04af\u0003\u0002\u0002\u0002\u04b7\u04b0", + "\u0003\u0002\u0002\u0002\u04b7\u04b1\u0003\u0002\u0002\u0002\u04b7\u04b2", + "\u0003\u0002\u0002\u0002\u04b7\u04b3\u0003\u0002\u0002\u0002\u04b7\u04b4", + "\u0003\u0002\u0002\u0002\u04b7\u04b5\u0003\u0002\u0002\u0002\u04b7\u04b6", + "\u0003\u0002\u0002\u0002\u04b8\u0011\u0003\u0002\u0002\u0002\u04b9\u04bb", + "\u0007\u001c\u0002\u0002\u04ba\u04bc\u0007\u033f\u0002\u0002\u04bb\u04ba", + "\u0003\u0002\u0002\u0002\u04bb\u04bc\u0003\u0002\u0002\u0002\u04bc\u04be", + "\u0003\u0002\u0002\u0002\u04bd\u04bf\u0005\u0006\u0004\u0002\u04be\u04bd", + "\u0003\u0002\u0002\u0002\u04be\u04bf\u0003\u0002\u0002\u0002\u04bf\u04c0", + "\u0003\u0002\u0002\u0002\u04c0\u04c2\u0007l\u0002\u0002\u04c1\u04c3", + "\u0007\u033f\u0002\u0002\u04c2\u04c1\u0003\u0002\u0002\u0002\u04c2\u04c3", + "\u0003\u0002\u0002\u0002\u04c3\u0013\u0003\u0002\u0002\u0002\u04c4\u04c6", + "\u0007!\u0002\u0002\u04c5\u04c7\u0007\u033f\u0002\u0002\u04c6\u04c5", + "\u0003\u0002\u0002\u0002\u04c6\u04c7\u0003\u0002\u0002\u0002\u04c7\u0015", + "\u0003\u0002\u0002\u0002\u04c8\u04ca\u0007B\u0002\u0002\u04c9\u04cb", + "\u0007\u033f\u0002\u0002\u04ca\u04c9\u0003\u0002\u0002\u0002\u04ca\u04cb", + "\u0003\u0002\u0002\u0002\u04cb\u0017\u0003\u0002\u0002\u0002\u04cc\u04cd", + "\u0007\u008f\u0002\u0002\u04cd\u04cf\u0005\u03c6\u01e4\u0002\u04ce\u04d0", + "\u0007\u033f\u0002\u0002\u04cf\u04ce\u0003\u0002\u0002\u0002\u04cf\u04d0", + "\u0003\u0002\u0002\u0002\u04d0\u04d7\u0003\u0002\u0002\u0002\u04d1\u04d2", + "\u0005\u03c6\u01e4\u0002\u04d2\u04d4\u0007\u0340\u0002\u0002\u04d3\u04d5", + "\u0007\u033f\u0002\u0002\u04d4\u04d3\u0003\u0002\u0002\u0002\u04d4\u04d5", + "\u0003\u0002\u0002\u0002\u04d5\u04d7\u0003\u0002\u0002\u0002\u04d6\u04cc", + "\u0003\u0002\u0002\u0002\u04d6\u04d1\u0003\u0002\u0002\u0002\u04d7\u0019", + "\u0003\u0002\u0002\u0002\u04d8\u04da\u0007\u011a\u0002\u0002\u04d9\u04db", + "\u0005\u02d8\u016d\u0002\u04da\u04d9\u0003\u0002\u0002\u0002\u04da\u04db", + "\u0003\u0002\u0002\u0002\u04db\u04dd\u0003\u0002\u0002\u0002\u04dc\u04de", + "\u0007\u033f\u0002\u0002\u04dd\u04dc\u0003\u0002\u0002\u0002\u04dd\u04de", + "\u0003\u0002\u0002\u0002\u04de\u001b\u0003\u0002\u0002\u0002\u04df\u04e0", + "\u0007\u0099\u0002\u0002\u04e0\u04e1\u0005\u02ee\u0178\u0002\u04e1\u04e4", + "\u0005\b\u0005\u0002\u04e2\u04e3\u0007j\u0002\u0002\u04e3\u04e5\u0005", + "\b\u0005\u0002\u04e4\u04e2\u0003\u0002\u0002\u0002\u04e4\u04e5\u0003", + "\u0002\u0002\u0002\u04e5\u04e7\u0003\u0002\u0002\u0002\u04e6\u04e8\u0007", + "\u033f\u0002\u0002\u04e7\u04e6\u0003\u0002\u0002\u0002\u04e7\u04e8\u0003", + "\u0002\u0002\u0002\u04e8\u001d\u0003\u0002\u0002\u0002\u04e9\u04f0\u0007", + "\u02f3\u0002\u0002\u04ea\u04eb\u0005 \u0011\u0002\u04eb\u04ec\u0007", + "\u033e\u0002\u0002\u04ec\u04ed\u0005\"\u0012\u0002\u04ed\u04ee\u0007", + "\u033e\u0002\u0002\u04ee\u04ef\u0005$\u0013\u0002\u04ef\u04f1\u0003", + "\u0002\u0002\u0002\u04f0\u04ea\u0003\u0002\u0002\u0002\u04f0\u04f1\u0003", + "\u0002\u0002\u0002\u04f1\u04f3\u0003\u0002\u0002\u0002\u04f2\u04f4\u0007", + "\u033f\u0002\u0002\u04f3\u04f2\u0003\u0002\u0002\u0002\u04f3\u04f4\u0003", + "\u0002\u0002\u0002\u04f4\u001f\u0003\u0002\u0002\u0002\u04f5\u04f6\t", + "\u0002\u0002\u0002\u04f6!\u0003\u0002\u0002\u0002\u04f7\u04f8\t\u0003", + "\u0002\u0002\u04f8#\u0003\u0002\u0002\u0002\u04f9\u04fa\t\u0002\u0002", + "\u0002\u04fa%\u0003\u0002\u0002\u0002\u04fb\u04fc\u0007\u001c\u0002", + "\u0002\u04fc\u04fe\u0007\u02fe\u0002\u0002\u04fd\u04ff\u0007\u033f\u0002", + "\u0002\u04fe\u04fd\u0003\u0002\u0002\u0002\u04fe\u04ff\u0003\u0002\u0002", + "\u0002\u04ff\u0501\u0003\u0002\u0002\u0002\u0500\u0502\u0005\u0006\u0004", + "\u0002\u0501\u0500\u0003\u0002\u0002\u0002\u0501\u0502\u0003\u0002\u0002", + "\u0002\u0502\u0503\u0003\u0002\u0002\u0002\u0503\u0504\u0007l\u0002", + "\u0002\u0504\u0506\u0007\u02fe\u0002\u0002\u0505\u0507\u0007\u033f\u0002", + "\u0002\u0506\u0505\u0003\u0002\u0002\u0002\u0506\u0507\u0003\u0002\u0002", + "\u0002\u0507\u0508\u0003\u0002\u0002\u0002\u0508\u0509\u0007\u001c\u0002", + "\u0002\u0509\u050b\u0007\u01af\u0002\u0002\u050a\u050c\u0007\u033f\u0002", + "\u0002\u050b\u050a\u0003\u0002\u0002\u0002\u050b\u050c\u0003\u0002\u0002", + "\u0002\u050c\u050e\u0003\u0002\u0002\u0002\u050d\u050f\u0005\u0006\u0004", + "\u0002\u050e\u050d\u0003\u0002\u0002\u0002\u050e\u050f\u0003\u0002\u0002", + "\u0002\u050f\u0510\u0003\u0002\u0002\u0002\u0510\u0511\u0007l\u0002", + "\u0002\u0511\u0513\u0007\u01af\u0002\u0002\u0512\u0514\u0007\u033f\u0002", + "\u0002\u0513\u0512\u0003\u0002\u0002\u0002\u0513\u0514\u0003\u0002\u0002", + "\u0002\u0514\'\u0003\u0002\u0002\u0002\u0515\u0517\u0007\u0174\u0002", + "\u0002\u0516\u0518\u0005\u01bc\u00df\u0002\u0517\u0516\u0003\u0002\u0002", + "\u0002\u0517\u0518\u0003\u0002\u0002\u0002\u0518\u051a\u0003\u0002\u0002", + "\u0002\u0519\u051b\u0007\u033e\u0002\u0002\u051a\u0519\u0003\u0002\u0002", + "\u0002\u051a\u051b\u0003\u0002\u0002\u0002\u051b\u051e\u0003\u0002\u0002", + "\u0002\u051c\u051d\t\u0004\u0002\u0002\u051d\u051f\u0005\u01c0\u00e1", + "\u0002\u051e\u051c\u0003\u0002\u0002\u0002\u051e\u051f\u0003\u0002\u0002", + "\u0002\u051f\u0521\u0003\u0002\u0002\u0002\u0520\u0522\u0005\u02d8\u016d", + "\u0002\u0521\u0520\u0003\u0002\u0002\u0002\u0521\u0522\u0003\u0002\u0002", + "\u0002\u0522\u0524\u0003\u0002\u0002\u0002\u0523\u0525\u0007\u033f\u0002", + "\u0002\u0524\u0523\u0003\u0002\u0002\u0002\u0524\u0525\u0003\u0002\u0002", + "\u0002\u0525)\u0003\u0002\u0002\u0002\u0526\u0527\u0007\u0177\u0002", + "\u0002\u0527\u0531\u0005\u02ee\u0178\u0002\u0528\u0532\u0005\b\u0005", + "\u0002\u0529\u052b\u0007!\u0002\u0002\u052a\u052c\u0007\u033f\u0002", + "\u0002\u052b\u052a\u0003\u0002\u0002\u0002\u052b\u052c\u0003\u0002\u0002", + "\u0002\u052c\u0532\u0003\u0002\u0002\u0002\u052d\u052f\u0007B\u0002", + "\u0002\u052e\u0530\u0007\u033f\u0002\u0002\u052f\u052e\u0003\u0002\u0002", + "\u0002\u052f\u0530\u0003\u0002\u0002\u0002\u0530\u0532\u0003\u0002\u0002", + "\u0002\u0531\u0528\u0003\u0002\u0002\u0002\u0531\u0529\u0003\u0002\u0002", + "\u0002\u0531\u052d\u0003\u0002\u0002\u0002\u0532+\u0003\u0002\u0002", + "\u0002\u0533\u0536\u0007\u0101\u0002\u0002\u0534\u0537\u0005\u02d8\u016d", + "\u0002\u0535\u0537\u0007\u031e\u0002\u0002\u0536\u0534\u0003\u0002\u0002", + "\u0002\u0536\u0535\u0003\u0002\u0002\u0002\u0537\u053c\u0003\u0002\u0002", + "\u0002\u0538\u0539\u0007\u033e\u0002\u0002\u0539\u053b\u0007\u0321\u0002", + "\u0002\u053a\u0538\u0003\u0002\u0002\u0002\u053b\u053e\u0003\u0002\u0002", + "\u0002\u053c\u053a\u0003\u0002\u0002\u0002\u053c\u053d\u0003\u0002\u0002", + "\u0002\u053d\u0540\u0003\u0002\u0002\u0002\u053e\u053c\u0003\u0002\u0002", + "\u0002\u053f\u0541\u0007\u033f\u0002\u0002\u0540\u053f\u0003\u0002\u0002", + "\u0002\u0540\u0541\u0003\u0002\u0002\u0002\u0541-\u0003\u0002\u0002", + "\u0002\u0542\u0543\u0007\u0108\u0002\u0002\u0543\u0544\u0007\u033c\u0002", + "\u0002\u0544\u0545\t\u0005\u0002\u0002\u0545\u0546\u0007\u033e\u0002", + "\u0002\u0546\u0547\u0005\u02d6\u016c\u0002\u0547\u0548\u0007\u033e\u0002", + "\u0002\u0548\u054d\u0005\u02d6\u016c\u0002\u0549\u054a\u0007\u033e\u0002", + "\u0002\u054a\u054c\u0005\u02d6\u016c\u0002\u054b\u0549\u0003\u0002\u0002", + "\u0002\u054c\u054f\u0003\u0002\u0002\u0002\u054d\u054b\u0003\u0002\u0002", + "\u0002\u054d\u054e\u0003\u0002\u0002\u0002\u054e\u0550\u0003\u0002\u0002", + "\u0002\u054f\u054d\u0003\u0002\u0002\u0002\u0550\u0553\u0007\u033d\u0002", + "\u0002\u0551\u0552\u0007\u0179\u0002\u0002\u0552\u0554\t\u0006\u0002", + "\u0002\u0553\u0551\u0003\u0002\u0002\u0002\u0553\u0554\u0003\u0002\u0002", + "\u0002\u0554\u0556\u0003\u0002\u0002\u0002\u0555\u0557\u0007\u033f\u0002", + "\u0002\u0556\u0555\u0003\u0002\u0002\u0002\u0556\u0557\u0003\u0002\u0002", + "\u0002\u0557\u0563\u0003\u0002\u0002\u0002\u0558\u0559\u0007\u0108\u0002", + "\u0002\u0559\u055a\u0007\u0322\u0002\u0002\u055a\u055f\t\u0007\u0002", + "\u0002\u055b\u055c\u0007\u033e\u0002\u0002\u055c\u055e\t\u0005\u0002", + "\u0002\u055d\u055b\u0003\u0002\u0002\u0002\u055e\u0561\u0003\u0002\u0002", + "\u0002\u055f\u055d\u0003\u0002\u0002\u0002\u055f\u0560\u0003\u0002\u0002", + "\u0002\u0560\u0563\u0003\u0002\u0002\u0002\u0561\u055f\u0003\u0002\u0002", + "\u0002\u0562\u0542\u0003\u0002\u0002\u0002\u0562\u0558\u0003\u0002\u0002", + "\u0002\u0563/\u0003\u0002\u0002\u0002\u0564\u0565\u0007\u033f\u0002", + "\u0002\u05651\u0003\u0002\u0002\u0002\u0566\u0577\u0005\u0262\u0132", + "\u0002\u0567\u0577\u0005\u0264\u0133\u0002\u0568\u0577\u0005\u01aa\u00d6", + "\u0002\u0569\u0577\u0005\u01a8\u00d5\u0002\u056a\u0577\u0005\u019e\u00d0", + "\u0002\u056b\u0577\u0005\u01a2\u00d2\u0002\u056c\u0577\u0005\u0278\u013d", + "\u0002\u056d\u0577\u0005\u0270\u0139\u0002\u056e\u0577\u0005\u01ac\u00d7", + "\u0002\u056f\u0577\u0005\u0280\u0141\u0002\u0570\u0577\u0005\u029c\u014f", + "\u0002\u0571\u0577\u0005\u029e\u0150\u0002\u0572\u0577\u0005\u02a2\u0152", + "\u0002\u0573\u0577\u0005\u02a4\u0153\u0002\u0574\u0577\u0005\u02a6\u0154", + "\u0002\u0575\u0577\u0005\u02a8\u0155\u0002\u0576\u0566\u0003\u0002\u0002", + "\u0002\u0576\u0567\u0003\u0002\u0002\u0002\u0576\u0568\u0003\u0002\u0002", + "\u0002\u0576\u0569\u0003\u0002\u0002\u0002\u0576\u056a\u0003\u0002\u0002", + "\u0002\u0576\u056b\u0003\u0002\u0002\u0002\u0576\u056c\u0003\u0002\u0002", + "\u0002\u0576\u056d\u0003\u0002\u0002\u0002\u0576\u056e\u0003\u0002\u0002", + "\u0002\u0576\u056f\u0003\u0002\u0002\u0002\u0576\u0570\u0003\u0002\u0002", + "\u0002\u0576\u0571\u0003\u0002\u0002\u0002\u0576\u0572\u0003\u0002\u0002", + "\u0002\u0576\u0573\u0003\u0002\u0002\u0002\u0576\u0574\u0003\u0002\u0002", + "\u0002\u0576\u0575\u0003\u0002\u0002\u0002\u05773\u0003\u0002\u0002", + "\u0002\u0578\u0579\u0007\n\u0002\u0002\u0579\u057a\u0007\u000f\u0002", + "\u0002\u057a\u057b\u0007\u0121\u0002\u0002\u057b\u057c\u0005\u03c6\u01e4", + "\u0002\u057c\u0583\u0007\u0179\u0002\u0002\u057d\u057f\u0007\u033e\u0002", + "\u0002\u057e\u057d\u0003\u0002\u0002\u0002\u057e\u057f\u0003\u0002\u0002", + "\u0002\u057f\u0580\u0003\u0002\u0002\u0002\u0580\u0581\u0007\u025d\u0002", + "\u0002\u0581\u0582\u0007\u032a\u0002\u0002\u0582\u0584\u0005\u03c6\u01e4", + "\u0002\u0583\u057e\u0003\u0002\u0002\u0002\u0583\u0584\u0003\u0002\u0002", + "\u0002\u0584\u058b\u0003\u0002\u0002\u0002\u0585\u0587\u0007\u033e\u0002", + "\u0002\u0586\u0585\u0003\u0002\u0002\u0002\u0586\u0587\u0003\u0002\u0002", + "\u0002\u0587\u0588\u0003\u0002\u0002\u0002\u0588\u0589\u0007\u00f4\u0002", + "\u0002\u0589\u058a\u0007\u032a\u0002\u0002\u058a\u058c\u0007\u0326\u0002", + "\u0002\u058b\u0586\u0003\u0002\u0002\u0002\u058b\u058c\u0003\u0002\u0002", + "\u0002\u058c\u0593\u0003\u0002\u0002\u0002\u058d\u058f\u0007\u033e\u0002", + "\u0002\u058e\u058d\u0003\u0002\u0002\u0002\u058e\u058f\u0003\u0002\u0002", + "\u0002\u058f\u0590\u0003\u0002\u0002\u0002\u0590\u0591\u0007[\u0002", + "\u0002\u0591\u0592\u0007\u032a\u0002\u0002\u0592\u0594\u0005\u03c6\u01e4", + "\u0002\u0593\u058e\u0003\u0002\u0002\u0002\u0593\u0594\u0003\u0002\u0002", + "\u0002\u05945\u0003\u0002\u0002\u0002\u0595\u0596\u0007I\u0002\u0002", + "\u0596\u0597\u0007\u000f\u0002\u0002\u0597\u0598\u0007\u0121\u0002\u0002", + "\u0598\u0599\u0005\u03c6\u01e4\u0002\u0599\u05a0\u0007\u0179\u0002\u0002", + "\u059a\u059c\u0007\u033e\u0002\u0002\u059b\u059a\u0003\u0002\u0002\u0002", + "\u059b\u059c\u0003\u0002\u0002\u0002\u059c\u059d\u0003\u0002\u0002\u0002", + "\u059d\u059e\u0007\u00f4\u0002\u0002\u059e\u059f\u0007\u032a\u0002\u0002", + "\u059f\u05a1\u0007\u0326\u0002\u0002\u05a0\u059b\u0003\u0002\u0002\u0002", + "\u05a0\u05a1\u0003\u0002\u0002\u0002\u05a1\u05a8\u0003\u0002\u0002\u0002", + "\u05a2\u05a4\u0007\u033e\u0002\u0002\u05a3\u05a2\u0003\u0002\u0002\u0002", + "\u05a3\u05a4\u0003\u0002\u0002\u0002\u05a4\u05a5\u0003\u0002\u0002\u0002", + "\u05a5\u05a6\u0007[\u0002\u0002\u05a6\u05a7\u0007\u032a\u0002\u0002", + "\u05a7\u05a9\u0005\u03c6\u01e4\u0002\u05a8\u05a3\u0003\u0002\u0002\u0002", + "\u05a8\u05a9\u0003\u0002\u0002\u0002\u05a97\u0003\u0002\u0002\u0002", + "\u05aa\u05ab\u0007g\u0002\u0002\u05ab\u05ae\u0007\u0189\u0002\u0002", + "\u05ac\u05ad\u0007\u0099\u0002\u0002\u05ad\u05af\u0007w\u0002\u0002", + "\u05ae\u05ac\u0003\u0002\u0002\u0002\u05ae\u05af\u0003\u0002\u0002\u0002", + "\u05af\u05b3\u0003\u0002\u0002\u0002\u05b0\u05b1\u0005\u03c6\u01e4\u0002", + "\u05b1\u05b2\u0007\u0337\u0002\u0002\u05b2\u05b4\u0003\u0002\u0002\u0002", + "\u05b3\u05b0\u0003\u0002\u0002\u0002\u05b3\u05b4\u0003\u0002\u0002\u0002", + "\u05b4\u05b5\u0003\u0002\u0002\u0002\u05b5\u05b6\u0005\u03c6\u01e4\u0002", + "\u05b69\u0003\u0002\u0002\u0002\u05b7\u05b8\u0007g\u0002\u0002\u05b8", + "\u05b9\u0007\u000f\u0002\u0002\u05b9\u05ba\u0007\u0121\u0002\u0002\u05ba", + "\u05bb\u0005\u03c6\u01e4\u0002\u05bb;\u0003\u0002\u0002\u0002\u05bc", + "\u05bd\u0005> \u0002\u05bd\u05be\u0005\u03c6\u01e4\u0002\u05be\u05bf", + "\u0005@!\u0002\u05bf=\u0003\u0002\u0002\u0002\u05c0\u05c1\u0007\n\u0002", + "\u0002\u05c1\u05c2\u0007\u0195\u0002\u0002\u05c2?\u0003\u0002\u0002", + "\u0002\u05c3\u05c5\u0005B\"\u0002\u05c4\u05c3\u0003\u0002\u0002\u0002", + "\u05c4\u05c5\u0003\u0002\u0002\u0002\u05c5\u05c7\u0003\u0002\u0002\u0002", + "\u05c6\u05c8\u0005X-\u0002\u05c7\u05c6\u0003\u0002\u0002\u0002\u05c7", + "\u05c8\u0003\u0002\u0002\u0002\u05c8\u05ca\u0003\u0002\u0002\u0002\u05c9", + "\u05cb\u0005F$\u0002\u05ca\u05c9\u0003\u0002\u0002\u0002\u05ca\u05cb", + "\u0003\u0002\u0002\u0002\u05cb\u05cd\u0003\u0002\u0002\u0002\u05cc\u05ce", + "\u0005L\'\u0002\u05cd\u05cc\u0003\u0002\u0002\u0002\u05cd\u05ce\u0003", + "\u0002\u0002\u0002\u05ceA\u0003\u0002\u0002\u0002\u05cf\u05d2\u0005", + "D#\u0002\u05d0\u05d3\u0005\\/\u0002\u05d1\u05d3\u0005T+\u0002\u05d2", + "\u05d0\u0003\u0002\u0002\u0002\u05d2\u05d1\u0003\u0002\u0002\u0002\u05d3", + "C\u0003\u0002\u0002\u0002\u05d4\u05d5\u0007\u008b\u0002\u0002\u05d5", + "E\u0003\u0002\u0002\u0002\u05d6\u05d7\u0005J&\u0002\u05d7\u05d8\u0005", + "H%\u0002\u05d8G\u0003\u0002\u0002\u0002\u05d9\u05dc\u0007\u0006\u0002", + "\u0002\u05da\u05dc\u0005n8\u0002\u05db\u05d9\u0003\u0002\u0002\u0002", + "\u05db\u05da\u0003\u0002\u0002\u0002\u05dcI\u0003\u0002\u0002\u0002", + "\u05dd\u05de\u0007g\u0002\u0002\u05deK\u0003\u0002\u0002\u0002\u05df", + "\u05e0\u0005N(\u0002\u05e0\u05e1\u0005P)\u0002\u05e1M\u0003\u0002\u0002", + "\u0002\u05e2\u05e3\u0007\u0004\u0002\u0002\u05e3\u05e4\u0007\u0081\u0002", + "\u0002\u05e4\u05e5\u0007\u008b\u0002\u0002\u05e5O\u0003\u0002\u0002", + "\u0002\u05e6\u05ea\u0005R*\u0002\u05e7\u05e8\u0005V,\u0002\u05e8\u05e9", + "\u0005\u03c6\u01e4\u0002\u05e9\u05eb\u0003\u0002\u0002\u0002\u05ea\u05e7", + "\u0003\u0002\u0002\u0002\u05ea\u05eb\u0003\u0002\u0002\u0002\u05ebQ", + "\u0003\u0002\u0002\u0002\u05ec\u05ed\u0007\u0326\u0002\u0002\u05edS", + "\u0003\u0002\u0002\u0002\u05ee\u05ef\u0005V,\u0002\u05ef\u05f0\u0005", + "\u03c6\u01e4\u0002\u05f0U\u0003\u0002\u0002\u0002\u05f1\u05f2\u0007", + "\u0010\u0002\u0002\u05f2W\u0003\u0002\u0002\u0002\u05f3\u05f4\u0005", + "Z.\u0002\u05f4\u05f5\u0005^0\u0002\u05f5Y\u0003\u0002\u0002\u0002\u05f6", + "\u05f7\u0007\u0179\u0002\u0002\u05f7[\u0003\u0002\u0002\u0002\u05f8", + "\u05fc\u0005`1\u0002\u05f9\u05fc\u0005j6\u0002\u05fa\u05fc\u0007\u0326", + "\u0002\u0002\u05fb\u05f8\u0003\u0002\u0002\u0002\u05fb\u05f9\u0003\u0002", + "\u0002\u0002\u05fb\u05fa\u0003\u0002\u0002\u0002\u05fc]\u0003\u0002", + "\u0002\u0002\u05fd\u05fe\b0\u0001\u0002\u05fe\u05ff\u0007\u00f6\u0002", + "\u0002\u05ff\u0600\u0007\u032a\u0002\u0002\u0600\u0607\t\b\u0002\u0002", + "\u0601\u0602\u0007\u0173\u0002\u0002\u0602\u0603\u0007\u032a\u0002\u0002", + "\u0603\u0607\t\t\u0002\u0002\u0604\u0605\u0007\u0163\u0002\u0002\u0605", + "\u0607\u0007\u01c8\u0002\u0002\u0606\u05fd\u0003\u0002\u0002\u0002\u0606", + "\u0601\u0003\u0002\u0002\u0002\u0606\u0604\u0003\u0002\u0002\u0002\u0607", + "\u060c\u0003\u0002\u0002\u0002\u0608\u0609\f\u0003\u0002\u0002\u0609", + "\u060b\u0007\u033e\u0002\u0002\u060a\u0608\u0003\u0002\u0002\u0002\u060b", + "\u060e\u0003\u0002\u0002\u0002\u060c\u060a\u0003\u0002\u0002\u0002\u060c", + "\u060d\u0003\u0002\u0002\u0002\u060d_\u0003\u0002\u0002\u0002\u060e", + "\u060c\u0003\u0002\u0002\u0002\u060f\u0610\u0005d3\u0002\u0610\u0611", + "\u0005b2\u0002\u0611\u0612\u0005f4\u0002\u0612a\u0003\u0002\u0002\u0002", + "\u0613\u0614\u0005\u03c6\u01e4\u0002\u0614c\u0003\u0002\u0002\u0002", + "\u0615\u0616\u0007e\u0002\u0002\u0616e\u0003\u0002\u0002\u0002\u0617", + "\u0618\u0005h5\u0002\u0618\u0619\u0005f4\u0002\u0619\u061c\u0003\u0002", + "\u0002\u0002\u061a\u061c\u0005\u03c6\u01e4\u0002\u061b\u0617\u0003\u0002", + "\u0002\u0002\u061b\u061a\u0003\u0002\u0002\u0002\u061cg\u0003\u0002", + "\u0002\u0002\u061d\u061e\u0007\u0019\u0002\u0002\u061ei\u0003\u0002", + "\u0002\u0002\u061f\u0620\u0005l7\u0002\u0620\u0621\u0005f4\u0002\u0621", + "k\u0003\u0002\u0002\u0002\u0622\u0623\u0007\u01e3\u0002\u0002\u0623", + "m\u0003\u0002\u0002\u0002\u0624\u0625\u0005p9\u0002\u0625\u0626\u0005", + "j6\u0002\u0626\u0627\u0007\u031f\u0002\u0002\u0627\u0628\u0007\u033e", + "\u0002\u0002\u0628\u062b\u0003\u0002\u0002\u0002\u0629\u062b\u0005j", + "6\u0002\u062a\u0624\u0003\u0002\u0002\u0002\u062a\u0629\u0003\u0002", + "\u0002\u0002\u062bo\u0003\u0002\u0002\u0002\u062c\u062d\u0007\u031f", + "\u0002\u0002\u062dq\u0003\u0002\u0002\u0002\u062e\u062f\u0007I\u0002", + "\u0002\u062f\u0630\u0007\u0195\u0002\u0002\u0630\u0633\u0005\u03c6\u01e4", + "\u0002\u0631\u0632\u0007\u0014\u0002\u0002\u0632\u0634\u0005\u03c6\u01e4", + "\u0002\u0633\u0631\u0003\u0002\u0002\u0002\u0633\u0634\u0003\u0002\u0002", + "\u0002\u0634\u0635\u0003\u0002\u0002\u0002\u0635\u063a\u0007\u008b\u0002", + "\u0002\u0636\u0638\u0007\u033e\u0002\u0002\u0637\u0636\u0003\u0002\u0002", + "\u0002\u0637\u0638\u0003\u0002\u0002\u0002\u0638\u0639\u0003\u0002\u0002", + "\u0002\u0639\u063b\t\n\u0002\u0002\u063a\u0637\u0003\u0002\u0002\u0002", + "\u063b\u063c\u0003\u0002\u0002\u0002\u063c\u063a\u0003\u0002\u0002\u0002", + "\u063c\u063d\u0003\u0002\u0002\u0002\u063d\u0642\u0003\u0002\u0002\u0002", + "\u063e\u063f\u0007\u0179\u0002\u0002\u063f\u0640\u0007\u00f6\u0002\u0002", + "\u0640\u0641\u0007\u032a\u0002\u0002\u0641\u0643\t\b\u0002\u0002\u0642", + "\u063e\u0003\u0002\u0002\u0002\u0642\u0643\u0003\u0002\u0002\u0002\u0643", + "s\u0003\u0002\u0002\u0002\u0644\u0645\u0007g\u0002\u0002\u0645\u0648", + "\u0007\u0195\u0002\u0002\u0646\u0647\u0007\u0099\u0002\u0002\u0647\u0649", + "\u0007w\u0002\u0002\u0648\u0646\u0003\u0002\u0002\u0002\u0648\u0649", + "\u0003\u0002\u0002\u0002\u0649\u064e\u0003\u0002\u0002\u0002\u064a\u064c", + "\u0007\u033e\u0002\u0002\u064b\u064a\u0003\u0002\u0002\u0002\u064b\u064c", + "\u0003\u0002\u0002\u0002\u064c\u064d\u0003\u0002\u0002\u0002\u064d\u064f", + "\u0005\u03c6\u01e4\u0002\u064e\u064b\u0003\u0002\u0002\u0002\u064f\u0650", + "\u0003\u0002\u0002\u0002\u0650\u064e\u0003\u0002\u0002\u0002\u0650\u0651", + "\u0003\u0002\u0002\u0002\u0651\u0655\u0003\u0002\u0002\u0002\u0652\u0653", + "\u0007\u0179\u0002\u0002\u0653\u0654\u0007\u0263\u0002\u0002\u0654\u0656", + "\u0007\u01d9\u0002\u0002\u0655\u0652\u0003\u0002\u0002\u0002\u0655\u0656", + "\u0003\u0002\u0002\u0002\u0656u\u0003\u0002\u0002\u0002\u0657\u0658", + "\u0005x=\u0002\u0658\u065d\u0005\u03c6\u01e4\u0002\u0659\u065e\u0005", + "z>\u0002\u065a\u065b\u0007\u02a9\u0002\u0002\u065b\u065c\u0007\u028c", + "\u0002\u0002\u065c\u065e\u0007\u00ac\u0002\u0002\u065d\u0659\u0003\u0002", + "\u0002\u0002\u065d\u065a\u0003\u0002\u0002\u0002\u065ew\u0003\u0002", + "\u0002\u0002\u065f\u0660\u0007\n\u0002\u0002\u0660\u0661\u0007\u0012", + "\u0002\u0002\u0661\u0662\u0007\u00ac\u0002\u0002\u0662y\u0003\u0002", + "\u0002\u0002\u0663\u0664\u0005|?\u0002\u0664\u0667\u0005~@\u0002\u0665", + "\u0666\u0007\u033e\u0002\u0002\u0666\u0668\u0005~@\u0002\u0667\u0665", + "\u0003\u0002\u0002\u0002\u0667\u0668\u0003\u0002\u0002\u0002\u0668\u0669", + "\u0003\u0002\u0002\u0002\u0669\u066a\u0007\u033d\u0002\u0002\u066a{", + "\u0003\u0002\u0002\u0002\u066b\u066c\u0007\u0179\u0002\u0002\u066c\u066d", + "\u0007\u028c\u0002\u0002\u066d\u066e\u0007\u00ac\u0002\u0002\u066e\u066f", + "\u0007\u033c\u0002\u0002\u066f}\u0003\u0002\u0002\u0002\u0670\u0671", + "\u0007\u01d1\u0002\u0002\u0671\u0672\u0007&\u0002\u0002\u0672\u0673", + "\u0007\u00f4\u0002\u0002\u0673\u0674\u0007\u032a\u0002\u0002\u0674\u067b", + "\u0007\u0326\u0002\u0002\u0675\u0676\u0007\u01ec\u0002\u0002\u0676\u0677", + "\u0007&\u0002\u0002\u0677\u0678\u0007\u00f4\u0002\u0002\u0678\u0679", + "\u0007\u032a\u0002\u0002\u0679\u067b\u0007\u0326\u0002\u0002\u067a\u0670", + "\u0003\u0002\u0002\u0002\u067a\u0675\u0003\u0002\u0002\u0002\u067b\u007f", + "\u0003\u0002\u0002\u0002\u067c\u067d\u0007I\u0002\u0002\u067d\u067e", + "\u0007\u0012\u0002\u0002\u067e\u067f\u0007\u00ac\u0002\u0002\u067f\u0682", + "\u0005\u03c6\u01e4\u0002\u0680\u0681\u0007\u0014\u0002\u0002\u0681\u0683", + "\u0005\u03c6\u01e4\u0002\u0682\u0680\u0003\u0002\u0002\u0002\u0682\u0683", + "\u0003\u0002\u0002\u0002\u0683\u0691\u0003\u0002\u0002\u0002\u0684\u068f", + "\u0007\u008b\u0002\u0002\u0685\u0686\u0007\u0081\u0002\u0002\u0686\u0687", + "\u0007\u032a\u0002\u0002\u0687\u0690\u0007\u0326\u0002\u0002\u0688\u0689", + "\u0007u\u0002\u0002\u0689\u068a\u0007\u032a\u0002\u0002\u068a\u0690", + "\u0007\u0326\u0002\u0002\u068b\u068c\u0007\u0195\u0002\u0002\u068c\u0690", + "\u0005\u03c6\u01e4\u0002\u068d\u068e\u0007\u0291\u0002\u0002\u068e\u0690", + "\u0005\u03c6\u01e4\u0002\u068f\u0685\u0003\u0002\u0002\u0002\u068f\u0688", + "\u0003\u0002\u0002\u0002\u068f\u068b\u0003\u0002\u0002\u0002\u068f\u068d", + "\u0003\u0002\u0002\u0002\u0690\u0692\u0003\u0002\u0002\u0002\u0691\u0684", + "\u0003\u0002\u0002\u0002\u0691\u0692\u0003\u0002\u0002\u0002\u0692\u069f", + "\u0003\u0002\u0002\u0002\u0693\u069d\u0007\u0179\u0002\u0002\u0694\u0695", + "\u0007\u018a\u0002\u0002\u0695\u0696\u0007\u032a\u0002\u0002\u0696\u069e", + "\t\u000b\u0002\u0002\u0697\u0698\u0007\u0292\u0002\u0002\u0698\u0699", + "\u0007\u032a\u0002\u0002\u0699\u069e\u0007\u0326\u0002\u0002\u069a\u069b", + "\u0007\u01c3\u0002\u0002\u069b\u069c\u0007\u032a\u0002\u0002\u069c\u069e", + "\t\f\u0002\u0002\u069d\u0694\u0003\u0002\u0002\u0002\u069d\u0697\u0003", + "\u0002\u0002\u0002\u069d\u069a\u0003\u0002\u0002\u0002\u069e\u06a0\u0003", + "\u0002\u0002\u0002\u069f\u0693\u0003\u0002\u0002\u0002\u069f\u06a0\u0003", + "\u0002\u0002\u0002\u06a0\u06a6\u0003\u0002\u0002\u0002\u06a1\u06a2\u0007", + "\u01ec\u0002\u0002\u06a2\u06a3\u0007&\u0002\u0002\u06a3\u06a4\u0007", + "\u00f4\u0002\u0002\u06a4\u06a5\u0007\u032a\u0002\u0002\u06a5\u06a7\u0007", + "\u0326\u0002\u0002\u06a6\u06a1\u0003\u0002\u0002\u0002\u06a6\u06a7\u0003", + "\u0002\u0002\u0002\u06a7\u0081\u0003\u0002\u0002\u0002\u06a8\u06a9\u0007", + "g\u0002\u0002\u06a9\u06aa\u0007\u0012\u0002\u0002\u06aa\u06ab\u0007", + "\u00ac\u0002\u0002\u06ab\u06af\u0005\u03c6\u01e4\u0002\u06ac\u06ad\u0007", + "\u02a9\u0002\u0002\u06ad\u06ae\u0007\u0291\u0002\u0002\u06ae\u06b0\u0007", + "\u00ac\u0002\u0002\u06af\u06ac\u0003\u0002\u0002\u0002\u06af\u06b0\u0003", + "\u0002\u0002\u0002\u06b0\u0083\u0003\u0002\u0002\u0002\u06b1\u06b5\u0005", + "\u008cG\u0002\u06b2\u06b3\u0005\u0094K\u0002\u06b3\u06b4\u0005\u008a", + "F\u0002\u06b4\u06b6\u0003\u0002\u0002\u0002\u06b5\u06b2\u0003\u0002", + "\u0002\u0002\u06b5\u06b6\u0003\u0002\u0002\u0002\u06b6\u06b7\u0003\u0002", + "\u0002\u0002\u06b7\u06b8\u0005\u0386\u01c4\u0002\u06b8\u06b9\u0005\u0088", + "E\u0002\u06b9\u06ba\u0005\u0086D\u0002\u06ba\u0085\u0003\u0002\u0002", + "\u0002\u06bb\u06bf\u0005\u03c6\u01e4\u0002\u06bc\u06bd\u0007\u012e\u0002", + "\u0002\u06bd\u06bf\u0007\u027d\u0002\u0002\u06be\u06bb\u0003\u0002\u0002", + "\u0002\u06be\u06bc\u0003\u0002\u0002\u0002\u06bf\u0087\u0003\u0002\u0002", + "\u0002\u06c0\u06c1\u0007\u015a\u0002\u0002\u06c1\u0089\u0003\u0002\u0002", + "\u0002\u06c2\u06c3\u0007\u0340\u0002\u0002\u06c3\u06c4\u0007\u0340\u0002", + "\u0002\u06c4\u008b\u0003\u0002\u0002\u0002\u06c5\u06c6\u0007\n\u0002", + "\u0002\u06c6\u06c7\u0007\u0014\u0002\u0002\u06c7\u06c8\u0007\u00e5\u0002", + "\u0002\u06c8\u008d\u0003\u0002\u0002\u0002\u06c9\u06cd\u0005\u008cG", + "\u0002\u06ca\u06cb\u0005\u0096L\u0002\u06cb\u06cc\u0005\u008aF\u0002", + "\u06cc\u06ce\u0003\u0002\u0002\u0002\u06cd\u06ca\u0003\u0002\u0002\u0002", + "\u06cd\u06ce\u0003\u0002\u0002\u0002\u06ce\u06cf\u0003\u0002\u0002\u0002", + "\u06cf\u06d0\u0005\u0386\u01c4\u0002\u06d0\u06d1\u0005\u0088E\u0002", + "\u06d1\u06d2\u0005\u0086D\u0002\u06d2\u008f\u0003\u0002\u0002\u0002", + "\u06d3\u06d7\u0005\u008cG\u0002\u06d4\u06d5\u0005\u0098M\u0002\u06d5", + "\u06d6\u0005\u008aF\u0002\u06d6\u06d8\u0003\u0002\u0002\u0002\u06d7", + "\u06d4\u0003\u0002\u0002\u0002\u06d7\u06d8\u0003\u0002\u0002\u0002\u06d8", + "\u06d9\u0003\u0002\u0002\u0002\u06d9\u06da\u0005\u0388\u01c5\u0002\u06da", + "\u06db\u0005\u0088E\u0002\u06db\u06dc\u0005\u0086D\u0002\u06dc\u0091", + "\u0003\u0002\u0002\u0002\u06dd\u06e1\u0005\u008cG\u0002\u06de\u06df", + "\u0005\u009aN\u0002\u06df\u06e0\u0005\u008aF\u0002\u06e0\u06e2\u0003", + "\u0002\u0002\u0002\u06e1\u06de\u0003\u0002\u0002\u0002\u06e1\u06e2\u0003", + "\u0002\u0002\u0002\u06e2\u06e3\u0003\u0002\u0002\u0002\u06e3\u06e4\u0005", + "\u038a\u01c6\u0002\u06e4\u06e5\u0005\u0088E\u0002\u06e5\u06e6\u0005", + "\u0086D\u0002\u06e6\u0093\u0003\u0002\u0002\u0002\u06e7\u070a\u0007", + "\u0271\u0002\u0002\u06e8\u070a\u0007\u0195\u0002\u0002\u06e9\u06ea\u0007", + "\u0012\u0002\u0002\u06ea\u070a\u0007\u00ac\u0002\u0002\u06eb\u06ec\u0007", + "\u019f\u0002\u0002\u06ec\u070a\u0007\u0092\u0002\u0002\u06ed\u070a\u0007", + "+\u0002\u0002\u06ee\u070a\u0007D\u0002\u0002\u06ef\u070a\u0007\u0301", + "\u0002\u0002\u06f0\u070a\u0007T\u0002\u0002\u06f1\u070a\u0007m\u0002", + "\u0002\u06f2\u06f3\u0007\u0209\u0002\u0002\u06f3\u070a\u0007\u01ae\u0002", + "\u0002\u06f4\u06f5\u0007\u0209\u0002\u0002\u06f5\u070a\u0007\u02e4\u0002", + "\u0002\u06f6\u06f7\u0007\u0250\u0002\u0002\u06f7\u070a\u0007\u0301\u0002", + "\u0002\u06f8\u06f9\u0007\u02a7\u0002\u0002\u06f9\u06fa\u0007\u0136\u0002", + "\u0002\u06fa\u070a\u0007\u01a6\u0002\u0002\u06fb\u070a\u0007\u0121\u0002", + "\u0002\u06fc\u070a\u0007\u02b8\u0002\u0002\u06fd\u070a\u0007\u012e\u0002", + "\u0002\u06fe\u06ff\u0007\u02c2\u0002\u0002\u06ff\u0700\u0007\u0290\u0002", + "\u0002\u0700\u070a\u0007\u0233\u0002\u0002\u0701\u0702\u0007\u0135\u0002", + "\u0002\u0702\u070a\u0007\u0121\u0002\u0002\u0703\u070a\u0007\u0136\u0002", + "\u0002\u0704\u0705\u0007\u02eb\u0002\u0002\u0705\u070a\u0007\u00ac\u0002", + "\u0002\u0706\u0707\u0007\u0315\u0002\u0002\u0707\u0708\u0007\u012e\u0002", + "\u0002\u0708\u070a\u0007\u01b5\u0002\u0002\u0709\u06e7\u0003\u0002\u0002", + "\u0002\u0709\u06e8\u0003\u0002\u0002\u0002\u0709\u06e9\u0003\u0002\u0002", + "\u0002\u0709\u06eb\u0003\u0002\u0002\u0002\u0709\u06ed\u0003\u0002\u0002", + "\u0002\u0709\u06ee\u0003\u0002\u0002\u0002\u0709\u06ef\u0003\u0002\u0002", + "\u0002\u0709\u06f0\u0003\u0002\u0002\u0002\u0709\u06f1\u0003\u0002\u0002", + "\u0002\u0709\u06f2\u0003\u0002\u0002\u0002\u0709\u06f4\u0003\u0002\u0002", + "\u0002\u0709\u06f6\u0003\u0002\u0002\u0002\u0709\u06f8\u0003\u0002\u0002", + "\u0002\u0709\u06fb\u0003\u0002\u0002\u0002\u0709\u06fc\u0003\u0002\u0002", + "\u0002\u0709\u06fd\u0003\u0002\u0002\u0002\u0709\u06fe\u0003\u0002\u0002", + "\u0002\u0709\u0701\u0003\u0002\u0002\u0002\u0709\u0703\u0003\u0002\u0002", + "\u0002\u0709\u0704\u0003\u0002\u0002\u0002\u0709\u0706\u0003\u0002\u0002", + "\u0002\u070a\u0095\u0003\u0002\u0002\u0002\u070b\u0721\u0007\u0271\u0002", + "\u0002\u070c\u0721\u0007\u0195\u0002\u0002\u070d\u070e\u0007\u0012\u0002", + "\u0002\u070e\u0721\u0007\u00ac\u0002\u0002\u070f\u0721\u0007+\u0002", + "\u0002\u0710\u0721\u0007\u0301\u0002\u0002\u0711\u0721\u0007T\u0002", + "\u0002\u0712\u0713\u0007\u0209\u0002\u0002\u0713\u0721\u0007\u01ae\u0002", + "\u0002\u0714\u0715\u0007\u0209\u0002\u0002\u0715\u0721\u0007\u02e4\u0002", + "\u0002\u0716\u0721\u0007\u0121\u0002\u0002\u0717\u0721\u0007\u012e\u0002", + "\u0002\u0718\u0719\u0007\u02c2\u0002\u0002\u0719\u071a\u0007\u0290\u0002", + "\u0002\u071a\u0721\u0007\u0233\u0002\u0002\u071b\u071c\u0007\u02eb\u0002", + "\u0002\u071c\u0721\u0007\u00ac\u0002\u0002\u071d\u071e\u0007\u0315\u0002", + "\u0002\u071e\u071f\u0007\u012e\u0002\u0002\u071f\u0721\u0007\u01b5\u0002", + "\u0002\u0720\u070b\u0003\u0002\u0002\u0002\u0720\u070c\u0003\u0002\u0002", + "\u0002\u0720\u070d\u0003\u0002\u0002\u0002\u0720\u070f\u0003\u0002\u0002", + "\u0002\u0720\u0710\u0003\u0002\u0002\u0002\u0720\u0711\u0003\u0002\u0002", + "\u0002\u0720\u0712\u0003\u0002\u0002\u0002\u0720\u0714\u0003\u0002\u0002", + "\u0002\u0720\u0716\u0003\u0002\u0002\u0002\u0720\u0717\u0003\u0002\u0002", + "\u0002\u0720\u0718\u0003\u0002\u0002\u0002\u0720\u071b\u0003\u0002\u0002", + "\u0002\u0720\u071d\u0003\u0002\u0002\u0002\u0721\u0097\u0003\u0002\u0002", + "\u0002\u0722\u0723\t\r\u0002\u0002\u0723\u0099\u0003\u0002\u0002\u0002", + "\u0724\u0725\t\u000e\u0002\u0002\u0725\u009b\u0003\u0002\u0002\u0002", + "\u0726\u0727\u0007g\u0002\u0002\u0727\u0728\u0007\u019f\u0002\u0002", + "\u0728\u0729\u0007\u0092\u0002\u0002\u0729\u072a\u0005\u03c6\u01e4\u0002", + "\u072a\u009d\u0003\u0002\u0002\u0002\u072b\u072c\u0005\u00a0Q\u0002", + "\u072c\u072d\u0005\u00a2R\u0002\u072d\u009f\u0003\u0002\u0002\u0002", + "\u072e\u072f\u0007\n\u0002\u0002\u072f\u0730\u0007\u019f\u0002\u0002", + "\u0730\u0731\u0007\u0092\u0002\u0002\u0731\u0732\u0005\u03c6\u01e4\u0002", + "\u0732\u00a1\u0003\u0002\u0002\u0002\u0733\u0734\u0007\u013b\u0002\u0002", + "\u0734\u0744\u0007\u033c\u0002\u0002\u0735\u0736\u0007\u0016\u0002\u0002", + "\u0736\u0737\u0007\u032a\u0002\u0002\u0737\u0745\t\u000f\u0002\u0002", + "\u0738\u0739\u0007\u01f8\u0002\u0002\u0739\u073a\u0007\u032a\u0002\u0002", + "\u073a\u0745\u0007\u0322\u0002\u0002\u073b\u073c\u0007\u0214\u0002\u0002", + "\u073c\u073d\u0007\u032a\u0002\u0002\u073d\u0745\u0007\u0322\u0002\u0002", + "\u073e\u073f\u0007\u01d0\u0002\u0002\u073f\u0740\u0007\u032a\u0002\u0002", + "\u0740\u0745\t\t\u0002\u0002\u0741\u0742\u0007\u02b0\u0002\u0002\u0742", + "\u0743\u0007\u032a\u0002\u0002\u0743\u0745\u0007\u0322\u0002\u0002\u0744", + "\u0735\u0003\u0002\u0002\u0002\u0744\u0738\u0003\u0002\u0002\u0002\u0744", + "\u073b\u0003\u0002\u0002\u0002\u0744\u073e\u0003\u0002\u0002\u0002\u0744", + "\u0741\u0003\u0002\u0002\u0002\u0745\u0746\u0003\u0002\u0002\u0002\u0746", + "\u0892\u0007\u033d\u0002\u0002\u0747\u0748\u0007\u0004\u0002\u0002\u0748", + "\u0749\u0007T\u0002\u0002\u0749\u0892\u0005\u03c6\u01e4\u0002\u074a", + "\u074b\u0007\u02a9\u0002\u0002\u074b\u074c\u0007T\u0002\u0002\u074c", + "\u0892\u0005\u03c6\u01e4\u0002\u074d\u074e\u0007\u0004\u0002\u0002\u074e", + "\u074f\u0007\u02ac\u0002\u0002\u074f\u0750\u0007\u00e5\u0002\u0002\u0750", + "\u0751\u0007\u0326\u0002\u0002\u0751\u0752\u0007\u0179\u0002\u0002\u0752", + "\u0756\u0007\u033c\u0002\u0002\u0753\u0754\u0007\u01ed\u0002\u0002\u0754", + "\u0755\u0007\u032a\u0002\u0002\u0755\u0757\u0007\u0326\u0002\u0002\u0756", + "\u0753\u0003\u0002\u0002\u0002\u0756\u0757\u0003\u0002\u0002\u0002\u0757", + "\u075e\u0003\u0002\u0002\u0002\u0758\u075a\u0007\u033e\u0002\u0002\u0759", + "\u0758\u0003\u0002\u0002\u0002\u0759\u075a\u0003\u0002\u0002\u0002\u075a", + "\u075b\u0003\u0002\u0002\u0002\u075b\u075c\u0007\u0018\u0002\u0002\u075c", + "\u075d\u0007\u032a\u0002\u0002\u075d\u075f\t\u0010\u0002\u0002\u075e", + "\u0759\u0003\u0002\u0002\u0002\u075e\u075f\u0003\u0002\u0002\u0002\u075f", + "\u0766\u0003\u0002\u0002\u0002\u0760\u0762\u0007\u033e\u0002\u0002\u0761", + "\u0760\u0003\u0002\u0002\u0002\u0761\u0762\u0003\u0002\u0002\u0002\u0762", + "\u0763\u0003\u0002\u0002\u0002\u0763\u0764\u0007\u01f6\u0002\u0002\u0764", + "\u0765\u0007\u032a\u0002\u0002\u0765\u0767\t\u0011\u0002\u0002\u0766", + "\u0761\u0003\u0002\u0002\u0002\u0766\u0767\u0003\u0002\u0002\u0002\u0767", + "\u076e\u0003\u0002\u0002\u0002\u0768\u076a\u0007\u033e\u0002\u0002\u0769", + "\u0768\u0003\u0002\u0002\u0002\u0769\u076a\u0003\u0002\u0002\u0002\u076a", + "\u076b\u0003\u0002\u0002\u0002\u076b\u076c\u0007\u02ca\u0002\u0002\u076c", + "\u076d\u0007\u032a\u0002\u0002\u076d\u076f\t\u0011\u0002\u0002\u076e", + "\u0769\u0003\u0002\u0002\u0002\u076e\u076f\u0003\u0002\u0002\u0002\u076f", + "\u0776\u0003\u0002\u0002\u0002\u0770\u0772\u0007\u033e\u0002\u0002\u0771", + "\u0770\u0003\u0002\u0002\u0002\u0771\u0772\u0003\u0002\u0002\u0002\u0772", + "\u0773\u0003\u0002\u0002\u0002\u0773\u0774\u0007\u01a1\u0002\u0002\u0774", + "\u0775\u0007\u032a\u0002\u0002\u0775\u0777\u0007\u0322\u0002\u0002\u0776", + "\u0771\u0003\u0002\u0002\u0002\u0776\u0777\u0003\u0002\u0002\u0002\u0777", + "\u0781\u0003\u0002\u0002\u0002\u0778\u077a\u0007\u033e\u0002\u0002\u0779", + "\u0778\u0003\u0002\u0002\u0002\u0779\u077a\u0003\u0002\u0002\u0002\u077a", + "\u077b\u0003\u0002\u0002\u0002\u077b\u077c\u0007\u0288\u0002\u0002\u077c", + "\u077d\u0007\u033c\u0002\u0002\u077d\u077e\u0007\u0007\u0002\u0002\u077e", + "\u077f\u0007\u032a\u0002\u0002\u077f\u0780\t\u0012\u0002\u0002\u0780", + "\u0782\u0007\u033d\u0002\u0002\u0781\u0779\u0003\u0002\u0002\u0002\u0781", + "\u0782\u0003\u0002\u0002\u0002\u0782\u078c\u0003\u0002\u0002\u0002\u0783", + "\u0785\u0007\u033e\u0002\u0002\u0784\u0783\u0003\u0002\u0002\u0002\u0784", + "\u0785\u0003\u0002\u0002\u0002\u0785\u0786\u0003\u0002\u0002\u0002\u0786", + "\u0787\u0007\u02c5\u0002\u0002\u0787\u0788\u0007\u033c\u0002\u0002\u0788", + "\u0789\u0007\u0007\u0002\u0002\u0789\u078a\u0007\u032a\u0002\u0002\u078a", + "\u078b\u0007\u029d\u0002\u0002\u078b\u078d\u0007\u033d\u0002\u0002\u078c", + "\u0784\u0003\u0002\u0002\u0002\u078c\u078d\u0003\u0002\u0002\u0002\u078d", + "\u078e\u0003\u0002\u0002\u0002\u078e\u0892\u0007\u033d\u0002\u0002\u078f", + "\u0790\u0007\u02c5\u0002\u0002\u0790\u0799\u0007\u033c\u0002\u0002\u0791", + "\u0792\u0007\u0007\u0002\u0002\u0792\u0793\u0007\u032a\u0002\u0002\u0793", + "\u079a\t\u0013\u0002\u0002\u0794\u0795\u0007\u029e\u0002\u0002\u0795", + "\u0796\u0007\u032a\u0002\u0002\u0796\u0797\u0007\u033c\u0002\u0002\u0797", + "\u0798\u0007\u0326\u0002\u0002\u0798\u079a\u0007\u033d\u0002\u0002\u0799", + "\u0791\u0003\u0002\u0002\u0002\u0799\u0794\u0003\u0002\u0002\u0002\u079a", + "\u0892\u0003\u0002\u0002\u0002\u079b\u079c\u0007\u0288\u0002\u0002\u079c", + "\u07b3\u0007\u033c\u0002\u0002\u079d\u079e\u0007\u0007\u0002\u0002\u079e", + "\u079f\u0007\u032a\u0002\u0002\u079f\u07b4\t\u0013\u0002\u0002\u07a0", + "\u07a1\u0007\u029e\u0002\u0002\u07a1\u07a2\u0007\u032a\u0002\u0002\u07a2", + "\u07ad\u0007\u033c\u0002\u0002\u07a3\u07a5\u0007\u033e\u0002\u0002\u07a4", + "\u07a3\u0003\u0002\u0002\u0002\u07a4\u07a5\u0003\u0002\u0002\u0002\u07a5", + "\u07a6\u0003\u0002\u0002\u0002\u07a6\u07a8\u0007\u0326\u0002\u0002\u07a7", + "\u07a4\u0003\u0002\u0002\u0002\u07a8\u07ab\u0003\u0002\u0002\u0002\u07a9", + "\u07a7\u0003\u0002\u0002\u0002\u07a9\u07aa\u0003\u0002\u0002\u0002\u07aa", + "\u07ae\u0003\u0002\u0002\u0002\u07ab\u07a9\u0003\u0002\u0002\u0002\u07ac", + "\u07ae\u0007\u00d5\u0002\u0002\u07ad\u07a9\u0003\u0002\u0002\u0002\u07ad", + "\u07ac\u0003\u0002\u0002\u0002\u07ae\u07af\u0003\u0002\u0002\u0002\u07af", + "\u07b4\u0007\u033d\u0002\u0002\u07b0\u07b1\u0007\u02d1\u0002\u0002\u07b1", + "\u07b2\u0007\u032a\u0002\u0002\u07b2\u07b4\u0007\u0322\u0002\u0002\u07b3", + "\u079d\u0003\u0002\u0002\u0002\u07b3\u07a0\u0003\u0002\u0002\u0002\u07b3", + "\u07b0\u0003\u0002\u0002\u0002\u07b4\u0892\u0003\u0002\u0002\u0002\u07b5", + "\u07b6\u0007\u025a\u0002\u0002\u07b6\u07b7\u0007\u02ac\u0002\u0002\u07b7", + "\u07b8\u0007\u00e5\u0002\u0002\u07b8\u07f2\u0007\u0326\u0002\u0002\u07b9", + "\u07ba\u0007\u0179\u0002\u0002\u07ba\u07ca\u0007\u033c\u0002\u0002\u07bb", + "\u07bc\u0007\u01ed\u0002\u0002\u07bc\u07bd\u0007\u032a\u0002\u0002\u07bd", + "\u07cb\u0007\u0326\u0002\u0002\u07be\u07bf\u0007\u0018\u0002\u0002\u07bf", + "\u07c0\u0007\u032a\u0002\u0002\u07c0\u07cb\t\u0010\u0002\u0002\u07c1", + "\u07c2\u0007\u01f6\u0002\u0002\u07c2\u07c3\u0007\u032a\u0002\u0002\u07c3", + "\u07cb\t\u0011\u0002\u0002\u07c4\u07c5\u0007\u02ca\u0002\u0002\u07c5", + "\u07c6\u0007\u032a\u0002\u0002\u07c6\u07cb\t\u0011\u0002\u0002\u07c7", + "\u07c8\u0007\u01a1\u0002\u0002\u07c8\u07c9\u0007\u032a\u0002\u0002\u07c9", + "\u07cb\u0007\u0322\u0002\u0002\u07ca\u07bb\u0003\u0002\u0002\u0002\u07ca", + "\u07be\u0003\u0002\u0002\u0002\u07ca\u07c1\u0003\u0002\u0002\u0002\u07ca", + "\u07c4\u0003\u0002\u0002\u0002\u07ca\u07c7\u0003\u0002\u0002\u0002\u07cb", + "\u07f3\u0003\u0002\u0002\u0002\u07cc\u07cd\u0007\u02c5\u0002\u0002\u07cd", + "\u07d6\u0007\u033c\u0002\u0002\u07ce\u07cf\u0007\u0007\u0002\u0002\u07cf", + "\u07d0\u0007\u032a\u0002\u0002\u07d0\u07d7\t\u0013\u0002\u0002\u07d1", + "\u07d2\u0007\u029e\u0002\u0002\u07d2\u07d3\u0007\u032a\u0002\u0002\u07d3", + "\u07d4\u0007\u033c\u0002\u0002\u07d4\u07d5\u0007\u0326\u0002\u0002\u07d5", + "\u07d7\u0007\u033d\u0002\u0002\u07d6\u07ce\u0003\u0002\u0002\u0002\u07d6", + "\u07d1\u0003\u0002\u0002\u0002\u07d7\u07f3\u0003\u0002\u0002\u0002\u07d8", + "\u07d9\u0007\u0288\u0002\u0002\u07d9\u07f0\u0007\u033c\u0002\u0002\u07da", + "\u07db\u0007\u0007\u0002\u0002\u07db\u07dc\u0007\u032a\u0002\u0002\u07dc", + "\u07f1\t\u0013\u0002\u0002\u07dd\u07de\u0007\u029e\u0002\u0002\u07de", + "\u07df\u0007\u032a\u0002\u0002\u07df\u07ea\u0007\u033c\u0002\u0002\u07e0", + "\u07e2\u0007\u033e\u0002\u0002\u07e1\u07e0\u0003\u0002\u0002\u0002\u07e1", + "\u07e2\u0003\u0002\u0002\u0002\u07e2\u07e3\u0003\u0002\u0002\u0002\u07e3", + "\u07e5\u0007\u0326\u0002\u0002\u07e4\u07e1\u0003\u0002\u0002\u0002\u07e5", + "\u07e8\u0003\u0002\u0002\u0002\u07e6\u07e4\u0003\u0002\u0002\u0002\u07e6", + "\u07e7\u0003\u0002\u0002\u0002\u07e7\u07eb\u0003\u0002\u0002\u0002\u07e8", + "\u07e6\u0003\u0002\u0002\u0002\u07e9\u07eb\u0007\u00d5\u0002\u0002\u07ea", + "\u07e6\u0003\u0002\u0002\u0002\u07ea\u07e9\u0003\u0002\u0002\u0002\u07eb", + "\u07ec\u0003\u0002\u0002\u0002\u07ec\u07f1\u0007\u033d\u0002\u0002\u07ed", + "\u07ee\u0007\u02d1\u0002\u0002\u07ee\u07ef\u0007\u032a\u0002\u0002\u07ef", + "\u07f1\u0007\u0322\u0002\u0002\u07f0\u07da\u0003\u0002\u0002\u0002\u07f0", + "\u07dd\u0003\u0002\u0002\u0002\u07f0\u07ed\u0003\u0002\u0002\u0002\u07f1", + "\u07f3\u0003\u0002\u0002\u0002\u07f2\u07b9\u0003\u0002\u0002\u0002\u07f2", + "\u07cc\u0003\u0002\u0002\u0002\u07f2\u07d8\u0003\u0002\u0002\u0002\u07f3", + "\u07f4\u0003\u0002\u0002\u0002\u07f4\u0892\u0007\u033d\u0002\u0002\u07f5", + "\u07f6\u0007\u02a9\u0002\u0002\u07f6\u07f7\u0007\u02ac\u0002\u0002\u07f7", + "\u07f8\u0007\u00e5\u0002\u0002\u07f8\u0892\u0007\u0326\u0002\u0002\u07f9", + "\u0892\u0007\u00aa\u0002\u0002\u07fa\u07fb\u0007\u00aa\u0002\u0002\u07fb", + "\u07fc\u0007\u019f\u0002\u0002\u07fc\u07fd\u0007\u0092\u0002\u0002\u07fd", + "\u0814\u0007\u00e5\u0002\u0002\u07fe\u0800\u0007\u033e\u0002\u0002\u07ff", + "\u07fe\u0003\u0002\u0002\u0002\u07ff\u0800\u0003\u0002\u0002\u0002\u0800", + "\u0801\u0003\u0002\u0002\u0002\u0801\u0802\u0007\u0326\u0002\u0002\u0802", + "\u0803\u0007\u0179\u0002\u0002\u0803\u0804\u0007\u033c\u0002\u0002\u0804", + "\u0805\u0007\u0235\u0002\u0002\u0805\u0806\u0007\u032a\u0002\u0002\u0806", + "\u0807\u0007\u0326\u0002\u0002\u0807\u0808\u0007\u033e\u0002\u0002\u0808", + "\u0809\u0007\u0018\u0002\u0002\u0809\u080a\u0007\u032a\u0002\u0002\u080a", + "\u080b\t\u0010\u0002\u0002\u080b\u080c\u0007\u033e\u0002\u0002\u080c", + "\u080d\u0007\u01f6\u0002\u0002\u080d\u080e\u0007\u032a\u0002\u0002\u080e", + "\u080f\u0007\u023e\u0002\u0002\u080f\u0810\u0007\u033e\u0002\u0002\u0810", + "\u0811\u0007\u02ca\u0002\u0002\u0811\u0812\u0007\u032a\u0002\u0002\u0812", + "\u0813\t\u0011\u0002\u0002\u0813\u0815\u0007\u033d\u0002\u0002\u0814", + "\u07ff\u0003\u0002\u0002\u0002\u0815\u0816\u0003\u0002\u0002\u0002\u0816", + "\u0814\u0003\u0002\u0002\u0002\u0816\u0817\u0003\u0002\u0002\u0002\u0817", + "\u0892\u0003\u0002\u0002\u0002\u0818\u0819\u0007\u025a\u0002\u0002\u0819", + "\u081a\u0007\u019f\u0002\u0002\u081a\u081b\u0007\u0092\u0002\u0002\u081b", + "\u083e\u0007\u00e5\u0002\u0002\u081c\u081e\u0007\u033e\u0002\u0002\u081d", + "\u081c\u0003\u0002\u0002\u0002\u081d\u081e\u0003\u0002\u0002\u0002\u081e", + "\u081f\u0003\u0002\u0002\u0002\u081f\u0820\u0007\u0326\u0002\u0002\u0820", + "\u0821\u0007\u0179\u0002\u0002\u0821\u0822\u0007\u033c\u0002\u0002\u0822", + "\u0823\u0007\u0235\u0002\u0002\u0823\u0824\u0007\u032a\u0002\u0002\u0824", + "\u082b\u0007\u0326\u0002\u0002\u0825\u0827\u0007\u033e\u0002\u0002\u0826", + "\u0825\u0003\u0002\u0002\u0002\u0826\u0827\u0003\u0002\u0002\u0002\u0827", + "\u0828\u0003\u0002\u0002\u0002\u0828\u0829\u0007\u0018\u0002\u0002\u0829", + "\u082a\u0007\u032a\u0002\u0002\u082a\u082c\t\u0010\u0002\u0002\u082b", + "\u0826\u0003\u0002\u0002\u0002\u082b\u082c\u0003\u0002\u0002\u0002\u082c", + "\u0833\u0003\u0002\u0002\u0002\u082d\u082f\u0007\u033e\u0002\u0002\u082e", + "\u082d\u0003\u0002\u0002\u0002\u082e\u082f\u0003\u0002\u0002\u0002\u082f", + "\u0830\u0003\u0002\u0002\u0002\u0830\u0831\u0007\u01f6\u0002\u0002\u0831", + "\u0832\u0007\u032a\u0002\u0002\u0832\u0834\u0007\u023e\u0002\u0002\u0833", + "\u082e\u0003\u0002\u0002\u0002\u0833\u0834\u0003\u0002\u0002\u0002\u0834", + "\u083b\u0003\u0002\u0002\u0002\u0835\u0837\u0007\u033e\u0002\u0002\u0836", + "\u0835\u0003\u0002\u0002\u0002\u0836\u0837\u0003\u0002\u0002\u0002\u0837", + "\u0838\u0003\u0002\u0002\u0002\u0838\u0839\u0007\u02ca\u0002\u0002\u0839", + "\u083a\u0007\u032a\u0002\u0002\u083a\u083c\t\u0011\u0002\u0002\u083b", + "\u0836\u0003\u0002\u0002\u0002\u083b\u083c\u0003\u0002\u0002\u0002\u083c", + "\u083d\u0003\u0002\u0002\u0002\u083d\u083f\u0007\u033d\u0002\u0002\u083e", + "\u081d\u0003\u0002\u0002\u0002\u083f\u0840\u0003\u0002\u0002\u0002\u0840", + "\u083e\u0003\u0002\u0002\u0002\u0840\u0841\u0003\u0002\u0002\u0002\u0841", + "\u0892\u0003\u0002\u0002\u0002\u0842\u0843\u0007\u0091\u0002\u0002\u0843", + "\u0844\u0007I\u0002\u0002\u0844\u0845\u0007\r\u0002\u0002\u0845\u0892", + "\u0007T\u0002\u0002\u0846\u0847\u0007]\u0002\u0002\u0847\u0848\u0007", + "I\u0002\u0002\u0848\u0849\u0007\r\u0002\u0002\u0849\u0892\u0007T\u0002", + "\u0002\u084a\u0892\u0007}\u0002\u0002\u084b\u0892\u0007\u0204\u0002", + "\u0002\u084c\u084d\u0007\u0004\u0002\u0002\u084d\u084e\u0007\u0234\u0002", + "\u0002\u084e\u084f\u0007\u0326\u0002\u0002\u084f\u0871\u0007\u033c\u0002", + "\u0002\u0850\u0851\u0007\u0179\u0002\u0002\u0851\u0852\u0007\u01dd\u0002", + "\u0002\u0852\u0853\u0007\u00e5\u0002\u0002\u0853\u0854\u0007\u033c\u0002", + "\u0002\u0854\u0855\u0007\u00a6\u0002\u0002\u0855\u0856\u0007\u00a6\u0002", + "\u0002\u0856\u0857\u0003\u0002\u0002\u0002\u0857\u0872\u0007\u033d\u0002", + "\u0002\u0858\u0859\u0007\u0179\u0002\u0002\u0859\u085a\u0007\u0224\u0002", + "\u0002\u085a\u0866\u0007\u033c\u0002\u0002\u085b\u085d\u0007\u033e\u0002", + "\u0002\u085c\u085b\u0003\u0002\u0002\u0002\u085c\u085d\u0003\u0002\u0002", + "\u0002\u085d\u085e\u0003\u0002\u0002\u0002\u085e\u0863\u0007\u033c\u0002", + "\u0002\u085f\u0860\u0007\u00a6\u0002\u0002\u0860\u0861\u0007\u033e\u0002", + "\u0002\u0861\u0864\u0007\u00a6\u0002\u0002\u0862\u0864\u0007\u00a7\u0002", + "\u0002\u0863\u085f\u0003\u0002\u0002\u0002\u0863\u0862\u0003\u0002\u0002", + "\u0002\u0864\u0865\u0003\u0002\u0002\u0002\u0865\u0867\u0007\u033d\u0002", + "\u0002\u0866\u085c\u0003\u0002\u0002\u0002\u0867\u0868\u0003\u0002\u0002", + "\u0002\u0868\u0866\u0003\u0002\u0002\u0002\u0868\u0869\u0003\u0002\u0002", + "\u0002\u0869\u086a\u0003\u0002\u0002\u0002\u086a\u086f\u0007\u033d\u0002", + "\u0002\u086b\u086c\u0007\u033e\u0002\u0002\u086c\u086d\u0007\u0286\u0002", + "\u0002\u086d\u086e\u0007\u032a\u0002\u0002\u086e\u0870\u0007\u0322\u0002", + "\u0002\u086f\u086b\u0003\u0002\u0002\u0002\u086f\u0870\u0003\u0002\u0002", + "\u0002\u0870\u0872\u0003\u0002\u0002\u0002\u0871\u0850\u0003\u0002\u0002", + "\u0002\u0871\u0858\u0003\u0002\u0002\u0002\u0872\u0873\u0003\u0002\u0002", + "\u0002\u0873\u0892\u0007\u033d\u0002\u0002\u0874\u0875\u0007\u025a\u0002", + "\u0002\u0875\u0882\u0007\u0234\u0002\u0002\u0876\u0877\u0007\u0004\u0002", + "\u0002\u0877\u0878\u0007\u0224\u0002\u0002\u0878\u087c\u0007\u033c\u0002", + "\u0002\u0879\u087a\u0007\u00a6\u0002\u0002\u087a\u087d\u0007\u00a6\u0002", + "\u0002\u087b\u087d\u0007\u00a7\u0002\u0002\u087c\u0879\u0003\u0002\u0002", + "\u0002\u087c\u087b\u0003\u0002\u0002\u0002\u087d\u087e\u0003\u0002\u0002", + "\u0002\u087e\u0883\u0007\u033d\u0002\u0002\u087f\u0880\u0007\u0286\u0002", + "\u0002\u0880\u0881\u0007\u032a\u0002\u0002\u0881\u0883\u0007\u0322\u0002", + "\u0002\u0882\u0876\u0003\u0002\u0002\u0002\u0882\u087f\u0003\u0002\u0002", + "\u0002\u0883\u0892\u0003\u0002\u0002\u0002\u0884\u0885\u0007\u0115\u0002", + "\u0002\u0885\u0886\u0007\u0234\u0002\u0002\u0886\u0892\u0007\u0326\u0002", + "\u0002\u0887\u0888\u0007\u02a9\u0002\u0002\u0888\u0889\u0007\u0234\u0002", + "\u0002\u0889\u0892\u0007\u0326\u0002\u0002\u088a\u0892\u0007\u0272\u0002", + "\u0002\u088b\u088c\u0007\u0179\u0002\u0002\u088c\u088d\u0007\u033c\u0002", + "\u0002\u088d\u088e\u0007h\u0002\u0002\u088e\u088f\u0007\u032a\u0002", + "\u0002\u088f\u0890\u0007\u00f8\u0002\u0002\u0890\u0892\u0007\u033d\u0002", + "\u0002\u0891\u0733\u0003\u0002\u0002\u0002\u0891\u0747\u0003\u0002\u0002", + "\u0002\u0891\u074a\u0003\u0002\u0002\u0002\u0891\u074d\u0003\u0002\u0002", + "\u0002\u0891\u078f\u0003\u0002\u0002\u0002\u0891\u079b\u0003\u0002\u0002", + "\u0002\u0891\u07b5\u0003\u0002\u0002\u0002\u0891\u07f5\u0003\u0002\u0002", + "\u0002\u0891\u07f9\u0003\u0002\u0002\u0002\u0891\u07fa\u0003\u0002\u0002", + "\u0002\u0891\u0818\u0003\u0002\u0002\u0002\u0891\u0842\u0003\u0002\u0002", + "\u0002\u0891\u0846\u0003\u0002\u0002\u0002\u0891\u084a\u0003\u0002\u0002", + "\u0002\u0891\u084b\u0003\u0002\u0002\u0002\u0891\u084c\u0003\u0002\u0002", + "\u0002\u0891\u0874\u0003\u0002\u0002\u0002\u0891\u0884\u0003\u0002\u0002", + "\u0002\u0891\u0887\u0003\u0002\u0002\u0002\u0891\u088a\u0003\u0002\u0002", + "\u0002\u0891\u088b\u0003\u0002\u0002\u0002\u0892\u00a3\u0003\u0002\u0002", + "\u0002\u0893\u0894\t\u0014\u0002\u0002\u0894\u0895\u0007\u01a8\u0002", + "\u0002\u0895\u0896\u0007\u028a\u0002\u0002\u0896\u0897\u0005\u03c6\u01e4", + "\u0002\u0897\u0898\u0007\u0085\u0002\u0002\u0898\u0899\u0007F\u0002", + "\u0002\u0899\u089a\u0007\u013b\u0002\u0002\u089a\u08a4\u0007\u033c\u0002", + "\u0002\u089b\u089c\u0007E\u0002\u0002\u089c\u089f\u0007\u032a\u0002", + "\u0002\u089d\u08a0\u0005\u03c6\u01e4\u0002\u089e\u08a0\u0007\r\u0002", + "\u0002\u089f\u089d\u0003\u0002\u0002\u0002\u089f\u089e\u0003\u0002\u0002", + "\u0002\u08a0\u08a2\u0003\u0002\u0002\u0002\u08a1\u08a3\u0007\u033e\u0002", + "\u0002\u08a2\u08a1\u0003\u0002\u0002\u0002\u08a2\u08a3\u0003\u0002\u0002", + "\u0002\u08a3\u08a5\u0003\u0002\u0002\u0002\u08a4\u089b\u0003\u0002\u0002", + "\u0002\u08a4\u08a5\u0003\u0002\u0002\u0002\u08a5\u08b2\u0003\u0002\u0002", + "\u0002\u08a6\u08a7\u0007\u00ba\u0002\u0002\u08a7\u08ad\u0007\u032a\u0002", + "\u0002\u08a8\u08aa\u0007f\u0002\u0002\u08a9\u08a8\u0003\u0002\u0002", + "\u0002\u08a9\u08aa\u0003\u0002\u0002\u0002\u08aa\u08ab\u0003\u0002\u0002", + "\u0002\u08ab\u08ae\u0005\u03c6\u01e4\u0002\u08ac\u08ae\u0007\r\u0002", + "\u0002\u08ad\u08a9\u0003\u0002\u0002\u0002\u08ad\u08ac\u0003\u0002\u0002", + "\u0002\u08ae\u08b0\u0003\u0002\u0002\u0002\u08af\u08b1\u0007\u033e\u0002", + "\u0002\u08b0\u08af\u0003\u0002\u0002\u0002\u08b0\u08b1\u0003\u0002\u0002", + "\u0002\u08b1\u08b3\u0003\u0002\u0002\u0002\u08b2\u08a6\u0003\u0002\u0002", + "\u0002\u08b2\u08b3\u0003\u0002\u0002\u0002\u08b3\u08bd\u0003\u0002\u0002", + "\u0002\u08b4\u08b5\u0007\u02a8\u0002\u0002\u08b5\u08b8\u0007\u032a\u0002", + "\u0002\u08b6\u08b9\u0007\u0326\u0002\u0002\u08b7\u08b9\u0007\r\u0002", + "\u0002\u08b8\u08b6\u0003\u0002\u0002\u0002\u08b8\u08b7\u0003\u0002\u0002", + "\u0002\u08b9\u08bb\u0003\u0002\u0002\u0002\u08ba\u08bc\u0007\u033e\u0002", + "\u0002\u08bb\u08ba\u0003\u0002\u0002\u0002\u08bb\u08bc\u0003\u0002\u0002", + "\u0002\u08bc\u08be\u0003\u0002\u0002\u0002\u08bd\u08b4\u0003\u0002\u0002", + "\u0002\u08bd\u08be\u0003\u0002\u0002\u0002\u08be\u08c5\u0003\u0002\u0002", + "\u0002\u08bf\u08c0\u0007\u028b\u0002\u0002\u08c0\u08c3\u0007\u032a\u0002", + "\u0002\u08c1\u08c4\u0007\u0322\u0002\u0002\u08c2\u08c4\u0007Y\u0002", + "\u0002\u08c3\u08c1\u0003\u0002\u0002\u0002\u08c3\u08c2\u0003\u0002\u0002", + "\u0002\u08c4\u08c6\u0003\u0002\u0002\u0002\u08c5\u08bf\u0003\u0002\u0002", + "\u0002\u08c5\u08c6\u0003\u0002\u0002\u0002\u08c6\u08c7\u0003\u0002\u0002", + "\u0002\u08c7\u08c8\u0007\u033d\u0002\u0002\u08c8\u00a5\u0003\u0002\u0002", + "\u0002\u08c9\u08ca\u0007g\u0002\u0002\u08ca\u08cb\u0007\u01a8\u0002", + "\u0002\u08cb\u08cc\u0007\u028a\u0002\u0002\u08cc\u08cd\u0005\u03c6\u01e4", + "\u0002\u08cd\u00a7\u0003\u0002\u0002\u0002\u08ce\u08cf\u0007\n\u0002", + "\u0002\u08cf\u08d0\u0007+\u0002\u0002\u08d0\u08f8\u0005\u03c6\u01e4", + "\u0002\u08d1\u08d2\u0007\u02a9\u0002\u0002\u08d2\u08f9\u0007\u028d\u0002", + "\u0002\u08d3\u08d4\u0007\u0179\u0002\u0002\u08d4\u08d5\u0007\u028c\u0002", + "\u0002\u08d5\u08d6\u0007\u00ac\u0002\u0002\u08d6\u08ed\u0007\u033c\u0002", + "\u0002\u08d7\u08d8\u0007\u0081\u0002\u0002\u08d8\u08d9\u0007\u032a\u0002", + "\u0002\u08d9\u08db\u0007\u0326\u0002\u0002\u08da\u08dc\u0007\u033e\u0002", + "\u0002\u08db\u08da\u0003\u0002\u0002\u0002\u08db\u08dc\u0003\u0002\u0002", + "\u0002\u08dc\u08ee\u0003\u0002\u0002\u0002\u08dd\u08de\u0007\u01d1\u0002", + "\u0002\u08de\u08df\u0007&\u0002\u0002\u08df\u08e0\u0007\u00f4\u0002", + "\u0002\u08e0\u08e1\u0007\u032a\u0002\u0002\u08e1\u08e3\u0007\u0326\u0002", + "\u0002\u08e2\u08e4\u0007\u033e\u0002\u0002\u08e3\u08e2\u0003\u0002\u0002", + "\u0002\u08e3\u08e4\u0003\u0002\u0002\u0002\u08e4\u08ee\u0003\u0002\u0002", + "\u0002\u08e5\u08e6\u0007\u01ec\u0002\u0002\u08e6\u08e7\u0007&\u0002", + "\u0002\u08e7\u08e8\u0007\u00f4\u0002\u0002\u08e8\u08e9\u0007\u032a\u0002", + "\u0002\u08e9\u08eb\u0007\u0326\u0002\u0002\u08ea\u08ec\u0007\u033e\u0002", + "\u0002\u08eb\u08ea\u0003\u0002\u0002\u0002\u08eb\u08ec\u0003\u0002\u0002", + "\u0002\u08ec\u08ee\u0003\u0002\u0002\u0002\u08ed\u08d7\u0003\u0002\u0002", + "\u0002\u08ed\u08dd\u0003\u0002\u0002\u0002\u08ed\u08e5\u0003\u0002\u0002", + "\u0002\u08ee\u08ef\u0003\u0002\u0002\u0002\u08ef\u08ed\u0003\u0002\u0002", + "\u0002\u08ef\u08f0\u0003\u0002\u0002\u0002\u08f0\u08f1\u0003\u0002\u0002", + "\u0002\u08f1\u08f9\u0007\u033d\u0002\u0002\u08f2\u08f3\u0007\u0179\u0002", + "\u0002\u08f3\u08f4\u0007\u0182\u0002\u0002\u08f4\u08f5\u0007\u0085\u0002", + "\u0002\u08f5\u08f6\u0007\u01a2\u0002\u0002\u08f6\u08f7\u0007\u032a\u0002", + "\u0002\u08f7\u08f9\t\t\u0002\u0002\u08f8\u08d1\u0003\u0002\u0002\u0002", + "\u08f8\u08d3\u0003\u0002\u0002\u0002\u08f8\u08f2\u0003\u0002\u0002\u0002", + "\u08f9\u00a9\u0003\u0002\u0002\u0002\u08fa\u08fb\u0007\n\u0002\u0002", + "\u08fb\u08fc\u00078\u0002\u0002\u08fc\u08fd\u0007\u01ec\u0002\u0002", + "\u08fd\u08fe\u0007\u00ac\u0002\u0002\u08fe\u08ff\u0005\u03c6\u01e4\u0002", + "\u08ff\u0900\t\u0015\u0002\u0002\u0900\u0901\u0007\u030b\u0002\u0002", + "\u0901\u0902\u0007\u033c\u0002\u0002\u0902\u0903\u0007\u01b6\u0002\u0002", + "\u0903\u0904\u0007\u032a\u0002\u0002\u0904\u090d\u0005\u03c6\u01e4\u0002", + "\u0905\u0906\u0007\u033e\u0002\u0002\u0906\u0907\u0007\u018a\u0002\u0002", + "\u0907\u0908\u0007\u032a\u0002\u0002\u0908\u0909\u0007\u0326\u0002\u0002", + "\u0909\u090a\u0007\u033e\u0002\u0002\u090a\u090b\u0007\u01eb\u0002\u0002", + "\u090b\u090c\u0007\u032a\u0002\u0002\u090c\u090e\u0007\u0327\u0002\u0002", + "\u090d\u0905\u0003\u0002\u0002\u0002\u090d\u090e\u0003\u0002\u0002\u0002", + "\u090e\u090f\u0003\u0002\u0002\u0002\u090f\u0910\u0007\u033d\u0002\u0002", + "\u0910\u00ab\u0003\u0002\u0002\u0002\u0911\u0912\u0007I\u0002\u0002", + "\u0912\u0913\u00078\u0002\u0002\u0913\u0914\u0007\u01ec\u0002\u0002", + "\u0914\u0915\u0007\u00ac\u0002\u0002\u0915\u0916\u0005\u03c6\u01e4\u0002", + "\u0916\u0917\u0007\u0179\u0002\u0002\u0917\u092b\u0007\u016f\u0002\u0002", + "\u0918\u091a\u0007\u033c\u0002\u0002\u0919\u091b\u0007\u033e\u0002\u0002", + "\u091a\u0919\u0003\u0002\u0002\u0002\u091a\u091b\u0003\u0002\u0002\u0002", + "\u091b\u091c\u0003\u0002\u0002\u0002\u091c\u091d\u0007\u01b6\u0002\u0002", + "\u091d\u091e\u0007\u032a\u0002\u0002\u091e\u091f\u0005\u03c6\u01e4\u0002", + "\u091f\u0920\u0007\u033e\u0002\u0002\u0920\u0921\u0007\u018a\u0002\u0002", + "\u0921\u0922\u0007\u032a\u0002\u0002\u0922\u0923\u0007\u0326\u0002\u0002", + "\u0923\u0924\u0007\u033e\u0002\u0002\u0924\u0925\u0007\u01eb\u0002\u0002", + "\u0925\u0926\u0007\u032a\u0002\u0002\u0926\u0927\u0007\u0327\u0002\u0002", + "\u0927\u0929\u0007\u033d\u0002\u0002\u0928\u092a\u0007\u033e\u0002\u0002", + "\u0929\u0928\u0003\u0002\u0002\u0002\u0929\u092a\u0003\u0002\u0002\u0002", + "\u092a\u092c\u0003\u0002\u0002\u0002\u092b\u0918\u0003\u0002\u0002\u0002", + "\u092c\u092d\u0003\u0002\u0002\u0002\u092d\u092b\u0003\u0002\u0002\u0002", + "\u092d\u092e\u0003\u0002\u0002\u0002\u092e\u00ad\u0003\u0002\u0002\u0002", + "\u092f\u0930\u0007g\u0002\u0002\u0930\u0931\u0007+\u0002\u0002\u0931", + "\u0932\u0005\u03c6\u01e4\u0002\u0932\u00af\u0003\u0002\u0002\u0002\u0933", + "\u0934\u0007g\u0002\u0002\u0934\u0935\u00078\u0002\u0002\u0935\u0936", + "\u0007\u01ec\u0002\u0002\u0936\u0937\u0007\u00ac\u0002\u0002\u0937\u0938", + "\u0005\u03c6\u01e4\u0002\u0938\u00b1\u0003\u0002\u0002\u0002\u0939\u093a", + "\u0007g\u0002\u0002\u093a\u093b\u00078\u0002\u0002\u093b\u093c\u0007", + "\u00bd\u0002\u0002\u093c\u093d\u0007\u00ac\u0002\u0002\u093d\u093e\u0005", + "\u03c6\u01e4\u0002\u093e\u00b3\u0003\u0002\u0002\u0002\u093f\u0940\u0007", + "g\u0002\u0002\u0940\u0941\u0007D\u0002\u0002\u0941\u0942\u0005\u03c6", + "\u01e4\u0002\u0942\u00b5\u0003\u0002\u0002\u0002\u0943\u0944\u0007g", + "\u0002\u0002\u0944\u0945\u0007\u01c4\u0002\u0002\u0945\u0946\u0005\u03c6", + "\u01e4\u0002\u0946\u00b7\u0003\u0002\u0002\u0002\u0947\u0948\u0007g", + "\u0002\u0002\u0948\u0949\u0007\u01c5\u0002\u0002\u0949\u094a\u0007\u0291", + "\u0002\u0002\u094a\u094b\u0005\u03c6\u01e4\u0002\u094b\u00b9\u0003\u0002", + "\u0002\u0002\u094c\u094d\u0007g\u0002\u0002\u094d\u0950\u0007T\u0002", + "\u0002\u094e\u094f\u0007\u0099\u0002\u0002\u094f\u0951\u0007w\u0002", + "\u0002\u0950\u094e\u0003\u0002\u0002\u0002\u0950\u0951\u0003\u0002\u0002", + "\u0002\u0951\u0956\u0003\u0002\u0002\u0002\u0952\u0954\u0007\u033e\u0002", + "\u0002\u0953\u0952\u0003\u0002\u0002\u0002\u0953\u0954\u0003\u0002\u0002", + "\u0002\u0954\u0955\u0003\u0002\u0002\u0002\u0955\u0957\u0005\u03c6\u01e4", + "\u0002\u0956\u0953\u0003\u0002\u0002\u0002\u0957\u0958\u0003\u0002\u0002", + "\u0002\u0958\u0956\u0003\u0002\u0002\u0002\u0958\u0959\u0003\u0002\u0002", + "\u0002\u0959\u00bb\u0003\u0002\u0002\u0002\u095a\u095b\u0007g\u0002", + "\u0002\u095b\u095c\u0007T\u0002\u0002\u095c\u095d\u0007\u0196\u0002", + "\u0002\u095d\u095e\u0007\u0143\u0002\u0002\u095e\u095f\u0005\u03c6\u01e4", + "\u0002\u095f\u00bd\u0003\u0002\u0002\u0002\u0960\u0961\u0007g\u0002", + "\u0002\u0961\u0962\u0007T\u0002\u0002\u0962\u0963\u0007\u02bf\u0002", + "\u0002\u0963\u0964\u0007\u01c4\u0002\u0002\u0964\u0965\u0005\u03c6\u01e4", + "\u0002\u0965\u00bf\u0003\u0002\u0002\u0002\u0966\u0967\u0007g\u0002", + "\u0002\u0967\u096a\u0007Y\u0002\u0002\u0968\u0969\u0007\u0099\u0002", + "\u0002\u0969\u096b\u0007w\u0002\u0002\u096a\u0968\u0003\u0002\u0002", + "\u0002\u096a\u096b\u0003\u0002\u0002\u0002\u096b\u096d\u0003\u0002\u0002", + "\u0002\u096c\u096e\u0007\u033e\u0002\u0002\u096d\u096c\u0003\u0002\u0002", + "\u0002\u096d\u096e\u0003\u0002\u0002\u0002\u096e\u0972\u0003\u0002\u0002", + "\u0002\u096f\u0970\u0005\u03c6\u01e4\u0002\u0970\u0971\u0007\u0337\u0002", + "\u0002\u0971\u0973\u0003\u0002\u0002\u0002\u0972\u096f\u0003\u0002\u0002", + "\u0002\u0972\u0973\u0003\u0002\u0002\u0002\u0973\u0974\u0003\u0002\u0002", + "\u0002\u0974\u0975\u0005\u03c6\u01e4\u0002\u0975\u00c1\u0003\u0002\u0002", + "\u0002\u0976\u0977\u0007g\u0002\u0002\u0977\u0978\u0007m\u0002\u0002", + "\u0978\u0979\u0005\u03c6\u01e4\u0002\u0979\u00c3\u0003\u0002\u0002\u0002", + "\u097a\u097b\u0007g\u0002\u0002\u097b\u097c\u0007{\u0002\u0002\u097c", + "\u097d\u0007\u01c8\u0002\u0002\u097d\u097e\u0007\u0142\u0002\u0002\u097e", + "\u097f\u0005\u03c6\u01e4\u0002\u097f\u00c5\u0003\u0002\u0002\u0002\u0980", + "\u0981\u0007g\u0002\u0002\u0981\u0982\u0007{\u0002\u0002\u0982\u0983", + "\u0007\u0081\u0002\u0002\u0983\u0984\u0007\u0206\u0002\u0002\u0984\u0985", + "\u0005\u03c6\u01e4\u0002\u0985\u00c7\u0003\u0002\u0002\u0002\u0986\u0987", + "\u0007g\u0002\u0002\u0987\u0988\u0007{\u0002\u0002\u0988\u0989\u0007", + "\u00b2\u0002\u0002\u0989\u098c\u0005\u03c6\u01e4\u0002\u098a\u098b\u0007", + "\u0014\u0002\u0002\u098b\u098d\u0005\u03c6\u01e4\u0002\u098c\u098a\u0003", + "\u0002\u0002\u0002\u098c\u098d\u0003\u0002\u0002\u0002\u098d\u00c9\u0003", + "\u0002\u0002\u0002\u098e\u098f\u0007g\u0002\u0002\u098f\u0990\u0007", + "{\u0002\u0002\u0990\u0991\u0007\u02b2\u0002\u0002\u0991\u0992\u0007", + "\u0285\u0002\u0002\u0992\u0993\u0005\u03c6\u01e4\u0002\u0993\u00cb\u0003", + "\u0002\u0002\u0002\u0994\u0995\u0007g\u0002\u0002\u0995\u0996\u0007", + "{\u0002\u0002\u0996\u099a\u0007\u0153\u0002\u0002\u0997\u0998\u0005", + "\u03c6\u01e4\u0002\u0998\u0999\u0007\u0337\u0002\u0002\u0999\u099b\u0003", + "\u0002\u0002\u0002\u099a\u0997\u0003\u0002\u0002\u0002\u099a\u099b\u0003", + "\u0002\u0002\u0002\u099b\u099f\u0003\u0002\u0002\u0002\u099c\u099d\u0005", + "\u03c6\u01e4\u0002\u099d\u099e\u0007\u0337\u0002\u0002\u099e\u09a0\u0003", + "\u0002\u0002\u0002\u099f\u099c\u0003\u0002\u0002\u0002\u099f\u09a0\u0003", + "\u0002\u0002\u0002\u09a0\u09a1\u0003\u0002\u0002\u0002\u09a1\u09a2\u0005", + "\u03c6\u01e4\u0002\u09a2\u00cd\u0003\u0002\u0002\u0002\u09a3\u09a4\u0007", + "g\u0002\u0002\u09a4\u09a5\u0007q\u0002\u0002\u09a5\u09aa\u0007\u00dd", + "\u0002\u0002\u09a6\u09a8\u0007\u033e\u0002\u0002\u09a7\u09a6\u0003\u0002", + "\u0002\u0002\u09a7\u09a8\u0003\u0002\u0002\u0002\u09a8\u09a9\u0003\u0002", + "\u0002\u0002\u09a9\u09ab\u0005\u03c6\u01e4\u0002\u09aa\u09a7\u0003\u0002", + "\u0002\u0002\u09ab\u09ac\u0003\u0002\u0002\u0002\u09ac\u09aa\u0003\u0002", + "\u0002\u0002\u09ac\u09ad\u0003\u0002\u0002\u0002\u09ad\u09ae\u0003\u0002", + "\u0002\u0002\u09ae\u09b3\u0007\u00e5\u0002\u0002\u09af\u09b4\u0007\u0135", + "\u0002\u0002\u09b0\u09b4\u0007T\u0002\u0002\u09b1\u09b2\u0007\u0294", + "\u0002\u0002\u09b2\u09b4\u0005\u03c6\u01e4\u0002\u09b3\u09af\u0003\u0002", + "\u0002\u0002\u09b3\u09b0\u0003\u0002\u0002\u0002\u09b3\u09b1\u0003\u0002", + "\u0002\u0002\u09b4\u00cf\u0003\u0002\u0002\u0002\u09b5\u09b6\u0007g", + "\u0002\u0002\u09b6\u09b7\u0007q\u0002\u0002\u09b7\u09b8\u0007\u0139", + "\u0002\u0002\u09b8\u09b9\u0005\u03c6\u01e4\u0002\u09b9\u09ba\u0007\u00e5", + "\u0002\u0002\u09ba\u09bb\u0007\u0135\u0002\u0002\u09bb\u00d1\u0003\u0002", + "\u0002\u0002\u09bc\u09bd\u0007g\u0002\u0002\u09bd\u09be\u0007\u0209", + "\u0002\u0002\u09be\u09bf\u0007\u01ae\u0002\u0002\u09bf\u09c0\u0005\u03c6", + "\u01e4\u0002\u09c0\u00d3\u0003\u0002\u0002\u0002\u09c1\u09c2\u0007g", + "\u0002\u0002\u09c2\u09c3\u0007\u0209\u0002\u0002\u09c3\u09c4\u0007\u009e", + "\u0002\u0002\u09c4\u09c8\u0007\u00e5\u0002\u0002\u09c5\u09c6\u0005\u03c6", + "\u01e4\u0002\u09c6\u09c7\u0007\u0337\u0002\u0002\u09c7\u09c9\u0003\u0002", + "\u0002\u0002\u09c8\u09c5\u0003\u0002\u0002\u0002\u09c8\u09c9\u0003\u0002", + "\u0002\u0002\u09c9\u09ca\u0003\u0002\u0002\u0002\u09ca\u09cb\u0005\u03c6", + "\u01e4\u0002\u09cb\u00d5\u0003\u0002\u0002\u0002\u09cc\u09cd\u0007g", + "\u0002\u0002\u09cd\u09ce\u0007\u0209\u0002\u0002\u09ce\u09cf\u0007\u02e4", + "\u0002\u0002\u09cf\u09d0\u0005\u03c6\u01e4\u0002\u09d0\u00d7\u0003\u0002", + "\u0002\u0002\u09d1\u09d2\u0007g\u0002\u0002\u09d2\u09d3\u0007\u023b", + "\u0002\u0002\u09d3\u09d4\u0005\u03c6\u01e4\u0002\u09d4\u00d9\u0003\u0002", + "\u0002\u0002\u09d5\u09d6\u0007g\u0002\u0002\u09d6\u09d7\u0007\u00bd", + "\u0002\u0002\u09d7\u09d8\u0007\u00ac\u0002\u0002\u09d8\u00db\u0003\u0002", + "\u0002\u0002\u09d9\u09da\u0007g\u0002\u0002\u09da\u09db\u0007\u0250", + "\u0002\u0002\u09db\u09dc\u0007\u0301\u0002\u0002\u09dc\u09dd\u0005\u03c6", + "\u01e4\u0002\u09dd\u00dd\u0003\u0002\u0002\u0002\u09de\u09df\u0007g", + "\u0002\u0002\u09df\u09e0\u0007\u0280\u0002\u0002\u09e0\u09e1\u0007\u008d", + "\u0002\u0002\u09e1\u09e2\u0005\u03c6\u01e4\u0002\u09e2\u00df\u0003\u0002", + "\u0002\u0002\u09e3\u09e4\u0007g\u0002\u0002\u09e4\u09e5\u0007\u0280", + "\u0002\u0002\u09e5\u09e6\u0007\u012f\u0002\u0002\u09e6\u09e7\u0005\u03c6", + "\u01e4\u0002\u09e7\u00e1\u0003\u0002\u0002\u0002\u09e8\u09e9\u0007g", + "\u0002\u0002\u09e9\u09ed\u0007\u0294\u0002\u0002\u09ea\u09eb\u0005\u03c6", + "\u01e4\u0002\u09eb\u09ec\u0007\u0337\u0002\u0002\u09ec\u09ee\u0003\u0002", + "\u0002\u0002\u09ed\u09ea\u0003\u0002\u0002\u0002\u09ed\u09ee\u0003\u0002", + "\u0002\u0002\u09ee\u09f2\u0003\u0002\u0002\u0002\u09ef\u09f0\u0005\u03c6", + "\u01e4\u0002\u09f0\u09f1\u0007\u0337\u0002\u0002\u09f1\u09f3\u0003\u0002", + "\u0002\u0002\u09f2\u09ef\u0003\u0002\u0002\u0002\u09f2\u09f3\u0003\u0002", + "\u0002\u0002\u09f3\u09f4\u0003\u0002\u0002\u0002\u09f4\u09f5\u0005\u03c6", + "\u01e4\u0002\u09f5\u00e3\u0003\u0002\u0002\u0002\u09f6\u09f7\u0007g", + "\u0002\u0002\u09f7\u09f8\u0007\u02a7\u0002\u0002\u09f8\u09f9\u0007\u0136", + "\u0002\u0002\u09f9\u09fa\u0007\u01a6\u0002\u0002\u09fa\u09fb\u0005\u03c6", + "\u01e4\u0002\u09fb\u00e5\u0003\u0002\u0002\u0002\u09fc\u09fd\u0007g", + "\u0002\u0002\u09fd\u09fe\u0007\u02b2\u0002\u0002\u09fe\u09ff\u0007\u0285", + "\u0002\u0002\u09ff\u0a00\u0005\u03c6\u01e4\u0002\u0a00\u00e7\u0003\u0002", + "\u0002\u0002\u0a01\u0a02\u0007g\u0002\u0002\u0a02\u0a05\u0007\u0121", + "\u0002\u0002\u0a03\u0a04\u0007\u0099\u0002\u0002\u0a04\u0a06\u0007w", + "\u0002\u0002\u0a05\u0a03\u0003\u0002\u0002\u0002\u0a05\u0a06\u0003\u0002", + "\u0002\u0002\u0a06\u0a07\u0003\u0002\u0002\u0002\u0a07\u0a08\u0005\u03c6", + "\u01e4\u0002\u0a08\u00e9\u0003\u0002\u0002\u0002\u0a09\u0a0a\u0007g", + "\u0002\u0002\u0a0a\u0a0b\u0007\u02b8\u0002\u0002\u0a0b\u0a0c\u0005\u03c6", + "\u01e4\u0002\u0a0c\u00eb\u0003\u0002\u0002\u0002\u0a0d\u0a0e\u0007g", + "\u0002\u0002\u0a0e\u0a11\u0007\u012a\u0002\u0002\u0a0f\u0a10\u0007\u0099", + "\u0002\u0002\u0a10\u0a12\u0007w\u0002\u0002\u0a11\u0a0f\u0003\u0002", + "\u0002\u0002\u0a11\u0a12\u0003\u0002\u0002\u0002\u0a12\u0a1c\u0003\u0002", + "\u0002\u0002\u0a13\u0a15\u0007\u033e\u0002\u0002\u0a14\u0a13\u0003\u0002", + "\u0002\u0002\u0a14\u0a15\u0003\u0002\u0002\u0002\u0a15\u0a19\u0003\u0002", + "\u0002\u0002\u0a16\u0a17\u0005\u03c6\u01e4\u0002\u0a17\u0a18\u0007\u0337", + "\u0002\u0002\u0a18\u0a1a\u0003\u0002\u0002\u0002\u0a19\u0a16\u0003\u0002", + "\u0002\u0002\u0a19\u0a1a\u0003\u0002\u0002\u0002\u0a1a\u0a1b\u0003\u0002", + "\u0002\u0002\u0a1b\u0a1d\u0005\u03c6\u01e4\u0002\u0a1c\u0a14\u0003\u0002", + "\u0002\u0002\u0a1c\u0a1d\u0003\u0002\u0002\u0002\u0a1d\u00ed\u0003\u0002", + "\u0002\u0002\u0a1e\u0a1f\u0007g\u0002\u0002\u0a1f\u0a22\u0007\u012e", + "\u0002\u0002\u0a20\u0a21\u0007\u0099\u0002\u0002\u0a21\u0a23\u0007w", + "\u0002\u0002\u0a22\u0a20\u0003\u0002\u0002\u0002\u0a22\u0a23\u0003\u0002", + "\u0002\u0002\u0a23\u0a24\u0003\u0002\u0002\u0002\u0a24\u0a25\u0005\u03c6", + "\u01e4\u0002\u0a25\u00ef\u0003\u0002\u0002\u0002\u0a26\u0a27\u0007g", + "\u0002\u0002\u0a27\u0a28\u0007\u02c2\u0002\u0002\u0a28\u0a29\u0007\u0290", + "\u0002\u0002\u0a29\u0a2a\u0007\u0233\u0002\u0002\u0a2a\u0a2b\u0005\u03c6", + "\u01e4\u0002\u0a2b\u00f1\u0003\u0002\u0002\u0002\u0a2c\u0a2d\u0007g", + "\u0002\u0002\u0a2d\u0a2e\u0007\u02c8\u0002\u0002\u0a2e\u0a31\u0007\u00fd", + "\u0002\u0002\u0a2f\u0a30\u0007\u0099\u0002\u0002\u0a30\u0a32\u0007w", + "\u0002\u0002\u0a31\u0a2f\u0003\u0002\u0002\u0002\u0a31\u0a32\u0003\u0002", + "\u0002\u0002\u0a32\u0a36\u0003\u0002\u0002\u0002\u0a33\u0a34\u0005\u03c6", + "\u01e4\u0002\u0a34\u0a35\u0007\u0337\u0002\u0002\u0a35\u0a37\u0003\u0002", + "\u0002\u0002\u0a36\u0a33\u0003\u0002\u0002\u0002\u0a36\u0a37\u0003\u0002", + "\u0002\u0002\u0a37\u0a38\u0003\u0002\u0002\u0002\u0a38\u0a39\u0005\u03c6", + "\u01e4\u0002\u0a39\u00f3\u0003\u0002\u0002\u0002\u0a3a\u0a3b\u0007g", + "\u0002\u0002\u0a3b\u0a3e\u0007\u02cf\u0002\u0002\u0a3c\u0a3d\u0007\u0099", + "\u0002\u0002\u0a3d\u0a3f\u0007w\u0002\u0002\u0a3e\u0a3c\u0003\u0002", + "\u0002\u0002\u0a3e\u0a3f\u0003\u0002\u0002\u0002\u0a3f\u0a4e\u0003\u0002", + "\u0002\u0002\u0a40\u0a42\u0007\u033e\u0002\u0002\u0a41\u0a40\u0003\u0002", + "\u0002\u0002\u0a41\u0a42\u0003\u0002\u0002\u0002\u0a42\u0a46\u0003\u0002", + "\u0002\u0002\u0a43\u0a44\u0005\u03c6\u01e4\u0002\u0a44\u0a45\u0007\u0337", + "\u0002\u0002\u0a45\u0a47\u0003\u0002\u0002\u0002\u0a46\u0a43\u0003\u0002", + "\u0002\u0002\u0a46\u0a47\u0003\u0002\u0002\u0002\u0a47\u0a4b\u0003\u0002", + "\u0002\u0002\u0a48\u0a49\u0005\u03c6\u01e4\u0002\u0a49\u0a4a\u0007\u0337", + "\u0002\u0002\u0a4a\u0a4c\u0003\u0002\u0002\u0002\u0a4b\u0a48\u0003\u0002", + "\u0002\u0002\u0a4b\u0a4c\u0003\u0002\u0002\u0002\u0a4c\u0a4d\u0003\u0002", + "\u0002\u0002\u0a4d\u0a4f\u0005\u03c6\u01e4\u0002\u0a4e\u0a41\u0003\u0002", + "\u0002\u0002\u0a4e\u0a4f\u0003\u0002\u0002\u0002\u0a4f\u00f5\u0003\u0002", + "\u0002\u0002\u0a50\u0a51\u0007g\u0002\u0002\u0a51\u0a52\u0007\u0135", + "\u0002\u0002\u0a52\u0a53\u0007\u0196\u0002\u0002\u0a53\u0a54\u0005\u03c6", + "\u01e4\u0002\u0a54\u00f7\u0003\u0002\u0002\u0002\u0a55\u0a56\u0007g", + "\u0002\u0002\u0a56\u0a57\u0007\u0135\u0002\u0002\u0a57\u0a58\u0007\u0196", + "\u0002\u0002\u0a58\u0a59\u0007\u0143\u0002\u0002\u0a59\u0a5a\u0005\u03c6", + "\u01e4\u0002\u0a5a\u00f9\u0003\u0002\u0002\u0002\u0a5b\u0a5c\u0007g", + "\u0002\u0002\u0a5c\u0a5d\u0007\u0135\u0002\u0002\u0a5d\u0a5e\u0007\u0121", + "\u0002\u0002\u0a5e\u0a5f\u0005\u03c6\u01e4\u0002\u0a5f\u00fb\u0003\u0002", + "\u0002\u0002\u0a60\u0a61\u0007g\u0002\u0002\u0a61\u0a62\u0007\u0136", + "\u0002\u0002\u0a62\u0a63\u0005\u03c6\u01e4\u0002\u0a63\u00fd\u0003\u0002", + "\u0002\u0002\u0a64\u0a66\u0007g\u0002\u0002\u0a65\u0a67\u0007\u01c0", + "\u0002\u0002\u0a66\u0a65\u0003\u0002\u0002\u0002\u0a66\u0a67\u0003\u0002", + "\u0002\u0002\u0a67\u0a68\u0003\u0002\u0002\u0002\u0a68\u0a69\u0007\u02d5", + "\u0002\u0002\u0a69\u0a6d\u0007\u008b\u0002\u0002\u0a6a\u0a6b\u0005\u03c6", + "\u01e4\u0002\u0a6b\u0a6c\u0007\u0337\u0002\u0002\u0a6c\u0a6e\u0003\u0002", + "\u0002\u0002\u0a6d\u0a6a\u0003\u0002\u0002\u0002\u0a6d\u0a6e\u0003\u0002", + "\u0002\u0002\u0a6e\u0a6f\u0003\u0002\u0002\u0002\u0a6f\u0a70\u0005\u03c6", + "\u01e4\u0002\u0a70\u0a7c\u0007&\u0002\u0002\u0a71\u0a73\u0007\u033e", + "\u0002\u0002\u0a72\u0a71\u0003\u0002\u0002\u0002\u0a72\u0a73\u0003\u0002", + "\u0002\u0002\u0a73\u0a74\u0003\u0002\u0002\u0002\u0a74\u0a75\u0007+", + "\u0002\u0002\u0a75\u0a7d\u0005\u03c6\u01e4\u0002\u0a76\u0a78\u0007\u033e", + "\u0002\u0002\u0a77\u0a76\u0003\u0002\u0002\u0002\u0a77\u0a78\u0003\u0002", + "\u0002\u0002\u0a78\u0a79\u0003\u0002\u0002\u0002\u0a79\u0a7a\u0007\u0012", + "\u0002\u0002\u0a7a\u0a7b\u0007\u00ac\u0002\u0002\u0a7b\u0a7d\u0005\u03c6", + "\u01e4\u0002\u0a7c\u0a72\u0003\u0002\u0002\u0002\u0a7c\u0a77\u0003\u0002", + "\u0002\u0002\u0a7d\u0a7e\u0003\u0002\u0002\u0002\u0a7e\u0a7c\u0003\u0002", + "\u0002\u0002\u0a7e\u0a7f\u0003\u0002\u0002\u0002\u0a7f\u00ff\u0003\u0002", + "\u0002\u0002\u0a80\u0a81\u0007g\u0002\u0002\u0a81\u0a85\u0007\u0148", + "\u0002\u0002\u0a82\u0a83\u0005\u03c6\u01e4\u0002\u0a83\u0a84\u0007\u0337", + "\u0002\u0002\u0a84\u0a86\u0003\u0002\u0002\u0002\u0a85\u0a82\u0003\u0002", + "\u0002\u0002\u0a85\u0a86\u0003\u0002\u0002\u0002\u0a86\u0a87\u0003\u0002", + "\u0002\u0002\u0a87\u0a88\u0005\u03c6\u01e4\u0002\u0a88\u0a89\u0007\u0337", + "\u0002\u0002\u0a89\u0a8a\u0005\u03c6\u01e4\u0002\u0a8a\u0101\u0003\u0002", + "\u0002\u0002\u0a8b\u0a8c\u0007g\u0002\u0002\u0a8c\u0a8d\u0007\u02eb", + "\u0002\u0002\u0a8d\u0a8e\u0007\u00ac\u0002\u0002\u0a8e\u0a92\u0005\u03c6", + "\u01e4\u0002\u0a8f\u0a90\u0007\u02a9\u0002\u0002\u0a90\u0a91\u0007\u0291", + "\u0002\u0002\u0a91\u0a93\u0007\u00ac\u0002\u0002\u0a92\u0a8f\u0003\u0002", + "\u0002\u0002\u0a92\u0a93\u0003\u0002\u0002\u0002\u0a93\u0103\u0003\u0002", + "\u0002\u0002\u0a94\u0a95\u0007g\u0002\u0002\u0a95\u0a98\u0007\u02ed", + "\u0002\u0002\u0a96\u0a97\u0007\u0099\u0002\u0002\u0a97\u0a99\u0007w", + "\u0002\u0002\u0a98\u0a96\u0003\u0002\u0002\u0002\u0a98\u0a99\u0003\u0002", + "\u0002\u0002\u0a99\u0a9d\u0003\u0002\u0002\u0002\u0a9a\u0a9b\u0005\u03c6", + "\u01e4\u0002\u0a9b\u0a9c\u0007\u0337\u0002\u0002\u0a9c\u0a9e\u0003\u0002", + "\u0002\u0002\u0a9d\u0a9a\u0003\u0002\u0002\u0002\u0a9d\u0a9e\u0003\u0002", + "\u0002\u0002\u0a9e\u0a9f\u0003\u0002\u0002\u0002\u0a9f\u0aa0\u0005\u03c6", + "\u01e4\u0002\u0aa0\u0105\u0003\u0002\u0002\u0002\u0aa1\u0aa2\u0007g", + "\u0002\u0002\u0aa2\u0aa5\u0007\u016e\u0002\u0002\u0aa3\u0aa4\u0007\u0099", + "\u0002\u0002\u0aa4\u0aa6\u0007w\u0002\u0002\u0aa5\u0aa3\u0003\u0002", + "\u0002\u0002\u0aa5\u0aa6\u0003\u0002\u0002\u0002\u0aa6\u0aa7\u0003\u0002", + "\u0002\u0002\u0aa7\u0aa8\u0005\u03c6\u01e4\u0002\u0aa8\u0107\u0003\u0002", + "\u0002\u0002\u0aa9\u0aaa\u0007g\u0002\u0002\u0aaa\u0aab\u0007\u0314", + "\u0002\u0002\u0aab\u0aac\u0007\u0092\u0002\u0002\u0aac\u0aad\u0005\u03c6", + "\u01e4\u0002\u0aad\u0109\u0003\u0002\u0002\u0002\u0aae\u0aaf\u0007g", + "\u0002\u0002\u0aaf\u0ab0\u0007\u0315\u0002\u0002\u0ab0\u0ab1\u0007\u012e", + "\u0002\u0002\u0ab1\u0ab5\u0007\u01b5\u0002\u0002\u0ab2\u0ab3\u0005\u03c6", + "\u01e4\u0002\u0ab3\u0ab4\u0007\u0337\u0002\u0002\u0ab4\u0ab6\u0003\u0002", + "\u0002\u0002\u0ab5\u0ab2\u0003\u0002\u0002\u0002\u0ab5\u0ab6\u0003\u0002", + "\u0002\u0002\u0ab6\u0ab7\u0003\u0002\u0002\u0002\u0ab7\u0ab8\u0005\u03c6", + "\u01e4\u0002\u0ab8\u010b\u0003\u0002\u0002\u0002\u0ab9\u0aba\u0007\u01e0", + "\u0002\u0002\u0aba\u0ac9\u0007\u0160\u0002\u0002\u0abb\u0abd\u0007\u033e", + "\u0002\u0002\u0abc\u0abb\u0003\u0002\u0002\u0002\u0abc\u0abd\u0003\u0002", + "\u0002\u0002\u0abd\u0ac1\u0003\u0002\u0002\u0002\u0abe\u0abf\u0005\u03c6", + "\u01e4\u0002\u0abf\u0ac0\u0007\u0337\u0002\u0002\u0ac0\u0ac2\u0003\u0002", + "\u0002\u0002\u0ac1\u0abe\u0003\u0002\u0002\u0002\u0ac1\u0ac2\u0003\u0002", + "\u0002\u0002\u0ac2\u0ac3\u0003\u0002\u0002\u0002\u0ac3\u0ac5\u0005\u03c6", + "\u01e4\u0002\u0ac4\u0abc\u0003\u0002\u0002\u0002\u0ac5\u0ac6\u0003\u0002", + "\u0002\u0002\u0ac6\u0ac4\u0003\u0002\u0002\u0002\u0ac6\u0ac7\u0003\u0002", + "\u0002\u0002\u0ac7\u0aca\u0003\u0002\u0002\u0002\u0ac8\u0aca\u0007\u0006", + "\u0002\u0002\u0ac9\u0ac4\u0003\u0002\u0002\u0002\u0ac9\u0ac8\u0003\u0002", + "\u0002\u0002\u0aca\u0acb\u0003\u0002\u0002\u0002\u0acb\u0ad5\u0007\u00e5", + "\u0002\u0002\u0acc\u0acd\u0005\u03c6\u01e4\u0002\u0acd\u0ace\u0007\u0337", + "\u0002\u0002\u0ace\u0ad0\u0003\u0002\u0002\u0002\u0acf\u0acc\u0003\u0002", + "\u0002\u0002\u0acf\u0ad0\u0003\u0002\u0002\u0002\u0ad0\u0ad1\u0003\u0002", + "\u0002\u0002\u0ad1\u0ad6\u0005\u03c6\u01e4\u0002\u0ad2\u0ad6\u0007T", + "\u0002\u0002\u0ad3\u0ad4\u0007\u0006\u0002\u0002\u0ad4\u0ad6\u0007\u0135", + "\u0002\u0002\u0ad5\u0acf\u0003\u0002\u0002\u0002\u0ad5\u0ad2\u0003\u0002", + "\u0002\u0002\u0ad5\u0ad3\u0003\u0002\u0002\u0002\u0ad6\u010d\u0003\u0002", + "\u0002\u0002\u0ad7\u0ad8\u0007\u01e9\u0002\u0002\u0ad8\u0ae7\u0007\u0160", + "\u0002\u0002\u0ad9\u0adb\u0007\u033e\u0002\u0002\u0ada\u0ad9\u0003\u0002", + "\u0002\u0002\u0ada\u0adb\u0003\u0002\u0002\u0002\u0adb\u0adf\u0003\u0002", + "\u0002\u0002\u0adc\u0add\u0005\u03c6\u01e4\u0002\u0add\u0ade\u0007\u0337", + "\u0002\u0002\u0ade\u0ae0\u0003\u0002\u0002\u0002\u0adf\u0adc\u0003\u0002", + "\u0002\u0002\u0adf\u0ae0\u0003\u0002\u0002\u0002\u0ae0\u0ae1\u0003\u0002", + "\u0002\u0002\u0ae1\u0ae3\u0005\u03c6\u01e4\u0002\u0ae2\u0ada\u0003\u0002", + "\u0002\u0002\u0ae3\u0ae4\u0003\u0002\u0002\u0002\u0ae4\u0ae2\u0003\u0002", + "\u0002\u0002\u0ae4\u0ae5\u0003\u0002\u0002\u0002\u0ae5\u0ae8\u0003\u0002", + "\u0002\u0002\u0ae6\u0ae8\u0007\u0006\u0002\u0002\u0ae7\u0ae2\u0003\u0002", + "\u0002\u0002\u0ae7\u0ae6\u0003\u0002\u0002\u0002\u0ae8\u0ae9\u0003\u0002", + "\u0002\u0002\u0ae9\u0af3\u0007\u00e5\u0002\u0002\u0aea\u0aeb\u0005\u03c6", + "\u01e4\u0002\u0aeb\u0aec\u0007\u0337\u0002\u0002\u0aec\u0aee\u0003\u0002", + "\u0002\u0002\u0aed\u0aea\u0003\u0002\u0002\u0002\u0aed\u0aee\u0003\u0002", + "\u0002\u0002\u0aee\u0aef\u0003\u0002\u0002\u0002\u0aef\u0af4\u0005\u03c6", + "\u01e4\u0002\u0af0\u0af4\u0007T\u0002\u0002\u0af1\u0af2\u0007\u0006", + "\u0002\u0002\u0af2\u0af4\u0007\u0135\u0002\u0002\u0af3\u0aed\u0003\u0002", + "\u0002\u0002\u0af3\u0af0\u0003\u0002\u0002\u0002\u0af3\u0af1\u0003\u0002", + "\u0002\u0002\u0af4\u010f\u0003\u0002\u0002\u0002\u0af5\u0af6\u0007\u0239", + "\u0002\u0002\u0af6\u0af7\u0007\u0153\u0002\u0002\u0af7\u0af8\u0005\u038e", + "\u01c8\u0002\u0af8\u0af9\u0007\u009b\u0002\u0002\u0af9\u0afa\t\u0016", + "\u0002\u0002\u0afa\u0afe\u0007\u0259\u0002\u0002\u0afb\u0afc\u0007\u0310", + "\u0002\u0002\u0afc\u0aff\u0007\u0322\u0002\u0002\u0afd\u0aff\u0007\u026c", + "\u0002\u0002\u0afe\u0afb\u0003\u0002\u0002\u0002\u0afe\u0afd\u0003\u0002", + "\u0002\u0002\u0afe\u0aff\u0003\u0002\u0002\u0002\u0aff\u0b01\u0003\u0002", + "\u0002\u0002\u0b00\u0b02\u0007\u033f\u0002\u0002\u0b01\u0b00\u0003\u0002", + "\u0002\u0002\u0b01\u0b02\u0003\u0002\u0002\u0002\u0b02\u0111\u0003\u0002", + "\u0002\u0002\u0b03\u0b04\u0007\u0161\u0002\u0002\u0b04\u0b05\u0007\u0153", + "\u0002\u0002\u0b05\u0b19\u0005\u038e\u01c8\u0002\u0b06\u0b07\u0007\u0179", + "\u0002\u0002\u0b07\u0b08\u0007\u033c\u0002\u0002\u0b08\u0b09\u0007\u0281", + "\u0002\u0002\u0b09\u0b13\u0007\u033c\u0002\u0002\u0b0a\u0b0c\u0007\u033e", + "\u0002\u0002\u0b0b\u0b0a\u0003\u0002\u0002\u0002\u0b0b\u0b0c\u0003\u0002", + "\u0002\u0002\u0b0c\u0b11\u0003\u0002\u0002\u0002\u0b0d\u0b12\u0007\u0322", + "\u0002\u0002\u0b0e\u0b0f\u0007\u0322\u0002\u0002\u0b0f\u0b10\u0007\u015a", + "\u0002\u0002\u0b10\u0b12\u0007\u0322\u0002\u0002\u0b11\u0b0d\u0003\u0002", + "\u0002\u0002\u0b11\u0b0e\u0003\u0002\u0002\u0002\u0b12\u0b14\u0003\u0002", + "\u0002\u0002\u0b13\u0b0b\u0003\u0002\u0002\u0002\u0b14\u0b15\u0003\u0002", + "\u0002\u0002\u0b15\u0b13\u0003\u0002\u0002\u0002\u0b15\u0b16\u0003\u0002", + "\u0002\u0002\u0b16\u0b17\u0003\u0002\u0002\u0002\u0b17\u0b18\u0007\u033d", + "\u0002\u0002\u0b18\u0b1a\u0007\u033d\u0002\u0002\u0b19\u0b06\u0003\u0002", + "\u0002\u0002\u0b19\u0b1a\u0003\u0002\u0002\u0002\u0b1a\u0113\u0003\u0002", + "\u0002\u0002\u0b1b\u0b1c\u0007I\u0002\u0002\u0b1c\u0b1d\u00078\u0002", + "\u0002\u0b1d\u0b1e\u0007\u00bd\u0002\u0002\u0b1e\u0b1f\u0007\u00ac\u0002", + "\u0002\u0b1f\u0b20\u0005\u03c6\u01e4\u0002\u0b20\u0b21\u0007\u0179\u0002", + "\u0002\u0b21\u0b22\u0007\u033c\u0002\u0002\u0b22\u0b23\u0007\u00ae\u0002", + "\u0002\u0b23\u0b24\u0007\u032a\u0002\u0002\u0b24\u0b25\u0007\u0326\u0002", + "\u0002\u0b25\u0b26\u0007\u033e\u0002\u0002\u0b26\u0b27\u0007\u00ad\u0002", + "\u0002\u0b27\u0b28\u0007\u032a\u0002\u0002\u0b28\u0b29\u0007\u0326\u0002", + "\u0002\u0b29\u0b2a\u0007\u033d\u0002\u0002\u0b2a\u0115\u0003\u0002\u0002", + "\u0002\u0b2b\u0b2c\u0007\n\u0002\u0002\u0b2c\u0b2d\u0007\u01c4\u0002", + "\u0002\u0b2d\u0b2e\u0005\u03c6\u01e4\u0002\u0b2e\u0b2f\u0007\u0179\u0002", + "\u0002\u0b2f\u0b30\u0007\u0096\u0002\u0002\u0b30\u0b31\u0007\u032a\u0002", + "\u0002\u0b31\u0b36\u0007\u0326\u0002\u0002\u0b32\u0b33\u0007\u033e\u0002", + "\u0002\u0b33\u0b34\u0007\u02c7\u0002\u0002\u0b34\u0b35\u0007\u032a\u0002", + "\u0002\u0b35\u0b37\u0007\u0326\u0002\u0002\u0b36\u0b32\u0003\u0002\u0002", + "\u0002\u0b36\u0b37\u0003\u0002\u0002\u0002\u0b37\u0117\u0003\u0002\u0002", + "\u0002\u0b38\u0b39\u0007I\u0002\u0002\u0b39\u0b3a\u0007\u01c4\u0002", + "\u0002\u0b3a\u0b3b\u0005\u03c6\u01e4\u0002\u0b3b\u0b3c\u0007\u0179\u0002", + "\u0002\u0b3c\u0b3d\u0007\u0096\u0002\u0002\u0b3d\u0b3e\u0007\u032a\u0002", + "\u0002\u0b3e\u0b43\u0007\u0326\u0002\u0002\u0b3f\u0b40\u0007\u033e\u0002", + "\u0002\u0b40\u0b41\u0007\u02c7\u0002\u0002\u0b41\u0b42\u0007\u032a\u0002", + "\u0002\u0b42\u0b44\u0007\u0326\u0002\u0002\u0b43\u0b3f\u0003\u0002\u0002", + "\u0002\u0b43\u0b44\u0003\u0002\u0002\u0002\u0b44\u0b49\u0003\u0002\u0002", + "\u0002\u0b45\u0b46\u0007\u0085\u0002\u0002\u0b46\u0b47\u0007\u01c5\u0002", + "\u0002\u0b47\u0b48\u0007\u0291\u0002\u0002\u0b48\u0b4a\u0005\u03c6\u01e4", + "\u0002\u0b49\u0b45\u0003\u0002\u0002\u0002\u0b49\u0b4a\u0003\u0002\u0002", + "\u0002\u0b4a\u0119\u0003\u0002\u0002\u0002\u0b4b\u0b4c\u0007\n\u0002", + "\u0002\u0b4c\u0b4d\u0007\u01c5\u0002\u0002\u0b4d\u0b4e\u0007\u0291\u0002", + "\u0002\u0b4e\u0b53\u0005\u03c6\u01e4\u0002\u0b4f\u0b50\u0007\u008b\u0002", + "\u0002\u0b50\u0b51\u0007\u0081\u0002\u0002\u0b51\u0b52\u0007\u032a\u0002", + "\u0002\u0b52\u0b54\u0007\u0326\u0002\u0002\u0b53\u0b4f\u0003\u0002\u0002", + "\u0002\u0b53\u0b54\u0003\u0002\u0002\u0002\u0b54\u0b56\u0003\u0002\u0002", + "\u0002\u0b55\u0b57\t\u0017\u0002\u0002\u0b56\u0b55\u0003\u0002\u0002", + "\u0002\u0b56\u0b57\u0003\u0002\u0002\u0002\u0b57\u011b\u0003\u0002\u0002", + "\u0002\u0b58\u0b59\u0007I\u0002\u0002\u0b59\u0b5a\u0007\u01c5\u0002", + "\u0002\u0b5a\u0b5b\u0007\u0291\u0002\u0002\u0b5b\u0b5c\u0005\u03c6\u01e4", + "\u0002\u0b5c\u0b5d\u0007\u008b\u0002\u0002\u0b5d\u0b5e\u0007\u0081\u0002", + "\u0002\u0b5e\u0b5f\u0007\u032a\u0002\u0002\u0b5f\u0b60\u0007\u0326\u0002", + "\u0002\u0b60\u011d\u0003\u0002\u0002\u0002\u0b61\u0b62\u0007I\u0002", + "\u0002\u0b62\u0b63\u0007q\u0002\u0002\u0b63\u0b64\u0007\u00dd\u0002", + "\u0002\u0b64\u0b65\u0005\u03c6\u01e4\u0002\u0b65\u0b6a\u0007\u00e5\u0002", + "\u0002\u0b66\u0b6b\u0007\u0135\u0002\u0002\u0b67\u0b6b\u0007T\u0002", + "\u0002\u0b68\u0b69\u0007\u0294\u0002\u0002\u0b69\u0b6b\u0005\u03c6\u01e4", + "\u0002\u0b6a\u0b66\u0003\u0002\u0002\u0002\u0b6a\u0b67\u0003\u0002\u0002", + "\u0002\u0b6a\u0b68\u0003\u0002\u0002\u0002\u0b6b\u0b6e\u0003\u0002\u0002", + "\u0002\u0b6c\u0b6d\u0007\u0179\u0002\u0002\u0b6d\u0b6f\u0007\u007f\u0002", + "\u0002\u0b6e\u0b6c\u0003\u0002\u0002\u0002\u0b6e\u0b6f\u0003\u0002\u0002", + "\u0002\u0b6f\u0b70\u0003\u0002\u0002\u0002\u0b70\u0b75\u0007\u0085\u0002", + "\u0002\u0b71\u0b73\u0007\u033e\u0002\u0002\u0b72\u0b71\u0003\u0002\u0002", + "\u0002\u0b72\u0b73\u0003\u0002\u0002\u0002\u0b73\u0b74\u0003\u0002\u0002", + "\u0002\u0b74\u0b76\u0005\u03c6\u01e4\u0002\u0b75\u0b72\u0003\u0002\u0002", + "\u0002\u0b76\u0b77\u0003\u0002\u0002\u0002\u0b77\u0b75\u0003\u0002\u0002", + "\u0002\u0b77\u0b78\u0003\u0002\u0002\u0002\u0b78\u0b79\u0003\u0002\u0002", + "\u0002\u0b79\u0b7a\u0007\u015a\u0002\u0002\u0b7a\u0b7b\u0007\u0136\u0002", + "\u0002\u0b7b\u0b7c\u0007\u0326\u0002\u0002\u0b7c\u0b7d\u0007\u033e\u0002", + "\u0002\u0b7d\u0b7e\u0007\u0326\u0002\u0002\u0b7e\u011f\u0003\u0002\u0002", + "\u0002\u0b7f\u0b80\t\u0014\u0002\u0002\u0b80\u0b81\u0007q\u0002\u0002", + "\u0b81\u0b82\u0007\u0139\u0002\u0002\u0b82\u0b83\u0005\u03c6\u01e4\u0002", + "\u0b83\u0b84\u0007\u00e5\u0002\u0002\u0b84\u0bc8\u0007\u0135\u0002\u0002", + "\u0b85\u0b87\u0007\u033e\u0002\u0002\u0b86\u0b85\u0003\u0002\u0002\u0002", + "\u0b86\u0b87\u0003\u0002\u0002\u0002\u0b87\u0b88\u0003\u0002\u0002\u0002", + "\u0b88\u0b89\u0007\u0004\u0002\u0002\u0b89\u0b8d\u0007q\u0002\u0002", + "\u0b8a\u0b8b\u0005\u03c6\u01e4\u0002\u0b8b\u0b8c\u0007\u0337\u0002\u0002", + "\u0b8c\u0b8e\u0003\u0002\u0002\u0002\u0b8d\u0b8a\u0003\u0002\u0002\u0002", + "\u0b8d\u0b8e\u0003\u0002\u0002\u0002\u0b8e\u0b8f\u0003\u0002\u0002\u0002", + "\u0b8f\u0b90\u0005\u03c6\u01e4\u0002\u0b90\u0b91\u0007\u0337\u0002\u0002", + "\u0b91\u0b92\u0005\u03c6\u01e4\u0002\u0b92\u0bc3\u0003\u0002\u0002\u0002", + "\u0b93\u0ba1\u0007\u033c\u0002\u0002\u0b94\u0b9e\u0007\u013b\u0002\u0002", + "\u0b95\u0b97\u0007\u033e\u0002\u0002\u0b96\u0b95\u0003\u0002\u0002\u0002", + "\u0b96\u0b97\u0003\u0002\u0002\u0002\u0b97\u0b98\u0003\u0002\u0002\u0002", + "\u0b98\u0b99\u0005\u03c6\u01e4\u0002\u0b99\u0b9a\u0007\u032a\u0002\u0002", + "\u0b9a\u0b9b\t\u0018\u0002\u0002\u0b9b\u0b9d\u0003\u0002\u0002\u0002", + "\u0b9c\u0b96\u0003\u0002\u0002\u0002\u0b9d\u0ba0\u0003\u0002\u0002\u0002", + "\u0b9e\u0b9c\u0003\u0002\u0002\u0002\u0b9e\u0b9f\u0003\u0002\u0002\u0002", + "\u0b9f\u0ba2\u0003\u0002\u0002\u0002\u0ba0\u0b9e\u0003\u0002\u0002\u0002", + "\u0ba1\u0b94\u0003\u0002\u0002\u0002\u0ba1\u0ba2\u0003\u0002\u0002\u0002", + "\u0ba2\u0bb7\u0003\u0002\u0002\u0002\u0ba3\u0ba4\u0007\u0180\u0002\u0002", + "\u0ba4\u0bb1\u0007\u033c\u0002\u0002\u0ba5\u0ba7\u0007\u033e\u0002\u0002", + "\u0ba6\u0ba5\u0003\u0002\u0002\u0002\u0ba6\u0ba7\u0003\u0002\u0002\u0002", + "\u0ba7\u0bab\u0003\u0002\u0002\u0002\u0ba8\u0ba9\u0005\u03c6\u01e4\u0002", + "\u0ba9\u0baa\u0007\u0337\u0002\u0002\u0baa\u0bac\u0003\u0002\u0002\u0002", + "\u0bab\u0ba8\u0003\u0002\u0002\u0002\u0bab\u0bac\u0003\u0002\u0002\u0002", + "\u0bac\u0bad\u0003\u0002\u0002\u0002\u0bad\u0bae\u0005\u03c6\u01e4\u0002", + "\u0bae\u0baf\u0007\u0337\u0002\u0002\u0baf\u0bb0\u0005\u03c6\u01e4\u0002", + "\u0bb0\u0bb2\u0003\u0002\u0002\u0002\u0bb1\u0ba6\u0003\u0002\u0002\u0002", + "\u0bb2\u0bb3\u0003\u0002\u0002\u0002\u0bb3\u0bb1\u0003\u0002\u0002\u0002", + "\u0bb3\u0bb4\u0003\u0002\u0002\u0002\u0bb4\u0bb5\u0003\u0002\u0002\u0002", + "\u0bb5\u0bb6\u0007\u033d\u0002\u0002\u0bb6\u0bb8\u0003\u0002\u0002\u0002", + "\u0bb7\u0ba3\u0003\u0002\u0002\u0002\u0bb8\u0bb9\u0003\u0002\u0002\u0002", + "\u0bb9\u0bb7\u0003\u0002\u0002\u0002\u0bb9\u0bba\u0003\u0002\u0002\u0002", + "\u0bba\u0bbd\u0003\u0002\u0002\u0002\u0bbb\u0bbc\u0007\u0176\u0002\u0002", + "\u0bbc\u0bbe\u0005\u0122\u0092\u0002\u0bbd\u0bbb\u0003\u0002\u0002\u0002", + "\u0bbd\u0bbe\u0003\u0002\u0002\u0002\u0bbe\u0bbf\u0003\u0002\u0002\u0002", + "\u0bbf\u0bc0\u0007\u033d\u0002\u0002\u0bc0\u0bc2\u0003\u0002\u0002\u0002", + "\u0bc1\u0b93\u0003\u0002\u0002\u0002\u0bc2\u0bc5\u0003\u0002\u0002\u0002", + "\u0bc3\u0bc1\u0003\u0002\u0002\u0002\u0bc3\u0bc4\u0003\u0002\u0002\u0002", + "\u0bc4\u0bc7\u0003\u0002\u0002\u0002\u0bc5\u0bc3\u0003\u0002\u0002\u0002", + "\u0bc6\u0b86\u0003\u0002\u0002\u0002\u0bc7\u0bca\u0003\u0002\u0002\u0002", + "\u0bc8\u0bc6\u0003\u0002\u0002\u0002\u0bc8\u0bc9\u0003\u0002\u0002\u0002", + "\u0bc9\u0bdb\u0003\u0002\u0002\u0002\u0bca\u0bc8\u0003\u0002\u0002\u0002", + "\u0bcb\u0bcd\u0007\u033e\u0002\u0002\u0bcc\u0bcb\u0003\u0002\u0002\u0002", + "\u0bcc\u0bcd\u0003\u0002\u0002\u0002\u0bcd\u0bce\u0003\u0002\u0002\u0002", + "\u0bce\u0bcf\u0007g\u0002\u0002\u0bcf\u0bd3\u0007q\u0002\u0002\u0bd0", + "\u0bd1\u0005\u03c6\u01e4\u0002\u0bd1\u0bd2\u0007\u0337\u0002\u0002\u0bd2", + "\u0bd4\u0003\u0002\u0002\u0002\u0bd3\u0bd0\u0003\u0002\u0002\u0002\u0bd3", + "\u0bd4\u0003\u0002\u0002\u0002\u0bd4\u0bd5\u0003\u0002\u0002\u0002\u0bd5", + "\u0bd6\u0005\u03c6\u01e4\u0002\u0bd6\u0bd7\u0007\u0337\u0002\u0002\u0bd7", + "\u0bd8\u0005\u03c6\u01e4\u0002\u0bd8\u0bda\u0003\u0002\u0002\u0002\u0bd9", + "\u0bcc\u0003\u0002\u0002\u0002\u0bda\u0bdd\u0003\u0002\u0002\u0002\u0bdb", + "\u0bd9\u0003\u0002\u0002\u0002\u0bdb\u0bdc\u0003\u0002\u0002\u0002\u0bdc", + "\u0c07\u0003\u0002\u0002\u0002\u0bdd\u0bdb\u0003\u0002\u0002\u0002\u0bde", + "\u0bdf\u0007\u0004\u0002\u0002\u0bdf\u0be3\u0007\u0156\u0002\u0002\u0be0", + "\u0be1\u0005\u03c6\u01e4\u0002\u0be1\u0be2\u0007\u0337\u0002\u0002\u0be2", + "\u0be4\u0003\u0002\u0002\u0002\u0be3\u0be0\u0003\u0002\u0002\u0002\u0be3", + "\u0be4\u0003\u0002\u0002\u0002\u0be4\u0be5\u0003\u0002\u0002\u0002\u0be5", + "\u0be6\u0005\u03c6\u01e4\u0002\u0be6\u0be7\u0007\u0337\u0002\u0002\u0be7", + "\u0be8\u0005\u03c6\u01e4\u0002\u0be8\u0c02\u0003\u0002\u0002\u0002\u0be9", + "\u0bea\u0007\u033c\u0002\u0002\u0bea\u0bfa\u0007\u013b\u0002\u0002\u0beb", + "\u0bed\u0007\u033e\u0002\u0002\u0bec\u0beb\u0003\u0002\u0002\u0002\u0bec", + "\u0bed\u0003\u0002\u0002\u0002\u0bed\u0bee\u0003\u0002\u0002\u0002\u0bee", + "\u0bef\u0005\u03c6\u01e4\u0002\u0bef\u0bf8\u0007\u032a\u0002\u0002\u0bf0", + "\u0bf2\u0007\u033c\u0002\u0002\u0bf1\u0bf0\u0003\u0002\u0002\u0002\u0bf1", + "\u0bf2\u0003\u0002\u0002\u0002\u0bf2\u0bf3\u0003\u0002\u0002\u0002\u0bf3", + "\u0bf5\u0007\u0322\u0002\u0002\u0bf4\u0bf6\u0007\u033d\u0002\u0002\u0bf5", + "\u0bf4\u0003\u0002\u0002\u0002\u0bf5\u0bf6\u0003\u0002\u0002\u0002\u0bf6", + "\u0bf9\u0003\u0002\u0002\u0002\u0bf7\u0bf9\u0007\u0326\u0002\u0002\u0bf8", + "\u0bf1\u0003\u0002\u0002\u0002\u0bf8\u0bf7\u0003\u0002\u0002\u0002\u0bf9", + "\u0bfb\u0003\u0002\u0002\u0002\u0bfa\u0bec\u0003\u0002\u0002\u0002\u0bfb", + "\u0bfc\u0003\u0002\u0002\u0002\u0bfc\u0bfa\u0003\u0002\u0002\u0002\u0bfc", + "\u0bfd\u0003\u0002\u0002\u0002\u0bfd\u0bfe\u0003\u0002\u0002\u0002\u0bfe", + "\u0bff\u0007\u033d\u0002\u0002\u0bff\u0c01\u0003\u0002\u0002\u0002\u0c00", + "\u0be9\u0003\u0002\u0002\u0002\u0c01\u0c04\u0003\u0002\u0002\u0002\u0c02", + "\u0c00\u0003\u0002\u0002\u0002\u0c02\u0c03\u0003\u0002\u0002\u0002\u0c03", + "\u0c06\u0003\u0002\u0002\u0002\u0c04\u0c02\u0003\u0002\u0002\u0002\u0c05", + "\u0bde\u0003\u0002\u0002\u0002\u0c06\u0c09\u0003\u0002\u0002\u0002\u0c07", + "\u0c05\u0003\u0002\u0002\u0002\u0c07\u0c08\u0003\u0002\u0002\u0002\u0c08", + "\u0c17\u0003\u0002\u0002\u0002\u0c09\u0c07\u0003\u0002\u0002\u0002\u0c0a", + "\u0c0b\u0007g\u0002\u0002\u0c0b\u0c0f\u0007\u0156\u0002\u0002\u0c0c", + "\u0c0d\u0005\u03c6\u01e4\u0002\u0c0d\u0c0e\u0007\u0337\u0002\u0002\u0c0e", + "\u0c10\u0003\u0002\u0002\u0002\u0c0f\u0c0c\u0003\u0002\u0002\u0002\u0c0f", + "\u0c10\u0003\u0002\u0002\u0002\u0c10\u0c11\u0003\u0002\u0002\u0002\u0c11", + "\u0c12\u0005\u03c6\u01e4\u0002\u0c12\u0c13\u0007\u0337\u0002\u0002\u0c13", + "\u0c14\u0005\u03c6\u01e4\u0002\u0c14\u0c16\u0003\u0002\u0002\u0002\u0c15", + "\u0c0a\u0003\u0002\u0002\u0002\u0c16\u0c19\u0003\u0002\u0002\u0002\u0c17", + "\u0c15\u0003\u0002\u0002\u0002\u0c17\u0c18\u0003\u0002\u0002\u0002\u0c18", + "\u0c5b\u0003\u0002\u0002\u0002\u0c19\u0c17\u0003\u0002\u0002\u0002\u0c1a", + "\u0c1b\u0007\u0179\u0002\u0002\u0c1b\u0c23\u0007\u033c\u0002\u0002\u0c1c", + "\u0c1e\u0007\u033e\u0002\u0002\u0c1d\u0c1c\u0003\u0002\u0002\u0002\u0c1d", + "\u0c1e\u0003\u0002\u0002\u0002\u0c1e\u0c1f\u0003\u0002\u0002\u0002\u0c1f", + "\u0c20\u0007\u00be\u0002\u0002\u0c20\u0c21\u0007\u032a\u0002\u0002\u0c21", + "\u0c22\u0007\u0322\u0002\u0002\u0c22\u0c24\t\u0019\u0002\u0002\u0c23", + "\u0c1d\u0003\u0002\u0002\u0002\u0c23\u0c24\u0003\u0002\u0002\u0002\u0c24", + "\u0c2b\u0003\u0002\u0002\u0002\u0c25\u0c27\u0007\u033e\u0002\u0002\u0c26", + "\u0c25\u0003\u0002\u0002\u0002\u0c26\u0c27\u0003\u0002\u0002\u0002\u0c27", + "\u0c28\u0003\u0002\u0002\u0002\u0c28\u0c29\u0007s\u0002\u0002\u0c29", + "\u0c2a\u0007\u032a\u0002\u0002\u0c2a\u0c2c\t\u001a\u0002\u0002\u0c2b", + "\u0c26\u0003\u0002\u0002\u0002\u0c2b\u0c2c\u0003\u0002\u0002\u0002\u0c2c", + "\u0c37\u0003\u0002\u0002\u0002\u0c2d\u0c2f\u0007\u033e\u0002\u0002\u0c2e", + "\u0c2d\u0003\u0002\u0002\u0002\u0c2e\u0c2f\u0003\u0002\u0002\u0002\u0c2f", + "\u0c30\u0003\u0002\u0002\u0002\u0c30\u0c31\u0007\u00c1\u0002\u0002\u0c31", + "\u0c35\u0007\u032a\u0002\u0002\u0c32\u0c33\u0007\u0322\u0002\u0002\u0c33", + "\u0c36\u0007\u02c6\u0002\u0002\u0c34\u0c36\u0007\u009f\u0002\u0002\u0c35", + "\u0c32\u0003\u0002\u0002\u0002\u0c35\u0c34\u0003\u0002\u0002\u0002\u0c36", + "\u0c38\u0003\u0002\u0002\u0002\u0c37\u0c2e\u0003\u0002\u0002\u0002\u0c37", + "\u0c38\u0003\u0002\u0002\u0002\u0c38\u0c40\u0003\u0002\u0002\u0002\u0c39", + "\u0c3b\u0007\u033e\u0002\u0002\u0c3a\u0c39\u0003\u0002\u0002\u0002\u0c3a", + "\u0c3b\u0003\u0002\u0002\u0002\u0c3b\u0c3c\u0003\u0002\u0002\u0002\u0c3c", + "\u0c3d\u0007\u00c2\u0002\u0002\u0c3d\u0c3e\u0007\u032a\u0002\u0002\u0c3e", + "\u0c3f\u0007\u0322\u0002\u0002\u0c3f\u0c41\t\u0019\u0002\u0002\u0c40", + "\u0c3a\u0003\u0002\u0002\u0002\u0c40\u0c41\u0003\u0002\u0002\u0002\u0c41", + "\u0c48\u0003\u0002\u0002\u0002\u0c42\u0c44\u0007\u033e\u0002\u0002\u0c43", + "\u0c42\u0003\u0002\u0002\u0002\u0c43\u0c44\u0003\u0002\u0002\u0002\u0c44", + "\u0c45\u0003\u0002\u0002\u0002\u0c45\u0c46\u0007\u00c8\u0002\u0002\u0c46", + "\u0c47\u0007\u032a\u0002\u0002\u0c47\u0c49\t\u001b\u0002\u0002\u0c48", + "\u0c43\u0003\u0002\u0002\u0002\u0c48\u0c49\u0003\u0002\u0002\u0002\u0c49", + "\u0c50\u0003\u0002\u0002\u0002\u0c4a\u0c4c\u0007\u033e\u0002\u0002\u0c4b", + "\u0c4a\u0003\u0002\u0002\u0002\u0c4b\u0c4c\u0003\u0002\u0002\u0002\u0c4c", + "\u0c4d\u0003\u0002\u0002\u0002\u0c4d\u0c4e\u0007\u015c\u0002\u0002\u0c4e", + "\u0c4f\u0007\u032a\u0002\u0002\u0c4f\u0c51\t\t\u0002\u0002\u0c50\u0c4b", + "\u0003\u0002\u0002\u0002\u0c50\u0c51\u0003\u0002\u0002\u0002\u0c51\u0c58", + "\u0003\u0002\u0002\u0002\u0c52\u0c54\u0007\u033e\u0002\u0002\u0c53\u0c52", + "\u0003\u0002\u0002\u0002\u0c53\u0c54\u0003\u0002\u0002\u0002\u0c54\u0c55", + "\u0003\u0002\u0002\u0002\u0c55\u0c56\u0007\u014d\u0002\u0002\u0c56\u0c57", + "\u0007\u032a\u0002\u0002\u0c57\u0c59\t\t\u0002\u0002\u0c58\u0c53\u0003", + "\u0002\u0002\u0002\u0c58\u0c59\u0003\u0002\u0002\u0002\u0c59\u0c5a\u0003", + "\u0002\u0002\u0002\u0c5a\u0c5c\u0007\u033d\u0002\u0002\u0c5b\u0c1a\u0003", + "\u0002\u0002\u0002\u0c5b\u0c5c\u0003\u0002\u0002\u0002\u0c5c\u0c60\u0003", + "\u0002\u0002\u0002\u0c5d\u0c5e\u0007\u0149\u0002\u0002\u0c5e\u0c5f\u0007", + "\u032a\u0002\u0002\u0c5f\u0c61\t\u001c\u0002\u0002\u0c60\u0c5d\u0003", + "\u0002\u0002\u0002\u0c60\u0c61\u0003\u0002\u0002\u0002\u0c61\u0121\u0003", + "\u0002\u0002\u0002\u0c62\u0c64\u0007\u033e\u0002\u0002\u0c63\u0c62\u0003", + "\u0002\u0002\u0002\u0c63\u0c64\u0003\u0002\u0002\u0002\u0c64\u0c66\u0003", + "\u0002\u0002\u0002\u0c65\u0c67\t\u001d\u0002\u0002\u0c66\u0c65\u0003", + "\u0002\u0002\u0002\u0c66\u0c67\u0003\u0002\u0002\u0002\u0c67\u0c69\u0003", + "\u0002\u0002\u0002\u0c68\u0c6a\u0007\u00dc\u0002\u0002\u0c69\u0c68\u0003", + "\u0002\u0002\u0002\u0c69\u0c6a\u0003\u0002\u0002\u0002\u0c6a\u0c70\u0003", + "\u0002\u0002\u0002\u0c6b\u0c71\u0005\u0124\u0093\u0002\u0c6c\u0c6d\u0007", + "\u033c\u0002\u0002\u0c6d\u0c6e\u0005\u0122\u0092\u0002\u0c6e\u0c6f\u0007", + "\u033d\u0002\u0002\u0c6f\u0c71\u0003\u0002\u0002\u0002\u0c70\u0c6b\u0003", + "\u0002\u0002\u0002\u0c70\u0c6c\u0003\u0002\u0002\u0002\u0c71\u0c73\u0003", + "\u0002\u0002\u0002\u0c72\u0c63\u0003\u0002\u0002\u0002\u0c73\u0c74\u0003", + "\u0002\u0002\u0002\u0c74\u0c72\u0003\u0002\u0002\u0002\u0c74\u0c75\u0003", + "\u0002\u0002\u0002\u0c75\u0123\u0003\u0002\u0002\u0002\u0c76\u0c7c\u0005", + "\u0126\u0094\u0002\u0c77\u0c78\u0007\u033c\u0002\u0002\u0c78\u0c79\u0005", + "\u0122\u0092\u0002\u0c79\u0c7a\u0007\u033d\u0002\u0002\u0c7a\u0c7c\u0003", + "\u0002\u0002\u0002\u0c7b\u0c76\u0003\u0002\u0002\u0002\u0c7b\u0c77\u0003", + "\u0002\u0002\u0002\u0c7c\u0125\u0003\u0002\u0002\u0002\u0c7d\u0c9a\u0005", + "\u03c6\u01e4\u0002\u0c7e\u0c89\u0005\u03c6\u01e4\u0002\u0c7f\u0c80\u0005", + "\u03c6\u01e4\u0002\u0c80\u0c81\u0007\u0337\u0002\u0002\u0c81\u0c83\u0003", + "\u0002\u0002\u0002\u0c82\u0c7f\u0003\u0002\u0002\u0002\u0c82\u0c83\u0003", + "\u0002\u0002\u0002\u0c83\u0c84\u0003\u0002\u0002\u0002\u0c84\u0c85\u0005", + "\u03c6\u01e4\u0002\u0c85\u0c86\u0007\u0337\u0002\u0002\u0c86\u0c87\u0005", + "\u03c6\u01e4\u0002\u0c87\u0c89\u0003\u0002\u0002\u0002\u0c88\u0c7e\u0003", + "\u0002\u0002\u0002\u0c88\u0c82\u0003\u0002\u0002\u0002\u0c89\u0c95\u0003", + "\u0002\u0002\u0002\u0c8a\u0c96\u0007\u032a\u0002\u0002\u0c8b\u0c8c\u0007", + "\u032c\u0002\u0002\u0c8c\u0c96\u0007\u032b\u0002\u0002\u0c8d\u0c8e\u0007", + "\u032d\u0002\u0002\u0c8e\u0c96\u0007\u032a\u0002\u0002\u0c8f\u0c96\u0007", + "\u032b\u0002\u0002\u0c90\u0c91\u0007\u032b\u0002\u0002\u0c91\u0c96\u0007", + "\u032a\u0002\u0002\u0c92\u0c96\u0007\u032c\u0002\u0002\u0c93\u0c94\u0007", + "\u032c\u0002\u0002\u0c94\u0c96\u0007\u032a\u0002\u0002\u0c95\u0c8a\u0003", + "\u0002\u0002\u0002\u0c95\u0c8b\u0003\u0002\u0002\u0002\u0c95\u0c8d\u0003", + "\u0002\u0002\u0002\u0c95\u0c8f\u0003\u0002\u0002\u0002\u0c95\u0c90\u0003", + "\u0002\u0002\u0002\u0c95\u0c92\u0003\u0002\u0002\u0002\u0c95\u0c93\u0003", + "\u0002\u0002\u0002\u0c96\u0c97\u0003\u0002\u0002\u0002\u0c97\u0c98\t", + "\u0018\u0002\u0002\u0c98\u0c9a\u0003\u0002\u0002\u0002\u0c99\u0c7d\u0003", + "\u0002\u0002\u0002\u0c99\u0c88\u0003\u0002\u0002\u0002\u0c9a\u0cb6\u0003", + "\u0002\u0002\u0002\u0c9b\u0c9c\u0005\u03c6\u01e4\u0002\u0c9c\u0c9d\u0007", + "\u0337\u0002\u0002\u0c9d\u0c9f\u0003\u0002\u0002\u0002\u0c9e\u0c9b\u0003", + "\u0002\u0002\u0002\u0c9e\u0c9f\u0003\u0002\u0002\u0002\u0c9f\u0ca0\u0003", + "\u0002\u0002\u0002\u0ca0\u0ca1\u0005\u03c6\u01e4\u0002\u0ca1\u0ca2\u0007", + "\u0337\u0002\u0002\u0ca2\u0ca3\u0005\u03c6\u01e4\u0002\u0ca3\u0cb1\u0007", + "\u033c\u0002\u0002\u0ca4\u0cb2\u0005\u03c6\u01e4\u0002\u0ca5\u0ca6\u0005", + "\u03c6\u01e4\u0002\u0ca6\u0ca7\u0007\u0337\u0002\u0002\u0ca7\u0ca9\u0003", + "\u0002\u0002\u0002\u0ca8\u0ca5\u0003\u0002\u0002\u0002\u0ca8\u0ca9\u0003", + "\u0002\u0002\u0002\u0ca9\u0caa\u0003\u0002\u0002\u0002\u0caa\u0cab\u0005", + "\u03c6\u01e4\u0002\u0cab\u0cac\u0007\u0337\u0002\u0002\u0cac\u0cad\u0005", + "\u03c6\u01e4\u0002\u0cad\u0cae\u0003\u0002\u0002\u0002\u0cae\u0caf\u0007", + "\u033e\u0002\u0002\u0caf\u0cb0\t\u0018\u0002\u0002\u0cb0\u0cb2\u0003", + "\u0002\u0002\u0002\u0cb1\u0ca4\u0003\u0002\u0002\u0002\u0cb1\u0ca8\u0003", + "\u0002\u0002\u0002\u0cb2\u0cb3\u0003\u0002\u0002\u0002\u0cb3\u0cb4\u0007", + "\u033d\u0002\u0002\u0cb4\u0cb6\u0003\u0002\u0002\u0002\u0cb5\u0c99\u0003", + "\u0002\u0002\u0002\u0cb5\u0c9e\u0003\u0002\u0002\u0002\u0cb6\u0127\u0003", + "\u0002\u0002\u0002\u0cb7\u0cb8\u0007\n\u0002\u0002\u0cb8\u0cb9\u0007", + "{\u0002\u0002\u0cb9\u0cba\u0007\u01c8\u0002\u0002\u0cba\u0cbb\u0007", + "\u0142\u0002\u0002\u0cbb\u0cbc\u0005\u03c6\u01e4\u0002\u0cbc\u0ccc\u0007", + "\u013b\u0002\u0002\u0cbd\u0cbe\u0007\u0238\u0002\u0002\u0cbe\u0cbf\u0007", + "\u032a\u0002\u0002\u0cbf\u0cc1\t\u001e\u0002\u0002\u0cc0\u0cc2\u0007", + "\u033e\u0002\u0002\u0cc1\u0cc0\u0003\u0002\u0002\u0002\u0cc1\u0cc2\u0003", + "\u0002\u0002\u0002\u0cc2\u0ccd\u0003\u0002\u0002\u0002\u0cc3\u0cc4\u0007", + "\u02b3\u0002\u0002\u0cc4\u0cc5\u0007\u032a\u0002\u0002\u0cc5\u0cc7\t", + "\u001e\u0002\u0002\u0cc6\u0cc8\u0007\u033e\u0002\u0002\u0cc7\u0cc6\u0003", + "\u0002\u0002\u0002\u0cc7\u0cc8\u0003\u0002\u0002\u0002\u0cc8\u0ccd\u0003", + "\u0002\u0002\u0002\u0cc9\u0cca\u0007\u01c4\u0002\u0002\u0cca\u0ccb\u0007", + "\u032a\u0002\u0002\u0ccb\u0ccd\u0005\u03c6\u01e4\u0002\u0ccc\u0cbd\u0003", + "\u0002\u0002\u0002\u0ccc\u0cc3\u0003\u0002\u0002\u0002\u0ccc\u0cc9\u0003", + "\u0002\u0002\u0002\u0ccd\u0cce\u0003\u0002\u0002\u0002\u0cce\u0ccc\u0003", + "\u0002\u0002\u0002\u0cce\u0ccf\u0003\u0002\u0002\u0002\u0ccf\u0ce7\u0003", + "\u0002\u0002\u0002\u0cd0\u0cd1\u0007\n\u0002\u0002\u0cd1\u0cd2\u0007", + "{\u0002\u0002\u0cd2\u0cd3\u0007\u01c8\u0002\u0002\u0cd3\u0cd4\u0007", + "\u0142\u0002\u0002\u0cd4\u0cd5\u0005\u03c6\u01e4\u0002\u0cd5\u0cd6\u0007", + "\u0179\u0002\u0002\u0cd6\u0cd7\u0007\u033c\u0002\u0002\u0cd7\u0cd8\u0007", + "\u0301\u0002\u0002\u0cd8\u0cd9\u0007\u032a\u0002\u0002\u0cd9\u0cda\u0007", + "\u01a7\u0002\u0002\u0cda\u0cdb\u0007\u033e\u0002\u0002\u0cdb\u0cdc\u0007", + "\u0238\u0002\u0002\u0cdc\u0cdd\u0007\u032a\u0002\u0002\u0cdd\u0ce2\u0007", + "\u0326\u0002\u0002\u0cde\u0cdf\u0007\u033e\u0002\u0002\u0cdf\u0ce0\u0007", + "\u01c4\u0002\u0002\u0ce0\u0ce1\u0007\u032a\u0002\u0002\u0ce1\u0ce3\u0005", + "\u03c6\u01e4\u0002\u0ce2\u0cde\u0003\u0002\u0002\u0002\u0ce2\u0ce3\u0003", + "\u0002\u0002\u0002\u0ce3\u0ce4\u0003\u0002\u0002\u0002\u0ce4\u0ce5\u0007", + "\u033d\u0002\u0002\u0ce5\u0ce7\u0003\u0002\u0002\u0002\u0ce6\u0cb7\u0003", + "\u0002\u0002\u0002\u0ce6\u0cd0\u0003\u0002\u0002\u0002\u0ce7\u0129\u0003", + "\u0002\u0002\u0002\u0ce8\u0ce9\u0007\n\u0002\u0002\u0ce9\u0cea\u0007", + "{\u0002\u0002\u0cea\u0ceb\u0007\u00b2\u0002\u0002\u0ceb\u0cee\u0005", + "\u03c6\u01e4\u0002\u0cec\u0ced\u0007\u0014\u0002\u0002\u0ced\u0cef\u0005", + "\u03c6\u01e4\u0002\u0cee\u0cec\u0003\u0002\u0002\u0002\u0cee\u0cef\u0003", + "\u0002\u0002\u0002\u0cef\u0cf0\u0003\u0002\u0002\u0002\u0cf0\u0cf1\t", + "\u001f\u0002\u0002\u0cf1\u0cf2\u0007\u033c\u0002\u0002\u0cf2\u0cf3\u0007", + "\u01bb\u0002\u0002\u0cf3\u0cf7\u0007\u032a\u0002\u0002\u0cf4\u0cf8\u0007", + "\u0326\u0002\u0002\u0cf5\u0cf8\u0007\u0327\u0002\u0002\u0cf6\u0cf8\u0007", + "\u00d5\u0002\u0002\u0cf7\u0cf4\u0003\u0002\u0002\u0002\u0cf7\u0cf5\u0003", + "\u0002\u0002\u0002\u0cf7\u0cf6\u0003\u0002\u0002\u0002\u0cf8\u0cf9\u0003", + "\u0002\u0002\u0002\u0cf9\u0cfa\u0007\u033e\u0002\u0002\u0cfa\u0cfb\u0007", + "\u00fc\u0002\u0002\u0cfb\u0cfd\u0007\u032a\u0002\u0002\u0cfc\u0cfe\t", + " \u0002\u0002\u0cfd\u0cfc\u0003\u0002\u0002\u0002\u0cfd\u0cfe\u0003", + "\u0002\u0002\u0002\u0cfe\u0cff\u0003\u0002\u0002\u0002\u0cff\u0d00\u0007", + "\u033d\u0002\u0002\u0d00\u0d01\u0003\u0002\u0002\u0002\u0d01\u0d0b\u0007", + "\u0179\u0002\u0002\u0d02\u0d04\u0007\u033e\u0002\u0002\u0d03\u0d02\u0003", + "\u0002\u0002\u0002\u0d03\u0d04\u0003\u0002\u0002\u0002\u0d04\u0d05\u0003", + "\u0002\u0002\u0002\u0d05\u0d06\u0007\u00b0\u0002\u0002\u0d06\u0d07\u0007", + "\u032a\u0002\u0002\u0d07\u0d0c\t!\u0002\u0002\u0d08\u0d09\u0007S\u0002", + "\u0002\u0d09\u0d0a\u0007\u032a\u0002\u0002\u0d0a\u0d0c\u0005\u03c6\u01e4", + "\u0002\u0d0b\u0d03\u0003\u0002\u0002\u0002\u0d0b\u0d08\u0003\u0002\u0002", + "\u0002\u0d0c\u0d0d\u0003\u0002\u0002\u0002\u0d0d\u0d0b\u0003\u0002\u0002", + "\u0002\u0d0d\u0d0e\u0003\u0002\u0002\u0002\u0d0e\u0d0f\u0003\u0002\u0002", + "\u0002\u0d0f\u0d10\u0007\u033d\u0002\u0002\u0d10\u012b\u0003\u0002\u0002", + "\u0002\u0d11\u0d12\u0007I\u0002\u0002\u0d12\u0d13\u0007{\u0002\u0002", + "\u0d13\u0d14\u0007\u00b2\u0002\u0002\u0d14\u0d17\u0005\u03c6\u01e4\u0002", + "\u0d15\u0d16\u0007\u0014\u0002\u0002\u0d16\u0d18\u0005\u03c6\u01e4\u0002", + "\u0d17\u0d15\u0003\u0002\u0002\u0002\u0d17\u0d18\u0003\u0002\u0002\u0002", + "\u0d18\u0d19\u0003\u0002\u0002\u0002\u0d19\u0d1b\u0007\u008b\u0002\u0002", + "\u0d1a\u0d1c\u0007\u033e\u0002\u0002\u0d1b\u0d1a\u0003\u0002\u0002\u0002", + "\u0d1b\u0d1c\u0003\u0002\u0002\u0002\u0d1c\u0d1e\u0003\u0002\u0002\u0002", + "\u0d1d\u0d1f\u0007\u033c\u0002\u0002\u0d1e\u0d1d\u0003\u0002\u0002\u0002", + "\u0d1e\u0d1f\u0003\u0002\u0002\u0002\u0d1f\u0d22\u0003\u0002\u0002\u0002", + "\u0d20\u0d21\u0007\u01bb\u0002\u0002\u0d21\u0d23\u0007\u032a\u0002\u0002", + "\u0d22\u0d20\u0003\u0002\u0002\u0002\u0d22\u0d23\u0003\u0002\u0002\u0002", + "\u0d23\u0d27\u0003\u0002\u0002\u0002\u0d24\u0d28\u0007\u0326\u0002\u0002", + "\u0d25\u0d28\u0007\u0327\u0002\u0002\u0d26\u0d28\u0007\u00d5\u0002\u0002", + "\u0d27\u0d24\u0003\u0002\u0002\u0002\u0d27\u0d25\u0003\u0002\u0002\u0002", + "\u0d27\u0d26\u0003\u0002\u0002\u0002\u0d28\u0d30\u0003\u0002\u0002\u0002", + "\u0d29\u0d2a\u0007\u033e\u0002\u0002\u0d2a\u0d2b\u0007\u00fc\u0002\u0002", + "\u0d2b\u0d2d\u0007\u032a\u0002\u0002\u0d2c\u0d2e\t \u0002\u0002\u0d2d", + "\u0d2c\u0003\u0002\u0002\u0002\u0d2d\u0d2e\u0003\u0002\u0002\u0002\u0d2e", + "\u0d2f\u0003\u0002\u0002\u0002\u0d2f\u0d31\u0007\u033d\u0002\u0002\u0d30", + "\u0d29\u0003\u0002\u0002\u0002\u0d30\u0d31\u0003\u0002\u0002\u0002\u0d31", + "\u0d41\u0003\u0002\u0002\u0002\u0d32\u0d3c\u0007\u0179\u0002\u0002\u0d33", + "\u0d35\u0007\u033e\u0002\u0002\u0d34\u0d33\u0003\u0002\u0002\u0002\u0d34", + "\u0d35\u0003\u0002\u0002\u0002\u0d35\u0d36\u0003\u0002\u0002\u0002\u0d36", + "\u0d37\u0007\u00b0\u0002\u0002\u0d37\u0d38\u0007\u032a\u0002\u0002\u0d38", + "\u0d3d\t!\u0002\u0002\u0d39\u0d3a\u0007S\u0002\u0002\u0d3a\u0d3b\u0007", + "\u032a\u0002\u0002\u0d3b\u0d3d\u0005\u03c6\u01e4\u0002\u0d3c\u0d34\u0003", + "\u0002\u0002\u0002\u0d3c\u0d39\u0003\u0002\u0002\u0002\u0d3d\u0d3e\u0003", + "\u0002\u0002\u0002\u0d3e\u0d3c\u0003\u0002\u0002\u0002\u0d3e\u0d3f\u0003", + "\u0002\u0002\u0002\u0d3f\u0d40\u0003\u0002\u0002\u0002\u0d40\u0d42\u0007", + "\u033d\u0002\u0002\u0d41\u0d32\u0003\u0002\u0002\u0002\u0d41\u0d42\u0003", + "\u0002\u0002\u0002\u0d42\u012d\u0003\u0002\u0002\u0002\u0d43\u0d44\u0007", + "\n\u0002\u0002\u0d44\u0d45\u0007{\u0002\u0002\u0d45\u0d46\u0007\u02b2", + "\u0002\u0002\u0d46\u0d49\u0007\u0285\u0002\u0002\u0d47\u0d4a\u0005\u03c6", + "\u01e4\u0002\u0d48\u0d4a\u0007\u01d2\u0002\u0002\u0d49\u0d47\u0003\u0002", + "\u0002\u0002\u0d49\u0d48\u0003\u0002\u0002\u0002\u0d4a\u0d4b\u0003\u0002", + "\u0002\u0002\u0d4b\u0d4c\u0007\u0179\u0002\u0002\u0d4c\u0d4d\u0007\u033c", + "\u0002\u0002\u0d4d\u0d4e\u0007\u0242\u0002\u0002\u0d4e\u0d4f\u0007\u032a", + "\u0002\u0002\u0d4f\u0d75\u0007\u0322\u0002\u0002\u0d50\u0d52\u0007\u033e", + "\u0002\u0002\u0d51\u0d50\u0003\u0002\u0002\u0002\u0d51\u0d52\u0003\u0002", + "\u0002\u0002\u0d52\u0d53\u0003\u0002\u0002\u0002\u0d53\u0d54\u0007\u0187", + "\u0002\u0002\u0d54\u0d55\u0007\u01c1\u0002\u0002\u0d55\u0d63\u0007\u032a", + "\u0002\u0002\u0d56\u0d64\u0007\u0198\u0002\u0002\u0d57\u0d59\u0007\u033e", + "\u0002\u0002\u0d58\u0d57\u0003\u0002\u0002\u0002\u0d58\u0d59\u0003\u0002", + "\u0002\u0002\u0d59\u0d5a\u0003\u0002\u0002\u0002\u0d5a\u0d5b\u0007\u0322", + "\u0002\u0002\u0d5b\u0d5c\u0007\u015a\u0002\u0002\u0d5c\u0d60\u0007\u0322", + "\u0002\u0002\u0d5d\u0d5e\u0007\u033e\u0002\u0002\u0d5e\u0d60\u0007\u0322", + "\u0002\u0002\u0d5f\u0d58\u0003\u0002\u0002\u0002\u0d5f\u0d5d\u0003\u0002", + "\u0002\u0002\u0d60\u0d61\u0003\u0002\u0002\u0002\u0d61\u0d5f\u0003\u0002", + "\u0002\u0002\u0d61\u0d62\u0003\u0002\u0002\u0002\u0d62\u0d64\u0003\u0002", + "\u0002\u0002\u0d63\u0d56\u0003\u0002\u0002\u0002\u0d63\u0d5f\u0003\u0002", + "\u0002\u0002\u0d64\u0d76\u0003\u0002\u0002\u0002\u0d65\u0d66\u0007\u026e", + "\u0002\u0002\u0d66\u0d71\u0007\u032a\u0002\u0002\u0d67\u0d69\u0007\u033e", + "\u0002\u0002\u0d68\u0d67\u0003\u0002\u0002\u0002\u0d68\u0d69\u0003\u0002", + "\u0002\u0002\u0d69\u0d6a\u0003\u0002\u0002\u0002\u0d6a\u0d6b\u0007\u0322", + "\u0002\u0002\u0d6b\u0d6c\u0007\u015a\u0002\u0002\u0d6c\u0d72\u0007\u0322", + "\u0002\u0002\u0d6d\u0d6f\u0007\u033e\u0002\u0002\u0d6e\u0d6d\u0003\u0002", + "\u0002\u0002\u0d6e\u0d6f\u0003\u0002\u0002\u0002\u0d6f\u0d70\u0003\u0002", + "\u0002\u0002\u0d70\u0d72\u0007\u0322\u0002\u0002\u0d71\u0d68\u0003\u0002", + "\u0002\u0002\u0d71\u0d6e\u0003\u0002\u0002\u0002\u0d72\u0d73\u0003\u0002", + "\u0002\u0002\u0d73\u0d71\u0003\u0002\u0002\u0002\u0d73\u0d74\u0003\u0002", + "\u0002\u0002\u0d74\u0d76\u0003\u0002\u0002\u0002\u0d75\u0d51\u0003\u0002", + "\u0002\u0002\u0d75\u0d65\u0003\u0002\u0002\u0002\u0d76\u0d7d\u0003\u0002", + "\u0002\u0002\u0d77\u0d79\u0007\u033e\u0002\u0002\u0d78\u0d77\u0003\u0002", + "\u0002\u0002\u0d78\u0d79\u0003\u0002\u0002\u0002\u0d79\u0d7a\u0003\u0002", + "\u0002\u0002\u0d7a\u0d7b\u0007\u0246\u0002\u0002\u0d7b\u0d7c\u0007\u032a", + "\u0002\u0002\u0d7c\u0d7e\u0007\u0322\u0002\u0002\u0d7d\u0d78\u0003\u0002", + "\u0002\u0002\u0d7d\u0d7e\u0003\u0002\u0002\u0002\u0d7e\u0d85\u0003\u0002", + "\u0002\u0002\u0d7f\u0d81\u0007\u033e\u0002\u0002\u0d80\u0d7f\u0003\u0002", + "\u0002\u0002\u0d80\u0d81\u0003\u0002\u0002\u0002\u0d81\u0d82\u0003\u0002", + "\u0002\u0002\u0d82\u0d83\u0007\u0247\u0002\u0002\u0d83\u0d84\u0007\u032a", + "\u0002\u0002\u0d84\u0d86\u0007\u0322\u0002\u0002\u0d85\u0d80\u0003\u0002", + "\u0002\u0002\u0d85\u0d86\u0003\u0002\u0002\u0002\u0d86\u0d87\u0003\u0002", + "\u0002\u0002\u0d87\u0d88\u0007\u033d\u0002\u0002\u0d88\u012f\u0003\u0002", + "\u0002\u0002\u0d89\u0d8a\u0007I\u0002\u0002\u0d8a\u0d8b\u0007{\u0002", + "\u0002\u0d8b\u0d8c\u0007\u02b2\u0002\u0002\u0d8c\u0d8d\u0007\u0285\u0002", + "\u0002\u0d8d\u0d8e\u0005\u03c6\u01e4\u0002\u0d8e\u0d8f\u0007\u0179\u0002", + "\u0002\u0d8f\u0d90\u0007\u033c\u0002\u0002\u0d90\u0d91\u0007\u0242\u0002", + "\u0002\u0d91\u0d92\u0007\u032a\u0002\u0002\u0d92\u0db8\u0007\u0322\u0002", + "\u0002\u0d93\u0d95\u0007\u033e\u0002\u0002\u0d94\u0d93\u0003\u0002\u0002", + "\u0002\u0d94\u0d95\u0003\u0002\u0002\u0002\u0d95\u0d96\u0003\u0002\u0002", + "\u0002\u0d96\u0d97\u0007\u0187\u0002\u0002\u0d97\u0d98\u0007\u01c1\u0002", + "\u0002\u0d98\u0da6\u0007\u032a\u0002\u0002\u0d99\u0da7\u0007\u0198\u0002", + "\u0002\u0d9a\u0d9c\u0007\u033e\u0002\u0002\u0d9b\u0d9a\u0003\u0002\u0002", + "\u0002\u0d9b\u0d9c\u0003\u0002\u0002\u0002\u0d9c\u0d9d\u0003\u0002\u0002", + "\u0002\u0d9d\u0d9e\u0007\u0322\u0002\u0002\u0d9e\u0d9f\u0007\u015a\u0002", + "\u0002\u0d9f\u0da3\u0007\u0322\u0002\u0002\u0da0\u0da1\u0007\u033e\u0002", + "\u0002\u0da1\u0da3\u0007\u0322\u0002\u0002\u0da2\u0d9b\u0003\u0002\u0002", + "\u0002\u0da2\u0da0\u0003\u0002\u0002\u0002\u0da3\u0da4\u0003\u0002\u0002", + "\u0002\u0da4\u0da2\u0003\u0002\u0002\u0002\u0da4\u0da5\u0003\u0002\u0002", + "\u0002\u0da5\u0da7\u0003\u0002\u0002\u0002\u0da6\u0d99\u0003\u0002\u0002", + "\u0002\u0da6\u0da2\u0003\u0002\u0002\u0002\u0da7\u0db9\u0003\u0002\u0002", + "\u0002\u0da8\u0da9\u0007\u026e\u0002\u0002\u0da9\u0db4\u0007\u032a\u0002", + "\u0002\u0daa\u0dac\u0007\u033e\u0002\u0002\u0dab\u0daa\u0003\u0002\u0002", + "\u0002\u0dab\u0dac\u0003\u0002\u0002\u0002\u0dac\u0dad\u0003\u0002\u0002", + "\u0002\u0dad\u0dae\u0007\u0322\u0002\u0002\u0dae\u0daf\u0007\u015a\u0002", + "\u0002\u0daf\u0db5\u0007\u0322\u0002\u0002\u0db0\u0db2\u0007\u033e\u0002", + "\u0002\u0db1\u0db0\u0003\u0002\u0002\u0002\u0db1\u0db2\u0003\u0002\u0002", + "\u0002\u0db2\u0db3\u0003\u0002\u0002\u0002\u0db3\u0db5\u0007\u0322\u0002", + "\u0002\u0db4\u0dab\u0003\u0002\u0002\u0002\u0db4\u0db1\u0003\u0002\u0002", + "\u0002\u0db5\u0db6\u0003\u0002\u0002\u0002\u0db6\u0db4\u0003\u0002\u0002", + "\u0002\u0db6\u0db7\u0003\u0002\u0002\u0002\u0db7\u0db9\u0003\u0002\u0002", + "\u0002\u0db8\u0d94\u0003\u0002\u0002\u0002\u0db8\u0da8\u0003\u0002\u0002", + "\u0002\u0db9\u0dc0\u0003\u0002\u0002\u0002\u0dba\u0dbc\u0007\u033e\u0002", + "\u0002\u0dbb\u0dba\u0003\u0002\u0002\u0002\u0dbb\u0dbc\u0003\u0002\u0002", + "\u0002\u0dbc\u0dbd\u0003\u0002\u0002\u0002\u0dbd\u0dbe\u0007\u0246\u0002", + "\u0002\u0dbe\u0dbf\u0007\u032a\u0002\u0002\u0dbf\u0dc1\u0007\u0322\u0002", + "\u0002\u0dc0\u0dbb\u0003\u0002\u0002\u0002\u0dc0\u0dc1\u0003\u0002\u0002", + "\u0002\u0dc1\u0dc8\u0003\u0002\u0002\u0002\u0dc2\u0dc4\u0007\u033e\u0002", + "\u0002\u0dc3\u0dc2\u0003\u0002\u0002\u0002\u0dc3\u0dc4\u0003\u0002\u0002", + "\u0002\u0dc4\u0dc5\u0003\u0002\u0002\u0002\u0dc5\u0dc6\u0007\u0247\u0002", + "\u0002\u0dc6\u0dc7\u0007\u032a\u0002\u0002\u0dc7\u0dc9\u0007\u0322\u0002", + "\u0002\u0dc8\u0dc3\u0003\u0002\u0002\u0002\u0dc8\u0dc9\u0003\u0002\u0002", + "\u0002\u0dc9\u0dca\u0003\u0002\u0002\u0002\u0dca\u0dcb\u0007\u033d\u0002", + "\u0002\u0dcb\u0131\u0003\u0002\u0002\u0002\u0dcc\u0dcd\u0007\n\u0002", + "\u0002\u0dcd\u0dce\u0007\u0209\u0002\u0002\u0dce\u0dcf\u0007\u01ae\u0002", + "\u0002\u0dcf\u0dda\u0005\u03c6\u01e4\u0002\u0dd0\u0dd5\u0007\u02a1\u0002", + "\u0002\u0dd1\u0dd2\u0007\u0179\u0002\u0002\u0dd2\u0dd3\u0007\u017f\u0002", + "\u0002\u0dd3\u0dd4\u0007\u032a\u0002\u0002\u0dd4\u0dd6\t\t\u0002\u0002", + "\u0dd5\u0dd1\u0003\u0002\u0002\u0002\u0dd5\u0dd6\u0003\u0002\u0002\u0002", + "\u0dd6\u0ddb\u0003\u0002\u0002\u0002\u0dd7\u0ddb\u0007\u02aa\u0002\u0002", + "\u0dd8\u0dd9\u0007\u0010\u0002\u0002\u0dd9\u0ddb\u0007Y\u0002\u0002", + "\u0dda\u0dd0\u0003\u0002\u0002\u0002\u0dda\u0dd7\u0003\u0002\u0002\u0002", + "\u0dda\u0dd8\u0003\u0002\u0002\u0002\u0ddb\u0133\u0003\u0002\u0002\u0002", + "\u0ddc\u0ddd\u0007I\u0002\u0002\u0ddd\u0dde\u0007\u0209\u0002\u0002", + "\u0dde\u0ddf\u0007\u01ae\u0002\u0002\u0ddf\u0de3\u0005\u03c6\u01e4\u0002", + "\u0de0\u0de1\u0007\u00e5\u0002\u0002\u0de1\u0de2\u0007\u01fb\u0002\u0002", + "\u0de2\u0de4\u0005\u03c6\u01e4\u0002\u0de3\u0de0\u0003\u0002\u0002\u0002", + "\u0de3\u0de4\u0003\u0002\u0002\u0002\u0de4\u0de8\u0003\u0002\u0002\u0002", + "\u0de5\u0de6\u0007\u009b\u0002\u0002\u0de6\u0de7\u0007\u0283\u0002\u0002", + "\u0de7\u0de9\u0007\u0326\u0002\u0002\u0de8\u0de5\u0003\u0002\u0002\u0002", + "\u0de8\u0de9\u0003\u0002\u0002\u0002\u0de9\u0dee\u0003\u0002\u0002\u0002", + "\u0dea\u0deb\u0007\u0179\u0002\u0002\u0deb\u0dec\u0007\u017f\u0002\u0002", + "\u0dec\u0ded\u0007\u032a\u0002\u0002\u0ded\u0def\t\t\u0002\u0002\u0dee", + "\u0dea\u0003\u0002\u0002\u0002\u0dee\u0def\u0003\u0002\u0002\u0002\u0def", + "\u0df2\u0003\u0002\u0002\u0002\u0df0\u0df1\u0007\u0010\u0002\u0002\u0df1", + "\u0df3\u0007Y\u0002\u0002\u0df2\u0df0\u0003\u0002\u0002\u0002\u0df2", + "\u0df3\u0003\u0002\u0002\u0002\u0df3\u0df6\u0003\u0002\u0002\u0002\u0df4", + "\u0df5\u0007\u0014\u0002\u0002\u0df5\u0df7\u0005\u03c6\u01e4\u0002\u0df6", + "\u0df4\u0003\u0002\u0002\u0002\u0df6\u0df7\u0003\u0002\u0002\u0002\u0df7", + "\u0135\u0003\u0002\u0002\u0002\u0df8\u0df9\u0007\n\u0002\u0002\u0df9", + "\u0dfa\u0007\u0209\u0002\u0002\u0dfa\u0dfb\u0007\u02e4\u0002\u0002\u0dfb", + "\u0e09\u0005\u03c6\u01e4\u0002\u0dfc\u0dfd\u0007\u0004\u0002\u0002\u0dfd", + "\u0dfe\u0007\u0326\u0002\u0002\u0dfe\u0dff\u0007\u00b0\u0002\u0002\u0dff", + "\u0e0a\t\"\u0002\u0002\u0e00\u0e07\u0007g\u0002\u0002\u0e01\u0e02\u0007", + "\u0326\u0002\u0002\u0e02\u0e03\u0007\u00b0\u0002\u0002\u0e03\u0e08\t", + "\"\u0002\u0002\u0e04\u0e05\u0007\u0006\u0002\u0002\u0e05\u0e08\t\"\u0002", + "\u0002\u0e06\u0e08\u0007\u0006\u0002\u0002\u0e07\u0e01\u0003\u0002\u0002", + "\u0002\u0e07\u0e04\u0003\u0002\u0002\u0002\u0e07\u0e06\u0003\u0002\u0002", + "\u0002\u0e08\u0e0a\u0003\u0002\u0002\u0002\u0e09\u0dfc\u0003\u0002\u0002", + "\u0002\u0e09\u0e00\u0003\u0002\u0002\u0002\u0e0a\u0137\u0003\u0002\u0002", + "\u0002\u0e0b\u0e0c\u0007I\u0002\u0002\u0e0c\u0e0d\u0007\u0209\u0002", + "\u0002\u0e0d\u0e0e\u0007\u02e4\u0002\u0002\u0e0e\u0e1a\u0005\u03c6\u01e4", + "\u0002\u0e0f\u0e18\u0007\u008b\u0002\u0002\u0e10\u0e11\u0005\u03c6\u01e4", + "\u0002\u0e11\u0e12\u0007\u0337\u0002\u0002\u0e12\u0e14\u0003\u0002\u0002", + "\u0002\u0e13\u0e10\u0003\u0002\u0002\u0002\u0e13\u0e14\u0003\u0002\u0002", + "\u0002\u0e14\u0e15\u0003\u0002\u0002\u0002\u0e15\u0e19\u0005\u03c6\u01e4", + "\u0002\u0e16\u0e17\u0007\u02ee\u0002\u0002\u0e17\u0e19\u0007\u02e4\u0002", + "\u0002\u0e18\u0e13\u0003\u0002\u0002\u0002\u0e18\u0e16\u0003\u0002\u0002", + "\u0002\u0e19\u0e1b\u0003\u0002\u0002\u0002\u0e1a\u0e0f\u0003\u0002\u0002", + "\u0002\u0e1a\u0e1b\u0003\u0002\u0002\u0002\u0e1b\u0e1e\u0003\u0002\u0002", + "\u0002\u0e1c\u0e1d\u0007\u0014\u0002\u0002\u0e1d\u0e1f\u0005\u03c6\u01e4", + "\u0002\u0e1e\u0e1c\u0003\u0002\u0002\u0002\u0e1e\u0e1f\u0003\u0002\u0002", + "\u0002\u0e1f\u0139\u0003\u0002\u0002\u0002\u0e20\u0e21\u0007\n\u0002", + "\u0002\u0e21\u0e22\u0007\u023b\u0002\u0002\u0e22\u0e66\u0005\u03c6\u01e4", + "\u0002\u0e23\u0e25\t\u0017\u0002\u0002\u0e24\u0e23\u0003\u0002\u0002", + "\u0002\u0e24\u0e25\u0003\u0002\u0002\u0002\u0e25\u0e67\u0003\u0002\u0002", + "\u0002\u0e26\u0e34\u0007\u0179\u0002\u0002\u0e27\u0e28\u0007\u00f4\u0002", + "\u0002\u0e28\u0e2c\u0007\u032a\u0002\u0002\u0e29\u0e2d\u0007\u0326\u0002", + "\u0002\u0e2a\u0e2b\u0007\u0327\u0002\u0002\u0e2b\u0e2d\u0007\u0094\u0002", + "\u0002\u0e2c\u0e29\u0003\u0002\u0002\u0002\u0e2c\u0e2a\u0003\u0002\u0002", + "\u0002\u0e2d\u0e31\u0003\u0002\u0002\u0002\u0e2e\u0e30\t#\u0002\u0002", + "\u0e2f\u0e2e\u0003\u0002\u0002\u0002\u0e30\u0e33\u0003\u0002\u0002\u0002", + "\u0e31\u0e2f\u0003\u0002\u0002\u0002\u0e31\u0e32\u0003\u0002\u0002\u0002", + "\u0e32\u0e35\u0003\u0002\u0002\u0002\u0e33\u0e31\u0003\u0002\u0002\u0002", + "\u0e34\u0e27\u0003\u0002\u0002\u0002\u0e34\u0e35\u0003\u0002\u0002\u0002", + "\u0e35\u0e3f\u0003\u0002\u0002\u0002\u0e36\u0e37\u0007\u00e4\u0002\u0002", + "\u0e37\u0e38\u0007\u032a\u0002\u0002\u0e38\u0e3c\u0007\u0326\u0002\u0002", + "\u0e39\u0e3b\t#\u0002\u0002\u0e3a\u0e39\u0003\u0002\u0002\u0002\u0e3b", + "\u0e3e\u0003\u0002\u0002\u0002\u0e3c\u0e3a\u0003\u0002\u0002\u0002\u0e3c", + "\u0e3d\u0003\u0002\u0002\u0002\u0e3d\u0e40\u0003\u0002\u0002\u0002\u0e3e", + "\u0e3c\u0003\u0002\u0002\u0002\u0e3f\u0e36\u0003\u0002\u0002\u0002\u0e3f", + "\u0e40\u0003\u0002\u0002\u0002\u0e40\u0e44\u0003\u0002\u0002\u0002\u0e41", + "\u0e42\u0007Z\u0002\u0002\u0e42\u0e43\u0007\u032a\u0002\u0002\u0e43", + "\u0e45\u0005\u03c6\u01e4\u0002\u0e44\u0e41\u0003\u0002\u0002\u0002\u0e44", + "\u0e45\u0003\u0002\u0002\u0002\u0e45\u0e49\u0003\u0002\u0002\u0002\u0e46", + "\u0e47\u0007\u01d4\u0002\u0002\u0e47\u0e48\u0007\u032a\u0002\u0002\u0e48", + "\u0e4a\u0005\u03c6\u01e4\u0002\u0e49\u0e46\u0003\u0002\u0002\u0002\u0e49", + "\u0e4a\u0003\u0002\u0002\u0002\u0e4a\u0e4e\u0003\u0002\u0002\u0002\u0e4b", + "\u0e4c\u0007\u025d\u0002\u0002\u0e4c\u0e4d\u0007\u032a\u0002\u0002\u0e4d", + "\u0e4f\u0005\u03c6\u01e4\u0002\u0e4e\u0e4b\u0003\u0002\u0002\u0002\u0e4e", + "\u0e4f\u0003\u0002\u0002\u0002\u0e4f\u0e53\u0003\u0002\u0002\u0002\u0e50", + "\u0e51\u00070\u0002\u0002\u0e51\u0e52\u0007\u032a\u0002\u0002\u0e52", + "\u0e54\t\t\u0002\u0002\u0e53\u0e50\u0003\u0002\u0002\u0002\u0e53\u0e54", + "\u0003\u0002\u0002\u0002\u0e54\u0e58\u0003\u0002\u0002\u0002\u0e55\u0e56", + "\u00071\u0002\u0002\u0e56\u0e57\u0007\u032a\u0002\u0002\u0e57\u0e59", + "\t\t\u0002\u0002\u0e58\u0e55\u0003\u0002\u0002\u0002\u0e58\u0e59\u0003", + "\u0002\u0002\u0002\u0e59\u0e5d\u0003\u0002\u0002\u0002\u0e5a\u0e5b\u0007", + "\u01c4\u0002\u0002\u0e5b\u0e5c\u0007\u032a\u0002\u0002\u0e5c\u0e5e\u0005", + "\u03c6\u01e4\u0002\u0e5d\u0e5a\u0003\u0002\u0002\u0002\u0e5d\u0e5e\u0003", + "\u0002\u0002\u0002\u0e5e\u0e61\u0003\u0002\u0002\u0002\u0e5f\u0e60\u0007", + "\u0263\u0002\u0002\u0e60\u0e62\u0007\u01c4\u0002\u0002\u0e61\u0e5f\u0003", + "\u0002\u0002\u0002\u0e61\u0e62\u0003\u0002\u0002\u0002\u0e62\u0e67\u0003", + "\u0002\u0002\u0002\u0e63\u0e64\t\u0015\u0002\u0002\u0e64\u0e65\u0007", + "\u01c4\u0002\u0002\u0e65\u0e67\u0005\u03c6\u01e4\u0002\u0e66\u0e24\u0003", + "\u0002\u0002\u0002\u0e66\u0e26\u0003\u0002\u0002\u0002\u0e66\u0e63\u0003", + "\u0002\u0002\u0002\u0e67\u013b\u0003\u0002\u0002\u0002\u0e68\u0e69\u0007", + "I\u0002\u0002\u0e69\u0e6a\u0007\u023b\u0002\u0002\u0e6a\u0ec5\u0005", + "\u03c6\u01e4\u0002\u0e6b\u0e79\u0007\u0179\u0002\u0002\u0e6c\u0e6d\u0007", + "\u00f4\u0002\u0002\u0e6d\u0e71\u0007\u032a\u0002\u0002\u0e6e\u0e72\u0007", + "\u0326\u0002\u0002\u0e6f\u0e70\u0007\u0327\u0002\u0002\u0e70\u0e72\u0007", + "\u0094\u0002\u0002\u0e71\u0e6e\u0003\u0002\u0002\u0002\u0e71\u0e6f\u0003", + "\u0002\u0002\u0002\u0e72\u0e76\u0003\u0002\u0002\u0002\u0e73\u0e75\t", + "#\u0002\u0002\u0e74\u0e73\u0003\u0002\u0002\u0002\u0e75\u0e78\u0003", + "\u0002\u0002\u0002\u0e76\u0e74\u0003\u0002\u0002\u0002\u0e76\u0e77\u0003", + "\u0002\u0002\u0002\u0e77\u0e7a\u0003\u0002\u0002\u0002\u0e78\u0e76\u0003", + "\u0002\u0002\u0002\u0e79\u0e6c\u0003\u0002\u0002\u0002\u0e79\u0e7a\u0003", + "\u0002\u0002\u0002\u0e7a\u0e81\u0003\u0002\u0002\u0002\u0e7b\u0e7d\u0007", + "\u033e\u0002\u0002\u0e7c\u0e7b\u0003\u0002\u0002\u0002\u0e7c\u0e7d\u0003", + "\u0002\u0002\u0002\u0e7d\u0e7e\u0003\u0002\u0002\u0002\u0e7e\u0e7f\u0007", + "\u013e\u0002\u0002\u0e7f\u0e80\u0007\u032a\u0002\u0002\u0e80\u0e82\u0007", + "\u0327\u0002\u0002\u0e81\u0e7c\u0003\u0002\u0002\u0002\u0e81\u0e82\u0003", + "\u0002\u0002\u0002\u0e82\u0e89\u0003\u0002\u0002\u0002\u0e83\u0e85\u0007", + "\u033e\u0002\u0002\u0e84\u0e83\u0003\u0002\u0002\u0002\u0e84\u0e85\u0003", + "\u0002\u0002\u0002\u0e85\u0e86\u0003\u0002\u0002\u0002\u0e86\u0e87\u0007", + "Z\u0002\u0002\u0e87\u0e88\u0007\u032a\u0002\u0002\u0e88\u0e8a\u0005", + "\u03c6\u01e4\u0002\u0e89\u0e84\u0003\u0002\u0002\u0002\u0e89\u0e8a\u0003", + "\u0002\u0002\u0002\u0e8a\u0e91\u0003\u0002\u0002\u0002\u0e8b\u0e8d\u0007", + "\u033e\u0002\u0002\u0e8c\u0e8b\u0003\u0002\u0002\u0002\u0e8c\u0e8d\u0003", + "\u0002\u0002\u0002\u0e8d\u0e8e\u0003\u0002\u0002\u0002\u0e8e\u0e8f\u0007", + "\u01d4\u0002\u0002\u0e8f\u0e90\u0007\u032a\u0002\u0002\u0e90\u0e92\u0005", + "\u03c6\u01e4\u0002\u0e91\u0e8c\u0003\u0002\u0002\u0002\u0e91\u0e92\u0003", + "\u0002\u0002\u0002\u0e92\u0e99\u0003\u0002\u0002\u0002\u0e93\u0e95\u0007", + "\u033e\u0002\u0002\u0e94\u0e93\u0003\u0002\u0002\u0002\u0e94\u0e95\u0003", + "\u0002\u0002\u0002\u0e95\u0e96\u0003\u0002\u0002\u0002\u0e96\u0e97\u0007", + "1\u0002\u0002\u0e97\u0e98\u0007\u032a\u0002\u0002\u0e98\u0e9a\t\t\u0002", + "\u0002\u0e99\u0e94\u0003\u0002\u0002\u0002\u0e99\u0e9a\u0003\u0002\u0002", + "\u0002\u0e9a\u0ea1\u0003\u0002\u0002\u0002\u0e9b\u0e9d\u0007\u033e\u0002", + "\u0002\u0e9c\u0e9b\u0003\u0002\u0002\u0002\u0e9c\u0e9d\u0003\u0002\u0002", + "\u0002\u0e9d\u0e9e\u0003\u0002\u0002\u0002\u0e9e\u0e9f\u00070\u0002", + "\u0002\u0e9f\u0ea0\u0007\u032a\u0002\u0002\u0ea0\u0ea2\t\t\u0002\u0002", + "\u0ea1\u0e9c\u0003\u0002\u0002\u0002\u0ea1\u0ea2\u0003\u0002\u0002\u0002", + "\u0ea2\u0ea9\u0003\u0002\u0002\u0002\u0ea3\u0ea5\u0007\u033e\u0002\u0002", + "\u0ea4\u0ea3\u0003\u0002\u0002\u0002\u0ea4\u0ea5\u0003\u0002\u0002\u0002", + "\u0ea5\u0ea6\u0003\u0002\u0002\u0002\u0ea6\u0ea7\u0007\u01c4\u0002\u0002", + "\u0ea7\u0ea8\u0007\u032a\u0002\u0002\u0ea8\u0eaa\u0005\u03c6\u01e4\u0002", + "\u0ea9\u0ea4\u0003\u0002\u0002\u0002\u0ea9\u0eaa\u0003\u0002\u0002\u0002", + "\u0eaa\u0ec6\u0003\u0002\u0002\u0002\u0eab\u0ec3\u0007\u008b\u0002\u0002", + "\u0eac\u0ead\u0007\u0178\u0002\u0002\u0ead\u0eb4\u0007\u0179\u0002\u0002", + "\u0eae\u0eb0\u0007\u033e\u0002\u0002\u0eaf\u0eae\u0003\u0002\u0002\u0002", + "\u0eaf\u0eb0\u0003\u0002\u0002\u0002\u0eb0\u0eb1\u0003\u0002\u0002\u0002", + "\u0eb1\u0eb2\u0007Z\u0002\u0002\u0eb2\u0eb3\u0007\u032a\u0002\u0002", + "\u0eb3\u0eb5\u0005\u03c6\u01e4\u0002\u0eb4\u0eaf\u0003\u0002\u0002\u0002", + "\u0eb4\u0eb5\u0003\u0002\u0002\u0002\u0eb5\u0ebc\u0003\u0002\u0002\u0002", + "\u0eb6\u0eb8\u0007\u033e\u0002\u0002\u0eb7\u0eb6\u0003\u0002\u0002\u0002", + "\u0eb7\u0eb8\u0003\u0002\u0002\u0002\u0eb8\u0eb9\u0003\u0002\u0002\u0002", + "\u0eb9\u0eba\u0007\u01d4\u0002\u0002\u0eba\u0ebb\u0007\u032a\u0002\u0002", + "\u0ebb\u0ebd\u0007\u0326\u0002\u0002\u0ebc\u0eb7\u0003\u0002\u0002\u0002", + "\u0ebc\u0ebd\u0003\u0002\u0002\u0002\u0ebd\u0ec4\u0003\u0002\u0002\u0002", + "\u0ebe\u0ebf\u0007+\u0002\u0002\u0ebf\u0ec4\u0005\u03c6\u01e4\u0002", + "\u0ec0\u0ec1\u0007\u0012\u0002\u0002\u0ec1\u0ec2\u0007\u00ac\u0002\u0002", + "\u0ec2\u0ec4\u0005\u03c6\u01e4\u0002\u0ec3\u0eac\u0003\u0002\u0002\u0002", + "\u0ec3\u0ebe\u0003\u0002\u0002\u0002\u0ec3\u0ec0\u0003\u0002\u0002\u0002", + "\u0ec4\u0ec6\u0003\u0002\u0002\u0002\u0ec5\u0e6b\u0003\u0002\u0002\u0002", + "\u0ec5\u0eab\u0003\u0002\u0002\u0002\u0ec6\u013d\u0003\u0002\u0002\u0002", + "\u0ec7\u0ec8\u0007\n\u0002\u0002\u0ec8\u0ec9\u0007\u023b\u0002\u0002", + "\u0ec9\u0edb\u0005\u03c6\u01e4\u0002\u0eca\u0ecc\t\u0017\u0002\u0002", + "\u0ecb\u0eca\u0003\u0002\u0002\u0002\u0ecb\u0ecc\u0003\u0002\u0002\u0002", + "\u0ecc\u0edc\u0003\u0002\u0002\u0002\u0ecd\u0ed9\u0007\u0179\u0002\u0002", + "\u0ece\u0ecf\u0007\u00f4\u0002\u0002\u0ecf\u0ed0\u0007\u032a\u0002\u0002", + "\u0ed0\u0ed4\u0007\u0326\u0002\u0002\u0ed1\u0ed2\u0007\u00e4\u0002\u0002", + "\u0ed2\u0ed3\u0007\u032a\u0002\u0002\u0ed3\u0ed5\u0007\u0326\u0002\u0002", + "\u0ed4\u0ed1\u0003\u0002\u0002\u0002\u0ed4\u0ed5\u0003\u0002\u0002\u0002", + "\u0ed5\u0eda\u0003\u0002\u0002\u0002\u0ed6\u0ed7\u0007\u025d\u0002\u0002", + "\u0ed7\u0ed8\u0007\u032a\u0002\u0002\u0ed8\u0eda\u0005\u03c6\u01e4\u0002", + "\u0ed9\u0ece\u0003\u0002\u0002\u0002\u0ed9\u0ed6\u0003\u0002\u0002\u0002", + "\u0eda\u0edc\u0003\u0002\u0002\u0002\u0edb\u0ecb\u0003\u0002\u0002\u0002", + "\u0edb\u0ecd\u0003\u0002\u0002\u0002\u0edc\u013f\u0003\u0002\u0002\u0002", + "\u0edd\u0ede\u0007I\u0002\u0002\u0ede\u0edf\u0007\u023b\u0002\u0002", + "\u0edf\u0ee0\u0005\u03c6\u01e4\u0002\u0ee0\u0ee1\u0007\u0179\u0002\u0002", + "\u0ee1\u0ee2\u0007\u00f4\u0002\u0002\u0ee2\u0ee3\u0007\u032a\u0002\u0002", + "\u0ee3\u0ee7\u0007\u0326\u0002\u0002\u0ee4\u0ee5\u0007\u013e\u0002\u0002", + "\u0ee5\u0ee6\u0007\u032a\u0002\u0002\u0ee6\u0ee8\u0007\u0327\u0002\u0002", + "\u0ee7\u0ee4\u0003\u0002\u0002\u0002\u0ee7\u0ee8\u0003\u0002\u0002\u0002", + "\u0ee8\u0141\u0003\u0002\u0002\u0002\u0ee9\u0eea\u0007\n\u0002\u0002", + "\u0eea\u0eeb\u0007\u023b\u0002\u0002\u0eeb\u0f03\u0005\u03c6\u01e4\u0002", + "\u0eec\u0eee\t\u0017\u0002\u0002\u0eed\u0eec\u0003\u0002\u0002\u0002", + "\u0eed\u0eee\u0003\u0002\u0002\u0002\u0eee\u0f04\u0003\u0002\u0002\u0002", + "\u0eef\u0f01\u0007\u0179\u0002\u0002\u0ef0\u0ef1\u0007\u00f4\u0002\u0002", + "\u0ef1\u0ef2\u0007\u032a\u0002\u0002\u0ef2\u0efc\u0007\u0326\u0002\u0002", + "\u0ef3\u0ef4\u0007\u00e4\u0002\u0002\u0ef4\u0ef5\u0007\u032a\u0002\u0002", + "\u0ef5\u0ef9\u0007\u0326\u0002\u0002\u0ef6\u0ef8\t#\u0002\u0002\u0ef7", + "\u0ef6\u0003\u0002\u0002\u0002\u0ef8\u0efb\u0003\u0002\u0002\u0002\u0ef9", + "\u0ef7\u0003\u0002\u0002\u0002\u0ef9\u0efa\u0003\u0002\u0002\u0002\u0efa", + "\u0efd\u0003\u0002\u0002\u0002\u0efb\u0ef9\u0003\u0002\u0002\u0002\u0efc", + "\u0ef3\u0003\u0002\u0002\u0002\u0efc\u0efd\u0003\u0002\u0002\u0002\u0efd", + "\u0f02\u0003\u0002\u0002\u0002\u0efe\u0eff\u0007\u025d\u0002\u0002\u0eff", + "\u0f00\u0007\u032a\u0002\u0002\u0f00\u0f02\u0005\u03c6\u01e4\u0002\u0f01", + "\u0ef0\u0003\u0002\u0002\u0002\u0f01\u0efe\u0003\u0002\u0002\u0002\u0f02", + "\u0f04\u0003\u0002\u0002\u0002\u0f03\u0eed\u0003\u0002\u0002\u0002\u0f03", + "\u0eef\u0003\u0002\u0002\u0002\u0f04\u0143\u0003\u0002\u0002\u0002\u0f05", + "\u0f06\u0007I\u0002\u0002\u0f06\u0f07\u0007\u023b\u0002\u0002\u0f07", + "\u0f18\u0005\u03c6\u01e4\u0002\u0f08\u0f09\u0007\u0179\u0002\u0002\u0f09", + "\u0f0a\u0007\u00f4\u0002\u0002\u0f0a\u0f0b\u0007\u032a\u0002\u0002\u0f0b", + "\u0f0d\u0007\u0326\u0002\u0002\u0f0c\u0f0e\u0007\u00ce\u0002\u0002\u0f0d", + "\u0f0c\u0003\u0002\u0002\u0002\u0f0d\u0f0e\u0003\u0002\u0002\u0002\u0f0e", + "\u0f14\u0003\u0002\u0002\u0002\u0f0f\u0f10\u00070\u0002\u0002\u0f10", + "\u0f12\u0007\u032a\u0002\u0002\u0f11\u0f13\t\t\u0002\u0002\u0f12\u0f11", + "\u0003\u0002\u0002\u0002\u0f12\u0f13\u0003\u0002\u0002\u0002\u0f13\u0f15", + "\u0003\u0002\u0002\u0002\u0f14\u0f0f\u0003\u0002\u0002\u0002\u0f14\u0f15", + "\u0003\u0002\u0002\u0002\u0f15\u0f19\u0003\u0002\u0002\u0002\u0f16\u0f17", + "\u0007\u008b\u0002\u0002\u0f17\u0f19\u0007\u0178\u0002\u0002\u0f18\u0f08", + "\u0003\u0002\u0002\u0002\u0f18\u0f16\u0003\u0002\u0002\u0002\u0f19\u0145", + "\u0003\u0002\u0002\u0002\u0f1a\u0f1b\u0007\n\u0002\u0002\u0f1b\u0f1c", + "\u0007\u00bd\u0002\u0002\u0f1c\u0f32\u0007\u00ac\u0002\u0002\u0f1d\u0f1f", + "\u0007\u0203\u0002\u0002\u0f1e\u0f1d\u0003\u0002\u0002\u0002\u0f1e\u0f1f", + "\u0003\u0002\u0002\u0002\u0f1f\u0f20\u0003\u0002\u0002\u0002\u0f20\u0f21", + "\u0007\u010f\u0002\u0002\u0f21\u0f22\u0007\u0179\u0002\u0002\u0f22\u0f23", + "\u0007\u01ec\u0002\u0002\u0f23\u0f24\u0007&\u0002\u0002\u0f24\u0f25", + "\u0007\u00f4\u0002\u0002\u0f25\u0f26\u0007\u032a\u0002\u0002\u0f26\u0f33", + "\u0007\u0326\u0002\u0002\u0f27\u0f28\t\u0015\u0002\u0002\u0f28\u0f29", + "\u0007\u01ec\u0002\u0002\u0f29\u0f30\u0007&\u0002\u0002\u0f2a\u0f2b", + "\u0007\u0136\u0002\u0002\u0f2b\u0f2c\u0007\u00bd\u0002\u0002\u0f2c\u0f31", + "\u0007\u00ac\u0002\u0002\u0f2d\u0f2e\u0007\u00f4\u0002\u0002\u0f2e\u0f2f", + "\u0007\u032a\u0002\u0002\u0f2f\u0f31\u0007\u0326\u0002\u0002\u0f30\u0f2a", + "\u0003\u0002\u0002\u0002\u0f30\u0f2d\u0003\u0002\u0002\u0002\u0f31\u0f33", + "\u0003\u0002\u0002\u0002\u0f32\u0f1e\u0003\u0002\u0002\u0002\u0f32\u0f27", + "\u0003\u0002\u0002\u0002\u0f33\u0147\u0003\u0002\u0002\u0002\u0f34\u0f35", + "\u0007I\u0002\u0002\u0f35\u0f36\u0007\u00bd\u0002\u0002\u0f36\u0f37", + "\u0007\u00ac\u0002\u0002\u0f37\u0f38\u0007\u01ec\u0002\u0002\u0f38\u0f39", + "\u0007&\u0002\u0002\u0f39\u0f3a\u0007\u00f4\u0002\u0002\u0f3a\u0f3b", + "\u0007\u032a\u0002\u0002\u0f3b\u0f3c\u0007\u0326\u0002\u0002\u0f3c\u0149", + "\u0003\u0002\u0002\u0002\u0f3d\u0f3e\u0007\n\u0002\u0002\u0f3e\u0f3f", + "\u0007\u00bd\u0002\u0002\u0f3f\u0f5b\u0007\u00ac\u0002\u0002\u0f40\u0f42", + "\u0007\u0203\u0002\u0002\u0f41\u0f40\u0003\u0002\u0002\u0002\u0f41\u0f42", + "\u0003\u0002\u0002\u0002\u0f42\u0f43\u0003\u0002\u0002\u0002\u0f43\u0f44", + "\u0007\u010f\u0002\u0002\u0f44\u0f45\u0007\u0179\u0002\u0002\u0f45\u0f46", + "\u0007\u01ec\u0002\u0002\u0f46\u0f47\u0007&\u0002\u0002\u0f47\u0f48", + "\u0007\u00f4\u0002\u0002\u0f48\u0f49\u0007\u032a\u0002\u0002\u0f49\u0f5c", + "\u0007\u0326\u0002\u0002\u0f4a\u0f4b\u0007\u0004\u0002\u0002\u0f4b\u0f4c", + "\u0007\u01ec\u0002\u0002\u0f4c\u0f53\u0007&\u0002\u0002\u0f4d\u0f4e", + "\u0007\u0136\u0002\u0002\u0f4e\u0f4f\u0007\u00bd\u0002\u0002\u0f4f\u0f54", + "\u0007\u00ac\u0002\u0002\u0f50\u0f51\u0007\u00f4\u0002\u0002\u0f51\u0f52", + "\u0007\u032a\u0002\u0002\u0f52\u0f54\u0007\u0326\u0002\u0002\u0f53\u0f4d", + "\u0003\u0002\u0002\u0002\u0f53\u0f50\u0003\u0002\u0002\u0002\u0f54\u0f5c", + "\u0003\u0002\u0002\u0002\u0f55\u0f56\u0007g\u0002\u0002\u0f56\u0f57", + "\u0007\u01ec\u0002\u0002\u0f57\u0f58\u0007&\u0002\u0002\u0f58\u0f59", + "\u0007\u00f4\u0002\u0002\u0f59\u0f5a\u0007\u032a\u0002\u0002\u0f5a\u0f5c", + "\u0007\u0326\u0002\u0002\u0f5b\u0f41\u0003\u0002\u0002\u0002\u0f5b\u0f4a", + "\u0003\u0002\u0002\u0002\u0f5b\u0f55\u0003\u0002\u0002\u0002\u0f5c\u014b", + "\u0003\u0002\u0002\u0002\u0f5d\u0f5e\u0007I\u0002\u0002\u0f5e\u0f5f", + "\u0007\u00bd\u0002\u0002\u0f5f\u0f65\u0007\u00ac\u0002\u0002\u0f60\u0f61", + "\u0007\u01ec\u0002\u0002\u0f61\u0f62\u0007&\u0002\u0002\u0f62\u0f63", + "\u0007\u00f4\u0002\u0002\u0f63\u0f64\u0007\u032a\u0002\u0002\u0f64\u0f66", + "\u0007\u0326\u0002\u0002\u0f65\u0f60\u0003\u0002\u0002\u0002\u0f65\u0f66", + "\u0003\u0002\u0002\u0002\u0f66\u014d\u0003\u0002\u0002\u0002\u0f67\u0f68", + "\u0007\n\u0002\u0002\u0f68\u0f69\u0007\u0250\u0002\u0002\u0f69\u0f6a", + "\u0007\u0301\u0002\u0002\u0f6a\u0f6b\u0005\u03c6\u01e4\u0002\u0f6b\u0f6c", + "\u0007\u030a\u0002\u0002\u0f6c\u0f75\u0007\u032a\u0002\u0002\u0f6d\u0f76", + "\u0007\u00d5\u0002\u0002\u0f6e\u0f76\u0007\u01e8\u0002\u0002\u0f6f\u0f76", + "\u0007\u0311\u0002\u0002\u0f70\u0f71\u0007\u0309\u0002\u0002\u0f71\u0f72", + "\u0007\u0179\u0002\u0002\u0f72\u0f73\u0007\u012e\u0002\u0002\u0f73\u0f74", + "\u0007\u01b5\u0002\u0002\u0f74\u0f76\u0005\u03c6\u01e4\u0002\u0f75\u0f6d", + "\u0003\u0002\u0002\u0002\u0f75\u0f6e\u0003\u0002\u0002\u0002\u0f75\u0f6f", + "\u0003\u0002\u0002\u0002\u0f75\u0f70\u0003\u0002\u0002\u0002\u0f76\u014f", + "\u0003\u0002\u0002\u0002\u0f77\u0f78\u0007\n\u0002\u0002\u0f78\u0f79", + "\u0007\u0280\u0002\u0002\u0f79\u0f7a\u0007\u008d\u0002\u0002\u0f7a\u0f7b", + "\u0005\u03c6\u01e4\u0002\u0f7b\u0f7c\u0007\u033c\u0002\u0002\u0f7c\u0f7d", + "\u0007\u033d\u0002\u0002\u0f7d\u0f7e\t$\u0002\u0002\u0f7e\u0f7f\u0007", + "\u0297\u0002\u0002\u0f7f\u0f80\u0007\u033c\u0002\u0002\u0f80\u0f81\u0007", + "\u0322\u0002\u0002\u0f81\u0f82\u0007\u033d\u0002\u0002\u0f82\u0151\u0003", + "\u0002\u0002\u0002\u0f83\u0f84\u0007\n\u0002\u0002\u0f84\u0f85\u0007", + "\u0280\u0002\u0002\u0f85\u0f86\u0007\u012f\u0002\u0002\u0f86\u0f87\u0005", + "\u03c6\u01e4\u0002\u0f87\u0f88\u0007\u0262\u0002\u0002\u0f88\u0f8a\u0007", + "\u016d\u0002\u0002\u0f89\u0f8b\u0005\u03c6\u01e4\u0002\u0f8a\u0f89\u0003", + "\u0002\u0002\u0002\u0f8a\u0f8b\u0003\u0002\u0002\u0002\u0f8b\u0153\u0003", + "\u0002\u0002\u0002\u0f8c\u0f8d\u0007\n\u0002\u0002\u0f8d\u0f8e\u0007", + "\u02a7\u0002\u0002\u0f8e\u0f8f\u0007\u0136\u0002\u0002\u0f8f\u0f90\u0007", + "\u01a6\u0002\u0002\u0f90\u0f91\u0005\u03c6\u01e4\u0002\u0f91\u0f95\u0007", + "\u0179\u0002\u0002\u0f92\u0f93\u0007\u016e\u0002\u0002\u0f93\u0f94\u0007", + "\u032a\u0002\u0002\u0f94\u0f96\u0005\u03c6\u01e4\u0002\u0f95\u0f92\u0003", + "\u0002\u0002\u0002\u0f95\u0f96\u0003\u0002\u0002\u0002\u0f96\u0f9b\u0003", + "\u0002\u0002\u0002\u0f97\u0f98\u0007\u033e\u0002\u0002\u0f98\u0f99\u0007", + "\f\u0002\u0002\u0f99\u0f9a\u0007\u032a\u0002\u0002\u0f9a\u0f9c\t\t\u0002", + "\u0002\u0f9b\u0f97\u0003\u0002\u0002\u0002\u0f9b\u0f9c\u0003\u0002\u0002", + "\u0002\u0f9c\u0155\u0003\u0002\u0002\u0002\u0f9d\u0f9e\u0007I\u0002", + "\u0002\u0f9e\u0f9f\u0007\u02a7\u0002\u0002\u0f9f\u0fa0\u0007\u0136\u0002", + "\u0002\u0fa0\u0fa1\u0007\u01a6\u0002\u0002\u0fa1\u0fa4\u0005\u03c6\u01e4", + "\u0002\u0fa2\u0fa3\u0007\u0014\u0002\u0002\u0fa3\u0fa5\u0005\u03c6\u01e4", + "\u0002\u0fa4\u0fa2\u0003\u0002\u0002\u0002\u0fa4\u0fa5\u0003\u0002\u0002", + "\u0002\u0fa5\u0fa6\u0003\u0002\u0002\u0002\u0fa6\u0fa7\u0007\u015a\u0002", + "\u0002\u0fa7\u0fa8\u0007\u0136\u0002\u0002\u0fa8\u0fa9\u0007\u0326\u0002", + "\u0002\u0fa9\u0fad\u0007\u0179\u0002\u0002\u0faa\u0fab\u0007\u016e\u0002", + "\u0002\u0fab\u0fac\u0007\u032a\u0002\u0002\u0fac\u0fae\u0005\u03c6\u01e4", + "\u0002\u0fad\u0faa\u0003\u0002\u0002\u0002\u0fad\u0fae\u0003\u0002\u0002", + "\u0002\u0fae\u0fb3\u0003\u0002\u0002\u0002\u0faf\u0fb0\u0007\u033e\u0002", + "\u0002\u0fb0\u0fb1\u0007\f\u0002\u0002\u0fb1\u0fb2\u0007\u032a\u0002", + "\u0002\u0fb2\u0fb4\t\t\u0002\u0002\u0fb3\u0faf\u0003\u0002\u0002\u0002", + "\u0fb3\u0fb4\u0003\u0002\u0002\u0002\u0fb4\u0157\u0003\u0002\u0002\u0002", + "\u0fb5\u0fb6\u0007I\u0002\u0002\u0fb6\u0fb7\u0007\u02b2\u0002\u0002", + "\u0fb7\u0fb8\u0007\u0285\u0002\u0002\u0fb8\u101f\u0005\u03c6\u01e4\u0002", + "\u0fb9\u0fba\u0007\u0179\u0002\u0002\u0fba\u0fc1\u0007\u033c\u0002\u0002", + "\u0fbb\u0fbd\u0007\u033e\u0002\u0002\u0fbc\u0fbb\u0003\u0002\u0002\u0002", + "\u0fbc\u0fbd\u0003\u0002\u0002\u0002\u0fbd\u0fbe\u0003\u0002\u0002\u0002", + "\u0fbe\u0fbf\u0007\u0253\u0002\u0002\u0fbf\u0fc0\u0007\u032a\u0002\u0002", + "\u0fc0\u0fc2\u0007\u0322\u0002\u0002\u0fc1\u0fbc\u0003\u0002\u0002\u0002", + "\u0fc1\u0fc2\u0003\u0002\u0002\u0002\u0fc2\u0fc9\u0003\u0002\u0002\u0002", + "\u0fc3\u0fc5\u0007\u033e\u0002\u0002\u0fc4\u0fc3\u0003\u0002\u0002\u0002", + "\u0fc4\u0fc5\u0003\u0002\u0002\u0002\u0fc5\u0fc6\u0003\u0002\u0002\u0002", + "\u0fc6\u0fc7\u0007\u0242\u0002\u0002\u0fc7\u0fc8\u0007\u032a\u0002\u0002", + "\u0fc8\u0fca\u0007\u0322\u0002\u0002\u0fc9\u0fc4\u0003\u0002\u0002\u0002", + "\u0fc9\u0fca\u0003\u0002\u0002\u0002\u0fca\u0fd1\u0003\u0002\u0002\u0002", + "\u0fcb\u0fcd\u0007\u033e\u0002\u0002\u0fcc\u0fcb\u0003\u0002\u0002\u0002", + "\u0fcc\u0fcd\u0003\u0002\u0002\u0002\u0fcd\u0fce\u0003\u0002\u0002\u0002", + "\u0fce\u0fcf\u0007\u01ac\u0002\u0002\u0fcf\u0fd0\u0007\u032a\u0002\u0002", + "\u0fd0\u0fd2\u0007\u0322\u0002\u0002\u0fd1\u0fcc\u0003\u0002\u0002\u0002", + "\u0fd1\u0fd2\u0003\u0002\u0002\u0002\u0fd2\u0ffc\u0003\u0002\u0002\u0002", + "\u0fd3\u0fd5\u0007\u033e\u0002\u0002\u0fd4\u0fd3\u0003\u0002\u0002\u0002", + "\u0fd4\u0fd5\u0003\u0002\u0002\u0002\u0fd5\u0fd6\u0003\u0002\u0002\u0002", + "\u0fd6\u0fd7\u0007\u0187\u0002\u0002\u0fd7\u0fd8\u0007\u012d\u0002\u0002", + "\u0fd8\u0ffa\u0007\u032a\u0002\u0002\u0fd9\u0ffb\u0007\u0198\u0002\u0002", + "\u0fda\u0fe4\u0007\u033c\u0002\u0002\u0fdb\u0fdd\u0007\u033e\u0002\u0002", + "\u0fdc\u0fdb\u0003\u0002\u0002\u0002\u0fdc\u0fdd\u0003\u0002\u0002\u0002", + "\u0fdd\u0fe2\u0003\u0002\u0002\u0002\u0fde\u0fe3\u0007\u0322\u0002\u0002", + "\u0fdf\u0fe0\u0007\u0322\u0002\u0002\u0fe0\u0fe1\u0007\u015a\u0002\u0002", + "\u0fe1\u0fe3\u0007\u0322\u0002\u0002\u0fe2\u0fde\u0003\u0002\u0002\u0002", + "\u0fe2\u0fdf\u0003\u0002\u0002\u0002\u0fe3\u0fe5\u0003\u0002\u0002\u0002", + "\u0fe4\u0fdc\u0003\u0002\u0002\u0002\u0fe5\u0fe6\u0003\u0002\u0002\u0002", + "\u0fe6\u0fe4\u0003\u0002\u0002\u0002\u0fe6\u0fe7\u0003\u0002\u0002\u0002", + "\u0fe7\u0fe8\u0003\u0002\u0002\u0002\u0fe8\u0ffb\u0007\u033d\u0002\u0002", + "\u0fe9\u0fea\u0007\u026e\u0002\u0002\u0fea\u0feb\u0007\u032a\u0002\u0002", + "\u0feb\u0ff5\u0007\u033c\u0002\u0002\u0fec\u0fee\u0007\u033e\u0002\u0002", + "\u0fed\u0fec\u0003\u0002\u0002\u0002\u0fed\u0fee\u0003\u0002\u0002\u0002", + "\u0fee\u0ff3\u0003\u0002\u0002\u0002\u0fef\u0ff4\u0007\u0322\u0002\u0002", + "\u0ff0\u0ff1\u0007\u0322\u0002\u0002\u0ff1\u0ff2\u0007\u015a\u0002\u0002", + "\u0ff2\u0ff4\u0007\u0322\u0002\u0002\u0ff3\u0fef\u0003\u0002\u0002\u0002", + "\u0ff3\u0ff0\u0003\u0002\u0002\u0002\u0ff4\u0ff6\u0003\u0002\u0002\u0002", + "\u0ff5\u0fed\u0003\u0002\u0002\u0002\u0ff6\u0ff7\u0003\u0002\u0002\u0002", + "\u0ff7\u0ff5\u0003\u0002\u0002\u0002\u0ff7\u0ff8\u0003\u0002\u0002\u0002", + "\u0ff8\u0ff9\u0003\u0002\u0002\u0002\u0ff9\u0ffb\u0007\u033d\u0002\u0002", + "\u0ffa\u0fd9\u0003\u0002\u0002\u0002\u0ffa\u0fda\u0003\u0002\u0002\u0002", + "\u0ffa\u0fe9\u0003\u0002\u0002\u0002\u0ffb\u0ffd\u0003\u0002\u0002\u0002", + "\u0ffc\u0fd4\u0003\u0002\u0002\u0002\u0ffc\u0ffd\u0003\u0002\u0002\u0002", + "\u0ffd\u1004\u0003\u0002\u0002\u0002\u0ffe\u1000\u0007\u033e\u0002\u0002", + "\u0fff\u0ffe\u0003\u0002\u0002\u0002\u0fff\u1000\u0003\u0002\u0002\u0002", + "\u1000\u1001\u0003\u0002\u0002\u0002\u1001\u1002\u0007\u0255\u0002\u0002", + "\u1002\u1003\u0007\u032a\u0002\u0002\u1003\u1005\u0007\u0322\u0002\u0002", + "\u1004\u0fff\u0003\u0002\u0002\u0002\u1004\u1005\u0003\u0002\u0002\u0002", + "\u1005\u100c\u0003\u0002\u0002\u0002\u1006\u1008\u0007\u033e\u0002\u0002", + "\u1007\u1006\u0003\u0002\u0002\u0002\u1007\u1008\u0003\u0002\u0002\u0002", + "\u1008\u1009\u0003\u0002\u0002\u0002\u1009\u100a\u0007\u0246\u0002\u0002", + "\u100a\u100b\u0007\u032a\u0002\u0002\u100b\u100d\u0007\u0322\u0002\u0002", + "\u100c\u1007\u0003\u0002\u0002\u0002\u100c\u100d\u0003\u0002\u0002\u0002", + "\u100d\u1014\u0003\u0002\u0002\u0002\u100e\u1010\u0007\u033e\u0002\u0002", + "\u100f\u100e\u0003\u0002\u0002\u0002\u100f\u1010\u0003\u0002\u0002\u0002", + "\u1010\u1011\u0003\u0002\u0002\u0002\u1011\u1012\u0007\u0254\u0002\u0002", + "\u1012\u1013\u0007\u032a\u0002\u0002\u1013\u1015\u0007\u0322\u0002\u0002", + "\u1014\u100f\u0003\u0002\u0002\u0002\u1014\u1015\u0003\u0002\u0002\u0002", + "\u1015\u101c\u0003\u0002\u0002\u0002\u1016\u1018\u0007\u033e\u0002\u0002", + "\u1017\u1016\u0003\u0002\u0002\u0002\u1017\u1018\u0003\u0002\u0002\u0002", + "\u1018\u1019\u0003\u0002\u0002\u0002\u1019\u101a\u0007\u0245\u0002\u0002", + "\u101a\u101b\u0007\u032a\u0002\u0002\u101b\u101d\u0007\u0322\u0002\u0002", + "\u101c\u1017\u0003\u0002\u0002\u0002\u101c\u101d\u0003\u0002\u0002\u0002", + "\u101d\u101e\u0003\u0002\u0002\u0002\u101e\u1020\u0007\u033d\u0002\u0002", + "\u101f\u0fb9\u0003\u0002\u0002\u0002\u101f\u1020\u0003\u0002\u0002\u0002", + "\u1020\u0159\u0003\u0002\u0002\u0002\u1021\u1022\u0007\n\u0002\u0002", + "\u1022\u1023\u0007\u02b2\u0002\u0002\u1023\u1039\u0007\u0090\u0002\u0002", + "\u1024\u103a\t%\u0002\u0002\u1025\u1026\u0007\u0179\u0002\u0002\u1026", + "\u1027\u0007\u033c\u0002\u0002\u1027\u1028\u00072\u0002\u0002\u1028", + "\u102e\u0007\u032a\u0002\u0002\u1029\u102a\u0005\u03c6\u01e4\u0002\u102a", + "\u102b\u0007\u0337\u0002\u0002\u102b\u102c\u0005\u03c6\u01e4\u0002\u102c", + "\u102f\u0003\u0002\u0002\u0002\u102d\u102f\u0007\u00df\u0002\u0002\u102e", + "\u1029\u0003\u0002\u0002\u0002\u102e\u102d\u0003\u0002\u0002\u0002\u102f", + "\u1030\u0003\u0002\u0002\u0002\u1030\u103a\u0007\u033d\u0002\u0002\u1031", + "\u1032\u0007\u0114\u0002\u0002\u1032\u103a\u0007\u0148\u0002\u0002\u1033", + "\u1034\u0007\u0179\u0002\u0002\u1034\u1035\u0007\u033c\u0002\u0002\u1035", + "\u1036\u0007\u00c4\u0002\u0002\u1036\u1037\u0007\u032a\u0002\u0002\u1037", + "\u1038\u0007\u0322\u0002\u0002\u1038\u103a\u0007\u033d\u0002\u0002\u1039", + "\u1024\u0003\u0002\u0002\u0002\u1039\u1025\u0003\u0002\u0002\u0002\u1039", + "\u1031\u0003\u0002\u0002\u0002\u1039\u1033\u0003\u0002\u0002\u0002\u103a", + "\u015b\u0003\u0002\u0002\u0002\u103b\u103c\u0007\n\u0002\u0002\u103c", + "\u103d\u0007\u0121\u0002\u0002\u103d\u1045\u0005\u03c6\u01e4\u0002\u103e", + "\u103f\t\u0015\u0002\u0002\u103f\u1040\u0007\u00c7\u0002\u0002\u1040", + "\u1046\u0005\u03c6\u01e4\u0002\u1041\u1042\u0007\u0179\u0002\u0002\u1042", + "\u1043\u0007\u025d\u0002\u0002\u1043\u1044\u0007\u032a\u0002\u0002\u1044", + "\u1046\u0005\u03c6\u01e4\u0002\u1045\u103e\u0003\u0002\u0002\u0002\u1045", + "\u1041\u0003\u0002\u0002\u0002\u1046\u015d\u0003\u0002\u0002\u0002\u1047", + "\u1048\u0007I\u0002\u0002\u1048\u1049\u0007\u0121\u0002\u0002\u1049", + "\u104c\u0005\u03c6\u01e4\u0002\u104a\u104b\u0007\u0014\u0002\u0002\u104b", + "\u104d\u0005\u03c6\u01e4\u0002\u104c\u104a\u0003\u0002\u0002\u0002\u104c", + "\u104d\u0003\u0002\u0002\u0002\u104d\u015f\u0003\u0002\u0002\u0002\u104e", + "\u104f\u0007I\u0002\u0002\u104f\u1050\u0007\u02b8\u0002\u0002\u1050", + "\u1053\u0005\u03c6\u01e4\u0002\u1051\u1052\u0007\u0014\u0002\u0002\u1052", + "\u1054\u0005\u03c6\u01e4\u0002\u1053\u1051\u0003\u0002\u0002\u0002\u1053", + "\u1054\u0003\u0002\u0002\u0002\u1054\u1055\u0003\u0002\u0002\u0002\u1055", + "\u105c\u0007\u0179\u0002\u0002\u1056\u1058\u0007\u033e\u0002\u0002\u1057", + "\u1056\u0003\u0002\u0002\u0002\u1057\u1058\u0003\u0002\u0002\u0002\u1058", + "\u1059\u0003\u0002\u0002\u0002\u1059\u105a\u0007\u0138\u0002\u0002\u105a", + "\u105b\u0007\u032a\u0002\u0002\u105b\u105d\u0007\u0326\u0002\u0002\u105c", + "\u1057\u0003\u0002\u0002\u0002\u105c\u105d\u0003\u0002\u0002\u0002\u105d", + "\u1064\u0003\u0002\u0002\u0002\u105e\u1060\u0007\u033e\u0002\u0002\u105f", + "\u105e\u0003\u0002\u0002\u0002\u105f\u1060\u0003\u0002\u0002\u0002\u1060", + "\u1061\u0003\u0002\u0002\u0002\u1061\u1062\u0007\u01a9\u0002\u0002\u1062", + "\u1063\u0007\u032a\u0002\u0002\u1063\u1065\u0007\u0326\u0002\u0002\u1064", + "\u105f\u0003\u0002\u0002\u0002\u1064\u1065\u0003\u0002\u0002\u0002\u1065", + "\u106c\u0003\u0002\u0002\u0002\u1066\u1068\u0007\u033e\u0002\u0002\u1067", + "\u1066\u0003\u0002\u0002\u0002\u1067\u1068\u0003\u0002\u0002\u0002\u1068", + "\u1069\u0003\u0002\u0002\u0002\u1069\u106a\u0007\u00b3\u0002\u0002\u106a", + "\u106b\u0007\u032a\u0002\u0002\u106b\u106d\u0007\u0322\u0002\u0002\u106c", + "\u1067\u0003\u0002\u0002\u0002\u106c\u106d\u0003\u0002\u0002\u0002\u106d", + "\u106f\u0003\u0002\u0002\u0002\u106e\u1070\u0007\u033e\u0002\u0002\u106f", + "\u106e\u0003\u0002\u0002\u0002\u106f\u1070\u0003\u0002\u0002\u0002\u1070", + "\u1071\u0003\u0002\u0002\u0002\u1071\u1072\u0007\u0183\u0002\u0002\u1072", + "\u1073\u0007\u032a\u0002\u0002\u1073\u1078\t&\u0002\u0002\u1074\u1075", + "\u0007\u033e\u0002\u0002\u1075\u1076\u0007\u0257\u0002\u0002\u1076\u1077", + "\u0007\u032a\u0002\u0002\u1077\u1079\t&\u0002\u0002\u1078\u1074\u0003", + "\u0002\u0002\u0002\u1078\u1079\u0003\u0002\u0002\u0002\u1079\u0161\u0003", + "\u0002\u0002\u0002\u107a\u107b\u0007I\u0002\u0002\u107b\u107f\u0007", + "\u012a\u0002\u0002\u107c\u107d\u0005\u03c6\u01e4\u0002\u107d\u107e\u0007", + "\u0337\u0002\u0002\u107e\u1080\u0003\u0002\u0002\u0002\u107f\u107c\u0003", + "\u0002\u0002\u0002\u107f\u1080\u0003\u0002\u0002\u0002\u1080\u1081\u0003", + "\u0002\u0002\u0002\u1081\u1082\u0005\u03c6\u01e4\u0002\u1082\u1083\u0007", + "\u0010\u0002\u0002\u1083\u1084\u0005\u02ee\u0178\u0002\u1084\u0163\u0003", + "\u0002\u0002\u0002\u1085\u1086\u0007\n\u0002\u0002\u1086\u1087\u0007", + "\u012e\u0002\u0002\u1087\u1088\u0005\u03c6\u01e4\u0002\u1088\u1092\u0007", + "\u015f\u0002\u0002\u1089\u108f\u0007\u0271\u0002\u0002\u108a\u108f\u0007", + "\u0301\u0002\u0002\u108b\u108c\u0007\u0315\u0002\u0002\u108c\u108d\u0007", + "\u012e\u0002\u0002\u108d\u108f\u0007\u01b5\u0002\u0002\u108e\u1089\u0003", + "\u0002\u0002\u0002\u108e\u108a\u0003\u0002\u0002\u0002\u108e\u108b\u0003", + "\u0002\u0002\u0002\u108f\u1090\u0003\u0002\u0002\u0002\u1090\u1091\u0007", + "\u0340\u0002\u0002\u1091\u1093\u0007\u0340\u0002\u0002\u1092\u108e\u0003", + "\u0002\u0002\u0002\u1092\u1093\u0003\u0002\u0002\u0002\u1093\u1094\u0003", + "\u0002\u0002\u0002\u1094\u1097\u0005\u03c6\u01e4\u0002\u1095\u1096\u0007", + "\u0337\u0002\u0002\u1096\u1098\u0005\u03c6\u01e4\u0002\u1097\u1095\u0003", + "\u0002\u0002\u0002\u1097\u1098\u0003\u0002\u0002\u0002\u1098\u0165\u0003", + "\u0002\u0002\u0002\u1099\u109a\u0007I\u0002\u0002\u109a\u10a2\u0007", + "\u012e\u0002\u0002\u109b\u10a3\u0005\u03c6\u01e4\u0002\u109c\u109d\u0007", + "\u0014\u0002\u0002\u109d\u10a3\u0005\u03c6\u01e4\u0002\u109e\u109f\u0005", + "\u03c6\u01e4\u0002\u109f\u10a0\u0007\u0014\u0002\u0002\u10a0\u10a1\u0005", + "\u03c6\u01e4\u0002\u10a1\u10a3\u0003\u0002\u0002\u0002\u10a2\u109b\u0003", + "\u0002\u0002\u0002\u10a2\u109c\u0003\u0002\u0002\u0002\u10a2\u109e\u0003", + "\u0002\u0002\u0002\u10a3\u10c0\u0003\u0002\u0002\u0002\u10a4\u10bf\u0005", + "\u01ee\u00f8\u0002\u10a5\u10bf\u0005\u01f2\u00fa\u0002\u10a6\u10a7\t", + "\'\u0002\u0002\u10a7\u10a8\t(\u0002\u0002\u10a8\u10ac\u0007\u00e5\u0002", + "\u0002\u10a9\u10aa\u0007\u012e\u0002\u0002\u10aa\u10ab\u0007\u0340\u0002", + "\u0002\u10ab\u10ad\u0007\u0340\u0002\u0002\u10ac\u10a9\u0003\u0002\u0002", + "\u0002\u10ac\u10ad\u0003\u0002\u0002\u0002\u10ad\u10ae\u0003\u0002\u0002", + "\u0002\u10ae\u10af\u0005\u03c6\u01e4\u0002\u10af\u10b0\u0007\u015a\u0002", + "\u0002\u10b0\u10b1\u0005\u03c6\u01e4\u0002\u10b1\u10bf\u0003\u0002\u0002", + "\u0002\u10b2\u10b3\u0007\u011d\u0002\u0002\u10b3\u10b4\t(\u0002\u0002", + "\u10b4\u10b8\u0007\u00e5\u0002\u0002\u10b5\u10b6\u0007\u012e\u0002\u0002", + "\u10b6\u10b7\u0007\u0340\u0002\u0002\u10b7\u10b9\u0007\u0340\u0002\u0002", + "\u10b8\u10b5\u0003\u0002\u0002\u0002\u10b8\u10b9\u0003\u0002\u0002\u0002", + "\u10b9\u10ba\u0003\u0002\u0002\u0002\u10ba\u10bb\u0005\u03c6\u01e4\u0002", + "\u10bb\u10bc\u0007\u008b\u0002\u0002\u10bc\u10bd\u0005\u03c6\u01e4\u0002", + "\u10bd\u10bf\u0003\u0002\u0002\u0002\u10be\u10a4\u0003\u0002\u0002\u0002", + "\u10be\u10a5\u0003\u0002\u0002\u0002\u10be\u10a6\u0003\u0002\u0002\u0002", + "\u10be\u10b2\u0003\u0002\u0002\u0002\u10bf\u10c2\u0003\u0002\u0002\u0002", + "\u10c0\u10be\u0003\u0002\u0002\u0002\u10c0\u10c1\u0003\u0002\u0002\u0002", + "\u10c1\u0167\u0003\u0002\u0002\u0002\u10c2\u10c0\u0003\u0002\u0002\u0002", + "\u10c3\u10c4\u0007I\u0002\u0002\u10c4\u10c5\u0007\u012e\u0002\u0002", + "\u10c5\u10c8\u0005\u03c6\u01e4\u0002\u10c6\u10c7\u0007\u0014\u0002\u0002", + "\u10c7\u10c9\u0005\u03c6\u01e4\u0002\u10c8\u10c6\u0003\u0002\u0002\u0002", + "\u10c8\u10c9\u0003\u0002\u0002\u0002\u10c9\u0169\u0003\u0002\u0002\u0002", + "\u10ca\u10cb\u0007\n\u0002\u0002\u10cb\u10cc\u0007\u012e\u0002\u0002", + "\u10cc\u10cd\u0005\u03c6\u01e4\u0002\u10cd\u10d1\u0007\u015f\u0002\u0002", + "\u10ce\u10cf\u0007\u0271\u0002\u0002\u10cf\u10d0\u0007\u0340\u0002\u0002", + "\u10d0\u10d2\u0007\u0340\u0002\u0002\u10d1\u10ce\u0003\u0002\u0002\u0002", + "\u10d1\u10d2\u0003\u0002\u0002\u0002\u10d2\u10d3\u0003\u0002\u0002\u0002", + "\u10d3\u10d6\u0005\u03c6\u01e4\u0002\u10d4\u10d5\u0007\u0337\u0002\u0002", + "\u10d5\u10d7\u0007\u0323\u0002\u0002\u10d6\u10d4\u0003\u0002\u0002\u0002", + "\u10d6\u10d7\u0003\u0002\u0002\u0002\u10d7\u016b\u0003\u0002\u0002\u0002", + "\u10d8\u10d9\u0007I\u0002\u0002\u10d9\u10da\u0007\u02c2\u0002\u0002", + "\u10da\u10db\u0007\u0290\u0002\u0002\u10db\u10dc\u0007\u0233\u0002\u0002", + "\u10dc\u10e4\u0005\u03c6\u01e4\u0002\u10dd\u10e1\u0007\u008b\u0002\u0002", + "\u10de\u10df\u0005\u03c6\u01e4\u0002\u10df\u10e0\u0007\u0337\u0002\u0002", + "\u10e0\u10e2\u0003\u0002\u0002\u0002\u10e1\u10de\u0003\u0002\u0002\u0002", + "\u10e1\u10e2\u0003\u0002\u0002\u0002\u10e2\u10e3\u0003\u0002\u0002\u0002", + "\u10e3\u10e5\u0005\u03c6\u01e4\u0002\u10e4\u10dd\u0003\u0002\u0002\u0002", + "\u10e4\u10e5\u0003\u0002\u0002\u0002\u10e5\u10e8\u0003\u0002\u0002\u0002", + "\u10e6\u10e7\u0007\u0014\u0002\u0002\u10e7\u10e9\u0005\u03c6\u01e4\u0002", + "\u10e8\u10e6\u0003\u0002\u0002\u0002\u10e8\u10e9\u0003\u0002\u0002\u0002", + "\u10e9\u016d\u0003\u0002\u0002\u0002\u10ea\u10eb\u0007I\u0002\u0002", + "\u10eb\u10ec\u0007\u02c8\u0002\u0002\u10ec\u10f0\u0007\u00fd\u0002\u0002", + "\u10ed\u10ee\u0005\u03c6\u01e4\u0002\u10ee\u10ef\u0007\u0337\u0002\u0002", + "\u10ef\u10f1\u0003\u0002\u0002\u0002\u10f0\u10ed\u0003\u0002\u0002\u0002", + "\u10f0\u10f1\u0003\u0002\u0002\u0002\u10f1\u10f2\u0003\u0002\u0002\u0002", + "\u10f2\u111b\u0005\u03c6\u01e4\u0002\u10f3\u10f5\u0007\u033e\u0002\u0002", + "\u10f4\u10f3\u0003\u0002\u0002\u0002\u10f4\u10f5\u0003\u0002\u0002\u0002", + "\u10f5\u10f6\u0003\u0002\u0002\u0002\u10f6\u10f8\u0007\u0004\u0002\u0002", + "\u10f7\u10f9\t)\u0002\u0002\u10f8\u10f7\u0003\u0002\u0002\u0002\u10f8", + "\u10f9\u0003\u0002\u0002\u0002\u10f9\u10fa\u0003\u0002\u0002\u0002\u10fa", + "\u10fb\u0007\u00ff\u0002\u0002\u10fb\u10fc\u0005\u03c6\u01e4\u0002\u10fc", + "\u10fd\u0007\u0337\u0002\u0002\u10fd\u10fe\u0005\u03c6\u01e4\u0002\u10fe", + "\u1103\u0007\u033c\u0002\u0002\u10ff\u1101\u0007\u033e\u0002\u0002\u1100", + "\u10ff\u0003\u0002\u0002\u0002\u1100\u1101\u0003\u0002\u0002\u0002\u1101", + "\u1102\u0003\u0002\u0002\u0002\u1102\u1104\u0005\u03c6\u01e4\u0002\u1103", + "\u1100\u0003\u0002\u0002\u0002\u1104\u1105\u0003\u0002\u0002\u0002\u1105", + "\u1103\u0003\u0002\u0002\u0002\u1105\u1106\u0003\u0002\u0002\u0002\u1106", + "\u1107\u0003\u0002\u0002\u0002\u1107\u1108\u0007\u033d\u0002\u0002\u1108", + "\u1109\u0007\u00e5\u0002\u0002\u1109\u110a\u0005\u03c6\u01e4\u0002\u110a", + "\u110b\u0007\u0337\u0002\u0002\u110b\u1118\u0005\u03c6\u01e4\u0002\u110c", + "\u110e\u0007\u033e\u0002\u0002\u110d\u110c\u0003\u0002\u0002\u0002\u110d", + "\u110e\u0003\u0002\u0002\u0002\u110e\u110f\u0003\u0002\u0002\u0002\u110f", + "\u1110\u0007\u0188\u0002\u0002\u1110\u1117\t*\u0002\u0002\u1111\u1113", + "\u0007\u033e\u0002\u0002\u1112\u1111\u0003\u0002\u0002\u0002\u1112\u1113", + "\u0003\u0002\u0002\u0002\u1113\u1114\u0003\u0002\u0002\u0002\u1114\u1115", + "\u0007\u001b\u0002\u0002\u1115\u1117\t+\u0002\u0002\u1116\u110d\u0003", + "\u0002\u0002\u0002\u1116\u1112\u0003\u0002\u0002\u0002\u1117\u111a\u0003", + "\u0002\u0002\u0002\u1118\u1116\u0003\u0002\u0002\u0002\u1118\u1119\u0003", + "\u0002\u0002\u0002\u1119\u111c\u0003\u0002\u0002\u0002\u111a\u1118\u0003", + "\u0002\u0002\u0002\u111b\u10f4\u0003\u0002\u0002\u0002\u111c\u111d\u0003", + "\u0002\u0002\u0002\u111d\u111b\u0003\u0002\u0002\u0002\u111d\u111e\u0003", + "\u0002\u0002\u0002\u111e\u1129\u0003\u0002\u0002\u0002\u111f\u1120\u0007", + "\u0179\u0002\u0002\u1120\u1121\u0007\u033c\u0002\u0002\u1121\u1122\u0007", + "\u0149\u0002\u0002\u1122\u1123\u0007\u032a\u0002\u0002\u1123\u1126\t", + "\t\u0002\u0002\u1124\u1125\u0007\u02be\u0002\u0002\u1125\u1127\t\t\u0002", + "\u0002\u1126\u1124\u0003\u0002\u0002\u0002\u1126\u1127\u0003\u0002\u0002", + "\u0002\u1127\u1128\u0003\u0002\u0002\u0002\u1128\u112a\u0007\u033d\u0002", + "\u0002\u1129\u111f\u0003\u0002\u0002\u0002\u1129\u112a\u0003\u0002\u0002", + "\u0002\u112a\u112e\u0003\u0002\u0002\u0002\u112b\u112c\u0007\u00dc\u0002", + "\u0002\u112c\u112d\u0007\u0085\u0002\u0002\u112d\u112f\u0007\u0112\u0002", + "\u0002\u112e\u112b\u0003\u0002\u0002\u0002\u112e\u112f\u0003\u0002\u0002", + "\u0002\u112f\u016f\u0003\u0002\u0002\u0002\u1130\u1131\u0007\n\u0002", + "\u0002\u1131\u1135\u0007\u02cf\u0002\u0002\u1132\u1133\u0005\u03c6\u01e4", + "\u0002\u1133\u1134\u0007\u0337\u0002\u0002\u1134\u1136\u0003\u0002\u0002", + "\u0002\u1135\u1132\u0003\u0002\u0002\u0002\u1135\u1136\u0003\u0002\u0002", + "\u0002\u1136\u1137\u0003\u0002\u0002\u0002\u1137\u113d\u0005\u03c6\u01e4", + "\u0002\u1138\u113b\u0007\u0115\u0002\u0002\u1139\u113a\u0007\u0179\u0002", + "\u0002\u113a\u113c\u0007\u0322\u0002\u0002\u113b\u1139\u0003\u0002\u0002", + "\u0002\u113b\u113c\u0003\u0002\u0002\u0002\u113c\u113e\u0003\u0002\u0002", + "\u0002\u113d\u1138\u0003\u0002\u0002\u0002\u113d\u113e\u0003\u0002\u0002", + "\u0002\u113e\u1142\u0003\u0002\u0002\u0002\u113f\u1140\u0007\u009d\u0002", + "\u0002\u1140\u1141\u0007&\u0002\u0002\u1141\u1143\u0007\u0322\u0002", + "\u0002\u1142\u113f\u0003\u0002\u0002\u0002\u1142\u1143\u0003\u0002\u0002", + "\u0002\u1143\u1148\u0003\u0002\u0002\u0002\u1144\u1145\u0007\u00cc\u0002", + "\u0002\u1145\u1149\u0007\u0322\u0002\u0002\u1146\u1147\u0007\u0263\u0002", + "\u0002\u1147\u1149\u0007\u00cc\u0002\u0002\u1148\u1144\u0003\u0002\u0002", + "\u0002\u1148\u1146\u0003\u0002\u0002\u0002\u1148\u1149\u0003\u0002\u0002", + "\u0002\u1149\u114e\u0003\u0002\u0002\u0002\u114a\u114b\u0007\u00c0\u0002", + "\u0002\u114b\u114f\u0007\u0322\u0002\u0002\u114c\u114d\u0007\u0263\u0002", + "\u0002\u114d\u114f\u0007\u00c0\u0002\u0002\u114e\u114a\u0003\u0002\u0002", + "\u0002\u114e\u114c\u0003\u0002\u0002\u0002\u114e\u114f\u0003\u0002\u0002", + "\u0002\u114f\u1153\u0003\u0002\u0002\u0002\u1150\u1154\u0007Q\u0002", + "\u0002\u1151\u1152\u0007\u0263\u0002\u0002\u1152\u1154\u0007Q\u0002", + "\u0002\u1153\u1150\u0003\u0002\u0002\u0002\u1153\u1151\u0003\u0002\u0002", + "\u0002\u1153\u1154\u0003\u0002\u0002\u0002\u1154\u1159\u0003\u0002\u0002", + "\u0002\u1155\u1156\u0007\'\u0002\u0002\u1156\u115a\u0007\u0322\u0002", + "\u0002\u1157\u1158\u0007\u0263\u0002\u0002\u1158\u115a\u0007\'\u0002", + "\u0002\u1159\u1155\u0003\u0002\u0002\u0002\u1159\u1157\u0003\u0002\u0002", + "\u0002\u1159\u115a\u0003\u0002\u0002\u0002\u115a\u0171\u0003\u0002\u0002", + "\u0002\u115b\u115c\u0007I\u0002\u0002\u115c\u1160\u0007\u02cf\u0002", + "\u0002\u115d\u115e\u0005\u03c6\u01e4\u0002\u115e\u115f\u0007\u0337\u0002", + "\u0002\u115f\u1161\u0003\u0002\u0002\u0002\u1160\u115d\u0003\u0002\u0002", + "\u0002\u1160\u1161\u0003\u0002\u0002\u0002\u1161\u1162\u0003\u0002\u0002", + "\u0002\u1162\u1165\u0005\u03c6\u01e4\u0002\u1163\u1164\u0007\u0010\u0002", + "\u0002\u1164\u1166\u0005\u03be\u01e0\u0002\u1165\u1163\u0003\u0002\u0002", + "\u0002\u1165\u1166\u0003\u0002\u0002\u0002\u1166\u116a\u0003\u0002\u0002", + "\u0002\u1167\u1168\u0007\u014b\u0002\u0002\u1168\u1169\u0007\u0179\u0002", + "\u0002\u1169\u116b\u0007\u0322\u0002\u0002\u116a\u1167\u0003\u0002\u0002", + "\u0002\u116a\u116b\u0003\u0002\u0002\u0002\u116b\u1172\u0003\u0002\u0002", + "\u0002\u116c\u116d\u0007\u009d\u0002\u0002\u116d\u116f\u0007&\u0002", + "\u0002\u116e\u1170\u0007\u0345\u0002\u0002\u116f\u116e\u0003\u0002\u0002", + "\u0002\u116f\u1170\u0003\u0002\u0002\u0002\u1170\u1171\u0003\u0002\u0002", + "\u0002\u1171\u1173\u0007\u0322\u0002\u0002\u1172\u116c\u0003\u0002\u0002", + "\u0002\u1172\u1173\u0003\u0002\u0002\u0002\u1173\u117a\u0003\u0002\u0002", + "\u0002\u1174\u1176\u0007\u00cc\u0002\u0002\u1175\u1177\u0007\u0322\u0002", + "\u0002\u1176\u1175\u0003\u0002\u0002\u0002\u1176\u1177\u0003\u0002\u0002", + "\u0002\u1177\u117b\u0003\u0002\u0002\u0002\u1178\u1179\u0007\u0263\u0002", + "\u0002\u1179\u117b\u0007\u00cc\u0002\u0002\u117a\u1174\u0003\u0002\u0002", + "\u0002\u117a\u1178\u0003\u0002\u0002\u0002\u117a\u117b\u0003\u0002\u0002", + "\u0002\u117b\u1182\u0003\u0002\u0002\u0002\u117c\u117e\u0007\u00c0\u0002", + "\u0002\u117d\u117f\u0007\u0322\u0002\u0002\u117e\u117d\u0003\u0002\u0002", + "\u0002\u117e\u117f\u0003\u0002\u0002\u0002\u117f\u1183\u0003\u0002\u0002", + "\u0002\u1180\u1181\u0007\u0263\u0002\u0002\u1181\u1183\u0007\u00c0\u0002", + "\u0002\u1182\u117c\u0003\u0002\u0002\u0002\u1182\u1180\u0003\u0002\u0002", + "\u0002\u1182\u1183\u0003\u0002\u0002\u0002\u1183\u1187\u0003\u0002\u0002", + "\u0002\u1184\u1188\u0007Q\u0002\u0002\u1185\u1186\u0007\u0263\u0002", + "\u0002\u1186\u1188\u0007Q\u0002\u0002\u1187\u1184\u0003\u0002\u0002", + "\u0002\u1187\u1185\u0003\u0002\u0002\u0002\u1187\u1188\u0003\u0002\u0002", + "\u0002\u1188\u118f\u0003\u0002\u0002\u0002\u1189\u118b\u0007\'\u0002", + "\u0002\u118a\u118c\u0007\u0322\u0002\u0002\u118b\u118a\u0003\u0002\u0002", + "\u0002\u118b\u118c\u0003\u0002\u0002\u0002\u118c\u1190\u0003\u0002\u0002", + "\u0002\u118d\u118e\u0007\u0263\u0002\u0002\u118e\u1190\u0007\'\u0002", + "\u0002\u118f\u1189\u0003\u0002\u0002\u0002\u118f\u118d\u0003\u0002\u0002", + "\u0002\u118f\u1190\u0003\u0002\u0002\u0002\u1190\u0173\u0003\u0002\u0002", + "\u0002\u1191\u1192\u0007\n\u0002\u0002\u1192\u1193\u0007\u0135\u0002", + "\u0002\u1193\u1194\u0007\u0196\u0002\u0002\u1194\u1218\u0005\u03c6\u01e4", + "\u0002\u1195\u11c2\u0007\u015a\u0002\u0002\u1196\u1197\u0007\u0081\u0002", + "\u0002\u1197\u11bc\u0007\u033c\u0002\u0002\u1198\u119a\u0007\u033e\u0002", + "\u0002\u1199\u1198\u0003\u0002\u0002\u0002\u1199\u119a\u0003\u0002\u0002", + "\u0002\u119a\u119b\u0003\u0002\u0002\u0002\u119b\u119c\u0007\u01fd\u0002", + "\u0002\u119c\u119d\u0007\u032a\u0002\u0002\u119d\u11bb\u0007\u0326\u0002", + "\u0002\u119e\u11a0\u0007\u033e\u0002\u0002\u119f\u119e\u0003\u0002\u0002", + "\u0002\u119f\u11a0\u0003\u0002\u0002\u0002\u11a0\u11a1\u0003\u0002\u0002", + "\u0002\u11a1\u11a2\u0007\u024c\u0002\u0002\u11a2\u11a6\u0007\u032a\u0002", + "\u0002\u11a3\u11a4\u0007\u0322\u0002\u0002\u11a4\u11a7\t,\u0002\u0002", + "\u11a5\u11a7\u0007\u0306\u0002\u0002\u11a6\u11a3\u0003\u0002\u0002\u0002", + "\u11a6\u11a5\u0003\u0002\u0002\u0002\u11a7\u11bb\u0003\u0002\u0002\u0002", + "\u11a8\u11aa\u0007\u033e\u0002\u0002\u11a9\u11a8\u0003\u0002\u0002\u0002", + "\u11a9\u11aa\u0003\u0002\u0002\u0002\u11aa\u11ab\u0003\u0002\u0002\u0002", + "\u11ab\u11ac\u0007\u0249\u0002\u0002\u11ac\u11ad\u0007\u032a\u0002\u0002", + "\u11ad\u11bb\t-\u0002\u0002\u11ae\u11b0\u0007\u033e\u0002\u0002\u11af", + "\u11ae\u0003\u0002\u0002\u0002\u11af\u11b0\u0003\u0002\u0002\u0002\u11b0", + "\u11b1\u0003\u0002\u0002\u0002\u11b1\u11b2\u0007\u0244\u0002\u0002\u11b2", + "\u11b3\u0007\u032a\u0002\u0002\u11b3\u11bb\u0007\u0322\u0002\u0002\u11b4", + "\u11b6\u0007\u033e\u0002\u0002\u11b5\u11b4\u0003\u0002\u0002\u0002\u11b5", + "\u11b6\u0003\u0002\u0002\u0002\u11b6\u11b7\u0003\u0002\u0002\u0002\u11b7", + "\u11b8\u0007\u02b1\u0002\u0002\u11b8\u11b9\u0007\u032a\u0002\u0002\u11b9", + "\u11bb\t\t\u0002\u0002\u11ba\u1199\u0003\u0002\u0002\u0002\u11ba\u119f", + "\u0003\u0002\u0002\u0002\u11ba\u11a9\u0003\u0002\u0002\u0002\u11ba\u11af", + "\u0003\u0002\u0002\u0002\u11ba\u11b5\u0003\u0002\u0002\u0002\u11bb\u11be", + "\u0003\u0002\u0002\u0002\u11bc\u11ba\u0003\u0002\u0002\u0002\u11bc\u11bd", + "\u0003\u0002\u0002\u0002\u11bd\u11bf\u0003\u0002\u0002\u0002\u11be\u11bc", + "\u0003\u0002\u0002\u0002\u11bf\u11c3\u0007\u033d\u0002\u0002\u11c0\u11c3", + "\u0007\u0192\u0002\u0002\u11c1\u11c3\u0007\u02c9\u0002\u0002\u11c2\u1196", + "\u0003\u0002\u0002\u0002\u11c2\u11c0\u0003\u0002\u0002\u0002\u11c2\u11c1", + "\u0003\u0002\u0002\u0002\u11c3\u11c5\u0003\u0002\u0002\u0002\u11c4\u1195", + "\u0003\u0002\u0002\u0002\u11c4\u11c5\u0003\u0002\u0002\u0002\u11c5\u11e0", + "\u0003\u0002\u0002\u0002\u11c6\u11c7\u0007\u0179\u0002\u0002\u11c7\u11dc", + "\u0007\u033c\u0002\u0002\u11c8\u11ca\u0007\u033e\u0002\u0002\u11c9\u11c8", + "\u0003\u0002\u0002\u0002\u11c9\u11ca\u0003\u0002\u0002\u0002\u11ca\u11cb", + "\u0003\u0002\u0002\u0002\u11cb\u11cc\u0007\u0295\u0002\u0002\u11cc\u11cd", + "\u0007\u032a\u0002\u0002\u11cd\u11db\u0007\u0322\u0002\u0002\u11ce\u11d0", + "\u0007\u033e\u0002\u0002\u11cf\u11ce\u0003\u0002\u0002\u0002\u11cf\u11d0", + "\u0003\u0002\u0002\u0002\u11d0\u11d1\u0003\u0002\u0002\u0002\u11d1\u11d2", + "\u0007\u00e6\u0002\u0002\u11d2\u11d3\u0007\u032a\u0002\u0002\u11d3\u11db", + "\t.\u0002\u0002\u11d4\u11d6\u0007\u033e\u0002\u0002\u11d5\u11d4\u0003", + "\u0002\u0002\u0002\u11d5\u11d6\u0003\u0002\u0002\u0002\u11d6\u11d7\u0003", + "\u0002\u0002\u0002\u11d7\u11d8\u0007\u0149\u0002\u0002\u11d8\u11d9\u0007", + "\u032a\u0002\u0002\u11d9\u11db\t\t\u0002\u0002\u11da\u11c9\u0003\u0002", + "\u0002\u0002\u11da\u11cf\u0003\u0002\u0002\u0002\u11da\u11d5\u0003\u0002", + "\u0002\u0002\u11db\u11de\u0003\u0002\u0002\u0002\u11dc\u11da\u0003\u0002", + "\u0002\u0002\u11dc\u11dd\u0003\u0002\u0002\u0002\u11dd\u11df\u0003\u0002", + "\u0002\u0002\u11de\u11dc\u0003\u0002\u0002\u0002\u11df\u11e1\u0007\u033d", + "\u0002\u0002\u11e0\u11c6\u0003\u0002\u0002\u0002\u11e0\u11e1\u0003\u0002", + "\u0002\u0002\u11e1\u1210\u0003\u0002\u0002\u0002\u11e2\u120e\u0007\u0176", + "\u0002\u0002\u11e3\u11e5\u0007\u033e\u0002\u0002\u11e4\u11e3\u0003\u0002", + "\u0002\u0002\u11e4\u11e5\u0003\u0002\u0002\u0002\u11e5\u11e7\u0003\u0002", + "\u0002\u0002\u11e6\u11e8\u0007\u00dc\u0002\u0002\u11e7\u11e6\u0003\u0002", + "\u0002\u0002\u11e7\u11e8\u0003\u0002\u0002\u0002\u11e8\u11e9\u0003\u0002", + "\u0002\u0002\u11e9\u11f5\u0005\u03c6\u01e4\u0002\u11ea\u11f6\u0007\u032a", + "\u0002\u0002\u11eb\u11ec\u0007\u032c\u0002\u0002\u11ec\u11f6\u0007\u032b", + "\u0002\u0002\u11ed\u11ee\u0007\u032d\u0002\u0002\u11ee\u11f6\u0007\u032a", + "\u0002\u0002\u11ef\u11f6\u0007\u032b\u0002\u0002\u11f0\u11f1\u0007\u032b", + "\u0002\u0002\u11f1\u11f6\u0007\u032a\u0002\u0002\u11f2\u11f6\u0007\u032c", + "\u0002\u0002\u11f3\u11f4\u0007\u032c\u0002\u0002\u11f4\u11f6\u0007\u032a", + "\u0002\u0002\u11f5\u11ea\u0003\u0002\u0002\u0002\u11f5\u11eb\u0003\u0002", + "\u0002\u0002\u11f5\u11ed\u0003\u0002\u0002\u0002\u11f5\u11ef\u0003\u0002", + "\u0002\u0002\u11f5\u11f0\u0003\u0002\u0002\u0002\u11f5\u11f2\u0003\u0002", + "\u0002\u0002\u11f5\u11f3\u0003\u0002\u0002\u0002\u11f6\u11f7\u0003\u0002", + "\u0002\u0002\u11f7\u11f8\t\u0018\u0002\u0002\u11f8\u120f\u0003\u0002", + "\u0002\u0002\u11f9\u11fb\u0007\u033e\u0002\u0002\u11fa\u11f9\u0003\u0002", + "\u0002\u0002\u11fa\u11fb\u0003\u0002\u0002\u0002\u11fb\u11fc\u0003\u0002", + "\u0002\u0002\u11fc\u11fe\t\u001d\u0002\u0002\u11fd\u11ff\u0007\u00dc", + "\u0002\u0002\u11fe\u11fd\u0003\u0002\u0002\u0002\u11fe\u11ff\u0003\u0002", + "\u0002\u0002\u11ff\u120b\u0003\u0002\u0002\u0002\u1200\u120c\u0007\u032a", + "\u0002\u0002\u1201\u1202\u0007\u032c\u0002\u0002\u1202\u120c\u0007\u032b", + "\u0002\u0002\u1203\u1204\u0007\u032d\u0002\u0002\u1204\u120c\u0007\u032a", + "\u0002\u0002\u1205\u120c\u0007\u032b\u0002\u0002\u1206\u1207\u0007\u032b", + "\u0002\u0002\u1207\u120c\u0007\u032a\u0002\u0002\u1208\u120c\u0007\u032c", + "\u0002\u0002\u1209\u120a\u0007\u032c\u0002\u0002\u120a\u120c\u0007\u032a", + "\u0002\u0002\u120b\u1200\u0003\u0002\u0002\u0002\u120b\u1201\u0003\u0002", + "\u0002\u0002\u120b\u1203\u0003\u0002\u0002\u0002\u120b\u1205\u0003\u0002", + "\u0002\u0002\u120b\u1206\u0003\u0002\u0002\u0002\u120b\u1208\u0003\u0002", + "\u0002\u0002\u120b\u1209\u0003\u0002\u0002\u0002\u120c\u120d\u0003\u0002", + "\u0002\u0002\u120d\u120f\t\u0018\u0002\u0002\u120e\u11e4\u0003\u0002", + "\u0002\u0002\u120e\u11fa\u0003\u0002\u0002\u0002\u120f\u1211\u0003\u0002", + "\u0002\u0002\u1210\u11e2\u0003\u0002\u0002\u0002\u1210\u1211\u0003\u0002", + "\u0002\u0002\u1211\u1219\u0003\u0002\u0002\u0002\u1212\u1213\u0007\u02a9", + "\u0002\u0002\u1213\u1219\u0007\u0176\u0002\u0002\u1214\u1215\u0007\u025a", + "\u0002\u0002\u1215\u1216\u0007\u025d\u0002\u0002\u1216\u1217\u0007\u032a", + "\u0002\u0002\u1217\u1219\u0005\u03c6\u01e4\u0002\u1218\u11c4\u0003\u0002", + "\u0002\u0002\u1218\u1212\u0003\u0002\u0002\u0002\u1218\u1214\u0003\u0002", + "\u0002\u0002\u1219\u0175\u0003\u0002\u0002\u0002\u121a\u121b\u0007I", + "\u0002\u0002\u121b\u121c\u0007\u0135\u0002\u0002\u121c\u121d\u0007\u0196", + "\u0002\u0002\u121d\u12a7\u0005\u03c6\u01e4\u0002\u121e\u124b\u0007\u015a", + "\u0002\u0002\u121f\u1220\u0007\u0081\u0002\u0002\u1220\u1245\u0007\u033c", + "\u0002\u0002\u1221\u1223\u0007\u033e\u0002\u0002\u1222\u1221\u0003\u0002", + "\u0002\u0002\u1222\u1223\u0003\u0002\u0002\u0002\u1223\u1224\u0003\u0002", + "\u0002\u0002\u1224\u1225\u0007\u01fd\u0002\u0002\u1225\u1226\u0007\u032a", + "\u0002\u0002\u1226\u1244\u0007\u0326\u0002\u0002\u1227\u1229\u0007\u033e", + "\u0002\u0002\u1228\u1227\u0003\u0002\u0002\u0002\u1228\u1229\u0003\u0002", + "\u0002\u0002\u1229\u122a\u0003\u0002\u0002\u0002\u122a\u122b\u0007\u024c", + "\u0002\u0002\u122b\u122f\u0007\u032a\u0002\u0002\u122c\u122d\u0007\u0322", + "\u0002\u0002\u122d\u1230\t,\u0002\u0002\u122e\u1230\u0007\u0306\u0002", + "\u0002\u122f\u122c\u0003\u0002\u0002\u0002\u122f\u122e\u0003\u0002\u0002", + "\u0002\u1230\u1244\u0003\u0002\u0002\u0002\u1231\u1233\u0007\u033e\u0002", + "\u0002\u1232\u1231\u0003\u0002\u0002\u0002\u1232\u1233\u0003\u0002\u0002", + "\u0002\u1233\u1234\u0003\u0002\u0002\u0002\u1234\u1235\u0007\u0249\u0002", + "\u0002\u1235\u1236\u0007\u032a\u0002\u0002\u1236\u1244\t-\u0002\u0002", + "\u1237\u1239\u0007\u033e\u0002\u0002\u1238\u1237\u0003\u0002\u0002\u0002", + "\u1238\u1239\u0003\u0002\u0002\u0002\u1239\u123a\u0003\u0002\u0002\u0002", + "\u123a\u123b\u0007\u0244\u0002\u0002\u123b\u123c\u0007\u032a\u0002\u0002", + "\u123c\u1244\u0007\u0322\u0002\u0002\u123d\u123f\u0007\u033e\u0002\u0002", + "\u123e\u123d\u0003\u0002\u0002\u0002\u123e\u123f\u0003\u0002\u0002\u0002", + "\u123f\u1240\u0003\u0002\u0002\u0002\u1240\u1241\u0007\u02b1\u0002\u0002", + "\u1241\u1242\u0007\u032a\u0002\u0002\u1242\u1244\t\t\u0002\u0002\u1243", + "\u1222\u0003\u0002\u0002\u0002\u1243\u1228\u0003\u0002\u0002\u0002\u1243", + "\u1232\u0003\u0002\u0002\u0002\u1243\u1238\u0003\u0002\u0002\u0002\u1243", + "\u123e\u0003\u0002\u0002\u0002\u1244\u1247\u0003\u0002\u0002\u0002\u1245", + "\u1243\u0003\u0002\u0002\u0002\u1245\u1246\u0003\u0002\u0002\u0002\u1246", + "\u1248\u0003\u0002\u0002\u0002\u1247\u1245\u0003\u0002\u0002\u0002\u1248", + "\u124c\u0007\u033d\u0002\u0002\u1249\u124c\u0007\u0192\u0002\u0002\u124a", + "\u124c\u0007\u02c9\u0002\u0002\u124b\u121f\u0003\u0002\u0002\u0002\u124b", + "\u1249\u0003\u0002\u0002\u0002\u124b\u124a\u0003\u0002\u0002\u0002\u124c", + "\u124e\u0003\u0002\u0002\u0002\u124d\u121e\u0003\u0002\u0002\u0002\u124d", + "\u124e\u0003\u0002\u0002\u0002\u124e\u126f\u0003\u0002\u0002\u0002\u124f", + "\u1250\u0007\u0179\u0002\u0002\u1250\u126b\u0007\u033c\u0002\u0002\u1251", + "\u1253\u0007\u033e\u0002\u0002\u1252\u1251\u0003\u0002\u0002\u0002\u1252", + "\u1253\u0003\u0002\u0002\u0002\u1253\u1254\u0003\u0002\u0002\u0002\u1254", + "\u1255\u0007\u0295\u0002\u0002\u1255\u1256\u0007\u032a\u0002\u0002\u1256", + "\u126a\u0007\u0322\u0002\u0002\u1257\u1259\u0007\u033e\u0002\u0002\u1258", + "\u1257\u0003\u0002\u0002\u0002\u1258\u1259\u0003\u0002\u0002\u0002\u1259", + "\u125a\u0003\u0002\u0002\u0002\u125a\u125b\u0007\u00e6\u0002\u0002\u125b", + "\u125c\u0007\u032a\u0002\u0002\u125c\u126a\t.\u0002\u0002\u125d\u125f", + "\u0007\u033e\u0002\u0002\u125e\u125d\u0003\u0002\u0002\u0002\u125e\u125f", + "\u0003\u0002\u0002\u0002\u125f\u1260\u0003\u0002\u0002\u0002\u1260\u1261", + "\u0007\u0149\u0002\u0002\u1261\u1262\u0007\u032a\u0002\u0002\u1262\u126a", + "\t\t\u0002\u0002\u1263\u1265\u0007\u033e\u0002\u0002\u1264\u1263\u0003", + "\u0002\u0002\u0002\u1264\u1265\u0003\u0002\u0002\u0002\u1265\u1266\u0003", + "\u0002\u0002\u0002\u1266\u1267\u0007\u0197\u0002\u0002\u1267\u1268\u0007", + "\u032a\u0002\u0002\u1268\u126a\u0005\u03c6\u01e4\u0002\u1269\u1252\u0003", + "\u0002\u0002\u0002\u1269\u1258\u0003\u0002\u0002\u0002\u1269\u125e\u0003", + "\u0002\u0002\u0002\u1269\u1264\u0003\u0002\u0002\u0002\u126a\u126d\u0003", + "\u0002\u0002\u0002\u126b\u1269\u0003\u0002\u0002\u0002\u126b\u126c\u0003", + "\u0002\u0002\u0002\u126c\u126e\u0003\u0002\u0002\u0002\u126d\u126b\u0003", + "\u0002\u0002\u0002\u126e\u1270\u0007\u033d\u0002\u0002\u126f\u124f\u0003", + "\u0002\u0002\u0002\u126f\u1270\u0003\u0002\u0002\u0002\u1270\u129f\u0003", + "\u0002\u0002\u0002\u1271\u129d\u0007\u0176\u0002\u0002\u1272\u1274\u0007", + "\u033e\u0002\u0002\u1273\u1272\u0003\u0002\u0002\u0002\u1273\u1274\u0003", + "\u0002\u0002\u0002\u1274\u1276\u0003\u0002\u0002\u0002\u1275\u1277\u0007", + "\u00dc\u0002\u0002\u1276\u1275\u0003\u0002\u0002\u0002\u1276\u1277\u0003", + "\u0002\u0002\u0002\u1277\u1278\u0003\u0002\u0002\u0002\u1278\u1284\u0005", + "\u03c6\u01e4\u0002\u1279\u1285\u0007\u032a\u0002\u0002\u127a\u127b\u0007", + "\u032c\u0002\u0002\u127b\u1285\u0007\u032b\u0002\u0002\u127c\u127d\u0007", + "\u032d\u0002\u0002\u127d\u1285\u0007\u032a\u0002\u0002\u127e\u1285\u0007", + "\u032b\u0002\u0002\u127f\u1280\u0007\u032b\u0002\u0002\u1280\u1285\u0007", + "\u032a\u0002\u0002\u1281\u1285\u0007\u032c\u0002\u0002\u1282\u1283\u0007", + "\u032c\u0002\u0002\u1283\u1285\u0007\u032a\u0002\u0002\u1284\u1279\u0003", + "\u0002\u0002\u0002\u1284\u127a\u0003\u0002\u0002\u0002\u1284\u127c\u0003", + "\u0002\u0002\u0002\u1284\u127e\u0003\u0002\u0002\u0002\u1284\u127f\u0003", + "\u0002\u0002\u0002\u1284\u1281\u0003\u0002\u0002\u0002\u1284\u1282\u0003", + "\u0002\u0002\u0002\u1285\u1286\u0003\u0002\u0002\u0002\u1286\u1287\t", + "\u0018\u0002\u0002\u1287\u129e\u0003\u0002\u0002\u0002\u1288\u128a\u0007", + "\u033e\u0002\u0002\u1289\u1288\u0003\u0002\u0002\u0002\u1289\u128a\u0003", + "\u0002\u0002\u0002\u128a\u128b\u0003\u0002\u0002\u0002\u128b\u128d\t", + "\u001d\u0002\u0002\u128c\u128e\u0007\u00dc\u0002\u0002\u128d\u128c\u0003", + "\u0002\u0002\u0002\u128d\u128e\u0003\u0002\u0002\u0002\u128e\u129a\u0003", + "\u0002\u0002\u0002\u128f\u129b\u0007\u032a\u0002\u0002\u1290\u1291\u0007", + "\u032c\u0002\u0002\u1291\u129b\u0007\u032b\u0002\u0002\u1292\u1293\u0007", + "\u032d\u0002\u0002\u1293\u129b\u0007\u032a\u0002\u0002\u1294\u129b\u0007", + "\u032b\u0002\u0002\u1295\u1296\u0007\u032b\u0002\u0002\u1296\u129b\u0007", + "\u032a\u0002\u0002\u1297\u129b\u0007\u032c\u0002\u0002\u1298\u1299\u0007", + "\u032c\u0002\u0002\u1299\u129b\u0007\u032a\u0002\u0002\u129a\u128f\u0003", + "\u0002\u0002\u0002\u129a\u1290\u0003\u0002\u0002\u0002\u129a\u1292\u0003", + "\u0002\u0002\u0002\u129a\u1294\u0003\u0002\u0002\u0002\u129a\u1295\u0003", + "\u0002\u0002\u0002\u129a\u1297\u0003\u0002\u0002\u0002\u129a\u1298\u0003", + "\u0002\u0002\u0002\u129b\u129c\u0003\u0002\u0002\u0002\u129c\u129e\t", + "\u0018\u0002\u0002\u129d\u1273\u0003\u0002\u0002\u0002\u129d\u1289\u0003", + "\u0002\u0002\u0002\u129e\u12a0\u0003\u0002\u0002\u0002\u129f\u1271\u0003", + "\u0002\u0002\u0002\u129f\u12a0\u0003\u0002\u0002\u0002\u12a0\u12a8\u0003", + "\u0002\u0002\u0002\u12a1\u12a2\u0007\u02a9\u0002\u0002\u12a2\u12a8\u0007", + "\u0176\u0002\u0002\u12a3\u12a4\u0007\u025a\u0002\u0002\u12a4\u12a5\u0007", + "\u025d\u0002\u0002\u12a5\u12a6\u0007\u032a\u0002\u0002\u12a6\u12a8\u0005", + "\u03c6\u01e4\u0002\u12a7\u124d\u0003\u0002\u0002\u0002\u12a7\u12a1\u0003", + "\u0002\u0002\u0002\u12a7\u12a3\u0003\u0002\u0002\u0002\u12a8\u0177\u0003", + "\u0002\u0002\u0002\u12a9\u12aa\u0007\n\u0002\u0002\u12aa\u12ab\u0007", + "\u0135\u0002\u0002\u12ab\u12ac\u0007\u0196\u0002\u0002\u12ac\u12ad\u0007", + "\u0143\u0002\u0002\u12ad\u12b2\u0005\u03c6\u01e4\u0002\u12ae\u12af\u0007", + "\u0085\u0002\u0002\u12af\u12b0\u0007\u0135\u0002\u0002\u12b0\u12b1\u0007", + "\u0196\u0002\u0002\u12b1\u12b3\u0005\u03c6\u01e4\u0002\u12b2\u12ae\u0003", + "\u0002\u0002\u0002\u12b2\u12b3\u0003\u0002\u0002\u0002\u12b3\u12bb\u0003", + "\u0002\u0002\u0002\u12b4\u12b5\t\u0015\u0002\u0002\u12b5\u12b6\u0007", + "\u033c\u0002\u0002\u12b6\u12b7\u0005\u03c6\u01e4\u0002\u12b7\u12b8\u0007", + "\u033d\u0002\u0002\u12b8\u12ba\u0003\u0002\u0002\u0002\u12b9\u12b4\u0003", + "\u0002\u0002\u0002\u12ba\u12bd\u0003\u0002\u0002\u0002\u12bb\u12b9\u0003", + "\u0002\u0002\u0002\u12bb\u12bc\u0003\u0002\u0002\u0002\u12bc\u12c4\u0003", + "\u0002\u0002\u0002\u12bd\u12bb\u0003\u0002\u0002\u0002\u12be\u12bf\u0007", + "\u0179\u0002\u0002\u12bf\u12c0\u0007\u033c\u0002\u0002\u12c0\u12c1\u0007", + "\u0149\u0002\u0002\u12c1\u12c2\u0007\u032a\u0002\u0002\u12c2\u12c3\t", + "\t\u0002\u0002\u12c3\u12c5\u0007\u033d\u0002\u0002\u12c4\u12be\u0003", + "\u0002\u0002\u0002\u12c4\u12c5\u0003\u0002\u0002\u0002\u12c5\u0179\u0003", + "\u0002\u0002\u0002\u12c6\u12c7\u0007I\u0002\u0002\u12c7\u12c8\u0007", + "\u0135\u0002\u0002\u12c8\u12c9\u0007\u0196\u0002\u0002\u12c9\u12ca\u0007", + "\u0143\u0002\u0002\u12ca\u12cf\u0005\u03c6\u01e4\u0002\u12cb\u12cc\u0007", + "\u0085\u0002\u0002\u12cc\u12cd\u0007\u0135\u0002\u0002\u12cd\u12ce\u0007", + "\u0196\u0002\u0002\u12ce\u12d0\u0005\u03c6\u01e4\u0002\u12cf\u12cb\u0003", + "\u0002\u0002\u0002\u12cf\u12d0\u0003\u0002\u0002\u0002\u12d0\u12d8\u0003", + "\u0002\u0002\u0002\u12d1\u12d2\u0007\u0004\u0002\u0002\u12d2\u12d3\u0007", + "\u033c\u0002\u0002\u12d3\u12d4\u0005\u03c6\u01e4\u0002\u12d4\u12d5\u0007", + "\u033d\u0002\u0002\u12d5\u12d7\u0003\u0002\u0002\u0002\u12d6\u12d1\u0003", + "\u0002\u0002\u0002\u12d7\u12da\u0003\u0002\u0002\u0002\u12d8\u12d6\u0003", + "\u0002\u0002\u0002\u12d8\u12d9\u0003\u0002\u0002\u0002\u12d9\u12e1\u0003", + "\u0002\u0002\u0002\u12da\u12d8\u0003\u0002\u0002\u0002\u12db\u12dc\u0007", + "\u0179\u0002\u0002\u12dc\u12dd\u0007\u033c\u0002\u0002\u12dd\u12de\u0007", + "\u0149\u0002\u0002\u12de\u12df\u0007\u032a\u0002\u0002\u12df\u12e0\t", + "\t\u0002\u0002\u12e0\u12e2\u0007\u033d\u0002\u0002\u12e1\u12db\u0003", + "\u0002\u0002\u0002\u12e1\u12e2\u0003\u0002\u0002\u0002\u12e2\u017b\u0003", + "\u0002\u0002\u0002\u12e3\u12e4\u0007\n\u0002\u0002\u12e4\u12e5\u0007", + "\u0135\u0002\u0002\u12e5\u12e6\u0007<\u0002\u0002\u12e6\u1350\u0007", + "\u013b\u0002\u0002\u12e7\u12e8\u0007\u0104\u0002\u0002\u12e8\u130c\u0007", + "\u0187\u0002\u0002\u12e9\u12ea\u0007\u01c1\u0002\u0002\u12ea\u12fa\u0007", + "\u032a\u0002\u0002\u12eb\u12fb\u0007\u0198\u0002\u0002\u12ec\u12ee\u0007", + "\u033e\u0002\u0002\u12ed\u12ec\u0003\u0002\u0002\u0002\u12ed\u12ee\u0003", + "\u0002\u0002\u0002\u12ee\u12ef\u0003\u0002\u0002\u0002\u12ef\u12f7\u0007", + "\u0322\u0002\u0002\u12f0\u12f2\u0007\u033e\u0002\u0002\u12f1\u12f0\u0003", + "\u0002\u0002\u0002\u12f1\u12f2\u0003\u0002\u0002\u0002\u12f2\u12f3\u0003", + "\u0002\u0002\u0002\u12f3\u12f4\u0007\u0322\u0002\u0002\u12f4\u12f5\u0007", + "\u015a\u0002\u0002\u12f5\u12f7\u0007\u0322\u0002\u0002\u12f6\u12ed\u0003", + "\u0002\u0002\u0002\u12f6\u12f1\u0003\u0002\u0002\u0002\u12f7\u12f8\u0003", + "\u0002\u0002\u0002\u12f8\u12f6\u0003\u0002\u0002\u0002\u12f8\u12f9\u0003", + "\u0002\u0002\u0002\u12f9\u12fb\u0003\u0002\u0002\u0002\u12fa\u12eb\u0003", + "\u0002\u0002\u0002\u12fa\u12f6\u0003\u0002\u0002\u0002\u12fb\u130d\u0003", + "\u0002\u0002\u0002\u12fc\u12fd\u0007\u026e\u0002\u0002\u12fd\u1308\u0007", + "\u032a\u0002\u0002\u12fe\u1300\u0007\u033e\u0002\u0002\u12ff\u12fe\u0003", + "\u0002\u0002\u0002\u12ff\u1300\u0003\u0002\u0002\u0002\u1300\u1301\u0003", + "\u0002\u0002\u0002\u1301\u1309\u0007\u0322\u0002\u0002\u1302\u1304\u0007", + "\u033e\u0002\u0002\u1303\u1302\u0003\u0002\u0002\u0002\u1303\u1304\u0003", + "\u0002\u0002\u0002\u1304\u1305\u0003\u0002\u0002\u0002\u1305\u1306\u0007", + "\u0322\u0002\u0002\u1306\u1307\u0007\u015a\u0002\u0002\u1307\u1309\u0007", + "\u0322\u0002\u0002\u1308\u12ff\u0003\u0002\u0002\u0002\u1308\u1303\u0003", + "\u0002\u0002\u0002\u1309\u130a\u0003\u0002\u0002\u0002\u130a\u1308\u0003", + "\u0002\u0002\u0002\u130a\u130b\u0003\u0002\u0002\u0002\u130b\u130d\u0003", + "\u0002\u0002\u0002\u130c\u12e9\u0003\u0002\u0002\u0002\u130c\u12fc\u0003", + "\u0002\u0002\u0002\u130d\u1351\u0003\u0002\u0002\u0002\u130e\u130f\u0007", + "_\u0002\u0002\u130f\u131f\u0007\u00bb\u0002\u0002\u1310\u1320\u0007", + "\u00e5\u0002\u0002\u1311\u1320\u0007\u00e2\u0002\u0002\u1312\u1313\u0007", + "\u0283\u0002\u0002\u1313\u1314\u0007\u032a\u0002\u0002\u1314\u1320\t", + "/\u0002\u0002\u1315\u1316\u0007\u00c3\u0002\u0002\u1316\u131a\u0007", + "\u032a\u0002\u0002\u1317\u1318\u0007\u0322\u0002\u0002\u1318\u131b\u0007", + "\u024d\u0002\u0002\u1319\u131b\u0007Y\u0002\u0002\u131a\u1317\u0003", + "\u0002\u0002\u0002\u131a\u1319\u0003\u0002\u0002\u0002\u131b\u1320\u0003", + "\u0002\u0002\u0002\u131c\u131d\u0007\u0244\u0002\u0002\u131d\u131e\u0007", + "\u032a\u0002\u0002\u131e\u1320\t0\u0002\u0002\u131f\u1310\u0003\u0002", + "\u0002\u0002\u131f\u1311\u0003\u0002\u0002\u0002\u131f\u1312\u0003\u0002", + "\u0002\u0002\u131f\u1315\u0003\u0002\u0002\u0002\u131f\u131c\u0003\u0002", + "\u0002\u0002\u1320\u1351\u0003\u0002\u0002\u0002\u1321\u1322\u0007}", + "\u0002\u0002\u1322\u1323\u00074\u0002\u0002\u1323\u1335\u0007\u0290", + "\u0002\u0002\u1324\u1325\u0007\u0171\u0002\u0002\u1325\u1326\u0007\u032a", + "\u0002\u0002\u1326\u1336\t/\u0002\u0002\u1327\u1328\u0007\u0145\u0002", + "\u0002\u1328\u1329\u0007\u032a\u0002\u0002\u1329\u1336\t/\u0002\u0002", + "\u132a\u132b\u0007\u0146\u0002\u0002\u132b\u132c\u0007\u032a\u0002\u0002", + "\u132c\u1336\t/\u0002\u0002\u132d\u132e\u0007\u0147\u0002\u0002\u132e", + "\u1336\t/\u0002\u0002\u132f\u1330\u0007~\u0002\u0002\u1330\u1331\u0007", + "\u032a\u0002\u0002\u1331\u1336\t/\u0002\u0002\u1332\u1333\u0007\u0095", + "\u0002\u0002\u1333\u1334\u0007\u032a\u0002\u0002\u1334\u1336\t0\u0002", + "\u0002\u1335\u1324\u0003\u0002\u0002\u0002\u1335\u1327\u0003\u0002\u0002", + "\u0002\u1335\u132a\u0003\u0002\u0002\u0002\u1335\u132d\u0003\u0002\u0002", + "\u0002\u1335\u132f\u0003\u0002\u0002\u0002\u1335\u1332\u0003\u0002\u0002", + "\u0002\u1336\u1351\u0003\u0002\u0002\u0002\u1337\u1338\u0007\u0212\u0002", + "\u0002\u1338\u1339\u00074\u0002\u0002\u1339\u133a\u0007A\u0002\u0002", + "\u133a\u133b\u0007\u032a\u0002\u0002\u133b\u1351\t1\u0002\u0002\u133c", + "\u133d\u0007#\u0002\u0002\u133d\u133e\u0007\u0285\u0002\u0002\u133e", + "\u134b\u0007z\u0002\u0002\u133f\u1340\u0007\u00e5\u0002\u0002\u1340", + "\u1341\u0007\u033c\u0002\u0002\u1341\u1342\u0007\u0082\u0002\u0002\u1342", + "\u1343\u0007\u032a\u0002\u0002\u1343\u1344\u0007\u0326\u0002\u0002\u1344", + "\u1345\u0007\u033e\u0002\u0002\u1345\u1346\u0007\u02d8\u0002\u0002\u1346", + "\u1347\u0007\u032a\u0002\u0002\u1347\u1348\u0007\u0322\u0002\u0002\u1348", + "\u1349\t2\u0002\u0002\u1349\u134c\u0007\u033d\u0002\u0002\u134a\u134c", + "\u0007\u00e2\u0002\u0002\u134b\u133f\u0003\u0002\u0002\u0002\u134b\u134a", + "\u0003\u0002\u0002\u0002\u134c\u1351\u0003\u0002\u0002\u0002\u134d\u134e", + "\u0007\u013b\u0002\u0002\u134e\u134f\u0007\u0140\u0002\u0002\u134f\u1351", + "\t\t\u0002\u0002\u1350\u12e7\u0003\u0002\u0002\u0002\u1350\u130e\u0003", + "\u0002\u0002\u0002\u1350\u1321\u0003\u0002\u0002\u0002\u1350\u1337\u0003", + "\u0002\u0002\u0002\u1350\u133c\u0003\u0002\u0002\u0002\u1350\u134d\u0003", + "\u0002\u0002\u0002\u1351\u017d\u0003\u0002\u0002\u0002\u1352\u1353\u0007", + "\n\u0002\u0002\u1353\u1354\u0007\u0135\u0002\u0002\u1354\u1355\u0007", + "\u0121\u0002\u0002\u1355\u135d\u0005\u03c6\u01e4\u0002\u1356\u1357\t", + "\u0015\u0002\u0002\u1357\u1358\u0007\u00c7\u0002\u0002\u1358\u135e\u0005", + "\u03c6\u01e4\u0002\u1359\u135a\u0007\u0179\u0002\u0002\u135a\u135b\u0007", + "\u025d\u0002\u0002\u135b\u135c\u0007\u032a\u0002\u0002\u135c\u135e\u0005", + "\u03c6\u01e4\u0002\u135d\u1356\u0003\u0002\u0002\u0002\u135d\u1359\u0003", + "\u0002\u0002\u0002\u135e\u017f\u0003\u0002\u0002\u0002\u135f\u1360\u0007", + "I\u0002\u0002\u1360\u1361\u0007\u0135\u0002\u0002\u1361\u1362\u0007", + "\u0121\u0002\u0002\u1362\u1365\u0005\u03c6\u01e4\u0002\u1363\u1364\u0007", + "\u0014\u0002\u0002\u1364\u1366\u0005\u03c6\u01e4\u0002\u1365\u1363\u0003", + "\u0002\u0002\u0002\u1365\u1366\u0003\u0002\u0002\u0002\u1366\u0181\u0003", + "\u0002\u0002\u0002\u1367\u1368\u0007\n\u0002\u0002\u1368\u1369\u0007", + "\u0135\u0002\u0002\u1369\u136a\u0007\u0121\u0002\u0002\u136a\u136b\u0005", + "\u03c6\u01e4\u0002\u136b\u136c\t\u0015\u0002\u0002\u136c\u136d\u0007", + "\u00c7\u0002\u0002\u136d\u136e\u0005\u03c6\u01e4\u0002\u136e\u0183\u0003", + "\u0002\u0002\u0002\u136f\u1370\u0007\n\u0002\u0002\u1370\u1371\u0007", + "\u0136\u0002\u0002\u1371\u1379\u0005\u03c6\u01e4\u0002\u1372\u1373\u0007", + "\u00e5\u0002\u0002\u1373\u1374\u0007\u0294\u0002\u0002\u1374\u1375\u0005", + "\u03c6\u01e4\u0002\u1375\u1376\u0007\u0337\u0002\u0002\u1376\u1377\u0003", + "\u0002\u0002\u0002\u1377\u1378\u0005\u03c6\u01e4\u0002\u1378\u137a\u0003", + "\u0002\u0002\u0002\u1379\u1372\u0003\u0002\u0002\u0002\u1379\u137a\u0003", + "\u0002\u0002\u0002\u137a\u1382\u0003\u0002\u0002\u0002\u137b\u137d\u0007", + "\u033e\u0002\u0002\u137c\u137b\u0003\u0002\u0002\u0002\u137c\u137d\u0003", + "\u0002\u0002\u0002\u137d\u137e\u0003\u0002\u0002\u0002\u137e\u137f\t", + "\u0015\u0002\u0002\u137f\u1381\u0005\u03c6\u01e4\u0002\u1380\u137c\u0003", + "\u0002\u0002\u0002\u1381\u1384\u0003\u0002\u0002\u0002\u1382\u1380\u0003", + "\u0002\u0002\u0002\u1382\u1383\u0003\u0002\u0002\u0002\u1383\u0185\u0003", + "\u0002\u0002\u0002\u1384\u1382\u0003\u0002\u0002\u0002\u1385\u1386\u0007", + "I\u0002\u0002\u1386\u1387\u0007\u0136\u0002\u0002\u1387\u138a\u0005", + "\u03c6\u01e4\u0002\u1388\u1389\u0007\u0014\u0002\u0002\u1389\u138b\u0005", + "\u03c6\u01e4\u0002\u138a\u1388\u0003\u0002\u0002\u0002\u138a\u138b\u0003", + "\u0002\u0002\u0002\u138b\u138c\u0003\u0002\u0002\u0002\u138c\u138d\u0007", + "\u00e5\u0002\u0002\u138d\u1391\u0007\u0294\u0002\u0002\u138e\u138f\u0005", + "\u03c6\u01e4\u0002\u138f\u1390\u0007\u0337\u0002\u0002\u1390\u1392\u0003", + "\u0002\u0002\u0002\u1391\u138e\u0003\u0002\u0002\u0002\u1391\u1392\u0003", + "\u0002\u0002\u0002\u1392\u1393\u0003\u0002\u0002\u0002\u1393\u13a1\u0005", + "\u03c6\u01e4\u0002\u1394\u139c\u0007\u033c\u0002\u0002\u1395\u1397\u0007", + "\u033e\u0002\u0002\u1396\u1395\u0003\u0002\u0002\u0002\u1396\u1397\u0003", + "\u0002\u0002\u0002\u1397\u139a\u0003\u0002\u0002\u0002\u1398\u139b\u0005", + "\u03c6\u01e4\u0002\u1399\u139b\u0007Y\u0002\u0002\u139a\u1398\u0003", + "\u0002\u0002\u0002\u139a\u1399\u0003\u0002\u0002\u0002\u139b\u139d\u0003", + "\u0002\u0002\u0002\u139c\u1396\u0003\u0002\u0002\u0002\u139d\u139e\u0003", + "\u0002\u0002\u0002\u139e\u139c\u0003\u0002\u0002\u0002\u139e\u139f\u0003", + "\u0002\u0002\u0002\u139f\u13a0\u0003\u0002\u0002\u0002\u13a0\u13a2\u0007", + "\u033d\u0002\u0002\u13a1\u1394\u0003\u0002\u0002\u0002\u13a1\u13a2\u0003", + "\u0002\u0002\u0002\u13a2\u0187\u0003\u0002\u0002\u0002\u13a3\u13a4\u0007", + "\n\u0002\u0002\u13a4\u13a5\u0007\u0136\u0002\u0002\u13a5\u13a6\u0007", + "\u00bd\u0002\u0002\u13a6\u13bc\u0007\u00ac\u0002\u0002\u13a7\u13a9\u0007", + "\u0203\u0002\u0002\u13a8\u13a7\u0003\u0002\u0002\u0002\u13a8\u13a9\u0003", + "\u0002\u0002\u0002\u13a9\u13aa\u0003\u0002\u0002\u0002\u13aa\u13bd\u0007", + "\u010f\u0002\u0002\u13ab\u13ba\u0007\u0179\u0002\u0002\u13ac\u13ad\u0007", + "\u0274\u0002\u0002\u13ad\u13ae\u0007\u032a\u0002\u0002\u13ae\u13af\u0007", + "\u0326\u0002\u0002\u13af\u13b0\u0007\u033e\u0002\u0002\u13b0\u13b1\u0007", + "\u00e4\u0002\u0002\u13b1\u13b2\u0007\u032a\u0002\u0002\u13b2\u13bb\u0007", + "\u0326\u0002\u0002\u13b3\u13b4\u0007\u025f\u0002\u0002\u13b4\u13b5\u0007", + "\u032a\u0002\u0002\u13b5\u13b6\u0007\u0326\u0002\u0002\u13b6\u13b7\u0007", + "\u033e\u0002\u0002\u13b7\u13b8\u0007\u0261\u0002\u0002\u13b8\u13b9\u0007", + "\u032a\u0002\u0002\u13b9\u13bb\u0007\u0326\u0002\u0002\u13ba\u13ac\u0003", + "\u0002\u0002\u0002\u13ba\u13b3\u0003\u0002\u0002\u0002\u13ba\u13bb\u0003", + "\u0002\u0002\u0002\u13bb\u13bd\u0003\u0002\u0002\u0002\u13bc\u13a8\u0003", + "\u0002\u0002\u0002\u13bc\u13ab\u0003\u0002\u0002\u0002\u13bd\u0189\u0003", + "\u0002\u0002\u0002\u13be\u13bf\u0007\n\u0002\u0002\u13bf\u13c0\u0007", + "\u02eb\u0002\u0002\u13c0\u13c1\u0007\u00ac\u0002\u0002\u13c1\u13c2\u0005", + "\u03c6\u01e4\u0002\u13c2\u13c3\t\u0015\u0002\u0002\u13c3\u13c4\u0007", + "\u01ec\u0002\u0002\u13c4\u13d0\u0007&\u0002\u0002\u13c5\u13c6\u0007", + "+\u0002\u0002\u13c6\u13d1\u0005\u03c6\u01e4\u0002\u13c7\u13c8\u0007", + "\u00f4\u0002\u0002\u13c8\u13c9\u0007\u032a\u0002\u0002\u13c9\u13d1\u0007", + "\u0326\u0002\u0002\u13ca\u13cb\u0007\u02eb\u0002\u0002\u13cb\u13cc\u0007", + "\u00ac\u0002\u0002\u13cc\u13d1\u0005\u03c6\u01e4\u0002\u13cd\u13ce\u0007", + "\u0012\u0002\u0002\u13ce\u13cf\u0007\u00ac\u0002\u0002\u13cf\u13d1\u0005", + "\u03c6\u01e4\u0002\u13d0\u13c5\u0003\u0002\u0002\u0002\u13d0\u13c7\u0003", + "\u0002\u0002\u0002\u13d0\u13ca\u0003\u0002\u0002\u0002\u13d0\u13cd\u0003", + "\u0002\u0002\u0002\u13d1\u018b\u0003\u0002\u0002\u0002\u13d2\u13d3\u0007", + "\n\u0002\u0002\u13d3\u13d4\u0007\u02eb\u0002\u0002\u13d4\u13d5\u0007", + "\u00ac\u0002\u0002\u13d5\u13d8\u0005\u03c6\u01e4\u0002\u13d6\u13d7\u0007", + "\u0014\u0002\u0002\u13d7\u13d9\u0005\u03c6\u01e4\u0002\u13d8\u13d6\u0003", + "\u0002\u0002\u0002\u13d8\u13d9\u0003\u0002\u0002\u0002\u13d9\u13dd\u0003", + "\u0002\u0002\u0002\u13da\u13db\u0007\u008b\u0002\u0002\u13db\u13dc\u0007", + "\u0291\u0002\u0002\u13dc\u13de\u0005\u03c6\u01e4\u0002\u13dd\u13da\u0003", + "\u0002\u0002\u0002\u13dd\u13de\u0003\u0002\u0002\u0002\u13de\u13df\u0003", + "\u0002\u0002\u0002\u13df\u1400\u0007\u0179\u0002\u0002\u13e0\u13e1\u0007", + "\u022b\u0002\u0002\u13e1\u13e2\u0007\u032a\u0002\u0002\u13e2\u13f0\u0007", + "\u0326\u0002\u0002\u13e3\u13e4\u0007\u018a\u0002\u0002\u13e4\u13e5\u0007", + "\u032a\u0002\u0002\u13e5\u13f0\t3\u0002\u0002\u13e6\u13e7\u0007\u0218", + "\u0002\u0002\u13e7\u13e8\u0007\u032a\u0002\u0002\u13e8\u13f0\u0007\u0326", + "\u0002\u0002\u13e9\u13ea\u0007\u0292\u0002\u0002\u13ea\u13eb\u0007\u032a", + "\u0002\u0002\u13eb\u13f0\u0007\u0326\u0002\u0002\u13ec\u13ed\u0007\u01c3", + "\u0002\u0002\u13ed\u13ee\u0007\u032a\u0002\u0002\u13ee\u13f0\t\f\u0002", + "\u0002\u13ef\u13e0\u0003\u0002\u0002\u0002\u13ef\u13e3\u0003\u0002\u0002", + "\u0002\u13ef\u13e6\u0003\u0002\u0002\u0002\u13ef\u13e9\u0003\u0002\u0002", + "\u0002\u13ef\u13ec\u0003\u0002\u0002\u0002\u13f0\u1401\u0003\u0002\u0002", + "\u0002\u13f1\u13f2\u0007\u01ec\u0002\u0002\u13f2\u13fe\u0007&\u0002", + "\u0002\u13f3\u13f4\u0007+\u0002\u0002\u13f4\u13ff\u0005\u03c6\u01e4", + "\u0002\u13f5\u13f6\u0007\u00f4\u0002\u0002\u13f6\u13f7\u0007\u032a\u0002", + "\u0002\u13f7\u13ff\u0007\u0326\u0002\u0002\u13f8\u13f9\u0007\u02eb\u0002", + "\u0002\u13f9\u13fa\u0007\u00ac\u0002\u0002\u13fa\u13ff\u0005\u03c6\u01e4", + "\u0002\u13fb\u13fc\u0007\u0012\u0002\u0002\u13fc\u13fd\u0007\u00ac\u0002", + "\u0002\u13fd\u13ff\u0005\u03c6\u01e4\u0002\u13fe\u13f3\u0003\u0002\u0002", + "\u0002\u13fe\u13f5\u0003\u0002\u0002\u0002\u13fe\u13f8\u0003\u0002\u0002", + "\u0002\u13fe\u13fb\u0003\u0002\u0002\u0002\u13ff\u1401\u0003\u0002\u0002", + "\u0002\u1400\u13ef\u0003\u0002\u0002\u0002\u1400\u13f1\u0003\u0002\u0002", + "\u0002\u1401\u018d\u0003\u0002\u0002\u0002\u1402\u1403\u0007I\u0002", + "\u0002\u1403\u1407\u0007\u02ed\u0002\u0002\u1404\u1405\u0005\u03c6\u01e4", + "\u0002\u1405\u1406\u0007\u0337\u0002\u0002\u1406\u1408\u0003\u0002\u0002", + "\u0002\u1407\u1404\u0003\u0002\u0002\u0002\u1407\u1408\u0003\u0002\u0002", + "\u0002\u1408\u1409\u0003\u0002\u0002\u0002\u1409\u140a\u0005\u03c6\u01e4", + "\u0002\u140a\u1425\u0007\u0085\u0002\u0002\u140b\u140c\u0005\u03c6\u01e4", + "\u0002\u140c\u140d\u0007\u0337\u0002\u0002\u140d\u140f\u0003\u0002\u0002", + "\u0002\u140e\u140b\u0003\u0002\u0002\u0002\u140e\u140f\u0003\u0002\u0002", + "\u0002\u140f\u1413\u0003\u0002\u0002\u0002\u1410\u1411\u0005\u03c6\u01e4", + "\u0002\u1411\u1412\u0007\u0337\u0002\u0002\u1412\u1414\u0003\u0002\u0002", + "\u0002\u1413\u1410\u0003\u0002\u0002\u0002\u1413\u1414\u0003\u0002\u0002", + "\u0002\u1414\u1418\u0003\u0002\u0002\u0002\u1415\u1416\u0005\u03c6\u01e4", + "\u0002\u1416\u1417\u0007\u0337\u0002\u0002\u1417\u1419\u0003\u0002\u0002", + "\u0002\u1418\u1415\u0003\u0002\u0002\u0002\u1418\u1419\u0003\u0002\u0002", + "\u0002\u1419\u141a\u0003\u0002\u0002\u0002\u141a\u1426\u0005\u03c6\u01e4", + "\u0002\u141b\u141c\u0005\u03c6\u01e4\u0002\u141c\u141d\u0007\u0337\u0002", + "\u0002\u141d\u141f\u0003\u0002\u0002\u0002\u141e\u141b\u0003\u0002\u0002", + "\u0002\u141e\u141f\u0003\u0002\u0002\u0002\u141f\u1423\u0003\u0002\u0002", + "\u0002\u1420\u1421\u0005\u03c6\u01e4\u0002\u1421\u1422\u0007\u0337\u0002", + "\u0002\u1422\u1424\u0003\u0002\u0002\u0002\u1423\u1420\u0003\u0002\u0002", + "\u0002\u1423\u1424\u0003\u0002\u0002\u0002\u1424\u1426\u0003\u0002\u0002", + "\u0002\u1425\u140e\u0003\u0002\u0002\u0002\u1425\u141e\u0003\u0002\u0002", + "\u0002\u1426\u018f\u0003\u0002\u0002\u0002\u1427\u1428\u0007\n\u0002", + "\u0002\u1428\u1429\u0007\u016e\u0002\u0002\u1429\u142a\u0005\u03c6\u01e4", + "\u0002\u142a\u145d\u0007\u0179\u0002\u0002\u142b\u142d\u0007\u033e\u0002", + "\u0002\u142c\u142b\u0003\u0002\u0002\u0002\u142c\u142d\u0003\u0002\u0002", + "\u0002\u142d\u142e\u0003\u0002\u0002\u0002\u142e\u142f\u0007\u025d\u0002", + "\u0002\u142f\u1430\u0007\u032a\u0002\u0002\u1430\u145e\u0005\u03c6\u01e4", + "\u0002\u1431\u1433\u0007\u033e\u0002\u0002\u1432\u1431\u0003\u0002\u0002", + "\u0002\u1432\u1433\u0003\u0002\u0002\u0002\u1433\u1434\u0003\u0002\u0002", + "\u0002\u1434\u1435\u0007[\u0002\u0002\u1435\u1438\u0007\u032a\u0002", + "\u0002\u1436\u1439\u0005\u03c6\u01e4\u0002\u1437\u1439\u0007\u00df\u0002", + "\u0002\u1438\u1436\u0003\u0002\u0002\u0002\u1438\u1437\u0003\u0002\u0002", + "\u0002\u1439\u145e\u0003\u0002\u0002\u0002\u143a\u143c\u0007\u033e\u0002", + "\u0002\u143b\u143a\u0003\u0002\u0002\u0002\u143b\u143c\u0003\u0002\u0002", + "\u0002\u143c\u143d\u0003\u0002\u0002\u0002\u143d\u143e\u0007\u023b\u0002", + "\u0002\u143e\u143f\u0007\u032a\u0002\u0002\u143f\u145e\u0005\u03c6\u01e4", + "\u0002\u1440\u1442\u0007\u033e\u0002\u0002\u1441\u1440\u0003\u0002\u0002", + "\u0002\u1441\u1442\u0003\u0002\u0002\u0002\u1442\u1443\u0003\u0002\u0002", + "\u0002\u1443\u1444\u0007\u00f4\u0002\u0002\u1444\u1445\u0007\u032a\u0002", + "\u0002\u1445\u1449\u0007\u0326\u0002\u0002\u1446\u1447\u0007\u00e4\u0002", + "\u0002\u1447\u1448\u0007\u032a\u0002\u0002\u1448\u144a\u0007\u0326\u0002", + "\u0002\u1449\u1446\u0003\u0002\u0002\u0002\u144a\u144b\u0003\u0002\u0002", + "\u0002\u144b\u1449\u0003\u0002\u0002\u0002\u144b\u144c\u0003\u0002\u0002", + "\u0002\u144c\u145e\u0003\u0002\u0002\u0002\u144d\u144f\u0007\u033e\u0002", + "\u0002\u144e\u144d\u0003\u0002\u0002\u0002\u144e\u144f\u0003\u0002\u0002", + "\u0002\u144f\u1450\u0003\u0002\u0002\u0002\u1450\u1451\u0007\u01d4\u0002", + "\u0002\u1451\u1455\u0007\u032a\u0002\u0002\u1452\u1456\u0007\u00d5\u0002", + "\u0002\u1453\u1456\u0007\u0322\u0002\u0002\u1454\u1456\u0005\u03c6\u01e4", + "\u0002\u1455\u1452\u0003\u0002\u0002\u0002\u1455\u1453\u0003\u0002\u0002", + "\u0002\u1455\u1454\u0003\u0002\u0002\u0002\u1456\u145e\u0003\u0002\u0002", + "\u0002\u1457\u1459\u0007\u033e\u0002\u0002\u1458\u1457\u0003\u0002\u0002", + "\u0002\u1458\u1459\u0003\u0002\u0002\u0002\u1459\u145a\u0003\u0002\u0002", + "\u0002\u145a\u145b\u0007\u018b\u0002\u0002\u145b\u145c\u0007\u032a\u0002", + "\u0002\u145c\u145e\t\t\u0002\u0002\u145d\u142c\u0003\u0002\u0002\u0002", + "\u145d\u1432\u0003\u0002\u0002\u0002\u145d\u143b\u0003\u0002\u0002\u0002", + "\u145d\u1441\u0003\u0002\u0002\u0002\u145d\u144e\u0003\u0002\u0002\u0002", + "\u145d\u1458\u0003\u0002\u0002\u0002\u145e\u145f\u0003\u0002\u0002\u0002", + "\u145f\u145d\u0003\u0002\u0002\u0002\u145f\u1460\u0003\u0002\u0002\u0002", + "\u1460\u0191\u0003\u0002\u0002\u0002\u1461\u1462\u0007I\u0002\u0002", + "\u1462\u1463\u0007\u016e\u0002\u0002\u1463\u1467\u0005\u03c6\u01e4\u0002", + "\u1464\u1465\t4\u0002\u0002\u1465\u1466\u0007\u023b\u0002\u0002\u1466", + "\u1468\u0005\u03c6\u01e4\u0002\u1467\u1464\u0003\u0002\u0002\u0002\u1467", + "\u1468\u0003\u0002\u0002\u0002\u1468\u147b\u0003\u0002\u0002\u0002\u1469", + "\u1478\u0007\u0179\u0002\u0002\u146a\u146c\u0007\u033e\u0002\u0002\u146b", + "\u146a\u0003\u0002\u0002\u0002\u146b\u146c\u0003\u0002\u0002\u0002\u146c", + "\u146d\u0003\u0002\u0002\u0002\u146d\u146e\u0007[\u0002\u0002\u146e", + "\u146f\u0007\u032a\u0002\u0002\u146f\u1477\u0005\u03c6\u01e4\u0002\u1470", + "\u1472\u0007\u033e\u0002\u0002\u1471\u1470\u0003\u0002\u0002\u0002\u1471", + "\u1472\u0003\u0002\u0002\u0002\u1472\u1473\u0003\u0002\u0002\u0002\u1473", + "\u1474\u0007\u018b\u0002\u0002\u1474\u1475\u0007\u032a\u0002\u0002\u1475", + "\u1477\t\t\u0002\u0002\u1476\u146b\u0003\u0002\u0002\u0002\u1476\u1471", + "\u0003\u0002\u0002\u0002\u1477\u147a\u0003\u0002\u0002\u0002\u1478\u1476", + "\u0003\u0002\u0002\u0002\u1478\u1479\u0003\u0002\u0002\u0002\u1479\u147c", + "\u0003\u0002\u0002\u0002\u147a\u1478\u0003\u0002\u0002\u0002\u147b\u1469", + "\u0003\u0002\u0002\u0002\u147b\u147c\u0003\u0002\u0002\u0002\u147c\u14f4", + "\u0003\u0002\u0002\u0002\u147d\u147e\u0007I\u0002\u0002\u147e\u14cf", + "\u0007\u016e\u0002\u0002\u147f\u14a2\u0005\u03c6\u01e4\u0002\u1480\u149f", + "\u0007\u0179\u0002\u0002\u1481\u1483\u0007\u033e\u0002\u0002\u1482\u1481", + "\u0003\u0002\u0002\u0002\u1482\u1483\u0003\u0002\u0002\u0002\u1483\u1484", + "\u0003\u0002\u0002\u0002\u1484\u1485\u0007[\u0002\u0002\u1485\u1486", + "\u0007\u032a\u0002\u0002\u1486\u149e\u0005\u03c6\u01e4\u0002\u1487\u1489", + "\u0007\u033e\u0002\u0002\u1488\u1487\u0003\u0002\u0002\u0002\u1488\u1489", + "\u0003\u0002\u0002\u0002\u1489\u148a\u0003\u0002\u0002\u0002\u148a\u148b", + "\u0007\u01d4\u0002\u0002\u148b\u148f\u0007\u032a\u0002\u0002\u148c\u1490", + "\u0007\u00d5\u0002\u0002\u148d\u1490\u0007\u0322\u0002\u0002\u148e\u1490", + "\u0005\u03c6\u01e4\u0002\u148f\u148c\u0003\u0002\u0002\u0002\u148f\u148d", + "\u0003\u0002\u0002\u0002\u148f\u148e\u0003\u0002\u0002\u0002\u1490\u149e", + "\u0003\u0002\u0002\u0002\u1491\u1493\u0007\u033e\u0002\u0002\u1492\u1491", + "\u0003\u0002\u0002\u0002\u1492\u1493\u0003\u0002\u0002\u0002\u1493\u1494", + "\u0003\u0002\u0002\u0002\u1494\u1495\u0007\u013e\u0002\u0002\u1495\u1496", + "\u0007\u032a\u0002\u0002\u1496\u149e\u0007\u0327\u0002\u0002\u1497\u1499", + "\u0007\u033e\u0002\u0002\u1498\u1497\u0003\u0002\u0002\u0002\u1498\u1499", + "\u0003\u0002\u0002\u0002\u1499\u149a\u0003\u0002\u0002\u0002\u149a\u149b", + "\u0007\u018b\u0002\u0002\u149b\u149c\u0007\u032a\u0002\u0002\u149c\u149e", + "\t\t\u0002\u0002\u149d\u1482\u0003\u0002\u0002\u0002\u149d\u1488\u0003", + "\u0002\u0002\u0002\u149d\u1492\u0003\u0002\u0002\u0002\u149d\u1498\u0003", + "\u0002\u0002\u0002\u149e\u14a1\u0003\u0002\u0002\u0002\u149f\u149d\u0003", + "\u0002\u0002\u0002\u149f\u14a0\u0003\u0002\u0002\u0002\u14a0\u14a3\u0003", + "\u0002\u0002\u0002\u14a1\u149f\u0003\u0002\u0002\u0002\u14a2\u1480\u0003", + "\u0002\u0002\u0002\u14a2\u14a3\u0003\u0002\u0002\u0002\u14a3\u14d0\u0003", + "\u0002\u0002\u0002\u14a4\u14a5\u0005\u03c6\u01e4\u0002\u14a5\u14a6\u0007", + "\u0179\u0002\u0002\u14a6\u14a7\u0007\u00f4\u0002\u0002\u14a7\u14a8\u0007", + "\u032a\u0002\u0002\u14a8\u14c7\u0007\u0326\u0002\u0002\u14a9\u14ab\u0007", + "\u033e\u0002\u0002\u14aa\u14a9\u0003\u0002\u0002\u0002\u14aa\u14ab\u0003", + "\u0002\u0002\u0002\u14ab\u14ac\u0003\u0002\u0002\u0002\u14ac\u14ad\u0007", + "[\u0002\u0002\u14ad\u14ae\u0007\u032a\u0002\u0002\u14ae\u14c6\u0005", + "\u03c6\u01e4\u0002\u14af\u14b1\u0007\u033e\u0002\u0002\u14b0\u14af\u0003", + "\u0002\u0002\u0002\u14b0\u14b1\u0003\u0002\u0002\u0002\u14b1\u14b2\u0003", + "\u0002\u0002\u0002\u14b2\u14b3\u0007\u01d4\u0002\u0002\u14b3\u14b7\u0007", + "\u032a\u0002\u0002\u14b4\u14b8\u0007\u00d5\u0002\u0002\u14b5\u14b8\u0007", + "\u0322\u0002\u0002\u14b6\u14b8\u0005\u03c6\u01e4\u0002\u14b7\u14b4\u0003", + "\u0002\u0002\u0002\u14b7\u14b5\u0003\u0002\u0002\u0002\u14b7\u14b6\u0003", + "\u0002\u0002\u0002\u14b8\u14c6\u0003\u0002\u0002\u0002\u14b9\u14bb\u0007", + "\u033e\u0002\u0002\u14ba\u14b9\u0003\u0002\u0002\u0002\u14ba\u14bb\u0003", + "\u0002\u0002\u0002\u14bb\u14bc\u0003\u0002\u0002\u0002\u14bc\u14bd\u0007", + "\u013e\u0002\u0002\u14bd\u14be\u0007\u032a\u0002\u0002\u14be\u14c6\u0007", + "\u0327\u0002\u0002\u14bf\u14c1\u0007\u033e\u0002\u0002\u14c0\u14bf\u0003", + "\u0002\u0002\u0002\u14c0\u14c1\u0003\u0002\u0002\u0002\u14c1\u14c2\u0003", + "\u0002\u0002\u0002\u14c2\u14c3\u0007\u018b\u0002\u0002\u14c3\u14c4\u0007", + "\u032a\u0002\u0002\u14c4\u14c6\t\t\u0002\u0002\u14c5\u14aa\u0003\u0002", + "\u0002\u0002\u14c5\u14b0\u0003\u0002\u0002\u0002\u14c5\u14ba\u0003\u0002", + "\u0002\u0002\u14c5\u14c0\u0003\u0002\u0002\u0002\u14c6\u14c9\u0003\u0002", + "\u0002\u0002\u14c7\u14c5\u0003\u0002\u0002\u0002\u14c7\u14c8\u0003\u0002", + "\u0002\u0002\u14c8\u14d0\u0003\u0002\u0002\u0002\u14c9\u14c7\u0003\u0002", + "\u0002\u0002\u14ca\u14cb\u0005\u03c6\u01e4\u0002\u14cb\u14cc\u0007\u008b", + "\u0002\u0002\u14cc\u14cd\u0007{\u0002\u0002\u14cd\u14ce\u0007\u0291", + "\u0002\u0002\u14ce\u14d0\u0003\u0002\u0002\u0002\u14cf\u147f\u0003\u0002", + "\u0002\u0002\u14cf\u14a4\u0003\u0002\u0002\u0002\u14cf\u14ca\u0003\u0002", + "\u0002\u0002\u14d0\u14f4\u0003\u0002\u0002\u0002\u14d1\u14d2\u0007I", + "\u0002\u0002\u14d2\u14d3\u0007\u016e\u0002\u0002\u14d3\u14ee\u0005\u03c6", + "\u01e4\u0002\u14d4\u14d5\u0007\u017b\u0002\u0002\u14d5\u14e4\u0007\u023b", + "\u0002\u0002\u14d6\u14d8\u0007\u033e\u0002\u0002\u14d7\u14d6\u0003\u0002", + "\u0002\u0002\u14d7\u14d8\u0003\u0002\u0002\u0002\u14d8\u14d9\u0003\u0002", + "\u0002\u0002\u14d9\u14da\u0007[\u0002\u0002\u14da\u14db\u0007\u032a", + "\u0002\u0002\u14db\u14e3\u0005\u03c6\u01e4\u0002\u14dc\u14de\u0007\u033e", + "\u0002\u0002\u14dd\u14dc\u0003\u0002\u0002\u0002\u14dd\u14de\u0003\u0002", + "\u0002\u0002\u14de\u14df\u0003\u0002\u0002\u0002\u14df\u14e0\u0007\u018b", + "\u0002\u0002\u14e0\u14e1\u0007\u032a\u0002\u0002\u14e1\u14e3\t\t\u0002", + "\u0002\u14e2\u14d7\u0003\u0002\u0002\u0002\u14e2\u14dd\u0003\u0002\u0002", + "\u0002\u14e3\u14e6\u0003\u0002\u0002\u0002\u14e4\u14e2\u0003\u0002\u0002", + "\u0002\u14e4\u14e5\u0003\u0002\u0002\u0002\u14e5\u14ef\u0003\u0002\u0002", + "\u0002\u14e6\u14e4\u0003\u0002\u0002\u0002\u14e7\u14e8\t4\u0002\u0002", + "\u14e8\u14e9\u0007+\u0002\u0002\u14e9\u14ef\u0005\u03c6\u01e4\u0002", + "\u14ea\u14eb\t4\u0002\u0002\u14eb\u14ec\u0007\u0012\u0002\u0002\u14ec", + "\u14ed\u0007\u00ac\u0002\u0002\u14ed\u14ef\u0005\u03c6\u01e4\u0002\u14ee", + "\u14d4\u0003\u0002\u0002\u0002\u14ee\u14e7\u0003\u0002\u0002\u0002\u14ee", + "\u14ea\u0003\u0002\u0002\u0002\u14ef\u14f4\u0003\u0002\u0002\u0002\u14f0", + "\u14f1\u0007I\u0002\u0002\u14f1\u14f2\u0007\u016e\u0002\u0002\u14f2", + "\u14f4\u0005\u03c6\u01e4\u0002\u14f3\u1461\u0003\u0002\u0002\u0002\u14f3", + "\u147d\u0003\u0002\u0002\u0002\u14f3\u14d1\u0003\u0002\u0002\u0002\u14f3", + "\u14f0\u0003\u0002\u0002\u0002\u14f4\u0193\u0003\u0002\u0002\u0002\u14f5", + "\u14f6\u0007I\u0002\u0002\u14f6\u14f7\u0007\u016e\u0002\u0002\u14f7", + "\u14fd\u0005\u03c6\u01e4\u0002\u14f8\u14f9\t4\u0002\u0002\u14f9\u14fa", + "\u0007\u023b\u0002\u0002\u14fa\u14fe\u0005\u03c6\u01e4\u0002\u14fb\u14fc", + "\u0007\u017b\u0002\u0002\u14fc\u14fe\u0007\u023b\u0002\u0002\u14fd\u14f8", + "\u0003\u0002\u0002\u0002\u14fd\u14fb\u0003\u0002\u0002\u0002\u14fd\u14fe", + "\u0003\u0002\u0002\u0002\u14fe\u1503\u0003\u0002\u0002\u0002\u14ff\u1500", + "\u0007\u0179\u0002\u0002\u1500\u1501\u0007[\u0002\u0002\u1501\u1502", + "\u0007\u032a\u0002\u0002\u1502\u1504\u0005\u03c6\u01e4\u0002\u1503\u14ff", + "\u0003\u0002\u0002\u0002\u1503\u1504\u0003\u0002\u0002\u0002\u1504\u1512", + "\u0003\u0002\u0002\u0002\u1505\u1506\u0007I\u0002\u0002\u1506\u1507", + "\u0007\u016e\u0002\u0002\u1507\u1508\u0005\u03c6\u01e4\u0002\u1508\u1509", + "\u0007\u008b\u0002\u0002\u1509\u150a\u0007{\u0002\u0002\u150a\u150f", + "\u0007\u0291\u0002\u0002\u150b\u150c\u0007\u0179\u0002\u0002\u150c\u150d", + "\u0007[\u0002\u0002\u150d\u150e\u0007\u032a\u0002\u0002\u150e\u1510", + "\u0005\u03c6\u01e4\u0002\u150f\u150b\u0003\u0002\u0002\u0002\u150f\u1510", + "\u0003\u0002\u0002\u0002\u1510\u1512\u0003\u0002\u0002\u0002\u1511\u14f5", + "\u0003\u0002\u0002\u0002\u1511\u1505\u0003\u0002\u0002\u0002\u1512\u0195", + "\u0003\u0002\u0002\u0002\u1513\u1514\u0007\n\u0002\u0002\u1514\u1515", + "\u0007\u016e\u0002\u0002\u1515\u1516\u0005\u03c6\u01e4\u0002\u1516\u152f", + "\u0007\u0179\u0002\u0002\u1517\u1519\u0007\u033e\u0002\u0002\u1518\u1517", + "\u0003\u0002\u0002\u0002\u1518\u1519\u0003\u0002\u0002\u0002\u1519\u151a", + "\u0003\u0002\u0002\u0002\u151a\u151b\u0007\u025d\u0002\u0002\u151b\u151c", + "\u0007\u032a\u0002\u0002\u151c\u1530\u0005\u03c6\u01e4\u0002\u151d\u151f", + "\u0007\u033e\u0002\u0002\u151e\u151d\u0003\u0002\u0002\u0002\u151e\u151f", + "\u0003\u0002\u0002\u0002\u151f\u1520\u0003\u0002\u0002\u0002\u1520\u1521", + "\u0007[\u0002\u0002\u1521\u1522\u0007\u032a\u0002\u0002\u1522\u1530", + "\u0005\u03c6\u01e4\u0002\u1523\u1525\u0007\u033e\u0002\u0002\u1524\u1523", + "\u0003\u0002\u0002\u0002\u1524\u1525\u0003\u0002\u0002\u0002\u1525\u1526", + "\u0003\u0002\u0002\u0002\u1526\u1527\u0007\u023b\u0002\u0002\u1527\u1528", + "\u0007\u032a\u0002\u0002\u1528\u1530\u0005\u03c6\u01e4\u0002\u1529\u152b", + "\u0007\u033e\u0002\u0002\u152a\u1529\u0003\u0002\u0002\u0002\u152a\u152b", + "\u0003\u0002\u0002\u0002\u152b\u152c\u0003\u0002\u0002\u0002\u152c\u152d", + "\u0007\u018b\u0002\u0002\u152d\u152e\u0007\u032a\u0002\u0002\u152e\u1530", + "\t\t\u0002\u0002\u152f\u1518\u0003\u0002\u0002\u0002\u152f\u151e\u0003", + "\u0002\u0002\u0002\u152f\u1524\u0003\u0002\u0002\u0002\u152f\u152a\u0003", + "\u0002\u0002\u0002\u1530\u1531\u0003\u0002\u0002\u0002\u1531\u152f\u0003", + "\u0002\u0002\u0002\u1531\u1532\u0003\u0002\u0002\u0002\u1532\u0197\u0003", + "\u0002\u0002\u0002\u1533\u1534\u0007\n\u0002\u0002\u1534\u1535\u0007", + "\u0314\u0002\u0002\u1535\u1538\u0007\u0092\u0002\u0002\u1536\u1539\u0005", + "\u03c6\u01e4\u0002\u1537\u1539\u0007\u01d2\u0002\u0002\u1538\u1536\u0003", + "\u0002\u0002\u0002\u1538\u1537\u0003\u0002\u0002\u0002\u1539\u1559\u0003", + "\u0002\u0002\u0002\u153a\u153b\u0007\u0179\u0002\u0002\u153b\u1554\u0007", + "\u033c\u0002\u0002\u153c\u153d\u0007\u021c\u0002\u0002\u153d\u153e\u0007", + "\u032a\u0002\u0002\u153e\u1555\t5\u0002\u0002\u153f\u1541\u0007\u033e", + "\u0002\u0002\u1540\u153f\u0003\u0002\u0002\u0002\u1540\u1541\u0003\u0002", + "\u0002\u0002\u1541\u1542\u0003\u0002\u0002\u0002\u1542\u1543\u0007\u02ae", + "\u0002\u0002\u1543\u1544\u0007\u032a\u0002\u0002\u1544\u1555\u0007\u0322", + "\u0002\u0002\u1545\u1547\u0007\u033e\u0002\u0002\u1546\u1545\u0003\u0002", + "\u0002\u0002\u1546\u1547\u0003\u0002\u0002\u0002\u1547\u1548\u0003\u0002", + "\u0002\u0002\u1548\u1549\u0007\u02ad\u0002\u0002\u1549\u154a\u0007\u032a", + "\u0002\u0002\u154a\u1555\u0007\u0322\u0002\u0002\u154b\u154c\u0007\u02af", + "\u0002\u0002\u154c\u154d\u0007\u032a\u0002\u0002\u154d\u1555\u0007\u0322", + "\u0002\u0002\u154e\u154f\u0007\u0243\u0002\u0002\u154f\u1550\u0007\u032a", + "\u0002\u0002\u1550\u1555\u0007\u0322\u0002\u0002\u1551\u1552\u0007\u020f", + "\u0002\u0002\u1552\u1553\u0007\u032a\u0002\u0002\u1553\u1555\u0007\u0322", + "\u0002\u0002\u1554\u153c\u0003\u0002\u0002\u0002\u1554\u1540\u0003\u0002", + "\u0002\u0002\u1554\u1546\u0003\u0002\u0002\u0002\u1554\u154b\u0003\u0002", + "\u0002\u0002\u1554\u154e\u0003\u0002\u0002\u0002\u1554\u1551\u0003\u0002", + "\u0002\u0002\u1555\u1556\u0003\u0002\u0002\u0002\u1556\u1554\u0003\u0002", + "\u0002\u0002\u1556\u1557\u0003\u0002\u0002\u0002\u1557\u1558\u0003\u0002", + "\u0002\u0002\u1558\u155a\u0007\u033d\u0002\u0002\u1559\u153a\u0003\u0002", + "\u0002\u0002\u1559\u155a\u0003\u0002\u0002\u0002\u155a\u1560\u0003\u0002", + "\u0002\u0002\u155b\u155e\u0007\u0308\u0002\u0002\u155c\u155f\u0005\u03c6", + "\u01e4\u0002\u155d\u155f\u0007\u01d2\u0002\u0002\u155e\u155c\u0003\u0002", + "\u0002\u0002\u155e\u155d\u0003\u0002\u0002\u0002\u155f\u1561\u0003\u0002", + "\u0002\u0002\u1560\u155b\u0003\u0002\u0002\u0002\u1560\u1561\u0003\u0002", + "\u0002\u0002\u1561\u0199\u0003\u0002\u0002\u0002\u1562\u1563\u0007I", + "\u0002\u0002\u1563\u1564\u0007\u0314\u0002\u0002\u1564\u1565\u0007\u0092", + "\u0002\u0002\u1565\u1585\u0005\u03c6\u01e4\u0002\u1566\u1567\u0007\u0179", + "\u0002\u0002\u1567\u1580\u0007\u033c\u0002\u0002\u1568\u1569\u0007\u021c", + "\u0002\u0002\u1569\u156a\u0007\u032a\u0002\u0002\u156a\u1581\t5\u0002", + "\u0002\u156b\u156d\u0007\u033e\u0002\u0002\u156c\u156b\u0003\u0002\u0002", + "\u0002\u156c\u156d\u0003\u0002\u0002\u0002\u156d\u156e\u0003\u0002\u0002", + "\u0002\u156e\u156f\u0007\u02ae\u0002\u0002\u156f\u1570\u0007\u032a\u0002", + "\u0002\u1570\u1581\u0007\u0322\u0002\u0002\u1571\u1573\u0007\u033e\u0002", + "\u0002\u1572\u1571\u0003\u0002\u0002\u0002\u1572\u1573\u0003\u0002\u0002", + "\u0002\u1573\u1574\u0003\u0002\u0002\u0002\u1574\u1575\u0007\u02ad\u0002", + "\u0002\u1575\u1576\u0007\u032a\u0002\u0002\u1576\u1581\u0007\u0322\u0002", + "\u0002\u1577\u1578\u0007\u02af\u0002\u0002\u1578\u1579\u0007\u032a\u0002", + "\u0002\u1579\u1581\u0007\u0322\u0002\u0002\u157a\u157b\u0007\u0243\u0002", + "\u0002\u157b\u157c\u0007\u032a\u0002\u0002\u157c\u1581\u0007\u0322\u0002", + "\u0002\u157d\u157e\u0007\u020f\u0002\u0002\u157e\u157f\u0007\u032a\u0002", + "\u0002\u157f\u1581\u0007\u0322\u0002\u0002\u1580\u1568\u0003\u0002\u0002", + "\u0002\u1580\u156c\u0003\u0002\u0002\u0002\u1580\u1572\u0003\u0002\u0002", + "\u0002\u1580\u1577\u0003\u0002\u0002\u0002\u1580\u157a\u0003\u0002\u0002", + "\u0002\u1580\u157d\u0003\u0002\u0002\u0002\u1581\u1582\u0003\u0002\u0002", + "\u0002\u1582\u1580\u0003\u0002\u0002\u0002\u1582\u1583\u0003\u0002\u0002", + "\u0002\u1583\u1584\u0003\u0002\u0002\u0002\u1584\u1586\u0007\u033d\u0002", + "\u0002\u1585\u1566\u0003\u0002\u0002\u0002\u1585\u1586\u0003\u0002\u0002", + "\u0002\u1586\u1594\u0003\u0002\u0002\u0002\u1587\u158a\u0007\u0308\u0002", + "\u0002\u1588\u158b\u0005\u03c6\u01e4\u0002\u1589\u158b\u0007\u01d2\u0002", + "\u0002\u158a\u1588\u0003\u0002\u0002\u0002\u158a\u1589\u0003\u0002\u0002", + "\u0002\u158a\u158b\u0003\u0002\u0002\u0002\u158b\u1592\u0003\u0002\u0002", + "\u0002\u158c\u158e\u0007\u033e\u0002\u0002\u158d\u158c\u0003\u0002\u0002", + "\u0002\u158d\u158e\u0003\u0002\u0002\u0002\u158e\u158f\u0003\u0002\u0002", + "\u0002\u158f\u1590\u0007{\u0002\u0002\u1590\u1593\u0005\u03c6\u01e4", + "\u0002\u1591\u1593\u0007\u01d2\u0002\u0002\u1592\u158d\u0003\u0002\u0002", + "\u0002\u1592\u1591\u0003\u0002\u0002\u0002\u1592\u1593\u0003\u0002\u0002", + "\u0002\u1593\u1595\u0003\u0002\u0002\u0002\u1594\u1587\u0003\u0002\u0002", + "\u0002\u1594\u1595\u0003\u0002\u0002\u0002\u1595\u019b\u0003\u0002\u0002", + "\u0002\u1596\u1597\u0007I\u0002\u0002\u1597\u1598\u0007\u0315\u0002", + "\u0002\u1598\u1599\u0007\u012e\u0002\u0002\u1599\u159d\u0007\u01b5\u0002", + "\u0002\u159a\u159b\u0005\u03c6\u01e4\u0002\u159b\u159c\u0007\u0337\u0002", + "\u0002\u159c\u159e\u0003\u0002\u0002\u0002\u159d\u159a\u0003\u0002\u0002", + "\u0002\u159d\u159e\u0003\u0002\u0002\u0002\u159e\u159f\u0003\u0002\u0002", + "\u0002\u159f\u15a0\u0005\u03c6\u01e4\u0002\u15a0\u15a4\u0007\u0010\u0002", + "\u0002\u15a1\u15a5\u0007\u0326\u0002\u0002\u15a2\u15a5\u0005\u03c6\u01e4", + "\u0002\u15a3\u15a5\u0007\u0321\u0002\u0002\u15a4\u15a1\u0003\u0002\u0002", + "\u0002\u15a4\u15a2\u0003\u0002\u0002\u0002\u15a4\u15a3\u0003\u0002\u0002", + "\u0002\u15a5\u019d\u0003\u0002\u0002\u0002\u15a6\u15a7\u0007I\u0002", + "\u0002\u15a7\u15aa\u0007\u0294\u0002\u0002\u15a8\u15ab\u0005\u038c\u01c7", + "\u0002\u15a9\u15ab\u0005\u03c6\u01e4\u0002\u15aa\u15a8\u0003\u0002\u0002", + "\u0002\u15aa\u15a9\u0003\u0002\u0002\u0002\u15ab\u15ad\u0003\u0002\u0002", + "\u0002\u15ac\u15ae\u0005\u01a0\u00d1\u0002\u15ad\u15ac\u0003\u0002\u0002", + "\u0002\u15ad\u15ae\u0003\u0002\u0002\u0002\u15ae\u15b2\u0003\u0002\u0002", + "\u0002\u15af\u15b0\u0007\u00e5\u0002\u0002\u15b0\u15b3\u0005\u03c6\u01e4", + "\u0002\u15b1\u15b3\u0007Y\u0002\u0002\u15b2\u15af\u0003\u0002\u0002", + "\u0002\u15b2\u15b1\u0003\u0002\u0002\u0002\u15b2\u15b3\u0003\u0002\u0002", + "\u0002\u15b3\u019f\u0003\u0002\u0002\u0002\u15b4\u15bb\u0007\u0179\u0002", + "\u0002\u15b5\u15b6\u0007\u02e0\u0002\u0002\u15b6\u15b7\u0007\u032a\u0002", + "\u0002\u15b7\u15b9\t\t\u0002\u0002\u15b8\u15ba\u0007\u033e\u0002\u0002", + "\u15b9\u15b8\u0003\u0002\u0002\u0002\u15b9\u15ba\u0003\u0002\u0002\u0002", + "\u15ba\u15bc\u0003\u0002\u0002\u0002\u15bb\u15b5\u0003\u0002\u0002\u0002", + "\u15bb\u15bc\u0003\u0002\u0002\u0002\u15bc\u15c3\u0003\u0002\u0002\u0002", + "\u15bd\u15be\u0007\u02b5\u0002\u0002\u15be\u15bf\u0007\u032a\u0002\u0002", + "\u15bf\u15c1\t\t\u0002\u0002\u15c0\u15c2\u0007\u033e\u0002\u0002\u15c1", + "\u15c0\u0003\u0002\u0002\u0002\u15c1\u15c2\u0003\u0002\u0002\u0002\u15c2", + "\u15c4\u0003\u0002\u0002\u0002\u15c3\u15bd\u0003\u0002\u0002\u0002\u15c3", + "\u15c4\u0003\u0002\u0002\u0002\u15c4\u15f2\u0003\u0002\u0002\u0002\u15c5", + "\u15c6\u0007\u0181\u0002\u0002\u15c6\u15ec\u0007\u033c\u0002\u0002\u15c7", + "\u15c8\u0007\u02e0\u0002\u0002\u15c8\u15c9\u0007\u032a\u0002\u0002\u15c9", + "\u15cb\t\t\u0002\u0002\u15ca\u15cc\u0007\u033e\u0002\u0002\u15cb\u15ca", + "\u0003\u0002\u0002\u0002\u15cb\u15cc\u0003\u0002\u0002\u0002\u15cc\u15ce", + "\u0003\u0002\u0002\u0002\u15cd\u15c7\u0003\u0002\u0002\u0002\u15cd\u15ce", + "\u0003\u0002\u0002\u0002\u15ce\u15d5\u0003\u0002\u0002\u0002\u15cf\u15d0", + "\u0007\u028f\u0002\u0002\u15d0\u15d1\u0007\u032a\u0002\u0002\u15d1\u15d3", + "\u0005\u0394\u01cb\u0002\u15d2\u15d4\u0007\u033e\u0002\u0002\u15d3\u15d2", + "\u0003\u0002\u0002\u0002\u15d3\u15d4\u0003\u0002\u0002\u0002\u15d4\u15d6", + "\u0003\u0002\u0002\u0002\u15d5\u15cf\u0003\u0002\u0002\u0002\u15d5\u15d6", + "\u0003\u0002\u0002\u0002\u15d6\u15dd\u0003\u0002\u0002\u0002\u15d7\u15d8", + "\u0007\u0248\u0002\u0002\u15d8\u15d9\u0007\u032a\u0002\u0002\u15d9\u15db", + "\u0007\u0322\u0002\u0002\u15da\u15dc\u0007\u033e\u0002\u0002\u15db\u15da", + "\u0003\u0002\u0002\u0002\u15db\u15dc\u0003\u0002\u0002\u0002\u15dc\u15de", + "\u0003\u0002\u0002\u0002\u15dd\u15d7\u0003\u0002\u0002\u0002\u15dd\u15de", + "\u0003\u0002\u0002\u0002\u15de\u15e9\u0003\u0002\u0002\u0002\u15df\u15e0", + "\u0007v\u0002\u0002\u15e0\u15e4\u0007\u0010\u0002\u0002\u15e1\u15e5", + "\u0007\u02cb\u0002\u0002\u15e2\u15e5\u0007\u0326\u0002\u0002\u15e3\u15e5", + "\u0007\u027d\u0002\u0002\u15e4\u15e1\u0003\u0002\u0002\u0002\u15e4\u15e2", + "\u0003\u0002\u0002\u0002\u15e4\u15e3\u0003\u0002\u0002\u0002\u15e5\u15e7", + "\u0003\u0002\u0002\u0002\u15e6\u15e8\u0007\u033e\u0002\u0002\u15e7\u15e6", + "\u0003\u0002\u0002\u0002\u15e7\u15e8\u0003\u0002\u0002\u0002\u15e8\u15ea", + "\u0003\u0002\u0002\u0002\u15e9\u15df\u0003\u0002\u0002\u0002\u15e9\u15ea", + "\u0003\u0002\u0002\u0002\u15ea\u15ed\u0003\u0002\u0002\u0002\u15eb\u15ed", + "\u0007g\u0002\u0002\u15ec\u15cd\u0003\u0002\u0002\u0002\u15ec\u15eb", + "\u0003\u0002\u0002\u0002\u15ed\u15ee\u0003\u0002\u0002\u0002\u15ee\u15f0", + "\u0007\u033d\u0002\u0002\u15ef\u15f1\u0007\u033e\u0002\u0002\u15f0\u15ef", + "\u0003\u0002\u0002\u0002\u15f0\u15f1\u0003\u0002\u0002\u0002\u15f1\u15f3", + "\u0003\u0002\u0002\u0002\u15f2\u15c5\u0003\u0002\u0002\u0002\u15f2\u15f3", + "\u0003\u0002\u0002\u0002\u15f3\u15fb\u0003\u0002\u0002\u0002\u15f4\u15f5", + "\u0007\u0284\u0002\u0002\u15f5\u15f6\u0007\u033c\u0002\u0002\u15f6\u15f7", + "\u0007\u02e0\u0002\u0002\u15f7\u15f8\u0007\u032a\u0002\u0002\u15f8\u15f9", + "\t\t\u0002\u0002\u15f9\u15fa\u0003\u0002\u0002\u0002\u15fa\u15fc\u0007", + "\u033d\u0002\u0002\u15fb\u15f4\u0003\u0002\u0002\u0002\u15fb\u15fc\u0003", + "\u0002\u0002\u0002\u15fc\u01a1\u0003\u0002\u0002\u0002\u15fd\u15fe\u0007", + "\n\u0002\u0002\u15fe\u1601\u0007\u0294\u0002\u0002\u15ff\u1602\u0005", + "\u038c\u01c7\u0002\u1600\u1602\u0005\u03c6\u01e4\u0002\u1601\u15ff\u0003", + "\u0002\u0002\u0002\u1601\u1600\u0003\u0002\u0002\u0002\u1602\u1605\u0003", + "\u0002\u0002\u0002\u1603\u1606\u0005\u01a0\u00d1\u0002\u1604\u1606\u0005", + "\u01a4\u00d3\u0002\u1605\u1603\u0003\u0002\u0002\u0002\u1605\u1604\u0003", + "\u0002\u0002\u0002\u1606\u01a3\u0003\u0002\u0002\u0002\u1607\u160d\u0007", + "\u02a1\u0002\u0002\u1608\u1609\u0007\u0179\u0002\u0002\u1609\u160a\u0007", + "\u033c\u0002\u0002\u160a\u160b\u0005\u01a6\u00d4\u0002\u160b\u160c\u0007", + "\u033d\u0002\u0002\u160c\u160e\u0003\u0002\u0002\u0002\u160d\u1608\u0003", + "\u0002\u0002\u0002\u160d\u160e\u0003\u0002\u0002\u0002\u160e\u161d\u0003", + "\u0002\u0002\u0002\u160f\u1614\u0007\u02aa\u0002\u0002\u1610\u1611\u0007", + "\u0179\u0002\u0002\u1611\u1612\u0007\u0236\u0002\u0002\u1612\u1613\u0007", + "\u032a\u0002\u0002\u1613\u1615\t\t\u0002\u0002\u1614\u1610\u0003\u0002", + "\u0002\u0002\u1614\u1615\u0003\u0002\u0002\u0002\u1615\u161d\u0003\u0002", + "\u0002\u0002\u1616\u1617\u0007\u025b\u0002\u0002\u1617\u161a\u0007\u015a", + "\u0002\u0002\u1618\u161b\u0005\u03c6\u01e4\u0002\u1619\u161b\u0007Y", + "\u0002\u0002\u161a\u1618\u0003\u0002\u0002\u0002\u161a\u1619\u0003\u0002", + "\u0002\u0002\u161b\u161d\u0003\u0002\u0002\u0002\u161c\u1607\u0003\u0002", + "\u0002\u0002\u161c\u160f\u0003\u0002\u0002\u0002\u161c\u1616\u0003\u0002", + "\u0002\u0002\u161d\u01a5\u0003\u0002\u0002\u0002\u161e\u161f\u0007\u024a", + "\u0002\u0002\u161f\u1620\u0007\u032a\u0002\u0002\u1620\u1621\u0007\u0322", + "\u0002\u0002\u1621\u01a7\u0003\u0002\u0002\u0002\u1622\u1623\u0007I", + "\u0002\u0002\u1623\u1624\u0007D\u0002\u0002\u1624\u1627\u0005\u03b0", + "\u01d9\u0002\u1625\u1626\u0007\u0014\u0002\u0002\u1626\u1628\u0005\u03c6", + "\u01e4\u0002\u1627\u1625\u0003\u0002\u0002\u0002\u1627\u1628\u0003\u0002", + "\u0002\u0002\u1628\u1629\u0003\u0002\u0002\u0002\u1629\u1634\u0007\u033c", + "\u0002\u0002\u162a\u162d\u0005\u03c6\u01e4\u0002\u162b\u162d\u0007Y", + "\u0002\u0002\u162c\u162a\u0003\u0002\u0002\u0002\u162c\u162b\u0003\u0002", + "\u0002\u0002\u162d\u162e\u0003\u0002\u0002\u0002\u162e\u162f\u0007\u02ce", + "\u0002\u0002\u162f\u1630\u0007&\u0002\u0002\u1630\u1632\t6\u0002\u0002", + "\u1631\u1633\u0007\u033e\u0002\u0002\u1632\u1631\u0003\u0002\u0002\u0002", + "\u1632\u1633\u0003\u0002\u0002\u0002\u1633\u1635\u0003\u0002\u0002\u0002", + "\u1634\u162c\u0003\u0002\u0002\u0002\u1635\u1636\u0003\u0002\u0002\u0002", + "\u1636\u1634\u0003\u0002\u0002\u0002\u1636\u1637\u0003\u0002\u0002\u0002", + "\u1637\u1638\u0003\u0002\u0002\u0002\u1638\u1639\u0007\u033d\u0002\u0002", + "\u1639\u01a9\u0003\u0002\u0002\u0002\u163a\u1641\u0005\u03ac\u01d7\u0002", + "\u163b\u1641\u0005\u03ae\u01d8\u0002\u163c\u1641\u0005\u03b4\u01db\u0002", + "\u163d\u1641\u0005\u03b8\u01dd\u0002\u163e\u1641\u0005\u03bc\u01df\u0002", + "\u163f\u1641\u0005\u03b6\u01dc\u0002\u1640\u163a\u0003\u0002\u0002\u0002", + "\u1640\u163b\u0003\u0002\u0002\u0002\u1640\u163c\u0003\u0002\u0002\u0002", + "\u1640\u163d\u0003\u0002\u0002\u0002\u1640\u163e\u0003\u0002\u0002\u0002", + "\u1640\u163f\u0003\u0002\u0002\u0002\u1641\u01ab\u0003\u0002\u0002\u0002", + "\u1642\u1643\u0007I\u0002\u0002\u1643\u1644\u0007\u0250\u0002\u0002", + "\u1644\u1645\u0007\u0301\u0002\u0002\u1645\u1648\u0005\u03c6\u01e4\u0002", + "\u1646\u1647\u0007\u0014\u0002\u0002\u1647\u1649\u0005\u03c6\u01e4\u0002", + "\u1648\u1646\u0003\u0002\u0002\u0002\u1648\u1649\u0003\u0002\u0002\u0002", + "\u1649\u164a\u0003\u0002\u0002\u0002\u164a\u164b\u0007\u030a\u0002\u0002", + "\u164b\u1654\u0007\u032a\u0002\u0002\u164c\u1655\u0007\u00d5\u0002\u0002", + "\u164d\u1655\u0007\u01e8\u0002\u0002\u164e\u1655\u0007\u0311\u0002\u0002", + "\u164f\u1650\u0007\u0309\u0002\u0002\u1650\u1651\u0007\u0179\u0002\u0002", + "\u1651\u1652\u0007\u012e\u0002\u0002\u1652\u1653\u0007\u01b5\u0002\u0002", + "\u1653\u1655\u0005\u03c6\u01e4\u0002\u1654\u164c\u0003\u0002\u0002\u0002", + "\u1654\u164d\u0003\u0002\u0002\u0002\u1654\u164e\u0003\u0002\u0002\u0002", + "\u1654\u164f\u0003\u0002\u0002\u0002\u1655\u01ad\u0003\u0002\u0002\u0002", + "\u1656\u1658\u0005\u02e6\u0174\u0002\u1657\u1656\u0003\u0002\u0002\u0002", + "\u1657\u1658\u0003\u0002\u0002\u0002\u1658\u1659\u0003\u0002\u0002\u0002", + "\u1659\u1661\u0007\u00c9\u0002\u0002\u165a\u165b\u0007\u015b\u0002\u0002", + "\u165b\u165c\u0007\u033c\u0002\u0002\u165c\u165d\u0005\u02d8\u016d\u0002", + "\u165d\u165f\u0007\u033d\u0002\u0002\u165e\u1660\u0007\u00f5\u0002\u0002", + "\u165f\u165e\u0003\u0002\u0002\u0002\u165f\u1660\u0003\u0002\u0002\u0002", + "\u1660\u1662\u0003\u0002\u0002\u0002\u1661\u165a\u0003\u0002\u0002\u0002", + "\u1661\u1662\u0003\u0002\u0002\u0002\u1662\u1664\u0003\u0002\u0002\u0002", + "\u1663\u1665\u0007\u00a5\u0002\u0002\u1664\u1663\u0003\u0002\u0002\u0002", + "\u1664\u1665\u0003\u0002\u0002\u0002\u1665\u1666\u0003\u0002\u0002\u0002", + "\u1666\u1668\u0005\u0398\u01cd\u0002\u1667\u1669\u0005\u035a\u01ae\u0002", + "\u1668\u1667\u0003\u0002\u0002\u0002\u1668\u1669\u0003\u0002\u0002\u0002", + "\u1669\u166b\u0003\u0002\u0002\u0002\u166a\u166c\u0005\u0354\u01ab\u0002", + "\u166b\u166a\u0003\u0002\u0002\u0002\u166b\u166c\u0003\u0002\u0002\u0002", + "\u166c\u166d\u0003\u0002\u0002\u0002\u166d\u166e\u0007\u0308\u0002\u0002", + "\u166e\u166f\u0005\u0320\u0191\u0002\u166f\u1670\u0007\u00e5\u0002\u0002", + "\u1670\u167b\u0005\u02ee\u0178\u0002\u1671\u1672\u0007\u0175\u0002\u0002", + "\u1672\u1675\u0007\u00bc\u0002\u0002\u1673\u1674\u0007\u000b\u0002\u0002", + "\u1674\u1676\u0005\u02ee\u0178\u0002\u1675\u1673\u0003\u0002\u0002\u0002", + "\u1675\u1676\u0003\u0002\u0002\u0002\u1676\u1677\u0003\u0002\u0002\u0002", + "\u1677\u1678\u0007\u0159\u0002\u0002\u1678\u167a\u0005\u01b0\u00d9\u0002", + "\u1679\u1671\u0003\u0002\u0002\u0002\u167a\u167d\u0003\u0002\u0002\u0002", + "\u167b\u1679\u0003\u0002\u0002\u0002\u167b\u167c\u0003\u0002\u0002\u0002", + "\u167c\u168b\u0003\u0002\u0002\u0002\u167d\u167b\u0003\u0002\u0002\u0002", + "\u167e\u167f\u0007\u0175\u0002\u0002\u167f\u1680\u0007\u00dc\u0002\u0002", + "\u1680\u1683\u0007\u00bc\u0002\u0002\u1681\u1682\u0007&\u0002\u0002", + "\u1682\u1684\u0007\u0156\u0002\u0002\u1683\u1681\u0003\u0002\u0002\u0002", + "\u1683\u1684\u0003\u0002\u0002\u0002\u1684\u1687\u0003\u0002\u0002\u0002", + "\u1685\u1686\u0007\u000b\u0002\u0002\u1686\u1688\u0005\u02ee\u0178\u0002", + "\u1687\u1685\u0003\u0002\u0002\u0002\u1687\u1688\u0003\u0002\u0002\u0002", + "\u1688\u1689\u0003\u0002\u0002\u0002\u1689\u168a\u0007\u0159\u0002\u0002", + "\u168a\u168c\u0005\u01b2\u00da\u0002\u168b\u167e\u0003\u0002\u0002\u0002", + "\u168b\u168c\u0003\u0002\u0002\u0002\u168c\u169a\u0003\u0002\u0002\u0002", + "\u168d\u168e\u0007\u0175\u0002\u0002\u168e\u168f\u0007\u00dc\u0002\u0002", + "\u168f\u1690\u0007\u00bc\u0002\u0002\u1690\u1691\u0007&\u0002\u0002", + "\u1691\u1694\u0007\u0142\u0002\u0002\u1692\u1693\u0007\u000b\u0002\u0002", + "\u1693\u1695\u0005\u02ee\u0178\u0002\u1694\u1692\u0003\u0002\u0002\u0002", + "\u1694\u1695\u0003\u0002\u0002\u0002\u1695\u1696\u0003\u0002\u0002\u0002", + "\u1696\u1697\u0007\u0159\u0002\u0002\u1697\u1699\u0005\u01b0\u00d9\u0002", + "\u1698\u168d\u0003\u0002\u0002\u0002\u1699\u169c\u0003\u0002\u0002\u0002", + "\u169a\u1698\u0003\u0002\u0002\u0002\u169a\u169b\u0003\u0002\u0002\u0002", + "\u169b\u169e\u0003\u0002\u0002\u0002\u169c\u169a\u0003\u0002\u0002\u0002", + "\u169d\u169f\u0005\u01c4\u00e3\u0002\u169e\u169d\u0003\u0002\u0002\u0002", + "\u169e\u169f\u0003\u0002\u0002\u0002\u169f\u16a1\u0003\u0002\u0002\u0002", + "\u16a0\u16a2\u0005\u030c\u0187\u0002\u16a1\u16a0\u0003\u0002\u0002\u0002", + "\u16a1\u16a2\u0003\u0002\u0002\u0002\u16a2\u16a3\u0003\u0002\u0002\u0002", + "\u16a3\u16a4\u0007\u033f\u0002\u0002\u16a4\u01af\u0003\u0002\u0002\u0002", + "\u16a5\u16a6\u0007\u0169\u0002\u0002\u16a6\u16a7\u0007\u013b\u0002\u0002", + "\u16a7\u16ac\u0005\u02ea\u0176\u0002\u16a8\u16a9\u0007\u033e\u0002\u0002", + "\u16a9\u16ab\u0005\u02ea\u0176\u0002\u16aa\u16a8\u0003\u0002\u0002\u0002", + "\u16ab\u16ae\u0003\u0002\u0002\u0002\u16ac\u16aa\u0003\u0002\u0002\u0002", + "\u16ac\u16ad\u0003\u0002\u0002\u0002\u16ad\u16b1\u0003\u0002\u0002\u0002", + "\u16ae\u16ac\u0003\u0002\u0002\u0002\u16af\u16b1\u0007\\\u0002\u0002", + "\u16b0\u16a5\u0003\u0002\u0002\u0002\u16b0\u16af\u0003\u0002\u0002\u0002", + "\u16b1\u01b1\u0003\u0002\u0002\u0002\u16b2\u16b7\u0007\u00a2\u0002\u0002", + "\u16b3\u16b4\u0007\u033c\u0002\u0002\u16b4\u16b5\u0005\u039e\u01d0\u0002", + "\u16b5\u16b6\u0007\u033d\u0002\u0002\u16b6\u16b8\u0003\u0002\u0002\u0002", + "\u16b7\u16b3\u0003\u0002\u0002\u0002\u16b7\u16b8\u0003\u0002\u0002\u0002", + "\u16b8\u16bc\u0003\u0002\u0002\u0002\u16b9\u16bd\u0005\u0364\u01b3\u0002", + "\u16ba\u16bb\u0007Y\u0002\u0002\u16bb\u16bd\u0007\u016f\u0002\u0002", + "\u16bc\u16b9\u0003\u0002\u0002\u0002\u16bc\u16ba\u0003\u0002\u0002\u0002", + "\u16bd\u01b3\u0003\u0002\u0002\u0002\u16be\u16c0\u0005\u02e6\u0174\u0002", + "\u16bf\u16be\u0003\u0002\u0002\u0002\u16bf\u16c0\u0003\u0002\u0002\u0002", + "\u16c0\u16c1\u0003\u0002\u0002\u0002\u16c1\u16cb\u0007\\\u0002\u0002", + "\u16c2\u16c3\u0007\u015b\u0002\u0002\u16c3\u16c4\u0007\u033c\u0002\u0002", + "\u16c4\u16c5\u0005\u02d8\u016d\u0002\u16c5\u16c7\u0007\u033d\u0002\u0002", + "\u16c6\u16c8\u0007\u00f5\u0002\u0002\u16c7\u16c6\u0003\u0002\u0002\u0002", + "\u16c7\u16c8\u0003\u0002\u0002\u0002\u16c8\u16cc\u0003\u0002\u0002\u0002", + "\u16c9\u16ca\u0007\u015b\u0002\u0002\u16ca\u16cc\u0007\u0322\u0002\u0002", + "\u16cb\u16c2\u0003\u0002\u0002\u0002\u16cb\u16c9\u0003\u0002\u0002\u0002", + "\u16cb\u16cc\u0003\u0002\u0002\u0002\u16cc\u16ce\u0003\u0002\u0002\u0002", + "\u16cd\u16cf\u0007\u008b\u0002\u0002\u16ce\u16cd\u0003\u0002\u0002\u0002", + "\u16ce\u16cf\u0003\u0002\u0002\u0002\u16cf\u16d0\u0003\u0002\u0002\u0002", + "\u16d0\u16d2\u0005\u01b6\u00dc\u0002\u16d1\u16d3\u0005\u035a\u01ae\u0002", + "\u16d2\u16d1\u0003\u0002\u0002\u0002\u16d2\u16d3\u0003\u0002\u0002\u0002", + "\u16d3\u16d5\u0003\u0002\u0002\u0002\u16d4\u16d6\u0005\u01c4\u00e3\u0002", + "\u16d5\u16d4\u0003\u0002\u0002\u0002\u16d5\u16d6\u0003\u0002\u0002\u0002", + "\u16d6\u16d9\u0003\u0002\u0002\u0002\u16d7\u16d8\u0007\u008b\u0002\u0002", + "\u16d8\u16da\u0005\u0320\u0191\u0002\u16d9\u16d7\u0003\u0002\u0002\u0002", + "\u16d9\u16da\u0003\u0002\u0002\u0002\u16da\u16e8\u0003\u0002\u0002\u0002", + "\u16db\u16e6\u0007\u0176\u0002\u0002\u16dc\u16e7\u0005\u02ee\u0178\u0002", + "\u16dd\u16de\u0007K\u0002\u0002\u16de\u16e4\u0007\u00e1\u0002\u0002", + "\u16df\u16e1\u0007\u020d\u0002\u0002\u16e0\u16df\u0003\u0002\u0002\u0002", + "\u16e0\u16e1\u0003\u0002\u0002\u0002\u16e1\u16e2\u0003\u0002\u0002\u0002", + "\u16e2\u16e5\u0005\u03a0\u01d1\u0002\u16e3\u16e5\u0007\u0321\u0002\u0002", + "\u16e4\u16e0\u0003\u0002\u0002\u0002\u16e4\u16e3\u0003\u0002\u0002\u0002", + "\u16e5\u16e7\u0003\u0002\u0002\u0002\u16e6\u16dc\u0003\u0002\u0002\u0002", + "\u16e6\u16dd\u0003\u0002\u0002\u0002\u16e7\u16e9\u0003\u0002\u0002\u0002", + "\u16e8\u16db\u0003\u0002\u0002\u0002\u16e8\u16e9\u0003\u0002\u0002\u0002", + "\u16e9\u16eb\u0003\u0002\u0002\u0002\u16ea\u16ec\u0005\u0304\u0183\u0002", + "\u16eb\u16ea\u0003\u0002\u0002\u0002\u16eb\u16ec\u0003\u0002\u0002\u0002", + "\u16ec\u16ee\u0003\u0002\u0002\u0002\u16ed\u16ef\u0005\u030c\u0187\u0002", + "\u16ee\u16ed\u0003\u0002\u0002\u0002\u16ee\u16ef\u0003\u0002\u0002\u0002", + "\u16ef\u16f1\u0003\u0002\u0002\u0002\u16f0\u16f2\u0007\u033f\u0002\u0002", + "\u16f1\u16f0\u0003\u0002\u0002\u0002\u16f1\u16f2\u0003\u0002\u0002\u0002", + "\u16f2\u01b5\u0003\u0002\u0002\u0002\u16f3\u16f8\u0005\u0398\u01cd\u0002", + "\u16f4\u16f8\u0005\u0356\u01ac\u0002\u16f5\u16f8\u0005\u025c\u012f\u0002", + "\u16f6\u16f8\u0007\u0321\u0002\u0002\u16f7\u16f3\u0003\u0002\u0002\u0002", + "\u16f7\u16f4\u0003\u0002\u0002\u0002\u16f7\u16f5\u0003\u0002\u0002\u0002", + "\u16f7\u16f6\u0003\u0002\u0002\u0002\u16f8\u01b7\u0003\u0002\u0002\u0002", + "\u16f9\u16fb\u0005\u02e6\u0174\u0002\u16fa\u16f9\u0003\u0002\u0002\u0002", + "\u16fa\u16fb\u0003\u0002\u0002\u0002\u16fb\u16fc\u0003\u0002\u0002\u0002", + "\u16fc\u1704\u0007\u00a2\u0002\u0002\u16fd\u16fe\u0007\u015b\u0002\u0002", + "\u16fe\u16ff\u0007\u033c\u0002\u0002\u16ff\u1700\u0005\u02d8\u016d\u0002", + "\u1700\u1702\u0007\u033d\u0002\u0002\u1701\u1703\u0007\u00f5\u0002\u0002", + "\u1702\u1701\u0003\u0002\u0002\u0002\u1702\u1703\u0003\u0002\u0002\u0002", + "\u1703\u1705\u0003\u0002\u0002\u0002\u1704\u16fd\u0003\u0002\u0002\u0002", + "\u1704\u1705\u0003\u0002\u0002\u0002\u1705\u1707\u0003\u0002\u0002\u0002", + "\u1706\u1708\u0007\u00a5\u0002\u0002\u1707\u1706\u0003\u0002\u0002\u0002", + "\u1707\u1708\u0003\u0002\u0002\u0002\u1708\u170b\u0003\u0002\u0002\u0002", + "\u1709\u170c\u0005\u0398\u01cd\u0002\u170a\u170c\u0005\u025c\u012f\u0002", + "\u170b\u1709\u0003\u0002\u0002\u0002\u170b\u170a\u0003\u0002\u0002\u0002", + "\u170c\u170e\u0003\u0002\u0002\u0002\u170d\u170f\u0005\u035a\u01ae\u0002", + "\u170e\u170d\u0003\u0002\u0002\u0002\u170e\u170f\u0003\u0002\u0002\u0002", + "\u170f\u1714\u0003\u0002\u0002\u0002\u1710\u1711\u0007\u033c\u0002\u0002", + "\u1711\u1712\u0005\u039e\u01d0\u0002\u1712\u1713\u0007\u033d\u0002\u0002", + "\u1713\u1715\u0003\u0002\u0002\u0002\u1714\u1710\u0003\u0002\u0002\u0002", + "\u1714\u1715\u0003\u0002\u0002\u0002\u1715\u1717\u0003\u0002\u0002\u0002", + "\u1716\u1718\u0005\u01c4\u00e3\u0002\u1717\u1716\u0003\u0002\u0002\u0002", + "\u1717\u1718\u0003\u0002\u0002\u0002\u1718\u1719\u0003\u0002\u0002\u0002", + "\u1719\u171b\u0005\u01ba\u00de\u0002\u171a\u171c\u0005\u0304\u0183\u0002", + "\u171b\u171a\u0003\u0002\u0002\u0002\u171b\u171c\u0003\u0002\u0002\u0002", + "\u171c\u171e\u0003\u0002\u0002\u0002\u171d\u171f\u0005\u030c\u0187\u0002", + "\u171e\u171d\u0003\u0002\u0002\u0002\u171e\u171f\u0003\u0002\u0002\u0002", + "\u171f\u1721\u0003\u0002\u0002\u0002\u1720\u1722\u0007\u033f\u0002\u0002", + "\u1721\u1720\u0003\u0002\u0002\u0002\u1721\u1722\u0003\u0002\u0002\u0002", + "\u1722\u01b9\u0003\u0002\u0002\u0002\u1723\u1729\u0005\u0364\u01b3\u0002", + "\u1724\u1729\u0005\u033e\u01a0\u0002\u1725\u1729\u0005\u0278\u013d\u0002", + "\u1726\u1727\u0007Y\u0002\u0002\u1727\u1729\u0007\u016f\u0002\u0002", + "\u1728\u1723\u0003\u0002\u0002\u0002\u1728\u1724\u0003\u0002\u0002\u0002", + "\u1728\u1725\u0003\u0002\u0002\u0002\u1728\u1726\u0003\u0002\u0002\u0002", + "\u1729\u01bb\u0003\u0002\u0002\u0002\u172a\u172c\u0007\u033c\u0002\u0002", + "\u172b\u172a\u0003\u0002\u0002\u0002\u172b\u172c\u0003\u0002\u0002\u0002", + "\u172c\u172d\u0003\u0002\u0002\u0002\u172d\u1732\u0007\u02a2\u0002\u0002", + "\u172e\u1733\u0007\u0006\u0002\u0002\u172f\u1733\u0007b\u0002\u0002", + "\u1730\u1733\u0005\u02fc\u017f\u0002\u1731\u1733\u0007\u0341\u0002\u0002", + "\u1732\u172e\u0003\u0002\u0002\u0002\u1732\u172f\u0003\u0002\u0002\u0002", + "\u1732\u1730\u0003\u0002\u0002\u0002\u1732\u1731\u0003\u0002\u0002\u0002", + "\u1733\u173c\u0003\u0002\u0002\u0002\u1734\u1735\u0007\u0321\u0002\u0002", + "\u1735\u1736\u0007\u032a\u0002\u0002\u1736\u1738\u0005\u02d8\u016d\u0002", + "\u1737\u1739\u0007\u033e\u0002\u0002\u1738\u1737\u0003\u0002\u0002\u0002", + "\u1738\u1739\u0003\u0002\u0002\u0002\u1739\u173b\u0003\u0002\u0002\u0002", + "\u173a\u1734\u0003\u0002\u0002\u0002\u173b\u173e\u0003\u0002\u0002\u0002", + "\u173c\u173a\u0003\u0002\u0002\u0002\u173c\u173d\u0003\u0002\u0002\u0002", + "\u173d\u173f\u0003\u0002\u0002\u0002\u173e\u173c\u0003\u0002\u0002\u0002", + "\u173f\u1740\u0007\u008b\u0002\u0002\u1740\u1746\u0005\u038c\u01c7\u0002", + "\u1741\u1742\u0007\u00a5\u0002\u0002\u1742\u1743\u0005\u03c6\u01e4\u0002", + "\u1743\u1744\u0007\u0176\u0002\u0002\u1744\u1745\u0005\u02ee\u0178\u0002", + "\u1745\u1747\u0003\u0002\u0002\u0002\u1746\u1741\u0003\u0002\u0002\u0002", + "\u1746\u1747\u0003\u0002\u0002\u0002\u1747\u1749\u0003\u0002\u0002\u0002", + "\u1748\u174a\u0007\u033d\u0002\u0002\u1749\u1748\u0003\u0002\u0002\u0002", + "\u1749\u174a\u0003\u0002\u0002\u0002\u174a\u01bd\u0003\u0002\u0002\u0002", + "\u174b\u174d\u0005\u02e6\u0174\u0002\u174c\u174b\u0003\u0002\u0002\u0002", + "\u174c\u174d\u0003\u0002\u0002\u0002\u174d\u174e\u0003\u0002\u0002\u0002", + "\u174e\u1750\u0005\u02f6\u017c\u0002\u174f\u1751\u0005\u0302\u0182\u0002", + "\u1750\u174f\u0003\u0002\u0002\u0002\u1750\u1751\u0003\u0002\u0002\u0002", + "\u1751\u1753\u0003\u0002\u0002\u0002\u1752\u1754\u0005\u0304\u0183\u0002", + "\u1753\u1752\u0003\u0002\u0002\u0002\u1753\u1754\u0003\u0002\u0002\u0002", + "\u1754\u1756\u0003\u0002\u0002\u0002\u1755\u1757\u0005\u030c\u0187\u0002", + "\u1756\u1755\u0003\u0002\u0002\u0002\u1756\u1757\u0003\u0002\u0002\u0002", + "\u1757\u1759\u0003\u0002\u0002\u0002\u1758\u175a\u0007\u033f\u0002\u0002", + "\u1759\u1758\u0003\u0002\u0002\u0002\u1759\u175a\u0003\u0002\u0002\u0002", + "\u175a\u01bf\u0003\u0002\u0002\u0002\u175b\u175e\u0007\u0321\u0002\u0002", + "\u175c\u175e\u0005\u03c2\u01e2\u0002\u175d\u175b\u0003\u0002\u0002\u0002", + "\u175d\u175c\u0003\u0002\u0002\u0002\u175e\u01c1\u0003\u0002\u0002\u0002", + "\u175f\u1761\u0005\u02e6\u0174\u0002\u1760\u175f\u0003\u0002\u0002\u0002", + "\u1760\u1761\u0003\u0002\u0002\u0002\u1761\u1762\u0003\u0002\u0002\u0002", + "\u1762\u176a\u0007\u0169\u0002\u0002\u1763\u1764\u0007\u015b\u0002\u0002", + "\u1764\u1765\u0007\u033c\u0002\u0002\u1765\u1766\u0005\u02d8\u016d\u0002", + "\u1766\u1768\u0007\u033d\u0002\u0002\u1767\u1769\u0007\u00f5\u0002\u0002", + "\u1768\u1767\u0003\u0002\u0002\u0002\u1768\u1769\u0003\u0002\u0002\u0002", + "\u1769\u176b\u0003\u0002\u0002\u0002\u176a\u1763\u0003\u0002\u0002\u0002", + "\u176a\u176b\u0003\u0002\u0002\u0002\u176b\u176e\u0003\u0002\u0002\u0002", + "\u176c\u176f\u0005\u0398\u01cd\u0002\u176d\u176f\u0005\u025c\u012f\u0002", + "\u176e\u176c\u0003\u0002\u0002\u0002\u176e\u176d\u0003\u0002\u0002\u0002", + "\u176f\u1771\u0003\u0002\u0002\u0002\u1770\u1772\u0005\u0358\u01ad\u0002", + "\u1771\u1770\u0003\u0002\u0002\u0002\u1771\u1772\u0003\u0002\u0002\u0002", + "\u1772\u1773\u0003\u0002\u0002\u0002\u1773\u1774\u0007\u013b\u0002\u0002", + "\u1774\u1779\u0005\u02ea\u0176\u0002\u1775\u1776\u0007\u033e\u0002\u0002", + "\u1776\u1778\u0005\u02ea\u0176\u0002\u1777\u1775\u0003\u0002\u0002\u0002", + "\u1778\u177b\u0003\u0002\u0002\u0002\u1779\u1777\u0003\u0002\u0002\u0002", + "\u1779\u177a\u0003\u0002\u0002\u0002\u177a\u177d\u0003\u0002\u0002\u0002", + "\u177b\u1779\u0003\u0002\u0002\u0002\u177c\u177e\u0005\u01c4\u00e3\u0002", + "\u177d\u177c\u0003\u0002\u0002\u0002\u177d\u177e\u0003\u0002\u0002\u0002", + "\u177e\u1781\u0003\u0002\u0002\u0002\u177f\u1780\u0007\u008b\u0002\u0002", + "\u1780\u1782\u0005\u0320\u0191\u0002\u1781\u177f\u0003\u0002\u0002\u0002", + "\u1781\u1782\u0003\u0002\u0002\u0002\u1782\u1790\u0003\u0002\u0002\u0002", + "\u1783\u178e\u0007\u0176\u0002\u0002\u1784\u178f\u0005\u02ec\u0177\u0002", + "\u1785\u1786\u0007K\u0002\u0002\u1786\u178c\u0007\u00e1\u0002\u0002", + "\u1787\u1789\u0007\u020d\u0002\u0002\u1788\u1787\u0003\u0002\u0002\u0002", + "\u1788\u1789\u0003\u0002\u0002\u0002\u1789\u178a\u0003\u0002\u0002\u0002", + "\u178a\u178d\u0005\u03a0\u01d1\u0002\u178b\u178d\u0007\u0321\u0002\u0002", + "\u178c\u1788\u0003\u0002\u0002\u0002\u178c\u178b\u0003\u0002\u0002\u0002", + "\u178d\u178f\u0003\u0002\u0002\u0002\u178e\u1784\u0003\u0002\u0002\u0002", + "\u178e\u1785\u0003\u0002\u0002\u0002\u178f\u1791\u0003\u0002\u0002\u0002", + "\u1790\u1783\u0003\u0002\u0002\u0002\u1790\u1791\u0003\u0002\u0002\u0002", + "\u1791\u1793\u0003\u0002\u0002\u0002\u1792\u1794\u0005\u0304\u0183\u0002", + "\u1793\u1792\u0003\u0002\u0002\u0002\u1793\u1794\u0003\u0002\u0002\u0002", + "\u1794\u1796\u0003\u0002\u0002\u0002\u1795\u1797\u0005\u030c\u0187\u0002", + "\u1796\u1795\u0003\u0002\u0002\u0002\u1796\u1797\u0003\u0002\u0002\u0002", + "\u1797\u1799\u0003\u0002\u0002\u0002\u1798\u179a\u0007\u033f\u0002\u0002", + "\u1799\u1798\u0003\u0002\u0002\u0002\u1799\u179a\u0003\u0002\u0002\u0002", + "\u179a\u01c3\u0003\u0002\u0002\u0002\u179b\u179c\u0007\u027b\u0002\u0002", + "\u179c\u17a1\u0005\u01c6\u00e4\u0002\u179d\u179e\u0007\u033e\u0002\u0002", + "\u179e\u17a0\u0005\u01c6\u00e4\u0002\u179f\u179d\u0003\u0002\u0002\u0002", + "\u17a0\u17a3\u0003\u0002\u0002\u0002\u17a1\u179f\u0003\u0002\u0002\u0002", + "\u17a1\u17a2\u0003\u0002\u0002\u0002\u17a2\u17af\u0003\u0002\u0002\u0002", + "\u17a3\u17a1\u0003\u0002\u0002\u0002\u17a4\u17a7\u0007\u00a5\u0002\u0002", + "\u17a5\u17a8\u0007\u0321\u0002\u0002\u17a6\u17a8\u0005\u038e\u01c8\u0002", + "\u17a7\u17a5\u0003\u0002\u0002\u0002\u17a7\u17a6\u0003\u0002\u0002\u0002", + "\u17a8\u17ad\u0003\u0002\u0002\u0002\u17a9\u17aa\u0007\u033c\u0002\u0002", + "\u17aa\u17ab\u0005\u039e\u01d0\u0002\u17ab\u17ac\u0007\u033d\u0002\u0002", + "\u17ac\u17ae\u0003\u0002\u0002\u0002\u17ad\u17a9\u0003\u0002\u0002\u0002", + "\u17ad\u17ae\u0003\u0002\u0002\u0002\u17ae\u17b0\u0003\u0002\u0002\u0002", + "\u17af\u17a4\u0003\u0002\u0002\u0002\u17af\u17b0\u0003\u0002\u0002\u0002", + "\u17b0\u01c5\u0003\u0002\u0002\u0002\u17b1\u17b4\u0005\u01c8\u00e5\u0002", + "\u17b2\u17b4\u0005\u02d8\u016d\u0002\u17b3\u17b1\u0003\u0002\u0002\u0002", + "\u17b3\u17b2\u0003\u0002\u0002\u0002\u17b4\u17b6\u0003\u0002\u0002\u0002", + "\u17b5\u17b7\u0005\u0352\u01aa\u0002\u17b6\u17b5\u0003\u0002\u0002\u0002", + "\u17b6\u17b7\u0003\u0002\u0002\u0002\u17b7\u01c7\u0003\u0002\u0002\u0002", + "\u17b8\u17bc\u0007\u01d7\u0002\u0002\u17b9\u17bc\u0007\u0222\u0002\u0002", + "\u17ba\u17bc\u0005\u038e\u01c8\u0002\u17bb\u17b8\u0003\u0002\u0002\u0002", + "\u17bb\u17b9\u0003\u0002\u0002\u0002\u17bb\u17ba\u0003\u0002\u0002\u0002", + "\u17bc\u17bd\u0003\u0002\u0002\u0002\u17bd\u17c0\u0007\u0337\u0002\u0002", + "\u17be\u17c1\u0007\u0341\u0002\u0002\u17bf\u17c1\u0005\u03c6\u01e4\u0002", + "\u17c0\u17be\u0003\u0002\u0002\u0002\u17c0\u17bf\u0003\u0002\u0002\u0002", + "\u17c1\u17c4\u0003\u0002\u0002\u0002\u17c2\u17c4\u0007\u031a\u0002\u0002", + "\u17c3\u17bb\u0003\u0002\u0002\u0002\u17c3\u17c2\u0003\u0002\u0002\u0002", + "\u17c4\u01c9\u0003\u0002\u0002\u0002\u17c5\u17c6\u0007I\u0002\u0002", + "\u17c6\u17c7\u0007T\u0002\u0002\u17c7\u17cb\u0005\u03c6\u01e4\u0002", + "\u17c8\u17c9\u0007>\u0002\u0002\u17c9\u17ca\u0007\u032a\u0002\u0002", + "\u17ca\u17cc\t7\u0002\u0002\u17cb\u17c8\u0003\u0002\u0002\u0002\u17cb", + "\u17cc\u0003\u0002\u0002\u0002\u17cc\u17d9\u0003\u0002\u0002\u0002\u17cd", + "\u17cf\u0007\u00e5\u0002\u0002\u17ce\u17d0\u0007\u0100\u0002\u0002\u17cf", + "\u17ce\u0003\u0002\u0002\u0002\u17cf\u17d0\u0003\u0002\u0002\u0002\u17d0", + "\u17d1\u0003\u0002\u0002\u0002\u17d1\u17d6\u0005\u0380\u01c1\u0002\u17d2", + "\u17d3\u0007\u033e\u0002\u0002\u17d3\u17d5\u0005\u0380\u01c1\u0002\u17d4", + "\u17d2\u0003\u0002\u0002\u0002\u17d5\u17d8\u0003\u0002\u0002\u0002\u17d6", + "\u17d4\u0003\u0002\u0002\u0002\u17d6\u17d7\u0003\u0002\u0002\u0002\u17d7", + "\u17da\u0003\u0002\u0002\u0002\u17d8\u17d6\u0003\u0002\u0002\u0002\u17d9", + "\u17cd\u0003\u0002\u0002\u0002\u17d9\u17da\u0003\u0002\u0002\u0002\u17da", + "\u17e5\u0003\u0002\u0002\u0002\u17db\u17dc\u0007\u00bb\u0002\u0002\u17dc", + "\u17dd\u0007\u00e5\u0002\u0002\u17dd\u17e2\u0005\u0380\u01c1\u0002\u17de", + "\u17df\u0007\u033e\u0002\u0002\u17df\u17e1\u0005\u0380\u01c1\u0002\u17e0", + "\u17de\u0003\u0002\u0002\u0002\u17e1\u17e4\u0003\u0002\u0002\u0002\u17e2", + "\u17e0\u0003\u0002\u0002\u0002\u17e2\u17e3\u0003\u0002\u0002\u0002\u17e3", + "\u17e6\u0003\u0002\u0002\u0002\u17e4\u17e2\u0003\u0002\u0002\u0002\u17e5", + "\u17db\u0003\u0002\u0002\u0002\u17e5\u17e6\u0003\u0002\u0002\u0002\u17e6", + "\u17e9\u0003\u0002\u0002\u0002\u17e7\u17e8\u00077\u0002\u0002\u17e8", + "\u17ea\u0005\u03c6\u01e4\u0002\u17e9\u17e7\u0003\u0002\u0002\u0002\u17e9", + "\u17ea\u0003\u0002\u0002\u0002\u17ea\u17f4\u0003\u0002\u0002\u0002\u17eb", + "\u17ec\u0007\u0179\u0002\u0002\u17ec\u17f1\u0005\u037c\u01bf\u0002\u17ed", + "\u17ee\u0007\u033e\u0002\u0002\u17ee\u17f0\u0005\u037c\u01bf\u0002\u17ef", + "\u17ed\u0003\u0002\u0002\u0002\u17f0\u17f3\u0003\u0002\u0002\u0002\u17f1", + "\u17ef\u0003\u0002\u0002\u0002\u17f1\u17f2\u0003\u0002\u0002\u0002\u17f2", + "\u17f5\u0003\u0002\u0002\u0002\u17f3\u17f1\u0003\u0002\u0002\u0002\u17f4", + "\u17eb\u0003\u0002\u0002\u0002\u17f4\u17f5\u0003\u0002\u0002\u0002\u17f5", + "\u01cb\u0003\u0002\u0002\u0002\u17f6\u17f8\u0007I\u0002\u0002\u17f7", + "\u17f9\u0007\u0165\u0002\u0002\u17f8\u17f7\u0003\u0002\u0002\u0002\u17f8", + "\u17f9\u0003\u0002\u0002\u0002\u17f9\u17fb\u0003\u0002\u0002\u0002\u17fa", + "\u17fc\u0005\u03a4\u01d3\u0002\u17fb\u17fa\u0003\u0002\u0002\u0002\u17fb", + "\u17fc\u0003\u0002\u0002\u0002\u17fc\u17fd\u0003\u0002\u0002\u0002\u17fd", + "\u17fe\u0007\u009e\u0002\u0002\u17fe\u17ff\u0005\u03c6\u01e4\u0002\u17ff", + "\u1800\u0007\u00e5\u0002\u0002\u1800\u1801\u0005\u0338\u019d\u0002\u1801", + "\u1802\u0007\u033c\u0002\u0002\u1802\u1803\u0005\u039c\u01cf\u0002\u1803", + "\u1809\u0007\u033d\u0002\u0002\u1804\u1805\u0007\u009c\u0002\u0002\u1805", + "\u1806\u0007\u033c\u0002\u0002\u1806\u1807\u0005\u039e\u01d0\u0002\u1807", + "\u1808\u0007\u033d\u0002\u0002\u1808\u180a\u0003\u0002\u0002\u0002\u1809", + "\u1804\u0003\u0002\u0002\u0002\u1809\u180a\u0003\u0002\u0002\u0002\u180a", + "\u180d\u0003\u0002\u0002\u0002\u180b\u180c\u0007\u0176\u0002\u0002\u180c", + "\u180e\u0005\u02ee\u0178\u0002\u180d\u180b\u0003\u0002\u0002\u0002\u180d", + "\u180e\u0003\u0002\u0002\u0002\u180e\u1810\u0003\u0002\u0002\u0002\u180f", + "\u1811\u0005\u02c8\u0165\u0002\u1810\u180f\u0003\u0002\u0002\u0002\u1810", + "\u1811\u0003\u0002\u0002\u0002\u1811\u1814\u0003\u0002\u0002\u0002\u1812", + "\u1813\u0007\u00e5\u0002\u0002\u1813\u1815\u0005\u03c6\u01e4\u0002\u1814", + "\u1812\u0003\u0002\u0002\u0002\u1814\u1815\u0003\u0002\u0002\u0002\u1815", + "\u1817\u0003\u0002\u0002\u0002\u1816\u1818\u0007\u033f\u0002\u0002\u1817", + "\u1816\u0003\u0002\u0002\u0002\u1817\u1818\u0003\u0002\u0002\u0002\u1818", + "\u01cd\u0003\u0002\u0002\u0002\u1819\u181c\u0007I\u0002\u0002\u181a", + "\u181b\u0007\u00ed\u0002\u0002\u181b\u181d\u0007\n\u0002\u0002\u181c", + "\u181a\u0003\u0002\u0002\u0002\u181c\u181d\u0003\u0002\u0002\u0002\u181d", + "\u1820\u0003\u0002\u0002\u0002\u181e\u1820\u0007\n\u0002\u0002\u181f", + "\u1819\u0003\u0002\u0002\u0002\u181f\u181e\u0003\u0002\u0002\u0002\u1820", + "\u1821\u0003\u0002\u0002\u0002\u1821\u1822\t8\u0002\u0002\u1822\u1825", + "\u0005\u0392\u01ca\u0002\u1823\u1824\u0007\u033f\u0002\u0002\u1824\u1826", + "\u0007\u0322\u0002\u0002\u1825\u1823\u0003\u0002\u0002\u0002\u1825\u1826", + "\u0003\u0002\u0002\u0002\u1826\u1835\u0003\u0002\u0002\u0002\u1827\u1829", + "\u0007\u033c\u0002\u0002\u1828\u1827\u0003\u0002\u0002\u0002\u1828\u1829", + "\u0003\u0002\u0002\u0002\u1829\u182a\u0003\u0002\u0002\u0002\u182a\u182f", + "\u0005\u01e4\u00f3\u0002\u182b\u182c\u0007\u033e\u0002\u0002\u182c\u182e", + "\u0005\u01e4\u00f3\u0002\u182d\u182b\u0003\u0002\u0002\u0002\u182e\u1831", + "\u0003\u0002\u0002\u0002\u182f\u182d\u0003\u0002\u0002\u0002\u182f\u1830", + "\u0003\u0002\u0002\u0002\u1830\u1833\u0003\u0002\u0002\u0002\u1831\u182f", + "\u0003\u0002\u0002\u0002\u1832\u1834\u0007\u033d\u0002\u0002\u1833\u1832", + "\u0003\u0002\u0002\u0002\u1833\u1834\u0003\u0002\u0002\u0002\u1834\u1836", + "\u0003\u0002\u0002\u0002\u1835\u1828\u0003\u0002\u0002\u0002\u1835\u1836", + "\u0003\u0002\u0002\u0002\u1836\u1840\u0003\u0002\u0002\u0002\u1837\u1838", + "\u0007\u0179\u0002\u0002\u1838\u183d\u0005\u01e6\u00f4\u0002\u1839\u183a", + "\u0007\u033e\u0002\u0002\u183a\u183c\u0005\u01e6\u00f4\u0002\u183b\u1839", + "\u0003\u0002\u0002\u0002\u183c\u183f\u0003\u0002\u0002\u0002\u183d\u183b", + "\u0003\u0002\u0002\u0002\u183d\u183e\u0003\u0002\u0002\u0002\u183e\u1841", + "\u0003\u0002\u0002\u0002\u183f\u183d\u0003\u0002\u0002\u0002\u1840\u1837", + "\u0003\u0002\u0002\u0002\u1840\u1841\u0003\u0002\u0002\u0002\u1841\u1844", + "\u0003\u0002\u0002\u0002\u1842\u1843\u0007\u0085\u0002\u0002\u1843\u1845", + "\u0007\u0112\u0002\u0002\u1844\u1842\u0003\u0002\u0002\u0002\u1844\u1845", + "\u0003\u0002\u0002\u0002\u1845\u1846\u0003\u0002\u0002\u0002\u1846\u1847", + "\u0007\u0010\u0002\u0002\u1847\u1848\u0005\u0006\u0004\u0002\u1848\u01cf", + "\u0003\u0002\u0002\u0002\u1849\u184c\u0005\u01d2\u00ea\u0002\u184a\u184c", + "\u0005\u01d8\u00ed\u0002\u184b\u1849\u0003\u0002\u0002\u0002\u184b\u184a", + "\u0003\u0002\u0002\u0002\u184c\u01d1\u0003\u0002\u0002\u0002\u184d\u1850", + "\u0007I\u0002\u0002\u184e\u184f\u0007\u00ed\u0002\u0002\u184f\u1851", + "\u0007\n\u0002\u0002\u1850\u184e\u0003\u0002\u0002\u0002\u1850\u1851", + "\u0003\u0002\u0002\u0002\u1851\u1854\u0003\u0002\u0002\u0002\u1852\u1854", + "\u0007\n\u0002\u0002\u1853\u184d\u0003\u0002\u0002\u0002\u1853\u1852", + "\u0003\u0002\u0002\u0002\u1854\u1855\u0003\u0002\u0002\u0002\u1855\u1856", + "\u0007\u0160\u0002\u0002\u1856\u1857\u0005\u0390\u01c9\u0002\u1857\u1858", + "\u0007\u00e5\u0002\u0002\u1858\u1862\u0005\u038e\u01c8\u0002\u1859\u185a", + "\u0007\u0179\u0002\u0002\u185a\u185f\u0005\u01d4\u00eb\u0002\u185b\u185c", + "\u0007\u033e\u0002\u0002\u185c\u185e\u0005\u01d4\u00eb\u0002\u185d\u185b", + "\u0003\u0002\u0002\u0002\u185e\u1861\u0003\u0002\u0002\u0002\u185f\u185d", + "\u0003\u0002\u0002\u0002\u185f\u1860\u0003\u0002\u0002\u0002\u1860\u1863", + "\u0003\u0002\u0002\u0002\u1861\u185f\u0003\u0002\u0002\u0002\u1862\u1859", + "\u0003\u0002\u0002\u0002\u1862\u1863\u0003\u0002\u0002\u0002\u1863\u1868", + "\u0003\u0002\u0002\u0002\u1864\u1869\u0007\u0085\u0002\u0002\u1865\u1869", + "\u0007\u0188\u0002\u0002\u1866\u1867\u0007\u00a3\u0002\u0002\u1867\u1869", + "\u0007\u00e1\u0002\u0002\u1868\u1864\u0003\u0002\u0002\u0002\u1868\u1865", + "\u0003\u0002\u0002\u0002\u1868\u1866\u0003\u0002\u0002\u0002\u1869\u186a", + "\u0003\u0002\u0002\u0002\u186a\u186f\u0005\u01d6\u00ec\u0002\u186b\u186c", + "\u0007\u033e\u0002\u0002\u186c\u186e\u0005\u01d6\u00ec\u0002\u186d\u186b", + "\u0003\u0002\u0002\u0002\u186e\u1871\u0003\u0002\u0002\u0002\u186f\u186d", + "\u0003\u0002\u0002\u0002\u186f\u1870\u0003\u0002\u0002\u0002\u1870\u1874", + "\u0003\u0002\u0002\u0002\u1871\u186f\u0003\u0002\u0002\u0002\u1872\u1873", + "\u0007\u0179\u0002\u0002\u1873\u1875\u0007\u000e\u0002\u0002\u1874\u1872", + "\u0003\u0002\u0002\u0002\u1874\u1875\u0003\u0002\u0002\u0002\u1875\u1879", + "\u0003\u0002\u0002\u0002\u1876\u1877\u0007\u00dc\u0002\u0002\u1877\u1878", + "\u0007\u0085\u0002\u0002\u1878\u187a\u0007\u0112\u0002\u0002\u1879\u1876", + "\u0003\u0002\u0002\u0002\u1879\u187a\u0003\u0002\u0002\u0002\u187a\u187b", + "\u0003\u0002\u0002\u0002\u187b\u187c\u0007\u0010\u0002\u0002\u187c\u187d", + "\u0005\u0006\u0004\u0002\u187d\u01d3\u0003\u0002\u0002\u0002\u187e\u1881", + "\u0007\u01ec\u0002\u0002\u187f\u1881\u0005\u02ae\u0158\u0002\u1880\u187e", + "\u0003\u0002\u0002\u0002\u1880\u187f\u0003\u0002\u0002\u0002\u1881\u01d5", + "\u0003\u0002\u0002\u0002\u1882\u1883\t9\u0002\u0002\u1883\u01d7\u0003", + "\u0002\u0002\u0002\u1884\u1887\u0007I\u0002\u0002\u1885\u1886\u0007", + "\u00ed\u0002\u0002\u1886\u1888\u0007\n\u0002\u0002\u1887\u1885\u0003", + "\u0002\u0002\u0002\u1887\u1888\u0003\u0002\u0002\u0002\u1888\u188b\u0003", + "\u0002\u0002\u0002\u1889\u188b\u0007\n\u0002\u0002\u188a\u1884\u0003", + "\u0002\u0002\u0002\u188a\u1889\u0003\u0002\u0002\u0002\u188b\u188c\u0003", + "\u0002\u0002\u0002\u188c\u188d\u0007\u0160\u0002\u0002\u188d\u188e\u0005", + "\u03c8\u01e5\u0002\u188e\u1892\u0007\u00e5\u0002\u0002\u188f\u1890\u0007", + "\u0006\u0002\u0002\u1890\u1893\u0007\u0135\u0002\u0002\u1891\u1893\u0007", + "T\u0002\u0002\u1892\u188f\u0003\u0002\u0002\u0002\u1892\u1891\u0003", + "\u0002\u0002\u0002\u1893\u189d\u0003\u0002\u0002\u0002\u1894\u1895\u0007", + "\u0179\u0002\u0002\u1895\u189a\u0005\u01d4\u00eb\u0002\u1896\u1897\u0007", + "\u033e\u0002\u0002\u1897\u1899\u0005\u01d4\u00eb\u0002\u1898\u1896\u0003", + "\u0002\u0002\u0002\u1899\u189c\u0003\u0002\u0002\u0002\u189a\u1898\u0003", + "\u0002\u0002\u0002\u189a\u189b\u0003\u0002\u0002\u0002\u189b\u189e\u0003", + "\u0002\u0002\u0002\u189c\u189a\u0003\u0002\u0002\u0002\u189d\u1894\u0003", + "\u0002\u0002\u0002\u189d\u189e\u0003\u0002\u0002\u0002\u189e\u189f\u0003", + "\u0002\u0002\u0002\u189f\u18a0\t:\u0002\u0002\u18a0\u18a5\u0005\u01da", + "\u00ee\u0002\u18a1\u18a2\u0007\u033e\u0002\u0002\u18a2\u18a4\u0005\u01d6", + "\u00ec\u0002\u18a3\u18a1\u0003\u0002\u0002\u0002\u18a4\u18a7\u0003\u0002", + "\u0002\u0002\u18a5\u18a3\u0003\u0002\u0002\u0002\u18a5\u18a6\u0003\u0002", + "\u0002\u0002\u18a6\u18a8\u0003\u0002\u0002\u0002\u18a7\u18a5\u0003\u0002", + "\u0002\u0002\u18a8\u18a9\u0007\u0010\u0002\u0002\u18a9\u18aa\u0005\u0006", + "\u0004\u0002\u18aa\u01d9\u0003\u0002\u0002\u0002\u18ab\u18ac\u0005\u03c8", + "\u01e5\u0002\u18ac\u01db\u0003\u0002\u0002\u0002\u18ad\u18b0\u0007I", + "\u0002\u0002\u18ae\u18af\u0007\u00ed\u0002\u0002\u18af\u18b1\u0007\n", + "\u0002\u0002\u18b0\u18ae\u0003\u0002\u0002\u0002\u18b0\u18b1\u0003\u0002", + "\u0002\u0002\u18b1\u18b4\u0003\u0002\u0002\u0002\u18b2\u18b4\u0007\n", + "\u0002\u0002\u18b3\u18ad\u0003\u0002\u0002\u0002\u18b3\u18b2\u0003\u0002", + "\u0002\u0002\u18b4\u18b5\u0003\u0002\u0002\u0002\u18b5\u18b6\u0007\u008d", + "\u0002\u0002\u18b6\u18c4\u0005\u0392\u01ca\u0002\u18b7\u18b8\u0007\u033c", + "\u0002\u0002\u18b8\u18bd\u0005\u01e4\u00f3\u0002\u18b9\u18ba\u0007\u033e", + "\u0002\u0002\u18ba\u18bc\u0005\u01e4\u00f3\u0002\u18bb\u18b9\u0003\u0002", + "\u0002\u0002\u18bc\u18bf\u0003\u0002\u0002\u0002\u18bd\u18bb\u0003\u0002", + "\u0002\u0002\u18bd\u18be\u0003\u0002\u0002\u0002\u18be\u18c0\u0003\u0002", + "\u0002\u0002\u18bf\u18bd\u0003\u0002\u0002\u0002\u18c0\u18c1\u0007\u033d", + "\u0002\u0002\u18c1\u18c5\u0003\u0002\u0002\u0002\u18c2\u18c3\u0007\u033c", + "\u0002\u0002\u18c3\u18c5\u0007\u033d\u0002\u0002\u18c4\u18b7\u0003\u0002", + "\u0002\u0002\u18c4\u18c2\u0003\u0002\u0002\u0002\u18c5\u18c9\u0003\u0002", + "\u0002\u0002\u18c6\u18ca\u0005\u01de\u00f0\u0002\u18c7\u18ca\u0005\u01e0", + "\u00f1\u0002\u18c8\u18ca\u0005\u01e2\u00f2\u0002\u18c9\u18c6\u0003\u0002", + "\u0002\u0002\u18c9\u18c7\u0003\u0002\u0002\u0002\u18c9\u18c8\u0003\u0002", + "\u0002\u0002\u18ca\u18cc\u0003\u0002\u0002\u0002\u18cb\u18cd\u0007\u033f", + "\u0002\u0002\u18cc\u18cb\u0003\u0002\u0002\u0002\u18cc\u18cd\u0003\u0002", + "\u0002\u0002\u18cd\u01dd\u0003\u0002\u0002\u0002\u18ce\u18cf\u0007\u011b", + "\u0002\u0002\u18cf\u18d9\u0007\u0153\u0002\u0002\u18d0\u18d1\u0007\u0179", + "\u0002\u0002\u18d1\u18d6\u0005\u01e8\u00f5\u0002\u18d2\u18d3\u0007\u033e", + "\u0002\u0002\u18d3\u18d5\u0005\u01e8\u00f5\u0002\u18d4\u18d2\u0003\u0002", + "\u0002\u0002\u18d5\u18d8\u0003\u0002\u0002\u0002\u18d6\u18d4\u0003\u0002", + "\u0002\u0002\u18d6\u18d7\u0003\u0002\u0002\u0002\u18d7\u18da\u0003\u0002", + "\u0002\u0002\u18d8\u18d6\u0003\u0002\u0002\u0002\u18d9\u18d0\u0003\u0002", + "\u0002\u0002\u18d9\u18da\u0003\u0002\u0002\u0002\u18da\u18dc\u0003\u0002", + "\u0002\u0002\u18db\u18dd\u0007\u0010\u0002\u0002\u18dc\u18db\u0003\u0002", + "\u0002\u0002\u18dc\u18dd\u0003\u0002\u0002\u0002\u18dd\u18de\u0003\u0002", + "\u0002\u0002\u18de\u18e4\u0007\u011a\u0002\u0002\u18df\u18e0\u0007\u033c", + "\u0002\u0002\u18e0\u18e1\u0005\u01be\u00e0\u0002\u18e1\u18e2\u0007\u033d", + "\u0002\u0002\u18e2\u18e5\u0003\u0002\u0002\u0002\u18e3\u18e5\u0005\u01be", + "\u00e0\u0002\u18e4\u18df\u0003\u0002\u0002\u0002\u18e4\u18e3\u0003\u0002", + "\u0002\u0002\u18e5\u01df\u0003\u0002\u0002\u0002\u18e6\u18e7\u0007\u011b", + "\u0002\u0002\u18e7\u18e8\u0007\u0321\u0002\u0002\u18e8\u18f2\u0005\u02b2", + "\u015a\u0002\u18e9\u18ea\u0007\u0179\u0002\u0002\u18ea\u18ef\u0005\u01e8", + "\u00f5\u0002\u18eb\u18ec\u0007\u033e\u0002\u0002\u18ec\u18ee\u0005\u01e8", + "\u00f5\u0002\u18ed\u18eb\u0003\u0002\u0002\u0002\u18ee\u18f1\u0003\u0002", + "\u0002\u0002\u18ef\u18ed\u0003\u0002\u0002\u0002\u18ef\u18f0\u0003\u0002", + "\u0002\u0002\u18f0\u18f3\u0003\u0002\u0002\u0002\u18f1\u18ef\u0003\u0002", + "\u0002\u0002\u18f2\u18e9\u0003\u0002\u0002\u0002\u18f2\u18f3\u0003\u0002", + "\u0002\u0002\u18f3\u18f5\u0003\u0002\u0002\u0002\u18f4\u18f6\u0007\u0010", + "\u0002\u0002\u18f5\u18f4\u0003\u0002\u0002\u0002\u18f5\u18f6\u0003\u0002", + "\u0002\u0002\u18f6\u18f7\u0003\u0002\u0002\u0002\u18f7\u18fb\u0007\u001c", + "\u0002\u0002\u18f8\u18fa\u0005\b\u0005\u0002\u18f9\u18f8\u0003\u0002", + "\u0002\u0002\u18fa\u18fd\u0003\u0002\u0002\u0002\u18fb\u18f9\u0003\u0002", + "\u0002\u0002\u18fb\u18fc\u0003\u0002\u0002\u0002\u18fc\u18fe\u0003\u0002", + "\u0002\u0002\u18fd\u18fb\u0003\u0002\u0002\u0002\u18fe\u1900\u0007\u011a", + "\u0002\u0002\u18ff\u1901\u0007\u033f\u0002\u0002\u1900\u18ff\u0003\u0002", + "\u0002\u0002\u1900\u1901\u0003\u0002\u0002\u0002\u1901\u1902\u0003\u0002", + "\u0002\u0002\u1902\u1904\u0007l\u0002\u0002\u1903\u1905\u0007\u033f", + "\u0002\u0002\u1904\u1903\u0003\u0002\u0002\u0002\u1904\u1905\u0003\u0002", + "\u0002\u0002\u1905\u01e1\u0003\u0002\u0002\u0002\u1906\u1907\u0007\u011b", + "\u0002\u0002\u1907\u1911\u0005\u03be\u01e0\u0002\u1908\u1909\u0007\u0179", + "\u0002\u0002\u1909\u190e\u0005\u01e8\u00f5\u0002\u190a\u190b\u0007\u033e", + "\u0002\u0002\u190b\u190d\u0005\u01e8\u00f5\u0002\u190c\u190a\u0003\u0002", + "\u0002\u0002\u190d\u1910\u0003\u0002\u0002\u0002\u190e\u190c\u0003\u0002", + "\u0002\u0002\u190e\u190f\u0003\u0002\u0002\u0002\u190f\u1912\u0003\u0002", + "\u0002\u0002\u1910\u190e\u0003\u0002\u0002\u0002\u1911\u1908\u0003\u0002", + "\u0002\u0002\u1911\u1912\u0003\u0002\u0002\u0002\u1912\u1914\u0003\u0002", + "\u0002\u0002\u1913\u1915\u0007\u0010\u0002\u0002\u1914\u1913\u0003\u0002", + "\u0002\u0002\u1914\u1915\u0003\u0002\u0002\u0002\u1915\u1916\u0003\u0002", + "\u0002\u0002\u1916\u191a\u0007\u001c\u0002\u0002\u1917\u1919\u0005\b", + "\u0005\u0002\u1918\u1917\u0003\u0002\u0002\u0002\u1919\u191c\u0003\u0002", + "\u0002\u0002\u191a\u1918\u0003\u0002\u0002\u0002\u191a\u191b\u0003\u0002", + "\u0002\u0002\u191b\u191d\u0003\u0002\u0002\u0002\u191c\u191a\u0003\u0002", + "\u0002\u0002\u191d\u191e\u0007\u011a\u0002\u0002\u191e\u1920\u0005\u02d8", + "\u016d\u0002\u191f\u1921\u0007\u033f\u0002\u0002\u1920\u191f\u0003\u0002", + "\u0002\u0002\u1920\u1921\u0003\u0002\u0002\u0002\u1921\u1922\u0003\u0002", + "\u0002\u0002\u1922\u1923\u0007l\u0002\u0002\u1923\u01e3\u0003\u0002", + "\u0002\u0002\u1924\u1928\u0007\u0321\u0002\u0002\u1925\u1926\u0005\u03c6", + "\u01e4\u0002\u1926\u1927\u0007\u0337\u0002\u0002\u1927\u1929\u0003\u0002", + "\u0002\u0002\u1928\u1925\u0003\u0002\u0002\u0002\u1928\u1929\u0003\u0002", + "\u0002\u0002\u1929\u192b\u0003\u0002\u0002\u0002\u192a\u192c\u0007\u0010", + "\u0002\u0002\u192b\u192a\u0003\u0002\u0002\u0002\u192b\u192c\u0003\u0002", + "\u0002\u0002\u192c\u192d\u0003\u0002\u0002\u0002\u192d\u192f\u0005\u03be", + "\u01e0\u0002\u192e\u1930\u0007\u0170\u0002\u0002\u192f\u192e\u0003\u0002", + "\u0002\u0002\u192f\u1930\u0003\u0002\u0002\u0002\u1930\u1933\u0003\u0002", + "\u0002\u0002\u1931\u1932\u0007\u032a\u0002\u0002\u1932\u1934\u0005\u03c0", + "\u01e1\u0002\u1933\u1931\u0003\u0002\u0002\u0002\u1933\u1934\u0003\u0002", + "\u0002\u0002\u1934\u1936\u0003\u0002\u0002\u0002\u1935\u1937\t;\u0002", + "\u0002\u1936\u1935\u0003\u0002\u0002\u0002\u1936\u1937\u0003\u0002\u0002", + "\u0002\u1937\u01e5\u0003\u0002\u0002\u0002\u1938\u193c\u0007\u01ec\u0002", + "\u0002\u1939\u193c\u0007\u02a3\u0002\u0002\u193a\u193c\u0005\u02ae\u0158", + "\u0002\u193b\u1938\u0003\u0002\u0002\u0002\u193b\u1939\u0003\u0002\u0002", + "\u0002\u193b\u193a\u0003\u0002\u0002\u0002\u193c\u01e7\u0003\u0002\u0002", + "\u0002\u193d\u194a\u0007\u01ec\u0002\u0002\u193e\u194a\u0007\u02be\u0002", + "\u0002\u193f\u1940\u0007\u011b\u0002\u0002\u1940\u1941\u0007\u00df\u0002", + "\u0002\u1941\u1942\u0007\u00e5\u0002\u0002\u1942\u1943\u0007\u00df\u0002", + "\u0002\u1943\u194a\u0007\u0220\u0002\u0002\u1944\u1945\u0007(\u0002", + "\u0002\u1945\u1946\u0007\u00e5\u0002\u0002\u1946\u1947\u0007\u00df\u0002", + "\u0002\u1947\u194a\u0007\u0220\u0002\u0002\u1948\u194a\u0005\u02ae\u0158", + "\u0002\u1949\u193d\u0003\u0002\u0002\u0002\u1949\u193e\u0003\u0002\u0002", + "\u0002\u1949\u193f\u0003\u0002\u0002\u0002\u1949\u1944\u0003\u0002\u0002", + "\u0002\u1949\u1948\u0003\u0002\u0002\u0002\u194a\u01e9\u0003\u0002\u0002", + "\u0002\u194b\u194c\u0007I\u0002\u0002\u194c\u194d\u0007\u0148\u0002", + "\u0002\u194d\u194e\u0005\u03c6\u01e4\u0002\u194e\u194f\u0007\u00e5\u0002", + "\u0002\u194f\u1950\u0005\u0338\u019d\u0002\u1950\u1951\u0007\u033c\u0002", + "\u0002\u1951\u1952\u0005\u039e\u01d0\u0002\u1952\u1965\u0007\u033d\u0002", + "\u0002\u1953\u1959\u0007\u0179\u0002\u0002\u1954\u195a\u0007\u0208\u0002", + "\u0002\u1955\u1956\u0007\u02bd\u0002\u0002\u1956\u1957\u0007\u0322\u0002", + "\u0002\u1957\u195a\t<\u0002\u0002\u1958\u195a\u0007\u02df\u0002\u0002", + "\u1959\u1954\u0003\u0002\u0002\u0002\u1959\u1955\u0003\u0002\u0002\u0002", + "\u1959\u1958\u0003\u0002\u0002\u0002\u195a\u195d\u0003\u0002\u0002\u0002", + "\u195b\u195c\u0007\u033e\u0002\u0002\u195c\u195e\u0007\u026a\u0002\u0002", + "\u195d\u195b\u0003\u0002\u0002\u0002\u195d\u195e\u0003\u0002\u0002\u0002", + "\u195e\u1963\u0003\u0002\u0002\u0002\u195f\u1960\u0007\u033e\u0002\u0002", + "\u1960\u1961\u0007\u021e\u0002\u0002\u1961\u1962\u0007\u032a\u0002\u0002", + "\u1962\u1964\u0005\u03a2\u01d2\u0002\u1963\u195f\u0003\u0002\u0002\u0002", + "\u1963\u1964\u0003\u0002\u0002\u0002\u1964\u1966\u0003\u0002\u0002\u0002", + "\u1965\u1953\u0003\u0002\u0002\u0002\u1965\u1966\u0003\u0002\u0002\u0002", + "\u1966\u1968\u0003\u0002\u0002\u0002\u1967\u1969\u0007\u033f\u0002\u0002", + "\u1968\u1967\u0003\u0002\u0002\u0002\u1968\u1969\u0003\u0002\u0002\u0002", + "\u1969\u01eb\u0003\u0002\u0002\u0002\u196a\u196c\u0007\u0169\u0002\u0002", + "\u196b\u196d\t=\u0002\u0002\u196c\u196b\u0003\u0002\u0002\u0002\u196c", + "\u196d\u0003\u0002\u0002\u0002\u196d\u196e\u0003\u0002\u0002\u0002\u196e", + "\u196f\u0007\u0148\u0002\u0002\u196f\u1971\u0005\u038c\u01c7\u0002\u1970", + "\u1972\u0005\u03c6\u01e4\u0002\u1971\u1970\u0003\u0002\u0002\u0002\u1971", + "\u1972\u0003\u0002\u0002\u0002\u1972\u1976\u0003\u0002\u0002\u0002\u1973", + "\u1974\u0007\u0308\u0002\u0002\u1974\u1975\u0007\u0322\u0002\u0002\u1975", + "\u1977\u0007\u016f\u0002\u0002\u1976\u1973\u0003\u0002\u0002\u0002\u1976", + "\u1977\u0003\u0002\u0002\u0002\u1977\u01ed\u0003\u0002\u0002\u0002\u1978", + "\u1979\u0007I\u0002\u0002\u1979\u197a\u0007\u0153\u0002\u0002\u197a", + "\u197b\u0005\u038e\u01c8\u0002\u197b\u197c\u0007\u033c\u0002\u0002\u197c", + "\u197e\u0005\u02b8\u015d\u0002\u197d\u197f\u0007\u033e\u0002\u0002\u197e", + "\u197d\u0003\u0002\u0002\u0002\u197e\u197f\u0003\u0002\u0002\u0002\u197f", + "\u1980\u0003\u0002\u0002\u0002\u1980\u1983\u0007\u033d\u0002\u0002\u1981", + "\u1982\u0007\u0239\u0002\u0002\u1982\u1984\u0005\u03c8\u01e5\u0002\u1983", + "\u1981\u0003\u0002\u0002\u0002\u1983\u1984\u0003\u0002\u0002\u0002\u1984", + "\u1988\u0003\u0002\u0002\u0002\u1985\u1987\u0005\u01f0\u00f9\u0002\u1986", + "\u1985\u0003\u0002\u0002\u0002\u1987\u198a\u0003\u0002\u0002\u0002\u1988", + "\u1986\u0003\u0002\u0002\u0002\u1988\u1989\u0003\u0002\u0002\u0002\u1989", + "\u198e\u0003\u0002\u0002\u0002\u198a\u1988\u0003\u0002\u0002\u0002\u198b", + "\u198c\u0007\u00e5\u0002\u0002\u198c\u198f\u0005\u03c6\u01e4\u0002\u198d", + "\u198f\u0007Y\u0002\u0002\u198e\u198b\u0003\u0002\u0002\u0002\u198e", + "\u198d\u0003\u0002\u0002\u0002\u198e\u198f\u0003\u0002\u0002\u0002\u198f", + "\u1993\u0003\u0002\u0002\u0002\u1990\u1991\u0007\u02f2\u0002\u0002\u1991", + "\u1994\u0005\u03c6\u01e4\u0002\u1992\u1994\u0007Y\u0002\u0002\u1993", + "\u1990\u0003\u0002\u0002\u0002\u1993\u1992\u0003\u0002\u0002\u0002\u1993", + "\u1994\u0003\u0002\u0002\u0002\u1994\u1996\u0003\u0002\u0002\u0002\u1995", + "\u1997\u0007\u033f\u0002\u0002\u1996\u1995\u0003\u0002\u0002\u0002\u1996", + "\u1997\u0003\u0002\u0002\u0002\u1997\u01ef\u0003\u0002\u0002\u0002\u1998", + "\u19ac\u0007\u0179\u0002\u0002\u1999\u199a\u0007\u033c\u0002\u0002\u199a", + "\u199f\u0005\u02ca\u0166\u0002\u199b\u199c\u0007\u033e\u0002\u0002\u199c", + "\u199e\u0005\u02ca\u0166\u0002\u199d\u199b\u0003\u0002\u0002\u0002\u199e", + "\u19a1\u0003\u0002\u0002\u0002\u199f\u199d\u0003\u0002\u0002\u0002\u199f", + "\u19a0\u0003\u0002\u0002\u0002\u19a0\u19a2\u0003\u0002\u0002\u0002\u19a1", + "\u199f\u0003\u0002\u0002\u0002\u19a2\u19a3\u0007\u033d\u0002\u0002\u19a3", + "\u19ad\u0003\u0002\u0002\u0002\u19a4\u19a9\u0005\u02ca\u0166\u0002\u19a5", + "\u19a6\u0007\u033e\u0002\u0002\u19a6\u19a8\u0005\u02ca\u0166\u0002\u19a7", + "\u19a5\u0003\u0002\u0002\u0002\u19a8\u19ab\u0003\u0002\u0002\u0002\u19a9", + "\u19a7\u0003\u0002\u0002\u0002\u19a9\u19aa\u0003\u0002\u0002\u0002\u19aa", + "\u19ad\u0003\u0002\u0002\u0002\u19ab\u19a9\u0003\u0002\u0002\u0002\u19ac", + "\u1999\u0003\u0002\u0002\u0002\u19ac\u19a4\u0003\u0002\u0002\u0002\u19ad", + "\u01f1\u0003\u0002\u0002\u0002\u19ae\u19af\u0007I\u0002\u0002\u19af", + "\u19b0\u0007\u0172\u0002\u0002\u19b0\u19b5\u0005\u0390\u01c9\u0002\u19b1", + "\u19b2\u0007\u033c\u0002\u0002\u19b2\u19b3\u0005\u039e\u01d0\u0002\u19b3", + "\u19b4\u0007\u033d\u0002\u0002\u19b4\u19b6\u0003\u0002\u0002\u0002\u19b5", + "\u19b1\u0003\u0002\u0002\u0002\u19b5\u19b6\u0003\u0002\u0002\u0002\u19b6", + "\u19c0\u0003\u0002\u0002\u0002\u19b7\u19b8\u0007\u0179\u0002\u0002\u19b8", + "\u19bd\u0005\u01f4\u00fb\u0002\u19b9\u19ba\u0007\u033e\u0002\u0002\u19ba", + "\u19bc\u0005\u01f4\u00fb\u0002\u19bb\u19b9\u0003\u0002\u0002\u0002\u19bc", + "\u19bf\u0003\u0002\u0002\u0002\u19bd\u19bb\u0003\u0002\u0002\u0002\u19bd", + "\u19be\u0003\u0002\u0002\u0002\u19be\u19c1\u0003\u0002\u0002\u0002\u19bf", + "\u19bd\u0003\u0002\u0002\u0002\u19c0\u19b7\u0003\u0002\u0002\u0002\u19c0", + "\u19c1\u0003\u0002\u0002\u0002\u19c1\u19c2\u0003\u0002\u0002\u0002\u19c2", + "\u19c3\u0007\u0010\u0002\u0002\u19c3\u19c7\u0005\u01be\u00e0\u0002\u19c4", + "\u19c5\u0007\u0179\u0002\u0002\u19c5\u19c6\u0007.\u0002\u0002\u19c6", + "\u19c8\u0007\u00ec\u0002\u0002\u19c7\u19c4\u0003\u0002\u0002\u0002\u19c7", + "\u19c8\u0003\u0002\u0002\u0002\u19c8\u19ca\u0003\u0002\u0002\u0002\u19c9", + "\u19cb\u0007\u033f\u0002\u0002\u19ca\u19c9\u0003\u0002\u0002\u0002\u19ca", + "\u19cb\u0003\u0002\u0002\u0002\u19cb\u01f3\u0003\u0002\u0002\u0002\u19cc", + "\u19cd\t>\u0002\u0002\u19cd\u01f5\u0003\u0002\u0002\u0002\u19ce\u19cf", + "\u0007\n\u0002\u0002\u19cf\u19d0\u0007\u0153\u0002\u0002\u19d0\u19fc", + "\u0005\u038e\u01c8\u0002\u19d1\u19d2\u0007\u013b\u0002\u0002\u19d2\u19d3", + "\u0007\u033c\u0002\u0002\u19d3\u19d4\u0007\u023a\u0002\u0002\u19d4\u19d5", + "\u0007\u032a\u0002\u0002\u19d5\u19d6\t?\u0002\u0002\u19d6\u19fd\u0007", + "\u033d\u0002\u0002\u19d7\u19d8\u0007\u0004\u0002\u0002\u19d8\u19fd\u0005", + "\u02ba\u015e\u0002\u19d9\u19da\u0007\n\u0002\u0002\u19da\u19db\u0007", + "8\u0002\u0002\u19db\u19fd\u0005\u02bc\u015f\u0002\u19dc\u19dd\u0007", + "g\u0002\u0002\u19dd\u19de\u00078\u0002\u0002\u19de\u19fd\u0005\u03c6", + "\u01e4\u0002\u19df\u19e0\u0007g\u0002\u0002\u19e0\u19e1\u0007=\u0002", + "\u0002\u19e1\u19fd\u0005\u03c6\u01e4\u0002\u19e2\u19e3\u0007\u0179\u0002", + "\u0002\u19e3\u19e4\u0007.\u0002\u0002\u19e4\u19e5\u0007\u0004\u0002", + "\u0002\u19e5\u19e6\u0007=\u0002\u0002\u19e6\u19e7\u0005\u03c6\u01e4", + "\u0002\u19e7\u19e8\u0007\u0088\u0002\u0002\u19e8\u19e9\u0007\u00ac\u0002", + "\u0002\u19e9\u19ea\u0007\u033c\u0002\u0002\u19ea\u19eb\u0005\u039e\u01d0", + "\u0002\u19eb\u19ec\u0007\u033d\u0002\u0002\u19ec\u19ed\u0007\u010e\u0002", + "\u0002\u19ed\u19ee\u0005\u038e\u01c8\u0002\u19ee\u19ef\u0007\u033c\u0002", + "\u0002\u19ef\u19f0\u0005\u039e\u01d0\u0002\u19f0\u19f1\u0007\u033d\u0002", + "\u0002\u19f1\u19fd\u0003\u0002\u0002\u0002\u19f2\u19f3\u0007.\u0002", + "\u0002\u19f3\u19f4\u0007=\u0002\u0002\u19f4\u19fd\u0005\u03c6\u01e4", + "\u0002\u19f5\u19f6\t\u0017\u0002\u0002\u19f6\u19f8\u0007\u0160\u0002", + "\u0002\u19f7\u19f9\u0005\u03c6\u01e4\u0002\u19f8\u19f7\u0003\u0002\u0002", + "\u0002\u19f8\u19f9\u0003\u0002\u0002\u0002\u19f9\u19fd\u0003\u0002\u0002", + "\u0002\u19fa\u19fb\u0007\u02a1\u0002\u0002\u19fb\u19fd\u0005\u01f0\u00f9", + "\u0002\u19fc\u19d1\u0003\u0002\u0002\u0002\u19fc\u19d7\u0003\u0002\u0002", + "\u0002\u19fc\u19d9\u0003\u0002\u0002\u0002\u19fc\u19dc\u0003\u0002\u0002", + "\u0002\u19fc\u19df\u0003\u0002\u0002\u0002\u19fc\u19e2\u0003\u0002\u0002", + "\u0002\u19fc\u19f2\u0003\u0002\u0002\u0002\u19fc\u19f5\u0003\u0002\u0002", + "\u0002\u19fc\u19fa\u0003\u0002\u0002\u0002\u19fd\u19ff\u0003\u0002\u0002", + "\u0002\u19fe\u1a00\u0007\u033f\u0002\u0002\u19ff\u19fe\u0003\u0002\u0002", + "\u0002\u19ff\u1a00\u0003\u0002\u0002\u0002\u1a00\u01f7\u0003\u0002\u0002", + "\u0002\u1a01\u1a02\u0007\n\u0002\u0002\u1a02\u1a05\u0007T\u0002\u0002", + "\u1a03\u1a06\u0005\u03c6\u01e4\u0002\u1a04\u1a06\u0007K\u0002\u0002", + "\u1a05\u1a03\u0003\u0002\u0002\u0002\u1a05\u1a04\u0003\u0002\u0002\u0002", + "\u1a06\u1a13\u0003\u0002\u0002\u0002\u1a07\u1a08\u0007\u025a\u0002\u0002", + "\u1a08\u1a09\u0007\u025d\u0002\u0002\u1a09\u1a0a\u0007\u032a\u0002\u0002", + "\u1a0a\u1a14\u0005\u03c6\u01e4\u0002\u1a0b\u1a0c\u00077\u0002\u0002", + "\u1a0c\u1a14\u0005\u03c6\u01e4\u0002\u1a0d\u1a0e\u0007\u013b\u0002\u0002", + "\u1a0e\u1a11\u0005\u01fa\u00fe\u0002\u1a0f\u1a10\u0007\u0179\u0002\u0002", + "\u1a10\u1a12\u0005\u0240\u0121\u0002\u1a11\u1a0f\u0003\u0002\u0002\u0002", + "\u1a11\u1a12\u0003\u0002\u0002\u0002\u1a12\u1a14\u0003\u0002\u0002\u0002", + "\u1a13\u1a07\u0003\u0002\u0002\u0002\u1a13\u1a0b\u0003\u0002\u0002\u0002", + "\u1a13\u1a0d\u0003\u0002\u0002\u0002\u1a14\u1a16\u0003\u0002\u0002\u0002", + "\u1a15\u1a17\u0007\u033f\u0002\u0002\u1a16\u1a15\u0003\u0002\u0002\u0002", + "\u1a16\u1a17\u0003\u0002\u0002\u0002\u1a17\u01f9\u0003\u0002\u0002\u0002", + "\u1a18\u1a30\u0005\u01fc\u00ff\u0002\u1a19\u1a30\u0005\u01fe\u0100\u0002", + "\u1a1a\u1a30\u0005\u0202\u0102\u0002\u1a1b\u1a30\u0005\u0204\u0103\u0002", + "\u1a1c\u1a30\u0005\u0208\u0105\u0002\u1a1d\u1a30\u0005\u0222\u0112\u0002", + "\u1a1e\u1a30\u0005\u0224\u0113\u0002\u1a1f\u1a30\u0005\u0226\u0114\u0002", + "\u1a20\u1a30\u0005\u0228\u0115\u0002\u1a21\u1a30\u0005\u022a\u0116\u0002", + "\u1a22\u1a30\u0005\u022c\u0117\u0002\u1a23\u1a30\u0005\u022e\u0118\u0002", + "\u1a24\u1a25\u0007\u01fe\u0002\u0002\u1a25\u1a30\u0005\u037e\u01c0\u0002", + "\u1a26\u1a30\u0005\u0230\u0119\u0002\u1a27\u1a30\u0005\u0232\u011a\u0002", + "\u1a28\u1a30\u0005\u0234\u011b\u0002\u1a29\u1a30\u0005\u0236\u011c\u0002", + "\u1a2a\u1a30\u0005\u0238\u011d\u0002\u1a2b\u1a30\u0005\u023a\u011e\u0002", + "\u1a2c\u1a30\u0005\u023c\u011f\u0002\u1a2d\u1a30\u0005\u023e\u0120\u0002", + "\u1a2e\u1a30\u0005\u0240\u0121\u0002\u1a2f\u1a18\u0003\u0002\u0002\u0002", + "\u1a2f\u1a19\u0003\u0002\u0002\u0002\u1a2f\u1a1a\u0003\u0002\u0002\u0002", + "\u1a2f\u1a1b\u0003\u0002\u0002\u0002\u1a2f\u1a1c\u0003\u0002\u0002\u0002", + "\u1a2f\u1a1d\u0003\u0002\u0002\u0002\u1a2f\u1a1e\u0003\u0002\u0002\u0002", + "\u1a2f\u1a1f\u0003\u0002\u0002\u0002\u1a2f\u1a20\u0003\u0002\u0002\u0002", + "\u1a2f\u1a21\u0003\u0002\u0002\u0002\u1a2f\u1a22\u0003\u0002\u0002\u0002", + "\u1a2f\u1a23\u0003\u0002\u0002\u0002\u1a2f\u1a24\u0003\u0002\u0002\u0002", + "\u1a2f\u1a26\u0003\u0002\u0002\u0002\u1a2f\u1a27\u0003\u0002\u0002\u0002", + "\u1a2f\u1a28\u0003\u0002\u0002\u0002\u1a2f\u1a29\u0003\u0002\u0002\u0002", + "\u1a2f\u1a2a\u0003\u0002\u0002\u0002\u1a2f\u1a2b\u0003\u0002\u0002\u0002", + "\u1a2f\u1a2c\u0003\u0002\u0002\u0002\u1a2f\u1a2d\u0003\u0002\u0002\u0002", + "\u1a2f\u1a2e\u0003\u0002\u0002\u0002\u1a30\u01fb\u0003\u0002\u0002\u0002", + "\u1a31\u1a32\u0007\u019a\u0002\u0002\u1a32\u1a43\u0005\u03a2\u01d2\u0002", + "\u1a33\u1a34\u0007\u019b\u0002\u0002\u1a34\u1a43\u0007\u00e2\u0002\u0002", + "\u1a35\u1a3a\u0007\u00e5\u0002\u0002\u1a36\u1a37\u0007\u021e\u0002\u0002", + "\u1a37\u1a38\u0007\u032a\u0002\u0002\u1a38\u1a3b\u0007\u00e5\u0002\u0002", + "\u1a39\u1a3b\u0007\u00e2\u0002\u0002\u1a3a\u1a36\u0003\u0002\u0002\u0002", + "\u1a3a\u1a39\u0003\u0002\u0002\u0002\u1a3b\u1a43\u0003\u0002\u0002\u0002", + "\u1a3c\u1a3d\u0007\u019c\u0002\u0002\u1a3d\u1a43\u0005\u03a2\u01d2\u0002", + "\u1a3e\u1a3f\u0007\u019d\u0002\u0002\u1a3f\u1a43\u0005\u03a2\u01d2\u0002", + "\u1a40\u1a41\u0007\u019e\u0002\u0002\u1a41\u1a43\t\t\u0002\u0002\u1a42", + "\u1a31\u0003\u0002\u0002\u0002\u1a42\u1a33\u0003\u0002\u0002\u0002\u1a42", + "\u1a35\u0003\u0002\u0002\u0002\u1a42\u1a3c\u0003\u0002\u0002\u0002\u1a42", + "\u1a3e\u0003\u0002\u0002\u0002\u1a42\u1a40\u0003\u0002\u0002\u0002\u1a43", + "\u01fd\u0003\u0002\u0002\u0002\u1a44\u1a45\u0007\u01b1\u0002\u0002\u1a45", + "\u1a55\u0007\u032a\u0002\u0002\u1a46\u1a56\u0007\u00e2\u0002\u0002\u1a47", + "\u1a52\u0007\u00e5\u0002\u0002\u1a48\u1a4d\u0005\u0200\u0101\u0002\u1a49", + "\u1a4a\u0007\u033e\u0002\u0002\u1a4a\u1a4c\u0005\u0200\u0101\u0002\u1a4b", + "\u1a49\u0003\u0002\u0002\u0002\u1a4c\u1a4f\u0003\u0002\u0002\u0002\u1a4d", + "\u1a4b\u0003\u0002\u0002\u0002\u1a4d\u1a4e\u0003\u0002\u0002\u0002\u1a4e", + "\u1a51\u0003\u0002\u0002\u0002\u1a4f\u1a4d\u0003\u0002\u0002\u0002\u1a50", + "\u1a48\u0003\u0002\u0002\u0002\u1a51\u1a54\u0003\u0002\u0002\u0002\u1a52", + "\u1a50\u0003\u0002\u0002\u0002\u1a52\u1a53\u0003\u0002\u0002\u0002\u1a53", + "\u1a56\u0003\u0002\u0002\u0002\u1a54\u1a52\u0003\u0002\u0002\u0002\u1a55", + "\u1a46\u0003\u0002\u0002\u0002\u1a55\u1a47\u0003\u0002\u0002\u0002\u1a56", + "\u01ff\u0003\u0002\u0002\u0002\u1a57\u1a58\u0007\u0199\u0002\u0002\u1a58", + "\u1a59\u0007\u032a\u0002\u0002\u1a59\u1a5e\u0005\u03a2\u01d2\u0002\u1a5a", + "\u1a5b\u0007\u01b0\u0002\u0002\u1a5b\u1a5c\u0007\u032a\u0002\u0002\u1a5c", + "\u1a5e\t@\u0002\u0002\u1a5d\u1a57\u0003\u0002\u0002\u0002\u1a5d\u1a5a", + "\u0003\u0002\u0002\u0002\u1a5e\u0201\u0003\u0002\u0002\u0002\u1a5f\u1a60", + "\u0007>\u0002\u0002\u1a60\u1a61\u0007\u032a\u0002\u0002\u1a61\u1a62", + "\t7\u0002\u0002\u1a62\u0203\u0003\u0002\u0002\u0002\u1a63\u1a64\u0007", + "\u01c6\u0002\u0002\u1a64\u1a68\u0005\u03a2\u01d2\u0002\u1a65\u1a66\u0007", + "\u01c7\u0002\u0002\u1a66\u1a68\tA\u0002\u0002\u1a67\u1a63\u0003\u0002", + "\u0002\u0002\u1a67\u1a65\u0003\u0002\u0002\u0002\u1a68\u0205\u0003\u0002", + "\u0002\u0002\u1a69\u1a6a\u0007\n\u0002\u0002\u1a6a\u1a6b\u0007m\u0002", + "\u0002\u1a6b\u1a6e\u0005\u03c6\u01e4\u0002\u1a6c\u1a6d\u0007\u0014\u0002", + "\u0002\u1a6d\u1a6f\u0005\u03c6\u01e4\u0002\u1a6e\u1a6c\u0003\u0002\u0002", + "\u0002\u1a6e\u1a6f\u0003\u0002\u0002\u0002\u1a6f\u1a77\u0003\u0002\u0002", + "\u0002\u1a70\u1a71\u0007\u0149\u0002\u0002\u1a71\u1a75\u0007\u032a\u0002", + "\u0002\u1a72\u1a76\u0007\u014c\u0002\u0002\u1a73\u1a76\u0007\u014f\u0002", + "\u0002\u1a74\u1a76\u0007\u01e2\u0002\u0002\u1a75\u1a72\u0003\u0002\u0002", + "\u0002\u1a75\u1a73\u0003\u0002\u0002\u0002\u1a75\u1a74\u0003\u0002\u0002", + "\u0002\u1a76\u1a78\u0003\u0002\u0002\u0002\u1a77\u1a70\u0003\u0002\u0002", + "\u0002\u1a77\u1a78\u0003\u0002\u0002\u0002\u1a78\u1a79\u0003\u0002\u0002", + "\u0002\u1a79\u1a7a\u0007\u0010\u0002\u0002\u1a7a\u1a7b\u0007\u0157\u0002", + "\u0002\u1a7b\u1a7c\u0007\u033c\u0002\u0002\u1a7c\u1a7d\u0007\u00b8\u0002", + "\u0002\u1a7d\u1a7e\u0007\u032a\u0002\u0002\u1a7e\u1a83\u0007\u0322\u0002", + "\u0002\u1a7f\u1a80\u0007\u033e\u0002\u0002\u1a80\u1a81\u0007\u00b7\u0002", + "\u0002\u1a81\u1a82\u0007\u032a\u0002\u0002\u1a82\u1a84\tB\u0002\u0002", + "\u1a83\u1a7f\u0003\u0002\u0002\u0002\u1a83\u1a84\u0003\u0002\u0002\u0002", + "\u1a84\u1a85\u0003\u0002\u0002\u0002\u1a85\u1af3\u0007\u033d\u0002\u0002", + "\u1a86\u1af4\u0007\u02ff\u0002\u0002\u1a87\u1a88\u0007\u0085\u0002\u0002", + "\u1a88\u1a89\u0007\u0137\u0002\u0002\u1a89\u1a8a\u0007\u033c\u0002\u0002", + "\u1a8a\u1a8b\u0007\u0015\u0002\u0002\u1a8b\u1a9c\u0007\u032a\u0002\u0002", + "\u1a8c\u1a8e\u0007\u0178\u0002\u0002\u1a8d\u1a8f\tC\u0002\u0002\u1a8e", + "\u1a8d\u0003\u0002\u0002\u0002\u1a8e\u1a8f\u0003\u0002\u0002\u0002\u1a8f", + "\u1a92\u0003\u0002\u0002\u0002\u1a90\u1a91\u0007+\u0002\u0002\u1a91", + "\u1a93\u0005\u03c6\u01e4\u0002\u1a92\u1a90\u0003\u0002\u0002\u0002\u1a92", + "\u1a93\u0003\u0002\u0002\u0002\u1a93\u1a9d\u0003\u0002\u0002\u0002\u1a94", + "\u1a95\u0007+\u0002\u0002\u1a95\u1a97\u0005\u03c6\u01e4\u0002\u1a96", + "\u1a98\u0007\u0178\u0002\u0002\u1a97\u1a96\u0003\u0002\u0002\u0002\u1a97", + "\u1a98\u0003\u0002\u0002\u0002\u1a98\u1a9a\u0003\u0002\u0002\u0002\u1a99", + "\u1a9b\tC\u0002\u0002\u1a9a\u1a99\u0003\u0002\u0002\u0002\u1a9a\u1a9b", + "\u0003\u0002\u0002\u0002\u1a9b\u1a9d\u0003\u0002\u0002\u0002\u1a9c\u1a8c", + "\u0003\u0002\u0002\u0002\u1a9c\u1a94\u0003\u0002\u0002\u0002\u1a9d\u1aaf", + "\u0003\u0002\u0002\u0002\u1a9e\u1aa0\u0007\u033e\u0002\u0002\u1a9f\u1a9e", + "\u0003\u0002\u0002\u0002\u1a9f\u1aa0\u0003\u0002\u0002\u0002\u1aa0\u1aa1", + "\u0003\u0002\u0002\u0002\u1aa1\u1aa2\u0007\u01ec\u0002\u0002\u1aa2\u1aa3", + "\u0007\u032a\u0002\u0002\u1aa3\u1aad\tD\u0002\u0002\u1aa4\u1aab\u0007", + "\u018a\u0002\u0002\u1aa5\u1aac\u0007\u0005\u0002\u0002\u1aa6\u1aac\u0007", + "\u029a\u0002\u0002\u1aa7\u1aa8\u0007\u0005\u0002\u0002\u1aa8\u1aac\u0007", + "\u029a\u0002\u0002\u1aa9\u1aaa\u0007\u029a\u0002\u0002\u1aaa\u1aac\u0007", + "\u0005\u0002\u0002\u1aab\u1aa5\u0003\u0002\u0002\u0002\u1aab\u1aa6\u0003", + "\u0002\u0002\u0002\u1aab\u1aa7\u0003\u0002\u0002\u0002\u1aab\u1aa9\u0003", + "\u0002\u0002\u0002\u1aac\u1aae\u0003\u0002\u0002\u0002\u1aad\u1aa4\u0003", + "\u0002\u0002\u0002\u1aad\u1aae\u0003\u0002\u0002\u0002\u1aae\u1ab0\u0003", + "\u0002\u0002\u0002\u1aaf\u1a9f\u0003\u0002\u0002\u0002\u1aaf\u1ab0\u0003", + "\u0002\u0002\u0002\u1ab0\u1ab7\u0003\u0002\u0002\u0002\u1ab1\u1ab3\u0007", + "\u033e\u0002\u0002\u1ab2\u1ab1\u0003\u0002\u0002\u0002\u1ab2\u1ab3\u0003", + "\u0002\u0002\u0002\u1ab3\u1ab4\u0003\u0002\u0002\u0002\u1ab4\u1ab5\u0007", + "\u00ca\u0002\u0002\u1ab5\u1ab6\u0007\u032a\u0002\u0002\u1ab6\u1ab8\t", + "E\u0002\u0002\u1ab7\u1ab2\u0003\u0002\u0002\u0002\u1ab7\u1ab8\u0003", + "\u0002\u0002\u0002\u1ab8\u1abf\u0003\u0002\u0002\u0002\u1ab9\u1abb\u0007", + "\u033e\u0002\u0002\u1aba\u1ab9\u0003\u0002\u0002\u0002\u1aba\u1abb\u0003", + "\u0002\u0002\u0002\u1abb\u1abc\u0003\u0002\u0002\u0002\u1abc\u1abd\u0007", + "\u00cb\u0002\u0002\u1abd\u1abe\u0007\u032a\u0002\u0002\u1abe\u1ac0\u0007", + "\u0322\u0002\u0002\u1abf\u1aba\u0003\u0002\u0002\u0002\u1abf\u1ac0\u0003", + "\u0002\u0002\u0002\u1ac0\u1ac1\u0003\u0002\u0002\u0002\u1ac1\u1af4\u0007", + "\u033d\u0002\u0002\u1ac2\u1ac3\u0007\u0085\u0002\u0002\u1ac3\u1ac4\u0007", + "U\u0002\u0002\u1ac4\u1ac5\u0007\u033c\u0002\u0002\u1ac5\u1ac6\u0007", + "\u0015\u0002\u0002\u1ac6\u1ad7\u0007\u032a\u0002\u0002\u1ac7\u1ac9\u0007", + "\u0178\u0002\u0002\u1ac8\u1aca\tC\u0002\u0002\u1ac9\u1ac8\u0003\u0002", + "\u0002\u0002\u1ac9\u1aca\u0003\u0002\u0002\u0002\u1aca\u1acd\u0003\u0002", + "\u0002\u0002\u1acb\u1acc\u0007+\u0002\u0002\u1acc\u1ace\u0005\u03c6", + "\u01e4\u0002\u1acd\u1acb\u0003\u0002\u0002\u0002\u1acd\u1ace\u0003\u0002", + "\u0002\u0002\u1ace\u1ad8\u0003\u0002\u0002\u0002\u1acf\u1ad0\u0007+", + "\u0002\u0002\u1ad0\u1ad2\u0005\u03c6\u01e4\u0002\u1ad1\u1ad3\u0007\u0178", + "\u0002\u0002\u1ad2\u1ad1\u0003\u0002\u0002\u0002\u1ad2\u1ad3\u0003\u0002", + "\u0002\u0002\u1ad3\u1ad5\u0003\u0002\u0002\u0002\u1ad4\u1ad6\tC\u0002", + "\u0002\u1ad5\u1ad4\u0003\u0002\u0002\u0002\u1ad5\u1ad6\u0003\u0002\u0002", + "\u0002\u1ad6\u1ad8\u0003\u0002\u0002\u0002\u1ad7\u1ac7\u0003\u0002\u0002", + "\u0002\u1ad7\u1acf\u0003\u0002\u0002\u0002\u1ad8\u1aea\u0003\u0002\u0002", + "\u0002\u1ad9\u1adb\u0007\u033e\u0002\u0002\u1ada\u1ad9\u0003\u0002\u0002", + "\u0002\u1ada\u1adb\u0003\u0002\u0002\u0002\u1adb\u1adc\u0003\u0002\u0002", + "\u0002\u1adc\u1add\u0007\u01ec\u0002\u0002\u1add\u1ade\u0007\u032a\u0002", + "\u0002\u1ade\u1ae8\tD\u0002\u0002\u1adf\u1ae6\u0007\u018a\u0002\u0002", + "\u1ae0\u1ae7\u0007\u0005\u0002\u0002\u1ae1\u1ae7\u0007\u029a\u0002\u0002", + "\u1ae2\u1ae3\u0007\u0005\u0002\u0002\u1ae3\u1ae7\u0007\u029a\u0002\u0002", + "\u1ae4\u1ae5\u0007\u029a\u0002\u0002\u1ae5\u1ae7\u0007\u0005\u0002\u0002", + "\u1ae6\u1ae0\u0003\u0002\u0002\u0002\u1ae6\u1ae1\u0003\u0002\u0002\u0002", + "\u1ae6\u1ae2\u0003\u0002\u0002\u0002\u1ae6\u1ae4\u0003\u0002\u0002\u0002", + "\u1ae7\u1ae9\u0003\u0002\u0002\u0002\u1ae8\u1adf\u0003\u0002\u0002\u0002", + "\u1ae8\u1ae9\u0003\u0002\u0002\u0002\u1ae9\u1aeb\u0003\u0002\u0002\u0002", + "\u1aea\u1ada\u0003\u0002\u0002\u0002\u1aea\u1aeb\u0003\u0002\u0002\u0002", + "\u1aeb\u1aed\u0003\u0002\u0002\u0002\u1aec\u1aee\u0007\u033e\u0002\u0002", + "\u1aed\u1aec\u0003\u0002\u0002\u0002\u1aed\u1aee\u0003\u0002\u0002\u0002", + "\u1aee\u1aef\u0003\u0002\u0002\u0002\u1aef\u1af0\u0007\u0121\u0002\u0002", + "\u1af0\u1af1\u0007\u032a\u0002\u0002\u1af1\u1af2\tF\u0002\u0002\u1af2", + "\u1af4\u0007\u033d\u0002\u0002\u1af3\u1a86\u0003\u0002\u0002\u0002\u1af3", + "\u1a87\u0003\u0002\u0002\u0002\u1af3\u1ac2\u0003\u0002\u0002\u0002\u1af4", + "\u0207\u0003\u0002\u0002\u0002\u1af5\u1af6\u0005\u020a\u0106\u0002\u1af6", + "\u0209\u0003\u0002\u0002\u0002\u1af7\u1af8\u0005\u020c\u0107\u0002\u1af8", + "\u1af9\u0005\u0212\u010a\u0002\u1af9\u1afe\u0003\u0002\u0002\u0002\u1afa", + "\u1afb\u0005\u020e\u0108\u0002\u1afb\u1afc\u0005\u0214\u010b\u0002\u1afc", + "\u1afe\u0003\u0002\u0002\u0002\u1afd\u1af7\u0003\u0002\u0002\u0002\u1afd", + "\u1afa\u0003\u0002\u0002\u0002\u1afe\u020b\u0003\u0002\u0002\u0002\u1aff", + "\u1b00\u0007\u0282\u0002\u0002\u1b00\u020d\u0003\u0002\u0002\u0002\u1b01", + "\u1b02\u0007\u017c\u0002\u0002\u1b02\u020f\u0003\u0002\u0002\u0002\u1b03", + "\u1b04\u0007\u032a\u0002\u0002\u1b04\u0211\u0003\u0002\u0002\u0002\u1b05", + "\u1b06\u0005\u0210\u0109\u0002\u1b06\u1b07\u0005\u0218\u010d\u0002\u1b07", + "\u1b12\u0003\u0002\u0002\u0002\u1b08\u1b12\u0007}\u0002\u0002\u1b09", + "\u1b12\u0007\u0087\u0002\u0002\u1b0a\u1b12\u0007\u00e2\u0002\u0002\u1b0b", + "\u1b12\u0007\u0118\u0002\u0002\u1b0c\u1b0d\u0007\u0129\u0002\u0002\u1b0d", + "\u1b12\tG\u0002\u0002\u1b0e\u1b12\u0007\u02ea\u0002\u0002\u1b0f\u1b10", + "\u0007\u02f6\u0002\u0002\u1b10\u1b12\u0007\u0322\u0002\u0002\u1b11\u1b05", + "\u0003\u0002\u0002\u0002\u1b11\u1b08\u0003\u0002\u0002\u0002\u1b11\u1b09", + "\u0003\u0002\u0002\u0002\u1b11\u1b0a\u0003\u0002\u0002\u0002\u1b11\u1b0b", + "\u0003\u0002\u0002\u0002\u1b11\u1b0c\u0003\u0002\u0002\u0002\u1b11\u1b0e", + "\u0003\u0002\u0002\u0002\u1b11\u1b0f\u0003\u0002\u0002\u0002\u1b12\u0213", + "\u0003\u0002\u0002\u0002\u1b13\u1b14\u0005\u0210\u0109\u0002\u1b14\u1b15", + "\u0005\u0216\u010c\u0002\u1b15\u1b18\u0003\u0002\u0002\u0002\u1b16\u1b18", + "\u0007\u00e2\u0002\u0002\u1b17\u1b13\u0003\u0002\u0002\u0002\u1b17\u1b16", + "\u0003\u0002\u0002\u0002\u1b18\u0215\u0003\u0002\u0002\u0002\u1b19\u1b1a", + "\u0005\u0218\u010d\u0002\u1b1a\u0217\u0003\u0002\u0002\u0002\u1b1b\u1b1c", + "\u0005\u021c\u010f\u0002\u1b1c\u1b1d\u0005\u0220\u0111\u0002\u1b1d\u1b1e", + "\u0005\u021a\u010e\u0002\u1b1e\u1b1f\u0005\u021e\u0110\u0002\u1b1f\u0219", + "\u0003\u0002\u0002\u0002\u1b20\u1b21\u0007\u0340\u0002\u0002\u1b21\u021b", + "\u0003\u0002\u0002\u0002\u1b22\u1b23\u0007\u0157\u0002\u0002\u1b23\u1b24", + "\u0007\u0340\u0002\u0002\u1b24\u1b25\u0007f\u0002\u0002\u1b25\u021d", + "\u0003\u0002\u0002\u0002\u1b26\u1b27\u0007\u0322\u0002\u0002\u1b27\u021f", + "\u0003\u0002\u0002\u0002\u1b28\u1b29\u0005\u03c6\u01e4\u0002\u1b29\u1b2a", + "\u0007\u0337\u0002\u0002\u1b2a\u1b2b\u0005\u0220\u0111\u0002\u1b2b\u1b33", + "\u0003\u0002\u0002\u0002\u1b2c\u1b2d\u0005\u03c6\u01e4\u0002\u1b2d\u1b2e", + "\u0007\u0337\u0002\u0002\u1b2e\u1b31\u0003\u0002\u0002\u0002\u1b2f\u1b31", + "\u0005\u03c6\u01e4\u0002\u1b30\u1b2c\u0003\u0002\u0002\u0002\u1b30\u1b2f", + "\u0003\u0002\u0002\u0002\u1b31\u1b33\u0003\u0002\u0002\u0002\u1b32\u1b28", + "\u0003\u0002\u0002\u0002\u1b32\u1b30\u0003\u0002\u0002\u0002\u1b33\u0221", + "\u0003\u0002\u0002\u0002\u1b34\u1b35\u0007\u01c9\u0002\u0002\u1b35\u1b36", + "\u0005\u03a2\u01d2\u0002\u1b36\u0223\u0003\u0002\u0002\u0002\u1b37\u1b38", + "\u0007\u01ec\u0002\u0002\u1b38\u1b39\u0005\u03a2\u01d2\u0002\u1b39\u0225", + "\u0003\u0002\u0002\u0002\u1b3a\u1b3b\tH\u0002\u0002\u1b3b\u0227\u0003", + "\u0002\u0002\u0002\u1b3c\u1b3d\tI\u0002\u0002\u1b3d\u0229\u0003\u0002", + "\u0002\u0002\u1b3e\u1b3f\tJ\u0002\u0002\u1b3f\u022b\u0003\u0002\u0002", + "\u0002\u1b40\u1b41\u0007\u01d6\u0002\u0002\u1b41\u1b42\u0007\u032a\u0002", + "\u0002\u1b42\u1b43\tK\u0002\u0002\u1b43\u022d\u0003\u0002\u0002\u0002", + "\u1b44\u1b45\u0007\u01cf\u0002\u0002\u1b45\u1b5e\u0005\u03a2\u01d2\u0002", + "\u1b46\u1b47\u0007\u02fd\u0002\u0002\u1b47\u1b5e\u0005\u03a2\u01d2\u0002", + "\u1b48\u1b49\u0007\u01d4\u0002\u0002\u1b49\u1b4c\u0007\u032a\u0002\u0002", + "\u1b4a\u1b4d\u0005\u03c6\u01e4\u0002\u1b4b\u1b4d\u0007\u0326\u0002\u0002", + "\u1b4c\u1b4a\u0003\u0002\u0002\u0002\u1b4c\u1b4b\u0003\u0002\u0002\u0002", + "\u1b4d\u1b5e\u0003\u0002\u0002\u0002\u1b4e\u1b4f\u0007\u01d3\u0002\u0002", + "\u1b4f\u1b52\u0007\u032a\u0002\u0002\u1b50\u1b53\u0005\u03c6\u01e4\u0002", + "\u1b51\u1b53\u0007\u0326\u0002\u0002\u1b52\u1b50\u0003\u0002\u0002\u0002", + "\u1b52\u1b51\u0003\u0002\u0002\u0002\u1b53\u1b5e\u0003\u0002\u0002\u0002", + "\u1b54\u1b55\u0007\u025e\u0002\u0002\u1b55\u1b56\u0007\u032a\u0002\u0002", + "\u1b56\u1b5e\t\t\u0002\u0002\u1b57\u1b58\u0007\u02fa\u0002\u0002\u1b58", + "\u1b59\u0007\u032a\u0002\u0002\u1b59\u1b5e\t\t\u0002\u0002\u1b5a\u1b5b", + "\u0007\u0300\u0002\u0002\u1b5b\u1b5c\u0007\u032a\u0002\u0002\u1b5c\u1b5e", + "\u0007\u0322\u0002\u0002\u1b5d\u1b44\u0003\u0002\u0002\u0002\u1b5d\u1b46", + "\u0003\u0002\u0002\u0002\u1b5d\u1b48\u0003\u0002\u0002\u0002\u1b5d\u1b4e", + "\u0003\u0002\u0002\u0002\u1b5d\u1b54\u0003\u0002\u0002\u0002\u1b5d\u1b57", + "\u0003\u0002\u0002\u0002\u1b5d\u1b5a\u0003\u0002\u0002\u0002\u1b5e\u022f", + "\u0003\u0002\u0002\u0002\u1b5f\u1b68\u0007\u0212\u0002\u0002\u1b60\u1b61", + "\u0007\u019f\u0002\u0002\u1b61\u1b62\u0007\u0092\u0002\u0002\u1b62\u1b63", + "\u0007\u032a\u0002\u0002\u1b63\u1b66\u0005\u03c6\u01e4\u0002\u1b64\u1b66", + "\u0007\u00e2\u0002\u0002\u1b65\u1b60\u0003\u0002\u0002\u0002\u1b65\u1b64", + "\u0003\u0002\u0002\u0002\u1b66\u1b69\u0003\u0002\u0002\u0002\u1b67\u1b69", + "\tL\u0002\u0002\u1b68\u1b65\u0003\u0002\u0002\u0002\u1b68\u1b67\u0003", + "\u0002\u0002\u0002\u1b69\u0231\u0003\u0002\u0002\u0002\u1b6a\u1b6b\u0007", + "\u0258\u0002\u0002\u1b6b\u1b6c\t\t\u0002\u0002\u1b6c\u0233\u0003\u0002", + "\u0002\u0002\u1b6d\u1b6e\u0007\u027f\u0002\u0002\u1b6e\u1b6f\tM\u0002", + "\u0002\u1b6f\u0235\u0003\u0002\u0002\u0002\u1b70\u1b71\u0007\u02a4\u0002", + "\u0002\u1b71\u1b77\tN\u0002\u0002\u1b72\u1b73\u0007\u02f9\u0002\u0002", + "\u1b73\u1b77\u0005\u03a2\u01d2\u0002\u1b74\u1b75\u0007\u027e\u0002\u0002", + "\u1b75\u1b77\tO\u0002\u0002\u1b76\u1b70\u0003\u0002\u0002\u0002\u1b76", + "\u1b72\u0003\u0002\u0002\u0002\u1b76\u1b74\u0003\u0002\u0002\u0002\u1b77", + "\u0237\u0003\u0002\u0002\u0002\u1b78\u1b7f\u0007\u01ea\u0002\u0002\u1b79", + "\u1b7f\u0007\u01e1\u0002\u0002\u1b7a\u1b7f\u0007\u0260\u0002\u0002\u1b7b", + "\u1b7f\u0007\u01ee\u0002\u0002\u1b7c\u1b7d\u0007\u0216\u0002\u0002\u1b7d", + "\u1b7f\u0005\u03a2\u01d2\u0002\u1b7e\u1b78\u0003\u0002\u0002\u0002\u1b7e", + "\u1b79\u0003\u0002\u0002\u0002\u1b7e\u1b7a\u0003\u0002\u0002\u0002\u1b7e", + "\u1b7b\u0003\u0002\u0002\u0002\u1b7e\u1b7c\u0003\u0002\u0002\u0002\u1b7f", + "\u0239\u0003\u0002\u0002\u0002\u1b80\u1b81\u0007\u018c\u0002\u0002\u1b81", + "\u1b86\u0005\u03a2\u01d2\u0002\u1b82\u1b83\u0007\u029c\u0002\u0002\u1b83", + "\u1b86\t\t\u0002\u0002\u1b84\u1b86\t\t\u0002\u0002\u1b85\u1b80\u0003", + "\u0002\u0002\u0002\u1b85\u1b82\u0003\u0002\u0002\u0002\u1b85\u1b84\u0003", + "\u0002\u0002\u0002\u1b86\u023b\u0003\u0002\u0002\u0002\u1b87\u1b88\u0007", + "\u018e\u0002\u0002\u1b88\u1b9d\u0005\u03a2\u01d2\u0002\u1b89\u1b8a\u0007", + "\u018f\u0002\u0002\u1b8a\u1b9d\u0005\u03a2\u01d2\u0002\u1b8b\u1b8c\u0007", + "\u0190\u0002\u0002\u1b8c\u1b9d\u0005\u03a2\u01d2\u0002\u1b8d\u1b8e\u0007", + "\u0191\u0002\u0002\u1b8e\u1b9d\u0005\u03a2\u01d2\u0002\u1b8f\u1b90\u0007", + "\u0194\u0002\u0002\u1b90\u1b9d\u0005\u03a2\u01d2\u0002\u1b91\u1b92\u0007", + "\u01b8\u0002\u0002\u1b92\u1b93\u0007\u032a\u0002\u0002\u1b93\u1b9d\u0007", + "\u0322\u0002\u0002\u1b94\u1b95\u0007\u01ba\u0002\u0002\u1b95\u1b9d\u0005", + "\u03a2\u01d2\u0002\u1b96\u1b97\u0007\u0270\u0002\u0002\u1b97\u1b9d\u0005", + "\u03a2\u01d2\u0002\u1b98\u1b99\u0007\u0296\u0002\u0002\u1b99\u1b9d\u0005", + "\u03a2\u01d2\u0002\u1b9a\u1b9b\u0007\u02a5\u0002\u0002\u1b9b\u1b9d\u0005", + "\u03a2\u01d2\u0002\u1b9c\u1b87\u0003\u0002\u0002\u0002\u1b9c\u1b89\u0003", + "\u0002\u0002\u0002\u1b9c\u1b8b\u0003\u0002\u0002\u0002\u1b9c\u1b8d\u0003", + "\u0002\u0002\u0002\u1b9c\u1b8f\u0003\u0002\u0002\u0002\u1b9c\u1b91\u0003", + "\u0002\u0002\u0002\u1b9c\u1b94\u0003\u0002\u0002\u0002\u1b9c\u1b96\u0003", + "\u0002\u0002\u0002\u1b9c\u1b98\u0003\u0002\u0002\u0002\u1b9c\u1b9a\u0003", + "\u0002\u0002\u0002\u1b9d\u023d\u0003\u0002\u0002\u0002\u1b9e\u1b9f\u0007", + "\u02f0\u0002\u0002\u1b9f\u1ba0\u0007\u032a\u0002\u0002\u1ba0\u1ba1\u0007", + "\u0322\u0002\u0002\u1ba1\u1ba2\tP\u0002\u0002\u1ba2\u023f\u0003\u0002", + "\u0002\u0002\u1ba3\u1ba4\u0007\u0120\u0002\u0002\u1ba4\u1ba5\u0007\u0188", + "\u0002\u0002\u1ba5\u1baa\u0007\u0322\u0002\u0002\u1ba6\u1ba7\u0007\u0120", + "\u0002\u0002\u1ba7\u1baa\u0007\u021a\u0002\u0002\u1ba8\u1baa\u0007\u0265", + "\u0002\u0002\u1ba9\u1ba3\u0003\u0002\u0002\u0002\u1ba9\u1ba6\u0003\u0002", + "\u0002\u0002\u1ba9\u1ba8\u0003\u0002\u0002\u0002\u1baa\u0241\u0003\u0002", + "\u0002\u0002\u1bab\u1bac\u0007g\u0002\u0002\u1bac\u1baf\u0007\u009e", + "\u0002\u0002\u1bad\u1bae\u0007\u0099\u0002\u0002\u1bae\u1bb0\u0007w", + "\u0002\u0002\u1baf\u1bad\u0003\u0002\u0002\u0002\u1baf\u1bb0\u0003\u0002", + "\u0002\u0002\u1bb0\u1bc1\u0003\u0002\u0002\u0002\u1bb1\u1bb6\u0005\u0244", + "\u0123\u0002\u1bb2\u1bb3\u0007\u033e\u0002\u0002\u1bb3\u1bb5\u0005\u0244", + "\u0123\u0002\u1bb4\u1bb2\u0003\u0002\u0002\u0002\u1bb5\u1bb8\u0003\u0002", + "\u0002\u0002\u1bb6\u1bb4\u0003\u0002\u0002\u0002\u1bb6\u1bb7\u0003\u0002", + "\u0002\u0002\u1bb7\u1bc2\u0003\u0002\u0002\u0002\u1bb8\u1bb6\u0003\u0002", + "\u0002\u0002\u1bb9\u1bbe\u0005\u0246\u0124\u0002\u1bba\u1bbb\u0007\u033e", + "\u0002\u0002\u1bbb\u1bbd\u0005\u0246\u0124\u0002\u1bbc\u1bba\u0003\u0002", + "\u0002\u0002\u1bbd\u1bc0\u0003\u0002\u0002\u0002\u1bbe\u1bbc\u0003\u0002", + "\u0002\u0002\u1bbe\u1bbf\u0003\u0002\u0002\u0002\u1bbf\u1bc2\u0003\u0002", + "\u0002\u0002\u1bc0\u1bbe\u0003\u0002\u0002\u0002\u1bc1\u1bb1\u0003\u0002", + "\u0002\u0002\u1bc1\u1bb9\u0003\u0002\u0002\u0002\u1bc2\u1bc4\u0003\u0002", + "\u0002\u0002\u1bc3\u1bc5\u0007\u033f\u0002\u0002\u1bc4\u1bc3\u0003\u0002", + "\u0002\u0002\u1bc4\u1bc5\u0003\u0002\u0002\u0002\u1bc5\u0243\u0003\u0002", + "\u0002\u0002\u1bc6\u1bc7\u0005\u03c6\u01e4\u0002\u1bc7\u1bc8\u0007\u00e5", + "\u0002\u0002\u1bc8\u1bc9\u0005\u038c\u01c7\u0002\u1bc9\u0245\u0003\u0002", + "\u0002\u0002\u1bca\u1bcb\u0005\u03c6\u01e4\u0002\u1bcb\u1bcc\u0007\u0337", + "\u0002\u0002\u1bcc\u1bce\u0003\u0002\u0002\u0002\u1bcd\u1bca\u0003\u0002", + "\u0002\u0002\u1bcd\u1bce\u0003\u0002\u0002\u0002\u1bce\u1bcf\u0003\u0002", + "\u0002\u0002\u1bcf\u1bd0\u0005\u03c6\u01e4\u0002\u1bd0\u1bd1\u0007\u0337", + "\u0002\u0002\u1bd1\u1bd2\u0005\u03c6\u01e4\u0002\u1bd2\u0247\u0003\u0002", + "\u0002\u0002\u1bd3\u1bd4\u0007g\u0002\u0002\u1bd4\u1bd7\t8\u0002\u0002", + "\u1bd5\u1bd6\u0007\u0099\u0002\u0002\u1bd6\u1bd8\u0007w\u0002\u0002", + "\u1bd7\u1bd5\u0003\u0002\u0002\u0002\u1bd7\u1bd8\u0003\u0002\u0002\u0002", + "\u1bd8\u1bd9\u0003\u0002\u0002\u0002\u1bd9\u1bde\u0005\u0392\u01ca\u0002", + "\u1bda\u1bdb\u0007\u033e\u0002\u0002\u1bdb\u1bdd\u0005\u0392\u01ca\u0002", + "\u1bdc\u1bda\u0003\u0002\u0002\u0002\u1bdd\u1be0\u0003\u0002\u0002\u0002", + "\u1bde\u1bdc\u0003\u0002\u0002\u0002\u1bde\u1bdf\u0003\u0002\u0002\u0002", + "\u1bdf\u1be2\u0003\u0002\u0002\u0002\u1be0\u1bde\u0003\u0002\u0002\u0002", + "\u1be1\u1be3\u0007\u033f\u0002\u0002\u1be2\u1be1\u0003\u0002\u0002\u0002", + "\u1be2\u1be3\u0003\u0002\u0002\u0002\u1be3\u0249\u0003\u0002\u0002\u0002", + "\u1be4\u1be7\u0005\u024c\u0127\u0002\u1be5\u1be7\u0005\u024e\u0128\u0002", + "\u1be6\u1be4\u0003\u0002\u0002\u0002\u1be6\u1be5\u0003\u0002\u0002\u0002", + "\u1be7\u024b\u0003\u0002\u0002\u0002\u1be8\u1be9\u0007g\u0002\u0002", + "\u1be9\u1bec\u0007\u0160\u0002\u0002\u1bea\u1beb\u0007\u0099\u0002\u0002", + "\u1beb\u1bed\u0007w\u0002\u0002\u1bec\u1bea\u0003\u0002\u0002\u0002", + "\u1bec\u1bed\u0003\u0002\u0002\u0002\u1bed\u1bee\u0003\u0002\u0002\u0002", + "\u1bee\u1bf3\u0005\u0390\u01c9\u0002\u1bef\u1bf0\u0007\u033e\u0002\u0002", + "\u1bf0\u1bf2\u0005\u0390\u01c9\u0002\u1bf1\u1bef\u0003\u0002\u0002\u0002", + "\u1bf2\u1bf5\u0003\u0002\u0002\u0002\u1bf3\u1bf1\u0003\u0002\u0002\u0002", + "\u1bf3\u1bf4\u0003\u0002\u0002\u0002\u1bf4\u1bf7\u0003\u0002\u0002\u0002", + "\u1bf5\u1bf3\u0003\u0002\u0002\u0002\u1bf6\u1bf8\u0007\u033f\u0002\u0002", + "\u1bf7\u1bf6\u0003\u0002\u0002\u0002\u1bf7\u1bf8\u0003\u0002\u0002\u0002", + "\u1bf8\u024d\u0003\u0002\u0002\u0002\u1bf9\u1bfa\u0007g\u0002\u0002", + "\u1bfa\u1bfd\u0007\u0160\u0002\u0002\u1bfb\u1bfc\u0007\u0099\u0002\u0002", + "\u1bfc\u1bfe\u0007w\u0002\u0002\u1bfd\u1bfb\u0003\u0002\u0002\u0002", + "\u1bfd\u1bfe\u0003\u0002\u0002\u0002\u1bfe\u1bff\u0003\u0002\u0002\u0002", + "\u1bff\u1c04\u0005\u0390\u01c9\u0002\u1c00\u1c01\u0007\u033e\u0002\u0002", + "\u1c01\u1c03\u0005\u0390\u01c9\u0002\u1c02\u1c00\u0003\u0002\u0002\u0002", + "\u1c03\u1c06\u0003\u0002\u0002\u0002\u1c04\u1c02\u0003\u0002\u0002\u0002", + "\u1c04\u1c05\u0003\u0002\u0002\u0002\u1c05\u1c07\u0003\u0002\u0002\u0002", + "\u1c06\u1c04\u0003\u0002\u0002\u0002\u1c07\u1c0b\u0007\u00e5\u0002\u0002", + "\u1c08\u1c0c\u0007T\u0002\u0002\u1c09\u1c0a\u0007\u0006\u0002\u0002", + "\u1c0a\u1c0c\u0007\u0135\u0002\u0002\u1c0b\u1c08\u0003\u0002\u0002\u0002", + "\u1c0b\u1c09\u0003\u0002\u0002\u0002\u1c0c\u1c0e\u0003\u0002\u0002\u0002", + "\u1c0d\u1c0f\u0007\u033f\u0002\u0002\u1c0e\u1c0d\u0003\u0002\u0002\u0002", + "\u1c0e\u1c0f\u0003\u0002\u0002\u0002\u1c0f\u024f\u0003\u0002\u0002\u0002", + "\u1c10\u1c11\u0007g\u0002\u0002\u1c11\u1c14\u0007\u008d\u0002\u0002", + "\u1c12\u1c13\u0007\u0099\u0002\u0002\u1c13\u1c15\u0007w\u0002\u0002", + "\u1c14\u1c12\u0003\u0002\u0002\u0002\u1c14\u1c15\u0003\u0002\u0002\u0002", + "\u1c15\u1c16\u0003\u0002\u0002\u0002\u1c16\u1c1b\u0005\u0392\u01ca\u0002", + "\u1c17\u1c18\u0007\u033e\u0002\u0002\u1c18\u1c1a\u0005\u0392\u01ca\u0002", + "\u1c19\u1c17\u0003\u0002\u0002\u0002\u1c1a\u1c1d\u0003\u0002\u0002\u0002", + "\u1c1b\u1c19\u0003\u0002\u0002\u0002\u1c1b\u1c1c\u0003\u0002\u0002\u0002", + "\u1c1c\u1c1f\u0003\u0002\u0002\u0002\u1c1d\u1c1b\u0003\u0002\u0002\u0002", + "\u1c1e\u1c20\u0007\u033f\u0002\u0002\u1c1f\u1c1e\u0003\u0002\u0002\u0002", + "\u1c1f\u1c20\u0003\u0002\u0002\u0002\u1c20\u0251\u0003\u0002\u0002\u0002", + "\u1c21\u1c22\u0007g\u0002\u0002\u1c22\u1c2c\u0007\u0148\u0002\u0002", + "\u1c23\u1c25\u0007\u033e\u0002\u0002\u1c24\u1c23\u0003\u0002\u0002\u0002", + "\u1c24\u1c25\u0003\u0002\u0002\u0002\u1c25\u1c29\u0003\u0002\u0002\u0002", + "\u1c26\u1c27\u0005\u038e\u01c8\u0002\u1c27\u1c28\u0007\u0337\u0002\u0002", + "\u1c28\u1c2a\u0003\u0002\u0002\u0002\u1c29\u1c26\u0003\u0002\u0002\u0002", + "\u1c29\u1c2a\u0003\u0002\u0002\u0002\u1c2a\u1c2b\u0003\u0002\u0002\u0002", + "\u1c2b\u1c2d\u0005\u03c6\u01e4\u0002\u1c2c\u1c24\u0003\u0002\u0002\u0002", + "\u1c2d\u1c2e\u0003\u0002\u0002\u0002\u1c2e\u1c2c\u0003\u0002\u0002\u0002", + "\u1c2e\u1c2f\u0003\u0002\u0002\u0002\u1c2f\u1c30\u0003\u0002\u0002\u0002", + "\u1c30\u1c31\u0007\u033f\u0002\u0002\u1c31\u0253\u0003\u0002\u0002\u0002", + "\u1c32\u1c33\u0007g\u0002\u0002\u1c33\u1c36\u0007\u0153\u0002\u0002", + "\u1c34\u1c35\u0007\u0099\u0002\u0002\u1c35\u1c37\u0007w\u0002\u0002", + "\u1c36\u1c34\u0003\u0002\u0002\u0002\u1c36\u1c37\u0003\u0002\u0002\u0002", + "\u1c37\u1c38\u0003\u0002\u0002\u0002\u1c38\u1c3a\u0005\u038e\u01c8\u0002", + "\u1c39\u1c3b\u0007\u033f\u0002\u0002\u1c3a\u1c39\u0003\u0002\u0002\u0002", + "\u1c3a\u1c3b\u0003\u0002\u0002\u0002\u1c3b\u0255\u0003\u0002\u0002\u0002", + "\u1c3c\u1c3d\u0007g\u0002\u0002\u1c3d\u1c40\u0007\u0172\u0002\u0002", + "\u1c3e\u1c3f\u0007\u0099\u0002\u0002\u1c3f\u1c41\u0007w\u0002\u0002", + "\u1c40\u1c3e\u0003\u0002\u0002\u0002\u1c40\u1c41\u0003\u0002\u0002\u0002", + "\u1c41\u1c42\u0003\u0002\u0002\u0002\u1c42\u1c47\u0005\u0390\u01c9\u0002", + "\u1c43\u1c44\u0007\u033e\u0002\u0002\u1c44\u1c46\u0005\u0390\u01c9\u0002", + "\u1c45\u1c43\u0003\u0002\u0002\u0002\u1c46\u1c49\u0003\u0002\u0002\u0002", + "\u1c47\u1c45\u0003\u0002\u0002\u0002\u1c47\u1c48\u0003\u0002\u0002\u0002", + "\u1c48\u1c4b\u0003\u0002\u0002\u0002\u1c49\u1c47\u0003\u0002\u0002\u0002", + "\u1c4a\u1c4c\u0007\u033f\u0002\u0002\u1c4b\u1c4a\u0003\u0002\u0002\u0002", + "\u1c4b\u1c4c\u0003\u0002\u0002\u0002\u1c4c\u0257\u0003\u0002\u0002\u0002", + "\u1c4d\u1c4e\u0007I\u0002\u0002\u1c4e\u1c4f\u0007\u0301\u0002\u0002", + "\u1c4f\u1c54\u0005\u0390\u01c9\u0002\u1c50\u1c51\u0007\u008b\u0002\u0002", + "\u1c51\u1c52\u0005\u03be\u01e0\u0002\u1c52\u1c53\u0005\u03c0\u01e1\u0002", + "\u1c53\u1c55\u0003\u0002\u0002\u0002\u1c54\u1c50\u0003\u0002\u0002\u0002", + "\u1c54\u1c55\u0003\u0002\u0002\u0002\u1c55\u1c5c\u0003\u0002\u0002\u0002", + "\u1c56\u1c57\u0007\u0010\u0002\u0002\u1c57\u1c58\u0007\u0153\u0002\u0002", + "\u1c58\u1c59\u0007\u033c\u0002\u0002\u1c59\u1c5a\u0005\u02b8\u015d\u0002", + "\u1c5a\u1c5b\u0007\u033d\u0002\u0002\u1c5b\u1c5d\u0003\u0002\u0002\u0002", + "\u1c5c\u1c56\u0003\u0002\u0002\u0002\u1c5c\u1c5d\u0003\u0002\u0002\u0002", + "\u1c5d\u0259\u0003\u0002\u0002\u0002\u1c5e\u1c5f\u0007g\u0002\u0002", + "\u1c5f\u1c62\u0007\u0301\u0002\u0002\u1c60\u1c61\u0007\u0099\u0002\u0002", + "\u1c61\u1c63\u0007w\u0002\u0002\u1c62\u1c60\u0003\u0002\u0002\u0002", + "\u1c62\u1c63\u0003\u0002\u0002\u0002\u1c63\u1c64\u0003\u0002\u0002\u0002", + "\u1c64\u1c65\u0005\u0390\u01c9\u0002\u1c65\u025b\u0003\u0002\u0002\u0002", + "\u1c66\u1c69\u0005\u025e\u0130\u0002\u1c67\u1c69\u0005\u0260\u0131\u0002", + "\u1c68\u1c66\u0003\u0002\u0002\u0002\u1c68\u1c67\u0003\u0002\u0002\u0002", + "\u1c69\u025d\u0003\u0002\u0002\u0002\u1c6a\u1c6b\u0007\u00e9\u0002\u0002", + "\u1c6b\u1c6c\u0007\u033c\u0002\u0002\u1c6c\u1c6d\u0005\u03c6\u01e4\u0002", + "\u1c6d\u1c6e\u0007\u033e\u0002\u0002\u1c6e\u1c6f\u0007\u0326\u0002\u0002", + "\u1c6f\u1c70\u0007\u033d\u0002\u0002\u1c70\u025f\u0003\u0002\u0002\u0002", + "\u1c71\u1c72\u0007\u00e8\u0002\u0002\u1c72\u1c73\u0007\u033c\u0002\u0002", + "\u1c73\u1c74\u0007\u0326\u0002\u0002\u1c74\u1c75\u0007\u033e\u0002\u0002", + "\u1c75\u1c76\u0007\u0326\u0002\u0002\u1c76\u1c77\u0007\u033d\u0002\u0002", + "\u1c77\u1c79\u0007\u0337\u0002\u0002\u1c78\u1c7a\u0005\u03c6\u01e4\u0002", + "\u1c79\u1c78\u0003\u0002\u0002\u0002\u1c79\u1c7a\u0003\u0002\u0002\u0002", + "\u1c7a\u1c7b\u0003\u0002\u0002\u0002\u1c7b\u1c7d\u0007\u0337\u0002\u0002", + "\u1c7c\u1c7e\u0005\u03c6\u01e4\u0002\u1c7d\u1c7c\u0003\u0002\u0002\u0002", + "\u1c7d\u1c7e\u0003\u0002\u0002\u0002\u1c7e\u1c7f\u0003\u0002\u0002\u0002", + "\u1c7f\u1c80\u0007\u0337\u0002\u0002\u1c80\u1c81\u0005\u03c6\u01e4\u0002", + "\u1c81\u0261\u0003\u0002\u0002\u0002\u1c82\u1c83\u0007X\u0002\u0002", + "\u1c83\u1c85\u0007\u0321\u0002\u0002\u1c84\u1c86\u0007\u0010\u0002\u0002", + "\u1c85\u1c84\u0003\u0002\u0002\u0002\u1c85\u1c86\u0003\u0002\u0002\u0002", + "\u1c86\u1c87\u0003\u0002\u0002\u0002\u1c87\u1c89\u0005\u02b2\u015a\u0002", + "\u1c88\u1c8a\u0007\u033f\u0002\u0002\u1c89\u1c88\u0003\u0002\u0002\u0002", + "\u1c89\u1c8a\u0003\u0002\u0002\u0002\u1c8a\u1cae\u0003\u0002\u0002\u0002", + "\u1c8b\u1c8c\u0007X\u0002\u0002\u1c8c\u1c91\u0005\u02b0\u0159\u0002", + "\u1c8d\u1c8e\u0007\u033e\u0002\u0002\u1c8e\u1c90\u0005\u02b0\u0159\u0002", + "\u1c8f\u1c8d\u0003\u0002\u0002\u0002\u1c90\u1c93\u0003\u0002\u0002\u0002", + "\u1c91\u1c8f\u0003\u0002\u0002\u0002\u1c91\u1c92\u0003\u0002\u0002\u0002", + "\u1c92\u1c95\u0003\u0002\u0002\u0002\u1c93\u1c91\u0003\u0002\u0002\u0002", + "\u1c94\u1c96\u0007\u033f\u0002\u0002\u1c95\u1c94\u0003\u0002\u0002\u0002", + "\u1c95\u1c96\u0003\u0002\u0002\u0002\u1c96\u1cae\u0003\u0002\u0002\u0002", + "\u1c97\u1c98\u0007X\u0002\u0002\u1c98\u1c9a\u0007\u0321\u0002\u0002", + "\u1c99\u1c9b\u0007\u0010\u0002\u0002\u1c9a\u1c99\u0003\u0002\u0002\u0002", + "\u1c9a\u1c9b\u0003\u0002\u0002\u0002\u1c9b\u1c9c\u0003\u0002\u0002\u0002", + "\u1c9c\u1c9e\u0005\u02b4\u015b\u0002\u1c9d\u1c9f\u0007\u033f\u0002\u0002", + "\u1c9e\u1c9d\u0003\u0002\u0002\u0002\u1c9e\u1c9f\u0003\u0002\u0002\u0002", + "\u1c9f\u1cae\u0003\u0002\u0002\u0002\u1ca0\u1ca1\u0007\u0179\u0002\u0002", + "\u1ca1\u1ca2\u0007\u0317\u0002\u0002\u1ca2\u1ca3\u0007\u033c\u0002\u0002", + "\u1ca3\u1ca5\u0007\u0326\u0002\u0002\u1ca4\u1ca6\u0007\u033e\u0002\u0002", + "\u1ca5\u1ca4\u0003\u0002\u0002\u0002\u1ca5\u1ca6\u0003\u0002\u0002\u0002", + "\u1ca6\u1ca7\u0003\u0002\u0002\u0002\u1ca7\u1ca8\u0007\u0010\u0002\u0002", + "\u1ca8\u1ca9\u0005\u03c6\u01e4\u0002\u1ca9\u1cab\u0007\u033d\u0002\u0002", + "\u1caa\u1cac\u0007\u033f\u0002\u0002\u1cab\u1caa\u0003\u0002\u0002\u0002", + "\u1cab\u1cac\u0003\u0002\u0002\u0002\u1cac\u1cae\u0003\u0002\u0002\u0002", + "\u1cad\u1c82\u0003\u0002\u0002\u0002\u1cad\u1c8b\u0003\u0002\u0002\u0002", + "\u1cad\u1c97\u0003\u0002\u0002\u0002\u1cad\u1ca0\u0003\u0002\u0002\u0002", + "\u1cae\u0263\u0003\u0002\u0002\u0002\u1caf\u1cb1\u00073\u0002\u0002", + "\u1cb0\u1cb2\u0007\u020d\u0002\u0002\u1cb1\u1cb0\u0003\u0002\u0002\u0002", + "\u1cb1\u1cb2\u0003\u0002\u0002\u0002\u1cb2\u1cb3\u0003\u0002\u0002\u0002", + "\u1cb3\u1cb5\u0005\u03a0\u01d1\u0002\u1cb4\u1cb6\u0007\u033f\u0002\u0002", + "\u1cb5\u1cb4\u0003\u0002\u0002\u0002\u1cb5\u1cb6\u0003\u0002\u0002\u0002", + "\u1cb6\u1ccd\u0003\u0002\u0002\u0002\u1cb7\u1cb9\u0007W\u0002\u0002", + "\u1cb8\u1cba\u0007\u020d\u0002\u0002\u1cb9\u1cb8\u0003\u0002\u0002\u0002", + "\u1cb9\u1cba\u0003\u0002\u0002\u0002\u1cba\u1cbc\u0003\u0002\u0002\u0002", + "\u1cbb\u1cbd\u0007P\u0002\u0002\u1cbc\u1cbb\u0003\u0002\u0002\u0002", + "\u1cbc\u1cbd\u0003\u0002\u0002\u0002\u1cbd\u1cbe\u0003\u0002\u0002\u0002", + "\u1cbe\u1cc0\u0005\u03a0\u01d1\u0002\u1cbf\u1cc1\u0007\u033f\u0002\u0002", + "\u1cc0\u1cbf\u0003\u0002\u0002\u0002\u1cc0\u1cc1\u0003\u0002\u0002\u0002", + "\u1cc1\u1ccd\u0003\u0002\u0002\u0002\u1cc2\u1ccd\u0005\u02cc\u0167\u0002", + "\u1cc3\u1ccd\u0005\u02d2\u016a\u0002\u1cc4\u1cc6\u0007\u00e7\u0002\u0002", + "\u1cc5\u1cc7\u0007\u020d\u0002\u0002\u1cc6\u1cc5\u0003\u0002\u0002\u0002", + "\u1cc6\u1cc7\u0003\u0002\u0002\u0002\u1cc7\u1cc8\u0003\u0002\u0002\u0002", + "\u1cc8\u1cca\u0005\u03a0\u01d1\u0002\u1cc9\u1ccb\u0007\u033f\u0002\u0002", + "\u1cca\u1cc9\u0003\u0002\u0002\u0002\u1cca\u1ccb\u0003\u0002\u0002\u0002", + "\u1ccb\u1ccd\u0003\u0002\u0002\u0002\u1ccc\u1caf\u0003\u0002\u0002\u0002", + "\u1ccc\u1cb7\u0003\u0002\u0002\u0002\u1ccc\u1cc2\u0003\u0002\u0002\u0002", + "\u1ccc\u1cc3\u0003\u0002\u0002\u0002\u1ccc\u1cc4\u0003\u0002\u0002\u0002", + "\u1ccd\u0265\u0003\u0002\u0002\u0002\u1cce\u1ccf\u0007\u001a\u0002\u0002", + "\u1ccf\u1cd0\u0007T\u0002\u0002\u1cd0\u1cdd\u0005\u03c6\u01e4\u0002", + "\u1cd1\u1cda\u0007\u010c\u0002\u0002\u1cd2\u1cd4\u0007\u033e\u0002\u0002", + "\u1cd3\u1cd2\u0003\u0002\u0002\u0002\u1cd3\u1cd4\u0003\u0002\u0002\u0002", + "\u1cd4\u1cd5\u0003\u0002\u0002\u0002\u1cd5\u1cd6\tQ\u0002\u0002\u1cd6", + "\u1cd7\u0007\u032a\u0002\u0002\u1cd7\u1cd9\u0007\u0326\u0002\u0002\u1cd8", + "\u1cd3\u0003\u0002\u0002\u0002\u1cd9\u1cdc\u0003\u0002\u0002\u0002\u1cda", + "\u1cd8\u0003\u0002\u0002\u0002\u1cda\u1cdb\u0003\u0002\u0002\u0002\u1cdb", + "\u1cde\u0003\u0002\u0002\u0002\u1cdc\u1cda\u0003\u0002\u0002\u0002\u1cdd", + "\u1cd1\u0003\u0002\u0002\u0002\u1cdd\u1cde\u0003\u0002\u0002\u0002\u1cde", + "\u1ce7\u0003\u0002\u0002\u0002\u1cdf\u1ce1\u0007\u033e\u0002\u0002\u1ce0", + "\u1cdf\u0003\u0002\u0002\u0002\u1ce0\u1ce1\u0003\u0002\u0002\u0002\u1ce1", + "\u1ce2\u0003\u0002\u0002\u0002\u1ce2\u1ce3\tQ\u0002\u0002\u1ce3\u1ce4", + "\u0007\u032a\u0002\u0002\u1ce4\u1ce6\u0007\u0326\u0002\u0002\u1ce5\u1ce0", + "\u0003\u0002\u0002\u0002\u1ce6\u1ce9\u0003\u0002\u0002\u0002\u1ce7\u1ce5", + "\u0003\u0002\u0002\u0002\u1ce7\u1ce8\u0003\u0002\u0002\u0002\u1ce8\u1d01", + "\u0003\u0002\u0002\u0002\u1ce9\u1ce7\u0003\u0002\u0002\u0002\u1cea\u1cef", + "\u0007\u015a\u0002\u0002\u1ceb\u1ced\u0007\u033e\u0002\u0002\u1cec\u1ceb", + "\u0003\u0002\u0002\u0002\u1cec\u1ced\u0003\u0002\u0002\u0002\u1ced\u1cee", + "\u0003\u0002\u0002\u0002\u1cee\u1cf0\u0005\u03c6\u01e4\u0002\u1cef\u1cec", + "\u0003\u0002\u0002\u0002\u1cf0\u1cf1\u0003\u0002\u0002\u0002\u1cf1\u1cef", + "\u0003\u0002\u0002\u0002\u1cf1\u1cf2\u0003\u0002\u0002\u0002\u1cf2\u1d02", + "\u0003\u0002\u0002\u0002\u1cf3\u1cfd\u0007\u015a\u0002\u0002\u1cf4\u1cf6", + "\u0007\u033e\u0002\u0002\u1cf5\u1cf4\u0003\u0002\u0002\u0002\u1cf5\u1cf6", + "\u0003\u0002\u0002\u0002\u1cf6\u1cf7\u0003\u0002\u0002\u0002\u1cf7\u1cf8", + "\tR\u0002\u0002\u1cf8\u1cfb\u0007\u032a\u0002\u0002\u1cf9\u1cfc\u0007", + "\u0326\u0002\u0002\u1cfa\u1cfc\u0005\u03c6\u01e4\u0002\u1cfb\u1cf9\u0003", + "\u0002\u0002\u0002\u1cfb\u1cfa\u0003\u0002\u0002\u0002\u1cfc\u1cfe\u0003", + "\u0002\u0002\u0002\u1cfd\u1cf5\u0003\u0002\u0002\u0002\u1cfe\u1cff\u0003", + "\u0002\u0002\u0002\u1cff\u1cfd\u0003\u0002\u0002\u0002\u1cff\u1d00\u0003", + "\u0002\u0002\u0002\u1d00\u1d02\u0003\u0002\u0002\u0002\u1d01\u1cea\u0003", + "\u0002\u0002\u0002\u1d01\u1cf3\u0003\u0002\u0002\u0002\u1d02\u1d24\u0003", + "\u0002\u0002\u0002\u1d03\u1d04\u0007\u00cd\u0002\u0002\u1d04\u1d09\u0007", + "\u015a\u0002\u0002\u1d05\u1d07\u0007\u033e\u0002\u0002\u1d06\u1d05\u0003", + "\u0002\u0002\u0002\u1d06\u1d07\u0003\u0002\u0002\u0002\u1d07\u1d08\u0003", + "\u0002\u0002\u0002\u1d08\u1d0a\u0005\u03c6\u01e4\u0002\u1d09\u1d06\u0003", + "\u0002\u0002\u0002\u1d0a\u1d0b\u0003\u0002\u0002\u0002\u1d0b\u1d09\u0003", + "\u0002\u0002\u0002\u1d0b\u1d0c\u0003\u0002\u0002\u0002\u1d0c\u1d0e\u0003", + "\u0002\u0002\u0002\u1d0d\u1d03\u0003\u0002\u0002\u0002\u1d0e\u1d0f\u0003", + "\u0002\u0002\u0002\u1d0f\u1d0d\u0003\u0002\u0002\u0002\u1d0f\u1d10\u0003", + "\u0002\u0002\u0002\u1d10\u1d25\u0003\u0002\u0002\u0002\u1d11\u1d12\u0007", + "\u00cd\u0002\u0002\u1d12\u1d1c\u0007\u015a\u0002\u0002\u1d13\u1d15\u0007", + "\u033e\u0002\u0002\u1d14\u1d13\u0003\u0002\u0002\u0002\u1d14\u1d15\u0003", + "\u0002\u0002\u0002\u1d15\u1d16\u0003\u0002\u0002\u0002\u1d16\u1d17\t", + "R\u0002\u0002\u1d17\u1d1a\u0007\u032a\u0002\u0002\u1d18\u1d1b\u0007", + "\u0326\u0002\u0002\u1d19\u1d1b\u0005\u03c6\u01e4\u0002\u1d1a\u1d18\u0003", + "\u0002\u0002\u0002\u1d1a\u1d19\u0003\u0002\u0002\u0002\u1d1b\u1d1d\u0003", + "\u0002\u0002\u0002\u1d1c\u1d14\u0003\u0002\u0002\u0002\u1d1d\u1d1e\u0003", + "\u0002\u0002\u0002\u1d1e\u1d1c\u0003\u0002\u0002\u0002\u1d1e\u1d1f\u0003", + "\u0002\u0002\u0002\u1d1f\u1d21\u0003\u0002\u0002\u0002\u1d20\u1d11\u0003", + "\u0002\u0002\u0002\u1d21\u1d22\u0003\u0002\u0002\u0002\u1d22\u1d20\u0003", + "\u0002\u0002\u0002\u1d22\u1d23\u0003\u0002\u0002\u0002\u1d23\u1d25\u0003", + "\u0002\u0002\u0002\u1d24\u1d0d\u0003\u0002\u0002\u0002\u1d24\u1d20\u0003", + "\u0002\u0002\u0002\u1d24\u1d25\u0003\u0002\u0002\u0002\u1d25\u1dc6\u0003", + "\u0002\u0002\u0002\u1d26\u1dc3\u0007\u0179\u0002\u0002\u1d27\u1d29\u0007", + "\u033e\u0002\u0002\u1d28\u1d27\u0003\u0002\u0002\u0002\u1d28\u1d29\u0003", + "\u0002\u0002\u0002\u1d29\u1d2a\u0003\u0002\u0002\u0002\u1d2a\u1dc2\u0007", + "`\u0002\u0002\u1d2b\u1d2d\u0007\u033e\u0002\u0002\u1d2c\u1d2b\u0003", + "\u0002\u0002\u0002\u1d2c\u1d2d\u0003\u0002\u0002\u0002\u1d2d\u1d2e\u0003", + "\u0002\u0002\u0002\u1d2e\u1dc2\u0007H\u0002\u0002\u1d2f\u1d31\u0007", + "\u033e\u0002\u0002\u1d30\u1d2f\u0003\u0002\u0002\u0002\u1d30\u1d31\u0003", + "\u0002\u0002\u0002\u1d31\u1d32\u0003\u0002\u0002\u0002\u1d32\u1dc2\t", + "S\u0002\u0002\u1d33\u1d35\u0007\u033e\u0002\u0002\u1d34\u1d33\u0003", + "\u0002\u0002\u0002\u1d34\u1d35\u0003\u0002\u0002\u0002\u1d35\u1d36\u0003", + "\u0002\u0002\u0002\u1d36\u1d37\u0007\u01db\u0002\u0002\u1d37\u1d3a\u0007", + "\u032a\u0002\u0002\u1d38\u1d3b\u0007\u0326\u0002\u0002\u1d39\u1d3b\u0005", + "\u03c6\u01e4\u0002\u1d3a\u1d38\u0003\u0002\u0002\u0002\u1d3a\u1d39\u0003", + "\u0002\u0002\u0002\u1d3b\u1dc2\u0003\u0002\u0002\u0002\u1d3c\u1d3e\u0007", + "\u033e\u0002\u0002\u1d3d\u1d3c\u0003\u0002\u0002\u0002\u1d3d\u1d3e\u0003", + "\u0002\u0002\u0002\u1d3e\u1d3f\u0003\u0002\u0002\u0002\u1d3f\u1d40\u0007", + "\u025d\u0002\u0002\u1d40\u1d41\u0007\u032a\u0002\u0002\u1d41\u1dc2\u0005", + "\u03c6\u01e4\u0002\u1d42\u1d44\u0007\u033e\u0002\u0002\u1d43\u1d42\u0003", + "\u0002\u0002\u0002\u1d43\u1d44\u0003\u0002\u0002\u0002\u1d44\u1d45\u0003", + "\u0002\u0002\u0002\u1d45\u1dc2\u0007\u01c4\u0002\u0002\u1d46\u1d48\u0007", + "\u033e\u0002\u0002\u1d47\u1d46\u0003\u0002\u0002\u0002\u1d47\u1d48\u0003", + "\u0002\u0002\u0002\u1d48\u1d49\u0003\u0002\u0002\u0002\u1d49\u1dc2\u0007", + "\u0084\u0002\u0002\u1d4a\u1d4c\u0007\u033e\u0002\u0002\u1d4b\u1d4a\u0003", + "\u0002\u0002\u0002\u1d4b\u1d4c\u0003\u0002\u0002\u0002\u1d4c\u1d59\u0003", + "\u0002\u0002\u0002\u1d4d\u1d4e\u0007x\u0002\u0002\u1d4e\u1d51\u0007", + "\u032a\u0002\u0002\u1d4f\u1d52\u0007\u0326\u0002\u0002\u1d50\u1d52\u0005", + "\u03c6\u01e4\u0002\u1d51\u1d4f\u0003\u0002\u0002\u0002\u1d51\u1d50\u0003", + "\u0002\u0002\u0002\u1d52\u1d5a\u0003\u0002\u0002\u0002\u1d53\u1d54\u0007", + "\u0119\u0002\u0002\u1d54\u1d57\u0007\u032a\u0002\u0002\u1d55\u1d58\u0007", + "\u0322\u0002\u0002\u1d56\u1d58\u0005\u03c6\u01e4\u0002\u1d57\u1d55\u0003", + "\u0002\u0002\u0002\u1d57\u1d56\u0003\u0002\u0002\u0002\u1d58\u1d5a\u0003", + "\u0002\u0002\u0002\u1d59\u1d4d\u0003\u0002\u0002\u0002\u1d59\u1d53\u0003", + "\u0002\u0002\u0002\u1d5a\u1dc2\u0003\u0002\u0002\u0002\u1d5b\u1d5d\u0007", + "\u033e\u0002\u0002\u1d5c\u1d5b\u0003\u0002\u0002\u0002\u1d5c\u1d5d\u0003", + "\u0002\u0002\u0002\u1d5d\u1d5e\u0003\u0002\u0002\u0002\u1d5e\u1dc2\t", + "T\u0002\u0002\u1d5f\u1d61\u0007\u033e\u0002\u0002\u1d60\u1d5f\u0003", + "\u0002\u0002\u0002\u1d60\u1d61\u0003\u0002\u0002\u0002\u1d61\u1d62\u0003", + "\u0002\u0002\u0002\u1d62\u1dc2\tU\u0002\u0002\u1d63\u1d65\u0007\u033e", + "\u0002\u0002\u1d64\u1d63\u0003\u0002\u0002\u0002\u1d64\u1d65\u0003\u0002", + "\u0002\u0002\u1d65\u1d66\u0003\u0002\u0002\u0002\u1d66\u1dc2\tV\u0002", + "\u0002\u1d67\u1d69\u0007\u033e\u0002\u0002\u1d68\u1d67\u0003\u0002\u0002", + "\u0002\u1d68\u1d69\u0003\u0002\u0002\u0002\u1d69\u1d6a\u0003\u0002\u0002", + "\u0002\u1d6a\u1d6b\u0007\u00c5\u0002\u0002\u1d6b\u1d6e\u0007\u032a\u0002", + "\u0002\u1d6c\u1d6f\u0007\u0326\u0002\u0002\u1d6d\u1d6f\u0005\u03c6\u01e4", + "\u0002\u1d6e\u1d6c\u0003\u0002\u0002\u0002\u1d6e\u1d6d\u0003\u0002\u0002", + "\u0002\u1d6f\u1dc2\u0003\u0002\u0002\u0002\u1d70\u1d72\u0007\u033e\u0002", + "\u0002\u1d71\u1d70\u0003\u0002\u0002\u0002\u1d71\u1d72\u0003\u0002\u0002", + "\u0002\u1d72\u1d73\u0003\u0002\u0002\u0002\u1d73\u1d74\u0007\u00c6\u0002", + "\u0002\u1d74\u1d75\u0007\u032a\u0002\u0002\u1d75\u1dc2\u0007\u0326\u0002", + "\u0002\u1d76\u1d78\u0007\u033e\u0002\u0002\u1d77\u1d76\u0003\u0002\u0002", + "\u0002\u1d77\u1d78\u0003\u0002\u0002\u0002\u1d78\u1d79\u0003\u0002\u0002", + "\u0002\u1d79\u1d7a\u0007\u001f\u0002\u0002\u1d7a\u1d7d\u0007\u032a\u0002", + "\u0002\u1d7b\u1d7e\u0007\u0322\u0002\u0002\u1d7c\u1d7e\u0005\u03c6\u01e4", + "\u0002\u1d7d\u1d7b\u0003\u0002\u0002\u0002\u1d7d\u1d7c\u0003\u0002\u0002", + "\u0002\u1d7e\u1dc2\u0003\u0002\u0002\u0002\u1d7f\u1d81\u0007\u033e\u0002", + "\u0002\u1d80\u1d7f\u0003\u0002\u0002\u0002\u1d80\u1d81\u0003\u0002\u0002", + "\u0002\u1d81\u1d82\u0003\u0002\u0002\u0002\u1d82\u1d83\u0007$\u0002", + "\u0002\u1d83\u1d86\u0007\u032a\u0002\u0002\u1d84\u1d87\u0007\u0322\u0002", + "\u0002\u1d85\u1d87\u0005\u03c6\u01e4\u0002\u1d86\u1d84\u0003\u0002\u0002", + "\u0002\u1d86\u1d85\u0003\u0002\u0002\u0002\u1d87\u1dc2\u0003\u0002\u0002", + "\u0002\u1d88\u1d8a\u0007\u033e\u0002\u0002\u1d89\u1d88\u0003\u0002\u0002", + "\u0002\u1d89\u1d8a\u0003\u0002\u0002\u0002\u1d8a\u1d8b\u0003\u0002\u0002", + "\u0002\u1d8b\u1d8c\u0007\u00bf\u0002\u0002\u1d8c\u1d8f\u0007\u032a\u0002", + "\u0002\u1d8d\u1d90\u0007\u0322\u0002\u0002\u1d8e\u1d90\u0005\u03c6\u01e4", + "\u0002\u1d8f\u1d8d\u0003\u0002\u0002\u0002\u1d8f\u1d8e\u0003\u0002\u0002", + "\u0002\u1d90\u1dc2\u0003\u0002\u0002\u0002\u1d91\u1d93\u0007\u033e\u0002", + "\u0002\u1d92\u1d91\u0003\u0002\u0002\u0002\u1d92\u1d93\u0003\u0002\u0002", + "\u0002\u1d93\u1d94\u0003\u0002\u0002\u0002\u1d94\u1dc2\tW\u0002\u0002", + "\u1d95\u1d97\u0007\u033e\u0002\u0002\u1d96\u1d95\u0003\u0002\u0002\u0002", + "\u1d96\u1d97\u0003\u0002\u0002\u0002\u1d97\u1d98\u0003\u0002\u0002\u0002", + "\u1d98\u1dc2\tX\u0002\u0002\u1d99\u1d9b\u0007\u033e\u0002\u0002\u1d9a", + "\u1d99\u0003\u0002\u0002\u0002\u1d9a\u1d9b\u0003\u0002\u0002\u0002\u1d9b", + "\u1d9c\u0003\u0002\u0002\u0002\u1d9c\u1dc2\u0007\u0115\u0002\u0002\u1d9d", + "\u1d9f\u0007\u033e\u0002\u0002\u1d9e\u1d9d\u0003\u0002\u0002\u0002\u1d9e", + "\u1d9f\u0003\u0002\u0002\u0002\u1d9f\u1da0\u0003\u0002\u0002\u0002\u1da0", + "\u1da3\u0007\u014a\u0002\u0002\u1da1\u1da2\u0007\u032a\u0002\u0002\u1da2", + "\u1da4\u0007\u0322\u0002\u0002\u1da3\u1da1\u0003\u0002\u0002\u0002\u1da3", + "\u1da4\u0003\u0002\u0002\u0002\u1da4\u1dc2\u0003\u0002\u0002\u0002\u1da5", + "\u1da7\u0007\u033e\u0002\u0002\u1da6\u1da5\u0003\u0002\u0002\u0002\u1da6", + "\u1da7\u0003\u0002\u0002\u0002\u1da7\u1da8\u0003\u0002\u0002\u0002\u1da8", + "\u1dc2\tY\u0002\u0002\u1da9\u1dab\u0007\u033e\u0002\u0002\u1daa\u1da9", + "\u0003\u0002\u0002\u0002\u1daa\u1dab\u0003\u0002\u0002\u0002\u1dab\u1dac", + "\u0003\u0002\u0002\u0002\u1dac\u1dc2\tZ\u0002\u0002\u1dad\u1daf\u0007", + "\u033e\u0002\u0002\u1dae\u1dad\u0003\u0002\u0002\u0002\u1dae\u1daf\u0003", + "\u0002\u0002\u0002\u1daf\u1db0\u0003\u0002\u0002\u0002\u1db0\u1db1\u0007", + "\u01ec\u0002\u0002\u1db1\u1db2\u0007\u033c\u0002\u0002\u1db2\u1db3\u0007", + "\u018a\u0002\u0002\u1db3\u1db4\u0007\u032a\u0002\u0002\u1db4\u1db5\t", + "[\u0002\u0002\u1db5\u1db6\u0007\u033e\u0002\u0002\u1db6\u1db7\u0007", + "\u0135\u0002\u0002\u1db7\u1db8\u0007+\u0002\u0002\u1db8\u1dbf\u0007", + "\u032a\u0002\u0002\u1db9\u1dc0\u0005\u03c6\u01e4\u0002\u1dba\u1dbb\u0007", + "\u0135\u0002\u0002\u1dbb\u1dbc\u0007\u0012\u0002\u0002\u1dbc\u1dbd\u0007", + "\u00ac\u0002\u0002\u1dbd\u1dbe\u0007\u032a\u0002\u0002\u1dbe\u1dc0\u0005", + "\u03c6\u01e4\u0002\u1dbf\u1db9\u0003\u0002\u0002\u0002\u1dbf\u1dba\u0003", + "\u0002\u0002\u0002\u1dc0\u1dc2\u0003\u0002\u0002\u0002\u1dc1\u1d28\u0003", + "\u0002\u0002\u0002\u1dc1\u1d2c\u0003\u0002\u0002\u0002\u1dc1\u1d30\u0003", + "\u0002\u0002\u0002\u1dc1\u1d34\u0003\u0002\u0002\u0002\u1dc1\u1d3d\u0003", + "\u0002\u0002\u0002\u1dc1\u1d43\u0003\u0002\u0002\u0002\u1dc1\u1d47\u0003", + "\u0002\u0002\u0002\u1dc1\u1d4b\u0003\u0002\u0002\u0002\u1dc1\u1d5c\u0003", + "\u0002\u0002\u0002\u1dc1\u1d60\u0003\u0002\u0002\u0002\u1dc1\u1d64\u0003", + "\u0002\u0002\u0002\u1dc1\u1d68\u0003\u0002\u0002\u0002\u1dc1\u1d71\u0003", + "\u0002\u0002\u0002\u1dc1\u1d77\u0003\u0002\u0002\u0002\u1dc1\u1d80\u0003", + "\u0002\u0002\u0002\u1dc1\u1d89\u0003\u0002\u0002\u0002\u1dc1\u1d92\u0003", + "\u0002\u0002\u0002\u1dc1\u1d96\u0003\u0002\u0002\u0002\u1dc1\u1d9a\u0003", + "\u0002\u0002\u0002\u1dc1\u1d9e\u0003\u0002\u0002\u0002\u1dc1\u1da6\u0003", + "\u0002\u0002\u0002\u1dc1\u1daa\u0003\u0002\u0002\u0002\u1dc1\u1dae\u0003", + "\u0002\u0002\u0002\u1dc2\u1dc5\u0003\u0002\u0002\u0002\u1dc3\u1dc1\u0003", + "\u0002\u0002\u0002\u1dc3\u1dc4\u0003\u0002\u0002\u0002\u1dc4\u1dc7\u0003", + "\u0002\u0002\u0002\u1dc5\u1dc3\u0003\u0002\u0002\u0002\u1dc6\u1d26\u0003", + "\u0002\u0002\u0002\u1dc6\u1dc7\u0003\u0002\u0002\u0002\u1dc7\u0267\u0003", + "\u0002\u0002\u0002\u1dc8\u1dc9\u0007\u001a\u0002\u0002\u1dc9\u1dca\u0007", + "\u00bb\u0002\u0002\u1dca\u1de2\u0005\u03c6\u01e4\u0002\u1dcb\u1dd0\u0007", + "\u015a\u0002\u0002\u1dcc\u1dce\u0007\u033e\u0002\u0002\u1dcd\u1dcc\u0003", + "\u0002\u0002\u0002\u1dcd\u1dce\u0003\u0002\u0002\u0002\u1dce\u1dcf\u0003", + "\u0002\u0002\u0002\u1dcf\u1dd1\u0005\u03c6\u01e4\u0002\u1dd0\u1dcd\u0003", + "\u0002\u0002\u0002\u1dd1\u1dd2\u0003\u0002\u0002\u0002\u1dd2\u1dd0\u0003", + "\u0002\u0002\u0002\u1dd2\u1dd3\u0003\u0002\u0002\u0002\u1dd3\u1de3\u0003", + "\u0002\u0002\u0002\u1dd4\u1dde\u0007\u015a\u0002\u0002\u1dd5\u1dd7\u0007", + "\u033e\u0002\u0002\u1dd6\u1dd5\u0003\u0002\u0002\u0002\u1dd6\u1dd7\u0003", + "\u0002\u0002\u0002\u1dd7\u1dd8\u0003\u0002\u0002\u0002\u1dd8\u1dd9\t", + "R\u0002\u0002\u1dd9\u1ddc\u0007\u032a\u0002\u0002\u1dda\u1ddd\u0007", + "\u0326\u0002\u0002\u1ddb\u1ddd\u0005\u03c6\u01e4\u0002\u1ddc\u1dda\u0003", + "\u0002\u0002\u0002\u1ddc\u1ddb\u0003\u0002\u0002\u0002\u1ddd\u1ddf\u0003", + "\u0002\u0002\u0002\u1dde\u1dd6\u0003\u0002\u0002\u0002\u1ddf\u1de0\u0003", + "\u0002\u0002\u0002\u1de0\u1dde\u0003\u0002\u0002\u0002\u1de0\u1de1\u0003", + "\u0002\u0002\u0002\u1de1\u1de3\u0003\u0002\u0002\u0002\u1de2\u1dcb\u0003", + "\u0002\u0002\u0002\u1de2\u1dd4\u0003\u0002\u0002\u0002\u1de3\u1e05\u0003", + "\u0002\u0002\u0002\u1de4\u1de5\u0007\u00cd\u0002\u0002\u1de5\u1dea\u0007", + "\u015a\u0002\u0002\u1de6\u1de8\u0007\u033e\u0002\u0002\u1de7\u1de6\u0003", + "\u0002\u0002\u0002\u1de7\u1de8\u0003\u0002\u0002\u0002\u1de8\u1de9\u0003", + "\u0002\u0002\u0002\u1de9\u1deb\u0005\u03c6\u01e4\u0002\u1dea\u1de7\u0003", + "\u0002\u0002\u0002\u1deb\u1dec\u0003\u0002\u0002\u0002\u1dec\u1dea\u0003", + "\u0002\u0002\u0002\u1dec\u1ded\u0003\u0002\u0002\u0002\u1ded\u1def\u0003", + "\u0002\u0002\u0002\u1dee\u1de4\u0003\u0002\u0002\u0002\u1def\u1df0\u0003", + "\u0002\u0002\u0002\u1df0\u1dee\u0003\u0002\u0002\u0002\u1df0\u1df1\u0003", + "\u0002\u0002\u0002\u1df1\u1e06\u0003\u0002\u0002\u0002\u1df2\u1df3\u0007", + "\u00cd\u0002\u0002\u1df3\u1dfd\u0007\u015a\u0002\u0002\u1df4\u1df6\u0007", + "\u033e\u0002\u0002\u1df5\u1df4\u0003\u0002\u0002\u0002\u1df5\u1df6\u0003", + "\u0002\u0002\u0002\u1df6\u1df7\u0003\u0002\u0002\u0002\u1df7\u1df8\t", + "R\u0002\u0002\u1df8\u1dfb\u0007\u032a\u0002\u0002\u1df9\u1dfc\u0007", + "\u0326\u0002\u0002\u1dfa\u1dfc\u0005\u03c6\u01e4\u0002\u1dfb\u1df9\u0003", + "\u0002\u0002\u0002\u1dfb\u1dfa\u0003\u0002\u0002\u0002\u1dfc\u1dfe\u0003", + "\u0002\u0002\u0002\u1dfd\u1df5\u0003\u0002\u0002\u0002\u1dfe\u1dff\u0003", + "\u0002\u0002\u0002\u1dff\u1dfd\u0003\u0002\u0002\u0002\u1dff\u1e00\u0003", + "\u0002\u0002\u0002\u1e00\u1e02\u0003\u0002\u0002\u0002\u1e01\u1df2\u0003", + "\u0002\u0002\u0002\u1e02\u1e03\u0003\u0002\u0002\u0002\u1e03\u1e01\u0003", + "\u0002\u0002\u0002\u1e03\u1e04\u0003\u0002\u0002\u0002\u1e04\u1e06\u0003", + "\u0002\u0002\u0002\u1e05\u1dee\u0003\u0002\u0002\u0002\u1e05\u1e01\u0003", + "\u0002\u0002\u0002\u1e05\u1e06\u0003\u0002\u0002\u0002\u1e06\u1eb4\u0003", + "\u0002\u0002\u0002\u1e07\u1eb1\u0007\u0179\u0002\u0002\u1e08\u1e0a\u0007", + "\u033e\u0002\u0002\u1e09\u1e08\u0003\u0002\u0002\u0002\u1e09\u1e0a\u0003", + "\u0002\u0002\u0002\u1e0a\u1e0b\u0003\u0002\u0002\u0002\u1e0b\u1eb0\u0007", + "`\u0002\u0002\u1e0c\u1e0e\u0007\u033e\u0002\u0002\u1e0d\u1e0c\u0003", + "\u0002\u0002\u0002\u1e0d\u1e0e\u0003\u0002\u0002\u0002\u1e0e\u1e0f\u0003", + "\u0002\u0002\u0002\u1e0f\u1eb0\u0007H\u0002\u0002\u1e10\u1e12\u0007", + "\u033e\u0002\u0002\u1e11\u1e10\u0003\u0002\u0002\u0002\u1e11\u1e12\u0003", + "\u0002\u0002\u0002\u1e12\u1e13\u0003\u0002\u0002\u0002\u1e13\u1eb0\t", + "S\u0002\u0002\u1e14\u1e16\u0007\u033e\u0002\u0002\u1e15\u1e14\u0003", + "\u0002\u0002\u0002\u1e15\u1e16\u0003\u0002\u0002\u0002\u1e16\u1e17\u0003", + "\u0002\u0002\u0002\u1e17\u1e18\u0007\u01db\u0002\u0002\u1e18\u1e1b\u0007", + "\u032a\u0002\u0002\u1e19\u1e1c\u0007\u0326\u0002\u0002\u1e1a\u1e1c\u0005", + "\u03c6\u01e4\u0002\u1e1b\u1e19\u0003\u0002\u0002\u0002\u1e1b\u1e1a\u0003", + "\u0002\u0002\u0002\u1e1c\u1eb0\u0003\u0002\u0002\u0002\u1e1d\u1e1f\u0007", + "\u033e\u0002\u0002\u1e1e\u1e1d\u0003\u0002\u0002\u0002\u1e1e\u1e1f\u0003", + "\u0002\u0002\u0002\u1e1f\u1e20\u0003\u0002\u0002\u0002\u1e20\u1e21\u0007", + "\u025d\u0002\u0002\u1e21\u1e22\u0007\u032a\u0002\u0002\u1e22\u1eb0\u0005", + "\u03c6\u01e4\u0002\u1e23\u1e25\u0007\u033e\u0002\u0002\u1e24\u1e23\u0003", + "\u0002\u0002\u0002\u1e24\u1e25\u0003\u0002\u0002\u0002\u1e25\u1e26\u0003", + "\u0002\u0002\u0002\u1e26\u1eb0\u0007\u01c4\u0002\u0002\u1e27\u1e29\u0007", + "\u033e\u0002\u0002\u1e28\u1e27\u0003\u0002\u0002\u0002\u1e28\u1e29\u0003", + "\u0002\u0002\u0002\u1e29\u1e2a\u0003\u0002\u0002\u0002\u1e2a\u1eb0\u0007", + "\u0084\u0002\u0002\u1e2b\u1e2d\u0007\u033e\u0002\u0002\u1e2c\u1e2b\u0003", + "\u0002\u0002\u0002\u1e2c\u1e2d\u0003\u0002\u0002\u0002\u1e2d\u1e3a\u0003", + "\u0002\u0002\u0002\u1e2e\u1e2f\u0007x\u0002\u0002\u1e2f\u1e32\u0007", + "\u032a\u0002\u0002\u1e30\u1e33\u0007\u0326\u0002\u0002\u1e31\u1e33\u0005", + "\u03c6\u01e4\u0002\u1e32\u1e30\u0003\u0002\u0002\u0002\u1e32\u1e31\u0003", + "\u0002\u0002\u0002\u1e33\u1e3b\u0003\u0002\u0002\u0002\u1e34\u1e35\u0007", + "\u0119\u0002\u0002\u1e35\u1e38\u0007\u032a\u0002\u0002\u1e36\u1e39\u0007", + "\u0322\u0002\u0002\u1e37\u1e39\u0005\u03c6\u01e4\u0002\u1e38\u1e36\u0003", + "\u0002\u0002\u0002\u1e38\u1e37\u0003\u0002\u0002\u0002\u1e39\u1e3b\u0003", + "\u0002\u0002\u0002\u1e3a\u1e2e\u0003\u0002\u0002\u0002\u1e3a\u1e34\u0003", + "\u0002\u0002\u0002\u1e3b\u1eb0\u0003\u0002\u0002\u0002\u1e3c\u1e3e\u0007", + "\u033e\u0002\u0002\u1e3d\u1e3c\u0003\u0002\u0002\u0002\u1e3d\u1e3e\u0003", + "\u0002\u0002\u0002\u1e3e\u1e3f\u0003\u0002\u0002\u0002\u1e3f\u1eb0\t", + "T\u0002\u0002\u1e40\u1e42\u0007\u033e\u0002\u0002\u1e41\u1e40\u0003", + "\u0002\u0002\u0002\u1e41\u1e42\u0003\u0002\u0002\u0002\u1e42\u1e43\u0003", + "\u0002\u0002\u0002\u1e43\u1eb0\tU\u0002\u0002\u1e44\u1e46\u0007\u033e", + "\u0002\u0002\u1e45\u1e44\u0003\u0002\u0002\u0002\u1e45\u1e46\u0003\u0002", + "\u0002\u0002\u1e46\u1e47\u0003\u0002\u0002\u0002\u1e47\u1eb0\tV\u0002", + "\u0002\u1e48\u1e4a\u0007\u033e\u0002\u0002\u1e49\u1e48\u0003\u0002\u0002", + "\u0002\u1e49\u1e4a\u0003\u0002\u0002\u0002\u1e4a\u1e4b\u0003\u0002\u0002", + "\u0002\u1e4b\u1e4c\u0007\u00c5\u0002\u0002\u1e4c\u1e4f\u0007\u032a\u0002", + "\u0002\u1e4d\u1e50\u0007\u0326\u0002\u0002\u1e4e\u1e50\u0005\u03c6\u01e4", + "\u0002\u1e4f\u1e4d\u0003\u0002\u0002\u0002\u1e4f\u1e4e\u0003\u0002\u0002", + "\u0002\u1e50\u1eb0\u0003\u0002\u0002\u0002\u1e51\u1e53\u0007\u033e\u0002", + "\u0002\u1e52\u1e51\u0003\u0002\u0002\u0002\u1e52\u1e53\u0003\u0002\u0002", + "\u0002\u1e53\u1e54\u0003\u0002\u0002\u0002\u1e54\u1e55\u0007\u00c6\u0002", + "\u0002\u1e55\u1e56\u0007\u032a\u0002\u0002\u1e56\u1eb0\u0007\u0326\u0002", + "\u0002\u1e57\u1e59\u0007\u033e\u0002\u0002\u1e58\u1e57\u0003\u0002\u0002", + "\u0002\u1e58\u1e59\u0003\u0002\u0002\u0002\u1e59\u1e5a\u0003\u0002\u0002", + "\u0002\u1e5a\u1e5b\u0007\u001f\u0002\u0002\u1e5b\u1e5e\u0007\u032a\u0002", + "\u0002\u1e5c\u1e5f\u0007\u0322\u0002\u0002\u1e5d\u1e5f\u0005\u03c6\u01e4", + "\u0002\u1e5e\u1e5c\u0003\u0002\u0002\u0002\u1e5e\u1e5d\u0003\u0002\u0002", + "\u0002\u1e5f\u1eb0\u0003\u0002\u0002\u0002\u1e60\u1e62\u0007\u033e\u0002", + "\u0002\u1e61\u1e60\u0003\u0002\u0002\u0002\u1e61\u1e62\u0003\u0002\u0002", + "\u0002\u1e62\u1e63\u0003\u0002\u0002\u0002\u1e63\u1e64\u0007$\u0002", + "\u0002\u1e64\u1e67\u0007\u032a\u0002\u0002\u1e65\u1e68\u0007\u0322\u0002", + "\u0002\u1e66\u1e68\u0005\u03c6\u01e4\u0002\u1e67\u1e65\u0003\u0002\u0002", + "\u0002\u1e67\u1e66\u0003\u0002\u0002\u0002\u1e68\u1eb0\u0003\u0002\u0002", + "\u0002\u1e69\u1e6b\u0007\u033e\u0002\u0002\u1e6a\u1e69\u0003\u0002\u0002", + "\u0002\u1e6a\u1e6b\u0003\u0002\u0002\u0002\u1e6b\u1e6c\u0003\u0002\u0002", + "\u0002\u1e6c\u1e6d\u0007\u00bf\u0002\u0002\u1e6d\u1e70\u0007\u032a\u0002", + "\u0002\u1e6e\u1e71\u0007\u0322\u0002\u0002\u1e6f\u1e71\u0005\u03c6\u01e4", + "\u0002\u1e70\u1e6e\u0003\u0002\u0002\u0002\u1e70\u1e6f\u0003\u0002\u0002", + "\u0002\u1e71\u1eb0\u0003\u0002\u0002\u0002\u1e72\u1e74\u0007\u033e\u0002", + "\u0002\u1e73\u1e72\u0003\u0002\u0002\u0002\u1e73\u1e74\u0003\u0002\u0002", + "\u0002\u1e74\u1e75\u0003\u0002\u0002\u0002\u1e75\u1eb0\tW\u0002\u0002", + "\u1e76\u1e78\u0007\u033e\u0002\u0002\u1e77\u1e76\u0003\u0002\u0002\u0002", + "\u1e77\u1e78\u0003\u0002\u0002\u0002\u1e78\u1e79\u0003\u0002\u0002\u0002", + "\u1e79\u1eb0\tX\u0002\u0002\u1e7a\u1e7c\u0007\u033e\u0002\u0002\u1e7b", + "\u1e7a\u0003\u0002\u0002\u0002\u1e7b\u1e7c\u0003\u0002\u0002\u0002\u1e7c", + "\u1e7d\u0003\u0002\u0002\u0002\u1e7d\u1eb0\u0007\u0115\u0002\u0002\u1e7e", + "\u1e80\u0007\u033e\u0002\u0002\u1e7f\u1e7e\u0003\u0002\u0002\u0002\u1e7f", + "\u1e80\u0003\u0002\u0002\u0002\u1e80\u1e81\u0003\u0002\u0002\u0002\u1e81", + "\u1e84\u0007\u014a\u0002\u0002\u1e82\u1e83\u0007\u032a\u0002\u0002\u1e83", + "\u1e85\u0007\u0322\u0002\u0002\u1e84\u1e82\u0003\u0002\u0002\u0002\u1e84", + "\u1e85\u0003\u0002\u0002\u0002\u1e85\u1eb0\u0003\u0002\u0002\u0002\u1e86", + "\u1e88\u0007\u033e\u0002\u0002\u1e87\u1e86\u0003\u0002\u0002\u0002\u1e87", + "\u1e88\u0003\u0002\u0002\u0002\u1e88\u1e89\u0003\u0002\u0002\u0002\u1e89", + "\u1eb0\tY\u0002\u0002\u1e8a\u1e8c\u0007\u033e\u0002\u0002\u1e8b\u1e8a", + "\u0003\u0002\u0002\u0002\u1e8b\u1e8c\u0003\u0002\u0002\u0002\u1e8c\u1e8d", + "\u0003\u0002\u0002\u0002\u1e8d\u1eb0\tZ\u0002\u0002\u1e8e\u1e90\u0007", + "\u033e\u0002\u0002\u1e8f\u1e8e\u0003\u0002\u0002\u0002\u1e8f\u1e90\u0003", + "\u0002\u0002\u0002\u1e90\u1e95\u0003\u0002\u0002\u0002\u1e91\u1e96\u0007", + "\u026b\u0002\u0002\u1e92\u1e93\u0007\u02dc\u0002\u0002\u1e93\u1e94\u0007", + "\u032a\u0002\u0002\u1e94\u1e96\u0007\u0326\u0002\u0002\u1e95\u1e91\u0003", + "\u0002\u0002\u0002\u1e95\u1e92\u0003\u0002\u0002\u0002\u1e96\u1eb0\u0003", + "\u0002\u0002\u0002\u1e97\u1e99\u0007\u033e\u0002\u0002\u1e98\u1e97\u0003", + "\u0002\u0002\u0002\u1e98\u1e99\u0003\u0002\u0002\u0002\u1e99\u1e9a\u0003", + "\u0002\u0002\u0002\u1e9a\u1eb0\u0007\u0264\u0002\u0002\u1e9b\u1e9d\u0007", + "\u033e\u0002\u0002\u1e9c\u1e9b\u0003\u0002\u0002\u0002\u1e9c\u1e9d\u0003", + "\u0002\u0002\u0002\u1e9d\u1e9e\u0003\u0002\u0002\u0002\u1e9e\u1e9f\u0007", + "\u01ec\u0002\u0002\u1e9f\u1ea0\u0007\u033c\u0002\u0002\u1ea0\u1ea1\u0007", + "\u018a\u0002\u0002\u1ea1\u1ea2\u0007\u032a\u0002\u0002\u1ea2\u1ea3\t", + "[\u0002\u0002\u1ea3\u1ea4\u0007\u033e\u0002\u0002\u1ea4\u1ea5\u0007", + "\u0135\u0002\u0002\u1ea5\u1ea6\u0007+\u0002\u0002\u1ea6\u1ead\u0007", + "\u032a\u0002\u0002\u1ea7\u1eae\u0005\u03c6\u01e4\u0002\u1ea8\u1ea9\u0007", + "\u0135\u0002\u0002\u1ea9\u1eaa\u0007\u0012\u0002\u0002\u1eaa\u1eab\u0007", + "\u00ac\u0002\u0002\u1eab\u1eac\u0007\u032a\u0002\u0002\u1eac\u1eae\u0005", + "\u03c6\u01e4\u0002\u1ead\u1ea7\u0003\u0002\u0002\u0002\u1ead\u1ea8\u0003", + "\u0002\u0002\u0002\u1eae\u1eb0\u0003\u0002\u0002\u0002\u1eaf\u1e09\u0003", + "\u0002\u0002\u0002\u1eaf\u1e0d\u0003\u0002\u0002\u0002\u1eaf\u1e11\u0003", + "\u0002\u0002\u0002\u1eaf\u1e15\u0003\u0002\u0002\u0002\u1eaf\u1e1e\u0003", + "\u0002\u0002\u0002\u1eaf\u1e24\u0003\u0002\u0002\u0002\u1eaf\u1e28\u0003", + "\u0002\u0002\u0002\u1eaf\u1e2c\u0003\u0002\u0002\u0002\u1eaf\u1e3d\u0003", + "\u0002\u0002\u0002\u1eaf\u1e41\u0003\u0002\u0002\u0002\u1eaf\u1e45\u0003", + "\u0002\u0002\u0002\u1eaf\u1e49\u0003\u0002\u0002\u0002\u1eaf\u1e52\u0003", + "\u0002\u0002\u0002\u1eaf\u1e58\u0003\u0002\u0002\u0002\u1eaf\u1e61\u0003", + "\u0002\u0002\u0002\u1eaf\u1e6a\u0003\u0002\u0002\u0002\u1eaf\u1e73\u0003", + "\u0002\u0002\u0002\u1eaf\u1e77\u0003\u0002\u0002\u0002\u1eaf\u1e7b\u0003", + "\u0002\u0002\u0002\u1eaf\u1e7f\u0003\u0002\u0002\u0002\u1eaf\u1e87\u0003", + "\u0002\u0002\u0002\u1eaf\u1e8b\u0003\u0002\u0002\u0002\u1eaf\u1e8f\u0003", + "\u0002\u0002\u0002\u1eaf\u1e98\u0003\u0002\u0002\u0002\u1eaf\u1e9c\u0003", + "\u0002\u0002\u0002\u1eb0\u1eb3\u0003\u0002\u0002\u0002\u1eb1\u1eaf\u0003", + "\u0002\u0002\u0002\u1eb1\u1eb2\u0003\u0002\u0002\u0002\u1eb2\u1eb5\u0003", + "\u0002\u0002\u0002\u1eb3\u1eb1\u0003\u0002\u0002\u0002\u1eb4\u1e07\u0003", + "\u0002\u0002\u0002\u1eb4\u1eb5\u0003\u0002\u0002\u0002\u1eb5\u0269\u0003", + "\u0002\u0002\u0002\u1eb6\u1eb7\u0007\u001a\u0002\u0002\u1eb7\u1eb8\u0007", + "+\u0002\u0002\u1eb8\u1eb9\u0005\u03c6\u01e4\u0002\u1eb9\u1eba\u0007", + "\u015a\u0002\u0002\u1eba\u1ebb\u0007\u0081\u0002\u0002\u1ebb\u1ebc\u0007", + "\u032a\u0002\u0002\u1ebc\u1edc\u0007\u0326\u0002\u0002\u1ebd\u1ebe\u0007", + "\u0179\u0002\u0002\u1ebe\u1ebf\u0007\u028c\u0002\u0002\u1ebf\u1ec0\u0007", + "\u00ac\u0002\u0002\u1ec0\u1ed7\u0007\u033c\u0002\u0002\u1ec1\u1ec3\u0007", + "\u033e\u0002\u0002\u1ec2\u1ec1\u0003\u0002\u0002\u0002\u1ec2\u1ec3\u0003", + "\u0002\u0002\u0002\u1ec3\u1ec4\u0003\u0002\u0002\u0002\u1ec4\u1ec5\u0007", + "\u0081\u0002\u0002\u1ec5\u1ec6\u0007\u032a\u0002\u0002\u1ec6\u1ed8\u0007", + "\u0326\u0002\u0002\u1ec7\u1ec9\u0007\u033e\u0002\u0002\u1ec8\u1ec7\u0003", + "\u0002\u0002\u0002\u1ec8\u1ec9\u0003\u0002\u0002\u0002\u1ec9\u1eca\u0003", + "\u0002\u0002\u0002\u1eca\u1ecb\u0007\u01ec\u0002\u0002\u1ecb\u1ecc\u0007", + "&\u0002\u0002\u1ecc\u1ecd\u0007\u00f4\u0002\u0002\u1ecd\u1ece\u0007", + "\u032a\u0002\u0002\u1ece\u1ed8\u0007\u0326\u0002\u0002\u1ecf\u1ed1\u0007", + "\u033e\u0002\u0002\u1ed0\u1ecf\u0003\u0002\u0002\u0002\u1ed0\u1ed1\u0003", + "\u0002\u0002\u0002\u1ed1\u1ed2\u0003\u0002\u0002\u0002\u1ed2\u1ed3\u0007", + "\u01d1\u0002\u0002\u1ed3\u1ed4\u0007&\u0002\u0002\u1ed4\u1ed5\u0007", + "\u00f4\u0002\u0002\u1ed5\u1ed6\u0007\u032a\u0002\u0002\u1ed6\u1ed8\u0007", + "\u0326\u0002\u0002\u1ed7\u1ec2\u0003\u0002\u0002\u0002\u1ed7\u1ec8\u0003", + "\u0002\u0002\u0002\u1ed7\u1ed0\u0003\u0002\u0002\u0002\u1ed8\u1ed9\u0003", + "\u0002\u0002\u0002\u1ed9\u1ed7\u0003\u0002\u0002\u0002\u1ed9\u1eda\u0003", + "\u0002\u0002\u0002\u1eda\u1edb\u0003\u0002\u0002\u0002\u1edb\u1edd\u0007", + "\u033d\u0002\u0002\u1edc\u1ebd\u0003\u0002\u0002\u0002\u1edc\u1edd\u0003", + "\u0002\u0002\u0002\u1edd\u026b\u0003\u0002\u0002\u0002\u1ede\u1edf\u0007", + "\u001a\u0002\u0002\u1edf\u1ee0\u0007\u00bd\u0002\u0002\u1ee0\u1ee1\u0007", + "\u00ac\u0002\u0002\u1ee1\u1ee2\u0007\u015a\u0002\u0002\u1ee2\u1ee3\u0007", + "\u0081\u0002\u0002\u1ee3\u1ee4\u0007\u032a\u0002\u0002\u1ee4\u1ee5\u0007", + "\u0326\u0002\u0002\u1ee5\u1ee6\u0007\u01ec\u0002\u0002\u1ee6\u1ee7\u0007", + "&\u0002\u0002\u1ee7\u1ee8\u0007\u00f4\u0002\u0002\u1ee8\u1ee9\u0007", + "\u032a\u0002\u0002\u1ee9\u1eea\u0007\u0326\u0002\u0002\u1eea\u026d\u0003", + "\u0002\u0002\u0002\u1eeb\u1eec\u0007\u001a\u0002\u0002\u1eec\u1eed\u0007", + "\u0136\u0002\u0002\u1eed\u1eee\u0007\u00bd\u0002\u0002\u1eee\u1eef\u0007", + "\u00ac\u0002\u0002\u1eef\u1ef0\u0007\u015a\u0002\u0002\u1ef0\u1ef1\u0007", + "\u0081\u0002\u0002\u1ef1\u1ef2\u0007\u032a\u0002\u0002\u1ef2\u1ef3\u0007", + "\u0326\u0002\u0002\u1ef3\u1ef4\u0007\u01ec\u0002\u0002\u1ef4\u1ef5\u0007", + "&\u0002\u0002\u1ef5\u1ef6\u0007\u00f4\u0002\u0002\u1ef6\u1ef7\u0007", + "\u032a\u0002\u0002\u1ef7\u1ef8\u0007\u0326\u0002\u0002\u1ef8\u026f\u0003", + "\u0002\u0002\u0002\u1ef9\u1efd\u0007\u00af\u0002\u0002\u1efa\u1efe\u0005", + "\u0272\u013a\u0002\u1efb\u1efe\u0005\u0274\u013b\u0002\u1efc\u1efe\u0005", + "\u0276\u013c\u0002\u1efd\u1efa\u0003\u0002\u0002\u0002\u1efd\u1efb\u0003", + "\u0002\u0002\u0002\u1efd\u1efc\u0003\u0002\u0002\u0002\u1efe\u0271\u0003", + "\u0002\u0002\u0002\u1eff\u1f02\t\u0018\u0002\u0002\u1f00\u1f02\u0007", + "\u0307\u0002\u0002\u1f01\u1eff\u0003\u0002\u0002\u0002\u1f01\u1f00\u0003", + "\u0002\u0002\u0002\u1f02\u1f05\u0003\u0002\u0002\u0002\u1f03\u1f04\u0007", + "\u0179\u0002\u0002\u1f04\u1f06\u0007\u02e1\u0002\u0002\u1f05\u1f03\u0003", + "\u0002\u0002\u0002\u1f05\u1f06\u0003\u0002\u0002\u0002\u1f06\u0273\u0003", + "\u0002\u0002\u0002\u1f07\u1f08\u0007\u0293\u0002\u0002\u1f08\u1f09\u0007", + "\u00dd\u0002\u0002\u1f09\u1f0c\u0007\u02e8\u0002\u0002\u1f0a\u1f0d\u0007", + "\u0006\u0002\u0002\u1f0b\u1f0d\u0007\u0322\u0002\u0002\u1f0c\u1f0a\u0003", + "\u0002\u0002\u0002\u1f0c\u1f0b\u0003\u0002\u0002\u0002\u1f0d\u0275\u0003", + "\u0002\u0002\u0002\u1f0e\u1f0f\u0007\u014a\u0002\u0002\u1f0f\u1f10\u0007", + "\u0226\u0002\u0002\u1f10\u1f11\u0007\u0322\u0002\u0002\u1f11\u0277\u0003", + "\u0002\u0002\u0002\u1f12\u1f13\u0007v\u0002\u0002\u1f13\u1f14\u0005", + "\u027a\u013e\u0002\u1f14\u0279\u0003\u0002\u0002\u0002\u1f15\u1f16\u0007", + "\u0321\u0002\u0002\u1f16\u1f18\u0007\u032a\u0002\u0002\u1f17\u1f15\u0003", + "\u0002\u0002\u0002\u1f17\u1f18\u0003\u0002\u0002\u0002\u1f18\u1f1b\u0003", + "\u0002\u0002\u0002\u1f19\u1f1c\u0005\u0396\u01cc\u0002\u1f1a\u1f1c\u0005", + "\u02d8\u016d\u0002\u1f1b\u1f19\u0003\u0002\u0002\u0002\u1f1b\u1f1a\u0003", + "\u0002\u0002\u0002\u1f1c\u1f25\u0003\u0002\u0002\u0002\u1f1d\u1f22\u0005", + "\u027c\u013f\u0002\u1f1e\u1f1f\u0007\u033e\u0002\u0002\u1f1f\u1f21\u0005", + "\u027c\u013f\u0002\u1f20\u1f1e\u0003\u0002\u0002\u0002\u1f21\u1f24\u0003", + "\u0002\u0002\u0002\u1f22\u1f20\u0003\u0002\u0002\u0002\u1f22\u1f23\u0003", + "\u0002\u0002\u0002\u1f23\u1f26\u0003\u0002\u0002\u0002\u1f24\u1f22\u0003", + "\u0002\u0002\u0002\u1f25\u1f1d\u0003\u0002\u0002\u0002\u1f25\u1f26\u0003", + "\u0002\u0002\u0002\u1f26\u1f28\u0003\u0002\u0002\u0002\u1f27\u1f29\u0007", + "\u033f\u0002\u0002\u1f28\u1f27\u0003\u0002\u0002\u0002\u1f28\u1f29\u0003", + "\u0002\u0002\u0002\u1f29\u1f40\u0003\u0002\u0002\u0002\u1f2a\u1f2b\u0007", + "\u033c\u0002\u0002\u1f2b\u1f30\u0005\u027e\u0140\u0002\u1f2c\u1f2d\u0007", + "\u0344\u0002\u0002\u1f2d\u1f2f\u0005\u027e\u0140\u0002\u1f2e\u1f2c\u0003", + "\u0002\u0002\u0002\u1f2f\u1f32\u0003\u0002\u0002\u0002\u1f30\u1f2e\u0003", + "\u0002\u0002\u0002\u1f30\u1f31\u0003\u0002\u0002\u0002\u1f31\u1f33\u0003", + "\u0002\u0002\u0002\u1f32\u1f30\u0003\u0002\u0002\u0002\u1f33\u1f3a\u0007", + "\u033d\u0002\u0002\u1f34\u1f36\u0007\u0010\u0002\u0002\u1f35\u1f34\u0003", + "\u0002\u0002\u0002\u1f35\u1f36\u0003\u0002\u0002\u0002\u1f36\u1f37\u0003", + "\u0002\u0002\u0002\u1f37\u1f38\t\\\u0002\u0002\u1f38\u1f39\u0007\u032a", + "\u0002\u0002\u1f39\u1f3b\u0007\u0326\u0002\u0002\u1f3a\u1f35\u0003\u0002", + "\u0002\u0002\u1f3a\u1f3b\u0003\u0002\u0002\u0002\u1f3b\u1f3d\u0003\u0002", + "\u0002\u0002\u1f3c\u1f3e\u0007\u033f\u0002\u0002\u1f3d\u1f3c\u0003\u0002", + "\u0002\u0002\u1f3d\u1f3e\u0003\u0002\u0002\u0002\u1f3e\u1f40\u0003\u0002", + "\u0002\u0002\u1f3f\u1f17\u0003\u0002\u0002\u0002\u1f3f\u1f2a\u0003\u0002", + "\u0002\u0002\u1f40\u027b\u0003\u0002\u0002\u0002\u1f41\u1f42\u0007\u0321", + "\u0002\u0002\u1f42\u1f44\u0007\u032a\u0002\u0002\u1f43\u1f41\u0003\u0002", + "\u0002\u0002\u1f43\u1f44\u0003\u0002\u0002\u0002\u1f44\u1f4e\u0003\u0002", + "\u0002\u0002\u1f45\u1f48\u0005\u02d6\u016c\u0002\u1f46\u1f48\u0005\u03c6", + "\u01e4\u0002\u1f47\u1f45\u0003\u0002\u0002\u0002\u1f47\u1f46\u0003\u0002", + "\u0002\u0002\u1f48\u1f4a\u0003\u0002\u0002\u0002\u1f49\u1f4b\t]\u0002", + "\u0002\u1f4a\u1f49\u0003\u0002\u0002\u0002\u1f4a\u1f4b\u0003\u0002\u0002", + "\u0002\u1f4b\u1f4f\u0003\u0002\u0002\u0002\u1f4c\u1f4f\u0007Y\u0002", + "\u0002\u1f4d\u1f4f\u0007\u00df\u0002\u0002\u1f4e\u1f47\u0003\u0002\u0002", + "\u0002\u1f4e\u1f4c\u0003\u0002\u0002\u0002\u1f4e\u1f4d\u0003\u0002\u0002", + "\u0002\u1f4f\u027d\u0003\u0002\u0002\u0002\u1f50\u1f51\t\u0003\u0002", + "\u0002\u1f51\u027f\u0003\u0002\u0002\u0002\u1f52\u1f54\u0005\u02ae\u0158", + "\u0002\u1f53\u1f55\u0007\u033f\u0002\u0002\u1f54\u1f53\u0003\u0002\u0002", + "\u0002\u1f54\u1f55\u0003\u0002\u0002\u0002\u1f55\u1f8e\u0003\u0002\u0002", + "\u0002\u1f56\u1f62\u0007\u0091\u0002\u0002\u1f57\u1f59\u0007\u0006\u0002", + "\u0002\u1f58\u1f5a\u0007\u028e\u0002\u0002\u1f59\u1f58\u0003\u0002\u0002", + "\u0002\u1f59\u1f5a\u0003\u0002\u0002\u0002\u1f5a\u1f63\u0003\u0002\u0002", + "\u0002\u1f5b\u1f60\u0005\u029a\u014e\u0002\u1f5c\u1f5d\u0007\u033c\u0002", + "\u0002\u1f5d\u1f5e\u0005\u039e\u01d0\u0002\u1f5e\u1f5f\u0007\u033d\u0002", + "\u0002\u1f5f\u1f61\u0003\u0002\u0002\u0002\u1f60\u1f5c\u0003\u0002\u0002", + "\u0002\u1f60\u1f61\u0003\u0002\u0002\u0002\u1f61\u1f63\u0003\u0002\u0002", + "\u0002\u1f62\u1f57\u0003\u0002\u0002\u0002\u1f62\u1f5b\u0003\u0002\u0002", + "\u0002\u1f63\u1f66\u0003\u0002\u0002\u0002\u1f64\u1f65\u0007\u00e5\u0002", + "\u0002\u1f65\u1f67\u0005\u038e\u01c8\u0002\u1f66\u1f64\u0003\u0002\u0002", + "\u0002\u1f66\u1f67\u0003\u0002\u0002\u0002\u1f67\u1f68\u0003\u0002\u0002", + "\u0002\u1f68\u1f69\u0007\u015a\u0002\u0002\u1f69\u1f6e\u0005\u03c6\u01e4", + "\u0002\u1f6a\u1f6b\u0007\u033e\u0002\u0002\u1f6b\u1f6d\u0005\u03c6\u01e4", + "\u0002\u1f6c\u1f6a\u0003\u0002\u0002\u0002\u1f6d\u1f70\u0003\u0002\u0002", + "\u0002\u1f6e\u1f6c\u0003\u0002\u0002\u0002\u1f6e\u1f6f\u0003\u0002\u0002", + "\u0002\u1f6f\u1f74\u0003\u0002\u0002\u0002\u1f70\u1f6e\u0003\u0002\u0002", + "\u0002\u1f71\u1f72\u0007\u0179\u0002\u0002\u1f72\u1f73\u0007\u0091\u0002", + "\u0002\u1f73\u1f75\u0007\u00ec\u0002\u0002\u1f74\u1f71\u0003\u0002\u0002", + "\u0002\u1f74\u1f75\u0003\u0002\u0002\u0002\u1f75\u1f78\u0003\u0002\u0002", + "\u0002\u1f76\u1f77\u0007\u0010\u0002\u0002\u1f77\u1f79\u0005\u03c6\u01e4", + "\u0002\u1f78\u1f76\u0003\u0002\u0002\u0002\u1f78\u1f79\u0003\u0002\u0002", + "\u0002\u1f79\u1f7b\u0003\u0002\u0002\u0002\u1f7a\u1f7c\u0007\u033f\u0002", + "\u0002\u1f7b\u1f7a\u0003\u0002\u0002\u0002\u1f7b\u1f7c\u0003\u0002\u0002", + "\u0002\u1f7c\u1f8e\u0003\u0002\u0002\u0002\u1f7d\u1f84\u0007\u011c\u0002", + "\u0002\u1f7e\u1f7f\u0007\u033c\u0002\u0002\u1f7f\u1f80\u0007\u0179\u0002", + "\u0002\u1f80\u1f81\u0007\u01bd\u0002\u0002\u1f81\u1f82\u0007\u032a\u0002", + "\u0002\u1f82\u1f83\u0007\u0321\u0002\u0002\u1f83\u1f85\u0007\u033d\u0002", + "\u0002\u1f84\u1f7e\u0003\u0002\u0002\u0002\u1f84\u1f85\u0003\u0002\u0002", + "\u0002\u1f85\u1f87\u0003\u0002\u0002\u0002\u1f86\u1f88\u0007\u033f\u0002", + "\u0002\u1f87\u1f86\u0003\u0002\u0002\u0002\u1f87\u1f88\u0003\u0002\u0002", + "\u0002\u1f88\u1f8e\u0003\u0002\u0002\u0002\u1f89\u1f8e\u0005\u028c\u0147", + "\u0002\u1f8a\u1f8e\u0005\u028e\u0148\u0002\u1f8b\u1f8e\u0005\u0290\u0149", + "\u0002\u1f8c\u1f8e\u0005\u0282\u0142\u0002\u1f8d\u1f52\u0003\u0002\u0002", + "\u0002\u1f8d\u1f56\u0003\u0002\u0002\u0002\u1f8d\u1f7d\u0003\u0002\u0002", + "\u0002\u1f8d\u1f89\u0003\u0002\u0002\u0002\u1f8d\u1f8a\u0003\u0002\u0002", + "\u0002\u1f8d\u1f8b\u0003\u0002\u0002\u0002\u1f8d\u1f8c\u0003\u0002\u0002", + "\u0002\u1f8e\u0281\u0003\u0002\u0002\u0002\u1f8f\u1f90\u0007I\u0002", + "\u0002\u1f90\u1f91\u0007+\u0002\u0002\u1f91\u1f94\u0005\u03c6\u01e4", + "\u0002\u1f92\u1f93\u0007\u0014\u0002\u0002\u1f93\u1f95\u0005\u03c6\u01e4", + "\u0002\u1f94\u1f92\u0003\u0002\u0002\u0002\u1f94\u1f95\u0003\u0002\u0002", + "\u0002\u1f95\u1f99\u0003\u0002\u0002\u0002\u1f96\u1f97\u0007\u008b\u0002", + "\u0002\u1f97\u1f9a\u0005\u0284\u0143\u0002\u1f98\u1f9a\u0005\u0288\u0145", + "\u0002\u1f99\u1f96\u0003\u0002\u0002\u0002\u1f99\u1f98\u0003\u0002\u0002", + "\u0002\u1f9a\u1fa1\u0003\u0002\u0002\u0002\u1f9b\u1f9c\u0007\u0182\u0002", + "\u0002\u1f9c\u1f9d\u0007\u0085\u0002\u0002\u1f9d\u1f9e\u0007\u001c\u0002", + "\u0002\u1f9e\u1f9f\u0007\u01de\u0002\u0002\u1f9f\u1fa0\u0007\u032a\u0002", + "\u0002\u1fa0\u1fa2\t\t\u0002\u0002\u1fa1\u1f9b\u0003\u0002\u0002\u0002", + "\u1fa1\u1fa2\u0003\u0002\u0002\u0002\u1fa2\u0283\u0003\u0002\u0002\u0002", + "\u1fa3\u1fa4\u0007\u0195\u0002\u0002\u1fa4\u1fb5\u0005\u03c6\u01e4\u0002", + "\u1fa5\u1fa7\u0007\u01f0\u0002\u0002\u1fa6\u1fa5\u0003\u0002\u0002\u0002", + "\u1fa6\u1fa7\u0003\u0002\u0002\u0002\u1fa7\u1fa8\u0003\u0002\u0002\u0002", + "\u1fa8\u1fa9\u0007\u0081\u0002\u0002\u1fa9\u1faa\u0007\u032a\u0002\u0002", + "\u1faa\u1fb2\u0007\u0326\u0002\u0002\u1fab\u1fac\u0007\u0179\u0002\u0002", + "\u1fac\u1fad\u0007\u028c\u0002\u0002\u1fad\u1fae\u0007\u00ac\u0002\u0002", + "\u1fae\u1faf\u0007\u033c\u0002\u0002\u1faf\u1fb0\u0005\u0286\u0144\u0002", + "\u1fb0\u1fb1\u0007\u033d\u0002\u0002\u1fb1\u1fb3\u0003\u0002\u0002\u0002", + "\u1fb2\u1fab\u0003\u0002\u0002\u0002\u1fb2\u1fb3\u0003\u0002\u0002\u0002", + "\u1fb3\u1fb5\u0003\u0002\u0002\u0002\u1fb4\u1fa3\u0003\u0002\u0002\u0002", + "\u1fb4\u1fa6\u0003\u0002\u0002\u0002\u1fb5\u0285\u0003\u0002\u0002\u0002", + "\u1fb6\u1fb7\t^\u0002\u0002\u1fb7\u1fb8\u0007\u032a\u0002\u0002\u1fb8", + "\u1fbf\u0007\u0326\u0002\u0002\u1fb9\u1fba\u0007\u033e\u0002\u0002\u1fba", + "\u1fbb\t_\u0002\u0002\u1fbb\u1fbc\u0007&\u0002\u0002\u1fbc\u1fbd\u0007", + "\u00f4\u0002\u0002\u1fbd\u1fbe\u0007\u032a\u0002\u0002\u1fbe\u1fc0\u0007", + "\u0326\u0002\u0002\u1fbf\u1fb9\u0003\u0002\u0002\u0002\u1fbf\u1fc0\u0003", + "\u0002\u0002\u0002\u1fc0\u0287\u0003\u0002\u0002\u0002\u1fc1\u1fc2\u0007", + "\u01ec\u0002\u0002\u1fc2\u1fc3\u0007&\u0002\u0002\u1fc3\u1fc4\u0007", + "\u00f4\u0002\u0002\u1fc4\u1fc5\u0007\u032a\u0002\u0002\u1fc5\u1fc7\u0007", + "\u0326\u0002\u0002\u1fc6\u1fc1\u0003\u0002\u0002\u0002\u1fc6\u1fc7\u0003", + "\u0002\u0002\u0002\u1fc7\u1fc8\u0003\u0002\u0002\u0002\u1fc8\u1fc9\u0007", + "\u0179\u0002\u0002\u1fc9\u1fca\u0007\u02e7\u0002\u0002\u1fca\u1fcb\u0007", + "\u032a\u0002\u0002\u1fcb\u1fd0\u0007\u0326\u0002\u0002\u1fcc\u1fcd\u0007", + "\u033e\u0002\u0002\u1fcd\u1fcf\u0005\u028a\u0146\u0002\u1fce\u1fcc\u0003", + "\u0002\u0002\u0002\u1fcf\u1fd2\u0003\u0002\u0002\u0002\u1fd0\u1fce\u0003", + "\u0002\u0002\u0002\u1fd0\u1fd1\u0003\u0002\u0002\u0002\u1fd1\u0289\u0003", + "\u0002\u0002\u0002\u1fd2\u1fd0\u0003\u0002\u0002\u0002\u1fd3\u1fd4\t", + "`\u0002\u0002\u1fd4\u1fd5\u0007\u032a\u0002\u0002\u1fd5\u1fd6\u0007", + "\u0326\u0002\u0002\u1fd6\u028b\u0003\u0002\u0002\u0002\u1fd7\u1fd8\u0007", + "\u00e7\u0002\u0002\u1fd8\u1fd9\u0007\u02eb\u0002\u0002\u1fd9\u1fda\u0007", + "\u00ac\u0002\u0002\u1fda\u1fdb\u0005\u03c6\u01e4\u0002\u1fdb\u1fdc\u0007", + "\u01d1\u0002\u0002\u1fdc\u1fdd\u0007&\u0002\u0002\u1fdd\u1fde\u0005", + "\u0298\u014d\u0002\u1fde\u1fe8\u0003\u0002\u0002\u0002\u1fdf\u1fe0\u0007", + "\u00e7\u0002\u0002\u1fe0\u1fe1\u0007\u00bd\u0002\u0002\u1fe1\u1fe2\u0007", + "\u00ac\u0002\u0002\u1fe2\u1fe3\u0007\u01d1\u0002\u0002\u1fe3\u1fe4\u0007", + "&\u0002\u0002\u1fe4\u1fe5\u0007\u00f4\u0002\u0002\u1fe5\u1fe6\u0007", + "\u032a\u0002\u0002\u1fe6\u1fe8\u0007\u0326\u0002\u0002\u1fe7\u1fd7\u0003", + "\u0002\u0002\u0002\u1fe7\u1fdf\u0003\u0002\u0002\u0002\u1fe8\u028d\u0003", + "\u0002\u0002\u0002\u1fe9\u1fea\u00073\u0002\u0002\u1fea\u1feb\u0007", + "\u02eb\u0002\u0002\u1feb\u1fec\u0007\u00ac\u0002\u0002\u1fec\u1ff5\u0005", + "\u03c6\u01e4\u0002\u1fed\u1fee\u00073\u0002\u0002\u1fee\u1fef\u0007", + "\u0006\u0002\u0002\u1fef\u1ff0\u0007\u02eb\u0002\u0002\u1ff0\u1ff5\u0007", + "\u022c\u0002\u0002\u1ff1\u1ff2\u00073\u0002\u0002\u1ff2\u1ff3\u0007", + "\u00bd\u0002\u0002\u1ff3\u1ff5\u0007\u00ac\u0002\u0002\u1ff4\u1fe9\u0003", + "\u0002\u0002\u0002\u1ff4\u1fed\u0003\u0002\u0002\u0002\u1ff4\u1ff1\u0003", + "\u0002\u0002\u0002\u1ff5\u028f\u0003\u0002\u0002\u0002\u1ff6\u1ff7\u0007", + "I\u0002\u0002\u1ff7\u1ff8\u0007\u00bd\u0002\u0002\u1ff8\u1ff9\u0007", + "\u00ac\u0002\u0002\u1ff9\u1ffa\u0007\u01ec\u0002\u0002\u1ffa\u1ffb\u0007", + "&\u0002\u0002\u1ffb\u1ffc\u0007\u00f4\u0002\u0002\u1ffc\u1ffd\u0007", + "\u032a\u0002\u0002\u1ffd\u201a\u0007\u0326\u0002\u0002\u1ffe\u1fff\u0007", + "I\u0002\u0002\u1fff\u2000\u0007\u02eb\u0002\u0002\u2000\u2001\u0007", + "\u00ac\u0002\u0002\u2001\u2004\u0005\u03c6\u01e4\u0002\u2002\u2003\u0007", + "\u0014\u0002\u0002\u2003\u2005\u0005\u03c6\u01e4\u0002\u2004\u2002\u0003", + "\u0002\u0002\u0002\u2004\u2005\u0003\u0002\u0002\u0002\u2005\u2009\u0003", + "\u0002\u0002\u0002\u2006\u2007\u0007\u008b\u0002\u0002\u2007\u2008\u0007", + "\u0291\u0002\u0002\u2008\u200a\u0005\u03c6\u01e4\u0002\u2009\u2006\u0003", + "\u0002\u0002\u0002\u2009\u200a\u0003\u0002\u0002\u0002\u200a\u200b\u0003", + "\u0002\u0002\u0002\u200b\u2015\u0007\u0179\u0002\u0002\u200c\u2011\u0005", + "\u0292\u014a\u0002\u200d\u200e\u0007\u01ec\u0002\u0002\u200e\u200f\u0007", + "&\u0002\u0002\u200f\u2011\u0005\u0296\u014c\u0002\u2010\u200c\u0003", + "\u0002\u0002\u0002\u2010\u200d\u0003\u0002\u0002\u0002\u2011\u2013\u0003", + "\u0002\u0002\u0002\u2012\u2014\u0007\u033e\u0002\u0002\u2013\u2012\u0003", + "\u0002\u0002\u0002\u2013\u2014\u0003\u0002\u0002\u0002\u2014\u2016\u0003", + "\u0002\u0002\u0002\u2015\u2010\u0003\u0002\u0002\u0002\u2016\u2017\u0003", + "\u0002\u0002\u0002\u2017\u2015\u0003\u0002\u0002\u0002\u2017\u2018\u0003", + "\u0002\u0002\u0002\u2018\u201a\u0003\u0002\u0002\u0002\u2019\u1ff6\u0003", + "\u0002\u0002\u0002\u2019\u1ffe\u0003\u0002\u0002\u0002\u201a\u0291\u0003", + "\u0002\u0002\u0002\u201b\u201c\u0007\u022b\u0002\u0002\u201c\u201d\u0007", + "\u032a\u0002\u0002\u201d\u202b\u0007\u0326\u0002\u0002\u201e\u201f\u0007", + "\u018a\u0002\u0002\u201f\u2020\u0007\u032a\u0002\u0002\u2020\u202b\u0005", + "\u0294\u014b\u0002\u2021\u2022\u0007\u0218\u0002\u0002\u2022\u2023\u0007", + "\u032a\u0002\u0002\u2023\u202b\u0007\u0326\u0002\u0002\u2024\u2025\u0007", + "\u0292\u0002\u0002\u2025\u2026\u0007\u032a\u0002\u0002\u2026\u202b\u0007", + "\u0326\u0002\u0002\u2027\u2028\u0007\u01c3\u0002\u0002\u2028\u2029\u0007", + "\u032a\u0002\u0002\u2029\u202b\t\f\u0002\u0002\u202a\u201b\u0003\u0002", + "\u0002\u0002\u202a\u201e\u0003\u0002\u0002\u0002\u202a\u2021\u0003\u0002", + "\u0002\u0002\u202a\u2024\u0003\u0002\u0002\u0002\u202a\u2027\u0003\u0002", + "\u0002\u0002\u202b\u0293\u0003\u0002\u0002\u0002\u202c\u202d\t3\u0002", + "\u0002\u202d\u0295\u0003\u0002\u0002\u0002\u202e\u202f\u0007+\u0002", + "\u0002\u202f\u203a\u0005\u03c6\u01e4\u0002\u2030\u2031\u0007\u0012\u0002", + "\u0002\u2031\u2032\u0007\u00ac\u0002\u0002\u2032\u203a\u0005\u03c6\u01e4", + "\u0002\u2033\u2034\u0007\u02eb\u0002\u0002\u2034\u2035\u0007\u00ac\u0002", + "\u0002\u2035\u203a\u0005\u03c6\u01e4\u0002\u2036\u2037\u0007\u00f4\u0002", + "\u0002\u2037\u2038\u0007\u032a\u0002\u0002\u2038\u203a\u0007\u0326\u0002", + "\u0002\u2039\u202e\u0003\u0002\u0002\u0002\u2039\u2030\u0003\u0002\u0002", + "\u0002\u2039\u2033\u0003\u0002\u0002\u0002\u2039\u2036\u0003\u0002\u0002", + "\u0002\u203a\u0297\u0003\u0002\u0002\u0002\u203b\u203c\u0007+\u0002", + "\u0002\u203c\u2041\u0005\u03c6\u01e4\u0002\u203d\u203e\u0007\u0179\u0002", + "\u0002\u203e\u203f\u0007\u00f4\u0002\u0002\u203f\u2040\u0007\u032a\u0002", + "\u0002\u2040\u2042\u0007\u0326\u0002\u0002\u2041\u203d\u0003\u0002\u0002", + "\u0002\u2041\u2042\u0003\u0002\u0002\u0002\u2042\u2053\u0003\u0002\u0002", + "\u0002\u2043\u2044\u0007\u0012\u0002\u0002\u2044\u2045\u0007\u00ac\u0002", + "\u0002\u2045\u204a\u0005\u03c6\u01e4\u0002\u2046\u2047\u0007\u0179\u0002", + "\u0002\u2047\u2048\u0007\u00f4\u0002\u0002\u2048\u2049\u0007\u032a\u0002", + "\u0002\u2049\u204b\u0007\u0326\u0002\u0002\u204a\u2046\u0003\u0002\u0002", + "\u0002\u204a\u204b\u0003\u0002\u0002\u0002\u204b\u2053\u0003\u0002\u0002", + "\u0002\u204c\u204d\u0007\u02eb\u0002\u0002\u204d\u204e\u0007\u00ac\u0002", + "\u0002\u204e\u2053\u0005\u03c6\u01e4\u0002\u204f\u2050\u0007\u00f4\u0002", + "\u0002\u2050\u2051\u0007\u032a\u0002\u0002\u2051\u2053\u0007\u0326\u0002", + "\u0002\u2052\u203b\u0003\u0002\u0002\u0002\u2052\u2043\u0003\u0002\u0002", + "\u0002\u2052\u204c\u0003\u0002\u0002\u0002\u2052\u204f\u0003\u0002\u0002", + "\u0002\u2053\u0299\u0003\u0002\u0002\u0002\u2054\u206f\u0007v\u0002", + "\u0002\u2055\u2056\u0007\u0172\u0002\u0002\u2056\u206f\u0005\u03c6\u01e4", + "\u0002\u2057\u2058\u0007\u02ef\u0002\u0002\u2058\u206f\u0005\u03c6\u01e4", + "\u0002\u2059\u205b\u0007\u01bc\u0002\u0002\u205a\u205c\u0005\u03c6\u01e4", + "\u0002\u205b\u205a\u0003\u0002\u0002\u0002\u205b\u205c\u0003\u0002\u0002", + "\u0002\u205c\u206f\u0003\u0002\u0002\u0002\u205d\u205e\u0007I\u0002", + "\u0002\u205e\u206f\ta\u0002\u0002\u205f\u206f\u0007\u02d4\u0002\u0002", + "\u2060\u206f\u0007\u021b\u0002\u0002\u2061\u206f\u0007\u0131\u0002\u0002", + "\u2062\u206f\u0007\u010e\u0002\u0002\u2063\u206f\u0007\u00a2\u0002\u0002", + "\u2064\u206c\u0007\n\u0002\u0002\u2065\u2067\u0007\r\u0002\u0002\u2066", + "\u2065\u0003\u0002\u0002\u0002\u2066\u2067\u0003\u0002\u0002\u0002\u2067", + "\u206a\u0003\u0002\u0002\u0002\u2068\u206b\u0005\u03c6\u01e4\u0002\u2069", + "\u206b\u0007T\u0002\u0002\u206a\u2068\u0003\u0002\u0002\u0002\u206a", + "\u2069\u0003\u0002\u0002\u0002\u206b\u206d\u0003\u0002\u0002\u0002\u206c", + "\u2066\u0003\u0002\u0002\u0002\u206c\u206d\u0003\u0002\u0002\u0002\u206d", + "\u206f\u0003\u0002\u0002\u0002\u206e\u2054\u0003\u0002\u0002\u0002\u206e", + "\u2055\u0003\u0002\u0002\u0002\u206e\u2057\u0003\u0002\u0002\u0002\u206e", + "\u2059\u0003\u0002\u0002\u0002\u206e\u205d\u0003\u0002\u0002\u0002\u206e", + "\u205f\u0003\u0002\u0002\u0002\u206e\u2060\u0003\u0002\u0002\u0002\u206e", + "\u2061\u0003\u0002\u0002\u0002\u206e\u2062\u0003\u0002\u0002\u0002\u206e", + "\u2063\u0003\u0002\u0002\u0002\u206e\u2064\u0003\u0002\u0002\u0002\u206f", + "\u029b\u0003\u0002\u0002\u0002\u2070\u2071\u0007\u013b\u0002\u0002\u2071", + "\u2074\u0007\u0321\u0002\u0002\u2072\u2073\u0007\u0337\u0002\u0002\u2073", + "\u2075\u0005\u03c6\u01e4\u0002\u2074\u2072\u0003\u0002\u0002\u0002\u2074", + "\u2075\u0003\u0002\u0002\u0002\u2075\u2076\u0003\u0002\u0002\u0002\u2076", + "\u2077\u0007\u032a\u0002\u0002\u2077\u2079\u0005\u02d8\u016d\u0002\u2078", + "\u207a\u0007\u033f\u0002\u0002\u2079\u2078\u0003\u0002\u0002\u0002\u2079", + "\u207a\u0003\u0002\u0002\u0002\u207a\u2098\u0003\u0002\u0002\u0002\u207b", + "\u207c\u0007\u013b\u0002\u0002\u207c\u207d\u0007\u0321\u0002\u0002\u207d", + "\u207e\u0005\u03cc\u01e7\u0002\u207e\u2080\u0005\u02d8\u016d\u0002\u207f", + "\u2081\u0007\u033f\u0002\u0002\u2080\u207f\u0003\u0002\u0002\u0002\u2080", + "\u2081\u0003\u0002\u0002\u0002\u2081\u2098\u0003\u0002\u0002\u0002\u2082", + "\u2083\u0007\u013b\u0002\u0002\u2083\u2084\u0007\u0321\u0002\u0002\u2084", + "\u2085\u0007\u032a\u0002\u0002\u2085\u2086\u0007P\u0002\u0002\u2086", + "\u2091\u0005\u02ce\u0168\u0002\u2087\u208f\u0007\u0085\u0002\u0002\u2088", + "\u2089\u0007\u010a\u0002\u0002\u2089\u2090\u0007\u0276\u0002\u0002\u208a", + "\u208d\u0007\u0169\u0002\u0002\u208b\u208c\u0007\u00e1\u0002\u0002\u208c", + "\u208e\u0005\u039e\u01d0\u0002\u208d\u208b\u0003\u0002\u0002\u0002\u208d", + "\u208e\u0003\u0002\u0002\u0002\u208e\u2090\u0003\u0002\u0002\u0002\u208f", + "\u2088\u0003\u0002\u0002\u0002\u208f\u208a\u0003\u0002\u0002\u0002\u2090", + "\u2092\u0003\u0002\u0002\u0002\u2091\u2087\u0003\u0002\u0002\u0002\u2091", + "\u2092\u0003\u0002\u0002\u0002\u2092\u2094\u0003\u0002\u0002\u0002\u2093", + "\u2095\u0007\u033f\u0002\u0002\u2094\u2093\u0003\u0002\u0002\u0002\u2094", + "\u2095\u0003\u0002\u0002\u0002\u2095\u2098\u0003\u0002\u0002\u0002\u2096", + "\u2098\u0005\u02d4\u016b\u0002\u2097\u2070\u0003\u0002\u0002\u0002\u2097", + "\u207b\u0003\u0002\u0002\u0002\u2097\u2082\u0003\u0002\u0002\u0002\u2097", + "\u2096\u0003\u0002\u0002\u0002\u2098\u029d\u0003\u0002\u0002\u0002\u2099", + "\u209a\u0007\u001c\u0002\u0002\u209a\u209b\u0007c\u0002\u0002\u209b", + "\u209e\tb\u0002\u0002\u209c\u209f\u0005\u03c6\u01e4\u0002\u209d\u209f", + "\u0007\u0321\u0002\u0002\u209e\u209c\u0003\u0002\u0002\u0002\u209e\u209d", + "\u0003\u0002\u0002\u0002\u209e\u209f\u0003\u0002\u0002\u0002\u209f\u20a1", + "\u0003\u0002\u0002\u0002\u20a0\u20a2\u0007\u033f\u0002\u0002\u20a1\u20a0", + "\u0003\u0002\u0002\u0002\u20a1\u20a2\u0003\u0002\u0002\u0002\u20a2\u20eb", + "\u0003\u0002\u0002\u0002\u20a3\u20a4\u0007\u001c\u0002\u0002\u20a4\u20ae", + "\tb\u0002\u0002\u20a5\u20a8\u0005\u03c6\u01e4\u0002\u20a6\u20a8\u0007", + "\u0321\u0002\u0002\u20a7\u20a5\u0003\u0002\u0002\u0002\u20a7\u20a6\u0003", + "\u0002\u0002\u0002\u20a8\u20ac\u0003\u0002\u0002\u0002\u20a9\u20aa\u0007", + "\u0179\u0002\u0002\u20aa\u20ab\u0007\u023f\u0002\u0002\u20ab\u20ad\u0007", + "\u0326\u0002\u0002\u20ac\u20a9\u0003\u0002\u0002\u0002\u20ac\u20ad\u0003", + "\u0002\u0002\u0002\u20ad\u20af\u0003\u0002\u0002\u0002\u20ae\u20a7\u0003", + "\u0002\u0002\u0002\u20ae\u20af\u0003\u0002\u0002\u0002\u20af\u20b1\u0003", + "\u0002\u0002\u0002\u20b0\u20b2\u0007\u033f\u0002\u0002\u20b1\u20b0\u0003", + "\u0002\u0002\u0002\u20b1\u20b2\u0003\u0002\u0002\u0002\u20b2\u20eb\u0003", + "\u0002\u0002\u0002\u20b3\u20b4\u0007:\u0002\u0002\u20b4\u20c1\tb\u0002", + "\u0002\u20b5\u20b8\u0005\u03c6\u01e4\u0002\u20b6\u20b8\u0007\u0321\u0002", + "\u0002\u20b7\u20b5\u0003\u0002\u0002\u0002\u20b7\u20b6\u0003\u0002\u0002", + "\u0002\u20b8\u20bf\u0003\u0002\u0002\u0002\u20b9\u20ba\u0007\u0179\u0002", + "\u0002\u20ba\u20bb\u0007\u033c\u0002\u0002\u20bb\u20bc\u0007\u01d6\u0002", + "\u0002\u20bc\u20bd\u0007\u032a\u0002\u0002\u20bd\u20be\t\t\u0002\u0002", + "\u20be\u20c0\u0007\u033d\u0002\u0002\u20bf\u20b9\u0003\u0002\u0002\u0002", + "\u20bf\u20c0\u0003\u0002\u0002\u0002\u20c0\u20c2\u0003\u0002\u0002\u0002", + "\u20c1\u20b7\u0003\u0002\u0002\u0002\u20c1\u20c2\u0003\u0002\u0002\u0002", + "\u20c2\u20c4\u0003\u0002\u0002\u0002\u20c3\u20c5\u0007\u033f\u0002\u0002", + "\u20c4\u20c3\u0003\u0002\u0002\u0002\u20c4\u20c5\u0003\u0002\u0002\u0002", + "\u20c5\u20eb\u0003\u0002\u0002\u0002\u20c6\u20c8\u0007:\u0002\u0002", + "\u20c7\u20c9\u0007\u0313\u0002\u0002\u20c8\u20c7\u0003\u0002\u0002\u0002", + "\u20c8\u20c9\u0003\u0002\u0002\u0002\u20c9\u20cb\u0003\u0002\u0002\u0002", + "\u20ca\u20cc\u0007\u033f\u0002\u0002\u20cb\u20ca\u0003\u0002\u0002\u0002", + "\u20cb\u20cc\u0003\u0002\u0002\u0002\u20cc\u20eb\u0003\u0002\u0002\u0002", + "\u20cd\u20ce\u0007:\u0002\u0002\u20ce\u20eb\u0005\u03c6\u01e4\u0002", + "\u20cf\u20d0\u0007\u0120\u0002\u0002\u20d0\u20eb\u0005\u03c6\u01e4\u0002", + "\u20d1\u20d2\u0007\u0120\u0002\u0002\u20d2\u20d5\tb\u0002\u0002\u20d3", + "\u20d6\u0005\u03c6\u01e4\u0002\u20d4\u20d6\u0007\u0321\u0002\u0002\u20d5", + "\u20d3\u0003\u0002\u0002\u0002\u20d5\u20d4\u0003\u0002\u0002\u0002\u20d5", + "\u20d6\u0003\u0002\u0002\u0002\u20d6\u20d8\u0003\u0002\u0002\u0002\u20d7", + "\u20d9\u0007\u033f\u0002\u0002\u20d8\u20d7\u0003\u0002\u0002\u0002\u20d8", + "\u20d9\u0003\u0002\u0002\u0002\u20d9\u20eb\u0003\u0002\u0002\u0002\u20da", + "\u20dc\u0007\u0120\u0002\u0002\u20db\u20dd\u0007\u0313\u0002\u0002\u20dc", + "\u20db\u0003\u0002\u0002\u0002\u20dc\u20dd\u0003\u0002\u0002\u0002\u20dd", + "\u20df\u0003\u0002\u0002\u0002\u20de\u20e0\u0007\u033f\u0002\u0002\u20df", + "\u20de\u0003\u0002\u0002\u0002\u20df\u20e0\u0003\u0002\u0002\u0002\u20e0", + "\u20eb\u0003\u0002\u0002\u0002\u20e1\u20e2\u0007\u012c\u0002\u0002\u20e2", + "\u20e5\tb\u0002\u0002\u20e3\u20e6\u0005\u03c6\u01e4\u0002\u20e4\u20e6", + "\u0007\u0321\u0002\u0002\u20e5\u20e3\u0003\u0002\u0002\u0002\u20e5\u20e4", + "\u0003\u0002\u0002\u0002\u20e5\u20e6\u0003\u0002\u0002\u0002\u20e6\u20e8", + "\u0003\u0002\u0002\u0002\u20e7\u20e9\u0007\u033f\u0002\u0002\u20e8\u20e7", + "\u0003\u0002\u0002\u0002\u20e8\u20e9\u0003\u0002\u0002\u0002\u20e9\u20eb", + "\u0003\u0002\u0002\u0002\u20ea\u2099\u0003\u0002\u0002\u0002\u20ea\u20a3", + "\u0003\u0002\u0002\u0002\u20ea\u20b3\u0003\u0002\u0002\u0002\u20ea\u20c6", + "\u0003\u0002\u0002\u0002\u20ea\u20cd\u0003\u0002\u0002\u0002\u20ea\u20cf", + "\u0003\u0002\u0002\u0002\u20ea\u20d1\u0003\u0002\u0002\u0002\u20ea\u20da", + "\u0003\u0002\u0002\u0002\u20ea\u20e1\u0003\u0002\u0002\u0002\u20eb\u029f", + "\u0003\u0002\u0002\u0002\u20ec\u20ee\u0007\u020e\u0002\u0002\u20ed\u20ef", + "\u0007\u0322\u0002\u0002\u20ee\u20ed\u0003\u0002\u0002\u0002\u20ee\u20ef", + "\u0003\u0002\u0002\u0002\u20ef\u02a1\u0003\u0002\u0002\u0002\u20f0\u20f1", + "\u0007\u016c\u0002\u0002\u20f1\u20f3\u0005\u03c6\u01e4\u0002\u20f2\u20f4", + "\u0007\u033f\u0002\u0002\u20f3\u20f2\u0003\u0002\u0002\u0002\u20f3\u20f4", + "\u0003\u0002\u0002\u0002\u20f4\u02a3\u0003\u0002\u0002\u0002\u20f5\u20f7", + "\u0007\u013c\u0002\u0002\u20f6\u20f8\u0007\u0326\u0002\u0002\u20f7\u20f6", + "\u0003\u0002\u0002\u0002\u20f7\u20f8\u0003\u0002\u0002\u0002\u20f8\u02a5", + "\u0003\u0002\u0002\u0002\u20f9\u20fc\u0007\u010d\u0002\u0002\u20fa\u20fb", + "\u0007\u0179\u0002\u0002\u20fb\u20fd\u0007\u027c\u0002\u0002\u20fc\u20fa", + "\u0003\u0002\u0002\u0002\u20fc\u20fd\u0003\u0002\u0002\u0002\u20fd\u02a7", + "\u0003\u0002\u0002\u0002\u20fe\u2101\u0007\u013d\u0002\u0002\u20ff\u2100", + "\u0007\u0179\u0002\u0002\u2100\u2102\u0007\u026c\u0002\u0002\u2101\u20ff", + "\u0003\u0002\u0002\u0002\u2101\u2102\u0003\u0002\u0002\u0002\u2102\u02a9", + "\u0003\u0002\u0002\u0002\u2103\u2104\u0007V\u0002\u0002\u2104\u2109", + "\u0005\u03c8\u01e5\u0002\u2105\u2106\u0007\u033c\u0002\u0002\u2106\u2107", + "\u0005\u0366\u01b4\u0002\u2107\u2108\u0007\u033d\u0002\u0002\u2108\u210a", + "\u0003\u0002\u0002\u0002\u2109\u2105\u0003\u0002\u0002\u0002\u2109\u210a", + "\u0003\u0002\u0002\u0002\u210a\u210d\u0003\u0002\u0002\u0002\u210b\u210c", + "\u0007\u0179\u0002\u0002\u210c\u210e\u0005\u02ac\u0157\u0002\u210d\u210b", + "\u0003\u0002\u0002\u0002\u210d\u210e\u0003\u0002\u0002\u0002\u210e\u2110", + "\u0003\u0002\u0002\u0002\u210f\u2111\u0007\u033f\u0002\u0002\u2110\u210f", + "\u0003\u0002\u0002\u0002\u2110\u2111\u0003\u0002\u0002\u0002\u2111\u02ab", + "\u0003\u0002\u0002\u0002\u2112\u2115\u0005\u03c8\u01e5\u0002\u2113\u2114", + "\u0007\u033e\u0002\u0002\u2114\u2116\u0005\u03c8\u01e5\u0002\u2115\u2113", + "\u0003\u0002\u0002\u0002\u2115\u2116\u0003\u0002\u0002\u0002\u2116\u02ad", + "\u0003\u0002\u0002\u0002\u2117\u2118\u0007v\u0002\u0002\u2118\u2119", + "\u0007\u0010\u0002\u0002\u2119\u211a\tc\u0002\u0002\u211a\u02af\u0003", + "\u0002\u0002\u0002\u211b\u211d\u0007\u0321\u0002\u0002\u211c\u211e\u0007", + "\u0010\u0002\u0002\u211d\u211c\u0003\u0002\u0002\u0002\u211d\u211e\u0003", + "\u0002\u0002\u0002\u211e\u211f\u0003\u0002\u0002\u0002\u211f\u2122\u0005", + "\u03be\u01e0\u0002\u2120\u2121\u0007\u032a\u0002\u0002\u2121\u2123\u0005", + "\u02d8\u016d\u0002\u2122\u2120\u0003\u0002\u0002\u0002\u2122\u2123\u0003", + "\u0002\u0002\u0002\u2123\u02b1\u0003\u0002\u0002\u0002\u2124\u2125\u0007", + "\u0153\u0002\u0002\u2125\u2126\u0007\u033c\u0002\u0002\u2126\u2127\u0005", + "\u02b8\u015d\u0002\u2127\u2128\u0007\u033d\u0002\u0002\u2128\u02b3\u0003", + "\u0002\u0002\u0002\u2129\u212a\u0007\u0315\u0002\u0002\u212a\u212c\u0007", + "\u033c\u0002\u0002\u212b\u212d\td\u0002\u0002\u212c\u212b\u0003\u0002", + "\u0002\u0002\u212c\u212d\u0003\u0002\u0002\u0002\u212d\u212e\u0003\u0002", + "\u0002\u0002\u212e\u212f\u0005\u02b6\u015c\u0002\u212f\u2130\u0007\u033d", + "\u0002\u0002\u2130\u02b5\u0003\u0002\u0002\u0002\u2131\u2132\u0007\u0323", + "\u0002\u0002\u2132\u2133\u0007\u0337\u0002\u0002\u2133\u2134\u0007\u0323", + "\u0002\u0002\u2134\u02b7\u0003\u0002\u0002\u0002\u2135\u213c\u0005\u02ba", + "\u015e\u0002\u2136\u2138\u0007\u033e\u0002\u0002\u2137\u2136\u0003\u0002", + "\u0002\u0002\u2137\u2138\u0003\u0002\u0002\u0002\u2138\u2139\u0003\u0002", + "\u0002\u0002\u2139\u213b\u0005\u02ba\u015e\u0002\u213a\u2137\u0003\u0002", + "\u0002\u0002\u213b\u213e\u0003\u0002\u0002\u0002\u213c\u213a\u0003\u0002", + "\u0002\u0002\u213c\u213d\u0003\u0002\u0002\u0002\u213d\u02b9\u0003\u0002", + "\u0002\u0002\u213e\u213c\u0003\u0002\u0002\u0002\u213f\u2143\u0005\u02bc", + "\u015f\u0002\u2140\u2143\u0005\u02be\u0160\u0002\u2141\u2143\u0005\u02c2", + "\u0162\u0002\u2142\u213f\u0003\u0002\u0002\u0002\u2142\u2140\u0003\u0002", + "\u0002\u0002\u2142\u2141\u0003\u0002\u0002\u0002\u2143\u02bb\u0003\u0002", + "\u0002\u0002\u2144\u2148\u0005\u03c6\u01e4\u0002\u2145\u2149\u0005\u03be", + "\u01e0\u0002\u2146\u2147\u0007\u0010\u0002\u0002\u2147\u2149\u0005\u02d8", + "\u016d\u0002\u2148\u2145\u0003\u0002\u0002\u0002\u2148\u2146\u0003\u0002", + "\u0002\u0002\u2149\u214c\u0003\u0002\u0002\u0002\u214a\u214b\u00077", + "\u0002\u0002\u214b\u214d\u0005\u03c6\u01e4\u0002\u214c\u214a\u0003\u0002", + "\u0002\u0002\u214c\u214d\u0003\u0002\u0002\u0002\u214d\u214f\u0003\u0002", + "\u0002\u0002\u214e\u2150\u0005\u03a6\u01d4\u0002\u214f\u214e\u0003\u0002", + "\u0002\u0002\u214f\u2150\u0003\u0002\u0002\u0002\u2150\u2166\u0003\u0002", + "\u0002\u0002\u2151\u2152\u0007=\u0002\u0002\u2152\u2154\u0005\u03c6", + "\u01e4\u0002\u2153\u2151\u0003\u0002\u0002\u0002\u2153\u2154\u0003\u0002", + "\u0002\u0002\u2154\u2155\u0003\u0002\u0002\u0002\u2155\u2157\u0005\u03a8", + "\u01d5\u0002\u2156\u2158\u0005\u03a8\u01d5\u0002\u2157\u2156\u0003\u0002", + "\u0002\u0002\u2157\u2158\u0003\u0002\u0002\u0002\u2158\u2167\u0003\u0002", + "\u0002\u0002\u2159\u215f\u0007\u0096\u0002\u0002\u215a\u215b\u0007\u033c", + "\u0002\u0002\u215b\u215c\u0007\u0322\u0002\u0002\u215c\u215d\u0007\u033e", + "\u0002\u0002\u215d\u215e\u0007\u0322\u0002\u0002\u215e\u2160\u0007\u033d", + "\u0002\u0002\u215f\u215a\u0003\u0002\u0002\u0002\u215f\u2160\u0003\u0002", + "\u0002\u0002\u2160\u2164\u0003\u0002\u0002\u0002\u2161\u2162\u0007\u00dc", + "\u0002\u0002\u2162\u2163\u0007\u0085\u0002\u0002\u2163\u2165\u0007\u0112", + "\u0002\u0002\u2164\u2161\u0003\u0002\u0002\u0002\u2164\u2165\u0003\u0002", + "\u0002\u0002\u2165\u2167\u0003\u0002\u0002\u0002\u2166\u2153\u0003\u0002", + "\u0002\u0002\u2166\u2159\u0003\u0002\u0002\u0002\u2166\u2167\u0003\u0002", + "\u0002\u0002\u2167\u2169\u0003\u0002\u0002\u0002\u2168\u216a\u0007\u0123", + "\u0002\u0002\u2169\u2168\u0003\u0002\u0002\u0002\u2169\u216a\u0003\u0002", + "\u0002\u0002\u216a\u216e\u0003\u0002\u0002\u0002\u216b\u216d\u0005\u02c0", + "\u0161\u0002\u216c\u216b\u0003\u0002\u0002\u0002\u216d\u2170\u0003\u0002", + "\u0002\u0002\u216e\u216c\u0003\u0002\u0002\u0002\u216e\u216f\u0003\u0002", + "\u0002\u0002\u216f\u02bd\u0003\u0002\u0002\u0002\u2170\u216e\u0003\u0002", + "\u0002\u0002\u2171\u2172\u0005\u03c6\u01e4\u0002\u2172\u2173\te\u0002", + "\u0002\u2173\u2177\u0005\u02d8\u016d\u0002\u2174\u2178\u0007\u0240\u0002", + "\u0002\u2175\u2176\u0007\u00dc\u0002\u0002\u2176\u2178\u0007\u0240\u0002", + "\u0002\u2177\u2174\u0003\u0002\u0002\u0002\u2177\u2175\u0003\u0002\u0002", + "\u0002\u2177\u2178\u0003\u0002\u0002\u0002\u2178\u02bf\u0003\u0002\u0002", + "\u0002\u2179\u217a\u0007=\u0002\u0002\u217a\u217c\u0005\u03c6\u01e4", + "\u0002\u217b\u2179\u0003\u0002\u0002\u0002\u217b\u217c\u0003\u0002\u0002", + "\u0002\u217c\u21a2\u0003\u0002\u0002\u0002\u217d\u217e\u0007\u0100\u0002", + "\u0002\u217e\u2181\u0007\u00ac\u0002\u0002\u217f\u2181\u0007\u0165\u0002", + "\u0002\u2180\u217d\u0003\u0002\u0002\u0002\u2180\u217f\u0003\u0002\u0002", + "\u0002\u2181\u2183\u0003\u0002\u0002\u0002\u2182\u2184\u0005\u03a4\u01d3", + "\u0002\u2183\u2182\u0003\u0002\u0002\u0002\u2183\u2184\u0003\u0002\u0002", + "\u0002\u2184\u2186\u0003\u0002\u0002\u0002\u2185\u2187\u0005\u02c8\u0165", + "\u0002\u2186\u2185\u0003\u0002\u0002\u0002\u2186\u2187\u0003\u0002\u0002", + "\u0002\u2187\u21a3\u0003\u0002\u0002\u0002\u2188\u218c\u0007.\u0002", + "\u0002\u2189\u218a\u0007\u00dc\u0002\u0002\u218a\u218b\u0007\u0085\u0002", + "\u0002\u218b\u218d\u0007\u0112\u0002\u0002\u218c\u2189\u0003\u0002\u0002", + "\u0002\u218c\u218d\u0003\u0002\u0002\u0002\u218d\u218e\u0003\u0002\u0002", + "\u0002\u218e\u218f\u0007\u033c\u0002\u0002\u218f\u2190\u0005\u02ee\u0178", + "\u0002\u2190\u2191\u0007\u033d\u0002\u0002\u2191\u21a3\u0003\u0002\u0002", + "\u0002\u2192\u2193\u0007\u0088\u0002\u0002\u2193\u2195\u0007\u00ac\u0002", + "\u0002\u2194\u2192\u0003\u0002\u0002\u0002\u2194\u2195\u0003\u0002\u0002", + "\u0002\u2195\u2196\u0003\u0002\u0002\u0002\u2196\u2197\u0007\u010e\u0002", + "\u0002\u2197\u2198\u0005\u038e\u01c8\u0002\u2198\u2199\u0007\u033c\u0002", + "\u0002\u2199\u219a\u0005\u039e\u01d0\u0002\u219a\u219c\u0007\u033d\u0002", + "\u0002\u219b\u219d\u0005\u02c4\u0163\u0002\u219c\u219b\u0003\u0002\u0002", + "\u0002\u219c\u219d\u0003\u0002\u0002\u0002\u219d\u219f\u0003\u0002\u0002", + "\u0002\u219e\u21a0\u0005\u02c6\u0164\u0002\u219f\u219e\u0003\u0002\u0002", + "\u0002\u219f\u21a0\u0003\u0002\u0002\u0002\u21a0\u21a3\u0003\u0002\u0002", + "\u0002\u21a1\u21a3\u0005\u03a6\u01d4\u0002\u21a2\u2180\u0003\u0002\u0002", + "\u0002\u21a2\u2188\u0003\u0002\u0002\u0002\u21a2\u2194\u0003\u0002\u0002", + "\u0002\u21a2\u21a1\u0003\u0002\u0002\u0002\u21a3\u02c1\u0003\u0002\u0002", + "\u0002\u21a4\u21a5\u0007=\u0002\u0002\u21a5\u21a7\u0005\u03c6\u01e4", + "\u0002\u21a6\u21a4\u0003\u0002\u0002\u0002\u21a6\u21a7\u0003\u0002\u0002", + "\u0002\u21a7\u21e8\u0003\u0002\u0002\u0002\u21a8\u21a9\u0007\u0100\u0002", + "\u0002\u21a9\u21ac\u0007\u00ac\u0002\u0002\u21aa\u21ac\u0007\u0165\u0002", + "\u0002\u21ab\u21a8\u0003\u0002\u0002\u0002\u21ab\u21aa\u0003\u0002\u0002", + "\u0002\u21ac\u21ae\u0003\u0002\u0002\u0002\u21ad\u21af\u0005\u03a4\u01d3", + "\u0002\u21ae\u21ad\u0003\u0002\u0002\u0002\u21ae\u21af\u0003\u0002\u0002", + "\u0002\u21af\u21b0\u0003\u0002\u0002\u0002\u21b0\u21b1\u0007\u033c\u0002", + "\u0002\u21b1\u21b2\u0005\u039c\u01cf\u0002\u21b2\u21b4\u0007\u033d\u0002", + "\u0002\u21b3\u21b5\u0005\u02c8\u0165\u0002\u21b4\u21b3\u0003\u0002\u0002", + "\u0002\u21b4\u21b5\u0003\u0002\u0002\u0002\u21b5\u21b8\u0003\u0002\u0002", + "\u0002\u21b6\u21b7\u0007\u00e5\u0002\u0002\u21b7\u21b9\u0005\u03c6\u01e4", + "\u0002\u21b8\u21b6\u0003\u0002\u0002\u0002\u21b8\u21b9\u0003\u0002\u0002", + "\u0002\u21b9\u21e9\u0003\u0002\u0002\u0002\u21ba\u21be\u0007.\u0002", + "\u0002\u21bb\u21bc\u0007\u00dc\u0002\u0002\u21bc\u21bd\u0007\u0085\u0002", + "\u0002\u21bd\u21bf\u0007\u0112\u0002\u0002\u21be\u21bb\u0003\u0002\u0002", + "\u0002\u21be\u21bf\u0003\u0002\u0002\u0002\u21bf\u21c0\u0003\u0002\u0002", + "\u0002\u21c0\u21c1\u0007\u033c\u0002\u0002\u21c1\u21c2\u0005\u02ee\u0178", + "\u0002\u21c2\u21c3\u0007\u033d\u0002\u0002\u21c3\u21e9\u0003\u0002\u0002", + "\u0002\u21c4\u21c6\u0007Y\u0002\u0002\u21c5\u21c7\u0007\u033c\u0002", + "\u0002\u21c6\u21c5\u0003\u0002\u0002\u0002\u21c6\u21c7\u0003\u0002\u0002", + "\u0002\u21c7\u21cc\u0003\u0002\u0002\u0002\u21c8\u21cd\u0007\u0326\u0002", + "\u0002\u21c9\u21cd\u0007\u0344\u0002\u0002\u21ca\u21cd\u0005\u0340\u01a1", + "\u0002\u21cb\u21cd\u0007\u0322\u0002\u0002\u21cc\u21c8\u0003\u0002\u0002", + "\u0002\u21cc\u21c9\u0003\u0002\u0002\u0002\u21cc\u21ca\u0003\u0002\u0002", + "\u0002\u21cc\u21cb\u0003\u0002\u0002\u0002\u21cd\u21ce\u0003\u0002\u0002", + "\u0002\u21ce\u21cc\u0003\u0002\u0002\u0002\u21ce\u21cf\u0003\u0002\u0002", + "\u0002\u21cf\u21d1\u0003\u0002\u0002\u0002\u21d0\u21d2\u0007\u033d\u0002", + "\u0002\u21d1\u21d0\u0003\u0002\u0002\u0002\u21d1\u21d2\u0003\u0002\u0002", + "\u0002\u21d2\u21d3\u0003\u0002\u0002\u0002\u21d3\u21d4\u0007\u0085\u0002", + "\u0002\u21d4\u21e9\u0005\u03c6\u01e4\u0002\u21d5\u21d6\u0007\u0088\u0002", + "\u0002\u21d6\u21d7\u0007\u00ac\u0002\u0002\u21d7\u21d8\u0007\u033c\u0002", + "\u0002\u21d8\u21d9\u0005\u039e\u01d0\u0002\u21d9\u21da\u0007\u033d\u0002", + "\u0002\u21da\u21db\u0007\u010e\u0002\u0002\u21db\u21e0\u0005\u038e\u01c8", + "\u0002\u21dc\u21dd\u0007\u033c\u0002\u0002\u21dd\u21de\u0005\u039e\u01d0", + "\u0002\u21de\u21df\u0007\u033d\u0002\u0002\u21df\u21e1\u0003\u0002\u0002", + "\u0002\u21e0\u21dc\u0003\u0002\u0002\u0002\u21e0\u21e1\u0003\u0002\u0002", + "\u0002\u21e1\u21e3\u0003\u0002\u0002\u0002\u21e2\u21e4\u0005\u02c4\u0163", + "\u0002\u21e3\u21e2\u0003\u0002\u0002\u0002\u21e3\u21e4\u0003\u0002\u0002", + "\u0002\u21e4\u21e6\u0003\u0002\u0002\u0002\u21e5\u21e7\u0005\u02c6\u0164", + "\u0002\u21e6\u21e5\u0003\u0002\u0002\u0002\u21e6\u21e7\u0003\u0002\u0002", + "\u0002\u21e7\u21e9\u0003\u0002\u0002\u0002\u21e8\u21ab\u0003\u0002\u0002", + "\u0002\u21e8\u21ba\u0003\u0002\u0002\u0002\u21e8\u21c4\u0003\u0002\u0002", + "\u0002\u21e8\u21d5\u0003\u0002\u0002\u0002\u21e9\u02c3\u0003\u0002\u0002", + "\u0002\u21ea\u21eb\u0007\u00e5\u0002\u0002\u21eb\u21f3\u0007\\\u0002", + "\u0002\u21ec\u21ed\u0007\u0263\u0002\u0002\u21ed\u21f4\u0007\u0180\u0002", + "\u0002\u21ee\u21f4\u0007)\u0002\u0002\u21ef\u21f0\u0007\u013b\u0002", + "\u0002\u21f0\u21f4\u0007\u00df\u0002\u0002\u21f1\u21f2\u0007\u013b\u0002", + "\u0002\u21f2\u21f4\u0007Y\u0002\u0002\u21f3\u21ec\u0003\u0002\u0002", + "\u0002\u21f3\u21ee\u0003\u0002\u0002\u0002\u21f3\u21ef\u0003\u0002\u0002", + "\u0002\u21f3\u21f1\u0003\u0002\u0002\u0002\u21f4\u02c5\u0003\u0002\u0002", + "\u0002\u21f5\u21f6\u0007\u00e5\u0002\u0002\u21f6\u21fe\u0007\u0169\u0002", + "\u0002\u21f7\u21f8\u0007\u0263\u0002\u0002\u21f8\u21ff\u0007\u0180\u0002", + "\u0002\u21f9\u21ff\u0007)\u0002\u0002\u21fa\u21fb\u0007\u013b\u0002", + "\u0002\u21fb\u21ff\u0007\u00df\u0002\u0002\u21fc\u21fd\u0007\u013b\u0002", + "\u0002\u21fd\u21ff\u0007Y\u0002\u0002\u21fe\u21f7\u0003\u0002\u0002", + "\u0002\u21fe\u21f9\u0003\u0002\u0002\u0002\u21fe\u21fa\u0003\u0002\u0002", + "\u0002\u21fe\u21fc\u0003\u0002\u0002\u0002\u21ff\u02c7\u0003\u0002\u0002", + "\u0002\u2200\u2201\u0007\u0179\u0002\u0002\u2201\u2202\u0007\u033c\u0002", + "\u0002\u2202\u2207\u0005\u02ca\u0166\u0002\u2203\u2204\u0007\u033e\u0002", + "\u0002\u2204\u2206\u0005\u02ca\u0166\u0002\u2205\u2203\u0003\u0002\u0002", + "\u0002\u2206\u2209\u0003\u0002\u0002\u0002\u2207\u2205\u0003\u0002\u0002", + "\u0002\u2207\u2208\u0003\u0002\u0002\u0002\u2208\u220a\u0003\u0002\u0002", + "\u0002\u2209\u2207\u0003\u0002\u0002\u0002\u220a\u220b\u0007\u033d\u0002", + "\u0002\u220b\u02c9\u0003\u0002\u0002\u0002\u220c\u220d\u0005\u03c8\u01e5", + "\u0002\u220d\u2211\u0007\u032a\u0002\u0002\u220e\u2212\u0005\u03c8\u01e5", + "\u0002\u220f\u2212\u0005\u03a2\u01d2\u0002\u2210\u2212\u0007\u0322\u0002", + "\u0002\u2211\u220e\u0003\u0002\u0002\u0002\u2211\u220f\u0003\u0002\u0002", + "\u0002\u2211\u2210\u0003\u0002\u0002\u0002\u2212\u02cb\u0003\u0002\u0002", + "\u0002\u2213\u2214\u0007X\u0002\u0002\u2214\u2234\u0005\u03a0\u01d1", + "\u0002\u2215\u221f\u0007P\u0002\u0002\u2216\u221d\u0005\u02ce\u0168", + "\u0002\u2217\u2218\u0007\u0085\u0002\u0002\u2218\u221b\u0007\u0169\u0002", + "\u0002\u2219\u221a\u0007\u00e1\u0002\u0002\u221a\u221c\u0005\u039e\u01d0", + "\u0002\u221b\u2219\u0003\u0002\u0002\u0002\u221b\u221c\u0003\u0002\u0002", + "\u0002\u221c\u221e\u0003\u0002\u0002\u0002\u221d\u2217\u0003\u0002\u0002", + "\u0002\u221d\u221e\u0003\u0002\u0002\u0002\u221e\u2220\u0003\u0002\u0002", + "\u0002\u221f\u2216\u0003\u0002\u0002\u0002\u221f\u2220\u0003\u0002\u0002", + "\u0002\u2220\u2235\u0003\u0002\u0002\u0002\u2221\u2223\tf\u0002\u0002", + "\u2222\u2221\u0003\u0002\u0002\u0002\u2222\u2223\u0003\u0002\u0002\u0002", + "\u2223\u2225\u0003\u0002\u0002\u0002\u2224\u2226\u0007\u02c0\u0002\u0002", + "\u2225\u2224\u0003\u0002\u0002\u0002\u2225\u2226\u0003\u0002\u0002\u0002", + "\u2226\u2227\u0003\u0002\u0002\u0002\u2227\u2228\u0007P\u0002\u0002", + "\u2228\u2229\u0007\u0085\u0002\u0002\u2229\u2232\u0005\u01be\u00e0\u0002", + "\u222a\u2230\u0007\u0085\u0002\u0002\u222b\u222c\u0007\u010a\u0002\u0002", + "\u222c\u2231\u0007\u0276\u0002\u0002\u222d\u2231\u0007\u0169\u0002\u0002", + "\u222e\u222f\u0007\u00e1\u0002\u0002\u222f\u2231\u0005\u039e\u01d0\u0002", + "\u2230\u222b\u0003\u0002\u0002\u0002\u2230\u222d\u0003\u0002\u0002\u0002", + "\u2230\u222e\u0003\u0002\u0002\u0002\u2231\u2233\u0003\u0002\u0002\u0002", + "\u2232\u222a\u0003\u0002\u0002\u0002\u2232\u2233\u0003\u0002\u0002\u0002", + "\u2233\u2235\u0003\u0002\u0002\u0002\u2234\u2215\u0003\u0002\u0002\u0002", + "\u2234\u2222\u0003\u0002\u0002\u0002\u2235\u2237\u0003\u0002\u0002\u0002", + "\u2236\u2238\u0007\u033f\u0002\u0002\u2237\u2236\u0003\u0002\u0002\u0002", + "\u2237\u2238\u0003\u0002\u0002\u0002\u2238\u02cd\u0003\u0002\u0002\u0002", + "\u2239\u223b\u0005\u02d0\u0169\u0002\u223a\u2239\u0003\u0002\u0002\u0002", + "\u223b\u223e\u0003\u0002\u0002\u0002\u223c\u223a\u0003\u0002\u0002\u0002", + "\u223c\u223d\u0003\u0002\u0002\u0002\u223d\u223f\u0003\u0002\u0002\u0002", + "\u223e\u223c\u0003\u0002\u0002\u0002\u223f\u2240\u0007\u0085\u0002\u0002", + "\u2240\u2241\u0005\u01be\u00e0\u0002\u2241\u02cf\u0003\u0002\u0002\u0002", + "\u2242\u2248\tA\u0002\u0002\u2243\u2248\tg\u0002\u0002\u2244\u2248\t", + "h\u0002\u0002\u2245\u2248\ti\u0002\u0002\u2246\u2248\u0007\u0302\u0002", + "\u0002\u2247\u2242\u0003\u0002\u0002\u0002\u2247\u2243\u0003\u0002\u0002", + "\u0002\u2247\u2244\u0003\u0002\u0002\u0002\u2247\u2245\u0003\u0002\u0002", + "\u0002\u2247\u2246\u0003\u0002\u0002\u0002\u2248\u02d1\u0003\u0002\u0002", + "\u0002\u2249\u2253\u0007\u0080\u0002\u0002\u224a\u2251\u0007\u0262\u0002", + "\u0002\u224b\u2251\u0007\u0289\u0002\u0002\u224c\u2251\u0007\u0200\u0002", + "\u0002\u224d\u2251\u0007\u022f\u0002\u0002\u224e\u224f\tj\u0002\u0002", + "\u224f\u2251\u0005\u02d8\u016d\u0002\u2250\u224a\u0003\u0002\u0002\u0002", + "\u2250\u224b\u0003\u0002\u0002\u0002\u2250\u224c\u0003\u0002\u0002\u0002", + "\u2250\u224d\u0003\u0002\u0002\u0002\u2250\u224e\u0003\u0002\u0002\u0002", + "\u2250\u2251\u0003\u0002\u0002\u0002\u2251\u2252\u0003\u0002\u0002\u0002", + "\u2252\u2254\u0007\u008b\u0002\u0002\u2253\u2250\u0003\u0002\u0002\u0002", + "\u2253\u2254\u0003\u0002\u0002\u0002\u2254\u2256\u0003\u0002\u0002\u0002", + "\u2255\u2257\u0007\u020d\u0002\u0002\u2256\u2255\u0003\u0002\u0002\u0002", + "\u2256\u2257\u0003\u0002\u0002\u0002\u2257\u2258\u0003\u0002\u0002\u0002", + "\u2258\u2262\u0005\u03a0\u01d1\u0002\u2259\u225a\u0007\u00a5\u0002\u0002", + "\u225a\u225f\u0007\u0321\u0002\u0002\u225b\u225c\u0007\u033e\u0002\u0002", + "\u225c\u225e\u0007\u0321\u0002\u0002\u225d\u225b\u0003\u0002\u0002\u0002", + "\u225e\u2261\u0003\u0002\u0002\u0002\u225f\u225d\u0003\u0002\u0002\u0002", + "\u225f\u2260\u0003\u0002\u0002\u0002\u2260\u2263\u0003\u0002\u0002\u0002", + "\u2261\u225f\u0003\u0002\u0002\u0002\u2262\u2259\u0003\u0002\u0002\u0002", + "\u2262\u2263\u0003\u0002\u0002\u0002\u2263\u2265\u0003\u0002\u0002\u0002", + "\u2264\u2266\u0007\u033f\u0002\u0002\u2265\u2264\u0003\u0002\u0002\u0002", + "\u2265\u2266\u0003\u0002\u0002\u0002\u2266\u02d3\u0003\u0002\u0002\u0002", + "\u2267\u2268\u0007\u013b\u0002\u0002\u2268\u226c\u0005\u03c6\u01e4\u0002", + "\u2269\u226d\u0005\u03c6\u01e4\u0002\u226a\u226d\u0005\u02d6\u016c\u0002", + "\u226b\u226d\u0005\u03a2\u01d2\u0002\u226c\u2269\u0003\u0002\u0002\u0002", + "\u226c\u226a\u0003\u0002\u0002\u0002\u226c\u226b\u0003\u0002\u0002\u0002", + "\u226d\u226f\u0003\u0002\u0002\u0002\u226e\u2270\u0007\u033f\u0002\u0002", + "\u226f\u226e\u0003\u0002\u0002\u0002\u226f\u2270\u0003\u0002\u0002\u0002", + "\u2270\u2299\u0003\u0002\u0002\u0002\u2271\u2272\u0007\u013b\u0002\u0002", + "\u2272\u2273\u0007\u015e\u0002\u0002\u2273\u2274\u0007\u0225\u0002\u0002", + "\u2274\u227e\u0007\u0232\u0002\u0002\u2275\u2276\u0007\u010a\u0002\u0002", + "\u2276\u227f\u0007\u0304\u0002\u0002\u2277\u2278\u0007\u010a\u0002\u0002", + "\u2278\u227f\u0007\u01b7\u0002\u0002\u2279\u227a\u0007\u02ab\u0002\u0002", + "\u227a\u227f\u0007\u010a\u0002\u0002\u227b\u227f\u0007\u02da\u0002\u0002", + "\u227c\u227f\u0007\u02d0\u0002\u0002\u227d\u227f\u0007\u0322\u0002\u0002", + "\u227e\u2275\u0003\u0002\u0002\u0002\u227e\u2277\u0003\u0002\u0002\u0002", + "\u227e\u2279\u0003\u0002\u0002\u0002\u227e\u227b\u0003\u0002\u0002\u0002", + "\u227e\u227c\u0003\u0002\u0002\u0002\u227e\u227d\u0003\u0002\u0002\u0002", + "\u227f\u2281\u0003\u0002\u0002\u0002\u2280\u2282\u0007\u033f\u0002\u0002", + "\u2281\u2280\u0003\u0002\u0002\u0002\u2281\u2282\u0003\u0002\u0002\u0002", + "\u2282\u2299\u0003\u0002\u0002\u0002\u2283\u2284\u0007\u013b\u0002\u0002", + "\u2284\u2285\u0007\u0098\u0002\u0002\u2285\u2286\u0005\u038e\u01c8\u0002", + "\u2286\u2288\u0005\u03a2\u01d2\u0002\u2287\u2289\u0007\u033f\u0002\u0002", + "\u2288\u2287\u0003\u0002\u0002\u0002\u2288\u2289\u0003\u0002\u0002\u0002", + "\u2289\u2299\u0003\u0002\u0002\u0002\u228a\u228b\u0007\u013b\u0002\u0002", + "\u228b\u228c\u0007\u018f\u0002\u0002\u228c\u2299\u0005\u03a2\u01d2\u0002", + "\u228d\u228e\u0007\u013b\u0002\u0002\u228e\u228f\u0007\u0296\u0002\u0002", + "\u228f\u2299\u0005\u03a2\u01d2\u0002\u2290\u2291\u0007\u013b\u0002\u0002", + "\u2291\u2292\u0007\u0190\u0002\u0002\u2292\u2299\u0005\u03a2\u01d2\u0002", + "\u2293\u2294\u0007\u013b\u0002\u0002\u2294\u2295\u0007\u0191\u0002\u0002", + "\u2295\u2299\u0005\u03a2\u01d2\u0002\u2296\u2297\u0007\u013b\u0002\u0002", + "\u2297\u2299\u0005\u034a\u01a6\u0002\u2298\u2267\u0003\u0002\u0002\u0002", + "\u2298\u2271\u0003\u0002\u0002\u0002\u2298\u2283\u0003\u0002\u0002\u0002", + "\u2298\u228a\u0003\u0002\u0002\u0002\u2298\u228d\u0003\u0002\u0002\u0002", + "\u2298\u2290\u0003\u0002\u0002\u0002\u2298\u2293\u0003\u0002\u0002\u0002", + "\u2298\u2296\u0003\u0002\u0002\u0002\u2299\u02d5\u0003\u0002\u0002\u0002", + "\u229a\u229d\u0005\u03c2\u01e2\u0002\u229b\u229d\u0007\u0321\u0002\u0002", + "\u229c\u229a\u0003\u0002\u0002\u0002\u229c\u229b\u0003\u0002\u0002\u0002", + "\u229d\u02d7\u0003\u0002\u0002\u0002\u229e\u229f\b\u016d\u0001\u0002", + "\u229f\u22a7\u0005\u02da\u016e\u0002\u22a0\u22a7\u0005\u0340\u01a1\u0002", + "\u22a1\u22a7\u0005\u02dc\u016f\u0002\u22a2\u22a7\u0005\u039a\u01ce\u0002", + "\u22a3\u22a7\u0005\u02e0\u0171\u0002\u22a4\u22a7\u0005\u02de\u0170\u0002", + "\u22a5\u22a7\u0005\u0370\u01b9\u0002\u22a6\u229e\u0003\u0002\u0002\u0002", + "\u22a6\u22a0\u0003\u0002\u0002\u0002\u22a6\u22a1\u0003\u0002\u0002\u0002", + "\u22a6\u22a2\u0003\u0002\u0002\u0002\u22a6\u22a3\u0003\u0002\u0002\u0002", + "\u22a6\u22a4\u0003\u0002\u0002\u0002\u22a6\u22a5\u0003\u0002\u0002\u0002", + "\u22a7\u22bb\u0003\u0002\u0002\u0002\u22a8\u22a9\f\u0007\u0002\u0002", + "\u22a9\u22aa\tk\u0002\u0002\u22aa\u22ba\u0005\u02d8\u016d\b\u22ab\u22ac", + "\f\u0006\u0002\u0002\u22ac\u22ad\tl\u0002\u0002\u22ad\u22ba\u0005\u02d8", + "\u016d\u0007\u22ae\u22af\f\u0005\u0002\u0002\u22af\u22b0\u0005\u03ca", + "\u01e6\u0002\u22b0\u22b1\u0005\u02d8\u016d\u0006\u22b1\u22ba\u0003\u0002", + "\u0002\u0002\u22b2\u22b3\f\u0004\u0002\u0002\u22b3\u22b4\u0005\u03cc", + "\u01e7\u0002\u22b4\u22b5\u0005\u02d8\u016d\u0005\u22b5\u22ba\u0003\u0002", + "\u0002\u0002\u22b6\u22b7\f\f\u0002\u0002\u22b7\u22b8\u00077\u0002\u0002", + "\u22b8\u22ba\u0005\u03c6\u01e4\u0002\u22b9\u22a8\u0003\u0002\u0002\u0002", + "\u22b9\u22ab\u0003\u0002\u0002\u0002\u22b9\u22ae\u0003\u0002\u0002\u0002", + "\u22b9\u22b2\u0003\u0002\u0002\u0002\u22b9\u22b6\u0003\u0002\u0002\u0002", + "\u22ba\u22bd\u0003\u0002\u0002\u0002\u22bb\u22b9\u0003\u0002\u0002\u0002", + "\u22bb\u22bc\u0003\u0002\u0002\u0002\u22bc\u02d9\u0003\u0002\u0002\u0002", + "\u22bd\u22bb\u0003\u0002\u0002\u0002\u22be\u22c3\u0007Y\u0002\u0002", + "\u22bf\u22c3\u0007\u00df\u0002\u0002\u22c0\u22c3\u0007\u0321\u0002\u0002", + "\u22c1\u22c3\u0005\u03c2\u01e2\u0002\u22c2\u22be\u0003\u0002\u0002\u0002", + "\u22c2\u22bf\u0003\u0002\u0002\u0002\u22c2\u22c0\u0003\u0002\u0002\u0002", + "\u22c2\u22c1\u0003\u0002\u0002\u0002\u22c3\u02db\u0003\u0002\u0002\u0002", + "\u22c4\u22c5\u0007*\u0002\u0002\u22c5\u22c7\u0005\u02d8\u016d\u0002", + "\u22c6\u22c8\u0005\u034e\u01a8\u0002\u22c7\u22c6\u0003\u0002\u0002\u0002", + "\u22c8\u22c9\u0003\u0002\u0002\u0002\u22c9\u22c7\u0003\u0002\u0002\u0002", + "\u22c9\u22ca\u0003\u0002\u0002\u0002\u22ca\u22cd\u0003\u0002\u0002\u0002", + "\u22cb\u22cc\u0007j\u0002\u0002\u22cc\u22ce\u0005\u02d8\u016d\u0002", + "\u22cd\u22cb\u0003\u0002\u0002\u0002\u22cd\u22ce\u0003\u0002\u0002\u0002", + "\u22ce\u22cf\u0003\u0002\u0002\u0002\u22cf\u22d0\u0007l\u0002\u0002", + "\u22d0\u22de\u0003\u0002\u0002\u0002\u22d1\u22d3\u0007*\u0002\u0002", + "\u22d2\u22d4\u0005\u0350\u01a9\u0002\u22d3\u22d2\u0003\u0002\u0002\u0002", + "\u22d4\u22d5\u0003\u0002\u0002\u0002\u22d5\u22d3\u0003\u0002\u0002\u0002", + "\u22d5\u22d6\u0003\u0002\u0002\u0002\u22d6\u22d9\u0003\u0002\u0002\u0002", + "\u22d7\u22d8\u0007j\u0002\u0002\u22d8\u22da\u0005\u02d8\u016d\u0002", + "\u22d9\u22d7\u0003\u0002\u0002\u0002\u22d9\u22da\u0003\u0002\u0002\u0002", + "\u22da\u22db\u0003\u0002\u0002\u0002\u22db\u22dc\u0007l\u0002\u0002", + "\u22dc\u22de\u0003\u0002\u0002\u0002\u22dd\u22c4\u0003\u0002\u0002\u0002", + "\u22dd\u22d1\u0003\u0002\u0002\u0002\u22de\u02dd\u0003\u0002\u0002\u0002", + "\u22df\u22e0\u0007\u0346\u0002\u0002\u22e0\u22e4\u0005\u02d8\u016d\u0002", + "\u22e1\u22e2\tm\u0002\u0002\u22e2\u22e4\u0005\u02d8\u016d\u0002\u22e3", + "\u22df\u0003\u0002\u0002\u0002\u22e3\u22e1\u0003\u0002\u0002\u0002\u22e4", + "\u02df\u0003\u0002\u0002\u0002\u22e5\u22e6\u0007\u033c\u0002\u0002\u22e6", + "\u22e7\u0005\u02d8\u016d\u0002\u22e7\u22e8\u0007\u033d\u0002\u0002\u22e8", + "\u22ee\u0003\u0002\u0002\u0002\u22e9\u22ea\u0007\u033c\u0002\u0002\u22ea", + "\u22eb\u0005\u02e4\u0173\u0002\u22eb\u22ec\u0007\u033d\u0002\u0002\u22ec", + "\u22ee\u0003\u0002\u0002\u0002\u22ed\u22e5\u0003\u0002\u0002\u0002\u22ed", + "\u22e9\u0003\u0002\u0002\u0002\u22ee\u02e1\u0003\u0002\u0002\u0002\u22ef", + "\u22f8\u0007\u00df\u0002\u0002\u22f0\u22f8\u0005\u03c2\u01e2\u0002\u22f1", + "\u22f8\u0005\u0340\u01a1\u0002\u22f2\u22f8\u0007\u0321\u0002\u0002\u22f3", + "\u22f4\u0007\u033c\u0002\u0002\u22f4\u22f5\u0005\u02e2\u0172\u0002\u22f5", + "\u22f6\u0007\u033d\u0002\u0002\u22f6\u22f8\u0003\u0002\u0002\u0002\u22f7", + "\u22ef\u0003\u0002\u0002\u0002\u22f7\u22f0\u0003\u0002\u0002\u0002\u22f7", + "\u22f1\u0003\u0002\u0002\u0002\u22f7\u22f2\u0003\u0002\u0002\u0002\u22f7", + "\u22f3\u0003\u0002\u0002\u0002\u22f8\u02e3\u0003\u0002\u0002\u0002\u22f9", + "\u22fa\u0005\u01be\u00e0\u0002\u22fa\u02e5\u0003\u0002\u0002\u0002\u22fb", + "\u22fe\u0007\u0179\u0002\u0002\u22fc\u22fd\u0007\u0317\u0002\u0002\u22fd", + "\u22ff\u0007\u033e\u0002\u0002\u22fe\u22fc\u0003\u0002\u0002\u0002\u22fe", + "\u22ff\u0003\u0002\u0002\u0002\u22ff\u2300\u0003\u0002\u0002\u0002\u2300", + "\u2305\u0005\u02e8\u0175\u0002\u2301\u2302\u0007\u033e\u0002\u0002\u2302", + "\u2304\u0005\u02e8\u0175\u0002\u2303\u2301\u0003\u0002\u0002\u0002\u2304", + "\u2307\u0003\u0002\u0002\u0002\u2305\u2303\u0003\u0002\u0002\u0002\u2305", + "\u2306\u0003\u0002\u0002\u0002\u2306\u2316\u0003\u0002\u0002\u0002\u2307", + "\u2305\u0003\u0002\u0002\u0002\u2308\u2309\u0007\u0179\u0002\u0002\u2309", + "\u230e\u0007 \u0002\u0002\u230a\u230b\u0007\u033c\u0002\u0002\u230b", + "\u230c\u0005\u0336\u019c\u0002\u230c\u230d\u0007\u033d\u0002\u0002\u230d", + "\u230f\u0003\u0002\u0002\u0002\u230e\u230a\u0003\u0002\u0002\u0002\u230e", + "\u230f\u0003\u0002\u0002\u0002\u230f\u2310\u0003\u0002\u0002\u0002\u2310", + "\u2311\u0007\u0010\u0002\u0002\u2311\u2312\u0007\u033c\u0002\u0002\u2312", + "\u2313\u0005\u01be\u00e0\u0002\u2313\u2314\u0007\u033d\u0002\u0002\u2314", + "\u2316\u0003\u0002\u0002\u0002\u2315\u22fb\u0003\u0002\u0002\u0002\u2315", + "\u2308\u0003\u0002\u0002\u0002\u2316\u02e7\u0003\u0002\u0002\u0002\u2317", + "\u231c\u0005\u03c6\u01e4\u0002\u2318\u2319\u0007\u033c\u0002\u0002\u2319", + "\u231a\u0005\u039e\u01d0\u0002\u231a\u231b\u0007\u033d\u0002\u0002\u231b", + "\u231d\u0003\u0002\u0002\u0002\u231c\u2318\u0003\u0002\u0002\u0002\u231c", + "\u231d\u0003\u0002\u0002\u0002\u231d\u231e\u0003\u0002\u0002\u0002\u231e", + "\u231f\u0007\u0010\u0002\u0002\u231f\u2320\u0007\u033c\u0002\u0002\u2320", + "\u2321\u0005\u01be\u00e0\u0002\u2321\u2322\u0007\u033d\u0002\u0002\u2322", + "\u02e9\u0003\u0002\u0002\u0002\u2323\u2326\u0005\u039a\u01ce\u0002\u2324", + "\u2326\u0007\u0321\u0002\u0002\u2325\u2323\u0003\u0002\u0002\u0002\u2325", + "\u2324\u0003\u0002\u0002\u0002\u2326\u2329\u0003\u0002\u0002\u0002\u2327", + "\u232a\u0007\u032a\u0002\u0002\u2328\u232a\u0005\u03cc\u01e7\u0002\u2329", + "\u2327\u0003\u0002\u0002\u0002\u2329\u2328\u0003\u0002\u0002\u0002\u232a", + "\u232b\u0003\u0002\u0002\u0002\u232b\u2334\u0005\u02d8\u016d\u0002\u232c", + "\u232d\u0005\u03c6\u01e4\u0002\u232d\u232e\u0007\u0337\u0002\u0002\u232e", + "\u232f\u0005\u03c6\u01e4\u0002\u232f\u2330\u0007\u033c\u0002\u0002\u2330", + "\u2331\u0005\u0366\u01b4\u0002\u2331\u2332\u0007\u033d\u0002\u0002\u2332", + "\u2334\u0003\u0002\u0002\u0002\u2333\u2325\u0003\u0002\u0002\u0002\u2333", + "\u232c\u0003\u0002\u0002\u0002\u2334\u02eb\u0003\u0002\u0002\u0002\u2335", + "\u233a\u0005\u02ee\u0178\u0002\u2336\u2337\u0007\u033e\u0002\u0002\u2337", + "\u2339\u0005\u02ee\u0178\u0002\u2338\u2336\u0003\u0002\u0002\u0002\u2339", + "\u233c\u0003\u0002\u0002\u0002\u233a\u2338\u0003\u0002\u0002\u0002\u233a", + "\u233b\u0003\u0002\u0002\u0002\u233b\u02ed\u0003\u0002\u0002\u0002\u233c", + "\u233a\u0003\u0002\u0002\u0002\u233d\u2342\u0005\u02f0\u0179\u0002\u233e", + "\u233f\u0007\u00ed\u0002\u0002\u233f\u2341\u0005\u02f0\u0179\u0002\u2340", + "\u233e\u0003\u0002\u0002\u0002\u2341\u2344\u0003\u0002\u0002\u0002\u2342", + "\u2340\u0003\u0002\u0002\u0002\u2342\u2343\u0003\u0002\u0002\u0002\u2343", + "\u02ef\u0003\u0002\u0002\u0002\u2344\u2342\u0003\u0002\u0002\u0002\u2345", + "\u234a\u0005\u02f2\u017a\u0002\u2346\u2347\u0007\u000b\u0002\u0002\u2347", + "\u2349\u0005\u02f2\u017a\u0002\u2348\u2346\u0003\u0002\u0002\u0002\u2349", + "\u234c\u0003\u0002\u0002\u0002\u234a\u2348\u0003\u0002\u0002\u0002\u234a", + "\u234b\u0003\u0002\u0002\u0002\u234b\u02f1\u0003\u0002\u0002\u0002\u234c", + "\u234a\u0003\u0002\u0002\u0002\u234d\u234f\u0007\u00dc\u0002\u0002\u234e", + "\u234d\u0003\u0002\u0002\u0002\u234e\u234f\u0003\u0002\u0002\u0002\u234f", + "\u2350\u0003\u0002\u0002\u0002\u2350\u2351\u0005\u02f4\u017b\u0002\u2351", + "\u02f3\u0003\u0002\u0002\u0002\u2352\u2353\u0007w\u0002\u0002\u2353", + "\u2354\u0007\u033c\u0002\u0002\u2354\u2355\u0005\u02e4\u0173\u0002\u2355", + "\u2356\u0007\u033d\u0002\u0002\u2356\u238a\u0003\u0002\u0002\u0002\u2357", + "\u2358\u0005\u02d8\u016d\u0002\u2358\u2359\u0005\u03ca\u01e6\u0002\u2359", + "\u235a\u0005\u02d8\u016d\u0002\u235a\u238a\u0003\u0002\u0002\u0002\u235b", + "\u235c\u0005\u02d8\u016d\u0002\u235c\u235d\u0005\u03ca\u01e6\u0002\u235d", + "\u235e\tn\u0002\u0002\u235e\u235f\u0007\u033c\u0002\u0002\u235f\u2360", + "\u0005\u02e4\u0173\u0002\u2360\u2361\u0007\u033d\u0002\u0002\u2361\u238a", + "\u0003\u0002\u0002\u0002\u2362\u2364\u0005\u02d8\u016d\u0002\u2363\u2365", + "\u0007\u00dc\u0002\u0002\u2364\u2363\u0003\u0002\u0002\u0002\u2364\u2365", + "\u0003\u0002\u0002\u0002\u2365\u2366\u0003\u0002\u0002\u0002\u2366\u2367", + "\u0007\u001d\u0002\u0002\u2367\u2368\u0005\u02d8\u016d\u0002\u2368\u2369", + "\u0007\u000b\u0002\u0002\u2369\u236a\u0005\u02d8\u016d\u0002\u236a\u238a", + "\u0003\u0002\u0002\u0002\u236b\u236d\u0005\u02d8\u016d\u0002\u236c\u236e", + "\u0007\u00dc\u0002\u0002\u236d\u236c\u0003\u0002\u0002\u0002\u236d\u236e", + "\u0003\u0002\u0002\u0002\u236e\u236f\u0003\u0002\u0002\u0002\u236f\u2370", + "\u0007\u009b\u0002\u0002\u2370\u2373\u0007\u033c\u0002\u0002\u2371\u2374", + "\u0005\u02e4\u0173\u0002\u2372\u2374\u0005\u0366\u01b4\u0002\u2373\u2371", + "\u0003\u0002\u0002\u0002\u2373\u2372\u0003\u0002\u0002\u0002\u2374\u2375", + "\u0003\u0002\u0002\u0002\u2375\u2376\u0007\u033d\u0002\u0002\u2376\u238a", + "\u0003\u0002\u0002\u0002\u2377\u2379\u0005\u02d8\u016d\u0002\u2378\u237a", + "\u0007\u00dc\u0002\u0002\u2379\u2378\u0003\u0002\u0002\u0002\u2379\u237a", + "\u0003\u0002\u0002\u0002\u237a\u237b\u0003\u0002\u0002\u0002\u237b\u237c", + "\u0007\u00b4\u0002\u0002\u237c\u237f\u0005\u02d8\u016d\u0002\u237d\u237e", + "\u0007o\u0002\u0002\u237e\u2380\u0005\u02d8\u016d\u0002\u237f\u237d", + "\u0003\u0002\u0002\u0002\u237f\u2380\u0003\u0002\u0002\u0002\u2380\u238a", + "\u0003\u0002\u0002\u0002\u2381\u2382\u0005\u02d8\u016d\u0002\u2382\u2383", + "\u0007\u00a8\u0002\u0002\u2383\u2384\u0005\u03a6\u01d4\u0002\u2384\u238a", + "\u0003\u0002\u0002\u0002\u2385\u2386\u0007\u033c\u0002\u0002\u2386\u2387", + "\u0005\u02ee\u0178\u0002\u2387\u2388\u0007\u033d\u0002\u0002\u2388\u238a", + "\u0003\u0002\u0002\u0002\u2389\u2352\u0003\u0002\u0002\u0002\u2389\u2357", + "\u0003\u0002\u0002\u0002\u2389\u235b\u0003\u0002\u0002\u0002\u2389\u2362", + "\u0003\u0002\u0002\u0002\u2389\u236b\u0003\u0002\u0002\u0002\u2389\u2377", + "\u0003\u0002\u0002\u0002\u2389\u2381\u0003\u0002\u0002\u0002\u2389\u2385", + "\u0003\u0002\u0002\u0002\u238a\u02f5\u0003\u0002\u0002\u0002\u238b\u2391", + "\u0005\u02fa\u017e\u0002\u238c\u238d\u0007\u033c\u0002\u0002\u238d\u238e", + "\u0005\u02f6\u017c\u0002\u238e\u238f\u0007\u033d\u0002\u0002\u238f\u2391", + "\u0003\u0002\u0002\u0002\u2390\u238b\u0003\u0002\u0002\u0002\u2390\u238c", + "\u0003\u0002\u0002\u0002\u2391\u2395\u0003\u0002\u0002\u0002\u2392\u2394", + "\u0005\u02f8\u017d\u0002\u2393\u2392\u0003\u0002\u0002\u0002\u2394\u2397", + "\u0003\u0002\u0002\u0002\u2395\u2393\u0003\u0002\u0002\u0002\u2395\u2396", + "\u0003\u0002\u0002\u0002\u2396\u02f7\u0003\u0002\u0002\u0002\u2397\u2395", + "\u0003\u0002\u0002\u0002\u2398\u239a\u0007\u0164\u0002\u0002\u2399\u239b", + "\u0007\u0006\u0002\u0002\u239a\u2399\u0003\u0002\u0002\u0002\u239a\u239b", + "\u0003\u0002\u0002\u0002\u239b\u239f\u0003\u0002\u0002\u0002\u239c\u239f", + "\u0007t\u0002\u0002\u239d\u239f\u0007\u00a4\u0002\u0002\u239e\u2398", + "\u0003\u0002\u0002\u0002\u239e\u239c\u0003\u0002\u0002\u0002\u239e\u239d", + "\u0003\u0002\u0002\u0002\u239f\u23a5\u0003\u0002\u0002\u0002\u23a0\u23a6", + "\u0005\u02fa\u017e\u0002\u23a1\u23a2\u0007\u033c\u0002\u0002\u23a2\u23a3", + "\u0005\u02f6\u017c\u0002\u23a3\u23a4\u0007\u033d\u0002\u0002\u23a4\u23a6", + "\u0003\u0002\u0002\u0002\u23a5\u23a0\u0003\u0002\u0002\u0002\u23a5\u23a1", + "\u0003\u0002\u0002\u0002\u23a6\u02f9\u0003\u0002\u0002\u0002\u23a7\u23a9", + "\u0007\u0131\u0002\u0002\u23a8\u23aa\to\u0002\u0002\u23a9\u23a8\u0003", + "\u0002\u0002\u0002\u23a9\u23aa\u0003\u0002\u0002\u0002\u23aa\u23ac\u0003", + "\u0002\u0002\u0002\u23ab\u23ad\u0005\u02fc\u017f\u0002\u23ac\u23ab\u0003", + "\u0002\u0002\u0002\u23ac\u23ad\u0003\u0002\u0002\u0002\u23ad\u23ae\u0003", + "\u0002\u0002\u0002\u23ae\u23b1\u0005\u0312\u018a\u0002\u23af\u23b0\u0007", + "\u00a5\u0002\u0002\u23b0\u23b2\u0005\u038e\u01c8\u0002\u23b1\u23af\u0003", + "\u0002\u0002\u0002\u23b1\u23b2\u0003\u0002\u0002\u0002\u23b2\u23b5\u0003", + "\u0002\u0002\u0002\u23b3\u23b4\u0007\u008b\u0002\u0002\u23b4\u23b6\u0005", + "\u0320\u0191\u0002\u23b5\u23b3\u0003\u0002\u0002\u0002\u23b5\u23b6\u0003", + "\u0002\u0002\u0002\u23b6\u23b9\u0003\u0002\u0002\u0002\u23b7\u23b8\u0007", + "\u0176\u0002\u0002\u23b8\u23ba\u0005\u02ee\u0178\u0002\u23b9\u23b7\u0003", + "\u0002\u0002\u0002\u23b9\u23ba\u0003\u0002\u0002\u0002\u23ba\u23c8\u0003", + "\u0002\u0002\u0002\u23bb\u23bc\u0007\u0092\u0002\u0002\u23bc\u23be\u0007", + "&\u0002\u0002\u23bd\u23bf\u0007\u0006\u0002\u0002\u23be\u23bd\u0003", + "\u0002\u0002\u0002\u23be\u23bf\u0003\u0002\u0002\u0002\u23bf\u23c0\u0003", + "\u0002\u0002\u0002\u23c0\u23c5\u0005\u030a\u0186\u0002\u23c1\u23c2\u0007", + "\u033e\u0002\u0002\u23c2\u23c4\u0005\u030a\u0186\u0002\u23c3\u23c1\u0003", + "\u0002\u0002\u0002\u23c4\u23c7\u0003\u0002\u0002\u0002\u23c5\u23c3\u0003", + "\u0002\u0002\u0002\u23c5\u23c6\u0003\u0002\u0002\u0002\u23c6\u23c9\u0003", + "\u0002\u0002\u0002\u23c7\u23c5\u0003\u0002\u0002\u0002\u23c8\u23bb\u0003", + "\u0002\u0002\u0002\u23c8\u23c9\u0003\u0002\u0002\u0002\u23c9\u23cc\u0003", + "\u0002\u0002\u0002\u23ca\u23cb\u0007\u0093\u0002\u0002\u23cb\u23cd\u0005", + "\u02ee\u0178\u0002\u23cc\u23ca\u0003\u0002\u0002\u0002\u23cc\u23cd\u0003", + "\u0002\u0002\u0002\u23cd\u02fb\u0003\u0002\u0002\u0002\u23ce\u23d1\u0007", + "\u015b\u0002\u0002\u23cf\u23d2\u0005\u02fe\u0180\u0002\u23d0\u23d2\u0005", + "\u0300\u0181\u0002\u23d1\u23cf\u0003\u0002\u0002\u0002\u23d1\u23d0\u0003", + "\u0002\u0002\u0002\u23d2\u23d5\u0003\u0002\u0002\u0002\u23d3\u23d4\u0007", + "\u0179\u0002\u0002\u23d4\u23d6\u0007\u02f4\u0002\u0002\u23d5\u23d3\u0003", + "\u0002\u0002\u0002\u23d5\u23d6\u0003\u0002\u0002\u0002\u23d6\u02fd\u0003", + "\u0002\u0002\u0002\u23d7\u23d8\tp\u0002\u0002\u23d8\u23df\u0007\u00f5", + "\u0002\u0002\u23d9\u23da\u0007\u033c\u0002\u0002\u23da\u23db\u0005\u02d8", + "\u016d\u0002\u23db\u23dc\u0007\u033d\u0002\u0002\u23dc\u23dd\u0007\u00f5", + "\u0002\u0002\u23dd\u23df\u0003\u0002\u0002\u0002\u23de\u23d7\u0003\u0002", + "\u0002\u0002\u23de\u23d9\u0003\u0002\u0002\u0002\u23df\u02ff\u0003\u0002", + "\u0002\u0002\u23e0\u23e6\u0007\u0322\u0002\u0002\u23e1\u23e2\u0007\u033c", + "\u0002\u0002\u23e2\u23e3\u0005\u02d8\u016d\u0002\u23e3\u23e4\u0007\u033d", + "\u0002\u0002\u23e4\u23e6\u0003\u0002\u0002\u0002\u23e5\u23e0\u0003\u0002", + "\u0002\u0002\u23e5\u23e1\u0003\u0002\u0002\u0002\u23e6\u0301\u0003\u0002", + "\u0002\u0002\u23e7\u23e8\u0007\u00ee\u0002\u0002\u23e8\u23e9\u0007&", + "\u0002\u0002\u23e9\u23ee\u0005\u0308\u0185\u0002\u23ea\u23eb\u0007\u033e", + "\u0002\u0002\u23eb\u23ed\u0005\u0308\u0185\u0002\u23ec\u23ea\u0003\u0002", + "\u0002\u0002\u23ed\u23f0\u0003\u0002\u0002\u0002\u23ee\u23ec\u0003\u0002", + "\u0002\u0002\u23ee\u23ef\u0003\u0002\u0002\u0002\u23ef\u23fc\u0003\u0002", + "\u0002\u0002\u23f0\u23ee\u0003\u0002\u0002\u0002\u23f1\u23f2\u0007\u0273", + "\u0002\u0002\u23f2\u23f3\u0005\u02d8\u016d\u0002\u23f3\u23fa\tq\u0002", + "\u0002\u23f4\u23f5\u0007\u0080\u0002\u0002\u23f5\u23f6\tr\u0002\u0002", + "\u23f6\u23f7\u0005\u02d8\u016d\u0002\u23f7\u23f8\tq\u0002\u0002\u23f8", + "\u23f9\u0007\u0276\u0002\u0002\u23f9\u23fb\u0003\u0002\u0002\u0002\u23fa", + "\u23f4\u0003\u0002\u0002\u0002\u23fa\u23fb\u0003\u0002\u0002\u0002\u23fb", + "\u23fd\u0003\u0002\u0002\u0002\u23fc\u23f1\u0003\u0002\u0002\u0002\u23fc", + "\u23fd\u0003\u0002\u0002\u0002\u23fd\u0303\u0003\u0002\u0002\u0002\u23fe", + "\u23ff\u0007\u0085\u0002\u0002\u23ff\u2457\u0007\"\u0002\u0002\u2400", + "\u2401\u0007\u0085\u0002\u0002\u2401\u2409\u0007\u0315\u0002\u0002\u2402", + "\u2406\u0007\u0109\u0002\u0002\u2403\u2404\u0007\u033c\u0002\u0002\u2404", + "\u2405\u0007\u0326\u0002\u0002\u2405\u2407\u0007\u033d\u0002\u0002\u2406", + "\u2403\u0003\u0002\u0002\u0002\u2406\u2407\u0003\u0002\u0002\u0002\u2407", + "\u240a\u0003\u0002\u0002\u0002\u2408\u240a\u0007\u0198\u0002\u0002\u2409", + "\u2402\u0003\u0002\u0002\u0002\u2409\u2408\u0003\u0002\u0002\u0002\u240a", + "\u240e\u0003\u0002\u0002\u0002\u240b\u240d\u0005\u0306\u0184\u0002\u240c", + "\u240b\u0003\u0002\u0002\u0002\u240d\u2410\u0003\u0002\u0002\u0002\u240e", + "\u240c\u0003\u0002\u0002\u0002\u240e\u240f\u0003\u0002\u0002\u0002\u240f", + "\u241b\u0003\u0002\u0002\u0002\u2410\u240e\u0003\u0002\u0002\u0002\u2411", + "\u2419\u0007\u033e\u0002\u0002\u2412\u241a\u0007\u0316\u0002\u0002\u2413", + "\u2417\u0007\u0318\u0002\u0002\u2414\u2415\u0007\u033c\u0002\u0002\u2415", + "\u2416\u0007\u0326\u0002\u0002\u2416\u2418\u0007\u033d\u0002\u0002\u2417", + "\u2414\u0003\u0002\u0002\u0002\u2417\u2418\u0003\u0002\u0002\u0002\u2418", + "\u241a\u0003\u0002\u0002\u0002\u2419\u2412\u0003\u0002\u0002\u0002\u2419", + "\u2413\u0003\u0002\u0002\u0002\u241a\u241c\u0003\u0002\u0002\u0002\u241b", + "\u2411\u0003\u0002\u0002\u0002\u241b\u241c\u0003\u0002\u0002\u0002\u241c", + "\u2420\u0003\u0002\u0002\u0002\u241d\u241e\u0007\u033e\u0002\u0002\u241e", + "\u241f\u0007\u01e6\u0002\u0002\u241f\u2421\ts\u0002\u0002\u2420\u241d", + "\u0003\u0002\u0002\u0002\u2420\u2421\u0003\u0002\u0002\u0002\u2421\u2457", + "\u0003\u0002\u0002\u0002\u2422\u2423\u0007\u0085\u0002\u0002\u2423\u2424", + "\u0007\u0315\u0002\u0002\u2424\u2428\u0007\u01f4\u0002\u0002\u2425\u2427", + "\u0005\u0306\u0184\u0002\u2426\u2425\u0003\u0002\u0002\u0002\u2427\u242a", + "\u0003\u0002\u0002\u0002\u2428\u2426\u0003\u0002\u0002\u0002\u2428\u2429", + "\u0003\u0002\u0002\u0002\u2429\u242d\u0003\u0002\u0002\u0002\u242a\u2428", + "\u0003\u0002\u0002\u0002\u242b\u242c\u0007\u033e\u0002\u0002\u242c\u242e", + "\u0007\u0316\u0002\u0002\u242d\u242b\u0003\u0002\u0002\u0002\u242d\u242e", + "\u0003\u0002\u0002\u0002\u242e\u2457\u0003\u0002\u0002\u0002\u242f\u2430", + "\u0007\u0085\u0002\u0002\u2430\u2431\u0007\u0315\u0002\u0002\u2431\u2435", + "\u0007\u0283\u0002\u0002\u2432\u2433\u0007\u033c\u0002\u0002\u2433\u2434", + "\u0007\u0326\u0002\u0002\u2434\u2436\u0007\u033d\u0002\u0002\u2435\u2432", + "\u0003\u0002\u0002\u0002\u2435\u2436\u0003\u0002\u0002\u0002\u2436\u243a", + "\u0003\u0002\u0002\u0002\u2437\u2439\u0005\u0306\u0184\u0002\u2438\u2437", + "\u0003\u0002\u0002\u0002\u2439\u243c\u0003\u0002\u0002\u0002\u243a\u2438", + "\u0003\u0002\u0002\u0002\u243a\u243b\u0003\u0002\u0002\u0002\u243b\u2440", + "\u0003\u0002\u0002\u0002\u243c\u243a\u0003\u0002\u0002\u0002\u243d\u243e", + "\u0007\u033e\u0002\u0002\u243e\u243f\u0007\u01e6\u0002\u0002\u243f\u2441", + "\ts\u0002\u0002\u2440\u243d\u0003\u0002\u0002\u0002\u2440\u2441\u0003", + "\u0002\u0002\u0002\u2441\u2457\u0003\u0002\u0002\u0002\u2442\u2443\u0007", + "\u0085\u0002\u0002\u2443\u2444\u0007\u0227\u0002\u0002\u2444\u244c\t", + "t\u0002\u0002\u2445\u2446\u0007\u033e\u0002\u0002\u2446\u244a\u0007", + "\u02b7\u0002\u0002\u2447\u2448\u0007\u033c\u0002\u0002\u2448\u2449\u0007", + "\u0326\u0002\u0002\u2449\u244b\u0007\u033d\u0002\u0002\u244a\u2447\u0003", + "\u0002\u0002\u0002\u244a\u244b\u0003\u0002\u0002\u0002\u244b\u244d\u0003", + "\u0002\u0002\u0002\u244c\u2445\u0003\u0002\u0002\u0002\u244c\u244d\u0003", + "\u0002\u0002\u0002\u244d\u2450\u0003\u0002\u0002\u0002\u244e\u244f\u0007", + "\u033e\u0002\u0002\u244f\u2451\u0007\u021d\u0002\u0002\u2450\u244e\u0003", + "\u0002\u0002\u0002\u2450\u2451\u0003\u0002\u0002\u0002\u2451\u2454\u0003", + "\u0002\u0002\u0002\u2452\u2453\u0007\u033e\u0002\u0002\u2453\u2455\u0007", + "\u0312\u0002\u0002\u2454\u2452\u0003\u0002\u0002\u0002\u2454\u2455\u0003", + "\u0002\u0002\u0002\u2455\u2457\u0003\u0002\u0002\u0002\u2456\u23fe\u0003", + "\u0002\u0002\u0002\u2456\u2400\u0003\u0002\u0002\u0002\u2456\u2422\u0003", + "\u0002\u0002\u0002\u2456\u242f\u0003\u0002\u0002\u0002\u2456\u2442\u0003", + "\u0002\u0002\u0002\u2457\u0305\u0003\u0002\u0002\u0002\u2458\u2461\u0007", + "\u033e\u0002\u0002\u2459\u2462\u0007\u01a4\u0002\u0002\u245a\u2462\u0007", + "\u0301\u0002\u0002\u245b\u245f\u0007\u02b7\u0002\u0002\u245c\u245d\u0007", + "\u033c\u0002\u0002\u245d\u245e\u0007\u0326\u0002\u0002\u245e\u2460\u0007", + "\u033d\u0002\u0002\u245f\u245c\u0003\u0002\u0002\u0002\u245f\u2460\u0003", + "\u0002\u0002\u0002\u2460\u2462\u0003\u0002\u0002\u0002\u2461\u2459\u0003", + "\u0002\u0002\u0002\u2461\u245a\u0003\u0002\u0002\u0002\u2461\u245b\u0003", + "\u0002\u0002\u0002\u2462\u0307\u0003\u0002\u0002\u0002\u2463\u2465\u0005", + "\u02d8\u016d\u0002\u2464\u2466\tu\u0002\u0002\u2465\u2464\u0003\u0002", + "\u0002\u0002\u2465\u2466\u0003\u0002\u0002\u0002\u2466\u0309\u0003\u0002", + "\u0002\u0002\u2467\u2468\u0005\u02d8\u016d\u0002\u2468\u030b\u0003\u0002", + "\u0002\u0002\u2469\u246a\u0007\u00ec\u0002\u0002\u246a\u246b\u0007\u033c", + "\u0002\u0002\u246b\u2470\u0005\u030e\u0188\u0002\u246c\u246d\u0007\u033e", + "\u0002\u0002\u246d\u246f\u0005\u030e\u0188\u0002\u246e\u246c\u0003\u0002", + "\u0002\u0002\u246f\u2472\u0003\u0002\u0002\u0002\u2470\u246e\u0003\u0002", + "\u0002\u0002\u2470\u2471\u0003\u0002\u0002\u0002\u2471\u2473\u0003\u0002", + "\u0002\u0002\u2472\u2470\u0003\u0002\u0002\u0002\u2473\u2474\u0007\u033d", + "\u0002\u0002\u2474\u030d\u0003\u0002\u0002\u0002\u2475\u2476\u0007\u01f9", + "\u0002\u0002\u2476\u24a3\u0007\u0322\u0002\u0002\u2477\u2478\tv\u0002", + "\u0002\u2478\u24a3\u0007\u0092\u0002\u0002\u2479\u247a\tw\u0002\u0002", + "\u247a\u24a3\u0007\u0164\u0002\u0002\u247b\u247c\tx\u0002\u0002\u247c", + "\u24a3\u0007\u00aa\u0002\u0002\u247d\u247e\u0007\u01f2\u0002\u0002\u247e", + "\u24a3\u0007\u030f\u0002\u0002\u247f\u2480\u0007\u0203\u0002\u0002\u2480", + "\u24a3\u0007\u00ee\u0002\u0002\u2481\u24a3\u0007\u0219\u0002\u0002\u2482", + "\u2483\u0007\u0229\u0002\u0002\u2483\u24a3\u0007\u00fb\u0002\u0002\u2484", + "\u2485\u0007\u022a\u0002\u0002\u2485\u24a3\u0007\u00fb\u0002\u0002\u2486", + "\u2487\u0007\u024a\u0002\u0002\u2487\u24a3\u0007\u0322\u0002\u0002\u2488", + "\u2489\u0007\u024b\u0002\u0002\u2489\u24a3\u0007\u0322\u0002\u0002\u248a", + "\u248b\u0007\u0279\u0002\u0002\u248b\u248c\u0007\u0085\u0002\u0002\u248c", + "\u248d\u0007\u033c\u0002\u0002\u248d\u2492\u0005\u0310\u0189\u0002\u248e", + "\u248f\u0007\u033e\u0002\u0002\u248f\u2491\u0005\u0310\u0189\u0002\u2490", + "\u248e\u0003\u0002\u0002\u0002\u2491\u2494\u0003\u0002\u0002\u0002\u2492", + "\u2490\u0003\u0002\u0002\u0002\u2492\u2493\u0003\u0002\u0002\u0002\u2493", + "\u2495\u0003\u0002\u0002\u0002\u2494\u2492\u0003\u0002\u0002\u0002\u2495", + "\u2496\u0007\u033d\u0002\u0002\u2496\u24a3\u0003\u0002\u0002\u0002\u2497", + "\u2498\u0007\u0279\u0002\u0002\u2498\u2499\u0007\u0085\u0002\u0002\u2499", + "\u24a3\u0007\u0305\u0002\u0002\u249a\u249b\u0007\u027f\u0002\u0002\u249b", + "\u24a3\tM\u0002\u0002\u249c\u24a3\u0007\u02a3\u0002\u0002\u249d\u249e", + "\u0007\u02b6\u0002\u0002\u249e\u24a3\u0007\u00fb\u0002\u0002\u249f\u24a0", + "\u0007\u016c\u0002\u0002\u24a0\u24a1\u0007\u00fb\u0002\u0002\u24a1\u24a3", + "\u0007\u0326\u0002\u0002\u24a2\u2475\u0003\u0002\u0002\u0002\u24a2\u2477", + "\u0003\u0002\u0002\u0002\u24a2\u2479\u0003\u0002\u0002\u0002\u24a2\u247b", + "\u0003\u0002\u0002\u0002\u24a2\u247d\u0003\u0002\u0002\u0002\u24a2\u247f", + "\u0003\u0002\u0002\u0002\u24a2\u2481\u0003\u0002\u0002\u0002\u24a2\u2482", + "\u0003\u0002\u0002\u0002\u24a2\u2484\u0003\u0002\u0002\u0002\u24a2\u2486", + "\u0003\u0002\u0002\u0002\u24a2\u2488\u0003\u0002\u0002\u0002\u24a2\u248a", + "\u0003\u0002\u0002\u0002\u24a2\u2497\u0003\u0002\u0002\u0002\u24a2\u249a", + "\u0003\u0002\u0002\u0002\u24a2\u249c\u0003\u0002\u0002\u0002\u24a2\u249d", + "\u0003\u0002\u0002\u0002\u24a2\u249f\u0003\u0002\u0002\u0002\u24a3\u030f", + "\u0003\u0002\u0002\u0002\u24a4\u24ab\u0007\u0321\u0002\u0002\u24a5\u24ac", + "\u0007\u0305\u0002\u0002\u24a6\u24a9\u0007\u032a\u0002\u0002\u24a7\u24aa", + "\u0005\u03c2\u01e2\u0002\u24a8\u24aa\u0007\u00df\u0002\u0002\u24a9\u24a7", + "\u0003\u0002\u0002\u0002\u24a9\u24a8\u0003\u0002\u0002\u0002\u24aa\u24ac", + "\u0003\u0002\u0002\u0002\u24ab\u24a5\u0003\u0002\u0002\u0002\u24ab\u24a6", + "\u0003\u0002\u0002\u0002\u24ac\u0311\u0003\u0002\u0002\u0002\u24ad\u24b2", + "\u0005\u031e\u0190\u0002\u24ae\u24af\u0007\u033e\u0002\u0002\u24af\u24b1", + "\u0005\u031e\u0190\u0002\u24b0\u24ae\u0003\u0002\u0002\u0002\u24b1\u24b4", + "\u0003\u0002\u0002\u0002\u24b2\u24b0\u0003\u0002\u0002\u0002\u24b2\u24b3", + "\u0003\u0002\u0002\u0002\u24b3\u0313\u0003\u0002\u0002\u0002\u24b4\u24b2", + "\u0003\u0002\u0002\u0002\u24b5\u24b6\u0007\u033c\u0002\u0002\u24b6\u24bb", + "\u0005\u027e\u0140\u0002\u24b7\u24b8\u0007\u033e\u0002\u0002\u24b8\u24ba", + "\u0005\u027e\u0140\u0002\u24b9\u24b7\u0003\u0002\u0002\u0002\u24ba\u24bd", + "\u0003\u0002\u0002\u0002\u24bb\u24b9\u0003\u0002\u0002\u0002\u24bb\u24bc", + "\u0003\u0002\u0002\u0002\u24bc\u24be\u0003\u0002\u0002\u0002\u24bd\u24bb", + "\u0003\u0002\u0002\u0002\u24be\u24bf\u0007\u033d\u0002\u0002\u24bf\u0315", + "\u0003\u0002\u0002\u0002\u24c0\u24c1\u0005\u038e\u01c8\u0002\u24c1\u24c2", + "\u0007\u0337\u0002\u0002\u24c2\u24c4\u0003\u0002\u0002\u0002\u24c3\u24c0", + "\u0003\u0002\u0002\u0002\u24c3\u24c4\u0003\u0002\u0002\u0002\u24c4\u24c5", + "\u0003\u0002\u0002\u0002\u24c5\u24c6\u0007\u0341\u0002\u0002\u24c6\u0317", + "\u0003\u0002\u0002\u0002\u24c7\u24c8\u0005\u038e\u01c8\u0002\u24c8\u24c9", + "\u0007\u0337\u0002\u0002\u24c9\u24cb\u0003\u0002\u0002\u0002\u24ca\u24c7", + "\u0003\u0002\u0002\u0002\u24ca\u24cb\u0003\u0002\u0002\u0002\u24cb\u24d1", + "\u0003\u0002\u0002\u0002\u24cc\u24d2\u0005\u03c6\u01e4\u0002\u24cd\u24ce", + "\u0007\u033b\u0002\u0002\u24ce\u24d2\u0007\u0096\u0002\u0002\u24cf\u24d0", + "\u0007\u033b\u0002\u0002\u24d0\u24d2\u0007\u02bb\u0002\u0002\u24d1\u24cc", + "\u0003\u0002\u0002\u0002\u24d1\u24cd\u0003\u0002\u0002\u0002\u24d1\u24cf", + "\u0003\u0002\u0002\u0002\u24d2\u24d5\u0003\u0002\u0002\u0002\u24d3\u24d5", + "\u0007\u00df\u0002\u0002\u24d4\u24ca\u0003\u0002\u0002\u0002\u24d4\u24d3", + "\u0003\u0002\u0002\u0002\u24d5\u24d7\u0003\u0002\u0002\u0002\u24d6\u24d8", + "\u0005\u0352\u01aa\u0002\u24d7\u24d6\u0003\u0002\u0002\u0002\u24d7\u24d8", + "\u0003\u0002\u0002\u0002\u24d8\u0319\u0003\u0002\u0002\u0002\u24d9\u24da", + "\u0005\u03c6\u01e4\u0002\u24da\u24db\u0007\u0337\u0002\u0002\u24db\u24dc", + "\u0005\u03c6\u01e4\u0002\u24dc\u24de\u0005\u0314\u018b\u0002\u24dd\u24df", + "\u0005\u0352\u01aa\u0002\u24de\u24dd\u0003\u0002\u0002\u0002\u24de\u24df", + "\u0003\u0002\u0002\u0002\u24df\u24eb\u0003\u0002\u0002\u0002\u24e0\u24e1", + "\u0005\u03c6\u01e4\u0002\u24e1\u24e2\u0007\u0340\u0002\u0002\u24e2\u24e3", + "\u0007\u0340\u0002\u0002\u24e3\u24e5\u0005\u03c6\u01e4\u0002\u24e4\u24e6", + "\u0005\u0314\u018b\u0002\u24e5\u24e4\u0003\u0002\u0002\u0002\u24e5\u24e6", + "\u0003\u0002\u0002\u0002\u24e6\u24e8\u0003\u0002\u0002\u0002\u24e7\u24e9", + "\u0005\u0352\u01aa\u0002\u24e8\u24e7\u0003\u0002\u0002\u0002\u24e8\u24e9", + "\u0003\u0002\u0002\u0002\u24e9\u24eb\u0003\u0002\u0002\u0002\u24ea\u24d9", + "\u0003\u0002\u0002\u0002\u24ea\u24e0\u0003\u0002\u0002\u0002\u24eb\u031b", + "\u0003\u0002\u0002\u0002\u24ec\u24ed\u0005\u0362\u01b2\u0002\u24ed\u24ee", + "\u0007\u032a\u0002\u0002\u24ee\u24ef\u0005\u02d8\u016d\u0002\u24ef\u24f5", + "\u0003\u0002\u0002\u0002\u24f0\u24f2\u0005\u02d8\u016d\u0002\u24f1\u24f3", + "\u0005\u0352\u01aa\u0002\u24f2\u24f1\u0003\u0002\u0002\u0002\u24f2\u24f3", + "\u0003\u0002\u0002\u0002\u24f3\u24f5\u0003\u0002\u0002\u0002\u24f4\u24ec", + "\u0003\u0002\u0002\u0002\u24f4\u24f0\u0003\u0002\u0002\u0002\u24f5\u031d", + "\u0003\u0002\u0002\u0002\u24f6\u24fb\u0005\u0316\u018c\u0002\u24f7\u24fb", + "\u0005\u0318\u018d\u0002\u24f8\u24fb\u0005\u031a\u018e\u0002\u24f9\u24fb", + "\u0005\u031c\u018f\u0002\u24fa\u24f6\u0003\u0002\u0002\u0002\u24fa\u24f7", + "\u0003\u0002\u0002\u0002\u24fa\u24f8\u0003\u0002\u0002\u0002\u24fa\u24f9", + "\u0003\u0002\u0002\u0002\u24fb\u031f\u0003\u0002\u0002\u0002\u24fc\u2501", + "\u0005\u0322\u0192\u0002\u24fd\u24fe\u0007\u033e\u0002\u0002\u24fe\u2500", + "\u0005\u0322\u0192\u0002\u24ff\u24fd\u0003\u0002\u0002\u0002\u2500\u2503", + "\u0003\u0002\u0002\u0002\u2501\u24ff\u0003\u0002\u0002\u0002\u2501\u2502", + "\u0003\u0002\u0002\u0002\u2502\u0321\u0003\u0002\u0002\u0002\u2503\u2501", + "\u0003\u0002\u0002\u0002\u2504\u250a\u0005\u0324\u0193\u0002\u2505\u2506", + "\u0007\u033c\u0002\u0002\u2506\u2507\u0005\u0324\u0193\u0002\u2507\u2508", + "\u0007\u033d\u0002\u0002\u2508\u250a\u0003\u0002\u0002\u0002\u2509\u2504", + "\u0003\u0002\u0002\u0002\u2509\u2505\u0003\u0002\u0002\u0002\u250a\u0323", + "\u0003\u0002\u0002\u0002\u250b\u250f\u0005\u0326\u0194\u0002\u250c\u250e", + "\u0005\u0330\u0199\u0002\u250d\u250c\u0003\u0002\u0002\u0002\u250e\u2511", + "\u0003\u0002\u0002\u0002\u250f\u250d\u0003\u0002\u0002\u0002\u250f\u2510", + "\u0003\u0002\u0002\u0002\u2510\u0325\u0003\u0002\u0002\u0002\u2511\u250f", + "\u0003\u0002\u0002\u0002\u2512\u2514\u0005\u0338\u019d\u0002\u2513\u2515", + "\u0005\u0354\u01ab\u0002\u2514\u2513\u0003\u0002\u0002\u0002\u2514\u2515", + "\u0003\u0002\u0002\u0002\u2515\u2544\u0003\u0002\u0002\u0002\u2516\u2518", + "\u0005\u038c\u01c7\u0002\u2517\u2519\u0005\u0354\u01ab\u0002\u2518\u2517", + "\u0003\u0002\u0002\u0002\u2518\u2519\u0003\u0002\u0002\u0002\u2519\u2544", + "\u0003\u0002\u0002\u0002\u251a\u251c\u0005\u033a\u019e\u0002\u251b\u251d", + "\u0005\u0354\u01ab\u0002\u251c\u251b\u0003\u0002\u0002\u0002\u251c\u251d", + "\u0003\u0002\u0002\u0002\u251d\u2544\u0003\u0002\u0002\u0002\u251e\u2523", + "\u0005\u033e\u01a0\u0002\u251f\u2521\u0005\u0354\u01ab\u0002\u2520\u2522", + "\u0005\u0360\u01b1\u0002\u2521\u2520\u0003\u0002\u0002\u0002\u2521\u2522", + "\u0003\u0002\u0002\u0002\u2522\u2524\u0003\u0002\u0002\u0002\u2523\u251f", + "\u0003\u0002\u0002\u0002\u2523\u2524\u0003\u0002\u0002\u0002\u2524\u2544", + "\u0003\u0002\u0002\u0002\u2525\u2526\u0005\u032e\u0198\u0002\u2526\u2527", + "\u0005\u0354\u01ab\u0002\u2527\u2544\u0003\u0002\u0002\u0002\u2528\u252d", + "\u0005\u0340\u01a1\u0002\u2529\u252b\u0005\u0354\u01ab\u0002\u252a\u252c", + "\u0005\u0360\u01b1\u0002\u252b\u252a\u0003\u0002\u0002\u0002\u252b\u252c", + "\u0003\u0002\u0002\u0002\u252c\u252e\u0003\u0002\u0002\u0002\u252d\u2529", + "\u0003\u0002\u0002\u0002\u252d\u252e\u0003\u0002\u0002\u0002\u252e\u2544", + "\u0003\u0002\u0002\u0002\u252f\u2531\u0007\u0321\u0002\u0002\u2530\u2532", + "\u0005\u0354\u01ab\u0002\u2531\u2530\u0003\u0002\u0002\u0002\u2531\u2532", + "\u0003\u0002\u0002\u0002\u2532\u2544\u0003\u0002\u0002\u0002\u2533\u2534", + "\u0007\u0321\u0002\u0002\u2534\u2535\u0007\u0337\u0002\u0002\u2535\u253a", + "\u0005\u0340\u01a1\u0002\u2536\u2538\u0005\u0354\u01ab\u0002\u2537\u2539", + "\u0005\u0360\u01b1\u0002\u2538\u2537\u0003\u0002\u0002\u0002\u2538\u2539", + "\u0003\u0002\u0002\u0002\u2539\u253b\u0003\u0002\u0002\u0002\u253a\u2536", + "\u0003\u0002\u0002\u0002\u253a\u253b\u0003\u0002\u0002\u0002\u253b\u2544", + "\u0003\u0002\u0002\u0002\u253c\u2544\u0005\u0328\u0195\u0002\u253d\u253e", + "\u0007\u0340\u0002\u0002\u253e\u253f\u0007\u0340\u0002\u0002\u253f\u2541", + "\u0005\u0340\u01a1\u0002\u2540\u2542\u0005\u0354\u01ab\u0002\u2541\u2540", + "\u0003\u0002\u0002\u0002\u2541\u2542\u0003\u0002\u0002\u0002\u2542\u2544", + "\u0003\u0002\u0002\u0002\u2543\u2512\u0003\u0002\u0002\u0002\u2543\u2516", + "\u0003\u0002\u0002\u0002\u2543\u251a\u0003\u0002\u0002\u0002\u2543\u251e", + "\u0003\u0002\u0002\u0002\u2543\u2525\u0003\u0002\u0002\u0002\u2543\u2528", + "\u0003\u0002\u0002\u0002\u2543\u252f\u0003\u0002\u0002\u0002\u2543\u2533", + "\u0003\u0002\u0002\u0002\u2543\u253c\u0003\u0002\u0002\u0002\u2543\u253d", + "\u0003\u0002\u0002\u0002\u2544\u0327\u0003\u0002\u0002\u0002\u2545\u2546", + "\u0007\u00eb\u0002\u0002\u2546\u2547\u0007\u033c\u0002\u0002\u2547\u2548", + "\u0005\u02d8\u016d\u0002\u2548\u2549\u0007\u033e\u0002\u0002\u2549\u254c", + "\u0005\u02d8\u016d\u0002\u254a\u254b\u0007\u033e\u0002\u0002\u254b\u254d", + "\u0005\u02d8\u016d\u0002\u254c\u254a\u0003\u0002\u0002\u0002\u254c\u254d", + "\u0003\u0002\u0002\u0002\u254d\u254e\u0003\u0002\u0002\u0002\u254e\u2554", + "\u0007\u033d\u0002\u0002\u254f\u2550\u0007\u0179\u0002\u0002\u2550\u2551", + "\u0007\u033c\u0002\u0002\u2551\u2552\u0005\u032a\u0196\u0002\u2552\u2553", + "\u0007\u033d\u0002\u0002\u2553\u2555\u0003\u0002\u0002\u0002\u2554\u254f", + "\u0003\u0002\u0002\u0002\u2554\u2555\u0003\u0002\u0002\u0002\u2555\u0329", + "\u0003\u0002\u0002\u0002\u2556\u255b\u0005\u032c\u0197\u0002\u2557\u2558", + "\u0007\u033e\u0002\u0002\u2558\u255a\u0005\u032c\u0197\u0002\u2559\u2557", + "\u0003\u0002\u0002\u0002\u255a\u255d\u0003\u0002\u0002\u0002\u255b\u2559", + "\u0003\u0002\u0002\u0002\u255b\u255c\u0003\u0002\u0002\u0002\u255c\u032b", + "\u0003\u0002\u0002\u0002\u255d\u255b\u0003\u0002\u0002\u0002\u255e\u255f", + "\u0007\u0323\u0002\u0002\u255f\u2561\u0005\u03be\u01e0\u0002\u2560\u2562", + "\u0007\u0326\u0002\u0002\u2561\u2560\u0003\u0002\u0002\u0002\u2561\u2562", + "\u0003\u0002\u0002\u0002\u2562\u032d\u0003\u0002\u0002\u0002\u2563\u2564", + "\u0007,\u0002\u0002\u2564\u2565\u0007\u033c\u0002\u0002\u2565\u2566", + "\u0007-\u0002\u0002\u2566\u2567\u0005\u038e\u01c8\u0002\u2567\u2568", + "\u0007\u033e\u0002\u0002\u2568\u2569\ty\u0002\u0002\u2569\u256a\u0007", + "\u033d\u0002\u0002\u256a\u032f\u0003\u0002\u0002\u0002\u256b\u256d\u0007", + "\u00a1\u0002\u0002\u256c\u256b\u0003\u0002\u0002\u0002\u256c\u256d\u0003", + "\u0002\u0002\u0002\u256d\u2573\u0003\u0002\u0002\u0002\u256e\u2570\t", + "z\u0002\u0002\u256f\u2571\u0007\u00ef\u0002\u0002\u2570\u256f\u0003", + "\u0002\u0002\u0002\u2570\u2571\u0003\u0002\u0002\u0002\u2571\u2573\u0003", + "\u0002\u0002\u0002\u2572\u256c\u0003\u0002\u0002\u0002\u2572\u256e\u0003", + "\u0002\u0002\u0002\u2573\u2575\u0003\u0002\u0002\u0002\u2574\u2576\t", + "{\u0002\u0002\u2575\u2574\u0003\u0002\u0002\u0002\u2575\u2576\u0003", + "\u0002\u0002\u0002\u2576\u2577\u0003\u0002\u0002\u0002\u2577\u2578\u0007", + "\u00aa\u0002\u0002\u2578\u2579\u0005\u0322\u0192\u0002\u2579\u257a\u0007", + "\u00e5\u0002\u0002\u257a\u257b\u0005\u02ee\u0178\u0002\u257b\u258e\u0003", + "\u0002\u0002\u0002\u257c\u257d\u0007J\u0002\u0002\u257d\u257e\u0007", + "\u00aa\u0002\u0002\u257e\u258e\u0005\u0322\u0192\u0002\u257f\u2580\u0007", + "J\u0002\u0002\u2580\u2581\u0007\u0193\u0002\u0002\u2581\u258e\u0005", + "\u0322\u0192\u0002\u2582\u2583\u0007\u00ef\u0002\u0002\u2583\u2584\u0007", + "\u0193\u0002\u0002\u2584\u258e\u0005\u0322\u0192\u0002\u2585\u2586\u0007", + "\u00fa\u0002\u0002\u2586\u2587\u0005\u0332\u019a\u0002\u2587\u2588\u0005", + "\u0354\u01ab\u0002\u2588\u258e\u0003\u0002\u0002\u0002\u2589\u258a\u0007", + "\u0167\u0002\u0002\u258a\u258b\u0005\u0334\u019b\u0002\u258b\u258c\u0005", + "\u0354\u01ab\u0002\u258c\u258e\u0003\u0002\u0002\u0002\u258d\u2572\u0003", + "\u0002\u0002\u0002\u258d\u257c\u0003\u0002\u0002\u0002\u258d\u257f\u0003", + "\u0002\u0002\u0002\u258d\u2582\u0003\u0002\u0002\u0002\u258d\u2585\u0003", + "\u0002\u0002\u0002\u258d\u2589\u0003\u0002\u0002\u0002\u258e\u0331\u0003", + "\u0002\u0002\u0002\u258f\u2590\u0007\u033c\u0002\u0002\u2590\u2591\u0005", + "\u036a\u01b6\u0002\u2591\u2592\u0007\u0085\u0002\u0002\u2592\u2593\u0005", + "\u039a\u01ce\u0002\u2593\u2594\u0007\u009b\u0002\u0002\u2594\u2595\u0005", + "\u0360\u01b1\u0002\u2595\u2596\u0007\u033d\u0002\u0002\u2596\u0333\u0003", + "\u0002\u0002\u0002\u2597\u2598\u0007\u033c\u0002\u0002\u2598\u2599\u0005", + "\u02d8\u016d\u0002\u2599\u259a\u0007\u0085\u0002\u0002\u259a\u259b\u0005", + "\u039a\u01ce\u0002\u259b\u259c\u0007\u009b\u0002\u0002\u259c\u259d\u0007", + "\u033c\u0002\u0002\u259d\u259e\u0005\u0336\u019c\u0002\u259e\u259f\u0007", + "\u033d\u0002\u0002\u259f\u25a0\u0007\u033d\u0002\u0002\u25a0\u0335\u0003", + "\u0002\u0002\u0002\u25a1\u25a6\u0005\u039a\u01ce\u0002\u25a2\u25a3\u0007", + "\u033e\u0002\u0002\u25a3\u25a5\u0005\u039a\u01ce\u0002\u25a4\u25a2\u0003", + "\u0002\u0002\u0002\u25a5\u25a8\u0003\u0002\u0002\u0002\u25a6\u25a4\u0003", + "\u0002\u0002\u0002\u25a6\u25a7\u0003\u0002\u0002\u0002\u25a7\u0337\u0003", + "\u0002\u0002\u0002\u25a8\u25a6\u0003\u0002\u0002\u0002\u25a9\u25ab\u0005", + "\u038e\u01c8\u0002\u25aa\u25ac\u0005\u0358\u01ad\u0002\u25ab\u25aa\u0003", + "\u0002\u0002\u0002\u25ab\u25ac\u0003\u0002\u0002\u0002\u25ac\u0339\u0003", + "\u0002\u0002\u0002\u25ad\u25ae\u0007\u00ea\u0002\u0002\u25ae\u25af\u0007", + "\u033c\u0002\u0002\u25af\u25b0\u0007\u0326\u0002\u0002\u25b0\u25b1\u0007", + "\u033e\u0002\u0002\u25b1\u25b2\u0007\u0326\u0002\u0002\u25b2\u25b3\u0007", + "\u033e\u0002\u0002\u25b3\u25b4\u0007\u0326\u0002\u0002\u25b4\u25c8\u0007", + "\u033d\u0002\u0002\u25b5\u25b6\u0007\u00ea\u0002\u0002\u25b6\u25b7\u0007", + "\u033c\u0002\u0002\u25b7\u25b8\u0007%\u0002\u0002\u25b8\u25b9\u0007", + "\u0326\u0002\u0002\u25b9\u25c3\u0007\u033e\u0002\u0002\u25ba\u25bf\u0005", + "\u033c\u019f\u0002\u25bb\u25bc\u0007\u033e\u0002\u0002\u25bc\u25be\u0005", + "\u033c\u019f\u0002\u25bd\u25bb\u0003\u0002\u0002\u0002\u25be\u25c1\u0003", + "\u0002\u0002\u0002\u25bf\u25bd\u0003\u0002\u0002\u0002\u25bf\u25c0\u0003", + "\u0002\u0002\u0002\u25c0\u25c4\u0003\u0002\u0002\u0002\u25c1\u25bf\u0003", + "\u0002\u0002\u0002\u25c2\u25c4\u0005\u03c6\u01e4\u0002\u25c3\u25ba\u0003", + "\u0002\u0002\u0002\u25c3\u25c2\u0003\u0002\u0002\u0002\u25c4\u25c5\u0003", + "\u0002\u0002\u0002\u25c5\u25c6\u0007\u033d\u0002\u0002\u25c6\u25c8\u0003", + "\u0002\u0002\u0002\u25c7\u25ad\u0003\u0002\u0002\u0002\u25c7\u25b5\u0003", + "\u0002\u0002\u0002\u25c8\u033b\u0003\u0002\u0002\u0002\u25c9\u25ca\u0005", + "\u03c6\u01e4\u0002\u25ca\u25cb\u0007\u032a\u0002\u0002\u25cb\u25cc\t", + "\u0018\u0002\u0002\u25cc\u033d\u0003\u0002\u0002\u0002\u25cd\u25d8\u0005", + "\u02e4\u0173\u0002\u25ce\u25cf\u0007\u033c\u0002\u0002\u25cf\u25d0\u0005", + "\u02e4\u0173\u0002\u25d0\u25d1\u0007\u033d\u0002\u0002\u25d1\u25d8\u0003", + "\u0002\u0002\u0002\u25d2\u25d8\u0005\u0364\u01b3\u0002\u25d3\u25d4\u0007", + "\u033c\u0002\u0002\u25d4\u25d5\u0005\u0364\u01b3\u0002\u25d5\u25d6\u0007", + "\u033d\u0002\u0002\u25d6\u25d8\u0003\u0002\u0002\u0002\u25d7\u25cd\u0003", + "\u0002\u0002\u0002\u25d7\u25ce\u0003\u0002\u0002\u0002\u25d7\u25d2\u0003", + "\u0002\u0002\u0002\u25d7\u25d3\u0003\u0002\u0002\u0002\u25d8\u033f\u0003", + "\u0002\u0002\u0002\u25d9\u25da\u0007\u01a5\u0002\u0002\u25da\u25db\u0007", + "\u033c\u0002\u0002\u25db\u25dc\u0007\u0341\u0002\u0002\u25dc\u266c\u0007", + "\u033d\u0002\u0002\u25dd\u25de\u0007\u01ad\u0002\u0002\u25de\u25df\u0007", + "\u033c\u0002\u0002\u25df\u25e0\u0005\u02d8\u016d\u0002\u25e0\u25e1\u0007", + "\u0010\u0002\u0002\u25e1\u25e2\u0005\u03be\u01e0\u0002\u25e2\u25e3\u0007", + "\u033d\u0002\u0002\u25e3\u266c\u0003\u0002\u0002\u0002\u25e4\u25e5\u0007", + "G\u0002\u0002\u25e5\u25e6\u0007\u033c\u0002\u0002\u25e6\u25e7\u0005", + "\u03be\u01e0\u0002\u25e7\u25e8\u0007\u033e\u0002\u0002\u25e8\u25eb\u0005", + "\u02d8\u016d\u0002\u25e9\u25ea\u0007\u033e\u0002\u0002\u25ea\u25ec\u0005", + "\u02d8\u016d\u0002\u25eb\u25e9\u0003\u0002\u0002\u0002\u25eb\u25ec\u0003", + "\u0002\u0002\u0002\u25ec\u25ed\u0003\u0002\u0002\u0002\u25ed\u25ee\u0007", + "\u033d\u0002\u0002\u25ee\u266c\u0003\u0002\u0002\u0002\u25ef\u25f0\u0007", + "\u01b2\u0002\u0002\u25f0\u25f1\u0007\u033c\u0002\u0002\u25f1\u25f2\u0007", + "\u0341\u0002\u0002\u25f2\u266c\u0007\u033d\u0002\u0002\u25f3\u25f4\u0007", + "6\u0002\u0002\u25f4\u25f5\u0007\u033c\u0002\u0002\u25f5\u25f6\u0005", + "\u0366\u01b4\u0002\u25f6\u25f7\u0007\u033d\u0002\u0002\u25f7\u266c\u0003", + "\u0002\u0002\u0002\u25f8\u266c\u0007N\u0002\u0002\u25f9\u266c\u0007", + "O\u0002\u0002\u25fa\u25fb\u0007\u01ca\u0002\u0002\u25fb\u25fc\u0007", + "\u033c\u0002\u0002\u25fc\u25fd\u0007\u0323\u0002\u0002\u25fd\u25fe\u0007", + "\u033e\u0002\u0002\u25fe\u25ff\u0005\u02d8\u016d\u0002\u25ff\u2600\u0007", + "\u033e\u0002\u0002\u2600\u2601\u0005\u02d8\u016d\u0002\u2601\u2602\u0007", + "\u033d\u0002\u0002\u2602\u266c\u0003\u0002\u0002\u0002\u2603\u2604\u0007", + "\u01cb\u0002\u0002\u2604\u2605\u0007\u033c\u0002\u0002\u2605\u2606\u0007", + "\u0323\u0002\u0002\u2606\u2607\u0007\u033e\u0002\u0002\u2607\u2608\u0005", + "\u02d8\u016d\u0002\u2608\u2609\u0007\u033e\u0002\u0002\u2609\u260a\u0005", + "\u02d8\u016d\u0002\u260a\u260b\u0007\u033d\u0002\u0002\u260b\u266c\u0003", + "\u0002\u0002\u0002\u260c\u260d\u0007\u01cc\u0002\u0002\u260d\u260e\u0007", + "\u033c\u0002\u0002\u260e\u260f\u0007\u0323\u0002\u0002\u260f\u2610\u0007", + "\u033e\u0002\u0002\u2610\u2611\u0005\u02d8\u016d\u0002\u2611\u2612\u0007", + "\u033d\u0002\u0002\u2612\u266c\u0003\u0002\u0002\u0002\u2613\u2614\u0007", + "\u01cd\u0002\u0002\u2614\u2615\u0007\u033c\u0002\u0002\u2615\u2616\u0007", + "\u0323\u0002\u0002\u2616\u2617\u0007\u033e\u0002\u0002\u2617\u2618\u0005", + "\u02d8\u016d\u0002\u2618\u2619\u0007\u033d\u0002\u0002\u2619\u266c\u0003", + "\u0002\u0002\u0002\u261a\u261b\u0007\u020b\u0002\u0002\u261b\u261c\u0007", + "\u033c\u0002\u0002\u261c\u266c\u0007\u033d\u0002\u0002\u261d\u261e\u0007", + "\u020c\u0002\u0002\u261e\u261f\u0007\u033c\u0002\u0002\u261f\u266c\u0007", + "\u033d\u0002\u0002\u2620\u2621\u0007\u0096\u0002\u0002\u2621\u2622\u0007", + "\u033c\u0002\u0002\u2622\u2625\u0005\u03be\u01e0\u0002\u2623\u2624\u0007", + "\u033e\u0002\u0002\u2624\u2626\u0007\u0322\u0002\u0002\u2625\u2623\u0003", + "\u0002\u0002\u0002\u2625\u2626\u0003\u0002\u0002\u0002\u2626\u2629\u0003", + "\u0002\u0002\u0002\u2627\u2628\u0007\u033e\u0002\u0002\u2628\u262a\u0007", + "\u0322\u0002\u0002\u2629\u2627\u0003\u0002\u0002\u0002\u2629\u262a\u0003", + "\u0002\u0002\u0002\u262a\u262b\u0003\u0002\u0002\u0002\u262b\u262c\u0007", + "\u033d\u0002\u0002\u262c\u266c\u0003\u0002\u0002\u0002\u262d\u266c\u0007", + "\u0252\u0002\u0002\u262e\u262f\u0007\u00e0\u0002\u0002\u262f\u2630\u0007", + "\u033c\u0002\u0002\u2630\u2631\u0005\u02d8\u016d\u0002\u2631\u2632\u0007", + "\u033e\u0002\u0002\u2632\u2633\u0005\u02d8\u016d\u0002\u2633\u2634\u0007", + "\u033d\u0002\u0002\u2634\u266c\u0003\u0002\u0002\u0002\u2635\u2636\u0007", + "\u02e6\u0002\u0002\u2636\u2637\u0007\u033c\u0002\u0002\u2637\u2638\u0005", + "\u02d8\u016d\u0002\u2638\u2639\u0007\u033e\u0002\u0002\u2639\u263a\u0007", + "\u0322\u0002\u0002\u263a\u263b\u0007\u033e\u0002\u0002\u263b\u263c\u0007", + "\u0322\u0002\u0002\u263c\u263d\u0007\u033e\u0002\u0002\u263d\u263e\u0005", + "\u02d8\u016d\u0002\u263e\u263f\u0007\u033d\u0002\u0002\u263f\u266c\u0003", + "\u0002\u0002\u0002\u2640\u266c\u0007\u013a\u0002\u0002\u2641\u266c\u0007", + "\u0152\u0002\u0002\u2642\u2643\u0007\u00a9\u0002\u0002\u2643\u2644\u0007", + "\u033c\u0002\u0002\u2644\u2645\u0005\u02d8\u016d\u0002\u2645\u2646\u0007", + "\u033e\u0002\u0002\u2646\u2647\u0005\u02d8\u016d\u0002\u2647\u2648\u0007", + "\u033d\u0002\u0002\u2648\u266c\u0003\u0002\u0002\u0002\u2649\u266c\u0005", + "\u0342\u01a2\u0002\u264a\u264b\u0007\u009a\u0002\u0002\u264b\u264c\u0007", + "\u033c\u0002\u0002\u264c\u264d\u0005\u02ee\u0178\u0002\u264d\u264e\u0007", + "\u033e\u0002\u0002\u264e\u264f\u0005\u02d8\u016d\u0002\u264f\u2650\u0007", + "\u033e\u0002\u0002\u2650\u2651\u0005\u02d8\u016d\u0002\u2651\u2652\u0007", + "\u033d\u0002\u0002\u2652\u266c\u0003\u0002\u0002\u0002\u2653\u266c\u0005", + "\u0368\u01b5\u0002\u2654\u266c\u0005\u036a\u01b6\u0002\u2655\u266c\u0005", + "\u036c\u01b7\u0002\u2656\u2657\u0005\u03aa\u01d6\u0002\u2657\u2659\u0007", + "\u033c\u0002\u0002\u2658\u265a\u0005\u0366\u01b4\u0002\u2659\u2658\u0003", + "\u0002\u0002\u0002\u2659\u265a\u0003\u0002\u0002\u0002\u265a\u265b\u0003", + "\u0002\u0002\u0002\u265b\u265c\u0007\u033d\u0002\u0002\u265c\u266c\u0003", + "\u0002\u0002\u0002\u265d\u265e\u0007\u02e5\u0002\u0002\u265e\u265f\u0007", + "\u033c\u0002\u0002\u265f\u2660\u0005\u02d8\u016d\u0002\u2660\u2661\u0007", + "\u033e\u0002\u0002\u2661\u2662\u0005\u02d8\u016d\u0002\u2662\u2669\u0007", + "\u033d\u0002\u0002\u2663\u2664\u0007\u017a\u0002\u0002\u2664\u2665\u0007", + "\u0092\u0002\u0002\u2665\u2666\u0007\u033c\u0002\u0002\u2666\u2667\u0005", + "\u0302\u0182\u0002\u2667\u2668\u0007\u033d\u0002\u0002\u2668\u266a\u0003", + "\u0002\u0002\u0002\u2669\u2663\u0003\u0002\u0002\u0002\u2669\u266a\u0003", + "\u0002\u0002\u0002\u266a\u266c\u0003\u0002\u0002\u0002\u266b\u25d9\u0003", + "\u0002\u0002\u0002\u266b\u25dd\u0003\u0002\u0002\u0002\u266b\u25e4\u0003", + "\u0002\u0002\u0002\u266b\u25ef\u0003\u0002\u0002\u0002\u266b\u25f3\u0003", + "\u0002\u0002\u0002\u266b\u25f8\u0003\u0002\u0002\u0002\u266b\u25f9\u0003", + "\u0002\u0002\u0002\u266b\u25fa\u0003\u0002\u0002\u0002\u266b\u2603\u0003", + "\u0002\u0002\u0002\u266b\u260c\u0003\u0002\u0002\u0002\u266b\u2613\u0003", + "\u0002\u0002\u0002\u266b\u261a\u0003\u0002\u0002\u0002\u266b\u261d\u0003", + "\u0002\u0002\u0002\u266b\u2620\u0003\u0002\u0002\u0002\u266b\u262d\u0003", + "\u0002\u0002\u0002\u266b\u262e\u0003\u0002\u0002\u0002\u266b\u2635\u0003", + "\u0002\u0002\u0002\u266b\u2640\u0003\u0002\u0002\u0002\u266b\u2641\u0003", + "\u0002\u0002\u0002\u266b\u2642\u0003\u0002\u0002\u0002\u266b\u2649\u0003", + "\u0002\u0002\u0002\u266b\u264a\u0003\u0002\u0002\u0002\u266b\u2653\u0003", + "\u0002\u0002\u0002\u266b\u2654\u0003\u0002\u0002\u0002\u266b\u2655\u0003", + "\u0002\u0002\u0002\u266b\u2656\u0003\u0002\u0002\u0002\u266b\u265d\u0003", + "\u0002\u0002\u0002\u266c\u0341\u0003\u0002\u0002\u0002\u266d\u2673\u0005", + "\u0344\u01a3\u0002\u266e\u2673\u0005\u0346\u01a4\u0002\u266f\u2673\u0005", + "\u0348\u01a5\u0002\u2670\u2673\u0005\u034a\u01a6\u0002\u2671\u2673\u0005", + "\u034c\u01a7\u0002\u2672\u266d\u0003\u0002\u0002\u0002\u2672\u266e\u0003", + "\u0002\u0002\u0002\u2672\u266f\u0003\u0002\u0002\u0002\u2672\u2670\u0003", + "\u0002\u0002\u0002\u2672\u2671\u0003\u0002\u0002\u0002\u2673\u0343\u0003", + "\u0002\u0002\u0002\u2674\u2679\u0007\u0321\u0002\u0002\u2675\u2679\u0007", + "\u0323\u0002\u0002\u2676\u2679\u0007r\u0002\u0002\u2677\u2679\u0005", + "\u0346\u01a4\u0002\u2678\u2674\u0003\u0002\u0002\u0002\u2678\u2675\u0003", + "\u0002\u0002\u0002\u2678\u2676\u0003\u0002\u0002\u0002\u2678\u2677\u0003", + "\u0002\u0002\u0002\u2679\u267a\u0003\u0002\u0002\u0002\u267a\u267b\u0007", + "\u0337\u0002\u0002\u267b\u267c\u0007\u030b\u0002\u0002\u267c\u267d\u0007", + "\u033c\u0002\u0002\u267d\u267e\u0007\u0326\u0002\u0002\u267e\u267f\u0007", + "\u033e\u0002\u0002\u267f\u2680\u0007\u0326\u0002\u0002\u2680\u26a0\u0007", + "\u033d\u0002\u0002\u2681\u2686\u0007\u0321\u0002\u0002\u2682\u2686\u0007", + "\u0323\u0002\u0002\u2683\u2686\u0007r\u0002\u0002\u2684\u2686\u0005", + "\u0346\u01a4\u0002\u2685\u2681\u0003\u0002\u0002\u0002\u2685\u2682\u0003", + "\u0002\u0002\u0002\u2685\u2683\u0003\u0002\u0002\u0002\u2685\u2684\u0003", + "\u0002\u0002\u0002\u2686\u2687\u0003\u0002\u0002\u0002\u2687\u2688\u0007", + "\u0337\u0002\u0002\u2688\u2689\u0007\u02b9\u0002\u0002\u2689\u268a\u0007", + "\u0337\u0002\u0002\u268a\u268b\u0007\u030b\u0002\u0002\u268b\u268c\u0007", + "\u033c\u0002\u0002\u268c\u268d\u0007\u0326\u0002\u0002\u268d\u268e\u0007", + "\u033e\u0002\u0002\u268e\u268f\u0007\u0326\u0002\u0002\u268f\u26a0\u0007", + "\u033d\u0002\u0002\u2690\u2695\u0007\u0321\u0002\u0002\u2691\u2695\u0007", + "\u0323\u0002\u0002\u2692\u2695\u0007r\u0002\u0002\u2693\u2695\u0005", + "\u0346\u01a4\u0002\u2694\u2690\u0003\u0002\u0002\u0002\u2694\u2691\u0003", + "\u0002\u0002\u0002\u2694\u2692\u0003\u0002\u0002\u0002\u2694\u2693\u0003", + "\u0002\u0002\u0002\u2695\u2696\u0003\u0002\u0002\u0002\u2696\u2697\u0007", + "\u0337\u0002\u0002\u2697\u2698\u0007\u00f2\u0002\u0002\u2698\u2699\u0007", + "\u0337\u0002\u0002\u2699\u269a\u0007\u030b\u0002\u0002\u269a\u269b\u0007", + "\u033c\u0002\u0002\u269b\u269c\u0007\u0326\u0002\u0002\u269c\u269d\u0007", + "\u033e\u0002\u0002\u269d\u269e\u0007\u0326\u0002\u0002\u269e\u26a0\u0007", + "\u033d\u0002\u0002\u269f\u2678\u0003\u0002\u0002\u0002\u269f\u2685\u0003", + "\u0002\u0002\u0002\u269f\u2694\u0003\u0002\u0002\u0002\u26a0\u0345\u0003", + "\u0002\u0002\u0002\u26a1\u26a5\u0007\u0321\u0002\u0002\u26a2\u26a5\u0007", + "\u0323\u0002\u0002\u26a3\u26a5\u0005\u038c\u01c7\u0002\u26a4\u26a1\u0003", + "\u0002\u0002\u0002\u26a4\u26a2\u0003\u0002\u0002\u0002\u26a4\u26a3\u0003", + "\u0002\u0002\u0002\u26a5\u26a6\u0003\u0002\u0002\u0002\u26a6\u26a7\u0007", + "\u0337\u0002\u0002\u26a7\u26a8\u0007\u0293\u0002\u0002\u26a8\u26a9\u0007", + "\u033c\u0002\u0002\u26a9\u26aa\u0007\u0326\u0002\u0002\u26aa\u26b8\u0007", + "\u033d\u0002\u0002\u26ab\u26af\u0007\u0321\u0002\u0002\u26ac\u26af\u0007", + "\u0323\u0002\u0002\u26ad\u26af\u0005\u038c\u01c7\u0002\u26ae\u26ab\u0003", + "\u0002\u0002\u0002\u26ae\u26ac\u0003\u0002\u0002\u0002\u26ae\u26ad\u0003", + "\u0002\u0002\u0002\u26af\u26b0\u0003\u0002\u0002\u0002\u26b0\u26b1\u0007", + "\u0337\u0002\u0002\u26b1\u26b2\u0007\u02b9\u0002\u0002\u26b2\u26b3\u0007", + "\u0337\u0002\u0002\u26b3\u26b4\u0007\u0293\u0002\u0002\u26b4\u26b5\u0007", + "\u033c\u0002\u0002\u26b5\u26b6\u0007\u0326\u0002\u0002\u26b6\u26b8\u0007", + "\u033d\u0002\u0002\u26b7\u26a4\u0003\u0002\u0002\u0002\u26b7\u26ae\u0003", + "\u0002\u0002\u0002\u26b8\u0347\u0003\u0002\u0002\u0002\u26b9\u26ba\t", + "|\u0002\u0002\u26ba\u26bb\u0007\u0337\u0002\u0002\u26bb\u26bc\u0007", + "\u01f1\u0002\u0002\u26bc\u26bd\u0007\u033c\u0002\u0002\u26bd\u26be\u0007", + "\u0326\u0002\u0002\u26be\u26bf\u0007\u033d\u0002\u0002\u26bf\u0349\u0003", + "\u0002\u0002\u0002\u26c0\u26c1\t|\u0002\u0002\u26c1\u26c2\u0007\u0337", + "\u0002\u0002\u26c2\u26c3\u0007\u025a\u0002\u0002\u26c3\u26c4\u0007\u033c", + "\u0002\u0002\u26c4\u26c5\u0007\u0326\u0002\u0002\u26c5\u26c6\u0007\u033d", + "\u0002\u0002\u26c6\u034b\u0003\u0002\u0002\u0002\u26c7\u26c8\t|\u0002", + "\u0002\u26c8\u26c9\u0007\u0337\u0002\u0002\u26c9\u26ca\u0007\u0267\u0002", + "\u0002\u26ca\u26cb\u0007\u033c\u0002\u0002\u26cb\u26cc\u0007\u0326\u0002", + "\u0002\u26cc\u26cd\u0007\u033d\u0002\u0002\u26cd\u034d\u0003\u0002\u0002", + "\u0002\u26ce\u26cf\u0007\u0175\u0002\u0002\u26cf\u26d0\u0005\u02d8\u016d", + "\u0002\u26d0\u26d1\u0007\u0159\u0002\u0002\u26d1\u26d2\u0005\u02d8\u016d", + "\u0002\u26d2\u034f\u0003\u0002\u0002\u0002\u26d3\u26d4\u0007\u0175\u0002", + "\u0002\u26d4\u26d5\u0005\u02ee\u0178\u0002\u26d5\u26d6\u0007\u0159\u0002", + "\u0002\u26d6\u26d7\u0005\u02d8\u016d\u0002\u26d7\u0351\u0003\u0002\u0002", + "\u0002\u26d8\u26da\u0007\u0010\u0002\u0002\u26d9\u26d8\u0003\u0002\u0002", + "\u0002\u26d9\u26da\u0003\u0002\u0002\u0002\u26da\u26db\u0003\u0002\u0002", + "\u0002\u26db\u26dc\u0005\u0362\u01b2\u0002\u26dc\u0353\u0003\u0002\u0002", + "\u0002\u26dd\u26df\u0007\u0010\u0002\u0002\u26de\u26dd\u0003\u0002\u0002", + "\u0002\u26de\u26df\u0003\u0002\u0002\u0002\u26df\u26e0\u0003\u0002\u0002", + "\u0002\u26e0\u26e1\u0005\u0356\u01ac\u0002\u26e1\u0355\u0003\u0002\u0002", + "\u0002\u26e2\u26e4\u0005\u03c6\u01e4\u0002\u26e3\u26e5\u0005\u0358\u01ad", + "\u0002\u26e4\u26e3\u0003\u0002\u0002\u0002\u26e4\u26e5\u0003\u0002\u0002", + "\u0002\u26e5\u0357\u0003\u0002\u0002\u0002\u26e6\u26e8\u0007\u0179\u0002", + "\u0002\u26e7\u26e6\u0003\u0002\u0002\u0002\u26e7\u26e8\u0003\u0002\u0002", + "\u0002\u26e8\u26e9\u0003\u0002\u0002\u0002\u26e9\u26ea\u0007\u033c\u0002", + "\u0002\u26ea\u26f1\u0005\u035c\u01af\u0002\u26eb\u26ed\u0007\u033e\u0002", + "\u0002\u26ec\u26eb\u0003\u0002\u0002\u0002\u26ec\u26ed\u0003\u0002\u0002", + "\u0002\u26ed\u26ee\u0003\u0002\u0002\u0002\u26ee\u26f0\u0005\u035c\u01af", + "\u0002\u26ef\u26ec\u0003\u0002\u0002\u0002\u26f0\u26f3\u0003\u0002\u0002", + "\u0002\u26f1\u26ef\u0003\u0002\u0002\u0002\u26f1\u26f2\u0003\u0002\u0002", + "\u0002\u26f2\u26f4\u0003\u0002\u0002\u0002\u26f3\u26f1\u0003\u0002\u0002", + "\u0002\u26f4\u26f5\u0007\u033d\u0002\u0002\u26f5\u0359\u0003\u0002\u0002", + "\u0002\u26f6\u26f7\u0007\u0179\u0002\u0002\u26f7\u26f8\u0007\u033c\u0002", + "\u0002\u26f8\u26ff\u0005\u035c\u01af\u0002\u26f9\u26fb\u0007\u033e\u0002", + "\u0002\u26fa\u26f9\u0003\u0002\u0002\u0002\u26fa\u26fb\u0003\u0002\u0002", + "\u0002\u26fb\u26fc\u0003\u0002\u0002\u0002\u26fc\u26fe\u0005\u035c\u01af", + "\u0002\u26fd\u26fa\u0003\u0002\u0002\u0002\u26fe\u2701\u0003\u0002\u0002", + "\u0002\u26ff\u26fd\u0003\u0002\u0002\u0002\u26ff\u2700\u0003\u0002\u0002", + "\u0002\u2700\u2702\u0003\u0002\u0002\u0002\u2701\u26ff\u0003\u0002\u0002", + "\u0002\u2702\u2703\u0007\u033d\u0002\u0002\u2703\u035b\u0003\u0002\u0002", + "\u0002\u2704\u2706\u0007\u0268\u0002\u0002\u2705\u2704\u0003\u0002\u0002", + "\u0002\u2705\u2706\u0003\u0002\u0002\u0002\u2706\u2737\u0003\u0002\u0002", + "\u0002\u2707\u271b\u0007\u009e\u0002\u0002\u2708\u2709\u0007\u033c\u0002", + "\u0002\u2709\u270e\u0005\u035e\u01b0\u0002\u270a\u270b\u0007\u033e\u0002", + "\u0002\u270b\u270d\u0005\u035e\u01b0\u0002\u270c\u270a\u0003\u0002\u0002", + "\u0002\u270d\u2710\u0003\u0002\u0002\u0002\u270e\u270c\u0003\u0002\u0002", + "\u0002\u270e\u270f\u0003\u0002\u0002\u0002\u270f\u2711\u0003\u0002\u0002", + "\u0002\u2710\u270e\u0003\u0002\u0002\u0002\u2711\u2712\u0007\u033d\u0002", + "\u0002\u2712\u271c\u0003\u0002\u0002\u0002\u2713\u2718\u0005\u035e\u01b0", + "\u0002\u2714\u2715\u0007\u033e\u0002\u0002\u2715\u2717\u0005\u035e\u01b0", + "\u0002\u2716\u2714\u0003\u0002\u0002\u0002\u2717\u271a\u0003\u0002\u0002", + "\u0002\u2718\u2716\u0003\u0002\u0002\u0002\u2718\u2719\u0003\u0002\u0002", + "\u0002\u2719\u271c\u0003\u0002\u0002\u0002\u271a\u2718\u0003\u0002\u0002", + "\u0002\u271b\u2708\u0003\u0002\u0002\u0002\u271b\u2713\u0003\u0002\u0002", + "\u0002\u271c\u2738\u0003\u0002\u0002\u0002\u271d\u271e\u0007\u009e\u0002", + "\u0002\u271e\u271f\u0007\u032a\u0002\u0002\u271f\u2738\u0005\u035e\u01b0", + "\u0002\u2720\u272f\u0007\u0086\u0002\u0002\u2721\u2722\u0007\u033c\u0002", + "\u0002\u2722\u2723\u0005\u035e\u01b0\u0002\u2723\u2724\u0007\u033c\u0002", + "\u0002\u2724\u2729\u0007\u0323\u0002\u0002\u2725\u2726\u0007\u033e\u0002", + "\u0002\u2726\u2728\u0007\u0323\u0002\u0002\u2727\u2725\u0003\u0002\u0002", + "\u0002\u2728\u272b\u0003\u0002\u0002\u0002\u2729\u2727\u0003\u0002\u0002", + "\u0002\u2729\u272a\u0003\u0002\u0002\u0002\u272a\u272c\u0003\u0002\u0002", + "\u0002\u272b\u2729\u0003\u0002\u0002\u0002\u272c\u272d\u0007\u033d\u0002", + "\u0002\u272d\u272e\u0007\u033d\u0002\u0002\u272e\u2730\u0003\u0002\u0002", + "\u0002\u272f\u2721\u0003\u0002\u0002\u0002\u272f\u2730\u0003\u0002\u0002", + "\u0002\u2730\u2738\u0003\u0002\u0002\u0002\u2731\u2738\u0007\u02d0\u0002", + "\u0002\u2732\u2738\u0007\u02da\u0002\u0002\u2733\u2734\u0007\u02db\u0002", + "\u0002\u2734\u2735\u0007\u032a\u0002\u0002\u2735\u2738\u0007\u0322\u0002", + "\u0002\u2736\u2738\u0007\u0323\u0002\u0002\u2737\u2707\u0003\u0002\u0002", + "\u0002\u2737\u271d\u0003\u0002\u0002\u0002\u2737\u2720\u0003\u0002\u0002", + "\u0002\u2737\u2731\u0003\u0002\u0002\u0002\u2737\u2732\u0003\u0002\u0002", + "\u0002\u2737\u2733\u0003\u0002\u0002\u0002\u2737\u2736\u0003\u0002\u0002", + "\u0002\u2738\u035d\u0003\u0002\u0002\u0002\u2739\u273c\u0005\u03c6\u01e4", + "\u0002\u273a\u273c\u0007\u0322\u0002\u0002\u273b\u2739\u0003\u0002\u0002", + "\u0002\u273b\u273a\u0003\u0002\u0002\u0002\u273c\u035f\u0003\u0002\u0002", + "\u0002\u273d\u273e\u0007\u033c\u0002\u0002\u273e\u2743\u0005\u0362\u01b2", + "\u0002\u273f\u2740\u0007\u033e\u0002\u0002\u2740\u2742\u0005\u0362\u01b2", + "\u0002\u2741\u273f\u0003\u0002\u0002\u0002\u2742\u2745\u0003\u0002\u0002", + "\u0002\u2743\u2741\u0003\u0002\u0002\u0002\u2743\u2744\u0003\u0002\u0002", + "\u0002\u2744\u2746\u0003\u0002\u0002\u0002\u2745\u2743\u0003\u0002\u0002", + "\u0002\u2746\u2747\u0007\u033d\u0002\u0002\u2747\u0361\u0003\u0002\u0002", + "\u0002\u2748\u274b\u0005\u03c6\u01e4\u0002\u2749\u274b\u0007\u0326\u0002", + "\u0002\u274a\u2748\u0003\u0002\u0002\u0002\u274a\u2749\u0003\u0002\u0002", + "\u0002\u274b\u0363\u0003\u0002\u0002\u0002\u274c\u274d\u0007\u016f\u0002", + "\u0002\u274d\u274e\u0007\u033c\u0002\u0002\u274e\u274f\u0005\u0366\u01b4", + "\u0002\u274f\u2757\u0007\u033d\u0002\u0002\u2750\u2751\u0007\u033e\u0002", + "\u0002\u2751\u2752\u0007\u033c\u0002\u0002\u2752\u2753\u0005\u0366\u01b4", + "\u0002\u2753\u2754\u0007\u033d\u0002\u0002\u2754\u2756\u0003\u0002\u0002", + "\u0002\u2755\u2750\u0003\u0002\u0002\u0002\u2756\u2759\u0003\u0002\u0002", + "\u0002\u2757\u2755\u0003\u0002\u0002\u0002\u2757\u2758\u0003\u0002\u0002", + "\u0002\u2758\u0365\u0003\u0002\u0002\u0002\u2759\u2757\u0003\u0002\u0002", + "\u0002\u275a\u275f\u0005\u02d8\u016d\u0002\u275b\u275c\u0007\u033e\u0002", + "\u0002\u275c\u275e\u0005\u02d8\u016d\u0002\u275d\u275b\u0003\u0002\u0002", + "\u0002\u275e\u2761\u0003\u0002\u0002\u0002\u275f\u275d\u0003\u0002\u0002", + "\u0002\u275f\u2760\u0003\u0002\u0002\u0002\u2760\u0367\u0003\u0002\u0002", + "\u0002\u2761\u275f\u0003\u0002\u0002\u0002\u2762\u2763\t}\u0002\u0002", + "\u2763\u2764\u0007\u033c\u0002\u0002\u2764\u2765\u0007\u033d\u0002\u0002", + "\u2765\u276d\u0005\u0370\u01b9\u0002\u2766\u2767\u0007\u026d\u0002\u0002", + "\u2767\u2768\u0007\u033c\u0002\u0002\u2768\u2769\u0005\u02d8\u016d\u0002", + "\u2769\u276a\u0007\u033d\u0002\u0002\u276a\u276b\u0005\u0370\u01b9\u0002", + "\u276b\u276d\u0003\u0002\u0002\u0002\u276c\u2762\u0003\u0002\u0002\u0002", + "\u276c\u2766\u0003\u0002\u0002\u0002\u276d\u0369\u0003\u0002\u0002\u0002", + "\u276e\u276f\t~\u0002\u0002\u276f\u2770\u0007\u033c\u0002\u0002\u2770", + "\u2771\u0005\u036e\u01b8\u0002\u2771\u2773\u0007\u033d\u0002\u0002\u2772", + "\u2774\u0005\u0370\u01b9\u0002\u2773\u2772\u0003\u0002\u0002\u0002\u2773", + "\u2774\u0003\u0002\u0002\u0002\u2774\u278f\u0003\u0002\u0002\u0002\u2775", + "\u2776\t\u007f\u0002\u0002\u2776\u2779\u0007\u033c\u0002\u0002\u2777", + "\u277a\u0007\u0341\u0002\u0002\u2778\u277a\u0005\u036e\u01b8\u0002\u2779", + "\u2777\u0003\u0002\u0002\u0002\u2779\u2778\u0003\u0002\u0002\u0002\u277a", + "\u277b\u0003\u0002\u0002\u0002\u277b\u277d\u0007\u033d\u0002\u0002\u277c", + "\u277e\u0005\u0370\u01b9\u0002\u277d\u277c\u0003\u0002\u0002\u0002\u277d", + "\u277e\u0003\u0002\u0002\u0002\u277e\u278f\u0003\u0002\u0002\u0002\u277f", + "\u2780\u0007\u01b3\u0002\u0002\u2780\u2781\u0007\u033c\u0002\u0002\u2781", + "\u2782\u0005\u036e\u01b8\u0002\u2782\u2783\u0007\u033d\u0002\u0002\u2783", + "\u278f\u0003\u0002\u0002\u0002\u2784\u2785\u0007\u0210\u0002\u0002\u2785", + "\u2786\u0007\u033c\u0002\u0002\u2786\u2787\u0005\u02d8\u016d\u0002\u2787", + "\u2788\u0007\u033d\u0002\u0002\u2788\u278f\u0003\u0002\u0002\u0002\u2789", + "\u278a\u0007\u0211\u0002\u0002\u278a\u278b\u0007\u033c\u0002\u0002\u278b", + "\u278c\u0005\u0366\u01b4\u0002\u278c\u278d\u0007\u033d\u0002\u0002\u278d", + "\u278f\u0003\u0002\u0002\u0002\u278e\u276e\u0003\u0002\u0002\u0002\u278e", + "\u2775\u0003\u0002\u0002\u0002\u278e\u277f\u0003\u0002\u0002\u0002\u278e", + "\u2784\u0003\u0002\u0002\u0002\u278e\u2789\u0003\u0002\u0002\u0002\u278f", + "\u036b\u0003\u0002\u0002\u0002\u2790\u2791\t\u0080\u0002\u0002\u2791", + "\u2792\u0007\u033c\u0002\u0002\u2792\u2793\u0005\u02d8\u016d\u0002\u2793", + "\u2794\u0007\u033d\u0002\u0002\u2794\u2795\u0005\u0370\u01b9\u0002\u2795", + "\u27a5\u0003\u0002\u0002\u0002\u2796\u2797\t\u0081\u0002\u0002\u2797", + "\u2798\u0007\u033c\u0002\u0002\u2798\u279f\u0005\u02d8\u016d\u0002\u2799", + "\u279a\u0007\u033e\u0002\u0002\u279a\u279d\u0005\u02d8\u016d\u0002\u279b", + "\u279c\u0007\u033e\u0002\u0002\u279c\u279e\u0005\u02d8\u016d\u0002\u279d", + "\u279b\u0003\u0002\u0002\u0002\u279d\u279e\u0003\u0002\u0002\u0002\u279e", + "\u27a0\u0003\u0002\u0002\u0002\u279f\u2799\u0003\u0002\u0002\u0002\u279f", + "\u27a0\u0003\u0002\u0002\u0002\u27a0\u27a1\u0003\u0002\u0002\u0002\u27a1", + "\u27a2\u0007\u033d\u0002\u0002\u27a2\u27a3\u0005\u0370\u01b9\u0002\u27a3", + "\u27a5\u0003\u0002\u0002\u0002\u27a4\u2790\u0003\u0002\u0002\u0002\u27a4", + "\u2796\u0003\u0002\u0002\u0002\u27a5\u036d\u0003\u0002\u0002\u0002\u27a6", + "\u27a8\to\u0002\u0002\u27a7\u27a6\u0003\u0002\u0002\u0002\u27a7\u27a8", + "\u0003\u0002\u0002\u0002\u27a8\u27a9\u0003\u0002\u0002\u0002\u27a9\u27aa", + "\u0005\u02d8\u016d\u0002\u27aa\u036f\u0003\u0002\u0002\u0002\u27ab\u27ac", + "\u0007\u00f0\u0002\u0002\u27ac\u27b0\u0007\u033c\u0002\u0002\u27ad\u27ae", + "\u0007\u0280\u0002\u0002\u27ae\u27af\u0007&\u0002\u0002\u27af\u27b1", + "\u0005\u0366\u01b4\u0002\u27b0\u27ad\u0003\u0002\u0002\u0002\u27b0\u27b1", + "\u0003\u0002\u0002\u0002\u27b1\u27b3\u0003\u0002\u0002\u0002\u27b2\u27b4", + "\u0005\u0302\u0182\u0002\u27b3\u27b2\u0003\u0002\u0002\u0002\u27b3\u27b4", + "\u0003\u0002\u0002\u0002\u27b4\u27b6\u0003\u0002\u0002\u0002\u27b5\u27b7", + "\u0005\u0372\u01ba\u0002\u27b6\u27b5\u0003\u0002\u0002\u0002\u27b6\u27b7", + "\u0003\u0002\u0002\u0002\u27b7\u27b8\u0003\u0002\u0002\u0002\u27b8\u27b9", + "\u0007\u033d\u0002\u0002\u27b9\u0371\u0003\u0002\u0002\u0002\u27ba\u27bb", + "\t\u0082\u0002\u0002\u27bb\u27bc\u0005\u0374\u01bb\u0002\u27bc\u0373", + "\u0003\u0002\u0002\u0002\u27bd\u27c4\u0005\u0378\u01bd\u0002\u27be\u27bf", + "\u0007\u001d\u0002\u0002\u27bf\u27c0\u0005\u0376\u01bc\u0002\u27c0\u27c1", + "\u0007\u000b\u0002\u0002\u27c1\u27c2\u0005\u0376\u01bc\u0002\u27c2\u27c4", + "\u0003\u0002\u0002\u0002\u27c3\u27bd\u0003\u0002\u0002\u0002\u27c3\u27be", + "\u0003\u0002\u0002\u0002\u27c4\u0375\u0003\u0002\u0002\u0002\u27c5\u27c8", + "\u0005\u0378\u01bd\u0002\u27c6\u27c8\u0005\u037a\u01be\u0002\u27c7\u27c5", + "\u0003\u0002\u0002\u0002\u27c7\u27c6\u0003\u0002\u0002\u0002\u27c8\u0377", + "\u0003\u0002\u0002\u0002\u27c9\u27ca\u0007\u0303\u0002\u0002\u27ca\u27d0", + "\u0007\u0287\u0002\u0002\u27cb\u27cc\u0007\u0322\u0002\u0002\u27cc\u27d0", + "\u0007\u0287\u0002\u0002\u27cd\u27ce\u0007K\u0002\u0002\u27ce\u27d0", + "\u0007\u02b9\u0002\u0002\u27cf\u27c9\u0003\u0002\u0002\u0002\u27cf\u27cb", + "\u0003\u0002\u0002\u0002\u27cf\u27cd\u0003\u0002\u0002\u0002\u27d0\u0379", + "\u0003\u0002\u0002\u0002\u27d1\u27d2\u0007\u0303\u0002\u0002\u27d2\u27d6", + "\u0007\u0202\u0002\u0002\u27d3\u27d4\u0007\u0322\u0002\u0002\u27d4\u27d6", + "\u0007\u0202\u0002\u0002\u27d5\u27d1\u0003\u0002\u0002\u0002\u27d5\u27d3", + "\u0003\u0002\u0002\u0002\u27d6\u037b\u0003\u0002\u0002\u0002\u27d7\u27d8", + "\u0007\u01fe\u0002\u0002\u27d8\u27dd\u0005\u037e\u01c0\u0002\u27d9\u27da", + "\u0007\u033e\u0002\u0002\u27da\u27dc\u0005\u037e\u01c0\u0002\u27db\u27d9", + "\u0003\u0002\u0002\u0002\u27dc\u27df\u0003\u0002\u0002\u0002\u27dd\u27db", + "\u0003\u0002\u0002\u0002\u27dd\u27de\u0003\u0002\u0002\u0002\u27de\u27fa", + "\u0003\u0002\u0002\u0002\u27df\u27dd\u0003\u0002\u0002\u0002\u27e0\u27e1", + "\u0007\u01d4\u0002\u0002\u27e1\u27e4\u0007\u032a\u0002\u0002\u27e2\u27e5", + "\u0005\u03c6\u01e4\u0002\u27e3\u27e5\u0007\u0326\u0002\u0002\u27e4\u27e2", + "\u0003\u0002\u0002\u0002\u27e4\u27e3\u0003\u0002\u0002\u0002\u27e5\u27fa", + "\u0003\u0002\u0002\u0002\u27e6\u27e7\u0007\u01d3\u0002\u0002\u27e7\u27ea", + "\u0007\u032a\u0002\u0002\u27e8\u27eb\u0005\u03c6\u01e4\u0002\u27e9\u27eb", + "\u0007\u0326\u0002\u0002\u27ea\u27e8\u0003\u0002\u0002\u0002\u27ea\u27e9", + "\u0003\u0002\u0002\u0002\u27eb\u27fa\u0003\u0002\u0002\u0002\u27ec\u27ed", + "\u0007\u025e\u0002\u0002\u27ed\u27ee\u0007\u032a\u0002\u0002\u27ee\u27fa", + "\t\t\u0002\u0002\u27ef\u27f0\u0007\u02fa\u0002\u0002\u27f0\u27f1\u0007", + "\u032a\u0002\u0002\u27f1\u27fa\t\t\u0002\u0002\u27f2\u27f3\u0007\u0300", + "\u0002\u0002\u27f3\u27f4\u0007\u032a\u0002\u0002\u27f4\u27fa\u0007\u0322", + "\u0002\u0002\u27f5\u27f6\u0007\u01cf\u0002\u0002\u27f6\u27fa\t\t\u0002", + "\u0002\u27f7\u27f8\u0007\u02fd\u0002\u0002\u27f8\u27fa\t\t\u0002\u0002", + "\u27f9\u27d7\u0003\u0002\u0002\u0002\u27f9\u27e0\u0003\u0002\u0002\u0002", + "\u27f9\u27e6\u0003\u0002\u0002\u0002\u27f9\u27ec\u0003\u0002\u0002\u0002", + "\u27f9\u27ef\u0003\u0002\u0002\u0002\u27f9\u27f2\u0003\u0002\u0002\u0002", + "\u27f9\u27f5\u0003\u0002\u0002\u0002\u27f9\u27f7\u0003\u0002\u0002\u0002", + "\u27fa\u037d\u0003\u0002\u0002\u0002\u27fb\u2802\u0007\u033c\u0002\u0002", + "\u27fc\u27fd\u0007\u0269\u0002\u0002\u27fd\u27fe\u0007\u032a\u0002\u0002", + "\u27fe\u2803\t\u0083\u0002\u0002\u27ff\u2800\u0007\u01df\u0002\u0002", + "\u2800\u2801\u0007\u032a\u0002\u0002\u2801\u2803\u0007\u0326\u0002\u0002", + "\u2802\u27fc\u0003\u0002\u0002\u0002\u2802\u27ff\u0003\u0002\u0002\u0002", + "\u2803\u2804\u0003\u0002\u0002\u0002\u2804\u2805\u0007\u033d\u0002\u0002", + "\u2805\u037f\u0003\u0002\u0002\u0002\u2806\u2809\u0005\u0382\u01c2\u0002", + "\u2807\u2809\u0005\u0384\u01c3\u0002\u2808\u2806\u0003\u0002\u0002\u0002", + "\u2808\u2807\u0003\u0002\u0002\u0002\u2809\u0381\u0003\u0002\u0002\u0002", + "\u280a\u280b\u0007\u01fb\u0002\u0002\u280b\u280e\u0005\u03c6\u01e4\u0002", + "\u280c\u280d\u0007?\u0002\u0002\u280d\u280f\u0007\u01fe\u0002\u0002", + "\u280e\u280c\u0003\u0002\u0002\u0002\u280e\u280f\u0003\u0002\u0002\u0002", + "\u280f\u2811\u0003\u0002\u0002\u0002\u2810\u2812\u0007Y\u0002\u0002", + "\u2811\u2810\u0003\u0002\u0002\u0002\u2811\u2812\u0003\u0002\u0002\u0002", + "\u2812\u2815\u0003\u0002\u0002\u0002\u2813\u2814\u0007?\u0002\u0002", + "\u2814\u2816\u0007\u024f\u0002\u0002\u2815\u2813\u0003\u0002\u0002\u0002", + "\u2815\u2816\u0003\u0002\u0002\u0002\u2816\u2817\u0003\u0002\u0002\u0002", + "\u2817\u281c\u0005\u0384\u01c3\u0002\u2818\u2819\u0007\u033e\u0002\u0002", + "\u2819\u281b\u0005\u0384\u01c3\u0002\u281a\u2818\u0003\u0002\u0002\u0002", + "\u281b\u281e\u0003\u0002\u0002\u0002\u281c\u281a\u0003\u0002\u0002\u0002", + "\u281c\u281d\u0003\u0002\u0002\u0002\u281d\u0383\u0003\u0002\u0002\u0002", + "\u281e\u281c\u0003\u0002\u0002\u0002\u281f\u2820\u0007\u033c\u0002\u0002", + "\u2820\u2821\u0007\u025d\u0002\u0002\u2821\u2824\u0007\u032a\u0002\u0002", + "\u2822\u2825\u0005\u03c6\u01e4\u0002\u2823\u2825\u0007\u0326\u0002\u0002", + "\u2824\u2822\u0003\u0002\u0002\u0002\u2824\u2823\u0003\u0002\u0002\u0002", + "\u2825\u2827\u0003\u0002\u0002\u0002\u2826\u2828\u0007\u033e\u0002\u0002", + "\u2827\u2826\u0003\u0002\u0002\u0002\u2827\u2828\u0003\u0002\u0002\u0002", + "\u2828\u2829\u0003\u0002\u0002\u0002\u2829\u282a\u0007\u0082\u0002\u0002", + "\u282a\u282b\u0007\u032a\u0002\u0002\u282b\u282d\u0007\u0326\u0002\u0002", + "\u282c\u282e\u0007\u033e\u0002\u0002\u282d\u282c\u0003\u0002\u0002\u0002", + "\u282d\u282e\u0003\u0002\u0002\u0002\u282e\u2835\u0003\u0002\u0002\u0002", + "\u282f\u2830\u0007\u02d8\u0002\u0002\u2830\u2831\u0007\u032a\u0002\u0002", + "\u2831\u2833\u0005\u03ce\u01e8\u0002\u2832\u2834\u0007\u033e\u0002\u0002", + "\u2833\u2832\u0003\u0002\u0002\u0002\u2833\u2834\u0003\u0002\u0002\u0002", + "\u2834\u2836\u0003\u0002\u0002\u0002\u2835\u282f\u0003\u0002\u0002\u0002", + "\u2835\u2836\u0003\u0002\u0002\u0002\u2836\u2840\u0003\u0002\u0002\u0002", + "\u2837\u2838\u0007\u024c\u0002\u0002\u2838\u283b\u0007\u032a\u0002\u0002", + "\u2839\u283c\u0005\u03ce\u01e8\u0002\u283a\u283c\u0007\u0306\u0002\u0002", + "\u283b\u2839\u0003\u0002\u0002\u0002\u283b\u283a\u0003\u0002\u0002\u0002", + "\u283c\u283e\u0003\u0002\u0002\u0002\u283d\u283f\u0007\u033e\u0002\u0002", + "\u283e\u283d\u0003\u0002\u0002\u0002\u283e\u283f\u0003\u0002\u0002\u0002", + "\u283f\u2841\u0003\u0002\u0002\u0002\u2840\u2837\u0003\u0002\u0002\u0002", + "\u2840\u2841\u0003\u0002\u0002\u0002\u2841\u2848\u0003\u0002\u0002\u0002", + "\u2842\u2843\u0007\u01fc\u0002\u0002\u2843\u2844\u0007\u032a\u0002\u0002", + "\u2844\u2846\u0005\u03ce\u01e8\u0002\u2845\u2847\u0007\u033e\u0002\u0002", + "\u2846\u2845\u0003\u0002\u0002\u0002\u2846\u2847\u0003\u0002\u0002\u0002", + "\u2847\u2849\u0003\u0002\u0002\u0002\u2848\u2842\u0003\u0002\u0002\u0002", + "\u2848\u2849\u0003\u0002\u0002\u0002\u2849\u284a\u0003\u0002\u0002\u0002", + "\u284a\u284b\u0007\u033d\u0002\u0002\u284b\u0385\u0003\u0002\u0002\u0002", + "\u284c\u284d\u0005\u03c6\u01e4\u0002\u284d\u284e\u0007\u0337\u0002\u0002", + "\u284e\u284f\u0005\u03c6\u01e4\u0002\u284f\u2850\u0007\u0337\u0002\u0002", + "\u2850\u2851\u0005\u03c6\u01e4\u0002\u2851\u2852\u0007\u0337\u0002\u0002", + "\u2852\u285e\u0003\u0002\u0002\u0002\u2853\u2854\u0005\u03c6\u01e4\u0002", + "\u2854\u2856\u0007\u0337\u0002\u0002\u2855\u2857\u0005\u03c6\u01e4\u0002", + "\u2856\u2855\u0003\u0002\u0002\u0002\u2856\u2857\u0003\u0002\u0002\u0002", + "\u2857\u2858\u0003\u0002\u0002\u0002\u2858\u2859\u0007\u0337\u0002\u0002", + "\u2859\u285e\u0003\u0002\u0002\u0002\u285a\u285b\u0005\u03c6\u01e4\u0002", + "\u285b\u285c\u0007\u0337\u0002\u0002\u285c\u285e\u0003\u0002\u0002\u0002", + "\u285d\u284c\u0003\u0002\u0002\u0002\u285d\u2853\u0003\u0002\u0002\u0002", + "\u285d\u285a\u0003\u0002\u0002\u0002\u285d\u285e\u0003\u0002\u0002\u0002", + "\u285e\u285f\u0003\u0002\u0002\u0002\u285f\u2860\u0005\u03c6\u01e4\u0002", + "\u2860\u0387\u0003\u0002\u0002\u0002\u2861\u2867\u0005\u03c6\u01e4\u0002", + "\u2862\u2863\u0005\u03c6\u01e4\u0002\u2863\u2864\u0007\u0337\u0002\u0002", + "\u2864\u2865\u0005\u03c6\u01e4\u0002\u2865\u2867\u0003\u0002\u0002\u0002", + "\u2866\u2861\u0003\u0002\u0002\u0002\u2866\u2862\u0003\u0002\u0002\u0002", + "\u2867\u0389\u0003\u0002\u0002\u0002\u2868\u286e\u0005\u03c6\u01e4\u0002", + "\u2869\u286a\u0005\u03c6\u01e4\u0002\u286a\u286b\u0007\u0337\u0002\u0002", + "\u286b\u286c\u0005\u03c6\u01e4\u0002\u286c\u286e\u0003\u0002\u0002\u0002", + "\u286d\u2868\u0003\u0002\u0002\u0002\u286d\u2869\u0003\u0002\u0002\u0002", + "\u286e\u038b\u0003\u0002\u0002\u0002\u286f\u2870\u0005\u03c6\u01e4\u0002", + "\u2870\u2871\u0007\u0337\u0002\u0002\u2871\u2872\u0005\u03c6\u01e4\u0002", + "\u2872\u2873\u0007\u0337\u0002\u0002\u2873\u2874\u0005\u03c6\u01e4\u0002", + "\u2874\u2875\u0007\u0337\u0002\u0002\u2875\u2881\u0003\u0002\u0002\u0002", + "\u2876\u2877\u0005\u03c6\u01e4\u0002\u2877\u2879\u0007\u0337\u0002\u0002", + "\u2878\u287a\u0005\u03c6\u01e4\u0002\u2879\u2878\u0003\u0002\u0002\u0002", + "\u2879\u287a\u0003\u0002\u0002\u0002\u287a\u287b\u0003\u0002\u0002\u0002", + "\u287b\u287c\u0007\u0337\u0002\u0002\u287c\u2881\u0003\u0002\u0002\u0002", + "\u287d\u287e\u0005\u03c6\u01e4\u0002\u287e\u287f\u0007\u0337\u0002\u0002", + "\u287f\u2881\u0003\u0002\u0002\u0002\u2880\u286f\u0003\u0002\u0002\u0002", + "\u2880\u2876\u0003\u0002\u0002\u0002\u2880\u287d\u0003\u0002\u0002\u0002", + "\u2880\u2881\u0003\u0002\u0002\u0002\u2881\u2882\u0003\u0002\u0002\u0002", + "\u2882\u2883\u0005\u03c6\u01e4\u0002\u2883\u038d\u0003\u0002\u0002\u0002", + "\u2884\u2885\u0005\u03c6\u01e4\u0002\u2885\u2887\u0007\u0337\u0002\u0002", + "\u2886\u2888\u0005\u03c6\u01e4\u0002\u2887\u2886\u0003\u0002\u0002\u0002", + "\u2887\u2888\u0003\u0002\u0002\u0002\u2888\u2889\u0003\u0002\u0002\u0002", + "\u2889\u288a\u0007\u0337\u0002\u0002\u288a\u288f\u0003\u0002\u0002\u0002", + "\u288b\u288c\u0005\u03c6\u01e4\u0002\u288c\u288d\u0007\u0337\u0002\u0002", + "\u288d\u288f\u0003\u0002\u0002\u0002\u288e\u2884\u0003\u0002\u0002\u0002", + "\u288e\u288b\u0003\u0002\u0002\u0002\u288e\u288f\u0003\u0002\u0002\u0002", + "\u288f\u2890\u0003\u0002\u0002\u0002\u2890\u289f\u0005\u03c6\u01e4\u0002", + "\u2891\u2892\u0005\u03c6\u01e4\u0002\u2892\u2894\u0007\u0337\u0002\u0002", + "\u2893\u2895\u0005\u03c6\u01e4\u0002\u2894\u2893\u0003\u0002\u0002\u0002", + "\u2894\u2895\u0003\u0002\u0002\u0002\u2895\u2896\u0003\u0002\u0002\u0002", + "\u2896\u2897\u0007\u0337\u0002\u0002\u2897\u289c\u0003\u0002\u0002\u0002", + "\u2898\u2899\u0005\u03c6\u01e4\u0002\u2899\u289a\u0007\u0337\u0002\u0002", + "\u289a\u289c\u0003\u0002\u0002\u0002\u289b\u2891\u0003\u0002\u0002\u0002", + "\u289b\u2898\u0003\u0002\u0002\u0002\u289b\u289c\u0003\u0002\u0002\u0002", + "\u289c\u289d\u0003\u0002\u0002\u0002\u289d\u289f\u0007 \u0002\u0002", + "\u289e\u288e\u0003\u0002\u0002\u0002\u289e\u289b\u0003\u0002\u0002\u0002", + "\u289f\u038f\u0003\u0002\u0002\u0002\u28a0\u28a1\u0005\u03c6\u01e4\u0002", + "\u28a1\u28a2\u0007\u0337\u0002\u0002\u28a2\u28a4\u0003\u0002\u0002\u0002", + "\u28a3\u28a0\u0003\u0002\u0002\u0002\u28a3\u28a4\u0003\u0002\u0002\u0002", + "\u28a4\u28a5\u0003\u0002\u0002\u0002\u28a5\u28a6\u0005\u03c6\u01e4\u0002", + "\u28a6\u0391\u0003\u0002\u0002\u0002\u28a7\u28a8\u0005\u03c6\u01e4\u0002", + "\u28a8\u28a9\u0007\u0337\u0002\u0002\u28a9\u28ab\u0003\u0002\u0002\u0002", + "\u28aa\u28a7\u0003\u0002\u0002\u0002\u28aa\u28ab\u0003\u0002\u0002\u0002", + "\u28ab\u28ac\u0003\u0002\u0002\u0002\u28ac\u28ad\u0005\u03c6\u01e4\u0002", + "\u28ad\u0393\u0003\u0002\u0002\u0002\u28ae\u28ba\u0005\u0392\u01ca\u0002", + "\u28af\u28b0\u0005\u03c6\u01e4\u0002\u28b0\u28b2\u0007\u0337\u0002\u0002", + "\u28b1\u28b3\u0005\u03c6\u01e4\u0002\u28b2\u28b1\u0003\u0002\u0002\u0002", + "\u28b2\u28b3\u0003\u0002\u0002\u0002\u28b3\u28b4\u0003\u0002\u0002\u0002", + "\u28b4\u28b5\u0007\u0337\u0002\u0002\u28b5\u28b7\u0003\u0002\u0002\u0002", + "\u28b6\u28af\u0003\u0002\u0002\u0002\u28b6\u28b7\u0003\u0002\u0002\u0002", + "\u28b7\u28b8\u0003\u0002\u0002\u0002\u28b8\u28ba\u0005\u03c6\u01e4\u0002", + "\u28b9\u28ae\u0003\u0002\u0002\u0002\u28b9\u28b6\u0003\u0002\u0002\u0002", + "\u28ba\u0395\u0003\u0002\u0002\u0002\u28bb\u28c9\u0005\u0394\u01cb\u0002", + "\u28bc\u28bd\u0005\u03c6\u01e4\u0002\u28bd\u28be\u0007\u0337\u0002\u0002", + "\u28be\u28bf\u0005\u03c6\u01e4\u0002\u28bf\u28c1\u0007\u0337\u0002\u0002", + "\u28c0\u28c2\u0005\u03c6\u01e4\u0002\u28c1\u28c0\u0003\u0002\u0002\u0002", + "\u28c1\u28c2\u0003\u0002\u0002\u0002\u28c2\u28c3\u0003\u0002\u0002\u0002", + "\u28c3\u28c4\u0007\u0337\u0002\u0002\u28c4\u28c6\u0003\u0002\u0002\u0002", + "\u28c5\u28bc\u0003\u0002\u0002\u0002\u28c5\u28c6\u0003\u0002\u0002\u0002", + "\u28c6\u28c7\u0003\u0002\u0002\u0002\u28c7\u28c9\u0005\u03c6\u01e4\u0002", + "\u28c8\u28bb\u0003\u0002\u0002\u0002\u28c8\u28c5\u0003\u0002\u0002\u0002", + "\u28c9\u0397\u0003\u0002\u0002\u0002\u28ca\u28cd\u0005\u038c\u01c7\u0002", + "\u28cb\u28cd\u0007\u0321\u0002\u0002\u28cc\u28ca\u0003\u0002\u0002\u0002", + "\u28cc\u28cb\u0003\u0002\u0002\u0002\u28cd\u0399\u0003\u0002\u0002\u0002", + "\u28ce\u28cf\u0005\u038e\u01c8\u0002\u28cf\u28d0\u0007\u0337\u0002\u0002", + "\u28d0\u28d2\u0003\u0002\u0002\u0002\u28d1\u28ce\u0003\u0002\u0002\u0002", + "\u28d1\u28d2\u0003\u0002\u0002\u0002\u28d2\u28d3\u0003\u0002\u0002\u0002", + "\u28d3\u28ff\u0005\u03c6\u01e4\u0002\u28d4\u28d5\u0005\u038e\u01c8\u0002", + "\u28d5\u28d6\u0007\u0337\u0002\u0002\u28d6\u28d8\u0003\u0002\u0002\u0002", + "\u28d7\u28d4\u0003\u0002\u0002\u0002\u28d7\u28d8\u0003\u0002\u0002\u0002", + "\u28d8\u28d9\u0003\u0002\u0002\u0002\u28d9\u28ff\u0007\u01b8\u0002\u0002", + "\u28da\u28db\u0005\u038e\u01c8\u0002\u28db\u28dc\u0007\u0337\u0002\u0002", + "\u28dc\u28de\u0003\u0002\u0002\u0002\u28dd\u28da\u0003\u0002\u0002\u0002", + "\u28dd\u28de\u0003\u0002\u0002\u0002\u28de\u28df\u0003\u0002\u0002\u0002", + "\u28df\u28ff\u0007\u02e0\u0002\u0002\u28e0\u28e1\u0005\u038e\u01c8\u0002", + "\u28e1\u28e2\u0007\u0337\u0002\u0002\u28e2\u28e4\u0003\u0002\u0002\u0002", + "\u28e3\u28e0\u0003\u0002\u0002\u0002\u28e3\u28e4\u0003\u0002\u0002\u0002", + "\u28e4\u28e5\u0003\u0002\u0002\u0002\u28e5\u28ff\u0007\u0296\u0002\u0002", + "\u28e6\u28e7\u0005\u038e\u01c8\u0002\u28e7\u28e8\u0007\u0337\u0002\u0002", + "\u28e8\u28ea\u0003\u0002\u0002\u0002\u28e9\u28e6\u0003\u0002\u0002\u0002", + "\u28e9\u28ea\u0003\u0002\u0002\u0002\u28ea\u28eb\u0003\u0002\u0002\u0002", + "\u28eb\u28ff\u0007\u0194\u0002\u0002\u28ec\u28ed\u0005\u038e\u01c8\u0002", + "\u28ed\u28ee\u0007\u0337\u0002\u0002\u28ee\u28f0\u0003\u0002\u0002\u0002", + "\u28ef\u28ec\u0003\u0002\u0002\u0002\u28ef\u28f0\u0003\u0002\u0002\u0002", + "\u28f0\u28f1\u0003\u0002\u0002\u0002\u28f1\u28ff\u0007\u0191\u0002\u0002", + "\u28f2\u28f3\u0005\u038e\u01c8\u0002\u28f3\u28f4\u0007\u0337\u0002\u0002", + "\u28f4\u28f6\u0003\u0002\u0002\u0002\u28f5\u28f2\u0003\u0002\u0002\u0002", + "\u28f5\u28f6\u0003\u0002\u0002\u0002\u28f6\u28f7\u0003\u0002\u0002\u0002", + "\u28f7\u28ff\u0007\u0190\u0002\u0002\u28f8\u28f9\u0005\u038e\u01c8\u0002", + "\u28f9\u28fa\u0007\u0337\u0002\u0002\u28fa\u28fc\u0003\u0002\u0002\u0002", + "\u28fb\u28f8\u0003\u0002\u0002\u0002\u28fb\u28fc\u0003\u0002\u0002\u0002", + "\u28fc\u28fd\u0003\u0002\u0002\u0002\u28fd\u28ff\u0007\u018f\u0002\u0002", + "\u28fe\u28d1\u0003\u0002\u0002\u0002\u28fe\u28d7\u0003\u0002\u0002\u0002", + "\u28fe\u28dd\u0003\u0002\u0002\u0002\u28fe\u28e3\u0003\u0002\u0002\u0002", + "\u28fe\u28e9\u0003\u0002\u0002\u0002\u28fe\u28ef\u0003\u0002\u0002\u0002", + "\u28fe\u28f5\u0003\u0002\u0002\u0002\u28fe\u28fb\u0003\u0002\u0002\u0002", + "\u28ff\u039b\u0003\u0002\u0002\u0002\u2900\u2902\u0005\u03c6\u01e4\u0002", + "\u2901\u2903\tu\u0002\u0002\u2902\u2901\u0003\u0002\u0002\u0002\u2902", + "\u2903\u0003\u0002\u0002\u0002\u2903\u290b\u0003\u0002\u0002\u0002\u2904", + "\u2905\u0007\u033e\u0002\u0002\u2905\u2907\u0005\u03c6\u01e4\u0002\u2906", + "\u2908\tu\u0002\u0002\u2907\u2906\u0003\u0002\u0002\u0002\u2907\u2908", + "\u0003\u0002\u0002\u0002\u2908\u290a\u0003\u0002\u0002\u0002\u2909\u2904", + "\u0003\u0002\u0002\u0002\u290a\u290d\u0003\u0002\u0002\u0002\u290b\u2909", + "\u0003\u0002\u0002\u0002\u290b\u290c\u0003\u0002\u0002\u0002\u290c\u039d", + "\u0003\u0002\u0002\u0002\u290d\u290b\u0003\u0002\u0002\u0002\u290e\u2913", + "\u0005\u03c6\u01e4\u0002\u290f\u2910\u0007\u033e\u0002\u0002\u2910\u2912", + "\u0005\u03c6\u01e4\u0002\u2911\u290f\u0003\u0002\u0002\u0002\u2912\u2915", + "\u0003\u0002\u0002\u0002\u2913\u2911\u0003\u0002\u0002\u0002\u2913\u2914", + "\u0003\u0002\u0002\u0002\u2914\u039f\u0003\u0002\u0002\u0002\u2915\u2913", + "\u0003\u0002\u0002\u0002\u2916\u2919\u0005\u03c6\u01e4\u0002\u2917\u2919", + "\u0007\u0321\u0002\u0002\u2918\u2916\u0003\u0002\u0002\u0002\u2918\u2917", + "\u0003\u0002\u0002\u0002\u2919\u03a1\u0003\u0002\u0002\u0002\u291a\u291b", + "\t\t\u0002\u0002\u291b\u03a3\u0003\u0002\u0002\u0002\u291c\u291d\t\u0084", + "\u0002\u0002\u291d\u03a5\u0003\u0002\u0002\u0002\u291e\u2920\u0007\u00dc", + "\u0002\u0002\u291f\u291e\u0003\u0002\u0002\u0002\u291f\u2920\u0003\u0002", + "\u0002\u0002\u2920\u2921\u0003\u0002\u0002\u0002\u2921\u2922\u0007\u00df", + "\u0002\u0002\u2922\u03a7\u0003\u0002\u0002\u0002\u2923\u292b\u0005\u03a6", + "\u01d4\u0002\u2924\u2925\u0007Y\u0002\u0002\u2925\u2928\u0005\u02e2", + "\u0172\u0002\u2926\u2927\u0007\u0179\u0002\u0002\u2927\u2929\u0007\u016f", + "\u0002\u0002\u2928\u2926\u0003\u0002\u0002\u0002\u2928\u2929\u0003\u0002", + "\u0002\u0002\u2929\u292b\u0003\u0002\u0002\u0002\u292a\u2923\u0003\u0002", + "\u0002\u0002\u292a\u2924\u0003\u0002\u0002\u0002\u292b\u03a9\u0003\u0002", + "\u0002\u0002\u292c\u2932\u0005\u0396\u01cc\u0002\u292d\u2932\u0007\u011f", + "\u0002\u0002\u292e\u2932\u0007\u00b1\u0002\u0002\u292f\u2932\u0007\u01a5", + "\u0002\u0002\u2930\u2932\u0007\u01b2\u0002\u0002\u2931\u292c\u0003\u0002", + "\u0002\u0002\u2931\u292d\u0003\u0002\u0002\u0002\u2931\u292e\u0003\u0002", + "\u0002\u0002\u2931\u292f\u0003\u0002\u0002\u0002\u2931\u2930\u0003\u0002", + "\u0002\u0002\u2932\u03ab\u0003\u0002\u0002\u0002\u2933\u2934\u0007\u001c", + "\u0002\u0002\u2934\u2935\u0007F\u0002\u0002\u2935\u2936\u0007\u02f7", + "\u0002\u0002\u2936\u2937\u0007\u033c\u0002\u0002\u2937\u2938\u0007\u0321", + "\u0002\u0002\u2938\u2939\u0007\u033d\u0002\u0002\u2939\u293a\u0007\u02f6", + "\u0002\u0002\u293a\u293b\u0007\u032a\u0002\u0002\u293b\u293d\u0005\u01c0", + "\u00e1\u0002\u293c\u293e\u0007\u033f\u0002\u0002\u293d\u293c\u0003\u0002", + "\u0002\u0002\u293d\u293e\u0003\u0002\u0002\u0002\u293e\u03ad\u0003\u0002", + "\u0002\u0002\u293f\u2940\u0007\u001c\u0002\u0002\u2940\u2942\u0007\u01de", + "\u0002\u0002\u2941\u2943\u0007F\u0002\u0002\u2942\u2941\u0003\u0002", + "\u0002\u0002\u2942\u2943\u0003\u0002\u0002\u0002\u2943\u2944\u0003\u0002", + "\u0002\u0002\u2944\u2945\u0007\u0321\u0002\u0002\u2945\u2946\u0007\u008b", + "\u0002\u0002\u2946\u2947\u0007\u0136\u0002\u0002\u2947\u2948\u0005\u03b2", + "\u01da\u0002\u2948\u2949\u0007\u015a\u0002\u0002\u2949\u294a\u0007\u0136", + "\u0002\u0002\u294a\u294d\u0005\u03b2\u01da\u0002\u294b\u294c\u0007\u033e", + "\u0002\u0002\u294c\u294e\u0007\u0326\u0002\u0002\u294d\u294b\u0003\u0002", + "\u0002\u0002\u294d\u294e\u0003\u0002\u0002\u0002\u294e\u294f\u0003\u0002", + "\u0002\u0002\u294f\u2950\u0007\u00e5\u0002\u0002\u2950\u2951\u0007D", + "\u0002\u0002\u2951\u2968\u0005\u03b0\u01d9\u0002\u2952\u2959\u0007\u0179", + "\u0002\u0002\u2953\u2954\t\u0085\u0002\u0002\u2954\u2955\u0007\u032a", + "\u0002\u0002\u2955\u2957\u0007\u0321\u0002\u0002\u2956\u2958\u0007\u033e", + "\u0002\u0002\u2957\u2956\u0003\u0002\u0002\u0002\u2957\u2958\u0003\u0002", + "\u0002\u0002\u2958\u295a\u0003\u0002\u0002\u0002\u2959\u2953\u0003\u0002", + "\u0002\u0002\u2959\u295a\u0003\u0002\u0002\u0002\u295a\u2961\u0003\u0002", + "\u0002\u0002\u295b\u295c\u0007\u00b3\u0002\u0002\u295c\u295d\u0007\u032a", + "\u0002\u0002\u295d\u295f\t\u0002\u0002\u0002\u295e\u2960\u0007\u033e", + "\u0002\u0002\u295f\u295e\u0003\u0002\u0002\u0002\u295f\u2960\u0003\u0002", + "\u0002\u0002\u2960\u2962\u0003\u0002\u0002\u0002\u2961\u295b\u0003\u0002", + "\u0002\u0002\u2961\u2962\u0003\u0002\u0002\u0002\u2962\u2966\u0003\u0002", + "\u0002\u0002\u2963\u2964\u0007\u01ec\u0002\u0002\u2964\u2965\u0007\u032a", + "\u0002\u0002\u2965\u2967\t\t\u0002\u0002\u2966\u2963\u0003\u0002\u0002", + "\u0002\u2966\u2967\u0003\u0002\u0002\u0002\u2967\u2969\u0003\u0002\u0002", + "\u0002\u2968\u2952\u0003\u0002\u0002\u0002\u2968\u2969\u0003\u0002\u0002", + "\u0002\u2969\u296b\u0003\u0002\u0002\u0002\u296a\u296c\u0007\u033f\u0002", + "\u0002\u296b\u296a\u0003\u0002\u0002\u0002\u296b\u296c\u0003\u0002\u0002", + "\u0002\u296c\u03af\u0003\u0002\u0002\u0002\u296d\u2970\u0005\u03c6\u01e4", + "\u0002\u296e\u2970\u0005\u02d8\u016d\u0002\u296f\u296d\u0003\u0002\u0002", + "\u0002\u296f\u296e\u0003\u0002\u0002\u0002\u2970\u03b1\u0003\u0002\u0002", + "\u0002\u2971\u2974\u0005\u03c6\u01e4\u0002\u2972\u2974\u0005\u02d8\u016d", + "\u0002\u2973\u2971\u0003\u0002\u0002\u0002\u2973\u2972\u0003\u0002\u0002", + "\u0002\u2974\u03b3\u0003\u0002\u0002\u0002\u2975\u2976\u0007l\u0002", + "\u0002\u2976\u2977\u0007F\u0002\u0002\u2977\u2979\u0007\u0321\u0002", + "\u0002\u2978\u297a\u0007\u033f\u0002\u0002\u2979\u2978\u0003\u0002\u0002", + "\u0002\u2979\u297a\u0003\u0002\u0002\u0002\u297a\u2987\u0003\u0002\u0002", + "\u0002\u297b\u2982\u0007\u0179\u0002\u0002\u297c\u297d\u0007p\u0002", + "\u0002\u297d\u297e\u0007\u032a\u0002\u0002\u297e\u297f\t\u0003\u0002", + "\u0002\u297f\u2980\u0007\u01db\u0002\u0002\u2980\u2981\u0007\u032a\u0002", + "\u0002\u2981\u2983\t\u0003\u0002\u0002\u2982\u297c\u0003\u0002\u0002", + "\u0002\u2982\u2983\u0003\u0002\u0002\u0002\u2983\u2985\u0003\u0002\u0002", + "\u0002\u2984\u2986\u0007\u01b4\u0002\u0002\u2985\u2984\u0003\u0002\u0002", + "\u0002\u2985\u2986\u0003\u0002\u0002\u0002\u2986\u2988\u0003\u0002\u0002", + "\u0002\u2987\u297b\u0003\u0002\u0002\u0002\u2987\u2988\u0003\u0002\u0002", + "\u0002\u2988\u03b5\u0003\u0002\u0002\u0002\u2989\u298b\u0007\u0174\u0002", + "\u0002\u298a\u2989\u0003\u0002\u0002\u0002\u298a\u298b\u0003\u0002\u0002", + "\u0002\u298b\u298c\u0003\u0002\u0002\u0002\u298c\u298d\u0007\u033c\u0002", + "\u0002\u298d\u298e\u0005\u03b8\u01dd\u0002\u298e\u2994\u0007\u033d\u0002", + "\u0002\u298f\u2991\u0007\u033e\u0002\u0002\u2990\u298f\u0003\u0002\u0002", + "\u0002\u2990\u2991\u0003\u0002\u0002\u0002\u2991\u2992\u0003\u0002\u0002", + "\u0002\u2992\u2993\u0007\u02f6\u0002\u0002\u2993\u2995\u0005\u01c0\u00e1", + "\u0002\u2994\u2990\u0003\u0002\u0002\u0002\u2994\u2995\u0003\u0002\u0002", + "\u0002\u2995\u2997\u0003\u0002\u0002\u0002\u2996\u2998\u0007\u033f\u0002", + "\u0002\u2997\u2996\u0003\u0002\u0002\u0002\u2997\u2998\u0003\u0002\u0002", + "\u0002\u2998\u03b7\u0003\u0002\u0002\u0002\u2999\u299a\u0007\u008e\u0002", + "\u0002\u299a\u299b\u0007F\u0002\u0002\u299b\u299c\u0007\u0092\u0002", + "\u0002\u299c\u299d\t\u0003\u0002\u0002\u299d\u299e\u0007\u008b\u0002", + "\u0002\u299e\u29a0\u0005\u03ba\u01de\u0002\u299f\u29a1\u0007\u033f\u0002", + "\u0002\u29a0\u299f\u0003\u0002\u0002\u0002\u29a0\u29a1\u0003\u0002\u0002", + "\u0002\u29a1\u03b9\u0003\u0002\u0002\u0002\u29a2\u29a3\u0005\u03c6\u01e4", + "\u0002\u29a3\u29a4\u0007\u0337\u0002\u0002\u29a4\u29a5\u0005\u03c6\u01e4", + "\u0002\u29a5\u29a6\u0007\u0337\u0002\u0002\u29a6\u29a7\u0005\u03c6\u01e4", + "\u0002\u29a7\u29aa\u0003\u0002\u0002\u0002\u29a8\u29aa\u0005\u03c6\u01e4", + "\u0002\u29a9\u29a2\u0003\u0002\u0002\u0002\u29a9\u29a8\u0003\u0002\u0002", + "\u0002\u29aa\u03bb\u0003\u0002\u0002\u0002\u29ab\u29ac\u0007\u02cd\u0002", + "\u0002\u29ac\u29ad\u0007\u00e5\u0002\u0002\u29ad\u29ae\u0007F\u0002", + "\u0002\u29ae\u29af\t\u0003\u0002\u0002\u29af\u29b0\u0007\u0250\u0002", + "\u0002\u29b0\u29b1\u0007\u0301\u0002\u0002\u29b1\u29b5\u0005\u02d8\u016d", + "\u0002\u29b2\u29b3\u0007\u033c\u0002\u0002\u29b3\u29b4\t\u0003\u0002", + "\u0002\u29b4\u29b6\u0007\u033d\u0002\u0002\u29b5\u29b2\u0003\u0002\u0002", + "\u0002\u29b5\u29b6\u0003\u0002\u0002\u0002\u29b6\u29b8\u0003\u0002\u0002", + "\u0002\u29b7\u29b9\u0007\u033f\u0002\u0002\u29b8\u29b7\u0003\u0002\u0002", + "\u0002\u29b8\u29b9\u0003\u0002\u0002\u0002\u29b9\u03bd\u0003\u0002\u0002", + "\u0002\u29ba\u29bc\u0005\u03c6\u01e4\u0002\u29bb\u29bd\u0007\u0096\u0002", + "\u0002\u29bc\u29bb\u0003\u0002\u0002\u0002\u29bc\u29bd\u0003\u0002\u0002", + "\u0002\u29bd\u29c5\u0003\u0002\u0002\u0002\u29be\u29bf\u0007\u033c\u0002", + "\u0002\u29bf\u29c2\t\u0086\u0002\u0002\u29c0\u29c1\u0007\u033e\u0002", + "\u0002\u29c1\u29c3\u0007\u0322\u0002\u0002\u29c2\u29c0\u0003\u0002\u0002", + "\u0002\u29c2\u29c3\u0003\u0002\u0002\u0002\u29c3\u29c4\u0003\u0002\u0002", + "\u0002\u29c4\u29c6\u0007\u033d\u0002\u0002\u29c5\u29be\u0003\u0002\u0002", + "\u0002\u29c5\u29c6\u0003\u0002\u0002\u0002\u29c6\u29d0\u0003\u0002\u0002", + "\u0002\u29c7\u29c9\u0007d\u0002\u0002\u29c8\u29ca\u0007\u00fe\u0002", + "\u0002\u29c9\u29c8\u0003\u0002\u0002\u0002\u29c9\u29ca\u0003\u0002\u0002", + "\u0002\u29ca\u29d0\u0003\u0002\u0002\u0002\u29cb\u29d0\u0007\u0223\u0002", + "\u0002\u29cc\u29d0\u0007\u02f8\u0002\u0002\u29cd\u29d0\u0007\u02d9\u0002", + "\u0002\u29ce\u29d0\u0007\u01a3\u0002\u0002\u29cf\u29ba\u0003\u0002\u0002", + "\u0002\u29cf\u29c7\u0003\u0002\u0002\u0002\u29cf\u29cb\u0003\u0002\u0002", + "\u0002\u29cf\u29cc\u0003\u0002\u0002\u0002\u29cf\u29cd\u0003\u0002\u0002", + "\u0002\u29cf\u29ce\u0003\u0002\u0002\u0002\u29d0\u03bf\u0003\u0002\u0002", + "\u0002\u29d1\u29d5\u0007\u00df\u0002\u0002\u29d2\u29d5\u0007Y\u0002", + "\u0002\u29d3\u29d5\u0005\u03c2\u01e2\u0002\u29d4\u29d1\u0003\u0002\u0002", + "\u0002\u29d4\u29d2\u0003\u0002\u0002\u0002\u29d4\u29d3\u0003\u0002\u0002", + "\u0002\u29d5\u03c1\u0003\u0002\u0002\u0002\u29d6\u29e6\u0007\u0326\u0002", + "\u0002\u29d7\u29e6\u0007\u0327\u0002\u0002\u29d8\u29da\u0005\u03c4\u01e3", + "\u0002\u29d9\u29d8\u0003\u0002\u0002\u0002\u29d9\u29da\u0003\u0002\u0002", + "\u0002\u29da\u29db\u0003\u0002\u0002\u0002\u29db\u29e6\u0007\u0322\u0002", + "\u0002\u29dc\u29de\u0005\u03c4\u01e3\u0002\u29dd\u29dc\u0003\u0002\u0002", + "\u0002\u29dd\u29de\u0003\u0002\u0002\u0002\u29de\u29df\u0003\u0002\u0002", + "\u0002\u29df\u29e6\tp\u0002\u0002\u29e0\u29e2\u0005\u03c4\u01e3\u0002", + "\u29e1\u29e0\u0003\u0002\u0002\u0002\u29e1\u29e2\u0003\u0002\u0002\u0002", + "\u29e2\u29e3\u0003\u0002\u0002\u0002\u29e3\u29e4\u0007\u033b\u0002\u0002", + "\u29e4\u29e6\t\u0087\u0002\u0002\u29e5\u29d6\u0003\u0002\u0002\u0002", + "\u29e5\u29d7\u0003\u0002\u0002\u0002\u29e5\u29d9\u0003\u0002\u0002\u0002", + "\u29e5\u29dd\u0003\u0002\u0002\u0002\u29e5\u29e1\u0003\u0002\u0002\u0002", + "\u29e6\u03c3\u0003\u0002\u0002\u0002\u29e7\u29e8\tm\u0002\u0002\u29e8", + "\u03c5\u0003\u0002\u0002\u0002\u29e9\u29ed\u0005\u03c8\u01e5\u0002\u29ea", + "\u29ed\u0007\u031e\u0002\u0002\u29eb\u29ed\u0007\u0320\u0002\u0002\u29ec", + "\u29e9\u0003\u0002\u0002\u0002\u29ec\u29ea\u0003\u0002\u0002\u0002\u29ec", + "\u29eb\u0003\u0002\u0002\u0002\u29ed\u03c7\u0003\u0002\u0002\u0002\u29ee", + "\u29ef\t\u0088\u0002\u0002\u29ef\u03c9\u0003\u0002\u0002\u0002\u29f0", + "\u2a00\u0007\u032a\u0002\u0002\u29f1\u2a00\u0007\u032b\u0002\u0002\u29f2", + "\u2a00\u0007\u032c\u0002\u0002\u29f3\u29f4\u0007\u032c\u0002\u0002\u29f4", + "\u2a00\u0007\u032a\u0002\u0002\u29f5\u29f6\u0007\u032b\u0002\u0002\u29f6", + "\u2a00\u0007\u032a\u0002\u0002\u29f7\u29f8\u0007\u032c\u0002\u0002\u29f8", + "\u2a00\u0007\u032b\u0002\u0002\u29f9\u29fa\u0007\u032d\u0002\u0002\u29fa", + "\u2a00\u0007\u032a\u0002\u0002\u29fb\u29fc\u0007\u032d\u0002\u0002\u29fc", + "\u2a00\u0007\u032b\u0002\u0002\u29fd\u29fe\u0007\u032d\u0002\u0002\u29fe", + "\u2a00\u0007\u032c\u0002\u0002\u29ff\u29f0\u0003\u0002\u0002\u0002\u29ff", + "\u29f1\u0003\u0002\u0002\u0002\u29ff\u29f2\u0003\u0002\u0002\u0002\u29ff", + "\u29f3\u0003\u0002\u0002\u0002\u29ff\u29f5\u0003\u0002\u0002\u0002\u29ff", + "\u29f7\u0003\u0002\u0002\u0002\u29ff\u29f9\u0003\u0002\u0002\u0002\u29ff", + "\u29fb\u0003\u0002\u0002\u0002\u29ff\u29fd\u0003\u0002\u0002\u0002\u2a00", + "\u03cb\u0003\u0002\u0002\u0002\u2a01\u2a02\t\u0089\u0002\u0002\u2a02", + "\u03cd\u0003\u0002\u0002\u0002\u2a03\u2a05\u0007\u0322\u0002\u0002\u2a04", + "\u2a06\t\u008a\u0002\u0002\u2a05\u2a04\u0003\u0002\u0002\u0002\u2a05", + "\u2a06\u0003\u0002\u0002\u0002\u2a06\u03cf\u0003\u0002\u0002\u0002\u05f5", + "\u03d3\u03dc\u03e0\u03e6\u03e9\u03ed\u03f1\u03fa\u0401\u04a2\u04a9\u04b7", + "\u04bb\u04be\u04c2\u04c6\u04ca\u04cf\u04d4\u04d6\u04da\u04dd\u04e4\u04e7", + "\u04f0\u04f3\u04fe\u0501\u0506\u050b\u050e\u0513\u0517\u051a\u051e\u0521", + "\u0524\u052b\u052f\u0531\u0536\u053c\u0540\u054d\u0553\u0556\u055f\u0562", + "\u0576\u057e\u0583\u0586\u058b\u058e\u0593\u059b\u05a0\u05a3\u05a8\u05ae", + "\u05b3\u05c4\u05c7\u05ca\u05cd\u05d2\u05db\u05ea\u05fb\u0606\u060c\u061b", + "\u062a\u0633\u0637\u063c\u0642\u0648\u064b\u0650\u0655\u065d\u0667\u067a", + "\u0682\u068f\u0691\u069d\u069f\u06a6\u06af\u06b5\u06be\u06cd\u06d7\u06e1", + "\u0709\u0720\u0744\u0756\u0759\u075e\u0761\u0766\u0769\u076e\u0771\u0776", + "\u0779\u0781\u0784\u078c\u0799\u07a4\u07a9\u07ad\u07b3\u07ca\u07d6\u07e1", + "\u07e6\u07ea\u07f0\u07f2\u07ff\u0816\u081d\u0826\u082b\u082e\u0833\u0836", + "\u083b\u0840\u085c\u0863\u0868\u086f\u0871\u087c\u0882\u0891\u089f\u08a2", + "\u08a4\u08a9\u08ad\u08b0\u08b2\u08b8\u08bb\u08bd\u08c3\u08c5\u08db\u08e3", + "\u08eb\u08ed\u08ef\u08f8\u090d\u091a\u0929\u092d\u0950\u0953\u0958\u096a", + "\u096d\u0972\u098c\u099a\u099f\u09a7\u09ac\u09b3\u09c8\u09ed\u09f2\u0a05", + "\u0a11\u0a14\u0a19\u0a1c\u0a22\u0a31\u0a36\u0a3e\u0a41\u0a46\u0a4b\u0a4e", + "\u0a66\u0a6d\u0a72\u0a77\u0a7c\u0a7e\u0a85\u0a92\u0a98\u0a9d\u0aa5\u0ab5", + "\u0abc\u0ac1\u0ac6\u0ac9\u0acf\u0ad5\u0ada\u0adf\u0ae4\u0ae7\u0aed\u0af3", + "\u0afe\u0b01\u0b0b\u0b11\u0b15\u0b19\u0b36\u0b43\u0b49\u0b53\u0b56\u0b6a", + "\u0b6e\u0b72\u0b77\u0b86\u0b8d\u0b96\u0b9e\u0ba1\u0ba6\u0bab\u0bb3\u0bb9", + "\u0bbd\u0bc3\u0bc8\u0bcc\u0bd3\u0bdb\u0be3\u0bec\u0bf1\u0bf5\u0bf8\u0bfc", + "\u0c02\u0c07\u0c0f\u0c17\u0c1d\u0c23\u0c26\u0c2b\u0c2e\u0c35\u0c37\u0c3a", + "\u0c40\u0c43\u0c48\u0c4b\u0c50\u0c53\u0c58\u0c5b\u0c60\u0c63\u0c66\u0c69", + "\u0c70\u0c74\u0c7b\u0c82\u0c88\u0c95\u0c99\u0c9e\u0ca8\u0cb1\u0cb5\u0cc1", + "\u0cc7\u0ccc\u0cce\u0ce2\u0ce6\u0cee\u0cf7\u0cfd\u0d03\u0d0b\u0d0d\u0d17", + "\u0d1b\u0d1e\u0d22\u0d27\u0d2d\u0d30\u0d34\u0d3c\u0d3e\u0d41\u0d49\u0d51", + "\u0d58\u0d5f\u0d61\u0d63\u0d68\u0d6e\u0d71\u0d73\u0d75\u0d78\u0d7d\u0d80", + "\u0d85\u0d94\u0d9b\u0da2\u0da4\u0da6\u0dab\u0db1\u0db4\u0db6\u0db8\u0dbb", + "\u0dc0\u0dc3\u0dc8\u0dd5\u0dda\u0de3\u0de8\u0dee\u0df2\u0df6\u0e07\u0e09", + "\u0e13\u0e18\u0e1a\u0e1e\u0e24\u0e2c\u0e31\u0e34\u0e3c\u0e3f\u0e44\u0e49", + "\u0e4e\u0e53\u0e58\u0e5d\u0e61\u0e66\u0e71\u0e76\u0e79\u0e7c\u0e81\u0e84", + "\u0e89\u0e8c\u0e91\u0e94\u0e99\u0e9c\u0ea1\u0ea4\u0ea9\u0eaf\u0eb4\u0eb7", + "\u0ebc\u0ec3\u0ec5\u0ecb\u0ed4\u0ed9\u0edb\u0ee7\u0eed\u0ef9\u0efc\u0f01", + "\u0f03\u0f0d\u0f12\u0f14\u0f18\u0f1e\u0f30\u0f32\u0f41\u0f53\u0f5b\u0f65", + "\u0f75\u0f8a\u0f95\u0f9b\u0fa4\u0fad\u0fb3\u0fbc\u0fc1\u0fc4\u0fc9\u0fcc", + "\u0fd1\u0fd4\u0fdc\u0fe2\u0fe6\u0fed\u0ff3\u0ff7\u0ffa\u0ffc\u0fff\u1004", + "\u1007\u100c\u100f\u1014\u1017\u101c\u101f\u102e\u1039\u1045\u104c\u1053", + "\u1057\u105c\u105f\u1064\u1067\u106c\u106f\u1078\u107f\u108e\u1092\u1097", + "\u10a2\u10ac\u10b8\u10be\u10c0\u10c8\u10d1\u10d6\u10e1\u10e4\u10e8\u10f0", + "\u10f4\u10f8\u1100\u1105\u110d\u1112\u1116\u1118\u111d\u1126\u1129\u112e", + "\u1135\u113b\u113d\u1142\u1148\u114e\u1153\u1159\u1160\u1165\u116a\u116f", + "\u1172\u1176\u117a\u117e\u1182\u1187\u118b\u118f\u1199\u119f\u11a6\u11a9", + "\u11af\u11b5\u11ba\u11bc\u11c2\u11c4\u11c9\u11cf\u11d5\u11da\u11dc\u11e0", + "\u11e4\u11e7\u11f5\u11fa\u11fe\u120b\u120e\u1210\u1218\u1222\u1228\u122f", + "\u1232\u1238\u123e\u1243\u1245\u124b\u124d\u1252\u1258\u125e\u1264\u1269", + "\u126b\u126f\u1273\u1276\u1284\u1289\u128d\u129a\u129d\u129f\u12a7\u12b2", + "\u12bb\u12c4\u12cf\u12d8\u12e1\u12ed\u12f1\u12f6\u12f8\u12fa\u12ff\u1303", + "\u1308\u130a\u130c\u131a\u131f\u1335\u134b\u1350\u135d\u1365\u1379\u137c", + "\u1382\u138a\u1391\u1396\u139a\u139e\u13a1\u13a8\u13ba\u13bc\u13d0\u13d8", + "\u13dd\u13ef\u13fe\u1400\u1407\u140e\u1413\u1418\u141e\u1423\u1425\u142c", + "\u1432\u1438\u143b\u1441\u144b\u144e\u1455\u1458\u145d\u145f\u1467\u146b", + "\u1471\u1476\u1478\u147b\u1482\u1488\u148f\u1492\u1498\u149d\u149f\u14a2", + "\u14aa\u14b0\u14b7\u14ba\u14c0\u14c5\u14c7\u14cf\u14d7\u14dd\u14e2\u14e4", + "\u14ee\u14f3\u14fd\u1503\u150f\u1511\u1518\u151e\u1524\u152a\u152f\u1531", + "\u1538\u1540\u1546\u1554\u1556\u1559\u155e\u1560\u156c\u1572\u1580\u1582", + "\u1585\u158a\u158d\u1592\u1594\u159d\u15a4\u15aa\u15ad\u15b2\u15b9\u15bb", + "\u15c1\u15c3\u15cb\u15cd\u15d3\u15d5\u15db\u15dd\u15e4\u15e7\u15e9\u15ec", + "\u15f0\u15f2\u15fb\u1601\u1605\u160d\u1614\u161a\u161c\u1627\u162c\u1632", + "\u1636\u1640\u1648\u1654\u1657\u165f\u1661\u1664\u1668\u166b\u1675\u167b", + "\u1683\u1687\u168b\u1694\u169a\u169e\u16a1\u16ac\u16b0\u16b7\u16bc\u16bf", + "\u16c7\u16cb\u16ce\u16d2\u16d5\u16d9\u16e0\u16e4\u16e6\u16e8\u16eb\u16ee", + "\u16f1\u16f7\u16fa\u1702\u1704\u1707\u170b\u170e\u1714\u1717\u171b\u171e", + "\u1721\u1728\u172b\u1732\u1738\u173c\u1746\u1749\u174c\u1750\u1753\u1756", + "\u1759\u175d\u1760\u1768\u176a\u176e\u1771\u1779\u177d\u1781\u1788\u178c", + "\u178e\u1790\u1793\u1796\u1799\u17a1\u17a7\u17ad\u17af\u17b3\u17b6\u17bb", + "\u17c0\u17c3\u17cb\u17cf\u17d6\u17d9\u17e2\u17e5\u17e9\u17f1\u17f4\u17f8", + "\u17fb\u1809\u180d\u1810\u1814\u1817\u181c\u181f\u1825\u1828\u182f\u1833", + "\u1835\u183d\u1840\u1844\u184b\u1850\u1853\u185f\u1862\u1868\u186f\u1874", + "\u1879\u1880\u1887\u188a\u1892\u189a\u189d\u18a5\u18b0\u18b3\u18bd\u18c4", + "\u18c9\u18cc\u18d6\u18d9\u18dc\u18e4\u18ef\u18f2\u18f5\u18fb\u1900\u1904", + "\u190e\u1911\u1914\u191a\u1920\u1928\u192b\u192f\u1933\u1936\u193b\u1949", + "\u1959\u195d\u1963\u1965\u1968\u196c\u1971\u1976\u197e\u1983\u1988\u198e", + "\u1993\u1996\u199f\u19a9\u19ac\u19b5\u19bd\u19c0\u19c7\u19ca\u19f8\u19fc", + "\u19ff\u1a05\u1a11\u1a13\u1a16\u1a2f\u1a3a\u1a42\u1a4d\u1a52\u1a55\u1a5d", + "\u1a67\u1a6e\u1a75\u1a77\u1a83\u1a8e\u1a92\u1a97\u1a9a\u1a9c\u1a9f\u1aab", + "\u1aad\u1aaf\u1ab2\u1ab7\u1aba\u1abf\u1ac9\u1acd\u1ad2\u1ad5\u1ad7\u1ada", + "\u1ae6\u1ae8\u1aea\u1aed\u1af3\u1afd\u1b11\u1b17\u1b30\u1b32\u1b4c\u1b52", + "\u1b5d\u1b65\u1b68\u1b76\u1b7e\u1b85\u1b9c\u1ba9\u1baf\u1bb6\u1bbe\u1bc1", + "\u1bc4\u1bcd\u1bd7\u1bde\u1be2\u1be6\u1bec\u1bf3\u1bf7\u1bfd\u1c04\u1c0b", + "\u1c0e\u1c14\u1c1b\u1c1f\u1c24\u1c29\u1c2e\u1c36\u1c3a\u1c40\u1c47\u1c4b", + "\u1c54\u1c5c\u1c62\u1c68\u1c79\u1c7d\u1c85\u1c89\u1c91\u1c95\u1c9a\u1c9e", + "\u1ca5\u1cab\u1cad\u1cb1\u1cb5\u1cb9\u1cbc\u1cc0\u1cc6\u1cca\u1ccc\u1cd3", + "\u1cda\u1cdd\u1ce0\u1ce7\u1cec\u1cf1\u1cf5\u1cfb\u1cff\u1d01\u1d06\u1d0b", + "\u1d0f\u1d14\u1d1a\u1d1e\u1d22\u1d24\u1d28\u1d2c\u1d30\u1d34\u1d3a\u1d3d", + "\u1d43\u1d47\u1d4b\u1d51\u1d57\u1d59\u1d5c\u1d60\u1d64\u1d68\u1d6e\u1d71", + "\u1d77\u1d7d\u1d80\u1d86\u1d89\u1d8f\u1d92\u1d96\u1d9a\u1d9e\u1da3\u1da6", + "\u1daa\u1dae\u1dbf\u1dc1\u1dc3\u1dc6\u1dcd\u1dd2\u1dd6\u1ddc\u1de0\u1de2", + "\u1de7\u1dec\u1df0\u1df5\u1dfb\u1dff\u1e03\u1e05\u1e09\u1e0d\u1e11\u1e15", + "\u1e1b\u1e1e\u1e24\u1e28\u1e2c\u1e32\u1e38\u1e3a\u1e3d\u1e41\u1e45\u1e49", + "\u1e4f\u1e52\u1e58\u1e5e\u1e61\u1e67\u1e6a\u1e70\u1e73\u1e77\u1e7b\u1e7f", + "\u1e84\u1e87\u1e8b\u1e8f\u1e95\u1e98\u1e9c\u1ead\u1eaf\u1eb1\u1eb4\u1ec2", + "\u1ec8\u1ed0\u1ed7\u1ed9\u1edc\u1efd\u1f01\u1f05\u1f0c\u1f17\u1f1b\u1f22", + "\u1f25\u1f28\u1f30\u1f35\u1f3a\u1f3d\u1f3f\u1f43\u1f47\u1f4a\u1f4e\u1f54", + "\u1f59\u1f60\u1f62\u1f66\u1f6e\u1f74\u1f78\u1f7b\u1f84\u1f87\u1f8d\u1f94", + "\u1f99\u1fa1\u1fa6\u1fb2\u1fb4\u1fbf\u1fc6\u1fd0\u1fe7\u1ff4\u2004\u2009", + "\u2010\u2013\u2017\u2019\u202a\u2039\u2041\u204a\u2052\u205b\u2066\u206a", + "\u206c\u206e\u2074\u2079\u2080\u208d\u208f\u2091\u2094\u2097\u209e\u20a1", + "\u20a7\u20ac\u20ae\u20b1\u20b7\u20bf\u20c1\u20c4\u20c8\u20cb\u20d5\u20d8", + "\u20dc\u20df\u20e5\u20e8\u20ea\u20ee\u20f3\u20f7\u20fc\u2101\u2109\u210d", + "\u2110\u2115\u211d\u2122\u212c\u2137\u213c\u2142\u2148\u214c\u214f\u2153", + "\u2157\u215f\u2164\u2166\u2169\u216e\u2177\u217b\u2180\u2183\u2186\u218c", + "\u2194\u219c\u219f\u21a2\u21a6\u21ab\u21ae\u21b4\u21b8\u21be\u21c6\u21cc", + "\u21ce\u21d1\u21e0\u21e3\u21e6\u21e8\u21f3\u21fe\u2207\u2211\u221b\u221d", + "\u221f\u2222\u2225\u2230\u2232\u2234\u2237\u223c\u2247\u2250\u2253\u2256", + "\u225f\u2262\u2265\u226c\u226f\u227e\u2281\u2288\u2298\u229c\u22a6\u22b9", + "\u22bb\u22c2\u22c9\u22cd\u22d5\u22d9\u22dd\u22e3\u22ed\u22f7\u22fe\u2305", + "\u230e\u2315\u231c\u2325\u2329\u2333\u233a\u2342\u234a\u234e\u2364\u236d", + "\u2373\u2379\u237f\u2389\u2390\u2395\u239a\u239e\u23a5\u23a9\u23ac\u23b1", + "\u23b5\u23b9\u23be\u23c5\u23c8\u23cc\u23d1\u23d5\u23de\u23e5\u23ee\u23fa", + "\u23fc\u2406\u2409\u240e\u2417\u2419\u241b\u2420\u2428\u242d\u2435\u243a", + "\u2440\u244a\u244c\u2450\u2454\u2456\u245f\u2461\u2465\u2470\u2492\u24a2", + "\u24a9\u24ab\u24b2\u24bb\u24c3\u24ca\u24d1\u24d4\u24d7\u24de\u24e5\u24e8", + "\u24ea\u24f2\u24f4\u24fa\u2501\u2509\u250f\u2514\u2518\u251c\u2521\u2523", + "\u252b\u252d\u2531\u2538\u253a\u2541\u2543\u254c\u2554\u255b\u2561\u256c", + "\u2570\u2572\u2575\u258d\u25a6\u25ab\u25bf\u25c3\u25c7\u25d7\u25eb\u2625", + "\u2629\u2659\u2669\u266b\u2672\u2678\u2685\u2694\u269f\u26a4\u26ae\u26b7", + "\u26d9\u26de\u26e4\u26e7\u26ec\u26f1\u26fa\u26ff\u2705\u270e\u2718\u271b", + "\u2729\u272f\u2737\u273b\u2743\u274a\u2757\u275f\u276c\u2773\u2779\u277d", + "\u278e\u279d\u279f\u27a4\u27a7\u27b0\u27b3\u27b6\u27c3\u27c7\u27cf\u27d5", + "\u27dd\u27e4\u27ea\u27f9\u2802\u2808\u280e\u2811\u2815\u281c\u2824\u2827", + "\u282d\u2833\u2835\u283b\u283e\u2840\u2846\u2848\u2856\u285d\u2866\u286d", + "\u2879\u2880\u2887\u288e\u2894\u289b\u289e\u28a3\u28aa\u28b2\u28b6\u28b9", + "\u28c1\u28c5\u28c8\u28cc\u28d1\u28d7\u28dd\u28e3\u28e9\u28ef\u28f5\u28fb", + "\u28fe\u2902\u2907\u290b\u2913\u2918\u291f\u2928\u292a\u2931\u293d\u2942", + "\u294d\u2957\u2959\u295f\u2961\u2966\u2968\u296b\u296f\u2973\u2979\u2982", + "\u2985\u2987\u298a\u2990\u2994\u2997\u29a0\u29a9\u29b5\u29b8\u29bc\u29c2", + "\u29c5\u29c9\u29cf\u29d4\u29d9\u29dd\u29e1\u29e5\u29ec\u29ff\u2a05"].join(""); + + +var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); + +var sharedContextCache = new antlr4.PredictionContextCache(); + +var literalNames = [ null, "'ABSENT'", "'ADD'", "'AES'", "'ALL'", "'ALLOW_CONNECTIONS'", + "'ALLOW_MULTIPLE_EVENT_LOSS'", "'ALLOW_SINGLE_EVENT_LOSS'", + "'ALTER'", "'AND'", "'ANONYMOUS'", "'ANY'", "'APPEND'", + "'APPLICATION'", "'AS'", "'ASC'", "'ASYMMETRIC'", "'ASYNCHRONOUS_COMMIT'", + "'AUTHORIZATION'", "'AUTHENTICATION'", "'AUTOMATED_BACKUP_PREFERENCE'", + "'AUTOMATIC'", "'AVAILABILITY_MODE'", "'\\'", "'BACKUP'", + "'BEFORE'", "'BEGIN'", "'BETWEEN'", "'BLOCK'", "'BLOCKSIZE'", + "'BLOCKING_HIERARCHY'", "'BREAK'", "'BROWSE'", "'BUFFER'", + "'BUFFERCOUNT'", "'BULK'", "'BY'", "'CACHE'", "'CALLED'", + "'CASCADE'", "'CASE'", "'CERTIFICATE'", "'CHANGETABLE'", + "'CHANGES'", "'CHECK'", "'CHECKPOINT'", "'CHECK_POLICY'", + "'CHECK_EXPIRATION'", "'CLASSIFIER_FUNCTION'", "'CLOSE'", + "'CLUSTER'", "'CLUSTERED'", "'COALESCE'", "'COLLATE'", + "'COLUMN'", "'COMPRESSION'", "'COMMIT'", "'COMPUTE'", + "'CONFIGURATION'", "'CONSTRAINT'", "'CONTAINMENT'", + "'CONTAINS'", "'CONTAINSTABLE'", "'CONTEXT'", "'CONTINUE'", + "'CONTINUE_AFTER_ERROR'", "'CONTRACT'", "'CONTRACT_NAME'", + "'CONVERSATION'", null, "'COPY_ONLY'", "'CREATE'", + "'CROSS'", "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_TIME'", + "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", "'CURSOR'", + "'CYCLE'", "'DATA_COMPRESSION'", "'DATA_SOURCE'", "'DATABASE'", + "'DATABASE_MIRRORING'", "'DBCC'", "'DEALLOCATE'", "'DECLARE'", + "'DEFAULT'", "'DEFAULT_DATABASE'", "'DEFAULT_SCHEMA'", + "'DELETE'", "'DENY'", "'DESC'", "'DIAGNOSTICS'", "'DIFFERENTIAL'", + "'DISK'", "'DISTINCT'", "'DISTRIBUTED'", "'DOUBLE'", + "'\\\\'", "'//'", "'DROP'", "'DTC_SUPPORT'", "'DUMP'", + "'ELSE'", "'ENABLED'", "'END'", "'ENDPOINT'", "'ERRLVL'", + "'ESCAPE'", "'ERROR'", "'EVENT'", null, "'EVENT_RETENTION_MODE'", + "'EXCEPT'", "'EXECUTABLE_FILE'", null, "'EXISTS'", + "'EXPIREDATE'", "'EXIT'", "'EXTENSION'", "'EXTERNAL'", + "'EXTERNAL_ACCESS'", "'FAILOVER'", "'FAILURECONDITIONLEVEL'", + "'FAN_IN'", "'FETCH'", "'FILE'", "'FILENAME'", "'FILLFACTOR'", + "'FILE_SNAPSHOT'", "'FOR'", "'FORCESEEK'", "'FORCE_SERVICE_ALLOW_DATA_LOSS'", + "'FOREIGN'", "'FREETEXT'", "'FREETEXTTABLE'", "'FROM'", + "'FULL'", "'FUNCTION'", "'GET'", "'GOTO'", "'GOVERNOR'", + "'GRANT'", "'GROUP'", "'HAVING'", "'HASHED'", "'HEALTHCHECKTIMEOUT'", + "'IDENTITY'", "'IDENTITYCOL'", "'IDENTITY_INSERT'", + "'IF'", "'IIF'", "'IN'", "'INCLUDE'", "'INCREMENT'", + "'INDEX'", "'INFINITE'", "'INIT'", "'INNER'", "'INSERT'", + "'INSTEAD'", "'INTERSECT'", "'INTO'", null, null, "'IS'", + "'ISNULL'", "'JOIN'", "'KERBEROS'", "'KEY'", "'KEY_PATH'", + "'KEY_STORE_PROVIDER_NAME'", "'KILL'", "'LANGUAGE'", + "'LEFT'", "'LIBRARY'", "'LIFETIME'", "'LIKE'", "'LINENO'", + "'LINUX'", "'LISTENER_IP'", "'LISTENER_PORT'", "'LOAD'", + "'LOCAL_SERVICE_NAME'", "'LOG'", "'MATCHED'", "'MASTER'", + "'MAX_MEMORY'", "'MAXTRANSFER'", "'MAXVALUE'", "'MAX_DISPATCH_LATENCY'", + "'MAX_EVENT_SIZE'", "'MAX_SIZE'", "'MAX_OUTSTANDING_IO_PER_VOLUME'", + "'MEDIADESCRIPTION'", "'MEDIANAME'", "'MEMBER'", "'MEMORY_PARTITION_MODE'", + "'MERGE'", "'MESSAGE_FORWARDING'", "'MESSAGE_FORWARD_SIZE'", + "'MINVALUE'", "'MIRROR'", "'MUST_CHANGE'", "'NATIONAL'", + "'NEGOTIATE'", "'NOCHECK'", "'NOFORMAT'", "'NOINIT'", + "'NONCLUSTERED'", "'NONE'", "'NOREWIND'", "'NOSKIP'", + "'NOUNLOAD'", "'NO_CHECKSUM'", "'NO_COMPRESSION'", + "'NO_EVENT_LOSS'", "'NOT'", "'NOTIFICATION'", "'NTLM'", + "'NULL'", "'NULLIF'", "'OF'", "'OFF'", "'OFFSETS'", + "'OLD_PASSWORD'", "'ON'", "'ON_FAILURE'", "'OPEN'", + "'OPENDATASOURCE'", "'OPENQUERY'", "'OPENROWSET'", + "'OPENXML'", "'OPTION'", "'OR'", "'ORDER'", "'OUTER'", + "'OVER'", "'PAGE'", "'PARAM_NODE'", "'PARTIAL'", "'PASSWORD'", + "'PERCENT'", "'PERMISSION_SET'", "'PER_CPU'", "'PER_DB'", + "'PER_NODE'", "'PIVOT'", "'PLAN'", "'PLATFORM'", "'POLICY'", + "'PRECISION'", "'PREDICATE'", "'PRIMARY'", "'PRINT'", + "'PROC'", "'PROCEDURE'", "'PROCESS'", "'PUBLIC'", "'PYTHON'", + "'R'", "'RAISERROR'", "'RAW'", "'READ'", "'READTEXT'", + "'READ_WRITE_FILEGROUPS'", "'RECONFIGURE'", "'REFERENCES'", + "'REGENERATE'", "'RELATED_CONVERSATION'", "'RELATED_CONVERSATION_GROUP'", + "'REPLICATION'", "'REQUIRED'", "'RESET'", "'RESTART'", + "'RESTORE'", "'RESTRICT'", "'RESUME'", "'RETAINDAYS'", + "'RETURN'", "'RETURNS'", "'REVERT'", "'REVOKE'", "'REWIND'", + "'RIGHT'", "'ROLLBACK'", "'ROLE'", "'ROWCOUNT'", "'ROWGUIDCOL'", + "'RSA_512'", "'RSA_1024'", "'RSA_2048'", "'RSA_3072'", + "'RSA_4096'", "'SAFETY'", "'RULE'", "'SAFE'", "'SAVE'", + "'SCHEDULER'", "'SCHEMA'", "'SCHEME'", "'SECURITYAUDIT'", + "'SELECT'", "'SEMANTICKEYPHRASETABLE'", "'SEMANTICSIMILARITYDETAILSTABLE'", + "'SEMANTICSIMILARITYTABLE'", "'SERVER'", "'SERVICE'", + "'SERVICE_BROKER'", "'SERVICE_NAME'", "'SESSION'", + "'SESSION_USER'", "'SET'", "'SETUSER'", "'SHUTDOWN'", + "'SID'", "'SKIP'", "'SOFTNUMA'", "'SOME'", "'SOURCE'", + "'SPECIFICATION'", "'SPLIT'", "'SQLDUMPERFLAGS'", "'SQLDUMPERPATH'", + "'SQLDUMPERTIMEOUTS'", "'STATISTICS'", "'STATE'", "'STATS'", + "'START'", "'STARTED'", "'STARTUP_STATE'", "'STOP'", + "'STOPPED'", "'STOP_ON_ERROR'", "'SUPPORTED'", "'SYSTEM_USER'", + "'TABLE'", "'TABLESAMPLE'", "'TAPE'", "'TARGET'", "'TCP'", + "'TEXTSIZE'", "'THEN'", "'TO'", "'TOP'", "'TRACK_CAUSALITY'", + "'TRAN'", "'TRANSACTION'", "'TRANSFER'", "'TRIGGER'", + "'TRUNCATE'", "'TSEQUAL'", "'UNCHECKED'", "'UNION'", + "'UNIQUE'", "'UNLOCK'", "'UNPIVOT'", "'UNSAFE'", "'UPDATE'", + "'UPDATETEXT'", "'URL'", "'USE'", "'USED'", "'USER'", + "'VALUES'", "'VARYING'", "'VERBOSELOGGING'", "'VIEW'", + "'VISIBILITY'", "'WAITFOR'", "'WHEN'", "'WHERE'", "'WHILE'", + "'WINDOWS'", "'WITH'", "'WITHIN'", "'WITHOUT'", "'WITNESS'", + "'WRITETEXT'", "'ABSOLUTE'", "'ACCENT_SENSITIVITY'", + "'ACTION'", "'ACTIVATION'", "'ACTIVE'", "'ADDRESS'", + "'AES_128'", "'AES_192'", "'AES_256'", "'AFFINITY'", + "'AFTER'", "'AGGREGATE'", "'ALGORITHM'", "'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'", + "'ALLOW_SNAPSHOT_ISOLATION'", "'ALLOWED'", "'ANSI_NULL_DEFAULT'", + "'ANSI_NULLS'", "'ANSI_PADDING'", "'ANSI_WARNINGS'", + "'APPLICATION_LOG'", "'APPLY'", "'ARITHABORT'", "'ASSEMBLY'", + "'AUDIT'", "'AUDIT_GUID'", "'AUTO'", "'AUTO_CLEANUP'", + "'AUTO_CLOSE'", "'AUTO_CREATE_STATISTICS'", "'AUTO_SHRINK'", + "'AUTO_UPDATE_STATISTICS'", "'AUTO_UPDATE_STATISTICS_ASYNC'", + "'AVAILABILITY'", "'AVG'", "'BACKUP_PRIORITY'", "'BEGIN_DIALOG'", + "'BIGINT'", "'BINARY BASE64'", "'BINARY_CHECKSUM'", + "'BINDING'", "'BLOB_STORAGE'", "'BROKER'", "'BROKER_INSTANCE'", + "'BULK_LOGGED'", "'CALLER'", "'CAP_CPU_PERCENT'", null, + "'CATALOG'", "'CATCH'", "'CHANGE_RETENTION'", "'CHANGE_TRACKING'", + "'CHECKSUM'", "'CHECKSUM_AGG'", "'CLEANUP'", "'COLLECTION'", + "'COLUMN_MASTER_KEY'", "'COMMITTED'", "'COMPATIBILITY_LEVEL'", + "'CONCAT'", "'CONCAT_NULL_YIELDS_NULL'", "'CONTENT'", + "'CONTROL'", "'COOKIE'", "'COUNT'", "'COUNT_BIG'", + "'COUNTER'", "'CPU'", "'CREATE_NEW'", "'CREATION_DISPOSITION'", + "'CREDENTIAL'", "'CRYPTOGRAPHIC'", "'CURSOR_CLOSE_ON_COMMIT'", + "'CURSOR_DEFAULT'", "'DATA'", "'DATE_CORRELATION_OPTIMIZATION'", + "'DATEADD'", "'DATEDIFF'", "'DATENAME'", "'DATEPART'", + "'DAYS'", "'DB_CHAINING'", "'DB_FAILOVER'", "'DECRYPTION'", + null, "'DEFAULT_FULLTEXT_LANGUAGE'", "'DEFAULT_LANGUAGE'", + "'DELAY'", "'DELAYED_DURABILITY'", "'DELETED'", "'DENSE_RANK'", + "'DEPENDENTS'", "'DES'", "'DESCRIPTION'", "'DESX'", + "'DHCP'", "'DIALOG'", "'DIRECTORY_NAME'", "'DISABLE'", + "'DISABLE_BROKER'", "'DISABLED'", null, "'DOCUMENT'", + "'DYNAMIC'", "'ELEMENTS'", "'EMERGENCY'", "'EMPTY'", + "'ENABLE'", "'ENABLE_BROKER'", "'ENCRYPTED_VALUE'", + "'ENCRYPTION'", "'ENDPOINT_URL'", "'ERROR_BROKER_CONVERSATIONS'", + "'EXCLUSIVE'", "'EXECUTABLE'", "'EXIST'", "'EXPAND'", + "'EXPIRY_DATE'", "'EXPLICIT'", "'FAIL_OPERATION'", + "'FAILOVER_MODE'", "'FAILURE'", "'FAILURE_CONDITION_LEVEL'", + "'FAST'", "'FAST_FORWARD'", "'FILEGROUP'", "'FILEGROWTH'", + "'FILEPATH'", "'FILESTREAM'", "'FILTER'", "'FIRST'", + "'FIRST_VALUE'", "'FOLLOWING'", "'FORCE'", "'FORCE_FAILOVER_ALLOW_DATA_LOSS'", + "'FORCED'", "'FORMAT'", "'FORWARD_ONLY'", "'FULLSCAN'", + "'FULLTEXT'", "'GB'", "'GETDATE'", "'GETUTCDATE'", + "'GLOBAL'", "'GO'", "'GROUP_MAX_REQUESTS'", "'GROUPING'", + "'GROUPING_ID'", "'HADR'", "'HASH'", "'HEALTH_CHECK_TIMEOUT'", + "'HIGH'", "'HONOR_BROKER_PRIORITY'", "'HOURS'", "'IDENTITY_VALUE'", + "'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'", "'IMMEDIATE'", + "'IMPERSONATE'", "'IMPORTANCE'", "'INCLUDE_NULL_VALUES'", + "'INCREMENTAL'", "'INITIATOR'", "'INPUT'", "'INSENSITIVE'", + "'INSERTED'", "'INT'", "'IP'", "'ISOLATION'", "'JOB'", + "'JSON'", "'KB'", "'KEEP'", "'KEEPFIXED'", "'KEY_SOURCE'", + "'KEYS'", "'KEYSET'", "'LAG'", "'LAST'", "'LAST_VALUE'", + "'LEAD'", "'LEVEL'", "'LIST'", "'LISTENER'", "'LISTENER_URL'", + "'LOB_COMPACTION'", "'LOCAL'", "'LOCATION'", "'LOCK'", + "'LOCK_ESCALATION'", "'LOGIN'", "'LOOP'", "'LOW'", + "'MANUAL'", "'MARK'", "'MATERIALIZED'", "'MAX'", "'MAX_CPU_PERCENT'", + "'MAX_DOP'", "'MAX_FILES'", "'MAX_IOPS_PER_VOLUME'", + "'MAX_MEMORY_PERCENT'", "'MAX_PROCESSES'", "'MAX_QUEUE_READERS'", + "'MAX_ROLLOVER_FILES'", "'MAXDOP'", "'MAXRECURSION'", + "'MAXSIZE'", "'MB'", "'MEDIUM'", "'MEMORY_OPTIMIZED_DATA'", + "'MESSAGE'", "'MIN'", "'MIN_ACTIVE_ROWVERSION'", "'MIN_CPU_PERCENT'", + "'MIN_IOPS_PER_VOLUME'", "'MIN_MEMORY_PERCENT'", "'MINUTES'", + "'MIRROR_ADDRESS'", "'MIXED_PAGE_ALLOCATION'", "'MODE'", + "'MODIFY'", "'MOVE'", "'MULTI_USER'", "'NAME'", "'NESTED_TRIGGERS'", + "'NEW_ACCOUNT'", "'NEW_BROKER'", "'NEW_PASSWORD'", + "'NEXT'", "'NO'", "'NO_TRUNCATE'", "'NO_WAIT'", "'NOCOUNT'", + "'NODES'", "'NOEXPAND'", "'NON_TRANSACTED_ACCESS'", + "'NORECOMPUTE'", "'NORECOVERY'", "'NOWAIT'", "'NTILE'", + "'NUMANODE'", "'NUMBER'", "'NUMERIC_ROUNDABORT'", "'OBJECT'", + "'OFFLINE'", "'OFFSET'", "'OLD_ACCOUNT'", "'ONLINE'", + "'ONLY'", "'OPEN_EXISTING'", "'OPTIMISTIC'", "'OPTIMIZE'", + "'OUT'", "'OUTPUT'", "'OVERRIDE'", "'OWNER'", "'PAGE_VERIFY'", + "'PARAMETERIZATION'", "'PARTITION'", "'PARTITIONS'", + "'PARTNER'", "'PATH'", "'POISON_MESSAGE_HANDLING'", + "'POOL'", "'PORT'", "'PRECEDING'", "'PRIMARY_ROLE'", + "'PRIOR'", "'PRIORITY'", "'PRIORITY_LEVEL'", "'PRIVATE'", + "'PRIVATE_KEY'", "'PRIVILEGES'", "'PROCEDURE_NAME'", + "'PROPERTY'", "'PROVIDER'", "'PROVIDER_KEY_NAME'", + "'QUERY'", "'QUEUE'", "'QUEUE_DELAY'", "'QUOTED_IDENTIFIER'", + "'RANGE'", "'RANK'", "'RC2'", "'RC4'", "'RC4_128'", + "'READ_COMMITTED_SNAPSHOT'", "'READ_ONLY'", "'READ_ONLY_ROUTING_LIST'", + "'READ_WRITE'", "'READONLY'", "'REBUILD'", "'RECEIVE'", + "'RECOMPILE'", "'RECOVERY'", "'RECURSIVE_TRIGGERS'", + "'RELATIVE'", "'REMOTE'", "'REMOTE_SERVICE_NAME'", + "'REMOVE'", "'REORGANIZE'", "'REPEATABLE'", "'REPLICA'", + "'REQUEST_MAX_CPU_TIME_SEC'", "'REQUEST_MAX_MEMORY_GRANT_PERCENT'", + "'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'", "'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'", + "'RESERVE_DISK_SPACE'", "'RESOURCE'", "'RESOURCE_MANAGER_LOCATION'", + "'RESTRICTED_USER'", "'RETENTION'", "'ROBUST'", "'ROOT'", + "'ROUTE'", "'ROW'", "'ROW_NUMBER'", "'ROWGUID'", "'ROWS'", + "'SAMPLE'", "'SCHEMABINDING'", "'SCOPED'", "'SCROLL'", + "'SCROLL_LOCKS'", "'SEARCH'", "'SECONDARY'", "'SECONDARY_ONLY'", + "'SECONDARY_ROLE'", "'SECONDS'", "'SECRET'", "'SECURITY'", + "'SECURITY_LOG'", "'SEEDING_MODE'", "'SELF'", "'SEMI_SENSITIVE'", + "'SEND'", "'SENT'", "'SEQUENCE'", "'SERIALIZABLE'", + "'SESSION_TIMEOUT'", "'SETERROR'", "'SHARE'", "'SHOWPLAN'", + "'SIGNATURE'", "'SIMPLE'", "'SINGLE_USER'", "'SIZE'", + "'SMALLINT'", "'SNAPSHOT'", "'SPATIAL_WINDOW_MAX_CELLS'", + "'STANDBY'", "'START_DATE'", "'STATIC'", "'STATS_STREAM'", + "'STATUS'", "'STATUSONLY'", "'STDEV'", "'STDEVP'", + "'STOPLIST'", "'STRING_AGG'", "'STUFF'", "'SUBJECT'", + "'SUBSCRIPTION'", "'SUM'", "'SUSPEND'", "'SYMMETRIC'", + "'SYNCHRONOUS_COMMIT'", "'SYNONYM'", "'SYSTEM'", "'TAKE'", + "'TARGET_RECOVERY_TIME'", "'TB'", "'TEXTIMAGE_ON'", + "'THROW'", "'TIES'", "'TIME'", "'TIMEOUT'", "'TIMER'", + "'TINYINT'", "'TORN_PAGE_DETECTION'", "'TRANSFORM_NOISE_WORDS'", + "'TRIPLE_DES'", "'TRIPLE_DES_3KEY'", "'TRUSTWORTHY'", + "'TRY'", "'TSQL'", "'TWO_DIGIT_YEAR_CUTOFF'", "'TYPE'", + "'TYPE_WARNING'", "'UNBOUNDED'", "'UNCOMMITTED'", "'UNKNOWN'", + "'UNLIMITED'", "'UOW'", "'USING'", "'VALID_XML'", "'VALIDATION'", + "'VALUE'", "'VAR'", "'VARP'", "'VIEW_METADATA'", "'VIEWS'", + "'WAIT'", "'WELL_FORMED_XML'", "'WITHOUT_ARRAY_WRAPPER'", + "'WORK'", "'WORKLOAD'", "'XML'", "'XMLDATA'", "'XMLNAMESPACES'", + "'XMLSCHEMA'", "'XSINIL'", "'$ACTION'", null, null, + null, null, "'''", null, null, null, null, null, null, + null, null, null, null, "'='", "'>'", "'<'", "'!'", + "'+='", "'-='", "'*='", "'/='", "'%='", "'&='", "'^='", + "'|='", "'||'", "'.'", "'_'", "'@'", "'#'", "'$'", + "'('", "')'", "','", "';'", "':'", "'*'", "'/'", "'%'", + "'+'", "'-'", "'~'", "'|'", "'&'", "'^'" ]; + +var symbolicNames = [ null, "ABSENT", "ADD", "AES", "ALL", "ALLOW_CONNECTIONS", + "ALLOW_MULTIPLE_EVENT_LOSS", "ALLOW_SINGLE_EVENT_LOSS", + "ALTER", "AND", "ANONYMOUS", "ANY", "APPEND", "APPLICATION", + "AS", "ASC", "ASYMMETRIC", "ASYNCHRONOUS_COMMIT", + "AUTHORIZATION", "AUTHENTICATION", "AUTOMATED_BACKUP_PREFERENCE", + "AUTOMATIC", "AVAILABILITY_MODE", "BACKSLASH", "BACKUP", + "BEFORE", "BEGIN", "BETWEEN", "BLOCK", "BLOCKSIZE", + "BLOCKING_HIERARCHY", "BREAK", "BROWSE", "BUFFER", + "BUFFERCOUNT", "BULK", "BY", "CACHE", "CALLED", "CASCADE", + "CASE", "CERTIFICATE", "CHANGETABLE", "CHANGES", "CHECK", + "CHECKPOINT", "CHECK_POLICY", "CHECK_EXPIRATION", + "CLASSIFIER_FUNCTION", "CLOSE", "CLUSTER", "CLUSTERED", + "COALESCE", "COLLATE", "COLUMN", "COMPRESSION", "COMMIT", + "COMPUTE", "CONFIGURATION", "CONSTRAINT", "CONTAINMENT", + "CONTAINS", "CONTAINSTABLE", "CONTEXT", "CONTINUE", + "CONTINUE_AFTER_ERROR", "CONTRACT", "CONTRACT_NAME", + "CONVERSATION", "CONVERT", "COPY_ONLY", "CREATE", + "CROSS", "CURRENT", "CURRENT_DATE", "CURRENT_TIME", + "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", + "DATA_COMPRESSION", "DATA_SOURCE", "DATABASE", "DATABASE_MIRRORING", + "DBCC", "DEALLOCATE", "DECLARE", "DEFAULT", "DEFAULT_DATABASE", + "DEFAULT_SCHEMA", "DELETE", "DENY", "DESC", "DIAGNOSTICS", + "DIFFERENTIAL", "DISK", "DISTINCT", "DISTRIBUTED", + "DOUBLE", "DOUBLE_BACK_SLASH", "DOUBLE_FORWARD_SLASH", + "DROP", "DTC_SUPPORT", "DUMP", "ELSE", "ENABLED", + "END", "ENDPOINT", "ERRLVL", "ESCAPE", "ERROR", "EVENT", + "EVENTDATA", "EVENT_RETENTION_MODE", "EXCEPT", "EXECUTABLE_FILE", + "EXECUTE", "EXISTS", "EXPIREDATE", "EXIT", "EXTENSION", + "EXTERNAL", "EXTERNAL_ACCESS", "FAILOVER", "FAILURECONDITIONLEVEL", + "FAN_IN", "FETCH", "FILE", "FILENAME", "FILLFACTOR", + "FILE_SNAPSHOT", "FOR", "FORCESEEK", "FORCE_SERVICE_ALLOW_DATA_LOSS", + "FOREIGN", "FREETEXT", "FREETEXTTABLE", "FROM", "FULL", + "FUNCTION", "GET", "GOTO", "GOVERNOR", "GRANT", "GROUP", + "HAVING", "HASHED", "HEALTHCHECKTIMEOUT", "IDENTITY", + "IDENTITYCOL", "IDENTITY_INSERT", "IF", "IIF", "IN", + "INCLUDE", "INCREMENT", "INDEX", "INFINITE", "INIT", + "INNER", "INSERT", "INSTEAD", "INTERSECT", "INTO", + "IPV4_ADDR", "IPV6_ADDR", "IS", "ISNULL", "JOIN", + "KERBEROS", "KEY", "KEY_PATH", "KEY_STORE_PROVIDER_NAME", + "KILL", "LANGUAGE", "LEFT", "LIBRARY", "LIFETIME", + "LIKE", "LINENO", "LINUX", "LISTENER_IP", "LISTENER_PORT", + "LOAD", "LOCAL_SERVICE_NAME", "LOG", "MATCHED", "MASTER", + "MAX_MEMORY", "MAXTRANSFER", "MAXVALUE", "MAX_DISPATCH_LATENCY", + "MAX_EVENT_SIZE", "MAX_SIZE", "MAX_OUTSTANDING_IO_PER_VOLUME", + "MEDIADESCRIPTION", "MEDIANAME", "MEMBER", "MEMORY_PARTITION_MODE", + "MERGE", "MESSAGE_FORWARDING", "MESSAGE_FORWARD_SIZE", + "MINVALUE", "MIRROR", "MUST_CHANGE", "NATIONAL", "NEGOTIATE", + "NOCHECK", "NOFORMAT", "NOINIT", "NONCLUSTERED", "NONE", + "NOREWIND", "NOSKIP", "NOUNLOAD", "NO_CHECKSUM", "NO_COMPRESSION", + "NO_EVENT_LOSS", "NOT", "NOTIFICATION", "NTLM", "NULL", + "NULLIF", "OF", "OFF", "OFFSETS", "OLD_PASSWORD", + "ON", "ON_FAILURE", "OPEN", "OPENDATASOURCE", "OPENQUERY", + "OPENROWSET", "OPENXML", "OPTION", "OR", "ORDER", + "OUTER", "OVER", "PAGE", "PARAM_NODE", "PARTIAL", + "PASSWORD", "PERCENT", "PERMISSION_SET", "PER_CPU", + "PER_DB", "PER_NODE", "PIVOT", "PLAN", "PLATFORM", + "POLICY", "PRECISION", "PREDICATE", "PRIMARY", "PRINT", + "PROC", "PROCEDURE", "PROCESS", "PUBLIC", "PYTHON", + "R", "RAISERROR", "RAW", "READ", "READTEXT", "READ_WRITE_FILEGROUPS", + "RECONFIGURE", "REFERENCES", "REGENERATE", "RELATED_CONVERSATION", + "RELATED_CONVERSATION_GROUP", "REPLICATION", "REQUIRED", + "RESET", "RESTART", "RESTORE", "RESTRICT", "RESUME", + "RETAINDAYS", "RETURN", "RETURNS", "REVERT", "REVOKE", + "REWIND", "RIGHT", "ROLLBACK", "ROLE", "ROWCOUNT", + "ROWGUIDCOL", "RSA_512", "RSA_1024", "RSA_2048", "RSA_3072", + "RSA_4096", "SAFETY", "RULE", "SAFE", "SAVE", "SCHEDULER", + "SCHEMA", "SCHEME", "SECURITYAUDIT", "SELECT", "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", "SEMANTICSIMILARITYTABLE", + "SERVER", "SERVICE", "SERVICE_BROKER", "SERVICE_NAME", + "SESSION", "SESSION_USER", "SET", "SETUSER", "SHUTDOWN", + "SID", "SKIP_KEYWORD", "SOFTNUMA", "SOME", "SOURCE", + "SPECIFICATION", "SPLIT", "SQLDUMPERFLAGS", "SQLDUMPERPATH", + "SQLDUMPERTIMEOUT", "STATISTICS", "STATE", "STATS", + "START", "STARTED", "STARTUP_STATE", "STOP", "STOPPED", + "STOP_ON_ERROR", "SUPPORTED", "SYSTEM_USER", "TABLE", + "TABLESAMPLE", "TAPE", "TARGET", "TCP", "TEXTSIZE", + "THEN", "TO", "TOP", "TRACK_CAUSALITY", "TRAN", "TRANSACTION", + "TRANSFER", "TRIGGER", "TRUNCATE", "TSEQUAL", "UNCHECKED", + "UNION", "UNIQUE", "UNLOCK", "UNPIVOT", "UNSAFE", + "UPDATE", "UPDATETEXT", "URL", "USE", "USED", "USER", + "VALUES", "VARYING", "VERBOSELOGGING", "VIEW", "VISIBILITY", + "WAITFOR", "WHEN", "WHERE", "WHILE", "WINDOWS", "WITH", + "WITHIN", "WITHOUT", "WITNESS", "WRITETEXT", "ABSOLUTE", + "ACCENT_SENSITIVITY", "ACTION", "ACTIVATION", "ACTIVE", + "ADDRESS", "AES_128", "AES_192", "AES_256", "AFFINITY", + "AFTER", "AGGREGATE", "ALGORITHM", "ALLOW_ENCRYPTED_VALUE_MODIFICATIONS", + "ALLOW_SNAPSHOT_ISOLATION", "ALLOWED", "ANSI_NULL_DEFAULT", + "ANSI_NULLS", "ANSI_PADDING", "ANSI_WARNINGS", "APPLICATION_LOG", + "APPLY", "ARITHABORT", "ASSEMBLY", "AUDIT", "AUDIT_GUID", + "AUTO", "AUTO_CLEANUP", "AUTO_CLOSE", "AUTO_CREATE_STATISTICS", + "AUTO_SHRINK", "AUTO_UPDATE_STATISTICS", "AUTO_UPDATE_STATISTICS_ASYNC", + "AVAILABILITY", "AVG", "BACKUP_PRIORITY", "BEGIN_DIALOG", + "BIGINT", "BINARY_BASE64", "BINARY_CHECKSUM", "BINDING", + "BLOB_STORAGE", "BROKER", "BROKER_INSTANCE", "BULK_LOGGED", + "CALLER", "CAP_CPU_PERCENT", "CAST", "CATALOG", "CATCH", + "CHANGE_RETENTION", "CHANGE_TRACKING", "CHECKSUM", + "CHECKSUM_AGG", "CLEANUP", "COLLECTION", "COLUMN_MASTER_KEY", + "COMMITTED", "COMPATIBILITY_LEVEL", "CONCAT", "CONCAT_NULL_YIELDS_NULL", + "CONTENT", "CONTROL", "COOKIE", "COUNT", "COUNT_BIG", + "COUNTER", "CPU", "CREATE_NEW", "CREATION_DISPOSITION", + "CREDENTIAL", "CRYPTOGRAPHIC", "CURSOR_CLOSE_ON_COMMIT", + "CURSOR_DEFAULT", "DATA", "DATE_CORRELATION_OPTIMIZATION", + "DATEADD", "DATEDIFF", "DATENAME", "DATEPART", "DAYS", + "DB_CHAINING", "DB_FAILOVER", "DECRYPTION", "DEFAULT_DOUBLE_QUOTE", + "DEFAULT_FULLTEXT_LANGUAGE", "DEFAULT_LANGUAGE", "DELAY", + "DELAYED_DURABILITY", "DELETED", "DENSE_RANK", "DEPENDENTS", + "DES", "DESCRIPTION", "DESX", "DHCP", "DIALOG", "DIRECTORY_NAME", + "DISABLE", "DISABLE_BROKER", "DISABLED", "DISK_DRIVE", + "DOCUMENT", "DYNAMIC", "ELEMENTS", "EMERGENCY", "EMPTY", + "ENABLE", "ENABLE_BROKER", "ENCRYPTED_VALUE", "ENCRYPTION", + "ENDPOINT_URL", "ERROR_BROKER_CONVERSATIONS", "EXCLUSIVE", + "EXECUTABLE", "EXIST", "EXPAND", "EXPIRY_DATE", "EXPLICIT", + "FAIL_OPERATION", "FAILOVER_MODE", "FAILURE", "FAILURE_CONDITION_LEVEL", + "FAST", "FAST_FORWARD", "FILEGROUP", "FILEGROWTH", + "FILEPATH", "FILESTREAM", "FILTER", "FIRST", "FIRST_VALUE", + "FOLLOWING", "FORCE", "FORCE_FAILOVER_ALLOW_DATA_LOSS", + "FORCED", "FORMAT", "FORWARD_ONLY", "FULLSCAN", "FULLTEXT", + "GB", "GETDATE", "GETUTCDATE", "GLOBAL", "GO", "GROUP_MAX_REQUESTS", + "GROUPING", "GROUPING_ID", "HADR", "HASH", "HEALTH_CHECK_TIMEOUT", + "HIGH", "HONOR_BROKER_PRIORITY", "HOURS", "IDENTITY_VALUE", + "IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX", "IMMEDIATE", + "IMPERSONATE", "IMPORTANCE", "INCLUDE_NULL_VALUES", + "INCREMENTAL", "INITIATOR", "INPUT", "INSENSITIVE", + "INSERTED", "INT", "IP", "ISOLATION", "JOB", "JSON", + "KB", "KEEP", "KEEPFIXED", "KEY_SOURCE", "KEYS", "KEYSET", + "LAG", "LAST", "LAST_VALUE", "LEAD", "LEVEL", "LIST", + "LISTENER", "LISTENER_URL", "LOB_COMPACTION", "LOCAL", + "LOCATION", "LOCK", "LOCK_ESCALATION", "LOGIN", "LOOP", + "LOW", "MANUAL", "MARK", "MATERIALIZED", "MAX", "MAX_CPU_PERCENT", + "MAX_DOP", "MAX_FILES", "MAX_IOPS_PER_VOLUME", "MAX_MEMORY_PERCENT", + "MAX_PROCESSES", "MAX_QUEUE_READERS", "MAX_ROLLOVER_FILES", + "MAXDOP", "MAXRECURSION", "MAXSIZE", "MB", "MEDIUM", + "MEMORY_OPTIMIZED_DATA", "MESSAGE", "MIN", "MIN_ACTIVE_ROWVERSION", + "MIN_CPU_PERCENT", "MIN_IOPS_PER_VOLUME", "MIN_MEMORY_PERCENT", + "MINUTES", "MIRROR_ADDRESS", "MIXED_PAGE_ALLOCATION", + "MODE", "MODIFY", "MOVE", "MULTI_USER", "NAME", "NESTED_TRIGGERS", + "NEW_ACCOUNT", "NEW_BROKER", "NEW_PASSWORD", "NEXT", + "NO", "NO_TRUNCATE", "NO_WAIT", "NOCOUNT", "NODES", + "NOEXPAND", "NON_TRANSACTED_ACCESS", "NORECOMPUTE", + "NORECOVERY", "NOWAIT", "NTILE", "NUMANODE", "NUMBER", + "NUMERIC_ROUNDABORT", "OBJECT", "OFFLINE", "OFFSET", + "OLD_ACCOUNT", "ONLINE", "ONLY", "OPEN_EXISTING", + "OPTIMISTIC", "OPTIMIZE", "OUT", "OUTPUT", "OVERRIDE", + "OWNER", "PAGE_VERIFY", "PARAMETERIZATION", "PARTITION", + "PARTITIONS", "PARTNER", "PATH", "POISON_MESSAGE_HANDLING", + "POOL", "PORT", "PRECEDING", "PRIMARY_ROLE", "PRIOR", + "PRIORITY", "PRIORITY_LEVEL", "PRIVATE", "PRIVATE_KEY", + "PRIVILEGES", "PROCEDURE_NAME", "PROPERTY", "PROVIDER", + "PROVIDER_KEY_NAME", "QUERY", "QUEUE", "QUEUE_DELAY", + "QUOTED_IDENTIFIER", "RANGE", "RANK", "RC2", "RC4", + "RC4_128", "READ_COMMITTED_SNAPSHOT", "READ_ONLY", + "READ_ONLY_ROUTING_LIST", "READ_WRITE", "READONLY", + "REBUILD", "RECEIVE", "RECOMPILE", "RECOVERY", "RECURSIVE_TRIGGERS", + "RELATIVE", "REMOTE", "REMOTE_SERVICE_NAME", "REMOVE", + "REORGANIZE", "REPEATABLE", "REPLICA", "REQUEST_MAX_CPU_TIME_SEC", + "REQUEST_MAX_MEMORY_GRANT_PERCENT", "REQUEST_MEMORY_GRANT_TIMEOUT_SEC", + "REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT", "RESERVE_DISK_SPACE", + "RESOURCE", "RESOURCE_MANAGER_LOCATION", "RESTRICTED_USER", + "RETENTION", "ROBUST", "ROOT", "ROUTE", "ROW", "ROW_NUMBER", + "ROWGUID", "ROWS", "SAMPLE", "SCHEMABINDING", "SCOPED", + "SCROLL", "SCROLL_LOCKS", "SEARCH", "SECONDARY", "SECONDARY_ONLY", + "SECONDARY_ROLE", "SECONDS", "SECRET", "SECURITY", + "SECURITY_LOG", "SEEDING_MODE", "SELF", "SEMI_SENSITIVE", + "SEND", "SENT", "SEQUENCE", "SERIALIZABLE", "SESSION_TIMEOUT", + "SETERROR", "SHARE", "SHOWPLAN", "SIGNATURE", "SIMPLE", + "SINGLE_USER", "SIZE", "SMALLINT", "SNAPSHOT", "SPATIAL_WINDOW_MAX_CELLS", + "STANDBY", "START_DATE", "STATIC", "STATS_STREAM", + "STATUS", "STATUSONLY", "STDEV", "STDEVP", "STOPLIST", + "STRING_AGG", "STUFF", "SUBJECT", "SUBSCRIPTION", + "SUM", "SUSPEND", "SYMMETRIC", "SYNCHRONOUS_COMMIT", + "SYNONYM", "SYSTEM", "TAKE", "TARGET_RECOVERY_TIME", + "TB", "TEXTIMAGE_ON", "THROW", "TIES", "TIME", "TIMEOUT", + "TIMER", "TINYINT", "TORN_PAGE_DETECTION", "TRANSFORM_NOISE_WORDS", + "TRIPLE_DES", "TRIPLE_DES_3KEY", "TRUSTWORTHY", "TRY", + "TSQL", "TWO_DIGIT_YEAR_CUTOFF", "TYPE", "TYPE_WARNING", + "UNBOUNDED", "UNCOMMITTED", "UNKNOWN", "UNLIMITED", + "UOW", "USING", "VALID_XML", "VALIDATION", "VALUE", + "VAR", "VARP", "VIEW_METADATA", "VIEWS", "WAIT", "WELL_FORMED_XML", + "WITHOUT_ARRAY_WRAPPER", "WORK", "WORKLOAD", "XML", + "XMLDATA", "XMLNAMESPACES", "XMLSCHEMA", "XSINIL", + "DOLLAR_ACTION", "SPACE", "COMMENT", "LINE_COMMENT", + "DOUBLE_QUOTE_ID", "SINGLE_QUOTE", "SQUARE_BRACKET_ID", + "LOCAL_ID", "DECIMAL", "ID", "QUOTED_URL", "QUOTED_HOST_AND_PORT", + "STRING", "BINARY", "FLOAT", "REAL", "EQUAL", "GREATER", + "LESS", "EXCLAMATION", "PLUS_ASSIGN", "MINUS_ASSIGN", + "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", "AND_ASSIGN", + "XOR_ASSIGN", "OR_ASSIGN", "DOUBLE_BAR", "DOT", "UNDERLINE", + "AT", "SHARP", "DOLLAR", "LR_BRACKET", "RR_BRACKET", + "COMMA", "SEMI", "COLON", "STAR", "DIVIDE", "MODULE", + "PLUS", "MINUS", "BIT_NOT", "BIT_OR", "BIT_AND", "BIT_XOR", + "IPV4_OCTECT" ]; + +var ruleNames = [ "tsql_file", "batch", "sql_clauses", "sql_clause", "dml_clause", + "ddl_clause", "backup_statement", "cfl_statement", "block_statement", + "break_statement", "continue_statement", "goto_statement", + "return_statement", "if_statement", "throw_statement", + "throw_error_number", "throw_message", "throw_state", + "try_catch_statement", "waitfor_statement", "while_statement", + "print_statement", "raiseerror_statement", "empty_statement", + "another_statement", "alter_application_role", "create_application_role", + "drop_aggregate", "drop_application_role", "alter_assembly", + "alter_assembly_start", "alter_assembly_clause", "alter_assembly_from_clause", + "alter_assembly_from_clause_start", "alter_assembly_drop_clause", + "alter_assembly_drop_multiple_files", "alter_assembly_drop", + "alter_assembly_add_clause", "alter_asssembly_add_clause_start", + "alter_assembly_client_file_clause", "alter_assembly_file_name", + "alter_assembly_file_bits", "alter_assembly_as", "alter_assembly_with_clause", + "alter_assembly_with", "client_assembly_specifier", "assembly_option", + "network_file_share", "network_computer", "network_file_start", + "file_path", "file_directory_path_separator", "local_file", + "local_drive", "multiple_local_files", "multiple_local_file_start", + "create_assembly", "drop_assembly", "alter_asymmetric_key", + "alter_asymmetric_key_start", "asymmetric_key_option", + "asymmetric_key_option_start", "asymmetric_key_password_change_option", + "create_asymmetric_key", "drop_asymmetric_key", "alter_authorization", + "authorization_grantee", "entity_to", "colon_colon", + "alter_authorization_start", "alter_authorization_for_sql_database", + "alter_authorization_for_azure_dw", "alter_authorization_for_parallel_dw", + "class_type", "class_type_for_sql_database", "class_type_for_azure_dw", + "class_type_for_parallel_dw", "drop_availability_group", + "alter_availability_group", "alter_availability_group_start", + "alter_availability_group_options", "create_or_alter_broker_priority", + "drop_broker_priority", "alter_certificate", "alter_column_encryption_key", + "create_column_encryption_key", "drop_certificate", "drop_column_encryption_key", + "drop_column_master_key", "drop_contract", "drop_credential", + "drop_cryptograhic_provider", "drop_database", "drop_database_audit_specification", + "drop_database_scoped_credential", "drop_default", "drop_endpoint", + "drop_external_data_source", "drop_external_file_format", + "drop_external_library", "drop_external_resource_pool", + "drop_external_table", "drop_event_notifications", "drop_event_session", + "drop_fulltext_catalog", "drop_fulltext_index", "drop_fulltext_stoplist", + "drop_login", "drop_master_key", "drop_message_type", + "drop_partition_function", "drop_partition_scheme", "drop_queue", + "drop_remote_service_binding", "drop_resource_pool", + "drop_db_role", "drop_route", "drop_rule", "drop_schema", + "drop_search_property_list", "drop_security_policy", + "drop_sequence", "drop_server_audit", "drop_server_audit_specification", + "drop_server_role", "drop_service", "drop_signature", + "drop_statistics_name_azure_dw_and_pdw", "drop_symmetric_key", + "drop_synonym", "drop_user", "drop_workload_group", "drop_xml_schema_collection", + "disable_trigger", "enable_trigger", "lock_table", "truncate_table", + "create_column_master_key", "alter_credential", "create_credential", + "alter_cryptographic_provider", "create_cryptographic_provider", + "create_event_notification", "create_or_alter_event_session", + "event_session_predicate_expression", "event_session_predicate_factor", + "event_session_predicate_leaf", "alter_external_data_source", + "alter_external_library", "create_external_library", + "alter_external_resource_pool", "create_external_resource_pool", + "alter_fulltext_catalog", "create_fulltext_catalog", + "alter_fulltext_stoplist", "create_fulltext_stoplist", + "alter_login_sql_server", "create_login_sql_server", + "alter_login_azure_sql", "create_login_azure_sql", "alter_login_azure_sql_dw_and_pdw", + "create_login_pdw", "alter_master_key_sql_server", "create_master_key_sql_server", + "alter_master_key_azure_sql", "create_master_key_azure_sql", + "alter_message_type", "alter_partition_function", "alter_partition_scheme", + "alter_remote_service_binding", "create_remote_service_binding", + "create_resource_pool", "alter_resource_governor", "alter_db_role", + "create_db_role", "create_route", "create_rule", "alter_schema_sql", + "create_schema", "create_schema_azure_sql_dw_and_pdw", + "alter_schema_azure_sql_dw_and_pdw", "create_search_property_list", + "create_security_policy", "alter_sequence", "create_sequence", + "alter_server_audit", "create_server_audit", "alter_server_audit_specification", + "create_server_audit_specification", "alter_server_configuration", + "alter_server_role", "create_server_role", "alter_server_role_pdw", + "alter_service", "create_service", "alter_service_master_key", + "alter_symmetric_key", "create_symmetric_key", "create_synonym", + "alter_user", "create_user", "create_user_azure_sql_dw", + "alter_user_azure_sql", "alter_workload_group", "create_workload_group", + "create_xml_schema_collection", "create_queue", "queue_settings", + "alter_queue", "queue_action", "queue_rebuild_options", + "create_contract", "conversation_statement", "message_statement", + "merge_statement", "merge_matched", "merge_not_matched", + "delete_statement", "delete_statement_from", "insert_statement", + "insert_statement_value", "receive_statement", "select_statement", + "time", "update_statement", "output_clause", "output_dml_list_elem", + "output_column_name", "create_database", "create_index", + "create_or_alter_procedure", "create_or_alter_trigger", + "create_or_alter_dml_trigger", "dml_trigger_option", + "dml_trigger_operation", "create_or_alter_ddl_trigger", + "ddl_trigger_operation", "create_or_alter_function", + "func_body_returns_select", "func_body_returns_table", + "func_body_returns_scalar", "procedure_param", "procedure_option", + "function_option", "create_statistics", "update_statistics", + "create_table", "table_options", "create_view", "view_attribute", + "alter_table", "alter_database", "database_optionspec", + "auto_option", "change_tracking_option", "change_tracking_option_list", + "containment_option", "cursor_option", "alter_endpoint", + "database_mirroring_option", "mirroring_set_option", + "mirroring_partner", "mirroring_witness", "witness_partner_equal", + "partner_option", "witness_option", "witness_server", + "partner_server", "mirroring_host_port_seperator", "partner_server_tcp_prefix", + "port_number", "host", "date_correlation_optimization_option", + "db_encryption_option", "db_state_option", "db_update_option", + "db_user_access_option", "delayed_durability_option", + "external_access_option", "hadr_options", "mixed_page_allocation_option", + "parameterization_option", "recovery_option", "service_broker_option", + "snapshot_option", "sql_option", "target_recovery_time_option", + "termination", "drop_index", "drop_relational_or_xml_or_spatial_index", + "drop_backward_compatible_index", "drop_procedure", "drop_trigger", + "drop_dml_trigger", "drop_ddl_trigger", "drop_function", + "drop_statistics", "drop_table", "drop_view", "create_type", + "drop_type", "rowset_function_limited", "openquery", + "opendatasource", "declare_statement", "cursor_statement", + "backup_database", "backup_log", "backup_certificate", + "backup_master_key", "backup_service_master_key", "kill_statement", + "kill_process", "kill_query_notification", "kill_stats_job", + "execute_statement", "execute_body", "execute_statement_arg", + "execute_var_string", "security_statement", "create_certificate", + "existing_keys", "private_key_options", "generate_new_keys", + "date_options", "open_key", "close_key", "create_key", + "key_options", "algorithm", "encryption_mechanism", "decryption_mechanism", + "grant_permission", "set_statement", "transaction_statement", + "go_statement", "use_statement", "setuser_statement", + "reconfigure_statement", "shutdown_statement", "dbcc_clause", + "dbcc_options", "execute_clause", "declare_local", "table_type_definition", + "xml_type_definition", "xml_schema_collection", "column_def_table_constraints", + "column_def_table_constraint", "column_definition", "materialized_column_definition", + "column_constraint", "table_constraint", "on_delete", + "on_update", "index_options", "index_option", "declare_cursor", + "declare_set_cursor_common", "declare_set_cursor_common_partial", + "fetch_cursor", "set_special", "constant_LOCAL_ID", "expression", + "primitive_expression", "case_expression", "unary_operator_expression", + "bracket_expression", "constant_expression", "subquery", + "with_expression", "common_table_expression", "update_elem", + "search_condition_list", "search_condition", "search_condition_and", + "search_condition_not", "predicate", "query_expression", + "sql_union", "query_specification", "top_clause", "top_percent", + "top_count", "order_by_clause", "for_clause", "xml_common_directives", + "order_by_expression", "group_by_item", "option_clause", + "option", "optimize_for_arg", "select_list", "udt_method_arguments", + "asterisk", "column_elem", "udt_elem", "expression_elem", + "select_list_elem", "table_sources", "table_source", + "table_source_item_joined", "table_source_item", "open_xml", + "schema_declaration", "column_declaration", "change_table", + "join_part", "pivot_clause", "unpivot_clause", "full_column_name_list", + "table_name_with_hint", "rowset_function", "bulk_option", + "derived_table", "function_call", "xml_data_type_methods", + "value_method", "query_method", "exist_method", "modify_method", + "nodes_method", "switch_section", "switch_search_condition_section", + "as_column_alias", "as_table_alias", "table_alias", "with_table_hints", + "insert_with_table_hints", "table_hint", "index_value", + "column_alias_list", "column_alias", "table_value_constructor", + "expression_list", "ranking_windowed_function", "aggregate_windowed_function", + "analytic_windowed_function", "all_distinct_expression", + "over_clause", "row_or_range_clause", "window_frame_extent", + "window_frame_bound", "window_frame_preceding", "window_frame_following", + "create_database_option", "database_filestream_option", + "database_file_spec", "file_group", "file_spec", "entity_name", + "entity_name_for_azure_dw", "entity_name_for_parallel_dw", + "full_table_name", "table_name", "simple_name", "func_proc_name_schema", + "func_proc_name_database_schema", "func_proc_name_server_database_schema", + "ddl_object", "full_column_name", "column_name_list_with_order", + "column_name_list", "cursor_name", "on_off", "clustered", + "null_notnull", "null_or_default", "scalar_function_name", + "begin_conversation_timer", "begin_conversation_dialog", + "contract_name", "service_name", "end_conversation", + "waitfor_conversation", "get_conversation", "queue_id", + "send_conversation", "data_type", "default_value", "constant", + "sign", "id", "simple_id", "comparison_operator", "assignment_operator", + "file_size" ]; + +function TSqlParser (input) { + antlr4.Parser.call(this, input); + this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); + this.ruleNames = ruleNames; + this.literalNames = literalNames; + this.symbolicNames = symbolicNames; + return this; +} + +TSqlParser.prototype = Object.create(antlr4.Parser.prototype); +TSqlParser.prototype.constructor = TSqlParser; + +Object.defineProperty(TSqlParser.prototype, "atn", { + get : function() { + return atn; + } +}); + +TSqlParser.EOF = antlr4.Token.EOF; +TSqlParser.ABSENT = 1; +TSqlParser.ADD = 2; +TSqlParser.AES = 3; +TSqlParser.ALL = 4; +TSqlParser.ALLOW_CONNECTIONS = 5; +TSqlParser.ALLOW_MULTIPLE_EVENT_LOSS = 6; +TSqlParser.ALLOW_SINGLE_EVENT_LOSS = 7; +TSqlParser.ALTER = 8; +TSqlParser.AND = 9; +TSqlParser.ANONYMOUS = 10; +TSqlParser.ANY = 11; +TSqlParser.APPEND = 12; +TSqlParser.APPLICATION = 13; +TSqlParser.AS = 14; +TSqlParser.ASC = 15; +TSqlParser.ASYMMETRIC = 16; +TSqlParser.ASYNCHRONOUS_COMMIT = 17; +TSqlParser.AUTHORIZATION = 18; +TSqlParser.AUTHENTICATION = 19; +TSqlParser.AUTOMATED_BACKUP_PREFERENCE = 20; +TSqlParser.AUTOMATIC = 21; +TSqlParser.AVAILABILITY_MODE = 22; +TSqlParser.BACKSLASH = 23; +TSqlParser.BACKUP = 24; +TSqlParser.BEFORE = 25; +TSqlParser.BEGIN = 26; +TSqlParser.BETWEEN = 27; +TSqlParser.BLOCK = 28; +TSqlParser.BLOCKSIZE = 29; +TSqlParser.BLOCKING_HIERARCHY = 30; +TSqlParser.BREAK = 31; +TSqlParser.BROWSE = 32; +TSqlParser.BUFFER = 33; +TSqlParser.BUFFERCOUNT = 34; +TSqlParser.BULK = 35; +TSqlParser.BY = 36; +TSqlParser.CACHE = 37; +TSqlParser.CALLED = 38; +TSqlParser.CASCADE = 39; +TSqlParser.CASE = 40; +TSqlParser.CERTIFICATE = 41; +TSqlParser.CHANGETABLE = 42; +TSqlParser.CHANGES = 43; +TSqlParser.CHECK = 44; +TSqlParser.CHECKPOINT = 45; +TSqlParser.CHECK_POLICY = 46; +TSqlParser.CHECK_EXPIRATION = 47; +TSqlParser.CLASSIFIER_FUNCTION = 48; +TSqlParser.CLOSE = 49; +TSqlParser.CLUSTER = 50; +TSqlParser.CLUSTERED = 51; +TSqlParser.COALESCE = 52; +TSqlParser.COLLATE = 53; +TSqlParser.COLUMN = 54; +TSqlParser.COMPRESSION = 55; +TSqlParser.COMMIT = 56; +TSqlParser.COMPUTE = 57; +TSqlParser.CONFIGURATION = 58; +TSqlParser.CONSTRAINT = 59; +TSqlParser.CONTAINMENT = 60; +TSqlParser.CONTAINS = 61; +TSqlParser.CONTAINSTABLE = 62; +TSqlParser.CONTEXT = 63; +TSqlParser.CONTINUE = 64; +TSqlParser.CONTINUE_AFTER_ERROR = 65; +TSqlParser.CONTRACT = 66; +TSqlParser.CONTRACT_NAME = 67; +TSqlParser.CONVERSATION = 68; +TSqlParser.CONVERT = 69; +TSqlParser.COPY_ONLY = 70; +TSqlParser.CREATE = 71; +TSqlParser.CROSS = 72; +TSqlParser.CURRENT = 73; +TSqlParser.CURRENT_DATE = 74; +TSqlParser.CURRENT_TIME = 75; +TSqlParser.CURRENT_TIMESTAMP = 76; +TSqlParser.CURRENT_USER = 77; +TSqlParser.CURSOR = 78; +TSqlParser.CYCLE = 79; +TSqlParser.DATA_COMPRESSION = 80; +TSqlParser.DATA_SOURCE = 81; +TSqlParser.DATABASE = 82; +TSqlParser.DATABASE_MIRRORING = 83; +TSqlParser.DBCC = 84; +TSqlParser.DEALLOCATE = 85; +TSqlParser.DECLARE = 86; +TSqlParser.DEFAULT = 87; +TSqlParser.DEFAULT_DATABASE = 88; +TSqlParser.DEFAULT_SCHEMA = 89; +TSqlParser.DELETE = 90; +TSqlParser.DENY = 91; +TSqlParser.DESC = 92; +TSqlParser.DIAGNOSTICS = 93; +TSqlParser.DIFFERENTIAL = 94; +TSqlParser.DISK = 95; +TSqlParser.DISTINCT = 96; +TSqlParser.DISTRIBUTED = 97; +TSqlParser.DOUBLE = 98; +TSqlParser.DOUBLE_BACK_SLASH = 99; +TSqlParser.DOUBLE_FORWARD_SLASH = 100; +TSqlParser.DROP = 101; +TSqlParser.DTC_SUPPORT = 102; +TSqlParser.DUMP = 103; +TSqlParser.ELSE = 104; +TSqlParser.ENABLED = 105; +TSqlParser.END = 106; +TSqlParser.ENDPOINT = 107; +TSqlParser.ERRLVL = 108; +TSqlParser.ESCAPE = 109; +TSqlParser.ERROR = 110; +TSqlParser.EVENT = 111; +TSqlParser.EVENTDATA = 112; +TSqlParser.EVENT_RETENTION_MODE = 113; +TSqlParser.EXCEPT = 114; +TSqlParser.EXECUTABLE_FILE = 115; +TSqlParser.EXECUTE = 116; +TSqlParser.EXISTS = 117; +TSqlParser.EXPIREDATE = 118; +TSqlParser.EXIT = 119; +TSqlParser.EXTENSION = 120; +TSqlParser.EXTERNAL = 121; +TSqlParser.EXTERNAL_ACCESS = 122; +TSqlParser.FAILOVER = 123; +TSqlParser.FAILURECONDITIONLEVEL = 124; +TSqlParser.FAN_IN = 125; +TSqlParser.FETCH = 126; +TSqlParser.FILE = 127; +TSqlParser.FILENAME = 128; +TSqlParser.FILLFACTOR = 129; +TSqlParser.FILE_SNAPSHOT = 130; +TSqlParser.FOR = 131; +TSqlParser.FORCESEEK = 132; +TSqlParser.FORCE_SERVICE_ALLOW_DATA_LOSS = 133; +TSqlParser.FOREIGN = 134; +TSqlParser.FREETEXT = 135; +TSqlParser.FREETEXTTABLE = 136; +TSqlParser.FROM = 137; +TSqlParser.FULL = 138; +TSqlParser.FUNCTION = 139; +TSqlParser.GET = 140; +TSqlParser.GOTO = 141; +TSqlParser.GOVERNOR = 142; +TSqlParser.GRANT = 143; +TSqlParser.GROUP = 144; +TSqlParser.HAVING = 145; +TSqlParser.HASHED = 146; +TSqlParser.HEALTHCHECKTIMEOUT = 147; +TSqlParser.IDENTITY = 148; +TSqlParser.IDENTITYCOL = 149; +TSqlParser.IDENTITY_INSERT = 150; +TSqlParser.IF = 151; +TSqlParser.IIF = 152; +TSqlParser.IN = 153; +TSqlParser.INCLUDE = 154; +TSqlParser.INCREMENT = 155; +TSqlParser.INDEX = 156; +TSqlParser.INFINITE = 157; +TSqlParser.INIT = 158; +TSqlParser.INNER = 159; +TSqlParser.INSERT = 160; +TSqlParser.INSTEAD = 161; +TSqlParser.INTERSECT = 162; +TSqlParser.INTO = 163; +TSqlParser.IPV4_ADDR = 164; +TSqlParser.IPV6_ADDR = 165; +TSqlParser.IS = 166; +TSqlParser.ISNULL = 167; +TSqlParser.JOIN = 168; +TSqlParser.KERBEROS = 169; +TSqlParser.KEY = 170; +TSqlParser.KEY_PATH = 171; +TSqlParser.KEY_STORE_PROVIDER_NAME = 172; +TSqlParser.KILL = 173; +TSqlParser.LANGUAGE = 174; +TSqlParser.LEFT = 175; +TSqlParser.LIBRARY = 176; +TSqlParser.LIFETIME = 177; +TSqlParser.LIKE = 178; +TSqlParser.LINENO = 179; +TSqlParser.LINUX = 180; +TSqlParser.LISTENER_IP = 181; +TSqlParser.LISTENER_PORT = 182; +TSqlParser.LOAD = 183; +TSqlParser.LOCAL_SERVICE_NAME = 184; +TSqlParser.LOG = 185; +TSqlParser.MATCHED = 186; +TSqlParser.MASTER = 187; +TSqlParser.MAX_MEMORY = 188; +TSqlParser.MAXTRANSFER = 189; +TSqlParser.MAXVALUE = 190; +TSqlParser.MAX_DISPATCH_LATENCY = 191; +TSqlParser.MAX_EVENT_SIZE = 192; +TSqlParser.MAX_SIZE = 193; +TSqlParser.MAX_OUTSTANDING_IO_PER_VOLUME = 194; +TSqlParser.MEDIADESCRIPTION = 195; +TSqlParser.MEDIANAME = 196; +TSqlParser.MEMBER = 197; +TSqlParser.MEMORY_PARTITION_MODE = 198; +TSqlParser.MERGE = 199; +TSqlParser.MESSAGE_FORWARDING = 200; +TSqlParser.MESSAGE_FORWARD_SIZE = 201; +TSqlParser.MINVALUE = 202; +TSqlParser.MIRROR = 203; +TSqlParser.MUST_CHANGE = 204; +TSqlParser.NATIONAL = 205; +TSqlParser.NEGOTIATE = 206; +TSqlParser.NOCHECK = 207; +TSqlParser.NOFORMAT = 208; +TSqlParser.NOINIT = 209; +TSqlParser.NONCLUSTERED = 210; +TSqlParser.NONE = 211; +TSqlParser.NOREWIND = 212; +TSqlParser.NOSKIP = 213; +TSqlParser.NOUNLOAD = 214; +TSqlParser.NO_CHECKSUM = 215; +TSqlParser.NO_COMPRESSION = 216; +TSqlParser.NO_EVENT_LOSS = 217; +TSqlParser.NOT = 218; +TSqlParser.NOTIFICATION = 219; +TSqlParser.NTLM = 220; +TSqlParser.NULL = 221; +TSqlParser.NULLIF = 222; +TSqlParser.OF = 223; +TSqlParser.OFF = 224; +TSqlParser.OFFSETS = 225; +TSqlParser.OLD_PASSWORD = 226; +TSqlParser.ON = 227; +TSqlParser.ON_FAILURE = 228; +TSqlParser.OPEN = 229; +TSqlParser.OPENDATASOURCE = 230; +TSqlParser.OPENQUERY = 231; +TSqlParser.OPENROWSET = 232; +TSqlParser.OPENXML = 233; +TSqlParser.OPTION = 234; +TSqlParser.OR = 235; +TSqlParser.ORDER = 236; +TSqlParser.OUTER = 237; +TSqlParser.OVER = 238; +TSqlParser.PAGE = 239; +TSqlParser.PARAM_NODE = 240; +TSqlParser.PARTIAL = 241; +TSqlParser.PASSWORD = 242; +TSqlParser.PERCENT = 243; +TSqlParser.PERMISSION_SET = 244; +TSqlParser.PER_CPU = 245; +TSqlParser.PER_DB = 246; +TSqlParser.PER_NODE = 247; +TSqlParser.PIVOT = 248; +TSqlParser.PLAN = 249; +TSqlParser.PLATFORM = 250; +TSqlParser.POLICY = 251; +TSqlParser.PRECISION = 252; +TSqlParser.PREDICATE = 253; +TSqlParser.PRIMARY = 254; +TSqlParser.PRINT = 255; +TSqlParser.PROC = 256; +TSqlParser.PROCEDURE = 257; +TSqlParser.PROCESS = 258; +TSqlParser.PUBLIC = 259; +TSqlParser.PYTHON = 260; +TSqlParser.R = 261; +TSqlParser.RAISERROR = 262; +TSqlParser.RAW = 263; +TSqlParser.READ = 264; +TSqlParser.READTEXT = 265; +TSqlParser.READ_WRITE_FILEGROUPS = 266; +TSqlParser.RECONFIGURE = 267; +TSqlParser.REFERENCES = 268; +TSqlParser.REGENERATE = 269; +TSqlParser.RELATED_CONVERSATION = 270; +TSqlParser.RELATED_CONVERSATION_GROUP = 271; +TSqlParser.REPLICATION = 272; +TSqlParser.REQUIRED = 273; +TSqlParser.RESET = 274; +TSqlParser.RESTART = 275; +TSqlParser.RESTORE = 276; +TSqlParser.RESTRICT = 277; +TSqlParser.RESUME = 278; +TSqlParser.RETAINDAYS = 279; +TSqlParser.RETURN = 280; +TSqlParser.RETURNS = 281; +TSqlParser.REVERT = 282; +TSqlParser.REVOKE = 283; +TSqlParser.REWIND = 284; +TSqlParser.RIGHT = 285; +TSqlParser.ROLLBACK = 286; +TSqlParser.ROLE = 287; +TSqlParser.ROWCOUNT = 288; +TSqlParser.ROWGUIDCOL = 289; +TSqlParser.RSA_512 = 290; +TSqlParser.RSA_1024 = 291; +TSqlParser.RSA_2048 = 292; +TSqlParser.RSA_3072 = 293; +TSqlParser.RSA_4096 = 294; +TSqlParser.SAFETY = 295; +TSqlParser.RULE = 296; +TSqlParser.SAFE = 297; +TSqlParser.SAVE = 298; +TSqlParser.SCHEDULER = 299; +TSqlParser.SCHEMA = 300; +TSqlParser.SCHEME = 301; +TSqlParser.SECURITYAUDIT = 302; +TSqlParser.SELECT = 303; +TSqlParser.SEMANTICKEYPHRASETABLE = 304; +TSqlParser.SEMANTICSIMILARITYDETAILSTABLE = 305; +TSqlParser.SEMANTICSIMILARITYTABLE = 306; +TSqlParser.SERVER = 307; +TSqlParser.SERVICE = 308; +TSqlParser.SERVICE_BROKER = 309; +TSqlParser.SERVICE_NAME = 310; +TSqlParser.SESSION = 311; +TSqlParser.SESSION_USER = 312; +TSqlParser.SET = 313; +TSqlParser.SETUSER = 314; +TSqlParser.SHUTDOWN = 315; +TSqlParser.SID = 316; +TSqlParser.SKIP_KEYWORD = 317; +TSqlParser.SOFTNUMA = 318; +TSqlParser.SOME = 319; +TSqlParser.SOURCE = 320; +TSqlParser.SPECIFICATION = 321; +TSqlParser.SPLIT = 322; +TSqlParser.SQLDUMPERFLAGS = 323; +TSqlParser.SQLDUMPERPATH = 324; +TSqlParser.SQLDUMPERTIMEOUT = 325; +TSqlParser.STATISTICS = 326; +TSqlParser.STATE = 327; +TSqlParser.STATS = 328; +TSqlParser.START = 329; +TSqlParser.STARTED = 330; +TSqlParser.STARTUP_STATE = 331; +TSqlParser.STOP = 332; +TSqlParser.STOPPED = 333; +TSqlParser.STOP_ON_ERROR = 334; +TSqlParser.SUPPORTED = 335; +TSqlParser.SYSTEM_USER = 336; +TSqlParser.TABLE = 337; +TSqlParser.TABLESAMPLE = 338; +TSqlParser.TAPE = 339; +TSqlParser.TARGET = 340; +TSqlParser.TCP = 341; +TSqlParser.TEXTSIZE = 342; +TSqlParser.THEN = 343; +TSqlParser.TO = 344; +TSqlParser.TOP = 345; +TSqlParser.TRACK_CAUSALITY = 346; +TSqlParser.TRAN = 347; +TSqlParser.TRANSACTION = 348; +TSqlParser.TRANSFER = 349; +TSqlParser.TRIGGER = 350; +TSqlParser.TRUNCATE = 351; +TSqlParser.TSEQUAL = 352; +TSqlParser.UNCHECKED = 353; +TSqlParser.UNION = 354; +TSqlParser.UNIQUE = 355; +TSqlParser.UNLOCK = 356; +TSqlParser.UNPIVOT = 357; +TSqlParser.UNSAFE = 358; +TSqlParser.UPDATE = 359; +TSqlParser.UPDATETEXT = 360; +TSqlParser.URL = 361; +TSqlParser.USE = 362; +TSqlParser.USED = 363; +TSqlParser.USER = 364; +TSqlParser.VALUES = 365; +TSqlParser.VARYING = 366; +TSqlParser.VERBOSELOGGING = 367; +TSqlParser.VIEW = 368; +TSqlParser.VISIBILITY = 369; +TSqlParser.WAITFOR = 370; +TSqlParser.WHEN = 371; +TSqlParser.WHERE = 372; +TSqlParser.WHILE = 373; +TSqlParser.WINDOWS = 374; +TSqlParser.WITH = 375; +TSqlParser.WITHIN = 376; +TSqlParser.WITHOUT = 377; +TSqlParser.WITNESS = 378; +TSqlParser.WRITETEXT = 379; +TSqlParser.ABSOLUTE = 380; +TSqlParser.ACCENT_SENSITIVITY = 381; +TSqlParser.ACTION = 382; +TSqlParser.ACTIVATION = 383; +TSqlParser.ACTIVE = 384; +TSqlParser.ADDRESS = 385; +TSqlParser.AES_128 = 386; +TSqlParser.AES_192 = 387; +TSqlParser.AES_256 = 388; +TSqlParser.AFFINITY = 389; +TSqlParser.AFTER = 390; +TSqlParser.AGGREGATE = 391; +TSqlParser.ALGORITHM = 392; +TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = 393; +TSqlParser.ALLOW_SNAPSHOT_ISOLATION = 394; +TSqlParser.ALLOWED = 395; +TSqlParser.ANSI_NULL_DEFAULT = 396; +TSqlParser.ANSI_NULLS = 397; +TSqlParser.ANSI_PADDING = 398; +TSqlParser.ANSI_WARNINGS = 399; +TSqlParser.APPLICATION_LOG = 400; +TSqlParser.APPLY = 401; +TSqlParser.ARITHABORT = 402; +TSqlParser.ASSEMBLY = 403; +TSqlParser.AUDIT = 404; +TSqlParser.AUDIT_GUID = 405; +TSqlParser.AUTO = 406; +TSqlParser.AUTO_CLEANUP = 407; +TSqlParser.AUTO_CLOSE = 408; +TSqlParser.AUTO_CREATE_STATISTICS = 409; +TSqlParser.AUTO_SHRINK = 410; +TSqlParser.AUTO_UPDATE_STATISTICS = 411; +TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC = 412; +TSqlParser.AVAILABILITY = 413; +TSqlParser.AVG = 414; +TSqlParser.BACKUP_PRIORITY = 415; +TSqlParser.BEGIN_DIALOG = 416; +TSqlParser.BIGINT = 417; +TSqlParser.BINARY_BASE64 = 418; +TSqlParser.BINARY_CHECKSUM = 419; +TSqlParser.BINDING = 420; +TSqlParser.BLOB_STORAGE = 421; +TSqlParser.BROKER = 422; +TSqlParser.BROKER_INSTANCE = 423; +TSqlParser.BULK_LOGGED = 424; +TSqlParser.CALLER = 425; +TSqlParser.CAP_CPU_PERCENT = 426; +TSqlParser.CAST = 427; +TSqlParser.CATALOG = 428; +TSqlParser.CATCH = 429; +TSqlParser.CHANGE_RETENTION = 430; +TSqlParser.CHANGE_TRACKING = 431; +TSqlParser.CHECKSUM = 432; +TSqlParser.CHECKSUM_AGG = 433; +TSqlParser.CLEANUP = 434; +TSqlParser.COLLECTION = 435; +TSqlParser.COLUMN_MASTER_KEY = 436; +TSqlParser.COMMITTED = 437; +TSqlParser.COMPATIBILITY_LEVEL = 438; +TSqlParser.CONCAT = 439; +TSqlParser.CONCAT_NULL_YIELDS_NULL = 440; +TSqlParser.CONTENT = 441; +TSqlParser.CONTROL = 442; +TSqlParser.COOKIE = 443; +TSqlParser.COUNT = 444; +TSqlParser.COUNT_BIG = 445; +TSqlParser.COUNTER = 446; +TSqlParser.CPU = 447; +TSqlParser.CREATE_NEW = 448; +TSqlParser.CREATION_DISPOSITION = 449; +TSqlParser.CREDENTIAL = 450; +TSqlParser.CRYPTOGRAPHIC = 451; +TSqlParser.CURSOR_CLOSE_ON_COMMIT = 452; +TSqlParser.CURSOR_DEFAULT = 453; +TSqlParser.DATA = 454; +TSqlParser.DATE_CORRELATION_OPTIMIZATION = 455; +TSqlParser.DATEADD = 456; +TSqlParser.DATEDIFF = 457; +TSqlParser.DATENAME = 458; +TSqlParser.DATEPART = 459; +TSqlParser.DAYS = 460; +TSqlParser.DB_CHAINING = 461; +TSqlParser.DB_FAILOVER = 462; +TSqlParser.DECRYPTION = 463; +TSqlParser.DEFAULT_DOUBLE_QUOTE = 464; +TSqlParser.DEFAULT_FULLTEXT_LANGUAGE = 465; +TSqlParser.DEFAULT_LANGUAGE = 466; +TSqlParser.DELAY = 467; +TSqlParser.DELAYED_DURABILITY = 468; +TSqlParser.DELETED = 469; +TSqlParser.DENSE_RANK = 470; +TSqlParser.DEPENDENTS = 471; +TSqlParser.DES = 472; +TSqlParser.DESCRIPTION = 473; +TSqlParser.DESX = 474; +TSqlParser.DHCP = 475; +TSqlParser.DIALOG = 476; +TSqlParser.DIRECTORY_NAME = 477; +TSqlParser.DISABLE = 478; +TSqlParser.DISABLE_BROKER = 479; +TSqlParser.DISABLED = 480; +TSqlParser.DISK_DRIVE = 481; +TSqlParser.DOCUMENT = 482; +TSqlParser.DYNAMIC = 483; +TSqlParser.ELEMENTS = 484; +TSqlParser.EMERGENCY = 485; +TSqlParser.EMPTY = 486; +TSqlParser.ENABLE = 487; +TSqlParser.ENABLE_BROKER = 488; +TSqlParser.ENCRYPTED_VALUE = 489; +TSqlParser.ENCRYPTION = 490; +TSqlParser.ENDPOINT_URL = 491; +TSqlParser.ERROR_BROKER_CONVERSATIONS = 492; +TSqlParser.EXCLUSIVE = 493; +TSqlParser.EXECUTABLE = 494; +TSqlParser.EXIST = 495; +TSqlParser.EXPAND = 496; +TSqlParser.EXPIRY_DATE = 497; +TSqlParser.EXPLICIT = 498; +TSqlParser.FAIL_OPERATION = 499; +TSqlParser.FAILOVER_MODE = 500; +TSqlParser.FAILURE = 501; +TSqlParser.FAILURE_CONDITION_LEVEL = 502; +TSqlParser.FAST = 503; +TSqlParser.FAST_FORWARD = 504; +TSqlParser.FILEGROUP = 505; +TSqlParser.FILEGROWTH = 506; +TSqlParser.FILEPATH = 507; +TSqlParser.FILESTREAM = 508; +TSqlParser.FILTER = 509; +TSqlParser.FIRST = 510; +TSqlParser.FIRST_VALUE = 511; +TSqlParser.FOLLOWING = 512; +TSqlParser.FORCE = 513; +TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS = 514; +TSqlParser.FORCED = 515; +TSqlParser.FORMAT = 516; +TSqlParser.FORWARD_ONLY = 517; +TSqlParser.FULLSCAN = 518; +TSqlParser.FULLTEXT = 519; +TSqlParser.GB = 520; +TSqlParser.GETDATE = 521; +TSqlParser.GETUTCDATE = 522; +TSqlParser.GLOBAL = 523; +TSqlParser.GO = 524; +TSqlParser.GROUP_MAX_REQUESTS = 525; +TSqlParser.GROUPING = 526; +TSqlParser.GROUPING_ID = 527; +TSqlParser.HADR = 528; +TSqlParser.HASH = 529; +TSqlParser.HEALTH_CHECK_TIMEOUT = 530; +TSqlParser.HIGH = 531; +TSqlParser.HONOR_BROKER_PRIORITY = 532; +TSqlParser.HOURS = 533; +TSqlParser.IDENTITY_VALUE = 534; +TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX = 535; +TSqlParser.IMMEDIATE = 536; +TSqlParser.IMPERSONATE = 537; +TSqlParser.IMPORTANCE = 538; +TSqlParser.INCLUDE_NULL_VALUES = 539; +TSqlParser.INCREMENTAL = 540; +TSqlParser.INITIATOR = 541; +TSqlParser.INPUT = 542; +TSqlParser.INSENSITIVE = 543; +TSqlParser.INSERTED = 544; +TSqlParser.INT = 545; +TSqlParser.IP = 546; +TSqlParser.ISOLATION = 547; +TSqlParser.JOB = 548; +TSqlParser.JSON = 549; +TSqlParser.KB = 550; +TSqlParser.KEEP = 551; +TSqlParser.KEEPFIXED = 552; +TSqlParser.KEY_SOURCE = 553; +TSqlParser.KEYS = 554; +TSqlParser.KEYSET = 555; +TSqlParser.LAG = 556; +TSqlParser.LAST = 557; +TSqlParser.LAST_VALUE = 558; +TSqlParser.LEAD = 559; +TSqlParser.LEVEL = 560; +TSqlParser.LIST = 561; +TSqlParser.LISTENER = 562; +TSqlParser.LISTENER_URL = 563; +TSqlParser.LOB_COMPACTION = 564; +TSqlParser.LOCAL = 565; +TSqlParser.LOCATION = 566; +TSqlParser.LOCK = 567; +TSqlParser.LOCK_ESCALATION = 568; +TSqlParser.LOGIN = 569; +TSqlParser.LOOP = 570; +TSqlParser.LOW = 571; +TSqlParser.MANUAL = 572; +TSqlParser.MARK = 573; +TSqlParser.MATERIALIZED = 574; +TSqlParser.MAX = 575; +TSqlParser.MAX_CPU_PERCENT = 576; +TSqlParser.MAX_DOP = 577; +TSqlParser.MAX_FILES = 578; +TSqlParser.MAX_IOPS_PER_VOLUME = 579; +TSqlParser.MAX_MEMORY_PERCENT = 580; +TSqlParser.MAX_PROCESSES = 581; +TSqlParser.MAX_QUEUE_READERS = 582; +TSqlParser.MAX_ROLLOVER_FILES = 583; +TSqlParser.MAXDOP = 584; +TSqlParser.MAXRECURSION = 585; +TSqlParser.MAXSIZE = 586; +TSqlParser.MB = 587; +TSqlParser.MEDIUM = 588; +TSqlParser.MEMORY_OPTIMIZED_DATA = 589; +TSqlParser.MESSAGE = 590; +TSqlParser.MIN = 591; +TSqlParser.MIN_ACTIVE_ROWVERSION = 592; +TSqlParser.MIN_CPU_PERCENT = 593; +TSqlParser.MIN_IOPS_PER_VOLUME = 594; +TSqlParser.MIN_MEMORY_PERCENT = 595; +TSqlParser.MINUTES = 596; +TSqlParser.MIRROR_ADDRESS = 597; +TSqlParser.MIXED_PAGE_ALLOCATION = 598; +TSqlParser.MODE = 599; +TSqlParser.MODIFY = 600; +TSqlParser.MOVE = 601; +TSqlParser.MULTI_USER = 602; +TSqlParser.NAME = 603; +TSqlParser.NESTED_TRIGGERS = 604; +TSqlParser.NEW_ACCOUNT = 605; +TSqlParser.NEW_BROKER = 606; +TSqlParser.NEW_PASSWORD = 607; +TSqlParser.NEXT = 608; +TSqlParser.NO = 609; +TSqlParser.NO_TRUNCATE = 610; +TSqlParser.NO_WAIT = 611; +TSqlParser.NOCOUNT = 612; +TSqlParser.NODES = 613; +TSqlParser.NOEXPAND = 614; +TSqlParser.NON_TRANSACTED_ACCESS = 615; +TSqlParser.NORECOMPUTE = 616; +TSqlParser.NORECOVERY = 617; +TSqlParser.NOWAIT = 618; +TSqlParser.NTILE = 619; +TSqlParser.NUMANODE = 620; +TSqlParser.NUMBER = 621; +TSqlParser.NUMERIC_ROUNDABORT = 622; +TSqlParser.OBJECT = 623; +TSqlParser.OFFLINE = 624; +TSqlParser.OFFSET = 625; +TSqlParser.OLD_ACCOUNT = 626; +TSqlParser.ONLINE = 627; +TSqlParser.ONLY = 628; +TSqlParser.OPEN_EXISTING = 629; +TSqlParser.OPTIMISTIC = 630; +TSqlParser.OPTIMIZE = 631; +TSqlParser.OUT = 632; +TSqlParser.OUTPUT = 633; +TSqlParser.OVERRIDE = 634; +TSqlParser.OWNER = 635; +TSqlParser.PAGE_VERIFY = 636; +TSqlParser.PARAMETERIZATION = 637; +TSqlParser.PARTITION = 638; +TSqlParser.PARTITIONS = 639; +TSqlParser.PARTNER = 640; +TSqlParser.PATH = 641; +TSqlParser.POISON_MESSAGE_HANDLING = 642; +TSqlParser.POOL = 643; +TSqlParser.PORT = 644; +TSqlParser.PRECEDING = 645; +TSqlParser.PRIMARY_ROLE = 646; +TSqlParser.PRIOR = 647; +TSqlParser.PRIORITY = 648; +TSqlParser.PRIORITY_LEVEL = 649; +TSqlParser.PRIVATE = 650; +TSqlParser.PRIVATE_KEY = 651; +TSqlParser.PRIVILEGES = 652; +TSqlParser.PROCEDURE_NAME = 653; +TSqlParser.PROPERTY = 654; +TSqlParser.PROVIDER = 655; +TSqlParser.PROVIDER_KEY_NAME = 656; +TSqlParser.QUERY = 657; +TSqlParser.QUEUE = 658; +TSqlParser.QUEUE_DELAY = 659; +TSqlParser.QUOTED_IDENTIFIER = 660; +TSqlParser.RANGE = 661; +TSqlParser.RANK = 662; +TSqlParser.RC2 = 663; +TSqlParser.RC4 = 664; +TSqlParser.RC4_128 = 665; +TSqlParser.READ_COMMITTED_SNAPSHOT = 666; +TSqlParser.READ_ONLY = 667; +TSqlParser.READ_ONLY_ROUTING_LIST = 668; +TSqlParser.READ_WRITE = 669; +TSqlParser.READONLY = 670; +TSqlParser.REBUILD = 671; +TSqlParser.RECEIVE = 672; +TSqlParser.RECOMPILE = 673; +TSqlParser.RECOVERY = 674; +TSqlParser.RECURSIVE_TRIGGERS = 675; +TSqlParser.RELATIVE = 676; +TSqlParser.REMOTE = 677; +TSqlParser.REMOTE_SERVICE_NAME = 678; +TSqlParser.REMOVE = 679; +TSqlParser.REORGANIZE = 680; +TSqlParser.REPEATABLE = 681; +TSqlParser.REPLICA = 682; +TSqlParser.REQUEST_MAX_CPU_TIME_SEC = 683; +TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT = 684; +TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 685; +TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 686; +TSqlParser.RESERVE_DISK_SPACE = 687; +TSqlParser.RESOURCE = 688; +TSqlParser.RESOURCE_MANAGER_LOCATION = 689; +TSqlParser.RESTRICTED_USER = 690; +TSqlParser.RETENTION = 691; +TSqlParser.ROBUST = 692; +TSqlParser.ROOT = 693; +TSqlParser.ROUTE = 694; +TSqlParser.ROW = 695; +TSqlParser.ROW_NUMBER = 696; +TSqlParser.ROWGUID = 697; +TSqlParser.ROWS = 698; +TSqlParser.SAMPLE = 699; +TSqlParser.SCHEMABINDING = 700; +TSqlParser.SCOPED = 701; +TSqlParser.SCROLL = 702; +TSqlParser.SCROLL_LOCKS = 703; +TSqlParser.SEARCH = 704; +TSqlParser.SECONDARY = 705; +TSqlParser.SECONDARY_ONLY = 706; +TSqlParser.SECONDARY_ROLE = 707; +TSqlParser.SECONDS = 708; +TSqlParser.SECRET = 709; +TSqlParser.SECURITY = 710; +TSqlParser.SECURITY_LOG = 711; +TSqlParser.SEEDING_MODE = 712; +TSqlParser.SELF = 713; +TSqlParser.SEMI_SENSITIVE = 714; +TSqlParser.SEND = 715; +TSqlParser.SENT = 716; +TSqlParser.SEQUENCE = 717; +TSqlParser.SERIALIZABLE = 718; +TSqlParser.SESSION_TIMEOUT = 719; +TSqlParser.SETERROR = 720; +TSqlParser.SHARE = 721; +TSqlParser.SHOWPLAN = 722; +TSqlParser.SIGNATURE = 723; +TSqlParser.SIMPLE = 724; +TSqlParser.SINGLE_USER = 725; +TSqlParser.SIZE = 726; +TSqlParser.SMALLINT = 727; +TSqlParser.SNAPSHOT = 728; +TSqlParser.SPATIAL_WINDOW_MAX_CELLS = 729; +TSqlParser.STANDBY = 730; +TSqlParser.START_DATE = 731; +TSqlParser.STATIC = 732; +TSqlParser.STATS_STREAM = 733; +TSqlParser.STATUS = 734; +TSqlParser.STATUSONLY = 735; +TSqlParser.STDEV = 736; +TSqlParser.STDEVP = 737; +TSqlParser.STOPLIST = 738; +TSqlParser.STRING_AGG = 739; +TSqlParser.STUFF = 740; +TSqlParser.SUBJECT = 741; +TSqlParser.SUBSCRIPTION = 742; +TSqlParser.SUM = 743; +TSqlParser.SUSPEND = 744; +TSqlParser.SYMMETRIC = 745; +TSqlParser.SYNCHRONOUS_COMMIT = 746; +TSqlParser.SYNONYM = 747; +TSqlParser.SYSTEM = 748; +TSqlParser.TAKE = 749; +TSqlParser.TARGET_RECOVERY_TIME = 750; +TSqlParser.TB = 751; +TSqlParser.TEXTIMAGE_ON = 752; +TSqlParser.THROW = 753; +TSqlParser.TIES = 754; +TSqlParser.TIME = 755; +TSqlParser.TIMEOUT = 756; +TSqlParser.TIMER = 757; +TSqlParser.TINYINT = 758; +TSqlParser.TORN_PAGE_DETECTION = 759; +TSqlParser.TRANSFORM_NOISE_WORDS = 760; +TSqlParser.TRIPLE_DES = 761; +TSqlParser.TRIPLE_DES_3KEY = 762; +TSqlParser.TRUSTWORTHY = 763; +TSqlParser.TRY = 764; +TSqlParser.TSQL = 765; +TSqlParser.TWO_DIGIT_YEAR_CUTOFF = 766; +TSqlParser.TYPE = 767; +TSqlParser.TYPE_WARNING = 768; +TSqlParser.UNBOUNDED = 769; +TSqlParser.UNCOMMITTED = 770; +TSqlParser.UNKNOWN = 771; +TSqlParser.UNLIMITED = 772; +TSqlParser.UOW = 773; +TSqlParser.USING = 774; +TSqlParser.VALID_XML = 775; +TSqlParser.VALIDATION = 776; +TSqlParser.VALUE = 777; +TSqlParser.VAR = 778; +TSqlParser.VARP = 779; +TSqlParser.VIEW_METADATA = 780; +TSqlParser.VIEWS = 781; +TSqlParser.WAIT = 782; +TSqlParser.WELL_FORMED_XML = 783; +TSqlParser.WITHOUT_ARRAY_WRAPPER = 784; +TSqlParser.WORK = 785; +TSqlParser.WORKLOAD = 786; +TSqlParser.XML = 787; +TSqlParser.XMLDATA = 788; +TSqlParser.XMLNAMESPACES = 789; +TSqlParser.XMLSCHEMA = 790; +TSqlParser.XSINIL = 791; +TSqlParser.DOLLAR_ACTION = 792; +TSqlParser.SPACE = 793; +TSqlParser.COMMENT = 794; +TSqlParser.LINE_COMMENT = 795; +TSqlParser.DOUBLE_QUOTE_ID = 796; +TSqlParser.SINGLE_QUOTE = 797; +TSqlParser.SQUARE_BRACKET_ID = 798; +TSqlParser.LOCAL_ID = 799; +TSqlParser.DECIMAL = 800; +TSqlParser.ID = 801; +TSqlParser.QUOTED_URL = 802; +TSqlParser.QUOTED_HOST_AND_PORT = 803; +TSqlParser.STRING = 804; +TSqlParser.BINARY = 805; +TSqlParser.FLOAT = 806; +TSqlParser.REAL = 807; +TSqlParser.EQUAL = 808; +TSqlParser.GREATER = 809; +TSqlParser.LESS = 810; +TSqlParser.EXCLAMATION = 811; +TSqlParser.PLUS_ASSIGN = 812; +TSqlParser.MINUS_ASSIGN = 813; +TSqlParser.MULT_ASSIGN = 814; +TSqlParser.DIV_ASSIGN = 815; +TSqlParser.MOD_ASSIGN = 816; +TSqlParser.AND_ASSIGN = 817; +TSqlParser.XOR_ASSIGN = 818; +TSqlParser.OR_ASSIGN = 819; +TSqlParser.DOUBLE_BAR = 820; +TSqlParser.DOT = 821; +TSqlParser.UNDERLINE = 822; +TSqlParser.AT = 823; +TSqlParser.SHARP = 824; +TSqlParser.DOLLAR = 825; +TSqlParser.LR_BRACKET = 826; +TSqlParser.RR_BRACKET = 827; +TSqlParser.COMMA = 828; +TSqlParser.SEMI = 829; +TSqlParser.COLON = 830; +TSqlParser.STAR = 831; +TSqlParser.DIVIDE = 832; +TSqlParser.MODULE = 833; +TSqlParser.PLUS = 834; +TSqlParser.MINUS = 835; +TSqlParser.BIT_NOT = 836; +TSqlParser.BIT_OR = 837; +TSqlParser.BIT_AND = 838; +TSqlParser.BIT_XOR = 839; +TSqlParser.IPV4_OCTECT = 840; + +TSqlParser.RULE_tsql_file = 0; +TSqlParser.RULE_batch = 1; +TSqlParser.RULE_sql_clauses = 2; +TSqlParser.RULE_sql_clause = 3; +TSqlParser.RULE_dml_clause = 4; +TSqlParser.RULE_ddl_clause = 5; +TSqlParser.RULE_backup_statement = 6; +TSqlParser.RULE_cfl_statement = 7; +TSqlParser.RULE_block_statement = 8; +TSqlParser.RULE_break_statement = 9; +TSqlParser.RULE_continue_statement = 10; +TSqlParser.RULE_goto_statement = 11; +TSqlParser.RULE_return_statement = 12; +TSqlParser.RULE_if_statement = 13; +TSqlParser.RULE_throw_statement = 14; +TSqlParser.RULE_throw_error_number = 15; +TSqlParser.RULE_throw_message = 16; +TSqlParser.RULE_throw_state = 17; +TSqlParser.RULE_try_catch_statement = 18; +TSqlParser.RULE_waitfor_statement = 19; +TSqlParser.RULE_while_statement = 20; +TSqlParser.RULE_print_statement = 21; +TSqlParser.RULE_raiseerror_statement = 22; +TSqlParser.RULE_empty_statement = 23; +TSqlParser.RULE_another_statement = 24; +TSqlParser.RULE_alter_application_role = 25; +TSqlParser.RULE_create_application_role = 26; +TSqlParser.RULE_drop_aggregate = 27; +TSqlParser.RULE_drop_application_role = 28; +TSqlParser.RULE_alter_assembly = 29; +TSqlParser.RULE_alter_assembly_start = 30; +TSqlParser.RULE_alter_assembly_clause = 31; +TSqlParser.RULE_alter_assembly_from_clause = 32; +TSqlParser.RULE_alter_assembly_from_clause_start = 33; +TSqlParser.RULE_alter_assembly_drop_clause = 34; +TSqlParser.RULE_alter_assembly_drop_multiple_files = 35; +TSqlParser.RULE_alter_assembly_drop = 36; +TSqlParser.RULE_alter_assembly_add_clause = 37; +TSqlParser.RULE_alter_asssembly_add_clause_start = 38; +TSqlParser.RULE_alter_assembly_client_file_clause = 39; +TSqlParser.RULE_alter_assembly_file_name = 40; +TSqlParser.RULE_alter_assembly_file_bits = 41; +TSqlParser.RULE_alter_assembly_as = 42; +TSqlParser.RULE_alter_assembly_with_clause = 43; +TSqlParser.RULE_alter_assembly_with = 44; +TSqlParser.RULE_client_assembly_specifier = 45; +TSqlParser.RULE_assembly_option = 46; +TSqlParser.RULE_network_file_share = 47; +TSqlParser.RULE_network_computer = 48; +TSqlParser.RULE_network_file_start = 49; +TSqlParser.RULE_file_path = 50; +TSqlParser.RULE_file_directory_path_separator = 51; +TSqlParser.RULE_local_file = 52; +TSqlParser.RULE_local_drive = 53; +TSqlParser.RULE_multiple_local_files = 54; +TSqlParser.RULE_multiple_local_file_start = 55; +TSqlParser.RULE_create_assembly = 56; +TSqlParser.RULE_drop_assembly = 57; +TSqlParser.RULE_alter_asymmetric_key = 58; +TSqlParser.RULE_alter_asymmetric_key_start = 59; +TSqlParser.RULE_asymmetric_key_option = 60; +TSqlParser.RULE_asymmetric_key_option_start = 61; +TSqlParser.RULE_asymmetric_key_password_change_option = 62; +TSqlParser.RULE_create_asymmetric_key = 63; +TSqlParser.RULE_drop_asymmetric_key = 64; +TSqlParser.RULE_alter_authorization = 65; +TSqlParser.RULE_authorization_grantee = 66; +TSqlParser.RULE_entity_to = 67; +TSqlParser.RULE_colon_colon = 68; +TSqlParser.RULE_alter_authorization_start = 69; +TSqlParser.RULE_alter_authorization_for_sql_database = 70; +TSqlParser.RULE_alter_authorization_for_azure_dw = 71; +TSqlParser.RULE_alter_authorization_for_parallel_dw = 72; +TSqlParser.RULE_class_type = 73; +TSqlParser.RULE_class_type_for_sql_database = 74; +TSqlParser.RULE_class_type_for_azure_dw = 75; +TSqlParser.RULE_class_type_for_parallel_dw = 76; +TSqlParser.RULE_drop_availability_group = 77; +TSqlParser.RULE_alter_availability_group = 78; +TSqlParser.RULE_alter_availability_group_start = 79; +TSqlParser.RULE_alter_availability_group_options = 80; +TSqlParser.RULE_create_or_alter_broker_priority = 81; +TSqlParser.RULE_drop_broker_priority = 82; +TSqlParser.RULE_alter_certificate = 83; +TSqlParser.RULE_alter_column_encryption_key = 84; +TSqlParser.RULE_create_column_encryption_key = 85; +TSqlParser.RULE_drop_certificate = 86; +TSqlParser.RULE_drop_column_encryption_key = 87; +TSqlParser.RULE_drop_column_master_key = 88; +TSqlParser.RULE_drop_contract = 89; +TSqlParser.RULE_drop_credential = 90; +TSqlParser.RULE_drop_cryptograhic_provider = 91; +TSqlParser.RULE_drop_database = 92; +TSqlParser.RULE_drop_database_audit_specification = 93; +TSqlParser.RULE_drop_database_scoped_credential = 94; +TSqlParser.RULE_drop_default = 95; +TSqlParser.RULE_drop_endpoint = 96; +TSqlParser.RULE_drop_external_data_source = 97; +TSqlParser.RULE_drop_external_file_format = 98; +TSqlParser.RULE_drop_external_library = 99; +TSqlParser.RULE_drop_external_resource_pool = 100; +TSqlParser.RULE_drop_external_table = 101; +TSqlParser.RULE_drop_event_notifications = 102; +TSqlParser.RULE_drop_event_session = 103; +TSqlParser.RULE_drop_fulltext_catalog = 104; +TSqlParser.RULE_drop_fulltext_index = 105; +TSqlParser.RULE_drop_fulltext_stoplist = 106; +TSqlParser.RULE_drop_login = 107; +TSqlParser.RULE_drop_master_key = 108; +TSqlParser.RULE_drop_message_type = 109; +TSqlParser.RULE_drop_partition_function = 110; +TSqlParser.RULE_drop_partition_scheme = 111; +TSqlParser.RULE_drop_queue = 112; +TSqlParser.RULE_drop_remote_service_binding = 113; +TSqlParser.RULE_drop_resource_pool = 114; +TSqlParser.RULE_drop_db_role = 115; +TSqlParser.RULE_drop_route = 116; +TSqlParser.RULE_drop_rule = 117; +TSqlParser.RULE_drop_schema = 118; +TSqlParser.RULE_drop_search_property_list = 119; +TSqlParser.RULE_drop_security_policy = 120; +TSqlParser.RULE_drop_sequence = 121; +TSqlParser.RULE_drop_server_audit = 122; +TSqlParser.RULE_drop_server_audit_specification = 123; +TSqlParser.RULE_drop_server_role = 124; +TSqlParser.RULE_drop_service = 125; +TSqlParser.RULE_drop_signature = 126; +TSqlParser.RULE_drop_statistics_name_azure_dw_and_pdw = 127; +TSqlParser.RULE_drop_symmetric_key = 128; +TSqlParser.RULE_drop_synonym = 129; +TSqlParser.RULE_drop_user = 130; +TSqlParser.RULE_drop_workload_group = 131; +TSqlParser.RULE_drop_xml_schema_collection = 132; +TSqlParser.RULE_disable_trigger = 133; +TSqlParser.RULE_enable_trigger = 134; +TSqlParser.RULE_lock_table = 135; +TSqlParser.RULE_truncate_table = 136; +TSqlParser.RULE_create_column_master_key = 137; +TSqlParser.RULE_alter_credential = 138; +TSqlParser.RULE_create_credential = 139; +TSqlParser.RULE_alter_cryptographic_provider = 140; +TSqlParser.RULE_create_cryptographic_provider = 141; +TSqlParser.RULE_create_event_notification = 142; +TSqlParser.RULE_create_or_alter_event_session = 143; +TSqlParser.RULE_event_session_predicate_expression = 144; +TSqlParser.RULE_event_session_predicate_factor = 145; +TSqlParser.RULE_event_session_predicate_leaf = 146; +TSqlParser.RULE_alter_external_data_source = 147; +TSqlParser.RULE_alter_external_library = 148; +TSqlParser.RULE_create_external_library = 149; +TSqlParser.RULE_alter_external_resource_pool = 150; +TSqlParser.RULE_create_external_resource_pool = 151; +TSqlParser.RULE_alter_fulltext_catalog = 152; +TSqlParser.RULE_create_fulltext_catalog = 153; +TSqlParser.RULE_alter_fulltext_stoplist = 154; +TSqlParser.RULE_create_fulltext_stoplist = 155; +TSqlParser.RULE_alter_login_sql_server = 156; +TSqlParser.RULE_create_login_sql_server = 157; +TSqlParser.RULE_alter_login_azure_sql = 158; +TSqlParser.RULE_create_login_azure_sql = 159; +TSqlParser.RULE_alter_login_azure_sql_dw_and_pdw = 160; +TSqlParser.RULE_create_login_pdw = 161; +TSqlParser.RULE_alter_master_key_sql_server = 162; +TSqlParser.RULE_create_master_key_sql_server = 163; +TSqlParser.RULE_alter_master_key_azure_sql = 164; +TSqlParser.RULE_create_master_key_azure_sql = 165; +TSqlParser.RULE_alter_message_type = 166; +TSqlParser.RULE_alter_partition_function = 167; +TSqlParser.RULE_alter_partition_scheme = 168; +TSqlParser.RULE_alter_remote_service_binding = 169; +TSqlParser.RULE_create_remote_service_binding = 170; +TSqlParser.RULE_create_resource_pool = 171; +TSqlParser.RULE_alter_resource_governor = 172; +TSqlParser.RULE_alter_db_role = 173; +TSqlParser.RULE_create_db_role = 174; +TSqlParser.RULE_create_route = 175; +TSqlParser.RULE_create_rule = 176; +TSqlParser.RULE_alter_schema_sql = 177; +TSqlParser.RULE_create_schema = 178; +TSqlParser.RULE_create_schema_azure_sql_dw_and_pdw = 179; +TSqlParser.RULE_alter_schema_azure_sql_dw_and_pdw = 180; +TSqlParser.RULE_create_search_property_list = 181; +TSqlParser.RULE_create_security_policy = 182; +TSqlParser.RULE_alter_sequence = 183; +TSqlParser.RULE_create_sequence = 184; +TSqlParser.RULE_alter_server_audit = 185; +TSqlParser.RULE_create_server_audit = 186; +TSqlParser.RULE_alter_server_audit_specification = 187; +TSqlParser.RULE_create_server_audit_specification = 188; +TSqlParser.RULE_alter_server_configuration = 189; +TSqlParser.RULE_alter_server_role = 190; +TSqlParser.RULE_create_server_role = 191; +TSqlParser.RULE_alter_server_role_pdw = 192; +TSqlParser.RULE_alter_service = 193; +TSqlParser.RULE_create_service = 194; +TSqlParser.RULE_alter_service_master_key = 195; +TSqlParser.RULE_alter_symmetric_key = 196; +TSqlParser.RULE_create_symmetric_key = 197; +TSqlParser.RULE_create_synonym = 198; +TSqlParser.RULE_alter_user = 199; +TSqlParser.RULE_create_user = 200; +TSqlParser.RULE_create_user_azure_sql_dw = 201; +TSqlParser.RULE_alter_user_azure_sql = 202; +TSqlParser.RULE_alter_workload_group = 203; +TSqlParser.RULE_create_workload_group = 204; +TSqlParser.RULE_create_xml_schema_collection = 205; +TSqlParser.RULE_create_queue = 206; +TSqlParser.RULE_queue_settings = 207; +TSqlParser.RULE_alter_queue = 208; +TSqlParser.RULE_queue_action = 209; +TSqlParser.RULE_queue_rebuild_options = 210; +TSqlParser.RULE_create_contract = 211; +TSqlParser.RULE_conversation_statement = 212; +TSqlParser.RULE_message_statement = 213; +TSqlParser.RULE_merge_statement = 214; +TSqlParser.RULE_merge_matched = 215; +TSqlParser.RULE_merge_not_matched = 216; +TSqlParser.RULE_delete_statement = 217; +TSqlParser.RULE_delete_statement_from = 218; +TSqlParser.RULE_insert_statement = 219; +TSqlParser.RULE_insert_statement_value = 220; +TSqlParser.RULE_receive_statement = 221; +TSqlParser.RULE_select_statement = 222; +TSqlParser.RULE_time = 223; +TSqlParser.RULE_update_statement = 224; +TSqlParser.RULE_output_clause = 225; +TSqlParser.RULE_output_dml_list_elem = 226; +TSqlParser.RULE_output_column_name = 227; +TSqlParser.RULE_create_database = 228; +TSqlParser.RULE_create_index = 229; +TSqlParser.RULE_create_or_alter_procedure = 230; +TSqlParser.RULE_create_or_alter_trigger = 231; +TSqlParser.RULE_create_or_alter_dml_trigger = 232; +TSqlParser.RULE_dml_trigger_option = 233; +TSqlParser.RULE_dml_trigger_operation = 234; +TSqlParser.RULE_create_or_alter_ddl_trigger = 235; +TSqlParser.RULE_ddl_trigger_operation = 236; +TSqlParser.RULE_create_or_alter_function = 237; +TSqlParser.RULE_func_body_returns_select = 238; +TSqlParser.RULE_func_body_returns_table = 239; +TSqlParser.RULE_func_body_returns_scalar = 240; +TSqlParser.RULE_procedure_param = 241; +TSqlParser.RULE_procedure_option = 242; +TSqlParser.RULE_function_option = 243; +TSqlParser.RULE_create_statistics = 244; +TSqlParser.RULE_update_statistics = 245; +TSqlParser.RULE_create_table = 246; +TSqlParser.RULE_table_options = 247; +TSqlParser.RULE_create_view = 248; +TSqlParser.RULE_view_attribute = 249; +TSqlParser.RULE_alter_table = 250; +TSqlParser.RULE_alter_database = 251; +TSqlParser.RULE_database_optionspec = 252; +TSqlParser.RULE_auto_option = 253; +TSqlParser.RULE_change_tracking_option = 254; +TSqlParser.RULE_change_tracking_option_list = 255; +TSqlParser.RULE_containment_option = 256; +TSqlParser.RULE_cursor_option = 257; +TSqlParser.RULE_alter_endpoint = 258; +TSqlParser.RULE_database_mirroring_option = 259; +TSqlParser.RULE_mirroring_set_option = 260; +TSqlParser.RULE_mirroring_partner = 261; +TSqlParser.RULE_mirroring_witness = 262; +TSqlParser.RULE_witness_partner_equal = 263; +TSqlParser.RULE_partner_option = 264; +TSqlParser.RULE_witness_option = 265; +TSqlParser.RULE_witness_server = 266; +TSqlParser.RULE_partner_server = 267; +TSqlParser.RULE_mirroring_host_port_seperator = 268; +TSqlParser.RULE_partner_server_tcp_prefix = 269; +TSqlParser.RULE_port_number = 270; +TSqlParser.RULE_host = 271; +TSqlParser.RULE_date_correlation_optimization_option = 272; +TSqlParser.RULE_db_encryption_option = 273; +TSqlParser.RULE_db_state_option = 274; +TSqlParser.RULE_db_update_option = 275; +TSqlParser.RULE_db_user_access_option = 276; +TSqlParser.RULE_delayed_durability_option = 277; +TSqlParser.RULE_external_access_option = 278; +TSqlParser.RULE_hadr_options = 279; +TSqlParser.RULE_mixed_page_allocation_option = 280; +TSqlParser.RULE_parameterization_option = 281; +TSqlParser.RULE_recovery_option = 282; +TSqlParser.RULE_service_broker_option = 283; +TSqlParser.RULE_snapshot_option = 284; +TSqlParser.RULE_sql_option = 285; +TSqlParser.RULE_target_recovery_time_option = 286; +TSqlParser.RULE_termination = 287; +TSqlParser.RULE_drop_index = 288; +TSqlParser.RULE_drop_relational_or_xml_or_spatial_index = 289; +TSqlParser.RULE_drop_backward_compatible_index = 290; +TSqlParser.RULE_drop_procedure = 291; +TSqlParser.RULE_drop_trigger = 292; +TSqlParser.RULE_drop_dml_trigger = 293; +TSqlParser.RULE_drop_ddl_trigger = 294; +TSqlParser.RULE_drop_function = 295; +TSqlParser.RULE_drop_statistics = 296; +TSqlParser.RULE_drop_table = 297; +TSqlParser.RULE_drop_view = 298; +TSqlParser.RULE_create_type = 299; +TSqlParser.RULE_drop_type = 300; +TSqlParser.RULE_rowset_function_limited = 301; +TSqlParser.RULE_openquery = 302; +TSqlParser.RULE_opendatasource = 303; +TSqlParser.RULE_declare_statement = 304; +TSqlParser.RULE_cursor_statement = 305; +TSqlParser.RULE_backup_database = 306; +TSqlParser.RULE_backup_log = 307; +TSqlParser.RULE_backup_certificate = 308; +TSqlParser.RULE_backup_master_key = 309; +TSqlParser.RULE_backup_service_master_key = 310; +TSqlParser.RULE_kill_statement = 311; +TSqlParser.RULE_kill_process = 312; +TSqlParser.RULE_kill_query_notification = 313; +TSqlParser.RULE_kill_stats_job = 314; +TSqlParser.RULE_execute_statement = 315; +TSqlParser.RULE_execute_body = 316; +TSqlParser.RULE_execute_statement_arg = 317; +TSqlParser.RULE_execute_var_string = 318; +TSqlParser.RULE_security_statement = 319; +TSqlParser.RULE_create_certificate = 320; +TSqlParser.RULE_existing_keys = 321; +TSqlParser.RULE_private_key_options = 322; +TSqlParser.RULE_generate_new_keys = 323; +TSqlParser.RULE_date_options = 324; +TSqlParser.RULE_open_key = 325; +TSqlParser.RULE_close_key = 326; +TSqlParser.RULE_create_key = 327; +TSqlParser.RULE_key_options = 328; +TSqlParser.RULE_algorithm = 329; +TSqlParser.RULE_encryption_mechanism = 330; +TSqlParser.RULE_decryption_mechanism = 331; +TSqlParser.RULE_grant_permission = 332; +TSqlParser.RULE_set_statement = 333; +TSqlParser.RULE_transaction_statement = 334; +TSqlParser.RULE_go_statement = 335; +TSqlParser.RULE_use_statement = 336; +TSqlParser.RULE_setuser_statement = 337; +TSqlParser.RULE_reconfigure_statement = 338; +TSqlParser.RULE_shutdown_statement = 339; +TSqlParser.RULE_dbcc_clause = 340; +TSqlParser.RULE_dbcc_options = 341; +TSqlParser.RULE_execute_clause = 342; +TSqlParser.RULE_declare_local = 343; +TSqlParser.RULE_table_type_definition = 344; +TSqlParser.RULE_xml_type_definition = 345; +TSqlParser.RULE_xml_schema_collection = 346; +TSqlParser.RULE_column_def_table_constraints = 347; +TSqlParser.RULE_column_def_table_constraint = 348; +TSqlParser.RULE_column_definition = 349; +TSqlParser.RULE_materialized_column_definition = 350; +TSqlParser.RULE_column_constraint = 351; +TSqlParser.RULE_table_constraint = 352; +TSqlParser.RULE_on_delete = 353; +TSqlParser.RULE_on_update = 354; +TSqlParser.RULE_index_options = 355; +TSqlParser.RULE_index_option = 356; +TSqlParser.RULE_declare_cursor = 357; +TSqlParser.RULE_declare_set_cursor_common = 358; +TSqlParser.RULE_declare_set_cursor_common_partial = 359; +TSqlParser.RULE_fetch_cursor = 360; +TSqlParser.RULE_set_special = 361; +TSqlParser.RULE_constant_LOCAL_ID = 362; +TSqlParser.RULE_expression = 363; +TSqlParser.RULE_primitive_expression = 364; +TSqlParser.RULE_case_expression = 365; +TSqlParser.RULE_unary_operator_expression = 366; +TSqlParser.RULE_bracket_expression = 367; +TSqlParser.RULE_constant_expression = 368; +TSqlParser.RULE_subquery = 369; +TSqlParser.RULE_with_expression = 370; +TSqlParser.RULE_common_table_expression = 371; +TSqlParser.RULE_update_elem = 372; +TSqlParser.RULE_search_condition_list = 373; +TSqlParser.RULE_search_condition = 374; +TSqlParser.RULE_search_condition_and = 375; +TSqlParser.RULE_search_condition_not = 376; +TSqlParser.RULE_predicate = 377; +TSqlParser.RULE_query_expression = 378; +TSqlParser.RULE_sql_union = 379; +TSqlParser.RULE_query_specification = 380; +TSqlParser.RULE_top_clause = 381; +TSqlParser.RULE_top_percent = 382; +TSqlParser.RULE_top_count = 383; +TSqlParser.RULE_order_by_clause = 384; +TSqlParser.RULE_for_clause = 385; +TSqlParser.RULE_xml_common_directives = 386; +TSqlParser.RULE_order_by_expression = 387; +TSqlParser.RULE_group_by_item = 388; +TSqlParser.RULE_option_clause = 389; +TSqlParser.RULE_option = 390; +TSqlParser.RULE_optimize_for_arg = 391; +TSqlParser.RULE_select_list = 392; +TSqlParser.RULE_udt_method_arguments = 393; +TSqlParser.RULE_asterisk = 394; +TSqlParser.RULE_column_elem = 395; +TSqlParser.RULE_udt_elem = 396; +TSqlParser.RULE_expression_elem = 397; +TSqlParser.RULE_select_list_elem = 398; +TSqlParser.RULE_table_sources = 399; +TSqlParser.RULE_table_source = 400; +TSqlParser.RULE_table_source_item_joined = 401; +TSqlParser.RULE_table_source_item = 402; +TSqlParser.RULE_open_xml = 403; +TSqlParser.RULE_schema_declaration = 404; +TSqlParser.RULE_column_declaration = 405; +TSqlParser.RULE_change_table = 406; +TSqlParser.RULE_join_part = 407; +TSqlParser.RULE_pivot_clause = 408; +TSqlParser.RULE_unpivot_clause = 409; +TSqlParser.RULE_full_column_name_list = 410; +TSqlParser.RULE_table_name_with_hint = 411; +TSqlParser.RULE_rowset_function = 412; +TSqlParser.RULE_bulk_option = 413; +TSqlParser.RULE_derived_table = 414; +TSqlParser.RULE_function_call = 415; +TSqlParser.RULE_xml_data_type_methods = 416; +TSqlParser.RULE_value_method = 417; +TSqlParser.RULE_query_method = 418; +TSqlParser.RULE_exist_method = 419; +TSqlParser.RULE_modify_method = 420; +TSqlParser.RULE_nodes_method = 421; +TSqlParser.RULE_switch_section = 422; +TSqlParser.RULE_switch_search_condition_section = 423; +TSqlParser.RULE_as_column_alias = 424; +TSqlParser.RULE_as_table_alias = 425; +TSqlParser.RULE_table_alias = 426; +TSqlParser.RULE_with_table_hints = 427; +TSqlParser.RULE_insert_with_table_hints = 428; +TSqlParser.RULE_table_hint = 429; +TSqlParser.RULE_index_value = 430; +TSqlParser.RULE_column_alias_list = 431; +TSqlParser.RULE_column_alias = 432; +TSqlParser.RULE_table_value_constructor = 433; +TSqlParser.RULE_expression_list = 434; +TSqlParser.RULE_ranking_windowed_function = 435; +TSqlParser.RULE_aggregate_windowed_function = 436; +TSqlParser.RULE_analytic_windowed_function = 437; +TSqlParser.RULE_all_distinct_expression = 438; +TSqlParser.RULE_over_clause = 439; +TSqlParser.RULE_row_or_range_clause = 440; +TSqlParser.RULE_window_frame_extent = 441; +TSqlParser.RULE_window_frame_bound = 442; +TSqlParser.RULE_window_frame_preceding = 443; +TSqlParser.RULE_window_frame_following = 444; +TSqlParser.RULE_create_database_option = 445; +TSqlParser.RULE_database_filestream_option = 446; +TSqlParser.RULE_database_file_spec = 447; +TSqlParser.RULE_file_group = 448; +TSqlParser.RULE_file_spec = 449; +TSqlParser.RULE_entity_name = 450; +TSqlParser.RULE_entity_name_for_azure_dw = 451; +TSqlParser.RULE_entity_name_for_parallel_dw = 452; +TSqlParser.RULE_full_table_name = 453; +TSqlParser.RULE_table_name = 454; +TSqlParser.RULE_simple_name = 455; +TSqlParser.RULE_func_proc_name_schema = 456; +TSqlParser.RULE_func_proc_name_database_schema = 457; +TSqlParser.RULE_func_proc_name_server_database_schema = 458; +TSqlParser.RULE_ddl_object = 459; +TSqlParser.RULE_full_column_name = 460; +TSqlParser.RULE_column_name_list_with_order = 461; +TSqlParser.RULE_column_name_list = 462; +TSqlParser.RULE_cursor_name = 463; +TSqlParser.RULE_on_off = 464; +TSqlParser.RULE_clustered = 465; +TSqlParser.RULE_null_notnull = 466; +TSqlParser.RULE_null_or_default = 467; +TSqlParser.RULE_scalar_function_name = 468; +TSqlParser.RULE_begin_conversation_timer = 469; +TSqlParser.RULE_begin_conversation_dialog = 470; +TSqlParser.RULE_contract_name = 471; +TSqlParser.RULE_service_name = 472; +TSqlParser.RULE_end_conversation = 473; +TSqlParser.RULE_waitfor_conversation = 474; +TSqlParser.RULE_get_conversation = 475; +TSqlParser.RULE_queue_id = 476; +TSqlParser.RULE_send_conversation = 477; +TSqlParser.RULE_data_type = 478; +TSqlParser.RULE_default_value = 479; +TSqlParser.RULE_constant = 480; +TSqlParser.RULE_sign = 481; +TSqlParser.RULE_id = 482; +TSqlParser.RULE_simple_id = 483; +TSqlParser.RULE_comparison_operator = 484; +TSqlParser.RULE_assignment_operator = 485; +TSqlParser.RULE_file_size = 486; + + +function Tsql_fileContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_tsql_file; + return this; +} + +Tsql_fileContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Tsql_fileContext.prototype.constructor = Tsql_fileContext; + +Tsql_fileContext.prototype.EOF = function() { + return this.getToken(TSqlParser.EOF, 0); +}; + +Tsql_fileContext.prototype.batch = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(BatchContext); + } else { + return this.getTypedRuleContext(BatchContext,i); + } +}; + +Tsql_fileContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTsql_file(this); + } +}; + +Tsql_fileContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTsql_file(this); + } +}; + +Tsql_fileContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTsql_file(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Tsql_fileContext = Tsql_fileContext; + +TSqlParser.prototype.tsql_file = function() { + + var localctx = new Tsql_fileContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, TSqlParser.RULE_tsql_file); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 977; + this._errHandler.sync(this); + _la = this._input.LA(1); + while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << TSqlParser.ALTER) | (1 << TSqlParser.BACKUP) | (1 << TSqlParser.BEGIN) | (1 << TSqlParser.BLOCKING_HIERARCHY) | (1 << TSqlParser.BREAK))) !== 0) || ((((_la - 38)) & ~0x1f) == 0 && ((1 << (_la - 38)) & ((1 << (TSqlParser.CALLED - 38)) | (1 << (TSqlParser.CASE - 38)) | (1 << (TSqlParser.CLOSE - 38)) | (1 << (TSqlParser.COALESCE - 38)) | (1 << (TSqlParser.COMMIT - 38)) | (1 << (TSqlParser.CONTINUE - 38)) | (1 << (TSqlParser.CONVERT - 38)))) !== 0) || ((((_la - 71)) & ~0x1f) == 0 && ((1 << (_la - 71)) & ((1 << (TSqlParser.CREATE - 71)) | (1 << (TSqlParser.CURRENT_TIMESTAMP - 71)) | (1 << (TSqlParser.CURRENT_USER - 71)) | (1 << (TSqlParser.DATA_COMPRESSION - 71)) | (1 << (TSqlParser.DBCC - 71)) | (1 << (TSqlParser.DEALLOCATE - 71)) | (1 << (TSqlParser.DECLARE - 71)) | (1 << (TSqlParser.DEFAULT - 71)) | (1 << (TSqlParser.DELETE - 71)) | (1 << (TSqlParser.DROP - 71)))) !== 0) || ((((_la - 106)) & ~0x1f) == 0 && ((1 << (_la - 106)) & ((1 << (TSqlParser.END - 106)) | (1 << (TSqlParser.EVENTDATA - 106)) | (1 << (TSqlParser.EXECUTE - 106)) | (1 << (TSqlParser.FETCH - 106)) | (1 << (TSqlParser.FILENAME - 106)) | (1 << (TSqlParser.FILLFACTOR - 106)) | (1 << (TSqlParser.FORCESEEK - 106)))) !== 0) || ((((_la - 140)) & ~0x1f) == 0 && ((1 << (_la - 140)) & ((1 << (TSqlParser.GET - 140)) | (1 << (TSqlParser.GOTO - 140)) | (1 << (TSqlParser.GRANT - 140)) | (1 << (TSqlParser.IDENTITY - 140)) | (1 << (TSqlParser.IF - 140)) | (1 << (TSqlParser.IIF - 140)) | (1 << (TSqlParser.INIT - 140)) | (1 << (TSqlParser.INSERT - 140)) | (1 << (TSqlParser.ISNULL - 140)) | (1 << (TSqlParser.KEY - 140)))) !== 0) || ((((_la - 173)) & ~0x1f) == 0 && ((1 << (_la - 173)) & ((1 << (TSqlParser.KILL - 173)) | (1 << (TSqlParser.LEFT - 173)) | (1 << (TSqlParser.MASTER - 173)) | (1 << (TSqlParser.MAX_MEMORY - 173)) | (1 << (TSqlParser.MERGE - 173)))) !== 0) || ((((_la - 221)) & ~0x1f) == 0 && ((1 << (_la - 221)) & ((1 << (TSqlParser.NULL - 221)) | (1 << (TSqlParser.NULLIF - 221)) | (1 << (TSqlParser.OFFSETS - 221)) | (1 << (TSqlParser.OPEN - 221)) | (1 << (TSqlParser.OVER - 221)) | (1 << (TSqlParser.PAGE - 221)))) !== 0) || ((((_la - 255)) & ~0x1f) == 0 && ((1 << (_la - 255)) & ((1 << (TSqlParser.PRINT - 255)) | (1 << (TSqlParser.PUBLIC - 255)) | (1 << (TSqlParser.R - 255)) | (1 << (TSqlParser.RAISERROR - 255)) | (1 << (TSqlParser.RAW - 255)) | (1 << (TSqlParser.RECONFIGURE - 255)) | (1 << (TSqlParser.RETURN - 255)) | (1 << (TSqlParser.RETURNS - 255)) | (1 << (TSqlParser.REVERT - 255)) | (1 << (TSqlParser.RIGHT - 255)) | (1 << (TSqlParser.ROLLBACK - 255)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (TSqlParser.ROWCOUNT - 288)) | (1 << (TSqlParser.SAFETY - 288)) | (1 << (TSqlParser.SAVE - 288)) | (1 << (TSqlParser.SELECT - 288)) | (1 << (TSqlParser.SERVER - 288)) | (1 << (TSqlParser.SESSION_USER - 288)) | (1 << (TSqlParser.SET - 288)) | (1 << (TSqlParser.SETUSER - 288)) | (1 << (TSqlParser.SHUTDOWN - 288)) | (1 << (TSqlParser.SID - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (TSqlParser.SOURCE - 320)) | (1 << (TSqlParser.SPLIT - 320)) | (1 << (TSqlParser.STATE - 320)) | (1 << (TSqlParser.START - 320)) | (1 << (TSqlParser.SYSTEM_USER - 320)) | (1 << (TSqlParser.TARGET - 320)) | (1 << (TSqlParser.TRUNCATE - 320)))) !== 0) || ((((_la - 359)) & ~0x1f) == 0 && ((1 << (_la - 359)) & ((1 << (TSqlParser.UPDATE - 359)) | (1 << (TSqlParser.USE - 359)) | (1 << (TSqlParser.WAITFOR - 359)) | (1 << (TSqlParser.WHILE - 359)) | (1 << (TSqlParser.WITH - 359)) | (1 << (TSqlParser.ABSOLUTE - 359)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 359)) | (1 << (TSqlParser.ACTION - 359)) | (1 << (TSqlParser.ACTIVATION - 359)) | (1 << (TSqlParser.ACTIVE - 359)) | (1 << (TSqlParser.ADDRESS - 359)) | (1 << (TSqlParser.AES_128 - 359)) | (1 << (TSqlParser.AES_192 - 359)) | (1 << (TSqlParser.AES_256 - 359)) | (1 << (TSqlParser.AFFINITY - 359)) | (1 << (TSqlParser.AFTER - 359)))) !== 0) || ((((_la - 391)) & ~0x1f) == 0 && ((1 << (_la - 391)) & ((1 << (TSqlParser.AGGREGATE - 391)) | (1 << (TSqlParser.ALGORITHM - 391)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 391)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 391)) | (1 << (TSqlParser.ALLOWED - 391)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 391)) | (1 << (TSqlParser.ANSI_NULLS - 391)) | (1 << (TSqlParser.ANSI_PADDING - 391)) | (1 << (TSqlParser.ANSI_WARNINGS - 391)) | (1 << (TSqlParser.APPLICATION_LOG - 391)) | (1 << (TSqlParser.APPLY - 391)) | (1 << (TSqlParser.ARITHABORT - 391)) | (1 << (TSqlParser.ASSEMBLY - 391)) | (1 << (TSqlParser.AUDIT - 391)) | (1 << (TSqlParser.AUDIT_GUID - 391)) | (1 << (TSqlParser.AUTO - 391)) | (1 << (TSqlParser.AUTO_CLEANUP - 391)) | (1 << (TSqlParser.AUTO_CLOSE - 391)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 391)) | (1 << (TSqlParser.AUTO_SHRINK - 391)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 391)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 391)) | (1 << (TSqlParser.AVAILABILITY - 391)) | (1 << (TSqlParser.AVG - 391)) | (1 << (TSqlParser.BACKUP_PRIORITY - 391)) | (1 << (TSqlParser.BEGIN_DIALOG - 391)) | (1 << (TSqlParser.BIGINT - 391)) | (1 << (TSqlParser.BINARY_BASE64 - 391)) | (1 << (TSqlParser.BINARY_CHECKSUM - 391)) | (1 << (TSqlParser.BINDING - 391)) | (1 << (TSqlParser.BLOB_STORAGE - 391)) | (1 << (TSqlParser.BROKER - 391)))) !== 0) || ((((_la - 423)) & ~0x1f) == 0 && ((1 << (_la - 423)) & ((1 << (TSqlParser.BROKER_INSTANCE - 423)) | (1 << (TSqlParser.BULK_LOGGED - 423)) | (1 << (TSqlParser.CALLER - 423)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 423)) | (1 << (TSqlParser.CAST - 423)) | (1 << (TSqlParser.CATALOG - 423)) | (1 << (TSqlParser.CATCH - 423)) | (1 << (TSqlParser.CHANGE_RETENTION - 423)) | (1 << (TSqlParser.CHANGE_TRACKING - 423)) | (1 << (TSqlParser.CHECKSUM - 423)) | (1 << (TSqlParser.CHECKSUM_AGG - 423)) | (1 << (TSqlParser.CLEANUP - 423)) | (1 << (TSqlParser.COLLECTION - 423)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 423)) | (1 << (TSqlParser.COMMITTED - 423)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 423)) | (1 << (TSqlParser.CONCAT - 423)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 423)) | (1 << (TSqlParser.CONTENT - 423)) | (1 << (TSqlParser.CONTROL - 423)) | (1 << (TSqlParser.COOKIE - 423)) | (1 << (TSqlParser.COUNT - 423)) | (1 << (TSqlParser.COUNT_BIG - 423)) | (1 << (TSqlParser.COUNTER - 423)) | (1 << (TSqlParser.CPU - 423)) | (1 << (TSqlParser.CREATE_NEW - 423)) | (1 << (TSqlParser.CREATION_DISPOSITION - 423)) | (1 << (TSqlParser.CREDENTIAL - 423)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 423)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 423)) | (1 << (TSqlParser.CURSOR_DEFAULT - 423)) | (1 << (TSqlParser.DATA - 423)))) !== 0) || ((((_la - 455)) & ~0x1f) == 0 && ((1 << (_la - 455)) & ((1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 455)) | (1 << (TSqlParser.DATEADD - 455)) | (1 << (TSqlParser.DATEDIFF - 455)) | (1 << (TSqlParser.DATENAME - 455)) | (1 << (TSqlParser.DATEPART - 455)) | (1 << (TSqlParser.DAYS - 455)) | (1 << (TSqlParser.DB_CHAINING - 455)) | (1 << (TSqlParser.DB_FAILOVER - 455)) | (1 << (TSqlParser.DECRYPTION - 455)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 455)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 455)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 455)) | (1 << (TSqlParser.DELAY - 455)) | (1 << (TSqlParser.DELAYED_DURABILITY - 455)) | (1 << (TSqlParser.DELETED - 455)) | (1 << (TSqlParser.DENSE_RANK - 455)) | (1 << (TSqlParser.DEPENDENTS - 455)) | (1 << (TSqlParser.DES - 455)) | (1 << (TSqlParser.DESCRIPTION - 455)) | (1 << (TSqlParser.DESX - 455)) | (1 << (TSqlParser.DHCP - 455)) | (1 << (TSqlParser.DIALOG - 455)) | (1 << (TSqlParser.DIRECTORY_NAME - 455)) | (1 << (TSqlParser.DISABLE - 455)) | (1 << (TSqlParser.DISABLE_BROKER - 455)) | (1 << (TSqlParser.DISABLED - 455)) | (1 << (TSqlParser.DISK_DRIVE - 455)) | (1 << (TSqlParser.DOCUMENT - 455)) | (1 << (TSqlParser.DYNAMIC - 455)) | (1 << (TSqlParser.EMERGENCY - 455)) | (1 << (TSqlParser.EMPTY - 455)))) !== 0) || ((((_la - 487)) & ~0x1f) == 0 && ((1 << (_la - 487)) & ((1 << (TSqlParser.ENABLE - 487)) | (1 << (TSqlParser.ENABLE_BROKER - 487)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 487)) | (1 << (TSqlParser.ENCRYPTION - 487)) | (1 << (TSqlParser.ENDPOINT_URL - 487)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 487)) | (1 << (TSqlParser.EXCLUSIVE - 487)) | (1 << (TSqlParser.EXECUTABLE - 487)) | (1 << (TSqlParser.EXIST - 487)) | (1 << (TSqlParser.EXPAND - 487)) | (1 << (TSqlParser.EXPIRY_DATE - 487)) | (1 << (TSqlParser.EXPLICIT - 487)) | (1 << (TSqlParser.FAIL_OPERATION - 487)) | (1 << (TSqlParser.FAILOVER_MODE - 487)) | (1 << (TSqlParser.FAILURE - 487)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 487)) | (1 << (TSqlParser.FAST - 487)) | (1 << (TSqlParser.FAST_FORWARD - 487)) | (1 << (TSqlParser.FILEGROUP - 487)) | (1 << (TSqlParser.FILEGROWTH - 487)) | (1 << (TSqlParser.FILEPATH - 487)) | (1 << (TSqlParser.FILESTREAM - 487)) | (1 << (TSqlParser.FILTER - 487)) | (1 << (TSqlParser.FIRST - 487)) | (1 << (TSqlParser.FIRST_VALUE - 487)) | (1 << (TSqlParser.FOLLOWING - 487)) | (1 << (TSqlParser.FORCE - 487)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 487)) | (1 << (TSqlParser.FORCED - 487)) | (1 << (TSqlParser.FORMAT - 487)) | (1 << (TSqlParser.FORWARD_ONLY - 487)) | (1 << (TSqlParser.FULLSCAN - 487)))) !== 0) || ((((_la - 519)) & ~0x1f) == 0 && ((1 << (_la - 519)) & ((1 << (TSqlParser.FULLTEXT - 519)) | (1 << (TSqlParser.GB - 519)) | (1 << (TSqlParser.GETDATE - 519)) | (1 << (TSqlParser.GETUTCDATE - 519)) | (1 << (TSqlParser.GLOBAL - 519)) | (1 << (TSqlParser.GO - 519)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 519)) | (1 << (TSqlParser.GROUPING - 519)) | (1 << (TSqlParser.GROUPING_ID - 519)) | (1 << (TSqlParser.HADR - 519)) | (1 << (TSqlParser.HASH - 519)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 519)) | (1 << (TSqlParser.HIGH - 519)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 519)) | (1 << (TSqlParser.HOURS - 519)) | (1 << (TSqlParser.IDENTITY_VALUE - 519)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 519)) | (1 << (TSqlParser.IMMEDIATE - 519)) | (1 << (TSqlParser.IMPERSONATE - 519)) | (1 << (TSqlParser.IMPORTANCE - 519)) | (1 << (TSqlParser.INCREMENTAL - 519)) | (1 << (TSqlParser.INITIATOR - 519)) | (1 << (TSqlParser.INPUT - 519)) | (1 << (TSqlParser.INSENSITIVE - 519)) | (1 << (TSqlParser.INSERTED - 519)) | (1 << (TSqlParser.INT - 519)) | (1 << (TSqlParser.IP - 519)) | (1 << (TSqlParser.ISOLATION - 519)) | (1 << (TSqlParser.KB - 519)))) !== 0) || ((((_la - 551)) & ~0x1f) == 0 && ((1 << (_la - 551)) & ((1 << (TSqlParser.KEEP - 551)) | (1 << (TSqlParser.KEEPFIXED - 551)) | (1 << (TSqlParser.KEY_SOURCE - 551)) | (1 << (TSqlParser.KEYS - 551)) | (1 << (TSqlParser.KEYSET - 551)) | (1 << (TSqlParser.LAG - 551)) | (1 << (TSqlParser.LAST - 551)) | (1 << (TSqlParser.LAST_VALUE - 551)) | (1 << (TSqlParser.LEAD - 551)) | (1 << (TSqlParser.LEVEL - 551)) | (1 << (TSqlParser.LIST - 551)) | (1 << (TSqlParser.LISTENER - 551)) | (1 << (TSqlParser.LISTENER_URL - 551)) | (1 << (TSqlParser.LOB_COMPACTION - 551)) | (1 << (TSqlParser.LOCAL - 551)) | (1 << (TSqlParser.LOCATION - 551)) | (1 << (TSqlParser.LOCK - 551)) | (1 << (TSqlParser.LOCK_ESCALATION - 551)) | (1 << (TSqlParser.LOGIN - 551)) | (1 << (TSqlParser.LOOP - 551)) | (1 << (TSqlParser.LOW - 551)) | (1 << (TSqlParser.MANUAL - 551)) | (1 << (TSqlParser.MARK - 551)) | (1 << (TSqlParser.MATERIALIZED - 551)) | (1 << (TSqlParser.MAX - 551)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 551)) | (1 << (TSqlParser.MAX_DOP - 551)) | (1 << (TSqlParser.MAX_FILES - 551)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 551)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 551)) | (1 << (TSqlParser.MAX_PROCESSES - 551)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 551)))) !== 0) || ((((_la - 583)) & ~0x1f) == 0 && ((1 << (_la - 583)) & ((1 << (TSqlParser.MAX_ROLLOVER_FILES - 583)) | (1 << (TSqlParser.MAXDOP - 583)) | (1 << (TSqlParser.MAXRECURSION - 583)) | (1 << (TSqlParser.MAXSIZE - 583)) | (1 << (TSqlParser.MB - 583)) | (1 << (TSqlParser.MEDIUM - 583)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 583)) | (1 << (TSqlParser.MESSAGE - 583)) | (1 << (TSqlParser.MIN - 583)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 583)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 583)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 583)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 583)) | (1 << (TSqlParser.MINUTES - 583)) | (1 << (TSqlParser.MIRROR_ADDRESS - 583)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 583)) | (1 << (TSqlParser.MODE - 583)) | (1 << (TSqlParser.MODIFY - 583)) | (1 << (TSqlParser.MOVE - 583)) | (1 << (TSqlParser.MULTI_USER - 583)) | (1 << (TSqlParser.NAME - 583)) | (1 << (TSqlParser.NESTED_TRIGGERS - 583)) | (1 << (TSqlParser.NEW_ACCOUNT - 583)) | (1 << (TSqlParser.NEW_BROKER - 583)) | (1 << (TSqlParser.NEW_PASSWORD - 583)) | (1 << (TSqlParser.NEXT - 583)) | (1 << (TSqlParser.NO - 583)) | (1 << (TSqlParser.NO_TRUNCATE - 583)) | (1 << (TSqlParser.NO_WAIT - 583)) | (1 << (TSqlParser.NOCOUNT - 583)) | (1 << (TSqlParser.NODES - 583)) | (1 << (TSqlParser.NOEXPAND - 583)))) !== 0) || ((((_la - 615)) & ~0x1f) == 0 && ((1 << (_la - 615)) & ((1 << (TSqlParser.NON_TRANSACTED_ACCESS - 615)) | (1 << (TSqlParser.NORECOMPUTE - 615)) | (1 << (TSqlParser.NORECOVERY - 615)) | (1 << (TSqlParser.NOWAIT - 615)) | (1 << (TSqlParser.NTILE - 615)) | (1 << (TSqlParser.NUMANODE - 615)) | (1 << (TSqlParser.NUMBER - 615)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 615)) | (1 << (TSqlParser.OBJECT - 615)) | (1 << (TSqlParser.OFFLINE - 615)) | (1 << (TSqlParser.OFFSET - 615)) | (1 << (TSqlParser.OLD_ACCOUNT - 615)) | (1 << (TSqlParser.ONLINE - 615)) | (1 << (TSqlParser.ONLY - 615)) | (1 << (TSqlParser.OPEN_EXISTING - 615)) | (1 << (TSqlParser.OPTIMISTIC - 615)) | (1 << (TSqlParser.OPTIMIZE - 615)) | (1 << (TSqlParser.OUT - 615)) | (1 << (TSqlParser.OUTPUT - 615)) | (1 << (TSqlParser.OWNER - 615)) | (1 << (TSqlParser.PAGE_VERIFY - 615)) | (1 << (TSqlParser.PARAMETERIZATION - 615)) | (1 << (TSqlParser.PARTITION - 615)) | (1 << (TSqlParser.PARTITIONS - 615)) | (1 << (TSqlParser.PARTNER - 615)) | (1 << (TSqlParser.PATH - 615)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 615)) | (1 << (TSqlParser.POOL - 615)) | (1 << (TSqlParser.PORT - 615)) | (1 << (TSqlParser.PRECEDING - 615)) | (1 << (TSqlParser.PRIMARY_ROLE - 615)))) !== 0) || ((((_la - 647)) & ~0x1f) == 0 && ((1 << (_la - 647)) & ((1 << (TSqlParser.PRIOR - 647)) | (1 << (TSqlParser.PRIORITY - 647)) | (1 << (TSqlParser.PRIORITY_LEVEL - 647)) | (1 << (TSqlParser.PRIVATE - 647)) | (1 << (TSqlParser.PRIVATE_KEY - 647)) | (1 << (TSqlParser.PRIVILEGES - 647)) | (1 << (TSqlParser.PROCEDURE_NAME - 647)) | (1 << (TSqlParser.PROPERTY - 647)) | (1 << (TSqlParser.PROVIDER - 647)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 647)) | (1 << (TSqlParser.QUERY - 647)) | (1 << (TSqlParser.QUEUE - 647)) | (1 << (TSqlParser.QUEUE_DELAY - 647)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 647)) | (1 << (TSqlParser.RANGE - 647)) | (1 << (TSqlParser.RANK - 647)) | (1 << (TSqlParser.RC2 - 647)) | (1 << (TSqlParser.RC4 - 647)) | (1 << (TSqlParser.RC4_128 - 647)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 647)) | (1 << (TSqlParser.READ_ONLY - 647)) | (1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 647)) | (1 << (TSqlParser.READ_WRITE - 647)) | (1 << (TSqlParser.READONLY - 647)) | (1 << (TSqlParser.REBUILD - 647)) | (1 << (TSqlParser.RECEIVE - 647)) | (1 << (TSqlParser.RECOMPILE - 647)) | (1 << (TSqlParser.RECOVERY - 647)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 647)) | (1 << (TSqlParser.RELATIVE - 647)) | (1 << (TSqlParser.REMOTE - 647)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 647)))) !== 0) || ((((_la - 679)) & ~0x1f) == 0 && ((1 << (_la - 679)) & ((1 << (TSqlParser.REMOVE - 679)) | (1 << (TSqlParser.REORGANIZE - 679)) | (1 << (TSqlParser.REPEATABLE - 679)) | (1 << (TSqlParser.REPLICA - 679)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 679)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 679)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 679)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 679)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 679)) | (1 << (TSqlParser.RESOURCE - 679)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 679)) | (1 << (TSqlParser.RESTRICTED_USER - 679)) | (1 << (TSqlParser.RETENTION - 679)) | (1 << (TSqlParser.ROBUST - 679)) | (1 << (TSqlParser.ROOT - 679)) | (1 << (TSqlParser.ROUTE - 679)) | (1 << (TSqlParser.ROW - 679)) | (1 << (TSqlParser.ROW_NUMBER - 679)) | (1 << (TSqlParser.ROWGUID - 679)) | (1 << (TSqlParser.ROWS - 679)) | (1 << (TSqlParser.SAMPLE - 679)) | (1 << (TSqlParser.SCHEMABINDING - 679)) | (1 << (TSqlParser.SCOPED - 679)) | (1 << (TSqlParser.SCROLL - 679)) | (1 << (TSqlParser.SCROLL_LOCKS - 679)) | (1 << (TSqlParser.SEARCH - 679)) | (1 << (TSqlParser.SECONDARY - 679)) | (1 << (TSqlParser.SECONDARY_ONLY - 679)) | (1 << (TSqlParser.SECONDARY_ROLE - 679)) | (1 << (TSqlParser.SECONDS - 679)) | (1 << (TSqlParser.SECRET - 679)) | (1 << (TSqlParser.SECURITY - 679)))) !== 0) || ((((_la - 711)) & ~0x1f) == 0 && ((1 << (_la - 711)) & ((1 << (TSqlParser.SECURITY_LOG - 711)) | (1 << (TSqlParser.SEEDING_MODE - 711)) | (1 << (TSqlParser.SELF - 711)) | (1 << (TSqlParser.SEMI_SENSITIVE - 711)) | (1 << (TSqlParser.SEND - 711)) | (1 << (TSqlParser.SENT - 711)) | (1 << (TSqlParser.SEQUENCE - 711)) | (1 << (TSqlParser.SERIALIZABLE - 711)) | (1 << (TSqlParser.SESSION_TIMEOUT - 711)) | (1 << (TSqlParser.SETERROR - 711)) | (1 << (TSqlParser.SHARE - 711)) | (1 << (TSqlParser.SHOWPLAN - 711)) | (1 << (TSqlParser.SIGNATURE - 711)) | (1 << (TSqlParser.SIMPLE - 711)) | (1 << (TSqlParser.SINGLE_USER - 711)) | (1 << (TSqlParser.SIZE - 711)) | (1 << (TSqlParser.SMALLINT - 711)) | (1 << (TSqlParser.SNAPSHOT - 711)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 711)) | (1 << (TSqlParser.STANDBY - 711)) | (1 << (TSqlParser.START_DATE - 711)) | (1 << (TSqlParser.STATIC - 711)) | (1 << (TSqlParser.STATS_STREAM - 711)) | (1 << (TSqlParser.STATUS - 711)) | (1 << (TSqlParser.STDEV - 711)) | (1 << (TSqlParser.STDEVP - 711)) | (1 << (TSqlParser.STOPLIST - 711)) | (1 << (TSqlParser.STRING_AGG - 711)) | (1 << (TSqlParser.STUFF - 711)) | (1 << (TSqlParser.SUBJECT - 711)))) !== 0) || ((((_la - 743)) & ~0x1f) == 0 && ((1 << (_la - 743)) & ((1 << (TSqlParser.SUM - 743)) | (1 << (TSqlParser.SUSPEND - 743)) | (1 << (TSqlParser.SYMMETRIC - 743)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 743)) | (1 << (TSqlParser.SYNONYM - 743)) | (1 << (TSqlParser.SYSTEM - 743)) | (1 << (TSqlParser.TAKE - 743)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 743)) | (1 << (TSqlParser.TB - 743)) | (1 << (TSqlParser.TEXTIMAGE_ON - 743)) | (1 << (TSqlParser.THROW - 743)) | (1 << (TSqlParser.TIES - 743)) | (1 << (TSqlParser.TIME - 743)) | (1 << (TSqlParser.TIMEOUT - 743)) | (1 << (TSqlParser.TIMER - 743)) | (1 << (TSqlParser.TINYINT - 743)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 743)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 743)) | (1 << (TSqlParser.TRIPLE_DES - 743)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 743)) | (1 << (TSqlParser.TRUSTWORTHY - 743)) | (1 << (TSqlParser.TRY - 743)) | (1 << (TSqlParser.TSQL - 743)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 743)) | (1 << (TSqlParser.TYPE - 743)) | (1 << (TSqlParser.TYPE_WARNING - 743)) | (1 << (TSqlParser.UNBOUNDED - 743)) | (1 << (TSqlParser.UNCOMMITTED - 743)) | (1 << (TSqlParser.UNKNOWN - 743)) | (1 << (TSqlParser.UNLIMITED - 743)) | (1 << (TSqlParser.USING - 743)))) !== 0) || ((((_la - 775)) & ~0x1f) == 0 && ((1 << (_la - 775)) & ((1 << (TSqlParser.VALID_XML - 775)) | (1 << (TSqlParser.VALIDATION - 775)) | (1 << (TSqlParser.VALUE - 775)) | (1 << (TSqlParser.VAR - 775)) | (1 << (TSqlParser.VARP - 775)) | (1 << (TSqlParser.VIEW_METADATA - 775)) | (1 << (TSqlParser.VIEWS - 775)) | (1 << (TSqlParser.WAIT - 775)) | (1 << (TSqlParser.WELL_FORMED_XML - 775)) | (1 << (TSqlParser.WORK - 775)) | (1 << (TSqlParser.WORKLOAD - 775)) | (1 << (TSqlParser.XML - 775)) | (1 << (TSqlParser.XMLNAMESPACES - 775)) | (1 << (TSqlParser.DOUBLE_QUOTE_ID - 775)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 775)) | (1 << (TSqlParser.LOCAL_ID - 775)) | (1 << (TSqlParser.DECIMAL - 775)) | (1 << (TSqlParser.ID - 775)) | (1 << (TSqlParser.STRING - 775)) | (1 << (TSqlParser.BINARY - 775)) | (1 << (TSqlParser.FLOAT - 775)))) !== 0) || ((((_la - 807)) & ~0x1f) == 0 && ((1 << (_la - 807)) & ((1 << (TSqlParser.REAL - 807)) | (1 << (TSqlParser.DOLLAR - 807)) | (1 << (TSqlParser.LR_BRACKET - 807)) | (1 << (TSqlParser.SEMI - 807)) | (1 << (TSqlParser.PLUS - 807)) | (1 << (TSqlParser.MINUS - 807)) | (1 << (TSqlParser.BIT_NOT - 807)))) !== 0)) { + this.state = 974; + this.batch(); + this.state = 979; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 980; + this.match(TSqlParser.EOF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BatchContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_batch; + return this; +} + +BatchContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BatchContext.prototype.constructor = BatchContext; + +BatchContext.prototype.execute_body = function() { + return this.getTypedRuleContext(Execute_bodyContext,0); +}; + +BatchContext.prototype.go_statement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Go_statementContext); + } else { + return this.getTypedRuleContext(Go_statementContext,i); + } +}; + +BatchContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +BatchContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBatch(this); + } +}; + +BatchContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBatch(this); + } +}; + +BatchContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBatch(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.BatchContext = BatchContext; + +TSqlParser.prototype.batch = function() { + + var localctx = new BatchContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, TSqlParser.RULE_batch); + try { + this.state = 999; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,4,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 982; + this.execute_body(); + this.state = 986; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 983; + this.go_statement(); + } + this.state = 988; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1,this._ctx); + } + + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 990; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,2,this._ctx); + if(la_===1) { + this.state = 989; + this.execute_body(); + + } + this.state = 992; + this.sql_clauses(); + this.state = 996; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,3,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 993; + this.go_statement(); + } + this.state = 998; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,3,this._ctx); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Sql_clausesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sql_clauses; + return this; +} + +Sql_clausesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Sql_clausesContext.prototype.constructor = Sql_clausesContext; + +Sql_clausesContext.prototype.sql_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clauseContext); + } else { + return this.getTypedRuleContext(Sql_clauseContext,i); + } +}; + +Sql_clausesContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEMI); + } else { + return this.getToken(TSqlParser.SEMI, i); + } +}; + + +Sql_clausesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSql_clauses(this); + } +}; + +Sql_clausesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSql_clauses(this); + } +}; + +Sql_clausesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSql_clauses(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Sql_clausesContext = Sql_clausesContext; + +TSqlParser.prototype.sql_clauses = function() { + + var localctx = new Sql_clausesContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, TSqlParser.RULE_sql_clauses); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1005; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 1001; + this.sql_clause(); + this.state = 1003; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,5,this._ctx); + if(la_===1) { + this.state = 1002; + this.match(TSqlParser.SEMI); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1007; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,6, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Sql_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sql_clause; + return this; +} + +Sql_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Sql_clauseContext.prototype.constructor = Sql_clauseContext; + +Sql_clauseContext.prototype.dml_clause = function() { + return this.getTypedRuleContext(Dml_clauseContext,0); +}; + +Sql_clauseContext.prototype.ddl_clause = function() { + return this.getTypedRuleContext(Ddl_clauseContext,0); +}; + +Sql_clauseContext.prototype.cfl_statement = function() { + return this.getTypedRuleContext(Cfl_statementContext,0); +}; + +Sql_clauseContext.prototype.dbcc_clause = function() { + return this.getTypedRuleContext(Dbcc_clauseContext,0); +}; + +Sql_clauseContext.prototype.empty_statement = function() { + return this.getTypedRuleContext(Empty_statementContext,0); +}; + +Sql_clauseContext.prototype.another_statement = function() { + return this.getTypedRuleContext(Another_statementContext,0); +}; + +Sql_clauseContext.prototype.backup_statement = function() { + return this.getTypedRuleContext(Backup_statementContext,0); +}; + +Sql_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSql_clause(this); + } +}; + +Sql_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSql_clause(this); + } +}; + +Sql_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSql_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Sql_clauseContext = Sql_clauseContext; + +TSqlParser.prototype.sql_clause = function() { + + var localctx = new Sql_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, TSqlParser.RULE_sql_clause); + try { + this.state = 1016; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,7,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1009; + this.dml_clause(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1010; + this.ddl_clause(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1011; + this.cfl_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1012; + this.dbcc_clause(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1013; + this.empty_statement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1014; + this.another_statement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1015; + this.backup_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dml_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dml_clause; + return this; +} + +Dml_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dml_clauseContext.prototype.constructor = Dml_clauseContext; + +Dml_clauseContext.prototype.merge_statement = function() { + return this.getTypedRuleContext(Merge_statementContext,0); +}; + +Dml_clauseContext.prototype.delete_statement = function() { + return this.getTypedRuleContext(Delete_statementContext,0); +}; + +Dml_clauseContext.prototype.insert_statement = function() { + return this.getTypedRuleContext(Insert_statementContext,0); +}; + +Dml_clauseContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Dml_clauseContext.prototype.update_statement = function() { + return this.getTypedRuleContext(Update_statementContext,0); +}; + +Dml_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDml_clause(this); + } +}; + +Dml_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDml_clause(this); + } +}; + +Dml_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDml_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dml_clauseContext = Dml_clauseContext; + +TSqlParser.prototype.dml_clause = function() { + + var localctx = new Dml_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, TSqlParser.RULE_dml_clause); + try { + this.state = 1023; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,8,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1018; + this.merge_statement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1019; + this.delete_statement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1020; + this.insert_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1021; + this.select_statement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1022; + this.update_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Ddl_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_ddl_clause; + return this; +} + +Ddl_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Ddl_clauseContext.prototype.constructor = Ddl_clauseContext; + +Ddl_clauseContext.prototype.alter_application_role = function() { + return this.getTypedRuleContext(Alter_application_roleContext,0); +}; + +Ddl_clauseContext.prototype.alter_assembly = function() { + return this.getTypedRuleContext(Alter_assemblyContext,0); +}; + +Ddl_clauseContext.prototype.alter_asymmetric_key = function() { + return this.getTypedRuleContext(Alter_asymmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.alter_authorization = function() { + return this.getTypedRuleContext(Alter_authorizationContext,0); +}; + +Ddl_clauseContext.prototype.alter_authorization_for_azure_dw = function() { + return this.getTypedRuleContext(Alter_authorization_for_azure_dwContext,0); +}; + +Ddl_clauseContext.prototype.alter_authorization_for_parallel_dw = function() { + return this.getTypedRuleContext(Alter_authorization_for_parallel_dwContext,0); +}; + +Ddl_clauseContext.prototype.alter_authorization_for_sql_database = function() { + return this.getTypedRuleContext(Alter_authorization_for_sql_databaseContext,0); +}; + +Ddl_clauseContext.prototype.alter_availability_group = function() { + return this.getTypedRuleContext(Alter_availability_groupContext,0); +}; + +Ddl_clauseContext.prototype.alter_certificate = function() { + return this.getTypedRuleContext(Alter_certificateContext,0); +}; + +Ddl_clauseContext.prototype.alter_column_encryption_key = function() { + return this.getTypedRuleContext(Alter_column_encryption_keyContext,0); +}; + +Ddl_clauseContext.prototype.alter_credential = function() { + return this.getTypedRuleContext(Alter_credentialContext,0); +}; + +Ddl_clauseContext.prototype.alter_cryptographic_provider = function() { + return this.getTypedRuleContext(Alter_cryptographic_providerContext,0); +}; + +Ddl_clauseContext.prototype.alter_database = function() { + return this.getTypedRuleContext(Alter_databaseContext,0); +}; + +Ddl_clauseContext.prototype.alter_db_role = function() { + return this.getTypedRuleContext(Alter_db_roleContext,0); +}; + +Ddl_clauseContext.prototype.alter_endpoint = function() { + return this.getTypedRuleContext(Alter_endpointContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_event_session = function() { + return this.getTypedRuleContext(Create_or_alter_event_sessionContext,0); +}; + +Ddl_clauseContext.prototype.alter_external_data_source = function() { + return this.getTypedRuleContext(Alter_external_data_sourceContext,0); +}; + +Ddl_clauseContext.prototype.alter_external_library = function() { + return this.getTypedRuleContext(Alter_external_libraryContext,0); +}; + +Ddl_clauseContext.prototype.alter_external_resource_pool = function() { + return this.getTypedRuleContext(Alter_external_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.alter_fulltext_catalog = function() { + return this.getTypedRuleContext(Alter_fulltext_catalogContext,0); +}; + +Ddl_clauseContext.prototype.alter_fulltext_stoplist = function() { + return this.getTypedRuleContext(Alter_fulltext_stoplistContext,0); +}; + +Ddl_clauseContext.prototype.alter_login_azure_sql = function() { + return this.getTypedRuleContext(Alter_login_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.alter_login_azure_sql_dw_and_pdw = function() { + return this.getTypedRuleContext(Alter_login_azure_sql_dw_and_pdwContext,0); +}; + +Ddl_clauseContext.prototype.alter_login_sql_server = function() { + return this.getTypedRuleContext(Alter_login_sql_serverContext,0); +}; + +Ddl_clauseContext.prototype.alter_master_key_azure_sql = function() { + return this.getTypedRuleContext(Alter_master_key_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.alter_master_key_sql_server = function() { + return this.getTypedRuleContext(Alter_master_key_sql_serverContext,0); +}; + +Ddl_clauseContext.prototype.alter_message_type = function() { + return this.getTypedRuleContext(Alter_message_typeContext,0); +}; + +Ddl_clauseContext.prototype.alter_partition_function = function() { + return this.getTypedRuleContext(Alter_partition_functionContext,0); +}; + +Ddl_clauseContext.prototype.alter_partition_scheme = function() { + return this.getTypedRuleContext(Alter_partition_schemeContext,0); +}; + +Ddl_clauseContext.prototype.alter_remote_service_binding = function() { + return this.getTypedRuleContext(Alter_remote_service_bindingContext,0); +}; + +Ddl_clauseContext.prototype.alter_resource_governor = function() { + return this.getTypedRuleContext(Alter_resource_governorContext,0); +}; + +Ddl_clauseContext.prototype.alter_schema_azure_sql_dw_and_pdw = function() { + return this.getTypedRuleContext(Alter_schema_azure_sql_dw_and_pdwContext,0); +}; + +Ddl_clauseContext.prototype.alter_schema_sql = function() { + return this.getTypedRuleContext(Alter_schema_sqlContext,0); +}; + +Ddl_clauseContext.prototype.alter_sequence = function() { + return this.getTypedRuleContext(Alter_sequenceContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_audit = function() { + return this.getTypedRuleContext(Alter_server_auditContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_audit_specification = function() { + return this.getTypedRuleContext(Alter_server_audit_specificationContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_configuration = function() { + return this.getTypedRuleContext(Alter_server_configurationContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_role = function() { + return this.getTypedRuleContext(Alter_server_roleContext,0); +}; + +Ddl_clauseContext.prototype.alter_server_role_pdw = function() { + return this.getTypedRuleContext(Alter_server_role_pdwContext,0); +}; + +Ddl_clauseContext.prototype.alter_service = function() { + return this.getTypedRuleContext(Alter_serviceContext,0); +}; + +Ddl_clauseContext.prototype.alter_service_master_key = function() { + return this.getTypedRuleContext(Alter_service_master_keyContext,0); +}; + +Ddl_clauseContext.prototype.alter_symmetric_key = function() { + return this.getTypedRuleContext(Alter_symmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.alter_table = function() { + return this.getTypedRuleContext(Alter_tableContext,0); +}; + +Ddl_clauseContext.prototype.alter_user = function() { + return this.getTypedRuleContext(Alter_userContext,0); +}; + +Ddl_clauseContext.prototype.alter_user_azure_sql = function() { + return this.getTypedRuleContext(Alter_user_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.alter_workload_group = function() { + return this.getTypedRuleContext(Alter_workload_groupContext,0); +}; + +Ddl_clauseContext.prototype.create_application_role = function() { + return this.getTypedRuleContext(Create_application_roleContext,0); +}; + +Ddl_clauseContext.prototype.create_assembly = function() { + return this.getTypedRuleContext(Create_assemblyContext,0); +}; + +Ddl_clauseContext.prototype.create_asymmetric_key = function() { + return this.getTypedRuleContext(Create_asymmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.create_column_encryption_key = function() { + return this.getTypedRuleContext(Create_column_encryption_keyContext,0); +}; + +Ddl_clauseContext.prototype.create_column_master_key = function() { + return this.getTypedRuleContext(Create_column_master_keyContext,0); +}; + +Ddl_clauseContext.prototype.create_credential = function() { + return this.getTypedRuleContext(Create_credentialContext,0); +}; + +Ddl_clauseContext.prototype.create_cryptographic_provider = function() { + return this.getTypedRuleContext(Create_cryptographic_providerContext,0); +}; + +Ddl_clauseContext.prototype.create_database = function() { + return this.getTypedRuleContext(Create_databaseContext,0); +}; + +Ddl_clauseContext.prototype.create_db_role = function() { + return this.getTypedRuleContext(Create_db_roleContext,0); +}; + +Ddl_clauseContext.prototype.create_event_notification = function() { + return this.getTypedRuleContext(Create_event_notificationContext,0); +}; + +Ddl_clauseContext.prototype.create_external_library = function() { + return this.getTypedRuleContext(Create_external_libraryContext,0); +}; + +Ddl_clauseContext.prototype.create_external_resource_pool = function() { + return this.getTypedRuleContext(Create_external_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.create_fulltext_catalog = function() { + return this.getTypedRuleContext(Create_fulltext_catalogContext,0); +}; + +Ddl_clauseContext.prototype.create_fulltext_stoplist = function() { + return this.getTypedRuleContext(Create_fulltext_stoplistContext,0); +}; + +Ddl_clauseContext.prototype.create_index = function() { + return this.getTypedRuleContext(Create_indexContext,0); +}; + +Ddl_clauseContext.prototype.create_login_azure_sql = function() { + return this.getTypedRuleContext(Create_login_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.create_login_pdw = function() { + return this.getTypedRuleContext(Create_login_pdwContext,0); +}; + +Ddl_clauseContext.prototype.create_login_sql_server = function() { + return this.getTypedRuleContext(Create_login_sql_serverContext,0); +}; + +Ddl_clauseContext.prototype.create_master_key_azure_sql = function() { + return this.getTypedRuleContext(Create_master_key_azure_sqlContext,0); +}; + +Ddl_clauseContext.prototype.create_master_key_sql_server = function() { + return this.getTypedRuleContext(Create_master_key_sql_serverContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_broker_priority = function() { + return this.getTypedRuleContext(Create_or_alter_broker_priorityContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_function = function() { + return this.getTypedRuleContext(Create_or_alter_functionContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_procedure = function() { + return this.getTypedRuleContext(Create_or_alter_procedureContext,0); +}; + +Ddl_clauseContext.prototype.create_or_alter_trigger = function() { + return this.getTypedRuleContext(Create_or_alter_triggerContext,0); +}; + +Ddl_clauseContext.prototype.create_remote_service_binding = function() { + return this.getTypedRuleContext(Create_remote_service_bindingContext,0); +}; + +Ddl_clauseContext.prototype.create_resource_pool = function() { + return this.getTypedRuleContext(Create_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.create_route = function() { + return this.getTypedRuleContext(Create_routeContext,0); +}; + +Ddl_clauseContext.prototype.create_rule = function() { + return this.getTypedRuleContext(Create_ruleContext,0); +}; + +Ddl_clauseContext.prototype.create_schema = function() { + return this.getTypedRuleContext(Create_schemaContext,0); +}; + +Ddl_clauseContext.prototype.create_schema_azure_sql_dw_and_pdw = function() { + return this.getTypedRuleContext(Create_schema_azure_sql_dw_and_pdwContext,0); +}; + +Ddl_clauseContext.prototype.create_search_property_list = function() { + return this.getTypedRuleContext(Create_search_property_listContext,0); +}; + +Ddl_clauseContext.prototype.create_security_policy = function() { + return this.getTypedRuleContext(Create_security_policyContext,0); +}; + +Ddl_clauseContext.prototype.create_sequence = function() { + return this.getTypedRuleContext(Create_sequenceContext,0); +}; + +Ddl_clauseContext.prototype.create_server_audit = function() { + return this.getTypedRuleContext(Create_server_auditContext,0); +}; + +Ddl_clauseContext.prototype.create_server_audit_specification = function() { + return this.getTypedRuleContext(Create_server_audit_specificationContext,0); +}; + +Ddl_clauseContext.prototype.create_server_role = function() { + return this.getTypedRuleContext(Create_server_roleContext,0); +}; + +Ddl_clauseContext.prototype.create_service = function() { + return this.getTypedRuleContext(Create_serviceContext,0); +}; + +Ddl_clauseContext.prototype.create_statistics = function() { + return this.getTypedRuleContext(Create_statisticsContext,0); +}; + +Ddl_clauseContext.prototype.create_symmetric_key = function() { + return this.getTypedRuleContext(Create_symmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.create_synonym = function() { + return this.getTypedRuleContext(Create_synonymContext,0); +}; + +Ddl_clauseContext.prototype.create_table = function() { + return this.getTypedRuleContext(Create_tableContext,0); +}; + +Ddl_clauseContext.prototype.create_type = function() { + return this.getTypedRuleContext(Create_typeContext,0); +}; + +Ddl_clauseContext.prototype.create_user = function() { + return this.getTypedRuleContext(Create_userContext,0); +}; + +Ddl_clauseContext.prototype.create_user_azure_sql_dw = function() { + return this.getTypedRuleContext(Create_user_azure_sql_dwContext,0); +}; + +Ddl_clauseContext.prototype.create_view = function() { + return this.getTypedRuleContext(Create_viewContext,0); +}; + +Ddl_clauseContext.prototype.create_workload_group = function() { + return this.getTypedRuleContext(Create_workload_groupContext,0); +}; + +Ddl_clauseContext.prototype.create_xml_schema_collection = function() { + return this.getTypedRuleContext(Create_xml_schema_collectionContext,0); +}; + +Ddl_clauseContext.prototype.drop_aggregate = function() { + return this.getTypedRuleContext(Drop_aggregateContext,0); +}; + +Ddl_clauseContext.prototype.drop_application_role = function() { + return this.getTypedRuleContext(Drop_application_roleContext,0); +}; + +Ddl_clauseContext.prototype.drop_assembly = function() { + return this.getTypedRuleContext(Drop_assemblyContext,0); +}; + +Ddl_clauseContext.prototype.drop_asymmetric_key = function() { + return this.getTypedRuleContext(Drop_asymmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_availability_group = function() { + return this.getTypedRuleContext(Drop_availability_groupContext,0); +}; + +Ddl_clauseContext.prototype.drop_broker_priority = function() { + return this.getTypedRuleContext(Drop_broker_priorityContext,0); +}; + +Ddl_clauseContext.prototype.drop_certificate = function() { + return this.getTypedRuleContext(Drop_certificateContext,0); +}; + +Ddl_clauseContext.prototype.drop_column_encryption_key = function() { + return this.getTypedRuleContext(Drop_column_encryption_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_column_master_key = function() { + return this.getTypedRuleContext(Drop_column_master_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_contract = function() { + return this.getTypedRuleContext(Drop_contractContext,0); +}; + +Ddl_clauseContext.prototype.drop_credential = function() { + return this.getTypedRuleContext(Drop_credentialContext,0); +}; + +Ddl_clauseContext.prototype.drop_cryptograhic_provider = function() { + return this.getTypedRuleContext(Drop_cryptograhic_providerContext,0); +}; + +Ddl_clauseContext.prototype.drop_database = function() { + return this.getTypedRuleContext(Drop_databaseContext,0); +}; + +Ddl_clauseContext.prototype.drop_database_audit_specification = function() { + return this.getTypedRuleContext(Drop_database_audit_specificationContext,0); +}; + +Ddl_clauseContext.prototype.drop_database_scoped_credential = function() { + return this.getTypedRuleContext(Drop_database_scoped_credentialContext,0); +}; + +Ddl_clauseContext.prototype.drop_db_role = function() { + return this.getTypedRuleContext(Drop_db_roleContext,0); +}; + +Ddl_clauseContext.prototype.drop_default = function() { + return this.getTypedRuleContext(Drop_defaultContext,0); +}; + +Ddl_clauseContext.prototype.drop_endpoint = function() { + return this.getTypedRuleContext(Drop_endpointContext,0); +}; + +Ddl_clauseContext.prototype.drop_event_notifications = function() { + return this.getTypedRuleContext(Drop_event_notificationsContext,0); +}; + +Ddl_clauseContext.prototype.drop_event_session = function() { + return this.getTypedRuleContext(Drop_event_sessionContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_data_source = function() { + return this.getTypedRuleContext(Drop_external_data_sourceContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_file_format = function() { + return this.getTypedRuleContext(Drop_external_file_formatContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_library = function() { + return this.getTypedRuleContext(Drop_external_libraryContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_resource_pool = function() { + return this.getTypedRuleContext(Drop_external_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.drop_external_table = function() { + return this.getTypedRuleContext(Drop_external_tableContext,0); +}; + +Ddl_clauseContext.prototype.drop_fulltext_catalog = function() { + return this.getTypedRuleContext(Drop_fulltext_catalogContext,0); +}; + +Ddl_clauseContext.prototype.drop_fulltext_index = function() { + return this.getTypedRuleContext(Drop_fulltext_indexContext,0); +}; + +Ddl_clauseContext.prototype.drop_fulltext_stoplist = function() { + return this.getTypedRuleContext(Drop_fulltext_stoplistContext,0); +}; + +Ddl_clauseContext.prototype.drop_function = function() { + return this.getTypedRuleContext(Drop_functionContext,0); +}; + +Ddl_clauseContext.prototype.drop_index = function() { + return this.getTypedRuleContext(Drop_indexContext,0); +}; + +Ddl_clauseContext.prototype.drop_login = function() { + return this.getTypedRuleContext(Drop_loginContext,0); +}; + +Ddl_clauseContext.prototype.drop_master_key = function() { + return this.getTypedRuleContext(Drop_master_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_message_type = function() { + return this.getTypedRuleContext(Drop_message_typeContext,0); +}; + +Ddl_clauseContext.prototype.drop_partition_function = function() { + return this.getTypedRuleContext(Drop_partition_functionContext,0); +}; + +Ddl_clauseContext.prototype.drop_partition_scheme = function() { + return this.getTypedRuleContext(Drop_partition_schemeContext,0); +}; + +Ddl_clauseContext.prototype.drop_procedure = function() { + return this.getTypedRuleContext(Drop_procedureContext,0); +}; + +Ddl_clauseContext.prototype.drop_queue = function() { + return this.getTypedRuleContext(Drop_queueContext,0); +}; + +Ddl_clauseContext.prototype.drop_remote_service_binding = function() { + return this.getTypedRuleContext(Drop_remote_service_bindingContext,0); +}; + +Ddl_clauseContext.prototype.drop_resource_pool = function() { + return this.getTypedRuleContext(Drop_resource_poolContext,0); +}; + +Ddl_clauseContext.prototype.drop_route = function() { + return this.getTypedRuleContext(Drop_routeContext,0); +}; + +Ddl_clauseContext.prototype.drop_rule = function() { + return this.getTypedRuleContext(Drop_ruleContext,0); +}; + +Ddl_clauseContext.prototype.drop_schema = function() { + return this.getTypedRuleContext(Drop_schemaContext,0); +}; + +Ddl_clauseContext.prototype.drop_search_property_list = function() { + return this.getTypedRuleContext(Drop_search_property_listContext,0); +}; + +Ddl_clauseContext.prototype.drop_security_policy = function() { + return this.getTypedRuleContext(Drop_security_policyContext,0); +}; + +Ddl_clauseContext.prototype.drop_sequence = function() { + return this.getTypedRuleContext(Drop_sequenceContext,0); +}; + +Ddl_clauseContext.prototype.drop_server_audit = function() { + return this.getTypedRuleContext(Drop_server_auditContext,0); +}; + +Ddl_clauseContext.prototype.drop_server_audit_specification = function() { + return this.getTypedRuleContext(Drop_server_audit_specificationContext,0); +}; + +Ddl_clauseContext.prototype.drop_server_role = function() { + return this.getTypedRuleContext(Drop_server_roleContext,0); +}; + +Ddl_clauseContext.prototype.drop_service = function() { + return this.getTypedRuleContext(Drop_serviceContext,0); +}; + +Ddl_clauseContext.prototype.drop_signature = function() { + return this.getTypedRuleContext(Drop_signatureContext,0); +}; + +Ddl_clauseContext.prototype.drop_statistics = function() { + return this.getTypedRuleContext(Drop_statisticsContext,0); +}; + +Ddl_clauseContext.prototype.drop_statistics_name_azure_dw_and_pdw = function() { + return this.getTypedRuleContext(Drop_statistics_name_azure_dw_and_pdwContext,0); +}; + +Ddl_clauseContext.prototype.drop_symmetric_key = function() { + return this.getTypedRuleContext(Drop_symmetric_keyContext,0); +}; + +Ddl_clauseContext.prototype.drop_synonym = function() { + return this.getTypedRuleContext(Drop_synonymContext,0); +}; + +Ddl_clauseContext.prototype.drop_table = function() { + return this.getTypedRuleContext(Drop_tableContext,0); +}; + +Ddl_clauseContext.prototype.drop_trigger = function() { + return this.getTypedRuleContext(Drop_triggerContext,0); +}; + +Ddl_clauseContext.prototype.drop_type = function() { + return this.getTypedRuleContext(Drop_typeContext,0); +}; + +Ddl_clauseContext.prototype.drop_user = function() { + return this.getTypedRuleContext(Drop_userContext,0); +}; + +Ddl_clauseContext.prototype.drop_view = function() { + return this.getTypedRuleContext(Drop_viewContext,0); +}; + +Ddl_clauseContext.prototype.drop_workload_group = function() { + return this.getTypedRuleContext(Drop_workload_groupContext,0); +}; + +Ddl_clauseContext.prototype.drop_xml_schema_collection = function() { + return this.getTypedRuleContext(Drop_xml_schema_collectionContext,0); +}; + +Ddl_clauseContext.prototype.disable_trigger = function() { + return this.getTypedRuleContext(Disable_triggerContext,0); +}; + +Ddl_clauseContext.prototype.enable_trigger = function() { + return this.getTypedRuleContext(Enable_triggerContext,0); +}; + +Ddl_clauseContext.prototype.lock_table = function() { + return this.getTypedRuleContext(Lock_tableContext,0); +}; + +Ddl_clauseContext.prototype.truncate_table = function() { + return this.getTypedRuleContext(Truncate_tableContext,0); +}; + +Ddl_clauseContext.prototype.update_statistics = function() { + return this.getTypedRuleContext(Update_statisticsContext,0); +}; + +Ddl_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDdl_clause(this); + } +}; + +Ddl_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDdl_clause(this); + } +}; + +Ddl_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDdl_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Ddl_clauseContext = Ddl_clauseContext; + +TSqlParser.prototype.ddl_clause = function() { + + var localctx = new Ddl_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 10, TSqlParser.RULE_ddl_clause); + try { + this.state = 1184; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1025; + this.alter_application_role(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1026; + this.alter_assembly(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1027; + this.alter_asymmetric_key(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1028; + this.alter_authorization(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1029; + this.alter_authorization_for_azure_dw(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1030; + this.alter_authorization_for_parallel_dw(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1031; + this.alter_authorization_for_sql_database(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1032; + this.alter_availability_group(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1033; + this.alter_certificate(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1034; + this.alter_column_encryption_key(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1035; + this.alter_credential(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1036; + this.alter_cryptographic_provider(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 1037; + this.alter_database(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 1038; + this.alter_db_role(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 1039; + this.alter_endpoint(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 1040; + this.create_or_alter_event_session(); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 1041; + this.alter_external_data_source(); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 1042; + this.alter_external_library(); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 1043; + this.alter_external_resource_pool(); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 1044; + this.alter_fulltext_catalog(); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 1045; + this.alter_fulltext_stoplist(); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 1046; + this.alter_login_azure_sql(); + break; + + case 23: + this.enterOuterAlt(localctx, 23); + this.state = 1047; + this.alter_login_azure_sql_dw_and_pdw(); + break; + + case 24: + this.enterOuterAlt(localctx, 24); + this.state = 1048; + this.alter_login_sql_server(); + break; + + case 25: + this.enterOuterAlt(localctx, 25); + this.state = 1049; + this.alter_master_key_azure_sql(); + break; + + case 26: + this.enterOuterAlt(localctx, 26); + this.state = 1050; + this.alter_master_key_sql_server(); + break; + + case 27: + this.enterOuterAlt(localctx, 27); + this.state = 1051; + this.alter_message_type(); + break; + + case 28: + this.enterOuterAlt(localctx, 28); + this.state = 1052; + this.alter_partition_function(); + break; + + case 29: + this.enterOuterAlt(localctx, 29); + this.state = 1053; + this.alter_partition_scheme(); + break; + + case 30: + this.enterOuterAlt(localctx, 30); + this.state = 1054; + this.alter_remote_service_binding(); + break; + + case 31: + this.enterOuterAlt(localctx, 31); + this.state = 1055; + this.alter_resource_governor(); + break; + + case 32: + this.enterOuterAlt(localctx, 32); + this.state = 1056; + this.alter_schema_azure_sql_dw_and_pdw(); + break; + + case 33: + this.enterOuterAlt(localctx, 33); + this.state = 1057; + this.alter_schema_sql(); + break; + + case 34: + this.enterOuterAlt(localctx, 34); + this.state = 1058; + this.alter_sequence(); + break; + + case 35: + this.enterOuterAlt(localctx, 35); + this.state = 1059; + this.alter_server_audit(); + break; + + case 36: + this.enterOuterAlt(localctx, 36); + this.state = 1060; + this.alter_server_audit_specification(); + break; + + case 37: + this.enterOuterAlt(localctx, 37); + this.state = 1061; + this.alter_server_configuration(); + break; + + case 38: + this.enterOuterAlt(localctx, 38); + this.state = 1062; + this.alter_server_role(); + break; + + case 39: + this.enterOuterAlt(localctx, 39); + this.state = 1063; + this.alter_server_role_pdw(); + break; + + case 40: + this.enterOuterAlt(localctx, 40); + this.state = 1064; + this.alter_service(); + break; + + case 41: + this.enterOuterAlt(localctx, 41); + this.state = 1065; + this.alter_service_master_key(); + break; + + case 42: + this.enterOuterAlt(localctx, 42); + this.state = 1066; + this.alter_symmetric_key(); + break; + + case 43: + this.enterOuterAlt(localctx, 43); + this.state = 1067; + this.alter_table(); + break; + + case 44: + this.enterOuterAlt(localctx, 44); + this.state = 1068; + this.alter_user(); + break; + + case 45: + this.enterOuterAlt(localctx, 45); + this.state = 1069; + this.alter_user_azure_sql(); + break; + + case 46: + this.enterOuterAlt(localctx, 46); + this.state = 1070; + this.alter_workload_group(); + break; + + case 47: + this.enterOuterAlt(localctx, 47); + this.state = 1071; + this.create_application_role(); + break; + + case 48: + this.enterOuterAlt(localctx, 48); + this.state = 1072; + this.create_assembly(); + break; + + case 49: + this.enterOuterAlt(localctx, 49); + this.state = 1073; + this.create_asymmetric_key(); + break; + + case 50: + this.enterOuterAlt(localctx, 50); + this.state = 1074; + this.create_column_encryption_key(); + break; + + case 51: + this.enterOuterAlt(localctx, 51); + this.state = 1075; + this.create_column_master_key(); + break; + + case 52: + this.enterOuterAlt(localctx, 52); + this.state = 1076; + this.create_credential(); + break; + + case 53: + this.enterOuterAlt(localctx, 53); + this.state = 1077; + this.create_cryptographic_provider(); + break; + + case 54: + this.enterOuterAlt(localctx, 54); + this.state = 1078; + this.create_database(); + break; + + case 55: + this.enterOuterAlt(localctx, 55); + this.state = 1079; + this.create_db_role(); + break; + + case 56: + this.enterOuterAlt(localctx, 56); + this.state = 1080; + this.create_event_notification(); + break; + + case 57: + this.enterOuterAlt(localctx, 57); + this.state = 1081; + this.create_external_library(); + break; + + case 58: + this.enterOuterAlt(localctx, 58); + this.state = 1082; + this.create_external_resource_pool(); + break; + + case 59: + this.enterOuterAlt(localctx, 59); + this.state = 1083; + this.create_fulltext_catalog(); + break; + + case 60: + this.enterOuterAlt(localctx, 60); + this.state = 1084; + this.create_fulltext_stoplist(); + break; + + case 61: + this.enterOuterAlt(localctx, 61); + this.state = 1085; + this.create_index(); + break; + + case 62: + this.enterOuterAlt(localctx, 62); + this.state = 1086; + this.create_login_azure_sql(); + break; + + case 63: + this.enterOuterAlt(localctx, 63); + this.state = 1087; + this.create_login_pdw(); + break; + + case 64: + this.enterOuterAlt(localctx, 64); + this.state = 1088; + this.create_login_sql_server(); + break; + + case 65: + this.enterOuterAlt(localctx, 65); + this.state = 1089; + this.create_master_key_azure_sql(); + break; + + case 66: + this.enterOuterAlt(localctx, 66); + this.state = 1090; + this.create_master_key_sql_server(); + break; + + case 67: + this.enterOuterAlt(localctx, 67); + this.state = 1091; + this.create_or_alter_broker_priority(); + break; + + case 68: + this.enterOuterAlt(localctx, 68); + this.state = 1092; + this.create_or_alter_function(); + break; + + case 69: + this.enterOuterAlt(localctx, 69); + this.state = 1093; + this.create_or_alter_procedure(); + break; + + case 70: + this.enterOuterAlt(localctx, 70); + this.state = 1094; + this.create_or_alter_trigger(); + break; + + case 71: + this.enterOuterAlt(localctx, 71); + this.state = 1095; + this.create_remote_service_binding(); + break; + + case 72: + this.enterOuterAlt(localctx, 72); + this.state = 1096; + this.create_resource_pool(); + break; + + case 73: + this.enterOuterAlt(localctx, 73); + this.state = 1097; + this.create_route(); + break; + + case 74: + this.enterOuterAlt(localctx, 74); + this.state = 1098; + this.create_rule(); + break; + + case 75: + this.enterOuterAlt(localctx, 75); + this.state = 1099; + this.create_schema(); + break; + + case 76: + this.enterOuterAlt(localctx, 76); + this.state = 1100; + this.create_schema_azure_sql_dw_and_pdw(); + break; + + case 77: + this.enterOuterAlt(localctx, 77); + this.state = 1101; + this.create_search_property_list(); + break; + + case 78: + this.enterOuterAlt(localctx, 78); + this.state = 1102; + this.create_security_policy(); + break; + + case 79: + this.enterOuterAlt(localctx, 79); + this.state = 1103; + this.create_sequence(); + break; + + case 80: + this.enterOuterAlt(localctx, 80); + this.state = 1104; + this.create_server_audit(); + break; + + case 81: + this.enterOuterAlt(localctx, 81); + this.state = 1105; + this.create_server_audit_specification(); + break; + + case 82: + this.enterOuterAlt(localctx, 82); + this.state = 1106; + this.create_server_role(); + break; + + case 83: + this.enterOuterAlt(localctx, 83); + this.state = 1107; + this.create_service(); + break; + + case 84: + this.enterOuterAlt(localctx, 84); + this.state = 1108; + this.create_statistics(); + break; + + case 85: + this.enterOuterAlt(localctx, 85); + this.state = 1109; + this.create_symmetric_key(); + break; + + case 86: + this.enterOuterAlt(localctx, 86); + this.state = 1110; + this.create_synonym(); + break; + + case 87: + this.enterOuterAlt(localctx, 87); + this.state = 1111; + this.create_table(); + break; + + case 88: + this.enterOuterAlt(localctx, 88); + this.state = 1112; + this.create_type(); + break; + + case 89: + this.enterOuterAlt(localctx, 89); + this.state = 1113; + this.create_user(); + break; + + case 90: + this.enterOuterAlt(localctx, 90); + this.state = 1114; + this.create_user_azure_sql_dw(); + break; + + case 91: + this.enterOuterAlt(localctx, 91); + this.state = 1115; + this.create_view(); + break; + + case 92: + this.enterOuterAlt(localctx, 92); + this.state = 1116; + this.create_workload_group(); + break; + + case 93: + this.enterOuterAlt(localctx, 93); + this.state = 1117; + this.create_xml_schema_collection(); + break; + + case 94: + this.enterOuterAlt(localctx, 94); + this.state = 1118; + this.drop_aggregate(); + break; + + case 95: + this.enterOuterAlt(localctx, 95); + this.state = 1119; + this.drop_application_role(); + break; + + case 96: + this.enterOuterAlt(localctx, 96); + this.state = 1120; + this.drop_assembly(); + break; + + case 97: + this.enterOuterAlt(localctx, 97); + this.state = 1121; + this.drop_asymmetric_key(); + break; + + case 98: + this.enterOuterAlt(localctx, 98); + this.state = 1122; + this.drop_availability_group(); + break; + + case 99: + this.enterOuterAlt(localctx, 99); + this.state = 1123; + this.drop_broker_priority(); + break; + + case 100: + this.enterOuterAlt(localctx, 100); + this.state = 1124; + this.drop_certificate(); + break; + + case 101: + this.enterOuterAlt(localctx, 101); + this.state = 1125; + this.drop_column_encryption_key(); + break; + + case 102: + this.enterOuterAlt(localctx, 102); + this.state = 1126; + this.drop_column_master_key(); + break; + + case 103: + this.enterOuterAlt(localctx, 103); + this.state = 1127; + this.drop_contract(); + break; + + case 104: + this.enterOuterAlt(localctx, 104); + this.state = 1128; + this.drop_credential(); + break; + + case 105: + this.enterOuterAlt(localctx, 105); + this.state = 1129; + this.drop_cryptograhic_provider(); + break; + + case 106: + this.enterOuterAlt(localctx, 106); + this.state = 1130; + this.drop_database(); + break; + + case 107: + this.enterOuterAlt(localctx, 107); + this.state = 1131; + this.drop_database_audit_specification(); + break; + + case 108: + this.enterOuterAlt(localctx, 108); + this.state = 1132; + this.drop_database_scoped_credential(); + break; + + case 109: + this.enterOuterAlt(localctx, 109); + this.state = 1133; + this.drop_db_role(); + break; + + case 110: + this.enterOuterAlt(localctx, 110); + this.state = 1134; + this.drop_default(); + break; + + case 111: + this.enterOuterAlt(localctx, 111); + this.state = 1135; + this.drop_endpoint(); + break; + + case 112: + this.enterOuterAlt(localctx, 112); + this.state = 1136; + this.drop_event_notifications(); + break; + + case 113: + this.enterOuterAlt(localctx, 113); + this.state = 1137; + this.drop_event_session(); + break; + + case 114: + this.enterOuterAlt(localctx, 114); + this.state = 1138; + this.drop_external_data_source(); + break; + + case 115: + this.enterOuterAlt(localctx, 115); + this.state = 1139; + this.drop_external_file_format(); + break; + + case 116: + this.enterOuterAlt(localctx, 116); + this.state = 1140; + this.drop_external_library(); + break; + + case 117: + this.enterOuterAlt(localctx, 117); + this.state = 1141; + this.drop_external_resource_pool(); + break; + + case 118: + this.enterOuterAlt(localctx, 118); + this.state = 1142; + this.drop_external_table(); + break; + + case 119: + this.enterOuterAlt(localctx, 119); + this.state = 1143; + this.drop_fulltext_catalog(); + break; + + case 120: + this.enterOuterAlt(localctx, 120); + this.state = 1144; + this.drop_fulltext_index(); + break; + + case 121: + this.enterOuterAlt(localctx, 121); + this.state = 1145; + this.drop_fulltext_stoplist(); + break; + + case 122: + this.enterOuterAlt(localctx, 122); + this.state = 1146; + this.drop_function(); + break; + + case 123: + this.enterOuterAlt(localctx, 123); + this.state = 1147; + this.drop_index(); + break; + + case 124: + this.enterOuterAlt(localctx, 124); + this.state = 1148; + this.drop_login(); + break; + + case 125: + this.enterOuterAlt(localctx, 125); + this.state = 1149; + this.drop_master_key(); + break; + + case 126: + this.enterOuterAlt(localctx, 126); + this.state = 1150; + this.drop_message_type(); + break; + + case 127: + this.enterOuterAlt(localctx, 127); + this.state = 1151; + this.drop_partition_function(); + break; + + case 128: + this.enterOuterAlt(localctx, 128); + this.state = 1152; + this.drop_partition_scheme(); + break; + + case 129: + this.enterOuterAlt(localctx, 129); + this.state = 1153; + this.drop_procedure(); + break; + + case 130: + this.enterOuterAlt(localctx, 130); + this.state = 1154; + this.drop_queue(); + break; + + case 131: + this.enterOuterAlt(localctx, 131); + this.state = 1155; + this.drop_remote_service_binding(); + break; + + case 132: + this.enterOuterAlt(localctx, 132); + this.state = 1156; + this.drop_resource_pool(); + break; + + case 133: + this.enterOuterAlt(localctx, 133); + this.state = 1157; + this.drop_route(); + break; + + case 134: + this.enterOuterAlt(localctx, 134); + this.state = 1158; + this.drop_rule(); + break; + + case 135: + this.enterOuterAlt(localctx, 135); + this.state = 1159; + this.drop_schema(); + break; + + case 136: + this.enterOuterAlt(localctx, 136); + this.state = 1160; + this.drop_search_property_list(); + break; + + case 137: + this.enterOuterAlt(localctx, 137); + this.state = 1161; + this.drop_security_policy(); + break; + + case 138: + this.enterOuterAlt(localctx, 138); + this.state = 1162; + this.drop_sequence(); + break; + + case 139: + this.enterOuterAlt(localctx, 139); + this.state = 1163; + this.drop_server_audit(); + break; + + case 140: + this.enterOuterAlt(localctx, 140); + this.state = 1164; + this.drop_server_audit_specification(); + break; + + case 141: + this.enterOuterAlt(localctx, 141); + this.state = 1165; + this.drop_server_role(); + break; + + case 142: + this.enterOuterAlt(localctx, 142); + this.state = 1166; + this.drop_service(); + break; + + case 143: + this.enterOuterAlt(localctx, 143); + this.state = 1167; + this.drop_signature(); + break; + + case 144: + this.enterOuterAlt(localctx, 144); + this.state = 1168; + this.drop_statistics(); + break; + + case 145: + this.enterOuterAlt(localctx, 145); + this.state = 1169; + this.drop_statistics_name_azure_dw_and_pdw(); + break; + + case 146: + this.enterOuterAlt(localctx, 146); + this.state = 1170; + this.drop_symmetric_key(); + break; + + case 147: + this.enterOuterAlt(localctx, 147); + this.state = 1171; + this.drop_synonym(); + break; + + case 148: + this.enterOuterAlt(localctx, 148); + this.state = 1172; + this.drop_table(); + break; + + case 149: + this.enterOuterAlt(localctx, 149); + this.state = 1173; + this.drop_trigger(); + break; + + case 150: + this.enterOuterAlt(localctx, 150); + this.state = 1174; + this.drop_type(); + break; + + case 151: + this.enterOuterAlt(localctx, 151); + this.state = 1175; + this.drop_user(); + break; + + case 152: + this.enterOuterAlt(localctx, 152); + this.state = 1176; + this.drop_view(); + break; + + case 153: + this.enterOuterAlt(localctx, 153); + this.state = 1177; + this.drop_workload_group(); + break; + + case 154: + this.enterOuterAlt(localctx, 154); + this.state = 1178; + this.drop_xml_schema_collection(); + break; + + case 155: + this.enterOuterAlt(localctx, 155); + this.state = 1179; + this.disable_trigger(); + break; + + case 156: + this.enterOuterAlt(localctx, 156); + this.state = 1180; + this.enable_trigger(); + break; + + case 157: + this.enterOuterAlt(localctx, 157); + this.state = 1181; + this.lock_table(); + break; + + case 158: + this.enterOuterAlt(localctx, 158); + this.state = 1182; + this.truncate_table(); + break; + + case 159: + this.enterOuterAlt(localctx, 159); + this.state = 1183; + this.update_statistics(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_statement; + return this; +} + +Backup_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_statementContext.prototype.constructor = Backup_statementContext; + +Backup_statementContext.prototype.backup_database = function() { + return this.getTypedRuleContext(Backup_databaseContext,0); +}; + +Backup_statementContext.prototype.backup_log = function() { + return this.getTypedRuleContext(Backup_logContext,0); +}; + +Backup_statementContext.prototype.backup_certificate = function() { + return this.getTypedRuleContext(Backup_certificateContext,0); +}; + +Backup_statementContext.prototype.backup_master_key = function() { + return this.getTypedRuleContext(Backup_master_keyContext,0); +}; + +Backup_statementContext.prototype.backup_service_master_key = function() { + return this.getTypedRuleContext(Backup_service_master_keyContext,0); +}; + +Backup_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_statement(this); + } +}; + +Backup_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_statement(this); + } +}; + +Backup_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_statementContext = Backup_statementContext; + +TSqlParser.prototype.backup_statement = function() { + + var localctx = new Backup_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 12, TSqlParser.RULE_backup_statement); + try { + this.state = 1191; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,10,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1186; + this.backup_database(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1187; + this.backup_log(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1188; + this.backup_certificate(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1189; + this.backup_master_key(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1190; + this.backup_service_master_key(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Cfl_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_cfl_statement; + return this; +} + +Cfl_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Cfl_statementContext.prototype.constructor = Cfl_statementContext; + +Cfl_statementContext.prototype.block_statement = function() { + return this.getTypedRuleContext(Block_statementContext,0); +}; + +Cfl_statementContext.prototype.break_statement = function() { + return this.getTypedRuleContext(Break_statementContext,0); +}; + +Cfl_statementContext.prototype.continue_statement = function() { + return this.getTypedRuleContext(Continue_statementContext,0); +}; + +Cfl_statementContext.prototype.goto_statement = function() { + return this.getTypedRuleContext(Goto_statementContext,0); +}; + +Cfl_statementContext.prototype.if_statement = function() { + return this.getTypedRuleContext(If_statementContext,0); +}; + +Cfl_statementContext.prototype.return_statement = function() { + return this.getTypedRuleContext(Return_statementContext,0); +}; + +Cfl_statementContext.prototype.throw_statement = function() { + return this.getTypedRuleContext(Throw_statementContext,0); +}; + +Cfl_statementContext.prototype.try_catch_statement = function() { + return this.getTypedRuleContext(Try_catch_statementContext,0); +}; + +Cfl_statementContext.prototype.waitfor_statement = function() { + return this.getTypedRuleContext(Waitfor_statementContext,0); +}; + +Cfl_statementContext.prototype.while_statement = function() { + return this.getTypedRuleContext(While_statementContext,0); +}; + +Cfl_statementContext.prototype.print_statement = function() { + return this.getTypedRuleContext(Print_statementContext,0); +}; + +Cfl_statementContext.prototype.raiseerror_statement = function() { + return this.getTypedRuleContext(Raiseerror_statementContext,0); +}; + +Cfl_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCfl_statement(this); + } +}; + +Cfl_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCfl_statement(this); + } +}; + +Cfl_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCfl_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Cfl_statementContext = Cfl_statementContext; + +TSqlParser.prototype.cfl_statement = function() { + + var localctx = new Cfl_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 14, TSqlParser.RULE_cfl_statement); + try { + this.state = 1205; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,11,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1193; + this.block_statement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1194; + this.break_statement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1195; + this.continue_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1196; + this.goto_statement(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1197; + this.if_statement(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1198; + this.return_statement(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1199; + this.throw_statement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1200; + this.try_catch_statement(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1201; + this.waitfor_statement(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1202; + this.while_statement(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1203; + this.print_statement(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1204; + this.raiseerror_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Block_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_block_statement; + return this; +} + +Block_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Block_statementContext.prototype.constructor = Block_statementContext; + +Block_statementContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Block_statementContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +Block_statementContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEMI); + } else { + return this.getToken(TSqlParser.SEMI, i); + } +}; + + +Block_statementContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +Block_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBlock_statement(this); + } +}; + +Block_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBlock_statement(this); + } +}; + +Block_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBlock_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Block_statementContext = Block_statementContext; + +TSqlParser.prototype.block_statement = function() { + + var localctx = new Block_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 16, TSqlParser.RULE_block_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1207; + this.match(TSqlParser.BEGIN); + this.state = 1209; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,12,this._ctx); + if(la_===1) { + this.state = 1208; + this.match(TSqlParser.SEMI); + + } + this.state = 1212; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,13,this._ctx); + if(la_===1) { + this.state = 1211; + this.sql_clauses(); + + } + this.state = 1214; + this.match(TSqlParser.END); + this.state = 1216; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,14,this._ctx); + if(la_===1) { + this.state = 1215; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Break_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_break_statement; + return this; +} + +Break_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Break_statementContext.prototype.constructor = Break_statementContext; + +Break_statementContext.prototype.BREAK = function() { + return this.getToken(TSqlParser.BREAK, 0); +}; + +Break_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Break_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBreak_statement(this); + } +}; + +Break_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBreak_statement(this); + } +}; + +Break_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBreak_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Break_statementContext = Break_statementContext; + +TSqlParser.prototype.break_statement = function() { + + var localctx = new Break_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 18, TSqlParser.RULE_break_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1218; + this.match(TSqlParser.BREAK); + this.state = 1220; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,15,this._ctx); + if(la_===1) { + this.state = 1219; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Continue_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_continue_statement; + return this; +} + +Continue_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Continue_statementContext.prototype.constructor = Continue_statementContext; + +Continue_statementContext.prototype.CONTINUE = function() { + return this.getToken(TSqlParser.CONTINUE, 0); +}; + +Continue_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Continue_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterContinue_statement(this); + } +}; + +Continue_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitContinue_statement(this); + } +}; + +Continue_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitContinue_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Continue_statementContext = Continue_statementContext; + +TSqlParser.prototype.continue_statement = function() { + + var localctx = new Continue_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 20, TSqlParser.RULE_continue_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1222; + this.match(TSqlParser.CONTINUE); + this.state = 1224; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,16,this._ctx); + if(la_===1) { + this.state = 1223; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Goto_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_goto_statement; + return this; +} + +Goto_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Goto_statementContext.prototype.constructor = Goto_statementContext; + +Goto_statementContext.prototype.GOTO = function() { + return this.getToken(TSqlParser.GOTO, 0); +}; + +Goto_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Goto_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Goto_statementContext.prototype.COLON = function() { + return this.getToken(TSqlParser.COLON, 0); +}; + +Goto_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGoto_statement(this); + } +}; + +Goto_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGoto_statement(this); + } +}; + +Goto_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGoto_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Goto_statementContext = Goto_statementContext; + +TSqlParser.prototype.goto_statement = function() { + + var localctx = new Goto_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 22, TSqlParser.RULE_goto_statement); + try { + this.state = 1236; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.GOTO: + this.enterOuterAlt(localctx, 1); + this.state = 1226; + this.match(TSqlParser.GOTO); + this.state = 1227; + this.id(); + this.state = 1229; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,17,this._ctx); + if(la_===1) { + this.state = 1228; + this.match(TSqlParser.SEMI); + + } + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 2); + this.state = 1231; + this.id(); + this.state = 1232; + this.match(TSqlParser.COLON); + this.state = 1234; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,18,this._ctx); + if(la_===1) { + this.state = 1233; + this.match(TSqlParser.SEMI); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Return_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_return_statement; + return this; +} + +Return_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Return_statementContext.prototype.constructor = Return_statementContext; + +Return_statementContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Return_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Return_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Return_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterReturn_statement(this); + } +}; + +Return_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitReturn_statement(this); + } +}; + +Return_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitReturn_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Return_statementContext = Return_statementContext; + +TSqlParser.prototype.return_statement = function() { + + var localctx = new Return_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 24, TSqlParser.RULE_return_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1238; + this.match(TSqlParser.RETURN); + this.state = 1240; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,20,this._ctx); + if(la_===1) { + this.state = 1239; + this.expression(0); + + } + this.state = 1243; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,21,this._ctx); + if(la_===1) { + this.state = 1242; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function If_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_if_statement; + return this; +} + +If_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +If_statementContext.prototype.constructor = If_statementContext; + +If_statementContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +If_statementContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +If_statementContext.prototype.sql_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clauseContext); + } else { + return this.getTypedRuleContext(Sql_clauseContext,i); + } +}; + +If_statementContext.prototype.ELSE = function() { + return this.getToken(TSqlParser.ELSE, 0); +}; + +If_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +If_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIf_statement(this); + } +}; + +If_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIf_statement(this); + } +}; + +If_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIf_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.If_statementContext = If_statementContext; + +TSqlParser.prototype.if_statement = function() { + + var localctx = new If_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 26, TSqlParser.RULE_if_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1245; + this.match(TSqlParser.IF); + this.state = 1246; + this.search_condition(); + this.state = 1247; + this.sql_clause(); + this.state = 1250; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,22,this._ctx); + if(la_===1) { + this.state = 1248; + this.match(TSqlParser.ELSE); + this.state = 1249; + this.sql_clause(); + + } + this.state = 1253; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,23,this._ctx); + if(la_===1) { + this.state = 1252; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Throw_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_throw_statement; + return this; +} + +Throw_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Throw_statementContext.prototype.constructor = Throw_statementContext; + +Throw_statementContext.prototype.THROW = function() { + return this.getToken(TSqlParser.THROW, 0); +}; + +Throw_statementContext.prototype.throw_error_number = function() { + return this.getTypedRuleContext(Throw_error_numberContext,0); +}; + +Throw_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Throw_statementContext.prototype.throw_message = function() { + return this.getTypedRuleContext(Throw_messageContext,0); +}; + +Throw_statementContext.prototype.throw_state = function() { + return this.getTypedRuleContext(Throw_stateContext,0); +}; + +Throw_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Throw_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterThrow_statement(this); + } +}; + +Throw_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitThrow_statement(this); + } +}; + +Throw_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitThrow_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Throw_statementContext = Throw_statementContext; + +TSqlParser.prototype.throw_statement = function() { + + var localctx = new Throw_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 28, TSqlParser.RULE_throw_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1255; + this.match(TSqlParser.THROW); + this.state = 1262; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,24,this._ctx); + if(la_===1) { + this.state = 1256; + this.throw_error_number(); + this.state = 1257; + this.match(TSqlParser.COMMA); + this.state = 1258; + this.throw_message(); + this.state = 1259; + this.match(TSqlParser.COMMA); + this.state = 1260; + this.throw_state(); + + } + this.state = 1265; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,25,this._ctx); + if(la_===1) { + this.state = 1264; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Throw_error_numberContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_throw_error_number; + return this; +} + +Throw_error_numberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Throw_error_numberContext.prototype.constructor = Throw_error_numberContext; + +Throw_error_numberContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Throw_error_numberContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Throw_error_numberContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterThrow_error_number(this); + } +}; + +Throw_error_numberContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitThrow_error_number(this); + } +}; + +Throw_error_numberContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitThrow_error_number(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Throw_error_numberContext = Throw_error_numberContext; + +TSqlParser.prototype.throw_error_number = function() { + + var localctx = new Throw_error_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 30, TSqlParser.RULE_throw_error_number); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1267; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Throw_messageContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_throw_message; + return this; +} + +Throw_messageContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Throw_messageContext.prototype.constructor = Throw_messageContext; + +Throw_messageContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Throw_messageContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Throw_messageContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterThrow_message(this); + } +}; + +Throw_messageContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitThrow_message(this); + } +}; + +Throw_messageContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitThrow_message(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Throw_messageContext = Throw_messageContext; + +TSqlParser.prototype.throw_message = function() { + + var localctx = new Throw_messageContext(this, this._ctx, this.state); + this.enterRule(localctx, 32, TSqlParser.RULE_throw_message); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1269; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Throw_stateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_throw_state; + return this; +} + +Throw_stateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Throw_stateContext.prototype.constructor = Throw_stateContext; + +Throw_stateContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Throw_stateContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Throw_stateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterThrow_state(this); + } +}; + +Throw_stateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitThrow_state(this); + } +}; + +Throw_stateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitThrow_state(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Throw_stateContext = Throw_stateContext; + +TSqlParser.prototype.throw_state = function() { + + var localctx = new Throw_stateContext(this, this._ctx, this.state); + this.enterRule(localctx, 34, TSqlParser.RULE_throw_state); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1271; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Try_catch_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_try_catch_statement; + this.try_clauses = null; // Sql_clausesContext + this.catch_clauses = null; // Sql_clausesContext + return this; +} + +Try_catch_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Try_catch_statementContext.prototype.constructor = Try_catch_statementContext; + +Try_catch_statementContext.prototype.BEGIN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BEGIN); + } else { + return this.getToken(TSqlParser.BEGIN, i); + } +}; + + +Try_catch_statementContext.prototype.TRY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TRY); + } else { + return this.getToken(TSqlParser.TRY, i); + } +}; + + +Try_catch_statementContext.prototype.END = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.END); + } else { + return this.getToken(TSqlParser.END, i); + } +}; + + +Try_catch_statementContext.prototype.CATCH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CATCH); + } else { + return this.getToken(TSqlParser.CATCH, i); + } +}; + + +Try_catch_statementContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEMI); + } else { + return this.getToken(TSqlParser.SEMI, i); + } +}; + + +Try_catch_statementContext.prototype.sql_clauses = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clausesContext); + } else { + return this.getTypedRuleContext(Sql_clausesContext,i); + } +}; + +Try_catch_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTry_catch_statement(this); + } +}; + +Try_catch_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTry_catch_statement(this); + } +}; + +Try_catch_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTry_catch_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Try_catch_statementContext = Try_catch_statementContext; + +TSqlParser.prototype.try_catch_statement = function() { + + var localctx = new Try_catch_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 36, TSqlParser.RULE_try_catch_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1273; + this.match(TSqlParser.BEGIN); + this.state = 1274; + this.match(TSqlParser.TRY); + this.state = 1276; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,26,this._ctx); + if(la_===1) { + this.state = 1275; + this.match(TSqlParser.SEMI); + + } + this.state = 1279; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,27,this._ctx); + if(la_===1) { + this.state = 1278; + localctx.try_clauses = this.sql_clauses(); + + } + this.state = 1281; + this.match(TSqlParser.END); + this.state = 1282; + this.match(TSqlParser.TRY); + this.state = 1284; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEMI) { + this.state = 1283; + this.match(TSqlParser.SEMI); + } + + this.state = 1286; + this.match(TSqlParser.BEGIN); + this.state = 1287; + this.match(TSqlParser.CATCH); + this.state = 1289; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,29,this._ctx); + if(la_===1) { + this.state = 1288; + this.match(TSqlParser.SEMI); + + } + this.state = 1292; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,30,this._ctx); + if(la_===1) { + this.state = 1291; + localctx.catch_clauses = this.sql_clauses(); + + } + this.state = 1294; + this.match(TSqlParser.END); + this.state = 1295; + this.match(TSqlParser.CATCH); + this.state = 1297; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,31,this._ctx); + if(la_===1) { + this.state = 1296; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Waitfor_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_waitfor_statement; + return this; +} + +Waitfor_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Waitfor_statementContext.prototype.constructor = Waitfor_statementContext; + +Waitfor_statementContext.prototype.WAITFOR = function() { + return this.getToken(TSqlParser.WAITFOR, 0); +}; + +Waitfor_statementContext.prototype.receive_statement = function() { + return this.getTypedRuleContext(Receive_statementContext,0); +}; + +Waitfor_statementContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Waitfor_statementContext.prototype.time = function() { + return this.getTypedRuleContext(TimeContext,0); +}; + +Waitfor_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Waitfor_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Waitfor_statementContext.prototype.DELAY = function() { + return this.getToken(TSqlParser.DELAY, 0); +}; + +Waitfor_statementContext.prototype.TIME = function() { + return this.getToken(TSqlParser.TIME, 0); +}; + +Waitfor_statementContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Waitfor_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWaitfor_statement(this); + } +}; + +Waitfor_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWaitfor_statement(this); + } +}; + +Waitfor_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWaitfor_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Waitfor_statementContext = Waitfor_statementContext; + +TSqlParser.prototype.waitfor_statement = function() { + + var localctx = new Waitfor_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 38, TSqlParser.RULE_waitfor_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1299; + this.match(TSqlParser.WAITFOR); + this.state = 1301; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,32,this._ctx); + if(la_===1) { + this.state = 1300; + this.receive_statement(); + + } + this.state = 1304; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1303; + this.match(TSqlParser.COMMA); + } + + this.state = 1308; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,34,this._ctx); + if(la_===1) { + this.state = 1306; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELAY || _la===TSqlParser.TIME || _la===TSqlParser.TIMEOUT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1307; + this.time(); + + } + this.state = 1311; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,35,this._ctx); + if(la_===1) { + this.state = 1310; + this.expression(0); + + } + this.state = 1314; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,36,this._ctx); + if(la_===1) { + this.state = 1313; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function While_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_while_statement; + return this; +} + +While_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +While_statementContext.prototype.constructor = While_statementContext; + +While_statementContext.prototype.WHILE = function() { + return this.getToken(TSqlParser.WHILE, 0); +}; + +While_statementContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +While_statementContext.prototype.sql_clause = function() { + return this.getTypedRuleContext(Sql_clauseContext,0); +}; + +While_statementContext.prototype.BREAK = function() { + return this.getToken(TSqlParser.BREAK, 0); +}; + +While_statementContext.prototype.CONTINUE = function() { + return this.getToken(TSqlParser.CONTINUE, 0); +}; + +While_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +While_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWhile_statement(this); + } +}; + +While_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWhile_statement(this); + } +}; + +While_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWhile_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.While_statementContext = While_statementContext; + +TSqlParser.prototype.while_statement = function() { + + var localctx = new While_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 40, TSqlParser.RULE_while_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1316; + this.match(TSqlParser.WHILE); + this.state = 1317; + this.search_condition(); + this.state = 1327; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,39,this._ctx); + switch(la_) { + case 1: + this.state = 1318; + this.sql_clause(); + break; + + case 2: + this.state = 1319; + this.match(TSqlParser.BREAK); + this.state = 1321; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,37,this._ctx); + if(la_===1) { + this.state = 1320; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.state = 1323; + this.match(TSqlParser.CONTINUE); + this.state = 1325; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,38,this._ctx); + if(la_===1) { + this.state = 1324; + this.match(TSqlParser.SEMI); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Print_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_print_statement; + return this; +} + +Print_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Print_statementContext.prototype.constructor = Print_statementContext; + +Print_statementContext.prototype.PRINT = function() { + return this.getToken(TSqlParser.PRINT, 0); +}; + +Print_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Print_statementContext.prototype.DOUBLE_QUOTE_ID = function() { + return this.getToken(TSqlParser.DOUBLE_QUOTE_ID, 0); +}; + +Print_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Print_statementContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Print_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Print_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPrint_statement(this); + } +}; + +Print_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPrint_statement(this); + } +}; + +Print_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPrint_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Print_statementContext = Print_statementContext; + +TSqlParser.prototype.print_statement = function() { + + var localctx = new Print_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 42, TSqlParser.RULE_print_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1329; + this.match(TSqlParser.PRINT); + this.state = 1332; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,40,this._ctx); + switch(la_) { + case 1: + this.state = 1330; + this.expression(0); + break; + + case 2: + this.state = 1331; + this.match(TSqlParser.DOUBLE_QUOTE_ID); + break; + + } + this.state = 1338; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 1334; + this.match(TSqlParser.COMMA); + this.state = 1335; + this.match(TSqlParser.LOCAL_ID); + this.state = 1340; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1342; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,42,this._ctx); + if(la_===1) { + this.state = 1341; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Raiseerror_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_raiseerror_statement; + this.msg = null; // Token + this.severity = null; // Constant_LOCAL_IDContext + this.state = null; // Constant_LOCAL_IDContext + this.formatstring = null; // Token + this.argument = null; // Token + return this; +} + +Raiseerror_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Raiseerror_statementContext.prototype.constructor = Raiseerror_statementContext; + +Raiseerror_statementContext.prototype.RAISERROR = function() { + return this.getToken(TSqlParser.RAISERROR, 0); +}; + +Raiseerror_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Raiseerror_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Raiseerror_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Raiseerror_statementContext.prototype.constant_LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Constant_LOCAL_IDContext); + } else { + return this.getTypedRuleContext(Constant_LOCAL_IDContext,i); + } +}; + +Raiseerror_statementContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Raiseerror_statementContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Raiseerror_statementContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Raiseerror_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Raiseerror_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Raiseerror_statementContext.prototype.LOG = function() { + return this.getToken(TSqlParser.LOG, 0); +}; + +Raiseerror_statementContext.prototype.SETERROR = function() { + return this.getToken(TSqlParser.SETERROR, 0); +}; + +Raiseerror_statementContext.prototype.DOUBLE_QUOTE_ID = function() { + return this.getToken(TSqlParser.DOUBLE_QUOTE_ID, 0); +}; + +Raiseerror_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRaiseerror_statement(this); + } +}; + +Raiseerror_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRaiseerror_statement(this); + } +}; + +Raiseerror_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRaiseerror_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Raiseerror_statementContext = Raiseerror_statementContext; + +TSqlParser.prototype.raiseerror_statement = function() { + + var localctx = new Raiseerror_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 44, TSqlParser.RULE_raiseerror_statement); + var _la = 0; // Token type + try { + this.state = 1376; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,47,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1344; + this.match(TSqlParser.RAISERROR); + this.state = 1345; + this.match(TSqlParser.LR_BRACKET); + this.state = 1346; + localctx.msg = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 799)) & ~0x1f) == 0 && ((1 << (_la - 799)) & ((1 << (TSqlParser.LOCAL_ID - 799)) | (1 << (TSqlParser.DECIMAL - 799)) | (1 << (TSqlParser.STRING - 799)))) !== 0))) { + localctx.msg = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1347; + this.match(TSqlParser.COMMA); + this.state = 1348; + localctx.severity = this.constant_LOCAL_ID(); + this.state = 1349; + this.match(TSqlParser.COMMA); + this.state = 1350; + localctx.state = this.constant_LOCAL_ID(); + this.state = 1355; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 1351; + this.match(TSqlParser.COMMA); + this.state = 1352; + this.constant_LOCAL_ID(); + this.state = 1357; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1358; + this.match(TSqlParser.RR_BRACKET); + this.state = 1361; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,44,this._ctx); + if(la_===1) { + this.state = 1359; + this.match(TSqlParser.WITH); + this.state = 1360; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOG || _la===TSqlParser.SETERROR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 1364; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,45,this._ctx); + if(la_===1) { + this.state = 1363; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1366; + this.match(TSqlParser.RAISERROR); + this.state = 1367; + this.match(TSqlParser.DECIMAL); + this.state = 1368; + localctx.formatstring = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.LOCAL_ID - 796)) | (1 << (TSqlParser.STRING - 796)))) !== 0))) { + localctx.formatstring = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1373; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 1369; + this.match(TSqlParser.COMMA); + this.state = 1370; + localctx.argument = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 799)) & ~0x1f) == 0 && ((1 << (_la - 799)) & ((1 << (TSqlParser.LOCAL_ID - 799)) | (1 << (TSqlParser.DECIMAL - 799)) | (1 << (TSqlParser.STRING - 799)))) !== 0))) { + localctx.argument = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1375; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Empty_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_empty_statement; + return this; +} + +Empty_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Empty_statementContext.prototype.constructor = Empty_statementContext; + +Empty_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Empty_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEmpty_statement(this); + } +}; + +Empty_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEmpty_statement(this); + } +}; + +Empty_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEmpty_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Empty_statementContext = Empty_statementContext; + +TSqlParser.prototype.empty_statement = function() { + + var localctx = new Empty_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, TSqlParser.RULE_empty_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1378; + this.match(TSqlParser.SEMI); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Another_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_another_statement; + return this; +} + +Another_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Another_statementContext.prototype.constructor = Another_statementContext; + +Another_statementContext.prototype.declare_statement = function() { + return this.getTypedRuleContext(Declare_statementContext,0); +}; + +Another_statementContext.prototype.cursor_statement = function() { + return this.getTypedRuleContext(Cursor_statementContext,0); +}; + +Another_statementContext.prototype.conversation_statement = function() { + return this.getTypedRuleContext(Conversation_statementContext,0); +}; + +Another_statementContext.prototype.create_contract = function() { + return this.getTypedRuleContext(Create_contractContext,0); +}; + +Another_statementContext.prototype.create_queue = function() { + return this.getTypedRuleContext(Create_queueContext,0); +}; + +Another_statementContext.prototype.alter_queue = function() { + return this.getTypedRuleContext(Alter_queueContext,0); +}; + +Another_statementContext.prototype.execute_statement = function() { + return this.getTypedRuleContext(Execute_statementContext,0); +}; + +Another_statementContext.prototype.kill_statement = function() { + return this.getTypedRuleContext(Kill_statementContext,0); +}; + +Another_statementContext.prototype.message_statement = function() { + return this.getTypedRuleContext(Message_statementContext,0); +}; + +Another_statementContext.prototype.security_statement = function() { + return this.getTypedRuleContext(Security_statementContext,0); +}; + +Another_statementContext.prototype.set_statement = function() { + return this.getTypedRuleContext(Set_statementContext,0); +}; + +Another_statementContext.prototype.transaction_statement = function() { + return this.getTypedRuleContext(Transaction_statementContext,0); +}; + +Another_statementContext.prototype.use_statement = function() { + return this.getTypedRuleContext(Use_statementContext,0); +}; + +Another_statementContext.prototype.setuser_statement = function() { + return this.getTypedRuleContext(Setuser_statementContext,0); +}; + +Another_statementContext.prototype.reconfigure_statement = function() { + return this.getTypedRuleContext(Reconfigure_statementContext,0); +}; + +Another_statementContext.prototype.shutdown_statement = function() { + return this.getTypedRuleContext(Shutdown_statementContext,0); +}; + +Another_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAnother_statement(this); + } +}; + +Another_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAnother_statement(this); + } +}; + +Another_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAnother_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Another_statementContext = Another_statementContext; + +TSqlParser.prototype.another_statement = function() { + + var localctx = new Another_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 48, TSqlParser.RULE_another_statement); + try { + this.state = 1396; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,48,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1380; + this.declare_statement(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1381; + this.cursor_statement(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1382; + this.conversation_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1383; + this.create_contract(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1384; + this.create_queue(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1385; + this.alter_queue(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1386; + this.execute_statement(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1387; + this.kill_statement(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1388; + this.message_statement(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1389; + this.security_statement(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1390; + this.set_statement(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1391; + this.transaction_statement(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 1392; + this.use_statement(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 1393; + this.setuser_statement(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 1394; + this.reconfigure_statement(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 1395; + this.shutdown_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_application_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_application_role; + this.appliction_role = null; // IdContext + this.new_application_role_name = null; // IdContext + this.application_role_password = null; // Token + this.app_role_default_schema = null; // IdContext + return this; +} + +Alter_application_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_application_roleContext.prototype.constructor = Alter_application_roleContext; + +Alter_application_roleContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_application_roleContext.prototype.APPLICATION = function() { + return this.getToken(TSqlParser.APPLICATION, 0); +}; + +Alter_application_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_application_roleContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_application_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_application_roleContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_application_roleContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_application_roleContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_application_roleContext.prototype.DEFAULT_SCHEMA = function() { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, 0); +}; + +Alter_application_roleContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_application_roleContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_application_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_application_role(this); + } +}; + +Alter_application_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_application_role(this); + } +}; + +Alter_application_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_application_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_application_roleContext = Alter_application_roleContext; + +TSqlParser.prototype.alter_application_role = function() { + + var localctx = new Alter_application_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 50, TSqlParser.RULE_alter_application_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1398; + this.match(TSqlParser.ALTER); + this.state = 1399; + this.match(TSqlParser.APPLICATION); + this.state = 1400; + this.match(TSqlParser.ROLE); + this.state = 1401; + localctx.appliction_role = this.id(); + this.state = 1402; + this.match(TSqlParser.WITH); + this.state = 1409; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,50,this._ctx); + if(la_===1) { + this.state = 1404; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1403; + this.match(TSqlParser.COMMA); + } + + this.state = 1406; + this.match(TSqlParser.NAME); + this.state = 1407; + this.match(TSqlParser.EQUAL); + this.state = 1408; + localctx.new_application_role_name = this.id(); + + } + this.state = 1417; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,52,this._ctx); + if(la_===1) { + this.state = 1412; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1411; + this.match(TSqlParser.COMMA); + } + + this.state = 1414; + this.match(TSqlParser.PASSWORD); + this.state = 1415; + this.match(TSqlParser.EQUAL); + this.state = 1416; + localctx.application_role_password = this.match(TSqlParser.STRING); + + } + this.state = 1425; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DEFAULT_SCHEMA || _la===TSqlParser.COMMA) { + this.state = 1420; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1419; + this.match(TSqlParser.COMMA); + } + + this.state = 1422; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 1423; + this.match(TSqlParser.EQUAL); + this.state = 1424; + localctx.app_role_default_schema = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_application_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_application_role; + this.appliction_role = null; // IdContext + this.application_role_password = null; // Token + this.app_role_default_schema = null; // IdContext + return this; +} + +Create_application_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_application_roleContext.prototype.constructor = Create_application_roleContext; + +Create_application_roleContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_application_roleContext.prototype.APPLICATION = function() { + return this.getToken(TSqlParser.APPLICATION, 0); +}; + +Create_application_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Create_application_roleContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_application_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_application_roleContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_application_roleContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_application_roleContext.prototype.DEFAULT_SCHEMA = function() { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, 0); +}; + +Create_application_roleContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_application_roleContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_application_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_application_role(this); + } +}; + +Create_application_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_application_role(this); + } +}; + +Create_application_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_application_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_application_roleContext = Create_application_roleContext; + +TSqlParser.prototype.create_application_role = function() { + + var localctx = new Create_application_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 52, TSqlParser.RULE_create_application_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1427; + this.match(TSqlParser.CREATE); + this.state = 1428; + this.match(TSqlParser.APPLICATION); + this.state = 1429; + this.match(TSqlParser.ROLE); + this.state = 1430; + localctx.appliction_role = this.id(); + this.state = 1431; + this.match(TSqlParser.WITH); + this.state = 1438; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,56,this._ctx); + if(la_===1) { + this.state = 1433; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1432; + this.match(TSqlParser.COMMA); + } + + this.state = 1435; + this.match(TSqlParser.PASSWORD); + this.state = 1436; + this.match(TSqlParser.EQUAL); + this.state = 1437; + localctx.application_role_password = this.match(TSqlParser.STRING); + + } + this.state = 1446; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DEFAULT_SCHEMA || _la===TSqlParser.COMMA) { + this.state = 1441; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1440; + this.match(TSqlParser.COMMA); + } + + this.state = 1443; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 1444; + this.match(TSqlParser.EQUAL); + this.state = 1445; + localctx.app_role_default_schema = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_aggregateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_aggregate; + this.schema_name = null; // IdContext + this.aggregate_name = null; // IdContext + return this; +} + +Drop_aggregateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_aggregateContext.prototype.constructor = Drop_aggregateContext; + +Drop_aggregateContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_aggregateContext.prototype.AGGREGATE = function() { + return this.getToken(TSqlParser.AGGREGATE, 0); +}; + +Drop_aggregateContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_aggregateContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_aggregateContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_aggregateContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_aggregateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_aggregate(this); + } +}; + +Drop_aggregateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_aggregate(this); + } +}; + +Drop_aggregateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_aggregate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_aggregateContext = Drop_aggregateContext; + +TSqlParser.prototype.drop_aggregate = function() { + + var localctx = new Drop_aggregateContext(this, this._ctx, this.state); + this.enterRule(localctx, 54, TSqlParser.RULE_drop_aggregate); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1448; + this.match(TSqlParser.DROP); + this.state = 1449; + this.match(TSqlParser.AGGREGATE); + this.state = 1452; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 1450; + this.match(TSqlParser.IF); + this.state = 1451; + this.match(TSqlParser.EXISTS); + } + + this.state = 1457; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,60,this._ctx); + if(la_===1) { + this.state = 1454; + localctx.schema_name = this.id(); + this.state = 1455; + this.match(TSqlParser.DOT); + + } + this.state = 1459; + localctx.aggregate_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_application_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_application_role; + this.rolename = null; // IdContext + return this; +} + +Drop_application_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_application_roleContext.prototype.constructor = Drop_application_roleContext; + +Drop_application_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_application_roleContext.prototype.APPLICATION = function() { + return this.getToken(TSqlParser.APPLICATION, 0); +}; + +Drop_application_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Drop_application_roleContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_application_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_application_role(this); + } +}; + +Drop_application_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_application_role(this); + } +}; + +Drop_application_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_application_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_application_roleContext = Drop_application_roleContext; + +TSqlParser.prototype.drop_application_role = function() { + + var localctx = new Drop_application_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 56, TSqlParser.RULE_drop_application_role); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1461; + this.match(TSqlParser.DROP); + this.state = 1462; + this.match(TSqlParser.APPLICATION); + this.state = 1463; + this.match(TSqlParser.ROLE); + this.state = 1464; + localctx.rolename = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assemblyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly; + this.assembly_name = null; // IdContext + return this; +} + +Alter_assemblyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assemblyContext.prototype.constructor = Alter_assemblyContext; + +Alter_assemblyContext.prototype.alter_assembly_start = function() { + return this.getTypedRuleContext(Alter_assembly_startContext,0); +}; + +Alter_assemblyContext.prototype.alter_assembly_clause = function() { + return this.getTypedRuleContext(Alter_assembly_clauseContext,0); +}; + +Alter_assemblyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_assemblyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly(this); + } +}; + +Alter_assemblyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly(this); + } +}; + +Alter_assemblyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assemblyContext = Alter_assemblyContext; + +TSqlParser.prototype.alter_assembly = function() { + + var localctx = new Alter_assemblyContext(this, this._ctx, this.state); + this.enterRule(localctx, 58, TSqlParser.RULE_alter_assembly); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1466; + this.alter_assembly_start(); + this.state = 1467; + localctx.assembly_name = this.id(); + this.state = 1468; + this.alter_assembly_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_start; + return this; +} + +Alter_assembly_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_startContext.prototype.constructor = Alter_assembly_startContext; + +Alter_assembly_startContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_assembly_startContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Alter_assembly_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_start(this); + } +}; + +Alter_assembly_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_start(this); + } +}; + +Alter_assembly_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_startContext = Alter_assembly_startContext; + +TSqlParser.prototype.alter_assembly_start = function() { + + var localctx = new Alter_assembly_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 60, TSqlParser.RULE_alter_assembly_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1470; + this.match(TSqlParser.ALTER); + this.state = 1471; + this.match(TSqlParser.ASSEMBLY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_clause; + return this; +} + +Alter_assembly_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_clauseContext.prototype.constructor = Alter_assembly_clauseContext; + +Alter_assembly_clauseContext.prototype.alter_assembly_from_clause = function() { + return this.getTypedRuleContext(Alter_assembly_from_clauseContext,0); +}; + +Alter_assembly_clauseContext.prototype.alter_assembly_with_clause = function() { + return this.getTypedRuleContext(Alter_assembly_with_clauseContext,0); +}; + +Alter_assembly_clauseContext.prototype.alter_assembly_drop_clause = function() { + return this.getTypedRuleContext(Alter_assembly_drop_clauseContext,0); +}; + +Alter_assembly_clauseContext.prototype.alter_assembly_add_clause = function() { + return this.getTypedRuleContext(Alter_assembly_add_clauseContext,0); +}; + +Alter_assembly_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_clause(this); + } +}; + +Alter_assembly_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_clause(this); + } +}; + +Alter_assembly_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_clauseContext = Alter_assembly_clauseContext; + +TSqlParser.prototype.alter_assembly_clause = function() { + + var localctx = new Alter_assembly_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 62, TSqlParser.RULE_alter_assembly_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1474; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 1473; + this.alter_assembly_from_clause(); + } + + this.state = 1477; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,62,this._ctx); + if(la_===1) { + this.state = 1476; + this.alter_assembly_with_clause(); + + } + this.state = 1480; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,63,this._ctx); + if(la_===1) { + this.state = 1479; + this.alter_assembly_drop_clause(); + + } + this.state = 1483; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ADD) { + this.state = 1482; + this.alter_assembly_add_clause(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_from_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_from_clause; + return this; +} + +Alter_assembly_from_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_from_clauseContext.prototype.constructor = Alter_assembly_from_clauseContext; + +Alter_assembly_from_clauseContext.prototype.alter_assembly_from_clause_start = function() { + return this.getTypedRuleContext(Alter_assembly_from_clause_startContext,0); +}; + +Alter_assembly_from_clauseContext.prototype.client_assembly_specifier = function() { + return this.getTypedRuleContext(Client_assembly_specifierContext,0); +}; + +Alter_assembly_from_clauseContext.prototype.alter_assembly_file_bits = function() { + return this.getTypedRuleContext(Alter_assembly_file_bitsContext,0); +}; + +Alter_assembly_from_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_from_clause(this); + } +}; + +Alter_assembly_from_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_from_clause(this); + } +}; + +Alter_assembly_from_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_from_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_from_clauseContext = Alter_assembly_from_clauseContext; + +TSqlParser.prototype.alter_assembly_from_clause = function() { + + var localctx = new Alter_assembly_from_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 64, TSqlParser.RULE_alter_assembly_from_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1485; + this.alter_assembly_from_clause_start(); + this.state = 1488; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DOUBLE_BACK_SLASH: + case TSqlParser.DISK_DRIVE: + case TSqlParser.STRING: + this.state = 1486; + this.client_assembly_specifier(); + break; + case TSqlParser.AS: + this.state = 1487; + this.alter_assembly_file_bits(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_from_clause_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_from_clause_start; + return this; +} + +Alter_assembly_from_clause_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_from_clause_startContext.prototype.constructor = Alter_assembly_from_clause_startContext; + +Alter_assembly_from_clause_startContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Alter_assembly_from_clause_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_from_clause_start(this); + } +}; + +Alter_assembly_from_clause_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_from_clause_start(this); + } +}; + +Alter_assembly_from_clause_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_from_clause_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_from_clause_startContext = Alter_assembly_from_clause_startContext; + +TSqlParser.prototype.alter_assembly_from_clause_start = function() { + + var localctx = new Alter_assembly_from_clause_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 66, TSqlParser.RULE_alter_assembly_from_clause_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1490; + this.match(TSqlParser.FROM); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_drop_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_drop_clause; + return this; +} + +Alter_assembly_drop_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_drop_clauseContext.prototype.constructor = Alter_assembly_drop_clauseContext; + +Alter_assembly_drop_clauseContext.prototype.alter_assembly_drop = function() { + return this.getTypedRuleContext(Alter_assembly_dropContext,0); +}; + +Alter_assembly_drop_clauseContext.prototype.alter_assembly_drop_multiple_files = function() { + return this.getTypedRuleContext(Alter_assembly_drop_multiple_filesContext,0); +}; + +Alter_assembly_drop_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_drop_clause(this); + } +}; + +Alter_assembly_drop_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_drop_clause(this); + } +}; + +Alter_assembly_drop_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_drop_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_drop_clauseContext = Alter_assembly_drop_clauseContext; + +TSqlParser.prototype.alter_assembly_drop_clause = function() { + + var localctx = new Alter_assembly_drop_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 68, TSqlParser.RULE_alter_assembly_drop_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1492; + this.alter_assembly_drop(); + this.state = 1493; + this.alter_assembly_drop_multiple_files(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_drop_multiple_filesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_drop_multiple_files; + return this; +} + +Alter_assembly_drop_multiple_filesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_drop_multiple_filesContext.prototype.constructor = Alter_assembly_drop_multiple_filesContext; + +Alter_assembly_drop_multiple_filesContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Alter_assembly_drop_multiple_filesContext.prototype.multiple_local_files = function() { + return this.getTypedRuleContext(Multiple_local_filesContext,0); +}; + +Alter_assembly_drop_multiple_filesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_drop_multiple_files(this); + } +}; + +Alter_assembly_drop_multiple_filesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_drop_multiple_files(this); + } +}; + +Alter_assembly_drop_multiple_filesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_drop_multiple_files(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_drop_multiple_filesContext = Alter_assembly_drop_multiple_filesContext; + +TSqlParser.prototype.alter_assembly_drop_multiple_files = function() { + + var localctx = new Alter_assembly_drop_multiple_filesContext(this, this._ctx, this.state); + this.enterRule(localctx, 70, TSqlParser.RULE_alter_assembly_drop_multiple_files); + try { + this.state = 1497; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.enterOuterAlt(localctx, 1); + this.state = 1495; + this.match(TSqlParser.ALL); + break; + case TSqlParser.DISK_DRIVE: + case TSqlParser.SINGLE_QUOTE: + this.enterOuterAlt(localctx, 2); + this.state = 1496; + this.multiple_local_files(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_dropContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_drop; + return this; +} + +Alter_assembly_dropContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_dropContext.prototype.constructor = Alter_assembly_dropContext; + +Alter_assembly_dropContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_assembly_dropContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_drop(this); + } +}; + +Alter_assembly_dropContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_drop(this); + } +}; + +Alter_assembly_dropContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_drop(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_dropContext = Alter_assembly_dropContext; + +TSqlParser.prototype.alter_assembly_drop = function() { + + var localctx = new Alter_assembly_dropContext(this, this._ctx, this.state); + this.enterRule(localctx, 72, TSqlParser.RULE_alter_assembly_drop); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1499; + this.match(TSqlParser.DROP); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_add_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_add_clause; + return this; +} + +Alter_assembly_add_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_add_clauseContext.prototype.constructor = Alter_assembly_add_clauseContext; + +Alter_assembly_add_clauseContext.prototype.alter_asssembly_add_clause_start = function() { + return this.getTypedRuleContext(Alter_asssembly_add_clause_startContext,0); +}; + +Alter_assembly_add_clauseContext.prototype.alter_assembly_client_file_clause = function() { + return this.getTypedRuleContext(Alter_assembly_client_file_clauseContext,0); +}; + +Alter_assembly_add_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_add_clause(this); + } +}; + +Alter_assembly_add_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_add_clause(this); + } +}; + +Alter_assembly_add_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_add_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_add_clauseContext = Alter_assembly_add_clauseContext; + +TSqlParser.prototype.alter_assembly_add_clause = function() { + + var localctx = new Alter_assembly_add_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 74, TSqlParser.RULE_alter_assembly_add_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1501; + this.alter_asssembly_add_clause_start(); + this.state = 1502; + this.alter_assembly_client_file_clause(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_asssembly_add_clause_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_asssembly_add_clause_start; + return this; +} + +Alter_asssembly_add_clause_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_asssembly_add_clause_startContext.prototype.constructor = Alter_asssembly_add_clause_startContext; + +Alter_asssembly_add_clause_startContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_asssembly_add_clause_startContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Alter_asssembly_add_clause_startContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Alter_asssembly_add_clause_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_asssembly_add_clause_start(this); + } +}; + +Alter_asssembly_add_clause_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_asssembly_add_clause_start(this); + } +}; + +Alter_asssembly_add_clause_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_asssembly_add_clause_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_asssembly_add_clause_startContext = Alter_asssembly_add_clause_startContext; + +TSqlParser.prototype.alter_asssembly_add_clause_start = function() { + + var localctx = new Alter_asssembly_add_clause_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 76, TSqlParser.RULE_alter_asssembly_add_clause_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1504; + this.match(TSqlParser.ADD); + this.state = 1505; + this.match(TSqlParser.FILE); + this.state = 1506; + this.match(TSqlParser.FROM); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_client_file_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_client_file_clause; + return this; +} + +Alter_assembly_client_file_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_client_file_clauseContext.prototype.constructor = Alter_assembly_client_file_clauseContext; + +Alter_assembly_client_file_clauseContext.prototype.alter_assembly_file_name = function() { + return this.getTypedRuleContext(Alter_assembly_file_nameContext,0); +}; + +Alter_assembly_client_file_clauseContext.prototype.alter_assembly_as = function() { + return this.getTypedRuleContext(Alter_assembly_asContext,0); +}; + +Alter_assembly_client_file_clauseContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_assembly_client_file_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_client_file_clause(this); + } +}; + +Alter_assembly_client_file_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_client_file_clause(this); + } +}; + +Alter_assembly_client_file_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_client_file_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_client_file_clauseContext = Alter_assembly_client_file_clauseContext; + +TSqlParser.prototype.alter_assembly_client_file_clause = function() { + + var localctx = new Alter_assembly_client_file_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 78, TSqlParser.RULE_alter_assembly_client_file_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1508; + this.alter_assembly_file_name(); + this.state = 1512; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 1509; + this.alter_assembly_as(); + this.state = 1510; + this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_file_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_file_name; + return this; +} + +Alter_assembly_file_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_file_nameContext.prototype.constructor = Alter_assembly_file_nameContext; + +Alter_assembly_file_nameContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_assembly_file_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_file_name(this); + } +}; + +Alter_assembly_file_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_file_name(this); + } +}; + +Alter_assembly_file_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_file_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_file_nameContext = Alter_assembly_file_nameContext; + +TSqlParser.prototype.alter_assembly_file_name = function() { + + var localctx = new Alter_assembly_file_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 80, TSqlParser.RULE_alter_assembly_file_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1514; + this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_file_bitsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_file_bits; + return this; +} + +Alter_assembly_file_bitsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_file_bitsContext.prototype.constructor = Alter_assembly_file_bitsContext; + +Alter_assembly_file_bitsContext.prototype.alter_assembly_as = function() { + return this.getTypedRuleContext(Alter_assembly_asContext,0); +}; + +Alter_assembly_file_bitsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_assembly_file_bitsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_file_bits(this); + } +}; + +Alter_assembly_file_bitsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_file_bits(this); + } +}; + +Alter_assembly_file_bitsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_file_bits(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_file_bitsContext = Alter_assembly_file_bitsContext; + +TSqlParser.prototype.alter_assembly_file_bits = function() { + + var localctx = new Alter_assembly_file_bitsContext(this, this._ctx, this.state); + this.enterRule(localctx, 82, TSqlParser.RULE_alter_assembly_file_bits); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1516; + this.alter_assembly_as(); + this.state = 1517; + this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_asContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_as; + return this; +} + +Alter_assembly_asContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_asContext.prototype.constructor = Alter_assembly_asContext; + +Alter_assembly_asContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Alter_assembly_asContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_as(this); + } +}; + +Alter_assembly_asContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_as(this); + } +}; + +Alter_assembly_asContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_as(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_asContext = Alter_assembly_asContext; + +TSqlParser.prototype.alter_assembly_as = function() { + + var localctx = new Alter_assembly_asContext(this, this._ctx, this.state); + this.enterRule(localctx, 84, TSqlParser.RULE_alter_assembly_as); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1519; + this.match(TSqlParser.AS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_with_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_with_clause; + return this; +} + +Alter_assembly_with_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_with_clauseContext.prototype.constructor = Alter_assembly_with_clauseContext; + +Alter_assembly_with_clauseContext.prototype.alter_assembly_with = function() { + return this.getTypedRuleContext(Alter_assembly_withContext,0); +}; + +Alter_assembly_with_clauseContext.prototype.assembly_option = function() { + return this.getTypedRuleContext(Assembly_optionContext,0); +}; + +Alter_assembly_with_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_with_clause(this); + } +}; + +Alter_assembly_with_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_with_clause(this); + } +}; + +Alter_assembly_with_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_with_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_with_clauseContext = Alter_assembly_with_clauseContext; + +TSqlParser.prototype.alter_assembly_with_clause = function() { + + var localctx = new Alter_assembly_with_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 86, TSqlParser.RULE_alter_assembly_with_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1521; + this.alter_assembly_with(); + this.state = 1522; + this.assembly_option(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_assembly_withContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_assembly_with; + return this; +} + +Alter_assembly_withContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_assembly_withContext.prototype.constructor = Alter_assembly_withContext; + +Alter_assembly_withContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_assembly_withContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_assembly_with(this); + } +}; + +Alter_assembly_withContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_assembly_with(this); + } +}; + +Alter_assembly_withContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_assembly_with(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_assembly_withContext = Alter_assembly_withContext; + +TSqlParser.prototype.alter_assembly_with = function() { + + var localctx = new Alter_assembly_withContext(this, this._ctx, this.state); + this.enterRule(localctx, 88, TSqlParser.RULE_alter_assembly_with); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1524; + this.match(TSqlParser.WITH); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Client_assembly_specifierContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_client_assembly_specifier; + return this; +} + +Client_assembly_specifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Client_assembly_specifierContext.prototype.constructor = Client_assembly_specifierContext; + +Client_assembly_specifierContext.prototype.network_file_share = function() { + return this.getTypedRuleContext(Network_file_shareContext,0); +}; + +Client_assembly_specifierContext.prototype.local_file = function() { + return this.getTypedRuleContext(Local_fileContext,0); +}; + +Client_assembly_specifierContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Client_assembly_specifierContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClient_assembly_specifier(this); + } +}; + +Client_assembly_specifierContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClient_assembly_specifier(this); + } +}; + +Client_assembly_specifierContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClient_assembly_specifier(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Client_assembly_specifierContext = Client_assembly_specifierContext; + +TSqlParser.prototype.client_assembly_specifier = function() { + + var localctx = new Client_assembly_specifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 90, TSqlParser.RULE_client_assembly_specifier); + try { + this.state = 1529; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DOUBLE_BACK_SLASH: + this.enterOuterAlt(localctx, 1); + this.state = 1526; + this.network_file_share(); + break; + case TSqlParser.DISK_DRIVE: + this.enterOuterAlt(localctx, 2); + this.state = 1527; + this.local_file(); + break; + case TSqlParser.STRING: + this.enterOuterAlt(localctx, 3); + this.state = 1528; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Assembly_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_assembly_option; + return this; +} + +Assembly_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Assembly_optionContext.prototype.constructor = Assembly_optionContext; + +Assembly_optionContext.prototype.PERMISSION_SET = function() { + return this.getToken(TSqlParser.PERMISSION_SET, 0); +}; + +Assembly_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Assembly_optionContext.prototype.SAFE = function() { + return this.getToken(TSqlParser.SAFE, 0); +}; + +Assembly_optionContext.prototype.EXTERNAL_ACCESS = function() { + return this.getToken(TSqlParser.EXTERNAL_ACCESS, 0); +}; + +Assembly_optionContext.prototype.UNSAFE = function() { + return this.getToken(TSqlParser.UNSAFE, 0); +}; + +Assembly_optionContext.prototype.VISIBILITY = function() { + return this.getToken(TSqlParser.VISIBILITY, 0); +}; + +Assembly_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Assembly_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Assembly_optionContext.prototype.UNCHECKED = function() { + return this.getToken(TSqlParser.UNCHECKED, 0); +}; + +Assembly_optionContext.prototype.DATA = function() { + return this.getToken(TSqlParser.DATA, 0); +}; + +Assembly_optionContext.prototype.assembly_option = function() { + return this.getTypedRuleContext(Assembly_optionContext,0); +}; + +Assembly_optionContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Assembly_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAssembly_option(this); + } +}; + +Assembly_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAssembly_option(this); + } +}; + +Assembly_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAssembly_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +TSqlParser.prototype.assembly_option = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new Assembly_optionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 92; + this.enterRecursionRule(localctx, 92, TSqlParser.RULE_assembly_option, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1540; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PERMISSION_SET: + this.state = 1532; + this.match(TSqlParser.PERMISSION_SET); + this.state = 1533; + this.match(TSqlParser.EQUAL); + this.state = 1534; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EXTERNAL_ACCESS || _la===TSqlParser.SAFE || _la===TSqlParser.UNSAFE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.VISIBILITY: + this.state = 1535; + this.match(TSqlParser.VISIBILITY); + this.state = 1536; + this.match(TSqlParser.EQUAL); + this.state = 1537; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.UNCHECKED: + this.state = 1538; + this.match(TSqlParser.UNCHECKED); + this.state = 1539; + this.match(TSqlParser.DATA); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this._ctx.stop = this._input.LT(-1); + this.state = 1546; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,70,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new Assembly_optionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_assembly_option); + this.state = 1542; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 1543; + this.match(TSqlParser.COMMA); + } + this.state = 1548; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,70,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function Network_file_shareContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_network_file_share; + return this; +} + +Network_file_shareContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Network_file_shareContext.prototype.constructor = Network_file_shareContext; + +Network_file_shareContext.prototype.network_file_start = function() { + return this.getTypedRuleContext(Network_file_startContext,0); +}; + +Network_file_shareContext.prototype.network_computer = function() { + return this.getTypedRuleContext(Network_computerContext,0); +}; + +Network_file_shareContext.prototype.file_path = function() { + return this.getTypedRuleContext(File_pathContext,0); +}; + +Network_file_shareContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNetwork_file_share(this); + } +}; + +Network_file_shareContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNetwork_file_share(this); + } +}; + +Network_file_shareContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNetwork_file_share(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Network_file_shareContext = Network_file_shareContext; + +TSqlParser.prototype.network_file_share = function() { + + var localctx = new Network_file_shareContext(this, this._ctx, this.state); + this.enterRule(localctx, 94, TSqlParser.RULE_network_file_share); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1549; + this.network_file_start(); + this.state = 1550; + this.network_computer(); + this.state = 1551; + this.file_path(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Network_computerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_network_computer; + this.computer_name = null; // IdContext + return this; +} + +Network_computerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Network_computerContext.prototype.constructor = Network_computerContext; + +Network_computerContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Network_computerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNetwork_computer(this); + } +}; + +Network_computerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNetwork_computer(this); + } +}; + +Network_computerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNetwork_computer(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Network_computerContext = Network_computerContext; + +TSqlParser.prototype.network_computer = function() { + + var localctx = new Network_computerContext(this, this._ctx, this.state); + this.enterRule(localctx, 96, TSqlParser.RULE_network_computer); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1553; + localctx.computer_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Network_file_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_network_file_start; + return this; +} + +Network_file_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Network_file_startContext.prototype.constructor = Network_file_startContext; + +Network_file_startContext.prototype.DOUBLE_BACK_SLASH = function() { + return this.getToken(TSqlParser.DOUBLE_BACK_SLASH, 0); +}; + +Network_file_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNetwork_file_start(this); + } +}; + +Network_file_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNetwork_file_start(this); + } +}; + +Network_file_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNetwork_file_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Network_file_startContext = Network_file_startContext; + +TSqlParser.prototype.network_file_start = function() { + + var localctx = new Network_file_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 98, TSqlParser.RULE_network_file_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1555; + this.match(TSqlParser.DOUBLE_BACK_SLASH); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_pathContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_path; + return this; +} + +File_pathContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_pathContext.prototype.constructor = File_pathContext; + +File_pathContext.prototype.file_directory_path_separator = function() { + return this.getTypedRuleContext(File_directory_path_separatorContext,0); +}; + +File_pathContext.prototype.file_path = function() { + return this.getTypedRuleContext(File_pathContext,0); +}; + +File_pathContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +File_pathContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_path(this); + } +}; + +File_pathContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_path(this); + } +}; + +File_pathContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_path(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_pathContext = File_pathContext; + +TSqlParser.prototype.file_path = function() { + + var localctx = new File_pathContext(this, this._ctx, this.state); + this.enterRule(localctx, 100, TSqlParser.RULE_file_path); + try { + this.state = 1561; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BACKSLASH: + this.enterOuterAlt(localctx, 1); + this.state = 1557; + this.file_directory_path_separator(); + this.state = 1558; + this.file_path(); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 2); + this.state = 1560; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_directory_path_separatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_directory_path_separator; + return this; +} + +File_directory_path_separatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_directory_path_separatorContext.prototype.constructor = File_directory_path_separatorContext; + +File_directory_path_separatorContext.prototype.BACKSLASH = function() { + return this.getToken(TSqlParser.BACKSLASH, 0); +}; + +File_directory_path_separatorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_directory_path_separator(this); + } +}; + +File_directory_path_separatorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_directory_path_separator(this); + } +}; + +File_directory_path_separatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_directory_path_separator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_directory_path_separatorContext = File_directory_path_separatorContext; + +TSqlParser.prototype.file_directory_path_separator = function() { + + var localctx = new File_directory_path_separatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 102, TSqlParser.RULE_file_directory_path_separator); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1563; + this.match(TSqlParser.BACKSLASH); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Local_fileContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_local_file; + return this; +} + +Local_fileContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Local_fileContext.prototype.constructor = Local_fileContext; + +Local_fileContext.prototype.local_drive = function() { + return this.getTypedRuleContext(Local_driveContext,0); +}; + +Local_fileContext.prototype.file_path = function() { + return this.getTypedRuleContext(File_pathContext,0); +}; + +Local_fileContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterLocal_file(this); + } +}; + +Local_fileContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitLocal_file(this); + } +}; + +Local_fileContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitLocal_file(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Local_fileContext = Local_fileContext; + +TSqlParser.prototype.local_file = function() { + + var localctx = new Local_fileContext(this, this._ctx, this.state); + this.enterRule(localctx, 104, TSqlParser.RULE_local_file); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1565; + this.local_drive(); + this.state = 1566; + this.file_path(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Local_driveContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_local_drive; + return this; +} + +Local_driveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Local_driveContext.prototype.constructor = Local_driveContext; + +Local_driveContext.prototype.DISK_DRIVE = function() { + return this.getToken(TSqlParser.DISK_DRIVE, 0); +}; + +Local_driveContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterLocal_drive(this); + } +}; + +Local_driveContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitLocal_drive(this); + } +}; + +Local_driveContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitLocal_drive(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Local_driveContext = Local_driveContext; + +TSqlParser.prototype.local_drive = function() { + + var localctx = new Local_driveContext(this, this._ctx, this.state); + this.enterRule(localctx, 106, TSqlParser.RULE_local_drive); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1568; + this.match(TSqlParser.DISK_DRIVE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Multiple_local_filesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_multiple_local_files; + return this; +} + +Multiple_local_filesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Multiple_local_filesContext.prototype.constructor = Multiple_local_filesContext; + +Multiple_local_filesContext.prototype.multiple_local_file_start = function() { + return this.getTypedRuleContext(Multiple_local_file_startContext,0); +}; + +Multiple_local_filesContext.prototype.local_file = function() { + return this.getTypedRuleContext(Local_fileContext,0); +}; + +Multiple_local_filesContext.prototype.SINGLE_QUOTE = function() { + return this.getToken(TSqlParser.SINGLE_QUOTE, 0); +}; + +Multiple_local_filesContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Multiple_local_filesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMultiple_local_files(this); + } +}; + +Multiple_local_filesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMultiple_local_files(this); + } +}; + +Multiple_local_filesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMultiple_local_files(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Multiple_local_filesContext = Multiple_local_filesContext; + +TSqlParser.prototype.multiple_local_files = function() { + + var localctx = new Multiple_local_filesContext(this, this._ctx, this.state); + this.enterRule(localctx, 108, TSqlParser.RULE_multiple_local_files); + try { + this.state = 1576; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SINGLE_QUOTE: + this.enterOuterAlt(localctx, 1); + this.state = 1570; + this.multiple_local_file_start(); + this.state = 1571; + this.local_file(); + this.state = 1572; + this.match(TSqlParser.SINGLE_QUOTE); + this.state = 1573; + this.match(TSqlParser.COMMA); + break; + case TSqlParser.DISK_DRIVE: + this.enterOuterAlt(localctx, 2); + this.state = 1575; + this.local_file(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Multiple_local_file_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_multiple_local_file_start; + return this; +} + +Multiple_local_file_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Multiple_local_file_startContext.prototype.constructor = Multiple_local_file_startContext; + +Multiple_local_file_startContext.prototype.SINGLE_QUOTE = function() { + return this.getToken(TSqlParser.SINGLE_QUOTE, 0); +}; + +Multiple_local_file_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMultiple_local_file_start(this); + } +}; + +Multiple_local_file_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMultiple_local_file_start(this); + } +}; + +Multiple_local_file_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMultiple_local_file_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Multiple_local_file_startContext = Multiple_local_file_startContext; + +TSqlParser.prototype.multiple_local_file_start = function() { + + var localctx = new Multiple_local_file_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 110, TSqlParser.RULE_multiple_local_file_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1578; + this.match(TSqlParser.SINGLE_QUOTE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_assemblyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_assembly; + this.assembly_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_assemblyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_assemblyContext.prototype.constructor = Create_assemblyContext; + +Create_assemblyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_assemblyContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Create_assemblyContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_assemblyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_assemblyContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_assemblyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_assemblyContext.prototype.PERMISSION_SET = function() { + return this.getToken(TSqlParser.PERMISSION_SET, 0); +}; + +Create_assemblyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_assemblyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_assemblyContext.prototype.BINARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BINARY); + } else { + return this.getToken(TSqlParser.BINARY, i); + } +}; + + +Create_assemblyContext.prototype.SAFE = function() { + return this.getToken(TSqlParser.SAFE, 0); +}; + +Create_assemblyContext.prototype.EXTERNAL_ACCESS = function() { + return this.getToken(TSqlParser.EXTERNAL_ACCESS, 0); +}; + +Create_assemblyContext.prototype.UNSAFE = function() { + return this.getToken(TSqlParser.UNSAFE, 0); +}; + +Create_assemblyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_assemblyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_assembly(this); + } +}; + +Create_assemblyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_assembly(this); + } +}; + +Create_assemblyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_assembly(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_assemblyContext = Create_assemblyContext; + +TSqlParser.prototype.create_assembly = function() { + + var localctx = new Create_assemblyContext(this, this._ctx, this.state); + this.enterRule(localctx, 112, TSqlParser.RULE_create_assembly); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1580; + this.match(TSqlParser.CREATE); + this.state = 1581; + this.match(TSqlParser.ASSEMBLY); + this.state = 1582; + localctx.assembly_name = this.id(); + this.state = 1585; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 1583; + this.match(TSqlParser.AUTHORIZATION); + this.state = 1584; + localctx.owner_name = this.id(); + } + + this.state = 1587; + this.match(TSqlParser.FROM); + this.state = 1592; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 1589; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1588; + this.match(TSqlParser.COMMA); + } + + this.state = 1591; + _la = this._input.LA(1); + if(!(_la===TSqlParser.STRING || _la===TSqlParser.BINARY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1594; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,75, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 1600; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,76,this._ctx); + if(la_===1) { + this.state = 1596; + this.match(TSqlParser.WITH); + this.state = 1597; + this.match(TSqlParser.PERMISSION_SET); + this.state = 1598; + this.match(TSqlParser.EQUAL); + this.state = 1599; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EXTERNAL_ACCESS || _la===TSqlParser.SAFE || _la===TSqlParser.UNSAFE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_assemblyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_assembly; + this.assembly_name = null; // IdContext + return this; +} + +Drop_assemblyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_assemblyContext.prototype.constructor = Drop_assemblyContext; + +Drop_assemblyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_assemblyContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Drop_assemblyContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_assemblyContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_assemblyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Drop_assemblyContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +Drop_assemblyContext.prototype.DEPENDENTS = function() { + return this.getToken(TSqlParser.DEPENDENTS, 0); +}; + +Drop_assemblyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_assemblyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_assemblyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_assembly(this); + } +}; + +Drop_assemblyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_assembly(this); + } +}; + +Drop_assemblyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_assembly(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_assemblyContext = Drop_assemblyContext; + +TSqlParser.prototype.drop_assembly = function() { + + var localctx = new Drop_assemblyContext(this, this._ctx, this.state); + this.enterRule(localctx, 114, TSqlParser.RULE_drop_assembly); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1602; + this.match(TSqlParser.DROP); + this.state = 1603; + this.match(TSqlParser.ASSEMBLY); + this.state = 1606; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 1604; + this.match(TSqlParser.IF); + this.state = 1605; + this.match(TSqlParser.EXISTS); + } + + this.state = 1612; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 1609; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1608; + this.match(TSqlParser.COMMA); + } + + this.state = 1611; + localctx.assembly_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1614; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,79, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 1619; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,80,this._ctx); + if(la_===1) { + this.state = 1616; + this.match(TSqlParser.WITH); + this.state = 1617; + this.match(TSqlParser.NO); + this.state = 1618; + this.match(TSqlParser.DEPENDENTS); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_asymmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_asymmetric_key; + this.Asym_Key_Name = null; // IdContext + return this; +} + +Alter_asymmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_asymmetric_keyContext.prototype.constructor = Alter_asymmetric_keyContext; + +Alter_asymmetric_keyContext.prototype.alter_asymmetric_key_start = function() { + return this.getTypedRuleContext(Alter_asymmetric_key_startContext,0); +}; + +Alter_asymmetric_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_asymmetric_keyContext.prototype.asymmetric_key_option = function() { + return this.getTypedRuleContext(Asymmetric_key_optionContext,0); +}; + +Alter_asymmetric_keyContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Alter_asymmetric_keyContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Alter_asymmetric_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_asymmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_asymmetric_key(this); + } +}; + +Alter_asymmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_asymmetric_key(this); + } +}; + +Alter_asymmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_asymmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_asymmetric_keyContext = Alter_asymmetric_keyContext; + +TSqlParser.prototype.alter_asymmetric_key = function() { + + var localctx = new Alter_asymmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 116, TSqlParser.RULE_alter_asymmetric_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1621; + this.alter_asymmetric_key_start(); + this.state = 1622; + localctx.Asym_Key_Name = this.id(); + this.state = 1627; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 1623; + this.asymmetric_key_option(); + break; + case TSqlParser.REMOVE: + this.state = 1624; + this.match(TSqlParser.REMOVE); + this.state = 1625; + this.match(TSqlParser.PRIVATE); + this.state = 1626; + this.match(TSqlParser.KEY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_asymmetric_key_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_asymmetric_key_start; + return this; +} + +Alter_asymmetric_key_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_asymmetric_key_startContext.prototype.constructor = Alter_asymmetric_key_startContext; + +Alter_asymmetric_key_startContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_asymmetric_key_startContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Alter_asymmetric_key_startContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_asymmetric_key_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_asymmetric_key_start(this); + } +}; + +Alter_asymmetric_key_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_asymmetric_key_start(this); + } +}; + +Alter_asymmetric_key_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_asymmetric_key_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_asymmetric_key_startContext = Alter_asymmetric_key_startContext; + +TSqlParser.prototype.alter_asymmetric_key_start = function() { + + var localctx = new Alter_asymmetric_key_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 118, TSqlParser.RULE_alter_asymmetric_key_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1629; + this.match(TSqlParser.ALTER); + this.state = 1630; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1631; + this.match(TSqlParser.KEY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Asymmetric_key_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_asymmetric_key_option; + return this; +} + +Asymmetric_key_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Asymmetric_key_optionContext.prototype.constructor = Asymmetric_key_optionContext; + +Asymmetric_key_optionContext.prototype.asymmetric_key_option_start = function() { + return this.getTypedRuleContext(Asymmetric_key_option_startContext,0); +}; + +Asymmetric_key_optionContext.prototype.asymmetric_key_password_change_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Asymmetric_key_password_change_optionContext); + } else { + return this.getTypedRuleContext(Asymmetric_key_password_change_optionContext,i); + } +}; + +Asymmetric_key_optionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Asymmetric_key_optionContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Asymmetric_key_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAsymmetric_key_option(this); + } +}; + +Asymmetric_key_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAsymmetric_key_option(this); + } +}; + +Asymmetric_key_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAsymmetric_key_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Asymmetric_key_optionContext = Asymmetric_key_optionContext; + +TSqlParser.prototype.asymmetric_key_option = function() { + + var localctx = new Asymmetric_key_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 120, TSqlParser.RULE_asymmetric_key_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1633; + this.asymmetric_key_option_start(); + this.state = 1634; + this.asymmetric_key_password_change_option(); + this.state = 1637; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1635; + this.match(TSqlParser.COMMA); + this.state = 1636; + this.asymmetric_key_password_change_option(); + } + + this.state = 1639; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Asymmetric_key_option_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_asymmetric_key_option_start; + return this; +} + +Asymmetric_key_option_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Asymmetric_key_option_startContext.prototype.constructor = Asymmetric_key_option_startContext; + +Asymmetric_key_option_startContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Asymmetric_key_option_startContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Asymmetric_key_option_startContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Asymmetric_key_option_startContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Asymmetric_key_option_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAsymmetric_key_option_start(this); + } +}; + +Asymmetric_key_option_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAsymmetric_key_option_start(this); + } +}; + +Asymmetric_key_option_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAsymmetric_key_option_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Asymmetric_key_option_startContext = Asymmetric_key_option_startContext; + +TSqlParser.prototype.asymmetric_key_option_start = function() { + + var localctx = new Asymmetric_key_option_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 122, TSqlParser.RULE_asymmetric_key_option_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1641; + this.match(TSqlParser.WITH); + this.state = 1642; + this.match(TSqlParser.PRIVATE); + this.state = 1643; + this.match(TSqlParser.KEY); + this.state = 1644; + this.match(TSqlParser.LR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Asymmetric_key_password_change_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_asymmetric_key_password_change_option; + return this; +} + +Asymmetric_key_password_change_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Asymmetric_key_password_change_optionContext.prototype.constructor = Asymmetric_key_password_change_optionContext; + +Asymmetric_key_password_change_optionContext.prototype.DECRYPTION = function() { + return this.getToken(TSqlParser.DECRYPTION, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Asymmetric_key_password_change_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAsymmetric_key_password_change_option(this); + } +}; + +Asymmetric_key_password_change_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAsymmetric_key_password_change_option(this); + } +}; + +Asymmetric_key_password_change_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAsymmetric_key_password_change_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Asymmetric_key_password_change_optionContext = Asymmetric_key_password_change_optionContext; + +TSqlParser.prototype.asymmetric_key_password_change_option = function() { + + var localctx = new Asymmetric_key_password_change_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 124, TSqlParser.RULE_asymmetric_key_password_change_option); + try { + this.state = 1656; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECRYPTION: + this.enterOuterAlt(localctx, 1); + this.state = 1646; + this.match(TSqlParser.DECRYPTION); + this.state = 1647; + this.match(TSqlParser.BY); + this.state = 1648; + this.match(TSqlParser.PASSWORD); + this.state = 1649; + this.match(TSqlParser.EQUAL); + this.state = 1650; + this.match(TSqlParser.STRING); + break; + case TSqlParser.ENCRYPTION: + this.enterOuterAlt(localctx, 2); + this.state = 1651; + this.match(TSqlParser.ENCRYPTION); + this.state = 1652; + this.match(TSqlParser.BY); + this.state = 1653; + this.match(TSqlParser.PASSWORD); + this.state = 1654; + this.match(TSqlParser.EQUAL); + this.state = 1655; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_asymmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_asymmetric_key; + this.Asym_Key_Nam = null; // IdContext + this.database_principal_name = null; // IdContext + this.Assembly_Name = null; // IdContext + this.Provider_Name = null; // IdContext + this.provider_key_name = null; // Token + this.asymmetric_key_password = null; // Token + return this; +} + +Create_asymmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_asymmetric_keyContext.prototype.constructor = Create_asymmetric_keyContext; + +Create_asymmetric_keyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_asymmetric_keyContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Create_asymmetric_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_asymmetric_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_asymmetric_keyContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_asymmetric_keyContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_asymmetric_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_asymmetric_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_asymmetric_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_asymmetric_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_asymmetric_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_asymmetric_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_asymmetric_keyContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Create_asymmetric_keyContext.prototype.EXECUTABLE_FILE = function() { + return this.getToken(TSqlParser.EXECUTABLE_FILE, 0); +}; + +Create_asymmetric_keyContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Create_asymmetric_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_asymmetric_keyContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Create_asymmetric_keyContext.prototype.PROVIDER_KEY_NAME = function() { + return this.getToken(TSqlParser.PROVIDER_KEY_NAME, 0); +}; + +Create_asymmetric_keyContext.prototype.CREATION_DISPOSITION = function() { + return this.getToken(TSqlParser.CREATION_DISPOSITION, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_4096 = function() { + return this.getToken(TSqlParser.RSA_4096, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_3072 = function() { + return this.getToken(TSqlParser.RSA_3072, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_2048 = function() { + return this.getToken(TSqlParser.RSA_2048, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_1024 = function() { + return this.getToken(TSqlParser.RSA_1024, 0); +}; + +Create_asymmetric_keyContext.prototype.RSA_512 = function() { + return this.getToken(TSqlParser.RSA_512, 0); +}; + +Create_asymmetric_keyContext.prototype.CREATE_NEW = function() { + return this.getToken(TSqlParser.CREATE_NEW, 0); +}; + +Create_asymmetric_keyContext.prototype.OPEN_EXISTING = function() { + return this.getToken(TSqlParser.OPEN_EXISTING, 0); +}; + +Create_asymmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_asymmetric_key(this); + } +}; + +Create_asymmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_asymmetric_key(this); + } +}; + +Create_asymmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_asymmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_asymmetric_keyContext = Create_asymmetric_keyContext; + +TSqlParser.prototype.create_asymmetric_key = function() { + + var localctx = new Create_asymmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 126, TSqlParser.RULE_create_asymmetric_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1658; + this.match(TSqlParser.CREATE); + this.state = 1659; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1660; + this.match(TSqlParser.KEY); + this.state = 1661; + localctx.Asym_Key_Nam = this.id(); + this.state = 1664; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 1662; + this.match(TSqlParser.AUTHORIZATION); + this.state = 1663; + localctx.database_principal_name = this.id(); + } + + this.state = 1679; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 1666; + this.match(TSqlParser.FROM); + this.state = 1677; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILE: + this.state = 1667; + this.match(TSqlParser.FILE); + this.state = 1668; + this.match(TSqlParser.EQUAL); + this.state = 1669; + this.match(TSqlParser.STRING); + break; + case TSqlParser.EXECUTABLE_FILE: + this.state = 1670; + this.match(TSqlParser.EXECUTABLE_FILE); + this.state = 1671; + this.match(TSqlParser.EQUAL); + this.state = 1672; + this.match(TSqlParser.STRING); + break; + case TSqlParser.ASSEMBLY: + this.state = 1673; + this.match(TSqlParser.ASSEMBLY); + this.state = 1674; + localctx.Assembly_Name = this.id(); + break; + case TSqlParser.PROVIDER: + this.state = 1675; + this.match(TSqlParser.PROVIDER); + this.state = 1676; + localctx.Provider_Name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 1693; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,88,this._ctx); + if(la_===1) { + this.state = 1681; + this.match(TSqlParser.WITH); + this.state = 1691; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALGORITHM: + this.state = 1682; + this.match(TSqlParser.ALGORITHM); + this.state = 1683; + this.match(TSqlParser.EQUAL); + this.state = 1684; + _la = this._input.LA(1); + if(!(((((_la - 290)) & ~0x1f) == 0 && ((1 << (_la - 290)) & ((1 << (TSqlParser.RSA_512 - 290)) | (1 << (TSqlParser.RSA_1024 - 290)) | (1 << (TSqlParser.RSA_2048 - 290)) | (1 << (TSqlParser.RSA_3072 - 290)) | (1 << (TSqlParser.RSA_4096 - 290)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.PROVIDER_KEY_NAME: + this.state = 1685; + this.match(TSqlParser.PROVIDER_KEY_NAME); + this.state = 1686; + this.match(TSqlParser.EQUAL); + this.state = 1687; + localctx.provider_key_name = this.match(TSqlParser.STRING); + break; + case TSqlParser.CREATION_DISPOSITION: + this.state = 1688; + this.match(TSqlParser.CREATION_DISPOSITION); + this.state = 1689; + this.match(TSqlParser.EQUAL); + this.state = 1690; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CREATE_NEW || _la===TSqlParser.OPEN_EXISTING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 1700; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,89,this._ctx); + if(la_===1) { + this.state = 1695; + this.match(TSqlParser.ENCRYPTION); + this.state = 1696; + this.match(TSqlParser.BY); + this.state = 1697; + this.match(TSqlParser.PASSWORD); + this.state = 1698; + this.match(TSqlParser.EQUAL); + this.state = 1699; + localctx.asymmetric_key_password = this.match(TSqlParser.STRING); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_asymmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_asymmetric_key; + this.key_name = null; // IdContext + return this; +} + +Drop_asymmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_asymmetric_keyContext.prototype.constructor = Drop_asymmetric_keyContext; + +Drop_asymmetric_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_asymmetric_keyContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Drop_asymmetric_keyContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Drop_asymmetric_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_asymmetric_keyContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Drop_asymmetric_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Drop_asymmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_asymmetric_key(this); + } +}; + +Drop_asymmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_asymmetric_key(this); + } +}; + +Drop_asymmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_asymmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_asymmetric_keyContext = Drop_asymmetric_keyContext; + +TSqlParser.prototype.drop_asymmetric_key = function() { + + var localctx = new Drop_asymmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 128, TSqlParser.RULE_drop_asymmetric_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1702; + this.match(TSqlParser.DROP); + this.state = 1703; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1704; + this.match(TSqlParser.KEY); + this.state = 1705; + localctx.key_name = this.id(); + this.state = 1709; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,90,this._ctx); + if(la_===1) { + this.state = 1706; + this.match(TSqlParser.REMOVE); + this.state = 1707; + this.match(TSqlParser.PROVIDER); + this.state = 1708; + this.match(TSqlParser.KEY); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorizationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization; + this.entity = null; // Entity_nameContext + return this; +} + +Alter_authorizationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorizationContext.prototype.constructor = Alter_authorizationContext; + +Alter_authorizationContext.prototype.alter_authorization_start = function() { + return this.getTypedRuleContext(Alter_authorization_startContext,0); +}; + +Alter_authorizationContext.prototype.entity_to = function() { + return this.getTypedRuleContext(Entity_toContext,0); +}; + +Alter_authorizationContext.prototype.authorization_grantee = function() { + return this.getTypedRuleContext(Authorization_granteeContext,0); +}; + +Alter_authorizationContext.prototype.entity_name = function() { + return this.getTypedRuleContext(Entity_nameContext,0); +}; + +Alter_authorizationContext.prototype.class_type = function() { + return this.getTypedRuleContext(Class_typeContext,0); +}; + +Alter_authorizationContext.prototype.colon_colon = function() { + return this.getTypedRuleContext(Colon_colonContext,0); +}; + +Alter_authorizationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization(this); + } +}; + +Alter_authorizationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization(this); + } +}; + +Alter_authorizationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorizationContext = Alter_authorizationContext; + +TSqlParser.prototype.alter_authorization = function() { + + var localctx = new Alter_authorizationContext(this, this._ctx, this.state); + this.enterRule(localctx, 130, TSqlParser.RULE_alter_authorization); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1711; + this.alter_authorization_start(); + this.state = 1715; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,91,this._ctx); + if(la_===1) { + this.state = 1712; + this.class_type(); + this.state = 1713; + this.colon_colon(); + + } + this.state = 1717; + localctx.entity = this.entity_name(); + this.state = 1718; + this.entity_to(); + this.state = 1719; + this.authorization_grantee(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Authorization_granteeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_authorization_grantee; + this.principal_name = null; // IdContext + return this; +} + +Authorization_granteeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Authorization_granteeContext.prototype.constructor = Authorization_granteeContext; + +Authorization_granteeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Authorization_granteeContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Authorization_granteeContext.prototype.OWNER = function() { + return this.getToken(TSqlParser.OWNER, 0); +}; + +Authorization_granteeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAuthorization_grantee(this); + } +}; + +Authorization_granteeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAuthorization_grantee(this); + } +}; + +Authorization_granteeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAuthorization_grantee(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Authorization_granteeContext = Authorization_granteeContext; + +TSqlParser.prototype.authorization_grantee = function() { + + var localctx = new Authorization_granteeContext(this, this._ctx, this.state); + this.enterRule(localctx, 132, TSqlParser.RULE_authorization_grantee); + try { + this.state = 1724; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 1721; + localctx.principal_name = this.id(); + break; + case TSqlParser.SCHEMA: + this.enterOuterAlt(localctx, 2); + this.state = 1722; + this.match(TSqlParser.SCHEMA); + this.state = 1723; + this.match(TSqlParser.OWNER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Entity_toContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_entity_to; + return this; +} + +Entity_toContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Entity_toContext.prototype.constructor = Entity_toContext; + +Entity_toContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Entity_toContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEntity_to(this); + } +}; + +Entity_toContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEntity_to(this); + } +}; + +Entity_toContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEntity_to(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Entity_toContext = Entity_toContext; + +TSqlParser.prototype.entity_to = function() { + + var localctx = new Entity_toContext(this, this._ctx, this.state); + this.enterRule(localctx, 134, TSqlParser.RULE_entity_to); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1726; + this.match(TSqlParser.TO); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Colon_colonContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_colon_colon; + return this; +} + +Colon_colonContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Colon_colonContext.prototype.constructor = Colon_colonContext; + +Colon_colonContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Colon_colonContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColon_colon(this); + } +}; + +Colon_colonContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColon_colon(this); + } +}; + +Colon_colonContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColon_colon(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Colon_colonContext = Colon_colonContext; + +TSqlParser.prototype.colon_colon = function() { + + var localctx = new Colon_colonContext(this, this._ctx, this.state); + this.enterRule(localctx, 136, TSqlParser.RULE_colon_colon); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1728; + this.match(TSqlParser.COLON); + this.state = 1729; + this.match(TSqlParser.COLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorization_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization_start; + return this; +} + +Alter_authorization_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorization_startContext.prototype.constructor = Alter_authorization_startContext; + +Alter_authorization_startContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_authorization_startContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Alter_authorization_startContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_authorization_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization_start(this); + } +}; + +Alter_authorization_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization_start(this); + } +}; + +Alter_authorization_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorization_startContext = Alter_authorization_startContext; + +TSqlParser.prototype.alter_authorization_start = function() { + + var localctx = new Alter_authorization_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 138, TSqlParser.RULE_alter_authorization_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1731; + this.match(TSqlParser.ALTER); + this.state = 1732; + this.match(TSqlParser.AUTHORIZATION); + this.state = 1733; + this.match(TSqlParser.ON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorization_for_sql_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization_for_sql_database; + this.entity = null; // Entity_nameContext + return this; +} + +Alter_authorization_for_sql_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorization_for_sql_databaseContext.prototype.constructor = Alter_authorization_for_sql_databaseContext; + +Alter_authorization_for_sql_databaseContext.prototype.alter_authorization_start = function() { + return this.getTypedRuleContext(Alter_authorization_startContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.entity_to = function() { + return this.getTypedRuleContext(Entity_toContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.authorization_grantee = function() { + return this.getTypedRuleContext(Authorization_granteeContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.entity_name = function() { + return this.getTypedRuleContext(Entity_nameContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.class_type_for_sql_database = function() { + return this.getTypedRuleContext(Class_type_for_sql_databaseContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.colon_colon = function() { + return this.getTypedRuleContext(Colon_colonContext,0); +}; + +Alter_authorization_for_sql_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization_for_sql_database(this); + } +}; + +Alter_authorization_for_sql_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization_for_sql_database(this); + } +}; + +Alter_authorization_for_sql_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization_for_sql_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorization_for_sql_databaseContext = Alter_authorization_for_sql_databaseContext; + +TSqlParser.prototype.alter_authorization_for_sql_database = function() { + + var localctx = new Alter_authorization_for_sql_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 140, TSqlParser.RULE_alter_authorization_for_sql_database); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1735; + this.alter_authorization_start(); + this.state = 1739; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,93,this._ctx); + if(la_===1) { + this.state = 1736; + this.class_type_for_sql_database(); + this.state = 1737; + this.colon_colon(); + + } + this.state = 1741; + localctx.entity = this.entity_name(); + this.state = 1742; + this.entity_to(); + this.state = 1743; + this.authorization_grantee(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorization_for_azure_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization_for_azure_dw; + this.entity = null; // Entity_name_for_azure_dwContext + return this; +} + +Alter_authorization_for_azure_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorization_for_azure_dwContext.prototype.constructor = Alter_authorization_for_azure_dwContext; + +Alter_authorization_for_azure_dwContext.prototype.alter_authorization_start = function() { + return this.getTypedRuleContext(Alter_authorization_startContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.entity_to = function() { + return this.getTypedRuleContext(Entity_toContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.authorization_grantee = function() { + return this.getTypedRuleContext(Authorization_granteeContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.entity_name_for_azure_dw = function() { + return this.getTypedRuleContext(Entity_name_for_azure_dwContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.class_type_for_azure_dw = function() { + return this.getTypedRuleContext(Class_type_for_azure_dwContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.colon_colon = function() { + return this.getTypedRuleContext(Colon_colonContext,0); +}; + +Alter_authorization_for_azure_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization_for_azure_dw(this); + } +}; + +Alter_authorization_for_azure_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization_for_azure_dw(this); + } +}; + +Alter_authorization_for_azure_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization_for_azure_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorization_for_azure_dwContext = Alter_authorization_for_azure_dwContext; + +TSqlParser.prototype.alter_authorization_for_azure_dw = function() { + + var localctx = new Alter_authorization_for_azure_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 142, TSqlParser.RULE_alter_authorization_for_azure_dw); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1745; + this.alter_authorization_start(); + this.state = 1749; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,94,this._ctx); + if(la_===1) { + this.state = 1746; + this.class_type_for_azure_dw(); + this.state = 1747; + this.colon_colon(); + + } + this.state = 1751; + localctx.entity = this.entity_name_for_azure_dw(); + this.state = 1752; + this.entity_to(); + this.state = 1753; + this.authorization_grantee(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_authorization_for_parallel_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_authorization_for_parallel_dw; + this.entity = null; // Entity_name_for_parallel_dwContext + return this; +} + +Alter_authorization_for_parallel_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_authorization_for_parallel_dwContext.prototype.constructor = Alter_authorization_for_parallel_dwContext; + +Alter_authorization_for_parallel_dwContext.prototype.alter_authorization_start = function() { + return this.getTypedRuleContext(Alter_authorization_startContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.entity_to = function() { + return this.getTypedRuleContext(Entity_toContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.authorization_grantee = function() { + return this.getTypedRuleContext(Authorization_granteeContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.entity_name_for_parallel_dw = function() { + return this.getTypedRuleContext(Entity_name_for_parallel_dwContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.class_type_for_parallel_dw = function() { + return this.getTypedRuleContext(Class_type_for_parallel_dwContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.colon_colon = function() { + return this.getTypedRuleContext(Colon_colonContext,0); +}; + +Alter_authorization_for_parallel_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_authorization_for_parallel_dw(this); + } +}; + +Alter_authorization_for_parallel_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_authorization_for_parallel_dw(this); + } +}; + +Alter_authorization_for_parallel_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_authorization_for_parallel_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_authorization_for_parallel_dwContext = Alter_authorization_for_parallel_dwContext; + +TSqlParser.prototype.alter_authorization_for_parallel_dw = function() { + + var localctx = new Alter_authorization_for_parallel_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 144, TSqlParser.RULE_alter_authorization_for_parallel_dw); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1755; + this.alter_authorization_start(); + this.state = 1759; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,95,this._ctx); + if(la_===1) { + this.state = 1756; + this.class_type_for_parallel_dw(); + this.state = 1757; + this.colon_colon(); + + } + this.state = 1761; + localctx.entity = this.entity_name_for_parallel_dw(); + this.state = 1762; + this.entity_to(); + this.state = 1763; + this.authorization_grantee(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Class_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_class_type; + return this; +} + +Class_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Class_typeContext.prototype.constructor = Class_typeContext; + +Class_typeContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Class_typeContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Class_typeContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Class_typeContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Class_typeContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Class_typeContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Class_typeContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Class_typeContext.prototype.CONTRACT = function() { + return this.getToken(TSqlParser.CONTRACT, 0); +}; + +Class_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Class_typeContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Class_typeContext.prototype.ENDPOINT = function() { + return this.getToken(TSqlParser.ENDPOINT, 0); +}; + +Class_typeContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Class_typeContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Class_typeContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Class_typeContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Class_typeContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Class_typeContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Class_typeContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Class_typeContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Class_typeContext.prototype.ROUTE = function() { + return this.getToken(TSqlParser.ROUTE, 0); +}; + +Class_typeContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Class_typeContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Class_typeContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Class_typeContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Class_typeContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Class_typeContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Class_typeContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Class_typeContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Class_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClass_type(this); + } +}; + +Class_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClass_type(this); + } +}; + +Class_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClass_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Class_typeContext = Class_typeContext; + +TSqlParser.prototype.class_type = function() { + + var localctx = new Class_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 146, TSqlParser.RULE_class_type); + try { + this.state = 1799; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,96,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1765; + this.match(TSqlParser.OBJECT); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1766; + this.match(TSqlParser.ASSEMBLY); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1767; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1768; + this.match(TSqlParser.KEY); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1769; + this.match(TSqlParser.AVAILABILITY); + this.state = 1770; + this.match(TSqlParser.GROUP); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1771; + this.match(TSqlParser.CERTIFICATE); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1772; + this.match(TSqlParser.CONTRACT); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1773; + this.match(TSqlParser.TYPE); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1774; + this.match(TSqlParser.DATABASE); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1775; + this.match(TSqlParser.ENDPOINT); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1776; + this.match(TSqlParser.FULLTEXT); + this.state = 1777; + this.match(TSqlParser.CATALOG); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1778; + this.match(TSqlParser.FULLTEXT); + this.state = 1779; + this.match(TSqlParser.STOPLIST); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1780; + this.match(TSqlParser.MESSAGE); + this.state = 1781; + this.match(TSqlParser.TYPE); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 1782; + this.match(TSqlParser.REMOTE); + this.state = 1783; + this.match(TSqlParser.SERVICE); + this.state = 1784; + this.match(TSqlParser.BINDING); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 1785; + this.match(TSqlParser.ROLE); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 1786; + this.match(TSqlParser.ROUTE); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 1787; + this.match(TSqlParser.SCHEMA); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 1788; + this.match(TSqlParser.SEARCH); + this.state = 1789; + this.match(TSqlParser.PROPERTY); + this.state = 1790; + this.match(TSqlParser.LIST); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 1791; + this.match(TSqlParser.SERVER); + this.state = 1792; + this.match(TSqlParser.ROLE); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 1793; + this.match(TSqlParser.SERVICE); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 1794; + this.match(TSqlParser.SYMMETRIC); + this.state = 1795; + this.match(TSqlParser.KEY); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 1796; + this.match(TSqlParser.XML); + this.state = 1797; + this.match(TSqlParser.SCHEMA); + this.state = 1798; + this.match(TSqlParser.COLLECTION); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Class_type_for_sql_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_class_type_for_sql_database; + return this; +} + +Class_type_for_sql_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Class_type_for_sql_databaseContext.prototype.constructor = Class_type_for_sql_databaseContext; + +Class_type_for_sql_databaseContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Class_type_for_sql_databaseContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Class_type_for_sql_databaseContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Class_type_for_sql_databaseContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Class_type_for_sql_databaseContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Class_type_for_sql_databaseContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Class_type_for_sql_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Class_type_for_sql_databaseContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Class_type_for_sql_databaseContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Class_type_for_sql_databaseContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Class_type_for_sql_databaseContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Class_type_for_sql_databaseContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Class_type_for_sql_databaseContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Class_type_for_sql_databaseContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Class_type_for_sql_databaseContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Class_type_for_sql_databaseContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Class_type_for_sql_databaseContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Class_type_for_sql_databaseContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Class_type_for_sql_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClass_type_for_sql_database(this); + } +}; + +Class_type_for_sql_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClass_type_for_sql_database(this); + } +}; + +Class_type_for_sql_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClass_type_for_sql_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Class_type_for_sql_databaseContext = Class_type_for_sql_databaseContext; + +TSqlParser.prototype.class_type_for_sql_database = function() { + + var localctx = new Class_type_for_sql_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 148, TSqlParser.RULE_class_type_for_sql_database); + try { + this.state = 1822; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,97,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1801; + this.match(TSqlParser.OBJECT); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1802; + this.match(TSqlParser.ASSEMBLY); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1803; + this.match(TSqlParser.ASYMMETRIC); + this.state = 1804; + this.match(TSqlParser.KEY); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1805; + this.match(TSqlParser.CERTIFICATE); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1806; + this.match(TSqlParser.TYPE); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1807; + this.match(TSqlParser.DATABASE); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1808; + this.match(TSqlParser.FULLTEXT); + this.state = 1809; + this.match(TSqlParser.CATALOG); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1810; + this.match(TSqlParser.FULLTEXT); + this.state = 1811; + this.match(TSqlParser.STOPLIST); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 1812; + this.match(TSqlParser.ROLE); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 1813; + this.match(TSqlParser.SCHEMA); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 1814; + this.match(TSqlParser.SEARCH); + this.state = 1815; + this.match(TSqlParser.PROPERTY); + this.state = 1816; + this.match(TSqlParser.LIST); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1817; + this.match(TSqlParser.SYMMETRIC); + this.state = 1818; + this.match(TSqlParser.KEY); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 1819; + this.match(TSqlParser.XML); + this.state = 1820; + this.match(TSqlParser.SCHEMA); + this.state = 1821; + this.match(TSqlParser.COLLECTION); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Class_type_for_azure_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_class_type_for_azure_dw; + return this; +} + +Class_type_for_azure_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Class_type_for_azure_dwContext.prototype.constructor = Class_type_for_azure_dwContext; + +Class_type_for_azure_dwContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Class_type_for_azure_dwContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Class_type_for_azure_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClass_type_for_azure_dw(this); + } +}; + +Class_type_for_azure_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClass_type_for_azure_dw(this); + } +}; + +Class_type_for_azure_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClass_type_for_azure_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Class_type_for_azure_dwContext = Class_type_for_azure_dwContext; + +TSqlParser.prototype.class_type_for_azure_dw = function() { + + var localctx = new Class_type_for_azure_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 150, TSqlParser.RULE_class_type_for_azure_dw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1824; + _la = this._input.LA(1); + if(!(_la===TSqlParser.SCHEMA || _la===TSqlParser.OBJECT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Class_type_for_parallel_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_class_type_for_parallel_dw; + return this; +} + +Class_type_for_parallel_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Class_type_for_parallel_dwContext.prototype.constructor = Class_type_for_parallel_dwContext; + +Class_type_for_parallel_dwContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Class_type_for_parallel_dwContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Class_type_for_parallel_dwContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Class_type_for_parallel_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClass_type_for_parallel_dw(this); + } +}; + +Class_type_for_parallel_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClass_type_for_parallel_dw(this); + } +}; + +Class_type_for_parallel_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClass_type_for_parallel_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Class_type_for_parallel_dwContext = Class_type_for_parallel_dwContext; + +TSqlParser.prototype.class_type_for_parallel_dw = function() { + + var localctx = new Class_type_for_parallel_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 152, TSqlParser.RULE_class_type_for_parallel_dw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1826; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DATABASE || _la===TSqlParser.SCHEMA || _la===TSqlParser.OBJECT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_availability_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_availability_group; + this.group_name = null; // IdContext + return this; +} + +Drop_availability_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_availability_groupContext.prototype.constructor = Drop_availability_groupContext; + +Drop_availability_groupContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_availability_groupContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Drop_availability_groupContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Drop_availability_groupContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_availability_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_availability_group(this); + } +}; + +Drop_availability_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_availability_group(this); + } +}; + +Drop_availability_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_availability_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_availability_groupContext = Drop_availability_groupContext; + +TSqlParser.prototype.drop_availability_group = function() { + + var localctx = new Drop_availability_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 154, TSqlParser.RULE_drop_availability_group); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1828; + this.match(TSqlParser.DROP); + this.state = 1829; + this.match(TSqlParser.AVAILABILITY); + this.state = 1830; + this.match(TSqlParser.GROUP); + this.state = 1831; + localctx.group_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_availability_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_availability_group; + return this; +} + +Alter_availability_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_availability_groupContext.prototype.constructor = Alter_availability_groupContext; + +Alter_availability_groupContext.prototype.alter_availability_group_start = function() { + return this.getTypedRuleContext(Alter_availability_group_startContext,0); +}; + +Alter_availability_groupContext.prototype.alter_availability_group_options = function() { + return this.getTypedRuleContext(Alter_availability_group_optionsContext,0); +}; + +Alter_availability_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_availability_group(this); + } +}; + +Alter_availability_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_availability_group(this); + } +}; + +Alter_availability_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_availability_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_availability_groupContext = Alter_availability_groupContext; + +TSqlParser.prototype.alter_availability_group = function() { + + var localctx = new Alter_availability_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 156, TSqlParser.RULE_alter_availability_group); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1833; + this.alter_availability_group_start(); + this.state = 1834; + this.alter_availability_group_options(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_availability_group_startContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_availability_group_start; + this.group_name = null; // IdContext + return this; +} + +Alter_availability_group_startContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_availability_group_startContext.prototype.constructor = Alter_availability_group_startContext; + +Alter_availability_group_startContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_availability_group_startContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Alter_availability_group_startContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Alter_availability_group_startContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_availability_group_startContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_availability_group_start(this); + } +}; + +Alter_availability_group_startContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_availability_group_start(this); + } +}; + +Alter_availability_group_startContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_availability_group_start(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_availability_group_startContext = Alter_availability_group_startContext; + +TSqlParser.prototype.alter_availability_group_start = function() { + + var localctx = new Alter_availability_group_startContext(this, this._ctx, this.state); + this.enterRule(localctx, 158, TSqlParser.RULE_alter_availability_group_start); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1836; + this.match(TSqlParser.ALTER); + this.state = 1837; + this.match(TSqlParser.AVAILABILITY); + this.state = 1838; + this.match(TSqlParser.GROUP); + this.state = 1839; + localctx.group_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_availability_group_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_availability_group_options; + this.milliseconds = null; // Token + this.database_name = null; // IdContext + this.server_instance = null; // Token + this.session_timeout = null; // Token + this.ag_name = null; // Token + this.ag_name_modified = null; // Token + this.listener_name = null; // Token + return this; +} + +Alter_availability_group_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_availability_group_optionsContext.prototype.constructor = Alter_availability_group_optionsContext; + +Alter_availability_group_optionsContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_availability_group_optionsContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.AUTOMATED_BACKUP_PREFERENCE = function() { + return this.getToken(TSqlParser.AUTOMATED_BACKUP_PREFERENCE, 0); +}; + +Alter_availability_group_optionsContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.FAILURE_CONDITION_LEVEL = function() { + return this.getToken(TSqlParser.FAILURE_CONDITION_LEVEL, 0); +}; + +Alter_availability_group_optionsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Alter_availability_group_optionsContext.prototype.HEALTH_CHECK_TIMEOUT = function() { + return this.getToken(TSqlParser.HEALTH_CHECK_TIMEOUT, 0); +}; + +Alter_availability_group_optionsContext.prototype.DB_FAILOVER = function() { + return this.getToken(TSqlParser.DB_FAILOVER, 0); +}; + +Alter_availability_group_optionsContext.prototype.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = function() { + return this.getToken(TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, 0); +}; + +Alter_availability_group_optionsContext.prototype.PRIMARY = function() { + return this.getToken(TSqlParser.PRIMARY, 0); +}; + +Alter_availability_group_optionsContext.prototype.SECONDARY_ONLY = function() { + return this.getToken(TSqlParser.SECONDARY_ONLY, 0); +}; + +Alter_availability_group_optionsContext.prototype.SECONDARY = function() { + return this.getToken(TSqlParser.SECONDARY, 0); +}; + +Alter_availability_group_optionsContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Alter_availability_group_optionsContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_availability_group_optionsContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_availability_group_optionsContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_availability_group_optionsContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Alter_availability_group_optionsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_availability_group_optionsContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Alter_availability_group_optionsContext.prototype.REPLICA = function() { + return this.getToken(TSqlParser.REPLICA, 0); +}; + +Alter_availability_group_optionsContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WITH); + } else { + return this.getToken(TSqlParser.WITH, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.ENDPOINT_URL = function() { + return this.getToken(TSqlParser.ENDPOINT_URL, 0); +}; + +Alter_availability_group_optionsContext.prototype.AVAILABILITY_MODE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AVAILABILITY_MODE); + } else { + return this.getToken(TSqlParser.AVAILABILITY_MODE, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.FAILOVER_MODE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FAILOVER_MODE); + } else { + return this.getToken(TSqlParser.FAILOVER_MODE, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.SEEDING_MODE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEEDING_MODE); + } else { + return this.getToken(TSqlParser.SEEDING_MODE, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.BACKUP_PRIORITY = function() { + return this.getToken(TSqlParser.BACKUP_PRIORITY, 0); +}; + +Alter_availability_group_optionsContext.prototype.PRIMARY_ROLE = function() { + return this.getToken(TSqlParser.PRIMARY_ROLE, 0); +}; + +Alter_availability_group_optionsContext.prototype.ALLOW_CONNECTIONS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALLOW_CONNECTIONS); + } else { + return this.getToken(TSqlParser.ALLOW_CONNECTIONS, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.SECONDARY_ROLE = function() { + return this.getToken(TSqlParser.SECONDARY_ROLE, 0); +}; + +Alter_availability_group_optionsContext.prototype.SYNCHRONOUS_COMMIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SYNCHRONOUS_COMMIT); + } else { + return this.getToken(TSqlParser.SYNCHRONOUS_COMMIT, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.ASYNCHRONOUS_COMMIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASYNCHRONOUS_COMMIT); + } else { + return this.getToken(TSqlParser.ASYNCHRONOUS_COMMIT, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.AUTOMATIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AUTOMATIC); + } else { + return this.getToken(TSqlParser.AUTOMATIC, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.MANUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MANUAL); + } else { + return this.getToken(TSqlParser.MANUAL, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.READ_WRITE = function() { + return this.getToken(TSqlParser.READ_WRITE, 0); +}; + +Alter_availability_group_optionsContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Alter_availability_group_optionsContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Alter_availability_group_optionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.READ_ONLY_ROUTING_LIST = function() { + return this.getToken(TSqlParser.READ_ONLY_ROUTING_LIST, 0); +}; + +Alter_availability_group_optionsContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +Alter_availability_group_optionsContext.prototype.SESSION_TIMEOUT = function() { + return this.getToken(TSqlParser.SESSION_TIMEOUT, 0); +}; + +Alter_availability_group_optionsContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Alter_availability_group_optionsContext.prototype.JOIN = function() { + return this.getToken(TSqlParser.JOIN, 0); +}; + +Alter_availability_group_optionsContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Alter_availability_group_optionsContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Alter_availability_group_optionsContext.prototype.LISTENER_URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LISTENER_URL); + } else { + return this.getToken(TSqlParser.LISTENER_URL, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.GRANT = function() { + return this.getToken(TSqlParser.GRANT, 0); +}; + +Alter_availability_group_optionsContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Alter_availability_group_optionsContext.prototype.ANY = function() { + return this.getToken(TSqlParser.ANY, 0); +}; + +Alter_availability_group_optionsContext.prototype.DENY = function() { + return this.getToken(TSqlParser.DENY, 0); +}; + +Alter_availability_group_optionsContext.prototype.FAILOVER = function() { + return this.getToken(TSqlParser.FAILOVER, 0); +}; + +Alter_availability_group_optionsContext.prototype.FORCE_FAILOVER_ALLOW_DATA_LOSS = function() { + return this.getToken(TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS, 0); +}; + +Alter_availability_group_optionsContext.prototype.LISTENER = function() { + return this.getToken(TSqlParser.LISTENER, 0); +}; + +Alter_availability_group_optionsContext.prototype.DHCP = function() { + return this.getToken(TSqlParser.DHCP, 0); +}; + +Alter_availability_group_optionsContext.prototype.IP = function() { + return this.getToken(TSqlParser.IP, 0); +}; + +Alter_availability_group_optionsContext.prototype.IPV4_ADDR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.IPV4_ADDR); + } else { + return this.getToken(TSqlParser.IPV4_ADDR, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.PORT = function() { + return this.getToken(TSqlParser.PORT, 0); +}; + +Alter_availability_group_optionsContext.prototype.IPV6_ADDR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.IPV6_ADDR); + } else { + return this.getToken(TSqlParser.IPV6_ADDR, i); + } +}; + + +Alter_availability_group_optionsContext.prototype.RESTART = function() { + return this.getToken(TSqlParser.RESTART, 0); +}; + +Alter_availability_group_optionsContext.prototype.OFFLINE = function() { + return this.getToken(TSqlParser.OFFLINE, 0); +}; + +Alter_availability_group_optionsContext.prototype.DTC_SUPPORT = function() { + return this.getToken(TSqlParser.DTC_SUPPORT, 0); +}; + +Alter_availability_group_optionsContext.prototype.PER_DB = function() { + return this.getToken(TSqlParser.PER_DB, 0); +}; + +Alter_availability_group_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_availability_group_options(this); + } +}; + +Alter_availability_group_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_availability_group_options(this); + } +}; + +Alter_availability_group_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_availability_group_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_availability_group_optionsContext = Alter_availability_group_optionsContext; + +TSqlParser.prototype.alter_availability_group_options = function() { + + var localctx = new Alter_availability_group_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 160, TSqlParser.RULE_alter_availability_group_options); + var _la = 0; // Token type + try { + this.state = 2191; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,141,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1841; + this.match(TSqlParser.SET); + this.state = 1842; + this.match(TSqlParser.LR_BRACKET); + + this.state = 1858; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTOMATED_BACKUP_PREFERENCE: + this.state = 1843; + this.match(TSqlParser.AUTOMATED_BACKUP_PREFERENCE); + this.state = 1844; + this.match(TSqlParser.EQUAL); + this.state = 1845; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.PRIMARY || _la===TSqlParser.SECONDARY || _la===TSqlParser.SECONDARY_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.FAILURE_CONDITION_LEVEL: + this.state = 1846; + this.match(TSqlParser.FAILURE_CONDITION_LEVEL); + this.state = 1847; + this.match(TSqlParser.EQUAL); + this.state = 1848; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.HEALTH_CHECK_TIMEOUT: + this.state = 1849; + this.match(TSqlParser.HEALTH_CHECK_TIMEOUT); + this.state = 1850; + this.match(TSqlParser.EQUAL); + this.state = 1851; + localctx.milliseconds = this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.DB_FAILOVER: + this.state = 1852; + this.match(TSqlParser.DB_FAILOVER); + this.state = 1853; + this.match(TSqlParser.EQUAL); + this.state = 1854; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + this.state = 1855; + this.match(TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT); + this.state = 1856; + this.match(TSqlParser.EQUAL); + this.state = 1857; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1860; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1861; + this.match(TSqlParser.ADD); + this.state = 1862; + this.match(TSqlParser.DATABASE); + this.state = 1863; + localctx.database_name = this.id(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1864; + this.match(TSqlParser.REMOVE); + this.state = 1865; + this.match(TSqlParser.DATABASE); + this.state = 1866; + localctx.database_name = this.id(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1867; + this.match(TSqlParser.ADD); + this.state = 1868; + this.match(TSqlParser.REPLICA); + this.state = 1869; + this.match(TSqlParser.ON); + this.state = 1870; + localctx.server_instance = this.match(TSqlParser.STRING); + + this.state = 1871; + this.match(TSqlParser.WITH); + this.state = 1872; + this.match(TSqlParser.LR_BRACKET); + + this.state = 1876; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ENDPOINT_URL) { + this.state = 1873; + this.match(TSqlParser.ENDPOINT_URL); + this.state = 1874; + this.match(TSqlParser.EQUAL); + this.state = 1875; + this.match(TSqlParser.STRING); + } + + this.state = 1884; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,101,this._ctx); + if(la_===1) { + this.state = 1879; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1878; + this.match(TSqlParser.COMMA); + } + + this.state = 1881; + this.match(TSqlParser.AVAILABILITY_MODE); + this.state = 1882; + this.match(TSqlParser.EQUAL); + this.state = 1883; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASYNCHRONOUS_COMMIT || _la===TSqlParser.SYNCHRONOUS_COMMIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 1892; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,103,this._ctx); + if(la_===1) { + this.state = 1887; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1886; + this.match(TSqlParser.COMMA); + } + + this.state = 1889; + this.match(TSqlParser.FAILOVER_MODE); + this.state = 1890; + this.match(TSqlParser.EQUAL); + this.state = 1891; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 1900; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,105,this._ctx); + if(la_===1) { + this.state = 1895; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1894; + this.match(TSqlParser.COMMA); + } + + this.state = 1897; + this.match(TSqlParser.SEEDING_MODE); + this.state = 1898; + this.match(TSqlParser.EQUAL); + this.state = 1899; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 1908; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,107,this._ctx); + if(la_===1) { + this.state = 1903; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1902; + this.match(TSqlParser.COMMA); + } + + this.state = 1905; + this.match(TSqlParser.BACKUP_PRIORITY); + this.state = 1906; + this.match(TSqlParser.EQUAL); + this.state = 1907; + this.match(TSqlParser.DECIMAL); + + } + this.state = 1919; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,109,this._ctx); + if(la_===1) { + this.state = 1911; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1910; + this.match(TSqlParser.COMMA); + } + + this.state = 1913; + this.match(TSqlParser.PRIMARY_ROLE); + this.state = 1914; + this.match(TSqlParser.LR_BRACKET); + this.state = 1915; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1916; + this.match(TSqlParser.EQUAL); + this.state = 1917; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.READ_WRITE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1918; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 1930; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SECONDARY_ROLE || _la===TSqlParser.COMMA) { + this.state = 1922; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1921; + this.match(TSqlParser.COMMA); + } + + this.state = 1924; + this.match(TSqlParser.SECONDARY_ROLE); + this.state = 1925; + this.match(TSqlParser.LR_BRACKET); + this.state = 1926; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1927; + this.match(TSqlParser.EQUAL); + + this.state = 1928; + this.match(TSqlParser.READ_ONLY); + this.state = 1929; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 1932; + this.match(TSqlParser.RR_BRACKET); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1933; + this.match(TSqlParser.SECONDARY_ROLE); + this.state = 1934; + this.match(TSqlParser.LR_BRACKET); + this.state = 1943; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_CONNECTIONS: + this.state = 1935; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1936; + this.match(TSqlParser.EQUAL); + this.state = 1937; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.NO || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.READ_ONLY_ROUTING_LIST: + this.state = 1938; + this.match(TSqlParser.READ_ONLY_ROUTING_LIST); + this.state = 1939; + this.match(TSqlParser.EQUAL); + + this.state = 1940; + this.match(TSqlParser.LR_BRACKET); + + this.state = 1941; + this.match(TSqlParser.STRING); + this.state = 1942; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1945; + this.match(TSqlParser.PRIMARY_ROLE); + this.state = 1946; + this.match(TSqlParser.LR_BRACKET); + this.state = 1969; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_CONNECTIONS: + this.state = 1947; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1948; + this.match(TSqlParser.EQUAL); + this.state = 1949; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.NO || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.READ_ONLY_ROUTING_LIST: + this.state = 1950; + this.match(TSqlParser.READ_ONLY_ROUTING_LIST); + this.state = 1951; + this.match(TSqlParser.EQUAL); + + this.state = 1952; + this.match(TSqlParser.LR_BRACKET); + this.state = 1963; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + case TSqlParser.RR_BRACKET: + case TSqlParser.COMMA: + this.state = 1959; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.STRING || _la===TSqlParser.COMMA) { + this.state = 1954; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 1953; + this.match(TSqlParser.COMMA); + } + + this.state = 1956; + this.match(TSqlParser.STRING); + this.state = 1961; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case TSqlParser.NONE: + this.state = 1962; + this.match(TSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1965; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.SESSION_TIMEOUT: + this.state = 1966; + this.match(TSqlParser.SESSION_TIMEOUT); + this.state = 1967; + this.match(TSqlParser.EQUAL); + this.state = 1968; + localctx.session_timeout = this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1971; + this.match(TSqlParser.MODIFY); + this.state = 1972; + this.match(TSqlParser.REPLICA); + this.state = 1973; + this.match(TSqlParser.ON); + this.state = 1974; + localctx.server_instance = this.match(TSqlParser.STRING); + this.state = 2032; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 1975; + this.match(TSqlParser.WITH); + this.state = 1976; + this.match(TSqlParser.LR_BRACKET); + this.state = 1992; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENDPOINT_URL: + this.state = 1977; + this.match(TSqlParser.ENDPOINT_URL); + this.state = 1978; + this.match(TSqlParser.EQUAL); + this.state = 1979; + this.match(TSqlParser.STRING); + break; + case TSqlParser.AVAILABILITY_MODE: + this.state = 1980; + this.match(TSqlParser.AVAILABILITY_MODE); + this.state = 1981; + this.match(TSqlParser.EQUAL); + this.state = 1982; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASYNCHRONOUS_COMMIT || _la===TSqlParser.SYNCHRONOUS_COMMIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.FAILOVER_MODE: + this.state = 1983; + this.match(TSqlParser.FAILOVER_MODE); + this.state = 1984; + this.match(TSqlParser.EQUAL); + this.state = 1985; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SEEDING_MODE: + this.state = 1986; + this.match(TSqlParser.SEEDING_MODE); + this.state = 1987; + this.match(TSqlParser.EQUAL); + this.state = 1988; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.BACKUP_PRIORITY: + this.state = 1989; + this.match(TSqlParser.BACKUP_PRIORITY); + this.state = 1990; + this.match(TSqlParser.EQUAL); + this.state = 1991; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.SECONDARY_ROLE: + this.state = 1994; + this.match(TSqlParser.SECONDARY_ROLE); + this.state = 1995; + this.match(TSqlParser.LR_BRACKET); + this.state = 2004; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_CONNECTIONS: + this.state = 1996; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 1997; + this.match(TSqlParser.EQUAL); + this.state = 1998; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.NO || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.READ_ONLY_ROUTING_LIST: + this.state = 1999; + this.match(TSqlParser.READ_ONLY_ROUTING_LIST); + this.state = 2000; + this.match(TSqlParser.EQUAL); + + this.state = 2001; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2002; + this.match(TSqlParser.STRING); + this.state = 2003; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.PRIMARY_ROLE: + this.state = 2006; + this.match(TSqlParser.PRIMARY_ROLE); + this.state = 2007; + this.match(TSqlParser.LR_BRACKET); + this.state = 2030; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_CONNECTIONS: + this.state = 2008; + this.match(TSqlParser.ALLOW_CONNECTIONS); + this.state = 2009; + this.match(TSqlParser.EQUAL); + this.state = 2010; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.NO || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.READ_ONLY_ROUTING_LIST: + this.state = 2011; + this.match(TSqlParser.READ_ONLY_ROUTING_LIST); + this.state = 2012; + this.match(TSqlParser.EQUAL); + + this.state = 2013; + this.match(TSqlParser.LR_BRACKET); + this.state = 2024; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + case TSqlParser.RR_BRACKET: + case TSqlParser.COMMA: + this.state = 2020; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.STRING || _la===TSqlParser.COMMA) { + this.state = 2015; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2014; + this.match(TSqlParser.COMMA); + } + + this.state = 2017; + this.match(TSqlParser.STRING); + this.state = 2022; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case TSqlParser.NONE: + this.state = 2023; + this.match(TSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2026; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.SESSION_TIMEOUT: + this.state = 2027; + this.match(TSqlParser.SESSION_TIMEOUT); + this.state = 2028; + this.match(TSqlParser.EQUAL); + this.state = 2029; + localctx.session_timeout = this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2034; + this.match(TSqlParser.RR_BRACKET); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 2035; + this.match(TSqlParser.REMOVE); + this.state = 2036; + this.match(TSqlParser.REPLICA); + this.state = 2037; + this.match(TSqlParser.ON); + this.state = 2038; + this.match(TSqlParser.STRING); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 2039; + this.match(TSqlParser.JOIN); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 2040; + this.match(TSqlParser.JOIN); + this.state = 2041; + this.match(TSqlParser.AVAILABILITY); + this.state = 2042; + this.match(TSqlParser.GROUP); + this.state = 2043; + this.match(TSqlParser.ON); + this.state = 2066; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2045; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2044; + this.match(TSqlParser.COMMA); + } + + this.state = 2047; + localctx.ag_name = this.match(TSqlParser.STRING); + this.state = 2048; + this.match(TSqlParser.WITH); + this.state = 2049; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2050; + this.match(TSqlParser.LISTENER_URL); + this.state = 2051; + this.match(TSqlParser.EQUAL); + this.state = 2052; + this.match(TSqlParser.STRING); + this.state = 2053; + this.match(TSqlParser.COMMA); + this.state = 2054; + this.match(TSqlParser.AVAILABILITY_MODE); + this.state = 2055; + this.match(TSqlParser.EQUAL); + this.state = 2056; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASYNCHRONOUS_COMMIT || _la===TSqlParser.SYNCHRONOUS_COMMIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2057; + this.match(TSqlParser.COMMA); + this.state = 2058; + this.match(TSqlParser.FAILOVER_MODE); + this.state = 2059; + this.match(TSqlParser.EQUAL); + this.state = 2060; + this.match(TSqlParser.MANUAL); + this.state = 2061; + this.match(TSqlParser.COMMA); + this.state = 2062; + this.match(TSqlParser.SEEDING_MODE); + this.state = 2063; + this.match(TSqlParser.EQUAL); + this.state = 2064; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2065; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2068; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,125, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 2070; + this.match(TSqlParser.MODIFY); + this.state = 2071; + this.match(TSqlParser.AVAILABILITY); + this.state = 2072; + this.match(TSqlParser.GROUP); + this.state = 2073; + this.match(TSqlParser.ON); + this.state = 2108; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2075; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2074; + this.match(TSqlParser.COMMA); + } + + this.state = 2077; + localctx.ag_name_modified = this.match(TSqlParser.STRING); + this.state = 2078; + this.match(TSqlParser.WITH); + this.state = 2079; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2080; + this.match(TSqlParser.LISTENER_URL); + this.state = 2081; + this.match(TSqlParser.EQUAL); + this.state = 2082; + this.match(TSqlParser.STRING); + this.state = 2089; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,128,this._ctx); + if(la_===1) { + this.state = 2084; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2083; + this.match(TSqlParser.COMMA); + } + + this.state = 2086; + this.match(TSqlParser.AVAILABILITY_MODE); + this.state = 2087; + this.match(TSqlParser.EQUAL); + this.state = 2088; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASYNCHRONOUS_COMMIT || _la===TSqlParser.SYNCHRONOUS_COMMIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 2097; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,130,this._ctx); + if(la_===1) { + this.state = 2092; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2091; + this.match(TSqlParser.COMMA); + } + + this.state = 2094; + this.match(TSqlParser.FAILOVER_MODE); + this.state = 2095; + this.match(TSqlParser.EQUAL); + this.state = 2096; + this.match(TSqlParser.MANUAL); + + } + this.state = 2105; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEEDING_MODE || _la===TSqlParser.COMMA) { + this.state = 2100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2099; + this.match(TSqlParser.COMMA); + } + + this.state = 2102; + this.match(TSqlParser.SEEDING_MODE); + this.state = 2103; + this.match(TSqlParser.EQUAL); + this.state = 2104; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTOMATIC || _la===TSqlParser.MANUAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 2107; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2110; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,133, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 2112; + this.match(TSqlParser.GRANT); + this.state = 2113; + this.match(TSqlParser.CREATE); + this.state = 2114; + this.match(TSqlParser.ANY); + this.state = 2115; + this.match(TSqlParser.DATABASE); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 2116; + this.match(TSqlParser.DENY); + this.state = 2117; + this.match(TSqlParser.CREATE); + this.state = 2118; + this.match(TSqlParser.ANY); + this.state = 2119; + this.match(TSqlParser.DATABASE); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 2120; + this.match(TSqlParser.FAILOVER); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 2121; + this.match(TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 2122; + this.match(TSqlParser.ADD); + this.state = 2123; + this.match(TSqlParser.LISTENER); + this.state = 2124; + localctx.listener_name = this.match(TSqlParser.STRING); + this.state = 2125; + this.match(TSqlParser.LR_BRACKET); + this.state = 2159; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,138,this._ctx); + switch(la_) { + case 1: + this.state = 2126; + this.match(TSqlParser.WITH); + this.state = 2127; + this.match(TSqlParser.DHCP); + + this.state = 2128; + this.match(TSqlParser.ON); + this.state = 2129; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2130; + this.match(TSqlParser.IPV4_ADDR); + this.state = 2131; + this.match(TSqlParser.IPV4_ADDR); + this.state = 2133; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 2134; + this.match(TSqlParser.WITH); + this.state = 2135; + this.match(TSqlParser.IP); + this.state = 2136; + this.match(TSqlParser.LR_BRACKET); + + this.state = 2148; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2138; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2137; + this.match(TSqlParser.COMMA); + } + + this.state = 2140; + this.match(TSqlParser.LR_BRACKET); + this.state = 2145; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.IPV4_ADDR: + this.state = 2141; + this.match(TSqlParser.IPV4_ADDR); + this.state = 2142; + this.match(TSqlParser.COMMA); + this.state = 2143; + this.match(TSqlParser.IPV4_ADDR); + break; + case TSqlParser.IPV6_ADDR: + this.state = 2144; + this.match(TSqlParser.IPV6_ADDR); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2147; + this.match(TSqlParser.RR_BRACKET); + this.state = 2150; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.LR_BRACKET || _la===TSqlParser.COMMA); + this.state = 2152; + this.match(TSqlParser.RR_BRACKET); + this.state = 2157; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2153; + this.match(TSqlParser.COMMA); + this.state = 2154; + this.match(TSqlParser.PORT); + this.state = 2155; + this.match(TSqlParser.EQUAL); + this.state = 2156; + this.match(TSqlParser.DECIMAL); + } + + break; + + } + this.state = 2161; + this.match(TSqlParser.RR_BRACKET); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 2162; + this.match(TSqlParser.MODIFY); + this.state = 2163; + this.match(TSqlParser.LISTENER); + this.state = 2176; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ADD: + this.state = 2164; + this.match(TSqlParser.ADD); + this.state = 2165; + this.match(TSqlParser.IP); + this.state = 2166; + this.match(TSqlParser.LR_BRACKET); + this.state = 2170; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.IPV4_ADDR: + this.state = 2167; + this.match(TSqlParser.IPV4_ADDR); + this.state = 2168; + this.match(TSqlParser.IPV4_ADDR); + break; + case TSqlParser.IPV6_ADDR: + this.state = 2169; + this.match(TSqlParser.IPV6_ADDR); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2172; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.PORT: + this.state = 2173; + this.match(TSqlParser.PORT); + this.state = 2174; + this.match(TSqlParser.EQUAL); + this.state = 2175; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 2178; + this.match(TSqlParser.RESTART); + this.state = 2179; + this.match(TSqlParser.LISTENER); + this.state = 2180; + this.match(TSqlParser.STRING); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 2181; + this.match(TSqlParser.REMOVE); + this.state = 2182; + this.match(TSqlParser.LISTENER); + this.state = 2183; + this.match(TSqlParser.STRING); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 2184; + this.match(TSqlParser.OFFLINE); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 2185; + this.match(TSqlParser.WITH); + this.state = 2186; + this.match(TSqlParser.LR_BRACKET); + this.state = 2187; + this.match(TSqlParser.DTC_SUPPORT); + this.state = 2188; + this.match(TSqlParser.EQUAL); + this.state = 2189; + this.match(TSqlParser.PER_DB); + this.state = 2190; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_broker_priorityContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_broker_priority; + this.ConversationPriorityName = null; // IdContext + this.RemoteServiceName = null; // Token + this.PriorityValue = null; // Token + return this; +} + +Create_or_alter_broker_priorityContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_broker_priorityContext.prototype.constructor = Create_or_alter_broker_priorityContext; + +Create_or_alter_broker_priorityContext.prototype.BROKER = function() { + return this.getToken(TSqlParser.BROKER, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.PRIORITY = function() { + return this.getToken(TSqlParser.PRIORITY, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_or_alter_broker_priorityContext.prototype.CONTRACT_NAME = function() { + return this.getToken(TSqlParser.CONTRACT_NAME, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_or_alter_broker_priorityContext.prototype.LOCAL_SERVICE_NAME = function() { + return this.getToken(TSqlParser.LOCAL_SERVICE_NAME, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.REMOTE_SERVICE_NAME = function() { + return this.getToken(TSqlParser.REMOTE_SERVICE_NAME, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.PRIORITY_LEVEL = function() { + return this.getToken(TSqlParser.PRIORITY_LEVEL, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.ANY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ANY); + } else { + return this.getToken(TSqlParser.ANY, i); + } +}; + + +Create_or_alter_broker_priorityContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_broker_priorityContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.DOUBLE_FORWARD_SLASH = function() { + return this.getToken(TSqlParser.DOUBLE_FORWARD_SLASH, 0); +}; + +Create_or_alter_broker_priorityContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_broker_priority(this); + } +}; + +Create_or_alter_broker_priorityContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_broker_priority(this); + } +}; + +Create_or_alter_broker_priorityContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_broker_priority(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_broker_priorityContext = Create_or_alter_broker_priorityContext; + +TSqlParser.prototype.create_or_alter_broker_priority = function() { + + var localctx = new Create_or_alter_broker_priorityContext(this, this._ctx, this.state); + this.enterRule(localctx, 162, TSqlParser.RULE_create_or_alter_broker_priority); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2193; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALTER || _la===TSqlParser.CREATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2194; + this.match(TSqlParser.BROKER); + this.state = 2195; + this.match(TSqlParser.PRIORITY); + this.state = 2196; + localctx.ConversationPriorityName = this.id(); + this.state = 2197; + this.match(TSqlParser.FOR); + this.state = 2198; + this.match(TSqlParser.CONVERSATION); + this.state = 2199; + this.match(TSqlParser.SET); + this.state = 2200; + this.match(TSqlParser.LR_BRACKET); + this.state = 2210; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTRACT_NAME) { + this.state = 2201; + this.match(TSqlParser.CONTRACT_NAME); + this.state = 2202; + this.match(TSqlParser.EQUAL); + this.state = 2205; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 2203; + this.id(); + break; + case TSqlParser.ANY: + this.state = 2204; + this.match(TSqlParser.ANY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2208; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2207; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 2224; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LOCAL_SERVICE_NAME) { + this.state = 2212; + this.match(TSqlParser.LOCAL_SERVICE_NAME); + this.state = 2213; + this.match(TSqlParser.EQUAL); + this.state = 2219; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DOUBLE_FORWARD_SLASH: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 2215; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DOUBLE_FORWARD_SLASH) { + this.state = 2214; + this.match(TSqlParser.DOUBLE_FORWARD_SLASH); + } + + this.state = 2217; + this.id(); + break; + case TSqlParser.ANY: + this.state = 2218; + this.match(TSqlParser.ANY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2222; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2221; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 2235; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.REMOTE_SERVICE_NAME) { + this.state = 2226; + this.match(TSqlParser.REMOTE_SERVICE_NAME); + this.state = 2227; + this.match(TSqlParser.EQUAL); + this.state = 2230; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 2228; + localctx.RemoteServiceName = this.match(TSqlParser.STRING); + break; + case TSqlParser.ANY: + this.state = 2229; + this.match(TSqlParser.ANY); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2233; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2232; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 2243; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PRIORITY_LEVEL) { + this.state = 2237; + this.match(TSqlParser.PRIORITY_LEVEL); + this.state = 2238; + this.match(TSqlParser.EQUAL); + this.state = 2241; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 2239; + localctx.PriorityValue = this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.DEFAULT: + this.state = 2240; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 2245; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_broker_priorityContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_broker_priority; + this.ConversationPriorityName = null; // IdContext + return this; +} + +Drop_broker_priorityContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_broker_priorityContext.prototype.constructor = Drop_broker_priorityContext; + +Drop_broker_priorityContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_broker_priorityContext.prototype.BROKER = function() { + return this.getToken(TSqlParser.BROKER, 0); +}; + +Drop_broker_priorityContext.prototype.PRIORITY = function() { + return this.getToken(TSqlParser.PRIORITY, 0); +}; + +Drop_broker_priorityContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_broker_priorityContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_broker_priority(this); + } +}; + +Drop_broker_priorityContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_broker_priority(this); + } +}; + +Drop_broker_priorityContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_broker_priority(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_broker_priorityContext = Drop_broker_priorityContext; + +TSqlParser.prototype.drop_broker_priority = function() { + + var localctx = new Drop_broker_priorityContext(this, this._ctx, this.state); + this.enterRule(localctx, 164, TSqlParser.RULE_drop_broker_priority); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2247; + this.match(TSqlParser.DROP); + this.state = 2248; + this.match(TSqlParser.BROKER); + this.state = 2249; + this.match(TSqlParser.PRIORITY); + this.state = 2250; + localctx.ConversationPriorityName = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_certificateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_certificate; + this.certificate_name = null; // IdContext + return this; +} + +Alter_certificateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_certificateContext.prototype.constructor = Alter_certificateContext; + +Alter_certificateContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_certificateContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Alter_certificateContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_certificateContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Alter_certificateContext.prototype.PRIVATE_KEY = function() { + return this.getToken(TSqlParser.PRIVATE_KEY, 0); +}; + +Alter_certificateContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_certificateContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Alter_certificateContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_certificateContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_certificateContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_certificateContext.prototype.ACTIVE = function() { + return this.getToken(TSqlParser.ACTIVE, 0); +}; + +Alter_certificateContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Alter_certificateContext.prototype.BEGIN_DIALOG = function() { + return this.getToken(TSqlParser.BEGIN_DIALOG, 0); +}; + +Alter_certificateContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_certificateContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_certificateContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_certificateContext.prototype.FILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE); + } else { + return this.getToken(TSqlParser.FILE, i); + } +}; + + +Alter_certificateContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_certificateContext.prototype.DECRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECRYPTION); + } else { + return this.getToken(TSqlParser.DECRYPTION, i); + } +}; + + +Alter_certificateContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Alter_certificateContext.prototype.PASSWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PASSWORD); + } else { + return this.getToken(TSqlParser.PASSWORD, i); + } +}; + + +Alter_certificateContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Alter_certificateContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_certificateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_certificate(this); + } +}; + +Alter_certificateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_certificate(this); + } +}; + +Alter_certificateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_certificate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_certificateContext = Alter_certificateContext; + +TSqlParser.prototype.alter_certificate = function() { + + var localctx = new Alter_certificateContext(this, this._ctx, this.state); + this.enterRule(localctx, 166, TSqlParser.RULE_alter_certificate); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2252; + this.match(TSqlParser.ALTER); + this.state = 2253; + this.match(TSqlParser.CERTIFICATE); + this.state = 2254; + localctx.certificate_name = this.id(); + this.state = 2294; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,159,this._ctx); + switch(la_) { + case 1: + this.state = 2255; + this.match(TSqlParser.REMOVE); + this.state = 2256; + this.match(TSqlParser.PRIVATE_KEY); + break; + + case 2: + this.state = 2257; + this.match(TSqlParser.WITH); + this.state = 2258; + this.match(TSqlParser.PRIVATE); + this.state = 2259; + this.match(TSqlParser.KEY); + this.state = 2260; + this.match(TSqlParser.LR_BRACKET); + this.state = 2283; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2283; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILE: + this.state = 2261; + this.match(TSqlParser.FILE); + this.state = 2262; + this.match(TSqlParser.EQUAL); + this.state = 2263; + this.match(TSqlParser.STRING); + this.state = 2265; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2264; + this.match(TSqlParser.COMMA); + } + + break; + case TSqlParser.DECRYPTION: + this.state = 2267; + this.match(TSqlParser.DECRYPTION); + this.state = 2268; + this.match(TSqlParser.BY); + this.state = 2269; + this.match(TSqlParser.PASSWORD); + this.state = 2270; + this.match(TSqlParser.EQUAL); + this.state = 2271; + this.match(TSqlParser.STRING); + this.state = 2273; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2272; + this.match(TSqlParser.COMMA); + } + + break; + case TSqlParser.ENCRYPTION: + this.state = 2275; + this.match(TSqlParser.ENCRYPTION); + this.state = 2276; + this.match(TSqlParser.BY); + this.state = 2277; + this.match(TSqlParser.PASSWORD); + this.state = 2278; + this.match(TSqlParser.EQUAL); + this.state = 2279; + this.match(TSqlParser.STRING); + this.state = 2281; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2280; + this.match(TSqlParser.COMMA); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2285; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.FILE || _la===TSqlParser.DECRYPTION || _la===TSqlParser.ENCRYPTION); + this.state = 2287; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.state = 2288; + this.match(TSqlParser.WITH); + this.state = 2289; + this.match(TSqlParser.ACTIVE); + this.state = 2290; + this.match(TSqlParser.FOR); + this.state = 2291; + this.match(TSqlParser.BEGIN_DIALOG); + this.state = 2292; + this.match(TSqlParser.EQUAL); + this.state = 2293; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_column_encryption_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_column_encryption_key; + this.column_encryption_key = null; // IdContext + this.column_master_key_name = null; // IdContext + this.algorithm_name = null; // Token + return this; +} + +Alter_column_encryption_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_column_encryption_keyContext.prototype.constructor = Alter_column_encryption_keyContext; + +Alter_column_encryption_keyContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_column_encryption_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Alter_column_encryption_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_column_encryption_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_column_encryption_keyContext.prototype.VALUE = function() { + return this.getToken(TSqlParser.VALUE, 0); +}; + +Alter_column_encryption_keyContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_column_encryption_keyContext.prototype.COLUMN_MASTER_KEY = function() { + return this.getToken(TSqlParser.COLUMN_MASTER_KEY, 0); +}; + +Alter_column_encryption_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_column_encryption_keyContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_column_encryption_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_column_encryption_keyContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_column_encryption_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_column_encryption_keyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_column_encryption_keyContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Alter_column_encryption_keyContext.prototype.ENCRYPTED_VALUE = function() { + return this.getToken(TSqlParser.ENCRYPTED_VALUE, 0); +}; + +Alter_column_encryption_keyContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Alter_column_encryption_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_column_encryption_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_column_encryption_key(this); + } +}; + +Alter_column_encryption_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_column_encryption_key(this); + } +}; + +Alter_column_encryption_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_column_encryption_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_column_encryption_keyContext = Alter_column_encryption_keyContext; + +TSqlParser.prototype.alter_column_encryption_key = function() { + + var localctx = new Alter_column_encryption_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 168, TSqlParser.RULE_alter_column_encryption_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2296; + this.match(TSqlParser.ALTER); + this.state = 2297; + this.match(TSqlParser.COLUMN); + this.state = 2298; + this.match(TSqlParser.ENCRYPTION); + this.state = 2299; + this.match(TSqlParser.KEY); + this.state = 2300; + localctx.column_encryption_key = this.id(); + this.state = 2301; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2302; + this.match(TSqlParser.VALUE); + this.state = 2303; + this.match(TSqlParser.LR_BRACKET); + this.state = 2304; + this.match(TSqlParser.COLUMN_MASTER_KEY); + this.state = 2305; + this.match(TSqlParser.EQUAL); + this.state = 2306; + localctx.column_master_key_name = this.id(); + this.state = 2315; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2307; + this.match(TSqlParser.COMMA); + this.state = 2308; + this.match(TSqlParser.ALGORITHM); + this.state = 2309; + this.match(TSqlParser.EQUAL); + this.state = 2310; + localctx.algorithm_name = this.match(TSqlParser.STRING); + this.state = 2311; + this.match(TSqlParser.COMMA); + this.state = 2312; + this.match(TSqlParser.ENCRYPTED_VALUE); + this.state = 2313; + this.match(TSqlParser.EQUAL); + this.state = 2314; + this.match(TSqlParser.BINARY); + } + + this.state = 2317; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_column_encryption_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_column_encryption_key; + this.column_encryption_key = null; // IdContext + this.column_master_key_name = null; // IdContext + this.algorithm_name = null; // Token + this.encrypted_value = null; // Token + return this; +} + +Create_column_encryption_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_column_encryption_keyContext.prototype.constructor = Create_column_encryption_keyContext; + +Create_column_encryption_keyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_column_encryption_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Create_column_encryption_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_column_encryption_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_column_encryption_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_column_encryption_keyContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Create_column_encryption_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_column_encryption_keyContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_column_encryption_keyContext.prototype.COLUMN_MASTER_KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLUMN_MASTER_KEY); + } else { + return this.getToken(TSqlParser.COLUMN_MASTER_KEY, i); + } +}; + + +Create_column_encryption_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_column_encryption_keyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_column_encryption_keyContext.prototype.ALGORITHM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALGORITHM); + } else { + return this.getToken(TSqlParser.ALGORITHM, i); + } +}; + + +Create_column_encryption_keyContext.prototype.ENCRYPTED_VALUE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTED_VALUE); + } else { + return this.getToken(TSqlParser.ENCRYPTED_VALUE, i); + } +}; + + +Create_column_encryption_keyContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_column_encryption_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_column_encryption_keyContext.prototype.BINARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BINARY); + } else { + return this.getToken(TSqlParser.BINARY, i); + } +}; + + +Create_column_encryption_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_column_encryption_key(this); + } +}; + +Create_column_encryption_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_column_encryption_key(this); + } +}; + +Create_column_encryption_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_column_encryption_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_column_encryption_keyContext = Create_column_encryption_keyContext; + +TSqlParser.prototype.create_column_encryption_key = function() { + + var localctx = new Create_column_encryption_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 170, TSqlParser.RULE_create_column_encryption_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2319; + this.match(TSqlParser.CREATE); + this.state = 2320; + this.match(TSqlParser.COLUMN); + this.state = 2321; + this.match(TSqlParser.ENCRYPTION); + this.state = 2322; + this.match(TSqlParser.KEY); + this.state = 2323; + localctx.column_encryption_key = this.id(); + this.state = 2324; + this.match(TSqlParser.WITH); + this.state = 2325; + this.match(TSqlParser.VALUES); + this.state = 2345; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2326; + this.match(TSqlParser.LR_BRACKET); + this.state = 2328; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2327; + this.match(TSqlParser.COMMA); + } + + this.state = 2330; + this.match(TSqlParser.COLUMN_MASTER_KEY); + this.state = 2331; + this.match(TSqlParser.EQUAL); + this.state = 2332; + localctx.column_master_key_name = this.id(); + this.state = 2333; + this.match(TSqlParser.COMMA); + this.state = 2334; + this.match(TSqlParser.ALGORITHM); + this.state = 2335; + this.match(TSqlParser.EQUAL); + this.state = 2336; + localctx.algorithm_name = this.match(TSqlParser.STRING); + this.state = 2337; + this.match(TSqlParser.COMMA); + this.state = 2338; + this.match(TSqlParser.ENCRYPTED_VALUE); + this.state = 2339; + this.match(TSqlParser.EQUAL); + this.state = 2340; + localctx.encrypted_value = this.match(TSqlParser.BINARY); + this.state = 2341; + this.match(TSqlParser.RR_BRACKET); + this.state = 2343; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2342; + this.match(TSqlParser.COMMA); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2347; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,163, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_certificateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_certificate; + this.certificate_name = null; // IdContext + return this; +} + +Drop_certificateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_certificateContext.prototype.constructor = Drop_certificateContext; + +Drop_certificateContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_certificateContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Drop_certificateContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_certificateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_certificate(this); + } +}; + +Drop_certificateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_certificate(this); + } +}; + +Drop_certificateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_certificate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_certificateContext = Drop_certificateContext; + +TSqlParser.prototype.drop_certificate = function() { + + var localctx = new Drop_certificateContext(this, this._ctx, this.state); + this.enterRule(localctx, 172, TSqlParser.RULE_drop_certificate); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2349; + this.match(TSqlParser.DROP); + this.state = 2350; + this.match(TSqlParser.CERTIFICATE); + this.state = 2351; + localctx.certificate_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_column_encryption_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_column_encryption_key; + this.key_name = null; // IdContext + return this; +} + +Drop_column_encryption_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_column_encryption_keyContext.prototype.constructor = Drop_column_encryption_keyContext; + +Drop_column_encryption_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_column_encryption_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Drop_column_encryption_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Drop_column_encryption_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Drop_column_encryption_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_column_encryption_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_column_encryption_key(this); + } +}; + +Drop_column_encryption_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_column_encryption_key(this); + } +}; + +Drop_column_encryption_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_column_encryption_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_column_encryption_keyContext = Drop_column_encryption_keyContext; + +TSqlParser.prototype.drop_column_encryption_key = function() { + + var localctx = new Drop_column_encryption_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 174, TSqlParser.RULE_drop_column_encryption_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2353; + this.match(TSqlParser.DROP); + this.state = 2354; + this.match(TSqlParser.COLUMN); + this.state = 2355; + this.match(TSqlParser.ENCRYPTION); + this.state = 2356; + this.match(TSqlParser.KEY); + this.state = 2357; + localctx.key_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_column_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_column_master_key; + this.key_name = null; // IdContext + return this; +} + +Drop_column_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_column_master_keyContext.prototype.constructor = Drop_column_master_keyContext; + +Drop_column_master_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_column_master_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Drop_column_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Drop_column_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Drop_column_master_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_column_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_column_master_key(this); + } +}; + +Drop_column_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_column_master_key(this); + } +}; + +Drop_column_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_column_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_column_master_keyContext = Drop_column_master_keyContext; + +TSqlParser.prototype.drop_column_master_key = function() { + + var localctx = new Drop_column_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 176, TSqlParser.RULE_drop_column_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2359; + this.match(TSqlParser.DROP); + this.state = 2360; + this.match(TSqlParser.COLUMN); + this.state = 2361; + this.match(TSqlParser.MASTER); + this.state = 2362; + this.match(TSqlParser.KEY); + this.state = 2363; + localctx.key_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_contractContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_contract; + this.dropped_contract_name = null; // IdContext + return this; +} + +Drop_contractContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_contractContext.prototype.constructor = Drop_contractContext; + +Drop_contractContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_contractContext.prototype.CONTRACT = function() { + return this.getToken(TSqlParser.CONTRACT, 0); +}; + +Drop_contractContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_contractContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_contract(this); + } +}; + +Drop_contractContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_contract(this); + } +}; + +Drop_contractContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_contract(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_contractContext = Drop_contractContext; + +TSqlParser.prototype.drop_contract = function() { + + var localctx = new Drop_contractContext(this, this._ctx, this.state); + this.enterRule(localctx, 178, TSqlParser.RULE_drop_contract); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2365; + this.match(TSqlParser.DROP); + this.state = 2366; + this.match(TSqlParser.CONTRACT); + this.state = 2367; + localctx.dropped_contract_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_credentialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_credential; + this.credential_name = null; // IdContext + return this; +} + +Drop_credentialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_credentialContext.prototype.constructor = Drop_credentialContext; + +Drop_credentialContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_credentialContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Drop_credentialContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_credentialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_credential(this); + } +}; + +Drop_credentialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_credential(this); + } +}; + +Drop_credentialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_credential(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_credentialContext = Drop_credentialContext; + +TSqlParser.prototype.drop_credential = function() { + + var localctx = new Drop_credentialContext(this, this._ctx, this.state); + this.enterRule(localctx, 180, TSqlParser.RULE_drop_credential); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2369; + this.match(TSqlParser.DROP); + this.state = 2370; + this.match(TSqlParser.CREDENTIAL); + this.state = 2371; + localctx.credential_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_cryptograhic_providerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_cryptograhic_provider; + this.provider_name = null; // IdContext + return this; +} + +Drop_cryptograhic_providerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_cryptograhic_providerContext.prototype.constructor = Drop_cryptograhic_providerContext; + +Drop_cryptograhic_providerContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_cryptograhic_providerContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Drop_cryptograhic_providerContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Drop_cryptograhic_providerContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_cryptograhic_providerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_cryptograhic_provider(this); + } +}; + +Drop_cryptograhic_providerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_cryptograhic_provider(this); + } +}; + +Drop_cryptograhic_providerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_cryptograhic_provider(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_cryptograhic_providerContext = Drop_cryptograhic_providerContext; + +TSqlParser.prototype.drop_cryptograhic_provider = function() { + + var localctx = new Drop_cryptograhic_providerContext(this, this._ctx, this.state); + this.enterRule(localctx, 182, TSqlParser.RULE_drop_cryptograhic_provider); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2373; + this.match(TSqlParser.DROP); + this.state = 2374; + this.match(TSqlParser.CRYPTOGRAPHIC); + this.state = 2375; + this.match(TSqlParser.PROVIDER); + this.state = 2376; + localctx.provider_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_database; + this.database_name_or_database_snapshot_name = null; // IdContext + return this; +} + +Drop_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_databaseContext.prototype.constructor = Drop_databaseContext; + +Drop_databaseContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_databaseContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_databaseContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_databaseContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_databaseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_database(this); + } +}; + +Drop_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_database(this); + } +}; + +Drop_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_databaseContext = Drop_databaseContext; + +TSqlParser.prototype.drop_database = function() { + + var localctx = new Drop_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 184, TSqlParser.RULE_drop_database); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2378; + this.match(TSqlParser.DROP); + this.state = 2379; + this.match(TSqlParser.DATABASE); + this.state = 2382; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2380; + this.match(TSqlParser.IF); + this.state = 2381; + this.match(TSqlParser.EXISTS); + } + + this.state = 2388; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 2385; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2384; + this.match(TSqlParser.COMMA); + } + + this.state = 2387; + localctx.database_name_or_database_snapshot_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2390; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,166, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_database_audit_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_database_audit_specification; + this.audit_specification_name = null; // IdContext + return this; +} + +Drop_database_audit_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_database_audit_specificationContext.prototype.constructor = Drop_database_audit_specificationContext; + +Drop_database_audit_specificationContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_database_audit_specificationContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_database_audit_specificationContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Drop_database_audit_specificationContext.prototype.SPECIFICATION = function() { + return this.getToken(TSqlParser.SPECIFICATION, 0); +}; + +Drop_database_audit_specificationContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_database_audit_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_database_audit_specification(this); + } +}; + +Drop_database_audit_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_database_audit_specification(this); + } +}; + +Drop_database_audit_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_database_audit_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_database_audit_specificationContext = Drop_database_audit_specificationContext; + +TSqlParser.prototype.drop_database_audit_specification = function() { + + var localctx = new Drop_database_audit_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 186, TSqlParser.RULE_drop_database_audit_specification); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2392; + this.match(TSqlParser.DROP); + this.state = 2393; + this.match(TSqlParser.DATABASE); + this.state = 2394; + this.match(TSqlParser.AUDIT); + this.state = 2395; + this.match(TSqlParser.SPECIFICATION); + this.state = 2396; + localctx.audit_specification_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_database_scoped_credentialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_database_scoped_credential; + this.credential_name = null; // IdContext + return this; +} + +Drop_database_scoped_credentialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_database_scoped_credentialContext.prototype.constructor = Drop_database_scoped_credentialContext; + +Drop_database_scoped_credentialContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_database_scoped_credentialContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_database_scoped_credentialContext.prototype.SCOPED = function() { + return this.getToken(TSqlParser.SCOPED, 0); +}; + +Drop_database_scoped_credentialContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Drop_database_scoped_credentialContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_database_scoped_credentialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_database_scoped_credential(this); + } +}; + +Drop_database_scoped_credentialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_database_scoped_credential(this); + } +}; + +Drop_database_scoped_credentialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_database_scoped_credential(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_database_scoped_credentialContext = Drop_database_scoped_credentialContext; + +TSqlParser.prototype.drop_database_scoped_credential = function() { + + var localctx = new Drop_database_scoped_credentialContext(this, this._ctx, this.state); + this.enterRule(localctx, 188, TSqlParser.RULE_drop_database_scoped_credential); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2398; + this.match(TSqlParser.DROP); + this.state = 2399; + this.match(TSqlParser.DATABASE); + this.state = 2400; + this.match(TSqlParser.SCOPED); + this.state = 2401; + this.match(TSqlParser.CREDENTIAL); + this.state = 2402; + localctx.credential_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_defaultContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_default; + this.schema_name = null; // IdContext + this.default_name = null; // IdContext + return this; +} + +Drop_defaultContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_defaultContext.prototype.constructor = Drop_defaultContext; + +Drop_defaultContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_defaultContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Drop_defaultContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_defaultContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_defaultContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_defaultContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Drop_defaultContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_defaultContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_default(this); + } +}; + +Drop_defaultContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_default(this); + } +}; + +Drop_defaultContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_default(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_defaultContext = Drop_defaultContext; + +TSqlParser.prototype.drop_default = function() { + + var localctx = new Drop_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 190, TSqlParser.RULE_drop_default); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2404; + this.match(TSqlParser.DROP); + this.state = 2405; + this.match(TSqlParser.DEFAULT); + this.state = 2408; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2406; + this.match(TSqlParser.IF); + this.state = 2407; + this.match(TSqlParser.EXISTS); + } + + this.state = 2411; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2410; + this.match(TSqlParser.COMMA); + } + + this.state = 2416; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,169,this._ctx); + if(la_===1) { + this.state = 2413; + localctx.schema_name = this.id(); + this.state = 2414; + this.match(TSqlParser.DOT); + + } + this.state = 2418; + localctx.default_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_endpointContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_endpoint; + this.endPointName = null; // IdContext + return this; +} + +Drop_endpointContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_endpointContext.prototype.constructor = Drop_endpointContext; + +Drop_endpointContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_endpointContext.prototype.ENDPOINT = function() { + return this.getToken(TSqlParser.ENDPOINT, 0); +}; + +Drop_endpointContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_endpointContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_endpoint(this); + } +}; + +Drop_endpointContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_endpoint(this); + } +}; + +Drop_endpointContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_endpoint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_endpointContext = Drop_endpointContext; + +TSqlParser.prototype.drop_endpoint = function() { + + var localctx = new Drop_endpointContext(this, this._ctx, this.state); + this.enterRule(localctx, 192, TSqlParser.RULE_drop_endpoint); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2420; + this.match(TSqlParser.DROP); + this.state = 2421; + this.match(TSqlParser.ENDPOINT); + this.state = 2422; + localctx.endPointName = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_data_sourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_data_source; + this.external_data_source_name = null; // IdContext + return this; +} + +Drop_external_data_sourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_data_sourceContext.prototype.constructor = Drop_external_data_sourceContext; + +Drop_external_data_sourceContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_data_sourceContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_data_sourceContext.prototype.DATA = function() { + return this.getToken(TSqlParser.DATA, 0); +}; + +Drop_external_data_sourceContext.prototype.SOURCE = function() { + return this.getToken(TSqlParser.SOURCE, 0); +}; + +Drop_external_data_sourceContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_external_data_sourceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_data_source(this); + } +}; + +Drop_external_data_sourceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_data_source(this); + } +}; + +Drop_external_data_sourceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_data_source(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_data_sourceContext = Drop_external_data_sourceContext; + +TSqlParser.prototype.drop_external_data_source = function() { + + var localctx = new Drop_external_data_sourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 194, TSqlParser.RULE_drop_external_data_source); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2424; + this.match(TSqlParser.DROP); + this.state = 2425; + this.match(TSqlParser.EXTERNAL); + this.state = 2426; + this.match(TSqlParser.DATA); + this.state = 2427; + this.match(TSqlParser.SOURCE); + this.state = 2428; + localctx.external_data_source_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_file_formatContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_file_format; + this.external_file_format_name = null; // IdContext + return this; +} + +Drop_external_file_formatContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_file_formatContext.prototype.constructor = Drop_external_file_formatContext; + +Drop_external_file_formatContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_file_formatContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_file_formatContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Drop_external_file_formatContext.prototype.FORMAT = function() { + return this.getToken(TSqlParser.FORMAT, 0); +}; + +Drop_external_file_formatContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_external_file_formatContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_file_format(this); + } +}; + +Drop_external_file_formatContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_file_format(this); + } +}; + +Drop_external_file_formatContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_file_format(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_file_formatContext = Drop_external_file_formatContext; + +TSqlParser.prototype.drop_external_file_format = function() { + + var localctx = new Drop_external_file_formatContext(this, this._ctx, this.state); + this.enterRule(localctx, 196, TSqlParser.RULE_drop_external_file_format); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2430; + this.match(TSqlParser.DROP); + this.state = 2431; + this.match(TSqlParser.EXTERNAL); + this.state = 2432; + this.match(TSqlParser.FILE); + this.state = 2433; + this.match(TSqlParser.FORMAT); + this.state = 2434; + localctx.external_file_format_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_libraryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_library; + this.library_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Drop_external_libraryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_libraryContext.prototype.constructor = Drop_external_libraryContext; + +Drop_external_libraryContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_libraryContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_libraryContext.prototype.LIBRARY = function() { + return this.getToken(TSqlParser.LIBRARY, 0); +}; + +Drop_external_libraryContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_external_libraryContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Drop_external_libraryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_library(this); + } +}; + +Drop_external_libraryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_library(this); + } +}; + +Drop_external_libraryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_library(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_libraryContext = Drop_external_libraryContext; + +TSqlParser.prototype.drop_external_library = function() { + + var localctx = new Drop_external_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 198, TSqlParser.RULE_drop_external_library); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2436; + this.match(TSqlParser.DROP); + this.state = 2437; + this.match(TSqlParser.EXTERNAL); + this.state = 2438; + this.match(TSqlParser.LIBRARY); + this.state = 2439; + localctx.library_name = this.id(); + this.state = 2442; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 2440; + this.match(TSqlParser.AUTHORIZATION); + this.state = 2441; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_resource_pool; + this.pool_name = null; // IdContext + return this; +} + +Drop_external_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_resource_poolContext.prototype.constructor = Drop_external_resource_poolContext; + +Drop_external_resource_poolContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_resource_poolContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Drop_external_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Drop_external_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_external_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_resource_pool(this); + } +}; + +Drop_external_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_resource_pool(this); + } +}; + +Drop_external_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_resource_poolContext = Drop_external_resource_poolContext; + +TSqlParser.prototype.drop_external_resource_pool = function() { + + var localctx = new Drop_external_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 200, TSqlParser.RULE_drop_external_resource_pool); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2444; + this.match(TSqlParser.DROP); + this.state = 2445; + this.match(TSqlParser.EXTERNAL); + this.state = 2446; + this.match(TSqlParser.RESOURCE); + this.state = 2447; + this.match(TSqlParser.POOL); + this.state = 2448; + localctx.pool_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_external_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_external_table; + this.database_name = null; // IdContext + this.schema_name = null; // IdContext + this.table = null; // IdContext + return this; +} + +Drop_external_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_external_tableContext.prototype.constructor = Drop_external_tableContext; + +Drop_external_tableContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_external_tableContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Drop_external_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Drop_external_tableContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_external_tableContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_external_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_external_table(this); + } +}; + +Drop_external_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_external_table(this); + } +}; + +Drop_external_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_external_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_external_tableContext = Drop_external_tableContext; + +TSqlParser.prototype.drop_external_table = function() { + + var localctx = new Drop_external_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 202, TSqlParser.RULE_drop_external_table); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2450; + this.match(TSqlParser.DROP); + this.state = 2451; + this.match(TSqlParser.EXTERNAL); + this.state = 2452; + this.match(TSqlParser.TABLE); + this.state = 2456; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,171,this._ctx); + if(la_===1) { + this.state = 2453; + localctx.database_name = this.id(); + this.state = 2454; + this.match(TSqlParser.DOT); + + } + this.state = 2461; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,172,this._ctx); + if(la_===1) { + this.state = 2458; + localctx.schema_name = this.id(); + this.state = 2459; + this.match(TSqlParser.DOT); + + } + this.state = 2463; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_event_notificationsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_event_notifications; + this.notification_name = null; // IdContext + this.queue_name = null; // IdContext + return this; +} + +Drop_event_notificationsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_event_notificationsContext.prototype.constructor = Drop_event_notificationsContext; + +Drop_event_notificationsContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_event_notificationsContext.prototype.EVENT = function() { + return this.getToken(TSqlParser.EVENT, 0); +}; + +Drop_event_notificationsContext.prototype.NOTIFICATION = function() { + return this.getToken(TSqlParser.NOTIFICATION, 0); +}; + +Drop_event_notificationsContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_event_notificationsContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_event_notificationsContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_event_notificationsContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Drop_event_notificationsContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_event_notificationsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_event_notificationsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_event_notifications(this); + } +}; + +Drop_event_notificationsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_event_notifications(this); + } +}; + +Drop_event_notificationsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_event_notifications(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_event_notificationsContext = Drop_event_notificationsContext; + +TSqlParser.prototype.drop_event_notifications = function() { + + var localctx = new Drop_event_notificationsContext(this, this._ctx, this.state); + this.enterRule(localctx, 204, TSqlParser.RULE_drop_event_notifications); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2465; + this.match(TSqlParser.DROP); + this.state = 2466; + this.match(TSqlParser.EVENT); + this.state = 2467; + this.match(TSqlParser.NOTIFICATION); + this.state = 2472; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2469; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2468; + this.match(TSqlParser.COMMA); + } + + this.state = 2471; + localctx.notification_name = this.id(); + this.state = 2474; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 2476; + this.match(TSqlParser.ON); + this.state = 2481; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SERVER: + this.state = 2477; + this.match(TSqlParser.SERVER); + break; + case TSqlParser.DATABASE: + this.state = 2478; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.QUEUE: + this.state = 2479; + this.match(TSqlParser.QUEUE); + this.state = 2480; + localctx.queue_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_event_sessionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_event_session; + this.event_session_name = null; // IdContext + return this; +} + +Drop_event_sessionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_event_sessionContext.prototype.constructor = Drop_event_sessionContext; + +Drop_event_sessionContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_event_sessionContext.prototype.EVENT = function() { + return this.getToken(TSqlParser.EVENT, 0); +}; + +Drop_event_sessionContext.prototype.SESSION = function() { + return this.getToken(TSqlParser.SESSION, 0); +}; + +Drop_event_sessionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_event_sessionContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_event_sessionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_event_sessionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_event_session(this); + } +}; + +Drop_event_sessionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_event_session(this); + } +}; + +Drop_event_sessionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_event_session(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_event_sessionContext = Drop_event_sessionContext; + +TSqlParser.prototype.drop_event_session = function() { + + var localctx = new Drop_event_sessionContext(this, this._ctx, this.state); + this.enterRule(localctx, 206, TSqlParser.RULE_drop_event_session); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2483; + this.match(TSqlParser.DROP); + this.state = 2484; + this.match(TSqlParser.EVENT); + this.state = 2485; + this.match(TSqlParser.SESSION); + this.state = 2486; + localctx.event_session_name = this.id(); + this.state = 2487; + this.match(TSqlParser.ON); + this.state = 2488; + this.match(TSqlParser.SERVER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_fulltext_catalogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_fulltext_catalog; + this.catalog_name = null; // IdContext + return this; +} + +Drop_fulltext_catalogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_fulltext_catalogContext.prototype.constructor = Drop_fulltext_catalogContext; + +Drop_fulltext_catalogContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_fulltext_catalogContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Drop_fulltext_catalogContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Drop_fulltext_catalogContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_fulltext_catalogContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_fulltext_catalog(this); + } +}; + +Drop_fulltext_catalogContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_fulltext_catalog(this); + } +}; + +Drop_fulltext_catalogContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_fulltext_catalog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_fulltext_catalogContext = Drop_fulltext_catalogContext; + +TSqlParser.prototype.drop_fulltext_catalog = function() { + + var localctx = new Drop_fulltext_catalogContext(this, this._ctx, this.state); + this.enterRule(localctx, 208, TSqlParser.RULE_drop_fulltext_catalog); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2490; + this.match(TSqlParser.DROP); + this.state = 2491; + this.match(TSqlParser.FULLTEXT); + this.state = 2492; + this.match(TSqlParser.CATALOG); + this.state = 2493; + localctx.catalog_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_fulltext_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_fulltext_index; + this.schema = null; // IdContext + this.table = null; // IdContext + return this; +} + +Drop_fulltext_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_fulltext_indexContext.prototype.constructor = Drop_fulltext_indexContext; + +Drop_fulltext_indexContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_fulltext_indexContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Drop_fulltext_indexContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Drop_fulltext_indexContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_fulltext_indexContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_fulltext_indexContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_fulltext_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_fulltext_index(this); + } +}; + +Drop_fulltext_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_fulltext_index(this); + } +}; + +Drop_fulltext_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_fulltext_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_fulltext_indexContext = Drop_fulltext_indexContext; + +TSqlParser.prototype.drop_fulltext_index = function() { + + var localctx = new Drop_fulltext_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 210, TSqlParser.RULE_drop_fulltext_index); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2495; + this.match(TSqlParser.DROP); + this.state = 2496; + this.match(TSqlParser.FULLTEXT); + this.state = 2497; + this.match(TSqlParser.INDEX); + this.state = 2498; + this.match(TSqlParser.ON); + this.state = 2502; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,176,this._ctx); + if(la_===1) { + this.state = 2499; + localctx.schema = this.id(); + this.state = 2500; + this.match(TSqlParser.DOT); + + } + this.state = 2504; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_fulltext_stoplistContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_fulltext_stoplist; + this.stoplist_name = null; // IdContext + return this; +} + +Drop_fulltext_stoplistContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_fulltext_stoplistContext.prototype.constructor = Drop_fulltext_stoplistContext; + +Drop_fulltext_stoplistContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_fulltext_stoplistContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Drop_fulltext_stoplistContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Drop_fulltext_stoplistContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_fulltext_stoplistContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_fulltext_stoplist(this); + } +}; + +Drop_fulltext_stoplistContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_fulltext_stoplist(this); + } +}; + +Drop_fulltext_stoplistContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_fulltext_stoplist(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_fulltext_stoplistContext = Drop_fulltext_stoplistContext; + +TSqlParser.prototype.drop_fulltext_stoplist = function() { + + var localctx = new Drop_fulltext_stoplistContext(this, this._ctx, this.state); + this.enterRule(localctx, 212, TSqlParser.RULE_drop_fulltext_stoplist); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2506; + this.match(TSqlParser.DROP); + this.state = 2507; + this.match(TSqlParser.FULLTEXT); + this.state = 2508; + this.match(TSqlParser.STOPLIST); + this.state = 2509; + localctx.stoplist_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_loginContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_login; + this.login_name = null; // IdContext + return this; +} + +Drop_loginContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_loginContext.prototype.constructor = Drop_loginContext; + +Drop_loginContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_loginContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Drop_loginContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_loginContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_login(this); + } +}; + +Drop_loginContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_login(this); + } +}; + +Drop_loginContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_login(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_loginContext = Drop_loginContext; + +TSqlParser.prototype.drop_login = function() { + + var localctx = new Drop_loginContext(this, this._ctx, this.state); + this.enterRule(localctx, 214, TSqlParser.RULE_drop_login); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2511; + this.match(TSqlParser.DROP); + this.state = 2512; + this.match(TSqlParser.LOGIN); + this.state = 2513; + localctx.login_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_master_key; + return this; +} + +Drop_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_master_keyContext.prototype.constructor = Drop_master_keyContext; + +Drop_master_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Drop_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Drop_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_master_key(this); + } +}; + +Drop_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_master_key(this); + } +}; + +Drop_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_master_keyContext = Drop_master_keyContext; + +TSqlParser.prototype.drop_master_key = function() { + + var localctx = new Drop_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 216, TSqlParser.RULE_drop_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2515; + this.match(TSqlParser.DROP); + this.state = 2516; + this.match(TSqlParser.MASTER); + this.state = 2517; + this.match(TSqlParser.KEY); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_message_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_message_type; + this.message_type_name = null; // IdContext + return this; +} + +Drop_message_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_message_typeContext.prototype.constructor = Drop_message_typeContext; + +Drop_message_typeContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_message_typeContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Drop_message_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Drop_message_typeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_message_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_message_type(this); + } +}; + +Drop_message_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_message_type(this); + } +}; + +Drop_message_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_message_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_message_typeContext = Drop_message_typeContext; + +TSqlParser.prototype.drop_message_type = function() { + + var localctx = new Drop_message_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 218, TSqlParser.RULE_drop_message_type); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2519; + this.match(TSqlParser.DROP); + this.state = 2520; + this.match(TSqlParser.MESSAGE); + this.state = 2521; + this.match(TSqlParser.TYPE); + this.state = 2522; + localctx.message_type_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_partition_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_partition_function; + this.partition_function_name = null; // IdContext + return this; +} + +Drop_partition_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_partition_functionContext.prototype.constructor = Drop_partition_functionContext; + +Drop_partition_functionContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_partition_functionContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Drop_partition_functionContext.prototype.FUNCTION = function() { + return this.getToken(TSqlParser.FUNCTION, 0); +}; + +Drop_partition_functionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_partition_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_partition_function(this); + } +}; + +Drop_partition_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_partition_function(this); + } +}; + +Drop_partition_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_partition_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_partition_functionContext = Drop_partition_functionContext; + +TSqlParser.prototype.drop_partition_function = function() { + + var localctx = new Drop_partition_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 220, TSqlParser.RULE_drop_partition_function); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2524; + this.match(TSqlParser.DROP); + this.state = 2525; + this.match(TSqlParser.PARTITION); + this.state = 2526; + this.match(TSqlParser.FUNCTION); + this.state = 2527; + localctx.partition_function_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_partition_schemeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_partition_scheme; + this.partition_scheme_name = null; // IdContext + return this; +} + +Drop_partition_schemeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_partition_schemeContext.prototype.constructor = Drop_partition_schemeContext; + +Drop_partition_schemeContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_partition_schemeContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Drop_partition_schemeContext.prototype.SCHEME = function() { + return this.getToken(TSqlParser.SCHEME, 0); +}; + +Drop_partition_schemeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_partition_schemeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_partition_scheme(this); + } +}; + +Drop_partition_schemeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_partition_scheme(this); + } +}; + +Drop_partition_schemeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_partition_scheme(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_partition_schemeContext = Drop_partition_schemeContext; + +TSqlParser.prototype.drop_partition_scheme = function() { + + var localctx = new Drop_partition_schemeContext(this, this._ctx, this.state); + this.enterRule(localctx, 222, TSqlParser.RULE_drop_partition_scheme); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2529; + this.match(TSqlParser.DROP); + this.state = 2530; + this.match(TSqlParser.PARTITION); + this.state = 2531; + this.match(TSqlParser.SCHEME); + this.state = 2532; + localctx.partition_scheme_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_queueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_queue; + this.database_name = null; // IdContext + this.schema_name = null; // IdContext + this.queue_name = null; // IdContext + return this; +} + +Drop_queueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_queueContext.prototype.constructor = Drop_queueContext; + +Drop_queueContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_queueContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Drop_queueContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_queueContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_queueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_queue(this); + } +}; + +Drop_queueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_queue(this); + } +}; + +Drop_queueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_queue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_queueContext = Drop_queueContext; + +TSqlParser.prototype.drop_queue = function() { + + var localctx = new Drop_queueContext(this, this._ctx, this.state); + this.enterRule(localctx, 224, TSqlParser.RULE_drop_queue); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2534; + this.match(TSqlParser.DROP); + this.state = 2535; + this.match(TSqlParser.QUEUE); + this.state = 2539; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,177,this._ctx); + if(la_===1) { + this.state = 2536; + localctx.database_name = this.id(); + this.state = 2537; + this.match(TSqlParser.DOT); + + } + this.state = 2544; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,178,this._ctx); + if(la_===1) { + this.state = 2541; + localctx.schema_name = this.id(); + this.state = 2542; + this.match(TSqlParser.DOT); + + } + this.state = 2546; + localctx.queue_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_remote_service_bindingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_remote_service_binding; + this.binding_name = null; // IdContext + return this; +} + +Drop_remote_service_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_remote_service_bindingContext.prototype.constructor = Drop_remote_service_bindingContext; + +Drop_remote_service_bindingContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_remote_service_bindingContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Drop_remote_service_bindingContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Drop_remote_service_bindingContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Drop_remote_service_bindingContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_remote_service_bindingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_remote_service_binding(this); + } +}; + +Drop_remote_service_bindingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_remote_service_binding(this); + } +}; + +Drop_remote_service_bindingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_remote_service_binding(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_remote_service_bindingContext = Drop_remote_service_bindingContext; + +TSqlParser.prototype.drop_remote_service_binding = function() { + + var localctx = new Drop_remote_service_bindingContext(this, this._ctx, this.state); + this.enterRule(localctx, 226, TSqlParser.RULE_drop_remote_service_binding); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2548; + this.match(TSqlParser.DROP); + this.state = 2549; + this.match(TSqlParser.REMOTE); + this.state = 2550; + this.match(TSqlParser.SERVICE); + this.state = 2551; + this.match(TSqlParser.BINDING); + this.state = 2552; + localctx.binding_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_resource_pool; + this.pool_name = null; // IdContext + return this; +} + +Drop_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_resource_poolContext.prototype.constructor = Drop_resource_poolContext; + +Drop_resource_poolContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Drop_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Drop_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_resource_pool(this); + } +}; + +Drop_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_resource_pool(this); + } +}; + +Drop_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_resource_poolContext = Drop_resource_poolContext; + +TSqlParser.prototype.drop_resource_pool = function() { + + var localctx = new Drop_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 228, TSqlParser.RULE_drop_resource_pool); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2554; + this.match(TSqlParser.DROP); + this.state = 2555; + this.match(TSqlParser.RESOURCE); + this.state = 2556; + this.match(TSqlParser.POOL); + this.state = 2557; + localctx.pool_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_db_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_db_role; + this.role_name = null; // IdContext + return this; +} + +Drop_db_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_db_roleContext.prototype.constructor = Drop_db_roleContext; + +Drop_db_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_db_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Drop_db_roleContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_db_roleContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_db_roleContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_db_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_db_role(this); + } +}; + +Drop_db_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_db_role(this); + } +}; + +Drop_db_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_db_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_db_roleContext = Drop_db_roleContext; + +TSqlParser.prototype.drop_db_role = function() { + + var localctx = new Drop_db_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 230, TSqlParser.RULE_drop_db_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2559; + this.match(TSqlParser.DROP); + this.state = 2560; + this.match(TSqlParser.ROLE); + this.state = 2563; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2561; + this.match(TSqlParser.IF); + this.state = 2562; + this.match(TSqlParser.EXISTS); + } + + this.state = 2565; + localctx.role_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_routeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_route; + this.route_name = null; // IdContext + return this; +} + +Drop_routeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_routeContext.prototype.constructor = Drop_routeContext; + +Drop_routeContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_routeContext.prototype.ROUTE = function() { + return this.getToken(TSqlParser.ROUTE, 0); +}; + +Drop_routeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_routeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_route(this); + } +}; + +Drop_routeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_route(this); + } +}; + +Drop_routeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_route(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_routeContext = Drop_routeContext; + +TSqlParser.prototype.drop_route = function() { + + var localctx = new Drop_routeContext(this, this._ctx, this.state); + this.enterRule(localctx, 232, TSqlParser.RULE_drop_route); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2567; + this.match(TSqlParser.DROP); + this.state = 2568; + this.match(TSqlParser.ROUTE); + this.state = 2569; + localctx.route_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_ruleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_rule; + this.schema_name = null; // IdContext + this.rule_name = null; // IdContext + return this; +} + +Drop_ruleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_ruleContext.prototype.constructor = Drop_ruleContext; + +Drop_ruleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_ruleContext.prototype.RULE = function() { + return this.getToken(TSqlParser.RULE, 0); +}; + +Drop_ruleContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_ruleContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_ruleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_ruleContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Drop_ruleContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_ruleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_rule(this); + } +}; + +Drop_ruleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_rule(this); + } +}; + +Drop_ruleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_rule(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_ruleContext = Drop_ruleContext; + +TSqlParser.prototype.drop_rule = function() { + + var localctx = new Drop_ruleContext(this, this._ctx, this.state); + this.enterRule(localctx, 234, TSqlParser.RULE_drop_rule); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2571; + this.match(TSqlParser.DROP); + this.state = 2572; + this.match(TSqlParser.RULE); + this.state = 2575; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,180,this._ctx); + if(la_===1) { + this.state = 2573; + this.match(TSqlParser.IF); + this.state = 2574; + this.match(TSqlParser.EXISTS); + + } + this.state = 2586; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,183,this._ctx); + if(la_===1) { + this.state = 2578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2577; + this.match(TSqlParser.COMMA); + } + + this.state = 2583; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,182,this._ctx); + if(la_===1) { + this.state = 2580; + localctx.schema_name = this.id(); + this.state = 2581; + this.match(TSqlParser.DOT); + + } + this.state = 2585; + localctx.rule_name = this.id(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_schema; + this.schema_name = null; // IdContext + return this; +} + +Drop_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_schemaContext.prototype.constructor = Drop_schemaContext; + +Drop_schemaContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_schemaContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Drop_schemaContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_schemaContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_schemaContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_schema(this); + } +}; + +Drop_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_schema(this); + } +}; + +Drop_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_schemaContext = Drop_schemaContext; + +TSqlParser.prototype.drop_schema = function() { + + var localctx = new Drop_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 236, TSqlParser.RULE_drop_schema); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2588; + this.match(TSqlParser.DROP); + this.state = 2589; + this.match(TSqlParser.SCHEMA); + this.state = 2592; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2590; + this.match(TSqlParser.IF); + this.state = 2591; + this.match(TSqlParser.EXISTS); + } + + this.state = 2594; + localctx.schema_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_search_property_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_search_property_list; + this.property_list_name = null; // IdContext + return this; +} + +Drop_search_property_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_search_property_listContext.prototype.constructor = Drop_search_property_listContext; + +Drop_search_property_listContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_search_property_listContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Drop_search_property_listContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Drop_search_property_listContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Drop_search_property_listContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_search_property_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_search_property_list(this); + } +}; + +Drop_search_property_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_search_property_list(this); + } +}; + +Drop_search_property_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_search_property_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_search_property_listContext = Drop_search_property_listContext; + +TSqlParser.prototype.drop_search_property_list = function() { + + var localctx = new Drop_search_property_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 238, TSqlParser.RULE_drop_search_property_list); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2596; + this.match(TSqlParser.DROP); + this.state = 2597; + this.match(TSqlParser.SEARCH); + this.state = 2598; + this.match(TSqlParser.PROPERTY); + this.state = 2599; + this.match(TSqlParser.LIST); + this.state = 2600; + localctx.property_list_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_security_policyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_security_policy; + this.schema_name = null; // IdContext + this.security_policy_name = null; // IdContext + return this; +} + +Drop_security_policyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_security_policyContext.prototype.constructor = Drop_security_policyContext; + +Drop_security_policyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_security_policyContext.prototype.SECURITY = function() { + return this.getToken(TSqlParser.SECURITY, 0); +}; + +Drop_security_policyContext.prototype.POLICY = function() { + return this.getToken(TSqlParser.POLICY, 0); +}; + +Drop_security_policyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_security_policyContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_security_policyContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_security_policyContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_security_policyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_security_policy(this); + } +}; + +Drop_security_policyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_security_policy(this); + } +}; + +Drop_security_policyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_security_policy(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_security_policyContext = Drop_security_policyContext; + +TSqlParser.prototype.drop_security_policy = function() { + + var localctx = new Drop_security_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 240, TSqlParser.RULE_drop_security_policy); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2602; + this.match(TSqlParser.DROP); + this.state = 2603; + this.match(TSqlParser.SECURITY); + this.state = 2604; + this.match(TSqlParser.POLICY); + this.state = 2607; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2605; + this.match(TSqlParser.IF); + this.state = 2606; + this.match(TSqlParser.EXISTS); + } + + this.state = 2612; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,186,this._ctx); + if(la_===1) { + this.state = 2609; + localctx.schema_name = this.id(); + this.state = 2610; + this.match(TSqlParser.DOT); + + } + this.state = 2614; + localctx.security_policy_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_sequenceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_sequence; + this.database_name = null; // IdContext + this.schema_name = null; // IdContext + this.sequence_name = null; // IdContext + return this; +} + +Drop_sequenceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_sequenceContext.prototype.constructor = Drop_sequenceContext; + +Drop_sequenceContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_sequenceContext.prototype.SEQUENCE = function() { + return this.getToken(TSqlParser.SEQUENCE, 0); +}; + +Drop_sequenceContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_sequenceContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_sequenceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_sequenceContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Drop_sequenceContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_sequenceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_sequence(this); + } +}; + +Drop_sequenceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_sequence(this); + } +}; + +Drop_sequenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_sequence(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_sequenceContext = Drop_sequenceContext; + +TSqlParser.prototype.drop_sequence = function() { + + var localctx = new Drop_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 242, TSqlParser.RULE_drop_sequence); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2616; + this.match(TSqlParser.DROP); + this.state = 2617; + this.match(TSqlParser.SEQUENCE); + this.state = 2620; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,187,this._ctx); + if(la_===1) { + this.state = 2618; + this.match(TSqlParser.IF); + this.state = 2619; + this.match(TSqlParser.EXISTS); + + } + this.state = 2636; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,191,this._ctx); + if(la_===1) { + this.state = 2623; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2622; + this.match(TSqlParser.COMMA); + } + + this.state = 2628; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,189,this._ctx); + if(la_===1) { + this.state = 2625; + localctx.database_name = this.id(); + this.state = 2626; + this.match(TSqlParser.DOT); + + } + this.state = 2633; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,190,this._ctx); + if(la_===1) { + this.state = 2630; + localctx.schema_name = this.id(); + this.state = 2631; + this.match(TSqlParser.DOT); + + } + this.state = 2635; + localctx.sequence_name = this.id(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_server_auditContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_server_audit; + this.audit_name = null; // IdContext + return this; +} + +Drop_server_auditContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_server_auditContext.prototype.constructor = Drop_server_auditContext; + +Drop_server_auditContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_server_auditContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_server_auditContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Drop_server_auditContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_server_auditContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_server_audit(this); + } +}; + +Drop_server_auditContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_server_audit(this); + } +}; + +Drop_server_auditContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_server_audit(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_server_auditContext = Drop_server_auditContext; + +TSqlParser.prototype.drop_server_audit = function() { + + var localctx = new Drop_server_auditContext(this, this._ctx, this.state); + this.enterRule(localctx, 244, TSqlParser.RULE_drop_server_audit); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2638; + this.match(TSqlParser.DROP); + this.state = 2639; + this.match(TSqlParser.SERVER); + this.state = 2640; + this.match(TSqlParser.AUDIT); + this.state = 2641; + localctx.audit_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_server_audit_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_server_audit_specification; + this.audit_specification_name = null; // IdContext + return this; +} + +Drop_server_audit_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_server_audit_specificationContext.prototype.constructor = Drop_server_audit_specificationContext; + +Drop_server_audit_specificationContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_server_audit_specificationContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_server_audit_specificationContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Drop_server_audit_specificationContext.prototype.SPECIFICATION = function() { + return this.getToken(TSqlParser.SPECIFICATION, 0); +}; + +Drop_server_audit_specificationContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_server_audit_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_server_audit_specification(this); + } +}; + +Drop_server_audit_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_server_audit_specification(this); + } +}; + +Drop_server_audit_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_server_audit_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_server_audit_specificationContext = Drop_server_audit_specificationContext; + +TSqlParser.prototype.drop_server_audit_specification = function() { + + var localctx = new Drop_server_audit_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 246, TSqlParser.RULE_drop_server_audit_specification); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2643; + this.match(TSqlParser.DROP); + this.state = 2644; + this.match(TSqlParser.SERVER); + this.state = 2645; + this.match(TSqlParser.AUDIT); + this.state = 2646; + this.match(TSqlParser.SPECIFICATION); + this.state = 2647; + localctx.audit_specification_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_server_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_server_role; + this.role_name = null; // IdContext + return this; +} + +Drop_server_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_server_roleContext.prototype.constructor = Drop_server_roleContext; + +Drop_server_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_server_roleContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_server_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Drop_server_roleContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_server_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_server_role(this); + } +}; + +Drop_server_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_server_role(this); + } +}; + +Drop_server_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_server_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_server_roleContext = Drop_server_roleContext; + +TSqlParser.prototype.drop_server_role = function() { + + var localctx = new Drop_server_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 248, TSqlParser.RULE_drop_server_role); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2649; + this.match(TSqlParser.DROP); + this.state = 2650; + this.match(TSqlParser.SERVER); + this.state = 2651; + this.match(TSqlParser.ROLE); + this.state = 2652; + localctx.role_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_serviceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_service; + this.dropped_service_name = null; // IdContext + return this; +} + +Drop_serviceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_serviceContext.prototype.constructor = Drop_serviceContext; + +Drop_serviceContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_serviceContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Drop_serviceContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_serviceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_service(this); + } +}; + +Drop_serviceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_service(this); + } +}; + +Drop_serviceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_service(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_serviceContext = Drop_serviceContext; + +TSqlParser.prototype.drop_service = function() { + + var localctx = new Drop_serviceContext(this, this._ctx, this.state); + this.enterRule(localctx, 250, TSqlParser.RULE_drop_service); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2654; + this.match(TSqlParser.DROP); + this.state = 2655; + this.match(TSqlParser.SERVICE); + this.state = 2656; + localctx.dropped_service_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_signatureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_signature; + this.schema_name = null; // IdContext + this.module_name = null; // IdContext + this.cert_name = null; // IdContext + this.Asym_key_name = null; // IdContext + return this; +} + +Drop_signatureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_signatureContext.prototype.constructor = Drop_signatureContext; + +Drop_signatureContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_signatureContext.prototype.SIGNATURE = function() { + return this.getToken(TSqlParser.SIGNATURE, 0); +}; + +Drop_signatureContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Drop_signatureContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Drop_signatureContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_signatureContext.prototype.COUNTER = function() { + return this.getToken(TSqlParser.COUNTER, 0); +}; + +Drop_signatureContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_signatureContext.prototype.CERTIFICATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CERTIFICATE); + } else { + return this.getToken(TSqlParser.CERTIFICATE, i); + } +}; + + +Drop_signatureContext.prototype.ASYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASYMMETRIC); + } else { + return this.getToken(TSqlParser.ASYMMETRIC, i); + } +}; + + +Drop_signatureContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Drop_signatureContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_signatureContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_signature(this); + } +}; + +Drop_signatureContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_signature(this); + } +}; + +Drop_signatureContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_signature(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_signatureContext = Drop_signatureContext; + +TSqlParser.prototype.drop_signature = function() { + + var localctx = new Drop_signatureContext(this, this._ctx, this.state); + this.enterRule(localctx, 252, TSqlParser.RULE_drop_signature); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2658; + this.match(TSqlParser.DROP); + this.state = 2660; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COUNTER) { + this.state = 2659; + this.match(TSqlParser.COUNTER); + } + + this.state = 2662; + this.match(TSqlParser.SIGNATURE); + this.state = 2663; + this.match(TSqlParser.FROM); + this.state = 2667; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,193,this._ctx); + if(la_===1) { + this.state = 2664; + localctx.schema_name = this.id(); + this.state = 2665; + this.match(TSqlParser.DOT); + + } + this.state = 2669; + localctx.module_name = this.id(); + this.state = 2670; + this.match(TSqlParser.BY); + this.state = 2682; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2682; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,196,this._ctx); + switch(la_) { + case 1: + this.state = 2672; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2671; + this.match(TSqlParser.COMMA); + } + + this.state = 2674; + this.match(TSqlParser.CERTIFICATE); + this.state = 2675; + localctx.cert_name = this.id(); + break; + + case 2: + this.state = 2677; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2676; + this.match(TSqlParser.COMMA); + } + + this.state = 2679; + this.match(TSqlParser.ASYMMETRIC); + this.state = 2680; + this.match(TSqlParser.KEY); + this.state = 2681; + localctx.Asym_key_name = this.id(); + break; + + } + this.state = 2684; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.ASYMMETRIC || _la===TSqlParser.CERTIFICATE || _la===TSqlParser.COMMA); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_statistics_name_azure_dw_and_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_statistics_name_azure_dw_and_pdw; + this.schema_name = null; // IdContext + this.object_name = null; // IdContext + this.statistics_name = null; // IdContext + return this; +} + +Drop_statistics_name_azure_dw_and_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_statistics_name_azure_dw_and_pdwContext.prototype.constructor = Drop_statistics_name_azure_dw_and_pdwContext; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_statistics_name_azure_dw_and_pdw(this); + } +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_statistics_name_azure_dw_and_pdw(this); + } +}; + +Drop_statistics_name_azure_dw_and_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_statistics_name_azure_dw_and_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_statistics_name_azure_dw_and_pdwContext = Drop_statistics_name_azure_dw_and_pdwContext; + +TSqlParser.prototype.drop_statistics_name_azure_dw_and_pdw = function() { + + var localctx = new Drop_statistics_name_azure_dw_and_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 254, TSqlParser.RULE_drop_statistics_name_azure_dw_and_pdw); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2686; + this.match(TSqlParser.DROP); + this.state = 2687; + this.match(TSqlParser.STATISTICS); + this.state = 2691; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,198,this._ctx); + if(la_===1) { + this.state = 2688; + localctx.schema_name = this.id(); + this.state = 2689; + this.match(TSqlParser.DOT); + + } + this.state = 2693; + localctx.object_name = this.id(); + this.state = 2694; + this.match(TSqlParser.DOT); + this.state = 2695; + localctx.statistics_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_symmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_symmetric_key; + this.symmetric_key_name = null; // IdContext + return this; +} + +Drop_symmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_symmetric_keyContext.prototype.constructor = Drop_symmetric_keyContext; + +Drop_symmetric_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_symmetric_keyContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Drop_symmetric_keyContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Drop_symmetric_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_symmetric_keyContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Drop_symmetric_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Drop_symmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_symmetric_key(this); + } +}; + +Drop_symmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_symmetric_key(this); + } +}; + +Drop_symmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_symmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_symmetric_keyContext = Drop_symmetric_keyContext; + +TSqlParser.prototype.drop_symmetric_key = function() { + + var localctx = new Drop_symmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 256, TSqlParser.RULE_drop_symmetric_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2697; + this.match(TSqlParser.DROP); + this.state = 2698; + this.match(TSqlParser.SYMMETRIC); + this.state = 2699; + this.match(TSqlParser.KEY); + this.state = 2700; + localctx.symmetric_key_name = this.id(); + this.state = 2704; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,199,this._ctx); + if(la_===1) { + this.state = 2701; + this.match(TSqlParser.REMOVE); + this.state = 2702; + this.match(TSqlParser.PROVIDER); + this.state = 2703; + this.match(TSqlParser.KEY); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_synonymContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_synonym; + this.schema = null; // IdContext + this.synonym_name = null; // IdContext + return this; +} + +Drop_synonymContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_synonymContext.prototype.constructor = Drop_synonymContext; + +Drop_synonymContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_synonymContext.prototype.SYNONYM = function() { + return this.getToken(TSqlParser.SYNONYM, 0); +}; + +Drop_synonymContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_synonymContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_synonymContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_synonymContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_synonymContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_synonym(this); + } +}; + +Drop_synonymContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_synonym(this); + } +}; + +Drop_synonymContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_synonym(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_synonymContext = Drop_synonymContext; + +TSqlParser.prototype.drop_synonym = function() { + + var localctx = new Drop_synonymContext(this, this._ctx, this.state); + this.enterRule(localctx, 258, TSqlParser.RULE_drop_synonym); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2706; + this.match(TSqlParser.DROP); + this.state = 2707; + this.match(TSqlParser.SYNONYM); + this.state = 2710; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2708; + this.match(TSqlParser.IF); + this.state = 2709; + this.match(TSqlParser.EXISTS); + } + + this.state = 2715; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,201,this._ctx); + if(la_===1) { + this.state = 2712; + localctx.schema = this.id(); + this.state = 2713; + this.match(TSqlParser.DOT); + + } + this.state = 2717; + localctx.synonym_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_userContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_user; + this.user_name = null; // IdContext + return this; +} + +Drop_userContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_userContext.prototype.constructor = Drop_userContext; + +Drop_userContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_userContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Drop_userContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_userContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_userContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_userContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_user(this); + } +}; + +Drop_userContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_user(this); + } +}; + +Drop_userContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_user(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_userContext = Drop_userContext; + +TSqlParser.prototype.drop_user = function() { + + var localctx = new Drop_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 260, TSqlParser.RULE_drop_user); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2719; + this.match(TSqlParser.DROP); + this.state = 2720; + this.match(TSqlParser.USER); + this.state = 2723; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 2721; + this.match(TSqlParser.IF); + this.state = 2722; + this.match(TSqlParser.EXISTS); + } + + this.state = 2725; + localctx.user_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_workload_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_workload_group; + this.group_name = null; // IdContext + return this; +} + +Drop_workload_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_workload_groupContext.prototype.constructor = Drop_workload_groupContext; + +Drop_workload_groupContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_workload_groupContext.prototype.WORKLOAD = function() { + return this.getToken(TSqlParser.WORKLOAD, 0); +}; + +Drop_workload_groupContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Drop_workload_groupContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_workload_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_workload_group(this); + } +}; + +Drop_workload_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_workload_group(this); + } +}; + +Drop_workload_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_workload_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_workload_groupContext = Drop_workload_groupContext; + +TSqlParser.prototype.drop_workload_group = function() { + + var localctx = new Drop_workload_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 262, TSqlParser.RULE_drop_workload_group); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2727; + this.match(TSqlParser.DROP); + this.state = 2728; + this.match(TSqlParser.WORKLOAD); + this.state = 2729; + this.match(TSqlParser.GROUP); + this.state = 2730; + localctx.group_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_xml_schema_collectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_xml_schema_collection; + this.relational_schema = null; // IdContext + this.sql_identifier = null; // IdContext + return this; +} + +Drop_xml_schema_collectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_xml_schema_collectionContext.prototype.constructor = Drop_xml_schema_collectionContext; + +Drop_xml_schema_collectionContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_xml_schema_collectionContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Drop_xml_schema_collectionContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Drop_xml_schema_collectionContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Drop_xml_schema_collectionContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_xml_schema_collectionContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Drop_xml_schema_collectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_xml_schema_collection(this); + } +}; + +Drop_xml_schema_collectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_xml_schema_collection(this); + } +}; + +Drop_xml_schema_collectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_xml_schema_collection(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_xml_schema_collectionContext = Drop_xml_schema_collectionContext; + +TSqlParser.prototype.drop_xml_schema_collection = function() { + + var localctx = new Drop_xml_schema_collectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 264, TSqlParser.RULE_drop_xml_schema_collection); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2732; + this.match(TSqlParser.DROP); + this.state = 2733; + this.match(TSqlParser.XML); + this.state = 2734; + this.match(TSqlParser.SCHEMA); + this.state = 2735; + this.match(TSqlParser.COLLECTION); + this.state = 2739; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,203,this._ctx); + if(la_===1) { + this.state = 2736; + localctx.relational_schema = this.id(); + this.state = 2737; + this.match(TSqlParser.DOT); + + } + this.state = 2741; + localctx.sql_identifier = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Disable_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_disable_trigger; + this.schema_name = null; // IdContext + this.trigger_name = null; // IdContext + this.schema_id = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Disable_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Disable_triggerContext.prototype.constructor = Disable_triggerContext; + +Disable_triggerContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Disable_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Disable_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Disable_triggerContext.prototype.ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALL); + } else { + return this.getToken(TSqlParser.ALL, i); + } +}; + + +Disable_triggerContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Disable_triggerContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Disable_triggerContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Disable_triggerContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Disable_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Disable_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDisable_trigger(this); + } +}; + +Disable_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDisable_trigger(this); + } +}; + +Disable_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDisable_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Disable_triggerContext = Disable_triggerContext; + +TSqlParser.prototype.disable_trigger = function() { + + var localctx = new Disable_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 266, TSqlParser.RULE_disable_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2743; + this.match(TSqlParser.DISABLE); + this.state = 2744; + this.match(TSqlParser.TRIGGER); + this.state = 2759; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + case TSqlParser.COMMA: + this.state = 2754; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2746; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2745; + this.match(TSqlParser.COMMA); + } + + this.state = 2751; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,205,this._ctx); + if(la_===1) { + this.state = 2748; + localctx.schema_name = this.id(); + this.state = 2749; + this.match(TSqlParser.DOT); + + } + this.state = 2753; + localctx.trigger_name = this.id(); + this.state = 2756; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + break; + case TSqlParser.ALL: + this.state = 2758; + this.match(TSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2761; + this.match(TSqlParser.ON); + this.state = 2771; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 2765; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,208,this._ctx); + if(la_===1) { + this.state = 2762; + localctx.schema_id = this.id(); + this.state = 2763; + this.match(TSqlParser.DOT); + + } + this.state = 2767; + localctx.object_name = this.id(); + break; + case TSqlParser.DATABASE: + this.state = 2768; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.ALL: + this.state = 2769; + this.match(TSqlParser.ALL); + this.state = 2770; + this.match(TSqlParser.SERVER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Enable_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_enable_trigger; + this.schema_name = null; // IdContext + this.trigger_name = null; // IdContext + this.schema_id = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Enable_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Enable_triggerContext.prototype.constructor = Enable_triggerContext; + +Enable_triggerContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Enable_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Enable_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Enable_triggerContext.prototype.ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALL); + } else { + return this.getToken(TSqlParser.ALL, i); + } +}; + + +Enable_triggerContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Enable_triggerContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Enable_triggerContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Enable_triggerContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Enable_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Enable_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEnable_trigger(this); + } +}; + +Enable_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEnable_trigger(this); + } +}; + +Enable_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEnable_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Enable_triggerContext = Enable_triggerContext; + +TSqlParser.prototype.enable_trigger = function() { + + var localctx = new Enable_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 268, TSqlParser.RULE_enable_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2773; + this.match(TSqlParser.ENABLE); + this.state = 2774; + this.match(TSqlParser.TRIGGER); + this.state = 2789; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + case TSqlParser.COMMA: + this.state = 2784; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2776; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2775; + this.match(TSqlParser.COMMA); + } + + this.state = 2781; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,211,this._ctx); + if(la_===1) { + this.state = 2778; + localctx.schema_name = this.id(); + this.state = 2779; + this.match(TSqlParser.DOT); + + } + this.state = 2783; + localctx.trigger_name = this.id(); + this.state = 2786; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + break; + case TSqlParser.ALL: + this.state = 2788; + this.match(TSqlParser.ALL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2791; + this.match(TSqlParser.ON); + this.state = 2801; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 2795; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,214,this._ctx); + if(la_===1) { + this.state = 2792; + localctx.schema_id = this.id(); + this.state = 2793; + this.match(TSqlParser.DOT); + + } + this.state = 2797; + localctx.object_name = this.id(); + break; + case TSqlParser.DATABASE: + this.state = 2798; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.ALL: + this.state = 2799; + this.match(TSqlParser.ALL); + this.state = 2800; + this.match(TSqlParser.SERVER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Lock_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_lock_table; + this.seconds = null; // Token + return this; +} + +Lock_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Lock_tableContext.prototype.constructor = Lock_tableContext; + +Lock_tableContext.prototype.LOCK = function() { + return this.getToken(TSqlParser.LOCK, 0); +}; + +Lock_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Lock_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Lock_tableContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +Lock_tableContext.prototype.MODE = function() { + return this.getToken(TSqlParser.MODE, 0); +}; + +Lock_tableContext.prototype.SHARE = function() { + return this.getToken(TSqlParser.SHARE, 0); +}; + +Lock_tableContext.prototype.EXCLUSIVE = function() { + return this.getToken(TSqlParser.EXCLUSIVE, 0); +}; + +Lock_tableContext.prototype.WAIT = function() { + return this.getToken(TSqlParser.WAIT, 0); +}; + +Lock_tableContext.prototype.NOWAIT = function() { + return this.getToken(TSqlParser.NOWAIT, 0); +}; + +Lock_tableContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Lock_tableContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Lock_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterLock_table(this); + } +}; + +Lock_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitLock_table(this); + } +}; + +Lock_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitLock_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Lock_tableContext = Lock_tableContext; + +TSqlParser.prototype.lock_table = function() { + + var localctx = new Lock_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 270, TSqlParser.RULE_lock_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2803; + this.match(TSqlParser.LOCK); + this.state = 2804; + this.match(TSqlParser.TABLE); + this.state = 2805; + this.table_name(); + this.state = 2806; + this.match(TSqlParser.IN); + this.state = 2807; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EXCLUSIVE || _la===TSqlParser.SHARE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2808; + this.match(TSqlParser.MODE); + this.state = 2812; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,216,this._ctx); + if(la_===1) { + this.state = 2809; + this.match(TSqlParser.WAIT); + this.state = 2810; + localctx.seconds = this.match(TSqlParser.DECIMAL); + + } else if(la_===2) { + this.state = 2811; + this.match(TSqlParser.NOWAIT); + + } + this.state = 2815; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,217,this._ctx); + if(la_===1) { + this.state = 2814; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Truncate_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_truncate_table; + return this; +} + +Truncate_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Truncate_tableContext.prototype.constructor = Truncate_tableContext; + +Truncate_tableContext.prototype.TRUNCATE = function() { + return this.getToken(TSqlParser.TRUNCATE, 0); +}; + +Truncate_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Truncate_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Truncate_tableContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Truncate_tableContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Truncate_tableContext.prototype.PARTITIONS = function() { + return this.getToken(TSqlParser.PARTITIONS, 0); +}; + +Truncate_tableContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Truncate_tableContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Truncate_tableContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Truncate_tableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Truncate_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTruncate_table(this); + } +}; + +Truncate_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTruncate_table(this); + } +}; + +Truncate_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTruncate_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Truncate_tableContext = Truncate_tableContext; + +TSqlParser.prototype.truncate_table = function() { + + var localctx = new Truncate_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 272, TSqlParser.RULE_truncate_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2817; + this.match(TSqlParser.TRUNCATE); + this.state = 2818; + this.match(TSqlParser.TABLE); + this.state = 2819; + this.table_name(); + this.state = 2839; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,221,this._ctx); + if(la_===1) { + this.state = 2820; + this.match(TSqlParser.WITH); + this.state = 2821; + this.match(TSqlParser.LR_BRACKET); + this.state = 2822; + this.match(TSqlParser.PARTITIONS); + this.state = 2823; + this.match(TSqlParser.LR_BRACKET); + this.state = 2833; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2825; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2824; + this.match(TSqlParser.COMMA); + } + + this.state = 2831; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,219,this._ctx); + switch(la_) { + case 1: + this.state = 2827; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 2828; + this.match(TSqlParser.DECIMAL); + this.state = 2829; + this.match(TSqlParser.TO); + this.state = 2830; + this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 2835; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DECIMAL || _la===TSqlParser.COMMA); + this.state = 2837; + this.match(TSqlParser.RR_BRACKET); + this.state = 2838; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_column_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_column_master_key; + this.key_name = null; // IdContext + this.key_store_provider_name = null; // Token + this.key_path = null; // Token + return this; +} + +Create_column_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_column_master_keyContext.prototype.constructor = Create_column_master_keyContext; + +Create_column_master_keyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_column_master_keyContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Create_column_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Create_column_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_column_master_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_column_master_keyContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_column_master_keyContext.prototype.KEY_STORE_PROVIDER_NAME = function() { + return this.getToken(TSqlParser.KEY_STORE_PROVIDER_NAME, 0); +}; + +Create_column_master_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_column_master_keyContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Create_column_master_keyContext.prototype.KEY_PATH = function() { + return this.getToken(TSqlParser.KEY_PATH, 0); +}; + +Create_column_master_keyContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_column_master_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_column_master_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_column_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_column_master_key(this); + } +}; + +Create_column_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_column_master_key(this); + } +}; + +Create_column_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_column_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_column_master_keyContext = Create_column_master_keyContext; + +TSqlParser.prototype.create_column_master_key = function() { + + var localctx = new Create_column_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 274, TSqlParser.RULE_create_column_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2841; + this.match(TSqlParser.CREATE); + this.state = 2842; + this.match(TSqlParser.COLUMN); + this.state = 2843; + this.match(TSqlParser.MASTER); + this.state = 2844; + this.match(TSqlParser.KEY); + this.state = 2845; + localctx.key_name = this.id(); + this.state = 2846; + this.match(TSqlParser.WITH); + this.state = 2847; + this.match(TSqlParser.LR_BRACKET); + this.state = 2848; + this.match(TSqlParser.KEY_STORE_PROVIDER_NAME); + this.state = 2849; + this.match(TSqlParser.EQUAL); + this.state = 2850; + localctx.key_store_provider_name = this.match(TSqlParser.STRING); + this.state = 2851; + this.match(TSqlParser.COMMA); + this.state = 2852; + this.match(TSqlParser.KEY_PATH); + this.state = 2853; + this.match(TSqlParser.EQUAL); + this.state = 2854; + localctx.key_path = this.match(TSqlParser.STRING); + this.state = 2855; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_credentialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_credential; + this.credential_name = null; // IdContext + this.identity_name = null; // Token + this.secret = null; // Token + return this; +} + +Alter_credentialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_credentialContext.prototype.constructor = Alter_credentialContext; + +Alter_credentialContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_credentialContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Alter_credentialContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_credentialContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Alter_credentialContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_credentialContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_credentialContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_credentialContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Alter_credentialContext.prototype.SECRET = function() { + return this.getToken(TSqlParser.SECRET, 0); +}; + +Alter_credentialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_credential(this); + } +}; + +Alter_credentialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_credential(this); + } +}; + +Alter_credentialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_credential(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_credentialContext = Alter_credentialContext; + +TSqlParser.prototype.alter_credential = function() { + + var localctx = new Alter_credentialContext(this, this._ctx, this.state); + this.enterRule(localctx, 276, TSqlParser.RULE_alter_credential); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2857; + this.match(TSqlParser.ALTER); + this.state = 2858; + this.match(TSqlParser.CREDENTIAL); + this.state = 2859; + localctx.credential_name = this.id(); + this.state = 2860; + this.match(TSqlParser.WITH); + this.state = 2861; + this.match(TSqlParser.IDENTITY); + this.state = 2862; + this.match(TSqlParser.EQUAL); + this.state = 2863; + localctx.identity_name = this.match(TSqlParser.STRING); + this.state = 2868; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2864; + this.match(TSqlParser.COMMA); + this.state = 2865; + this.match(TSqlParser.SECRET); + this.state = 2866; + this.match(TSqlParser.EQUAL); + this.state = 2867; + localctx.secret = this.match(TSqlParser.STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_credentialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_credential; + this.credential_name = null; // IdContext + this.identity_name = null; // Token + this.secret = null; // Token + this.cryptographic_provider_name = null; // IdContext + return this; +} + +Create_credentialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_credentialContext.prototype.constructor = Create_credentialContext; + +Create_credentialContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_credentialContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Create_credentialContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_credentialContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Create_credentialContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_credentialContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_credentialContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_credentialContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Create_credentialContext.prototype.SECRET = function() { + return this.getToken(TSqlParser.SECRET, 0); +}; + +Create_credentialContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_credentialContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Create_credentialContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_credentialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_credential(this); + } +}; + +Create_credentialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_credential(this); + } +}; + +Create_credentialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_credential(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_credentialContext = Create_credentialContext; + +TSqlParser.prototype.create_credential = function() { + + var localctx = new Create_credentialContext(this, this._ctx, this.state); + this.enterRule(localctx, 278, TSqlParser.RULE_create_credential); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2870; + this.match(TSqlParser.CREATE); + this.state = 2871; + this.match(TSqlParser.CREDENTIAL); + this.state = 2872; + localctx.credential_name = this.id(); + this.state = 2873; + this.match(TSqlParser.WITH); + this.state = 2874; + this.match(TSqlParser.IDENTITY); + this.state = 2875; + this.match(TSqlParser.EQUAL); + this.state = 2876; + localctx.identity_name = this.match(TSqlParser.STRING); + this.state = 2881; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2877; + this.match(TSqlParser.COMMA); + this.state = 2878; + this.match(TSqlParser.SECRET); + this.state = 2879; + this.match(TSqlParser.EQUAL); + this.state = 2880; + localctx.secret = this.match(TSqlParser.STRING); + } + + this.state = 2887; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 2883; + this.match(TSqlParser.FOR); + this.state = 2884; + this.match(TSqlParser.CRYPTOGRAPHIC); + this.state = 2885; + this.match(TSqlParser.PROVIDER); + this.state = 2886; + localctx.cryptographic_provider_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_cryptographic_providerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_cryptographic_provider; + this.provider_name = null; // IdContext + this.crypto_provider_ddl_file = null; // Token + return this; +} + +Alter_cryptographic_providerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_cryptographic_providerContext.prototype.constructor = Alter_cryptographic_providerContext; + +Alter_cryptographic_providerContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_cryptographic_providerContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Alter_cryptographic_providerContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Alter_cryptographic_providerContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_cryptographic_providerContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Alter_cryptographic_providerContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Alter_cryptographic_providerContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_cryptographic_providerContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_cryptographic_providerContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_cryptographic_providerContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_cryptographic_providerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_cryptographic_provider(this); + } +}; + +Alter_cryptographic_providerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_cryptographic_provider(this); + } +}; + +Alter_cryptographic_providerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_cryptographic_provider(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_cryptographic_providerContext = Alter_cryptographic_providerContext; + +TSqlParser.prototype.alter_cryptographic_provider = function() { + + var localctx = new Alter_cryptographic_providerContext(this, this._ctx, this.state); + this.enterRule(localctx, 280, TSqlParser.RULE_alter_cryptographic_provider); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2889; + this.match(TSqlParser.ALTER); + this.state = 2890; + this.match(TSqlParser.CRYPTOGRAPHIC); + this.state = 2891; + this.match(TSqlParser.PROVIDER); + this.state = 2892; + localctx.provider_name = this.id(); + this.state = 2897; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 2893; + this.match(TSqlParser.FROM); + this.state = 2894; + this.match(TSqlParser.FILE); + this.state = 2895; + this.match(TSqlParser.EQUAL); + this.state = 2896; + localctx.crypto_provider_ddl_file = this.match(TSqlParser.STRING); + } + + this.state = 2900; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,226,this._ctx); + if(la_===1) { + this.state = 2899; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_cryptographic_providerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_cryptographic_provider; + this.provider_name = null; // IdContext + this.path_of_DLL = null; // Token + return this; +} + +Create_cryptographic_providerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_cryptographic_providerContext.prototype.constructor = Create_cryptographic_providerContext; + +Create_cryptographic_providerContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_cryptographic_providerContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Create_cryptographic_providerContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_cryptographic_providerContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_cryptographic_providerContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Create_cryptographic_providerContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_cryptographic_providerContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_cryptographic_providerContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_cryptographic_providerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_cryptographic_provider(this); + } +}; + +Create_cryptographic_providerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_cryptographic_provider(this); + } +}; + +Create_cryptographic_providerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_cryptographic_provider(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_cryptographic_providerContext = Create_cryptographic_providerContext; + +TSqlParser.prototype.create_cryptographic_provider = function() { + + var localctx = new Create_cryptographic_providerContext(this, this._ctx, this.state); + this.enterRule(localctx, 282, TSqlParser.RULE_create_cryptographic_provider); + try { + this.enterOuterAlt(localctx, 1); + this.state = 2902; + this.match(TSqlParser.CREATE); + this.state = 2903; + this.match(TSqlParser.CRYPTOGRAPHIC); + this.state = 2904; + this.match(TSqlParser.PROVIDER); + this.state = 2905; + localctx.provider_name = this.id(); + this.state = 2906; + this.match(TSqlParser.FROM); + this.state = 2907; + this.match(TSqlParser.FILE); + this.state = 2908; + this.match(TSqlParser.EQUAL); + this.state = 2909; + localctx.path_of_DLL = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_event_notificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_event_notification; + this.event_notification_name = null; // IdContext + this.queue_name = null; // IdContext + this.event_type_or_group = null; // IdContext + this.broker_service = null; // Token + this.broker_service_specifier_or_current_database = null; // Token + return this; +} + +Create_event_notificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_event_notificationContext.prototype.constructor = Create_event_notificationContext; + +Create_event_notificationContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_event_notificationContext.prototype.EVENT = function() { + return this.getToken(TSqlParser.EVENT, 0); +}; + +Create_event_notificationContext.prototype.NOTIFICATION = function() { + return this.getToken(TSqlParser.NOTIFICATION, 0); +}; + +Create_event_notificationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_event_notificationContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_event_notificationContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Create_event_notificationContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Create_event_notificationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_event_notificationContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_event_notificationContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_event_notificationContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_event_notificationContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Create_event_notificationContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Create_event_notificationContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_event_notificationContext.prototype.FAN_IN = function() { + return this.getToken(TSqlParser.FAN_IN, 0); +}; + +Create_event_notificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_event_notification(this); + } +}; + +Create_event_notificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_event_notification(this); + } +}; + +Create_event_notificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_event_notification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_event_notificationContext = Create_event_notificationContext; + +TSqlParser.prototype.create_event_notification = function() { + + var localctx = new Create_event_notificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 284, TSqlParser.RULE_create_event_notification); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2911; + this.match(TSqlParser.CREATE); + this.state = 2912; + this.match(TSqlParser.EVENT); + this.state = 2913; + this.match(TSqlParser.NOTIFICATION); + this.state = 2914; + localctx.event_notification_name = this.id(); + this.state = 2915; + this.match(TSqlParser.ON); + this.state = 2920; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SERVER: + this.state = 2916; + this.match(TSqlParser.SERVER); + break; + case TSqlParser.DATABASE: + this.state = 2917; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.QUEUE: + this.state = 2918; + this.match(TSqlParser.QUEUE); + this.state = 2919; + localctx.queue_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 2924; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 2922; + this.match(TSqlParser.WITH); + this.state = 2923; + this.match(TSqlParser.FAN_IN); + } + + this.state = 2926; + this.match(TSqlParser.FOR); + this.state = 2931; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2928; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2927; + this.match(TSqlParser.COMMA); + } + + this.state = 2930; + localctx.event_type_or_group = this.id(); + this.state = 2933; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 2935; + this.match(TSqlParser.TO); + this.state = 2936; + this.match(TSqlParser.SERVICE); + this.state = 2937; + localctx.broker_service = this.match(TSqlParser.STRING); + this.state = 2938; + this.match(TSqlParser.COMMA); + this.state = 2939; + localctx.broker_service_specifier_or_current_database = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_event_sessionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_event_session; + this.event_session_name = null; // IdContext + this.event_module_guid = null; // IdContext + this.event_package_name = null; // IdContext + this.event_name = null; // IdContext + this.event_customizable_attributue = null; // IdContext + this.action_name = null; // IdContext + this.target_name = null; // IdContext + this.target_parameter_name = null; // IdContext + this.max_memory = null; // Token + this.max_dispatch_latency_seconds = null; // Token + this.max_event_size = null; // Token + return this; +} + +Create_or_alter_event_sessionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_event_sessionContext.prototype.constructor = Create_or_alter_event_sessionContext; + +Create_or_alter_event_sessionContext.prototype.EVENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EVENT); + } else { + return this.getToken(TSqlParser.EVENT, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.SESSION = function() { + return this.getToken(TSqlParser.SESSION, 0); +}; + +Create_or_alter_event_sessionContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_or_alter_event_sessionContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_event_sessionContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_or_alter_event_sessionContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DROP); + } else { + return this.getToken(TSqlParser.DROP, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.TARGET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TARGET); + } else { + return this.getToken(TSqlParser.TARGET, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_or_alter_event_sessionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.START = function() { + return this.getToken(TSqlParser.START, 0); +}; + +Create_or_alter_event_sessionContext.prototype.STOP = function() { + return this.getToken(TSqlParser.STOP, 0); +}; + +Create_or_alter_event_sessionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SET); + } else { + return this.getToken(TSqlParser.SET, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.MAX_MEMORY = function() { + return this.getToken(TSqlParser.MAX_MEMORY, 0); +}; + +Create_or_alter_event_sessionContext.prototype.EVENT_RETENTION_MODE = function() { + return this.getToken(TSqlParser.EVENT_RETENTION_MODE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.MAX_DISPATCH_LATENCY = function() { + return this.getToken(TSqlParser.MAX_DISPATCH_LATENCY, 0); +}; + +Create_or_alter_event_sessionContext.prototype.MAX_EVENT_SIZE = function() { + return this.getToken(TSqlParser.MAX_EVENT_SIZE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.MEMORY_PARTITION_MODE = function() { + return this.getToken(TSqlParser.MEMORY_PARTITION_MODE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.TRACK_CAUSALITY = function() { + return this.getToken(TSqlParser.TRACK_CAUSALITY, 0); +}; + +Create_or_alter_event_sessionContext.prototype.STARTUP_STATE = function() { + return this.getToken(TSqlParser.STARTUP_STATE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.KB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KB); + } else { + return this.getToken(TSqlParser.KB, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.MB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MB); + } else { + return this.getToken(TSqlParser.MB, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.ALLOW_SINGLE_EVENT_LOSS = function() { + return this.getToken(TSqlParser.ALLOW_SINGLE_EVENT_LOSS, 0); +}; + +Create_or_alter_event_sessionContext.prototype.ALLOW_MULTIPLE_EVENT_LOSS = function() { + return this.getToken(TSqlParser.ALLOW_MULTIPLE_EVENT_LOSS, 0); +}; + +Create_or_alter_event_sessionContext.prototype.NO_EVENT_LOSS = function() { + return this.getToken(TSqlParser.NO_EVENT_LOSS, 0); +}; + +Create_or_alter_event_sessionContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.PER_NODE = function() { + return this.getToken(TSqlParser.PER_NODE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.PER_CPU = function() { + return this.getToken(TSqlParser.PER_CPU, 0); +}; + +Create_or_alter_event_sessionContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.SECONDS = function() { + return this.getToken(TSqlParser.SECONDS, 0); +}; + +Create_or_alter_event_sessionContext.prototype.INFINITE = function() { + return this.getToken(TSqlParser.INFINITE, 0); +}; + +Create_or_alter_event_sessionContext.prototype.ACTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ACTION); + } else { + return this.getToken(TSqlParser.ACTION, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.WHERE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WHERE); + } else { + return this.getToken(TSqlParser.WHERE, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.event_session_predicate_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Event_session_predicate_expressionContext); + } else { + return this.getTypedRuleContext(Event_session_predicate_expressionContext,i); + } +}; + +Create_or_alter_event_sessionContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_or_alter_event_sessionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_event_session(this); + } +}; + +Create_or_alter_event_sessionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_event_session(this); + } +}; + +Create_or_alter_event_sessionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_event_session(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_event_sessionContext = Create_or_alter_event_sessionContext; + +TSqlParser.prototype.create_or_alter_event_session = function() { + + var localctx = new Create_or_alter_event_sessionContext(this, this._ctx, this.state); + this.enterRule(localctx, 286, TSqlParser.RULE_create_or_alter_event_session); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 2941; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALTER || _la===TSqlParser.CREATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2942; + this.match(TSqlParser.EVENT); + this.state = 2943; + this.match(TSqlParser.SESSION); + this.state = 2944; + localctx.event_session_name = this.id(); + this.state = 2945; + this.match(TSqlParser.ON); + this.state = 2946; + this.match(TSqlParser.SERVER); + this.state = 3014; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,242,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2948; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2947; + this.match(TSqlParser.COMMA); + } + + this.state = 2950; + this.match(TSqlParser.ADD); + this.state = 2951; + this.match(TSqlParser.EVENT); + + this.state = 2955; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,232,this._ctx); + if(la_===1) { + this.state = 2952; + localctx.event_module_guid = this.id(); + this.state = 2953; + this.match(TSqlParser.DOT); + + } + this.state = 2957; + localctx.event_package_name = this.id(); + this.state = 2958; + this.match(TSqlParser.DOT); + this.state = 2959; + localctx.event_name = this.id(); + this.state = 3009; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,241,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2961; + this.match(TSqlParser.LR_BRACKET); + this.state = 2975; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SET) { + this.state = 2962; + this.match(TSqlParser.SET); + this.state = 2972; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,234,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 2964; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2963; + this.match(TSqlParser.COMMA); + } + + this.state = 2966; + localctx.event_customizable_attributue = this.id(); + this.state = 2967; + this.match(TSqlParser.EQUAL); + this.state = 2968; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + this.state = 2974; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,234,this._ctx); + } + + } + + this.state = 2997; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2977; + this.match(TSqlParser.ACTION); + this.state = 2978; + this.match(TSqlParser.LR_BRACKET); + this.state = 2991; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 2980; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 2979; + this.match(TSqlParser.COMMA); + } + + this.state = 2985; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,237,this._ctx); + if(la_===1) { + this.state = 2982; + localctx.event_module_guid = this.id(); + this.state = 2983; + this.match(TSqlParser.DOT); + + } + this.state = 2987; + localctx.event_package_name = this.id(); + this.state = 2988; + this.match(TSqlParser.DOT); + this.state = 2989; + localctx.action_name = this.id(); + this.state = 2993; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 2995; + this.match(TSqlParser.RR_BRACKET); + this.state = 2999; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.ACTION); + this.state = 3003; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 3001; + this.match(TSqlParser.WHERE); + this.state = 3002; + this.event_session_predicate_expression(); + } + + this.state = 3005; + this.match(TSqlParser.RR_BRACKET); + } + this.state = 3011; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,241,this._ctx); + } + + } + this.state = 3016; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,242,this._ctx); + } + + this.state = 3033; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,245,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3018; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3017; + this.match(TSqlParser.COMMA); + } + + this.state = 3020; + this.match(TSqlParser.DROP); + this.state = 3021; + this.match(TSqlParser.EVENT); + this.state = 3025; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,244,this._ctx); + if(la_===1) { + this.state = 3022; + localctx.event_module_guid = this.id(); + this.state = 3023; + this.match(TSqlParser.DOT); + + } + this.state = 3027; + localctx.event_package_name = this.id(); + this.state = 3028; + this.match(TSqlParser.DOT); + this.state = 3029; + localctx.event_name = this.id(); + } + this.state = 3035; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,245,this._ctx); + } + + this.state = 3077; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.ADD) { + this.state = 3036; + this.match(TSqlParser.ADD); + this.state = 3037; + this.match(TSqlParser.TARGET); + this.state = 3041; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,246,this._ctx); + if(la_===1) { + this.state = 3038; + localctx.event_module_guid = this.id(); + this.state = 3039; + this.match(TSqlParser.DOT); + + } + this.state = 3043; + localctx.event_package_name = this.id(); + this.state = 3044; + this.match(TSqlParser.DOT); + this.state = 3045; + localctx.target_name = this.id(); + this.state = 3072; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,252,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3047; + this.match(TSqlParser.LR_BRACKET); + this.state = 3048; + this.match(TSqlParser.SET); + this.state = 3064; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3050; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3049; + this.match(TSqlParser.COMMA); + } + + this.state = 3052; + localctx.target_parameter_name = this.id(); + this.state = 3053; + this.match(TSqlParser.EQUAL); + this.state = 3062; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + case TSqlParser.LR_BRACKET: + this.state = 3055; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 3054; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 3057; + this.match(TSqlParser.DECIMAL); + this.state = 3059; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,249,this._ctx); + if(la_===1) { + this.state = 3058; + this.match(TSqlParser.RR_BRACKET); + + } + break; + case TSqlParser.STRING: + this.state = 3061; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3066; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 3068; + this.match(TSqlParser.RR_BRACKET); + } + this.state = 3074; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,252,this._ctx); + } + + this.state = 3079; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3093; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,255,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 3080; + this.match(TSqlParser.DROP); + this.state = 3081; + this.match(TSqlParser.TARGET); + this.state = 3085; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,254,this._ctx); + if(la_===1) { + this.state = 3082; + localctx.event_module_guid = this.id(); + this.state = 3083; + this.match(TSqlParser.DOT); + + } + this.state = 3087; + localctx.event_package_name = this.id(); + this.state = 3088; + this.match(TSqlParser.DOT); + this.state = 3089; + localctx.target_name = this.id(); + } + this.state = 3095; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,255,this._ctx); + } + + this.state = 3161; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,271,this._ctx); + if(la_===1) { + this.state = 3096; + this.match(TSqlParser.WITH); + this.state = 3097; + this.match(TSqlParser.LR_BRACKET); + this.state = 3105; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,257,this._ctx); + if(la_===1) { + this.state = 3099; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3098; + this.match(TSqlParser.COMMA); + } + + this.state = 3101; + this.match(TSqlParser.MAX_MEMORY); + this.state = 3102; + this.match(TSqlParser.EQUAL); + this.state = 3103; + localctx.max_memory = this.match(TSqlParser.DECIMAL); + this.state = 3104; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KB || _la===TSqlParser.MB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3113; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,259,this._ctx); + if(la_===1) { + this.state = 3108; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3107; + this.match(TSqlParser.COMMA); + } + + this.state = 3110; + this.match(TSqlParser.EVENT_RETENTION_MODE); + this.state = 3111; + this.match(TSqlParser.EQUAL); + this.state = 3112; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALLOW_MULTIPLE_EVENT_LOSS || _la===TSqlParser.ALLOW_SINGLE_EVENT_LOSS || _la===TSqlParser.NO_EVENT_LOSS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3125; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,262,this._ctx); + if(la_===1) { + this.state = 3116; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3115; + this.match(TSqlParser.COMMA); + } + + this.state = 3118; + this.match(TSqlParser.MAX_DISPATCH_LATENCY); + this.state = 3119; + this.match(TSqlParser.EQUAL); + this.state = 3123; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 3120; + localctx.max_dispatch_latency_seconds = this.match(TSqlParser.DECIMAL); + this.state = 3121; + this.match(TSqlParser.SECONDS); + break; + case TSqlParser.INFINITE: + this.state = 3122; + this.match(TSqlParser.INFINITE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 3134; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,264,this._ctx); + if(la_===1) { + this.state = 3128; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3127; + this.match(TSqlParser.COMMA); + } + + this.state = 3130; + this.match(TSqlParser.MAX_EVENT_SIZE); + this.state = 3131; + this.match(TSqlParser.EQUAL); + this.state = 3132; + localctx.max_event_size = this.match(TSqlParser.DECIMAL); + this.state = 3133; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KB || _la===TSqlParser.MB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3142; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,266,this._ctx); + if(la_===1) { + this.state = 3137; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3136; + this.match(TSqlParser.COMMA); + } + + this.state = 3139; + this.match(TSqlParser.MEMORY_PARTITION_MODE); + this.state = 3140; + this.match(TSqlParser.EQUAL); + this.state = 3141; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.PER_CPU || _la===TSqlParser.PER_NODE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3150; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,268,this._ctx); + if(la_===1) { + this.state = 3145; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3144; + this.match(TSqlParser.COMMA); + } + + this.state = 3147; + this.match(TSqlParser.TRACK_CAUSALITY); + this.state = 3148; + this.match(TSqlParser.EQUAL); + this.state = 3149; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3158; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.STARTUP_STATE || _la===TSqlParser.COMMA) { + this.state = 3153; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3152; + this.match(TSqlParser.COMMA); + } + + this.state = 3155; + this.match(TSqlParser.STARTUP_STATE); + this.state = 3156; + this.match(TSqlParser.EQUAL); + this.state = 3157; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3160; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 3166; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,272,this._ctx); + if(la_===1) { + this.state = 3163; + this.match(TSqlParser.STATE); + this.state = 3164; + this.match(TSqlParser.EQUAL); + this.state = 3165; + _la = this._input.LA(1); + if(!(_la===TSqlParser.START || _la===TSqlParser.STOP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Event_session_predicate_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_event_session_predicate_expression; + return this; +} + +Event_session_predicate_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Event_session_predicate_expressionContext.prototype.constructor = Event_session_predicate_expressionContext; + +Event_session_predicate_expressionContext.prototype.event_session_predicate_factor = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Event_session_predicate_factorContext); + } else { + return this.getTypedRuleContext(Event_session_predicate_factorContext,i); + } +}; + +Event_session_predicate_expressionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.event_session_predicate_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Event_session_predicate_expressionContext); + } else { + return this.getTypedRuleContext(Event_session_predicate_expressionContext,i); + } +}; + +Event_session_predicate_expressionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.NOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOT); + } else { + return this.getToken(TSqlParser.NOT, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AND); + } else { + return this.getToken(TSqlParser.AND, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.OR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OR); + } else { + return this.getToken(TSqlParser.OR, i); + } +}; + + +Event_session_predicate_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEvent_session_predicate_expression(this); + } +}; + +Event_session_predicate_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEvent_session_predicate_expression(this); + } +}; + +Event_session_predicate_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEvent_session_predicate_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Event_session_predicate_expressionContext = Event_session_predicate_expressionContext; + +TSqlParser.prototype.event_session_predicate_expression = function() { + + var localctx = new Event_session_predicate_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 288, TSqlParser.RULE_event_session_predicate_expression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3184; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3169; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3168; + this.match(TSqlParser.COMMA); + } + + this.state = 3172; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AND || _la===TSqlParser.OR) { + this.state = 3171; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AND || _la===TSqlParser.OR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3175; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 3174; + this.match(TSqlParser.NOT); + } + + this.state = 3182; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,276,this._ctx); + switch(la_) { + case 1: + this.state = 3177; + this.event_session_predicate_factor(); + break; + + case 2: + this.state = 3178; + this.match(TSqlParser.LR_BRACKET); + this.state = 3179; + this.event_session_predicate_expression(); + this.state = 3180; + this.match(TSqlParser.RR_BRACKET); + break; + + } + this.state = 3186; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.AND || _la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || ((((_la - 218)) & ~0x1f) == 0 && ((1 << (_la - 218)) & ((1 << (TSqlParser.NOT - 218)) | (1 << (TSqlParser.OFFSETS - 218)) | (1 << (TSqlParser.OR - 218)) | (1 << (TSqlParser.PAGE - 218)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)) | (1 << (TSqlParser.LR_BRACKET - 796)))) !== 0) || _la===TSqlParser.COMMA); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Event_session_predicate_factorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_event_session_predicate_factor; + return this; +} + +Event_session_predicate_factorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Event_session_predicate_factorContext.prototype.constructor = Event_session_predicate_factorContext; + +Event_session_predicate_factorContext.prototype.event_session_predicate_leaf = function() { + return this.getTypedRuleContext(Event_session_predicate_leafContext,0); +}; + +Event_session_predicate_factorContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Event_session_predicate_factorContext.prototype.event_session_predicate_expression = function() { + return this.getTypedRuleContext(Event_session_predicate_expressionContext,0); +}; + +Event_session_predicate_factorContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Event_session_predicate_factorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEvent_session_predicate_factor(this); + } +}; + +Event_session_predicate_factorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEvent_session_predicate_factor(this); + } +}; + +Event_session_predicate_factorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEvent_session_predicate_factor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Event_session_predicate_factorContext = Event_session_predicate_factorContext; + +TSqlParser.prototype.event_session_predicate_factor = function() { + + var localctx = new Event_session_predicate_factorContext(this, this._ctx, this.state); + this.enterRule(localctx, 290, TSqlParser.RULE_event_session_predicate_factor); + try { + this.state = 3193; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 3188; + this.event_session_predicate_leaf(); + break; + case TSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 3189; + this.match(TSqlParser.LR_BRACKET); + this.state = 3190; + this.event_session_predicate_expression(); + this.state = 3191; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Event_session_predicate_leafContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_event_session_predicate_leaf; + this.event_field_name = null; // IdContext + this.event_module_guid = null; // IdContext + this.event_package_name = null; // IdContext + this.predicate_source_name = null; // IdContext + this.predicate_compare_name = null; // IdContext + return this; +} + +Event_session_predicate_leafContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Event_session_predicate_leafContext.prototype.constructor = Event_session_predicate_leafContext; + +Event_session_predicate_leafContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Event_session_predicate_leafContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Event_session_predicate_leafContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Event_session_predicate_leafContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Event_session_predicate_leafContext.prototype.GREATER = function() { + return this.getToken(TSqlParser.GREATER, 0); +}; + +Event_session_predicate_leafContext.prototype.LESS = function() { + return this.getToken(TSqlParser.LESS, 0); +}; + +Event_session_predicate_leafContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Event_session_predicate_leafContext.prototype.EXCLAMATION = function() { + return this.getToken(TSqlParser.EXCLAMATION, 0); +}; + +Event_session_predicate_leafContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Event_session_predicate_leafContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Event_session_predicate_leafContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Event_session_predicate_leafContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEvent_session_predicate_leaf(this); + } +}; + +Event_session_predicate_leafContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEvent_session_predicate_leaf(this); + } +}; + +Event_session_predicate_leafContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEvent_session_predicate_leaf(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Event_session_predicate_leafContext = Event_session_predicate_leafContext; + +TSqlParser.prototype.event_session_predicate_leaf = function() { + + var localctx = new Event_session_predicate_leafContext(this, this._ctx, this.state); + this.enterRule(localctx, 292, TSqlParser.RULE_event_session_predicate_leaf); + var _la = 0; // Token type + try { + this.state = 3251; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,286,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3223; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,282,this._ctx); + switch(la_) { + case 1: + this.state = 3195; + localctx.event_field_name = this.id(); + break; + + case 2: + this.state = 3206; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,280,this._ctx); + switch(la_) { + case 1: + this.state = 3196; + localctx.event_field_name = this.id(); + break; + + case 2: + this.state = 3200; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,279,this._ctx); + if(la_===1) { + this.state = 3197; + localctx.event_module_guid = this.id(); + this.state = 3198; + this.match(TSqlParser.DOT); + + } + this.state = 3202; + localctx.event_package_name = this.id(); + this.state = 3203; + this.match(TSqlParser.DOT); + this.state = 3204; + localctx.predicate_source_name = this.id(); + break; + + } + this.state = 3219; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,281,this._ctx); + switch(la_) { + case 1: + this.state = 3208; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 3209; + this.match(TSqlParser.LESS); + this.state = 3210; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 3211; + this.match(TSqlParser.EXCLAMATION); + this.state = 3212; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 3213; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 3214; + this.match(TSqlParser.GREATER); + this.state = 3215; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 3216; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 3217; + this.match(TSqlParser.LESS); + this.state = 3218; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 3221; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3228; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,283,this._ctx); + if(la_===1) { + this.state = 3225; + localctx.event_module_guid = this.id(); + this.state = 3226; + this.match(TSqlParser.DOT); + + } + this.state = 3230; + localctx.event_package_name = this.id(); + this.state = 3231; + this.match(TSqlParser.DOT); + this.state = 3232; + localctx.predicate_compare_name = this.id(); + this.state = 3233; + this.match(TSqlParser.LR_BRACKET); + this.state = 3247; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,285,this._ctx); + switch(la_) { + case 1: + this.state = 3234; + localctx.event_field_name = this.id(); + break; + + case 2: + this.state = 3238; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,284,this._ctx); + if(la_===1) { + this.state = 3235; + localctx.event_module_guid = this.id(); + this.state = 3236; + this.match(TSqlParser.DOT); + + } + this.state = 3240; + localctx.event_package_name = this.id(); + this.state = 3241; + this.match(TSqlParser.DOT); + this.state = 3242; + localctx.predicate_source_name = this.id(); + this.state = 3244; + this.match(TSqlParser.COMMA); + this.state = 3245; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + this.state = 3249; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_external_data_sourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_external_data_source; + this.data_source_name = null; // IdContext + this.location = null; // Token + this.resource_manager_location = null; // Token + this.credential_name = null; // IdContext + return this; +} + +Alter_external_data_sourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_external_data_sourceContext.prototype.constructor = Alter_external_data_sourceContext; + +Alter_external_data_sourceContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_external_data_sourceContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Alter_external_data_sourceContext.prototype.DATA = function() { + return this.getToken(TSqlParser.DATA, 0); +}; + +Alter_external_data_sourceContext.prototype.SOURCE = function() { + return this.getToken(TSqlParser.SOURCE, 0); +}; + +Alter_external_data_sourceContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_external_data_sourceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_external_data_sourceContext.prototype.LOCATION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCATION); + } else { + return this.getToken(TSqlParser.LOCATION, i); + } +}; + + +Alter_external_data_sourceContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_external_data_sourceContext.prototype.RESOURCE_MANAGER_LOCATION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESOURCE_MANAGER_LOCATION); + } else { + return this.getToken(TSqlParser.RESOURCE_MANAGER_LOCATION, i); + } +}; + + +Alter_external_data_sourceContext.prototype.CREDENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CREDENTIAL); + } else { + return this.getToken(TSqlParser.CREDENTIAL, i); + } +}; + + +Alter_external_data_sourceContext.prototype.QUOTED_URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUOTED_URL); + } else { + return this.getToken(TSqlParser.QUOTED_URL, i); + } +}; + + +Alter_external_data_sourceContext.prototype.QUOTED_HOST_AND_PORT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUOTED_HOST_AND_PORT); + } else { + return this.getToken(TSqlParser.QUOTED_HOST_AND_PORT, i); + } +}; + + +Alter_external_data_sourceContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_external_data_sourceContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_external_data_sourceContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_external_data_sourceContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Alter_external_data_sourceContext.prototype.BLOB_STORAGE = function() { + return this.getToken(TSqlParser.BLOB_STORAGE, 0); +}; + +Alter_external_data_sourceContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_external_data_sourceContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_external_data_sourceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_external_data_source(this); + } +}; + +Alter_external_data_sourceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_external_data_source(this); + } +}; + +Alter_external_data_sourceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_external_data_source(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_external_data_sourceContext = Alter_external_data_sourceContext; + +TSqlParser.prototype.alter_external_data_source = function() { + + var localctx = new Alter_external_data_sourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 294, TSqlParser.RULE_alter_external_data_source); + var _la = 0; // Token type + try { + this.state = 3300; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,292,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 3253; + this.match(TSqlParser.ALTER); + this.state = 3254; + this.match(TSqlParser.EXTERNAL); + this.state = 3255; + this.match(TSqlParser.DATA); + this.state = 3256; + this.match(TSqlParser.SOURCE); + this.state = 3257; + localctx.data_source_name = this.id(); + this.state = 3258; + this.match(TSqlParser.SET); + this.state = 3274; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3274; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LOCATION: + this.state = 3259; + this.match(TSqlParser.LOCATION); + this.state = 3260; + this.match(TSqlParser.EQUAL); + this.state = 3261; + localctx.location = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.QUOTED_URL || _la===TSqlParser.QUOTED_HOST_AND_PORT)) { + localctx.location = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3263; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3262; + this.match(TSqlParser.COMMA); + } + + break; + case TSqlParser.RESOURCE_MANAGER_LOCATION: + this.state = 3265; + this.match(TSqlParser.RESOURCE_MANAGER_LOCATION); + this.state = 3266; + this.match(TSqlParser.EQUAL); + this.state = 3267; + localctx.resource_manager_location = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.QUOTED_URL || _la===TSqlParser.QUOTED_HOST_AND_PORT)) { + localctx.resource_manager_location = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3269; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3268; + this.match(TSqlParser.COMMA); + } + + break; + case TSqlParser.CREDENTIAL: + this.state = 3271; + this.match(TSqlParser.CREDENTIAL); + this.state = 3272; + this.match(TSqlParser.EQUAL); + this.state = 3273; + localctx.credential_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3276; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,290, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 3278; + this.match(TSqlParser.ALTER); + this.state = 3279; + this.match(TSqlParser.EXTERNAL); + this.state = 3280; + this.match(TSqlParser.DATA); + this.state = 3281; + this.match(TSqlParser.SOURCE); + this.state = 3282; + localctx.data_source_name = this.id(); + this.state = 3283; + this.match(TSqlParser.WITH); + this.state = 3284; + this.match(TSqlParser.LR_BRACKET); + this.state = 3285; + this.match(TSqlParser.TYPE); + this.state = 3286; + this.match(TSqlParser.EQUAL); + this.state = 3287; + this.match(TSqlParser.BLOB_STORAGE); + this.state = 3288; + this.match(TSqlParser.COMMA); + this.state = 3289; + this.match(TSqlParser.LOCATION); + this.state = 3290; + this.match(TSqlParser.EQUAL); + this.state = 3291; + localctx.location = this.match(TSqlParser.STRING); + this.state = 3296; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3292; + this.match(TSqlParser.COMMA); + this.state = 3293; + this.match(TSqlParser.CREDENTIAL); + this.state = 3294; + this.match(TSqlParser.EQUAL); + this.state = 3295; + localctx.credential_name = this.id(); + } + + this.state = 3298; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_external_libraryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_external_library; + this.library_name = null; // IdContext + this.owner_name = null; // IdContext + this.client_library = null; // Token + this.external_data_source_name = null; // IdContext + return this; +} + +Alter_external_libraryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_external_libraryContext.prototype.constructor = Alter_external_libraryContext; + +Alter_external_libraryContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_external_libraryContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Alter_external_libraryContext.prototype.LIBRARY = function() { + return this.getToken(TSqlParser.LIBRARY, 0); +}; + +Alter_external_libraryContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_external_libraryContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_external_libraryContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_external_libraryContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_external_libraryContext.prototype.CONTENT = function() { + return this.getToken(TSqlParser.CONTENT, 0); +}; + +Alter_external_libraryContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_external_libraryContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_external_libraryContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_external_libraryContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Alter_external_libraryContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Alter_external_libraryContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Alter_external_libraryContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_external_libraryContext.prototype.PLATFORM = function() { + return this.getToken(TSqlParser.PLATFORM, 0); +}; + +Alter_external_libraryContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_external_libraryContext.prototype.LANGUAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LANGUAGE); + } else { + return this.getToken(TSqlParser.LANGUAGE, i); + } +}; + + +Alter_external_libraryContext.prototype.DATA_SOURCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DATA_SOURCE); + } else { + return this.getToken(TSqlParser.DATA_SOURCE, i); + } +}; + + +Alter_external_libraryContext.prototype.R = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.R); + } else { + return this.getToken(TSqlParser.R, i); + } +}; + + +Alter_external_libraryContext.prototype.PYTHON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PYTHON); + } else { + return this.getToken(TSqlParser.PYTHON, i); + } +}; + + +Alter_external_libraryContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Alter_external_libraryContext.prototype.LINUX = function() { + return this.getToken(TSqlParser.LINUX, 0); +}; + +Alter_external_libraryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_external_library(this); + } +}; + +Alter_external_libraryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_external_library(this); + } +}; + +Alter_external_libraryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_external_library(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_external_libraryContext = Alter_external_libraryContext; + +TSqlParser.prototype.alter_external_library = function() { + + var localctx = new Alter_external_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 296, TSqlParser.RULE_alter_external_library); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3302; + this.match(TSqlParser.ALTER); + this.state = 3303; + this.match(TSqlParser.EXTERNAL); + this.state = 3304; + this.match(TSqlParser.LIBRARY); + this.state = 3305; + localctx.library_name = this.id(); + this.state = 3308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 3306; + this.match(TSqlParser.AUTHORIZATION); + this.state = 3307; + localctx.owner_name = this.id(); + } + + this.state = 3310; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.SET)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + this.state = 3311; + this.match(TSqlParser.LR_BRACKET); + this.state = 3312; + this.match(TSqlParser.CONTENT); + this.state = 3313; + this.match(TSqlParser.EQUAL); + this.state = 3317; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 3314; + localctx.client_library = this.match(TSqlParser.STRING); + break; + case TSqlParser.BINARY: + this.state = 3315; + this.match(TSqlParser.BINARY); + break; + case TSqlParser.NONE: + this.state = 3316; + this.match(TSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + this.state = 3319; + this.match(TSqlParser.COMMA); + this.state = 3320; + this.match(TSqlParser.PLATFORM); + this.state = 3321; + this.match(TSqlParser.EQUAL); + this.state = 3323; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LINUX || _la===TSqlParser.WINDOWS) { + this.state = 3322; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LINUX || _la===TSqlParser.WINDOWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3325; + this.match(TSqlParser.RR_BRACKET); + this.state = 3327; + this.match(TSqlParser.WITH); + this.state = 3337; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3337; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LANGUAGE: + case TSqlParser.COMMA: + this.state = 3329; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3328; + this.match(TSqlParser.COMMA); + } + + this.state = 3331; + this.match(TSqlParser.LANGUAGE); + this.state = 3332; + this.match(TSqlParser.EQUAL); + this.state = 3333; + _la = this._input.LA(1); + if(!(_la===TSqlParser.PYTHON || _la===TSqlParser.R)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DATA_SOURCE: + this.state = 3334; + this.match(TSqlParser.DATA_SOURCE); + this.state = 3335; + this.match(TSqlParser.EQUAL); + this.state = 3336; + localctx.external_data_source_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3339; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DATA_SOURCE || _la===TSqlParser.LANGUAGE || _la===TSqlParser.COMMA); + this.state = 3341; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_external_libraryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_external_library; + this.library_name = null; // IdContext + this.owner_name = null; // IdContext + this.client_library = null; // Token + this.external_data_source_name = null; // IdContext + return this; +} + +Create_external_libraryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_external_libraryContext.prototype.constructor = Create_external_libraryContext; + +Create_external_libraryContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_external_libraryContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_external_libraryContext.prototype.LIBRARY = function() { + return this.getToken(TSqlParser.LIBRARY, 0); +}; + +Create_external_libraryContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_external_libraryContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_external_libraryContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_external_libraryContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_external_libraryContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_external_libraryContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Create_external_libraryContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Create_external_libraryContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_external_libraryContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_external_libraryContext.prototype.CONTENT = function() { + return this.getToken(TSqlParser.CONTENT, 0); +}; + +Create_external_libraryContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_external_libraryContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_external_libraryContext.prototype.PLATFORM = function() { + return this.getToken(TSqlParser.PLATFORM, 0); +}; + +Create_external_libraryContext.prototype.LANGUAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LANGUAGE); + } else { + return this.getToken(TSqlParser.LANGUAGE, i); + } +}; + + +Create_external_libraryContext.prototype.DATA_SOURCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DATA_SOURCE); + } else { + return this.getToken(TSqlParser.DATA_SOURCE, i); + } +}; + + +Create_external_libraryContext.prototype.R = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.R); + } else { + return this.getToken(TSqlParser.R, i); + } +}; + + +Create_external_libraryContext.prototype.PYTHON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PYTHON); + } else { + return this.getToken(TSqlParser.PYTHON, i); + } +}; + + +Create_external_libraryContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Create_external_libraryContext.prototype.LINUX = function() { + return this.getToken(TSqlParser.LINUX, 0); +}; + +Create_external_libraryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_external_library(this); + } +}; + +Create_external_libraryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_external_library(this); + } +}; + +Create_external_libraryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_external_library(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_external_libraryContext = Create_external_libraryContext; + +TSqlParser.prototype.create_external_library = function() { + + var localctx = new Create_external_libraryContext(this, this._ctx, this.state); + this.enterRule(localctx, 298, TSqlParser.RULE_create_external_library); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3343; + this.match(TSqlParser.CREATE); + this.state = 3344; + this.match(TSqlParser.EXTERNAL); + this.state = 3345; + this.match(TSqlParser.LIBRARY); + this.state = 3346; + localctx.library_name = this.id(); + this.state = 3349; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 3347; + this.match(TSqlParser.AUTHORIZATION); + this.state = 3348; + localctx.owner_name = this.id(); + } + + this.state = 3351; + this.match(TSqlParser.FROM); + + this.state = 3353; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3352; + this.match(TSqlParser.COMMA); + } + + this.state = 3356; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 3355; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 3360; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTENT) { + this.state = 3358; + this.match(TSqlParser.CONTENT); + this.state = 3359; + this.match(TSqlParser.EQUAL); + } + + this.state = 3365; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 3362; + localctx.client_library = this.match(TSqlParser.STRING); + break; + case TSqlParser.BINARY: + this.state = 3363; + this.match(TSqlParser.BINARY); + break; + case TSqlParser.NONE: + this.state = 3364; + this.match(TSqlParser.NONE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3374; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3367; + this.match(TSqlParser.COMMA); + this.state = 3368; + this.match(TSqlParser.PLATFORM); + this.state = 3369; + this.match(TSqlParser.EQUAL); + this.state = 3371; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LINUX || _la===TSqlParser.WINDOWS) { + this.state = 3370; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LINUX || _la===TSqlParser.WINDOWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3373; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 3391; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,309,this._ctx); + if(la_===1) { + this.state = 3376; + this.match(TSqlParser.WITH); + this.state = 3386; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 3386; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LANGUAGE: + case TSqlParser.COMMA: + this.state = 3378; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3377; + this.match(TSqlParser.COMMA); + } + + this.state = 3380; + this.match(TSqlParser.LANGUAGE); + this.state = 3381; + this.match(TSqlParser.EQUAL); + this.state = 3382; + _la = this._input.LA(1); + if(!(_la===TSqlParser.PYTHON || _la===TSqlParser.R)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DATA_SOURCE: + this.state = 3383; + this.match(TSqlParser.DATA_SOURCE); + this.state = 3384; + this.match(TSqlParser.EQUAL); + this.state = 3385; + localctx.external_data_source_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3388; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DATA_SOURCE || _la===TSqlParser.LANGUAGE || _la===TSqlParser.COMMA); + this.state = 3390; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_external_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_external_resource_pool; + this.pool_name = null; // IdContext + this.max_cpu_percent = null; // Token + this.max_memory_percent = null; // Token + this.max_processes = null; // Token + return this; +} + +Alter_external_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_external_resource_poolContext.prototype.constructor = Alter_external_resource_poolContext; + +Alter_external_resource_poolContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_external_resource_poolContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Alter_external_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Alter_external_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Alter_external_resource_poolContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_external_resource_poolContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_external_resource_poolContext.prototype.MAX_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MAX_CPU_PERCENT, 0); +}; + +Alter_external_resource_poolContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_external_resource_poolContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_external_resource_poolContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_external_resource_poolContext.prototype.DEFAULT_DOUBLE_QUOTE = function() { + return this.getToken(TSqlParser.DEFAULT_DOUBLE_QUOTE, 0); +}; + +Alter_external_resource_poolContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Alter_external_resource_poolContext.prototype.CPU = function() { + return this.getToken(TSqlParser.CPU, 0); +}; + +Alter_external_resource_poolContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Alter_external_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_external_resource_poolContext.prototype.MAX_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MAX_MEMORY_PERCENT, 0); +}; + +Alter_external_resource_poolContext.prototype.MAX_PROCESSES = function() { + return this.getToken(TSqlParser.MAX_PROCESSES, 0); +}; + +Alter_external_resource_poolContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Alter_external_resource_poolContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_external_resource_poolContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Alter_external_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_external_resource_pool(this); + } +}; + +Alter_external_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_external_resource_pool(this); + } +}; + +Alter_external_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_external_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_external_resource_poolContext = Alter_external_resource_poolContext; + +TSqlParser.prototype.alter_external_resource_pool = function() { + + var localctx = new Alter_external_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 300, TSqlParser.RULE_alter_external_resource_pool); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3393; + this.match(TSqlParser.ALTER); + this.state = 3394; + this.match(TSqlParser.EXTERNAL); + this.state = 3395; + this.match(TSqlParser.RESOURCE); + this.state = 3396; + this.match(TSqlParser.POOL); + this.state = 3399; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,310,this._ctx); + switch(la_) { + case 1: + this.state = 3397; + localctx.pool_name = this.id(); + break; + + case 2: + this.state = 3398; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + break; + + } + this.state = 3401; + this.match(TSqlParser.WITH); + this.state = 3402; + this.match(TSqlParser.LR_BRACKET); + this.state = 3403; + this.match(TSqlParser.MAX_CPU_PERCENT); + this.state = 3404; + this.match(TSqlParser.EQUAL); + this.state = 3405; + localctx.max_cpu_percent = this.match(TSqlParser.DECIMAL); + this.state = 3443; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AFFINITY: + case TSqlParser.COMMA: + this.state = 3407; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3406; + this.match(TSqlParser.COMMA); + } + + this.state = 3409; + this.match(TSqlParser.AFFINITY); + this.state = 3410; + this.match(TSqlParser.CPU); + this.state = 3411; + this.match(TSqlParser.EQUAL); + this.state = 3425; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO: + this.state = 3412; + this.match(TSqlParser.AUTO); + break; + case TSqlParser.DECIMAL: + case TSqlParser.COMMA: + this.state = 3421; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3421; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,313,this._ctx); + switch(la_) { + case 1: + this.state = 3414; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3413; + this.match(TSqlParser.COMMA); + } + + this.state = 3416; + this.match(TSqlParser.DECIMAL); + this.state = 3417; + this.match(TSqlParser.TO); + this.state = 3418; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 3419; + this.match(TSqlParser.COMMA); + this.state = 3420; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3423; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,314, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NUMANODE: + this.state = 3427; + this.match(TSqlParser.NUMANODE); + this.state = 3428; + this.match(TSqlParser.EQUAL); + this.state = 3439; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3439; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,318,this._ctx); + switch(la_) { + case 1: + this.state = 3430; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3429; + this.match(TSqlParser.COMMA); + } + + this.state = 3432; + this.match(TSqlParser.DECIMAL); + this.state = 3433; + this.match(TSqlParser.TO); + this.state = 3434; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 3436; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3435; + this.match(TSqlParser.COMMA); + } + + this.state = 3438; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3441; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,319, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3451; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,322,this._ctx); + if(la_===1) { + this.state = 3446; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3445; + this.match(TSqlParser.COMMA); + } + + this.state = 3448; + this.match(TSqlParser.MAX_MEMORY_PERCENT); + this.state = 3449; + this.match(TSqlParser.EQUAL); + this.state = 3450; + localctx.max_memory_percent = this.match(TSqlParser.DECIMAL); + + } + this.state = 3459; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAX_PROCESSES || _la===TSqlParser.COMMA) { + this.state = 3454; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3453; + this.match(TSqlParser.COMMA); + } + + this.state = 3456; + this.match(TSqlParser.MAX_PROCESSES); + this.state = 3457; + this.match(TSqlParser.EQUAL); + this.state = 3458; + localctx.max_processes = this.match(TSqlParser.DECIMAL); + } + + this.state = 3461; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_external_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_external_resource_pool; + this.pool_name = null; // IdContext + this.max_cpu_percent = null; // Token + this.max_memory_percent = null; // Token + this.max_processes = null; // Token + return this; +} + +Create_external_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_external_resource_poolContext.prototype.constructor = Create_external_resource_poolContext; + +Create_external_resource_poolContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_external_resource_poolContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_external_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Create_external_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Create_external_resource_poolContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_external_resource_poolContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_external_resource_poolContext.prototype.MAX_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MAX_CPU_PERCENT, 0); +}; + +Create_external_resource_poolContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_external_resource_poolContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_external_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_external_resource_poolContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_external_resource_poolContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Create_external_resource_poolContext.prototype.CPU = function() { + return this.getToken(TSqlParser.CPU, 0); +}; + +Create_external_resource_poolContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Create_external_resource_poolContext.prototype.MAX_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MAX_MEMORY_PERCENT, 0); +}; + +Create_external_resource_poolContext.prototype.MAX_PROCESSES = function() { + return this.getToken(TSqlParser.MAX_PROCESSES, 0); +}; + +Create_external_resource_poolContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Create_external_resource_poolContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_external_resource_poolContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Create_external_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_external_resource_pool(this); + } +}; + +Create_external_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_external_resource_pool(this); + } +}; + +Create_external_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_external_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_external_resource_poolContext = Create_external_resource_poolContext; + +TSqlParser.prototype.create_external_resource_pool = function() { + + var localctx = new Create_external_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 302, TSqlParser.RULE_create_external_resource_pool); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3463; + this.match(TSqlParser.CREATE); + this.state = 3464; + this.match(TSqlParser.EXTERNAL); + this.state = 3465; + this.match(TSqlParser.RESOURCE); + this.state = 3466; + this.match(TSqlParser.POOL); + this.state = 3467; + localctx.pool_name = this.id(); + this.state = 3468; + this.match(TSqlParser.WITH); + this.state = 3469; + this.match(TSqlParser.LR_BRACKET); + this.state = 3470; + this.match(TSqlParser.MAX_CPU_PERCENT); + this.state = 3471; + this.match(TSqlParser.EQUAL); + this.state = 3472; + localctx.max_cpu_percent = this.match(TSqlParser.DECIMAL); + this.state = 3510; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AFFINITY: + case TSqlParser.COMMA: + this.state = 3474; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3473; + this.match(TSqlParser.COMMA); + } + + this.state = 3476; + this.match(TSqlParser.AFFINITY); + this.state = 3477; + this.match(TSqlParser.CPU); + this.state = 3478; + this.match(TSqlParser.EQUAL); + this.state = 3492; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO: + this.state = 3479; + this.match(TSqlParser.AUTO); + break; + case TSqlParser.DECIMAL: + case TSqlParser.COMMA: + this.state = 3488; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3488; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,327,this._ctx); + switch(la_) { + case 1: + this.state = 3481; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3480; + this.match(TSqlParser.COMMA); + } + + this.state = 3483; + this.match(TSqlParser.DECIMAL); + this.state = 3484; + this.match(TSqlParser.TO); + this.state = 3485; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 3486; + this.match(TSqlParser.COMMA); + this.state = 3487; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3490; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,328, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NUMANODE: + this.state = 3494; + this.match(TSqlParser.NUMANODE); + this.state = 3495; + this.match(TSqlParser.EQUAL); + this.state = 3506; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 3506; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,332,this._ctx); + switch(la_) { + case 1: + this.state = 3497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3496; + this.match(TSqlParser.COMMA); + } + + this.state = 3499; + this.match(TSqlParser.DECIMAL); + this.state = 3500; + this.match(TSqlParser.TO); + this.state = 3501; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 3503; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3502; + this.match(TSqlParser.COMMA); + } + + this.state = 3505; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3508; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,333, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3518; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,336,this._ctx); + if(la_===1) { + this.state = 3513; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3512; + this.match(TSqlParser.COMMA); + } + + this.state = 3515; + this.match(TSqlParser.MAX_MEMORY_PERCENT); + this.state = 3516; + this.match(TSqlParser.EQUAL); + this.state = 3517; + localctx.max_memory_percent = this.match(TSqlParser.DECIMAL); + + } + this.state = 3526; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAX_PROCESSES || _la===TSqlParser.COMMA) { + this.state = 3521; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3520; + this.match(TSqlParser.COMMA); + } + + this.state = 3523; + this.match(TSqlParser.MAX_PROCESSES); + this.state = 3524; + this.match(TSqlParser.EQUAL); + this.state = 3525; + localctx.max_processes = this.match(TSqlParser.DECIMAL); + } + + this.state = 3528; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_fulltext_catalogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_fulltext_catalog; + this.catalog_name = null; // IdContext + return this; +} + +Alter_fulltext_catalogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_fulltext_catalogContext.prototype.constructor = Alter_fulltext_catalogContext; + +Alter_fulltext_catalogContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_fulltext_catalogContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Alter_fulltext_catalogContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Alter_fulltext_catalogContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_fulltext_catalogContext.prototype.REBUILD = function() { + return this.getToken(TSqlParser.REBUILD, 0); +}; + +Alter_fulltext_catalogContext.prototype.REORGANIZE = function() { + return this.getToken(TSqlParser.REORGANIZE, 0); +}; + +Alter_fulltext_catalogContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Alter_fulltext_catalogContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Alter_fulltext_catalogContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_fulltext_catalogContext.prototype.ACCENT_SENSITIVITY = function() { + return this.getToken(TSqlParser.ACCENT_SENSITIVITY, 0); +}; + +Alter_fulltext_catalogContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_fulltext_catalogContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_fulltext_catalogContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_fulltext_catalogContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_fulltext_catalog(this); + } +}; + +Alter_fulltext_catalogContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_fulltext_catalog(this); + } +}; + +Alter_fulltext_catalogContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_fulltext_catalog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_fulltext_catalogContext = Alter_fulltext_catalogContext; + +TSqlParser.prototype.alter_fulltext_catalog = function() { + + var localctx = new Alter_fulltext_catalogContext(this, this._ctx, this.state); + this.enterRule(localctx, 304, TSqlParser.RULE_alter_fulltext_catalog); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3530; + this.match(TSqlParser.ALTER); + this.state = 3531; + this.match(TSqlParser.FULLTEXT); + this.state = 3532; + this.match(TSqlParser.CATALOG); + this.state = 3533; + localctx.catalog_name = this.id(); + this.state = 3544; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REBUILD: + this.state = 3534; + this.match(TSqlParser.REBUILD); + this.state = 3539; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,339,this._ctx); + if(la_===1) { + this.state = 3535; + this.match(TSqlParser.WITH); + this.state = 3536; + this.match(TSqlParser.ACCENT_SENSITIVITY); + this.state = 3537; + this.match(TSqlParser.EQUAL); + this.state = 3538; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case TSqlParser.REORGANIZE: + this.state = 3541; + this.match(TSqlParser.REORGANIZE); + break; + case TSqlParser.AS: + this.state = 3542; + this.match(TSqlParser.AS); + this.state = 3543; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_fulltext_catalogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_fulltext_catalog; + this.catalog_name = null; // IdContext + this.filegroup = null; // IdContext + this.rootpath = null; // Token + this.owner_name = null; // IdContext + return this; +} + +Create_fulltext_catalogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_fulltext_catalogContext.prototype.constructor = Create_fulltext_catalogContext; + +Create_fulltext_catalogContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_fulltext_catalogContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Create_fulltext_catalogContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Create_fulltext_catalogContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_fulltext_catalogContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_fulltext_catalogContext.prototype.FILEGROUP = function() { + return this.getToken(TSqlParser.FILEGROUP, 0); +}; + +Create_fulltext_catalogContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +Create_fulltext_catalogContext.prototype.PATH = function() { + return this.getToken(TSqlParser.PATH, 0); +}; + +Create_fulltext_catalogContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_fulltext_catalogContext.prototype.ACCENT_SENSITIVITY = function() { + return this.getToken(TSqlParser.ACCENT_SENSITIVITY, 0); +}; + +Create_fulltext_catalogContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_fulltext_catalogContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_fulltext_catalogContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Create_fulltext_catalogContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_fulltext_catalogContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_fulltext_catalogContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_fulltext_catalogContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_fulltext_catalog(this); + } +}; + +Create_fulltext_catalogContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_fulltext_catalog(this); + } +}; + +Create_fulltext_catalogContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_fulltext_catalog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_fulltext_catalogContext = Create_fulltext_catalogContext; + +TSqlParser.prototype.create_fulltext_catalog = function() { + + var localctx = new Create_fulltext_catalogContext(this, this._ctx, this.state); + this.enterRule(localctx, 306, TSqlParser.RULE_create_fulltext_catalog); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3546; + this.match(TSqlParser.CREATE); + this.state = 3547; + this.match(TSqlParser.FULLTEXT); + this.state = 3548; + this.match(TSqlParser.CATALOG); + this.state = 3549; + localctx.catalog_name = this.id(); + this.state = 3553; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 3550; + this.match(TSqlParser.ON); + this.state = 3551; + this.match(TSqlParser.FILEGROUP); + this.state = 3552; + localctx.filegroup = this.id(); + } + + this.state = 3558; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IN) { + this.state = 3555; + this.match(TSqlParser.IN); + this.state = 3556; + this.match(TSqlParser.PATH); + this.state = 3557; + localctx.rootpath = this.match(TSqlParser.STRING); + } + + this.state = 3564; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,343,this._ctx); + if(la_===1) { + this.state = 3560; + this.match(TSqlParser.WITH); + this.state = 3561; + this.match(TSqlParser.ACCENT_SENSITIVITY); + this.state = 3562; + this.match(TSqlParser.EQUAL); + this.state = 3563; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3568; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 3566; + this.match(TSqlParser.AS); + this.state = 3567; + this.match(TSqlParser.DEFAULT); + } + + this.state = 3572; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 3570; + this.match(TSqlParser.AUTHORIZATION); + this.state = 3571; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_fulltext_stoplistContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_fulltext_stoplist; + this.stoplist_name = null; // IdContext + this.stopword = null; // Token + return this; +} + +Alter_fulltext_stoplistContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_fulltext_stoplistContext.prototype.constructor = Alter_fulltext_stoplistContext; + +Alter_fulltext_stoplistContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_fulltext_stoplistContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Alter_fulltext_stoplistContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Alter_fulltext_stoplistContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_fulltext_stoplistContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_fulltext_stoplistContext.prototype.LANGUAGE = function() { + return this.getToken(TSqlParser.LANGUAGE, 0); +}; + +Alter_fulltext_stoplistContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_fulltext_stoplistContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_fulltext_stoplistContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Alter_fulltext_stoplistContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Alter_fulltext_stoplistContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Alter_fulltext_stoplistContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_fulltext_stoplist(this); + } +}; + +Alter_fulltext_stoplistContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_fulltext_stoplist(this); + } +}; + +Alter_fulltext_stoplistContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_fulltext_stoplist(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_fulltext_stoplistContext = Alter_fulltext_stoplistContext; + +TSqlParser.prototype.alter_fulltext_stoplist = function() { + + var localctx = new Alter_fulltext_stoplistContext(this, this._ctx, this.state); + this.enterRule(localctx, 308, TSqlParser.RULE_alter_fulltext_stoplist); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3574; + this.match(TSqlParser.ALTER); + this.state = 3575; + this.match(TSqlParser.FULLTEXT); + this.state = 3576; + this.match(TSqlParser.STOPLIST); + this.state = 3577; + localctx.stoplist_name = this.id(); + this.state = 3591; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ADD: + this.state = 3578; + this.match(TSqlParser.ADD); + this.state = 3579; + localctx.stopword = this.match(TSqlParser.STRING); + this.state = 3580; + this.match(TSqlParser.LANGUAGE); + this.state = 3581; + _la = this._input.LA(1); + if(!(((((_la - 800)) & ~0x1f) == 0 && ((1 << (_la - 800)) & ((1 << (TSqlParser.DECIMAL - 800)) | (1 << (TSqlParser.STRING - 800)) | (1 << (TSqlParser.BINARY - 800)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DROP: + this.state = 3582; + this.match(TSqlParser.DROP); + this.state = 3589; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,346,this._ctx); + switch(la_) { + case 1: + this.state = 3583; + localctx.stopword = this.match(TSqlParser.STRING); + this.state = 3584; + this.match(TSqlParser.LANGUAGE); + this.state = 3585; + _la = this._input.LA(1); + if(!(((((_la - 800)) & ~0x1f) == 0 && ((1 << (_la - 800)) & ((1 << (TSqlParser.DECIMAL - 800)) | (1 << (TSqlParser.STRING - 800)) | (1 << (TSqlParser.BINARY - 800)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 3586; + this.match(TSqlParser.ALL); + this.state = 3587; + _la = this._input.LA(1); + if(!(((((_la - 800)) & ~0x1f) == 0 && ((1 << (_la - 800)) & ((1 << (TSqlParser.DECIMAL - 800)) | (1 << (TSqlParser.STRING - 800)) | (1 << (TSqlParser.BINARY - 800)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + this.state = 3588; + this.match(TSqlParser.ALL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_fulltext_stoplistContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_fulltext_stoplist; + this.stoplist_name = null; // IdContext + this.database_name = null; // IdContext + this.source_stoplist_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_fulltext_stoplistContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_fulltext_stoplistContext.prototype.constructor = Create_fulltext_stoplistContext; + +Create_fulltext_stoplistContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_fulltext_stoplistContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Create_fulltext_stoplistContext.prototype.STOPLIST = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STOPLIST); + } else { + return this.getToken(TSqlParser.STOPLIST, i); + } +}; + + +Create_fulltext_stoplistContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_fulltext_stoplistContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_fulltext_stoplistContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_fulltext_stoplistContext.prototype.SYSTEM = function() { + return this.getToken(TSqlParser.SYSTEM, 0); +}; + +Create_fulltext_stoplistContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_fulltext_stoplistContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_fulltext_stoplist(this); + } +}; + +Create_fulltext_stoplistContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_fulltext_stoplist(this); + } +}; + +Create_fulltext_stoplistContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_fulltext_stoplist(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_fulltext_stoplistContext = Create_fulltext_stoplistContext; + +TSqlParser.prototype.create_fulltext_stoplist = function() { + + var localctx = new Create_fulltext_stoplistContext(this, this._ctx, this.state); + this.enterRule(localctx, 310, TSqlParser.RULE_create_fulltext_stoplist); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3593; + this.match(TSqlParser.CREATE); + this.state = 3594; + this.match(TSqlParser.FULLTEXT); + this.state = 3595; + this.match(TSqlParser.STOPLIST); + this.state = 3596; + localctx.stoplist_name = this.id(); + this.state = 3608; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 3597; + this.match(TSqlParser.FROM); + this.state = 3606; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,349,this._ctx); + switch(la_) { + case 1: + this.state = 3601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,348,this._ctx); + if(la_===1) { + this.state = 3598; + localctx.database_name = this.id(); + this.state = 3599; + this.match(TSqlParser.DOT); + + } + this.state = 3603; + localctx.source_stoplist_name = this.id(); + break; + + case 2: + this.state = 3604; + this.match(TSqlParser.SYSTEM); + this.state = 3605; + this.match(TSqlParser.STOPLIST); + break; + + } + } + + this.state = 3612; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 3610; + this.match(TSqlParser.AUTHORIZATION); + this.state = 3611; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_login_sql_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_login_sql_server; + this.login_name = null; // IdContext + this.password = null; // Token + this.password_hash = null; // Token + this.old_password = null; // Token + this.default_database = null; // IdContext + this.default_laguage = null; // IdContext + this.credential_name = null; // IdContext + return this; +} + +Alter_login_sql_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_login_sql_serverContext.prototype.constructor = Alter_login_sql_serverContext; + +Alter_login_sql_serverContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_login_sql_serverContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Alter_login_sql_serverContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_login_sql_serverContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_login_sql_serverContext.prototype.CREDENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CREDENTIAL); + } else { + return this.getToken(TSqlParser.CREDENTIAL, i); + } +}; + + +Alter_login_sql_serverContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_login_sql_serverContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_login_sql_serverContext.prototype.OLD_PASSWORD = function() { + return this.getToken(TSqlParser.OLD_PASSWORD, 0); +}; + +Alter_login_sql_serverContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_login_sql_serverContext.prototype.DEFAULT_DATABASE = function() { + return this.getToken(TSqlParser.DEFAULT_DATABASE, 0); +}; + +Alter_login_sql_serverContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +Alter_login_sql_serverContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_login_sql_serverContext.prototype.CHECK_POLICY = function() { + return this.getToken(TSqlParser.CHECK_POLICY, 0); +}; + +Alter_login_sql_serverContext.prototype.CHECK_EXPIRATION = function() { + return this.getToken(TSqlParser.CHECK_EXPIRATION, 0); +}; + +Alter_login_sql_serverContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +Alter_login_sql_serverContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_login_sql_serverContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_login_sql_serverContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_login_sql_serverContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Alter_login_sql_serverContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Alter_login_sql_serverContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_login_sql_serverContext.prototype.HASHED = function() { + return this.getToken(TSqlParser.HASHED, 0); +}; + +Alter_login_sql_serverContext.prototype.MUST_CHANGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MUST_CHANGE); + } else { + return this.getToken(TSqlParser.MUST_CHANGE, i); + } +}; + + +Alter_login_sql_serverContext.prototype.UNLOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLOCK); + } else { + return this.getToken(TSqlParser.UNLOCK, i); + } +}; + + +Alter_login_sql_serverContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Alter_login_sql_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_login_sql_server(this); + } +}; + +Alter_login_sql_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_login_sql_server(this); + } +}; + +Alter_login_sql_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_login_sql_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_login_sql_serverContext = Alter_login_sql_serverContext; + +TSqlParser.prototype.alter_login_sql_server = function() { + + var localctx = new Alter_login_sql_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 312, TSqlParser.RULE_alter_login_sql_server); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3614; + this.match(TSqlParser.ALTER); + this.state = 3615; + this.match(TSqlParser.LOGIN); + this.state = 3616; + localctx.login_name = this.id(); + this.state = 3684; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,365,this._ctx); + switch(la_) { + case 1: + this.state = 3618; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,352,this._ctx); + if(la_===1) { + this.state = 3617; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 2: + this.state = 3620; + this.match(TSqlParser.WITH); + this.state = 3634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PASSWORD) { + this.state = 3621; + this.match(TSqlParser.PASSWORD); + this.state = 3622; + this.match(TSqlParser.EQUAL); + this.state = 3626; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 3623; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.BINARY: + this.state = 3624; + localctx.password_hash = this.match(TSqlParser.BINARY); + this.state = 3625; + this.match(TSqlParser.HASHED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3631; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK) { + this.state = 3628; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3633; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 3645; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OLD_PASSWORD) { + this.state = 3636; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 3637; + this.match(TSqlParser.EQUAL); + this.state = 3638; + localctx.old_password = this.match(TSqlParser.STRING); + this.state = 3642; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK) { + this.state = 3639; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3644; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 3650; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DEFAULT_DATABASE) { + this.state = 3647; + this.match(TSqlParser.DEFAULT_DATABASE); + this.state = 3648; + this.match(TSqlParser.EQUAL); + this.state = 3649; + localctx.default_database = this.id(); + } + + this.state = 3655; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,359,this._ctx); + if(la_===1) { + this.state = 3652; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 3653; + this.match(TSqlParser.EQUAL); + this.state = 3654; + localctx.default_laguage = this.id(); + + } + this.state = 3660; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,360,this._ctx); + if(la_===1) { + this.state = 3657; + this.match(TSqlParser.NAME); + this.state = 3658; + this.match(TSqlParser.EQUAL); + this.state = 3659; + localctx.login_name = this.id(); + + } + this.state = 3665; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CHECK_POLICY) { + this.state = 3662; + this.match(TSqlParser.CHECK_POLICY); + this.state = 3663; + this.match(TSqlParser.EQUAL); + this.state = 3664; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3670; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CHECK_EXPIRATION) { + this.state = 3667; + this.match(TSqlParser.CHECK_EXPIRATION); + this.state = 3668; + this.match(TSqlParser.EQUAL); + this.state = 3669; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 3675; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,363,this._ctx); + if(la_===1) { + this.state = 3672; + this.match(TSqlParser.CREDENTIAL); + this.state = 3673; + this.match(TSqlParser.EQUAL); + this.state = 3674; + localctx.credential_name = this.id(); + + } + this.state = 3679; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,364,this._ctx); + if(la_===1) { + this.state = 3677; + this.match(TSqlParser.NO); + this.state = 3678; + this.match(TSqlParser.CREDENTIAL); + + } + break; + + case 3: + this.state = 3681; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3682; + this.match(TSqlParser.CREDENTIAL); + this.state = 3683; + localctx.credential_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_login_sql_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_login_sql_server; + this.login_name = null; // IdContext + this.password = null; // Token + this.password_hash = null; // Token + this.sid = null; // Token + this.default_database = null; // IdContext + this.default_laguage = null; // IdContext + this.credential_name = null; // IdContext + this.default_language = null; // Token + this.certname = null; // IdContext + this.asym_key_name = null; // IdContext + return this; +} + +Create_login_sql_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_login_sql_serverContext.prototype.constructor = Create_login_sql_serverContext; + +Create_login_sql_serverContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_login_sql_serverContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_login_sql_serverContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_login_sql_serverContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_login_sql_serverContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_login_sql_serverContext.prototype.SID = function() { + return this.getToken(TSqlParser.SID, 0); +}; + +Create_login_sql_serverContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_login_sql_serverContext.prototype.DEFAULT_DATABASE = function() { + return this.getToken(TSqlParser.DEFAULT_DATABASE, 0); +}; + +Create_login_sql_serverContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +Create_login_sql_serverContext.prototype.CHECK_EXPIRATION = function() { + return this.getToken(TSqlParser.CHECK_EXPIRATION, 0); +}; + +Create_login_sql_serverContext.prototype.CHECK_POLICY = function() { + return this.getToken(TSqlParser.CHECK_POLICY, 0); +}; + +Create_login_sql_serverContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Create_login_sql_serverContext.prototype.BINARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BINARY); + } else { + return this.getToken(TSqlParser.BINARY, i); + } +}; + + +Create_login_sql_serverContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_login_sql_serverContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_login_sql_serverContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Create_login_sql_serverContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Create_login_sql_serverContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Create_login_sql_serverContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_login_sql_serverContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_login_sql_serverContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_login_sql_serverContext.prototype.HASHED = function() { + return this.getToken(TSqlParser.HASHED, 0); +}; + +Create_login_sql_serverContext.prototype.MUST_CHANGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MUST_CHANGE); + } else { + return this.getToken(TSqlParser.MUST_CHANGE, i); + } +}; + + +Create_login_sql_serverContext.prototype.UNLOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLOCK); + } else { + return this.getToken(TSqlParser.UNLOCK, i); + } +}; + + +Create_login_sql_serverContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_login_sql_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_login_sql_server(this); + } +}; + +Create_login_sql_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_login_sql_server(this); + } +}; + +Create_login_sql_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_login_sql_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_login_sql_serverContext = Create_login_sql_serverContext; + +TSqlParser.prototype.create_login_sql_server = function() { + + var localctx = new Create_login_sql_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 314, TSqlParser.RULE_create_login_sql_server); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3686; + this.match(TSqlParser.CREATE); + this.state = 3687; + this.match(TSqlParser.LOGIN); + this.state = 3688; + localctx.login_name = this.id(); + this.state = 3779; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 3689; + this.match(TSqlParser.WITH); + this.state = 3703; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PASSWORD) { + this.state = 3690; + this.match(TSqlParser.PASSWORD); + this.state = 3691; + this.match(TSqlParser.EQUAL); + this.state = 3695; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 3692; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.BINARY: + this.state = 3693; + localctx.password_hash = this.match(TSqlParser.BINARY); + this.state = 3694; + this.match(TSqlParser.HASHED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 3700; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK) { + this.state = 3697; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3702; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 3711; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,370,this._ctx); + if(la_===1) { + this.state = 3706; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3705; + this.match(TSqlParser.COMMA); + } + + this.state = 3708; + this.match(TSqlParser.SID); + this.state = 3709; + this.match(TSqlParser.EQUAL); + this.state = 3710; + localctx.sid = this.match(TSqlParser.BINARY); + + } + this.state = 3719; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,372,this._ctx); + if(la_===1) { + this.state = 3714; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3713; + this.match(TSqlParser.COMMA); + } + + this.state = 3716; + this.match(TSqlParser.DEFAULT_DATABASE); + this.state = 3717; + this.match(TSqlParser.EQUAL); + this.state = 3718; + localctx.default_database = this.id(); + + } + this.state = 3727; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,374,this._ctx); + if(la_===1) { + this.state = 3722; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3721; + this.match(TSqlParser.COMMA); + } + + this.state = 3724; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 3725; + this.match(TSqlParser.EQUAL); + this.state = 3726; + localctx.default_laguage = this.id(); + + } + this.state = 3735; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,376,this._ctx); + if(la_===1) { + this.state = 3730; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3729; + this.match(TSqlParser.COMMA); + } + + this.state = 3732; + this.match(TSqlParser.CHECK_EXPIRATION); + this.state = 3733; + this.match(TSqlParser.EQUAL); + this.state = 3734; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3743; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,378,this._ctx); + if(la_===1) { + this.state = 3738; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3737; + this.match(TSqlParser.COMMA); + } + + this.state = 3740; + this.match(TSqlParser.CHECK_POLICY); + this.state = 3741; + this.match(TSqlParser.EQUAL); + this.state = 3742; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 3751; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,380,this._ctx); + if(la_===1) { + this.state = 3746; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3745; + this.match(TSqlParser.COMMA); + } + + this.state = 3748; + this.match(TSqlParser.CREDENTIAL); + this.state = 3749; + this.match(TSqlParser.EQUAL); + this.state = 3750; + localctx.credential_name = this.id(); + + } + break; + case TSqlParser.FROM: + this.state = 3753; + this.match(TSqlParser.FROM); + this.state = 3777; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WINDOWS: + this.state = 3754; + this.match(TSqlParser.WINDOWS); + + this.state = 3755; + this.match(TSqlParser.WITH); + this.state = 3762; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,382,this._ctx); + if(la_===1) { + this.state = 3757; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3756; + this.match(TSqlParser.COMMA); + } + + this.state = 3759; + this.match(TSqlParser.DEFAULT_DATABASE); + this.state = 3760; + this.match(TSqlParser.EQUAL); + this.state = 3761; + localctx.default_database = this.id(); + + } + this.state = 3770; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,384,this._ctx); + if(la_===1) { + this.state = 3765; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3764; + this.match(TSqlParser.COMMA); + } + + this.state = 3767; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 3768; + this.match(TSqlParser.EQUAL); + this.state = 3769; + localctx.default_language = this.match(TSqlParser.STRING); + + } + break; + case TSqlParser.CERTIFICATE: + this.state = 3772; + this.match(TSqlParser.CERTIFICATE); + this.state = 3773; + localctx.certname = this.id(); + break; + case TSqlParser.ASYMMETRIC: + this.state = 3774; + this.match(TSqlParser.ASYMMETRIC); + this.state = 3775; + this.match(TSqlParser.KEY); + this.state = 3776; + localctx.asym_key_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_login_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_login_azure_sql; + this.login_name = null; // IdContext + this.password = null; // Token + this.old_password = null; // Token + return this; +} + +Alter_login_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_login_azure_sqlContext.prototype.constructor = Alter_login_azure_sqlContext; + +Alter_login_azure_sqlContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_login_azure_sqlContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Alter_login_azure_sqlContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_login_azure_sqlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_login_azure_sqlContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_login_azure_sqlContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_login_azure_sqlContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_login_azure_sqlContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_login_azure_sqlContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_login_azure_sqlContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_login_azure_sqlContext.prototype.OLD_PASSWORD = function() { + return this.getToken(TSqlParser.OLD_PASSWORD, 0); +}; + +Alter_login_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_login_azure_sql(this); + } +}; + +Alter_login_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_login_azure_sql(this); + } +}; + +Alter_login_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_login_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_login_azure_sqlContext = Alter_login_azure_sqlContext; + +TSqlParser.prototype.alter_login_azure_sql = function() { + + var localctx = new Alter_login_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 316, TSqlParser.RULE_alter_login_azure_sql); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3781; + this.match(TSqlParser.ALTER); + this.state = 3782; + this.match(TSqlParser.LOGIN); + this.state = 3783; + localctx.login_name = this.id(); + this.state = 3801; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,390,this._ctx); + switch(la_) { + case 1: + this.state = 3785; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,387,this._ctx); + if(la_===1) { + this.state = 3784; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 2: + this.state = 3787; + this.match(TSqlParser.WITH); + this.state = 3799; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PASSWORD: + this.state = 3788; + this.match(TSqlParser.PASSWORD); + this.state = 3789; + this.match(TSqlParser.EQUAL); + this.state = 3790; + localctx.password = this.match(TSqlParser.STRING); + this.state = 3794; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OLD_PASSWORD) { + this.state = 3791; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 3792; + this.match(TSqlParser.EQUAL); + this.state = 3793; + localctx.old_password = this.match(TSqlParser.STRING); + } + + break; + case TSqlParser.NAME: + this.state = 3796; + this.match(TSqlParser.NAME); + this.state = 3797; + this.match(TSqlParser.EQUAL); + this.state = 3798; + localctx.login_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_login_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_login_azure_sql; + this.login_name = null; // IdContext + this.sid = null; // Token + return this; +} + +Create_login_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_login_azure_sqlContext.prototype.constructor = Create_login_azure_sqlContext; + +Create_login_azure_sqlContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_login_azure_sqlContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_login_azure_sqlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_login_azure_sqlContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_login_azure_sqlContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_login_azure_sqlContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_login_azure_sqlContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_login_azure_sqlContext.prototype.SID = function() { + return this.getToken(TSqlParser.SID, 0); +}; + +Create_login_azure_sqlContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Create_login_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_login_azure_sql(this); + } +}; + +Create_login_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_login_azure_sql(this); + } +}; + +Create_login_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_login_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_login_azure_sqlContext = Create_login_azure_sqlContext; + +TSqlParser.prototype.create_login_azure_sql = function() { + + var localctx = new Create_login_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 318, TSqlParser.RULE_create_login_azure_sql); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3803; + this.match(TSqlParser.CREATE); + this.state = 3804; + this.match(TSqlParser.LOGIN); + this.state = 3805; + localctx.login_name = this.id(); + this.state = 3806; + this.match(TSqlParser.WITH); + this.state = 3807; + this.match(TSqlParser.PASSWORD); + this.state = 3808; + this.match(TSqlParser.EQUAL); + this.state = 3809; + this.match(TSqlParser.STRING); + this.state = 3813; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,391,this._ctx); + if(la_===1) { + this.state = 3810; + this.match(TSqlParser.SID); + this.state = 3811; + this.match(TSqlParser.EQUAL); + this.state = 3812; + localctx.sid = this.match(TSqlParser.BINARY); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_login_azure_sql_dw_and_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_login_azure_sql_dw_and_pdw; + this.login_name = null; // IdContext + this.password = null; // Token + this.old_password = null; // Token + return this; +} + +Alter_login_azure_sql_dw_and_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_login_azure_sql_dw_and_pdwContext.prototype.constructor = Alter_login_azure_sql_dw_and_pdwContext; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_login_azure_sql_dw_and_pdwContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_login_azure_sql_dw_and_pdwContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.OLD_PASSWORD = function() { + return this.getToken(TSqlParser.OLD_PASSWORD, 0); +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.MUST_CHANGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MUST_CHANGE); + } else { + return this.getToken(TSqlParser.MUST_CHANGE, i); + } +}; + + +Alter_login_azure_sql_dw_and_pdwContext.prototype.UNLOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLOCK); + } else { + return this.getToken(TSqlParser.UNLOCK, i); + } +}; + + +Alter_login_azure_sql_dw_and_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_login_azure_sql_dw_and_pdw(this); + } +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_login_azure_sql_dw_and_pdw(this); + } +}; + +Alter_login_azure_sql_dw_and_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_login_azure_sql_dw_and_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_login_azure_sql_dw_and_pdwContext = Alter_login_azure_sql_dw_and_pdwContext; + +TSqlParser.prototype.alter_login_azure_sql_dw_and_pdw = function() { + + var localctx = new Alter_login_azure_sql_dw_and_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 320, TSqlParser.RULE_alter_login_azure_sql_dw_and_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3815; + this.match(TSqlParser.ALTER); + this.state = 3816; + this.match(TSqlParser.LOGIN); + this.state = 3817; + localctx.login_name = this.id(); + this.state = 3841; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,396,this._ctx); + switch(la_) { + case 1: + this.state = 3819; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,392,this._ctx); + if(la_===1) { + this.state = 3818; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 2: + this.state = 3821; + this.match(TSqlParser.WITH); + this.state = 3839; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PASSWORD: + this.state = 3822; + this.match(TSqlParser.PASSWORD); + this.state = 3823; + this.match(TSqlParser.EQUAL); + this.state = 3824; + localctx.password = this.match(TSqlParser.STRING); + this.state = 3834; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OLD_PASSWORD) { + this.state = 3825; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 3826; + this.match(TSqlParser.EQUAL); + this.state = 3827; + localctx.old_password = this.match(TSqlParser.STRING); + this.state = 3831; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK) { + this.state = 3828; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MUST_CHANGE || _la===TSqlParser.UNLOCK)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3833; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + break; + case TSqlParser.NAME: + this.state = 3836; + this.match(TSqlParser.NAME); + this.state = 3837; + this.match(TSqlParser.EQUAL); + this.state = 3838; + localctx.login_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_login_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_login_pdw; + this.loginName = null; // IdContext + this.password = null; // Token + return this; +} + +Create_login_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_login_pdwContext.prototype.constructor = Create_login_pdwContext; + +Create_login_pdwContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_login_pdwContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_login_pdwContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_login_pdwContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_login_pdwContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_login_pdwContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Create_login_pdwContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_login_pdwContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_login_pdwContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_login_pdwContext.prototype.MUST_CHANGE = function() { + return this.getToken(TSqlParser.MUST_CHANGE, 0); +}; + +Create_login_pdwContext.prototype.CHECK_POLICY = function() { + return this.getToken(TSqlParser.CHECK_POLICY, 0); +}; + +Create_login_pdwContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_login_pdwContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_login_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_login_pdw(this); + } +}; + +Create_login_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_login_pdw(this); + } +}; + +Create_login_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_login_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_login_pdwContext = Create_login_pdwContext; + +TSqlParser.prototype.create_login_pdw = function() { + + var localctx = new Create_login_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 322, TSqlParser.RULE_create_login_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3843; + this.match(TSqlParser.CREATE); + this.state = 3844; + this.match(TSqlParser.LOGIN); + this.state = 3845; + localctx.loginName = this.id(); + this.state = 3862; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 3846; + this.match(TSqlParser.WITH); + + this.state = 3847; + this.match(TSqlParser.PASSWORD); + this.state = 3848; + this.match(TSqlParser.EQUAL); + this.state = 3849; + localctx.password = this.match(TSqlParser.STRING); + this.state = 3851; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MUST_CHANGE) { + this.state = 3850; + this.match(TSqlParser.MUST_CHANGE); + } + + this.state = 3858; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CHECK_POLICY) { + this.state = 3853; + this.match(TSqlParser.CHECK_POLICY); + this.state = 3854; + this.match(TSqlParser.EQUAL); + this.state = 3856; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OFF || _la===TSqlParser.ON) { + this.state = 3855; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } + + break; + case TSqlParser.FROM: + this.state = 3860; + this.match(TSqlParser.FROM); + this.state = 3861; + this.match(TSqlParser.WINDOWS); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_master_key_sql_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_master_key_sql_server; + this.password = null; // Token + this.encryption_password = null; // Token + return this; +} + +Alter_master_key_sql_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_master_key_sql_serverContext.prototype.constructor = Alter_master_key_sql_serverContext; + +Alter_master_key_sql_serverContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_master_key_sql_serverContext.prototype.MASTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MASTER); + } else { + return this.getToken(TSqlParser.MASTER, i); + } +}; + + +Alter_master_key_sql_serverContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Alter_master_key_sql_serverContext.prototype.REGENERATE = function() { + return this.getToken(TSqlParser.REGENERATE, 0); +}; + +Alter_master_key_sql_serverContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_master_key_sql_serverContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_master_key_sql_serverContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Alter_master_key_sql_serverContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_master_key_sql_serverContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_master_key_sql_serverContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_master_key_sql_serverContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_master_key_sql_serverContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_master_key_sql_serverContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_master_key_sql_serverContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +Alter_master_key_sql_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_master_key_sql_server(this); + } +}; + +Alter_master_key_sql_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_master_key_sql_server(this); + } +}; + +Alter_master_key_sql_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_master_key_sql_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_master_key_sql_serverContext = Alter_master_key_sql_serverContext; + +TSqlParser.prototype.alter_master_key_sql_server = function() { + + var localctx = new Alter_master_key_sql_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 324, TSqlParser.RULE_alter_master_key_sql_server); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3864; + this.match(TSqlParser.ALTER); + this.state = 3865; + this.match(TSqlParser.MASTER); + this.state = 3866; + this.match(TSqlParser.KEY); + this.state = 3888; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REGENERATE: + case TSqlParser.FORCE: + this.state = 3868; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FORCE) { + this.state = 3867; + this.match(TSqlParser.FORCE); + } + + this.state = 3870; + this.match(TSqlParser.REGENERATE); + this.state = 3871; + this.match(TSqlParser.WITH); + this.state = 3872; + this.match(TSqlParser.ENCRYPTION); + this.state = 3873; + this.match(TSqlParser.BY); + this.state = 3874; + this.match(TSqlParser.PASSWORD); + this.state = 3875; + this.match(TSqlParser.EQUAL); + this.state = 3876; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.ADD: + case TSqlParser.DROP: + this.state = 3877; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3878; + this.match(TSqlParser.ENCRYPTION); + this.state = 3879; + this.match(TSqlParser.BY); + this.state = 3886; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SERVICE: + this.state = 3880; + this.match(TSqlParser.SERVICE); + this.state = 3881; + this.match(TSqlParser.MASTER); + this.state = 3882; + this.match(TSqlParser.KEY); + break; + case TSqlParser.PASSWORD: + this.state = 3883; + this.match(TSqlParser.PASSWORD); + this.state = 3884; + this.match(TSqlParser.EQUAL); + this.state = 3885; + localctx.encryption_password = this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_master_key_sql_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_master_key_sql_server; + this.password = null; // Token + return this; +} + +Create_master_key_sql_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_master_key_sql_serverContext.prototype.constructor = Create_master_key_sql_serverContext; + +Create_master_key_sql_serverContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_master_key_sql_serverContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Create_master_key_sql_serverContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_master_key_sql_serverContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_master_key_sql_serverContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_master_key_sql_serverContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_master_key_sql_serverContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_master_key_sql_serverContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_master_key_sql_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_master_key_sql_server(this); + } +}; + +Create_master_key_sql_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_master_key_sql_server(this); + } +}; + +Create_master_key_sql_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_master_key_sql_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_master_key_sql_serverContext = Create_master_key_sql_serverContext; + +TSqlParser.prototype.create_master_key_sql_server = function() { + + var localctx = new Create_master_key_sql_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 326, TSqlParser.RULE_create_master_key_sql_server); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3890; + this.match(TSqlParser.CREATE); + this.state = 3891; + this.match(TSqlParser.MASTER); + this.state = 3892; + this.match(TSqlParser.KEY); + this.state = 3893; + this.match(TSqlParser.ENCRYPTION); + this.state = 3894; + this.match(TSqlParser.BY); + this.state = 3895; + this.match(TSqlParser.PASSWORD); + this.state = 3896; + this.match(TSqlParser.EQUAL); + this.state = 3897; + localctx.password = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_master_key_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_master_key_azure_sql; + this.password = null; // Token + this.encryption_password = null; // Token + return this; +} + +Alter_master_key_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_master_key_azure_sqlContext.prototype.constructor = Alter_master_key_azure_sqlContext; + +Alter_master_key_azure_sqlContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.MASTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MASTER); + } else { + return this.getToken(TSqlParser.MASTER, i); + } +}; + + +Alter_master_key_azure_sqlContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Alter_master_key_azure_sqlContext.prototype.REGENERATE = function() { + return this.getToken(TSqlParser.REGENERATE, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +Alter_master_key_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_master_key_azure_sql(this); + } +}; + +Alter_master_key_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_master_key_azure_sql(this); + } +}; + +Alter_master_key_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_master_key_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_master_key_azure_sqlContext = Alter_master_key_azure_sqlContext; + +TSqlParser.prototype.alter_master_key_azure_sql = function() { + + var localctx = new Alter_master_key_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 328, TSqlParser.RULE_alter_master_key_azure_sql); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3899; + this.match(TSqlParser.ALTER); + this.state = 3900; + this.match(TSqlParser.MASTER); + this.state = 3901; + this.match(TSqlParser.KEY); + this.state = 3929; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REGENERATE: + case TSqlParser.FORCE: + this.state = 3903; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FORCE) { + this.state = 3902; + this.match(TSqlParser.FORCE); + } + + this.state = 3905; + this.match(TSqlParser.REGENERATE); + this.state = 3906; + this.match(TSqlParser.WITH); + this.state = 3907; + this.match(TSqlParser.ENCRYPTION); + this.state = 3908; + this.match(TSqlParser.BY); + this.state = 3909; + this.match(TSqlParser.PASSWORD); + this.state = 3910; + this.match(TSqlParser.EQUAL); + this.state = 3911; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.ADD: + this.state = 3912; + this.match(TSqlParser.ADD); + this.state = 3913; + this.match(TSqlParser.ENCRYPTION); + this.state = 3914; + this.match(TSqlParser.BY); + this.state = 3921; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SERVICE: + this.state = 3915; + this.match(TSqlParser.SERVICE); + this.state = 3916; + this.match(TSqlParser.MASTER); + this.state = 3917; + this.match(TSqlParser.KEY); + break; + case TSqlParser.PASSWORD: + this.state = 3918; + this.match(TSqlParser.PASSWORD); + this.state = 3919; + this.match(TSqlParser.EQUAL); + this.state = 3920; + localctx.encryption_password = this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DROP: + this.state = 3923; + this.match(TSqlParser.DROP); + this.state = 3924; + this.match(TSqlParser.ENCRYPTION); + this.state = 3925; + this.match(TSqlParser.BY); + this.state = 3926; + this.match(TSqlParser.PASSWORD); + this.state = 3927; + this.match(TSqlParser.EQUAL); + this.state = 3928; + localctx.encryption_password = this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_master_key_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_master_key_azure_sql; + this.password = null; // Token + return this; +} + +Create_master_key_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_master_key_azure_sqlContext.prototype.constructor = Create_master_key_azure_sqlContext; + +Create_master_key_azure_sqlContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_master_key_azure_sqlContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Create_master_key_azure_sqlContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_master_key_azure_sqlContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_master_key_azure_sqlContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_master_key_azure_sqlContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_master_key_azure_sqlContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_master_key_azure_sqlContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_master_key_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_master_key_azure_sql(this); + } +}; + +Create_master_key_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_master_key_azure_sql(this); + } +}; + +Create_master_key_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_master_key_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_master_key_azure_sqlContext = Create_master_key_azure_sqlContext; + +TSqlParser.prototype.create_master_key_azure_sql = function() { + + var localctx = new Create_master_key_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 330, TSqlParser.RULE_create_master_key_azure_sql); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3931; + this.match(TSqlParser.CREATE); + this.state = 3932; + this.match(TSqlParser.MASTER); + this.state = 3933; + this.match(TSqlParser.KEY); + this.state = 3939; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,407,this._ctx); + if(la_===1) { + this.state = 3934; + this.match(TSqlParser.ENCRYPTION); + this.state = 3935; + this.match(TSqlParser.BY); + this.state = 3936; + this.match(TSqlParser.PASSWORD); + this.state = 3937; + this.match(TSqlParser.EQUAL); + this.state = 3938; + localctx.password = this.match(TSqlParser.STRING); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_message_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_message_type; + this.message_type_name = null; // IdContext + this.schema_collection_name = null; // IdContext + return this; +} + +Alter_message_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_message_typeContext.prototype.constructor = Alter_message_typeContext; + +Alter_message_typeContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_message_typeContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Alter_message_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Alter_message_typeContext.prototype.VALIDATION = function() { + return this.getToken(TSqlParser.VALIDATION, 0); +}; + +Alter_message_typeContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_message_typeContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_message_typeContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Alter_message_typeContext.prototype.EMPTY = function() { + return this.getToken(TSqlParser.EMPTY, 0); +}; + +Alter_message_typeContext.prototype.WELL_FORMED_XML = function() { + return this.getToken(TSqlParser.WELL_FORMED_XML, 0); +}; + +Alter_message_typeContext.prototype.VALID_XML = function() { + return this.getToken(TSqlParser.VALID_XML, 0); +}; + +Alter_message_typeContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_message_typeContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Alter_message_typeContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Alter_message_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_message_type(this); + } +}; + +Alter_message_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_message_type(this); + } +}; + +Alter_message_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_message_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_message_typeContext = Alter_message_typeContext; + +TSqlParser.prototype.alter_message_type = function() { + + var localctx = new Alter_message_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 332, TSqlParser.RULE_alter_message_type); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3941; + this.match(TSqlParser.ALTER); + this.state = 3942; + this.match(TSqlParser.MESSAGE); + this.state = 3943; + this.match(TSqlParser.TYPE); + this.state = 3944; + localctx.message_type_name = this.id(); + this.state = 3945; + this.match(TSqlParser.VALIDATION); + this.state = 3946; + this.match(TSqlParser.EQUAL); + this.state = 3955; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 3947; + this.match(TSqlParser.NONE); + break; + case TSqlParser.EMPTY: + this.state = 3948; + this.match(TSqlParser.EMPTY); + break; + case TSqlParser.WELL_FORMED_XML: + this.state = 3949; + this.match(TSqlParser.WELL_FORMED_XML); + break; + case TSqlParser.VALID_XML: + this.state = 3950; + this.match(TSqlParser.VALID_XML); + this.state = 3951; + this.match(TSqlParser.WITH); + this.state = 3952; + this.match(TSqlParser.SCHEMA); + this.state = 3953; + this.match(TSqlParser.COLLECTION); + this.state = 3954; + localctx.schema_collection_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_partition_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_partition_function; + this.partition_function_name = null; // IdContext + return this; +} + +Alter_partition_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_partition_functionContext.prototype.constructor = Alter_partition_functionContext; + +Alter_partition_functionContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_partition_functionContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Alter_partition_functionContext.prototype.FUNCTION = function() { + return this.getToken(TSqlParser.FUNCTION, 0); +}; + +Alter_partition_functionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_partition_functionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_partition_functionContext.prototype.RANGE = function() { + return this.getToken(TSqlParser.RANGE, 0); +}; + +Alter_partition_functionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Alter_partition_functionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_partition_functionContext.prototype.SPLIT = function() { + return this.getToken(TSqlParser.SPLIT, 0); +}; + +Alter_partition_functionContext.prototype.MERGE = function() { + return this.getToken(TSqlParser.MERGE, 0); +}; + +Alter_partition_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_partition_function(this); + } +}; + +Alter_partition_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_partition_function(this); + } +}; + +Alter_partition_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_partition_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_partition_functionContext = Alter_partition_functionContext; + +TSqlParser.prototype.alter_partition_function = function() { + + var localctx = new Alter_partition_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 334, TSqlParser.RULE_alter_partition_function); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3957; + this.match(TSqlParser.ALTER); + this.state = 3958; + this.match(TSqlParser.PARTITION); + this.state = 3959; + this.match(TSqlParser.FUNCTION); + this.state = 3960; + localctx.partition_function_name = this.id(); + this.state = 3961; + this.match(TSqlParser.LR_BRACKET); + this.state = 3962; + this.match(TSqlParser.RR_BRACKET); + this.state = 3963; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MERGE || _la===TSqlParser.SPLIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3964; + this.match(TSqlParser.RANGE); + this.state = 3965; + this.match(TSqlParser.LR_BRACKET); + this.state = 3966; + this.match(TSqlParser.DECIMAL); + this.state = 3967; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_partition_schemeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_partition_scheme; + this.partition_scheme_name = null; // IdContext + this.file_group_name = null; // IdContext + return this; +} + +Alter_partition_schemeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_partition_schemeContext.prototype.constructor = Alter_partition_schemeContext; + +Alter_partition_schemeContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_partition_schemeContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Alter_partition_schemeContext.prototype.SCHEME = function() { + return this.getToken(TSqlParser.SCHEME, 0); +}; + +Alter_partition_schemeContext.prototype.NEXT = function() { + return this.getToken(TSqlParser.NEXT, 0); +}; + +Alter_partition_schemeContext.prototype.USED = function() { + return this.getToken(TSqlParser.USED, 0); +}; + +Alter_partition_schemeContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_partition_schemeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_partition_scheme(this); + } +}; + +Alter_partition_schemeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_partition_scheme(this); + } +}; + +Alter_partition_schemeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_partition_scheme(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_partition_schemeContext = Alter_partition_schemeContext; + +TSqlParser.prototype.alter_partition_scheme = function() { + + var localctx = new Alter_partition_schemeContext(this, this._ctx, this.state); + this.enterRule(localctx, 336, TSqlParser.RULE_alter_partition_scheme); + try { + this.enterOuterAlt(localctx, 1); + this.state = 3969; + this.match(TSqlParser.ALTER); + this.state = 3970; + this.match(TSqlParser.PARTITION); + this.state = 3971; + this.match(TSqlParser.SCHEME); + this.state = 3972; + localctx.partition_scheme_name = this.id(); + this.state = 3973; + this.match(TSqlParser.NEXT); + this.state = 3974; + this.match(TSqlParser.USED); + this.state = 3976; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,409,this._ctx); + if(la_===1) { + this.state = 3975; + localctx.file_group_name = this.id(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_remote_service_bindingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_remote_service_binding; + this.binding_name = null; // IdContext + this.user_name = null; // IdContext + return this; +} + +Alter_remote_service_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_remote_service_bindingContext.prototype.constructor = Alter_remote_service_bindingContext; + +Alter_remote_service_bindingContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_remote_service_bindingContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Alter_remote_service_bindingContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_remote_service_bindingContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Alter_remote_service_bindingContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_remote_service_bindingContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_remote_service_bindingContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Alter_remote_service_bindingContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_remote_service_bindingContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Alter_remote_service_bindingContext.prototype.ANONYMOUS = function() { + return this.getToken(TSqlParser.ANONYMOUS, 0); +}; + +Alter_remote_service_bindingContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_remote_service_bindingContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_remote_service_bindingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_remote_service_binding(this); + } +}; + +Alter_remote_service_bindingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_remote_service_binding(this); + } +}; + +Alter_remote_service_bindingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_remote_service_binding(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_remote_service_bindingContext = Alter_remote_service_bindingContext; + +TSqlParser.prototype.alter_remote_service_binding = function() { + + var localctx = new Alter_remote_service_bindingContext(this, this._ctx, this.state); + this.enterRule(localctx, 338, TSqlParser.RULE_alter_remote_service_binding); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3978; + this.match(TSqlParser.ALTER); + this.state = 3979; + this.match(TSqlParser.REMOTE); + this.state = 3980; + this.match(TSqlParser.SERVICE); + this.state = 3981; + this.match(TSqlParser.BINDING); + this.state = 3982; + localctx.binding_name = this.id(); + this.state = 3983; + this.match(TSqlParser.WITH); + this.state = 3987; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.USER) { + this.state = 3984; + this.match(TSqlParser.USER); + this.state = 3985; + this.match(TSqlParser.EQUAL); + this.state = 3986; + localctx.user_name = this.id(); + } + + this.state = 3993; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 3989; + this.match(TSqlParser.COMMA); + this.state = 3990; + this.match(TSqlParser.ANONYMOUS); + this.state = 3991; + this.match(TSqlParser.EQUAL); + this.state = 3992; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_remote_service_bindingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_remote_service_binding; + this.binding_name = null; // IdContext + this.owner_name = null; // IdContext + this.remote_service_name = null; // Token + this.user_name = null; // IdContext + return this; +} + +Create_remote_service_bindingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_remote_service_bindingContext.prototype.constructor = Create_remote_service_bindingContext; + +Create_remote_service_bindingContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_remote_service_bindingContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Create_remote_service_bindingContext.prototype.SERVICE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVICE); + } else { + return this.getToken(TSqlParser.SERVICE, i); + } +}; + + +Create_remote_service_bindingContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Create_remote_service_bindingContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Create_remote_service_bindingContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_remote_service_bindingContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_remote_service_bindingContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_remote_service_bindingContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_remote_service_bindingContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Create_remote_service_bindingContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_remote_service_bindingContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Create_remote_service_bindingContext.prototype.ANONYMOUS = function() { + return this.getToken(TSqlParser.ANONYMOUS, 0); +}; + +Create_remote_service_bindingContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_remote_service_bindingContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_remote_service_bindingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_remote_service_binding(this); + } +}; + +Create_remote_service_bindingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_remote_service_binding(this); + } +}; + +Create_remote_service_bindingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_remote_service_binding(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_remote_service_bindingContext = Create_remote_service_bindingContext; + +TSqlParser.prototype.create_remote_service_binding = function() { + + var localctx = new Create_remote_service_bindingContext(this, this._ctx, this.state); + this.enterRule(localctx, 340, TSqlParser.RULE_create_remote_service_binding); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 3995; + this.match(TSqlParser.CREATE); + this.state = 3996; + this.match(TSqlParser.REMOTE); + this.state = 3997; + this.match(TSqlParser.SERVICE); + this.state = 3998; + this.match(TSqlParser.BINDING); + this.state = 3999; + localctx.binding_name = this.id(); + this.state = 4002; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4000; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4001; + localctx.owner_name = this.id(); + } + + this.state = 4004; + this.match(TSqlParser.TO); + this.state = 4005; + this.match(TSqlParser.SERVICE); + this.state = 4006; + localctx.remote_service_name = this.match(TSqlParser.STRING); + this.state = 4007; + this.match(TSqlParser.WITH); + this.state = 4011; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.USER) { + this.state = 4008; + this.match(TSqlParser.USER); + this.state = 4009; + this.match(TSqlParser.EQUAL); + this.state = 4010; + localctx.user_name = this.id(); + } + + this.state = 4017; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4013; + this.match(TSqlParser.COMMA); + this.state = 4014; + this.match(TSqlParser.ANONYMOUS); + this.state = 4015; + this.match(TSqlParser.EQUAL); + this.state = 4016; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_resource_poolContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_resource_pool; + this.pool_name = null; // IdContext + return this; +} + +Create_resource_poolContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_resource_poolContext.prototype.constructor = Create_resource_poolContext; + +Create_resource_poolContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_resource_poolContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Create_resource_poolContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Create_resource_poolContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_resource_poolContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_resource_poolContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_resource_poolContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_resource_poolContext.prototype.MIN_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MIN_CPU_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_resource_poolContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_resource_poolContext.prototype.MAX_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MAX_CPU_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.CAP_CPU_PERCENT = function() { + return this.getToken(TSqlParser.CAP_CPU_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Create_resource_poolContext.prototype.SCHEDULER = function() { + return this.getToken(TSqlParser.SCHEDULER, 0); +}; + +Create_resource_poolContext.prototype.MIN_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MIN_MEMORY_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.MAX_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MAX_MEMORY_PERCENT, 0); +}; + +Create_resource_poolContext.prototype.MIN_IOPS_PER_VOLUME = function() { + return this.getToken(TSqlParser.MIN_IOPS_PER_VOLUME, 0); +}; + +Create_resource_poolContext.prototype.MAX_IOPS_PER_VOLUME = function() { + return this.getToken(TSqlParser.MAX_IOPS_PER_VOLUME, 0); +}; + +Create_resource_poolContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Create_resource_poolContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Create_resource_poolContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_resource_poolContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Create_resource_poolContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_resource_pool(this); + } +}; + +Create_resource_poolContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_resource_pool(this); + } +}; + +Create_resource_poolContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_resource_pool(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_resource_poolContext = Create_resource_poolContext; + +TSqlParser.prototype.create_resource_pool = function() { + + var localctx = new Create_resource_poolContext(this, this._ctx, this.state); + this.enterRule(localctx, 342, TSqlParser.RULE_create_resource_pool); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4019; + this.match(TSqlParser.CREATE); + this.state = 4020; + this.match(TSqlParser.RESOURCE); + this.state = 4021; + this.match(TSqlParser.POOL); + this.state = 4022; + localctx.pool_name = this.id(); + this.state = 4125; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,438,this._ctx); + if(la_===1) { + this.state = 4023; + this.match(TSqlParser.WITH); + this.state = 4024; + this.match(TSqlParser.LR_BRACKET); + this.state = 4031; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,416,this._ctx); + if(la_===1) { + this.state = 4026; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4025; + this.match(TSqlParser.COMMA); + } + + this.state = 4028; + this.match(TSqlParser.MIN_CPU_PERCENT); + this.state = 4029; + this.match(TSqlParser.EQUAL); + this.state = 4030; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4039; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,418,this._ctx); + if(la_===1) { + this.state = 4034; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4033; + this.match(TSqlParser.COMMA); + } + + this.state = 4036; + this.match(TSqlParser.MAX_CPU_PERCENT); + this.state = 4037; + this.match(TSqlParser.EQUAL); + this.state = 4038; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4047; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,420,this._ctx); + if(la_===1) { + this.state = 4042; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4041; + this.match(TSqlParser.COMMA); + } + + this.state = 4044; + this.match(TSqlParser.CAP_CPU_PERCENT); + this.state = 4045; + this.match(TSqlParser.EQUAL); + this.state = 4046; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4090; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,429,this._ctx); + if(la_===1) { + this.state = 4050; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4049; + this.match(TSqlParser.COMMA); + } + + this.state = 4052; + this.match(TSqlParser.AFFINITY); + this.state = 4053; + this.match(TSqlParser.SCHEDULER); + this.state = 4054; + this.match(TSqlParser.EQUAL); + this.state = 4088; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO: + this.state = 4055; + this.match(TSqlParser.AUTO); + break; + case TSqlParser.LR_BRACKET: + this.state = 4056; + this.match(TSqlParser.LR_BRACKET); + this.state = 4066; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4058; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4057; + this.match(TSqlParser.COMMA); + } + + this.state = 4064; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,423,this._ctx); + switch(la_) { + case 1: + this.state = 4060; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4061; + this.match(TSqlParser.DECIMAL); + this.state = 4062; + this.match(TSqlParser.TO); + this.state = 4063; + this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 4068; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DECIMAL || _la===TSqlParser.COMMA); + this.state = 4070; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.NUMANODE: + this.state = 4071; + this.match(TSqlParser.NUMANODE); + this.state = 4072; + this.match(TSqlParser.EQUAL); + this.state = 4073; + this.match(TSqlParser.LR_BRACKET); + this.state = 4083; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4075; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4074; + this.match(TSqlParser.COMMA); + } + + this.state = 4081; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,426,this._ctx); + switch(la_) { + case 1: + this.state = 4077; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4078; + this.match(TSqlParser.DECIMAL); + this.state = 4079; + this.match(TSqlParser.TO); + this.state = 4080; + this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 4085; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DECIMAL || _la===TSqlParser.COMMA); + this.state = 4087; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 4098; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,431,this._ctx); + if(la_===1) { + this.state = 4093; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4092; + this.match(TSqlParser.COMMA); + } + + this.state = 4095; + this.match(TSqlParser.MIN_MEMORY_PERCENT); + this.state = 4096; + this.match(TSqlParser.EQUAL); + this.state = 4097; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4106; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,433,this._ctx); + if(la_===1) { + this.state = 4101; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4100; + this.match(TSqlParser.COMMA); + } + + this.state = 4103; + this.match(TSqlParser.MAX_MEMORY_PERCENT); + this.state = 4104; + this.match(TSqlParser.EQUAL); + this.state = 4105; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4114; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,435,this._ctx); + if(la_===1) { + this.state = 4109; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4108; + this.match(TSqlParser.COMMA); + } + + this.state = 4111; + this.match(TSqlParser.MIN_IOPS_PER_VOLUME); + this.state = 4112; + this.match(TSqlParser.EQUAL); + this.state = 4113; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4122; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAX_IOPS_PER_VOLUME || _la===TSqlParser.COMMA) { + this.state = 4117; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4116; + this.match(TSqlParser.COMMA); + } + + this.state = 4119; + this.match(TSqlParser.MAX_IOPS_PER_VOLUME); + this.state = 4120; + this.match(TSqlParser.EQUAL); + this.state = 4121; + this.match(TSqlParser.DECIMAL); + } + + this.state = 4124; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_resource_governorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_resource_governor; + this.schema_name = null; // IdContext + this.function_name = null; // IdContext + this.max_outstanding_io_per_volume = null; // Token + return this; +} + +Alter_resource_governorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_resource_governorContext.prototype.constructor = Alter_resource_governorContext; + +Alter_resource_governorContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_resource_governorContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Alter_resource_governorContext.prototype.GOVERNOR = function() { + return this.getToken(TSqlParser.GOVERNOR, 0); +}; + +Alter_resource_governorContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_resource_governorContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_resource_governorContext.prototype.CLASSIFIER_FUNCTION = function() { + return this.getToken(TSqlParser.CLASSIFIER_FUNCTION, 0); +}; + +Alter_resource_governorContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_resource_governorContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_resource_governorContext.prototype.RESET = function() { + return this.getToken(TSqlParser.RESET, 0); +}; + +Alter_resource_governorContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Alter_resource_governorContext.prototype.MAX_OUTSTANDING_IO_PER_VOLUME = function() { + return this.getToken(TSqlParser.MAX_OUTSTANDING_IO_PER_VOLUME, 0); +}; + +Alter_resource_governorContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_resource_governorContext.prototype.RECONFIGURE = function() { + return this.getToken(TSqlParser.RECONFIGURE, 0); +}; + +Alter_resource_governorContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Alter_resource_governorContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_resource_governorContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Alter_resource_governorContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_resource_governorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_resource_governor(this); + } +}; + +Alter_resource_governorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_resource_governor(this); + } +}; + +Alter_resource_governorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_resource_governor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_resource_governorContext = Alter_resource_governorContext; + +TSqlParser.prototype.alter_resource_governor = function() { + + var localctx = new Alter_resource_governorContext(this, this._ctx, this.state); + this.enterRule(localctx, 344, TSqlParser.RULE_alter_resource_governor); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4127; + this.match(TSqlParser.ALTER); + this.state = 4128; + this.match(TSqlParser.RESOURCE); + this.state = 4129; + this.match(TSqlParser.GOVERNOR); + this.state = 4151; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,440,this._ctx); + switch(la_) { + case 1: + this.state = 4130; + _la = this._input.LA(1); + if(!(_la===TSqlParser.RECONFIGURE || _la===TSqlParser.DISABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4131; + this.match(TSqlParser.WITH); + this.state = 4132; + this.match(TSqlParser.LR_BRACKET); + this.state = 4133; + this.match(TSqlParser.CLASSIFIER_FUNCTION); + this.state = 4134; + this.match(TSqlParser.EQUAL); + this.state = 4140; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 4135; + localctx.schema_name = this.id(); + this.state = 4136; + this.match(TSqlParser.DOT); + this.state = 4137; + localctx.function_name = this.id(); + break; + case TSqlParser.NULL: + this.state = 4139; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4142; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.state = 4143; + this.match(TSqlParser.RESET); + this.state = 4144; + this.match(TSqlParser.STATISTICS); + break; + + case 4: + this.state = 4145; + this.match(TSqlParser.WITH); + this.state = 4146; + this.match(TSqlParser.LR_BRACKET); + this.state = 4147; + this.match(TSqlParser.MAX_OUTSTANDING_IO_PER_VOLUME); + this.state = 4148; + this.match(TSqlParser.EQUAL); + this.state = 4149; + localctx.max_outstanding_io_per_volume = this.match(TSqlParser.DECIMAL); + this.state = 4150; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_db_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_db_role; + this.role_name = null; // IdContext + this.database_principal = null; // IdContext + this.new_role_name = null; // IdContext + return this; +} + +Alter_db_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_db_roleContext.prototype.constructor = Alter_db_roleContext; + +Alter_db_roleContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_db_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_db_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_db_roleContext.prototype.MEMBER = function() { + return this.getToken(TSqlParser.MEMBER, 0); +}; + +Alter_db_roleContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_db_roleContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_db_roleContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_db_roleContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_db_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_db_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_db_role(this); + } +}; + +Alter_db_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_db_role(this); + } +}; + +Alter_db_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_db_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_db_roleContext = Alter_db_roleContext; + +TSqlParser.prototype.alter_db_role = function() { + + var localctx = new Alter_db_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 346, TSqlParser.RULE_alter_db_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4153; + this.match(TSqlParser.ALTER); + this.state = 4154; + this.match(TSqlParser.ROLE); + this.state = 4155; + localctx.role_name = this.id(); + this.state = 4163; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ADD: + case TSqlParser.DROP: + this.state = 4156; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4157; + this.match(TSqlParser.MEMBER); + this.state = 4158; + localctx.database_principal = this.id(); + break; + case TSqlParser.WITH: + this.state = 4159; + this.match(TSqlParser.WITH); + this.state = 4160; + this.match(TSqlParser.NAME); + this.state = 4161; + this.match(TSqlParser.EQUAL); + this.state = 4162; + localctx.new_role_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_db_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_db_role; + this.role_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_db_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_db_roleContext.prototype.constructor = Create_db_roleContext; + +Create_db_roleContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_db_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Create_db_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_db_roleContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_db_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_db_role(this); + } +}; + +Create_db_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_db_role(this); + } +}; + +Create_db_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_db_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_db_roleContext = Create_db_roleContext; + +TSqlParser.prototype.create_db_role = function() { + + var localctx = new Create_db_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 348, TSqlParser.RULE_create_db_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4165; + this.match(TSqlParser.CREATE); + this.state = 4166; + this.match(TSqlParser.ROLE); + this.state = 4167; + localctx.role_name = this.id(); + this.state = 4170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4168; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4169; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_routeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_route; + this.route_name = null; // IdContext + this.owner_name = null; // IdContext + this.route_service_name = null; // Token + this.broker_instance_identifier = null; // Token + return this; +} + +Create_routeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_routeContext.prototype.constructor = Create_routeContext; + +Create_routeContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_routeContext.prototype.ROUTE = function() { + return this.getToken(TSqlParser.ROUTE, 0); +}; + +Create_routeContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_routeContext.prototype.ADDRESS = function() { + return this.getToken(TSqlParser.ADDRESS, 0); +}; + +Create_routeContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_routeContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_routeContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_routeContext.prototype.QUOTED_URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUOTED_URL); + } else { + return this.getToken(TSqlParser.QUOTED_URL, i); + } +}; + + +Create_routeContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_routeContext.prototype.SERVICE_NAME = function() { + return this.getToken(TSqlParser.SERVICE_NAME, 0); +}; + +Create_routeContext.prototype.BROKER_INSTANCE = function() { + return this.getToken(TSqlParser.BROKER_INSTANCE, 0); +}; + +Create_routeContext.prototype.LIFETIME = function() { + return this.getToken(TSqlParser.LIFETIME, 0); +}; + +Create_routeContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_routeContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_routeContext.prototype.MIRROR_ADDRESS = function() { + return this.getToken(TSqlParser.MIRROR_ADDRESS, 0); +}; + +Create_routeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_route(this); + } +}; + +Create_routeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_route(this); + } +}; + +Create_routeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_route(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_routeContext = Create_routeContext; + +TSqlParser.prototype.create_route = function() { + + var localctx = new Create_routeContext(this, this._ctx, this.state); + this.enterRule(localctx, 350, TSqlParser.RULE_create_route); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4172; + this.match(TSqlParser.CREATE); + this.state = 4173; + this.match(TSqlParser.ROUTE); + this.state = 4174; + localctx.route_name = this.id(); + this.state = 4177; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4175; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4176; + localctx.owner_name = this.id(); + } + + this.state = 4179; + this.match(TSqlParser.WITH); + this.state = 4186; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,445,this._ctx); + if(la_===1) { + this.state = 4181; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4180; + this.match(TSqlParser.COMMA); + } + + this.state = 4183; + this.match(TSqlParser.SERVICE_NAME); + this.state = 4184; + this.match(TSqlParser.EQUAL); + this.state = 4185; + localctx.route_service_name = this.match(TSqlParser.STRING); + + } + this.state = 4194; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,447,this._ctx); + if(la_===1) { + this.state = 4189; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4188; + this.match(TSqlParser.COMMA); + } + + this.state = 4191; + this.match(TSqlParser.BROKER_INSTANCE); + this.state = 4192; + this.match(TSqlParser.EQUAL); + this.state = 4193; + localctx.broker_instance_identifier = this.match(TSqlParser.STRING); + + } + this.state = 4202; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,449,this._ctx); + if(la_===1) { + this.state = 4197; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4196; + this.match(TSqlParser.COMMA); + } + + this.state = 4199; + this.match(TSqlParser.LIFETIME); + this.state = 4200; + this.match(TSqlParser.EQUAL); + this.state = 4201; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4205; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4204; + this.match(TSqlParser.COMMA); + } + + this.state = 4207; + this.match(TSqlParser.ADDRESS); + this.state = 4208; + this.match(TSqlParser.EQUAL); + this.state = 4209; + _la = this._input.LA(1); + if(!(_la===TSqlParser.QUOTED_URL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4214; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4210; + this.match(TSqlParser.COMMA); + this.state = 4211; + this.match(TSqlParser.MIRROR_ADDRESS); + this.state = 4212; + this.match(TSqlParser.EQUAL); + this.state = 4213; + _la = this._input.LA(1); + if(!(_la===TSqlParser.QUOTED_URL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_ruleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_rule; + this.schema_name = null; // IdContext + this.rule_name = null; // IdContext + return this; +} + +Create_ruleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_ruleContext.prototype.constructor = Create_ruleContext; + +Create_ruleContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_ruleContext.prototype.RULE = function() { + return this.getToken(TSqlParser.RULE, 0); +}; + +Create_ruleContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_ruleContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Create_ruleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_ruleContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_ruleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_rule(this); + } +}; + +Create_ruleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_rule(this); + } +}; + +Create_ruleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_rule(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_ruleContext = Create_ruleContext; + +TSqlParser.prototype.create_rule = function() { + + var localctx = new Create_ruleContext(this, this._ctx, this.state); + this.enterRule(localctx, 352, TSqlParser.RULE_create_rule); + try { + this.enterOuterAlt(localctx, 1); + this.state = 4216; + this.match(TSqlParser.CREATE); + this.state = 4217; + this.match(TSqlParser.RULE); + this.state = 4221; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,452,this._ctx); + if(la_===1) { + this.state = 4218; + localctx.schema_name = this.id(); + this.state = 4219; + this.match(TSqlParser.DOT); + + } + this.state = 4223; + localctx.rule_name = this.id(); + this.state = 4224; + this.match(TSqlParser.AS); + this.state = 4225; + this.search_condition(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_schema_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_schema_sql; + this.schema_name = null; // IdContext + return this; +} + +Alter_schema_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_schema_sqlContext.prototype.constructor = Alter_schema_sqlContext; + +Alter_schema_sqlContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_schema_sqlContext.prototype.SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SCHEMA); + } else { + return this.getToken(TSqlParser.SCHEMA, i); + } +}; + + +Alter_schema_sqlContext.prototype.TRANSFER = function() { + return this.getToken(TSqlParser.TRANSFER, 0); +}; + +Alter_schema_sqlContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_schema_sqlContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Alter_schema_sqlContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_schema_sqlContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Alter_schema_sqlContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Alter_schema_sqlContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Alter_schema_sqlContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Alter_schema_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_schema_sql(this); + } +}; + +Alter_schema_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_schema_sql(this); + } +}; + +Alter_schema_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_schema_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_schema_sqlContext = Alter_schema_sqlContext; + +TSqlParser.prototype.alter_schema_sql = function() { + + var localctx = new Alter_schema_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 354, TSqlParser.RULE_alter_schema_sql); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4227; + this.match(TSqlParser.ALTER); + this.state = 4228; + this.match(TSqlParser.SCHEMA); + this.state = 4229; + localctx.schema_name = this.id(); + this.state = 4230; + this.match(TSqlParser.TRANSFER); + this.state = 4240; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,454,this._ctx); + if(la_===1) { + this.state = 4236; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.OBJECT: + this.state = 4231; + this.match(TSqlParser.OBJECT); + break; + case TSqlParser.TYPE: + this.state = 4232; + this.match(TSqlParser.TYPE); + break; + case TSqlParser.XML: + this.state = 4233; + this.match(TSqlParser.XML); + this.state = 4234; + this.match(TSqlParser.SCHEMA); + this.state = 4235; + this.match(TSqlParser.COLLECTION); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4238; + this.match(TSqlParser.COLON); + this.state = 4239; + this.match(TSqlParser.COLON); + + } + this.state = 4242; + this.id(); + this.state = 4245; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DOT) { + this.state = 4243; + this.match(TSqlParser.DOT); + this.state = 4244; + this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_schema; + this.schema_name = null; // IdContext + this.owner_name = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Create_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_schemaContext.prototype.constructor = Create_schemaContext; + +Create_schemaContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_schemaContext.prototype.SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SCHEMA); + } else { + return this.getToken(TSqlParser.SCHEMA, i); + } +}; + + +Create_schemaContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_schemaContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_schemaContext.prototype.create_table = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Create_tableContext); + } else { + return this.getTypedRuleContext(Create_tableContext,i); + } +}; + +Create_schemaContext.prototype.create_view = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Create_viewContext); + } else { + return this.getTypedRuleContext(Create_viewContext,i); + } +}; + +Create_schemaContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_schemaContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Create_schemaContext.prototype.REVOKE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REVOKE); + } else { + return this.getToken(TSqlParser.REVOKE, i); + } +}; + + +Create_schemaContext.prototype.FROM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FROM); + } else { + return this.getToken(TSqlParser.FROM, i); + } +}; + + +Create_schemaContext.prototype.GRANT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GRANT); + } else { + return this.getToken(TSqlParser.GRANT, i); + } +}; + + +Create_schemaContext.prototype.DENY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DENY); + } else { + return this.getToken(TSqlParser.DENY, i); + } +}; + + +Create_schemaContext.prototype.SELECT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SELECT); + } else { + return this.getToken(TSqlParser.SELECT, i); + } +}; + + +Create_schemaContext.prototype.INSERT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INSERT); + } else { + return this.getToken(TSqlParser.INSERT, i); + } +}; + + +Create_schemaContext.prototype.DELETE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DELETE); + } else { + return this.getToken(TSqlParser.DELETE, i); + } +}; + + +Create_schemaContext.prototype.UPDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UPDATE); + } else { + return this.getToken(TSqlParser.UPDATE, i); + } +}; + + +Create_schemaContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Create_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_schema(this); + } +}; + +Create_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_schema(this); + } +}; + +Create_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_schemaContext = Create_schemaContext; + +TSqlParser.prototype.create_schema = function() { + + var localctx = new Create_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 356, TSqlParser.RULE_create_schema); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4247; + this.match(TSqlParser.CREATE); + this.state = 4248; + this.match(TSqlParser.SCHEMA); + this.state = 4256; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,456,this._ctx); + switch(la_) { + case 1: + this.state = 4249; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 4250; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4251; + localctx.owner_name = this.id(); + break; + + case 3: + this.state = 4252; + localctx.schema_name = this.id(); + this.state = 4253; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4254; + localctx.owner_name = this.id(); + break; + + } + this.state = 4286; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,460,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4284; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,459,this._ctx); + switch(la_) { + case 1: + this.state = 4258; + this.create_table(); + break; + + case 2: + this.state = 4259; + this.create_view(); + break; + + case 3: + this.state = 4260; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DENY || _la===TSqlParser.GRANT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4261; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELETE || _la===TSqlParser.INSERT || _la===TSqlParser.SELECT || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4262; + this.match(TSqlParser.ON); + this.state = 4266; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SCHEMA) { + this.state = 4263; + this.match(TSqlParser.SCHEMA); + this.state = 4264; + this.match(TSqlParser.COLON); + this.state = 4265; + this.match(TSqlParser.COLON); + } + + this.state = 4268; + localctx.object_name = this.id(); + this.state = 4269; + this.match(TSqlParser.TO); + this.state = 4270; + localctx.owner_name = this.id(); + break; + + case 4: + this.state = 4272; + this.match(TSqlParser.REVOKE); + this.state = 4273; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELETE || _la===TSqlParser.INSERT || _la===TSqlParser.SELECT || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4274; + this.match(TSqlParser.ON); + this.state = 4278; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SCHEMA) { + this.state = 4275; + this.match(TSqlParser.SCHEMA); + this.state = 4276; + this.match(TSqlParser.COLON); + this.state = 4277; + this.match(TSqlParser.COLON); + } + + this.state = 4280; + localctx.object_name = this.id(); + this.state = 4281; + this.match(TSqlParser.FROM); + this.state = 4282; + localctx.owner_name = this.id(); + break; + + } + } + this.state = 4288; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,460,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_schema_azure_sql_dw_and_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_schema_azure_sql_dw_and_pdw; + this.schema_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_schema_azure_sql_dw_and_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_schema_azure_sql_dw_and_pdwContext.prototype.constructor = Create_schema_azure_sql_dw_and_pdwContext; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_schema_azure_sql_dw_and_pdw(this); + } +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_schema_azure_sql_dw_and_pdw(this); + } +}; + +Create_schema_azure_sql_dw_and_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_schema_azure_sql_dw_and_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_schema_azure_sql_dw_and_pdwContext = Create_schema_azure_sql_dw_and_pdwContext; + +TSqlParser.prototype.create_schema_azure_sql_dw_and_pdw = function() { + + var localctx = new Create_schema_azure_sql_dw_and_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 358, TSqlParser.RULE_create_schema_azure_sql_dw_and_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4289; + this.match(TSqlParser.CREATE); + this.state = 4290; + this.match(TSqlParser.SCHEMA); + this.state = 4291; + localctx.schema_name = this.id(); + this.state = 4294; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4292; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4293; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_schema_azure_sql_dw_and_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_schema_azure_sql_dw_and_pdw; + this.schema_name = null; // IdContext + return this; +} + +Alter_schema_azure_sql_dw_and_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_schema_azure_sql_dw_and_pdwContext.prototype.constructor = Alter_schema_azure_sql_dw_and_pdwContext; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.TRANSFER = function() { + return this.getToken(TSqlParser.TRANSFER, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_schema_azure_sql_dw_and_pdw(this); + } +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_schema_azure_sql_dw_and_pdw(this); + } +}; + +Alter_schema_azure_sql_dw_and_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_schema_azure_sql_dw_and_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_schema_azure_sql_dw_and_pdwContext = Alter_schema_azure_sql_dw_and_pdwContext; + +TSqlParser.prototype.alter_schema_azure_sql_dw_and_pdw = function() { + + var localctx = new Alter_schema_azure_sql_dw_and_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 360, TSqlParser.RULE_alter_schema_azure_sql_dw_and_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4296; + this.match(TSqlParser.ALTER); + this.state = 4297; + this.match(TSqlParser.SCHEMA); + this.state = 4298; + localctx.schema_name = this.id(); + this.state = 4299; + this.match(TSqlParser.TRANSFER); + this.state = 4303; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,462,this._ctx); + if(la_===1) { + this.state = 4300; + this.match(TSqlParser.OBJECT); + this.state = 4301; + this.match(TSqlParser.COLON); + this.state = 4302; + this.match(TSqlParser.COLON); + + } + this.state = 4305; + this.id(); + this.state = 4308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DOT) { + this.state = 4306; + this.match(TSqlParser.DOT); + this.state = 4307; + this.match(TSqlParser.ID); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_search_property_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_search_property_list; + this.new_list_name = null; // IdContext + this.database_name = null; // IdContext + this.source_list_name = null; // IdContext + this.owner_name = null; // IdContext + return this; +} + +Create_search_property_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_search_property_listContext.prototype.constructor = Create_search_property_listContext; + +Create_search_property_listContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_search_property_listContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Create_search_property_listContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Create_search_property_listContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Create_search_property_listContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_search_property_listContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_search_property_listContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_search_property_listContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_search_property_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_search_property_list(this); + } +}; + +Create_search_property_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_search_property_list(this); + } +}; + +Create_search_property_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_search_property_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_search_property_listContext = Create_search_property_listContext; + +TSqlParser.prototype.create_search_property_list = function() { + + var localctx = new Create_search_property_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 362, TSqlParser.RULE_create_search_property_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4310; + this.match(TSqlParser.CREATE); + this.state = 4311; + this.match(TSqlParser.SEARCH); + this.state = 4312; + this.match(TSqlParser.PROPERTY); + this.state = 4313; + this.match(TSqlParser.LIST); + this.state = 4314; + localctx.new_list_name = this.id(); + this.state = 4322; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 4315; + this.match(TSqlParser.FROM); + this.state = 4319; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,464,this._ctx); + if(la_===1) { + this.state = 4316; + localctx.database_name = this.id(); + this.state = 4317; + this.match(TSqlParser.DOT); + + } + this.state = 4321; + localctx.source_list_name = this.id(); + } + + this.state = 4326; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4324; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4325; + localctx.owner_name = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_security_policyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_security_policy; + this.schema_name = null; // IdContext + this.security_policy_name = null; // IdContext + this.tvf_schema_name = null; // IdContext + this.security_predicate_function_name = null; // IdContext + this.column_name_or_arguments = null; // IdContext + this.table_schema_name = null; // IdContext + this.name = null; // IdContext + return this; +} + +Create_security_policyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_security_policyContext.prototype.constructor = Create_security_policyContext; + +Create_security_policyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_security_policyContext.prototype.SECURITY = function() { + return this.getToken(TSqlParser.SECURITY, 0); +}; + +Create_security_policyContext.prototype.POLICY = function() { + return this.getToken(TSqlParser.POLICY, 0); +}; + +Create_security_policyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_security_policyContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Create_security_policyContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Create_security_policyContext.prototype.PREDICATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PREDICATE); + } else { + return this.getToken(TSqlParser.PREDICATE, i); + } +}; + + +Create_security_policyContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_security_policyContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_security_policyContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_security_policyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_security_policyContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Create_security_policyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_security_policyContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Create_security_policyContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_security_policyContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Create_security_policyContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_security_policyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_security_policyContext.prototype.AFTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AFTER); + } else { + return this.getToken(TSqlParser.AFTER, i); + } +}; + + +Create_security_policyContext.prototype.BEFORE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BEFORE); + } else { + return this.getToken(TSqlParser.BEFORE, i); + } +}; + + +Create_security_policyContext.prototype.SCHEMABINDING = function() { + return this.getToken(TSqlParser.SCHEMABINDING, 0); +}; + +Create_security_policyContext.prototype.FILTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILTER); + } else { + return this.getToken(TSqlParser.FILTER, i); + } +}; + + +Create_security_policyContext.prototype.BLOCK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BLOCK); + } else { + return this.getToken(TSqlParser.BLOCK, i); + } +}; + + +Create_security_policyContext.prototype.INSERT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INSERT); + } else { + return this.getToken(TSqlParser.INSERT, i); + } +}; + + +Create_security_policyContext.prototype.UPDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UPDATE); + } else { + return this.getToken(TSqlParser.UPDATE, i); + } +}; + + +Create_security_policyContext.prototype.DELETE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DELETE); + } else { + return this.getToken(TSqlParser.DELETE, i); + } +}; + + +Create_security_policyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_security_policy(this); + } +}; + +Create_security_policyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_security_policy(this); + } +}; + +Create_security_policyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_security_policy(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_security_policyContext = Create_security_policyContext; + +TSqlParser.prototype.create_security_policy = function() { + + var localctx = new Create_security_policyContext(this, this._ctx, this.state); + this.enterRule(localctx, 364, TSqlParser.RULE_create_security_policy); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4328; + this.match(TSqlParser.CREATE); + this.state = 4329; + this.match(TSqlParser.SECURITY); + this.state = 4330; + this.match(TSqlParser.POLICY); + this.state = 4334; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,467,this._ctx); + if(la_===1) { + this.state = 4331; + localctx.schema_name = this.id(); + this.state = 4332; + this.match(TSqlParser.DOT); + + } + this.state = 4336; + localctx.security_policy_name = this.id(); + this.state = 4377; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4338; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4337; + this.match(TSqlParser.COMMA); + } + + this.state = 4340; + this.match(TSqlParser.ADD); + this.state = 4342; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.BLOCK || _la===TSqlParser.FILTER) { + this.state = 4341; + _la = this._input.LA(1); + if(!(_la===TSqlParser.BLOCK || _la===TSqlParser.FILTER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4344; + this.match(TSqlParser.PREDICATE); + this.state = 4345; + localctx.tvf_schema_name = this.id(); + this.state = 4346; + this.match(TSqlParser.DOT); + this.state = 4347; + localctx.security_predicate_function_name = this.id(); + this.state = 4348; + this.match(TSqlParser.LR_BRACKET); + this.state = 4353; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 4350; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4349; + this.match(TSqlParser.COMMA); + } + + this.state = 4352; + localctx.column_name_or_arguments = this.id(); + this.state = 4355; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 4357; + this.match(TSqlParser.RR_BRACKET); + this.state = 4358; + this.match(TSqlParser.ON); + this.state = 4359; + localctx.table_schema_name = this.id(); + this.state = 4360; + this.match(TSqlParser.DOT); + this.state = 4361; + localctx.name = this.id(); + this.state = 4374; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,475,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4372; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,474,this._ctx); + switch(la_) { + case 1: + this.state = 4363; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4362; + this.match(TSqlParser.COMMA); + } + + this.state = 4365; + this.match(TSqlParser.AFTER); + this.state = 4366; + _la = this._input.LA(1); + if(!(_la===TSqlParser.INSERT || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4368; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4367; + this.match(TSqlParser.COMMA); + } + + this.state = 4370; + this.match(TSqlParser.BEFORE); + this.state = 4371; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELETE || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 4376; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,475,this._ctx); + } + + this.state = 4379; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.ADD || _la===TSqlParser.COMMA); + this.state = 4391; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,478,this._ctx); + if(la_===1) { + this.state = 4381; + this.match(TSqlParser.WITH); + this.state = 4382; + this.match(TSqlParser.LR_BRACKET); + this.state = 4383; + this.match(TSqlParser.STATE); + this.state = 4384; + this.match(TSqlParser.EQUAL); + this.state = 4385; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4388; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SCHEMABINDING) { + this.state = 4386; + this.match(TSqlParser.SCHEMABINDING); + this.state = 4387; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 4390; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 4396; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4393; + this.match(TSqlParser.NOT); + this.state = 4394; + this.match(TSqlParser.FOR); + this.state = 4395; + this.match(TSqlParser.REPLICATION); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_sequenceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_sequence; + this.schema_name = null; // IdContext + this.sequence_name = null; // IdContext + this.sequnce_increment = null; // Token + return this; +} + +Alter_sequenceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_sequenceContext.prototype.constructor = Alter_sequenceContext; + +Alter_sequenceContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_sequenceContext.prototype.SEQUENCE = function() { + return this.getToken(TSqlParser.SEQUENCE, 0); +}; + +Alter_sequenceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_sequenceContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_sequenceContext.prototype.RESTART = function() { + return this.getToken(TSqlParser.RESTART, 0); +}; + +Alter_sequenceContext.prototype.INCREMENT = function() { + return this.getToken(TSqlParser.INCREMENT, 0); +}; + +Alter_sequenceContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Alter_sequenceContext.prototype.MINVALUE = function() { + return this.getToken(TSqlParser.MINVALUE, 0); +}; + +Alter_sequenceContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_sequenceContext.prototype.NO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO); + } else { + return this.getToken(TSqlParser.NO, i); + } +}; + + +Alter_sequenceContext.prototype.MAXVALUE = function() { + return this.getToken(TSqlParser.MAXVALUE, 0); +}; + +Alter_sequenceContext.prototype.CYCLE = function() { + return this.getToken(TSqlParser.CYCLE, 0); +}; + +Alter_sequenceContext.prototype.CACHE = function() { + return this.getToken(TSqlParser.CACHE, 0); +}; + +Alter_sequenceContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_sequenceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_sequence(this); + } +}; + +Alter_sequenceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_sequence(this); + } +}; + +Alter_sequenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_sequence(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_sequenceContext = Alter_sequenceContext; + +TSqlParser.prototype.alter_sequence = function() { + + var localctx = new Alter_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 366, TSqlParser.RULE_alter_sequence); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4398; + this.match(TSqlParser.ALTER); + this.state = 4399; + this.match(TSqlParser.SEQUENCE); + this.state = 4403; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,480,this._ctx); + if(la_===1) { + this.state = 4400; + localctx.schema_name = this.id(); + this.state = 4401; + this.match(TSqlParser.DOT); + + } + this.state = 4405; + localctx.sequence_name = this.id(); + this.state = 4411; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RESTART) { + this.state = 4406; + this.match(TSqlParser.RESTART); + this.state = 4409; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,481,this._ctx); + if(la_===1) { + this.state = 4407; + this.match(TSqlParser.WITH); + this.state = 4408; + this.match(TSqlParser.DECIMAL); + + } + } + + this.state = 4416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INCREMENT) { + this.state = 4413; + this.match(TSqlParser.INCREMENT); + this.state = 4414; + this.match(TSqlParser.BY); + this.state = 4415; + localctx.sequnce_increment = this.match(TSqlParser.DECIMAL); + } + + this.state = 4422; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,484,this._ctx); + if(la_===1) { + this.state = 4418; + this.match(TSqlParser.MINVALUE); + this.state = 4419; + this.match(TSqlParser.DECIMAL); + + } else if(la_===2) { + this.state = 4420; + this.match(TSqlParser.NO); + this.state = 4421; + this.match(TSqlParser.MINVALUE); + + } + this.state = 4428; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,485,this._ctx); + if(la_===1) { + this.state = 4424; + this.match(TSqlParser.MAXVALUE); + this.state = 4425; + this.match(TSqlParser.DECIMAL); + + } else if(la_===2) { + this.state = 4426; + this.match(TSqlParser.NO); + this.state = 4427; + this.match(TSqlParser.MAXVALUE); + + } + this.state = 4433; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,486,this._ctx); + if(la_===1) { + this.state = 4430; + this.match(TSqlParser.CYCLE); + + } else if(la_===2) { + this.state = 4431; + this.match(TSqlParser.NO); + this.state = 4432; + this.match(TSqlParser.CYCLE); + + } + this.state = 4439; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,487,this._ctx); + if(la_===1) { + this.state = 4435; + this.match(TSqlParser.CACHE); + this.state = 4436; + this.match(TSqlParser.DECIMAL); + + } else if(la_===2) { + this.state = 4437; + this.match(TSqlParser.NO); + this.state = 4438; + this.match(TSqlParser.CACHE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_sequenceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_sequence; + this.schema_name = null; // IdContext + this.sequence_name = null; // IdContext + return this; +} + +Create_sequenceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_sequenceContext.prototype.constructor = Create_sequenceContext; + +Create_sequenceContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_sequenceContext.prototype.SEQUENCE = function() { + return this.getToken(TSqlParser.SEQUENCE, 0); +}; + +Create_sequenceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_sequenceContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_sequenceContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_sequenceContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Create_sequenceContext.prototype.START = function() { + return this.getToken(TSqlParser.START, 0); +}; + +Create_sequenceContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_sequenceContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_sequenceContext.prototype.INCREMENT = function() { + return this.getToken(TSqlParser.INCREMENT, 0); +}; + +Create_sequenceContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_sequenceContext.prototype.MINVALUE = function() { + return this.getToken(TSqlParser.MINVALUE, 0); +}; + +Create_sequenceContext.prototype.NO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO); + } else { + return this.getToken(TSqlParser.NO, i); + } +}; + + +Create_sequenceContext.prototype.MAXVALUE = function() { + return this.getToken(TSqlParser.MAXVALUE, 0); +}; + +Create_sequenceContext.prototype.CYCLE = function() { + return this.getToken(TSqlParser.CYCLE, 0); +}; + +Create_sequenceContext.prototype.CACHE = function() { + return this.getToken(TSqlParser.CACHE, 0); +}; + +Create_sequenceContext.prototype.MINUS = function() { + return this.getToken(TSqlParser.MINUS, 0); +}; + +Create_sequenceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_sequence(this); + } +}; + +Create_sequenceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_sequence(this); + } +}; + +Create_sequenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_sequence(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_sequenceContext = Create_sequenceContext; + +TSqlParser.prototype.create_sequence = function() { + + var localctx = new Create_sequenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 368, TSqlParser.RULE_create_sequence); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4441; + this.match(TSqlParser.CREATE); + this.state = 4442; + this.match(TSqlParser.SEQUENCE); + this.state = 4446; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,488,this._ctx); + if(la_===1) { + this.state = 4443; + localctx.schema_name = this.id(); + this.state = 4444; + this.match(TSqlParser.DOT); + + } + this.state = 4448; + localctx.sequence_name = this.id(); + this.state = 4451; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 4449; + this.match(TSqlParser.AS); + this.state = 4450; + this.data_type(); + } + + this.state = 4456; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,490,this._ctx); + if(la_===1) { + this.state = 4453; + this.match(TSqlParser.START); + this.state = 4454; + this.match(TSqlParser.WITH); + this.state = 4455; + this.match(TSqlParser.DECIMAL); + + } + this.state = 4464; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INCREMENT) { + this.state = 4458; + this.match(TSqlParser.INCREMENT); + this.state = 4459; + this.match(TSqlParser.BY); + this.state = 4461; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MINUS) { + this.state = 4460; + this.match(TSqlParser.MINUS); + } + + this.state = 4463; + this.match(TSqlParser.DECIMAL); + } + + this.state = 4472; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,494,this._ctx); + if(la_===1) { + this.state = 4466; + this.match(TSqlParser.MINVALUE); + this.state = 4468; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,493,this._ctx); + if(la_===1) { + this.state = 4467; + this.match(TSqlParser.DECIMAL); + + } + + } else if(la_===2) { + this.state = 4470; + this.match(TSqlParser.NO); + this.state = 4471; + this.match(TSqlParser.MINVALUE); + + } + this.state = 4480; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,496,this._ctx); + if(la_===1) { + this.state = 4474; + this.match(TSqlParser.MAXVALUE); + this.state = 4476; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,495,this._ctx); + if(la_===1) { + this.state = 4475; + this.match(TSqlParser.DECIMAL); + + } + + } else if(la_===2) { + this.state = 4478; + this.match(TSqlParser.NO); + this.state = 4479; + this.match(TSqlParser.MAXVALUE); + + } + this.state = 4485; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,497,this._ctx); + if(la_===1) { + this.state = 4482; + this.match(TSqlParser.CYCLE); + + } else if(la_===2) { + this.state = 4483; + this.match(TSqlParser.NO); + this.state = 4484; + this.match(TSqlParser.CYCLE); + + } + this.state = 4493; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,499,this._ctx); + if(la_===1) { + this.state = 4487; + this.match(TSqlParser.CACHE); + this.state = 4489; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,498,this._ctx); + if(la_===1) { + this.state = 4488; + this.match(TSqlParser.DECIMAL); + + } + + } else if(la_===2) { + this.state = 4491; + this.match(TSqlParser.NO); + this.state = 4492; + this.match(TSqlParser.CACHE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_auditContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_audit; + this.audit_name = null; // IdContext + this.filepath = null; // Token + this.max_rollover_files = null; // Token + this.max_files = null; // Token + this.queue_delay = null; // Token + this.event_field_name = null; // IdContext + this.new_audit_name = null; // IdContext + return this; +} + +Alter_server_auditContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_auditContext.prototype.constructor = Alter_server_auditContext; + +Alter_server_auditContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_auditContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Alter_server_auditContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Alter_server_auditContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_server_auditContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Alter_server_auditContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Alter_server_auditContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Alter_server_auditContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_server_auditContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_server_auditContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Alter_server_auditContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_server_auditContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_server_auditContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_server_auditContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Alter_server_auditContext.prototype.APPLICATION_LOG = function() { + return this.getToken(TSqlParser.APPLICATION_LOG, 0); +}; + +Alter_server_auditContext.prototype.SECURITY_LOG = function() { + return this.getToken(TSqlParser.SECURITY_LOG, 0); +}; + +Alter_server_auditContext.prototype.QUEUE_DELAY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUEUE_DELAY); + } else { + return this.getToken(TSqlParser.QUEUE_DELAY, i); + } +}; + + +Alter_server_auditContext.prototype.ON_FAILURE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON_FAILURE); + } else { + return this.getToken(TSqlParser.ON_FAILURE, i); + } +}; + + +Alter_server_auditContext.prototype.STATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATE); + } else { + return this.getToken(TSqlParser.STATE, i); + } +}; + + +Alter_server_auditContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_server_auditContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_server_auditContext.prototype.AND = function() { + return this.getToken(TSqlParser.AND, 0); +}; + +Alter_server_auditContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Alter_server_auditContext.prototype.CONTINUE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTINUE); + } else { + return this.getToken(TSqlParser.CONTINUE, i); + } +}; + + +Alter_server_auditContext.prototype.SHUTDOWN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SHUTDOWN); + } else { + return this.getToken(TSqlParser.SHUTDOWN, i); + } +}; + + +Alter_server_auditContext.prototype.FAIL_OPERATION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FAIL_OPERATION); + } else { + return this.getToken(TSqlParser.FAIL_OPERATION, i); + } +}; + + +Alter_server_auditContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Alter_server_auditContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Alter_server_auditContext.prototype.GREATER = function() { + return this.getToken(TSqlParser.GREATER, 0); +}; + +Alter_server_auditContext.prototype.LESS = function() { + return this.getToken(TSqlParser.LESS, 0); +}; + +Alter_server_auditContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_server_auditContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Alter_server_auditContext.prototype.EXCLAMATION = function() { + return this.getToken(TSqlParser.EXCLAMATION, 0); +}; + +Alter_server_auditContext.prototype.FILEPATH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILEPATH); + } else { + return this.getToken(TSqlParser.FILEPATH, i); + } +}; + + +Alter_server_auditContext.prototype.MAXSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAXSIZE); + } else { + return this.getToken(TSqlParser.MAXSIZE, i); + } +}; + + +Alter_server_auditContext.prototype.MAX_ROLLOVER_FILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_ROLLOVER_FILES); + } else { + return this.getToken(TSqlParser.MAX_ROLLOVER_FILES, i); + } +}; + + +Alter_server_auditContext.prototype.MAX_FILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_FILES); + } else { + return this.getToken(TSqlParser.MAX_FILES, i); + } +}; + + +Alter_server_auditContext.prototype.RESERVE_DISK_SPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESERVE_DISK_SPACE); + } else { + return this.getToken(TSqlParser.RESERVE_DISK_SPACE, i); + } +}; + + +Alter_server_auditContext.prototype.UNLIMITED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLIMITED); + } else { + return this.getToken(TSqlParser.UNLIMITED, i); + } +}; + + +Alter_server_auditContext.prototype.MB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MB); + } else { + return this.getToken(TSqlParser.MB, i); + } +}; + + +Alter_server_auditContext.prototype.GB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GB); + } else { + return this.getToken(TSqlParser.GB, i); + } +}; + + +Alter_server_auditContext.prototype.TB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TB); + } else { + return this.getToken(TSqlParser.TB, i); + } +}; + + +Alter_server_auditContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_audit(this); + } +}; + +Alter_server_auditContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_audit(this); + } +}; + +Alter_server_auditContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_audit(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_auditContext = Alter_server_auditContext; + +TSqlParser.prototype.alter_server_audit = function() { + + var localctx = new Alter_server_auditContext(this, this._ctx, this.state); + this.enterRule(localctx, 370, TSqlParser.RULE_alter_server_audit); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4495; + this.match(TSqlParser.ALTER); + this.state = 4496; + this.match(TSqlParser.SERVER); + this.state = 4497; + this.match(TSqlParser.AUDIT); + this.state = 4498; + localctx.audit_name = this.id(); + this.state = 4630; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,524,this._ctx); + switch(la_) { + case 1: + this.state = 4546; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TO) { + this.state = 4499; + this.match(TSqlParser.TO); + this.state = 4544; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILE: + this.state = 4500; + this.match(TSqlParser.FILE); + + this.state = 4501; + this.match(TSqlParser.LR_BRACKET); + this.state = 4538; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FILEPATH || ((((_la - 578)) & ~0x1f) == 0 && ((1 << (_la - 578)) & ((1 << (TSqlParser.MAX_FILES - 578)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 578)) | (1 << (TSqlParser.MAXSIZE - 578)))) !== 0) || _la===TSqlParser.RESERVE_DISK_SPACE || _la===TSqlParser.COMMA) { + this.state = 4536; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,506,this._ctx); + switch(la_) { + case 1: + this.state = 4503; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4502; + this.match(TSqlParser.COMMA); + } + + this.state = 4505; + this.match(TSqlParser.FILEPATH); + this.state = 4506; + this.match(TSqlParser.EQUAL); + this.state = 4507; + localctx.filepath = this.match(TSqlParser.STRING); + break; + + case 2: + this.state = 4509; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4508; + this.match(TSqlParser.COMMA); + } + + this.state = 4511; + this.match(TSqlParser.MAXSIZE); + this.state = 4512; + this.match(TSqlParser.EQUAL); + this.state = 4516; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 4513; + this.match(TSqlParser.DECIMAL); + this.state = 4514; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GB || _la===TSqlParser.MB || _la===TSqlParser.TB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.UNLIMITED: + this.state = 4515; + this.match(TSqlParser.UNLIMITED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 4519; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4518; + this.match(TSqlParser.COMMA); + } + + this.state = 4521; + this.match(TSqlParser.MAX_ROLLOVER_FILES); + this.state = 4522; + this.match(TSqlParser.EQUAL); + this.state = 4523; + localctx.max_rollover_files = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.UNLIMITED || _la===TSqlParser.DECIMAL)) { + localctx.max_rollover_files = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 4525; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4524; + this.match(TSqlParser.COMMA); + } + + this.state = 4527; + this.match(TSqlParser.MAX_FILES); + this.state = 4528; + this.match(TSqlParser.EQUAL); + this.state = 4529; + localctx.max_files = this.match(TSqlParser.DECIMAL); + break; + + case 5: + this.state = 4531; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4530; + this.match(TSqlParser.COMMA); + } + + this.state = 4533; + this.match(TSqlParser.RESERVE_DISK_SPACE); + this.state = 4534; + this.match(TSqlParser.EQUAL); + this.state = 4535; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + this.state = 4540; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4541; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.APPLICATION_LOG: + this.state = 4542; + this.match(TSqlParser.APPLICATION_LOG); + break; + case TSqlParser.SECURITY_LOG: + this.state = 4543; + this.match(TSqlParser.SECURITY_LOG); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 4574; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,515,this._ctx); + if(la_===1) { + this.state = 4548; + this.match(TSqlParser.WITH); + this.state = 4549; + this.match(TSqlParser.LR_BRACKET); + this.state = 4570; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.ON_FAILURE || _la===TSqlParser.STATE || _la===TSqlParser.QUEUE_DELAY || _la===TSqlParser.COMMA) { + this.state = 4568; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,513,this._ctx); + switch(la_) { + case 1: + this.state = 4551; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4550; + this.match(TSqlParser.COMMA); + } + + this.state = 4553; + this.match(TSqlParser.QUEUE_DELAY); + this.state = 4554; + this.match(TSqlParser.EQUAL); + this.state = 4555; + localctx.queue_delay = this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4557; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4556; + this.match(TSqlParser.COMMA); + } + + this.state = 4559; + this.match(TSqlParser.ON_FAILURE); + this.state = 4560; + this.match(TSqlParser.EQUAL); + this.state = 4561; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTINUE || _la===TSqlParser.SHUTDOWN || _la===TSqlParser.FAIL_OPERATION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + this.state = 4563; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4562; + this.match(TSqlParser.COMMA); + } + + this.state = 4565; + this.match(TSqlParser.STATE); + this.state = 4566; + this.match(TSqlParser.EQUAL); + this.state = 4567; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + this.state = 4572; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4573; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 4622; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 4576; + this.match(TSqlParser.WHERE); + this.state = 4620; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,522,this._ctx); + switch(la_) { + case 1: + this.state = 4578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4577; + this.match(TSqlParser.COMMA); + } + + this.state = 4581; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4580; + this.match(TSqlParser.NOT); + } + + this.state = 4583; + localctx.event_field_name = this.id(); + this.state = 4595; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,518,this._ctx); + switch(la_) { + case 1: + this.state = 4584; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 4585; + this.match(TSqlParser.LESS); + this.state = 4586; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 4587; + this.match(TSqlParser.EXCLAMATION); + this.state = 4588; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 4589; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 4590; + this.match(TSqlParser.GREATER); + this.state = 4591; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 4592; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 4593; + this.match(TSqlParser.LESS); + this.state = 4594; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 4597; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4600; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4599; + this.match(TSqlParser.COMMA); + } + + this.state = 4602; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AND || _la===TSqlParser.OR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4604; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4603; + this.match(TSqlParser.NOT); + } + + this.state = 4617; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,521,this._ctx); + switch(la_) { + case 1: + this.state = 4606; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 4607; + this.match(TSqlParser.LESS); + this.state = 4608; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 4609; + this.match(TSqlParser.EXCLAMATION); + this.state = 4610; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 4611; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 4612; + this.match(TSqlParser.GREATER); + this.state = 4613; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 4614; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 4615; + this.match(TSqlParser.LESS); + this.state = 4616; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 4619; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + + break; + + case 2: + this.state = 4624; + this.match(TSqlParser.REMOVE); + this.state = 4625; + this.match(TSqlParser.WHERE); + break; + + case 3: + this.state = 4626; + this.match(TSqlParser.MODIFY); + this.state = 4627; + this.match(TSqlParser.NAME); + this.state = 4628; + this.match(TSqlParser.EQUAL); + this.state = 4629; + localctx.new_audit_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_server_auditContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_server_audit; + this.audit_name = null; // IdContext + this.filepath = null; // Token + this.max_rollover_files = null; // Token + this.max_files = null; // Token + this.queue_delay = null; // Token + this.audit_guid = null; // IdContext + this.event_field_name = null; // IdContext + this.new_audit_name = null; // IdContext + return this; +} + +Create_server_auditContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_server_auditContext.prototype.constructor = Create_server_auditContext; + +Create_server_auditContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_server_auditContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_server_auditContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Create_server_auditContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_server_auditContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Create_server_auditContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Create_server_auditContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Create_server_auditContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Create_server_auditContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_server_auditContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Create_server_auditContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_server_auditContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_server_auditContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_server_auditContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Create_server_auditContext.prototype.APPLICATION_LOG = function() { + return this.getToken(TSqlParser.APPLICATION_LOG, 0); +}; + +Create_server_auditContext.prototype.SECURITY_LOG = function() { + return this.getToken(TSqlParser.SECURITY_LOG, 0); +}; + +Create_server_auditContext.prototype.QUEUE_DELAY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.QUEUE_DELAY); + } else { + return this.getToken(TSqlParser.QUEUE_DELAY, i); + } +}; + + +Create_server_auditContext.prototype.ON_FAILURE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON_FAILURE); + } else { + return this.getToken(TSqlParser.ON_FAILURE, i); + } +}; + + +Create_server_auditContext.prototype.STATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATE); + } else { + return this.getToken(TSqlParser.STATE, i); + } +}; + + +Create_server_auditContext.prototype.AUDIT_GUID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AUDIT_GUID); + } else { + return this.getToken(TSqlParser.AUDIT_GUID, i); + } +}; + + +Create_server_auditContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_server_auditContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Create_server_auditContext.prototype.AND = function() { + return this.getToken(TSqlParser.AND, 0); +}; + +Create_server_auditContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_server_auditContext.prototype.CONTINUE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTINUE); + } else { + return this.getToken(TSqlParser.CONTINUE, i); + } +}; + + +Create_server_auditContext.prototype.SHUTDOWN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SHUTDOWN); + } else { + return this.getToken(TSqlParser.SHUTDOWN, i); + } +}; + + +Create_server_auditContext.prototype.FAIL_OPERATION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FAIL_OPERATION); + } else { + return this.getToken(TSqlParser.FAIL_OPERATION, i); + } +}; + + +Create_server_auditContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_server_auditContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_server_auditContext.prototype.GREATER = function() { + return this.getToken(TSqlParser.GREATER, 0); +}; + +Create_server_auditContext.prototype.LESS = function() { + return this.getToken(TSqlParser.LESS, 0); +}; + +Create_server_auditContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_server_auditContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Create_server_auditContext.prototype.EXCLAMATION = function() { + return this.getToken(TSqlParser.EXCLAMATION, 0); +}; + +Create_server_auditContext.prototype.FILEPATH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILEPATH); + } else { + return this.getToken(TSqlParser.FILEPATH, i); + } +}; + + +Create_server_auditContext.prototype.MAXSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAXSIZE); + } else { + return this.getToken(TSqlParser.MAXSIZE, i); + } +}; + + +Create_server_auditContext.prototype.MAX_ROLLOVER_FILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_ROLLOVER_FILES); + } else { + return this.getToken(TSqlParser.MAX_ROLLOVER_FILES, i); + } +}; + + +Create_server_auditContext.prototype.MAX_FILES = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_FILES); + } else { + return this.getToken(TSqlParser.MAX_FILES, i); + } +}; + + +Create_server_auditContext.prototype.RESERVE_DISK_SPACE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESERVE_DISK_SPACE); + } else { + return this.getToken(TSqlParser.RESERVE_DISK_SPACE, i); + } +}; + + +Create_server_auditContext.prototype.UNLIMITED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.UNLIMITED); + } else { + return this.getToken(TSqlParser.UNLIMITED, i); + } +}; + + +Create_server_auditContext.prototype.MB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MB); + } else { + return this.getToken(TSqlParser.MB, i); + } +}; + + +Create_server_auditContext.prototype.GB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GB); + } else { + return this.getToken(TSqlParser.GB, i); + } +}; + + +Create_server_auditContext.prototype.TB = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TB); + } else { + return this.getToken(TSqlParser.TB, i); + } +}; + + +Create_server_auditContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_server_audit(this); + } +}; + +Create_server_auditContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_server_audit(this); + } +}; + +Create_server_auditContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_server_audit(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_server_auditContext = Create_server_auditContext; + +TSqlParser.prototype.create_server_audit = function() { + + var localctx = new Create_server_auditContext(this, this._ctx, this.state); + this.enterRule(localctx, 372, TSqlParser.RULE_create_server_audit); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4632; + this.match(TSqlParser.CREATE); + this.state = 4633; + this.match(TSqlParser.SERVER); + this.state = 4634; + this.match(TSqlParser.AUDIT); + this.state = 4635; + localctx.audit_name = this.id(); + this.state = 4773; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,550,this._ctx); + switch(la_) { + case 1: + this.state = 4683; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TO) { + this.state = 4636; + this.match(TSqlParser.TO); + this.state = 4681; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILE: + this.state = 4637; + this.match(TSqlParser.FILE); + + this.state = 4638; + this.match(TSqlParser.LR_BRACKET); + this.state = 4675; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FILEPATH || ((((_la - 578)) & ~0x1f) == 0 && ((1 << (_la - 578)) & ((1 << (TSqlParser.MAX_FILES - 578)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 578)) | (1 << (TSqlParser.MAXSIZE - 578)))) !== 0) || _la===TSqlParser.RESERVE_DISK_SPACE || _la===TSqlParser.COMMA) { + this.state = 4673; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,531,this._ctx); + switch(la_) { + case 1: + this.state = 4640; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4639; + this.match(TSqlParser.COMMA); + } + + this.state = 4642; + this.match(TSqlParser.FILEPATH); + this.state = 4643; + this.match(TSqlParser.EQUAL); + this.state = 4644; + localctx.filepath = this.match(TSqlParser.STRING); + break; + + case 2: + this.state = 4646; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4645; + this.match(TSqlParser.COMMA); + } + + this.state = 4648; + this.match(TSqlParser.MAXSIZE); + this.state = 4649; + this.match(TSqlParser.EQUAL); + this.state = 4653; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 4650; + this.match(TSqlParser.DECIMAL); + this.state = 4651; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GB || _la===TSqlParser.MB || _la===TSqlParser.TB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.UNLIMITED: + this.state = 4652; + this.match(TSqlParser.UNLIMITED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 4656; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4655; + this.match(TSqlParser.COMMA); + } + + this.state = 4658; + this.match(TSqlParser.MAX_ROLLOVER_FILES); + this.state = 4659; + this.match(TSqlParser.EQUAL); + this.state = 4660; + localctx.max_rollover_files = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.UNLIMITED || _la===TSqlParser.DECIMAL)) { + localctx.max_rollover_files = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 4662; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4661; + this.match(TSqlParser.COMMA); + } + + this.state = 4664; + this.match(TSqlParser.MAX_FILES); + this.state = 4665; + this.match(TSqlParser.EQUAL); + this.state = 4666; + localctx.max_files = this.match(TSqlParser.DECIMAL); + break; + + case 5: + this.state = 4668; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4667; + this.match(TSqlParser.COMMA); + } + + this.state = 4670; + this.match(TSqlParser.RESERVE_DISK_SPACE); + this.state = 4671; + this.match(TSqlParser.EQUAL); + this.state = 4672; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + this.state = 4677; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4678; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.APPLICATION_LOG: + this.state = 4679; + this.match(TSqlParser.APPLICATION_LOG); + break; + case TSqlParser.SECURITY_LOG: + this.state = 4680; + this.match(TSqlParser.SECURITY_LOG); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 4717; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,541,this._ctx); + if(la_===1) { + this.state = 4685; + this.match(TSqlParser.WITH); + this.state = 4686; + this.match(TSqlParser.LR_BRACKET); + this.state = 4713; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.ON_FAILURE || _la===TSqlParser.STATE || _la===TSqlParser.AUDIT_GUID || _la===TSqlParser.QUEUE_DELAY || _la===TSqlParser.COMMA) { + this.state = 4711; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,539,this._ctx); + switch(la_) { + case 1: + this.state = 4688; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4687; + this.match(TSqlParser.COMMA); + } + + this.state = 4690; + this.match(TSqlParser.QUEUE_DELAY); + this.state = 4691; + this.match(TSqlParser.EQUAL); + this.state = 4692; + localctx.queue_delay = this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4694; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4693; + this.match(TSqlParser.COMMA); + } + + this.state = 4696; + this.match(TSqlParser.ON_FAILURE); + this.state = 4697; + this.match(TSqlParser.EQUAL); + this.state = 4698; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTINUE || _la===TSqlParser.SHUTDOWN || _la===TSqlParser.FAIL_OPERATION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 3: + this.state = 4700; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4699; + this.match(TSqlParser.COMMA); + } + + this.state = 4702; + this.match(TSqlParser.STATE); + this.state = 4703; + this.match(TSqlParser.EQUAL); + this.state = 4704; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 4706; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4705; + this.match(TSqlParser.COMMA); + } + + this.state = 4708; + this.match(TSqlParser.AUDIT_GUID); + this.state = 4709; + this.match(TSqlParser.EQUAL); + this.state = 4710; + localctx.audit_guid = this.id(); + break; + + } + this.state = 4715; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4716; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 4765; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 4719; + this.match(TSqlParser.WHERE); + this.state = 4763; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,548,this._ctx); + switch(la_) { + case 1: + this.state = 4721; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4720; + this.match(TSqlParser.COMMA); + } + + this.state = 4724; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4723; + this.match(TSqlParser.NOT); + } + + this.state = 4726; + localctx.event_field_name = this.id(); + this.state = 4738; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,544,this._ctx); + switch(la_) { + case 1: + this.state = 4727; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 4728; + this.match(TSqlParser.LESS); + this.state = 4729; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 4730; + this.match(TSqlParser.EXCLAMATION); + this.state = 4731; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 4732; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 4733; + this.match(TSqlParser.GREATER); + this.state = 4734; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 4735; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 4736; + this.match(TSqlParser.LESS); + this.state = 4737; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 4740; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 4743; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4742; + this.match(TSqlParser.COMMA); + } + + this.state = 4745; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AND || _la===TSqlParser.OR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 4746; + this.match(TSqlParser.NOT); + } + + this.state = 4760; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,547,this._ctx); + switch(la_) { + case 1: + this.state = 4749; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.state = 4750; + this.match(TSqlParser.LESS); + this.state = 4751; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.state = 4752; + this.match(TSqlParser.EXCLAMATION); + this.state = 4753; + this.match(TSqlParser.EQUAL); + break; + + case 4: + this.state = 4754; + this.match(TSqlParser.GREATER); + break; + + case 5: + this.state = 4755; + this.match(TSqlParser.GREATER); + this.state = 4756; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.state = 4757; + this.match(TSqlParser.LESS); + break; + + case 7: + this.state = 4758; + this.match(TSqlParser.LESS); + this.state = 4759; + this.match(TSqlParser.EQUAL); + break; + + } + this.state = 4762; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + + break; + + case 2: + this.state = 4767; + this.match(TSqlParser.REMOVE); + this.state = 4768; + this.match(TSqlParser.WHERE); + break; + + case 3: + this.state = 4769; + this.match(TSqlParser.MODIFY); + this.state = 4770; + this.match(TSqlParser.NAME); + this.state = 4771; + this.match(TSqlParser.EQUAL); + this.state = 4772; + localctx.new_audit_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_audit_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_audit_specification; + this.audit_specification_name = null; // IdContext + this.audit_name = null; // IdContext + this.audit_action_group_name = null; // IdContext + return this; +} + +Alter_server_audit_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_audit_specificationContext.prototype.constructor = Alter_server_audit_specificationContext; + +Alter_server_audit_specificationContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_audit_specificationContext.prototype.SERVER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVER); + } else { + return this.getToken(TSqlParser.SERVER, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.AUDIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AUDIT); + } else { + return this.getToken(TSqlParser.AUDIT, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.SPECIFICATION = function() { + return this.getToken(TSqlParser.SPECIFICATION, 0); +}; + +Alter_server_audit_specificationContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_server_audit_specificationContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Alter_server_audit_specificationContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_server_audit_specificationContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Alter_server_audit_specificationContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_server_audit_specificationContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DROP); + } else { + return this.getToken(TSqlParser.DROP, i); + } +}; + + +Alter_server_audit_specificationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_server_audit_specificationContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_server_audit_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_audit_specification(this); + } +}; + +Alter_server_audit_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_audit_specification(this); + } +}; + +Alter_server_audit_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_audit_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_audit_specificationContext = Alter_server_audit_specificationContext; + +TSqlParser.prototype.alter_server_audit_specification = function() { + + var localctx = new Alter_server_audit_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 374, TSqlParser.RULE_alter_server_audit_specification); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4775; + this.match(TSqlParser.ALTER); + this.state = 4776; + this.match(TSqlParser.SERVER); + this.state = 4777; + this.match(TSqlParser.AUDIT); + this.state = 4778; + this.match(TSqlParser.SPECIFICATION); + this.state = 4779; + localctx.audit_specification_name = this.id(); + this.state = 4784; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 4780; + this.match(TSqlParser.FOR); + this.state = 4781; + this.match(TSqlParser.SERVER); + this.state = 4782; + this.match(TSqlParser.AUDIT); + this.state = 4783; + localctx.audit_name = this.id(); + } + + this.state = 4793; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,552,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4786; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4787; + this.match(TSqlParser.LR_BRACKET); + this.state = 4788; + localctx.audit_action_group_name = this.id(); + this.state = 4789; + this.match(TSqlParser.RR_BRACKET); + } + this.state = 4795; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,552,this._ctx); + } + + this.state = 4802; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,553,this._ctx); + if(la_===1) { + this.state = 4796; + this.match(TSqlParser.WITH); + this.state = 4797; + this.match(TSqlParser.LR_BRACKET); + this.state = 4798; + this.match(TSqlParser.STATE); + this.state = 4799; + this.match(TSqlParser.EQUAL); + this.state = 4800; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4801; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_server_audit_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_server_audit_specification; + this.audit_specification_name = null; // IdContext + this.audit_name = null; // IdContext + this.audit_action_group_name = null; // IdContext + return this; +} + +Create_server_audit_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_server_audit_specificationContext.prototype.constructor = Create_server_audit_specificationContext; + +Create_server_audit_specificationContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_server_audit_specificationContext.prototype.SERVER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVER); + } else { + return this.getToken(TSqlParser.SERVER, i); + } +}; + + +Create_server_audit_specificationContext.prototype.AUDIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AUDIT); + } else { + return this.getToken(TSqlParser.AUDIT, i); + } +}; + + +Create_server_audit_specificationContext.prototype.SPECIFICATION = function() { + return this.getToken(TSqlParser.SPECIFICATION, 0); +}; + +Create_server_audit_specificationContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_server_audit_specificationContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_server_audit_specificationContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Create_server_audit_specificationContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_server_audit_specificationContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_server_audit_specificationContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_server_audit_specificationContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Create_server_audit_specificationContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_server_audit_specificationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_server_audit_specificationContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_server_audit_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_server_audit_specification(this); + } +}; + +Create_server_audit_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_server_audit_specification(this); + } +}; + +Create_server_audit_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_server_audit_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_server_audit_specificationContext = Create_server_audit_specificationContext; + +TSqlParser.prototype.create_server_audit_specification = function() { + + var localctx = new Create_server_audit_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 376, TSqlParser.RULE_create_server_audit_specification); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4804; + this.match(TSqlParser.CREATE); + this.state = 4805; + this.match(TSqlParser.SERVER); + this.state = 4806; + this.match(TSqlParser.AUDIT); + this.state = 4807; + this.match(TSqlParser.SPECIFICATION); + this.state = 4808; + localctx.audit_specification_name = this.id(); + this.state = 4813; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 4809; + this.match(TSqlParser.FOR); + this.state = 4810; + this.match(TSqlParser.SERVER); + this.state = 4811; + this.match(TSqlParser.AUDIT); + this.state = 4812; + localctx.audit_name = this.id(); + } + + this.state = 4822; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.ADD) { + this.state = 4815; + this.match(TSqlParser.ADD); + this.state = 4816; + this.match(TSqlParser.LR_BRACKET); + this.state = 4817; + localctx.audit_action_group_name = this.id(); + this.state = 4818; + this.match(TSqlParser.RR_BRACKET); + this.state = 4824; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4831; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,556,this._ctx); + if(la_===1) { + this.state = 4825; + this.match(TSqlParser.WITH); + this.state = 4826; + this.match(TSqlParser.LR_BRACKET); + this.state = 4827; + this.match(TSqlParser.STATE); + this.state = 4828; + this.match(TSqlParser.EQUAL); + this.state = 4829; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4830; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_configurationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_configuration; + return this; +} + +Alter_server_configurationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_configurationContext.prototype.constructor = Alter_server_configurationContext; + +Alter_server_configurationContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_configurationContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Alter_server_configurationContext.prototype.CONFIGURATION = function() { + return this.getToken(TSqlParser.CONFIGURATION, 0); +}; + +Alter_server_configurationContext.prototype.SET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SET); + } else { + return this.getToken(TSqlParser.SET, i); + } +}; + + +Alter_server_configurationContext.prototype.PROCESS = function() { + return this.getToken(TSqlParser.PROCESS, 0); +}; + +Alter_server_configurationContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Alter_server_configurationContext.prototype.DIAGNOSTICS = function() { + return this.getToken(TSqlParser.DIAGNOSTICS, 0); +}; + +Alter_server_configurationContext.prototype.LOG = function() { + return this.getToken(TSqlParser.LOG, 0); +}; + +Alter_server_configurationContext.prototype.FAILOVER = function() { + return this.getToken(TSqlParser.FAILOVER, 0); +}; + +Alter_server_configurationContext.prototype.CLUSTER = function() { + return this.getToken(TSqlParser.CLUSTER, 0); +}; + +Alter_server_configurationContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Alter_server_configurationContext.prototype.HADR = function() { + return this.getToken(TSqlParser.HADR, 0); +}; + +Alter_server_configurationContext.prototype.CONTEXT = function() { + return this.getToken(TSqlParser.CONTEXT, 0); +}; + +Alter_server_configurationContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_server_configurationContext.prototype.BUFFER = function() { + return this.getToken(TSqlParser.BUFFER, 0); +}; + +Alter_server_configurationContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Alter_server_configurationContext.prototype.EXTENSION = function() { + return this.getToken(TSqlParser.EXTENSION, 0); +}; + +Alter_server_configurationContext.prototype.SOFTNUMA = function() { + return this.getToken(TSqlParser.SOFTNUMA, 0); +}; + +Alter_server_configurationContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_server_configurationContext.prototype.LOCAL = function() { + return this.getToken(TSqlParser.LOCAL, 0); +}; + +Alter_server_configurationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_server_configurationContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Alter_server_configurationContext.prototype.CPU = function() { + return this.getToken(TSqlParser.CPU, 0); +}; + +Alter_server_configurationContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Alter_server_configurationContext.prototype.PATH = function() { + return this.getToken(TSqlParser.PATH, 0); +}; + +Alter_server_configurationContext.prototype.MAX_SIZE = function() { + return this.getToken(TSqlParser.MAX_SIZE, 0); +}; + +Alter_server_configurationContext.prototype.MAX_FILES = function() { + return this.getToken(TSqlParser.MAX_FILES, 0); +}; + +Alter_server_configurationContext.prototype.VERBOSELOGGING = function() { + return this.getToken(TSqlParser.VERBOSELOGGING, 0); +}; + +Alter_server_configurationContext.prototype.SQLDUMPERFLAGS = function() { + return this.getToken(TSqlParser.SQLDUMPERFLAGS, 0); +}; + +Alter_server_configurationContext.prototype.SQLDUMPERPATH = function() { + return this.getToken(TSqlParser.SQLDUMPERPATH, 0); +}; + +Alter_server_configurationContext.prototype.SQLDUMPERTIMEOUT = function() { + return this.getToken(TSqlParser.SQLDUMPERTIMEOUT, 0); +}; + +Alter_server_configurationContext.prototype.FAILURECONDITIONLEVEL = function() { + return this.getToken(TSqlParser.FAILURECONDITIONLEVEL, 0); +}; + +Alter_server_configurationContext.prototype.HEALTHCHECKTIMEOUT = function() { + return this.getToken(TSqlParser.HEALTHCHECKTIMEOUT, 0); +}; + +Alter_server_configurationContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_server_configurationContext.prototype.FILENAME = function() { + return this.getToken(TSqlParser.FILENAME, 0); +}; + +Alter_server_configurationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_server_configurationContext.prototype.SIZE = function() { + return this.getToken(TSqlParser.SIZE, 0); +}; + +Alter_server_configurationContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_server_configurationContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_server_configurationContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Alter_server_configurationContext.prototype.KB = function() { + return this.getToken(TSqlParser.KB, 0); +}; + +Alter_server_configurationContext.prototype.MB = function() { + return this.getToken(TSqlParser.MB, 0); +}; + +Alter_server_configurationContext.prototype.GB = function() { + return this.getToken(TSqlParser.GB, 0); +}; + +Alter_server_configurationContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Alter_server_configurationContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Alter_server_configurationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_configuration(this); + } +}; + +Alter_server_configurationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_configuration(this); + } +}; + +Alter_server_configurationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_configuration(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_configurationContext = Alter_server_configurationContext; + +TSqlParser.prototype.alter_server_configuration = function() { + + var localctx = new Alter_server_configurationContext(this, this._ctx, this.state); + this.enterRule(localctx, 378, TSqlParser.RULE_alter_server_configuration); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4833; + this.match(TSqlParser.ALTER); + this.state = 4834; + this.match(TSqlParser.SERVER); + this.state = 4835; + this.match(TSqlParser.CONFIGURATION); + this.state = 4836; + this.match(TSqlParser.SET); + + this.state = 4942; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PROCESS: + this.state = 4837; + this.match(TSqlParser.PROCESS); + this.state = 4838; + this.match(TSqlParser.AFFINITY); + this.state = 4874; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CPU: + this.state = 4839; + this.match(TSqlParser.CPU); + this.state = 4840; + this.match(TSqlParser.EQUAL); + this.state = 4856; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO: + this.state = 4841; + this.match(TSqlParser.AUTO); + break; + case TSqlParser.DECIMAL: + case TSqlParser.COMMA: + this.state = 4852; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4852; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,559,this._ctx); + switch(la_) { + case 1: + this.state = 4843; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4842; + this.match(TSqlParser.COMMA); + } + + this.state = 4845; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4847; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4846; + this.match(TSqlParser.COMMA); + } + + this.state = 4849; + this.match(TSqlParser.DECIMAL); + this.state = 4850; + this.match(TSqlParser.TO); + this.state = 4851; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4854; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,560, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NUMANODE: + this.state = 4858; + this.match(TSqlParser.NUMANODE); + this.state = 4859; + this.match(TSqlParser.EQUAL); + this.state = 4870; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 4870; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,564,this._ctx); + switch(la_) { + case 1: + this.state = 4861; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4860; + this.match(TSqlParser.COMMA); + } + + this.state = 4863; + this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.state = 4865; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4864; + this.match(TSqlParser.COMMA); + } + + this.state = 4867; + this.match(TSqlParser.DECIMAL); + this.state = 4868; + this.match(TSqlParser.TO); + this.state = 4869; + this.match(TSqlParser.DECIMAL); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 4872; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,565, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DIAGNOSTICS: + this.state = 4876; + this.match(TSqlParser.DIAGNOSTICS); + this.state = 4877; + this.match(TSqlParser.LOG); + this.state = 4893; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ON: + this.state = 4878; + this.match(TSqlParser.ON); + break; + case TSqlParser.OFF: + this.state = 4879; + this.match(TSqlParser.OFF); + break; + case TSqlParser.PATH: + this.state = 4880; + this.match(TSqlParser.PATH); + this.state = 4881; + this.match(TSqlParser.EQUAL); + this.state = 4882; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.MAX_SIZE: + this.state = 4883; + this.match(TSqlParser.MAX_SIZE); + this.state = 4884; + this.match(TSqlParser.EQUAL); + this.state = 4888; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 4885; + this.match(TSqlParser.DECIMAL); + this.state = 4886; + this.match(TSqlParser.MB); + break; + case TSqlParser.DEFAULT: + this.state = 4887; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.MAX_FILES: + this.state = 4890; + this.match(TSqlParser.MAX_FILES); + this.state = 4891; + this.match(TSqlParser.EQUAL); + this.state = 4892; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.FAILOVER: + this.state = 4895; + this.match(TSqlParser.FAILOVER); + this.state = 4896; + this.match(TSqlParser.CLUSTER); + this.state = 4897; + this.match(TSqlParser.PROPERTY); + this.state = 4915; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.VERBOSELOGGING: + this.state = 4898; + this.match(TSqlParser.VERBOSELOGGING); + this.state = 4899; + this.match(TSqlParser.EQUAL); + this.state = 4900; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SQLDUMPERFLAGS: + this.state = 4901; + this.match(TSqlParser.SQLDUMPERFLAGS); + this.state = 4902; + this.match(TSqlParser.EQUAL); + this.state = 4903; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SQLDUMPERPATH: + this.state = 4904; + this.match(TSqlParser.SQLDUMPERPATH); + this.state = 4905; + this.match(TSqlParser.EQUAL); + this.state = 4906; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SQLDUMPERTIMEOUT: + this.state = 4907; + this.match(TSqlParser.SQLDUMPERTIMEOUT); + this.state = 4908; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.FAILURECONDITIONLEVEL: + this.state = 4909; + this.match(TSqlParser.FAILURECONDITIONLEVEL); + this.state = 4910; + this.match(TSqlParser.EQUAL); + this.state = 4911; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.HEALTHCHECKTIMEOUT: + this.state = 4912; + this.match(TSqlParser.HEALTHCHECKTIMEOUT); + this.state = 4913; + this.match(TSqlParser.EQUAL); + this.state = 4914; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DEFAULT || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.HADR: + this.state = 4917; + this.match(TSqlParser.HADR); + this.state = 4918; + this.match(TSqlParser.CLUSTER); + this.state = 4919; + this.match(TSqlParser.CONTEXT); + this.state = 4920; + this.match(TSqlParser.EQUAL); + this.state = 4921; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.BUFFER: + this.state = 4922; + this.match(TSqlParser.BUFFER); + this.state = 4923; + this.match(TSqlParser.POOL); + this.state = 4924; + this.match(TSqlParser.EXTENSION); + this.state = 4937; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ON: + this.state = 4925; + this.match(TSqlParser.ON); + this.state = 4926; + this.match(TSqlParser.LR_BRACKET); + this.state = 4927; + this.match(TSqlParser.FILENAME); + this.state = 4928; + this.match(TSqlParser.EQUAL); + this.state = 4929; + this.match(TSqlParser.STRING); + this.state = 4930; + this.match(TSqlParser.COMMA); + this.state = 4931; + this.match(TSqlParser.SIZE); + this.state = 4932; + this.match(TSqlParser.EQUAL); + this.state = 4933; + this.match(TSqlParser.DECIMAL); + this.state = 4934; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GB || _la===TSqlParser.KB || _la===TSqlParser.MB)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4935; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.OFF: + this.state = 4936; + this.match(TSqlParser.OFF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.SET: + this.state = 4939; + this.match(TSqlParser.SET); + this.state = 4940; + this.match(TSqlParser.SOFTNUMA); + this.state = 4941; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_role; + this.server_role_name = null; // IdContext + this.server_principal = null; // IdContext + this.new_server_role_name = null; // IdContext + return this; +} + +Alter_server_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_roleContext.prototype.constructor = Alter_server_roleContext; + +Alter_server_roleContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_roleContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Alter_server_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_server_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_server_roleContext.prototype.MEMBER = function() { + return this.getToken(TSqlParser.MEMBER, 0); +}; + +Alter_server_roleContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_server_roleContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_server_roleContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_server_roleContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_server_roleContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_server_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_role(this); + } +}; + +Alter_server_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_role(this); + } +}; + +Alter_server_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_roleContext = Alter_server_roleContext; + +TSqlParser.prototype.alter_server_role = function() { + + var localctx = new Alter_server_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 380, TSqlParser.RULE_alter_server_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4944; + this.match(TSqlParser.ALTER); + this.state = 4945; + this.match(TSqlParser.SERVER); + this.state = 4946; + this.match(TSqlParser.ROLE); + this.state = 4947; + localctx.server_role_name = this.id(); + this.state = 4955; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ADD: + case TSqlParser.DROP: + this.state = 4948; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4949; + this.match(TSqlParser.MEMBER); + this.state = 4950; + localctx.server_principal = this.id(); + break; + case TSqlParser.WITH: + this.state = 4951; + this.match(TSqlParser.WITH); + this.state = 4952; + this.match(TSqlParser.NAME); + this.state = 4953; + this.match(TSqlParser.EQUAL); + this.state = 4954; + localctx.new_server_role_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_server_roleContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_server_role; + this.server_role = null; // IdContext + this.server_principal = null; // IdContext + return this; +} + +Create_server_roleContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_server_roleContext.prototype.constructor = Create_server_roleContext; + +Create_server_roleContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_server_roleContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_server_roleContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Create_server_roleContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_server_roleContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_server_roleContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_server_role(this); + } +}; + +Create_server_roleContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_server_role(this); + } +}; + +Create_server_roleContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_server_role(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_server_roleContext = Create_server_roleContext; + +TSqlParser.prototype.create_server_role = function() { + + var localctx = new Create_server_roleContext(this, this._ctx, this.state); + this.enterRule(localctx, 382, TSqlParser.RULE_create_server_role); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4957; + this.match(TSqlParser.CREATE); + this.state = 4958; + this.match(TSqlParser.SERVER); + this.state = 4959; + this.match(TSqlParser.ROLE); + this.state = 4960; + localctx.server_role = this.id(); + this.state = 4963; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4961; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4962; + localctx.server_principal = this.id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_server_role_pdwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_server_role_pdw; + this.server_role_name = null; // IdContext + this.login = null; // IdContext + return this; +} + +Alter_server_role_pdwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_server_role_pdwContext.prototype.constructor = Alter_server_role_pdwContext; + +Alter_server_role_pdwContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_server_role_pdwContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Alter_server_role_pdwContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_server_role_pdwContext.prototype.MEMBER = function() { + return this.getToken(TSqlParser.MEMBER, 0); +}; + +Alter_server_role_pdwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_server_role_pdwContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_server_role_pdwContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_server_role_pdwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_server_role_pdw(this); + } +}; + +Alter_server_role_pdwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_server_role_pdw(this); + } +}; + +Alter_server_role_pdwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_server_role_pdw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_server_role_pdwContext = Alter_server_role_pdwContext; + +TSqlParser.prototype.alter_server_role_pdw = function() { + + var localctx = new Alter_server_role_pdwContext(this, this._ctx, this.state); + this.enterRule(localctx, 384, TSqlParser.RULE_alter_server_role_pdw); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4965; + this.match(TSqlParser.ALTER); + this.state = 4966; + this.match(TSqlParser.SERVER); + this.state = 4967; + this.match(TSqlParser.ROLE); + this.state = 4968; + localctx.server_role_name = this.id(); + this.state = 4969; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4970; + this.match(TSqlParser.MEMBER); + this.state = 4971; + localctx.login = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_serviceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_service; + this.modified_service_name = null; // IdContext + this.schema_name = null; // IdContext + this.queue_name = null; // IdContext + this.modified_contract_name = null; // IdContext + return this; +} + +Alter_serviceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_serviceContext.prototype.constructor = Alter_serviceContext; + +Alter_serviceContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_serviceContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_serviceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_serviceContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Alter_serviceContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Alter_serviceContext.prototype.ADD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ADD); + } else { + return this.getToken(TSqlParser.ADD, i); + } +}; + + +Alter_serviceContext.prototype.DROP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DROP); + } else { + return this.getToken(TSqlParser.DROP, i); + } +}; + + +Alter_serviceContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Alter_serviceContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_serviceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_service(this); + } +}; + +Alter_serviceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_service(this); + } +}; + +Alter_serviceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_service(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_serviceContext = Alter_serviceContext; + +TSqlParser.prototype.alter_service = function() { + + var localctx = new Alter_serviceContext(this, this._ctx, this.state); + this.enterRule(localctx, 386, TSqlParser.RULE_alter_service); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4973; + this.match(TSqlParser.ALTER); + this.state = 4974; + this.match(TSqlParser.SERVICE); + this.state = 4975; + localctx.modified_service_name = this.id(); + this.state = 4983; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 4976; + this.match(TSqlParser.ON); + this.state = 4977; + this.match(TSqlParser.QUEUE); + + this.state = 4978; + localctx.schema_name = this.id(); + this.state = 4979; + this.match(TSqlParser.DOT); + this.state = 4981; + localctx.queue_name = this.id(); + } + + this.state = 4992; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,576,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 4986; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 4985; + this.match(TSqlParser.COMMA); + } + + this.state = 4988; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4989; + localctx.modified_contract_name = this.id(); + } + this.state = 4994; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,576,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_serviceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_service; + this.create_service_name = null; // IdContext + this.owner_name = null; // IdContext + this.schema_name = null; // IdContext + this.queue_name = null; // IdContext + return this; +} + +Create_serviceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_serviceContext.prototype.constructor = Create_serviceContext; + +Create_serviceContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_serviceContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Create_serviceContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_serviceContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Create_serviceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_serviceContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_serviceContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_serviceContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_serviceContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_serviceContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT); + } else { + return this.getToken(TSqlParser.DEFAULT, i); + } +}; + + +Create_serviceContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_serviceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_service(this); + } +}; + +Create_serviceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_service(this); + } +}; + +Create_serviceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_service(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_serviceContext = Create_serviceContext; + +TSqlParser.prototype.create_service = function() { + + var localctx = new Create_serviceContext(this, this._ctx, this.state); + this.enterRule(localctx, 388, TSqlParser.RULE_create_service); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4995; + this.match(TSqlParser.CREATE); + this.state = 4996; + this.match(TSqlParser.SERVICE); + this.state = 4997; + localctx.create_service_name = this.id(); + this.state = 5000; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 4998; + this.match(TSqlParser.AUTHORIZATION); + this.state = 4999; + localctx.owner_name = this.id(); + } + + this.state = 5002; + this.match(TSqlParser.ON); + this.state = 5003; + this.match(TSqlParser.QUEUE); + this.state = 5007; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,578,this._ctx); + if(la_===1) { + this.state = 5004; + localctx.schema_name = this.id(); + this.state = 5005; + this.match(TSqlParser.DOT); + + } + this.state = 5009; + localctx.queue_name = this.id(); + this.state = 5023; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,582,this._ctx); + if(la_===1) { + this.state = 5010; + this.match(TSqlParser.LR_BRACKET); + this.state = 5018; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5012; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5011; + this.match(TSqlParser.COMMA); + } + + this.state = 5016; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5014; + this.id(); + break; + case TSqlParser.DEFAULT: + this.state = 5015; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5020; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || _la===TSqlParser.DEFAULT || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 5022; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_service_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_service_master_key; + this.acold_account_name = null; // Token + this.old_password = null; // Token + this.new_account_name = null; // Token + this.new_password = null; // Token + return this; +} + +Alter_service_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_service_master_keyContext.prototype.constructor = Alter_service_master_keyContext; + +Alter_service_master_keyContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_service_master_keyContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Alter_service_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Alter_service_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_service_master_keyContext.prototype.REGENERATE = function() { + return this.getToken(TSqlParser.REGENERATE, 0); +}; + +Alter_service_master_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_service_master_keyContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +Alter_service_master_keyContext.prototype.OLD_ACCOUNT = function() { + return this.getToken(TSqlParser.OLD_ACCOUNT, 0); +}; + +Alter_service_master_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_service_master_keyContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Alter_service_master_keyContext.prototype.OLD_PASSWORD = function() { + return this.getToken(TSqlParser.OLD_PASSWORD, 0); +}; + +Alter_service_master_keyContext.prototype.NEW_ACCOUNT = function() { + return this.getToken(TSqlParser.NEW_ACCOUNT, 0); +}; + +Alter_service_master_keyContext.prototype.NEW_PASSWORD = function() { + return this.getToken(TSqlParser.NEW_PASSWORD, 0); +}; + +Alter_service_master_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_service_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_service_master_key(this); + } +}; + +Alter_service_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_service_master_key(this); + } +}; + +Alter_service_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_service_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_service_master_keyContext = Alter_service_master_keyContext; + +TSqlParser.prototype.alter_service_master_key = function() { + + var localctx = new Alter_service_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 390, TSqlParser.RULE_alter_service_master_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5025; + this.match(TSqlParser.ALTER); + this.state = 5026; + this.match(TSqlParser.SERVICE); + this.state = 5027; + this.match(TSqlParser.MASTER); + this.state = 5028; + this.match(TSqlParser.KEY); + this.state = 5050; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REGENERATE: + case TSqlParser.FORCE: + this.state = 5030; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FORCE) { + this.state = 5029; + this.match(TSqlParser.FORCE); + } + + this.state = 5032; + this.match(TSqlParser.REGENERATE); + break; + case TSqlParser.WITH: + this.state = 5033; + this.match(TSqlParser.WITH); + this.state = 5048; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,584,this._ctx); + if(la_===1) { + this.state = 5034; + this.match(TSqlParser.OLD_ACCOUNT); + this.state = 5035; + this.match(TSqlParser.EQUAL); + this.state = 5036; + localctx.acold_account_name = this.match(TSqlParser.STRING); + this.state = 5037; + this.match(TSqlParser.COMMA); + this.state = 5038; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 5039; + this.match(TSqlParser.EQUAL); + this.state = 5040; + localctx.old_password = this.match(TSqlParser.STRING); + + } else if(la_===2) { + this.state = 5041; + this.match(TSqlParser.NEW_ACCOUNT); + this.state = 5042; + this.match(TSqlParser.EQUAL); + this.state = 5043; + localctx.new_account_name = this.match(TSqlParser.STRING); + this.state = 5044; + this.match(TSqlParser.COMMA); + this.state = 5045; + this.match(TSqlParser.NEW_PASSWORD); + this.state = 5046; + this.match(TSqlParser.EQUAL); + this.state = 5047; + localctx.new_password = this.match(TSqlParser.STRING); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_symmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_symmetric_key; + this.key_name = null; // IdContext + this.certificate_name = null; // IdContext + this.password = null; // Token + this.symmetric_key_name = null; // IdContext + this.Asym_key_name = null; // IdContext + return this; +} + +Alter_symmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_symmetric_keyContext.prototype.constructor = Alter_symmetric_keyContext; + +Alter_symmetric_keyContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_symmetric_keyContext.prototype.SYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SYMMETRIC); + } else { + return this.getToken(TSqlParser.SYMMETRIC, i); + } +}; + + +Alter_symmetric_keyContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Alter_symmetric_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_symmetric_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_symmetric_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Alter_symmetric_keyContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_symmetric_keyContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_symmetric_keyContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Alter_symmetric_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Alter_symmetric_keyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_symmetric_keyContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Alter_symmetric_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Alter_symmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_symmetric_key(this); + } +}; + +Alter_symmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_symmetric_key(this); + } +}; + +Alter_symmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_symmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_symmetric_keyContext = Alter_symmetric_keyContext; + +TSqlParser.prototype.alter_symmetric_key = function() { + + var localctx = new Alter_symmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 392, TSqlParser.RULE_alter_symmetric_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5052; + this.match(TSqlParser.ALTER); + this.state = 5053; + this.match(TSqlParser.SYMMETRIC); + this.state = 5054; + this.match(TSqlParser.KEY); + this.state = 5055; + localctx.key_name = this.id(); + + this.state = 5056; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ADD || _la===TSqlParser.DROP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5057; + this.match(TSqlParser.ENCRYPTION); + this.state = 5058; + this.match(TSqlParser.BY); + this.state = 5070; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CERTIFICATE: + this.state = 5059; + this.match(TSqlParser.CERTIFICATE); + this.state = 5060; + localctx.certificate_name = this.id(); + break; + case TSqlParser.PASSWORD: + this.state = 5061; + this.match(TSqlParser.PASSWORD); + this.state = 5062; + this.match(TSqlParser.EQUAL); + this.state = 5063; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.SYMMETRIC: + this.state = 5064; + this.match(TSqlParser.SYMMETRIC); + this.state = 5065; + this.match(TSqlParser.KEY); + this.state = 5066; + localctx.symmetric_key_name = this.id(); + break; + case TSqlParser.ASYMMETRIC: + this.state = 5067; + this.match(TSqlParser.ASYMMETRIC); + this.state = 5068; + this.match(TSqlParser.KEY); + this.state = 5069; + localctx.Asym_key_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_symmetric_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_symmetric_key; + this.key_name = null; // IdContext + this.owner_name = null; // IdContext + this.provider_name = null; // IdContext + this.key_pass_phrase = null; // Token + this.identity_phrase = null; // Token + this.provider_key_name = null; // Token + this.certificate_name = null; // IdContext + this.password = null; // Token + this.symmetric_key_name = null; // IdContext + this.asym_key_name = null; // IdContext + return this; +} + +Create_symmetric_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_symmetric_keyContext.prototype.constructor = Create_symmetric_keyContext; + +Create_symmetric_keyContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_symmetric_keyContext.prototype.SYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SYMMETRIC); + } else { + return this.getToken(TSqlParser.SYMMETRIC, i); + } +}; + + +Create_symmetric_keyContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Create_symmetric_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_symmetric_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_symmetric_keyContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_symmetric_keyContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_symmetric_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_symmetric_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Create_symmetric_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Create_symmetric_keyContext.prototype.KEY_SOURCE = function() { + return this.getToken(TSqlParser.KEY_SOURCE, 0); +}; + +Create_symmetric_keyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_symmetric_keyContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Create_symmetric_keyContext.prototype.IDENTITY_VALUE = function() { + return this.getToken(TSqlParser.IDENTITY_VALUE, 0); +}; + +Create_symmetric_keyContext.prototype.PROVIDER_KEY_NAME = function() { + return this.getToken(TSqlParser.PROVIDER_KEY_NAME, 0); +}; + +Create_symmetric_keyContext.prototype.CREATION_DISPOSITION = function() { + return this.getToken(TSqlParser.CREATION_DISPOSITION, 0); +}; + +Create_symmetric_keyContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Create_symmetric_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_symmetric_keyContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Create_symmetric_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_symmetric_keyContext.prototype.DES = function() { + return this.getToken(TSqlParser.DES, 0); +}; + +Create_symmetric_keyContext.prototype.TRIPLE_DES = function() { + return this.getToken(TSqlParser.TRIPLE_DES, 0); +}; + +Create_symmetric_keyContext.prototype.TRIPLE_DES_3KEY = function() { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, 0); +}; + +Create_symmetric_keyContext.prototype.RC2 = function() { + return this.getToken(TSqlParser.RC2, 0); +}; + +Create_symmetric_keyContext.prototype.RC4 = function() { + return this.getToken(TSqlParser.RC4, 0); +}; + +Create_symmetric_keyContext.prototype.RC4_128 = function() { + return this.getToken(TSqlParser.RC4_128, 0); +}; + +Create_symmetric_keyContext.prototype.DESX = function() { + return this.getToken(TSqlParser.DESX, 0); +}; + +Create_symmetric_keyContext.prototype.AES_128 = function() { + return this.getToken(TSqlParser.AES_128, 0); +}; + +Create_symmetric_keyContext.prototype.AES_192 = function() { + return this.getToken(TSqlParser.AES_192, 0); +}; + +Create_symmetric_keyContext.prototype.AES_256 = function() { + return this.getToken(TSqlParser.AES_256, 0); +}; + +Create_symmetric_keyContext.prototype.CREATE_NEW = function() { + return this.getToken(TSqlParser.CREATE_NEW, 0); +}; + +Create_symmetric_keyContext.prototype.OPEN_EXISTING = function() { + return this.getToken(TSqlParser.OPEN_EXISTING, 0); +}; + +Create_symmetric_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_symmetric_key(this); + } +}; + +Create_symmetric_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_symmetric_key(this); + } +}; + +Create_symmetric_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_symmetric_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_symmetric_keyContext = Create_symmetric_keyContext; + +TSqlParser.prototype.create_symmetric_key = function() { + + var localctx = new Create_symmetric_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 394, TSqlParser.RULE_create_symmetric_key); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5072; + this.match(TSqlParser.ALTER); + this.state = 5073; + this.match(TSqlParser.SYMMETRIC); + this.state = 5074; + this.match(TSqlParser.KEY); + this.state = 5075; + localctx.key_name = this.id(); + this.state = 5078; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 5076; + this.match(TSqlParser.AUTHORIZATION); + this.state = 5077; + localctx.owner_name = this.id(); + } + + this.state = 5083; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 5080; + this.match(TSqlParser.FROM); + this.state = 5081; + this.match(TSqlParser.PROVIDER); + this.state = 5082; + localctx.provider_name = this.id(); + } + + this.state = 5085; + this.match(TSqlParser.WITH); + this.state = 5118; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALGORITHM: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.KEY_SOURCE: + case TSqlParser.PROVIDER_KEY_NAME: + this.state = 5101; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.KEY_SOURCE: + this.state = 5086; + this.match(TSqlParser.KEY_SOURCE); + this.state = 5087; + this.match(TSqlParser.EQUAL); + this.state = 5088; + localctx.key_pass_phrase = this.match(TSqlParser.STRING); + break; + case TSqlParser.ALGORITHM: + this.state = 5089; + this.match(TSqlParser.ALGORITHM); + this.state = 5090; + this.match(TSqlParser.EQUAL); + this.state = 5091; + _la = this._input.LA(1); + if(!(((((_la - 386)) & ~0x1f) == 0 && ((1 << (_la - 386)) & ((1 << (TSqlParser.AES_128 - 386)) | (1 << (TSqlParser.AES_192 - 386)) | (1 << (TSqlParser.AES_256 - 386)))) !== 0) || _la===TSqlParser.DES || _la===TSqlParser.DESX || ((((_la - 663)) & ~0x1f) == 0 && ((1 << (_la - 663)) & ((1 << (TSqlParser.RC2 - 663)) | (1 << (TSqlParser.RC4 - 663)) | (1 << (TSqlParser.RC4_128 - 663)))) !== 0) || _la===TSqlParser.TRIPLE_DES || _la===TSqlParser.TRIPLE_DES_3KEY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.IDENTITY_VALUE: + this.state = 5092; + this.match(TSqlParser.IDENTITY_VALUE); + this.state = 5093; + this.match(TSqlParser.EQUAL); + this.state = 5094; + localctx.identity_phrase = this.match(TSqlParser.STRING); + break; + case TSqlParser.PROVIDER_KEY_NAME: + this.state = 5095; + this.match(TSqlParser.PROVIDER_KEY_NAME); + this.state = 5096; + this.match(TSqlParser.EQUAL); + this.state = 5097; + localctx.provider_key_name = this.match(TSqlParser.STRING); + break; + case TSqlParser.CREATION_DISPOSITION: + this.state = 5098; + this.match(TSqlParser.CREATION_DISPOSITION); + this.state = 5099; + this.match(TSqlParser.EQUAL); + this.state = 5100; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CREATE_NEW || _la===TSqlParser.OPEN_EXISTING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.ENCRYPTION: + this.state = 5103; + this.match(TSqlParser.ENCRYPTION); + this.state = 5104; + this.match(TSqlParser.BY); + this.state = 5116; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CERTIFICATE: + this.state = 5105; + this.match(TSqlParser.CERTIFICATE); + this.state = 5106; + localctx.certificate_name = this.id(); + break; + case TSqlParser.PASSWORD: + this.state = 5107; + this.match(TSqlParser.PASSWORD); + this.state = 5108; + this.match(TSqlParser.EQUAL); + this.state = 5109; + localctx.password = this.match(TSqlParser.STRING); + break; + case TSqlParser.SYMMETRIC: + this.state = 5110; + this.match(TSqlParser.SYMMETRIC); + this.state = 5111; + this.match(TSqlParser.KEY); + this.state = 5112; + localctx.symmetric_key_name = this.id(); + break; + case TSqlParser.ASYMMETRIC: + this.state = 5113; + this.match(TSqlParser.ASYMMETRIC); + this.state = 5114; + this.match(TSqlParser.KEY); + this.state = 5115; + localctx.asym_key_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_synonymContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_synonym; + this.schema_name_1 = null; // IdContext + this.synonym_name = null; // IdContext + this.server_name = null; // IdContext + this.database_name = null; // IdContext + this.schema_name_2 = null; // IdContext + this.object_name = null; // IdContext + this.database_or_schema2 = null; // IdContext + this.schema_id_2_or_object_name = null; // IdContext + return this; +} + +Create_synonymContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_synonymContext.prototype.constructor = Create_synonymContext; + +Create_synonymContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_synonymContext.prototype.SYNONYM = function() { + return this.getToken(TSqlParser.SYNONYM, 0); +}; + +Create_synonymContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_synonymContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_synonymContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Create_synonymContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_synonym(this); + } +}; + +Create_synonymContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_synonym(this); + } +}; + +Create_synonymContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_synonym(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_synonymContext = Create_synonymContext; + +TSqlParser.prototype.create_synonym = function() { + + var localctx = new Create_synonymContext(this, this._ctx, this.state); + this.enterRule(localctx, 396, TSqlParser.RULE_create_synonym); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5120; + this.match(TSqlParser.CREATE); + this.state = 5121; + this.match(TSqlParser.SYNONYM); + this.state = 5125; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,592,this._ctx); + if(la_===1) { + this.state = 5122; + localctx.schema_name_1 = this.id(); + this.state = 5123; + this.match(TSqlParser.DOT); + + } + this.state = 5127; + localctx.synonym_name = this.id(); + this.state = 5128; + this.match(TSqlParser.FOR); + this.state = 5155; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,598,this._ctx); + switch(la_) { + case 1: + this.state = 5132; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,593,this._ctx); + if(la_===1) { + this.state = 5129; + localctx.server_name = this.id(); + this.state = 5130; + this.match(TSqlParser.DOT); + + } + this.state = 5137; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,594,this._ctx); + if(la_===1) { + this.state = 5134; + localctx.database_name = this.id(); + this.state = 5135; + this.match(TSqlParser.DOT); + + } + this.state = 5142; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,595,this._ctx); + if(la_===1) { + this.state = 5139; + localctx.schema_name_2 = this.id(); + this.state = 5140; + this.match(TSqlParser.DOT); + + } + this.state = 5144; + localctx.object_name = this.id(); + break; + + case 2: + this.state = 5148; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,596,this._ctx); + if(la_===1) { + this.state = 5145; + localctx.database_or_schema2 = this.id(); + this.state = 5146; + this.match(TSqlParser.DOT); + + } + this.state = 5153; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,597,this._ctx); + if(la_===1) { + this.state = 5150; + localctx.schema_id_2_or_object_name = this.id(); + this.state = 5151; + this.match(TSqlParser.DOT); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_userContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_user; + this.username = null; // IdContext + this.newusername = null; // IdContext + this.schema_name = null; // IdContext + this.loginame = null; // IdContext + this.lcid = null; // Token + this.language_name_or_alias = null; // IdContext + return this; +} + +Alter_userContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_userContext.prototype.constructor = Alter_userContext; + +Alter_userContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_userContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Alter_userContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_userContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_userContext.prototype.NAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NAME); + } else { + return this.getToken(TSqlParser.NAME, i); + } +}; + + +Alter_userContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_userContext.prototype.DEFAULT_SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_SCHEMA); + } else { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, i); + } +}; + + +Alter_userContext.prototype.LOGIN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOGIN); + } else { + return this.getToken(TSqlParser.LOGIN, i); + } +}; + + +Alter_userContext.prototype.PASSWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PASSWORD); + } else { + return this.getToken(TSqlParser.PASSWORD, i); + } +}; + + +Alter_userContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Alter_userContext.prototype.DEFAULT_LANGUAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_LANGUAGE); + } else { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, i); + } +}; + + +Alter_userContext.prototype.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + } else { + return this.getToken(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, i); + } +}; + + +Alter_userContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Alter_userContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Alter_userContext.prototype.NULL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NULL); + } else { + return this.getToken(TSqlParser.NULL, i); + } +}; + + +Alter_userContext.prototype.NONE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NONE); + } else { + return this.getToken(TSqlParser.NONE, i); + } +}; + + +Alter_userContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_userContext.prototype.OLD_PASSWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OLD_PASSWORD); + } else { + return this.getToken(TSqlParser.OLD_PASSWORD, i); + } +}; + + +Alter_userContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_userContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_user(this); + } +}; + +Alter_userContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_user(this); + } +}; + +Alter_userContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_user(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_userContext = Alter_userContext; + +TSqlParser.prototype.alter_user = function() { + + var localctx = new Alter_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 398, TSqlParser.RULE_alter_user); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5157; + this.match(TSqlParser.ALTER); + this.state = 5158; + this.match(TSqlParser.USER); + this.state = 5159; + localctx.username = this.id(); + this.state = 5160; + this.match(TSqlParser.WITH); + this.state = 5211; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 5211; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,608,this._ctx); + switch(la_) { + case 1: + this.state = 5162; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5161; + this.match(TSqlParser.COMMA); + } + + this.state = 5164; + this.match(TSqlParser.NAME); + this.state = 5165; + this.match(TSqlParser.EQUAL); + this.state = 5166; + localctx.newusername = this.id(); + break; + + case 2: + this.state = 5168; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5167; + this.match(TSqlParser.COMMA); + } + + this.state = 5170; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5171; + this.match(TSqlParser.EQUAL); + this.state = 5174; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5172; + localctx.schema_name = this.id(); + break; + case TSqlParser.NULL: + this.state = 5173; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 5177; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5176; + this.match(TSqlParser.COMMA); + } + + this.state = 5179; + this.match(TSqlParser.LOGIN); + this.state = 5180; + this.match(TSqlParser.EQUAL); + this.state = 5181; + localctx.loginame = this.id(); + break; + + case 4: + this.state = 5183; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5182; + this.match(TSqlParser.COMMA); + } + + this.state = 5185; + this.match(TSqlParser.PASSWORD); + this.state = 5186; + this.match(TSqlParser.EQUAL); + this.state = 5187; + this.match(TSqlParser.STRING); + this.state = 5191; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5188; + this.match(TSqlParser.OLD_PASSWORD); + this.state = 5189; + this.match(TSqlParser.EQUAL); + this.state = 5190; + this.match(TSqlParser.STRING); + this.state = 5193; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.OLD_PASSWORD); + break; + + case 5: + this.state = 5196; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5195; + this.match(TSqlParser.COMMA); + } + + this.state = 5198; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 5199; + this.match(TSqlParser.EQUAL); + this.state = 5203; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 5200; + this.match(TSqlParser.NONE); + break; + case TSqlParser.DECIMAL: + this.state = 5201; + localctx.lcid = this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5202; + localctx.language_name_or_alias = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 6: + this.state = 5206; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5205; + this.match(TSqlParser.COMMA); + } + + this.state = 5208; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5209; + this.match(TSqlParser.EQUAL); + this.state = 5210; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5213; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,609, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_userContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_user; + this.user_name = null; // IdContext + this.login_name = null; // IdContext + this.schema_name = null; // IdContext + this.windows_principal = null; // IdContext + this.language_name_or_alias = null; // IdContext + this.password = null; // Token + this.Azure_Active_Directory_principal = null; // IdContext + this.cert_name = null; // IdContext + this.asym_key_name = null; // IdContext + return this; +} + +Create_userContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_userContext.prototype.constructor = Create_userContext; + +Create_userContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_userContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Create_userContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_userContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_userContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_userContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_userContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_userContext.prototype.DEFAULT_SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_SCHEMA); + } else { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, i); + } +}; + + +Create_userContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_userContext.prototype.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + } else { + return this.getToken(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, i); + } +}; + + +Create_userContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_userContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Create_userContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_userContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_userContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_userContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_userContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_userContext.prototype.DEFAULT_LANGUAGE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_LANGUAGE); + } else { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, i); + } +}; + + +Create_userContext.prototype.SID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SID); + } else { + return this.getToken(TSqlParser.SID, i); + } +}; + + +Create_userContext.prototype.BINARY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BINARY); + } else { + return this.getToken(TSqlParser.BINARY, i); + } +}; + + +Create_userContext.prototype.NONE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NONE); + } else { + return this.getToken(TSqlParser.NONE, i); + } +}; + + +Create_userContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_userContext.prototype.WITHOUT = function() { + return this.getToken(TSqlParser.WITHOUT, 0); +}; + +Create_userContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Create_userContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Create_userContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_userContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_user(this); + } +}; + +Create_userContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_user(this); + } +}; + +Create_userContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_user(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_userContext = Create_userContext; + +TSqlParser.prototype.create_user = function() { + + var localctx = new Create_userContext(this, this._ctx, this.state); + this.enterRule(localctx, 400, TSqlParser.RULE_create_user); + var _la = 0; // Token type + try { + this.state = 5361; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,637,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5215; + this.match(TSqlParser.CREATE); + this.state = 5216; + this.match(TSqlParser.USER); + this.state = 5217; + localctx.user_name = this.id(); + this.state = 5221; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR || _la===TSqlParser.FROM) { + this.state = 5218; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.FROM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5219; + this.match(TSqlParser.LOGIN); + this.state = 5220; + localctx.login_name = this.id(); + } + + this.state = 5241; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,615,this._ctx); + if(la_===1) { + this.state = 5223; + this.match(TSqlParser.WITH); + this.state = 5238; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,614,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5236; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,613,this._ctx); + switch(la_) { + case 1: + this.state = 5225; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5224; + this.match(TSqlParser.COMMA); + } + + this.state = 5227; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5228; + this.match(TSqlParser.EQUAL); + this.state = 5229; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 5231; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5230; + this.match(TSqlParser.COMMA); + } + + this.state = 5233; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5234; + this.match(TSqlParser.EQUAL); + this.state = 5235; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 5240; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,614,this._ctx); + } + + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5243; + this.match(TSqlParser.CREATE); + this.state = 5244; + this.match(TSqlParser.USER); + this.state = 5325; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,631,this._ctx); + switch(la_) { + case 1: + this.state = 5245; + localctx.windows_principal = this.id(); + this.state = 5280; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,623,this._ctx); + if(la_===1) { + this.state = 5246; + this.match(TSqlParser.WITH); + this.state = 5277; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,622,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5275; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,621,this._ctx); + switch(la_) { + case 1: + this.state = 5248; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5247; + this.match(TSqlParser.COMMA); + } + + this.state = 5250; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5251; + this.match(TSqlParser.EQUAL); + this.state = 5252; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 5254; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5253; + this.match(TSqlParser.COMMA); + } + + this.state = 5256; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 5257; + this.match(TSqlParser.EQUAL); + this.state = 5261; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 5258; + this.match(TSqlParser.NONE); + break; + case TSqlParser.DECIMAL: + this.state = 5259; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5260; + localctx.language_name_or_alias = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 5264; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5263; + this.match(TSqlParser.COMMA); + } + + this.state = 5266; + this.match(TSqlParser.SID); + this.state = 5267; + this.match(TSqlParser.EQUAL); + this.state = 5268; + this.match(TSqlParser.BINARY); + break; + + case 4: + this.state = 5270; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5269; + this.match(TSqlParser.COMMA); + } + + this.state = 5272; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5273; + this.match(TSqlParser.EQUAL); + this.state = 5274; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 5279; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,622,this._ctx); + } + + + } + break; + + case 2: + this.state = 5282; + localctx.user_name = this.id(); + this.state = 5283; + this.match(TSqlParser.WITH); + this.state = 5284; + this.match(TSqlParser.PASSWORD); + this.state = 5285; + this.match(TSqlParser.EQUAL); + this.state = 5286; + localctx.password = this.match(TSqlParser.STRING); + this.state = 5317; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,630,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5315; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,629,this._ctx); + switch(la_) { + case 1: + this.state = 5288; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5287; + this.match(TSqlParser.COMMA); + } + + this.state = 5290; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5291; + this.match(TSqlParser.EQUAL); + this.state = 5292; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 5294; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5293; + this.match(TSqlParser.COMMA); + } + + this.state = 5296; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 5297; + this.match(TSqlParser.EQUAL); + this.state = 5301; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 5298; + this.match(TSqlParser.NONE); + break; + case TSqlParser.DECIMAL: + this.state = 5299; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5300; + localctx.language_name_or_alias = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 3: + this.state = 5304; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5303; + this.match(TSqlParser.COMMA); + } + + this.state = 5306; + this.match(TSqlParser.SID); + this.state = 5307; + this.match(TSqlParser.EQUAL); + this.state = 5308; + this.match(TSqlParser.BINARY); + break; + + case 4: + this.state = 5310; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5309; + this.match(TSqlParser.COMMA); + } + + this.state = 5312; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5313; + this.match(TSqlParser.EQUAL); + this.state = 5314; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 5319; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,630,this._ctx); + } + + break; + + case 3: + this.state = 5320; + localctx.Azure_Active_Directory_principal = this.id(); + this.state = 5321; + this.match(TSqlParser.FROM); + this.state = 5322; + this.match(TSqlParser.EXTERNAL); + this.state = 5323; + this.match(TSqlParser.PROVIDER); + break; + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5327; + this.match(TSqlParser.CREATE); + this.state = 5328; + this.match(TSqlParser.USER); + this.state = 5329; + localctx.user_name = this.id(); + this.state = 5356; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,636,this._ctx); + switch(la_) { + case 1: + this.state = 5330; + this.match(TSqlParser.WITHOUT); + this.state = 5331; + this.match(TSqlParser.LOGIN); + this.state = 5346; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,635,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5344; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,634,this._ctx); + switch(la_) { + case 1: + this.state = 5333; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5332; + this.match(TSqlParser.COMMA); + } + + this.state = 5335; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5336; + this.match(TSqlParser.EQUAL); + this.state = 5337; + localctx.schema_name = this.id(); + break; + + case 2: + this.state = 5339; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5338; + this.match(TSqlParser.COMMA); + } + + this.state = 5341; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5342; + this.match(TSqlParser.EQUAL); + this.state = 5343; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } + this.state = 5348; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,635,this._ctx); + } + + break; + + case 2: + this.state = 5349; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.FROM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5350; + this.match(TSqlParser.CERTIFICATE); + this.state = 5351; + localctx.cert_name = this.id(); + break; + + case 3: + this.state = 5352; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.FROM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5353; + this.match(TSqlParser.ASYMMETRIC); + this.state = 5354; + this.match(TSqlParser.KEY); + this.state = 5355; + localctx.asym_key_name = this.id(); + break; + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5358; + this.match(TSqlParser.CREATE); + this.state = 5359; + this.match(TSqlParser.USER); + this.state = 5360; + localctx.user_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_user_azure_sql_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_user_azure_sql_dw; + this.user_name = null; // IdContext + this.login_name = null; // IdContext + this.schema_name = null; // IdContext + this.Azure_Active_Directory_principal = null; // IdContext + return this; +} + +Create_user_azure_sql_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_user_azure_sql_dwContext.prototype.constructor = Create_user_azure_sql_dwContext; + +Create_user_azure_sql_dwContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_user_azure_sql_dwContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Create_user_azure_sql_dwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_user_azure_sql_dwContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Create_user_azure_sql_dwContext.prototype.WITHOUT = function() { + return this.getToken(TSqlParser.WITHOUT, 0); +}; + +Create_user_azure_sql_dwContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_user_azure_sql_dwContext.prototype.DEFAULT_SCHEMA = function() { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, 0); +}; + +Create_user_azure_sql_dwContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_user_azure_sql_dwContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_user_azure_sql_dwContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_user_azure_sql_dwContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_user_azure_sql_dwContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_user_azure_sql_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_user_azure_sql_dw(this); + } +}; + +Create_user_azure_sql_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_user_azure_sql_dw(this); + } +}; + +Create_user_azure_sql_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_user_azure_sql_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_user_azure_sql_dwContext = Create_user_azure_sql_dwContext; + +TSqlParser.prototype.create_user_azure_sql_dw = function() { + + var localctx = new Create_user_azure_sql_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 402, TSqlParser.RULE_create_user_azure_sql_dw); + var _la = 0; // Token type + try { + this.state = 5391; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,641,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5363; + this.match(TSqlParser.CREATE); + this.state = 5364; + this.match(TSqlParser.USER); + this.state = 5365; + localctx.user_name = this.id(); + this.state = 5371; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case TSqlParser.FOR: + case TSqlParser.FROM: + this.state = 5366; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.FROM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5367; + this.match(TSqlParser.LOGIN); + this.state = 5368; + localctx.login_name = this.id(); + break; + case TSqlParser.WITHOUT: + this.state = 5369; + this.match(TSqlParser.WITHOUT); + this.state = 5370; + this.match(TSqlParser.LOGIN); + break; + case TSqlParser.EOF: + case TSqlParser.ALTER: + case TSqlParser.BACKUP: + case TSqlParser.BEGIN: + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.BREAK: + case TSqlParser.CALLED: + case TSqlParser.CASE: + case TSqlParser.CLOSE: + case TSqlParser.COALESCE: + case TSqlParser.COMMIT: + case TSqlParser.CONTINUE: + case TSqlParser.CONVERT: + case TSqlParser.CREATE: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DBCC: + case TSqlParser.DEALLOCATE: + case TSqlParser.DECLARE: + case TSqlParser.DEFAULT: + case TSqlParser.DELETE: + case TSqlParser.DROP: + case TSqlParser.ELSE: + case TSqlParser.END: + case TSqlParser.EVENTDATA: + case TSqlParser.EXECUTE: + case TSqlParser.FETCH: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.GET: + case TSqlParser.GOTO: + case TSqlParser.GRANT: + case TSqlParser.IDENTITY: + case TSqlParser.IF: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.INSERT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.KILL: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.MERGE: + case TSqlParser.NULL: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.OPEN: + case TSqlParser.OVER: + case TSqlParser.PAGE: + case TSqlParser.PRINT: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAISERROR: + case TSqlParser.RAW: + case TSqlParser.RECONFIGURE: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.REVERT: + case TSqlParser.RIGHT: + case TSqlParser.ROLLBACK: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SAVE: + case TSqlParser.SELECT: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SET: + case TSqlParser.SETUSER: + case TSqlParser.SHUTDOWN: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.TRUNCATE: + case TSqlParser.UPDATE: + case TSqlParser.USE: + case TSqlParser.WAITFOR: + case TSqlParser.WHILE: + case TSqlParser.WITH: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.LR_BRACKET: + case TSqlParser.SEMI: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + case TSqlParser.BIT_NOT: + break; + default: + break; + } + this.state = 5377; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,639,this._ctx); + if(la_===1) { + this.state = 5373; + this.match(TSqlParser.WITH); + this.state = 5374; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5375; + this.match(TSqlParser.EQUAL); + this.state = 5376; + localctx.schema_name = this.id(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5379; + this.match(TSqlParser.CREATE); + this.state = 5380; + this.match(TSqlParser.USER); + this.state = 5381; + localctx.Azure_Active_Directory_principal = this.id(); + this.state = 5382; + this.match(TSqlParser.FROM); + this.state = 5383; + this.match(TSqlParser.EXTERNAL); + this.state = 5384; + this.match(TSqlParser.PROVIDER); + this.state = 5389; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,640,this._ctx); + if(la_===1) { + this.state = 5385; + this.match(TSqlParser.WITH); + this.state = 5386; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5387; + this.match(TSqlParser.EQUAL); + this.state = 5388; + localctx.schema_name = this.id(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_user_azure_sqlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_user_azure_sql; + this.username = null; // IdContext + this.newusername = null; // IdContext + this.schema_name = null; // IdContext + this.loginame = null; // IdContext + return this; +} + +Alter_user_azure_sqlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_user_azure_sqlContext.prototype.constructor = Alter_user_azure_sqlContext; + +Alter_user_azure_sqlContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_user_azure_sqlContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Alter_user_azure_sqlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_user_azure_sqlContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_user_azure_sqlContext.prototype.NAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NAME); + } else { + return this.getToken(TSqlParser.NAME, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.DEFAULT_SCHEMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_SCHEMA); + } else { + return this.getToken(TSqlParser.DEFAULT_SCHEMA, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.LOGIN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOGIN); + } else { + return this.getToken(TSqlParser.LOGIN, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + } else { + return this.getToken(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_user_azure_sqlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_user_azure_sql(this); + } +}; + +Alter_user_azure_sqlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_user_azure_sql(this); + } +}; + +Alter_user_azure_sqlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_user_azure_sql(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_user_azure_sqlContext = Alter_user_azure_sqlContext; + +TSqlParser.prototype.alter_user_azure_sql = function() { + + var localctx = new Alter_user_azure_sqlContext(this, this._ctx, this.state); + this.enterRule(localctx, 404, TSqlParser.RULE_alter_user_azure_sql); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5393; + this.match(TSqlParser.ALTER); + this.state = 5394; + this.match(TSqlParser.USER); + this.state = 5395; + localctx.username = this.id(); + this.state = 5396; + this.match(TSqlParser.WITH); + this.state = 5421; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 5421; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,646,this._ctx); + switch(la_) { + case 1: + this.state = 5398; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5397; + this.match(TSqlParser.COMMA); + } + + this.state = 5400; + this.match(TSqlParser.NAME); + this.state = 5401; + this.match(TSqlParser.EQUAL); + this.state = 5402; + localctx.newusername = this.id(); + break; + + case 2: + this.state = 5404; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5403; + this.match(TSqlParser.COMMA); + } + + this.state = 5406; + this.match(TSqlParser.DEFAULT_SCHEMA); + this.state = 5407; + this.match(TSqlParser.EQUAL); + this.state = 5408; + localctx.schema_name = this.id(); + break; + + case 3: + this.state = 5410; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5409; + this.match(TSqlParser.COMMA); + } + + this.state = 5412; + this.match(TSqlParser.LOGIN); + this.state = 5413; + this.match(TSqlParser.EQUAL); + this.state = 5414; + localctx.loginame = this.id(); + break; + + case 4: + this.state = 5416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5415; + this.match(TSqlParser.COMMA); + } + + this.state = 5418; + this.match(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS); + this.state = 5419; + this.match(TSqlParser.EQUAL); + this.state = 5420; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5423; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,647, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_workload_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_workload_group; + this.workload_group_group_name = null; // IdContext + this.request_max_memory_grant = null; // Token + this.request_max_cpu_time_sec = null; // Token + this.request_memory_grant_timeout_sec = null; // Token + this.max_dop = null; // Token + this.group_max_requests = null; // Token + this.workload_group_pool_name = null; // IdContext + return this; +} + +Alter_workload_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_workload_groupContext.prototype.constructor = Alter_workload_groupContext; + +Alter_workload_groupContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_workload_groupContext.prototype.WORKLOAD = function() { + return this.getToken(TSqlParser.WORKLOAD, 0); +}; + +Alter_workload_groupContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Alter_workload_groupContext.prototype.DEFAULT_DOUBLE_QUOTE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_DOUBLE_QUOTE); + } else { + return this.getToken(TSqlParser.DEFAULT_DOUBLE_QUOTE, i); + } +}; + + +Alter_workload_groupContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_workload_groupContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_workload_groupContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Alter_workload_groupContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Alter_workload_groupContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Alter_workload_groupContext.prototype.IMPORTANCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.IMPORTANCE); + } else { + return this.getToken(TSqlParser.IMPORTANCE, i); + } +}; + + +Alter_workload_groupContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_workload_groupContext.prototype.REQUEST_MAX_MEMORY_GRANT_PERCENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT); + } else { + return this.getToken(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT, i); + } +}; + + +Alter_workload_groupContext.prototype.REQUEST_MAX_CPU_TIME_SEC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MAX_CPU_TIME_SEC); + } else { + return this.getToken(TSqlParser.REQUEST_MAX_CPU_TIME_SEC, i); + } +}; + + +Alter_workload_groupContext.prototype.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC); + } else { + return this.getToken(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC, i); + } +}; + + +Alter_workload_groupContext.prototype.MAX_DOP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_DOP); + } else { + return this.getToken(TSqlParser.MAX_DOP, i); + } +}; + + +Alter_workload_groupContext.prototype.GROUP_MAX_REQUESTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GROUP_MAX_REQUESTS); + } else { + return this.getToken(TSqlParser.GROUP_MAX_REQUESTS, i); + } +}; + + +Alter_workload_groupContext.prototype.LOW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOW); + } else { + return this.getToken(TSqlParser.LOW, i); + } +}; + + +Alter_workload_groupContext.prototype.MEDIUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIUM); + } else { + return this.getToken(TSqlParser.MEDIUM, i); + } +}; + + +Alter_workload_groupContext.prototype.HIGH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.HIGH); + } else { + return this.getToken(TSqlParser.HIGH, i); + } +}; + + +Alter_workload_groupContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_workload_groupContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_workload_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_workload_group(this); + } +}; + +Alter_workload_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_workload_group(this); + } +}; + +Alter_workload_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_workload_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_workload_groupContext = Alter_workload_groupContext; + +TSqlParser.prototype.alter_workload_group = function() { + + var localctx = new Alter_workload_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 406, TSqlParser.RULE_alter_workload_group); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5425; + this.match(TSqlParser.ALTER); + this.state = 5426; + this.match(TSqlParser.WORKLOAD); + this.state = 5427; + this.match(TSqlParser.GROUP); + this.state = 5430; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,648,this._ctx); + switch(la_) { + case 1: + this.state = 5428; + localctx.workload_group_group_name = this.id(); + break; + + case 2: + this.state = 5429; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + break; + + } + this.state = 5463; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,653,this._ctx); + if(la_===1) { + this.state = 5432; + this.match(TSqlParser.WITH); + this.state = 5433; + this.match(TSqlParser.LR_BRACKET); + this.state = 5458; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5458; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,651,this._ctx); + switch(la_) { + case 1: + this.state = 5434; + this.match(TSqlParser.IMPORTANCE); + this.state = 5435; + this.match(TSqlParser.EQUAL); + this.state = 5436; + _la = this._input.LA(1); + if(!(_la===TSqlParser.HIGH || _la===TSqlParser.LOW || _la===TSqlParser.MEDIUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 5438; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5437; + this.match(TSqlParser.COMMA); + } + + this.state = 5440; + this.match(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT); + this.state = 5441; + this.match(TSqlParser.EQUAL); + this.state = 5442; + localctx.request_max_memory_grant = this.match(TSqlParser.DECIMAL); + break; + + case 3: + this.state = 5444; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5443; + this.match(TSqlParser.COMMA); + } + + this.state = 5446; + this.match(TSqlParser.REQUEST_MAX_CPU_TIME_SEC); + this.state = 5447; + this.match(TSqlParser.EQUAL); + this.state = 5448; + localctx.request_max_cpu_time_sec = this.match(TSqlParser.DECIMAL); + break; + + case 4: + this.state = 5449; + this.match(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC); + this.state = 5450; + this.match(TSqlParser.EQUAL); + this.state = 5451; + localctx.request_memory_grant_timeout_sec = this.match(TSqlParser.DECIMAL); + break; + + case 5: + this.state = 5452; + this.match(TSqlParser.MAX_DOP); + this.state = 5453; + this.match(TSqlParser.EQUAL); + this.state = 5454; + localctx.max_dop = this.match(TSqlParser.DECIMAL); + break; + + case 6: + this.state = 5455; + this.match(TSqlParser.GROUP_MAX_REQUESTS); + this.state = 5456; + this.match(TSqlParser.EQUAL); + this.state = 5457; + localctx.group_max_requests = this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 5460; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.GROUP_MAX_REQUESTS || _la===TSqlParser.IMPORTANCE || _la===TSqlParser.MAX_DOP || ((((_la - 683)) & ~0x1f) == 0 && ((1 << (_la - 683)) & ((1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 683)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 683)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 683)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 5462; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 5470; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,655,this._ctx); + if(la_===1) { + this.state = 5465; + this.match(TSqlParser.USING); + this.state = 5468; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,654,this._ctx); + switch(la_) { + case 1: + this.state = 5466; + localctx.workload_group_pool_name = this.id(); + break; + + case 2: + this.state = 5467; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + break; + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_workload_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_workload_group; + this.workload_group_group_name = null; // IdContext + this.request_max_memory_grant = null; // Token + this.request_max_cpu_time_sec = null; // Token + this.request_memory_grant_timeout_sec = null; // Token + this.max_dop = null; // Token + this.group_max_requests = null; // Token + this.workload_group_pool_name = null; // IdContext + this.external_pool_name = null; // IdContext + return this; +} + +Create_workload_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_workload_groupContext.prototype.constructor = Create_workload_groupContext; + +Create_workload_groupContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_workload_groupContext.prototype.WORKLOAD = function() { + return this.getToken(TSqlParser.WORKLOAD, 0); +}; + +Create_workload_groupContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Create_workload_groupContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_workload_groupContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_workload_groupContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_workload_groupContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_workload_groupContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Create_workload_groupContext.prototype.IMPORTANCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.IMPORTANCE); + } else { + return this.getToken(TSqlParser.IMPORTANCE, i); + } +}; + + +Create_workload_groupContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Create_workload_groupContext.prototype.REQUEST_MAX_MEMORY_GRANT_PERCENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT); + } else { + return this.getToken(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT, i); + } +}; + + +Create_workload_groupContext.prototype.REQUEST_MAX_CPU_TIME_SEC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MAX_CPU_TIME_SEC); + } else { + return this.getToken(TSqlParser.REQUEST_MAX_CPU_TIME_SEC, i); + } +}; + + +Create_workload_groupContext.prototype.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC); + } else { + return this.getToken(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC, i); + } +}; + + +Create_workload_groupContext.prototype.MAX_DOP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAX_DOP); + } else { + return this.getToken(TSqlParser.MAX_DOP, i); + } +}; + + +Create_workload_groupContext.prototype.GROUP_MAX_REQUESTS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GROUP_MAX_REQUESTS); + } else { + return this.getToken(TSqlParser.GROUP_MAX_REQUESTS, i); + } +}; + + +Create_workload_groupContext.prototype.DEFAULT_DOUBLE_QUOTE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT_DOUBLE_QUOTE); + } else { + return this.getToken(TSqlParser.DEFAULT_DOUBLE_QUOTE, i); + } +}; + + +Create_workload_groupContext.prototype.EXTERNAL = function() { + return this.getToken(TSqlParser.EXTERNAL, 0); +}; + +Create_workload_groupContext.prototype.LOW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOW); + } else { + return this.getToken(TSqlParser.LOW, i); + } +}; + + +Create_workload_groupContext.prototype.MEDIUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIUM); + } else { + return this.getToken(TSqlParser.MEDIUM, i); + } +}; + + +Create_workload_groupContext.prototype.HIGH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.HIGH); + } else { + return this.getToken(TSqlParser.HIGH, i); + } +}; + + +Create_workload_groupContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Create_workload_groupContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_workload_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_workload_group(this); + } +}; + +Create_workload_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_workload_group(this); + } +}; + +Create_workload_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_workload_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_workload_groupContext = Create_workload_groupContext; + +TSqlParser.prototype.create_workload_group = function() { + + var localctx = new Create_workload_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 408, TSqlParser.RULE_create_workload_group); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5472; + this.match(TSqlParser.CREATE); + this.state = 5473; + this.match(TSqlParser.WORKLOAD); + this.state = 5474; + this.match(TSqlParser.GROUP); + this.state = 5475; + localctx.workload_group_group_name = this.id(); + this.state = 5507; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,660,this._ctx); + if(la_===1) { + this.state = 5476; + this.match(TSqlParser.WITH); + this.state = 5477; + this.match(TSqlParser.LR_BRACKET); + this.state = 5502; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5502; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,658,this._ctx); + switch(la_) { + case 1: + this.state = 5478; + this.match(TSqlParser.IMPORTANCE); + this.state = 5479; + this.match(TSqlParser.EQUAL); + this.state = 5480; + _la = this._input.LA(1); + if(!(_la===TSqlParser.HIGH || _la===TSqlParser.LOW || _la===TSqlParser.MEDIUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.state = 5482; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5481; + this.match(TSqlParser.COMMA); + } + + this.state = 5484; + this.match(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT); + this.state = 5485; + this.match(TSqlParser.EQUAL); + this.state = 5486; + localctx.request_max_memory_grant = this.match(TSqlParser.DECIMAL); + break; + + case 3: + this.state = 5488; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5487; + this.match(TSqlParser.COMMA); + } + + this.state = 5490; + this.match(TSqlParser.REQUEST_MAX_CPU_TIME_SEC); + this.state = 5491; + this.match(TSqlParser.EQUAL); + this.state = 5492; + localctx.request_max_cpu_time_sec = this.match(TSqlParser.DECIMAL); + break; + + case 4: + this.state = 5493; + this.match(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC); + this.state = 5494; + this.match(TSqlParser.EQUAL); + this.state = 5495; + localctx.request_memory_grant_timeout_sec = this.match(TSqlParser.DECIMAL); + break; + + case 5: + this.state = 5496; + this.match(TSqlParser.MAX_DOP); + this.state = 5497; + this.match(TSqlParser.EQUAL); + this.state = 5498; + localctx.max_dop = this.match(TSqlParser.DECIMAL); + break; + + case 6: + this.state = 5499; + this.match(TSqlParser.GROUP_MAX_REQUESTS); + this.state = 5500; + this.match(TSqlParser.EQUAL); + this.state = 5501; + localctx.group_max_requests = this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 5504; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.GROUP_MAX_REQUESTS || _la===TSqlParser.IMPORTANCE || _la===TSqlParser.MAX_DOP || ((((_la - 683)) & ~0x1f) == 0 && ((1 << (_la - 683)) & ((1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 683)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 683)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 683)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 5506; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 5522; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,664,this._ctx); + if(la_===1) { + this.state = 5509; + this.match(TSqlParser.USING); + this.state = 5512; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,661,this._ctx); + if(la_===1) { + this.state = 5510; + localctx.workload_group_pool_name = this.id(); + + } else if(la_===2) { + this.state = 5511; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + + } + this.state = 5520; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,663,this._ctx); + if(la_===1) { + this.state = 5515; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5514; + this.match(TSqlParser.COMMA); + } + + this.state = 5517; + this.match(TSqlParser.EXTERNAL); + this.state = 5518; + localctx.external_pool_name = this.id(); + + } else if(la_===2) { + this.state = 5519; + this.match(TSqlParser.DEFAULT_DOUBLE_QUOTE); + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_xml_schema_collectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_xml_schema_collection; + this.relational_schema = null; // IdContext + this.sql_identifier = null; // IdContext + return this; +} + +Create_xml_schema_collectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_xml_schema_collectionContext.prototype.constructor = Create_xml_schema_collectionContext; + +Create_xml_schema_collectionContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_xml_schema_collectionContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Create_xml_schema_collectionContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Create_xml_schema_collectionContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Create_xml_schema_collectionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_xml_schema_collectionContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_xml_schema_collectionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_xml_schema_collectionContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Create_xml_schema_collectionContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Create_xml_schema_collectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_xml_schema_collection(this); + } +}; + +Create_xml_schema_collectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_xml_schema_collection(this); + } +}; + +Create_xml_schema_collectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_xml_schema_collection(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_xml_schema_collectionContext = Create_xml_schema_collectionContext; + +TSqlParser.prototype.create_xml_schema_collection = function() { + + var localctx = new Create_xml_schema_collectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 410, TSqlParser.RULE_create_xml_schema_collection); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5524; + this.match(TSqlParser.CREATE); + this.state = 5525; + this.match(TSqlParser.XML); + this.state = 5526; + this.match(TSqlParser.SCHEMA); + this.state = 5527; + this.match(TSqlParser.COLLECTION); + this.state = 5531; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,665,this._ctx); + if(la_===1) { + this.state = 5528; + localctx.relational_schema = this.id(); + this.state = 5529; + this.match(TSqlParser.DOT); + + } + this.state = 5533; + localctx.sql_identifier = this.id(); + this.state = 5534; + this.match(TSqlParser.AS); + this.state = 5538; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 5535; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5536; + this.id(); + break; + case TSqlParser.LOCAL_ID: + this.state = 5537; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_queueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_queue; + this.queue_name = null; // IdContext + this.filegroup = null; // IdContext + return this; +} + +Create_queueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_queueContext.prototype.constructor = Create_queueContext; + +Create_queueContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_queueContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Create_queueContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Create_queueContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_queueContext.prototype.queue_settings = function() { + return this.getTypedRuleContext(Queue_settingsContext,0); +}; + +Create_queueContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_queueContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Create_queueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_queue(this); + } +}; + +Create_queueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_queue(this); + } +}; + +Create_queueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_queue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_queueContext = Create_queueContext; + +TSqlParser.prototype.create_queue = function() { + + var localctx = new Create_queueContext(this, this._ctx, this.state); + this.enterRule(localctx, 412, TSqlParser.RULE_create_queue); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5540; + this.match(TSqlParser.CREATE); + this.state = 5541; + this.match(TSqlParser.QUEUE); + this.state = 5544; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,667,this._ctx); + switch(la_) { + case 1: + this.state = 5542; + this.full_table_name(); + break; + + case 2: + this.state = 5543; + localctx.queue_name = this.id(); + break; + + } + this.state = 5547; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,668,this._ctx); + if(la_===1) { + this.state = 5546; + this.queue_settings(); + + } + this.state = 5552; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,669,this._ctx); + if(la_===1) { + this.state = 5549; + this.match(TSqlParser.ON); + this.state = 5550; + localctx.filegroup = this.id(); + + } else if(la_===2) { + this.state = 5551; + this.match(TSqlParser.DEFAULT); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Queue_settingsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_queue_settings; + this.max_readers = null; // Token + this.user_name = null; // Token + return this; +} + +Queue_settingsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Queue_settingsContext.prototype.constructor = Queue_settingsContext; + +Queue_settingsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Queue_settingsContext.prototype.STATUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATUS); + } else { + return this.getToken(TSqlParser.STATUS, i); + } +}; + + +Queue_settingsContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Queue_settingsContext.prototype.RETENTION = function() { + return this.getToken(TSqlParser.RETENTION, 0); +}; + +Queue_settingsContext.prototype.ACTIVATION = function() { + return this.getToken(TSqlParser.ACTIVATION, 0); +}; + +Queue_settingsContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Queue_settingsContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Queue_settingsContext.prototype.POISON_MESSAGE_HANDLING = function() { + return this.getToken(TSqlParser.POISON_MESSAGE_HANDLING, 0); +}; + +Queue_settingsContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Queue_settingsContext.prototype.OFF = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OFF); + } else { + return this.getToken(TSqlParser.OFF, i); + } +}; + + +Queue_settingsContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Queue_settingsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Queue_settingsContext.prototype.PROCEDURE_NAME = function() { + return this.getToken(TSqlParser.PROCEDURE_NAME, 0); +}; + +Queue_settingsContext.prototype.func_proc_name_database_schema = function() { + return this.getTypedRuleContext(Func_proc_name_database_schemaContext,0); +}; + +Queue_settingsContext.prototype.MAX_QUEUE_READERS = function() { + return this.getToken(TSqlParser.MAX_QUEUE_READERS, 0); +}; + +Queue_settingsContext.prototype.EXECUTE = function() { + return this.getToken(TSqlParser.EXECUTE, 0); +}; + +Queue_settingsContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Queue_settingsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Queue_settingsContext.prototype.SELF = function() { + return this.getToken(TSqlParser.SELF, 0); +}; + +Queue_settingsContext.prototype.OWNER = function() { + return this.getToken(TSqlParser.OWNER, 0); +}; + +Queue_settingsContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Queue_settingsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQueue_settings(this); + } +}; + +Queue_settingsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQueue_settings(this); + } +}; + +Queue_settingsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQueue_settings(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Queue_settingsContext = Queue_settingsContext; + +TSqlParser.prototype.queue_settings = function() { + + var localctx = new Queue_settingsContext(this, this._ctx, this.state); + this.enterRule(localctx, 414, TSqlParser.RULE_queue_settings); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5554; + this.match(TSqlParser.WITH); + this.state = 5561; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,671,this._ctx); + if(la_===1) { + this.state = 5555; + this.match(TSqlParser.STATUS); + this.state = 5556; + this.match(TSqlParser.EQUAL); + this.state = 5557; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5559; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5558; + this.match(TSqlParser.COMMA); + } + + + } + this.state = 5569; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,673,this._ctx); + if(la_===1) { + this.state = 5563; + this.match(TSqlParser.RETENTION); + this.state = 5564; + this.match(TSqlParser.EQUAL); + this.state = 5565; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5567; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5566; + this.match(TSqlParser.COMMA); + } + + + } + this.state = 5616; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,685,this._ctx); + if(la_===1) { + this.state = 5571; + this.match(TSqlParser.ACTIVATION); + this.state = 5572; + this.match(TSqlParser.LR_BRACKET); + this.state = 5610; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EXECUTE: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.STATUS: + case TSqlParser.RR_BRACKET: + this.state = 5579; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.STATUS) { + this.state = 5573; + this.match(TSqlParser.STATUS); + this.state = 5574; + this.match(TSqlParser.EQUAL); + this.state = 5575; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5577; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5576; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 5587; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PROCEDURE_NAME) { + this.state = 5581; + this.match(TSqlParser.PROCEDURE_NAME); + this.state = 5582; + this.match(TSqlParser.EQUAL); + this.state = 5583; + this.func_proc_name_database_schema(); + this.state = 5585; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5584; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 5595; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAX_QUEUE_READERS) { + this.state = 5589; + this.match(TSqlParser.MAX_QUEUE_READERS); + this.state = 5590; + this.match(TSqlParser.EQUAL); + this.state = 5591; + localctx.max_readers = this.match(TSqlParser.DECIMAL); + this.state = 5593; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5592; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 5607; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EXECUTE) { + this.state = 5597; + this.match(TSqlParser.EXECUTE); + this.state = 5598; + this.match(TSqlParser.AS); + this.state = 5602; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SELF: + this.state = 5599; + this.match(TSqlParser.SELF); + break; + case TSqlParser.STRING: + this.state = 5600; + localctx.user_name = this.match(TSqlParser.STRING); + break; + case TSqlParser.OWNER: + this.state = 5601; + this.match(TSqlParser.OWNER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5605; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5604; + this.match(TSqlParser.COMMA); + } + + } + + break; + case TSqlParser.DROP: + this.state = 5609; + this.match(TSqlParser.DROP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5612; + this.match(TSqlParser.RR_BRACKET); + this.state = 5614; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5613; + this.match(TSqlParser.COMMA); + } + + + } + this.state = 5625; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,686,this._ctx); + if(la_===1) { + this.state = 5618; + this.match(TSqlParser.POISON_MESSAGE_HANDLING); + this.state = 5619; + this.match(TSqlParser.LR_BRACKET); + + this.state = 5620; + this.match(TSqlParser.STATUS); + this.state = 5621; + this.match(TSqlParser.EQUAL); + this.state = 5622; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5624; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_queueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_queue; + this.queue_name = null; // IdContext + return this; +} + +Alter_queueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_queueContext.prototype.constructor = Alter_queueContext; + +Alter_queueContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_queueContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Alter_queueContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Alter_queueContext.prototype.queue_settings = function() { + return this.getTypedRuleContext(Queue_settingsContext,0); +}; + +Alter_queueContext.prototype.queue_action = function() { + return this.getTypedRuleContext(Queue_actionContext,0); +}; + +Alter_queueContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_queueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_queue(this); + } +}; + +Alter_queueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_queue(this); + } +}; + +Alter_queueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_queue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_queueContext = Alter_queueContext; + +TSqlParser.prototype.alter_queue = function() { + + var localctx = new Alter_queueContext(this, this._ctx, this.state); + this.enterRule(localctx, 416, TSqlParser.RULE_alter_queue); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5627; + this.match(TSqlParser.ALTER); + this.state = 5628; + this.match(TSqlParser.QUEUE); + this.state = 5631; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,687,this._ctx); + switch(la_) { + case 1: + this.state = 5629; + this.full_table_name(); + break; + + case 2: + this.state = 5630; + localctx.queue_name = this.id(); + break; + + } + this.state = 5635; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WITH: + this.state = 5633; + this.queue_settings(); + break; + case TSqlParser.MOVE: + case TSqlParser.REBUILD: + case TSqlParser.REORGANIZE: + this.state = 5634; + this.queue_action(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Queue_actionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_queue_action; + return this; +} + +Queue_actionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Queue_actionContext.prototype.constructor = Queue_actionContext; + +Queue_actionContext.prototype.REBUILD = function() { + return this.getToken(TSqlParser.REBUILD, 0); +}; + +Queue_actionContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Queue_actionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Queue_actionContext.prototype.queue_rebuild_options = function() { + return this.getTypedRuleContext(Queue_rebuild_optionsContext,0); +}; + +Queue_actionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Queue_actionContext.prototype.REORGANIZE = function() { + return this.getToken(TSqlParser.REORGANIZE, 0); +}; + +Queue_actionContext.prototype.LOB_COMPACTION = function() { + return this.getToken(TSqlParser.LOB_COMPACTION, 0); +}; + +Queue_actionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Queue_actionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Queue_actionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Queue_actionContext.prototype.MOVE = function() { + return this.getToken(TSqlParser.MOVE, 0); +}; + +Queue_actionContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Queue_actionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Queue_actionContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Queue_actionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQueue_action(this); + } +}; + +Queue_actionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQueue_action(this); + } +}; + +Queue_actionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQueue_action(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Queue_actionContext = Queue_actionContext; + +TSqlParser.prototype.queue_action = function() { + + var localctx = new Queue_actionContext(this, this._ctx, this.state); + this.enterRule(localctx, 418, TSqlParser.RULE_queue_action); + var _la = 0; // Token type + try { + this.state = 5658; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.REBUILD: + this.enterOuterAlt(localctx, 1); + this.state = 5637; + this.match(TSqlParser.REBUILD); + this.state = 5643; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,689,this._ctx); + if(la_===1) { + this.state = 5638; + this.match(TSqlParser.WITH); + this.state = 5639; + this.match(TSqlParser.LR_BRACKET); + this.state = 5640; + this.queue_rebuild_options(); + this.state = 5641; + this.match(TSqlParser.RR_BRACKET); + + } + break; + case TSqlParser.REORGANIZE: + this.enterOuterAlt(localctx, 2); + this.state = 5645; + this.match(TSqlParser.REORGANIZE); + this.state = 5650; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,690,this._ctx); + if(la_===1) { + this.state = 5646; + this.match(TSqlParser.WITH); + this.state = 5647; + this.match(TSqlParser.LOB_COMPACTION); + this.state = 5648; + this.match(TSqlParser.EQUAL); + this.state = 5649; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case TSqlParser.MOVE: + this.enterOuterAlt(localctx, 3); + this.state = 5652; + this.match(TSqlParser.MOVE); + this.state = 5653; + this.match(TSqlParser.TO); + this.state = 5656; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5654; + this.id(); + break; + case TSqlParser.DEFAULT: + this.state = 5655; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Queue_rebuild_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_queue_rebuild_options; + return this; +} + +Queue_rebuild_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Queue_rebuild_optionsContext.prototype.constructor = Queue_rebuild_optionsContext; + +Queue_rebuild_optionsContext.prototype.MAXDOP = function() { + return this.getToken(TSqlParser.MAXDOP, 0); +}; + +Queue_rebuild_optionsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Queue_rebuild_optionsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Queue_rebuild_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQueue_rebuild_options(this); + } +}; + +Queue_rebuild_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQueue_rebuild_options(this); + } +}; + +Queue_rebuild_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQueue_rebuild_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Queue_rebuild_optionsContext = Queue_rebuild_optionsContext; + +TSqlParser.prototype.queue_rebuild_options = function() { + + var localctx = new Queue_rebuild_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 420, TSqlParser.RULE_queue_rebuild_options); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5660; + this.match(TSqlParser.MAXDOP); + this.state = 5661; + this.match(TSqlParser.EQUAL); + this.state = 5662; + this.match(TSqlParser.DECIMAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_contractContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_contract; + this.owner_name = null; // IdContext + this.message_type_name = null; // IdContext + return this; +} + +Create_contractContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_contractContext.prototype.constructor = Create_contractContext; + +Create_contractContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_contractContext.prototype.CONTRACT = function() { + return this.getToken(TSqlParser.CONTRACT, 0); +}; + +Create_contractContext.prototype.contract_name = function() { + return this.getTypedRuleContext(Contract_nameContext,0); +}; + +Create_contractContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_contractContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_contractContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_contractContext.prototype.SENT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SENT); + } else { + return this.getToken(TSqlParser.SENT, i); + } +}; + + +Create_contractContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Create_contractContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_contractContext.prototype.INITIATOR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INITIATOR); + } else { + return this.getToken(TSqlParser.INITIATOR, i); + } +}; + + +Create_contractContext.prototype.TARGET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TARGET); + } else { + return this.getToken(TSqlParser.TARGET, i); + } +}; + + +Create_contractContext.prototype.ANY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ANY); + } else { + return this.getToken(TSqlParser.ANY, i); + } +}; + + +Create_contractContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT); + } else { + return this.getToken(TSqlParser.DEFAULT, i); + } +}; + + +Create_contractContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_contractContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_contract(this); + } +}; + +Create_contractContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_contract(this); + } +}; + +Create_contractContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_contract(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_contractContext = Create_contractContext; + +TSqlParser.prototype.create_contract = function() { + + var localctx = new Create_contractContext(this, this._ctx, this.state); + this.enterRule(localctx, 422, TSqlParser.RULE_create_contract); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5664; + this.match(TSqlParser.CREATE); + this.state = 5665; + this.match(TSqlParser.CONTRACT); + this.state = 5666; + this.contract_name(); + this.state = 5669; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 5667; + this.match(TSqlParser.AUTHORIZATION); + this.state = 5668; + localctx.owner_name = this.id(); + } + + this.state = 5671; + this.match(TSqlParser.LR_BRACKET); + this.state = 5682; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 5674; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 5672; + localctx.message_type_name = this.id(); + break; + case TSqlParser.DEFAULT: + this.state = 5673; + this.match(TSqlParser.DEFAULT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5676; + this.match(TSqlParser.SENT); + this.state = 5677; + this.match(TSqlParser.BY); + this.state = 5678; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ANY || _la===TSqlParser.TARGET || _la===TSqlParser.INITIATOR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5680; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5679; + this.match(TSqlParser.COMMA); + } + + this.state = 5684; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || _la===TSqlParser.DEFAULT || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)); + this.state = 5686; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Conversation_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_conversation_statement; + return this; +} + +Conversation_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Conversation_statementContext.prototype.constructor = Conversation_statementContext; + +Conversation_statementContext.prototype.begin_conversation_timer = function() { + return this.getTypedRuleContext(Begin_conversation_timerContext,0); +}; + +Conversation_statementContext.prototype.begin_conversation_dialog = function() { + return this.getTypedRuleContext(Begin_conversation_dialogContext,0); +}; + +Conversation_statementContext.prototype.end_conversation = function() { + return this.getTypedRuleContext(End_conversationContext,0); +}; + +Conversation_statementContext.prototype.get_conversation = function() { + return this.getTypedRuleContext(Get_conversationContext,0); +}; + +Conversation_statementContext.prototype.send_conversation = function() { + return this.getTypedRuleContext(Send_conversationContext,0); +}; + +Conversation_statementContext.prototype.waitfor_conversation = function() { + return this.getTypedRuleContext(Waitfor_conversationContext,0); +}; + +Conversation_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterConversation_statement(this); + } +}; + +Conversation_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitConversation_statement(this); + } +}; + +Conversation_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitConversation_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Conversation_statementContext = Conversation_statementContext; + +TSqlParser.prototype.conversation_statement = function() { + + var localctx = new Conversation_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 424, TSqlParser.RULE_conversation_statement); + try { + this.state = 5694; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,697,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5688; + this.begin_conversation_timer(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5689; + this.begin_conversation_dialog(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5690; + this.end_conversation(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5691; + this.get_conversation(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 5692; + this.send_conversation(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 5693; + this.waitfor_conversation(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Message_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_message_statement; + this.message_type_name = null; // IdContext + this.owner_name = null; // IdContext + this.schema_collection_name = null; // IdContext + return this; +} + +Message_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Message_statementContext.prototype.constructor = Message_statementContext; + +Message_statementContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Message_statementContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Message_statementContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Message_statementContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Message_statementContext.prototype.VALIDATION = function() { + return this.getToken(TSqlParser.VALIDATION, 0); +}; + +Message_statementContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Message_statementContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Message_statementContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Message_statementContext.prototype.EMPTY = function() { + return this.getToken(TSqlParser.EMPTY, 0); +}; + +Message_statementContext.prototype.WELL_FORMED_XML = function() { + return this.getToken(TSqlParser.WELL_FORMED_XML, 0); +}; + +Message_statementContext.prototype.VALID_XML = function() { + return this.getToken(TSqlParser.VALID_XML, 0); +}; + +Message_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Message_statementContext.prototype.SCHEMA = function() { + return this.getToken(TSqlParser.SCHEMA, 0); +}; + +Message_statementContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Message_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMessage_statement(this); + } +}; + +Message_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMessage_statement(this); + } +}; + +Message_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMessage_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Message_statementContext = Message_statementContext; + +TSqlParser.prototype.message_statement = function() { + + var localctx = new Message_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 426, TSqlParser.RULE_message_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5696; + this.match(TSqlParser.CREATE); + this.state = 5697; + this.match(TSqlParser.MESSAGE); + this.state = 5698; + this.match(TSqlParser.TYPE); + this.state = 5699; + localctx.message_type_name = this.id(); + this.state = 5702; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 5700; + this.match(TSqlParser.AUTHORIZATION); + this.state = 5701; + localctx.owner_name = this.id(); + } + + this.state = 5704; + this.match(TSqlParser.VALIDATION); + this.state = 5705; + this.match(TSqlParser.EQUAL); + this.state = 5714; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NONE: + this.state = 5706; + this.match(TSqlParser.NONE); + break; + case TSqlParser.EMPTY: + this.state = 5707; + this.match(TSqlParser.EMPTY); + break; + case TSqlParser.WELL_FORMED_XML: + this.state = 5708; + this.match(TSqlParser.WELL_FORMED_XML); + break; + case TSqlParser.VALID_XML: + this.state = 5709; + this.match(TSqlParser.VALID_XML); + this.state = 5710; + this.match(TSqlParser.WITH); + this.state = 5711; + this.match(TSqlParser.SCHEMA); + this.state = 5712; + this.match(TSqlParser.COLLECTION); + this.state = 5713; + localctx.schema_collection_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Merge_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_merge_statement; + return this; +} + +Merge_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Merge_statementContext.prototype.constructor = Merge_statementContext; + +Merge_statementContext.prototype.MERGE = function() { + return this.getToken(TSqlParser.MERGE, 0); +}; + +Merge_statementContext.prototype.ddl_object = function() { + return this.getTypedRuleContext(Ddl_objectContext,0); +}; + +Merge_statementContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Merge_statementContext.prototype.table_sources = function() { + return this.getTypedRuleContext(Table_sourcesContext,0); +}; + +Merge_statementContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Merge_statementContext.prototype.search_condition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_conditionContext); + } else { + return this.getTypedRuleContext(Search_conditionContext,i); + } +}; + +Merge_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Merge_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Merge_statementContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Merge_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Merge_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Merge_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Merge_statementContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Merge_statementContext.prototype.insert_with_table_hints = function() { + return this.getTypedRuleContext(Insert_with_table_hintsContext,0); +}; + +Merge_statementContext.prototype.as_table_alias = function() { + return this.getTypedRuleContext(As_table_aliasContext,0); +}; + +Merge_statementContext.prototype.WHEN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WHEN); + } else { + return this.getToken(TSqlParser.WHEN, i); + } +}; + + +Merge_statementContext.prototype.MATCHED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MATCHED); + } else { + return this.getToken(TSqlParser.MATCHED, i); + } +}; + + +Merge_statementContext.prototype.THEN = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.THEN); + } else { + return this.getToken(TSqlParser.THEN, i); + } +}; + + +Merge_statementContext.prototype.merge_matched = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Merge_matchedContext); + } else { + return this.getTypedRuleContext(Merge_matchedContext,i); + } +}; + +Merge_statementContext.prototype.NOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOT); + } else { + return this.getToken(TSqlParser.NOT, i); + } +}; + + +Merge_statementContext.prototype.merge_not_matched = function() { + return this.getTypedRuleContext(Merge_not_matchedContext,0); +}; + +Merge_statementContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Merge_statementContext.prototype.SOURCE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SOURCE); + } else { + return this.getToken(TSqlParser.SOURCE, i); + } +}; + + +Merge_statementContext.prototype.output_clause = function() { + return this.getTypedRuleContext(Output_clauseContext,0); +}; + +Merge_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Merge_statementContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Merge_statementContext.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AND); + } else { + return this.getToken(TSqlParser.AND, i); + } +}; + + +Merge_statementContext.prototype.TARGET = function() { + return this.getToken(TSqlParser.TARGET, 0); +}; + +Merge_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMerge_statement(this); + } +}; + +Merge_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMerge_statement(this); + } +}; + +Merge_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMerge_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Merge_statementContext = Merge_statementContext; + +TSqlParser.prototype.merge_statement = function() { + + var localctx = new Merge_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 428, TSqlParser.RULE_merge_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5717; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5716; + this.with_expression(); + } + + this.state = 5719; + this.match(TSqlParser.MERGE); + this.state = 5727; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TOP) { + this.state = 5720; + this.match(TSqlParser.TOP); + this.state = 5721; + this.match(TSqlParser.LR_BRACKET); + this.state = 5722; + this.expression(0); + this.state = 5723; + this.match(TSqlParser.RR_BRACKET); + this.state = 5725; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PERCENT) { + this.state = 5724; + this.match(TSqlParser.PERCENT); + } + + } + + this.state = 5730; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 5729; + this.match(TSqlParser.INTO); + } + + this.state = 5732; + this.ddl_object(); + this.state = 5734; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5733; + this.insert_with_table_hints(); + } + + this.state = 5737; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,705,this._ctx); + if(la_===1) { + this.state = 5736; + this.as_table_alias(); + + } + this.state = 5739; + this.match(TSqlParser.USING); + this.state = 5740; + this.table_sources(); + this.state = 5741; + this.match(TSqlParser.ON); + this.state = 5742; + this.search_condition(); + this.state = 5753; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,707,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 5743; + this.match(TSqlParser.WHEN); + this.state = 5744; + this.match(TSqlParser.MATCHED); + this.state = 5747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AND) { + this.state = 5745; + this.match(TSqlParser.AND); + this.state = 5746; + this.search_condition(); + } + + this.state = 5749; + this.match(TSqlParser.THEN); + this.state = 5750; + this.merge_matched(); + } + this.state = 5755; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,707,this._ctx); + } + + this.state = 5769; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,710,this._ctx); + if(la_===1) { + this.state = 5756; + this.match(TSqlParser.WHEN); + this.state = 5757; + this.match(TSqlParser.NOT); + this.state = 5758; + this.match(TSqlParser.MATCHED); + this.state = 5761; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.BY) { + this.state = 5759; + this.match(TSqlParser.BY); + this.state = 5760; + this.match(TSqlParser.TARGET); + } + + this.state = 5765; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AND) { + this.state = 5763; + this.match(TSqlParser.AND); + this.state = 5764; + this.search_condition(); + } + + this.state = 5767; + this.match(TSqlParser.THEN); + this.state = 5768; + this.merge_not_matched(); + + } + this.state = 5784; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.WHEN) { + this.state = 5771; + this.match(TSqlParser.WHEN); + this.state = 5772; + this.match(TSqlParser.NOT); + this.state = 5773; + this.match(TSqlParser.MATCHED); + this.state = 5774; + this.match(TSqlParser.BY); + this.state = 5775; + this.match(TSqlParser.SOURCE); + this.state = 5778; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AND) { + this.state = 5776; + this.match(TSqlParser.AND); + this.state = 5777; + this.search_condition(); + } + + this.state = 5780; + this.match(TSqlParser.THEN); + this.state = 5781; + this.merge_matched(); + this.state = 5786; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5788; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OUTPUT) { + this.state = 5787; + this.output_clause(); + } + + this.state = 5791; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OPTION) { + this.state = 5790; + this.option_clause(); + } + + this.state = 5793; + this.match(TSqlParser.SEMI); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Merge_matchedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_merge_matched; + return this; +} + +Merge_matchedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Merge_matchedContext.prototype.constructor = Merge_matchedContext; + +Merge_matchedContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Merge_matchedContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Merge_matchedContext.prototype.update_elem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Update_elemContext); + } else { + return this.getTypedRuleContext(Update_elemContext,i); + } +}; + +Merge_matchedContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Merge_matchedContext.prototype.DELETE = function() { + return this.getToken(TSqlParser.DELETE, 0); +}; + +Merge_matchedContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMerge_matched(this); + } +}; + +Merge_matchedContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMerge_matched(this); + } +}; + +Merge_matchedContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMerge_matched(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Merge_matchedContext = Merge_matchedContext; + +TSqlParser.prototype.merge_matched = function() { + + var localctx = new Merge_matchedContext(this, this._ctx, this.state); + this.enterRule(localctx, 430, TSqlParser.RULE_merge_matched); + var _la = 0; // Token type + try { + this.state = 5806; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UPDATE: + this.enterOuterAlt(localctx, 1); + this.state = 5795; + this.match(TSqlParser.UPDATE); + this.state = 5796; + this.match(TSqlParser.SET); + this.state = 5797; + this.update_elem(); + this.state = 5802; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 5798; + this.match(TSqlParser.COMMA); + this.state = 5799; + this.update_elem(); + this.state = 5804; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + case TSqlParser.DELETE: + this.enterOuterAlt(localctx, 2); + this.state = 5805; + this.match(TSqlParser.DELETE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Merge_not_matchedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_merge_not_matched; + return this; +} + +Merge_not_matchedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Merge_not_matchedContext.prototype.constructor = Merge_not_matchedContext; + +Merge_not_matchedContext.prototype.INSERT = function() { + return this.getToken(TSqlParser.INSERT, 0); +}; + +Merge_not_matchedContext.prototype.table_value_constructor = function() { + return this.getTypedRuleContext(Table_value_constructorContext,0); +}; + +Merge_not_matchedContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Merge_not_matchedContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Merge_not_matchedContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Merge_not_matchedContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Merge_not_matchedContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Merge_not_matchedContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMerge_not_matched(this); + } +}; + +Merge_not_matchedContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMerge_not_matched(this); + } +}; + +Merge_not_matchedContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMerge_not_matched(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Merge_not_matchedContext = Merge_not_matchedContext; + +TSqlParser.prototype.merge_not_matched = function() { + + var localctx = new Merge_not_matchedContext(this, this._ctx, this.state); + this.enterRule(localctx, 432, TSqlParser.RULE_merge_not_matched); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5808; + this.match(TSqlParser.INSERT); + this.state = 5813; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 5809; + this.match(TSqlParser.LR_BRACKET); + this.state = 5810; + this.column_name_list(); + this.state = 5811; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 5818; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.VALUES: + this.state = 5815; + this.table_value_constructor(); + break; + case TSqlParser.DEFAULT: + this.state = 5816; + this.match(TSqlParser.DEFAULT); + this.state = 5817; + this.match(TSqlParser.VALUES); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Delete_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_delete_statement; + this.cursor_var = null; // Token + return this; +} + +Delete_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Delete_statementContext.prototype.constructor = Delete_statementContext; + +Delete_statementContext.prototype.DELETE = function() { + return this.getToken(TSqlParser.DELETE, 0); +}; + +Delete_statementContext.prototype.delete_statement_from = function() { + return this.getTypedRuleContext(Delete_statement_fromContext,0); +}; + +Delete_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Delete_statementContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Delete_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Delete_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Delete_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Delete_statementContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Delete_statementContext.prototype.FROM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FROM); + } else { + return this.getToken(TSqlParser.FROM, i); + } +}; + + +Delete_statementContext.prototype.insert_with_table_hints = function() { + return this.getTypedRuleContext(Insert_with_table_hintsContext,0); +}; + +Delete_statementContext.prototype.output_clause = function() { + return this.getTypedRuleContext(Output_clauseContext,0); +}; + +Delete_statementContext.prototype.table_sources = function() { + return this.getTypedRuleContext(Table_sourcesContext,0); +}; + +Delete_statementContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Delete_statementContext.prototype.for_clause = function() { + return this.getTypedRuleContext(For_clauseContext,0); +}; + +Delete_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Delete_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Delete_statementContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Delete_statementContext.prototype.CURRENT = function() { + return this.getToken(TSqlParser.CURRENT, 0); +}; + +Delete_statementContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Delete_statementContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Delete_statementContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Delete_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Delete_statementContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Delete_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDelete_statement(this); + } +}; + +Delete_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDelete_statement(this); + } +}; + +Delete_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDelete_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Delete_statementContext = Delete_statementContext; + +TSqlParser.prototype.delete_statement = function() { + + var localctx = new Delete_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 434, TSqlParser.RULE_delete_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5821; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5820; + this.with_expression(); + } + + this.state = 5823; + this.match(TSqlParser.DELETE); + this.state = 5833; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,721,this._ctx); + if(la_===1) { + this.state = 5824; + this.match(TSqlParser.TOP); + this.state = 5825; + this.match(TSqlParser.LR_BRACKET); + this.state = 5826; + this.expression(0); + this.state = 5827; + this.match(TSqlParser.RR_BRACKET); + this.state = 5829; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PERCENT) { + this.state = 5828; + this.match(TSqlParser.PERCENT); + } + + + } else if(la_===2) { + this.state = 5831; + this.match(TSqlParser.TOP); + this.state = 5832; + this.match(TSqlParser.DECIMAL); + + } + this.state = 5836; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 5835; + this.match(TSqlParser.FROM); + } + + this.state = 5838; + this.delete_statement_from(); + this.state = 5840; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,723,this._ctx); + if(la_===1) { + this.state = 5839; + this.insert_with_table_hints(); + + } + this.state = 5843; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,724,this._ctx); + if(la_===1) { + this.state = 5842; + this.output_clause(); + + } + this.state = 5847; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 5845; + this.match(TSqlParser.FROM); + this.state = 5846; + this.table_sources(); + } + + this.state = 5862; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 5849; + this.match(TSqlParser.WHERE); + this.state = 5860; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.CASE: + case TSqlParser.COALESCE: + case TSqlParser.CONVERT: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DEFAULT: + case TSqlParser.EVENTDATA: + case TSqlParser.EXISTS: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.IDENTITY: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.NOT: + case TSqlParser.NULL: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.OVER: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.RIGHT: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.LR_BRACKET: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + case TSqlParser.BIT_NOT: + this.state = 5850; + this.search_condition(); + break; + case TSqlParser.CURRENT: + this.state = 5851; + this.match(TSqlParser.CURRENT); + this.state = 5852; + this.match(TSqlParser.OF); + this.state = 5858; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,727,this._ctx); + switch(la_) { + case 1: + this.state = 5854; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,726,this._ctx); + if(la_===1) { + this.state = 5853; + this.match(TSqlParser.GLOBAL); + + } + this.state = 5856; + this.cursor_name(); + break; + + case 2: + this.state = 5857; + localctx.cursor_var = this.match(TSqlParser.LOCAL_ID); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 5865; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 5864; + this.for_clause(); + } + + this.state = 5868; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OPTION) { + this.state = 5867; + this.option_clause(); + } + + this.state = 5871; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,732,this._ctx); + if(la_===1) { + this.state = 5870; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Delete_statement_fromContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_delete_statement_from; + this.table_var = null; // Token + return this; +} + +Delete_statement_fromContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Delete_statement_fromContext.prototype.constructor = Delete_statement_fromContext; + +Delete_statement_fromContext.prototype.ddl_object = function() { + return this.getTypedRuleContext(Ddl_objectContext,0); +}; + +Delete_statement_fromContext.prototype.table_alias = function() { + return this.getTypedRuleContext(Table_aliasContext,0); +}; + +Delete_statement_fromContext.prototype.rowset_function_limited = function() { + return this.getTypedRuleContext(Rowset_function_limitedContext,0); +}; + +Delete_statement_fromContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Delete_statement_fromContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDelete_statement_from(this); + } +}; + +Delete_statement_fromContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDelete_statement_from(this); + } +}; + +Delete_statement_fromContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDelete_statement_from(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Delete_statement_fromContext = Delete_statement_fromContext; + +TSqlParser.prototype.delete_statement_from = function() { + + var localctx = new Delete_statement_fromContext(this, this._ctx, this.state); + this.enterRule(localctx, 436, TSqlParser.RULE_delete_statement_from); + try { + this.state = 5877; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,733,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5873; + this.ddl_object(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5874; + this.table_alias(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5875; + this.rowset_function_limited(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5876; + localctx.table_var = this.match(TSqlParser.LOCAL_ID); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Insert_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_insert_statement; + return this; +} + +Insert_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Insert_statementContext.prototype.constructor = Insert_statementContext; + +Insert_statementContext.prototype.INSERT = function() { + return this.getToken(TSqlParser.INSERT, 0); +}; + +Insert_statementContext.prototype.insert_statement_value = function() { + return this.getTypedRuleContext(Insert_statement_valueContext,0); +}; + +Insert_statementContext.prototype.ddl_object = function() { + return this.getTypedRuleContext(Ddl_objectContext,0); +}; + +Insert_statementContext.prototype.rowset_function_limited = function() { + return this.getTypedRuleContext(Rowset_function_limitedContext,0); +}; + +Insert_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Insert_statementContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Insert_statementContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Insert_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Insert_statementContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Insert_statementContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Insert_statementContext.prototype.insert_with_table_hints = function() { + return this.getTypedRuleContext(Insert_with_table_hintsContext,0); +}; + +Insert_statementContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Insert_statementContext.prototype.output_clause = function() { + return this.getTypedRuleContext(Output_clauseContext,0); +}; + +Insert_statementContext.prototype.for_clause = function() { + return this.getTypedRuleContext(For_clauseContext,0); +}; + +Insert_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Insert_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Insert_statementContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Insert_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterInsert_statement(this); + } +}; + +Insert_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitInsert_statement(this); + } +}; + +Insert_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitInsert_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Insert_statementContext = Insert_statementContext; + +TSqlParser.prototype.insert_statement = function() { + + var localctx = new Insert_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 438, TSqlParser.RULE_insert_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5880; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5879; + this.with_expression(); + } + + this.state = 5882; + this.match(TSqlParser.INSERT); + this.state = 5890; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TOP) { + this.state = 5883; + this.match(TSqlParser.TOP); + this.state = 5884; + this.match(TSqlParser.LR_BRACKET); + this.state = 5885; + this.expression(0); + this.state = 5886; + this.match(TSqlParser.RR_BRACKET); + this.state = 5888; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PERCENT) { + this.state = 5887; + this.match(TSqlParser.PERCENT); + } + + } + + this.state = 5893; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 5892; + this.match(TSqlParser.INTO); + } + + this.state = 5897; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.ID: + this.state = 5895; + this.ddl_object(); + break; + case TSqlParser.OPENDATASOURCE: + case TSqlParser.OPENQUERY: + this.state = 5896; + this.rowset_function_limited(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5900; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,739,this._ctx); + if(la_===1) { + this.state = 5899; + this.insert_with_table_hints(); + + } + this.state = 5906; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,740,this._ctx); + if(la_===1) { + this.state = 5902; + this.match(TSqlParser.LR_BRACKET); + this.state = 5903; + this.column_name_list(); + this.state = 5904; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 5909; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OUTPUT) { + this.state = 5908; + this.output_clause(); + } + + this.state = 5911; + this.insert_statement_value(); + this.state = 5913; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 5912; + this.for_clause(); + } + + this.state = 5916; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OPTION) { + this.state = 5915; + this.option_clause(); + } + + this.state = 5919; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,744,this._ctx); + if(la_===1) { + this.state = 5918; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Insert_statement_valueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_insert_statement_value; + return this; +} + +Insert_statement_valueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Insert_statement_valueContext.prototype.constructor = Insert_statement_valueContext; + +Insert_statement_valueContext.prototype.table_value_constructor = function() { + return this.getTypedRuleContext(Table_value_constructorContext,0); +}; + +Insert_statement_valueContext.prototype.derived_table = function() { + return this.getTypedRuleContext(Derived_tableContext,0); +}; + +Insert_statement_valueContext.prototype.execute_statement = function() { + return this.getTypedRuleContext(Execute_statementContext,0); +}; + +Insert_statement_valueContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Insert_statement_valueContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Insert_statement_valueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterInsert_statement_value(this); + } +}; + +Insert_statement_valueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitInsert_statement_value(this); + } +}; + +Insert_statement_valueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitInsert_statement_value(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Insert_statement_valueContext = Insert_statement_valueContext; + +TSqlParser.prototype.insert_statement_value = function() { + + var localctx = new Insert_statement_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 440, TSqlParser.RULE_insert_statement_value); + try { + this.state = 5926; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,745,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 5921; + this.table_value_constructor(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 5922; + this.derived_table(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 5923; + this.execute_statement(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 5924; + this.match(TSqlParser.DEFAULT); + this.state = 5925; + this.match(TSqlParser.VALUES); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Receive_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_receive_statement; + this.table_variable = null; // IdContext + this.where = null; // Search_conditionContext + return this; +} + +Receive_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Receive_statementContext.prototype.constructor = Receive_statementContext; + +Receive_statementContext.prototype.RECEIVE = function() { + return this.getToken(TSqlParser.RECEIVE, 0); +}; + +Receive_statementContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Receive_statementContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Receive_statementContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Receive_statementContext.prototype.DISTINCT = function() { + return this.getToken(TSqlParser.DISTINCT, 0); +}; + +Receive_statementContext.prototype.top_clause = function() { + return this.getTypedRuleContext(Top_clauseContext,0); +}; + +Receive_statementContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +Receive_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Receive_statementContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Receive_statementContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Receive_statementContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Receive_statementContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Receive_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Receive_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Receive_statementContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Receive_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Receive_statementContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Receive_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterReceive_statement(this); + } +}; + +Receive_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitReceive_statement(this); + } +}; + +Receive_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitReceive_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Receive_statementContext = Receive_statementContext; + +TSqlParser.prototype.receive_statement = function() { + + var localctx = new Receive_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 442, TSqlParser.RULE_receive_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5929; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 5928; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 5931; + this.match(TSqlParser.RECEIVE); + this.state = 5936; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.state = 5932; + this.match(TSqlParser.ALL); + break; + case TSqlParser.DISTINCT: + this.state = 5933; + this.match(TSqlParser.DISTINCT); + break; + case TSqlParser.TOP: + this.state = 5934; + this.top_clause(); + break; + case TSqlParser.STAR: + this.state = 5935; + this.match(TSqlParser.STAR); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5946; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.LOCAL_ID) { + this.state = 5938; + this.match(TSqlParser.LOCAL_ID); + this.state = 5939; + this.match(TSqlParser.EQUAL); + this.state = 5940; + this.expression(0); + this.state = 5942; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 5941; + this.match(TSqlParser.COMMA); + } + + this.state = 5948; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5949; + this.match(TSqlParser.FROM); + this.state = 5950; + this.full_table_name(); + this.state = 5956; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 5951; + this.match(TSqlParser.INTO); + this.state = 5952; + localctx.table_variable = this.id(); + + this.state = 5953; + this.match(TSqlParser.WHERE); + this.state = 5954; + localctx.where = this.search_condition(); + } + + this.state = 5959; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RR_BRACKET) { + this.state = 5958; + this.match(TSqlParser.RR_BRACKET); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Select_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_select_statement; + return this; +} + +Select_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Select_statementContext.prototype.constructor = Select_statementContext; + +Select_statementContext.prototype.query_expression = function() { + return this.getTypedRuleContext(Query_expressionContext,0); +}; + +Select_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Select_statementContext.prototype.order_by_clause = function() { + return this.getTypedRuleContext(Order_by_clauseContext,0); +}; + +Select_statementContext.prototype.for_clause = function() { + return this.getTypedRuleContext(For_clauseContext,0); +}; + +Select_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Select_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Select_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSelect_statement(this); + } +}; + +Select_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSelect_statement(this); + } +}; + +Select_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSelect_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Select_statementContext = Select_statementContext; + +TSqlParser.prototype.select_statement = function() { + + var localctx = new Select_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 444, TSqlParser.RULE_select_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5962; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5961; + this.with_expression(); + } + + this.state = 5964; + this.query_expression(); + this.state = 5966; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,753,this._ctx); + if(la_===1) { + this.state = 5965; + this.order_by_clause(); + + } + this.state = 5969; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,754,this._ctx); + if(la_===1) { + this.state = 5968; + this.for_clause(); + + } + this.state = 5972; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,755,this._ctx); + if(la_===1) { + this.state = 5971; + this.option_clause(); + + } + this.state = 5975; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,756,this._ctx); + if(la_===1) { + this.state = 5974; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TimeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_time; + return this; +} + +TimeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TimeContext.prototype.constructor = TimeContext; + +TimeContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +TimeContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +TimeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTime(this); + } +}; + +TimeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTime(this); + } +}; + +TimeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTime(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.TimeContext = TimeContext; + +TSqlParser.prototype.time = function() { + + var localctx = new TimeContext(this, this._ctx, this.state); + this.enterRule(localctx, 446, TSqlParser.RULE_time); + try { + this.enterOuterAlt(localctx, 1); + this.state = 5979; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LOCAL_ID: + this.state = 5977; + this.match(TSqlParser.LOCAL_ID); + break; + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 5978; + this.constant(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Update_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_update_statement; + this.cursor_var = null; // Token + return this; +} + +Update_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Update_statementContext.prototype.constructor = Update_statementContext; + +Update_statementContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Update_statementContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Update_statementContext.prototype.update_elem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Update_elemContext); + } else { + return this.getTypedRuleContext(Update_elemContext,i); + } +}; + +Update_statementContext.prototype.ddl_object = function() { + return this.getTypedRuleContext(Ddl_objectContext,0); +}; + +Update_statementContext.prototype.rowset_function_limited = function() { + return this.getTypedRuleContext(Rowset_function_limitedContext,0); +}; + +Update_statementContext.prototype.with_expression = function() { + return this.getTypedRuleContext(With_expressionContext,0); +}; + +Update_statementContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Update_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Update_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Update_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Update_statementContext.prototype.with_table_hints = function() { + return this.getTypedRuleContext(With_table_hintsContext,0); +}; + +Update_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Update_statementContext.prototype.output_clause = function() { + return this.getTypedRuleContext(Output_clauseContext,0); +}; + +Update_statementContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Update_statementContext.prototype.table_sources = function() { + return this.getTypedRuleContext(Table_sourcesContext,0); +}; + +Update_statementContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Update_statementContext.prototype.for_clause = function() { + return this.getTypedRuleContext(For_clauseContext,0); +}; + +Update_statementContext.prototype.option_clause = function() { + return this.getTypedRuleContext(Option_clauseContext,0); +}; + +Update_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Update_statementContext.prototype.search_condition_list = function() { + return this.getTypedRuleContext(Search_condition_listContext,0); +}; + +Update_statementContext.prototype.CURRENT = function() { + return this.getToken(TSqlParser.CURRENT, 0); +}; + +Update_statementContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Update_statementContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Update_statementContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Update_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Update_statementContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Update_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUpdate_statement(this); + } +}; + +Update_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUpdate_statement(this); + } +}; + +Update_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUpdate_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Update_statementContext = Update_statementContext; + +TSqlParser.prototype.update_statement = function() { + + var localctx = new Update_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 448, TSqlParser.RULE_update_statement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 5982; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 5981; + this.with_expression(); + } + + this.state = 5984; + this.match(TSqlParser.UPDATE); + this.state = 5992; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TOP) { + this.state = 5985; + this.match(TSqlParser.TOP); + this.state = 5986; + this.match(TSqlParser.LR_BRACKET); + this.state = 5987; + this.expression(0); + this.state = 5988; + this.match(TSqlParser.RR_BRACKET); + this.state = 5990; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PERCENT) { + this.state = 5989; + this.match(TSqlParser.PERCENT); + } + + } + + this.state = 5996; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.ID: + this.state = 5994; + this.ddl_object(); + break; + case TSqlParser.OPENDATASOURCE: + case TSqlParser.OPENQUERY: + this.state = 5995; + this.rowset_function_limited(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 5999; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH || _la===TSqlParser.LR_BRACKET) { + this.state = 5998; + this.with_table_hints(); + } + + this.state = 6001; + this.match(TSqlParser.SET); + this.state = 6002; + this.update_elem(); + this.state = 6007; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6003; + this.match(TSqlParser.COMMA); + this.state = 6004; + this.update_elem(); + this.state = 6009; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6011; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,764,this._ctx); + if(la_===1) { + this.state = 6010; + this.output_clause(); + + } + this.state = 6015; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 6013; + this.match(TSqlParser.FROM); + this.state = 6014; + this.table_sources(); + } + + this.state = 6030; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 6017; + this.match(TSqlParser.WHERE); + this.state = 6028; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.CASE: + case TSqlParser.COALESCE: + case TSqlParser.CONVERT: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DEFAULT: + case TSqlParser.EVENTDATA: + case TSqlParser.EXISTS: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.IDENTITY: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.NOT: + case TSqlParser.NULL: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.OVER: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.RIGHT: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.LR_BRACKET: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + case TSqlParser.BIT_NOT: + this.state = 6018; + this.search_condition_list(); + break; + case TSqlParser.CURRENT: + this.state = 6019; + this.match(TSqlParser.CURRENT); + this.state = 6020; + this.match(TSqlParser.OF); + this.state = 6026; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,767,this._ctx); + switch(la_) { + case 1: + this.state = 6022; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,766,this._ctx); + if(la_===1) { + this.state = 6021; + this.match(TSqlParser.GLOBAL); + + } + this.state = 6024; + this.cursor_name(); + break; + + case 2: + this.state = 6025; + localctx.cursor_var = this.match(TSqlParser.LOCAL_ID); + break; + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 6033; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 6032; + this.for_clause(); + } + + this.state = 6036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OPTION) { + this.state = 6035; + this.option_clause(); + } + + this.state = 6039; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,772,this._ctx); + if(la_===1) { + this.state = 6038; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Output_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_output_clause; + return this; +} + +Output_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Output_clauseContext.prototype.constructor = Output_clauseContext; + +Output_clauseContext.prototype.OUTPUT = function() { + return this.getToken(TSqlParser.OUTPUT, 0); +}; + +Output_clauseContext.prototype.output_dml_list_elem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Output_dml_list_elemContext); + } else { + return this.getTypedRuleContext(Output_dml_list_elemContext,i); + } +}; + +Output_clauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Output_clauseContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Output_clauseContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Output_clauseContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Output_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Output_clauseContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Output_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Output_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOutput_clause(this); + } +}; + +Output_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOutput_clause(this); + } +}; + +Output_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOutput_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Output_clauseContext = Output_clauseContext; + +TSqlParser.prototype.output_clause = function() { + + var localctx = new Output_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 450, TSqlParser.RULE_output_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6041; + this.match(TSqlParser.OUTPUT); + this.state = 6042; + this.output_dml_list_elem(); + this.state = 6047; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6043; + this.match(TSqlParser.COMMA); + this.state = 6044; + this.output_dml_list_elem(); + this.state = 6049; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6061; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 6050; + this.match(TSqlParser.INTO); + this.state = 6053; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LOCAL_ID: + this.state = 6051; + this.match(TSqlParser.LOCAL_ID); + break; + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6052; + this.table_name(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6059; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,775,this._ctx); + if(la_===1) { + this.state = 6055; + this.match(TSqlParser.LR_BRACKET); + this.state = 6056; + this.column_name_list(); + this.state = 6057; + this.match(TSqlParser.RR_BRACKET); + + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Output_dml_list_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_output_dml_list_elem; + return this; +} + +Output_dml_list_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Output_dml_list_elemContext.prototype.constructor = Output_dml_list_elemContext; + +Output_dml_list_elemContext.prototype.output_column_name = function() { + return this.getTypedRuleContext(Output_column_nameContext,0); +}; + +Output_dml_list_elemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Output_dml_list_elemContext.prototype.as_column_alias = function() { + return this.getTypedRuleContext(As_column_aliasContext,0); +}; + +Output_dml_list_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOutput_dml_list_elem(this); + } +}; + +Output_dml_list_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOutput_dml_list_elem(this); + } +}; + +Output_dml_list_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOutput_dml_list_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Output_dml_list_elemContext = Output_dml_list_elemContext; + +TSqlParser.prototype.output_dml_list_elem = function() { + + var localctx = new Output_dml_list_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 452, TSqlParser.RULE_output_dml_list_elem); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6065; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,777,this._ctx); + switch(la_) { + case 1: + this.state = 6063; + this.output_column_name(); + break; + + case 2: + this.state = 6064; + this.expression(0); + break; + + } + this.state = 6068; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,778,this._ctx); + if(la_===1) { + this.state = 6067; + this.as_column_alias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Output_column_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_output_column_name; + return this; +} + +Output_column_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Output_column_nameContext.prototype.constructor = Output_column_nameContext; + +Output_column_nameContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Output_column_nameContext.prototype.DELETED = function() { + return this.getToken(TSqlParser.DELETED, 0); +}; + +Output_column_nameContext.prototype.INSERTED = function() { + return this.getToken(TSqlParser.INSERTED, 0); +}; + +Output_column_nameContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Output_column_nameContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +Output_column_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Output_column_nameContext.prototype.DOLLAR_ACTION = function() { + return this.getToken(TSqlParser.DOLLAR_ACTION, 0); +}; + +Output_column_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOutput_column_name(this); + } +}; + +Output_column_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOutput_column_name(this); + } +}; + +Output_column_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOutput_column_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Output_column_nameContext = Output_column_nameContext; + +TSqlParser.prototype.output_column_name = function() { + + var localctx = new Output_column_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 454, TSqlParser.RULE_output_column_name); + try { + this.state = 6081; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 6073; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,779,this._ctx); + switch(la_) { + case 1: + this.state = 6070; + this.match(TSqlParser.DELETED); + break; + + case 2: + this.state = 6071; + this.match(TSqlParser.INSERTED); + break; + + case 3: + this.state = 6072; + this.table_name(); + break; + + } + this.state = 6075; + this.match(TSqlParser.DOT); + this.state = 6078; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STAR: + this.state = 6076; + this.match(TSqlParser.STAR); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6077; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DOLLAR_ACTION: + this.enterOuterAlt(localctx, 2); + this.state = 6080; + this.match(TSqlParser.DOLLAR_ACTION); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_database; + this.database = null; // IdContext + this.collation_name = null; // IdContext + return this; +} + +Create_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_databaseContext.prototype.constructor = Create_databaseContext; + +Create_databaseContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Create_databaseContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_databaseContext.prototype.CONTAINMENT = function() { + return this.getToken(TSqlParser.CONTAINMENT, 0); +}; + +Create_databaseContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_databaseContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_databaseContext.prototype.database_file_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Database_file_specContext); + } else { + return this.getTypedRuleContext(Database_file_specContext,i); + } +}; + +Create_databaseContext.prototype.LOG = function() { + return this.getToken(TSqlParser.LOG, 0); +}; + +Create_databaseContext.prototype.COLLATE = function() { + return this.getToken(TSqlParser.COLLATE, 0); +}; + +Create_databaseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_databaseContext.prototype.create_database_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Create_database_optionContext); + } else { + return this.getTypedRuleContext(Create_database_optionContext,i); + } +}; + +Create_databaseContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Create_databaseContext.prototype.PARTIAL = function() { + return this.getToken(TSqlParser.PARTIAL, 0); +}; + +Create_databaseContext.prototype.PRIMARY = function() { + return this.getToken(TSqlParser.PRIMARY, 0); +}; + +Create_databaseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_database(this); + } +}; + +Create_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_database(this); + } +}; + +Create_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_databaseContext = Create_databaseContext; + +TSqlParser.prototype.create_database = function() { + + var localctx = new Create_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 456, TSqlParser.RULE_create_database); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6083; + this.match(TSqlParser.CREATE); + this.state = 6084; + this.match(TSqlParser.DATABASE); + + this.state = 6085; + localctx.database = this.id(); + this.state = 6089; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTAINMENT) { + this.state = 6086; + this.match(TSqlParser.CONTAINMENT); + this.state = 6087; + this.match(TSqlParser.EQUAL); + this.state = 6088; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.PARTIAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6103; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 6091; + this.match(TSqlParser.ON); + this.state = 6093; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PRIMARY) { + this.state = 6092; + this.match(TSqlParser.PRIMARY); + } + + this.state = 6095; + this.database_file_spec(); + this.state = 6100; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6096; + this.match(TSqlParser.COMMA); + this.state = 6097; + this.database_file_spec(); + this.state = 6102; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6115; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LOG) { + this.state = 6105; + this.match(TSqlParser.LOG); + this.state = 6106; + this.match(TSqlParser.ON); + this.state = 6107; + this.database_file_spec(); + this.state = 6112; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6108; + this.match(TSqlParser.COMMA); + this.state = 6109; + this.database_file_spec(); + this.state = 6114; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6119; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COLLATE) { + this.state = 6117; + this.match(TSqlParser.COLLATE); + this.state = 6118; + localctx.collation_name = this.id(); + } + + this.state = 6130; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,790,this._ctx); + if(la_===1) { + this.state = 6121; + this.match(TSqlParser.WITH); + this.state = 6122; + this.create_database_option(); + this.state = 6127; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6123; + this.match(TSqlParser.COMMA); + this.state = 6124; + this.create_database_option(); + this.state = 6129; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_index; + this.where = null; // Search_conditionContext + return this; +} + +Create_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_indexContext.prototype.constructor = Create_indexContext; + +Create_indexContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_indexContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Create_indexContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_indexContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Create_indexContext.prototype.table_name_with_hint = function() { + return this.getTypedRuleContext(Table_name_with_hintContext,0); +}; + +Create_indexContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Create_indexContext.prototype.column_name_list_with_order = function() { + return this.getTypedRuleContext(Column_name_list_with_orderContext,0); +}; + +Create_indexContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Create_indexContext.prototype.UNIQUE = function() { + return this.getToken(TSqlParser.UNIQUE, 0); +}; + +Create_indexContext.prototype.clustered = function() { + return this.getTypedRuleContext(ClusteredContext,0); +}; + +Create_indexContext.prototype.INCLUDE = function() { + return this.getToken(TSqlParser.INCLUDE, 0); +}; + +Create_indexContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Create_indexContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Create_indexContext.prototype.index_options = function() { + return this.getTypedRuleContext(Index_optionsContext,0); +}; + +Create_indexContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_indexContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Create_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_index(this); + } +}; + +Create_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_index(this); + } +}; + +Create_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_indexContext = Create_indexContext; + +TSqlParser.prototype.create_index = function() { + + var localctx = new Create_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 458, TSqlParser.RULE_create_index); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6132; + this.match(TSqlParser.CREATE); + this.state = 6134; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.UNIQUE) { + this.state = 6133; + this.match(TSqlParser.UNIQUE); + } + + this.state = 6137; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CLUSTERED || _la===TSqlParser.NONCLUSTERED) { + this.state = 6136; + this.clustered(); + } + + this.state = 6139; + this.match(TSqlParser.INDEX); + this.state = 6140; + this.id(); + this.state = 6141; + this.match(TSqlParser.ON); + this.state = 6142; + this.table_name_with_hint(); + this.state = 6143; + this.match(TSqlParser.LR_BRACKET); + this.state = 6144; + this.column_name_list_with_order(); + this.state = 6145; + this.match(TSqlParser.RR_BRACKET); + this.state = 6151; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INCLUDE) { + this.state = 6146; + this.match(TSqlParser.INCLUDE); + this.state = 6147; + this.match(TSqlParser.LR_BRACKET); + this.state = 6148; + this.column_name_list(); + this.state = 6149; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 6155; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WHERE) { + this.state = 6153; + this.match(TSqlParser.WHERE); + this.state = 6154; + localctx.where = this.search_condition(); + } + + this.state = 6158; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,795,this._ctx); + if(la_===1) { + this.state = 6157; + this.index_options(); + + } + this.state = 6162; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 6160; + this.match(TSqlParser.ON); + this.state = 6161; + this.id(); + } + + this.state = 6165; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,797,this._ctx); + if(la_===1) { + this.state = 6164; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_procedureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_procedure; + this.proc = null; // Token + return this; +} + +Create_or_alter_procedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_procedureContext.prototype.constructor = Create_or_alter_procedureContext; + +Create_or_alter_procedureContext.prototype.func_proc_name_schema = function() { + return this.getTypedRuleContext(Func_proc_name_schemaContext,0); +}; + +Create_or_alter_procedureContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_or_alter_procedureContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +Create_or_alter_procedureContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_procedureContext.prototype.PROC = function() { + return this.getToken(TSqlParser.PROC, 0); +}; + +Create_or_alter_procedureContext.prototype.PROCEDURE = function() { + return this.getToken(TSqlParser.PROCEDURE, 0); +}; + +Create_or_alter_procedureContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_or_alter_procedureContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_or_alter_procedureContext.prototype.procedure_param = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Procedure_paramContext); + } else { + return this.getTypedRuleContext(Procedure_paramContext,i); + } +}; + +Create_or_alter_procedureContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_or_alter_procedureContext.prototype.procedure_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Procedure_optionContext); + } else { + return this.getTypedRuleContext(Procedure_optionContext,i); + } +}; + +Create_or_alter_procedureContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_or_alter_procedureContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Create_or_alter_procedureContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_procedureContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_or_alter_procedureContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_procedureContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_or_alter_procedureContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_or_alter_procedureContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_procedure(this); + } +}; + +Create_or_alter_procedureContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_procedure(this); + } +}; + +Create_or_alter_procedureContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_procedure(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_procedureContext = Create_or_alter_procedureContext; + +TSqlParser.prototype.create_or_alter_procedure = function() { + + var localctx = new Create_or_alter_procedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 460, TSqlParser.RULE_create_or_alter_procedure); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6173; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CREATE: + this.state = 6167; + this.match(TSqlParser.CREATE); + this.state = 6170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OR) { + this.state = 6168; + this.match(TSqlParser.OR); + this.state = 6169; + this.match(TSqlParser.ALTER); + } + + break; + case TSqlParser.ALTER: + this.state = 6172; + this.match(TSqlParser.ALTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6175; + localctx.proc = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.PROC || _la===TSqlParser.PROCEDURE)) { + localctx.proc = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6176; + this.func_proc_name_schema(); + this.state = 6179; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEMI) { + this.state = 6177; + this.match(TSqlParser.SEMI); + this.state = 6178; + this.match(TSqlParser.DECIMAL); + } + + this.state = 6195; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.LR_BRACKET) { + this.state = 6182; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 6181; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 6184; + this.procedure_param(); + this.state = 6189; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6185; + this.match(TSqlParser.COMMA); + this.state = 6186; + this.procedure_param(); + this.state = 6191; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6193; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RR_BRACKET) { + this.state = 6192; + this.match(TSqlParser.RR_BRACKET); + } + + } + + this.state = 6206; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6197; + this.match(TSqlParser.WITH); + this.state = 6198; + this.procedure_option(); + this.state = 6203; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6199; + this.match(TSqlParser.COMMA); + this.state = 6200; + this.procedure_option(); + this.state = 6205; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6210; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 6208; + this.match(TSqlParser.FOR); + this.state = 6209; + this.match(TSqlParser.REPLICATION); + } + + this.state = 6212; + this.match(TSqlParser.AS); + this.state = 6213; + this.sql_clauses(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_trigger; + return this; +} + +Create_or_alter_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_triggerContext.prototype.constructor = Create_or_alter_triggerContext; + +Create_or_alter_triggerContext.prototype.create_or_alter_dml_trigger = function() { + return this.getTypedRuleContext(Create_or_alter_dml_triggerContext,0); +}; + +Create_or_alter_triggerContext.prototype.create_or_alter_ddl_trigger = function() { + return this.getTypedRuleContext(Create_or_alter_ddl_triggerContext,0); +}; + +Create_or_alter_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_trigger(this); + } +}; + +Create_or_alter_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_trigger(this); + } +}; + +Create_or_alter_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_triggerContext = Create_or_alter_triggerContext; + +TSqlParser.prototype.create_or_alter_trigger = function() { + + var localctx = new Create_or_alter_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 462, TSqlParser.RULE_create_or_alter_trigger); + try { + this.state = 6217; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,808,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6215; + this.create_or_alter_dml_trigger(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6216; + this.create_or_alter_ddl_trigger(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_dml_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_dml_trigger; + return this; +} + +Create_or_alter_dml_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_dml_triggerContext.prototype.constructor = Create_or_alter_dml_triggerContext; + +Create_or_alter_dml_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.simple_name = function() { + return this.getTypedRuleContext(Simple_nameContext,0); +}; + +Create_or_alter_dml_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Create_or_alter_dml_triggerContext.prototype.dml_trigger_operation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_trigger_operationContext); + } else { + return this.getTypedRuleContext(Dml_trigger_operationContext,i); + } +}; + +Create_or_alter_dml_triggerContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +Create_or_alter_dml_triggerContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.FOR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FOR); + } else { + return this.getToken(TSqlParser.FOR, i); + } +}; + + +Create_or_alter_dml_triggerContext.prototype.AFTER = function() { + return this.getToken(TSqlParser.AFTER, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.INSTEAD = function() { + return this.getToken(TSqlParser.INSTEAD, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WITH); + } else { + return this.getToken(TSqlParser.WITH, i); + } +}; + + +Create_or_alter_dml_triggerContext.prototype.dml_trigger_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_trigger_optionContext); + } else { + return this.getTypedRuleContext(Dml_trigger_optionContext,i); + } +}; + +Create_or_alter_dml_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_dml_triggerContext.prototype.APPEND = function() { + return this.getToken(TSqlParser.APPEND, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_or_alter_dml_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_dml_trigger(this); + } +}; + +Create_or_alter_dml_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_dml_trigger(this); + } +}; + +Create_or_alter_dml_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_dml_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_dml_triggerContext = Create_or_alter_dml_triggerContext; + +TSqlParser.prototype.create_or_alter_dml_trigger = function() { + + var localctx = new Create_or_alter_dml_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 464, TSqlParser.RULE_create_or_alter_dml_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6225; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CREATE: + this.state = 6219; + this.match(TSqlParser.CREATE); + this.state = 6222; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OR) { + this.state = 6220; + this.match(TSqlParser.OR); + this.state = 6221; + this.match(TSqlParser.ALTER); + } + + break; + case TSqlParser.ALTER: + this.state = 6224; + this.match(TSqlParser.ALTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6227; + this.match(TSqlParser.TRIGGER); + this.state = 6228; + this.simple_name(); + this.state = 6229; + this.match(TSqlParser.ON); + this.state = 6230; + this.table_name(); + this.state = 6240; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6231; + this.match(TSqlParser.WITH); + this.state = 6232; + this.dml_trigger_option(); + this.state = 6237; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6233; + this.match(TSqlParser.COMMA); + this.state = 6234; + this.dml_trigger_option(); + this.state = 6239; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6246; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FOR: + this.state = 6242; + this.match(TSqlParser.FOR); + break; + case TSqlParser.AFTER: + this.state = 6243; + this.match(TSqlParser.AFTER); + break; + case TSqlParser.INSTEAD: + this.state = 6244; + this.match(TSqlParser.INSTEAD); + this.state = 6245; + this.match(TSqlParser.OF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6248; + this.dml_trigger_operation(); + this.state = 6253; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6249; + this.match(TSqlParser.COMMA); + this.state = 6250; + this.dml_trigger_operation(); + this.state = 6255; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6258; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6256; + this.match(TSqlParser.WITH); + this.state = 6257; + this.match(TSqlParser.APPEND); + } + + this.state = 6263; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 6260; + this.match(TSqlParser.NOT); + this.state = 6261; + this.match(TSqlParser.FOR); + this.state = 6262; + this.match(TSqlParser.REPLICATION); + } + + this.state = 6265; + this.match(TSqlParser.AS); + this.state = 6266; + this.sql_clauses(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dml_trigger_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dml_trigger_option; + return this; +} + +Dml_trigger_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dml_trigger_optionContext.prototype.constructor = Dml_trigger_optionContext; + +Dml_trigger_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Dml_trigger_optionContext.prototype.execute_clause = function() { + return this.getTypedRuleContext(Execute_clauseContext,0); +}; + +Dml_trigger_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDml_trigger_option(this); + } +}; + +Dml_trigger_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDml_trigger_option(this); + } +}; + +Dml_trigger_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDml_trigger_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dml_trigger_optionContext = Dml_trigger_optionContext; + +TSqlParser.prototype.dml_trigger_option = function() { + + var localctx = new Dml_trigger_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 466, TSqlParser.RULE_dml_trigger_option); + try { + this.state = 6270; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENCRYPTION: + this.enterOuterAlt(localctx, 1); + this.state = 6268; + this.match(TSqlParser.ENCRYPTION); + break; + case TSqlParser.EXECUTE: + this.enterOuterAlt(localctx, 2); + this.state = 6269; + this.execute_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dml_trigger_operationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dml_trigger_operation; + return this; +} + +Dml_trigger_operationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dml_trigger_operationContext.prototype.constructor = Dml_trigger_operationContext; + +Dml_trigger_operationContext.prototype.INSERT = function() { + return this.getToken(TSqlParser.INSERT, 0); +}; + +Dml_trigger_operationContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Dml_trigger_operationContext.prototype.DELETE = function() { + return this.getToken(TSqlParser.DELETE, 0); +}; + +Dml_trigger_operationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDml_trigger_operation(this); + } +}; + +Dml_trigger_operationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDml_trigger_operation(this); + } +}; + +Dml_trigger_operationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDml_trigger_operation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dml_trigger_operationContext = Dml_trigger_operationContext; + +TSqlParser.prototype.dml_trigger_operation = function() { + + var localctx = new Dml_trigger_operationContext(this, this._ctx, this.state); + this.enterRule(localctx, 468, TSqlParser.RULE_dml_trigger_operation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6272; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DELETE || _la===TSqlParser.INSERT || _la===TSqlParser.UPDATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_ddl_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_ddl_trigger; + return this; +} + +Create_or_alter_ddl_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_ddl_triggerContext.prototype.constructor = Create_or_alter_ddl_triggerContext; + +Create_or_alter_ddl_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +Create_or_alter_ddl_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.ddl_trigger_operation = function() { + return this.getTypedRuleContext(Ddl_trigger_operationContext,0); +}; + +Create_or_alter_ddl_triggerContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.sql_clauses = function() { + return this.getTypedRuleContext(Sql_clausesContext,0); +}; + +Create_or_alter_ddl_triggerContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.AFTER = function() { + return this.getToken(TSqlParser.AFTER, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.dml_trigger_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_trigger_optionContext); + } else { + return this.getTypedRuleContext(Dml_trigger_optionContext,i); + } +}; + +Create_or_alter_ddl_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_ddl_triggerContext.prototype.dml_trigger_operation = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Dml_trigger_operationContext); + } else { + return this.getTypedRuleContext(Dml_trigger_operationContext,i); + } +}; + +Create_or_alter_ddl_triggerContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_or_alter_ddl_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_ddl_trigger(this); + } +}; + +Create_or_alter_ddl_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_ddl_trigger(this); + } +}; + +Create_or_alter_ddl_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_ddl_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_ddl_triggerContext = Create_or_alter_ddl_triggerContext; + +TSqlParser.prototype.create_or_alter_ddl_trigger = function() { + + var localctx = new Create_or_alter_ddl_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 470, TSqlParser.RULE_create_or_alter_ddl_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6280; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CREATE: + this.state = 6274; + this.match(TSqlParser.CREATE); + this.state = 6277; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OR) { + this.state = 6275; + this.match(TSqlParser.OR); + this.state = 6276; + this.match(TSqlParser.ALTER); + } + + break; + case TSqlParser.ALTER: + this.state = 6279; + this.match(TSqlParser.ALTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6282; + this.match(TSqlParser.TRIGGER); + this.state = 6283; + this.simple_id(); + this.state = 6284; + this.match(TSqlParser.ON); + this.state = 6288; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.state = 6285; + this.match(TSqlParser.ALL); + this.state = 6286; + this.match(TSqlParser.SERVER); + break; + case TSqlParser.DATABASE: + this.state = 6287; + this.match(TSqlParser.DATABASE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6299; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6290; + this.match(TSqlParser.WITH); + this.state = 6291; + this.dml_trigger_option(); + this.state = 6296; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6292; + this.match(TSqlParser.COMMA); + this.state = 6293; + this.dml_trigger_option(); + this.state = 6298; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6301; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FOR || _la===TSqlParser.AFTER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6302; + this.ddl_trigger_operation(); + this.state = 6307; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6303; + this.match(TSqlParser.COMMA); + this.state = 6304; + this.dml_trigger_operation(); + this.state = 6309; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6310; + this.match(TSqlParser.AS); + this.state = 6311; + this.sql_clauses(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Ddl_trigger_operationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_ddl_trigger_operation; + return this; +} + +Ddl_trigger_operationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Ddl_trigger_operationContext.prototype.constructor = Ddl_trigger_operationContext; + +Ddl_trigger_operationContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +Ddl_trigger_operationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDdl_trigger_operation(this); + } +}; + +Ddl_trigger_operationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDdl_trigger_operation(this); + } +}; + +Ddl_trigger_operationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDdl_trigger_operation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Ddl_trigger_operationContext = Ddl_trigger_operationContext; + +TSqlParser.prototype.ddl_trigger_operation = function() { + + var localctx = new Ddl_trigger_operationContext(this, this._ctx, this.state); + this.enterRule(localctx, 472, TSqlParser.RULE_ddl_trigger_operation); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6313; + this.simple_id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_or_alter_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_or_alter_function; + return this; +} + +Create_or_alter_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_or_alter_functionContext.prototype.constructor = Create_or_alter_functionContext; + +Create_or_alter_functionContext.prototype.FUNCTION = function() { + return this.getToken(TSqlParser.FUNCTION, 0); +}; + +Create_or_alter_functionContext.prototype.func_proc_name_schema = function() { + return this.getTypedRuleContext(Func_proc_name_schemaContext,0); +}; + +Create_or_alter_functionContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Create_or_alter_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_or_alter_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_or_alter_functionContext.prototype.func_body_returns_select = function() { + return this.getTypedRuleContext(Func_body_returns_selectContext,0); +}; + +Create_or_alter_functionContext.prototype.func_body_returns_table = function() { + return this.getTypedRuleContext(Func_body_returns_tableContext,0); +}; + +Create_or_alter_functionContext.prototype.func_body_returns_scalar = function() { + return this.getTypedRuleContext(Func_body_returns_scalarContext,0); +}; + +Create_or_alter_functionContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_or_alter_functionContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_or_alter_functionContext.prototype.procedure_param = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Procedure_paramContext); + } else { + return this.getTypedRuleContext(Procedure_paramContext,i); + } +}; + +Create_or_alter_functionContext.prototype.OR = function() { + return this.getToken(TSqlParser.OR, 0); +}; + +Create_or_alter_functionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_or_alter_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_or_alter_function(this); + } +}; + +Create_or_alter_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_or_alter_function(this); + } +}; + +Create_or_alter_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_or_alter_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_or_alter_functionContext = Create_or_alter_functionContext; + +TSqlParser.prototype.create_or_alter_function = function() { + + var localctx = new Create_or_alter_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 474, TSqlParser.RULE_create_or_alter_function); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6321; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CREATE: + this.state = 6315; + this.match(TSqlParser.CREATE); + this.state = 6318; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OR) { + this.state = 6316; + this.match(TSqlParser.OR); + this.state = 6317; + this.match(TSqlParser.ALTER); + } + + break; + case TSqlParser.ALTER: + this.state = 6320; + this.match(TSqlParser.ALTER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6323; + this.match(TSqlParser.FUNCTION); + this.state = 6324; + this.func_proc_name_schema(); + this.state = 6338; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,827,this._ctx); + switch(la_) { + case 1: + this.state = 6325; + this.match(TSqlParser.LR_BRACKET); + this.state = 6326; + this.procedure_param(); + this.state = 6331; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6327; + this.match(TSqlParser.COMMA); + this.state = 6328; + this.procedure_param(); + this.state = 6333; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6334; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 6336; + this.match(TSqlParser.LR_BRACKET); + this.state = 6337; + this.match(TSqlParser.RR_BRACKET); + break; + + } + this.state = 6343; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,828,this._ctx); + switch(la_) { + case 1: + this.state = 6340; + this.func_body_returns_select(); + break; + + case 2: + this.state = 6341; + this.func_body_returns_table(); + break; + + case 3: + this.state = 6342; + this.func_body_returns_scalar(); + break; + + } + this.state = 6346; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,829,this._ctx); + if(la_===1) { + this.state = 6345; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_body_returns_selectContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_body_returns_select; + return this; +} + +Func_body_returns_selectContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_body_returns_selectContext.prototype.constructor = Func_body_returns_selectContext; + +Func_body_returns_selectContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Func_body_returns_selectContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Func_body_returns_selectContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Func_body_returns_selectContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Func_body_returns_selectContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Func_body_returns_selectContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Func_body_returns_selectContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Func_body_returns_selectContext.prototype.function_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_optionContext); + } else { + return this.getTypedRuleContext(Function_optionContext,i); + } +}; + +Func_body_returns_selectContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Func_body_returns_selectContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Func_body_returns_selectContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_body_returns_select(this); + } +}; + +Func_body_returns_selectContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_body_returns_select(this); + } +}; + +Func_body_returns_selectContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_body_returns_select(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_body_returns_selectContext = Func_body_returns_selectContext; + +TSqlParser.prototype.func_body_returns_select = function() { + + var localctx = new Func_body_returns_selectContext(this, this._ctx, this.state); + this.enterRule(localctx, 476, TSqlParser.RULE_func_body_returns_select); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6348; + this.match(TSqlParser.RETURNS); + this.state = 6349; + this.match(TSqlParser.TABLE); + this.state = 6359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6350; + this.match(TSqlParser.WITH); + this.state = 6351; + this.function_option(); + this.state = 6356; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6352; + this.match(TSqlParser.COMMA); + this.state = 6353; + this.function_option(); + this.state = 6358; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6362; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 6361; + this.match(TSqlParser.AS); + } + + this.state = 6364; + this.match(TSqlParser.RETURN); + this.state = 6370; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,833,this._ctx); + switch(la_) { + case 1: + this.state = 6365; + this.match(TSqlParser.LR_BRACKET); + this.state = 6366; + this.select_statement(); + this.state = 6367; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 6369; + this.select_statement(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_body_returns_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_body_returns_table; + return this; +} + +Func_body_returns_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_body_returns_tableContext.prototype.constructor = Func_body_returns_tableContext; + +Func_body_returns_tableContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Func_body_returns_tableContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Func_body_returns_tableContext.prototype.table_type_definition = function() { + return this.getTypedRuleContext(Table_type_definitionContext,0); +}; + +Func_body_returns_tableContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Func_body_returns_tableContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Func_body_returns_tableContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +Func_body_returns_tableContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Func_body_returns_tableContext.prototype.function_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_optionContext); + } else { + return this.getTypedRuleContext(Function_optionContext,i); + } +}; + +Func_body_returns_tableContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Func_body_returns_tableContext.prototype.sql_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clauseContext); + } else { + return this.getTypedRuleContext(Sql_clauseContext,i); + } +}; + +Func_body_returns_tableContext.prototype.SEMI = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SEMI); + } else { + return this.getToken(TSqlParser.SEMI, i); + } +}; + + +Func_body_returns_tableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Func_body_returns_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_body_returns_table(this); + } +}; + +Func_body_returns_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_body_returns_table(this); + } +}; + +Func_body_returns_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_body_returns_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_body_returns_tableContext = Func_body_returns_tableContext; + +TSqlParser.prototype.func_body_returns_table = function() { + + var localctx = new Func_body_returns_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 478, TSqlParser.RULE_func_body_returns_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6372; + this.match(TSqlParser.RETURNS); + this.state = 6373; + this.match(TSqlParser.LOCAL_ID); + this.state = 6374; + this.table_type_definition(); + this.state = 6384; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6375; + this.match(TSqlParser.WITH); + this.state = 6376; + this.function_option(); + this.state = 6381; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6377; + this.match(TSqlParser.COMMA); + this.state = 6378; + this.function_option(); + this.state = 6383; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6387; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 6386; + this.match(TSqlParser.AS); + } + + this.state = 6389; + this.match(TSqlParser.BEGIN); + this.state = 6393; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,837,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 6390; + this.sql_clause(); + } + this.state = 6395; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,837,this._ctx); + } + + this.state = 6396; + this.match(TSqlParser.RETURN); + this.state = 6398; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEMI) { + this.state = 6397; + this.match(TSqlParser.SEMI); + } + + this.state = 6400; + this.match(TSqlParser.END); + this.state = 6402; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,839,this._ctx); + if(la_===1) { + this.state = 6401; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_body_returns_scalarContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_body_returns_scalar; + this.ret = null; // ExpressionContext + return this; +} + +Func_body_returns_scalarContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_body_returns_scalarContext.prototype.constructor = Func_body_returns_scalarContext; + +Func_body_returns_scalarContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Func_body_returns_scalarContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Func_body_returns_scalarContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Func_body_returns_scalarContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Func_body_returns_scalarContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +Func_body_returns_scalarContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Func_body_returns_scalarContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Func_body_returns_scalarContext.prototype.function_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_optionContext); + } else { + return this.getTypedRuleContext(Function_optionContext,i); + } +}; + +Func_body_returns_scalarContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Func_body_returns_scalarContext.prototype.sql_clause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_clauseContext); + } else { + return this.getTypedRuleContext(Sql_clauseContext,i); + } +}; + +Func_body_returns_scalarContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Func_body_returns_scalarContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Func_body_returns_scalarContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_body_returns_scalar(this); + } +}; + +Func_body_returns_scalarContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_body_returns_scalar(this); + } +}; + +Func_body_returns_scalarContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_body_returns_scalar(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_body_returns_scalarContext = Func_body_returns_scalarContext; + +TSqlParser.prototype.func_body_returns_scalar = function() { + + var localctx = new Func_body_returns_scalarContext(this, this._ctx, this.state); + this.enterRule(localctx, 480, TSqlParser.RULE_func_body_returns_scalar); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6404; + this.match(TSqlParser.RETURNS); + this.state = 6405; + this.data_type(); + this.state = 6415; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6406; + this.match(TSqlParser.WITH); + this.state = 6407; + this.function_option(); + this.state = 6412; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6408; + this.match(TSqlParser.COMMA); + this.state = 6409; + this.function_option(); + this.state = 6414; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6418; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 6417; + this.match(TSqlParser.AS); + } + + this.state = 6420; + this.match(TSqlParser.BEGIN); + this.state = 6424; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,843,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 6421; + this.sql_clause(); + } + this.state = 6426; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,843,this._ctx); + } + + this.state = 6427; + this.match(TSqlParser.RETURN); + this.state = 6428; + localctx.ret = this.expression(0); + this.state = 6430; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SEMI) { + this.state = 6429; + this.match(TSqlParser.SEMI); + } + + this.state = 6432; + this.match(TSqlParser.END); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Procedure_paramContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_procedure_param; + this.default_val = null; // Default_valueContext + return this; +} + +Procedure_paramContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Procedure_paramContext.prototype.constructor = Procedure_paramContext; + +Procedure_paramContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Procedure_paramContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Procedure_paramContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Procedure_paramContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Procedure_paramContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Procedure_paramContext.prototype.VARYING = function() { + return this.getToken(TSqlParser.VARYING, 0); +}; + +Procedure_paramContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Procedure_paramContext.prototype.default_value = function() { + return this.getTypedRuleContext(Default_valueContext,0); +}; + +Procedure_paramContext.prototype.OUT = function() { + return this.getToken(TSqlParser.OUT, 0); +}; + +Procedure_paramContext.prototype.OUTPUT = function() { + return this.getToken(TSqlParser.OUTPUT, 0); +}; + +Procedure_paramContext.prototype.READONLY = function() { + return this.getToken(TSqlParser.READONLY, 0); +}; + +Procedure_paramContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterProcedure_param(this); + } +}; + +Procedure_paramContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitProcedure_param(this); + } +}; + +Procedure_paramContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitProcedure_param(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Procedure_paramContext = Procedure_paramContext; + +TSqlParser.prototype.procedure_param = function() { + + var localctx = new Procedure_paramContext(this, this._ctx, this.state); + this.enterRule(localctx, 482, TSqlParser.RULE_procedure_param); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6434; + this.match(TSqlParser.LOCAL_ID); + this.state = 6438; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,845,this._ctx); + if(la_===1) { + this.state = 6435; + this.id(); + this.state = 6436; + this.match(TSqlParser.DOT); + + } + this.state = 6441; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 6440; + this.match(TSqlParser.AS); + } + + this.state = 6443; + this.data_type(); + this.state = 6445; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.VARYING) { + this.state = 6444; + this.match(TSqlParser.VARYING); + } + + this.state = 6449; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EQUAL) { + this.state = 6447; + this.match(TSqlParser.EQUAL); + this.state = 6448; + localctx.default_val = this.default_value(); + } + + this.state = 6452; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OUT || _la===TSqlParser.OUTPUT || _la===TSqlParser.READONLY) { + this.state = 6451; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OUT || _la===TSqlParser.OUTPUT || _la===TSqlParser.READONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Procedure_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_procedure_option; + return this; +} + +Procedure_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Procedure_optionContext.prototype.constructor = Procedure_optionContext; + +Procedure_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Procedure_optionContext.prototype.RECOMPILE = function() { + return this.getToken(TSqlParser.RECOMPILE, 0); +}; + +Procedure_optionContext.prototype.execute_clause = function() { + return this.getTypedRuleContext(Execute_clauseContext,0); +}; + +Procedure_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterProcedure_option(this); + } +}; + +Procedure_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitProcedure_option(this); + } +}; + +Procedure_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitProcedure_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Procedure_optionContext = Procedure_optionContext; + +TSqlParser.prototype.procedure_option = function() { + + var localctx = new Procedure_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 484, TSqlParser.RULE_procedure_option); + try { + this.state = 6457; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENCRYPTION: + this.enterOuterAlt(localctx, 1); + this.state = 6454; + this.match(TSqlParser.ENCRYPTION); + break; + case TSqlParser.RECOMPILE: + this.enterOuterAlt(localctx, 2); + this.state = 6455; + this.match(TSqlParser.RECOMPILE); + break; + case TSqlParser.EXECUTE: + this.enterOuterAlt(localctx, 3); + this.state = 6456; + this.execute_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Function_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_function_option; + return this; +} + +Function_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Function_optionContext.prototype.constructor = Function_optionContext; + +Function_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Function_optionContext.prototype.SCHEMABINDING = function() { + return this.getToken(TSqlParser.SCHEMABINDING, 0); +}; + +Function_optionContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Function_optionContext.prototype.NULL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NULL); + } else { + return this.getToken(TSqlParser.NULL, i); + } +}; + + +Function_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Function_optionContext.prototype.INPUT = function() { + return this.getToken(TSqlParser.INPUT, 0); +}; + +Function_optionContext.prototype.CALLED = function() { + return this.getToken(TSqlParser.CALLED, 0); +}; + +Function_optionContext.prototype.execute_clause = function() { + return this.getTypedRuleContext(Execute_clauseContext,0); +}; + +Function_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunction_option(this); + } +}; + +Function_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunction_option(this); + } +}; + +Function_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunction_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Function_optionContext = Function_optionContext; + +TSqlParser.prototype.function_option = function() { + + var localctx = new Function_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 486, TSqlParser.RULE_function_option); + try { + this.state = 6471; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENCRYPTION: + this.enterOuterAlt(localctx, 1); + this.state = 6459; + this.match(TSqlParser.ENCRYPTION); + break; + case TSqlParser.SCHEMABINDING: + this.enterOuterAlt(localctx, 2); + this.state = 6460; + this.match(TSqlParser.SCHEMABINDING); + break; + case TSqlParser.RETURNS: + this.enterOuterAlt(localctx, 3); + this.state = 6461; + this.match(TSqlParser.RETURNS); + this.state = 6462; + this.match(TSqlParser.NULL); + this.state = 6463; + this.match(TSqlParser.ON); + this.state = 6464; + this.match(TSqlParser.NULL); + this.state = 6465; + this.match(TSqlParser.INPUT); + break; + case TSqlParser.CALLED: + this.enterOuterAlt(localctx, 4); + this.state = 6466; + this.match(TSqlParser.CALLED); + this.state = 6467; + this.match(TSqlParser.ON); + this.state = 6468; + this.match(TSqlParser.NULL); + this.state = 6469; + this.match(TSqlParser.INPUT); + break; + case TSqlParser.EXECUTE: + this.enterOuterAlt(localctx, 5); + this.state = 6470; + this.execute_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_statisticsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_statistics; + return this; +} + +Create_statisticsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_statisticsContext.prototype.constructor = Create_statisticsContext; + +Create_statisticsContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_statisticsContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Create_statisticsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_statisticsContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_statisticsContext.prototype.table_name_with_hint = function() { + return this.getTypedRuleContext(Table_name_with_hintContext,0); +}; + +Create_statisticsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_statisticsContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Create_statisticsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_statisticsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_statisticsContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_statisticsContext.prototype.FULLSCAN = function() { + return this.getToken(TSqlParser.FULLSCAN, 0); +}; + +Create_statisticsContext.prototype.SAMPLE = function() { + return this.getToken(TSqlParser.SAMPLE, 0); +}; + +Create_statisticsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_statisticsContext.prototype.STATS_STREAM = function() { + return this.getToken(TSqlParser.STATS_STREAM, 0); +}; + +Create_statisticsContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Create_statisticsContext.prototype.ROWS = function() { + return this.getToken(TSqlParser.ROWS, 0); +}; + +Create_statisticsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_statisticsContext.prototype.NORECOMPUTE = function() { + return this.getToken(TSqlParser.NORECOMPUTE, 0); +}; + +Create_statisticsContext.prototype.INCREMENTAL = function() { + return this.getToken(TSqlParser.INCREMENTAL, 0); +}; + +Create_statisticsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_statisticsContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Create_statisticsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_statistics(this); + } +}; + +Create_statisticsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_statistics(this); + } +}; + +Create_statisticsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_statistics(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_statisticsContext = Create_statisticsContext; + +TSqlParser.prototype.create_statistics = function() { + + var localctx = new Create_statisticsContext(this, this._ctx, this.state); + this.enterRule(localctx, 488, TSqlParser.RULE_create_statistics); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6473; + this.match(TSqlParser.CREATE); + this.state = 6474; + this.match(TSqlParser.STATISTICS); + this.state = 6475; + this.id(); + this.state = 6476; + this.match(TSqlParser.ON); + this.state = 6477; + this.table_name_with_hint(); + this.state = 6478; + this.match(TSqlParser.LR_BRACKET); + this.state = 6479; + this.column_name_list(); + this.state = 6480; + this.match(TSqlParser.RR_BRACKET); + this.state = 6499; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,855,this._ctx); + if(la_===1) { + this.state = 6481; + this.match(TSqlParser.WITH); + this.state = 6487; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FULLSCAN: + this.state = 6482; + this.match(TSqlParser.FULLSCAN); + break; + case TSqlParser.SAMPLE: + this.state = 6483; + this.match(TSqlParser.SAMPLE); + this.state = 6484; + this.match(TSqlParser.DECIMAL); + this.state = 6485; + _la = this._input.LA(1); + if(!(_la===TSqlParser.PERCENT || _la===TSqlParser.ROWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.STATS_STREAM: + this.state = 6486; + this.match(TSqlParser.STATS_STREAM); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6491; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,853,this._ctx); + if(la_===1) { + this.state = 6489; + this.match(TSqlParser.COMMA); + this.state = 6490; + this.match(TSqlParser.NORECOMPUTE); + + } + this.state = 6497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6493; + this.match(TSqlParser.COMMA); + this.state = 6494; + this.match(TSqlParser.INCREMENTAL); + this.state = 6495; + this.match(TSqlParser.EQUAL); + this.state = 6496; + this.on_off(); + } + + + } + this.state = 6502; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,856,this._ctx); + if(la_===1) { + this.state = 6501; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Update_statisticsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_update_statistics; + return this; +} + +Update_statisticsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Update_statisticsContext.prototype.constructor = Update_statisticsContext; + +Update_statisticsContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Update_statisticsContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Update_statisticsContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Update_statisticsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Update_statisticsContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Update_statisticsContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Update_statisticsContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Update_statisticsContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Update_statisticsContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Update_statisticsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUpdate_statistics(this); + } +}; + +Update_statisticsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUpdate_statistics(this); + } +}; + +Update_statisticsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUpdate_statistics(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Update_statisticsContext = Update_statisticsContext; + +TSqlParser.prototype.update_statistics = function() { + + var localctx = new Update_statisticsContext(this, this._ctx, this.state); + this.enterRule(localctx, 490, TSqlParser.RULE_update_statistics); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6504; + this.match(TSqlParser.UPDATE); + this.state = 6506; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL || _la===TSqlParser.INDEX) { + this.state = 6505; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.INDEX)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6508; + this.match(TSqlParser.STATISTICS); + this.state = 6509; + this.full_table_name(); + this.state = 6511; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,858,this._ctx); + if(la_===1) { + this.state = 6510; + this.id(); + + } + this.state = 6516; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,859,this._ctx); + if(la_===1) { + this.state = 6513; + this.match(TSqlParser.USING); + this.state = 6514; + this.match(TSqlParser.DECIMAL); + this.state = 6515; + this.match(TSqlParser.VALUES); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_table; + return this; +} + +Create_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_tableContext.prototype.constructor = Create_tableContext; + +Create_tableContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Create_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Create_tableContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_tableContext.prototype.column_def_table_constraints = function() { + return this.getTypedRuleContext(Column_def_table_constraintsContext,0); +}; + +Create_tableContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_tableContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Create_tableContext.prototype.LOCK = function() { + return this.getToken(TSqlParser.LOCK, 0); +}; + +Create_tableContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +Create_tableContext.prototype.table_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_optionsContext); + } else { + return this.getTypedRuleContext(Table_optionsContext,i); + } +}; + +Create_tableContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_tableContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_tableContext.prototype.DEFAULT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DEFAULT); + } else { + return this.getToken(TSqlParser.DEFAULT, i); + } +}; + + +Create_tableContext.prototype.TEXTIMAGE_ON = function() { + return this.getToken(TSqlParser.TEXTIMAGE_ON, 0); +}; + +Create_tableContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_table(this); + } +}; + +Create_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_table(this); + } +}; + +Create_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_tableContext = Create_tableContext; + +TSqlParser.prototype.create_table = function() { + + var localctx = new Create_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 492, TSqlParser.RULE_create_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6518; + this.match(TSqlParser.CREATE); + this.state = 6519; + this.match(TSqlParser.TABLE); + this.state = 6520; + this.table_name(); + this.state = 6521; + this.match(TSqlParser.LR_BRACKET); + this.state = 6522; + this.column_def_table_constraints(); + this.state = 6524; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6523; + this.match(TSqlParser.COMMA); + } + + this.state = 6526; + this.match(TSqlParser.RR_BRACKET); + this.state = 6529; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,861,this._ctx); + if(la_===1) { + this.state = 6527; + this.match(TSqlParser.LOCK); + this.state = 6528; + this.simple_id(); + + } + this.state = 6534; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,862,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 6531; + this.table_options(); + } + this.state = 6536; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,862,this._ctx); + } + + this.state = 6540; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,863,this._ctx); + if(la_===1) { + this.state = 6537; + this.match(TSqlParser.ON); + this.state = 6538; + this.id(); + + } else if(la_===2) { + this.state = 6539; + this.match(TSqlParser.DEFAULT); + + } + this.state = 6545; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,864,this._ctx); + if(la_===1) { + this.state = 6542; + this.match(TSqlParser.TEXTIMAGE_ON); + this.state = 6543; + this.id(); + + } else if(la_===2) { + this.state = 6544; + this.match(TSqlParser.DEFAULT); + + } + this.state = 6548; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,865,this._ctx); + if(la_===1) { + this.state = 6547; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_options; + return this; +} + +Table_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_optionsContext.prototype.constructor = Table_optionsContext; + +Table_optionsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Table_optionsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Table_optionsContext.prototype.index_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_optionContext); + } else { + return this.getTypedRuleContext(Index_optionContext,i); + } +}; + +Table_optionsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Table_optionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Table_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_options(this); + } +}; + +Table_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_options(this); + } +}; + +Table_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_optionsContext = Table_optionsContext; + +TSqlParser.prototype.table_options = function() { + + var localctx = new Table_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 494, TSqlParser.RULE_table_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6550; + this.match(TSqlParser.WITH); + this.state = 6570; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LR_BRACKET: + this.state = 6551; + this.match(TSqlParser.LR_BRACKET); + this.state = 6552; + this.index_option(); + this.state = 6557; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6553; + this.match(TSqlParser.COMMA); + this.state = 6554; + this.index_option(); + this.state = 6559; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6560; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.ID: + this.state = 6562; + this.index_option(); + this.state = 6567; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6563; + this.match(TSqlParser.COMMA); + this.state = 6564; + this.index_option(); + this.state = 6569; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_viewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_view; + return this; +} + +Create_viewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_viewContext.prototype.constructor = Create_viewContext; + +Create_viewContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_viewContext.prototype.VIEW = function() { + return this.getToken(TSqlParser.VIEW, 0); +}; + +Create_viewContext.prototype.simple_name = function() { + return this.getTypedRuleContext(Simple_nameContext,0); +}; + +Create_viewContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_viewContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Create_viewContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_viewContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Create_viewContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_viewContext.prototype.WITH = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.WITH); + } else { + return this.getToken(TSqlParser.WITH, i); + } +}; + + +Create_viewContext.prototype.view_attribute = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(View_attributeContext); + } else { + return this.getTypedRuleContext(View_attributeContext,i); + } +}; + +Create_viewContext.prototype.CHECK = function() { + return this.getToken(TSqlParser.CHECK, 0); +}; + +Create_viewContext.prototype.OPTION = function() { + return this.getToken(TSqlParser.OPTION, 0); +}; + +Create_viewContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Create_viewContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_viewContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_view(this); + } +}; + +Create_viewContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_view(this); + } +}; + +Create_viewContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_view(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_viewContext = Create_viewContext; + +TSqlParser.prototype.create_view = function() { + + var localctx = new Create_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 496, TSqlParser.RULE_create_view); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6572; + this.match(TSqlParser.CREATE); + this.state = 6573; + this.match(TSqlParser.VIEW); + this.state = 6574; + this.simple_name(); + this.state = 6579; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 6575; + this.match(TSqlParser.LR_BRACKET); + this.state = 6576; + this.column_name_list(); + this.state = 6577; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 6590; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 6581; + this.match(TSqlParser.WITH); + this.state = 6582; + this.view_attribute(); + this.state = 6587; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6583; + this.match(TSqlParser.COMMA); + this.state = 6584; + this.view_attribute(); + this.state = 6589; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 6592; + this.match(TSqlParser.AS); + this.state = 6593; + this.select_statement(); + this.state = 6597; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,872,this._ctx); + if(la_===1) { + this.state = 6594; + this.match(TSqlParser.WITH); + this.state = 6595; + this.match(TSqlParser.CHECK); + this.state = 6596; + this.match(TSqlParser.OPTION); + + } + this.state = 6600; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,873,this._ctx); + if(la_===1) { + this.state = 6599; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function View_attributeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_view_attribute; + return this; +} + +View_attributeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +View_attributeContext.prototype.constructor = View_attributeContext; + +View_attributeContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +View_attributeContext.prototype.SCHEMABINDING = function() { + return this.getToken(TSqlParser.SCHEMABINDING, 0); +}; + +View_attributeContext.prototype.VIEW_METADATA = function() { + return this.getToken(TSqlParser.VIEW_METADATA, 0); +}; + +View_attributeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterView_attribute(this); + } +}; + +View_attributeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitView_attribute(this); + } +}; + +View_attributeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitView_attribute(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.View_attributeContext = View_attributeContext; + +TSqlParser.prototype.view_attribute = function() { + + var localctx = new View_attributeContext(this, this._ctx, this.state); + this.enterRule(localctx, 498, TSqlParser.RULE_view_attribute); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6602; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ENCRYPTION || _la===TSqlParser.SCHEMABINDING || _la===TSqlParser.VIEW_METADATA)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_table; + this.constraint = null; // IdContext + this.fk = null; // Column_name_listContext + this.pk = null; // Column_name_listContext + return this; +} + +Alter_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_tableContext.prototype.constructor = Alter_tableContext; + +Alter_tableContext.prototype.ALTER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALTER); + } else { + return this.getToken(TSqlParser.ALTER, i); + } +}; + + +Alter_tableContext.prototype.TABLE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TABLE); + } else { + return this.getToken(TSqlParser.TABLE, i); + } +}; + + +Alter_tableContext.prototype.table_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_nameContext); + } else { + return this.getTypedRuleContext(Table_nameContext,i); + } +}; + +Alter_tableContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_tableContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_tableContext.prototype.LOCK_ESCALATION = function() { + return this.getToken(TSqlParser.LOCK_ESCALATION, 0); +}; + +Alter_tableContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_tableContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_tableContext.prototype.ADD = function() { + return this.getToken(TSqlParser.ADD, 0); +}; + +Alter_tableContext.prototype.column_def_table_constraint = function() { + return this.getTypedRuleContext(Column_def_table_constraintContext,0); +}; + +Alter_tableContext.prototype.COLUMN = function() { + return this.getToken(TSqlParser.COLUMN, 0); +}; + +Alter_tableContext.prototype.column_definition = function() { + return this.getTypedRuleContext(Column_definitionContext,0); +}; + +Alter_tableContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Alter_tableContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Alter_tableContext.prototype.CONSTRAINT = function() { + return this.getToken(TSqlParser.CONSTRAINT, 0); +}; + +Alter_tableContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_tableContext.prototype.CHECK = function() { + return this.getToken(TSqlParser.CHECK, 0); +}; + +Alter_tableContext.prototype.FOREIGN = function() { + return this.getToken(TSqlParser.FOREIGN, 0); +}; + +Alter_tableContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Alter_tableContext.prototype.REFERENCES = function() { + return this.getToken(TSqlParser.REFERENCES, 0); +}; + +Alter_tableContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Alter_tableContext.prototype.REBUILD = function() { + return this.getToken(TSqlParser.REBUILD, 0); +}; + +Alter_tableContext.prototype.table_options = function() { + return this.getTypedRuleContext(Table_optionsContext,0); +}; + +Alter_tableContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Alter_tableContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Alter_tableContext.prototype.column_name_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_name_listContext); + } else { + return this.getTypedRuleContext(Column_name_listContext,i); + } +}; + +Alter_tableContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Alter_tableContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Alter_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_table(this); + } +}; + +Alter_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_table(this); + } +}; + +Alter_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_tableContext = Alter_tableContext; + +TSqlParser.prototype.alter_table = function() { + + var localctx = new Alter_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 500, TSqlParser.RULE_alter_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6604; + this.match(TSqlParser.ALTER); + this.state = 6605; + this.match(TSqlParser.TABLE); + this.state = 6606; + this.table_name(); + this.state = 6650; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,875,this._ctx); + switch(la_) { + case 1: + this.state = 6607; + this.match(TSqlParser.SET); + this.state = 6608; + this.match(TSqlParser.LR_BRACKET); + this.state = 6609; + this.match(TSqlParser.LOCK_ESCALATION); + this.state = 6610; + this.match(TSqlParser.EQUAL); + this.state = 6611; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TABLE || _la===TSqlParser.AUTO || _la===TSqlParser.DISABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6612; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 6613; + this.match(TSqlParser.ADD); + this.state = 6614; + this.column_def_table_constraint(); + break; + + case 3: + this.state = 6615; + this.match(TSqlParser.ALTER); + this.state = 6616; + this.match(TSqlParser.COLUMN); + this.state = 6617; + this.column_definition(); + break; + + case 4: + this.state = 6618; + this.match(TSqlParser.DROP); + this.state = 6619; + this.match(TSqlParser.COLUMN); + this.state = 6620; + this.id(); + break; + + case 5: + this.state = 6621; + this.match(TSqlParser.DROP); + this.state = 6622; + this.match(TSqlParser.CONSTRAINT); + this.state = 6623; + localctx.constraint = this.id(); + break; + + case 6: + this.state = 6624; + this.match(TSqlParser.WITH); + this.state = 6625; + this.match(TSqlParser.CHECK); + this.state = 6626; + this.match(TSqlParser.ADD); + this.state = 6627; + this.match(TSqlParser.CONSTRAINT); + this.state = 6628; + localctx.constraint = this.id(); + this.state = 6629; + this.match(TSqlParser.FOREIGN); + this.state = 6630; + this.match(TSqlParser.KEY); + this.state = 6631; + this.match(TSqlParser.LR_BRACKET); + this.state = 6632; + localctx.fk = this.column_name_list(); + this.state = 6633; + this.match(TSqlParser.RR_BRACKET); + this.state = 6634; + this.match(TSqlParser.REFERENCES); + this.state = 6635; + this.table_name(); + this.state = 6636; + this.match(TSqlParser.LR_BRACKET); + this.state = 6637; + localctx.pk = this.column_name_list(); + this.state = 6638; + this.match(TSqlParser.RR_BRACKET); + break; + + case 7: + this.state = 6640; + this.match(TSqlParser.CHECK); + this.state = 6641; + this.match(TSqlParser.CONSTRAINT); + this.state = 6642; + localctx.constraint = this.id(); + break; + + case 8: + this.state = 6643; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISABLE || _la===TSqlParser.ENABLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6644; + this.match(TSqlParser.TRIGGER); + this.state = 6646; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,874,this._ctx); + if(la_===1) { + this.state = 6645; + this.id(); + + } + break; + + case 9: + this.state = 6648; + this.match(TSqlParser.REBUILD); + this.state = 6649; + this.table_options(); + break; + + } + this.state = 6653; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,876,this._ctx); + if(la_===1) { + this.state = 6652; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_database; + this.database = null; // IdContext + this.new_name = null; // IdContext + this.collation = null; // IdContext + return this; +} + +Alter_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_databaseContext.prototype.constructor = Alter_databaseContext; + +Alter_databaseContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Alter_databaseContext.prototype.CURRENT = function() { + return this.getToken(TSqlParser.CURRENT, 0); +}; + +Alter_databaseContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Alter_databaseContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Alter_databaseContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Alter_databaseContext.prototype.COLLATE = function() { + return this.getToken(TSqlParser.COLLATE, 0); +}; + +Alter_databaseContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Alter_databaseContext.prototype.database_optionspec = function() { + return this.getTypedRuleContext(Database_optionspecContext,0); +}; + +Alter_databaseContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_databaseContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Alter_databaseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Alter_databaseContext.prototype.termination = function() { + return this.getTypedRuleContext(TerminationContext,0); +}; + +Alter_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_database(this); + } +}; + +Alter_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_database(this); + } +}; + +Alter_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_databaseContext = Alter_databaseContext; + +TSqlParser.prototype.alter_database = function() { + + var localctx = new Alter_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 502, TSqlParser.RULE_alter_database); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6655; + this.match(TSqlParser.ALTER); + this.state = 6656; + this.match(TSqlParser.DATABASE); + this.state = 6659; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6657; + localctx.database = this.id(); + break; + case TSqlParser.CURRENT: + this.state = 6658; + this.match(TSqlParser.CURRENT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6673; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.MODIFY: + this.state = 6661; + this.match(TSqlParser.MODIFY); + this.state = 6662; + this.match(TSqlParser.NAME); + this.state = 6663; + this.match(TSqlParser.EQUAL); + this.state = 6664; + localctx.new_name = this.id(); + break; + case TSqlParser.COLLATE: + this.state = 6665; + this.match(TSqlParser.COLLATE); + this.state = 6666; + localctx.collation = this.id(); + break; + case TSqlParser.SET: + this.state = 6667; + this.match(TSqlParser.SET); + this.state = 6668; + this.database_optionspec(); + this.state = 6671; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,878,this._ctx); + if(la_===1) { + this.state = 6669; + this.match(TSqlParser.WITH); + this.state = 6670; + this.termination(); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6676; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,880,this._ctx); + if(la_===1) { + this.state = 6675; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Database_optionspecContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_database_optionspec; + return this; +} + +Database_optionspecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Database_optionspecContext.prototype.constructor = Database_optionspecContext; + +Database_optionspecContext.prototype.auto_option = function() { + return this.getTypedRuleContext(Auto_optionContext,0); +}; + +Database_optionspecContext.prototype.change_tracking_option = function() { + return this.getTypedRuleContext(Change_tracking_optionContext,0); +}; + +Database_optionspecContext.prototype.containment_option = function() { + return this.getTypedRuleContext(Containment_optionContext,0); +}; + +Database_optionspecContext.prototype.cursor_option = function() { + return this.getTypedRuleContext(Cursor_optionContext,0); +}; + +Database_optionspecContext.prototype.database_mirroring_option = function() { + return this.getTypedRuleContext(Database_mirroring_optionContext,0); +}; + +Database_optionspecContext.prototype.date_correlation_optimization_option = function() { + return this.getTypedRuleContext(Date_correlation_optimization_optionContext,0); +}; + +Database_optionspecContext.prototype.db_encryption_option = function() { + return this.getTypedRuleContext(Db_encryption_optionContext,0); +}; + +Database_optionspecContext.prototype.db_state_option = function() { + return this.getTypedRuleContext(Db_state_optionContext,0); +}; + +Database_optionspecContext.prototype.db_update_option = function() { + return this.getTypedRuleContext(Db_update_optionContext,0); +}; + +Database_optionspecContext.prototype.db_user_access_option = function() { + return this.getTypedRuleContext(Db_user_access_optionContext,0); +}; + +Database_optionspecContext.prototype.delayed_durability_option = function() { + return this.getTypedRuleContext(Delayed_durability_optionContext,0); +}; + +Database_optionspecContext.prototype.external_access_option = function() { + return this.getTypedRuleContext(External_access_optionContext,0); +}; + +Database_optionspecContext.prototype.FILESTREAM = function() { + return this.getToken(TSqlParser.FILESTREAM, 0); +}; + +Database_optionspecContext.prototype.database_filestream_option = function() { + return this.getTypedRuleContext(Database_filestream_optionContext,0); +}; + +Database_optionspecContext.prototype.hadr_options = function() { + return this.getTypedRuleContext(Hadr_optionsContext,0); +}; + +Database_optionspecContext.prototype.mixed_page_allocation_option = function() { + return this.getTypedRuleContext(Mixed_page_allocation_optionContext,0); +}; + +Database_optionspecContext.prototype.parameterization_option = function() { + return this.getTypedRuleContext(Parameterization_optionContext,0); +}; + +Database_optionspecContext.prototype.recovery_option = function() { + return this.getTypedRuleContext(Recovery_optionContext,0); +}; + +Database_optionspecContext.prototype.service_broker_option = function() { + return this.getTypedRuleContext(Service_broker_optionContext,0); +}; + +Database_optionspecContext.prototype.snapshot_option = function() { + return this.getTypedRuleContext(Snapshot_optionContext,0); +}; + +Database_optionspecContext.prototype.sql_option = function() { + return this.getTypedRuleContext(Sql_optionContext,0); +}; + +Database_optionspecContext.prototype.target_recovery_time_option = function() { + return this.getTypedRuleContext(Target_recovery_time_optionContext,0); +}; + +Database_optionspecContext.prototype.termination = function() { + return this.getTypedRuleContext(TerminationContext,0); +}; + +Database_optionspecContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDatabase_optionspec(this); + } +}; + +Database_optionspecContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDatabase_optionspec(this); + } +}; + +Database_optionspecContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDatabase_optionspec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Database_optionspecContext = Database_optionspecContext; + +TSqlParser.prototype.database_optionspec = function() { + + var localctx = new Database_optionspecContext(this, this._ctx, this.state); + this.enterRule(localctx, 504, TSqlParser.RULE_database_optionspec); + try { + this.state = 6701; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,881,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6678; + this.auto_option(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6679; + this.change_tracking_option(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 6680; + this.containment_option(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 6681; + this.cursor_option(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 6682; + this.database_mirroring_option(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 6683; + this.date_correlation_optimization_option(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 6684; + this.db_encryption_option(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 6685; + this.db_state_option(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 6686; + this.db_update_option(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 6687; + this.db_user_access_option(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 6688; + this.delayed_durability_option(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 6689; + this.external_access_option(); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 6690; + this.match(TSqlParser.FILESTREAM); + this.state = 6691; + this.database_filestream_option(); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 6692; + this.hadr_options(); + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 6693; + this.mixed_page_allocation_option(); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 6694; + this.parameterization_option(); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 6695; + this.recovery_option(); + break; + + case 18: + this.enterOuterAlt(localctx, 18); + this.state = 6696; + this.service_broker_option(); + break; + + case 19: + this.enterOuterAlt(localctx, 19); + this.state = 6697; + this.snapshot_option(); + break; + + case 20: + this.enterOuterAlt(localctx, 20); + this.state = 6698; + this.sql_option(); + break; + + case 21: + this.enterOuterAlt(localctx, 21); + this.state = 6699; + this.target_recovery_time_option(); + break; + + case 22: + this.enterOuterAlt(localctx, 22); + this.state = 6700; + this.termination(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Auto_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_auto_option; + return this; +} + +Auto_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Auto_optionContext.prototype.constructor = Auto_optionContext; + +Auto_optionContext.prototype.AUTO_CLOSE = function() { + return this.getToken(TSqlParser.AUTO_CLOSE, 0); +}; + +Auto_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Auto_optionContext.prototype.AUTO_CREATE_STATISTICS = function() { + return this.getToken(TSqlParser.AUTO_CREATE_STATISTICS, 0); +}; + +Auto_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Auto_optionContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Auto_optionContext.prototype.INCREMENTAL = function() { + return this.getToken(TSqlParser.INCREMENTAL, 0); +}; + +Auto_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Auto_optionContext.prototype.AUTO_SHRINK = function() { + return this.getToken(TSqlParser.AUTO_SHRINK, 0); +}; + +Auto_optionContext.prototype.AUTO_UPDATE_STATISTICS = function() { + return this.getToken(TSqlParser.AUTO_UPDATE_STATISTICS, 0); +}; + +Auto_optionContext.prototype.AUTO_UPDATE_STATISTICS_ASYNC = function() { + return this.getToken(TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC, 0); +}; + +Auto_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAuto_option(this); + } +}; + +Auto_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAuto_option(this); + } +}; + +Auto_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAuto_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Auto_optionContext = Auto_optionContext; + +TSqlParser.prototype.auto_option = function() { + + var localctx = new Auto_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 506, TSqlParser.RULE_auto_option); + var _la = 0; // Token type + try { + this.state = 6720; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO_CLOSE: + this.enterOuterAlt(localctx, 1); + this.state = 6703; + this.match(TSqlParser.AUTO_CLOSE); + this.state = 6704; + this.on_off(); + break; + case TSqlParser.AUTO_CREATE_STATISTICS: + this.enterOuterAlt(localctx, 2); + this.state = 6705; + this.match(TSqlParser.AUTO_CREATE_STATISTICS); + this.state = 6706; + this.match(TSqlParser.OFF); + break; + case TSqlParser.ON: + this.enterOuterAlt(localctx, 3); + this.state = 6707; + this.match(TSqlParser.ON); + this.state = 6712; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.INCREMENTAL: + this.state = 6708; + this.match(TSqlParser.INCREMENTAL); + this.state = 6709; + this.match(TSqlParser.EQUAL); + this.state = 6710; + this.match(TSqlParser.ON); + break; + case TSqlParser.OFF: + this.state = 6711; + this.match(TSqlParser.OFF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.AUTO_SHRINK: + this.enterOuterAlt(localctx, 4); + this.state = 6714; + this.match(TSqlParser.AUTO_SHRINK); + this.state = 6715; + this.on_off(); + break; + case TSqlParser.AUTO_UPDATE_STATISTICS: + this.enterOuterAlt(localctx, 5); + this.state = 6716; + this.match(TSqlParser.AUTO_UPDATE_STATISTICS); + this.state = 6717; + this.on_off(); + break; + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + this.enterOuterAlt(localctx, 6); + this.state = 6718; + this.match(TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC); + this.state = 6719; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Change_tracking_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_change_tracking_option; + return this; +} + +Change_tracking_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Change_tracking_optionContext.prototype.constructor = Change_tracking_optionContext; + +Change_tracking_optionContext.prototype.CHANGE_TRACKING = function() { + return this.getToken(TSqlParser.CHANGE_TRACKING, 0); +}; + +Change_tracking_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Change_tracking_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Change_tracking_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Change_tracking_optionContext.prototype.change_tracking_option_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Change_tracking_option_listContext); + } else { + return this.getTypedRuleContext(Change_tracking_option_listContext,i); + } +}; + +Change_tracking_optionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Change_tracking_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterChange_tracking_option(this); + } +}; + +Change_tracking_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitChange_tracking_option(this); + } +}; + +Change_tracking_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitChange_tracking_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Change_tracking_optionContext = Change_tracking_optionContext; + +TSqlParser.prototype.change_tracking_option = function() { + + var localctx = new Change_tracking_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 508, TSqlParser.RULE_change_tracking_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6722; + this.match(TSqlParser.CHANGE_TRACKING); + this.state = 6723; + this.match(TSqlParser.EQUAL); + this.state = 6739; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.OFF: + this.state = 6724; + this.match(TSqlParser.OFF); + break; + case TSqlParser.ON: + this.state = 6725; + this.match(TSqlParser.ON); + this.state = 6736; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,885,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 6726; + this.change_tracking_option_list(); + this.state = 6731; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 6727; + this.match(TSqlParser.COMMA); + this.state = 6728; + this.change_tracking_option_list(); + this.state = 6733; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + this.state = 6738; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,885,this._ctx); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Change_tracking_option_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_change_tracking_option_list; + return this; +} + +Change_tracking_option_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Change_tracking_option_listContext.prototype.constructor = Change_tracking_option_listContext; + +Change_tracking_option_listContext.prototype.AUTO_CLEANUP = function() { + return this.getToken(TSqlParser.AUTO_CLEANUP, 0); +}; + +Change_tracking_option_listContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Change_tracking_option_listContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Change_tracking_option_listContext.prototype.CHANGE_RETENTION = function() { + return this.getToken(TSqlParser.CHANGE_RETENTION, 0); +}; + +Change_tracking_option_listContext.prototype.DAYS = function() { + return this.getToken(TSqlParser.DAYS, 0); +}; + +Change_tracking_option_listContext.prototype.HOURS = function() { + return this.getToken(TSqlParser.HOURS, 0); +}; + +Change_tracking_option_listContext.prototype.MINUTES = function() { + return this.getToken(TSqlParser.MINUTES, 0); +}; + +Change_tracking_option_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterChange_tracking_option_list(this); + } +}; + +Change_tracking_option_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitChange_tracking_option_list(this); + } +}; + +Change_tracking_option_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitChange_tracking_option_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Change_tracking_option_listContext = Change_tracking_option_listContext; + +TSqlParser.prototype.change_tracking_option_list = function() { + + var localctx = new Change_tracking_option_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 510, TSqlParser.RULE_change_tracking_option_list); + var _la = 0; // Token type + try { + this.state = 6747; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AUTO_CLEANUP: + this.enterOuterAlt(localctx, 1); + this.state = 6741; + this.match(TSqlParser.AUTO_CLEANUP); + this.state = 6742; + this.match(TSqlParser.EQUAL); + this.state = 6743; + this.on_off(); + break; + case TSqlParser.CHANGE_RETENTION: + this.enterOuterAlt(localctx, 2); + this.state = 6744; + this.match(TSqlParser.CHANGE_RETENTION); + this.state = 6745; + this.match(TSqlParser.EQUAL); + this.state = 6746; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DAYS || _la===TSqlParser.HOURS || _la===TSqlParser.MINUTES)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Containment_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_containment_option; + return this; +} + +Containment_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Containment_optionContext.prototype.constructor = Containment_optionContext; + +Containment_optionContext.prototype.CONTAINMENT = function() { + return this.getToken(TSqlParser.CONTAINMENT, 0); +}; + +Containment_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Containment_optionContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Containment_optionContext.prototype.PARTIAL = function() { + return this.getToken(TSqlParser.PARTIAL, 0); +}; + +Containment_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterContainment_option(this); + } +}; + +Containment_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitContainment_option(this); + } +}; + +Containment_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitContainment_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Containment_optionContext = Containment_optionContext; + +TSqlParser.prototype.containment_option = function() { + + var localctx = new Containment_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 512, TSqlParser.RULE_containment_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6749; + this.match(TSqlParser.CONTAINMENT); + this.state = 6750; + this.match(TSqlParser.EQUAL); + this.state = 6751; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.PARTIAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Cursor_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_cursor_option; + return this; +} + +Cursor_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Cursor_optionContext.prototype.constructor = Cursor_optionContext; + +Cursor_optionContext.prototype.CURSOR_CLOSE_ON_COMMIT = function() { + return this.getToken(TSqlParser.CURSOR_CLOSE_ON_COMMIT, 0); +}; + +Cursor_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Cursor_optionContext.prototype.CURSOR_DEFAULT = function() { + return this.getToken(TSqlParser.CURSOR_DEFAULT, 0); +}; + +Cursor_optionContext.prototype.LOCAL = function() { + return this.getToken(TSqlParser.LOCAL, 0); +}; + +Cursor_optionContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Cursor_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCursor_option(this); + } +}; + +Cursor_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCursor_option(this); + } +}; + +Cursor_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCursor_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Cursor_optionContext = Cursor_optionContext; + +TSqlParser.prototype.cursor_option = function() { + + var localctx = new Cursor_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 514, TSqlParser.RULE_cursor_option); + var _la = 0; // Token type + try { + this.state = 6757; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + this.enterOuterAlt(localctx, 1); + this.state = 6753; + this.match(TSqlParser.CURSOR_CLOSE_ON_COMMIT); + this.state = 6754; + this.on_off(); + break; + case TSqlParser.CURSOR_DEFAULT: + this.enterOuterAlt(localctx, 2); + this.state = 6755; + this.match(TSqlParser.CURSOR_DEFAULT); + this.state = 6756; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GLOBAL || _la===TSqlParser.LOCAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Alter_endpointContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_alter_endpoint; + this.endpointname = null; // IdContext + this.login = null; // IdContext + this.state = null; // Token + this.port = null; // Token + this.cert_name = null; // IdContext + return this; +} + +Alter_endpointContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Alter_endpointContext.prototype.constructor = Alter_endpointContext; + +Alter_endpointContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Alter_endpointContext.prototype.ENDPOINT = function() { + return this.getToken(TSqlParser.ENDPOINT, 0); +}; + +Alter_endpointContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Alter_endpointContext.prototype.TCP = function() { + return this.getToken(TSqlParser.TCP, 0); +}; + +Alter_endpointContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Alter_endpointContext.prototype.LISTENER_PORT = function() { + return this.getToken(TSqlParser.LISTENER_PORT, 0); +}; + +Alter_endpointContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Alter_endpointContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Alter_endpointContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Alter_endpointContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Alter_endpointContext.prototype.TSQL = function() { + return this.getToken(TSqlParser.TSQL, 0); +}; + +Alter_endpointContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Alter_endpointContext.prototype.SERVICE_BROKER = function() { + return this.getToken(TSqlParser.SERVICE_BROKER, 0); +}; + +Alter_endpointContext.prototype.AUTHENTICATION = function() { + return this.getToken(TSqlParser.AUTHENTICATION, 0); +}; + +Alter_endpointContext.prototype.DATABASE_MIRRORING = function() { + return this.getToken(TSqlParser.DATABASE_MIRRORING, 0); +}; + +Alter_endpointContext.prototype.ROLE = function() { + return this.getToken(TSqlParser.ROLE, 0); +}; + +Alter_endpointContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Alter_endpointContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Alter_endpointContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Alter_endpointContext.prototype.LISTENER_IP = function() { + return this.getToken(TSqlParser.LISTENER_IP, 0); +}; + +Alter_endpointContext.prototype.WITNESS = function() { + return this.getToken(TSqlParser.WITNESS, 0); +}; + +Alter_endpointContext.prototype.PARTNER = function() { + return this.getToken(TSqlParser.PARTNER, 0); +}; + +Alter_endpointContext.prototype.ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALL); + } else { + return this.getToken(TSqlParser.ALL, i); + } +}; + + +Alter_endpointContext.prototype.IPV4_ADDR = function() { + return this.getToken(TSqlParser.IPV4_ADDR, 0); +}; + +Alter_endpointContext.prototype.IPV6_ADDR = function() { + return this.getToken(TSqlParser.IPV6_ADDR, 0); +}; + +Alter_endpointContext.prototype.WINDOWS = function() { + return this.getToken(TSqlParser.WINDOWS, 0); +}; + +Alter_endpointContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Alter_endpointContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Alter_endpointContext.prototype.MESSAGE_FORWARDING = function() { + return this.getToken(TSqlParser.MESSAGE_FORWARDING, 0); +}; + +Alter_endpointContext.prototype.MESSAGE_FORWARD_SIZE = function() { + return this.getToken(TSqlParser.MESSAGE_FORWARD_SIZE, 0); +}; + +Alter_endpointContext.prototype.STARTED = function() { + return this.getToken(TSqlParser.STARTED, 0); +}; + +Alter_endpointContext.prototype.STOPPED = function() { + return this.getToken(TSqlParser.STOPPED, 0); +}; + +Alter_endpointContext.prototype.DISABLED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DISABLED); + } else { + return this.getToken(TSqlParser.DISABLED, i); + } +}; + + +Alter_endpointContext.prototype.SUPPORTED = function() { + return this.getToken(TSqlParser.SUPPORTED, 0); +}; + +Alter_endpointContext.prototype.REQUIRED = function() { + return this.getToken(TSqlParser.REQUIRED, 0); +}; + +Alter_endpointContext.prototype.ENABLED = function() { + return this.getToken(TSqlParser.ENABLED, 0); +}; + +Alter_endpointContext.prototype.NTLM = function() { + return this.getToken(TSqlParser.NTLM, 0); +}; + +Alter_endpointContext.prototype.KERBEROS = function() { + return this.getToken(TSqlParser.KERBEROS, 0); +}; + +Alter_endpointContext.prototype.NEGOTIATE = function() { + return this.getToken(TSqlParser.NEGOTIATE, 0); +}; + +Alter_endpointContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Alter_endpointContext.prototype.AES = function() { + return this.getToken(TSqlParser.AES, 0); +}; + +Alter_endpointContext.prototype.RC4 = function() { + return this.getToken(TSqlParser.RC4, 0); +}; + +Alter_endpointContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlter_endpoint(this); + } +}; + +Alter_endpointContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlter_endpoint(this); + } +}; + +Alter_endpointContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlter_endpoint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Alter_endpointContext = Alter_endpointContext; + +TSqlParser.prototype.alter_endpoint = function() { + + var localctx = new Alter_endpointContext(this, this._ctx, this.state); + this.enterRule(localctx, 516, TSqlParser.RULE_alter_endpoint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6759; + this.match(TSqlParser.ALTER); + this.state = 6760; + this.match(TSqlParser.ENDPOINT); + this.state = 6761; + localctx.endpointname = this.id(); + this.state = 6764; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 6762; + this.match(TSqlParser.AUTHORIZATION); + this.state = 6763; + localctx.login = this.id(); + } + + this.state = 6773; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.STATE) { + this.state = 6766; + this.match(TSqlParser.STATE); + this.state = 6767; + this.match(TSqlParser.EQUAL); + this.state = 6771; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STARTED: + this.state = 6768; + localctx.state = this.match(TSqlParser.STARTED); + break; + case TSqlParser.STOPPED: + this.state = 6769; + localctx.state = this.match(TSqlParser.STOPPED); + break; + case TSqlParser.DISABLED: + this.state = 6770; + localctx.state = this.match(TSqlParser.DISABLED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 6775; + this.match(TSqlParser.AS); + this.state = 6776; + this.match(TSqlParser.TCP); + this.state = 6777; + this.match(TSqlParser.LR_BRACKET); + this.state = 6778; + this.match(TSqlParser.LISTENER_PORT); + this.state = 6779; + this.match(TSqlParser.EQUAL); + this.state = 6780; + localctx.port = this.match(TSqlParser.DECIMAL); + this.state = 6785; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6781; + this.match(TSqlParser.COMMA); + this.state = 6782; + this.match(TSqlParser.LISTENER_IP); + this.state = 6783; + this.match(TSqlParser.EQUAL); + this.state = 6784; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.IPV4_ADDR || _la===TSqlParser.IPV6_ADDR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6787; + this.match(TSqlParser.RR_BRACKET); + this.state = 6897; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,916,this._ctx); + switch(la_) { + case 1: + this.state = 6788; + this.match(TSqlParser.TSQL); + break; + + case 2: + this.state = 6789; + this.match(TSqlParser.FOR); + this.state = 6790; + this.match(TSqlParser.SERVICE_BROKER); + this.state = 6791; + this.match(TSqlParser.LR_BRACKET); + this.state = 6792; + this.match(TSqlParser.AUTHENTICATION); + this.state = 6793; + this.match(TSqlParser.EQUAL); + this.state = 6810; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WINDOWS: + this.state = 6794; + this.match(TSqlParser.WINDOWS); + this.state = 6796; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM) { + this.state = 6795; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6800; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CERTIFICATE) { + this.state = 6798; + this.match(TSqlParser.CERTIFICATE); + this.state = 6799; + localctx.cert_name = this.id(); + } + + break; + case TSqlParser.CERTIFICATE: + this.state = 6802; + this.match(TSqlParser.CERTIFICATE); + this.state = 6803; + localctx.cert_name = this.id(); + this.state = 6805; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WINDOWS) { + this.state = 6804; + this.match(TSqlParser.WINDOWS); + } + + this.state = 6808; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM) { + this.state = 6807; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6829; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,901,this._ctx); + if(la_===1) { + this.state = 6813; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6812; + this.match(TSqlParser.COMMA); + } + + this.state = 6815; + this.match(TSqlParser.ENCRYPTION); + this.state = 6816; + this.match(TSqlParser.EQUAL); + this.state = 6817; + _la = this._input.LA(1); + if(!(_la===TSqlParser.REQUIRED || _la===TSqlParser.SUPPORTED || _la===TSqlParser.DISABLED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6827; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALGORITHM) { + this.state = 6818; + this.match(TSqlParser.ALGORITHM); + this.state = 6825; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,899,this._ctx); + switch(la_) { + case 1: + this.state = 6819; + this.match(TSqlParser.AES); + break; + + case 2: + this.state = 6820; + this.match(TSqlParser.RC4); + break; + + case 3: + this.state = 6821; + this.match(TSqlParser.AES); + this.state = 6822; + this.match(TSqlParser.RC4); + break; + + case 4: + this.state = 6823; + this.match(TSqlParser.RC4); + this.state = 6824; + this.match(TSqlParser.AES); + break; + + } + } + + + } + this.state = 6837; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,903,this._ctx); + if(la_===1) { + this.state = 6832; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6831; + this.match(TSqlParser.COMMA); + } + + this.state = 6834; + this.match(TSqlParser.MESSAGE_FORWARDING); + this.state = 6835; + this.match(TSqlParser.EQUAL); + this.state = 6836; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ENABLED || _la===TSqlParser.DISABLED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + this.state = 6845; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MESSAGE_FORWARD_SIZE || _la===TSqlParser.COMMA) { + this.state = 6840; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6839; + this.match(TSqlParser.COMMA); + } + + this.state = 6842; + this.match(TSqlParser.MESSAGE_FORWARD_SIZE); + this.state = 6843; + this.match(TSqlParser.EQUAL); + this.state = 6844; + this.match(TSqlParser.DECIMAL); + } + + this.state = 6847; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.state = 6848; + this.match(TSqlParser.FOR); + this.state = 6849; + this.match(TSqlParser.DATABASE_MIRRORING); + this.state = 6850; + this.match(TSqlParser.LR_BRACKET); + this.state = 6851; + this.match(TSqlParser.AUTHENTICATION); + this.state = 6852; + this.match(TSqlParser.EQUAL); + this.state = 6869; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.WINDOWS: + this.state = 6853; + this.match(TSqlParser.WINDOWS); + this.state = 6855; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM) { + this.state = 6854; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 6859; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CERTIFICATE) { + this.state = 6857; + this.match(TSqlParser.CERTIFICATE); + this.state = 6858; + localctx.cert_name = this.id(); + } + + break; + case TSqlParser.CERTIFICATE: + this.state = 6861; + this.match(TSqlParser.CERTIFICATE); + this.state = 6862; + localctx.cert_name = this.id(); + this.state = 6864; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WINDOWS) { + this.state = 6863; + this.match(TSqlParser.WINDOWS); + } + + this.state = 6867; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM) { + this.state = 6866; + _la = this._input.LA(1); + if(!(_la===TSqlParser.KERBEROS || _la===TSqlParser.NEGOTIATE || _la===TSqlParser.NTLM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 6888; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,914,this._ctx); + if(la_===1) { + this.state = 6872; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6871; + this.match(TSqlParser.COMMA); + } + + this.state = 6874; + this.match(TSqlParser.ENCRYPTION); + this.state = 6875; + this.match(TSqlParser.EQUAL); + this.state = 6876; + _la = this._input.LA(1); + if(!(_la===TSqlParser.REQUIRED || _la===TSqlParser.SUPPORTED || _la===TSqlParser.DISABLED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6886; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALGORITHM) { + this.state = 6877; + this.match(TSqlParser.ALGORITHM); + this.state = 6884; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,912,this._ctx); + switch(la_) { + case 1: + this.state = 6878; + this.match(TSqlParser.AES); + break; + + case 2: + this.state = 6879; + this.match(TSqlParser.RC4); + break; + + case 3: + this.state = 6880; + this.match(TSqlParser.AES); + this.state = 6881; + this.match(TSqlParser.RC4); + break; + + case 4: + this.state = 6882; + this.match(TSqlParser.RC4); + this.state = 6883; + this.match(TSqlParser.AES); + break; + + } + } + + + } + this.state = 6891; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 6890; + this.match(TSqlParser.COMMA); + } + + this.state = 6893; + this.match(TSqlParser.ROLE); + this.state = 6894; + this.match(TSqlParser.EQUAL); + this.state = 6895; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.WITNESS || _la===TSqlParser.PARTNER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6896; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Database_mirroring_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_database_mirroring_option; + return this; +} + +Database_mirroring_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Database_mirroring_optionContext.prototype.constructor = Database_mirroring_optionContext; + +Database_mirroring_optionContext.prototype.mirroring_set_option = function() { + return this.getTypedRuleContext(Mirroring_set_optionContext,0); +}; + +Database_mirroring_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDatabase_mirroring_option(this); + } +}; + +Database_mirroring_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDatabase_mirroring_option(this); + } +}; + +Database_mirroring_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDatabase_mirroring_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Database_mirroring_optionContext = Database_mirroring_optionContext; + +TSqlParser.prototype.database_mirroring_option = function() { + + var localctx = new Database_mirroring_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 518, TSqlParser.RULE_database_mirroring_option); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6899; + this.mirroring_set_option(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mirroring_set_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mirroring_set_option; + return this; +} + +Mirroring_set_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mirroring_set_optionContext.prototype.constructor = Mirroring_set_optionContext; + +Mirroring_set_optionContext.prototype.mirroring_partner = function() { + return this.getTypedRuleContext(Mirroring_partnerContext,0); +}; + +Mirroring_set_optionContext.prototype.partner_option = function() { + return this.getTypedRuleContext(Partner_optionContext,0); +}; + +Mirroring_set_optionContext.prototype.mirroring_witness = function() { + return this.getTypedRuleContext(Mirroring_witnessContext,0); +}; + +Mirroring_set_optionContext.prototype.witness_option = function() { + return this.getTypedRuleContext(Witness_optionContext,0); +}; + +Mirroring_set_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMirroring_set_option(this); + } +}; + +Mirroring_set_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMirroring_set_option(this); + } +}; + +Mirroring_set_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMirroring_set_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mirroring_set_optionContext = Mirroring_set_optionContext; + +TSqlParser.prototype.mirroring_set_option = function() { + + var localctx = new Mirroring_set_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 520, TSqlParser.RULE_mirroring_set_option); + try { + this.state = 6907; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PARTNER: + this.enterOuterAlt(localctx, 1); + this.state = 6901; + this.mirroring_partner(); + this.state = 6902; + this.partner_option(); + break; + case TSqlParser.WITNESS: + this.enterOuterAlt(localctx, 2); + this.state = 6904; + this.mirroring_witness(); + this.state = 6905; + this.witness_option(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mirroring_partnerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mirroring_partner; + return this; +} + +Mirroring_partnerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mirroring_partnerContext.prototype.constructor = Mirroring_partnerContext; + +Mirroring_partnerContext.prototype.PARTNER = function() { + return this.getToken(TSqlParser.PARTNER, 0); +}; + +Mirroring_partnerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMirroring_partner(this); + } +}; + +Mirroring_partnerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMirroring_partner(this); + } +}; + +Mirroring_partnerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMirroring_partner(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mirroring_partnerContext = Mirroring_partnerContext; + +TSqlParser.prototype.mirroring_partner = function() { + + var localctx = new Mirroring_partnerContext(this, this._ctx, this.state); + this.enterRule(localctx, 522, TSqlParser.RULE_mirroring_partner); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6909; + this.match(TSqlParser.PARTNER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mirroring_witnessContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mirroring_witness; + return this; +} + +Mirroring_witnessContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mirroring_witnessContext.prototype.constructor = Mirroring_witnessContext; + +Mirroring_witnessContext.prototype.WITNESS = function() { + return this.getToken(TSqlParser.WITNESS, 0); +}; + +Mirroring_witnessContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMirroring_witness(this); + } +}; + +Mirroring_witnessContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMirroring_witness(this); + } +}; + +Mirroring_witnessContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMirroring_witness(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mirroring_witnessContext = Mirroring_witnessContext; + +TSqlParser.prototype.mirroring_witness = function() { + + var localctx = new Mirroring_witnessContext(this, this._ctx, this.state); + this.enterRule(localctx, 524, TSqlParser.RULE_mirroring_witness); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6911; + this.match(TSqlParser.WITNESS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Witness_partner_equalContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_witness_partner_equal; + return this; +} + +Witness_partner_equalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Witness_partner_equalContext.prototype.constructor = Witness_partner_equalContext; + +Witness_partner_equalContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Witness_partner_equalContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWitness_partner_equal(this); + } +}; + +Witness_partner_equalContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWitness_partner_equal(this); + } +}; + +Witness_partner_equalContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWitness_partner_equal(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Witness_partner_equalContext = Witness_partner_equalContext; + +TSqlParser.prototype.witness_partner_equal = function() { + + var localctx = new Witness_partner_equalContext(this, this._ctx, this.state); + this.enterRule(localctx, 526, TSqlParser.RULE_witness_partner_equal); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6913; + this.match(TSqlParser.EQUAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Partner_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_partner_option; + return this; +} + +Partner_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Partner_optionContext.prototype.constructor = Partner_optionContext; + +Partner_optionContext.prototype.witness_partner_equal = function() { + return this.getTypedRuleContext(Witness_partner_equalContext,0); +}; + +Partner_optionContext.prototype.partner_server = function() { + return this.getTypedRuleContext(Partner_serverContext,0); +}; + +Partner_optionContext.prototype.FAILOVER = function() { + return this.getToken(TSqlParser.FAILOVER, 0); +}; + +Partner_optionContext.prototype.FORCE_SERVICE_ALLOW_DATA_LOSS = function() { + return this.getToken(TSqlParser.FORCE_SERVICE_ALLOW_DATA_LOSS, 0); +}; + +Partner_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Partner_optionContext.prototype.RESUME = function() { + return this.getToken(TSqlParser.RESUME, 0); +}; + +Partner_optionContext.prototype.SAFETY = function() { + return this.getToken(TSqlParser.SAFETY, 0); +}; + +Partner_optionContext.prototype.FULL = function() { + return this.getToken(TSqlParser.FULL, 0); +}; + +Partner_optionContext.prototype.SUSPEND = function() { + return this.getToken(TSqlParser.SUSPEND, 0); +}; + +Partner_optionContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Partner_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Partner_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPartner_option(this); + } +}; + +Partner_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPartner_option(this); + } +}; + +Partner_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPartner_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Partner_optionContext = Partner_optionContext; + +TSqlParser.prototype.partner_option = function() { + + var localctx = new Partner_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 528, TSqlParser.RULE_partner_option); + var _la = 0; // Token type + try { + this.state = 6927; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EQUAL: + this.enterOuterAlt(localctx, 1); + this.state = 6915; + this.witness_partner_equal(); + this.state = 6916; + this.partner_server(); + break; + case TSqlParser.FAILOVER: + this.enterOuterAlt(localctx, 2); + this.state = 6918; + this.match(TSqlParser.FAILOVER); + break; + case TSqlParser.FORCE_SERVICE_ALLOW_DATA_LOSS: + this.enterOuterAlt(localctx, 3); + this.state = 6919; + this.match(TSqlParser.FORCE_SERVICE_ALLOW_DATA_LOSS); + break; + case TSqlParser.OFF: + this.enterOuterAlt(localctx, 4); + this.state = 6920; + this.match(TSqlParser.OFF); + break; + case TSqlParser.RESUME: + this.enterOuterAlt(localctx, 5); + this.state = 6921; + this.match(TSqlParser.RESUME); + break; + case TSqlParser.SAFETY: + this.enterOuterAlt(localctx, 6); + this.state = 6922; + this.match(TSqlParser.SAFETY); + this.state = 6923; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FULL || _la===TSqlParser.OFF)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SUSPEND: + this.enterOuterAlt(localctx, 7); + this.state = 6924; + this.match(TSqlParser.SUSPEND); + break; + case TSqlParser.TIMEOUT: + this.enterOuterAlt(localctx, 8); + this.state = 6925; + this.match(TSqlParser.TIMEOUT); + this.state = 6926; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Witness_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_witness_option; + return this; +} + +Witness_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Witness_optionContext.prototype.constructor = Witness_optionContext; + +Witness_optionContext.prototype.witness_partner_equal = function() { + return this.getTypedRuleContext(Witness_partner_equalContext,0); +}; + +Witness_optionContext.prototype.witness_server = function() { + return this.getTypedRuleContext(Witness_serverContext,0); +}; + +Witness_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Witness_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWitness_option(this); + } +}; + +Witness_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWitness_option(this); + } +}; + +Witness_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWitness_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Witness_optionContext = Witness_optionContext; + +TSqlParser.prototype.witness_option = function() { + + var localctx = new Witness_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 530, TSqlParser.RULE_witness_option); + try { + this.state = 6933; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EQUAL: + this.enterOuterAlt(localctx, 1); + this.state = 6929; + this.witness_partner_equal(); + this.state = 6930; + this.witness_server(); + break; + case TSqlParser.OFF: + this.enterOuterAlt(localctx, 2); + this.state = 6932; + this.match(TSqlParser.OFF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Witness_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_witness_server; + return this; +} + +Witness_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Witness_serverContext.prototype.constructor = Witness_serverContext; + +Witness_serverContext.prototype.partner_server = function() { + return this.getTypedRuleContext(Partner_serverContext,0); +}; + +Witness_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWitness_server(this); + } +}; + +Witness_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWitness_server(this); + } +}; + +Witness_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWitness_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Witness_serverContext = Witness_serverContext; + +TSqlParser.prototype.witness_server = function() { + + var localctx = new Witness_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 532, TSqlParser.RULE_witness_server); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6935; + this.partner_server(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Partner_serverContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_partner_server; + return this; +} + +Partner_serverContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Partner_serverContext.prototype.constructor = Partner_serverContext; + +Partner_serverContext.prototype.partner_server_tcp_prefix = function() { + return this.getTypedRuleContext(Partner_server_tcp_prefixContext,0); +}; + +Partner_serverContext.prototype.host = function() { + return this.getTypedRuleContext(HostContext,0); +}; + +Partner_serverContext.prototype.mirroring_host_port_seperator = function() { + return this.getTypedRuleContext(Mirroring_host_port_seperatorContext,0); +}; + +Partner_serverContext.prototype.port_number = function() { + return this.getTypedRuleContext(Port_numberContext,0); +}; + +Partner_serverContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPartner_server(this); + } +}; + +Partner_serverContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPartner_server(this); + } +}; + +Partner_serverContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPartner_server(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Partner_serverContext = Partner_serverContext; + +TSqlParser.prototype.partner_server = function() { + + var localctx = new Partner_serverContext(this, this._ctx, this.state); + this.enterRule(localctx, 534, TSqlParser.RULE_partner_server); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6937; + this.partner_server_tcp_prefix(); + this.state = 6938; + this.host(); + this.state = 6939; + this.mirroring_host_port_seperator(); + this.state = 6940; + this.port_number(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mirroring_host_port_seperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mirroring_host_port_seperator; + return this; +} + +Mirroring_host_port_seperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mirroring_host_port_seperatorContext.prototype.constructor = Mirroring_host_port_seperatorContext; + +Mirroring_host_port_seperatorContext.prototype.COLON = function() { + return this.getToken(TSqlParser.COLON, 0); +}; + +Mirroring_host_port_seperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMirroring_host_port_seperator(this); + } +}; + +Mirroring_host_port_seperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMirroring_host_port_seperator(this); + } +}; + +Mirroring_host_port_seperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMirroring_host_port_seperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mirroring_host_port_seperatorContext = Mirroring_host_port_seperatorContext; + +TSqlParser.prototype.mirroring_host_port_seperator = function() { + + var localctx = new Mirroring_host_port_seperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 536, TSqlParser.RULE_mirroring_host_port_seperator); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6942; + this.match(TSqlParser.COLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Partner_server_tcp_prefixContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_partner_server_tcp_prefix; + return this; +} + +Partner_server_tcp_prefixContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Partner_server_tcp_prefixContext.prototype.constructor = Partner_server_tcp_prefixContext; + +Partner_server_tcp_prefixContext.prototype.TCP = function() { + return this.getToken(TSqlParser.TCP, 0); +}; + +Partner_server_tcp_prefixContext.prototype.COLON = function() { + return this.getToken(TSqlParser.COLON, 0); +}; + +Partner_server_tcp_prefixContext.prototype.DOUBLE_FORWARD_SLASH = function() { + return this.getToken(TSqlParser.DOUBLE_FORWARD_SLASH, 0); +}; + +Partner_server_tcp_prefixContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPartner_server_tcp_prefix(this); + } +}; + +Partner_server_tcp_prefixContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPartner_server_tcp_prefix(this); + } +}; + +Partner_server_tcp_prefixContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPartner_server_tcp_prefix(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Partner_server_tcp_prefixContext = Partner_server_tcp_prefixContext; + +TSqlParser.prototype.partner_server_tcp_prefix = function() { + + var localctx = new Partner_server_tcp_prefixContext(this, this._ctx, this.state); + this.enterRule(localctx, 538, TSqlParser.RULE_partner_server_tcp_prefix); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6944; + this.match(TSqlParser.TCP); + this.state = 6945; + this.match(TSqlParser.COLON); + this.state = 6946; + this.match(TSqlParser.DOUBLE_FORWARD_SLASH); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Port_numberContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_port_number; + this.port = null; // Token + return this; +} + +Port_numberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Port_numberContext.prototype.constructor = Port_numberContext; + +Port_numberContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Port_numberContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPort_number(this); + } +}; + +Port_numberContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPort_number(this); + } +}; + +Port_numberContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPort_number(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Port_numberContext = Port_numberContext; + +TSqlParser.prototype.port_number = function() { + + var localctx = new Port_numberContext(this, this._ctx, this.state); + this.enterRule(localctx, 540, TSqlParser.RULE_port_number); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6948; + localctx.port = this.match(TSqlParser.DECIMAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HostContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_host; + return this; +} + +HostContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HostContext.prototype.constructor = HostContext; + +HostContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +HostContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +HostContext.prototype.host = function() { + return this.getTypedRuleContext(HostContext,0); +}; + +HostContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterHost(this); + } +}; + +HostContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitHost(this); + } +}; + +HostContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitHost(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.HostContext = HostContext; + +TSqlParser.prototype.host = function() { + + var localctx = new HostContext(this, this._ctx, this.state); + this.enterRule(localctx, 542, TSqlParser.RULE_host); + try { + this.state = 6960; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,921,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 6950; + this.id(); + this.state = 6951; + this.match(TSqlParser.DOT); + this.state = 6952; + this.host(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 6958; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,920,this._ctx); + switch(la_) { + case 1: + this.state = 6954; + this.id(); + this.state = 6955; + this.match(TSqlParser.DOT); + break; + + case 2: + this.state = 6957; + this.id(); + break; + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Date_correlation_optimization_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_date_correlation_optimization_option; + return this; +} + +Date_correlation_optimization_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Date_correlation_optimization_optionContext.prototype.constructor = Date_correlation_optimization_optionContext; + +Date_correlation_optimization_optionContext.prototype.DATE_CORRELATION_OPTIMIZATION = function() { + return this.getToken(TSqlParser.DATE_CORRELATION_OPTIMIZATION, 0); +}; + +Date_correlation_optimization_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Date_correlation_optimization_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDate_correlation_optimization_option(this); + } +}; + +Date_correlation_optimization_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDate_correlation_optimization_option(this); + } +}; + +Date_correlation_optimization_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDate_correlation_optimization_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Date_correlation_optimization_optionContext = Date_correlation_optimization_optionContext; + +TSqlParser.prototype.date_correlation_optimization_option = function() { + + var localctx = new Date_correlation_optimization_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 544, TSqlParser.RULE_date_correlation_optimization_option); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6962; + this.match(TSqlParser.DATE_CORRELATION_OPTIMIZATION); + this.state = 6963; + this.on_off(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Db_encryption_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_db_encryption_option; + return this; +} + +Db_encryption_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Db_encryption_optionContext.prototype.constructor = Db_encryption_optionContext; + +Db_encryption_optionContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Db_encryption_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Db_encryption_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDb_encryption_option(this); + } +}; + +Db_encryption_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDb_encryption_option(this); + } +}; + +Db_encryption_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDb_encryption_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Db_encryption_optionContext = Db_encryption_optionContext; + +TSqlParser.prototype.db_encryption_option = function() { + + var localctx = new Db_encryption_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 546, TSqlParser.RULE_db_encryption_option); + try { + this.enterOuterAlt(localctx, 1); + this.state = 6965; + this.match(TSqlParser.ENCRYPTION); + this.state = 6966; + this.on_off(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Db_state_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_db_state_option; + return this; +} + +Db_state_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Db_state_optionContext.prototype.constructor = Db_state_optionContext; + +Db_state_optionContext.prototype.ONLINE = function() { + return this.getToken(TSqlParser.ONLINE, 0); +}; + +Db_state_optionContext.prototype.OFFLINE = function() { + return this.getToken(TSqlParser.OFFLINE, 0); +}; + +Db_state_optionContext.prototype.EMERGENCY = function() { + return this.getToken(TSqlParser.EMERGENCY, 0); +}; + +Db_state_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDb_state_option(this); + } +}; + +Db_state_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDb_state_option(this); + } +}; + +Db_state_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDb_state_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Db_state_optionContext = Db_state_optionContext; + +TSqlParser.prototype.db_state_option = function() { + + var localctx = new Db_state_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 548, TSqlParser.RULE_db_state_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6968; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EMERGENCY || _la===TSqlParser.OFFLINE || _la===TSqlParser.ONLINE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Db_update_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_db_update_option; + return this; +} + +Db_update_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Db_update_optionContext.prototype.constructor = Db_update_optionContext; + +Db_update_optionContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Db_update_optionContext.prototype.READ_WRITE = function() { + return this.getToken(TSqlParser.READ_WRITE, 0); +}; + +Db_update_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDb_update_option(this); + } +}; + +Db_update_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDb_update_option(this); + } +}; + +Db_update_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDb_update_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Db_update_optionContext = Db_update_optionContext; + +TSqlParser.prototype.db_update_option = function() { + + var localctx = new Db_update_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 550, TSqlParser.RULE_db_update_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6970; + _la = this._input.LA(1); + if(!(_la===TSqlParser.READ_ONLY || _la===TSqlParser.READ_WRITE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Db_user_access_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_db_user_access_option; + return this; +} + +Db_user_access_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Db_user_access_optionContext.prototype.constructor = Db_user_access_optionContext; + +Db_user_access_optionContext.prototype.SINGLE_USER = function() { + return this.getToken(TSqlParser.SINGLE_USER, 0); +}; + +Db_user_access_optionContext.prototype.RESTRICTED_USER = function() { + return this.getToken(TSqlParser.RESTRICTED_USER, 0); +}; + +Db_user_access_optionContext.prototype.MULTI_USER = function() { + return this.getToken(TSqlParser.MULTI_USER, 0); +}; + +Db_user_access_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDb_user_access_option(this); + } +}; + +Db_user_access_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDb_user_access_option(this); + } +}; + +Db_user_access_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDb_user_access_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Db_user_access_optionContext = Db_user_access_optionContext; + +TSqlParser.prototype.db_user_access_option = function() { + + var localctx = new Db_user_access_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 552, TSqlParser.RULE_db_user_access_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6972; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MULTI_USER || _la===TSqlParser.RESTRICTED_USER || _la===TSqlParser.SINGLE_USER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Delayed_durability_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_delayed_durability_option; + return this; +} + +Delayed_durability_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Delayed_durability_optionContext.prototype.constructor = Delayed_durability_optionContext; + +Delayed_durability_optionContext.prototype.DELAYED_DURABILITY = function() { + return this.getToken(TSqlParser.DELAYED_DURABILITY, 0); +}; + +Delayed_durability_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Delayed_durability_optionContext.prototype.DISABLED = function() { + return this.getToken(TSqlParser.DISABLED, 0); +}; + +Delayed_durability_optionContext.prototype.ALLOWED = function() { + return this.getToken(TSqlParser.ALLOWED, 0); +}; + +Delayed_durability_optionContext.prototype.FORCED = function() { + return this.getToken(TSqlParser.FORCED, 0); +}; + +Delayed_durability_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDelayed_durability_option(this); + } +}; + +Delayed_durability_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDelayed_durability_option(this); + } +}; + +Delayed_durability_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDelayed_durability_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Delayed_durability_optionContext = Delayed_durability_optionContext; + +TSqlParser.prototype.delayed_durability_option = function() { + + var localctx = new Delayed_durability_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 554, TSqlParser.RULE_delayed_durability_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 6974; + this.match(TSqlParser.DELAYED_DURABILITY); + this.state = 6975; + this.match(TSqlParser.EQUAL); + this.state = 6976; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALLOWED || _la===TSqlParser.DISABLED || _la===TSqlParser.FORCED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function External_access_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_external_access_option; + return this; +} + +External_access_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +External_access_optionContext.prototype.constructor = External_access_optionContext; + +External_access_optionContext.prototype.DB_CHAINING = function() { + return this.getToken(TSqlParser.DB_CHAINING, 0); +}; + +External_access_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +External_access_optionContext.prototype.TRUSTWORTHY = function() { + return this.getToken(TSqlParser.TRUSTWORTHY, 0); +}; + +External_access_optionContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +External_access_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +External_access_optionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +External_access_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +External_access_optionContext.prototype.DEFAULT_FULLTEXT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE, 0); +}; + +External_access_optionContext.prototype.NESTED_TRIGGERS = function() { + return this.getToken(TSqlParser.NESTED_TRIGGERS, 0); +}; + +External_access_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +External_access_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +External_access_optionContext.prototype.TRANSFORM_NOISE_WORDS = function() { + return this.getToken(TSqlParser.TRANSFORM_NOISE_WORDS, 0); +}; + +External_access_optionContext.prototype.TWO_DIGIT_YEAR_CUTOFF = function() { + return this.getToken(TSqlParser.TWO_DIGIT_YEAR_CUTOFF, 0); +}; + +External_access_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +External_access_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExternal_access_option(this); + } +}; + +External_access_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExternal_access_option(this); + } +}; + +External_access_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExternal_access_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.External_access_optionContext = External_access_optionContext; + +TSqlParser.prototype.external_access_option = function() { + + var localctx = new External_access_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 556, TSqlParser.RULE_external_access_option); + var _la = 0; // Token type + try { + this.state = 7003; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DB_CHAINING: + this.enterOuterAlt(localctx, 1); + this.state = 6978; + this.match(TSqlParser.DB_CHAINING); + this.state = 6979; + this.on_off(); + break; + case TSqlParser.TRUSTWORTHY: + this.enterOuterAlt(localctx, 2); + this.state = 6980; + this.match(TSqlParser.TRUSTWORTHY); + this.state = 6981; + this.on_off(); + break; + case TSqlParser.DEFAULT_LANGUAGE: + this.enterOuterAlt(localctx, 3); + this.state = 6982; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 6983; + this.match(TSqlParser.EQUAL); + this.state = 6986; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6984; + this.id(); + break; + case TSqlParser.STRING: + this.state = 6985; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + this.enterOuterAlt(localctx, 4); + this.state = 6988; + this.match(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE); + this.state = 6989; + this.match(TSqlParser.EQUAL); + this.state = 6992; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 6990; + this.id(); + break; + case TSqlParser.STRING: + this.state = 6991; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NESTED_TRIGGERS: + this.enterOuterAlt(localctx, 5); + this.state = 6994; + this.match(TSqlParser.NESTED_TRIGGERS); + this.state = 6995; + this.match(TSqlParser.EQUAL); + this.state = 6996; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TRANSFORM_NOISE_WORDS: + this.enterOuterAlt(localctx, 6); + this.state = 6997; + this.match(TSqlParser.TRANSFORM_NOISE_WORDS); + this.state = 6998; + this.match(TSqlParser.EQUAL); + this.state = 6999; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + this.enterOuterAlt(localctx, 7); + this.state = 7000; + this.match(TSqlParser.TWO_DIGIT_YEAR_CUTOFF); + this.state = 7001; + this.match(TSqlParser.EQUAL); + this.state = 7002; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Hadr_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_hadr_options; + this.availability_group_name = null; // IdContext + return this; +} + +Hadr_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Hadr_optionsContext.prototype.constructor = Hadr_optionsContext; + +Hadr_optionsContext.prototype.HADR = function() { + return this.getToken(TSqlParser.HADR, 0); +}; + +Hadr_optionsContext.prototype.SUSPEND = function() { + return this.getToken(TSqlParser.SUSPEND, 0); +}; + +Hadr_optionsContext.prototype.RESUME = function() { + return this.getToken(TSqlParser.RESUME, 0); +}; + +Hadr_optionsContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Hadr_optionsContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Hadr_optionsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Hadr_optionsContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Hadr_optionsContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Hadr_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterHadr_options(this); + } +}; + +Hadr_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitHadr_options(this); + } +}; + +Hadr_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitHadr_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Hadr_optionsContext = Hadr_optionsContext; + +TSqlParser.prototype.hadr_options = function() { + + var localctx = new Hadr_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 558, TSqlParser.RULE_hadr_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7005; + this.match(TSqlParser.HADR); + this.state = 7014; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.OFF: + case TSqlParser.AVAILABILITY: + this.state = 7011; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AVAILABILITY: + this.state = 7006; + this.match(TSqlParser.AVAILABILITY); + this.state = 7007; + this.match(TSqlParser.GROUP); + this.state = 7008; + this.match(TSqlParser.EQUAL); + this.state = 7009; + localctx.availability_group_name = this.id(); + break; + case TSqlParser.OFF: + this.state = 7010; + this.match(TSqlParser.OFF); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.RESUME: + case TSqlParser.SUSPEND: + this.state = 7013; + _la = this._input.LA(1); + if(!(_la===TSqlParser.RESUME || _la===TSqlParser.SUSPEND)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Mixed_page_allocation_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_mixed_page_allocation_option; + return this; +} + +Mixed_page_allocation_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Mixed_page_allocation_optionContext.prototype.constructor = Mixed_page_allocation_optionContext; + +Mixed_page_allocation_optionContext.prototype.MIXED_PAGE_ALLOCATION = function() { + return this.getToken(TSqlParser.MIXED_PAGE_ALLOCATION, 0); +}; + +Mixed_page_allocation_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Mixed_page_allocation_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Mixed_page_allocation_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMixed_page_allocation_option(this); + } +}; + +Mixed_page_allocation_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMixed_page_allocation_option(this); + } +}; + +Mixed_page_allocation_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMixed_page_allocation_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Mixed_page_allocation_optionContext = Mixed_page_allocation_optionContext; + +TSqlParser.prototype.mixed_page_allocation_option = function() { + + var localctx = new Mixed_page_allocation_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 560, TSqlParser.RULE_mixed_page_allocation_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7016; + this.match(TSqlParser.MIXED_PAGE_ALLOCATION); + this.state = 7017; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Parameterization_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_parameterization_option; + return this; +} + +Parameterization_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Parameterization_optionContext.prototype.constructor = Parameterization_optionContext; + +Parameterization_optionContext.prototype.PARAMETERIZATION = function() { + return this.getToken(TSqlParser.PARAMETERIZATION, 0); +}; + +Parameterization_optionContext.prototype.SIMPLE = function() { + return this.getToken(TSqlParser.SIMPLE, 0); +}; + +Parameterization_optionContext.prototype.FORCED = function() { + return this.getToken(TSqlParser.FORCED, 0); +}; + +Parameterization_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterParameterization_option(this); + } +}; + +Parameterization_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitParameterization_option(this); + } +}; + +Parameterization_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitParameterization_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Parameterization_optionContext = Parameterization_optionContext; + +TSqlParser.prototype.parameterization_option = function() { + + var localctx = new Parameterization_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 562, TSqlParser.RULE_parameterization_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7019; + this.match(TSqlParser.PARAMETERIZATION); + this.state = 7020; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FORCED || _la===TSqlParser.SIMPLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Recovery_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_recovery_option; + return this; +} + +Recovery_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Recovery_optionContext.prototype.constructor = Recovery_optionContext; + +Recovery_optionContext.prototype.RECOVERY = function() { + return this.getToken(TSqlParser.RECOVERY, 0); +}; + +Recovery_optionContext.prototype.FULL = function() { + return this.getToken(TSqlParser.FULL, 0); +}; + +Recovery_optionContext.prototype.BULK_LOGGED = function() { + return this.getToken(TSqlParser.BULK_LOGGED, 0); +}; + +Recovery_optionContext.prototype.SIMPLE = function() { + return this.getToken(TSqlParser.SIMPLE, 0); +}; + +Recovery_optionContext.prototype.TORN_PAGE_DETECTION = function() { + return this.getToken(TSqlParser.TORN_PAGE_DETECTION, 0); +}; + +Recovery_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Recovery_optionContext.prototype.PAGE_VERIFY = function() { + return this.getToken(TSqlParser.PAGE_VERIFY, 0); +}; + +Recovery_optionContext.prototype.CHECKSUM = function() { + return this.getToken(TSqlParser.CHECKSUM, 0); +}; + +Recovery_optionContext.prototype.NONE = function() { + return this.getToken(TSqlParser.NONE, 0); +}; + +Recovery_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRecovery_option(this); + } +}; + +Recovery_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRecovery_option(this); + } +}; + +Recovery_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRecovery_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Recovery_optionContext = Recovery_optionContext; + +TSqlParser.prototype.recovery_option = function() { + + var localctx = new Recovery_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 564, TSqlParser.RULE_recovery_option); + var _la = 0; // Token type + try { + this.state = 7028; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.RECOVERY: + this.enterOuterAlt(localctx, 1); + this.state = 7022; + this.match(TSqlParser.RECOVERY); + this.state = 7023; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FULL || _la===TSqlParser.BULK_LOGGED || _la===TSqlParser.SIMPLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TORN_PAGE_DETECTION: + this.enterOuterAlt(localctx, 2); + this.state = 7024; + this.match(TSqlParser.TORN_PAGE_DETECTION); + this.state = 7025; + this.on_off(); + break; + case TSqlParser.PAGE_VERIFY: + this.enterOuterAlt(localctx, 3); + this.state = 7026; + this.match(TSqlParser.PAGE_VERIFY); + this.state = 7027; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NONE || _la===TSqlParser.CHECKSUM || _la===TSqlParser.TORN_PAGE_DETECTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Service_broker_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_service_broker_option; + return this; +} + +Service_broker_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Service_broker_optionContext.prototype.constructor = Service_broker_optionContext; + +Service_broker_optionContext.prototype.ENABLE_BROKER = function() { + return this.getToken(TSqlParser.ENABLE_BROKER, 0); +}; + +Service_broker_optionContext.prototype.DISABLE_BROKER = function() { + return this.getToken(TSqlParser.DISABLE_BROKER, 0); +}; + +Service_broker_optionContext.prototype.NEW_BROKER = function() { + return this.getToken(TSqlParser.NEW_BROKER, 0); +}; + +Service_broker_optionContext.prototype.ERROR_BROKER_CONVERSATIONS = function() { + return this.getToken(TSqlParser.ERROR_BROKER_CONVERSATIONS, 0); +}; + +Service_broker_optionContext.prototype.HONOR_BROKER_PRIORITY = function() { + return this.getToken(TSqlParser.HONOR_BROKER_PRIORITY, 0); +}; + +Service_broker_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Service_broker_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterService_broker_option(this); + } +}; + +Service_broker_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitService_broker_option(this); + } +}; + +Service_broker_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitService_broker_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Service_broker_optionContext = Service_broker_optionContext; + +TSqlParser.prototype.service_broker_option = function() { + + var localctx = new Service_broker_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 566, TSqlParser.RULE_service_broker_option); + try { + this.state = 7036; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ENABLE_BROKER: + this.enterOuterAlt(localctx, 1); + this.state = 7030; + this.match(TSqlParser.ENABLE_BROKER); + break; + case TSqlParser.DISABLE_BROKER: + this.enterOuterAlt(localctx, 2); + this.state = 7031; + this.match(TSqlParser.DISABLE_BROKER); + break; + case TSqlParser.NEW_BROKER: + this.enterOuterAlt(localctx, 3); + this.state = 7032; + this.match(TSqlParser.NEW_BROKER); + break; + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + this.enterOuterAlt(localctx, 4); + this.state = 7033; + this.match(TSqlParser.ERROR_BROKER_CONVERSATIONS); + break; + case TSqlParser.HONOR_BROKER_PRIORITY: + this.enterOuterAlt(localctx, 5); + this.state = 7034; + this.match(TSqlParser.HONOR_BROKER_PRIORITY); + this.state = 7035; + this.on_off(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Snapshot_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_snapshot_option; + this.MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = null; // Token + return this; +} + +Snapshot_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Snapshot_optionContext.prototype.constructor = Snapshot_optionContext; + +Snapshot_optionContext.prototype.ALLOW_SNAPSHOT_ISOLATION = function() { + return this.getToken(TSqlParser.ALLOW_SNAPSHOT_ISOLATION, 0); +}; + +Snapshot_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Snapshot_optionContext.prototype.READ_COMMITTED_SNAPSHOT = function() { + return this.getToken(TSqlParser.READ_COMMITTED_SNAPSHOT, 0); +}; + +Snapshot_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Snapshot_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Snapshot_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSnapshot_option(this); + } +}; + +Snapshot_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSnapshot_option(this); + } +}; + +Snapshot_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSnapshot_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Snapshot_optionContext = Snapshot_optionContext; + +TSqlParser.prototype.snapshot_option = function() { + + var localctx = new Snapshot_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 568, TSqlParser.RULE_snapshot_option); + var _la = 0; // Token type + try { + this.state = 7043; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + this.enterOuterAlt(localctx, 1); + this.state = 7038; + this.match(TSqlParser.ALLOW_SNAPSHOT_ISOLATION); + this.state = 7039; + this.on_off(); + break; + case TSqlParser.READ_COMMITTED_SNAPSHOT: + this.enterOuterAlt(localctx, 2); + this.state = 7040; + this.match(TSqlParser.READ_COMMITTED_SNAPSHOT); + this.state = 7041; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.OFF: + case TSqlParser.ON: + this.enterOuterAlt(localctx, 3); + this.state = 7042; + localctx.MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + localctx.MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Sql_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sql_option; + return this; +} + +Sql_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Sql_optionContext.prototype.constructor = Sql_optionContext; + +Sql_optionContext.prototype.ANSI_NULL_DEFAULT = function() { + return this.getToken(TSqlParser.ANSI_NULL_DEFAULT, 0); +}; + +Sql_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Sql_optionContext.prototype.ANSI_NULLS = function() { + return this.getToken(TSqlParser.ANSI_NULLS, 0); +}; + +Sql_optionContext.prototype.ANSI_PADDING = function() { + return this.getToken(TSqlParser.ANSI_PADDING, 0); +}; + +Sql_optionContext.prototype.ANSI_WARNINGS = function() { + return this.getToken(TSqlParser.ANSI_WARNINGS, 0); +}; + +Sql_optionContext.prototype.ARITHABORT = function() { + return this.getToken(TSqlParser.ARITHABORT, 0); +}; + +Sql_optionContext.prototype.COMPATIBILITY_LEVEL = function() { + return this.getToken(TSqlParser.COMPATIBILITY_LEVEL, 0); +}; + +Sql_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Sql_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Sql_optionContext.prototype.CONCAT_NULL_YIELDS_NULL = function() { + return this.getToken(TSqlParser.CONCAT_NULL_YIELDS_NULL, 0); +}; + +Sql_optionContext.prototype.NUMERIC_ROUNDABORT = function() { + return this.getToken(TSqlParser.NUMERIC_ROUNDABORT, 0); +}; + +Sql_optionContext.prototype.QUOTED_IDENTIFIER = function() { + return this.getToken(TSqlParser.QUOTED_IDENTIFIER, 0); +}; + +Sql_optionContext.prototype.RECURSIVE_TRIGGERS = function() { + return this.getToken(TSqlParser.RECURSIVE_TRIGGERS, 0); +}; + +Sql_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSql_option(this); + } +}; + +Sql_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSql_option(this); + } +}; + +Sql_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSql_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Sql_optionContext = Sql_optionContext; + +TSqlParser.prototype.sql_option = function() { + + var localctx = new Sql_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 570, TSqlParser.RULE_sql_option); + try { + this.state = 7066; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ANSI_NULL_DEFAULT: + this.enterOuterAlt(localctx, 1); + this.state = 7045; + this.match(TSqlParser.ANSI_NULL_DEFAULT); + this.state = 7046; + this.on_off(); + break; + case TSqlParser.ANSI_NULLS: + this.enterOuterAlt(localctx, 2); + this.state = 7047; + this.match(TSqlParser.ANSI_NULLS); + this.state = 7048; + this.on_off(); + break; + case TSqlParser.ANSI_PADDING: + this.enterOuterAlt(localctx, 3); + this.state = 7049; + this.match(TSqlParser.ANSI_PADDING); + this.state = 7050; + this.on_off(); + break; + case TSqlParser.ANSI_WARNINGS: + this.enterOuterAlt(localctx, 4); + this.state = 7051; + this.match(TSqlParser.ANSI_WARNINGS); + this.state = 7052; + this.on_off(); + break; + case TSqlParser.ARITHABORT: + this.enterOuterAlt(localctx, 5); + this.state = 7053; + this.match(TSqlParser.ARITHABORT); + this.state = 7054; + this.on_off(); + break; + case TSqlParser.COMPATIBILITY_LEVEL: + this.enterOuterAlt(localctx, 6); + this.state = 7055; + this.match(TSqlParser.COMPATIBILITY_LEVEL); + this.state = 7056; + this.match(TSqlParser.EQUAL); + this.state = 7057; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + this.enterOuterAlt(localctx, 7); + this.state = 7058; + this.match(TSqlParser.CONCAT_NULL_YIELDS_NULL); + this.state = 7059; + this.on_off(); + break; + case TSqlParser.NUMERIC_ROUNDABORT: + this.enterOuterAlt(localctx, 8); + this.state = 7060; + this.match(TSqlParser.NUMERIC_ROUNDABORT); + this.state = 7061; + this.on_off(); + break; + case TSqlParser.QUOTED_IDENTIFIER: + this.enterOuterAlt(localctx, 9); + this.state = 7062; + this.match(TSqlParser.QUOTED_IDENTIFIER); + this.state = 7063; + this.on_off(); + break; + case TSqlParser.RECURSIVE_TRIGGERS: + this.enterOuterAlt(localctx, 10); + this.state = 7064; + this.match(TSqlParser.RECURSIVE_TRIGGERS); + this.state = 7065; + this.on_off(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Target_recovery_time_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_target_recovery_time_option; + return this; +} + +Target_recovery_time_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Target_recovery_time_optionContext.prototype.constructor = Target_recovery_time_optionContext; + +Target_recovery_time_optionContext.prototype.TARGET_RECOVERY_TIME = function() { + return this.getToken(TSqlParser.TARGET_RECOVERY_TIME, 0); +}; + +Target_recovery_time_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Target_recovery_time_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Target_recovery_time_optionContext.prototype.SECONDS = function() { + return this.getToken(TSqlParser.SECONDS, 0); +}; + +Target_recovery_time_optionContext.prototype.MINUTES = function() { + return this.getToken(TSqlParser.MINUTES, 0); +}; + +Target_recovery_time_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTarget_recovery_time_option(this); + } +}; + +Target_recovery_time_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTarget_recovery_time_option(this); + } +}; + +Target_recovery_time_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTarget_recovery_time_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Target_recovery_time_optionContext = Target_recovery_time_optionContext; + +TSqlParser.prototype.target_recovery_time_option = function() { + + var localctx = new Target_recovery_time_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 572, TSqlParser.RULE_target_recovery_time_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7068; + this.match(TSqlParser.TARGET_RECOVERY_TIME); + this.state = 7069; + this.match(TSqlParser.EQUAL); + this.state = 7070; + this.match(TSqlParser.DECIMAL); + this.state = 7071; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MINUTES || _la===TSqlParser.SECONDS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TerminationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_termination; + this.seconds = null; // Token + return this; +} + +TerminationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TerminationContext.prototype.constructor = TerminationContext; + +TerminationContext.prototype.ROLLBACK = function() { + return this.getToken(TSqlParser.ROLLBACK, 0); +}; + +TerminationContext.prototype.AFTER = function() { + return this.getToken(TSqlParser.AFTER, 0); +}; + +TerminationContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +TerminationContext.prototype.IMMEDIATE = function() { + return this.getToken(TSqlParser.IMMEDIATE, 0); +}; + +TerminationContext.prototype.NO_WAIT = function() { + return this.getToken(TSqlParser.NO_WAIT, 0); +}; + +TerminationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTermination(this); + } +}; + +TerminationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTermination(this); + } +}; + +TerminationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTermination(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.TerminationContext = TerminationContext; + +TSqlParser.prototype.termination = function() { + + var localctx = new TerminationContext(this, this._ctx, this.state); + this.enterRule(localctx, 574, TSqlParser.RULE_termination); + try { + this.state = 7079; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,931,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7073; + this.match(TSqlParser.ROLLBACK); + this.state = 7074; + this.match(TSqlParser.AFTER); + this.state = 7075; + localctx.seconds = this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7076; + this.match(TSqlParser.ROLLBACK); + this.state = 7077; + this.match(TSqlParser.IMMEDIATE); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 7078; + this.match(TSqlParser.NO_WAIT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_index; + return this; +} + +Drop_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_indexContext.prototype.constructor = Drop_indexContext; + +Drop_indexContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_indexContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Drop_indexContext.prototype.drop_relational_or_xml_or_spatial_index = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Drop_relational_or_xml_or_spatial_indexContext); + } else { + return this.getTypedRuleContext(Drop_relational_or_xml_or_spatial_indexContext,i); + } +}; + +Drop_indexContext.prototype.drop_backward_compatible_index = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Drop_backward_compatible_indexContext); + } else { + return this.getTypedRuleContext(Drop_backward_compatible_indexContext,i); + } +}; + +Drop_indexContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_indexContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_indexContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_indexContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_index(this); + } +}; + +Drop_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_index(this); + } +}; + +Drop_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_indexContext = Drop_indexContext; + +TSqlParser.prototype.drop_index = function() { + + var localctx = new Drop_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 576, TSqlParser.RULE_drop_index); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7081; + this.match(TSqlParser.DROP); + this.state = 7082; + this.match(TSqlParser.INDEX); + this.state = 7085; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7083; + this.match(TSqlParser.IF); + this.state = 7084; + this.match(TSqlParser.EXISTS); + } + + this.state = 7103; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,935,this._ctx); + switch(la_) { + case 1: + this.state = 7087; + this.drop_relational_or_xml_or_spatial_index(); + this.state = 7092; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7088; + this.match(TSqlParser.COMMA); + this.state = 7089; + this.drop_relational_or_xml_or_spatial_index(); + this.state = 7094; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 7095; + this.drop_backward_compatible_index(); + this.state = 7100; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7096; + this.match(TSqlParser.COMMA); + this.state = 7097; + this.drop_backward_compatible_index(); + this.state = 7102; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + } + this.state = 7106; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,936,this._ctx); + if(la_===1) { + this.state = 7105; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_relational_or_xml_or_spatial_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_relational_or_xml_or_spatial_index; + this.index_name = null; // IdContext + return this; +} + +Drop_relational_or_xml_or_spatial_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_relational_or_xml_or_spatial_indexContext.prototype.constructor = Drop_relational_or_xml_or_spatial_indexContext; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_relational_or_xml_or_spatial_index(this); + } +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_relational_or_xml_or_spatial_index(this); + } +}; + +Drop_relational_or_xml_or_spatial_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_relational_or_xml_or_spatial_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_relational_or_xml_or_spatial_indexContext = Drop_relational_or_xml_or_spatial_indexContext; + +TSqlParser.prototype.drop_relational_or_xml_or_spatial_index = function() { + + var localctx = new Drop_relational_or_xml_or_spatial_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 578, TSqlParser.RULE_drop_relational_or_xml_or_spatial_index); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7108; + localctx.index_name = this.id(); + this.state = 7109; + this.match(TSqlParser.ON); + this.state = 7110; + this.full_table_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_backward_compatible_indexContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_backward_compatible_index; + this.owner_name = null; // IdContext + this.table_or_view_name = null; // IdContext + this.index_name = null; // IdContext + return this; +} + +Drop_backward_compatible_indexContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_backward_compatible_indexContext.prototype.constructor = Drop_backward_compatible_indexContext; + +Drop_backward_compatible_indexContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_backward_compatible_indexContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_backward_compatible_indexContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_backward_compatible_index(this); + } +}; + +Drop_backward_compatible_indexContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_backward_compatible_index(this); + } +}; + +Drop_backward_compatible_indexContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_backward_compatible_index(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_backward_compatible_indexContext = Drop_backward_compatible_indexContext; + +TSqlParser.prototype.drop_backward_compatible_index = function() { + + var localctx = new Drop_backward_compatible_indexContext(this, this._ctx, this.state); + this.enterRule(localctx, 580, TSqlParser.RULE_drop_backward_compatible_index); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7115; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,937,this._ctx); + if(la_===1) { + this.state = 7112; + localctx.owner_name = this.id(); + this.state = 7113; + this.match(TSqlParser.DOT); + + } + this.state = 7117; + localctx.table_or_view_name = this.id(); + this.state = 7118; + this.match(TSqlParser.DOT); + this.state = 7119; + localctx.index_name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_procedureContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_procedure; + this.proc = null; // Token + return this; +} + +Drop_procedureContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_procedureContext.prototype.constructor = Drop_procedureContext; + +Drop_procedureContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_procedureContext.prototype.func_proc_name_schema = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Func_proc_name_schemaContext); + } else { + return this.getTypedRuleContext(Func_proc_name_schemaContext,i); + } +}; + +Drop_procedureContext.prototype.PROC = function() { + return this.getToken(TSqlParser.PROC, 0); +}; + +Drop_procedureContext.prototype.PROCEDURE = function() { + return this.getToken(TSqlParser.PROCEDURE, 0); +}; + +Drop_procedureContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_procedureContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_procedureContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_procedureContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_procedureContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_procedure(this); + } +}; + +Drop_procedureContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_procedure(this); + } +}; + +Drop_procedureContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_procedure(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_procedureContext = Drop_procedureContext; + +TSqlParser.prototype.drop_procedure = function() { + + var localctx = new Drop_procedureContext(this, this._ctx, this.state); + this.enterRule(localctx, 582, TSqlParser.RULE_drop_procedure); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7121; + this.match(TSqlParser.DROP); + this.state = 7122; + localctx.proc = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.PROC || _la===TSqlParser.PROCEDURE)) { + localctx.proc = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7125; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7123; + this.match(TSqlParser.IF); + this.state = 7124; + this.match(TSqlParser.EXISTS); + } + + this.state = 7127; + this.func_proc_name_schema(); + this.state = 7132; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7128; + this.match(TSqlParser.COMMA); + this.state = 7129; + this.func_proc_name_schema(); + this.state = 7134; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7136; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,940,this._ctx); + if(la_===1) { + this.state = 7135; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_trigger; + return this; +} + +Drop_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_triggerContext.prototype.constructor = Drop_triggerContext; + +Drop_triggerContext.prototype.drop_dml_trigger = function() { + return this.getTypedRuleContext(Drop_dml_triggerContext,0); +}; + +Drop_triggerContext.prototype.drop_ddl_trigger = function() { + return this.getTypedRuleContext(Drop_ddl_triggerContext,0); +}; + +Drop_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_trigger(this); + } +}; + +Drop_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_trigger(this); + } +}; + +Drop_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_triggerContext = Drop_triggerContext; + +TSqlParser.prototype.drop_trigger = function() { + + var localctx = new Drop_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 584, TSqlParser.RULE_drop_trigger); + try { + this.state = 7140; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,941,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7138; + this.drop_dml_trigger(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7139; + this.drop_ddl_trigger(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_dml_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_dml_trigger; + return this; +} + +Drop_dml_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_dml_triggerContext.prototype.constructor = Drop_dml_triggerContext; + +Drop_dml_triggerContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_dml_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Drop_dml_triggerContext.prototype.simple_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_nameContext); + } else { + return this.getTypedRuleContext(Simple_nameContext,i); + } +}; + +Drop_dml_triggerContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_dml_triggerContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_dml_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_dml_triggerContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_dml_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_dml_trigger(this); + } +}; + +Drop_dml_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_dml_trigger(this); + } +}; + +Drop_dml_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_dml_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_dml_triggerContext = Drop_dml_triggerContext; + +TSqlParser.prototype.drop_dml_trigger = function() { + + var localctx = new Drop_dml_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 586, TSqlParser.RULE_drop_dml_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7142; + this.match(TSqlParser.DROP); + this.state = 7143; + this.match(TSqlParser.TRIGGER); + this.state = 7146; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7144; + this.match(TSqlParser.IF); + this.state = 7145; + this.match(TSqlParser.EXISTS); + } + + this.state = 7148; + this.simple_name(); + this.state = 7153; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7149; + this.match(TSqlParser.COMMA); + this.state = 7150; + this.simple_name(); + this.state = 7155; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7157; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,944,this._ctx); + if(la_===1) { + this.state = 7156; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_ddl_triggerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_ddl_trigger; + return this; +} + +Drop_ddl_triggerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_ddl_triggerContext.prototype.constructor = Drop_ddl_triggerContext; + +Drop_ddl_triggerContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_ddl_triggerContext.prototype.TRIGGER = function() { + return this.getToken(TSqlParser.TRIGGER, 0); +}; + +Drop_ddl_triggerContext.prototype.simple_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_nameContext); + } else { + return this.getTypedRuleContext(Simple_nameContext,i); + } +}; + +Drop_ddl_triggerContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Drop_ddl_triggerContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Drop_ddl_triggerContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Drop_ddl_triggerContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Drop_ddl_triggerContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_ddl_triggerContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_ddl_triggerContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_ddl_triggerContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_ddl_triggerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_ddl_trigger(this); + } +}; + +Drop_ddl_triggerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_ddl_trigger(this); + } +}; + +Drop_ddl_triggerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_ddl_trigger(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_ddl_triggerContext = Drop_ddl_triggerContext; + +TSqlParser.prototype.drop_ddl_trigger = function() { + + var localctx = new Drop_ddl_triggerContext(this, this._ctx, this.state); + this.enterRule(localctx, 588, TSqlParser.RULE_drop_ddl_trigger); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7159; + this.match(TSqlParser.DROP); + this.state = 7160; + this.match(TSqlParser.TRIGGER); + this.state = 7163; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7161; + this.match(TSqlParser.IF); + this.state = 7162; + this.match(TSqlParser.EXISTS); + } + + this.state = 7165; + this.simple_name(); + this.state = 7170; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7166; + this.match(TSqlParser.COMMA); + this.state = 7167; + this.simple_name(); + this.state = 7172; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7173; + this.match(TSqlParser.ON); + this.state = 7177; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DATABASE: + this.state = 7174; + this.match(TSqlParser.DATABASE); + break; + case TSqlParser.ALL: + this.state = 7175; + this.match(TSqlParser.ALL); + this.state = 7176; + this.match(TSqlParser.SERVER); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7180; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,948,this._ctx); + if(la_===1) { + this.state = 7179; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_function; + return this; +} + +Drop_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_functionContext.prototype.constructor = Drop_functionContext; + +Drop_functionContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_functionContext.prototype.FUNCTION = function() { + return this.getToken(TSqlParser.FUNCTION, 0); +}; + +Drop_functionContext.prototype.func_proc_name_schema = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Func_proc_name_schemaContext); + } else { + return this.getTypedRuleContext(Func_proc_name_schemaContext,i); + } +}; + +Drop_functionContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_functionContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_functionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_functionContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_function(this); + } +}; + +Drop_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_function(this); + } +}; + +Drop_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_functionContext = Drop_functionContext; + +TSqlParser.prototype.drop_function = function() { + + var localctx = new Drop_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 590, TSqlParser.RULE_drop_function); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7182; + this.match(TSqlParser.DROP); + this.state = 7183; + this.match(TSqlParser.FUNCTION); + this.state = 7186; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7184; + this.match(TSqlParser.IF); + this.state = 7185; + this.match(TSqlParser.EXISTS); + } + + this.state = 7188; + this.func_proc_name_schema(); + this.state = 7193; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7189; + this.match(TSqlParser.COMMA); + this.state = 7190; + this.func_proc_name_schema(); + this.state = 7195; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7197; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,951,this._ctx); + if(la_===1) { + this.state = 7196; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_statisticsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_statistics; + this.name = null; // IdContext + return this; +} + +Drop_statisticsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_statisticsContext.prototype.constructor = Drop_statisticsContext; + +Drop_statisticsContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_statisticsContext.prototype.STATISTICS = function() { + return this.getToken(TSqlParser.STATISTICS, 0); +}; + +Drop_statisticsContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_statisticsContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Drop_statisticsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_statisticsContext.prototype.table_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_nameContext); + } else { + return this.getTypedRuleContext(Table_nameContext,i); + } +}; + +Drop_statisticsContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Drop_statisticsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_statistics(this); + } +}; + +Drop_statisticsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_statistics(this); + } +}; + +Drop_statisticsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_statistics(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_statisticsContext = Drop_statisticsContext; + +TSqlParser.prototype.drop_statistics = function() { + + var localctx = new Drop_statisticsContext(this, this._ctx, this.state); + this.enterRule(localctx, 592, TSqlParser.RULE_drop_statistics); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7199; + this.match(TSqlParser.DROP); + this.state = 7200; + this.match(TSqlParser.STATISTICS); + this.state = 7210; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7202; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7201; + this.match(TSqlParser.COMMA); + } + + this.state = 7207; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,953,this._ctx); + if(la_===1) { + this.state = 7204; + this.table_name(); + this.state = 7205; + this.match(TSqlParser.DOT); + + } + this.state = 7209; + localctx.name = this.id(); + this.state = 7212; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.BLOCKING_HIERARCHY || _la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0) || _la===TSqlParser.COMMA); + this.state = 7214; + this.match(TSqlParser.SEMI); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_table; + return this; +} + +Drop_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_tableContext.prototype.constructor = Drop_tableContext; + +Drop_tableContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_tableContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Drop_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Drop_tableContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_tableContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_tableContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_table(this); + } +}; + +Drop_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_table(this); + } +}; + +Drop_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_tableContext = Drop_tableContext; + +TSqlParser.prototype.drop_table = function() { + + var localctx = new Drop_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 594, TSqlParser.RULE_drop_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7216; + this.match(TSqlParser.DROP); + this.state = 7217; + this.match(TSqlParser.TABLE); + this.state = 7220; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7218; + this.match(TSqlParser.IF); + this.state = 7219; + this.match(TSqlParser.EXISTS); + } + + this.state = 7222; + this.table_name(); + this.state = 7224; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,956,this._ctx); + if(la_===1) { + this.state = 7223; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_viewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_view; + return this; +} + +Drop_viewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_viewContext.prototype.constructor = Drop_viewContext; + +Drop_viewContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_viewContext.prototype.VIEW = function() { + return this.getToken(TSqlParser.VIEW, 0); +}; + +Drop_viewContext.prototype.simple_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_nameContext); + } else { + return this.getTypedRuleContext(Simple_nameContext,i); + } +}; + +Drop_viewContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_viewContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_viewContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Drop_viewContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Drop_viewContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_view(this); + } +}; + +Drop_viewContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_view(this); + } +}; + +Drop_viewContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_view(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_viewContext = Drop_viewContext; + +TSqlParser.prototype.drop_view = function() { + + var localctx = new Drop_viewContext(this, this._ctx, this.state); + this.enterRule(localctx, 596, TSqlParser.RULE_drop_view); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7226; + this.match(TSqlParser.DROP); + this.state = 7227; + this.match(TSqlParser.VIEW); + this.state = 7230; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7228; + this.match(TSqlParser.IF); + this.state = 7229; + this.match(TSqlParser.EXISTS); + } + + this.state = 7232; + this.simple_name(); + this.state = 7237; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7233; + this.match(TSqlParser.COMMA); + this.state = 7234; + this.simple_name(); + this.state = 7239; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7241; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,959,this._ctx); + if(la_===1) { + this.state = 7240; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_type; + this.name = null; // Simple_nameContext + return this; +} + +Create_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_typeContext.prototype.constructor = Create_typeContext; + +Create_typeContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Create_typeContext.prototype.simple_name = function() { + return this.getTypedRuleContext(Simple_nameContext,0); +}; + +Create_typeContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_typeContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Create_typeContext.prototype.default_value = function() { + return this.getTypedRuleContext(Default_valueContext,0); +}; + +Create_typeContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Create_typeContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Create_typeContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Create_typeContext.prototype.column_def_table_constraints = function() { + return this.getTypedRuleContext(Column_def_table_constraintsContext,0); +}; + +Create_typeContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Create_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_type(this); + } +}; + +Create_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_type(this); + } +}; + +Create_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_typeContext = Create_typeContext; + +TSqlParser.prototype.create_type = function() { + + var localctx = new Create_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 598, TSqlParser.RULE_create_type); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7243; + this.match(TSqlParser.CREATE); + this.state = 7244; + this.match(TSqlParser.TYPE); + this.state = 7245; + localctx.name = this.simple_name(); + this.state = 7250; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 7246; + this.match(TSqlParser.FROM); + this.state = 7247; + this.data_type(); + this.state = 7248; + this.default_value(); + } + + this.state = 7258; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 7252; + this.match(TSqlParser.AS); + this.state = 7253; + this.match(TSqlParser.TABLE); + this.state = 7254; + this.match(TSqlParser.LR_BRACKET); + this.state = 7255; + this.column_def_table_constraints(); + this.state = 7256; + this.match(TSqlParser.RR_BRACKET); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Drop_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_drop_type; + this.name = null; // Simple_nameContext + return this; +} + +Drop_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Drop_typeContext.prototype.constructor = Drop_typeContext; + +Drop_typeContext.prototype.DROP = function() { + return this.getToken(TSqlParser.DROP, 0); +}; + +Drop_typeContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Drop_typeContext.prototype.simple_name = function() { + return this.getTypedRuleContext(Simple_nameContext,0); +}; + +Drop_typeContext.prototype.IF = function() { + return this.getToken(TSqlParser.IF, 0); +}; + +Drop_typeContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +Drop_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDrop_type(this); + } +}; + +Drop_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDrop_type(this); + } +}; + +Drop_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDrop_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Drop_typeContext = Drop_typeContext; + +TSqlParser.prototype.drop_type = function() { + + var localctx = new Drop_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 600, TSqlParser.RULE_drop_type); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7260; + this.match(TSqlParser.DROP); + this.state = 7261; + this.match(TSqlParser.TYPE); + this.state = 7264; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.IF) { + this.state = 7262; + this.match(TSqlParser.IF); + this.state = 7263; + this.match(TSqlParser.EXISTS); + } + + this.state = 7266; + localctx.name = this.simple_name(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Rowset_function_limitedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_rowset_function_limited; + return this; +} + +Rowset_function_limitedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Rowset_function_limitedContext.prototype.constructor = Rowset_function_limitedContext; + +Rowset_function_limitedContext.prototype.openquery = function() { + return this.getTypedRuleContext(OpenqueryContext,0); +}; + +Rowset_function_limitedContext.prototype.opendatasource = function() { + return this.getTypedRuleContext(OpendatasourceContext,0); +}; + +Rowset_function_limitedContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRowset_function_limited(this); + } +}; + +Rowset_function_limitedContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRowset_function_limited(this); + } +}; + +Rowset_function_limitedContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRowset_function_limited(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Rowset_function_limitedContext = Rowset_function_limitedContext; + +TSqlParser.prototype.rowset_function_limited = function() { + + var localctx = new Rowset_function_limitedContext(this, this._ctx, this.state); + this.enterRule(localctx, 602, TSqlParser.RULE_rowset_function_limited); + try { + this.state = 7270; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.OPENQUERY: + this.enterOuterAlt(localctx, 1); + this.state = 7268; + this.openquery(); + break; + case TSqlParser.OPENDATASOURCE: + this.enterOuterAlt(localctx, 2); + this.state = 7269; + this.opendatasource(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OpenqueryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_openquery; + this.linked_server = null; // IdContext + this.query = null; // Token + return this; +} + +OpenqueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OpenqueryContext.prototype.constructor = OpenqueryContext; + +OpenqueryContext.prototype.OPENQUERY = function() { + return this.getToken(TSqlParser.OPENQUERY, 0); +}; + +OpenqueryContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +OpenqueryContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +OpenqueryContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +OpenqueryContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +OpenqueryContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +OpenqueryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOpenquery(this); + } +}; + +OpenqueryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOpenquery(this); + } +}; + +OpenqueryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOpenquery(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.OpenqueryContext = OpenqueryContext; + +TSqlParser.prototype.openquery = function() { + + var localctx = new OpenqueryContext(this, this._ctx, this.state); + this.enterRule(localctx, 604, TSqlParser.RULE_openquery); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7272; + this.match(TSqlParser.OPENQUERY); + this.state = 7273; + this.match(TSqlParser.LR_BRACKET); + this.state = 7274; + localctx.linked_server = this.id(); + this.state = 7275; + this.match(TSqlParser.COMMA); + this.state = 7276; + localctx.query = this.match(TSqlParser.STRING); + this.state = 7277; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OpendatasourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_opendatasource; + this.provider = null; // Token + this.init = null; // Token + this.database = null; // IdContext + this.scheme = null; // IdContext + this.table = null; // IdContext + return this; +} + +OpendatasourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OpendatasourceContext.prototype.constructor = OpendatasourceContext; + +OpendatasourceContext.prototype.OPENDATASOURCE = function() { + return this.getToken(TSqlParser.OPENDATASOURCE, 0); +}; + +OpendatasourceContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +OpendatasourceContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +OpendatasourceContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +OpendatasourceContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +OpendatasourceContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +OpendatasourceContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +OpendatasourceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOpendatasource(this); + } +}; + +OpendatasourceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOpendatasource(this); + } +}; + +OpendatasourceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOpendatasource(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.OpendatasourceContext = OpendatasourceContext; + +TSqlParser.prototype.opendatasource = function() { + + var localctx = new OpendatasourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 606, TSqlParser.RULE_opendatasource); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7279; + this.match(TSqlParser.OPENDATASOURCE); + this.state = 7280; + this.match(TSqlParser.LR_BRACKET); + this.state = 7281; + localctx.provider = this.match(TSqlParser.STRING); + this.state = 7282; + this.match(TSqlParser.COMMA); + this.state = 7283; + localctx.init = this.match(TSqlParser.STRING); + this.state = 7284; + this.match(TSqlParser.RR_BRACKET); + this.state = 7285; + this.match(TSqlParser.DOT); + this.state = 7287; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 7286; + localctx.database = this.id(); + } + + this.state = 7289; + this.match(TSqlParser.DOT); + this.state = 7291; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 7290; + localctx.scheme = this.id(); + } + + this.state = 7293; + this.match(TSqlParser.DOT); + + this.state = 7294; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_statement; + this.xml_namespace_uri = null; // Token + return this; +} + +Declare_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_statementContext.prototype.constructor = Declare_statementContext; + +Declare_statementContext.prototype.DECLARE = function() { + return this.getToken(TSqlParser.DECLARE, 0); +}; + +Declare_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Declare_statementContext.prototype.table_type_definition = function() { + return this.getTypedRuleContext(Table_type_definitionContext,0); +}; + +Declare_statementContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Declare_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Declare_statementContext.prototype.declare_local = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Declare_localContext); + } else { + return this.getTypedRuleContext(Declare_localContext,i); + } +}; + +Declare_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Declare_statementContext.prototype.xml_type_definition = function() { + return this.getTypedRuleContext(Xml_type_definitionContext,0); +}; + +Declare_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Declare_statementContext.prototype.XMLNAMESPACES = function() { + return this.getToken(TSqlParser.XMLNAMESPACES, 0); +}; + +Declare_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Declare_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Declare_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Declare_statementContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Declare_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_statement(this); + } +}; + +Declare_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_statement(this); + } +}; + +Declare_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_statementContext = Declare_statementContext; + +TSqlParser.prototype.declare_statement = function() { + + var localctx = new Declare_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 608, TSqlParser.RULE_declare_statement); + var _la = 0; // Token type + try { + this.state = 7339; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,974,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7296; + this.match(TSqlParser.DECLARE); + this.state = 7297; + this.match(TSqlParser.LOCAL_ID); + this.state = 7299; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 7298; + this.match(TSqlParser.AS); + } + + this.state = 7301; + this.table_type_definition(); + this.state = 7303; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,967,this._ctx); + if(la_===1) { + this.state = 7302; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7305; + this.match(TSqlParser.DECLARE); + this.state = 7306; + this.declare_local(); + this.state = 7311; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7307; + this.match(TSqlParser.COMMA); + this.state = 7308; + this.declare_local(); + this.state = 7313; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7315; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,969,this._ctx); + if(la_===1) { + this.state = 7314; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 7317; + this.match(TSqlParser.DECLARE); + this.state = 7318; + this.match(TSqlParser.LOCAL_ID); + this.state = 7320; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 7319; + this.match(TSqlParser.AS); + } + + this.state = 7322; + this.xml_type_definition(); + this.state = 7324; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,971,this._ctx); + if(la_===1) { + this.state = 7323; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 7326; + this.match(TSqlParser.WITH); + this.state = 7327; + this.match(TSqlParser.XMLNAMESPACES); + this.state = 7328; + this.match(TSqlParser.LR_BRACKET); + this.state = 7329; + localctx.xml_namespace_uri = this.match(TSqlParser.STRING); + this.state = 7331; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7330; + this.match(TSqlParser.COMMA); + } + + this.state = 7333; + this.match(TSqlParser.AS); + this.state = 7334; + this.id(); + this.state = 7335; + this.match(TSqlParser.RR_BRACKET); + this.state = 7337; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,973,this._ctx); + if(la_===1) { + this.state = 7336; + this.match(TSqlParser.SEMI); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Cursor_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_cursor_statement; + return this; +} + +Cursor_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Cursor_statementContext.prototype.constructor = Cursor_statementContext; + +Cursor_statementContext.prototype.CLOSE = function() { + return this.getToken(TSqlParser.CLOSE, 0); +}; + +Cursor_statementContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Cursor_statementContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Cursor_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Cursor_statementContext.prototype.DEALLOCATE = function() { + return this.getToken(TSqlParser.DEALLOCATE, 0); +}; + +Cursor_statementContext.prototype.CURSOR = function() { + return this.getToken(TSqlParser.CURSOR, 0); +}; + +Cursor_statementContext.prototype.declare_cursor = function() { + return this.getTypedRuleContext(Declare_cursorContext,0); +}; + +Cursor_statementContext.prototype.fetch_cursor = function() { + return this.getTypedRuleContext(Fetch_cursorContext,0); +}; + +Cursor_statementContext.prototype.OPEN = function() { + return this.getToken(TSqlParser.OPEN, 0); +}; + +Cursor_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCursor_statement(this); + } +}; + +Cursor_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCursor_statement(this); + } +}; + +Cursor_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCursor_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Cursor_statementContext = Cursor_statementContext; + +TSqlParser.prototype.cursor_statement = function() { + + var localctx = new Cursor_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 610, TSqlParser.RULE_cursor_statement); + var _la = 0; // Token type + try { + this.state = 7370; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CLOSE: + this.enterOuterAlt(localctx, 1); + this.state = 7341; + this.match(TSqlParser.CLOSE); + this.state = 7343; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,975,this._ctx); + if(la_===1) { + this.state = 7342; + this.match(TSqlParser.GLOBAL); + + } + this.state = 7345; + this.cursor_name(); + this.state = 7347; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,976,this._ctx); + if(la_===1) { + this.state = 7346; + this.match(TSqlParser.SEMI); + + } + break; + case TSqlParser.DEALLOCATE: + this.enterOuterAlt(localctx, 2); + this.state = 7349; + this.match(TSqlParser.DEALLOCATE); + this.state = 7351; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,977,this._ctx); + if(la_===1) { + this.state = 7350; + this.match(TSqlParser.GLOBAL); + + } + this.state = 7354; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CURSOR) { + this.state = 7353; + this.match(TSqlParser.CURSOR); + } + + this.state = 7356; + this.cursor_name(); + this.state = 7358; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,979,this._ctx); + if(la_===1) { + this.state = 7357; + this.match(TSqlParser.SEMI); + + } + break; + case TSqlParser.DECLARE: + this.enterOuterAlt(localctx, 3); + this.state = 7360; + this.declare_cursor(); + break; + case TSqlParser.FETCH: + this.enterOuterAlt(localctx, 4); + this.state = 7361; + this.fetch_cursor(); + break; + case TSqlParser.OPEN: + this.enterOuterAlt(localctx, 5); + this.state = 7362; + this.match(TSqlParser.OPEN); + this.state = 7364; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,980,this._ctx); + if(la_===1) { + this.state = 7363; + this.match(TSqlParser.GLOBAL); + + } + this.state = 7366; + this.cursor_name(); + this.state = 7368; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,981,this._ctx); + if(la_===1) { + this.state = 7367; + this.match(TSqlParser.SEMI); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_databaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_database; + this.database_name = null; // IdContext + this.file_or_filegroup = null; // Token + this.logical_device_name = null; // IdContext + this.backup_set_name = null; // IdContext + this.medianame = null; // Token + this.stats_percent = null; // Token + this.encryptor_name = null; // IdContext + return this; +} + +Backup_databaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_databaseContext.prototype.constructor = Backup_databaseContext; + +Backup_databaseContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_databaseContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Backup_databaseContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Backup_databaseContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Backup_databaseContext.prototype.READ_WRITE_FILEGROUPS = function() { + return this.getToken(TSqlParser.READ_WRITE_FILEGROUPS, 0); +}; + +Backup_databaseContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_databaseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Backup_databaseContext.prototype.FILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE); + } else { + return this.getToken(TSqlParser.FILE, i); + } +}; + + +Backup_databaseContext.prototype.FILEGROUP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILEGROUP); + } else { + return this.getToken(TSqlParser.FILEGROUP, i); + } +}; + + +Backup_databaseContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_databaseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Backup_databaseContext.prototype.DISK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DISK); + } else { + return this.getToken(TSqlParser.DISK, i); + } +}; + + +Backup_databaseContext.prototype.TAPE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TAPE); + } else { + return this.getToken(TSqlParser.TAPE, i); + } +}; + + +Backup_databaseContext.prototype.URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.URL); + } else { + return this.getToken(TSqlParser.URL, i); + } +}; + + +Backup_databaseContext.prototype.MIRROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MIRROR); + } else { + return this.getToken(TSqlParser.MIRROR, i); + } +}; + + +Backup_databaseContext.prototype.DIFFERENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DIFFERENTIAL); + } else { + return this.getToken(TSqlParser.DIFFERENTIAL, i); + } +}; + + +Backup_databaseContext.prototype.COPY_ONLY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COPY_ONLY); + } else { + return this.getToken(TSqlParser.COPY_ONLY, i); + } +}; + + +Backup_databaseContext.prototype.DESCRIPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DESCRIPTION); + } else { + return this.getToken(TSqlParser.DESCRIPTION, i); + } +}; + + +Backup_databaseContext.prototype.NAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NAME); + } else { + return this.getToken(TSqlParser.NAME, i); + } +}; + + +Backup_databaseContext.prototype.CREDENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CREDENTIAL); + } else { + return this.getToken(TSqlParser.CREDENTIAL, i); + } +}; + + +Backup_databaseContext.prototype.FILE_SNAPSHOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE_SNAPSHOT); + } else { + return this.getToken(TSqlParser.FILE_SNAPSHOT, i); + } +}; + + +Backup_databaseContext.prototype.MEDIADESCRIPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIADESCRIPTION); + } else { + return this.getToken(TSqlParser.MEDIADESCRIPTION, i); + } +}; + + +Backup_databaseContext.prototype.MEDIANAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIANAME); + } else { + return this.getToken(TSqlParser.MEDIANAME, i); + } +}; + + +Backup_databaseContext.prototype.BLOCKSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BLOCKSIZE); + } else { + return this.getToken(TSqlParser.BLOCKSIZE, i); + } +}; + + +Backup_databaseContext.prototype.BUFFERCOUNT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BUFFERCOUNT); + } else { + return this.getToken(TSqlParser.BUFFERCOUNT, i); + } +}; + + +Backup_databaseContext.prototype.MAXTRANSFER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAXTRANSFER); + } else { + return this.getToken(TSqlParser.MAXTRANSFER, i); + } +}; + + +Backup_databaseContext.prototype.RESTART = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESTART); + } else { + return this.getToken(TSqlParser.RESTART, i); + } +}; + + +Backup_databaseContext.prototype.STATS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATS); + } else { + return this.getToken(TSqlParser.STATS, i); + } +}; + + +Backup_databaseContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Backup_databaseContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Backup_databaseContext.prototype.ALGORITHM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALGORITHM); + } else { + return this.getToken(TSqlParser.ALGORITHM, i); + } +}; + + +Backup_databaseContext.prototype.SERVER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVER); + } else { + return this.getToken(TSqlParser.SERVER, i); + } +}; + + +Backup_databaseContext.prototype.CERTIFICATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CERTIFICATE); + } else { + return this.getToken(TSqlParser.CERTIFICATE, i); + } +}; + + +Backup_databaseContext.prototype.COMPRESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMPRESSION); + } else { + return this.getToken(TSqlParser.COMPRESSION, i); + } +}; + + +Backup_databaseContext.prototype.NO_COMPRESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_COMPRESSION); + } else { + return this.getToken(TSqlParser.NO_COMPRESSION, i); + } +}; + + +Backup_databaseContext.prototype.NOINIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOINIT); + } else { + return this.getToken(TSqlParser.NOINIT, i); + } +}; + + +Backup_databaseContext.prototype.INIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INIT); + } else { + return this.getToken(TSqlParser.INIT, i); + } +}; + + +Backup_databaseContext.prototype.NOSKIP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOSKIP); + } else { + return this.getToken(TSqlParser.NOSKIP, i); + } +}; + + +Backup_databaseContext.prototype.SKIP_KEYWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SKIP_KEYWORD); + } else { + return this.getToken(TSqlParser.SKIP_KEYWORD, i); + } +}; + + +Backup_databaseContext.prototype.NOFORMAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOFORMAT); + } else { + return this.getToken(TSqlParser.NOFORMAT, i); + } +}; + + +Backup_databaseContext.prototype.FORMAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FORMAT); + } else { + return this.getToken(TSqlParser.FORMAT, i); + } +}; + + +Backup_databaseContext.prototype.NO_CHECKSUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_CHECKSUM); + } else { + return this.getToken(TSqlParser.NO_CHECKSUM, i); + } +}; + + +Backup_databaseContext.prototype.CHECKSUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CHECKSUM); + } else { + return this.getToken(TSqlParser.CHECKSUM, i); + } +}; + + +Backup_databaseContext.prototype.STOP_ON_ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STOP_ON_ERROR); + } else { + return this.getToken(TSqlParser.STOP_ON_ERROR, i); + } +}; + + +Backup_databaseContext.prototype.CONTINUE_AFTER_ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTINUE_AFTER_ERROR); + } else { + return this.getToken(TSqlParser.CONTINUE_AFTER_ERROR, i); + } +}; + + +Backup_databaseContext.prototype.REWIND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REWIND); + } else { + return this.getToken(TSqlParser.REWIND, i); + } +}; + + +Backup_databaseContext.prototype.NOREWIND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOREWIND); + } else { + return this.getToken(TSqlParser.NOREWIND, i); + } +}; + + +Backup_databaseContext.prototype.LOAD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOAD); + } else { + return this.getToken(TSqlParser.LOAD, i); + } +}; + + +Backup_databaseContext.prototype.NOUNLOAD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOUNLOAD); + } else { + return this.getToken(TSqlParser.NOUNLOAD, i); + } +}; + + +Backup_databaseContext.prototype.AES_128 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_128); + } else { + return this.getToken(TSqlParser.AES_128, i); + } +}; + + +Backup_databaseContext.prototype.AES_192 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_192); + } else { + return this.getToken(TSqlParser.AES_192, i); + } +}; + + +Backup_databaseContext.prototype.AES_256 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_256); + } else { + return this.getToken(TSqlParser.AES_256, i); + } +}; + + +Backup_databaseContext.prototype.TRIPLE_DES_3KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TRIPLE_DES_3KEY); + } else { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, i); + } +}; + + +Backup_databaseContext.prototype.EXPIREDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EXPIREDATE); + } else { + return this.getToken(TSqlParser.EXPIREDATE, i); + } +}; + + +Backup_databaseContext.prototype.RETAINDAYS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RETAINDAYS); + } else { + return this.getToken(TSqlParser.RETAINDAYS, i); + } +}; + + +Backup_databaseContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Backup_databaseContext.prototype.ASYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASYMMETRIC); + } else { + return this.getToken(TSqlParser.ASYMMETRIC, i); + } +}; + + +Backup_databaseContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Backup_databaseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_database(this); + } +}; + +Backup_databaseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_database(this); + } +}; + +Backup_databaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_database(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_databaseContext = Backup_databaseContext; + +TSqlParser.prototype.backup_database = function() { + + var localctx = new Backup_databaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 612, TSqlParser.RULE_backup_database); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7372; + this.match(TSqlParser.BACKUP); + this.state = 7373; + this.match(TSqlParser.DATABASE); + + this.state = 7374; + localctx.database_name = this.id(); + this.state = 7387; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.READ_WRITE_FILEGROUPS) { + this.state = 7375; + this.match(TSqlParser.READ_WRITE_FILEGROUPS); + this.state = 7384; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,984,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7377; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7376; + this.match(TSqlParser.COMMA); + } + + this.state = 7379; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FILE || _la===TSqlParser.FILEGROUP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7380; + this.match(TSqlParser.EQUAL); + this.state = 7381; + localctx.file_or_filegroup = this.match(TSqlParser.STRING); + } + this.state = 7386; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,984,this._ctx); + } + + } + + this.state = 7397; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FILE || _la===TSqlParser.FILEGROUP || _la===TSqlParser.COMMA) { + this.state = 7390; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7389; + this.match(TSqlParser.COMMA); + } + + this.state = 7392; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FILE || _la===TSqlParser.FILEGROUP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7393; + this.match(TSqlParser.EQUAL); + this.state = 7394; + localctx.file_or_filegroup = this.match(TSqlParser.STRING); + this.state = 7399; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7423; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,993,this._ctx); + switch(la_) { + case 1: + this.state = 7400; + this.match(TSqlParser.TO); + this.state = 7405; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7402; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7401; + this.match(TSqlParser.COMMA); + } + + this.state = 7404; + localctx.logical_device_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7407; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,989, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.state = 7409; + this.match(TSqlParser.TO); + this.state = 7419; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7411; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7410; + this.match(TSqlParser.COMMA); + } + + this.state = 7413; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7414; + this.match(TSqlParser.EQUAL); + this.state = 7417; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7415; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7416; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7421; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL || _la===TSqlParser.COMMA); + break; + + } + this.state = 7458; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1001,this._ctx); + if(la_===1) { + this.state = 7435; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7425; + this.match(TSqlParser.MIRROR); + this.state = 7426; + this.match(TSqlParser.TO); + this.state = 7431; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7428; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7427; + this.match(TSqlParser.COMMA); + } + + this.state = 7430; + localctx.logical_device_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7433; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,995, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 7437; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.MIRROR); + + } else if(la_===2) { + this.state = 7454; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7439; + this.match(TSqlParser.MIRROR); + this.state = 7440; + this.match(TSqlParser.TO); + this.state = 7450; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7442; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7441; + this.match(TSqlParser.COMMA); + } + + this.state = 7444; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7445; + this.match(TSqlParser.EQUAL); + this.state = 7448; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7446; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7447; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7452; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL || _la===TSqlParser.COMMA); + this.state = 7456; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.MIRROR); + + } + this.state = 7620; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1037,this._ctx); + if(la_===1) { + this.state = 7460; + this.match(TSqlParser.WITH); + this.state = 7617; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1036,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7615; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1035,this._ctx); + switch(la_) { + case 1: + this.state = 7462; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7461; + this.match(TSqlParser.COMMA); + } + + this.state = 7464; + this.match(TSqlParser.DIFFERENTIAL); + break; + + case 2: + this.state = 7466; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7465; + this.match(TSqlParser.COMMA); + } + + this.state = 7468; + this.match(TSqlParser.COPY_ONLY); + break; + + case 3: + this.state = 7470; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7469; + this.match(TSqlParser.COMMA); + } + + this.state = 7472; + _la = this._input.LA(1); + if(!(_la===TSqlParser.COMPRESSION || _la===TSqlParser.NO_COMPRESSION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 7474; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7473; + this.match(TSqlParser.COMMA); + } + + this.state = 7476; + this.match(TSqlParser.DESCRIPTION); + this.state = 7477; + this.match(TSqlParser.EQUAL); + this.state = 7480; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7478; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7479; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 5: + this.state = 7483; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7482; + this.match(TSqlParser.COMMA); + } + + this.state = 7485; + this.match(TSqlParser.NAME); + this.state = 7486; + this.match(TSqlParser.EQUAL); + this.state = 7487; + localctx.backup_set_name = this.id(); + break; + + case 6: + this.state = 7489; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7488; + this.match(TSqlParser.COMMA); + } + + this.state = 7491; + this.match(TSqlParser.CREDENTIAL); + break; + + case 7: + this.state = 7493; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7492; + this.match(TSqlParser.COMMA); + } + + this.state = 7495; + this.match(TSqlParser.FILE_SNAPSHOT); + break; + + case 8: + this.state = 7497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7496; + this.match(TSqlParser.COMMA); + } + + this.state = 7511; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EXPIREDATE: + this.state = 7499; + this.match(TSqlParser.EXPIREDATE); + this.state = 7500; + this.match(TSqlParser.EQUAL); + this.state = 7503; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7501; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7502; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.RETAINDAYS: + this.state = 7505; + this.match(TSqlParser.RETAINDAYS); + this.state = 7506; + this.match(TSqlParser.EQUAL); + this.state = 7509; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7507; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7508; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 9: + this.state = 7514; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7513; + this.match(TSqlParser.COMMA); + } + + this.state = 7516; + _la = this._input.LA(1); + if(!(_la===TSqlParser.INIT || _la===TSqlParser.NOINIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 10: + this.state = 7518; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7517; + this.match(TSqlParser.COMMA); + } + + this.state = 7520; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOSKIP || _la===TSqlParser.SKIP_KEYWORD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 11: + this.state = 7522; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7521; + this.match(TSqlParser.COMMA); + } + + this.state = 7524; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOFORMAT || _la===TSqlParser.FORMAT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 12: + this.state = 7526; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7525; + this.match(TSqlParser.COMMA); + } + + this.state = 7528; + this.match(TSqlParser.MEDIADESCRIPTION); + this.state = 7529; + this.match(TSqlParser.EQUAL); + this.state = 7532; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7530; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7531; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 13: + this.state = 7535; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7534; + this.match(TSqlParser.COMMA); + } + + this.state = 7537; + this.match(TSqlParser.MEDIANAME); + this.state = 7538; + this.match(TSqlParser.EQUAL); + + this.state = 7539; + localctx.medianame = this.match(TSqlParser.STRING); + break; + + case 14: + this.state = 7541; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7540; + this.match(TSqlParser.COMMA); + } + + this.state = 7543; + this.match(TSqlParser.BLOCKSIZE); + this.state = 7544; + this.match(TSqlParser.EQUAL); + this.state = 7547; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7545; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7546; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 15: + this.state = 7550; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7549; + this.match(TSqlParser.COMMA); + } + + this.state = 7552; + this.match(TSqlParser.BUFFERCOUNT); + this.state = 7553; + this.match(TSqlParser.EQUAL); + this.state = 7556; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7554; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7555; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 16: + this.state = 7559; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7558; + this.match(TSqlParser.COMMA); + } + + this.state = 7561; + this.match(TSqlParser.MAXTRANSFER); + this.state = 7562; + this.match(TSqlParser.EQUAL); + this.state = 7565; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7563; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7564; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 17: + this.state = 7568; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7567; + this.match(TSqlParser.COMMA); + } + + this.state = 7570; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NO_CHECKSUM || _la===TSqlParser.CHECKSUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 18: + this.state = 7572; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7571; + this.match(TSqlParser.COMMA); + } + + this.state = 7574; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTINUE_AFTER_ERROR || _la===TSqlParser.STOP_ON_ERROR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 19: + this.state = 7576; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7575; + this.match(TSqlParser.COMMA); + } + + this.state = 7578; + this.match(TSqlParser.RESTART); + break; + + case 20: + this.state = 7580; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7579; + this.match(TSqlParser.COMMA); + } + + this.state = 7582; + this.match(TSqlParser.STATS); + this.state = 7585; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EQUAL) { + this.state = 7583; + this.match(TSqlParser.EQUAL); + this.state = 7584; + localctx.stats_percent = this.match(TSqlParser.DECIMAL); + } + + break; + + case 21: + this.state = 7588; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7587; + this.match(TSqlParser.COMMA); + } + + this.state = 7590; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOREWIND || _la===TSqlParser.REWIND)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 22: + this.state = 7592; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7591; + this.match(TSqlParser.COMMA); + } + + this.state = 7594; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOAD || _la===TSqlParser.NOUNLOAD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 23: + this.state = 7596; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7595; + this.match(TSqlParser.COMMA); + } + + this.state = 7598; + this.match(TSqlParser.ENCRYPTION); + this.state = 7599; + this.match(TSqlParser.LR_BRACKET); + this.state = 7600; + this.match(TSqlParser.ALGORITHM); + this.state = 7601; + this.match(TSqlParser.EQUAL); + this.state = 7602; + _la = this._input.LA(1); + if(!(((((_la - 386)) & ~0x1f) == 0 && ((1 << (_la - 386)) & ((1 << (TSqlParser.AES_128 - 386)) | (1 << (TSqlParser.AES_192 - 386)) | (1 << (TSqlParser.AES_256 - 386)))) !== 0) || _la===TSqlParser.TRIPLE_DES_3KEY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7603; + this.match(TSqlParser.COMMA); + this.state = 7604; + this.match(TSqlParser.SERVER); + this.state = 7605; + this.match(TSqlParser.CERTIFICATE); + this.state = 7606; + this.match(TSqlParser.EQUAL); + this.state = 7613; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1034,this._ctx); + switch(la_) { + case 1: + this.state = 7607; + localctx.encryptor_name = this.id(); + break; + + case 2: + this.state = 7608; + this.match(TSqlParser.SERVER); + this.state = 7609; + this.match(TSqlParser.ASYMMETRIC); + this.state = 7610; + this.match(TSqlParser.KEY); + this.state = 7611; + this.match(TSqlParser.EQUAL); + this.state = 7612; + localctx.encryptor_name = this.id(); + break; + + } + break; + + } + } + this.state = 7619; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1036,this._ctx); + } + + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_logContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_log; + this.database_name = null; // IdContext + this.logical_device_name = null; // IdContext + this.backup_set_name = null; // IdContext + this.medianame = null; // Token + this.stats_percent = null; // Token + this.undo_file_name = null; // Token + this.encryptor_name = null; // IdContext + return this; +} + +Backup_logContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_logContext.prototype.constructor = Backup_logContext; + +Backup_logContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_logContext.prototype.LOG = function() { + return this.getToken(TSqlParser.LOG, 0); +}; + +Backup_logContext.prototype.TO = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TO); + } else { + return this.getToken(TSqlParser.TO, i); + } +}; + + +Backup_logContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Backup_logContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Backup_logContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_logContext.prototype.DISK = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DISK); + } else { + return this.getToken(TSqlParser.DISK, i); + } +}; + + +Backup_logContext.prototype.TAPE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TAPE); + } else { + return this.getToken(TSqlParser.TAPE, i); + } +}; + + +Backup_logContext.prototype.URL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.URL); + } else { + return this.getToken(TSqlParser.URL, i); + } +}; + + +Backup_logContext.prototype.MIRROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MIRROR); + } else { + return this.getToken(TSqlParser.MIRROR, i); + } +}; + + +Backup_logContext.prototype.DIFFERENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DIFFERENTIAL); + } else { + return this.getToken(TSqlParser.DIFFERENTIAL, i); + } +}; + + +Backup_logContext.prototype.COPY_ONLY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COPY_ONLY); + } else { + return this.getToken(TSqlParser.COPY_ONLY, i); + } +}; + + +Backup_logContext.prototype.DESCRIPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DESCRIPTION); + } else { + return this.getToken(TSqlParser.DESCRIPTION, i); + } +}; + + +Backup_logContext.prototype.NAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NAME); + } else { + return this.getToken(TSqlParser.NAME, i); + } +}; + + +Backup_logContext.prototype.CREDENTIAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CREDENTIAL); + } else { + return this.getToken(TSqlParser.CREDENTIAL, i); + } +}; + + +Backup_logContext.prototype.FILE_SNAPSHOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE_SNAPSHOT); + } else { + return this.getToken(TSqlParser.FILE_SNAPSHOT, i); + } +}; + + +Backup_logContext.prototype.MEDIADESCRIPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIADESCRIPTION); + } else { + return this.getToken(TSqlParser.MEDIADESCRIPTION, i); + } +}; + + +Backup_logContext.prototype.MEDIANAME = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MEDIANAME); + } else { + return this.getToken(TSqlParser.MEDIANAME, i); + } +}; + + +Backup_logContext.prototype.BLOCKSIZE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BLOCKSIZE); + } else { + return this.getToken(TSqlParser.BLOCKSIZE, i); + } +}; + + +Backup_logContext.prototype.BUFFERCOUNT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BUFFERCOUNT); + } else { + return this.getToken(TSqlParser.BUFFERCOUNT, i); + } +}; + + +Backup_logContext.prototype.MAXTRANSFER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.MAXTRANSFER); + } else { + return this.getToken(TSqlParser.MAXTRANSFER, i); + } +}; + + +Backup_logContext.prototype.RESTART = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RESTART); + } else { + return this.getToken(TSqlParser.RESTART, i); + } +}; + + +Backup_logContext.prototype.STATS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STATS); + } else { + return this.getToken(TSqlParser.STATS, i); + } +}; + + +Backup_logContext.prototype.NO_TRUNCATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_TRUNCATE); + } else { + return this.getToken(TSqlParser.NO_TRUNCATE, i); + } +}; + + +Backup_logContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Backup_logContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Backup_logContext.prototype.ALGORITHM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALGORITHM); + } else { + return this.getToken(TSqlParser.ALGORITHM, i); + } +}; + + +Backup_logContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Backup_logContext.prototype.SERVER = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVER); + } else { + return this.getToken(TSqlParser.SERVER, i); + } +}; + + +Backup_logContext.prototype.CERTIFICATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CERTIFICATE); + } else { + return this.getToken(TSqlParser.CERTIFICATE, i); + } +}; + + +Backup_logContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_logContext.prototype.COMPRESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMPRESSION); + } else { + return this.getToken(TSqlParser.COMPRESSION, i); + } +}; + + +Backup_logContext.prototype.NO_COMPRESSION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_COMPRESSION); + } else { + return this.getToken(TSqlParser.NO_COMPRESSION, i); + } +}; + + +Backup_logContext.prototype.NOINIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOINIT); + } else { + return this.getToken(TSqlParser.NOINIT, i); + } +}; + + +Backup_logContext.prototype.INIT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.INIT); + } else { + return this.getToken(TSqlParser.INIT, i); + } +}; + + +Backup_logContext.prototype.NOSKIP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOSKIP); + } else { + return this.getToken(TSqlParser.NOSKIP, i); + } +}; + + +Backup_logContext.prototype.SKIP_KEYWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SKIP_KEYWORD); + } else { + return this.getToken(TSqlParser.SKIP_KEYWORD, i); + } +}; + + +Backup_logContext.prototype.NOFORMAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOFORMAT); + } else { + return this.getToken(TSqlParser.NOFORMAT, i); + } +}; + + +Backup_logContext.prototype.FORMAT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FORMAT); + } else { + return this.getToken(TSqlParser.FORMAT, i); + } +}; + + +Backup_logContext.prototype.NO_CHECKSUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NO_CHECKSUM); + } else { + return this.getToken(TSqlParser.NO_CHECKSUM, i); + } +}; + + +Backup_logContext.prototype.CHECKSUM = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CHECKSUM); + } else { + return this.getToken(TSqlParser.CHECKSUM, i); + } +}; + + +Backup_logContext.prototype.STOP_ON_ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STOP_ON_ERROR); + } else { + return this.getToken(TSqlParser.STOP_ON_ERROR, i); + } +}; + + +Backup_logContext.prototype.CONTINUE_AFTER_ERROR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTINUE_AFTER_ERROR); + } else { + return this.getToken(TSqlParser.CONTINUE_AFTER_ERROR, i); + } +}; + + +Backup_logContext.prototype.REWIND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.REWIND); + } else { + return this.getToken(TSqlParser.REWIND, i); + } +}; + + +Backup_logContext.prototype.NOREWIND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOREWIND); + } else { + return this.getToken(TSqlParser.NOREWIND, i); + } +}; + + +Backup_logContext.prototype.LOAD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOAD); + } else { + return this.getToken(TSqlParser.LOAD, i); + } +}; + + +Backup_logContext.prototype.NOUNLOAD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NOUNLOAD); + } else { + return this.getToken(TSqlParser.NOUNLOAD, i); + } +}; + + +Backup_logContext.prototype.AES_128 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_128); + } else { + return this.getToken(TSqlParser.AES_128, i); + } +}; + + +Backup_logContext.prototype.AES_192 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_192); + } else { + return this.getToken(TSqlParser.AES_192, i); + } +}; + + +Backup_logContext.prototype.AES_256 = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AES_256); + } else { + return this.getToken(TSqlParser.AES_256, i); + } +}; + + +Backup_logContext.prototype.TRIPLE_DES_3KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.TRIPLE_DES_3KEY); + } else { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, i); + } +}; + + +Backup_logContext.prototype.EXPIREDATE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EXPIREDATE); + } else { + return this.getToken(TSqlParser.EXPIREDATE, i); + } +}; + + +Backup_logContext.prototype.RETAINDAYS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RETAINDAYS); + } else { + return this.getToken(TSqlParser.RETAINDAYS, i); + } +}; + + +Backup_logContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Backup_logContext.prototype.NORECOVERY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.NORECOVERY); + } else { + return this.getToken(TSqlParser.NORECOVERY, i); + } +}; + + +Backup_logContext.prototype.STANDBY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STANDBY); + } else { + return this.getToken(TSqlParser.STANDBY, i); + } +}; + + +Backup_logContext.prototype.ASYMMETRIC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASYMMETRIC); + } else { + return this.getToken(TSqlParser.ASYMMETRIC, i); + } +}; + + +Backup_logContext.prototype.KEY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.KEY); + } else { + return this.getToken(TSqlParser.KEY, i); + } +}; + + +Backup_logContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_log(this); + } +}; + +Backup_logContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_log(this); + } +}; + +Backup_logContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_log(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_logContext = Backup_logContext; + +TSqlParser.prototype.backup_log = function() { + + var localctx = new Backup_logContext(this, this._ctx, this.state); + this.enterRule(localctx, 614, TSqlParser.RULE_backup_log); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7622; + this.match(TSqlParser.BACKUP); + this.state = 7623; + this.match(TSqlParser.LOG); + + this.state = 7624; + localctx.database_name = this.id(); + this.state = 7648; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1043,this._ctx); + switch(la_) { + case 1: + this.state = 7625; + this.match(TSqlParser.TO); + this.state = 7630; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7627; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7626; + this.match(TSqlParser.COMMA); + } + + this.state = 7629; + localctx.logical_device_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7632; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1039, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + case 2: + this.state = 7634; + this.match(TSqlParser.TO); + this.state = 7644; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7636; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7635; + this.match(TSqlParser.COMMA); + } + + this.state = 7638; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7639; + this.match(TSqlParser.EQUAL); + this.state = 7642; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7640; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7641; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7646; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL || _la===TSqlParser.COMMA); + break; + + } + this.state = 7683; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1051,this._ctx); + if(la_===1) { + this.state = 7660; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7650; + this.match(TSqlParser.MIRROR); + this.state = 7651; + this.match(TSqlParser.TO); + this.state = 7656; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 7653; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7652; + this.match(TSqlParser.COMMA); + } + + this.state = 7655; + localctx.logical_device_name = this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7658; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1045, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 7662; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.MIRROR); + + } else if(la_===2) { + this.state = 7679; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7664; + this.match(TSqlParser.MIRROR); + this.state = 7665; + this.match(TSqlParser.TO); + this.state = 7675; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7667; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7666; + this.match(TSqlParser.COMMA); + } + + this.state = 7669; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7670; + this.match(TSqlParser.EQUAL); + this.state = 7673; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7671; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7672; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7677; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.DISK || _la===TSqlParser.TAPE || _la===TSqlParser.URL || _la===TSqlParser.COMMA); + this.state = 7681; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.MIRROR); + + } + this.state = 7858; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1090,this._ctx); + if(la_===1) { + this.state = 7685; + this.match(TSqlParser.WITH); + this.state = 7855; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1089,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 7853; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1088,this._ctx); + switch(la_) { + case 1: + this.state = 7687; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7686; + this.match(TSqlParser.COMMA); + } + + this.state = 7689; + this.match(TSqlParser.DIFFERENTIAL); + break; + + case 2: + this.state = 7691; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7690; + this.match(TSqlParser.COMMA); + } + + this.state = 7693; + this.match(TSqlParser.COPY_ONLY); + break; + + case 3: + this.state = 7695; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7694; + this.match(TSqlParser.COMMA); + } + + this.state = 7697; + _la = this._input.LA(1); + if(!(_la===TSqlParser.COMPRESSION || _la===TSqlParser.NO_COMPRESSION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 4: + this.state = 7699; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7698; + this.match(TSqlParser.COMMA); + } + + this.state = 7701; + this.match(TSqlParser.DESCRIPTION); + this.state = 7702; + this.match(TSqlParser.EQUAL); + this.state = 7705; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7703; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7704; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 5: + this.state = 7708; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7707; + this.match(TSqlParser.COMMA); + } + + this.state = 7710; + this.match(TSqlParser.NAME); + this.state = 7711; + this.match(TSqlParser.EQUAL); + this.state = 7712; + localctx.backup_set_name = this.id(); + break; + + case 6: + this.state = 7714; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7713; + this.match(TSqlParser.COMMA); + } + + this.state = 7716; + this.match(TSqlParser.CREDENTIAL); + break; + + case 7: + this.state = 7718; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7717; + this.match(TSqlParser.COMMA); + } + + this.state = 7720; + this.match(TSqlParser.FILE_SNAPSHOT); + break; + + case 8: + this.state = 7722; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7721; + this.match(TSqlParser.COMMA); + } + + this.state = 7736; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EXPIREDATE: + this.state = 7724; + this.match(TSqlParser.EXPIREDATE); + this.state = 7725; + this.match(TSqlParser.EQUAL); + this.state = 7728; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7726; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7727; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.RETAINDAYS: + this.state = 7730; + this.match(TSqlParser.RETAINDAYS); + this.state = 7731; + this.match(TSqlParser.EQUAL); + this.state = 7734; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7732; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7733; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 9: + this.state = 7739; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7738; + this.match(TSqlParser.COMMA); + } + + this.state = 7741; + _la = this._input.LA(1); + if(!(_la===TSqlParser.INIT || _la===TSqlParser.NOINIT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 10: + this.state = 7743; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7742; + this.match(TSqlParser.COMMA); + } + + this.state = 7745; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOSKIP || _la===TSqlParser.SKIP_KEYWORD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 11: + this.state = 7747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7746; + this.match(TSqlParser.COMMA); + } + + this.state = 7749; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOFORMAT || _la===TSqlParser.FORMAT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 12: + this.state = 7751; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7750; + this.match(TSqlParser.COMMA); + } + + this.state = 7753; + this.match(TSqlParser.MEDIADESCRIPTION); + this.state = 7754; + this.match(TSqlParser.EQUAL); + this.state = 7757; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 7755; + this.match(TSqlParser.STRING); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7756; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 13: + this.state = 7760; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7759; + this.match(TSqlParser.COMMA); + } + + this.state = 7762; + this.match(TSqlParser.MEDIANAME); + this.state = 7763; + this.match(TSqlParser.EQUAL); + + this.state = 7764; + localctx.medianame = this.match(TSqlParser.STRING); + break; + + case 14: + this.state = 7766; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7765; + this.match(TSqlParser.COMMA); + } + + this.state = 7768; + this.match(TSqlParser.BLOCKSIZE); + this.state = 7769; + this.match(TSqlParser.EQUAL); + this.state = 7772; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7770; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7771; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 15: + this.state = 7775; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7774; + this.match(TSqlParser.COMMA); + } + + this.state = 7777; + this.match(TSqlParser.BUFFERCOUNT); + this.state = 7778; + this.match(TSqlParser.EQUAL); + this.state = 7781; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7779; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7780; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 16: + this.state = 7784; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7783; + this.match(TSqlParser.COMMA); + } + + this.state = 7786; + this.match(TSqlParser.MAXTRANSFER); + this.state = 7787; + this.match(TSqlParser.EQUAL); + this.state = 7790; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 7788; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 7789; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 17: + this.state = 7793; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7792; + this.match(TSqlParser.COMMA); + } + + this.state = 7795; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NO_CHECKSUM || _la===TSqlParser.CHECKSUM)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 18: + this.state = 7797; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7796; + this.match(TSqlParser.COMMA); + } + + this.state = 7799; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTINUE_AFTER_ERROR || _la===TSqlParser.STOP_ON_ERROR)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 19: + this.state = 7801; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7800; + this.match(TSqlParser.COMMA); + } + + this.state = 7803; + this.match(TSqlParser.RESTART); + break; + + case 20: + this.state = 7805; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7804; + this.match(TSqlParser.COMMA); + } + + this.state = 7807; + this.match(TSqlParser.STATS); + this.state = 7810; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EQUAL) { + this.state = 7808; + this.match(TSqlParser.EQUAL); + this.state = 7809; + localctx.stats_percent = this.match(TSqlParser.DECIMAL); + } + + break; + + case 21: + this.state = 7813; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7812; + this.match(TSqlParser.COMMA); + } + + this.state = 7815; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NOREWIND || _la===TSqlParser.REWIND)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 22: + this.state = 7817; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7816; + this.match(TSqlParser.COMMA); + } + + this.state = 7819; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOAD || _la===TSqlParser.NOUNLOAD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 23: + this.state = 7821; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7820; + this.match(TSqlParser.COMMA); + } + + this.state = 7827; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NORECOVERY: + this.state = 7823; + this.match(TSqlParser.NORECOVERY); + break; + case TSqlParser.STANDBY: + this.state = 7824; + this.match(TSqlParser.STANDBY); + this.state = 7825; + this.match(TSqlParser.EQUAL); + this.state = 7826; + localctx.undo_file_name = this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 24: + this.state = 7830; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7829; + this.match(TSqlParser.COMMA); + } + + this.state = 7832; + this.match(TSqlParser.NO_TRUNCATE); + break; + + case 25: + this.state = 7834; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7833; + this.match(TSqlParser.COMMA); + } + + this.state = 7836; + this.match(TSqlParser.ENCRYPTION); + this.state = 7837; + this.match(TSqlParser.LR_BRACKET); + this.state = 7838; + this.match(TSqlParser.ALGORITHM); + this.state = 7839; + this.match(TSqlParser.EQUAL); + this.state = 7840; + _la = this._input.LA(1); + if(!(((((_la - 386)) & ~0x1f) == 0 && ((1 << (_la - 386)) & ((1 << (TSqlParser.AES_128 - 386)) | (1 << (TSqlParser.AES_192 - 386)) | (1 << (TSqlParser.AES_256 - 386)))) !== 0) || _la===TSqlParser.TRIPLE_DES_3KEY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7841; + this.match(TSqlParser.COMMA); + this.state = 7842; + this.match(TSqlParser.SERVER); + this.state = 7843; + this.match(TSqlParser.CERTIFICATE); + this.state = 7844; + this.match(TSqlParser.EQUAL); + this.state = 7851; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1087,this._ctx); + switch(la_) { + case 1: + this.state = 7845; + localctx.encryptor_name = this.id(); + break; + + case 2: + this.state = 7846; + this.match(TSqlParser.SERVER); + this.state = 7847; + this.match(TSqlParser.ASYMMETRIC); + this.state = 7848; + this.match(TSqlParser.KEY); + this.state = 7849; + this.match(TSqlParser.EQUAL); + this.state = 7850; + localctx.encryptor_name = this.id(); + break; + + } + break; + + } + } + this.state = 7857; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1089,this._ctx); + } + + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_certificateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_certificate; + this.certname = null; // IdContext + this.cert_file = null; // Token + this.private_key_file = null; // Token + this.encryption_password = null; // Token + this.decryption_pasword = null; // Token + return this; +} + +Backup_certificateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_certificateContext.prototype.constructor = Backup_certificateContext; + +Backup_certificateContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_certificateContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Backup_certificateContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Backup_certificateContext.prototype.FILE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FILE); + } else { + return this.getToken(TSqlParser.FILE, i); + } +}; + + +Backup_certificateContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_certificateContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Backup_certificateContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_certificateContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Backup_certificateContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Backup_certificateContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Backup_certificateContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Backup_certificateContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Backup_certificateContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Backup_certificateContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Backup_certificateContext.prototype.PASSWORD = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PASSWORD); + } else { + return this.getToken(TSqlParser.PASSWORD, i); + } +}; + + +Backup_certificateContext.prototype.DECRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECRYPTION); + } else { + return this.getToken(TSqlParser.DECRYPTION, i); + } +}; + + +Backup_certificateContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Backup_certificateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_certificate(this); + } +}; + +Backup_certificateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_certificate(this); + } +}; + +Backup_certificateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_certificate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_certificateContext = Backup_certificateContext; + +TSqlParser.prototype.backup_certificate = function() { + + var localctx = new Backup_certificateContext(this, this._ctx, this.state); + this.enterRule(localctx, 616, TSqlParser.RULE_backup_certificate); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7860; + this.match(TSqlParser.BACKUP); + this.state = 7861; + this.match(TSqlParser.CERTIFICATE); + this.state = 7862; + localctx.certname = this.id(); + this.state = 7863; + this.match(TSqlParser.TO); + this.state = 7864; + this.match(TSqlParser.FILE); + this.state = 7865; + this.match(TSqlParser.EQUAL); + this.state = 7866; + localctx.cert_file = this.match(TSqlParser.STRING); + this.state = 7898; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1096,this._ctx); + if(la_===1) { + this.state = 7867; + this.match(TSqlParser.WITH); + this.state = 7868; + this.match(TSqlParser.PRIVATE); + this.state = 7869; + this.match(TSqlParser.KEY); + this.state = 7870; + this.match(TSqlParser.LR_BRACKET); + this.state = 7893; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 7893; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1094,this._ctx); + switch(la_) { + case 1: + this.state = 7872; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7871; + this.match(TSqlParser.COMMA); + } + + this.state = 7874; + this.match(TSqlParser.FILE); + this.state = 7875; + this.match(TSqlParser.EQUAL); + this.state = 7876; + localctx.private_key_file = this.match(TSqlParser.STRING); + break; + + case 2: + this.state = 7878; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7877; + this.match(TSqlParser.COMMA); + } + + this.state = 7880; + this.match(TSqlParser.ENCRYPTION); + this.state = 7881; + this.match(TSqlParser.BY); + this.state = 7882; + this.match(TSqlParser.PASSWORD); + this.state = 7883; + this.match(TSqlParser.EQUAL); + this.state = 7884; + localctx.encryption_password = this.match(TSqlParser.STRING); + break; + + case 3: + this.state = 7886; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 7885; + this.match(TSqlParser.COMMA); + } + + this.state = 7888; + this.match(TSqlParser.DECRYPTION); + this.state = 7889; + this.match(TSqlParser.BY); + this.state = 7890; + this.match(TSqlParser.PASSWORD); + this.state = 7891; + this.match(TSqlParser.EQUAL); + this.state = 7892; + localctx.decryption_pasword = this.match(TSqlParser.STRING); + break; + + } + this.state = 7895; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.FILE || _la===TSqlParser.DECRYPTION || _la===TSqlParser.ENCRYPTION || _la===TSqlParser.COMMA); + this.state = 7897; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_master_key; + this.master_key_backup_file = null; // Token + this.encryption_password = null; // Token + return this; +} + +Backup_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_master_keyContext.prototype.constructor = Backup_master_keyContext; + +Backup_master_keyContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Backup_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Backup_master_keyContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Backup_master_keyContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Backup_master_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_master_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Backup_master_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Backup_master_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Backup_master_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_master_key(this); + } +}; + +Backup_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_master_key(this); + } +}; + +Backup_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_master_keyContext = Backup_master_keyContext; + +TSqlParser.prototype.backup_master_key = function() { + + var localctx = new Backup_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 618, TSqlParser.RULE_backup_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7900; + this.match(TSqlParser.BACKUP); + this.state = 7901; + this.match(TSqlParser.MASTER); + this.state = 7902; + this.match(TSqlParser.KEY); + this.state = 7903; + this.match(TSqlParser.TO); + this.state = 7904; + this.match(TSqlParser.FILE); + this.state = 7905; + this.match(TSqlParser.EQUAL); + this.state = 7906; + localctx.master_key_backup_file = this.match(TSqlParser.STRING); + this.state = 7907; + this.match(TSqlParser.ENCRYPTION); + this.state = 7908; + this.match(TSqlParser.BY); + this.state = 7909; + this.match(TSqlParser.PASSWORD); + this.state = 7910; + this.match(TSqlParser.EQUAL); + this.state = 7911; + localctx.encryption_password = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Backup_service_master_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_backup_service_master_key; + this.service_master_key_backup_file = null; // Token + this.encryption_password = null; // Token + return this; +} + +Backup_service_master_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Backup_service_master_keyContext.prototype.constructor = Backup_service_master_keyContext; + +Backup_service_master_keyContext.prototype.BACKUP = function() { + return this.getToken(TSqlParser.BACKUP, 0); +}; + +Backup_service_master_keyContext.prototype.SERVICE = function() { + return this.getToken(TSqlParser.SERVICE, 0); +}; + +Backup_service_master_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Backup_service_master_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Backup_service_master_keyContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Backup_service_master_keyContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Backup_service_master_keyContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Backup_service_master_keyContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Backup_service_master_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Backup_service_master_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Backup_service_master_keyContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Backup_service_master_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBackup_service_master_key(this); + } +}; + +Backup_service_master_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBackup_service_master_key(this); + } +}; + +Backup_service_master_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBackup_service_master_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Backup_service_master_keyContext = Backup_service_master_keyContext; + +TSqlParser.prototype.backup_service_master_key = function() { + + var localctx = new Backup_service_master_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 620, TSqlParser.RULE_backup_service_master_key); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7913; + this.match(TSqlParser.BACKUP); + this.state = 7914; + this.match(TSqlParser.SERVICE); + this.state = 7915; + this.match(TSqlParser.MASTER); + this.state = 7916; + this.match(TSqlParser.KEY); + this.state = 7917; + this.match(TSqlParser.TO); + this.state = 7918; + this.match(TSqlParser.FILE); + this.state = 7919; + this.match(TSqlParser.EQUAL); + this.state = 7920; + localctx.service_master_key_backup_file = this.match(TSqlParser.STRING); + this.state = 7921; + this.match(TSqlParser.ENCRYPTION); + this.state = 7922; + this.match(TSqlParser.BY); + this.state = 7923; + this.match(TSqlParser.PASSWORD); + this.state = 7924; + this.match(TSqlParser.EQUAL); + this.state = 7925; + localctx.encryption_password = this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Kill_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_kill_statement; + return this; +} + +Kill_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Kill_statementContext.prototype.constructor = Kill_statementContext; + +Kill_statementContext.prototype.KILL = function() { + return this.getToken(TSqlParser.KILL, 0); +}; + +Kill_statementContext.prototype.kill_process = function() { + return this.getTypedRuleContext(Kill_processContext,0); +}; + +Kill_statementContext.prototype.kill_query_notification = function() { + return this.getTypedRuleContext(Kill_query_notificationContext,0); +}; + +Kill_statementContext.prototype.kill_stats_job = function() { + return this.getTypedRuleContext(Kill_stats_jobContext,0); +}; + +Kill_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKill_statement(this); + } +}; + +Kill_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKill_statement(this); + } +}; + +Kill_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKill_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Kill_statementContext = Kill_statementContext; + +TSqlParser.prototype.kill_statement = function() { + + var localctx = new Kill_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 622, TSqlParser.RULE_kill_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7927; + this.match(TSqlParser.KILL); + this.state = 7931; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UOW: + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + this.state = 7928; + this.kill_process(); + break; + case TSqlParser.QUERY: + this.state = 7929; + this.kill_query_notification(); + break; + case TSqlParser.STATS: + this.state = 7930; + this.kill_stats_job(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Kill_processContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_kill_process; + this.session_id = null; // Token + return this; +} + +Kill_processContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Kill_processContext.prototype.constructor = Kill_processContext; + +Kill_processContext.prototype.UOW = function() { + return this.getToken(TSqlParser.UOW, 0); +}; + +Kill_processContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Kill_processContext.prototype.STATUSONLY = function() { + return this.getToken(TSqlParser.STATUSONLY, 0); +}; + +Kill_processContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Kill_processContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Kill_processContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKill_process(this); + } +}; + +Kill_processContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKill_process(this); + } +}; + +Kill_processContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKill_process(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Kill_processContext = Kill_processContext; + +TSqlParser.prototype.kill_process = function() { + + var localctx = new Kill_processContext(this, this._ctx, this.state); + this.enterRule(localctx, 624, TSqlParser.RULE_kill_process); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 7935; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + this.state = 7933; + localctx.session_id = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + localctx.session_id = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.UOW: + this.state = 7934; + this.match(TSqlParser.UOW); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 7939; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1099,this._ctx); + if(la_===1) { + this.state = 7937; + this.match(TSqlParser.WITH); + this.state = 7938; + this.match(TSqlParser.STATUSONLY); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Kill_query_notificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_kill_query_notification; + this.subscription_id = null; // Token + return this; +} + +Kill_query_notificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Kill_query_notificationContext.prototype.constructor = Kill_query_notificationContext; + +Kill_query_notificationContext.prototype.QUERY = function() { + return this.getToken(TSqlParser.QUERY, 0); +}; + +Kill_query_notificationContext.prototype.NOTIFICATION = function() { + return this.getToken(TSqlParser.NOTIFICATION, 0); +}; + +Kill_query_notificationContext.prototype.SUBSCRIPTION = function() { + return this.getToken(TSqlParser.SUBSCRIPTION, 0); +}; + +Kill_query_notificationContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Kill_query_notificationContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Kill_query_notificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKill_query_notification(this); + } +}; + +Kill_query_notificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKill_query_notification(this); + } +}; + +Kill_query_notificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKill_query_notification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Kill_query_notificationContext = Kill_query_notificationContext; + +TSqlParser.prototype.kill_query_notification = function() { + + var localctx = new Kill_query_notificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 626, TSqlParser.RULE_kill_query_notification); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7941; + this.match(TSqlParser.QUERY); + this.state = 7942; + this.match(TSqlParser.NOTIFICATION); + this.state = 7943; + this.match(TSqlParser.SUBSCRIPTION); + this.state = 7946; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.state = 7944; + this.match(TSqlParser.ALL); + break; + case TSqlParser.DECIMAL: + this.state = 7945; + localctx.subscription_id = this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Kill_stats_jobContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_kill_stats_job; + this.job_id = null; // Token + return this; +} + +Kill_stats_jobContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Kill_stats_jobContext.prototype.constructor = Kill_stats_jobContext; + +Kill_stats_jobContext.prototype.STATS = function() { + return this.getToken(TSqlParser.STATS, 0); +}; + +Kill_stats_jobContext.prototype.JOB = function() { + return this.getToken(TSqlParser.JOB, 0); +}; + +Kill_stats_jobContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Kill_stats_jobContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKill_stats_job(this); + } +}; + +Kill_stats_jobContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKill_stats_job(this); + } +}; + +Kill_stats_jobContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKill_stats_job(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Kill_stats_jobContext = Kill_stats_jobContext; + +TSqlParser.prototype.kill_stats_job = function() { + + var localctx = new Kill_stats_jobContext(this, this._ctx, this.state); + this.enterRule(localctx, 628, TSqlParser.RULE_kill_stats_job); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7948; + this.match(TSqlParser.STATS); + this.state = 7949; + this.match(TSqlParser.JOB); + this.state = 7950; + localctx.job_id = this.match(TSqlParser.DECIMAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_statement; + return this; +} + +Execute_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_statementContext.prototype.constructor = Execute_statementContext; + +Execute_statementContext.prototype.EXECUTE = function() { + return this.getToken(TSqlParser.EXECUTE, 0); +}; + +Execute_statementContext.prototype.execute_body = function() { + return this.getTypedRuleContext(Execute_bodyContext,0); +}; + +Execute_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_statement(this); + } +}; + +Execute_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_statement(this); + } +}; + +Execute_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_statementContext = Execute_statementContext; + +TSqlParser.prototype.execute_statement = function() { + + var localctx = new Execute_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 630, TSqlParser.RULE_execute_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 7952; + this.match(TSqlParser.EXECUTE); + this.state = 7953; + this.execute_body(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_bodyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_body; + this.return_status = null; // Token + return this; +} + +Execute_bodyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_bodyContext.prototype.constructor = Execute_bodyContext; + +Execute_bodyContext.prototype.func_proc_name_server_database_schema = function() { + return this.getTypedRuleContext(Func_proc_name_server_database_schemaContext,0); +}; + +Execute_bodyContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Execute_bodyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Execute_bodyContext.prototype.execute_statement_arg = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Execute_statement_argContext); + } else { + return this.getTypedRuleContext(Execute_statement_argContext,i); + } +}; + +Execute_bodyContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Execute_bodyContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Execute_bodyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Execute_bodyContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Execute_bodyContext.prototype.execute_var_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Execute_var_stringContext); + } else { + return this.getTypedRuleContext(Execute_var_stringContext,i); + } +}; + +Execute_bodyContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Execute_bodyContext.prototype.PLUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PLUS); + } else { + return this.getToken(TSqlParser.PLUS, i); + } +}; + + +Execute_bodyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Execute_bodyContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Execute_bodyContext.prototype.USER = function() { + return this.getToken(TSqlParser.USER, 0); +}; + +Execute_bodyContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Execute_bodyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_body(this); + } +}; + +Execute_bodyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_body(this); + } +}; + +Execute_bodyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_body(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_bodyContext = Execute_bodyContext; + +TSqlParser.prototype.execute_body = function() { + + var localctx = new Execute_bodyContext(this, this._ctx, this.state); + this.enterRule(localctx, 632, TSqlParser.RULE_execute_body); + var _la = 0; // Token type + try { + this.state = 7997; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1110,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 7957; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1101,this._ctx); + if(la_===1) { + this.state = 7955; + localctx.return_status = this.match(TSqlParser.LOCAL_ID); + this.state = 7956; + this.match(TSqlParser.EQUAL); + + } + this.state = 7961; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1102,this._ctx); + switch(la_) { + case 1: + this.state = 7959; + this.func_proc_name_server_database_schema(); + break; + + case 2: + this.state = 7960; + this.expression(0); + break; + + } + this.state = 7971; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1104,this._ctx); + if(la_===1) { + this.state = 7963; + this.execute_statement_arg(); + this.state = 7968; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 7964; + this.match(TSqlParser.COMMA); + this.state = 7965; + this.execute_statement_arg(); + this.state = 7970; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + + } + this.state = 7974; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1105,this._ctx); + if(la_===1) { + this.state = 7973; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 7976; + this.match(TSqlParser.LR_BRACKET); + this.state = 7977; + this.execute_var_string(); + this.state = 7982; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.PLUS) { + this.state = 7978; + this.match(TSqlParser.PLUS); + this.state = 7979; + this.execute_var_string(); + this.state = 7984; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7985; + this.match(TSqlParser.RR_BRACKET); + this.state = 7992; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1108,this._ctx); + if(la_===1) { + this.state = 7987; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 7986; + this.match(TSqlParser.AS); + } + + this.state = 7989; + _la = this._input.LA(1); + if(!(_la===TSqlParser.USER || _la===TSqlParser.LOGIN)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7990; + this.match(TSqlParser.EQUAL); + this.state = 7991; + this.match(TSqlParser.STRING); + + } + this.state = 7995; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1109,this._ctx); + if(la_===1) { + this.state = 7994; + this.match(TSqlParser.SEMI); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_statement_argContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_statement_arg; + this.parameter = null; // Token + return this; +} + +Execute_statement_argContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_statement_argContext.prototype.constructor = Execute_statement_argContext; + +Execute_statement_argContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Execute_statement_argContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Execute_statement_argContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Execute_statement_argContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Execute_statement_argContext.prototype.constant_LOCAL_ID = function() { + return this.getTypedRuleContext(Constant_LOCAL_IDContext,0); +}; + +Execute_statement_argContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Execute_statement_argContext.prototype.OUTPUT = function() { + return this.getToken(TSqlParser.OUTPUT, 0); +}; + +Execute_statement_argContext.prototype.OUT = function() { + return this.getToken(TSqlParser.OUT, 0); +}; + +Execute_statement_argContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_statement_arg(this); + } +}; + +Execute_statement_argContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_statement_arg(this); + } +}; + +Execute_statement_argContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_statement_arg(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_statement_argContext = Execute_statement_argContext; + +TSqlParser.prototype.execute_statement_arg = function() { + + var localctx = new Execute_statement_argContext(this, this._ctx, this.state); + this.enterRule(localctx, 634, TSqlParser.RULE_execute_statement_arg); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8001; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1111,this._ctx); + if(la_===1) { + this.state = 7999; + localctx.parameter = this.match(TSqlParser.LOCAL_ID); + this.state = 8000; + this.match(TSqlParser.EQUAL); + + } + this.state = 8012; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 8005; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 8003; + this.constant_LOCAL_ID(); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8004; + this.id(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8008; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1113,this._ctx); + if(la_===1) { + this.state = 8007; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OUT || _la===TSqlParser.OUTPUT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + case TSqlParser.DEFAULT: + this.state = 8010; + this.match(TSqlParser.DEFAULT); + break; + case TSqlParser.NULL: + this.state = 8011; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_var_stringContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_var_string; + return this; +} + +Execute_var_stringContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_var_stringContext.prototype.constructor = Execute_var_stringContext; + +Execute_var_stringContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Execute_var_stringContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Execute_var_stringContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_var_string(this); + } +}; + +Execute_var_stringContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_var_string(this); + } +}; + +Execute_var_stringContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_var_string(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_var_stringContext = Execute_var_stringContext; + +TSqlParser.prototype.execute_var_string = function() { + + var localctx = new Execute_var_stringContext(this, this._ctx, this.state); + this.enterRule(localctx, 636, TSqlParser.RULE_execute_var_string); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8014; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Security_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_security_statement; + this.on_id = null; // Table_nameContext + this._id = null; // IdContext + this.to_principal = []; // of IdContexts + this.as_principal = null; // IdContext + return this; +} + +Security_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Security_statementContext.prototype.constructor = Security_statementContext; + +Security_statementContext.prototype.execute_clause = function() { + return this.getTypedRuleContext(Execute_clauseContext,0); +}; + +Security_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Security_statementContext.prototype.GRANT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.GRANT); + } else { + return this.getToken(TSqlParser.GRANT, i); + } +}; + + +Security_statementContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Security_statementContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Security_statementContext.prototype.grant_permission = function() { + return this.getTypedRuleContext(Grant_permissionContext,0); +}; + +Security_statementContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Security_statementContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Security_statementContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Security_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Security_statementContext.prototype.OPTION = function() { + return this.getToken(TSqlParser.OPTION, 0); +}; + +Security_statementContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Security_statementContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Security_statementContext.prototype.PRIVILEGES = function() { + return this.getToken(TSqlParser.PRIVILEGES, 0); +}; + +Security_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Security_statementContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Security_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Security_statementContext.prototype.REVERT = function() { + return this.getToken(TSqlParser.REVERT, 0); +}; + +Security_statementContext.prototype.COOKIE = function() { + return this.getToken(TSqlParser.COOKIE, 0); +}; + +Security_statementContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Security_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Security_statementContext.prototype.open_key = function() { + return this.getTypedRuleContext(Open_keyContext,0); +}; + +Security_statementContext.prototype.close_key = function() { + return this.getTypedRuleContext(Close_keyContext,0); +}; + +Security_statementContext.prototype.create_key = function() { + return this.getTypedRuleContext(Create_keyContext,0); +}; + +Security_statementContext.prototype.create_certificate = function() { + return this.getTypedRuleContext(Create_certificateContext,0); +}; + +Security_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSecurity_statement(this); + } +}; + +Security_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSecurity_statement(this); + } +}; + +Security_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSecurity_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Security_statementContext = Security_statementContext; + +TSqlParser.prototype.security_statement = function() { + + var localctx = new Security_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 638, TSqlParser.RULE_security_statement); + var _la = 0; // Token type + try { + this.state = 8075; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1126,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8016; + this.execute_clause(); + this.state = 8018; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1115,this._ctx); + if(la_===1) { + this.state = 8017; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8020; + this.match(TSqlParser.GRANT); + this.state = 8032; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALL: + this.state = 8021; + this.match(TSqlParser.ALL); + this.state = 8023; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PRIVILEGES) { + this.state = 8022; + this.match(TSqlParser.PRIVILEGES); + } + + break; + case TSqlParser.ALTER: + case TSqlParser.CREATE: + case TSqlParser.EXECUTE: + case TSqlParser.INSERT: + case TSqlParser.REFERENCES: + case TSqlParser.SELECT: + case TSqlParser.VIEW: + case TSqlParser.CONTROL: + case TSqlParser.IMPERSONATE: + case TSqlParser.SHOWPLAN: + case TSqlParser.TAKE: + this.state = 8025; + this.grant_permission(); + this.state = 8030; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 8026; + this.match(TSqlParser.LR_BRACKET); + this.state = 8027; + this.column_name_list(); + this.state = 8028; + this.match(TSqlParser.RR_BRACKET); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 8034; + this.match(TSqlParser.ON); + this.state = 8035; + localctx.on_id = this.table_name(); + } + + this.state = 8038; + this.match(TSqlParser.TO); + + this.state = 8039; + localctx._id = this.id(); + localctx.to_principal.push(localctx._id); + this.state = 8044; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8040; + this.match(TSqlParser.COMMA); + this.state = 8041; + localctx._id = this.id(); + localctx.to_principal.push(localctx._id); + this.state = 8046; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8050; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1121,this._ctx); + if(la_===1) { + this.state = 8047; + this.match(TSqlParser.WITH); + this.state = 8048; + this.match(TSqlParser.GRANT); + this.state = 8049; + this.match(TSqlParser.OPTION); + + } + this.state = 8054; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 8052; + this.match(TSqlParser.AS); + this.state = 8053; + localctx.as_principal = this.id(); + } + + this.state = 8057; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1123,this._ctx); + if(la_===1) { + this.state = 8056; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8059; + this.match(TSqlParser.REVERT); + this.state = 8066; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1124,this._ctx); + if(la_===1) { + this.state = 8060; + this.match(TSqlParser.LR_BRACKET); + this.state = 8061; + this.match(TSqlParser.WITH); + this.state = 8062; + this.match(TSqlParser.COOKIE); + this.state = 8063; + this.match(TSqlParser.EQUAL); + this.state = 8064; + this.match(TSqlParser.LOCAL_ID); + this.state = 8065; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 8069; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1125,this._ctx); + if(la_===1) { + this.state = 8068; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8071; + this.open_key(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 8072; + this.close_key(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 8073; + this.create_key(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 8074; + this.create_certificate(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_certificateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_certificate; + this.certificate_name = null; // IdContext + this.user_name = null; // IdContext + return this; +} + +Create_certificateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_certificateContext.prototype.constructor = Create_certificateContext; + +Create_certificateContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_certificateContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Create_certificateContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_certificateContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_certificateContext.prototype.existing_keys = function() { + return this.getTypedRuleContext(Existing_keysContext,0); +}; + +Create_certificateContext.prototype.generate_new_keys = function() { + return this.getTypedRuleContext(Generate_new_keysContext,0); +}; + +Create_certificateContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_certificateContext.prototype.ACTIVE = function() { + return this.getToken(TSqlParser.ACTIVE, 0); +}; + +Create_certificateContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Create_certificateContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Create_certificateContext.prototype.DIALOG = function() { + return this.getToken(TSqlParser.DIALOG, 0); +}; + +Create_certificateContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_certificateContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_certificateContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_certificateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_certificate(this); + } +}; + +Create_certificateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_certificate(this); + } +}; + +Create_certificateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_certificate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_certificateContext = Create_certificateContext; + +TSqlParser.prototype.create_certificate = function() { + + var localctx = new Create_certificateContext(this, this._ctx, this.state); + this.enterRule(localctx, 640, TSqlParser.RULE_create_certificate); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8077; + this.match(TSqlParser.CREATE); + this.state = 8078; + this.match(TSqlParser.CERTIFICATE); + this.state = 8079; + localctx.certificate_name = this.id(); + this.state = 8082; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 8080; + this.match(TSqlParser.AUTHORIZATION); + this.state = 8081; + localctx.user_name = this.id(); + } + + this.state = 8087; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FROM: + this.state = 8084; + this.match(TSqlParser.FROM); + this.state = 8085; + this.existing_keys(); + break; + case TSqlParser.WITH: + case TSqlParser.ENCRYPTION: + this.state = 8086; + this.generate_new_keys(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8095; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1129,this._ctx); + if(la_===1) { + this.state = 8089; + this.match(TSqlParser.ACTIVE); + this.state = 8090; + this.match(TSqlParser.FOR); + this.state = 8091; + this.match(TSqlParser.BEGIN); + this.state = 8092; + this.match(TSqlParser.DIALOG); + this.state = 8093; + this.match(TSqlParser.EQUAL); + this.state = 8094; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Existing_keysContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_existing_keys; + this.assembly_name = null; // IdContext + this.path_to_file = null; // Token + return this; +} + +Existing_keysContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Existing_keysContext.prototype.constructor = Existing_keysContext; + +Existing_keysContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Existing_keysContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Existing_keysContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Existing_keysContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Existing_keysContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Existing_keysContext.prototype.EXECUTABLE = function() { + return this.getToken(TSqlParser.EXECUTABLE, 0); +}; + +Existing_keysContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Existing_keysContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Existing_keysContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Existing_keysContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Existing_keysContext.prototype.private_key_options = function() { + return this.getTypedRuleContext(Private_key_optionsContext,0); +}; + +Existing_keysContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Existing_keysContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExisting_keys(this); + } +}; + +Existing_keysContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExisting_keys(this); + } +}; + +Existing_keysContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExisting_keys(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Existing_keysContext = Existing_keysContext; + +TSqlParser.prototype.existing_keys = function() { + + var localctx = new Existing_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 642, TSqlParser.RULE_existing_keys); + var _la = 0; // Token type + try { + this.state = 8114; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ASSEMBLY: + this.enterOuterAlt(localctx, 1); + this.state = 8097; + this.match(TSqlParser.ASSEMBLY); + this.state = 8098; + localctx.assembly_name = this.id(); + break; + case TSqlParser.FILE: + case TSqlParser.EXECUTABLE: + this.enterOuterAlt(localctx, 2); + this.state = 8100; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EXECUTABLE) { + this.state = 8099; + this.match(TSqlParser.EXECUTABLE); + } + + this.state = 8102; + this.match(TSqlParser.FILE); + this.state = 8103; + this.match(TSqlParser.EQUAL); + this.state = 8104; + localctx.path_to_file = this.match(TSqlParser.STRING); + this.state = 8112; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1131,this._ctx); + if(la_===1) { + this.state = 8105; + this.match(TSqlParser.WITH); + this.state = 8106; + this.match(TSqlParser.PRIVATE); + this.state = 8107; + this.match(TSqlParser.KEY); + this.state = 8108; + this.match(TSqlParser.LR_BRACKET); + this.state = 8109; + this.private_key_options(); + this.state = 8110; + this.match(TSqlParser.RR_BRACKET); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Private_key_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_private_key_options; + this.path = null; // Token + this.password = null; // Token + return this; +} + +Private_key_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Private_key_optionsContext.prototype.constructor = Private_key_optionsContext; + +Private_key_optionsContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Private_key_optionsContext.prototype.FILE = function() { + return this.getToken(TSqlParser.FILE, 0); +}; + +Private_key_optionsContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +Private_key_optionsContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Private_key_optionsContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Private_key_optionsContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Private_key_optionsContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Private_key_optionsContext.prototype.DECRYPTION = function() { + return this.getToken(TSqlParser.DECRYPTION, 0); +}; + +Private_key_optionsContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Private_key_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPrivate_key_options(this); + } +}; + +Private_key_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPrivate_key_options(this); + } +}; + +Private_key_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPrivate_key_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Private_key_optionsContext = Private_key_optionsContext; + +TSqlParser.prototype.private_key_options = function() { + + var localctx = new Private_key_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 644, TSqlParser.RULE_private_key_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8116; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FILE || _la===TSqlParser.BINARY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8117; + this.match(TSqlParser.EQUAL); + this.state = 8118; + localctx.path = this.match(TSqlParser.STRING); + this.state = 8125; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 8119; + this.match(TSqlParser.COMMA); + this.state = 8120; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECRYPTION || _la===TSqlParser.ENCRYPTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8121; + this.match(TSqlParser.BY); + this.state = 8122; + this.match(TSqlParser.PASSWORD); + this.state = 8123; + this.match(TSqlParser.EQUAL); + this.state = 8124; + localctx.password = this.match(TSqlParser.STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Generate_new_keysContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_generate_new_keys; + this.password = null; // Token + this.certificate_subject_name = null; // Token + return this; +} + +Generate_new_keysContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Generate_new_keysContext.prototype.constructor = Generate_new_keysContext; + +Generate_new_keysContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Generate_new_keysContext.prototype.SUBJECT = function() { + return this.getToken(TSqlParser.SUBJECT, 0); +}; + +Generate_new_keysContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Generate_new_keysContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Generate_new_keysContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Generate_new_keysContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Generate_new_keysContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Generate_new_keysContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Generate_new_keysContext.prototype.date_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Date_optionsContext); + } else { + return this.getTypedRuleContext(Date_optionsContext,i); + } +}; + +Generate_new_keysContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGenerate_new_keys(this); + } +}; + +Generate_new_keysContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGenerate_new_keys(this); + } +}; + +Generate_new_keysContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGenerate_new_keys(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Generate_new_keysContext = Generate_new_keysContext; + +TSqlParser.prototype.generate_new_keys = function() { + + var localctx = new Generate_new_keysContext(this, this._ctx, this.state); + this.enterRule(localctx, 646, TSqlParser.RULE_generate_new_keys); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8132; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ENCRYPTION) { + this.state = 8127; + this.match(TSqlParser.ENCRYPTION); + this.state = 8128; + this.match(TSqlParser.BY); + this.state = 8129; + this.match(TSqlParser.PASSWORD); + this.state = 8130; + this.match(TSqlParser.EQUAL); + this.state = 8131; + localctx.password = this.match(TSqlParser.STRING); + } + + this.state = 8134; + this.match(TSqlParser.WITH); + this.state = 8135; + this.match(TSqlParser.SUBJECT); + this.state = 8136; + this.match(TSqlParser.EQUAL); + this.state = 8137; + localctx.certificate_subject_name = this.match(TSqlParser.STRING); + this.state = 8142; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8138; + this.match(TSqlParser.COMMA); + this.state = 8139; + this.date_options(); + this.state = 8144; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Date_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_date_options; + return this; +} + +Date_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Date_optionsContext.prototype.constructor = Date_optionsContext; + +Date_optionsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Date_optionsContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Date_optionsContext.prototype.START_DATE = function() { + return this.getToken(TSqlParser.START_DATE, 0); +}; + +Date_optionsContext.prototype.EXPIRY_DATE = function() { + return this.getToken(TSqlParser.EXPIRY_DATE, 0); +}; + +Date_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDate_options(this); + } +}; + +Date_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDate_options(this); + } +}; + +Date_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDate_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Date_optionsContext = Date_optionsContext; + +TSqlParser.prototype.date_options = function() { + + var localctx = new Date_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 648, TSqlParser.RULE_date_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8145; + _la = this._input.LA(1); + if(!(_la===TSqlParser.EXPIRY_DATE || _la===TSqlParser.START_DATE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8146; + this.match(TSqlParser.EQUAL); + this.state = 8147; + this.match(TSqlParser.STRING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Open_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_open_key; + this.key_name = null; // IdContext + this.password = null; // Token + return this; +} + +Open_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Open_keyContext.prototype.constructor = Open_keyContext; + +Open_keyContext.prototype.OPEN = function() { + return this.getToken(TSqlParser.OPEN, 0); +}; + +Open_keyContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Open_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Open_keyContext.prototype.DECRYPTION = function() { + return this.getToken(TSqlParser.DECRYPTION, 0); +}; + +Open_keyContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Open_keyContext.prototype.decryption_mechanism = function() { + return this.getTypedRuleContext(Decryption_mechanismContext,0); +}; + +Open_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Open_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Open_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Open_keyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Open_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Open_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOpen_key(this); + } +}; + +Open_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOpen_key(this); + } +}; + +Open_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOpen_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Open_keyContext = Open_keyContext; + +TSqlParser.prototype.open_key = function() { + + var localctx = new Open_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 650, TSqlParser.RULE_open_key); + try { + this.state = 8165; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1136,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8149; + this.match(TSqlParser.OPEN); + this.state = 8150; + this.match(TSqlParser.SYMMETRIC); + this.state = 8151; + this.match(TSqlParser.KEY); + this.state = 8152; + localctx.key_name = this.id(); + this.state = 8153; + this.match(TSqlParser.DECRYPTION); + this.state = 8154; + this.match(TSqlParser.BY); + this.state = 8155; + this.decryption_mechanism(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8157; + this.match(TSqlParser.OPEN); + this.state = 8158; + this.match(TSqlParser.MASTER); + this.state = 8159; + this.match(TSqlParser.KEY); + this.state = 8160; + this.match(TSqlParser.DECRYPTION); + this.state = 8161; + this.match(TSqlParser.BY); + this.state = 8162; + this.match(TSqlParser.PASSWORD); + this.state = 8163; + this.match(TSqlParser.EQUAL); + this.state = 8164; + localctx.password = this.match(TSqlParser.STRING); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Close_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_close_key; + this.key_name = null; // IdContext + return this; +} + +Close_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Close_keyContext.prototype.constructor = Close_keyContext; + +Close_keyContext.prototype.CLOSE = function() { + return this.getToken(TSqlParser.CLOSE, 0); +}; + +Close_keyContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Close_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Close_keyContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Close_keyContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Close_keyContext.prototype.KEYS = function() { + return this.getToken(TSqlParser.KEYS, 0); +}; + +Close_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Close_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClose_key(this); + } +}; + +Close_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClose_key(this); + } +}; + +Close_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClose_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Close_keyContext = Close_keyContext; + +TSqlParser.prototype.close_key = function() { + + var localctx = new Close_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 652, TSqlParser.RULE_close_key); + try { + this.state = 8178; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1137,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8167; + this.match(TSqlParser.CLOSE); + this.state = 8168; + this.match(TSqlParser.SYMMETRIC); + this.state = 8169; + this.match(TSqlParser.KEY); + this.state = 8170; + localctx.key_name = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8171; + this.match(TSqlParser.CLOSE); + this.state = 8172; + this.match(TSqlParser.ALL); + this.state = 8173; + this.match(TSqlParser.SYMMETRIC); + this.state = 8174; + this.match(TSqlParser.KEYS); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8175; + this.match(TSqlParser.CLOSE); + this.state = 8176; + this.match(TSqlParser.MASTER); + this.state = 8177; + this.match(TSqlParser.KEY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_keyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_key; + this.password = null; // Token + this.key_name = null; // IdContext + this.user_name = null; // IdContext + this.provider_name = null; // IdContext + return this; +} + +Create_keyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_keyContext.prototype.constructor = Create_keyContext; + +Create_keyContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Create_keyContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Create_keyContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Create_keyContext.prototype.ENCRYPTION = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ENCRYPTION); + } else { + return this.getToken(TSqlParser.ENCRYPTION, i); + } +}; + + +Create_keyContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.BY); + } else { + return this.getToken(TSqlParser.BY, i); + } +}; + + +Create_keyContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Create_keyContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_keyContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_keyContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Create_keyContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Create_keyContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Create_keyContext.prototype.AUTHORIZATION = function() { + return this.getToken(TSqlParser.AUTHORIZATION, 0); +}; + +Create_keyContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Create_keyContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Create_keyContext.prototype.key_options = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Key_optionsContext); + } else { + return this.getTypedRuleContext(Key_optionsContext,i); + } +}; + +Create_keyContext.prototype.encryption_mechanism = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Encryption_mechanismContext); + } else { + return this.getTypedRuleContext(Encryption_mechanismContext,i); + } +}; + +Create_keyContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_keyContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_key(this); + } +}; + +Create_keyContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_key(this); + } +}; + +Create_keyContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_key(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_keyContext = Create_keyContext; + +TSqlParser.prototype.create_key = function() { + + var localctx = new Create_keyContext(this, this._ctx, this.state); + this.enterRule(localctx, 654, TSqlParser.RULE_create_key); + var _la = 0; // Token type + try { + this.state = 8215; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1143,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8180; + this.match(TSqlParser.CREATE); + this.state = 8181; + this.match(TSqlParser.MASTER); + this.state = 8182; + this.match(TSqlParser.KEY); + this.state = 8183; + this.match(TSqlParser.ENCRYPTION); + this.state = 8184; + this.match(TSqlParser.BY); + this.state = 8185; + this.match(TSqlParser.PASSWORD); + this.state = 8186; + this.match(TSqlParser.EQUAL); + this.state = 8187; + localctx.password = this.match(TSqlParser.STRING); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8188; + this.match(TSqlParser.CREATE); + this.state = 8189; + this.match(TSqlParser.SYMMETRIC); + this.state = 8190; + this.match(TSqlParser.KEY); + this.state = 8191; + localctx.key_name = this.id(); + this.state = 8194; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AUTHORIZATION) { + this.state = 8192; + this.match(TSqlParser.AUTHORIZATION); + this.state = 8193; + localctx.user_name = this.id(); + } + + this.state = 8199; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 8196; + this.match(TSqlParser.FROM); + this.state = 8197; + this.match(TSqlParser.PROVIDER); + this.state = 8198; + localctx.provider_name = this.id(); + } + + this.state = 8201; + this.match(TSqlParser.WITH); + this.state = 8211; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 8206; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.ALGORITHM: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.KEY_SOURCE: + case TSqlParser.PROVIDER_KEY_NAME: + this.state = 8202; + this.key_options(); + break; + case TSqlParser.ENCRYPTION: + this.state = 8203; + this.match(TSqlParser.ENCRYPTION); + this.state = 8204; + this.match(TSqlParser.BY); + this.state = 8205; + this.encryption_mechanism(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8209; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 8208; + this.match(TSqlParser.COMMA); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8213; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1142, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Key_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_key_options; + this.pass_phrase = null; // Token + this.identity_phrase = null; // Token + this.key_name_in_provider = null; // Token + return this; +} + +Key_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Key_optionsContext.prototype.constructor = Key_optionsContext; + +Key_optionsContext.prototype.KEY_SOURCE = function() { + return this.getToken(TSqlParser.KEY_SOURCE, 0); +}; + +Key_optionsContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Key_optionsContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Key_optionsContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Key_optionsContext.prototype.algorithm = function() { + return this.getTypedRuleContext(AlgorithmContext,0); +}; + +Key_optionsContext.prototype.IDENTITY_VALUE = function() { + return this.getToken(TSqlParser.IDENTITY_VALUE, 0); +}; + +Key_optionsContext.prototype.PROVIDER_KEY_NAME = function() { + return this.getToken(TSqlParser.PROVIDER_KEY_NAME, 0); +}; + +Key_optionsContext.prototype.CREATION_DISPOSITION = function() { + return this.getToken(TSqlParser.CREATION_DISPOSITION, 0); +}; + +Key_optionsContext.prototype.CREATE_NEW = function() { + return this.getToken(TSqlParser.CREATE_NEW, 0); +}; + +Key_optionsContext.prototype.OPEN_EXISTING = function() { + return this.getToken(TSqlParser.OPEN_EXISTING, 0); +}; + +Key_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterKey_options(this); + } +}; + +Key_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitKey_options(this); + } +}; + +Key_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitKey_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Key_optionsContext = Key_optionsContext; + +TSqlParser.prototype.key_options = function() { + + var localctx = new Key_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 656, TSqlParser.RULE_key_options); + var _la = 0; // Token type + try { + this.state = 8232; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.KEY_SOURCE: + this.enterOuterAlt(localctx, 1); + this.state = 8217; + this.match(TSqlParser.KEY_SOURCE); + this.state = 8218; + this.match(TSqlParser.EQUAL); + this.state = 8219; + localctx.pass_phrase = this.match(TSqlParser.STRING); + break; + case TSqlParser.ALGORITHM: + this.enterOuterAlt(localctx, 2); + this.state = 8220; + this.match(TSqlParser.ALGORITHM); + this.state = 8221; + this.match(TSqlParser.EQUAL); + this.state = 8222; + this.algorithm(); + break; + case TSqlParser.IDENTITY_VALUE: + this.enterOuterAlt(localctx, 3); + this.state = 8223; + this.match(TSqlParser.IDENTITY_VALUE); + this.state = 8224; + this.match(TSqlParser.EQUAL); + this.state = 8225; + localctx.identity_phrase = this.match(TSqlParser.STRING); + break; + case TSqlParser.PROVIDER_KEY_NAME: + this.enterOuterAlt(localctx, 4); + this.state = 8226; + this.match(TSqlParser.PROVIDER_KEY_NAME); + this.state = 8227; + this.match(TSqlParser.EQUAL); + this.state = 8228; + localctx.key_name_in_provider = this.match(TSqlParser.STRING); + break; + case TSqlParser.CREATION_DISPOSITION: + this.enterOuterAlt(localctx, 5); + this.state = 8229; + this.match(TSqlParser.CREATION_DISPOSITION); + this.state = 8230; + this.match(TSqlParser.EQUAL); + this.state = 8231; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CREATE_NEW || _la===TSqlParser.OPEN_EXISTING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlgorithmContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_algorithm; + return this; +} + +AlgorithmContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlgorithmContext.prototype.constructor = AlgorithmContext; + +AlgorithmContext.prototype.DES = function() { + return this.getToken(TSqlParser.DES, 0); +}; + +AlgorithmContext.prototype.TRIPLE_DES = function() { + return this.getToken(TSqlParser.TRIPLE_DES, 0); +}; + +AlgorithmContext.prototype.TRIPLE_DES_3KEY = function() { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, 0); +}; + +AlgorithmContext.prototype.RC2 = function() { + return this.getToken(TSqlParser.RC2, 0); +}; + +AlgorithmContext.prototype.RC4 = function() { + return this.getToken(TSqlParser.RC4, 0); +}; + +AlgorithmContext.prototype.RC4_128 = function() { + return this.getToken(TSqlParser.RC4_128, 0); +}; + +AlgorithmContext.prototype.DESX = function() { + return this.getToken(TSqlParser.DESX, 0); +}; + +AlgorithmContext.prototype.AES_128 = function() { + return this.getToken(TSqlParser.AES_128, 0); +}; + +AlgorithmContext.prototype.AES_192 = function() { + return this.getToken(TSqlParser.AES_192, 0); +}; + +AlgorithmContext.prototype.AES_256 = function() { + return this.getToken(TSqlParser.AES_256, 0); +}; + +AlgorithmContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAlgorithm(this); + } +}; + +AlgorithmContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAlgorithm(this); + } +}; + +AlgorithmContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAlgorithm(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.AlgorithmContext = AlgorithmContext; + +TSqlParser.prototype.algorithm = function() { + + var localctx = new AlgorithmContext(this, this._ctx, this.state); + this.enterRule(localctx, 658, TSqlParser.RULE_algorithm); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8234; + _la = this._input.LA(1); + if(!(((((_la - 386)) & ~0x1f) == 0 && ((1 << (_la - 386)) & ((1 << (TSqlParser.AES_128 - 386)) | (1 << (TSqlParser.AES_192 - 386)) | (1 << (TSqlParser.AES_256 - 386)))) !== 0) || _la===TSqlParser.DES || _la===TSqlParser.DESX || ((((_la - 663)) & ~0x1f) == 0 && ((1 << (_la - 663)) & ((1 << (TSqlParser.RC2 - 663)) | (1 << (TSqlParser.RC4 - 663)) | (1 << (TSqlParser.RC4_128 - 663)))) !== 0) || _la===TSqlParser.TRIPLE_DES || _la===TSqlParser.TRIPLE_DES_3KEY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Encryption_mechanismContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_encryption_mechanism; + this.certificate_name = null; // IdContext + this.asym_key_name = null; // IdContext + this.decrypting_Key_name = null; // IdContext + return this; +} + +Encryption_mechanismContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Encryption_mechanismContext.prototype.constructor = Encryption_mechanismContext; + +Encryption_mechanismContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Encryption_mechanismContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Encryption_mechanismContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Encryption_mechanismContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Encryption_mechanismContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Encryption_mechanismContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Encryption_mechanismContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Encryption_mechanismContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Encryption_mechanismContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEncryption_mechanism(this); + } +}; + +Encryption_mechanismContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEncryption_mechanism(this); + } +}; + +Encryption_mechanismContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEncryption_mechanism(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Encryption_mechanismContext = Encryption_mechanismContext; + +TSqlParser.prototype.encryption_mechanism = function() { + + var localctx = new Encryption_mechanismContext(this, this._ctx, this.state); + this.enterRule(localctx, 660, TSqlParser.RULE_encryption_mechanism); + try { + this.state = 8247; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CERTIFICATE: + this.enterOuterAlt(localctx, 1); + this.state = 8236; + this.match(TSqlParser.CERTIFICATE); + this.state = 8237; + localctx.certificate_name = this.id(); + break; + case TSqlParser.ASYMMETRIC: + this.enterOuterAlt(localctx, 2); + this.state = 8238; + this.match(TSqlParser.ASYMMETRIC); + this.state = 8239; + this.match(TSqlParser.KEY); + this.state = 8240; + localctx.asym_key_name = this.id(); + break; + case TSqlParser.SYMMETRIC: + this.enterOuterAlt(localctx, 3); + this.state = 8241; + this.match(TSqlParser.SYMMETRIC); + this.state = 8242; + this.match(TSqlParser.KEY); + this.state = 8243; + localctx.decrypting_Key_name = this.id(); + break; + case TSqlParser.PASSWORD: + this.enterOuterAlt(localctx, 4); + this.state = 8244; + this.match(TSqlParser.PASSWORD); + this.state = 8245; + this.match(TSqlParser.EQUAL); + this.state = 8246; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Decryption_mechanismContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_decryption_mechanism; + this.certificate_name = null; // IdContext + this.asym_key_name = null; // IdContext + this.decrypting_Key_name = null; // IdContext + return this; +} + +Decryption_mechanismContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Decryption_mechanismContext.prototype.constructor = Decryption_mechanismContext; + +Decryption_mechanismContext.prototype.CERTIFICATE = function() { + return this.getToken(TSqlParser.CERTIFICATE, 0); +}; + +Decryption_mechanismContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Decryption_mechanismContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Decryption_mechanismContext.prototype.PASSWORD = function() { + return this.getToken(TSqlParser.PASSWORD, 0); +}; + +Decryption_mechanismContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Decryption_mechanismContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Decryption_mechanismContext.prototype.ASYMMETRIC = function() { + return this.getToken(TSqlParser.ASYMMETRIC, 0); +}; + +Decryption_mechanismContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Decryption_mechanismContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Decryption_mechanismContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDecryption_mechanism(this); + } +}; + +Decryption_mechanismContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDecryption_mechanism(this); + } +}; + +Decryption_mechanismContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDecryption_mechanism(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Decryption_mechanismContext = Decryption_mechanismContext; + +TSqlParser.prototype.decryption_mechanism = function() { + + var localctx = new Decryption_mechanismContext(this, this._ctx, this.state); + this.enterRule(localctx, 662, TSqlParser.RULE_decryption_mechanism); + try { + this.state = 8272; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CERTIFICATE: + this.enterOuterAlt(localctx, 1); + this.state = 8249; + this.match(TSqlParser.CERTIFICATE); + this.state = 8250; + localctx.certificate_name = this.id(); + this.state = 8255; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1146,this._ctx); + if(la_===1) { + this.state = 8251; + this.match(TSqlParser.WITH); + this.state = 8252; + this.match(TSqlParser.PASSWORD); + this.state = 8253; + this.match(TSqlParser.EQUAL); + this.state = 8254; + this.match(TSqlParser.STRING); + + } + break; + case TSqlParser.ASYMMETRIC: + this.enterOuterAlt(localctx, 2); + this.state = 8257; + this.match(TSqlParser.ASYMMETRIC); + this.state = 8258; + this.match(TSqlParser.KEY); + this.state = 8259; + localctx.asym_key_name = this.id(); + this.state = 8264; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1147,this._ctx); + if(la_===1) { + this.state = 8260; + this.match(TSqlParser.WITH); + this.state = 8261; + this.match(TSqlParser.PASSWORD); + this.state = 8262; + this.match(TSqlParser.EQUAL); + this.state = 8263; + this.match(TSqlParser.STRING); + + } + break; + case TSqlParser.SYMMETRIC: + this.enterOuterAlt(localctx, 3); + this.state = 8266; + this.match(TSqlParser.SYMMETRIC); + this.state = 8267; + this.match(TSqlParser.KEY); + this.state = 8268; + localctx.decrypting_Key_name = this.id(); + break; + case TSqlParser.PASSWORD: + this.enterOuterAlt(localctx, 4); + this.state = 8269; + this.match(TSqlParser.PASSWORD); + this.state = 8270; + this.match(TSqlParser.EQUAL); + this.state = 8271; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Grant_permissionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_grant_permission; + return this; +} + +Grant_permissionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Grant_permissionContext.prototype.constructor = Grant_permissionContext; + +Grant_permissionContext.prototype.EXECUTE = function() { + return this.getToken(TSqlParser.EXECUTE, 0); +}; + +Grant_permissionContext.prototype.VIEW = function() { + return this.getToken(TSqlParser.VIEW, 0); +}; + +Grant_permissionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Grant_permissionContext.prototype.TAKE = function() { + return this.getToken(TSqlParser.TAKE, 0); +}; + +Grant_permissionContext.prototype.CONTROL = function() { + return this.getToken(TSqlParser.CONTROL, 0); +}; + +Grant_permissionContext.prototype.CREATE = function() { + return this.getToken(TSqlParser.CREATE, 0); +}; + +Grant_permissionContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Grant_permissionContext.prototype.SHOWPLAN = function() { + return this.getToken(TSqlParser.SHOWPLAN, 0); +}; + +Grant_permissionContext.prototype.IMPERSONATE = function() { + return this.getToken(TSqlParser.IMPERSONATE, 0); +}; + +Grant_permissionContext.prototype.SELECT = function() { + return this.getToken(TSqlParser.SELECT, 0); +}; + +Grant_permissionContext.prototype.REFERENCES = function() { + return this.getToken(TSqlParser.REFERENCES, 0); +}; + +Grant_permissionContext.prototype.INSERT = function() { + return this.getToken(TSqlParser.INSERT, 0); +}; + +Grant_permissionContext.prototype.ALTER = function() { + return this.getToken(TSqlParser.ALTER, 0); +}; + +Grant_permissionContext.prototype.DATABASE = function() { + return this.getToken(TSqlParser.DATABASE, 0); +}; + +Grant_permissionContext.prototype.ANY = function() { + return this.getToken(TSqlParser.ANY, 0); +}; + +Grant_permissionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGrant_permission(this); + } +}; + +Grant_permissionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGrant_permission(this); + } +}; + +Grant_permissionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGrant_permission(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Grant_permissionContext = Grant_permissionContext; + +TSqlParser.prototype.grant_permission = function() { + + var localctx = new Grant_permissionContext(this, this._ctx, this.state); + this.enterRule(localctx, 664, TSqlParser.RULE_grant_permission); + var _la = 0; // Token type + try { + this.state = 8300; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EXECUTE: + this.enterOuterAlt(localctx, 1); + this.state = 8274; + this.match(TSqlParser.EXECUTE); + break; + case TSqlParser.VIEW: + this.enterOuterAlt(localctx, 2); + this.state = 8275; + this.match(TSqlParser.VIEW); + this.state = 8276; + this.id(); + break; + case TSqlParser.TAKE: + this.enterOuterAlt(localctx, 3); + this.state = 8277; + this.match(TSqlParser.TAKE); + this.state = 8278; + this.id(); + break; + case TSqlParser.CONTROL: + this.enterOuterAlt(localctx, 4); + this.state = 8279; + this.match(TSqlParser.CONTROL); + this.state = 8281; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 8280; + this.id(); + } + + break; + case TSqlParser.CREATE: + this.enterOuterAlt(localctx, 5); + this.state = 8283; + this.match(TSqlParser.CREATE); + this.state = 8284; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TABLE || _la===TSqlParser.VIEW)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.SHOWPLAN: + this.enterOuterAlt(localctx, 6); + this.state = 8285; + this.match(TSqlParser.SHOWPLAN); + break; + case TSqlParser.IMPERSONATE: + this.enterOuterAlt(localctx, 7); + this.state = 8286; + this.match(TSqlParser.IMPERSONATE); + break; + case TSqlParser.SELECT: + this.enterOuterAlt(localctx, 8); + this.state = 8287; + this.match(TSqlParser.SELECT); + break; + case TSqlParser.REFERENCES: + this.enterOuterAlt(localctx, 9); + this.state = 8288; + this.match(TSqlParser.REFERENCES); + break; + case TSqlParser.INSERT: + this.enterOuterAlt(localctx, 10); + this.state = 8289; + this.match(TSqlParser.INSERT); + break; + case TSqlParser.ALTER: + this.enterOuterAlt(localctx, 11); + this.state = 8290; + this.match(TSqlParser.ALTER); + this.state = 8298; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ANY || _la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || _la===TSqlParser.DATABASE || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 8292; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ANY) { + this.state = 8291; + this.match(TSqlParser.ANY); + } + + this.state = 8296; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8294; + this.id(); + break; + case TSqlParser.DATABASE: + this.state = 8295; + this.match(TSqlParser.DATABASE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Set_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_set_statement; + this.member_name = null; // IdContext + return this; +} + +Set_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Set_statementContext.prototype.constructor = Set_statementContext; + +Set_statementContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Set_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Set_statementContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Set_statementContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Set_statementContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Set_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Set_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Set_statementContext.prototype.assignment_operator = function() { + return this.getTypedRuleContext(Assignment_operatorContext,0); +}; + +Set_statementContext.prototype.CURSOR = function() { + return this.getToken(TSqlParser.CURSOR, 0); +}; + +Set_statementContext.prototype.declare_set_cursor_common = function() { + return this.getTypedRuleContext(Declare_set_cursor_commonContext,0); +}; + +Set_statementContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Set_statementContext.prototype.READ = function() { + return this.getToken(TSqlParser.READ, 0); +}; + +Set_statementContext.prototype.ONLY = function() { + return this.getToken(TSqlParser.ONLY, 0); +}; + +Set_statementContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Set_statementContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Set_statementContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Set_statementContext.prototype.set_special = function() { + return this.getTypedRuleContext(Set_specialContext,0); +}; + +Set_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSet_statement(this); + } +}; + +Set_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSet_statement(this); + } +}; + +Set_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSet_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Set_statementContext = Set_statementContext; + +TSqlParser.prototype.set_statement = function() { + + var localctx = new Set_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 666, TSqlParser.RULE_set_statement); + var _la = 0; // Token type + try { + this.state = 8341; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1161,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8302; + this.match(TSqlParser.SET); + this.state = 8303; + this.match(TSqlParser.LOCAL_ID); + this.state = 8306; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DOT) { + this.state = 8304; + this.match(TSqlParser.DOT); + this.state = 8305; + localctx.member_name = this.id(); + } + + this.state = 8308; + this.match(TSqlParser.EQUAL); + this.state = 8309; + this.expression(0); + this.state = 8311; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1155,this._ctx); + if(la_===1) { + this.state = 8310; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8313; + this.match(TSqlParser.SET); + this.state = 8314; + this.match(TSqlParser.LOCAL_ID); + this.state = 8315; + this.assignment_operator(); + this.state = 8316; + this.expression(0); + this.state = 8318; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1156,this._ctx); + if(la_===1) { + this.state = 8317; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8320; + this.match(TSqlParser.SET); + this.state = 8321; + this.match(TSqlParser.LOCAL_ID); + this.state = 8322; + this.match(TSqlParser.EQUAL); + this.state = 8323; + this.match(TSqlParser.CURSOR); + this.state = 8324; + this.declare_set_cursor_common(); + this.state = 8335; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 8325; + this.match(TSqlParser.FOR); + this.state = 8333; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.READ: + this.state = 8326; + this.match(TSqlParser.READ); + this.state = 8327; + this.match(TSqlParser.ONLY); + break; + case TSqlParser.UPDATE: + this.state = 8328; + this.match(TSqlParser.UPDATE); + this.state = 8331; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OF) { + this.state = 8329; + this.match(TSqlParser.OF); + this.state = 8330; + this.column_name_list(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + this.state = 8338; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1160,this._ctx); + if(la_===1) { + this.state = 8337; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8340; + this.set_special(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Transaction_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_transaction_statement; + return this; +} + +Transaction_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Transaction_statementContext.prototype.constructor = Transaction_statementContext; + +Transaction_statementContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Transaction_statementContext.prototype.DISTRIBUTED = function() { + return this.getToken(TSqlParser.DISTRIBUTED, 0); +}; + +Transaction_statementContext.prototype.TRAN = function() { + return this.getToken(TSqlParser.TRAN, 0); +}; + +Transaction_statementContext.prototype.TRANSACTION = function() { + return this.getToken(TSqlParser.TRANSACTION, 0); +}; + +Transaction_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Transaction_statementContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Transaction_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Transaction_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Transaction_statementContext.prototype.MARK = function() { + return this.getToken(TSqlParser.MARK, 0); +}; + +Transaction_statementContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Transaction_statementContext.prototype.COMMIT = function() { + return this.getToken(TSqlParser.COMMIT, 0); +}; + +Transaction_statementContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Transaction_statementContext.prototype.DELAYED_DURABILITY = function() { + return this.getToken(TSqlParser.DELAYED_DURABILITY, 0); +}; + +Transaction_statementContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Transaction_statementContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Transaction_statementContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Transaction_statementContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Transaction_statementContext.prototype.WORK = function() { + return this.getToken(TSqlParser.WORK, 0); +}; + +Transaction_statementContext.prototype.ROLLBACK = function() { + return this.getToken(TSqlParser.ROLLBACK, 0); +}; + +Transaction_statementContext.prototype.SAVE = function() { + return this.getToken(TSqlParser.SAVE, 0); +}; + +Transaction_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTransaction_statement(this); + } +}; + +Transaction_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTransaction_statement(this); + } +}; + +Transaction_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTransaction_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Transaction_statementContext = Transaction_statementContext; + +TSqlParser.prototype.transaction_statement = function() { + + var localctx = new Transaction_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 668, TSqlParser.RULE_transaction_statement); + var _la = 0; // Token type + try { + this.state = 8424; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1180,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8343; + this.match(TSqlParser.BEGIN); + this.state = 8344; + this.match(TSqlParser.DISTRIBUTED); + this.state = 8345; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8348; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1162,this._ctx); + if(la_===1) { + this.state = 8346; + this.id(); + + } else if(la_===2) { + this.state = 8347; + this.match(TSqlParser.LOCAL_ID); + + } + this.state = 8351; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1163,this._ctx); + if(la_===1) { + this.state = 8350; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8353; + this.match(TSqlParser.BEGIN); + this.state = 8354; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8364; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1166,this._ctx); + if(la_===1) { + this.state = 8357; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8355; + this.id(); + break; + case TSqlParser.LOCAL_ID: + this.state = 8356; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8362; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1165,this._ctx); + if(la_===1) { + this.state = 8359; + this.match(TSqlParser.WITH); + this.state = 8360; + this.match(TSqlParser.MARK); + this.state = 8361; + this.match(TSqlParser.STRING); + + } + + } + this.state = 8367; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1167,this._ctx); + if(la_===1) { + this.state = 8366; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8369; + this.match(TSqlParser.COMMIT); + this.state = 8370; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8383; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1170,this._ctx); + if(la_===1) { + this.state = 8373; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8371; + this.id(); + break; + case TSqlParser.LOCAL_ID: + this.state = 8372; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8381; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1169,this._ctx); + if(la_===1) { + this.state = 8375; + this.match(TSqlParser.WITH); + this.state = 8376; + this.match(TSqlParser.LR_BRACKET); + this.state = 8377; + this.match(TSqlParser.DELAYED_DURABILITY); + this.state = 8378; + this.match(TSqlParser.EQUAL); + this.state = 8379; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8380; + this.match(TSqlParser.RR_BRACKET); + + } + + } + this.state = 8386; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1171,this._ctx); + if(la_===1) { + this.state = 8385; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8388; + this.match(TSqlParser.COMMIT); + this.state = 8390; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1172,this._ctx); + if(la_===1) { + this.state = 8389; + this.match(TSqlParser.WORK); + + } + this.state = 8393; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1173,this._ctx); + if(la_===1) { + this.state = 8392; + this.match(TSqlParser.SEMI); + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 8395; + this.match(TSqlParser.COMMIT); + this.state = 8396; + this.id(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 8397; + this.match(TSqlParser.ROLLBACK); + this.state = 8398; + this.id(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 8399; + this.match(TSqlParser.ROLLBACK); + this.state = 8400; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8403; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1174,this._ctx); + if(la_===1) { + this.state = 8401; + this.id(); + + } else if(la_===2) { + this.state = 8402; + this.match(TSqlParser.LOCAL_ID); + + } + this.state = 8406; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1175,this._ctx); + if(la_===1) { + this.state = 8405; + this.match(TSqlParser.SEMI); + + } + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 8408; + this.match(TSqlParser.ROLLBACK); + this.state = 8410; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1176,this._ctx); + if(la_===1) { + this.state = 8409; + this.match(TSqlParser.WORK); + + } + this.state = 8413; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1177,this._ctx); + if(la_===1) { + this.state = 8412; + this.match(TSqlParser.SEMI); + + } + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 8415; + this.match(TSqlParser.SAVE); + this.state = 8416; + _la = this._input.LA(1); + if(!(_la===TSqlParser.TRAN || _la===TSqlParser.TRANSACTION)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8419; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1178,this._ctx); + if(la_===1) { + this.state = 8417; + this.id(); + + } else if(la_===2) { + this.state = 8418; + this.match(TSqlParser.LOCAL_ID); + + } + this.state = 8422; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1179,this._ctx); + if(la_===1) { + this.state = 8421; + this.match(TSqlParser.SEMI); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Go_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_go_statement; + this.count = null; // Token + return this; +} + +Go_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Go_statementContext.prototype.constructor = Go_statementContext; + +Go_statementContext.prototype.GO = function() { + return this.getToken(TSqlParser.GO, 0); +}; + +Go_statementContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Go_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGo_statement(this); + } +}; + +Go_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGo_statement(this); + } +}; + +Go_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGo_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Go_statementContext = Go_statementContext; + +TSqlParser.prototype.go_statement = function() { + + var localctx = new Go_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 670, TSqlParser.RULE_go_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8426; + this.match(TSqlParser.GO); + this.state = 8428; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1181,this._ctx); + if(la_===1) { + this.state = 8427; + localctx.count = this.match(TSqlParser.DECIMAL); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Use_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_use_statement; + this.database = null; // IdContext + return this; +} + +Use_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Use_statementContext.prototype.constructor = Use_statementContext; + +Use_statementContext.prototype.USE = function() { + return this.getToken(TSqlParser.USE, 0); +}; + +Use_statementContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Use_statementContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Use_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUse_statement(this); + } +}; + +Use_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUse_statement(this); + } +}; + +Use_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUse_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Use_statementContext = Use_statementContext; + +TSqlParser.prototype.use_statement = function() { + + var localctx = new Use_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 672, TSqlParser.RULE_use_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8430; + this.match(TSqlParser.USE); + this.state = 8431; + localctx.database = this.id(); + this.state = 8433; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1182,this._ctx); + if(la_===1) { + this.state = 8432; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Setuser_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_setuser_statement; + this.user = null; // Token + return this; +} + +Setuser_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Setuser_statementContext.prototype.constructor = Setuser_statementContext; + +Setuser_statementContext.prototype.SETUSER = function() { + return this.getToken(TSqlParser.SETUSER, 0); +}; + +Setuser_statementContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Setuser_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSetuser_statement(this); + } +}; + +Setuser_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSetuser_statement(this); + } +}; + +Setuser_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSetuser_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Setuser_statementContext = Setuser_statementContext; + +TSqlParser.prototype.setuser_statement = function() { + + var localctx = new Setuser_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 674, TSqlParser.RULE_setuser_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8435; + this.match(TSqlParser.SETUSER); + this.state = 8437; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1183,this._ctx); + if(la_===1) { + this.state = 8436; + localctx.user = this.match(TSqlParser.STRING); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Reconfigure_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_reconfigure_statement; + return this; +} + +Reconfigure_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Reconfigure_statementContext.prototype.constructor = Reconfigure_statementContext; + +Reconfigure_statementContext.prototype.RECONFIGURE = function() { + return this.getToken(TSqlParser.RECONFIGURE, 0); +}; + +Reconfigure_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Reconfigure_statementContext.prototype.OVERRIDE = function() { + return this.getToken(TSqlParser.OVERRIDE, 0); +}; + +Reconfigure_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterReconfigure_statement(this); + } +}; + +Reconfigure_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitReconfigure_statement(this); + } +}; + +Reconfigure_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitReconfigure_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Reconfigure_statementContext = Reconfigure_statementContext; + +TSqlParser.prototype.reconfigure_statement = function() { + + var localctx = new Reconfigure_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 676, TSqlParser.RULE_reconfigure_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8439; + this.match(TSqlParser.RECONFIGURE); + this.state = 8442; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1184,this._ctx); + if(la_===1) { + this.state = 8440; + this.match(TSqlParser.WITH); + this.state = 8441; + this.match(TSqlParser.OVERRIDE); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Shutdown_statementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_shutdown_statement; + return this; +} + +Shutdown_statementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Shutdown_statementContext.prototype.constructor = Shutdown_statementContext; + +Shutdown_statementContext.prototype.SHUTDOWN = function() { + return this.getToken(TSqlParser.SHUTDOWN, 0); +}; + +Shutdown_statementContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Shutdown_statementContext.prototype.NOWAIT = function() { + return this.getToken(TSqlParser.NOWAIT, 0); +}; + +Shutdown_statementContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterShutdown_statement(this); + } +}; + +Shutdown_statementContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitShutdown_statement(this); + } +}; + +Shutdown_statementContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitShutdown_statement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Shutdown_statementContext = Shutdown_statementContext; + +TSqlParser.prototype.shutdown_statement = function() { + + var localctx = new Shutdown_statementContext(this, this._ctx, this.state); + this.enterRule(localctx, 678, TSqlParser.RULE_shutdown_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8444; + this.match(TSqlParser.SHUTDOWN); + this.state = 8447; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1185,this._ctx); + if(la_===1) { + this.state = 8445; + this.match(TSqlParser.WITH); + this.state = 8446; + this.match(TSqlParser.NOWAIT); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dbcc_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dbcc_clause; + this.name = null; // Simple_idContext + return this; +} + +Dbcc_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dbcc_clauseContext.prototype.constructor = Dbcc_clauseContext; + +Dbcc_clauseContext.prototype.DBCC = function() { + return this.getToken(TSqlParser.DBCC, 0); +}; + +Dbcc_clauseContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +Dbcc_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Dbcc_clauseContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +Dbcc_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Dbcc_clauseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Dbcc_clauseContext.prototype.dbcc_options = function() { + return this.getTypedRuleContext(Dbcc_optionsContext,0); +}; + +Dbcc_clauseContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Dbcc_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDbcc_clause(this); + } +}; + +Dbcc_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDbcc_clause(this); + } +}; + +Dbcc_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDbcc_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dbcc_clauseContext = Dbcc_clauseContext; + +TSqlParser.prototype.dbcc_clause = function() { + + var localctx = new Dbcc_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 680, TSqlParser.RULE_dbcc_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8449; + this.match(TSqlParser.DBCC); + this.state = 8450; + localctx.name = this.simple_id(); + this.state = 8455; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1186,this._ctx); + if(la_===1) { + this.state = 8451; + this.match(TSqlParser.LR_BRACKET); + this.state = 8452; + this.expression_list(); + this.state = 8453; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 8459; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1187,this._ctx); + if(la_===1) { + this.state = 8457; + this.match(TSqlParser.WITH); + this.state = 8458; + this.dbcc_options(); + + } + this.state = 8462; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1188,this._ctx); + if(la_===1) { + this.state = 8461; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Dbcc_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_dbcc_options; + return this; +} + +Dbcc_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Dbcc_optionsContext.prototype.constructor = Dbcc_optionsContext; + +Dbcc_optionsContext.prototype.simple_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_idContext); + } else { + return this.getTypedRuleContext(Simple_idContext,i); + } +}; + +Dbcc_optionsContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Dbcc_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDbcc_options(this); + } +}; + +Dbcc_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDbcc_options(this); + } +}; + +Dbcc_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDbcc_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Dbcc_optionsContext = Dbcc_optionsContext; + +TSqlParser.prototype.dbcc_options = function() { + + var localctx = new Dbcc_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 682, TSqlParser.RULE_dbcc_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8464; + this.simple_id(); + this.state = 8467; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 8465; + this.match(TSqlParser.COMMA); + this.state = 8466; + this.simple_id(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Execute_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_execute_clause; + this.clause = null; // Token + return this; +} + +Execute_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Execute_clauseContext.prototype.constructor = Execute_clauseContext; + +Execute_clauseContext.prototype.EXECUTE = function() { + return this.getToken(TSqlParser.EXECUTE, 0); +}; + +Execute_clauseContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Execute_clauseContext.prototype.CALLER = function() { + return this.getToken(TSqlParser.CALLER, 0); +}; + +Execute_clauseContext.prototype.SELF = function() { + return this.getToken(TSqlParser.SELF, 0); +}; + +Execute_clauseContext.prototype.OWNER = function() { + return this.getToken(TSqlParser.OWNER, 0); +}; + +Execute_clauseContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Execute_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExecute_clause(this); + } +}; + +Execute_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExecute_clause(this); + } +}; + +Execute_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExecute_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Execute_clauseContext = Execute_clauseContext; + +TSqlParser.prototype.execute_clause = function() { + + var localctx = new Execute_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 684, TSqlParser.RULE_execute_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8469; + this.match(TSqlParser.EXECUTE); + this.state = 8470; + this.match(TSqlParser.AS); + this.state = 8471; + localctx.clause = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.CALLER || _la===TSqlParser.OWNER || _la===TSqlParser.SELF || _la===TSqlParser.STRING)) { + localctx.clause = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_localContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_local; + return this; +} + +Declare_localContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_localContext.prototype.constructor = Declare_localContext; + +Declare_localContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Declare_localContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Declare_localContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Declare_localContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Declare_localContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Declare_localContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_local(this); + } +}; + +Declare_localContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_local(this); + } +}; + +Declare_localContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_local(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_localContext = Declare_localContext; + +TSqlParser.prototype.declare_local = function() { + + var localctx = new Declare_localContext(this, this._ctx, this.state); + this.enterRule(localctx, 686, TSqlParser.RULE_declare_local); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8473; + this.match(TSqlParser.LOCAL_ID); + this.state = 8475; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 8474; + this.match(TSqlParser.AS); + } + + this.state = 8477; + this.data_type(); + this.state = 8480; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.EQUAL) { + this.state = 8478; + this.match(TSqlParser.EQUAL); + this.state = 8479; + this.expression(0); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_type_definitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_type_definition; + return this; +} + +Table_type_definitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_type_definitionContext.prototype.constructor = Table_type_definitionContext; + +Table_type_definitionContext.prototype.TABLE = function() { + return this.getToken(TSqlParser.TABLE, 0); +}; + +Table_type_definitionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Table_type_definitionContext.prototype.column_def_table_constraints = function() { + return this.getTypedRuleContext(Column_def_table_constraintsContext,0); +}; + +Table_type_definitionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Table_type_definitionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_type_definition(this); + } +}; + +Table_type_definitionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_type_definition(this); + } +}; + +Table_type_definitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_type_definition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_type_definitionContext = Table_type_definitionContext; + +TSqlParser.prototype.table_type_definition = function() { + + var localctx = new Table_type_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 688, TSqlParser.RULE_table_type_definition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8482; + this.match(TSqlParser.TABLE); + this.state = 8483; + this.match(TSqlParser.LR_BRACKET); + this.state = 8484; + this.column_def_table_constraints(); + this.state = 8485; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Xml_type_definitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_xml_type_definition; + return this; +} + +Xml_type_definitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Xml_type_definitionContext.prototype.constructor = Xml_type_definitionContext; + +Xml_type_definitionContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Xml_type_definitionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Xml_type_definitionContext.prototype.xml_schema_collection = function() { + return this.getTypedRuleContext(Xml_schema_collectionContext,0); +}; + +Xml_type_definitionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Xml_type_definitionContext.prototype.CONTENT = function() { + return this.getToken(TSqlParser.CONTENT, 0); +}; + +Xml_type_definitionContext.prototype.DOCUMENT = function() { + return this.getToken(TSqlParser.DOCUMENT, 0); +}; + +Xml_type_definitionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXml_type_definition(this); + } +}; + +Xml_type_definitionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXml_type_definition(this); + } +}; + +Xml_type_definitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXml_type_definition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Xml_type_definitionContext = Xml_type_definitionContext; + +TSqlParser.prototype.xml_type_definition = function() { + + var localctx = new Xml_type_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 690, TSqlParser.RULE_xml_type_definition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8487; + this.match(TSqlParser.XML); + this.state = 8488; + this.match(TSqlParser.LR_BRACKET); + this.state = 8490; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTENT || _la===TSqlParser.DOCUMENT) { + this.state = 8489; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CONTENT || _la===TSqlParser.DOCUMENT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8492; + this.xml_schema_collection(); + this.state = 8493; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Xml_schema_collectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_xml_schema_collection; + return this; +} + +Xml_schema_collectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Xml_schema_collectionContext.prototype.constructor = Xml_schema_collectionContext; + +Xml_schema_collectionContext.prototype.ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ID); + } else { + return this.getToken(TSqlParser.ID, i); + } +}; + + +Xml_schema_collectionContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Xml_schema_collectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXml_schema_collection(this); + } +}; + +Xml_schema_collectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXml_schema_collection(this); + } +}; + +Xml_schema_collectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXml_schema_collection(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Xml_schema_collectionContext = Xml_schema_collectionContext; + +TSqlParser.prototype.xml_schema_collection = function() { + + var localctx = new Xml_schema_collectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 692, TSqlParser.RULE_xml_schema_collection); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8495; + this.match(TSqlParser.ID); + this.state = 8496; + this.match(TSqlParser.DOT); + this.state = 8497; + this.match(TSqlParser.ID); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_def_table_constraintsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_def_table_constraints; + return this; +} + +Column_def_table_constraintsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_def_table_constraintsContext.prototype.constructor = Column_def_table_constraintsContext; + +Column_def_table_constraintsContext.prototype.column_def_table_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_def_table_constraintContext); + } else { + return this.getTypedRuleContext(Column_def_table_constraintContext,i); + } +}; + +Column_def_table_constraintsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Column_def_table_constraintsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_def_table_constraints(this); + } +}; + +Column_def_table_constraintsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_def_table_constraints(this); + } +}; + +Column_def_table_constraintsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_def_table_constraints(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_def_table_constraintsContext = Column_def_table_constraintsContext; + +TSqlParser.prototype.column_def_table_constraints = function() { + + var localctx = new Column_def_table_constraintsContext(this, this._ctx, this.state); + this.enterRule(localctx, 694, TSqlParser.RULE_column_def_table_constraints); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8499; + this.column_def_table_constraint(); + this.state = 8506; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1194,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 8501; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 8500; + this.match(TSqlParser.COMMA); + } + + this.state = 8503; + this.column_def_table_constraint(); + } + this.state = 8508; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1194,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_def_table_constraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_def_table_constraint; + return this; +} + +Column_def_table_constraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_def_table_constraintContext.prototype.constructor = Column_def_table_constraintContext; + +Column_def_table_constraintContext.prototype.column_definition = function() { + return this.getTypedRuleContext(Column_definitionContext,0); +}; + +Column_def_table_constraintContext.prototype.materialized_column_definition = function() { + return this.getTypedRuleContext(Materialized_column_definitionContext,0); +}; + +Column_def_table_constraintContext.prototype.table_constraint = function() { + return this.getTypedRuleContext(Table_constraintContext,0); +}; + +Column_def_table_constraintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_def_table_constraint(this); + } +}; + +Column_def_table_constraintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_def_table_constraint(this); + } +}; + +Column_def_table_constraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_def_table_constraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_def_table_constraintContext = Column_def_table_constraintContext; + +TSqlParser.prototype.column_def_table_constraint = function() { + + var localctx = new Column_def_table_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 696, TSqlParser.RULE_column_def_table_constraint); + try { + this.state = 8512; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1195,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8509; + this.column_definition(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8510; + this.materialized_column_definition(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8511; + this.table_constraint(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_definitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_definition; + this.constraint = null; // IdContext + this.seed = null; // Token + this.increment = null; // Token + return this; +} + +Column_definitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_definitionContext.prototype.constructor = Column_definitionContext; + +Column_definitionContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Column_definitionContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Column_definitionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Column_definitionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Column_definitionContext.prototype.COLLATE = function() { + return this.getToken(TSqlParser.COLLATE, 0); +}; + +Column_definitionContext.prototype.null_notnull = function() { + return this.getTypedRuleContext(Null_notnullContext,0); +}; + +Column_definitionContext.prototype.null_or_default = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Null_or_defaultContext); + } else { + return this.getTypedRuleContext(Null_or_defaultContext,i); + } +}; + +Column_definitionContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Column_definitionContext.prototype.ROWGUIDCOL = function() { + return this.getToken(TSqlParser.ROWGUIDCOL, 0); +}; + +Column_definitionContext.prototype.column_constraint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_constraintContext); + } else { + return this.getTypedRuleContext(Column_constraintContext,i); + } +}; + +Column_definitionContext.prototype.CONSTRAINT = function() { + return this.getToken(TSqlParser.CONSTRAINT, 0); +}; + +Column_definitionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Column_definitionContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Column_definitionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Column_definitionContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Column_definitionContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Column_definitionContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Column_definitionContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Column_definitionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_definition(this); + } +}; + +Column_definitionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_definition(this); + } +}; + +Column_definitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_definition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_definitionContext = Column_definitionContext; + +TSqlParser.prototype.column_definition = function() { + + var localctx = new Column_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 698, TSqlParser.RULE_column_definition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8514; + this.id(); + this.state = 8518; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DOUBLE: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8515; + this.data_type(); + break; + case TSqlParser.AS: + this.state = 8516; + this.match(TSqlParser.AS); + this.state = 8517; + this.expression(0); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8522; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COLLATE) { + this.state = 8520; + this.match(TSqlParser.COLLATE); + this.state = 8521; + this.id(); + } + + this.state = 8525; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1198,this._ctx); + if(la_===1) { + this.state = 8524; + this.null_notnull(); + + } + this.state = 8548; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1203,this._ctx); + if(la_===1) { + this.state = 8529; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONSTRAINT) { + this.state = 8527; + this.match(TSqlParser.CONSTRAINT); + this.state = 8528; + localctx.constraint = this.id(); + } + + this.state = 8531; + this.null_or_default(); + this.state = 8533; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1200,this._ctx); + if(la_===1) { + this.state = 8532; + this.null_or_default(); + + } + + } else if(la_===2) { + this.state = 8535; + this.match(TSqlParser.IDENTITY); + this.state = 8541; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1201,this._ctx); + if(la_===1) { + this.state = 8536; + this.match(TSqlParser.LR_BRACKET); + this.state = 8537; + localctx.seed = this.match(TSqlParser.DECIMAL); + this.state = 8538; + this.match(TSqlParser.COMMA); + this.state = 8539; + localctx.increment = this.match(TSqlParser.DECIMAL); + this.state = 8540; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 8546; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1202,this._ctx); + if(la_===1) { + this.state = 8543; + this.match(TSqlParser.NOT); + this.state = 8544; + this.match(TSqlParser.FOR); + this.state = 8545; + this.match(TSqlParser.REPLICATION); + + } + + } + this.state = 8551; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ROWGUIDCOL) { + this.state = 8550; + this.match(TSqlParser.ROWGUIDCOL); + } + + this.state = 8556; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1205,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 8553; + this.column_constraint(); + } + this.state = 8558; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1205,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Materialized_column_definitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_materialized_column_definition; + return this; +} + +Materialized_column_definitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Materialized_column_definitionContext.prototype.constructor = Materialized_column_definitionContext; + +Materialized_column_definitionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Materialized_column_definitionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Materialized_column_definitionContext.prototype.COMPUTE = function() { + return this.getToken(TSqlParser.COMPUTE, 0); +}; + +Materialized_column_definitionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Materialized_column_definitionContext.prototype.MATERIALIZED = function() { + return this.getToken(TSqlParser.MATERIALIZED, 0); +}; + +Materialized_column_definitionContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Materialized_column_definitionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMaterialized_column_definition(this); + } +}; + +Materialized_column_definitionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMaterialized_column_definition(this); + } +}; + +Materialized_column_definitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMaterialized_column_definition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Materialized_column_definitionContext = Materialized_column_definitionContext; + +TSqlParser.prototype.materialized_column_definition = function() { + + var localctx = new Materialized_column_definitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 700, TSqlParser.RULE_materialized_column_definition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8559; + this.id(); + this.state = 8560; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AS || _la===TSqlParser.COMPUTE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8561; + this.expression(0); + this.state = 8565; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1206,this._ctx); + if(la_===1) { + this.state = 8562; + this.match(TSqlParser.MATERIALIZED); + + } else if(la_===2) { + this.state = 8563; + this.match(TSqlParser.NOT); + this.state = 8564; + this.match(TSqlParser.MATERIALIZED); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_constraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_constraint; + this.constraint = null; // IdContext + this.pk = null; // Column_name_listContext + return this; +} + +Column_constraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_constraintContext.prototype.constructor = Column_constraintContext; + +Column_constraintContext.prototype.CHECK = function() { + return this.getToken(TSqlParser.CHECK, 0); +}; + +Column_constraintContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Column_constraintContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Column_constraintContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Column_constraintContext.prototype.REFERENCES = function() { + return this.getToken(TSqlParser.REFERENCES, 0); +}; + +Column_constraintContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Column_constraintContext.prototype.null_notnull = function() { + return this.getTypedRuleContext(Null_notnullContext,0); +}; + +Column_constraintContext.prototype.CONSTRAINT = function() { + return this.getToken(TSqlParser.CONSTRAINT, 0); +}; + +Column_constraintContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Column_constraintContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Column_constraintContext.prototype.PRIMARY = function() { + return this.getToken(TSqlParser.PRIMARY, 0); +}; + +Column_constraintContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Column_constraintContext.prototype.UNIQUE = function() { + return this.getToken(TSqlParser.UNIQUE, 0); +}; + +Column_constraintContext.prototype.clustered = function() { + return this.getTypedRuleContext(ClusteredContext,0); +}; + +Column_constraintContext.prototype.index_options = function() { + return this.getTypedRuleContext(Index_optionsContext,0); +}; + +Column_constraintContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Column_constraintContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Column_constraintContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Column_constraintContext.prototype.FOREIGN = function() { + return this.getToken(TSqlParser.FOREIGN, 0); +}; + +Column_constraintContext.prototype.on_delete = function() { + return this.getTypedRuleContext(On_deleteContext,0); +}; + +Column_constraintContext.prototype.on_update = function() { + return this.getTypedRuleContext(On_updateContext,0); +}; + +Column_constraintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_constraint(this); + } +}; + +Column_constraintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_constraint(this); + } +}; + +Column_constraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_constraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_constraintContext = Column_constraintContext; + +TSqlParser.prototype.column_constraint = function() { + + var localctx = new Column_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 702, TSqlParser.RULE_column_constraint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8569; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONSTRAINT) { + this.state = 8567; + this.match(TSqlParser.CONSTRAINT); + this.state = 8568; + localctx.constraint = this.id(); + } + + this.state = 8608; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PRIMARY: + case TSqlParser.UNIQUE: + this.state = 8574; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PRIMARY: + this.state = 8571; + this.match(TSqlParser.PRIMARY); + this.state = 8572; + this.match(TSqlParser.KEY); + break; + case TSqlParser.UNIQUE: + this.state = 8573; + this.match(TSqlParser.UNIQUE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8577; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CLUSTERED || _la===TSqlParser.NONCLUSTERED) { + this.state = 8576; + this.clustered(); + } + + this.state = 8580; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1210,this._ctx); + if(la_===1) { + this.state = 8579; + this.index_options(); + + } + break; + case TSqlParser.CHECK: + this.state = 8582; + this.match(TSqlParser.CHECK); + this.state = 8586; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 8583; + this.match(TSqlParser.NOT); + this.state = 8584; + this.match(TSqlParser.FOR); + this.state = 8585; + this.match(TSqlParser.REPLICATION); + } + + this.state = 8588; + this.match(TSqlParser.LR_BRACKET); + this.state = 8589; + this.search_condition(); + this.state = 8590; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.FOREIGN: + case TSqlParser.REFERENCES: + this.state = 8594; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOREIGN) { + this.state = 8592; + this.match(TSqlParser.FOREIGN); + this.state = 8593; + this.match(TSqlParser.KEY); + } + + this.state = 8596; + this.match(TSqlParser.REFERENCES); + this.state = 8597; + this.table_name(); + this.state = 8598; + this.match(TSqlParser.LR_BRACKET); + this.state = 8599; + localctx.pk = this.column_name_list(); + this.state = 8600; + this.match(TSqlParser.RR_BRACKET); + this.state = 8602; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1213,this._ctx); + if(la_===1) { + this.state = 8601; + this.on_delete(); + + } + this.state = 8605; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 8604; + this.on_update(); + } + + break; + case TSqlParser.NOT: + case TSqlParser.NULL: + this.state = 8607; + this.null_notnull(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_constraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_constraint; + this.constraint = null; // IdContext + this.fk = null; // Column_name_listContext + this.pk = null; // Column_name_listContext + return this; +} + +Table_constraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_constraintContext.prototype.constructor = Table_constraintContext; + +Table_constraintContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Table_constraintContext.prototype.column_name_list_with_order = function() { + return this.getTypedRuleContext(Column_name_list_with_orderContext,0); +}; + +Table_constraintContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Table_constraintContext.prototype.CHECK = function() { + return this.getToken(TSqlParser.CHECK, 0); +}; + +Table_constraintContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Table_constraintContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Table_constraintContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Table_constraintContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Table_constraintContext.prototype.FOREIGN = function() { + return this.getToken(TSqlParser.FOREIGN, 0); +}; + +Table_constraintContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Table_constraintContext.prototype.REFERENCES = function() { + return this.getToken(TSqlParser.REFERENCES, 0); +}; + +Table_constraintContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Table_constraintContext.prototype.CONSTRAINT = function() { + return this.getToken(TSqlParser.CONSTRAINT, 0); +}; + +Table_constraintContext.prototype.column_name_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_name_listContext); + } else { + return this.getTypedRuleContext(Column_name_listContext,i); + } +}; + +Table_constraintContext.prototype.PRIMARY = function() { + return this.getToken(TSqlParser.PRIMARY, 0); +}; + +Table_constraintContext.prototype.UNIQUE = function() { + return this.getToken(TSqlParser.UNIQUE, 0); +}; + +Table_constraintContext.prototype.clustered = function() { + return this.getTypedRuleContext(ClusteredContext,0); +}; + +Table_constraintContext.prototype.index_options = function() { + return this.getTypedRuleContext(Index_optionsContext,0); +}; + +Table_constraintContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Table_constraintContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Table_constraintContext.prototype.REPLICATION = function() { + return this.getToken(TSqlParser.REPLICATION, 0); +}; + +Table_constraintContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Table_constraintContext.prototype.PLUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.PLUS); + } else { + return this.getToken(TSqlParser.PLUS, i); + } +}; + + +Table_constraintContext.prototype.function_call = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Function_callContext); + } else { + return this.getTypedRuleContext(Function_callContext,i); + } +}; + +Table_constraintContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Table_constraintContext.prototype.on_delete = function() { + return this.getTypedRuleContext(On_deleteContext,0); +}; + +Table_constraintContext.prototype.on_update = function() { + return this.getTypedRuleContext(On_updateContext,0); +}; + +Table_constraintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_constraint(this); + } +}; + +Table_constraintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_constraint(this); + } +}; + +Table_constraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_constraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_constraintContext = Table_constraintContext; + +TSqlParser.prototype.table_constraint = function() { + + var localctx = new Table_constraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 704, TSqlParser.RULE_table_constraint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8612; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONSTRAINT) { + this.state = 8610; + this.match(TSqlParser.CONSTRAINT); + this.state = 8611; + localctx.constraint = this.id(); + } + + this.state = 8678; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PRIMARY: + case TSqlParser.UNIQUE: + this.state = 8617; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.PRIMARY: + this.state = 8614; + this.match(TSqlParser.PRIMARY); + this.state = 8615; + this.match(TSqlParser.KEY); + break; + case TSqlParser.UNIQUE: + this.state = 8616; + this.match(TSqlParser.UNIQUE); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8620; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CLUSTERED || _la===TSqlParser.NONCLUSTERED) { + this.state = 8619; + this.clustered(); + } + + this.state = 8622; + this.match(TSqlParser.LR_BRACKET); + this.state = 8623; + this.column_name_list_with_order(); + this.state = 8624; + this.match(TSqlParser.RR_BRACKET); + this.state = 8626; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1219,this._ctx); + if(la_===1) { + this.state = 8625; + this.index_options(); + + } + this.state = 8630; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 8628; + this.match(TSqlParser.ON); + this.state = 8629; + this.id(); + } + + break; + case TSqlParser.CHECK: + this.state = 8632; + this.match(TSqlParser.CHECK); + this.state = 8636; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 8633; + this.match(TSqlParser.NOT); + this.state = 8634; + this.match(TSqlParser.FOR); + this.state = 8635; + this.match(TSqlParser.REPLICATION); + } + + this.state = 8638; + this.match(TSqlParser.LR_BRACKET); + this.state = 8639; + this.search_condition(); + this.state = 8640; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.DEFAULT: + this.state = 8642; + this.match(TSqlParser.DEFAULT); + this.state = 8644; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 8643; + this.match(TSqlParser.LR_BRACKET); + } + + this.state = 8650; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8650; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STRING: + this.state = 8646; + this.match(TSqlParser.STRING); + break; + case TSqlParser.PLUS: + this.state = 8647; + this.match(TSqlParser.PLUS); + break; + case TSqlParser.CALLED: + case TSqlParser.COALESCE: + case TSqlParser.CONVERT: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.IDENTITY: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.RIGHT: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.ID: + this.state = 8648; + this.function_call(); + break; + case TSqlParser.DECIMAL: + this.state = 8649; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8652; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(((((_la - 38)) & ~0x1f) == 0 && ((1 << (_la - 38)) & ((1 << (TSqlParser.CALLED - 38)) | (1 << (TSqlParser.COALESCE - 38)) | (1 << (TSqlParser.CONVERT - 38)))) !== 0) || ((((_la - 76)) & ~0x1f) == 0 && ((1 << (_la - 76)) & ((1 << (TSqlParser.CURRENT_TIMESTAMP - 76)) | (1 << (TSqlParser.CURRENT_USER - 76)) | (1 << (TSqlParser.DATA_COMPRESSION - 76)))) !== 0) || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 148)) & ~0x1f) == 0 && ((1 << (_la - 148)) & ((1 << (TSqlParser.IDENTITY - 148)) | (1 << (TSqlParser.IIF - 148)) | (1 << (TSqlParser.INIT - 148)) | (1 << (TSqlParser.ISNULL - 148)) | (1 << (TSqlParser.KEY - 148)) | (1 << (TSqlParser.LEFT - 148)))) !== 0) || _la===TSqlParser.MASTER || _la===TSqlParser.MAX_MEMORY || ((((_la - 222)) & ~0x1f) == 0 && ((1 << (_la - 222)) & ((1 << (TSqlParser.NULLIF - 222)) | (1 << (TSqlParser.OFFSETS - 222)) | (1 << (TSqlParser.PAGE - 222)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.RIGHT - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SESSION_USER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.SYSTEM_USER - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.LOCAL_ID - 796)) | (1 << (TSqlParser.DECIMAL - 796)) | (1 << (TSqlParser.ID - 796)) | (1 << (TSqlParser.STRING - 796)))) !== 0) || _la===TSqlParser.PLUS); + this.state = 8655; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RR_BRACKET) { + this.state = 8654; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 8657; + this.match(TSqlParser.FOR); + this.state = 8658; + this.id(); + break; + case TSqlParser.FOREIGN: + this.state = 8659; + this.match(TSqlParser.FOREIGN); + this.state = 8660; + this.match(TSqlParser.KEY); + this.state = 8661; + this.match(TSqlParser.LR_BRACKET); + this.state = 8662; + localctx.fk = this.column_name_list(); + this.state = 8663; + this.match(TSqlParser.RR_BRACKET); + this.state = 8664; + this.match(TSqlParser.REFERENCES); + this.state = 8665; + this.table_name(); + this.state = 8670; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1226,this._ctx); + if(la_===1) { + this.state = 8666; + this.match(TSqlParser.LR_BRACKET); + this.state = 8667; + localctx.pk = this.column_name_list(); + this.state = 8668; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 8673; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1227,this._ctx); + if(la_===1) { + this.state = 8672; + this.on_delete(); + + } + this.state = 8676; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ON) { + this.state = 8675; + this.on_update(); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function On_deleteContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_on_delete; + return this; +} + +On_deleteContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +On_deleteContext.prototype.constructor = On_deleteContext; + +On_deleteContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +On_deleteContext.prototype.DELETE = function() { + return this.getToken(TSqlParser.DELETE, 0); +}; + +On_deleteContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +On_deleteContext.prototype.ACTION = function() { + return this.getToken(TSqlParser.ACTION, 0); +}; + +On_deleteContext.prototype.CASCADE = function() { + return this.getToken(TSqlParser.CASCADE, 0); +}; + +On_deleteContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +On_deleteContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +On_deleteContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +On_deleteContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOn_delete(this); + } +}; + +On_deleteContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOn_delete(this); + } +}; + +On_deleteContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOn_delete(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.On_deleteContext = On_deleteContext; + +TSqlParser.prototype.on_delete = function() { + + var localctx = new On_deleteContext(this, this._ctx, this.state); + this.enterRule(localctx, 706, TSqlParser.RULE_on_delete); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8680; + this.match(TSqlParser.ON); + this.state = 8681; + this.match(TSqlParser.DELETE); + this.state = 8689; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1230,this._ctx); + switch(la_) { + case 1: + this.state = 8682; + this.match(TSqlParser.NO); + this.state = 8683; + this.match(TSqlParser.ACTION); + break; + + case 2: + this.state = 8684; + this.match(TSqlParser.CASCADE); + break; + + case 3: + this.state = 8685; + this.match(TSqlParser.SET); + this.state = 8686; + this.match(TSqlParser.NULL); + break; + + case 4: + this.state = 8687; + this.match(TSqlParser.SET); + this.state = 8688; + this.match(TSqlParser.DEFAULT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function On_updateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_on_update; + return this; +} + +On_updateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +On_updateContext.prototype.constructor = On_updateContext; + +On_updateContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +On_updateContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +On_updateContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +On_updateContext.prototype.ACTION = function() { + return this.getToken(TSqlParser.ACTION, 0); +}; + +On_updateContext.prototype.CASCADE = function() { + return this.getToken(TSqlParser.CASCADE, 0); +}; + +On_updateContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +On_updateContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +On_updateContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +On_updateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOn_update(this); + } +}; + +On_updateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOn_update(this); + } +}; + +On_updateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOn_update(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.On_updateContext = On_updateContext; + +TSqlParser.prototype.on_update = function() { + + var localctx = new On_updateContext(this, this._ctx, this.state); + this.enterRule(localctx, 708, TSqlParser.RULE_on_update); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8691; + this.match(TSqlParser.ON); + this.state = 8692; + this.match(TSqlParser.UPDATE); + this.state = 8700; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1231,this._ctx); + switch(la_) { + case 1: + this.state = 8693; + this.match(TSqlParser.NO); + this.state = 8694; + this.match(TSqlParser.ACTION); + break; + + case 2: + this.state = 8695; + this.match(TSqlParser.CASCADE); + break; + + case 3: + this.state = 8696; + this.match(TSqlParser.SET); + this.state = 8697; + this.match(TSqlParser.NULL); + break; + + case 4: + this.state = 8698; + this.match(TSqlParser.SET); + this.state = 8699; + this.match(TSqlParser.DEFAULT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Index_optionsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_index_options; + return this; +} + +Index_optionsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Index_optionsContext.prototype.constructor = Index_optionsContext; + +Index_optionsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Index_optionsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Index_optionsContext.prototype.index_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_optionContext); + } else { + return this.getTypedRuleContext(Index_optionContext,i); + } +}; + +Index_optionsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Index_optionsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Index_optionsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIndex_options(this); + } +}; + +Index_optionsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIndex_options(this); + } +}; + +Index_optionsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIndex_options(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Index_optionsContext = Index_optionsContext; + +TSqlParser.prototype.index_options = function() { + + var localctx = new Index_optionsContext(this, this._ctx, this.state); + this.enterRule(localctx, 710, TSqlParser.RULE_index_options); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8702; + this.match(TSqlParser.WITH); + this.state = 8703; + this.match(TSqlParser.LR_BRACKET); + this.state = 8704; + this.index_option(); + this.state = 8709; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8705; + this.match(TSqlParser.COMMA); + this.state = 8706; + this.index_option(); + this.state = 8711; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8712; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Index_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_index_option; + return this; +} + +Index_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Index_optionContext.prototype.constructor = Index_optionContext; + +Index_optionContext.prototype.simple_id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Simple_idContext); + } else { + return this.getTypedRuleContext(Simple_idContext,i); + } +}; + +Index_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Index_optionContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Index_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Index_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIndex_option(this); + } +}; + +Index_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIndex_option(this); + } +}; + +Index_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIndex_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Index_optionContext = Index_optionContext; + +TSqlParser.prototype.index_option = function() { + + var localctx = new Index_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 712, TSqlParser.RULE_index_option); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8714; + this.simple_id(); + this.state = 8715; + this.match(TSqlParser.EQUAL); + this.state = 8719; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.ID: + this.state = 8716; + this.simple_id(); + break; + case TSqlParser.OFF: + case TSqlParser.ON: + this.state = 8717; + this.on_off(); + break; + case TSqlParser.DECIMAL: + this.state = 8718; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_cursorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_cursor; + return this; +} + +Declare_cursorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_cursorContext.prototype.constructor = Declare_cursorContext; + +Declare_cursorContext.prototype.DECLARE = function() { + return this.getToken(TSqlParser.DECLARE, 0); +}; + +Declare_cursorContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Declare_cursorContext.prototype.CURSOR = function() { + return this.getToken(TSqlParser.CURSOR, 0); +}; + +Declare_cursorContext.prototype.FOR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.FOR); + } else { + return this.getToken(TSqlParser.FOR, i); + } +}; + + +Declare_cursorContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Declare_cursorContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Declare_cursorContext.prototype.declare_set_cursor_common = function() { + return this.getTypedRuleContext(Declare_set_cursor_commonContext,0); +}; + +Declare_cursorContext.prototype.SCROLL = function() { + return this.getToken(TSqlParser.SCROLL, 0); +}; + +Declare_cursorContext.prototype.SEMI_SENSITIVE = function() { + return this.getToken(TSqlParser.SEMI_SENSITIVE, 0); +}; + +Declare_cursorContext.prototype.INSENSITIVE = function() { + return this.getToken(TSqlParser.INSENSITIVE, 0); +}; + +Declare_cursorContext.prototype.READ = function() { + return this.getToken(TSqlParser.READ, 0); +}; + +Declare_cursorContext.prototype.ONLY = function() { + return this.getToken(TSqlParser.ONLY, 0); +}; + +Declare_cursorContext.prototype.UPDATE = function() { + return this.getToken(TSqlParser.UPDATE, 0); +}; + +Declare_cursorContext.prototype.OF = function() { + return this.getToken(TSqlParser.OF, 0); +}; + +Declare_cursorContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Declare_cursorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_cursor(this); + } +}; + +Declare_cursorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_cursor(this); + } +}; + +Declare_cursorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_cursor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_cursorContext = Declare_cursorContext; + +TSqlParser.prototype.declare_cursor = function() { + + var localctx = new Declare_cursorContext(this, this._ctx, this.state); + this.enterRule(localctx, 714, TSqlParser.RULE_declare_cursor); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8721; + this.match(TSqlParser.DECLARE); + this.state = 8722; + this.cursor_name(); + this.state = 8754; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1241,this._ctx); + switch(la_) { + case 1: + this.state = 8723; + this.match(TSqlParser.CURSOR); + this.state = 8733; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1236,this._ctx); + if(la_===1) { + this.state = 8724; + this.declare_set_cursor_common(); + this.state = 8731; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 8725; + this.match(TSqlParser.FOR); + this.state = 8726; + this.match(TSqlParser.UPDATE); + this.state = 8729; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OF) { + this.state = 8727; + this.match(TSqlParser.OF); + this.state = 8728; + this.column_name_list(); + } + + } + + + } + break; + + case 2: + this.state = 8736; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INSENSITIVE || _la===TSqlParser.SEMI_SENSITIVE) { + this.state = 8735; + _la = this._input.LA(1); + if(!(_la===TSqlParser.INSENSITIVE || _la===TSqlParser.SEMI_SENSITIVE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 8739; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SCROLL) { + this.state = 8738; + this.match(TSqlParser.SCROLL); + } + + this.state = 8741; + this.match(TSqlParser.CURSOR); + this.state = 8742; + this.match(TSqlParser.FOR); + this.state = 8743; + this.select_statement(); + this.state = 8752; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FOR) { + this.state = 8744; + this.match(TSqlParser.FOR); + this.state = 8750; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.READ: + this.state = 8745; + this.match(TSqlParser.READ); + this.state = 8746; + this.match(TSqlParser.ONLY); + break; + case TSqlParser.UPDATE: + this.state = 8747; + this.match(TSqlParser.UPDATE); + break; + case TSqlParser.OF: + this.state = 8748; + this.match(TSqlParser.OF); + this.state = 8749; + this.column_name_list(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } + + break; + + } + this.state = 8757; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1242,this._ctx); + if(la_===1) { + this.state = 8756; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_set_cursor_commonContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_set_cursor_common; + return this; +} + +Declare_set_cursor_commonContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_set_cursor_commonContext.prototype.constructor = Declare_set_cursor_commonContext; + +Declare_set_cursor_commonContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Declare_set_cursor_commonContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Declare_set_cursor_commonContext.prototype.declare_set_cursor_common_partial = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Declare_set_cursor_common_partialContext); + } else { + return this.getTypedRuleContext(Declare_set_cursor_common_partialContext,i); + } +}; + +Declare_set_cursor_commonContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_set_cursor_common(this); + } +}; + +Declare_set_cursor_commonContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_set_cursor_common(this); + } +}; + +Declare_set_cursor_commonContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_set_cursor_common(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_set_cursor_commonContext = Declare_set_cursor_commonContext; + +TSqlParser.prototype.declare_set_cursor_common = function() { + + var localctx = new Declare_set_cursor_commonContext(this, this._ctx, this.state); + this.enterRule(localctx, 716, TSqlParser.RULE_declare_set_cursor_common); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8762; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.DYNAMIC || _la===TSqlParser.FAST_FORWARD || _la===TSqlParser.FORWARD_ONLY || _la===TSqlParser.GLOBAL || _la===TSqlParser.KEYSET || _la===TSqlParser.LOCAL || _la===TSqlParser.OPTIMISTIC || _la===TSqlParser.READ_ONLY || ((((_la - 702)) & ~0x1f) == 0 && ((1 << (_la - 702)) & ((1 << (TSqlParser.SCROLL - 702)) | (1 << (TSqlParser.SCROLL_LOCKS - 702)) | (1 << (TSqlParser.STATIC - 702)))) !== 0) || _la===TSqlParser.TYPE_WARNING) { + this.state = 8759; + this.declare_set_cursor_common_partial(); + this.state = 8764; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 8765; + this.match(TSqlParser.FOR); + this.state = 8766; + this.select_statement(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Declare_set_cursor_common_partialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_declare_set_cursor_common_partial; + return this; +} + +Declare_set_cursor_common_partialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Declare_set_cursor_common_partialContext.prototype.constructor = Declare_set_cursor_common_partialContext; + +Declare_set_cursor_common_partialContext.prototype.LOCAL = function() { + return this.getToken(TSqlParser.LOCAL, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.FORWARD_ONLY = function() { + return this.getToken(TSqlParser.FORWARD_ONLY, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.SCROLL = function() { + return this.getToken(TSqlParser.SCROLL, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.STATIC = function() { + return this.getToken(TSqlParser.STATIC, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.KEYSET = function() { + return this.getToken(TSqlParser.KEYSET, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.DYNAMIC = function() { + return this.getToken(TSqlParser.DYNAMIC, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.FAST_FORWARD = function() { + return this.getToken(TSqlParser.FAST_FORWARD, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.SCROLL_LOCKS = function() { + return this.getToken(TSqlParser.SCROLL_LOCKS, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.OPTIMISTIC = function() { + return this.getToken(TSqlParser.OPTIMISTIC, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.TYPE_WARNING = function() { + return this.getToken(TSqlParser.TYPE_WARNING, 0); +}; + +Declare_set_cursor_common_partialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDeclare_set_cursor_common_partial(this); + } +}; + +Declare_set_cursor_common_partialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDeclare_set_cursor_common_partial(this); + } +}; + +Declare_set_cursor_common_partialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDeclare_set_cursor_common_partial(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Declare_set_cursor_common_partialContext = Declare_set_cursor_common_partialContext; + +TSqlParser.prototype.declare_set_cursor_common_partial = function() { + + var localctx = new Declare_set_cursor_common_partialContext(this, this._ctx, this.state); + this.enterRule(localctx, 718, TSqlParser.RULE_declare_set_cursor_common_partial); + var _la = 0; // Token type + try { + this.state = 8773; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.GLOBAL: + case TSqlParser.LOCAL: + this.enterOuterAlt(localctx, 1); + this.state = 8768; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GLOBAL || _la===TSqlParser.LOCAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.FORWARD_ONLY: + case TSqlParser.SCROLL: + this.enterOuterAlt(localctx, 2); + this.state = 8769; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FORWARD_ONLY || _la===TSqlParser.SCROLL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DYNAMIC: + case TSqlParser.FAST_FORWARD: + case TSqlParser.KEYSET: + case TSqlParser.STATIC: + this.enterOuterAlt(localctx, 3); + this.state = 8770; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DYNAMIC || _la===TSqlParser.FAST_FORWARD || _la===TSqlParser.KEYSET || _la===TSqlParser.STATIC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.OPTIMISTIC: + case TSqlParser.READ_ONLY: + case TSqlParser.SCROLL_LOCKS: + this.enterOuterAlt(localctx, 4); + this.state = 8771; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OPTIMISTIC || _la===TSqlParser.READ_ONLY || _la===TSqlParser.SCROLL_LOCKS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TYPE_WARNING: + this.enterOuterAlt(localctx, 5); + this.state = 8772; + this.match(TSqlParser.TYPE_WARNING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Fetch_cursorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_fetch_cursor; + return this; +} + +Fetch_cursorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Fetch_cursorContext.prototype.constructor = Fetch_cursorContext; + +Fetch_cursorContext.prototype.FETCH = function() { + return this.getToken(TSqlParser.FETCH, 0); +}; + +Fetch_cursorContext.prototype.cursor_name = function() { + return this.getTypedRuleContext(Cursor_nameContext,0); +}; + +Fetch_cursorContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Fetch_cursorContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Fetch_cursorContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Fetch_cursorContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Fetch_cursorContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Fetch_cursorContext.prototype.NEXT = function() { + return this.getToken(TSqlParser.NEXT, 0); +}; + +Fetch_cursorContext.prototype.PRIOR = function() { + return this.getToken(TSqlParser.PRIOR, 0); +}; + +Fetch_cursorContext.prototype.FIRST = function() { + return this.getToken(TSqlParser.FIRST, 0); +}; + +Fetch_cursorContext.prototype.LAST = function() { + return this.getToken(TSqlParser.LAST, 0); +}; + +Fetch_cursorContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Fetch_cursorContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Fetch_cursorContext.prototype.ABSOLUTE = function() { + return this.getToken(TSqlParser.ABSOLUTE, 0); +}; + +Fetch_cursorContext.prototype.RELATIVE = function() { + return this.getToken(TSqlParser.RELATIVE, 0); +}; + +Fetch_cursorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFetch_cursor(this); + } +}; + +Fetch_cursorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFetch_cursor(this); + } +}; + +Fetch_cursorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFetch_cursor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Fetch_cursorContext = Fetch_cursorContext; + +TSqlParser.prototype.fetch_cursor = function() { + + var localctx = new Fetch_cursorContext(this, this._ctx, this.state); + this.enterRule(localctx, 720, TSqlParser.RULE_fetch_cursor); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8775; + this.match(TSqlParser.FETCH); + this.state = 8785; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1246,this._ctx); + if(la_===1) { + this.state = 8782; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case TSqlParser.NEXT: + this.state = 8776; + this.match(TSqlParser.NEXT); + break; + case TSqlParser.PRIOR: + this.state = 8777; + this.match(TSqlParser.PRIOR); + break; + case TSqlParser.FIRST: + this.state = 8778; + this.match(TSqlParser.FIRST); + break; + case TSqlParser.LAST: + this.state = 8779; + this.match(TSqlParser.LAST); + break; + case TSqlParser.ABSOLUTE: + case TSqlParser.RELATIVE: + this.state = 8780; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ABSOLUTE || _la===TSqlParser.RELATIVE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8781; + this.expression(0); + break; + case TSqlParser.FROM: + break; + default: + break; + } + this.state = 8784; + this.match(TSqlParser.FROM); + + } + this.state = 8788; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1247,this._ctx); + if(la_===1) { + this.state = 8787; + this.match(TSqlParser.GLOBAL); + + } + this.state = 8790; + this.cursor_name(); + this.state = 8800; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 8791; + this.match(TSqlParser.INTO); + this.state = 8792; + this.match(TSqlParser.LOCAL_ID); + this.state = 8797; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8793; + this.match(TSqlParser.COMMA); + this.state = 8794; + this.match(TSqlParser.LOCAL_ID); + this.state = 8799; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 8803; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1250,this._ctx); + if(la_===1) { + this.state = 8802; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Set_specialContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_set_special; + return this; +} + +Set_specialContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Set_specialContext.prototype.constructor = Set_specialContext; + +Set_specialContext.prototype.SET = function() { + return this.getToken(TSqlParser.SET, 0); +}; + +Set_specialContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Set_specialContext.prototype.constant_LOCAL_ID = function() { + return this.getTypedRuleContext(Constant_LOCAL_IDContext,0); +}; + +Set_specialContext.prototype.on_off = function() { + return this.getTypedRuleContext(On_offContext,0); +}; + +Set_specialContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Set_specialContext.prototype.TRANSACTION = function() { + return this.getToken(TSqlParser.TRANSACTION, 0); +}; + +Set_specialContext.prototype.ISOLATION = function() { + return this.getToken(TSqlParser.ISOLATION, 0); +}; + +Set_specialContext.prototype.LEVEL = function() { + return this.getToken(TSqlParser.LEVEL, 0); +}; + +Set_specialContext.prototype.READ = function() { + return this.getToken(TSqlParser.READ, 0); +}; + +Set_specialContext.prototype.UNCOMMITTED = function() { + return this.getToken(TSqlParser.UNCOMMITTED, 0); +}; + +Set_specialContext.prototype.COMMITTED = function() { + return this.getToken(TSqlParser.COMMITTED, 0); +}; + +Set_specialContext.prototype.REPEATABLE = function() { + return this.getToken(TSqlParser.REPEATABLE, 0); +}; + +Set_specialContext.prototype.SNAPSHOT = function() { + return this.getToken(TSqlParser.SNAPSHOT, 0); +}; + +Set_specialContext.prototype.SERIALIZABLE = function() { + return this.getToken(TSqlParser.SERIALIZABLE, 0); +}; + +Set_specialContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Set_specialContext.prototype.IDENTITY_INSERT = function() { + return this.getToken(TSqlParser.IDENTITY_INSERT, 0); +}; + +Set_specialContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Set_specialContext.prototype.ANSI_NULLS = function() { + return this.getToken(TSqlParser.ANSI_NULLS, 0); +}; + +Set_specialContext.prototype.QUOTED_IDENTIFIER = function() { + return this.getToken(TSqlParser.QUOTED_IDENTIFIER, 0); +}; + +Set_specialContext.prototype.ANSI_PADDING = function() { + return this.getToken(TSqlParser.ANSI_PADDING, 0); +}; + +Set_specialContext.prototype.ANSI_WARNINGS = function() { + return this.getToken(TSqlParser.ANSI_WARNINGS, 0); +}; + +Set_specialContext.prototype.modify_method = function() { + return this.getTypedRuleContext(Modify_methodContext,0); +}; + +Set_specialContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSet_special(this); + } +}; + +Set_specialContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSet_special(this); + } +}; + +Set_specialContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSet_special(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Set_specialContext = Set_specialContext; + +TSqlParser.prototype.set_special = function() { + + var localctx = new Set_specialContext(this, this._ctx, this.state); + this.enterRule(localctx, 722, TSqlParser.RULE_set_special); + try { + this.state = 8854; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1256,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8805; + this.match(TSqlParser.SET); + this.state = 8806; + this.id(); + this.state = 8810; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8807; + this.id(); + break; + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 8808; + this.constant_LOCAL_ID(); + break; + case TSqlParser.OFF: + case TSqlParser.ON: + this.state = 8809; + this.on_off(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8813; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1252,this._ctx); + if(la_===1) { + this.state = 8812; + this.match(TSqlParser.SEMI); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8815; + this.match(TSqlParser.SET); + this.state = 8816; + this.match(TSqlParser.TRANSACTION); + this.state = 8817; + this.match(TSqlParser.ISOLATION); + this.state = 8818; + this.match(TSqlParser.LEVEL); + this.state = 8828; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1253,this._ctx); + switch(la_) { + case 1: + this.state = 8819; + this.match(TSqlParser.READ); + this.state = 8820; + this.match(TSqlParser.UNCOMMITTED); + break; + + case 2: + this.state = 8821; + this.match(TSqlParser.READ); + this.state = 8822; + this.match(TSqlParser.COMMITTED); + break; + + case 3: + this.state = 8823; + this.match(TSqlParser.REPEATABLE); + this.state = 8824; + this.match(TSqlParser.READ); + break; + + case 4: + this.state = 8825; + this.match(TSqlParser.SNAPSHOT); + break; + + case 5: + this.state = 8826; + this.match(TSqlParser.SERIALIZABLE); + break; + + case 6: + this.state = 8827; + this.match(TSqlParser.DECIMAL); + break; + + } + this.state = 8831; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1254,this._ctx); + if(la_===1) { + this.state = 8830; + this.match(TSqlParser.SEMI); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8833; + this.match(TSqlParser.SET); + this.state = 8834; + this.match(TSqlParser.IDENTITY_INSERT); + this.state = 8835; + this.table_name(); + this.state = 8836; + this.on_off(); + this.state = 8838; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1255,this._ctx); + if(la_===1) { + this.state = 8837; + this.match(TSqlParser.SEMI); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8840; + this.match(TSqlParser.SET); + this.state = 8841; + this.match(TSqlParser.ANSI_NULLS); + this.state = 8842; + this.on_off(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 8843; + this.match(TSqlParser.SET); + this.state = 8844; + this.match(TSqlParser.QUOTED_IDENTIFIER); + this.state = 8845; + this.on_off(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 8846; + this.match(TSqlParser.SET); + this.state = 8847; + this.match(TSqlParser.ANSI_PADDING); + this.state = 8848; + this.on_off(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 8849; + this.match(TSqlParser.SET); + this.state = 8850; + this.match(TSqlParser.ANSI_WARNINGS); + this.state = 8851; + this.on_off(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 8852; + this.match(TSqlParser.SET); + this.state = 8853; + this.modify_method(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Constant_LOCAL_IDContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_constant_LOCAL_ID; + return this; +} + +Constant_LOCAL_IDContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Constant_LOCAL_IDContext.prototype.constructor = Constant_LOCAL_IDContext; + +Constant_LOCAL_IDContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Constant_LOCAL_IDContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Constant_LOCAL_IDContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterConstant_LOCAL_ID(this); + } +}; + +Constant_LOCAL_IDContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitConstant_LOCAL_ID(this); + } +}; + +Constant_LOCAL_IDContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitConstant_LOCAL_ID(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Constant_LOCAL_IDContext = Constant_LOCAL_IDContext; + +TSqlParser.prototype.constant_LOCAL_ID = function() { + + var localctx = new Constant_LOCAL_IDContext(this, this._ctx, this.state); + this.enterRule(localctx, 724, TSqlParser.RULE_constant_LOCAL_ID); + try { + this.state = 8858; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.enterOuterAlt(localctx, 1); + this.state = 8856; + this.constant(); + break; + case TSqlParser.LOCAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 8857; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_expression; + this.op = null; // Token + return this; +} + +ExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExpressionContext.prototype.constructor = ExpressionContext; + +ExpressionContext.prototype.primitive_expression = function() { + return this.getTypedRuleContext(Primitive_expressionContext,0); +}; + +ExpressionContext.prototype.function_call = function() { + return this.getTypedRuleContext(Function_callContext,0); +}; + +ExpressionContext.prototype.case_expression = function() { + return this.getTypedRuleContext(Case_expressionContext,0); +}; + +ExpressionContext.prototype.full_column_name = function() { + return this.getTypedRuleContext(Full_column_nameContext,0); +}; + +ExpressionContext.prototype.bracket_expression = function() { + return this.getTypedRuleContext(Bracket_expressionContext,0); +}; + +ExpressionContext.prototype.unary_operator_expression = function() { + return this.getTypedRuleContext(Unary_operator_expressionContext,0); +}; + +ExpressionContext.prototype.over_clause = function() { + return this.getTypedRuleContext(Over_clauseContext,0); +}; + +ExpressionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +ExpressionContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +ExpressionContext.prototype.DIVIDE = function() { + return this.getToken(TSqlParser.DIVIDE, 0); +}; + +ExpressionContext.prototype.MODULE = function() { + return this.getToken(TSqlParser.MODULE, 0); +}; + +ExpressionContext.prototype.PLUS = function() { + return this.getToken(TSqlParser.PLUS, 0); +}; + +ExpressionContext.prototype.MINUS = function() { + return this.getToken(TSqlParser.MINUS, 0); +}; + +ExpressionContext.prototype.BIT_AND = function() { + return this.getToken(TSqlParser.BIT_AND, 0); +}; + +ExpressionContext.prototype.BIT_XOR = function() { + return this.getToken(TSqlParser.BIT_XOR, 0); +}; + +ExpressionContext.prototype.BIT_OR = function() { + return this.getToken(TSqlParser.BIT_OR, 0); +}; + +ExpressionContext.prototype.DOUBLE_BAR = function() { + return this.getToken(TSqlParser.DOUBLE_BAR, 0); +}; + +ExpressionContext.prototype.comparison_operator = function() { + return this.getTypedRuleContext(Comparison_operatorContext,0); +}; + +ExpressionContext.prototype.assignment_operator = function() { + return this.getTypedRuleContext(Assignment_operatorContext,0); +}; + +ExpressionContext.prototype.COLLATE = function() { + return this.getToken(TSqlParser.COLLATE, 0); +}; + +ExpressionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +ExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExpression(this); + } +}; + +ExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExpression(this); + } +}; + +ExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +TSqlParser.prototype.expression = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new ExpressionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 726; + this.enterRecursionRule(localctx, 726, TSqlParser.RULE_expression, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8868; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1258,this._ctx); + switch(la_) { + case 1: + this.state = 8861; + this.primitive_expression(); + break; + + case 2: + this.state = 8862; + this.function_call(); + break; + + case 3: + this.state = 8863; + this.case_expression(); + break; + + case 4: + this.state = 8864; + this.full_column_name(); + break; + + case 5: + this.state = 8865; + this.bracket_expression(); + break; + + case 6: + this.state = 8866; + this.unary_operator_expression(); + break; + + case 7: + this.state = 8867; + this.over_clause(); + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 8889; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1260,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 8887; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1259,this._ctx); + switch(la_) { + case 1: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8870; + if (!( this.precpred(this._ctx, 5))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); + } + this.state = 8871; + localctx.op = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 831)) & ~0x1f) == 0 && ((1 << (_la - 831)) & ((1 << (TSqlParser.STAR - 831)) | (1 << (TSqlParser.DIVIDE - 831)) | (1 << (TSqlParser.MODULE - 831)))) !== 0))) { + localctx.op = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8872; + this.expression(6); + break; + + case 2: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8873; + if (!( this.precpred(this._ctx, 4))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); + } + this.state = 8874; + localctx.op = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 820)) & ~0x1f) == 0 && ((1 << (_la - 820)) & ((1 << (TSqlParser.DOUBLE_BAR - 820)) | (1 << (TSqlParser.PLUS - 820)) | (1 << (TSqlParser.MINUS - 820)) | (1 << (TSqlParser.BIT_OR - 820)) | (1 << (TSqlParser.BIT_AND - 820)) | (1 << (TSqlParser.BIT_XOR - 820)))) !== 0))) { + localctx.op = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8875; + this.expression(5); + break; + + case 3: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8876; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 8877; + this.comparison_operator(); + this.state = 8878; + this.expression(4); + break; + + case 4: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8880; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 8881; + this.assignment_operator(); + this.state = 8882; + this.expression(3); + break; + + case 5: + localctx = new ExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, TSqlParser.RULE_expression); + this.state = 8884; + if (!( this.precpred(this._ctx, 10))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 10)"); + } + this.state = 8885; + this.match(TSqlParser.COLLATE); + this.state = 8886; + this.id(); + break; + + } + } + this.state = 8891; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1260,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function Primitive_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_primitive_expression; + return this; +} + +Primitive_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Primitive_expressionContext.prototype.constructor = Primitive_expressionContext; + +Primitive_expressionContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Primitive_expressionContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Primitive_expressionContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Primitive_expressionContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Primitive_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPrimitive_expression(this); + } +}; + +Primitive_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPrimitive_expression(this); + } +}; + +Primitive_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPrimitive_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Primitive_expressionContext = Primitive_expressionContext; + +TSqlParser.prototype.primitive_expression = function() { + + var localctx = new Primitive_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 728, TSqlParser.RULE_primitive_expression); + try { + this.state = 8896; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DEFAULT: + this.enterOuterAlt(localctx, 1); + this.state = 8892; + this.match(TSqlParser.DEFAULT); + break; + case TSqlParser.NULL: + this.enterOuterAlt(localctx, 2); + this.state = 8893; + this.match(TSqlParser.NULL); + break; + case TSqlParser.LOCAL_ID: + this.enterOuterAlt(localctx, 3); + this.state = 8894; + this.match(TSqlParser.LOCAL_ID); + break; + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.enterOuterAlt(localctx, 4); + this.state = 8895; + this.constant(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Case_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_case_expression; + this.caseExpr = null; // ExpressionContext + this.elseExpr = null; // ExpressionContext + return this; +} + +Case_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Case_expressionContext.prototype.constructor = Case_expressionContext; + +Case_expressionContext.prototype.CASE = function() { + return this.getToken(TSqlParser.CASE, 0); +}; + +Case_expressionContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +Case_expressionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Case_expressionContext.prototype.switch_section = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Switch_sectionContext); + } else { + return this.getTypedRuleContext(Switch_sectionContext,i); + } +}; + +Case_expressionContext.prototype.ELSE = function() { + return this.getToken(TSqlParser.ELSE, 0); +}; + +Case_expressionContext.prototype.switch_search_condition_section = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Switch_search_condition_sectionContext); + } else { + return this.getTypedRuleContext(Switch_search_condition_sectionContext,i); + } +}; + +Case_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCase_expression(this); + } +}; + +Case_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCase_expression(this); + } +}; + +Case_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCase_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Case_expressionContext = Case_expressionContext; + +TSqlParser.prototype.case_expression = function() { + + var localctx = new Case_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 730, TSqlParser.RULE_case_expression); + var _la = 0; // Token type + try { + this.state = 8923; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1266,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8898; + this.match(TSqlParser.CASE); + this.state = 8899; + localctx.caseExpr = this.expression(0); + this.state = 8901; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8900; + this.switch_section(); + this.state = 8903; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.WHEN); + this.state = 8907; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ELSE) { + this.state = 8905; + this.match(TSqlParser.ELSE); + this.state = 8906; + localctx.elseExpr = this.expression(0); + } + + this.state = 8909; + this.match(TSqlParser.END); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8911; + this.match(TSqlParser.CASE); + this.state = 8913; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 8912; + this.switch_search_condition_section(); + this.state = 8915; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===TSqlParser.WHEN); + this.state = 8919; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ELSE) { + this.state = 8917; + this.match(TSqlParser.ELSE); + this.state = 8918; + localctx.elseExpr = this.expression(0); + } + + this.state = 8921; + this.match(TSqlParser.END); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Unary_operator_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_unary_operator_expression; + this.op = null; // Token + return this; +} + +Unary_operator_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Unary_operator_expressionContext.prototype.constructor = Unary_operator_expressionContext; + +Unary_operator_expressionContext.prototype.BIT_NOT = function() { + return this.getToken(TSqlParser.BIT_NOT, 0); +}; + +Unary_operator_expressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Unary_operator_expressionContext.prototype.PLUS = function() { + return this.getToken(TSqlParser.PLUS, 0); +}; + +Unary_operator_expressionContext.prototype.MINUS = function() { + return this.getToken(TSqlParser.MINUS, 0); +}; + +Unary_operator_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUnary_operator_expression(this); + } +}; + +Unary_operator_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUnary_operator_expression(this); + } +}; + +Unary_operator_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUnary_operator_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Unary_operator_expressionContext = Unary_operator_expressionContext; + +TSqlParser.prototype.unary_operator_expression = function() { + + var localctx = new Unary_operator_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 732, TSqlParser.RULE_unary_operator_expression); + var _la = 0; // Token type + try { + this.state = 8929; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BIT_NOT: + this.enterOuterAlt(localctx, 1); + this.state = 8925; + this.match(TSqlParser.BIT_NOT); + this.state = 8926; + this.expression(0); + break; + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.enterOuterAlt(localctx, 2); + this.state = 8927; + localctx.op = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS)) { + localctx.op = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 8928; + this.expression(0); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Bracket_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_bracket_expression; + return this; +} + +Bracket_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Bracket_expressionContext.prototype.constructor = Bracket_expressionContext; + +Bracket_expressionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Bracket_expressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Bracket_expressionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Bracket_expressionContext.prototype.subquery = function() { + return this.getTypedRuleContext(SubqueryContext,0); +}; + +Bracket_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBracket_expression(this); + } +}; + +Bracket_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBracket_expression(this); + } +}; + +Bracket_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBracket_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Bracket_expressionContext = Bracket_expressionContext; + +TSqlParser.prototype.bracket_expression = function() { + + var localctx = new Bracket_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 734, TSqlParser.RULE_bracket_expression); + try { + this.state = 8939; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1268,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8931; + this.match(TSqlParser.LR_BRACKET); + this.state = 8932; + this.expression(0); + this.state = 8933; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8935; + this.match(TSqlParser.LR_BRACKET); + this.state = 8936; + this.subquery(); + this.state = 8937; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Constant_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_constant_expression; + return this; +} + +Constant_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Constant_expressionContext.prototype.constructor = Constant_expressionContext; + +Constant_expressionContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Constant_expressionContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Constant_expressionContext.prototype.function_call = function() { + return this.getTypedRuleContext(Function_callContext,0); +}; + +Constant_expressionContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Constant_expressionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Constant_expressionContext.prototype.constant_expression = function() { + return this.getTypedRuleContext(Constant_expressionContext,0); +}; + +Constant_expressionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Constant_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterConstant_expression(this); + } +}; + +Constant_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitConstant_expression(this); + } +}; + +Constant_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitConstant_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Constant_expressionContext = Constant_expressionContext; + +TSqlParser.prototype.constant_expression = function() { + + var localctx = new Constant_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 736, TSqlParser.RULE_constant_expression); + try { + this.state = 8949; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1269,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8941; + this.match(TSqlParser.NULL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8942; + this.constant(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 8943; + this.function_call(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 8944; + this.match(TSqlParser.LOCAL_ID); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 8945; + this.match(TSqlParser.LR_BRACKET); + this.state = 8946; + this.constant_expression(); + this.state = 8947; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SubqueryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_subquery; + return this; +} + +SubqueryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SubqueryContext.prototype.constructor = SubqueryContext; + +SubqueryContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +SubqueryContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSubquery(this); + } +}; + +SubqueryContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSubquery(this); + } +}; + +SubqueryContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSubquery(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.SubqueryContext = SubqueryContext; + +TSqlParser.prototype.subquery = function() { + + var localctx = new SubqueryContext(this, this._ctx, this.state); + this.enterRule(localctx, 738, TSqlParser.RULE_subquery); + try { + this.enterOuterAlt(localctx, 1); + this.state = 8951; + this.select_statement(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function With_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_with_expression; + return this; +} + +With_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +With_expressionContext.prototype.constructor = With_expressionContext; + +With_expressionContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +With_expressionContext.prototype.common_table_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Common_table_expressionContext); + } else { + return this.getTypedRuleContext(Common_table_expressionContext,i); + } +}; + +With_expressionContext.prototype.XMLNAMESPACES = function() { + return this.getToken(TSqlParser.XMLNAMESPACES, 0); +}; + +With_expressionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +With_expressionContext.prototype.BLOCKING_HIERARCHY = function() { + return this.getToken(TSqlParser.BLOCKING_HIERARCHY, 0); +}; + +With_expressionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +With_expressionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +With_expressionContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +With_expressionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +With_expressionContext.prototype.full_column_name_list = function() { + return this.getTypedRuleContext(Full_column_name_listContext,0); +}; + +With_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWith_expression(this); + } +}; + +With_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWith_expression(this); + } +}; + +With_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWith_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.With_expressionContext = With_expressionContext; + +TSqlParser.prototype.with_expression = function() { + + var localctx = new With_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 740, TSqlParser.RULE_with_expression); + var _la = 0; // Token type + try { + this.state = 8979; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1273,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8953; + this.match(TSqlParser.WITH); + this.state = 8956; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1270,this._ctx); + if(la_===1) { + this.state = 8954; + this.match(TSqlParser.XMLNAMESPACES); + this.state = 8955; + this.match(TSqlParser.COMMA); + + } + this.state = 8958; + this.common_table_expression(); + this.state = 8963; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 8959; + this.match(TSqlParser.COMMA); + this.state = 8960; + this.common_table_expression(); + this.state = 8965; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 8966; + this.match(TSqlParser.WITH); + this.state = 8967; + this.match(TSqlParser.BLOCKING_HIERARCHY); + this.state = 8972; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 8968; + this.match(TSqlParser.LR_BRACKET); + this.state = 8969; + this.full_column_name_list(); + this.state = 8970; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 8974; + this.match(TSqlParser.AS); + this.state = 8975; + this.match(TSqlParser.LR_BRACKET); + this.state = 8976; + this.select_statement(); + this.state = 8977; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Common_table_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_common_table_expression; + this.expression_name = null; // IdContext + return this; +} + +Common_table_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Common_table_expressionContext.prototype.constructor = Common_table_expressionContext; + +Common_table_expressionContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +Common_table_expressionContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Common_table_expressionContext.prototype.select_statement = function() { + return this.getTypedRuleContext(Select_statementContext,0); +}; + +Common_table_expressionContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Common_table_expressionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Common_table_expressionContext.prototype.column_name_list = function() { + return this.getTypedRuleContext(Column_name_listContext,0); +}; + +Common_table_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCommon_table_expression(this); + } +}; + +Common_table_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCommon_table_expression(this); + } +}; + +Common_table_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCommon_table_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Common_table_expressionContext = Common_table_expressionContext; + +TSqlParser.prototype.common_table_expression = function() { + + var localctx = new Common_table_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 742, TSqlParser.RULE_common_table_expression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 8981; + localctx.expression_name = this.id(); + this.state = 8986; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 8982; + this.match(TSqlParser.LR_BRACKET); + this.state = 8983; + this.column_name_list(); + this.state = 8984; + this.match(TSqlParser.RR_BRACKET); + } + + this.state = 8988; + this.match(TSqlParser.AS); + this.state = 8989; + this.match(TSqlParser.LR_BRACKET); + this.state = 8990; + this.select_statement(); + this.state = 8991; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Update_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_update_elem; + this.udt_column_name = null; // IdContext + this.method_name = null; // IdContext + return this; +} + +Update_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Update_elemContext.prototype.constructor = Update_elemContext; + +Update_elemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Update_elemContext.prototype.full_column_name = function() { + return this.getTypedRuleContext(Full_column_nameContext,0); +}; + +Update_elemContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Update_elemContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Update_elemContext.prototype.assignment_operator = function() { + return this.getTypedRuleContext(Assignment_operatorContext,0); +}; + +Update_elemContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Update_elemContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Update_elemContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +Update_elemContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Update_elemContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Update_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUpdate_elem(this); + } +}; + +Update_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUpdate_elem(this); + } +}; + +Update_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUpdate_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Update_elemContext = Update_elemContext; + +TSqlParser.prototype.update_elem = function() { + + var localctx = new Update_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 744, TSqlParser.RULE_update_elem); + try { + this.state = 9009; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1277,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 8995; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 8993; + this.full_column_name(); + break; + case TSqlParser.LOCAL_ID: + this.state = 8994; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 8999; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.EQUAL: + this.state = 8997; + this.match(TSqlParser.EQUAL); + break; + case TSqlParser.PLUS_ASSIGN: + case TSqlParser.MINUS_ASSIGN: + case TSqlParser.MULT_ASSIGN: + case TSqlParser.DIV_ASSIGN: + case TSqlParser.MOD_ASSIGN: + case TSqlParser.AND_ASSIGN: + case TSqlParser.XOR_ASSIGN: + case TSqlParser.OR_ASSIGN: + this.state = 8998; + this.assignment_operator(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9001; + this.expression(0); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9002; + localctx.udt_column_name = this.id(); + this.state = 9003; + this.match(TSqlParser.DOT); + this.state = 9004; + localctx.method_name = this.id(); + this.state = 9005; + this.match(TSqlParser.LR_BRACKET); + this.state = 9006; + this.expression_list(); + this.state = 9007; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Search_condition_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_search_condition_list; + return this; +} + +Search_condition_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Search_condition_listContext.prototype.constructor = Search_condition_listContext; + +Search_condition_listContext.prototype.search_condition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_conditionContext); + } else { + return this.getTypedRuleContext(Search_conditionContext,i); + } +}; + +Search_condition_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Search_condition_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSearch_condition_list(this); + } +}; + +Search_condition_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSearch_condition_list(this); + } +}; + +Search_condition_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSearch_condition_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Search_condition_listContext = Search_condition_listContext; + +TSqlParser.prototype.search_condition_list = function() { + + var localctx = new Search_condition_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 746, TSqlParser.RULE_search_condition_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9011; + this.search_condition(); + this.state = 9016; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9012; + this.match(TSqlParser.COMMA); + this.state = 9013; + this.search_condition(); + this.state = 9018; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Search_conditionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_search_condition; + return this; +} + +Search_conditionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Search_conditionContext.prototype.constructor = Search_conditionContext; + +Search_conditionContext.prototype.search_condition_and = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_condition_andContext); + } else { + return this.getTypedRuleContext(Search_condition_andContext,i); + } +}; + +Search_conditionContext.prototype.OR = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.OR); + } else { + return this.getToken(TSqlParser.OR, i); + } +}; + + +Search_conditionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSearch_condition(this); + } +}; + +Search_conditionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSearch_condition(this); + } +}; + +Search_conditionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSearch_condition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Search_conditionContext = Search_conditionContext; + +TSqlParser.prototype.search_condition = function() { + + var localctx = new Search_conditionContext(this, this._ctx, this.state); + this.enterRule(localctx, 748, TSqlParser.RULE_search_condition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9019; + this.search_condition_and(); + this.state = 9024; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.OR) { + this.state = 9020; + this.match(TSqlParser.OR); + this.state = 9021; + this.search_condition_and(); + this.state = 9026; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Search_condition_andContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_search_condition_and; + return this; +} + +Search_condition_andContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Search_condition_andContext.prototype.constructor = Search_condition_andContext; + +Search_condition_andContext.prototype.search_condition_not = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_condition_notContext); + } else { + return this.getTypedRuleContext(Search_condition_notContext,i); + } +}; + +Search_condition_andContext.prototype.AND = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.AND); + } else { + return this.getToken(TSqlParser.AND, i); + } +}; + + +Search_condition_andContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSearch_condition_and(this); + } +}; + +Search_condition_andContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSearch_condition_and(this); + } +}; + +Search_condition_andContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSearch_condition_and(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Search_condition_andContext = Search_condition_andContext; + +TSqlParser.prototype.search_condition_and = function() { + + var localctx = new Search_condition_andContext(this, this._ctx, this.state); + this.enterRule(localctx, 750, TSqlParser.RULE_search_condition_and); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9027; + this.search_condition_not(); + this.state = 9032; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.AND) { + this.state = 9028; + this.match(TSqlParser.AND); + this.state = 9029; + this.search_condition_not(); + this.state = 9034; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Search_condition_notContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_search_condition_not; + return this; +} + +Search_condition_notContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Search_condition_notContext.prototype.constructor = Search_condition_notContext; + +Search_condition_notContext.prototype.predicate = function() { + return this.getTypedRuleContext(PredicateContext,0); +}; + +Search_condition_notContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Search_condition_notContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSearch_condition_not(this); + } +}; + +Search_condition_notContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSearch_condition_not(this); + } +}; + +Search_condition_notContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSearch_condition_not(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Search_condition_notContext = Search_condition_notContext; + +TSqlParser.prototype.search_condition_not = function() { + + var localctx = new Search_condition_notContext(this, this._ctx, this.state); + this.enterRule(localctx, 752, TSqlParser.RULE_search_condition_not); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9036; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 9035; + this.match(TSqlParser.NOT); + } + + this.state = 9038; + this.predicate(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PredicateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_predicate; + return this; +} + +PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PredicateContext.prototype.constructor = PredicateContext; + +PredicateContext.prototype.EXISTS = function() { + return this.getToken(TSqlParser.EXISTS, 0); +}; + +PredicateContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +PredicateContext.prototype.subquery = function() { + return this.getTypedRuleContext(SubqueryContext,0); +}; + +PredicateContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +PredicateContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +PredicateContext.prototype.comparison_operator = function() { + return this.getTypedRuleContext(Comparison_operatorContext,0); +}; + +PredicateContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +PredicateContext.prototype.SOME = function() { + return this.getToken(TSqlParser.SOME, 0); +}; + +PredicateContext.prototype.ANY = function() { + return this.getToken(TSqlParser.ANY, 0); +}; + +PredicateContext.prototype.BETWEEN = function() { + return this.getToken(TSqlParser.BETWEEN, 0); +}; + +PredicateContext.prototype.AND = function() { + return this.getToken(TSqlParser.AND, 0); +}; + +PredicateContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +PredicateContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +PredicateContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +PredicateContext.prototype.LIKE = function() { + return this.getToken(TSqlParser.LIKE, 0); +}; + +PredicateContext.prototype.ESCAPE = function() { + return this.getToken(TSqlParser.ESCAPE, 0); +}; + +PredicateContext.prototype.IS = function() { + return this.getToken(TSqlParser.IS, 0); +}; + +PredicateContext.prototype.null_notnull = function() { + return this.getTypedRuleContext(Null_notnullContext,0); +}; + +PredicateContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +PredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPredicate(this); + } +}; + +PredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPredicate(this); + } +}; + +PredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.PredicateContext = PredicateContext; + +TSqlParser.prototype.predicate = function() { + + var localctx = new PredicateContext(this, this._ctx, this.state); + this.enterRule(localctx, 754, TSqlParser.RULE_predicate); + var _la = 0; // Token type + try { + this.state = 9095; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1287,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9040; + this.match(TSqlParser.EXISTS); + this.state = 9041; + this.match(TSqlParser.LR_BRACKET); + this.state = 9042; + this.subquery(); + this.state = 9043; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9045; + this.expression(0); + this.state = 9046; + this.comparison_operator(); + this.state = 9047; + this.expression(0); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9049; + this.expression(0); + this.state = 9050; + this.comparison_operator(); + this.state = 9051; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.ANY || _la===TSqlParser.SOME)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9052; + this.match(TSqlParser.LR_BRACKET); + this.state = 9053; + this.subquery(); + this.state = 9054; + this.match(TSqlParser.RR_BRACKET); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9056; + this.expression(0); + this.state = 9058; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 9057; + this.match(TSqlParser.NOT); + } + + this.state = 9060; + this.match(TSqlParser.BETWEEN); + this.state = 9061; + this.expression(0); + this.state = 9062; + this.match(TSqlParser.AND); + this.state = 9063; + this.expression(0); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9065; + this.expression(0); + this.state = 9067; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 9066; + this.match(TSqlParser.NOT); + } + + this.state = 9069; + this.match(TSqlParser.IN); + this.state = 9070; + this.match(TSqlParser.LR_BRACKET); + this.state = 9073; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1284,this._ctx); + switch(la_) { + case 1: + this.state = 9071; + this.subquery(); + break; + + case 2: + this.state = 9072; + this.expression_list(); + break; + + } + this.state = 9075; + this.match(TSqlParser.RR_BRACKET); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 9077; + this.expression(0); + this.state = 9079; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 9078; + this.match(TSqlParser.NOT); + } + + this.state = 9081; + this.match(TSqlParser.LIKE); + this.state = 9082; + this.expression(0); + this.state = 9085; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ESCAPE) { + this.state = 9083; + this.match(TSqlParser.ESCAPE); + this.state = 9084; + this.expression(0); + } + + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 9087; + this.expression(0); + this.state = 9088; + this.match(TSqlParser.IS); + this.state = 9089; + this.null_notnull(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 9091; + this.match(TSqlParser.LR_BRACKET); + this.state = 9092; + this.search_condition(); + this.state = 9093; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Query_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_query_expression; + return this; +} + +Query_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Query_expressionContext.prototype.constructor = Query_expressionContext; + +Query_expressionContext.prototype.query_specification = function() { + return this.getTypedRuleContext(Query_specificationContext,0); +}; + +Query_expressionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Query_expressionContext.prototype.query_expression = function() { + return this.getTypedRuleContext(Query_expressionContext,0); +}; + +Query_expressionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Query_expressionContext.prototype.sql_union = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Sql_unionContext); + } else { + return this.getTypedRuleContext(Sql_unionContext,i); + } +}; + +Query_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQuery_expression(this); + } +}; + +Query_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQuery_expression(this); + } +}; + +Query_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQuery_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Query_expressionContext = Query_expressionContext; + +TSqlParser.prototype.query_expression = function() { + + var localctx = new Query_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 756, TSqlParser.RULE_query_expression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9102; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SELECT: + this.state = 9097; + this.query_specification(); + break; + case TSqlParser.LR_BRACKET: + this.state = 9098; + this.match(TSqlParser.LR_BRACKET); + this.state = 9099; + this.query_expression(); + this.state = 9100; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9107; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1289,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9104; + this.sql_union(); + } + this.state = 9109; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1289,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Sql_unionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sql_union; + return this; +} + +Sql_unionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Sql_unionContext.prototype.constructor = Sql_unionContext; + +Sql_unionContext.prototype.UNION = function() { + return this.getToken(TSqlParser.UNION, 0); +}; + +Sql_unionContext.prototype.EXCEPT = function() { + return this.getToken(TSqlParser.EXCEPT, 0); +}; + +Sql_unionContext.prototype.INTERSECT = function() { + return this.getToken(TSqlParser.INTERSECT, 0); +}; + +Sql_unionContext.prototype.query_specification = function() { + return this.getTypedRuleContext(Query_specificationContext,0); +}; + +Sql_unionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Sql_unionContext.prototype.query_expression = function() { + return this.getTypedRuleContext(Query_expressionContext,0); +}; + +Sql_unionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Sql_unionContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +Sql_unionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSql_union(this); + } +}; + +Sql_unionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSql_union(this); + } +}; + +Sql_unionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSql_union(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Sql_unionContext = Sql_unionContext; + +TSqlParser.prototype.sql_union = function() { + + var localctx = new Sql_unionContext(this, this._ctx, this.state); + this.enterRule(localctx, 758, TSqlParser.RULE_sql_union); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9116; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UNION: + this.state = 9110; + this.match(TSqlParser.UNION); + this.state = 9112; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL) { + this.state = 9111; + this.match(TSqlParser.ALL); + } + + break; + case TSqlParser.EXCEPT: + this.state = 9114; + this.match(TSqlParser.EXCEPT); + break; + case TSqlParser.INTERSECT: + this.state = 9115; + this.match(TSqlParser.INTERSECT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9123; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.SELECT: + this.state = 9118; + this.query_specification(); + break; + case TSqlParser.LR_BRACKET: + this.state = 9119; + this.match(TSqlParser.LR_BRACKET); + this.state = 9120; + this.query_expression(); + this.state = 9121; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Query_specificationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_query_specification; + this.where = null; // Search_conditionContext + this.having = null; // Search_conditionContext + return this; +} + +Query_specificationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Query_specificationContext.prototype.constructor = Query_specificationContext; + +Query_specificationContext.prototype.SELECT = function() { + return this.getToken(TSqlParser.SELECT, 0); +}; + +Query_specificationContext.prototype.select_list = function() { + return this.getTypedRuleContext(Select_listContext,0); +}; + +Query_specificationContext.prototype.top_clause = function() { + return this.getTypedRuleContext(Top_clauseContext,0); +}; + +Query_specificationContext.prototype.INTO = function() { + return this.getToken(TSqlParser.INTO, 0); +}; + +Query_specificationContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Query_specificationContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Query_specificationContext.prototype.table_sources = function() { + return this.getTypedRuleContext(Table_sourcesContext,0); +}; + +Query_specificationContext.prototype.WHERE = function() { + return this.getToken(TSqlParser.WHERE, 0); +}; + +Query_specificationContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Query_specificationContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Query_specificationContext.prototype.group_by_item = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Group_by_itemContext); + } else { + return this.getTypedRuleContext(Group_by_itemContext,i); + } +}; + +Query_specificationContext.prototype.HAVING = function() { + return this.getToken(TSqlParser.HAVING, 0); +}; + +Query_specificationContext.prototype.ALL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ALL); + } else { + return this.getToken(TSqlParser.ALL, i); + } +}; + + +Query_specificationContext.prototype.DISTINCT = function() { + return this.getToken(TSqlParser.DISTINCT, 0); +}; + +Query_specificationContext.prototype.search_condition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Search_conditionContext); + } else { + return this.getTypedRuleContext(Search_conditionContext,i); + } +}; + +Query_specificationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Query_specificationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQuery_specification(this); + } +}; + +Query_specificationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQuery_specification(this); + } +}; + +Query_specificationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQuery_specification(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Query_specificationContext = Query_specificationContext; + +TSqlParser.prototype.query_specification = function() { + + var localctx = new Query_specificationContext(this, this._ctx, this.state); + this.enterRule(localctx, 760, TSqlParser.RULE_query_specification); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9125; + this.match(TSqlParser.SELECT); + this.state = 9127; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL || _la===TSqlParser.DISTINCT) { + this.state = 9126; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.DISTINCT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 9130; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.TOP) { + this.state = 9129; + this.top_clause(); + } + + this.state = 9132; + this.select_list(); + this.state = 9135; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INTO) { + this.state = 9133; + this.match(TSqlParser.INTO); + this.state = 9134; + this.table_name(); + } + + this.state = 9139; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FROM) { + this.state = 9137; + this.match(TSqlParser.FROM); + this.state = 9138; + this.table_sources(); + } + + this.state = 9143; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1297,this._ctx); + if(la_===1) { + this.state = 9141; + this.match(TSqlParser.WHERE); + this.state = 9142; + localctx.where = this.search_condition(); + + } + this.state = 9158; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1300,this._ctx); + if(la_===1) { + this.state = 9145; + this.match(TSqlParser.GROUP); + this.state = 9146; + this.match(TSqlParser.BY); + this.state = 9148; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL) { + this.state = 9147; + this.match(TSqlParser.ALL); + } + + this.state = 9150; + this.group_by_item(); + this.state = 9155; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1299,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9151; + this.match(TSqlParser.COMMA); + this.state = 9152; + this.group_by_item(); + } + this.state = 9157; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1299,this._ctx); + } + + + } + this.state = 9162; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1301,this._ctx); + if(la_===1) { + this.state = 9160; + this.match(TSqlParser.HAVING); + this.state = 9161; + localctx.having = this.search_condition(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Top_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_top_clause; + return this; +} + +Top_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Top_clauseContext.prototype.constructor = Top_clauseContext; + +Top_clauseContext.prototype.TOP = function() { + return this.getToken(TSqlParser.TOP, 0); +}; + +Top_clauseContext.prototype.top_percent = function() { + return this.getTypedRuleContext(Top_percentContext,0); +}; + +Top_clauseContext.prototype.top_count = function() { + return this.getTypedRuleContext(Top_countContext,0); +}; + +Top_clauseContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Top_clauseContext.prototype.TIES = function() { + return this.getToken(TSqlParser.TIES, 0); +}; + +Top_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTop_clause(this); + } +}; + +Top_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTop_clause(this); + } +}; + +Top_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTop_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Top_clauseContext = Top_clauseContext; + +TSqlParser.prototype.top_clause = function() { + + var localctx = new Top_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 762, TSqlParser.RULE_top_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9164; + this.match(TSqlParser.TOP); + this.state = 9167; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1302,this._ctx); + switch(la_) { + case 1: + this.state = 9165; + this.top_percent(); + break; + + case 2: + this.state = 9166; + this.top_count(); + break; + + } + this.state = 9171; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 9169; + this.match(TSqlParser.WITH); + this.state = 9170; + this.match(TSqlParser.TIES); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Top_percentContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_top_percent; + return this; +} + +Top_percentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Top_percentContext.prototype.constructor = Top_percentContext; + +Top_percentContext.prototype.PERCENT = function() { + return this.getToken(TSqlParser.PERCENT, 0); +}; + +Top_percentContext.prototype.REAL = function() { + return this.getToken(TSqlParser.REAL, 0); +}; + +Top_percentContext.prototype.FLOAT = function() { + return this.getToken(TSqlParser.FLOAT, 0); +}; + +Top_percentContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Top_percentContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Top_percentContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Top_percentContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTop_percent(this); + } +}; + +Top_percentContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTop_percent(this); + } +}; + +Top_percentContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTop_percent(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Top_percentContext = Top_percentContext; + +TSqlParser.prototype.top_percent = function() { + + var localctx = new Top_percentContext(this, this._ctx, this.state); + this.enterRule(localctx, 764, TSqlParser.RULE_top_percent); + var _la = 0; // Token type + try { + this.state = 9180; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FLOAT: + case TSqlParser.REAL: + this.enterOuterAlt(localctx, 1); + this.state = 9173; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FLOAT || _la===TSqlParser.REAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9174; + this.match(TSqlParser.PERCENT); + break; + case TSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 9175; + this.match(TSqlParser.LR_BRACKET); + this.state = 9176; + this.expression(0); + this.state = 9177; + this.match(TSqlParser.RR_BRACKET); + this.state = 9178; + this.match(TSqlParser.PERCENT); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Top_countContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_top_count; + return this; +} + +Top_countContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Top_countContext.prototype.constructor = Top_countContext; + +Top_countContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Top_countContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Top_countContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Top_countContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Top_countContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTop_count(this); + } +}; + +Top_countContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTop_count(this); + } +}; + +Top_countContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTop_count(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Top_countContext = Top_countContext; + +TSqlParser.prototype.top_count = function() { + + var localctx = new Top_countContext(this, this._ctx, this.state); + this.enterRule(localctx, 766, TSqlParser.RULE_top_count); + try { + this.state = 9187; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 1); + this.state = 9182; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 9183; + this.match(TSqlParser.LR_BRACKET); + this.state = 9184; + this.expression(0); + this.state = 9185; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Order_by_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_order_by_clause; + return this; +} + +Order_by_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Order_by_clauseContext.prototype.constructor = Order_by_clauseContext; + +Order_by_clauseContext.prototype.ORDER = function() { + return this.getToken(TSqlParser.ORDER, 0); +}; + +Order_by_clauseContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Order_by_clauseContext.prototype.order_by_expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Order_by_expressionContext); + } else { + return this.getTypedRuleContext(Order_by_expressionContext,i); + } +}; + +Order_by_clauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Order_by_clauseContext.prototype.OFFSET = function() { + return this.getToken(TSqlParser.OFFSET, 0); +}; + +Order_by_clauseContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Order_by_clauseContext.prototype.ROW = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ROW); + } else { + return this.getToken(TSqlParser.ROW, i); + } +}; + + +Order_by_clauseContext.prototype.ROWS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ROWS); + } else { + return this.getToken(TSqlParser.ROWS, i); + } +}; + + +Order_by_clauseContext.prototype.FETCH = function() { + return this.getToken(TSqlParser.FETCH, 0); +}; + +Order_by_clauseContext.prototype.ONLY = function() { + return this.getToken(TSqlParser.ONLY, 0); +}; + +Order_by_clauseContext.prototype.FIRST = function() { + return this.getToken(TSqlParser.FIRST, 0); +}; + +Order_by_clauseContext.prototype.NEXT = function() { + return this.getToken(TSqlParser.NEXT, 0); +}; + +Order_by_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOrder_by_clause(this); + } +}; + +Order_by_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOrder_by_clause(this); + } +}; + +Order_by_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOrder_by_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Order_by_clauseContext = Order_by_clauseContext; + +TSqlParser.prototype.order_by_clause = function() { + + var localctx = new Order_by_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 768, TSqlParser.RULE_order_by_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9189; + this.match(TSqlParser.ORDER); + this.state = 9190; + this.match(TSqlParser.BY); + this.state = 9191; + this.order_by_expression(); + this.state = 9196; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1306,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9192; + this.match(TSqlParser.COMMA); + this.state = 9193; + this.order_by_expression(); + } + this.state = 9198; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1306,this._ctx); + } + + this.state = 9210; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1308,this._ctx); + if(la_===1) { + this.state = 9199; + this.match(TSqlParser.OFFSET); + this.state = 9200; + this.expression(0); + this.state = 9201; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ROW || _la===TSqlParser.ROWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9208; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1307,this._ctx); + if(la_===1) { + this.state = 9202; + this.match(TSqlParser.FETCH); + this.state = 9203; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FIRST || _la===TSqlParser.NEXT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9204; + this.expression(0); + this.state = 9205; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ROW || _la===TSqlParser.ROWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9206; + this.match(TSqlParser.ONLY); + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function For_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_for_clause; + return this; +} + +For_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +For_clauseContext.prototype.constructor = For_clauseContext; + +For_clauseContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +For_clauseContext.prototype.BROWSE = function() { + return this.getToken(TSqlParser.BROWSE, 0); +}; + +For_clauseContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +For_clauseContext.prototype.RAW = function() { + return this.getToken(TSqlParser.RAW, 0); +}; + +For_clauseContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +For_clauseContext.prototype.xml_common_directives = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Xml_common_directivesContext); + } else { + return this.getTypedRuleContext(Xml_common_directivesContext,i); + } +}; + +For_clauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +For_clauseContext.prototype.ELEMENTS = function() { + return this.getToken(TSqlParser.ELEMENTS, 0); +}; + +For_clauseContext.prototype.XSINIL = function() { + return this.getToken(TSqlParser.XSINIL, 0); +}; + +For_clauseContext.prototype.ABSENT = function() { + return this.getToken(TSqlParser.ABSENT, 0); +}; + +For_clauseContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +For_clauseContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +For_clauseContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +For_clauseContext.prototype.XMLDATA = function() { + return this.getToken(TSqlParser.XMLDATA, 0); +}; + +For_clauseContext.prototype.XMLSCHEMA = function() { + return this.getToken(TSqlParser.XMLSCHEMA, 0); +}; + +For_clauseContext.prototype.EXPLICIT = function() { + return this.getToken(TSqlParser.EXPLICIT, 0); +}; + +For_clauseContext.prototype.PATH = function() { + return this.getToken(TSqlParser.PATH, 0); +}; + +For_clauseContext.prototype.JSON = function() { + return this.getToken(TSqlParser.JSON, 0); +}; + +For_clauseContext.prototype.ROOT = function() { + return this.getToken(TSqlParser.ROOT, 0); +}; + +For_clauseContext.prototype.INCLUDE_NULL_VALUES = function() { + return this.getToken(TSqlParser.INCLUDE_NULL_VALUES, 0); +}; + +For_clauseContext.prototype.WITHOUT_ARRAY_WRAPPER = function() { + return this.getToken(TSqlParser.WITHOUT_ARRAY_WRAPPER, 0); +}; + +For_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFor_clause(this); + } +}; + +For_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFor_clause(this); + } +}; + +For_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFor_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.For_clauseContext = For_clauseContext; + +TSqlParser.prototype.for_clause = function() { + + var localctx = new For_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 770, TSqlParser.RULE_for_clause); + var _la = 0; // Token type + try { + this.state = 9300; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1325,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9212; + this.match(TSqlParser.FOR); + this.state = 9213; + this.match(TSqlParser.BROWSE); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9214; + this.match(TSqlParser.FOR); + this.state = 9215; + this.match(TSqlParser.XML); + this.state = 9223; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.RAW: + this.state = 9216; + this.match(TSqlParser.RAW); + this.state = 9220; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1309,this._ctx); + if(la_===1) { + this.state = 9217; + this.match(TSqlParser.LR_BRACKET); + this.state = 9218; + this.match(TSqlParser.STRING); + this.state = 9219; + this.match(TSqlParser.RR_BRACKET); + + } + break; + case TSqlParser.AUTO: + this.state = 9222; + this.match(TSqlParser.AUTO); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9228; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1311,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9225; + this.xml_common_directives(); + } + this.state = 9230; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1311,this._ctx); + } + + this.state = 9241; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1314,this._ctx); + if(la_===1) { + this.state = 9231; + this.match(TSqlParser.COMMA); + this.state = 9239; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.XMLDATA: + this.state = 9232; + this.match(TSqlParser.XMLDATA); + break; + case TSqlParser.XMLSCHEMA: + this.state = 9233; + this.match(TSqlParser.XMLSCHEMA); + this.state = 9237; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1312,this._ctx); + if(la_===1) { + this.state = 9234; + this.match(TSqlParser.LR_BRACKET); + this.state = 9235; + this.match(TSqlParser.STRING); + this.state = 9236; + this.match(TSqlParser.RR_BRACKET); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + + } + this.state = 9246; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1315,this._ctx); + if(la_===1) { + this.state = 9243; + this.match(TSqlParser.COMMA); + this.state = 9244; + this.match(TSqlParser.ELEMENTS); + this.state = 9245; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ABSENT || _la===TSqlParser.XSINIL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9248; + this.match(TSqlParser.FOR); + this.state = 9249; + this.match(TSqlParser.XML); + this.state = 9250; + this.match(TSqlParser.EXPLICIT); + this.state = 9254; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1316,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9251; + this.xml_common_directives(); + } + this.state = 9256; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1316,this._ctx); + } + + this.state = 9259; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1317,this._ctx); + if(la_===1) { + this.state = 9257; + this.match(TSqlParser.COMMA); + this.state = 9258; + this.match(TSqlParser.XMLDATA); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9261; + this.match(TSqlParser.FOR); + this.state = 9262; + this.match(TSqlParser.XML); + this.state = 9263; + this.match(TSqlParser.PATH); + this.state = 9267; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1318,this._ctx); + if(la_===1) { + this.state = 9264; + this.match(TSqlParser.LR_BRACKET); + this.state = 9265; + this.match(TSqlParser.STRING); + this.state = 9266; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 9272; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1319,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9269; + this.xml_common_directives(); + } + this.state = 9274; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1319,this._ctx); + } + + this.state = 9278; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1320,this._ctx); + if(la_===1) { + this.state = 9275; + this.match(TSqlParser.COMMA); + this.state = 9276; + this.match(TSqlParser.ELEMENTS); + this.state = 9277; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ABSENT || _la===TSqlParser.XSINIL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9280; + this.match(TSqlParser.FOR); + this.state = 9281; + this.match(TSqlParser.JSON); + this.state = 9282; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AUTO || _la===TSqlParser.PATH)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9290; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1322,this._ctx); + if(la_===1) { + this.state = 9283; + this.match(TSqlParser.COMMA); + this.state = 9284; + this.match(TSqlParser.ROOT); + this.state = 9288; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1321,this._ctx); + if(la_===1) { + this.state = 9285; + this.match(TSqlParser.LR_BRACKET); + this.state = 9286; + this.match(TSqlParser.STRING); + this.state = 9287; + this.match(TSqlParser.RR_BRACKET); + + } + + } + this.state = 9294; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1323,this._ctx); + if(la_===1) { + this.state = 9292; + this.match(TSqlParser.COMMA); + this.state = 9293; + this.match(TSqlParser.INCLUDE_NULL_VALUES); + + } + this.state = 9298; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1324,this._ctx); + if(la_===1) { + this.state = 9296; + this.match(TSqlParser.COMMA); + this.state = 9297; + this.match(TSqlParser.WITHOUT_ARRAY_WRAPPER); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Xml_common_directivesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_xml_common_directives; + return this; +} + +Xml_common_directivesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Xml_common_directivesContext.prototype.constructor = Xml_common_directivesContext; + +Xml_common_directivesContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Xml_common_directivesContext.prototype.BINARY_BASE64 = function() { + return this.getToken(TSqlParser.BINARY_BASE64, 0); +}; + +Xml_common_directivesContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Xml_common_directivesContext.prototype.ROOT = function() { + return this.getToken(TSqlParser.ROOT, 0); +}; + +Xml_common_directivesContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Xml_common_directivesContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Xml_common_directivesContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Xml_common_directivesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXml_common_directives(this); + } +}; + +Xml_common_directivesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXml_common_directives(this); + } +}; + +Xml_common_directivesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXml_common_directives(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Xml_common_directivesContext = Xml_common_directivesContext; + +TSqlParser.prototype.xml_common_directives = function() { + + var localctx = new Xml_common_directivesContext(this, this._ctx, this.state); + this.enterRule(localctx, 772, TSqlParser.RULE_xml_common_directives); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9302; + this.match(TSqlParser.COMMA); + this.state = 9311; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BINARY_BASE64: + this.state = 9303; + this.match(TSqlParser.BINARY_BASE64); + break; + case TSqlParser.TYPE: + this.state = 9304; + this.match(TSqlParser.TYPE); + break; + case TSqlParser.ROOT: + this.state = 9305; + this.match(TSqlParser.ROOT); + this.state = 9309; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1326,this._ctx); + if(la_===1) { + this.state = 9306; + this.match(TSqlParser.LR_BRACKET); + this.state = 9307; + this.match(TSqlParser.STRING); + this.state = 9308; + this.match(TSqlParser.RR_BRACKET); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Order_by_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_order_by_expression; + return this; +} + +Order_by_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Order_by_expressionContext.prototype.constructor = Order_by_expressionContext; + +Order_by_expressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Order_by_expressionContext.prototype.ASC = function() { + return this.getToken(TSqlParser.ASC, 0); +}; + +Order_by_expressionContext.prototype.DESC = function() { + return this.getToken(TSqlParser.DESC, 0); +}; + +Order_by_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOrder_by_expression(this); + } +}; + +Order_by_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOrder_by_expression(this); + } +}; + +Order_by_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOrder_by_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Order_by_expressionContext = Order_by_expressionContext; + +TSqlParser.prototype.order_by_expression = function() { + + var localctx = new Order_by_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 774, TSqlParser.RULE_order_by_expression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9313; + this.expression(0); + this.state = 9315; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ASC || _la===TSqlParser.DESC) { + this.state = 9314; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASC || _la===TSqlParser.DESC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Group_by_itemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_group_by_item; + return this; +} + +Group_by_itemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Group_by_itemContext.prototype.constructor = Group_by_itemContext; + +Group_by_itemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Group_by_itemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGroup_by_item(this); + } +}; + +Group_by_itemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGroup_by_item(this); + } +}; + +Group_by_itemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGroup_by_item(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Group_by_itemContext = Group_by_itemContext; + +TSqlParser.prototype.group_by_item = function() { + + var localctx = new Group_by_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 776, TSqlParser.RULE_group_by_item); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9317; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Option_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_option_clause; + return this; +} + +Option_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Option_clauseContext.prototype.constructor = Option_clauseContext; + +Option_clauseContext.prototype.OPTION = function() { + return this.getToken(TSqlParser.OPTION, 0); +}; + +Option_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Option_clauseContext.prototype.option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(OptionContext); + } else { + return this.getTypedRuleContext(OptionContext,i); + } +}; + +Option_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Option_clauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Option_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOption_clause(this); + } +}; + +Option_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOption_clause(this); + } +}; + +Option_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOption_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Option_clauseContext = Option_clauseContext; + +TSqlParser.prototype.option_clause = function() { + + var localctx = new Option_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 778, TSqlParser.RULE_option_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9319; + this.match(TSqlParser.OPTION); + this.state = 9320; + this.match(TSqlParser.LR_BRACKET); + this.state = 9321; + this.option(); + this.state = 9326; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9322; + this.match(TSqlParser.COMMA); + this.state = 9323; + this.option(); + this.state = 9328; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9329; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_option; + this.number_rows = null; // Token + this.number_of_processors = null; // Token + this.number_recursion = null; // Token + return this; +} + +OptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OptionContext.prototype.constructor = OptionContext; + +OptionContext.prototype.FAST = function() { + return this.getToken(TSqlParser.FAST, 0); +}; + +OptionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +OptionContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +OptionContext.prototype.HASH = function() { + return this.getToken(TSqlParser.HASH, 0); +}; + +OptionContext.prototype.ORDER = function() { + return this.getToken(TSqlParser.ORDER, 0); +}; + +OptionContext.prototype.UNION = function() { + return this.getToken(TSqlParser.UNION, 0); +}; + +OptionContext.prototype.MERGE = function() { + return this.getToken(TSqlParser.MERGE, 0); +}; + +OptionContext.prototype.CONCAT = function() { + return this.getToken(TSqlParser.CONCAT, 0); +}; + +OptionContext.prototype.JOIN = function() { + return this.getToken(TSqlParser.JOIN, 0); +}; + +OptionContext.prototype.LOOP = function() { + return this.getToken(TSqlParser.LOOP, 0); +}; + +OptionContext.prototype.EXPAND = function() { + return this.getToken(TSqlParser.EXPAND, 0); +}; + +OptionContext.prototype.VIEWS = function() { + return this.getToken(TSqlParser.VIEWS, 0); +}; + +OptionContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +OptionContext.prototype.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX = function() { + return this.getToken(TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX, 0); +}; + +OptionContext.prototype.KEEP = function() { + return this.getToken(TSqlParser.KEEP, 0); +}; + +OptionContext.prototype.PLAN = function() { + return this.getToken(TSqlParser.PLAN, 0); +}; + +OptionContext.prototype.KEEPFIXED = function() { + return this.getToken(TSqlParser.KEEPFIXED, 0); +}; + +OptionContext.prototype.MAXDOP = function() { + return this.getToken(TSqlParser.MAXDOP, 0); +}; + +OptionContext.prototype.MAXRECURSION = function() { + return this.getToken(TSqlParser.MAXRECURSION, 0); +}; + +OptionContext.prototype.OPTIMIZE = function() { + return this.getToken(TSqlParser.OPTIMIZE, 0); +}; + +OptionContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +OptionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +OptionContext.prototype.optimize_for_arg = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Optimize_for_argContext); + } else { + return this.getTypedRuleContext(Optimize_for_argContext,i); + } +}; + +OptionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +OptionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +OptionContext.prototype.UNKNOWN = function() { + return this.getToken(TSqlParser.UNKNOWN, 0); +}; + +OptionContext.prototype.PARAMETERIZATION = function() { + return this.getToken(TSqlParser.PARAMETERIZATION, 0); +}; + +OptionContext.prototype.SIMPLE = function() { + return this.getToken(TSqlParser.SIMPLE, 0); +}; + +OptionContext.prototype.FORCED = function() { + return this.getToken(TSqlParser.FORCED, 0); +}; + +OptionContext.prototype.RECOMPILE = function() { + return this.getToken(TSqlParser.RECOMPILE, 0); +}; + +OptionContext.prototype.ROBUST = function() { + return this.getToken(TSqlParser.ROBUST, 0); +}; + +OptionContext.prototype.USE = function() { + return this.getToken(TSqlParser.USE, 0); +}; + +OptionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +OptionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOption(this); + } +}; + +OptionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOption(this); + } +}; + +OptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.OptionContext = OptionContext; + +TSqlParser.prototype.option = function() { + + var localctx = new OptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 780, TSqlParser.RULE_option); + var _la = 0; // Token type + try { + this.state = 9376; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1331,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9331; + this.match(TSqlParser.FAST); + this.state = 9332; + localctx.number_rows = this.match(TSqlParser.DECIMAL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9333; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ORDER || _la===TSqlParser.HASH)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9334; + this.match(TSqlParser.GROUP); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9335; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MERGE || _la===TSqlParser.CONCAT || _la===TSqlParser.HASH)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9336; + this.match(TSqlParser.UNION); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9337; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MERGE || _la===TSqlParser.HASH || _la===TSqlParser.LOOP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9338; + this.match(TSqlParser.JOIN); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9339; + this.match(TSqlParser.EXPAND); + this.state = 9340; + this.match(TSqlParser.VIEWS); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 9341; + this.match(TSqlParser.FORCE); + this.state = 9342; + this.match(TSqlParser.ORDER); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 9343; + this.match(TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 9344; + this.match(TSqlParser.KEEP); + this.state = 9345; + this.match(TSqlParser.PLAN); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 9346; + this.match(TSqlParser.KEEPFIXED); + this.state = 9347; + this.match(TSqlParser.PLAN); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 9348; + this.match(TSqlParser.MAXDOP); + this.state = 9349; + localctx.number_of_processors = this.match(TSqlParser.DECIMAL); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 9350; + this.match(TSqlParser.MAXRECURSION); + this.state = 9351; + localctx.number_recursion = this.match(TSqlParser.DECIMAL); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 9352; + this.match(TSqlParser.OPTIMIZE); + this.state = 9353; + this.match(TSqlParser.FOR); + this.state = 9354; + this.match(TSqlParser.LR_BRACKET); + this.state = 9355; + this.optimize_for_arg(); + this.state = 9360; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9356; + this.match(TSqlParser.COMMA); + this.state = 9357; + this.optimize_for_arg(); + this.state = 9362; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9363; + this.match(TSqlParser.RR_BRACKET); + break; + + case 13: + this.enterOuterAlt(localctx, 13); + this.state = 9365; + this.match(TSqlParser.OPTIMIZE); + this.state = 9366; + this.match(TSqlParser.FOR); + this.state = 9367; + this.match(TSqlParser.UNKNOWN); + break; + + case 14: + this.enterOuterAlt(localctx, 14); + this.state = 9368; + this.match(TSqlParser.PARAMETERIZATION); + this.state = 9369; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FORCED || _la===TSqlParser.SIMPLE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 15: + this.enterOuterAlt(localctx, 15); + this.state = 9370; + this.match(TSqlParser.RECOMPILE); + break; + + case 16: + this.enterOuterAlt(localctx, 16); + this.state = 9371; + this.match(TSqlParser.ROBUST); + this.state = 9372; + this.match(TSqlParser.PLAN); + break; + + case 17: + this.enterOuterAlt(localctx, 17); + this.state = 9373; + this.match(TSqlParser.USE); + this.state = 9374; + this.match(TSqlParser.PLAN); + this.state = 9375; + this.match(TSqlParser.STRING); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Optimize_for_argContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_optimize_for_arg; + return this; +} + +Optimize_for_argContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Optimize_for_argContext.prototype.constructor = Optimize_for_argContext; + +Optimize_for_argContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Optimize_for_argContext.prototype.UNKNOWN = function() { + return this.getToken(TSqlParser.UNKNOWN, 0); +}; + +Optimize_for_argContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Optimize_for_argContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Optimize_for_argContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Optimize_for_argContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOptimize_for_arg(this); + } +}; + +Optimize_for_argContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOptimize_for_arg(this); + } +}; + +Optimize_for_argContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOptimize_for_arg(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Optimize_for_argContext = Optimize_for_argContext; + +TSqlParser.prototype.optimize_for_arg = function() { + + var localctx = new Optimize_for_argContext(this, this._ctx, this.state); + this.enterRule(localctx, 782, TSqlParser.RULE_optimize_for_arg); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9378; + this.match(TSqlParser.LOCAL_ID); + this.state = 9385; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UNKNOWN: + this.state = 9379; + this.match(TSqlParser.UNKNOWN); + break; + case TSqlParser.EQUAL: + this.state = 9380; + this.match(TSqlParser.EQUAL); + this.state = 9383; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.state = 9381; + this.constant(); + break; + case TSqlParser.NULL: + this.state = 9382; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Select_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_select_list; + return this; +} + +Select_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Select_listContext.prototype.constructor = Select_listContext; + +Select_listContext.prototype.select_list_elem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Select_list_elemContext); + } else { + return this.getTypedRuleContext(Select_list_elemContext,i); + } +}; + +Select_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Select_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSelect_list(this); + } +}; + +Select_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSelect_list(this); + } +}; + +Select_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSelect_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Select_listContext = Select_listContext; + +TSqlParser.prototype.select_list = function() { + + var localctx = new Select_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 784, TSqlParser.RULE_select_list); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9387; + this.select_list_elem(); + this.state = 9392; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1334,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9388; + this.match(TSqlParser.COMMA); + this.state = 9389; + this.select_list_elem(); + } + this.state = 9394; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1334,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Udt_method_argumentsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_udt_method_arguments; + return this; +} + +Udt_method_argumentsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Udt_method_argumentsContext.prototype.constructor = Udt_method_argumentsContext; + +Udt_method_argumentsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Udt_method_argumentsContext.prototype.execute_var_string = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Execute_var_stringContext); + } else { + return this.getTypedRuleContext(Execute_var_stringContext,i); + } +}; + +Udt_method_argumentsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Udt_method_argumentsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Udt_method_argumentsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUdt_method_arguments(this); + } +}; + +Udt_method_argumentsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUdt_method_arguments(this); + } +}; + +Udt_method_argumentsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUdt_method_arguments(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Udt_method_argumentsContext = Udt_method_argumentsContext; + +TSqlParser.prototype.udt_method_arguments = function() { + + var localctx = new Udt_method_argumentsContext(this, this._ctx, this.state); + this.enterRule(localctx, 786, TSqlParser.RULE_udt_method_arguments); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9395; + this.match(TSqlParser.LR_BRACKET); + this.state = 9396; + this.execute_var_string(); + this.state = 9401; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9397; + this.match(TSqlParser.COMMA); + this.state = 9398; + this.execute_var_string(); + this.state = 9403; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9404; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AsteriskContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_asterisk; + return this; +} + +AsteriskContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AsteriskContext.prototype.constructor = AsteriskContext; + +AsteriskContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +AsteriskContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +AsteriskContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +AsteriskContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAsterisk(this); + } +}; + +AsteriskContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAsterisk(this); + } +}; + +AsteriskContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAsterisk(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.AsteriskContext = AsteriskContext; + +TSqlParser.prototype.asterisk = function() { + + var localctx = new AsteriskContext(this, this._ctx, this.state); + this.enterRule(localctx, 788, TSqlParser.RULE_asterisk); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9409; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.BLOCKING_HIERARCHY || _la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 9406; + this.table_name(); + this.state = 9407; + this.match(TSqlParser.DOT); + } + + this.state = 9411; + this.match(TSqlParser.STAR); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_elem; + this.column_name = null; // IdContext + return this; +} + +Column_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_elemContext.prototype.constructor = Column_elemContext; + +Column_elemContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Column_elemContext.prototype.as_column_alias = function() { + return this.getTypedRuleContext(As_column_aliasContext,0); +}; + +Column_elemContext.prototype.DOLLAR = function() { + return this.getToken(TSqlParser.DOLLAR, 0); +}; + +Column_elemContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Column_elemContext.prototype.ROWGUID = function() { + return this.getToken(TSqlParser.ROWGUID, 0); +}; + +Column_elemContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Column_elemContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Column_elemContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Column_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_elem(this); + } +}; + +Column_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_elem(this); + } +}; + +Column_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_elemContext = Column_elemContext; + +TSqlParser.prototype.column_elem = function() { + + var localctx = new Column_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 790, TSqlParser.RULE_column_elem); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9426; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + case TSqlParser.DOLLAR: + this.state = 9416; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1337,this._ctx); + if(la_===1) { + this.state = 9413; + this.table_name(); + this.state = 9414; + this.match(TSqlParser.DOT); + + } + this.state = 9423; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1338,this._ctx); + switch(la_) { + case 1: + this.state = 9418; + localctx.column_name = this.id(); + break; + + case 2: + this.state = 9419; + this.match(TSqlParser.DOLLAR); + this.state = 9420; + this.match(TSqlParser.IDENTITY); + break; + + case 3: + this.state = 9421; + this.match(TSqlParser.DOLLAR); + this.state = 9422; + this.match(TSqlParser.ROWGUID); + break; + + } + break; + case TSqlParser.NULL: + this.state = 9425; + this.match(TSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9429; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1340,this._ctx); + if(la_===1) { + this.state = 9428; + this.as_column_alias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Udt_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_udt_elem; + this.udt_column_name = null; // IdContext + this.non_static_attr = null; // IdContext + this.static_attr = null; // IdContext + return this; +} + +Udt_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Udt_elemContext.prototype.constructor = Udt_elemContext; + +Udt_elemContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Udt_elemContext.prototype.udt_method_arguments = function() { + return this.getTypedRuleContext(Udt_method_argumentsContext,0); +}; + +Udt_elemContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Udt_elemContext.prototype.as_column_alias = function() { + return this.getTypedRuleContext(As_column_aliasContext,0); +}; + +Udt_elemContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Udt_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUdt_elem(this); + } +}; + +Udt_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUdt_elem(this); + } +}; + +Udt_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUdt_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Udt_elemContext = Udt_elemContext; + +TSqlParser.prototype.udt_elem = function() { + + var localctx = new Udt_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 792, TSqlParser.RULE_udt_elem); + try { + this.state = 9448; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1344,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9431; + localctx.udt_column_name = this.id(); + this.state = 9432; + this.match(TSqlParser.DOT); + this.state = 9433; + localctx.non_static_attr = this.id(); + this.state = 9434; + this.udt_method_arguments(); + this.state = 9436; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1341,this._ctx); + if(la_===1) { + this.state = 9435; + this.as_column_alias(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9438; + localctx.udt_column_name = this.id(); + this.state = 9439; + this.match(TSqlParser.COLON); + this.state = 9440; + this.match(TSqlParser.COLON); + this.state = 9441; + localctx.static_attr = this.id(); + this.state = 9443; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1342,this._ctx); + if(la_===1) { + this.state = 9442; + this.udt_method_arguments(); + + } + this.state = 9446; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1343,this._ctx); + if(la_===1) { + this.state = 9445; + this.as_column_alias(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Expression_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_expression_elem; + this.eq = null; // Token + return this; +} + +Expression_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Expression_elemContext.prototype.constructor = Expression_elemContext; + +Expression_elemContext.prototype.column_alias = function() { + return this.getTypedRuleContext(Column_aliasContext,0); +}; + +Expression_elemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Expression_elemContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Expression_elemContext.prototype.as_column_alias = function() { + return this.getTypedRuleContext(As_column_aliasContext,0); +}; + +Expression_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExpression_elem(this); + } +}; + +Expression_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExpression_elem(this); + } +}; + +Expression_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExpression_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Expression_elemContext = Expression_elemContext; + +TSqlParser.prototype.expression_elem = function() { + + var localctx = new Expression_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 794, TSqlParser.RULE_expression_elem); + try { + this.state = 9458; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1346,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9450; + this.column_alias(); + this.state = 9451; + localctx.eq = this.match(TSqlParser.EQUAL); + this.state = 9452; + this.expression(0); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9454; + this.expression(0); + this.state = 9456; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1345,this._ctx); + if(la_===1) { + this.state = 9455; + this.as_column_alias(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Select_list_elemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_select_list_elem; + return this; +} + +Select_list_elemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Select_list_elemContext.prototype.constructor = Select_list_elemContext; + +Select_list_elemContext.prototype.asterisk = function() { + return this.getTypedRuleContext(AsteriskContext,0); +}; + +Select_list_elemContext.prototype.column_elem = function() { + return this.getTypedRuleContext(Column_elemContext,0); +}; + +Select_list_elemContext.prototype.udt_elem = function() { + return this.getTypedRuleContext(Udt_elemContext,0); +}; + +Select_list_elemContext.prototype.expression_elem = function() { + return this.getTypedRuleContext(Expression_elemContext,0); +}; + +Select_list_elemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSelect_list_elem(this); + } +}; + +Select_list_elemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSelect_list_elem(this); + } +}; + +Select_list_elemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSelect_list_elem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Select_list_elemContext = Select_list_elemContext; + +TSqlParser.prototype.select_list_elem = function() { + + var localctx = new Select_list_elemContext(this, this._ctx, this.state); + this.enterRule(localctx, 796, TSqlParser.RULE_select_list_elem); + try { + this.state = 9464; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1347,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9460; + this.asterisk(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9461; + this.column_elem(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9462; + this.udt_elem(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9463; + this.expression_elem(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_sourcesContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_sources; + return this; +} + +Table_sourcesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_sourcesContext.prototype.constructor = Table_sourcesContext; + +Table_sourcesContext.prototype.table_source = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_sourceContext); + } else { + return this.getTypedRuleContext(Table_sourceContext,i); + } +}; + +Table_sourcesContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Table_sourcesContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_sources(this); + } +}; + +Table_sourcesContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_sources(this); + } +}; + +Table_sourcesContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_sources(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_sourcesContext = Table_sourcesContext; + +TSqlParser.prototype.table_sources = function() { + + var localctx = new Table_sourcesContext(this, this._ctx, this.state); + this.enterRule(localctx, 798, TSqlParser.RULE_table_sources); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9466; + this.table_source(); + this.state = 9471; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1348,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9467; + this.match(TSqlParser.COMMA); + this.state = 9468; + this.table_source(); + } + this.state = 9473; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1348,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_sourceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_source; + return this; +} + +Table_sourceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_sourceContext.prototype.constructor = Table_sourceContext; + +Table_sourceContext.prototype.table_source_item_joined = function() { + return this.getTypedRuleContext(Table_source_item_joinedContext,0); +}; + +Table_sourceContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Table_sourceContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Table_sourceContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_source(this); + } +}; + +Table_sourceContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_source(this); + } +}; + +Table_sourceContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_source(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_sourceContext = Table_sourceContext; + +TSqlParser.prototype.table_source = function() { + + var localctx = new Table_sourceContext(this, this._ctx, this.state); + this.enterRule(localctx, 800, TSqlParser.RULE_table_source); + try { + this.state = 9479; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1349,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9474; + this.table_source_item_joined(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9475; + this.match(TSqlParser.LR_BRACKET); + this.state = 9476; + this.table_source_item_joined(); + this.state = 9477; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_source_item_joinedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_source_item_joined; + return this; +} + +Table_source_item_joinedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_source_item_joinedContext.prototype.constructor = Table_source_item_joinedContext; + +Table_source_item_joinedContext.prototype.table_source_item = function() { + return this.getTypedRuleContext(Table_source_itemContext,0); +}; + +Table_source_item_joinedContext.prototype.join_part = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Join_partContext); + } else { + return this.getTypedRuleContext(Join_partContext,i); + } +}; + +Table_source_item_joinedContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_source_item_joined(this); + } +}; + +Table_source_item_joinedContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_source_item_joined(this); + } +}; + +Table_source_item_joinedContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_source_item_joined(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_source_item_joinedContext = Table_source_item_joinedContext; + +TSqlParser.prototype.table_source_item_joined = function() { + + var localctx = new Table_source_item_joinedContext(this, this._ctx, this.state); + this.enterRule(localctx, 802, TSqlParser.RULE_table_source_item_joined); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9481; + this.table_source_item(); + this.state = 9485; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1350,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 9482; + this.join_part(); + } + this.state = 9487; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1350,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_source_itemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_source_item; + return this; +} + +Table_source_itemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_source_itemContext.prototype.constructor = Table_source_itemContext; + +Table_source_itemContext.prototype.table_name_with_hint = function() { + return this.getTypedRuleContext(Table_name_with_hintContext,0); +}; + +Table_source_itemContext.prototype.as_table_alias = function() { + return this.getTypedRuleContext(As_table_aliasContext,0); +}; + +Table_source_itemContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Table_source_itemContext.prototype.rowset_function = function() { + return this.getTypedRuleContext(Rowset_functionContext,0); +}; + +Table_source_itemContext.prototype.derived_table = function() { + return this.getTypedRuleContext(Derived_tableContext,0); +}; + +Table_source_itemContext.prototype.column_alias_list = function() { + return this.getTypedRuleContext(Column_alias_listContext,0); +}; + +Table_source_itemContext.prototype.change_table = function() { + return this.getTypedRuleContext(Change_tableContext,0); +}; + +Table_source_itemContext.prototype.function_call = function() { + return this.getTypedRuleContext(Function_callContext,0); +}; + +Table_source_itemContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Table_source_itemContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Table_source_itemContext.prototype.open_xml = function() { + return this.getTypedRuleContext(Open_xmlContext,0); +}; + +Table_source_itemContext.prototype.COLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COLON); + } else { + return this.getToken(TSqlParser.COLON, i); + } +}; + + +Table_source_itemContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_source_item(this); + } +}; + +Table_source_itemContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_source_item(this); + } +}; + +Table_source_itemContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_source_item(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_source_itemContext = Table_source_itemContext; + +TSqlParser.prototype.table_source_item = function() { + + var localctx = new Table_source_itemContext(this, this._ctx, this.state); + this.enterRule(localctx, 804, TSqlParser.RULE_table_source_item); + try { + this.state = 9537; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1362,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9488; + this.table_name_with_hint(); + this.state = 9490; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1351,this._ctx); + if(la_===1) { + this.state = 9489; + this.as_table_alias(); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9492; + this.full_table_name(); + this.state = 9494; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1352,this._ctx); + if(la_===1) { + this.state = 9493; + this.as_table_alias(); + + } + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9496; + this.rowset_function(); + this.state = 9498; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1353,this._ctx); + if(la_===1) { + this.state = 9497; + this.as_table_alias(); + + } + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9500; + this.derived_table(); + this.state = 9505; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1355,this._ctx); + if(la_===1) { + this.state = 9501; + this.as_table_alias(); + this.state = 9503; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1354,this._ctx); + if(la_===1) { + this.state = 9502; + this.column_alias_list(); + + } + + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9507; + this.change_table(); + this.state = 9508; + this.as_table_alias(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 9510; + this.function_call(); + this.state = 9515; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1357,this._ctx); + if(la_===1) { + this.state = 9511; + this.as_table_alias(); + this.state = 9513; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1356,this._ctx); + if(la_===1) { + this.state = 9512; + this.column_alias_list(); + + } + + } + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 9517; + this.match(TSqlParser.LOCAL_ID); + this.state = 9519; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1358,this._ctx); + if(la_===1) { + this.state = 9518; + this.as_table_alias(); + + } + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 9521; + this.match(TSqlParser.LOCAL_ID); + this.state = 9522; + this.match(TSqlParser.DOT); + this.state = 9523; + this.function_call(); + this.state = 9528; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1360,this._ctx); + if(la_===1) { + this.state = 9524; + this.as_table_alias(); + this.state = 9526; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1359,this._ctx); + if(la_===1) { + this.state = 9525; + this.column_alias_list(); + + } + + } + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 9530; + this.open_xml(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 9531; + this.match(TSqlParser.COLON); + this.state = 9532; + this.match(TSqlParser.COLON); + this.state = 9533; + this.function_call(); + this.state = 9535; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1361,this._ctx); + if(la_===1) { + this.state = 9534; + this.as_table_alias(); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Open_xmlContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_open_xml; + return this; +} + +Open_xmlContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Open_xmlContext.prototype.constructor = Open_xmlContext; + +Open_xmlContext.prototype.OPENXML = function() { + return this.getToken(TSqlParser.OPENXML, 0); +}; + +Open_xmlContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Open_xmlContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Open_xmlContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Open_xmlContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Open_xmlContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Open_xmlContext.prototype.schema_declaration = function() { + return this.getTypedRuleContext(Schema_declarationContext,0); +}; + +Open_xmlContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOpen_xml(this); + } +}; + +Open_xmlContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOpen_xml(this); + } +}; + +Open_xmlContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOpen_xml(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Open_xmlContext = Open_xmlContext; + +TSqlParser.prototype.open_xml = function() { + + var localctx = new Open_xmlContext(this, this._ctx, this.state); + this.enterRule(localctx, 806, TSqlParser.RULE_open_xml); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9539; + this.match(TSqlParser.OPENXML); + this.state = 9540; + this.match(TSqlParser.LR_BRACKET); + this.state = 9541; + this.expression(0); + this.state = 9542; + this.match(TSqlParser.COMMA); + this.state = 9543; + this.expression(0); + this.state = 9546; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9544; + this.match(TSqlParser.COMMA); + this.state = 9545; + this.expression(0); + } + + this.state = 9548; + this.match(TSqlParser.RR_BRACKET); + this.state = 9554; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1364,this._ctx); + if(la_===1) { + this.state = 9549; + this.match(TSqlParser.WITH); + this.state = 9550; + this.match(TSqlParser.LR_BRACKET); + this.state = 9551; + this.schema_declaration(); + this.state = 9552; + this.match(TSqlParser.RR_BRACKET); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Schema_declarationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_schema_declaration; + return this; +} + +Schema_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Schema_declarationContext.prototype.constructor = Schema_declarationContext; + +Schema_declarationContext.prototype.column_declaration = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_declarationContext); + } else { + return this.getTypedRuleContext(Column_declarationContext,i); + } +}; + +Schema_declarationContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Schema_declarationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSchema_declaration(this); + } +}; + +Schema_declarationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSchema_declaration(this); + } +}; + +Schema_declarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSchema_declaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Schema_declarationContext = Schema_declarationContext; + +TSqlParser.prototype.schema_declaration = function() { + + var localctx = new Schema_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 808, TSqlParser.RULE_schema_declaration); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9556; + this.column_declaration(); + this.state = 9561; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9557; + this.match(TSqlParser.COMMA); + this.state = 9558; + this.column_declaration(); + this.state = 9563; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_declarationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_declaration; + return this; +} + +Column_declarationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_declarationContext.prototype.constructor = Column_declarationContext; + +Column_declarationContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Column_declarationContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +Column_declarationContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Column_declarationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_declaration(this); + } +}; + +Column_declarationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_declaration(this); + } +}; + +Column_declarationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_declaration(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_declarationContext = Column_declarationContext; + +TSqlParser.prototype.column_declaration = function() { + + var localctx = new Column_declarationContext(this, this._ctx, this.state); + this.enterRule(localctx, 810, TSqlParser.RULE_column_declaration); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9564; + this.match(TSqlParser.ID); + this.state = 9565; + this.data_type(); + this.state = 9567; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.STRING) { + this.state = 9566; + this.match(TSqlParser.STRING); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Change_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_change_table; + return this; +} + +Change_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Change_tableContext.prototype.constructor = Change_tableContext; + +Change_tableContext.prototype.CHANGETABLE = function() { + return this.getToken(TSqlParser.CHANGETABLE, 0); +}; + +Change_tableContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Change_tableContext.prototype.CHANGES = function() { + return this.getToken(TSqlParser.CHANGES, 0); +}; + +Change_tableContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Change_tableContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Change_tableContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Change_tableContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Change_tableContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Change_tableContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Change_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterChange_table(this); + } +}; + +Change_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitChange_table(this); + } +}; + +Change_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitChange_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Change_tableContext = Change_tableContext; + +TSqlParser.prototype.change_table = function() { + + var localctx = new Change_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 812, TSqlParser.RULE_change_table); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9569; + this.match(TSqlParser.CHANGETABLE); + this.state = 9570; + this.match(TSqlParser.LR_BRACKET); + this.state = 9571; + this.match(TSqlParser.CHANGES); + this.state = 9572; + this.table_name(); + this.state = 9573; + this.match(TSqlParser.COMMA); + this.state = 9574; + _la = this._input.LA(1); + if(!(_la===TSqlParser.NULL || _la===TSqlParser.LOCAL_ID || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9575; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Join_partContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_join_part; + this.join_type = null; // Token + this.join_hint = null; // Token + return this; +} + +Join_partContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Join_partContext.prototype.constructor = Join_partContext; + +Join_partContext.prototype.JOIN = function() { + return this.getToken(TSqlParser.JOIN, 0); +}; + +Join_partContext.prototype.table_source = function() { + return this.getTypedRuleContext(Table_sourceContext,0); +}; + +Join_partContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Join_partContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Join_partContext.prototype.LEFT = function() { + return this.getToken(TSqlParser.LEFT, 0); +}; + +Join_partContext.prototype.RIGHT = function() { + return this.getToken(TSqlParser.RIGHT, 0); +}; + +Join_partContext.prototype.FULL = function() { + return this.getToken(TSqlParser.FULL, 0); +}; + +Join_partContext.prototype.INNER = function() { + return this.getToken(TSqlParser.INNER, 0); +}; + +Join_partContext.prototype.OUTER = function() { + return this.getToken(TSqlParser.OUTER, 0); +}; + +Join_partContext.prototype.LOOP = function() { + return this.getToken(TSqlParser.LOOP, 0); +}; + +Join_partContext.prototype.HASH = function() { + return this.getToken(TSqlParser.HASH, 0); +}; + +Join_partContext.prototype.MERGE = function() { + return this.getToken(TSqlParser.MERGE, 0); +}; + +Join_partContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Join_partContext.prototype.CROSS = function() { + return this.getToken(TSqlParser.CROSS, 0); +}; + +Join_partContext.prototype.APPLY = function() { + return this.getToken(TSqlParser.APPLY, 0); +}; + +Join_partContext.prototype.PIVOT = function() { + return this.getToken(TSqlParser.PIVOT, 0); +}; + +Join_partContext.prototype.pivot_clause = function() { + return this.getTypedRuleContext(Pivot_clauseContext,0); +}; + +Join_partContext.prototype.as_table_alias = function() { + return this.getTypedRuleContext(As_table_aliasContext,0); +}; + +Join_partContext.prototype.UNPIVOT = function() { + return this.getToken(TSqlParser.UNPIVOT, 0); +}; + +Join_partContext.prototype.unpivot_clause = function() { + return this.getTypedRuleContext(Unpivot_clauseContext,0); +}; + +Join_partContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterJoin_part(this); + } +}; + +Join_partContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitJoin_part(this); + } +}; + +Join_partContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitJoin_part(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Join_partContext = Join_partContext; + +TSqlParser.prototype.join_part = function() { + + var localctx = new Join_partContext(this, this._ctx, this.state); + this.enterRule(localctx, 814, TSqlParser.RULE_join_part); + var _la = 0; // Token type + try { + this.state = 9611; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1371,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9584; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.INNER: + case TSqlParser.JOIN: + case TSqlParser.MERGE: + case TSqlParser.HASH: + case TSqlParser.LOOP: + case TSqlParser.REMOTE: + this.state = 9578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.INNER) { + this.state = 9577; + this.match(TSqlParser.INNER); + } + + break; + case TSqlParser.FULL: + case TSqlParser.LEFT: + case TSqlParser.RIGHT: + this.state = 9580; + localctx.join_type = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.FULL || _la===TSqlParser.LEFT || _la===TSqlParser.RIGHT)) { + localctx.join_type = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9582; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.OUTER) { + this.state = 9581; + this.match(TSqlParser.OUTER); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 9587; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MERGE || _la===TSqlParser.HASH || _la===TSqlParser.LOOP || _la===TSqlParser.REMOTE) { + this.state = 9586; + localctx.join_hint = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.MERGE || _la===TSqlParser.HASH || _la===TSqlParser.LOOP || _la===TSqlParser.REMOTE)) { + localctx.join_hint = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 9589; + this.match(TSqlParser.JOIN); + this.state = 9590; + this.table_source(); + this.state = 9591; + this.match(TSqlParser.ON); + this.state = 9592; + this.search_condition(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9594; + this.match(TSqlParser.CROSS); + this.state = 9595; + this.match(TSqlParser.JOIN); + this.state = 9596; + this.table_source(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9597; + this.match(TSqlParser.CROSS); + this.state = 9598; + this.match(TSqlParser.APPLY); + this.state = 9599; + this.table_source(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9600; + this.match(TSqlParser.OUTER); + this.state = 9601; + this.match(TSqlParser.APPLY); + this.state = 9602; + this.table_source(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9603; + this.match(TSqlParser.PIVOT); + this.state = 9604; + this.pivot_clause(); + this.state = 9605; + this.as_table_alias(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 9607; + this.match(TSqlParser.UNPIVOT); + this.state = 9608; + this.unpivot_clause(); + this.state = 9609; + this.as_table_alias(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Pivot_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_pivot_clause; + return this; +} + +Pivot_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Pivot_clauseContext.prototype.constructor = Pivot_clauseContext; + +Pivot_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Pivot_clauseContext.prototype.aggregate_windowed_function = function() { + return this.getTypedRuleContext(Aggregate_windowed_functionContext,0); +}; + +Pivot_clauseContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Pivot_clauseContext.prototype.full_column_name = function() { + return this.getTypedRuleContext(Full_column_nameContext,0); +}; + +Pivot_clauseContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +Pivot_clauseContext.prototype.column_alias_list = function() { + return this.getTypedRuleContext(Column_alias_listContext,0); +}; + +Pivot_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Pivot_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterPivot_clause(this); + } +}; + +Pivot_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitPivot_clause(this); + } +}; + +Pivot_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitPivot_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Pivot_clauseContext = Pivot_clauseContext; + +TSqlParser.prototype.pivot_clause = function() { + + var localctx = new Pivot_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 816, TSqlParser.RULE_pivot_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9613; + this.match(TSqlParser.LR_BRACKET); + this.state = 9614; + this.aggregate_windowed_function(); + this.state = 9615; + this.match(TSqlParser.FOR); + this.state = 9616; + this.full_column_name(); + this.state = 9617; + this.match(TSqlParser.IN); + this.state = 9618; + this.column_alias_list(); + this.state = 9619; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Unpivot_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_unpivot_clause; + return this; +} + +Unpivot_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Unpivot_clauseContext.prototype.constructor = Unpivot_clauseContext; + +Unpivot_clauseContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Unpivot_clauseContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Unpivot_clauseContext.prototype.FOR = function() { + return this.getToken(TSqlParser.FOR, 0); +}; + +Unpivot_clauseContext.prototype.full_column_name = function() { + return this.getTypedRuleContext(Full_column_nameContext,0); +}; + +Unpivot_clauseContext.prototype.IN = function() { + return this.getToken(TSqlParser.IN, 0); +}; + +Unpivot_clauseContext.prototype.full_column_name_list = function() { + return this.getTypedRuleContext(Full_column_name_listContext,0); +}; + +Unpivot_clauseContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Unpivot_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterUnpivot_clause(this); + } +}; + +Unpivot_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitUnpivot_clause(this); + } +}; + +Unpivot_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitUnpivot_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Unpivot_clauseContext = Unpivot_clauseContext; + +TSqlParser.prototype.unpivot_clause = function() { + + var localctx = new Unpivot_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 818, TSqlParser.RULE_unpivot_clause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9621; + this.match(TSqlParser.LR_BRACKET); + this.state = 9622; + this.expression(0); + this.state = 9623; + this.match(TSqlParser.FOR); + this.state = 9624; + this.full_column_name(); + this.state = 9625; + this.match(TSqlParser.IN); + this.state = 9626; + this.match(TSqlParser.LR_BRACKET); + this.state = 9627; + this.full_column_name_list(); + this.state = 9628; + this.match(TSqlParser.RR_BRACKET); + this.state = 9629; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Full_column_name_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_full_column_name_list; + return this; +} + +Full_column_name_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Full_column_name_listContext.prototype.constructor = Full_column_name_listContext; + +Full_column_name_listContext.prototype.full_column_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Full_column_nameContext); + } else { + return this.getTypedRuleContext(Full_column_nameContext,i); + } +}; + +Full_column_name_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Full_column_name_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFull_column_name_list(this); + } +}; + +Full_column_name_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFull_column_name_list(this); + } +}; + +Full_column_name_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFull_column_name_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Full_column_name_listContext = Full_column_name_listContext; + +TSqlParser.prototype.full_column_name_list = function() { + + var localctx = new Full_column_name_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 820, TSqlParser.RULE_full_column_name_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9631; + this.full_column_name(); + this.state = 9636; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9632; + this.match(TSqlParser.COMMA); + this.state = 9633; + this.full_column_name(); + this.state = 9638; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_name_with_hintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_name_with_hint; + return this; +} + +Table_name_with_hintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_name_with_hintContext.prototype.constructor = Table_name_with_hintContext; + +Table_name_with_hintContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Table_name_with_hintContext.prototype.with_table_hints = function() { + return this.getTypedRuleContext(With_table_hintsContext,0); +}; + +Table_name_with_hintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_name_with_hint(this); + } +}; + +Table_name_with_hintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_name_with_hint(this); + } +}; + +Table_name_with_hintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_name_with_hint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_name_with_hintContext = Table_name_with_hintContext; + +TSqlParser.prototype.table_name_with_hint = function() { + + var localctx = new Table_name_with_hintContext(this, this._ctx, this.state); + this.enterRule(localctx, 822, TSqlParser.RULE_table_name_with_hint); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9639; + this.table_name(); + this.state = 9641; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1373,this._ctx); + if(la_===1) { + this.state = 9640; + this.with_table_hints(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Rowset_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_rowset_function; + this.provider_name = null; // Token + this.connectionString = null; // Token + this.sql = null; // Token + this.data_file = null; // Token + return this; +} + +Rowset_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Rowset_functionContext.prototype.constructor = Rowset_functionContext; + +Rowset_functionContext.prototype.OPENROWSET = function() { + return this.getToken(TSqlParser.OPENROWSET, 0); +}; + +Rowset_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Rowset_functionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Rowset_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Rowset_functionContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Rowset_functionContext.prototype.BULK = function() { + return this.getToken(TSqlParser.BULK, 0); +}; + +Rowset_functionContext.prototype.bulk_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Bulk_optionContext); + } else { + return this.getTypedRuleContext(Bulk_optionContext,i); + } +}; + +Rowset_functionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Rowset_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRowset_function(this); + } +}; + +Rowset_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRowset_function(this); + } +}; + +Rowset_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRowset_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Rowset_functionContext = Rowset_functionContext; + +TSqlParser.prototype.rowset_function = function() { + + var localctx = new Rowset_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 824, TSqlParser.RULE_rowset_function); + var _la = 0; // Token type + try { + this.state = 9669; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1376,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9643; + this.match(TSqlParser.OPENROWSET); + this.state = 9644; + this.match(TSqlParser.LR_BRACKET); + this.state = 9645; + localctx.provider_name = this.match(TSqlParser.STRING); + this.state = 9646; + this.match(TSqlParser.COMMA); + this.state = 9647; + localctx.connectionString = this.match(TSqlParser.STRING); + this.state = 9648; + this.match(TSqlParser.COMMA); + this.state = 9649; + localctx.sql = this.match(TSqlParser.STRING); + this.state = 9650; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9651; + this.match(TSqlParser.OPENROWSET); + this.state = 9652; + this.match(TSqlParser.LR_BRACKET); + this.state = 9653; + this.match(TSqlParser.BULK); + this.state = 9654; + localctx.data_file = this.match(TSqlParser.STRING); + this.state = 9655; + this.match(TSqlParser.COMMA); + this.state = 9665; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1375,this._ctx); + switch(la_) { + case 1: + this.state = 9656; + this.bulk_option(); + this.state = 9661; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9657; + this.match(TSqlParser.COMMA); + this.state = 9658; + this.bulk_option(); + this.state = 9663; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + break; + + case 2: + this.state = 9664; + this.id(); + break; + + } + this.state = 9667; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Bulk_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_bulk_option; + this.bulk_option_value = null; // Token + return this; +} + +Bulk_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Bulk_optionContext.prototype.constructor = Bulk_optionContext; + +Bulk_optionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Bulk_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Bulk_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Bulk_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Bulk_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBulk_option(this); + } +}; + +Bulk_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBulk_option(this); + } +}; + +Bulk_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBulk_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Bulk_optionContext = Bulk_optionContext; + +TSqlParser.prototype.bulk_option = function() { + + var localctx = new Bulk_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 826, TSqlParser.RULE_bulk_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9671; + this.id(); + this.state = 9672; + this.match(TSqlParser.EQUAL); + this.state = 9673; + localctx.bulk_option_value = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.STRING)) { + localctx.bulk_option_value = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Derived_tableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_derived_table; + return this; +} + +Derived_tableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Derived_tableContext.prototype.constructor = Derived_tableContext; + +Derived_tableContext.prototype.subquery = function() { + return this.getTypedRuleContext(SubqueryContext,0); +}; + +Derived_tableContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Derived_tableContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Derived_tableContext.prototype.table_value_constructor = function() { + return this.getTypedRuleContext(Table_value_constructorContext,0); +}; + +Derived_tableContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDerived_table(this); + } +}; + +Derived_tableContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDerived_table(this); + } +}; + +Derived_tableContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDerived_table(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Derived_tableContext = Derived_tableContext; + +TSqlParser.prototype.derived_table = function() { + + var localctx = new Derived_tableContext(this, this._ctx, this.state); + this.enterRule(localctx, 828, TSqlParser.RULE_derived_table); + try { + this.state = 9685; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1377,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9675; + this.subquery(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9676; + this.match(TSqlParser.LR_BRACKET); + this.state = 9677; + this.subquery(); + this.state = 9678; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9680; + this.table_value_constructor(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9681; + this.match(TSqlParser.LR_BRACKET); + this.state = 9682; + this.table_value_constructor(); + this.state = 9683; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Function_callContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_function_call; + return this; +} + +Function_callContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Function_callContext.prototype.constructor = Function_callContext; + + + +Function_callContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function CURRENT_USERContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CURRENT_USERContext.prototype = Object.create(Function_callContext.prototype); +CURRENT_USERContext.prototype.constructor = CURRENT_USERContext; + +TSqlParser.CURRENT_USERContext = CURRENT_USERContext; + +CURRENT_USERContext.prototype.CURRENT_USER = function() { + return this.getToken(TSqlParser.CURRENT_USER, 0); +}; +CURRENT_USERContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCURRENT_USER(this); + } +}; + +CURRENT_USERContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCURRENT_USER(this); + } +}; + +CURRENT_USERContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCURRENT_USER(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DATEADDContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DATEADDContext.prototype = Object.create(Function_callContext.prototype); +DATEADDContext.prototype.constructor = DATEADDContext; + +TSqlParser.DATEADDContext = DATEADDContext; + +DATEADDContext.prototype.DATEADD = function() { + return this.getToken(TSqlParser.DATEADD, 0); +}; + +DATEADDContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +DATEADDContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +DATEADDContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +DATEADDContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +DATEADDContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +DATEADDContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDATEADD(this); + } +}; + +DATEADDContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDATEADD(this); + } +}; + +DATEADDContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDATEADD(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CHECKSUMContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CHECKSUMContext.prototype = Object.create(Function_callContext.prototype); +CHECKSUMContext.prototype.constructor = CHECKSUMContext; + +TSqlParser.CHECKSUMContext = CHECKSUMContext; + +CHECKSUMContext.prototype.CHECKSUM = function() { + return this.getToken(TSqlParser.CHECKSUM, 0); +}; + +CHECKSUMContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +CHECKSUMContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +CHECKSUMContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +CHECKSUMContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCHECKSUM(this); + } +}; + +CHECKSUMContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCHECKSUM(this); + } +}; + +CHECKSUMContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCHECKSUM(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CURRENT_TIMESTAMPContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CURRENT_TIMESTAMPContext.prototype = Object.create(Function_callContext.prototype); +CURRENT_TIMESTAMPContext.prototype.constructor = CURRENT_TIMESTAMPContext; + +TSqlParser.CURRENT_TIMESTAMPContext = CURRENT_TIMESTAMPContext; + +CURRENT_TIMESTAMPContext.prototype.CURRENT_TIMESTAMP = function() { + return this.getToken(TSqlParser.CURRENT_TIMESTAMP, 0); +}; +CURRENT_TIMESTAMPContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCURRENT_TIMESTAMP(this); + } +}; + +CURRENT_TIMESTAMPContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCURRENT_TIMESTAMP(this); + } +}; + +CURRENT_TIMESTAMPContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCURRENT_TIMESTAMP(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function BINARY_CHECKSUMContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +BINARY_CHECKSUMContext.prototype = Object.create(Function_callContext.prototype); +BINARY_CHECKSUMContext.prototype.constructor = BINARY_CHECKSUMContext; + +TSqlParser.BINARY_CHECKSUMContext = BINARY_CHECKSUMContext; + +BINARY_CHECKSUMContext.prototype.BINARY_CHECKSUM = function() { + return this.getToken(TSqlParser.BINARY_CHECKSUM, 0); +}; + +BINARY_CHECKSUMContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +BINARY_CHECKSUMContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +BINARY_CHECKSUMContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +BINARY_CHECKSUMContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBINARY_CHECKSUM(this); + } +}; + +BINARY_CHECKSUMContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBINARY_CHECKSUM(this); + } +}; + +BINARY_CHECKSUMContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBINARY_CHECKSUM(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IFFContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IFFContext.prototype = Object.create(Function_callContext.prototype); +IFFContext.prototype.constructor = IFFContext; + +TSqlParser.IFFContext = IFFContext; + +IFFContext.prototype.IIF = function() { + return this.getToken(TSqlParser.IIF, 0); +}; + +IFFContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +IFFContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +IFFContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +IFFContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +IFFContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +IFFContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIFF(this); + } +}; + +IFFContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIFF(this); + } +}; + +IFFContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIFF(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SYSTEM_USERContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SYSTEM_USERContext.prototype = Object.create(Function_callContext.prototype); +SYSTEM_USERContext.prototype.constructor = SYSTEM_USERContext; + +TSqlParser.SYSTEM_USERContext = SYSTEM_USERContext; + +SYSTEM_USERContext.prototype.SYSTEM_USER = function() { + return this.getToken(TSqlParser.SYSTEM_USER, 0); +}; +SYSTEM_USERContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSYSTEM_USER(this); + } +}; + +SYSTEM_USERContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSYSTEM_USER(this); + } +}; + +SYSTEM_USERContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSYSTEM_USER(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NULLIFContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NULLIFContext.prototype = Object.create(Function_callContext.prototype); +NULLIFContext.prototype.constructor = NULLIFContext; + +TSqlParser.NULLIFContext = NULLIFContext; + +NULLIFContext.prototype.NULLIF = function() { + return this.getToken(TSqlParser.NULLIF, 0); +}; + +NULLIFContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +NULLIFContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +NULLIFContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +NULLIFContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +NULLIFContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNULLIF(this); + } +}; + +NULLIFContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNULLIF(this); + } +}; + +NULLIFContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNULLIF(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SESSION_USERContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SESSION_USERContext.prototype = Object.create(Function_callContext.prototype); +SESSION_USERContext.prototype.constructor = SESSION_USERContext; + +TSqlParser.SESSION_USERContext = SESSION_USERContext; + +SESSION_USERContext.prototype.SESSION_USER = function() { + return this.getToken(TSqlParser.SESSION_USER, 0); +}; +SESSION_USERContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSESSION_USER(this); + } +}; + +SESSION_USERContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSESSION_USER(this); + } +}; + +SESSION_USERContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSESSION_USER(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CONVERTContext(parser, ctx) { + Function_callContext.call(this, parser); + this.convert_data_type = null; // Data_typeContext; + this.convert_expression = null; // ExpressionContext; + this.style = null; // ExpressionContext; + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CONVERTContext.prototype = Object.create(Function_callContext.prototype); +CONVERTContext.prototype.constructor = CONVERTContext; + +TSqlParser.CONVERTContext = CONVERTContext; + +CONVERTContext.prototype.CONVERT = function() { + return this.getToken(TSqlParser.CONVERT, 0); +}; + +CONVERTContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +CONVERTContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +CONVERTContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +CONVERTContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +CONVERTContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; +CONVERTContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCONVERT(this); + } +}; + +CONVERTContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCONVERT(this); + } +}; + +CONVERTContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCONVERT(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function XML_DATA_TYPE_FUNCContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +XML_DATA_TYPE_FUNCContext.prototype = Object.create(Function_callContext.prototype); +XML_DATA_TYPE_FUNCContext.prototype.constructor = XML_DATA_TYPE_FUNCContext; + +TSqlParser.XML_DATA_TYPE_FUNCContext = XML_DATA_TYPE_FUNCContext; + +XML_DATA_TYPE_FUNCContext.prototype.xml_data_type_methods = function() { + return this.getTypedRuleContext(Xml_data_type_methodsContext,0); +}; +XML_DATA_TYPE_FUNCContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXML_DATA_TYPE_FUNC(this); + } +}; + +XML_DATA_TYPE_FUNCContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXML_DATA_TYPE_FUNC(this); + } +}; + +XML_DATA_TYPE_FUNCContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXML_DATA_TYPE_FUNC(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function COALESCEContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +COALESCEContext.prototype = Object.create(Function_callContext.prototype); +COALESCEContext.prototype.constructor = COALESCEContext; + +TSqlParser.COALESCEContext = COALESCEContext; + +COALESCEContext.prototype.COALESCE = function() { + return this.getToken(TSqlParser.COALESCE, 0); +}; + +COALESCEContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +COALESCEContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +COALESCEContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +COALESCEContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCOALESCE(this); + } +}; + +COALESCEContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCOALESCE(this); + } +}; + +COALESCEContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCOALESCE(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CASTContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CASTContext.prototype = Object.create(Function_callContext.prototype); +CASTContext.prototype.constructor = CASTContext; + +TSqlParser.CASTContext = CASTContext; + +CASTContext.prototype.CAST = function() { + return this.getToken(TSqlParser.CAST, 0); +}; + +CASTContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +CASTContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +CASTContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +CASTContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +CASTContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +CASTContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCAST(this); + } +}; + +CASTContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCAST(this); + } +}; + +CASTContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCAST(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function MIN_ACTIVE_ROWVERSIONContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +MIN_ACTIVE_ROWVERSIONContext.prototype = Object.create(Function_callContext.prototype); +MIN_ACTIVE_ROWVERSIONContext.prototype.constructor = MIN_ACTIVE_ROWVERSIONContext; + +TSqlParser.MIN_ACTIVE_ROWVERSIONContext = MIN_ACTIVE_ROWVERSIONContext; + +MIN_ACTIVE_ROWVERSIONContext.prototype.MIN_ACTIVE_ROWVERSION = function() { + return this.getToken(TSqlParser.MIN_ACTIVE_ROWVERSION, 0); +}; +MIN_ACTIVE_ROWVERSIONContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterMIN_ACTIVE_ROWVERSION(this); + } +}; + +MIN_ACTIVE_ROWVERSIONContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitMIN_ACTIVE_ROWVERSION(this); + } +}; + +MIN_ACTIVE_ROWVERSIONContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitMIN_ACTIVE_ROWVERSION(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SCALAR_FUNCTIONContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SCALAR_FUNCTIONContext.prototype = Object.create(Function_callContext.prototype); +SCALAR_FUNCTIONContext.prototype.constructor = SCALAR_FUNCTIONContext; + +TSqlParser.SCALAR_FUNCTIONContext = SCALAR_FUNCTIONContext; + +SCALAR_FUNCTIONContext.prototype.scalar_function_name = function() { + return this.getTypedRuleContext(Scalar_function_nameContext,0); +}; + +SCALAR_FUNCTIONContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +SCALAR_FUNCTIONContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +SCALAR_FUNCTIONContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; +SCALAR_FUNCTIONContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSCALAR_FUNCTION(this); + } +}; + +SCALAR_FUNCTIONContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSCALAR_FUNCTION(this); + } +}; + +SCALAR_FUNCTIONContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSCALAR_FUNCTION(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DATEPARTContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DATEPARTContext.prototype = Object.create(Function_callContext.prototype); +DATEPARTContext.prototype.constructor = DATEPARTContext; + +TSqlParser.DATEPARTContext = DATEPARTContext; + +DATEPARTContext.prototype.DATEPART = function() { + return this.getToken(TSqlParser.DATEPART, 0); +}; + +DATEPARTContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +DATEPARTContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +DATEPARTContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +DATEPARTContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +DATEPARTContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +DATEPARTContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDATEPART(this); + } +}; + +DATEPARTContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDATEPART(this); + } +}; + +DATEPARTContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDATEPART(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function STUFFContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +STUFFContext.prototype = Object.create(Function_callContext.prototype); +STUFFContext.prototype.constructor = STUFFContext; + +TSqlParser.STUFFContext = STUFFContext; + +STUFFContext.prototype.STUFF = function() { + return this.getToken(TSqlParser.STUFF, 0); +}; + +STUFFContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +STUFFContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +STUFFContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +STUFFContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +STUFFContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +STUFFContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSTUFF(this); + } +}; + +STUFFContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSTUFF(this); + } +}; + +STUFFContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSTUFF(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AGGREGATE_WINDOWED_FUNCContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AGGREGATE_WINDOWED_FUNCContext.prototype = Object.create(Function_callContext.prototype); +AGGREGATE_WINDOWED_FUNCContext.prototype.constructor = AGGREGATE_WINDOWED_FUNCContext; + +TSqlParser.AGGREGATE_WINDOWED_FUNCContext = AGGREGATE_WINDOWED_FUNCContext; + +AGGREGATE_WINDOWED_FUNCContext.prototype.aggregate_windowed_function = function() { + return this.getTypedRuleContext(Aggregate_windowed_functionContext,0); +}; +AGGREGATE_WINDOWED_FUNCContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAGGREGATE_WINDOWED_FUNC(this); + } +}; + +AGGREGATE_WINDOWED_FUNCContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAGGREGATE_WINDOWED_FUNC(this); + } +}; + +AGGREGATE_WINDOWED_FUNCContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAGGREGATE_WINDOWED_FUNC(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function IDENTITYContext(parser, ctx) { + Function_callContext.call(this, parser); + this.seed = null; // Token; + this.increment = null; // Token; + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IDENTITYContext.prototype = Object.create(Function_callContext.prototype); +IDENTITYContext.prototype.constructor = IDENTITYContext; + +TSqlParser.IDENTITYContext = IDENTITYContext; + +IDENTITYContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +IDENTITYContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +IDENTITYContext.prototype.data_type = function() { + return this.getTypedRuleContext(Data_typeContext,0); +}; + +IDENTITYContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +IDENTITYContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +IDENTITYContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + +IDENTITYContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIDENTITY(this); + } +}; + +IDENTITYContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIDENTITY(this); + } +}; + +IDENTITYContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIDENTITY(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RANKING_WINDOWED_FUNCContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RANKING_WINDOWED_FUNCContext.prototype = Object.create(Function_callContext.prototype); +RANKING_WINDOWED_FUNCContext.prototype.constructor = RANKING_WINDOWED_FUNCContext; + +TSqlParser.RANKING_WINDOWED_FUNCContext = RANKING_WINDOWED_FUNCContext; + +RANKING_WINDOWED_FUNCContext.prototype.ranking_windowed_function = function() { + return this.getTypedRuleContext(Ranking_windowed_functionContext,0); +}; +RANKING_WINDOWED_FUNCContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRANKING_WINDOWED_FUNC(this); + } +}; + +RANKING_WINDOWED_FUNCContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRANKING_WINDOWED_FUNC(this); + } +}; + +RANKING_WINDOWED_FUNCContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRANKING_WINDOWED_FUNC(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DATENAMEContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DATENAMEContext.prototype = Object.create(Function_callContext.prototype); +DATENAMEContext.prototype.constructor = DATENAMEContext; + +TSqlParser.DATENAMEContext = DATENAMEContext; + +DATENAMEContext.prototype.DATENAME = function() { + return this.getToken(TSqlParser.DATENAME, 0); +}; + +DATENAMEContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +DATENAMEContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +DATENAMEContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +DATENAMEContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +DATENAMEContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +DATENAMEContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDATENAME(this); + } +}; + +DATENAMEContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDATENAME(this); + } +}; + +DATENAMEContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDATENAME(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function GETUTCDATEContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +GETUTCDATEContext.prototype = Object.create(Function_callContext.prototype); +GETUTCDATEContext.prototype.constructor = GETUTCDATEContext; + +TSqlParser.GETUTCDATEContext = GETUTCDATEContext; + +GETUTCDATEContext.prototype.GETUTCDATE = function() { + return this.getToken(TSqlParser.GETUTCDATE, 0); +}; + +GETUTCDATEContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +GETUTCDATEContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +GETUTCDATEContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGETUTCDATE(this); + } +}; + +GETUTCDATEContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGETUTCDATE(this); + } +}; + +GETUTCDATEContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGETUTCDATE(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ANALYTIC_WINDOWED_FUNCContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ANALYTIC_WINDOWED_FUNCContext.prototype = Object.create(Function_callContext.prototype); +ANALYTIC_WINDOWED_FUNCContext.prototype.constructor = ANALYTIC_WINDOWED_FUNCContext; + +TSqlParser.ANALYTIC_WINDOWED_FUNCContext = ANALYTIC_WINDOWED_FUNCContext; + +ANALYTIC_WINDOWED_FUNCContext.prototype.analytic_windowed_function = function() { + return this.getTypedRuleContext(Analytic_windowed_functionContext,0); +}; +ANALYTIC_WINDOWED_FUNCContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterANALYTIC_WINDOWED_FUNC(this); + } +}; + +ANALYTIC_WINDOWED_FUNCContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitANALYTIC_WINDOWED_FUNC(this); + } +}; + +ANALYTIC_WINDOWED_FUNCContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitANALYTIC_WINDOWED_FUNC(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ISNULLContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ISNULLContext.prototype = Object.create(Function_callContext.prototype); +ISNULLContext.prototype.constructor = ISNULLContext; + +TSqlParser.ISNULLContext = ISNULLContext; + +ISNULLContext.prototype.ISNULL = function() { + return this.getToken(TSqlParser.ISNULL, 0); +}; + +ISNULLContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +ISNULLContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +ISNULLContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +ISNULLContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +ISNULLContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterISNULL(this); + } +}; + +ISNULLContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitISNULL(this); + } +}; + +ISNULLContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitISNULL(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function DATEDIFFContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DATEDIFFContext.prototype = Object.create(Function_callContext.prototype); +DATEDIFFContext.prototype.constructor = DATEDIFFContext; + +TSqlParser.DATEDIFFContext = DATEDIFFContext; + +DATEDIFFContext.prototype.DATEDIFF = function() { + return this.getToken(TSqlParser.DATEDIFF, 0); +}; + +DATEDIFFContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +DATEDIFFContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +DATEDIFFContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +DATEDIFFContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +DATEDIFFContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +DATEDIFFContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDATEDIFF(this); + } +}; + +DATEDIFFContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDATEDIFF(this); + } +}; + +DATEDIFFContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDATEDIFF(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function GETDATEContext(parser, ctx) { + Function_callContext.call(this, parser); + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +GETDATEContext.prototype = Object.create(Function_callContext.prototype); +GETDATEContext.prototype.constructor = GETDATEContext; + +TSqlParser.GETDATEContext = GETDATEContext; + +GETDATEContext.prototype.GETDATE = function() { + return this.getToken(TSqlParser.GETDATE, 0); +}; + +GETDATEContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +GETDATEContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; +GETDATEContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGETDATE(this); + } +}; + +GETDATEContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGETDATE(this); + } +}; + +GETDATEContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGETDATE(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function STRINGAGGContext(parser, ctx) { + Function_callContext.call(this, parser); + this.expr = null; // ExpressionContext; + this.separator = null; // ExpressionContext; + Function_callContext.prototype.copyFrom.call(this, ctx); + return this; +} + +STRINGAGGContext.prototype = Object.create(Function_callContext.prototype); +STRINGAGGContext.prototype.constructor = STRINGAGGContext; + +TSqlParser.STRINGAGGContext = STRINGAGGContext; + +STRINGAGGContext.prototype.STRING_AGG = function() { + return this.getToken(TSqlParser.STRING_AGG, 0); +}; + +STRINGAGGContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +STRINGAGGContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +STRINGAGGContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +STRINGAGGContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +STRINGAGGContext.prototype.WITHIN = function() { + return this.getToken(TSqlParser.WITHIN, 0); +}; + +STRINGAGGContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +STRINGAGGContext.prototype.order_by_clause = function() { + return this.getTypedRuleContext(Order_by_clauseContext,0); +}; +STRINGAGGContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSTRINGAGG(this); + } +}; + +STRINGAGGContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSTRINGAGG(this); + } +}; + +STRINGAGGContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSTRINGAGG(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +TSqlParser.Function_callContext = Function_callContext; + +TSqlParser.prototype.function_call = function() { + + var localctx = new Function_callContext(this, this._ctx, this.state); + this.enterRule(localctx, 830, TSqlParser.RULE_function_call); + var _la = 0; // Token type + try { + this.state = 9833; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1383,this._ctx); + switch(la_) { + case 1: + localctx = new BINARY_CHECKSUMContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 9687; + this.match(TSqlParser.BINARY_CHECKSUM); + this.state = 9688; + this.match(TSqlParser.LR_BRACKET); + this.state = 9689; + this.match(TSqlParser.STAR); + this.state = 9690; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + localctx = new CASTContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 9691; + this.match(TSqlParser.CAST); + this.state = 9692; + this.match(TSqlParser.LR_BRACKET); + this.state = 9693; + this.expression(0); + this.state = 9694; + this.match(TSqlParser.AS); + this.state = 9695; + this.data_type(); + this.state = 9696; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + localctx = new CONVERTContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 9698; + this.match(TSqlParser.CONVERT); + this.state = 9699; + this.match(TSqlParser.LR_BRACKET); + this.state = 9700; + localctx.convert_data_type = this.data_type(); + this.state = 9701; + this.match(TSqlParser.COMMA); + this.state = 9702; + localctx.convert_expression = this.expression(0); + this.state = 9705; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9703; + this.match(TSqlParser.COMMA); + this.state = 9704; + localctx.style = this.expression(0); + } + + this.state = 9707; + this.match(TSqlParser.RR_BRACKET); + break; + + case 4: + localctx = new CHECKSUMContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 9709; + this.match(TSqlParser.CHECKSUM); + this.state = 9710; + this.match(TSqlParser.LR_BRACKET); + this.state = 9711; + this.match(TSqlParser.STAR); + this.state = 9712; + this.match(TSqlParser.RR_BRACKET); + break; + + case 5: + localctx = new COALESCEContext(this, localctx); + this.enterOuterAlt(localctx, 5); + this.state = 9713; + this.match(TSqlParser.COALESCE); + this.state = 9714; + this.match(TSqlParser.LR_BRACKET); + this.state = 9715; + this.expression_list(); + this.state = 9716; + this.match(TSqlParser.RR_BRACKET); + break; + + case 6: + localctx = new CURRENT_TIMESTAMPContext(this, localctx); + this.enterOuterAlt(localctx, 6); + this.state = 9718; + this.match(TSqlParser.CURRENT_TIMESTAMP); + break; + + case 7: + localctx = new CURRENT_USERContext(this, localctx); + this.enterOuterAlt(localctx, 7); + this.state = 9719; + this.match(TSqlParser.CURRENT_USER); + break; + + case 8: + localctx = new DATEADDContext(this, localctx); + this.enterOuterAlt(localctx, 8); + this.state = 9720; + this.match(TSqlParser.DATEADD); + this.state = 9721; + this.match(TSqlParser.LR_BRACKET); + this.state = 9722; + this.match(TSqlParser.ID); + this.state = 9723; + this.match(TSqlParser.COMMA); + this.state = 9724; + this.expression(0); + this.state = 9725; + this.match(TSqlParser.COMMA); + this.state = 9726; + this.expression(0); + this.state = 9727; + this.match(TSqlParser.RR_BRACKET); + break; + + case 9: + localctx = new DATEDIFFContext(this, localctx); + this.enterOuterAlt(localctx, 9); + this.state = 9729; + this.match(TSqlParser.DATEDIFF); + this.state = 9730; + this.match(TSqlParser.LR_BRACKET); + this.state = 9731; + this.match(TSqlParser.ID); + this.state = 9732; + this.match(TSqlParser.COMMA); + this.state = 9733; + this.expression(0); + this.state = 9734; + this.match(TSqlParser.COMMA); + this.state = 9735; + this.expression(0); + this.state = 9736; + this.match(TSqlParser.RR_BRACKET); + break; + + case 10: + localctx = new DATENAMEContext(this, localctx); + this.enterOuterAlt(localctx, 10); + this.state = 9738; + this.match(TSqlParser.DATENAME); + this.state = 9739; + this.match(TSqlParser.LR_BRACKET); + this.state = 9740; + this.match(TSqlParser.ID); + this.state = 9741; + this.match(TSqlParser.COMMA); + this.state = 9742; + this.expression(0); + this.state = 9743; + this.match(TSqlParser.RR_BRACKET); + break; + + case 11: + localctx = new DATEPARTContext(this, localctx); + this.enterOuterAlt(localctx, 11); + this.state = 9745; + this.match(TSqlParser.DATEPART); + this.state = 9746; + this.match(TSqlParser.LR_BRACKET); + this.state = 9747; + this.match(TSqlParser.ID); + this.state = 9748; + this.match(TSqlParser.COMMA); + this.state = 9749; + this.expression(0); + this.state = 9750; + this.match(TSqlParser.RR_BRACKET); + break; + + case 12: + localctx = new GETDATEContext(this, localctx); + this.enterOuterAlt(localctx, 12); + this.state = 9752; + this.match(TSqlParser.GETDATE); + this.state = 9753; + this.match(TSqlParser.LR_BRACKET); + this.state = 9754; + this.match(TSqlParser.RR_BRACKET); + break; + + case 13: + localctx = new GETUTCDATEContext(this, localctx); + this.enterOuterAlt(localctx, 13); + this.state = 9755; + this.match(TSqlParser.GETUTCDATE); + this.state = 9756; + this.match(TSqlParser.LR_BRACKET); + this.state = 9757; + this.match(TSqlParser.RR_BRACKET); + break; + + case 14: + localctx = new IDENTITYContext(this, localctx); + this.enterOuterAlt(localctx, 14); + this.state = 9758; + this.match(TSqlParser.IDENTITY); + this.state = 9759; + this.match(TSqlParser.LR_BRACKET); + this.state = 9760; + this.data_type(); + this.state = 9763; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1379,this._ctx); + if(la_===1) { + this.state = 9761; + this.match(TSqlParser.COMMA); + this.state = 9762; + localctx.seed = this.match(TSqlParser.DECIMAL); + + } + this.state = 9767; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9765; + this.match(TSqlParser.COMMA); + this.state = 9766; + localctx.increment = this.match(TSqlParser.DECIMAL); + } + + this.state = 9769; + this.match(TSqlParser.RR_BRACKET); + break; + + case 15: + localctx = new MIN_ACTIVE_ROWVERSIONContext(this, localctx); + this.enterOuterAlt(localctx, 15); + this.state = 9771; + this.match(TSqlParser.MIN_ACTIVE_ROWVERSION); + break; + + case 16: + localctx = new NULLIFContext(this, localctx); + this.enterOuterAlt(localctx, 16); + this.state = 9772; + this.match(TSqlParser.NULLIF); + this.state = 9773; + this.match(TSqlParser.LR_BRACKET); + this.state = 9774; + this.expression(0); + this.state = 9775; + this.match(TSqlParser.COMMA); + this.state = 9776; + this.expression(0); + this.state = 9777; + this.match(TSqlParser.RR_BRACKET); + break; + + case 17: + localctx = new STUFFContext(this, localctx); + this.enterOuterAlt(localctx, 17); + this.state = 9779; + this.match(TSqlParser.STUFF); + this.state = 9780; + this.match(TSqlParser.LR_BRACKET); + this.state = 9781; + this.expression(0); + this.state = 9782; + this.match(TSqlParser.COMMA); + this.state = 9783; + this.match(TSqlParser.DECIMAL); + this.state = 9784; + this.match(TSqlParser.COMMA); + this.state = 9785; + this.match(TSqlParser.DECIMAL); + this.state = 9786; + this.match(TSqlParser.COMMA); + this.state = 9787; + this.expression(0); + this.state = 9788; + this.match(TSqlParser.RR_BRACKET); + break; + + case 18: + localctx = new SESSION_USERContext(this, localctx); + this.enterOuterAlt(localctx, 18); + this.state = 9790; + this.match(TSqlParser.SESSION_USER); + break; + + case 19: + localctx = new SYSTEM_USERContext(this, localctx); + this.enterOuterAlt(localctx, 19); + this.state = 9791; + this.match(TSqlParser.SYSTEM_USER); + break; + + case 20: + localctx = new ISNULLContext(this, localctx); + this.enterOuterAlt(localctx, 20); + this.state = 9792; + this.match(TSqlParser.ISNULL); + this.state = 9793; + this.match(TSqlParser.LR_BRACKET); + this.state = 9794; + this.expression(0); + this.state = 9795; + this.match(TSqlParser.COMMA); + this.state = 9796; + this.expression(0); + this.state = 9797; + this.match(TSqlParser.RR_BRACKET); + break; + + case 21: + localctx = new XML_DATA_TYPE_FUNCContext(this, localctx); + this.enterOuterAlt(localctx, 21); + this.state = 9799; + this.xml_data_type_methods(); + break; + + case 22: + localctx = new IFFContext(this, localctx); + this.enterOuterAlt(localctx, 22); + this.state = 9800; + this.match(TSqlParser.IIF); + this.state = 9801; + this.match(TSqlParser.LR_BRACKET); + this.state = 9802; + this.search_condition(); + this.state = 9803; + this.match(TSqlParser.COMMA); + this.state = 9804; + this.expression(0); + this.state = 9805; + this.match(TSqlParser.COMMA); + this.state = 9806; + this.expression(0); + this.state = 9807; + this.match(TSqlParser.RR_BRACKET); + break; + + case 23: + localctx = new RANKING_WINDOWED_FUNCContext(this, localctx); + this.enterOuterAlt(localctx, 23); + this.state = 9809; + this.ranking_windowed_function(); + break; + + case 24: + localctx = new AGGREGATE_WINDOWED_FUNCContext(this, localctx); + this.enterOuterAlt(localctx, 24); + this.state = 9810; + this.aggregate_windowed_function(); + break; + + case 25: + localctx = new ANALYTIC_WINDOWED_FUNCContext(this, localctx); + this.enterOuterAlt(localctx, 25); + this.state = 9811; + this.analytic_windowed_function(); + break; + + case 26: + localctx = new SCALAR_FUNCTIONContext(this, localctx); + this.enterOuterAlt(localctx, 26); + this.state = 9812; + this.scalar_function_name(); + this.state = 9813; + this.match(TSqlParser.LR_BRACKET); + this.state = 9815; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 30)) & ~0x1f) == 0 && ((1 << (_la - 30)) & ((1 << (TSqlParser.BLOCKING_HIERARCHY - 30)) | (1 << (TSqlParser.CALLED - 30)) | (1 << (TSqlParser.CASE - 30)) | (1 << (TSqlParser.COALESCE - 30)))) !== 0) || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (TSqlParser.CONVERT - 69)) | (1 << (TSqlParser.CURRENT_TIMESTAMP - 69)) | (1 << (TSqlParser.CURRENT_USER - 69)) | (1 << (TSqlParser.DATA_COMPRESSION - 69)) | (1 << (TSqlParser.DEFAULT - 69)))) !== 0) || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 148)) & ~0x1f) == 0 && ((1 << (_la - 148)) & ((1 << (TSqlParser.IDENTITY - 148)) | (1 << (TSqlParser.IIF - 148)) | (1 << (TSqlParser.INIT - 148)) | (1 << (TSqlParser.ISNULL - 148)) | (1 << (TSqlParser.KEY - 148)) | (1 << (TSqlParser.LEFT - 148)))) !== 0) || _la===TSqlParser.MASTER || _la===TSqlParser.MAX_MEMORY || ((((_la - 221)) & ~0x1f) == 0 && ((1 << (_la - 221)) & ((1 << (TSqlParser.NULL - 221)) | (1 << (TSqlParser.NULLIF - 221)) | (1 << (TSqlParser.OFFSETS - 221)) | (1 << (TSqlParser.OVER - 221)) | (1 << (TSqlParser.PAGE - 221)))) !== 0) || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.RIGHT - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SESSION_USER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.SYSTEM_USER - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.LOCAL_ID - 796)) | (1 << (TSqlParser.DECIMAL - 796)) | (1 << (TSqlParser.ID - 796)) | (1 << (TSqlParser.STRING - 796)) | (1 << (TSqlParser.BINARY - 796)) | (1 << (TSqlParser.FLOAT - 796)) | (1 << (TSqlParser.REAL - 796)) | (1 << (TSqlParser.DOLLAR - 796)) | (1 << (TSqlParser.LR_BRACKET - 796)))) !== 0) || ((((_la - 834)) & ~0x1f) == 0 && ((1 << (_la - 834)) & ((1 << (TSqlParser.PLUS - 834)) | (1 << (TSqlParser.MINUS - 834)) | (1 << (TSqlParser.BIT_NOT - 834)))) !== 0)) { + this.state = 9814; + this.expression_list(); + } + + this.state = 9817; + this.match(TSqlParser.RR_BRACKET); + break; + + case 27: + localctx = new STRINGAGGContext(this, localctx); + this.enterOuterAlt(localctx, 27); + this.state = 9819; + this.match(TSqlParser.STRING_AGG); + this.state = 9820; + this.match(TSqlParser.LR_BRACKET); + this.state = 9821; + localctx.expr = this.expression(0); + this.state = 9822; + this.match(TSqlParser.COMMA); + this.state = 9823; + localctx.separator = this.expression(0); + this.state = 9824; + this.match(TSqlParser.RR_BRACKET); + this.state = 9831; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1382,this._ctx); + if(la_===1) { + this.state = 9825; + this.match(TSqlParser.WITHIN); + this.state = 9826; + this.match(TSqlParser.GROUP); + this.state = 9827; + this.match(TSqlParser.LR_BRACKET); + this.state = 9828; + this.order_by_clause(); + this.state = 9829; + this.match(TSqlParser.RR_BRACKET); + + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Xml_data_type_methodsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_xml_data_type_methods; + return this; +} + +Xml_data_type_methodsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Xml_data_type_methodsContext.prototype.constructor = Xml_data_type_methodsContext; + +Xml_data_type_methodsContext.prototype.value_method = function() { + return this.getTypedRuleContext(Value_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.query_method = function() { + return this.getTypedRuleContext(Query_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.exist_method = function() { + return this.getTypedRuleContext(Exist_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.modify_method = function() { + return this.getTypedRuleContext(Modify_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.nodes_method = function() { + return this.getTypedRuleContext(Nodes_methodContext,0); +}; + +Xml_data_type_methodsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterXml_data_type_methods(this); + } +}; + +Xml_data_type_methodsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitXml_data_type_methods(this); + } +}; + +Xml_data_type_methodsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitXml_data_type_methods(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Xml_data_type_methodsContext = Xml_data_type_methodsContext; + +TSqlParser.prototype.xml_data_type_methods = function() { + + var localctx = new Xml_data_type_methodsContext(this, this._ctx, this.state); + this.enterRule(localctx, 832, TSqlParser.RULE_xml_data_type_methods); + try { + this.state = 9840; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1384,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9835; + this.value_method(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9836; + this.query_method(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9837; + this.exist_method(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 9838; + this.modify_method(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 9839; + this.nodes_method(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Value_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_value_method; + this.xquery = null; // Token + this.sqltype = null; // Token + return this; +} + +Value_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Value_methodContext.prototype.constructor = Value_methodContext; + +Value_methodContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Value_methodContext.prototype.VALUE = function() { + return this.getToken(TSqlParser.VALUE, 0); +}; + +Value_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Value_methodContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Value_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Value_methodContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Value_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Value_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Value_methodContext.prototype.EVENTDATA = function() { + return this.getToken(TSqlParser.EVENTDATA, 0); +}; + +Value_methodContext.prototype.query_method = function() { + return this.getTypedRuleContext(Query_methodContext,0); +}; + +Value_methodContext.prototype.ROW = function() { + return this.getToken(TSqlParser.ROW, 0); +}; + +Value_methodContext.prototype.PARAM_NODE = function() { + return this.getToken(TSqlParser.PARAM_NODE, 0); +}; + +Value_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterValue_method(this); + } +}; + +Value_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitValue_method(this); + } +}; + +Value_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitValue_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Value_methodContext = Value_methodContext; + +TSqlParser.prototype.value_method = function() { + + var localctx = new Value_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 834, TSqlParser.RULE_value_method); + try { + this.state = 9885; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1388,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9846; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1385,this._ctx); + switch(la_) { + case 1: + this.state = 9842; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9843; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9844; + this.match(TSqlParser.EVENTDATA); + break; + + case 4: + this.state = 9845; + this.query_method(); + break; + + } + this.state = 9848; + this.match(TSqlParser.DOT); + this.state = 9849; + this.match(TSqlParser.VALUE); + this.state = 9850; + this.match(TSqlParser.LR_BRACKET); + this.state = 9851; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9852; + this.match(TSqlParser.COMMA); + this.state = 9853; + localctx.sqltype = this.match(TSqlParser.STRING); + this.state = 9854; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9859; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1386,this._ctx); + switch(la_) { + case 1: + this.state = 9855; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9856; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9857; + this.match(TSqlParser.EVENTDATA); + break; + + case 4: + this.state = 9858; + this.query_method(); + break; + + } + this.state = 9861; + this.match(TSqlParser.DOT); + this.state = 9862; + this.match(TSqlParser.ROW); + this.state = 9863; + this.match(TSqlParser.DOT); + this.state = 9864; + this.match(TSqlParser.VALUE); + this.state = 9865; + this.match(TSqlParser.LR_BRACKET); + this.state = 9866; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9867; + this.match(TSqlParser.COMMA); + this.state = 9868; + localctx.sqltype = this.match(TSqlParser.STRING); + this.state = 9869; + this.match(TSqlParser.RR_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 9874; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1387,this._ctx); + switch(la_) { + case 1: + this.state = 9870; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9871; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9872; + this.match(TSqlParser.EVENTDATA); + break; + + case 4: + this.state = 9873; + this.query_method(); + break; + + } + this.state = 9876; + this.match(TSqlParser.DOT); + this.state = 9877; + this.match(TSqlParser.PARAM_NODE); + this.state = 9878; + this.match(TSqlParser.DOT); + this.state = 9879; + this.match(TSqlParser.VALUE); + this.state = 9880; + this.match(TSqlParser.LR_BRACKET); + this.state = 9881; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9882; + this.match(TSqlParser.COMMA); + this.state = 9883; + localctx.sqltype = this.match(TSqlParser.STRING); + this.state = 9884; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Query_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_query_method; + this.xquery = null; // Token + return this; +} + +Query_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Query_methodContext.prototype.constructor = Query_methodContext; + +Query_methodContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Query_methodContext.prototype.QUERY = function() { + return this.getToken(TSqlParser.QUERY, 0); +}; + +Query_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Query_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Query_methodContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Query_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Query_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Query_methodContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Query_methodContext.prototype.ROW = function() { + return this.getToken(TSqlParser.ROW, 0); +}; + +Query_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQuery_method(this); + } +}; + +Query_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQuery_method(this); + } +}; + +Query_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQuery_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Query_methodContext = Query_methodContext; + +TSqlParser.prototype.query_method = function() { + + var localctx = new Query_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 836, TSqlParser.RULE_query_method); + try { + this.state = 9909; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1391,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 9890; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1389,this._ctx); + switch(la_) { + case 1: + this.state = 9887; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9888; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9889; + this.full_table_name(); + break; + + } + this.state = 9892; + this.match(TSqlParser.DOT); + this.state = 9893; + this.match(TSqlParser.QUERY); + this.state = 9894; + this.match(TSqlParser.LR_BRACKET); + this.state = 9895; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9896; + this.match(TSqlParser.RR_BRACKET); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 9900; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1390,this._ctx); + switch(la_) { + case 1: + this.state = 9897; + this.match(TSqlParser.LOCAL_ID); + break; + + case 2: + this.state = 9898; + this.match(TSqlParser.ID); + break; + + case 3: + this.state = 9899; + this.full_table_name(); + break; + + } + this.state = 9902; + this.match(TSqlParser.DOT); + this.state = 9903; + this.match(TSqlParser.ROW); + this.state = 9904; + this.match(TSqlParser.DOT); + this.state = 9905; + this.match(TSqlParser.QUERY); + this.state = 9906; + this.match(TSqlParser.LR_BRACKET); + this.state = 9907; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9908; + this.match(TSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Exist_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_exist_method; + this.xquery = null; // Token + return this; +} + +Exist_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Exist_methodContext.prototype.constructor = Exist_methodContext; + +Exist_methodContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Exist_methodContext.prototype.EXIST = function() { + return this.getToken(TSqlParser.EXIST, 0); +}; + +Exist_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Exist_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Exist_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Exist_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Exist_methodContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Exist_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExist_method(this); + } +}; + +Exist_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExist_method(this); + } +}; + +Exist_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExist_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Exist_methodContext = Exist_methodContext; + +TSqlParser.prototype.exist_method = function() { + + var localctx = new Exist_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 838, TSqlParser.RULE_exist_method); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9911; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9912; + this.match(TSqlParser.DOT); + this.state = 9913; + this.match(TSqlParser.EXIST); + this.state = 9914; + this.match(TSqlParser.LR_BRACKET); + this.state = 9915; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9916; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Modify_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_modify_method; + this.xml_dml = null; // Token + return this; +} + +Modify_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Modify_methodContext.prototype.constructor = Modify_methodContext; + +Modify_methodContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Modify_methodContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Modify_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Modify_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Modify_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Modify_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Modify_methodContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Modify_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterModify_method(this); + } +}; + +Modify_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitModify_method(this); + } +}; + +Modify_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitModify_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Modify_methodContext = Modify_methodContext; + +TSqlParser.prototype.modify_method = function() { + + var localctx = new Modify_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 840, TSqlParser.RULE_modify_method); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9918; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9919; + this.match(TSqlParser.DOT); + this.state = 9920; + this.match(TSqlParser.MODIFY); + this.state = 9921; + this.match(TSqlParser.LR_BRACKET); + this.state = 9922; + localctx.xml_dml = this.match(TSqlParser.STRING); + this.state = 9923; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Nodes_methodContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_nodes_method; + this.xquery = null; // Token + return this; +} + +Nodes_methodContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Nodes_methodContext.prototype.constructor = Nodes_methodContext; + +Nodes_methodContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Nodes_methodContext.prototype.NODES = function() { + return this.getToken(TSqlParser.NODES, 0); +}; + +Nodes_methodContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Nodes_methodContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Nodes_methodContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Nodes_methodContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Nodes_methodContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Nodes_methodContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNodes_method(this); + } +}; + +Nodes_methodContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNodes_method(this); + } +}; + +Nodes_methodContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNodes_method(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Nodes_methodContext = Nodes_methodContext; + +TSqlParser.prototype.nodes_method = function() { + + var localctx = new Nodes_methodContext(this, this._ctx, this.state); + this.enterRule(localctx, 842, TSqlParser.RULE_nodes_method); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9925; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 9926; + this.match(TSqlParser.DOT); + this.state = 9927; + this.match(TSqlParser.NODES); + this.state = 9928; + this.match(TSqlParser.LR_BRACKET); + this.state = 9929; + localctx.xquery = this.match(TSqlParser.STRING); + this.state = 9930; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Switch_sectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_switch_section; + return this; +} + +Switch_sectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Switch_sectionContext.prototype.constructor = Switch_sectionContext; + +Switch_sectionContext.prototype.WHEN = function() { + return this.getToken(TSqlParser.WHEN, 0); +}; + +Switch_sectionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Switch_sectionContext.prototype.THEN = function() { + return this.getToken(TSqlParser.THEN, 0); +}; + +Switch_sectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSwitch_section(this); + } +}; + +Switch_sectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSwitch_section(this); + } +}; + +Switch_sectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSwitch_section(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Switch_sectionContext = Switch_sectionContext; + +TSqlParser.prototype.switch_section = function() { + + var localctx = new Switch_sectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 844, TSqlParser.RULE_switch_section); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9932; + this.match(TSqlParser.WHEN); + this.state = 9933; + this.expression(0); + this.state = 9934; + this.match(TSqlParser.THEN); + this.state = 9935; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Switch_search_condition_sectionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_switch_search_condition_section; + return this; +} + +Switch_search_condition_sectionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Switch_search_condition_sectionContext.prototype.constructor = Switch_search_condition_sectionContext; + +Switch_search_condition_sectionContext.prototype.WHEN = function() { + return this.getToken(TSqlParser.WHEN, 0); +}; + +Switch_search_condition_sectionContext.prototype.search_condition = function() { + return this.getTypedRuleContext(Search_conditionContext,0); +}; + +Switch_search_condition_sectionContext.prototype.THEN = function() { + return this.getToken(TSqlParser.THEN, 0); +}; + +Switch_search_condition_sectionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Switch_search_condition_sectionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSwitch_search_condition_section(this); + } +}; + +Switch_search_condition_sectionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSwitch_search_condition_section(this); + } +}; + +Switch_search_condition_sectionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSwitch_search_condition_section(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Switch_search_condition_sectionContext = Switch_search_condition_sectionContext; + +TSqlParser.prototype.switch_search_condition_section = function() { + + var localctx = new Switch_search_condition_sectionContext(this, this._ctx, this.state); + this.enterRule(localctx, 846, TSqlParser.RULE_switch_search_condition_section); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9937; + this.match(TSqlParser.WHEN); + this.state = 9938; + this.search_condition(); + this.state = 9939; + this.match(TSqlParser.THEN); + this.state = 9940; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function As_column_aliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_as_column_alias; + return this; +} + +As_column_aliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +As_column_aliasContext.prototype.constructor = As_column_aliasContext; + +As_column_aliasContext.prototype.column_alias = function() { + return this.getTypedRuleContext(Column_aliasContext,0); +}; + +As_column_aliasContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +As_column_aliasContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAs_column_alias(this); + } +}; + +As_column_aliasContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAs_column_alias(this); + } +}; + +As_column_aliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAs_column_alias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.As_column_aliasContext = As_column_aliasContext; + +TSqlParser.prototype.as_column_alias = function() { + + var localctx = new As_column_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 848, TSqlParser.RULE_as_column_alias); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9943; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 9942; + this.match(TSqlParser.AS); + } + + this.state = 9945; + this.column_alias(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function As_table_aliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_as_table_alias; + return this; +} + +As_table_aliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +As_table_aliasContext.prototype.constructor = As_table_aliasContext; + +As_table_aliasContext.prototype.table_alias = function() { + return this.getTypedRuleContext(Table_aliasContext,0); +}; + +As_table_aliasContext.prototype.AS = function() { + return this.getToken(TSqlParser.AS, 0); +}; + +As_table_aliasContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAs_table_alias(this); + } +}; + +As_table_aliasContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAs_table_alias(this); + } +}; + +As_table_aliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAs_table_alias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.As_table_aliasContext = As_table_aliasContext; + +TSqlParser.prototype.as_table_alias = function() { + + var localctx = new As_table_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 850, TSqlParser.RULE_as_table_alias); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9948; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.AS) { + this.state = 9947; + this.match(TSqlParser.AS); + } + + this.state = 9950; + this.table_alias(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_aliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_alias; + return this; +} + +Table_aliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_aliasContext.prototype.constructor = Table_aliasContext; + +Table_aliasContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Table_aliasContext.prototype.with_table_hints = function() { + return this.getTypedRuleContext(With_table_hintsContext,0); +}; + +Table_aliasContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_alias(this); + } +}; + +Table_aliasContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_alias(this); + } +}; + +Table_aliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_alias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_aliasContext = Table_aliasContext; + +TSqlParser.prototype.table_alias = function() { + + var localctx = new Table_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 852, TSqlParser.RULE_table_alias); + try { + this.enterOuterAlt(localctx, 1); + this.state = 9952; + this.id(); + this.state = 9954; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1394,this._ctx); + if(la_===1) { + this.state = 9953; + this.with_table_hints(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function With_table_hintsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_with_table_hints; + return this; +} + +With_table_hintsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +With_table_hintsContext.prototype.constructor = With_table_hintsContext; + +With_table_hintsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +With_table_hintsContext.prototype.table_hint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_hintContext); + } else { + return this.getTypedRuleContext(Table_hintContext,i); + } +}; + +With_table_hintsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +With_table_hintsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +With_table_hintsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +With_table_hintsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWith_table_hints(this); + } +}; + +With_table_hintsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWith_table_hints(this); + } +}; + +With_table_hintsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWith_table_hints(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.With_table_hintsContext = With_table_hintsContext; + +TSqlParser.prototype.with_table_hints = function() { + + var localctx = new With_table_hintsContext(this, this._ctx, this.state); + this.enterRule(localctx, 854, TSqlParser.RULE_with_table_hints); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9957; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WITH) { + this.state = 9956; + this.match(TSqlParser.WITH); + } + + this.state = 9959; + this.match(TSqlParser.LR_BRACKET); + this.state = 9960; + this.table_hint(); + this.state = 9967; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FORCESEEK || _la===TSqlParser.INDEX || _la===TSqlParser.NOEXPAND || ((((_la - 718)) & ~0x1f) == 0 && ((1 << (_la - 718)) & ((1 << (TSqlParser.SERIALIZABLE - 718)) | (1 << (TSqlParser.SNAPSHOT - 718)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 718)))) !== 0) || _la===TSqlParser.ID || _la===TSqlParser.COMMA) { + this.state = 9962; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9961; + this.match(TSqlParser.COMMA); + } + + this.state = 9964; + this.table_hint(); + this.state = 9969; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9970; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Insert_with_table_hintsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_insert_with_table_hints; + return this; +} + +Insert_with_table_hintsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Insert_with_table_hintsContext.prototype.constructor = Insert_with_table_hintsContext; + +Insert_with_table_hintsContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Insert_with_table_hintsContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Insert_with_table_hintsContext.prototype.table_hint = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Table_hintContext); + } else { + return this.getTypedRuleContext(Table_hintContext,i); + } +}; + +Insert_with_table_hintsContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Insert_with_table_hintsContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Insert_with_table_hintsContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterInsert_with_table_hints(this); + } +}; + +Insert_with_table_hintsContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitInsert_with_table_hints(this); + } +}; + +Insert_with_table_hintsContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitInsert_with_table_hints(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Insert_with_table_hintsContext = Insert_with_table_hintsContext; + +TSqlParser.prototype.insert_with_table_hints = function() { + + var localctx = new Insert_with_table_hintsContext(this, this._ctx, this.state); + this.enterRule(localctx, 856, TSqlParser.RULE_insert_with_table_hints); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9972; + this.match(TSqlParser.WITH); + this.state = 9973; + this.match(TSqlParser.LR_BRACKET); + this.state = 9974; + this.table_hint(); + this.state = 9981; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.FORCESEEK || _la===TSqlParser.INDEX || _la===TSqlParser.NOEXPAND || ((((_la - 718)) & ~0x1f) == 0 && ((1 << (_la - 718)) & ((1 << (TSqlParser.SERIALIZABLE - 718)) | (1 << (TSqlParser.SNAPSHOT - 718)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 718)))) !== 0) || _la===TSqlParser.ID || _la===TSqlParser.COMMA) { + this.state = 9976; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 9975; + this.match(TSqlParser.COMMA); + } + + this.state = 9978; + this.table_hint(); + this.state = 9983; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9984; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_hintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_hint; + return this; +} + +Table_hintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_hintContext.prototype.constructor = Table_hintContext; + +Table_hintContext.prototype.INDEX = function() { + return this.getToken(TSqlParser.INDEX, 0); +}; + +Table_hintContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Table_hintContext.prototype.index_value = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Index_valueContext); + } else { + return this.getTypedRuleContext(Index_valueContext,i); + } +}; + +Table_hintContext.prototype.FORCESEEK = function() { + return this.getToken(TSqlParser.FORCESEEK, 0); +}; + +Table_hintContext.prototype.SERIALIZABLE = function() { + return this.getToken(TSqlParser.SERIALIZABLE, 0); +}; + +Table_hintContext.prototype.SNAPSHOT = function() { + return this.getToken(TSqlParser.SNAPSHOT, 0); +}; + +Table_hintContext.prototype.SPATIAL_WINDOW_MAX_CELLS = function() { + return this.getToken(TSqlParser.SPATIAL_WINDOW_MAX_CELLS, 0); +}; + +Table_hintContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Table_hintContext.prototype.ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ID); + } else { + return this.getToken(TSqlParser.ID, i); + } +}; + + +Table_hintContext.prototype.NOEXPAND = function() { + return this.getToken(TSqlParser.NOEXPAND, 0); +}; + +Table_hintContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Table_hintContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Table_hintContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Table_hintContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_hint(this); + } +}; + +Table_hintContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_hint(this); + } +}; + +Table_hintContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_hint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_hintContext = Table_hintContext; + +TSqlParser.prototype.table_hint = function() { + + var localctx = new Table_hintContext(this, this._ctx, this.state); + this.enterRule(localctx, 858, TSqlParser.RULE_table_hint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 9987; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOEXPAND) { + this.state = 9986; + this.match(TSqlParser.NOEXPAND); + } + + this.state = 10037; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1406,this._ctx); + switch(la_) { + case 1: + this.state = 9989; + this.match(TSqlParser.INDEX); + this.state = 10009; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.LR_BRACKET: + this.state = 9990; + this.match(TSqlParser.LR_BRACKET); + this.state = 9991; + this.index_value(); + this.state = 9996; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 9992; + this.match(TSqlParser.COMMA); + this.state = 9993; + this.index_value(); + this.state = 9998; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 9999; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + this.state = 10001; + this.index_value(); + this.state = 10006; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1402,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10002; + this.match(TSqlParser.COMMA); + this.state = 10003; + this.index_value(); + } + this.state = 10008; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1402,this._ctx); + } + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + + case 2: + this.state = 10011; + this.match(TSqlParser.INDEX); + this.state = 10012; + this.match(TSqlParser.EQUAL); + this.state = 10013; + this.index_value(); + break; + + case 3: + this.state = 10014; + this.match(TSqlParser.FORCESEEK); + this.state = 10029; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LR_BRACKET) { + this.state = 10015; + this.match(TSqlParser.LR_BRACKET); + this.state = 10016; + this.index_value(); + this.state = 10017; + this.match(TSqlParser.LR_BRACKET); + this.state = 10018; + this.match(TSqlParser.ID); + this.state = 10023; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10019; + this.match(TSqlParser.COMMA); + this.state = 10020; + this.match(TSqlParser.ID); + this.state = 10025; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10026; + this.match(TSqlParser.RR_BRACKET); + this.state = 10027; + this.match(TSqlParser.RR_BRACKET); + } + + break; + + case 4: + this.state = 10031; + this.match(TSqlParser.SERIALIZABLE); + break; + + case 5: + this.state = 10032; + this.match(TSqlParser.SNAPSHOT); + break; + + case 6: + this.state = 10033; + this.match(TSqlParser.SPATIAL_WINDOW_MAX_CELLS); + this.state = 10034; + this.match(TSqlParser.EQUAL); + this.state = 10035; + this.match(TSqlParser.DECIMAL); + break; + + case 7: + this.state = 10036; + this.match(TSqlParser.ID); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Index_valueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_index_value; + return this; +} + +Index_valueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Index_valueContext.prototype.constructor = Index_valueContext; + +Index_valueContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Index_valueContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Index_valueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterIndex_value(this); + } +}; + +Index_valueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitIndex_value(this); + } +}; + +Index_valueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitIndex_value(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Index_valueContext = Index_valueContext; + +TSqlParser.prototype.index_value = function() { + + var localctx = new Index_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 860, TSqlParser.RULE_index_value); + try { + this.state = 10041; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10039; + this.id(); + break; + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 2); + this.state = 10040; + this.match(TSqlParser.DECIMAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_alias_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_alias_list; + return this; +} + +Column_alias_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_alias_listContext.prototype.constructor = Column_alias_listContext; + +Column_alias_listContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Column_alias_listContext.prototype.column_alias = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Column_aliasContext); + } else { + return this.getTypedRuleContext(Column_aliasContext,i); + } +}; + +Column_alias_listContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Column_alias_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Column_alias_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_alias_list(this); + } +}; + +Column_alias_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_alias_list(this); + } +}; + +Column_alias_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_alias_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_alias_listContext = Column_alias_listContext; + +TSqlParser.prototype.column_alias_list = function() { + + var localctx = new Column_alias_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 862, TSqlParser.RULE_column_alias_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10043; + this.match(TSqlParser.LR_BRACKET); + this.state = 10044; + this.column_alias(); + this.state = 10049; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10045; + this.match(TSqlParser.COMMA); + this.state = 10046; + this.column_alias(); + this.state = 10051; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 10052; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_aliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_alias; + return this; +} + +Column_aliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_aliasContext.prototype.constructor = Column_aliasContext; + +Column_aliasContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Column_aliasContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Column_aliasContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_alias(this); + } +}; + +Column_aliasContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_alias(this); + } +}; + +Column_aliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_alias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_aliasContext = Column_aliasContext; + +TSqlParser.prototype.column_alias = function() { + + var localctx = new Column_aliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 864, TSqlParser.RULE_column_alias); + try { + this.state = 10056; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10054; + this.id(); + break; + case TSqlParser.STRING: + this.enterOuterAlt(localctx, 2); + this.state = 10055; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_value_constructorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_value_constructor; + return this; +} + +Table_value_constructorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_value_constructorContext.prototype.constructor = Table_value_constructorContext; + +Table_value_constructorContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Table_value_constructorContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LR_BRACKET); + } else { + return this.getToken(TSqlParser.LR_BRACKET, i); + } +}; + + +Table_value_constructorContext.prototype.expression_list = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Expression_listContext); + } else { + return this.getTypedRuleContext(Expression_listContext,i); + } +}; + +Table_value_constructorContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.RR_BRACKET); + } else { + return this.getToken(TSqlParser.RR_BRACKET, i); + } +}; + + +Table_value_constructorContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Table_value_constructorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_value_constructor(this); + } +}; + +Table_value_constructorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_value_constructor(this); + } +}; + +Table_value_constructorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_value_constructor(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_value_constructorContext = Table_value_constructorContext; + +TSqlParser.prototype.table_value_constructor = function() { + + var localctx = new Table_value_constructorContext(this, this._ctx, this.state); + this.enterRule(localctx, 866, TSqlParser.RULE_table_value_constructor); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10058; + this.match(TSqlParser.VALUES); + this.state = 10059; + this.match(TSqlParser.LR_BRACKET); + this.state = 10060; + this.expression_list(); + this.state = 10061; + this.match(TSqlParser.RR_BRACKET); + this.state = 10069; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1410,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10062; + this.match(TSqlParser.COMMA); + this.state = 10063; + this.match(TSqlParser.LR_BRACKET); + this.state = 10064; + this.expression_list(); + this.state = 10065; + this.match(TSqlParser.RR_BRACKET); + } + this.state = 10071; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1410,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Expression_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_expression_list; + return this; +} + +Expression_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Expression_listContext.prototype.constructor = Expression_listContext; + +Expression_listContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Expression_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Expression_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterExpression_list(this); + } +}; + +Expression_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitExpression_list(this); + } +}; + +Expression_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitExpression_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Expression_listContext = Expression_listContext; + +TSqlParser.prototype.expression_list = function() { + + var localctx = new Expression_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 868, TSqlParser.RULE_expression_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10072; + this.expression(0); + this.state = 10077; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10073; + this.match(TSqlParser.COMMA); + this.state = 10074; + this.expression(0); + this.state = 10079; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Ranking_windowed_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_ranking_windowed_function; + return this; +} + +Ranking_windowed_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Ranking_windowed_functionContext.prototype.constructor = Ranking_windowed_functionContext; + +Ranking_windowed_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Ranking_windowed_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Ranking_windowed_functionContext.prototype.over_clause = function() { + return this.getTypedRuleContext(Over_clauseContext,0); +}; + +Ranking_windowed_functionContext.prototype.RANK = function() { + return this.getToken(TSqlParser.RANK, 0); +}; + +Ranking_windowed_functionContext.prototype.DENSE_RANK = function() { + return this.getToken(TSqlParser.DENSE_RANK, 0); +}; + +Ranking_windowed_functionContext.prototype.ROW_NUMBER = function() { + return this.getToken(TSqlParser.ROW_NUMBER, 0); +}; + +Ranking_windowed_functionContext.prototype.NTILE = function() { + return this.getToken(TSqlParser.NTILE, 0); +}; + +Ranking_windowed_functionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Ranking_windowed_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRanking_windowed_function(this); + } +}; + +Ranking_windowed_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRanking_windowed_function(this); + } +}; + +Ranking_windowed_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRanking_windowed_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Ranking_windowed_functionContext = Ranking_windowed_functionContext; + +TSqlParser.prototype.ranking_windowed_function = function() { + + var localctx = new Ranking_windowed_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 870, TSqlParser.RULE_ranking_windowed_function); + var _la = 0; // Token type + try { + this.state = 10090; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DENSE_RANK: + case TSqlParser.RANK: + case TSqlParser.ROW_NUMBER: + this.enterOuterAlt(localctx, 1); + this.state = 10080; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DENSE_RANK || _la===TSqlParser.RANK || _la===TSqlParser.ROW_NUMBER)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10081; + this.match(TSqlParser.LR_BRACKET); + this.state = 10082; + this.match(TSqlParser.RR_BRACKET); + this.state = 10083; + this.over_clause(); + break; + case TSqlParser.NTILE: + this.enterOuterAlt(localctx, 2); + this.state = 10084; + this.match(TSqlParser.NTILE); + this.state = 10085; + this.match(TSqlParser.LR_BRACKET); + this.state = 10086; + this.expression(0); + this.state = 10087; + this.match(TSqlParser.RR_BRACKET); + this.state = 10088; + this.over_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Aggregate_windowed_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_aggregate_windowed_function; + return this; +} + +Aggregate_windowed_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Aggregate_windowed_functionContext.prototype.constructor = Aggregate_windowed_functionContext; + +Aggregate_windowed_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Aggregate_windowed_functionContext.prototype.all_distinct_expression = function() { + return this.getTypedRuleContext(All_distinct_expressionContext,0); +}; + +Aggregate_windowed_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Aggregate_windowed_functionContext.prototype.AVG = function() { + return this.getToken(TSqlParser.AVG, 0); +}; + +Aggregate_windowed_functionContext.prototype.MAX = function() { + return this.getToken(TSqlParser.MAX, 0); +}; + +Aggregate_windowed_functionContext.prototype.MIN = function() { + return this.getToken(TSqlParser.MIN, 0); +}; + +Aggregate_windowed_functionContext.prototype.SUM = function() { + return this.getToken(TSqlParser.SUM, 0); +}; + +Aggregate_windowed_functionContext.prototype.STDEV = function() { + return this.getToken(TSqlParser.STDEV, 0); +}; + +Aggregate_windowed_functionContext.prototype.STDEVP = function() { + return this.getToken(TSqlParser.STDEVP, 0); +}; + +Aggregate_windowed_functionContext.prototype.VAR = function() { + return this.getToken(TSqlParser.VAR, 0); +}; + +Aggregate_windowed_functionContext.prototype.VARP = function() { + return this.getToken(TSqlParser.VARP, 0); +}; + +Aggregate_windowed_functionContext.prototype.over_clause = function() { + return this.getTypedRuleContext(Over_clauseContext,0); +}; + +Aggregate_windowed_functionContext.prototype.COUNT = function() { + return this.getToken(TSqlParser.COUNT, 0); +}; + +Aggregate_windowed_functionContext.prototype.COUNT_BIG = function() { + return this.getToken(TSqlParser.COUNT_BIG, 0); +}; + +Aggregate_windowed_functionContext.prototype.STAR = function() { + return this.getToken(TSqlParser.STAR, 0); +}; + +Aggregate_windowed_functionContext.prototype.CHECKSUM_AGG = function() { + return this.getToken(TSqlParser.CHECKSUM_AGG, 0); +}; + +Aggregate_windowed_functionContext.prototype.GROUPING = function() { + return this.getToken(TSqlParser.GROUPING, 0); +}; + +Aggregate_windowed_functionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Aggregate_windowed_functionContext.prototype.GROUPING_ID = function() { + return this.getToken(TSqlParser.GROUPING_ID, 0); +}; + +Aggregate_windowed_functionContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +Aggregate_windowed_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAggregate_windowed_function(this); + } +}; + +Aggregate_windowed_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAggregate_windowed_function(this); + } +}; + +Aggregate_windowed_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAggregate_windowed_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Aggregate_windowed_functionContext = Aggregate_windowed_functionContext; + +TSqlParser.prototype.aggregate_windowed_function = function() { + + var localctx = new Aggregate_windowed_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 872, TSqlParser.RULE_aggregate_windowed_function); + var _la = 0; // Token type + try { + this.state = 10124; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.AVG: + case TSqlParser.MAX: + case TSqlParser.MIN: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.SUM: + case TSqlParser.VAR: + case TSqlParser.VARP: + this.enterOuterAlt(localctx, 1); + this.state = 10092; + _la = this._input.LA(1); + if(!(_la===TSqlParser.AVG || _la===TSqlParser.MAX || _la===TSqlParser.MIN || ((((_la - 736)) & ~0x1f) == 0 && ((1 << (_la - 736)) & ((1 << (TSqlParser.STDEV - 736)) | (1 << (TSqlParser.STDEVP - 736)) | (1 << (TSqlParser.SUM - 736)))) !== 0) || _la===TSqlParser.VAR || _la===TSqlParser.VARP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10093; + this.match(TSqlParser.LR_BRACKET); + this.state = 10094; + this.all_distinct_expression(); + this.state = 10095; + this.match(TSqlParser.RR_BRACKET); + this.state = 10097; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1413,this._ctx); + if(la_===1) { + this.state = 10096; + this.over_clause(); + + } + break; + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + this.enterOuterAlt(localctx, 2); + this.state = 10099; + _la = this._input.LA(1); + if(!(_la===TSqlParser.COUNT || _la===TSqlParser.COUNT_BIG)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10100; + this.match(TSqlParser.LR_BRACKET); + this.state = 10103; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.STAR: + this.state = 10101; + this.match(TSqlParser.STAR); + break; + case TSqlParser.ALL: + case TSqlParser.BLOCKING_HIERARCHY: + case TSqlParser.CALLED: + case TSqlParser.CASE: + case TSqlParser.COALESCE: + case TSqlParser.CONVERT: + case TSqlParser.CURRENT_TIMESTAMP: + case TSqlParser.CURRENT_USER: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.DEFAULT: + case TSqlParser.DISTINCT: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.IDENTITY: + case TSqlParser.IIF: + case TSqlParser.INIT: + case TSqlParser.ISNULL: + case TSqlParser.KEY: + case TSqlParser.LEFT: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.NULL: + case TSqlParser.NULLIF: + case TSqlParser.OFFSETS: + case TSqlParser.OVER: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.RIGHT: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SESSION_USER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.SYSTEM_USER: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.LOCAL_ID: + case TSqlParser.DECIMAL: + case TSqlParser.ID: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.LR_BRACKET: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + case TSqlParser.BIT_NOT: + this.state = 10102; + this.all_distinct_expression(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10105; + this.match(TSqlParser.RR_BRACKET); + this.state = 10107; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1415,this._ctx); + if(la_===1) { + this.state = 10106; + this.over_clause(); + + } + break; + case TSqlParser.CHECKSUM_AGG: + this.enterOuterAlt(localctx, 3); + this.state = 10109; + this.match(TSqlParser.CHECKSUM_AGG); + this.state = 10110; + this.match(TSqlParser.LR_BRACKET); + this.state = 10111; + this.all_distinct_expression(); + this.state = 10112; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.GROUPING: + this.enterOuterAlt(localctx, 4); + this.state = 10114; + this.match(TSqlParser.GROUPING); + this.state = 10115; + this.match(TSqlParser.LR_BRACKET); + this.state = 10116; + this.expression(0); + this.state = 10117; + this.match(TSqlParser.RR_BRACKET); + break; + case TSqlParser.GROUPING_ID: + this.enterOuterAlt(localctx, 5); + this.state = 10119; + this.match(TSqlParser.GROUPING_ID); + this.state = 10120; + this.match(TSqlParser.LR_BRACKET); + this.state = 10121; + this.expression_list(); + this.state = 10122; + this.match(TSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Analytic_windowed_functionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_analytic_windowed_function; + return this; +} + +Analytic_windowed_functionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Analytic_windowed_functionContext.prototype.constructor = Analytic_windowed_functionContext; + +Analytic_windowed_functionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Analytic_windowed_functionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +Analytic_windowed_functionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Analytic_windowed_functionContext.prototype.over_clause = function() { + return this.getTypedRuleContext(Over_clauseContext,0); +}; + +Analytic_windowed_functionContext.prototype.FIRST_VALUE = function() { + return this.getToken(TSqlParser.FIRST_VALUE, 0); +}; + +Analytic_windowed_functionContext.prototype.LAST_VALUE = function() { + return this.getToken(TSqlParser.LAST_VALUE, 0); +}; + +Analytic_windowed_functionContext.prototype.LAG = function() { + return this.getToken(TSqlParser.LAG, 0); +}; + +Analytic_windowed_functionContext.prototype.LEAD = function() { + return this.getToken(TSqlParser.LEAD, 0); +}; + +Analytic_windowed_functionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Analytic_windowed_functionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAnalytic_windowed_function(this); + } +}; + +Analytic_windowed_functionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAnalytic_windowed_function(this); + } +}; + +Analytic_windowed_functionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAnalytic_windowed_function(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Analytic_windowed_functionContext = Analytic_windowed_functionContext; + +TSqlParser.prototype.analytic_windowed_function = function() { + + var localctx = new Analytic_windowed_functionContext(this, this._ctx, this.state); + this.enterRule(localctx, 874, TSqlParser.RULE_analytic_windowed_function); + var _la = 0; // Token type + try { + this.state = 10146; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FIRST_VALUE: + case TSqlParser.LAST_VALUE: + this.enterOuterAlt(localctx, 1); + this.state = 10126; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FIRST_VALUE || _la===TSqlParser.LAST_VALUE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10127; + this.match(TSqlParser.LR_BRACKET); + this.state = 10128; + this.expression(0); + this.state = 10129; + this.match(TSqlParser.RR_BRACKET); + this.state = 10130; + this.over_clause(); + break; + case TSqlParser.LAG: + case TSqlParser.LEAD: + this.enterOuterAlt(localctx, 2); + this.state = 10132; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LAG || _la===TSqlParser.LEAD)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10133; + this.match(TSqlParser.LR_BRACKET); + this.state = 10134; + this.expression(0); + this.state = 10141; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10135; + this.match(TSqlParser.COMMA); + this.state = 10136; + this.expression(0); + this.state = 10139; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10137; + this.match(TSqlParser.COMMA); + this.state = 10138; + this.expression(0); + } + + } + + this.state = 10143; + this.match(TSqlParser.RR_BRACKET); + this.state = 10144; + this.over_clause(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function All_distinct_expressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_all_distinct_expression; + return this; +} + +All_distinct_expressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +All_distinct_expressionContext.prototype.constructor = All_distinct_expressionContext; + +All_distinct_expressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +All_distinct_expressionContext.prototype.ALL = function() { + return this.getToken(TSqlParser.ALL, 0); +}; + +All_distinct_expressionContext.prototype.DISTINCT = function() { + return this.getToken(TSqlParser.DISTINCT, 0); +}; + +All_distinct_expressionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAll_distinct_expression(this); + } +}; + +All_distinct_expressionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAll_distinct_expression(this); + } +}; + +All_distinct_expressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAll_distinct_expression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.All_distinct_expressionContext = All_distinct_expressionContext; + +TSqlParser.prototype.all_distinct_expression = function() { + + var localctx = new All_distinct_expressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 876, TSqlParser.RULE_all_distinct_expression); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10149; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ALL || _la===TSqlParser.DISTINCT) { + this.state = 10148; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ALL || _la===TSqlParser.DISTINCT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10151; + this.expression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Over_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_over_clause; + return this; +} + +Over_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Over_clauseContext.prototype.constructor = Over_clauseContext; + +Over_clauseContext.prototype.OVER = function() { + return this.getToken(TSqlParser.OVER, 0); +}; + +Over_clauseContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Over_clauseContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Over_clauseContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Over_clauseContext.prototype.BY = function() { + return this.getToken(TSqlParser.BY, 0); +}; + +Over_clauseContext.prototype.expression_list = function() { + return this.getTypedRuleContext(Expression_listContext,0); +}; + +Over_clauseContext.prototype.order_by_clause = function() { + return this.getTypedRuleContext(Order_by_clauseContext,0); +}; + +Over_clauseContext.prototype.row_or_range_clause = function() { + return this.getTypedRuleContext(Row_or_range_clauseContext,0); +}; + +Over_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOver_clause(this); + } +}; + +Over_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOver_clause(this); + } +}; + +Over_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOver_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Over_clauseContext = Over_clauseContext; + +TSqlParser.prototype.over_clause = function() { + + var localctx = new Over_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 878, TSqlParser.RULE_over_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10153; + this.match(TSqlParser.OVER); + this.state = 10154; + this.match(TSqlParser.LR_BRACKET); + this.state = 10158; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PARTITION) { + this.state = 10155; + this.match(TSqlParser.PARTITION); + this.state = 10156; + this.match(TSqlParser.BY); + this.state = 10157; + this.expression_list(); + } + + this.state = 10161; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ORDER) { + this.state = 10160; + this.order_by_clause(); + } + + this.state = 10164; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RANGE || _la===TSqlParser.ROWS) { + this.state = 10163; + this.row_or_range_clause(); + } + + this.state = 10166; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Row_or_range_clauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_row_or_range_clause; + return this; +} + +Row_or_range_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Row_or_range_clauseContext.prototype.constructor = Row_or_range_clauseContext; + +Row_or_range_clauseContext.prototype.window_frame_extent = function() { + return this.getTypedRuleContext(Window_frame_extentContext,0); +}; + +Row_or_range_clauseContext.prototype.ROWS = function() { + return this.getToken(TSqlParser.ROWS, 0); +}; + +Row_or_range_clauseContext.prototype.RANGE = function() { + return this.getToken(TSqlParser.RANGE, 0); +}; + +Row_or_range_clauseContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterRow_or_range_clause(this); + } +}; + +Row_or_range_clauseContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitRow_or_range_clause(this); + } +}; + +Row_or_range_clauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitRow_or_range_clause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Row_or_range_clauseContext = Row_or_range_clauseContext; + +TSqlParser.prototype.row_or_range_clause = function() { + + var localctx = new Row_or_range_clauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 880, TSqlParser.RULE_row_or_range_clause); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10168; + _la = this._input.LA(1); + if(!(_la===TSqlParser.RANGE || _la===TSqlParser.ROWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10169; + this.window_frame_extent(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Window_frame_extentContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_window_frame_extent; + return this; +} + +Window_frame_extentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Window_frame_extentContext.prototype.constructor = Window_frame_extentContext; + +Window_frame_extentContext.prototype.window_frame_preceding = function() { + return this.getTypedRuleContext(Window_frame_precedingContext,0); +}; + +Window_frame_extentContext.prototype.BETWEEN = function() { + return this.getToken(TSqlParser.BETWEEN, 0); +}; + +Window_frame_extentContext.prototype.window_frame_bound = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Window_frame_boundContext); + } else { + return this.getTypedRuleContext(Window_frame_boundContext,i); + } +}; + +Window_frame_extentContext.prototype.AND = function() { + return this.getToken(TSqlParser.AND, 0); +}; + +Window_frame_extentContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWindow_frame_extent(this); + } +}; + +Window_frame_extentContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWindow_frame_extent(this); + } +}; + +Window_frame_extentContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWindow_frame_extent(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Window_frame_extentContext = Window_frame_extentContext; + +TSqlParser.prototype.window_frame_extent = function() { + + var localctx = new Window_frame_extentContext(this, this._ctx, this.state); + this.enterRule(localctx, 882, TSqlParser.RULE_window_frame_extent); + try { + this.state = 10177; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CURRENT: + case TSqlParser.UNBOUNDED: + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 1); + this.state = 10171; + this.window_frame_preceding(); + break; + case TSqlParser.BETWEEN: + this.enterOuterAlt(localctx, 2); + this.state = 10172; + this.match(TSqlParser.BETWEEN); + this.state = 10173; + this.window_frame_bound(); + this.state = 10174; + this.match(TSqlParser.AND); + this.state = 10175; + this.window_frame_bound(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Window_frame_boundContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_window_frame_bound; + return this; +} + +Window_frame_boundContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Window_frame_boundContext.prototype.constructor = Window_frame_boundContext; + +Window_frame_boundContext.prototype.window_frame_preceding = function() { + return this.getTypedRuleContext(Window_frame_precedingContext,0); +}; + +Window_frame_boundContext.prototype.window_frame_following = function() { + return this.getTypedRuleContext(Window_frame_followingContext,0); +}; + +Window_frame_boundContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWindow_frame_bound(this); + } +}; + +Window_frame_boundContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWindow_frame_bound(this); + } +}; + +Window_frame_boundContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWindow_frame_bound(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Window_frame_boundContext = Window_frame_boundContext; + +TSqlParser.prototype.window_frame_bound = function() { + + var localctx = new Window_frame_boundContext(this, this._ctx, this.state); + this.enterRule(localctx, 884, TSqlParser.RULE_window_frame_bound); + try { + this.state = 10181; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1425,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10179; + this.window_frame_preceding(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10180; + this.window_frame_following(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Window_frame_precedingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_window_frame_preceding; + return this; +} + +Window_frame_precedingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Window_frame_precedingContext.prototype.constructor = Window_frame_precedingContext; + +Window_frame_precedingContext.prototype.UNBOUNDED = function() { + return this.getToken(TSqlParser.UNBOUNDED, 0); +}; + +Window_frame_precedingContext.prototype.PRECEDING = function() { + return this.getToken(TSqlParser.PRECEDING, 0); +}; + +Window_frame_precedingContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Window_frame_precedingContext.prototype.CURRENT = function() { + return this.getToken(TSqlParser.CURRENT, 0); +}; + +Window_frame_precedingContext.prototype.ROW = function() { + return this.getToken(TSqlParser.ROW, 0); +}; + +Window_frame_precedingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWindow_frame_preceding(this); + } +}; + +Window_frame_precedingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWindow_frame_preceding(this); + } +}; + +Window_frame_precedingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWindow_frame_preceding(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Window_frame_precedingContext = Window_frame_precedingContext; + +TSqlParser.prototype.window_frame_preceding = function() { + + var localctx = new Window_frame_precedingContext(this, this._ctx, this.state); + this.enterRule(localctx, 886, TSqlParser.RULE_window_frame_preceding); + try { + this.state = 10189; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UNBOUNDED: + this.enterOuterAlt(localctx, 1); + this.state = 10183; + this.match(TSqlParser.UNBOUNDED); + this.state = 10184; + this.match(TSqlParser.PRECEDING); + break; + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 2); + this.state = 10185; + this.match(TSqlParser.DECIMAL); + this.state = 10186; + this.match(TSqlParser.PRECEDING); + break; + case TSqlParser.CURRENT: + this.enterOuterAlt(localctx, 3); + this.state = 10187; + this.match(TSqlParser.CURRENT); + this.state = 10188; + this.match(TSqlParser.ROW); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Window_frame_followingContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_window_frame_following; + return this; +} + +Window_frame_followingContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Window_frame_followingContext.prototype.constructor = Window_frame_followingContext; + +Window_frame_followingContext.prototype.UNBOUNDED = function() { + return this.getToken(TSqlParser.UNBOUNDED, 0); +}; + +Window_frame_followingContext.prototype.FOLLOWING = function() { + return this.getToken(TSqlParser.FOLLOWING, 0); +}; + +Window_frame_followingContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Window_frame_followingContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWindow_frame_following(this); + } +}; + +Window_frame_followingContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWindow_frame_following(this); + } +}; + +Window_frame_followingContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWindow_frame_following(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Window_frame_followingContext = Window_frame_followingContext; + +TSqlParser.prototype.window_frame_following = function() { + + var localctx = new Window_frame_followingContext(this, this._ctx, this.state); + this.enterRule(localctx, 888, TSqlParser.RULE_window_frame_following); + try { + this.state = 10195; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.UNBOUNDED: + this.enterOuterAlt(localctx, 1); + this.state = 10191; + this.match(TSqlParser.UNBOUNDED); + this.state = 10192; + this.match(TSqlParser.FOLLOWING); + break; + case TSqlParser.DECIMAL: + this.enterOuterAlt(localctx, 2); + this.state = 10193; + this.match(TSqlParser.DECIMAL); + this.state = 10194; + this.match(TSqlParser.FOLLOWING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Create_database_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_create_database_option; + return this; +} + +Create_database_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Create_database_optionContext.prototype.constructor = Create_database_optionContext; + +Create_database_optionContext.prototype.FILESTREAM = function() { + return this.getToken(TSqlParser.FILESTREAM, 0); +}; + +Create_database_optionContext.prototype.database_filestream_option = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Database_filestream_optionContext); + } else { + return this.getTypedRuleContext(Database_filestream_optionContext,i); + } +}; + +Create_database_optionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Create_database_optionContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +Create_database_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Create_database_optionContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Create_database_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Create_database_optionContext.prototype.DEFAULT_FULLTEXT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE, 0); +}; + +Create_database_optionContext.prototype.NESTED_TRIGGERS = function() { + return this.getToken(TSqlParser.NESTED_TRIGGERS, 0); +}; + +Create_database_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Create_database_optionContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Create_database_optionContext.prototype.TRANSFORM_NOISE_WORDS = function() { + return this.getToken(TSqlParser.TRANSFORM_NOISE_WORDS, 0); +}; + +Create_database_optionContext.prototype.TWO_DIGIT_YEAR_CUTOFF = function() { + return this.getToken(TSqlParser.TWO_DIGIT_YEAR_CUTOFF, 0); +}; + +Create_database_optionContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Create_database_optionContext.prototype.DB_CHAINING = function() { + return this.getToken(TSqlParser.DB_CHAINING, 0); +}; + +Create_database_optionContext.prototype.TRUSTWORTHY = function() { + return this.getToken(TSqlParser.TRUSTWORTHY, 0); +}; + +Create_database_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCreate_database_option(this); + } +}; + +Create_database_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCreate_database_option(this); + } +}; + +Create_database_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCreate_database_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Create_database_optionContext = Create_database_optionContext; + +TSqlParser.prototype.create_database_option = function() { + + var localctx = new Create_database_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 890, TSqlParser.RULE_create_database_option); + var _la = 0; // Token type + try { + this.state = 10231; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILESTREAM: + this.enterOuterAlt(localctx, 1); + this.state = 10197; + this.match(TSqlParser.FILESTREAM); + + this.state = 10198; + this.database_filestream_option(); + this.state = 10203; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1428,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10199; + this.match(TSqlParser.COMMA); + this.state = 10200; + this.database_filestream_option(); + } + this.state = 10205; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1428,this._ctx); + } + + break; + case TSqlParser.DEFAULT_LANGUAGE: + this.enterOuterAlt(localctx, 2); + this.state = 10206; + this.match(TSqlParser.DEFAULT_LANGUAGE); + this.state = 10207; + this.match(TSqlParser.EQUAL); + this.state = 10210; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 10208; + this.id(); + break; + case TSqlParser.STRING: + this.state = 10209; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + this.enterOuterAlt(localctx, 3); + this.state = 10212; + this.match(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE); + this.state = 10213; + this.match(TSqlParser.EQUAL); + this.state = 10216; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 10214; + this.id(); + break; + case TSqlParser.STRING: + this.state = 10215; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + break; + case TSqlParser.NESTED_TRIGGERS: + this.enterOuterAlt(localctx, 4); + this.state = 10218; + this.match(TSqlParser.NESTED_TRIGGERS); + this.state = 10219; + this.match(TSqlParser.EQUAL); + this.state = 10220; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TRANSFORM_NOISE_WORDS: + this.enterOuterAlt(localctx, 5); + this.state = 10221; + this.match(TSqlParser.TRANSFORM_NOISE_WORDS); + this.state = 10222; + this.match(TSqlParser.EQUAL); + this.state = 10223; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + this.enterOuterAlt(localctx, 6); + this.state = 10224; + this.match(TSqlParser.TWO_DIGIT_YEAR_CUTOFF); + this.state = 10225; + this.match(TSqlParser.EQUAL); + this.state = 10226; + this.match(TSqlParser.DECIMAL); + break; + case TSqlParser.DB_CHAINING: + this.enterOuterAlt(localctx, 7); + this.state = 10227; + this.match(TSqlParser.DB_CHAINING); + this.state = 10228; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.TRUSTWORTHY: + this.enterOuterAlt(localctx, 8); + this.state = 10229; + this.match(TSqlParser.TRUSTWORTHY); + this.state = 10230; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Database_filestream_optionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_database_filestream_option; + return this; +} + +Database_filestream_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Database_filestream_optionContext.prototype.constructor = Database_filestream_optionContext; + +Database_filestream_optionContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Database_filestream_optionContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Database_filestream_optionContext.prototype.NON_TRANSACTED_ACCESS = function() { + return this.getToken(TSqlParser.NON_TRANSACTED_ACCESS, 0); +}; + +Database_filestream_optionContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Database_filestream_optionContext.prototype.DIRECTORY_NAME = function() { + return this.getToken(TSqlParser.DIRECTORY_NAME, 0); +}; + +Database_filestream_optionContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Database_filestream_optionContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Database_filestream_optionContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Database_filestream_optionContext.prototype.FULL = function() { + return this.getToken(TSqlParser.FULL, 0); +}; + +Database_filestream_optionContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDatabase_filestream_option(this); + } +}; + +Database_filestream_optionContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDatabase_filestream_option(this); + } +}; + +Database_filestream_optionContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDatabase_filestream_option(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Database_filestream_optionContext = Database_filestream_optionContext; + +TSqlParser.prototype.database_filestream_option = function() { + + var localctx = new Database_filestream_optionContext(this, this._ctx, this.state); + this.enterRule(localctx, 892, TSqlParser.RULE_database_filestream_option); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10233; + this.match(TSqlParser.LR_BRACKET); + this.state = 10240; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NON_TRANSACTED_ACCESS: + this.state = 10234; + this.match(TSqlParser.NON_TRANSACTED_ACCESS); + this.state = 10235; + this.match(TSqlParser.EQUAL); + this.state = 10236; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FULL || _la===TSqlParser.OFF || _la===TSqlParser.READ_ONLY)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case TSqlParser.DIRECTORY_NAME: + this.state = 10237; + this.match(TSqlParser.DIRECTORY_NAME); + this.state = 10238; + this.match(TSqlParser.EQUAL); + this.state = 10239; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10242; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Database_file_specContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_database_file_spec; + return this; +} + +Database_file_specContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Database_file_specContext.prototype.constructor = Database_file_specContext; + +Database_file_specContext.prototype.file_group = function() { + return this.getTypedRuleContext(File_groupContext,0); +}; + +Database_file_specContext.prototype.file_spec = function() { + return this.getTypedRuleContext(File_specContext,0); +}; + +Database_file_specContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDatabase_file_spec(this); + } +}; + +Database_file_specContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDatabase_file_spec(this); + } +}; + +Database_file_specContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDatabase_file_spec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Database_file_specContext = Database_file_specContext; + +TSqlParser.prototype.database_file_spec = function() { + + var localctx = new Database_file_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 894, TSqlParser.RULE_database_file_spec); + try { + this.state = 10246; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.FILEGROUP: + this.enterOuterAlt(localctx, 1); + this.state = 10244; + this.file_group(); + break; + case TSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 10245; + this.file_spec(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_groupContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_group; + return this; +} + +File_groupContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_groupContext.prototype.constructor = File_groupContext; + +File_groupContext.prototype.FILEGROUP = function() { + return this.getToken(TSqlParser.FILEGROUP, 0); +}; + +File_groupContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +File_groupContext.prototype.file_spec = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_specContext); + } else { + return this.getTypedRuleContext(File_specContext,i); + } +}; + +File_groupContext.prototype.CONTAINS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.CONTAINS); + } else { + return this.getToken(TSqlParser.CONTAINS, i); + } +}; + + +File_groupContext.prototype.FILESTREAM = function() { + return this.getToken(TSqlParser.FILESTREAM, 0); +}; + +File_groupContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +File_groupContext.prototype.MEMORY_OPTIMIZED_DATA = function() { + return this.getToken(TSqlParser.MEMORY_OPTIMIZED_DATA, 0); +}; + +File_groupContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +File_groupContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_group(this); + } +}; + +File_groupContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_group(this); + } +}; + +File_groupContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_group(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_groupContext = File_groupContext; + +TSqlParser.prototype.file_group = function() { + + var localctx = new File_groupContext(this, this._ctx, this.state); + this.enterRule(localctx, 896, TSqlParser.RULE_file_group); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10248; + this.match(TSqlParser.FILEGROUP); + this.state = 10249; + this.id(); + this.state = 10252; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1434,this._ctx); + if(la_===1) { + this.state = 10250; + this.match(TSqlParser.CONTAINS); + this.state = 10251; + this.match(TSqlParser.FILESTREAM); + + } + this.state = 10255; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.DEFAULT) { + this.state = 10254; + this.match(TSqlParser.DEFAULT); + } + + this.state = 10259; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONTAINS) { + this.state = 10257; + this.match(TSqlParser.CONTAINS); + this.state = 10258; + this.match(TSqlParser.MEMORY_OPTIMIZED_DATA); + } + + this.state = 10261; + this.file_spec(); + this.state = 10266; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1437,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 10262; + this.match(TSqlParser.COMMA); + this.state = 10263; + this.file_spec(); + } + this.state = 10268; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1437,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_specContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_spec; + this.file = null; // Token + return this; +} + +File_specContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_specContext.prototype.constructor = File_specContext; + +File_specContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +File_specContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +File_specContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +File_specContext.prototype.FILENAME = function() { + return this.getToken(TSqlParser.FILENAME, 0); +}; + +File_specContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +File_specContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +File_specContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +File_specContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +File_specContext.prototype.SIZE = function() { + return this.getToken(TSqlParser.SIZE, 0); +}; + +File_specContext.prototype.file_size = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(File_sizeContext); + } else { + return this.getTypedRuleContext(File_sizeContext,i); + } +}; + +File_specContext.prototype.MAXSIZE = function() { + return this.getToken(TSqlParser.MAXSIZE, 0); +}; + +File_specContext.prototype.FILEGROWTH = function() { + return this.getToken(TSqlParser.FILEGROWTH, 0); +}; + +File_specContext.prototype.UNLIMITED = function() { + return this.getToken(TSqlParser.UNLIMITED, 0); +}; + +File_specContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_spec(this); + } +}; + +File_specContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_spec(this); + } +}; + +File_specContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_spec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_specContext = File_specContext; + +TSqlParser.prototype.file_spec = function() { + + var localctx = new File_specContext(this, this._ctx, this.state); + this.enterRule(localctx, 898, TSqlParser.RULE_file_spec); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10269; + this.match(TSqlParser.LR_BRACKET); + this.state = 10270; + this.match(TSqlParser.NAME); + this.state = 10271; + this.match(TSqlParser.EQUAL); + this.state = 10274; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.state = 10272; + this.id(); + break; + case TSqlParser.STRING: + this.state = 10273; + this.match(TSqlParser.STRING); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10277; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10276; + this.match(TSqlParser.COMMA); + } + + this.state = 10279; + this.match(TSqlParser.FILENAME); + this.state = 10280; + this.match(TSqlParser.EQUAL); + this.state = 10281; + localctx.file = this.match(TSqlParser.STRING); + this.state = 10283; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10282; + this.match(TSqlParser.COMMA); + } + + this.state = 10291; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.SIZE) { + this.state = 10285; + this.match(TSqlParser.SIZE); + this.state = 10286; + this.match(TSqlParser.EQUAL); + this.state = 10287; + this.file_size(); + this.state = 10289; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10288; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10302; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.MAXSIZE) { + this.state = 10293; + this.match(TSqlParser.MAXSIZE); + this.state = 10294; + this.match(TSqlParser.EQUAL); + this.state = 10297; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.DECIMAL: + this.state = 10295; + this.file_size(); + break; + case TSqlParser.UNLIMITED: + this.state = 10296; + this.match(TSqlParser.UNLIMITED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 10300; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10299; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10310; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.FILEGROWTH) { + this.state = 10304; + this.match(TSqlParser.FILEGROWTH); + this.state = 10305; + this.match(TSqlParser.EQUAL); + this.state = 10306; + this.file_size(); + this.state = 10308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10307; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10312; + this.match(TSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Entity_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_entity_name; + this.server = null; // IdContext + this.database = null; // IdContext + this.schema = null; // IdContext + this.table = null; // IdContext + return this; +} + +Entity_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Entity_nameContext.prototype.constructor = Entity_nameContext; + +Entity_nameContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Entity_nameContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Entity_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEntity_name(this); + } +}; + +Entity_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEntity_name(this); + } +}; + +Entity_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEntity_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Entity_nameContext = Entity_nameContext; + +TSqlParser.prototype.entity_name = function() { + + var localctx = new Entity_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 900, TSqlParser.RULE_entity_name); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10331; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1449,this._ctx); + if(la_===1) { + this.state = 10314; + localctx.server = this.id(); + this.state = 10315; + this.match(TSqlParser.DOT); + this.state = 10316; + localctx.database = this.id(); + this.state = 10317; + this.match(TSqlParser.DOT); + this.state = 10318; + localctx.schema = this.id(); + this.state = 10319; + this.match(TSqlParser.DOT); + + } else if(la_===2) { + this.state = 10321; + localctx.database = this.id(); + this.state = 10322; + this.match(TSqlParser.DOT); + this.state = 10324; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10323; + localctx.schema = this.id(); + } + + this.state = 10326; + this.match(TSqlParser.DOT); + + } else if(la_===3) { + this.state = 10328; + localctx.schema = this.id(); + this.state = 10329; + this.match(TSqlParser.DOT); + + } + this.state = 10333; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Entity_name_for_azure_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_entity_name_for_azure_dw; + this.schema = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Entity_name_for_azure_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Entity_name_for_azure_dwContext.prototype.constructor = Entity_name_for_azure_dwContext; + +Entity_name_for_azure_dwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Entity_name_for_azure_dwContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Entity_name_for_azure_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEntity_name_for_azure_dw(this); + } +}; + +Entity_name_for_azure_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEntity_name_for_azure_dw(this); + } +}; + +Entity_name_for_azure_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEntity_name_for_azure_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Entity_name_for_azure_dwContext = Entity_name_for_azure_dwContext; + +TSqlParser.prototype.entity_name_for_azure_dw = function() { + + var localctx = new Entity_name_for_azure_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 902, TSqlParser.RULE_entity_name_for_azure_dw); + try { + this.state = 10340; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1450,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10335; + localctx.schema = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10336; + localctx.schema = this.id(); + this.state = 10337; + this.match(TSqlParser.DOT); + this.state = 10338; + localctx.object_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Entity_name_for_parallel_dwContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_entity_name_for_parallel_dw; + this.schema_database = null; // IdContext + this.schema = null; // IdContext + this.object_name = null; // IdContext + return this; +} + +Entity_name_for_parallel_dwContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Entity_name_for_parallel_dwContext.prototype.constructor = Entity_name_for_parallel_dwContext; + +Entity_name_for_parallel_dwContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Entity_name_for_parallel_dwContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Entity_name_for_parallel_dwContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEntity_name_for_parallel_dw(this); + } +}; + +Entity_name_for_parallel_dwContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEntity_name_for_parallel_dw(this); + } +}; + +Entity_name_for_parallel_dwContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEntity_name_for_parallel_dw(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Entity_name_for_parallel_dwContext = Entity_name_for_parallel_dwContext; + +TSqlParser.prototype.entity_name_for_parallel_dw = function() { + + var localctx = new Entity_name_for_parallel_dwContext(this, this._ctx, this.state); + this.enterRule(localctx, 904, TSqlParser.RULE_entity_name_for_parallel_dw); + try { + this.state = 10347; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1451,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10342; + localctx.schema_database = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10343; + localctx.schema = this.id(); + this.state = 10344; + this.match(TSqlParser.DOT); + this.state = 10345; + localctx.object_name = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Full_table_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_full_table_name; + this.server = null; // IdContext + this.database = null; // IdContext + this.schema = null; // IdContext + this.table = null; // IdContext + return this; +} + +Full_table_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Full_table_nameContext.prototype.constructor = Full_table_nameContext; + +Full_table_nameContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Full_table_nameContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Full_table_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFull_table_name(this); + } +}; + +Full_table_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFull_table_name(this); + } +}; + +Full_table_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFull_table_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Full_table_nameContext = Full_table_nameContext; + +TSqlParser.prototype.full_table_name = function() { + + var localctx = new Full_table_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 906, TSqlParser.RULE_full_table_name); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10366; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1453,this._ctx); + if(la_===1) { + this.state = 10349; + localctx.server = this.id(); + this.state = 10350; + this.match(TSqlParser.DOT); + this.state = 10351; + localctx.database = this.id(); + this.state = 10352; + this.match(TSqlParser.DOT); + this.state = 10353; + localctx.schema = this.id(); + this.state = 10354; + this.match(TSqlParser.DOT); + + } else if(la_===2) { + this.state = 10356; + localctx.database = this.id(); + this.state = 10357; + this.match(TSqlParser.DOT); + this.state = 10359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10358; + localctx.schema = this.id(); + } + + this.state = 10361; + this.match(TSqlParser.DOT); + + } else if(la_===3) { + this.state = 10363; + localctx.schema = this.id(); + this.state = 10364; + this.match(TSqlParser.DOT); + + } + this.state = 10368; + localctx.table = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Table_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_table_name; + this.database = null; // IdContext + this.schema = null; // IdContext + this.table = null; // IdContext + return this; +} + +Table_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Table_nameContext.prototype.constructor = Table_nameContext; + +Table_nameContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Table_nameContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Table_nameContext.prototype.BLOCKING_HIERARCHY = function() { + return this.getToken(TSqlParser.BLOCKING_HIERARCHY, 0); +}; + +Table_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterTable_name(this); + } +}; + +Table_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitTable_name(this); + } +}; + +Table_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitTable_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Table_nameContext = Table_nameContext; + +TSqlParser.prototype.table_name = function() { + + var localctx = new Table_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 908, TSqlParser.RULE_table_name); + var _la = 0; // Token type + try { + this.state = 10396; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1458,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10380; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1455,this._ctx); + if(la_===1) { + this.state = 10370; + localctx.database = this.id(); + this.state = 10371; + this.match(TSqlParser.DOT); + this.state = 10373; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10372; + localctx.schema = this.id(); + } + + this.state = 10375; + this.match(TSqlParser.DOT); + + } else if(la_===2) { + this.state = 10377; + localctx.schema = this.id(); + this.state = 10378; + this.match(TSqlParser.DOT); + + } + this.state = 10382; + localctx.table = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10393; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1457,this._ctx); + if(la_===1) { + this.state = 10383; + localctx.database = this.id(); + this.state = 10384; + this.match(TSqlParser.DOT); + this.state = 10386; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10385; + localctx.schema = this.id(); + } + + this.state = 10388; + this.match(TSqlParser.DOT); + + } else if(la_===2) { + this.state = 10390; + localctx.schema = this.id(); + this.state = 10391; + this.match(TSqlParser.DOT); + + } + this.state = 10395; + this.match(TSqlParser.BLOCKING_HIERARCHY); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Simple_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_simple_name; + this.schema = null; // IdContext + this.name = null; // IdContext + return this; +} + +Simple_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Simple_nameContext.prototype.constructor = Simple_nameContext; + +Simple_nameContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Simple_nameContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Simple_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSimple_name(this); + } +}; + +Simple_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSimple_name(this); + } +}; + +Simple_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSimple_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Simple_nameContext = Simple_nameContext; + +TSqlParser.prototype.simple_name = function() { + + var localctx = new Simple_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 910, TSqlParser.RULE_simple_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10401; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1459,this._ctx); + if(la_===1) { + this.state = 10398; + localctx.schema = this.id(); + this.state = 10399; + this.match(TSqlParser.DOT); + + } + this.state = 10403; + localctx.name = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_proc_name_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_proc_name_schema; + this.schema = null; // IdContext + this.procedure = null; // IdContext + return this; +} + +Func_proc_name_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_proc_name_schemaContext.prototype.constructor = Func_proc_name_schemaContext; + +Func_proc_name_schemaContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Func_proc_name_schemaContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Func_proc_name_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_proc_name_schema(this); + } +}; + +Func_proc_name_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_proc_name_schema(this); + } +}; + +Func_proc_name_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_proc_name_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_proc_name_schemaContext = Func_proc_name_schemaContext; + +TSqlParser.prototype.func_proc_name_schema = function() { + + var localctx = new Func_proc_name_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 912, TSqlParser.RULE_func_proc_name_schema); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10408; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1460,this._ctx); + if(la_===1) { + this.state = 10405; + localctx.schema = this.id(); + this.state = 10406; + this.match(TSqlParser.DOT); + + } + this.state = 10410; + localctx.procedure = this.id(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_proc_name_database_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_proc_name_database_schema; + this.database = null; // IdContext + this.schema = null; // IdContext + this.procedure = null; // IdContext + return this; +} + +Func_proc_name_database_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_proc_name_database_schemaContext.prototype.constructor = Func_proc_name_database_schemaContext; + +Func_proc_name_database_schemaContext.prototype.func_proc_name_schema = function() { + return this.getTypedRuleContext(Func_proc_name_schemaContext,0); +}; + +Func_proc_name_database_schemaContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Func_proc_name_database_schemaContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Func_proc_name_database_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_proc_name_database_schema(this); + } +}; + +Func_proc_name_database_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_proc_name_database_schema(this); + } +}; + +Func_proc_name_database_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_proc_name_database_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_proc_name_database_schemaContext = Func_proc_name_database_schemaContext; + +TSqlParser.prototype.func_proc_name_database_schema = function() { + + var localctx = new Func_proc_name_database_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 914, TSqlParser.RULE_func_proc_name_database_schema); + var _la = 0; // Token type + try { + this.state = 10423; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1463,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10412; + this.func_proc_name_schema(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10420; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1462,this._ctx); + if(la_===1) { + this.state = 10413; + localctx.database = this.id(); + this.state = 10414; + this.match(TSqlParser.DOT); + this.state = 10416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10415; + localctx.schema = this.id(); + } + + this.state = 10418; + this.match(TSqlParser.DOT); + + } + this.state = 10422; + localctx.procedure = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Func_proc_name_server_database_schemaContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_func_proc_name_server_database_schema; + this.server = null; // IdContext + this.database = null; // IdContext + this.schema = null; // IdContext + this.procedure = null; // IdContext + return this; +} + +Func_proc_name_server_database_schemaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Func_proc_name_server_database_schemaContext.prototype.constructor = Func_proc_name_server_database_schemaContext; + +Func_proc_name_server_database_schemaContext.prototype.func_proc_name_database_schema = function() { + return this.getTypedRuleContext(Func_proc_name_database_schemaContext,0); +}; + +Func_proc_name_server_database_schemaContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Func_proc_name_server_database_schemaContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Func_proc_name_server_database_schemaContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFunc_proc_name_server_database_schema(this); + } +}; + +Func_proc_name_server_database_schemaContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFunc_proc_name_server_database_schema(this); + } +}; + +Func_proc_name_server_database_schemaContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFunc_proc_name_server_database_schema(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Func_proc_name_server_database_schemaContext = Func_proc_name_server_database_schemaContext; + +TSqlParser.prototype.func_proc_name_server_database_schema = function() { + + var localctx = new Func_proc_name_server_database_schemaContext(this, this._ctx, this.state); + this.enterRule(localctx, 916, TSqlParser.RULE_func_proc_name_server_database_schema); + var _la = 0; // Token type + try { + this.state = 10438; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1466,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10425; + this.func_proc_name_database_schema(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10435; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1465,this._ctx); + if(la_===1) { + this.state = 10426; + localctx.server = this.id(); + this.state = 10427; + this.match(TSqlParser.DOT); + this.state = 10428; + localctx.database = this.id(); + this.state = 10429; + this.match(TSqlParser.DOT); + this.state = 10431; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || ((((_la - 796)) & ~0x1f) == 0 && ((1 << (_la - 796)) & ((1 << (TSqlParser.DOUBLE_QUOTE_ID - 796)) | (1 << (TSqlParser.SQUARE_BRACKET_ID - 796)) | (1 << (TSqlParser.ID - 796)))) !== 0)) { + this.state = 10430; + localctx.schema = this.id(); + } + + this.state = 10433; + this.match(TSqlParser.DOT); + + } + this.state = 10437; + localctx.procedure = this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Ddl_objectContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_ddl_object; + return this; +} + +Ddl_objectContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Ddl_objectContext.prototype.constructor = Ddl_objectContext; + +Ddl_objectContext.prototype.full_table_name = function() { + return this.getTypedRuleContext(Full_table_nameContext,0); +}; + +Ddl_objectContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Ddl_objectContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDdl_object(this); + } +}; + +Ddl_objectContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDdl_object(this); + } +}; + +Ddl_objectContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDdl_object(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Ddl_objectContext = Ddl_objectContext; + +TSqlParser.prototype.ddl_object = function() { + + var localctx = new Ddl_objectContext(this, this._ctx, this.state); + this.enterRule(localctx, 918, TSqlParser.RULE_ddl_object); + try { + this.state = 10442; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10440; + this.full_table_name(); + break; + case TSqlParser.LOCAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 10441; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Full_column_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_full_column_name; + this.column_name = null; // IdContext + return this; +} + +Full_column_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Full_column_nameContext.prototype.constructor = Full_column_nameContext; + +Full_column_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Full_column_nameContext.prototype.table_name = function() { + return this.getTypedRuleContext(Table_nameContext,0); +}; + +Full_column_nameContext.prototype.DOT = function() { + return this.getToken(TSqlParser.DOT, 0); +}; + +Full_column_nameContext.prototype.COMPATIBILITY_LEVEL = function() { + return this.getToken(TSqlParser.COMPATIBILITY_LEVEL, 0); +}; + +Full_column_nameContext.prototype.STATUS = function() { + return this.getToken(TSqlParser.STATUS, 0); +}; + +Full_column_nameContext.prototype.QUOTED_IDENTIFIER = function() { + return this.getToken(TSqlParser.QUOTED_IDENTIFIER, 0); +}; + +Full_column_nameContext.prototype.ARITHABORT = function() { + return this.getToken(TSqlParser.ARITHABORT, 0); +}; + +Full_column_nameContext.prototype.ANSI_WARNINGS = function() { + return this.getToken(TSqlParser.ANSI_WARNINGS, 0); +}; + +Full_column_nameContext.prototype.ANSI_PADDING = function() { + return this.getToken(TSqlParser.ANSI_PADDING, 0); +}; + +Full_column_nameContext.prototype.ANSI_NULLS = function() { + return this.getToken(TSqlParser.ANSI_NULLS, 0); +}; + +Full_column_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFull_column_name(this); + } +}; + +Full_column_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFull_column_name(this); + } +}; + +Full_column_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFull_column_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Full_column_nameContext = Full_column_nameContext; + +TSqlParser.prototype.full_column_name = function() { + + var localctx = new Full_column_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 920, TSqlParser.RULE_full_column_name); + try { + this.state = 10492; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1476,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10447; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1468,this._ctx); + if(la_===1) { + this.state = 10444; + this.table_name(); + this.state = 10445; + this.match(TSqlParser.DOT); + + } + this.state = 10449; + localctx.column_name = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10453; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1469,this._ctx); + if(la_===1) { + this.state = 10450; + this.table_name(); + this.state = 10451; + this.match(TSqlParser.DOT); + + } + this.state = 10455; + this.match(TSqlParser.COMPATIBILITY_LEVEL); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10459; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1470,this._ctx); + if(la_===1) { + this.state = 10456; + this.table_name(); + this.state = 10457; + this.match(TSqlParser.DOT); + + } + this.state = 10461; + this.match(TSqlParser.STATUS); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10465; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1471,this._ctx); + if(la_===1) { + this.state = 10462; + this.table_name(); + this.state = 10463; + this.match(TSqlParser.DOT); + + } + this.state = 10467; + this.match(TSqlParser.QUOTED_IDENTIFIER); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10471; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1472,this._ctx); + if(la_===1) { + this.state = 10468; + this.table_name(); + this.state = 10469; + this.match(TSqlParser.DOT); + + } + this.state = 10473; + this.match(TSqlParser.ARITHABORT); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10477; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1473,this._ctx); + if(la_===1) { + this.state = 10474; + this.table_name(); + this.state = 10475; + this.match(TSqlParser.DOT); + + } + this.state = 10479; + this.match(TSqlParser.ANSI_WARNINGS); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 10483; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1474,this._ctx); + if(la_===1) { + this.state = 10480; + this.table_name(); + this.state = 10481; + this.match(TSqlParser.DOT); + + } + this.state = 10485; + this.match(TSqlParser.ANSI_PADDING); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 10489; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1475,this._ctx); + if(la_===1) { + this.state = 10486; + this.table_name(); + this.state = 10487; + this.match(TSqlParser.DOT); + + } + this.state = 10491; + this.match(TSqlParser.ANSI_NULLS); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_name_list_with_orderContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_name_list_with_order; + return this; +} + +Column_name_list_with_orderContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_name_list_with_orderContext.prototype.constructor = Column_name_list_with_orderContext; + +Column_name_list_with_orderContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Column_name_list_with_orderContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Column_name_list_with_orderContext.prototype.ASC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ASC); + } else { + return this.getToken(TSqlParser.ASC, i); + } +}; + + +Column_name_list_with_orderContext.prototype.DESC = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DESC); + } else { + return this.getToken(TSqlParser.DESC, i); + } +}; + + +Column_name_list_with_orderContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_name_list_with_order(this); + } +}; + +Column_name_list_with_orderContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_name_list_with_order(this); + } +}; + +Column_name_list_with_orderContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_name_list_with_order(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_name_list_with_orderContext = Column_name_list_with_orderContext; + +TSqlParser.prototype.column_name_list_with_order = function() { + + var localctx = new Column_name_list_with_orderContext(this, this._ctx, this.state); + this.enterRule(localctx, 922, TSqlParser.RULE_column_name_list_with_order); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10494; + this.id(); + this.state = 10496; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ASC || _la===TSqlParser.DESC) { + this.state = 10495; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASC || _la===TSqlParser.DESC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10505; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10498; + this.match(TSqlParser.COMMA); + this.state = 10499; + this.id(); + this.state = 10501; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ASC || _la===TSqlParser.DESC) { + this.state = 10500; + _la = this._input.LA(1); + if(!(_la===TSqlParser.ASC || _la===TSqlParser.DESC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10507; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Column_name_listContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_column_name_list; + return this; +} + +Column_name_listContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Column_name_listContext.prototype.constructor = Column_name_listContext; + +Column_name_listContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Column_name_listContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Column_name_listContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterColumn_name_list(this); + } +}; + +Column_name_listContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitColumn_name_list(this); + } +}; + +Column_name_listContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitColumn_name_list(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Column_name_listContext = Column_name_listContext; + +TSqlParser.prototype.column_name_list = function() { + + var localctx = new Column_name_listContext(this, this._ctx, this.state); + this.enterRule(localctx, 924, TSqlParser.RULE_column_name_list); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10508; + this.id(); + this.state = 10513; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===TSqlParser.COMMA) { + this.state = 10509; + this.match(TSqlParser.COMMA); + this.state = 10510; + this.id(); + this.state = 10515; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Cursor_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_cursor_name; + return this; +} + +Cursor_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Cursor_nameContext.prototype.constructor = Cursor_nameContext; + +Cursor_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Cursor_nameContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Cursor_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterCursor_name(this); + } +}; + +Cursor_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitCursor_name(this); + } +}; + +Cursor_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitCursor_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Cursor_nameContext = Cursor_nameContext; + +TSqlParser.prototype.cursor_name = function() { + + var localctx = new Cursor_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 926, TSqlParser.RULE_cursor_name); + try { + this.state = 10518; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.DOUBLE_QUOTE_ID: + case TSqlParser.SQUARE_BRACKET_ID: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10516; + this.id(); + break; + case TSqlParser.LOCAL_ID: + this.enterOuterAlt(localctx, 2); + this.state = 10517; + this.match(TSqlParser.LOCAL_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function On_offContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_on_off; + return this; +} + +On_offContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +On_offContext.prototype.constructor = On_offContext; + +On_offContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +On_offContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +On_offContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterOn_off(this); + } +}; + +On_offContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitOn_off(this); + } +}; + +On_offContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitOn_off(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.On_offContext = On_offContext; + +TSqlParser.prototype.on_off = function() { + + var localctx = new On_offContext(this, this._ctx, this.state); + this.enterRule(localctx, 928, TSqlParser.RULE_on_off); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10520; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ClusteredContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_clustered; + return this; +} + +ClusteredContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ClusteredContext.prototype.constructor = ClusteredContext; + +ClusteredContext.prototype.CLUSTERED = function() { + return this.getToken(TSqlParser.CLUSTERED, 0); +}; + +ClusteredContext.prototype.NONCLUSTERED = function() { + return this.getToken(TSqlParser.NONCLUSTERED, 0); +}; + +ClusteredContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterClustered(this); + } +}; + +ClusteredContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitClustered(this); + } +}; + +ClusteredContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitClustered(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.ClusteredContext = ClusteredContext; + +TSqlParser.prototype.clustered = function() { + + var localctx = new ClusteredContext(this, this._ctx, this.state); + this.enterRule(localctx, 930, TSqlParser.RULE_clustered); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10522; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CLUSTERED || _la===TSqlParser.NONCLUSTERED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Null_notnullContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_null_notnull; + return this; +} + +Null_notnullContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Null_notnullContext.prototype.constructor = Null_notnullContext; + +Null_notnullContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Null_notnullContext.prototype.NOT = function() { + return this.getToken(TSqlParser.NOT, 0); +}; + +Null_notnullContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNull_notnull(this); + } +}; + +Null_notnullContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNull_notnull(this); + } +}; + +Null_notnullContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNull_notnull(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Null_notnullContext = Null_notnullContext; + +TSqlParser.prototype.null_notnull = function() { + + var localctx = new Null_notnullContext(this, this._ctx, this.state); + this.enterRule(localctx, 932, TSqlParser.RULE_null_notnull); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10525; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.NOT) { + this.state = 10524; + this.match(TSqlParser.NOT); + } + + this.state = 10527; + this.match(TSqlParser.NULL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Null_or_defaultContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_null_or_default; + return this; +} + +Null_or_defaultContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Null_or_defaultContext.prototype.constructor = Null_or_defaultContext; + +Null_or_defaultContext.prototype.null_notnull = function() { + return this.getTypedRuleContext(Null_notnullContext,0); +}; + +Null_or_defaultContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Null_or_defaultContext.prototype.constant_expression = function() { + return this.getTypedRuleContext(Constant_expressionContext,0); +}; + +Null_or_defaultContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Null_or_defaultContext.prototype.VALUES = function() { + return this.getToken(TSqlParser.VALUES, 0); +}; + +Null_or_defaultContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterNull_or_default(this); + } +}; + +Null_or_defaultContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitNull_or_default(this); + } +}; + +Null_or_defaultContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitNull_or_default(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Null_or_defaultContext = Null_or_defaultContext; + +TSqlParser.prototype.null_or_default = function() { + + var localctx = new Null_or_defaultContext(this, this._ctx, this.state); + this.enterRule(localctx, 934, TSqlParser.RULE_null_or_default); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10536; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NOT: + case TSqlParser.NULL: + this.state = 10529; + this.null_notnull(); + break; + case TSqlParser.DEFAULT: + this.state = 10530; + this.match(TSqlParser.DEFAULT); + this.state = 10531; + this.constant_expression(); + this.state = 10534; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1483,this._ctx); + if(la_===1) { + this.state = 10532; + this.match(TSqlParser.WITH); + this.state = 10533; + this.match(TSqlParser.VALUES); + + } + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Scalar_function_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_scalar_function_name; + return this; +} + +Scalar_function_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Scalar_function_nameContext.prototype.constructor = Scalar_function_nameContext; + +Scalar_function_nameContext.prototype.func_proc_name_server_database_schema = function() { + return this.getTypedRuleContext(Func_proc_name_server_database_schemaContext,0); +}; + +Scalar_function_nameContext.prototype.RIGHT = function() { + return this.getToken(TSqlParser.RIGHT, 0); +}; + +Scalar_function_nameContext.prototype.LEFT = function() { + return this.getToken(TSqlParser.LEFT, 0); +}; + +Scalar_function_nameContext.prototype.BINARY_CHECKSUM = function() { + return this.getToken(TSqlParser.BINARY_CHECKSUM, 0); +}; + +Scalar_function_nameContext.prototype.CHECKSUM = function() { + return this.getToken(TSqlParser.CHECKSUM, 0); +}; + +Scalar_function_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterScalar_function_name(this); + } +}; + +Scalar_function_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitScalar_function_name(this); + } +}; + +Scalar_function_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitScalar_function_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Scalar_function_nameContext = Scalar_function_nameContext; + +TSqlParser.prototype.scalar_function_name = function() { + + var localctx = new Scalar_function_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 936, TSqlParser.RULE_scalar_function_name); + try { + this.state = 10543; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1485,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10538; + this.func_proc_name_server_database_schema(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10539; + this.match(TSqlParser.RIGHT); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10540; + this.match(TSqlParser.LEFT); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10541; + this.match(TSqlParser.BINARY_CHECKSUM); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10542; + this.match(TSqlParser.CHECKSUM); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Begin_conversation_timerContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_begin_conversation_timer; + return this; +} + +Begin_conversation_timerContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Begin_conversation_timerContext.prototype.constructor = Begin_conversation_timerContext; + +Begin_conversation_timerContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Begin_conversation_timerContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Begin_conversation_timerContext.prototype.TIMER = function() { + return this.getToken(TSqlParser.TIMER, 0); +}; + +Begin_conversation_timerContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Begin_conversation_timerContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Begin_conversation_timerContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Begin_conversation_timerContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Begin_conversation_timerContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Begin_conversation_timerContext.prototype.time = function() { + return this.getTypedRuleContext(TimeContext,0); +}; + +Begin_conversation_timerContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Begin_conversation_timerContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBegin_conversation_timer(this); + } +}; + +Begin_conversation_timerContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBegin_conversation_timer(this); + } +}; + +Begin_conversation_timerContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBegin_conversation_timer(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Begin_conversation_timerContext = Begin_conversation_timerContext; + +TSqlParser.prototype.begin_conversation_timer = function() { + + var localctx = new Begin_conversation_timerContext(this, this._ctx, this.state); + this.enterRule(localctx, 938, TSqlParser.RULE_begin_conversation_timer); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10545; + this.match(TSqlParser.BEGIN); + this.state = 10546; + this.match(TSqlParser.CONVERSATION); + this.state = 10547; + this.match(TSqlParser.TIMER); + this.state = 10548; + this.match(TSqlParser.LR_BRACKET); + this.state = 10549; + this.match(TSqlParser.LOCAL_ID); + this.state = 10550; + this.match(TSqlParser.RR_BRACKET); + this.state = 10551; + this.match(TSqlParser.TIMEOUT); + this.state = 10552; + this.match(TSqlParser.EQUAL); + this.state = 10553; + this.time(); + this.state = 10555; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1486,this._ctx); + if(la_===1) { + this.state = 10554; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Begin_conversation_dialogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_begin_conversation_dialog; + this.dialog_handle = null; // Token + this.initiator_service_name = null; // Service_nameContext + this.target_service_name = null; // Service_nameContext + this.service_broker_guid = null; // Token + return this; +} + +Begin_conversation_dialogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Begin_conversation_dialogContext.prototype.constructor = Begin_conversation_dialogContext; + +Begin_conversation_dialogContext.prototype.BEGIN = function() { + return this.getToken(TSqlParser.BEGIN, 0); +}; + +Begin_conversation_dialogContext.prototype.DIALOG = function() { + return this.getToken(TSqlParser.DIALOG, 0); +}; + +Begin_conversation_dialogContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Begin_conversation_dialogContext.prototype.SERVICE = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.SERVICE); + } else { + return this.getToken(TSqlParser.SERVICE, i); + } +}; + + +Begin_conversation_dialogContext.prototype.TO = function() { + return this.getToken(TSqlParser.TO, 0); +}; + +Begin_conversation_dialogContext.prototype.ON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.ON); + } else { + return this.getToken(TSqlParser.ON, i); + } +}; + + +Begin_conversation_dialogContext.prototype.CONTRACT = function() { + return this.getToken(TSqlParser.CONTRACT, 0); +}; + +Begin_conversation_dialogContext.prototype.contract_name = function() { + return this.getTypedRuleContext(Contract_nameContext,0); +}; + +Begin_conversation_dialogContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Begin_conversation_dialogContext.prototype.service_name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Service_nameContext); + } else { + return this.getTypedRuleContext(Service_nameContext,i); + } +}; + +Begin_conversation_dialogContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Begin_conversation_dialogContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.COMMA); + } else { + return this.getToken(TSqlParser.COMMA, i); + } +}; + + +Begin_conversation_dialogContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +Begin_conversation_dialogContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Begin_conversation_dialogContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Begin_conversation_dialogContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +Begin_conversation_dialogContext.prototype.LIFETIME = function() { + return this.getToken(TSqlParser.LIFETIME, 0); +}; + +Begin_conversation_dialogContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Begin_conversation_dialogContext.prototype.RELATED_CONVERSATION = function() { + return this.getToken(TSqlParser.RELATED_CONVERSATION, 0); +}; + +Begin_conversation_dialogContext.prototype.RELATED_CONVERSATION_GROUP = function() { + return this.getToken(TSqlParser.RELATED_CONVERSATION_GROUP, 0); +}; + +Begin_conversation_dialogContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +Begin_conversation_dialogContext.prototype.OFF = function() { + return this.getToken(TSqlParser.OFF, 0); +}; + +Begin_conversation_dialogContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterBegin_conversation_dialog(this); + } +}; + +Begin_conversation_dialogContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitBegin_conversation_dialog(this); + } +}; + +Begin_conversation_dialogContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitBegin_conversation_dialog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Begin_conversation_dialogContext = Begin_conversation_dialogContext; + +TSqlParser.prototype.begin_conversation_dialog = function() { + + var localctx = new Begin_conversation_dialogContext(this, this._ctx, this.state); + this.enterRule(localctx, 940, TSqlParser.RULE_begin_conversation_dialog); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10557; + this.match(TSqlParser.BEGIN); + this.state = 10558; + this.match(TSqlParser.DIALOG); + this.state = 10560; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.CONVERSATION) { + this.state = 10559; + this.match(TSqlParser.CONVERSATION); + } + + this.state = 10562; + localctx.dialog_handle = this.match(TSqlParser.LOCAL_ID); + this.state = 10563; + this.match(TSqlParser.FROM); + this.state = 10564; + this.match(TSqlParser.SERVICE); + this.state = 10565; + localctx.initiator_service_name = this.service_name(); + this.state = 10566; + this.match(TSqlParser.TO); + this.state = 10567; + this.match(TSqlParser.SERVICE); + this.state = 10568; + localctx.target_service_name = this.service_name(); + this.state = 10571; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10569; + this.match(TSqlParser.COMMA); + this.state = 10570; + localctx.service_broker_guid = this.match(TSqlParser.STRING); + } + + this.state = 10573; + this.match(TSqlParser.ON); + this.state = 10574; + this.match(TSqlParser.CONTRACT); + this.state = 10575; + this.contract_name(); + this.state = 10598; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1494,this._ctx); + if(la_===1) { + this.state = 10576; + this.match(TSqlParser.WITH); + this.state = 10583; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.RELATED_CONVERSATION || _la===TSqlParser.RELATED_CONVERSATION_GROUP) { + this.state = 10577; + _la = this._input.LA(1); + if(!(_la===TSqlParser.RELATED_CONVERSATION || _la===TSqlParser.RELATED_CONVERSATION_GROUP)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10578; + this.match(TSqlParser.EQUAL); + this.state = 10579; + this.match(TSqlParser.LOCAL_ID); + this.state = 10581; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10580; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10591; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.LIFETIME) { + this.state = 10585; + this.match(TSqlParser.LIFETIME); + this.state = 10586; + this.match(TSqlParser.EQUAL); + this.state = 10587; + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10589; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10588; + this.match(TSqlParser.COMMA); + } + + } + + this.state = 10596; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1493,this._ctx); + if(la_===1) { + this.state = 10593; + this.match(TSqlParser.ENCRYPTION); + this.state = 10594; + this.match(TSqlParser.EQUAL); + this.state = 10595; + _la = this._input.LA(1); + if(!(_la===TSqlParser.OFF || _la===TSqlParser.ON)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + + } + this.state = 10601; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1495,this._ctx); + if(la_===1) { + this.state = 10600; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Contract_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_contract_name; + return this; +} + +Contract_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Contract_nameContext.prototype.constructor = Contract_nameContext; + +Contract_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Contract_nameContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Contract_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterContract_name(this); + } +}; + +Contract_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitContract_name(this); + } +}; + +Contract_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitContract_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Contract_nameContext = Contract_nameContext; + +TSqlParser.prototype.contract_name = function() { + + var localctx = new Contract_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 942, TSqlParser.RULE_contract_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10605; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1496,this._ctx); + switch(la_) { + case 1: + this.state = 10603; + this.id(); + break; + + case 2: + this.state = 10604; + this.expression(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Service_nameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_service_name; + return this; +} + +Service_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Service_nameContext.prototype.constructor = Service_nameContext; + +Service_nameContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Service_nameContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Service_nameContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterService_name(this); + } +}; + +Service_nameContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitService_name(this); + } +}; + +Service_nameContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitService_name(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Service_nameContext = Service_nameContext; + +TSqlParser.prototype.service_name = function() { + + var localctx = new Service_nameContext(this, this._ctx, this.state); + this.enterRule(localctx, 944, TSqlParser.RULE_service_name); + try { + this.enterOuterAlt(localctx, 1); + this.state = 10609; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1497,this._ctx); + switch(la_) { + case 1: + this.state = 10607; + this.id(); + break; + + case 2: + this.state = 10608; + this.expression(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function End_conversationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_end_conversation; + this.conversation_handle = null; // Token + this.faliure_code = null; // Token + this.failure_text = null; // Token + return this; +} + +End_conversationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +End_conversationContext.prototype.constructor = End_conversationContext; + +End_conversationContext.prototype.END = function() { + return this.getToken(TSqlParser.END, 0); +}; + +End_conversationContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +End_conversationContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +End_conversationContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +End_conversationContext.prototype.WITH = function() { + return this.getToken(TSqlParser.WITH, 0); +}; + +End_conversationContext.prototype.ERROR = function() { + return this.getToken(TSqlParser.ERROR, 0); +}; + +End_conversationContext.prototype.EQUAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.EQUAL); + } else { + return this.getToken(TSqlParser.EQUAL, i); + } +}; + + +End_conversationContext.prototype.DESCRIPTION = function() { + return this.getToken(TSqlParser.DESCRIPTION, 0); +}; + +End_conversationContext.prototype.CLEANUP = function() { + return this.getToken(TSqlParser.CLEANUP, 0); +}; + +End_conversationContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +End_conversationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterEnd_conversation(this); + } +}; + +End_conversationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitEnd_conversation(this); + } +}; + +End_conversationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitEnd_conversation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.End_conversationContext = End_conversationContext; + +TSqlParser.prototype.end_conversation = function() { + + var localctx = new End_conversationContext(this, this._ctx, this.state); + this.enterRule(localctx, 946, TSqlParser.RULE_end_conversation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10611; + this.match(TSqlParser.END); + this.state = 10612; + this.match(TSqlParser.CONVERSATION); + this.state = 10613; + localctx.conversation_handle = this.match(TSqlParser.LOCAL_ID); + this.state = 10615; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1498,this._ctx); + if(la_===1) { + this.state = 10614; + this.match(TSqlParser.SEMI); + + } + this.state = 10629; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1501,this._ctx); + if(la_===1) { + this.state = 10617; + this.match(TSqlParser.WITH); + this.state = 10624; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.ERROR) { + this.state = 10618; + this.match(TSqlParser.ERROR); + this.state = 10619; + this.match(TSqlParser.EQUAL); + this.state = 10620; + localctx.faliure_code = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.faliure_code = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10621; + this.match(TSqlParser.DESCRIPTION); + this.state = 10622; + this.match(TSqlParser.EQUAL); + this.state = 10623; + localctx.failure_text = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.failure_text = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 10627; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1500,this._ctx); + if(la_===1) { + this.state = 10626; + this.match(TSqlParser.CLEANUP); + + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Waitfor_conversationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_waitfor_conversation; + this.timeout = null; // TimeContext + return this; +} + +Waitfor_conversationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Waitfor_conversationContext.prototype.constructor = Waitfor_conversationContext; + +Waitfor_conversationContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Waitfor_conversationContext.prototype.get_conversation = function() { + return this.getTypedRuleContext(Get_conversationContext,0); +}; + +Waitfor_conversationContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Waitfor_conversationContext.prototype.WAITFOR = function() { + return this.getToken(TSqlParser.WAITFOR, 0); +}; + +Waitfor_conversationContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Waitfor_conversationContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Waitfor_conversationContext.prototype.time = function() { + return this.getTypedRuleContext(TimeContext,0); +}; + +Waitfor_conversationContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Waitfor_conversationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterWaitfor_conversation(this); + } +}; + +Waitfor_conversationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitWaitfor_conversation(this); + } +}; + +Waitfor_conversationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitWaitfor_conversation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Waitfor_conversationContext = Waitfor_conversationContext; + +TSqlParser.prototype.waitfor_conversation = function() { + + var localctx = new Waitfor_conversationContext(this, this._ctx, this.state); + this.enterRule(localctx, 948, TSqlParser.RULE_waitfor_conversation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10632; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.WAITFOR) { + this.state = 10631; + this.match(TSqlParser.WAITFOR); + } + + this.state = 10634; + this.match(TSqlParser.LR_BRACKET); + this.state = 10635; + this.get_conversation(); + this.state = 10636; + this.match(TSqlParser.RR_BRACKET); + this.state = 10642; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1504,this._ctx); + if(la_===1) { + this.state = 10638; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10637; + this.match(TSqlParser.COMMA); + } + + this.state = 10640; + this.match(TSqlParser.TIMEOUT); + this.state = 10641; + localctx.timeout = this.time(); + + } + this.state = 10645; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1505,this._ctx); + if(la_===1) { + this.state = 10644; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Get_conversationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_get_conversation; + this.conversation_group_id = null; // Token + this.queue = null; // Queue_idContext + return this; +} + +Get_conversationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Get_conversationContext.prototype.constructor = Get_conversationContext; + +Get_conversationContext.prototype.GET = function() { + return this.getToken(TSqlParser.GET, 0); +}; + +Get_conversationContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Get_conversationContext.prototype.GROUP = function() { + return this.getToken(TSqlParser.GROUP, 0); +}; + +Get_conversationContext.prototype.FROM = function() { + return this.getToken(TSqlParser.FROM, 0); +}; + +Get_conversationContext.prototype.queue_id = function() { + return this.getTypedRuleContext(Queue_idContext,0); +}; + +Get_conversationContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +Get_conversationContext.prototype.LOCAL_ID = function() { + return this.getToken(TSqlParser.LOCAL_ID, 0); +}; + +Get_conversationContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Get_conversationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterGet_conversation(this); + } +}; + +Get_conversationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitGet_conversation(this); + } +}; + +Get_conversationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitGet_conversation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Get_conversationContext = Get_conversationContext; + +TSqlParser.prototype.get_conversation = function() { + + var localctx = new Get_conversationContext(this, this._ctx, this.state); + this.enterRule(localctx, 950, TSqlParser.RULE_get_conversation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10647; + this.match(TSqlParser.GET); + this.state = 10648; + this.match(TSqlParser.CONVERSATION); + this.state = 10649; + this.match(TSqlParser.GROUP); + this.state = 10650; + localctx.conversation_group_id = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.conversation_group_id = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10651; + this.match(TSqlParser.FROM); + this.state = 10652; + localctx.queue = this.queue_id(); + this.state = 10654; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1506,this._ctx); + if(la_===1) { + this.state = 10653; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Queue_idContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_queue_id; + this.database_name = null; // IdContext + this.schema_name = null; // IdContext + this.name = null; // IdContext + return this; +} + +Queue_idContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Queue_idContext.prototype.constructor = Queue_idContext; + +Queue_idContext.prototype.DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DOT); + } else { + return this.getToken(TSqlParser.DOT, i); + } +}; + + +Queue_idContext.prototype.id = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdContext); + } else { + return this.getTypedRuleContext(IdContext,i); + } +}; + +Queue_idContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterQueue_id(this); + } +}; + +Queue_idContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitQueue_id(this); + } +}; + +Queue_idContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitQueue_id(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Queue_idContext = Queue_idContext; + +TSqlParser.prototype.queue_id = function() { + + var localctx = new Queue_idContext(this, this._ctx, this.state); + this.enterRule(localctx, 952, TSqlParser.RULE_queue_id); + try { + this.state = 10663; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1507,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10656; + localctx.database_name = this.id(); + this.state = 10657; + this.match(TSqlParser.DOT); + this.state = 10658; + localctx.schema_name = this.id(); + this.state = 10659; + this.match(TSqlParser.DOT); + this.state = 10660; + localctx.name = this.id(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10662; + this.id(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Send_conversationContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_send_conversation; + this.conversation_handle = null; // Token + this.message_type_name = null; // ExpressionContext + this.message_body_expression = null; // Token + return this; +} + +Send_conversationContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Send_conversationContext.prototype.constructor = Send_conversationContext; + +Send_conversationContext.prototype.SEND = function() { + return this.getToken(TSqlParser.SEND, 0); +}; + +Send_conversationContext.prototype.ON = function() { + return this.getToken(TSqlParser.ON, 0); +}; + +Send_conversationContext.prototype.CONVERSATION = function() { + return this.getToken(TSqlParser.CONVERSATION, 0); +}; + +Send_conversationContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Send_conversationContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Send_conversationContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +Send_conversationContext.prototype.STRING = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.STRING); + } else { + return this.getToken(TSqlParser.STRING, i); + } +}; + + +Send_conversationContext.prototype.LOCAL_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.LOCAL_ID); + } else { + return this.getToken(TSqlParser.LOCAL_ID, i); + } +}; + + +Send_conversationContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Send_conversationContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Send_conversationContext.prototype.SEMI = function() { + return this.getToken(TSqlParser.SEMI, 0); +}; + +Send_conversationContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSend_conversation(this); + } +}; + +Send_conversationContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSend_conversation(this); + } +}; + +Send_conversationContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSend_conversation(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Send_conversationContext = Send_conversationContext; + +TSqlParser.prototype.send_conversation = function() { + + var localctx = new Send_conversationContext(this, this._ctx, this.state); + this.enterRule(localctx, 954, TSqlParser.RULE_send_conversation); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10665; + this.match(TSqlParser.SEND); + this.state = 10666; + this.match(TSqlParser.ON); + this.state = 10667; + this.match(TSqlParser.CONVERSATION); + this.state = 10668; + localctx.conversation_handle = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.conversation_handle = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10669; + this.match(TSqlParser.MESSAGE); + this.state = 10670; + this.match(TSqlParser.TYPE); + this.state = 10671; + localctx.message_type_name = this.expression(0); + this.state = 10675; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1508,this._ctx); + if(la_===1) { + this.state = 10672; + this.match(TSqlParser.LR_BRACKET); + this.state = 10673; + localctx.message_body_expression = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===TSqlParser.LOCAL_ID || _la===TSqlParser.STRING)) { + localctx.message_body_expression = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10674; + this.match(TSqlParser.RR_BRACKET); + + } + this.state = 10678; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1509,this._ctx); + if(la_===1) { + this.state = 10677; + this.match(TSqlParser.SEMI); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Data_typeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_data_type; + return this; +} + +Data_typeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Data_typeContext.prototype.constructor = Data_typeContext; + +Data_typeContext.prototype.id = function() { + return this.getTypedRuleContext(IdContext,0); +}; + +Data_typeContext.prototype.IDENTITY = function() { + return this.getToken(TSqlParser.IDENTITY, 0); +}; + +Data_typeContext.prototype.LR_BRACKET = function() { + return this.getToken(TSqlParser.LR_BRACKET, 0); +}; + +Data_typeContext.prototype.RR_BRACKET = function() { + return this.getToken(TSqlParser.RR_BRACKET, 0); +}; + +Data_typeContext.prototype.DECIMAL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(TSqlParser.DECIMAL); + } else { + return this.getToken(TSqlParser.DECIMAL, i); + } +}; + + +Data_typeContext.prototype.MAX = function() { + return this.getToken(TSqlParser.MAX, 0); +}; + +Data_typeContext.prototype.COMMA = function() { + return this.getToken(TSqlParser.COMMA, 0); +}; + +Data_typeContext.prototype.DOUBLE = function() { + return this.getToken(TSqlParser.DOUBLE, 0); +}; + +Data_typeContext.prototype.PRECISION = function() { + return this.getToken(TSqlParser.PRECISION, 0); +}; + +Data_typeContext.prototype.INT = function() { + return this.getToken(TSqlParser.INT, 0); +}; + +Data_typeContext.prototype.TINYINT = function() { + return this.getToken(TSqlParser.TINYINT, 0); +}; + +Data_typeContext.prototype.SMALLINT = function() { + return this.getToken(TSqlParser.SMALLINT, 0); +}; + +Data_typeContext.prototype.BIGINT = function() { + return this.getToken(TSqlParser.BIGINT, 0); +}; + +Data_typeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterData_type(this); + } +}; + +Data_typeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitData_type(this); + } +}; + +Data_typeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitData_type(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Data_typeContext = Data_typeContext; + +TSqlParser.prototype.data_type = function() { + + var localctx = new Data_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 956, TSqlParser.RULE_data_type); + var _la = 0; // Token type + try { + this.state = 10701; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1514,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10680; + this.id(); + this.state = 10682; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1510,this._ctx); + if(la_===1) { + this.state = 10681; + this.match(TSqlParser.IDENTITY); + + } + this.state = 10691; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1512,this._ctx); + if(la_===1) { + this.state = 10684; + this.match(TSqlParser.LR_BRACKET); + this.state = 10685; + _la = this._input.LA(1); + if(!(_la===TSqlParser.MAX || _la===TSqlParser.DECIMAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 10688; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.COMMA) { + this.state = 10686; + this.match(TSqlParser.COMMA); + this.state = 10687; + this.match(TSqlParser.DECIMAL); + } + + this.state = 10690; + this.match(TSqlParser.RR_BRACKET); + + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10693; + this.match(TSqlParser.DOUBLE); + this.state = 10695; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PRECISION) { + this.state = 10694; + this.match(TSqlParser.PRECISION); + } + + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10697; + this.match(TSqlParser.INT); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10698; + this.match(TSqlParser.TINYINT); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10699; + this.match(TSqlParser.SMALLINT); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10700; + this.match(TSqlParser.BIGINT); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Default_valueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_default_value; + return this; +} + +Default_valueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Default_valueContext.prototype.constructor = Default_valueContext; + +Default_valueContext.prototype.NULL = function() { + return this.getToken(TSqlParser.NULL, 0); +}; + +Default_valueContext.prototype.DEFAULT = function() { + return this.getToken(TSqlParser.DEFAULT, 0); +}; + +Default_valueContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +Default_valueContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterDefault_value(this); + } +}; + +Default_valueContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitDefault_value(this); + } +}; + +Default_valueContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitDefault_value(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Default_valueContext = Default_valueContext; + +TSqlParser.prototype.default_value = function() { + + var localctx = new Default_valueContext(this, this._ctx, this.state); + this.enterRule(localctx, 958, TSqlParser.RULE_default_value); + try { + this.state = 10706; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.NULL: + this.enterOuterAlt(localctx, 1); + this.state = 10703; + this.match(TSqlParser.NULL); + break; + case TSqlParser.DEFAULT: + this.enterOuterAlt(localctx, 2); + this.state = 10704; + this.match(TSqlParser.DEFAULT); + break; + case TSqlParser.DECIMAL: + case TSqlParser.STRING: + case TSqlParser.BINARY: + case TSqlParser.FLOAT: + case TSqlParser.REAL: + case TSqlParser.DOLLAR: + case TSqlParser.PLUS: + case TSqlParser.MINUS: + this.enterOuterAlt(localctx, 3); + this.state = 10705; + this.constant(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ConstantContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_constant; + this.dollar = null; // Token + return this; +} + +ConstantContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ConstantContext.prototype.constructor = ConstantContext; + +ConstantContext.prototype.STRING = function() { + return this.getToken(TSqlParser.STRING, 0); +}; + +ConstantContext.prototype.BINARY = function() { + return this.getToken(TSqlParser.BINARY, 0); +}; + +ConstantContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +ConstantContext.prototype.sign = function() { + return this.getTypedRuleContext(SignContext,0); +}; + +ConstantContext.prototype.REAL = function() { + return this.getToken(TSqlParser.REAL, 0); +}; + +ConstantContext.prototype.FLOAT = function() { + return this.getToken(TSqlParser.FLOAT, 0); +}; + +ConstantContext.prototype.DOLLAR = function() { + return this.getToken(TSqlParser.DOLLAR, 0); +}; + +ConstantContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterConstant(this); + } +}; + +ConstantContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitConstant(this); + } +}; + +ConstantContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitConstant(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.ConstantContext = ConstantContext; + +TSqlParser.prototype.constant = function() { + + var localctx = new ConstantContext(this, this._ctx, this.state); + this.enterRule(localctx, 960, TSqlParser.RULE_constant); + var _la = 0; // Token type + try { + this.state = 10723; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1519,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10708; + this.match(TSqlParser.STRING); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10709; + this.match(TSqlParser.BINARY); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10711; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS) { + this.state = 10710; + this.sign(); + } + + this.state = 10713; + this.match(TSqlParser.DECIMAL); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10715; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS) { + this.state = 10714; + this.sign(); + } + + this.state = 10717; + _la = this._input.LA(1); + if(!(_la===TSqlParser.FLOAT || _la===TSqlParser.REAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10719; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS) { + this.state = 10718; + this.sign(); + } + + this.state = 10721; + localctx.dollar = this.match(TSqlParser.DOLLAR); + this.state = 10722; + _la = this._input.LA(1); + if(!(_la===TSqlParser.DECIMAL || _la===TSqlParser.FLOAT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SignContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_sign; + return this; +} + +SignContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SignContext.prototype.constructor = SignContext; + +SignContext.prototype.PLUS = function() { + return this.getToken(TSqlParser.PLUS, 0); +}; + +SignContext.prototype.MINUS = function() { + return this.getToken(TSqlParser.MINUS, 0); +}; + +SignContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSign(this); + } +}; + +SignContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSign(this); + } +}; + +SignContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSign(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.SignContext = SignContext; + +TSqlParser.prototype.sign = function() { + + var localctx = new SignContext(this, this._ctx, this.state); + this.enterRule(localctx, 962, TSqlParser.RULE_sign); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10725; + _la = this._input.LA(1); + if(!(_la===TSqlParser.PLUS || _la===TSqlParser.MINUS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IdContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_id; + return this; +} + +IdContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IdContext.prototype.constructor = IdContext; + +IdContext.prototype.simple_id = function() { + return this.getTypedRuleContext(Simple_idContext,0); +}; + +IdContext.prototype.DOUBLE_QUOTE_ID = function() { + return this.getToken(TSqlParser.DOUBLE_QUOTE_ID, 0); +}; + +IdContext.prototype.SQUARE_BRACKET_ID = function() { + return this.getToken(TSqlParser.SQUARE_BRACKET_ID, 0); +}; + +IdContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterId(this); + } +}; + +IdContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitId(this); + } +}; + +IdContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitId(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.IdContext = IdContext; + +TSqlParser.prototype.id = function() { + + var localctx = new IdContext(this, this._ctx, this.state); + this.enterRule(localctx, 964, TSqlParser.RULE_id); + try { + this.state = 10730; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case TSqlParser.CALLED: + case TSqlParser.DATA_COMPRESSION: + case TSqlParser.EVENTDATA: + case TSqlParser.FILENAME: + case TSqlParser.FILLFACTOR: + case TSqlParser.FORCESEEK: + case TSqlParser.INIT: + case TSqlParser.KEY: + case TSqlParser.MASTER: + case TSqlParser.MAX_MEMORY: + case TSqlParser.OFFSETS: + case TSqlParser.PAGE: + case TSqlParser.PUBLIC: + case TSqlParser.R: + case TSqlParser.RAW: + case TSqlParser.RETURN: + case TSqlParser.RETURNS: + case TSqlParser.ROWCOUNT: + case TSqlParser.SAFETY: + case TSqlParser.SERVER: + case TSqlParser.SID: + case TSqlParser.SOURCE: + case TSqlParser.SPLIT: + case TSqlParser.STATE: + case TSqlParser.START: + case TSqlParser.TARGET: + case TSqlParser.ABSOLUTE: + case TSqlParser.ACCENT_SENSITIVITY: + case TSqlParser.ACTION: + case TSqlParser.ACTIVATION: + case TSqlParser.ACTIVE: + case TSqlParser.ADDRESS: + case TSqlParser.AES_128: + case TSqlParser.AES_192: + case TSqlParser.AES_256: + case TSqlParser.AFFINITY: + case TSqlParser.AFTER: + case TSqlParser.AGGREGATE: + case TSqlParser.ALGORITHM: + case TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS: + case TSqlParser.ALLOW_SNAPSHOT_ISOLATION: + case TSqlParser.ALLOWED: + case TSqlParser.ANSI_NULL_DEFAULT: + case TSqlParser.ANSI_NULLS: + case TSqlParser.ANSI_PADDING: + case TSqlParser.ANSI_WARNINGS: + case TSqlParser.APPLICATION_LOG: + case TSqlParser.APPLY: + case TSqlParser.ARITHABORT: + case TSqlParser.ASSEMBLY: + case TSqlParser.AUDIT: + case TSqlParser.AUDIT_GUID: + case TSqlParser.AUTO: + case TSqlParser.AUTO_CLEANUP: + case TSqlParser.AUTO_CLOSE: + case TSqlParser.AUTO_CREATE_STATISTICS: + case TSqlParser.AUTO_SHRINK: + case TSqlParser.AUTO_UPDATE_STATISTICS: + case TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC: + case TSqlParser.AVAILABILITY: + case TSqlParser.AVG: + case TSqlParser.BACKUP_PRIORITY: + case TSqlParser.BEGIN_DIALOG: + case TSqlParser.BIGINT: + case TSqlParser.BINARY_BASE64: + case TSqlParser.BINARY_CHECKSUM: + case TSqlParser.BINDING: + case TSqlParser.BLOB_STORAGE: + case TSqlParser.BROKER: + case TSqlParser.BROKER_INSTANCE: + case TSqlParser.BULK_LOGGED: + case TSqlParser.CALLER: + case TSqlParser.CAP_CPU_PERCENT: + case TSqlParser.CAST: + case TSqlParser.CATALOG: + case TSqlParser.CATCH: + case TSqlParser.CHANGE_RETENTION: + case TSqlParser.CHANGE_TRACKING: + case TSqlParser.CHECKSUM: + case TSqlParser.CHECKSUM_AGG: + case TSqlParser.CLEANUP: + case TSqlParser.COLLECTION: + case TSqlParser.COLUMN_MASTER_KEY: + case TSqlParser.COMMITTED: + case TSqlParser.COMPATIBILITY_LEVEL: + case TSqlParser.CONCAT: + case TSqlParser.CONCAT_NULL_YIELDS_NULL: + case TSqlParser.CONTENT: + case TSqlParser.CONTROL: + case TSqlParser.COOKIE: + case TSqlParser.COUNT: + case TSqlParser.COUNT_BIG: + case TSqlParser.COUNTER: + case TSqlParser.CPU: + case TSqlParser.CREATE_NEW: + case TSqlParser.CREATION_DISPOSITION: + case TSqlParser.CREDENTIAL: + case TSqlParser.CRYPTOGRAPHIC: + case TSqlParser.CURSOR_CLOSE_ON_COMMIT: + case TSqlParser.CURSOR_DEFAULT: + case TSqlParser.DATA: + case TSqlParser.DATE_CORRELATION_OPTIMIZATION: + case TSqlParser.DATEADD: + case TSqlParser.DATEDIFF: + case TSqlParser.DATENAME: + case TSqlParser.DATEPART: + case TSqlParser.DAYS: + case TSqlParser.DB_CHAINING: + case TSqlParser.DB_FAILOVER: + case TSqlParser.DECRYPTION: + case TSqlParser.DEFAULT_DOUBLE_QUOTE: + case TSqlParser.DEFAULT_FULLTEXT_LANGUAGE: + case TSqlParser.DEFAULT_LANGUAGE: + case TSqlParser.DELAY: + case TSqlParser.DELAYED_DURABILITY: + case TSqlParser.DELETED: + case TSqlParser.DENSE_RANK: + case TSqlParser.DEPENDENTS: + case TSqlParser.DES: + case TSqlParser.DESCRIPTION: + case TSqlParser.DESX: + case TSqlParser.DHCP: + case TSqlParser.DIALOG: + case TSqlParser.DIRECTORY_NAME: + case TSqlParser.DISABLE: + case TSqlParser.DISABLE_BROKER: + case TSqlParser.DISABLED: + case TSqlParser.DISK_DRIVE: + case TSqlParser.DOCUMENT: + case TSqlParser.DYNAMIC: + case TSqlParser.EMERGENCY: + case TSqlParser.EMPTY: + case TSqlParser.ENABLE: + case TSqlParser.ENABLE_BROKER: + case TSqlParser.ENCRYPTED_VALUE: + case TSqlParser.ENCRYPTION: + case TSqlParser.ENDPOINT_URL: + case TSqlParser.ERROR_BROKER_CONVERSATIONS: + case TSqlParser.EXCLUSIVE: + case TSqlParser.EXECUTABLE: + case TSqlParser.EXIST: + case TSqlParser.EXPAND: + case TSqlParser.EXPIRY_DATE: + case TSqlParser.EXPLICIT: + case TSqlParser.FAIL_OPERATION: + case TSqlParser.FAILOVER_MODE: + case TSqlParser.FAILURE: + case TSqlParser.FAILURE_CONDITION_LEVEL: + case TSqlParser.FAST: + case TSqlParser.FAST_FORWARD: + case TSqlParser.FILEGROUP: + case TSqlParser.FILEGROWTH: + case TSqlParser.FILEPATH: + case TSqlParser.FILESTREAM: + case TSqlParser.FILTER: + case TSqlParser.FIRST: + case TSqlParser.FIRST_VALUE: + case TSqlParser.FOLLOWING: + case TSqlParser.FORCE: + case TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS: + case TSqlParser.FORCED: + case TSqlParser.FORMAT: + case TSqlParser.FORWARD_ONLY: + case TSqlParser.FULLSCAN: + case TSqlParser.FULLTEXT: + case TSqlParser.GB: + case TSqlParser.GETDATE: + case TSqlParser.GETUTCDATE: + case TSqlParser.GLOBAL: + case TSqlParser.GO: + case TSqlParser.GROUP_MAX_REQUESTS: + case TSqlParser.GROUPING: + case TSqlParser.GROUPING_ID: + case TSqlParser.HADR: + case TSqlParser.HASH: + case TSqlParser.HEALTH_CHECK_TIMEOUT: + case TSqlParser.HIGH: + case TSqlParser.HONOR_BROKER_PRIORITY: + case TSqlParser.HOURS: + case TSqlParser.IDENTITY_VALUE: + case TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX: + case TSqlParser.IMMEDIATE: + case TSqlParser.IMPERSONATE: + case TSqlParser.IMPORTANCE: + case TSqlParser.INCREMENTAL: + case TSqlParser.INITIATOR: + case TSqlParser.INPUT: + case TSqlParser.INSENSITIVE: + case TSqlParser.INSERTED: + case TSqlParser.INT: + case TSqlParser.IP: + case TSqlParser.ISOLATION: + case TSqlParser.KB: + case TSqlParser.KEEP: + case TSqlParser.KEEPFIXED: + case TSqlParser.KEY_SOURCE: + case TSqlParser.KEYS: + case TSqlParser.KEYSET: + case TSqlParser.LAG: + case TSqlParser.LAST: + case TSqlParser.LAST_VALUE: + case TSqlParser.LEAD: + case TSqlParser.LEVEL: + case TSqlParser.LIST: + case TSqlParser.LISTENER: + case TSqlParser.LISTENER_URL: + case TSqlParser.LOB_COMPACTION: + case TSqlParser.LOCAL: + case TSqlParser.LOCATION: + case TSqlParser.LOCK: + case TSqlParser.LOCK_ESCALATION: + case TSqlParser.LOGIN: + case TSqlParser.LOOP: + case TSqlParser.LOW: + case TSqlParser.MANUAL: + case TSqlParser.MARK: + case TSqlParser.MATERIALIZED: + case TSqlParser.MAX: + case TSqlParser.MAX_CPU_PERCENT: + case TSqlParser.MAX_DOP: + case TSqlParser.MAX_FILES: + case TSqlParser.MAX_IOPS_PER_VOLUME: + case TSqlParser.MAX_MEMORY_PERCENT: + case TSqlParser.MAX_PROCESSES: + case TSqlParser.MAX_QUEUE_READERS: + case TSqlParser.MAX_ROLLOVER_FILES: + case TSqlParser.MAXDOP: + case TSqlParser.MAXRECURSION: + case TSqlParser.MAXSIZE: + case TSqlParser.MB: + case TSqlParser.MEDIUM: + case TSqlParser.MEMORY_OPTIMIZED_DATA: + case TSqlParser.MESSAGE: + case TSqlParser.MIN: + case TSqlParser.MIN_ACTIVE_ROWVERSION: + case TSqlParser.MIN_CPU_PERCENT: + case TSqlParser.MIN_IOPS_PER_VOLUME: + case TSqlParser.MIN_MEMORY_PERCENT: + case TSqlParser.MINUTES: + case TSqlParser.MIRROR_ADDRESS: + case TSqlParser.MIXED_PAGE_ALLOCATION: + case TSqlParser.MODE: + case TSqlParser.MODIFY: + case TSqlParser.MOVE: + case TSqlParser.MULTI_USER: + case TSqlParser.NAME: + case TSqlParser.NESTED_TRIGGERS: + case TSqlParser.NEW_ACCOUNT: + case TSqlParser.NEW_BROKER: + case TSqlParser.NEW_PASSWORD: + case TSqlParser.NEXT: + case TSqlParser.NO: + case TSqlParser.NO_TRUNCATE: + case TSqlParser.NO_WAIT: + case TSqlParser.NOCOUNT: + case TSqlParser.NODES: + case TSqlParser.NOEXPAND: + case TSqlParser.NON_TRANSACTED_ACCESS: + case TSqlParser.NORECOMPUTE: + case TSqlParser.NORECOVERY: + case TSqlParser.NOWAIT: + case TSqlParser.NTILE: + case TSqlParser.NUMANODE: + case TSqlParser.NUMBER: + case TSqlParser.NUMERIC_ROUNDABORT: + case TSqlParser.OBJECT: + case TSqlParser.OFFLINE: + case TSqlParser.OFFSET: + case TSqlParser.OLD_ACCOUNT: + case TSqlParser.ONLINE: + case TSqlParser.ONLY: + case TSqlParser.OPEN_EXISTING: + case TSqlParser.OPTIMISTIC: + case TSqlParser.OPTIMIZE: + case TSqlParser.OUT: + case TSqlParser.OUTPUT: + case TSqlParser.OWNER: + case TSqlParser.PAGE_VERIFY: + case TSqlParser.PARAMETERIZATION: + case TSqlParser.PARTITION: + case TSqlParser.PARTITIONS: + case TSqlParser.PARTNER: + case TSqlParser.PATH: + case TSqlParser.POISON_MESSAGE_HANDLING: + case TSqlParser.POOL: + case TSqlParser.PORT: + case TSqlParser.PRECEDING: + case TSqlParser.PRIMARY_ROLE: + case TSqlParser.PRIOR: + case TSqlParser.PRIORITY: + case TSqlParser.PRIORITY_LEVEL: + case TSqlParser.PRIVATE: + case TSqlParser.PRIVATE_KEY: + case TSqlParser.PRIVILEGES: + case TSqlParser.PROCEDURE_NAME: + case TSqlParser.PROPERTY: + case TSqlParser.PROVIDER: + case TSqlParser.PROVIDER_KEY_NAME: + case TSqlParser.QUERY: + case TSqlParser.QUEUE: + case TSqlParser.QUEUE_DELAY: + case TSqlParser.QUOTED_IDENTIFIER: + case TSqlParser.RANGE: + case TSqlParser.RANK: + case TSqlParser.RC2: + case TSqlParser.RC4: + case TSqlParser.RC4_128: + case TSqlParser.READ_COMMITTED_SNAPSHOT: + case TSqlParser.READ_ONLY: + case TSqlParser.READ_ONLY_ROUTING_LIST: + case TSqlParser.READ_WRITE: + case TSqlParser.READONLY: + case TSqlParser.REBUILD: + case TSqlParser.RECEIVE: + case TSqlParser.RECOMPILE: + case TSqlParser.RECOVERY: + case TSqlParser.RECURSIVE_TRIGGERS: + case TSqlParser.RELATIVE: + case TSqlParser.REMOTE: + case TSqlParser.REMOTE_SERVICE_NAME: + case TSqlParser.REMOVE: + case TSqlParser.REORGANIZE: + case TSqlParser.REPEATABLE: + case TSqlParser.REPLICA: + case TSqlParser.REQUEST_MAX_CPU_TIME_SEC: + case TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT: + case TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC: + case TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT: + case TSqlParser.RESERVE_DISK_SPACE: + case TSqlParser.RESOURCE: + case TSqlParser.RESOURCE_MANAGER_LOCATION: + case TSqlParser.RESTRICTED_USER: + case TSqlParser.RETENTION: + case TSqlParser.ROBUST: + case TSqlParser.ROOT: + case TSqlParser.ROUTE: + case TSqlParser.ROW: + case TSqlParser.ROW_NUMBER: + case TSqlParser.ROWGUID: + case TSqlParser.ROWS: + case TSqlParser.SAMPLE: + case TSqlParser.SCHEMABINDING: + case TSqlParser.SCOPED: + case TSqlParser.SCROLL: + case TSqlParser.SCROLL_LOCKS: + case TSqlParser.SEARCH: + case TSqlParser.SECONDARY: + case TSqlParser.SECONDARY_ONLY: + case TSqlParser.SECONDARY_ROLE: + case TSqlParser.SECONDS: + case TSqlParser.SECRET: + case TSqlParser.SECURITY: + case TSqlParser.SECURITY_LOG: + case TSqlParser.SEEDING_MODE: + case TSqlParser.SELF: + case TSqlParser.SEMI_SENSITIVE: + case TSqlParser.SEND: + case TSqlParser.SENT: + case TSqlParser.SEQUENCE: + case TSqlParser.SERIALIZABLE: + case TSqlParser.SESSION_TIMEOUT: + case TSqlParser.SETERROR: + case TSqlParser.SHARE: + case TSqlParser.SHOWPLAN: + case TSqlParser.SIGNATURE: + case TSqlParser.SIMPLE: + case TSqlParser.SINGLE_USER: + case TSqlParser.SIZE: + case TSqlParser.SMALLINT: + case TSqlParser.SNAPSHOT: + case TSqlParser.SPATIAL_WINDOW_MAX_CELLS: + case TSqlParser.STANDBY: + case TSqlParser.START_DATE: + case TSqlParser.STATIC: + case TSqlParser.STATS_STREAM: + case TSqlParser.STATUS: + case TSqlParser.STDEV: + case TSqlParser.STDEVP: + case TSqlParser.STOPLIST: + case TSqlParser.STRING_AGG: + case TSqlParser.STUFF: + case TSqlParser.SUBJECT: + case TSqlParser.SUM: + case TSqlParser.SUSPEND: + case TSqlParser.SYMMETRIC: + case TSqlParser.SYNCHRONOUS_COMMIT: + case TSqlParser.SYNONYM: + case TSqlParser.SYSTEM: + case TSqlParser.TAKE: + case TSqlParser.TARGET_RECOVERY_TIME: + case TSqlParser.TB: + case TSqlParser.TEXTIMAGE_ON: + case TSqlParser.THROW: + case TSqlParser.TIES: + case TSqlParser.TIME: + case TSqlParser.TIMEOUT: + case TSqlParser.TIMER: + case TSqlParser.TINYINT: + case TSqlParser.TORN_PAGE_DETECTION: + case TSqlParser.TRANSFORM_NOISE_WORDS: + case TSqlParser.TRIPLE_DES: + case TSqlParser.TRIPLE_DES_3KEY: + case TSqlParser.TRUSTWORTHY: + case TSqlParser.TRY: + case TSqlParser.TSQL: + case TSqlParser.TWO_DIGIT_YEAR_CUTOFF: + case TSqlParser.TYPE: + case TSqlParser.TYPE_WARNING: + case TSqlParser.UNBOUNDED: + case TSqlParser.UNCOMMITTED: + case TSqlParser.UNKNOWN: + case TSqlParser.UNLIMITED: + case TSqlParser.USING: + case TSqlParser.VALID_XML: + case TSqlParser.VALIDATION: + case TSqlParser.VALUE: + case TSqlParser.VAR: + case TSqlParser.VARP: + case TSqlParser.VIEW_METADATA: + case TSqlParser.VIEWS: + case TSqlParser.WAIT: + case TSqlParser.WELL_FORMED_XML: + case TSqlParser.WORK: + case TSqlParser.WORKLOAD: + case TSqlParser.XML: + case TSqlParser.XMLNAMESPACES: + case TSqlParser.ID: + this.enterOuterAlt(localctx, 1); + this.state = 10727; + this.simple_id(); + break; + case TSqlParser.DOUBLE_QUOTE_ID: + this.enterOuterAlt(localctx, 2); + this.state = 10728; + this.match(TSqlParser.DOUBLE_QUOTE_ID); + break; + case TSqlParser.SQUARE_BRACKET_ID: + this.enterOuterAlt(localctx, 3); + this.state = 10729; + this.match(TSqlParser.SQUARE_BRACKET_ID); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Simple_idContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_simple_id; + return this; +} + +Simple_idContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Simple_idContext.prototype.constructor = Simple_idContext; + +Simple_idContext.prototype.ID = function() { + return this.getToken(TSqlParser.ID, 0); +}; + +Simple_idContext.prototype.ABSOLUTE = function() { + return this.getToken(TSqlParser.ABSOLUTE, 0); +}; + +Simple_idContext.prototype.ACCENT_SENSITIVITY = function() { + return this.getToken(TSqlParser.ACCENT_SENSITIVITY, 0); +}; + +Simple_idContext.prototype.ACTION = function() { + return this.getToken(TSqlParser.ACTION, 0); +}; + +Simple_idContext.prototype.ACTIVATION = function() { + return this.getToken(TSqlParser.ACTIVATION, 0); +}; + +Simple_idContext.prototype.ACTIVE = function() { + return this.getToken(TSqlParser.ACTIVE, 0); +}; + +Simple_idContext.prototype.ADDRESS = function() { + return this.getToken(TSqlParser.ADDRESS, 0); +}; + +Simple_idContext.prototype.AES_128 = function() { + return this.getToken(TSqlParser.AES_128, 0); +}; + +Simple_idContext.prototype.AES_192 = function() { + return this.getToken(TSqlParser.AES_192, 0); +}; + +Simple_idContext.prototype.AES_256 = function() { + return this.getToken(TSqlParser.AES_256, 0); +}; + +Simple_idContext.prototype.AFFINITY = function() { + return this.getToken(TSqlParser.AFFINITY, 0); +}; + +Simple_idContext.prototype.AFTER = function() { + return this.getToken(TSqlParser.AFTER, 0); +}; + +Simple_idContext.prototype.AGGREGATE = function() { + return this.getToken(TSqlParser.AGGREGATE, 0); +}; + +Simple_idContext.prototype.ALGORITHM = function() { + return this.getToken(TSqlParser.ALGORITHM, 0); +}; + +Simple_idContext.prototype.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = function() { + return this.getToken(TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS, 0); +}; + +Simple_idContext.prototype.ALLOW_SNAPSHOT_ISOLATION = function() { + return this.getToken(TSqlParser.ALLOW_SNAPSHOT_ISOLATION, 0); +}; + +Simple_idContext.prototype.ALLOWED = function() { + return this.getToken(TSqlParser.ALLOWED, 0); +}; + +Simple_idContext.prototype.ANSI_NULL_DEFAULT = function() { + return this.getToken(TSqlParser.ANSI_NULL_DEFAULT, 0); +}; + +Simple_idContext.prototype.ANSI_NULLS = function() { + return this.getToken(TSqlParser.ANSI_NULLS, 0); +}; + +Simple_idContext.prototype.ANSI_PADDING = function() { + return this.getToken(TSqlParser.ANSI_PADDING, 0); +}; + +Simple_idContext.prototype.ANSI_WARNINGS = function() { + return this.getToken(TSqlParser.ANSI_WARNINGS, 0); +}; + +Simple_idContext.prototype.APPLICATION_LOG = function() { + return this.getToken(TSqlParser.APPLICATION_LOG, 0); +}; + +Simple_idContext.prototype.APPLY = function() { + return this.getToken(TSqlParser.APPLY, 0); +}; + +Simple_idContext.prototype.ARITHABORT = function() { + return this.getToken(TSqlParser.ARITHABORT, 0); +}; + +Simple_idContext.prototype.ASSEMBLY = function() { + return this.getToken(TSqlParser.ASSEMBLY, 0); +}; + +Simple_idContext.prototype.AUDIT = function() { + return this.getToken(TSqlParser.AUDIT, 0); +}; + +Simple_idContext.prototype.AUDIT_GUID = function() { + return this.getToken(TSqlParser.AUDIT_GUID, 0); +}; + +Simple_idContext.prototype.AUTO = function() { + return this.getToken(TSqlParser.AUTO, 0); +}; + +Simple_idContext.prototype.AUTO_CLEANUP = function() { + return this.getToken(TSqlParser.AUTO_CLEANUP, 0); +}; + +Simple_idContext.prototype.AUTO_CLOSE = function() { + return this.getToken(TSqlParser.AUTO_CLOSE, 0); +}; + +Simple_idContext.prototype.AUTO_CREATE_STATISTICS = function() { + return this.getToken(TSqlParser.AUTO_CREATE_STATISTICS, 0); +}; + +Simple_idContext.prototype.AUTO_SHRINK = function() { + return this.getToken(TSqlParser.AUTO_SHRINK, 0); +}; + +Simple_idContext.prototype.AUTO_UPDATE_STATISTICS = function() { + return this.getToken(TSqlParser.AUTO_UPDATE_STATISTICS, 0); +}; + +Simple_idContext.prototype.AUTO_UPDATE_STATISTICS_ASYNC = function() { + return this.getToken(TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC, 0); +}; + +Simple_idContext.prototype.AVAILABILITY = function() { + return this.getToken(TSqlParser.AVAILABILITY, 0); +}; + +Simple_idContext.prototype.AVG = function() { + return this.getToken(TSqlParser.AVG, 0); +}; + +Simple_idContext.prototype.BACKUP_PRIORITY = function() { + return this.getToken(TSqlParser.BACKUP_PRIORITY, 0); +}; + +Simple_idContext.prototype.BEGIN_DIALOG = function() { + return this.getToken(TSqlParser.BEGIN_DIALOG, 0); +}; + +Simple_idContext.prototype.BIGINT = function() { + return this.getToken(TSqlParser.BIGINT, 0); +}; + +Simple_idContext.prototype.BINARY_BASE64 = function() { + return this.getToken(TSqlParser.BINARY_BASE64, 0); +}; + +Simple_idContext.prototype.BINARY_CHECKSUM = function() { + return this.getToken(TSqlParser.BINARY_CHECKSUM, 0); +}; + +Simple_idContext.prototype.BINDING = function() { + return this.getToken(TSqlParser.BINDING, 0); +}; + +Simple_idContext.prototype.BLOB_STORAGE = function() { + return this.getToken(TSqlParser.BLOB_STORAGE, 0); +}; + +Simple_idContext.prototype.BROKER = function() { + return this.getToken(TSqlParser.BROKER, 0); +}; + +Simple_idContext.prototype.BROKER_INSTANCE = function() { + return this.getToken(TSqlParser.BROKER_INSTANCE, 0); +}; + +Simple_idContext.prototype.BULK_LOGGED = function() { + return this.getToken(TSqlParser.BULK_LOGGED, 0); +}; + +Simple_idContext.prototype.CALLED = function() { + return this.getToken(TSqlParser.CALLED, 0); +}; + +Simple_idContext.prototype.CALLER = function() { + return this.getToken(TSqlParser.CALLER, 0); +}; + +Simple_idContext.prototype.CAP_CPU_PERCENT = function() { + return this.getToken(TSqlParser.CAP_CPU_PERCENT, 0); +}; + +Simple_idContext.prototype.CAST = function() { + return this.getToken(TSqlParser.CAST, 0); +}; + +Simple_idContext.prototype.CATALOG = function() { + return this.getToken(TSqlParser.CATALOG, 0); +}; + +Simple_idContext.prototype.CATCH = function() { + return this.getToken(TSqlParser.CATCH, 0); +}; + +Simple_idContext.prototype.CHANGE_RETENTION = function() { + return this.getToken(TSqlParser.CHANGE_RETENTION, 0); +}; + +Simple_idContext.prototype.CHANGE_TRACKING = function() { + return this.getToken(TSqlParser.CHANGE_TRACKING, 0); +}; + +Simple_idContext.prototype.CHECKSUM = function() { + return this.getToken(TSqlParser.CHECKSUM, 0); +}; + +Simple_idContext.prototype.CHECKSUM_AGG = function() { + return this.getToken(TSqlParser.CHECKSUM_AGG, 0); +}; + +Simple_idContext.prototype.CLEANUP = function() { + return this.getToken(TSqlParser.CLEANUP, 0); +}; + +Simple_idContext.prototype.COLLECTION = function() { + return this.getToken(TSqlParser.COLLECTION, 0); +}; + +Simple_idContext.prototype.COLUMN_MASTER_KEY = function() { + return this.getToken(TSqlParser.COLUMN_MASTER_KEY, 0); +}; + +Simple_idContext.prototype.COMMITTED = function() { + return this.getToken(TSqlParser.COMMITTED, 0); +}; + +Simple_idContext.prototype.COMPATIBILITY_LEVEL = function() { + return this.getToken(TSqlParser.COMPATIBILITY_LEVEL, 0); +}; + +Simple_idContext.prototype.CONCAT = function() { + return this.getToken(TSqlParser.CONCAT, 0); +}; + +Simple_idContext.prototype.CONCAT_NULL_YIELDS_NULL = function() { + return this.getToken(TSqlParser.CONCAT_NULL_YIELDS_NULL, 0); +}; + +Simple_idContext.prototype.CONTENT = function() { + return this.getToken(TSqlParser.CONTENT, 0); +}; + +Simple_idContext.prototype.CONTROL = function() { + return this.getToken(TSqlParser.CONTROL, 0); +}; + +Simple_idContext.prototype.COOKIE = function() { + return this.getToken(TSqlParser.COOKIE, 0); +}; + +Simple_idContext.prototype.COUNT = function() { + return this.getToken(TSqlParser.COUNT, 0); +}; + +Simple_idContext.prototype.COUNT_BIG = function() { + return this.getToken(TSqlParser.COUNT_BIG, 0); +}; + +Simple_idContext.prototype.COUNTER = function() { + return this.getToken(TSqlParser.COUNTER, 0); +}; + +Simple_idContext.prototype.CPU = function() { + return this.getToken(TSqlParser.CPU, 0); +}; + +Simple_idContext.prototype.CREATE_NEW = function() { + return this.getToken(TSqlParser.CREATE_NEW, 0); +}; + +Simple_idContext.prototype.CREATION_DISPOSITION = function() { + return this.getToken(TSqlParser.CREATION_DISPOSITION, 0); +}; + +Simple_idContext.prototype.CREDENTIAL = function() { + return this.getToken(TSqlParser.CREDENTIAL, 0); +}; + +Simple_idContext.prototype.CRYPTOGRAPHIC = function() { + return this.getToken(TSqlParser.CRYPTOGRAPHIC, 0); +}; + +Simple_idContext.prototype.CURSOR_CLOSE_ON_COMMIT = function() { + return this.getToken(TSqlParser.CURSOR_CLOSE_ON_COMMIT, 0); +}; + +Simple_idContext.prototype.CURSOR_DEFAULT = function() { + return this.getToken(TSqlParser.CURSOR_DEFAULT, 0); +}; + +Simple_idContext.prototype.DATA = function() { + return this.getToken(TSqlParser.DATA, 0); +}; + +Simple_idContext.prototype.DATA_COMPRESSION = function() { + return this.getToken(TSqlParser.DATA_COMPRESSION, 0); +}; + +Simple_idContext.prototype.DATE_CORRELATION_OPTIMIZATION = function() { + return this.getToken(TSqlParser.DATE_CORRELATION_OPTIMIZATION, 0); +}; + +Simple_idContext.prototype.DATEADD = function() { + return this.getToken(TSqlParser.DATEADD, 0); +}; + +Simple_idContext.prototype.DATEDIFF = function() { + return this.getToken(TSqlParser.DATEDIFF, 0); +}; + +Simple_idContext.prototype.DATENAME = function() { + return this.getToken(TSqlParser.DATENAME, 0); +}; + +Simple_idContext.prototype.DATEPART = function() { + return this.getToken(TSqlParser.DATEPART, 0); +}; + +Simple_idContext.prototype.DAYS = function() { + return this.getToken(TSqlParser.DAYS, 0); +}; + +Simple_idContext.prototype.DB_CHAINING = function() { + return this.getToken(TSqlParser.DB_CHAINING, 0); +}; + +Simple_idContext.prototype.DB_FAILOVER = function() { + return this.getToken(TSqlParser.DB_FAILOVER, 0); +}; + +Simple_idContext.prototype.DECRYPTION = function() { + return this.getToken(TSqlParser.DECRYPTION, 0); +}; + +Simple_idContext.prototype.DEFAULT_DOUBLE_QUOTE = function() { + return this.getToken(TSqlParser.DEFAULT_DOUBLE_QUOTE, 0); +}; + +Simple_idContext.prototype.DEFAULT_FULLTEXT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_FULLTEXT_LANGUAGE, 0); +}; + +Simple_idContext.prototype.DEFAULT_LANGUAGE = function() { + return this.getToken(TSqlParser.DEFAULT_LANGUAGE, 0); +}; + +Simple_idContext.prototype.DELAY = function() { + return this.getToken(TSqlParser.DELAY, 0); +}; + +Simple_idContext.prototype.DELAYED_DURABILITY = function() { + return this.getToken(TSqlParser.DELAYED_DURABILITY, 0); +}; + +Simple_idContext.prototype.DELETED = function() { + return this.getToken(TSqlParser.DELETED, 0); +}; + +Simple_idContext.prototype.DENSE_RANK = function() { + return this.getToken(TSqlParser.DENSE_RANK, 0); +}; + +Simple_idContext.prototype.DEPENDENTS = function() { + return this.getToken(TSqlParser.DEPENDENTS, 0); +}; + +Simple_idContext.prototype.DES = function() { + return this.getToken(TSqlParser.DES, 0); +}; + +Simple_idContext.prototype.DESCRIPTION = function() { + return this.getToken(TSqlParser.DESCRIPTION, 0); +}; + +Simple_idContext.prototype.DESX = function() { + return this.getToken(TSqlParser.DESX, 0); +}; + +Simple_idContext.prototype.DHCP = function() { + return this.getToken(TSqlParser.DHCP, 0); +}; + +Simple_idContext.prototype.DIALOG = function() { + return this.getToken(TSqlParser.DIALOG, 0); +}; + +Simple_idContext.prototype.DIRECTORY_NAME = function() { + return this.getToken(TSqlParser.DIRECTORY_NAME, 0); +}; + +Simple_idContext.prototype.DISABLE = function() { + return this.getToken(TSqlParser.DISABLE, 0); +}; + +Simple_idContext.prototype.DISABLE_BROKER = function() { + return this.getToken(TSqlParser.DISABLE_BROKER, 0); +}; + +Simple_idContext.prototype.DISABLED = function() { + return this.getToken(TSqlParser.DISABLED, 0); +}; + +Simple_idContext.prototype.DISK_DRIVE = function() { + return this.getToken(TSqlParser.DISK_DRIVE, 0); +}; + +Simple_idContext.prototype.DOCUMENT = function() { + return this.getToken(TSqlParser.DOCUMENT, 0); +}; + +Simple_idContext.prototype.DYNAMIC = function() { + return this.getToken(TSqlParser.DYNAMIC, 0); +}; + +Simple_idContext.prototype.EMERGENCY = function() { + return this.getToken(TSqlParser.EMERGENCY, 0); +}; + +Simple_idContext.prototype.EMPTY = function() { + return this.getToken(TSqlParser.EMPTY, 0); +}; + +Simple_idContext.prototype.ENABLE = function() { + return this.getToken(TSqlParser.ENABLE, 0); +}; + +Simple_idContext.prototype.ENABLE_BROKER = function() { + return this.getToken(TSqlParser.ENABLE_BROKER, 0); +}; + +Simple_idContext.prototype.ENCRYPTED_VALUE = function() { + return this.getToken(TSqlParser.ENCRYPTED_VALUE, 0); +}; + +Simple_idContext.prototype.ENCRYPTION = function() { + return this.getToken(TSqlParser.ENCRYPTION, 0); +}; + +Simple_idContext.prototype.ENDPOINT_URL = function() { + return this.getToken(TSqlParser.ENDPOINT_URL, 0); +}; + +Simple_idContext.prototype.ERROR_BROKER_CONVERSATIONS = function() { + return this.getToken(TSqlParser.ERROR_BROKER_CONVERSATIONS, 0); +}; + +Simple_idContext.prototype.EVENTDATA = function() { + return this.getToken(TSqlParser.EVENTDATA, 0); +}; + +Simple_idContext.prototype.EXCLUSIVE = function() { + return this.getToken(TSqlParser.EXCLUSIVE, 0); +}; + +Simple_idContext.prototype.EXECUTABLE = function() { + return this.getToken(TSqlParser.EXECUTABLE, 0); +}; + +Simple_idContext.prototype.EXIST = function() { + return this.getToken(TSqlParser.EXIST, 0); +}; + +Simple_idContext.prototype.EXPAND = function() { + return this.getToken(TSqlParser.EXPAND, 0); +}; + +Simple_idContext.prototype.EXPIRY_DATE = function() { + return this.getToken(TSqlParser.EXPIRY_DATE, 0); +}; + +Simple_idContext.prototype.EXPLICIT = function() { + return this.getToken(TSqlParser.EXPLICIT, 0); +}; + +Simple_idContext.prototype.FAIL_OPERATION = function() { + return this.getToken(TSqlParser.FAIL_OPERATION, 0); +}; + +Simple_idContext.prototype.FAILOVER_MODE = function() { + return this.getToken(TSqlParser.FAILOVER_MODE, 0); +}; + +Simple_idContext.prototype.FAILURE = function() { + return this.getToken(TSqlParser.FAILURE, 0); +}; + +Simple_idContext.prototype.FAILURE_CONDITION_LEVEL = function() { + return this.getToken(TSqlParser.FAILURE_CONDITION_LEVEL, 0); +}; + +Simple_idContext.prototype.FAST = function() { + return this.getToken(TSqlParser.FAST, 0); +}; + +Simple_idContext.prototype.FAST_FORWARD = function() { + return this.getToken(TSqlParser.FAST_FORWARD, 0); +}; + +Simple_idContext.prototype.FILEGROUP = function() { + return this.getToken(TSqlParser.FILEGROUP, 0); +}; + +Simple_idContext.prototype.FILEGROWTH = function() { + return this.getToken(TSqlParser.FILEGROWTH, 0); +}; + +Simple_idContext.prototype.FILENAME = function() { + return this.getToken(TSqlParser.FILENAME, 0); +}; + +Simple_idContext.prototype.FILEPATH = function() { + return this.getToken(TSqlParser.FILEPATH, 0); +}; + +Simple_idContext.prototype.FILESTREAM = function() { + return this.getToken(TSqlParser.FILESTREAM, 0); +}; + +Simple_idContext.prototype.FILLFACTOR = function() { + return this.getToken(TSqlParser.FILLFACTOR, 0); +}; + +Simple_idContext.prototype.FILTER = function() { + return this.getToken(TSqlParser.FILTER, 0); +}; + +Simple_idContext.prototype.FIRST = function() { + return this.getToken(TSqlParser.FIRST, 0); +}; + +Simple_idContext.prototype.FIRST_VALUE = function() { + return this.getToken(TSqlParser.FIRST_VALUE, 0); +}; + +Simple_idContext.prototype.FOLLOWING = function() { + return this.getToken(TSqlParser.FOLLOWING, 0); +}; + +Simple_idContext.prototype.FORCE = function() { + return this.getToken(TSqlParser.FORCE, 0); +}; + +Simple_idContext.prototype.FORCE_FAILOVER_ALLOW_DATA_LOSS = function() { + return this.getToken(TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS, 0); +}; + +Simple_idContext.prototype.FORCED = function() { + return this.getToken(TSqlParser.FORCED, 0); +}; + +Simple_idContext.prototype.FORCESEEK = function() { + return this.getToken(TSqlParser.FORCESEEK, 0); +}; + +Simple_idContext.prototype.FORMAT = function() { + return this.getToken(TSqlParser.FORMAT, 0); +}; + +Simple_idContext.prototype.FORWARD_ONLY = function() { + return this.getToken(TSqlParser.FORWARD_ONLY, 0); +}; + +Simple_idContext.prototype.FULLSCAN = function() { + return this.getToken(TSqlParser.FULLSCAN, 0); +}; + +Simple_idContext.prototype.FULLTEXT = function() { + return this.getToken(TSqlParser.FULLTEXT, 0); +}; + +Simple_idContext.prototype.GB = function() { + return this.getToken(TSqlParser.GB, 0); +}; + +Simple_idContext.prototype.GETDATE = function() { + return this.getToken(TSqlParser.GETDATE, 0); +}; + +Simple_idContext.prototype.GETUTCDATE = function() { + return this.getToken(TSqlParser.GETUTCDATE, 0); +}; + +Simple_idContext.prototype.GLOBAL = function() { + return this.getToken(TSqlParser.GLOBAL, 0); +}; + +Simple_idContext.prototype.GO = function() { + return this.getToken(TSqlParser.GO, 0); +}; + +Simple_idContext.prototype.GROUP_MAX_REQUESTS = function() { + return this.getToken(TSqlParser.GROUP_MAX_REQUESTS, 0); +}; + +Simple_idContext.prototype.GROUPING = function() { + return this.getToken(TSqlParser.GROUPING, 0); +}; + +Simple_idContext.prototype.GROUPING_ID = function() { + return this.getToken(TSqlParser.GROUPING_ID, 0); +}; + +Simple_idContext.prototype.HADR = function() { + return this.getToken(TSqlParser.HADR, 0); +}; + +Simple_idContext.prototype.HASH = function() { + return this.getToken(TSqlParser.HASH, 0); +}; + +Simple_idContext.prototype.HEALTH_CHECK_TIMEOUT = function() { + return this.getToken(TSqlParser.HEALTH_CHECK_TIMEOUT, 0); +}; + +Simple_idContext.prototype.HIGH = function() { + return this.getToken(TSqlParser.HIGH, 0); +}; + +Simple_idContext.prototype.HONOR_BROKER_PRIORITY = function() { + return this.getToken(TSqlParser.HONOR_BROKER_PRIORITY, 0); +}; + +Simple_idContext.prototype.HOURS = function() { + return this.getToken(TSqlParser.HOURS, 0); +}; + +Simple_idContext.prototype.IDENTITY_VALUE = function() { + return this.getToken(TSqlParser.IDENTITY_VALUE, 0); +}; + +Simple_idContext.prototype.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX = function() { + return this.getToken(TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX, 0); +}; + +Simple_idContext.prototype.IMMEDIATE = function() { + return this.getToken(TSqlParser.IMMEDIATE, 0); +}; + +Simple_idContext.prototype.IMPERSONATE = function() { + return this.getToken(TSqlParser.IMPERSONATE, 0); +}; + +Simple_idContext.prototype.IMPORTANCE = function() { + return this.getToken(TSqlParser.IMPORTANCE, 0); +}; + +Simple_idContext.prototype.INCREMENTAL = function() { + return this.getToken(TSqlParser.INCREMENTAL, 0); +}; + +Simple_idContext.prototype.INIT = function() { + return this.getToken(TSqlParser.INIT, 0); +}; + +Simple_idContext.prototype.INITIATOR = function() { + return this.getToken(TSqlParser.INITIATOR, 0); +}; + +Simple_idContext.prototype.INPUT = function() { + return this.getToken(TSqlParser.INPUT, 0); +}; + +Simple_idContext.prototype.INSENSITIVE = function() { + return this.getToken(TSqlParser.INSENSITIVE, 0); +}; + +Simple_idContext.prototype.INSERTED = function() { + return this.getToken(TSqlParser.INSERTED, 0); +}; + +Simple_idContext.prototype.INT = function() { + return this.getToken(TSqlParser.INT, 0); +}; + +Simple_idContext.prototype.IP = function() { + return this.getToken(TSqlParser.IP, 0); +}; + +Simple_idContext.prototype.ISOLATION = function() { + return this.getToken(TSqlParser.ISOLATION, 0); +}; + +Simple_idContext.prototype.KB = function() { + return this.getToken(TSqlParser.KB, 0); +}; + +Simple_idContext.prototype.KEEP = function() { + return this.getToken(TSqlParser.KEEP, 0); +}; + +Simple_idContext.prototype.KEEPFIXED = function() { + return this.getToken(TSqlParser.KEEPFIXED, 0); +}; + +Simple_idContext.prototype.KEY = function() { + return this.getToken(TSqlParser.KEY, 0); +}; + +Simple_idContext.prototype.KEY_SOURCE = function() { + return this.getToken(TSqlParser.KEY_SOURCE, 0); +}; + +Simple_idContext.prototype.KEYS = function() { + return this.getToken(TSqlParser.KEYS, 0); +}; + +Simple_idContext.prototype.KEYSET = function() { + return this.getToken(TSqlParser.KEYSET, 0); +}; + +Simple_idContext.prototype.LAG = function() { + return this.getToken(TSqlParser.LAG, 0); +}; + +Simple_idContext.prototype.LAST = function() { + return this.getToken(TSqlParser.LAST, 0); +}; + +Simple_idContext.prototype.LAST_VALUE = function() { + return this.getToken(TSqlParser.LAST_VALUE, 0); +}; + +Simple_idContext.prototype.LEAD = function() { + return this.getToken(TSqlParser.LEAD, 0); +}; + +Simple_idContext.prototype.LEVEL = function() { + return this.getToken(TSqlParser.LEVEL, 0); +}; + +Simple_idContext.prototype.LIST = function() { + return this.getToken(TSqlParser.LIST, 0); +}; + +Simple_idContext.prototype.LISTENER = function() { + return this.getToken(TSqlParser.LISTENER, 0); +}; + +Simple_idContext.prototype.LISTENER_URL = function() { + return this.getToken(TSqlParser.LISTENER_URL, 0); +}; + +Simple_idContext.prototype.LOB_COMPACTION = function() { + return this.getToken(TSqlParser.LOB_COMPACTION, 0); +}; + +Simple_idContext.prototype.LOCAL = function() { + return this.getToken(TSqlParser.LOCAL, 0); +}; + +Simple_idContext.prototype.LOCATION = function() { + return this.getToken(TSqlParser.LOCATION, 0); +}; + +Simple_idContext.prototype.LOCK = function() { + return this.getToken(TSqlParser.LOCK, 0); +}; + +Simple_idContext.prototype.LOCK_ESCALATION = function() { + return this.getToken(TSqlParser.LOCK_ESCALATION, 0); +}; + +Simple_idContext.prototype.LOGIN = function() { + return this.getToken(TSqlParser.LOGIN, 0); +}; + +Simple_idContext.prototype.LOOP = function() { + return this.getToken(TSqlParser.LOOP, 0); +}; + +Simple_idContext.prototype.LOW = function() { + return this.getToken(TSqlParser.LOW, 0); +}; + +Simple_idContext.prototype.MANUAL = function() { + return this.getToken(TSqlParser.MANUAL, 0); +}; + +Simple_idContext.prototype.MARK = function() { + return this.getToken(TSqlParser.MARK, 0); +}; + +Simple_idContext.prototype.MASTER = function() { + return this.getToken(TSqlParser.MASTER, 0); +}; + +Simple_idContext.prototype.MATERIALIZED = function() { + return this.getToken(TSqlParser.MATERIALIZED, 0); +}; + +Simple_idContext.prototype.MAX = function() { + return this.getToken(TSqlParser.MAX, 0); +}; + +Simple_idContext.prototype.MAX_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MAX_CPU_PERCENT, 0); +}; + +Simple_idContext.prototype.MAX_DOP = function() { + return this.getToken(TSqlParser.MAX_DOP, 0); +}; + +Simple_idContext.prototype.MAX_FILES = function() { + return this.getToken(TSqlParser.MAX_FILES, 0); +}; + +Simple_idContext.prototype.MAX_IOPS_PER_VOLUME = function() { + return this.getToken(TSqlParser.MAX_IOPS_PER_VOLUME, 0); +}; + +Simple_idContext.prototype.MAX_MEMORY = function() { + return this.getToken(TSqlParser.MAX_MEMORY, 0); +}; + +Simple_idContext.prototype.MAX_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MAX_MEMORY_PERCENT, 0); +}; + +Simple_idContext.prototype.MAX_PROCESSES = function() { + return this.getToken(TSqlParser.MAX_PROCESSES, 0); +}; + +Simple_idContext.prototype.MAX_QUEUE_READERS = function() { + return this.getToken(TSqlParser.MAX_QUEUE_READERS, 0); +}; + +Simple_idContext.prototype.MAX_ROLLOVER_FILES = function() { + return this.getToken(TSqlParser.MAX_ROLLOVER_FILES, 0); +}; + +Simple_idContext.prototype.MAXDOP = function() { + return this.getToken(TSqlParser.MAXDOP, 0); +}; + +Simple_idContext.prototype.MAXRECURSION = function() { + return this.getToken(TSqlParser.MAXRECURSION, 0); +}; + +Simple_idContext.prototype.MAXSIZE = function() { + return this.getToken(TSqlParser.MAXSIZE, 0); +}; + +Simple_idContext.prototype.MB = function() { + return this.getToken(TSqlParser.MB, 0); +}; + +Simple_idContext.prototype.MEDIUM = function() { + return this.getToken(TSqlParser.MEDIUM, 0); +}; + +Simple_idContext.prototype.MEMORY_OPTIMIZED_DATA = function() { + return this.getToken(TSqlParser.MEMORY_OPTIMIZED_DATA, 0); +}; + +Simple_idContext.prototype.MESSAGE = function() { + return this.getToken(TSqlParser.MESSAGE, 0); +}; + +Simple_idContext.prototype.MIN = function() { + return this.getToken(TSqlParser.MIN, 0); +}; + +Simple_idContext.prototype.MIN_ACTIVE_ROWVERSION = function() { + return this.getToken(TSqlParser.MIN_ACTIVE_ROWVERSION, 0); +}; + +Simple_idContext.prototype.MIN_CPU_PERCENT = function() { + return this.getToken(TSqlParser.MIN_CPU_PERCENT, 0); +}; + +Simple_idContext.prototype.MIN_IOPS_PER_VOLUME = function() { + return this.getToken(TSqlParser.MIN_IOPS_PER_VOLUME, 0); +}; + +Simple_idContext.prototype.MIN_MEMORY_PERCENT = function() { + return this.getToken(TSqlParser.MIN_MEMORY_PERCENT, 0); +}; + +Simple_idContext.prototype.MINUTES = function() { + return this.getToken(TSqlParser.MINUTES, 0); +}; + +Simple_idContext.prototype.MIRROR_ADDRESS = function() { + return this.getToken(TSqlParser.MIRROR_ADDRESS, 0); +}; + +Simple_idContext.prototype.MIXED_PAGE_ALLOCATION = function() { + return this.getToken(TSqlParser.MIXED_PAGE_ALLOCATION, 0); +}; + +Simple_idContext.prototype.MODE = function() { + return this.getToken(TSqlParser.MODE, 0); +}; + +Simple_idContext.prototype.MODIFY = function() { + return this.getToken(TSqlParser.MODIFY, 0); +}; + +Simple_idContext.prototype.MOVE = function() { + return this.getToken(TSqlParser.MOVE, 0); +}; + +Simple_idContext.prototype.MULTI_USER = function() { + return this.getToken(TSqlParser.MULTI_USER, 0); +}; + +Simple_idContext.prototype.NAME = function() { + return this.getToken(TSqlParser.NAME, 0); +}; + +Simple_idContext.prototype.NESTED_TRIGGERS = function() { + return this.getToken(TSqlParser.NESTED_TRIGGERS, 0); +}; + +Simple_idContext.prototype.NEW_ACCOUNT = function() { + return this.getToken(TSqlParser.NEW_ACCOUNT, 0); +}; + +Simple_idContext.prototype.NEW_BROKER = function() { + return this.getToken(TSqlParser.NEW_BROKER, 0); +}; + +Simple_idContext.prototype.NEW_PASSWORD = function() { + return this.getToken(TSqlParser.NEW_PASSWORD, 0); +}; + +Simple_idContext.prototype.NEXT = function() { + return this.getToken(TSqlParser.NEXT, 0); +}; + +Simple_idContext.prototype.NO = function() { + return this.getToken(TSqlParser.NO, 0); +}; + +Simple_idContext.prototype.NO_TRUNCATE = function() { + return this.getToken(TSqlParser.NO_TRUNCATE, 0); +}; + +Simple_idContext.prototype.NO_WAIT = function() { + return this.getToken(TSqlParser.NO_WAIT, 0); +}; + +Simple_idContext.prototype.NOCOUNT = function() { + return this.getToken(TSqlParser.NOCOUNT, 0); +}; + +Simple_idContext.prototype.NODES = function() { + return this.getToken(TSqlParser.NODES, 0); +}; + +Simple_idContext.prototype.NOEXPAND = function() { + return this.getToken(TSqlParser.NOEXPAND, 0); +}; + +Simple_idContext.prototype.NON_TRANSACTED_ACCESS = function() { + return this.getToken(TSqlParser.NON_TRANSACTED_ACCESS, 0); +}; + +Simple_idContext.prototype.NORECOMPUTE = function() { + return this.getToken(TSqlParser.NORECOMPUTE, 0); +}; + +Simple_idContext.prototype.NORECOVERY = function() { + return this.getToken(TSqlParser.NORECOVERY, 0); +}; + +Simple_idContext.prototype.NOWAIT = function() { + return this.getToken(TSqlParser.NOWAIT, 0); +}; + +Simple_idContext.prototype.NTILE = function() { + return this.getToken(TSqlParser.NTILE, 0); +}; + +Simple_idContext.prototype.NUMANODE = function() { + return this.getToken(TSqlParser.NUMANODE, 0); +}; + +Simple_idContext.prototype.NUMBER = function() { + return this.getToken(TSqlParser.NUMBER, 0); +}; + +Simple_idContext.prototype.NUMERIC_ROUNDABORT = function() { + return this.getToken(TSqlParser.NUMERIC_ROUNDABORT, 0); +}; + +Simple_idContext.prototype.OBJECT = function() { + return this.getToken(TSqlParser.OBJECT, 0); +}; + +Simple_idContext.prototype.OFFLINE = function() { + return this.getToken(TSqlParser.OFFLINE, 0); +}; + +Simple_idContext.prototype.OFFSET = function() { + return this.getToken(TSqlParser.OFFSET, 0); +}; + +Simple_idContext.prototype.OFFSETS = function() { + return this.getToken(TSqlParser.OFFSETS, 0); +}; + +Simple_idContext.prototype.OLD_ACCOUNT = function() { + return this.getToken(TSqlParser.OLD_ACCOUNT, 0); +}; + +Simple_idContext.prototype.ONLINE = function() { + return this.getToken(TSqlParser.ONLINE, 0); +}; + +Simple_idContext.prototype.ONLY = function() { + return this.getToken(TSqlParser.ONLY, 0); +}; + +Simple_idContext.prototype.OPEN_EXISTING = function() { + return this.getToken(TSqlParser.OPEN_EXISTING, 0); +}; + +Simple_idContext.prototype.OPTIMISTIC = function() { + return this.getToken(TSqlParser.OPTIMISTIC, 0); +}; + +Simple_idContext.prototype.OPTIMIZE = function() { + return this.getToken(TSqlParser.OPTIMIZE, 0); +}; + +Simple_idContext.prototype.OUT = function() { + return this.getToken(TSqlParser.OUT, 0); +}; + +Simple_idContext.prototype.OUTPUT = function() { + return this.getToken(TSqlParser.OUTPUT, 0); +}; + +Simple_idContext.prototype.OWNER = function() { + return this.getToken(TSqlParser.OWNER, 0); +}; + +Simple_idContext.prototype.PAGE = function() { + return this.getToken(TSqlParser.PAGE, 0); +}; + +Simple_idContext.prototype.PAGE_VERIFY = function() { + return this.getToken(TSqlParser.PAGE_VERIFY, 0); +}; + +Simple_idContext.prototype.PARAMETERIZATION = function() { + return this.getToken(TSqlParser.PARAMETERIZATION, 0); +}; + +Simple_idContext.prototype.PARTITION = function() { + return this.getToken(TSqlParser.PARTITION, 0); +}; + +Simple_idContext.prototype.PARTITIONS = function() { + return this.getToken(TSqlParser.PARTITIONS, 0); +}; + +Simple_idContext.prototype.PARTNER = function() { + return this.getToken(TSqlParser.PARTNER, 0); +}; + +Simple_idContext.prototype.PATH = function() { + return this.getToken(TSqlParser.PATH, 0); +}; + +Simple_idContext.prototype.POISON_MESSAGE_HANDLING = function() { + return this.getToken(TSqlParser.POISON_MESSAGE_HANDLING, 0); +}; + +Simple_idContext.prototype.POOL = function() { + return this.getToken(TSqlParser.POOL, 0); +}; + +Simple_idContext.prototype.PORT = function() { + return this.getToken(TSqlParser.PORT, 0); +}; + +Simple_idContext.prototype.PRECEDING = function() { + return this.getToken(TSqlParser.PRECEDING, 0); +}; + +Simple_idContext.prototype.PRIMARY_ROLE = function() { + return this.getToken(TSqlParser.PRIMARY_ROLE, 0); +}; + +Simple_idContext.prototype.PRIOR = function() { + return this.getToken(TSqlParser.PRIOR, 0); +}; + +Simple_idContext.prototype.PRIORITY = function() { + return this.getToken(TSqlParser.PRIORITY, 0); +}; + +Simple_idContext.prototype.PRIORITY_LEVEL = function() { + return this.getToken(TSqlParser.PRIORITY_LEVEL, 0); +}; + +Simple_idContext.prototype.PRIVATE = function() { + return this.getToken(TSqlParser.PRIVATE, 0); +}; + +Simple_idContext.prototype.PRIVATE_KEY = function() { + return this.getToken(TSqlParser.PRIVATE_KEY, 0); +}; + +Simple_idContext.prototype.PRIVILEGES = function() { + return this.getToken(TSqlParser.PRIVILEGES, 0); +}; + +Simple_idContext.prototype.PROCEDURE_NAME = function() { + return this.getToken(TSqlParser.PROCEDURE_NAME, 0); +}; + +Simple_idContext.prototype.PROPERTY = function() { + return this.getToken(TSqlParser.PROPERTY, 0); +}; + +Simple_idContext.prototype.PROVIDER = function() { + return this.getToken(TSqlParser.PROVIDER, 0); +}; + +Simple_idContext.prototype.PROVIDER_KEY_NAME = function() { + return this.getToken(TSqlParser.PROVIDER_KEY_NAME, 0); +}; + +Simple_idContext.prototype.PUBLIC = function() { + return this.getToken(TSqlParser.PUBLIC, 0); +}; + +Simple_idContext.prototype.QUERY = function() { + return this.getToken(TSqlParser.QUERY, 0); +}; + +Simple_idContext.prototype.QUEUE = function() { + return this.getToken(TSqlParser.QUEUE, 0); +}; + +Simple_idContext.prototype.QUEUE_DELAY = function() { + return this.getToken(TSqlParser.QUEUE_DELAY, 0); +}; + +Simple_idContext.prototype.QUOTED_IDENTIFIER = function() { + return this.getToken(TSqlParser.QUOTED_IDENTIFIER, 0); +}; + +Simple_idContext.prototype.R = function() { + return this.getToken(TSqlParser.R, 0); +}; + +Simple_idContext.prototype.RANGE = function() { + return this.getToken(TSqlParser.RANGE, 0); +}; + +Simple_idContext.prototype.RANK = function() { + return this.getToken(TSqlParser.RANK, 0); +}; + +Simple_idContext.prototype.RAW = function() { + return this.getToken(TSqlParser.RAW, 0); +}; + +Simple_idContext.prototype.RC2 = function() { + return this.getToken(TSqlParser.RC2, 0); +}; + +Simple_idContext.prototype.RC4 = function() { + return this.getToken(TSqlParser.RC4, 0); +}; + +Simple_idContext.prototype.RC4_128 = function() { + return this.getToken(TSqlParser.RC4_128, 0); +}; + +Simple_idContext.prototype.READ_COMMITTED_SNAPSHOT = function() { + return this.getToken(TSqlParser.READ_COMMITTED_SNAPSHOT, 0); +}; + +Simple_idContext.prototype.READ_ONLY = function() { + return this.getToken(TSqlParser.READ_ONLY, 0); +}; + +Simple_idContext.prototype.READ_ONLY_ROUTING_LIST = function() { + return this.getToken(TSqlParser.READ_ONLY_ROUTING_LIST, 0); +}; + +Simple_idContext.prototype.READ_WRITE = function() { + return this.getToken(TSqlParser.READ_WRITE, 0); +}; + +Simple_idContext.prototype.READONLY = function() { + return this.getToken(TSqlParser.READONLY, 0); +}; + +Simple_idContext.prototype.REBUILD = function() { + return this.getToken(TSqlParser.REBUILD, 0); +}; + +Simple_idContext.prototype.RECEIVE = function() { + return this.getToken(TSqlParser.RECEIVE, 0); +}; + +Simple_idContext.prototype.RECOMPILE = function() { + return this.getToken(TSqlParser.RECOMPILE, 0); +}; + +Simple_idContext.prototype.RECOVERY = function() { + return this.getToken(TSqlParser.RECOVERY, 0); +}; + +Simple_idContext.prototype.RECURSIVE_TRIGGERS = function() { + return this.getToken(TSqlParser.RECURSIVE_TRIGGERS, 0); +}; + +Simple_idContext.prototype.RELATIVE = function() { + return this.getToken(TSqlParser.RELATIVE, 0); +}; + +Simple_idContext.prototype.REMOTE = function() { + return this.getToken(TSqlParser.REMOTE, 0); +}; + +Simple_idContext.prototype.REMOTE_SERVICE_NAME = function() { + return this.getToken(TSqlParser.REMOTE_SERVICE_NAME, 0); +}; + +Simple_idContext.prototype.REMOVE = function() { + return this.getToken(TSqlParser.REMOVE, 0); +}; + +Simple_idContext.prototype.REORGANIZE = function() { + return this.getToken(TSqlParser.REORGANIZE, 0); +}; + +Simple_idContext.prototype.REPEATABLE = function() { + return this.getToken(TSqlParser.REPEATABLE, 0); +}; + +Simple_idContext.prototype.REPLICA = function() { + return this.getToken(TSqlParser.REPLICA, 0); +}; + +Simple_idContext.prototype.REQUEST_MAX_CPU_TIME_SEC = function() { + return this.getToken(TSqlParser.REQUEST_MAX_CPU_TIME_SEC, 0); +}; + +Simple_idContext.prototype.REQUEST_MAX_MEMORY_GRANT_PERCENT = function() { + return this.getToken(TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT, 0); +}; + +Simple_idContext.prototype.REQUEST_MEMORY_GRANT_TIMEOUT_SEC = function() { + return this.getToken(TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC, 0); +}; + +Simple_idContext.prototype.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = function() { + return this.getToken(TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT, 0); +}; + +Simple_idContext.prototype.RESERVE_DISK_SPACE = function() { + return this.getToken(TSqlParser.RESERVE_DISK_SPACE, 0); +}; + +Simple_idContext.prototype.RESOURCE = function() { + return this.getToken(TSqlParser.RESOURCE, 0); +}; + +Simple_idContext.prototype.RESOURCE_MANAGER_LOCATION = function() { + return this.getToken(TSqlParser.RESOURCE_MANAGER_LOCATION, 0); +}; + +Simple_idContext.prototype.RESTRICTED_USER = function() { + return this.getToken(TSqlParser.RESTRICTED_USER, 0); +}; + +Simple_idContext.prototype.RETENTION = function() { + return this.getToken(TSqlParser.RETENTION, 0); +}; + +Simple_idContext.prototype.RETURN = function() { + return this.getToken(TSqlParser.RETURN, 0); +}; + +Simple_idContext.prototype.RETURNS = function() { + return this.getToken(TSqlParser.RETURNS, 0); +}; + +Simple_idContext.prototype.ROBUST = function() { + return this.getToken(TSqlParser.ROBUST, 0); +}; + +Simple_idContext.prototype.ROOT = function() { + return this.getToken(TSqlParser.ROOT, 0); +}; + +Simple_idContext.prototype.ROUTE = function() { + return this.getToken(TSqlParser.ROUTE, 0); +}; + +Simple_idContext.prototype.ROW = function() { + return this.getToken(TSqlParser.ROW, 0); +}; + +Simple_idContext.prototype.ROW_NUMBER = function() { + return this.getToken(TSqlParser.ROW_NUMBER, 0); +}; + +Simple_idContext.prototype.ROWCOUNT = function() { + return this.getToken(TSqlParser.ROWCOUNT, 0); +}; + +Simple_idContext.prototype.ROWGUID = function() { + return this.getToken(TSqlParser.ROWGUID, 0); +}; + +Simple_idContext.prototype.ROWS = function() { + return this.getToken(TSqlParser.ROWS, 0); +}; + +Simple_idContext.prototype.SAFETY = function() { + return this.getToken(TSqlParser.SAFETY, 0); +}; + +Simple_idContext.prototype.SAMPLE = function() { + return this.getToken(TSqlParser.SAMPLE, 0); +}; + +Simple_idContext.prototype.SCHEMABINDING = function() { + return this.getToken(TSqlParser.SCHEMABINDING, 0); +}; + +Simple_idContext.prototype.SCOPED = function() { + return this.getToken(TSqlParser.SCOPED, 0); +}; + +Simple_idContext.prototype.SCROLL = function() { + return this.getToken(TSqlParser.SCROLL, 0); +}; + +Simple_idContext.prototype.SCROLL_LOCKS = function() { + return this.getToken(TSqlParser.SCROLL_LOCKS, 0); +}; + +Simple_idContext.prototype.SEARCH = function() { + return this.getToken(TSqlParser.SEARCH, 0); +}; + +Simple_idContext.prototype.SECONDARY = function() { + return this.getToken(TSqlParser.SECONDARY, 0); +}; + +Simple_idContext.prototype.SECONDARY_ONLY = function() { + return this.getToken(TSqlParser.SECONDARY_ONLY, 0); +}; + +Simple_idContext.prototype.SECONDARY_ROLE = function() { + return this.getToken(TSqlParser.SECONDARY_ROLE, 0); +}; + +Simple_idContext.prototype.SECONDS = function() { + return this.getToken(TSqlParser.SECONDS, 0); +}; + +Simple_idContext.prototype.SECRET = function() { + return this.getToken(TSqlParser.SECRET, 0); +}; + +Simple_idContext.prototype.SECURITY = function() { + return this.getToken(TSqlParser.SECURITY, 0); +}; + +Simple_idContext.prototype.SECURITY_LOG = function() { + return this.getToken(TSqlParser.SECURITY_LOG, 0); +}; + +Simple_idContext.prototype.SEEDING_MODE = function() { + return this.getToken(TSqlParser.SEEDING_MODE, 0); +}; + +Simple_idContext.prototype.SELF = function() { + return this.getToken(TSqlParser.SELF, 0); +}; + +Simple_idContext.prototype.SEMI_SENSITIVE = function() { + return this.getToken(TSqlParser.SEMI_SENSITIVE, 0); +}; + +Simple_idContext.prototype.SEND = function() { + return this.getToken(TSqlParser.SEND, 0); +}; + +Simple_idContext.prototype.SENT = function() { + return this.getToken(TSqlParser.SENT, 0); +}; + +Simple_idContext.prototype.SEQUENCE = function() { + return this.getToken(TSqlParser.SEQUENCE, 0); +}; + +Simple_idContext.prototype.SERIALIZABLE = function() { + return this.getToken(TSqlParser.SERIALIZABLE, 0); +}; + +Simple_idContext.prototype.SERVER = function() { + return this.getToken(TSqlParser.SERVER, 0); +}; + +Simple_idContext.prototype.SESSION_TIMEOUT = function() { + return this.getToken(TSqlParser.SESSION_TIMEOUT, 0); +}; + +Simple_idContext.prototype.SETERROR = function() { + return this.getToken(TSqlParser.SETERROR, 0); +}; + +Simple_idContext.prototype.SHARE = function() { + return this.getToken(TSqlParser.SHARE, 0); +}; + +Simple_idContext.prototype.SHOWPLAN = function() { + return this.getToken(TSqlParser.SHOWPLAN, 0); +}; + +Simple_idContext.prototype.SID = function() { + return this.getToken(TSqlParser.SID, 0); +}; + +Simple_idContext.prototype.SIGNATURE = function() { + return this.getToken(TSqlParser.SIGNATURE, 0); +}; + +Simple_idContext.prototype.SIMPLE = function() { + return this.getToken(TSqlParser.SIMPLE, 0); +}; + +Simple_idContext.prototype.SINGLE_USER = function() { + return this.getToken(TSqlParser.SINGLE_USER, 0); +}; + +Simple_idContext.prototype.SIZE = function() { + return this.getToken(TSqlParser.SIZE, 0); +}; + +Simple_idContext.prototype.SMALLINT = function() { + return this.getToken(TSqlParser.SMALLINT, 0); +}; + +Simple_idContext.prototype.SNAPSHOT = function() { + return this.getToken(TSqlParser.SNAPSHOT, 0); +}; + +Simple_idContext.prototype.SOURCE = function() { + return this.getToken(TSqlParser.SOURCE, 0); +}; + +Simple_idContext.prototype.SPATIAL_WINDOW_MAX_CELLS = function() { + return this.getToken(TSqlParser.SPATIAL_WINDOW_MAX_CELLS, 0); +}; + +Simple_idContext.prototype.SPLIT = function() { + return this.getToken(TSqlParser.SPLIT, 0); +}; + +Simple_idContext.prototype.STANDBY = function() { + return this.getToken(TSqlParser.STANDBY, 0); +}; + +Simple_idContext.prototype.START = function() { + return this.getToken(TSqlParser.START, 0); +}; + +Simple_idContext.prototype.START_DATE = function() { + return this.getToken(TSqlParser.START_DATE, 0); +}; + +Simple_idContext.prototype.STATE = function() { + return this.getToken(TSqlParser.STATE, 0); +}; + +Simple_idContext.prototype.STATIC = function() { + return this.getToken(TSqlParser.STATIC, 0); +}; + +Simple_idContext.prototype.STATS_STREAM = function() { + return this.getToken(TSqlParser.STATS_STREAM, 0); +}; + +Simple_idContext.prototype.STATUS = function() { + return this.getToken(TSqlParser.STATUS, 0); +}; + +Simple_idContext.prototype.STDEV = function() { + return this.getToken(TSqlParser.STDEV, 0); +}; + +Simple_idContext.prototype.STDEVP = function() { + return this.getToken(TSqlParser.STDEVP, 0); +}; + +Simple_idContext.prototype.STOPLIST = function() { + return this.getToken(TSqlParser.STOPLIST, 0); +}; + +Simple_idContext.prototype.STRING_AGG = function() { + return this.getToken(TSqlParser.STRING_AGG, 0); +}; + +Simple_idContext.prototype.STUFF = function() { + return this.getToken(TSqlParser.STUFF, 0); +}; + +Simple_idContext.prototype.SUBJECT = function() { + return this.getToken(TSqlParser.SUBJECT, 0); +}; + +Simple_idContext.prototype.SUM = function() { + return this.getToken(TSqlParser.SUM, 0); +}; + +Simple_idContext.prototype.SUSPEND = function() { + return this.getToken(TSqlParser.SUSPEND, 0); +}; + +Simple_idContext.prototype.SYMMETRIC = function() { + return this.getToken(TSqlParser.SYMMETRIC, 0); +}; + +Simple_idContext.prototype.SYNCHRONOUS_COMMIT = function() { + return this.getToken(TSqlParser.SYNCHRONOUS_COMMIT, 0); +}; + +Simple_idContext.prototype.SYNONYM = function() { + return this.getToken(TSqlParser.SYNONYM, 0); +}; + +Simple_idContext.prototype.SYSTEM = function() { + return this.getToken(TSqlParser.SYSTEM, 0); +}; + +Simple_idContext.prototype.TAKE = function() { + return this.getToken(TSqlParser.TAKE, 0); +}; + +Simple_idContext.prototype.TARGET = function() { + return this.getToken(TSqlParser.TARGET, 0); +}; + +Simple_idContext.prototype.TARGET_RECOVERY_TIME = function() { + return this.getToken(TSqlParser.TARGET_RECOVERY_TIME, 0); +}; + +Simple_idContext.prototype.TB = function() { + return this.getToken(TSqlParser.TB, 0); +}; + +Simple_idContext.prototype.TEXTIMAGE_ON = function() { + return this.getToken(TSqlParser.TEXTIMAGE_ON, 0); +}; + +Simple_idContext.prototype.THROW = function() { + return this.getToken(TSqlParser.THROW, 0); +}; + +Simple_idContext.prototype.TIES = function() { + return this.getToken(TSqlParser.TIES, 0); +}; + +Simple_idContext.prototype.TIME = function() { + return this.getToken(TSqlParser.TIME, 0); +}; + +Simple_idContext.prototype.TIMEOUT = function() { + return this.getToken(TSqlParser.TIMEOUT, 0); +}; + +Simple_idContext.prototype.TIMER = function() { + return this.getToken(TSqlParser.TIMER, 0); +}; + +Simple_idContext.prototype.TINYINT = function() { + return this.getToken(TSqlParser.TINYINT, 0); +}; + +Simple_idContext.prototype.TORN_PAGE_DETECTION = function() { + return this.getToken(TSqlParser.TORN_PAGE_DETECTION, 0); +}; + +Simple_idContext.prototype.TRANSFORM_NOISE_WORDS = function() { + return this.getToken(TSqlParser.TRANSFORM_NOISE_WORDS, 0); +}; + +Simple_idContext.prototype.TRIPLE_DES = function() { + return this.getToken(TSqlParser.TRIPLE_DES, 0); +}; + +Simple_idContext.prototype.TRIPLE_DES_3KEY = function() { + return this.getToken(TSqlParser.TRIPLE_DES_3KEY, 0); +}; + +Simple_idContext.prototype.TRUSTWORTHY = function() { + return this.getToken(TSqlParser.TRUSTWORTHY, 0); +}; + +Simple_idContext.prototype.TRY = function() { + return this.getToken(TSqlParser.TRY, 0); +}; + +Simple_idContext.prototype.TSQL = function() { + return this.getToken(TSqlParser.TSQL, 0); +}; + +Simple_idContext.prototype.TWO_DIGIT_YEAR_CUTOFF = function() { + return this.getToken(TSqlParser.TWO_DIGIT_YEAR_CUTOFF, 0); +}; + +Simple_idContext.prototype.TYPE = function() { + return this.getToken(TSqlParser.TYPE, 0); +}; + +Simple_idContext.prototype.TYPE_WARNING = function() { + return this.getToken(TSqlParser.TYPE_WARNING, 0); +}; + +Simple_idContext.prototype.UNBOUNDED = function() { + return this.getToken(TSqlParser.UNBOUNDED, 0); +}; + +Simple_idContext.prototype.UNCOMMITTED = function() { + return this.getToken(TSqlParser.UNCOMMITTED, 0); +}; + +Simple_idContext.prototype.UNKNOWN = function() { + return this.getToken(TSqlParser.UNKNOWN, 0); +}; + +Simple_idContext.prototype.UNLIMITED = function() { + return this.getToken(TSqlParser.UNLIMITED, 0); +}; + +Simple_idContext.prototype.USING = function() { + return this.getToken(TSqlParser.USING, 0); +}; + +Simple_idContext.prototype.VALID_XML = function() { + return this.getToken(TSqlParser.VALID_XML, 0); +}; + +Simple_idContext.prototype.VALIDATION = function() { + return this.getToken(TSqlParser.VALIDATION, 0); +}; + +Simple_idContext.prototype.VALUE = function() { + return this.getToken(TSqlParser.VALUE, 0); +}; + +Simple_idContext.prototype.VAR = function() { + return this.getToken(TSqlParser.VAR, 0); +}; + +Simple_idContext.prototype.VARP = function() { + return this.getToken(TSqlParser.VARP, 0); +}; + +Simple_idContext.prototype.VIEW_METADATA = function() { + return this.getToken(TSqlParser.VIEW_METADATA, 0); +}; + +Simple_idContext.prototype.VIEWS = function() { + return this.getToken(TSqlParser.VIEWS, 0); +}; + +Simple_idContext.prototype.WAIT = function() { + return this.getToken(TSqlParser.WAIT, 0); +}; + +Simple_idContext.prototype.WELL_FORMED_XML = function() { + return this.getToken(TSqlParser.WELL_FORMED_XML, 0); +}; + +Simple_idContext.prototype.WORK = function() { + return this.getToken(TSqlParser.WORK, 0); +}; + +Simple_idContext.prototype.WORKLOAD = function() { + return this.getToken(TSqlParser.WORKLOAD, 0); +}; + +Simple_idContext.prototype.XML = function() { + return this.getToken(TSqlParser.XML, 0); +}; + +Simple_idContext.prototype.XMLNAMESPACES = function() { + return this.getToken(TSqlParser.XMLNAMESPACES, 0); +}; + +Simple_idContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterSimple_id(this); + } +}; + +Simple_idContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitSimple_id(this); + } +}; + +Simple_idContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitSimple_id(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Simple_idContext = Simple_idContext; + +TSqlParser.prototype.simple_id = function() { + + var localctx = new Simple_idContext(this, this._ctx, this.state); + this.enterRule(localctx, 966, TSqlParser.RULE_simple_id); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10732; + _la = this._input.LA(1); + if(!(_la===TSqlParser.CALLED || _la===TSqlParser.DATA_COMPRESSION || ((((_la - 112)) & ~0x1f) == 0 && ((1 << (_la - 112)) & ((1 << (TSqlParser.EVENTDATA - 112)) | (1 << (TSqlParser.FILENAME - 112)) | (1 << (TSqlParser.FILLFACTOR - 112)) | (1 << (TSqlParser.FORCESEEK - 112)))) !== 0) || ((((_la - 158)) & ~0x1f) == 0 && ((1 << (_la - 158)) & ((1 << (TSqlParser.INIT - 158)) | (1 << (TSqlParser.KEY - 158)) | (1 << (TSqlParser.MASTER - 158)) | (1 << (TSqlParser.MAX_MEMORY - 158)))) !== 0) || _la===TSqlParser.OFFSETS || _la===TSqlParser.PAGE || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (TSqlParser.PUBLIC - 259)) | (1 << (TSqlParser.R - 259)) | (1 << (TSqlParser.RAW - 259)) | (1 << (TSqlParser.RETURN - 259)) | (1 << (TSqlParser.RETURNS - 259)) | (1 << (TSqlParser.ROWCOUNT - 259)))) !== 0) || ((((_la - 295)) & ~0x1f) == 0 && ((1 << (_la - 295)) & ((1 << (TSqlParser.SAFETY - 295)) | (1 << (TSqlParser.SERVER - 295)) | (1 << (TSqlParser.SID - 295)) | (1 << (TSqlParser.SOURCE - 295)) | (1 << (TSqlParser.SPLIT - 295)))) !== 0) || ((((_la - 327)) & ~0x1f) == 0 && ((1 << (_la - 327)) & ((1 << (TSqlParser.STATE - 327)) | (1 << (TSqlParser.START - 327)) | (1 << (TSqlParser.TARGET - 327)))) !== 0) || ((((_la - 380)) & ~0x1f) == 0 && ((1 << (_la - 380)) & ((1 << (TSqlParser.ABSOLUTE - 380)) | (1 << (TSqlParser.ACCENT_SENSITIVITY - 380)) | (1 << (TSqlParser.ACTION - 380)) | (1 << (TSqlParser.ACTIVATION - 380)) | (1 << (TSqlParser.ACTIVE - 380)) | (1 << (TSqlParser.ADDRESS - 380)) | (1 << (TSqlParser.AES_128 - 380)) | (1 << (TSqlParser.AES_192 - 380)) | (1 << (TSqlParser.AES_256 - 380)) | (1 << (TSqlParser.AFFINITY - 380)) | (1 << (TSqlParser.AFTER - 380)) | (1 << (TSqlParser.AGGREGATE - 380)) | (1 << (TSqlParser.ALGORITHM - 380)) | (1 << (TSqlParser.ALLOW_ENCRYPTED_VALUE_MODIFICATIONS - 380)) | (1 << (TSqlParser.ALLOW_SNAPSHOT_ISOLATION - 380)) | (1 << (TSqlParser.ALLOWED - 380)) | (1 << (TSqlParser.ANSI_NULL_DEFAULT - 380)) | (1 << (TSqlParser.ANSI_NULLS - 380)) | (1 << (TSqlParser.ANSI_PADDING - 380)) | (1 << (TSqlParser.ANSI_WARNINGS - 380)) | (1 << (TSqlParser.APPLICATION_LOG - 380)) | (1 << (TSqlParser.APPLY - 380)) | (1 << (TSqlParser.ARITHABORT - 380)) | (1 << (TSqlParser.ASSEMBLY - 380)) | (1 << (TSqlParser.AUDIT - 380)) | (1 << (TSqlParser.AUDIT_GUID - 380)) | (1 << (TSqlParser.AUTO - 380)) | (1 << (TSqlParser.AUTO_CLEANUP - 380)) | (1 << (TSqlParser.AUTO_CLOSE - 380)) | (1 << (TSqlParser.AUTO_CREATE_STATISTICS - 380)) | (1 << (TSqlParser.AUTO_SHRINK - 380)) | (1 << (TSqlParser.AUTO_UPDATE_STATISTICS - 380)))) !== 0) || ((((_la - 412)) & ~0x1f) == 0 && ((1 << (_la - 412)) & ((1 << (TSqlParser.AUTO_UPDATE_STATISTICS_ASYNC - 412)) | (1 << (TSqlParser.AVAILABILITY - 412)) | (1 << (TSqlParser.AVG - 412)) | (1 << (TSqlParser.BACKUP_PRIORITY - 412)) | (1 << (TSqlParser.BEGIN_DIALOG - 412)) | (1 << (TSqlParser.BIGINT - 412)) | (1 << (TSqlParser.BINARY_BASE64 - 412)) | (1 << (TSqlParser.BINARY_CHECKSUM - 412)) | (1 << (TSqlParser.BINDING - 412)) | (1 << (TSqlParser.BLOB_STORAGE - 412)) | (1 << (TSqlParser.BROKER - 412)) | (1 << (TSqlParser.BROKER_INSTANCE - 412)) | (1 << (TSqlParser.BULK_LOGGED - 412)) | (1 << (TSqlParser.CALLER - 412)) | (1 << (TSqlParser.CAP_CPU_PERCENT - 412)) | (1 << (TSqlParser.CAST - 412)) | (1 << (TSqlParser.CATALOG - 412)) | (1 << (TSqlParser.CATCH - 412)) | (1 << (TSqlParser.CHANGE_RETENTION - 412)) | (1 << (TSqlParser.CHANGE_TRACKING - 412)) | (1 << (TSqlParser.CHECKSUM - 412)) | (1 << (TSqlParser.CHECKSUM_AGG - 412)) | (1 << (TSqlParser.CLEANUP - 412)) | (1 << (TSqlParser.COLLECTION - 412)) | (1 << (TSqlParser.COLUMN_MASTER_KEY - 412)) | (1 << (TSqlParser.COMMITTED - 412)) | (1 << (TSqlParser.COMPATIBILITY_LEVEL - 412)) | (1 << (TSqlParser.CONCAT - 412)) | (1 << (TSqlParser.CONCAT_NULL_YIELDS_NULL - 412)) | (1 << (TSqlParser.CONTENT - 412)) | (1 << (TSqlParser.CONTROL - 412)) | (1 << (TSqlParser.COOKIE - 412)))) !== 0) || ((((_la - 444)) & ~0x1f) == 0 && ((1 << (_la - 444)) & ((1 << (TSqlParser.COUNT - 444)) | (1 << (TSqlParser.COUNT_BIG - 444)) | (1 << (TSqlParser.COUNTER - 444)) | (1 << (TSqlParser.CPU - 444)) | (1 << (TSqlParser.CREATE_NEW - 444)) | (1 << (TSqlParser.CREATION_DISPOSITION - 444)) | (1 << (TSqlParser.CREDENTIAL - 444)) | (1 << (TSqlParser.CRYPTOGRAPHIC - 444)) | (1 << (TSqlParser.CURSOR_CLOSE_ON_COMMIT - 444)) | (1 << (TSqlParser.CURSOR_DEFAULT - 444)) | (1 << (TSqlParser.DATA - 444)) | (1 << (TSqlParser.DATE_CORRELATION_OPTIMIZATION - 444)) | (1 << (TSqlParser.DATEADD - 444)) | (1 << (TSqlParser.DATEDIFF - 444)) | (1 << (TSqlParser.DATENAME - 444)) | (1 << (TSqlParser.DATEPART - 444)) | (1 << (TSqlParser.DAYS - 444)) | (1 << (TSqlParser.DB_CHAINING - 444)) | (1 << (TSqlParser.DB_FAILOVER - 444)) | (1 << (TSqlParser.DECRYPTION - 444)) | (1 << (TSqlParser.DEFAULT_DOUBLE_QUOTE - 444)) | (1 << (TSqlParser.DEFAULT_FULLTEXT_LANGUAGE - 444)) | (1 << (TSqlParser.DEFAULT_LANGUAGE - 444)) | (1 << (TSqlParser.DELAY - 444)) | (1 << (TSqlParser.DELAYED_DURABILITY - 444)) | (1 << (TSqlParser.DELETED - 444)) | (1 << (TSqlParser.DENSE_RANK - 444)) | (1 << (TSqlParser.DEPENDENTS - 444)) | (1 << (TSqlParser.DES - 444)) | (1 << (TSqlParser.DESCRIPTION - 444)) | (1 << (TSqlParser.DESX - 444)) | (1 << (TSqlParser.DHCP - 444)))) !== 0) || ((((_la - 476)) & ~0x1f) == 0 && ((1 << (_la - 476)) & ((1 << (TSqlParser.DIALOG - 476)) | (1 << (TSqlParser.DIRECTORY_NAME - 476)) | (1 << (TSqlParser.DISABLE - 476)) | (1 << (TSqlParser.DISABLE_BROKER - 476)) | (1 << (TSqlParser.DISABLED - 476)) | (1 << (TSqlParser.DISK_DRIVE - 476)) | (1 << (TSqlParser.DOCUMENT - 476)) | (1 << (TSqlParser.DYNAMIC - 476)) | (1 << (TSqlParser.EMERGENCY - 476)) | (1 << (TSqlParser.EMPTY - 476)) | (1 << (TSqlParser.ENABLE - 476)) | (1 << (TSqlParser.ENABLE_BROKER - 476)) | (1 << (TSqlParser.ENCRYPTED_VALUE - 476)) | (1 << (TSqlParser.ENCRYPTION - 476)) | (1 << (TSqlParser.ENDPOINT_URL - 476)) | (1 << (TSqlParser.ERROR_BROKER_CONVERSATIONS - 476)) | (1 << (TSqlParser.EXCLUSIVE - 476)) | (1 << (TSqlParser.EXECUTABLE - 476)) | (1 << (TSqlParser.EXIST - 476)) | (1 << (TSqlParser.EXPAND - 476)) | (1 << (TSqlParser.EXPIRY_DATE - 476)) | (1 << (TSqlParser.EXPLICIT - 476)) | (1 << (TSqlParser.FAIL_OPERATION - 476)) | (1 << (TSqlParser.FAILOVER_MODE - 476)) | (1 << (TSqlParser.FAILURE - 476)) | (1 << (TSqlParser.FAILURE_CONDITION_LEVEL - 476)) | (1 << (TSqlParser.FAST - 476)) | (1 << (TSqlParser.FAST_FORWARD - 476)) | (1 << (TSqlParser.FILEGROUP - 476)) | (1 << (TSqlParser.FILEGROWTH - 476)) | (1 << (TSqlParser.FILEPATH - 476)))) !== 0) || ((((_la - 508)) & ~0x1f) == 0 && ((1 << (_la - 508)) & ((1 << (TSqlParser.FILESTREAM - 508)) | (1 << (TSqlParser.FILTER - 508)) | (1 << (TSqlParser.FIRST - 508)) | (1 << (TSqlParser.FIRST_VALUE - 508)) | (1 << (TSqlParser.FOLLOWING - 508)) | (1 << (TSqlParser.FORCE - 508)) | (1 << (TSqlParser.FORCE_FAILOVER_ALLOW_DATA_LOSS - 508)) | (1 << (TSqlParser.FORCED - 508)) | (1 << (TSqlParser.FORMAT - 508)) | (1 << (TSqlParser.FORWARD_ONLY - 508)) | (1 << (TSqlParser.FULLSCAN - 508)) | (1 << (TSqlParser.FULLTEXT - 508)) | (1 << (TSqlParser.GB - 508)) | (1 << (TSqlParser.GETDATE - 508)) | (1 << (TSqlParser.GETUTCDATE - 508)) | (1 << (TSqlParser.GLOBAL - 508)) | (1 << (TSqlParser.GO - 508)) | (1 << (TSqlParser.GROUP_MAX_REQUESTS - 508)) | (1 << (TSqlParser.GROUPING - 508)) | (1 << (TSqlParser.GROUPING_ID - 508)) | (1 << (TSqlParser.HADR - 508)) | (1 << (TSqlParser.HASH - 508)) | (1 << (TSqlParser.HEALTH_CHECK_TIMEOUT - 508)) | (1 << (TSqlParser.HIGH - 508)) | (1 << (TSqlParser.HONOR_BROKER_PRIORITY - 508)) | (1 << (TSqlParser.HOURS - 508)) | (1 << (TSqlParser.IDENTITY_VALUE - 508)) | (1 << (TSqlParser.IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX - 508)) | (1 << (TSqlParser.IMMEDIATE - 508)) | (1 << (TSqlParser.IMPERSONATE - 508)) | (1 << (TSqlParser.IMPORTANCE - 508)))) !== 0) || ((((_la - 540)) & ~0x1f) == 0 && ((1 << (_la - 540)) & ((1 << (TSqlParser.INCREMENTAL - 540)) | (1 << (TSqlParser.INITIATOR - 540)) | (1 << (TSqlParser.INPUT - 540)) | (1 << (TSqlParser.INSENSITIVE - 540)) | (1 << (TSqlParser.INSERTED - 540)) | (1 << (TSqlParser.INT - 540)) | (1 << (TSqlParser.IP - 540)) | (1 << (TSqlParser.ISOLATION - 540)) | (1 << (TSqlParser.KB - 540)) | (1 << (TSqlParser.KEEP - 540)) | (1 << (TSqlParser.KEEPFIXED - 540)) | (1 << (TSqlParser.KEY_SOURCE - 540)) | (1 << (TSqlParser.KEYS - 540)) | (1 << (TSqlParser.KEYSET - 540)) | (1 << (TSqlParser.LAG - 540)) | (1 << (TSqlParser.LAST - 540)) | (1 << (TSqlParser.LAST_VALUE - 540)) | (1 << (TSqlParser.LEAD - 540)) | (1 << (TSqlParser.LEVEL - 540)) | (1 << (TSqlParser.LIST - 540)) | (1 << (TSqlParser.LISTENER - 540)) | (1 << (TSqlParser.LISTENER_URL - 540)) | (1 << (TSqlParser.LOB_COMPACTION - 540)) | (1 << (TSqlParser.LOCAL - 540)) | (1 << (TSqlParser.LOCATION - 540)) | (1 << (TSqlParser.LOCK - 540)) | (1 << (TSqlParser.LOCK_ESCALATION - 540)) | (1 << (TSqlParser.LOGIN - 540)) | (1 << (TSqlParser.LOOP - 540)) | (1 << (TSqlParser.LOW - 540)))) !== 0) || ((((_la - 572)) & ~0x1f) == 0 && ((1 << (_la - 572)) & ((1 << (TSqlParser.MANUAL - 572)) | (1 << (TSqlParser.MARK - 572)) | (1 << (TSqlParser.MATERIALIZED - 572)) | (1 << (TSqlParser.MAX - 572)) | (1 << (TSqlParser.MAX_CPU_PERCENT - 572)) | (1 << (TSqlParser.MAX_DOP - 572)) | (1 << (TSqlParser.MAX_FILES - 572)) | (1 << (TSqlParser.MAX_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MAX_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MAX_PROCESSES - 572)) | (1 << (TSqlParser.MAX_QUEUE_READERS - 572)) | (1 << (TSqlParser.MAX_ROLLOVER_FILES - 572)) | (1 << (TSqlParser.MAXDOP - 572)) | (1 << (TSqlParser.MAXRECURSION - 572)) | (1 << (TSqlParser.MAXSIZE - 572)) | (1 << (TSqlParser.MB - 572)) | (1 << (TSqlParser.MEDIUM - 572)) | (1 << (TSqlParser.MEMORY_OPTIMIZED_DATA - 572)) | (1 << (TSqlParser.MESSAGE - 572)) | (1 << (TSqlParser.MIN - 572)) | (1 << (TSqlParser.MIN_ACTIVE_ROWVERSION - 572)) | (1 << (TSqlParser.MIN_CPU_PERCENT - 572)) | (1 << (TSqlParser.MIN_IOPS_PER_VOLUME - 572)) | (1 << (TSqlParser.MIN_MEMORY_PERCENT - 572)) | (1 << (TSqlParser.MINUTES - 572)) | (1 << (TSqlParser.MIRROR_ADDRESS - 572)) | (1 << (TSqlParser.MIXED_PAGE_ALLOCATION - 572)) | (1 << (TSqlParser.MODE - 572)) | (1 << (TSqlParser.MODIFY - 572)) | (1 << (TSqlParser.MOVE - 572)) | (1 << (TSqlParser.MULTI_USER - 572)) | (1 << (TSqlParser.NAME - 572)))) !== 0) || ((((_la - 604)) & ~0x1f) == 0 && ((1 << (_la - 604)) & ((1 << (TSqlParser.NESTED_TRIGGERS - 604)) | (1 << (TSqlParser.NEW_ACCOUNT - 604)) | (1 << (TSqlParser.NEW_BROKER - 604)) | (1 << (TSqlParser.NEW_PASSWORD - 604)) | (1 << (TSqlParser.NEXT - 604)) | (1 << (TSqlParser.NO - 604)) | (1 << (TSqlParser.NO_TRUNCATE - 604)) | (1 << (TSqlParser.NO_WAIT - 604)) | (1 << (TSqlParser.NOCOUNT - 604)) | (1 << (TSqlParser.NODES - 604)) | (1 << (TSqlParser.NOEXPAND - 604)) | (1 << (TSqlParser.NON_TRANSACTED_ACCESS - 604)) | (1 << (TSqlParser.NORECOMPUTE - 604)) | (1 << (TSqlParser.NORECOVERY - 604)) | (1 << (TSqlParser.NOWAIT - 604)) | (1 << (TSqlParser.NTILE - 604)) | (1 << (TSqlParser.NUMANODE - 604)) | (1 << (TSqlParser.NUMBER - 604)) | (1 << (TSqlParser.NUMERIC_ROUNDABORT - 604)) | (1 << (TSqlParser.OBJECT - 604)) | (1 << (TSqlParser.OFFLINE - 604)) | (1 << (TSqlParser.OFFSET - 604)) | (1 << (TSqlParser.OLD_ACCOUNT - 604)) | (1 << (TSqlParser.ONLINE - 604)) | (1 << (TSqlParser.ONLY - 604)) | (1 << (TSqlParser.OPEN_EXISTING - 604)) | (1 << (TSqlParser.OPTIMISTIC - 604)) | (1 << (TSqlParser.OPTIMIZE - 604)) | (1 << (TSqlParser.OUT - 604)) | (1 << (TSqlParser.OUTPUT - 604)) | (1 << (TSqlParser.OWNER - 604)))) !== 0) || ((((_la - 636)) & ~0x1f) == 0 && ((1 << (_la - 636)) & ((1 << (TSqlParser.PAGE_VERIFY - 636)) | (1 << (TSqlParser.PARAMETERIZATION - 636)) | (1 << (TSqlParser.PARTITION - 636)) | (1 << (TSqlParser.PARTITIONS - 636)) | (1 << (TSqlParser.PARTNER - 636)) | (1 << (TSqlParser.PATH - 636)) | (1 << (TSqlParser.POISON_MESSAGE_HANDLING - 636)) | (1 << (TSqlParser.POOL - 636)) | (1 << (TSqlParser.PORT - 636)) | (1 << (TSqlParser.PRECEDING - 636)) | (1 << (TSqlParser.PRIMARY_ROLE - 636)) | (1 << (TSqlParser.PRIOR - 636)) | (1 << (TSqlParser.PRIORITY - 636)) | (1 << (TSqlParser.PRIORITY_LEVEL - 636)) | (1 << (TSqlParser.PRIVATE - 636)) | (1 << (TSqlParser.PRIVATE_KEY - 636)) | (1 << (TSqlParser.PRIVILEGES - 636)) | (1 << (TSqlParser.PROCEDURE_NAME - 636)) | (1 << (TSqlParser.PROPERTY - 636)) | (1 << (TSqlParser.PROVIDER - 636)) | (1 << (TSqlParser.PROVIDER_KEY_NAME - 636)) | (1 << (TSqlParser.QUERY - 636)) | (1 << (TSqlParser.QUEUE - 636)) | (1 << (TSqlParser.QUEUE_DELAY - 636)) | (1 << (TSqlParser.QUOTED_IDENTIFIER - 636)) | (1 << (TSqlParser.RANGE - 636)) | (1 << (TSqlParser.RANK - 636)) | (1 << (TSqlParser.RC2 - 636)) | (1 << (TSqlParser.RC4 - 636)) | (1 << (TSqlParser.RC4_128 - 636)) | (1 << (TSqlParser.READ_COMMITTED_SNAPSHOT - 636)) | (1 << (TSqlParser.READ_ONLY - 636)))) !== 0) || ((((_la - 668)) & ~0x1f) == 0 && ((1 << (_la - 668)) & ((1 << (TSqlParser.READ_ONLY_ROUTING_LIST - 668)) | (1 << (TSqlParser.READ_WRITE - 668)) | (1 << (TSqlParser.READONLY - 668)) | (1 << (TSqlParser.REBUILD - 668)) | (1 << (TSqlParser.RECEIVE - 668)) | (1 << (TSqlParser.RECOMPILE - 668)) | (1 << (TSqlParser.RECOVERY - 668)) | (1 << (TSqlParser.RECURSIVE_TRIGGERS - 668)) | (1 << (TSqlParser.RELATIVE - 668)) | (1 << (TSqlParser.REMOTE - 668)) | (1 << (TSqlParser.REMOTE_SERVICE_NAME - 668)) | (1 << (TSqlParser.REMOVE - 668)) | (1 << (TSqlParser.REORGANIZE - 668)) | (1 << (TSqlParser.REPEATABLE - 668)) | (1 << (TSqlParser.REPLICA - 668)) | (1 << (TSqlParser.REQUEST_MAX_CPU_TIME_SEC - 668)) | (1 << (TSqlParser.REQUEST_MAX_MEMORY_GRANT_PERCENT - 668)) | (1 << (TSqlParser.REQUEST_MEMORY_GRANT_TIMEOUT_SEC - 668)) | (1 << (TSqlParser.REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT - 668)) | (1 << (TSqlParser.RESERVE_DISK_SPACE - 668)) | (1 << (TSqlParser.RESOURCE - 668)) | (1 << (TSqlParser.RESOURCE_MANAGER_LOCATION - 668)) | (1 << (TSqlParser.RESTRICTED_USER - 668)) | (1 << (TSqlParser.RETENTION - 668)) | (1 << (TSqlParser.ROBUST - 668)) | (1 << (TSqlParser.ROOT - 668)) | (1 << (TSqlParser.ROUTE - 668)) | (1 << (TSqlParser.ROW - 668)) | (1 << (TSqlParser.ROW_NUMBER - 668)) | (1 << (TSqlParser.ROWGUID - 668)) | (1 << (TSqlParser.ROWS - 668)) | (1 << (TSqlParser.SAMPLE - 668)))) !== 0) || ((((_la - 700)) & ~0x1f) == 0 && ((1 << (_la - 700)) & ((1 << (TSqlParser.SCHEMABINDING - 700)) | (1 << (TSqlParser.SCOPED - 700)) | (1 << (TSqlParser.SCROLL - 700)) | (1 << (TSqlParser.SCROLL_LOCKS - 700)) | (1 << (TSqlParser.SEARCH - 700)) | (1 << (TSqlParser.SECONDARY - 700)) | (1 << (TSqlParser.SECONDARY_ONLY - 700)) | (1 << (TSqlParser.SECONDARY_ROLE - 700)) | (1 << (TSqlParser.SECONDS - 700)) | (1 << (TSqlParser.SECRET - 700)) | (1 << (TSqlParser.SECURITY - 700)) | (1 << (TSqlParser.SECURITY_LOG - 700)) | (1 << (TSqlParser.SEEDING_MODE - 700)) | (1 << (TSqlParser.SELF - 700)) | (1 << (TSqlParser.SEMI_SENSITIVE - 700)) | (1 << (TSqlParser.SEND - 700)) | (1 << (TSqlParser.SENT - 700)) | (1 << (TSqlParser.SEQUENCE - 700)) | (1 << (TSqlParser.SERIALIZABLE - 700)) | (1 << (TSqlParser.SESSION_TIMEOUT - 700)) | (1 << (TSqlParser.SETERROR - 700)) | (1 << (TSqlParser.SHARE - 700)) | (1 << (TSqlParser.SHOWPLAN - 700)) | (1 << (TSqlParser.SIGNATURE - 700)) | (1 << (TSqlParser.SIMPLE - 700)) | (1 << (TSqlParser.SINGLE_USER - 700)) | (1 << (TSqlParser.SIZE - 700)) | (1 << (TSqlParser.SMALLINT - 700)) | (1 << (TSqlParser.SNAPSHOT - 700)) | (1 << (TSqlParser.SPATIAL_WINDOW_MAX_CELLS - 700)) | (1 << (TSqlParser.STANDBY - 700)) | (1 << (TSqlParser.START_DATE - 700)))) !== 0) || ((((_la - 732)) & ~0x1f) == 0 && ((1 << (_la - 732)) & ((1 << (TSqlParser.STATIC - 732)) | (1 << (TSqlParser.STATS_STREAM - 732)) | (1 << (TSqlParser.STATUS - 732)) | (1 << (TSqlParser.STDEV - 732)) | (1 << (TSqlParser.STDEVP - 732)) | (1 << (TSqlParser.STOPLIST - 732)) | (1 << (TSqlParser.STRING_AGG - 732)) | (1 << (TSqlParser.STUFF - 732)) | (1 << (TSqlParser.SUBJECT - 732)) | (1 << (TSqlParser.SUM - 732)) | (1 << (TSqlParser.SUSPEND - 732)) | (1 << (TSqlParser.SYMMETRIC - 732)) | (1 << (TSqlParser.SYNCHRONOUS_COMMIT - 732)) | (1 << (TSqlParser.SYNONYM - 732)) | (1 << (TSqlParser.SYSTEM - 732)) | (1 << (TSqlParser.TAKE - 732)) | (1 << (TSqlParser.TARGET_RECOVERY_TIME - 732)) | (1 << (TSqlParser.TB - 732)) | (1 << (TSqlParser.TEXTIMAGE_ON - 732)) | (1 << (TSqlParser.THROW - 732)) | (1 << (TSqlParser.TIES - 732)) | (1 << (TSqlParser.TIME - 732)) | (1 << (TSqlParser.TIMEOUT - 732)) | (1 << (TSqlParser.TIMER - 732)) | (1 << (TSqlParser.TINYINT - 732)) | (1 << (TSqlParser.TORN_PAGE_DETECTION - 732)) | (1 << (TSqlParser.TRANSFORM_NOISE_WORDS - 732)) | (1 << (TSqlParser.TRIPLE_DES - 732)) | (1 << (TSqlParser.TRIPLE_DES_3KEY - 732)) | (1 << (TSqlParser.TRUSTWORTHY - 732)))) !== 0) || ((((_la - 764)) & ~0x1f) == 0 && ((1 << (_la - 764)) & ((1 << (TSqlParser.TRY - 764)) | (1 << (TSqlParser.TSQL - 764)) | (1 << (TSqlParser.TWO_DIGIT_YEAR_CUTOFF - 764)) | (1 << (TSqlParser.TYPE - 764)) | (1 << (TSqlParser.TYPE_WARNING - 764)) | (1 << (TSqlParser.UNBOUNDED - 764)) | (1 << (TSqlParser.UNCOMMITTED - 764)) | (1 << (TSqlParser.UNKNOWN - 764)) | (1 << (TSqlParser.UNLIMITED - 764)) | (1 << (TSqlParser.USING - 764)) | (1 << (TSqlParser.VALID_XML - 764)) | (1 << (TSqlParser.VALIDATION - 764)) | (1 << (TSqlParser.VALUE - 764)) | (1 << (TSqlParser.VAR - 764)) | (1 << (TSqlParser.VARP - 764)) | (1 << (TSqlParser.VIEW_METADATA - 764)) | (1 << (TSqlParser.VIEWS - 764)) | (1 << (TSqlParser.WAIT - 764)) | (1 << (TSqlParser.WELL_FORMED_XML - 764)) | (1 << (TSqlParser.WORK - 764)) | (1 << (TSqlParser.WORKLOAD - 764)) | (1 << (TSqlParser.XML - 764)) | (1 << (TSqlParser.XMLNAMESPACES - 764)))) !== 0) || _la===TSqlParser.ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Comparison_operatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_comparison_operator; + return this; +} + +Comparison_operatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Comparison_operatorContext.prototype.constructor = Comparison_operatorContext; + +Comparison_operatorContext.prototype.EQUAL = function() { + return this.getToken(TSqlParser.EQUAL, 0); +}; + +Comparison_operatorContext.prototype.GREATER = function() { + return this.getToken(TSqlParser.GREATER, 0); +}; + +Comparison_operatorContext.prototype.LESS = function() { + return this.getToken(TSqlParser.LESS, 0); +}; + +Comparison_operatorContext.prototype.EXCLAMATION = function() { + return this.getToken(TSqlParser.EXCLAMATION, 0); +}; + +Comparison_operatorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterComparison_operator(this); + } +}; + +Comparison_operatorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitComparison_operator(this); + } +}; + +Comparison_operatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitComparison_operator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Comparison_operatorContext = Comparison_operatorContext; + +TSqlParser.prototype.comparison_operator = function() { + + var localctx = new Comparison_operatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 968, TSqlParser.RULE_comparison_operator); + try { + this.state = 10749; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,1521,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 10734; + this.match(TSqlParser.EQUAL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 10735; + this.match(TSqlParser.GREATER); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 10736; + this.match(TSqlParser.LESS); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 10737; + this.match(TSqlParser.LESS); + this.state = 10738; + this.match(TSqlParser.EQUAL); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 10739; + this.match(TSqlParser.GREATER); + this.state = 10740; + this.match(TSqlParser.EQUAL); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 10741; + this.match(TSqlParser.LESS); + this.state = 10742; + this.match(TSqlParser.GREATER); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 10743; + this.match(TSqlParser.EXCLAMATION); + this.state = 10744; + this.match(TSqlParser.EQUAL); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 10745; + this.match(TSqlParser.EXCLAMATION); + this.state = 10746; + this.match(TSqlParser.GREATER); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 10747; + this.match(TSqlParser.EXCLAMATION); + this.state = 10748; + this.match(TSqlParser.LESS); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function Assignment_operatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_assignment_operator; + return this; +} + +Assignment_operatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +Assignment_operatorContext.prototype.constructor = Assignment_operatorContext; + +Assignment_operatorContext.prototype.PLUS_ASSIGN = function() { + return this.getToken(TSqlParser.PLUS_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.MINUS_ASSIGN = function() { + return this.getToken(TSqlParser.MINUS_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.MULT_ASSIGN = function() { + return this.getToken(TSqlParser.MULT_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.DIV_ASSIGN = function() { + return this.getToken(TSqlParser.DIV_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.MOD_ASSIGN = function() { + return this.getToken(TSqlParser.MOD_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.AND_ASSIGN = function() { + return this.getToken(TSqlParser.AND_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.XOR_ASSIGN = function() { + return this.getToken(TSqlParser.XOR_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.OR_ASSIGN = function() { + return this.getToken(TSqlParser.OR_ASSIGN, 0); +}; + +Assignment_operatorContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterAssignment_operator(this); + } +}; + +Assignment_operatorContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitAssignment_operator(this); + } +}; + +Assignment_operatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitAssignment_operator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.Assignment_operatorContext = Assignment_operatorContext; + +TSqlParser.prototype.assignment_operator = function() { + + var localctx = new Assignment_operatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 970, TSqlParser.RULE_assignment_operator); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10751; + _la = this._input.LA(1); + if(!(((((_la - 812)) & ~0x1f) == 0 && ((1 << (_la - 812)) & ((1 << (TSqlParser.PLUS_ASSIGN - 812)) | (1 << (TSqlParser.MINUS_ASSIGN - 812)) | (1 << (TSqlParser.MULT_ASSIGN - 812)) | (1 << (TSqlParser.DIV_ASSIGN - 812)) | (1 << (TSqlParser.MOD_ASSIGN - 812)) | (1 << (TSqlParser.AND_ASSIGN - 812)) | (1 << (TSqlParser.XOR_ASSIGN - 812)) | (1 << (TSqlParser.OR_ASSIGN - 812)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function File_sizeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = TSqlParser.RULE_file_size; + return this; +} + +File_sizeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +File_sizeContext.prototype.constructor = File_sizeContext; + +File_sizeContext.prototype.DECIMAL = function() { + return this.getToken(TSqlParser.DECIMAL, 0); +}; + +File_sizeContext.prototype.KB = function() { + return this.getToken(TSqlParser.KB, 0); +}; + +File_sizeContext.prototype.MB = function() { + return this.getToken(TSqlParser.MB, 0); +}; + +File_sizeContext.prototype.GB = function() { + return this.getToken(TSqlParser.GB, 0); +}; + +File_sizeContext.prototype.TB = function() { + return this.getToken(TSqlParser.TB, 0); +}; + +File_sizeContext.prototype.MODULE = function() { + return this.getToken(TSqlParser.MODULE, 0); +}; + +File_sizeContext.prototype.enterRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.enterFile_size(this); + } +}; + +File_sizeContext.prototype.exitRule = function(listener) { + if(listener instanceof TSqlParserListener ) { + listener.exitFile_size(this); + } +}; + +File_sizeContext.prototype.accept = function(visitor) { + if ( visitor instanceof TSqlParserVisitor ) { + return visitor.visitFile_size(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +TSqlParser.File_sizeContext = File_sizeContext; + +TSqlParser.prototype.file_size = function() { + + var localctx = new File_sizeContext(this, this._ctx, this.state); + this.enterRule(localctx, 972, TSqlParser.RULE_file_size); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10753; + this.match(TSqlParser.DECIMAL); + this.state = 10755; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===TSqlParser.GB || _la===TSqlParser.KB || _la===TSqlParser.MB || _la===TSqlParser.TB || _la===TSqlParser.MODULE) { + this.state = 10754; + _la = this._input.LA(1); + if(!(_la===TSqlParser.GB || _la===TSqlParser.KB || _la===TSqlParser.MB || _la===TSqlParser.TB || _la===TSqlParser.MODULE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +TSqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { + switch(ruleIndex) { + case 46: + return this.assembly_option_sempred(localctx, predIndex); + case 363: + return this.expression_sempred(localctx, predIndex); + default: + throw "No predicate with index:" + ruleIndex; + } +}; + +TSqlParser.prototype.assembly_option_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 0: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } +}; + +TSqlParser.prototype.expression_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 1: + return this.precpred(this._ctx, 5); + case 2: + return this.precpred(this._ctx, 4); + case 3: + return this.precpred(this._ctx, 3); + case 4: + return this.precpred(this._ctx, 2); + case 5: + return this.precpred(this._ctx, 10); + default: + throw "No predicate with index:" + predIndex; + } +}; + + +exports.TSqlParser = TSqlParser; diff --git a/src/parser/TSqlParser.tokens b/src/parser/TSqlParser.tokens new file mode 100644 index 0000000..5d9475f --- /dev/null +++ b/src/parser/TSqlParser.tokens @@ -0,0 +1,1657 @@ +ABSENT=1 +ADD=2 +AES=3 +ALL=4 +ALLOW_CONNECTIONS=5 +ALLOW_MULTIPLE_EVENT_LOSS=6 +ALLOW_SINGLE_EVENT_LOSS=7 +ALTER=8 +AND=9 +ANONYMOUS=10 +ANY=11 +APPEND=12 +APPLICATION=13 +AS=14 +ASC=15 +ASYMMETRIC=16 +ASYNCHRONOUS_COMMIT=17 +AUTHORIZATION=18 +AUTHENTICATION=19 +AUTOMATED_BACKUP_PREFERENCE=20 +AUTOMATIC=21 +AVAILABILITY_MODE=22 +BACKSLASH=23 +BACKUP=24 +BEFORE=25 +BEGIN=26 +BETWEEN=27 +BLOCK=28 +BLOCKSIZE=29 +BLOCKING_HIERARCHY=30 +BREAK=31 +BROWSE=32 +BUFFER=33 +BUFFERCOUNT=34 +BULK=35 +BY=36 +CACHE=37 +CALLED=38 +CASCADE=39 +CASE=40 +CERTIFICATE=41 +CHANGETABLE=42 +CHANGES=43 +CHECK=44 +CHECKPOINT=45 +CHECK_POLICY=46 +CHECK_EXPIRATION=47 +CLASSIFIER_FUNCTION=48 +CLOSE=49 +CLUSTER=50 +CLUSTERED=51 +COALESCE=52 +COLLATE=53 +COLUMN=54 +COMPRESSION=55 +COMMIT=56 +COMPUTE=57 +CONFIGURATION=58 +CONSTRAINT=59 +CONTAINMENT=60 +CONTAINS=61 +CONTAINSTABLE=62 +CONTEXT=63 +CONTINUE=64 +CONTINUE_AFTER_ERROR=65 +CONTRACT=66 +CONTRACT_NAME=67 +CONVERSATION=68 +CONVERT=69 +COPY_ONLY=70 +CREATE=71 +CROSS=72 +CURRENT=73 +CURRENT_DATE=74 +CURRENT_TIME=75 +CURRENT_TIMESTAMP=76 +CURRENT_USER=77 +CURSOR=78 +CYCLE=79 +DATA_COMPRESSION=80 +DATA_SOURCE=81 +DATABASE=82 +DATABASE_MIRRORING=83 +DBCC=84 +DEALLOCATE=85 +DECLARE=86 +DEFAULT=87 +DEFAULT_DATABASE=88 +DEFAULT_SCHEMA=89 +DELETE=90 +DENY=91 +DESC=92 +DIAGNOSTICS=93 +DIFFERENTIAL=94 +DISK=95 +DISTINCT=96 +DISTRIBUTED=97 +DOUBLE=98 +DOUBLE_BACK_SLASH=99 +DOUBLE_FORWARD_SLASH=100 +DROP=101 +DTC_SUPPORT=102 +DUMP=103 +ELSE=104 +ENABLED=105 +END=106 +ENDPOINT=107 +ERRLVL=108 +ESCAPE=109 +ERROR=110 +EVENT=111 +EVENTDATA=112 +EVENT_RETENTION_MODE=113 +EXCEPT=114 +EXECUTABLE_FILE=115 +EXECUTE=116 +EXISTS=117 +EXPIREDATE=118 +EXIT=119 +EXTENSION=120 +EXTERNAL=121 +EXTERNAL_ACCESS=122 +FAILOVER=123 +FAILURECONDITIONLEVEL=124 +FAN_IN=125 +FETCH=126 +FILE=127 +FILENAME=128 +FILLFACTOR=129 +FILE_SNAPSHOT=130 +FOR=131 +FORCESEEK=132 +FORCE_SERVICE_ALLOW_DATA_LOSS=133 +FOREIGN=134 +FREETEXT=135 +FREETEXTTABLE=136 +FROM=137 +FULL=138 +FUNCTION=139 +GET=140 +GOTO=141 +GOVERNOR=142 +GRANT=143 +GROUP=144 +HAVING=145 +HASHED=146 +HEALTHCHECKTIMEOUT=147 +IDENTITY=148 +IDENTITYCOL=149 +IDENTITY_INSERT=150 +IF=151 +IIF=152 +IN=153 +INCLUDE=154 +INCREMENT=155 +INDEX=156 +INFINITE=157 +INIT=158 +INNER=159 +INSERT=160 +INSTEAD=161 +INTERSECT=162 +INTO=163 +IPV4_ADDR=164 +IPV6_ADDR=165 +IS=166 +ISNULL=167 +JOIN=168 +KERBEROS=169 +KEY=170 +KEY_PATH=171 +KEY_STORE_PROVIDER_NAME=172 +KILL=173 +LANGUAGE=174 +LEFT=175 +LIBRARY=176 +LIFETIME=177 +LIKE=178 +LINENO=179 +LINUX=180 +LISTENER_IP=181 +LISTENER_PORT=182 +LOAD=183 +LOCAL_SERVICE_NAME=184 +LOG=185 +MATCHED=186 +MASTER=187 +MAX_MEMORY=188 +MAXTRANSFER=189 +MAXVALUE=190 +MAX_DISPATCH_LATENCY=191 +MAX_EVENT_SIZE=192 +MAX_SIZE=193 +MAX_OUTSTANDING_IO_PER_VOLUME=194 +MEDIADESCRIPTION=195 +MEDIANAME=196 +MEMBER=197 +MEMORY_PARTITION_MODE=198 +MERGE=199 +MESSAGE_FORWARDING=200 +MESSAGE_FORWARD_SIZE=201 +MINVALUE=202 +MIRROR=203 +MUST_CHANGE=204 +NATIONAL=205 +NEGOTIATE=206 +NOCHECK=207 +NOFORMAT=208 +NOINIT=209 +NONCLUSTERED=210 +NONE=211 +NOREWIND=212 +NOSKIP=213 +NOUNLOAD=214 +NO_CHECKSUM=215 +NO_COMPRESSION=216 +NO_EVENT_LOSS=217 +NOT=218 +NOTIFICATION=219 +NTLM=220 +NULL=221 +NULLIF=222 +OF=223 +OFF=224 +OFFSETS=225 +OLD_PASSWORD=226 +ON=227 +ON_FAILURE=228 +OPEN=229 +OPENDATASOURCE=230 +OPENQUERY=231 +OPENROWSET=232 +OPENXML=233 +OPTION=234 +OR=235 +ORDER=236 +OUTER=237 +OVER=238 +PAGE=239 +PARAM_NODE=240 +PARTIAL=241 +PASSWORD=242 +PERCENT=243 +PERMISSION_SET=244 +PER_CPU=245 +PER_DB=246 +PER_NODE=247 +PIVOT=248 +PLAN=249 +PLATFORM=250 +POLICY=251 +PRECISION=252 +PREDICATE=253 +PRIMARY=254 +PRINT=255 +PROC=256 +PROCEDURE=257 +PROCESS=258 +PUBLIC=259 +PYTHON=260 +R=261 +RAISERROR=262 +RAW=263 +READ=264 +READTEXT=265 +READ_WRITE_FILEGROUPS=266 +RECONFIGURE=267 +REFERENCES=268 +REGENERATE=269 +RELATED_CONVERSATION=270 +RELATED_CONVERSATION_GROUP=271 +REPLICATION=272 +REQUIRED=273 +RESET=274 +RESTART=275 +RESTORE=276 +RESTRICT=277 +RESUME=278 +RETAINDAYS=279 +RETURN=280 +RETURNS=281 +REVERT=282 +REVOKE=283 +REWIND=284 +RIGHT=285 +ROLLBACK=286 +ROLE=287 +ROWCOUNT=288 +ROWGUIDCOL=289 +RSA_512=290 +RSA_1024=291 +RSA_2048=292 +RSA_3072=293 +RSA_4096=294 +SAFETY=295 +RULE=296 +SAFE=297 +SAVE=298 +SCHEDULER=299 +SCHEMA=300 +SCHEME=301 +SECURITYAUDIT=302 +SELECT=303 +SEMANTICKEYPHRASETABLE=304 +SEMANTICSIMILARITYDETAILSTABLE=305 +SEMANTICSIMILARITYTABLE=306 +SERVER=307 +SERVICE=308 +SERVICE_BROKER=309 +SERVICE_NAME=310 +SESSION=311 +SESSION_USER=312 +SET=313 +SETUSER=314 +SHUTDOWN=315 +SID=316 +SKIP_KEYWORD=317 +SOFTNUMA=318 +SOME=319 +SOURCE=320 +SPECIFICATION=321 +SPLIT=322 +SQLDUMPERFLAGS=323 +SQLDUMPERPATH=324 +SQLDUMPERTIMEOUT=325 +STATISTICS=326 +STATE=327 +STATS=328 +START=329 +STARTED=330 +STARTUP_STATE=331 +STOP=332 +STOPPED=333 +STOP_ON_ERROR=334 +SUPPORTED=335 +SYSTEM_USER=336 +TABLE=337 +TABLESAMPLE=338 +TAPE=339 +TARGET=340 +TCP=341 +TEXTSIZE=342 +THEN=343 +TO=344 +TOP=345 +TRACK_CAUSALITY=346 +TRAN=347 +TRANSACTION=348 +TRANSFER=349 +TRIGGER=350 +TRUNCATE=351 +TSEQUAL=352 +UNCHECKED=353 +UNION=354 +UNIQUE=355 +UNLOCK=356 +UNPIVOT=357 +UNSAFE=358 +UPDATE=359 +UPDATETEXT=360 +URL=361 +USE=362 +USED=363 +USER=364 +VALUES=365 +VARYING=366 +VERBOSELOGGING=367 +VIEW=368 +VISIBILITY=369 +WAITFOR=370 +WHEN=371 +WHERE=372 +WHILE=373 +WINDOWS=374 +WITH=375 +WITHIN=376 +WITHOUT=377 +WITNESS=378 +WRITETEXT=379 +ABSOLUTE=380 +ACCENT_SENSITIVITY=381 +ACTION=382 +ACTIVATION=383 +ACTIVE=384 +ADDRESS=385 +AES_128=386 +AES_192=387 +AES_256=388 +AFFINITY=389 +AFTER=390 +AGGREGATE=391 +ALGORITHM=392 +ALLOW_ENCRYPTED_VALUE_MODIFICATIONS=393 +ALLOW_SNAPSHOT_ISOLATION=394 +ALLOWED=395 +ANSI_NULL_DEFAULT=396 +ANSI_NULLS=397 +ANSI_PADDING=398 +ANSI_WARNINGS=399 +APPLICATION_LOG=400 +APPLY=401 +ARITHABORT=402 +ASSEMBLY=403 +AUDIT=404 +AUDIT_GUID=405 +AUTO=406 +AUTO_CLEANUP=407 +AUTO_CLOSE=408 +AUTO_CREATE_STATISTICS=409 +AUTO_SHRINK=410 +AUTO_UPDATE_STATISTICS=411 +AUTO_UPDATE_STATISTICS_ASYNC=412 +AVAILABILITY=413 +AVG=414 +BACKUP_PRIORITY=415 +BEGIN_DIALOG=416 +BIGINT=417 +BINARY_BASE64=418 +BINARY_CHECKSUM=419 +BINDING=420 +BLOB_STORAGE=421 +BROKER=422 +BROKER_INSTANCE=423 +BULK_LOGGED=424 +CALLER=425 +CAP_CPU_PERCENT=426 +CAST=427 +CATALOG=428 +CATCH=429 +CHANGE_RETENTION=430 +CHANGE_TRACKING=431 +CHECKSUM=432 +CHECKSUM_AGG=433 +CLEANUP=434 +COLLECTION=435 +COLUMN_MASTER_KEY=436 +COMMITTED=437 +COMPATIBILITY_LEVEL=438 +CONCAT=439 +CONCAT_NULL_YIELDS_NULL=440 +CONTENT=441 +CONTROL=442 +COOKIE=443 +COUNT=444 +COUNT_BIG=445 +COUNTER=446 +CPU=447 +CREATE_NEW=448 +CREATION_DISPOSITION=449 +CREDENTIAL=450 +CRYPTOGRAPHIC=451 +CURSOR_CLOSE_ON_COMMIT=452 +CURSOR_DEFAULT=453 +DATA=454 +DATE_CORRELATION_OPTIMIZATION=455 +DATEADD=456 +DATEDIFF=457 +DATENAME=458 +DATEPART=459 +DAYS=460 +DB_CHAINING=461 +DB_FAILOVER=462 +DECRYPTION=463 +DEFAULT_DOUBLE_QUOTE=464 +DEFAULT_FULLTEXT_LANGUAGE=465 +DEFAULT_LANGUAGE=466 +DELAY=467 +DELAYED_DURABILITY=468 +DELETED=469 +DENSE_RANK=470 +DEPENDENTS=471 +DES=472 +DESCRIPTION=473 +DESX=474 +DHCP=475 +DIALOG=476 +DIRECTORY_NAME=477 +DISABLE=478 +DISABLE_BROKER=479 +DISABLED=480 +DISK_DRIVE=481 +DOCUMENT=482 +DYNAMIC=483 +ELEMENTS=484 +EMERGENCY=485 +EMPTY=486 +ENABLE=487 +ENABLE_BROKER=488 +ENCRYPTED_VALUE=489 +ENCRYPTION=490 +ENDPOINT_URL=491 +ERROR_BROKER_CONVERSATIONS=492 +EXCLUSIVE=493 +EXECUTABLE=494 +EXIST=495 +EXPAND=496 +EXPIRY_DATE=497 +EXPLICIT=498 +FAIL_OPERATION=499 +FAILOVER_MODE=500 +FAILURE=501 +FAILURE_CONDITION_LEVEL=502 +FAST=503 +FAST_FORWARD=504 +FILEGROUP=505 +FILEGROWTH=506 +FILEPATH=507 +FILESTREAM=508 +FILTER=509 +FIRST=510 +FIRST_VALUE=511 +FOLLOWING=512 +FORCE=513 +FORCE_FAILOVER_ALLOW_DATA_LOSS=514 +FORCED=515 +FORMAT=516 +FORWARD_ONLY=517 +FULLSCAN=518 +FULLTEXT=519 +GB=520 +GETDATE=521 +GETUTCDATE=522 +GLOBAL=523 +GO=524 +GROUP_MAX_REQUESTS=525 +GROUPING=526 +GROUPING_ID=527 +HADR=528 +HASH=529 +HEALTH_CHECK_TIMEOUT=530 +HIGH=531 +HONOR_BROKER_PRIORITY=532 +HOURS=533 +IDENTITY_VALUE=534 +IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX=535 +IMMEDIATE=536 +IMPERSONATE=537 +IMPORTANCE=538 +INCLUDE_NULL_VALUES=539 +INCREMENTAL=540 +INITIATOR=541 +INPUT=542 +INSENSITIVE=543 +INSERTED=544 +INT=545 +IP=546 +ISOLATION=547 +JOB=548 +JSON=549 +KB=550 +KEEP=551 +KEEPFIXED=552 +KEY_SOURCE=553 +KEYS=554 +KEYSET=555 +LAG=556 +LAST=557 +LAST_VALUE=558 +LEAD=559 +LEVEL=560 +LIST=561 +LISTENER=562 +LISTENER_URL=563 +LOB_COMPACTION=564 +LOCAL=565 +LOCATION=566 +LOCK=567 +LOCK_ESCALATION=568 +LOGIN=569 +LOOP=570 +LOW=571 +MANUAL=572 +MARK=573 +MATERIALIZED=574 +MAX=575 +MAX_CPU_PERCENT=576 +MAX_DOP=577 +MAX_FILES=578 +MAX_IOPS_PER_VOLUME=579 +MAX_MEMORY_PERCENT=580 +MAX_PROCESSES=581 +MAX_QUEUE_READERS=582 +MAX_ROLLOVER_FILES=583 +MAXDOP=584 +MAXRECURSION=585 +MAXSIZE=586 +MB=587 +MEDIUM=588 +MEMORY_OPTIMIZED_DATA=589 +MESSAGE=590 +MIN=591 +MIN_ACTIVE_ROWVERSION=592 +MIN_CPU_PERCENT=593 +MIN_IOPS_PER_VOLUME=594 +MIN_MEMORY_PERCENT=595 +MINUTES=596 +MIRROR_ADDRESS=597 +MIXED_PAGE_ALLOCATION=598 +MODE=599 +MODIFY=600 +MOVE=601 +MULTI_USER=602 +NAME=603 +NESTED_TRIGGERS=604 +NEW_ACCOUNT=605 +NEW_BROKER=606 +NEW_PASSWORD=607 +NEXT=608 +NO=609 +NO_TRUNCATE=610 +NO_WAIT=611 +NOCOUNT=612 +NODES=613 +NOEXPAND=614 +NON_TRANSACTED_ACCESS=615 +NORECOMPUTE=616 +NORECOVERY=617 +NOWAIT=618 +NTILE=619 +NUMANODE=620 +NUMBER=621 +NUMERIC_ROUNDABORT=622 +OBJECT=623 +OFFLINE=624 +OFFSET=625 +OLD_ACCOUNT=626 +ONLINE=627 +ONLY=628 +OPEN_EXISTING=629 +OPTIMISTIC=630 +OPTIMIZE=631 +OUT=632 +OUTPUT=633 +OVERRIDE=634 +OWNER=635 +PAGE_VERIFY=636 +PARAMETERIZATION=637 +PARTITION=638 +PARTITIONS=639 +PARTNER=640 +PATH=641 +POISON_MESSAGE_HANDLING=642 +POOL=643 +PORT=644 +PRECEDING=645 +PRIMARY_ROLE=646 +PRIOR=647 +PRIORITY=648 +PRIORITY_LEVEL=649 +PRIVATE=650 +PRIVATE_KEY=651 +PRIVILEGES=652 +PROCEDURE_NAME=653 +PROPERTY=654 +PROVIDER=655 +PROVIDER_KEY_NAME=656 +QUERY=657 +QUEUE=658 +QUEUE_DELAY=659 +QUOTED_IDENTIFIER=660 +RANGE=661 +RANK=662 +RC2=663 +RC4=664 +RC4_128=665 +READ_COMMITTED_SNAPSHOT=666 +READ_ONLY=667 +READ_ONLY_ROUTING_LIST=668 +READ_WRITE=669 +READONLY=670 +REBUILD=671 +RECEIVE=672 +RECOMPILE=673 +RECOVERY=674 +RECURSIVE_TRIGGERS=675 +RELATIVE=676 +REMOTE=677 +REMOTE_SERVICE_NAME=678 +REMOVE=679 +REORGANIZE=680 +REPEATABLE=681 +REPLICA=682 +REQUEST_MAX_CPU_TIME_SEC=683 +REQUEST_MAX_MEMORY_GRANT_PERCENT=684 +REQUEST_MEMORY_GRANT_TIMEOUT_SEC=685 +REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT=686 +RESERVE_DISK_SPACE=687 +RESOURCE=688 +RESOURCE_MANAGER_LOCATION=689 +RESTRICTED_USER=690 +RETENTION=691 +ROBUST=692 +ROOT=693 +ROUTE=694 +ROW=695 +ROW_NUMBER=696 +ROWGUID=697 +ROWS=698 +SAMPLE=699 +SCHEMABINDING=700 +SCOPED=701 +SCROLL=702 +SCROLL_LOCKS=703 +SEARCH=704 +SECONDARY=705 +SECONDARY_ONLY=706 +SECONDARY_ROLE=707 +SECONDS=708 +SECRET=709 +SECURITY=710 +SECURITY_LOG=711 +SEEDING_MODE=712 +SELF=713 +SEMI_SENSITIVE=714 +SEND=715 +SENT=716 +SEQUENCE=717 +SERIALIZABLE=718 +SESSION_TIMEOUT=719 +SETERROR=720 +SHARE=721 +SHOWPLAN=722 +SIGNATURE=723 +SIMPLE=724 +SINGLE_USER=725 +SIZE=726 +SMALLINT=727 +SNAPSHOT=728 +SPATIAL_WINDOW_MAX_CELLS=729 +STANDBY=730 +START_DATE=731 +STATIC=732 +STATS_STREAM=733 +STATUS=734 +STATUSONLY=735 +STDEV=736 +STDEVP=737 +STOPLIST=738 +STRING_AGG=739 +STUFF=740 +SUBJECT=741 +SUBSCRIPTION=742 +SUM=743 +SUSPEND=744 +SYMMETRIC=745 +SYNCHRONOUS_COMMIT=746 +SYNONYM=747 +SYSTEM=748 +TAKE=749 +TARGET_RECOVERY_TIME=750 +TB=751 +TEXTIMAGE_ON=752 +THROW=753 +TIES=754 +TIME=755 +TIMEOUT=756 +TIMER=757 +TINYINT=758 +TORN_PAGE_DETECTION=759 +TRANSFORM_NOISE_WORDS=760 +TRIPLE_DES=761 +TRIPLE_DES_3KEY=762 +TRUSTWORTHY=763 +TRY=764 +TSQL=765 +TWO_DIGIT_YEAR_CUTOFF=766 +TYPE=767 +TYPE_WARNING=768 +UNBOUNDED=769 +UNCOMMITTED=770 +UNKNOWN=771 +UNLIMITED=772 +UOW=773 +USING=774 +VALID_XML=775 +VALIDATION=776 +VALUE=777 +VAR=778 +VARP=779 +VIEW_METADATA=780 +VIEWS=781 +WAIT=782 +WELL_FORMED_XML=783 +WITHOUT_ARRAY_WRAPPER=784 +WORK=785 +WORKLOAD=786 +XML=787 +XMLDATA=788 +XMLNAMESPACES=789 +XMLSCHEMA=790 +XSINIL=791 +DOLLAR_ACTION=792 +SPACE=793 +COMMENT=794 +LINE_COMMENT=795 +DOUBLE_QUOTE_ID=796 +SINGLE_QUOTE=797 +SQUARE_BRACKET_ID=798 +LOCAL_ID=799 +DECIMAL=800 +ID=801 +QUOTED_URL=802 +QUOTED_HOST_AND_PORT=803 +STRING=804 +BINARY=805 +FLOAT=806 +REAL=807 +EQUAL=808 +GREATER=809 +LESS=810 +EXCLAMATION=811 +PLUS_ASSIGN=812 +MINUS_ASSIGN=813 +MULT_ASSIGN=814 +DIV_ASSIGN=815 +MOD_ASSIGN=816 +AND_ASSIGN=817 +XOR_ASSIGN=818 +OR_ASSIGN=819 +DOUBLE_BAR=820 +DOT=821 +UNDERLINE=822 +AT=823 +SHARP=824 +DOLLAR=825 +LR_BRACKET=826 +RR_BRACKET=827 +COMMA=828 +SEMI=829 +COLON=830 +STAR=831 +DIVIDE=832 +MODULE=833 +PLUS=834 +MINUS=835 +BIT_NOT=836 +BIT_OR=837 +BIT_AND=838 +BIT_XOR=839 +IPV4_OCTECT=840 +'ABSENT'=1 +'ADD'=2 +'AES'=3 +'ALL'=4 +'ALLOW_CONNECTIONS'=5 +'ALLOW_MULTIPLE_EVENT_LOSS'=6 +'ALLOW_SINGLE_EVENT_LOSS'=7 +'ALTER'=8 +'AND'=9 +'ANONYMOUS'=10 +'ANY'=11 +'APPEND'=12 +'APPLICATION'=13 +'AS'=14 +'ASC'=15 +'ASYMMETRIC'=16 +'ASYNCHRONOUS_COMMIT'=17 +'AUTHORIZATION'=18 +'AUTHENTICATION'=19 +'AUTOMATED_BACKUP_PREFERENCE'=20 +'AUTOMATIC'=21 +'AVAILABILITY_MODE'=22 +'\\'=23 +'BACKUP'=24 +'BEFORE'=25 +'BEGIN'=26 +'BETWEEN'=27 +'BLOCK'=28 +'BLOCKSIZE'=29 +'BLOCKING_HIERARCHY'=30 +'BREAK'=31 +'BROWSE'=32 +'BUFFER'=33 +'BUFFERCOUNT'=34 +'BULK'=35 +'BY'=36 +'CACHE'=37 +'CALLED'=38 +'CASCADE'=39 +'CASE'=40 +'CERTIFICATE'=41 +'CHANGETABLE'=42 +'CHANGES'=43 +'CHECK'=44 +'CHECKPOINT'=45 +'CHECK_POLICY'=46 +'CHECK_EXPIRATION'=47 +'CLASSIFIER_FUNCTION'=48 +'CLOSE'=49 +'CLUSTER'=50 +'CLUSTERED'=51 +'COALESCE'=52 +'COLLATE'=53 +'COLUMN'=54 +'COMPRESSION'=55 +'COMMIT'=56 +'COMPUTE'=57 +'CONFIGURATION'=58 +'CONSTRAINT'=59 +'CONTAINMENT'=60 +'CONTAINS'=61 +'CONTAINSTABLE'=62 +'CONTEXT'=63 +'CONTINUE'=64 +'CONTINUE_AFTER_ERROR'=65 +'CONTRACT'=66 +'CONTRACT_NAME'=67 +'CONVERSATION'=68 +'COPY_ONLY'=70 +'CREATE'=71 +'CROSS'=72 +'CURRENT'=73 +'CURRENT_DATE'=74 +'CURRENT_TIME'=75 +'CURRENT_TIMESTAMP'=76 +'CURRENT_USER'=77 +'CURSOR'=78 +'CYCLE'=79 +'DATA_COMPRESSION'=80 +'DATA_SOURCE'=81 +'DATABASE'=82 +'DATABASE_MIRRORING'=83 +'DBCC'=84 +'DEALLOCATE'=85 +'DECLARE'=86 +'DEFAULT'=87 +'DEFAULT_DATABASE'=88 +'DEFAULT_SCHEMA'=89 +'DELETE'=90 +'DENY'=91 +'DESC'=92 +'DIAGNOSTICS'=93 +'DIFFERENTIAL'=94 +'DISK'=95 +'DISTINCT'=96 +'DISTRIBUTED'=97 +'DOUBLE'=98 +'\\\\'=99 +'//'=100 +'DROP'=101 +'DTC_SUPPORT'=102 +'DUMP'=103 +'ELSE'=104 +'ENABLED'=105 +'END'=106 +'ENDPOINT'=107 +'ERRLVL'=108 +'ESCAPE'=109 +'ERROR'=110 +'EVENT'=111 +'EVENT_RETENTION_MODE'=113 +'EXCEPT'=114 +'EXECUTABLE_FILE'=115 +'EXISTS'=117 +'EXPIREDATE'=118 +'EXIT'=119 +'EXTENSION'=120 +'EXTERNAL'=121 +'EXTERNAL_ACCESS'=122 +'FAILOVER'=123 +'FAILURECONDITIONLEVEL'=124 +'FAN_IN'=125 +'FETCH'=126 +'FILE'=127 +'FILENAME'=128 +'FILLFACTOR'=129 +'FILE_SNAPSHOT'=130 +'FOR'=131 +'FORCESEEK'=132 +'FORCE_SERVICE_ALLOW_DATA_LOSS'=133 +'FOREIGN'=134 +'FREETEXT'=135 +'FREETEXTTABLE'=136 +'FROM'=137 +'FULL'=138 +'FUNCTION'=139 +'GET'=140 +'GOTO'=141 +'GOVERNOR'=142 +'GRANT'=143 +'GROUP'=144 +'HAVING'=145 +'HASHED'=146 +'HEALTHCHECKTIMEOUT'=147 +'IDENTITY'=148 +'IDENTITYCOL'=149 +'IDENTITY_INSERT'=150 +'IF'=151 +'IIF'=152 +'IN'=153 +'INCLUDE'=154 +'INCREMENT'=155 +'INDEX'=156 +'INFINITE'=157 +'INIT'=158 +'INNER'=159 +'INSERT'=160 +'INSTEAD'=161 +'INTERSECT'=162 +'INTO'=163 +'IS'=166 +'ISNULL'=167 +'JOIN'=168 +'KERBEROS'=169 +'KEY'=170 +'KEY_PATH'=171 +'KEY_STORE_PROVIDER_NAME'=172 +'KILL'=173 +'LANGUAGE'=174 +'LEFT'=175 +'LIBRARY'=176 +'LIFETIME'=177 +'LIKE'=178 +'LINENO'=179 +'LINUX'=180 +'LISTENER_IP'=181 +'LISTENER_PORT'=182 +'LOAD'=183 +'LOCAL_SERVICE_NAME'=184 +'LOG'=185 +'MATCHED'=186 +'MASTER'=187 +'MAX_MEMORY'=188 +'MAXTRANSFER'=189 +'MAXVALUE'=190 +'MAX_DISPATCH_LATENCY'=191 +'MAX_EVENT_SIZE'=192 +'MAX_SIZE'=193 +'MAX_OUTSTANDING_IO_PER_VOLUME'=194 +'MEDIADESCRIPTION'=195 +'MEDIANAME'=196 +'MEMBER'=197 +'MEMORY_PARTITION_MODE'=198 +'MERGE'=199 +'MESSAGE_FORWARDING'=200 +'MESSAGE_FORWARD_SIZE'=201 +'MINVALUE'=202 +'MIRROR'=203 +'MUST_CHANGE'=204 +'NATIONAL'=205 +'NEGOTIATE'=206 +'NOCHECK'=207 +'NOFORMAT'=208 +'NOINIT'=209 +'NONCLUSTERED'=210 +'NONE'=211 +'NOREWIND'=212 +'NOSKIP'=213 +'NOUNLOAD'=214 +'NO_CHECKSUM'=215 +'NO_COMPRESSION'=216 +'NO_EVENT_LOSS'=217 +'NOT'=218 +'NOTIFICATION'=219 +'NTLM'=220 +'NULL'=221 +'NULLIF'=222 +'OF'=223 +'OFF'=224 +'OFFSETS'=225 +'OLD_PASSWORD'=226 +'ON'=227 +'ON_FAILURE'=228 +'OPEN'=229 +'OPENDATASOURCE'=230 +'OPENQUERY'=231 +'OPENROWSET'=232 +'OPENXML'=233 +'OPTION'=234 +'OR'=235 +'ORDER'=236 +'OUTER'=237 +'OVER'=238 +'PAGE'=239 +'PARAM_NODE'=240 +'PARTIAL'=241 +'PASSWORD'=242 +'PERCENT'=243 +'PERMISSION_SET'=244 +'PER_CPU'=245 +'PER_DB'=246 +'PER_NODE'=247 +'PIVOT'=248 +'PLAN'=249 +'PLATFORM'=250 +'POLICY'=251 +'PRECISION'=252 +'PREDICATE'=253 +'PRIMARY'=254 +'PRINT'=255 +'PROC'=256 +'PROCEDURE'=257 +'PROCESS'=258 +'PUBLIC'=259 +'PYTHON'=260 +'R'=261 +'RAISERROR'=262 +'RAW'=263 +'READ'=264 +'READTEXT'=265 +'READ_WRITE_FILEGROUPS'=266 +'RECONFIGURE'=267 +'REFERENCES'=268 +'REGENERATE'=269 +'RELATED_CONVERSATION'=270 +'RELATED_CONVERSATION_GROUP'=271 +'REPLICATION'=272 +'REQUIRED'=273 +'RESET'=274 +'RESTART'=275 +'RESTORE'=276 +'RESTRICT'=277 +'RESUME'=278 +'RETAINDAYS'=279 +'RETURN'=280 +'RETURNS'=281 +'REVERT'=282 +'REVOKE'=283 +'REWIND'=284 +'RIGHT'=285 +'ROLLBACK'=286 +'ROLE'=287 +'ROWCOUNT'=288 +'ROWGUIDCOL'=289 +'RSA_512'=290 +'RSA_1024'=291 +'RSA_2048'=292 +'RSA_3072'=293 +'RSA_4096'=294 +'SAFETY'=295 +'RULE'=296 +'SAFE'=297 +'SAVE'=298 +'SCHEDULER'=299 +'SCHEMA'=300 +'SCHEME'=301 +'SECURITYAUDIT'=302 +'SELECT'=303 +'SEMANTICKEYPHRASETABLE'=304 +'SEMANTICSIMILARITYDETAILSTABLE'=305 +'SEMANTICSIMILARITYTABLE'=306 +'SERVER'=307 +'SERVICE'=308 +'SERVICE_BROKER'=309 +'SERVICE_NAME'=310 +'SESSION'=311 +'SESSION_USER'=312 +'SET'=313 +'SETUSER'=314 +'SHUTDOWN'=315 +'SID'=316 +'SKIP'=317 +'SOFTNUMA'=318 +'SOME'=319 +'SOURCE'=320 +'SPECIFICATION'=321 +'SPLIT'=322 +'SQLDUMPERFLAGS'=323 +'SQLDUMPERPATH'=324 +'SQLDUMPERTIMEOUTS'=325 +'STATISTICS'=326 +'STATE'=327 +'STATS'=328 +'START'=329 +'STARTED'=330 +'STARTUP_STATE'=331 +'STOP'=332 +'STOPPED'=333 +'STOP_ON_ERROR'=334 +'SUPPORTED'=335 +'SYSTEM_USER'=336 +'TABLE'=337 +'TABLESAMPLE'=338 +'TAPE'=339 +'TARGET'=340 +'TCP'=341 +'TEXTSIZE'=342 +'THEN'=343 +'TO'=344 +'TOP'=345 +'TRACK_CAUSALITY'=346 +'TRAN'=347 +'TRANSACTION'=348 +'TRANSFER'=349 +'TRIGGER'=350 +'TRUNCATE'=351 +'TSEQUAL'=352 +'UNCHECKED'=353 +'UNION'=354 +'UNIQUE'=355 +'UNLOCK'=356 +'UNPIVOT'=357 +'UNSAFE'=358 +'UPDATE'=359 +'UPDATETEXT'=360 +'URL'=361 +'USE'=362 +'USED'=363 +'USER'=364 +'VALUES'=365 +'VARYING'=366 +'VERBOSELOGGING'=367 +'VIEW'=368 +'VISIBILITY'=369 +'WAITFOR'=370 +'WHEN'=371 +'WHERE'=372 +'WHILE'=373 +'WINDOWS'=374 +'WITH'=375 +'WITHIN'=376 +'WITHOUT'=377 +'WITNESS'=378 +'WRITETEXT'=379 +'ABSOLUTE'=380 +'ACCENT_SENSITIVITY'=381 +'ACTION'=382 +'ACTIVATION'=383 +'ACTIVE'=384 +'ADDRESS'=385 +'AES_128'=386 +'AES_192'=387 +'AES_256'=388 +'AFFINITY'=389 +'AFTER'=390 +'AGGREGATE'=391 +'ALGORITHM'=392 +'ALLOW_ENCRYPTED_VALUE_MODIFICATIONS'=393 +'ALLOW_SNAPSHOT_ISOLATION'=394 +'ALLOWED'=395 +'ANSI_NULL_DEFAULT'=396 +'ANSI_NULLS'=397 +'ANSI_PADDING'=398 +'ANSI_WARNINGS'=399 +'APPLICATION_LOG'=400 +'APPLY'=401 +'ARITHABORT'=402 +'ASSEMBLY'=403 +'AUDIT'=404 +'AUDIT_GUID'=405 +'AUTO'=406 +'AUTO_CLEANUP'=407 +'AUTO_CLOSE'=408 +'AUTO_CREATE_STATISTICS'=409 +'AUTO_SHRINK'=410 +'AUTO_UPDATE_STATISTICS'=411 +'AUTO_UPDATE_STATISTICS_ASYNC'=412 +'AVAILABILITY'=413 +'AVG'=414 +'BACKUP_PRIORITY'=415 +'BEGIN_DIALOG'=416 +'BIGINT'=417 +'BINARY BASE64'=418 +'BINARY_CHECKSUM'=419 +'BINDING'=420 +'BLOB_STORAGE'=421 +'BROKER'=422 +'BROKER_INSTANCE'=423 +'BULK_LOGGED'=424 +'CALLER'=425 +'CAP_CPU_PERCENT'=426 +'CATALOG'=428 +'CATCH'=429 +'CHANGE_RETENTION'=430 +'CHANGE_TRACKING'=431 +'CHECKSUM'=432 +'CHECKSUM_AGG'=433 +'CLEANUP'=434 +'COLLECTION'=435 +'COLUMN_MASTER_KEY'=436 +'COMMITTED'=437 +'COMPATIBILITY_LEVEL'=438 +'CONCAT'=439 +'CONCAT_NULL_YIELDS_NULL'=440 +'CONTENT'=441 +'CONTROL'=442 +'COOKIE'=443 +'COUNT'=444 +'COUNT_BIG'=445 +'COUNTER'=446 +'CPU'=447 +'CREATE_NEW'=448 +'CREATION_DISPOSITION'=449 +'CREDENTIAL'=450 +'CRYPTOGRAPHIC'=451 +'CURSOR_CLOSE_ON_COMMIT'=452 +'CURSOR_DEFAULT'=453 +'DATA'=454 +'DATE_CORRELATION_OPTIMIZATION'=455 +'DATEADD'=456 +'DATEDIFF'=457 +'DATENAME'=458 +'DATEPART'=459 +'DAYS'=460 +'DB_CHAINING'=461 +'DB_FAILOVER'=462 +'DECRYPTION'=463 +'DEFAULT_FULLTEXT_LANGUAGE'=465 +'DEFAULT_LANGUAGE'=466 +'DELAY'=467 +'DELAYED_DURABILITY'=468 +'DELETED'=469 +'DENSE_RANK'=470 +'DEPENDENTS'=471 +'DES'=472 +'DESCRIPTION'=473 +'DESX'=474 +'DHCP'=475 +'DIALOG'=476 +'DIRECTORY_NAME'=477 +'DISABLE'=478 +'DISABLE_BROKER'=479 +'DISABLED'=480 +'DOCUMENT'=482 +'DYNAMIC'=483 +'ELEMENTS'=484 +'EMERGENCY'=485 +'EMPTY'=486 +'ENABLE'=487 +'ENABLE_BROKER'=488 +'ENCRYPTED_VALUE'=489 +'ENCRYPTION'=490 +'ENDPOINT_URL'=491 +'ERROR_BROKER_CONVERSATIONS'=492 +'EXCLUSIVE'=493 +'EXECUTABLE'=494 +'EXIST'=495 +'EXPAND'=496 +'EXPIRY_DATE'=497 +'EXPLICIT'=498 +'FAIL_OPERATION'=499 +'FAILOVER_MODE'=500 +'FAILURE'=501 +'FAILURE_CONDITION_LEVEL'=502 +'FAST'=503 +'FAST_FORWARD'=504 +'FILEGROUP'=505 +'FILEGROWTH'=506 +'FILEPATH'=507 +'FILESTREAM'=508 +'FILTER'=509 +'FIRST'=510 +'FIRST_VALUE'=511 +'FOLLOWING'=512 +'FORCE'=513 +'FORCE_FAILOVER_ALLOW_DATA_LOSS'=514 +'FORCED'=515 +'FORMAT'=516 +'FORWARD_ONLY'=517 +'FULLSCAN'=518 +'FULLTEXT'=519 +'GB'=520 +'GETDATE'=521 +'GETUTCDATE'=522 +'GLOBAL'=523 +'GO'=524 +'GROUP_MAX_REQUESTS'=525 +'GROUPING'=526 +'GROUPING_ID'=527 +'HADR'=528 +'HASH'=529 +'HEALTH_CHECK_TIMEOUT'=530 +'HIGH'=531 +'HONOR_BROKER_PRIORITY'=532 +'HOURS'=533 +'IDENTITY_VALUE'=534 +'IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX'=535 +'IMMEDIATE'=536 +'IMPERSONATE'=537 +'IMPORTANCE'=538 +'INCLUDE_NULL_VALUES'=539 +'INCREMENTAL'=540 +'INITIATOR'=541 +'INPUT'=542 +'INSENSITIVE'=543 +'INSERTED'=544 +'INT'=545 +'IP'=546 +'ISOLATION'=547 +'JOB'=548 +'JSON'=549 +'KB'=550 +'KEEP'=551 +'KEEPFIXED'=552 +'KEY_SOURCE'=553 +'KEYS'=554 +'KEYSET'=555 +'LAG'=556 +'LAST'=557 +'LAST_VALUE'=558 +'LEAD'=559 +'LEVEL'=560 +'LIST'=561 +'LISTENER'=562 +'LISTENER_URL'=563 +'LOB_COMPACTION'=564 +'LOCAL'=565 +'LOCATION'=566 +'LOCK'=567 +'LOCK_ESCALATION'=568 +'LOGIN'=569 +'LOOP'=570 +'LOW'=571 +'MANUAL'=572 +'MARK'=573 +'MATERIALIZED'=574 +'MAX'=575 +'MAX_CPU_PERCENT'=576 +'MAX_DOP'=577 +'MAX_FILES'=578 +'MAX_IOPS_PER_VOLUME'=579 +'MAX_MEMORY_PERCENT'=580 +'MAX_PROCESSES'=581 +'MAX_QUEUE_READERS'=582 +'MAX_ROLLOVER_FILES'=583 +'MAXDOP'=584 +'MAXRECURSION'=585 +'MAXSIZE'=586 +'MB'=587 +'MEDIUM'=588 +'MEMORY_OPTIMIZED_DATA'=589 +'MESSAGE'=590 +'MIN'=591 +'MIN_ACTIVE_ROWVERSION'=592 +'MIN_CPU_PERCENT'=593 +'MIN_IOPS_PER_VOLUME'=594 +'MIN_MEMORY_PERCENT'=595 +'MINUTES'=596 +'MIRROR_ADDRESS'=597 +'MIXED_PAGE_ALLOCATION'=598 +'MODE'=599 +'MODIFY'=600 +'MOVE'=601 +'MULTI_USER'=602 +'NAME'=603 +'NESTED_TRIGGERS'=604 +'NEW_ACCOUNT'=605 +'NEW_BROKER'=606 +'NEW_PASSWORD'=607 +'NEXT'=608 +'NO'=609 +'NO_TRUNCATE'=610 +'NO_WAIT'=611 +'NOCOUNT'=612 +'NODES'=613 +'NOEXPAND'=614 +'NON_TRANSACTED_ACCESS'=615 +'NORECOMPUTE'=616 +'NORECOVERY'=617 +'NOWAIT'=618 +'NTILE'=619 +'NUMANODE'=620 +'NUMBER'=621 +'NUMERIC_ROUNDABORT'=622 +'OBJECT'=623 +'OFFLINE'=624 +'OFFSET'=625 +'OLD_ACCOUNT'=626 +'ONLINE'=627 +'ONLY'=628 +'OPEN_EXISTING'=629 +'OPTIMISTIC'=630 +'OPTIMIZE'=631 +'OUT'=632 +'OUTPUT'=633 +'OVERRIDE'=634 +'OWNER'=635 +'PAGE_VERIFY'=636 +'PARAMETERIZATION'=637 +'PARTITION'=638 +'PARTITIONS'=639 +'PARTNER'=640 +'PATH'=641 +'POISON_MESSAGE_HANDLING'=642 +'POOL'=643 +'PORT'=644 +'PRECEDING'=645 +'PRIMARY_ROLE'=646 +'PRIOR'=647 +'PRIORITY'=648 +'PRIORITY_LEVEL'=649 +'PRIVATE'=650 +'PRIVATE_KEY'=651 +'PRIVILEGES'=652 +'PROCEDURE_NAME'=653 +'PROPERTY'=654 +'PROVIDER'=655 +'PROVIDER_KEY_NAME'=656 +'QUERY'=657 +'QUEUE'=658 +'QUEUE_DELAY'=659 +'QUOTED_IDENTIFIER'=660 +'RANGE'=661 +'RANK'=662 +'RC2'=663 +'RC4'=664 +'RC4_128'=665 +'READ_COMMITTED_SNAPSHOT'=666 +'READ_ONLY'=667 +'READ_ONLY_ROUTING_LIST'=668 +'READ_WRITE'=669 +'READONLY'=670 +'REBUILD'=671 +'RECEIVE'=672 +'RECOMPILE'=673 +'RECOVERY'=674 +'RECURSIVE_TRIGGERS'=675 +'RELATIVE'=676 +'REMOTE'=677 +'REMOTE_SERVICE_NAME'=678 +'REMOVE'=679 +'REORGANIZE'=680 +'REPEATABLE'=681 +'REPLICA'=682 +'REQUEST_MAX_CPU_TIME_SEC'=683 +'REQUEST_MAX_MEMORY_GRANT_PERCENT'=684 +'REQUEST_MEMORY_GRANT_TIMEOUT_SEC'=685 +'REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT'=686 +'RESERVE_DISK_SPACE'=687 +'RESOURCE'=688 +'RESOURCE_MANAGER_LOCATION'=689 +'RESTRICTED_USER'=690 +'RETENTION'=691 +'ROBUST'=692 +'ROOT'=693 +'ROUTE'=694 +'ROW'=695 +'ROW_NUMBER'=696 +'ROWGUID'=697 +'ROWS'=698 +'SAMPLE'=699 +'SCHEMABINDING'=700 +'SCOPED'=701 +'SCROLL'=702 +'SCROLL_LOCKS'=703 +'SEARCH'=704 +'SECONDARY'=705 +'SECONDARY_ONLY'=706 +'SECONDARY_ROLE'=707 +'SECONDS'=708 +'SECRET'=709 +'SECURITY'=710 +'SECURITY_LOG'=711 +'SEEDING_MODE'=712 +'SELF'=713 +'SEMI_SENSITIVE'=714 +'SEND'=715 +'SENT'=716 +'SEQUENCE'=717 +'SERIALIZABLE'=718 +'SESSION_TIMEOUT'=719 +'SETERROR'=720 +'SHARE'=721 +'SHOWPLAN'=722 +'SIGNATURE'=723 +'SIMPLE'=724 +'SINGLE_USER'=725 +'SIZE'=726 +'SMALLINT'=727 +'SNAPSHOT'=728 +'SPATIAL_WINDOW_MAX_CELLS'=729 +'STANDBY'=730 +'START_DATE'=731 +'STATIC'=732 +'STATS_STREAM'=733 +'STATUS'=734 +'STATUSONLY'=735 +'STDEV'=736 +'STDEVP'=737 +'STOPLIST'=738 +'STRING_AGG'=739 +'STUFF'=740 +'SUBJECT'=741 +'SUBSCRIPTION'=742 +'SUM'=743 +'SUSPEND'=744 +'SYMMETRIC'=745 +'SYNCHRONOUS_COMMIT'=746 +'SYNONYM'=747 +'SYSTEM'=748 +'TAKE'=749 +'TARGET_RECOVERY_TIME'=750 +'TB'=751 +'TEXTIMAGE_ON'=752 +'THROW'=753 +'TIES'=754 +'TIME'=755 +'TIMEOUT'=756 +'TIMER'=757 +'TINYINT'=758 +'TORN_PAGE_DETECTION'=759 +'TRANSFORM_NOISE_WORDS'=760 +'TRIPLE_DES'=761 +'TRIPLE_DES_3KEY'=762 +'TRUSTWORTHY'=763 +'TRY'=764 +'TSQL'=765 +'TWO_DIGIT_YEAR_CUTOFF'=766 +'TYPE'=767 +'TYPE_WARNING'=768 +'UNBOUNDED'=769 +'UNCOMMITTED'=770 +'UNKNOWN'=771 +'UNLIMITED'=772 +'UOW'=773 +'USING'=774 +'VALID_XML'=775 +'VALIDATION'=776 +'VALUE'=777 +'VAR'=778 +'VARP'=779 +'VIEW_METADATA'=780 +'VIEWS'=781 +'WAIT'=782 +'WELL_FORMED_XML'=783 +'WITHOUT_ARRAY_WRAPPER'=784 +'WORK'=785 +'WORKLOAD'=786 +'XML'=787 +'XMLDATA'=788 +'XMLNAMESPACES'=789 +'XMLSCHEMA'=790 +'XSINIL'=791 +'$ACTION'=792 +'\''=797 +'='=808 +'>'=809 +'<'=810 +'!'=811 +'+='=812 +'-='=813 +'*='=814 +'/='=815 +'%='=816 +'&='=817 +'^='=818 +'|='=819 +'||'=820 +'.'=821 +'_'=822 +'@'=823 +'#'=824 +'$'=825 +'('=826 +')'=827 +','=828 +';'=829 +':'=830 +'*'=831 +'/'=832 +'%'=833 +'+'=834 +'-'=835 +'~'=836 +'|'=837 +'&'=838 +'^'=839 diff --git a/src/parser/TSqlParserListener.js b/src/parser/TSqlParserListener.js new file mode 100644 index 0000000..9538ce5 --- /dev/null +++ b/src/parser/TSqlParserListener.js @@ -0,0 +1,4632 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/tsql/TSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + +// This class defines a complete listener for a parse tree produced by TSqlParser. +function TSqlParserListener() { + antlr4.tree.ParseTreeListener.call(this); + return this; +} + +TSqlParserListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); +TSqlParserListener.prototype.constructor = TSqlParserListener; + +// Enter a parse tree produced by TSqlParser#tsql_file. +TSqlParserListener.prototype.enterTsql_file = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#tsql_file. +TSqlParserListener.prototype.exitTsql_file = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#batch. +TSqlParserListener.prototype.enterBatch = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#batch. +TSqlParserListener.prototype.exitBatch = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sql_clauses. +TSqlParserListener.prototype.enterSql_clauses = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sql_clauses. +TSqlParserListener.prototype.exitSql_clauses = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sql_clause. +TSqlParserListener.prototype.enterSql_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sql_clause. +TSqlParserListener.prototype.exitSql_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dml_clause. +TSqlParserListener.prototype.enterDml_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dml_clause. +TSqlParserListener.prototype.exitDml_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ddl_clause. +TSqlParserListener.prototype.enterDdl_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ddl_clause. +TSqlParserListener.prototype.exitDdl_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_statement. +TSqlParserListener.prototype.enterBackup_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_statement. +TSqlParserListener.prototype.exitBackup_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#cfl_statement. +TSqlParserListener.prototype.enterCfl_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#cfl_statement. +TSqlParserListener.prototype.exitCfl_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#block_statement. +TSqlParserListener.prototype.enterBlock_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#block_statement. +TSqlParserListener.prototype.exitBlock_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#break_statement. +TSqlParserListener.prototype.enterBreak_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#break_statement. +TSqlParserListener.prototype.exitBreak_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#continue_statement. +TSqlParserListener.prototype.enterContinue_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#continue_statement. +TSqlParserListener.prototype.exitContinue_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#goto_statement. +TSqlParserListener.prototype.enterGoto_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#goto_statement. +TSqlParserListener.prototype.exitGoto_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#return_statement. +TSqlParserListener.prototype.enterReturn_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#return_statement. +TSqlParserListener.prototype.exitReturn_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#if_statement. +TSqlParserListener.prototype.enterIf_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#if_statement. +TSqlParserListener.prototype.exitIf_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#throw_statement. +TSqlParserListener.prototype.enterThrow_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#throw_statement. +TSqlParserListener.prototype.exitThrow_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#throw_error_number. +TSqlParserListener.prototype.enterThrow_error_number = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#throw_error_number. +TSqlParserListener.prototype.exitThrow_error_number = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#throw_message. +TSqlParserListener.prototype.enterThrow_message = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#throw_message. +TSqlParserListener.prototype.exitThrow_message = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#throw_state. +TSqlParserListener.prototype.enterThrow_state = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#throw_state. +TSqlParserListener.prototype.exitThrow_state = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#try_catch_statement. +TSqlParserListener.prototype.enterTry_catch_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#try_catch_statement. +TSqlParserListener.prototype.exitTry_catch_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#waitfor_statement. +TSqlParserListener.prototype.enterWaitfor_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#waitfor_statement. +TSqlParserListener.prototype.exitWaitfor_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#while_statement. +TSqlParserListener.prototype.enterWhile_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#while_statement. +TSqlParserListener.prototype.exitWhile_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#print_statement. +TSqlParserListener.prototype.enterPrint_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#print_statement. +TSqlParserListener.prototype.exitPrint_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#raiseerror_statement. +TSqlParserListener.prototype.enterRaiseerror_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#raiseerror_statement. +TSqlParserListener.prototype.exitRaiseerror_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#empty_statement. +TSqlParserListener.prototype.enterEmpty_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#empty_statement. +TSqlParserListener.prototype.exitEmpty_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#another_statement. +TSqlParserListener.prototype.enterAnother_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#another_statement. +TSqlParserListener.prototype.exitAnother_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_application_role. +TSqlParserListener.prototype.enterAlter_application_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_application_role. +TSqlParserListener.prototype.exitAlter_application_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_application_role. +TSqlParserListener.prototype.enterCreate_application_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_application_role. +TSqlParserListener.prototype.exitCreate_application_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_aggregate. +TSqlParserListener.prototype.enterDrop_aggregate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_aggregate. +TSqlParserListener.prototype.exitDrop_aggregate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_application_role. +TSqlParserListener.prototype.enterDrop_application_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_application_role. +TSqlParserListener.prototype.exitDrop_application_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly. +TSqlParserListener.prototype.enterAlter_assembly = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly. +TSqlParserListener.prototype.exitAlter_assembly = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_start. +TSqlParserListener.prototype.enterAlter_assembly_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_start. +TSqlParserListener.prototype.exitAlter_assembly_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_clause. +TSqlParserListener.prototype.enterAlter_assembly_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_clause. +TSqlParserListener.prototype.exitAlter_assembly_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_from_clause. +TSqlParserListener.prototype.enterAlter_assembly_from_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_from_clause. +TSqlParserListener.prototype.exitAlter_assembly_from_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_from_clause_start. +TSqlParserListener.prototype.enterAlter_assembly_from_clause_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_from_clause_start. +TSqlParserListener.prototype.exitAlter_assembly_from_clause_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_drop_clause. +TSqlParserListener.prototype.enterAlter_assembly_drop_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_drop_clause. +TSqlParserListener.prototype.exitAlter_assembly_drop_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_drop_multiple_files. +TSqlParserListener.prototype.enterAlter_assembly_drop_multiple_files = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_drop_multiple_files. +TSqlParserListener.prototype.exitAlter_assembly_drop_multiple_files = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_drop. +TSqlParserListener.prototype.enterAlter_assembly_drop = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_drop. +TSqlParserListener.prototype.exitAlter_assembly_drop = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_add_clause. +TSqlParserListener.prototype.enterAlter_assembly_add_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_add_clause. +TSqlParserListener.prototype.exitAlter_assembly_add_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_asssembly_add_clause_start. +TSqlParserListener.prototype.enterAlter_asssembly_add_clause_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_asssembly_add_clause_start. +TSqlParserListener.prototype.exitAlter_asssembly_add_clause_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_client_file_clause. +TSqlParserListener.prototype.enterAlter_assembly_client_file_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_client_file_clause. +TSqlParserListener.prototype.exitAlter_assembly_client_file_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_file_name. +TSqlParserListener.prototype.enterAlter_assembly_file_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_file_name. +TSqlParserListener.prototype.exitAlter_assembly_file_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_file_bits. +TSqlParserListener.prototype.enterAlter_assembly_file_bits = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_file_bits. +TSqlParserListener.prototype.exitAlter_assembly_file_bits = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_as. +TSqlParserListener.prototype.enterAlter_assembly_as = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_as. +TSqlParserListener.prototype.exitAlter_assembly_as = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_with_clause. +TSqlParserListener.prototype.enterAlter_assembly_with_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_with_clause. +TSqlParserListener.prototype.exitAlter_assembly_with_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_assembly_with. +TSqlParserListener.prototype.enterAlter_assembly_with = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_assembly_with. +TSqlParserListener.prototype.exitAlter_assembly_with = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#client_assembly_specifier. +TSqlParserListener.prototype.enterClient_assembly_specifier = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#client_assembly_specifier. +TSqlParserListener.prototype.exitClient_assembly_specifier = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#assembly_option. +TSqlParserListener.prototype.enterAssembly_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#assembly_option. +TSqlParserListener.prototype.exitAssembly_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#network_file_share. +TSqlParserListener.prototype.enterNetwork_file_share = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#network_file_share. +TSqlParserListener.prototype.exitNetwork_file_share = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#network_computer. +TSqlParserListener.prototype.enterNetwork_computer = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#network_computer. +TSqlParserListener.prototype.exitNetwork_computer = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#network_file_start. +TSqlParserListener.prototype.enterNetwork_file_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#network_file_start. +TSqlParserListener.prototype.exitNetwork_file_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_path. +TSqlParserListener.prototype.enterFile_path = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_path. +TSqlParserListener.prototype.exitFile_path = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_directory_path_separator. +TSqlParserListener.prototype.enterFile_directory_path_separator = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_directory_path_separator. +TSqlParserListener.prototype.exitFile_directory_path_separator = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#local_file. +TSqlParserListener.prototype.enterLocal_file = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#local_file. +TSqlParserListener.prototype.exitLocal_file = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#local_drive. +TSqlParserListener.prototype.enterLocal_drive = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#local_drive. +TSqlParserListener.prototype.exitLocal_drive = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#multiple_local_files. +TSqlParserListener.prototype.enterMultiple_local_files = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#multiple_local_files. +TSqlParserListener.prototype.exitMultiple_local_files = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#multiple_local_file_start. +TSqlParserListener.prototype.enterMultiple_local_file_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#multiple_local_file_start. +TSqlParserListener.prototype.exitMultiple_local_file_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_assembly. +TSqlParserListener.prototype.enterCreate_assembly = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_assembly. +TSqlParserListener.prototype.exitCreate_assembly = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_assembly. +TSqlParserListener.prototype.enterDrop_assembly = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_assembly. +TSqlParserListener.prototype.exitDrop_assembly = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_asymmetric_key. +TSqlParserListener.prototype.enterAlter_asymmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_asymmetric_key. +TSqlParserListener.prototype.exitAlter_asymmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_asymmetric_key_start. +TSqlParserListener.prototype.enterAlter_asymmetric_key_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_asymmetric_key_start. +TSqlParserListener.prototype.exitAlter_asymmetric_key_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#asymmetric_key_option. +TSqlParserListener.prototype.enterAsymmetric_key_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#asymmetric_key_option. +TSqlParserListener.prototype.exitAsymmetric_key_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#asymmetric_key_option_start. +TSqlParserListener.prototype.enterAsymmetric_key_option_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#asymmetric_key_option_start. +TSqlParserListener.prototype.exitAsymmetric_key_option_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#asymmetric_key_password_change_option. +TSqlParserListener.prototype.enterAsymmetric_key_password_change_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#asymmetric_key_password_change_option. +TSqlParserListener.prototype.exitAsymmetric_key_password_change_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_asymmetric_key. +TSqlParserListener.prototype.enterCreate_asymmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_asymmetric_key. +TSqlParserListener.prototype.exitCreate_asymmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_asymmetric_key. +TSqlParserListener.prototype.enterDrop_asymmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_asymmetric_key. +TSqlParserListener.prototype.exitDrop_asymmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization. +TSqlParserListener.prototype.enterAlter_authorization = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization. +TSqlParserListener.prototype.exitAlter_authorization = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#authorization_grantee. +TSqlParserListener.prototype.enterAuthorization_grantee = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#authorization_grantee. +TSqlParserListener.prototype.exitAuthorization_grantee = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#entity_to. +TSqlParserListener.prototype.enterEntity_to = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#entity_to. +TSqlParserListener.prototype.exitEntity_to = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#colon_colon. +TSqlParserListener.prototype.enterColon_colon = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#colon_colon. +TSqlParserListener.prototype.exitColon_colon = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization_start. +TSqlParserListener.prototype.enterAlter_authorization_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization_start. +TSqlParserListener.prototype.exitAlter_authorization_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization_for_sql_database. +TSqlParserListener.prototype.enterAlter_authorization_for_sql_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization_for_sql_database. +TSqlParserListener.prototype.exitAlter_authorization_for_sql_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization_for_azure_dw. +TSqlParserListener.prototype.enterAlter_authorization_for_azure_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization_for_azure_dw. +TSqlParserListener.prototype.exitAlter_authorization_for_azure_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_authorization_for_parallel_dw. +TSqlParserListener.prototype.enterAlter_authorization_for_parallel_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_authorization_for_parallel_dw. +TSqlParserListener.prototype.exitAlter_authorization_for_parallel_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#class_type. +TSqlParserListener.prototype.enterClass_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#class_type. +TSqlParserListener.prototype.exitClass_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#class_type_for_sql_database. +TSqlParserListener.prototype.enterClass_type_for_sql_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#class_type_for_sql_database. +TSqlParserListener.prototype.exitClass_type_for_sql_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#class_type_for_azure_dw. +TSqlParserListener.prototype.enterClass_type_for_azure_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#class_type_for_azure_dw. +TSqlParserListener.prototype.exitClass_type_for_azure_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#class_type_for_parallel_dw. +TSqlParserListener.prototype.enterClass_type_for_parallel_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#class_type_for_parallel_dw. +TSqlParserListener.prototype.exitClass_type_for_parallel_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_availability_group. +TSqlParserListener.prototype.enterDrop_availability_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_availability_group. +TSqlParserListener.prototype.exitDrop_availability_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_availability_group. +TSqlParserListener.prototype.enterAlter_availability_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_availability_group. +TSqlParserListener.prototype.exitAlter_availability_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_availability_group_start. +TSqlParserListener.prototype.enterAlter_availability_group_start = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_availability_group_start. +TSqlParserListener.prototype.exitAlter_availability_group_start = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_availability_group_options. +TSqlParserListener.prototype.enterAlter_availability_group_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_availability_group_options. +TSqlParserListener.prototype.exitAlter_availability_group_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_broker_priority. +TSqlParserListener.prototype.enterCreate_or_alter_broker_priority = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_broker_priority. +TSqlParserListener.prototype.exitCreate_or_alter_broker_priority = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_broker_priority. +TSqlParserListener.prototype.enterDrop_broker_priority = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_broker_priority. +TSqlParserListener.prototype.exitDrop_broker_priority = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_certificate. +TSqlParserListener.prototype.enterAlter_certificate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_certificate. +TSqlParserListener.prototype.exitAlter_certificate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_column_encryption_key. +TSqlParserListener.prototype.enterAlter_column_encryption_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_column_encryption_key. +TSqlParserListener.prototype.exitAlter_column_encryption_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_column_encryption_key. +TSqlParserListener.prototype.enterCreate_column_encryption_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_column_encryption_key. +TSqlParserListener.prototype.exitCreate_column_encryption_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_certificate. +TSqlParserListener.prototype.enterDrop_certificate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_certificate. +TSqlParserListener.prototype.exitDrop_certificate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_column_encryption_key. +TSqlParserListener.prototype.enterDrop_column_encryption_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_column_encryption_key. +TSqlParserListener.prototype.exitDrop_column_encryption_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_column_master_key. +TSqlParserListener.prototype.enterDrop_column_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_column_master_key. +TSqlParserListener.prototype.exitDrop_column_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_contract. +TSqlParserListener.prototype.enterDrop_contract = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_contract. +TSqlParserListener.prototype.exitDrop_contract = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_credential. +TSqlParserListener.prototype.enterDrop_credential = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_credential. +TSqlParserListener.prototype.exitDrop_credential = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_cryptograhic_provider. +TSqlParserListener.prototype.enterDrop_cryptograhic_provider = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_cryptograhic_provider. +TSqlParserListener.prototype.exitDrop_cryptograhic_provider = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_database. +TSqlParserListener.prototype.enterDrop_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_database. +TSqlParserListener.prototype.exitDrop_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_database_audit_specification. +TSqlParserListener.prototype.enterDrop_database_audit_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_database_audit_specification. +TSqlParserListener.prototype.exitDrop_database_audit_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_database_scoped_credential. +TSqlParserListener.prototype.enterDrop_database_scoped_credential = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_database_scoped_credential. +TSqlParserListener.prototype.exitDrop_database_scoped_credential = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_default. +TSqlParserListener.prototype.enterDrop_default = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_default. +TSqlParserListener.prototype.exitDrop_default = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_endpoint. +TSqlParserListener.prototype.enterDrop_endpoint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_endpoint. +TSqlParserListener.prototype.exitDrop_endpoint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_data_source. +TSqlParserListener.prototype.enterDrop_external_data_source = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_data_source. +TSqlParserListener.prototype.exitDrop_external_data_source = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_file_format. +TSqlParserListener.prototype.enterDrop_external_file_format = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_file_format. +TSqlParserListener.prototype.exitDrop_external_file_format = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_library. +TSqlParserListener.prototype.enterDrop_external_library = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_library. +TSqlParserListener.prototype.exitDrop_external_library = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_resource_pool. +TSqlParserListener.prototype.enterDrop_external_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_resource_pool. +TSqlParserListener.prototype.exitDrop_external_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_external_table. +TSqlParserListener.prototype.enterDrop_external_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_external_table. +TSqlParserListener.prototype.exitDrop_external_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_event_notifications. +TSqlParserListener.prototype.enterDrop_event_notifications = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_event_notifications. +TSqlParserListener.prototype.exitDrop_event_notifications = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_event_session. +TSqlParserListener.prototype.enterDrop_event_session = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_event_session. +TSqlParserListener.prototype.exitDrop_event_session = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_fulltext_catalog. +TSqlParserListener.prototype.enterDrop_fulltext_catalog = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_fulltext_catalog. +TSqlParserListener.prototype.exitDrop_fulltext_catalog = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_fulltext_index. +TSqlParserListener.prototype.enterDrop_fulltext_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_fulltext_index. +TSqlParserListener.prototype.exitDrop_fulltext_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_fulltext_stoplist. +TSqlParserListener.prototype.enterDrop_fulltext_stoplist = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_fulltext_stoplist. +TSqlParserListener.prototype.exitDrop_fulltext_stoplist = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_login. +TSqlParserListener.prototype.enterDrop_login = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_login. +TSqlParserListener.prototype.exitDrop_login = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_master_key. +TSqlParserListener.prototype.enterDrop_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_master_key. +TSqlParserListener.prototype.exitDrop_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_message_type. +TSqlParserListener.prototype.enterDrop_message_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_message_type. +TSqlParserListener.prototype.exitDrop_message_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_partition_function. +TSqlParserListener.prototype.enterDrop_partition_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_partition_function. +TSqlParserListener.prototype.exitDrop_partition_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_partition_scheme. +TSqlParserListener.prototype.enterDrop_partition_scheme = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_partition_scheme. +TSqlParserListener.prototype.exitDrop_partition_scheme = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_queue. +TSqlParserListener.prototype.enterDrop_queue = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_queue. +TSqlParserListener.prototype.exitDrop_queue = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_remote_service_binding. +TSqlParserListener.prototype.enterDrop_remote_service_binding = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_remote_service_binding. +TSqlParserListener.prototype.exitDrop_remote_service_binding = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_resource_pool. +TSqlParserListener.prototype.enterDrop_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_resource_pool. +TSqlParserListener.prototype.exitDrop_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_db_role. +TSqlParserListener.prototype.enterDrop_db_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_db_role. +TSqlParserListener.prototype.exitDrop_db_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_route. +TSqlParserListener.prototype.enterDrop_route = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_route. +TSqlParserListener.prototype.exitDrop_route = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_rule. +TSqlParserListener.prototype.enterDrop_rule = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_rule. +TSqlParserListener.prototype.exitDrop_rule = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_schema. +TSqlParserListener.prototype.enterDrop_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_schema. +TSqlParserListener.prototype.exitDrop_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_search_property_list. +TSqlParserListener.prototype.enterDrop_search_property_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_search_property_list. +TSqlParserListener.prototype.exitDrop_search_property_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_security_policy. +TSqlParserListener.prototype.enterDrop_security_policy = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_security_policy. +TSqlParserListener.prototype.exitDrop_security_policy = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_sequence. +TSqlParserListener.prototype.enterDrop_sequence = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_sequence. +TSqlParserListener.prototype.exitDrop_sequence = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_server_audit. +TSqlParserListener.prototype.enterDrop_server_audit = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_server_audit. +TSqlParserListener.prototype.exitDrop_server_audit = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_server_audit_specification. +TSqlParserListener.prototype.enterDrop_server_audit_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_server_audit_specification. +TSqlParserListener.prototype.exitDrop_server_audit_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_server_role. +TSqlParserListener.prototype.enterDrop_server_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_server_role. +TSqlParserListener.prototype.exitDrop_server_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_service. +TSqlParserListener.prototype.enterDrop_service = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_service. +TSqlParserListener.prototype.exitDrop_service = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_signature. +TSqlParserListener.prototype.enterDrop_signature = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_signature. +TSqlParserListener.prototype.exitDrop_signature = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_statistics_name_azure_dw_and_pdw. +TSqlParserListener.prototype.enterDrop_statistics_name_azure_dw_and_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_statistics_name_azure_dw_and_pdw. +TSqlParserListener.prototype.exitDrop_statistics_name_azure_dw_and_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_symmetric_key. +TSqlParserListener.prototype.enterDrop_symmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_symmetric_key. +TSqlParserListener.prototype.exitDrop_symmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_synonym. +TSqlParserListener.prototype.enterDrop_synonym = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_synonym. +TSqlParserListener.prototype.exitDrop_synonym = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_user. +TSqlParserListener.prototype.enterDrop_user = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_user. +TSqlParserListener.prototype.exitDrop_user = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_workload_group. +TSqlParserListener.prototype.enterDrop_workload_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_workload_group. +TSqlParserListener.prototype.exitDrop_workload_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_xml_schema_collection. +TSqlParserListener.prototype.enterDrop_xml_schema_collection = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_xml_schema_collection. +TSqlParserListener.prototype.exitDrop_xml_schema_collection = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#disable_trigger. +TSqlParserListener.prototype.enterDisable_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#disable_trigger. +TSqlParserListener.prototype.exitDisable_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#enable_trigger. +TSqlParserListener.prototype.enterEnable_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#enable_trigger. +TSqlParserListener.prototype.exitEnable_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#lock_table. +TSqlParserListener.prototype.enterLock_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#lock_table. +TSqlParserListener.prototype.exitLock_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#truncate_table. +TSqlParserListener.prototype.enterTruncate_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#truncate_table. +TSqlParserListener.prototype.exitTruncate_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_column_master_key. +TSqlParserListener.prototype.enterCreate_column_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_column_master_key. +TSqlParserListener.prototype.exitCreate_column_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_credential. +TSqlParserListener.prototype.enterAlter_credential = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_credential. +TSqlParserListener.prototype.exitAlter_credential = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_credential. +TSqlParserListener.prototype.enterCreate_credential = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_credential. +TSqlParserListener.prototype.exitCreate_credential = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_cryptographic_provider. +TSqlParserListener.prototype.enterAlter_cryptographic_provider = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_cryptographic_provider. +TSqlParserListener.prototype.exitAlter_cryptographic_provider = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_cryptographic_provider. +TSqlParserListener.prototype.enterCreate_cryptographic_provider = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_cryptographic_provider. +TSqlParserListener.prototype.exitCreate_cryptographic_provider = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_event_notification. +TSqlParserListener.prototype.enterCreate_event_notification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_event_notification. +TSqlParserListener.prototype.exitCreate_event_notification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_event_session. +TSqlParserListener.prototype.enterCreate_or_alter_event_session = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_event_session. +TSqlParserListener.prototype.exitCreate_or_alter_event_session = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#event_session_predicate_expression. +TSqlParserListener.prototype.enterEvent_session_predicate_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#event_session_predicate_expression. +TSqlParserListener.prototype.exitEvent_session_predicate_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#event_session_predicate_factor. +TSqlParserListener.prototype.enterEvent_session_predicate_factor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#event_session_predicate_factor. +TSqlParserListener.prototype.exitEvent_session_predicate_factor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#event_session_predicate_leaf. +TSqlParserListener.prototype.enterEvent_session_predicate_leaf = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#event_session_predicate_leaf. +TSqlParserListener.prototype.exitEvent_session_predicate_leaf = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_external_data_source. +TSqlParserListener.prototype.enterAlter_external_data_source = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_external_data_source. +TSqlParserListener.prototype.exitAlter_external_data_source = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_external_library. +TSqlParserListener.prototype.enterAlter_external_library = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_external_library. +TSqlParserListener.prototype.exitAlter_external_library = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_external_library. +TSqlParserListener.prototype.enterCreate_external_library = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_external_library. +TSqlParserListener.prototype.exitCreate_external_library = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_external_resource_pool. +TSqlParserListener.prototype.enterAlter_external_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_external_resource_pool. +TSqlParserListener.prototype.exitAlter_external_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_external_resource_pool. +TSqlParserListener.prototype.enterCreate_external_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_external_resource_pool. +TSqlParserListener.prototype.exitCreate_external_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_fulltext_catalog. +TSqlParserListener.prototype.enterAlter_fulltext_catalog = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_fulltext_catalog. +TSqlParserListener.prototype.exitAlter_fulltext_catalog = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_fulltext_catalog. +TSqlParserListener.prototype.enterCreate_fulltext_catalog = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_fulltext_catalog. +TSqlParserListener.prototype.exitCreate_fulltext_catalog = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_fulltext_stoplist. +TSqlParserListener.prototype.enterAlter_fulltext_stoplist = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_fulltext_stoplist. +TSqlParserListener.prototype.exitAlter_fulltext_stoplist = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_fulltext_stoplist. +TSqlParserListener.prototype.enterCreate_fulltext_stoplist = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_fulltext_stoplist. +TSqlParserListener.prototype.exitCreate_fulltext_stoplist = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_login_sql_server. +TSqlParserListener.prototype.enterAlter_login_sql_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_login_sql_server. +TSqlParserListener.prototype.exitAlter_login_sql_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_login_sql_server. +TSqlParserListener.prototype.enterCreate_login_sql_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_login_sql_server. +TSqlParserListener.prototype.exitCreate_login_sql_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_login_azure_sql. +TSqlParserListener.prototype.enterAlter_login_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_login_azure_sql. +TSqlParserListener.prototype.exitAlter_login_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_login_azure_sql. +TSqlParserListener.prototype.enterCreate_login_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_login_azure_sql. +TSqlParserListener.prototype.exitCreate_login_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_login_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.enterAlter_login_azure_sql_dw_and_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_login_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.exitAlter_login_azure_sql_dw_and_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_login_pdw. +TSqlParserListener.prototype.enterCreate_login_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_login_pdw. +TSqlParserListener.prototype.exitCreate_login_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_master_key_sql_server. +TSqlParserListener.prototype.enterAlter_master_key_sql_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_master_key_sql_server. +TSqlParserListener.prototype.exitAlter_master_key_sql_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_master_key_sql_server. +TSqlParserListener.prototype.enterCreate_master_key_sql_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_master_key_sql_server. +TSqlParserListener.prototype.exitCreate_master_key_sql_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_master_key_azure_sql. +TSqlParserListener.prototype.enterAlter_master_key_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_master_key_azure_sql. +TSqlParserListener.prototype.exitAlter_master_key_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_master_key_azure_sql. +TSqlParserListener.prototype.enterCreate_master_key_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_master_key_azure_sql. +TSqlParserListener.prototype.exitCreate_master_key_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_message_type. +TSqlParserListener.prototype.enterAlter_message_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_message_type. +TSqlParserListener.prototype.exitAlter_message_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_partition_function. +TSqlParserListener.prototype.enterAlter_partition_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_partition_function. +TSqlParserListener.prototype.exitAlter_partition_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_partition_scheme. +TSqlParserListener.prototype.enterAlter_partition_scheme = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_partition_scheme. +TSqlParserListener.prototype.exitAlter_partition_scheme = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_remote_service_binding. +TSqlParserListener.prototype.enterAlter_remote_service_binding = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_remote_service_binding. +TSqlParserListener.prototype.exitAlter_remote_service_binding = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_remote_service_binding. +TSqlParserListener.prototype.enterCreate_remote_service_binding = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_remote_service_binding. +TSqlParserListener.prototype.exitCreate_remote_service_binding = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_resource_pool. +TSqlParserListener.prototype.enterCreate_resource_pool = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_resource_pool. +TSqlParserListener.prototype.exitCreate_resource_pool = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_resource_governor. +TSqlParserListener.prototype.enterAlter_resource_governor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_resource_governor. +TSqlParserListener.prototype.exitAlter_resource_governor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_db_role. +TSqlParserListener.prototype.enterAlter_db_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_db_role. +TSqlParserListener.prototype.exitAlter_db_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_db_role. +TSqlParserListener.prototype.enterCreate_db_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_db_role. +TSqlParserListener.prototype.exitCreate_db_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_route. +TSqlParserListener.prototype.enterCreate_route = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_route. +TSqlParserListener.prototype.exitCreate_route = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_rule. +TSqlParserListener.prototype.enterCreate_rule = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_rule. +TSqlParserListener.prototype.exitCreate_rule = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_schema_sql. +TSqlParserListener.prototype.enterAlter_schema_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_schema_sql. +TSqlParserListener.prototype.exitAlter_schema_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_schema. +TSqlParserListener.prototype.enterCreate_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_schema. +TSqlParserListener.prototype.exitCreate_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_schema_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.enterCreate_schema_azure_sql_dw_and_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_schema_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.exitCreate_schema_azure_sql_dw_and_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_schema_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.enterAlter_schema_azure_sql_dw_and_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_schema_azure_sql_dw_and_pdw. +TSqlParserListener.prototype.exitAlter_schema_azure_sql_dw_and_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_search_property_list. +TSqlParserListener.prototype.enterCreate_search_property_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_search_property_list. +TSqlParserListener.prototype.exitCreate_search_property_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_security_policy. +TSqlParserListener.prototype.enterCreate_security_policy = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_security_policy. +TSqlParserListener.prototype.exitCreate_security_policy = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_sequence. +TSqlParserListener.prototype.enterAlter_sequence = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_sequence. +TSqlParserListener.prototype.exitAlter_sequence = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_sequence. +TSqlParserListener.prototype.enterCreate_sequence = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_sequence. +TSqlParserListener.prototype.exitCreate_sequence = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_audit. +TSqlParserListener.prototype.enterAlter_server_audit = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_audit. +TSqlParserListener.prototype.exitAlter_server_audit = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_server_audit. +TSqlParserListener.prototype.enterCreate_server_audit = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_server_audit. +TSqlParserListener.prototype.exitCreate_server_audit = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_audit_specification. +TSqlParserListener.prototype.enterAlter_server_audit_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_audit_specification. +TSqlParserListener.prototype.exitAlter_server_audit_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_server_audit_specification. +TSqlParserListener.prototype.enterCreate_server_audit_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_server_audit_specification. +TSqlParserListener.prototype.exitCreate_server_audit_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_configuration. +TSqlParserListener.prototype.enterAlter_server_configuration = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_configuration. +TSqlParserListener.prototype.exitAlter_server_configuration = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_role. +TSqlParserListener.prototype.enterAlter_server_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_role. +TSqlParserListener.prototype.exitAlter_server_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_server_role. +TSqlParserListener.prototype.enterCreate_server_role = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_server_role. +TSqlParserListener.prototype.exitCreate_server_role = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_server_role_pdw. +TSqlParserListener.prototype.enterAlter_server_role_pdw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_server_role_pdw. +TSqlParserListener.prototype.exitAlter_server_role_pdw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_service. +TSqlParserListener.prototype.enterAlter_service = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_service. +TSqlParserListener.prototype.exitAlter_service = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_service. +TSqlParserListener.prototype.enterCreate_service = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_service. +TSqlParserListener.prototype.exitCreate_service = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_service_master_key. +TSqlParserListener.prototype.enterAlter_service_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_service_master_key. +TSqlParserListener.prototype.exitAlter_service_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_symmetric_key. +TSqlParserListener.prototype.enterAlter_symmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_symmetric_key. +TSqlParserListener.prototype.exitAlter_symmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_symmetric_key. +TSqlParserListener.prototype.enterCreate_symmetric_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_symmetric_key. +TSqlParserListener.prototype.exitCreate_symmetric_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_synonym. +TSqlParserListener.prototype.enterCreate_synonym = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_synonym. +TSqlParserListener.prototype.exitCreate_synonym = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_user. +TSqlParserListener.prototype.enterAlter_user = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_user. +TSqlParserListener.prototype.exitAlter_user = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_user. +TSqlParserListener.prototype.enterCreate_user = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_user. +TSqlParserListener.prototype.exitCreate_user = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_user_azure_sql_dw. +TSqlParserListener.prototype.enterCreate_user_azure_sql_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_user_azure_sql_dw. +TSqlParserListener.prototype.exitCreate_user_azure_sql_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_user_azure_sql. +TSqlParserListener.prototype.enterAlter_user_azure_sql = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_user_azure_sql. +TSqlParserListener.prototype.exitAlter_user_azure_sql = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_workload_group. +TSqlParserListener.prototype.enterAlter_workload_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_workload_group. +TSqlParserListener.prototype.exitAlter_workload_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_workload_group. +TSqlParserListener.prototype.enterCreate_workload_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_workload_group. +TSqlParserListener.prototype.exitCreate_workload_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_xml_schema_collection. +TSqlParserListener.prototype.enterCreate_xml_schema_collection = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_xml_schema_collection. +TSqlParserListener.prototype.exitCreate_xml_schema_collection = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_queue. +TSqlParserListener.prototype.enterCreate_queue = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_queue. +TSqlParserListener.prototype.exitCreate_queue = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#queue_settings. +TSqlParserListener.prototype.enterQueue_settings = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#queue_settings. +TSqlParserListener.prototype.exitQueue_settings = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_queue. +TSqlParserListener.prototype.enterAlter_queue = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_queue. +TSqlParserListener.prototype.exitAlter_queue = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#queue_action. +TSqlParserListener.prototype.enterQueue_action = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#queue_action. +TSqlParserListener.prototype.exitQueue_action = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#queue_rebuild_options. +TSqlParserListener.prototype.enterQueue_rebuild_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#queue_rebuild_options. +TSqlParserListener.prototype.exitQueue_rebuild_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_contract. +TSqlParserListener.prototype.enterCreate_contract = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_contract. +TSqlParserListener.prototype.exitCreate_contract = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#conversation_statement. +TSqlParserListener.prototype.enterConversation_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#conversation_statement. +TSqlParserListener.prototype.exitConversation_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#message_statement. +TSqlParserListener.prototype.enterMessage_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#message_statement. +TSqlParserListener.prototype.exitMessage_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#merge_statement. +TSqlParserListener.prototype.enterMerge_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#merge_statement. +TSqlParserListener.prototype.exitMerge_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#merge_matched. +TSqlParserListener.prototype.enterMerge_matched = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#merge_matched. +TSqlParserListener.prototype.exitMerge_matched = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#merge_not_matched. +TSqlParserListener.prototype.enterMerge_not_matched = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#merge_not_matched. +TSqlParserListener.prototype.exitMerge_not_matched = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#delete_statement. +TSqlParserListener.prototype.enterDelete_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#delete_statement. +TSqlParserListener.prototype.exitDelete_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#delete_statement_from. +TSqlParserListener.prototype.enterDelete_statement_from = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#delete_statement_from. +TSqlParserListener.prototype.exitDelete_statement_from = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#insert_statement. +TSqlParserListener.prototype.enterInsert_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#insert_statement. +TSqlParserListener.prototype.exitInsert_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#insert_statement_value. +TSqlParserListener.prototype.enterInsert_statement_value = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#insert_statement_value. +TSqlParserListener.prototype.exitInsert_statement_value = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#receive_statement. +TSqlParserListener.prototype.enterReceive_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#receive_statement. +TSqlParserListener.prototype.exitReceive_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#select_statement. +TSqlParserListener.prototype.enterSelect_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#select_statement. +TSqlParserListener.prototype.exitSelect_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#time. +TSqlParserListener.prototype.enterTime = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#time. +TSqlParserListener.prototype.exitTime = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#update_statement. +TSqlParserListener.prototype.enterUpdate_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#update_statement. +TSqlParserListener.prototype.exitUpdate_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#output_clause. +TSqlParserListener.prototype.enterOutput_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#output_clause. +TSqlParserListener.prototype.exitOutput_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#output_dml_list_elem. +TSqlParserListener.prototype.enterOutput_dml_list_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#output_dml_list_elem. +TSqlParserListener.prototype.exitOutput_dml_list_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#output_column_name. +TSqlParserListener.prototype.enterOutput_column_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#output_column_name. +TSqlParserListener.prototype.exitOutput_column_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_database. +TSqlParserListener.prototype.enterCreate_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_database. +TSqlParserListener.prototype.exitCreate_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_index. +TSqlParserListener.prototype.enterCreate_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_index. +TSqlParserListener.prototype.exitCreate_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_procedure. +TSqlParserListener.prototype.enterCreate_or_alter_procedure = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_procedure. +TSqlParserListener.prototype.exitCreate_or_alter_procedure = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_trigger. +TSqlParserListener.prototype.enterCreate_or_alter_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_trigger. +TSqlParserListener.prototype.exitCreate_or_alter_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_dml_trigger. +TSqlParserListener.prototype.enterCreate_or_alter_dml_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_dml_trigger. +TSqlParserListener.prototype.exitCreate_or_alter_dml_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dml_trigger_option. +TSqlParserListener.prototype.enterDml_trigger_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dml_trigger_option. +TSqlParserListener.prototype.exitDml_trigger_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dml_trigger_operation. +TSqlParserListener.prototype.enterDml_trigger_operation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dml_trigger_operation. +TSqlParserListener.prototype.exitDml_trigger_operation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_ddl_trigger. +TSqlParserListener.prototype.enterCreate_or_alter_ddl_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_ddl_trigger. +TSqlParserListener.prototype.exitCreate_or_alter_ddl_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ddl_trigger_operation. +TSqlParserListener.prototype.enterDdl_trigger_operation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ddl_trigger_operation. +TSqlParserListener.prototype.exitDdl_trigger_operation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_or_alter_function. +TSqlParserListener.prototype.enterCreate_or_alter_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_or_alter_function. +TSqlParserListener.prototype.exitCreate_or_alter_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_body_returns_select. +TSqlParserListener.prototype.enterFunc_body_returns_select = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_body_returns_select. +TSqlParserListener.prototype.exitFunc_body_returns_select = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_body_returns_table. +TSqlParserListener.prototype.enterFunc_body_returns_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_body_returns_table. +TSqlParserListener.prototype.exitFunc_body_returns_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_body_returns_scalar. +TSqlParserListener.prototype.enterFunc_body_returns_scalar = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_body_returns_scalar. +TSqlParserListener.prototype.exitFunc_body_returns_scalar = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#procedure_param. +TSqlParserListener.prototype.enterProcedure_param = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#procedure_param. +TSqlParserListener.prototype.exitProcedure_param = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#procedure_option. +TSqlParserListener.prototype.enterProcedure_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#procedure_option. +TSqlParserListener.prototype.exitProcedure_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#function_option. +TSqlParserListener.prototype.enterFunction_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#function_option. +TSqlParserListener.prototype.exitFunction_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_statistics. +TSqlParserListener.prototype.enterCreate_statistics = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_statistics. +TSqlParserListener.prototype.exitCreate_statistics = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#update_statistics. +TSqlParserListener.prototype.enterUpdate_statistics = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#update_statistics. +TSqlParserListener.prototype.exitUpdate_statistics = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_table. +TSqlParserListener.prototype.enterCreate_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_table. +TSqlParserListener.prototype.exitCreate_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_options. +TSqlParserListener.prototype.enterTable_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_options. +TSqlParserListener.prototype.exitTable_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_view. +TSqlParserListener.prototype.enterCreate_view = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_view. +TSqlParserListener.prototype.exitCreate_view = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#view_attribute. +TSqlParserListener.prototype.enterView_attribute = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#view_attribute. +TSqlParserListener.prototype.exitView_attribute = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_table. +TSqlParserListener.prototype.enterAlter_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_table. +TSqlParserListener.prototype.exitAlter_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_database. +TSqlParserListener.prototype.enterAlter_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_database. +TSqlParserListener.prototype.exitAlter_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#database_optionspec. +TSqlParserListener.prototype.enterDatabase_optionspec = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#database_optionspec. +TSqlParserListener.prototype.exitDatabase_optionspec = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#auto_option. +TSqlParserListener.prototype.enterAuto_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#auto_option. +TSqlParserListener.prototype.exitAuto_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#change_tracking_option. +TSqlParserListener.prototype.enterChange_tracking_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#change_tracking_option. +TSqlParserListener.prototype.exitChange_tracking_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#change_tracking_option_list. +TSqlParserListener.prototype.enterChange_tracking_option_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#change_tracking_option_list. +TSqlParserListener.prototype.exitChange_tracking_option_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#containment_option. +TSqlParserListener.prototype.enterContainment_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#containment_option. +TSqlParserListener.prototype.exitContainment_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#cursor_option. +TSqlParserListener.prototype.enterCursor_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#cursor_option. +TSqlParserListener.prototype.exitCursor_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#alter_endpoint. +TSqlParserListener.prototype.enterAlter_endpoint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#alter_endpoint. +TSqlParserListener.prototype.exitAlter_endpoint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#database_mirroring_option. +TSqlParserListener.prototype.enterDatabase_mirroring_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#database_mirroring_option. +TSqlParserListener.prototype.exitDatabase_mirroring_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mirroring_set_option. +TSqlParserListener.prototype.enterMirroring_set_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mirroring_set_option. +TSqlParserListener.prototype.exitMirroring_set_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mirroring_partner. +TSqlParserListener.prototype.enterMirroring_partner = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mirroring_partner. +TSqlParserListener.prototype.exitMirroring_partner = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mirroring_witness. +TSqlParserListener.prototype.enterMirroring_witness = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mirroring_witness. +TSqlParserListener.prototype.exitMirroring_witness = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#witness_partner_equal. +TSqlParserListener.prototype.enterWitness_partner_equal = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#witness_partner_equal. +TSqlParserListener.prototype.exitWitness_partner_equal = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#partner_option. +TSqlParserListener.prototype.enterPartner_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#partner_option. +TSqlParserListener.prototype.exitPartner_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#witness_option. +TSqlParserListener.prototype.enterWitness_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#witness_option. +TSqlParserListener.prototype.exitWitness_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#witness_server. +TSqlParserListener.prototype.enterWitness_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#witness_server. +TSqlParserListener.prototype.exitWitness_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#partner_server. +TSqlParserListener.prototype.enterPartner_server = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#partner_server. +TSqlParserListener.prototype.exitPartner_server = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mirroring_host_port_seperator. +TSqlParserListener.prototype.enterMirroring_host_port_seperator = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mirroring_host_port_seperator. +TSqlParserListener.prototype.exitMirroring_host_port_seperator = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#partner_server_tcp_prefix. +TSqlParserListener.prototype.enterPartner_server_tcp_prefix = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#partner_server_tcp_prefix. +TSqlParserListener.prototype.exitPartner_server_tcp_prefix = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#port_number. +TSqlParserListener.prototype.enterPort_number = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#port_number. +TSqlParserListener.prototype.exitPort_number = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#host. +TSqlParserListener.prototype.enterHost = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#host. +TSqlParserListener.prototype.exitHost = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#date_correlation_optimization_option. +TSqlParserListener.prototype.enterDate_correlation_optimization_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#date_correlation_optimization_option. +TSqlParserListener.prototype.exitDate_correlation_optimization_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#db_encryption_option. +TSqlParserListener.prototype.enterDb_encryption_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#db_encryption_option. +TSqlParserListener.prototype.exitDb_encryption_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#db_state_option. +TSqlParserListener.prototype.enterDb_state_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#db_state_option. +TSqlParserListener.prototype.exitDb_state_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#db_update_option. +TSqlParserListener.prototype.enterDb_update_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#db_update_option. +TSqlParserListener.prototype.exitDb_update_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#db_user_access_option. +TSqlParserListener.prototype.enterDb_user_access_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#db_user_access_option. +TSqlParserListener.prototype.exitDb_user_access_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#delayed_durability_option. +TSqlParserListener.prototype.enterDelayed_durability_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#delayed_durability_option. +TSqlParserListener.prototype.exitDelayed_durability_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#external_access_option. +TSqlParserListener.prototype.enterExternal_access_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#external_access_option. +TSqlParserListener.prototype.exitExternal_access_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#hadr_options. +TSqlParserListener.prototype.enterHadr_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#hadr_options. +TSqlParserListener.prototype.exitHadr_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#mixed_page_allocation_option. +TSqlParserListener.prototype.enterMixed_page_allocation_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#mixed_page_allocation_option. +TSqlParserListener.prototype.exitMixed_page_allocation_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#parameterization_option. +TSqlParserListener.prototype.enterParameterization_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#parameterization_option. +TSqlParserListener.prototype.exitParameterization_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#recovery_option. +TSqlParserListener.prototype.enterRecovery_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#recovery_option. +TSqlParserListener.prototype.exitRecovery_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#service_broker_option. +TSqlParserListener.prototype.enterService_broker_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#service_broker_option. +TSqlParserListener.prototype.exitService_broker_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#snapshot_option. +TSqlParserListener.prototype.enterSnapshot_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#snapshot_option. +TSqlParserListener.prototype.exitSnapshot_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sql_option. +TSqlParserListener.prototype.enterSql_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sql_option. +TSqlParserListener.prototype.exitSql_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#target_recovery_time_option. +TSqlParserListener.prototype.enterTarget_recovery_time_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#target_recovery_time_option. +TSqlParserListener.prototype.exitTarget_recovery_time_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#termination. +TSqlParserListener.prototype.enterTermination = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#termination. +TSqlParserListener.prototype.exitTermination = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_index. +TSqlParserListener.prototype.enterDrop_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_index. +TSqlParserListener.prototype.exitDrop_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_relational_or_xml_or_spatial_index. +TSqlParserListener.prototype.enterDrop_relational_or_xml_or_spatial_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_relational_or_xml_or_spatial_index. +TSqlParserListener.prototype.exitDrop_relational_or_xml_or_spatial_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_backward_compatible_index. +TSqlParserListener.prototype.enterDrop_backward_compatible_index = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_backward_compatible_index. +TSqlParserListener.prototype.exitDrop_backward_compatible_index = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_procedure. +TSqlParserListener.prototype.enterDrop_procedure = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_procedure. +TSqlParserListener.prototype.exitDrop_procedure = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_trigger. +TSqlParserListener.prototype.enterDrop_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_trigger. +TSqlParserListener.prototype.exitDrop_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_dml_trigger. +TSqlParserListener.prototype.enterDrop_dml_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_dml_trigger. +TSqlParserListener.prototype.exitDrop_dml_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_ddl_trigger. +TSqlParserListener.prototype.enterDrop_ddl_trigger = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_ddl_trigger. +TSqlParserListener.prototype.exitDrop_ddl_trigger = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_function. +TSqlParserListener.prototype.enterDrop_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_function. +TSqlParserListener.prototype.exitDrop_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_statistics. +TSqlParserListener.prototype.enterDrop_statistics = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_statistics. +TSqlParserListener.prototype.exitDrop_statistics = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_table. +TSqlParserListener.prototype.enterDrop_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_table. +TSqlParserListener.prototype.exitDrop_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_view. +TSqlParserListener.prototype.enterDrop_view = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_view. +TSqlParserListener.prototype.exitDrop_view = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_type. +TSqlParserListener.prototype.enterCreate_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_type. +TSqlParserListener.prototype.exitCreate_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#drop_type. +TSqlParserListener.prototype.enterDrop_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#drop_type. +TSqlParserListener.prototype.exitDrop_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#rowset_function_limited. +TSqlParserListener.prototype.enterRowset_function_limited = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#rowset_function_limited. +TSqlParserListener.prototype.exitRowset_function_limited = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#openquery. +TSqlParserListener.prototype.enterOpenquery = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#openquery. +TSqlParserListener.prototype.exitOpenquery = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#opendatasource. +TSqlParserListener.prototype.enterOpendatasource = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#opendatasource. +TSqlParserListener.prototype.exitOpendatasource = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_statement. +TSqlParserListener.prototype.enterDeclare_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_statement. +TSqlParserListener.prototype.exitDeclare_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#cursor_statement. +TSqlParserListener.prototype.enterCursor_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#cursor_statement. +TSqlParserListener.prototype.exitCursor_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_database. +TSqlParserListener.prototype.enterBackup_database = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_database. +TSqlParserListener.prototype.exitBackup_database = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_log. +TSqlParserListener.prototype.enterBackup_log = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_log. +TSqlParserListener.prototype.exitBackup_log = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_certificate. +TSqlParserListener.prototype.enterBackup_certificate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_certificate. +TSqlParserListener.prototype.exitBackup_certificate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_master_key. +TSqlParserListener.prototype.enterBackup_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_master_key. +TSqlParserListener.prototype.exitBackup_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#backup_service_master_key. +TSqlParserListener.prototype.enterBackup_service_master_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#backup_service_master_key. +TSqlParserListener.prototype.exitBackup_service_master_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#kill_statement. +TSqlParserListener.prototype.enterKill_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#kill_statement. +TSqlParserListener.prototype.exitKill_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#kill_process. +TSqlParserListener.prototype.enterKill_process = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#kill_process. +TSqlParserListener.prototype.exitKill_process = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#kill_query_notification. +TSqlParserListener.prototype.enterKill_query_notification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#kill_query_notification. +TSqlParserListener.prototype.exitKill_query_notification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#kill_stats_job. +TSqlParserListener.prototype.enterKill_stats_job = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#kill_stats_job. +TSqlParserListener.prototype.exitKill_stats_job = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_statement. +TSqlParserListener.prototype.enterExecute_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_statement. +TSqlParserListener.prototype.exitExecute_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_body. +TSqlParserListener.prototype.enterExecute_body = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_body. +TSqlParserListener.prototype.exitExecute_body = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_statement_arg. +TSqlParserListener.prototype.enterExecute_statement_arg = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_statement_arg. +TSqlParserListener.prototype.exitExecute_statement_arg = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_var_string. +TSqlParserListener.prototype.enterExecute_var_string = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_var_string. +TSqlParserListener.prototype.exitExecute_var_string = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#security_statement. +TSqlParserListener.prototype.enterSecurity_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#security_statement. +TSqlParserListener.prototype.exitSecurity_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_certificate. +TSqlParserListener.prototype.enterCreate_certificate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_certificate. +TSqlParserListener.prototype.exitCreate_certificate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#existing_keys. +TSqlParserListener.prototype.enterExisting_keys = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#existing_keys. +TSqlParserListener.prototype.exitExisting_keys = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#private_key_options. +TSqlParserListener.prototype.enterPrivate_key_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#private_key_options. +TSqlParserListener.prototype.exitPrivate_key_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#generate_new_keys. +TSqlParserListener.prototype.enterGenerate_new_keys = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#generate_new_keys. +TSqlParserListener.prototype.exitGenerate_new_keys = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#date_options. +TSqlParserListener.prototype.enterDate_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#date_options. +TSqlParserListener.prototype.exitDate_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#open_key. +TSqlParserListener.prototype.enterOpen_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#open_key. +TSqlParserListener.prototype.exitOpen_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#close_key. +TSqlParserListener.prototype.enterClose_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#close_key. +TSqlParserListener.prototype.exitClose_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_key. +TSqlParserListener.prototype.enterCreate_key = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_key. +TSqlParserListener.prototype.exitCreate_key = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#key_options. +TSqlParserListener.prototype.enterKey_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#key_options. +TSqlParserListener.prototype.exitKey_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#algorithm. +TSqlParserListener.prototype.enterAlgorithm = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#algorithm. +TSqlParserListener.prototype.exitAlgorithm = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#encryption_mechanism. +TSqlParserListener.prototype.enterEncryption_mechanism = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#encryption_mechanism. +TSqlParserListener.prototype.exitEncryption_mechanism = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#decryption_mechanism. +TSqlParserListener.prototype.enterDecryption_mechanism = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#decryption_mechanism. +TSqlParserListener.prototype.exitDecryption_mechanism = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#grant_permission. +TSqlParserListener.prototype.enterGrant_permission = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#grant_permission. +TSqlParserListener.prototype.exitGrant_permission = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#set_statement. +TSqlParserListener.prototype.enterSet_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#set_statement. +TSqlParserListener.prototype.exitSet_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#transaction_statement. +TSqlParserListener.prototype.enterTransaction_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#transaction_statement. +TSqlParserListener.prototype.exitTransaction_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#go_statement. +TSqlParserListener.prototype.enterGo_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#go_statement. +TSqlParserListener.prototype.exitGo_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#use_statement. +TSqlParserListener.prototype.enterUse_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#use_statement. +TSqlParserListener.prototype.exitUse_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#setuser_statement. +TSqlParserListener.prototype.enterSetuser_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#setuser_statement. +TSqlParserListener.prototype.exitSetuser_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#reconfigure_statement. +TSqlParserListener.prototype.enterReconfigure_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#reconfigure_statement. +TSqlParserListener.prototype.exitReconfigure_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#shutdown_statement. +TSqlParserListener.prototype.enterShutdown_statement = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#shutdown_statement. +TSqlParserListener.prototype.exitShutdown_statement = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dbcc_clause. +TSqlParserListener.prototype.enterDbcc_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dbcc_clause. +TSqlParserListener.prototype.exitDbcc_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#dbcc_options. +TSqlParserListener.prototype.enterDbcc_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#dbcc_options. +TSqlParserListener.prototype.exitDbcc_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#execute_clause. +TSqlParserListener.prototype.enterExecute_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#execute_clause. +TSqlParserListener.prototype.exitExecute_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_local. +TSqlParserListener.prototype.enterDeclare_local = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_local. +TSqlParserListener.prototype.exitDeclare_local = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_type_definition. +TSqlParserListener.prototype.enterTable_type_definition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_type_definition. +TSqlParserListener.prototype.exitTable_type_definition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#xml_type_definition. +TSqlParserListener.prototype.enterXml_type_definition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#xml_type_definition. +TSqlParserListener.prototype.exitXml_type_definition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#xml_schema_collection. +TSqlParserListener.prototype.enterXml_schema_collection = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#xml_schema_collection. +TSqlParserListener.prototype.exitXml_schema_collection = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_def_table_constraints. +TSqlParserListener.prototype.enterColumn_def_table_constraints = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_def_table_constraints. +TSqlParserListener.prototype.exitColumn_def_table_constraints = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_def_table_constraint. +TSqlParserListener.prototype.enterColumn_def_table_constraint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_def_table_constraint. +TSqlParserListener.prototype.exitColumn_def_table_constraint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_definition. +TSqlParserListener.prototype.enterColumn_definition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_definition. +TSqlParserListener.prototype.exitColumn_definition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#materialized_column_definition. +TSqlParserListener.prototype.enterMaterialized_column_definition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#materialized_column_definition. +TSqlParserListener.prototype.exitMaterialized_column_definition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_constraint. +TSqlParserListener.prototype.enterColumn_constraint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_constraint. +TSqlParserListener.prototype.exitColumn_constraint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_constraint. +TSqlParserListener.prototype.enterTable_constraint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_constraint. +TSqlParserListener.prototype.exitTable_constraint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#on_delete. +TSqlParserListener.prototype.enterOn_delete = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#on_delete. +TSqlParserListener.prototype.exitOn_delete = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#on_update. +TSqlParserListener.prototype.enterOn_update = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#on_update. +TSqlParserListener.prototype.exitOn_update = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#index_options. +TSqlParserListener.prototype.enterIndex_options = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#index_options. +TSqlParserListener.prototype.exitIndex_options = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#index_option. +TSqlParserListener.prototype.enterIndex_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#index_option. +TSqlParserListener.prototype.exitIndex_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_cursor. +TSqlParserListener.prototype.enterDeclare_cursor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_cursor. +TSqlParserListener.prototype.exitDeclare_cursor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_set_cursor_common. +TSqlParserListener.prototype.enterDeclare_set_cursor_common = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_set_cursor_common. +TSqlParserListener.prototype.exitDeclare_set_cursor_common = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#declare_set_cursor_common_partial. +TSqlParserListener.prototype.enterDeclare_set_cursor_common_partial = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#declare_set_cursor_common_partial. +TSqlParserListener.prototype.exitDeclare_set_cursor_common_partial = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#fetch_cursor. +TSqlParserListener.prototype.enterFetch_cursor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#fetch_cursor. +TSqlParserListener.prototype.exitFetch_cursor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#set_special. +TSqlParserListener.prototype.enterSet_special = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#set_special. +TSqlParserListener.prototype.exitSet_special = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#constant_LOCAL_ID. +TSqlParserListener.prototype.enterConstant_LOCAL_ID = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#constant_LOCAL_ID. +TSqlParserListener.prototype.exitConstant_LOCAL_ID = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#expression. +TSqlParserListener.prototype.enterExpression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#expression. +TSqlParserListener.prototype.exitExpression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#primitive_expression. +TSqlParserListener.prototype.enterPrimitive_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#primitive_expression. +TSqlParserListener.prototype.exitPrimitive_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#case_expression. +TSqlParserListener.prototype.enterCase_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#case_expression. +TSqlParserListener.prototype.exitCase_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#unary_operator_expression. +TSqlParserListener.prototype.enterUnary_operator_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#unary_operator_expression. +TSqlParserListener.prototype.exitUnary_operator_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#bracket_expression. +TSqlParserListener.prototype.enterBracket_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#bracket_expression. +TSqlParserListener.prototype.exitBracket_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#constant_expression. +TSqlParserListener.prototype.enterConstant_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#constant_expression. +TSqlParserListener.prototype.exitConstant_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#subquery. +TSqlParserListener.prototype.enterSubquery = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#subquery. +TSqlParserListener.prototype.exitSubquery = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#with_expression. +TSqlParserListener.prototype.enterWith_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#with_expression. +TSqlParserListener.prototype.exitWith_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#common_table_expression. +TSqlParserListener.prototype.enterCommon_table_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#common_table_expression. +TSqlParserListener.prototype.exitCommon_table_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#update_elem. +TSqlParserListener.prototype.enterUpdate_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#update_elem. +TSqlParserListener.prototype.exitUpdate_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#search_condition_list. +TSqlParserListener.prototype.enterSearch_condition_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#search_condition_list. +TSqlParserListener.prototype.exitSearch_condition_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#search_condition. +TSqlParserListener.prototype.enterSearch_condition = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#search_condition. +TSqlParserListener.prototype.exitSearch_condition = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#search_condition_and. +TSqlParserListener.prototype.enterSearch_condition_and = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#search_condition_and. +TSqlParserListener.prototype.exitSearch_condition_and = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#search_condition_not. +TSqlParserListener.prototype.enterSearch_condition_not = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#search_condition_not. +TSqlParserListener.prototype.exitSearch_condition_not = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#predicate. +TSqlParserListener.prototype.enterPredicate = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#predicate. +TSqlParserListener.prototype.exitPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#query_expression. +TSqlParserListener.prototype.enterQuery_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#query_expression. +TSqlParserListener.prototype.exitQuery_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sql_union. +TSqlParserListener.prototype.enterSql_union = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sql_union. +TSqlParserListener.prototype.exitSql_union = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#query_specification. +TSqlParserListener.prototype.enterQuery_specification = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#query_specification. +TSqlParserListener.prototype.exitQuery_specification = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#top_clause. +TSqlParserListener.prototype.enterTop_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#top_clause. +TSqlParserListener.prototype.exitTop_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#top_percent. +TSqlParserListener.prototype.enterTop_percent = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#top_percent. +TSqlParserListener.prototype.exitTop_percent = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#top_count. +TSqlParserListener.prototype.enterTop_count = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#top_count. +TSqlParserListener.prototype.exitTop_count = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#order_by_clause. +TSqlParserListener.prototype.enterOrder_by_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#order_by_clause. +TSqlParserListener.prototype.exitOrder_by_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#for_clause. +TSqlParserListener.prototype.enterFor_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#for_clause. +TSqlParserListener.prototype.exitFor_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#xml_common_directives. +TSqlParserListener.prototype.enterXml_common_directives = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#xml_common_directives. +TSqlParserListener.prototype.exitXml_common_directives = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#order_by_expression. +TSqlParserListener.prototype.enterOrder_by_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#order_by_expression. +TSqlParserListener.prototype.exitOrder_by_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#group_by_item. +TSqlParserListener.prototype.enterGroup_by_item = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#group_by_item. +TSqlParserListener.prototype.exitGroup_by_item = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#option_clause. +TSqlParserListener.prototype.enterOption_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#option_clause. +TSqlParserListener.prototype.exitOption_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#option. +TSqlParserListener.prototype.enterOption = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#option. +TSqlParserListener.prototype.exitOption = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#optimize_for_arg. +TSqlParserListener.prototype.enterOptimize_for_arg = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#optimize_for_arg. +TSqlParserListener.prototype.exitOptimize_for_arg = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#select_list. +TSqlParserListener.prototype.enterSelect_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#select_list. +TSqlParserListener.prototype.exitSelect_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#udt_method_arguments. +TSqlParserListener.prototype.enterUdt_method_arguments = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#udt_method_arguments. +TSqlParserListener.prototype.exitUdt_method_arguments = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#asterisk. +TSqlParserListener.prototype.enterAsterisk = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#asterisk. +TSqlParserListener.prototype.exitAsterisk = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_elem. +TSqlParserListener.prototype.enterColumn_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_elem. +TSqlParserListener.prototype.exitColumn_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#udt_elem. +TSqlParserListener.prototype.enterUdt_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#udt_elem. +TSqlParserListener.prototype.exitUdt_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#expression_elem. +TSqlParserListener.prototype.enterExpression_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#expression_elem. +TSqlParserListener.prototype.exitExpression_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#select_list_elem. +TSqlParserListener.prototype.enterSelect_list_elem = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#select_list_elem. +TSqlParserListener.prototype.exitSelect_list_elem = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_sources. +TSqlParserListener.prototype.enterTable_sources = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_sources. +TSqlParserListener.prototype.exitTable_sources = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_source. +TSqlParserListener.prototype.enterTable_source = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_source. +TSqlParserListener.prototype.exitTable_source = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_source_item_joined. +TSqlParserListener.prototype.enterTable_source_item_joined = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_source_item_joined. +TSqlParserListener.prototype.exitTable_source_item_joined = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_source_item. +TSqlParserListener.prototype.enterTable_source_item = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_source_item. +TSqlParserListener.prototype.exitTable_source_item = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#open_xml. +TSqlParserListener.prototype.enterOpen_xml = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#open_xml. +TSqlParserListener.prototype.exitOpen_xml = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#schema_declaration. +TSqlParserListener.prototype.enterSchema_declaration = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#schema_declaration. +TSqlParserListener.prototype.exitSchema_declaration = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_declaration. +TSqlParserListener.prototype.enterColumn_declaration = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_declaration. +TSqlParserListener.prototype.exitColumn_declaration = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#change_table. +TSqlParserListener.prototype.enterChange_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#change_table. +TSqlParserListener.prototype.exitChange_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#join_part. +TSqlParserListener.prototype.enterJoin_part = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#join_part. +TSqlParserListener.prototype.exitJoin_part = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#pivot_clause. +TSqlParserListener.prototype.enterPivot_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#pivot_clause. +TSqlParserListener.prototype.exitPivot_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#unpivot_clause. +TSqlParserListener.prototype.enterUnpivot_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#unpivot_clause. +TSqlParserListener.prototype.exitUnpivot_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#full_column_name_list. +TSqlParserListener.prototype.enterFull_column_name_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#full_column_name_list. +TSqlParserListener.prototype.exitFull_column_name_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_name_with_hint. +TSqlParserListener.prototype.enterTable_name_with_hint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_name_with_hint. +TSqlParserListener.prototype.exitTable_name_with_hint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#rowset_function. +TSqlParserListener.prototype.enterRowset_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#rowset_function. +TSqlParserListener.prototype.exitRowset_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#bulk_option. +TSqlParserListener.prototype.enterBulk_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#bulk_option. +TSqlParserListener.prototype.exitBulk_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#derived_table. +TSqlParserListener.prototype.enterDerived_table = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#derived_table. +TSqlParserListener.prototype.exitDerived_table = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#BINARY_CHECKSUM. +TSqlParserListener.prototype.enterBINARY_CHECKSUM = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#BINARY_CHECKSUM. +TSqlParserListener.prototype.exitBINARY_CHECKSUM = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CAST. +TSqlParserListener.prototype.enterCAST = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CAST. +TSqlParserListener.prototype.exitCAST = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CONVERT. +TSqlParserListener.prototype.enterCONVERT = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CONVERT. +TSqlParserListener.prototype.exitCONVERT = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CHECKSUM. +TSqlParserListener.prototype.enterCHECKSUM = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CHECKSUM. +TSqlParserListener.prototype.exitCHECKSUM = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#COALESCE. +TSqlParserListener.prototype.enterCOALESCE = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#COALESCE. +TSqlParserListener.prototype.exitCOALESCE = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CURRENT_TIMESTAMP. +TSqlParserListener.prototype.enterCURRENT_TIMESTAMP = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CURRENT_TIMESTAMP. +TSqlParserListener.prototype.exitCURRENT_TIMESTAMP = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#CURRENT_USER. +TSqlParserListener.prototype.enterCURRENT_USER = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#CURRENT_USER. +TSqlParserListener.prototype.exitCURRENT_USER = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#DATEADD. +TSqlParserListener.prototype.enterDATEADD = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#DATEADD. +TSqlParserListener.prototype.exitDATEADD = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#DATEDIFF. +TSqlParserListener.prototype.enterDATEDIFF = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#DATEDIFF. +TSqlParserListener.prototype.exitDATEDIFF = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#DATENAME. +TSqlParserListener.prototype.enterDATENAME = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#DATENAME. +TSqlParserListener.prototype.exitDATENAME = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#DATEPART. +TSqlParserListener.prototype.enterDATEPART = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#DATEPART. +TSqlParserListener.prototype.exitDATEPART = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#GETDATE. +TSqlParserListener.prototype.enterGETDATE = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#GETDATE. +TSqlParserListener.prototype.exitGETDATE = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#GETUTCDATE. +TSqlParserListener.prototype.enterGETUTCDATE = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#GETUTCDATE. +TSqlParserListener.prototype.exitGETUTCDATE = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#IDENTITY. +TSqlParserListener.prototype.enterIDENTITY = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#IDENTITY. +TSqlParserListener.prototype.exitIDENTITY = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#MIN_ACTIVE_ROWVERSION. +TSqlParserListener.prototype.enterMIN_ACTIVE_ROWVERSION = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#MIN_ACTIVE_ROWVERSION. +TSqlParserListener.prototype.exitMIN_ACTIVE_ROWVERSION = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#NULLIF. +TSqlParserListener.prototype.enterNULLIF = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#NULLIF. +TSqlParserListener.prototype.exitNULLIF = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#STUFF. +TSqlParserListener.prototype.enterSTUFF = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#STUFF. +TSqlParserListener.prototype.exitSTUFF = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#SESSION_USER. +TSqlParserListener.prototype.enterSESSION_USER = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#SESSION_USER. +TSqlParserListener.prototype.exitSESSION_USER = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#SYSTEM_USER. +TSqlParserListener.prototype.enterSYSTEM_USER = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#SYSTEM_USER. +TSqlParserListener.prototype.exitSYSTEM_USER = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ISNULL. +TSqlParserListener.prototype.enterISNULL = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ISNULL. +TSqlParserListener.prototype.exitISNULL = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#XML_DATA_TYPE_FUNC. +TSqlParserListener.prototype.enterXML_DATA_TYPE_FUNC = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#XML_DATA_TYPE_FUNC. +TSqlParserListener.prototype.exitXML_DATA_TYPE_FUNC = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#IFF. +TSqlParserListener.prototype.enterIFF = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#IFF. +TSqlParserListener.prototype.exitIFF = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#RANKING_WINDOWED_FUNC. +TSqlParserListener.prototype.enterRANKING_WINDOWED_FUNC = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#RANKING_WINDOWED_FUNC. +TSqlParserListener.prototype.exitRANKING_WINDOWED_FUNC = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#AGGREGATE_WINDOWED_FUNC. +TSqlParserListener.prototype.enterAGGREGATE_WINDOWED_FUNC = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#AGGREGATE_WINDOWED_FUNC. +TSqlParserListener.prototype.exitAGGREGATE_WINDOWED_FUNC = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ANALYTIC_WINDOWED_FUNC. +TSqlParserListener.prototype.enterANALYTIC_WINDOWED_FUNC = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ANALYTIC_WINDOWED_FUNC. +TSqlParserListener.prototype.exitANALYTIC_WINDOWED_FUNC = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#SCALAR_FUNCTION. +TSqlParserListener.prototype.enterSCALAR_FUNCTION = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#SCALAR_FUNCTION. +TSqlParserListener.prototype.exitSCALAR_FUNCTION = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#STRINGAGG. +TSqlParserListener.prototype.enterSTRINGAGG = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#STRINGAGG. +TSqlParserListener.prototype.exitSTRINGAGG = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#xml_data_type_methods. +TSqlParserListener.prototype.enterXml_data_type_methods = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#xml_data_type_methods. +TSqlParserListener.prototype.exitXml_data_type_methods = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#value_method. +TSqlParserListener.prototype.enterValue_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#value_method. +TSqlParserListener.prototype.exitValue_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#query_method. +TSqlParserListener.prototype.enterQuery_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#query_method. +TSqlParserListener.prototype.exitQuery_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#exist_method. +TSqlParserListener.prototype.enterExist_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#exist_method. +TSqlParserListener.prototype.exitExist_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#modify_method. +TSqlParserListener.prototype.enterModify_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#modify_method. +TSqlParserListener.prototype.exitModify_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#nodes_method. +TSqlParserListener.prototype.enterNodes_method = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#nodes_method. +TSqlParserListener.prototype.exitNodes_method = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#switch_section. +TSqlParserListener.prototype.enterSwitch_section = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#switch_section. +TSqlParserListener.prototype.exitSwitch_section = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#switch_search_condition_section. +TSqlParserListener.prototype.enterSwitch_search_condition_section = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#switch_search_condition_section. +TSqlParserListener.prototype.exitSwitch_search_condition_section = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#as_column_alias. +TSqlParserListener.prototype.enterAs_column_alias = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#as_column_alias. +TSqlParserListener.prototype.exitAs_column_alias = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#as_table_alias. +TSqlParserListener.prototype.enterAs_table_alias = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#as_table_alias. +TSqlParserListener.prototype.exitAs_table_alias = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_alias. +TSqlParserListener.prototype.enterTable_alias = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_alias. +TSqlParserListener.prototype.exitTable_alias = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#with_table_hints. +TSqlParserListener.prototype.enterWith_table_hints = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#with_table_hints. +TSqlParserListener.prototype.exitWith_table_hints = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#insert_with_table_hints. +TSqlParserListener.prototype.enterInsert_with_table_hints = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#insert_with_table_hints. +TSqlParserListener.prototype.exitInsert_with_table_hints = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_hint. +TSqlParserListener.prototype.enterTable_hint = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_hint. +TSqlParserListener.prototype.exitTable_hint = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#index_value. +TSqlParserListener.prototype.enterIndex_value = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#index_value. +TSqlParserListener.prototype.exitIndex_value = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_alias_list. +TSqlParserListener.prototype.enterColumn_alias_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_alias_list. +TSqlParserListener.prototype.exitColumn_alias_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_alias. +TSqlParserListener.prototype.enterColumn_alias = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_alias. +TSqlParserListener.prototype.exitColumn_alias = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_value_constructor. +TSqlParserListener.prototype.enterTable_value_constructor = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_value_constructor. +TSqlParserListener.prototype.exitTable_value_constructor = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#expression_list. +TSqlParserListener.prototype.enterExpression_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#expression_list. +TSqlParserListener.prototype.exitExpression_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ranking_windowed_function. +TSqlParserListener.prototype.enterRanking_windowed_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ranking_windowed_function. +TSqlParserListener.prototype.exitRanking_windowed_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#aggregate_windowed_function. +TSqlParserListener.prototype.enterAggregate_windowed_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#aggregate_windowed_function. +TSqlParserListener.prototype.exitAggregate_windowed_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#analytic_windowed_function. +TSqlParserListener.prototype.enterAnalytic_windowed_function = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#analytic_windowed_function. +TSqlParserListener.prototype.exitAnalytic_windowed_function = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#all_distinct_expression. +TSqlParserListener.prototype.enterAll_distinct_expression = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#all_distinct_expression. +TSqlParserListener.prototype.exitAll_distinct_expression = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#over_clause. +TSqlParserListener.prototype.enterOver_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#over_clause. +TSqlParserListener.prototype.exitOver_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#row_or_range_clause. +TSqlParserListener.prototype.enterRow_or_range_clause = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#row_or_range_clause. +TSqlParserListener.prototype.exitRow_or_range_clause = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#window_frame_extent. +TSqlParserListener.prototype.enterWindow_frame_extent = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#window_frame_extent. +TSqlParserListener.prototype.exitWindow_frame_extent = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#window_frame_bound. +TSqlParserListener.prototype.enterWindow_frame_bound = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#window_frame_bound. +TSqlParserListener.prototype.exitWindow_frame_bound = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#window_frame_preceding. +TSqlParserListener.prototype.enterWindow_frame_preceding = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#window_frame_preceding. +TSqlParserListener.prototype.exitWindow_frame_preceding = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#window_frame_following. +TSqlParserListener.prototype.enterWindow_frame_following = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#window_frame_following. +TSqlParserListener.prototype.exitWindow_frame_following = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#create_database_option. +TSqlParserListener.prototype.enterCreate_database_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#create_database_option. +TSqlParserListener.prototype.exitCreate_database_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#database_filestream_option. +TSqlParserListener.prototype.enterDatabase_filestream_option = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#database_filestream_option. +TSqlParserListener.prototype.exitDatabase_filestream_option = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#database_file_spec. +TSqlParserListener.prototype.enterDatabase_file_spec = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#database_file_spec. +TSqlParserListener.prototype.exitDatabase_file_spec = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_group. +TSqlParserListener.prototype.enterFile_group = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_group. +TSqlParserListener.prototype.exitFile_group = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_spec. +TSqlParserListener.prototype.enterFile_spec = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_spec. +TSqlParserListener.prototype.exitFile_spec = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#entity_name. +TSqlParserListener.prototype.enterEntity_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#entity_name. +TSqlParserListener.prototype.exitEntity_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#entity_name_for_azure_dw. +TSqlParserListener.prototype.enterEntity_name_for_azure_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#entity_name_for_azure_dw. +TSqlParserListener.prototype.exitEntity_name_for_azure_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#entity_name_for_parallel_dw. +TSqlParserListener.prototype.enterEntity_name_for_parallel_dw = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#entity_name_for_parallel_dw. +TSqlParserListener.prototype.exitEntity_name_for_parallel_dw = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#full_table_name. +TSqlParserListener.prototype.enterFull_table_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#full_table_name. +TSqlParserListener.prototype.exitFull_table_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#table_name. +TSqlParserListener.prototype.enterTable_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#table_name. +TSqlParserListener.prototype.exitTable_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#simple_name. +TSqlParserListener.prototype.enterSimple_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#simple_name. +TSqlParserListener.prototype.exitSimple_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_proc_name_schema. +TSqlParserListener.prototype.enterFunc_proc_name_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_proc_name_schema. +TSqlParserListener.prototype.exitFunc_proc_name_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_proc_name_database_schema. +TSqlParserListener.prototype.enterFunc_proc_name_database_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_proc_name_database_schema. +TSqlParserListener.prototype.exitFunc_proc_name_database_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#func_proc_name_server_database_schema. +TSqlParserListener.prototype.enterFunc_proc_name_server_database_schema = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#func_proc_name_server_database_schema. +TSqlParserListener.prototype.exitFunc_proc_name_server_database_schema = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#ddl_object. +TSqlParserListener.prototype.enterDdl_object = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#ddl_object. +TSqlParserListener.prototype.exitDdl_object = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#full_column_name. +TSqlParserListener.prototype.enterFull_column_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#full_column_name. +TSqlParserListener.prototype.exitFull_column_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_name_list_with_order. +TSqlParserListener.prototype.enterColumn_name_list_with_order = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_name_list_with_order. +TSqlParserListener.prototype.exitColumn_name_list_with_order = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#column_name_list. +TSqlParserListener.prototype.enterColumn_name_list = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#column_name_list. +TSqlParserListener.prototype.exitColumn_name_list = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#cursor_name. +TSqlParserListener.prototype.enterCursor_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#cursor_name. +TSqlParserListener.prototype.exitCursor_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#on_off. +TSqlParserListener.prototype.enterOn_off = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#on_off. +TSqlParserListener.prototype.exitOn_off = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#clustered. +TSqlParserListener.prototype.enterClustered = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#clustered. +TSqlParserListener.prototype.exitClustered = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#null_notnull. +TSqlParserListener.prototype.enterNull_notnull = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#null_notnull. +TSqlParserListener.prototype.exitNull_notnull = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#null_or_default. +TSqlParserListener.prototype.enterNull_or_default = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#null_or_default. +TSqlParserListener.prototype.exitNull_or_default = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#scalar_function_name. +TSqlParserListener.prototype.enterScalar_function_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#scalar_function_name. +TSqlParserListener.prototype.exitScalar_function_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#begin_conversation_timer. +TSqlParserListener.prototype.enterBegin_conversation_timer = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#begin_conversation_timer. +TSqlParserListener.prototype.exitBegin_conversation_timer = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#begin_conversation_dialog. +TSqlParserListener.prototype.enterBegin_conversation_dialog = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#begin_conversation_dialog. +TSqlParserListener.prototype.exitBegin_conversation_dialog = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#contract_name. +TSqlParserListener.prototype.enterContract_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#contract_name. +TSqlParserListener.prototype.exitContract_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#service_name. +TSqlParserListener.prototype.enterService_name = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#service_name. +TSqlParserListener.prototype.exitService_name = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#end_conversation. +TSqlParserListener.prototype.enterEnd_conversation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#end_conversation. +TSqlParserListener.prototype.exitEnd_conversation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#waitfor_conversation. +TSqlParserListener.prototype.enterWaitfor_conversation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#waitfor_conversation. +TSqlParserListener.prototype.exitWaitfor_conversation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#get_conversation. +TSqlParserListener.prototype.enterGet_conversation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#get_conversation. +TSqlParserListener.prototype.exitGet_conversation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#queue_id. +TSqlParserListener.prototype.enterQueue_id = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#queue_id. +TSqlParserListener.prototype.exitQueue_id = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#send_conversation. +TSqlParserListener.prototype.enterSend_conversation = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#send_conversation. +TSqlParserListener.prototype.exitSend_conversation = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#data_type. +TSqlParserListener.prototype.enterData_type = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#data_type. +TSqlParserListener.prototype.exitData_type = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#default_value. +TSqlParserListener.prototype.enterDefault_value = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#default_value. +TSqlParserListener.prototype.exitDefault_value = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#constant. +TSqlParserListener.prototype.enterConstant = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#constant. +TSqlParserListener.prototype.exitConstant = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#sign. +TSqlParserListener.prototype.enterSign = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#sign. +TSqlParserListener.prototype.exitSign = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#id. +TSqlParserListener.prototype.enterId = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#id. +TSqlParserListener.prototype.exitId = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#simple_id. +TSqlParserListener.prototype.enterSimple_id = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#simple_id. +TSqlParserListener.prototype.exitSimple_id = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#comparison_operator. +TSqlParserListener.prototype.enterComparison_operator = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#comparison_operator. +TSqlParserListener.prototype.exitComparison_operator = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#assignment_operator. +TSqlParserListener.prototype.enterAssignment_operator = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#assignment_operator. +TSqlParserListener.prototype.exitAssignment_operator = function(ctx) { +}; + + +// Enter a parse tree produced by TSqlParser#file_size. +TSqlParserListener.prototype.enterFile_size = function(ctx) { +}; + +// Exit a parse tree produced by TSqlParser#file_size. +TSqlParserListener.prototype.exitFile_size = function(ctx) { +}; + + + +exports.TSqlParserListener = TSqlParserListener; \ No newline at end of file diff --git a/src/parser/TSqlParserVisitor.js b/src/parser/TSqlParserVisitor.js new file mode 100644 index 0000000..c3e5e91 --- /dev/null +++ b/src/parser/TSqlParserVisitor.js @@ -0,0 +1,3094 @@ +// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/tsql/TSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + +// This class defines a complete generic visitor for a parse tree produced by TSqlParser. + +function TSqlParserVisitor() { + antlr4.tree.ParseTreeVisitor.call(this); + return this; +} + +TSqlParserVisitor.prototype = Object.create(antlr4.tree.ParseTreeVisitor.prototype); +TSqlParserVisitor.prototype.constructor = TSqlParserVisitor; + +// Visit a parse tree produced by TSqlParser#tsql_file. +TSqlParserVisitor.prototype.visitTsql_file = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#batch. +TSqlParserVisitor.prototype.visitBatch = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sql_clauses. +TSqlParserVisitor.prototype.visitSql_clauses = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sql_clause. +TSqlParserVisitor.prototype.visitSql_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dml_clause. +TSqlParserVisitor.prototype.visitDml_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ddl_clause. +TSqlParserVisitor.prototype.visitDdl_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_statement. +TSqlParserVisitor.prototype.visitBackup_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#cfl_statement. +TSqlParserVisitor.prototype.visitCfl_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#block_statement. +TSqlParserVisitor.prototype.visitBlock_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#break_statement. +TSqlParserVisitor.prototype.visitBreak_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#continue_statement. +TSqlParserVisitor.prototype.visitContinue_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#goto_statement. +TSqlParserVisitor.prototype.visitGoto_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#return_statement. +TSqlParserVisitor.prototype.visitReturn_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#if_statement. +TSqlParserVisitor.prototype.visitIf_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#throw_statement. +TSqlParserVisitor.prototype.visitThrow_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#throw_error_number. +TSqlParserVisitor.prototype.visitThrow_error_number = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#throw_message. +TSqlParserVisitor.prototype.visitThrow_message = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#throw_state. +TSqlParserVisitor.prototype.visitThrow_state = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#try_catch_statement. +TSqlParserVisitor.prototype.visitTry_catch_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#waitfor_statement. +TSqlParserVisitor.prototype.visitWaitfor_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#while_statement. +TSqlParserVisitor.prototype.visitWhile_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#print_statement. +TSqlParserVisitor.prototype.visitPrint_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#raiseerror_statement. +TSqlParserVisitor.prototype.visitRaiseerror_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#empty_statement. +TSqlParserVisitor.prototype.visitEmpty_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#another_statement. +TSqlParserVisitor.prototype.visitAnother_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_application_role. +TSqlParserVisitor.prototype.visitAlter_application_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_application_role. +TSqlParserVisitor.prototype.visitCreate_application_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_aggregate. +TSqlParserVisitor.prototype.visitDrop_aggregate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_application_role. +TSqlParserVisitor.prototype.visitDrop_application_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly. +TSqlParserVisitor.prototype.visitAlter_assembly = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_start. +TSqlParserVisitor.prototype.visitAlter_assembly_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_from_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_from_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_from_clause_start. +TSqlParserVisitor.prototype.visitAlter_assembly_from_clause_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_drop_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_drop_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_drop_multiple_files. +TSqlParserVisitor.prototype.visitAlter_assembly_drop_multiple_files = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_drop. +TSqlParserVisitor.prototype.visitAlter_assembly_drop = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_add_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_add_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_asssembly_add_clause_start. +TSqlParserVisitor.prototype.visitAlter_asssembly_add_clause_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_client_file_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_client_file_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_file_name. +TSqlParserVisitor.prototype.visitAlter_assembly_file_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_file_bits. +TSqlParserVisitor.prototype.visitAlter_assembly_file_bits = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_as. +TSqlParserVisitor.prototype.visitAlter_assembly_as = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_with_clause. +TSqlParserVisitor.prototype.visitAlter_assembly_with_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_assembly_with. +TSqlParserVisitor.prototype.visitAlter_assembly_with = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#client_assembly_specifier. +TSqlParserVisitor.prototype.visitClient_assembly_specifier = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#assembly_option. +TSqlParserVisitor.prototype.visitAssembly_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#network_file_share. +TSqlParserVisitor.prototype.visitNetwork_file_share = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#network_computer. +TSqlParserVisitor.prototype.visitNetwork_computer = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#network_file_start. +TSqlParserVisitor.prototype.visitNetwork_file_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_path. +TSqlParserVisitor.prototype.visitFile_path = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_directory_path_separator. +TSqlParserVisitor.prototype.visitFile_directory_path_separator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#local_file. +TSqlParserVisitor.prototype.visitLocal_file = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#local_drive. +TSqlParserVisitor.prototype.visitLocal_drive = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#multiple_local_files. +TSqlParserVisitor.prototype.visitMultiple_local_files = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#multiple_local_file_start. +TSqlParserVisitor.prototype.visitMultiple_local_file_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_assembly. +TSqlParserVisitor.prototype.visitCreate_assembly = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_assembly. +TSqlParserVisitor.prototype.visitDrop_assembly = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_asymmetric_key. +TSqlParserVisitor.prototype.visitAlter_asymmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_asymmetric_key_start. +TSqlParserVisitor.prototype.visitAlter_asymmetric_key_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#asymmetric_key_option. +TSqlParserVisitor.prototype.visitAsymmetric_key_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#asymmetric_key_option_start. +TSqlParserVisitor.prototype.visitAsymmetric_key_option_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#asymmetric_key_password_change_option. +TSqlParserVisitor.prototype.visitAsymmetric_key_password_change_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_asymmetric_key. +TSqlParserVisitor.prototype.visitCreate_asymmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_asymmetric_key. +TSqlParserVisitor.prototype.visitDrop_asymmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization. +TSqlParserVisitor.prototype.visitAlter_authorization = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#authorization_grantee. +TSqlParserVisitor.prototype.visitAuthorization_grantee = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#entity_to. +TSqlParserVisitor.prototype.visitEntity_to = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#colon_colon. +TSqlParserVisitor.prototype.visitColon_colon = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization_start. +TSqlParserVisitor.prototype.visitAlter_authorization_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization_for_sql_database. +TSqlParserVisitor.prototype.visitAlter_authorization_for_sql_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization_for_azure_dw. +TSqlParserVisitor.prototype.visitAlter_authorization_for_azure_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_authorization_for_parallel_dw. +TSqlParserVisitor.prototype.visitAlter_authorization_for_parallel_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#class_type. +TSqlParserVisitor.prototype.visitClass_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#class_type_for_sql_database. +TSqlParserVisitor.prototype.visitClass_type_for_sql_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#class_type_for_azure_dw. +TSqlParserVisitor.prototype.visitClass_type_for_azure_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#class_type_for_parallel_dw. +TSqlParserVisitor.prototype.visitClass_type_for_parallel_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_availability_group. +TSqlParserVisitor.prototype.visitDrop_availability_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_availability_group. +TSqlParserVisitor.prototype.visitAlter_availability_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_availability_group_start. +TSqlParserVisitor.prototype.visitAlter_availability_group_start = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_availability_group_options. +TSqlParserVisitor.prototype.visitAlter_availability_group_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_broker_priority. +TSqlParserVisitor.prototype.visitCreate_or_alter_broker_priority = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_broker_priority. +TSqlParserVisitor.prototype.visitDrop_broker_priority = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_certificate. +TSqlParserVisitor.prototype.visitAlter_certificate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_column_encryption_key. +TSqlParserVisitor.prototype.visitAlter_column_encryption_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_column_encryption_key. +TSqlParserVisitor.prototype.visitCreate_column_encryption_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_certificate. +TSqlParserVisitor.prototype.visitDrop_certificate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_column_encryption_key. +TSqlParserVisitor.prototype.visitDrop_column_encryption_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_column_master_key. +TSqlParserVisitor.prototype.visitDrop_column_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_contract. +TSqlParserVisitor.prototype.visitDrop_contract = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_credential. +TSqlParserVisitor.prototype.visitDrop_credential = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_cryptograhic_provider. +TSqlParserVisitor.prototype.visitDrop_cryptograhic_provider = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_database. +TSqlParserVisitor.prototype.visitDrop_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_database_audit_specification. +TSqlParserVisitor.prototype.visitDrop_database_audit_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_database_scoped_credential. +TSqlParserVisitor.prototype.visitDrop_database_scoped_credential = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_default. +TSqlParserVisitor.prototype.visitDrop_default = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_endpoint. +TSqlParserVisitor.prototype.visitDrop_endpoint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_data_source. +TSqlParserVisitor.prototype.visitDrop_external_data_source = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_file_format. +TSqlParserVisitor.prototype.visitDrop_external_file_format = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_library. +TSqlParserVisitor.prototype.visitDrop_external_library = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_resource_pool. +TSqlParserVisitor.prototype.visitDrop_external_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_external_table. +TSqlParserVisitor.prototype.visitDrop_external_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_event_notifications. +TSqlParserVisitor.prototype.visitDrop_event_notifications = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_event_session. +TSqlParserVisitor.prototype.visitDrop_event_session = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_fulltext_catalog. +TSqlParserVisitor.prototype.visitDrop_fulltext_catalog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_fulltext_index. +TSqlParserVisitor.prototype.visitDrop_fulltext_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_fulltext_stoplist. +TSqlParserVisitor.prototype.visitDrop_fulltext_stoplist = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_login. +TSqlParserVisitor.prototype.visitDrop_login = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_master_key. +TSqlParserVisitor.prototype.visitDrop_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_message_type. +TSqlParserVisitor.prototype.visitDrop_message_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_partition_function. +TSqlParserVisitor.prototype.visitDrop_partition_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_partition_scheme. +TSqlParserVisitor.prototype.visitDrop_partition_scheme = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_queue. +TSqlParserVisitor.prototype.visitDrop_queue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_remote_service_binding. +TSqlParserVisitor.prototype.visitDrop_remote_service_binding = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_resource_pool. +TSqlParserVisitor.prototype.visitDrop_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_db_role. +TSqlParserVisitor.prototype.visitDrop_db_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_route. +TSqlParserVisitor.prototype.visitDrop_route = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_rule. +TSqlParserVisitor.prototype.visitDrop_rule = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_schema. +TSqlParserVisitor.prototype.visitDrop_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_search_property_list. +TSqlParserVisitor.prototype.visitDrop_search_property_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_security_policy. +TSqlParserVisitor.prototype.visitDrop_security_policy = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_sequence. +TSqlParserVisitor.prototype.visitDrop_sequence = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_server_audit. +TSqlParserVisitor.prototype.visitDrop_server_audit = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_server_audit_specification. +TSqlParserVisitor.prototype.visitDrop_server_audit_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_server_role. +TSqlParserVisitor.prototype.visitDrop_server_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_service. +TSqlParserVisitor.prototype.visitDrop_service = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_signature. +TSqlParserVisitor.prototype.visitDrop_signature = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_statistics_name_azure_dw_and_pdw. +TSqlParserVisitor.prototype.visitDrop_statistics_name_azure_dw_and_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_symmetric_key. +TSqlParserVisitor.prototype.visitDrop_symmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_synonym. +TSqlParserVisitor.prototype.visitDrop_synonym = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_user. +TSqlParserVisitor.prototype.visitDrop_user = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_workload_group. +TSqlParserVisitor.prototype.visitDrop_workload_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_xml_schema_collection. +TSqlParserVisitor.prototype.visitDrop_xml_schema_collection = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#disable_trigger. +TSqlParserVisitor.prototype.visitDisable_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#enable_trigger. +TSqlParserVisitor.prototype.visitEnable_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#lock_table. +TSqlParserVisitor.prototype.visitLock_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#truncate_table. +TSqlParserVisitor.prototype.visitTruncate_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_column_master_key. +TSqlParserVisitor.prototype.visitCreate_column_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_credential. +TSqlParserVisitor.prototype.visitAlter_credential = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_credential. +TSqlParserVisitor.prototype.visitCreate_credential = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_cryptographic_provider. +TSqlParserVisitor.prototype.visitAlter_cryptographic_provider = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_cryptographic_provider. +TSqlParserVisitor.prototype.visitCreate_cryptographic_provider = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_event_notification. +TSqlParserVisitor.prototype.visitCreate_event_notification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_event_session. +TSqlParserVisitor.prototype.visitCreate_or_alter_event_session = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#event_session_predicate_expression. +TSqlParserVisitor.prototype.visitEvent_session_predicate_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#event_session_predicate_factor. +TSqlParserVisitor.prototype.visitEvent_session_predicate_factor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#event_session_predicate_leaf. +TSqlParserVisitor.prototype.visitEvent_session_predicate_leaf = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_external_data_source. +TSqlParserVisitor.prototype.visitAlter_external_data_source = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_external_library. +TSqlParserVisitor.prototype.visitAlter_external_library = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_external_library. +TSqlParserVisitor.prototype.visitCreate_external_library = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_external_resource_pool. +TSqlParserVisitor.prototype.visitAlter_external_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_external_resource_pool. +TSqlParserVisitor.prototype.visitCreate_external_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_fulltext_catalog. +TSqlParserVisitor.prototype.visitAlter_fulltext_catalog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_fulltext_catalog. +TSqlParserVisitor.prototype.visitCreate_fulltext_catalog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_fulltext_stoplist. +TSqlParserVisitor.prototype.visitAlter_fulltext_stoplist = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_fulltext_stoplist. +TSqlParserVisitor.prototype.visitCreate_fulltext_stoplist = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_login_sql_server. +TSqlParserVisitor.prototype.visitAlter_login_sql_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_login_sql_server. +TSqlParserVisitor.prototype.visitCreate_login_sql_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_login_azure_sql. +TSqlParserVisitor.prototype.visitAlter_login_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_login_azure_sql. +TSqlParserVisitor.prototype.visitCreate_login_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_login_azure_sql_dw_and_pdw. +TSqlParserVisitor.prototype.visitAlter_login_azure_sql_dw_and_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_login_pdw. +TSqlParserVisitor.prototype.visitCreate_login_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_master_key_sql_server. +TSqlParserVisitor.prototype.visitAlter_master_key_sql_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_master_key_sql_server. +TSqlParserVisitor.prototype.visitCreate_master_key_sql_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_master_key_azure_sql. +TSqlParserVisitor.prototype.visitAlter_master_key_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_master_key_azure_sql. +TSqlParserVisitor.prototype.visitCreate_master_key_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_message_type. +TSqlParserVisitor.prototype.visitAlter_message_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_partition_function. +TSqlParserVisitor.prototype.visitAlter_partition_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_partition_scheme. +TSqlParserVisitor.prototype.visitAlter_partition_scheme = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_remote_service_binding. +TSqlParserVisitor.prototype.visitAlter_remote_service_binding = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_remote_service_binding. +TSqlParserVisitor.prototype.visitCreate_remote_service_binding = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_resource_pool. +TSqlParserVisitor.prototype.visitCreate_resource_pool = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_resource_governor. +TSqlParserVisitor.prototype.visitAlter_resource_governor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_db_role. +TSqlParserVisitor.prototype.visitAlter_db_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_db_role. +TSqlParserVisitor.prototype.visitCreate_db_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_route. +TSqlParserVisitor.prototype.visitCreate_route = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_rule. +TSqlParserVisitor.prototype.visitCreate_rule = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_schema_sql. +TSqlParserVisitor.prototype.visitAlter_schema_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_schema. +TSqlParserVisitor.prototype.visitCreate_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_schema_azure_sql_dw_and_pdw. +TSqlParserVisitor.prototype.visitCreate_schema_azure_sql_dw_and_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_schema_azure_sql_dw_and_pdw. +TSqlParserVisitor.prototype.visitAlter_schema_azure_sql_dw_and_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_search_property_list. +TSqlParserVisitor.prototype.visitCreate_search_property_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_security_policy. +TSqlParserVisitor.prototype.visitCreate_security_policy = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_sequence. +TSqlParserVisitor.prototype.visitAlter_sequence = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_sequence. +TSqlParserVisitor.prototype.visitCreate_sequence = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_audit. +TSqlParserVisitor.prototype.visitAlter_server_audit = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_server_audit. +TSqlParserVisitor.prototype.visitCreate_server_audit = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_audit_specification. +TSqlParserVisitor.prototype.visitAlter_server_audit_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_server_audit_specification. +TSqlParserVisitor.prototype.visitCreate_server_audit_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_configuration. +TSqlParserVisitor.prototype.visitAlter_server_configuration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_role. +TSqlParserVisitor.prototype.visitAlter_server_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_server_role. +TSqlParserVisitor.prototype.visitCreate_server_role = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_server_role_pdw. +TSqlParserVisitor.prototype.visitAlter_server_role_pdw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_service. +TSqlParserVisitor.prototype.visitAlter_service = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_service. +TSqlParserVisitor.prototype.visitCreate_service = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_service_master_key. +TSqlParserVisitor.prototype.visitAlter_service_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_symmetric_key. +TSqlParserVisitor.prototype.visitAlter_symmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_symmetric_key. +TSqlParserVisitor.prototype.visitCreate_symmetric_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_synonym. +TSqlParserVisitor.prototype.visitCreate_synonym = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_user. +TSqlParserVisitor.prototype.visitAlter_user = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_user. +TSqlParserVisitor.prototype.visitCreate_user = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_user_azure_sql_dw. +TSqlParserVisitor.prototype.visitCreate_user_azure_sql_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_user_azure_sql. +TSqlParserVisitor.prototype.visitAlter_user_azure_sql = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_workload_group. +TSqlParserVisitor.prototype.visitAlter_workload_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_workload_group. +TSqlParserVisitor.prototype.visitCreate_workload_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_xml_schema_collection. +TSqlParserVisitor.prototype.visitCreate_xml_schema_collection = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_queue. +TSqlParserVisitor.prototype.visitCreate_queue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#queue_settings. +TSqlParserVisitor.prototype.visitQueue_settings = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_queue. +TSqlParserVisitor.prototype.visitAlter_queue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#queue_action. +TSqlParserVisitor.prototype.visitQueue_action = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#queue_rebuild_options. +TSqlParserVisitor.prototype.visitQueue_rebuild_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_contract. +TSqlParserVisitor.prototype.visitCreate_contract = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#conversation_statement. +TSqlParserVisitor.prototype.visitConversation_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#message_statement. +TSqlParserVisitor.prototype.visitMessage_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#merge_statement. +TSqlParserVisitor.prototype.visitMerge_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#merge_matched. +TSqlParserVisitor.prototype.visitMerge_matched = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#merge_not_matched. +TSqlParserVisitor.prototype.visitMerge_not_matched = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#delete_statement. +TSqlParserVisitor.prototype.visitDelete_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#delete_statement_from. +TSqlParserVisitor.prototype.visitDelete_statement_from = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#insert_statement. +TSqlParserVisitor.prototype.visitInsert_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#insert_statement_value. +TSqlParserVisitor.prototype.visitInsert_statement_value = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#receive_statement. +TSqlParserVisitor.prototype.visitReceive_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#select_statement. +TSqlParserVisitor.prototype.visitSelect_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#time. +TSqlParserVisitor.prototype.visitTime = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#update_statement. +TSqlParserVisitor.prototype.visitUpdate_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#output_clause. +TSqlParserVisitor.prototype.visitOutput_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#output_dml_list_elem. +TSqlParserVisitor.prototype.visitOutput_dml_list_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#output_column_name. +TSqlParserVisitor.prototype.visitOutput_column_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_database. +TSqlParserVisitor.prototype.visitCreate_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_index. +TSqlParserVisitor.prototype.visitCreate_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_procedure. +TSqlParserVisitor.prototype.visitCreate_or_alter_procedure = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_trigger. +TSqlParserVisitor.prototype.visitCreate_or_alter_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_dml_trigger. +TSqlParserVisitor.prototype.visitCreate_or_alter_dml_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dml_trigger_option. +TSqlParserVisitor.prototype.visitDml_trigger_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dml_trigger_operation. +TSqlParserVisitor.prototype.visitDml_trigger_operation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_ddl_trigger. +TSqlParserVisitor.prototype.visitCreate_or_alter_ddl_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ddl_trigger_operation. +TSqlParserVisitor.prototype.visitDdl_trigger_operation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_or_alter_function. +TSqlParserVisitor.prototype.visitCreate_or_alter_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_body_returns_select. +TSqlParserVisitor.prototype.visitFunc_body_returns_select = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_body_returns_table. +TSqlParserVisitor.prototype.visitFunc_body_returns_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_body_returns_scalar. +TSqlParserVisitor.prototype.visitFunc_body_returns_scalar = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#procedure_param. +TSqlParserVisitor.prototype.visitProcedure_param = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#procedure_option. +TSqlParserVisitor.prototype.visitProcedure_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#function_option. +TSqlParserVisitor.prototype.visitFunction_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_statistics. +TSqlParserVisitor.prototype.visitCreate_statistics = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#update_statistics. +TSqlParserVisitor.prototype.visitUpdate_statistics = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_table. +TSqlParserVisitor.prototype.visitCreate_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_options. +TSqlParserVisitor.prototype.visitTable_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_view. +TSqlParserVisitor.prototype.visitCreate_view = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#view_attribute. +TSqlParserVisitor.prototype.visitView_attribute = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_table. +TSqlParserVisitor.prototype.visitAlter_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_database. +TSqlParserVisitor.prototype.visitAlter_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#database_optionspec. +TSqlParserVisitor.prototype.visitDatabase_optionspec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#auto_option. +TSqlParserVisitor.prototype.visitAuto_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#change_tracking_option. +TSqlParserVisitor.prototype.visitChange_tracking_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#change_tracking_option_list. +TSqlParserVisitor.prototype.visitChange_tracking_option_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#containment_option. +TSqlParserVisitor.prototype.visitContainment_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#cursor_option. +TSqlParserVisitor.prototype.visitCursor_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#alter_endpoint. +TSqlParserVisitor.prototype.visitAlter_endpoint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#database_mirroring_option. +TSqlParserVisitor.prototype.visitDatabase_mirroring_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mirroring_set_option. +TSqlParserVisitor.prototype.visitMirroring_set_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mirroring_partner. +TSqlParserVisitor.prototype.visitMirroring_partner = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mirroring_witness. +TSqlParserVisitor.prototype.visitMirroring_witness = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#witness_partner_equal. +TSqlParserVisitor.prototype.visitWitness_partner_equal = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#partner_option. +TSqlParserVisitor.prototype.visitPartner_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#witness_option. +TSqlParserVisitor.prototype.visitWitness_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#witness_server. +TSqlParserVisitor.prototype.visitWitness_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#partner_server. +TSqlParserVisitor.prototype.visitPartner_server = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mirroring_host_port_seperator. +TSqlParserVisitor.prototype.visitMirroring_host_port_seperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#partner_server_tcp_prefix. +TSqlParserVisitor.prototype.visitPartner_server_tcp_prefix = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#port_number. +TSqlParserVisitor.prototype.visitPort_number = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#host. +TSqlParserVisitor.prototype.visitHost = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#date_correlation_optimization_option. +TSqlParserVisitor.prototype.visitDate_correlation_optimization_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#db_encryption_option. +TSqlParserVisitor.prototype.visitDb_encryption_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#db_state_option. +TSqlParserVisitor.prototype.visitDb_state_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#db_update_option. +TSqlParserVisitor.prototype.visitDb_update_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#db_user_access_option. +TSqlParserVisitor.prototype.visitDb_user_access_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#delayed_durability_option. +TSqlParserVisitor.prototype.visitDelayed_durability_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#external_access_option. +TSqlParserVisitor.prototype.visitExternal_access_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#hadr_options. +TSqlParserVisitor.prototype.visitHadr_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#mixed_page_allocation_option. +TSqlParserVisitor.prototype.visitMixed_page_allocation_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#parameterization_option. +TSqlParserVisitor.prototype.visitParameterization_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#recovery_option. +TSqlParserVisitor.prototype.visitRecovery_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#service_broker_option. +TSqlParserVisitor.prototype.visitService_broker_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#snapshot_option. +TSqlParserVisitor.prototype.visitSnapshot_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sql_option. +TSqlParserVisitor.prototype.visitSql_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#target_recovery_time_option. +TSqlParserVisitor.prototype.visitTarget_recovery_time_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#termination. +TSqlParserVisitor.prototype.visitTermination = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_index. +TSqlParserVisitor.prototype.visitDrop_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_relational_or_xml_or_spatial_index. +TSqlParserVisitor.prototype.visitDrop_relational_or_xml_or_spatial_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_backward_compatible_index. +TSqlParserVisitor.prototype.visitDrop_backward_compatible_index = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_procedure. +TSqlParserVisitor.prototype.visitDrop_procedure = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_trigger. +TSqlParserVisitor.prototype.visitDrop_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_dml_trigger. +TSqlParserVisitor.prototype.visitDrop_dml_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_ddl_trigger. +TSqlParserVisitor.prototype.visitDrop_ddl_trigger = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_function. +TSqlParserVisitor.prototype.visitDrop_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_statistics. +TSqlParserVisitor.prototype.visitDrop_statistics = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_table. +TSqlParserVisitor.prototype.visitDrop_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_view. +TSqlParserVisitor.prototype.visitDrop_view = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_type. +TSqlParserVisitor.prototype.visitCreate_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#drop_type. +TSqlParserVisitor.prototype.visitDrop_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#rowset_function_limited. +TSqlParserVisitor.prototype.visitRowset_function_limited = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#openquery. +TSqlParserVisitor.prototype.visitOpenquery = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#opendatasource. +TSqlParserVisitor.prototype.visitOpendatasource = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_statement. +TSqlParserVisitor.prototype.visitDeclare_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#cursor_statement. +TSqlParserVisitor.prototype.visitCursor_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_database. +TSqlParserVisitor.prototype.visitBackup_database = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_log. +TSqlParserVisitor.prototype.visitBackup_log = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_certificate. +TSqlParserVisitor.prototype.visitBackup_certificate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_master_key. +TSqlParserVisitor.prototype.visitBackup_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#backup_service_master_key. +TSqlParserVisitor.prototype.visitBackup_service_master_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#kill_statement. +TSqlParserVisitor.prototype.visitKill_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#kill_process. +TSqlParserVisitor.prototype.visitKill_process = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#kill_query_notification. +TSqlParserVisitor.prototype.visitKill_query_notification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#kill_stats_job. +TSqlParserVisitor.prototype.visitKill_stats_job = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_statement. +TSqlParserVisitor.prototype.visitExecute_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_body. +TSqlParserVisitor.prototype.visitExecute_body = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_statement_arg. +TSqlParserVisitor.prototype.visitExecute_statement_arg = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_var_string. +TSqlParserVisitor.prototype.visitExecute_var_string = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#security_statement. +TSqlParserVisitor.prototype.visitSecurity_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_certificate. +TSqlParserVisitor.prototype.visitCreate_certificate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#existing_keys. +TSqlParserVisitor.prototype.visitExisting_keys = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#private_key_options. +TSqlParserVisitor.prototype.visitPrivate_key_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#generate_new_keys. +TSqlParserVisitor.prototype.visitGenerate_new_keys = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#date_options. +TSqlParserVisitor.prototype.visitDate_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#open_key. +TSqlParserVisitor.prototype.visitOpen_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#close_key. +TSqlParserVisitor.prototype.visitClose_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_key. +TSqlParserVisitor.prototype.visitCreate_key = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#key_options. +TSqlParserVisitor.prototype.visitKey_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#algorithm. +TSqlParserVisitor.prototype.visitAlgorithm = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#encryption_mechanism. +TSqlParserVisitor.prototype.visitEncryption_mechanism = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#decryption_mechanism. +TSqlParserVisitor.prototype.visitDecryption_mechanism = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#grant_permission. +TSqlParserVisitor.prototype.visitGrant_permission = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#set_statement. +TSqlParserVisitor.prototype.visitSet_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#transaction_statement. +TSqlParserVisitor.prototype.visitTransaction_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#go_statement. +TSqlParserVisitor.prototype.visitGo_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#use_statement. +TSqlParserVisitor.prototype.visitUse_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#setuser_statement. +TSqlParserVisitor.prototype.visitSetuser_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#reconfigure_statement. +TSqlParserVisitor.prototype.visitReconfigure_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#shutdown_statement. +TSqlParserVisitor.prototype.visitShutdown_statement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dbcc_clause. +TSqlParserVisitor.prototype.visitDbcc_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#dbcc_options. +TSqlParserVisitor.prototype.visitDbcc_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#execute_clause. +TSqlParserVisitor.prototype.visitExecute_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_local. +TSqlParserVisitor.prototype.visitDeclare_local = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_type_definition. +TSqlParserVisitor.prototype.visitTable_type_definition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#xml_type_definition. +TSqlParserVisitor.prototype.visitXml_type_definition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#xml_schema_collection. +TSqlParserVisitor.prototype.visitXml_schema_collection = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_def_table_constraints. +TSqlParserVisitor.prototype.visitColumn_def_table_constraints = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_def_table_constraint. +TSqlParserVisitor.prototype.visitColumn_def_table_constraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_definition. +TSqlParserVisitor.prototype.visitColumn_definition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#materialized_column_definition. +TSqlParserVisitor.prototype.visitMaterialized_column_definition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_constraint. +TSqlParserVisitor.prototype.visitColumn_constraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_constraint. +TSqlParserVisitor.prototype.visitTable_constraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#on_delete. +TSqlParserVisitor.prototype.visitOn_delete = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#on_update. +TSqlParserVisitor.prototype.visitOn_update = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#index_options. +TSqlParserVisitor.prototype.visitIndex_options = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#index_option. +TSqlParserVisitor.prototype.visitIndex_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_cursor. +TSqlParserVisitor.prototype.visitDeclare_cursor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_set_cursor_common. +TSqlParserVisitor.prototype.visitDeclare_set_cursor_common = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#declare_set_cursor_common_partial. +TSqlParserVisitor.prototype.visitDeclare_set_cursor_common_partial = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#fetch_cursor. +TSqlParserVisitor.prototype.visitFetch_cursor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#set_special. +TSqlParserVisitor.prototype.visitSet_special = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#constant_LOCAL_ID. +TSqlParserVisitor.prototype.visitConstant_LOCAL_ID = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#expression. +TSqlParserVisitor.prototype.visitExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#primitive_expression. +TSqlParserVisitor.prototype.visitPrimitive_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#case_expression. +TSqlParserVisitor.prototype.visitCase_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#unary_operator_expression. +TSqlParserVisitor.prototype.visitUnary_operator_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#bracket_expression. +TSqlParserVisitor.prototype.visitBracket_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#constant_expression. +TSqlParserVisitor.prototype.visitConstant_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#subquery. +TSqlParserVisitor.prototype.visitSubquery = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#with_expression. +TSqlParserVisitor.prototype.visitWith_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#common_table_expression. +TSqlParserVisitor.prototype.visitCommon_table_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#update_elem. +TSqlParserVisitor.prototype.visitUpdate_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#search_condition_list. +TSqlParserVisitor.prototype.visitSearch_condition_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#search_condition. +TSqlParserVisitor.prototype.visitSearch_condition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#search_condition_and. +TSqlParserVisitor.prototype.visitSearch_condition_and = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#search_condition_not. +TSqlParserVisitor.prototype.visitSearch_condition_not = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#predicate. +TSqlParserVisitor.prototype.visitPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#query_expression. +TSqlParserVisitor.prototype.visitQuery_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sql_union. +TSqlParserVisitor.prototype.visitSql_union = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#query_specification. +TSqlParserVisitor.prototype.visitQuery_specification = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#top_clause. +TSqlParserVisitor.prototype.visitTop_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#top_percent. +TSqlParserVisitor.prototype.visitTop_percent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#top_count. +TSqlParserVisitor.prototype.visitTop_count = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#order_by_clause. +TSqlParserVisitor.prototype.visitOrder_by_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#for_clause. +TSqlParserVisitor.prototype.visitFor_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#xml_common_directives. +TSqlParserVisitor.prototype.visitXml_common_directives = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#order_by_expression. +TSqlParserVisitor.prototype.visitOrder_by_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#group_by_item. +TSqlParserVisitor.prototype.visitGroup_by_item = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#option_clause. +TSqlParserVisitor.prototype.visitOption_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#option. +TSqlParserVisitor.prototype.visitOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#optimize_for_arg. +TSqlParserVisitor.prototype.visitOptimize_for_arg = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#select_list. +TSqlParserVisitor.prototype.visitSelect_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#udt_method_arguments. +TSqlParserVisitor.prototype.visitUdt_method_arguments = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#asterisk. +TSqlParserVisitor.prototype.visitAsterisk = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_elem. +TSqlParserVisitor.prototype.visitColumn_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#udt_elem. +TSqlParserVisitor.prototype.visitUdt_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#expression_elem. +TSqlParserVisitor.prototype.visitExpression_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#select_list_elem. +TSqlParserVisitor.prototype.visitSelect_list_elem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_sources. +TSqlParserVisitor.prototype.visitTable_sources = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_source. +TSqlParserVisitor.prototype.visitTable_source = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_source_item_joined. +TSqlParserVisitor.prototype.visitTable_source_item_joined = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_source_item. +TSqlParserVisitor.prototype.visitTable_source_item = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#open_xml. +TSqlParserVisitor.prototype.visitOpen_xml = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#schema_declaration. +TSqlParserVisitor.prototype.visitSchema_declaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_declaration. +TSqlParserVisitor.prototype.visitColumn_declaration = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#change_table. +TSqlParserVisitor.prototype.visitChange_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#join_part. +TSqlParserVisitor.prototype.visitJoin_part = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#pivot_clause. +TSqlParserVisitor.prototype.visitPivot_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#unpivot_clause. +TSqlParserVisitor.prototype.visitUnpivot_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#full_column_name_list. +TSqlParserVisitor.prototype.visitFull_column_name_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_name_with_hint. +TSqlParserVisitor.prototype.visitTable_name_with_hint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#rowset_function. +TSqlParserVisitor.prototype.visitRowset_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#bulk_option. +TSqlParserVisitor.prototype.visitBulk_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#derived_table. +TSqlParserVisitor.prototype.visitDerived_table = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#BINARY_CHECKSUM. +TSqlParserVisitor.prototype.visitBINARY_CHECKSUM = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CAST. +TSqlParserVisitor.prototype.visitCAST = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CONVERT. +TSqlParserVisitor.prototype.visitCONVERT = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CHECKSUM. +TSqlParserVisitor.prototype.visitCHECKSUM = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#COALESCE. +TSqlParserVisitor.prototype.visitCOALESCE = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CURRENT_TIMESTAMP. +TSqlParserVisitor.prototype.visitCURRENT_TIMESTAMP = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#CURRENT_USER. +TSqlParserVisitor.prototype.visitCURRENT_USER = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#DATEADD. +TSqlParserVisitor.prototype.visitDATEADD = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#DATEDIFF. +TSqlParserVisitor.prototype.visitDATEDIFF = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#DATENAME. +TSqlParserVisitor.prototype.visitDATENAME = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#DATEPART. +TSqlParserVisitor.prototype.visitDATEPART = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#GETDATE. +TSqlParserVisitor.prototype.visitGETDATE = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#GETUTCDATE. +TSqlParserVisitor.prototype.visitGETUTCDATE = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#IDENTITY. +TSqlParserVisitor.prototype.visitIDENTITY = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#MIN_ACTIVE_ROWVERSION. +TSqlParserVisitor.prototype.visitMIN_ACTIVE_ROWVERSION = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#NULLIF. +TSqlParserVisitor.prototype.visitNULLIF = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#STUFF. +TSqlParserVisitor.prototype.visitSTUFF = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#SESSION_USER. +TSqlParserVisitor.prototype.visitSESSION_USER = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#SYSTEM_USER. +TSqlParserVisitor.prototype.visitSYSTEM_USER = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ISNULL. +TSqlParserVisitor.prototype.visitISNULL = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#XML_DATA_TYPE_FUNC. +TSqlParserVisitor.prototype.visitXML_DATA_TYPE_FUNC = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#IFF. +TSqlParserVisitor.prototype.visitIFF = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#RANKING_WINDOWED_FUNC. +TSqlParserVisitor.prototype.visitRANKING_WINDOWED_FUNC = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#AGGREGATE_WINDOWED_FUNC. +TSqlParserVisitor.prototype.visitAGGREGATE_WINDOWED_FUNC = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ANALYTIC_WINDOWED_FUNC. +TSqlParserVisitor.prototype.visitANALYTIC_WINDOWED_FUNC = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#SCALAR_FUNCTION. +TSqlParserVisitor.prototype.visitSCALAR_FUNCTION = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#STRINGAGG. +TSqlParserVisitor.prototype.visitSTRINGAGG = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#xml_data_type_methods. +TSqlParserVisitor.prototype.visitXml_data_type_methods = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#value_method. +TSqlParserVisitor.prototype.visitValue_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#query_method. +TSqlParserVisitor.prototype.visitQuery_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#exist_method. +TSqlParserVisitor.prototype.visitExist_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#modify_method. +TSqlParserVisitor.prototype.visitModify_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#nodes_method. +TSqlParserVisitor.prototype.visitNodes_method = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#switch_section. +TSqlParserVisitor.prototype.visitSwitch_section = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#switch_search_condition_section. +TSqlParserVisitor.prototype.visitSwitch_search_condition_section = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#as_column_alias. +TSqlParserVisitor.prototype.visitAs_column_alias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#as_table_alias. +TSqlParserVisitor.prototype.visitAs_table_alias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_alias. +TSqlParserVisitor.prototype.visitTable_alias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#with_table_hints. +TSqlParserVisitor.prototype.visitWith_table_hints = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#insert_with_table_hints. +TSqlParserVisitor.prototype.visitInsert_with_table_hints = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_hint. +TSqlParserVisitor.prototype.visitTable_hint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#index_value. +TSqlParserVisitor.prototype.visitIndex_value = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_alias_list. +TSqlParserVisitor.prototype.visitColumn_alias_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_alias. +TSqlParserVisitor.prototype.visitColumn_alias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_value_constructor. +TSqlParserVisitor.prototype.visitTable_value_constructor = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#expression_list. +TSqlParserVisitor.prototype.visitExpression_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ranking_windowed_function. +TSqlParserVisitor.prototype.visitRanking_windowed_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#aggregate_windowed_function. +TSqlParserVisitor.prototype.visitAggregate_windowed_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#analytic_windowed_function. +TSqlParserVisitor.prototype.visitAnalytic_windowed_function = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#all_distinct_expression. +TSqlParserVisitor.prototype.visitAll_distinct_expression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#over_clause. +TSqlParserVisitor.prototype.visitOver_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#row_or_range_clause. +TSqlParserVisitor.prototype.visitRow_or_range_clause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#window_frame_extent. +TSqlParserVisitor.prototype.visitWindow_frame_extent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#window_frame_bound. +TSqlParserVisitor.prototype.visitWindow_frame_bound = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#window_frame_preceding. +TSqlParserVisitor.prototype.visitWindow_frame_preceding = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#window_frame_following. +TSqlParserVisitor.prototype.visitWindow_frame_following = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#create_database_option. +TSqlParserVisitor.prototype.visitCreate_database_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#database_filestream_option. +TSqlParserVisitor.prototype.visitDatabase_filestream_option = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#database_file_spec. +TSqlParserVisitor.prototype.visitDatabase_file_spec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_group. +TSqlParserVisitor.prototype.visitFile_group = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_spec. +TSqlParserVisitor.prototype.visitFile_spec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#entity_name. +TSqlParserVisitor.prototype.visitEntity_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#entity_name_for_azure_dw. +TSqlParserVisitor.prototype.visitEntity_name_for_azure_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#entity_name_for_parallel_dw. +TSqlParserVisitor.prototype.visitEntity_name_for_parallel_dw = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#full_table_name. +TSqlParserVisitor.prototype.visitFull_table_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#table_name. +TSqlParserVisitor.prototype.visitTable_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#simple_name. +TSqlParserVisitor.prototype.visitSimple_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_proc_name_schema. +TSqlParserVisitor.prototype.visitFunc_proc_name_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_proc_name_database_schema. +TSqlParserVisitor.prototype.visitFunc_proc_name_database_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#func_proc_name_server_database_schema. +TSqlParserVisitor.prototype.visitFunc_proc_name_server_database_schema = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#ddl_object. +TSqlParserVisitor.prototype.visitDdl_object = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#full_column_name. +TSqlParserVisitor.prototype.visitFull_column_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_name_list_with_order. +TSqlParserVisitor.prototype.visitColumn_name_list_with_order = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#column_name_list. +TSqlParserVisitor.prototype.visitColumn_name_list = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#cursor_name. +TSqlParserVisitor.prototype.visitCursor_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#on_off. +TSqlParserVisitor.prototype.visitOn_off = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#clustered. +TSqlParserVisitor.prototype.visitClustered = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#null_notnull. +TSqlParserVisitor.prototype.visitNull_notnull = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#null_or_default. +TSqlParserVisitor.prototype.visitNull_or_default = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#scalar_function_name. +TSqlParserVisitor.prototype.visitScalar_function_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#begin_conversation_timer. +TSqlParserVisitor.prototype.visitBegin_conversation_timer = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#begin_conversation_dialog. +TSqlParserVisitor.prototype.visitBegin_conversation_dialog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#contract_name. +TSqlParserVisitor.prototype.visitContract_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#service_name. +TSqlParserVisitor.prototype.visitService_name = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#end_conversation. +TSqlParserVisitor.prototype.visitEnd_conversation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#waitfor_conversation. +TSqlParserVisitor.prototype.visitWaitfor_conversation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#get_conversation. +TSqlParserVisitor.prototype.visitGet_conversation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#queue_id. +TSqlParserVisitor.prototype.visitQueue_id = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#send_conversation. +TSqlParserVisitor.prototype.visitSend_conversation = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#data_type. +TSqlParserVisitor.prototype.visitData_type = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#default_value. +TSqlParserVisitor.prototype.visitDefault_value = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#constant. +TSqlParserVisitor.prototype.visitConstant = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#sign. +TSqlParserVisitor.prototype.visitSign = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#id. +TSqlParserVisitor.prototype.visitId = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#simple_id. +TSqlParserVisitor.prototype.visitSimple_id = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#comparison_operator. +TSqlParserVisitor.prototype.visitComparison_operator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#assignment_operator. +TSqlParserVisitor.prototype.visitAssignment_operator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by TSqlParser#file_size. +TSqlParserVisitor.prototype.visitFile_size = function(ctx) { + return this.visitChildren(ctx); +}; + + + +exports.TSqlParserVisitor = TSqlParserVisitor; \ No newline at end of file diff --git a/src/peg/build.js b/src/peg/build.js deleted file mode 100644 index 44ef5cf..0000000 --- a/src/peg/build.js +++ /dev/null @@ -1,31 +0,0 @@ -const pegjs=require("pegjs"); -const path=require("path"); -const fs=require("fs"); - -const ENCODING="utf8" - -const files=[{ - source:path.resolve(process.cwd(),"./peg/comment.pegjs") , - target:path.resolve(process.cwd(),"./core/comment.js") , -},{ - source:path.resolve(process.cwd(),"./peg/nquery.pegjs") , - target:path.resolve(process.cwd(),"./core/astParser.js") , -}]; - - -function writeIn(file,data){ - fs.writeFileSync(file,data,{encoding:ENCODING}) -} -function build(content){ - return pegjs.generate(content,{ - output:"source", - format:"umd", - optimize:"size" - }); -} -files.forEach( - (file)=>{ - let fileContent=fs.readFileSync(file.source,{encoding:ENCODING}) - writeIn(file.target,build(fileContent)) - } -) diff --git a/src/peg/comment.pegjs b/src/peg/comment.pegjs deleted file mode 100644 index a9261f2..0000000 --- a/src/peg/comment.pegjs +++ /dev/null @@ -1,91 +0,0 @@ - - -{ - let lines=[]; - let isSplit=false; -} - -start -= union_stmt:union_stmt -{ - return {lines,text:union_stmt}; -} - - -union_stmt -=single_stmt: -( - words:text* - stmt:(comment:comment {return comment}/quote:quote {return quote}/";" {isSplit=true;return ";"}) - { - const text=words.join("")+stmt; - let index=Math.max(lines.length-1,0); - lines[index]=(lines[index]||'')+text; - if(isSplit){ - isSplit=false; - lines.push(''); - } - return text; - } -)* other:.* -{ - const text=single_stmt.join("")+other.join("") - let index=Math.max(lines.length-1,0); - lines[index]=(lines[index]||'')+other.join(""); - return text; -} - -comment -=comment:(multiLine/singleLine) -{ - return comment; -} - -singleLine -= start:KW_SINGLE_LINE_START - words:[^\r\n]* - { - return start+words.join("") - } - - -multiLine -=start:KW_MULTI_LINE_START - words:(!"*/" word:. {return word })* - end:KW_MULTI_LINE_END - {return start+words.join("")+end } - -quote -=content:( - ( - start:"\"" - words:[^"]* - end:"\"" - {return start+words.join("")+end;} - ) - / - ( - start:"'" - words:[^']* - end:"'" - {return start+words.join("")+end;} - ) -) - - - - -text = !kw_start word:. {return word} -kw_start=KW_SINGLE_LINE_START/KW_MULTI_LINE_START/"\""/"'"/";" - - -KW_SINGLE_LINE_START = "--"; -KW_SINGLE_LINE_END = [\r\n]; -KW_MULTI_LINE_START = "/*"; -KW_MULTI_LINE_END = "*/"; - - -__ = whitespace* - -whitespace -= [ \t\r\n]; \ No newline at end of file diff --git a/src/scripts/generateParsers.js b/src/scripts/generateParsers.js deleted file mode 100644 index fceb0d4..0000000 --- a/src/scripts/generateParsers.js +++ /dev/null @@ -1,571 +0,0 @@ - -const fs = require('fs'); -const path = require('path'); -const exec = require('child_process').exec; - -const LICENSE = - '// Licensed to Cloudera, Inc. under one\n' + - '// or more contributor license agreements. See the NOTICE file\n' + - '// distributed with this work for additional information\n' + - '// regarding copyright ownership. Cloudera, Inc. licenses this file\n' + - '// to you under the Apache License, Version 2.0 (the\n' + - '// "License"); you may not use this file except in compliance\n' + - '// with the License. You may obtain a copy of the License at\n' + - '//\n' + - '// http://www.apache.org/licenses/LICENSE-2.0\n' + - '//\n' + - '// Unless required by applicable law or agreed to in writing, software\n' + - '// distributed under the License is distributed on an "AS IS" BASIS,\n' + - '// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n' + - '// See the License for the specific language governing permissions and\n' + - '// limitations under the License.\n'; - -const SQL_STATEMENTS_PARSER_JSDOC = - '/**\n' + - ' * @param {string} input\n' + - ' *\n' + - ' * @return {SqlStatementsParserResult}\n' + - ' */\n'; - -const PARSER_FOLDER = path.join(process.cwd(), 'src/core/parse/'); -const JISON_FOLDER = path.join(process.cwd(), 'src/jison/'); -const SQL_PARSER_REPOSITORY_PATH = path.join(PARSER_FOLDER, 'sqlParserRepository.js'); -const SYNTAX_PARSER_IMPORT_TEMPLATE = - ' KEY: require("KEY/KEYSyntaxParser")'; -const AUTOCOMPLETE_PARSER_IMPORT_TEMPLATE = - ' KEY: require("KEY/KEYAutocompleteParser")'; - -const parserDefinitions = { - globalSearchParser: { - sources: [path.join(JISON_FOLDER, 'globalSearchParser.jison')], - target: path.join(JISON_FOLDER ,'globalSearchParser.jison'), - outputFolder: PARSER_FOLDER, - afterParse: contents => - new Promise(resolve => { - resolve( - LICENSE + - contents.replace( - 'var globalSearchParser = ', - "import SqlParseSupport from './sqlParseSupport';\n\nvar globalSearchParser = " - ) + - '\nexport default globalSearchParser;\n' - ); - }) - }, - solrFormulaParser: { - sources: [path.join(JISON_FOLDER, 'solrFormulaParser.jison')], - target: path.join(JISON_FOLDER, 'solrFormulaParser.jison'), - outputFolder: PARSER_FOLDER, - afterParse: contents => - new Promise(resolve => { - resolve(LICENSE + contents + 'export default solrFormulaParser;\n'); - }) - }, - solrQueryParser: { - sources: [path.join(JISON_FOLDER, 'solrQueryParser.jison')], - target: path.join(JISON_FOLDER, 'solrQueryParser.jison'), - outputFolder: PARSER_FOLDER, - afterParse: contents => - new Promise(resolve => { - resolve(LICENSE + contents + 'export default solrQueryParser;\n'); - }) - }, - sqlStatementsParser: { - sources: [path.join(JISON_FOLDER, 'sqlStatementsParser.jison')], - target: path.join(JISON_FOLDER, 'sqlStatementsParser.jison'), - outputFolder: PARSER_FOLDER, - afterParse: contents => - new Promise(resolve => { - resolve( - LICENSE + - contents.replace( - 'parse: function parse', - SQL_STATEMENTS_PARSER_JSDOC + 'parse: function parse' - ) + - 'export default sqlStatementsParser;\n' - ); - }) - } -}; - -const mkdir = path => - new Promise((resolve, reject) => { - if (fs.existsSync(path)) { - resolve(); - } else { - fs.mkdir(path, err => { - if (err) { - reject(err); - } - resolve(); - }); - } - }); - -const readFile = path => - new Promise((resolve, reject) => { - fs.readFile(path, (err, buf) => { - if (err) { - reject(err); - } - resolve(buf ? buf.toString() : ''); - }); - }); - -const writeFile = (path, contents) => - new Promise((resolve, reject) => { - fs.writeFile(path, contents, err => { - if (err) { - reject(); - } - resolve(); - }); - }); - -const copyFile = (source, destination, contentsCallback) => - new Promise((resolve, reject) => { - readFile(source) - .then(contents => { - writeFile(destination, contentsCallback ? contentsCallback(contents) : contents) - .then(resolve) - .catch(reject); - }) - .catch(reject); - }); - -const deleteFile = path => { - fs.unlinkSync(path); -}; - -const execCmd = cmd => - new Promise((resolve, reject) => { - exec(cmd, (err, stdout, stderr) => { - if (err) { - reject('stderr:\n' + stderr + '\n\nstdout:\n' + stdout); - } - resolve(stdout); - }); - }); - -const generateParser = parserName => - new Promise((resolve, reject) => { - const parserConfig = parserDefinitions[parserName]; - - /** - * 合并jison文件,生成待编译文件 - */ - const concatPromise = new Promise((resolve, reject) => { - if (parserConfig.sources.length > 1 && parserConfig.target) { - console.log('Concatenating files...'); - const promises = parserConfig.sources.map(fileName => readFile(fileName)); - - Promise.all(promises) - .then(contents => { - writeFile(parserConfig.target, contents.join('')).then(() => { - resolve(parserConfig.target); - }); - }) - .catch(reject); - } else if (parserConfig.sources.length === 1) { - resolve(parserConfig.sources[0]); - } else { - reject('No jison source specified'); - } - }); - - concatPromise - .then(targetPath => { - console.log(`Generate precomplier jison success(${targetPath})...`); - let jisonCommand = 'jison ' + targetPath; - if (parserConfig.lexer) { - jisonCommand += ' ' + parserConfig.lexer; - } - jisonCommand += ' -m js'; - console.log('Generating parser...'); - execCmd(jisonCommand) - .then(stdout => { - if (/\S/.test(stdout)) { - console.log('got output for: ' + jisonCommand); - console.log(stdout); - } - if (parserConfig.sources.length > 1) { - deleteFile(targetPath); // Remove concatenated file - } - console.log('Adjusting JS...'); - /** - * 删除生成文件,复制到配置的文件夹中 - */ - const generatedJsFileName = parserConfig.target - .replace('.jison', '.js') - .replace(/^.*\/([^/]+)$/, '$1'); - readFile(generatedJsFileName) - .then(contents => { - parserConfig - .afterParse(contents) - .then(finalContents => { - writeFile(path.join(parserConfig.outputFolder, generatedJsFileName), finalContents) - .then(() => { - deleteFile(generatedJsFileName); - resolve(); - }) - .catch(reject); - }) - .catch(reject); - }) - .catch(reject); - }) - .catch(reject); - }) - .catch(reject); - }); - -let parsersToGenerate = []; -const invalid = []; - -let all = false; - -const listDir = folder => - new Promise(resolve => { - fs.readdir(folder, (err, files) => { - resolve(files); - }); - }); -/** - * 构造,添加子语言模块编译配置 - * @param {*} fileIndex 文件的存在表 - * @param {*} folder 对应的子语言文件夹 - * @param {*} sharedFiles 子语言核心jison文件 - * @param {*} autocomplete 是否为补全文件 - */ -const findParser = (fileIndex, folder, sharedFiles, autocomplete) => { - const prefix = autocomplete ? 'autocomplete' : 'syntax'; - if (fileIndex[prefix + '_header.jison'] && fileIndex[prefix + '_footer.jison']) { - const parserName = folder + (autocomplete ? 'AutocompleteParser' : 'SyntaxParser'); - const parserDefinition = { - sources: [path.join(JISON_FOLDER, 'sql', folder, prefix + '_header.jison')].concat(sharedFiles), - lexer: path.join(JISON_FOLDER, 'sql', folder, '/sql.jisonlex'), - target: path.join(JISON_FOLDER, 'sql', folder, parserName + '.jison'), - sqlParser: autocomplete ? 'AUTOCOMPLETE' : 'SYNTAX', - outputFolder: path.join(PARSER_FOLDER, folder), - afterParse: contents => - new Promise(resolve => { - resolve( - LICENSE + - contents - .replace( - 'var ' + parserName + ' = ', - "import SqlParseSupport from " + - "'./sqlParseSupport';\n\nvar " + - parserName + - ' = ' - ) - .replace( - 'loc: yyloc,', - "loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join('')," - ) + - '\nexport default ' + - parserName + - ';\n' - ); - }) - }; - - parserDefinition.sources.push(path.join(JISON_FOLDER, 'sql', folder, prefix + '_footer.jison')); - parserDefinitions[parserName] = parserDefinition; - } else { - console.log( - "Warn: Could not find '" + - prefix + - "_header.jison' or '" + - prefix + - "_footer.jison' in " + - JISON_FOLDER + - 'sql/' + - folder + - '/' - ); - } -}; - -/** - * 添加所有子语言编译配置 - */ -const identifySqlParsers = () => - new Promise(resolve => { - listDir(JISON_FOLDER + 'sql').then(files => { - const promises = []; - files.forEach(folder => { - const subLanguageJisonFolder = path.join(JISON_FOLDER, 'sql', folder); - promises.push( - /** - * 遍历具体的语言目录 - */ - - listDir(subLanguageJisonFolder).then(jisonFiles => { - /** - * 文件目录记录表 - */ - const fileIndex = {}; - jisonFiles.forEach(jisonFile => { - fileIndex[jisonFile] = true; - }); - - /** - * 挑选核心的jison文件(剥除autocomplate,syntax的功能文件) - */ - const sharedFiles = jisonFiles - .filter(jisonFile => jisonFile.indexOf('sql_') !== -1) - .map(jisonFile => path.join(subLanguageJisonFolder, jisonFile)); - - if (fileIndex['sql.jisonlex']) { - /** - * 添加子语言自动补全编译配置 - * 加入了error.jison,为了在校验失败的情况下也能够提示? - */ - findParser(fileIndex, folder, sharedFiles, true); - /** - * 添加子语言语法检查配置 - */ - findParser( - fileIndex, - folder, - sharedFiles.filter(path => path.indexOf('_error.jison') === -1), - false - ); - } else { - console.log( - "Warn: Could not find 'sql.jisonlex' in " + JISON_FOLDER + 'sql/' + folder + '/' - ); - } - }) - ); - }); - Promise.all(promises).then(resolve); - }); - }); - -const copyTests = (source, target) => - new Promise((resolve, reject) => { - const replaceRegexp = new RegExp(source + '(Autocomplete|Syntax)Parser', 'g'); - mkdir(PARSER_FOLDER + target) - .then(() => { - mkdir(PARSER_FOLDER + target + '/test') - .then(() => { - listDir(PARSER_FOLDER + source + '/test') - .then(testFiles => { - const copyPromises = []; - testFiles.forEach(testFile => { - copyPromises.push( - copyFile( - PARSER_FOLDER + source + '/test/' + testFile, - PARSER_FOLDER + target + '/test/' + testFile.replace(source, target), - contents => contents.replace(replaceRegexp, target + '$1Parser') - ) - ); - }); - Promise.all(copyPromises) - .then(resolve) - .catch(reject); - }) - .catch(reject); - }) - .catch(reject); - }) - .catch(reject); - }); - - /** - * 校验,配置自定义语言 - */ -const prepareForNewParser = () => - new Promise((resolve, reject) => { - /** - * 根据一个子语言文件夹来生成一个特殊sql名字的语法文件 - * -new generic postgresql - * 根据generic文件夹生成postgresql语法文件 - */ - if (process.argv.length === 3 && process.argv[0] === '-new') { - process.argv.shift(); - const source = process.argv.shift(); - const target = process.argv.shift(); - console.log("Generating new parser '" + target + "' based on '" + source + "'..."); - process.argv.push(target); - - if ( - !Object.keys(parserDefinitions).some(key => { - if (key.indexOf(source) === 0) { - copyTests(source, target) - .then(() => { - mkdir(JISON_FOLDER + 'sql/' + target) - .then(() => { - listDir(JISON_FOLDER + 'sql/' + source).then(files => { - const copyPromises = []; - files.forEach(file => { - copyPromises.push( - copyFile( - JISON_FOLDER + 'sql/' + source + '/' + file, - JISON_FOLDER + 'sql/' + target + '/' + file - ) - ); - }); - Promise.all(copyPromises).then(() => { - const autocompleteSources = [ - 'sql/' + target + '/autocomplete_header.jison' - ]; - const syntaxSources = ['sql/' + target + '/syntax_header.jison']; - - files.forEach(file => { - if (file.indexOf('sql_') === 0) { - autocompleteSources.push('sql/' + target + '/' + file); - syntaxSources.push('sql/' + target + '/' + file); - } - }); - autocompleteSources.push('sql/' + target + '/autocomplete_footer.jison'); - syntaxSources.push('sql/' + target + '/syntax_footer.jison'); - mkdir('desktop/core/src/desktop/js/parse/sql/' + target).then(() => { - copyFile( - 'desktop/core/src/desktop/js/parse/sql/' + - source + - '/sqlParseSupport.js', - 'desktop/core/src/desktop/js/parse/sql/' + - target + - '/sqlParseSupport.js', - contents => - contents.replace( - /parser\.yy\.activeDialect = '[^']+';'/g, - "parser.yy.activeDialect = '" + target + "';" - ) - ).then(() => { - identifySqlParsers() - .then(resolve) - .catch(reject); - }); - }); - }); - }); - }) - .catch(err => { - console.log(err); - }); - }) - .catch(reject); - return true; - } - }) - ) { - reject("No existing parser found for '" + source + "'"); - } - } else { - resolve(); - } - }); - -identifySqlParsers().then(() => { - process.argv.shift(); - process.argv.shift(); - console.log('Generate sub language success...'); - prepareForNewParser().then(() => { - console.log('Generate custom language success...'); - process.argv.forEach(arg => { - if (arg === 'all') { - /** - * 编译全部 - */ - all = true; - } else if (parserDefinitions[arg]) { - /** - * 特点编译目标 - */ - parsersToGenerate.push(arg); - } else { - /** - * 根据关键字匹配编译目标 - */ - let prefixFound = false; - Object.keys(parserDefinitions).forEach(key => { - if (key.indexOf(arg) === 0) { - prefixFound = true; - parsersToGenerate.push(key); - } - }); - if (!prefixFound) { - invalid.push(arg); - } - } - }); - - if (all) { - parsersToGenerate = Object.keys(parserDefinitions); - } - - if (invalid.length) { - console.log("No parser config found for: '" + invalid.join("', '") + "'"); - console.log( - '\nPossible options are:\n ' + - ['all'].concat(Object.keys(parserDefinitions)).join('\n ') + - '\n' - ); - return; - } - - const parserCount = parsersToGenerate.length; - let idx = 0; - /** - * 执行编译 - */ - const generateRecursive = () => { - idx++; - if (parsersToGenerate.length) { - const parserName = parsersToGenerate.pop(); - if (parserCount > 1) { - console.log("Generating '" + parserName + "' (" + idx + '/' + parserCount + ')...'); - } else { - console.log("Generating '" + parserName + "'..."); - } - generateParser(parserName) - .then(generateRecursive) - .catch(error => { - console.log(error); - console.log('FAIL!'); - }); - } else { - const autocompParsers = []; - const syntaxParsers = []; - console.log('Updating sqlParserRepository.js...'); - Object.keys(parserDefinitions).forEach(key => { - if (parserDefinitions[key].sqlParser === 'AUTOCOMPLETE') { - autocompParsers.push( - AUTOCOMPLETE_PARSER_IMPORT_TEMPLATE.replace( - /KEY/g, - key.replace('AutocompleteParser', '') - ) - ); - } else if (parserDefinitions[key].sqlParser === 'SYNTAX') { - syntaxParsers.push( - SYNTAX_PARSER_IMPORT_TEMPLATE.replace(/KEY/g, key.replace('SyntaxParser', '')) - ); - } - }); - readFile(SQL_PARSER_REPOSITORY_PATH).then(contents => { - contents = contents.replace( - /const SYNTAX_MODULES = [^}]+}/, - 'const SYNTAX_MODULES = {\n' + syntaxParsers.sort().join(',\n') + '\n}' - ); - contents = contents.replace( - /const AUTOCOMPLETE_MODULES = [^}]+}/, - 'const AUTOCOMPLETE_MODULES = {\n' + autocompParsers.sort().join(',\n') + '\n}' - ); - writeFile(SQL_PARSER_REPOSITORY_PATH, contents).then(() => { - console.log('Done!\n'); - }); - }); - } - }; - /** - * 集中精力办大事 - */ - generateRecursive(); - }); -}); - -/* eslint-enable no-restricted-syntax */ diff --git a/src/typing/base.d.ts b/src/typing/base.d.ts deleted file mode 100644 index 7cd3dcb..0000000 --- a/src/typing/base.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare type sql = string | string[] \ No newline at end of file diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts new file mode 100644 index 0000000..9781d00 --- /dev/null +++ b/src/typings/index.d.ts @@ -0,0 +1 @@ +declare type sql = string | string[] diff --git a/src/utils/index.ts b/src/utils/index.ts index 2c20a6c..f73d0ab 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,14 +1,13 @@ function replaceStrFormIndexArr(str, replaceStr, indexArr) { - let arr = []; - let result = ""; + let result = ''; let index = 0; if (!indexArr || indexArr.length < 1) { return str; } for (let i = 0; i < indexArr.length; i++) { - let indexItem = indexArr[i]; - let begin = indexItem.begin; + const indexItem = indexArr[i]; + const begin = indexItem.begin; result = result + str.substring(index, begin) + replaceStr; index = indexItem.end + 1; @@ -20,7 +19,7 @@ function replaceStrFormIndexArr(str, replaceStr, indexArr) { return result; } -function splitSql (sql: string) { +function splitSql(sql: string) { let haveEnd = true; if (!sql.endsWith(';')) { sql += ';'; @@ -31,7 +30,7 @@ function splitSql (sql: string) { queue: string; sqls: number[]; } - function pushSql (parser: splitParser, sql: string) { + function pushSql(parser: splitParser, sql: string) { if (!haveEnd && parser.index == sql.length - 1) { parser.sqls.push(parser.index - 1); parser.queue = ''; @@ -41,11 +40,11 @@ function splitSql (sql: string) { } } // 处理引号 - function quoteToken (parser: splitParser, sql: string): string { - let queue = parser.queue; - let endsWith = queue[queue.length - 1]; + function quoteToken(parser: splitParser, sql: string): string { + const queue = parser.queue; + const endsWith = queue[queue.length - 1]; if (endsWith == '\'' || endsWith == '"') { - let nextToken = sql.indexOf(endsWith, parser.index + 1); + const nextToken = sql.indexOf(endsWith, parser.index + 1); if (nextToken != -1) { parser.index = nextToken; parser.queue = ''; @@ -57,10 +56,10 @@ function splitSql (sql: string) { } } // 处理单行注释 - function singleLineCommentToken (parser: splitParser, sql: string): string { + function singleLineCommentToken(parser: splitParser, sql: string): string { let queue = parser.queue; if (queue.endsWith('--')) { - let nextToken = sql.indexOf('\n', parser.index + 1); + const nextToken = sql.indexOf('\n', parser.index + 1); if (nextToken != -1) { parser.index = nextToken; queue = ''; @@ -72,10 +71,12 @@ function splitSql (sql: string) { } } // 处理多行注释 - function multipleLineCommentToken (parser: splitParser, sql: string): string { - let queue = parser.queue; + function multipleLineCommentToken( + parser: splitParser, sql: string, + ): string { + const queue = parser.queue; if (queue.endsWith('/*')) { - let nextToken = sql.indexOf('*/', parser.index + 1); + const nextToken = sql.indexOf('*/', parser.index + 1); if (nextToken != -1) { parser.index = nextToken + 1; parser.queue = ''; @@ -87,34 +88,38 @@ function splitSql (sql: string) { return null; } } - function splitToken (parser: splitParser, sql: string): string { - let queue = parser.queue; + function splitToken(parser: splitParser, sql: string): string { + const queue = parser.queue; if (queue.endsWith(';')) { - pushSql(parser, sql) - + pushSql(parser, sql); } else { return null; } } - let parser: splitParser = { + const parser: splitParser = { index: 0, queue: '', - sqls: [] + sqls: [], }; for (parser.index = 0; parser.index < sql.length; parser.index++) { - let char = sql[parser.index]; + const char = sql[parser.index]; parser.queue += char; - let tokenFuncs = [quoteToken, singleLineCommentToken, multipleLineCommentToken, splitToken]; + const tokenFuncs = [ + quoteToken, + singleLineCommentToken, + multipleLineCommentToken, + splitToken, + ]; for (let i = 0; i < tokenFuncs.length; i++) { tokenFuncs[i](parser, sql); } if (parser.index == sql.length - 1 && parser.queue) { - pushSql(parser, sql) + pushSql(parser, sql); } } return parser.sqls; } export { replaceStrFormIndexArr, - splitSql -} \ No newline at end of file + splitSql, +};